Sync with trunk (r48545)
[reactos.git] / include / ddk / punknown.h
index ef75fb8..9b801f7 100644 (file)
@@ -1,81 +1,81 @@
-/*\r
-    ReactOS Kernel-Mode COM\r
-    by Andrew Greenwood\r
-\r
-    Please see COPYING in the top-level directory for license information.\r
-*/\r
-\r
-#ifndef _UNKNOWN_H_\r
-#define _UNKNOWN_H_\r
-\r
-#include <windef.h>\r
-#define COM_NO_WINDOWS_H\r
-#include <basetyps.h>\r
-\r
-#ifdef PUT_GUIDS_HERE\r
-    #include <initguid.h>\r
-#endif\r
-\r
-\r
-/* ===============================================================\r
-    IUnknown\r
-*/\r
-\r
-#ifndef __IUnknown_INTERFACE_DEFINED__\r
-#define __IUnknown_INTERFACE_DEFINED__\r
-DEFINE_GUID(\r
-    IID_IUnknown,\r
-    0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x46);\r
-\r
-#undef INTERFACE\r
-#define INTERFACE IUnknown\r
-\r
-DECLARE_INTERFACE(IUnknown)\r
-{\r
-    STDMETHOD_(NTSTATUS, QueryInterface)( THIS_\r
-        IN  REFIID,\r
-        OUT PVOID*)\r
-    PURE;\r
-\r
-    STDMETHOD_(ULONG, AddRef)( THIS )\r
-    PURE;\r
-\r
-    STDMETHOD_(ULONG, Release)( THIS )\r
-    PURE;\r
-};\r
-#endif\r
-\r
-#undef INTERFACE\r
-\r
-typedef IUnknown *PUNKNOWN;\r
-\r
-\r
-/* ===============================================================\r
-    IUnknown definition\r
-    Boilerplate code macro for use in subclassed interfaces\r
-*/\r
-\r
-#define DEFINE_ABSTRACT_UNKNOWN() \\r
-    STDMETHOD_(NTSTATUS, QueryInterface)( THIS_ \\r
-        REFIID InterfaceId, \\r
-        PVOID* Interface) \\r
-    PURE; \\r
-\\r
-    STDMETHOD_(ULONG, AddRef)(THIS) \\r
-    PURE; \\r
-\\r
-    STDMETHOD_(ULONG, Release)(THIS) \\r
-    PURE;\r
-\r
-\r
-/* ===============================================================\r
-    Constructor callback definition\r
-*/\r
-\r
-typedef HRESULT (*PFNCREATEINSTANCE)(\r
-    OUT PUNKNOWN* Unknown,\r
-    IN  REFCLSID ClassId,\r
-    IN  PUNKNOWN OuterUnknown,\r
-    IN  POOL_TYPE PoolType);\r
-\r
-#endif\r
+/*
+    ReactOS Kernel-Mode COM
+    by Andrew Greenwood
+
+    This file is in the public domain.
+*/
+
+#ifndef _UNKNOWN_H_
+#define _UNKNOWN_H_
+
+#ifdef __cplusplus
+extern "C" {
+#include <wdm.h>
+}
+#else
+#include <wdm.h>
+#endif
+
+#include <windef.h>
+#define COM_NO_WINDOWS_H
+#include <basetyps.h>
+
+#ifdef PUT_GUIDS_HERE
+#include <initguid.h>
+#endif
+
+/* ===============================================================
+    IUnknown
+*/
+
+#ifndef __IUnknown_INTERFACE_DEFINED__
+#define __IUnknown_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUnknown,
+  0x00000000, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
+
+#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;
+};
+
+#endif /* __IUnknown_INTERFACE_DEFINED__ */
+
+#undef INTERFACE
+
+typedef IUnknown *PUNKNOWN;
+
+/* ===============================================================
+    IUnknown definition
+    Boilerplate code macro for use in subclassed interfaces
+*/
+
+#define DEFINE_ABSTRACT_UNKNOWN()             \
+  STDMETHOD_(NTSTATUS, QueryInterface)( THIS_ \
+    REFIID InterfaceId,                       \
+    PVOID* Interface) PURE;                   \
+                                              \
+  STDMETHOD_(ULONG, AddRef)(THIS) PURE;       \
+                                              \
+  STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+/* ===============================================================
+    Constructor callback definition
+*/
+
+typedef HRESULT
+(NTAPI *PFNCREATEINSTANCE)(
+  OUT PUNKNOWN* Unknown,
+  IN REFCLSID ClassId,
+  IN PUNKNOWN OuterUnknown,
+  IN POOL_TYPE PoolType);
+
+#endif /* _UNKNOWN_H_ */