|
Hello all...
I have a VB6 COM component that exposes a collection class I wrote using Function NewEnum() as IUnknown to enable for each iteration of the collection. The procedure attributes are set correctly to -4, hidden.
When I try to iterate the collection via interop using the vb.net code below, I get "QI for IEnumVARIANT failed on the unmanaged server," but only when executing it in the code behind an asp.net page. works fine behind a .net windows form. same problem if I attempt it in C#.
Dim rdfs As ReportMgr.ReportDefs
Dim rdf As ReportMgr.ReportDef
rdfs = New ReportMgr.ReportDefs()
rdfs.Refresh()
For Each rdf In rdfs
System.Diagnostics.Debug.WriteLine(rdf.Key)
Next
Any ideas?
Travis
|
|
|
|
|
What kind of in-proc communication uses local COM server (.exe)? May be DDE?
|
|
|
|
|
|
lrpc - local RPC
http://www.windowsitlibrary.com/Content/356/08/1.html
soptest
|
|
|
|
|
COM uses memory mapped files for interprocess communication if the two processes lie on the same machine.
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
My_Wuestion wrote:
May be DDE?
Not any more, but I seem to remember reading that it did in the happy days of Windows 3.1
|
|
|
|
|
Hi,
Can anyone let me know where on the net I can find good & simple explanation about n-tier architecture & design?
Thanks in advance
Hitesh
|
|
|
|
|
Problem with finding msword.olb, where can I download these files.
To incorporate COMs.
Thanks.
URGENT
|
|
|
|
|
<drive>:\Programm Files\Microsoft Office\Office\MSWORD9.OLB
It goes with MSWord application
soptest
|
|
|
|
|
|
Are you running Word 98 or later?
I have had problems where I couldn't find the file with earlier versions of Word.
|
|
|
|
|
I am running office xp pro. I cannot find the files.
If someone could help me. That would be amazing. I really appreciate u're help.
Thank-you.
|
|
|
|
|
Problem with finding msword.olb, where can I download these files.
To incorporate COMs.
Thanks.
matt
|
|
|
|
|
In order to use the Microsoft Web Browser ActiveX control, I need to call AfxEnableControlContainer() in my App::InitInstance. My application requires that I also call CoInitializeEx(NULL, COINIT_MULTITHREADED).
When I comment out the CoInitializeEx() call, the browser displays. If I let it run, the dialog with the ActiveX control won't initialize.
Any guesses as to what the problem is?
J
"I am wise enough to therefore not spout my ill informed opinion as if it were remotely related to fact." - Christian Graus
|
|
|
|
|
Because CoInitializeEx(...) has been called in MFC for different threading model and it failed.
If you can create an ActiveX control without calling that function, that means the function was called.
soptest
|
|
|
|
|
Ok, but I need the multithreaded model. I know that these controls will work in a multithreaded environment... any idea how to set them up?
J
"I am wise enough to therefore not spout my ill informed opinion as if it were remotely related to fact." - Christian Graus
|
|
|
|
|
That is why I do not use MFC.
Try this:
Create another thread, CoInitialize it as multithreaded, create control on that thread.
soptest
|
|
|
|
|
Documentation provided by a third party ActiveX component supplier claims that thier controls are coded in VB thus will not work with ATL due to a Microsoft bug/limitation. I have never heard of this and cannot find a word of documentation on MSDN or in any of the number of books I own on ATL/VB/COM/IDL? Has anyone run across this?
|
|
|
|
|
I do not know of any limitations as well. However they may be referring to extending their components through agregation or something like that, which I still do not think there will be a problem with that.
Did they elaborate on which way you will not be able to use it with ATL, because the only reason that you would want to use a VB activeX control with ATL is if you were trying to customize the ActiveX control with ATL. Otherwise it makes no difference what language that you access the activeX control from.
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
Thanks for the reply kilowatt
All we want to do is utilize the controls. The solution is to utilize VB for most UIs since we are heavily componentized. The problem is that many of our developers have an aversion to VB.
|
|
|
|
|
I am not aware of any problems then, you should have no problem using the VB components in an ATL program. One of the primary goals of COM is to provide binary compatibility. In fact you should not even care if a component is written in VB, C++ or even fortran, as long as it properly follows the rules of COM.
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
Howdy, I built an app that used ODBC to write to an SQL database. The client has just turned around and said that they wish to use OLEdb connection strings to tell my app where the server is (instead of ODBC DSNs).
Everything I've found on using OLEDB to access databases, is a whole pile of COM interface stuff with no real world examples. A far cry from the 'CDatabase' simplicity I'm used to.
Can anybody help me with this ?
All I need to do is to write some data via INSERT statements and do a few SELECT statements. I'm looking for some sample code or a tutorial with "real world" examples. Actually, anything that will help me do this in the few hours I have available to change my code.
Thanks to anybody who can help.
Damian Del Campo
|
|
|
|
|
Greetings,
I created an activex control, and now I was wondering how I can have the control get downloaded from a web server if it doesn't exist on a client.
For example some ActiveX controls are downloaded for internet pages when you surf on them. Is there a way to do this?
Thanks in advance
|
|
|
|
|
It seems that after I made the post, I figured out the solution to my problem.
Basically all you have to do is add CODEBASE to your object tag in the HTML file that the Activex control is being used in.
ie: <object="clsid:...ect................"
codebase="http://Myserver/fileblah.dll">
This enables the activex control to be downloaded if it doesn't exist on the machine from the web server page location that is specified in the codebase parameter.
|
|
|
|
|
Hi I am interested in finding out how to build COM objects in Visual Studio.net. I hae done some COM objects before using VB6, but I was told that you now do not have to register dlls or something in 2000 with .net
I heard that at a class on Applications Center Server. They said COM objects are registered in an XML name space or something. I was wondering if anyone had any articles or info on building COM objects in VS.net
Any help would be appreciated
|
|
|
|