|
Hello,
I know the CLSID of the COM- object and I would like to retrieve the TypeLibrary ID of the Type Library describing it. (I want to get the ITypeLib interface of the typelib..)
I noticed in the Windows registry that the TypeLib ID is present in a subkey of the CLSID so I could get it from there, but I think that might not be the correct way to get to it... So if anybody knows I`ld be gratefull if you would share your knowledge.
Greetings,
Davy
|
|
|
|
|
I would probably use that way you described - seek in registry and load it by LoadRegTypeLib getting the ITypeLib interface.
Other possibility, but somehow limited is that if you have an object, who support IDispatch interface, you can create the object using the CLSID you know, asking for the IDispatch .
Then you can use the IDispatch::GetTypeInfo , returning the ITypeInfo , which in turn you can ask for the ITypeLibrary by using ITypeInfo::GetContainingTypeLib .
But this requires the component to support IDispatch .
Another way, I got from the head is getting the path to the dll or exe, where the object resides and use the LoadTypeLib function.
Hope this helps
|
|
|
|
|
hi
i have embeded an ActiveX control in a web page, when the page is accessed the control downloads and registers successfully on client's machine but it is not shown on the web page, instead a cross icon comes at its place
what might be wrong
plz help me its urgent
regards.
Muhammad Azam
|
|
|
|
|
Is your client using WinXP SP2 ?
modified 21-Apr-21 21:01pm.
|
|
|
|
|
hi Mr.Sohail Kadiwala
No, Windows 2000 professional is installed on client machine.
thanks for quering me, i have been looking for some solution from my MFCian mates but stll no responce.
Thanks in anticipation
i have to do it at earliest so plz help me out.
best wishes
Muhammad Azam
|
|
|
|
|
Hello everybody,
(For starters I'm new at COM and such so bear with me)
I am writing projects for handheld devices (PocketPC, ARM, MIPS, etc..) these devices need to access a COM - component on a desktop PC. So after some reading about COM it seemed that DCOM(communication over network with COMcomponents) was what I need. Allas DCOM apparantly is not supported on the WindowsCE (if I'm wrong here please let me know..)
So now I'm thinking about writing a desktop app that will capture messages from the handheld devices it would then, depending extra data it sends, contact the requested COM component and execute certain methods, and finally the app would send data back to the device (communication with device using windows sockets).
My documentation concerning COM is not the latest stuff that's out there (1996 ), so I will very quickly lay out my plan and I would like to ask you if my ideas are outdated or not (better ways to get where I want and how or URL's are welcome).
My idea roughly outlined:
(desktop app needs to be able to handle all kind of com-componentes so should be kind of generic)
The device makes a connection to a predefined port on the PC where the app is listening (Windows sockets). After connection is succesfully established:
Step 1: Device sendsCLSID or ProgID of the COM-class it wants to use-> the desktopApp searches for CLSID and checks if Component is known and accessible
Step 2: Device sends method it wants to invoke(optional sends also the Interface) -> The desktop app searches (incase no interface was passed)using the ITypeLib and ITypeInfo for an interface that implements the method and if it is found calls the method. Afterwards the desktop app return any data to the device.
Step 3: after device is finished with all its method calls it sends a quit or smthing-> desktop app releases the COM-obj.
This is a very brief layout of my idea(I know implementing it will get much more complicated but I just want to get your comments on the basic idea)... Is this the way to get the job done? Is there a better technology out there that does this?
Thanks to anyone that might help,
Greetings,
Davy
|
|
|
|
|
You don't say which version on WinCE you're using, and whether you can alter the build of the devices (your own products based on SBCs), or if they are 'canned' (like HP iPaq).
Steve S
Developer for hire hired!
|
|
|
|
|
I have created a com server in a dll and when I attempt to register the server using regsvr32 I recieve an error message stating that the module could not be found. I was wondering if anyone new of the cause for that (I have checked the path and it is correct). Thanks in advance.
|
|
|
|
|
Well check following things,
1) Try to load your DLL like ordinary DLL . If loadlibrary does not work out then your DLL is in incorrect .
2)Now next try will be check out wether your DLL is having all basic COM functions needed (exports).
Look for MSDN if u dont know the basic COM exports
|
|
|
|
|
Thanks for the information. I got past the cannot find module error but not I am receiving a cannot find DllRegisterServer entry point error. I have tried removing the macros and explicitly defining the function types. I forward defined them like this:
<br />
extern "C" __declspec(dllexport) HRESULT STDAPICALLTYPE DllRegisterServer();<br />
extern "C" __declspec(dllexport) HRESULT STDAPICALLTYPE DllUnregisterServer();<br />
The function bodies look like this:
<br />
extern "C" __declspec(dllexport) HRESULT STDAPICALLTYPE DllRegisterServer() {<br />
<br />
return RegisterServer(g_hModule, CLSID_Component1, g_szFriendlyName, g_szVerIndProgID, g_szProgID);<br />
}<br />
<br />
extern "C" __declspec(dllexport) HRESULT STDAPICALLTYPE DllUnregisterServer() {<br />
<br />
return UnregisterServer(CLSID_Component1, g_szVerIndProgID, g_szProgID);<br />
}<br />
Again thanks for the help.
|
|
|
|
|
After creating the uploads directory I still get ADODB.Stream error
'800a0bbc'
Write to file failed
help me
nokiphuc
|
|
|
|
|
Ich habe unter Borland C++ einen Server geschrieben, der savecall Methoden exportiert, um auch Exceptions vom Server zum Client zu übertragen. Borland kapselt in diesem Fall den Rückgabewert HRESULT. Wie ist es mir nun möglich vom Client eine Unterbrechung oder das schließen der Server-Anwendung zu erkennen?
Steffen
|
|
|
|
|
Entschuldigung, meine Deutsch und Borlandkentnisse sind schlecht.
Kannst du nicht die einkapselte Fehlerkode der Exceptions analysieren? Wenn der Server geschlossen ist, der HRESULT ist RPC_E_xxxx.
--
Weiter, weiter, ins verderben.
Wir müssen leben bis wir sterben.
I blog too now[^]
|
|
|
|
|
The the encapsulated code in the Client don't throws an exception in the case of calling a method after closing the Server. That's the Problem.
|
|
|
|
|
I have a C# web application which need to use an ActiveX in it. I can find some article on ActiveX using C++, I am unable to find a sample of C# call ActiveX. I am not sure if ActiveX only comes with C++?
My IDE is Visula studio.net2003.
If you have some ideas about this, or some sample code/article, please let me know.
Thanks a lot.
Kevin
|
|
|
|
|
Hi all
I am an experienced VB/COM+ programmer. Now I need to switch to .Net environment. So please help me to clear my doubt on COM+. How can we bring the same functionality of COM+ through VB.Net/C#.Net? In VB we have to develop a DLL and register the same under Component Services, but what about the .Net. Is it too much different? Etc…
Thank You.
|
|
|
|
|
Hello,
This is my first time doing socket programming. I tried to write a program to read binary data from a device, through the serial port and save the data received into a binary file. The device only provide data in binary format, so I do not have an option to send the data in ASCII format.
But I don't how am I going to receive binary data and what data type should I use to receive the binary data. Should I use char, int or?
As I am programming in Linux OS, so I cannot use CString to receive the data.
I tried using integer to receive the data, as the data is in binary, I get integer which is out of the ascii table.
Please help
Your help will be much appreciated.
Thank you.
|
|
|
|
|
You can use String class defined in STL library or use Charater Buffer to Get it
-----------------------------
"I Think this Will Help"
-----------------------------
Alok Gupta
visit me at http://www.thisisalok.tk
|
|
|
|
|
Hi, everyone,
I don't have any experiences on COM, and now I need to write a C++ client to use some COM events. The COM dll's .idl file is as below, if anyone can tell me how to write this C++ client. thanks very much.
the event function of COM is OnStatusChange, my C++ client needs to
interface IDumpEx : IDispatch
{
HRESULT MyAction();
};
library FDUMPSVRLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
dispinterface _IExEvents
{
properties:
methods:
HRESULT OnStatusChange([in] long pct);
};
coclass DumpEx
{
[default] interface IDumpEx;
[default, source] dispinterface _IExEvents;
};
};
|
|
|
|
|
Hello littlecuttiepie,
I've created a Windows Client Application that is able to receive the OnStatusChange() event fired from your DumpEx object.
Email to me : bio_lim_2004@yahoo.com together with your return email address and I'll send the VC++ files to you.
Regards,
Bio.
|
|
|
|
|
A few succinct points about Event Handling in COM :
In COM, event handling is achieved via Connection Points. The COM object which fires events is a Connection Point Container. It recognizes several Connection Points which are actually interface methods that must be implemented by a Client Event Listener.
Hence,
COM Object That Fires Events
- implements IConnectionPointContainer.
- contains one or more IConnectionPoint implementations.
- calls event interface methods implemented by clients event listeners.
COM Client that listens to events
- implements Event Interface methods which are fired by COM Object.
- searches for a suitable connection point in event firing COM object via IConnectionPointContainer.FindConnectionPoint().
- connects with event firing object via IConnectionPoint.Advise().
- disconnects with event firing obejct via IConnectionPoint.Unadvise().
Regards,
Bio.
|
|
|
|
|
Hi Bio,
I need to write a straight C++ client, not COM. I saw books talking about using sink object for the client, but not very sure how to write it, Do you know how to do that?
Thanks.
littlecuttiepie
|
|
|
|
|
Hello littlecuttiepie,
>> I need to write a straight C++ client, not COM.
I understand your situation. I believe that what you are trying to say is that your client application is not an ATL-generated. The example code that I'll be sending to you is not ATL-generated. However, you -will- need to add some basic COM code into your client app (e.g. CoInitialize() and CoUnititalize(), and, depending on whether you used #import, you may need to either use smart pointers or use CoCreateInstance()).
>> I saw books talking about using sink object for the client, but not very sure how to write it, Do you know how to do that?
Yes, the sample code that I'm sending you contains an actual implementation of a sink object.
I'm currently writing a CodeProject article based on the sample code. Watch out for it as it will contain the documentation for my code.
Best Regards,
Bio.
|
|
|
|
|
Hello littlecuttiepie,
I have uploaded my code project article :
TEventHandler - A C++ COM Event Handler For IDispatch-Based Events
It is in the latest updates section.
Regards,
Bio.
|
|
|
|
|
All,
I was wondering if anyone could recommend JazzAge[^] or another similar product to accomplish this task. If you would recommend Jazzage, which version have you used?
Thanks,
Rich
|
|
|
|