- Move kcom.h to PSDK and apply a consistent formatting.

svn path=/branches/header-work/; revision=46890
This commit is contained in:
Amine Khaldi 2010-04-15 22:28:50 +00:00
parent 3ba7cea0e7
commit 2b0248408a

View file

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