1/* 2 * unknown.h 3 * 4 * Contributors: 5 * Created by Magnus Olsen 6 * 7 * THIS SOFTWARE IS NOT COPYRIGHTED 8 * 9 * This source code is offered for use in the public domain. You may 10 * use, modify or distribute it freely. 11 * 12 * This code is distributed in the hope that it will be useful but 13 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 14 * DISCLAIMED. This includes but is not limited to warranties of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 * 17 */ 18 19#ifndef _UNKNOWN_H_ 20#define _UNKNOWN_H_ 21 22#ifdef __cplusplus 23extern "C" { 24#include <wdm.h> 25} 26#else 27#include <wdm.h> 28#endif 29 30#include <windef.h> 31#define COM_NO_WINDOWS_H 32#include <basetyps.h> 33#ifdef PUT_GUIDS_HERE 34#include <initguid.h> 35#endif 36 37DEFINE_GUID(IID_IUnknown, 0x00000000, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); 38#if defined(__cplusplus) && _MSC_VER >= 1100 39struct __declspec(uuid("00000000-0000-0000-C000-000000000046")) IUnknown; 40#endif 41 42#undef INTERFACE 43#define INTERFACE IUnknown 44DECLARE_INTERFACE(IUnknown) 45{ 46 STDMETHOD(QueryInterface) 47 ( THIS_ 48 REFIID, 49 PVOID* 50 ) PURE; 51 52 STDMETHOD_(ULONG,AddRef) 53 ( THIS 54 ) PURE; 55 56 STDMETHOD_(ULONG,Release) 57 ( THIS 58 ) PURE; 59}; 60#undef INTERFACE 61 62typedef IUnknown *PUNKNOWN; 63typedef 64HRESULT 65(NTAPI *PFNCREATEINSTANCE) 66( 67 PUNKNOWN * Unknown, 68 REFCLSID ClassId, 69 PUNKNOWN OuterUnknown, 70 POOL_TYPE PoolType 71); 72 73#endif /* _UNKNOWN_H_ */ 74 75