/***************************************************************************** * punknown.h - IUnknown definitions ***************************************************************************** * Copyright (c) Microsoft Corporation. All rights reserved. */ #ifndef _UNKNOWN_H_ #define _UNKNOWN_H_ #ifdef __cplusplus extern "C" { #include } #else #include #endif #include #define COM_NO_WINDOWS_H #include #ifdef PUT_GUIDS_HERE #include #endif DEFINE_GUID(IID_IUnknown, 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x46); /***************************************************************************** * IUnknown ***************************************************************************** * Base interface for otherwise unknown objects. */ #undef INTERFACE #define INTERFACE IUnknown DECLARE_INTERFACE(IUnknown) { STDMETHOD_(NTSTATUS,QueryInterface) ( THIS_ __in REFIID, __out PVOID * ) PURE; STDMETHOD_(ULONG,AddRef) ( THIS ) PURE; STDMETHOD_(ULONG,Release) ( THIS ) PURE; }; #undef INTERFACE typedef IUnknown *PUNKNOWN; /***************************************************************************** * PFNCREATEINSTANCE ***************************************************************************** * Type for object create function. */ typedef HRESULT (*PFNCREATEINSTANCE) ( __out PUNKNOWN * Unknown, __in REFCLSID ClassId, __in PUNKNOWN OuterUnknown, __in POOL_TYPE PoolType ); #endif