Home | History | Annotate | Download | only in include
      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
     23 extern "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 
     37 DEFINE_GUID(IID_IUnknown, 0x00000000, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
     38 #if defined(__cplusplus) && _MSC_VER >= 1100
     39 struct __declspec(uuid("00000000-0000-0000-C000-000000000046")) IUnknown;
     40 #endif
     41 
     42 #undef INTERFACE
     43 #define INTERFACE IUnknown
     44 DECLARE_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 
     62 typedef IUnknown *PUNKNOWN;
     63 typedef
     64 HRESULT
     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