SkDCOMbridge : COM/DCOM Handler Object
Posted
by Shai Korianski
on August 5th, 2000
Method Descriptions and Definitions
Main function : getInterfacePointer
Prototype
int getInterfacePointer(IUnknown **ppInterface, void *comObjectInfo, void *interfaceObjectInfo, int flags = SKDCOM_COMINFO_NAME | SKDCOM_INTERFACEINFO_NAME, void *computerName = NULL, COAUTHINFO *pAuthInfo = NULL);Parameters
ppInterface [out] Pointer for interface pointer in which the method should enter the desired interface's pointer. comObjectInfo [in] COM object's description. can be name [OLE string !] or CLSID. interfaceObjectInfo [in] Interface's description. can be name [OLE string] or IID. flags [in] flags which describes 'comObjectInfo' and 'interfaceObjectInfo'
use SKDCOM_COMINFO_NAME - when 'comObjectInfo' is object's a name (such as 'MyCOM.Engine')
SKDCOM_COMINFO_CLASID - when 'comObjectInfo' is object's an CLSID.
SKDCOM_INTERFACEINFO_NAME - when 'interfaceObjectInfo' is a name (such as 'MyCOM.Engine.iXYZ')
SKDCOM_INTERFACEINFO_REFIID - when 'interfaceObjectInfo' is an IID
each flag value should be a logical or of 'comObjectInfo' and 'interfaceObjectInfo' descriptions.
default value is name for both.computerName [in] points to a computer name. DCOM ONLY. if NULL object uses COM. pAuthInfo [in] points to a 'COAUTHINFO' object. DCOM ONLY. if NULL object uses default security parameters. Remarks
GetCLSID Function
Prototype
void getCLSID(CLSID *clsid) const;
Parameters
clsid [out] Pointer to a CLSID instance which will recieve object's CLSID value. Remarks
Retrieves object's CLSID (even if main method was called with name for object's description)Return Value
- SKDCOM_ERROR_CLSID_NAME_NOT_FOUND - object's name was not found.
- SKDCOM_ERROR_CLSID_NOT_FOUND - object's ID was not found.
- SKDCOM_ERROR_IID_NOT_FOUND - interface's ID was not found.
- SKDCOM_ERROR_IID_NAME_NOT_FOUND - interface's name was not found.
- SKDCOM_ERROR_FAIL - function failed.
- SKDCOM_SUCCESS - success. output parameter is valid.
getIID Function
Prototype
void getIID(IID *iid) const;
Parameters
iid [out] Pointer to an IID instance which recieve interface's IID value. Remarks
Retrieves interface's IID (even if main method was called with name for interface description)getLastRetrivedInterface Function
Prototype
void getLastRetrivedInterface(IUnknown **ppInterface) const;
Parameters
ppInterface [out] Points to an interface pointer Remarks
Enters last retrived pointer to 'ppInterface'.getLastSystemError
Prototype
HRESULT getLastSystemError() const;
Parameters
No parametersReturn Value
Returns system last error (Window's API error code).

Comments
Obtain CLSID from IUnknown
Posted by Legacy on 04/26/2002 12:00amOriginally posted by: Navin Pai
I have got the IUnknown pointer now is there any way from where I can get the CLSID of the component. Note there exists a proxy for that component and I dont want the CLSID of the proxy.
ReplyPlease, Help me about dcom98.exe
Posted by Legacy on 11/08/2001 12:00amOriginally posted by: hwa min son
I have some questions.
Please, Help me.
Question 1)
How can I excute Dcom98.exe in the cab file that includes my program?
My computer's OS is Window98.
Question 2)
When I tried to Setup my activex controls, I got error message.
then I must setup dcom98.exe.
I wish to include dcom98 in my program.
but I don't know to way.
How can my setup program include dcom98.exe or have some special dll list?
Please~~~~~~~~~~~~~~~~~~~~~~~
ReplyPlease give an example...
Posted by Legacy on 09/27/2001 12:00amOriginally posted by: Zissopoulos John
Please give an example...Use a standard COM object of Windows
ReplySkDCOMbridge : COM/DCOM Handler Object
Posted by Legacy on 07/08/2001 12:00amOriginally posted by: mark
what's up with the (2) CoInitialize(NULL); in your constructor???
SkDCOMbridge::SkDCOMbridge()
{
CoInitialize(NULL);
memset(_comName,0,128);
memset(_interfaceName,0,128);
memset(_computerName,0,128);
memset(&_serverInfo,0,sizeof(COSERVERINFO));
_ipCf = NULL;
_pInterface = NULL;
_lastSystemError = 0;
_serverInfo.pwszName = NULL;
CoInitialize(NULL);
initAuthInfo();
}
end.
Reply