您的位置:首页 > 产品设计 > UI/UE

//typedef GUID IID; MIDL_INTERFACE(x) struct __declspec(uuid(x)) __declspec(novtable)

2012-04-02 09:33 393 查看
//////////////////////////////////////////////////////////////////
// IID_IUnknown and all other system IIDs are provided in UUID.LIB
// Link that library in with your proxies, clients and servers
//////////////////////////////////////////////////////////////////
/*
typedef struct _GUID {          // size is 16
DWORD Data1;
WORD   Data2;
WORD   Data3;
BYTE  Data4[8];
} GUID;
*/
//typedef GUID IID;
EXTERN_C const IID IID_IUnknown;

#if defined(__cplusplus) && !defined(CINTERFACE)

#if (_MSC_VER >= 1200)	// VC6 or greater
extern "C++"
{
#endif
//#define MIDL_INTERFACE(x)   struct __declspec(uuid(x)) __declspec(novtable)
    MIDL_INTERFACE("00000000-0000-0000-C000-000000000046")
	IUnknown
    {
    public:
        BEGIN_INTERFACE
        virtual HRESULT STDMETHODCALLTYPE QueryInterface( 
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject) = 0;
        
        virtual ULONG STDMETHODCALLTYPE AddRef( void) = 0;
        
        virtual ULONG STDMETHODCALLTYPE Release( void) = 0;

#if (_MSC_VER >= 1200)	// VC6 or greater
		template <class Q>
		HRESULT STDMETHODCALLTYPE QueryInterface(Q** pp)
		{
			return QueryInterface(__uuidof(Q), (void**)pp);
		}
#endif    

        END_INTERFACE
    };
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: