The code here is also a great example of how to use Windows API for handling COM/DCOM objects.
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 parameters
Return Value
Returns system last error (Window’s API error code).