leave only necessary list of bindings, clean up

This commit is contained in:
Mikhail Kochegarov
2022-12-20 14:22:18 +10:00
parent 41d27459d4
commit db2eb4ed6a
1702 changed files with 4258 additions and 42596 deletions
-21
View File
@@ -1,21 +0,0 @@
*** WORK IN PROGRES
*** DO NOT USE!
luajit-winapi
=============
** Complete Windows API bindings for LuaJIT based on the XML files
from the API Monitor v12 alpha by Rohitab Batra - rohitab.com
** All Windows API bindings were extracted from the Rohitab Batra's API Monitor tool (v12 alpha), using expat and luajit
http://www.rohitab.com/apimonitor
* TODO
- Add interfaces
- Fix remaining ffi modules that don't load
- Clean up the source code, and the special cases
- Support WINE or WINELIB on OSX/Linux
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-27
View File
@@ -1,27 +0,0 @@
================================================================================
luajit-winapi -- Complete Windows API bindings for LuaJIT based on the XML files
from the API Monitor v12 alpha by Rohitab Batra - rohitab.com
Copyright (C) 2012 Dimiter "malkia" Stanev. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
[ MIT license: http://www.opensource.org/licenses/mit-license.php ]
================================================================================
-2
View File
@@ -1,2 +0,0 @@
-- Recursive object dumper, for debugging.
-- (c) 2010 David Manura, MIT License.
-22
View File
@@ -1,22 +0,0 @@
Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
and Clark Cooper
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-56
View File
@@ -1,56 +0,0 @@
===============================================================================
LuaJIT -- a Just-In-Time Compiler for Lua. http://luajit.org/
Copyright (C) 2005-2011 Mike Pall. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
[ MIT license: http://www.opensource.org/licenses/mit-license.php ]
===============================================================================
[ LuaJIT includes code from Lua 5.1/5.2, which has this license statement: ]
Copyright (C) 1994-2011 Lua.org, PUC-Rio.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
===============================================================================
[ LuaJIT includes code from dlmalloc, which has this license statement: ]
This is a version (aka dlmalloc) of malloc/free/realloc written by
Doug Lea and released to the public domain, as explained at
http://creativecommons.org/licenses/publicdomain
===============================================================================
-5
View File
@@ -1,5 +0,0 @@
<!--
API Monitor Definitions
(c) 2011-2012, Rohitab Batra <rohitab@rohitab.com>
http://www.rohitab.com/apimonitor/
-->
-2
View File
@@ -1,2 +0,0 @@
@echo off
diff -r "E:\apps\API Monitor (rohitab.com)\API" "C:\Program Files\rohitab.com\API Monitor\API" > %~dpn0.diff
-452
View File
@@ -1,452 +0,0 @@
diff -r E:\apps\API Monitor (rohitab.com)\API/Headers/ntstatus.h.xml C:\Program Files\rohitab.com\API Monitor\API/Headers/ntstatus.h.xml
6a7
> <Include Filename="Headers\common.h.xml" />
diff -r E:\apps\API Monitor (rohitab.com)\API/Interfaces/CoreAudio/IAudioSessionControl.xml C:\Program Files\rohitab.com\API Monitor\API/Interfaces/CoreAudio/IAudioSessionControl.xml
51,100d50
< <!--
< API Monitor Definitions
< (c) 2011, Rohitab Batra <rohitab@rohitab.com>
< http://www.rohitab.com/apimonitor/
< -->
< <ApiMonitor>
< <Include Filename="Interfaces\IUnknown.xml" />
< <Include Filename="Interfaces\CoreAudio\coreaudio.h.xml" />
< <Interface Name="IAudioSessionControl" Id="{F4B1A599-7266-4319-A8CA-E70ACB11E8CD}" BaseInterface="IUnknown" OnlineHelp="MSDN" ErrorFunc="HRESULT" Category="Audio and Video/Core Audio/Windows Audio Session">
< <Api Name="GetState">
< <Param Type="AudioSessionState*" Name="pRetVal" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="GetDisplayName">
< <Param Type="LPWSTR*" Name="pRetVal" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="SetDisplayName">
< <Param Type="LPCWSTR" Name="Value" />
< <Param Type="LPCGUID" Name="EventContext" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="GetIconPath">
< <Param Type="LPWSTR*" Name="pRetVal" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="SetIconPath">
< <Param Type="LPCWSTR" Name="Value" />
< <Param Type="LPCGUID" Name="EventContext" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="GetGroupingParam">
< <Param Type="GUID*" Name="pRetVal" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="SetGroupingParam">
< <Param Type="LPCGUID" Name="Override" />
< <Param Type="LPCGUID" Name="EventContext" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="RegisterAudioSessionNotification">
< <Param Type="IAudioSessionEvents*" Name="NewNotifications" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="UnregisterAudioSessionNotification">
< <Param Type="IAudioSessionEvents*" Name="NewNotifications" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< </Interface>
< </ApiMonitor>
diff -r E:\apps\API Monitor (rohitab.com)\API/Interfaces/CoreAudio/IAudioSessionControl2.xml C:\Program Files\rohitab.com\API Monitor\API/Interfaces/CoreAudio/IAudioSessionControl2.xml
31,60d30
< <!--
< API Monitor Definitions
< (c) 2011, Rohitab Batra <rohitab@rohitab.com>
< http://www.rohitab.com/apimonitor/
< -->
< <ApiMonitor>
< <Include Filename="Interfaces\CoreAudio\IAudioSessionControl.xml" />
< <Include Filename="Interfaces\CoreAudio\coreaudio.h.xml" />
< <Interface Name="IAudioSessionControl2" Id="{bfb7ff88-7239-4fc9-8fa2-07c950be9c6d}" BaseInterface="IAudioSessionControl" OnlineHelp="MSDN" ErrorFunc="HRESULT" Category="Audio and Video/Core Audio/Windows Audio Session">
< <Api Name="GetSessionIdentifier">
< <Param Type="LPWSTR*" Name="pRetVal" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="GetSessionInstanceIdentifier">
< <Param Type="LPWSTR*" Name="pRetVal" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="GetProcessId">
< <Param Type="DWORD*" Name="pRetVal" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="IsSystemSoundsSession">
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="SetDuckingPreference">
< <Param Type="BOOL" Name="optOut" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< </Interface>
< </ApiMonitor>
diff -r E:\apps\API Monitor (rohitab.com)\API/Interfaces/CoreAudio/IAudioSessionEnumerator.xml C:\Program Files\rohitab.com\API Monitor\API/Interfaces/CoreAudio/IAudioSessionEnumerator.xml
21,40d20
< <!--
< API Monitor Definitions
< (c) 2011, Rohitab Batra <rohitab@rohitab.com>
< http://www.rohitab.com/apimonitor/
< -->
< <ApiMonitor>
< <Include Filename="Interfaces\IUnknown.xml" />
< <Include Filename="Interfaces\CoreAudio\coreaudio.h.xml" />
< <Interface Name="IAudioSessionEnumerator" Id="{E2F5BB11-0570-40CA-ACDD-3AA01277DEE8}" BaseInterface="IUnknown" OnlineHelp="MSDN" ErrorFunc="HRESULT" Category="Audio and Video/Core Audio/Windows Audio Session">
< <Api Name="GetCount">
< <Param Type="int*" Name="SessionCount" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="GetSession">
< <Param Type="int" Name="SessionCount" />
< <Param Type="IAudioSessionControl**" Name="Session" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< </Interface>
< </ApiMonitor>
diff -r E:\apps\API Monitor (rohitab.com)\API/Interfaces/CoreAudio/IAudioSessionEvents.xml C:\Program Files\rohitab.com\API Monitor\API/Interfaces/CoreAudio/IAudioSessionEvents.xml
48,94d47
< <!--
< API Monitor Definitions
< (c) 2011, Rohitab Batra <rohitab@rohitab.com>
< http://www.rohitab.com/apimonitor/
< -->
< <ApiMonitor>
< <Include Filename="Interfaces\IUnknown.xml" />
< <Include Filename="Interfaces\CoreAudio\coreaudio.h.xml" />
< <Interface Name="IAudioSessionEvents" Id="{24918ACC-64B3-37C1-8CA9-74A66E9957A8}" BaseInterface="IUnknown" OnlineHelp="MSDN" ErrorFunc="HRESULT" Category="Audio and Video/Core Audio/Windows Audio Session">
< <Api Name="OnDisplayNameChanged">
< <Param Type="LPCWSTR" Name="NewDisplayName" />
< <Param Type="LPCGUID" Name="EventContext" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="OnIconPathChanged">
< <Param Type="LPCWSTR" Name="NewIconPath" />
< <Param Type="LPCGUID" Name="EventContext" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="OnSimpleVolumeChanged">
< <Param Type="float" Name="NewVolume" />
< <Param Type="BOOL" Name="NewMute" />
< <Param Type="LPCGUID" Name="EventContext" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="OnChannelVolumeChanged">
< <Param Type="DWORD" Name="ChannelCount" />
< <Param Type="float" Name="NewChannelVolumeArray" />
< <Param Type="DWORD" Name="ChangedChannel" />
< <Param Type="LPCGUID" Name="EventContext" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="OnGroupingParamChanged">
< <Param Type="LPCGUID" Name="NewGroupingParam" />
< <Param Type="LPCGUID" Name="EventContext" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="OnStateChanged">
< <Param Type="AudioSessionState" Name="NewState" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="OnSessionDisconnected">
< <Param Type="AudioSessionDisconnectReason" Name="DisconnectReason" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< </Interface>
< </ApiMonitor>
diff -r E:\apps\API Monitor (rohitab.com)\API/Interfaces/CoreAudio/IAudioSessionManager.xml C:\Program Files\rohitab.com\API Monitor\API/Interfaces/CoreAudio/IAudioSessionManager.xml
24,46d23
< <!--
< API Monitor Definitions
< (c) 2011, Rohitab Batra <rohitab@rohitab.com>
< http://www.rohitab.com/apimonitor/
< -->
< <ApiMonitor>
< <Include Filename="Interfaces\IUnknown.xml" />
< <Include Filename="Interfaces\CoreAudio\coreaudio.h.xml" />
< <Interface Name="IAudioSessionManager" Id="{BFA971F1-4D5E-40BB-935E-967039BFBEE4}" BaseInterface="IUnknown" OnlineHelp="MSDN" ErrorFunc="HRESULT" Category="Audio and Video/Core Audio/Windows Audio Session">
< <Api Name="GetAudioSessionControl">
< <Param Type="LPCGUID" Name="AudioSessionGuid" />
< <Param Type="DWORD" Name="StreamFlags" />
< <Param Type="IAudioSessionControl**" Name="SessionControl" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="GetSimpleAudioVolume">
< <Param Type="LPCGUID" Name="AudioSessionGuid" />
< <Param Type="DWORD" Name="StreamFlags" />
< <Param Type="ISimpleAudioVolume**" Name="AudioVolume" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< </Interface>
< </ApiMonitor>
diff -r E:\apps\API Monitor (rohitab.com)\API/Interfaces/CoreAudio/IAudioSessionManager2.xml C:\Program Files\rohitab.com\API Monitor\API/Interfaces/CoreAudio/IAudioSessionManager2.xml
33,64d32
< <!--
< API Monitor Definitions
< (c) 2011, Rohitab Batra <rohitab@rohitab.com>
< http://www.rohitab.com/apimonitor/
< -->
< <ApiMonitor>
< <Include Filename="Interfaces\CoreAudio\IAudioSessionManager.xml" />
< <Include Filename="Interfaces\CoreAudio\coreaudio.h.xml" />
< <Interface Name="IAudioSessionManager2" Id="{77AA99A0-1BD6-484F-8BC7-2C654C9A9B6F}" BaseInterface="IAudioSessionManager" OnlineHelp="MSDN" ErrorFunc="HRESULT" Category="Audio and Video/Core Audio/Windows Audio Session">
< <Api Name="GetSessionEnumerator">
< <Param Type="IAudioSessionEnumerator**" Name="SessionEnum" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="RegisterSessionNotification">
< <Param Type="IAudioSessionNotification*" Name="SessionNotification" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="UnregisterSessionNotification">
< <Param Type="IAudioSessionNotification*" Name="SessionNotification" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="RegisterDuckNotification">
< <Param Type="LPCWSTR" Name="sessionID" />
< <Param Type="IAudioVolumeDuckNotification*" Name="duckNotification" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="UnregisterDuckNotification">
< <Param Type="IAudioVolumeDuckNotification*" Name="duckNotification" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< </Interface>
< </ApiMonitor>
diff -r E:\apps\API Monitor (rohitab.com)\API/Interfaces/CoreAudio/IAudioSessionNotification.xml C:\Program Files\rohitab.com\API Monitor\API/Interfaces/CoreAudio/IAudioSessionNotification.xml
16,30d15
< <!--
< API Monitor Definitions
< (c) 2011, Rohitab Batra <rohitab@rohitab.com>
< http://www.rohitab.com/apimonitor/
< -->
< <ApiMonitor>
< <Include Filename="Interfaces\IUnknown.xml" />
< <Include Filename="Interfaces\CoreAudio\coreaudio.h.xml" />
< <Interface Name="IAudioSessionNotification" Id="{641DD20B-4D41-49CC-ABA3-174B9477BB08}" BaseInterface="IUnknown" OnlineHelp="MSDN" ErrorFunc="HRESULT" Category="Audio and Video/Core Audio/Windows Audio Session">
< <Api Name="OnSessionCreated">
< <Param Type="IAudioSessionControl*" Name="NewSession" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< </Interface>
< </ApiMonitor>
diff -r E:\apps\API Monitor (rohitab.com)\API/Interfaces/CoreAudio/IAudioVolumeDuckNotification.xml C:\Program Files\rohitab.com\API Monitor\API/Interfaces/CoreAudio/IAudioVolumeDuckNotification.xml
21,40d20
< <!--
< API Monitor Definitions
< (c) 2011, Rohitab Batra <rohitab@rohitab.com>
< http://www.rohitab.com/apimonitor/
< -->
< <ApiMonitor>
< <Include Filename="Interfaces\IUnknown.xml" />
< <Include Filename="Interfaces\CoreAudio\coreaudio.h.xml" />
< <Interface Name="IAudioVolumeDuckNotification" Id="{C3B284D4-6D39-4359-B3CF-B56DDB3BB39C}" BaseInterface="IUnknown" OnlineHelp="MSDN" ErrorFunc="HRESULT" Category="Audio and Video/Core Audio/Windows Audio Session">
< <Api Name="OnVolumeDuckNotification">
< <Param Type="LPCWSTR" Name="sessionID" />
< <Param Type="UINT32" Name="countCommunicationSessions" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< <Api Name="OnVolumeUnduckNotification">
< <Param Type="LPCWSTR" Name="sessionID" />
< <Return Type="[AUDCLNT_HRESULT]" />
< </Api>
< </Interface>
< </ApiMonitor>
diff -r E:\apps\API Monitor (rohitab.com)\API/Interfaces/Shell/IShellImageData.xml C:\Program Files\rohitab.com\API Monitor\API/Interfaces/Shell/IShellImageData.xml
131,260d130
< <!--
< API Monitor Definitions
< (c) 2011, Rohitab Batra <rohitab@rohitab.com>
< http://www.rohitab.com/apimonitor/
< -->
< <ApiMonitor>
< <Include Filename="Interfaces\IUnknown.xml" />
< <Interface Name="IShellImageData" Id="{bfdeec12-8040-4403-a5ea-9e07dafcf530}" BaseInterface="IUnknown" OnlineHelp="MSDN" ErrorFunc="HRESULT" Category="Windows Environment Development/Windows Shell/Interfaces">
< <Api Name="Decode">
< <Param Type="DWORD" Name="dwFlags" />
< <Param Type="ULONG" Name="cxDesired" />
< <Param Type="ULONG" Name="cyDesired" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="Draw">
< <Param Type="HDC" Name="hdc" />
< <Param Type="LPRECT" Name="prcDest" />
< <Param Type="LPRECT" Name="prcSrc" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="NextFrame">
< <Return Type="HRESULT" />
< </Api>
< <Api Name="NextPage">
< <Return Type="HRESULT" />
< </Api>
< <Api Name="PrevPage">
< <Return Type="HRESULT" />
< </Api>
< <Api Name="IsTransparent">
< <Return Type="HRESULT" />
< </Api>
< <Api Name="IsAnimated">
< <Return Type="HRESULT" />
< </Api>
< <Api Name="IsVector">
< <Return Type="HRESULT" />
< </Api>
< <Api Name="IsMultipage">
< <Return Type="HRESULT" />
< </Api>
< <Api Name="IsEditable">
< <Return Type="HRESULT" />
< </Api>
< <Api Name="IsPrintable">
< <Return Type="HRESULT" />
< </Api>
< <Api Name="IsDecoded">
< <Return Type="HRESULT" />
< </Api>
< <Api Name="GetCurrentPage">
< <Param Type="ULONG*" Name="pnPage" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="GetPageCount">
< <Param Type="ULONG*" Name="pcPages" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="SelectPage">
< <Param Type="ULONG" Name="iPage" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="GetSize">
< <Param Type="SIZE*" Name="pSize" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="GetRawDataFormat">
< <Param Type="GUID*" Name="pDataFormat" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="GetPixelFormat">
< <Param Type="PixelFormat*" Name="pFormat" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="GetDelay">
< <Param Type="DWORD*" Name="pdwDelay" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="GetProperties">
< <Param Type="DWORD" Name="dwMode" />
< <Param Type="IPropertySetStorage**" Name="ppPropSet" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="Rotate">
< <Param Type="DWORD" Name="dwAngle" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="Scale">
< <Param Type="ULONG" Name="cx" />
< <Param Type="ULONG" Name="cy" />
< <Param Type="InterpolationMode" Name="hints" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="DiscardEdit">
< <Return Type="HRESULT" />
< </Api>
< <Api Name="SetEncoderParams">
< <Param Type="IPropertyBag*" Name="pbagEnc" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="DisplayName">
< <Param Type="LPWSTR" Name="wszName" />
< <Param Type="UINT" Name="cch" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="GetResolution">
< <Param Type="ULONG*" Name="puResolutionX" />
< <Param Type="ULONG*" Name="puResolutionY" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="GetEncoderParams">
< <Param Type="GUID*" Name="pguidFmt" />
< <Param Type="EncoderParameters**" Name="ppEncParams" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="RegisterAbort">
< <Param Type="IShellImageDataAbort*" Name="pAbort" />
< <Param Type="IShellImageDataAbort**" Name="ppAbortPrev" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="CloneFrame">
< <Param Type="Image**" Name="ppImg" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="ReplaceFrame">
< <Param Type="Image*" Name="pImg" />
< <Return Type="HRESULT" />
< </Api>
< </Interface>
< </ApiMonitor>
diff -r E:\apps\API Monitor (rohitab.com)\API/Interfaces/Shell/IShellImageDataAbort.xml C:\Program Files\rohitab.com\API Monitor\API/Interfaces/Shell/IShellImageDataAbort.xml
14,26d13
< <!--
< API Monitor Definitions
< (c) 2011, Rohitab Batra <rohitab@rohitab.com>
< http://www.rohitab.com/apimonitor/
< -->
< <ApiMonitor>
< <Include Filename="Interfaces\IUnknown.xml" />
< <Interface Name="IShellImageDataAbort" Id="{53fb8e58-50c0-4003-b4aa-0c8df28e7f3a}" BaseInterface="IUnknown" OnlineHelp="MSDN" ErrorFunc="HRESULT" Category="Windows Environment Development/Windows Shell/Interfaces">
< <Api Name="QueryAbort">
< <Return Type="HRESULT" />
< </Api>
< </Interface>
< </ApiMonitor>
diff -r E:\apps\API Monitor (rohitab.com)\API/Interfaces/Shell/IShellImageDataFactory.xml C:\Program Files\rohitab.com\API Monitor\API/Interfaces/Shell/IShellImageDataFactory.xml
30,58d29
< <!--
< API Monitor Definitions
< (c) 2011, Rohitab Batra <rohitab@rohitab.com>
< http://www.rohitab.com/apimonitor/
< -->
< <ApiMonitor>
< <Include Filename="Interfaces\IUnknown.xml" />
< <Interface Name="IShellImageDataFactory" Id="{9be8ed5c-edab-4d75-90f3-bd5bdbb21c82}" BaseInterface="IUnknown" OnlineHelp="MSDN" ErrorFunc="HRESULT" Category="Windows Environment Development/Windows Shell/Interfaces">
< <Api Name="CreateIShellImageData">
< <Param Type="IShellImageData**" Name="ppshimg" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="CreateImageFromFile">
< <Param Type="LPCWSTR" Name="pszPath" />
< <Param Type="IShellImageData**" Name="ppshimg" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="CreateImageFromStream">
< <Param Type="IStream*" Name="pStream" />
< <Param Type="IShellImageData**" Name="ppshimg" />
< <Return Type="HRESULT" />
< </Api>
< <Api Name="GetDataFormatFromPath">
< <Param Type="LPCWSTR" Name="pszPath" />
< <Param Type="GUID*" Name="pDataFormat" />
< <Return Type="HRESULT" />
< </Api>
< </Interface>
< </ApiMonitor>
diff -r E:\apps\API Monitor (rohitab.com)\API/MAPI/IMAPISession.xml C:\Program Files\rohitab.com\API Monitor\API/MAPI/IMAPISession.xml
9c9
< <Interface Name="IMAPISession" Id="{00020300-0000-0000-C000-000000000046}" BaseInterface="IUnknown" OnlineHelp="MSDN" ErrorFunc="HRESULT" Category="Office Development/Microsoft Office/Outlook/Outlook MAPI Reference/Interfaces" Category="Office Development/Microsoft Office/Outlook/Outlook MAPI Reference/Interfaces">
---
> <Interface Name="IMAPISession" Id="{00020300-0000-0000-C000-000000000046}" BaseInterface="IUnknown" OnlineHelp="MSDN" ErrorFunc="HRESULT" Category="Office Development/Microsoft Office/Outlook/Outlook MAPI Reference/Interfaces">
diff -r E:\apps\API Monitor (rohitab.com)\API/Windows/Netapi32.xml C:\Program Files\rohitab.com\API Monitor\API/Windows/Netapi32.xml
499c499
< <!-- TODO: DWORD return should be [ERROR_CODE]
---
> <!-- TODO: DWORD return should be [ERROR_CODE] -->
diff -r E:\apps\API Monitor (rohitab.com)\API/Windows/Rpcrt4.xml C:\Program Files\rohitab.com\API Monitor\API/Windows/Rpcrt4.xml
979c979
< <Param Type="RPC_TSTR"n Name="StringUuid" />
---
> <Param Type="RPC_TSTR" Name="StringUuid" />
diff -r E:\apps\API Monitor (rohitab.com)\API/Windows/User32.xml C:\Program Files\rohitab.com\API Monitor\API/Windows/User32.xml
10a11
> <Include Filename="Windows\kernel32.xml" />
-89
View File
@@ -1,89 +0,0 @@
-- Recursive object dumper, for debugging.
-- (c) 2010 David Manura, MIT License.
local M = {}
-- My own object dumper.
-- Intended for debugging, not serialization, with compact formatting.
-- Robust against recursion.
-- Renders Metalua table tag fields specially {tag=X, ...} --> "`X{...}".
-- On first call, only pass parameter o.
-- CATEGORY: AST debug
local ignore_keys_ = {lineinfo=true}
local norecurse_keys_ = {parent=true, ast=true}
local function dumpstring_key_(k, isseen, newindent)
local ks = type(k) == 'string' and k:match'^[%a_][%w_]*$' and k or
'[' .. M.dumpstring(k, isseen, newindent) .. ']'
return ks
end
local function sort_keys_(a, b)
if type(a) == 'number' and type(b) == 'number' then
return a < b
elseif type(a) == 'number' then
return false
elseif type(b) == 'number' then
return true
elseif type(a) == 'string' and type(b) == 'string' then
return a < b
else
return tostring(a) < tostring(b) -- arbitrary
end
end
function M.dumpstring(o, isseen, indent, key)
isseen = isseen or {}
indent = indent or ''
if type(o) == 'table' then
if isseen[o] or norecurse_keys_[key] then
return (type(o.tag) == 'string' and '`' .. o.tag .. ':' or '') .. tostring(o)
else isseen[o] = true end -- avoid recursion
local used = {}
local tag = o.tag
local s = '{'
if type(o.tag) == 'string' then
s = '`' .. tag .. s; used['tag'] = true
end
local newindent = indent .. ' '
local ks = {}; for k in pairs(o) do ks[#ks+1] = k end
table.sort(ks, sort_keys_)
--for i,k in ipairs(ks) do print ('keys', k) end
local forcenummultiline
for k in pairs(o) do
if type(k) == 'number' and type(o[k]) == 'table' then forcenummultiline = true end
end
-- inline elements
for _,k in ipairs(ks) do
if used[k] then -- skip
elseif ignore_keys_[k] then used[k] = true
elseif (type(k) ~= 'number' or not forcenummultiline) and
type(k) ~= 'table' and (type(o[k]) ~= 'table' or norecurse_keys_[k])
then
s = s .. dumpstring_key_(k, isseen, newindent) .. '=' .. M.dumpstring(o[k], isseen, newindent, k) .. ', '
used[k] = true
end
end
-- elements on separate lines
local done
for _,k in ipairs(ks) do
if not used[k] then
if not done then s = s .. '\n'; done = true end
s = s .. newindent .. dumpstring_key_(k, isseen) .. '=' .. M.dumpstring(o[k], isseen, newindent, k) .. ',\n'
end
end
s = s:gsub(',(%s*)$', '%1')
s = s .. (done and indent or '') .. '}'
return s
elseif type(o) == 'string' then
return string.format('%q', o)
else
return tostring(o)
end
end
return M
-1648
View File
File diff suppressed because it is too large Load Diff
-1
View File
@@ -1 +0,0 @@
@call ..\luajit32 %~dpn0.lua > %~dpn0.txt
-544
View File
@@ -1,544 +0,0 @@
local ffi = require( "ffi" )
local dump = require( "etc/dump" ).dumpstring
local expat = require( "ffi/expat" )
local files = require( "etc/winapi-files" )
local outdir = "../ffi/winapi/"
print()
-- Replaces \ with /, removes duplicate /, and lowercases the name
local function fixpath(name)
if type(name) ~= "string" then return name end
local fixed, pb = {}
for i = 1, #name do
local b = name:byte(i)
if b == 92 then b = 47 end
if b >= 65 and b <= 90 then b = b + 32 end
if b ~= pb or pb ~= 47 then fixed[#fixed+1] = string.char(b) end
pb = b
end
return table.concat(fixed)
end
if ffi.os == "Windows" then
xmldir = (os.getenv("ProgramW6432") or os.getenv("ProgramFiles")).."/rohitab.com/API Monitor/API/"
else
xmldir = "/Users/malkia/Downloads/API Monitor (rohitab.com)/API/"
end
-- Returns the directory name of a unix-formed path
local function dirname(filename)
local p = 0
for i=1, #filename do
if filename:byte(i) == 47 then p = i end
end
return filename:sub(1, p)
end
local function validate_id(id)
return id:match("[_%a]+[_%a%d]*") == id
end
local function validate_id_ptr(id)
return id:match("[_%a]+[_%a%d]*%**") == id
end
-- Remove "const"
local function filter_const(id,type,type2)
local o = id
id = id:gsub(" [Cc][Oo][Nn][Ss][Tt]%*","*")
id = id:gsub(" [Cc][Oo][Nn][Ss][Tt]%[","[")
id = id:gsub("^[Cc][Oo][Nn][Ss][Tt] ","")
if o ~= id then
assert(type~="Set")
print('no const',o,id)
end
return id
end
-- Remove "dash"
local function filter_dash_slash(id,type)
id = id:gsub("[-/]","_")
id = id:gsub(" %+ ","_plus_")
id = id:gsub(" %* ","_mult_")
id = id:gsub("%(%)","_func_")
id = id:gsub("%(","_")
id = id:gsub("%)","_")
return id
end
-- Removes opening and closing square brackets
local function filter_brackets(id,type,type2)
if id:sub(1,1)=="[" and id:sub(-1)=="]" then
assert(type~="Set")
return "WINAPI_"..id:sub(2,-2)
end
return id
end
-- Removes opening and closing square stars
local function filter_stars(id)
if id:sub(1,1)=="*" and id:sub(-1)=="*" then
return id:sub(2,-2)
end
return id
end
-- Remove ":" and everything after it
local function filter_cut_to_colon(id)
local colon = id:find(":", 1, true)
if colon then return id:sub(1,colon-1) end
return id
end
-- Turn anything that's not _, a-zA-Z, or 0-9 to underscore
local function filter_make_underscore(id,type,type2)
return id:gsub("[^_%a%d]","_")
end
local T = true
local builtin_types = {
["wchar_t"] = T, ["ptrdiff_t"] = T, ["_Bool"] = T,
["bool"] = T, ["size_t"] = T, ["void"] = T,
["float"] = T, ["double"] = T, ["va_list"] = T,
["char"] = T, ["unsigned char"] = T, ["signed char"] = T,
["short"] = T, ["unsigned short"] = T, ["signed short"] = T,
["int"] = T, ["unsigned int"] = T, ["signed int"] = T,
["long"] = T, ["unsigned long"] = T, ["signed long"] = T,
["__int8"] = T, ["unsigned __int8"] = T, ["signed __int8"] = T,
["__int16"] = T, ["unsigned __int16"] = T, ["signed __int16"] = T,
["__int32"] = T, ["unsigned __int32"] = T, ["signed __int32"] = T,
["__int64"] = T, ["unsigned __int64"] = T, ["signed __int64"] = T,
}
local filters = {
Api = {filter_dash_slash, filter_brackets },
Param = {filter_dash_slash, filter_brackets }, -- Keep "const" for parameters
Return = {filter_dash_slash, filter_brackets }, -- And return types
Field = {filter_dash_slash, filter_brackets, filter_const },
Variable = {filter_dash_slash, filter_brackets, filter_const },
Set = {filter_dash_slash, filter_cut_to_colon, filter_make_underscore},
Interface = { Id=T, Category=T, filter_brackets, filter_const },
Category = T,
Condition = T,
Display = T,
Enum = T,
ErrorDecode = T,
ErrorLookupModule = T,
Flag = T,
HelpUrl = T,
SourceModule = T,
Success = T,
Module = T,
ModuleAlias = T,
}
local fixednames = {}
local function fixname(oid, type, type2)
-- Don't memoize these passthrough ones
if filters[type]==T or filters[type][type2]==T or tonumber(oid)~= nil then
return oid
end
fixednames[type] = fixednames[type] or {}
fixednames[type][type2] = fixednames[type][type2] or {}
if fixednames[type][type2][oid] then
return fixednames[type][type2][oid]
end
local id = oid
if not validate_id_ptr(id) then
for _, filter in ipairs(filters[type][type2] or filters[type]) do
id = filter(id,type,type2)
end
if id ~= oid then
local id = id:gsub("%*","") --temp
if validate_id_ptr(id) == false then
print('changed',type..'/'..type2,'\n','<'..oid..'>\n','<'..id..'>')
end
else
if validate_id_ptr(id) == false then
print('invalid',type..'/'..type2,'<'..oid..'>')
end
end
end
fixednames[type][type2][oid] = id
return id
end
local function normalize(t)
local index = 1
while index <= #t do
local cond = t[index].Condition
for _,e in ipairs(cond or {}) do
for _,v in pairs(e) do
assert(v.Architecture==nil)
-- propagate Condition.Architecture
v.Architecture = cond.Architecture
end
table.insert(t, index, e)
index = index + 1
end
index = index + 1
end
for index = 1, #t do
for k,v in pairs(t[index]) do
t[k] = t[k] or {}
local p = t[k]
p[#p+1] = normalize(v)
end
t[index] = nil
end
return t
end
local function parse(buffer, filename)
local stack = {{}}
local startElementHandler = ffi.cast(
"XML_StartElementHandler",
function(udata, name, attr)
local kv, index = {}, 0
while attr[index] ~= nil do
local key = ffi.string(attr[index+0])
local value = ffi.string(attr[index+1])
index = index + 2
assert( kv[key] == nil )
kv[key] = (key == "Filename") and fixpath(value) or fixname(value, ffi.string(name), key)
end
stack[#stack+1] = kv
end)
local endElementHandler = ffi.cast(
"XML_EndElementHandler",
function(udata, name)
local parent = stack[#stack-1]
parent[#parent+1] = { [ffi.string(name)] = stack[#stack] }
stack[#stack] = nil
end)
local parser = ffi.gc(expat.XML_ParserCreate(nil), expat.XML_ParserFree)
expat.XML_SetElementHandler(parser, startElementHandler, endElementHandler)
local status = expat.XML_Parse(parser, buffer, ffi.sizeof(buffer)-1, 1)
startElementHandler:free()
endElementHandler:free()
if status == expat.XML_STATUS_ERROR then
local ec = expat.XML_GetErrorCode(parser)
local es = ffi.string(expat.XML_ErrorString(ec))
local ln = expat.XML_GetCurrentLineNumber(parser)
local cn = expat.XML_GetCurrentColumnNumber(parser)
print( "EXPAT ERROR: " .. tonumber(ec) .. " '" .. es ..
"' in file: " .. filename .. ":" .. ln .. ":" .. cn )
return nil
end
assert(stack[2]==nil and stack[1][2]==nil)
return normalize(stack[1][1].ApiMonitor)
end
--[[
typed enum -> typedef base type; static const type enum1 = value1;
untyped enum -> typedef enum type { enum1 = value1 } type;
--]]
local defined = {}
local function emit_typedef_int(var, f)
assert(var.Type=="Integer" and var.Size)
local Type = ((var.Unsigned=="True") and "u" or "") .. "int" .. tostring(8*tonumber(var.Size)) .. "_t"
f:write( " typedef " .. Type .. " " .. var.Name .. "; //" .. var.Type .. "\n" )
end
local function emit_typed_enum(var, f)
local Prefix = (var.Name=="BOOL" or var.Name=="BOOLEAN") and (var.Name .. "_") or ""
for _, enum in ipairs(var.Enum[1].Set) do
local Name = Prefix .. enum.Name
local Comment = defined[Name] and "//" or " "
defined[Name]=true
f:write( Comment .. "static const " .. var.Name .. " " ..
Name .. " = " .. enum.Value .. ";\n" )
end
end
local function emit_untyped_enum(var, f)
f:write( " typedef enum " .. var.Name .. " {\n" )
for _, enum in ipairs(var.Enum[1].Set) do
local Comment = defined[Name] and " //" or " "
defined[Name]=true
f:write( Comment .. enum.Name .. " = " .. enum.Value .. ",\n" )
end
f:write( " } " .. var.Name .. ";\n" )
end
local function process(var, luafile)
local f = luafile
local arch
if var.Architecture then
assert(var.Architecture=="32" or var.Architecture=="64")
arch = var.Architecture=="32" and "x86" or "x64"
f:write("]]\nif ffi.arch == '" .. arch .. "' then ffi.cdef[[\n")
end
if var.Enum then
if var.Type=="Integer" or var.Size then
emit_typedef_int(var, f)
emit_typed_enum(var, f)
elseif var.Type=="Alias" or var.Base then
assert(var.Type=="Alias" and var.Base)
local Base, Name = var.Base, var.Name
if Base == "LPCTSTR" then
Base = "uintptr_t"
end
luafile:write(
" typedef " .. Base .. " " .. Name .. "; //" .. var.Type .. "\n" )
-- assert(defined[var.Name]==nil)
defined[Name] = true
for _, enum in ipairs( var.Enum[1].Set ) do
local Comment = defined[enum.Name] and "//" or " "
defined[enum.Name]=true
if enum.Name:find("(",1,true)==nil then
f:write( Comment .. "static const " .. Name .. " " ..
enum.Name .. " = " .. enum.Value .. ";\n" )
end
end
else
emit_untyped_enum(var, f)
end
elseif var.Type == "Pointer" then
local Base, Name = var.Base, var.Name
if Base.."*" ~= Name and Base ~= Name and builtin_types[Name] == nil and Name:sub(1,7)~="struct " then
Name = filter_stars("*"..Name)
f:write( " typedef " .. Base .. " " .. Name .. "; //" .. var.Type .. "\n" )
end
elseif var.Type == "Alias" then
local Base, Name = var.Base, var.Name
if Name == "SID*" and Base == "LPVOID" then
Base = "void"
Name = "SID"
end
if Base ~= Name and Name:find("*",1,true)==nil and builtin_types[Name]==nil then
f:write( " typedef " .. Base .. " " .. Name .. "; //" .. var.Type .. "\n" )
end
elseif var.Type == "Interface" then
luafile:write( " typedef void* " .. var.Name .. "; //" .. var.Type .. "\n" )
elseif var.Type == "Array" then
if var.Base .. "*" ~= var.Name then
local Type = var.Type
local Name = var.Name
local bracket = Name:find(" [", 1, true)
local in_brackets = bracket and Name:sub(bracket+2, -2) or ""
local space = in_brackets:find(" ", 1, true)
local before_space = (space and in_brackets:sub(1, space-1) or in_brackets)
local after_space = (space and in_brackets:sub(space) or "0"):gsub(" ","")
if tonumber(before_space) == nil and validate_id(before_space) and defined[before_space]==nil then
defined[before_space] = true
luafile:write(
" enum { " .. before_space .. " = " .. var.Count .. " };\n")
-- luafile:write(
-- " typedef " .. var.Base .. " " ..
-- var.Name .. "; //" .. var.Type .. " [" .. before_space .. "] [" .. after_space .. "] " .. var.Count .. "\n" )
elseif validate_id(var.Name) then
f:write( " typedef " .. var.Base .. " " .. var.Name .. "[" .. var.Count .. "];\n" )
end
end
elseif var.Type == "Struct" or var.Type == "Union" then
if var.Pack then
luafile:write("# pragma pack( push, " .. var.Pack .. " )\n")
end
if var.Name:sub(1,7)=="struct " then
assert(var.Type=="Struct")
var.Name = var.Name:sub(8)
end
luafile:write( " typedef " .. var.Type:lower() .. " " .. var.Name .. " {\n");
for _, enum in ipairs( var.Field ) do
local Type = (enum.Type or enum.TYPE)
local Name = enum.Name
local bracket = Type:find(" [", 1, true)
if bracket then
Name = Name .. Type:sub(bracket+1)
Type = Type:sub(1,bracket-1)
end
if Name == "WINAPI_Other values are currently unsupported" then
Name = "other_values_dummy"
end
luafile:write(" " .. Type .. " " .. Name .. ";\n")
end
luafile:write( " } " .. var.Name .. ";\n" )
if var.Pack then
luafile:write("# pragma pack( pop )\n")
end
elseif var.Type == "Integer" then
emit_typedef_int(var, f)
elseif var.Type == "Character" then
assert(var.Name == "CHAR")
luafile:write( " typedef char CHAR;\n");
elseif var.Type == "UnicodeCharacter" then
assert(var.Name == "WCHAR")
luafile:write( " typedef wchar_t WCHAR;\n");
elseif var.Type == "TCharacter" then
assert(var.Name == "TCHAR")
luafile:write( " typedef char TCHAR;\n");
elseif var.Type == "ModuleHandle" then
luafile:write( " typedef void* " .. var.Name .. "; //" .. var.Type .. "\n" )
elseif var.Type == "Void" then
assert(var.Name=="void")
elseif var.Type == "Floating" then
assert(var.Name=="float" and var.Size=="4" or var.Name=="double" and var.Size=="8")
elseif var.Type == "Guid" then
assert(var.Name=="GUID")
luafile:write( " typedef struct GUID { DWORD Data1; WORD Data2, Data3; BYTE Data4[8]; } GUID;\n")
else
error(dump(var))
end
if arch then
luafile:write("]]\nend\n")
luafile:write("ffi.cdef[[\n")
end
end
local function reorder(cdefs)
local depends = {}
local visited = {}
local order = {}
for filename, cdef in pairs(cdefs) do
for _, depend in ipairs(cdef.Include or {}) do
depends[ filename ] = depends[ filename ] or {}
depends[ filename ][ depend.Filename ] = depends[ filename ]
end
end
local function recur(filename)
if visited[filename] then return end
visited[filename] = true
for k,_ in pairs(depends[filename] or {}) do recur(k) end
order[#order+1] = filename
end
for filename, cdef in pairs(cdefs) do
recur(filename)
end
return order
end
local function generate()
-- All "C" definitions from the API monitor files
local cdefs = {}
for _, filename in ipairs(files) do
local fixedname = fixpath(filename)
assert(cdefs[fixedname]==nil)
-- Still use filename, not fixedname for reading
-- As it might be used on case-sensitive file systems (Wine on Linux?)
local file = assert(io.open(xmldir .. filename))
local contents = file:read("*all")
file:close()
local buffer = ffi.new("char[?]", contents:len()+1, contents)
cdefs[fixedname] = parse(buffer, filename)
end
local luadirs={}
for _, filename in ipairs(reorder(cdefs) or {}) do
local cdef = cdefs[filename]
local modname = filename:gsub("%..*$", "")
local luaname = modname .. ".lua"
local luadir = dirname(luaname)
if not luadirs[luadir] then
luadirs[luadir] = true
if ffi.os == "Windows" then
os.execute( "md \"" .. outdir .. luadir .. "\" 1>nul 2>nul" )
else
os.execute( "mkdir -p \"" .. outdir .. luadir .. "\"" )
end
end
local luafile = assert(io.open(outdir..luaname, "wt"))
for _, depend in ipairs(cdef.Include or {}) do
local depname = depend.Filename:gsub("%..*$","")
assert(depname ~= modname)
if cdefs[depend.Filename] then
luafile:write(
"require( 'ffi/winapi/" .. depname .. "' )\n" )
else
luafile:write(
"-- require( 'ffi/winapi/" .. depname .. "' )\n" )
end
end
luafile:write( "local ffi = require( 'ffi' )\n" ..
"ffi.cdef [[\n" )
for _, header in ipairs(cdef.Headers or {}) do
for _, var in ipairs(header.Variable or {}) do
process(var, luafile)
end
end
local dll
for _, module in ipairs(cdef.Module or {}) do
for _, var in ipairs(module.Variable or {}) do
process(var, luafile)
end
-- TODO - Move this to process
local return_type_width = 0
local api_name_width = 0
for _, api in ipairs(module.Api) do
api.Return[1].Type = api.Return[1].Type:gsub("%[.*","*")
local return_type = api.Return[1].Type
return_type_width = math.max( #return_type, return_type_width )
api_name_width = math.max( #api.Name, api_name_width )
end
for _, api in ipairs(module.Api) do
local return_type = api.Return[1].Type
luafile:write(
" " .. return_type .. string.rep(" ", return_type_width - #return_type + 1) ..
api.Name .. "(" .. string.rep(" ", api_name_width - #api.Name + 1))
local comma = ""
for _, param in ipairs(api.Param or {}) do
local type = param.Type
type = type:gsub("%[%]","*")
luafile:write( comma .. type .. " " .. param.Name )
comma = ", "
end
luafile:write( ");\n" )
end
dll = module.Name
end
luafile:write( "]]\n" )
if dll and dll ~= "*" then
luafile:write( "return ffi.load( '" .. dll .. "' )\n" )
end
luafile:close()
end
return cdefs
end
local function test(cdefs)
local total, bad, missing = 0, 0, {}
for filename, _ in pairs(cdefs) do
local lib = "ffi/winapi/" .. fixpath(filename):gsub("%..*$", "")
local status, error = pcall(require,lib)
error = fixpath(error)
if status ~= true then
print(lib.."\n"..(error==true and "OK" or error).."\n")
local missing_module = error:match("cannot load module '(.*)': The specified module could not be found.")
if missing_module then
missing[#missing+1] = missing_module
else
bad = bad + 1
end
end
total = total + 1
end
print('total',total)
print('good',total-bad-#missing)
print('bad',bad)
print('missing',#missing,table.concat(missing,' '))
end
--generate()
test(generate())
--categories["Api"] = {}
--print(dump(categories.Api))
File diff suppressed because it is too large Load Diff
-237
View File
@@ -1,237 +0,0 @@
local ffi = require( "ffi" )
local expat = ffi.load( "expat" )
ffi.cdef[[
struct XML_ParserStruct;
typedef struct XML_ParserStruct *XML_Parser;
enum {
XML_MAJOR_VERSION = 2,
XML_MINOR_VERSION = 0,
XML_MICRO_VERSION = 1
};
typedef enum XML_Status {
XML_STATUS_ERROR = 0,
XML_STATUS_OK = 1,
XML_STATUS_SUSPENDED = 2,
} XML_Status;
typedef enum XML_Error {
XML_ERROR_NONE,
XML_ERROR_NO_MEMORY,
XML_ERROR_SYNTAX,
XML_ERROR_NO_ELEMENTS,
XML_ERROR_INVALID_TOKEN,
XML_ERROR_UNCLOSED_TOKEN,
XML_ERROR_PARTIAL_CHAR,
XML_ERROR_TAG_MISMATCH,
XML_ERROR_DUPLICATE_ATTRIBUTE,
XML_ERROR_JUNK_AFTER_DOC_ELEMENT,
XML_ERROR_PARAM_ENTITY_REF,
XML_ERROR_UNDEFINED_ENTITY,
XML_ERROR_RECURSIVE_ENTITY_REF,
XML_ERROR_ASYNC_ENTITY,
XML_ERROR_BAD_CHAR_REF,
XML_ERROR_BINARY_ENTITY_REF,
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF,
XML_ERROR_MISPLACED_XML_PI,
XML_ERROR_UNKNOWN_ENCODING,
XML_ERROR_INCORRECT_ENCODING,
XML_ERROR_UNCLOSED_CDATA_SECTION,
XML_ERROR_EXTERNAL_ENTITY_HANDLING,
XML_ERROR_NOT_STANDALONE,
XML_ERROR_UNEXPECTED_STATE,
XML_ERROR_ENTITY_DECLARED_IN_PE,
XML_ERROR_FEATURE_REQUIRES_XML_DTD,
XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING,
XML_ERROR_UNBOUND_PREFIX,
XML_ERROR_UNDECLARING_PREFIX,
XML_ERROR_INCOMPLETE_PE,
XML_ERROR_XML_DECL,
XML_ERROR_TEXT_DECL,
XML_ERROR_PUBLICID,
XML_ERROR_SUSPENDED,
XML_ERROR_NOT_SUSPENDED,
XML_ERROR_ABORTED,
XML_ERROR_FINISHED,
XML_ERROR_SUSPEND_PE,
XML_ERROR_RESERVED_PREFIX_XML,
XML_ERROR_RESERVED_PREFIX_XMLNS,
XML_ERROR_RESERVED_NAMESPACE_URI
} XML_Error;
typedef enum XML_Content_Type {
XML_CTYPE_EMPTY = 1,
XML_CTYPE_ANY,
XML_CTYPE_MIXED,
XML_CTYPE_NAME,
XML_CTYPE_CHOICE,
XML_CTYPE_SEQ
} XML_Content_Type;
typedef enum XML_Content_Quant {
XML_CQUANT_NONE,
XML_CQUANT_OPT,
XML_CQUANT_REP,
XML_CQUANT_PLUS
} XML_Content_Quant;
typedef enum XML_Parsing{
XML_INITIALIZED,
XML_PARSING,
XML_FINISHED,
XML_SUSPENDED
} XML_Parsing;
typedef enum XML_FeatureEnum {
XML_FEATURE_END,
XML_FEATURE_UNICODE,
XML_FEATURE_UNICODE_WCHAR_T,
XML_FEATURE_DTD,
XML_FEATURE_CONTEXT_BYTES,
XML_FEATURE_MIN_SIZE,
XML_FEATURE_SIZEOF_XML_CHAR,
XML_FEATURE_SIZEOF_XML_LCHAR,
XML_FEATURE_NS,
XML_FEATURE_LARGE_SIZE
} XML_FeatureEnum;
typedef enum {
XML_PARAM_ENTITY_PARSING_NEVER,
XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE,
XML_PARAM_ENTITY_PARSING_ALWAYS
} XML_ParamEntityParsing;
typedef struct XML_Memory_Handling_Suite {
void *(*malloc_fcn)(size_t size);
void *(*realloc_fcn)(void *ptr, size_t size);
void (*free_fcn)(void *ptr);
} XML_Memory_Handling_Suite;
typedef struct XML_Content {
XML_Content_Type type;
XML_Content_Quant quant;
char* name;
unsigned int numchildren;
struct XML_Content* children;
} XML_Content;
typedef struct XML_Encoding {
int map[ 256 ];
void* data;
int (* convert )( void *data, const char *s );
void (* release )( void *data );
} XML_Encoding;
typedef struct XML_ParsingStatus {
XML_Parsing parsing;
unsigned char finalBuffer;
} XML_ParsingStatus;
typedef struct XML_Expat_Version {
int major;
int minor;
int micro;
} XML_Expat_Version;
typedef struct {
enum XML_FeatureEnum feature;
const char* name;
long int value;
} XML_Feature;
typedef void (* XML_ElementDeclHandler )( void *udata, const char* name, XML_Content *model);
typedef void (* XML_AttlistDeclHandler )( void *udata, const char* elname, const char *attname, const char *att_type, const char *dflt, int isrequired );
typedef void (* XML_XmlDeclHandler )( void *udata, const char* version, const char *encoding, int standalone );
typedef void (* XML_StartElementHandler )( void *udata, const char* name, const char **atts);
typedef void (* XML_EndElementHandler )( void *udata, const char* name);
typedef void (* XML_CharacterDataHandler )( void *udata, const char* s, int len );
typedef void (* XML_ProcessingInstructionHandler )( void *udata, const char* target, const char *data );
typedef void (* XML_CommentHandler )( void *udata, const char* data );
typedef void (* XML_StartCdataSectionHandler )( void *udata );
typedef void (* XML_EndCdataSectionHandler )( void *udata );
typedef void (* XML_DefaultHandler )( void *udata, const char *s, int len);
typedef void (* XML_StartDoctypeDeclHandler )( void *udata, const char *doctypeName, const char *sysid, const char *pubid, int has_internal_subset );
typedef void (* XML_EndDoctypeDeclHandler )( void *udata );
typedef void (* XML_EntityDeclHandler )( void *udata, const char *entName, int is_param_entity, const char *val, int val_len, const char *base, const char *sysId, const char *pubId, const char *notationName);
typedef void (* XML_UnparsedEntityDeclHandler )( void *udata, const char *entityName, const char *base, const char *systemId, const char *publicId, const char *notationName );
typedef void (* XML_NotationDeclHandler )( void *udata, const char *notationName, const char *base, const char *systemId, const char *publicId);
typedef void (* XML_StartNamespaceDeclHandler )( void *udata, const char *prefix, const char *uri );
typedef void (* XML_EndNamespaceDeclHandler )( void *udata, const char *prefix);
typedef int (* XML_NotStandaloneHandler )( void *udata );
typedef void (* XML_SkippedEntityHandler )( void *udata, const char *entityName, int is_parameter_entity );
typedef int (* XML_UnknownEncodingHandler )( void *encodingHandlerData, const char *name, XML_Encoding *info );
typedef int (* XML_ExternalEntityRefHandler )( XML_Parser, const char *context, const char *base, const char *systemId, const char *publicId );
XML_Parser XML_ParserCreate( const char *encoding);
XML_Parser XML_ParserCreateNS( const char *encoding, char namespaceSeparator );
XML_Parser XML_ParserCreate_MM( const char *encoding, const XML_Memory_Handling_Suite*, const char* namespaceSeparator );
unsigned char XML_ParserReset( XML_Parser, const char *encoding );
void XML_SetElementDeclHandler( XML_Parser, XML_ElementDeclHandler );
void XML_SetAttlistDeclHandler( XML_Parser, XML_AttlistDeclHandler );
void XML_SetXmlDeclHandler( XML_Parser, XML_XmlDeclHandler );
void XML_SetEntityDeclHandler( XML_Parser, XML_EntityDeclHandler );
void XML_SetElementHandler( XML_Parser, XML_StartElementHandler, XML_EndElementHandler );
void XML_SetStartElementHandler( XML_Parser, XML_StartElementHandler );
void XML_SetEndElementHandler( XML_Parser, XML_EndElementHandler );
void XML_SetCharacterDataHandler( XML_Parser, XML_CharacterDataHandler );
void XML_SetProcessingInstructionHandler( XML_Parser, XML_ProcessingInstructionHandler );
void XML_SetCommentHandler( XML_Parser, XML_CommentHandler );
void XML_SetCdataSectionHandler( XML_Parser, XML_StartCdataSectionHandler, XML_EndCdataSectionHandler end);
void XML_SetStartCdataSectionHandler( XML_Parser, XML_StartCdataSectionHandler );
void XML_SetEndCdataSectionHandler( XML_Parser, XML_EndCdataSectionHandler );
void XML_SetDefaultHandler( XML_Parser, XML_DefaultHandler );
void XML_SetDefaultHandlerExpand( XML_Parser, XML_DefaultHandler );
void XML_SetDoctypeDeclHandler( XML_Parser, XML_StartDoctypeDeclHandler, XML_EndDoctypeDeclHandler end);
void XML_SetStartDoctypeDeclHandler( XML_Parser, XML_StartDoctypeDeclHandler );
void XML_SetEndDoctypeDeclHandler( XML_Parser, XML_EndDoctypeDeclHandler );
void XML_SetUnparsedEntityDeclHandler( XML_Parser, XML_UnparsedEntityDeclHandler handler);
void XML_SetNotationDeclHandler( XML_Parser, XML_NotationDeclHandler );
void XML_SetNamespaceDeclHandler( XML_Parser, XML_StartNamespaceDeclHandler, XML_EndNamespaceDeclHandler );
void XML_SetStartNamespaceDeclHandler( XML_Parser, XML_StartNamespaceDeclHandler );
void XML_SetEndNamespaceDeclHandler( XML_Parser, XML_EndNamespaceDeclHandler );
void XML_SetNotStandaloneHandler( XML_Parser, XML_NotStandaloneHandler );
void XML_SetExternalEntityRefHandler( XML_Parser, XML_ExternalEntityRefHandler );
void XML_SetExternalEntityRefHandlerArg( XML_Parser, void *arg );
void XML_SetSkippedEntityHandler( XML_Parser, XML_SkippedEntityHandler );
void XML_SetUnknownEncodingHandler( XML_Parser, XML_UnknownEncodingHandler, void *data );
void XML_SetUserData( XML_Parser, void *userData );
XML_Status XML_SetEncoding( XML_Parser, const char *encoding );
XML_Status XML_SetBase( XML_Parser, const char *base );
const char* XML_GetBase( XML_Parser );
void XML_DefaultCurrent( XML_Parser );
void XML_SetReturnNSTriplet( XML_Parser, int do_nst );
void XML_UseParserAsHandlerArg( XML_Parser );
XML_Error XML_UseForeignDTD( XML_Parser, unsigned char useDTD );
int XML_GetSpecifiedAttributeCount( XML_Parser );
int XML_GetIdAttributeIndex( XML_Parser );
XML_Status XML_Parse( XML_Parser, const char *s, int len, int isFinal );
void* XML_GetBuffer( XML_Parser, int len );
XML_Status XML_ParseBuffer( XML_Parser, int len, int isFinal );
XML_Status XML_StopParser( XML_Parser, unsigned char resumable );
XML_Status XML_ResumeParser( XML_Parser );
void XML_GetParsingStatus( XML_Parser, XML_ParsingStatus *status);
XML_Parser XML_ExternalEntityParserCreate( XML_Parser, const char *context, const char *encoding );
int XML_SetParamEntityParsing( XML_Parser, XML_ParamEntityParsing );
XML_Error XML_GetErrorCode( XML_Parser );
int XML_GetCurrentLineNumber( XML_Parser );
int XML_GetCurrentColumnNumber( XML_Parser );
long XML_GetCurrentByteIndex( XML_Parser );
int XML_GetCurrentByteCount( XML_Parser );
const char* XML_GetInputContext( XML_Parser, int *offset, int *size );
void XML_FreeContentModel( XML_Parser, XML_Content *model );
void* XML_MemMalloc( XML_Parser, size_t size );
void* XML_MemRealloc( XML_Parser, void *ptr, size_t size );
void XML_MemFree( XML_Parser, void *ptr );
void XML_ParserFree( XML_Parser );
const char* XML_ErrorString( XML_Error );
const char* XML_ExpatVersion( );
XML_Expat_Version XML_ExpatVersionInfo( );
const XML_Feature* XML_GetFeatureList( );
]]
return expat
-253
View File
@@ -1,253 +0,0 @@
require( 'ffi/winapi/headers/windows' )
local ffi = require( 'ffi' )
ffi.cdef [[
typedef HANDLE HBLUETOOTH_RADIO_FIND; //Alias
typedef HANDLE HBLUETOOTH_DEVICE_FIND; //Alias
typedef HANDLE HBLUETOOTH_AUTHENTICATION_REGISTRATION; //Alias
typedef HANDLE HBLUETOOTH_CONTAINER_ELEMENT; //Alias
typedef LPVOID PFN_AUTHENTICATION_CALLBACK; //Alias
typedef LPVOID PFN_BLUETOOTH_ENUM_ATTRIBUTES_CALLBACK; //Alias
typedef LPVOID PFN_DEVICE_CALLBACK; //Alias
typedef LPVOID PFN_AUTHENTICATION_CALLBACK_EX; //Alias
enum { BLUETOOTH_MAX_NAME_SIZE = 248 };
enum { BLUETOOTH_MAX_SERVICE_NAME_SIZE = 256 };
enum { BLUETOOTH_DEVICE_NAME_SIZE = 256 };
enum { BTH_MAX_PIN_SIZE = 16 };
typedef ULONGLONG BTH_ADDR; //Alias
static const BTH_ADDR BLUETOOTH_NULL_ADDRESS = 0;
typedef struct BLUETOOTH_ADDRESS {
BTH_ADDR ullLong;
} BLUETOOTH_ADDRESS;
typedef USHORT WINAPI_BTH_MFG; //Alias
static const WINAPI_BTH_MFG BTH_MFG_ERICSSON = 0;
static const WINAPI_BTH_MFG BTH_MFG_NOKIA = 1;
static const WINAPI_BTH_MFG BTH_MFG_INTEL = 2;
static const WINAPI_BTH_MFG BTH_MFG_IBM = 3;
static const WINAPI_BTH_MFG BTH_MFG_TOSHIBA = 4;
static const WINAPI_BTH_MFG BTH_MFG_3COM = 5;
static const WINAPI_BTH_MFG BTH_MFG_MICROSOFT = 6;
static const WINAPI_BTH_MFG BTH_MFG_LUCENT = 7;
static const WINAPI_BTH_MFG BTH_MFG_MOTOROLA = 8;
static const WINAPI_BTH_MFG BTH_MFG_INFINEON = 9;
static const WINAPI_BTH_MFG BTH_MFG_CSR = 10;
static const WINAPI_BTH_MFG BTH_MFG_SILICONWAVE = 11;
static const WINAPI_BTH_MFG BTH_MFG_DIGIANSWER = 12;
static const WINAPI_BTH_MFG BTH_MFG_TI = 13;
static const WINAPI_BTH_MFG BTH_MFG_PARTHUS = 14;
static const WINAPI_BTH_MFG BTH_MFG_BROADCOM = 15;
static const WINAPI_BTH_MFG BTH_MFG_MITEL = 16;
static const WINAPI_BTH_MFG BTH_MFG_WIDCOMM = 17;
static const WINAPI_BTH_MFG BTH_MFG_ZEEVO = 18;
static const WINAPI_BTH_MFG BTH_MFG_ATMEL = 19;
static const WINAPI_BTH_MFG BTH_MFG_MITSIBUSHI = 20;
static const WINAPI_BTH_MFG BTH_MFG_RTX_TELECOM = 21;
static const WINAPI_BTH_MFG BTH_MFG_KC_TECHNOLOGY = 22;
static const WINAPI_BTH_MFG BTH_MFG_NEWLOGIC = 23;
static const WINAPI_BTH_MFG BTH_MFG_TRANSILICA = 24;
static const WINAPI_BTH_MFG BTH_MFG_ROHDE_SCHWARZ = 25;
static const WINAPI_BTH_MFG BTH_MFG_TTPCOM = 26;
static const WINAPI_BTH_MFG BTH_MFG_SIGNIA = 27;
static const WINAPI_BTH_MFG BTH_MFG_CONEXANT = 28;
static const WINAPI_BTH_MFG BTH_MFG_QUALCOMM = 29;
static const WINAPI_BTH_MFG BTH_MFG_INVENTEL = 30;
static const WINAPI_BTH_MFG BTH_MFG_AVM_BERLIN = 31;
static const WINAPI_BTH_MFG BTH_MFG_BANDSPEED = 32;
static const WINAPI_BTH_MFG BTH_MFG_MANSELLA = 33;
static const WINAPI_BTH_MFG BTH_MFG_NEC = 34;
static const WINAPI_BTH_MFG BTH_MFG_WAVEPLUS_TECHNOLOGY_CO = 35;
static const WINAPI_BTH_MFG BTH_MFG_ALCATEL = 36;
static const WINAPI_BTH_MFG BTH_MFG_PHILIPS_SEMICONDUCTOR = 37;
static const WINAPI_BTH_MFG BTH_MFG_C_TECHNOLOGIES = 38;
static const WINAPI_BTH_MFG BTH_MFG_OPEN_INTERFACE = 39;
static const WINAPI_BTH_MFG BTH_MFG_RF_MICRO_DEVICES = 40;
static const WINAPI_BTH_MFG BTH_MFG_HITACHI = 41;
static const WINAPI_BTH_MFG BTH_MFG_SYMBOL_TECHNOLOGIES = 42;
static const WINAPI_BTH_MFG BTH_MFG_TENOVIS = 43;
static const WINAPI_BTH_MFG BTH_MFG_MACRONIX_INTERNATIONAL = 44;
static const WINAPI_BTH_MFG BTH_MFG_INTERNAL_USE = 65535;
typedef struct BLUETOOTH_RADIO_INFO {
DWORD dwSize;
BLUETOOTH_ADDRESS address;
WCHAR szName[BLUETOOTH_MAX_NAME_SIZE];
ULONG ulClassofDevice;
USHORT lmpSubversion;
WINAPI_BTH_MFG manufacturer;
} BLUETOOTH_RADIO_INFO;
typedef BLUETOOTH_RADIO_INFO *PBLUETOOTH_RADIO_INFO; //Pointer
typedef struct BLUETOOTH_DEVICE_INFO {
DWORD dwSize;
BLUETOOTH_ADDRESS Address;
ULONG ulClassofDevice;
BOOL fConnected;
BOOL fRemembered;
BOOL fAuthenticated;
SYSTEMTIME stLastSeen;
SYSTEMTIME stLastUsed;
WCHAR szName[BLUETOOTH_MAX_NAME_SIZE];
} BLUETOOTH_DEVICE_INFO;
typedef BLUETOOTH_DEVICE_INFO *PBLUETOOTH_DEVICE_INFO; //Pointer
typedef struct BLUETOOTH_LOCAL_SERVICE_INFO {
BOOL Enabled;
BLUETOOTH_ADDRESS btAddr;
WCHAR szName[BLUETOOTH_MAX_SERVICE_NAME_SIZE];
WCHAR szDeviceString[BLUETOOTH_DEVICE_NAME_SIZE];
} BLUETOOTH_LOCAL_SERVICE_INFO;
typedef struct BLUETOOTH_PIN_INFO {
UCHAR pin[BTH_MAX_PIN_SIZE];
UCHAR pinLength;
} BLUETOOTH_PIN_INFO;
typedef struct BLUETOOTH_OOB_DATA_INFO {
UCHAR C[16];
UCHAR R[16];
} BLUETOOTH_OOB_DATA_INFO;
typedef BLUETOOTH_OOB_DATA_INFO *PBLUETOOTH_OOB_DATA_INFO; //Pointer
typedef struct BLUETOOTH_NUMERIC_COMPARISON_INFO {
ULONG NumericValue;
} BLUETOOTH_NUMERIC_COMPARISON_INFO;
typedef struct BLUETOOTH_PASSKEY_INFO {
ULONG passkey;
} BLUETOOTH_PASSKEY_INFO;
typedef union WINAPI_BLUETOOTH_AUTHENTICATE_RESPONSE_u {
BLUETOOTH_PIN_INFO pinInfo;
BLUETOOTH_OOB_DATA_INFO oobInfo;
BLUETOOTH_NUMERIC_COMPARISON_INFO numericCompInfo;
BLUETOOTH_PASSKEY_INFO passkeyInfo;
} WINAPI_BLUETOOTH_AUTHENTICATE_RESPONSE_u;
typedef UINT BLUETOOTH_AUTHENTICATION_METHOD; //Alias
static const BLUETOOTH_AUTHENTICATION_METHOD BLUETOOTH_AUTHENTICATION_METHOD_LEGACY = 1;
static const BLUETOOTH_AUTHENTICATION_METHOD BLUETOOTH_AUTHENTICATION_METHOD_OOB = 2;
static const BLUETOOTH_AUTHENTICATION_METHOD BLUETOOTH_AUTHENTICATION_METHOD_NUMERIC_COMPARISON = 3;
static const BLUETOOTH_AUTHENTICATION_METHOD BLUETOOTH_AUTHENTICATION_METHOD_PASSKEY_NOTIFICATION = 4;
static const BLUETOOTH_AUTHENTICATION_METHOD BLUETOOTH_AUTHENTICATION_METHOD_PASSKEY = 5;
typedef struct BLUETOOTH_AUTHENTICATE_RESPONSE {
BLUETOOTH_ADDRESS bthAddressRemote;
BLUETOOTH_AUTHENTICATION_METHOD authMethod;
WINAPI_BLUETOOTH_AUTHENTICATE_RESPONSE_u ;
UCHAR negativeResponse;
} BLUETOOTH_AUTHENTICATE_RESPONSE;
typedef BLUETOOTH_AUTHENTICATE_RESPONSE *PBLUETOOTH_AUTHENTICATE_RESPONSE; //Pointer
typedef struct SDP_STRING_TYPE_DATA {
USHORT encoding;
USHORT mibeNum;
USHORT attributeId;
} SDP_STRING_TYPE_DATA;
typedef SDP_STRING_TYPE_DATA *PSDP_STRING_TYPE_DATA; //Pointer
typedef struct BLUETOOTH_FIND_RADIO_PARAMS {
DWORD dwSize;
} BLUETOOTH_FIND_RADIO_PARAMS;
typedef struct BLUETOOTH_DEVICE_SEARCH_PARAMS {
DWORD dwSize;
BOOL fReturnAuthenticated;
BOOL fReturnRemembered;
BOOL fReturnUnknown;
BOOL fReturnConnected;
BOOL fIssueInquiry;
UCHAR cTimeoutMultiplier;
HANDLE hRadio;
} BLUETOOTH_DEVICE_SEARCH_PARAMS;
typedef struct BLUETOOTH_COD_PAIRS {
ULONG ulCODMask;
LPCWSTR pcszDescription;
} BLUETOOTH_COD_PAIRS;
typedef struct BLUETOOTH_SELECT_DEVICE_PARAMS {
DWORD dwSize;
ULONG cNumOfClasses;
BLUETOOTH_COD_PAIRS* prgClassOfDevices;
LPWSTR pszInfo;
HWND hwndParent;
BOOL fForceAuthentication;
BOOL fShowAuthenticated;
BOOL fShowRemembered;
BOOL fShowUnknown;
BOOL fAddNewDeviceWizard;
BOOL fSkipServicesPage;
PFN_DEVICE_CALLBACK pfnDeviceCallback;
LPVOID pvParam;
DWORD cNumDevices;
PBLUETOOTH_DEVICE_INFO pDevices;
} BLUETOOTH_SELECT_DEVICE_PARAMS;
typedef UINT BLUETOOTH_AUTHENTICATION_REQUIREMENTS; //Alias
static const BLUETOOTH_AUTHENTICATION_REQUIREMENTS MITMProtectionNotRequired = 0x00;
static const BLUETOOTH_AUTHENTICATION_REQUIREMENTS MITMProtectionRequired = 0x01;
static const BLUETOOTH_AUTHENTICATION_REQUIREMENTS MITMProtectionNotRequiredBonding = 0x02;
static const BLUETOOTH_AUTHENTICATION_REQUIREMENTS MITMProtectionRequiredBonding = 0x03;
static const BLUETOOTH_AUTHENTICATION_REQUIREMENTS MITMProtectionNotRequiredGeneralBonding = 0x04;
static const BLUETOOTH_AUTHENTICATION_REQUIREMENTS MITMProtectionRequiredGeneralBonding = 0x05;
static const BLUETOOTH_AUTHENTICATION_REQUIREMENTS MITMProtectionNotDefined = 0xff;
typedef UINT SDP_TYPE; //Alias
static const SDP_TYPE SDP_TYPE_NIL = 0x00;
static const SDP_TYPE SDP_TYPE_UINT = 0x01;
static const SDP_TYPE SDP_TYPE_INT = 0x02;
static const SDP_TYPE SDP_TYPE_UUID = 0x03;
static const SDP_TYPE SDP_TYPE_STRING = 0x04;
static const SDP_TYPE SDP_TYPE_BOOLEAN = 0x05;
static const SDP_TYPE SDP_TYPE_SEQUENCE = 0x06;
static const SDP_TYPE SDP_TYPE_ALTERNATIVE = 0x07;
static const SDP_TYPE SDP_TYPE_URL = 0x08;
static const SDP_TYPE SDP_TYPE_CONTAINER = 0x20;
typedef UINT SDP_SPECIFICTYPE; //Alias
static const SDP_SPECIFICTYPE SDP_ST_NONE = 0x0000;
static const SDP_SPECIFICTYPE SDP_ST_UINT8 = 0x0010;
static const SDP_SPECIFICTYPE SDP_ST_UINT16 = 0x0110;
static const SDP_SPECIFICTYPE SDP_ST_UINT32 = 0x0210;
static const SDP_SPECIFICTYPE SDP_ST_UINT64 = 0x0310;
static const SDP_SPECIFICTYPE SDP_ST_UINT128 = 0x0410;
static const SDP_SPECIFICTYPE SDP_ST_INT8 = 0x0020;
static const SDP_SPECIFICTYPE SDP_ST_INT16 = 0x0120;
static const SDP_SPECIFICTYPE SDP_ST_INT32 = 0x0220;
static const SDP_SPECIFICTYPE SDP_ST_INT64 = 0x0320;
static const SDP_SPECIFICTYPE SDP_ST_INT128 = 0x0420;
static const SDP_SPECIFICTYPE SDP_ST_UUID16 = 0x0130;
static const SDP_SPECIFICTYPE SDP_ST_UUID32 = 0x0220;
static const SDP_SPECIFICTYPE SDP_ST_UUID128 = 0x0430;
typedef struct WINAPI_SDP_ELEMENT_DATA_u_s1 {
LPBYTE value;
ULONG length;
} WINAPI_SDP_ELEMENT_DATA_u_s1;
typedef struct WINAPI_SDP_ELEMENT_DATA_u_s2 {
LPBYTE value;
ULONG length;
} WINAPI_SDP_ELEMENT_DATA_u_s2;
typedef struct WINAPI_SDP_ELEMENT_DATA_u_s3 {
LPBYTE value;
ULONG length;
} WINAPI_SDP_ELEMENT_DATA_u_s3;
typedef struct WINAPI_SDP_ELEMENT_DATA_u_s4 {
LPBYTE value;
ULONG length;
} WINAPI_SDP_ELEMENT_DATA_u_s4;
typedef struct SDP_LARGE_INTEGER_16 {
ULONGLONG LowPart;
LONGLONG HighPart;
} SDP_LARGE_INTEGER_16;
typedef struct SDP_ULARGE_INTEGER_16 {
ULONGLONG LowPart;
ULONGLONG HighPart;
} SDP_ULARGE_INTEGER_16;
typedef union WINAPI_SDP_ELEMENT_DATA_u {
SDP_LARGE_INTEGER_16 int128;
LONGLONG int64;
LONG int32;
SHORT int16;
CHAR int8;
SDP_ULARGE_INTEGER_16 uint128;
ULONGLONG uint64;
ULONG uint32;
USHORT uint16;
UCHAR uint8;
UCHAR booleanVal;
GUID uuid128;
ULONG uuid32;
USHORT uuid16;
WINAPI_SDP_ELEMENT_DATA_u_s1 string;
WINAPI_SDP_ELEMENT_DATA_u_s2 url;
WINAPI_SDP_ELEMENT_DATA_u_s3 sequence;
WINAPI_SDP_ELEMENT_DATA_u_s4 alternative;
} WINAPI_SDP_ELEMENT_DATA_u;
typedef struct SDP_ELEMENT_DATA {
SDP_TYPE type;
SDP_SPECIFICTYPE specificType;
WINAPI_SDP_ELEMENT_DATA_u data;
} SDP_ELEMENT_DATA;
typedef SDP_ELEMENT_DATA *PSDP_ELEMENT_DATA; //Pointer
]]
-474
View File
@@ -1,474 +0,0 @@
require( 'ffi/winapi/headers/windows' )
local ffi = require( 'ffi' )
ffi.cdef [[
typedef void* IDirectDraw; //Interface
typedef void* IDirectDraw2; //Interface
typedef void* IDirectDraw4; //Interface
typedef void* IDirectDraw7; //Interface
typedef void* IDirectDrawClipper; //Interface
typedef void* IDirectDrawColorControl; //Interface
typedef void* IDirectDrawGammaControl; //Interface
typedef void* IDirectDrawPalette; //Interface
typedef void* IDirectDrawSurface; //Interface
typedef void* IDirectDrawSurface2; //Interface
typedef void* IDirectDrawSurface3; //Interface
typedef void* IDirectDrawSurface4; //Interface
typedef void* IDirectDrawSurface7; //Interface
typedef IDirectDraw* LPDIRECTDRAW; //Alias
typedef IDirectDraw7* LPDIRECTDRAW7; //Alias
typedef IDirectDrawSurface* LPDIRECTDRAWSURFACE; //Alias
typedef IDirectDrawSurface4* LPDIRECTDRAWSURFACE4; //Alias
typedef IDirectDrawSurface7* LPDIRECTDRAWSURFACE7; //Alias
typedef IDirectDrawPalette* LPDIRECTDRAWPALETTE; //Alias
typedef IDirectDrawClipper* LPDIRECTDRAWCLIPPER; //Alias
typedef LPVOID LPDDENUMCALLBACK; //Alias
typedef LPVOID LPDDENUMCALLBACKEX; //Alias
typedef LPVOID LPDDENUMSURFACESCALLBACK; //Alias
typedef LPVOID LPDDENUMMODESCALLBACK; //Alias
enum { DD_ROP_SPACE = 8 };
enum { MAX_DDDEVICEID_STRING = 512 };
typedef HRESULT WINAPI_DD_HRESULT; //Alias
static const WINAPI_DD_HRESULT DD_OK = 0x00000000;
static const WINAPI_DD_HRESULT DD_FALSE = 0x00000001;
static const WINAPI_DD_HRESULT DDENUMRET_CANCEL = 0x00000000;
static const WINAPI_DD_HRESULT DDENUMRET_OK = 0x00000001;
static const WINAPI_DD_HRESULT DDERR_ALREADYINITIALIZED = 0x88760005;
static const WINAPI_DD_HRESULT DDERR_CANNOTATTACHSURFACE = 0x8876000a;
static const WINAPI_DD_HRESULT DDERR_CANNOTDETACHSURFACE = 0x88760014;
static const WINAPI_DD_HRESULT DDERR_CURRENTLYNOTAVAIL = 0x88760028;
static const WINAPI_DD_HRESULT DDERR_EXCEPTION = 0x88760037;
static const WINAPI_DD_HRESULT DDERR_GENERIC = 0x80004005;
static const WINAPI_DD_HRESULT DDERR_HEIGHTALIGN = 0x8876005a;
static const WINAPI_DD_HRESULT DDERR_INCOMPATIBLEPRIMARY = 0x8876005f;
static const WINAPI_DD_HRESULT DDERR_INVALIDCAPS = 0x88760064;
static const WINAPI_DD_HRESULT DDERR_INVALIDCLIPLIST = 0x8876006e;
static const WINAPI_DD_HRESULT DDERR_INVALIDMODE = 0x88760078;
static const WINAPI_DD_HRESULT DDERR_INVALIDOBJECT = 0x88760082;
static const WINAPI_DD_HRESULT DDERR_INVALIDPARAMS = 0x80070057;
static const WINAPI_DD_HRESULT DDERR_INVALIDPIXELFORMAT = 0x88760091;
static const WINAPI_DD_HRESULT DDERR_INVALIDRECT = 0x88760096;
static const WINAPI_DD_HRESULT DDERR_LOCKEDSURFACES = 0x887600a0;
static const WINAPI_DD_HRESULT DDERR_NO3D = 0x887600aa;
static const WINAPI_DD_HRESULT DDERR_NOALPHAHW = 0x887600b4;
static const WINAPI_DD_HRESULT DDERR_NOSTEREOHARDWARE = 0x887600b5;
static const WINAPI_DD_HRESULT DDERR_NOSURFACELEFT = 0x887600b6;
static const WINAPI_DD_HRESULT DDERR_NOCLIPLIST = 0x887600cd;
static const WINAPI_DD_HRESULT DDERR_NOCOLORCONVHW = 0x887600d2;
static const WINAPI_DD_HRESULT DDERR_NOCOOPERATIVELEVELSET = 0x887600d4;
static const WINAPI_DD_HRESULT DDERR_NOCOLORKEY = 0x887600d7;
static const WINAPI_DD_HRESULT DDERR_NOCOLORKEYHW = 0x887600dc;
static const WINAPI_DD_HRESULT DDERR_NODIRECTDRAWSUPPORT = 0x887600de;
static const WINAPI_DD_HRESULT DDERR_NOEXCLUSIVEMODE = 0x887600e1;
static const WINAPI_DD_HRESULT DDERR_NOFLIPHW = 0x887600e6;
static const WINAPI_DD_HRESULT DDERR_NOGDI = 0x887600f0;
static const WINAPI_DD_HRESULT DDERR_NOMIRRORHW = 0x887600fa;
static const WINAPI_DD_HRESULT DDERR_NOTFOUND = 0x887600ff;
static const WINAPI_DD_HRESULT DDERR_NOOVERLAYHW = 0x88760104;
static const WINAPI_DD_HRESULT DDERR_OVERLAPPINGRECTS = 0x8876010e;
static const WINAPI_DD_HRESULT DDERR_NORASTEROPHW = 0x88760118;
static const WINAPI_DD_HRESULT DDERR_NOROTATIONHW = 0x88760122;
static const WINAPI_DD_HRESULT DDERR_NOSTRETCHHW = 0x88760136;
static const WINAPI_DD_HRESULT DDERR_NOT4BITCOLOR = 0x8876013c;
static const WINAPI_DD_HRESULT DDERR_NOT4BITCOLORINDEX = 0x8876013d;
static const WINAPI_DD_HRESULT DDERR_NOT8BITCOLOR = 0x88760140;
static const WINAPI_DD_HRESULT DDERR_NOTEXTUREHW = 0x8876014a;
static const WINAPI_DD_HRESULT DDERR_NOVSYNCHW = 0x8876014f;
static const WINAPI_DD_HRESULT DDERR_NOZBUFFERHW = 0x88760154;
static const WINAPI_DD_HRESULT DDERR_NOZOVERLAYHW = 0x8876015e;
static const WINAPI_DD_HRESULT DDERR_OUTOFCAPS = 0x88760168;
static const WINAPI_DD_HRESULT DDERR_OUTOFMEMORY = 0x8007000e;
static const WINAPI_DD_HRESULT DDERR_OUTOFVIDEOMEMORY = 0x8876017c;
static const WINAPI_DD_HRESULT DDERR_OVERLAYCANTCLIP = 0x8876017e;
static const WINAPI_DD_HRESULT DDERR_OVERLAYCOLORKEYONLYONEACTIVE = 0x88760180;
static const WINAPI_DD_HRESULT DDERR_PALETTEBUSY = 0x88760183;
static const WINAPI_DD_HRESULT DDERR_COLORKEYNOTSET = 0x88760190;
static const WINAPI_DD_HRESULT DDERR_SURFACEALREADYATTACHED = 0x8876019a;
static const WINAPI_DD_HRESULT DDERR_SURFACEALREADYDEPENDENT = 0x887601a4;
static const WINAPI_DD_HRESULT DDERR_SURFACEBUSY = 0x887601ae;
static const WINAPI_DD_HRESULT DDERR_CANTLOCKSURFACE = 0x887601b3;
static const WINAPI_DD_HRESULT DDERR_SURFACEISOBSCURED = 0x887601b8;
static const WINAPI_DD_HRESULT DDERR_SURFACELOST = 0x887601c2;
static const WINAPI_DD_HRESULT DDERR_SURFACENOTATTACHED = 0x887601cc;
static const WINAPI_DD_HRESULT DDERR_TOOBIGHEIGHT = 0x887601d6;
static const WINAPI_DD_HRESULT DDERR_TOOBIGSIZE = 0x887601e0;
static const WINAPI_DD_HRESULT DDERR_TOOBIGWIDTH = 0x887601ea;
static const WINAPI_DD_HRESULT DDERR_UNSUPPORTED = 0x80004001;
static const WINAPI_DD_HRESULT DDERR_UNSUPPORTEDFORMAT = 0x887601fe;
static const WINAPI_DD_HRESULT DDERR_UNSUPPORTEDMASK = 0x88760208;
static const WINAPI_DD_HRESULT DDERR_INVALIDSTREAM = 0x88760209;
static const WINAPI_DD_HRESULT DDERR_VERTICALBLANKINPROGRESS = 0x88760219;
static const WINAPI_DD_HRESULT DDERR_WASSTILLDRAWING = 0x8876021c;
static const WINAPI_DD_HRESULT DDERR_DDSCAPSCOMPLEXREQUIRED = 0x8876021e;
static const WINAPI_DD_HRESULT DDERR_XALIGN = 0x88760230;
static const WINAPI_DD_HRESULT DDERR_INVALIDDIRECTDRAWGUID = 0x88760231;
static const WINAPI_DD_HRESULT DDERR_DIRECTDRAWALREADYCREATED = 0x88760232;
static const WINAPI_DD_HRESULT DDERR_NODIRECTDRAWHW = 0x88760233;
static const WINAPI_DD_HRESULT DDERR_PRIMARYSURFACEALREADYEXISTS = 0x88760234;
static const WINAPI_DD_HRESULT DDERR_NOEMULATION = 0x88760235;
static const WINAPI_DD_HRESULT DDERR_REGIONTOOSMALL = 0x88760236;
static const WINAPI_DD_HRESULT DDERR_CLIPPERISUSINGHWND = 0x88760237;
static const WINAPI_DD_HRESULT DDERR_NOCLIPPERATTACHED = 0x88760238;
static const WINAPI_DD_HRESULT DDERR_NOHWND = 0x88760239;
static const WINAPI_DD_HRESULT DDERR_HWNDSUBCLASSED = 0x8876023a;
static const WINAPI_DD_HRESULT DDERR_HWNDALREADYSET = 0x8876023b;
static const WINAPI_DD_HRESULT DDERR_NOPALETTEATTACHED = 0x8876023c;
static const WINAPI_DD_HRESULT DDERR_NOPALETTEHW = 0x8876023d;
static const WINAPI_DD_HRESULT DDERR_BLTFASTCANTCLIP = 0x8876023e;
static const WINAPI_DD_HRESULT DDERR_NOBLTHW = 0x8876023f;
static const WINAPI_DD_HRESULT DDERR_NODDROPSHW = 0x88760240;
static const WINAPI_DD_HRESULT DDERR_OVERLAYNOTVISIBLE = 0x88760241;
static const WINAPI_DD_HRESULT DDERR_NOOVERLAYDEST = 0x88760242;
static const WINAPI_DD_HRESULT DDERR_INVALIDPOSITION = 0x88760243;
static const WINAPI_DD_HRESULT DDERR_NOTAOVERLAYSURFACE = 0x88760244;
static const WINAPI_DD_HRESULT DDERR_EXCLUSIVEMODEALREADYSET = 0x88760245;
static const WINAPI_DD_HRESULT DDERR_NOTFLIPPABLE = 0x88760246;
static const WINAPI_DD_HRESULT DDERR_CANTDUPLICATE = 0x88760247;
static const WINAPI_DD_HRESULT DDERR_NOTLOCKED = 0x88760248;
static const WINAPI_DD_HRESULT DDERR_CANTCREATEDC = 0x88760249;
static const WINAPI_DD_HRESULT DDERR_NODC = 0x8876024a;
static const WINAPI_DD_HRESULT DDERR_WRONGMODE = 0x8876024b;
static const WINAPI_DD_HRESULT DDERR_IMPLICITLYCREATED = 0x8876024c;
static const WINAPI_DD_HRESULT DDERR_NOTPALETTIZED = 0x8876024d;
static const WINAPI_DD_HRESULT DDERR_UNSUPPORTEDMODE = 0x8876024e;
static const WINAPI_DD_HRESULT DDERR_NOMIPMAPHW = 0x8876024f;
static const WINAPI_DD_HRESULT DDERR_INVALIDSURFACETYPE = 0x88760250;
static const WINAPI_DD_HRESULT DDERR_NOOPTIMIZEHW = 0x88760258;
static const WINAPI_DD_HRESULT DDERR_NOTLOADED = 0x88760259;
static const WINAPI_DD_HRESULT DDERR_NOFOCUSWINDOW = 0x8876025a;
static const WINAPI_DD_HRESULT DDERR_NOTONMIPMAPSUBLEVEL = 0x8876025b;
static const WINAPI_DD_HRESULT DDERR_DCALREADYCREATED = 0x8876026c;
static const WINAPI_DD_HRESULT DDERR_NONONLOCALVIDMEM = 0x88760276;
static const WINAPI_DD_HRESULT DDERR_CANTPAGELOCK = 0x88760280;
static const WINAPI_DD_HRESULT DDERR_CANTPAGEUNLOCK = 0x88760294;
static const WINAPI_DD_HRESULT DDERR_NOTPAGELOCKED = 0x887602a8;
static const WINAPI_DD_HRESULT DDERR_MOREDATA = 0x887602b2;
static const WINAPI_DD_HRESULT DDERR_EXPIRED = 0x887602b3;
static const WINAPI_DD_HRESULT DDERR_TESTFINISHED = 0x887602b4;
static const WINAPI_DD_HRESULT DDERR_NEWMODE = 0x887602b5;
static const WINAPI_DD_HRESULT DDERR_D3DNOTINITIALIZED = 0x887602b6;
static const WINAPI_DD_HRESULT DDERR_VIDEONOTACTIVE = 0x887602b7;
static const WINAPI_DD_HRESULT DDERR_NOMONITORINFORMATION = 0x887602b8;
static const WINAPI_DD_HRESULT DDERR_NODRIVERSUPPORT = 0x887602b9;
static const WINAPI_DD_HRESULT DDERR_DEVICEDOESNTOWNSURFACE = 0x887602bb;
static const WINAPI_DD_HRESULT DDERR_NOTINITIALIZED = 0x800401f0;
typedef DWORD WINAPI_DDSD_FLAGS; //Alias
typedef struct DDCOLORKEY {
DWORD dwColorSpaceLowValue;
DWORD dwColorSpaceHighValue;
} DDCOLORKEY;
typedef DDCOLORKEY *LPDDCOLORKEY; //Pointer
typedef union WINAPI_DDPIXELFORMAT_u1 {
DWORD dwRGBBitCount;
DWORD dwYUVBitCount;
DWORD dwZBufferBitDepth;
DWORD dwAlphaBitDepth;
DWORD dwLuminanceBitCount;
DWORD dwBumpBitCount;
DWORD dwPrivateFormatBitCount;
} WINAPI_DDPIXELFORMAT_u1;
typedef union WINAPI_DDPIXELFORMAT_u2 {
DWORD dwRBitMask;
DWORD dwYBitMask;
DWORD dwStencilBitDepth;
DWORD dwLuminanceBitMask;
DWORD dwBumpDuBitMask;
DWORD dwOperations;
} WINAPI_DDPIXELFORMAT_u2;
typedef struct WINAPI_DDPIXELFORMAT_u3_s {
WORD wFlipMSTypes;
WORD wBltMSTypes;
} WINAPI_DDPIXELFORMAT_u3_s;
typedef union WINAPI_DDPIXELFORMAT_u3 {
DWORD dwGBitMask;
DWORD dwUBitMask;
DWORD dwZBitMask;
DWORD dwBumpDvBitMask;
WINAPI_DDPIXELFORMAT_u3_s MultiSampleCaps;
} WINAPI_DDPIXELFORMAT_u3;
typedef union WINAPI_DDPIXELFORMAT_u4 {
DWORD dwBBitMask;
DWORD dwVBitMask;
DWORD dwStencilBitMask;
DWORD dwBumpLuminanceBitMask;
} WINAPI_DDPIXELFORMAT_u4;
typedef union WINAPI_DDPIXELFORMAT_u5 {
DWORD dwRGBAlphaBitMask;
DWORD dwYUVAlphaBitMask;
DWORD dwLuminanceAlphaBitMask;
DWORD dwRGBZBitMask;
DWORD dwYUVZBitMask;
} WINAPI_DDPIXELFORMAT_u5;
typedef DWORD WINAPI_DDPIXELFORMAT_FLAGS; //Alias
typedef struct DDPIXELFORMAT {
DWORD dwSize;
WINAPI_DDPIXELFORMAT_FLAGS dwFlags;
DWORD dwFourCC;
WINAPI_DDPIXELFORMAT_u1 ;
WINAPI_DDPIXELFORMAT_u2 ;
WINAPI_DDPIXELFORMAT_u3 ;
WINAPI_DDPIXELFORMAT_u4 ;
WINAPI_DDPIXELFORMAT_u5 ;
} DDPIXELFORMAT;
typedef DDPIXELFORMAT *LPDDPIXELFORMAT; //Pointer
typedef DWORD WINAPI_DDSCAPS_FLAGS; //Alias
typedef struct DDSCAPS {
WINAPI_DDSCAPS_FLAGS dwCaps;
} DDSCAPS;
typedef DDSCAPS *LPDDSCAPS; //Pointer
typedef union WINAPI_DDSURFACEDESC_u1 {
LONG lPitch;
DWORD dwLinearSize;
} WINAPI_DDSURFACEDESC_u1;
typedef union WINAPI_DDSURFACEDESC_u2 {
DWORD dwMipMapCount;
DWORD dwZBufferBitDepth;
DWORD dwRefreshRate;
} WINAPI_DDSURFACEDESC_u2;
typedef struct DDSURFACEDESC {
DWORD dwSize;
WINAPI_DDSD_FLAGS dwFlags;
DWORD dwHeight;
DWORD dwWidth;
WINAPI_DDSURFACEDESC_u1 ;
DWORD dwBackBufferCount;
WINAPI_DDSURFACEDESC_u2 ;
DWORD dwAlphaBitDepth;
DWORD dwReserved;
LPVOID lpSurface;
DDCOLORKEY ddckCKDestOverlay;
DDCOLORKEY ddckCKDestBlt;
DDCOLORKEY ddckCKSrcOverlay;
DDCOLORKEY ddckCKSrcBlt;
DDPIXELFORMAT ddpfPixelFormat;
DDSCAPS ddsCaps;
} DDSURFACEDESC;
typedef DDSURFACEDESC *LPDDSURFACEDESC; //Pointer
typedef DWORD WINAPI_DDCAPS_FLAGS; //Alias
typedef DWORD WINAPI_DDCAPS2_FLAGS; //Alias
typedef DWORD WINAPI_DDCKEYCAPS_FLAGS; //Alias
typedef DWORD WINAPI_DDFXCAPS_FLAGS; //Alias
typedef DWORD WINAPI_DDFXALPHACAPS_FLAGS; //Alias
typedef DWORD WINAPI_DDPCAPS_FLAGS; //Alias
typedef DWORD WINAPI_DDSVCAPS_FLAGS; //Alias
typedef DWORD WINAPI_DDBD_FLAGS; //Alias
typedef DWORD WINAPI_DDSCAPS2_FLAGS; //Alias
typedef DWORD WINAPI_DDSCAPS3_FLAGS; //Alias
typedef union WINAPI_DDSCAPS2_u {
DWORD dwCaps4;
DWORD dwVolumeDepth;
} WINAPI_DDSCAPS2_u;
typedef struct DDSCAPS2 {
WINAPI_DDSCAPS_FLAGS dwCaps;
WINAPI_DDSCAPS2_FLAGS dwCaps2;
WINAPI_DDSCAPS3_FLAGS dwCaps3;
WINAPI_DDSCAPS2_u ;
} DDSCAPS2;
typedef struct DDCAPS {
DWORD dwSize;
WINAPI_DDCAPS_FLAGS dwCaps;
WINAPI_DDCAPS2_FLAGS dwCaps2;
WINAPI_DDCKEYCAPS_FLAGS dwCKeyCaps;
WINAPI_DDFXCAPS_FLAGS dwFXCaps;
WINAPI_DDFXALPHACAPS_FLAGS dwFXAlphaCaps;
WINAPI_DDPCAPS_FLAGS dwPalCaps;
WINAPI_DDSVCAPS_FLAGS dwSVCaps;
WINAPI_DDBD_FLAGS dwAlphaBltConstBitDepths;
WINAPI_DDBD_FLAGS dwAlphaBltPixelBitDepths;
WINAPI_DDBD_FLAGS dwAlphaBltSurfaceBitDepths;
WINAPI_DDBD_FLAGS dwAlphaOverlayConstBitDepths;
WINAPI_DDBD_FLAGS dwAlphaOverlayPixelBitDepths;
WINAPI_DDBD_FLAGS dwAlphaOverlaySurfaceBitDepths;
WINAPI_DDBD_FLAGS dwZBufferBitDepths;
DWORD dwVidMemTotal;
DWORD dwVidMemFree;
DWORD dwMaxVisibleOverlays;
DWORD dwCurrVisibleOverlays;
DWORD dwNumFourCCCodes;
DWORD dwAlignBoundarySrc;
DWORD dwAlignSizeSrc;
DWORD dwAlignBoundaryDest;
DWORD dwAlignSizeDest;
DWORD dwAlignStrideAlign;
DWORD dwRops[DD_ROP_SPACE];
DDSCAPS ddsOldCaps;
DWORD dwMinOverlayStretch;
DWORD dwMaxOverlayStretch;
DWORD dwMinLiveVideoStretch;
DWORD dwMaxLiveVideoStretch;
DWORD dwMinHwCodecStretch;
DWORD dwMaxHwCodecStretch;
DWORD dwReserved1;
DWORD dwReserved2;
DWORD dwReserved3;
WINAPI_DDCAPS_FLAGS dwSVBCaps;
WINAPI_DDCKEYCAPS_FLAGS dwSVBCKeyCaps;
WINAPI_DDFXCAPS_FLAGS dwSVBFXCaps;
DWORD dwSVBRops[DD_ROP_SPACE];
WINAPI_DDCAPS_FLAGS dwVSBCaps;
WINAPI_DDCKEYCAPS_FLAGS dwVSBCKeyCaps;
WINAPI_DDFXCAPS_FLAGS dwVSBFXCaps;
DWORD dwVSBRops[DD_ROP_SPACE];
WINAPI_DDCAPS_FLAGS dwSSBCaps;
WINAPI_DDCKEYCAPS_FLAGS dwSSBCKeyCaps;
WINAPI_DDFXCAPS_FLAGS dwSSBFXCaps;
DWORD dwSSBRops[DD_ROP_SPACE];
DWORD dwMaxVideoPorts;
DWORD dwCurrVideoPorts;
WINAPI_DDCAPS2_FLAGS dwSVBCaps2;
WINAPI_DDCAPS_FLAGS dwNLVBCaps;
WINAPI_DDCAPS2_FLAGS dwNLVBCaps2;
WINAPI_DDCKEYCAPS_FLAGS dwNLVBCKeyCaps;
WINAPI_DDFXCAPS_FLAGS dwNLVBFXCaps;
DWORD dwNLVBRops[DD_ROP_SPACE];
DDSCAPS2 ddsCaps;
} DDCAPS;
typedef DDCAPS *LPDDCAPS; //Pointer
typedef struct DDDEVICEIDENTIFIER {
char szDriver[MAX_DDDEVICEID_STRING];
char szDescription[MAX_DDDEVICEID_STRING];
LARGE_INTEGER liDriverVersion;
DWORD dwVendorId;
DWORD dwDeviceId;
DWORD dwSubSysId;
DWORD dwRevision;
GUID guidDeviceIdentifier;
} DDDEVICEIDENTIFIER;
typedef DDDEVICEIDENTIFIER *LPDDDEVICEIDENTIFIER; //Pointer
typedef DWORD WINAPI_DDCOLOR_FLAGS; //Alias
typedef struct DDCOLORCONTROL {
DWORD dwSize;
WINAPI_DDCOLOR_FLAGS dwFlags;
LONG lBrightness;
LONG lContrast;
LONG lHue;
LONG lSaturation;
LONG lSharpness;
LONG lGamma;
LONG lColorEnable;
DWORD dwReserved1;
} DDCOLORCONTROL;
typedef DDCOLORCONTROL *LPDDCOLORCONTROL; //Pointer
typedef struct DDGAMMARAMP {
WORD red[256];
WORD green[256];
WORD blue[256];
} DDGAMMARAMP;
typedef DDGAMMARAMP *LPDDGAMMARAMP; //Pointer
typedef DWORD WINAPI_DDBLTFX_FLAGS; //Alias
typedef union WINAPI_DDBLTFX_u1 {
DWORD dwZDestConst;
LPDIRECTDRAWSURFACE lpDDSZBufferDest;
} WINAPI_DDBLTFX_u1;
typedef union WINAPI_DDBLTFX_u2 {
DWORD dwZSrcConst;
LPDIRECTDRAWSURFACE lpDDSZBufferSrc;
} WINAPI_DDBLTFX_u2;
typedef union WINAPI_DDBLTFX_u3 {
DWORD dwAlphaDestConst;
LPDIRECTDRAWSURFACE lpDDSAlphaDest;
} WINAPI_DDBLTFX_u3;
typedef union WINAPI_DDBLTFX_u4 {
DWORD dwAlphaSrcConst;
LPDIRECTDRAWSURFACE lpDDSAlphaSrc;
} WINAPI_DDBLTFX_u4;
typedef union WINAPI_DDBLTFX_u5 {
DWORD dwFillColor;
DWORD dwFillDepth;
DWORD dwFillPixel;
LPDIRECTDRAWSURFACE lpDDSPattern;
} WINAPI_DDBLTFX_u5;
typedef struct DDBLTFX {
DWORD dwSize;
WINAPI_DDBLTFX_FLAGS dwDDFX;
DWORD dwROP;
DWORD dwDDROP;
DWORD dwRotationAngle;
DWORD dwZBufferOpCode;
DWORD dwZBufferLow;
DWORD dwZBufferHigh;
DWORD dwZBufferBaseDest;
DWORD dwZDestConstBitDepth;
WINAPI_DDBLTFX_u1 ;
DWORD dwZSrcConstBitDepth;
WINAPI_DDBLTFX_u2 ;
DWORD dwAlphaEdgeBlendBitDepth;
DWORD dwAlphaEdgeBlend;
DWORD dwReserved;
DWORD dwAlphaDestConstBitDepth;
WINAPI_DDBLTFX_u3 ;
DWORD dwAlphaSrcConstBitDepth;
WINAPI_DDBLTFX_u4 ;
WINAPI_DDBLTFX_u5 ;
DDCOLORKEY ddckDestColorkey;
DDCOLORKEY ddckSrcColorkey;
} DDBLTFX;
typedef DDBLTFX *LPDDBLTFX; //Pointer
typedef DWORD WINAPI_DDBLT_FLAGS; //Alias
typedef struct DDBLTBATCH {
LPRECT lprDest;
LPDIRECTDRAWSURFACE lpDDSSrc;
LPRECT lprSrc;
WINAPI_DDBLT_FLAGS dwFlags;
LPDDBLTFX lpDDBltFx;
} DDBLTBATCH;
typedef DDBLTBATCH *LPDDBLTBATCH; //Pointer
typedef union WINAPI_DDOVERLAYFX_u1 {
DWORD dwAlphaDestConst;
LPDIRECTDRAWSURFACE lpDDSAlphaDest;
} WINAPI_DDOVERLAYFX_u1;
typedef union WINAPI_DDOVERLAYFX_u2 {
DWORD dwAlphaSrcConst;
LPDIRECTDRAWSURFACE lpDDSAlphaSrc;
} WINAPI_DDOVERLAYFX_u2;
typedef DWORD WINAPI_DDOVERFX_FLAGS; //Alias
typedef struct DDOVERLAYFX {
DWORD dwSize;
DWORD dwAlphaEdgeBlendBitDepth;
DWORD dwAlphaEdgeBlend;
DWORD dwReserved;
DWORD dwAlphaDestConstBitDepth;
WINAPI_DDOVERLAYFX_u1 ;
DWORD dwAlphaSrcConstBitDepth;
WINAPI_DDOVERLAYFX_u2 ;
DDCOLORKEY dckDestColorkey;
DDCOLORKEY dckSrcColorkey;
DWORD dwDDFX;
WINAPI_DDOVERFX_FLAGS dwFlags;
} DDOVERLAYFX;
typedef DDOVERLAYFX *LPDDOVERLAYFX; //Pointer
typedef DWORD WINAPI_DDEDM_FLAGS; //Alias
typedef DWORD WINAPI_DDENUMSURFACES_FLAGS; //Alias
typedef DWORD WINAPI_DDEM_FLAGS; //Alias
static const WINAPI_DDEM_FLAGS DDEM_MODEPASSED = 0x00000001;
static const WINAPI_DDEM_FLAGS DDEM_MODEFAILED = 0x00000002;
typedef DWORD WINAPI_DDSCL_FLAGS; //Alias
typedef DWORD WINAPI_DDWAITVB_FLAGS; //Alias
typedef DWORD WINAPI_DDSDM_FLAGS; //Alias
typedef DWORD WINAPI_DDGDI_FLAGS; //Alias
typedef DWORD WINAPI_DDSMT_FLAGS; //Alias
typedef DWORD WINAPI_DDSGR_FLAGS; //Alias
typedef DWORD WINAPI_DDENUM_FLAGS; //Alias
typedef DWORD WINAPI_DDSPD_FLAGS; //Alias
typedef DWORD WINAPI_DDBLTFAST_TYPE; //Alias
static const WINAPI_DDBLTFAST_TYPE DDBLTFAST_NOCOLORKEY = 0x00000000;
static const WINAPI_DDBLTFAST_TYPE DDBLTFAST_SRCCOLORKEY = 0x00000001;
static const WINAPI_DDBLTFAST_TYPE DDBLTFAST_DESTCOLORKEY = 0x00000002;
static const WINAPI_DDBLTFAST_TYPE DDBLTFAST_WAIT = 0x00000010;
static const WINAPI_DDBLTFAST_TYPE DDBLTFAST_DONOTWAIT = 0x00000020;
typedef DWORD WINAPI_DDENUMOVERLAYZ_TYPE; //Alias
static const WINAPI_DDENUMOVERLAYZ_TYPE DDENUMOVERLAYZ_BACKTOFRONT = 0x00000000;
static const WINAPI_DDENUMOVERLAYZ_TYPE DDENUMOVERLAYZ_FRONTTOBACK = 0x00000001;
typedef DWORD WINAPI_DDFLIP_FLAGS; //Alias
typedef DWORD WINAPI_DDGBS_FLAGS; //Alias
typedef DWORD WINAPI_DDCKEY_FLAGS; //Alias
typedef DWORD WINAPI_DDGFS_FLAGS; //Alias
typedef DWORD WINAPI_DDLOCK_FLAGS; //Alias
typedef DWORD WINAPI_DDOVER_FLAGS; //Alias
typedef DWORD WINAPI_DDOVERZ_ORDER; //Alias
static const WINAPI_DDOVERZ_ORDER DDOVERZ_SENDTOFRONT = 0x00000000;
static const WINAPI_DDOVERZ_ORDER DDOVERZ_SENDTOBACK = 0x00000001;
static const WINAPI_DDOVERZ_ORDER DDOVERZ_MOVEFORWARD = 0x00000002;
static const WINAPI_DDOVERZ_ORDER DDOVERZ_MOVEBACKWARD = 0x00000003;
static const WINAPI_DDOVERZ_ORDER DDOVERZ_INSERTINFRONTOF = 0x00000004;
static const WINAPI_DDOVERZ_ORDER DDOVERZ_INSERTINBACKOF = 0x00000005;
]]
-477
View File
@@ -1,477 +0,0 @@
require( 'ffi/winapi/headers/windows' )
local ffi = require( 'ffi' )
ffi.cdef [[
typedef void* IDirectInput2A; //Interface
typedef void* IDirectInput2W; //Interface
typedef void* IDirectInput7A; //Interface
typedef void* IDirectInput7W; //Interface
typedef void* IDirectInput8A; //Interface
typedef void* IDirectInput8W; //Interface
typedef void* IDirectInputA; //Interface
typedef void* IDirectInputDevice2A; //Interface
typedef void* IDirectInputDevice2W; //Interface
typedef void* IDirectInputDevice7A; //Interface
typedef void* IDirectInputDevice7W; //Interface
typedef void* IDirectInputDevice8A; //Interface
typedef void* IDirectInputDevice8W; //Interface
typedef void* IDirectInputDeviceA; //Interface
typedef void* IDirectInputDeviceW; //Interface
typedef void* IDirectInputEffect; //Interface
typedef void* IDirectInputW; //Interface
typedef IDirectInputDeviceA* LPDIRECTINPUTDEVICEA; //Alias
typedef IDirectInputDeviceW* LPDIRECTINPUTDEVICEW; //Alias
typedef IDirectInputDevice8A* LPDIRECTINPUTDEVICE8A; //Alias
typedef IDirectInputDevice8W* LPDIRECTINPUTDEVICE8W; //Alias
typedef IDirectInputA* LPDIRECTINPUTA; //Alias
typedef IDirectInputW* LPDIRECTINPUTW; //Alias
typedef IDirectInputEffect* LPDIRECTINPUTEFFECT; //Alias
typedef LPVOID LPDIENUMDEVICESCALLBACKA; //Alias
typedef LPVOID LPDIENUMDEVICESCALLBACKW; //Alias
typedef LPVOID LPDICONFIGUREDEVICESCALLBACK; //Alias
typedef LPVOID LPDIENUMDEVICEOBJECTSCALLBACKA; //Alias
typedef LPVOID LPDIENUMDEVICEOBJECTSCALLBACKW; //Alias
typedef LPVOID LPDIENUMCREATEDEFFECTOBJECTSCALLBACK; //Alias
typedef LPVOID LPDIENUMEFFECTSCALLBACKA; //Alias
typedef LPVOID LPDIENUMEFFECTSCALLBACKW; //Alias
typedef LPVOID LPDIENUMEFFECTSINFILECALLBACK; //Alias
typedef LPVOID LPDIENUMDEVICESBYSEMANTICSCBA; //Alias
typedef LPVOID LPDIENUMDEVICESBYSEMANTICSCBW; //Alias
typedef HRESULT WINAPI_DI_HRESULT; //Alias
static const WINAPI_DI_HRESULT DI_OK = 0x00000000;
//static const WINAPI_DI_HRESULT E_ABORT = 0x80004004;
//static const WINAPI_DI_HRESULT E_HANDLE = 0x80070006;
//static const WINAPI_DI_HRESULT E_OUTOFMEMORY = 0x8007000E;
//static const WINAPI_DI_HRESULT E_POINTER = 0x80004003;
//static const WINAPI_DI_HRESULT E_UNEXPECTED = 0x8000FFFF;
static const WINAPI_DI_HRESULT DI_POLLEDDEVICE = 0x00000002;
static const WINAPI_DI_HRESULT DI_DOWNLOADSKIPPED = 0x00000003;
static const WINAPI_DI_HRESULT DI_EFFECTRESTARTED = 0x00000004;
static const WINAPI_DI_HRESULT DI_TRUNCATED = 0x00000008;
static const WINAPI_DI_HRESULT DI_SETTINGSNOTSAVED = 0x0000000b;
static const WINAPI_DI_HRESULT DI_TRUNCATEDANDRESTARTED = 0x0000000c;
static const WINAPI_DI_HRESULT DI_WRITEPROTECT = 0x00000013;
static const WINAPI_DI_HRESULT DIERR_OLDDIRECTINPUTVERSION = 0x8007047e;
static const WINAPI_DI_HRESULT DIERR_BETADIRECTINPUTVERSION = 0x80070481;
static const WINAPI_DI_HRESULT DIERR_BADDRIVERVER = 0x80070077;
static const WINAPI_DI_HRESULT DIERR_DEVICENOTREG = 0x80040154;
static const WINAPI_DI_HRESULT DIERR_NOTFOUND = 0x80070002;
static const WINAPI_DI_HRESULT DIERR_INVALIDPARAM = 0x80070057;
static const WINAPI_DI_HRESULT DIERR_NOINTERFACE = 0x80004002;
static const WINAPI_DI_HRESULT DIERR_GENERIC = 0x80004005;
static const WINAPI_DI_HRESULT DIERR_OUTOFMEMORY = 0x8007000e;
static const WINAPI_DI_HRESULT DIERR_UNSUPPORTED = 0x80004001;
static const WINAPI_DI_HRESULT DIERR_NOTINITIALIZED = 0x80070015;
static const WINAPI_DI_HRESULT DIERR_ALREADYINITIALIZED = 0x800704df;
static const WINAPI_DI_HRESULT DIERR_NOAGGREGATION = 0x80040110;
static const WINAPI_DI_HRESULT DIERR_INPUTLOST = 0x8007001e;
static const WINAPI_DI_HRESULT DIERR_ACQUIRED = 0x800700aa;
static const WINAPI_DI_HRESULT DIERR_NOTACQUIRED = 0x8007000c;
static const WINAPI_DI_HRESULT E_PENDING = 0x8000000a;
static const WINAPI_DI_HRESULT DIERR_INSUFFICIENTPRIVS = 0x80040200;
static const WINAPI_DI_HRESULT DIERR_DEVICEFULL = 0x80040201;
static const WINAPI_DI_HRESULT DIERR_MOREDATA = 0x80040202;
static const WINAPI_DI_HRESULT DIERR_NOTDOWNLOADED = 0x80040203;
static const WINAPI_DI_HRESULT DIERR_HASEFFECTS = 0x80040204;
static const WINAPI_DI_HRESULT DIERR_NOTEXCLUSIVEACQUIRED = 0x80040205;
static const WINAPI_DI_HRESULT DIERR_INCOMPLETEEFFECT = 0x80040206;
static const WINAPI_DI_HRESULT DIERR_NOTBUFFERED = 0x80040207;
static const WINAPI_DI_HRESULT DIERR_EFFECTPLAYING = 0x80040208;
static const WINAPI_DI_HRESULT DIERR_UNPLUGGED = 0x80040209;
static const WINAPI_DI_HRESULT DIERR_REPORTFULL = 0x8004020a;
static const WINAPI_DI_HRESULT DIERR_MAPFILEFAIL = 0x8004020b;
typedef union WINAPI_DIACTIONA_u {
LPCSTR lptszActionName;
UINT uResIdString;
} WINAPI_DIACTIONA_u;
typedef DWORD WINAPI_DIA_Flags; //Alias
typedef DWORD WINAPI_DIAH_Enum; //Alias
static const WINAPI_DIAH_Enum DIAH_UNMAPPED = 0x00000000;
static const WINAPI_DIAH_Enum DIAH_USERCONFIG = 0x00000001;
static const WINAPI_DIAH_Enum DIAH_APPREQUESTED = 0x00000002;
static const WINAPI_DIAH_Enum DIAH_HWAPP = 0x00000004;
static const WINAPI_DIAH_Enum DIAH_HWDEFAULT = 0x00000008;
static const WINAPI_DIAH_Enum DIAH_DEFAULT = 0x00000020;
static const WINAPI_DIAH_Enum DIAH_ERROR = 0x80000000;
typedef DWORD WINAPI_DIDFT_Flags; //Alias
typedef struct DIACTIONA {
UINT_PTR uAppData;
DWORD dwSemantic;
WINAPI_DIA_Flags dwFlags;
WINAPI_DIACTIONA_u ;
GUID guidInstance;
WINAPI_DIDFT_Flags dwObjID;
WINAPI_DIAH_Enum dwHow;
} DIACTIONA;
typedef DIACTIONA *LPDIACTIONA; //Pointer
typedef struct DIACTIONFORMATA {
DWORD dwSize;
DWORD dwActionSize;
DWORD dwDataSize;
DWORD dwNumActions;
LPDIACTIONA rgoAction;
GUID guidActionMap;
DWORD dwGenre;
DWORD dwBufferSize;
LONG lAxisMin;
LONG lAxisMax;
HINSTANCE hInstString;
FILETIME ftTimeStamp;
DWORD dwCRC;
CHAR tszActionMap[MAX_PATH];
} DIACTIONFORMATA;
typedef DIACTIONFORMATA *LPDIACTIONFORMATA; //Pointer
typedef union WINAPI_DIACTIONW_u {
LPCWSTR lptszActionName;
UINT uResIdString;
} WINAPI_DIACTIONW_u;
typedef struct DIACTIONW {
UINT_PTR uAppData;
DWORD dwSemantic;
WINAPI_DIA_Flags dwFlags;
WINAPI_DIACTIONW_u ;
GUID guidInstance;
WINAPI_DIDFT_Flags dwObjID;
WINAPI_DIAH_Enum dwHow;
} DIACTIONW;
typedef DIACTIONW *LPDIACTIONW; //Pointer
typedef struct DIACTIONFORMATW {
DWORD dwSize;
DWORD dwActionSize;
DWORD dwDataSize;
DWORD dwNumActions;
LPDIACTIONW rgoAction;
GUID guidActionMap;
DWORD dwGenre;
DWORD dwBufferSize;
LONG lAxisMin;
LONG lAxisMax;
HINSTANCE hInstString;
FILETIME ftTimeStamp;
DWORD dwCRC;
WCHAR tszActionMap[MAX_PATH];
} DIACTIONFORMATW;
typedef DIACTIONFORMATW *LPDIACTIONFORMATW; //Pointer
typedef DWORD WINAPI_DIDC_Flags; //Alias
typedef struct DIDEVCAPS {
DWORD dwSize;
WINAPI_DIDC_Flags dwFlags;
DWORD dwDevType;
DWORD dwAxes;
DWORD dwButtons;
DWORD dwPOVs;
DWORD dwFFSamplePeriod;
DWORD dwFFMinTimeResolution;
DWORD dwFirmwareRevision;
DWORD dwHardwareRevision;
DWORD dwFFDriverVersion;
} DIDEVCAPS;
typedef DIDEVCAPS *LPDIDEVCAPS; //Pointer
typedef struct DICOLORSET {
DWORD dwSize;
D3DCOLOR cTextFore;
D3DCOLOR cTextHighlight;
D3DCOLOR cCalloutLine;
D3DCOLOR cCalloutHighlight;
D3DCOLOR cBorder;
D3DCOLOR cControlFill;
D3DCOLOR cHighlightFill;
D3DCOLOR cAreaFill;
} DICOLORSET;
typedef struct DICONFIGUREDEVICESPARAMSA {
DWORD dwSize;
DWORD dwcUsers;
LPSTR lptszUserNames;
DWORD dwcFormats;
LPDIACTIONFORMATA lprgFormats;
HWND hwnd;
DICOLORSET dics;
IUnknown* lpUnkDDSTarget;
} DICONFIGUREDEVICESPARAMSA;
typedef DICONFIGUREDEVICESPARAMSA *LPDICONFIGUREDEVICESPARAMSA; //Pointer
typedef struct DICONFIGUREDEVICESPARAMSW {
DWORD dwSize;
DWORD dwcUsers;
LPSTR lptszUserNames;
DWORD dwcFormats;
LPDIACTIONFORMATW lprgFormats;
HWND hwnd;
DICOLORSET dics;
IUnknown* lpUnkDDSTarget;
} DICONFIGUREDEVICESPARAMSW;
typedef DICONFIGUREDEVICESPARAMSW *LPDICONFIGUREDEVICESPARAMSW; //Pointer
typedef DWORD WINAPI_DIPH_Enum; //Alias
static const WINAPI_DIPH_Enum DIPH_DEVICE = 0;
static const WINAPI_DIPH_Enum DIPH_BYOFFSET = 1;
static const WINAPI_DIPH_Enum DIPH_BYID = 2;
static const WINAPI_DIPH_Enum DIPH_BYUSAGE = 3;
typedef struct DIPROPHEADER {
DWORD dwSize;
DWORD dwHeaderSize;
DWORD dwObj;
WINAPI_DIPH_Enum dwHow;
} DIPROPHEADER;
typedef DIPROPHEADER *LPDIPROPHEADER; //Pointer
typedef DIPROPHEADER *LPCDIPROPHEADER; //Pointer
typedef struct DIDEVICEOBJECTDATA {
DWORD dwOfs;
DWORD dwData;
DWORD dwTimeStamp;
DWORD dwSequence;
UINT_PTR uAppData;
} DIDEVICEOBJECTDATA;
typedef DIDEVICEOBJECTDATA *LPDIDEVICEOBJECTDATA; //Pointer
typedef DIDEVICEOBJECTDATA *LPCDIDEVICEOBJECTDATA; //Pointer
typedef DWORD WINAPI_DIDOI_Flags; //Alias
typedef struct DIOBJECTDATAFORMAT {
GUID* pguid;
DWORD dwOfs;
WINAPI_DIDFT_Flags dwType;
WINAPI_DIDOI_Flags dwFlags;
} DIOBJECTDATAFORMAT;
typedef DIOBJECTDATAFORMAT *LPDIOBJECTDATAFORMAT; //Pointer
typedef DWORD WINAPI_DIDATAFORMAT_Enum; //Alias
static const WINAPI_DIDATAFORMAT_Enum DIDFT_RELAXIS = 0x00000001;
static const WINAPI_DIDATAFORMAT_Enum DIDFT_ABSAXIS = 0x00000002;
typedef struct DIDATAFORMAT {
DWORD dwSize;
DWORD dwObjSize;
WINAPI_DIDATAFORMAT_Enum dwFlags;
DWORD dwDataSize;
DWORD dwNumObjs;
LPDIOBJECTDATAFORMAT rgodf;
} DIDATAFORMAT;
typedef DIDATAFORMAT *LPCDIDATAFORMAT; //Pointer
typedef struct DIDEVICEOBJECTINSTANCEA {
DWORD dwSize;
GUID guidType;
DWORD dwOfs;
WINAPI_DIDFT_Flags dwType;
WINAPI_DIDOI_Flags dwFlags;
CHAR tszName[MAX_PATH];
DWORD dwFFMaxForce;
DWORD dwFFForceResolution;
WORD wCollectionNumber;
WORD wDesignatorIndex;
WORD wUsagePage;
WORD wUsage;
DWORD dwDimension;
WORD wExponent;
WORD wReportId;
} DIDEVICEOBJECTINSTANCEA;
typedef DIDEVICEOBJECTINSTANCEA *LPDIDEVICEOBJECTINSTANCEA; //Pointer
typedef struct DIDEVICEOBJECTINSTANCEW {
DWORD dwSize;
GUID guidType;
DWORD dwOfs;
WINAPI_DIDFT_Flags dwType;
WINAPI_DIDOI_Flags dwFlags;
WCHAR tszName[MAX_PATH];
DWORD dwFFMaxForce;
DWORD dwFFForceResolution;
WORD wCollectionNumber;
WORD wDesignatorIndex;
WORD wUsagePage;
WORD wUsage;
DWORD dwDimension;
WORD wExponent;
WORD wReportId;
} DIDEVICEOBJECTINSTANCEW;
typedef DIDEVICEOBJECTINSTANCEW *LPDIDEVICEOBJECTINSTANCEW; //Pointer
typedef struct DIDEVICEINSTANCEA {
DWORD dwSize;
GUID guidInstance;
GUID guidProduct;
DWORD dwDevType;
CHAR tszInstanceName[MAX_PATH];
CHAR tszProductName[MAX_PATH];
GUID guidFFDriver;
WORD wUsagePage;
WORD wUsage;
} DIDEVICEINSTANCEA;
typedef DIDEVICEINSTANCEA *LPDIDEVICEINSTANCEA; //Pointer
typedef struct DIDEVICEINSTANCEW {
DWORD dwSize;
GUID guidInstance;
GUID guidProduct;
DWORD dwDevType;
WCHAR tszInstanceName[MAX_PATH];
WCHAR tszProductName[MAX_PATH];
GUID guidFFDriver;
WORD wUsagePage;
WORD wUsage;
} DIDEVICEINSTANCEW;
typedef DIDEVICEINSTANCEW *LPDIDEVICEINSTANCEW; //Pointer
typedef struct DIENVELOPE {
DWORD dwSize;
DWORD dwAttackLevel;
DWORD dwAttackTime;
DWORD dwFadeLevel;
DWORD dwFadeTime;
} DIENVELOPE;
typedef DIENVELOPE *LPDIENVELOPE; //Pointer
typedef DWORD WINAPI_DIEFF_Flags; //Alias
typedef DWORD WINAPI_DIEB_Enum; //Alias
static const WINAPI_DIEB_Enum DIEB_NOTRIGGER = 0xFFFFFFFF;
typedef struct DIEFFECT {
DWORD dwSize;
WINAPI_DIEFF_Flags dwFlags;
DWORD dwDuration;
DWORD dwSamplePeriod;
DWORD dwGain;
WINAPI_DIEB_Enum dwTriggerButton;
DWORD dwTriggerRepeatInterval;
DWORD cAxes;
LPDWORD rgdwAxes;
LPLONG rglDirection;
LPDIENVELOPE lpEnvelope;
DWORD cbTypeSpecificParams;
LPVOID lpvTypeSpecificParams;
DWORD dwStartDelay;
} DIEFFECT;
typedef DIEFFECT *LPDIEFFECT; //Pointer
typedef DIEFFECT *LPCDIEFFECT; //Pointer
typedef DWORD WINAPI_DIEFT_Flags; //Alias
typedef DWORD WINAPI_DIEP_Flags; //Alias
typedef struct DIEFFECTINFOA {
DWORD dwSize;
GUID guid;
WINAPI_DIEFT_Flags dwEffType;
WINAPI_DIEP_Flags dwStaticParams;
WINAPI_DIEP_Flags dwDynamicParams;
CHAR tszName[MAX_PATH];
} DIEFFECTINFOA;
typedef DIEFFECTINFOA *LPDIEFFECTINFOA; //Pointer
typedef struct DIEFFECTINFOW {
DWORD dwSize;
GUID guid;
WINAPI_DIEFT_Flags dwEffType;
WINAPI_DIEP_Flags dwStaticParams;
WINAPI_DIEP_Flags dwDynamicParams;
WCHAR tszName[MAX_PATH];
} DIEFFECTINFOW;
typedef DIEFFECTINFOW *LPDIEFFECTINFOW; //Pointer
typedef struct DIEFFESCAPE {
DWORD dwSize;
DWORD dwCommand;
LPVOID lpvInBuffer;
DWORD cbInBuffer;
LPVOID lpvOutBuffer;
DWORD cbOutBuffer;
} DIEFFESCAPE;
typedef DIEFFESCAPE *LPDIEFFESCAPE; //Pointer
typedef struct DIFILEEFFECT {
DWORD dwSize;
GUID GuidEffect;
LPCDIEFFECT lpDiEffect;
CHAR szFriendlyName[MAX_PATH];
} DIFILEEFFECT;
typedef DIFILEEFFECT *LPDIFILEEFFECT; //Pointer
typedef DWORD WINAPI_DIDIFT_Flags; //Alias
typedef DWORD WINAPI_DIDAL_Flags; //Alias
typedef struct DIDEVICEIMAGEINFOA {
CHAR tszImagePath[MAX_PATH];
WINAPI_DIDIFT_Flags dwFlags;
DWORD dwViewID;
RECT rcOverlay;
WINAPI_DIDFT_Flags dwObjID;
DWORD dwcValidPts;
POINT rgptCalloutLine[5];
RECT rcCalloutRect;
WINAPI_DIDAL_Flags dwTextAlign;
} DIDEVICEIMAGEINFOA;
typedef DIDEVICEIMAGEINFOA *LPDIDEVICEIMAGEINFOA; //Pointer
typedef struct DIDEVICEIMAGEINFOHEADERA {
DWORD dwSize;
DWORD dwSizeImageInfo;
DWORD dwcViews;
DWORD dwcButtons;
DWORD dwcAxes;
DWORD dwcPOVs;
DWORD dwBufferSize;
DWORD dwBufferUsed;
LPDIDEVICEIMAGEINFOA lprgImageInfoArray;
} DIDEVICEIMAGEINFOHEADERA;
typedef DIDEVICEIMAGEINFOHEADERA *LPDIDEVICEIMAGEINFOHEADERA; //Pointer
typedef struct DIDEVICEIMAGEINFOW {
WCHAR tszImagePath[MAX_PATH];
WINAPI_DIDIFT_Flags dwFlags;
DWORD dwViewID;
RECT rcOverlay;
WINAPI_DIDFT_Flags dwObjID;
DWORD dwcValidPts;
POINT rgptCalloutLine[5];
RECT rcCalloutRect;
WINAPI_DIDAL_Flags dwTextAlign;
} DIDEVICEIMAGEINFOW;
typedef DIDEVICEIMAGEINFOW *LPDIDEVICEIMAGEINFOW; //Pointer
typedef struct DIDEVICEIMAGEINFOHEADERW {
DWORD dwSize;
DWORD dwSizeImageInfo;
DWORD dwcViews;
DWORD dwcButtons;
DWORD dwcAxes;
DWORD dwcPOVs;
DWORD dwBufferSize;
DWORD dwBufferUsed;
LPDIDEVICEIMAGEINFOW lprgImageInfoArray;
} DIDEVICEIMAGEINFOHEADERW;
typedef DIDEVICEIMAGEINFOHEADERW *LPDIDEVICEIMAGEINFOHEADERW; //Pointer
typedef REFGUID WINAPI_DIPROP; //Alias
static const WINAPI_DIPROP DIPROP_BUFFERSIZE = 1;
static const WINAPI_DIPROP DIPROP_AXISMODE = 2;
static const WINAPI_DIPROP DIPROP_GRANULARITY = 3;
static const WINAPI_DIPROP DIPROP_RANGE = 4;
static const WINAPI_DIPROP DIPROP_DEADZONE = 5;
static const WINAPI_DIPROP DIPROP_SATURATION = 6;
static const WINAPI_DIPROP DIPROP_FFGAIN = 7;
static const WINAPI_DIPROP DIPROP_FFLOAD = 8;
static const WINAPI_DIPROP DIPROP_AUTOCENTER = 9;
static const WINAPI_DIPROP DIPROP_CALIBRATIONMODE = 10;
static const WINAPI_DIPROP DIPROP_CALIBRATION = 11;
static const WINAPI_DIPROP DIPROP_GUIDANDPATH = 12;
static const WINAPI_DIPROP DIPROP_INSTANCENAME = 13;
static const WINAPI_DIPROP DIPROP_PRODUCTNAME = 14;
static const WINAPI_DIPROP DIPROP_JOYSTICKID = 15;
static const WINAPI_DIPROP DIPROP_GETPORTDISPLAYNAME = 16;
static const WINAPI_DIPROP DIPROP_PHYSICALRANGE = 18;
static const WINAPI_DIPROP DIPROP_LOGICALRANGE = 19;
static const WINAPI_DIPROP DIPROP_KEYNAME = 20;
static const WINAPI_DIPROP DIPROP_CPOINTS = 21;
static const WINAPI_DIPROP DIPROP_APPDATA = 22;
static const WINAPI_DIPROP DIPROP_SCANCODE = 23;
static const WINAPI_DIPROP DIPROP_VIDPID = 24;
static const WINAPI_DIPROP DIPROP_USERNAME = 25;
static const WINAPI_DIPROP DIPROP_TYPENAME = 26;
typedef DWORD WINAPI_DI8DEV_FILTER; //Alias
static const WINAPI_DI8DEV_FILTER DI8DEVCLASS_ALL = 0;
static const WINAPI_DI8DEV_FILTER DI8DEVCLASS_DEVICE = 1;
static const WINAPI_DI8DEV_FILTER DI8DEVCLASS_POINTER = 2;
static const WINAPI_DI8DEV_FILTER DI8DEVCLASS_KEYBOARD = 3;
static const WINAPI_DI8DEV_FILTER DI8DEVCLASS_GAMECTRL = 4;
static const WINAPI_DI8DEV_FILTER DI8DEVTYPE_DEVICE = 0x11;
static const WINAPI_DI8DEV_FILTER DI8DEVTYPE_MOUSE = 0x12;
static const WINAPI_DI8DEV_FILTER DI8DEVTYPE_KEYBOARD = 0x13;
static const WINAPI_DI8DEV_FILTER DI8DEVTYPE_JOYSTICK = 0x14;
static const WINAPI_DI8DEV_FILTER DI8DEVTYPE_GAMEPAD = 0x15;
static const WINAPI_DI8DEV_FILTER DI8DEVTYPE_DRIVING = 0x16;
static const WINAPI_DI8DEV_FILTER DI8DEVTYPE_FLIGHT = 0x17;
static const WINAPI_DI8DEV_FILTER DI8DEVTYPE_1STPERSON = 0x18;
static const WINAPI_DI8DEV_FILTER DI8DEVTYPE_DEVICECTRL = 0x19;
static const WINAPI_DI8DEV_FILTER DI8DEVTYPE_SCREENPOINTER = 0x1A;
static const WINAPI_DI8DEV_FILTER DI8DEVTYPE_REMOTE = 0x1B;
static const WINAPI_DI8DEV_FILTER DI8DEVTYPE_SUPPLEMENTAL = 0x1C;
typedef DWORD WINAPI_DIEDFL_Flags; //Alias
typedef DWORD WINAPI_DIEDBSFL_Flags; //Alias
typedef DWORD WINAPI_DICD_Enum; //Alias
static const WINAPI_DICD_Enum DICD_DEFAULT = 0x00000000;
static const WINAPI_DICD_Enum DICD_EDIT = 0x00000001;
typedef DWORD WINAPI_DIGFFS_Flags; //Alias
typedef DWORD WINAPI_DISFFC_Flags; //Alias
typedef DWORD WINAPI_DIFEF_Flags; //Alias
typedef DWORD WINAPI_DIDBAM_Flags; //Alias
typedef DWORD WINAPI_DIDSAM_Flags; //Alias
typedef DWORD WINAPI_DIES_Flags; //Alias
typedef DWORD WINAPI_DIEGES_Flags; //Alias
typedef DWORD WINAPI_DISCL_Flags; //Alias
typedef DWORD WINAPI_DIGDD_Flags; //Alias
]]
-805
View File
@@ -1,805 +0,0 @@
require( 'ffi/winapi/headers/windows' )
require( 'ffi/winapi/headers/gdi' )
local ffi = require( 'ffi' )
ffi.cdef [[
typedef DWORD D3DCOLOR; //Alias
typedef LPVOID PDXVAHDSW_Plugin; //Alias
typedef struct D3DCOLORVALUE {
float r;
float g;
float b;
float a;
} D3DCOLORVALUE;
typedef DWORD D3DPOOL; //Alias
static const D3DPOOL D3DPOOL_DEFAULT = 0;
static const D3DPOOL D3DPOOL_MANAGED = 1;
static const D3DPOOL D3DPOOL_SYSTEMMEM = 2;
static const D3DPOOL D3DPOOL_SCRATCH = 3;
typedef UINT D3DFORMAT; //Alias
static const D3DFORMAT D3DFMT_UNKNOWN = 0;
static const D3DFORMAT D3DFMT_R8G8B8 = 20;
static const D3DFORMAT D3DFMT_A8R8G8B8 = 21;
static const D3DFORMAT D3DFMT_X8R8G8B8 = 22;
static const D3DFORMAT D3DFMT_R5G6B5 = 23;
static const D3DFORMAT D3DFMT_X1R5G5B5 = 24;
static const D3DFORMAT D3DFMT_A1R5G5B5 = 25;
static const D3DFORMAT D3DFMT_A4R4G4B4 = 26;
static const D3DFORMAT D3DFMT_R3G3B2 = 27;
static const D3DFORMAT D3DFMT_A8 = 28;
static const D3DFORMAT D3DFMT_A8R3G3B2 = 29;
static const D3DFORMAT D3DFMT_X4R4G4B4 = 30;
static const D3DFORMAT D3DFMT_A2B10G10R10 = 31;
static const D3DFORMAT D3DFMT_A8B8G8R8 = 32;
static const D3DFORMAT D3DFMT_X8B8G8R8 = 33;
static const D3DFORMAT D3DFMT_G16R16 = 34;
static const D3DFORMAT D3DFMT_A2R10G10B10 = 35;
static const D3DFORMAT D3DFMT_A16B16G16R16 = 36;
static const D3DFORMAT D3DFMT_A8P8 = 40;
static const D3DFORMAT D3DFMT_P8 = 41;
static const D3DFORMAT D3DFMT_L8 = 50;
static const D3DFORMAT D3DFMT_A8L8 = 51;
static const D3DFORMAT D3DFMT_A4L4 = 52;
static const D3DFORMAT D3DFMT_V8U8 = 60;
static const D3DFORMAT D3DFMT_L6V5U5 = 61;
static const D3DFORMAT D3DFMT_X8L8V8U8 = 62;
static const D3DFORMAT D3DFMT_Q8W8V8U8 = 63;
static const D3DFORMAT D3DFMT_V16U16 = 64;
static const D3DFORMAT D3DFMT_A2W10V10U10 = 67;
static const D3DFORMAT D3DFMT_UYVY = 0x59565955;
static const D3DFORMAT D3DFMT_R8G8_B8G8 = 0x47424752;
static const D3DFORMAT D3DFMT_YUY2 = 0x32595559;
static const D3DFORMAT D3DFMT_G8R8_G8B8 = 0x42475247;
static const D3DFORMAT D3DFMT_DXT1 = 0x31545844;
static const D3DFORMAT D3DFMT_DXT2 = 0x32545844;
static const D3DFORMAT D3DFMT_DXT3 = 0x33545844;
static const D3DFORMAT D3DFMT_DXT4 = 0x34545844;
static const D3DFORMAT D3DFMT_DXT5 = 0x35545844;
static const D3DFORMAT D3DFMT_D16_LOCKABLE = 70;
static const D3DFORMAT D3DFMT_D32 = 71;
static const D3DFORMAT D3DFMT_D15S1 = 73;
static const D3DFORMAT D3DFMT_D24S8 = 75;
static const D3DFORMAT D3DFMT_D24X8 = 77;
static const D3DFORMAT D3DFMT_D24X4S4 = 79;
static const D3DFORMAT D3DFMT_D16 = 80;
static const D3DFORMAT D3DFMT_D32F_LOCKABLE = 82;
static const D3DFORMAT D3DFMT_D24FS8 = 83;
static const D3DFORMAT D3DFMT_D32_LOCKABLE = 84;
static const D3DFORMAT D3DFMT_S8_LOCKABLE = 85;
static const D3DFORMAT D3DFMT_L16 = 81;
static const D3DFORMAT D3DFMT_VERTEXDATA = 100;
static const D3DFORMAT D3DFMT_INDEX16 = 101;
static const D3DFORMAT D3DFMT_INDEX32 = 102;
static const D3DFORMAT D3DFMT_Q16W16V16U16 = 110;
static const D3DFORMAT D3DFMT_MULTI2_ARGB8 = 0x3154454D;
static const D3DFORMAT D3DFMT_R16F = 111;
static const D3DFORMAT D3DFMT_G16R16F = 112;
static const D3DFORMAT D3DFMT_A16B16G16R16F = 113;
static const D3DFORMAT D3DFMT_R32F = 114;
static const D3DFORMAT D3DFMT_G32R32F = 115;
static const D3DFORMAT D3DFMT_A32B32G32R32F = 116;
static const D3DFORMAT D3DFMT_CxV8U8 = 117;
static const D3DFORMAT D3DFMT_A1 = 118;
static const D3DFORMAT D3DFMT_A2B10G10R10_XR_BIAS = 119;
static const D3DFORMAT D3DFMT_BINARYBUFFER = 199;
typedef struct D3DVECTOR {
float x;
float y;
float z;
} D3DVECTOR;
typedef UINT DXGI_FORMAT; //Alias
static const DXGI_FORMAT DXGI_FORMAT_UNKNOWN = 0;
static const DXGI_FORMAT DXGI_FORMAT_R32G32B32A32_TYPELESS = 1;
static const DXGI_FORMAT DXGI_FORMAT_R32G32B32A32_FLOAT = 2;
static const DXGI_FORMAT DXGI_FORMAT_R32G32B32A32_UINT = 3;
static const DXGI_FORMAT DXGI_FORMAT_R32G32B32A32_SINT = 4;
static const DXGI_FORMAT DXGI_FORMAT_R32G32B32_TYPELESS = 5;
static const DXGI_FORMAT DXGI_FORMAT_R32G32B32_FLOAT = 6;
static const DXGI_FORMAT DXGI_FORMAT_R32G32B32_UINT = 7;
static const DXGI_FORMAT DXGI_FORMAT_R32G32B32_SINT = 8;
static const DXGI_FORMAT DXGI_FORMAT_R16G16B16A16_TYPELESS = 9;
static const DXGI_FORMAT DXGI_FORMAT_R16G16B16A16_FLOAT = 10;
static const DXGI_FORMAT DXGI_FORMAT_R16G16B16A16_UNORM = 11;
static const DXGI_FORMAT DXGI_FORMAT_R16G16B16A16_UINT = 12;
static const DXGI_FORMAT DXGI_FORMAT_R16G16B16A16_SNORM = 13;
static const DXGI_FORMAT DXGI_FORMAT_R16G16B16A16_SINT = 14;
static const DXGI_FORMAT DXGI_FORMAT_R32G32_TYPELESS = 15;
static const DXGI_FORMAT DXGI_FORMAT_R32G32_FLOAT = 16;
static const DXGI_FORMAT DXGI_FORMAT_R32G32_UINT = 17;
static const DXGI_FORMAT DXGI_FORMAT_R32G32_SINT = 18;
static const DXGI_FORMAT DXGI_FORMAT_R32G8X24_TYPELESS = 19;
static const DXGI_FORMAT DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20;
static const DXGI_FORMAT DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21;
static const DXGI_FORMAT DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22;
static const DXGI_FORMAT DXGI_FORMAT_R10G10B10A2_TYPELESS = 23;
static const DXGI_FORMAT DXGI_FORMAT_R10G10B10A2_UNORM = 24;
static const DXGI_FORMAT DXGI_FORMAT_R10G10B10A2_UINT = 25;
static const DXGI_FORMAT DXGI_FORMAT_R11G11B10_FLOAT = 26;
static const DXGI_FORMAT DXGI_FORMAT_R8G8B8A8_TYPELESS = 27;
static const DXGI_FORMAT DXGI_FORMAT_R8G8B8A8_UNORM = 28;
static const DXGI_FORMAT DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29;
static const DXGI_FORMAT DXGI_FORMAT_R8G8B8A8_UINT = 30;
static const DXGI_FORMAT DXGI_FORMAT_R8G8B8A8_SNORM = 31;
static const DXGI_FORMAT DXGI_FORMAT_R8G8B8A8_SINT = 32;
static const DXGI_FORMAT DXGI_FORMAT_R16G16_TYPELESS = 33;
static const DXGI_FORMAT DXGI_FORMAT_R16G16_FLOAT = 34;
static const DXGI_FORMAT DXGI_FORMAT_R16G16_UNORM = 35;
static const DXGI_FORMAT DXGI_FORMAT_R16G16_UINT = 36;
static const DXGI_FORMAT DXGI_FORMAT_R16G16_SNORM = 37;
static const DXGI_FORMAT DXGI_FORMAT_R16G16_SINT = 38;
static const DXGI_FORMAT DXGI_FORMAT_R32_TYPELESS = 39;
static const DXGI_FORMAT DXGI_FORMAT_D32_FLOAT = 40;
static const DXGI_FORMAT DXGI_FORMAT_R32_FLOAT = 41;
static const DXGI_FORMAT DXGI_FORMAT_R32_UINT = 42;
static const DXGI_FORMAT DXGI_FORMAT_R32_SINT = 43;
static const DXGI_FORMAT DXGI_FORMAT_R24G8_TYPELESS = 44;
static const DXGI_FORMAT DXGI_FORMAT_D24_UNORM_S8_UINT = 45;
static const DXGI_FORMAT DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46;
static const DXGI_FORMAT DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47;
static const DXGI_FORMAT DXGI_FORMAT_R8G8_TYPELESS = 48;
static const DXGI_FORMAT DXGI_FORMAT_R8G8_UNORM = 49;
static const DXGI_FORMAT DXGI_FORMAT_R8G8_UINT = 50;
static const DXGI_FORMAT DXGI_FORMAT_R8G8_SNORM = 51;
static const DXGI_FORMAT DXGI_FORMAT_R8G8_SINT = 52;
static const DXGI_FORMAT DXGI_FORMAT_R16_TYPELESS = 53;
static const DXGI_FORMAT DXGI_FORMAT_R16_FLOAT = 54;
static const DXGI_FORMAT DXGI_FORMAT_D16_UNORM = 55;
static const DXGI_FORMAT DXGI_FORMAT_R16_UNORM = 56;
static const DXGI_FORMAT DXGI_FORMAT_R16_UINT = 57;
static const DXGI_FORMAT DXGI_FORMAT_R16_SNORM = 58;
static const DXGI_FORMAT DXGI_FORMAT_R16_SINT = 59;
static const DXGI_FORMAT DXGI_FORMAT_R8_TYPELESS = 60;
static const DXGI_FORMAT DXGI_FORMAT_R8_UNORM = 61;
static const DXGI_FORMAT DXGI_FORMAT_R8_UINT = 62;
static const DXGI_FORMAT DXGI_FORMAT_R8_SNORM = 63;
static const DXGI_FORMAT DXGI_FORMAT_R8_SINT = 64;
static const DXGI_FORMAT DXGI_FORMAT_A8_UNORM = 65;
static const DXGI_FORMAT DXGI_FORMAT_R1_UNORM = 66;
static const DXGI_FORMAT DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67;
static const DXGI_FORMAT DXGI_FORMAT_R8G8_B8G8_UNORM = 68;
static const DXGI_FORMAT DXGI_FORMAT_G8R8_G8B8_UNORM = 69;
static const DXGI_FORMAT DXGI_FORMAT_BC1_TYPELESS = 70;
static const DXGI_FORMAT DXGI_FORMAT_BC1_UNORM = 71;
static const DXGI_FORMAT DXGI_FORMAT_BC1_UNORM_SRGB = 72;
static const DXGI_FORMAT DXGI_FORMAT_BC2_TYPELESS = 73;
static const DXGI_FORMAT DXGI_FORMAT_BC2_UNORM = 74;
static const DXGI_FORMAT DXGI_FORMAT_BC2_UNORM_SRGB = 75;
static const DXGI_FORMAT DXGI_FORMAT_BC3_TYPELESS = 76;
static const DXGI_FORMAT DXGI_FORMAT_BC3_UNORM = 77;
static const DXGI_FORMAT DXGI_FORMAT_BC3_UNORM_SRGB = 78;
static const DXGI_FORMAT DXGI_FORMAT_BC4_TYPELESS = 79;
static const DXGI_FORMAT DXGI_FORMAT_BC4_UNORM = 80;
static const DXGI_FORMAT DXGI_FORMAT_BC4_SNORM = 81;
static const DXGI_FORMAT DXGI_FORMAT_BC5_TYPELESS = 82;
static const DXGI_FORMAT DXGI_FORMAT_BC5_UNORM = 83;
static const DXGI_FORMAT DXGI_FORMAT_BC5_SNORM = 84;
static const DXGI_FORMAT DXGI_FORMAT_B5G6R5_UNORM = 85;
static const DXGI_FORMAT DXGI_FORMAT_B5G5R5A1_UNORM = 86;
static const DXGI_FORMAT DXGI_FORMAT_B8G8R8A8_UNORM = 87;
static const DXGI_FORMAT DXGI_FORMAT_B8G8R8X8_UNORM = 88;
static const DXGI_FORMAT DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89;
static const DXGI_FORMAT DXGI_FORMAT_B8G8R8A8_TYPELESS = 90;
static const DXGI_FORMAT DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91;
static const DXGI_FORMAT DXGI_FORMAT_B8G8R8X8_TYPELESS = 92;
static const DXGI_FORMAT DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93;
static const DXGI_FORMAT DXGI_FORMAT_BC6H_TYPELESS = 94;
static const DXGI_FORMAT DXGI_FORMAT_BC6H_UF16 = 95;
static const DXGI_FORMAT DXGI_FORMAT_BC6H_SF16 = 96;
static const DXGI_FORMAT DXGI_FORMAT_BC7_TYPELESS = 97;
static const DXGI_FORMAT DXGI_FORMAT_BC7_UNORM = 98;
static const DXGI_FORMAT DXGI_FORMAT_BC7_UNORM_SRGB = 99;
typedef UINT DXVAHD_FRAME_FORMAT; //Alias
static const DXVAHD_FRAME_FORMAT DXVAHD_FRAME_FORMAT_PROGRESSIVE = 0;
static const DXVAHD_FRAME_FORMAT DXVAHD_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1;
static const DXVAHD_FRAME_FORMAT DXVAHD_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2;
typedef struct DXVAHD_RATIONAL {
UINT Numerator;
UINT Denominator;
} DXVAHD_RATIONAL;
typedef struct DXVAHD_CONTENT_DESC {
DXVAHD_FRAME_FORMAT InputFrameFormat;
DXVAHD_RATIONAL InputFrameRate;
UINT InputWidth;
UINT InputHeight;
DXVAHD_RATIONAL OutputFrameRate;
UINT OutputWidth;
UINT OutputHeight;
} DXVAHD_CONTENT_DESC;
typedef UINT DXVAHD_DEVICE_USAGE; //Alias
static const DXVAHD_DEVICE_USAGE DXVAHD_DEVICE_USAGE_PLAYBACK_NORMAL = 0;
static const DXVAHD_DEVICE_USAGE DXVAHD_DEVICE_USAGE_OPTIMAL_SPEED = 1;
static const DXVAHD_DEVICE_USAGE DXVAHD_DEVICE_USAGE_OPTIMAL_QUALITY = 2;
enum { D3D_OMAC_SIZE = 16 };
enum { MAX_DEVICE_IDENTIFIER_STRING = 512 };
typedef UINT D3DDEVTYPE; //Alias
static const D3DDEVTYPE D3DDEVTYPE_HAL = 1;
static const D3DDEVTYPE D3DDEVTYPE_REF = 2;
static const D3DDEVTYPE D3DDEVTYPE_SW = 3;
static const D3DDEVTYPE D3DDEVTYPE_NULLREF = 4;
typedef UINT D3DRESOURCETYPE; //Alias
static const D3DRESOURCETYPE D3DRTYPE_SURFACE = 1;
static const D3DRESOURCETYPE D3DRTYPE_VOLUME = 2;
static const D3DRESOURCETYPE D3DRTYPE_TEXTURE = 3;
static const D3DRESOURCETYPE D3DRTYPE_VOLUMETEXTURE = 4;
static const D3DRESOURCETYPE D3DRTYPE_CUBETEXTURE = 5;
static const D3DRESOURCETYPE D3DRTYPE_VERTEXBUFFER = 6;
static const D3DRESOURCETYPE D3DRTYPE_INDEXBUFFER = 7;
typedef UINT D3DMULTISAMPLE_TYPE; //Alias
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_NONE = 0;
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_NONMASKABLE = 1;
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_2_SAMPLES = 2;
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_3_SAMPLES = 3;
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_4_SAMPLES = 4;
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_5_SAMPLES = 5;
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_6_SAMPLES = 6;
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_7_SAMPLES = 7;
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_8_SAMPLES = 8;
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_9_SAMPLES = 9;
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_10_SAMPLES = 10;
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_11_SAMPLES = 11;
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_12_SAMPLES = 12;
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_13_SAMPLES = 13;
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_14_SAMPLES = 14;
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_15_SAMPLES = 15;
static const D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_16_SAMPLES = 16;
typedef UINT D3DBACKBUFFER_TYPE; //Alias
static const D3DBACKBUFFER_TYPE D3DBACKBUFFER_TYPE_MONO = 0;
static const D3DBACKBUFFER_TYPE D3DBACKBUFFER_TYPE_LEFT = 1;
static const D3DBACKBUFFER_TYPE D3DBACKBUFFER_TYPE_RIGHT = 2;
typedef UINT D3DQUERYTYPE; //Alias
static const D3DQUERYTYPE D3DQUERYTYPE_VCACHE = 4;
static const D3DQUERYTYPE D3DQUERYTYPE_RESOURCEMANAGER = 5;
static const D3DQUERYTYPE D3DQUERYTYPE_VERTEXSTATS = 6;
static const D3DQUERYTYPE D3DQUERYTYPE_EVENT = 8;
static const D3DQUERYTYPE D3DQUERYTYPE_OCCLUSION = 9;
static const D3DQUERYTYPE D3DQUERYTYPE_TIMESTAMP = 10;
static const D3DQUERYTYPE D3DQUERYTYPE_TIMESTAMPDISJOINT = 11;
static const D3DQUERYTYPE D3DQUERYTYPE_TIMESTAMPFREQ = 12;
static const D3DQUERYTYPE D3DQUERYTYPE_PIPELINETIMINGS = 13;
static const D3DQUERYTYPE D3DQUERYTYPE_INTERFACETIMINGS = 14;
static const D3DQUERYTYPE D3DQUERYTYPE_VERTEXTIMINGS = 15;
static const D3DQUERYTYPE D3DQUERYTYPE_PIXELTIMINGS = 16;
static const D3DQUERYTYPE D3DQUERYTYPE_BANDWIDTHTIMINGS = 17;
static const D3DQUERYTYPE D3DQUERYTYPE_CACHEUTILIZATION = 18;
static const D3DQUERYTYPE D3DQUERYTYPE_MEMORYPRESSURE = 19;
typedef UINT D3DDISPLAYROTATION; //Alias
static const D3DDISPLAYROTATION D3DDISPLAYROTATION_IDENTITY = 1;
static const D3DDISPLAYROTATION D3DDISPLAYROTATION_90 = 2;
static const D3DDISPLAYROTATION D3DDISPLAYROTATION_180 = 3;
static const D3DDISPLAYROTATION D3DDISPLAYROTATION_270 = 4;
typedef UINT D3DTEXTUREFILTERTYPE; //Alias
static const D3DTEXTUREFILTERTYPE D3DTEXF_NONE = 0;
static const D3DTEXTUREFILTERTYPE D3DTEXF_POINT = 1;
static const D3DTEXTUREFILTERTYPE D3DTEXF_LINEAR = 2;
static const D3DTEXTUREFILTERTYPE D3DTEXF_ANISOTROPIC = 3;
static const D3DTEXTUREFILTERTYPE D3DTEXF_PYRAMIDALQUAD = 6;
static const D3DTEXTUREFILTERTYPE D3DTEXF_GAUSSIANQUAD = 7;
static const D3DTEXTUREFILTERTYPE D3DTEXF_CONVOLUTIONMONO = 8;
typedef UINT D3DCUBEMAP_FACES; //Alias
static const D3DCUBEMAP_FACES D3DCUBEMAP_FACE_POSITIVE_X = 0;
static const D3DCUBEMAP_FACES D3DCUBEMAP_FACE_NEGATIVE_X = 1;
static const D3DCUBEMAP_FACES D3DCUBEMAP_FACE_POSITIVE_Y = 2;
static const D3DCUBEMAP_FACES D3DCUBEMAP_FACE_NEGATIVE_Y = 3;
static const D3DCUBEMAP_FACES D3DCUBEMAP_FACE_POSITIVE_Z = 4;
static const D3DCUBEMAP_FACES D3DCUBEMAP_FACE_NEGATIVE_Z = 5;
typedef UINT D3DCOMPOSERECTSOP; //Alias
static const D3DCOMPOSERECTSOP D3DCOMPOSERECTS_COPY = 1;
static const D3DCOMPOSERECTSOP D3DCOMPOSERECTS_OR = 2;
static const D3DCOMPOSERECTSOP D3DCOMPOSERECTS_AND = 3;
static const D3DCOMPOSERECTSOP D3DCOMPOSERECTS_NEG = 4;
typedef UINT D3DAUTHENTICATEDCHANNELTYPE; //Alias
static const D3DAUTHENTICATEDCHANNELTYPE D3DAUTHENTICATEDCHANNEL_D3D9 = 1;
static const D3DAUTHENTICATEDCHANNELTYPE D3DAUTHENTICATEDCHANNEL_DRIVER_SOFTWARE = 2;
static const D3DAUTHENTICATEDCHANNELTYPE D3DAUTHENTICATEDCHANNEL_DRIVER_HARDWARE = 3;
typedef UINT D3DTRANSFORMSTATETYPE; //Alias
static const D3DTRANSFORMSTATETYPE D3DTS_VIEW = 2;
static const D3DTRANSFORMSTATETYPE D3DTS_PROJECTION = 3;
static const D3DTRANSFORMSTATETYPE D3DTS_TEXTURE0 = 16;
static const D3DTRANSFORMSTATETYPE D3DTS_TEXTURE1 = 17;
static const D3DTRANSFORMSTATETYPE D3DTS_TEXTURE2 = 18;
static const D3DTRANSFORMSTATETYPE D3DTS_TEXTURE3 = 19;
static const D3DTRANSFORMSTATETYPE D3DTS_TEXTURE4 = 20;
static const D3DTRANSFORMSTATETYPE D3DTS_TEXTURE5 = 21;
static const D3DTRANSFORMSTATETYPE D3DTS_TEXTURE6 = 22;
static const D3DTRANSFORMSTATETYPE D3DTS_TEXTURE7 = 23;
typedef UINT D3DRENDERSTATETYPE; //Alias
static const D3DRENDERSTATETYPE D3DRS_ZENABLE = 7;
static const D3DRENDERSTATETYPE D3DRS_FILLMODE = 8;
static const D3DRENDERSTATETYPE D3DRS_SHADEMODE = 9;
static const D3DRENDERSTATETYPE D3DRS_ZWRITEENABLE = 14;
static const D3DRENDERSTATETYPE D3DRS_ALPHATESTENABLE = 15;
static const D3DRENDERSTATETYPE D3DRS_LASTPIXEL = 16;
static const D3DRENDERSTATETYPE D3DRS_SRCBLEND = 19;
static const D3DRENDERSTATETYPE D3DRS_DESTBLEND = 20;
static const D3DRENDERSTATETYPE D3DRS_CULLMODE = 22;
static const D3DRENDERSTATETYPE D3DRS_ZFUNC = 23;
static const D3DRENDERSTATETYPE D3DRS_ALPHAREF = 24;
static const D3DRENDERSTATETYPE D3DRS_ALPHAFUNC = 25;
static const D3DRENDERSTATETYPE D3DRS_DITHERENABLE = 26;
static const D3DRENDERSTATETYPE D3DRS_ALPHABLENDENABLE = 27;
static const D3DRENDERSTATETYPE D3DRS_FOGENABLE = 28;
static const D3DRENDERSTATETYPE D3DRS_SPECULARENABLE = 29;
static const D3DRENDERSTATETYPE D3DRS_FOGCOLOR = 34;
static const D3DRENDERSTATETYPE D3DRS_FOGTABLEMODE = 35;
static const D3DRENDERSTATETYPE D3DRS_FOGSTART = 36;
static const D3DRENDERSTATETYPE D3DRS_FOGEND = 37;
static const D3DRENDERSTATETYPE D3DRS_FOGDENSITY = 38;
static const D3DRENDERSTATETYPE D3DRS_RANGEFOGENABLE = 48;
static const D3DRENDERSTATETYPE D3DRS_STENCILENABLE = 52;
static const D3DRENDERSTATETYPE D3DRS_STENCILFAIL = 53;
static const D3DRENDERSTATETYPE D3DRS_STENCILZFAIL = 54;
static const D3DRENDERSTATETYPE D3DRS_STENCILPASS = 55;
static const D3DRENDERSTATETYPE D3DRS_STENCILFUNC = 56;
static const D3DRENDERSTATETYPE D3DRS_STENCILREF = 57;
static const D3DRENDERSTATETYPE D3DRS_STENCILMASK = 58;
static const D3DRENDERSTATETYPE D3DRS_STENCILWRITEMASK = 59;
static const D3DRENDERSTATETYPE D3DRS_TEXTUREFACTOR = 60;
static const D3DRENDERSTATETYPE D3DRS_WRAP0 = 128;
static const D3DRENDERSTATETYPE D3DRS_WRAP1 = 129;
static const D3DRENDERSTATETYPE D3DRS_WRAP2 = 130;
static const D3DRENDERSTATETYPE D3DRS_WRAP3 = 131;
static const D3DRENDERSTATETYPE D3DRS_WRAP4 = 132;
static const D3DRENDERSTATETYPE D3DRS_WRAP5 = 133;
static const D3DRENDERSTATETYPE D3DRS_WRAP6 = 134;
static const D3DRENDERSTATETYPE D3DRS_WRAP7 = 135;
static const D3DRENDERSTATETYPE D3DRS_CLIPPING = 136;
static const D3DRENDERSTATETYPE D3DRS_LIGHTING = 137;
static const D3DRENDERSTATETYPE D3DRS_AMBIENT = 139;
static const D3DRENDERSTATETYPE D3DRS_FOGVERTEXMODE = 140;
static const D3DRENDERSTATETYPE D3DRS_COLORVERTEX = 141;
static const D3DRENDERSTATETYPE D3DRS_LOCALVIEWER = 142;
static const D3DRENDERSTATETYPE D3DRS_NORMALIZENORMALS = 143;
static const D3DRENDERSTATETYPE D3DRS_DIFFUSEMATERIALSOURCE = 145;
static const D3DRENDERSTATETYPE D3DRS_SPECULARMATERIALSOURCE = 146;
static const D3DRENDERSTATETYPE D3DRS_AMBIENTMATERIALSOURCE = 147;
static const D3DRENDERSTATETYPE D3DRS_EMISSIVEMATERIALSOURCE = 148;
static const D3DRENDERSTATETYPE D3DRS_VERTEXBLEND = 151;
static const D3DRENDERSTATETYPE D3DRS_CLIPPLANEENABLE = 152;
static const D3DRENDERSTATETYPE D3DRS_POINTSIZE = 154;
static const D3DRENDERSTATETYPE D3DRS_POINTSIZE_MIN = 155;
static const D3DRENDERSTATETYPE D3DRS_POINTSPRITEENABLE = 156;
static const D3DRENDERSTATETYPE D3DRS_POINTSCALEENABLE = 157;
static const D3DRENDERSTATETYPE D3DRS_POINTSCALE_A = 158;
static const D3DRENDERSTATETYPE D3DRS_POINTSCALE_B = 159;
static const D3DRENDERSTATETYPE D3DRS_POINTSCALE_C = 160;
static const D3DRENDERSTATETYPE D3DRS_MULTISAMPLEANTIALIAS = 161;
static const D3DRENDERSTATETYPE D3DRS_MULTISAMPLEMASK = 162;
static const D3DRENDERSTATETYPE D3DRS_PATCHEDGESTYLE = 163;
static const D3DRENDERSTATETYPE D3DRS_DEBUGMONITORTOKEN = 165;
static const D3DRENDERSTATETYPE D3DRS_POINTSIZE_MAX = 166;
static const D3DRENDERSTATETYPE D3DRS_INDEXEDVERTEXBLENDENABLE = 167;
static const D3DRENDERSTATETYPE D3DRS_COLORWRITEENABLE = 168;
static const D3DRENDERSTATETYPE D3DRS_TWEENFACTOR = 170;
static const D3DRENDERSTATETYPE D3DRS_BLENDOP = 171;
static const D3DRENDERSTATETYPE D3DRS_POSITIONDEGREE = 172;
static const D3DRENDERSTATETYPE D3DRS_NORMALDEGREE = 173;
static const D3DRENDERSTATETYPE D3DRS_SCISSORTESTENABLE = 174;
static const D3DRENDERSTATETYPE D3DRS_SLOPESCALEDEPTHBIAS = 175;
static const D3DRENDERSTATETYPE D3DRS_ANTIALIASEDLINEENABLE = 176;
static const D3DRENDERSTATETYPE D3DRS_MINTESSELLATIONLEVEL = 178;
static const D3DRENDERSTATETYPE D3DRS_MAXTESSELLATIONLEVEL = 179;
static const D3DRENDERSTATETYPE D3DRS_ADAPTIVETESS_X = 180;
static const D3DRENDERSTATETYPE D3DRS_ADAPTIVETESS_Y = 181;
static const D3DRENDERSTATETYPE D3DRS_ADAPTIVETESS_Z = 182;
static const D3DRENDERSTATETYPE D3DRS_ADAPTIVETESS_W = 183;
static const D3DRENDERSTATETYPE D3DRS_ENABLEADAPTIVETESSELLATION = 184;
static const D3DRENDERSTATETYPE D3DRS_TWOSIDEDSTENCILMODE = 185;
static const D3DRENDERSTATETYPE D3DRS_CCW_STENCILFAIL = 186;
static const D3DRENDERSTATETYPE D3DRS_CCW_STENCILZFAIL = 187;
static const D3DRENDERSTATETYPE D3DRS_CCW_STENCILPASS = 188;
static const D3DRENDERSTATETYPE D3DRS_CCW_STENCILFUNC = 189;
static const D3DRENDERSTATETYPE D3DRS_COLORWRITEENABLE1 = 190;
static const D3DRENDERSTATETYPE D3DRS_COLORWRITEENABLE2 = 191;
static const D3DRENDERSTATETYPE D3DRS_COLORWRITEENABLE3 = 192;
static const D3DRENDERSTATETYPE D3DRS_BLENDFACTOR = 193;
static const D3DRENDERSTATETYPE D3DRS_SRGBWRITEENABLE = 194;
static const D3DRENDERSTATETYPE D3DRS_DEPTHBIAS = 195;
static const D3DRENDERSTATETYPE D3DRS_WRAP8 = 198;
static const D3DRENDERSTATETYPE D3DRS_WRAP9 = 199;
static const D3DRENDERSTATETYPE D3DRS_WRAP10 = 200;
static const D3DRENDERSTATETYPE D3DRS_WRAP11 = 201;
static const D3DRENDERSTATETYPE D3DRS_WRAP12 = 202;
static const D3DRENDERSTATETYPE D3DRS_WRAP13 = 203;
static const D3DRENDERSTATETYPE D3DRS_WRAP14 = 204;
static const D3DRENDERSTATETYPE D3DRS_WRAP15 = 205;
static const D3DRENDERSTATETYPE D3DRS_SEPARATEALPHABLENDENABLE = 206;
static const D3DRENDERSTATETYPE D3DRS_SRCBLENDALPHA = 207;
static const D3DRENDERSTATETYPE D3DRS_DESTBLENDALPHA = 208;
static const D3DRENDERSTATETYPE D3DRS_BLENDOPALPHA = 209;
typedef UINT D3DSTATEBLOCKTYPE; //Alias
static const D3DSTATEBLOCKTYPE D3DSBT_ALL = 1;
static const D3DSTATEBLOCKTYPE D3DSBT_PIXELSTATE = 2;
static const D3DSTATEBLOCKTYPE D3DSBT_VERTEXSTATE = 3;
typedef UINT D3DTEXTURESTAGESTATETYPE; //Alias
static const D3DTEXTURESTAGESTATETYPE D3DTSS_COLOROP = 1;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_COLORARG1 = 2;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_COLORARG2 = 3;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_ALPHAOP = 4;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_ALPHAARG1 = 5;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_ALPHAARG2 = 6;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_BUMPENVMAT00 = 7;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_BUMPENVMAT01 = 8;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_BUMPENVMAT10 = 9;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_BUMPENVMAT11 = 10;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_TEXCOORDINDEX = 11;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_BUMPENVLSCALE = 22;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_BUMPENVLOFFSET = 23;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_TEXTURETRANSFORMFLAGS = 24;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_COLORARG0 = 26;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_ALPHAARG0 = 27;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_RESULTARG = 28;
static const D3DTEXTURESTAGESTATETYPE D3DTSS_CONSTANT = 32;
typedef UINT D3DSAMPLERSTATETYPE; //Alias
static const D3DSAMPLERSTATETYPE D3DSAMP_ADDRESSU = 1;
static const D3DSAMPLERSTATETYPE D3DSAMP_ADDRESSV = 2;
static const D3DSAMPLERSTATETYPE D3DSAMP_ADDRESSW = 3;
static const D3DSAMPLERSTATETYPE D3DSAMP_BORDERCOLOR = 4;
static const D3DSAMPLERSTATETYPE D3DSAMP_MAGFILTER = 5;
static const D3DSAMPLERSTATETYPE D3DSAMP_MINFILTER = 6;
static const D3DSAMPLERSTATETYPE D3DSAMP_MIPFILTER = 7;
static const D3DSAMPLERSTATETYPE D3DSAMP_MIPMAPLODBIAS = 8;
static const D3DSAMPLERSTATETYPE D3DSAMP_MAXMIPLEVEL = 9;
static const D3DSAMPLERSTATETYPE D3DSAMP_MAXANISOTROPY = 10;
static const D3DSAMPLERSTATETYPE D3DSAMP_SRGBTEXTURE = 11;
static const D3DSAMPLERSTATETYPE D3DSAMP_ELEMENTINDEX = 12;
static const D3DSAMPLERSTATETYPE D3DSAMP_DMAPOFFSET = 13;
typedef UINT D3DPRIMITIVETYPE; //Alias
static const D3DPRIMITIVETYPE D3DPT_POINTLIST = 1;
static const D3DPRIMITIVETYPE D3DPT_LINELIST = 2;
static const D3DPRIMITIVETYPE D3DPT_LINESTRIP = 3;
static const D3DPRIMITIVETYPE D3DPT_TRIANGLELIST = 4;
static const D3DPRIMITIVETYPE D3DPT_TRIANGLESTRIP = 5;
static const D3DPRIMITIVETYPE D3DPT_TRIANGLEFAN = 6;
typedef struct D3DADAPTER_IDENTIFIER9 {
char Driver[MAX_DEVICE_IDENTIFIER_STRING];
char Description[MAX_DEVICE_IDENTIFIER_STRING];
char DeviceName[32];
LARGE_INTEGER DriverVersion;
DWORD VendorId;
DWORD DeviceId;
DWORD SubSysId;
DWORD Revision;
GUID DeviceIdentifier;
DWORD WHQLLevel;
} D3DADAPTER_IDENTIFIER9;
typedef struct D3D_OMAC {
BYTE Omac[D3D_OMAC_SIZE];
} D3D_OMAC;
typedef struct D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT {
D3D_OMAC omac;
GUID ConfigureType;
HANDLE hChannel;
UINT SequenceNumber;
HRESULT ReturnCode;
} D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT;
typedef struct D3DGAMMARAMP {
WORD red[256];
WORD green[256];
WORD blue[256];
} D3DGAMMARAMP;
typedef struct D3DMATRIX {
float m[4][4];
} D3DMATRIX;
typedef struct D3DDISPLAYMODE {
UINT Width;
UINT Height;
UINT RefreshRate;
D3DFORMAT Format;
} D3DDISPLAYMODE;
typedef DWORD WINAPI_D3DVS20CAPS; //Alias
typedef struct D3DVSHADERCAPS2_0 {
WINAPI_D3DVS20CAPS Caps;
INT DynamicFlowControlDepth;
INT NumTemps;
INT StaticFlowControlDepth;
} D3DVSHADERCAPS2_0;
typedef DWORD WINAPI_D3DPS20CAPS; //Alias
typedef struct D3DPSHADERCAPS2_0 {
WINAPI_D3DPS20CAPS Caps;
INT DynamicFlowControlDepth;
INT NumTemps;
INT StaticFlowControlDepth;
INT NumInstructionSlots;
} D3DPSHADERCAPS2_0;
typedef DWORD WINAPI_D3DCAPS; //Alias
typedef DWORD WINAPI_D3DCAPS2; //Alias
typedef DWORD WINAPI_D3DCAPS3; //Alias
typedef DWORD WINAPI_D3DPRESENT; //Alias
typedef DWORD WINAPI_D3DCURSORCAPS; //Alias
typedef DWORD WINAPI_D3DDEVCAPS; //Alias
typedef DWORD WINAPI_D3DPMISCCAPS; //Alias
typedef DWORD WINAPI_D3DLINECAPS; //Alias
typedef DWORD WINAPI_D3DPRASTERCAPS; //Alias
typedef DWORD WINAPI_D3DPCMPCAPS; //Alias
typedef DWORD WINAPI_D3DPBLENDCAPS; //Alias
typedef DWORD WINAPI_D3DPSHADECAPS; //Alias
typedef DWORD WINAPI_D3DPTEXTURECAPS; //Alias
typedef DWORD WINAPI_D3DPTFILTERCAPS; //Alias
typedef DWORD WINAPI_D3DPTADDRESSCAPS; //Alias
typedef DWORD WINAPI_D3DSTENCILCAPS; //Alias
typedef DWORD WINAPI_D3DTEXOPCAPS; //Alias
typedef DWORD WINAPI_D3DFVFCAPS; //Alias
typedef DWORD WINAPI_D3DVTXPCAPS; //Alias
typedef DWORD WINAPI_D3DDEVCAPS2; //Alias
typedef DWORD WINAPI_D3DDTCAPS; //Alias
typedef struct D3DCAPS9 {
D3DDEVTYPE DeviceType;
UINT AdapterOrdinal;
WINAPI_D3DCAPS Caps;
WINAPI_D3DCAPS2 Caps2;
WINAPI_D3DCAPS3 Caps3;
WINAPI_D3DPRESENT PresentationIntervals;
WINAPI_D3DCURSORCAPS CursorCaps;
WINAPI_D3DDEVCAPS DevCaps;
WINAPI_D3DPMISCCAPS PrimitiveMiscCaps;
WINAPI_D3DPRASTERCAPS RasterCaps;
WINAPI_D3DPCMPCAPS ZCmpCaps;
WINAPI_D3DPBLENDCAPS SrcBlendCaps;
WINAPI_D3DPBLENDCAPS DestBlendCaps;
WINAPI_D3DPCMPCAPS AlphaCmpCaps;
WINAPI_D3DPSHADECAPS ShadeCaps;
WINAPI_D3DPTEXTURECAPS TextureCaps;
WINAPI_D3DPTFILTERCAPS TextureFilterCaps;
WINAPI_D3DPTFILTERCAPS CubeTextureFilterCaps;
WINAPI_D3DPTFILTERCAPS VolumeTextureFilterCaps;
WINAPI_D3DPTADDRESSCAPS TextureAddressCaps;
WINAPI_D3DPTADDRESSCAPS VolumeTextureAddressCaps;
WINAPI_D3DLINECAPS LineCaps;
DWORD MaxTextureWidth;
DWORD MaxTextureHeight;
DWORD MaxVolumeExtent;
DWORD MaxTextureRepeat;
DWORD MaxTextureAspectRatio;
DWORD MaxAnisotropy;
float MaxVertexW;
float GuardBandLeft;
float GuardBandTop;
float GuardBandRight;
float GuardBandBottom;
float ExtentsAdjust;
WINAPI_D3DSTENCILCAPS StencilCaps;
WINAPI_D3DFVFCAPS FVFCaps;
WINAPI_D3DTEXOPCAPS TextureOpCaps;
DWORD MaxTextureBlendStages;
DWORD MaxSimultaneousTextures;
WINAPI_D3DVTXPCAPS VertexProcessingCaps;
DWORD MaxActiveLights;
DWORD MaxUserClipPlanes;
DWORD MaxVertexBlendMatrices;
DWORD MaxVertexBlendMatrixIndex;
float MaxPointSize;
DWORD MaxPrimitiveCount;
DWORD MaxVertexIndex;
DWORD MaxStreams;
DWORD MaxStreamStride;
DWORD VertexShaderVersion;
DWORD MaxVertexShaderConst;
DWORD PixelShaderVersion;
float PixelShader1xMaxValue;
WINAPI_D3DDEVCAPS2 DevCaps2;
float MaxNpatchTessellationLevel;
DWORD Reserved5;
UINT MasterAdapterOrdinal;
UINT AdapterOrdinalInGroup;
UINT NumberOfAdaptersInGroup;
WINAPI_D3DDTCAPS DeclTypes;
DWORD NumSimultaneousRTs;
WINAPI_D3DPTFILTERCAPS StretchRectFilterCaps;
D3DVSHADERCAPS2_0 VS20Caps;
D3DPSHADERCAPS2_0 PS20Caps;
WINAPI_D3DPTFILTERCAPS VertexTextureFilterCaps;
DWORD MaxVShaderInstructionsExecuted;
DWORD MaxPShaderInstructionsExecuted;
DWORD MaxVertexShader30InstructionSlots;
DWORD MaxPixelShader30InstructionSlots;
} D3DCAPS9;
typedef UINT D3DSWAPEFFECT; //Alias
static const D3DSWAPEFFECT D3DSWAPEFFECT_DISCARD = 1;
static const D3DSWAPEFFECT D3DSWAPEFFECT_FLIP = 2;
static const D3DSWAPEFFECT D3DSWAPEFFECT_COPY = 3;
static const D3DSWAPEFFECT D3DSWAPEFFECT_OVERLAY = 4;
static const D3DSWAPEFFECT D3DSWAPEFFECT_FLIPEX = 5;
typedef DWORD WINAPI_D3DPRESENTFLAG; //Alias
typedef struct D3DPRESENT_PARAMETERS {
UINT BackBufferWidth;
UINT BackBufferHeight;
D3DFORMAT BackBufferFormat;
UINT BackBufferCount;
D3DMULTISAMPLE_TYPE MultiSampleType;
DWORD MultiSampleQuality;
D3DSWAPEFFECT SwapEffect;
HWND hDeviceWindow;
BOOL Windowed;
BOOL EnableAutoDepthStencil;
D3DFORMAT AutoDepthStencilFormat;
WINAPI_D3DPRESENTFLAG Flags;
UINT FullScreen_RefreshRateInHz;
UINT PresentationInterval;
} D3DPRESENT_PARAMETERS;
typedef DWORD WINAPI_D3DUSAGE; //Alias
typedef struct D3DSURFACE_DESC {
D3DFORMAT Format;
D3DRESOURCETYPE Type;
WINAPI_D3DUSAGE Usage;
D3DPOOL Pool;
D3DMULTISAMPLE_TYPE MultiSampleType;
DWORD MultiSampleQuality;
UINT Width;
UINT Height;
} D3DSURFACE_DESC;
typedef struct D3DLOCKED_RECT {
INT Pitch;
void* pBits;
} D3DLOCKED_RECT;
typedef struct D3DRASTER_STATUS {
BOOL InVBlank;
UINT ScanLine;
} D3DRASTER_STATUS;
typedef BYTE D3DDECLUSAGE; //Alias
typedef BYTE D3DDECLTYPE; //Alias
typedef BYTE D3DDECLMETHOD; //Alias
typedef struct D3DVERTEXELEMENT9 {
WORD Stream;
WORD Offset;
D3DDECLTYPE Type;
D3DDECLMETHOD Method;
D3DDECLUSAGE Usage;
BYTE UsageIndex;
} D3DVERTEXELEMENT9;
typedef UINT D3DSCANLINEORDERING; //Alias
static const D3DSCANLINEORDERING D3DSCANLINEORDERING_UNKNOWN = 0;
static const D3DSCANLINEORDERING D3DSCANLINEORDERING_PROGRESSIVE = 1;
static const D3DSCANLINEORDERING D3DSCANLINEORDERING_INTERLACED = 2;
typedef struct D3DDISPLAYMODEFILTER {
UINT Size;
D3DFORMAT Format;
D3DSCANLINEORDERING ScanLineOrdering;
} D3DDISPLAYMODEFILTER;
typedef struct D3DDISPLAYMODEEX {
UINT Size;
UINT Width;
UINT Height;
UINT RefreshRate;
D3DFORMAT Format;
D3DSCANLINEORDERING ScanLineOrdering;
} D3DDISPLAYMODEEX;
typedef UINT WINAPI_D3DOVERLAYCAPS; //Alias
typedef struct D3DOVERLAYCAPS {
WINAPI_D3DOVERLAYCAPS Caps;
UINT MaxOverlayDisplayWidth;
UINT MaxOverlayDisplayHeight;
} D3DOVERLAYCAPS;
typedef struct D3DENCRYPTED_BLOCK_INFO {
UINT NumEncryptedBytesAtBeginning;
UINT NumBytesInSkipPattern;
UINT NumBytesInEncryptPattern;
} D3DENCRYPTED_BLOCK_INFO;
typedef struct D3DINDEXBUFFER_DESC {
D3DFORMAT Format;
D3DRESOURCETYPE Type;
WINAPI_D3DUSAGE Usage;
D3DPOOL Pool;
UINT Size;
} D3DINDEXBUFFER_DESC;
typedef struct D3DPRESENTSTATS {
UINT PresentCount;
UINT PresentRefreshCount;
UINT SyncRefreshCount;
LARGE_INTEGER SyncQPCTime;
LARGE_INTEGER SyncGPUTime;
} D3DPRESENTSTATS;
typedef struct D3DVERTEXBUFFER_DESC {
D3DFORMAT Format;
D3DRESOURCETYPE Type;
WINAPI_D3DUSAGE Usage;
D3DPOOL Pool;
UINT Size;
DWORD FVF;
} D3DVERTEXBUFFER_DESC;
typedef struct D3DVOLUME_DESC {
D3DFORMAT Format;
D3DRESOURCETYPE Type;
DWORD Usage;
D3DPOOL Pool;
UINT Width;
UINT Height;
UINT Depth;
} D3DVOLUME_DESC;
typedef struct D3DLOCKED_BOX {
INT RowPitch;
INT SlicePitch;
void* pBits;
} D3DLOCKED_BOX;
typedef struct D3DBOX {
UINT Left;
UINT Top;
UINT Right;
UINT Bottom;
UINT Front;
UINT Back;
} D3DBOX;
typedef DWORD WINAPI_D3DCPCAPS; //Alias
typedef struct D3DCONTENTPROTECTIONCAPS {
WINAPI_D3DCPCAPS Caps;
GUID KeyExchangeType;
UINT BufferAlignmentStart;
UINT BlockAlignmentSize;
ULONGLONG ProtectedMemorySize;
} D3DCONTENTPROTECTIONCAPS;
typedef DWORD WINAPI_D3DCREATE; //Alias
typedef struct D3DDEVICE_CREATION_PARAMETERS {
UINT AdapterOrdinal;
D3DDEVTYPE DeviceType;
HWND hFocusWindow;
WINAPI_D3DCREATE BehaviorFlags;
} D3DDEVICE_CREATION_PARAMETERS;
typedef struct D3DRECT {
LONG x1;
LONG y1;
LONG x2;
LONG y2;
} D3DRECT;
typedef struct D3DVIEWPORT9 {
DWORD X;
DWORD Y;
DWORD Width;
DWORD Height;
float MinZ;
float MaxZ;
} D3DVIEWPORT9;
typedef struct D3DMATERIAL9 {
D3DCOLORVALUE Diffuse;
D3DCOLORVALUE Ambient;
D3DCOLORVALUE Specular;
D3DCOLORVALUE Emissive;
float Power;
} D3DMATERIAL9;
typedef UINT D3DLIGHTTYPE; //Alias
static const D3DLIGHTTYPE D3DLIGHT_POINT = 1;
static const D3DLIGHTTYPE D3DLIGHT_SPOT = 2;
static const D3DLIGHTTYPE D3DLIGHT_DIRECTIONAL = 3;
typedef struct D3DLIGHT9 {
D3DLIGHTTYPE Type;
D3DCOLORVALUE Diffuse;
D3DCOLORVALUE Specular;
D3DCOLORVALUE Ambient;
D3DVECTOR Position;
D3DVECTOR Direction;
float Range;
float Falloff;
float Attenuation0;
float Attenuation1;
float Attenuation2;
float Theta;
float Phi;
} D3DLIGHT9;
typedef DWORD WINAPI_D3DCS; //Alias
typedef struct D3DCLIPSTATUS9 {
WINAPI_D3DCS ClipUnion;
WINAPI_D3DCS ClipIntersection;
} D3DCLIPSTATUS9;
typedef UINT D3DBASISTYPE; //Alias
static const D3DBASISTYPE D3DBASIS_BEZIER = 0;
static const D3DBASISTYPE D3DBASIS_BSPLINE = 1;
static const D3DBASISTYPE D3DBASIS_CATMULL_ROM = 2;
typedef UINT D3DDEGREETYPE; //Alias
static const D3DDEGREETYPE D3DDEGREE_LINEAR = 1;
static const D3DDEGREETYPE D3DDEGREE_QUADRATIC = 2;
static const D3DDEGREETYPE D3DDEGREE_CUBIC = 3;
static const D3DDEGREETYPE D3DDEGREE_QUINTIC = 5;
typedef struct D3DRECTPATCH_INFO {
UINT StartVertexOffsetWidth;
UINT StartVertexOffsetHeight;
UINT Width;
UINT Height;
UINT Stride;
D3DBASISTYPE Basis;
D3DDEGREETYPE Degree;
} D3DRECTPATCH_INFO;
typedef struct D3DTRIPATCH_INFO {
UINT StartVertexOffset;
UINT NumVertices;
D3DBASISTYPE Basis;
D3DDEGREETYPE Degree;
} D3DTRIPATCH_INFO;
typedef DWORD WINAPI_D3DCLEAR_FLAGS; //Alias
]]
-14
View File
@@ -1,14 +0,0 @@
local ffi = require( 'ffi' )
ffi.cdef [[
typedef void* IAssembly; //Interface
typedef void* IAssemblyCache; //Interface
typedef void* IAssemblyName; //Interface
typedef void* IAssemblyEnum; //Interface
typedef void* IHistoryReader; //Interface
typedef void* IInstallReferenceEnum; //Interface
typedef void* IAppIdAuthority; //Interface
typedef void* IIdentityAuthority; //Interface
typedef void* IApplicationContext; //Interface
typedef IAssemblyName* LPASSEMBLYNAME; //Alias
typedef IApplicationContext* LPPAPPLICATIONCONTEXT; //Alias
]]
-362
View File
@@ -1,362 +0,0 @@
require( 'ffi/winapi/headers/windows' )
local ffi = require( 'ffi' )
ffi.cdef [[
typedef void* IDWriteBitmapRenderTarget; //Interface
typedef void* IDWriteFactory; //Interface
typedef void* IDWriteFont; //Interface
typedef void* IDWriteFontCollection; //Interface
typedef void* IDWriteFontCollectionLoader; //Interface
typedef void* IDWriteFontFace; //Interface
typedef void* IDWriteFontFamily; //Interface
typedef void* IDWriteFontFile; //Interface
typedef void* IDWriteFontFileEnumerator; //Interface
typedef void* IDWriteFontFileLoader; //Interface
typedef void* IDWriteFontFileStream; //Interface
typedef void* IDWriteFontList; //Interface
typedef void* IDWriteGdiInterop; //Interface
typedef void* IDWriteGlyphRunAnalysis; //Interface
typedef void* IDWriteInlineObject; //Interface
typedef void* IDWriteLocalFontFileLoader; //Interface
typedef void* IDWriteLocalizedStrings; //Interface
typedef void* IDWritePixelSnapping; //Interface
typedef void* IDWriteRenderingParams; //Interface
typedef void* IDWriteTextAnalyzer; //Interface
typedef void* IDWriteTextFormat; //Interface
typedef void* IDWriteTextLayout; //Interface
typedef void* IDWriteTextRenderer; //Interface
typedef void* IDWriteTypography; //Interface
typedef void* IDWriteTextAnalysisSource; //Interface
typedef void* IDWriteNumberSubstitution; //Interface
typedef void* IDWriteGeometrySink; //Interface
typedef void* IDWriteTextAnalysisSink; //Interface
typedef struct DWRITE_GLYPH_OFFSET {
FLOAT advanceOffset;
FLOAT ascenderOffset;
} DWRITE_GLYPH_OFFSET;
typedef struct DWRITE_GLYPH_RUN {
IDWriteFontFace* fontFace;
FLOAT fontEmSize;
UINT32 glyphCount;
UINT16* glyphIndices;
FLOAT* glyphAdvances;
DWRITE_GLYPH_OFFSET* glyphOffsets;
BOOL isSideways;
UINT32 bidiLevel;
} DWRITE_GLYPH_RUN;
typedef UINT DWRITE_FACTORY_TYPE; //Alias
static const DWRITE_FACTORY_TYPE DWRITE_FACTORY_TYPE_SHARED = 0;
static const DWRITE_FACTORY_TYPE DWRITE_FACTORY_TYPE_ISOLATED = 1;
typedef struct DWRITE_MATRIX {
FLOAT m11;
FLOAT m12;
FLOAT m21;
FLOAT m22;
FLOAT dx;
FLOAT dy;
} DWRITE_MATRIX;
typedef UINT DWRITE_FONT_FACE_TYPE; //Alias
static const DWRITE_FONT_FACE_TYPE DWRITE_FONT_FACE_TYPE_CFF = 0;
static const DWRITE_FONT_FACE_TYPE DWRITE_FONT_FACE_TYPE_TRUETYPE = 1;
static const DWRITE_FONT_FACE_TYPE DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION = 2;
static const DWRITE_FONT_FACE_TYPE DWRITE_FONT_FACE_TYPE_TYPE1 = 3;
static const DWRITE_FONT_FACE_TYPE DWRITE_FONT_FACE_TYPE_VECTOR = 4;
static const DWRITE_FONT_FACE_TYPE DWRITE_FONT_FACE_TYPE_BITMAP = 5;
static const DWRITE_FONT_FACE_TYPE DWRITE_FONT_FACE_TYPE_UNKNOWN = 6;
typedef UINT DWRITE_PIXEL_GEOMETRY; //Alias
static const DWRITE_PIXEL_GEOMETRY DWRITE_PIXEL_GEOMETRY_FLAT = 0;
static const DWRITE_PIXEL_GEOMETRY DWRITE_PIXEL_GEOMETRY_RGB = 1;
static const DWRITE_PIXEL_GEOMETRY DWRITE_PIXEL_GEOMETRY_BGR = 2;
typedef UINT DWRITE_FONT_WEIGHT; //Alias
static const DWRITE_FONT_WEIGHT DWRITE_FONT_WEIGHT_THIN = 100;
static const DWRITE_FONT_WEIGHT DWRITE_FONT_WEIGHT_EXTRA_LIGHT = 200;
static const DWRITE_FONT_WEIGHT DWRITE_FONT_WEIGHT_LIGHT = 300;
static const DWRITE_FONT_WEIGHT DWRITE_FONT_WEIGHT_NORMAL = 400;
static const DWRITE_FONT_WEIGHT DWRITE_FONT_WEIGHT_MEDIUM = 500;
static const DWRITE_FONT_WEIGHT DWRITE_FONT_WEIGHT_SEMI_BOLD = 600;
static const DWRITE_FONT_WEIGHT DWRITE_FONT_WEIGHT_BOLD = 700;
static const DWRITE_FONT_WEIGHT DWRITE_FONT_WEIGHT_EXTRA_BOLD = 800;
static const DWRITE_FONT_WEIGHT DWRITE_FONT_WEIGHT_BLACK = 900;
static const DWRITE_FONT_WEIGHT DWRITE_FONT_WEIGHT_EXTRA_BLACK = 950;
typedef UINT DWRITE_NUMBER_SUBSTITUTION_METHOD; //Alias
static const DWRITE_NUMBER_SUBSTITUTION_METHOD DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE = 0;
static const DWRITE_NUMBER_SUBSTITUTION_METHOD DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL = 1;
static const DWRITE_NUMBER_SUBSTITUTION_METHOD DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE = 2;
static const DWRITE_NUMBER_SUBSTITUTION_METHOD DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL = 3;
static const DWRITE_NUMBER_SUBSTITUTION_METHOD DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL = 4;
typedef UINT DWRITE_FONT_STRETCH; //Alias
static const DWRITE_FONT_STRETCH DWRITE_FONT_STRETCH_UNDEFINED = 0;
static const DWRITE_FONT_STRETCH DWRITE_FONT_STRETCH_ULTRA_CONDENSED = 1;
static const DWRITE_FONT_STRETCH DWRITE_FONT_STRETCH_EXTRA_CONDENSED = 2;
static const DWRITE_FONT_STRETCH DWRITE_FONT_STRETCH_CONDENSED = 3;
static const DWRITE_FONT_STRETCH DWRITE_FONT_STRETCH_SEMI_CONDENSED = 4;
static const DWRITE_FONT_STRETCH DWRITE_FONT_STRETCH_NORMAL = 5;
static const DWRITE_FONT_STRETCH DWRITE_FONT_STRETCH_SEMI_EXPANDED = 6;
static const DWRITE_FONT_STRETCH DWRITE_FONT_STRETCH_EXPANDED = 7;
static const DWRITE_FONT_STRETCH DWRITE_FONT_STRETCH_EXTRA_EXPANDED = 8;
static const DWRITE_FONT_STRETCH DWRITE_FONT_STRETCH_ULTRA_EXPANDED = 9;
typedef UINT DWRITE_FONT_STYLE; //Alias
static const DWRITE_FONT_STYLE DWRITE_FONT_STYLE_NORMAL = 0;
static const DWRITE_FONT_STYLE DWRITE_FONT_STYLE_OBLIQUE = 1;
static const DWRITE_FONT_STYLE DWRITE_FONT_STYLE_ITALIC = 2;
typedef UINT DWRITE_INFORMATIONAL_STRING_ID; //Alias
static const DWRITE_INFORMATIONAL_STRING_ID DWRITE_INFORMATIONAL_STRING_NONE = 0;
static const DWRITE_INFORMATIONAL_STRING_ID DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE = 1;
static const DWRITE_INFORMATIONAL_STRING_ID DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS = 2;
static const DWRITE_INFORMATIONAL_STRING_ID DWRITE_INFORMATIONAL_STRING_TRADEMARK = 3;
static const DWRITE_INFORMATIONAL_STRING_ID DWRITE_INFORMATIONAL_STRING_MANUFACTURER = 4;
static const DWRITE_INFORMATIONAL_STRING_ID DWRITE_INFORMATIONAL_STRING_DESIGNER = 5;
static const DWRITE_INFORMATIONAL_STRING_ID DWRITE_INFORMATIONAL_STRING_DESIGNER_URL = 6;
static const DWRITE_INFORMATIONAL_STRING_ID DWRITE_INFORMATIONAL_STRING_DESCRIPTION = 7;
static const DWRITE_INFORMATIONAL_STRING_ID DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL = 8;
static const DWRITE_INFORMATIONAL_STRING_ID DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION = 9;
static const DWRITE_INFORMATIONAL_STRING_ID DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL = 10;
static const DWRITE_INFORMATIONAL_STRING_ID DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES = 11;
static const DWRITE_INFORMATIONAL_STRING_ID DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES = 12;
static const DWRITE_INFORMATIONAL_STRING_ID DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES = 13;
static const DWRITE_INFORMATIONAL_STRING_ID DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES = 14;
static const DWRITE_INFORMATIONAL_STRING_ID DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT = 15;
typedef UINT DWRITE_FONT_SIMULATIONS; //Alias
typedef struct DWRITE_FONT_METRICS {
UINT16 designUnitsPerEm;
UINT16 ascent;
UINT16 descent;
INT16 lineGap;
UINT16 capHeight;
UINT16 xHeight;
INT16 underlinePosition;
UINT16 underlineThickness;
INT16 strikethroughPosition;
UINT16 strikethroughThickness;
} DWRITE_FONT_METRICS;
typedef UINT DWRITE_RENDERING_MODE; //Alias
static const DWRITE_RENDERING_MODE DWRITE_RENDERING_MODE_DEFAULT = 0;
static const DWRITE_RENDERING_MODE DWRITE_RENDERING_MODE_ALIASED = 1;
static const DWRITE_RENDERING_MODE DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC = 2;
static const DWRITE_RENDERING_MODE DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL = 3;
static const DWRITE_RENDERING_MODE DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL = 4;
static const DWRITE_RENDERING_MODE DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC = 5;
static const DWRITE_RENDERING_MODE DWRITE_RENDERING_MODE_OUTLINE = 6;
typedef UINT DWRITE_FONT_FILE_TYPE; //Alias
static const DWRITE_FONT_FILE_TYPE DWRITE_FONT_FILE_TYPE_UNKNOWN = 0;
static const DWRITE_FONT_FILE_TYPE DWRITE_FONT_FILE_TYPE_CFF = 1;
static const DWRITE_FONT_FILE_TYPE DWRITE_FONT_FILE_TYPE_TRUETYPE = 2;
static const DWRITE_FONT_FILE_TYPE DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION = 3;
static const DWRITE_FONT_FILE_TYPE DWRITE_FONT_FILE_TYPE_TYPE1_PFM = 4;
static const DWRITE_FONT_FILE_TYPE DWRITE_FONT_FILE_TYPE_TYPE1_PFB = 5;
static const DWRITE_FONT_FILE_TYPE DWRITE_FONT_FILE_TYPE_VECTOR = 6;
static const DWRITE_FONT_FILE_TYPE DWRITE_FONT_FILE_TYPE_BITMAP = 7;
typedef UINT DWRITE_TEXTURE_TYPE; //Alias
static const DWRITE_TEXTURE_TYPE DWRITE_TEXTURE_ALIASED_1x1 = 0;
static const DWRITE_TEXTURE_TYPE DWRITE_TEXTURE_CLEARTYPE_3x1 = 1;
typedef struct DWRITE_INLINE_OBJECT_METRICS {
FLOAT width;
FLOAT height;
FLOAT baseline;
BOOL supportsSideways;
} DWRITE_INLINE_OBJECT_METRICS;
typedef struct DWRITE_OVERHANG_METRICS {
FLOAT left;
FLOAT top;
FLOAT right;
FLOAT bottom;
} DWRITE_OVERHANG_METRICS;
typedef UINT DWRITE_BREAK_CONDITION; //Alias
static const DWRITE_BREAK_CONDITION DWRITE_BREAK_CONDITION_NEUTRAL = 0;
static const DWRITE_BREAK_CONDITION DWRITE_BREAK_CONDITION_CAN_BREAK = 1;
static const DWRITE_BREAK_CONDITION DWRITE_BREAK_CONDITION_MAY_NOT_BREAK = 2;
static const DWRITE_BREAK_CONDITION DWRITE_BREAK_CONDITION_MUST_BREAK = 3;
typedef UINT DWRITE_SCRIPT_SHAPES; //Alias
typedef struct DWRITE_SCRIPT_ANALYSIS {
UINT16 script;
DWRITE_SCRIPT_SHAPES shapes;
} DWRITE_SCRIPT_ANALYSIS;
typedef UINT DWRITE_TEXT_ALIGNMENT; //Alias
static const DWRITE_TEXT_ALIGNMENT DWRITE_TEXT_ALIGNMENT_LEADING = 0;
static const DWRITE_TEXT_ALIGNMENT DWRITE_TEXT_ALIGNMENT_TRAILING = 1;
static const DWRITE_TEXT_ALIGNMENT DWRITE_TEXT_ALIGNMENT_CENTER = 2;
typedef UINT DWRITE_PARAGRAPH_ALIGNMENT; //Alias
static const DWRITE_PARAGRAPH_ALIGNMENT DWRITE_PARAGRAPH_ALIGNMENT_NEAR = 0;
static const DWRITE_PARAGRAPH_ALIGNMENT DWRITE_PARAGRAPH_ALIGNMENT_FAR = 1;
static const DWRITE_PARAGRAPH_ALIGNMENT DWRITE_PARAGRAPH_ALIGNMENT_CENTER = 2;
typedef UINT DWRITE_WORD_WRAPPING; //Alias
static const DWRITE_WORD_WRAPPING DWRITE_WORD_WRAPPING_WRAP = 0;
static const DWRITE_WORD_WRAPPING DWRITE_WORD_WRAPPING_NO_WRAP = 1;
typedef UINT DWRITE_READING_DIRECTION; //Alias
static const DWRITE_READING_DIRECTION DWRITE_READING_DIRECTION_LEFT_TO_RIGHT = 0;
static const DWRITE_READING_DIRECTION DWRITE_READING_DIRECTION_RIGHT_TO_LEFT = 1;
typedef UINT DWRITE_FLOW_DIRECTION; //Alias
static const DWRITE_FLOW_DIRECTION DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM = 0;
typedef UINT DWRITE_TRIMMING_GRANULARITY; //Alias
static const DWRITE_TRIMMING_GRANULARITY DWRITE_TRIMMING_GRANULARITY_NONE = 0;
static const DWRITE_TRIMMING_GRANULARITY DWRITE_TRIMMING_GRANULARITY_CHARACTER = 1;
static const DWRITE_TRIMMING_GRANULARITY DWRITE_TRIMMING_GRANULARITY_WORD = 2;
typedef struct DWRITE_TRIMMING {
DWRITE_TRIMMING_GRANULARITY granularity;
UINT32 delimiter;
UINT32 delimiterCount;
} DWRITE_TRIMMING;
typedef UINT DWRITE_LINE_SPACING_METHOD; //Alias
static const DWRITE_LINE_SPACING_METHOD DWRITE_LINE_SPACING_METHOD_DEFAULT = 0;
static const DWRITE_LINE_SPACING_METHOD DWRITE_LINE_SPACING_METHOD_UNIFORM = 1;
typedef struct DWRITE_TEXT_RANGE {
UINT32 startPosition;
UINT32 length;
} DWRITE_TEXT_RANGE;
typedef struct DWRITE_LINE_METRICS {
UINT32 length;
UINT32 trailingWhitespaceLength;
UINT32 newlineLength;
FLOAT height;
FLOAT baseline;
BOOL isTrimmed;
} DWRITE_LINE_METRICS;
typedef struct DWRITE_TEXT_METRICS {
FLOAT left;
FLOAT top;
FLOAT width;
FLOAT widthIncludingTrailingWhitespace;
FLOAT height;
FLOAT layoutWidth;
FLOAT layoutHeight;
UINT32 maxBidiReorderingDepth;
UINT32 lineCount;
} DWRITE_TEXT_METRICS;
typedef struct DWRITE_HIT_TEST_METRICS {
UINT32 textPosition;
UINT32 length;
FLOAT left;
FLOAT top;
FLOAT width;
FLOAT height;
UINT32 bidiLevel;
BOOL isText;
BOOL isTrimmed;
} DWRITE_HIT_TEST_METRICS;
typedef UINT DWRITE_MEASURING_MODE; //Alias
static const DWRITE_MEASURING_MODE DWRITE_MEASURING_MODE_NATURAL = 0;
static const DWRITE_MEASURING_MODE DWRITE_MEASURING_MODE_GDI_CLASSIC = 1;
static const DWRITE_MEASURING_MODE DWRITE_MEASURING_MODE_GDI_NATURAL = 2;
typedef struct DWRITE_UNDERLINE {
FLOAT width;
FLOAT thickness;
FLOAT offset;
FLOAT runHeight;
DWRITE_READING_DIRECTION readingDirection;
DWRITE_FLOW_DIRECTION flowDirection;
WCHAR* localeName;
DWRITE_MEASURING_MODE measuringMode;
} DWRITE_UNDERLINE;
typedef struct DWRITE_STRIKETHROUGH {
FLOAT width;
FLOAT thickness;
FLOAT offset;
DWRITE_READING_DIRECTION readingDirection;
DWRITE_FLOW_DIRECTION flowDirection;
WCHAR* localeName;
DWRITE_MEASURING_MODE measuringMode;
} DWRITE_STRIKETHROUGH;
typedef UINT DWRITE_FONT_FEATURE_TAG; //Alias
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS = 0x63726661;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS = 0x63703263;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS = 0x63733263;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES = 0x746c6163;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS = 0x65736163;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION = 0x706d6363;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES = 0x67696c63;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING = 0x70737063;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH = 0x68777363;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING = 0x73727563;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_DEFAULT = 0x746c6664;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES = 0x67696c64;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS = 0x74707865;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_FRACTIONS = 0x63617266;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_FULL_WIDTH = 0x64697766;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_HALF_FORMS = 0x666c6168;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_HALANT_FORMS = 0x6e6c6168;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH = 0x746c6168;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS = 0x74736968;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES = 0x616e6b68;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES = 0x67696c68;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_HALF_WIDTH = 0x64697768;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS = 0x6f6a6f68;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_JIS04_FORMS = 0x3430706a;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_JIS78_FORMS = 0x3837706a;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_JIS83_FORMS = 0x3338706a;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_JIS90_FORMS = 0x3039706a;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_KERNING = 0x6e72656b;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES = 0x6167696c;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_LINING_FIGURES = 0x6d756e6c;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS = 0x6c636f6c;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING = 0x6b72616d;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK = 0x6b72676d;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING = 0x6b6d6b6d;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS = 0x746c616e;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS = 0x6b636c6e;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES = 0x6d756e6f;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_ORDINALS = 0x6e64726f;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH = 0x746c6170;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS = 0x70616370;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES = 0x6d756e70;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS = 0x64697770;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS = 0x64697771;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES = 0x67696c72;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS = 0x79627572;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = 0x746c6173;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS = 0x666e6973;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS = 0x70636d73;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS = 0x6c706d73;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 = 0x31307373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 = 0x32307373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 = 0x33307373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 = 0x34307373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 = 0x35307373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 = 0x36307373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 = 0x37307373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 = 0x38307373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 = 0x39307373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 = 0x30317373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 = 0x31317373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 = 0x32317373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 = 0x33317373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 = 0x34317373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 = 0x35317373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 = 0x36317373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 = 0x37317373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 = 0x38317373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 = 0x39317373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 = 0x30327373;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_SUBSCRIPT = 0x73627573;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT = 0x73707573;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_SWASH = 0x68737773;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_TITLING = 0x6c746974;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS = 0x6d616e74;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES = 0x6d756e74;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS = 0x64617274;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS = 0x64697774;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_UNICASE = 0x63696e75;
static const DWRITE_FONT_FEATURE_TAG DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO = 0x6f72657a;
typedef struct DWRITE_FONT_FEATURE {
DWRITE_FONT_FEATURE_TAG nameTag;
UINT32 parameter;
} DWRITE_FONT_FEATURE;
typedef struct DWRITE_GLYPH_METRICS {
INT32 leftSideBearing;
UINT32 advanceWidth;
INT32 rightSideBearing;
INT32 topSideBearing;
UINT32 advanceHeight;
INT32 bottomSideBearing;
INT32 verticalOriginY;
} DWRITE_GLYPH_METRICS;
typedef struct DWRITE_TYPOGRAPHIC_FEATURES {
DWRITE_FONT_FEATURE* features;
UINT32 featureCount;
} DWRITE_TYPOGRAPHIC_FEATURES;
typedef struct DWRITE_GLYPH_RUN_DESCRIPTION {
WCHAR* localeName;
WCHAR* string;
UINT32 stringLength;
UINT16* clusterMap;
UINT32 textPosition;
} DWRITE_GLYPH_RUN_DESCRIPTION;
]]
-193
View File
@@ -1,193 +0,0 @@
require( 'ffi/winapi/headers/windows' )
local ffi = require( 'ffi' )
ffi.cdef [[
typedef LPVOID PFAX_RECIPIENT_CALLBACK; //Alias
typedef LPVOID PFAX_ROUTING_INSTALLATION_CALLBACK; //Alias
typedef DWORD HCALL; //Alias
enum { MAX_COMPUTERNAME_LENGTH_plus_1 = 16 };
typedef struct FAX_CONTEXT_INFO {
DWORD SizeOfStruct;
HDC hDC;
TCHAR ServerName[MAX_COMPUTERNAME_LENGTH_plus_1];
} FAX_CONTEXT_INFO;
typedef FAX_CONTEXT_INFO *PFAX_CONTEXT_INFO; //Pointer
typedef struct FAX_JOB_PARAM {
DWORD SizeOfStruct;
LPCTSTR RecipientNumber;
LPCTSTR RecipientName;
LPCTSTR Tsid;
LPCTSTR SenderName;
LPCTSTR SenderCompany;
LPCTSTR SenderDept;
LPCTSTR BillingCode;
DWORD ScheduleAction;
SYSTEMTIME ScheduleTime;
DWORD DeliveryReportType;
LPCTSTR DeliveryReportAddress;
LPCTSTR DocumentName;
HCALL CallHandle;
DWORD_PTR Reserved[3];
} FAX_JOB_PARAM;
typedef FAX_JOB_PARAM *PFAX_JOB_PARAM; //Pointer
typedef struct FAX_TIME {
WORD Hour;
WORD Minute;
} FAX_TIME;
typedef struct FAX_CONFIGURATION {
DWORD SizeOfStruct;
DWORD Retries;
DWORD RetryDelay;
DWORD DirtyDays;
BOOL Branding;
BOOL UseDeviceTsid;
BOOL ServerCp;
BOOL PauseServerQueue;
FAX_TIME StartCheapTime;
FAX_TIME StopCheapTime;
BOOL ArchiveOutgoingFaxes;
LPCTSTR ArchiveDirectory;
LPCTSTR Reserved;
} FAX_CONFIGURATION;
typedef FAX_CONFIGURATION *PFAX_CONFIGURATION; //Pointer
typedef struct FAX_GLOBAL_ROUTING_INFO {
DWORD SizeOfStruct;
DWORD Priority;
LPCTSTR Guid;
LPCTSTR FriendlyName;
LPCTSTR FunctionName;
LPCTSTR ExtensionImageName;
LPCTSTR ExtensionFriendlyName;
} FAX_GLOBAL_ROUTING_INFO;
typedef FAX_GLOBAL_ROUTING_INFO *PFAX_GLOBAL_ROUTING_INFO; //Pointer
typedef DWORD WINAPI_FaxLogCategory; //Alias
static const WINAPI_FaxLogCategory FAXLOG_CATEGORY_INIT = 0;
static const WINAPI_FaxLogCategory FAXLOG_CATEGORY_OUTBOUND = 1;
static const WINAPI_FaxLogCategory FAXLOG_CATEGORY_INBOUND = 2;
static const WINAPI_FaxLogCategory FAXLOG_CATEGORY_UNKNOWN = 3;
typedef DWORD WINAPI_FaxLogLevel; //Alias
static const WINAPI_FaxLogLevel FAXLOG_LEVEL_NONE = 0;
static const WINAPI_FaxLogLevel FAXLOG_LEVEL_MIN = 1;
static const WINAPI_FaxLogLevel FAXLOG_LEVEL_MED = 2;
static const WINAPI_FaxLogLevel FAXLOG_LEVEL_MAX = 3;
typedef struct FAX_LOG_CATEGORY {
LPCTSTR Name;
WINAPI_FaxLogCategory Category;
WINAPI_FaxLogLevel Level;
} FAX_LOG_CATEGORY;
typedef FAX_LOG_CATEGORY *PFAX_LOG_CATEGORY; //Pointer
typedef struct FAX_DEVICE_STATUS {
DWORD SizeOfStruct;
LPCTSTR CallerId;
LPCTSTR Csid;
DWORD CurrentPage;
DWORD DeviceId;
LPCTSTR DeviceName;
LPCTSTR DocumentName;
DWORD JobType;
LPCTSTR PhoneNumber;
LPCTSTR RoutingString;
LPCTSTR SenderName;
LPCTSTR RecipientName;
DWORD Size;
FILETIME StartTime;
DWORD Status;
LPCTSTR StatusString;
FILETIME SubmittedTime;
DWORD TotalPages;
LPCTSTR Tsid;
LPCTSTR UserName;
} FAX_DEVICE_STATUS;
typedef FAX_DEVICE_STATUS *PFAX_DEVICE_STATUS; //Pointer
typedef struct FAX_PORT_INFO {
DWORD SizeOfStruct;
DWORD DeviceId;
DWORD State;
DWORD Flags;
DWORD Rings;
DWORD Priority;
LPCTSTR DeviceName;
LPCTSTR Tsid;
LPCTSTR Csid;
} FAX_PORT_INFO;
typedef FAX_PORT_INFO *PFAX_PORT_INFO; //Pointer
typedef struct FAX_COVERPAGE_INFO {
DWORD SizeOfStruct;
LPCTSTR CoverPageName;
BOOL UseServerCoverPage;
LPCTSTR RecName;
LPCTSTR RecFaxNumber;
LPCTSTR RecCompany;
LPCTSTR RecStreetAddress;
LPCTSTR RecCity;
LPCTSTR RecState;
LPCTSTR RecZip;
LPCTSTR RecCountry;
LPCTSTR RecTitle;
LPCTSTR RecDepartment;
LPCTSTR RecOfficeLocation;
LPCTSTR RecHomePhone;
LPCTSTR RecOfficePhone;
LPCTSTR SdrName;
LPCTSTR SdrFaxNumber;
LPCTSTR SdrCompany;
LPCTSTR SdrAddress;
LPCTSTR SdrTitle;
LPCTSTR SdrDepartment;
LPCTSTR SdrOfficeLocation;
LPCTSTR SdrHomePhone;
LPCTSTR SdrOfficePhone;
LPCTSTR Note;
LPCTSTR Subject;
SYSTEMTIME TimeSent;
DWORD PageCount;
} FAX_COVERPAGE_INFO;
typedef FAX_COVERPAGE_INFO *PFAX_COVERPAGE_INFO; //Pointer
typedef struct FAX_PRINT_INFO {
DWORD SizeOfStruct;
LPCTSTR DocName;
LPCTSTR RecipientName;
LPCTSTR RecipientNumber;
LPCTSTR SenderName;
LPCTSTR SenderCompany;
LPCTSTR SenderDept;
LPCTSTR SenderBillingCode;
LPCTSTR Reserved;
LPCTSTR DrEmailAddress;
LPCTSTR OutputFileName;
} FAX_PRINT_INFO;
typedef struct FAX_JOB_ENTRY {
DWORD SizeOfStruct;
DWORD JobId;
LPCTSTR UserName;
DWORD JobType;
DWORD QueueStatus;
DWORD Status;
DWORD Size;
DWORD PageCount;
LPCTSTR RecipientNumber;
LPCTSTR RecipientName;
LPCTSTR Tsid;
LPCTSTR SenderName;
LPCTSTR SenderCompany;
LPCTSTR SenderDept;
LPCTSTR BillingCode;
DWORD ScheduleAction;
SYSTEMTIME ScheduleTime;
DWORD DeliveryReportType;
LPCTSTR DeliveryReportAddress;
LPCTSTR DocumentName;
} FAX_JOB_ENTRY;
typedef FAX_JOB_ENTRY *PFAX_JOB_ENTRY; //Pointer
typedef struct FAX_ROUTING_METHOD {
DWORD SizeOfStruct;
DWORD DeviceId;
BOOL Enabled;
LPCTSTR DeviceName;
LPCTSTR Guid;
LPCTSTR FriendlyName;
LPCTSTR FunctionName;
LPCTSTR ExtensionImageName;
LPCTSTR ExtensionFriendlyName;
} FAX_ROUTING_METHOD;
typedef FAX_ROUTING_METHOD *PFAX_ROUTING_METHOD; //Pointer
]]
-155
View File
@@ -1,155 +0,0 @@
require( 'ffi/winapi/headers/windows' )
local ffi = require( 'ffi' )
ffi.cdef [[
typedef LPVOID HINTERNET; //Alias
typedef LONGLONG GROUPID; //Alias
typedef LPVOID WINHTTP_STATUS_CALLBACK; //Alias
typedef LPVOID GOPHER_ATTRIBUTE_ENUMERATOR; //Alias
typedef LPVOID INTERNET_STATUS_CALLBACK; //Alias
enum { GROUP_OWNER_STORAGE_SIZE = 4 };
enum { GROUPNAME_MAX_LENGTH = 120 };
enum { MAX_GOPHER_DISPLAY_TEXT_plus_1 = 129 };
enum { MAX_GOPHER_LOCATOR_LENGTH_plus_1 = 653 };
typedef struct INTERNET_CACHE_ENTRY_INFO {
DWORD dwStructSize;
LPTSTR lpszSourceUrlName;
LPTSTR lpszLocalFileName;
DWORD CacheEntryType;
DWORD dwUseCount;
DWORD dwHitRate;
DWORD dwSizeLow;
DWORD dwSizeHigh;
FILETIME LastModifiedTime;
FILETIME ExpireTime;
FILETIME LastAccessTime;
FILETIME LastSyncTime;
LPTSTR lpHeaderInfo;
DWORD dwHeaderInfoSize;
LPTSTR lpszFileExtension;
DWORD dwExemptDelta;
} INTERNET_CACHE_ENTRY_INFO;
typedef INTERNET_CACHE_ENTRY_INFO *LPINTERNET_CACHE_ENTRY_INFO; //Pointer
typedef DWORD WINAPI_CACHEGROUP_FLAG; //Alias
typedef DWORD WINAPI_CACHEGROUP_TYPE; //Alias
typedef struct INTERNET_CACHE_GROUP_INFO {
DWORD dwGroupSize;
WINAPI_CACHEGROUP_FLAG dwGroupFlags;
WINAPI_CACHEGROUP_TYPE dwGroupType;
DWORD dwDiskUsage;
DWORD dwDiskQuota;
DWORD dwOwnerStorage[GROUP_OWNER_STORAGE_SIZE];
TCHAR szGroupName[GROUPNAME_MAX_LENGTH];
} INTERNET_CACHE_GROUP_INFO;
typedef INTERNET_CACHE_GROUP_INFO *LPINTERNET_CACHE_GROUP_INFO; //Pointer
typedef DWORD WINAPI_GopherType; //Alias
typedef struct GOPHER_FIND_DATA {
TCHAR DisplayString[MAX_GOPHER_DISPLAY_TEXT_plus_1];
WINAPI_GopherType GopherType;
DWORD SizeLow;
DWORD SizeHigh;
FILETIME LastModificationTime;
TCHAR Locator[MAX_GOPHER_LOCATOR_LENGTH_plus_1];
} GOPHER_FIND_DATA;
typedef GOPHER_FIND_DATA *LPGOPHER_FIND_DATA; //Pointer
typedef DWORD WINAPI_ProxyAccessType; //Alias
static const WINAPI_ProxyAccessType WINHTTP_ACCESS_TYPE_DEFAULT_PROXY = 0;
static const WINAPI_ProxyAccessType WINHTTP_ACCESS_TYPE_NO_PROXY = 1;
static const WINAPI_ProxyAccessType WINHTTP_ACCESS_TYPE_NAMED_PROXY = 3;
typedef struct WINHTTP_PROXY_INFO {
WINAPI_ProxyAccessType dwAccessType;
LPWSTR lpszProxy;
LPWSTR lpszProxyBypass;
} WINHTTP_PROXY_INFO;
typedef struct WINHTTP_CURRENT_USER_IE_PROXY_CONFIG {
BOOL fAutoDetect;
LPWSTR lpszAutoConfigUrl;
LPWSTR lpszProxy;
LPWSTR lpszProxyBypass;
} WINHTTP_CURRENT_USER_IE_PROXY_CONFIG;
typedef DWORD WINAPI_AutoProxyFlags; //Alias
typedef DWORD WINAPI_AutoDetectFlags; //Alias
typedef struct WINHTTP_AUTOPROXY_OPTIONS {
WINAPI_AutoProxyFlags dwFlags;
WINAPI_AutoDetectFlags dwAutoDetectFlags;
LPCWSTR lpszAutoConfigUrl;
LPVOID lpvReserved;
DWORD dwReserved;
BOOL fAutoLogonIfChallenged;
} WINHTTP_AUTOPROXY_OPTIONS;
typedef WORD INTERNET_PORT; //Alias
static const INTERNET_PORT INTERNET_DEFAULT_FTP_PORT = 21;
static const INTERNET_PORT INTERNET_DEFAULT_GOPHER_PORT = 70;
static const INTERNET_PORT INTERNET_DEFAULT_HTTP_PORT = 80;
static const INTERNET_PORT INTERNET_DEFAULT_HTTPS_PORT = 443;
static const INTERNET_PORT INTERNET_DEFAULT_SOCKS_PORT = 1080;
static const INTERNET_PORT INTERNET_INVALID_PORT_NUMBER = 0;
typedef INT INTERNET_SCHEME; //Alias
static const INTERNET_SCHEME INTERNET_SCHEME_PARTIAL = -2;
static const INTERNET_SCHEME INTERNET_SCHEME_UNKNOWN = -1;
static const INTERNET_SCHEME INTERNET_SCHEME_DEFAULT = 0;
static const INTERNET_SCHEME INTERNET_SCHEME_FTP = 1;
static const INTERNET_SCHEME INTERNET_SCHEME_GOPHER = 2;
static const INTERNET_SCHEME INTERNET_SCHEME_HTTP = 3;
static const INTERNET_SCHEME INTERNET_SCHEME_HTTPS = 4;
static const INTERNET_SCHEME INTERNET_SCHEME_FILE = 5;
static const INTERNET_SCHEME INTERNET_SCHEME_NEWS = 6;
static const INTERNET_SCHEME INTERNET_SCHEME_MAILTO = 7;
static const INTERNET_SCHEME INTERNET_SCHEME_SOCKS = 8;
static const INTERNET_SCHEME INTERNET_SCHEME_JAVASCRIPT = 9;
static const INTERNET_SCHEME INTERNET_SCHEME_VBSCRIPT = 10;
static const INTERNET_SCHEME INTERNET_SCHEME_RES = 11;
typedef struct URL_COMPONENTS {
DWORD dwStructSize;
LPTSTR lpszScheme;
DWORD dwSchemeLength;
INTERNET_SCHEME nScheme;
LPTSTR lpszHostName;
DWORD dwHostNameLength;
INTERNET_PORT nPort;
LPTSTR lpszUserName;
DWORD dwUserNameLength;
LPTSTR lpszPassword;
DWORD dwPasswordLength;
LPTSTR lpszUrlPath;
DWORD dwUrlPathLength;
LPTSTR lpszExtraInfo;
DWORD dwExtraInfoLength;
} URL_COMPONENTS;
typedef URL_COMPONENTS *LPURL_COMPONENTS; //Pointer
typedef int WINAPI_InternetSchemeWinHttp; //Alias
//static const WINAPI_InternetSchemeWinHttp INTERNET_SCHEME_HTTP = 1;
//static const WINAPI_InternetSchemeWinHttp INTERNET_SCHEME_HTTPS = 2;
typedef struct URL_COMPONENTSW {
DWORD dwStructSize;
LPWSTR lpszScheme;
DWORD dwSchemeLength;
WINAPI_InternetSchemeWinHttp nScheme;
LPWSTR lpszHostName;
DWORD dwHostNameLength;
INTERNET_PORT nPort;
LPWSTR lpszUserName;
DWORD dwUserNameLength;
LPWSTR lpszPassword;
DWORD dwPasswordLength;
LPWSTR lpszUrlPath;
DWORD dwUrlPathLength;
LPWSTR lpszExtraInfo;
DWORD dwExtraInfoLength;
} URL_COMPONENTSW;
typedef URL_COMPONENTSW *LPURL_COMPONENTSW; //Pointer
typedef DWORD WINAPI_InternetCanonicalizeUrlFlags; //Alias
typedef DWORD WINAPI_InternetCrackUrlFlags; //Alias
typedef struct INTERNET_BUFFERS {
DWORD dwStructSize;
LPVOID Next;
LPCTSTR lpcszHeader;
DWORD dwHeadersLength;
DWORD dwHeadersTotal;
LPVOID lpvBuffer;
DWORD dwBufferLength;
DWORD dwBufferTotal;
DWORD dwOffsetLow;
DWORD dwOffsetHigh;
} INTERNET_BUFFERS;
typedef INTERNET_BUFFERS *LPINTERNET_BUFFERS; //Pointer
]]
-233
View File
@@ -1,233 +0,0 @@
require( 'ffi/winapi/headers/windows' )
local ffi = require( 'ffi' )
ffi.cdef [[
typedef DWORD FOURCC; //Alias
typedef UINT MMRESULT; //Alias
static const MMRESULT MMSYSERR_NOERROR = 0;
static const MMRESULT MMSYSERR_ERROR = 1;
static const MMRESULT MMSYSERR_BADDEVICEID = 2;
static const MMRESULT MMSYSERR_NOTENABLED = 3;
static const MMRESULT MMSYSERR_ALLOCATED = 4;
static const MMRESULT MMSYSERR_INVALHANDLE = 5;
static const MMRESULT MMSYSERR_NODRIVER = 6;
static const MMRESULT MMSYSERR_NOMEM = 7;
static const MMRESULT MMSYSERR_NOTSUPPORTED = 8;
static const MMRESULT MMSYSERR_BADERRNUM = 9;
static const MMRESULT MMSYSERR_INVALFLAG = 10;
static const MMRESULT MMSYSERR_INVALPARAM = 11;
static const MMRESULT MMSYSERR_HANDLEBUSY = 12;
static const MMRESULT MMSYSERR_INVALIDALIAS = 13;
static const MMRESULT MMSYSERR_BADDB = 14;
static const MMRESULT MMSYSERR_KEYNOTFOUND = 15;
static const MMRESULT MMSYSERR_READERROR = 16;
static const MMRESULT MMSYSERR_WRITEERROR = 17;
static const MMRESULT MMSYSERR_DELETEERROR = 18;
static const MMRESULT MMSYSERR_VALNOTFOUND = 19;
static const MMRESULT MMSYSERR_NODRIVERCB = 20;
static const MMRESULT MMSYSERR_MOREDATA = 21;
static const MMRESULT WAVERR_BADFORMAT = 32;
static const MMRESULT WAVERR_STILLPLAYING = 33;
static const MMRESULT WAVERR_UNPREPARED = 34;
static const MMRESULT WAVERR_SYNC = 35;
static const MMRESULT MIDIERR_UNPREPARED = 64;
static const MMRESULT MIDIERR_STILLPLAYING = 65;
static const MMRESULT MIDIERR_NOMAP = 66;
static const MMRESULT MIDIERR_NOTREADY = 67;
static const MMRESULT MIDIERR_NODEVICE = 68;
static const MMRESULT MIDIERR_INVALIDSETUP = 69;
static const MMRESULT MIDIERR_BADOPENMODE = 70;
static const MMRESULT MIDIERR_DONT_CONTINUE = 71;
static const MMRESULT JOYERR_PARMS = 165;
static const MMRESULT JOYERR_NOCANDO = 166;
static const MMRESULT JOYERR_UNPLUGGED = 167;
static const MMRESULT MMIOERR_FILENOTFOUND = 257;
static const MMRESULT MMIOERR_OUTOFMEMORY = 258;
static const MMRESULT MMIOERR_CANNOTOPEN = 259;
static const MMRESULT MMIOERR_CANNOTCLOSE = 260;
static const MMRESULT MMIOERR_CANNOTREAD = 261;
static const MMRESULT MMIOERR_CANNOTWRITE = 262;
static const MMRESULT MMIOERR_CANNOTSEEK = 263;
static const MMRESULT MMIOERR_CANNOTEXPAND = 264;
static const MMRESULT MMIOERR_CHUNKNOTFOUND = 265;
static const MMRESULT MMIOERR_UNBUFFERED = 266;
static const MMRESULT MMIOERR_PATHNOTFOUND = 267;
static const MMRESULT MMIOERR_ACCESSDENIED = 268;
static const MMRESULT MMIOERR_SHARINGVIOLATION = 269;
static const MMRESULT MMIOERR_NETWORKERROR = 270;
static const MMRESULT MMIOERR_TOOMANYOPENFILES = 271;
static const MMRESULT MMIOERR_INVALIDFILE = 272;
static const MMRESULT ACMERR_NOTPOSSIBLE = 512;
static const MMRESULT ACMERR_BUSY = 513;
static const MMRESULT ACMERR_UNPREPARED = 514;
static const MMRESULT ACMERR_CANCELED = 515;
static const MMRESULT MIXERR_INVALLINE = 1024;
static const MMRESULT MIXERR_INVALCONTROL = 1025;
static const MMRESULT MIXERR_INVALVALUE = 1026;
typedef WORD WINAPI_WaveFormat; //Alias
static const WINAPI_WaveFormat WAVE_FORMAT_UNKNOWN = 0x0000;
static const WINAPI_WaveFormat WAVE_FORMAT_PCM = 0x0001;
static const WINAPI_WaveFormat WAVE_FORMAT_ADPCM = 0x0002;
static const WINAPI_WaveFormat WAVE_FORMAT_IEEE_FLOAT = 0x0003;
static const WINAPI_WaveFormat WAVE_FORMAT_VSELP = 0x0004;
static const WINAPI_WaveFormat WAVE_FORMAT_IBM_CVSD = 0x0005;
static const WINAPI_WaveFormat WAVE_FORMAT_ALAW = 0x0006;
static const WINAPI_WaveFormat WAVE_FORMAT_MULAW = 0x0007;
static const WINAPI_WaveFormat WAVE_FORMAT_DTS = 0x0008;
static const WINAPI_WaveFormat WAVE_FORMAT_DRM = 0x0009;
static const WINAPI_WaveFormat WAVE_FORMAT_WMAVOICE9 = 0x000A;
static const WINAPI_WaveFormat WAVE_FORMAT_WMAVOICE10 = 0x000B;
static const WINAPI_WaveFormat WAVE_FORMAT_OKI_ADPCM = 0x0010;
static const WINAPI_WaveFormat WAVE_FORMAT_DVI_ADPCM = 0x0011;
static const WINAPI_WaveFormat WAVE_FORMAT_MEDIASPACE_ADPCM = 0x0012;
static const WINAPI_WaveFormat WAVE_FORMAT_SIERRA_ADPCM = 0x0013;
static const WINAPI_WaveFormat WAVE_FORMAT_G723_ADPCM = 0x0014;
static const WINAPI_WaveFormat WAVE_FORMAT_DIGISTD = 0x0015;
static const WINAPI_WaveFormat WAVE_FORMAT_DIGIFIX = 0x0016;
static const WINAPI_WaveFormat WAVE_FORMAT_DIALOGIC_OKI_ADPCM = 0x0017;
static const WINAPI_WaveFormat WAVE_FORMAT_MEDIAVISION_ADPCM = 0x0018;
static const WINAPI_WaveFormat WAVE_FORMAT_CU_CODEC = 0x0019;
static const WINAPI_WaveFormat WAVE_FORMAT_YAMAHA_ADPCM = 0x0020;
static const WINAPI_WaveFormat WAVE_FORMAT_SONARC = 0x0021;
static const WINAPI_WaveFormat WAVE_FORMAT_DSPGROUP_TRUESPEECH = 0x0022;
static const WINAPI_WaveFormat WAVE_FORMAT_ECHOSC1 = 0x0023;
static const WINAPI_WaveFormat WAVE_FORMAT_AUDIOFILE_AF36 = 0x0024;
static const WINAPI_WaveFormat WAVE_FORMAT_APTX = 0x0025;
static const WINAPI_WaveFormat WAVE_FORMAT_AUDIOFILE_AF10 = 0x0026;
static const WINAPI_WaveFormat WAVE_FORMAT_PROSODY_1612 = 0x0027;
static const WINAPI_WaveFormat WAVE_FORMAT_LRC = 0x0028;
static const WINAPI_WaveFormat WAVE_FORMAT_DOLBY_AC2 = 0x0030;
static const WINAPI_WaveFormat WAVE_FORMAT_GSM610 = 0x0031;
static const WINAPI_WaveFormat WAVE_FORMAT_MSNAUDIO = 0x0032;
static const WINAPI_WaveFormat WAVE_FORMAT_ANTEX_ADPCME = 0x0033;
static const WINAPI_WaveFormat WAVE_FORMAT_CONTROL_RES_VQLPC = 0x0034;
static const WINAPI_WaveFormat WAVE_FORMAT_DIGIREAL = 0x0035;
static const WINAPI_WaveFormat WAVE_FORMAT_DIGIADPCM = 0x0036;
static const WINAPI_WaveFormat WAVE_FORMAT_CONTROL_RES_CR10 = 0x0037;
static const WINAPI_WaveFormat WAVE_FORMAT_NMS_VBXADPCM = 0x0038;
static const WINAPI_WaveFormat WAVE_FORMAT_CS_IMAADPCM = 0x0039;
static const WINAPI_WaveFormat WAVE_FORMAT_ECHOSC3 = 0x003A;
static const WINAPI_WaveFormat WAVE_FORMAT_ROCKWELL_ADPCM = 0x003B;
static const WINAPI_WaveFormat WAVE_FORMAT_ROCKWELL_DIGITALK = 0x003C;
static const WINAPI_WaveFormat WAVE_FORMAT_XEBEC = 0x003D;
static const WINAPI_WaveFormat WAVE_FORMAT_G721_ADPCM = 0x0040;
static const WINAPI_WaveFormat WAVE_FORMAT_G728_CELP = 0x0041;
static const WINAPI_WaveFormat WAVE_FORMAT_MSG723 = 0x0042;
static const WINAPI_WaveFormat WAVE_FORMAT_MPEG = 0x0050;
static const WINAPI_WaveFormat WAVE_FORMAT_RT24 = 0x0052;
static const WINAPI_WaveFormat WAVE_FORMAT_PAC = 0x0053;
static const WINAPI_WaveFormat WAVE_FORMAT_MPEGLAYER3 = 0x0055;
static const WINAPI_WaveFormat WAVE_FORMAT_LUCENT_G723 = 0x0059;
static const WINAPI_WaveFormat WAVE_FORMAT_CIRRUS = 0x0060;
static const WINAPI_WaveFormat WAVE_FORMAT_ESPCM = 0x0061;
static const WINAPI_WaveFormat WAVE_FORMAT_VOXWARE = 0x0062;
static const WINAPI_WaveFormat WAVE_FORMAT_CANOPUS_ATRAC = 0x0063;
static const WINAPI_WaveFormat WAVE_FORMAT_G726_ADPCM = 0x0064;
static const WINAPI_WaveFormat WAVE_FORMAT_G722_ADPCM = 0x0065;
static const WINAPI_WaveFormat WAVE_FORMAT_DSAT_DISPLAY = 0x0067;
static const WINAPI_WaveFormat WAVE_FORMAT_VOXWARE_BYTE_ALIGNED = 0x0069;
static const WINAPI_WaveFormat WAVE_FORMAT_VOXWARE_AC8 = 0x0070;
static const WINAPI_WaveFormat WAVE_FORMAT_VOXWARE_AC10 = 0x0071;
static const WINAPI_WaveFormat WAVE_FORMAT_VOXWARE_AC16 = 0x0072;
static const WINAPI_WaveFormat WAVE_FORMAT_VOXWARE_AC20 = 0x0073;
static const WINAPI_WaveFormat WAVE_FORMAT_VOXWARE_RT24 = 0x0074;
static const WINAPI_WaveFormat WAVE_FORMAT_VOXWARE_RT29 = 0x0075;
static const WINAPI_WaveFormat WAVE_FORMAT_VOXWARE_RT29HW = 0x0076;
static const WINAPI_WaveFormat WAVE_FORMAT_VOXWARE_VR12 = 0x0077;
static const WINAPI_WaveFormat WAVE_FORMAT_VOXWARE_VR18 = 0x0078;
static const WINAPI_WaveFormat WAVE_FORMAT_VOXWARE_TQ40 = 0x0079;
static const WINAPI_WaveFormat WAVE_FORMAT_SOFTSOUND = 0x0080;
static const WINAPI_WaveFormat WAVE_FORMAT_VOXWARE_TQ60 = 0x0081;
static const WINAPI_WaveFormat WAVE_FORMAT_MSRT24 = 0x0082;
static const WINAPI_WaveFormat WAVE_FORMAT_G729A = 0x0083;
static const WINAPI_WaveFormat WAVE_FORMAT_MVI_MVI2 = 0x0084;
static const WINAPI_WaveFormat WAVE_FORMAT_DF_G726 = 0x0085;
static const WINAPI_WaveFormat WAVE_FORMAT_DF_GSM610 = 0x0086;
static const WINAPI_WaveFormat WAVE_FORMAT_ISIAUDIO = 0x0088;
static const WINAPI_WaveFormat WAVE_FORMAT_ONLIVE = 0x0089;
static const WINAPI_WaveFormat WAVE_FORMAT_SBC24 = 0x0091;
static const WINAPI_WaveFormat WAVE_FORMAT_DOLBY_AC3_SPDIF = 0x0092;
static const WINAPI_WaveFormat WAVE_FORMAT_MEDIASONIC_G723 = 0x0093;
static const WINAPI_WaveFormat WAVE_FORMAT_PROSODY_8KBPS = 0x0094;
static const WINAPI_WaveFormat WAVE_FORMAT_ZYXEL_ADPCM = 0x0097;
static const WINAPI_WaveFormat WAVE_FORMAT_PHILIPS_LPCBB = 0x0098;
static const WINAPI_WaveFormat WAVE_FORMAT_PACKED = 0x0099;
static const WINAPI_WaveFormat WAVE_FORMAT_MALDEN_PHONYTALK = 0x00A0;
static const WINAPI_WaveFormat WAVE_FORMAT_RAW_AAC1 = 0x00FF;
static const WINAPI_WaveFormat WAVE_FORMAT_RHETOREX_ADPCM = 0x0100;
static const WINAPI_WaveFormat WAVE_FORMAT_IRAT = 0x0101;
static const WINAPI_WaveFormat WAVE_FORMAT_VIVO_G723 = 0x0111;
static const WINAPI_WaveFormat WAVE_FORMAT_VIVO_SIREN = 0x0112;
static const WINAPI_WaveFormat WAVE_FORMAT_DIGITAL_G723 = 0x0123;
static const WINAPI_WaveFormat WAVE_FORMAT_SANYO_LD_ADPCM = 0x0125;
static const WINAPI_WaveFormat WAVE_FORMAT_SIPROLAB_ACEPLNET = 0x0130;
static const WINAPI_WaveFormat WAVE_FORMAT_SIPROLAB_ACELP4800 = 0x0131;
static const WINAPI_WaveFormat WAVE_FORMAT_SIPROLAB_ACELP8V3 = 0x0132;
static const WINAPI_WaveFormat WAVE_FORMAT_SIPROLAB_G729 = 0x0133;
static const WINAPI_WaveFormat WAVE_FORMAT_SIPROLAB_G729A = 0x0134;
static const WINAPI_WaveFormat WAVE_FORMAT_SIPROLAB_KELVIN = 0x0135;
static const WINAPI_WaveFormat WAVE_FORMAT_G726ADPCM = 0x0140;
static const WINAPI_WaveFormat WAVE_FORMAT_QUALCOMM_PUREVOICE = 0x0150;
static const WINAPI_WaveFormat WAVE_FORMAT_QUALCOMM_HALFRATE = 0x0151;
static const WINAPI_WaveFormat WAVE_FORMAT_TUBGSM = 0x0155;
static const WINAPI_WaveFormat WAVE_FORMAT_MSAUDIO1 = 0x0160;
static const WINAPI_WaveFormat WAVE_FORMAT_WMAUDIO2 = 0x0161;
static const WINAPI_WaveFormat WAVE_FORMAT_WMAUDIO3 = 0x0162;
static const WINAPI_WaveFormat WAVE_FORMAT_WMAUDIO_LOSSLESS = 0x0163;
static const WINAPI_WaveFormat WAVE_FORMAT_WMASPDIF = 0x0164;
static const WINAPI_WaveFormat WAVE_FORMAT_UNISYS_NAP_ADPCM = 0x0170;
static const WINAPI_WaveFormat WAVE_FORMAT_UNISYS_NAP_ULAW = 0x0171;
static const WINAPI_WaveFormat WAVE_FORMAT_UNISYS_NAP_ALAW = 0x0172;
static const WINAPI_WaveFormat WAVE_FORMAT_UNISYS_NAP_16K = 0x0173;
static const WINAPI_WaveFormat WAVE_FORMAT_CREATIVE_ADPCM = 0x0200;
static const WINAPI_WaveFormat WAVE_FORMAT_CREATIVE_FASTSPEECH8 = 0x0202;
static const WINAPI_WaveFormat WAVE_FORMAT_CREATIVE_FASTSPEECH10 = 0x0203;
static const WINAPI_WaveFormat WAVE_FORMAT_UHER_ADPCM = 0x0210;
static const WINAPI_WaveFormat WAVE_FORMAT_QUARTERDECK = 0x0220;
static const WINAPI_WaveFormat WAVE_FORMAT_ILINK_VC = 0x0230;
static const WINAPI_WaveFormat WAVE_FORMAT_RAW_SPORT = 0x0240;
static const WINAPI_WaveFormat WAVE_FORMAT_ESST_AC3 = 0x0241;
static const WINAPI_WaveFormat WAVE_FORMAT_GENERIC_PASSTHRU = 0x0249;
static const WINAPI_WaveFormat WAVE_FORMAT_IPI_HSX = 0x0250;
static const WINAPI_WaveFormat WAVE_FORMAT_IPI_RPELP = 0x0251;
static const WINAPI_WaveFormat WAVE_FORMAT_CS2 = 0x0260;
static const WINAPI_WaveFormat WAVE_FORMAT_SONY_SCX = 0x0270;
static const WINAPI_WaveFormat WAVE_FORMAT_FM_TOWNS_SND = 0x0300;
static const WINAPI_WaveFormat WAVE_FORMAT_BTV_DIGITAL = 0x0400;
static const WINAPI_WaveFormat WAVE_FORMAT_QDESIGN_MUSIC = 0x0450;
static const WINAPI_WaveFormat WAVE_FORMAT_VME_VMPCM = 0x0680;
static const WINAPI_WaveFormat WAVE_FORMAT_TPC = 0x0681;
static const WINAPI_WaveFormat WAVE_FORMAT_OLIGSM = 0x1000;
static const WINAPI_WaveFormat WAVE_FORMAT_OLIADPCM = 0x1001;
static const WINAPI_WaveFormat WAVE_FORMAT_OLICELP = 0x1002;
static const WINAPI_WaveFormat WAVE_FORMAT_OLISBC = 0x1003;
static const WINAPI_WaveFormat WAVE_FORMAT_OLIOPR = 0x1004;
static const WINAPI_WaveFormat WAVE_FORMAT_LH_CODEC = 0x1100;
static const WINAPI_WaveFormat WAVE_FORMAT_NORRIS = 0x1400;
static const WINAPI_WaveFormat WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS = 0x1500;
static const WINAPI_WaveFormat WAVE_FORMAT_MPEG_ADTS_AAC = 0x1600;
static const WINAPI_WaveFormat WAVE_FORMAT_MPEG_RAW_AAC = 0x1601;
static const WINAPI_WaveFormat WAVE_FORMAT_MPEG_LOAS = 0x1602;
static const WINAPI_WaveFormat WAVE_FORMAT_NOKIA_MPEG_ADTS_AAC = 0x1608;
static const WINAPI_WaveFormat WAVE_FORMAT_NOKIA_MPEG_RAW_AAC = 0x1609;
static const WINAPI_WaveFormat WAVE_FORMAT_VODAFONE_MPEG_ADTS_AAC = 0x160A;
static const WINAPI_WaveFormat WAVE_FORMAT_VODAFONE_MPEG_RAW_AAC = 0x160B;
static const WINAPI_WaveFormat WAVE_FORMAT_MPEG_HEAAC = 0x1610;
static const WINAPI_WaveFormat WAVE_FORMAT_DVM = 0x2000;
static const WINAPI_WaveFormat WAVE_FORMAT_DTS2 = 0x2001;
static const WINAPI_WaveFormat WAVE_FORMAT_EXTENSIBLE = 0xFFFE;
static const WINAPI_WaveFormat WAVE_FORMAT_DEVELOPMENT = 0xFFFF;
# pragma pack( push, 1 )
typedef struct WAVEFORMATEX {
WINAPI_WaveFormat wFormatTag;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
WORD wBitsPerSample;
WORD cbSize;
} WAVEFORMATEX;
# pragma pack( pop )
typedef WAVEFORMATEX *LPWAVEFORMATEX; //Pointer
typedef WAVEFORMATEX *LPCWAVEFORMATEX; //Pointer
typedef DWORD WINAPI_SPEAKER_POSITION; //Alias
]]
-60
View File
@@ -1,60 +0,0 @@
require( 'ffi/winapi/headers/windows' )
local ffi = require( 'ffi' )
ffi.cdef [[
typedef LPVOID PPATCH_PROGRESS_CALLBACK; //Alias
typedef LPVOID PPATCH_SYMLOAD_CALLBACK; //Alias
typedef struct WINAPI_PATCH_INTERLEAVE_MAP_s {
ULONG OldOffset;
ULONG OldLength;
ULONG NewLength;
} WINAPI_PATCH_INTERLEAVE_MAP_s;
typedef struct PATCH_INTERLEAVE_MAP {
ULONG CountRanges;
WINAPI_PATCH_INTERLEAVE_MAP_s] Range[1;
} PATCH_INTERLEAVE_MAP;
typedef PATCH_INTERLEAVE_MAP *PPATCH_INTERLEAVE_MAP; //Pointer
typedef struct PATCH_IGNORE_RANGE {
ULONG OffsetInOldFile;
ULONG LengthInBytes;
} PATCH_IGNORE_RANGE;
typedef PATCH_IGNORE_RANGE *PPATCH_IGNORE_RANGE; //Pointer
typedef struct PATCH_RETAIN_RANGE {
ULONG OffsetInOldFile;
ULONG LengthInBytes;
ULONG OffsetInNewFile;
} PATCH_RETAIN_RANGE;
typedef PATCH_RETAIN_RANGE *PPATCH_RETAIN_RANGE; //Pointer
typedef ULONG WINAPI_PatchSymbolOptions; //Alias
typedef ULONG WINAPI_PatchExtendedOptions; //Alias
typedef struct PATCH_OPTION_DATA {
ULONG SizeOfThisStruct;
WINAPI_PatchSymbolOptions SymbolOptionFlags;
LPCSTR NewFileSymbolPath;
LPCSTR* OldFileSymbolPathArray;
WINAPI_PatchExtendedOptions ExtendedOptionFlags;
PPATCH_SYMLOAD_CALLBACK SymLoadCallback;
PVOID SymLoadContext;
PPATCH_INTERLEAVE_MAP* InterleaveMapArray;
ULONG MaxLzxWindowSize;
} PATCH_OPTION_DATA;
typedef PATCH_OPTION_DATA *PPATCH_OPTION_DATA; //Pointer
typedef struct PATCH_OLD_FILE_INFO_H {
ULONG SizeOfThisStruct;
HANDLE OldFileHandle;
ULONG IgnoreRangeCount;
PPATCH_IGNORE_RANGE IgnoreRangeArray;
ULONG RetainRangeCount;
PPATCH_RETAIN_RANGE RetainRangeArray;
} PATCH_OLD_FILE_INFO_H;
typedef PATCH_OLD_FILE_INFO_H *PPATCH_OLD_FILE_INFO_H; //Pointer
typedef struct PATCH_OLD_FILE_INFO {
ULONG SizeOfThisStruct;
LPCTSTR OldFileName;
ULONG IgnoreRangeCount;
PPATCH_IGNORE_RANGE IgnoreRangeArray;
ULONG RetainRangeCount;
PPATCH_RETAIN_RANGE RetainRangeArray;
} PATCH_OLD_FILE_INFO;
typedef PATCH_OLD_FILE_INFO *PPATCH_OLD_FILE_INFO; //Pointer
typedef ULONG WINAPI_PatchOptionFlags; //Alias
]]
-122
View File
@@ -1,122 +0,0 @@
require( 'ffi/winapi/headers/windows' )
require( 'ffi/winapi/headers/shell' )
local ffi = require( 'ffi' )
ffi.cdef [[
typedef void* IPropertyChange; //Interface
typedef void* IPropertyChangeArray; //Interface
typedef void* IPropertyDescription; //Interface
typedef void* IPropertyDescription2; //Interface
typedef void* IPropertyDescriptionAliasInfo; //Interface
typedef void* IPropertyDescriptionList; //Interface
typedef void* IPropertyDescriptionRelatedPropertyInfo; //Interface
typedef void* IPropertyDescriptionSearchInfo; //Interface
typedef void* IPropertyEnumType; //Interface
typedef void* IPropertyEnumType2; //Interface
typedef void* IPropertyEnumTypeList; //Interface
typedef void* IPropertyStore; //Interface
typedef void* IPropertyStoreCache; //Interface
typedef void* IPropertyStoreCapabilities; //Interface
typedef void* IPropertyStoreFactory; //Interface
typedef void* IPropertySystem; //Interface
typedef void* IPropertyUI; //Interface
typedef HRESULT PSSTDAPI; //Alias
typedef LPVOID PCUSERIALIZEDPROPSTORAGE; //Alias
typedef UINT PROPENUMTYPE; //Alias
static const PROPENUMTYPE PET_DISCRETEVALUE = 0;
static const PROPENUMTYPE PET_RANGEDVALUE = 1;
static const PROPENUMTYPE PET_DEFAULTVALUE = 2;
static const PROPENUMTYPE PET_ENDRANGE = 3;
typedef UINT PROPDESC_DISPLAYTYPE; //Alias
static const PROPDESC_DISPLAYTYPE PDDT_STRING = 0;
static const PROPDESC_DISPLAYTYPE PDDT_NUMBER = 1;
static const PROPDESC_DISPLAYTYPE PDDT_BOOLEAN = 2;
static const PROPDESC_DISPLAYTYPE PDDT_DATETIME = 3;
static const PROPDESC_DISPLAYTYPE PDDT_ENUMERATED = 4;
typedef UINT PROPDESC_GROUPING_RANGE; //Alias
static const PROPDESC_GROUPING_RANGE PDGR_DISCRETE = 0;
static const PROPDESC_GROUPING_RANGE PDGR_ALPHANUMERIC = 1;
static const PROPDESC_GROUPING_RANGE PDGR_SIZE = 2;
static const PROPDESC_GROUPING_RANGE PDGR_DYNAMIC = 3;
static const PROPDESC_GROUPING_RANGE PDGR_DATE = 4;
static const PROPDESC_GROUPING_RANGE PDGR_PERCENT = 5;
static const PROPDESC_GROUPING_RANGE PDGR_ENUMERATED = 6;
typedef UINT PROPDESC_RELATIVEDESCRIPTION_TYPE; //Alias
static const PROPDESC_RELATIVEDESCRIPTION_TYPE PDRDT_GENERAL = 0;
static const PROPDESC_RELATIVEDESCRIPTION_TYPE PDRDT_DATE = 1;
static const PROPDESC_RELATIVEDESCRIPTION_TYPE PDRDT_SIZE = 2;
static const PROPDESC_RELATIVEDESCRIPTION_TYPE PDRDT_COUNT = 3;
static const PROPDESC_RELATIVEDESCRIPTION_TYPE PDRDT_REVISION = 4;
static const PROPDESC_RELATIVEDESCRIPTION_TYPE PDRDT_LENGTH = 5;
static const PROPDESC_RELATIVEDESCRIPTION_TYPE PDRDT_DURATION = 6;
static const PROPDESC_RELATIVEDESCRIPTION_TYPE PDRDT_SPEED = 7;
static const PROPDESC_RELATIVEDESCRIPTION_TYPE PDRDT_RATE = 8;
static const PROPDESC_RELATIVEDESCRIPTION_TYPE PDRDT_RATING = 9;
static const PROPDESC_RELATIVEDESCRIPTION_TYPE PDRDT_PRIORITY = 10;
typedef UINT PROPDESC_SORTDESCRIPTION; //Alias
static const PROPDESC_SORTDESCRIPTION PDSD_GENERAL = 0;
static const PROPDESC_SORTDESCRIPTION PDSD_A_Z = 1;
static const PROPDESC_SORTDESCRIPTION PDSD_LOWEST_HIGHEST = 2;
static const PROPDESC_SORTDESCRIPTION PDSD_SMALLEST_BIGGEST = 3;
static const PROPDESC_SORTDESCRIPTION PDSD_OLDEST_NEWEST = 4;
typedef UINT PROPDESC_AGGREGATION_TYPE; //Alias
static const PROPDESC_AGGREGATION_TYPE PDAT_DEFAULT = 0;
static const PROPDESC_AGGREGATION_TYPE PDAT_FIRST = 1;
static const PROPDESC_AGGREGATION_TYPE PDAT_SUM = 2;
static const PROPDESC_AGGREGATION_TYPE PDAT_AVERAGE = 3;
static const PROPDESC_AGGREGATION_TYPE PDAT_DATERANGE = 4;
static const PROPDESC_AGGREGATION_TYPE PDAT_UNION = 5;
static const PROPDESC_AGGREGATION_TYPE PDAT_MAX = 6;
static const PROPDESC_AGGREGATION_TYPE PDAT_MIN = 7;
typedef UINT PROPDESC_CONDITION_TYPE; //Alias
static const PROPDESC_CONDITION_TYPE PDCOT_NONE = 0;
static const PROPDESC_CONDITION_TYPE PDCOT_STRING = 1;
static const PROPDESC_CONDITION_TYPE PDCOT_SIZE = 2;
static const PROPDESC_CONDITION_TYPE PDCOT_DATETIME = 3;
static const PROPDESC_CONDITION_TYPE PDCOT_BOOLEAN = 4;
static const PROPDESC_CONDITION_TYPE PDCOT_NUMBER = 5;
typedef DWORD PROPDESC_TYPE_FLAGS; //Alias
typedef DWORD PERSIST_SPROPSTORE_FLAGS; //Alias
typedef UINT CONDITION_OPERATION; //Alias
static const CONDITION_OPERATION COP_IMPLICIT = 0;
static const CONDITION_OPERATION COP_EQUAL = 1;
static const CONDITION_OPERATION COP_NOTEQUAL = 2;
static const CONDITION_OPERATION COP_LESSTHAN = 3;
static const CONDITION_OPERATION COP_GREATERTHAN = 4;
static const CONDITION_OPERATION COP_LESSTHANOREQUAL = 5;
static const CONDITION_OPERATION COP_GREATERTHANOREQUAL = 6;
static const CONDITION_OPERATION COP_VALUE_STARTSWITH = 7;
static const CONDITION_OPERATION COP_VALUE_ENDSWITH = 8;
static const CONDITION_OPERATION COP_VALUE_CONTAINS = 9;
static const CONDITION_OPERATION COP_VALUE_NOTCONTAINS = 10;
static const CONDITION_OPERATION COP_DOSWILDCARDS = 11;
static const CONDITION_OPERATION COP_WORD_EQUAL = 12;
static const CONDITION_OPERATION COP_WORD_STARTSWITH = 13;
static const CONDITION_OPERATION COP_APPLICATION_SPECIFIC = 14;
typedef UINT PROPDESC_COLUMNINDEX_TYPE; //Alias
static const PROPDESC_COLUMNINDEX_TYPE PDCIT_NONE = 0;
static const PROPDESC_COLUMNINDEX_TYPE PDCIT_ONDISK = 1;
static const PROPDESC_COLUMNINDEX_TYPE PDCIT_INMEMORY = 2;
static const PROPDESC_COLUMNINDEX_TYPE PDCIT_ONDEMAND = 3;
static const PROPDESC_COLUMNINDEX_TYPE PDCIT_ONDISKALL = 4;
static const PROPDESC_COLUMNINDEX_TYPE PDCIT_ONDISKVECTOR = 5;
typedef UINT PSC_STATE; //Alias
static const PSC_STATE PSC_NORMAL = 0;
static const PSC_STATE PSC_NOTINSOURCE = 1;
static const PSC_STATE PSC_DIRTY = 2;
static const PSC_STATE PSC_READONLY = 3;
typedef UINT PROPDESC_ENUMFILTER; //Alias
static const PROPDESC_ENUMFILTER PDEF_ALL = 0;
static const PROPDESC_ENUMFILTER PDEF_SYSTEM = 1;
static const PROPDESC_ENUMFILTER PDEF_NONSYSTEM = 2;
static const PROPDESC_ENUMFILTER PDEF_VIEWABLE = 3;
static const PROPDESC_ENUMFILTER PDEF_QUERYABLE = 4;
static const PROPDESC_ENUMFILTER PDEF_INFULLTEXTQUERY = 5;
static const PROPDESC_ENUMFILTER PDEF_COLUMN = 6;
typedef DWORD PROPDESC_SEARCHINFO_FLAGS; //Alias
typedef DWORD PROPDESC_VIEW_FLAGS; //Alias
typedef DWORD PROPDESC_FORMAT_FLAGS; //Alias
typedef UINT PKA_FLAGS; //Alias
static const PKA_FLAGS PKA_SET = 0;
static const PKA_FLAGS PKA_APPEND = 1;
static const PKA_FLAGS PKA_DELETE = 2;
]]
-124
View File
@@ -1,124 +0,0 @@
require( 'ffi/winapi/headers/windows' )
local ffi = require( 'ffi' )
ffi.cdef [[
typedef LPVOID PFN_SC_NOTIFY_CALLBACK; //Alias
typedef HANDLE SERVICE_STATUS_HANDLE; //Alias
typedef HANDLE SC_HANDLE; //Alias
typedef LPVOID SC_LOCK; //Alias
typedef UINT SC_STATUS_TYPE; //Alias
static const SC_STATUS_TYPE SC_STATUS_PROCESS_INFO = 0;
typedef DWORD WINAPI_ServiceType; //Alias
typedef DWORD WINAPI_ServiceState; //Alias
typedef DWORD WINAPI_ServiceCurrentState; //Alias
static const WINAPI_ServiceCurrentState SERVICE_STOPPED = 0x00000001;
static const WINAPI_ServiceCurrentState SERVICE_START_PENDING = 0x00000002;
static const WINAPI_ServiceCurrentState SERVICE_STOP_PENDING = 0x00000003;
static const WINAPI_ServiceCurrentState SERVICE_RUNNING = 0x00000004;
static const WINAPI_ServiceCurrentState SERVICE_CONTINUE_PENDING = 0x00000005;
static const WINAPI_ServiceCurrentState SERVICE_PAUSE_PENDING = 0x00000006;
static const WINAPI_ServiceCurrentState SERVICE_PAUSED = 0x00000007;
typedef DWORD WINAPI_ServiceStartType; //Alias
static const WINAPI_ServiceStartType SERVICE_BOOT_START = 0x00000000;
static const WINAPI_ServiceStartType SERVICE_SYSTEM_START = 0x00000001;
static const WINAPI_ServiceStartType SERVICE_AUTO_START = 0x00000002;
static const WINAPI_ServiceStartType SERVICE_DEMAND_START = 0x00000003;
static const WINAPI_ServiceStartType SERVICE_DISABLED = 0x00000004;
static const WINAPI_ServiceStartType SERVICE_NO_CHANGE = 0xffffffff;
typedef DWORD WINAPI_ServiceErrorControl; //Alias
static const WINAPI_ServiceErrorControl SERVICE_ERROR_IGNORE = 0x00000000;
static const WINAPI_ServiceErrorControl SERVICE_ERROR_NORMAL = 0x00000001;
static const WINAPI_ServiceErrorControl SERVICE_ERROR_SEVERE = 0x00000002;
static const WINAPI_ServiceErrorControl SERVICE_ERROR_CRITICAL = 0x00000003;
//static const WINAPI_ServiceErrorControl SERVICE_NO_CHANGE = 0xffffffff;
typedef DWORD WINAPI_ServiceInfoLevel; //Alias
static const WINAPI_ServiceInfoLevel SERVICE_CONFIG_DESCRIPTION = 1;
static const WINAPI_ServiceInfoLevel SERVICE_CONFIG_FAILURE_ACTIONS = 2;
static const WINAPI_ServiceInfoLevel SERVICE_CONFIG_DELAYED_AUTO_START_INFO = 3;
static const WINAPI_ServiceInfoLevel SERVICE_CONFIG_FAILURE_ACTIONS_FLAG = 4;
static const WINAPI_ServiceInfoLevel SERVICE_CONFIG_SERVICE_SID_INFO = 5;
static const WINAPI_ServiceInfoLevel SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 6;
static const WINAPI_ServiceInfoLevel SERVICE_CONFIG_PRESHUTDOWN_INFO = 7;
static const WINAPI_ServiceInfoLevel SERVICE_CONFIG_TRIGGER_INFO = 8;
static const WINAPI_ServiceInfoLevel SERVICE_CONFIG_PREFERRED_NODE = 9;
typedef DWORD WINAPI_SCManagerAccess; //Alias
typedef DWORD WINAPI_ServiceAccess; //Alias
typedef DWORD WINAPI_ServiceControl; //Alias
static const WINAPI_ServiceControl SERVICE_CONTROL_STOP = 0x00000001;
static const WINAPI_ServiceControl SERVICE_CONTROL_PAUSE = 0x00000002;
static const WINAPI_ServiceControl SERVICE_CONTROL_CONTINUE = 0x00000003;
static const WINAPI_ServiceControl SERVICE_CONTROL_INTERROGATE = 0x00000004;
static const WINAPI_ServiceControl SERVICE_CONTROL_SHUTDOWN = 0x00000005;
static const WINAPI_ServiceControl SERVICE_CONTROL_PARAMCHANGE = 0x00000006;
static const WINAPI_ServiceControl SERVICE_CONTROL_NETBINDADD = 0x00000007;
static const WINAPI_ServiceControl SERVICE_CONTROL_NETBINDREMOVE = 0x00000008;
static const WINAPI_ServiceControl SERVICE_CONTROL_NETBINDENABLE = 0x00000009;
static const WINAPI_ServiceControl SERVICE_CONTROL_NETBINDDISABLE = 0x0000000A;
static const WINAPI_ServiceControl SERVICE_CONTROL_DEVICEEVENT = 0x0000000B;
static const WINAPI_ServiceControl SERVICE_CONTROL_HARDWAREPROFILECHANGE = 0x0000000C;
static const WINAPI_ServiceControl SERVICE_CONTROL_POWEREVENT = 0x0000000D;
static const WINAPI_ServiceControl SERVICE_CONTROL_SESSIONCHANGE = 0x0000000E;
static const WINAPI_ServiceControl SERVICE_CONTROL_PRESHUTDOWN = 0x0000000F;
typedef DWORD WINAPI_ServiceAcceptControls; //Alias
typedef DWORD WINAPI_ServiceNotifyMask; //Alias
typedef DWORD WINAPI_ServiceFlags; //Alias
typedef struct SERVICE_STATUS_PROCESS {
WINAPI_ServiceType dwServiceType;
WINAPI_ServiceCurrentState dwCurrentState;
WINAPI_ServiceAcceptControls dwControlsAccepted;
DWORD dwWin32ExitCode;
DWORD dwServiceSpecificExitCode;
DWORD dwCheckPoint;
DWORD dwWaitHint;
DWORD dwProcessId;
WINAPI_ServiceFlags dwServiceFlags;
} SERVICE_STATUS_PROCESS;
typedef struct SERVICE_NOTIFY {
DWORD dwVersion;
PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback;
PVOID pContext;
DWORD dwNotificationStatus;
SERVICE_STATUS_PROCESS ServiceStatus;
DWORD dwNotificationTriggered;
LPTSTR pszServiceNames;
} SERVICE_NOTIFY;
typedef SERVICE_NOTIFY *PSERVICE_NOTIFY; //Pointer
typedef struct SERVICE_STATUS {
WINAPI_ServiceType dwServiceType;
WINAPI_ServiceCurrentState dwCurrentState;
WINAPI_ServiceAcceptControls dwControlsAccepted;
DWORD dwWin32ExitCode;
DWORD dwServiceSpecificExitCode;
DWORD dwCheckPoint;
DWORD dwWaitHint;
} SERVICE_STATUS;
typedef SERVICE_STATUS *LPSERVICE_STATUS; //Pointer
typedef LPVOID LPSERVICE_MAIN_FUNCTION; //Alias
typedef struct SERVICE_TABLE_ENTRY {
LPTSTR lpServiceName;
LPSERVICE_MAIN_FUNCTION lpServiceProc;
} SERVICE_TABLE_ENTRY;
typedef struct ENUM_SERVICE_STATUS {
LPTSTR lpServiceName;
LPTSTR lpDisplayName;
SERVICE_STATUS ServiceStatus;
} ENUM_SERVICE_STATUS;
typedef ENUM_SERVICE_STATUS *LPENUM_SERVICE_STATUS; //Pointer
typedef struct QUERY_SERVICE_CONFIG {
WINAPI_ServiceType dwServiceType;
WINAPI_ServiceStartType dwStartType;
WINAPI_ServiceErrorControl dwErrorControl;
LPTSTR lpBinaryPathName;
LPTSTR lpLoadOrderGroup;
DWORD dwTagId;
LPTSTR lpDependencies;
LPTSTR lpServiceStartName;
LPTSTR lpDisplayName;
} QUERY_SERVICE_CONFIG;
typedef QUERY_SERVICE_CONFIG *LPQUERY_SERVICE_CONFIG; //Pointer
typedef struct QUERY_SERVICE_LOCK_STATUS {
DWORD fIsLocked;
LPTSTR lpLockOwner;
DWORD dwLockDuration;
} QUERY_SERVICE_LOCK_STATUS;
typedef QUERY_SERVICE_LOCK_STATUS *LPQUERY_SERVICE_LOCK_STATUS; //Pointer
]]
-17
View File
@@ -1,17 +0,0 @@
require( 'ffi/winapi/headers/windows' )
local ffi = require( 'ffi' )
ffi.cdef [[
enum { LINE_LEN = 256 };
typedef DWORD WINAPI_DiDriverType; //Alias
typedef struct SP_DRVINFO_DATA {
DWORD cbSize;
WINAPI_DiDriverType DriverType;
ULONG_PTR Reserved;
TCHAR Description[LINE_LEN];
TCHAR MfgName[LINE_LEN];
TCHAR ProviderName[LINE_LEN];
FILETIME DriverDate;
DWORDLONG DriverVersion;
} SP_DRVINFO_DATA;
typedef SP_DRVINFO_DATA *PSP_DRVINFO_DATA; //Pointer
]]
@@ -1,5 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
require( 'ffi/winapi/interfaces/bits/ibitspeer' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/bits/ibackgroundcopycallback' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/bits/ibackgroundcopyfile' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/bits/ibackgroundcopyfile2' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/bits/ibackgroundcopyfile3' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/bits/ibackgroundcopyjob' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/bits/ibackgroundcopyjob2' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/bits/ibackgroundcopyjob3' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
-4
View File
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
-4
View File
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/com/asynciadvisesink' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/com/iadvisesink' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/com/irpcchannelbuffer2' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
-4
View File
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
-4
View File
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
-4
View File
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,5 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
require( 'ffi/winapi/headers/gdi' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,5 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
require( 'ffi/winapi/headers/gdi' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]
@@ -1,4 +0,0 @@
require( 'ffi/winapi/interfaces/iunknown' )
local ffi = require( 'ffi' )
ffi.cdef [[
]]

Some files were not shown because too many files have changed in this diff Show More