SkDCOMbridge : COM/DCOM Handler Object

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).

Downloads

Download source – 6 Kb

History

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read