#include <xplatform.h>
#include <ComHelpers.h>
-#ifdef _WIN32
+#ifdef WINDOWS
#include <inspectable.h>
#include <WeakReference.h>
-#endif //_WIN32
+#endif // WINDOWS
namespace
{
STDMETHOD(QueryInterface)(
/* [in] */ REFIID riid,
- /* [iid_is][out] */ _COM_Outptr_ void __RPC_FAR* __RPC_FAR* ppvObject)
+ /* [iid_is][out] */ void ** ppvObject)
{
-#ifdef _WIN32
+#ifdef WINDOWS
return DoQueryInterface(riid, ppvObject, static_cast<IWeakReference*>(this));
#else
if (ppvObject == nullptr)
struct WeakReferencableObject : public IWeakReferenceSource, public IInspectable, public UnknownImpl
{
ComSmartPtr<WeakReference> _weakReference;
- STDMETHOD(GetWeakReference)(_COM_Outptr_ IWeakReference** ppWeakReference)
+ STDMETHOD(GetWeakReference)(IWeakReference** ppWeakReference)
{
if (!_weakReference)
{
STDMETHOD(QueryInterface)(
/* [in] */ REFIID riid,
- /* [iid_is][out] */ _COM_Outptr_ void __RPC_FAR* __RPC_FAR* ppvObject)
+ /* [iid_is][out] */ void ** ppvObject)
{
-#ifdef _WIN32
- HRESULT hr = DoQueryInterface(riid, ppvObject, static_cast<IWeakReferenceSource*>(this), static_cast<IInspectable*>(this), static_cast<IWeakReferenceSource*>(this));
-#else
HRESULT hr;
-
+#ifdef WINDOWS
+ hr = DoQueryInterface(riid, ppvObject, static_cast<IWeakReferenceSource*>(this), static_cast<IInspectable*>(this), static_cast<IWeakReferenceSource*>(this));
+#else
if (ppvObject == nullptr)
- hr = E_POINTER;
+ return E_POINTER;
if (riid == __uuidof(IUnknown) || riid == __uuidof(IWeakReferenceSource))
{
else
{
*ppvObject = nullptr;
- hr = E_NOINTERFACE;
+ return E_NOINTERFACE;
}
-
-
- if (hr == S_OK)
- DoAddRef();
+
+ DoAddRef();
#endif
if (SUCCEEDED(hr) && _weakReference)
{
#ifndef WINDOWS
-#define __RPC_FAR
#define DECLSPEC_UUID(x)
#define DECLSPEC_NOVTABLE
#define MIDL_INTERFACE(x) struct DECLSPEC_UUID(x) DECLSPEC_NOVTABLE
-//Check OBJC_TESTS presence to avoid interface definition on OSX (already defined)
-#ifndef OBJC_TESTS
-#define interface struct
-#endif
+
#define STDMETHOD(method) virtual HRESULT STDMETHODCALLTYPE method
#define STDMETHOD_(type,method) virtual type STDMETHODCALLTYPE method
+
+// SAL
#undef _In_
#define _In_
#undef _Outptr_
#define _Out_
#undef _In_opt_
#define _In_opt_
-#undef _COM_Outptr_
-#define _COM_Outptr_
#undef _Inout_
#define _Inout_
-#define __RPC__out
-#define __RPC__in
-#define __RPC__deref_out
-#define __RPC__deref_out_opt
-#define __RPC__deref_out_ecount_full_opt(x)
-#define __RPC_unique_pointer
-
-#define E_POINTER _HRESULT_TYPEDEF_(0x80004003L)
-#define E_NOINTERFACE _HRESULT_TYPEDEF_(0x80004002L)
-#define S_FALSE _HRESULT_TYPEDEF_(0x00000001L)
-#define E_OUTOFMEMORY _HRESULT_TYPEDEF_(0x8007000EL)
-#define E_NOTIMPL _HRESULT_TYPEDEF_(0x80004001L)
+// HRESULT values
+#define E_POINTER _HRESULT_TYPEDEF_(0x80004003L)
+#define E_NOINTERFACE _HRESULT_TYPEDEF_(0x80004002L)
+#define S_FALSE _HRESULT_TYPEDEF_(0x00000001L)
+#define E_OUTOFMEMORY _HRESULT_TYPEDEF_(0x8007000EL)
+#define E_NOTIMPL _HRESULT_TYPEDEF_(0x80004001L)
// Declaring a handle dummy struct for HSTRING the same way DECLARE_HANDLE does.
typedef struct HSTRING__{
} HSTRING__;
// Declare the HSTRING handle for C/C++
-typedef __RPC_unique_pointer HSTRING__* HSTRING;
+typedef HSTRING__* HSTRING;
typedef unsigned __int64 UINT64, *PUINT64;
-typedef unsigned short USHORT;
-typedef USHORT *PUSHORT;
-typedef unsigned char UCHAR;
-typedef UCHAR *PUCHAR;
#ifndef GUID_DEFINED
typedef struct _GUID {
- ULONG Data1; // NOTE: diff from Win32, for LP64
- USHORT Data2;
- USHORT Data3;
- UCHAR Data4[ 8 ];
+ ULONG Data1; // NOTE: diff from Win32, for LP64
+ unsigned short Data2;
+ unsigned short Data3;
+ unsigned char Data4[8];
} GUID;
typedef const GUID *LPCGUID;
#define GUID_DEFINED
#endif // !GUID_DEFINED
-
-#ifdef __cplusplus
#define REFGUID const GUID &
-#endif
-
-#ifdef __cplusplus
extern "C++" {
#if !defined _SYS_GUID_OPERATOR_EQ_ && !defined _NO_SYS_GUID_OPERATOR_EQ_
#define _SYS_GUID_OPERATOR_EQ_
{ return !IsEqualGUID(guidOne,guidOther); }
#endif
};
-#endif // __cplusplus
-
typedef GUID IID;
-#ifdef __cplusplus
#define REFIID const IID &
-#endif
-
-#define IID_NULL { 0x00000000, 0x0000, 0x0000, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-
#define IsEqualIID(riid1, riid2) IsEqualGUID(riid1, riid2)
#define __uuidof(type) IID_##type
-#ifndef assert
-#define assert(e) ((void)0)
-#endif // assert
-
#include <stddef.h>
#undef INT_MIN
#ifndef __IUnknown_INTERFACE_DEFINED__
#define __IUnknown_INTERFACE_DEFINED__
-
-//00000000-0000-0000-C000-000000000046
+// 00000000-0000-0000-C000-000000000046
const IID IID_IUnknown = { 0x00000000, 0x0000, 0x0000, { 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} };
MIDL_INTERFACE("00000000-0000-0000-C000-000000000046")
REFIID riid,
void **ppvObject) = 0;
- virtual ULONG STDMETHODCALLTYPE AddRef( void) = 0;
-
- virtual ULONG STDMETHODCALLTYPE Release( void) = 0;
+ virtual ULONG STDMETHODCALLTYPE AddRef(void) = 0;
+ virtual ULONG STDMETHODCALLTYPE Release(void) = 0;
};
#endif // __IUnknown_INTERFACE_DEFINED__
-struct IDispatch : public IUnknown
-{
-
-};
-
typedef /* [v1_enum] */
enum TrustLevel
- {
- BaseTrust = 0,
- PartialTrust = ( BaseTrust + 1 ) ,
- FullTrust = ( PartialTrust + 1 )
- } TrustLevel;
+{
+ BaseTrust = 0,
+ PartialTrust = ( BaseTrust + 1 ) ,
+ FullTrust = ( PartialTrust + 1 )
+} TrustLevel;
-//AF86E2E0-B12D-4c6a-9C5A-D7AA65101E90
+// AF86E2E0-B12D-4c6a-9C5A-D7AA65101E90
const IID IID_IInspectable = { 0xaf86e2e0, 0xb12d, 0x4c6a, { 0x9c, 0x5a, 0xd7, 0xaa, 0x65, 0x10, 0x1e, 0x90} };
MIDL_INTERFACE("AF86E2E0-B12D-4c6a-9C5A-D7AA65101E90")
{
public:
virtual HRESULT STDMETHODCALLTYPE GetIids(
- /* [out] */ __RPC__out ULONG * iidCount,
- /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID * *iids) = 0;
+ /* [out] */ ULONG * iidCount,
+ /* [size_is][size_is][out] */ IID * *iids) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRuntimeClassName(
- /* [out] */ __RPC__deref_out_opt HSTRING * className) = 0;
+ /* [out] */ HSTRING * className) = 0;
virtual HRESULT STDMETHODCALLTYPE GetTrustLevel(
- /* [out] */ __RPC__out TrustLevel * trustLevel) = 0;
+ /* [out] */ TrustLevel * trustLevel) = 0;
};
-
-//00000037-0000-0000-C000-000000000046
+// 00000037-0000-0000-C000-000000000046
const IID IID_IWeakReference = { 0x00000037, 0x0000, 0x0000, { 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} };
MIDL_INTERFACE("00000037-0000-0000-C000-000000000046")
{
public:
virtual HRESULT STDMETHODCALLTYPE Resolve(
- /* [in] */ __RPC__in REFIID riid,
- /* [iid_is][out] */ __RPC__deref_out IInspectable **objectReference) = 0;
-
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ IInspectable **objectReference) = 0;
};
-//00000038-0000-0000-C000-000000000046
+// 00000038-0000-0000-C000-000000000046
const IID IID_IWeakReferenceSource = { 0x00000038, 0x0000, 0x0000, { 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} };
MIDL_INTERFACE("00000038-0000-0000-C000-000000000046")
{
public:
virtual HRESULT STDMETHODCALLTYPE GetWeakReference(
- /* [retval][out] */ __RPC__deref_out_opt IWeakReference * *weakReference) = 0;
+ /* [retval][out] */ IWeakReference * *weakReference) = 0;
};
#define DECIMAL_NEG ((BYTE)0x80)
#define DECIMAL_SETZERO(dec) {DECIMAL_LO32(dec) = 0; DECIMAL_MID32(dec) = 0; DECIMAL_HI32(dec) = 0; DECIMAL_SIGNSCALE(dec) = 0;}
-#endif //!_Win32
+#endif // !WINDOWS
#endif // __XPLAT_H__