Remove outdated warning

This commit is contained in:
david-swift 2025-02-08 13:14:04 +01:00
parent 3e3d5a0270
commit f5745817ec
12 changed files with 442 additions and 560 deletions

View File

@ -1,54 +0,0 @@
client:
name: basic
file-system: device-agnostic
tools: {}
targets:
"CWinRT-debug.dylib": ["<CWinRT-debug.dylib>"]
"CWinRT-debug.module": ["<CWinRT-debug.module>"]
"PackageStructure": ["<PackageStructure>"]
"main": ["<CWinRT-debug.dylib>","<CWinRT-debug.module>"]
"test": ["<CWinRT-debug.dylib>","<CWinRT-debug.module>"]
default: "main"
nodes:
"C:\\dev\\browser\\swift-cwinrt\\Sources\\CWinRT/":
is-directory-structure: true
content-exclusion-patterns: [".git",".build"]
commands:
"<CWinRT-debug.dylib>":
tool: phony
inputs: ["C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.dll"]
outputs: ["<CWinRT-debug.dylib>"]
"<CWinRT-debug.module>":
tool: phony
inputs: ["C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.build\\shim.c.o"]
outputs: ["<CWinRT-debug.module>"]
"C.CWinRT-debug.dylib":
tool: shell
inputs: ["C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.build\\shim.c.o","C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.product\\Objects.LinkFileList"]
outputs: ["C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.dll"]
description: "Linking C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.dll"
args: ["C:\\Users\\skirb\\AppData\\Local\\Programs\\Swift\\Toolchains\\0.0.0+Asserts\\usr\\bin\\swiftc.exe","-L","C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug","-o","C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.dll","-module-name","CWinRT","-emit-library","@C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.product\\Objects.LinkFileList","-runtime-compatibility-version","none","-target","x86_64-unknown-windows-msvc","-nostartfiles","-sdk","C:\\Users\\skirb\\AppData\\Local\\Programs\\Swift\\Platforms\\0.0.0\\Windows.platform\\Developer\\SDKs\\Windows.sdk","-libc","MD","-I","C:\\Users\\skirb\\AppData\\Local\\Programs\\Swift\\Platforms\\0.0.0\\Windows.platform\\Developer\\Library\\XCTest-development\\usr\\lib\\swift\\windows","-I","C:\\Users\\skirb\\AppData\\Local\\Programs\\Swift\\Platforms\\0.0.0\\Windows.platform\\Developer\\Library\\XCTest-development\\usr\\lib\\swift\\windows\\x86_64","-L","C:\\Users\\skirb\\AppData\\Local\\Programs\\Swift\\Platforms\\0.0.0\\Windows.platform\\Developer\\Library\\XCTest-development\\usr\\lib\\swift\\windows\\x86_64","-use-ld=lld","-g","-use-ld=lld","-Xlinker","-debug:dwarf","-Xlinker","-debug:dwarf"]
"C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.build\\shim.c.o":
tool: clang
inputs: ["C:\\dev\\browser\\swift-cwinrt\\Sources\\CWinRT\\shim.c"]
outputs: ["C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.build\\shim.c.o"]
description: "Compiling CWinRT shim.c"
args: ["C:\\Users\\skirb\\AppData\\Local\\Programs\\Swift\\Toolchains\\0.0.0+Asserts\\usr\\bin\\clang.exe","-target","x86_64-unknown-windows-msvc","-O0","-DSWIFT_PACKAGE=1","-DDEBUG=1","-fblocks","-I","C:\\dev\\browser\\swift-cwinrt\\Sources\\CWinRT\\include","-D_MT","-D_DLL","-Xclang","--dependent-lib=msvcrt","-gdwarf","-MD","-MT","dependencies","-MF","C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.build\\shim.c.d","-c","C:\\dev\\browser\\swift-cwinrt\\Sources\\CWinRT\\shim.c","-o","C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.build\\shim.c.o"]
deps: "C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.build\\shim.c.d"
"C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.product\\Objects.LinkFileList":
tool: write-auxiliary-file
inputs: ["<link-file-list>","C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.build\\shim.c.o"]
outputs: ["C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.product\\Objects.LinkFileList"]
description: "Write auxiliary file C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.product\\Objects.LinkFileList"
"PackageStructure":
tool: package-structure-tool
inputs: ["C:\\dev\\browser\\swift-cwinrt\\Sources\\CWinRT/","C:\\dev\\browser\\swift-cwinrt\\Package.swift","C:\\dev\\browser\\swift-cwinrt\\Package.resolved"]
outputs: ["<PackageStructure>"]
description: "Planning build"
allow-missing-inputs: true

View File

@ -1,11 +0,0 @@
{
"object" : {
"artifacts" : [
],
"dependencies" : [
]
},
"version" : 6
}

View File

@ -1,55 +0,0 @@
{
"builtTestProducts" : [
],
"copyCommands" : {
},
"explicitTargetDependencyImportCheckingMode" : {
"none" : {
}
},
"generatedSourceTargetSet" : [
],
"pluginDescriptions" : [
],
"swiftCommands" : {
},
"swiftFrontendCommands" : {
},
"swiftTargetScanArgs" : {
},
"targetDependencyMap" : {
"CWinRT" : [
]
},
"testDiscoveryCommands" : {
},
"testEntryPointCommands" : {
},
"writeCommands" : {
"C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.product\\Objects.LinkFileList" : {
"alwaysOutOfDate" : false,
"inputs" : [
{
"kind" : "virtual",
"name" : "<link-file-list>"
},
{
"kind" : "file",
"name" : "C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.build\\shim.c.o"
}
],
"outputFilePath" : "C:\\dev\\browser\\swift-cwinrt\\.build\\x86_64-unknown-windows-msvc\\debug\\CWinRT.product\\Objects.LinkFileList"
}
}
}

3
.gitignore vendored
View File

@ -55,3 +55,6 @@ dkms.conf
.generated .generated
swift-winrt.rsp swift-winrt.rsp
Package.resolved Package.resolved
# Swift
/.build

View File

@ -1,7 +1,6 @@
# swift-cwinrt # swift-cwinrt
> [!WARNING] This is based on [thebrowsercompany/swift-cwinrt](https://github.com/thebrowsercompany/swift-cwinrt).
> This project contains an outdated snapshot of a subset of WinRT projections generated with [swift-winrt](https://github.com/thebrowsercompany/swift-winrt), provided for illustration purposes. To use WinRT APIs in your Swift project, we recommend using [swift-winrt](https://github.com/thebrowsercompany/swift-winrt) directly to generate your own projections.
C API definition used by Swift Language bindings. C API definition used by Swift Language bindings.

View File

@ -1,237 +1,237 @@
// Works around limitations of Swift's C++ Interop when exposing the Windows.h GUID type to Swift. // Works around limitations of Swift's C++ Interop when exposing the Windows.h GUID type to Swift.
#pragma once #pragma once
typedef struct GUID_Workaround { typedef struct GUID_Workaround {
unsigned long Data1; unsigned long Data1;
unsigned short Data2; unsigned short Data2;
unsigned short Data3; unsigned short Data3;
unsigned char Data4[8]; unsigned char Data4[8];
} GUID_Workaround; } GUID_Workaround;
typedef GUID_Workaround CLSID_Workaround; typedef GUID_Workaround CLSID_Workaround;
typedef GUID_Workaround IID_Workaround; typedef GUID_Workaround IID_Workaround;
typedef GUID_Workaround UUID_Workaround; typedef GUID_Workaround UUID_Workaround;
// Functions depending on workaround types // Functions depending on workaround types
typedef struct IUnknown_Workaround IUnknown_Workaround; typedef struct IUnknown_Workaround IUnknown_Workaround;
typedef struct IInspectable_Workaround IInspectable_Workaround; typedef struct IInspectable_Workaround IInspectable_Workaround;
typedef struct IMarshal_Workaround IMarshal_Workaround; typedef struct IMarshal_Workaround IMarshal_Workaround;
#include <combaseapi.h> #include <combaseapi.h>
inline HRESULT CoCreateInstance_Workaround( inline HRESULT CoCreateInstance_Workaround(
const CLSID_Workaround* rclsid, const CLSID_Workaround* rclsid,
LPUNKNOWN pUnkOuter, LPUNKNOWN pUnkOuter,
DWORD dwClsContext, DWORD dwClsContext,
const IID_Workaround* riid, const IID_Workaround* riid,
LPVOID* ppv) { LPVOID* ppv) {
#ifdef __cplusplus #ifdef __cplusplus
return CoCreateInstance(*(CLSID*)rclsid, pUnkOuter, dwClsContext, *(IID*)riid, ppv); return CoCreateInstance(*(CLSID*)rclsid, pUnkOuter, dwClsContext, *(IID*)riid, ppv);
#else #else
return CoCreateInstance((REFCLSID)rclsid, pUnkOuter, dwClsContext, (REFIID)riid, ppv); return CoCreateInstance((REFCLSID)rclsid, pUnkOuter, dwClsContext, (REFIID)riid, ppv);
#endif #endif
} }
inline HRESULT CoCreateFreeThreadedMarshaler_Workaround(IUnknown_Workaround* pUnkOuter, IUnknown_Workaround** ppunkMarshal) { inline HRESULT CoCreateFreeThreadedMarshaler_Workaround(IUnknown_Workaround* pUnkOuter, IUnknown_Workaround** ppunkMarshal) {
return CoCreateFreeThreadedMarshaler((IUnknown*)pUnkOuter, (IUnknown**)ppunkMarshal); return CoCreateFreeThreadedMarshaler((IUnknown*)pUnkOuter, (IUnknown**)ppunkMarshal);
} }
inline int StringFromGUID2_Workaround(const GUID_Workaround* rguid, LPOLESTR lpsz, int cchMax) { inline int StringFromGUID2_Workaround(const GUID_Workaround* rguid, LPOLESTR lpsz, int cchMax) {
#ifdef __cplusplus #ifdef __cplusplus
return StringFromGUID2(*(GUID*)rguid, lpsz, cchMax); return StringFromGUID2(*(GUID*)rguid, lpsz, cchMax);
#else #else
return StringFromGUID2((REFGUID)rguid, lpsz, cchMax); return StringFromGUID2((REFGUID)rguid, lpsz, cchMax);
#endif #endif
} }
#include <rpc.h> #include <rpc.h>
inline RPC_STATUS UuidFromStringA_Workaround(RPC_CSTR StringUuid, UUID_Workaround* Uuid) { inline RPC_STATUS UuidFromStringA_Workaround(RPC_CSTR StringUuid, UUID_Workaround* Uuid) {
return UuidFromStringA(StringUuid, (UUID*)Uuid); return UuidFromStringA(StringUuid, (UUID*)Uuid);
} }
#include <roapi.h> #include <roapi.h>
inline HRESULT RoActivateInstance_Workaround( inline HRESULT RoActivateInstance_Workaround(
HSTRING activatableClassId, HSTRING activatableClassId,
IInspectable_Workaround** instance) { IInspectable_Workaround** instance) {
return RoActivateInstance(activatableClassId, (IInspectable**)instance); return RoActivateInstance(activatableClassId, (IInspectable**)instance);
} }
inline HRESULT RoGetActivationFactory_Workaround( inline HRESULT RoGetActivationFactory_Workaround(
HSTRING activatableClassId, HSTRING activatableClassId,
const IID_Workaround* iid, const IID_Workaround* iid,
void** factory) { void** factory) {
#ifdef __cplusplus #ifdef __cplusplus
return RoGetActivationFactory(activatableClassId, *(IID*)iid, factory); return RoGetActivationFactory(activatableClassId, *(IID*)iid, factory);
#else #else
return RoGetActivationFactory(activatableClassId, (REFIID)iid, factory); return RoGetActivationFactory(activatableClassId, (REFIID)iid, factory);
#endif #endif
} }
//------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------
// Begin the great lie // Begin the great lie
// Everything below will unknowingly use Xxx_Workaround. // Everything below will unknowingly use Xxx_Workaround.
// For example, uses of GUID will be redirected to GUID_Workaround. // For example, uses of GUID will be redirected to GUID_Workaround.
//------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------
// Preemptively include headers before swapping out the IID type // Preemptively include headers before swapping out the IID type
// This no-op the #includes in generated code, so that it instead relies of our workaround types // This no-op the #includes in generated code, so that it instead relies of our workaround types
#include <EventToken.h> #include <EventToken.h>
#include <inspectable.h> #include <inspectable.h>
#include <windowscontracts.h> #include <windowscontracts.h>
#define GUID GUID_Workaround #define GUID GUID_Workaround
#undef REFGUID // REFGUID is a #define, not a typedef #undef REFGUID // REFGUID is a #define, not a typedef
#define REFGUID const GUID* __MIDL_CONST #define REFGUID const GUID* __MIDL_CONST
#define IID IID_Workaround #define IID IID_Workaround
#undef REFIID // REFIID is a #define, not a typedef #undef REFIID // REFIID is a #define, not a typedef
#define REFIID const IID* __MIDL_CONST #define REFIID const IID* __MIDL_CONST
#define CLSID GUID #define CLSID GUID
#define IUnknown IUnknown_Workaround #define IUnknown IUnknown_Workaround
#define IUnknownVtbl IUnknownVtbl_Workaround #define IUnknownVtbl IUnknownVtbl_Workaround
#define IInspectable IInspectable_Workaround #define IInspectable IInspectable_Workaround
#define IInspectableVtbl IInspectableVtbl_Workaround #define IInspectableVtbl IInspectableVtbl_Workaround
#define IMarshal IMarshal_Workaround #define IMarshal IMarshal_Workaround
#define IMarshalVtbl IMarshalVtbl_Workaround #define IMarshalVtbl IMarshalVtbl_Workaround
// iunknown.h // iunknown.h
typedef struct IUnknownVtbl typedef struct IUnknownVtbl
{ {
HRESULT ( STDMETHODCALLTYPE *QueryInterface )( HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IUnknown * This, __RPC__in IUnknown * This,
/* [in] */ __RPC__in REFIID riid, /* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */ /* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject); _COM_Outptr_ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )( ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IUnknown * This); __RPC__in IUnknown * This);
ULONG ( STDMETHODCALLTYPE *Release )( ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IUnknown * This); __RPC__in IUnknown * This);
} IUnknownVtbl; } IUnknownVtbl;
interface IUnknown interface IUnknown
{ {
CONST_VTBL struct IUnknownVtbl *lpVtbl; CONST_VTBL struct IUnknownVtbl *lpVtbl;
}; };
// IInspectable.h // IInspectable.h
typedef struct IInspectableVtbl typedef struct IInspectableVtbl
{ {
BEGIN_INTERFACE BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )( HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IInspectable * This, __RPC__in IInspectable * This,
/* [in] */ __RPC__in REFIID riid, /* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */ /* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject); _COM_Outptr_ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )( ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IInspectable * This); __RPC__in IInspectable * This);
ULONG ( STDMETHODCALLTYPE *Release )( ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IInspectable * This); __RPC__in IInspectable * This);
HRESULT ( STDMETHODCALLTYPE *GetIids )( HRESULT ( STDMETHODCALLTYPE *GetIids )(
__RPC__in IInspectable * This, __RPC__in IInspectable * This,
/* [out] */ __RPC__out ULONG *iidCount, /* [out] */ __RPC__out ULONG *iidCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids); /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )(
__RPC__in IInspectable * This, __RPC__in IInspectable * This,
/* [out] */ __RPC__deref_out_opt HSTRING *className); /* [out] */ __RPC__deref_out_opt HSTRING *className);
HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )(
__RPC__in IInspectable * This, __RPC__in IInspectable * This,
/* [out] */ __RPC__out TrustLevel *trustLevel); /* [out] */ __RPC__out TrustLevel *trustLevel);
END_INTERFACE END_INTERFACE
} IInspectableVtbl; } IInspectableVtbl;
interface IInspectable interface IInspectable
{ {
CONST_VTBL struct IInspectableVtbl *lpVtbl; CONST_VTBL struct IInspectableVtbl *lpVtbl;
}; };
typedef struct IMarshalVtbl typedef struct IMarshalVtbl
{ {
HRESULT ( STDMETHODCALLTYPE *QueryInterface )( HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMarshal * This, IMarshal * This,
/* [in] */ REFIID riid, /* [in] */ REFIID riid,
/* [annotation][iid_is][out] */ /* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject); _COM_Outptr_ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )( ULONG ( STDMETHODCALLTYPE *AddRef )(
IMarshal * This); IMarshal * This);
ULONG ( STDMETHODCALLTYPE *Release )( ULONG ( STDMETHODCALLTYPE *Release )(
IMarshal * This); IMarshal * This);
HRESULT ( STDMETHODCALLTYPE *GetUnmarshalClass )( HRESULT ( STDMETHODCALLTYPE *GetUnmarshalClass )(
IMarshal * This, IMarshal * This,
/* [annotation][in] */ /* [annotation][in] */
_In_ REFIID riid, _In_ REFIID riid,
/* [annotation][unique][in] */ /* [annotation][unique][in] */
_In_opt_ void *pv, _In_opt_ void *pv,
/* [annotation][in] */ /* [annotation][in] */
_In_ DWORD dwDestContext, _In_ DWORD dwDestContext,
/* [annotation][unique][in] */ /* [annotation][unique][in] */
_Reserved_ void *pvDestContext, _Reserved_ void *pvDestContext,
/* [annotation][in] */ /* [annotation][in] */
_In_ DWORD mshlflags, _In_ DWORD mshlflags,
/* [annotation][out] */ /* [annotation][out] */
_Out_ CLSID *pCid); _Out_ CLSID *pCid);
HRESULT ( STDMETHODCALLTYPE *GetMarshalSizeMax )( HRESULT ( STDMETHODCALLTYPE *GetMarshalSizeMax )(
IMarshal * This, IMarshal * This,
/* [annotation][in] */ /* [annotation][in] */
_In_ REFIID riid, _In_ REFIID riid,
/* [annotation][unique][in] */ /* [annotation][unique][in] */
_In_opt_ void *pv, _In_opt_ void *pv,
/* [annotation][in] */ /* [annotation][in] */
_In_ DWORD dwDestContext, _In_ DWORD dwDestContext,
/* [annotation][unique][in] */ /* [annotation][unique][in] */
_Reserved_ void *pvDestContext, _Reserved_ void *pvDestContext,
/* [annotation][in] */ /* [annotation][in] */
_In_ DWORD mshlflags, _In_ DWORD mshlflags,
/* [annotation][out] */ /* [annotation][out] */
_Out_ DWORD *pSize); _Out_ DWORD *pSize);
HRESULT ( STDMETHODCALLTYPE *MarshalInterface )( HRESULT ( STDMETHODCALLTYPE *MarshalInterface )(
IMarshal * This, IMarshal * This,
/* [annotation][unique][in] */ /* [annotation][unique][in] */
_In_ IStream *pStm, _In_ IStream *pStm,
/* [annotation][in] */ /* [annotation][in] */
_In_ REFIID riid, _In_ REFIID riid,
/* [annotation][unique][in] */ /* [annotation][unique][in] */
_In_opt_ void *pv, _In_opt_ void *pv,
/* [annotation][in] */ /* [annotation][in] */
_In_ DWORD dwDestContext, _In_ DWORD dwDestContext,
/* [annotation][unique][in] */ /* [annotation][unique][in] */
_Reserved_ void *pvDestContext, _Reserved_ void *pvDestContext,
/* [annotation][in] */ /* [annotation][in] */
_In_ DWORD mshlflags); _In_ DWORD mshlflags);
HRESULT ( STDMETHODCALLTYPE *UnmarshalInterface )( HRESULT ( STDMETHODCALLTYPE *UnmarshalInterface )(
IMarshal * This, IMarshal * This,
/* [annotation][unique][in] */ /* [annotation][unique][in] */
_In_ IStream *pStm, _In_ IStream *pStm,
/* [annotation][in] */ /* [annotation][in] */
_In_ REFIID riid, _In_ REFIID riid,
/* [annotation][out] */ /* [annotation][out] */
_Outptr_ void **ppv); _Outptr_ void **ppv);
HRESULT ( STDMETHODCALLTYPE *ReleaseMarshalData )( HRESULT ( STDMETHODCALLTYPE *ReleaseMarshalData )(
IMarshal * This, IMarshal * This,
/* [annotation][unique][in] */ /* [annotation][unique][in] */
_In_ IStream *pStm); _In_ IStream *pStm);
HRESULT ( STDMETHODCALLTYPE *DisconnectObject )( HRESULT ( STDMETHODCALLTYPE *DisconnectObject )(
IMarshal * This, IMarshal * This,
/* [annotation][in] */ /* [annotation][in] */
_In_ DWORD dwReserved); _In_ DWORD dwReserved);
} IMarshalVtbl; } IMarshalVtbl;
interface IMarshal interface IMarshal
{ {
CONST_VTBL struct IMarshalVtbl *lpVtbl; CONST_VTBL struct IMarshalVtbl *lpVtbl;
}; };

View File

@ -1,74 +1,74 @@
// The real ivectorchangedeventargs.h will provide different definitions in C vs C++ compilation mode. // The real ivectorchangedeventargs.h will provide different definitions in C vs C++ compilation mode.
// Override it with ours so we ensure we get the C definitions. // Override it with ours so we ensure we get the C definitions.
#pragma once #pragma once
#include <windows.h> #include <windows.h>
#include <inspectable.h> #include <inspectable.h>
#if !defined(____x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs_INTERFACE_DEFINED__) #if !defined(____x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs_INTERFACE_DEFINED__ #define ____x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs_INTERFACE_DEFINED__
typedef interface __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs; typedef interface __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs;
typedef /* [v1_enum] */ typedef /* [v1_enum] */
enum __x_ABI_CWindows_CFoundation_CCollections_CCollectionChange enum __x_ABI_CWindows_CFoundation_CCollections_CCollectionChange
{ {
CollectionChange_Reset, CollectionChange_Reset,
CollectionChange_ItemInserted, CollectionChange_ItemInserted,
CollectionChange_ItemRemoved, CollectionChange_ItemRemoved,
CollectionChange_ItemChanged, CollectionChange_ItemChanged,
} __x_ABI_CWindows_CFoundation_CCollections_CCollectionChange; } __x_ABI_CWindows_CFoundation_CCollections_CCollectionChange;
/* [contract, version, pointer_default(unique), uuid("575933df-34fe-4480-af15-07691f3d5d9b"), object] */ /* [contract, version, pointer_default(unique), uuid("575933df-34fe-4480-af15-07691f3d5d9b"), object] */
typedef struct __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgsVtbl typedef struct __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgsVtbl
{ {
BEGIN_INTERFACE BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface)( HRESULT ( STDMETHODCALLTYPE *QueryInterface)(
__RPC__in __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs * This, __RPC__in __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs * This,
/* [in] */ __RPC__in REFIID riid, /* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */ /* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject _COM_Outptr_ void **ppvObject
); );
ULONG ( STDMETHODCALLTYPE *AddRef )( ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs * This __RPC__in __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs * This
); );
ULONG ( STDMETHODCALLTYPE *Release )( ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs * This __RPC__in __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs * This
); );
HRESULT ( STDMETHODCALLTYPE *GetIids )( HRESULT ( STDMETHODCALLTYPE *GetIids )(
__RPC__in __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs * This, __RPC__in __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs * This,
/* [out] */ __RPC__out ULONG *iidCount, /* [out] */ __RPC__out ULONG *iidCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids
); );
HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )(
__RPC__in __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs * This, __RPC__in __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs * This,
/* [out] */ __RPC__deref_out_opt HSTRING *className /* [out] */ __RPC__deref_out_opt HSTRING *className
); );
HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )(
__RPC__in __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs * This, __RPC__in __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs * This,
/* [OUT ] */ __RPC__out TrustLevel *trustLevel /* [OUT ] */ __RPC__out TrustLevel *trustLevel
); );
/* [propget] */HRESULT ( STDMETHODCALLTYPE *get_CollectionChange )( /* [propget] */HRESULT ( STDMETHODCALLTYPE *get_CollectionChange )(
__x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs * This, __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs * This,
/* [retval, out] */__RPC__out __x_ABI_CWindows_CFoundation_CCollections_CCollectionChange * value /* [retval, out] */__RPC__out __x_ABI_CWindows_CFoundation_CCollections_CCollectionChange * value
); );
/* [propget] */HRESULT ( STDMETHODCALLTYPE *get_Index )( /* [propget] */HRESULT ( STDMETHODCALLTYPE *get_Index )(
__x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs * This, __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs * This,
/* [retval, out] */__RPC__out unsigned int * value /* [retval, out] */__RPC__out unsigned int * value
); );
END_INTERFACE END_INTERFACE
} __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgsVtbl; } __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgsVtbl;
interface __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs interface __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgs
{ {
CONST_VTBL struct __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgsVtbl *lpVtbl; CONST_VTBL struct __x_ABI_CWindows_CFoundation_CCollections_CIVectorChangedEventArgsVtbl *lpVtbl;
}; };
#endif #endif

View File

@ -1,30 +1,30 @@
// The real MemoryBuffer.h doesn't provide C definitions, so we need to provide those here // The real MemoryBuffer.h doesn't provide C definitions, so we need to provide those here
// No pragma once, we might include this twice (once for the regular definitions, once for the workaround) // No pragma once, we might include this twice (once for the regular definitions, once for the workaround)
#include <objidl.h> #include <objidl.h>
#ifndef _IMEMORYBUFFERBYTEACCESS_DEFINED #ifndef _IMEMORYBUFFERBYTEACCESS_DEFINED
#define _IMEMORYBUFFERBYTEACCESS_DEFINED #define _IMEMORYBUFFERBYTEACCESS_DEFINED
typedef interface IMemoryBufferByteAccess IMemoryBufferByteAccess; typedef interface IMemoryBufferByteAccess IMemoryBufferByteAccess;
#endif #endif
typedef struct IMemoryBufferByteAccessVtbl typedef struct IMemoryBufferByteAccessVtbl
{ {
BEGIN_INTERFACE BEGIN_INTERFACE
HRESULT (STDMETHODCALLTYPE* QueryInterface)(__RPC__in IMemoryBufferByteAccess* This, HRESULT (STDMETHODCALLTYPE* QueryInterface)(__RPC__in IMemoryBufferByteAccess* This,
REFIID riid, REFIID riid,
_COM_Outptr_ void** ppvObject); _COM_Outptr_ void** ppvObject);
ULONG (STDMETHODCALLTYPE* AddRef)(__RPC__in IMemoryBufferByteAccess* This); ULONG (STDMETHODCALLTYPE* AddRef)(__RPC__in IMemoryBufferByteAccess* This);
ULONG (STDMETHODCALLTYPE* Release)(__RPC__in IMemoryBufferByteAccess* This); ULONG (STDMETHODCALLTYPE* Release)(__RPC__in IMemoryBufferByteAccess* This);
HRESULT (STDMETHODCALLTYPE* GetBuffer)(__RPC__in IMemoryBufferByteAccess* This, HRESULT (STDMETHODCALLTYPE* GetBuffer)(__RPC__in IMemoryBufferByteAccess* This,
BYTE** value, BYTE** value,
_Out_ UINT32* capacity); _Out_ UINT32* capacity);
END_INTERFACE END_INTERFACE
} IMemoryBufferByteAccessVtbl; } IMemoryBufferByteAccessVtbl;
interface IMemoryBufferByteAccess interface IMemoryBufferByteAccess
{ {
CONST_VTBL struct IMemoryBufferByteAccessVtbl* lpVtbl; CONST_VTBL struct IMemoryBufferByteAccessVtbl* lpVtbl;
}; };

View File

@ -1,57 +1,57 @@
// The real restrictederrorinfo.h will provide different definitions in C vs C++ compilation mode. // The real restrictederrorinfo.h will provide different definitions in C vs C++ compilation mode.
// Override it with ours so we ensure we get the C definitions. // Override it with ours so we ensure we get the C definitions.
// No pragma once, we might include this twice (once for the regular definitions, once for the workaround) // No pragma once, we might include this twice (once for the regular definitions, once for the workaround)
#include <combaseapi.h> #include <combaseapi.h>
#ifndef __IRestrictedErrorInfo_FWD_DEFINED__ #ifndef __IRestrictedErrorInfo_FWD_DEFINED__
#define __IRestrictedErrorInfo_FWD_DEFINED__ #define __IRestrictedErrorInfo_FWD_DEFINED__
typedef interface IRestrictedErrorInfo IRestrictedErrorInfo; typedef interface IRestrictedErrorInfo IRestrictedErrorInfo;
#endif #endif
#ifndef __IRestrictedErrorInfo_INTERFACE_DEFINED__ #ifndef __IRestrictedErrorInfo_INTERFACE_DEFINED__
#define __IRestrictedErrorInfo_INTERFACE_DEFINED__ #define __IRestrictedErrorInfo_INTERFACE_DEFINED__
EXTERN_C const IID IID_IRestrictedErrorInfo; EXTERN_C const IID IID_IRestrictedErrorInfo;
typedef struct IRestrictedErrorInfoVtbl typedef struct IRestrictedErrorInfoVtbl
{ {
BEGIN_INTERFACE BEGIN_INTERFACE
DECLSPEC_XFGVIRT(IUnknown, QueryInterface) DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
HRESULT ( STDMETHODCALLTYPE *QueryInterface )( HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IRestrictedErrorInfo * This, __RPC__in IRestrictedErrorInfo * This,
/* [in] */ __RPC__in REFIID riid, /* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */ /* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject); _COM_Outptr_ void **ppvObject);
DECLSPEC_XFGVIRT(IUnknown, AddRef) DECLSPEC_XFGVIRT(IUnknown, AddRef)
ULONG ( STDMETHODCALLTYPE *AddRef )( ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IRestrictedErrorInfo * This); __RPC__in IRestrictedErrorInfo * This);
DECLSPEC_XFGVIRT(IUnknown, Release) DECLSPEC_XFGVIRT(IUnknown, Release)
ULONG ( STDMETHODCALLTYPE *Release )( ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IRestrictedErrorInfo * This); __RPC__in IRestrictedErrorInfo * This);
DECLSPEC_XFGVIRT(IRestrictedErrorInfo, GetErrorDetails) DECLSPEC_XFGVIRT(IRestrictedErrorInfo, GetErrorDetails)
HRESULT ( STDMETHODCALLTYPE *GetErrorDetails )( HRESULT ( STDMETHODCALLTYPE *GetErrorDetails )(
__RPC__in IRestrictedErrorInfo * This, __RPC__in IRestrictedErrorInfo * This,
/* [out] */ __RPC__deref_out_opt BSTR *description, /* [out] */ __RPC__deref_out_opt BSTR *description,
/* [out] */ __RPC__out HRESULT *error, /* [out] */ __RPC__out HRESULT *error,
/* [out] */ __RPC__deref_out_opt BSTR *restrictedDescription, /* [out] */ __RPC__deref_out_opt BSTR *restrictedDescription,
/* [out] */ __RPC__deref_out_opt BSTR *capabilitySid); /* [out] */ __RPC__deref_out_opt BSTR *capabilitySid);
DECLSPEC_XFGVIRT(IRestrictedErrorInfo, GetReference) DECLSPEC_XFGVIRT(IRestrictedErrorInfo, GetReference)
HRESULT ( STDMETHODCALLTYPE *GetReference )( HRESULT ( STDMETHODCALLTYPE *GetReference )(
__RPC__in IRestrictedErrorInfo * This, __RPC__in IRestrictedErrorInfo * This,
/* [out] */ __RPC__deref_out_opt BSTR *reference); /* [out] */ __RPC__deref_out_opt BSTR *reference);
END_INTERFACE END_INTERFACE
} IRestrictedErrorInfoVtbl; } IRestrictedErrorInfoVtbl;
interface IRestrictedErrorInfo interface IRestrictedErrorInfo
{ {
CONST_VTBL struct IRestrictedErrorInfoVtbl *lpVtbl; CONST_VTBL struct IRestrictedErrorInfoVtbl *lpVtbl;
}; };
#endif #endif

View File

@ -1,32 +1,32 @@
// The real robuffer.h doesn't provide C definitions, so we need to provide those here // The real robuffer.h doesn't provide C definitions, so we need to provide those here
// No pragma once, we might include this twice (once for the regular definitions, once for the workaround) // No pragma once, we might include this twice (once for the regular definitions, once for the workaround)
#include <apiset.h> #include <apiset.h>
#include <apisetcconv.h> #include <apisetcconv.h>
#include <objidl.h> #include <objidl.h>
#ifndef _IBufferByteAccess_DEFINED #ifndef _IBufferByteAccess_DEFINED
#define _IBufferByteAccess_DEFINED #define _IBufferByteAccess_DEFINED
typedef interface C_IBufferByteAccess C_IBufferByteAccess; typedef interface C_IBufferByteAccess C_IBufferByteAccess;
#endif /* _IBufferByteAccess_DEFINED */ #endif /* _IBufferByteAccess_DEFINED */
typedef struct C_IBufferByteAccessVtbl typedef struct C_IBufferByteAccessVtbl
{ {
BEGIN_INTERFACE BEGIN_INTERFACE
HRESULT (STDMETHODCALLTYPE* QueryInterface)(__RPC__in C_IBufferByteAccess* This, HRESULT (STDMETHODCALLTYPE* QueryInterface)(__RPC__in C_IBufferByteAccess* This,
REFIID riid, REFIID riid,
_COM_Outptr_ void** ppvObject); _COM_Outptr_ void** ppvObject);
ULONG (STDMETHODCALLTYPE* AddRef)(__RPC__in C_IBufferByteAccess* This); ULONG (STDMETHODCALLTYPE* AddRef)(__RPC__in C_IBufferByteAccess* This);
ULONG (STDMETHODCALLTYPE* Release)(__RPC__in C_IBufferByteAccess* This); ULONG (STDMETHODCALLTYPE* Release)(__RPC__in C_IBufferByteAccess* This);
HRESULT (STDMETHODCALLTYPE* Buffer)(__RPC__in C_IBufferByteAccess* This, HRESULT (STDMETHODCALLTYPE* Buffer)(__RPC__in C_IBufferByteAccess* This,
BYTE** value); BYTE** value);
END_INTERFACE END_INTERFACE
} C_IBufferByteAccessVtbl; } C_IBufferByteAccessVtbl;
interface C_IBufferByteAccess interface C_IBufferByteAccess
{ {
CONST_VTBL struct C_IBufferByteAccessVtbl* lpVtbl; CONST_VTBL struct C_IBufferByteAccessVtbl* lpVtbl;
}; };

View File

@ -1,11 +1,11 @@
// ISO C requires a translation unit to contain at least one declaration. // ISO C requires a translation unit to contain at least one declaration.
extern unsigned _; extern unsigned _;
// To force the linker to produce a .lib file, currently required for dynamic // To force the linker to produce a .lib file, currently required for dynamic
// linking, at least the way our CMakeLists.txt are currently structured, we // linking, at least the way our CMakeLists.txt are currently structured, we
// also need to export a symbol. // also need to export a symbol.
#if defined(CWinRT_EXPORTS) #if defined(CWinRT_EXPORTS)
int __declspec(dllexport) force_lib_generation(void) { int __declspec(dllexport) force_lib_generation(void) {
return 1; return 1;
} }
#endif #endif