- 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
#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 /* _GUID_OPERATORS_ */
#endif
#endif
#endif /* __cplusplus */
#endif /* _KCOM_ */