Sync to trunk head (r47736)
[reactos.git] / include / psdk / kcom.h
similarity index 57%
rename from include/ddk/kcom.h
rename to include/psdk/kcom.h
index f4f1c3c..046b440 100644 (file)
@@ -18,10 +18,14 @@ DEFINE_GUIDSTRUCT("72CF721C-525A-11D1-9AA1-00A0C9223196", KoCreateObject);
 #endif
 
 #if !defined(__cplusplus) || _MSC_VER < 1100
+
 #define STATIC_IID_IKoInitializeParentDeviceObject 0x21B36996, 0x8DE3, 0x11D1, 0x8A, 0xE0, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
 DEFINE_GUIDEX(IID_IKoInitializeParentDeviceObject);
+
 #else
+
 interface __declspec(uuid("21B36996-8DE3-11D1-8AE0-00A0C9223196")) IKoInitializeParentDeviceObject;
+
 #endif
 
 #ifndef COMDDKMETHOD
@@ -40,101 +44,84 @@ interface __declspec(uuid("21B36996-8DE3-11D1-8AE0-00A0C9223196")) IKoInitialize
 
 typedef
 NTSTATUS
-(*KoCreateObjectHandler)( IN REFCLSID ClassId,
-                          IN IUnknown* UnkOuter OPTIONAL,
-                          IN REFIID InterfaceId,
-                          OUT PVOID* Interface);
+(*KoCreateObjectHandler)(
+  IN REFCLSID ClassId,
+  IN IUnknown* UnkOuter OPTIONAL,
+  IN REFIID InterfaceId,
+  OUT PVOID* Interface);
 
 #undef INTERFACE
 #define INTERFACE INonDelegatedUnknown
-DECLARE_INTERFACE(INonDelegatedUnknown)
-{
-  STDMETHOD(NonDelegatedQueryInterface)
-  (
+DECLARE_INTERFACE(INonDelegatedUnknown) {
+  STDMETHOD(NonDelegatedQueryInterface)(
     THIS_
     IN REFIID InterfaceId,
     OUT PVOID* Interface
   ) PURE;
 
-  STDMETHOD_(ULONG,NonDelegatedAddRef)
-  (
+  STDMETHOD_(ULONG,NonDelegatedAddRef)(
     THIS
   ) PURE;
 
-  STDMETHOD_(ULONG,NonDelegatedRelease)
-  (
+  STDMETHOD_(ULONG,NonDelegatedRelease)(
     THIS
   ) PURE;
 };
 
 #undef INTERFACE
 #define INTERFACE IIndirectedUnknown
-DECLARE_INTERFACE(IIndirectedUnknown)
-{
-  STDMETHOD(IndirectedQueryInterface)
-  (
+DECLARE_INTERFACE(IIndirectedUnknown) {
+  STDMETHOD(IndirectedQueryInterface)(
     THIS_
     IN REFIID InterfaceId,
     OUT PVOID* Interface
   ) PURE;
 
-  STDMETHOD_(ULONG,IndirectedAddRef)
-  (
+  STDMETHOD_(ULONG,IndirectedAddRef)(
     THIS
   ) PURE;
 
-  STDMETHOD_(ULONG,IndirectedRelease)
-  (
+  STDMETHOD_(ULONG,IndirectedRelease)(
     THIS
   ) PURE;
 };
 
-
 #undef INTERFACE
 #define INTERFACE IKoInitializeParentDeviceObject
-DECLARE_INTERFACE_(IKoInitializeParentDeviceObject, IUnknown)
-{
-  STDMETHOD(SetParentDeviceObject)
-  (
+DECLARE_INTERFACE_(IKoInitializeParentDeviceObject, IUnknown) {
+  STDMETHOD(SetParentDeviceObject)(
     THIS_
     IN PDEVICE_OBJECT ParentDeviceObject
   ) PURE;
 };
 
-
-
 #if defined(__cplusplus)
 
-
-class CBaseUnknown : public INonDelegatedUnknown, public IIndirectedUnknown
-{
-    protected:
-        LONG m_RefCount;
-    private:
-        BOOLEAN m_UsingClassId;
-        CLSID m_ClassId;
-    protected:
-        IUnknown* m_UnknownOuter;
-    public:
-        COMDDKMETHOD CBaseUnknown (IN REFCLSID ClassId, IN IUnknown* UnknownOuter OPTIONAL = NULL);
-        COMDDKMETHOD CBaseUnknown(IN IUnknown* UnknownOuter OPTIONAL = NULL);
-        COMDDKMETHOD virtual ~CBaseUnknown();
-        COMDDKMETHOD STDMETHODIMP_(ULONG) NonDelegatedAddRef();
-        COMDDKMETHOD STDMETHODIMP_(ULONG) NonDelegatedRelease();
-        COMDDKMETHOD STDMETHODIMP NonDelegatedQueryInterface(IN REFIID InterfaceId,OUT PVOID* Interface);
-        COMDDKMETHOD STDMETHODIMP_(ULONG) IndirectedAddRef();
-        COMDDKMETHOD STDMETHODIMP_(ULONG) IndirectedRelease();
-        COMDDKMETHOD STDMETHODIMP IndirectedQueryInterface(IN REFIID InterfaceId, OUT PVOID* Interface);
+class CBaseUnknown : public INonDelegatedUnknown, public IIndirectedUnknown {
+  protected:
+    LONG m_RefCount;
+  private:
+    BOOLEAN m_UsingClassId;
+    CLSID m_ClassId;
+  protected:
+    IUnknown* m_UnknownOuter;
+  public:
+    COMDDKMETHOD CBaseUnknown (IN REFCLSID ClassId, IN IUnknown* UnknownOuter OPTIONAL = NULL);
+    COMDDKMETHOD CBaseUnknown(IN IUnknown* UnknownOuter OPTIONAL = NULL);
+    COMDDKMETHOD virtual ~CBaseUnknown();
+    COMDDKMETHOD STDMETHODIMP_(ULONG) NonDelegatedAddRef();
+    COMDDKMETHOD STDMETHODIMP_(ULONG) NonDelegatedRelease();
+    COMDDKMETHOD STDMETHODIMP NonDelegatedQueryInterface(IN REFIID InterfaceId,OUT PVOID* Interface);
+    COMDDKMETHOD STDMETHODIMP_(ULONG) IndirectedAddRef();
+    COMDDKMETHOD STDMETHODIMP_(ULONG) IndirectedRelease();
+    COMDDKMETHOD STDMETHODIMP IndirectedQueryInterface(IN REFIID InterfaceId, OUT PVOID* Interface);
 };
 
-
 #if !defined(DEFINE_ABSTRACT_UNKNOWN)
-
 #define DEFINE_ABSTRACT_UNKNOWN() \
   STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID* Interface) PURE; \
   STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
   STDMETHOD_(ULONG,Release)(THIS) PURE;
-
 #endif
 
 #define DEFINE_STD_UNKNOWN() \
@@ -144,46 +131,49 @@ class CBaseUnknown : public INonDelegatedUnknown, public IIndirectedUnknown
   STDMETHODIMP_(ULONG) Release();
 
 #define IMPLEMENT_STD_UNKNOWN(Class) \
-  STDMETHODIMP Class::QueryInterface( REFIID InterfaceId, PVOID* Interface) \
-  { \
+  STDMETHODIMP Class::QueryInterface( REFIID InterfaceId, PVOID* Interface) { \
     return m_UnknownOuter->QueryInterface(InterfaceId, Interface);\
   } \
-  STDMETHODIMP_(ULONG) Class::AddRef() \
-  { \
+  STDMETHODIMP_(ULONG) Class::AddRef() { \
     return m_UnknownOuter->AddRef(); \
   } \
-  STDMETHODIMP_(ULONG) Class::Release() \
-  { \
+  STDMETHODIMP_(ULONG) Class::Release() { \
     return m_UnknownOuter->Release(); \
   }
+
 #else
 
 COMDDKAPI
 void
 NTAPI
-KoRelease( IN REFCLSID ClassId);
-#endif // !__cplusplus
+KoRelease(
+  IN REFCLSID ClassId);
+
+#endif /* !__cplusplus */
 
 COMDDKAPI
 NTSTATUS
 NTAPI
-KoCreateInstance( IN REFCLSID ClassId,
-                  IN IUnknown* UnkOuter OPTIONAL,
-                  IN ULONG ClsContext,
-                  IN REFIID InterfaceId,
-                  OUT PVOID* Interface);
+KoCreateInstance(
+  IN REFCLSID ClassId,
+  IN IUnknown* UnkOuter OPTIONAL,
+  IN ULONG ClsContext,
+  IN REFIID InterfaceId,
+  OUT PVOID* Interface);
 
 COMDDKAPI
 NTSTATUS
 NTAPI
-KoDeviceInitialize( IN PDEVICE_OBJECT DeviceObject);
+KoDeviceInitialize(
+  IN PDEVICE_OBJECT DeviceObject);
 
 COMDDKAPI
 NTSTATUS
 NTAPI
-KoDriverInitialize( IN PDRIVER_OBJECT DriverObject,
-                    IN PUNICODE_STRING RegistryPathName,
-                    IN KoCreateObjectHandler CreateObjectHandler);
+KoDriverInitialize(
+  IN PDRIVER_OBJECT DriverObject,
+  IN PUNICODE_STRING RegistryPathName,
+  IN KoCreateObjectHandler CreateObjectHandler);
 
 
 #if defined(__cplusplus)
@@ -195,44 +185,36 @@ KoDriverInitialize( IN PDRIVER_OBJECT DriverObject,
 #ifndef _NEW_DELETE_OPERATORS_
 #define _NEW_DELETE_OPERATORS_
 
-inline PVOID operator new
-(
+inline PVOID operator new(
   size_t iSize,
-  POOL_TYPE poolType
-)
+  POOL_TYPE poolType)
 {
   PVOID result = ExAllocatePoolWithTag(poolType,iSize,'wNCK');
-  if (result)
-  {
+  if (result) {
     RtlZeroMemory(result,iSize);
   }
   return result;
 }
 
-inline PVOID operator new
-(
-    size_t          iSize,
-    POOL_TYPE       poolType,
-    ULONG           tag
-)
+inline PVOID operator new(
+  size_t iSize,
+  POOL_TYPE poolType,
+  ULONG tag)
 {
   PVOID result = ExAllocatePoolWithTag(poolType,iSize,tag);
-  if (result)
-  {
+  if (result) {
     RtlZeroMemory(result,iSize);
   }
   return result;
 }
 
-inline void __cdecl operator delete
-(
-  PVOID pVoid
-)
+inline void __cdecl operator delete(
+  PVOID pVoid)
 {
-  ExFreePool(pVoid);
+  if (pVoid) ExFreePool(pVoid);
 }
 
-#endif
+#endif /* _NEW_DELETE_OPERATORS_ */
 
 #if defined(_SYS_GUID_OPERATOR_EQ_)
 #define _GUID_OPERATORS_
@@ -242,18 +224,16 @@ inline void __cdecl operator delete
 #ifndef _GUID_OPERATORS_
 #define _GUID_OPERATORS_
 
-__inline BOOL operator==(const GUID& guidOne, const GUID& guidOther)
-{
+__inline BOOL operator==(const GUID& guidOne, const GUID& guidOther) {
   return IsEqualGUIDAligned(guidOne,guidOther);
 }
-__inline BOOL operator!=(const GUID& guidOne, const GUID& guidOther)
-{
+
+__inline BOOL operator!=(const GUID& guidOne, const GUID& guidOther) {
   return !(guidOne == guidOther);
 }
 
-#endif
-
-#endif
+#endif /* _GUID_OPERATORS_ */
 
-#endif
+#endif /* __cplusplus */
 
+#endif /* _KCOM_ */