* Fix several issues caused by the partitions change
* Add script for detecting missing imports by comparing against a baseline winmd
This commit is contained in:
Родитель
feeb054328
Коммит
2bdbd010e1
|
@ -9,6 +9,7 @@
|
||||||
*.user
|
*.user
|
||||||
*.userosscache
|
*.userosscache
|
||||||
*.sln.docstates
|
*.sln.docstates
|
||||||
|
*.modified.cs
|
||||||
|
|
||||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||||
*.userprefs
|
*.userprefs
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[submodule "ext/sdk-api"]
|
||||||
|
path = ext/sdk-api
|
||||||
|
url = https://github.com/MicrosoftDocs/sdk-api
|
||||||
|
shallow = true
|
|
@ -0,0 +1,59 @@
|
||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"type": "PowerShell",
|
||||||
|
"request": "launch",
|
||||||
|
"name": "PowerShell Launch Current File",
|
||||||
|
"script": "${file}",
|
||||||
|
"args": [],
|
||||||
|
"cwd": "${file}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "PowerShell",
|
||||||
|
"request": "launch",
|
||||||
|
"name": "PowerShell Launch Current File in Temporary Console",
|
||||||
|
"script": "${file}",
|
||||||
|
"args": [],
|
||||||
|
"cwd": "${file}",
|
||||||
|
"createTemporaryIntegratedConsole": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "PowerShell",
|
||||||
|
"request": "launch",
|
||||||
|
"name": "PowerShell Launch Current File w/Args Prompt",
|
||||||
|
"script": "${file}",
|
||||||
|
"args": [ "${command:SpecifyScriptArgs}" ],
|
||||||
|
"cwd": "${file}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "PowerShell",
|
||||||
|
"request": "launch",
|
||||||
|
"name": "PowerShell Launch DebugTest.ps1",
|
||||||
|
"script": "${workspaceRoot}/DebugTest.ps1",
|
||||||
|
"args": ["-Count 55 -DelayMilliseconds 250"],
|
||||||
|
"cwd": "${workspaceRoot}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "PowerShell",
|
||||||
|
"request": "launch",
|
||||||
|
"name": "PowerShell Interactive Session",
|
||||||
|
"cwd": "${workspaceRoot}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "PowerShell",
|
||||||
|
"request": "launch",
|
||||||
|
"name": "PowerShell Pester Tests",
|
||||||
|
"script": "Invoke-Pester",
|
||||||
|
"args": [],
|
||||||
|
"cwd": "${workspaceRoot}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "PowerShell",
|
||||||
|
"request": "attach",
|
||||||
|
"name": "PowerShell Attach to Host Process",
|
||||||
|
"processId": "${command:PickPSHostProcess}",
|
||||||
|
"runspaceId": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,102 @@
|
||||||
|
// A task runner that invokes Pester to run all Pester tests under the
|
||||||
|
// current workspace folder.
|
||||||
|
// NOTE: This Test task runner requires an updated version of Pester (>=4.0.3)
|
||||||
|
// in order for the problemMatcher to find failed test information (message, line, file).
|
||||||
|
// If you don't have that version, you can update Pester from the PowerShell Gallery
|
||||||
|
// with this command:
|
||||||
|
//
|
||||||
|
// PS C:\> Update-Module Pester
|
||||||
|
//
|
||||||
|
// If that gives an error like:
|
||||||
|
// "Module 'Pester' was not installed by using Install-Module, so it cannot be updated."
|
||||||
|
// then execute:
|
||||||
|
//
|
||||||
|
// PS C:\> Install-Module Pester -Scope CurrentUser -Force
|
||||||
|
//
|
||||||
|
// NOTE: The Clean, Build and Publish tasks require PSake. PSake can be installed
|
||||||
|
// from the PowerShell Gallery with this command:
|
||||||
|
//
|
||||||
|
// PS C:\> Install-Module PSake -Scope CurrentUser -Force
|
||||||
|
//
|
||||||
|
// Available variables which can be used inside of strings:
|
||||||
|
// ${workspaceFolder} the path of the workspace folder that contains the tasks.json file
|
||||||
|
// ${workspaceFolderBasename} the name of the workspace folder that contains the tasks.json file without any slashes (/)
|
||||||
|
// ${file} the current opened file
|
||||||
|
// ${relativeFile} the current opened file relative to the workspace folder containing the file
|
||||||
|
// ${fileBasename} the current opened file's basename
|
||||||
|
// ${fileBasenameNoExtension} the current opened file's basename without the extension
|
||||||
|
// ${fileDirname} the current opened file's dirname
|
||||||
|
// ${fileExtname} the current opened file's extension
|
||||||
|
// ${cwd} the task runner's current working directory on startup
|
||||||
|
// ${lineNumber} the current selected line number in the active file
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"windows": {
|
||||||
|
"options": {
|
||||||
|
"shell": {
|
||||||
|
"executable": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
|
||||||
|
"args": [
|
||||||
|
"-NoProfile",
|
||||||
|
"-ExecutionPolicy",
|
||||||
|
"Bypass",
|
||||||
|
"-Command"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"linux": {
|
||||||
|
"options": {
|
||||||
|
"shell": {
|
||||||
|
"executable": "/usr/bin/pwsh",
|
||||||
|
"args": [
|
||||||
|
"-NoProfile",
|
||||||
|
"-Command"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"osx": {
|
||||||
|
"options": {
|
||||||
|
"shell": {
|
||||||
|
"executable": "/usr/local/bin/pwsh",
|
||||||
|
"args": [
|
||||||
|
"-NoProfile",
|
||||||
|
"-Command"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "Clean",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "Invoke-PSake build.ps1 -taskList Clean"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Build",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "Invoke-PSake build.ps1 -taskList Build",
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Test",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "Invoke-Pester -PesterOption @{IncludeVSCodeMarker=$true}",
|
||||||
|
"group": {
|
||||||
|
"kind": "test",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"problemMatcher": [
|
||||||
|
"$pester"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Publish",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "Invoke-PSake build.ps1 -taskList Publish"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -1,3 +1,3 @@
|
||||||
@echo OFF
|
@echo OFF
|
||||||
powershell.exe -NoLogo -NoProfile -ExecutionPolicy ByPass -Command "& """%~dp0scripts\GenerateMetadataSource.ps1""" %*"
|
pwsh.exe -NoLogo -NoProfile -ExecutionPolicy ByPass -Command "& """%~dp0scripts\GenerateMetadataSource.ps1""" %*"
|
||||||
exit /B %ERRORLEVEL%
|
exit /B %ERRORLEVEL%
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
@echo OFF
|
||||||
|
powershell.exe -NoLogo -NoProfile -ExecutionPolicy ByPass -Command "& """%~dp0scripts\CompareBinaryAgainstBaseline.ps1""" %*"
|
||||||
|
exit /B %ERRORLEVEL%
|
|
@ -100,6 +100,12 @@ steps:
|
||||||
filePath: 'scripts\BuildMetadataBin.ps1'
|
filePath: 'scripts\BuildMetadataBin.ps1'
|
||||||
arguments: '-assemblyVersion $(PrepOutput.NugetVersion) -metadataSourcePath $(WinMetadataSourceDir)'
|
arguments: '-assemblyVersion $(PrepOutput.NugetVersion) -metadataSourcePath $(WinMetadataSourceDir)'
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Test metadata binary against baseline
|
||||||
|
inputs:
|
||||||
|
filePath: 'scripts\CompareBinaryAgainstBaseline.ps1'
|
||||||
|
arguments: '-assemblyVersion $(PrepOutput.NugetVersion)'
|
||||||
|
|
||||||
- task: PowerShell@2
|
- task: PowerShell@2
|
||||||
displayName: Build csWin32 projected binary
|
displayName: Build csWin32 projected binary
|
||||||
inputs:
|
inputs:
|
||||||
|
|
|
@ -5,6 +5,12 @@
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <sdkddkver.h>
|
#include <sdkddkver.h>
|
||||||
|
|
||||||
|
#include <winternl.h>
|
||||||
|
|
||||||
|
#define _NTDEF_
|
||||||
|
#define SECURITY_WIN32
|
||||||
|
#include <ntsecapi.h>
|
||||||
|
|
||||||
#include <shlobj_core.h>
|
#include <shlobj_core.h>
|
||||||
#include <cmnquery.h>
|
#include <cmnquery.h>
|
||||||
#include <dsclient.h>
|
#include <dsclient.h>
|
||||||
|
@ -17,3 +23,4 @@
|
||||||
#include <dsgetdc.h>
|
#include <dsgetdc.h>
|
||||||
#include <dsrole.h>
|
#include <dsrole.h>
|
||||||
#include <dsparse.h>
|
#include <dsparse.h>
|
||||||
|
#include <DsGetDC.h>
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
#define QCC_OS_GROUP_WINDOWS
|
||||||
|
|
||||||
|
#include "intrinfix.h"
|
||||||
|
|
||||||
|
#include <windows.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <MSAJTransport.h>
|
||||||
|
#include <alljoyn_c\AjAPI.h>
|
||||||
|
#include <alljoyn_c\AboutData.h>
|
||||||
|
#include <alljoyn_c\AboutObj.h>
|
||||||
|
#include <alljoyn_c\AboutObjectDescription.h>
|
||||||
|
#include <alljoyn_c\AboutProxy.h>
|
||||||
|
#include <alljoyn_c\ApplicationStateListener.h>
|
||||||
|
#include <alljoyn_c\AuthListener.h>
|
||||||
|
#include <alljoyn_c\AutoPinger.h>
|
||||||
|
#include <alljoyn_c\BusAttachment.h>
|
||||||
|
#include <alljoyn_c\BusListener.h>
|
||||||
|
#include <alljoyn_c\BusObject.h>
|
||||||
|
#include <alljoyn_c\version.h>
|
||||||
|
#include <alljoyn_c\Init.h>
|
||||||
|
#include <alljoyn_c\InterfaceDescription.h>
|
||||||
|
#include <alljoyn_c\KeyStoreListener.h>
|
||||||
|
#include <alljoyn_c\Message.h>
|
||||||
|
#include <alljoyn_c\MsgArg.h>
|
||||||
|
#include <alljoyn_c\Observer.h>
|
||||||
|
#include <alljoyn_c\PermissionConfigurationListener.h>
|
||||||
|
#include <alljoyn_c\PermissionConfigurator.h>
|
||||||
|
#include <alljoyn_c\AutoPinger.h>
|
||||||
|
#include <alljoyn_c\ProxyBusObject.h>
|
||||||
|
#include <alljoyn_c\SecurityApplicationProxy.h>
|
||||||
|
#include <alljoyn_c\SessionListener.h>
|
||||||
|
#include <alljoyn_c\Session.h>
|
|
@ -0,0 +1,43 @@
|
||||||
|
--file
|
||||||
|
<RepoRoot>\generation\Partitions\<PartitionName>\main.cpp
|
||||||
|
--output
|
||||||
|
<RepoRoot>\sources\Win32MetadataSource\generated\<PartitionName>.cs
|
||||||
|
--include-directory
|
||||||
|
<RepoRoot>/generation
|
||||||
|
<IncludeRoot>/shared
|
||||||
|
<IncludeRoot>/um
|
||||||
|
<IncludeRoot>/winrt
|
||||||
|
--traverse
|
||||||
|
<IncludeRoot>/um/alljoyn_c/AjAPI.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/Status.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/MsgArg.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/AboutData.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/AboutDataListener.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/PermissionConfigurator.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/ApplicationStateListener.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/KeyStoreListener.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/TransportMask.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/Session.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/Message.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/AuthListener.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/BusListener.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/InterfaceDescription.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/MessageReceiver.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/BusObject.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/ProxyBusObject.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/PermissionConfigurationListener.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/SessionListener.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/SessionPortListener.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/AboutListener.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/BusAttachment.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/AboutObj.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/AboutObjectDescription.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/AboutProxy.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/AutoPinger.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/version.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/Init.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/Observer.h
|
||||||
|
<IncludeRoot>/um/alljoyn_c/SecurityApplicationProxy.h
|
||||||
|
<IncludeRoot>/um/MSAJTransport.h
|
||||||
|
--namespace
|
||||||
|
Windows.Win32.AllJoyn
|
|
@ -13,5 +13,5 @@
|
||||||
#include <propsys.h>
|
#include <propsys.h>
|
||||||
#include <dmusics.h>
|
#include <dmusics.h>
|
||||||
#include <audiomediatype.h>
|
#include <audiomediatype.h>
|
||||||
#include <baseaudioprocessingobject.h>
|
//#include <baseaudioprocessingobject.h> contains only C++ class implementation
|
||||||
#include <msapofxproxy.h>
|
#include <msapofxproxy.h>
|
||||||
|
|
|
@ -17,6 +17,5 @@
|
||||||
<IncludeRoot>/um/audioenginebaseapo.h
|
<IncludeRoot>/um/audioenginebaseapo.h
|
||||||
<IncludeRoot>/um/dmusics.h
|
<IncludeRoot>/um/dmusics.h
|
||||||
<IncludeRoot>/um/audiomediatype.h
|
<IncludeRoot>/um/audiomediatype.h
|
||||||
<IncludeRoot>/um/baseaudioprocessingobject.h
|
|
||||||
--namespace
|
--namespace
|
||||||
Windows.Win32.Audio
|
Windows.Win32.Audio
|
||||||
|
|
|
@ -7,6 +7,11 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--exclude
|
||||||
|
_LIST_ENTRY
|
||||||
|
_PROCESSOR_NUMBER
|
||||||
|
_GROUP_AFFINITY
|
||||||
|
_ARM64EC_NT_CONTEXT
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/synchapi.h
|
<IncludeRoot>/um/synchapi.h
|
||||||
<IncludeRoot>/um/avrt.h
|
<IncludeRoot>/um/avrt.h
|
||||||
|
|
|
@ -85,8 +85,6 @@
|
||||||
#include <threadpoollegacyapiset.h>
|
#include <threadpoollegacyapiset.h>
|
||||||
#include <handleapi.h>
|
#include <handleapi.h>
|
||||||
#include <windowsceip.h>
|
#include <windowsceip.h>
|
||||||
#include <sspi.h> // For secext.h
|
|
||||||
#include <secext.h>
|
|
||||||
#include <versionhelpers.h>
|
#include <versionhelpers.h>
|
||||||
#include <realtimeapiset.h>
|
#include <realtimeapiset.h>
|
||||||
#include <timezoneapi.h>
|
#include <timezoneapi.h>
|
||||||
|
|
|
@ -7,6 +7,19 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--exclude
|
||||||
|
_LIST_ENTRY
|
||||||
|
_D3DCOLORVALUE
|
||||||
|
IDirectDraw
|
||||||
|
IDirectDrawSurface
|
||||||
|
IDirectDrawPalette
|
||||||
|
_DDVIDEOPORTCONNECT
|
||||||
|
_D3DMATRIX
|
||||||
|
CVssWriter
|
||||||
|
CreateWriter
|
||||||
|
CVssWriterEx
|
||||||
|
CreateWriterEx
|
||||||
|
CVssWriterEx2
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/shared/devpkey.h
|
<IncludeRoot>/shared/devpkey.h
|
||||||
<IncludeRoot>/um/codecapi.h
|
<IncludeRoot>/um/codecapi.h
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--exclude
|
||||||
|
_GUID
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/cguid.h
|
<IncludeRoot>/um/cguid.h
|
||||||
<IncludeRoot>/um/OleCtl.h
|
<IncludeRoot>/um/OleCtl.h
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--exclude
|
||||||
|
_DDPIXELFORMAT
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/audiosessiontypes.h
|
<IncludeRoot>/um/audiosessiontypes.h
|
||||||
<IncludeRoot>/um/AudioAPOTypes.h
|
<IncludeRoot>/um/AudioAPOTypes.h
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <sdkddkver.h>
|
#include <sdkddkver.h>
|
||||||
|
|
||||||
|
#include <wct.h>
|
||||||
|
#include <minidumpapiset.h>
|
||||||
#include <activdbg.h>
|
#include <activdbg.h>
|
||||||
#include <activprof.h>
|
#include <activprof.h>
|
||||||
#include <webapplication.h>
|
#include <webapplication.h>
|
||||||
|
|
|
@ -7,6 +7,9 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--exclude
|
||||||
|
IWICBitmapSource
|
||||||
|
IWICBitmap
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/d2d1_2helper.h
|
<IncludeRoot>/um/d2d1_2helper.h
|
||||||
<IncludeRoot>/um/d2d1_3helper.h
|
<IncludeRoot>/um/d2d1_3helper.h
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <sdkddkver.h>
|
#include <sdkddkver.h>
|
||||||
|
|
||||||
|
#define D3D10_NO_HELPERS
|
||||||
|
|
||||||
#include <d3d10_1.h>
|
#include <d3d10_1.h>
|
||||||
#include <d3d10.h>
|
#include <d3d10.h>
|
||||||
#include <d3d10sdklayers.h>
|
#include <d3d10sdklayers.h>
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <sdkddkver.h>
|
#include <sdkddkver.h>
|
||||||
|
|
||||||
|
#define D3D11_NO_HELPERS
|
||||||
|
|
||||||
#include <d3d11.h>
|
#include <d3d11.h>
|
||||||
#include <d3d11_1.h>
|
#include <d3d11_1.h>
|
||||||
#include <d3d11_2.h>
|
#include <d3d11_2.h>
|
||||||
|
|
|
@ -7,6 +7,10 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--exclude
|
||||||
|
_D3DCOLORVALUE
|
||||||
|
--with-type
|
||||||
|
D3DFORMAT=uint
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/shared/d3d9types.h
|
<IncludeRoot>/shared/d3d9types.h
|
||||||
<IncludeRoot>/shared/d3d9caps.h
|
<IncludeRoot>/shared/d3d9caps.h
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--exclude
|
||||||
|
DXGI_ADAPTER_FLAG_FORCE_DWORD
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/shared/dxgitype.h
|
<IncludeRoot>/shared/dxgitype.h
|
||||||
<IncludeRoot>/shared/dxgiformat.h
|
<IncludeRoot>/shared/dxgiformat.h
|
||||||
|
|
|
@ -7,6 +7,9 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--exclude
|
||||||
|
_D3DCOLORVALUE
|
||||||
|
DWRITE_FONT_AXIS_TAG
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/dwrite.h
|
<IncludeRoot>/um/dwrite.h
|
||||||
<IncludeRoot>/um/dwrite_1.h
|
<IncludeRoot>/um/dwrite_1.h
|
||||||
|
|
|
@ -11,3 +11,5 @@
|
||||||
#include <dinputd.h>
|
#include <dinputd.h>
|
||||||
#include <ntddkbd.h>
|
#include <ntddkbd.h>
|
||||||
#include <ntddmou.h>
|
#include <ntddmou.h>
|
||||||
|
#include <hidsdi.h>
|
||||||
|
#include <hidpi.h>
|
|
@ -12,5 +12,7 @@
|
||||||
<IncludeRoot>/shared/ntddkbd.h
|
<IncludeRoot>/shared/ntddkbd.h
|
||||||
<IncludeRoot>/um/dinput.h
|
<IncludeRoot>/um/dinput.h
|
||||||
<IncludeRoot>/shared/dinputd.h
|
<IncludeRoot>/shared/dinputd.h
|
||||||
|
<IncludeRoot>/shared/hidpi.h
|
||||||
|
<IncludeRoot>/shared/hidsdi.h
|
||||||
--namespace
|
--namespace
|
||||||
Windows.Win32.Hid
|
Windows.Win32.Hid
|
||||||
|
|
|
@ -8,3 +8,4 @@
|
||||||
|
|
||||||
#include <WinSock2.h>
|
#include <WinSock2.h>
|
||||||
#include <http.h>
|
#include <http.h>
|
||||||
|
#include <winhttp.h>
|
||||||
|
|
|
@ -9,5 +9,6 @@
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/http.h
|
<IncludeRoot>/um/http.h
|
||||||
|
<IncludeRoot>/um/winhttp.h
|
||||||
--namespace
|
--namespace
|
||||||
Windows.Win32.Http
|
Windows.Win32.Http
|
||||||
|
|
|
@ -7,3 +7,4 @@
|
||||||
#include <sdkddkver.h>
|
#include <sdkddkver.h>
|
||||||
|
|
||||||
#include <fltuser.h>
|
#include <fltuser.h>
|
||||||
|
//#include <ntifs.h>
|
||||||
|
|
|
@ -25,3 +25,4 @@
|
||||||
#include <usp10.h>
|
#include <usp10.h>
|
||||||
#include <muiload.h>
|
#include <muiload.h>
|
||||||
#include <gb18030.h>
|
#include <gb18030.h>
|
||||||
|
#include <icu.h>
|
|
@ -22,5 +22,6 @@
|
||||||
<IncludeRoot>/um/usp10.h
|
<IncludeRoot>/um/usp10.h
|
||||||
<IncludeRoot>/um/muiload.h
|
<IncludeRoot>/um/muiload.h
|
||||||
<IncludeRoot>/um/gb18030.h
|
<IncludeRoot>/um/gb18030.h
|
||||||
|
<IncludeRoot>/um/icu.h
|
||||||
--namespace
|
--namespace
|
||||||
Windows.Win32.Intl
|
Windows.Win32.Intl
|
||||||
|
|
|
@ -7,6 +7,9 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--with-type
|
||||||
|
XHR_CERT_IGNORE_FLAG=uint
|
||||||
|
XHR_CERT_ERROR_FLAG=uint
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/MsXml6.h
|
<IncludeRoot>/um/MsXml6.h
|
||||||
--namespace
|
--namespace
|
||||||
|
|
|
@ -12,5 +12,6 @@
|
||||||
<IncludeRoot>/um/jsrt9.h
|
<IncludeRoot>/um/jsrt9.h
|
||||||
--exclude
|
--exclude
|
||||||
JsRuntimeVersion
|
JsRuntimeVersion
|
||||||
|
JS_SOURCE_CONTEXT_NONE
|
||||||
--namespace
|
--namespace
|
||||||
Windows.Win32.Js
|
Windows.Win32.Js
|
||||||
|
|
|
@ -7,6 +7,12 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--exclude
|
||||||
|
_LARGE_INTEGER
|
||||||
|
_ULARGE_INTEGER
|
||||||
|
_LUID
|
||||||
|
COMPARTMENT_ID
|
||||||
|
_OBJECT_ATTRIBUTES
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/shared/ntdef.h
|
<IncludeRoot>/shared/ntdef.h
|
||||||
--namespace
|
--namespace
|
||||||
|
|
|
@ -7,3 +7,4 @@
|
||||||
#include <sdkddkver.h>
|
#include <sdkddkver.h>
|
||||||
|
|
||||||
#include <winml.h>
|
#include <winml.h>
|
||||||
|
#include <MLOperatorAuthor.h>
|
|
@ -7,7 +7,10 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--exclude
|
||||||
|
MLOperatorEdgeTypeConstrant
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/winml.h
|
<IncludeRoot>/um/winml.h
|
||||||
|
<IncludeRoot>/um/MLOperatorAuthor.h
|
||||||
--namespace
|
--namespace
|
||||||
Windows.Win32.MachineLearning
|
Windows.Win32.MachineLearning
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
--exclude
|
--exclude
|
||||||
MF_Plugin_Type
|
_MF_Plugin_Type
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/mfspatialaudio.h
|
<IncludeRoot>/um/mfspatialaudio.h
|
||||||
<IncludeRoot>/um/dxva9typ.h
|
<IncludeRoot>/um/dxva9typ.h
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--with-type
|
||||||
|
CLUSTER_PROPERTY_SYNTAX=uint
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/msclus.h
|
<IncludeRoot>/um/msclus.h
|
||||||
<IncludeRoot>/um/ClusApi.h
|
<IncludeRoot>/um/ClusApi.h
|
||||||
|
|
|
@ -7,6 +7,9 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--remap
|
||||||
|
_TuningSpacesForCLSID=_TuningSpacesForCLSID2
|
||||||
|
_SetAllocator=_SetAllocator2
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/mpeg2bits.h
|
<IncludeRoot>/um/mpeg2bits.h
|
||||||
<IncludeRoot>/shared/bdamedia.h
|
<IncludeRoot>/shared/bdamedia.h
|
||||||
|
|
|
@ -7,6 +7,9 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--exclude
|
||||||
|
_SOCKET_ADDRESS_LIST
|
||||||
|
SOCKET_ADDRESS_LIST
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/ndattrib.h
|
<IncludeRoot>/um/ndattrib.h
|
||||||
<IncludeRoot>/um/ndhelper.h
|
<IncludeRoot>/um/ndhelper.h
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--with-type
|
||||||
|
ATTRIBUTEID=uint
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/authif.h
|
<IncludeRoot>/um/authif.h
|
||||||
<IncludeRoot>/um/sdoias.h
|
<IncludeRoot>/um/sdoias.h
|
||||||
|
|
|
@ -11,4 +11,4 @@
|
||||||
<IncludeRoot>/um/propsys.h
|
<IncludeRoot>/um/propsys.h
|
||||||
<IncludeRoot>/um/propvarutil.h
|
<IncludeRoot>/um/propvarutil.h
|
||||||
--namespace
|
--namespace
|
||||||
Windows.Win32.roperties
|
Windows.Win32.Properties
|
||||||
|
|
|
@ -11,11 +11,11 @@
|
||||||
#include <rpcdce.h>
|
#include <rpcdce.h>
|
||||||
#include <winerror.h>
|
#include <winerror.h>
|
||||||
//#include <unknwnbase.h>
|
//#include <unknwnbase.h>
|
||||||
//#include <rpcndr.h>
|
#include <rpcndr.h>
|
||||||
#include <rpcasync.h>
|
#include <rpcasync.h>
|
||||||
#include <rpcdcep.h>
|
#include <rpcdcep.h>
|
||||||
#include <rpcnsi.h>
|
#include <rpcnsi.h>
|
||||||
//#include <midles.h>
|
#include <midles.h>
|
||||||
#include <rpc.h>
|
#include <rpc.h>
|
||||||
#include <rpcssl.h>
|
#include <rpcssl.h>
|
||||||
//#include <rpcproxy.h> Leaving out on purpose. Requires C-only interfaces and we don't think we need proxy metadata
|
//#include <rpcproxy.h> Leaving out on purpose. Requires C-only interfaces and we don't think we need proxy metadata
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--exclude
|
||||||
|
NDR_SCONTEXT
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/shared/rpcdce.h
|
<IncludeRoot>/shared/rpcdce.h
|
||||||
<IncludeRoot>/shared/rpcasync.h
|
<IncludeRoot>/shared/rpcasync.h
|
||||||
|
@ -15,5 +17,6 @@
|
||||||
<IncludeRoot>/um/Midles.h
|
<IncludeRoot>/um/Midles.h
|
||||||
<IncludeRoot>/shared/rpc.h
|
<IncludeRoot>/shared/rpc.h
|
||||||
<IncludeRoot>/um/rpcssl.h
|
<IncludeRoot>/um/rpcssl.h
|
||||||
|
<IncludeRoot>/shared/rpcndr.h
|
||||||
--namespace
|
--namespace
|
||||||
Windows.Win32.Rpc
|
Windows.Win32.Rpc
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#define SECURITY_WIN32
|
#define SECURITY_WIN32
|
||||||
#include <NTSecAPI.h>
|
#include <NTSecAPI.h>
|
||||||
#include <sspi.h>
|
#include <sspi.h>
|
||||||
|
#include <wincred.h>
|
||||||
#include <NTSecPKG.h>
|
#include <NTSecPKG.h>
|
||||||
#include <schannel.h>
|
#include <schannel.h>
|
||||||
|
|
||||||
|
@ -90,3 +91,4 @@ typedef struct _OLD_LARGE_INTEGER {
|
||||||
#include <slpublic.h>
|
#include <slpublic.h>
|
||||||
#include <diagnosticdataquery.h>
|
#include <diagnosticdataquery.h>
|
||||||
#include <diagnosticdataquerytypes.h>
|
#include <diagnosticdataquerytypes.h>
|
||||||
|
#include <security.h>
|
||||||
|
|
|
@ -7,6 +7,9 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--with-type
|
||||||
|
_tagSLDATATYPE=uint
|
||||||
|
SLDATATYPE=uint
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/diagnosticdataquerytypes.h
|
<IncludeRoot>/um/diagnosticdataquerytypes.h
|
||||||
<IncludeRoot>/um/celib.h
|
<IncludeRoot>/um/celib.h
|
||||||
|
@ -72,5 +75,7 @@
|
||||||
<IncludeRoot>/um/winsafer.h
|
<IncludeRoot>/um/winsafer.h
|
||||||
<IncludeRoot>/um/slpublic.h
|
<IncludeRoot>/um/slpublic.h
|
||||||
<IncludeRoot>/um/DiagnosticDataQuery.h
|
<IncludeRoot>/um/DiagnosticDataQuery.h
|
||||||
|
<IncludeRoot>/shared/security.h
|
||||||
|
<IncludeRoot>/shared/secext.h
|
||||||
--namespace
|
--namespace
|
||||||
Windows.Win32.Security
|
Windows.Win32.Security
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--remap
|
||||||
|
_NavigateToPidl=_NavigateToPidl2
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/cpl.h
|
<IncludeRoot>/um/cpl.h
|
||||||
<IncludeRoot>/um/hlink.h
|
<IncludeRoot>/um/hlink.h
|
||||||
|
|
|
@ -16,3 +16,4 @@
|
||||||
#include <propidlbase.h>
|
#include <propidlbase.h>
|
||||||
#include <coml2api.h>
|
#include <coml2api.h>
|
||||||
#include <propapi.h>
|
#include <propapi.h>
|
||||||
|
#include <esent.h>
|
||||||
|
|
|
@ -13,5 +13,6 @@
|
||||||
<IncludeRoot>/um/PropIdlBase.h
|
<IncludeRoot>/um/PropIdlBase.h
|
||||||
<IncludeRoot>/um/coml2api.h
|
<IncludeRoot>/um/coml2api.h
|
||||||
<IncludeRoot>/um/propapi.h
|
<IncludeRoot>/um/propapi.h
|
||||||
|
<IncludeRoot>/um/esent.h
|
||||||
--namespace
|
--namespace
|
||||||
Windows.Win32.Stg
|
Windows.Win32.Stg
|
||||||
|
|
|
@ -8,3 +8,4 @@
|
||||||
|
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
#include <wcsplugin.h>
|
#include <wcsplugin.h>
|
||||||
|
#include <Icm.h>
|
||||||
|
|
|
@ -9,5 +9,6 @@
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/wcsplugin.h
|
<IncludeRoot>/um/wcsplugin.h
|
||||||
|
<IncludeRoot>/um/icm.h
|
||||||
--namespace
|
--namespace
|
||||||
Windows.Win32.Wcs
|
Windows.Win32.Wcs
|
||||||
|
|
|
@ -65,5 +65,10 @@
|
||||||
#include <appcompatapi.h>
|
#include <appcompatapi.h>
|
||||||
#include <dsound.h>
|
#include <dsound.h>
|
||||||
#include <wldp.h>
|
#include <wldp.h>
|
||||||
|
#include <windowsceip.h>
|
||||||
|
#include <xmllite.h>
|
||||||
|
#include <devquery.h>
|
||||||
|
#include <fltdefs.h>
|
||||||
|
#include <statehelpers.h>
|
||||||
|
|
||||||
//#include <basetsd.h>
|
//#include <basetsd.h>
|
||||||
|
|
|
@ -7,6 +7,9 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--exclude
|
||||||
|
_UNICODE_STRING
|
||||||
|
_STRING
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/wldp.h
|
<IncludeRoot>/um/wldp.h
|
||||||
<IncludeRoot>/shared/tdiinfo.h
|
<IncludeRoot>/shared/tdiinfo.h
|
||||||
|
@ -17,7 +20,6 @@
|
||||||
<IncludeRoot>/shared/dciddi.h
|
<IncludeRoot>/shared/dciddi.h
|
||||||
<IncludeRoot>/um/realtimeapiset.h
|
<IncludeRoot>/um/realtimeapiset.h
|
||||||
<IncludeRoot>/um/timeprov.h
|
<IncludeRoot>/um/timeprov.h
|
||||||
<IncludeRoot>/shared/secext.h
|
|
||||||
<IncludeRoot>/um/windowsceip.h
|
<IncludeRoot>/um/windowsceip.h
|
||||||
<IncludeRoot>/um/profileapi.h
|
<IncludeRoot>/um/profileapi.h
|
||||||
<IncludeRoot>/um/WinBase.h
|
<IncludeRoot>/um/WinBase.h
|
||||||
|
@ -60,5 +62,11 @@
|
||||||
<IncludeRoot>/um/waasapi.h
|
<IncludeRoot>/um/waasapi.h
|
||||||
<IncludeRoot>/um/dmemmgr.h
|
<IncludeRoot>/um/dmemmgr.h
|
||||||
<IncludeRoot>/um/ddkernel.h
|
<IncludeRoot>/um/ddkernel.h
|
||||||
|
<IncludeRoot>/um/xmllite.h
|
||||||
|
<IncludeRoot>/um/devquery.h
|
||||||
|
<IncludeRoot>/um/devquerydef.h
|
||||||
|
<IncludeRoot>/um/fltdefs.h
|
||||||
|
<IncludeRoot>/um/devfiltertypes.h
|
||||||
|
<IncludeRoot>/um/statehelpers.h
|
||||||
--namespace
|
--namespace
|
||||||
Windows.Win32.WinProg
|
Windows.Win32.WinProg
|
||||||
|
|
|
@ -35,6 +35,19 @@
|
||||||
#include <windows.ui.xaml.interop.h>
|
#include <windows.ui.xaml.interop.h>
|
||||||
//#include <Windows.Web.UI.Interop.h> The interfaces make use of templates which ClangSharp can't yet correctly emit
|
//#include <Windows.Web.UI.Interop.h> The interfaces make use of templates which ClangSharp can't yet correctly emit
|
||||||
|
|
||||||
|
#include <hstring.h>
|
||||||
|
#include <winstring.h>
|
||||||
|
#include <restrictederrorinfo.h>
|
||||||
|
#include <roapi.h>
|
||||||
|
#include <robuffer.h>
|
||||||
|
#include <roerrorapi.h>
|
||||||
|
#include <rometadata.h>
|
||||||
|
//#include <rometadataapi.h>
|
||||||
|
//#include <rometadataresolution.h>
|
||||||
|
#include <roparameterizediid.h>
|
||||||
|
#include <roregistrationapi.h>
|
||||||
|
#include <shcore.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#include <winnt.h>
|
#include <winnt.h>
|
||||||
#include <winstring.h>
|
#include <winstring.h>
|
||||||
|
|
|
@ -7,6 +7,12 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--exclude
|
||||||
|
PFNGETACTIVATIONFACTORY
|
||||||
|
RO_REGISTRATION_COOKIE
|
||||||
|
RoGetActivatableClassRegistration
|
||||||
|
Windows::Foundation::Diagnostics::RoErrorReportingFlags
|
||||||
|
ABI::Windows::Foundation::Diagnostics::RoErrorReportingFlags
|
||||||
--traverse
|
--traverse
|
||||||
<RepoRoot>\generation\Partitions\<PartitionName>\main.cpp
|
<RepoRoot>\generation\Partitions\<PartitionName>\main.cpp
|
||||||
<IncludeRoot>/um/accountssettingspaneinterop.h
|
<IncludeRoot>/um/accountssettingspaneinterop.h
|
||||||
|
@ -35,5 +41,17 @@
|
||||||
<IncludeRoot>/winrt/windows.ui.xaml.interop.h
|
<IncludeRoot>/winrt/windows.ui.xaml.interop.h
|
||||||
<IncludeRoot>/winrt/Windows.Web.UI.Interop.h
|
<IncludeRoot>/winrt/Windows.Web.UI.Interop.h
|
||||||
<IncludeRoot>/winrt/inspectable.h
|
<IncludeRoot>/winrt/inspectable.h
|
||||||
|
<IncludeRoot>/winrt/roapi.h
|
||||||
|
<IncludeRoot>/winrt/robuffer.h
|
||||||
|
<IncludeRoot>/winrt/roerrorapi.h
|
||||||
|
<IncludeRoot>/winrt/rometadata.h
|
||||||
|
<IncludeRoot>/winrt/RoMetadataApi.h
|
||||||
|
<IncludeRoot>/winrt/rometadataresolution.h
|
||||||
|
<IncludeRoot>/winrt/roparameterizediid.h
|
||||||
|
<IncludeRoot>/winrt/roregistrationapi.h
|
||||||
|
<IncludeRoot>/winrt/shcore.h
|
||||||
|
<IncludeRoot>/winrt/winstring.h
|
||||||
|
<IncludeRoot>/winrt/hstring.h
|
||||||
|
<IncludeRoot>/um/restrictederrorinfo.h
|
||||||
--namespace
|
--namespace
|
||||||
Windows.Win32.WinRt
|
Windows.Win32.WinRT
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
|
|
||||||
#include <scclient.h>
|
#include <scclient.h>
|
||||||
#include <mswmdm.h>
|
#include <mswmdm.h>
|
||||||
#include <scserver.h>
|
// #include <scserver.h> Only contains C++ implementation code
|
||||||
#include <wmdmlog.h>
|
#include <wmdmlog.h>
|
||||||
#include <mtpext.h>
|
#include <mtpext.h>
|
||||||
|
|
||||||
|
// Purposely not traversing scclient.h in settings.rsp. Only contains C++ implementation code
|
||||||
|
|
|
@ -10,9 +10,7 @@
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/mtpext.h
|
<IncludeRoot>/um/mtpext.h
|
||||||
<IncludeRoot>/um/sac.h
|
<IncludeRoot>/um/sac.h
|
||||||
<IncludeRoot>/um/scclient.h
|
|
||||||
<IncludeRoot>/um/mswmdm.h
|
<IncludeRoot>/um/mswmdm.h
|
||||||
<IncludeRoot>/um/scserver.h
|
|
||||||
<IncludeRoot>/um/wmdmlog.h
|
<IncludeRoot>/um/wmdmlog.h
|
||||||
--namespace
|
--namespace
|
||||||
Windows.Win32.Wmdm
|
Windows.Win32.Wmdm
|
||||||
|
|
|
@ -8,3 +8,4 @@
|
||||||
|
|
||||||
#include <webservices.h>
|
#include <webservices.h>
|
||||||
#include <icontentprefetchertasktrigger.h>
|
#include <icontentprefetchertasktrigger.h>
|
||||||
|
#include <webauthn.h>
|
||||||
|
|
|
@ -7,8 +7,11 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--exclude
|
||||||
|
_SecPkgContext_IssuerListInfoEx
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/um/WebServices.h
|
<IncludeRoot>/um/WebServices.h
|
||||||
<IncludeRoot>/um/IContentPrefetcherTaskTrigger.h
|
<IncludeRoot>/um/IContentPrefetcherTaskTrigger.h
|
||||||
|
<IncludeRoot>/um/webauthn.h
|
||||||
--namespace
|
--namespace
|
||||||
Windows.Win32.Wsw
|
Windows.Win32.Wsw
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <sdkddkver.h>
|
#include <sdkddkver.h>
|
||||||
|
|
||||||
#include <xapobase.h>
|
#include <xapo.h>
|
||||||
|
//#include <xapobase.h> Class implementations we don't want emitted
|
||||||
#include <xapofx.h>
|
#include <xapofx.h>
|
||||||
#include <xaudio2.h>
|
#include <xaudio2.h>
|
||||||
#include <xaudio2fx.h>
|
#include <xaudio2fx.h>
|
||||||
|
|
|
@ -7,9 +7,10 @@
|
||||||
<IncludeRoot>/shared
|
<IncludeRoot>/shared
|
||||||
<IncludeRoot>/um
|
<IncludeRoot>/um
|
||||||
<IncludeRoot>/winrt
|
<IncludeRoot>/winrt
|
||||||
|
--exclude
|
||||||
|
CXAPOBase
|
||||||
--traverse
|
--traverse
|
||||||
<IncludeRoot>/shared/basetyps.h
|
<IncludeRoot>/shared/basetyps.h
|
||||||
<IncludeRoot>/um/xapobase.h
|
|
||||||
<IncludeRoot>/um/xapofx.h
|
<IncludeRoot>/um/xapofx.h
|
||||||
<IncludeRoot>/um/xaudio2.h
|
<IncludeRoot>/um/xaudio2.h
|
||||||
<IncludeRoot>/um/xaudio2fx.h
|
<IncludeRoot>/um/xaudio2fx.h
|
||||||
|
|
|
@ -1052,7 +1052,7 @@ _D3D12_SHADER_TYPE_DESC=D3D12_SHADER_TYPE_DESC
|
||||||
_D3D12_SHADER_VARIABLE_DESC=D3D12_SHADER_VARIABLE_DESC
|
_D3D12_SHADER_VARIABLE_DESC=D3D12_SHADER_VARIABLE_DESC
|
||||||
_D3D12_SIGNATURE_PARAMETER_DESC=D3D12_SIGNATURE_PARAMETER_DESC
|
_D3D12_SIGNATURE_PARAMETER_DESC=D3D12_SIGNATURE_PARAMETER_DESC
|
||||||
_D3DCOLORVALUE=DXGI_RGBA
|
_D3DCOLORVALUE=DXGI_RGBA
|
||||||
_D3DMATRIX=D2D_MATRIX_4X4_F
|
_D3DMATRIX=D3DMATRIX
|
||||||
_D3D_CBUFFER_TYPE=D3D_CBUFFER_TYPE
|
_D3D_CBUFFER_TYPE=D3D_CBUFFER_TYPE
|
||||||
_D3D_INCLUDE_TYPE=D3D_INCLUDE_TYPE
|
_D3D_INCLUDE_TYPE=D3D_INCLUDE_TYPE
|
||||||
_D3D_PARAMETER_FLAGS=D3D_PARAMETER_FLAGS
|
_D3D_PARAMETER_FLAGS=D3D_PARAMETER_FLAGS
|
||||||
|
@ -9420,3 +9420,7 @@ _SMB_COMPRESSION_INFO=SMB_COMPRESSION_INFO
|
||||||
_SMB_USE_OPTION_COMPRESSION_PARAMETERS=SMB_USE_OPTION_COMPRESSION_PARAMETERS
|
_SMB_USE_OPTION_COMPRESSION_PARAMETERS=SMB_USE_OPTION_COMPRESSION_PARAMETERS
|
||||||
_TIMESTAMPING_CONFIG=TIMESTAMPING_CONFIG
|
_TIMESTAMPING_CONFIG=TIMESTAMPING_CONFIG
|
||||||
_PRIORITY_STATUS=PRIORITY_STATUS
|
_PRIORITY_STATUS=PRIORITY_STATUS
|
||||||
|
NDR_CCONTEXT=IntPtr
|
||||||
|
NDR_SCONTEXT=NDR_SCONTEXT_1*
|
||||||
|
RO_REGISTRATION_COOKIE=IntPtr
|
||||||
|
_WINHTTP_MATCH_CONNECTION_GUID=WINHTTP_MATCH_CONNECTION_GUID
|
||||||
|
|
|
@ -23,6 +23,7 @@ log-potential-typedef-remappings
|
||||||
exclude-funcs-with-body
|
exclude-funcs-with-body
|
||||||
generate-cpp-attributes
|
generate-cpp-attributes
|
||||||
generate-native-inheritance-attribute
|
generate-native-inheritance-attribute
|
||||||
|
dont-use-using-statics-for-enums
|
||||||
--headerFile
|
--headerFile
|
||||||
generation\header.txt
|
generation\header.txt
|
||||||
--methodClassName
|
--methodClassName
|
||||||
|
|
|
@ -3,6 +3,7 @@ using Windows.Win32.Interop
|
||||||
|
|
||||||
using Windows.Win32.Ad
|
using Windows.Win32.Ad
|
||||||
using Windows.Win32.Adsi
|
using Windows.Win32.Adsi
|
||||||
|
using Windows.Win32.AllJoyn
|
||||||
using Windows.Win32.Amsi
|
using Windows.Win32.Amsi
|
||||||
using Windows.Win32.AppxPkg
|
using Windows.Win32.AppxPkg
|
||||||
using Windows.Win32.Audio
|
using Windows.Win32.Audio
|
||||||
|
@ -108,7 +109,7 @@ using Windows.Win32.Pla
|
||||||
using Windows.Win32.Policy
|
using Windows.Win32.Policy
|
||||||
using Windows.Win32.ProcSnap
|
using Windows.Win32.ProcSnap
|
||||||
using Windows.Win32.ProjFs
|
using Windows.Win32.ProjFs
|
||||||
using Windows.Win32.roperties
|
using Windows.Win32.Properties
|
||||||
using Windows.Win32.PsApi
|
using Windows.Win32.PsApi
|
||||||
using Windows.Win32.Qos
|
using Windows.Win32.Qos
|
||||||
using Windows.Win32.Rdc
|
using Windows.Win32.Rdc
|
||||||
|
@ -164,7 +165,7 @@ using Windows.Win32.WinInet
|
||||||
using Windows.Win32.WinLocation
|
using Windows.Win32.WinLocation
|
||||||
using Windows.Win32.WinProg
|
using Windows.Win32.WinProg
|
||||||
using Windows.Win32.WinRm
|
using Windows.Win32.WinRm
|
||||||
using Windows.Win32.WinRt
|
using Windows.Win32.WinRT
|
||||||
using Windows.Win32.WinSat
|
using Windows.Win32.WinSat
|
||||||
using Windows.Win32.WinSensors
|
using Windows.Win32.WinSensors
|
||||||
using Windows.Win32.WinSock
|
using Windows.Win32.WinSock
|
||||||
|
@ -187,3 +188,4 @@ using Windows.Win32.XAudio2
|
||||||
using Windows.Win32.Xblidp
|
using Windows.Win32.Xblidp
|
||||||
using Windows.Win32.XInput
|
using Windows.Win32.XInput
|
||||||
using Windows.Win32.Xps
|
using Windows.Win32.Xps
|
||||||
|
using IServiceProvider = Windows.Win32.Base.IServiceProvider;
|
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
|
@ -31,7 +31,6 @@ $metadataInteropBin = "$metadataInteropPath\bin\Release\netstandard2.1\Windows.W
|
||||||
|
|
||||||
Copy-Item $metadataInteropBin $binDir
|
Copy-Item $metadataInteropBin $binDir
|
||||||
|
|
||||||
$outputWinmdFileName = "$binDir\Windows.Win32.winmd"
|
|
||||||
$remapFileName = "$metadataSourcePath\remap.rsp"
|
$remapFileName = "$metadataSourcePath\remap.rsp"
|
||||||
|
|
||||||
Write-Output "`n"
|
Write-Output "`n"
|
||||||
|
|
|
@ -19,11 +19,39 @@ function Replace-Text
|
||||||
Set-Content -path $path -Encoding UTF8 -value $content
|
Set-Content -path $path -Encoding UTF8 -value $content
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Get-LibMappingsFile
|
||||||
|
{
|
||||||
|
param ([string]$artifactsDir, [string]$version)
|
||||||
|
|
||||||
|
$generationOutArtifactsDir = "$artifactsDir\output"
|
||||||
|
Create-Directory $generationOutArtifactsDir
|
||||||
|
|
||||||
|
$libMappingOutputFileName = Join-Path -Path $generationOutArtifactsDir -ChildPath "$version.libMappings.rsp"
|
||||||
|
|
||||||
|
return $libMappingOutputFileName
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-PrepLibMappingsFile
|
||||||
|
{
|
||||||
|
param ([string]$artifactsDir, [string]$version)
|
||||||
|
|
||||||
|
$libMappingOutputFileName = Get-LibMappingsFile $artifactsDir $version
|
||||||
|
|
||||||
|
Write-Output "Creating metadata source for $partitionName..."
|
||||||
|
if (!(Test-Path $libMappingOutputFileName))
|
||||||
|
{
|
||||||
|
Write-Output "Creating lib mapping file: $libMappingOutputFileName"
|
||||||
|
$libDirectory = "$nugetDestPackagesDir\Microsoft.Windows.SDK.CPP.x64.$version\c\um\x64"
|
||||||
|
& $PSScriptRoot\CreateProcLibMappingForAllLibs.ps1 -libDirectory $libDirectory -outputFileName $libMappingOutputFileName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$defaultWinSDKNugetVersion = "10.0.19041.5"
|
$defaultWinSDKNugetVersion = "10.0.19041.5"
|
||||||
|
|
||||||
$rootDir = [System.IO.Path]::GetFullPath("$PSScriptRoot\..")
|
$rootDir = [System.IO.Path]::GetFullPath("$PSScriptRoot\..")
|
||||||
$toolsDir = "$rootDir\tools"
|
$toolsDir = "$rootDir\tools"
|
||||||
$binDir = "$rootDir\bin"
|
$binDir = "$rootDir\bin"
|
||||||
|
$outputWinmdFileName = "$binDir\Windows.Win32.winmd"
|
||||||
$sourcesDir = "$rootDir\sources"
|
$sourcesDir = "$rootDir\sources"
|
||||||
$partitionsDir = "$rootDir\generation\Partitions"
|
$partitionsDir = "$rootDir\generation\Partitions"
|
||||||
$sdkApiPath = "$rootDir\ext\sdk-api"
|
$sdkApiPath = "$rootDir\ext\sdk-api"
|
||||||
|
|
|
@ -0,0 +1,61 @@
|
||||||
|
param
|
||||||
|
(
|
||||||
|
[string]
|
||||||
|
$assemblyVersion,
|
||||||
|
|
||||||
|
[string]
|
||||||
|
$winmdPath
|
||||||
|
)
|
||||||
|
|
||||||
|
. "$PSScriptRoot\CommonUtils.ps1"
|
||||||
|
|
||||||
|
if (!$assemblyVersion)
|
||||||
|
{
|
||||||
|
$assemblyVersion = $defaultWinSDKNugetVersion
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$winmdPath)
|
||||||
|
{
|
||||||
|
$winmdPath = $outputWinmdFileName
|
||||||
|
}
|
||||||
|
|
||||||
|
function FindBestBaselineWinmd
|
||||||
|
{
|
||||||
|
param([int] $buildNumber)
|
||||||
|
|
||||||
|
$bestDir = ""
|
||||||
|
$versionNames = get-childitem $PSScriptRoot\BaselineWinmd
|
||||||
|
foreach ($versionDir in $versionNames)
|
||||||
|
{
|
||||||
|
$baselineVersion = [int]($versionDir.Name.Split(".")[2])
|
||||||
|
if ($baselineVersion -gt $buildNumber)
|
||||||
|
{
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
$bestDir = $versionDir.Name
|
||||||
|
}
|
||||||
|
|
||||||
|
return $bestDir
|
||||||
|
}
|
||||||
|
|
||||||
|
$buildNumber = [int]($assemblyVersion.Split(".")[2])
|
||||||
|
$baselineWinmdDir = FindBestBaselineWinmd $buildNumber
|
||||||
|
if ($baselineWinmdDir -eq "")
|
||||||
|
{
|
||||||
|
Write-Output "Failed to find a baseline winmd to compare against."
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
$baselineWinmd = "$PSScriptRoot\BaselineWinmd\$baselineWinmdDir\Windows.Win32.winmd"
|
||||||
|
|
||||||
|
$winmdUtilsPath = "$sourcesDir\WinmdUtils"
|
||||||
|
$winmdUtilsPathProj = "$winmdUtilsPath\WinmdUtils.csproj"
|
||||||
|
$winmdUtilsPathBin = "$winmdUtilsPath\bin\Release\netcoreapp3.1\WinmdUtils.dll"
|
||||||
|
& dotnet build $winmdUtilsPathProj -c Release
|
||||||
|
|
||||||
|
Write-Output "`n"
|
||||||
|
Write-Output "Comparing $outputWinmdFileName against baseline $baselineWinmd..."
|
||||||
|
Write-Output "Calling: dotnet $winmdUtilsPathBin showMissingImports --first $baselineWinmd --second $outputWinmdFileName"
|
||||||
|
|
||||||
|
& dotnet $winmdUtilsPathBin showMissingImports --first $baselineWinmd --second $outputWinmdFileName
|
|
@ -144,14 +144,29 @@ Create-Directory $nugetDestPackagesDir
|
||||||
Create-Directory $sdkGeneratedSourceDir
|
Create-Directory $sdkGeneratedSourceDir
|
||||||
Remove-Item "$sdkGeneratedSourceDir\*.cs"
|
Remove-Item "$sdkGeneratedSourceDir\*.cs"
|
||||||
|
|
||||||
Write-Output "`nProcessing each partition..."
|
Invoke-PrepLibMappingsFile $artifactsDir $version
|
||||||
|
|
||||||
|
$throttleCount = [System.Environment]::ProcessorCount / 2
|
||||||
|
if ($throttleCount -eq 0)
|
||||||
|
{
|
||||||
|
$throttleCount = 1
|
||||||
|
}
|
||||||
|
|
||||||
$partitionNames = Get-ChildItem $partitionsDir | Select-Object -ExpandProperty Name
|
$partitionNames = Get-ChildItem $partitionsDir | Select-Object -ExpandProperty Name
|
||||||
|
|
||||||
foreach ($partitionName in $partitionNames)
|
$stopwatch = [system.diagnostics.stopwatch]::StartNew()
|
||||||
{
|
|
||||||
Write-Output "`nCalling $PSScriptRoot\GenerateMetadataSourceForPartition.ps1 -version $version -partitionName $partitionName -artifactsDir $artifactsDir..."
|
Write-Output "`nProcessing each partition...using $throttleCount parralel script(s)"
|
||||||
& $PSScriptRoot\GenerateMetadataSourceForPartition.ps1 -version $version -partitionName $partitionName -artifactsDir $artifactsDir
|
|
||||||
}
|
$partitionNames | ForEach-Object -Parallel {
|
||||||
|
$out1 = "`n$using:PSScriptRoot\GenerateMetadataSourceForPartition.ps1 -version $using:version -partitionName $_ -artifactsDir $using:artifactsDir..."
|
||||||
|
$out2 = & $using:PSScriptRoot\GenerateMetadataSourceForPartition.ps1 -version $using:version -partitionName $_ -artifactsDir $using:artifactsDir -indent "`n "
|
||||||
|
Write-Output "$out1$out2"
|
||||||
|
} -ThrottleLimit $throttleCount
|
||||||
|
|
||||||
|
$stopwatch.Stop()
|
||||||
|
$totalTime = $stopwatch.Elapsed.ToString("c")
|
||||||
|
|
||||||
|
Write-Output "Total time taken for all partitions: $totalTime"
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -8,7 +8,10 @@ param
|
||||||
$version,
|
$version,
|
||||||
|
|
||||||
[string]
|
[string]
|
||||||
$partitionName
|
$partitionName,
|
||||||
|
|
||||||
|
[string]
|
||||||
|
$indent = ""
|
||||||
)
|
)
|
||||||
|
|
||||||
. "$PSScriptRoot\CommonUtils.ps1"
|
. "$PSScriptRoot\CommonUtils.ps1"
|
||||||
|
@ -18,27 +21,12 @@ if (!$version)
|
||||||
$version = $defaultWinSDKNugetVersion
|
$version = $defaultWinSDKNugetVersion
|
||||||
}
|
}
|
||||||
|
|
||||||
$generationOutArtifactsDir = "$artifactsDir\output"
|
|
||||||
Create-Directory $generationOutArtifactsDir
|
|
||||||
|
|
||||||
$nugetDestPackagesDir = Join-Path -Path $artifactsDir "InstalledPackages"
|
$nugetDestPackagesDir = Join-Path -Path $artifactsDir "InstalledPackages"
|
||||||
|
|
||||||
$libMappingOutputFileName = Join-Path -Path $generationOutArtifactsDir -ChildPath "$version.libMappings.rsp"
|
$libMappingOutputFileName = Get-LibMappingsFile $artifactsDir $version
|
||||||
|
|
||||||
$stopwatch = [system.diagnostics.stopwatch]::StartNew()
|
$stopwatch = [system.diagnostics.stopwatch]::StartNew()
|
||||||
|
|
||||||
Write-Output "Creating metadata source for $partitionName..."
|
|
||||||
if (!(Test-Path $libMappingOutputFileName))
|
|
||||||
{
|
|
||||||
Write-Output "Creating lib mapping file: $libMappingOutputFileName"
|
|
||||||
$libDirectory = "$nugetDestPackagesDir\Microsoft.Windows.SDK.CPP.x64.$version\c\um\x64"
|
|
||||||
& $PSScriptRoot\CreateProcLibMappingForAllLibs.ps1 -libDirectory $libDirectory -outputFileName $libMappingOutputFileName
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Write-Output "Skipping creating of lib mappings as $libMappingOutputFileName already exists."
|
|
||||||
}
|
|
||||||
|
|
||||||
$baseGenerateDir = "$rootDir\generation"
|
$baseGenerateDir = "$rootDir\generation"
|
||||||
$partitionGenerateDir = "$rootDir\generation\Partitions\$partitionName"
|
$partitionGenerateDir = "$rootDir\generation\Partitions\$partitionName"
|
||||||
if (!(Test-Path $partitionGenerateDir))
|
if (!(Test-Path $partitionGenerateDir))
|
||||||
|
@ -47,6 +35,8 @@ if (!(Test-Path $partitionGenerateDir))
|
||||||
exit -1
|
exit -1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$generationOutArtifactsDir = "$artifactsDir\output"
|
||||||
|
|
||||||
$generatorOutput = Join-Path -Path $generationOutArtifactsDir -ChildPath "$partitionName.generation.output.txt"
|
$generatorOutput = Join-Path -Path $generationOutArtifactsDir -ChildPath "$partitionName.generation.output.txt"
|
||||||
|
|
||||||
$withSetLastErrorRsp = "$baseGenerateDir\WithSetLastError.rsp"
|
$withSetLastErrorRsp = "$baseGenerateDir\WithSetLastError.rsp"
|
||||||
|
@ -60,7 +50,6 @@ if (!(Test-Path $partitionSettingsRsp))
|
||||||
}
|
}
|
||||||
|
|
||||||
$baseRemapRsp = "$baseGenerateDir\baseRemap.rsp"
|
$baseRemapRsp = "$baseGenerateDir\baseRemap.rsp"
|
||||||
#$partitionRemapRsp = "$partitionGenerateDir\remap.rsp"
|
|
||||||
|
|
||||||
$fixedSettingsRsp = "$generationOutArtifactsDir\$partitionName.fixedSettings.rsp"
|
$fixedSettingsRsp = "$generationOutArtifactsDir\$partitionName.fixedSettings.rsp"
|
||||||
|
|
||||||
|
@ -70,13 +59,13 @@ $includePath = (Get-ChildItem -Path "$nugetDestPackagesDir\Microsoft.Windows.SDK
|
||||||
[hashtable]$textToReplaceTable = @{ "<IncludeRoot>" = $includePath; "<RepoRoot>" = $rootDir; "<PartitionName>" = $partitionName }
|
[hashtable]$textToReplaceTable = @{ "<IncludeRoot>" = $includePath; "<RepoRoot>" = $rootDir; "<PartitionName>" = $partitionName }
|
||||||
Replace-Text $fixedSettingsRsp $textToReplaceTable
|
Replace-Text $fixedSettingsRsp $textToReplaceTable
|
||||||
|
|
||||||
Write-Output "Creating metadata .cs file. Log output: $generatorOutput"
|
Write-Output "$($indent)$partitionName..."
|
||||||
Write-Output "Calling: $toolsDir\ClangSharpPInvokeGenerator.exe "@$baseSettingsRsp" "@$withSetLastErrorRsp" "@$fixedSettingsRsp" "@$baseRemapRsp" "@$libMappingOutputFileName" > $generatorOutput"
|
Write-Output "$($indent)$toolsDir\ClangSharpPInvokeGenerator.exe @$baseSettingsRsp @$withSetLastErrorRsp @$fixedSettingsRsp @$baseRemapRsp @$libMappingOutputFileName > $generatorOutput"
|
||||||
|
|
||||||
& $toolsDir\ClangSharpPInvokeGenerator.exe "@$baseSettingsRsp" "@$withSetLastErrorRsp" "@$fixedSettingsRsp" "@$baseRemapRsp" "@$libMappingOutputFileName" > $generatorOutput
|
& $toolsDir\ClangSharpPInvokeGenerator.exe "@$baseSettingsRsp" "@$withSetLastErrorRsp" "@$fixedSettingsRsp" "@$baseRemapRsp" "@$libMappingOutputFileName" > $generatorOutput
|
||||||
if ($LASTEXITCODE -lt 0)
|
if ($LASTEXITCODE -lt 0)
|
||||||
{
|
{
|
||||||
Write-Error "ClangSharpPInvokeGenerator.exe failed:"
|
Write-Error "$($indent)ClangSharpPInvokeGenerator.exe failed:"
|
||||||
Get-ChildItem $generatorOutput | select-string "Error: "
|
Get-ChildItem $generatorOutput | select-string "Error: "
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,9 +76,9 @@ $from = Get-Content -Path $possibleRemapsOutput
|
||||||
if (![string]::IsNullOrEmpty($from))
|
if (![string]::IsNullOrEmpty($from))
|
||||||
{
|
{
|
||||||
Add-Content -Path $baseRemapRsp -Value $from
|
Add-Content -Path $baseRemapRsp -Value $from
|
||||||
Write-Output "Added remaps to $baseRemapRsp"
|
Write-Output "$($indent)Added remaps to $baseRemapRsp"
|
||||||
}
|
}
|
||||||
|
|
||||||
$stopwatch.Stop()
|
$stopwatch.Stop()
|
||||||
$totalTime = $stopwatch.Elapsed.ToString("c")
|
$totalTime = $stopwatch.Elapsed.ToString("c")
|
||||||
Write-Output "Took $totalTime"
|
Write-Output "$($indent)Took $totalTime"
|
||||||
|
|
|
@ -1408,6 +1408,7 @@ namespace ClangSharpSourceToWinmd
|
||||||
var fieldAttributes = FieldAttributes.Public;
|
var fieldAttributes = FieldAttributes.Public;
|
||||||
IFieldSymbol fieldSymbol = (IFieldSymbol)model.GetDeclaredSymbol(fieldVariable);
|
IFieldSymbol fieldSymbol = (IFieldSymbol)model.GetDeclaredSymbol(fieldVariable);
|
||||||
bool isConst = fieldSymbol.IsStatic && fieldSymbol.HasConstantValue;
|
bool isConst = fieldSymbol.IsStatic && fieldSymbol.HasConstantValue;
|
||||||
|
|
||||||
if (isConst)
|
if (isConst)
|
||||||
{
|
{
|
||||||
fieldAttributes |= FieldAttributes.Static | FieldAttributes.Literal | FieldAttributes.HasDefault;
|
fieldAttributes |= FieldAttributes.Static | FieldAttributes.Literal | FieldAttributes.HasDefault;
|
||||||
|
|
|
@ -22,6 +22,8 @@ namespace ClangSharpSourceToWinmd
|
||||||
|
|
||||||
private HashSet<SyntaxNode> nodesWithMarshalAs = new HashSet<SyntaxNode>();
|
private HashSet<SyntaxNode> nodesWithMarshalAs = new HashSet<SyntaxNode>();
|
||||||
private Dictionary<string, string> remaps;
|
private Dictionary<string, string> remaps;
|
||||||
|
private HashSet<string> visitedDelegateNames = new HashSet<string>();
|
||||||
|
private HashSet<string> visitedMethodNames = new HashSet<string>();
|
||||||
|
|
||||||
public TreeRewriter(Dictionary<string, string> remaps)
|
public TreeRewriter(Dictionary<string, string> remaps)
|
||||||
{
|
{
|
||||||
|
@ -59,45 +61,57 @@ namespace ClangSharpSourceToWinmd
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.VisitParameter(node);
|
var ret = (ParameterSyntax)base.VisitParameter(node);
|
||||||
|
|
||||||
|
// Get rid of default parameter values
|
||||||
|
if (ret.Default != null)
|
||||||
|
{
|
||||||
|
ret = ret.WithDefault(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override SyntaxNode VisitFieldDeclaration(FieldDeclarationSyntax node)
|
public override SyntaxNode VisitFieldDeclaration(FieldDeclarationSyntax node)
|
||||||
{
|
{
|
||||||
string fullName = GetFullName(node);
|
string fullName = GetFullName(node);
|
||||||
|
|
||||||
if (this.GetRemapInfo(fullName, out var listAttributes, out string newType, out string newName))
|
this.GetRemapInfo(fullName, out var listAttributes, out string newType, out string newName);
|
||||||
|
|
||||||
|
// ClangSharp mistakenly emits string[] for WCHAR[] Foo = "Bar".
|
||||||
|
// Change it to string
|
||||||
|
if (newType == null && node.Declaration.Type.ToString() == "string[]")
|
||||||
{
|
{
|
||||||
node = (FieldDeclarationSyntax)base.VisitFieldDeclaration(node);
|
newType = "string";
|
||||||
if (listAttributes != null)
|
|
||||||
{
|
|
||||||
foreach (var attrNode in listAttributes)
|
|
||||||
{
|
|
||||||
var attrListNode =
|
|
||||||
SyntaxFactory.AttributeList(
|
|
||||||
SyntaxFactory.SingletonSeparatedList<AttributeSyntax>(attrNode));
|
|
||||||
node = node.WithAttributeLists(node.AttributeLists.Add(attrListNode));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var firstVar = node.Declaration.Variables.First();
|
|
||||||
|
|
||||||
if (newName != null)
|
|
||||||
{
|
|
||||||
var newVar = SyntaxFactory.VariableDeclarator(SyntaxFactory.Identifier(newName));
|
|
||||||
node = node.ReplaceNode(firstVar, newVar);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (newType != null)
|
|
||||||
{
|
|
||||||
var newDeclaration = node.Declaration.WithType(SyntaxFactory.ParseTypeName(newType));
|
|
||||||
node = node.ReplaceNode(node.Declaration, newDeclaration);
|
|
||||||
}
|
|
||||||
|
|
||||||
return node;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.VisitFieldDeclaration(node);
|
node = (FieldDeclarationSyntax)base.VisitFieldDeclaration(node);
|
||||||
|
if (listAttributes != null)
|
||||||
|
{
|
||||||
|
foreach (var attrNode in listAttributes)
|
||||||
|
{
|
||||||
|
var attrListNode =
|
||||||
|
SyntaxFactory.AttributeList(
|
||||||
|
SyntaxFactory.SingletonSeparatedList<AttributeSyntax>(attrNode));
|
||||||
|
node = node.WithAttributeLists(node.AttributeLists.Add(attrListNode));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var firstVar = node.Declaration.Variables.First();
|
||||||
|
|
||||||
|
if (newName != null)
|
||||||
|
{
|
||||||
|
var newVar = SyntaxFactory.VariableDeclarator(SyntaxFactory.Identifier(newName));
|
||||||
|
node = node.ReplaceNode(firstVar, newVar);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newType != null)
|
||||||
|
{
|
||||||
|
var newDeclaration = node.Declaration.WithType(SyntaxFactory.ParseTypeName(newType));
|
||||||
|
node = node.ReplaceNode(node.Declaration, newDeclaration);
|
||||||
|
}
|
||||||
|
|
||||||
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override SyntaxNode VisitAttributeList(AttributeListSyntax node)
|
public override SyntaxNode VisitAttributeList(AttributeListSyntax node)
|
||||||
|
@ -148,7 +162,16 @@ namespace ClangSharpSourceToWinmd
|
||||||
public override SyntaxNode VisitDelegateDeclaration(DelegateDeclarationSyntax node)
|
public override SyntaxNode VisitDelegateDeclaration(DelegateDeclarationSyntax node)
|
||||||
{
|
{
|
||||||
string fullName = GetFullName(node);
|
string fullName = GetFullName(node);
|
||||||
string returnFullName = $"{GetFullName(node)}::return";
|
|
||||||
|
// Remove duplicate delegates in this tree
|
||||||
|
if (this.visitedDelegateNames.Contains(fullName))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.visitedDelegateNames.Add(fullName);
|
||||||
|
|
||||||
|
string returnFullName = $"{fullName}::return";
|
||||||
|
|
||||||
if (this.GetRemapInfo(returnFullName, out List<AttributeSyntax> listAttributes, out _, out _))
|
if (this.GetRemapInfo(returnFullName, out List<AttributeSyntax> listAttributes, out _, out _))
|
||||||
{
|
{
|
||||||
|
@ -183,8 +206,18 @@ namespace ClangSharpSourceToWinmd
|
||||||
}
|
}
|
||||||
|
|
||||||
string fullName = GetFullName(node);
|
string fullName = GetFullName(node);
|
||||||
|
|
||||||
|
// Remove duplicate methods in this tree
|
||||||
|
if (this.visitedMethodNames.Contains(fullName))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.visitedMethodNames.Add(fullName);
|
||||||
|
|
||||||
string returnFullName = $"{fullName}::return";
|
string returnFullName = $"{fullName}::return";
|
||||||
|
|
||||||
|
// Find remap info for the return parameter for this method and apply any that we find
|
||||||
if (this.GetRemapInfo(returnFullName, out List<AttributeSyntax> listAttributes, out _, out _))
|
if (this.GetRemapInfo(returnFullName, out List<AttributeSyntax> listAttributes, out _, out _))
|
||||||
{
|
{
|
||||||
node = (MethodDeclarationSyntax)base.VisitMethodDeclaration(node);
|
node = (MethodDeclarationSyntax)base.VisitMethodDeclaration(node);
|
||||||
|
|
|
@ -5,6 +5,7 @@ using System.CommandLine.Invocation;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
using Microsoft.CodeAnalysis;
|
using Microsoft.CodeAnalysis;
|
||||||
using Microsoft.CodeAnalysis.CSharp;
|
using Microsoft.CodeAnalysis.CSharp;
|
||||||
|
|
||||||
|
@ -77,9 +78,16 @@ namespace ClangSharpSourceToWinmd
|
||||||
System.Threading.Tasks.ParallelOptions opt = new System.Threading.Tasks.ParallelOptions() { MaxDegreeOfParallelism = Environment.ProcessorCount * 2 };
|
System.Threading.Tasks.ParallelOptions opt = new System.Threading.Tasks.ParallelOptions() { MaxDegreeOfParallelism = Environment.ProcessorCount * 2 };
|
||||||
System.Threading.Tasks.Parallel.ForEach(sourceFiles, opt, (sourceFile) =>
|
System.Threading.Tasks.Parallel.ForEach(sourceFiles, opt, (sourceFile) =>
|
||||||
{
|
{
|
||||||
|
if (sourceFile.EndsWith("modified.cs"))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
string fileToRead = Path.GetFullPath(sourceFile);
|
string fileToRead = Path.GetFullPath(sourceFile);
|
||||||
var tree = CSharpSyntaxTree.ParseText(File.ReadAllText(fileToRead), null, fileToRead);
|
string modifiedFile = Path.ChangeExtension(fileToRead, ".modified.cs");
|
||||||
|
var tree = CSharpSyntaxTree.ParseText(File.ReadAllText(fileToRead), null, modifiedFile);
|
||||||
tree = MetadataSyntaxTreeCleaner.CleanSyntaxTree(tree, remaps);
|
tree = MetadataSyntaxTreeCleaner.CleanSyntaxTree(tree, remaps);
|
||||||
|
File.WriteAllText(modifiedFile, tree.GetText().ToString());
|
||||||
|
|
||||||
lock (syntaxTrees)
|
lock (syntaxTrees)
|
||||||
{
|
{
|
||||||
|
@ -87,16 +95,88 @@ namespace ClangSharpSourceToWinmd
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
watch.Stop();
|
CSharpCompilationOptions compilationOptions = new CSharpCompilationOptions(OutputKind.WindowsRuntimeMetadata, allowUnsafe: true);
|
||||||
|
|
||||||
string timeTaken = watch.Elapsed.ToString("c");
|
|
||||||
Console.WriteLine($"took {timeTaken}");
|
|
||||||
|
|
||||||
var comp =
|
var comp =
|
||||||
CSharpCompilation.Create(
|
CSharpCompilation.Create(
|
||||||
Path.GetFileName(outputFileName),
|
Path.GetFileName(outputFileName),
|
||||||
syntaxTrees,
|
syntaxTrees,
|
||||||
refs);
|
refs,
|
||||||
|
compilationOptions);
|
||||||
|
|
||||||
|
Console.Write("looking for errors...");
|
||||||
|
var diags = comp.GetDeclarationDiagnostics();
|
||||||
|
|
||||||
|
watch.Stop();
|
||||||
|
|
||||||
|
int errors = 0;
|
||||||
|
const int MaxErrorsToShow = 10000;
|
||||||
|
foreach (var diag in diags)
|
||||||
|
{
|
||||||
|
if (diag.Severity == DiagnosticSeverity.Warning)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type
|
||||||
|
// We can do this in metadata, so it's OK
|
||||||
|
// CS0558: Operator, which we don't emit
|
||||||
|
// CS0562: Operator, which we don't emit
|
||||||
|
// CS0590: Operator, which we don't emit
|
||||||
|
// CS0568: Ctor on structs, which we don't emit
|
||||||
|
// CS0592: FieldOffset on a property which we don't emit
|
||||||
|
// CS1745: Cannot specify default parameter value in conjunction with DefaultParameterAttribute or OptionalAttribute
|
||||||
|
// CS0111: Operator
|
||||||
|
if (diag.Id == "CS0208" || diag.Id == "CS0558" || diag.Id == "CS0562" || diag.Id == "CS0590" || diag.Id == "CS0568" || diag.Id == "CS0592" || diag.Id == "CS1745" ||
|
||||||
|
diag.Id == "CS0111")
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CS0029: Cannot implicitly convert type 'string' to 'string[]'
|
||||||
|
// Problem with ClangSharp that emits WCHAR Bar[] = "foo" into string[] Bar = "foo"
|
||||||
|
// We work around this in the emitter
|
||||||
|
if (diag.Id == "CS0029" && diag.ToString().Contains("'string' to 'string[]'"))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Symbol not found. See if it's in the type import list
|
||||||
|
if (diag.Id == "CS0246")
|
||||||
|
{
|
||||||
|
var symbolNameRegx = new System.Text.RegularExpressions.Regex(@"The type or namespace name '(\w+)'");
|
||||||
|
var match = symbolNameRegx.Match(diag.GetMessage());
|
||||||
|
if (match.Success)
|
||||||
|
{
|
||||||
|
var symbolName = match.Groups[1].Value;
|
||||||
|
if (typeImports.ContainsKey(symbolName) || typeImports.ContainsKey($"{symbolName}(interface)"))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (errors == 0)
|
||||||
|
{
|
||||||
|
Console.WriteLine("errors were found.");
|
||||||
|
}
|
||||||
|
|
||||||
|
errors++;
|
||||||
|
Console.WriteLine(diag.ToString());
|
||||||
|
if (errors >= MaxErrorsToShow)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Only showing the first {MaxErrorsToShow} errors.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (errors > 0)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
string timeTaken = watch.Elapsed.ToString("c");
|
||||||
|
|
||||||
|
Console.WriteLine($"took {timeTaken}");
|
||||||
|
|
||||||
Console.WriteLine($"Emitting {outputFileName}...");
|
Console.WriteLine($"Emitting {outputFileName}...");
|
||||||
var generator = ClangSharpSourceWinmdGenerator.GenerateWindmdForCompilation(comp, typeImports, assemblyVersion, outputFileName);
|
var generator = ClangSharpSourceWinmdGenerator.GenerateWindmdForCompilation(comp, typeImports, assemblyVersion, outputFileName);
|
||||||
|
|
|
@ -10,12 +10,6 @@ namespace Windows.Win32.Base
|
||||||
|
|
||||||
public const int FALSE = 0;
|
public const int FALSE = 0;
|
||||||
|
|
||||||
// Not allowed because UIntPtr can't be const
|
|
||||||
//[NativeTypeName("const JsSourceContext")]
|
|
||||||
//public const UIntPtr JS_SOURCE_CONTEXT_NONE = new UIntPtr(-1);
|
|
||||||
public static uint DWRITE_MAKE_OPENTYPE_TAG(byte a, byte b, byte c, byte d) => ((uint)d << 24) | ((uint)c << 16) | ((uint)b << 8) | a;
|
|
||||||
|
|
||||||
public static DWRITE_FONT_AXIS_TAG DWRITE_MAKE_FONT_AXIS_TAG(byte a, byte b, byte c, byte d) => (DWRITE_FONT_AXIS_TAG)DWRITE_MAKE_OPENTYPE_TAG(a, b, c, d);
|
|
||||||
|
|
||||||
public const ushort RT_CURSOR = 1;
|
public const ushort RT_CURSOR = 1;
|
||||||
|
|
||||||
|
@ -5899,15 +5893,4 @@ namespace Windows.Win32.Base
|
||||||
|
|
||||||
public const uint INFINITE = 0xFFFFFFFF;
|
public const uint INFINITE = 0xFFFFFFFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
public enum DWRITE_FONT_AXIS_TAG : uint
|
|
||||||
{
|
|
||||||
DWRITE_FONT_AXIS_TAG_WEIGHT = (((uint)((byte)('t')) << 24) | ((uint)((byte)('h')) << 16) | ((uint)((byte)('g')) << 8) | (uint)((byte)('w'))),
|
|
||||||
DWRITE_FONT_AXIS_TAG_WIDTH = (((uint)((byte)('h')) << 24) | ((uint)((byte)('t')) << 16) | ((uint)((byte)('d')) << 8) | (uint)((byte)('w'))),
|
|
||||||
DWRITE_FONT_AXIS_TAG_SLANT = (((uint)((byte)('t')) << 24) | ((uint)((byte)('n')) << 16) | ((uint)((byte)('l')) << 8) | (uint)((byte)('s'))),
|
|
||||||
DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = (((uint)((byte)('z')) << 24) | ((uint)((byte)('s')) << 16) | ((uint)((byte)('p')) << 8) | (uint)((byte)('o'))),
|
|
||||||
DWRITE_FONT_AXIS_TAG_ITALIC = (((uint)((byte)('l')) << 24) | ((uint)((byte)('a')) << 16) | ((uint)((byte)('t')) << 8) | (uint)((byte)('i'))),
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
// Original source is Copyright © Microsoft. All rights reserved.
|
// Original source is Copyright © Microsoft. All rights reserved.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using static Windows.Win32.D3D12_FILTER_REDUCTION_TYPE;
|
using static Windows.Win32.Direct3D12.D3D12_FILTER_REDUCTION_TYPE;
|
||||||
using static Windows.Win32.D3D12_FILTER_TYPE;
|
using static Windows.Win32.Direct3D12.D3D12_FILTER_TYPE;
|
||||||
|
|
||||||
namespace Windows.Win32.Direct3D12
|
namespace Windows.Win32.Direct3D12
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,19 +1,7 @@
|
||||||
// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
|
|
||||||
|
|
||||||
// Ported from shared/dxgi.h in the Windows SDK for Windows 10.0.19041.0
|
|
||||||
// Original source is Copyright © Microsoft. All rights reserved.
|
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace Windows.Win32.Direct3DDxgi
|
namespace Windows.Win32.Direct3DDxgi
|
||||||
{
|
{
|
||||||
public enum DXGI_ADAPTER_FLAG : uint
|
|
||||||
{
|
|
||||||
DXGI_ADAPTER_FLAG_NONE = 0u,
|
|
||||||
DXGI_ADAPTER_FLAG_REMOTE = 1u,
|
|
||||||
DXGI_ADAPTER_FLAG_SOFTWARE = 2u,
|
|
||||||
}
|
|
||||||
|
|
||||||
public static unsafe partial class Apis
|
public static unsafe partial class Apis
|
||||||
{
|
{
|
||||||
public const uint DXGI_USAGE_SHADER_INPUT = 0x00000010;
|
public const uint DXGI_USAGE_SHADER_INPUT = 0x00000010;
|
||||||
|
@ -77,27 +65,5 @@ namespace Windows.Win32.Direct3DDxgi
|
||||||
public const uint DXGI_MWA_NO_PRINT_SCREEN = 1 << 2;
|
public const uint DXGI_MWA_NO_PRINT_SCREEN = 1 << 2;
|
||||||
|
|
||||||
public const uint DXGI_MWA_VALID = 0x7;
|
public const uint DXGI_MWA_VALID = 0x7;
|
||||||
|
|
||||||
//public static int D3D_SET_OBJECT_NAME_N_A(IDXGIObject* pObject, uint Chars, sbyte* pName)
|
|
||||||
//{
|
|
||||||
// var guid = WKPDID_D3DDebugObjectName;
|
|
||||||
// return pObject->SetPrivateData(&guid, Chars, pName);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public static int D3D_SET_OBJECT_NAME_A(IDXGIObject* pObject, sbyte* pName)
|
|
||||||
//{
|
|
||||||
// return D3D_SET_OBJECT_NAME_N_A(pObject, (uint)lstrlenA(pName), pName);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public static int D3D_SET_OBJECT_NAME_N_W(IDXGIObject* pObject, uint Chars, ushort* pName)
|
|
||||||
//{
|
|
||||||
// var guid = WKPDID_D3DDebugObjectNameW;
|
|
||||||
// return pObject->SetPrivateData(&guid, Chars * 2, pName);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public static int D3D_SET_OBJECT_NAME_W(IDXGIObject* pObject, ushort* pName)
|
|
||||||
//{
|
|
||||||
// return D3D_SET_OBJECT_NAME_N_W(pObject, (uint)lstrlenW(pName), pName);
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using Windows.Win32.Interop;
|
||||||
|
|
||||||
|
namespace Windows.Win32.DirectWrite
|
||||||
|
{
|
||||||
|
public static unsafe partial class Apis
|
||||||
|
{
|
||||||
|
public static uint DWRITE_MAKE_OPENTYPE_TAG(byte a, byte b, byte c, byte d) => ((uint)d << 24) | ((uint)c << 16) | ((uint)b << 8) | a;
|
||||||
|
|
||||||
|
public static DWRITE_FONT_AXIS_TAG DWRITE_MAKE_FONT_AXIS_TAG(byte a, byte b, byte c, byte d) => (DWRITE_FONT_AXIS_TAG)DWRITE_MAKE_OPENTYPE_TAG(a, b, c, d);
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum DWRITE_FONT_AXIS_TAG : uint
|
||||||
|
{
|
||||||
|
DWRITE_FONT_AXIS_TAG_WEIGHT = (((uint)((byte)('t')) << 24) | ((uint)((byte)('h')) << 16) | ((uint)((byte)('g')) << 8) | (uint)((byte)('w'))),
|
||||||
|
DWRITE_FONT_AXIS_TAG_WIDTH = (((uint)((byte)('h')) << 24) | ((uint)((byte)('t')) << 16) | ((uint)((byte)('d')) << 8) | (uint)((byte)('w'))),
|
||||||
|
DWRITE_FONT_AXIS_TAG_SLANT = (((uint)((byte)('t')) << 24) | ((uint)((byte)('n')) << 16) | ((uint)((byte)('l')) << 8) | (uint)((byte)('s'))),
|
||||||
|
DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = (((uint)((byte)('z')) << 24) | ((uint)((byte)('s')) << 16) | ((uint)((byte)('p')) << 8) | (uint)((byte)('o'))),
|
||||||
|
DWRITE_FONT_AXIS_TAG_ITALIC = (((uint)((byte)('l')) << 24) | ((uint)((byte)('a')) << 16) | ((uint)((byte)('t')) << 8) | (uint)((byte)('i'))),
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using Windows.Win32.Interop;
|
||||||
|
|
||||||
|
namespace Windows.Win32.Rpc
|
||||||
|
{
|
||||||
|
// Because this emits with an anonymous name
|
||||||
|
public unsafe partial struct NDR_SCONTEXT_1
|
||||||
|
{
|
||||||
|
[NativeTypeName("void *[2]")]
|
||||||
|
public _pad_e__FixedBuffer pad;
|
||||||
|
|
||||||
|
[NativeTypeName("void *")]
|
||||||
|
public void* userContext;
|
||||||
|
|
||||||
|
public unsafe partial struct _pad_e__FixedBuffer
|
||||||
|
{
|
||||||
|
public void* e0;
|
||||||
|
public void* e1;
|
||||||
|
|
||||||
|
public ref void* this[int index]
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
fixed (void** pThis = &e0)
|
||||||
|
{
|
||||||
|
return ref pThis[index];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,7 +3,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace Windows.Win32.WinRt
|
namespace Windows.Win32.WinRT
|
||||||
{
|
{
|
||||||
public struct EventRegistrationToken
|
public struct EventRegistrationToken
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.CommandLine;
|
||||||
|
using System.CommandLine.Invocation;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace WinmdUtils
|
||||||
|
{
|
||||||
|
class Program
|
||||||
|
{
|
||||||
|
static int Main(string[] args)
|
||||||
|
{
|
||||||
|
var showMissingImportsCommand = new Command("showMissingImports", "Show missing imports between two windmd files.")
|
||||||
|
{
|
||||||
|
new Option(new[] { "--first" }, "The first winmd.") { Argument = new Argument<FileInfo>().ExistingOnly(), IsRequired = true },
|
||||||
|
new Option(new[] { "--second" }, "The second winmd.") { Argument = new Argument<FileInfo>().ExistingOnly(), IsRequired = true },
|
||||||
|
new Option(new[] { "--exclusions" }, "Exclusions files.") { Argument = new Argument<string>(), IsRequired = false },
|
||||||
|
};
|
||||||
|
|
||||||
|
showMissingImportsCommand.Handler = CommandHandler.Create<FileInfo, FileInfo, string, IConsole>(ShowMissingImports);
|
||||||
|
|
||||||
|
var rootCommand = new RootCommand("Win32metadata winmd utils")
|
||||||
|
{
|
||||||
|
showMissingImportsCommand,
|
||||||
|
};
|
||||||
|
|
||||||
|
return rootCommand.Invoke(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int ShowMissingImports(FileInfo first, FileInfo second, string exclusions, IConsole console)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
using WinmdUtils w1 = WinmdUtils.LoadFromFile(first.FullName);
|
||||||
|
HashSet<string> remainingImports = new HashSet<string>();
|
||||||
|
foreach (var imp in w1.GetDllImports())
|
||||||
|
{
|
||||||
|
remainingImports.Add(imp.Name.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
using WinmdUtils w2 = WinmdUtils.LoadFromFile(second.FullName);
|
||||||
|
foreach (var imp in w2.GetDllImports())
|
||||||
|
{
|
||||||
|
var text = imp.Name.ToString();
|
||||||
|
if (remainingImports.Contains(text))
|
||||||
|
{
|
||||||
|
remainingImports.Remove(text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var imp in remainingImports)
|
||||||
|
{
|
||||||
|
if (ret == 0)
|
||||||
|
{
|
||||||
|
console.Out.Write("Missing imports detected:\r\n");
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.Out.Write(imp.ToString());
|
||||||
|
console.Out.Write("\r\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret == 0)
|
||||||
|
{
|
||||||
|
console.Out.Write("No missing imports found.\r\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"profiles": {
|
||||||
|
"WinmdUtils": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"commandLineArgs": "showMissingImports --first $(ProjectDir)..\\..\\scripts\\BaselineWinmd\\10.0.19041.5\\Windows.Win32.winmd --second $(ProjectDir)..\\..\\bin\\Windows.Win32.winmd"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,72 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Reflection.Metadata;
|
||||||
|
using System.Reflection.PortableExecutable;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace WinmdUtils
|
||||||
|
{
|
||||||
|
public class WinmdUtils : IDisposable
|
||||||
|
{
|
||||||
|
private FileStream stream;
|
||||||
|
private PEReader peReader;
|
||||||
|
private MetadataReader metadataReader;
|
||||||
|
|
||||||
|
private WinmdUtils(string fileName)
|
||||||
|
{
|
||||||
|
this.stream = new System.IO.FileStream(fileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
|
||||||
|
this.peReader = new PEReader(stream);
|
||||||
|
this.metadataReader = this.peReader.GetMetadataReader();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static WinmdUtils LoadFromFile(string fileName)
|
||||||
|
{
|
||||||
|
return new WinmdUtils(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
this.stream?.Dispose();
|
||||||
|
this.peReader?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<DllImport> GetDllImports()
|
||||||
|
{
|
||||||
|
foreach (var methodDefHandle in this.metadataReader.MethodDefinitions)
|
||||||
|
{
|
||||||
|
var method = this.metadataReader.GetMethodDefinition(methodDefHandle);
|
||||||
|
if (method.Attributes.HasFlag(System.Reflection.MethodAttributes.PinvokeImpl))
|
||||||
|
{
|
||||||
|
var name = this.metadataReader.GetString(method.Name);
|
||||||
|
var import = method.GetImport();
|
||||||
|
var moduleRef = this.metadataReader.GetModuleReference(import.Module);
|
||||||
|
var dllName = this.metadataReader.GetString(moduleRef.Name);
|
||||||
|
yield return new DllImport(name, dllName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DllImport
|
||||||
|
{
|
||||||
|
public DllImport(string name, string dll)
|
||||||
|
{
|
||||||
|
this.Name = name;
|
||||||
|
this.Dll = dll;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Name { get; private set; }
|
||||||
|
|
||||||
|
public string Dll { get; private set; }
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return $"{this.Name}({this.Dll})";
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return this.ToString().GetHashCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="System.CommandLine" Version="2.0.0-beta1.20574.7" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
|
@ -0,0 +1,25 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 16
|
||||||
|
VisualStudioVersion = 16.0.30804.86
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinmdUtils", "WinmdUtils.csproj", "{E9A699AC-A690-42ED-83E1-66CB7F65058D}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{E9A699AC-A690-42ED-83E1-66CB7F65058D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{E9A699AC-A690-42ED-83E1-66CB7F65058D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{E9A699AC-A690-42ED-83E1-66CB7F65058D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{E9A699AC-A690-42ED-83E1-66CB7F65058D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {10CB32D9-2A44-4DE0-B020-26B136672FE1}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
Двоичные данные
tools/ClangSharp.PInvokeGenerator.dll
Двоичные данные
tools/ClangSharp.PInvokeGenerator.dll
Двоичный файл не отображается.
Двоичные данные
tools/ClangSharpPInvokeGenerator.dll
Двоичные данные
tools/ClangSharpPInvokeGenerator.dll
Двоичный файл не отображается.
Загрузка…
Ссылка в новой задаче