Software & Finance

C# - Step 5.1 ComInterfaceType.InterfaceIsIUnknown


ComInterfaceType.InterfaceIsIUnknown - This COM interface type supports only early binding.


When you use [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] , the following code will get generated on C++ client side with #import tlb file.


struct __declspec(uuid("12d1edac-20c0-4faa-a774-b6f4c300b47e"))

IMathCtrl : IUnknown


    long AddNumbers (

        long a,

        long b );

      virtual HRESULT __stdcall raw_AddNumbers (

        /*[in]*/ long a,

        /*[in]*/ long b,

        /*[out,retval]*/ long * pRetVal ) = 0;


inline long IMathCtrl::AddNumbers ( long a, long b ) {

    long _result = 0;

    HRESULT _hr = raw_AddNumbers(a, b, &_result);

    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));

    return _result;




Back to Index of Steps for C# class Library Server and C++ Index


Click here to download the complete source code of C# Class Library Server and C++ Client