Check-in [9b639cf2d6]

Not logged in
Overview
SHA1 Hash:9b639cf2d66a329684f08b4e65d9b1038962e15e
Date: 2015-05-05 06:49:05
User: kinaba
Comment:Working version for update to 2.067.

The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.

Timelines: family | ancestors | descendants | both | trunk
Downloads: Tarball | ZIP archive
Other Links: files | file ages | manifest
Tags And Properties
Changes
hide diffs side-by-side diffs patch

Modified readme.txt from [6e5c7faf68c46e9a] to [2d3cc426522d1739].

1 1 ---------------------------- 2 - Quasi-Bga32.DLL 2015/05/01 2 + Quasi-Bga32.DLL 2015/05/05 3 3 ---------------------------- 4 4 5 5 http://www.forest.impress.co.jp/article/2004/07/30/arcsecurity.html 6 6 などで脆弱性と指摘されている問題が気になるけれど、Bga32.dllは使い続け 7 7 たいという人のための回避策です。展開処理はこの問題に対処しつつ内部で 8 8 行い、圧縮などの他の処理は全てオリジナルのBga32.dllに処理を回します。 9 9 ................................................................................ 27 27 * 上書き確認ダイアログが簡素なものになっています。 28 28 * コマンドラインやオプション、ワイルドカードの解釈は 29 29 オリジナルと同じになるように作ったつもりです。 30 30 * ただし、突貫で作ったのでたぶんバグだらけです。 31 31 32 32 ★更新履歴 33 33 34 - 2015/05/01 (0.05) 35 - * TBW 34 + 2015/05/05 (0.05) 35 + * zlib のバージョンを 1.2.8 に上げ(るためにdmdのバージョンを 2.067 に上げ)ました 36 + * libbz2 のバージョンを 1.0.6 に上げました 36 37 2010/11/25 (0.04) 37 38 * _Bga32.dll を探す対象パスからカレントディレクトリを外しました 38 39 2004/8/31 (0.03) 39 40 * レスポンスファイルが扱えてなかったバグを修正 40 41 * .gzaを正しく展開できないケースがあったっぽいので修正 41 42 * 基底ディレクトリの指定がないと正しく動作しないバグ修正 42 43 * 進捗状況ダイアログ表示を実装 ................................................................................ 55 56 http://www.kmonos.net/alang/d/1.0/changelog1.html#new099 56 57 が必要です。 57 58 58 59 ★著作権等 59 60 60 61 src/libbz2ディレクトリの中身は、 61 62 libbzip2 62 - http://sources.redhat.com/bzip2/ 63 + http://www.bzip.org/ 63 64 をビルドしたライブラリなどです。この部分は 64 - Copyright (C) 1996-2002 Julian R Seward. All rights reserved. 65 + Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org> 65 66 で。 66 67 67 - dmd_win32.lib と win32 ディレクトリの中身は 68 - DWinProgramming 69 - https://github.com/AndrejMitrovic/DWinProgramming 68 + win32 ディレクトリの中身は 69 + Bindings for the Windows API 70 + http://www.dsource.org/projects/bindings/wiki/WindowsApi 70 71 を利用しています。 71 72 72 73 他は NYSL 0.9982 ( http://www.kmonos.net/nysl/ )に基づいてご自由に。

Modified src/Makefile from [771cea5a31d0f506] to [f84e816ad132fb6d].

1 -SRCFILES = qbga32.def qbga32.d util.d bga_melter.d hack.d windll.d qbga_gui.d 2 -BZ2FILES = libbz2\\bzlib.d libbz2\\libbz2.lib 3 -DEPLIBS = dmd_win32.lib 1 +SRCFILES = qbga32.def dllmain.d util.d windll.d qbga32.d bga_melter.d qbga_gui.d 2 +BZ2FILES = libbz2\bzlib.d libbz2\libbz2.lib 3 +DEPLIBS = win32\windef.d 4 4 OPTS = -release -shared 5 -#OPTS = -unittest 6 5 7 -QBga32.dll: $(SRCFILES) $(BZ2FILES) 6 +QBga32.dll: $(SRCFILES) $(BZ2FILES) Makefile 8 7 dmd.exe $(OPTS) -ofQBga32.dll $(SRCFILES) $(BZ2FILES) $(DEPLIBS) 9 8 9 +testexe.exe: testexe.d 10 + dmd.exe -gc -oftestexe.exe testexe.d 11 + 10 12 clean: 11 13 del *.map 12 14 del *.obj

Modified src/bga_melter.d from [cf24a8abe2b880fc] to [4c58bb3061c0a99d].

256 256 257 257 return -1; 258 258 } 259 259 260 260 private bool read_header( out BgaHeader hdr ) 261 261 { 262 262 // 繝ェ繝医Ν繧ィ繝ウ繝繧」繧「繝ウ繧剃サョ螳壹ゅ倥ャ繝隱ュ縺ソ霎シ縺ソ 263 - string buf = cast(string) fp.read(28); 263 + void[] buf = fp.read(28); 264 264 if( buf.length < 28 ) return false; 265 265 buf.length = BgaHeader.sizeof; 266 266 hdr = (cast(BgaHeader[]) buf)[0]; 267 267 hdr.fname = ""; 268 268 269 269 // 繝輔ぃ繧、繝ォ蜷 270 270 hdr.fname = cast(string) fp.read(hdr.dir_name_len + hdr.file_name_len); 271 271 if( hdr.fname.length < hdr.dir_name_len + hdr.file_name_len ) return false; 272 272 273 273 // 繝√ぉ繝繧ッ繧オ繝 274 274 int sum = 0; 275 - for( int i=4; i!=28; ++i ) sum += signed_char(buf[i]); 275 + for( int i=4; i!=28; ++i ) sum += signed_char((cast(char[])buf)[i]); 276 276 foreach( char c ; hdr.fname ) sum += signed_char(c); 277 277 return (sum == hdr.checksum); 278 278 } 279 279 280 280 private bool is_compressed( ref BgaHeader hdr ) // ref=just for optimization 281 281 { 282 282 // 繝倥ャ繝縺九i縲√ヵ繧。繧、繝ォ縺悟悸邵ョ譬シ邏阪&繧後※縺繧九°縺ゥ縺縺九r蛻、螳

Added src/dllmain.d version [9533046d0b42b4c6]

1 +import core.sys.windows.dll; 2 +import core.sys.windows.windows; 3 + 4 +//---------------------------------------------------------------- 5 +// 縺翫″縺セ繧翫ョDLL蛻晄悄蛹悶Ν繝シ繝√Φ 6 +//---------------------------------------------------------------- 7 + 8 +extern (Windows) 9 +BOOL DllMain( HINSTANCE inst, ULONG reason, void* reserved ) 10 +{ 11 + switch( reason ) 12 + { 13 + case DLL_PROCESS_ATTACH: 14 + dll_process_attach( inst, true ); 15 + break; 16 + 17 + case DLL_PROCESS_DETACH: 18 + dll_process_detach( inst, true ); 19 + break; 20 + 21 + case DLL_THREAD_ATTACH: 22 + dll_thread_attach( true, true ); 23 + break; 24 + 25 + case DLL_THREAD_DETACH: 26 + dll_thread_detach( true, true ); 27 + break; 28 + 29 + default: 30 + } 31 + return true; 32 +} 33 + 34 +/* 35 +// Hack! 36 +// 37 +// _acrtused_dll縺悟享謇九↓邨ゆコ譎ゅ↓讓呎コ門・蜃コ蜉帙ワ繝ウ繝峨Ν繧 38 +// 髢峨§縺。繧縺」縺ヲ蝗ー繧九ョ縺ァ縲√◎縺ョ霎コ繧翫□縺代ッ髢峨§縺ェ縺繧医≧縺ェ 39 +// CloseHandle繧堤ェ√▲霎シ繧薙〒蝗樣∩縲 40 +// 41 +// dmd v0.99 縺ァ縺ッ蜍輔>縺ヲ縺縺溘ョ縺縺代←譛霑代ョ縺縺ィ縺薙l繧貞・繧後k縺ィ 42 +// 閾ウ繧区園縺ァ繧ッ繝ゥ繝繧キ繝・縺吶k縺ョ縺ァ閠縺育峩縺吝ソ隕√′縺ゅk縲 43 +// TODO: bug report. 44 + 45 +extern(Windows) 46 +{ 47 + private alias BOOL function(HANDLE) ClHnT; 48 + private ClHnT Real_CloseHandle; 49 + private HANDLE stdin; 50 + private HANDLE stdout; 51 + private HANDLE stderr; 52 + 53 + BOOL CloseHandle( HANDLE h ) 54 + { 55 + if( h==stdin ) return TRUE; 56 + if( h==stdout ) return TRUE; 57 + if( h==stderr ) return TRUE; 58 + return Real_CloseHandle(h); 59 + } 60 +} 61 + 62 +static this() 63 +{ 64 + Real_CloseHandle = cast(ClHnT) 65 + GetProcAddress( GetModuleHandleA("kernel32.dll"), "CloseHandle" ); 66 + stdin = GetStdHandle(STD_INPUT_HANDLE ); 67 + stdout = GetStdHandle(STD_OUTPUT_HANDLE); 68 + stderr = GetStdHandle(STD_ERROR_HANDLE ); 69 +} 70 +*/

Deleted src/dmd_win32.lib version [f1588214ab26ab00]

cannot compute difference between binary files

Deleted src/hack.d version [bca565610f0d70a9]

1 -import core.sys.windows.windows; 2 - 3 -// Hack! 4 -// 5 -// _acrtused_dll縺悟享謇九↓邨ゆコ譎ゅ↓讓呎コ門・蜃コ蜉帙ワ繝ウ繝峨Ν繧 6 -// 髢峨§縺。繧縺」縺ヲ蝗ー繧九ョ縺ァ縲√◎縺ョ霎コ繧翫□縺代ッ髢峨§縺ェ縺繧医≧縺ェ 7 -// CloseHandle繧堤ェ√▲霎シ繧薙〒蝗樣∩縲ゅ>縺縺ョ縺九%繧後 8 - 9 -extern(Windows) 10 -{ 11 - private alias BOOL function(HANDLE) ClHnT; 12 - private ClHnT Real_CloseHandle; 13 - private HANDLE stdin; 14 - private HANDLE stdout; 15 - private HANDLE stderr; 16 - 17 - BOOL CloseHandle( HANDLE h ) 18 - { 19 - if( h==stdin ) return TRUE; 20 - if( h==stdout ) return TRUE; 21 - if( h==stderr ) return TRUE; 22 - return Real_CloseHandle(h); 23 - } 24 -} 25 - 26 -static this() 27 -{ 28 - Real_CloseHandle = cast(ClHnT) 29 - GetProcAddress( GetModuleHandleA("kernel32.dll"), "CloseHandle" ); 30 - stdin = GetStdHandle(STD_INPUT_HANDLE ); 31 - stdout = GetStdHandle(STD_OUTPUT_HANDLE); 32 - stderr = GetStdHandle(STD_ERROR_HANDLE ); 33 -}

Modified src/qbga32.d from [8bbe4efdd1d3598d] to [1c734ac63ab48040].

1 -import core.sys.windows.dll; 2 1 import win32.windows; 3 -import win32.winuser; 4 2 import std.string; 5 3 import std.file; 6 4 import util; 7 5 import windll; 8 6 import bga_melter; 9 7 import qbga_gui; 10 8 11 9 //---------------------------------------------------------------- 12 -// 縺翫″縺セ繧翫ョDLL蛻晄悄蛹悶Ν繝シ繝√Φ 10 +// API霆「騾∝ヲ逅 13 11 //---------------------------------------------------------------- 14 12 15 -__gshared HINSTANCE g_hinst; 16 - 17 -extern (Windows) 18 -BOOL DllMain( HINSTANCE inst, ULONG reason, void* reserved ) 19 -{ 20 - switch( reason ) 21 - { 22 - case DLL_PROCESS_ATTACH: 23 - g_hinst = inst; 24 - dll_process_attach( inst, true ); 25 - if( g_orig_dll is null ) 26 - return false; 27 - break; 28 - 29 - case DLL_PROCESS_DETACH: 30 - dll_process_detach( inst, true ); 31 - break; 32 - 33 - case DLL_THREAD_ATTACH: 34 - dll_thread_attach( true, true ); 35 - break; 36 - 37 - case DLL_THREAD_DETACH: 38 - dll_thread_detach( true, true ); 39 - break; 40 - 41 - default: 42 - } 43 - return true; 44 -} 45 - 46 -//---------------------------------------------------------------- 47 -// API霆「騾∝ヲ逅 48 -//---------------------------------------------------------------- 49 - 50 -__gshared WinDLL g_orig_dll = null; 51 -__gshared UINT WM_ARCEXTRACT; 13 +WinDLL g_orig_dll = null; 14 +UINT WM_ARCEXTRACT; 52 15 53 16 static this() 54 17 { 55 18 g_orig_dll = WinDLL.load( "_Bga32.DLL" ); 56 19 WM_ARCEXTRACT = RegisterWindowMessage("wm_arcextract"); 57 20 } 58 21

Modified src/qbga_gui.d from [36c6085700197d43] to [5518278e91d2e2fc].

1 1 サソprivate import win32.windows; 2 2 private import win32.commctrl; 3 3 private import std.string; 4 -private import qbga32; 5 4 6 5 void process_messages() 7 6 { 8 7 for( MSG msg; PeekMessageA( &msg, null, 0, 0, PM_REMOVE ); ) 9 8 { 10 9 TranslateMessage( &msg ); 11 10 DispatchMessageA( &msg ); 12 11 } 13 12 } 14 13 15 -// 螳溯」邯呎価(w 16 - 17 14 class Dialog 18 15 { 19 16 public: 20 17 HWND hwnd() 21 18 { 22 19 return handle; 23 20 } 24 21 25 22 protected: 26 - void on_init() { MessageBoxA(null,"xxx",null,MB_OK); } 23 + void on_init() {} 27 24 bool on_ok() { return false; } 28 25 bool on_cancel() { return false; } 29 26 bool on_command( UINT cmd ) { return false; } 30 27 bool on_message( UINT msg, WPARAM wp, LPARAM lp ) { return false; } 31 28 32 29 extern(Windows) private static BOOL 33 30 static_dlg_proc( HWND dlg, UINT msg, WPARAM wp, LPARAM lp ) ................................................................................ 57 54 } 58 55 59 56 protected: 60 57 HWND handle; 61 58 void BeginModeless( DLGTEMPLATE* dlg_template, HWND parent ) 62 59 { 63 60 CreateDialogIndirectParam( 64 - g_hinst, 61 + GetModuleHandle(null), 65 62 dlg_template, 66 63 parent, 67 64 &static_dlg_proc, 68 65 cast(LPARAM) cast(Dialog*) this 69 66 ); 70 67 } 71 68 72 69 int BeginModal( DLGTEMPLATE* dlg_template, HWND parent ) 73 70 { 74 71 return DialogBoxIndirectParam( 75 - g_hinst, 72 + GetModuleHandle(null), 76 73 dlg_template, 77 74 parent, 78 75 &static_dlg_proc, 79 76 cast(LPARAM) cast(Dialog*) this 80 77 ); 81 78 } 82 79

Added src/testexe.d version [cc2ab2b91c87057b]

1 +import win32.windows; 2 +import std.stdio; 3 +import std.string; 4 +import core.runtime; 5 + 6 +alias extern(Windows) int function( HWND a, immutable char* b, char* c, DWORD d ) CmdFuncT; 7 + 8 +void main() 9 +{ 10 + HINSTANCE h = cast(HINSTANCE) Runtime.loadLibrary("QBga32.DLL"); 11 + for(;;) { 12 + write("> "); 13 + string s = readln(); 14 + if(s.length > 0) { 15 + CmdFuncT Bga = cast(CmdFuncT)GetProcAddress(h, "Bga"); 16 + int r = Bga(NULL, s.toStringz(), null, 0); 17 + writeln("Return: ", r); 18 + } 19 + } 20 + Runtime.unloadLibrary(h); 21 +}

Modified src/util.d from [affffc4f40848d74] to [f4a72491493dc9ab].

1 1 サソimport win32.windows; 2 2 import std.string; 3 3 import std.file; 4 4 5 5 char lastChar( string s ) 6 6 { return *CharPrevA(cast(char*)s.ptr, cast(char*)s.ptr+s.length); } 7 7 8 -//---------------------------------------------------------------- 9 -// int do_opApply!(E, C)( collection, delegate ); 10 -// int do_opApply!(E) ( array, delegate ); 11 -// forwarding the opApply call to another collection 12 -//---------------------------------------------------------------- 13 - 14 -template do_opApply( Elem, Collection ) 15 -{ 16 - int do_opApply( Collection c, int delegate(inout Elem) dg ) 17 - { 18 - int result = 0; 19 - foreach( Elem x ; c ) 20 - if( 0 != (result=dg(x)) ) 21 - break; 22 - return result; 23 - } 24 -} 25 - 26 -template do_opApply( E ) 27 -{ 28 - int do_opApply( E[] c, int delegate(inout E) dg ) 29 - { 30 - return .do_opApply!(E,E[])( c, dg ); 31 - } 32 -} 33 - 34 -//---------------------------------------------------------------- 35 -// class set!(T) 36 -// add : T -> void 37 -// remove : T -> void 38 -// has : T -> bool 39 -// elems : () -> T[] 40 -// length : () -> int 41 -//---------------------------------------------------------------- 42 - 43 -class set(T) 44 -{ 45 - void add ( T x ) { data[x]; } 46 - void remove( T x ) { delete data[x]; } 47 - bool has ( T x ) { return x in data; } 48 - T[] elems () { return data.keys; } 49 - int opApply( int delegate(inout T) dg ) 50 - { return do_opApply!(T)( elems, dg ); } 51 - int length() { return data.length; } 52 - private void[T] data; 53 -} 54 - 55 -unittest 56 -{ 57 - set!(int) x = new set!(int); 58 - x.add(1); 59 - x.add(2); 60 - x.add(3); 61 - assert( x.elems[0] + x.elems[1] + x.elems[2] == 6 ); 62 - assert( x.length == 3 ); 63 - x.remove(4); 64 - x.remove(3); 65 - x.remove(1); 66 - assert( x.length == 1 ); 67 - foreach( int t ; x ) assert( t==2 ); 68 -} 69 - 70 8 //---------------------------------------------------------------- 71 9 // 繧ウ繝槭Φ繝峨Λ繧、繝ウ隗」譫 72 10 //---------------------------------------------------------------- 73 11 74 12 string[] cmd_parse( string str, bool in_resp=false ) 75 13 { 76 14 string[] ans; ................................................................................ 108 46 i = j; 109 47 } 110 48 111 49 // 繝ャ繧ケ繝昴Φ繧ケ繝輔ぃ繧、繝ォ髢「騾」縺ョ蜃ヲ逅 112 50 if( !in_resp && param[0]==resp_char ) 113 51 { 114 52 try { 115 - string rsp = cast(string) std.file.read( param[1 .. param.length] ); 53 + string rsp = cast(string) std.file.read( param[1..$] ); 116 54 ans ~= cmd_parse(rsp,true); 117 55 } catch( FileException e ) {} 118 56 } 119 57 else if( param.length>=2 && param[0..2]=="--" ) 120 58 { 121 59 resp_char = (param.length==2 ? '\0' : param[2]); 122 60 }

Modified src/win32/accctrl.d from [e316536fe0a88b95] to [48529f99cd556031].

11 11 module win32.accctrl; 12 12 13 13 private import win32.basetyps, win32.w32api, win32.winbase, win32.windef; 14 14 15 15 // FIXME: check types and grouping of constants 16 16 // FIXME: check Windows version support 17 17 18 -static assert (_WIN32_WINNT_ONLY, 19 - "win32.accctrl is available only if version WindowsNTonly, WindowsXP, " 20 - "Windows2003 or WindowsVista is set"); 21 - 22 18 alias LocalFree AccFree; 23 19 24 20 const uint 25 21 ACTRL_RESERVED = 0x00000000, 26 22 ACTRL_ACCESS_PROTECTED = 0x00000001, 27 23 ACTRL_ACCESS_ALLOWED = 0x00000001, 28 24 ACTRL_ACCESS_DENIED = 0x00000002, ................................................................................ 359 355 SE_OBJECT_TYPE ObjectType; 360 356 LPWSTR ObjectTypeName; 361 357 LPWSTR InheritedObjectTypeName; 362 358 LPWSTR ptstrName; 363 359 } 364 360 alias OBJECTS_AND_NAME_W* POBJECTS_AND_NAME_W; 365 361 366 -static if (WINVER >= 0x501) { 362 +static if (_WIN32_WINNT >= 0x501) { 367 363 struct INHERITED_FROMA { 368 364 LONG GenerationGap; 369 365 LPSTR AncestorName; 370 366 } 371 367 alias INHERITED_FROMA* PINHERITED_FROMA; 372 368 373 369 struct INHERITED_FROMW { ................................................................................ 384 380 alias ACTRL_ACCESS_INFOW ACTRL_ACCESS_INFO; 385 381 alias ACTRL_ACCESS_ENTRYW ACTRL_ACCESS_ENTRY; 386 382 alias ACTRL_AUDITW ACTRL_AUDIT; 387 383 alias ACTRL_CONTROL_INFOW ACTRL_CONTROL_INFO; 388 384 alias EXPLICIT_ACCESSW EXPLICIT_ACCESS; 389 385 alias TRUSTEE_ACCESSW TRUSTEE_ACCESS; 390 386 alias OBJECTS_AND_NAME_W OBJECTS_AND_NAME_; 391 - static if (WINVER >= 0x501) { 387 + static if (_WIN32_WINNT >= 0x501) { 392 388 alias INHERITED_FROMW INHERITED_FROM; 393 389 } 394 390 } else { 395 391 alias TRUSTEEA TRUSTEE; 396 392 alias ACTRL_ACCESSA ACTRL_ACCESS; 397 393 alias ACTRL_ACCESS_ENTRY_LISTA ACTRL_ACCESS_ENTRY_LIST; 398 394 alias ACTRL_ACCESS_INFOA ACTRL_ACCESS_INFO; 399 395 alias ACTRL_ACCESS_ENTRYA ACTRL_ACCESS_ENTRY; 400 396 alias ACTRL_AUDITA ACTRL_AUDIT; 401 397 alias ACTRL_CONTROL_INFOA ACTRL_CONTROL_INFO; 402 398 alias EXPLICIT_ACCESSA EXPLICIT_ACCESS; 403 399 alias TRUSTEE_ACCESSA TRUSTEE_ACCESS; 404 400 alias OBJECTS_AND_NAME_A OBJECTS_AND_NAME_; 405 - static if (WINVER >= 0x501) { 401 + static if (_WIN32_WINNT >= 0x501) { 406 402 alias INHERITED_FROMA INHERITED_FROM; 407 403 } 408 404 } 409 405 410 406 alias TRUSTEE TRUSTEE_; 411 407 alias TRUSTEE* PTRUSTEE, PTRUSTEE_; 412 408 alias ACTRL_ACCESS* PACTRL_ACCESS; ................................................................................ 415 411 alias ACTRL_ACCESS_ENTRY* PACTRL_ACCESS_ENTRY; 416 412 alias ACTRL_AUDIT* PACTRL_AUDIT; 417 413 alias ACTRL_CONTROL_INFO* PACTRL_CONTROL_INFO; 418 414 alias EXPLICIT_ACCESS EXPLICIT_ACCESS_; 419 415 alias EXPLICIT_ACCESS* PEXPLICIT_ACCESS, PEXPLICIT_ACCESS_; 420 416 alias TRUSTEE_ACCESS* PTRUSTEE_ACCESS; 421 417 alias OBJECTS_AND_NAME_* POBJECTS_AND_NAME_; 422 -static if (WINVER >= 0x501) { 418 +static if (_WIN32_WINNT >= 0x501) { 423 419 alias INHERITED_FROM* PINHERITED_FROM; 424 420 }

Modified src/win32/aclapi.d from [dc98e950dc2783b3] to [c097a51ee1c3b3d3].

5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * by Stewart Gordon * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.aclapi; 12 -pragma(lib, "advapi32.lib"); 12 +pragma(lib, "advapi32"); 13 13 14 14 import win32.windows, win32.accctrl; 15 15 16 -static assert (_WIN32_WINNT_ONLY, 17 - "win32.aclapi is available only if version WindowsNTonly, WindowsXP, " 18 - "Windows2003 or WindowsVista is set"); 19 - 20 16 extern (Windows) { 21 17 VOID BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A, LPSTR, DWORD, 22 18 ACCESS_MODE, DWORD); 23 19 VOID BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W, LPWSTR, DWORD, 24 20 ACCESS_MODE, DWORD); 25 21 DWORD BuildSecurityDescriptorA(PTRUSTEE_A, PTRUSTEE_A , ULONG, 26 22 PEXPLICIT_ACCESS_A, ULONG, PEXPLICIT_ACCESS_A, PSECURITY_DESCRIPTOR, ................................................................................ 44 40 PACCESS_MASK); 45 41 DWORD GetAuditedPermissionsFromAclW(PACL, PTRUSTEE_W, PACCESS_MASK, 46 42 PACCESS_MASK); 47 43 DWORD GetEffectiveRightsFromAclA(PACL, PTRUSTEE_A, PACCESS_MASK); 48 44 DWORD GetEffectiveRightsFromAclW(PACL, PTRUSTEE_W, PACCESS_MASK); 49 45 DWORD GetExplicitEntriesFromAclA(PACL, PULONG, PEXPLICIT_ACCESS_A*); 50 46 DWORD GetExplicitEntriesFromAclW(PACL, PULONG, PEXPLICIT_ACCESS_W*); 51 - static if (WINVER >= 0x501) { 47 + static if (_WIN32_WINNT >= 0x501) { 52 48 DWORD GetInheritanceSourceA(LPSTR, SE_OBJECT_TYPE, 53 49 SECURITY_INFORMATION, BOOL, GUID**, DWORD, PACL, void*, 54 50 PGENERIC_MAPPING, PINHERITED_FROMA); 55 51 DWORD GetInheritanceSourceW(LPWSTR, SE_OBJECT_TYPE, 56 52 SECURITY_INFORMATION, BOOL, GUID**, DWORD, PACL, void*, 57 53 PGENERIC_MAPPING, PINHERITED_FROMW); 58 54 }

Modified src/win32/aclui.d from [817cc0a842105b34] to [b9488d42782563c4].

5 5 * * 6 6 * Translated from MinGW API for MS-Windows 3.10 * 7 7 * by Stewart Gordon * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.aclui; 12 -pragma(lib, "aclui.lib"); 12 +pragma(lib, "aclui"); 13 13 14 14 private import win32.w32api; 15 15 16 -static assert (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500, 17 - "win32.aclui is available only if version WindowsXP, Windows2003 " 18 - "or WindowsVista is set, or both Windows2000 and WindowsNTonly are set"); 16 +static assert (_WIN32_WINNT >= 0x500, 17 + "win32.aclui is available only if version Windows2000, WindowsXP, Windows2003 " 18 + "or WindowsVista is set"); 19 19 20 20 import win32.accctrl, win32.commctrl, win32.objbase; 21 21 private import win32.basetyps, win32.prsht, win32.unknwn, win32.windef, 22 22 win32.winuser; 23 23 24 24 25 25 struct SI_OBJECT_INFO { ................................................................................ 57 57 SI_RESET_OWNER = 0x00100000, 58 58 SI_NO_ADDITIONAL_PERMISSION = 0x00200000, 59 59 SI_MAY_WRITE = 0x10000000, 60 60 SI_EDIT_ALL = SI_EDIT_PERMS | SI_EDIT_OWNER 61 61 | SI_EDIT_AUDITS; 62 62 63 63 struct SI_ACCESS { 64 - CPtr!(GUID) pguid; 65 - ACCESS_MASK mask; 66 - LPCWSTR pszName; 67 - DWORD dwFlags; 64 + const(GUID)* pguid; 65 + ACCESS_MASK mask; 66 + LPCWSTR pszName; 67 + DWORD dwFlags; 68 68 } 69 69 alias SI_ACCESS* PSI_ACCESS; 70 70 71 71 // values for SI_ACCESS.dwFlags 72 72 const DWORD 73 73 SI_ACCESS_SPECIFIC = 0x00010000, 74 74 SI_ACCESS_GENERAL = 0x00020000, 75 75 SI_ACCESS_CONTAINER = 0x00040000, 76 76 SI_ACCESS_PROPERTY = 0x00080000; 77 77 78 78 79 79 struct SI_INHERIT_TYPE { 80 - CPtr!(GUID) pguid; 81 - ULONG dwFlags; 82 - LPCWSTR pszName; 80 + const(GUID)* pguid; 81 + ULONG dwFlags; 82 + LPCWSTR pszName; 83 83 } 84 84 alias SI_INHERIT_TYPE* PSI_INHERIT_TYPE; 85 85 86 86 /* values for SI_INHERIT_TYPE.dwFlags 87 87 INHERIT_ONLY_ACE, CONTAINER_INHERIT_ACE, OBJECT_INHERIT_ACE 88 88 defined elsewhere */ 89 89 ................................................................................ 96 96 97 97 const uint PSPCB_SI_INITDIALOG = WM_USER + 1; 98 98 99 99 interface ISecurityInformation : IUnknown { 100 100 HRESULT GetObjectInformation(PSI_OBJECT_INFO); 101 101 HRESULT GetSecurity(SECURITY_INFORMATION, PSECURITY_DESCRIPTOR*, BOOL); 102 102 HRESULT SetSecurity(SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 103 - HRESULT GetAccessRights(CPtr!(GUID), DWORD, PSI_ACCESS*, ULONG*, ULONG*); 104 - HRESULT MapGeneric(CPtr!(GUID), UCHAR*, ACCESS_MASK*); 103 + HRESULT GetAccessRights(const(GUID)*, DWORD, PSI_ACCESS*, ULONG*, ULONG*); 104 + HRESULT MapGeneric(const(GUID)*, UCHAR*, ACCESS_MASK*); 105 105 HRESULT GetInheritTypes(PSI_INHERIT_TYPE*, ULONG*); 106 106 HRESULT PropertySheetPageCallback(HWND, UINT, SI_PAGE_TYPE); 107 107 } 108 -alias ISecurityInformation* LPSECURITYINFO; 108 +alias ISecurityInformation LPSECURITYINFO; 109 109 110 110 /* Comment from MinGW 111 111 * TODO: ISecurityInformation2, IEffectivePermission, ISecurityObjectTypeInfo 112 112 */ 113 113 114 114 // FIXME: linkage attribute? 115 115 extern (C) /+DECLSPEC_IMPORT+/ extern const IID IID_ISecurityInformation; 116 116 117 117 extern (Windows) { 118 118 HPROPSHEETPAGE CreateSecurityPage(LPSECURITYINFO psi); 119 119 BOOL EditSecurity(HWND hwndOwner, LPSECURITYINFO psi); 120 120 }

Modified src/win32/basetsd.d from [2d9ec241e2f4195d] to [386a11e840358068].

8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.basetsd; 12 12 13 13 /* This template is used in these modules to declare constant pointer types, 14 14 * in order to support both D 1.x and 2.x. 15 + * Since removed - now supporting only D2 15 16 */ 16 -template CPtr(T) { 17 +/*template CPtr(T) { 17 18 version (D_Version2) { 18 19 // must use mixin so that it doesn't cause a syntax error under D1 19 20 mixin("alias const(T)* CPtr;"); 20 21 } else { 21 22 alias T* CPtr; 22 23 } 24 +}*/ 25 + 26 +/* [CyberShadow VP 2011.12.22] typedef is now deprecated in D2. 27 + */ 28 +template TypeDef(T) { 29 + version (D_Version2) { 30 + alias T TypeDef; 31 + } else { 32 + // must use mixin so that it doesn't cause a deprecation error under D2 33 + mixin("typedef T TypeDef;"); 34 + } 23 35 } 24 36 25 37 // [SnakE 2009-02-23] Moved HANDLE definition here from winnt.d to avoid 26 38 // 'forwatd template reference' to CPtr from winnt.d caused by a circular 27 39 // import. 28 40 29 -alias void* HANDLE; 41 +alias TypeDef!(void*) HANDLE; 42 +/+struct HANDLE { 43 + const(void)* h; 44 + alias h this; 45 +}+/ 30 46 47 +package template DECLARE_HANDLE(string name, base = HANDLE) { 48 + mixin ("alias " ~ base.stringof ~ " " ~ name ~ ";"); 49 +} 31 50 alias HANDLE* PHANDLE, LPHANDLE; 32 51 33 52 version (Win64) { 34 53 alias long __int3264; 35 54 const ulong ADDRESS_TAG_BIT = 0x40000000000; 36 55 37 56 alias long INT_PTR, LONG_PTR; ................................................................................ 39 58 alias ulong UINT_PTR, ULONG_PTR, HANDLE_PTR; 40 59 alias ulong* PUINT_PTR, PULONG_PTR; 41 60 alias int HALF_PTR; 42 61 alias int* PHALF_PTR; 43 62 alias uint UHALF_PTR; 44 63 alias uint* PUHALF_PTR; 45 64 46 - /* *To* functions are conditioned out in MinGW. 47 - * Presumably they're not working/tested yet. Comment: 48 - TODO when WIN64 is here 49 - */ 65 + uint HandleToULong(void* h) { return(cast(uint) cast(ULONG_PTR) h); } 66 + int HandleToLong(void* h) { return(cast(int) cast(LONG_PTR) h); } 67 + void* ULongToHandle(uint h) { return(cast(void*) cast(UINT_PTR) h); } 68 + void* LongToHandle(int h) { return(cast(void*) cast(INT_PTR) h); } 69 + uint PtrToUlong(void* p) { return(cast(uint) cast(ULONG_PTR) p); } 70 + uint PtrToUint(void* p) { return(cast(uint) cast(UINT_PTR) p); } 71 + ushort PtrToUshort(void* p) { return(cast(ushort) cast(uint) cast(ULONG_PTR) p); } 72 + int PtrToLong(void* p) { return(cast(int) cast(LONG_PTR) p); } 73 + int PtrToInt(void* p) { return(cast(int) cast(INT_PTR) p); } 74 + short PtrToShort(void* p) { return(cast(short) cast(int) cast(LONG_PTR) p); } 75 + void* IntToPtr(int i) { return(cast(void*) cast(INT_PTR) i); } 76 + void* UIntToPtr(uint ui) { return(cast(void*) cast(UINT_PTR) ui); } 77 + void* LongToPtr(int l) { return(cast(void*) cast(LONG_PTR) l); } 78 + void* ULongToPtr(uint ul) { return(cast(void*) cast(ULONG_PTR) ul); } 79 + 50 80 } else { 51 81 alias int __int3264; 52 82 const uint ADDRESS_TAG_BIT = 0x80000000; 53 83 54 84 alias int INT_PTR, LONG_PTR; 55 85 alias int* PINT_PTR, PLONG_PTR; 56 86 alias uint UINT_PTR, ULONG_PTR, HANDLE_PTR; ................................................................................ 58 88 alias short HALF_PTR; 59 89 alias short* PHALF_PTR; 60 90 alias ushort UHALF_PTR; 61 91 alias ushort* PUHALF_PTR; 62 92 63 93 uint HandleToUlong(HANDLE h) { return cast(uint) h; } 64 94 int HandleToLong(HANDLE h) { return cast(int) h; } 65 - HANDLE LongToHandle(LONG_PTR h) { return cast(HANDLE) h; } 66 - uint PtrToUlong(CPtr!(void) p) { return cast(uint) p; } 67 - uint PtrToUint(CPtr!(void) p) { return cast(uint) p; } 68 - int PtrToInt(CPtr!(void) p) { return cast(int) p; } 69 - ushort PtrToUshort(CPtr!(void) p) { return cast(ushort) p; } 70 - short PtrToShort(CPtr!(void) p) { return cast(short) p; } 95 + HANDLE LongToHandle(LONG_PTR h) { return cast(HANDLE)h; } 96 + uint PtrToUlong(const(void)* p) { return cast(uint) p; } 97 + uint PtrToUint(const(void)* p) { return cast(uint) p; } 98 + int PtrToInt(const(void)* p) { return cast(int) p; } 99 + ushort PtrToUshort(const(void)* p) { return cast(ushort) p; } 100 + short PtrToShort(const(void)* p) { return cast(short) p; } 71 101 void* IntToPtr(int i) { return cast(void*) i; } 72 102 void* UIntToPtr(uint ui) { return cast(void*) ui; } 73 103 alias IntToPtr LongToPtr; 74 104 alias UIntToPtr ULongToPtr; 75 105 } 76 106 77 107 alias UIntToPtr UintToPtr, UlongToPtr;

Modified src/win32/basetyps.d from [29a55976d90d530f] to [71cde5f6219de3f2].

15 15 DWORD Data1; 16 16 WORD Data2; 17 17 WORD Data3; 18 18 BYTE[8] Data4; 19 19 } 20 20 alias GUID UUID, IID, CLSID, FMTID, uuid_t; 21 21 alias GUID* LPGUID, LPCLSID, LPIID; 22 -alias CPtr!(GUID) REFGUID, REFIID, REFCLSID, REFFMTID; 22 +alias const(GUID)* REFGUID, REFIID, REFCLSID, REFFMTID; 23 23 24 24 alias uint error_status_t, PROPID;

Modified src/win32/cderr.d from [50d169f239b9620b] to [dddd665a5513f5f9].

Modified src/win32/cguid.d from [100f7066a1d649ec] to [fa7b5ef398f5d977].

Modified src/win32/comcat.d from [132f4d39301cf777] to [0951e85dcd3ca054].

10 10 \***********************************************************************/ 11 11 module win32.comcat; 12 12 13 13 import win32.windows, win32.ole2; 14 14 private import win32.basetyps, win32.cguid, win32.objbase, win32.unknwn, 15 15 win32.windef, win32.wtypes; 16 16 17 -alias IEnumGUID* LPENUMGUID; 17 +alias IEnumGUID LPENUMGUID; 18 18 19 19 interface IEnumGUID : IUnknown { 20 20 HRESULT Next(ULONG, GUID*, ULONG*); 21 21 HRESULT Skip(ULONG); 22 22 HRESULT Reset(); 23 23 HRESULT Clone(LPENUMGUID*); 24 24 } ................................................................................ 48 48 HRESULT GetCategoryDesc(REFCATID, LCID, PWCHAR*); 49 49 HRESULT EnumClassesOfCategories(ULONG, CATID*, ULONG, CATID*, 50 50 LPENUMCLSID*); 51 51 HRESULT IsClassOfCategories(REFCLSID, ULONG, CATID*, ULONG, CATID*); 52 52 HRESULT EnumImplCategoriesOfClass(REFCLSID, LPENUMCATID*); 53 53 HRESULT EnumReqCategoriesOfClass(REFCLSID, LPENUMCATID*); 54 54 } 55 -alias ICatInformation* LPCATINFORMATION; 55 +alias ICatInformation LPCATINFORMATION; 56 56 57 57 interface ICatRegister : IUnknown { 58 58 HRESULT RegisterCategories(ULONG, CATEGORYINFO*); 59 59 HRESULT UnRegisterCategories(ULONG, CATID*); 60 60 HRESULT RegisterClassImplCategories(REFCLSID, ULONG, CATID*); 61 61 HRESULT UnRegisterClassImplCategories(REFCLSID, ULONG, CATID*); 62 62 HRESULT RegisterClassReqCategories(REFCLSID, ULONG, CATID*); 63 63 HRESULT UnRegisterClassReqCategories(REFCLSID, ULONG, CATID*); 64 64 } 65 -alias ICatRegister* LPCATREGISTER; 65 +alias ICatRegister LPCATREGISTER; 66 66 67 67 interface IEnumCATEGORYINFO : IUnknown { 68 68 HRESULT Next(ULONG, CATEGORYINFO*, ULONG*); 69 69 HRESULT Skip(ULONG); 70 70 HRESULT Reset(); 71 71 HRESULT Clone(LPENUMCATEGORYINFO*); 72 72 } 73 -alias IEnumCATEGORYINFO* LPENUMCATEGORYINFO; 73 +alias IEnumCATEGORYINFO LPENUMCATEGORYINFO;

Modified src/win32/commctrl.d from [4681e85cdf159780] to [62776dff0a2d0b7a].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW API for MS-Windows 3.12 * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.commctrl; 11 -pragma(lib, "comctl32.lib"); 11 +pragma(lib, "comctl32"); 12 12 13 13 private import win32.w32api, win32.windef, win32.winuser; 14 14 private import win32.winbase; // for SYSTEMTIME 15 15 private import win32.objfwd; // for LPSTREAM 16 16 17 17 import win32.prsht; 18 18 ................................................................................ 53 53 HDM_FIRST = 0x1200 54 54 } 55 55 56 56 enum { 57 57 ACM_OPENA = WM_USER + 100, 58 58 ACM_PLAY = WM_USER + 101, 59 59 ACM_STOP = WM_USER + 102, 60 - ACM_OPENW = WM_USER + 103 60 + ACM_OPENW = WM_USER + 103, 61 + ACM_ISPLAYING = WM_USER + 104 61 62 } 62 63 63 64 enum { 64 65 ACN_START = 1, 65 66 ACN_STOP 66 67 } 67 68 ................................................................................ 277 278 SBN_LAST = -899U, 278 279 PGN_FIRST = -900U, 279 280 PGN_LAST = -950U, 280 281 PGN_SCROLL = PGN_FIRST-1, 281 282 PGN_CALCSIZE = PGN_FIRST-2 282 283 } 283 284 } 285 + 286 +static if (_WIN32_IE >= 0x500) { 287 + enum { 288 + WMN_FIRST = -1000U, 289 + WMN_LAST = -1200U, 290 + } 291 +} 292 + 293 +static if (_WIN32_WINNT >= 0x501) 294 +{ 295 + enum { 296 + BCN_FIRST = -1250U, 297 + BCN_LAST = -1350U, 298 + } 299 +} 300 + 301 +static if (_WIN32_WINNT >= 0x600) 302 +{ 303 + enum { 304 + TRBN_FIRST = -1501U, 305 + TRBN_LAST = -1519U, 306 + } 307 +} 284 308 285 309 enum { 286 310 HDI_WIDTH = 1, 287 311 HDI_HEIGHT = 1, 288 312 HDI_TEXT = 2, 289 313 HDI_FORMAT = 4, 290 314 HDI_LPARAM = 8, ................................................................................ 374 398 } 375 399 } 376 400 static if (_WIN32_IE >= 0x400) { 377 401 enum { 378 402 HDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT, 379 403 HDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT 380 404 } 405 +} 406 +static if (_WIN32_IE >= 0x500) { 407 + enum { 408 + HDM_SETBITMAPMARGIN = HDM_FIRST + 20, 409 + HDM_GETBITMAPMARGIN = HDM_FIRST + 21, 410 + HDM_SETFILTERCHANGETIMEOUT = HDM_FIRST + 22, 411 + HDM_EDITFILTER = HDM_FIRST + 23, 412 + HDM_CLEARFILTER = HDM_FIRST + 24, 413 + } 414 +} 415 +static if (_WIN32_IE >= 0x600) { 416 + enum { 417 + HDM_GETITEMDROPDOWNRECT = HDM_FIRST + 25, 418 + HDM_GETOVERFLOWRECT = HDM_FIRST + 26, 419 + HDM_GETFOCUSEDITEM = HDM_FIRST + 27, 420 + HDM_SETFOCUSEDITEM = HDM_FIRST + 28, 421 + } 381 422 } 382 423 383 424 enum { 384 425 HHT_NOWHERE = 1, 385 426 HHT_ONHEADER = 2, 386 427 HHT_ONDIVIDER = 4, 387 428 HHT_ONDIVOPEN = 8, ................................................................................ 709 750 TB_GETPADDING, 710 751 TB_SETPADDING, 711 752 TB_SETINSERTMARKCOLOR, 712 753 TB_GETINSERTMARKCOLOR, 713 754 TB_MAPACCELERATORW, 714 755 TB_GETSTRINGW, 715 756 TB_GETSTRINGA, // = WM_USER + 92 757 + TB_SETHOTITEM2 = WM_USER + 94, 758 + TB_SETLISTGAP = WM_USER + 96, 759 + TB_GETIMAGELISTCOUNT = WM_USER + 98, 760 + TB_GETIDEALSIZE = WM_USER + 99, 761 + //TB_TRANSLATEACCELERATOR = CCM_TRANSLATEACCELERATOR, 716 762 TB_SETCOLORSCHEME = CCM_SETCOLORSCHEME, 717 763 TB_GETCOLORSCHEME = CCM_GETCOLORSCHEME, 718 764 TB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT, 719 765 TB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT 720 766 } 721 767 } 768 + 769 +static if (_WIN32_WINNT >= 0x501) { 770 + enum { 771 + TB_GETMETRICS = WM_USER + 101, 772 + TB_SETMETRICS = WM_USER + 102, 773 + } 774 +} 775 + 776 +static if (_WIN32_WINNT >= 0x600) { 777 + enum { 778 + TB_GETITEMDROPDOWNRECT = WM_USER + 103, 779 + TB_SETPRESSEDIMAGELIST = WM_USER + 104, 780 + TB_GETPRESSEDIMAGELIST = WM_USER + 105, 781 + } 782 +} 722 783 723 784 const TBBF_LARGE = 1; 724 785 725 786 enum { 726 787 TBN_GETBUTTONINFOA = TBN_FIRST -0, 727 788 TBN_BEGINDRAG = TBN_FIRST -1, 728 789 TBN_ENDDRAG = TBN_FIRST -2, ................................................................................ 879 940 enum { 880 941 TTM_UPDATE = WM_USER + 29, 881 942 TTM_GETBUBBLESIZE, 882 943 TTM_ADJUSTRECT, 883 944 TTM_SETTITLEA, 884 945 TTM_SETTITLEW // = WM_USER + 33 885 946 } 947 + static if (_WIN32_IE >= 0x500) 948 + { 949 + alias TTM_SETTITLEW TTM_SETTITLE; 950 + } 951 + else 952 + { 953 + alias TTM_SETTITLEA TTM_SETTITLE; 954 + } 955 +} 956 + 957 +static if (_WIN32_WINNT >= 0x501) { 958 + enum { 959 + TTM_POPUP = (WM_USER + 34), 960 + TTM_GETTITLE = (WM_USER + 35), 961 + } 886 962 } 887 963 888 964 enum { 889 965 TTN_GETDISPINFOA = TTN_FIRST - 0, 890 966 TTN_GETDISPINFOW = TTN_FIRST - 10, 891 967 TTN_NEEDTEXTA = TTN_GETDISPINFOA, 892 968 TTN_NEEDTEXTW = TTN_GETDISPINFOW, ................................................................................ 1105 1181 PBM_STEPIT, // = WM_USER + 5 1106 1182 PBM_SETRANGE32 = 1030, 1107 1183 PBM_GETRANGE, 1108 1184 PBM_GETPOS, 1109 1185 PBM_SETBARCOLOR, // = 1033 1110 1186 PBM_SETBKCOLOR = CCM_SETBKCOLOR 1111 1187 } 1188 + 1189 +static if (_WIN32_WINNT >= 0x501) { 1190 + enum { 1191 + PBM_SETMARQUEE = WM_USER + 10, 1192 + } 1193 +} 1194 + 1195 +static if (_WIN32_WINNT >= 0x600) { 1196 + enum { 1197 + PBM_GETSTEP = WM_USER + 13, 1198 + PBM_GETBKCOLOR, 1199 + PBM_GETBARCOLOR, 1200 + PBM_SETSTATE, 1201 + PBM_GETSTATE, 1202 + } 1203 +} 1112 1204 1113 1205 enum { 1114 1206 PBS_SMOOTH = 1, 1115 1207 PBS_VERTICAL = 4 1116 1208 } 1209 + 1210 +static if (_WIN32_WINNT >= 0x501) { 1211 + enum { 1212 + PBS_MARQUEE = 8, 1213 + } 1214 +} 1215 + 1216 +static if (_WIN32_WINNT >= 0x600) { 1217 + enum { 1218 + PBS_SMOOTHREVERSE = 16, 1219 + } 1220 +} 1117 1221 1118 1222 enum { 1119 1223 LVS_ICON, 1120 1224 LVS_REPORT, 1121 1225 LVS_SMALLICON, 1122 1226 LVS_LIST, // = 3 1123 1227 LVS_TYPEMASK = 3, ................................................................................ 1254 1358 enum { 1255 1359 LVM_GETBKCOLOR = LVM_FIRST, 1256 1360 LVM_SETBKCOLOR, 1257 1361 LVM_GETIMAGELIST, 1258 1362 LVM_SETIMAGELIST, 1259 1363 LVM_GETITEMCOUNT, // = LVM_FIRST + 4 1260 1364 LVM_SORTITEMSEX = LVM_FIRST + 81, 1365 + LVM_GETGROUPSTATE = LVM_FIRST + 92, 1366 + LVM_GETFOCUSEDGROUP, 1367 + LVM_GETGROUPRECT = LVM_FIRST + 98, 1261 1368 LVM_SETVIEW = LVM_FIRST + 142, 1262 1369 LVM_GETVIEW, // = LVM_FIRST + 143 1263 1370 LVM_INSERTGROUP = LVM_FIRST + 145, 1264 1371 LVM_SETGROUPINFO = LVM_FIRST + 147, 1265 1372 LVM_GETGROUPINFO = LVM_FIRST + 149, 1266 1373 LVM_REMOVEGROUP, 1267 1374 LVM_MOVEGROUP, // = LVM_FIRST + 151 1375 + LVM_GETGROUPCOUNT, 1376 + LVM_GETGROUPINFOBYINDEX, 1377 + LVM_MOVEITEMTOGROUP, 1268 1378 LVM_SETGROUPMETRICS = LVM_FIRST + 155, 1269 1379 LVM_GETGROUPMETRICS, 1270 1380 LVM_ENABLEGROUPVIEW, 1271 1381 LVM_SORTGROUPS, 1272 1382 LVM_INSERTGROUPSORTED, 1273 1383 LVM_REMOVEALLGROUPS, 1274 1384 LVM_HASGROUP, ................................................................................ 1284 1394 LVM_GETINSERTMARKCOLOR, // = LVM_FIRST + 171 1285 1395 LVM_SETINFOTIP = LVM_FIRST + 173, 1286 1396 LVM_GETSELECTEDCOLUMN, 1287 1397 LVM_ISGROUPVIEWENABLED, 1288 1398 LVM_GETOUTLINECOLOR, 1289 1399 LVM_SETOUTLINECOLOR, // = LVM_FIRST + 177 1290 1400 LVM_CANCELEDITLABEL = LVM_FIRST + 179, 1291 - LVM_MAPIDTOINDEX = LVM_FIRST + 181 1401 + LVM_MAPINDEXTOID = LVM_FIRST + 180, 1402 + LVM_MAPIDTOINDEX = LVM_FIRST + 181, 1403 + LVM_ISITEMVISIBLE = LVM_FIRST + 182, 1292 1404 } 1293 1405 1294 1406 static if (_WIN32_WINNT >= 0x501) { 1295 1407 enum { 1296 1408 LVM_SETSELECTEDCOLUMN = LVM_FIRST + 140 1297 1409 } 1298 1410 } 1411 + 1412 +static if (_WIN32_WINNT >= 0x600) { 1413 + enum { 1414 + LVM_GETEMPTYTEXT = LVM_FIRST + 204, 1415 + LVM_GETFOOTERRECT = LVM_FIRST + 205, 1416 + LVM_GETFOOTERINFO = LVM_FIRST + 206, 1417 + LVM_GETFOOTERITEMRECT = LVM_FIRST + 207, 1418 + LVM_GETFOOTERITEM = (LVM_FIRST + 208), 1419 + LVM_GETITEMINDEXRECT = (LVM_FIRST + 209), 1420 + LVM_SETITEMINDEXSTATE = (LVM_FIRST + 210), 1421 + LVM_GETNEXTITEMINDEX = (LVM_FIRST + 211), 1422 + } 1423 +} 1299 1424 1300 1425 enum { 1301 1426 LVIF_TEXT = 1, 1302 1427 LVIF_IMAGE = 2, 1303 1428 LVIF_PARAM = 4, 1304 1429 LVIF_STATE = 8 1305 1430 } ................................................................................ 1612 1737 TVIS_USERMASK = 0xF000 1613 1738 } 1614 1739 1615 1740 enum { 1616 1741 I_CHILDRENCALLBACK = -1 1617 1742 } 1618 1743 1619 -alias HANDLE HTREEITEM; 1744 +mixin DECLARE_HANDLE!("HTREEITEM"); 1745 +mixin DECLARE_HANDLE!("HIMAGELIST"); 1620 1746 1747 +version(Win64) 1748 +{ 1749 +const HTREEITEM 1750 + TVI_ROOT = cast(HTREEITEM) cast(ULONG_PTR)-0x10000, 1751 + TVI_FIRST = cast(HTREEITEM) cast(ULONG_PTR)-0xffff, 1752 + TVI_LAST = cast(HTREEITEM) cast(ULONG_PTR)-0xfffe, 1753 + TVI_SORT = cast(HTREEITEM) cast(ULONG_PTR)-0xfffd; 1754 +} else { 1621 1755 const HTREEITEM 1622 1756 TVI_ROOT = cast(HTREEITEM) 0xFFFF0000, 1623 1757 TVI_FIRST = cast(HTREEITEM) 0xFFFF0001, 1624 1758 TVI_LAST = cast(HTREEITEM) 0xFFFF0002, 1625 1759 TVI_SORT = cast(HTREEITEM) 0xFFFF0003; 1760 +} 1626 1761 1627 1762 enum { 1628 1763 TVSIL_NORMAL = 0, 1629 1764 TVSIL_STATE = 2 1630 1765 } 1631 1766 1632 1767 enum { ................................................................................ 1688 1823 static if (_WIN32_IE >= 0x500) { 1689 1824 enum { 1690 1825 TVM_GETITEMSTATE = TV_FIRST + 39, 1691 1826 TVM_SETLINECOLOR = TV_FIRST + 40, 1692 1827 TVM_GETLINECOLOR = TV_FIRST + 41 1693 1828 } 1694 1829 } 1830 + 1831 +static if (_WIN32_IE >= 0x501) { 1832 + enum { 1833 + TVM_MAPACCIDTOHTREEITEM = TV_FIRST + 42, 1834 + TVM_MAPHTREEITEMTOACCID = TV_FIRST + 43, 1835 + TVM_SETEXTENDEDSTYLE = TV_FIRST + 44, 1836 + TVM_GETEXTENDEDSTYLE = TV_FIRST + 45, 1837 + TVM_SETAUTOSCROLLINFO = TV_FIRST + 59 1838 + } 1839 +} 1840 + 1841 +static if (_WIN32_IE >= 0x600) { 1842 + enum { 1843 + TVM_GETSELECTEDCOUNT = TV_FIRST + 70, 1844 + TVM_SHOWINFOTIP = TV_FIRST + 71, 1845 + TVM_GETITEMPARTRECT = TV_FIRST + 72, 1846 + } 1847 +} 1695 1848 1696 1849 enum { 1697 1850 TVE_COLLAPSE = 1, 1698 1851 TVE_EXPAND = 2, 1699 1852 TVE_TOGGLE = 3, 1700 1853 TVE_COLLAPSERESET = 0x8000 1701 1854 } ................................................................................ 1726 1879 } 1727 1880 1728 1881 static if (_WIN32_IE >= 0x400) { 1729 1882 enum { 1730 1883 TVGN_LASTVISIBLE = 10 1731 1884 } 1732 1885 } 1886 + 1887 +static if (_WIN32_IE >= 0x600) { 1888 + enum { 1889 + TVGN_NEXTSELECTED = 11 1890 + } 1891 +} 1733 1892 1734 1893 enum { 1735 1894 TVN_SELCHANGINGA = TVN_FIRST - 1, 1736 1895 TVN_SELCHANGEDA = TVN_FIRST - 2, 1737 1896 TVN_GETDISPINFOA = TVN_FIRST - 3, 1738 1897 TVN_SETDISPINFOA = TVN_FIRST - 4, 1739 1898 TVN_ITEMEXPANDINGA = TVN_FIRST - 5, ................................................................................ 1933 2092 CCM_GETVERSION = 0x2008, 1934 2093 CCM_SETNOTIFYWINDOW = 0x2009 1935 2094 }*/ 1936 2095 1937 2096 static if (_WIN32_WINNT >= 0x501) { 1938 2097 enum { 1939 2098 CCM_SETWINDOWTHEME = 0x200b, 1940 - CCM_DPISCALE = 0x200c 2099 + CCM_DPISCALE = 0x200c, 2100 + 2101 + RB_GETBANDMARGINS = WM_USER + 40, 2102 + RB_SETWINDOWTHEME = CCM_SETWINDOWTHEME, 2103 + TB_SETWINDOWTHEME = CCM_SETWINDOWTHEME, 2104 + TTM_SETWINDOWTHEME = CCM_SETWINDOWTHEME, 1941 2105 } 1942 2106 } 1943 2107 1944 2108 enum { 1945 2109 ICC_LISTVIEW_CLASSES = 1, 1946 2110 ICC_TREEVIEW_CLASSES = 2, 1947 2111 ICC_BAR_CLASSES = 4, ................................................................................ 2018 2182 } else { 2019 2183 enum { 2020 2184 MCS_NOTODAY = 0x0008 2021 2185 } 2022 2186 } 2023 2187 2024 2188 enum { 2189 + DTM_FIRST = 0x10000, 2025 2190 DTM_GETSYSTEMTIME = 0x1001, 2026 2191 DTM_SETSYSTEMTIME = 0x1002, 2027 2192 DTM_GETRANGE = 0x1003, 2028 2193 DTM_SETRANGE = 0x1004, 2029 2194 DTM_SETFORMATA = 0x1005, 2030 2195 DTM_SETMCCOLOR = 0x1006, 2031 2196 DTM_GETMCCOLOR = 0x1007, 2032 2197 DTM_GETMONTHCAL = 0x1008, 2033 2198 DTM_SETMCFONT = 0x1009, 2034 2199 DTM_GETMCFONT = 0x100a, 2035 2200 DTM_SETFORMATW = 0x1050 2036 2201 } 2202 + 2203 +static if (_WIN32_WINNT >= 0x600) { 2204 + enum { 2205 + DTM_SETMCSTYLE = DTM_FIRST + 11, 2206 + DTM_GETMCSTYLE, 2207 + DTM_CLOSEMONTHCAL, 2208 + DTM_GETDATETIMEPICKERINFO, 2209 + DTM_GETIDEALSIZE, 2210 + } 2211 +} 2037 2212 2038 2213 enum { 2039 2214 DTN_USERSTRINGA = -758U, 2040 2215 DTN_USERSTRINGW = -745U, 2041 2216 DTN_WMKEYDOWNA = -757U, 2042 2217 DTN_WMKEYDOWNW = -744U, 2043 2218 DTN_FORMATA = -756U, ................................................................................ 2046 2221 DTN_FORMATQUERYW = -742U, 2047 2222 DTN_DROPDOWN = -754U, 2048 2223 DTN_CLOSEUP = -753U, 2049 2224 DTN_DATETIMECHANGE = -759U, 2050 2225 } 2051 2226 2052 2227 enum { 2228 + MCM_FIRST = 0x1000, 2053 2229 MCM_GETCURSEL = 0x1001, 2054 2230 MCM_SETCURSEL = 0x1002, 2055 2231 MCM_GETMAXSELCOUNT = 0x1003, 2056 2232 MCM_SETMAXSELCOUNT = 0x1004, 2057 2233 MCM_GETSELRANGE = 0x1005, 2058 2234 MCM_SETSELRANGE = 0x1006, 2059 2235 MCM_GETMONTHRANGE = 0x1007, ................................................................................ 2070 2246 MCM_SETRANGE = 0x1012, 2071 2247 MCM_GETMONTHDELTA = 0x1013, 2072 2248 MCM_SETMONTHDELTA = 0x1014, 2073 2249 MCM_GETMAXTODAYWIDTH = 0x1015, 2074 2250 MCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT, 2075 2251 MCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT 2076 2252 } 2253 + 2254 +static if (_WIN32_WINNT >= 0x600) { 2255 + enum { 2256 + MCM_GETCURRENTVIEW = MCM_FIRST + 22, 2257 + MCM_GETCALENDARCOUNT, 2258 + MCM_GETCALENDARGRIDINFO, 2259 + MCM_GETCALID = MCM_FIRST + 27, 2260 + MCM_SETCALID, 2261 + MCM_SIZERECTTOMIN, 2262 + MCM_SETCALENDARBORDER, 2263 + MCM_GETCALENDARBORDER, 2264 + MCM_SETCURRENTVIEW, 2265 + } 2266 +} 2077 2267 2078 2268 enum { 2079 2269 MCN_SELCHANGE = -749U, 2080 2270 MCN_GETDAYSTATE = -747U, 2081 2271 MCN_SELECT = -746U 2082 2272 } 2083 2273 ................................................................................ 2355 2545 alias RB_GETBANDINFOA RB_GETBANDINFO; 2356 2546 } 2357 2547 } else { 2358 2548 enum { 2359 2549 RB_GETBANDINFO = WM_USER + 5 2360 2550 } 2361 2551 } 2552 + 2553 +static if (_WIN32_IE >= 0x500) { 2554 + enum { 2555 + RB_PUSHCHEVRON = WM_USER + 43, 2556 + } 2557 +} 2558 + 2559 +static if (_WIN32_IE >= 0x600) { 2560 + enum { 2561 + RB_SETEXTENDEDSTYLE = WM_USER + 41, 2562 + RB_GETEXTENDEDSTYLE = WM_USER + 42, 2563 + } 2564 +} 2565 + 2566 +static if (_WIN32_WINNT >= 0x500) { 2567 + enum { 2568 + RB_SETBANDWIDTH = WM_USER + 44, 2569 + } 2570 +} 2571 + 2572 +static if (_WIN32_WINNT >= 0x501) { 2573 + enum { 2574 + ECM_FIRST = 0x1500, 2575 + BCM_FIRST = 0x1600, 2576 + 2577 + BCM_GETIDEALSIZE = BCM_FIRST + 0x0001, 2578 + BCM_SETIMAGELIST = BCM_FIRST + 0x0002, 2579 + BCM_GETIMAGELIST = BCM_FIRST + 0x0003, 2580 + BCM_SETTEXTMARGIN = BCM_FIRST + 0x0004, 2581 + BCM_GETTEXTMARGIN = BCM_FIRST + 0x0005, 2582 + 2583 + BCN_HOTITEMCHANGE = BCN_FIRST + 0x0001, 2584 + } 2585 + 2586 + struct NMBCHOTITEM { 2587 + NMHDR hdr; 2588 + DWORD dwFlags; 2589 + } 2590 + alias NMBCHOTITEM* LPNMBCHOTITEM; 2591 +} 2592 + 2593 +static if(_WIN32_WINNT >= 0x600) { 2594 + enum { 2595 + BST_DROPDOWNPUSHED = 0x0400, 2596 + 2597 + BS_SPLITBUTTON = 0x0000_000C, 2598 + BS_DEFSPLITBUTTON = 0x0000_000D, 2599 + BS_COMMANDLINK = 0x0000_000E, 2600 + BS_DEFCOMMANDLINK = 0x0000_000F, 2601 + 2602 + BCSIF_GLYPH = 0x0001, 2603 + BCSIF_IMAGE = 0x0002, 2604 + BCSIF_STYLE = 0x0004, 2605 + BCSIF_SIZE = 0x0008, 2606 + 2607 + BCSS_NOSPLIT = 0x0001, 2608 + BCSS_STRETCH = 0x0002, 2609 + BCSS_ALIGNLEFT = 0x0004, 2610 + BCSS_IMAGE = 0x0008, 2611 + 2612 + BCM_SETDROPDOWNSTATE = BCM_FIRST + 0x0006, 2613 + BCM_SETSPLITINFO = BCM_FIRST + 0x0007, 2614 + BCM_GETSPLITINFO = BCM_FIRST + 0x0008, 2615 + BCM_SETNOTE = BCM_FIRST + 0x0009, 2616 + BCM_GETNOTE = BCM_FIRST + 0x000A, 2617 + BCM_GETNOTELENGTH = BCM_FIRST + 0x000B, 2618 + BCM_SETSHIELD = BCM_FIRST + 0x000C, 2619 + 2620 + BCN_DROPDOWN = BCN_FIRST + 0x0002, 2621 + } 2622 + 2623 + const HIMAGELIST BCCL_NOGLYPH = cast(HIMAGELIST)-1; 2624 + 2625 + struct BUTTON_SPLITINFO 2626 + { 2627 + UINT mask; 2628 + HIMAGELIST himlGlyph; 2629 + UINT uSplitStyle; 2630 + SIZE size; 2631 + } 2632 + alias BUTTON_SPLITINFO* PBUTTON_SPLITINFO; 2633 +} 2362 2634 2363 2635 enum { 2364 2636 CBEM_INSERTITEMA = WM_USER + 1, 2365 2637 CBEM_SETIMAGELIST, 2366 2638 CBEM_GETIMAGELIST, 2367 2639 CBEM_GETITEMA, 2368 2640 CBEM_SETITEMA, ................................................................................ 2384 2656 2385 2657 enum { 2386 2658 CBEM_HASEDITCHANGED = WM_USER + 10, 2387 2659 CBEM_INSERTITEMW = WM_USER + 11, 2388 2660 CBEM_SETITEMW = WM_USER + 12, 2389 2661 CBEM_GETITEMW = WM_USER + 13 2390 2662 } 2663 + 2664 +static if (_WIN32_WINNT >= 0x501) 2665 +{ 2666 + enum { 2667 + CBEM_SETWINDOWTHEME = CCM_SETWINDOWTHEME 2668 + } 2669 +} 2391 2670 2392 2671 enum { 2393 2672 DA_LAST = 0x7fffffff 2394 2673 } 2395 2674 2396 2675 enum { 2397 2676 DPA_APPEND = 0x7fffffff, ................................................................................ 2426 2705 WSB_PROP_MASK = 0xfff, 2427 2706 FSB_FLAT_MODE = 2, 2428 2707 FSB_ENCARTA_MODE = 1, 2429 2708 FSB_REGULAR_MODE = 0 2430 2709 } 2431 2710 } 2432 2711 2433 -static if (_WIN32_WINNT >= 0x0501) { 2712 +static if (_WIN32_WINNT >= 0x501) { 2434 2713 enum { 2435 2714 LIF_ITEMINDEX = 1, 2436 2715 LIF_STATE = 2, 2437 2716 LIF_ITEMID = 4, 2438 2717 LIF_URL = 8 2439 2718 } 2440 2719 ................................................................................ 2444 2723 LIS_VISITED = 4 2445 2724 } 2446 2725 2447 2726 enum { 2448 2727 LM_HITTEST = WM_USER + 768, 2449 2728 LM_GETIDEALHEIGHT, 2450 2729 LM_SETITEM, 2451 - LM_GETITEM // = WM_USER + 771 2730 + LM_GETITEM, // = WM_USER + 771 2731 + LM_GETIDEALSIZE = LM_GETIDEALHEIGHT, 2452 2732 } 2453 2733 2454 2734 const size_t MAX_LINKID_TEXT = 48; 2455 2735 const size_t L_MAX_URL_LENGTH = 2084; 2456 2736 } 2457 2737 2738 + 2739 +struct TBMETRICS { 2740 + UINT cbSize = TBMETRICS.sizeof; 2741 + DWORD dwMask; 2742 + int cxPad; 2743 + int cyPad; 2744 + int cxBarPad; 2745 + int cyBarPad; 2746 + int cxButtonSpacing; 2747 + int cyButtonSpacing; 2748 +} 2749 +alias TBMETRICS* LPTBMETRICS; 2750 + 2751 +static if (_WIN32_WINNT >= 0x501) { 2752 + struct TTGETTITLE { 2753 + DWORD dwSize = TTGETTITLE.sizeof; 2754 + UINT uTitleBitmap; 2755 + UINT cch; 2756 + WCHAR* pszTitle; 2757 + } 2758 + alias TTGETTITLE* PTTGETTITLE; 2759 +} 2760 + 2761 +static if (_WIN32_WINNT >= 0x600) { 2762 + struct MCGRIDINFO { 2763 + UINT cbSize; 2764 + DWORD dwPart; 2765 + DWORD dwFlags; 2766 + int iCalendar; 2767 + int iRow; 2768 + int iCol; 2769 + BOOL bSelected; 2770 + SYSTEMTIME stStart; 2771 + SYSTEMTIME stEnd; 2772 + RECT rc; 2773 + PWSTR pszName; 2774 + size_t cchName; 2775 + } 2776 + alias MCGRIDINFO* PMCGRIDINFO; 2777 + 2778 + struct DATETIMEPICKERINFO 2779 + { 2780 + DWORD cbSize; 2781 + RECT rcCheck; 2782 + DWORD stateCheck; 2783 + RECT rcButton; 2784 + DWORD stateButton; 2785 + HWND hwndEdit; 2786 + HWND hwndUD; 2787 + HWND hwndDropDown; 2788 + } 2789 + alias DATETIMEPICKERINFO* LPDATETIMEPICKERINFO; 2790 +} 2458 2791 2459 2792 struct COMBOBOXEXITEMA { 2460 2793 UINT mask; 2461 - int iItem; 2794 + INT_PTR iItem; 2462 2795 LPSTR pszText; 2463 2796 int cchTextMax; 2464 2797 int iImage; 2465 2798 int iSelectedImage; 2466 2799 int iOverlay; 2467 2800 int iIndent; 2468 2801 LPARAM lParam; 2469 2802 } 2470 -alias COMBOBOXEXITEMA* PCOMBOBOXEXITEMA; 2471 -alias CPtr!(COMBOBOXEXITEMA) PCCOMBOEXITEMA; 2803 +alias COMBOBOXEXITEMA* PCOMBOBOXEXITEMA; 2804 +alias const(COMBOBOXEXITEMA)* PCCOMBOEXITEMA; 2472 2805 2473 2806 struct COMBOBOXEXITEMW { 2474 2807 UINT mask; 2475 - int iItem; 2808 + INT_PTR iItem; 2476 2809 LPWSTR pszText; 2477 2810 int cchTextMax; 2478 2811 int iImage; 2479 2812 int iSelectedImage; 2480 2813 int iOverlay; 2481 2814 int iIndent; 2482 2815 LPARAM lParam; 2483 2816 } 2484 -alias COMBOBOXEXITEMW* PCOMBOBOXEXITEMW; 2485 -alias CPtr!(COMBOBOXEXITEMW) PCCOMBOEXITEMW; 2817 +alias COMBOBOXEXITEMW* PCOMBOBOXEXITEMW; 2818 +alias const(COMBOBOXEXITEMW)* PCCOMBOEXITEMW; 2486 2819 2487 2820 static if (_WIN32_IE >= 0x400) { 2488 2821 struct NMCOMBOBOXEXA { 2489 2822 NMHDR hdr; 2490 2823 COMBOBOXEXITEMA ceItem; 2491 2824 } 2492 2825 alias NMCOMBOBOXEXA* PNMCOMBOBOXEXA; ................................................................................ 2496 2829 COMBOBOXEXITEMW ceItem; 2497 2830 } 2498 2831 alias NMCOMBOBOXEXW* PNMCOMBOBOXEXW; 2499 2832 2500 2833 struct NMCBEDRAGBEGINW { 2501 2834 NMHDR hdr; 2502 2835 int iItemid; 2503 - WCHAR szText[CBEMAXSTRLEN]; 2836 + WCHAR[CBEMAXSTRLEN] szText; 2504 2837 } 2505 2838 alias NMCBEDRAGBEGINW* LPNMCBEDRAGBEGINW, PNMCBEDRAGBEGINW; 2506 2839 2507 2840 struct NMCBEDRAGBEGINA { 2508 2841 NMHDR hdr; 2509 2842 int iItemid; 2510 - char szText[CBEMAXSTRLEN]; 2843 + char[CBEMAXSTRLEN] szText; 2511 2844 } 2512 2845 alias NMCBEDRAGBEGINA* LPNMCBEDRAGBEGINA, PNMCBEDRAGBEGINA; 2513 2846 2514 2847 struct NMIPADDRESS { 2515 2848 NMHDR hdr; 2516 2849 int iField; 2517 2850 int iValue; ................................................................................ 2624 2957 } 2625 2958 alias NMDATETIMECHANGE* LPNMDATETIMECHANGE; 2626 2959 2627 2960 struct NMCBEENDEDITW { 2628 2961 NMHDR hdr; 2629 2962 BOOL fChanged; 2630 2963 int iNewSelection; 2631 - WCHAR szText[CBEMAXSTRLEN]; 2964 + WCHAR[CBEMAXSTRLEN] szText; 2632 2965 int iWhy; 2633 2966 } 2634 2967 alias NMCBEENDEDITW* LPNMCBEENDEDITW, PNMCBEENDEDITW; 2635 2968 2636 2969 struct NMCBEENDEDITA { 2637 2970 NMHDR hdr; 2638 2971 BOOL fChanged; 2639 2972 int iNewSelection; 2640 - char szText[CBEMAXSTRLEN]; 2973 + char[CBEMAXSTRLEN] szText; 2641 2974 int iWhy; 2642 2975 } 2643 2976 alias NMCBEENDEDITA* LPNMCBEENDEDITA, PNMCBEENDEDITA; 2644 2977 2645 2978 struct COLORMAP { 2646 2979 COLORREF from; 2647 2980 COLORREF to; ................................................................................ 2656 2989 alias DRAGLISTINFO* LPDRAGLISTINFO; 2657 2990 2658 2991 struct TBBUTTON { 2659 2992 int iBitmap; 2660 2993 int idCommand; 2661 2994 BYTE fsState; 2662 2995 BYTE fsStyle; 2663 - BYTE bReserved[2]; 2664 - DWORD dwData; 2665 - int iString; 2996 + version(Win64){ 2997 + BYTE[6] bReserved; 2998 + } else { 2999 + BYTE[2] bReserved; 3000 + } 3001 + DWORD_PTR dwData; 3002 + INT_PTR iString; 2666 3003 } 2667 -alias TBBUTTON* PTBBUTTON, LPTBBUTTON; 2668 -alias CPtr!(TBBUTTON) LPCTBBUTTON; 3004 +alias TBBUTTON* PTBBUTTON, LPTBBUTTON; 3005 +alias const(TBBUTTON)* LPCTBBUTTON; 2669 3006 2670 3007 static if (_WIN32_IE >= 0x400) { 2671 3008 struct TBBUTTONINFOA { 2672 3009 UINT cbSize = TBBUTTONINFOA.sizeof; 2673 3010 DWORD dwMask; 2674 3011 int idCommand; 2675 3012 int iImage; 2676 3013 BYTE fsState; 2677 3014 BYTE fsStyle; 2678 3015 WORD cx; 2679 - DWORD lParam; 3016 + DWORD_PTR lParam; 2680 3017 LPSTR pszText; 2681 3018 int cchText; 2682 3019 } 2683 3020 alias TBBUTTONINFOA* LPTBBUTTONINFOA; 2684 3021 2685 3022 struct TBBUTTONINFOW { 2686 3023 UINT cbSize = TBBUTTONINFOW.sizeof; 2687 3024 DWORD dwMask; 2688 3025 int idCommand; 2689 3026 int iImage; 2690 3027 BYTE fsState; 2691 3028 BYTE fsStyle; 2692 3029 WORD cx; 2693 - DWORD lParam; 3030 + DWORD_PTR lParam; 2694 3031 LPWSTR pszText; 2695 3032 int cchText; 2696 3033 } 2697 3034 alias TBBUTTONINFOW* LPTBBUTTONINFOW; 2698 3035 2699 3036 struct TBINSERTMARK { 2700 3037 int iButton; ................................................................................ 2744 3081 HBITMAP hbmMask; 2745 3082 int Unused1; 2746 3083 int Unused2; 2747 3084 RECT rcImage; 2748 3085 } 2749 3086 alias IMAGEINFO* LPIMAGEINFO; 2750 3087 2751 -alias HANDLE HIMAGELIST; 2752 - 2753 3088 static if (_WIN32_IE >= 0x500) { 2754 3089 struct HDITEMA { 2755 3090 UINT mask; 2756 3091 int cxy; 2757 3092 LPSTR pszText; 2758 3093 HBITMAP hbm; 2759 3094 int cchTextMax; ................................................................................ 2832 3167 //alias HDITEM HD_ITEM; fixme 2833 3168 } 2834 3169 2835 3170 struct HD_LAYOUT { 2836 3171 RECT* prc; 2837 3172 WINDOWPOS* pwpos; 2838 3173 } 2839 -alias HDLAYOUT* LPHDLAYOUT; 3174 +alias HD_LAYOUT* LPHDLAYOUT; 2840 3175 deprecated alias HD_LAYOUT HDLAYOUT; 2841 3176 2842 3177 struct HD_HITTESTINFO { 2843 3178 POINT pt; 2844 3179 UINT flags; 2845 3180 int iItem; 2846 3181 } ................................................................................ 3026 3361 UINT uKeyFlags; 3027 3362 } 3028 3363 alias NMITEMACTIVATE* LPNMITEMACTIVATE; 3029 3364 } 3030 3365 3031 3366 struct TBADDBITMAP { 3032 3367 HINSTANCE hInst; 3033 - UINT nID; 3368 + UINT_PTR nID; 3034 3369 } 3035 3370 alias TBADDBITMAP* LPTBADDBITMAP; 3036 3371 3037 3372 struct TBSAVEPARAMSA { 3038 3373 HKEY hkr; 3039 3374 LPCSTR pszSubKey; 3040 3375 LPCSTR pszValueName; ................................................................................ 3044 3379 HKEY hkr; 3045 3380 LPCWSTR pszSubKey; 3046 3381 LPCWSTR pszValueName; 3047 3382 } 3048 3383 3049 3384 struct TBREPLACEBITMAP { 3050 3385 HINSTANCE hInstOld; 3051 - UINT nIDOld; 3386 + UINT_PTR nIDOld; 3052 3387 HINSTANCE hInstNew; 3053 - UINT nIDNew; 3388 + UINT_PTR nIDNew; 3054 3389 int nButtons; 3055 3390 } 3056 3391 alias TBREPLACEBITMAP* LPTBREPLACEBITMAP; 3057 3392 3058 3393 static if (_WIN32_IE >= 0x500) { 3059 3394 struct NMTOOLBARA { 3060 3395 NMHDR hdr; ................................................................................ 3100 3435 alias LPNMTOOLBARW LPTBNOTIFYW; 3101 3436 3102 3437 static if (_WIN32_WINNT >= 0x501) { 3103 3438 struct TOOLINFOA { 3104 3439 UINT cbSize = TOOLINFOA.sizeof; 3105 3440 UINT uFlags; 3106 3441 HWND hwnd; 3107 - UINT uId; 3442 + UINT_PTR uId; 3108 3443 RECT rect; 3109 3444 HINSTANCE hinst; 3110 3445 LPSTR lpszText; 3111 3446 LPARAM lParam; 3112 3447 void* lpReserved; 3113 3448 } 3114 3449 3115 3450 struct TOOLINFOW { 3116 3451 UINT cbSize = TOOLINFOW.sizeof; 3117 3452 UINT uFlags; 3118 3453 HWND hwnd; 3119 - UINT uId; 3454 + UINT_PTR uId; 3120 3455 RECT rect; 3121 3456 HINSTANCE hinst; 3122 3457 LPWSTR lpszText; 3123 3458 LPARAM lParam; 3124 3459 void* lpReserved; 3125 3460 } 3126 3461 ................................................................................ 3203 3538 } 3204 3539 alias TTHITTESTINFOW* LPTTHITTESTINFOW, LPHITTESTINFOW; 3205 3540 3206 3541 static if (_WIN32_IE >= 0x300) { 3207 3542 struct NMTTDISPINFOA { 3208 3543 NMHDR hdr; 3209 3544 LPSTR lpszText; 3210 - char szText[80]; 3545 + char[80] szText; 3211 3546 HINSTANCE hinst; 3212 3547 UINT uFlags; 3213 3548 LPARAM lParam; 3214 3549 } 3215 3550 3216 3551 struct NMTTDISPINFOW { 3217 3552 NMHDR hdr; 3218 3553 LPWSTR lpszText; 3219 - WCHAR szText[80]; 3554 + WCHAR[80] szText; 3220 3555 HINSTANCE hinst; 3221 3556 UINT uFlags; 3222 3557 LPARAM lParam; 3223 3558 } 3224 3559 } else { 3225 3560 struct NMTTDISPINFOA { 3226 3561 NMHDR hdr; 3227 3562 LPSTR lpszText; 3228 - char szText[80]; 3563 + char[80] szText; 3229 3564 HINSTANCE hinst; 3230 3565 UINT uFlags; 3231 3566 } 3232 3567 3233 3568 struct NMTTDISPINFOW { 3234 3569 NMHDR hdr; 3235 3570 LPWSTR lpszText; 3236 - WCHAR szText[80]; 3571 + WCHAR[80] szText; 3237 3572 HINSTANCE hinst; 3238 3573 UINT uFlags; 3239 3574 } 3240 3575 } 3241 3576 alias NMTTDISPINFOA* LPNMTTDISPINFOA; 3242 3577 alias NMTTDISPINFOW* LPNMTTDISPINFOW; 3243 3578 alias NMTTDISPINFOA TOOLTIPTEXTA; ................................................................................ 3501 3836 struct LVINSERTMARK { 3502 3837 UINT cbSize = LVINSERTMARK.sizeof; 3503 3838 DWORD dwFlags; 3504 3839 int iItem; 3505 3840 DWORD dwReserved; 3506 3841 } 3507 3842 alias LVINSERTMARK* PLVINSERTMARK; 3843 + alias LVINSERTMARK* LPLVINSERTMARK; 3508 3844 3509 3845 struct LVTILEINFO { 3510 3846 UINT cbSize = LVTILEINFO.sizeof; 3511 3847 int iItem; 3512 3848 UINT cColumns; 3513 3849 PUINT puColumns; 3514 3850 static if (_WIN32_WINNT >= 0x600) { ................................................................................ 3541 3877 DWORD dwFlags; 3542 3878 LPWSTR pszText; 3543 3879 int iItem; 3544 3880 int iSubItem; 3545 3881 HBITMAP hbmp; 3546 3882 } 3547 3883 alias LVSETINFOTIP* PLVSETINFOTIP; 3884 + 3885 + struct BUTTON_IMAGELIST { 3886 + HIMAGELIST himl; 3887 + RECT margin; 3888 + UINT uAlign; 3889 + } 3890 + alias BUTTON_IMAGELIST* PBUTTON_IMAGELIST; 3891 +} 3892 + 3893 +static if (_WIN32_WINNT >= 0x600) { 3894 + struct LVITEMINDEX 3895 + { 3896 + int iItem; 3897 + int iGroup; 3898 + }; 3899 + alias LVITEMINDEX* PLVITEMINDEX; 3900 + 3901 + struct LVFOOTERINFO 3902 + { 3903 + UINT mask; 3904 + LPWSTR pszText; 3905 + int cchTextMax; 3906 + UINT cItems; 3907 + } 3908 + alias LVFOOTERINFO* LPLVFOOTERINFO; 3909 + 3910 + struct LVFOOTERITEM 3911 + { 3912 + UINT mask; 3913 + int iItem; 3914 + LPWSTR pszText; 3915 + int cchTextMax; 3916 + UINT state; 3917 + UINT stateMask; 3918 + } 3919 + alias LVFOOTERITEM *LPLVFOOTERITEM; 3920 + 3921 + alias UINT TVITEMPART; 3922 + enum { 3923 + TVGIPR_BUTTON = 0x0001, 3924 + } 3548 3925 } 3549 3926 3550 3927 alias int function(LPARAM, LPARAM, LPARAM) PFNLVCOMPARE; 3551 3928 3552 3929 struct NMLISTVIEW { 3553 3930 NMHDR hdr; 3554 3931 int iItem; ................................................................................ 3695 4072 struct TVHITTESTINFO { 3696 4073 POINT pt; 3697 4074 UINT flags; 3698 4075 HTREEITEM hItem; 3699 4076 } 3700 4077 alias TVHITTESTINFO* LPTVHITTESTINFO, LPTV_HITTESTINFO; 3701 4078 alias TVHITTESTINFO TV_HITTESTINFO; 4079 + 4080 +static if (_WIN32_WINNT >= 0x600) { 4081 + struct TVGETITEMPARTRECTINFO { 4082 + HTREEITEM hti; 4083 + RECT* prc; 4084 + TVITEMPART partID; 4085 + } 4086 +} 3702 4087 3703 4088 alias int function(LPARAM, LPARAM, LPARAM) PFNTVCOMPARE; 3704 4089 struct TVSORTCB { 3705 4090 HTREEITEM hParent; 3706 4091 PFNTVCOMPARE lpfnCompare; 3707 4092 LPARAM lParam; 3708 4093 } ................................................................................ 3980 4365 } 3981 4366 3982 4367 enum : size_t { 3983 4368 REBARBANDINFOA_V3_SIZE = REBARBANDINFOA.sizeof, 3984 4369 REBARBANDINFOW_V3_SIZE = REBARBANDINFOW.sizeof 3985 4370 } 3986 4371 } 3987 -alias REBARBANDINFOA* LPREBARBANDINFOA; 3988 -alias CPtr!(REBARBANDINFOA) LPCREBARBANDINFOA; 3989 -alias REBARBANDINFOW* LPREBARBANDINFOW; 3990 -alias CPtr!(REBARBANDINFOW) LPCREBARBANDINFOW; 4372 +alias REBARBANDINFOA* LPREBARBANDINFOA; 4373 +alias const(REBARBANDINFOA)* LPCREBARBANDINFOA; 4374 +alias REBARBANDINFOW* LPREBARBANDINFOW; 4375 +alias const(REBARBANDINFOW)* LPCREBARBANDINFOW; 3991 4376 3992 4377 static if (_WIN32_IE >= 0x300) { 3993 4378 struct NMLVODSTATECHANGE { 3994 4379 NMHDR hdr; 3995 4380 int iFrom; 3996 4381 int iTo; 3997 4382 UINT uNewState; ................................................................................ 4084 4469 POINT pt; 4085 4470 UINT flags; 4086 4471 int iBand; 4087 4472 } 4088 4473 alias RBHITTESTINFO* LPRBHITTESTINFO; 4089 4474 } 4090 4475 4091 -alias HANDLE HDSA; 4092 -alias HANDLE HDPA; 4476 +mixin DECLARE_HANDLE!("HDSA"); 4477 +mixin DECLARE_HANDLE!("HDPA"); 4093 4478 4094 4479 version (Unicode) { 4095 4480 alias HDITEMW HDITEM; 4096 4481 alias LPHDITEMW LPHDITEM; 4097 4482 alias TOOLINFOW TOOLINFO; 4098 4483 alias TOOLINFOW* PTOOLINFO, LPTOOLINFO; 4099 4484 alias TTHITTESTINFOW TTHITTESTINFO; ................................................................................ 4587 4972 HWND Animate_Create(HWND hwndP, UINT id, DWORD dwStyle, 4588 4973 HINSTANCE hInstance) { 4589 4974 return CreateWindow(cast(TCHAR*)ANIMATE_CLASS.ptr, null, dwStyle, 0, 0, 0, 0, hwndP, 4590 4975 cast(HMENU) id, hInstance, null); 4591 4976 } 4592 4977 4593 4978 BOOL Animate_Open(HWND hwnd, LPTSTR szName) { 4594 - return SendMessage(hwnd, ACM_OPEN, 0, cast(LPARAM) szName); 4979 + return cast(BOOL) SendMessage(hwnd, ACM_OPEN, 0, cast(LPARAM) szName); 4595 4980 } 4596 4981 4597 4982 BOOL Animate_OpenEx(HWND hwnd, HINSTANCE hInst, LPTSTR szName) { 4598 - return SendMessage(hwnd, ACM_OPEN, cast(WPARAM) hInst, 4983 + return cast(BOOL) SendMessage(hwnd, ACM_OPEN, cast(WPARAM) hInst, 4599 4984 cast(LPARAM) szName); 4600 4985 } 4601 4986 4602 4987 BOOL Animate_Play(HWND hwnd, int from, int to, int rep) { 4603 - return SendMessage(hwnd, ACM_PLAY, rep, 4988 + return cast(BOOL) SendMessage(hwnd, ACM_PLAY, rep, 4604 4989 MAKELONG(cast(ushort) from, cast(ushort) to)); 4605 4990 } 4606 4991 4607 4992 BOOL Animate_Stop(HWND hwnd) { 4608 - return SendMessage(hwnd, ACM_STOP, 0, 0); 4993 + return cast(BOOL) SendMessage(hwnd, ACM_STOP, 0, 0); 4609 4994 } 4610 4995 4611 4996 BOOL Animate_Close(HWND hwnd) { 4612 4997 return Animate_Open(hwnd, null); 4613 4998 } 4614 4999 4615 5000 BOOL Animate_Seek(HWND hwnd, int frame) { 4616 5001 return Animate_Play(hwnd, frame, frame, 1); 4617 5002 } 4618 5003 4619 5004 extern (Windows) { 4620 - HBITMAP CreateMappedBitmap(HINSTANCE, int, UINT, LPCOLORMAP, int); 5005 + HBITMAP CreateMappedBitmap(HINSTANCE, INT_PTR, UINT, LPCOLORMAP, int); 4621 5006 HWND CreateStatusWindowA(LONG, LPCSTR, HWND, UINT); 4622 5007 HWND CreateStatusWindowW(LONG, LPCWSTR, HWND, UINT); 4623 - HWND CreateToolbarEx(HWND, DWORD, UINT, int, HINSTANCE, UINT, 5008 + HWND CreateToolbarEx(HWND, DWORD, UINT, int, HINSTANCE, UINT_PTR, 4624 5009 LPCTBBUTTON, int, int, int, int, int, UINT); 4625 5010 HWND CreateUpDownControl(DWORD, int, int, int, int, HWND, int, HINSTANCE, 4626 5011 HWND, int, int, int); 4627 5012 } 4628 5013 4629 5014 HWND DateTime_GetMonthCal(HWND hwnd) { 4630 5015 return cast(HWND) SendMessage(hwnd, DTM_GETMONTHCAL, 0, 0); ................................................................................ 4635 5020 } 4636 5021 4637 5022 HFONT DateTime_GetMonthCalFont(HWND hwnd) { 4638 5023 return cast(HFONT) SendMessage(hwnd, DTM_GETMCFONT, 0, 0); 4639 5024 } 4640 5025 4641 5026 DWORD DateTime_GetRange(HWND hwnd, LPSYSTEMTIME lpSysTimeArray) { 4642 - return SendMessage(hwnd, DTM_GETRANGE, 0, cast(LPARAM) lpSysTimeArray); 5027 + return cast(DWORD) SendMessage(hwnd, DTM_GETRANGE, 0, cast(LPARAM) lpSysTimeArray); 4643 5028 } 4644 5029 4645 5030 DWORD DateTime_GetSystemtime(HWND hwnd, LPSYSTEMTIME lpSysTime) { 4646 - return SendMessage(hwnd, DTM_GETSYSTEMTIME, 0, cast(LPARAM) lpSysTime); 5031 + return cast(DWORD) SendMessage(hwnd, DTM_GETSYSTEMTIME, 0, cast(LPARAM) lpSysTime); 4647 5032 } 4648 5033 4649 5034 BOOL DateTime_SetFormat(HWND hwnd, LPCTSTR lpszFormat) { 4650 5035 return cast(BOOL) SendMessage(hwnd, DTM_SETFORMAT, 0, 4651 5036 cast(LPARAM) lpszFormat); 4652 5037 } 4653 5038 ................................................................................ 4674 5059 void DrawInsert(HWND, HWND, int); 4675 5060 void DrawStatusTextA(HDC, LPRECT, LPCSTR, UINT); 4676 5061 void DrawStatusTextW(HDC, LPRECT, LPCWSTR, UINT); 4677 5062 void GetEffectiveClientRect(HWND, LPRECT, LPINT); 4678 5063 } 4679 5064 4680 5065 int Header_GetItemCount(HWND w) { 4681 - return SendMessage(w, HDM_GETITEMCOUNT, 0, 0); 5066 + return cast(int) SendMessage(w, HDM_GETITEMCOUNT, 0, 0); 4682 5067 } 4683 5068 4684 -int Header_InsertItem(HWND w, int i, CPtr!(HDITEM) phdi) { 4685 - return SendMessage(w, HDM_INSERTITEM, i, cast(LPARAM) phdi); 5069 +int Header_InsertItem(HWND w, int i, const(HDITEM)* phdi) { 5070 + return cast(int) SendMessage(w, HDM_INSERTITEM, i, cast(LPARAM) phdi); 4686 5071 } 4687 5072 4688 5073 BOOL Header_DeleteItem(HWND w, int i) { 4689 5074 return cast(BOOL) SendMessage(w, HDM_DELETEITEM, i, 0); 4690 5075 } 4691 5076 4692 5077 BOOL Header_GetItem(HWND w, int i, LPHDITEM phdi) { 4693 5078 return cast(BOOL) SendMessage(w, HDM_GETITEM, i, cast(LPARAM) phdi); 4694 5079 } 4695 5080 4696 -BOOL Header_SetItem(HWND w, int i, CPtr!(HDITEM) phdi) { 5081 +BOOL Header_SetItem(HWND w, int i, const(HDITEM)* phdi) { 4697 5082 return cast(BOOL) SendMessage(w, HDM_SETITEM, i, cast(LPARAM) phdi); 4698 5083 } 4699 5084 4700 5085 BOOL Header_Layout(HWND w, LPHDLAYOUT playout) { 4701 - return SendMessage(w, HDM_LAYOUT, 0, cast(LPARAM) playout); 5086 + return cast(BOOL) SendMessage(w, HDM_LAYOUT, 0, cast(LPARAM) playout); 4702 5087 } 4703 5088 4704 5089 static if (_WIN32_IE >= 0x300) { 4705 5090 int Header_OrderToIndex(HWND w, int i) { 4706 - return SendMessage(w, HDM_ORDERTOINDEX, i, 0); 5091 + return cast(int) SendMessage(w, HDM_ORDERTOINDEX, i, 0); 4707 5092 } 4708 5093 4709 5094 BOOL Header_GetItemRect(HWND w, int i, RECT* r) { 4710 5095 return cast(BOOL) SendMessage(w, HDM_GETITEMRECT, i, cast(LPARAM) r); 4711 5096 } 4712 5097 4713 5098 BOOL Header_GetOrderArray(HWND w, int iSize, LPINT lpiArray) { ................................................................................ 4801 5186 BOOL ImageList_DragEnter(HWND, int, int); 4802 5187 BOOL ImageList_DragLeave(HWND); 4803 5188 BOOL ImageList_DragMove(int, int); 4804 5189 BOOL ImageList_DragShowNolock(BOOL); 4805 5190 BOOL ImageList_Draw(HIMAGELIST, int, HDC, int, int, UINT); 4806 5191 BOOL ImageList_DrawEx(HIMAGELIST, int, HDC, int, int, int, int, COLORREF, 4807 5192 COLORREF, UINT); 4808 - void ImageList_EndDrag(PVOID); 5193 + void ImageList_EndDrag(); 4809 5194 COLORREF ImageList_GetBkColor(HIMAGELIST); 4810 5195 HIMAGELIST ImageList_GetDragImage(LPPOINT, LPPOINT); 4811 5196 HICON ImageList_GetIcon(HIMAGELIST, int, UINT); 4812 5197 BOOL ImageList_GetIconSize(HIMAGELIST, int*, int*); 4813 5198 int ImageList_GetImageCount(HIMAGELIST); 4814 5199 BOOL ImageList_GetImageInfo(HIMAGELIST, int, IMAGEINFO*); 4815 5200 HIMAGELIST ImageList_LoadImageA(HINSTANCE, LPCSTR, int, int, COLORREF, ................................................................................ 4865 5250 } 4866 5251 4867 5252 HIMAGELIST ListView_GetImageList(HWND w, int i) { 4868 5253 return cast(HIMAGELIST) SendMessage(w, LVM_GETIMAGELIST, i, 0); 4869 5254 } 4870 5255 4871 5256 int ListView_GetItemCount(HWND w) { 4872 - return SendMessage(w, LVM_GETITEMCOUNT, 0, 0); 5257 + return cast(int) SendMessage(w, LVM_GETITEMCOUNT, 0, 0); 4873 5258 } 4874 5259 4875 5260 BOOL ListView_GetItem(HWND w, LPLVITEM pitem) { 4876 5261 return cast(BOOL) SendMessage(w, LVM_GETITEM, 0, cast(LPARAM) pitem); 4877 5262 } 4878 5263 4879 5264 BOOL ListView_SetBkColor(HWND w, COLORREF c) { ................................................................................ 4881 5266 } 4882 5267 4883 5268 HIMAGELIST ListView_SetImageList(HWND w, HIMAGELIST h, int i) { 4884 5269 return cast(HIMAGELIST) SendMessage(w, LVM_SETIMAGELIST, i, 4885 5270 cast(LPARAM) h); 4886 5271 } 4887 5272 4888 -BOOL ListView_SetItem(HWND w, CPtr!(LV_ITEM) i) { 5273 +BOOL ListView_SetItem(HWND w, const(LV_ITEM)* i) { 4889 5274 return cast(BOOL) SendMessage(w, LVM_SETITEM, 0, cast(LPARAM) i); 4890 5275 } 4891 5276 4892 -int ListView_InsertItem(HWND w, CPtr!(LV_ITEM) i) { 4893 - return SendMessage(w, LVM_INSERTITEM, 0, cast(LPARAM) i); 5277 +int ListView_InsertItem(HWND w, const(LV_ITEM)* i) { 5278 + return cast(int) SendMessage(w, LVM_INSERTITEM, 0, cast(LPARAM) i); 4894 5279 } 4895 5280 4896 5281 BOOL ListView_DeleteItem(HWND w, int i) { 4897 5282 return cast(BOOL) SendMessage(w, LVM_DELETEITEM, i, 0); 4898 5283 } 4899 5284 4900 5285 BOOL ListView_DeleteAllItems(HWND w) { ................................................................................ 4906 5291 } 4907 5292 4908 5293 BOOL ListView_SetCallbackMask(HWND w, UINT m) { 4909 5294 return cast(BOOL) SendMessage(w, LVM_SETCALLBACKMASK, m, 0); 4910 5295 } 4911 5296 4912 5297 int ListView_GetNextItem(HWND w, int i, UINT f) { 4913 - return SendMessage(w, LVM_GETNEXTITEM, i, MAKELPARAM(cast(ushort)f, 0)); 5298 + return cast(int) SendMessage(w, LVM_GETNEXTITEM, i, MAKELPARAM(cast(ushort)f, 0)); 4914 5299 } 4915 5300 4916 -int ListView_FindItem(HWND w, int i, CPtr!(LV_FINDINFO) p) { 4917 - return SendMessage(w, LVM_FINDITEM, i, cast(LPARAM) p); 5301 +int ListView_FindItem(HWND w, int i, const(LV_FINDINFO)* p) { 5302 + return cast(int) SendMessage(w, LVM_FINDITEM, i, cast(LPARAM) p); 4918 5303 } 4919 5304 4920 5305 BOOL ListView_GetItemRect(HWND w, int i, LPRECT p, int c) { 4921 5306 return cast(BOOL) SendMessage(w, LVM_GETITEMRECT, i, p ? 4922 5307 (p.left = c, cast(LPARAM) p) : 0); 4923 5308 } 4924 5309 ................................................................................ 4931 5316 } 4932 5317 4933 5318 DWORD ListView_GetItemSpacing(HWND w, BOOL f) { 4934 5319 return cast(DWORD) SendMessage(w, LVM_GETITEMSPACING, f, 0); 4935 5320 } 4936 5321 4937 5322 int ListView_GetStringWidth(HWND w, LPCSTR s) { 4938 - return SendMessage(w, LVM_GETSTRINGWIDTH, 0, cast(LPARAM) s); 5323 + return cast(int) SendMessage(w, LVM_GETSTRINGWIDTH, 0, cast(LPARAM) s); 4939 5324 } 4940 5325 4941 5326 int ListView_HitTest(HWND w, LPLVHITTESTINFO p) { 4942 - return SendMessage(w, LVM_HITTEST, 0, cast(LPARAM) p); 5327 + return cast(int) SendMessage(w, LVM_HITTEST, 0, cast(LPARAM) p); 4943 5328 } 4944 5329 4945 5330 BOOL ListView_EnsureVisible(HWND w, int i, BOOL f) { 4946 5331 return cast(BOOL) SendMessage(w, LVM_ENSUREVISIBLE, i, MAKELPARAM(cast(ushort)f, 0)); 4947 5332 } 4948 5333 4949 5334 BOOL ListView_Scroll(HWND w, int dx, int dy) { ................................................................................ 4966 5351 return cast(HWND) SendMessage(w, LVM_GETEDITCONTROL, 0, 0); 4967 5352 } 4968 5353 4969 5354 BOOL ListView_GetColumn(HWND w, int i, LPLVCOLUMN p) { 4970 5355 return cast(BOOL) SendMessage(w, LVM_GETCOLUMN, i, cast(LPARAM) p); 4971 5356 } 4972 5357 4973 -BOOL ListView_SetColumn(HWND w, int i, CPtr!(LV_COLUMN) p) { 5358 +BOOL ListView_SetColumn(HWND w, int i, const(LV_COLUMN)* p) { 4974 5359 return cast(BOOL) SendMessage(w, LVM_SETCOLUMN, i, cast(LPARAM) p); 4975 5360 } 4976 5361 4977 -int ListView_InsertColumn(HWND w, int i, CPtr!(LV_COLUMN) p) { 4978 - return SendMessage(w, LVM_INSERTCOLUMN, i, cast(LPARAM) p); 5362 +int ListView_InsertColumn(HWND w, int i, const(LV_COLUMN)* p) { 5363 + return cast(int) SendMessage(w, LVM_INSERTCOLUMN, i, cast(LPARAM) p); 4979 5364 } 4980 5365 4981 5366 BOOL ListView_DeleteColumn(HWND w, int i) { 4982 5367 return cast(BOOL) SendMessage(w, LVM_DELETECOLUMN, i, 0); 4983 5368 } 4984 5369 4985 5370 int ListView_GetColumnWidth(HWND w, int i) { 4986 - return SendMessage(w, LVM_GETCOLUMNWIDTH, i, 0); 5371 + return cast(int) SendMessage(w, LVM_GETCOLUMNWIDTH, i, 0); 4987 5372 } 4988 5373 4989 5374 BOOL ListView_SetColumnWidth(HWND w, int i, int x) { 4990 5375 return cast(BOOL) SendMessage(w, LVM_SETCOLUMNWIDTH, i, MAKELPARAM(cast(ushort)x, 0)); 4991 5376 } 4992 5377 4993 5378 HIMAGELIST ListView_CreateDragImage(HWND w, int i, LPPOINT p) { ................................................................................ 5012 5397 } 5013 5398 5014 5399 BOOL ListView_SetTextBkColor(HWND w, COLORREF c) { 5015 5400 return cast(BOOL) SendMessage(w, LVM_SETTEXTBKCOLOR, 0, cast(LPARAM) c); 5016 5401 } 5017 5402 5018 5403 int ListView_GetTopIndex(HWND w) { 5019 - return SendMessage(w, LVM_GETTOPINDEX, 0, 0); 5404 + return cast(int) SendMessage(w, LVM_GETTOPINDEX, 0, 0); 5020 5405 } 5021 5406 5022 5407 int ListView_GetCountPerPage(HWND w) { 5023 - return SendMessage(w, LVM_GETCOUNTPERPAGE, 0, 0); 5408 + return cast(int) SendMessage(w, LVM_GETCOUNTPERPAGE, 0, 0); 5024 5409 } 5025 5410 5026 5411 BOOL ListView_GetOrigin(HWND w, LPPOINT p) { 5027 5412 return cast(BOOL) SendMessage(w, LVM_GETORIGIN, 0, cast(LPARAM) p); 5028 5413 } 5029 5414 5030 5415 BOOL ListView_Update(HWND w, WPARAM i) { ................................................................................ 5094 5479 SendMessage(w, LVM_CANCELEDITLABEL, 0, 0); 5095 5480 } 5096 5481 5097 5482 int ListView_EnableGroupView(HWND w, BOOL i) { 5098 5483 return cast(int) SendMessage(w, LVM_ENABLEGROUPVIEW, i, 0); 5099 5484 } 5100 5485 5101 -static if (_WIN32_WINDOWS >= 0x410 && (_WIN32_WINNT >= 0x500 || _WIN32_IE >= 0x500)) { 5486 +static if (_WIN32_WINNT >= 0x500 || _WIN32_IE >= 0x500) { 5102 5487 BOOL ListView_SortItemsEx(HWND w, PFNLVCOMPARE c, LPARAM p) { 5103 - return SendMessage(w, LVM_SORTITEMSEX, cast(WPARAM) p, cast(LPARAM)c); 5488 + return cast(BOOL) SendMessage(w, LVM_SORTITEMSEX, cast(WPARAM) p, cast(LPARAM)c); 5104 5489 } 5105 5490 } 5106 5491 5107 5492 static if (_WIN32_WINNT >= 0x501) { 5108 5493 int ListView_GetGroupInfo(HWND w, int i, PLVGROUP p) { 5109 - return SendMessage(w, LVM_GETGROUPINFO, i, cast(LPARAM) p); 5494 + return cast(int) SendMessage(w, LVM_GETGROUPINFO, i, cast(LPARAM) p); 5110 5495 } 5111 5496 5112 5497 void ListView_GetGroupMetrics(HWND w, PLVGROUPMETRICS p) { 5113 5498 SendMessage(w, LVM_GETGROUPMETRICS, 0, cast(LPARAM) p); 5114 5499 } 5115 5500 5116 5501 BOOL ListView_GetInsertMark(HWND w, PLVINSERTMARK p) { 5117 - return SendMessage(w, LVM_GETINSERTMARK, 0, cast(LPARAM) p); 5502 + return cast(BOOL) SendMessage(w, LVM_GETINSERTMARK, 0, cast(LPARAM) p); 5118 5503 } 5119 5504 5120 5505 COLORREF ListView_GetInsertMarkColor(HWND w) { 5121 - return SendMessage(w, LVM_GETINSERTMARKCOLOR, 0, 0); 5506 + return cast(COLORREF) SendMessage(w, LVM_GETINSERTMARKCOLOR, 0, 0); 5122 5507 } 5123 5508 5124 5509 int ListView_GetInsertMarkRect(HWND w, LPRECT p) { 5125 - return SendMessage(w, LVM_GETINSERTMARKRECT, 0, cast(LPARAM) p); 5510 + return cast(int) SendMessage(w, LVM_GETINSERTMARKRECT, 0, cast(LPARAM) p); 5126 5511 } 5127 5512 5128 5513 COLORREF ListView_GetOutlineColor(HWND w) { 5129 - return SendMessage(w, LVM_GETOUTLINECOLOR, 0, 0); 5514 + return cast(COLORREF) SendMessage(w, LVM_GETOUTLINECOLOR, 0, 0); 5130 5515 } 5131 5516 5132 5517 UINT ListView_GetSelectedColumn(HWND w) { 5133 - return SendMessage(w, LVM_GETSELECTEDCOLUMN, 0, 0); 5518 + return cast(UINT) SendMessage(w, LVM_GETSELECTEDCOLUMN, 0, 0); 5134 5519 } 5135 5520 5136 5521 void ListView_GetTileInfo(HWND w, PLVTILEINFO p) { 5137 5522 SendMessage(w, LVM_GETTILEINFO, 0, cast(LPARAM) p); 5138 5523 } 5139 5524 5140 5525 void ListView_GetTileViewInfo(HWND w, PLVTILEVIEWINFO p) { 5141 5526 SendMessage(w, LVM_GETTILEVIEWINFO, 0, cast(LPARAM) p); 5142 5527 } 5143 5528 5144 5529 DWORD ListView_GetView(HWND w) { 5145 - return SendMessage(w, LVM_GETVIEW, 0, 0); 5530 + return cast(DWORD) SendMessage(w, LVM_GETVIEW, 0, 0); 5146 5531 } 5147 5532 5148 5533 BOOL ListView_HasGroup(HWND w, int i) { 5149 - return SendMessage(w, LVM_HASGROUP, i, 0); 5534 + return cast(BOOL) SendMessage(w, LVM_HASGROUP, i, 0); 5150 5535 } 5151 5536 5152 5537 int ListView_InsertGroup(HWND w, int i, PLVGROUP p) { 5153 - return SendMessage(w, LVM_INSERTGROUP, i, cast(LPARAM) p); 5538 + return cast(int) SendMessage(w, LVM_INSERTGROUP, i, cast(LPARAM) p); 5154 5539 } 5155 5540 5156 5541 void ListView_InsertGroupSorted(HWND w, PLVINSERTGROUPSORTED p) { 5157 5542 SendMessage(w, LVM_INSERTGROUPSORTED, cast(WPARAM) p, 0); 5158 5543 } 5159 5544 5160 5545 BOOL ListView_InsertMarkHitTest(HWND w, LPPOINT p, PLVINSERTMARK t) { 5161 - return SendMessage(w, LVM_INSERTMARKHITTEST, cast(WPARAM) p, cast(LPARAM) t); 5546 + return cast(BOOL) SendMessage(w, LVM_INSERTMARKHITTEST, cast(WPARAM) p, cast(LPARAM) t); 5162 5547 } 5163 5548 5164 5549 BOOL ListView_IsGroupViewEnabled(HWND w) { 5165 - return SendMessage(w, LVM_ISGROUPVIEWENABLED, 0, 0); 5550 + return cast(BOOL) SendMessage(w, LVM_ISGROUPVIEWENABLED, 0, 0); 5166 5551 } 5167 5552 5168 5553 UINT ListView_MapIDToIndex(HWND w, UINT i) { 5169 - return SendMessage(w, LVM_MAPIDTOINDEX, i, 0); 5554 + return cast(UINT) SendMessage(w, LVM_MAPIDTOINDEX, i, 0); 5170 5555 } 5171 5556 5172 5557 /* ??? MSDN documents this as "Not implemented", except in relation to 5173 5558 * Windows CE/Mobile. 5174 5559 */ 5175 5560 void ListView_MoveGroup(HWND w, int i, int t) { 5176 5561 SendMessage(w, LVM_MOVEGROUP, i, t); ................................................................................ 5177 5562 } 5178 5563 5179 5564 void ListView_RemoveAllGroups(HWND w) { 5180 5565 SendMessage(w, LVM_REMOVEALLGROUPS, 0, 0); 5181 5566 } 5182 5567 5183 5568 int ListView_RemoveGroup(HWND w, int i) { 5184 - return SendMessage(w, LVM_REMOVEGROUP, i, 0); 5569 + return cast(int) SendMessage(w, LVM_REMOVEGROUP, i, 0); 5185 5570 } 5186 5571 5187 5572 int ListView_SetGroupInfo(HWND w, int i, PLVGROUP p) { 5188 - return SendMessage(w, LVM_SETGROUPINFO, i, cast(LPARAM) p); 5573 + return cast(int) SendMessage(w, LVM_SETGROUPINFO, i, cast(LPARAM) p); 5189 5574 } 5190 5575 5191 5576 void ListView_SetGroupMetrics(HWND w, PLVGROUPMETRICS p) { 5192 5577 SendMessage(w, LVM_SETGROUPMETRICS, 0, cast(LPARAM) p); 5193 5578 } 5194 5579 5195 5580 BOOL ListView_SetInfoTip(HWND w, PLVSETINFOTIP p) { 5196 - return SendMessage(w, LVM_SETINFOTIP, 0, cast(LPARAM) p); 5581 + return cast(BOOL) SendMessage(w, LVM_SETINFOTIP, 0, cast(LPARAM) p); 5197 5582 } 5198 5583 5199 5584 BOOL ListView_SetInsertMark(HWND w, PLVINSERTMARK p) { 5200 - return SendMessage(w, LVM_SETINSERTMARK, 0, cast(LPARAM) p); 5585 + return cast(BOOL) SendMessage(w, LVM_SETINSERTMARK, 0, cast(LPARAM) p); 5201 5586 } 5202 5587 5203 5588 COLORREF ListView_SetInsertMarkColor(HWND w, COLORREF c) { 5204 - return SendMessage(w, LVM_SETINSERTMARKCOLOR, 0, c); 5589 + return cast(COLORREF) SendMessage(w, LVM_SETINSERTMARKCOLOR, 0, c); 5205 5590 } 5206 5591 5207 5592 COLORREF ListView_SetOutlineColor(HWND w, COLORREF c) { 5208 - return SendMessage(w, LVM_SETOUTLINECOLOR, 0, c); 5593 + return cast(COLORREF) SendMessage(w, LVM_SETOUTLINECOLOR, 0, c); 5209 5594 } 5210 5595 5211 5596 void ListView_SetSelectedColumn(HWND w, int i) { 5212 5597 SendMessage(w, LVM_SETSELECTEDCOLUMN, i, 0); 5213 5598 } 5214 5599 5215 5600 BOOL ListView_SetTileInfo(HWND w, PLVTILEINFO p) { 5216 - return SendMessage(w, LVM_SETTILEINFO, 0, cast(LPARAM) p); 5601 + return cast(BOOL) SendMessage(w, LVM_SETTILEINFO, 0, cast(LPARAM) p); 5217 5602 } 5218 5603 5219 5604 BOOL ListView_SetTileViewInfo(HWND w, PLVTILEVIEWINFO p) { 5220 - return SendMessage(w, LVM_SETTILEVIEWINFO, 0, cast(LPARAM) p); 5605 + return cast(BOOL) SendMessage(w, LVM_SETTILEVIEWINFO, 0, cast(LPARAM) p); 5221 5606 } 5222 5607 5223 5608 int ListView_SetView(HWND w, DWORD i) { 5224 - return SendMessage(w, LVM_SETVIEW, i, 0); 5609 + return cast(int) SendMessage(w, LVM_SETVIEW, i, 0); 5225 5610 } 5226 5611 5227 5612 int ListView_SortGroups(HWND w, PFNLVGROUPCOMPARE c, LPVOID p) { 5228 - return SendMessage(w, LVM_SORTGROUPS, cast(WPARAM) c, cast(LPARAM) p); 5613 + return cast(int) SendMessage(w, LVM_SORTGROUPS, cast(WPARAM) c, cast(LPARAM) p); 5229 5614 } 5230 5615 } 5231 5616 5232 5617 static if (_WIN32_WINNT >= 0x501) { 5233 5618 enum { 5234 5619 CBM_FIRST = 0x1700, 5235 5620 CB_SETMINVISIBLE = CBM_FIRST + 1, 5236 - CB_GETMINVISIBLE = CBM_FIRST + 2 5621 + CB_GETMINVISIBLE = CBM_FIRST + 2, 5622 + CB_SETCUEBANNER = CBM_FIRST + 3, 5623 + CB_GETCUEBANNER = CBM_FIRST + 4, 5237 5624 } 5238 5625 5239 5626 BOOL ComboBox_SetMinVisible(HWND w, INT i) { 5240 5627 return cast(BOOL) SendMessage(w, CB_SETMINVISIBLE, cast(WPARAM) i, 0); 5241 5628 } 5242 5629 5243 5630 int ComboBox_GetMinVisible(HWND w) { 5244 - return SendMessage(w, CB_GETMINVISIBLE, 0, 0); 5631 + return cast(int) SendMessage(w, CB_GETMINVISIBLE, 0, 0); 5245 5632 } 5246 5633 } 5247 5634 5248 5635 extern (Windows) BOOL MakeDragList(HWND); 5249 5636 extern (Windows) void MenuHelp(UINT, WPARAM, LPARAM, HMENU, HINSTANCE, HWND, 5250 5637 PUINT); 5251 5638 ................................................................................ 5273 5660 5274 5661 BOOL MonthCal_GetMinReqRect(HWND hwnd, LPRECT lpRectInfo) { 5275 5662 return cast(BOOL) SendMessage(hwnd, MCM_GETMINREQRECT, 0, 5276 5663 cast(LPARAM) lpRectInfo); 5277 5664 } 5278 5665 5279 5666 INT MonthCal_GetMonthDelta(HWND hwnd) { 5280 - return SendMessage(hwnd, MCM_GETMONTHDELTA, 0, 0); 5667 + return cast(INT) SendMessage(hwnd, MCM_GETMONTHDELTA, 0, 0); 5281 5668 } 5282 5669 5283 5670 INT MonthCal_GetMonthRange(HWND hwnd, DWORD flag, LPSYSTEMTIME systimearray) { 5284 - return SendMessage(hwnd, MCM_GETMONTHRANGE, cast(WPARAM) flag, 5671 + return cast(INT) SendMessage(hwnd, MCM_GETMONTHRANGE, cast(WPARAM) flag, 5285 5672 cast(LPARAM) systimearray); 5286 5673 } 5287 5674 5288 5675 DWORD MonthCal_GetRange(HWND hwnd, LPSYSTEMTIME systimearray) { 5289 5676 return cast(DWORD) SendMessage(hwnd, MCM_GETRANGE, 0, 5290 5677 cast(LPARAM) systimearray); 5291 5678 } ................................................................................ 5331 5718 5332 5719 BOOL MonthCal_SetMaxSelCount(HWND hwnd, UINT imax) { 5333 5720 return cast(BOOL) SendMessage(hwnd, MCM_SETMAXSELCOUNT, 5334 5721 cast(WPARAM) imax, 0); 5335 5722 } 5336 5723 5337 5724 INT MonthCal_SetMonthDelta(HWND hwnd, INT idelta) { 5338 - return SendMessage(hwnd, MCM_SETMONTHDELTA, cast(WPARAM) idelta, 0); 5725 + return cast(INT) SendMessage(hwnd, MCM_SETMONTHDELTA, cast(WPARAM) idelta, 0); 5339 5726 } 5340 5727 5341 5728 BOOL MonthCal_SetSelRange(HWND hwnd, LPSYSTEMTIME systimearray) { 5342 5729 return cast(BOOL) SendMessage(hwnd, MCM_SETSELRANGE, 0, 5343 5730 cast(LPARAM) systimearray); 5344 5731 } 5345 5732 ................................................................................ 5353 5740 } 5354 5741 5355 5742 BOOL MonthCal_SetRange(HWND w, DWORD f, LPSYSTEMTIME st) { 5356 5743 return cast(BOOL) SendMessage(w, MCM_SETRANGE, cast(WPARAM) f, 5357 5744 cast(LPARAM) st); 5358 5745 } 5359 5746 5360 -extern (Windows) BOOL ShowHideMenuCtl(HWND, UINT, PINT); 5747 +extern (Windows) BOOL ShowHideMenuCtl(HWND, UINT_PTR, PINT); 5361 5748 5362 5749 BOOL TabCtrl_GetItem(HWND w, int i, LPTCITEM p) { 5363 5750 return cast(BOOL) SendMessage(w, TCM_GETITEM, i, cast(LPARAM) p); 5364 5751 } 5365 5752 5366 5753 BOOL TabCtrl_SetItem(HWND w, int i, LPTCITEM p) { 5367 5754 return cast(BOOL) SendMessage(w, TCM_SETITEM, i, cast(LPARAM) p); 5368 5755 } 5369 5756 5370 -int TabCtrl_InsertItem(HWND w, int i, CPtr!(TC_ITEM) p) { 5371 - return SendMessage(w, TCM_INSERTITEM, i, cast(LPARAM) p); 5757 +int TabCtrl_InsertItem(HWND w, int i, const(TC_ITEM)* p) { 5758 + return cast(int) SendMessage(w, TCM_INSERTITEM, i, cast(LPARAM) p); 5372 5759 } 5373 5760 5374 5761 BOOL TabCtrl_DeleteItem(HWND w, int i) { 5375 5762 return cast(BOOL) SendMessage(w, TCM_DELETEITEM, i, 0); 5376 5763 } 5377 5764 5378 5765 BOOL TabCtrl_DeleteAllItems(HWND w) { ................................................................................ 5380 5767 } 5381 5768 5382 5769 BOOL TabCtrl_GetItemRect(HWND w, int i, LPRECT p) { 5383 5770 return cast(BOOL) SendMessage(w, TCM_GETITEMRECT, i, cast(LPARAM) p); 5384 5771 } 5385 5772 5386 5773 int TabCtrl_GetCurSel(HWND w) { 5387 - return SendMessage(w, TCM_GETCURSEL, 0, 0); 5774 + return cast(int) SendMessage(w, TCM_GETCURSEL, 0, 0); 5388 5775 } 5389 5776 5390 5777 int TabCtrl_SetCurSel(HWND w, int i) { 5391 - return SendMessage(w, TCM_SETCURSEL, i, 0); 5778 + return cast(int) SendMessage(w, TCM_SETCURSEL, i, 0); 5392 5779 } 5393 5780 5394 5781 int TabCtrl_HitTest(HWND w, LPTCHITTESTINFO p) { 5395 - return SendMessage(w, TCM_HITTEST, 0, cast(LPARAM) p); 5782 + return cast(int) SendMessage(w, TCM_HITTEST, 0, cast(LPARAM) p); 5396 5783 } 5397 5784 5398 5785 BOOL TabCtrl_SetItemExtra(HWND w, int c) { 5399 5786 return cast(BOOL) SendMessage(w, TCM_SETITEMEXTRA, c, 0); 5400 5787 } 5401 5788 5402 5789 int TabCtrl_AdjustRect(HWND w, BOOL b, LPRECT p) { 5403 - return SendMessage(w, TCM_ADJUSTRECT, b, cast(LPARAM) p); 5790 + return cast(int) SendMessage(w, TCM_ADJUSTRECT, b, cast(LPARAM) p); 5404 5791 } 5405 5792 5406 5793 DWORD TabCtrl_SetItemSize(HWND w, int x, int y) { 5407 5794 return cast(DWORD) SendMessage(w, TCM_SETITEMSIZE, 0, MAKELPARAM(cast(ushort)x, cast(ushort)y)); 5408 5795 } 5409 5796 5410 5797 void TabCtrl_RemoveImage(HWND w, int i) { ................................................................................ 5412 5799 } 5413 5800 5414 5801 void TabCtrl_SetPadding(HWND w, int x, int y) { 5415 5802 SendMessage(w, TCM_SETPADDING, 0, MAKELPARAM(cast(ushort)x, cast(ushort)y)); 5416 5803 } 5417 5804 5418 5805 int TabCtrl_GetRowCount(HWND w) { 5419 - return SendMessage(w, TCM_GETROWCOUNT, 0, 0); 5806 + return cast(int) SendMessage(w, TCM_GETROWCOUNT, 0, 0); 5420 5807 } 5421 5808 5422 5809 HWND TabCtrl_GetToolTips(HWND w) { 5423 5810 return cast(HWND) SendMessage(w, TCM_GETTOOLTIPS, 0, 0); 5424 5811 } 5425 5812 5426 5813 void TabCtrl_SetToolTips(HWND w, HWND t) { 5427 5814 SendMessage(w, TCM_SETTOOLTIPS, cast(WPARAM) t, 0); 5428 5815 } 5429 5816 5430 5817 int TabCtrl_GetCurFocus(HWND w) { 5431 - return SendMessage(w, TCM_GETCURFOCUS, 0, 0); 5818 + return cast(int) SendMessage(w, TCM_GETCURFOCUS, 0, 0); 5432 5819 } 5433 5820 5434 5821 void TabCtrl_SetCurFocus(HWND w, int i) { 5435 5822 SendMessage(w, TCM_SETCURFOCUS, i, 0); 5436 5823 } 5437 5824 5438 5825 HIMAGELIST TabCtrl_GetImageList(HWND w) { ................................................................................ 5441 5828 5442 5829 HIMAGELIST TabCtrl_SetImageList(HWND w, HIMAGELIST h) { 5443 5830 return cast(HIMAGELIST) SendMessage(w, TCM_SETIMAGELIST, 0, 5444 5831 cast(LPARAM) h); 5445 5832 } 5446 5833 5447 5834 int TabCtrl_GetItemCount(HWND w) { 5448 - return SendMessage(w, TCM_GETITEMCOUNT, 0, 0); 5835 + return cast(int) SendMessage(w, TCM_GETITEMCOUNT, 0, 0); 5449 5836 } 5450 5837 5451 5838 extern (Windows) BOOL _TrackMouseEvent(LPTRACKMOUSEEVENT); 5452 5839 5453 5840 HTREEITEM TreeView_InsertItem(HWND w, LPTVINSERTSTRUCT i) { 5454 5841 return cast(HTREEITEM) SendMessage(w, TVM_INSERTITEM, 0, cast(LPARAM) i); 5455 5842 } ................................................................................ 5552 5939 return TreeView_Select(w, i, TVGN_FIRSTVISIBLE); 5553 5940 } 5554 5941 5555 5942 BOOL TreeView_GetItem(HWND w, LPTVITEM i) { 5556 5943 return cast(BOOL) SendMessage(w, TVM_GETITEM, 0, cast(LPARAM) i); 5557 5944 } 5558 5945 5559 -BOOL TreeView_SetItem(HWND w, CPtr!(TV_ITEM) i) { 5946 +BOOL TreeView_SetItem(HWND w, const(TV_ITEM)* i) { 5560 5947 return cast(BOOL) SendMessage(w, TVM_SETITEM, 0, cast(LPARAM) i); 5561 5948 } 5562 5949 5563 5950 HWND TreeView_EditLabel(HWND w, HTREEITEM i) { 5564 5951 return cast(HWND) SendMessage(w, TVM_EDITLABEL, 0, cast(LPARAM) i); 5565 5952 } 5566 5953 ................................................................................ 5630 6017 } 5631 6018 5632 6019 HCURSOR ListView_GetHotCursor(HWND w) { 5633 6020 return cast(HCURSOR) SendMessage(w, LVM_GETHOTCURSOR, 0, 0); 5634 6021 } 5635 6022 5636 6023 INT ListView_GetHotItem(HWND w) { 5637 - return SendMessage(w, LVM_GETHOTITEM, 0, 0); 6024 + return cast(INT) SendMessage(w, LVM_GETHOTITEM, 0, 0); 5638 6025 } 5639 6026 5640 6027 BOOL ListView_GetSubItemRect(HWND w, int i, int isi, int c, LPRECT p) { 5641 6028 return cast(BOOL) SendMessage(w, LVM_GETSUBITEMRECT, i, 5642 6029 p ? (p.left = c, p.top = isi, cast(LPARAM) p) : 0); 5643 6030 } 5644 6031 5645 6032 HCURSOR ListView_SetHotCursor(HWND w, HCURSOR c) { 5646 6033 return cast(HCURSOR) SendMessage(w, LVM_SETHOTCURSOR, 0, 5647 6034 cast(LPARAM) c); 5648 6035 } 5649 6036 5650 6037 INT ListView_SetHotItem(HWND w, INT i) { 5651 - return SendMessage(w, LVM_SETHOTITEM, cast(WPARAM) i, 0); 6038 + return cast(INT) SendMessage(w, LVM_SETHOTITEM, cast(WPARAM) i, 0); 5652 6039 } 5653 6040 5654 6041 DWORD ListView_SetIconSpacing(HWND w, int x, int y) { 5655 6042 return cast(DWORD) SendMessage(w, LVM_SETICONSPACING, 0, 5656 6043 MAKELONG(cast(ushort)x, cast(ushort)y)); 5657 6044 } 5658 6045 5659 6046 INT ListView_SubItemHitTest(HWND w, LPLVHITTESTINFO p) { 5660 - return SendMessage(w, LVM_SUBITEMHITTEST, 0, cast(LPARAM) p); 6047 + return cast(INT) SendMessage(w, LVM_SUBITEMHITTEST, 0, cast(LPARAM) p); 5661 6048 } 5662 6049 5663 6050 BOOL ListView_SetItemCountEx(HWND w, int i, DWORD f) { 5664 6051 return cast(BOOL) SendMessage(w, LVM_SETITEMCOUNT, i, cast(LPARAM) f); 5665 6052 } 5666 6053 5667 6054 extern (Windows) { 5668 6055 WINBOOL ImageList_SetImageCount(HIMAGELIST, UINT); 5669 6056 WINBOOL ImageList_Copy(HIMAGELIST, int, HIMAGELIST, int, UINT); 5670 6057 WINBOOL ImageList_DrawIndirect(IMAGELISTDRAWPARAMS*); 5671 6058 } 5672 6059 5673 6060 int TabCtrl_SetMinTabWidth(HWND hwnd, int x) { 5674 - return SendMessage(hwnd, TCM_SETMINTABWIDTH, 0, x); 6061 + return cast(int) SendMessage(hwnd, TCM_SETMINTABWIDTH, 0, x); 5675 6062 } 5676 6063 5677 6064 VOID TabCtrl_DeselectAll(HWND hwnd, UINT fExcludeFocus) { 5678 6065 SendMessage(hwnd, TCM_DESELECTALL, fExcludeFocus, 0); 5679 6066 } 5680 6067 5681 6068 HWND TreeView_GetToolTips(HWND w) { ................................................................................ 5721 6108 } 5722 6109 5723 6110 DWORD ListView_GetHoverTime(HWND w) { 5724 6111 return cast(DWORD) SendMessage(w, LVM_GETHOVERTIME, 0, 0); 5725 6112 } 5726 6113 5727 6114 INT ListView_GetSelectionMark(HWND w) { 5728 - return SendMessage(w, LVM_GETSELECTIONMARK, 0, 0); 6115 + return cast(INT) SendMessage(w, LVM_GETSELECTIONMARK, 0, 0); 5729 6116 } 5730 6117 5731 6118 INT ListView_SetSelectionMark(HWND w, INT i) { 5732 - return SendMessage(w, LVM_SETSELECTIONMARK, 0, cast(LPARAM) i); 6119 + return cast(INT) SendMessage(w, LVM_SETSELECTIONMARK, 0, cast(LPARAM) i); 5733 6120 } 5734 6121 5735 6122 HWND ListView_SetToolTips(HWND w, HWND n) { 5736 6123 return cast(HWND) SendMessage(w, LVM_SETTOOLTIPS, cast(WPARAM) n, 0); 5737 6124 } 5738 6125 5739 6126 HWND ListView_GetToolTips(HWND w) { ................................................................................ 5776 6163 } 5777 6164 5778 6165 COLORREF TreeView_GetInsertMarkColor(HWND w) { 5779 6166 return cast(COLORREF) SendMessage(w, TVM_GETINSERTMARKCOLOR, 0, 0); 5780 6167 } 5781 6168 5782 6169 int TreeView_GetItemHeight(HWND w) { 5783 - return SendMessage(w, TVM_GETITEMHEIGHT, 0, 0); 6170 + return cast(int) SendMessage(w, TVM_GETITEMHEIGHT, 0, 0); 5784 6171 } 5785 6172 5786 6173 UINT TreeView_GetScrollTime(HWND w) { 5787 6174 return cast(UINT) SendMessage(w, TVM_GETSCROLLTIME, 0, 0); 5788 6175 } 5789 6176 5790 6177 COLORREF TreeView_GetTextColor(HWND w) { ................................................................................ 5798 6185 5799 6186 COLORREF TreeView_SetInsertMarkColor(HWND w, COLORREF c) { 5800 6187 return cast(COLORREF) SendMessage(w, TVM_SETINSERTMARKCOLOR, 0, 5801 6188 cast(LPARAM) c); 5802 6189 } 5803 6190 5804 6191 int TreeView_SetItemHeight(HWND w, SHORT h) { 5805 - return SendMessage(w, TVM_SETITEMHEIGHT, cast(WPARAM) h, 0); 6192 + return cast(int) SendMessage(w, TVM_SETITEMHEIGHT, cast(WPARAM) h, 0); 5806 6193 } 5807 6194 5808 6195 UINT TreeView_SetScrollTime(HWND w, UINT t) { 5809 6196 return cast(UINT) SendMessage(w, TVM_SETSCROLLTIME, cast(WPARAM) t, 0); 5810 6197 } 5811 6198 5812 6199 COLORREF TreeView_SetTextColor(HWND w, COLORREF c) { ................................................................................ 5868 6255 // MinGW: These two are not in the DLL 5869 6256 void CommandBar_InsertButton(HWND hwnd, int i, LPTBBUTTON lptbbutton) { 5870 6257 SendMessage(hwnd, TB_INSERTBUTTON, i, lptbbutton); 5871 6258 } 5872 6259 alias DestroyWindow CommandBar_Destroy; 5873 6260 +/ 5874 6261 //#endif // _WIN32_WCE 6262 + 6263 + 6264 +static if (_WIN32_WINNT >= 0x501) { 6265 + struct EDITBALLOONTIP 6266 + { 6267 + DWORD cbStruct; 6268 + LPCWSTR pszTitle; 6269 + LPCWSTR pszText; 6270 + INT ttiIcon; 6271 + } 6272 + alias EDITBALLOONTIP* PEDITBALLOONTIP; 6273 + 6274 + const EM_SETCUEBANNER = ECM_FIRST + 1; 6275 + const EM_GETCUEBANNER = ECM_FIRST + 2; 6276 + const EM_SHOWBALLOONTIP = ECM_FIRST + 3; 6277 + const EM_HIDEBALLOONTIP = ECM_FIRST + 4; 6278 +} 6279 + 6280 +static if (_WIN32_WINNT >= 0x600) { 6281 + const EM_SETHILITE = ECM_FIRST + 5; 6282 + const EM_GETHILITE = ECM_FIRST + 6; 6283 +}

Modified src/win32/commdlg.d from [dce8014c88d4101f] to [969f3a046d040fe8].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW API for MS-Windows 3.12 * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.commdlg; 11 -pragma(lib, "comdlg32.lib"); 11 +pragma(lib, "comdlg32"); 12 12 13 13 private import win32.w32api; 14 14 import win32.windef, win32.winuser; 15 15 import win32.wingdi; // for LPLOGFONTA 16 16 17 17 const TCHAR[] 18 18 LBSELCHSTRING = "commdlg_LBSelChangedNotify", ................................................................................ 28 28 CDN_LAST = -699, 29 29 CDN_INITDONE = CDN_FIRST, 30 30 CDN_SELCHANGE = CDN_FIRST - 1, 31 31 CDN_FOLDERCHANGE = CDN_FIRST - 2, 32 32 CDN_SHAREVIOLATION = CDN_FIRST - 3, 33 33 CDN_HELP = CDN_FIRST - 4, 34 34 CDN_FILEOK = CDN_FIRST - 5, 35 - CDN_TYPECHANGE = CDN_FIRST - 6 35 + CDN_TYPECHANGE = CDN_FIRST - 6, 36 +} 37 + 38 +static if(_WIN32_WINNT >= 0x500) 39 +{ 40 + enum : UINT { 41 + CDN_INCLUDEITEM = CDN_FIRST - 7, 42 + } 36 43 } 37 44 38 45 enum : UINT { 39 46 CDM_FIRST = WM_USER + 100, 40 47 CDM_LAST = WM_USER + 200, 41 48 CDM_GETSPEC = CDM_FIRST, 42 49 CDM_GETFILEPATH, ................................................................................ 184 191 PD_USEDEVMODECOPIES = 0x040000, 185 192 PD_USEDEVMODECOPIESANDCOLLATE = 0x040000, 186 193 PD_DISABLEPRINTTOFILE = 0x080000, 187 194 PD_HIDEPRINTTOFILE = 0x100000, 188 195 PD_NONETWORKBUTTON = 0x200000 189 196 } 190 197 191 -static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 198 +static if (_WIN32_WINNT >= 0x500) { 192 199 enum : DWORD { 193 200 PD_CURRENTPAGE = 0x00400000, 194 201 PD_NOCURRENTPAGE = 0x00800000, 195 202 PD_EXCLUSIONFLAGS = 0x01000000, 196 203 PD_USELARGETEMPLATE = 0x10000000, 197 204 } 198 205 ................................................................................ 285 292 CommDlg_OpenSave_GetFilePathA, CommDlg_OpenSave_GetFilePathW; 286 293 alias CommDlg_OpenSave_GetFolderPath 287 294 CommDlg_OpenSave_GetFolderPathA, CommDlg_OpenSave_GetFolderPathW; 288 295 +/ 289 296 290 297 // Callbacks. 291 298 extern(Windows) { 292 -alias UINT function (HWND, UINT, WPARAM, LPARAM) 299 +alias UINT_PTR function (HWND, UINT, WPARAM, LPARAM) 293 300 LPCCHOOKPROC, LPCFHOOKPROC, LPFRHOOKPROC, LPOFNHOOKPROC, 294 301 LPPAGEPAINTHOOK, LPPAGESETUPHOOK, LPSETUPHOOKPROC, LPPRINTHOOKPROC; 295 302 } 296 303 297 304 align (1): 298 305 299 306 struct CHOOSECOLORA { ................................................................................ 418 425 WORD nFileOffset; 419 426 WORD nFileExtension; 420 427 LPCSTR lpstrDefExt; 421 428 DWORD lCustData; 422 429 LPOFNHOOKPROC lpfnHook; 423 430 LPCSTR lpTemplateName; 424 431 425 - static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x0500) { 432 + static if (_WIN32_WINNT >= 0x500) { 426 433 void *pvReserved; 427 434 DWORD dwReserved; 428 435 DWORD FlagsEx; 429 436 } 430 437 } 431 438 alias OPENFILENAMEA* LPOPENFILENAMEA; 432 439 ................................................................................ 448 455 WORD nFileOffset; 449 456 WORD nFileExtension; 450 457 LPCWSTR lpstrDefExt; 451 458 DWORD lCustData; 452 459 LPOFNHOOKPROC lpfnHook; 453 460 LPCWSTR lpTemplateName; 454 461 455 - static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x0500) { 462 + static if (_WIN32_WINNT >= 0x500) { 456 463 void *pvReserved; 457 464 DWORD dwReserved; 458 465 DWORD FlagsEx; 459 466 } 460 467 } 461 468 alias OPENFILENAMEW* LPOPENFILENAMEW; 462 469 ................................................................................ 554 561 LPCWSTR lpPrintTemplateName; 555 562 LPCWSTR lpSetupTemplateName; 556 563 HANDLE hPrintTemplate; 557 564 HANDLE hSetupTemplate; 558 565 } 559 566 alias PRINTDLGW* LPPRINTDLGW; 560 567 561 -static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 568 +static if (_WIN32_WINNT >= 0x500) { 562 569 import win32.unknwn; // for LPUNKNOWN 563 570 import win32.prsht; // for HPROPSHEETPAGE 564 571 565 572 struct PRINTPAGERANGE { 566 573 DWORD nFromPage; 567 574 DWORD nToPage; 568 575 } ................................................................................ 614 621 DWORD nPropertyPages; 615 622 HPROPSHEETPAGE* lphPropertyPages; 616 623 DWORD nStartPage; 617 624 DWORD dwResultAction; 618 625 } 619 626 alias PRINTDLGEXW* LPPRINTDLGEXW; 620 627 621 -} // _WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500 628 +} // _WIN32_WINNT >= 0x500 622 629 623 630 extern (Windows) { 624 631 BOOL ChooseColorA(LPCHOOSECOLORA); 625 632 BOOL ChooseColorW(LPCHOOSECOLORW); 626 633 BOOL ChooseFontA(LPCHOOSEFONTA); 627 634 BOOL ChooseFontW(LPCHOOSEFONTW); 628 635 DWORD CommDlgExtendedError(); ................................................................................ 637 644 BOOL PageSetupDlgA(LPPAGESETUPDLGA); 638 645 BOOL PageSetupDlgW(LPPAGESETUPDLGW); 639 646 BOOL PrintDlgA(LPPRINTDLGA); 640 647 BOOL PrintDlgW(LPPRINTDLGW); 641 648 HWND ReplaceTextA(LPFINDREPLACEA); 642 649 HWND ReplaceTextW(LPFINDREPLACEW); 643 650 644 - static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 651 + static if (_WIN32_WINNT >= 0x500) { 645 652 HRESULT PrintDlgExA(LPPRINTDLGEXA); 646 653 HRESULT PrintDlgExW(LPPRINTDLGEXW); 647 654 } 648 655 } 649 656 650 657 version (Unicode) { 651 658 alias CHOOSECOLORW CHOOSECOLOR; ................................................................................ 662 669 alias GetFileTitleW GetFileTitle; 663 670 alias GetOpenFileNameW GetOpenFileName; 664 671 alias GetSaveFileNameW GetSaveFileName; 665 672 alias PageSetupDlgW PageSetupDlg; 666 673 alias PrintDlgW PrintDlg; 667 674 alias ReplaceTextW ReplaceText; 668 675 669 - static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 676 + static if (_WIN32_WINNT >= 0x500) { 670 677 alias PRINTDLGEXW PRINTDLGEX; 671 678 alias PrintDlgExW PrintDlgEx; 672 679 } 673 680 674 681 } else { // UNICODE 675 682 676 683 alias CHOOSECOLORA CHOOSECOLOR; ................................................................................ 687 694 alias GetFileTitleA GetFileTitle; 688 695 alias GetOpenFileNameA GetOpenFileName; 689 696 alias GetSaveFileNameA GetSaveFileName; 690 697 alias PageSetupDlgA PageSetupDlg; 691 698 alias PrintDlgA PrintDlg; 692 699 alias ReplaceTextA ReplaceText; 693 700 694 - static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 701 + static if (_WIN32_WINNT >= 0x500) { 695 702 alias PRINTDLGEXA PRINTDLGEX; 696 703 alias PrintDlgExA PrintDlgEx; 697 704 } 698 705 699 706 } // UNICODE 700 707 701 708 alias CHOOSECOLOR* LPCHOOSECOLOR; 702 709 alias CHOOSEFONT* LPCHOOSEFONT; 703 710 alias FINDREPLACE* LPFINDREPLACE; 704 711 alias OPENFILENAME* LPOPENFILENAME; 705 712 alias OFNOTIFY* LPOFNOTIFY; 706 713 alias PAGESETUPDLG* LPPAGESETUPDLG; 707 714 alias PRINTDLG* LPPRINTDLG; 708 -static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 715 +static if (_WIN32_WINNT >= 0x500) { 709 716 alias PRINTDLGEX* LPPRINTDLGEX; 710 717 }

Modified src/win32/core.d from [6c13098b7fb6c6bb] to [e5e5eb8c58232f94].

23 23 public import win32.wincon; 24 24 public import win32.winbase; 25 25 public import win32.wingdi; 26 26 public import win32.winuser; 27 27 public import win32.winnls; 28 28 public import win32.winver; 29 29 public import win32.winnetwk; 30 - 31 -// We can't use static if for imports, build gets confused. 32 -// static if (_WIN32_WINNT_ONLY) import win32.winsvc; 33 -version (WindowsVista) { 34 - version = WIN32_WINNT_ONLY; 35 -} else version (Windows2003) { 36 - version = WIN32_WINNT_ONLY; 37 -} else version (WindowsXP) { 38 - version = WIN32_WINNT_ONLY; 39 -} else version (WindowsNTonly) { 40 - version = WIN32_WINNT_ONLY; 41 -} 42 - 43 -version (WIN32_WINNT_ONLY) { 44 - public import win32.winsvc; 45 -} 30 +public import win32.winsvc;

Modified src/win32/cpl.d from [a3afcd1ae7c02e60] to [328401c2f5b596bc].

Modified src/win32/cplext.d from [343570357e337d93] to [af4d6a6acf290cf4].

Modified src/win32/custcntl.d from [0b928064c01a1f8e] to [c2a5d303a50bd653].

Modified src/win32/dbt.d from [aebc33dc791d8664] to [b2df05f31e090a3d].

21 21 DBT_DEVICEARRIVAL = 0x8000, 22 22 DBT_DEVICEQUERYREMOVE = 0x8001, 23 23 DBT_DEVICEQUERYREMOVEFAILED = 0x8002, 24 24 DBT_DEVICEREMOVEPENDING = 0x8003, 25 25 DBT_DEVICEREMOVECOMPLETE = 0x8004, 26 26 DBT_DEVICETYPESPECIFIC = 0x8005, 27 27 DBT_DEVTYP_OEM = 0, 28 - DBT_DEVTYP_DEVNODE = 1, 29 - DBT_DEVTYP_VOLUME = 2, 30 - DBT_DEVTYP_PORT = 3, 31 - DBT_DEVTYP_NET = 4 32 -} 33 - 34 -static if (_WIN32_WINDOWS >= 0x040A) { 35 - enum : DWORD { 36 - DBT_DEVTYP_DEVICEINTERFACE = 5, 37 - DBT_DEVTYP_HANDLE = 6 38 - } 28 + DBT_DEVTYP_DEVNODE, 29 + DBT_DEVTYP_VOLUME, 30 + DBT_DEVTYP_PORT, 31 + DBT_DEVTYP_NET, 32 + DBT_DEVTYP_DEVICEINTERFACE, 33 + DBT_DEVTYP_HANDLE // = 6 39 34 } 40 35 41 36 enum : DWORD { 42 37 DBT_APPYBEGIN, 43 38 DBT_APPYEND, 44 39 DBT_DEVNODES_CHANGED = 7, 45 40 DBT_QUERYCHANGECONFIG = 0x17, ................................................................................ 77 72 BSF_NOTIMEOUTIFNOTHUNG = 0x00000040, 78 73 BSF_POSTMESSAGE = 0x00000010, 79 74 BSF_QUERY = 0x00000001, 80 75 BSF_MSGSRV32ISOK_BIT = 31, 81 76 BSF_MSGSRV32ISOK = 0x80000000 82 77 } 83 78 84 -static if (_WIN32_WINNT >= 0x0500) { 79 +static if (_WIN32_WINNT >= 0x500) { 85 80 enum : DWORD { 86 81 BSF_ALLOWSFW = 0x00000080, 87 82 BSF_SENDNOTIFYMESSAGE = 0x00000100 88 83 } 89 84 } 90 85 91 -static if (_WIN32_WINNT >= 0x0501) { 86 +static if (_WIN32_WINNT >= 0x501) { 92 87 enum : DWORD { 93 88 BSF_LUID = 0x00000400, 94 89 BSF_RETURNHDESK = 0x00000200 95 90 } 96 91 } 97 92 98 93 struct DEV_BROADCAST_HDR { ................................................................................ 147 142 version (Unicode) { 148 143 alias DEV_BROADCAST_PORT_W DEV_BROADCAST_PORT; 149 144 } else { 150 145 alias DEV_BROADCAST_PORT_A DEV_BROADCAST_PORT; 151 146 } 152 147 alias DEV_BROADCAST_PORT* PDEV_BROADCAST_PORT; 153 148 154 -static if ((_WIN32_WINDOWS >= 0x0410) || (_WIN32_WINNT >= 0x0500)) { 149 +static if (_WIN32_WINNT >= 0x500) { 155 150 struct DEV_BROADCAST_DEVICEINTERFACE_A { 156 151 DWORD dbcc_size = DEV_BROADCAST_DEVICEINTERFACE_A.sizeof; 157 152 DWORD dbcc_devicetype; 158 153 DWORD dbcc_reserved; 159 154 GUID dbcc_classguid; 160 155 char _dbcc_name; 161 156 char* dbcc_name() { return &_dbcc_name; }

Modified src/win32/dde.d from [958265cdfd657f8f] to [4b60b1e6f45bd956].

5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * by Stewart Gordon * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.dde; 12 -pragma(lib, "user32.lib"); 12 +pragma(lib, "user32"); 13 13 14 14 private import win32.windef; 15 15 16 16 enum : uint { 17 17 WM_DDE_FIRST = 0x03E0, 18 18 WM_DDE_INITIATE = WM_DDE_FIRST, 19 19 WM_DDE_TERMINATE, ................................................................................ 27 27 WM_DDE_LAST = WM_DDE_EXECUTE 28 28 } 29 29 30 30 struct DDEACK { 31 31 ubyte bAppReturnCode; 32 32 ubyte _bf; 33 33 34 - ubyte reserved() { return cast(ubyte) (_bf & 0x3F); } 35 - bool fBusy() { return cast(bool) (_bf & 0x40); } 36 - bool fAck() { return cast(bool) (_bf & 0x80); } 34 + @property ubyte reserved() { return cast(ubyte) (_bf & 0x3F); } 35 + @property bool fBusy() { return cast(bool) (_bf & 0x40); } 36 + @property bool fAck() { return cast(bool) (_bf & 0x80); } 37 37 38 - ubyte reserved(ubyte r) { 38 + @property ubyte reserved(ubyte r) { 39 39 _bf = cast(ubyte) ((_bf & ~0x3F) | (r & 0x3F)); 40 40 return cast(ubyte)(r & 0x3F); 41 41 } 42 42 43 - bool fBusy(bool f) { _bf = cast(ubyte) ((_bf & ~0x40) | (f << 6)); return f; } 44 - bool fAck(bool f) { _bf = cast(ubyte) ((_bf & ~0x80) | (f << 7)); return f; } 43 + @property bool fBusy(bool f) { _bf = cast(ubyte) ((_bf & ~0x40) | (f << 6)); return f; } 44 + @property bool fAck(bool f) { _bf = cast(ubyte) ((_bf & ~0x80) | (f << 7)); return f; } 45 45 } 46 46 47 47 struct DDEADVISE { 48 48 ushort _bf; 49 49 short cfFormat; 50 50 51 - ushort reserved() { return cast(ushort) (_bf & 0x3FFF); } 52 - bool fDeferUpd() { return cast(bool) (_bf & 0x4000); } 53 - bool fAckReq() { return cast(bool) (_bf & 0x8000); } 51 + @property ushort reserved() { return cast(ushort) (_bf & 0x3FFF); } 52 + @property bool fDeferUpd() { return cast(bool) (_bf & 0x4000); } 53 + @property bool fAckReq() { return cast(bool) (_bf & 0x8000); } 54 54 55 - ushort reserved(ushort r) { 55 + @property ushort reserved(ushort r) { 56 56 _bf = cast(ushort) ((_bf & ~0x3FFF) | (r & 0x3FFF)); 57 57 return cast(ushort)(r & 0x3FFF); 58 58 } 59 59 60 - bool fDeferUpd(bool f) { _bf = cast(ushort) ((_bf & ~0x4000) | (f << 14)); return f; } 61 - bool fAckReq(bool f) { _bf = cast(ushort) ((_bf & ~0x8000) | (f << 15)); return f; } 60 + @property bool fDeferUpd(bool f) { _bf = cast(ushort) ((_bf & ~0x4000) | (f << 14)); return f; } 61 + @property bool fAckReq(bool f) { _bf = cast(ushort) ((_bf & ~0x8000) | (f << 15)); return f; } 62 62 } 63 63 64 64 struct DDEDATA { 65 65 ushort _bf; 66 66 short cfFormat; 67 67 byte _Value; 68 68 69 - ushort unused() { return cast(ushort) (_bf & 0x0FFF); } 70 - bool fResponse() { return cast(bool) (_bf & 0x1000); } 71 - bool fRelease() { return cast(bool) (_bf & 0x2000); } 72 - bool reserved() { return cast(bool) (_bf & 0x4000); } 73 - bool fAckReq() { return cast(bool) (_bf & 0x8000); } 69 + @property ushort unused() { return cast(ushort) (_bf & 0x0FFF); } 70 + @property bool fResponse() { return cast(bool) (_bf & 0x1000); } 71 + @property bool fRelease() { return cast(bool) (_bf & 0x2000); } 72 + @property bool reserved() { return cast(bool) (_bf & 0x4000); } 73 + @property bool fAckReq() { return cast(bool) (_bf & 0x8000); } 74 74 75 - byte* Value() { return &_Value; } 75 + @property byte* Value() { return &_Value; } 76 76 77 - ushort unused(ushort r) { 77 + @property ushort unused(ushort r) { 78 78 _bf = cast(ushort) ((_bf & ~0x0FFF) | (r & 0x0FFF)); 79 79 return cast(ushort)(r & 0x0FFF); 80 80 } 81 81 82 - bool fResponse(bool f) { _bf = cast(ushort) ((_bf & ~0x1000) | (f << 12)); return f; } 83 - bool fRelease(bool f) { _bf = cast(ushort) ((_bf & ~0x2000) | (f << 13)); return f; } 84 - bool reserved(bool f) { _bf = cast(ushort) ((_bf & ~0x4000) | (f << 14)); return f; } 85 - bool fAckReq(bool f) { _bf = cast(ushort) ((_bf & ~0x8000) | (f << 15)); return f; } 82 + @property bool fResponse(bool f) { _bf = cast(ushort) ((_bf & ~0x1000) | (f << 12)); return f; } 83 + @property bool fRelease(bool f) { _bf = cast(ushort) ((_bf & ~0x2000) | (f << 13)); return f; } 84 + @property bool reserved(bool f) { _bf = cast(ushort) ((_bf & ~0x4000) | (f << 14)); return f; } 85 + @property bool fAckReq(bool f) { _bf = cast(ushort) ((_bf & ~0x8000) | (f << 15)); return f; } 86 86 } 87 87 88 88 struct DDEPOKE { 89 89 ushort _bf; 90 90 short cfFormat; 91 91 byte _Value; 92 92 93 - ushort unused() { return cast(ushort) (_bf & 0x1FFF); } 94 - bool fRelease() { return cast(bool) (_bf & 0x2000); } 95 - ubyte fReserved() { return cast(ubyte) ((_bf & 0xC000) >>> 14); } 93 + @property ushort unused() { return cast(ushort) (_bf & 0x1FFF); } 94 + @property bool fRelease() { return cast(bool) (_bf & 0x2000); } 95 + @property ubyte fReserved() { return cast(ubyte) ((_bf & 0xC000) >>> 14); } 96 96 97 - byte* Value() { return &_Value; } 97 + @property byte* Value() { return &_Value; } 98 98 99 - ushort unused(ushort u) { 99 + @property ushort unused(ushort u) { 100 100 _bf = cast(ushort) ((_bf & ~0x1FFF) | (u & 0x1FFF)); 101 101 return cast(ushort)(u & 0x1FFF); 102 102 } 103 103 104 - bool fRelease(bool f) { _bf = cast(ushort) ((_bf & ~0x2000) | (f << 13)); return f; } 105 - ubyte fReserved(ubyte r) { _bf = cast(ushort) ((_bf & ~0xC000) | (r << 14)); return r; } 104 + @property bool fRelease(bool f) { _bf = cast(ushort) ((_bf & ~0x2000) | (f << 13)); return f; } 105 + @property ubyte fReserved(ubyte r) { _bf = cast(ushort) ((_bf & ~0xC000) | (r << 14)); return r; } 106 106 } 107 107 108 108 deprecated struct DDELN { 109 109 ushort _bf; 110 110 short cfFormat; 111 111 112 - ushort unused() { return cast(ushort) (_bf & 0x1FFF); } 113 - bool fRelease() { return cast(bool) (_bf & 0x2000); } 114 - bool fDeferUpd() { return cast(bool) (_bf & 0x4000); } 115 - bool fAckReq() { return cast(bool) (_bf & 0x8000); } 112 + @property ushort unused() { return cast(ushort) (_bf & 0x1FFF); } 113 + @property bool fRelease() { return cast(bool) (_bf & 0x2000); } 114 + @property bool fDeferUpd() { return cast(bool) (_bf & 0x4000); } 115 + @property bool fAckReq() { return cast(bool) (_bf & 0x8000); } 116 116 117 - ushort unused(ushort u) { 117 + @property ushort unused(ushort u) { 118 118 _bf = cast(ushort)((_bf & ~0x1FFF) | (u & 0x1FFF)); 119 119 return cast(ushort)(u & 0x1FFF); 120 120 } 121 121 122 - bool fRelease(bool f) { _bf = cast(ushort) ((_bf & ~0x2000) | (f << 13)); return f; } 123 - bool fDeferUpd(bool f) { _bf = cast(ushort) ((_bf & ~0x4000) | (f << 14)); return f; } 124 - bool fAckReq(bool f) { _bf = cast(ushort) ((_bf & ~0x8000) | (f << 15)); return f; } 122 + @property bool fRelease(bool f) { _bf = cast(ushort) ((_bf & ~0x2000) | (f << 13)); return f; } 123 + @property bool fDeferUpd(bool f) { _bf = cast(ushort) ((_bf & ~0x4000) | (f << 14)); return f; } 124 + @property bool fAckReq(bool f) { _bf = cast(ushort) ((_bf & ~0x8000) | (f << 15)); return f; } 125 125 } 126 126 127 127 deprecated struct DDEUP { 128 128 ushort _bf; 129 129 short cfFormat; 130 130 byte _rgb; 131 131 132 - ushort unused() { return cast(ushort) (_bf & 0x0FFF); } 133 - bool fAck() { return cast(bool) (_bf & 0x1000); } 134 - bool fRelease() { return cast(bool) (_bf & 0x2000); } 135 - bool fReserved() { return cast(bool) (_bf & 0x4000); } 136 - bool fAckReq() { return cast(bool) (_bf & 0x8000); } 132 + @property ushort unused() { return cast(ushort) (_bf & 0x0FFF); } 133 + @property bool fAck() { return cast(bool) (_bf & 0x1000); } 134 + @property bool fRelease() { return cast(bool) (_bf & 0x2000); } 135 + @property bool fReserved() { return cast(bool) (_bf & 0x4000); } 136 + @property bool fAckReq() { return cast(bool) (_bf & 0x8000); } 137 137 138 - byte* rgb() { return &_rgb; } 138 + @property byte* rgb() { return &_rgb; } 139 139 140 - ushort unused(ushort r) { 140 + @property ushort unused(ushort r) { 141 141 _bf = cast(ushort) ((_bf & ~0x0FFF) | (r & 0x0FFF)); 142 142 return cast(ushort)(r & 0x0FFF); 143 143 } 144 144 145 - bool fAck(bool f) { _bf = cast(ushort) ((_bf & ~0x1000) | (f << 12)); return f; } 146 - bool fRelease(bool f) { _bf = cast(ushort) ((_bf & ~0x2000) | (f << 13)); return f; } 147 - bool fReserved(bool f) { _bf = cast(ushort) ((_bf & ~0x4000) | (f << 14)); return f; } 148 - bool fAckReq(bool f) { _bf = cast(ushort) ((_bf & ~0x8000) | (f << 15)); return f; } 145 + @property bool fAck(bool f) { _bf = cast(ushort) ((_bf & ~0x1000) | (f << 12)); return f; } 146 + @property bool fRelease(bool f) { _bf = cast(ushort) ((_bf & ~0x2000) | (f << 13)); return f; } 147 + @property bool fReserved(bool f) { _bf = cast(ushort) ((_bf & ~0x4000) | (f << 14)); return f; } 148 + @property bool fAckReq(bool f) { _bf = cast(ushort) ((_bf & ~0x8000) | (f << 15)); return f; } 149 149 } 150 150 151 151 extern (Windows) { 152 - BOOL DdeSetQualityOfService(HWND, CPtr!(SECURITY_QUALITY_OF_SERVICE), 152 + BOOL DdeSetQualityOfService(HWND, const(SECURITY_QUALITY_OF_SERVICE)*, 153 153 PSECURITY_QUALITY_OF_SERVICE); 154 154 BOOL ImpersonateDdeClientWindow(HWND, HWND); 155 155 LPARAM PackDDElParam(UINT, UINT_PTR, UINT_PTR); 156 156 BOOL UnpackDDElParam(UINT, LPARAM, PUINT_PTR, PUINT_PTR); 157 157 BOOL FreeDDElParam(UINT, LPARAM); 158 158 LPARAM ReuseDDElParam(LPARAM, UINT, UINT, UINT_PTR, UINT_PTR); 159 159 }

Modified src/win32/ddeml.d from [80302d7833fbc86f] to [421fb3636ad89d57].

5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * by Stewart Gordon * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.ddeml; 12 -pragma(lib, "user32.lib"); 12 +pragma(lib, "user32"); 13 13 14 14 private import win32.basetsd, win32.windef, win32.winnt; 15 15 16 16 enum : int { 17 17 CP_WINANSI = 1004, 18 18 CP_WINUNICODE = 1200 19 19 } ................................................................................ 185 185 enum : int { 186 186 MH_CREATE = 1, 187 187 MH_KEEP = 2, 188 188 MH_DELETE = 3, 189 189 MH_CLEANUP = 4 190 190 } 191 191 192 -alias HANDLE HCONVLIST, HCONV, HSZ, HDDEDATA; 192 +mixin DECLARE_HANDLE!("HCONVLIST"); 193 +mixin DECLARE_HANDLE!("HCONV"); 194 +mixin DECLARE_HANDLE!("HSZ"); 195 +mixin DECLARE_HANDLE!("HDDEDATA"); 193 196 194 197 extern (Windows) alias HDDEDATA 195 198 function(UINT, UINT, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD) PFNCALLBACK; 196 199 197 200 struct HSZPAIR { 198 201 HSZ hszSvc; 199 202 HSZ hszTopic; ................................................................................ 228 231 CONVCONTEXT ConvCtxt; 229 232 HWND hwnd; 230 233 HWND hwndPartner; 231 234 } 232 235 alias CONVINFO* PCONVINFO; 233 236 234 237 struct DDEML_MSG_HOOK_DATA { 235 - UINT uiLo; 236 - UINT uiHi; 238 + UINT_PTR uiLo; 239 + UINT_PTR uiHi; 237 240 DWORD cbData; 238 241 DWORD[8] Data; 239 242 } 240 243 241 244 struct MONHSZSTRUCT { 242 245 UINT cb = MONHSZSTRUCT.sizeof; 243 246 int fsAction;

Modified src/win32/dhcpcsdk.d from [682f5c773e9d0f3b] to [ca4c8f50da03899c].

8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.dhcpcsdk; 12 12 13 13 private import win32.w32api, win32.windef; 14 14 15 -static assert (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500, 16 -"win32.dhcpcsdk is available only if version WindowsXP, Windows2003 17 -or WindowsVista is set, or both Windows2000 and WindowsNTonly are set"); 15 +static assert (_WIN32_WINNT >= 0x500, 16 +"win32.dhcpcsdk is available only if version Windows2000, WindowsXP, Windows2003 17 +or WindowsVista is set"); 18 18 19 -//#if (_WIN32_WINNT >= 0x0500) 19 +//#if (_WIN32_WINNT >= 0x500) 20 20 21 21 // FIXME: check type 22 22 const DHCPCAPI_REGISTER_HANDLE_EVENT = 1; 23 23 const DHCPCAPI_REQUEST_PERSISTENT = 1; 24 24 const DHCPCAPI_REQUEST_SYNCHRONOUS = 2; 25 25 26 26 struct DHCPCAPI_CLASSID { ................................................................................ 51 51 DWORD DhcpDeRegisterParamChange(DWORD, LPVOID, LPVOID); 52 52 DWORD DhcpRegisterParamChange(DWORD, LPVOID, PWSTR, LPDHCPCAPI_CLASSID, 53 53 DHCPCAPI_PARAMS_ARRAY, LPVOID); 54 54 DWORD DhcpRemoveDNSRegistrations(); 55 55 DWORD DhcpUndoRequestParams(DWORD, LPVOID, LPWSTR, LPWSTR); 56 56 } 57 57 58 -//#endif // (_WIN32_WINNT >= 0x0500) 58 +//#endif // (_WIN32_WINNT >= 0x500)

Added src/win32/directx/d3d10.d version [440959a663efe1fe]

1 +/***********************************************************************\ 2 +* d3d10.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Placed into public domain * 7 +\***********************************************************************/ 8 +module win32.directx.d3d10; 9 + 10 +private import win32.windows; 11 + 12 +public import win32.directx.dxgitype; 13 +public import win32.directx.dxgi; 14 +public import win32.directx.d3d10misc; 15 + 16 +pragma(lib, "d3d10.lib"); 17 + 18 +const D3D10_16BIT_INDEX_STRIP_CUT_VALUE = 0xffff; 19 +const D3D10_32BIT_INDEX_STRIP_CUT_VALUE = 0xffffffff; 20 +const D3D10_8BIT_INDEX_STRIP_CUT_VALUE = 0xff; 21 +const D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT = 9; 22 +const D3D10_CLIP_OR_CULL_DISTANCE_COUNT = 8; 23 +const D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT = 2; 24 +const D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT = 14; 25 +const D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS = 4; 26 +const D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = 32; 27 +const D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT = 15; 28 +const D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4; 29 +const D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = 15; 30 +const D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1; 31 +const D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1; 32 +const D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT = 64; 33 +const D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4; 34 +const D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT = 1; 35 +const D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1; 36 +const D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1; 37 +const D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT = 32; 38 +const D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS = 1; 39 +const D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT = 128; 40 +const D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST = 1; 41 +const D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS = 1; 42 +const D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT = 128; 43 +const D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS = 1; 44 +const D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT = 16; 45 +const D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST = 1; 46 +const D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS = 1; 47 +const D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT = 16; 48 +const D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT = 32; 49 +const D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS = 4; 50 +const D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT = 32; 51 +const D3D10_COMMONSHADER_TEMP_REGISTER_COUNT = 4096; 52 +const D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST = 3; 53 +const D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS = 3; 54 +const D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX = 10; 55 +const D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN = -10; 56 +const D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE = -8; 57 +const D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE = 7; 58 +const D3D10_DEFAULT_BLEND_FACTOR_ALPHA = 1.0f; 59 +const D3D10_DEFAULT_BLEND_FACTOR_BLUE = 1.0f; 60 +const D3D10_DEFAULT_BLEND_FACTOR_GREEN = 1.0f; 61 +const D3D10_DEFAULT_BLEND_FACTOR_RED = 1.0f; 62 +const D3D10_DEFAULT_BORDER_COLOR_COMPONENT = 0.0f; 63 +const D3D10_DEFAULT_DEPTH_BIAS = 0; 64 +const D3D10_DEFAULT_DEPTH_BIAS_CLAMP = 0.0f; 65 +const D3D10_DEFAULT_MAX_ANISOTROPY = 16.0f; 66 +const D3D10_DEFAULT_MIP_LOD_BIAS = 0.0f; 67 +const D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0; 68 +const D3D10_DEFAULT_SAMPLE_MASK = 0xffffffff; 69 +const D3D10_DEFAULT_SCISSOR_ENDX = 0; 70 +const D3D10_DEFAULT_SCISSOR_ENDY = 0; 71 +const D3D10_DEFAULT_SCISSOR_STARTX = 0; 72 +const D3D10_DEFAULT_SCISSOR_STARTY = 0; 73 +const D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS = 0.0f; 74 +const D3D10_DEFAULT_STENCIL_READ_MASK = 0xff; 75 +const D3D10_DEFAULT_STENCIL_REFERENCE = 0; 76 +const D3D10_DEFAULT_STENCIL_WRITE_MASK = 0xff; 77 +const D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = 0; 78 +const D3D10_DEFAULT_VIEWPORT_HEIGHT = 0; 79 +const D3D10_DEFAULT_VIEWPORT_MAX_DEPTH = 0.0f; 80 +const D3D10_DEFAULT_VIEWPORT_MIN_DEPTH = 0.0f; 81 +const D3D10_DEFAULT_VIEWPORT_TOPLEFTX = 0; 82 +const D3D10_DEFAULT_VIEWPORT_TOPLEFTY = 0; 83 +const D3D10_DEFAULT_VIEWPORT_WIDTH = 0; 84 +const D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP = 0.6; 85 +const D3D10_FLOAT32_MAX = 3.402823466e+38f; 86 +const D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP = 0.6f; 87 +const D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR = 2.4f; 88 +const D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR = 1.0f; 89 +const D3D10_FLOAT_TO_SRGB_OFFSET = 0.055f; 90 +const D3D10_FLOAT_TO_SRGB_SCALE_1 = 12.92f; 91 +const D3D10_FLOAT_TO_SRGB_SCALE_2 = 1.055f; 92 +const D3D10_FLOAT_TO_SRGB_THRESHOLD = 0.0031308f; 93 +const D3D10_FTOI_INSTRUCTION_MAX_INPUT = 2147483647.999f; 94 +const D3D10_FTOI_INSTRUCTION_MIN_INPUT = -2147483648.999f; 95 +const D3D10_FTOU_INSTRUCTION_MAX_INPUT = 4294967295.999f; 96 +const D3D10_FTOU_INSTRUCTION_MIN_INPUT = 0.0f; 97 +const D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS = 1; 98 +const D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT = 32; 99 +const D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT = 1; 100 +const D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST = 2; 101 +const D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS = 1; 102 +const D3D10_GS_INPUT_REGISTER_COMPONENTS = 4; 103 +const D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 104 +const D3D10_GS_INPUT_REGISTER_COUNT = 16; 105 +const D3D10_GS_INPUT_REGISTER_READS_PER_INST = 2; 106 +const D3D10_GS_INPUT_REGISTER_READ_PORTS = 1; 107 +const D3D10_GS_INPUT_REGISTER_VERTICES = 6; 108 +const D3D10_GS_OUTPUT_ELEMENTS = 32; 109 +const D3D10_GS_OUTPUT_REGISTER_COMPONENTS = 4; 110 +const D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 111 +const D3D10_GS_OUTPUT_REGISTER_COUNT = 32; 112 +const D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES = 0; 113 +const D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY = 0; 114 +const D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES = 0; 115 +const D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT = 1; 116 +const D3D10_IA_INSTANCE_ID_BIT_COUNT = 32; 117 +const D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT = 32; 118 +const D3D10_IA_PRIMITIVE_ID_BIT_COUNT = 32; 119 +const D3D10_IA_VERTEX_ID_BIT_COUNT = 32; 120 +const D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 16; 121 +const D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 64; 122 +const D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 16; 123 +const D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT = 0xffffffff; 124 +const D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER = 0xffffffff; 125 +const D3D10_LINEAR_GAMMA = 1.0f; 126 +const D3D10_MAX_BORDER_COLOR_COMPONENT = 1.0f; 127 +const D3D10_MAX_DEPTH = 1.0f; 128 +const D3D10_MAX_MAXANISOTROPY = 16; 129 +const D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT = 32; 130 +const D3D10_MAX_POSITION_VALUE = 3.402823466e+34f; 131 +const D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP = 17; 132 +const D3D10_MIN_BORDER_COLOR_COMPONENT = 0.0f; 133 +const D3D10_MIN_DEPTH = 0.0f; 134 +const D3D10_MIN_MAXANISOTROPY = 0; 135 +const D3D10_MIP_LOD_BIAS_MAX = 15.99f; 136 +const D3D10_MIP_LOD_BIAS_MIN = -16.0f; 137 +const D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT = 6; 138 +const D3D10_MIP_LOD_RANGE_BIT_COUNT = 8; 139 +const D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH = 1.4f; 140 +const D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT = 0; 141 +const D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT = 13; 142 +const D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT = 15; 143 +const D3D10_PS_FRONTFACING_DEFAULT_VALUE = 0xffffffff; 144 +const D3D10_PS_FRONTFACING_FALSE_VALUE = 0; 145 +const D3D10_PS_FRONTFACING_TRUE_VALUE = 0xffffffff; 146 +const D3D10_PS_INPUT_REGISTER_COMPONENTS = 4; 147 +const D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 148 +const D3D10_PS_INPUT_REGISTER_COUNT = 32; 149 +const D3D10_PS_INPUT_REGISTER_READS_PER_INST = 2; 150 +const D3D10_PS_INPUT_REGISTER_READ_PORTS = 1; 151 +const D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0.0f; 152 +const D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS = 1; 153 +const D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT = 32; 154 +const D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT = 1; 155 +const D3D10_PS_OUTPUT_REGISTER_COMPONENTS = 4; 156 +const D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 157 +const D3D10_PS_OUTPUT_REGISTER_COUNT = 8; 158 +const D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0.5f; 159 +const D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT = 4096; 160 +const D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = 27; 161 +const D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = 4096; 162 +const D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT = 4096; 163 +const D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 32; 164 +const D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP = 32; 165 +const D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION = 8192; 166 +const D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT = 1024; 167 +const D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = 4096; 168 +const D3D10_REQ_MAXANISOTROPY = 16; 169 +const D3D10_REQ_MIP_LEVELS = 14; 170 +const D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES = 2048; 171 +const D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT = 4096; 172 +const D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH = 8192; 173 +const D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES = 128; 174 +const D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP = 20; 175 +const D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT = 4096; 176 +const D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 512; 177 +const D3D10_REQ_TEXTURE1D_U_DIMENSION = 8192; 178 +const D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = 512; 179 +const D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION = 8192; 180 +const D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048; 181 +const D3D10_REQ_TEXTURECUBE_DIMENSION = 8192; 182 +const D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL = 0; 183 +const D3D10_SHADER_MAJOR_VERSION = 4; 184 +const D3D10_SHADER_MINOR_VERSION = 0; 185 +const D3D10_SHIFT_INSTRUCTION_PAD_VALUE = 0; 186 +const D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = 5; 187 +const D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT = 8; 188 +const D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048; 189 +const D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = 256; 190 +const D3D10_SO_BUFFER_SLOT_COUNT = 4; 191 +const D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP = 0xffffffff; 192 +const D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER = 1; 193 +const D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT = 64; 194 +const D3D10_SRGB_GAMMA = 2.2f; 195 +const D3D10_SRGB_TO_FLOAT_DENOMINATOR_1 = 12.92f; 196 +const D3D10_SRGB_TO_FLOAT_DENOMINATOR_2 = 1.055f; 197 +const D3D10_SRGB_TO_FLOAT_EXPONENT = 2.4f; 198 +const D3D10_SRGB_TO_FLOAT_OFFSET = 0.055f; 199 +const D3D10_SRGB_TO_FLOAT_THRESHOLD = 0.04045f; 200 +const D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP = 0.5f; 201 +const D3D10_STANDARD_COMPONENT_BIT_COUNT = 32; 202 +const D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED = 64; 203 +const D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = 4; 204 +const D3D10_STANDARD_PIXEL_COMPONENT_COUNT = 128; 205 +const D3D10_STANDARD_PIXEL_ELEMENT_COUNT = 32; 206 +const D3D10_STANDARD_VECTOR_SIZE = 4; 207 +const D3D10_STANDARD_VERTEX_ELEMENT_COUNT = 16; 208 +const D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT = 64; 209 +const D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT = 8; 210 +const D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT = 6; 211 +const D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT = 18; 212 +const D3D10_UNBOUND_MEMORY_ACCESS_RESULT = 0; 213 +const D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX = 15; 214 +const D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16; 215 +const D3D10_VIEWPORT_BOUNDS_MAX = 16383; 216 +const D3D10_VIEWPORT_BOUNDS_MIN = -16384; 217 +const D3D10_VS_INPUT_REGISTER_COMPONENTS = 4; 218 +const D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 219 +const D3D10_VS_INPUT_REGISTER_COUNT = 16; 220 +const D3D10_VS_INPUT_REGISTER_READS_PER_INST = 2; 221 +const D3D10_VS_INPUT_REGISTER_READ_PORTS = 1; 222 +const D3D10_VS_OUTPUT_REGISTER_COMPONENTS = 4; 223 +const D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 224 +const D3D10_VS_OUTPUT_REGISTER_COUNT = 16; 225 +const D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT = 10; 226 +const D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 25; 227 +const D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP = 25; 228 +const D3D_MAJOR_VERSION = 10; 229 +const D3D_MINOR_VERSION = 0; 230 +const D3D_SPEC_DATE_DAY = 8; 231 +const D3D_SPEC_DATE_MONTH = 8; 232 +const D3D_SPEC_DATE_YEAR = 2006; 233 +const D3D_SPEC_VERSION = 1.050005; 234 + 235 +const _FACD3D10 = 0x879; 236 +const _FACD3D10DEBUG = _FACD3D10 + 1; 237 + 238 +HRESULT MAKE_D3D10_HRESULT(T)(T code) { 239 + return MAKE_HRESULT(1, _FACD3D10, code); 240 +} 241 + 242 +HRESULT MAKE_D3D10_STATUS(T)(T code) { 243 + return MAKE_HRESULT(0, _FACD3D10, code); 244 +} 245 + 246 +const D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS = MAKE_D3D10_HRESULT(1); 247 +const D3D10_ERROR_FILE_NOT_FOUND = MAKE_D3D10_HRESULT(2); 248 + 249 +enum D3D10_INPUT_CLASSIFICATION { 250 + D3D10_INPUT_PER_VERTEX_DATA = 0, 251 + D3D10_INPUT_PER_INSTANCE_DATA = 1 252 +} 253 + 254 +const D3D10_APPEND_ALIGNED_ELEMENT = 0xffffffff; 255 + 256 +struct D3D10_INPUT_ELEMENT_DESC { 257 + LPCSTR SemanticName; 258 + UINT SemanticIndex; 259 + DXGI_FORMAT Format; 260 + UINT InputSlot; 261 + UINT AlignedByteOffset; 262 + D3D10_INPUT_CLASSIFICATION InputSlotClass; 263 + UINT InstanceDataStepRate; 264 +} 265 + 266 +enum D3D10_FILL_MODE { 267 + D3D10_FILL_WIREFRAME = 2, 268 + D3D10_FILL_SOLID = 3 269 +} 270 + 271 +enum D3D10_PRIMITIVE_TOPOLOGY { 272 + D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = 0, 273 + D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = 1, 274 + D3D10_PRIMITIVE_TOPOLOGY_LINELIST = 2, 275 + D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = 3, 276 + D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4, 277 + D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5, 278 + D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10, 279 + D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11, 280 + D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12, 281 + D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13 282 +} 283 + 284 +enum D3D10_PRIMITIVE { 285 + D3D10_PRIMITIVE_UNDEFINED = 0, 286 + D3D10_PRIMITIVE_POINT = 1, 287 + D3D10_PRIMITIVE_LINE = 2, 288 + D3D10_PRIMITIVE_TRIANGLE = 3, 289 + D3D10_PRIMITIVE_LINE_ADJ = 6, 290 + D3D10_PRIMITIVE_TRIANGLE_ADJ = 7 291 +} 292 + 293 +enum D3D10_CULL_MODE { 294 + D3D10_CULL_NONE = 1, 295 + D3D10_CULL_FRONT, 296 + D3D10_CULL_BACK 297 +} 298 + 299 +struct D3D10_SO_DECLARATION_ENTRY { 300 + LPCSTR SemanticName; 301 + UINT SemanticIndex; 302 + BYTE StartComponent; 303 + BYTE ComponentCount; 304 + BYTE OutputSlot; 305 +} 306 + 307 +struct D3D10_VIEWPORT { 308 + INT TopLeftX; 309 + INT TopLeftY; 310 + UINT Width; 311 + UINT Height; 312 + FLOAT MinDepth; 313 + FLOAT MaxDepth; 314 +} 315 + 316 +enum D3D10_RESOURCE_DIMENSION { 317 + D3D10_RESOURCE_DIMENSION_UNKNOWN = 0, 318 + D3D10_RESOURCE_DIMENSION_BUFFER, 319 + D3D10_RESOURCE_DIMENSION_TEXTURE1D, 320 + D3D10_RESOURCE_DIMENSION_TEXTURE2D, 321 + D3D10_RESOURCE_DIMENSION_TEXTURE3D 322 +} 323 + 324 +enum D3D10_SRV_DIMENSION { 325 + D3D10_SRV_DIMENSION_UNKNOWN = 0, 326 + D3D10_SRV_DIMENSION_BUFFER, 327 + D3D10_SRV_DIMENSION_TEXTURE1D, 328 + D3D10_SRV_DIMENSION_TEXTURE1DARRAY, 329 + D3D10_SRV_DIMENSION_TEXTURE2D, 330 + D3D10_SRV_DIMENSION_TEXTURE2DARRAY, 331 + D3D10_SRV_DIMENSION_TEXTURE2DMS, 332 + D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY, 333 + D3D10_SRV_DIMENSION_TEXTURE3D, 334 + D3D10_SRV_DIMENSION_TEXTURECUBE 335 +} 336 + 337 +enum D3D10_DSV_DIMENSION { 338 + D3D10_DSV_DIMENSION_UNKNOWN = 0, 339 + D3D10_DSV_DIMENSION_TEXTURE1D, 340 + D3D10_DSV_DIMENSION_TEXTURE1DARRAY, 341 + D3D10_DSV_DIMENSION_TEXTURE2D, 342 + D3D10_DSV_DIMENSION_TEXTURE2DARRAY, 343 + D3D10_DSV_DIMENSION_TEXTURE2DMS, 344 + D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY6 345 +} 346 + 347 +enum D3D10_RTV_DIMENSION { 348 + D3D10_RTV_DIMENSION_UNKNOWN = 0, 349 + D3D10_RTV_DIMENSION_BUFFER, 350 + D3D10_RTV_DIMENSION_TEXTURE1D, 351 + D3D10_RTV_DIMENSION_TEXTURE1DARRAY, 352 + D3D10_RTV_DIMENSION_TEXTURE2D, 353 + D3D10_RTV_DIMENSION_TEXTURE2DARRAY, 354 + D3D10_RTV_DIMENSION_TEXTURE2DMS, 355 + D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY, 356 + D3D10_RTV_DIMENSION_TEXTURE3D 357 +} 358 + 359 +enum D3D10_USAGE { 360 + D3D10_USAGE_DEFAULT = 0, 361 + D3D10_USAGE_IMMUTABLE, 362 + D3D10_USAGE_DYNAMIC, 363 + D3D10_USAGE_STAGING 364 +} 365 + 366 +enum D3D10_BIND_FLAG { 367 + D3D10_BIND_VERTEX_BUFFER = 0x01, 368 + D3D10_BIND_INDEX_BUFFER = 0x02, 369 + D3D10_BIND_CONSTANT_BUFFER = 0x04, 370 + D3D10_BIND_SHADER_RESOURCE = 0x08, 371 + D3D10_BIND_STREAM_OUTPUT = 0x10, 372 + D3D10_BIND_RENDER_TARGET = 0x20, 373 + D3D10_BIND_DEPTH_STENCIL = 0x40 374 +} 375 + 376 +enum D3D10_CPU_ACCESS_FLAG { 377 + D3D10_CPU_ACCESS_WRITE = 0x10000, 378 + D3D10_CPU_ACCESS_READ = 0x20000 379 +} 380 + 381 +enum D3D10_RESOURCE_MISC_FLAG { 382 + D3D10_RESOURCE_MISC_GENERATE_MIPS = 0x01, 383 + D3D10_RESOURCE_MISC_SHARED = 0x02, 384 + D3D10_RESOURCE_MISC_TEXTURECUBE = 0x04 385 +} 386 + 387 +enum D3D10_MAP { 388 + D3D10_MAP_READ = 1, 389 + D3D10_MAP_WRITE, 390 + D3D10_MAP_READ_WRITE, 391 + D3D10_MAP_WRITE_DISCARD, 392 + D3D10_MAP_WRITE_NO_OVERWRITE 393 +} 394 + 395 +enum D3D10_MAP_FLAG { 396 + D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000 397 +} 398 + 399 +enum D3D10_RAISE_FLAG { 400 + D3D10_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x01 401 +} 402 + 403 +enum D3D10_CLEAR_FLAG { 404 + D3D10_CLEAR_DEPTH = 0x01, 405 + D3D10_CLEAR_STENCIL = 0x02 406 +} 407 + 408 +alias RECT D3D10_RECT; 409 + 410 +struct D3D10_BOX { 411 + UINT left; 412 + UINT top; 413 + UINT front; 414 + UINT right; 415 + UINT bottom; 416 + UINT back; 417 +} 418 + 419 +extern (Windows) interface ID3D10DeviceChild : IUnknown { 420 + //extern(Windows) : 421 + void GetDevice(ID3D10Device* ppDevice); 422 + HRESULT GetPrivateData(REFGUID guid, UINT *pDataSize, void *pData); 423 + HRESULT SetPrivateData(REFGUID guid, UINT DataSize, void *pData); 424 + HRESULT SetPrivateDataInterface(REFGUID guid, IUnknown pData); 425 +} 426 + 427 +enum D3D10_COMPARISON_FUNC { 428 + D3D10_COMPARISON_NEVER = 1, 429 + D3D10_COMPARISON_LESS, 430 + D3D10_COMPARISON_EQUAL, 431 + D3D10_COMPARISON_LESS_EQUAL, 432 + D3D10_COMPARISON_GREATER, 433 + D3D10_COMPARISON_NOT_EQUAL, 434 + D3D10_COMPARISON_GREATER_EQUAL, 435 + D3D10_COMPARISON_ALWAYS 436 +} 437 + 438 +enum D3D10_DEPTH_WRITE_MASK { 439 + D3D10_DEPTH_WRITE_MASK_ZERO = 0, 440 + D3D10_DEPTH_WRITE_MASK_ALL 441 +} 442 + 443 +enum D3D10_STENCIL_OP { 444 + D3D10_STENCIL_OP_KEEP = 1, 445 + D3D10_STENCIL_OP_ZERO, 446 + D3D10_STENCIL_OP_REPLACE, 447 + D3D10_STENCIL_OP_INCR_SAT, 448 + D3D10_STENCIL_OP_DECR_SAT, 449 + D3D10_STENCIL_OP_INVERT, 450 + D3D10_STENCIL_OP_INCR, 451 + D3D10_STENCIL_OP_DECR 452 +} 453 + 454 +struct D3D10_DEPTH_STENCILOP_DESC { 455 + D3D10_STENCIL_OP StencilFailOp; 456 + D3D10_STENCIL_OP StencilDepthFailOp; 457 + D3D10_STENCIL_OP StencilPassOp; 458 + D3D10_COMPARISON_FUNC StencilFunc; 459 +} 460 + 461 +struct D3D10_DEPTH_STENCIL_DESC { 462 + BOOL DepthEnable; 463 + D3D10_DEPTH_WRITE_MASK DepthWriteMask; 464 + D3D10_COMPARISON_FUNC DepthFunc; 465 + BOOL StencilEnable; 466 + UINT8 StencilReadMask; 467 + UINT8 StencilWriteMask; 468 + D3D10_DEPTH_STENCILOP_DESC FrontFace; 469 + D3D10_DEPTH_STENCILOP_DESC BackFace; 470 +} 471 + 472 +interface ID3D10DepthStencilState : ID3D10DeviceChild { 473 + extern(Windows) : 474 + void GetDesc(D3D10_DEPTH_STENCIL_DESC *pDesc); 475 +} 476 + 477 +enum D3D10_BLEND { 478 + D3D10_BLEND_ZERO = 1, 479 + D3D10_BLEND_ONE = 2, 480 + D3D10_BLEND_SRC_COLOR = 3, 481 + D3D10_BLEND_INV_SRC_COLOR = 4, 482 + D3D10_BLEND_SRC_ALPHA = 5, 483 + D3D10_BLEND_INV_SRC_ALPHA = 6, 484 + D3D10_BLEND_DEST_ALPHA = 7, 485 + D3D10_BLEND_INV_DEST_ALPHA = 8, 486 + D3D10_BLEND_DEST_COLOR = 9, 487 + D3D10_BLEND_INV_DEST_COLOR = 10, 488 + D3D10_BLEND_SRC_ALPHA_SAT = 11, 489 + D3D10_BLEND_BLEND_FACTOR = 14, 490 + D3D10_BLEND_INV_BLEND_FACTOR = 15, 491 + D3D10_BLEND_SRC1_COLOR = 16, 492 + D3D10_BLEND_INV_SRC1_COLOR = 17, 493 + D3D10_BLEND_SRC1_ALPHA = 18, 494 + D3D10_BLEND_INV_SRC1_ALPHA = 19 495 +} 496 + 497 +enum D3D10_BLEND_OP { 498 + D3D10_BLEND_OP_ADD = 1, 499 + D3D10_BLEND_OP_SUBTRACT, 500 + D3D10_BLEND_OP_REV_SUBTRACT, 501 + D3D10_BLEND_OP_MIN, 502 + D3D10_BLEND_OP_MAX 503 +} 504 + 505 +enum D3D10_COLOR_WRITE_ENABLE { 506 + D3D10_COLOR_WRITE_ENABLE_RED = 1, 507 + D3D10_COLOR_WRITE_ENABLE_GREEN = 2, 508 + D3D10_COLOR_WRITE_ENABLE_BLUE = 4, 509 + D3D10_COLOR_WRITE_ENABLE_ALPHA = 8, 510 + D3D10_COLOR_WRITE_ENABLE_ALL = (((D3D10_COLOR_WRITE_ENABLE_RED | D3D10_COLOR_WRITE_ENABLE_GREEN) | D3D10_COLOR_WRITE_ENABLE_BLUE) | D3D10_COLOR_WRITE_ENABLE_ALPHA) 511 +} 512 + 513 +struct D3D10_BLEND_DESC { 514 + BOOL AlphaToCoverageEnable; 515 + BOOL[8] BlendEnable; 516 + D3D10_BLEND SrcBlend; 517 + D3D10_BLEND DestBlend; 518 + D3D10_BLEND_OP BlendOp; 519 + D3D10_BLEND SrcBlendAlpha; 520 + D3D10_BLEND DestBlendAlpha; 521 + D3D10_BLEND_OP BlendOpAlpha; 522 + UINT8[8] RenderTargetWriteMask; 523 +} 524 + 525 +interface ID3D10BlendState : ID3D10DeviceChild { 526 + extern(Windows) : 527 + void GetDesc(D3D10_BLEND_DESC *pDesc); 528 +} 529 + 530 +struct D3D10_RASTERIZER_DESC { 531 + D3D10_FILL_MODE FillMode; 532 + D3D10_CULL_MODE CullMode; 533 + BOOL FrontCounterClockwise; 534 + INT DepthBias; 535 + FLOAT DepthBiasClamp; 536 + FLOAT SlopeScaledDepthBias; 537 + BOOL DepthClipEnable; 538 + BOOL ScissorEnable; 539 + BOOL MultisampleEnable; 540 + BOOL AntialiasedLineEnable; 541 +} 542 + 543 +interface ID3D10RasterizerState : ID3D10DeviceChild { 544 + extern(Windows) : 545 + void GetDesc(D3D10_RASTERIZER_DESC *pDesc); 546 +} 547 + 548 +UINT D3D10CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT MipLevels) { 549 + return MipSlice + ArraySlice * MipLevels; 550 +} 551 + 552 +struct D3D10_SUBRESOURCE_DATA { 553 + void *pSysMem; 554 + UINT SysMemPitch; 555 + UINT SysMemSlicePitch; 556 +} 557 + 558 +interface ID3D10Resource : ID3D10DeviceChild { 559 + extern(Windows) : 560 + void GetType(D3D10_RESOURCE_DIMENSION *rType); 561 + void SetEvictionPriority(UINT EvictionPriority); 562 + UINT GetEvictionPriority(); 563 +} 564 + 565 +struct D3D10_BUFFER_DESC { 566 + UINT ByteWidth; 567 + D3D10_USAGE Usage; 568 + UINT BindFlags; 569 + UINT CPUAccessFlags; 570 + UINT MiscFlags; 571 +} 572 + 573 +interface ID3D10Buffer : ID3D10Resource { 574 + extern(Windows) : 575 + HRESULT Map(D3D10_MAP MapType, UINT MapFlags, void **ppData); 576 + void Unmap(); 577 + void GetDesc(D3D10_BUFFER_DESC *pDesc); 578 +} 579 + 580 +struct D3D10_TEXTURE1D_DESC { 581 + UINT Width; 582 + UINT MipLevels; 583 + UINT ArraySize; 584 + DXGI_FORMAT Format; 585 + D3D10_USAGE Usage; 586 + UINT BindFlags; 587 + UINT CPUAccessFlags; 588 + UINT MiscFlags; 589 +} 590 + 591 +interface ID3D10Texture1D : ID3D10Resource { 592 + extern(Windows) : 593 + HRESULT Map(UINT Subresource, D3D10_MAP MapType, UINT MapFlags, void **ppData); 594 + void Unmap(UINT Subresource); 595 + void GetDesc(D3D10_TEXTURE1D_DESC *pDesc); 596 +} 597 + 598 +struct D3D10_TEXTURE2D_DESC { 599 + UINT Width; 600 + UINT Height; 601 + UINT MipLevels; 602 + UINT ArraySize; 603 + DXGI_FORMAT Format; 604 + DXGI_SAMPLE_DESC SampleDesc; 605 + D3D10_USAGE Usage; 606 + UINT BindFlags; 607 + UINT CPUAccessFlags; 608 + UINT MiscFlags; 609 +} 610 + 611 +struct D3D10_MAPPED_TEXTURE2D { 612 + void *pData; 613 + UINT RowPitch; 614 +} 615 + 616 +interface ID3D10Texture2D : ID3D10Resource { 617 + extern(Windows) : 618 + HRESULT Map(UINT Subresource, D3D10_MAP MapType, UINT MapFlags, D3D10_MAPPED_TEXTURE2D *pMappedTex2D); 619 + void Unmap(UINT Subresource); 620 + void GetDesc(D3D10_TEXTURE2D_DESC *pDesc); 621 +} 622 + 623 +struct D3D10_TEXTURE3D_DESC { 624 + UINT Width; 625 + UINT Height; 626 + UINT Depth; 627 + UINT MipLevels; 628 + DXGI_FORMAT Format; 629 + D3D10_USAGE Usage; 630 + UINT BindFlags; 631 + UINT CPUAccessFlags; 632 + UINT MiscFlags; 633 +} 634 + 635 +struct D3D10_MAPPED_TEXTURE3D { 636 + void *pData; 637 + UINT RowPitch; 638 + UINT DepthPitch; 639 +} 640 + 641 +interface ID3D10Texture3D : ID3D10Resource { 642 + extern(Windows) : 643 + HRESULT Map(UINT Subresource, D3D10_MAP MapType, UINT MapFlags, D3D10_MAPPED_TEXTURE3D *pMappedTex3D); 644 + void Unmap(UINT Subresource); 645 + void GetDesc(D3D10_TEXTURE3D_DESC *pDesc); 646 +} 647 + 648 +enum D3D10_TEXTURECUBE_FACE { 649 + D3D10_TEXTURECUBE_FACE_POSITIVE_X = 0, 650 + D3D10_TEXTURECUBE_FACE_NEGATIVE_X, 651 + D3D10_TEXTURECUBE_FACE_POSITIVE_Y, 652 + D3D10_TEXTURECUBE_FACE_NEGATIVE_Y, 653 + D3D10_TEXTURECUBE_FACE_POSITIVE_Z, 654 + D3D10_TEXTURECUBE_FACE_NEGATIVE_Z 655 +} 656 + 657 +interface ID3D10View : ID3D10DeviceChild { 658 + extern(Windows) : 659 + void GetResource(ID3D10Resource *ppResource); 660 +} 661 + 662 +struct D3D10_BUFFER_SRV { 663 + UINT ElementOffset; 664 + UINT ElementWidth; 665 +} 666 + 667 +struct D3D10_TEX1D_SRV { 668 + UINT MostDetailedMip; 669 + UINT MipLevels; 670 +} 671 + 672 +struct D3D10_TEX1D_ARRAY_SRV { 673 + UINT MostDetailedMip; 674 + UINT MipLevels; 675 + UINT FirstArraySlice; 676 + UINT ArraySize; 677 +} 678 + 679 +struct D3D10_TEX2D_SRV { 680 + UINT MostDetailedMip; 681 + UINT MipLevels; 682 +} 683 + 684 +struct D3D10_TEX2D_ARRAY_SRV { 685 + UINT MostDetailedMip; 686 + UINT MipLevels; 687 + UINT FirstArraySlice; 688 + UINT ArraySize; 689 +} 690 + 691 +struct D3D10_TEX3D_SRV { 692 + UINT MostDetailedMip; 693 + UINT MipLevels; 694 +} 695 + 696 +struct D3D10_TEXCUBE_SRV { 697 + UINT MostDetailedMip; 698 + UINT MipLevels; 699 +} 700 + 701 +struct D3D10_TEX2DMS_SRV { 702 + UINT UnusedField_NothingToDefine; 703 +} 704 + 705 +struct D3D10_TEX2DMS_ARRAY_SRV { 706 + UINT FirstArraySlice; 707 + UINT ArraySize; 708 +} 709 + 710 +struct D3D10_SHADER_RESOURCE_VIEW_DESC { 711 + DXGI_FORMAT Format; 712 + D3D10_SRV_DIMENSION ViewDimension; 713 + union { 714 + D3D10_BUFFER_SRV Buffer; 715 + D3D10_TEX1D_SRV Texture1D; 716 + D3D10_TEX1D_ARRAY_SRV Texture1DArray; 717 + D3D10_TEX2D_SRV Texture2D; 718 + D3D10_TEX2D_ARRAY_SRV Texture2DArray; 719 + D3D10_TEX2DMS_SRV Texture2DMS; 720 + D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray; 721 + D3D10_TEX3D_SRV Texture3D; 722 + D3D10_TEXCUBE_SRV TextureCube; 723 + } 724 +} 725 + 726 +interface ID3D10ShaderResourceView : ID3D10View { 727 + extern(Windows) : 728 + void GetDesc(D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc); 729 +} 730 + 731 +struct D3D10_BUFFER_RTV { 732 + UINT ElementOffset; 733 + UINT ElementWidth; 734 +} 735 + 736 +struct D3D10_TEX1D_RTV { 737 + UINT MipSlice; 738 +} 739 + 740 +struct D3D10_TEX1D_ARRAY_RTV { 741 + UINT MipSlice; 742 + UINT FirstArraySlice; 743 + UINT ArraySize; 744 +} 745 + 746 +struct D3D10_TEX2D_RTV { 747 + UINT MipSlice; 748 +} 749 + 750 +struct D3D10_TEX2DMS_RTV { 751 + UINT UnusedField_NothingToDefine; 752 +} 753 + 754 +struct D3D10_TEX2D_ARRAY_RTV { 755 + UINT MipSlice; 756 + UINT FirstArraySlice; 757 + UINT ArraySize; 758 +} 759 + 760 +struct D3D10_TEX2DMS_ARRAY_RTV { 761 + UINT FirstArraySlice; 762 + UINT ArraySize; 763 +} 764 + 765 +struct D3D10_TEX3D_RTV { 766 + UINT MipSlice; 767 + UINT FirstWSlice; 768 + UINT WSize; 769 +} 770 + 771 +struct D3D10_RENDER_TARGET_VIEW_DESC { 772 + DXGI_FORMAT Format; 773 + D3D10_RTV_DIMENSION ViewDimension; 774 + union { 775 + D3D10_BUFFER_RTV Buffer; 776 + D3D10_TEX1D_RTV Texture1D; 777 + D3D10_TEX1D_ARRAY_RTV Texture1DArray; 778 + D3D10_TEX2D_RTV Texture2D; 779 + D3D10_TEX2D_ARRAY_RTV Texture2DArray; 780 + D3D10_TEX2DMS_RTV Texture2DMS; 781 + D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray; 782 + D3D10_TEX3D_RTV Texture3D; 783 + } 784 +} 785 + 786 +interface ID3D10RenderTargetView : ID3D10View { 787 + extern(Windows) : 788 + void GetDesc(D3D10_RENDER_TARGET_VIEW_DESC *pDesc); 789 +} 790 + 791 +struct D3D10_TEX1D_DSV { 792 + UINT MipSlice; 793 +} 794 + 795 +struct D3D10_TEX1D_ARRAY_DSV { 796 + UINT MipSlice; 797 + UINT FirstArraySlice; 798 + UINT ArraySize; 799 +} 800 + 801 +struct D3D10_TEX2D_DSV { 802 + UINT MipSlice; 803 +} 804 + 805 +struct D3D10_TEX2D_ARRAY_DSV { 806 + UINT MipSlice; 807 + UINT FirstArraySlice; 808 + UINT ArraySize; 809 +} 810 + 811 +struct D3D10_TEX2DMS_DSV { 812 + UINT UnusedField_NothingToDefine; 813 +} 814 + 815 +struct D3D10_TEX2DMS_ARRAY_DSV { 816 + UINT FirstArraySlice; 817 + UINT ArraySize; 818 +} 819 + 820 +struct D3D10_DEPTH_STENCIL_VIEW_DESC { 821 + DXGI_FORMAT Format; 822 + D3D10_DSV_DIMENSION ViewDimension; 823 + union { 824 + D3D10_TEX1D_DSV Texture1D; 825 + D3D10_TEX1D_ARRAY_DSV Texture1DArray; 826 + D3D10_TEX2D_DSV Texture2D; 827 + D3D10_TEX2D_ARRAY_DSV Texture2DArray; 828 + D3D10_TEX2DMS_DSV Texture2DMS; 829 + D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray; 830 + } 831 +} 832 + 833 +interface ID3D10DepthStencilView : ID3D10View { 834 + extern(Windows) : 835 + void GetDesc(D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc); 836 +} 837 + 838 +interface ID3D10VertexShader : ID3D10DeviceChild { } 839 + 840 +interface ID3D10GeometryShader : ID3D10DeviceChild { } 841 + 842 +interface ID3D10PixelShader : ID3D10DeviceChild { } 843 + 844 +interface ID3D10InputLayout : ID3D10DeviceChild { } 845 + 846 +enum D3D10_FILTER { 847 + D3D10_FILTER_MIN_MAG_MIP_POINT = 0x00, 848 + D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x01, 849 + D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x04, 850 + D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x05, 851 + D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, 852 + D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, 853 + D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, 854 + D3D10_FILTER_MIN_MAG_MIP_LINEAR = 0x15, 855 + D3D10_FILTER_ANISOTROPIC = 0x55, 856 + D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, 857 + D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, 858 + D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, 859 + D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, 860 + D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, 861 + D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, 862 + D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, 863 + D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, 864 + D3D10_FILTER_COMPARISON_ANISOTROPIC = 0xd5, 865 + D3D10_FILTER_TEXT_1BIT = 0x80000000 866 +} 867 + 868 + 869 +enum D3D10_FILTER_TYPE { 870 + D3D10_FILTER_TYPE_POINT = 0, 871 + D3D10_FILTER_TYPE_LINEAR 872 +} 873 + 874 +const D3D10_FILTER_TYPE_MASK = 0x03; 875 + 876 +const D3D10_MIN_FILTER_SHIFT = 4; 877 + 878 +const D3D10_MAG_FILTER_SHIFT = 2; 879 + 880 +const D3D10_MIP_FILTER_SHIFT = 0; 881 + 882 +const D3D10_COMPARISON_FILTERING_BIT = 0x80; 883 + 884 +const D3D10_ANISOTROPIC_FILTERING_BIT = 0x40; 885 + 886 +const D3D10_TEXT_1BIT_BIT = 0x80000000; 887 + 888 +D3D10_FILTER D3D10_ENCODE_BASIC_FILTER(int min, int mag, int mip, bool bComparison) { 889 + return cast(D3D10_FILTER)(((bComparison) ? D3D10_COMPARISON_FILTERING_BIT : 0) | 890 + ((min & D3D10_FILTER_TYPE_MASK) << D3D10_MIN_FILTER_SHIFT) | 891 + ((mag & D3D10_FILTER_TYPE_MASK) << D3D10_MAG_FILTER_SHIFT) | 892 + ((mip & D3D10_FILTER_TYPE_MASK) << D3D10_MIP_FILTER_SHIFT)); 893 +} 894 + 895 +D3D10_FILTER D3D10_ENCODE_ANISOTROPIC_FILTER(bool bComparison) { 896 + return cast(D3D10_FILTER)(D3D10_ANISOTROPIC_FILTERING_BIT | 897 + D3D10_ENCODE_BASIC_FILTER(D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR, 898 + D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR, D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR, 899 + bComparison)); 900 +} 901 + 902 +D3D10_FILTER_TYPE D3D10_DECODE_MIN_FILTER(D3D10_FILTER d3d10Filter) { 903 + return cast(D3D10_FILTER_TYPE)((d3d10Filter >> D3D10_MIN_FILTER_SHIFT) & D3D10_FILTER_TYPE_MASK); 904 +} 905 + 906 +D3D10_FILTER_TYPE D3D10_DECODE_MAG_FILTER(D3D10_FILTER d3d10Filter) { 907 + return cast(D3D10_FILTER_TYPE)((d3d10Filter >> D3D10_MAG_FILTER_SHIFT) & D3D10_FILTER_TYPE_MASK); 908 +} 909 + 910 +D3D10_FILTER_TYPE D3D10_DECODE_MIP_FILTER(D3D10_FILTER d3d10Filter) { 911 + return cast(D3D10_FILTER_TYPE)((d3d10Filter >> D3D10_MIP_FILTER_SHIFT) & D3D10_FILTER_TYPE_MASK); 912 +} 913 + 914 +bool D3D10_DECODE_IS_COMPARISON_FILTER(D3D10_FILTER d3d10Filter) { 915 + return (d3d10Filter & D3D10_COMPARISON_FILTERING_BIT) == D3D10_COMPARISON_FILTERING_BIT; 916 +} 917 + 918 +bool D3D10_DECODE_IS_ANISOTROPIC_FILTER(D3D10_FILTER d3d10Filter) { 919 + return ((d3d10Filter & D3D10_ANISOTROPIC_FILTERING_BIT) && 920 + (D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MIN_FILTER(d3d10Filter)) && 921 + (D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MAG_FILTER(d3d10Filter)) && 922 + (D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MIP_FILTER(d3d10Filter))); 923 +} 924 + 925 +bool D3D10_DECODE_IS_TEXT_1BIT_FILTER(D3D10_FILTER d3d10Filter) { 926 + return d3d10Filter == D3D10_TEXT_1BIT_BIT; 927 +} 928 + 929 +enum D3D10_TEXTURE_ADDRESS_MODE { 930 + D3D10_TEXTURE_ADDRESS_WRAP = 1, 931 + D3D10_TEXTURE_ADDRESS_MIRROR, 932 + D3D10_TEXTURE_ADDRESS_CLAMP, 933 + D3D10_TEXTURE_ADDRESS_BORDER, 934 + D3D10_TEXTURE_ADDRESS_MIRROR_ONCE 935 +} 936 + 937 +struct D3D10_SAMPLER_DESC { 938 + D3D10_FILTER Filter; 939 + D3D10_TEXTURE_ADDRESS_MODE AddressU; 940 + D3D10_TEXTURE_ADDRESS_MODE AddressV; 941 + D3D10_TEXTURE_ADDRESS_MODE AddressW; 942 + FLOAT MipLODBias; 943 + UINT MaxAnisotropy; 944 + D3D10_COMPARISON_FUNC ComparisonFunc; 945 + FLOAT[4] BorderColor; 946 + FLOAT MinLOD; 947 + FLOAT MaxLOD; 948 +} 949 + 950 +interface ID3D10SamplerState : ID3D10DeviceChild { 951 + extern(Windows) : 952 + void GetDesc(D3D10_SAMPLER_DESC *pDesc); 953 +} 954 + 955 +enum D3D10_FORMAT_SUPPORT { 956 + D3D10_FORMAT_SUPPORT_BUFFER = 0x000001, 957 + D3D10_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x000002, 958 + D3D10_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x000004, 959 + D3D10_FORMAT_SUPPORT_SO_BUFFER = 0x000008, 960 + D3D10_FORMAT_SUPPORT_TEXTURE1D = 0x000010, 961 + D3D10_FORMAT_SUPPORT_TEXTURE2D = 0x000020, 962 + D3D10_FORMAT_SUPPORT_TEXTURE3D = 0x000040, 963 + D3D10_FORMAT_SUPPORT_TEXTURECUBE = 0x000080, 964 + D3D10_FORMAT_SUPPORT_SHADER_LOAD = 0x000100, 965 + D3D10_FORMAT_SUPPORT_SHADER_SAMPLE = 0x000200, 966 + D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x000400, 967 + D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x000800, 968 + D3D10_FORMAT_SUPPORT_MIP = 0x001000, 969 + D3D10_FORMAT_SUPPORT_MIP_AUTOGEN = 0x002000, 970 + D3D10_FORMAT_SUPPORT_RENDER_TARGET = 0x004000, 971 + D3D10_FORMAT_SUPPORT_BLENDABLE = 0x008000, 972 + D3D10_FORMAT_SUPPORT_DEPTH_STENCIL = 0x010000, 973 + D3D10_FORMAT_SUPPORT_CPU_LOCKABLE = 0x020000, 974 + D3D10_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x040000, 975 + D3D10_FORMAT_SUPPORT_DISPLAY = 0x080000, 976 + D3D10_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000, 977 + D3D10_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000, 978 + D3D10_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000, 979 + D3D10_FORMAT_SUPPORT_SHADER_GATHER = 0x800000 980 +} 981 + 982 +interface ID3D10Asynchronous : ID3D10DeviceChild { 983 + extern(Windows) : 984 + void Begin(); 985 + void End(); 986 + HRESULT GetData(void *pData, UINT DataSize, UINT GetDataFlags); 987 + UINT GetDataSize(); 988 +} 989 + 990 +enum D3D10_ASYNC_GETDATA_FLAG { 991 + D3D10_ASYNC_GETDATA_DONOTFLUSH = 0x1 992 +} 993 + 994 +enum D3D10_QUERY { 995 + D3D10_QUERY_EVENT = 0, 996 + D3D10_QUERY_OCCLUSION = (D3D10_QUERY_EVENT + 1), 997 + D3D10_QUERY_TIMESTAMP = (D3D10_QUERY_OCCLUSION + 1), 998 + D3D10_QUERY_TIMESTAMP_DISJOINT = (D3D10_QUERY_TIMESTAMP + 1), 999 + D3D10_QUERY_PIPELINE_STATISTICS = (D3D10_QUERY_TIMESTAMP_DISJOINT + 1), 1000 + D3D10_QUERY_OCCLUSION_PREDICATE = (D3D10_QUERY_PIPELINE_STATISTICS + 1), 1001 + D3D10_QUERY_SO_STATISTICS = (D3D10_QUERY_OCCLUSION_PREDICATE + 1), 1002 + D3D10_QUERY_SO_OVERFLOW_PREDICATE = (D3D10_QUERY_SO_STATISTICS + 1) 1003 +} 1004 + 1005 +enum D3D10_QUERY_MISC_FLAG { 1006 + D3D10_QUERY_MISC_PREDICATEHINT = 0x01 1007 +} 1008 + 1009 +struct D3D10_QUERY_DESC { 1010 + D3D10_QUERY Query; 1011 + UINT MiscFlags; 1012 +} 1013 + 1014 +interface ID3D10Query : ID3D10Asynchronous { 1015 + extern(Windows) : 1016 + void GetDesc(D3D10_QUERY_DESC *pDesc); 1017 +} 1018 + 1019 +interface ID3D10Predicate : ID3D10Query { } 1020 + 1021 +struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT { 1022 + UINT64 Frequency; 1023 + BOOL Disjoint; 1024 +} 1025 + 1026 +struct D3D10_QUERY_DATA_PIPELINE_STATISTICS { 1027 + UINT64 IAVertices; 1028 + UINT64 IAPrimitives; 1029 + UINT64 VSInvocations; 1030 + UINT64 GSInvocations; 1031 + UINT64 GSPrimitives; 1032 + UINT64 CInvocations; 1033 + UINT64 CPrimitives; 1034 + UINT64 PSInvocations; 1035 +} 1036 + 1037 +struct D3D10_QUERY_DATA_SO_STATISTICS { 1038 + UINT64 NumPrimitivesWritten; 1039 + UINT64 PrimitivesStorageNeeded; 1040 +} 1041 + 1042 +enum D3D10_COUNTER { 1043 + D3D10_COUNTER_GPU_IDLE = 0, 1044 + D3D10_COUNTER_VERTEX_PROCESSING = (D3D10_COUNTER_GPU_IDLE + 1), 1045 + D3D10_COUNTER_GEOMETRY_PROCESSING = (D3D10_COUNTER_VERTEX_PROCESSING + 1), 1046 + D3D10_COUNTER_PIXEL_PROCESSING = (D3D10_COUNTER_GEOMETRY_PROCESSING + 1), 1047 + D3D10_COUNTER_OTHER_GPU_PROCESSING = (D3D10_COUNTER_PIXEL_PROCESSING + 1), 1048 + D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION = (D3D10_COUNTER_OTHER_GPU_PROCESSING + 1), 1049 + D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION = (D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION + 1), 1050 + D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION = (D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION + 1), 1051 + D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION = (D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION + 1), 1052 + D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION = (D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION + 1), 1053 + D3D10_COUNTER_VS_MEMORY_LIMITED = (D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION + 1), 1054 + D3D10_COUNTER_VS_COMPUTATION_LIMITED = (D3D10_COUNTER_VS_MEMORY_LIMITED + 1), 1055 + D3D10_COUNTER_GS_MEMORY_LIMITED = (D3D10_COUNTER_VS_COMPUTATION_LIMITED + 1), 1056 + D3D10_COUNTER_GS_COMPUTATION_LIMITED = (D3D10_COUNTER_GS_MEMORY_LIMITED + 1), 1057 + D3D10_COUNTER_PS_MEMORY_LIMITED = (D3D10_COUNTER_GS_COMPUTATION_LIMITED + 1), 1058 + D3D10_COUNTER_PS_COMPUTATION_LIMITED = (D3D10_COUNTER_PS_MEMORY_LIMITED + 1), 1059 + D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE = (D3D10_COUNTER_PS_COMPUTATION_LIMITED + 1), 1060 + D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE = (D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE + 1), 1061 + D3D10_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000 1062 +} 1063 + 1064 +enum D3D10_COUNTER_TYPE { 1065 + D3D10_COUNTER_TYPE_FLOAT32 = 0, 1066 + D3D10_COUNTER_TYPE_UINT16 = (D3D10_COUNTER_TYPE_FLOAT32 + 1), 1067 + D3D10_COUNTER_TYPE_UINT32 = (D3D10_COUNTER_TYPE_UINT16 + 1), 1068 + D3D10_COUNTER_TYPE_UINT64 = (D3D10_COUNTER_TYPE_UINT32 + 1) 1069 +} 1070 + 1071 +struct D3D10_COUNTER_DESC { 1072 + D3D10_COUNTER Counter; 1073 + UINT MiscFlags; 1074 +} 1075 + 1076 +struct D3D10_COUNTER_INFO { 1077 + D3D10_COUNTER LastDeviceDependentCounter; 1078 + UINT NumSimultaneousCounters; 1079 + UINT8 NumDetectableParallelUnits; 1080 +} 1081 + 1082 +interface ID3D10Counter : ID3D10Asynchronous { 1083 + extern(Windows) : 1084 + void GetDesc(D3D10_COUNTER_DESC *pDesc); 1085 +} 1086 + 1087 +interface ID3D10Device : IUnknown { 1088 + extern(Windows) : 1089 + void VSSetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); 1090 + void PSSetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); 1091 + void PSSetShader(ID3D10PixelShader pPixelShader); 1092 + void PSSetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); 1093 + void VSSetShader(ID3D10VertexShader pVertexShader); 1094 + void DrawIndexed(UINT IndexCount, UINT StartIndexLocation, INT BaseVertexLocation); 1095 + void Draw(UINT VertexCount, UINT StartVertexLocation); 1096 + void PSSetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); 1097 + void IASetInputLayout(ID3D10InputLayout pInputLayout); 1098 + void IASetVertexBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppVertexBuffers, UINT* pStrides, UINT* pOffsets); 1099 + void IASetIndexBuffer(ID3D10Buffer pIndexBuffer, DXGI_FORMAT Format, UINT Offset); 1100 + void DrawIndexedInstanced(UINT IndexCountPerInstance, UINT InstanceCount, UINT StartIndexLocation, INT BaseVertexLocation, UINT StartInstanceLocation); 1101 + void DrawInstanced(UINT VertexCountPerInstance, UINT InstanceCount, UINT StartVertexLocation, UINT StartInstanceLocation); 1102 + void GSSetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); 1103 + void GSSetShader(ID3D10GeometryShader pShader); 1104 + void IASetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY Topology); 1105 + void VSSetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); 1106 + void VSSetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); 1107 + void SetPredication(ID3D10Predicate pPredicate, BOOL PredicateValue); 1108 + void GSSetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); 1109 + void GSSetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); 1110 + void OMSetRenderTargets(UINT NumViews, ID3D10RenderTargetView* ppRenderTargetViews, ID3D10DepthStencilView pDepthStencilView); 1111 + void OMSetBlendState(ID3D10BlendState pBlendState, FLOAT[4] BlendFactor, UINT SampleMask); 1112 + void OMSetDepthStencilState(ID3D10DepthStencilState pDepthStencilState, UINT StencilRef); 1113 + void SOSetTargets(UINT NumBuffers, ID3D10Buffer* ppSOTargets, UINT* pOffsets); 1114 + void DrawAuto(); 1115 + void RSSetState(ID3D10RasterizerState pRasterizerState); 1116 + void RSSetViewports(UINT NumViewports, D3D10_VIEWPORT* pViewports); 1117 + void RSSetScissorRects(UINT NumRects, D3D10_RECT* pRects); 1118 + void CopySubresourceRegion(ID3D10Resource pDstResource, UINT DstSubresource, UINT DstX, UINT DstY, UINT DstZ, ID3D10Resource pSrcResource, UINT SrcSubresource, D3D10_BOX* pSrcBox); 1119 + void CopyResource(ID3D10Resource pDstResource, ID3D10Resource pSrcResource); 1120 + void UpdateSubresource(ID3D10Resource pDstResource, UINT DstSubresource, D3D10_BOX* pDstBox, void* pSrcData, UINT SrcRowPitch, UINT SrcDepthPitch); 1121 + void ClearRenderTargetView(ID3D10RenderTargetView pRenderTargetView, FLOAT[4]* ColorRGBA); 1122 + void ClearDepthStencilView(ID3D10DepthStencilView pDepthStencilView, UINT ClearFlags, FLOAT Depth, UINT8 Stencil); 1123 + void GenerateMips(ID3D10ShaderResourceView pShaderResourceView); 1124 + void ResolveSubresource(ID3D10Resource pDstResource, UINT DstSubresource, ID3D10Resource pSrcResource, UINT SrcSubresource, DXGI_FORMAT Format); 1125 + void VSGetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); 1126 + void PSGetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); 1127 + void PSGetShader(ID3D10PixelShader* ppPixelShader); 1128 + void PSGetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); 1129 + void VSGetShader(ID3D10VertexShader* ppVertexShader); 1130 + void PSGetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); 1131 + void IAGetInputLayout(ID3D10InputLayout* ppInputLayout); 1132 + void IAGetVertexBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppVertexBuffers, UINT* pStrides, UINT* pOffsets); 1133 + void IAGetIndexBuffer(ID3D10Buffer* pIndexBuffer, DXGI_FORMAT* Format, UINT* Offset); 1134 + void GSGetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); 1135 + void GSGetShader(ID3D10GeometryShader* ppGeometryShader); 1136 + void IAGetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY* pTopology); 1137 + void VSGetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); 1138 + void VSGetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); 1139 + void GetPredication(ID3D10Predicate* ppPredicate, BOOL* pPredicateValue); 1140 + void GSGetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); 1141 + void GSGetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); 1142 + void OMGetRenderTargets(UINT NumViews, ID3D10RenderTargetView* ppRenderTargetViews, ID3D10DepthStencilView* ppDepthStencilView); 1143 + void OMGetBlendState(ID3D10BlendState* ppBlendState, FLOAT[ 4 ] BlendFactor, UINT* pSampleMask); 1144 + void OMGetDepthStencilState(ID3D10DepthStencilState* ppDepthStencilState, UINT* pStencilRef); 1145 + void SOGetTargets(UINT NumBuffers, ID3D10Buffer* ppSOTargets, UINT* pOffsets); 1146 + void RSGetState(ID3D10RasterizerState* ppRasterizerState); 1147 + void RSGetViewports(UINT* NumViewports, D3D10_VIEWPORT* pViewports); 1148 + void RSGetScissorRects(UINT* NumRects, D3D10_RECT* pRects); 1149 + HRESULT GetDeviceRemovedReason(); 1150 + HRESULT SetExceptionMode(UINT RaiseFlags); 1151 + UINT GetExceptionMode(); 1152 + HRESULT GetPrivateData(REFGUID guid, UINT* pDataSize, void* pData); 1153 + HRESULT SetPrivateData(REFGUID guid, UINT DataSize, void* pData); 1154 + HRESULT SetPrivateDataInterface(REFGUID guid, IUnknown pData); 1155 + void ClearState(); 1156 + void Flush(); 1157 + HRESULT CreateBuffer(D3D10_BUFFER_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Buffer* ppBuffer); 1158 + HRESULT CreateTexture1D(D3D10_TEXTURE1D_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Texture1D* ppTexture1D); 1159 + HRESULT CreateTexture2D(D3D10_TEXTURE2D_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Texture2D* ppTexture2D); 1160 + HRESULT CreateTexture3D(D3D10_TEXTURE3D_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Texture3D* ppTexture3D); 1161 + HRESULT CreateShaderResourceView(ID3D10Resource pResource, D3D10_SHADER_RESOURCE_VIEW_DESC* pDesc, ID3D10ShaderResourceView* ppSRView); 1162 + HRESULT CreateRenderTargetView(ID3D10Resource pResource, D3D10_RENDER_TARGET_VIEW_DESC* pDesc, ID3D10RenderTargetView* ppRTView); 1163 + HRESULT CreateDepthStencilView(ID3D10Resource pResource, D3D10_DEPTH_STENCIL_VIEW_DESC* pDesc, ID3D10DepthStencilView* ppDepthStencilView); 1164 + HRESULT CreateInputLayout(D3D10_INPUT_ELEMENT_DESC* pInputElementDescs, UINT NumElements, void* pShaderBytecodeWithInputSignature, SIZE_T BytecodeLength, ID3D10InputLayout* ppInputLayout); 1165 + HRESULT CreateVertexShader(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10VertexShader* ppVertexShader); 1166 + HRESULT CreateGeometryShader(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10GeometryShader* ppGeometryShader); 1167 + HRESULT CreateGeometryShaderWithStreamOutput(void* pShaderBytecode, SIZE_T BytecodeLength, D3D10_SO_DECLARATION_ENTRY* pSODeclaration, UINT NumEntries, UINT OutputStreamStride, ID3D10GeometryShader* ppGeometryShader); 1168 + HRESULT CreatePixelShader(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10PixelShader* ppPixelShader); 1169 + HRESULT CreateBlendState(D3D10_BLEND_DESC* pBlendStateDesc, ID3D10BlendState* ppBlendState); 1170 + HRESULT CreateDepthStencilState(D3D10_DEPTH_STENCIL_DESC* pDepthStencilDesc, ID3D10DepthStencilState* ppDepthStencilState); 1171 + HRESULT CreateRasterizerState(D3D10_RASTERIZER_DESC* pRasterizerDesc, ID3D10RasterizerState* ppRasterizerState); 1172 + HRESULT CreateSamplerState(D3D10_SAMPLER_DESC* pSamplerDesc, ID3D10SamplerState* ppSamplerState); 1173 + HRESULT CreateQuery(D3D10_QUERY_DESC* pQueryDesc, ID3D10Query* ppQuery); 1174 + HRESULT CreatePredicate(D3D10_QUERY_DESC* pPredicateDesc, ID3D10Predicate* ppPredicate); 1175 + HRESULT CreateCounter(D3D10_COUNTER_DESC* pCounterDesc, ID3D10Counter* ppCounter); 1176 + HRESULT CheckFormatSupport(DXGI_FORMAT Format, UINT* pFormatSupport); 1177 + HRESULT CheckMultisampleQualityLevels(DXGI_FORMAT Format, UINT SampleCount, UINT* pNumQualityLevels); 1178 + void CheckCounterInfo(D3D10_COUNTER_INFO* pCounterInfo); 1179 + HRESULT CheckCounter(D3D10_COUNTER_DESC* pDesc, D3D10_COUNTER_TYPE* pType, UINT* pActiveCounters, LPSTR szName, UINT* pNameLength, LPSTR szUnits, UINT* pUnitsLength, LPSTR szDescription, UINT* pDescriptionLength); 1180 + UINT GetCreationFlags(); 1181 + HRESULT OpenSharedResource(HANDLE hResource, REFIID ReturnedInterface, void** ppResource); 1182 + void SetTextFilterSize(UINT Width, UINT Height); 1183 + void GetTextFilterSize(UINT* pWidth, UINT* pHeight); 1184 +} 1185 + 1186 +interface ID3D10Multithread : IUnknown { 1187 + extern(Windows) : 1188 + void Enter(); 1189 + void Leave(); 1190 + BOOL SetMultithreadProtected(BOOL bMTProtect); 1191 + BOOL GetMultithreadProtected(); 1192 +} 1193 + 1194 +enum D3D10_CREATE_DEVICE_FLAG { 1195 + D3D10_CREATE_DEVICE_SINGLETHREADED = 0x01, 1196 + D3D10_CREATE_DEVICE_DEBUG = 0x02, 1197 + D3D10_CREATE_DEVICE_SWITCH_TO_REF = 0x04, 1198 + D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x08 1199 +} 1200 + 1201 +const D3D10_SDK_VERSION = 29; 1202 + 1203 +extern(C) const GUID IID_ID3D10DeviceChild = {0x9B7E4C00, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1204 +extern(C) const GUID IID_ID3D10DepthStencilState = {0x2B4B1CC8, 0xA4AD, 0x41f8, [0x83, 0x22, 0xCA, 0x86, 0xFC, 0x3E, 0xC6, 0x75]}; 1205 +extern(C) const GUID IID_ID3D10BlendState = {0xEDAD8D19, 0x8A35, 0x4d6d, [0x85, 0x66, 0x2E, 0xA2, 0x76, 0xCD, 0xE1, 0x61]}; 1206 +extern(C) const GUID IID_ID3D10RasterizerState = {0xA2A07292, 0x89AF, 0x4345, [0xBE, 0x2E, 0xC5, 0x3D, 0x9F, 0xBB, 0x6E, 0x9F]}; 1207 +extern(C) const GUID IID_ID3D10Resource = {0x9B7E4C01, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1208 +extern(C) const GUID IID_ID3D10Buffer = {0x9B7E4C02, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1209 +extern(C) const GUID IID_ID3D10Texture1D = {0x9B7E4C03, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1210 +extern(C) const GUID IID_ID3D10Texture2D = {0x9B7E4C04, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1211 +extern(C) const GUID IID_ID3D10Texture3D = {0x9B7E4C05, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1212 +extern(C) const GUID IID_ID3D10View = {0xC902B03F, 0x60A7, 0x49BA, [0x99, 0x36, 0x2A, 0x3A, 0xB3, 0x7A, 0x7E, 0x33]}; 1213 +extern(C) const GUID IID_ID3D10ShaderResourceView = {0x9B7E4C07, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1214 +extern(C) const GUID IID_ID3D10RenderTargetView = {0x9B7E4C08, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1215 +extern(C) const GUID IID_ID3D10DepthStencilView = {0x9B7E4C09, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1216 +extern(C) const GUID IID_ID3D10VertexShader = {0x9B7E4C0A, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1217 +extern(C) const GUID IID_ID3D10GeometryShader = {0x6316BE88, 0x54CD, 0x4040, [0xAB, 0x44, 0x20, 0x46, 0x1B, 0xC8, 0x1F, 0x68]}; 1218 +extern(C) const GUID IID_ID3D10PixelShader = {0x4968B601, 0x9D00, 0x4cde, [0x83, 0x46, 0x8E, 0x7F, 0x67, 0x58, 0x19, 0xB6]}; 1219 +extern(C) const GUID IID_ID3D10InputLayout = {0x9B7E4C0B, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1220 +extern(C) const GUID IID_ID3D10SamplerState = {0x9B7E4C0C, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1221 +extern(C) const GUID IID_ID3D10Asynchronous = {0x9B7E4C0D, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1222 +extern(C) const GUID IID_ID3D10Query = {0x9B7E4C0E, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1223 +extern(C) const GUID IID_ID3D10Predicate = {0x9B7E4C10, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1224 +extern(C) const GUID IID_ID3D10Counter = {0x9B7E4C11, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1225 +extern(C) const GUID IID_ID3D10Device = {0x9B7E4C0F, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1226 +extern(C) const GUID IID_ID3D10Multithread = {0x9B7E4E00, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1227 + 1228 +public import win32.directx.d3d10shader; 1229 +public import win32.directx.d3d10effect;

Added src/win32/directx/d3d10effect.d version [496784a5813cdffa]

1 +/***********************************************************************\ 2 +* d3d10effect.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Placed into public domain * 7 +\***********************************************************************/ 8 +module win32.directx.d3d10effect; 9 + 10 +private import win32.windows; 11 +private import win32.directx.d3d10; 12 + 13 + 14 +enum D3D10_DEVICE_STATE_TYPES { 15 + D3D10_DST_SO_BUFFERS = 1, 16 + D3D10_DST_OM_RENDER_TARGETS, 17 + D3D10_DST_OM_DEPTH_STENCIL_STATE, 18 + D3D10_DST_OM_BLEND_STATE, 19 + D3D10_DST_VS, 20 + D3D10_DST_VS_SAMPLERS, 21 + D3D10_DST_VS_SHADER_RESOURCES, 22 + D3D10_DST_VS_CONSTANT_BUFFERS, 23 + D3D10_DST_GS, 24 + D3D10_DST_GS_SAMPLERS, 25 + D3D10_DST_GS_SHADER_RESOURCES, 26 + D3D10_DST_GS_CONSTANT_BUFFERS, 27 + D3D10_DST_PS, 28 + D3D10_DST_PS_SAMPLERS, 29 + D3D10_DST_PS_SHADER_RESOURCES, 30 + D3D10_DST_PS_CONSTANT_BUFFERS, 31 + D3D10_DST_IA_VERTEX_BUFFERS, 32 + D3D10_DST_IA_INDEX_BUFFER, 33 + D3D10_DST_IA_INPUT_LAYOUT, 34 + D3D10_DST_IA_PRIMITIVE_TOPOLOGY, 35 + D3D10_DST_RS_VIEWPORTS, 36 + D3D10_DST_RS_SCISSOR_RECTS, 37 + D3D10_DST_RS_RASTERIZER_STATE, 38 + D3D10_DST_PREDICATION 39 +} 40 + 41 +struct D3D10_STATE_BLOCK_MASK { 42 + BYTE VS; 43 + BYTE[2] VSSamplers; 44 + BYTE[16] VSShaderResources; 45 + BYTE[2] VSConstantBuffers; 46 + BYTE GS; 47 + BYTE[2] GSSamplers; 48 + BYTE[16] GSShaderResources; 49 + BYTE[2] GSConstantBuffers; 50 + BYTE PS; 51 + BYTE[2] PSSamplers; 52 + BYTE[16] PSShaderResources; 53 + BYTE[2] PSConstantBuffers; 54 + BYTE[2] IAVertexBuffers; 55 + BYTE IAIndexBuffer; 56 + BYTE IAInputLayout; 57 + BYTE IAPrimitiveTopology; 58 + BYTE OMRenderTargets; 59 + BYTE OMDepthStencilState; 60 + BYTE OMBlendState; 61 + BYTE RSViewports; 62 + BYTE RSScissorRects; 63 + BYTE RSRasterizerState; 64 + BYTE SOBuffers; 65 + BYTE Predication; 66 +} 67 + 68 +extern (C) const GUID IID_ID3D10StateBlock = {0x803425a, 0x57f5, 0x4dd6, [0x94, 0x65, 0xa8, 0x75, 0x70, 0x83, 0x4a, 0x08]}; 69 + 70 +interface ID3D10StateBlock : IUnknown { 71 + extern(Windows) : 72 + HRESULT Capture(); 73 + HRESULT Apply(); 74 + HRESULT ReleaseAllDeviceObjects(); 75 + HRESULT GetDevice(ID3D10Device ppDevice); 76 +} 77 + 78 +HRESULT D3D10StateBlockMaskUnion(D3D10_STATE_BLOCK_MASK* pA, D3D10_STATE_BLOCK_MASK* pB, D3D10_STATE_BLOCK_MASK* pResult); 79 +HRESULT D3D10StateBlockMaskIntersect(D3D10_STATE_BLOCK_MASK* pA, D3D10_STATE_BLOCK_MASK* pB, D3D10_STATE_BLOCK_MASK* pResult); 80 +HRESULT D3D10StateBlockMaskDifference(D3D10_STATE_BLOCK_MASK* pA, D3D10_STATE_BLOCK_MASK* pB, D3D10_STATE_BLOCK_MASK* pResult); 81 +HRESULT D3D10StateBlockMaskEnableCapture(D3D10_STATE_BLOCK_MASK* pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT RangeStart, UINT RangeLength); 82 +HRESULT D3D10StateBlockMaskDisableCapture(D3D10_STATE_BLOCK_MASK* pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT RangeStart, UINT RangeLength); 83 +HRESULT D3D10StateBlockMaskEnableAll(D3D10_STATE_BLOCK_MASK* pMask); 84 +HRESULT D3D10StateBlockMaskDisableAll(D3D10_STATE_BLOCK_MASK* pMask); 85 +BOOL D3D10StateBlockMaskGetSetting(D3D10_STATE_BLOCK_MASK* pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT Entry); 86 +HRESULT D3D10CreateStateBlock(ID3D10Device pDevice, D3D10_STATE_BLOCK_MASK* pStateBlockMask, ID3D10StateBlock ppStateBlock); 87 + 88 +const D3D10_EFFECT_COMPILE_CHILD_EFFECT = 1 << 0; 89 +const D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS = 1 << 1; 90 +const D3D10_EFFECT_SINGLE_THREADED = 1 << 3; 91 +const D3D10_EFFECT_VARIABLE_POOLED = 1 << 0; 92 +const D3D10_EFFECT_VARIABLE_ANNOTATION = 1 << 1; 93 +const D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT = 1 << 2; 94 + 95 +struct D3D10_EFFECT_TYPE_DESC { 96 + LPCSTR TypeName; 97 + D3D10_SHADER_VARIABLE_CLASS Class; 98 + D3D10_SHADER_VARIABLE_TYPE Type; 99 + UINT Elements; 100 + UINT Members; 101 + UINT Rows; 102 + UINT Columns; 103 + UINT PackedSize; 104 + UINT UnpackedSize; 105 + UINT Stride; 106 +} 107 + 108 +extern (C) const GUID IID_ID3D10EffectType = {0x4e9e1ddc, 0xcd9d, 0x4772, [0xa8, 0x37, 0x0, 0x18, 0x0b, 0x9b, 0x88, 0xfd]}; 109 + 110 +interface ID3D10EffectType { 111 +/* TODO: fix vtbl[0] bug 112 + extern(Windows) : 113 + BOOL IsValid(); 114 + HRESULT GetDesc(D3D10_EFFECT_TYPE_DESC* pDesc); 115 + ID3D10EffectType GetMemberTypeByIndex(UINT Index); 116 + ID3D10EffectType GetMemberTypeByName(LPCSTR Name); 117 + ID3D10EffectType GetMemberTypeBySemantic(LPCSTR Semantic); 118 + LPCSTR GetMemberName(UINT Index); 119 + LPCSTR GetMemberSemantic(UINT Index); 120 + */ 121 +} 122 + 123 +struct D3D10_EFFECT_VARIABLE_DESC { 124 + LPCSTR Name; 125 + LPCSTR Semantic; 126 + UINT Flags; 127 + UINT Annotations; 128 + UINT BufferOffset; 129 + UINT ExplicitBindPoint; 130 +} 131 + 132 +extern (C) const GUID IID_ID3D10EffectVariable = {0xae897105, 0x00e6, 0x45bf, [0xbb, 0x8e, 0x28, 0x1d, 0xd6, 0xdb, 0x8e, 0x1b]}; 133 + 134 +interface ID3D10EffectVariable { 135 +/* TODO: fix vtbl[0] bug 136 + extern(Windows) : 137 + BOOL IsValid(); 138 + ID3D10EffectType GetType(); 139 + HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 140 + ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 141 + ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 142 + ID3D10EffectVariable GetMemberByIndex(UINT Index); 143 + ID3D10EffectVariable GetMemberByName(LPCSTR Name); 144 + ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 145 + ID3D10EffectVariable GetElement(UINT Index); 146 + ID3D10EffectConstantBuffer GetParentConstantBuffer(); 147 + ID3D10EffectScalarVariable AsScalar(); 148 + ID3D10EffectVectorVariable AsVector(); 149 + ID3D10EffectMatrixVariable AsMatrix(); 150 + ID3D10EffectStringVariable AsString(); 151 + ID3D10EffectShaderResourceVariable AsShaderResource(); 152 + ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 153 + ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 154 + ID3D10EffectConstantBuffer AsConstantBuffer(); 155 + ID3D10EffectShaderVariable AsShader(); 156 + ID3D10EffectBlendVariable AsBlend(); 157 + ID3D10EffectDepthStencilVariable AsDepthStencil(); 158 + ID3D10EffectRasterizerVariable AsRasterizer(); 159 + ID3D10EffectSamplerVariable AsSampler(); 160 + HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 161 + HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 162 + */ 163 +} 164 + 165 +extern (C) const GUID IID_ID3D10EffectScalarVariable = {0xe48f7b, 0xd2c8, 0x49e8, [0xa8, 0x6c, 0x2, 0x2d, 0xee, 0x53, 0x43, 0x1f]}; 166 + 167 +interface ID3D10EffectScalarVariable : ID3D10EffectVariable { 168 +/* TODO: fix vtbl[0] bug 169 + extern(Windows) : 170 + BOOL IsValid(); 171 + ID3D10EffectType GetType(); 172 + HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 173 + ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 174 + ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 175 + ID3D10EffectVariable GetMemberByIndex(UINT Index); 176 + ID3D10EffectVariable GetMemberByName(LPCSTR Name); 177 + ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 178 + ID3D10EffectVariable GetElement(UINT Index); 179 + ID3D10EffectConstantBuffer GetParentConstantBuffer(); 180 + ID3D10EffectScalarVariable AsScalar(); 181 + ID3D10EffectVectorVariable AsVector(); 182 + ID3D10EffectMatrixVariable AsMatrix(); 183 + ID3D10EffectStringVariable AsString(); 184 + ID3D10EffectShaderResourceVariable AsShaderResource(); 185 + ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 186 + ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 187 + ID3D10EffectConstantBuffer AsConstantBuffer(); 188 + ID3D10EffectShaderVariable AsShader(); 189 + ID3D10EffectBlendVariable AsBlend(); 190 + ID3D10EffectDepthStencilVariable AsDepthStencil(); 191 + ID3D10EffectRasterizerVariable AsRasterizer(); 192 + ID3D10EffectSamplerVariable AsSampler(); 193 + HRESULT SetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); 194 + HRESULT GetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); 195 + HRESULT SetFloat(float Value); 196 + HRESULT GetFloat(float* pValue); 197 + HRESULT SetFloatArray(float* pData, UINT Offset, UINT Count); 198 + HRESULT GetFloatArray(float* pData, UINT Offset, UINT Count); 199 + HRESULT SetInt(int Value); 200 + HRESULT GetInt(int* pValue); 201 + HRESULT SetIntArray(int* pData, UINT Offset, UINT Count); 202 + HRESULT GetIntArray(int* pData, UINT Offset, UINT Count); 203 + HRESULT SetBool(BOOL Value); 204 + HRESULT GetBool(BOOL* pValue); 205 + HRESULT SetBoolArray(BOOL* pData, UINT Offset, UINT Count); 206 + HRESULT GetBoolArray(BOOL* pData, UINT Offset, UINT Count); 207 + */ 208 +} 209 + 210 +extern (C) const GUID IID_ID3D10EffectVectorVariable = {0x62b98c44, 0x1f82, 0x4c67, [0xbc, 0xd0, 0x72, 0xcf, 0x8f, 0x21, 0x7e, 0x81]}; 211 + 212 +interface ID3D10EffectVectorVariable : ID3D10EffectVariable { 213 +/* TODO: fix vtbl[0] bug 214 + extern(Windows) : 215 + BOOL IsValid(); 216 + ID3D10EffectType GetType(); 217 + HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 218 + ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 219 + ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 220 + ID3D10EffectVariable GetMemberByIndex(UINT Index); 221 + ID3D10EffectVariable GetMemberByName(LPCSTR Name); 222 + ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 223 + ID3D10EffectVariable GetElement(UINT Index); 224 + ID3D10EffectConstantBuffer GetParentConstantBuffer(); 225 + ID3D10EffectScalarVariable AsScalar(); 226 + ID3D10EffectVectorVariable AsVector(); 227 + ID3D10EffectMatrixVariable AsMatrix(); 228 + ID3D10EffectStringVariable AsString(); 229 + ID3D10EffectShaderResourceVariable AsShaderResource(); 230 + ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 231 + ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 232 + ID3D10EffectConstantBuffer AsConstantBuffer(); 233 + ID3D10EffectShaderVariable AsShader(); 234 + ID3D10EffectBlendVariable AsBlend(); 235 + ID3D10EffectDepthStencilVariable AsDepthStencil(); 236 + ID3D10EffectRasterizerVariable AsRasterizer(); 237 + ID3D10EffectSamplerVariable AsSampler(); 238 + HRESULT SetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); 239 + HRESULT GetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); 240 + HRESULT SetBoolVector (BOOL* pData); 241 + HRESULT SetIntVector (int* pData); 242 + HRESULT SetFloatVector(float* pData); 243 + HRESULT GetBoolVector (BOOL* pData); 244 + HRESULT GetIntVector (int* pData); 245 + HRESULT GetFloatVector(float* pData); 246 + HRESULT SetBoolVectorArray (BOOL* pData, UINT Offset, UINT Count); 247 + HRESULT SetIntVectorArray (int* pData, UINT Offset, UINT Count); 248 + HRESULT SetFloatVectorArray(float* pData, UINT Offset, UINT Count); 249 + HRESULT GetBoolVectorArray (BOOL* pData, UINT Offset, UINT Count); 250 + HRESULT GetIntVectorArray (int* pData, UINT Offset, UINT Count); 251 + HRESULT GetFloatVectorArray(float* pData, UINT Offset, UINT Count); 252 + */ 253 +} 254 + 255 +extern (C) const GUID IID_ID3D10EffectMatrixVariable = {0x50666c24, 0xb82f, 0x4eed, [0xa1, 0x72, 0x5b, 0x6e, 0x7e, 0x85, 0x22, 0xe0]}; 256 + 257 +interface ID3D10EffectMatrixVariable : ID3D10EffectVariable { 258 +/* TODO: fix vtbl[0] bug 259 + extern(Windows) : 260 + BOOL IsValid(); 261 + ID3D10EffectType GetType(); 262 + HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 263 + ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 264 + ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 265 + ID3D10EffectVariable GetMemberByIndex(UINT Index); 266 + ID3D10EffectVariable GetMemberByName(LPCSTR Name); 267 + ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 268 + ID3D10EffectVariable GetElement(UINT Index); 269 + ID3D10EffectConstantBuffer GetParentConstantBuffer(); 270 + ID3D10EffectScalarVariable AsScalar(); 271 + ID3D10EffectVectorVariable AsVector(); 272 + ID3D10EffectMatrixVariable AsMatrix(); 273 + ID3D10EffectStringVariable AsString(); 274 + ID3D10EffectShaderResourceVariable AsShaderResource(); 275 + ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 276 + ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 277 + ID3D10EffectConstantBuffer AsConstantBuffer(); 278 + ID3D10EffectShaderVariable AsShader(); 279 + ID3D10EffectBlendVariable AsBlend(); 280 + ID3D10EffectDepthStencilVariable AsDepthStencil(); 281 + ID3D10EffectRasterizerVariable AsRasterizer(); 282 + ID3D10EffectSamplerVariable AsSampler(); 283 + HRESULT SetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); 284 + HRESULT GetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); 285 + HRESULT SetMatrix(float* pData); 286 + HRESULT GetMatrix(float* pData); 287 + HRESULT SetMatrixArray(float* pData, UINT Offset, UINT Count); 288 + HRESULT GetMatrixArray(float* pData, UINT Offset, UINT Count); 289 + HRESULT SetMatrixTranspose(float* pData); 290 + HRESULT GetMatrixTranspose(float* pData); 291 + HRESULT SetMatrixTransposeArray(float* pData, UINT Offset, UINT Count); 292 + HRESULT GetMatrixTransposeArray(float* pData, UINT Offset, UINT Count); 293 + */ 294 +} 295 + 296 +extern (C) const GUID IID_ID3D10EffectStringVariable = {0x71417501, 0x8df9, 0x4e0a, [0xa7, 0x8a, 0x25, 0x5f, 0x97, 0x56, 0xba, 0xff]}; 297 + 298 +interface ID3D10EffectStringVariable : ID3D10EffectVariable { 299 +/* TODO: fix vtbl[0] bug 300 + extern(Windows) : 301 + BOOL IsValid(); 302 + ID3D10EffectType GetType(); 303 + HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 304 + ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 305 + ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 306 + ID3D10EffectVariable GetMemberByIndex(UINT Index); 307 + ID3D10EffectVariable GetMemberByName(LPCSTR Name); 308 + ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 309 + ID3D10EffectVariable GetElement(UINT Index); 310 + ID3D10EffectConstantBuffer GetParentConstantBuffer(); 311 + ID3D10EffectScalarVariable AsScalar(); 312 + ID3D10EffectVectorVariable AsVector(); 313 + ID3D10EffectMatrixVariable AsMatrix(); 314 + ID3D10EffectStringVariable AsString(); 315 + ID3D10EffectShaderResourceVariable AsShaderResource(); 316 + ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 317 + ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 318 + ID3D10EffectConstantBuffer AsConstantBuffer(); 319 + ID3D10EffectShaderVariable AsShader(); 320 + ID3D10EffectBlendVariable AsBlend(); 321 + ID3D10EffectDepthStencilVariable AsDepthStencil(); 322 + ID3D10EffectRasterizerVariable AsRasterizer(); 323 + ID3D10EffectSamplerVariable AsSampler(); 324 + HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 325 + HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 326 + HRESULT GetString(LPCSTR* ppString); 327 + HRESULT GetStringArray(LPCSTR* ppStrings, UINT Offset, UINT Count); 328 + */ 329 +} 330 + 331 +extern (C) const GUID IID_ID3D10EffectShaderResourceVariable = {0xc0a7157b, 0xd872, 0x4b1d, [0x80, 0x73, 0xef, 0xc2, 0xac, 0xd4, 0xb1, 0xfc]}; 332 + 333 +interface ID3D10EffectShaderResourceVariable : ID3D10EffectVariable { 334 +/* TODO: fix vtbl[0] bug 335 + extern(Windows) : 336 + BOOL IsValid(); 337 + ID3D10EffectType GetType(); 338 + HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 339 + ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 340 + ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 341 + ID3D10EffectVariable GetMemberByIndex(UINT Index); 342 + ID3D10EffectVariable GetMemberByName(LPCSTR Name); 343 + ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 344 + ID3D10EffectVariable GetElement(UINT Index); 345 + ID3D10EffectConstantBuffer GetParentConstantBuffer(); 346 + ID3D10EffectScalarVariable AsScalar(); 347 + ID3D10EffectVectorVariable AsVector(); 348 + ID3D10EffectMatrixVariable AsMatrix(); 349 + ID3D10EffectStringVariable AsString(); 350 + ID3D10EffectShaderResourceVariable AsShaderResource(); 351 + ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 352 + ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 353 + ID3D10EffectConstantBuffer AsConstantBuffer(); 354 + ID3D10EffectShaderVariable AsShader(); 355 + ID3D10EffectBlendVariable AsBlend(); 356 + ID3D10EffectDepthStencilVariable AsDepthStencil(); 357 + ID3D10EffectRasterizerVariable AsRasterizer(); 358 + ID3D10EffectSamplerVariable AsSampler(); 359 + HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 360 + HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 361 + HRESULT SetResource(ID3D10ShaderResourceView pResource); 362 + HRESULT GetResource(ID3D10ShaderResourceView* ppResource); 363 + HRESULT SetResourceArray(ID3D10ShaderResourceView* ppResources, UINT Offset, UINT Count); 364 + HRESULT GetResourceArray(ID3D10ShaderResourceView* ppResources, UINT Offset, UINT Count); 365 + */ 366 +} 367 + 368 +extern (C) const GUID IID_ID3D10EffectRenderTargetViewVariable = {0x28ca0cc3, 0xc2c9, 0x40bb, [0xb5, 0x7f, 0x67, 0xb7, 0x37, 0x12, 0x2b, 0x17]}; 369 + 370 +interface ID3D10EffectRenderTargetViewVariable : ID3D10EffectVariable { 371 +/* TODO: fix vtbl[0] bug 372 + extern(Windows) : 373 + BOOL IsValid(); 374 + ID3D10EffectType GetType(); 375 + HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 376 + ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 377 + ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 378 + ID3D10EffectVariable GetMemberByIndex(UINT Index); 379 + ID3D10EffectVariable GetMemberByName(LPCSTR Name); 380 + ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 381 + ID3D10EffectVariable GetElement(UINT Index); 382 + ID3D10EffectConstantBuffer GetParentConstantBuffer(); 383 + ID3D10EffectScalarVariable AsScalar(); 384 + ID3D10EffectVectorVariable AsVector(); 385 + ID3D10EffectMatrixVariable AsMatrix(); 386 + ID3D10EffectStringVariable AsString(); 387 + ID3D10EffectShaderResourceVariable AsShaderResource(); 388 + ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 389 + ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 390 + ID3D10EffectConstantBuffer AsConstantBuffer(); 391 + ID3D10EffectShaderVariable AsShader(); 392 + ID3D10EffectBlendVariable AsBlend(); 393 + ID3D10EffectDepthStencilVariable AsDepthStencil(); 394 + ID3D10EffectRasterizerVariable AsRasterizer(); 395 + ID3D10EffectSamplerVariable AsSampler(); 396 + HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 397 + HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 398 + HRESULT SetRenderTarget(ID3D10RenderTargetView pResource); 399 + HRESULT GetRenderTarget(ID3D10RenderTargetView* ppResource); 400 + HRESULT SetRenderTargetArray(ID3D10RenderTargetView* ppResources, UINT Offset, UINT Count); 401 + HRESULT GetRenderTargetArray(ID3D10RenderTargetView* ppResources, UINT Offset, UINT Count); 402 + */ 403 +} 404 + 405 +extern (C) const GUID IID_ID3D10EffectDepthStencilViewVariable = {0x3e02c918, 0xcc79, 0x4985, [0xb6, 0x22, 0x2d, 0x92, 0xad, 0x70, 0x16, 0x23]}; 406 + 407 +interface ID3D10EffectDepthStencilViewVariable : ID3D10EffectVariable { 408 +/* TODO: fix vtbl[0] bug 409 + extern(Windows) : 410 + BOOL IsValid(); 411 + ID3D10EffectType GetType(); 412 + HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 413 + ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 414 + ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 415 + ID3D10EffectVariable GetMemberByIndex(UINT Index); 416 + ID3D10EffectVariable GetMemberByName(LPCSTR Name); 417 + ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 418 + ID3D10EffectVariable GetElement(UINT Index); 419 + ID3D10EffectConstantBuffer GetParentConstantBuffer(); 420 + ID3D10EffectScalarVariable AsScalar(); 421 + ID3D10EffectVectorVariable AsVector(); 422 + ID3D10EffectMatrixVariable AsMatrix(); 423 + ID3D10EffectStringVariable AsString(); 424 + ID3D10EffectShaderResourceVariable AsShaderResource(); 425 + ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 426 + ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 427 + ID3D10EffectConstantBuffer AsConstantBuffer(); 428 + ID3D10EffectShaderVariable AsShader(); 429 + ID3D10EffectBlendVariable AsBlend(); 430 + ID3D10EffectDepthStencilVariable AsDepthStencil(); 431 + ID3D10EffectRasterizerVariable AsRasterizer(); 432 + ID3D10EffectSamplerVariable AsSampler(); 433 + HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 434 + HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 435 + HRESULT SetDepthStencil(ID3D10DepthStencilView pResource); 436 + HRESULT GetDepthStencil(ID3D10DepthStencilView* ppResource); 437 + HRESULT SetDepthStencilArray(ID3D10DepthStencilView* ppResources, UINT Offset, UINT Count); 438 + HRESULT GetDepthStencilArray(ID3D10DepthStencilView* ppResources, UINT Offset, UINT Count); 439 + */ 440 +} 441 + 442 +extern (C) const GUID IID_ID3D10EffectConstantBuffer = {0x56648f4d, 0xcc8b, 0x4444, [0xa5, 0xad, 0xb5, 0xa3, 0xd7, 0x6e, 0x91, 0xb3]}; 443 + 444 +interface ID3D10EffectConstantBuffer : ID3D10EffectVariable { 445 +/* TODO: fix vtbl[0] bug 446 + extern(Windows) : 447 + ID3D10EffectType GetType(); 448 + HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 449 + ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 450 + ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 451 + ID3D10EffectVariable GetMemberByIndex(UINT Index); 452 + ID3D10EffectVariable GetMemberByName(LPCSTR Name); 453 + ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 454 + ID3D10EffectVariable GetElement(UINT Index); 455 + ID3D10EffectConstantBuffer GetParentConstantBuffer(); 456 + ID3D10EffectScalarVariable AsScalar(); 457 + ID3D10EffectVectorVariable AsVector(); 458 + ID3D10EffectMatrixVariable AsMatrix(); 459 + ID3D10EffectStringVariable AsString(); 460 + ID3D10EffectShaderResourceVariable AsShaderResource(); 461 + ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 462 + ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 463 + ID3D10EffectConstantBuffer AsConstantBuffer(); 464 + ID3D10EffectShaderVariable AsShader(); 465 + ID3D10EffectBlendVariable AsBlend(); 466 + ID3D10EffectDepthStencilVariable AsDepthStencil(); 467 + ID3D10EffectRasterizerVariable AsRasterizer(); 468 + ID3D10EffectSamplerVariable AsSampler(); 469 + HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 470 + HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 471 + HRESULT SetConstantBuffer(ID3D10Buffer pConstantBuffer); 472 + HRESULT GetConstantBuffer(ID3D10Buffer* ppConstantBuffer); 473 + HRESULT SetTextureBuffer(ID3D10ShaderResourceView pTextureBuffer); 474 + HRESULT GetTextureBuffer(ID3D10ShaderResourceView* ppTextureBuffer); 475 + */ 476 +} 477 + 478 +struct D3D10_EFFECT_SHADER_DESC { 479 + BYTE* pInputSignature; 480 + BOOL IsInline; 481 + BYTE* pBytecode; 482 + UINT BytecodeLength; 483 + LPCSTR SODecl; 484 + UINT NumInputSignatureEntries; 485 + UINT NumOutputSignatureEntries; 486 +} 487 + 488 +extern (C) const GUID IID_ID3D10EffectShaderVariable = {0x80849279, 0xc799, 0x4797, [0x8c, 0x33, 0x4, 0x7, 0xa0, 0x7d, 0x9e, 0x6]}; 489 + 490 +interface ID3D10EffectShaderVariable : ID3D10EffectVariable { 491 +/* TODO: fix vtbl[0] bug 492 + extern(Windows) : 493 + ID3D10EffectType GetType(); 494 + HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 495 + ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 496 + ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 497 + ID3D10EffectVariable GetMemberByIndex(UINT Index); 498 + ID3D10EffectVariable GetMemberByName(LPCSTR Name); 499 + ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 500 + ID3D10EffectVariable GetElement(UINT Index); 501 + ID3D10EffectConstantBuffer GetParentConstantBuffer(); 502 + ID3D10EffectScalarVariable AsScalar(); 503 + ID3D10EffectVectorVariable AsVector(); 504 + ID3D10EffectMatrixVariable AsMatrix(); 505 + ID3D10EffectStringVariable AsString(); 506 + ID3D10EffectShaderResourceVariable AsShaderResource(); 507 + ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 508 + ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 509 + ID3D10EffectConstantBuffer AsConstantBuffer(); 510 + ID3D10EffectShaderVariable AsShader(); 511 + ID3D10EffectBlendVariable AsBlend(); 512 + ID3D10EffectDepthStencilVariable AsDepthStencil(); 513 + ID3D10EffectRasterizerVariable AsRasterizer(); 514 + ID3D10EffectSamplerVariable AsSampler(); 515 + HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 516 + HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 517 + HRESULT GetShaderDesc(UINT ShaderIndex, D3D10_EFFECT_SHADER_DESC* pDesc); 518 + HRESULT GetVertexShader(UINT ShaderIndex, ID3D10VertexShader* ppVS); 519 + HRESULT GetGeometryShader(UINT ShaderIndex, ID3D10GeometryShader* ppGS); 520 + HRESULT GetPixelShader(UINT ShaderIndex, ID3D10PixelShader* ppPS); 521 + HRESULT GetInputSignatureElementDesc(UINT ShaderIndex, UINT Element, D3D10_SIGNATURE_PARAMETER_DESC* pDesc); 522 + HRESULT GetOutputSignatureElementDesc(UINT ShaderIndex, UINT Element, D3D10_SIGNATURE_PARAMETER_DESC* pDesc); 523 + */ 524 +} 525 + 526 +extern (C) const GUID IID_ID3D10EffectBlendVariable = {0x1fcd2294, 0xdf6d, 0x4eae, [0x86, 0xb3, 0xe, 0x91, 0x60, 0xcf, 0xb0, 0x7b]}; 527 + 528 +interface ID3D10EffectBlendVariable : ID3D10EffectVariable { 529 +/* TODO: fix vtbl[0] bug 530 + extern(Windows) : 531 + ID3D10EffectType GetType(); 532 + HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 533 + ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 534 + ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 535 + ID3D10EffectVariable GetMemberByIndex(UINT Index); 536 + ID3D10EffectVariable GetMemberByName(LPCSTR Name); 537 + ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 538 + ID3D10EffectVariable GetElement(UINT Index); 539 + ID3D10EffectConstantBuffer GetParentConstantBuffer(); 540 + ID3D10EffectScalarVariable AsScalar(); 541 + ID3D10EffectVectorVariable AsVector(); 542 + ID3D10EffectMatrixVariable AsMatrix(); 543 + ID3D10EffectStringVariable AsString(); 544 + ID3D10EffectShaderResourceVariable AsShaderResource(); 545 + ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 546 + ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 547 + ID3D10EffectConstantBuffer AsConstantBuffer(); 548 + ID3D10EffectShaderVariable AsShader(); 549 + ID3D10EffectBlendVariable AsBlend(); 550 + ID3D10EffectDepthStencilVariable AsDepthStencil(); 551 + ID3D10EffectRasterizerVariable AsRasterizer(); 552 + ID3D10EffectSamplerVariable AsSampler(); 553 + HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 554 + HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 555 + HRESULT GetBlendState(UINT Index, ID3D10BlendState* ppBlendState); 556 + HRESULT GetBackingStore(UINT Index, D3D10_BLEND_DESC* pBlendDesc); 557 + */ 558 +} 559 + 560 +extern (C) const GUID IID_ID3D10EffectDepthStencilVariable = {0xaf482368, 0x330a, 0x46a5, [0x9a, 0x5c, 0x1, 0xc7, 0x1a, 0xf2, 0x4c, 0x8d]}; 561 + 562 +interface ID3D10EffectDepthStencilVariable : ID3D10EffectVariable { 563 +/* TODO: fix vtbl[0] bug 564 + extern(Windows) : 565 + ID3D10EffectType GetType(); 566 + HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 567 + ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 568 + ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 569 + ID3D10EffectVariable GetMemberByIndex(UINT Index); 570 + ID3D10EffectVariable GetMemberByName(LPCSTR Name); 571 + ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 572 + ID3D10EffectVariable GetElement(UINT Index); 573 + ID3D10EffectConstantBuffer GetParentConstantBuffer(); 574 + ID3D10EffectScalarVariable AsScalar(); 575 + ID3D10EffectVectorVariable AsVector(); 576 + ID3D10EffectMatrixVariable AsMatrix(); 577 + ID3D10EffectStringVariable AsString(); 578 + ID3D10EffectShaderResourceVariable AsShaderResource(); 579 + ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 580 + ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 581 + ID3D10EffectConstantBuffer AsConstantBuffer(); 582 + ID3D10EffectShaderVariable AsShader(); 583 + ID3D10EffectBlendVariable AsBlend(); 584 + ID3D10EffectDepthStencilVariable AsDepthStencil(); 585 + ID3D10EffectRasterizerVariable AsRasterizer(); 586 + ID3D10EffectSamplerVariable AsSampler(); 587 + HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 588 + HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 589 + HRESULT GetDepthStencilState(UINT Index, ID3D10DepthStencilState* ppDepthStencilState); 590 + HRESULT GetBackingStore(UINT Index, D3D10_DEPTH_STENCIL_DESC* pDepthStencilDesc); 591 + */ 592 +} 593 + 594 +extern (C) const GUID IID_ID3D10EffectRasterizerVariable = {0x21af9f0e, 0x4d94, 0x4ea9, [0x97, 0x85, 0x2c, 0xb7, 0x6b, 0x8c, 0xb, 0x34]}; 595 + 596 +interface ID3D10EffectRasterizerVariable : ID3D10EffectVariable { 597 +/* TODO: fix vtbl[0] bug 598 + extern(Windows) : 599 + ID3D10EffectType GetType(); 600 + HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 601 + ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 602 + ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 603 + ID3D10EffectVariable GetMemberByIndex(UINT Index); 604 + ID3D10EffectVariable GetMemberByName(LPCSTR Name); 605 + ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 606 + ID3D10EffectVariable GetElement(UINT Index); 607 + ID3D10EffectConstantBuffer GetParentConstantBuffer(); 608 + ID3D10EffectScalarVariable AsScalar(); 609 + ID3D10EffectVectorVariable AsVector(); 610 + ID3D10EffectMatrixVariable AsMatrix(); 611 + ID3D10EffectStringVariable AsString(); 612 + ID3D10EffectShaderResourceVariable AsShaderResource(); 613 + ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 614 + ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 615 + ID3D10EffectConstantBuffer AsConstantBuffer(); 616 + ID3D10EffectShaderVariable AsShader(); 617 + ID3D10EffectBlendVariable AsBlend(); 618 + ID3D10EffectDepthStencilVariable AsDepthStencil(); 619 + ID3D10EffectRasterizerVariable AsRasterizer(); 620 + ID3D10EffectSamplerVariable AsSampler(); 621 + HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 622 + HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 623 + HRESULT GetRasterizerState(UINT Index, ID3D10RasterizerState* ppRasterizerState); 624 + HRESULT GetBackingStore(UINT Index, D3D10_RASTERIZER_DESC* pRasterizerDesc); 625 + */ 626 +} 627 + 628 +extern (C) const GUID IID_ID3D10EffectSamplerVariable = {0x6530d5c7, 0x07e9, 0x4271, [0xa4, 0x18, 0xe7, 0xce, 0x4b, 0xd1, 0xe4, 0x80]}; 629 + 630 +interface ID3D10EffectSamplerVariable : ID3D10EffectVariable { 631 +/* TODO: fix vtbl[0] bug 632 + extern(Windows) : 633 + ID3D10EffectType GetType(); 634 + HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 635 + ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 636 + ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 637 + ID3D10EffectVariable GetMemberByIndex(UINT Index); 638 + ID3D10EffectVariable GetMemberByName(LPCSTR Name); 639 + ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 640 + ID3D10EffectVariable GetElement(UINT Index); 641 + ID3D10EffectConstantBuffer GetParentConstantBuffer(); 642 + ID3D10EffectScalarVariable AsScalar(); 643 + ID3D10EffectVectorVariable AsVector(); 644 + ID3D10EffectMatrixVariable AsMatrix(); 645 + ID3D10EffectStringVariable AsString(); 646 + ID3D10EffectShaderResourceVariable AsShaderResource(); 647 + ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 648 + ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 649 + ID3D10EffectConstantBuffer AsConstantBuffer(); 650 + ID3D10EffectShaderVariable AsShader(); 651 + ID3D10EffectBlendVariable AsBlend(); 652 + ID3D10EffectDepthStencilVariable AsDepthStencil(); 653 + ID3D10EffectRasterizerVariable AsRasterizer(); 654 + ID3D10EffectSamplerVariable AsSampler(); 655 + HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 656 + HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 657 + HRESULT GetSampler(UINT Index, ID3D10SamplerState* ppSampler); 658 + HRESULT GetBackingStore(UINT Index, D3D10_SAMPLER_DESC* pSamplerDesc); 659 + */ 660 +} 661 + 662 +struct D3D10_PASS_DESC { 663 + LPCSTR Name; 664 + UINT Annotations; 665 + BYTE* pIAInputSignature; 666 + SIZE_T IAInputSignatureSize; 667 + UINT StencilRef; 668 + UINT SampleMask; 669 + FLOAT[4] BlendFactor; 670 +} 671 + 672 +struct D3D10_PASS_SHADER_DESC { 673 + ID3D10EffectShaderVariable pShaderVariable; 674 + UINT ShaderIndex; 675 +} 676 + 677 +extern (C) const GUID IID_ID3D10EffectPass = {0x5cfbeb89, 0x1a06, 0x46e0, [0xb2, 0x82, 0xe3, 0xf9, 0xbf, 0xa3, 0x6a, 0x54]}; 678 + 679 +/+interface ID3D10EffectPass { 680 +/* TODO: fix vtbl[0] bug 681 + extern(Windows) : 682 + BOOL IsValid(); 683 + HRESULT GetDesc(D3D10_PASS_DESC* pDesc); 684 + HRESULT GetVertexShaderDesc(D3D10_PASS_SHADER_DESC* pDesc); 685 + HRESULT GetGeometryShaderDesc(D3D10_PASS_SHADER_DESC* pDesc); 686 + HRESULT GetPixelShaderDesc(D3D10_PASS_SHADER_DESC* pDesc); 687 + ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 688 + ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 689 + HRESULT Apply(UINT Flags); 690 + HRESULT ComputeStateBlockMask(D3D10_STATE_BLOCK_MASK* pStateBlockMask); 691 + */ 692 +}+/ 693 +/** 694 + * HACK to FIX vtbl[0] bug: 695 + * This is an example HACK how to fix all interfaces which are NOT derived from 696 + * IUnknown. They need the first entry in their vtbl[] point to the first 697 + * virtual function. 698 + * See: 699 + * http://www.digitalmars.com/d/cpp_interface.html 700 + * http://d.puremagic.com/issues/show_bug.cgi?id=1687 701 + */ 702 +struct ID3D10EffectPassVtbl { 703 + extern(Windows) : 704 + BOOL function(ID3D10EffectPass) IsValid; 705 + HRESULT function(ID3D10EffectPass, D3D10_PASS_DESC* pDesc) GetDesc; 706 + HRESULT function(ID3D10EffectPass, D3D10_PASS_SHADER_DESC* pDesc) GetVertexShaderDesc; 707 + HRESULT function(ID3D10EffectPass, D3D10_PASS_SHADER_DESC* pDesc) GetGeometryShaderDesc; 708 + HRESULT function(ID3D10EffectPass, D3D10_PASS_SHADER_DESC* pDesc) GetPixelShaderDesc; 709 + ID3D10EffectVariable function(ID3D10EffectPass, UINT Index) GetAnnotationByIndex; 710 + ID3D10EffectVariable function(ID3D10EffectPass, LPCSTR Name) GetAnnotationByName; 711 + HRESULT function(ID3D10EffectPass, UINT Flags) Apply; 712 + HRESULT function(ID3D10EffectPass, D3D10_STATE_BLOCK_MASK* pStateBlockMask) ComputeStateBlockMask; 713 +} 714 +alias ID3D10EffectPassVtbl** ID3D10EffectPass; 715 + 716 +struct D3D10_TECHNIQUE_DESC { 717 + LPCSTR Name; 718 + UINT Passes; 719 + UINT Annotations; 720 +} 721 + 722 +extern (C) const GUID IID_ID3D10EffectTechnique = {0xdb122ce8, 0xd1c9, 0x4292, [0xb2, 0x37, 0x24, 0xed, 0x3d, 0xe8, 0xb1, 0x75]}; 723 + 724 +/+interface ID3D10EffectTechnique { 725 +/* TODO: fix vtbl[0] bug 726 + extern(Windows) : 727 + BOOL IsValid(); 728 + HRESULT GetDesc(D3D10_TECHNIQUE_DESC* pDesc); 729 + ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 730 + ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 731 + ID3D10EffectPass GetPassByIndex(UINT Index); 732 + ID3D10EffectPass GetPassByName(LPCSTR Name); 733 + HRESULT ComputeStateBlockMask(D3D10_STATE_BLOCK_MASK* pStateBlockMask); 734 + */ 735 +}+/ 736 +/** 737 + * HACK to FIX vtbl[0] bug: 738 + * This is an example HACK how to fix all interfaces which are NOT derived from 739 + * IUnknown. They need the first entry in their vtbl[] point to the first 740 + * virtual function. 741 + * See: 742 + * http://www.digitalmars.com/d/cpp_interface.html 743 + * http://d.puremagic.com/issues/show_bug.cgi?id=1687 744 + */ 745 +struct ID3D10EffectTechniqueVtbl { 746 + extern(Windows) : 747 + BOOL function(ID3D10EffectTechnique) IsValid; 748 + HRESULT function(ID3D10EffectTechnique, D3D10_TECHNIQUE_DESC* pDesc) GetDesc; 749 + ID3D10EffectVariable function(ID3D10EffectTechnique, UINT Index) GetAnnotationByIndex; 750 + ID3D10EffectVariable function(ID3D10EffectTechnique, LPCSTR Name) GetAnnotationByName; 751 + ID3D10EffectPass function(ID3D10EffectTechnique, UINT Index) GetPassByIndex; 752 + ID3D10EffectPass function(ID3D10EffectTechnique, LPCSTR Name) GetPassByName; 753 + HRESULT function(ID3D10EffectTechnique, D3D10_STATE_BLOCK_MASK* pStateBlockMask) ComputeStateBlockMask; 754 +} 755 +alias ID3D10EffectTechniqueVtbl** ID3D10EffectTechnique; 756 + 757 +struct D3D10_EFFECT_DESC { 758 + BOOL IsChildEffect; 759 + UINT ConstantBuffers; 760 + UINT SharedConstantBuffers; 761 + UINT GlobalVariables; 762 + UINT SharedGlobalVariables; 763 + UINT Techniques; 764 +} 765 + 766 +extern (C) const GUID IID_ID3D10Effect = {0x51b0ca8b, 0xec0b, 0x4519, [0x87, 0xd, 0x8e, 0xe1, 0xcb, 0x50, 0x17, 0xc7]}; 767 + 768 +interface ID3D10Effect : IUnknown { 769 + extern(Windows) : 770 + BOOL IsValid(); 771 + BOOL IsPool(); 772 + HRESULT GetDevice(ID3D10Device* ppDevice); 773 + HRESULT GetDesc(D3D10_EFFECT_DESC* pDesc); 774 + ID3D10EffectConstantBuffer GetConstantBufferByIndex(UINT Index); 775 + ID3D10EffectConstantBuffer GetConstantBufferByName(LPCSTR Name); 776 + ID3D10EffectVariable GetVariableByIndex(UINT Index); 777 + ID3D10EffectVariable GetVariableByName(LPCSTR Name); 778 + ID3D10EffectVariable GetVariableBySemantic(LPCSTR Semantic); 779 + ID3D10EffectTechnique GetTechniqueByIndex(UINT Index); 780 + ID3D10EffectTechnique GetTechniqueByName(LPCSTR Name); 781 + HRESULT Optimize(); 782 + BOOL IsOptimized(); 783 +} 784 + 785 +extern (C) const GUID IID_ID3D10EffectPool = {0x9537ab04, 0x3250, 0x412e, [0x82, 0x13, 0xfc, 0xd2, 0xf8, 0x67, 0x79, 0x33]}; 786 + 787 +interface ID3D10EffectPool : IUnknown { 788 + extern(Windows) : 789 + ID3D10Effect AsEffect(); 790 +} 791 + 792 +HRESULT D3D10CompileEffectFromMemory(void* pData, SIZE_T DataLength, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, UINT HLSLFlags, UINT FXFlags, ID3D10Blob* ppCompiledEffect, ID3D10Blob* ppErrors); 793 +HRESULT D3D10CreateEffectFromMemory(void* pData, SIZE_T DataLength, UINT FXFlags, ID3D10Device pDevice, ID3D10EffectPool pEffectPool, ID3D10Effect* ppEffect); 794 +HRESULT D3D10CreateEffectPoolFromMemory(void* pData, SIZE_T DataLength, UINT FXFlags, ID3D10Device pDevice, ID3D10EffectPool* ppEffectPool); 795 +HRESULT D3D10DisassembleEffect(ID3D10Effect pEffect, BOOL EnableColorCode, ID3D10Blob* ppDisassembly);

Added src/win32/directx/d3d10misc.d version [371321ee8dae0650]

1 +/***********************************************************************\ 2 +* d3d10misc.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Placed into public domain * 7 +\***********************************************************************/ 8 +module win32.directx.d3d10misc; 9 + 10 +private import win32.windows; 11 + 12 +private import win32.directx.dxgi; 13 +private import win32.directx.d3d10; 14 + 15 +extern (C) const GUID IID_ID3D10Blob = { 16 + 0x8BA5FB08, 0x5195, 0x40E2, [0xAC, 0x58, 0x0D, 0x98, 0x9C, 0x3A, 0x01, 0x02] 17 +}; 18 + 19 +interface ID3D10Blob : IUnknown { 20 + extern(Windows) : 21 + LPVOID GetBufferPointer(); 22 + SIZE_T GetBufferSize(); 23 +} 24 + 25 +enum D3D10_DRIVER_TYPE { 26 + D3D10_DRIVER_TYPE_HARDWARE = 0, 27 + D3D10_DRIVER_TYPE_REFERENCE = 1, 28 + D3D10_DRIVER_TYPE_NULL = 2, 29 + D3D10_DRIVER_TYPE_SOFTWARE = 3 30 +} 31 + 32 +extern (C) const GUID GUID_DeviceType = { 33 + 0xD722FB4D, 0x7A68, 0x437A, [0xB2, 0x0C, 0x58, 0x04, 0xEE, 0x24, 0x94, 0xA6] 34 +}; 35 + 36 +extern(Windows) { 37 + HRESULT D3D10CreateDevice(IDXGIAdapter pAdapter, 38 + D3D10_DRIVER_TYPE DriverType, HMODULE Software, UINT Flags, 39 + UINT SDKVersion, ID3D10Device* ppDevice); 40 + HRESULT D3D10CreateDeviceAndSwapChain(IDXGIAdapter pAdapter, 41 + D3D10_DRIVER_TYPE DriverType, HMODULE Software, UINT Flags, 42 + UINT SDKVersion, DXGI_SWAP_CHAIN_DESC* pSwapChainDesc, 43 + IDXGISwapChain* ppSwapChain, ID3D10Device* ppDevice); 44 + HRESULT D3D10CreateBlob(SIZE_T NumBytes, ID3D10Blob* ppBuffer); 45 +}

Added src/win32/directx/d3d10shader.d version [154438c25ca9a643]

1 +/***********************************************************************\ 2 +* d3d10shader.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Placed into public domain * 7 +\***********************************************************************/ 8 +module win32.directx.d3d10shader; 9 + 10 +private import win32.windows; 11 +private import win32.directx.d3d10; 12 + 13 + 14 +uint D3D10_TX_VERSION(uint _Major, uint _Minor) { 15 + return ('T' << 24) | ('X' << 16) | (_Major << 8) | _Minor; 16 +} 17 + 18 +const D3D10_SHADER_DEBUG = 1 << 0; 19 +const D3D10_SHADER_SKIP_VALIDATION = 1 << 1; 20 +const D3D10_SHADER_SKIP_OPTIMIZATION = 1 << 2; 21 +const D3D10_SHADER_PACK_MATRIX_ROW_MAJOR = 1 << 3; 22 +const D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR = 1 << 4; 23 +const D3D10_SHADER_PARTIAL_PRECISION = 1 << 5; 24 +const D3D10_SHADER_FORCE_VS_SOFTWARE_NO_OPT = 1 << 6; 25 +const D3D10_SHADER_FORCE_PS_SOFTWARE_NO_OPT = 1 << 7; 26 +const D3D10_SHADER_NO_PRESHADER = 1 << 8; 27 +const D3D10_SHADER_AVOID_FLOW_CONTROL = 1 << 9; 28 +const D3D10_SHADER_PREFER_FLOW_CONTROL = 1 << 10; 29 +const D3D10_SHADER_ENABLE_STRICTNESS = 1 << 11; 30 +const D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY = 1 << 12; 31 +const D3D10_SHADER_IEEE_STRICTNESS = 1 << 13; 32 +const D3D10_SHADER_OPTIMIZATION_LEVEL0 = 1 << 14; 33 +const D3D10_SHADER_OPTIMIZATION_LEVEL1 = 0; 34 +const D3D10_SHADER_OPTIMIZATION_LEVEL2 = (1 << 14) | (1 << 15); 35 +const D3D10_SHADER_OPTIMIZATION_LEVEL3 = 1 << 15; 36 + 37 +struct D3D10_SHADER_MACRO { 38 + LPCSTR Name; 39 + LPCSTR Definition; 40 +} 41 + 42 +enum D3D10_SHADER_VARIABLE_CLASS { 43 + D3D10_SVC_SCALAR, 44 + D3D10_SVC_VECTOR, 45 + D3D10_SVC_MATRIX_ROWS, 46 + D3D10_SVC_MATRIX_COLUMNS, 47 + D3D10_SVC_OBJECT, 48 + D3D10_SVC_STRUCT, 49 + D3D10_SVC_FORCE_DWORD = 0x7fffffff 50 +} 51 + 52 +enum D3D10_SHADER_VARIABLE_FLAGS { 53 + D3D10_SVF_USERPACKED = 1, 54 + D3D10_SVF_USED = 2, 55 + D3D10_SVF_FORCE_DWORD = 0x7fffffff 56 +} 57 + 58 +enum D3D10_SHADER_VARIABLE_TYPE { 59 + D3D10_SVT_VOID = 0, 60 + D3D10_SVT_BOOL = 1, 61 + D3D10_SVT_INT = 2, 62 + D3D10_SVT_FLOAT = 3, 63 + D3D10_SVT_STRING = 4, 64 + D3D10_SVT_TEXTURE = 5, 65 + D3D10_SVT_TEXTURE1D = 6, 66 + D3D10_SVT_TEXTURE2D = 7, 67 + D3D10_SVT_TEXTURE3D = 8, 68 + D3D10_SVT_TEXTURECUBE = 9, 69 + D3D10_SVT_SAMPLER = 10, 70 + D3D10_SVT_PIXELSHADER = 15, 71 + D3D10_SVT_VERTEXSHADER = 16, 72 + D3D10_SVT_UINT = 19, 73 + D3D10_SVT_UINT8 = 20, 74 + D3D10_SVT_GEOMETRYSHADER = 21, 75 + D3D10_SVT_RASTERIZER = 22, 76 + D3D10_SVT_DEPTHSTENCIL = 23, 77 + D3D10_SVT_BLEND = 24, 78 + D3D10_SVT_BUFFER = 25, 79 + D3D10_SVT_CBUFFER = 26, 80 + D3D10_SVT_TBUFFER = 27, 81 + D3D10_SVT_TEXTURE1DARRAY = 28, 82 + D3D10_SVT_TEXTURE2DARRAY = 29, 83 + D3D10_SVT_RENDERTARGETVIEW = 30, 84 + D3D10_SVT_DEPTHSTENCILVIEW = 31, 85 + D3D10_SVT_TEXTURE2DMS = 32, 86 + D3D10_SVT_TEXTURE2DMSARRAY = 33, 87 + D3D10_SVT_TEXTURECUBEARRAY = 34, 88 + D3D10_SVT_FORCE_DWORD = 0x7fffffff 89 +} 90 + 91 +enum D3D10_SHADER_INPUT_FLAGS { 92 + D3D10_SIF_USERPACKED = 1, 93 + D3D10_SIF_COMPARISON_SAMPLER = 2, 94 + D3D10_SIF_TEXTURE_COMPONENT_0 = 4, 95 + D3D10_SIF_TEXTURE_COMPONENT_1 = 8, 96 + D3D10_SIF_TEXTURE_COMPONENTS = 12, 97 + D3D10_SIF_FORCE_DWORD = 0x7fffffff 98 +} 99 + 100 +enum D3D10_SHADER_INPUT_TYPE { 101 + D3D10_SIT_CBUFFER, 102 + D3D10_SIT_TBUFFER, 103 + D3D10_SIT_TEXTURE, 104 + D3D10_SIT_SAMPLER 105 +} 106 + 107 +enum D3D10_SHADER_CBUFFER_FLAGS { 108 + D3D10_CBF_USERPACKED = 1, 109 + D3D10_CBF_FORCE_DWORD = 0x7fffffff 110 +} 111 + 112 +enum D3D10_CBUFFER_TYPE { 113 + D3D10_CT_CBUFFER, 114 + D3D10_CT_TBUFFER 115 +} 116 + 117 +enum D3D10_NAME { 118 + D3D10_NAME_UNDEFINED = 0, 119 + D3D10_NAME_POSITION = 1, 120 + D3D10_NAME_CLIP_DISTANCE = 2, 121 + D3D10_NAME_CULL_DISTANCE = 3, 122 + D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = 4, 123 + D3D10_NAME_VIEWPORT_ARRAY_INDEX = 5, 124 + D3D10_NAME_VERTEX_ID = 6, 125 + D3D10_NAME_PRIMITIVE_ID = 7, 126 + D3D10_NAME_INSTANCE_ID = 8, 127 + D3D10_NAME_IS_FRONT_FACE = 9, 128 + D3D10_NAME_SAMPLE_INDEX = 10, 129 + D3D10_NAME_TARGET = 64, 130 + D3D10_NAME_DEPTH = 65, 131 + D3D10_NAME_COVERAGE = 66 132 +} 133 + 134 +enum D3D10_RESOURCE_RETURN_TYPE { 135 + D3D10_RETURN_TYPE_UNORM = 1, 136 + D3D10_RETURN_TYPE_SNORM, 137 + D3D10_RETURN_TYPE_SINT, 138 + D3D10_RETURN_TYPE_UINT, 139 + D3D10_RETURN_TYPE_FLOAT, 140 + D3D10_RETURN_TYPE_MIXED 141 +} 142 + 143 +enum D3D10_REGISTER_COMPONENT_TYPE { 144 + D3D10_REGISTER_COMPONENT_UNKNOWN = 0, 145 + D3D10_REGISTER_COMPONENT_UINT32, 146 + D3D10_REGISTER_COMPONENT_SINT32, 147 + D3D10_REGISTER_COMPONENT_FLOAT32 148 +} 149 + 150 +enum D3D10_INCLUDE_TYPE { 151 + D3D10_INCLUDE_LOCAL, 152 + D3D10_INCLUDE_SYSTEM, 153 + D3D10_INCLUDE_FORCE_DWORD = 0x7fffffff 154 +} 155 + 156 +interface ID3D10Include { 157 +/* TODO: fix vtbl[0] bug 158 + extern(Windows) : 159 + HRESULT Open(D3D10_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID* ppData, UINT* pBytes); 160 + HRESULT Close(LPCVOID pData); 161 + */ 162 +} 163 + 164 +struct D3D10_SHADER_DESC { 165 + UINT Version; 166 + LPCSTR Creator; 167 + UINT Flags; 168 + UINT ConstantBuffers; 169 + UINT BoundResources; 170 + UINT InputParameters; 171 + UINT OutputParameters; 172 + UINT InstructionCount; 173 + UINT TempRegisterCount; 174 + UINT TempArrayCount; 175 + UINT DefCount; 176 + UINT DclCount; 177 + UINT TextureNormalInstructions; 178 + UINT TextureLoadInstructions; 179 + UINT TextureCompInstructions; 180 + UINT TextureBiasInstructions; 181 + UINT TextureGradientInstructions; 182 + UINT FloatInstructionCount; 183 + UINT IntInstructionCount; 184 + UINT UintInstructionCount; 185 + UINT StaticFlowControlCount; 186 + UINT DynamicFlowControlCount; 187 + UINT MacroInstructionCount; 188 + UINT ArrayInstructionCount; 189 + UINT CutInstructionCount; 190 + UINT EmitInstructionCount; 191 + D3D10_PRIMITIVE_TOPOLOGY GSOutputTopology; 192 + UINT GSMaxOutputVertexCount; 193 +} 194 + 195 +struct D3D10_SHADER_BUFFER_DESC { 196 + LPCSTR Name; 197 + D3D10_CBUFFER_TYPE Type; 198 + UINT Variables; 199 + UINT Size; 200 + UINT uFlags; 201 +} 202 + 203 +struct D3D10_SHADER_VARIABLE_DESC { 204 + LPCSTR Name; 205 + UINT StartOffset; 206 + UINT Size; 207 + UINT uFlags; 208 + LPVOID DefaultValue; 209 +} 210 + 211 +struct D3D10_SHADER_TYPE_DESC { 212 + D3D10_SHADER_VARIABLE_CLASS Class; 213 + D3D10_SHADER_VARIABLE_TYPE Type; 214 + UINT Rows; 215 + UINT Columns; 216 + UINT Elements; 217 + UINT Members; 218 + UINT Offset; 219 +} 220 + 221 +struct D3D10_SHADER_INPUT_BIND_DESC { 222 + LPCSTR Name; 223 + D3D10_SHADER_INPUT_TYPE Type; 224 + UINT BindPoint; 225 + UINT BindCount; 226 + UINT uFlags; 227 + D3D10_RESOURCE_RETURN_TYPE ReturnType; 228 + D3D10_SRV_DIMENSION Dimension; 229 + UINT NumSamples; 230 +} 231 + 232 +struct D3D10_SIGNATURE_PARAMETER_DESC { 233 + LPCSTR SemanticName; 234 + UINT SemanticIndex; 235 + UINT Register; 236 + D3D10_NAME SystemValueType; 237 + D3D10_REGISTER_COMPONENT_TYPE ComponentType; 238 + BYTE Mask; 239 + BYTE ReadWriteMask; 240 +} 241 + 242 +extern(C) const GUID IID_ID3D10ShaderReflectionType = {0xc530ad7d, 0x9b16, 0x4395, [0xa9, 0x79, 0xba, 0x2e, 0xcf, 0xf8, 0x3a, 0xdd]}; 243 + 244 +interface ID3D10ShaderReflectionType { 245 +/* TODO: fix vtbl[0] bug 246 + extern(Windows) : 247 + HRESULT GetDesc(D3D10_SHADER_TYPE_DESC* pDesc); 248 + ID3D10ShaderReflectionType* GetMemberTypeByIndex(UINT Index); 249 + ID3D10ShaderReflectionType* GetMemberTypeByName(LPCSTR Name); 250 + LPCSTR GetMemberTypeName(UINT Index); 251 + */ 252 +} 253 + 254 +extern(C) const GUID IID_ID3D10ShaderReflectionVariable = {0x1bf63c95, 0x2650, 0x405d, [0x99, 0xc1, 0x36, 0x36, 0xbd, 0x1d, 0xa0, 0xa1]}; 255 + 256 +interface ID3D10ShaderReflectionVariable { 257 +/* TODO: fix vtbl[0] bug 258 + extern(Windows) : 259 + HRESULT GetDesc(D3D10_SHADER_VARIABLE_DESC* pDesc); 260 + ID3D10ShaderReflectionType* GetType(); 261 + */ 262 +} 263 + 264 +extern(C) const GUID IID_ID3D10ShaderReflectionConstantBuffer = {0x66c66a94, 0xdddd, 0x4b62, [0xa6, 0x6a, 0xf0, 0xda, 0x33, 0xc2, 0xb4, 0xd0]}; 265 + 266 +interface ID3D10ShaderReflectionConstantBuffer { 267 +/* TODO: fix vtbl[0] bug 268 + extern(Windows) : 269 + HRESULT GetDesc(D3D10_SHADER_BUFFER_DESC* pDesc); 270 + ID3D10ShaderReflectionVariable* GetVariableByIndex(UINT Index); 271 + ID3D10ShaderReflectionVariable* GetVariableByName(LPCSTR Name); 272 + */ 273 +} 274 + 275 +extern(C) const GUID IID_ID3D10ShaderReflection = {0xd40e20b6, 0xf8f7, 0x42ad, [0xab, 0x20, 0x4b, 0xaf, 0x8f, 0x15, 0xdf, 0xaa]}; 276 + 277 +interface ID3D10ShaderReflection : IUnknown { 278 + extern(Windows) : 279 + HRESULT QueryInterface(REFIID iid, LPVOID* ppv); 280 + ULONG AddRef(); 281 + ULONG Release(); 282 + HRESULT GetDesc(D3D10_SHADER_DESC* pDesc); 283 + ID3D10ShaderReflectionConstantBuffer* GetConstantBufferByIndex(UINT Index); 284 + ID3D10ShaderReflectionConstantBuffer* GetConstantBufferByName(LPCSTR Name); 285 + HRESULT GetResourceBindingDesc(UINT ResourceIndex, D3D10_SHADER_INPUT_BIND_DESC* pDesc); 286 + HRESULT GetInputParameterDesc(UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC* pDesc); 287 + HRESULT GetOutputParameterDesc(UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC* pDesc); 288 +} 289 + 290 +HRESULT D3D10CompileShader(LPCSTR pSrcData, SIZE_T SrcDataLen, LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags, ID3D10Blob* ppShader, ID3D10Blob* ppErrorMsgs); 291 +HRESULT D3D10DisassembleShader(void* pShader, SIZE_T BytecodeLength, BOOL EnableColorCode, LPCSTR pComments, ID3D10Blob* ppDisassembly); 292 +LPCSTR D3D10GetPixelShaderProfile(ID3D10Device pDevice); 293 +LPCSTR D3D10GetVertexShaderProfile(ID3D10Device pDevice); 294 +LPCSTR D3D10GetGeometryShaderProfile(ID3D10Device pDevice); 295 +HRESULT D3D10ReflectShader(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10ShaderReflection* ppReflector); 296 +HRESULT D3D10PreprocessShader(LPCSTR pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, ID3D10Blob* ppShaderText, ID3D10Blob* ppErrorMsgs); 297 +HRESULT D3D10GetInputSignatureBlob(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob* ppSignatureBlob); 298 +HRESULT D3D10GetOutputSignatureBlob(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob* ppSignatureBlob); 299 +HRESULT D3D10GetInputAndOutputSignatureBlob(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob* ppSignatureBlob); 300 +HRESULT D3D10GetShaderDebugInfo(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob* ppDebugInfo); 301 +

Added src/win32/directx/d3d9.d version [31c199e5b62e320d]

1 +/*==========================================================================; 2 + * 3 + * Copyright (C) Microsoft Corporation. All Rights Reserved. 4 + * 5 + * File: d3d9.h 6 + * Content: Direct3D include file 7 + * 8 + ****************************************************************************/ 9 +module win32.directx.d3d9; 10 + 11 +import win32.windows; 12 +public import win32.directx.d3d9types; 13 +public import win32.directx.d3d9caps; 14 + 15 +const DIRECT3D_VERSION = 0x0900; 16 + 17 +/**This identifier is passed to Direct3DCreate9 in order to ensure that an 18 + * application was built against the correct header files. This number is 19 + * incremented whenever a header (or other) change would require applications 20 + * to be rebuilt. If the version doesn't match, Direct3DCreate9 will fail. 21 + * (The number itself has no meaning.)*/ 22 + 23 +debug { 24 + const D3D_SDK_VERSION = (32 | 0x80000000); 25 + const D3D9b_SDK_VERSION = (31 | 0x80000000); 26 +} 27 +else { 28 + const D3D_SDK_VERSION = 32; 29 + const D3D9b_SDK_VERSION = 31; 30 +} 31 + 32 +/* IID_IDirect3D9 */ 33 +/* {81BDCBCA-64D4-426d-AE8D-AD0147F4275C} */ 34 +extern (C) const GUID IID_IDirect3D9 = { 0x81bdcbca, 0x64d4, 0x426d, [0xae, 0x8d, 0xad, 0x1, 0x47, 0xf4, 0x27, 0x5c] }; 35 + 36 +/* IID_IDirect3DDevice9 */ 37 +// {D0223B96-BF7A-43fd-92BD-A43B0D82B9EB} */ 38 +extern (C) const GUID IID_IDirect3DDevice9 = { 0xd0223b96, 0xbf7a, 0x43fd, [0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb] }; 39 + 40 +/* IID_IDirect3DResource9 */ 41 +// {05EEC05D-8F7D-4362-B999-D1BAF357C704} 42 +extern (C) const GUID IID_IDirect3DResource9 = { 0x05eec05d, 0x8f7d, 0x4362, [0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x04] }; 43 + 44 +/* IID_IDirect3DBaseTexture9 */ 45 +/* {580CA87E-1D3C-4d54-991D-B7D3E3C298CE} */ 46 +extern (C) const GUID IID_IDirect3DBaseTexture9 = { 0x580ca87e, 0x1d3c, 0x4d54, [0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce] }; 47 + 48 +/* IID_IDirect3DTexture9 */ 49 +/* {85C31227-3DE5-4f00-9B3A-F11AC38C18B5} */ 50 +extern (C) const GUID IID_IDirect3DTexture9 = { 0x85c31227, 0x3de5, 0x4f00, [0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5] }; 51 + 52 +/* IID_IDirect3DCubeTexture9 */ 53 +/* {FFF32F81-D953-473a-9223-93D652ABA93F} */ 54 +extern (C) const GUID IID_IDirect3DCubeTexture9 = { 0xfff32f81, 0xd953, 0x473a, [0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f] }; 55 + 56 +/* IID_IDirect3DVolumeTexture9 */ 57 +/* {2518526C-E789-4111-A7B9-47EF328D13E6} */ 58 +extern (C) const GUID IID_IDirect3DVolumeTexture9 = { 0x2518526c, 0xe789, 0x4111, [0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6] }; 59 + 60 +/* IID_IDirect3DVertexBuffer9 */ 61 +/* {B64BB1B5-FD70-4df6-BF91-19D0A12455E3} */ 62 +extern (C) const GUID IID_IDirect3DVertexBuffer9 = { 0xb64bb1b5, 0xfd70, 0x4df6, [0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3] }; 63 + 64 +/* IID_IDirect3DIndexBuffer9 */ 65 +/* {7C9DD65E-D3F7-4529-ACEE-785830ACDE35} */ 66 +extern (C) const GUID IID_IDirect3DIndexBuffer9 = { 0x7c9dd65e, 0xd3f7, 0x4529, [0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35] }; 67 + 68 +/* IID_IDirect3DSurface9 */ 69 +/* {0CFBAF3A-9FF6-429a-99B3-A2796AF8B89B} */ 70 +extern (C) const GUID IID_IDirect3DSurface9 = { 0xcfbaf3a, 0x9ff6, 0x429a, [0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b] }; 71 + 72 +/* IID_IDirect3DVolume9 */ 73 +/* {24F416E6-1F67-4aa7-B88E-D33F6F3128A1} */ 74 +extern (C) const GUID IID_IDirect3DVolume9 = { 0x24f416e6, 0x1f67, 0x4aa7, [0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1] }; 75 + 76 +/* IID_IDirect3DSwapChain9 */ 77 +/* {794950F2-ADFC-458a-905E-10A10B0B503B} */ 78 +extern (C) const GUID IID_IDirect3DSwapChain9 = { 0x794950f2, 0xadfc, 0x458a, [0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b] }; 79 + 80 +/* IID_IDirect3DVertexDeclaration9 */ 81 +/* {DD13C59C-36FA-4098-A8FB-C7ED39DC8546} */ 82 +extern (C) const GUID IID_IDirect3DVertexDeclaration9 = { 0xdd13c59c, 0x36fa, 0x4098, [0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46] }; 83 + 84 +/* IID_IDirect3DVertexShader9 */ 85 +/* {EFC5557E-6265-4613-8A94-43857889EB36} */ 86 +extern (C) const GUID IID_IDirect3DVertexShader9 = { 0xefc5557e, 0x6265, 0x4613, [0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36] }; 87 + 88 +/* IID_IDirect3DPixelShader9 */ 89 +/* {6D3BDBDC-5B02-4415-B852-CE5E8BCCB289} */ 90 +extern (C) const GUID IID_IDirect3DPixelShader9 = { 0x6d3bdbdc, 0x5b02, 0x4415, [0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89] }; 91 + 92 +/* IID_IDirect3DStateBlock9 */ 93 +/* {B07C4FE5-310D-4ba8-A23C-4F0F206F218B} */ 94 +extern (C) const GUID IID_IDirect3DStateBlock9 = { 0xb07c4fe5, 0x310d, 0x4ba8, [0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b] }; 95 + 96 +/* IID_IDirect3DQuery9 */ 97 +/* {d9771460-a695-4f26-bbd3-27b840b541cc} */ 98 +extern (C) const GUID IID_IDirect3DQuery9 = { 0xd9771460, 0xa695, 0x4f26, [0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc] }; 99 + 100 + 101 +/* IID_HelperName */ 102 +/* {E4A36723-FDFE-4b22-B146-3C04C07F4CC8} */ 103 +extern (C) const GUID IID_HelperName = { 0xe4a36723, 0xfdfe, 0x4b22, [0xb1, 0x46, 0x3c, 0x4, 0xc0, 0x7f, 0x4c, 0xc8] }; 104 + 105 +/* IID_IDirect3D9Ex */ 106 +/* {02177241-69FC-400C-8FF1-93A44DF6861D} */ 107 +extern (C) const GUID IID_IDirect3D9Ex = { 0x02177241, 0x69FC, 0x400C, [0x8F, 0xF1, 0x93, 0xA4, 0x4D, 0xF6, 0x86, 0x1D] }; 108 + 109 +/* IID_IDirect3DDevice9Ex */ 110 +// {B18B10CE-2649-405a-870F-95F777D4313A} 111 +extern (C) const GUID IID_IDirect3DDevice9Ex = { 0xb18b10ce, 0x2649, 0x405a, [0x87, 0xf, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a] }; 112 + 113 +/* IID_IDirect3DSwapChain9Ex */ 114 +/* {91886CAF-1C3D-4d2e-A0AB-3E4C7D8D3303} */ 115 +extern (C) const GUID IID_IDirect3DSwapChain9Ex = { 0x91886caf, 0x1c3d, 0x4d2e, [0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x03] }; 116 + 117 + 118 + 119 +extern (C): 120 +/** 121 + * DLL Function for creating a Direct3D9 object. This object supports 122 + * enumeration and allows the creation of Direct3DDevice9 objects. 123 + * Pass the value of the constant D3D_SDK_VERSION to this function, so 124 + * that the run-time can validate that your application was compiled 125 + * against the right headers. 126 + */ 127 + 128 +extern (Windows) LPDIRECT3D9 Direct3DCreate9(UINT SDKVersion); 129 + 130 +/** 131 + * Stubs for graphics profiling. 132 + */ 133 +extern (Windows) int D3DPERF_BeginEvent( D3DCOLOR col, LPCWSTR wszName ); 134 +extern (Windows) int D3DPERF_EndEvent(); 135 +extern (Windows) void D3DPERF_SetMarker( D3DCOLOR col, LPCWSTR wszName ); 136 +extern (Windows) void D3DPERF_SetRegion( D3DCOLOR col, LPCWSTR wszName ); 137 +extern (Windows) BOOL D3DPERF_QueryRepeatFrame(); 138 + 139 +extern (Windows) void D3DPERF_SetOptions( DWORD dwOptions ); 140 +extern (Windows) DWORD D3DPERF_GetStatus(); 141 + 142 + 143 +interface LPDIRECT3D9 : IUnknown 144 +{ 145 + HRESULT RegisterSoftwareDevice(void* pInitializeFunction); 146 + UINT GetAdapterCount(); 147 + HRESULT GetAdapterIdentifier( UINT Adapter,DWORD Flags,D3DADAPTER_IDENTIFIER9* pIdentifier); 148 + UINT GetAdapterModeCount(UINT Adapter,D3DFORMAT Format); 149 + HRESULT EnumAdapterModes( UINT Adapter,D3DFORMAT Format,UINT Mode,D3DDISPLAYMODE* pMode); 150 + HRESULT GetAdapterDisplayMode( UINT Adapter,D3DDISPLAYMODE* pMode); 151 + HRESULT CheckDeviceType( UINT Adapter,D3DDEVTYPE DevType,D3DFORMAT AdapterFormat,D3DFORMAT BackBufferFormat,BOOL bWindowed); 152 + HRESULT CheckDeviceFormat( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT AdapterFormat,DWORD Usage,D3DRESOURCETYPE RType,D3DFORMAT CheckFormat); 153 + HRESULT CheckDeviceMultiSampleType( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT SurfaceFormat,BOOL Windowed,D3DMULTISAMPLE_TYPE MultiSampleType,DWORD* pQualityLevels); 154 + HRESULT CheckDepthStencilMatch( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT AdapterFormat,D3DFORMAT RenderTargetFormat,D3DFORMAT DepthStencilFormat); 155 + HRESULT CheckDeviceFormatConversion( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT SourceFormat,D3DFORMAT TargetFormat); 156 + HRESULT GetDeviceCaps( UINT Adapter,D3DDEVTYPE DeviceType,D3DCAPS9* pCaps); 157 + HMONITOR GetAdapterMonitor(UINT Adapter); 158 + HRESULT CreateDevice( UINT Adapter,D3DDEVTYPE DeviceType,HWND hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS* pPresentationParameters,LPDIRECT3DDEVICE9* ppReturnedDeviceInterface); 159 +/* 160 + debug { 161 + LPCWSTR Version; 162 + } 163 +*/ 164 +} 165 +alias LPDIRECT3D9 IDirect3D9; 166 + 167 +interface LPDIRECT3DDEVICE9 : IUnknown 168 +{ 169 + HRESULT TestCooperativeLevel(); 170 + UINT GetAvailableTextureMem(); 171 + HRESULT EvictManagedResources(); 172 + HRESULT GetDirect3D( LPDIRECT3D9* ppD3D9); 173 + HRESULT GetDeviceCaps( D3DCAPS9* pCaps); 174 + HRESULT GetDisplayMode( UINT iSwapChain,D3DDISPLAYMODE* pMode); 175 + HRESULT GetCreationParameters( D3DDEVICE_CREATION_PARAMETERS *pParameters); 176 + HRESULT SetCursorProperties( UINT XHotSpot,UINT YHotSpot,LPDIRECT3DSURFACE9 pCursorBitmap); 177 + void SetCursorPosition(int X,int Y,DWORD Flags); 178 + BOOL ShowCursor(BOOL bShow); 179 + HRESULT CreateAdditionalSwapChain( D3DPRESENT_PARAMETERS* pPresentationParameters,LPDIRECT3DSWAPCHAIN9* pSwapChain); 180 + HRESULT GetSwapChain( UINT iSwapChain,LPDIRECT3DSWAPCHAIN9* pSwapChain); 181 + UINT GetNumberOfSwapChains(); 182 + HRESULT Reset( D3DPRESENT_PARAMETERS* pPresentationParameters); 183 + HRESULT Present(RECT* pSourceRect,RECT* pDestRect,HWND hDestWindowOverride, RGNDATA* pDirtyRegion); 184 + HRESULT GetBackBuffer( UINT iSwapChain,UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,LPDIRECT3DSURFACE9* ppBackBuffer); 185 + HRESULT GetRasterStatus( UINT iSwapChain,D3DRASTER_STATUS* pRasterStatus); 186 + HRESULT SetDialogBoxMode( BOOL bEnableDialogs); 187 + void SetGammaRamp(UINT iSwapChain,DWORD Flags, D3DGAMMARAMP* pRamp); 188 + void GetGammaRamp(UINT iSwapChain,D3DGAMMARAMP* pRamp); 189 + HRESULT CreateTexture( UINT Width,UINT Height,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DTEXTURE9* ppTexture,HANDLE* pSharedHandle); 190 + HRESULT CreateVolumeTexture( UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DVOLUMETEXTURE9* ppVolumeTexture,HANDLE* pSharedHandle); 191 + HRESULT CreateCubeTexture( UINT EdgeLength,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DCUBETEXTURE9* ppCubeTexture,HANDLE* pSharedHandle); 192 + HRESULT CreateVertexBuffer( UINT Length,DWORD Usage,DWORD FVF,D3DPOOL Pool,LPDIRECT3DVERTEXBUFFER9* ppVertexBuffer,HANDLE* pSharedHandle); 193 + HRESULT CreateIndexBuffer( UINT Length,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DINDEXBUFFER9* ppIndexBuffer,HANDLE* pSharedHandle); 194 + HRESULT CreateRenderTarget( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Lockable,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle); 195 + HRESULT CreateDepthStencilSurface( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Discard,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle); 196 + HRESULT UpdateSurface( LPDIRECT3DSURFACE9 pSourceSurface, RECT* pSourceRect,LPDIRECT3DSURFACE9 pDestinationSurface, POINT* pDestPoint); 197 + HRESULT UpdateTexture( LPDIRECT3DBASETEXTURE9 pSourceTexture,LPDIRECT3DBASETEXTURE9 pDestinationTexture); 198 + HRESULT GetRenderTargetData( LPDIRECT3DSURFACE9 pRenderTarget,LPDIRECT3DSURFACE9 pDestSurface); 199 + HRESULT GetFrontBufferData( UINT iSwapChain,LPDIRECT3DSURFACE9 pDestSurface); 200 + HRESULT StretchRect( LPDIRECT3DSURFACE9 pSourceSurface, RECT* pSourceRect,LPDIRECT3DSURFACE9 pDestSurface, RECT* pDestRect,D3DTEXTUREFILTERTYPE Filter); 201 + HRESULT ColorFill( LPDIRECT3DSURFACE9 pSurface, RECT* pRect,D3DCOLOR color); 202 + HRESULT CreateOffscreenPlainSurface( UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle); 203 + HRESULT SetRenderTarget( DWORD RenderTargetIndex,LPDIRECT3DSURFACE9 pRenderTarget); 204 + HRESULT GetRenderTarget( DWORD RenderTargetIndex,LPDIRECT3DSURFACE9* ppRenderTarget); 205 + HRESULT SetDepthStencilSurface( LPDIRECT3DSURFACE9 pNewZStencil); 206 + HRESULT GetDepthStencilSurface( LPDIRECT3DSURFACE9* ppZStencilSurface); 207 + HRESULT BeginScene(); 208 + HRESULT EndScene(); 209 + HRESULT Clear( DWORD Count, D3DRECT* pRects,DWORD Flags,D3DCOLOR Color,float Z,DWORD Stencil); 210 + HRESULT SetTransform( D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix); 211 + HRESULT GetTransform( D3DTRANSFORMSTATETYPE State,D3DMATRIX* pMatrix); 212 + HRESULT MultiplyTransform( D3DTRANSFORMSTATETYPE, D3DMATRIX*); 213 + HRESULT SetViewport( D3DVIEWPORT9* pViewport); 214 + HRESULT GetViewport( D3DVIEWPORT9* pViewport); 215 + HRESULT SetMaterial( D3DMATERIAL9* pMaterial); 216 + HRESULT GetMaterial( D3DMATERIAL9* pMaterial); 217 + HRESULT SetLight( DWORD Index, D3DLIGHT9*); 218 + HRESULT GetLight( DWORD Index,D3DLIGHT9*); 219 + HRESULT LightEnable( DWORD Index,BOOL Enable); 220 + HRESULT GetLightEnable( DWORD Index,BOOL* pEnable); 221 + HRESULT SetClipPlane( DWORD Index, float* pPlane); 222 + HRESULT GetClipPlane( DWORD Index,float* pPlane); 223 + HRESULT SetRenderState( D3DRENDERSTATETYPE State,DWORD Value); 224 + HRESULT GetRenderState( D3DRENDERSTATETYPE State,DWORD* pValue); 225 + HRESULT CreateStateBlock( D3DSTATEBLOCKTYPE Type,LPDIRECT3DSTATEBLOCK9* ppSB); 226 + HRESULT BeginStateBlock(); 227 + HRESULT EndStateBlock( LPDIRECT3DSTATEBLOCK9* ppSB); 228 + HRESULT SetClipStatus( D3DCLIPSTATUS9* pClipStatus); 229 + HRESULT GetClipStatus( D3DCLIPSTATUS9* pClipStatus); 230 + HRESULT GetTexture( DWORD Stage,LPDIRECT3DBASETEXTURE9* ppTexture); 231 + HRESULT SetTexture( DWORD Stage,LPDIRECT3DBASETEXTURE9 pTexture); 232 + HRESULT GetTextureStageState( DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD* pValue); 233 + HRESULT SetTextureStageState( DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD Value); 234 + HRESULT GetSamplerState( DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD* pValue); 235 + HRESULT SetSamplerState( DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD Value); 236 + HRESULT ValidateDevice( DWORD* pNumPasses); 237 + HRESULT SetPaletteEntries( UINT PaletteNumber, PALETTEENTRY* pEntries); 238 + HRESULT GetPaletteEntries( UINT PaletteNumber,PALETTEENTRY* pEntries); 239 + HRESULT SetCurrentTexturePalette( UINT PaletteNumber); 240 + HRESULT GetCurrentTexturePalette( UINT *PaletteNumber); 241 + HRESULT SetScissorRect( RECT* pRect); 242 + HRESULT GetScissorRect( RECT* pRect); 243 + HRESULT SetSoftwareVertexProcessing( BOOL bSoftware); 244 + BOOL GetSoftwareVertexProcessing(); 245 + HRESULT SetNPatchMode( float nSegments); 246 + float GetNPatchMode(); 247 + HRESULT DrawPrimitive( D3DPRIMITIVETYPE PrimitiveType,UINT StartVertex,UINT PrimitiveCount); 248 + HRESULT DrawIndexedPrimitive( D3DPRIMITIVETYPE,INT BaseVertexIndex,UINT MinVertexIndex,UINT NumVertices,UINT startIndex,UINT primCount); 249 + HRESULT DrawPrimitiveUP( D3DPRIMITIVETYPE PrimitiveType,UINT PrimitiveCount, void* pVertexStreamZeroData,UINT VertexStreamZeroStride); 250 + HRESULT DrawIndexedPrimitiveUP( D3DPRIMITIVETYPE PrimitiveType,UINT MinVertexIndex,UINT NumVertices,UINT PrimitiveCount, void* pIndexData,D3DFORMAT IndexDataFormat, void* pVertexStreamZeroData,UINT VertexStreamZeroStride); 251 + HRESULT ProcessVertices( UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,LPDIRECT3DVERTEXBUFFER9 pDestBuffer,LPDIRECT3DVERTEXDECLARATION9 pVertexDecl,DWORD Flags); 252 + HRESULT CreateVertexDeclaration( D3DVERTEXELEMENT9* pVertexElements,LPDIRECT3DVERTEXDECLARATION9* ppDecl); 253 + HRESULT SetVertexDeclaration(LPDIRECT3DVERTEXDECLARATION9 pDecl); 254 + HRESULT GetVertexDeclaration(LPDIRECT3DVERTEXDECLARATION9* ppDecl); 255 + HRESULT SetFVF( DWORD FVF); 256 + HRESULT GetFVF( DWORD* pFVF); 257 + HRESULT CreateVertexShader( DWORD* pFunction,LPDIRECT3DVERTEXSHADER9* ppShader); 258 + HRESULT SetVertexShader( LPDIRECT3DVERTEXSHADER9 pShader); 259 + HRESULT GetVertexShader( LPDIRECT3DVERTEXSHADER9* ppShader); 260 + HRESULT SetVertexShaderConstantF( UINT StartRegister, float* pConstantData,UINT Vector4fCount); 261 + HRESULT GetVertexShaderConstantF( UINT StartRegister,float* pConstantData,UINT Vector4fCount); 262 + HRESULT SetVertexShaderConstantI( UINT StartRegister, int* pConstantData,UINT Vector4iCount); 263 + HRESULT GetVertexShaderConstantI( UINT StartRegister,int* pConstantData,UINT Vector4iCount); 264 + HRESULT SetVertexShaderConstantB( UINT StartRegister, BOOL* pConstantData,UINT BoolCount); 265 + HRESULT GetVertexShaderConstantB( UINT StartRegister,BOOL* pConstantData,UINT BoolCount); 266 + HRESULT SetStreamSource( UINT StreamNumber,LPDIRECT3DVERTEXBUFFER9 pStreamData,UINT OffsetInBytes,UINT Stride); 267 + HRESULT GetStreamSource( UINT StreamNumber,LPDIRECT3DVERTEXBUFFER9* ppStreamData,UINT* pOffsetInBytes,UINT* pStride); 268 + HRESULT SetStreamSourceFreq( UINT StreamNumber,UINT Setting); 269 + HRESULT GetStreamSourceFreq( UINT StreamNumber,UINT* pSetting); 270 + HRESULT SetIndices( LPDIRECT3DINDEXBUFFER9 pIndexData); 271 + HRESULT GetIndices( LPDIRECT3DINDEXBUFFER9* ppIndexData); 272 + HRESULT CreatePixelShader( DWORD* pFunction,LPDIRECT3DPIXELSHADER9* ppShader); 273 + HRESULT SetPixelShader(LPDIRECT3DPIXELSHADER9 pShader); 274 + HRESULT GetPixelShader(LPDIRECT3DPIXELSHADER9* ppShader); 275 + HRESULT SetPixelShaderConstantF( UINT StartRegister, float* pConstantData,UINT Vector4fCount); 276 + HRESULT GetPixelShaderConstantF( UINT StartRegister,float* pConstantData,UINT Vector4fCount); 277 + HRESULT SetPixelShaderConstantI( UINT StartRegister, int* pConstantData,UINT Vector4iCount); 278 + HRESULT GetPixelShaderConstantI( UINT StartRegister,int* pConstantData,UINT Vector4iCount); 279 + HRESULT SetPixelShaderConstantB( UINT StartRegister, BOOL* pConstantData,UINT BoolCount); 280 + HRESULT GetPixelShaderConstantB( UINT StartRegister,BOOL* pConstantData,UINT BoolCount); 281 + HRESULT DrawRectPatch( UINT Handle, float* pNumSegs, D3DRECTPATCH_INFO* pRectPatchInfo); 282 + HRESULT DrawTriPatch( UINT Handle, float* pNumSegs, D3DTRIPATCH_INFO* pTriPatchInfo); 283 + HRESULT DeletePatch( UINT Handle); 284 + HRESULT CreateQuery( D3DQUERYTYPE Type,LPDIRECT3DQUERY9* ppQuery); 285 +/* 286 + debug { 287 + D3DDEVICE_CREATION_PARAMETERS CreationParameters; 288 + D3DPRESENT_PARAMETERS PresentParameters; 289 + D3DDISPLAYMODE DisplayMode; 290 + D3DCAPS9 Caps; 291 + 292 + UINT AvailableTextureMem; 293 + UINT SwapChains; 294 + UINT Textures; 295 + UINT VertexBuffers; 296 + UINT IndexBuffers; 297 + UINT VertexShaders; 298 + UINT PixelShaders; 299 + 300 + D3DVIEWPORT9 Viewport; 301 + D3DMATRIX ProjectionMatrix; 302 + D3DMATRIX ViewMatrix; 303 + D3DMATRIX WorldMatrix; 304 + D3DMATRIX[8] TextureMatrices; 305 + 306 + DWORD FVF; 307 + UINT VertexSize; 308 + DWORD VertexShaderVersion; 309 + DWORD PixelShaderVersion; 310 + BOOL SoftwareVertexProcessing; 311 + 312 + D3DMATERIAL9 Material; 313 + D3DLIGHT9[16] Lights; 314 + BOOL[16] LightsEnabled; 315 + 316 + D3DGAMMARAMP GammaRamp; 317 + RECT ScissorRect; 318 + BOOL DialogBoxMode; 319 + } 320 +*/ 321 +} 322 + 323 +alias LPDIRECT3DDEVICE9 IDirect3DDevice9; 324 + 325 + 326 +interface LPDIRECT3DSTATEBLOCK9 : IUnknown 327 +{ 328 + HRESULT GetDevice(LPDIRECT3DDEVICE9* ppDevice); 329 + HRESULT Capture(); 330 + HRESULT Apply(); 331 +/* 332 + debug { 333 + LPCWSTR CreationCallStack; 334 + } 335 +*/ 336 +} 337 + 338 +alias LPDIRECT3DSTATEBLOCK9 IDirect3DStateBlock9; 339 + 340 +interface LPDIRECT3DSWAPCHAIN9 : IUnknown 341 +{ 342 + HRESULT Present( RECT* pSourceRect, RECT* pDestRect,HWND hDestWindowOverride, RGNDATA* pDirtyRegion,DWORD dwFlags); 343 + HRESULT GetFrontBufferData( LPDIRECT3DSURFACE9 pDestSurface); 344 + HRESULT GetBackBuffer( UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,LPDIRECT3DSURFACE9* ppBackBuffer); 345 + HRESULT GetRasterStatus( D3DRASTER_STATUS* pRasterStatus); 346 + HRESULT GetDisplayMode( D3DDISPLAYMODE* pMode); 347 + HRESULT GetDevice( LPDIRECT3DDEVICE9 * ppDevice); 348 + HRESULT GetPresentParameters( D3DPRESENT_PARAMETERS* pPresentationParameters); 349 +/* 350 + debug { 351 + D3DPRESENT_PARAMETERS PresentParameters; 352 + D3DDISPLAYMODE DisplayMode; 353 + LPCWSTR CreationCallStack; 354 + } 355 +*/ 356 +} 357 + 358 +alias LPDIRECT3DSWAPCHAIN9 IDirect3DSwapChain9; 359 + 360 +interface LPDIRECT3DRESOURCE9 : IUnknown 361 +{ 362 + HRESULT GetDevice( LPDIRECT3DDEVICE9* ppDevice); 363 + HRESULT SetPrivateData( REFGUID refguid, void* pData,DWORD SizeOfData,DWORD Flags); 364 + HRESULT GetPrivateData( REFGUID refguid,void* pData,DWORD* pSizeOfData); 365 + HRESULT FreePrivateData( REFGUID refguid); 366 + DWORD SetPriority(DWORD PriorityNew); 367 + DWORD GetPriority(); 368 + void PreLoad(); 369 + D3DRESOURCETYPE GetType(); 370 +} 371 + 372 +alias LPDIRECT3DRESOURCE9 IDirect3DResource9; 373 + 374 +interface LPDIRECT3DVERTEXDECLARATION9 : IUnknown 375 +{ 376 + HRESULT GetDevice( LPDIRECT3DDEVICE9* ppDevice); 377 + HRESULT GetDeclaration( D3DVERTEXELEMENT9* pElement,UINT* pNumElements); 378 +/* 379 + debug { 380 + LPCWSTR CreationCallStack; 381 + } 382 +*/ 383 +} 384 + 385 +alias LPDIRECT3DVERTEXDECLARATION9 IDirect3DVertexDeclaration9; 386 + 387 +interface LPDIRECT3DVERTEXSHADER9 : IUnknown 388 +{ 389 + HRESULT GetDevice( LPDIRECT3DDEVICE9 * ppDevice); 390 + HRESULT GetFunction( void*,UINT* pSizeOfData); 391 +/* 392 + debug { 393 + DWORD Version; 394 + LPCWSTR CreationCallStack; 395 + } 396 +*/ 397 +} 398 + 399 +alias LPDIRECT3DVERTEXSHADER9 IDirect3DVertexShader9; 400 + 401 +interface LPDIRECT3DPIXELSHADER9 : IUnknown 402 +{ 403 + HRESULT GetDevice( LPDIRECT3DDEVICE9 * ppDevice); 404 + HRESULT GetFunction( void*,UINT* pSizeOfData); 405 +/* 406 + debug { 407 + DWORD Version; 408 + LPCWSTR CreationCallStack; 409 + } 410 +*/ 411 +} 412 + 413 +alias LPDIRECT3DPIXELSHADER9 IDirect3DPixelShader9; 414 + 415 +interface LPDIRECT3DBASETEXTURE9 : LPDIRECT3DRESOURCE9 416 +{ 417 + DWORD SetLOD(DWORD LODNew); 418 + DWORD GetLOD(); 419 + DWORD GetLevelCount(); 420 + HRESULT SetAutoGenFilterType( D3DTEXTUREFILTERTYPE FilterType); 421 + D3DTEXTUREFILTERTYPE GetAutoGenFilterType(); 422 + void GenerateMipSubLevels(); 423 +} 424 + 425 +alias LPDIRECT3DBASETEXTURE9 IDirect3DBaseTexture9; 426 + 427 +interface LPDIRECT3DTEXTURE9 : LPDIRECT3DBASETEXTURE9 428 +{ 429 + HRESULT GetLevelDesc( UINT Level,D3DSURFACE_DESC *pDesc); 430 + HRESULT GetSurfaceLevel( UINT Level,LPDIRECT3DSURFACE9* ppSurfaceLevel); 431 + HRESULT LockRect( UINT Level,D3DLOCKED_RECT* pLockedRect,RECT* pRect,DWORD Flags); 432 + HRESULT UnlockRect( UINT Level); 433 + HRESULT AddDirtyRect(RECT* pDirtyRect); 434 +/* 435 + debug { 436 + LPCWSTR Name; 437 + UINT Width; 438 + UINT Height; 439 + UINT Levels; 440 + DWORD Usage; 441 + D3DFORMAT Format; 442 + D3DPOOL Pool; 443 + DWORD Priority; 444 + DWORD LOD; 445 + D3DTEXTUREFILTERTYPE FilterType; 446 + UINT LockCount; 447 + LPCWSTR CreationCallStack; 448 + } 449 +*/ 450 +} 451 + 452 +alias LPDIRECT3DTEXTURE9 IDirect3DTexture9; 453 + 454 +interface LPDIRECT3DVOLUMETEXTURE9 : LPDIRECT3DBASETEXTURE9 455 +{ 456 + HRESULT GetLevelDesc( UINT Level,D3DVOLUME_DESC *pDesc); 457 + HRESULT GetVolumeLevel( UINT Level,LPDIRECT3DVOLUME9* ppVolumeLevel); 458 + HRESULT LockBox( UINT Level,D3DLOCKED_BOX* pLockedVolume, D3DBOX* pBox,DWORD Flags); 459 + HRESULT UnlockBox( UINT Level); 460 + HRESULT AddDirtyBox( D3DBOX* pDirtyBox); 461 +/* 462 + debug { 463 + LPCWSTR Name; 464 + UINT Width; 465 + UINT Height; 466 + UINT Depth; 467 + UINT Levels; 468 + DWORD Usage; 469 + D3DFORMAT Format; 470 + D3DPOOL Pool; 471 + DWORD Priority; 472 + DWORD LOD; 473 + D3DTEXTUREFILTERTYPE FilterType; 474 + UINT LockCount; 475 + LPCWSTR CreationCallStack; 476 + } 477 +*/ 478 +} 479 + 480 +alias LPDIRECT3DVOLUMETEXTURE9 IDirect3DVolumeTexture9; 481 + 482 +interface LPDIRECT3DCUBETEXTURE9 : LPDIRECT3DBASETEXTURE9 483 +{ 484 + HRESULT GetLevelDesc( UINT Level,D3DSURFACE_DESC *pDesc); 485 + HRESULT GetCubeMapSurface( D3DCUBEMAP_FACES FaceType,UINT Level,LPDIRECT3DSURFACE9* ppCubeMapSurface); 486 + HRESULT LockRect( D3DCUBEMAP_FACES FaceType,UINT Level,D3DLOCKED_RECT* pLockedRect, RECT* pRect,DWORD Flags); 487 + HRESULT UnlockRect( D3DCUBEMAP_FACES FaceType,UINT Level); 488 + HRESULT AddDirtyRect( D3DCUBEMAP_FACES FaceType, RECT* pDirtyRect); 489 +/* 490 + debug { 491 + LPCWSTR Name; 492 + UINT Width; 493 + UINT Height; 494 + UINT Levels; 495 + DWORD Usage; 496 + D3DFORMAT Format; 497 + D3DPOOL Pool; 498 + DWORD Priority; 499 + DWORD LOD; 500 + D3DTEXTUREFILTERTYPE FilterType; 501 + UINT LockCount; 502 + LPCWSTR CreationCallStack; 503 + } 504 +*/ 505 +} 506 + 507 +alias LPDIRECT3DCUBETEXTURE9 IDirect3DCubeTexture9; 508 + 509 +interface LPDIRECT3DVERTEXBUFFER9 : LPDIRECT3DRESOURCE9 510 +{ 511 + HRESULT Lock( UINT OffsetToLock,UINT SizeToLock,void** ppbData,DWORD Flags); 512 + HRESULT Unlock(); 513 + HRESULT GetDesc( D3DVERTEXBUFFER_DESC *pDesc); 514 +/* 515 + debug { 516 + LPCWSTR Name; 517 + UINT Length; 518 + DWORD Usage; 519 + DWORD FVF; 520 + D3DPOOL Pool; 521 + DWORD Priority; 522 + UINT LockCount; 523 + LPCWSTR CreationCallStack; 524 + } 525 +*/ 526 +} 527 + 528 +alias LPDIRECT3DVERTEXBUFFER9 IDirect3DVertexBuffer9; 529 + 530 +interface LPDIRECT3DINDEXBUFFER9 : LPDIRECT3DRESOURCE9 531 +{ 532 + HRESULT Lock( UINT OffsetToLock,UINT SizeToLock,void** ppbData,DWORD Flags); 533 + HRESULT Unlock(); 534 + HRESULT GetDesc( D3DINDEXBUFFER_DESC *pDesc); 535 +/* 536 + debug { 537 + LPCWSTR Name; 538 + UINT Length; 539 + DWORD Usage; 540 + D3DFORMAT Format; 541 + D3DPOOL Pool; 542 + DWORD Priority; 543 + UINT LockCount; 544 + LPCWSTR CreationCallStack; 545 + } 546 +*/ 547 +} 548 + 549 +alias LPDIRECT3DINDEXBUFFER9 IDirect3DIndexBuffer9; 550 + 551 +interface LPDIRECT3DSURFACE9 : LPDIRECT3DRESOURCE9 552 +{ 553 + HRESULT GetContainer( REFIID riid,void** ppContainer); 554 + HRESULT GetDesc( D3DSURFACE_DESC *pDesc); 555 + HRESULT LockRect( D3DLOCKED_RECT* pLockedRect, RECT* pRect,DWORD Flags); 556 + HRESULT UnlockRect(); 557 + HRESULT GetDC( HDC *phdc); 558 + HRESULT ReleaseDC( HDC hdc); 559 +/* 560 + debug { 561 + LPCWSTR Name; 562 + UINT Width; 563 + UINT Height; 564 + DWORD Usage; 565 + D3DFORMAT Format; 566 + D3DPOOL Pool; 567 + D3DMULTISAMPLE_TYPE MultiSampleType; 568 + DWORD MultiSampleQuality; 569 + DWORD Priority; 570 + UINT LockCount; 571 + UINT DCCount; 572 + LPCWSTR CreationCallStack; 573 + } 574 +*/ 575 +} 576 + 577 +alias LPDIRECT3DSURFACE9 IDirect3DSurface9; 578 + 579 +interface LPDIRECT3DVOLUME9 : IUnknown 580 +{ 581 + HRESULT GetDevice( LPDIRECT3DDEVICE9 * ppDevice); 582 + HRESULT SetPrivateData( REFGUID refguid, void* pData,DWORD SizeOfData,DWORD Flags); 583 + HRESULT GetPrivateData( REFGUID refguid,void* pData,DWORD* pSizeOfData); 584 + HRESULT FreePrivateData( REFGUID refguid); 585 + HRESULT GetContainer( REFIID riid,void** ppContainer); 586 + HRESULT GetDesc( D3DVOLUME_DESC *pDesc); 587 + HRESULT LockBox( D3DLOCKED_BOX * pLockedVolume, D3DBOX* pBox,DWORD Flags); 588 + HRESULT UnlockBox(); 589 +/* 590 + debug { 591 + LPCWSTR Name; 592 + UINT Width; 593 + UINT Height; 594 + UINT Depth; 595 + DWORD Usage; 596 + D3DFORMAT Format; 597 + D3DPOOL Pool; 598 + UINT LockCount; 599 + LPCWSTR CreationCallStack; 600 + } 601 +*/ 602 +} 603 + 604 +alias LPDIRECT3DVOLUME9 IDirect3DVolume9; 605 + 606 +interface LPDIRECT3DQUERY9 : IUnknown 607 +{ 608 + HRESULT GetDevice( LPDIRECT3DDEVICE9* ppDevice); 609 + D3DQUERYTYPE GetType(); 610 + DWORD GetDataSize(); 611 + HRESULT Issue( DWORD dwIssueFlags); 612 + HRESULT GetData( void* pData,DWORD dwSize,DWORD dwGetDataFlags); 613 +/* 614 + debug { 615 + D3DQUERYTYPE Type; 616 + DWORD DataSize; 617 + LPCWSTR CreationCallStack; 618 + } 619 +*/ 620 +} 621 + 622 +alias LPDIRECT3DQUERY9 IDirect3DQuery9; 623 + 624 +/**************************************************************************** 625 + * Flags for SetPrivateData method on all D3D9 interfaces 626 + * 627 + * The passed pointer is an IUnknown ptr. The SizeOfData argument to SetPrivateData 628 + * must be set to sizeof(IUnknown*). Direct3D will call AddRef through this 629 + * pointer and Release when the private data is destroyed. The data will be 630 + * destroyed when another SetPrivateData with the same GUID is set, when 631 + * FreePrivateData is called, or when the D3D9 object is freed. 632 + ****************************************************************************/ 633 +const D3DSPD_IUNKNOWN = 0x00000001L; 634 + 635 +/**************************************************************************** 636 + * 637 + * Flags for IDirect3D9::CreateDevice's BehaviorFlags 638 + * 639 + ****************************************************************************/ 640 + 641 +const D3DCREATE_FPU_PRESERVE = 0x00000002L; 642 +const D3DCREATE_MULTITHREADED = 0x00000004L; 643 + 644 +const D3DCREATE_PUREDEVICE = 0x00000010L; 645 +const D3DCREATE_SOFTWARE_VERTEXPROCESSING = 0x00000020L; 646 +const D3DCREATE_HARDWARE_VERTEXPROCESSING = 0x00000040L; 647 +const D3DCREATE_MIXED_VERTEXPROCESSING = 0x00000080L; 648 + 649 +const D3DCREATE_DISABLE_DRIVER_MANAGEMENT = 0x00000100L; 650 +const D3DCREATE_ADAPTERGROUP_DEVICE = 0x00000200L; 651 +const D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX = 0x00000400L; 652 + 653 +// This flag causes the D3D runtime not to alter the focus 654 +// window in any way. Use with caution- the burden of supporting 655 +// focus management events (alt-tab, etc.) falls on the 656 +// application, and appropriate responses (switching display 657 +// mode, etc.) should be coded. 658 +const D3DCREATE_NOWINDOWCHANGES = 0x00000800L; 659 + 660 +// Disable multithreading for software vertex processing 661 +const D3DCREATE_DISABLE_PSGP_THREADING = 0x00002000L; 662 +// This flag enables present statistics on device. 663 +const D3DCREATE_ENABLE_PRESENTSTATS = 0x00004000L; 664 +// This flag disables printscreen support in the runtime for this device 665 +const D3DCREATE_DISABLE_PRINTSCREEN = 0x00008000L; 666 + 667 +const D3DCREATE_SCREENSAVER = 0x10000000L; 668 + 669 + 670 +/**************************************************************************** 671 + * 672 + * Parameter for IDirect3D9::CreateDevice's Adapter argument 673 + * 674 + ****************************************************************************/ 675 + 676 +const D3DADAPTER_DEFAULT = 0; 677 + 678 +/**************************************************************************** 679 + * 680 + * Flags for IDirect3D9::EnumAdapters 681 + * 682 + ****************************************************************************/ 683 + 684 +/* 685 + * The D3DENUM_WHQL_LEVEL value has been retired for 9Ex and future versions, 686 + * but it needs to be defined here for compatibility with DX9 and earlier versions. 687 + * See the DirectX SDK for sample code on discovering driver signatures. 688 + */ 689 +const D3DENUM_WHQL_LEVEL = 0x00000002L; 690 + 691 +/* NO_DRIVERVERSION will not fill out the DriverVersion field, nor will the 692 + DriverVersion be incorporated into the DeviceIdentifier GUID. WINNT only */ 693 +const D3DENUM_NO_DRIVERVERSION = 0x00000004L; 694 + 695 + 696 +/**************************************************************************** 697 + * 698 + * Maximum number of back-buffers supported in DX9 699 + * 700 + ****************************************************************************/ 701 + 702 +const D3DPRESENT_BACK_BUFFERS_MAX = 3L; 703 + 704 +/**************************************************************************** 705 + * 706 + * Maximum number of back-buffers supported when apps use CreateDeviceEx 707 + * 708 + ****************************************************************************/ 709 +const D3DPRESENT_BACK_BUFFERS_MAX_EX = 30L; 710 + 711 +/**************************************************************************** 712 + * 713 + * Flags for IDirect3DDevice9::SetGammaRamp 714 + * 715 + ****************************************************************************/ 716 + 717 +const D3DSGR_NO_CALIBRATION = 0x00000000L; 718 +const D3DSGR_CALIBRATE = 0x00000001L; 719 + 720 +/**************************************************************************** 721 + * 722 + * Flags for IDirect3DDevice9::SetCursorPosition 723 + * 724 + ****************************************************************************/ 725 + 726 +const D3DCURSOR_IMMEDIATE_UPDATE = 0x00000001L; 727 + 728 +/**************************************************************************** 729 + * 730 + * Flags for IDirect3DSwapChain9::Present 731 + * 732 + ****************************************************************************/ 733 + 734 +const D3DPRESENT_DONOTWAIT = 0x00000001L; 735 +const D3DPRESENT_LINEAR_CONTENT = 0x00000002L; 736 +const D3DPRESENT_DONOTFLIP = 0x00000004L; 737 +const D3DPRESENT_FLIPRESTART = 0x00000008L; 738 +const D3DPRESENT_VIDEO_RESTRICT_TO_MONITOR = 0x00000010L; 739 + 740 +/**************************************************************************** 741 + * 742 + * Flags for DrawPrimitive/DrawIndexedPrimitive 743 + * Also valid for Begin/BeginIndexed 744 + * Also valid for VertexBuffer::CreateVertexBuffer 745 + ****************************************************************************/ 746 + 747 + 748 +/* 749 + * DirectDraw error codes 750 + */ 751 +const _FACD3D = 0x876; 752 +HRESULT MAKE_D3DHRESULT(T)(T code) { return MAKE_HRESULT( 1, _FACD3D, code ); } 753 +HRESULT MAKE_D3DSTATUS(T)(T code) { return MAKE_HRESULT( 0, _FACD3D, code ); } 754 + 755 +/* 756 + * Direct3D Errors 757 + */ 758 +const HRESULT D3D_OK = S_OK; 759 + 760 +const HRESULT D3DERR_WRONGTEXTUREFORMAT = MAKE_D3DHRESULT(2072); 761 +const HRESULT D3DERR_UNSUPPORTEDCOLOROPERATION = MAKE_D3DHRESULT(2073); 762 +const HRESULT D3DERR_UNSUPPORTEDCOLORARG = MAKE_D3DHRESULT(2074); 763 +const HRESULT D3DERR_UNSUPPORTEDALPHAOPERATION = MAKE_D3DHRESULT(2075); 764 +const HRESULT D3DERR_UNSUPPORTEDALPHAARG = MAKE_D3DHRESULT(2076); 765 +const HRESULT D3DERR_TOOMANYOPERATIONS = MAKE_D3DHRESULT(2077); 766 +const HRESULT D3DERR_CONFLICTINGTEXTUREFILTER = MAKE_D3DHRESULT(2078); 767 +const HRESULT D3DERR_UNSUPPORTEDFACTORVALUE = MAKE_D3DHRESULT(2079); 768 +const HRESULT D3DERR_CONFLICTINGRENDERSTATE = MAKE_D3DHRESULT(2081); 769 +const HRESULT D3DERR_UNSUPPORTEDTEXTUREFILTER = MAKE_D3DHRESULT(2082); 770 +const HRESULT D3DERR_CONFLICTINGTEXTUREPALETTE = MAKE_D3DHRESULT(2086); 771 +const HRESULT D3DERR_DRIVERINTERNALERROR = MAKE_D3DHRESULT(2087); 772 + 773 +const HRESULT D3DERR_NOTFOUND = MAKE_D3DHRESULT(2150); 774 +const HRESULT D3DERR_MOREDATA = MAKE_D3DHRESULT(2151); 775 +const HRESULT D3DERR_DEVICELOST = MAKE_D3DHRESULT(2152); 776 +const HRESULT D3DERR_DEVICENOTRESET = MAKE_D3DHRESULT(2153); 777 +const HRESULT D3DERR_NOTAVAILABLE = MAKE_D3DHRESULT(2154); 778 +const HRESULT D3DERR_OUTOFVIDEOMEMORY = MAKE_D3DHRESULT(380); 779 +const HRESULT D3DERR_INVALIDDEVICE = MAKE_D3DHRESULT(2155); 780 +const HRESULT D3DERR_INVALIDCALL = MAKE_D3DHRESULT(2156); 781 +const HRESULT D3DERR_DRIVERINVALIDCALL = MAKE_D3DHRESULT(2157); 782 +const HRESULT D3DERR_WASSTILLDRAWING = MAKE_D3DHRESULT(540); 783 +const HRESULT D3DOK_NOAUTOGEN = MAKE_D3DSTATUS(2159); 784 +const HRESULT D3DERR_DEVICEREMOVED = MAKE_D3DHRESULT(2160); 785 +const HRESULT S_NOT_RESIDENT = MAKE_D3DSTATUS(2165); 786 +const HRESULT S_RESIDENT_IN_SHARED_MEMORY = MAKE_D3DSTATUS(2166); 787 +const HRESULT S_PRESENT_MODE_CHANGED = MAKE_D3DSTATUS(2167); 788 +const HRESULT S_PRESENT_OCCLUDED = MAKE_D3DSTATUS(2168); 789 +const HRESULT D3DERR_DEVICEHUNG = MAKE_D3DHRESULT(2164); 790 + 791 + 792 +/********************* 793 +/* D3D9Ex interfaces 794 +/*********************/ 795 + 796 +extern (Windows) HRESULT Direct3DCreate9Ex(UINT SDKVersion, LPDIRECT3D9EX*); 797 + 798 +interface LPDIRECT3D9EX : LPDIRECT3D9 799 +{ 800 + UINT GetAdapterModeCountEx(UINT Adapter, D3DDISPLAYMODEFILTER* pFilter ); 801 + HRESULT EnumAdapterModesEx( UINT Adapter, D3DDISPLAYMODEFILTER* pFilter,UINT Mode,D3DDISPLAYMODEEX* pMode); 802 + HRESULT GetAdapterDisplayModeEx( UINT Adapter,D3DDISPLAYMODEEX* pMode,D3DDISPLAYROTATION* pRotation); 803 + HRESULT CreateDeviceEx( UINT Adapter,D3DDEVTYPE DeviceType,HWND hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS* pPresentationParameters,D3DDISPLAYMODEEX* pFullscreenDisplayMode,LPDIRECT3DDEVICE9EX* ppReturnedDeviceInterface); 804 + HRESULT GetAdapterLUID( UINT Adapter,LUID * pLUID); 805 +} 806 + 807 +alias LPDIRECT3D9EX IDirect3D9Ex; 808 + 809 +interface LPDIRECT3DDEVICE9EX : LPDIRECT3DDEVICE9 810 +{ 811 + HRESULT SetConvolutionMonoKernel( UINT width,UINT height,float* rows,float* columns); 812 + HRESULT ComposeRects( LPDIRECT3DSURFACE9 pSrc,LPDIRECT3DSURFACE9 pDst,LPDIRECT3DVERTEXBUFFER9 pSrcRectDescs,UINT NumRects,LPDIRECT3DVERTEXBUFFER9 pDstRectDescs,D3DCOMPOSERECTSOP Operation,int Xoffset,int Yoffset); 813 + HRESULT PresentEx( RECT* pSourceRect, RECT* pDestRect,HWND hDestWindowOverride, RGNDATA* pDirtyRegion,DWORD dwFlags); 814 + HRESULT GetGPUThreadPriority( INT* pPriority); 815 + HRESULT SetGPUThreadPriority( INT Priority); 816 + HRESULT WaitForVBlank( UINT iSwapChain); 817 + HRESULT CheckResourceResidency( LPDIRECT3DRESOURCE9* pResourceArray,UINT32 NumResources); 818 + HRESULT SetMaximumFrameLatency( UINT MaxLatency); 819 + HRESULT GetMaximumFrameLatency( UINT* pMaxLatency); 820 + HRESULT CheckDeviceState( HWND hDestinationWindow); 821 + HRESULT CreateRenderTargetEx( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Lockable,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle,DWORD Usage); 822 + HRESULT CreateOffscreenPlainSurfaceEx( UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle,DWORD Usage); 823 + HRESULT CreateDepthStencilSurfaceEx( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Discard,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle,DWORD Usage); 824 + HRESULT ResetEx( D3DPRESENT_PARAMETERS* pPresentationParameters,D3DDISPLAYMODEEX *pFullscreenDisplayMode); 825 + HRESULT GetDisplayModeEx( UINT iSwapChain,D3DDISPLAYMODEEX* pMode,D3DDISPLAYROTATION* pRotation); 826 +} 827 + 828 +alias LPDIRECT3DDEVICE9EX IDirect3DDevice9Ex; 829 + 830 +interface LPDIRECT3DSWAPCHAIN9EX : LPDIRECT3DSWAPCHAIN9 831 +{ 832 + HRESULT GetLastPresentCount( UINT* pLastPresentCount); 833 + HRESULT GetPresentStats( D3DPRESENTSTATS* pPresentationStatistics); 834 + HRESULT GetDisplayModeEx( D3DDISPLAYMODEEX* pMode,D3DDISPLAYROTATION* pRotation); 835 +} 836 + 837 +alias LPDIRECT3DSWAPCHAIN9EX IDirect3DSwapChain9Ex;

Added src/win32/directx/d3d9.def version [9bc07a56e4129974]

1 +IMPORTS 2 +_Direct3DCreate9@4 = d3d9.Direct3DCreate9

Added src/win32/directx/d3d9caps.d version [8267c3a32638d8fa]

1 +/*==========================================================================; 2 + * 3 + * Copyright (C) Microsoft Corporation. All Rights Reserved. 4 + * 5 + * File: d3d9caps.h 6 + * Content: Direct3D capabilities include file 7 + * 8 + ***************************************************************************/ 9 + 10 +module win32.directx.d3d9caps; 11 + 12 +private import win32.windows, 13 + win32.directx.d3d9types; 14 + 15 +align(4): 16 + 17 +struct D3DVSHADERCAPS2_0 18 +{ 19 + DWORD Caps; 20 + INT DynamicFlowControlDepth; 21 + INT NumTemps; 22 + INT StaticFlowControlDepth; 23 +} 24 + 25 +const D3DVS20CAPS_PREDICATION = (1<<0); 26 + 27 +const D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH = 24; 28 +const D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH = 0; 29 +const D3DVS20_MAX_NUMTEMPS = 32; 30 +const D3DVS20_MIN_NUMTEMPS = 12; 31 +const D3DVS20_MAX_STATICFLOWCONTROLDEPTH = 4; 32 +const D3DVS20_MIN_STATICFLOWCONTROLDEPTH = 1; 33 + 34 +struct D3DPSHADERCAPS2_0 35 +{ 36 + DWORD Caps; 37 + INT DynamicFlowControlDepth; 38 + INT NumTemps; 39 + INT StaticFlowControlDepth; 40 + INT NumInstructionSlots; 41 +} 42 + 43 +const D3DPS20CAPS_ARBITRARYSWIZZLE = (1<<0); 44 +const D3DPS20CAPS_GRADIENTINSTRUCTIONS = (1<<1); 45 +const D3DPS20CAPS_PREDICATION = (1<<2); 46 +const D3DPS20CAPS_NODEPENDENTREADLIMIT = (1<<3); 47 +const D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT = (1<<4); 48 + 49 +const D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH = 24; 50 +const D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH = 0; 51 +const D3DPS20_MAX_NUMTEMPS = 32; 52 +const D3DPS20_MIN_NUMTEMPS = 12; 53 +const D3DPS20_MAX_STATICFLOWCONTROLDEPTH = 4; 54 +const D3DPS20_MIN_STATICFLOWCONTROLDEPTH = 0; 55 +const D3DPS20_MAX_NUMINSTRUCTIONSLOTS = 512; 56 +const D3DPS20_MIN_NUMINSTRUCTIONSLOTS = 96; 57 + 58 +const D3DMIN30SHADERINSTRUCTIONS = 512; 59 +const D3DMAX30SHADERINSTRUCTIONS = 32768; 60 + 61 +struct D3DCAPS9 62 +{ 63 + /* Device Info */ 64 + D3DDEVTYPE DeviceType; 65 + UINT AdapterOrdinal; 66 + 67 + /* Caps from DX7 Draw */ 68 + DWORD Caps; 69 + DWORD Caps2; 70 + DWORD Caps3; 71 + DWORD PresentationIntervals; 72 + 73 + /* Cursor Caps */ 74 + DWORD CursorCaps; 75 + 76 + /* 3D Device Caps */ 77 + DWORD DevCaps; 78 + 79 + DWORD PrimitiveMiscCaps; 80 + DWORD RasterCaps; 81 + DWORD ZCmpCaps; 82 + DWORD SrcBlendCaps; 83 + DWORD DestBlendCaps; 84 + DWORD AlphaCmpCaps; 85 + DWORD ShadeCaps; 86 + DWORD TextureCaps; 87 + DWORD TextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DTexture9's 88 + DWORD CubeTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DCubeTexture9's 89 + DWORD VolumeTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DVolumeTexture9's 90 + DWORD TextureAddressCaps; // D3DPTADDRESSCAPS for IDirect3DTexture9's 91 + DWORD VolumeTextureAddressCaps; // D3DPTADDRESSCAPS for IDirect3DVolumeTexture9's 92 + 93 + DWORD LineCaps; // D3DLINECAPS 94 + 95 + DWORD MaxTextureWidth, MaxTextureHeight; 96 + DWORD MaxVolumeExtent; 97 + 98 + DWORD MaxTextureRepeat; 99 + DWORD MaxTextureAspectRatio; 100 + DWORD MaxAnisotropy; 101 + float MaxVertexW; 102 + 103 + float GuardBandLeft; 104 + float GuardBandTop; 105 + float GuardBandRight; 106 + float GuardBandBottom; 107 + 108 + float ExtentsAdjust; 109 + DWORD StencilCaps; 110 + 111 + DWORD FVFCaps; 112 + DWORD TextureOpCaps; 113 + DWORD MaxTextureBlendStages; 114 + DWORD MaxSimultaneousTextures; 115 + 116 + DWORD VertexProcessingCaps; 117 + DWORD MaxActiveLights; 118 + DWORD MaxUserClipPlanes; 119 + DWORD MaxVertexBlendMatrices; 120 + DWORD MaxVertexBlendMatrixIndex; 121 + 122 + float MaxPointSize; 123 + 124 + DWORD MaxPrimitiveCount; // max number of primitives per DrawPrimitive call 125 + DWORD MaxVertexIndex; 126 + DWORD MaxStreams; 127 + DWORD MaxStreamStride; // max stride for SetStreamSource 128 + 129 + DWORD VertexShaderVersion; 130 + DWORD MaxVertexShaderConst; // number of vertex shader constant registers 131 + 132 + DWORD PixelShaderVersion; 133 + float PixelShader1xMaxValue; // max value storable in registers of ps.1.x shaders 134 + 135 + // Here are the DX9 specific ones 136 + DWORD DevCaps2; 137 + 138 + float MaxNpatchTessellationLevel; 139 + DWORD Reserved5; 140 + 141 + UINT MasterAdapterOrdinal; // ordinal of master adaptor for adapter group 142 + UINT AdapterOrdinalInGroup; // ordinal inside the adapter group 143 + UINT NumberOfAdaptersInGroup; // number of adapters in this adapter group (only if master) 144 + DWORD DeclTypes; // Data types, supported in vertex declarations 145 + DWORD NumSimultaneousRTs; // Will be at least 1 146 + DWORD StretchRectFilterCaps; // Filter caps supported by StretchRect 147 + D3DVSHADERCAPS2_0 VS20Caps; 148 + D3DPSHADERCAPS2_0 PS20Caps; 149 + DWORD VertexTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DTexture9's for texture, used in vertex shaders 150 + DWORD MaxVShaderInstructionsExecuted; // maximum number of vertex shader instructions that can be executed 151 + DWORD MaxPShaderInstructionsExecuted; // maximum number of pixel shader instructions that can be executed 152 + DWORD MaxVertexShader30InstructionSlots; 153 + DWORD MaxPixelShader30InstructionSlots; 154 +} 155 + 156 +// 157 +// BIT DEFINES FOR D3DCAPS9 DWORD MEMBERS 158 +// 159 + 160 +// 161 +// Caps 162 +// 163 +const D3DCAPS_READ_SCANLINE = 0x00020000L; 164 + 165 +// 166 +// Caps2 167 +// 168 +const D3DCAPS2_FULLSCREENGAMMA = 0x00020000L; 169 +const D3DCAPS2_CANCALIBRATEGAMMA = 0x00100000L; 170 +const D3DCAPS2_RESERVED = 0x02000000L; 171 +const D3DCAPS2_CANMANAGERESOURCE = 0x10000000L; 172 +const D3DCAPS2_DYNAMICTEXTURES = 0x20000000L; 173 +const D3DCAPS2_CANAUTOGENMIPMAP = 0x40000000L; 174 + 175 +const D3DCAPS2_CANSHARERESOURCE = 0x80000000L; 176 + 177 +// 178 +// Caps3 179 +// 180 +const D3DCAPS3_RESERVED = 0x8000001fL; 181 + 182 +// Indicates that the device can respect the ALPHABLENDENABLE render state 183 +// when fullscreen while using the FLIP or DISCARD swap effect. 184 +// COPY and COPYVSYNC swap effects work whether or not this flag is set. 185 +const D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD = 0x00000020L; 186 + 187 +// Indicates that the device can perform a gamma correction from 188 +// a windowed back buffer containing linear content to the sRGB desktop. 189 +const D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION = 0x00000080L; 190 + 191 +const D3DCAPS3_COPY_TO_VIDMEM = 0x00000100L; /* Device can acclerate copies from sysmem to local vidmem */ 192 +const D3DCAPS3_COPY_TO_SYSTEMMEM = 0x00000200L; /* Device can acclerate copies from local vidmem to sysmem */ 193 + 194 + 195 +// 196 +// PresentationIntervals 197 +// 198 +const D3DPRESENT_INTERVAL_DEFAULT = 0x00000000L; 199 +const D3DPRESENT_INTERVAL_ONE = 0x00000001L; 200 +const D3DPRESENT_INTERVAL_TWO = 0x00000002L; 201 +const D3DPRESENT_INTERVAL_THREE = 0x00000004L; 202 +const D3DPRESENT_INTERVAL_FOUR = 0x00000008L; 203 +const D3DPRESENT_INTERVAL_IMMEDIATE = 0x80000000L; 204 + 205 +// 206 +// CursorCaps 207 +// 208 +// Driver supports HW color cursor in at least hi-res modes(height >=400) 209 +const D3DCURSORCAPS_COLOR = 0x00000001L; 210 +// Driver supports HW cursor also in low-res modes(height < 400) 211 +const D3DCURSORCAPS_LOWRES = 0x00000002L; 212 + 213 +// 214 +// DevCaps 215 +// 216 +const D3DDEVCAPS_EXECUTESYSTEMMEMORY = 0x00000010L; /* Device can use execute buffers from system memory */ 217 +const D3DDEVCAPS_EXECUTEVIDEOMEMORY = 0x00000020L; /* Device can use execute buffers from video memory */ 218 +const D3DDEVCAPS_TLVERTEXSYSTEMMEMORY = 0x00000040L; /* Device can use TL buffers from system memory */ 219 +const D3DDEVCAPS_TLVERTEXVIDEOMEMORY = 0x00000080L; /* Device can use TL buffers from video memory */ 220 +const D3DDEVCAPS_TEXTURESYSTEMMEMORY = 0x00000100L; /* Device can texture from system memory */ 221 +const D3DDEVCAPS_TEXTUREVIDEOMEMORY = 0x00000200L; /* Device can texture from device memory */ 222 +const D3DDEVCAPS_DRAWPRIMTLVERTEX = 0x00000400L; /* Device can draw TLVERTEX primitives */ 223 +const D3DDEVCAPS_CANRENDERAFTERFLIP = 0x00000800L; /* Device can render without waiting for flip to complete */ 224 +const D3DDEVCAPS_TEXTURENONLOCALVIDMEM = 0x00001000L; /* Device can texture from nonlocal video memory */ 225 +const D3DDEVCAPS_DRAWPRIMITIVES2 = 0x00002000L; /* Device can support DrawPrimitives2 */ 226 +const D3DDEVCAPS_SEPARATETEXTUREMEMORIES = 0x00004000L; /* Device is texturing from separate memory pools */ 227 +const D3DDEVCAPS_DRAWPRIMITIVES2EX = 0x00008000L; /* Device can support Extended DrawPrimitives2 i.e. DX7 compliant driver*/ 228 +const D3DDEVCAPS_HWTRANSFORMANDLIGHT = 0x00010000L; /* Device can support transformation and lighting in hardware and DRAWPRIMITIVES2EX must be also */ 229 +const D3DDEVCAPS_CANBLTSYSTONONLOCAL = 0x00020000L; /* Device supports a Tex Blt from system memory to non-local vidmem */ 230 +const D3DDEVCAPS_HWRASTERIZATION = 0x00080000L; /* Device has HW acceleration for rasterization */ 231 +const D3DDEVCAPS_PUREDEVICE = 0x00100000L; /* Device supports D3DCREATE_PUREDEVICE */ 232 +const D3DDEVCAPS_QUINTICRTPATCHES = 0x00200000L; /* Device supports quintic Beziers and BSplines */ 233 +const D3DDEVCAPS_RTPATCHES = 0x00400000L; /* Device supports Rect and Tri patches */ 234 +const D3DDEVCAPS_RTPATCHHANDLEZERO = 0x00800000L; /* Indicates that RT Patches may be drawn efficiently using handle 0 */ 235 +const D3DDEVCAPS_NPATCHES = 0x01000000L; /* Device supports N-Patches */ 236 + 237 +// 238 +// PrimitiveMiscCaps 239 +// 240 +const D3DPMISCCAPS_MASKZ = 0x00000002L; 241 +const D3DPMISCCAPS_CULLNONE = 0x00000010L; 242 +const D3DPMISCCAPS_CULLCW = 0x00000020L; 243 +const D3DPMISCCAPS_CULLCCW = 0x00000040L; 244 +const D3DPMISCCAPS_COLORWRITEENABLE = 0x00000080L; 245 +const D3DPMISCCAPS_CLIPPLANESCALEDPOINTS = 0x00000100L; /* Device correctly clips scaled points to clip planes */ 246 +const D3DPMISCCAPS_CLIPTLVERTS = 0x00000200L; /* device will clip post-transformed vertex primitives */ 247 +const D3DPMISCCAPS_TSSARGTEMP = 0x00000400L; /* device supports D3DTA_TEMP for temporary register */ 248 +const D3DPMISCCAPS_BLENDOP = 0x00000800L; /* device supports D3DRS_BLENDOP */ 249 +const D3DPMISCCAPS_NULLREFERENCE = 0x00001000L; /* Reference Device that doesnt render */ 250 +const D3DPMISCCAPS_INDEPENDENTWRITEMASKS = 0x00004000L; /* Device supports independent write masks for MET or MRT */ 251 +const D3DPMISCCAPS_PERSTAGECONSTANT = 0x00008000L; /* Device supports per-stage constants */ 252 +const D3DPMISCCAPS_FOGANDSPECULARALPHA = 0x00010000L; /* Device supports separate fog and specular alpha (many devices 253 + use the specular alpha channel to store fog factor) */ 254 +const D3DPMISCCAPS_SEPARATEALPHABLEND = 0x00020000L; /* Device supports separate blend settings for the alpha channel */ 255 +const D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS = 0x00040000L; /* Device supports different bit depths for MRT */ 256 +const D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING = 0x00080000L; /* Device supports post-pixel shader operations for MRT */ 257 +const D3DPMISCCAPS_FOGVERTEXCLAMPED = 0x00100000L; /* Device clamps fog blend factor per vertex */ 258 + 259 +const D3DPMISCCAPS_POSTBLENDSRGBCONVERT = 0x00200000L; /* Indicates device can perform conversion to sRGB after blending. */ 260 + 261 +// 262 +// LineCaps 263 +// 264 +const D3DLINECAPS_TEXTURE = 0x00000001L; 265 +const D3DLINECAPS_ZTEST = 0x00000002L; 266 +const D3DLINECAPS_BLEND = 0x00000004L; 267 +const D3DLINECAPS_ALPHACMP = 0x00000008L; 268 +const D3DLINECAPS_FOG = 0x00000010L; 269 +const D3DLINECAPS_ANTIALIAS = 0x00000020L; 270 + 271 +// 272 +// RasterCaps 273 +// 274 +const D3DPRASTERCAPS_DITHER = 0x00000001L; 275 +const D3DPRASTERCAPS_ZTEST = 0x00000010L; 276 +const D3DPRASTERCAPS_FOGVERTEX = 0x00000080L; 277 +const D3DPRASTERCAPS_FOGTABLE = 0x00000100L; 278 +const D3DPRASTERCAPS_MIPMAPLODBIAS = 0x00002000L; 279 +const D3DPRASTERCAPS_ZBUFFERLESSHSR = 0x00008000L; 280 +const D3DPRASTERCAPS_FOGRANGE = 0x00010000L; 281 +const D3DPRASTERCAPS_ANISOTROPY = 0x00020000L; 282 +const D3DPRASTERCAPS_WBUFFER = 0x00040000L; 283 +const D3DPRASTERCAPS_WFOG = 0x00100000L; 284 +const D3DPRASTERCAPS_ZFOG = 0x00200000L; 285 +const D3DPRASTERCAPS_COLORPERSPECTIVE = 0x00400000L; /* Device iterates colors perspective correct */ 286 +const D3DPRASTERCAPS_SCISSORTEST = 0x01000000L; 287 +const D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS = 0x02000000L; 288 +const D3DPRASTERCAPS_DEPTHBIAS = 0x04000000L; 289 +const D3DPRASTERCAPS_MULTISAMPLE_TOGGLE = 0x08000000L; 290 + 291 +// 292 +// ZCmpCaps, AlphaCmpCaps 293 +// 294 +const D3DPCMPCAPS_NEVER = 0x00000001L; 295 +const D3DPCMPCAPS_LESS = 0x00000002L; 296 +const D3DPCMPCAPS_EQUAL = 0x00000004L; 297 +const D3DPCMPCAPS_LESSEQUAL = 0x00000008L; 298 +const D3DPCMPCAPS_GREATER = 0x00000010L; 299 +const D3DPCMPCAPS_NOTEQUAL = 0x00000020L; 300 +const D3DPCMPCAPS_GREATEREQUAL = 0x00000040L; 301 +const D3DPCMPCAPS_ALWAYS = 0x00000080L; 302 + 303 +// 304 +// SourceBlendCaps, DestBlendCaps 305 +// 306 +const D3DPBLENDCAPS_ZERO = 0x00000001L; 307 +const D3DPBLENDCAPS_ONE = 0x00000002L; 308 +const D3DPBLENDCAPS_SRCCOLOR = 0x00000004L; 309 +const D3DPBLENDCAPS_INVSRCCOLOR = 0x00000008L; 310 +const D3DPBLENDCAPS_SRCALPHA = 0x00000010L; 311 +const D3DPBLENDCAPS_INVSRCALPHA = 0x00000020L; 312 +const D3DPBLENDCAPS_DESTALPHA = 0x00000040L; 313 +const D3DPBLENDCAPS_INVDESTALPHA = 0x00000080L; 314 +const D3DPBLENDCAPS_DESTCOLOR = 0x00000100L; 315 +const D3DPBLENDCAPS_INVDESTCOLOR = 0x00000200L; 316 +const D3DPBLENDCAPS_SRCALPHASAT = 0x00000400L; 317 +const D3DPBLENDCAPS_BOTHSRCALPHA = 0x00000800L; 318 +const D3DPBLENDCAPS_BOTHINVSRCALPHA = 0x00001000L; 319 +const D3DPBLENDCAPS_BLENDFACTOR = 0x00002000L; /* Supports both D3DBLEND_BLENDFACTOR and D3DBLEND_INVBLENDFACTOR */ 320 + 321 +const D3DPBLENDCAPS_SRCCOLOR2 = 0x00004000L; 322 +const D3DPBLENDCAPS_INVSRCCOLOR2 = 0x00008000L; 323 + 324 +// 325 +// ShadeCaps 326 +// 327 +const D3DPSHADECAPS_COLORGOURAUDRGB = 0x00000008L; 328 +const D3DPSHADECAPS_SPECULARGOURAUDRGB = 0x00000200L; 329 +const D3DPSHADECAPS_ALPHAGOURAUDBLEND = 0x00004000L; 330 +const D3DPSHADECAPS_FOGGOURAUD = 0x00080000L; 331 + 332 +// 333 +// TextureCaps 334 +// 335 +const D3DPTEXTURECAPS_PERSPECTIVE = 0x00000001L; /* Perspective-correct texturing is supported */ 336 +const D3DPTEXTURECAPS_POW2 = 0x00000002L; /* Power-of-2 texture dimensions are required - applies to non-Cube/Volume textures only. */ 337 +const D3DPTEXTURECAPS_ALPHA = 0x00000004L; /* Alpha in texture pixels is supported */ 338 +const D3DPTEXTURECAPS_SQUAREONLY = 0x00000020L; /* Only square textures are supported */ 339 +const D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE = 0x00000040L; /* Texture indices are not scaled by the texture size prior to interpolation */ 340 +const D3DPTEXTURECAPS_ALPHAPALETTE = 0x00000080L; /* Device can draw alpha from texture palettes */ 341 +// Device can use non-POW2 textures if: 342 +// 1) D3DTEXTURE_ADDRESS is set to CLAMP for this texture's stage 343 +// 2) D3DRS_WRAP(N) is zero for this texture's coordinates 344 +// 3) mip mapping is not enabled (use magnification filter only) 345 +const D3DPTEXTURECAPS_NONPOW2CONDITIONAL = 0x00000100L; 346 +const D3DPTEXTURECAPS_PROJECTED = 0x00000400L; /* Device can do D3DTTFF_PROJECTED */ 347 +const D3DPTEXTURECAPS_CUBEMAP = 0x00000800L; /* Device can do cubemap textures */ 348 +const D3DPTEXTURECAPS_VOLUMEMAP = 0x00002000L; /* Device can do volume textures */ 349 +const D3DPTEXTURECAPS_MIPMAP = 0x00004000L; /* Device can do mipmapped textures */ 350 +const D3DPTEXTURECAPS_MIPVOLUMEMAP = 0x00008000L; /* Device can do mipmapped volume textures */ 351 +const D3DPTEXTURECAPS_MIPCUBEMAP = 0x00010000L; /* Device can do mipmapped cube maps */ 352 +const D3DPTEXTURECAPS_CUBEMAP_POW2 = 0x00020000L; /* Device requires that cubemaps be power-of-2 dimension */ 353 +const D3DPTEXTURECAPS_VOLUMEMAP_POW2 = 0x00040000L; /* Device requires that volume maps be power-of-2 dimension */ 354 +const D3DPTEXTURECAPS_NOPROJECTEDBUMPENV = 0x00200000L; /* Device does not support projected bump env lookup operation 355 + in programmable and fixed function pixel shaders */ 356 + 357 +// 358 +// TextureFilterCaps, StretchRectFilterCaps 359 +// 360 +const D3DPTFILTERCAPS_MINFPOINT = 0x00000100L; /* Min Filter */ 361 +const D3DPTFILTERCAPS_MINFLINEAR = 0x00000200L; 362 +const D3DPTFILTERCAPS_MINFANISOTROPIC = 0x00000400L; 363 +const D3DPTFILTERCAPS_MINFPYRAMIDALQUAD = 0x00000800L; 364 +const D3DPTFILTERCAPS_MINFGAUSSIANQUAD = 0x00001000L; 365 +const D3DPTFILTERCAPS_MIPFPOINT = 0x00010000L; /* Mip Filter */ 366 +const D3DPTFILTERCAPS_MIPFLINEAR = 0x00020000L; 367 + 368 +const D3DPTFILTERCAPS_CONVOLUTIONMONO = 0x00040000L; /* Min and Mag for the convolution mono filter */ 369 + 370 +const D3DPTFILTERCAPS_MAGFPOINT = 0x01000000L; /* Mag Filter */ 371 +const D3DPTFILTERCAPS_MAGFLINEAR = 0x02000000L; 372 +const D3DPTFILTERCAPS_MAGFANISOTROPIC = 0x04000000L; 373 +const D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD = 0x08000000L; 374 +const D3DPTFILTERCAPS_MAGFGAUSSIANQUAD = 0x10000000L; 375 + 376 +// 377 +// TextureAddressCaps 378 +// 379 +const D3DPTADDRESSCAPS_WRAP = 0x00000001L; 380 +const D3DPTADDRESSCAPS_MIRROR = 0x00000002L; 381 +const D3DPTADDRESSCAPS_CLAMP = 0x00000004L; 382 +const D3DPTADDRESSCAPS_BORDER = 0x00000008L; 383 +const D3DPTADDRESSCAPS_INDEPENDENTUV = 0x00000010L; 384 +const D3DPTADDRESSCAPS_MIRRORONCE = 0x00000020L; 385 + 386 +// 387 +// StencilCaps 388 +// 389 +const D3DSTENCILCAPS_KEEP = 0x00000001L; 390 +const D3DSTENCILCAPS_ZERO = 0x00000002L; 391 +const D3DSTENCILCAPS_REPLACE = 0x00000004L; 392 +const D3DSTENCILCAPS_INCRSAT = 0x00000008L; 393 +const D3DSTENCILCAPS_DECRSAT = 0x00000010L; 394 +const D3DSTENCILCAPS_INVERT = 0x00000020L; 395 +const D3DSTENCILCAPS_INCR = 0x00000040L; 396 +const D3DSTENCILCAPS_DECR = 0x00000080L; 397 +const D3DSTENCILCAPS_TWOSIDED = 0x00000100L; 398 + 399 +// 400 +// TextureOpCaps 401 +// 402 +const D3DTEXOPCAPS_DISABLE = 0x00000001L; 403 +const D3DTEXOPCAPS_SELECTARG1 = 0x00000002L; 404 +const D3DTEXOPCAPS_SELECTARG2 = 0x00000004L; 405 +const D3DTEXOPCAPS_MODULATE = 0x00000008L; 406 +const D3DTEXOPCAPS_MODULATE2X = 0x00000010L; 407 +const D3DTEXOPCAPS_MODULATE4X = 0x00000020L; 408 +const D3DTEXOPCAPS_ADD = 0x00000040L; 409 +const D3DTEXOPCAPS_ADDSIGNED = 0x00000080L; 410 +const D3DTEXOPCAPS_ADDSIGNED2X = 0x00000100L; 411 +const D3DTEXOPCAPS_SUBTRACT = 0x00000200L; 412 +const D3DTEXOPCAPS_ADDSMOOTH = 0x00000400L; 413 +const D3DTEXOPCAPS_BLENDDIFFUSEALPHA = 0x00000800L; 414 +const D3DTEXOPCAPS_BLENDTEXTUREALPHA = 0x00001000L; 415 +const D3DTEXOPCAPS_BLENDFACTORALPHA = 0x00002000L; 416 +const D3DTEXOPCAPS_BLENDTEXTUREALPHAPM = 0x00004000L; 417 +const D3DTEXOPCAPS_BLENDCURRENTALPHA = 0x00008000L; 418 +const D3DTEXOPCAPS_PREMODULATE = 0x00010000L; 419 +const D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR = 0x00020000L; 420 +const D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA = 0x00040000L; 421 +const D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR = 0x00080000L; 422 +const D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA = 0x00100000L; 423 +const D3DTEXOPCAPS_BUMPENVMAP = 0x00200000L; 424 +const D3DTEXOPCAPS_BUMPENVMAPLUMINANCE = 0x00400000L; 425 +const D3DTEXOPCAPS_DOTPRODUCT3 = 0x00800000L; 426 +const D3DTEXOPCAPS_MULTIPLYADD = 0x01000000L; 427 +const D3DTEXOPCAPS_LERP = 0x02000000L; 428 + 429 +// 430 +// FVFCaps 431 +// 432 +const D3DFVFCAPS_TEXCOORDCOUNTMASK = 0x0000ffffL; /* mask for texture coordinate count field */ 433 +const D3DFVFCAPS_DONOTSTRIPELEMENTS = 0x00080000L; /* Device prefers that vertex elements not be stripped */ 434 +const D3DFVFCAPS_PSIZE = 0x00100000L; /* Device can receive point size */ 435 + 436 +// 437 +// VertexProcessingCaps 438 +// 439 +const D3DVTXPCAPS_TEXGEN = 0x00000001L; /* device can do texgen */ 440 +const D3DVTXPCAPS_MATERIALSOURCE7 = 0x00000002L; /* device can do DX7-level colormaterialsource ops */ 441 +const D3DVTXPCAPS_DIRECTIONALLIGHTS = 0x00000008L; /* device can do directional lights */ 442 +const D3DVTXPCAPS_POSITIONALLIGHTS = 0x00000010L; /* device can do positional lights (includes point and spot) */ 443 +const D3DVTXPCAPS_LOCALVIEWER = 0x00000020L; /* device can do local viewer */ 444 +const D3DVTXPCAPS_TWEENING = 0x00000040L; /* device can do vertex tweening */ 445 +const D3DVTXPCAPS_TEXGEN_SPHEREMAP = 0x00000100L; /* device supports D3DTSS_TCI_SPHEREMAP */ 446 +const D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER = 0x00000200L; /* device does not support TexGen in non-local 447 + viewer mode */ 448 + 449 +// 450 +// DevCaps2 451 +// 452 +const D3DDEVCAPS2_STREAMOFFSET = 0x00000001L; /* Device supports offsets in streams. Must be set by DX9 drivers */ 453 +const D3DDEVCAPS2_DMAPNPATCH = 0x00000002L; /* Device supports displacement maps for N-Patches*/ 454 +const D3DDEVCAPS2_ADAPTIVETESSRTPATCH = 0x00000004L; /* Device supports adaptive tesselation of RT-patches*/ 455 +const D3DDEVCAPS2_ADAPTIVETESSNPATCH = 0x00000008L; /* Device supports adaptive tesselation of N-patches*/ 456 +const D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES = 0x00000010L; /* Device supports StretchRect calls with a texture as the source*/ 457 +const D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH = 0x00000020L; /* Device supports presampled displacement maps for N-Patches */ 458 +const D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET = 0x00000040L; /* Vertex elements in a vertex declaration can share the same stream offset */ 459 + 460 +// 461 +// DeclTypes 462 +// 463 +const D3DDTCAPS_UBYTE4 = 0x00000001L; 464 +const D3DDTCAPS_UBYTE4N = 0x00000002L; 465 +const D3DDTCAPS_SHORT2N = 0x00000004L; 466 +const D3DDTCAPS_SHORT4N = 0x00000008L; 467 +const D3DDTCAPS_USHORT2N = 0x00000010L; 468 +const D3DDTCAPS_USHORT4N = 0x00000020L; 469 +const D3DDTCAPS_UDEC3 = 0x00000040L; 470 +const D3DDTCAPS_DEC3N = 0x00000080L; 471 +const D3DDTCAPS_FLOAT16_2 = 0x00000100L; 472 +const D3DDTCAPS_FLOAT16_4 = 0x00000200L;

Added src/win32/directx/d3d9types.d version [2c1af0c933539827]

1 +/*==========================================================================; 2 + * 3 + * Copyright (C) Microsoft Corporation. All Rights Reserved. 4 + * 5 + * File: d3d9types.h 6 + * Content: Direct3D capabilities include file 7 + * 8 + ***************************************************************************/ 9 + 10 +module win32.directx.d3d9types; 11 + 12 +private import win32.windows; 13 + 14 +// Alignment compatibility 15 +align(4): 16 + 17 +// D3DCOLOR is equivalent to D3DFMT_A8R8G8B8 18 +alias TypeDef!(uint) D3DCOLOR; 19 + 20 +// maps unsigned 8 bits/channel to D3DCOLOR 21 +D3DCOLOR D3DCOLOR_ARGB(ubyte a,ubyte r,ubyte g,ubyte b) { return cast(D3DCOLOR)((a<<24)|(r<<16)|(g<<8)|b); } 22 +D3DCOLOR D3DCOLOR_RGBA(ubyte r,ubyte g,ubyte b,ubyte a) { return D3DCOLOR_ARGB(a,r,g,b); } 23 +D3DCOLOR D3DCOLOR_XRGB(ubyte r,ubyte g,ubyte b) { return D3DCOLOR_ARGB(0xff,r,g,b); } 24 + 25 +D3DCOLOR D3DCOLOR_XYUV(ubyte y, ubyte u, ubyte v) { return D3DCOLOR_ARGB(0xff,y,u,v); } 26 +D3DCOLOR D3DCOLOR_AYUV( ubyte a, ubyte y, ubyte u, ubyte v) { return D3DCOLOR_ARGB(a,y,u,v); } 27 + 28 +// maps floating point channels (0.f to 1.f range) to D3DCOLOR 29 +D3DCOLOR D3DCOLOR_COLORVALUE(float r, float g, float b, float a) { return D3DCOLOR_RGBA(cast(ubyte)(r*255.0f),cast(ubyte)(g*255.0f),cast(ubyte)(b*255.0f),cast(ubyte)(a*255.0f)); } 30 + 31 +struct D3DVECTOR { 32 + float x; 33 + float y; 34 + float z; 35 +} 36 + 37 +struct D3DCOLORVALUE { 38 + float r; 39 + float g; 40 + float b; 41 + float a; 42 +} 43 + 44 +struct D3DRECT { 45 + LONG x1; 46 + LONG y1; 47 + LONG x2; 48 + LONG y2; 49 +} 50 + 51 +struct D3DMATRIX { 52 + union { 53 + struct { 54 + float _11, _12, _13, _14; 55 + float _21, _22, _23, _24; 56 + float _31, _32, _33, _34; 57 + float _41, _42, _43, _44; 58 + } 59 + float[4][4] m; 60 + } 61 +} 62 + 63 +struct D3DVIEWPORT9 { 64 + uint X; 65 + uint Y; /* Viewport Top left */ 66 + uint Width; 67 + uint Height; /* Viewport Dimensions */ 68 + float MinZ; /* Min/max of clip Volume */ 69 + float MaxZ; 70 +} 71 + 72 +/* 73 + * Values for clip fields. 74 + */ 75 + 76 +// Max number of user clipping planes, supported in D3D. 77 +const D3DMAXUSERCLIPPLANES = 32; 78 + 79 +// These bits could be ORed together to use with D3DRS_CLIPPLANEENABLE 80 +// 81 +const D3DCLIPPLANE0 = (1<<0); 82 +const D3DCLIPPLANE1 = (1<<1); 83 +const D3DCLIPPLANE2 = (1<<2); 84 +const D3DCLIPPLANE3 = (1<<3); 85 +const D3DCLIPPLANE4 = (1<<4); 86 +const D3DCLIPPLANE5 = (1<<5); 87 + 88 +// The following bits are used in the ClipUnion and ClipIntersection 89 +// members of the D3DCLIPSTATUS9 90 +// 91 + 92 +const D3DCS_LEFT = 0x00000001L; 93 +const D3DCS_RIGHT = 0x00000002L; 94 +const D3DCS_TOP = 0x00000004L; 95 +const D3DCS_BOTTOM = 0x00000008L; 96 +const D3DCS_FRONT = 0x00000010L; 97 +const D3DCS_BACK = 0x00000020L; 98 +const D3DCS_PLANE0 = 0x00000040L; 99 +const D3DCS_PLANE1 = 0x00000080L; 100 +const D3DCS_PLANE2 = 0x00000100L; 101 +const D3DCS_PLANE3 = 0x00000200L; 102 +const D3DCS_PLANE4 = 0x00000400L; 103 +const D3DCS_PLANE5 = 0x00000800L; 104 + 105 +const D3DCS_ALL = D3DCS_LEFT | 106 + D3DCS_RIGHT | 107 + D3DCS_TOP | 108 + D3DCS_BOTTOM | 109 + D3DCS_FRONT | 110 + D3DCS_BACK | 111 + D3DCS_PLANE0 | 112 + D3DCS_PLANE1 | 113 + D3DCS_PLANE2 | 114 + D3DCS_PLANE3 | 115 + D3DCS_PLANE4 | 116 + D3DCS_PLANE5; 117 + 118 +struct D3DCLIPSTATUS9 { 119 + uint ClipUnion; 120 + uint ClipIntersection; 121 +} 122 + 123 +struct D3DMATERIAL9 { 124 + D3DCOLORVALUE Diffuse; /* Diffuse color RGBA */ 125 + D3DCOLORVALUE Ambient; /* Ambient color RGB */ 126 + D3DCOLORVALUE Specular; /* Specular 'shininess' */ 127 + D3DCOLORVALUE Emissive; /* Emissive color RGB */ 128 + float Power; /* Sharpness if specular highlight */ 129 +} 130 + 131 +enum : uint { 132 + D3DLIGHT_POINT = 1, 133 + D3DLIGHT_SPOT = 2, 134 + D3DLIGHT_DIRECTIONAL = 3 135 +} 136 +alias TypeDef!(uint) D3DLIGHTTYPE; 137 + 138 +struct D3DLIGHT9 { 139 + D3DLIGHTTYPE Type; /* Type of light source */ 140 + D3DCOLORVALUE Diffuse; /* Diffuse color of light */ 141 + D3DCOLORVALUE Specular; /* Specular color of light */ 142 + D3DCOLORVALUE Ambient; /* Ambient color of light */ 143 + D3DVECTOR Position; /* Position in world space */ 144 + D3DVECTOR Direction; /* Direction in world space */ 145 + float Range; /* Cutoff range */ 146 + float Falloff; /* Falloff */ 147 + float Attenuation0; /* Constant attenuation */ 148 + float Attenuation1; /* Linear attenuation */ 149 + float Attenuation2; /* Quadratic attenuation */ 150 + float Theta; /* Inner angle of spotlight cone */ 151 + float Phi; /* Outer angle of spotlight cone */ 152 +} 153 + 154 +/* 155 + * Options for clearing 156 + */ 157 +const D3DCLEAR_TARGET = 0x00000001L; /* Clear target surface */ 158 +const D3DCLEAR_ZBUFFER = 0x00000002L; /* Clear target z buffer */ 159 +const D3DCLEAR_STENCIL = 0x00000004L; /* Clear stencil planes */ 160 + 161 +/* 162 + * The following defines the rendering states 163 + */ 164 + 165 +enum : D3DSHADEMODE { 166 + D3DSHADE_FLAT = 1, 167 + D3DSHADE_GOURAUD = 2, 168 + D3DSHADE_PHONG = 3 169 +} 170 +alias TypeDef!(uint) D3DSHADEMODE; 171 + 172 +enum : D3DFILLMODE { 173 + D3DFILL_POINT = 1, 174 + D3DFILL_WIREFRAME = 2, 175 + D3DFILL_SOLID = 3 176 +} 177 +alias TypeDef!(uint) D3DFILLMODE; 178 + 179 +enum : D3DBLEND { 180 + D3DBLEND_ZERO = 1, 181 + D3DBLEND_ONE = 2, 182 + D3DBLEND_SRCCOLOR = 3, 183 + D3DBLEND_INVSRCCOLOR = 4, 184 + D3DBLEND_SRCALPHA = 5, 185 + D3DBLEND_INVSRCALPHA = 6, 186 + D3DBLEND_DESTALPHA = 7, 187 + D3DBLEND_INVDESTALPHA = 8, 188 + D3DBLEND_DESTCOLOR = 9, 189 + D3DBLEND_INVDESTCOLOR = 10, 190 + D3DBLEND_SRCALPHASAT = 11, 191 + D3DBLEND_BOTHSRCALPHA = 12, 192 + D3DBLEND_BOTHINVSRCALPHA = 13, 193 + D3DBLEND_BLENDFACTOR = 14, /* Only supported if D3DPBLENDCAPS_BLENDFACTOR is on */ 194 + D3DBLEND_INVBLENDFACTOR = 15, /* Only supported if D3DPBLENDCAPS_BLENDFACTOR is on */ 195 + D3DBLEND_SRCCOLOR2 = 16, 196 + D3DBLEND_INVSRCCOLOR2 = 17 197 +} 198 +alias TypeDef!(uint) D3DBLEND; 199 + 200 +enum : D3DBLENDOP { 201 + D3DBLENDOP_ADD = 1, 202 + D3DBLENDOP_SUBTRACT = 2, 203 + D3DBLENDOP_REVSUBTRACT = 3, 204 + D3DBLENDOP_MIN = 4, 205 + D3DBLENDOP_MAX = 5 206 +} 207 +alias TypeDef!(uint) D3DBLENDOP; 208 + 209 +enum : D3DTEXTUREADDRESS { 210 + D3DTADDRESS_WRAP = 1, 211 + D3DTADDRESS_MIRROR = 2, 212 + D3DTADDRESS_CLAMP = 3, 213 + D3DTADDRESS_BORDER = 4, 214 + D3DTADDRESS_MIRRORONCE = 5 215 +} 216 +alias TypeDef!(uint) D3DTEXTUREADDRESS; 217 + 218 +enum : D3DCULL { 219 + D3DCULL_NONE = 1, 220 + D3DCULL_CW = 2, 221 + D3DCULL_CCW = 3 222 +} 223 +alias TypeDef!(uint) D3DCULL; 224 + 225 +enum : D3DCMPFUNC { 226 + D3DCMP_NEVER = 1, 227 + D3DCMP_LESS = 2, 228 + D3DCMP_EQUAL = 3, 229 + D3DCMP_LESSEQUAL = 4, 230 + D3DCMP_GREATER = 5, 231 + D3DCMP_NOTEQUAL = 6, 232 + D3DCMP_GREATEREQUAL = 7, 233 + D3DCMP_ALWAYS = 8 234 +} 235 +alias TypeDef!(uint) D3DCMPFUNC; 236 + 237 +enum : D3DSTENCILOP { 238 + D3DSTENCILOP_KEEP = 1, 239 + D3DSTENCILOP_ZERO = 2, 240 + D3DSTENCILOP_REPLACE = 3, 241 + D3DSTENCILOP_INCRSAT = 4, 242 + D3DSTENCILOP_DECRSAT = 5, 243 + D3DSTENCILOP_INVERT = 6, 244 + D3DSTENCILOP_INCR = 7, 245 + D3DSTENCILOP_DECR = 8 246 +} 247 +alias TypeDef!(uint) D3DSTENCILOP; 248 + 249 +enum : D3DFOGMODE { 250 + D3DFOG_NONE = 0, 251 + D3DFOG_EXP = 1, 252 + D3DFOG_EXP2 = 2, 253 + D3DFOG_LINEAR = 3 254 +} 255 +alias TypeDef!(uint) D3DFOGMODE; 256 + 257 +enum : D3DZBUFFERTYPE { 258 + D3DZB_FALSE = 0, 259 + D3DZB_TRUE = 1, // Z buffering 260 + D3DZB_USEW = 2 // W buffering 261 +} 262 +alias TypeDef!(uint) D3DZBUFFERTYPE; 263 + 264 +// Primitives supported by draw-primitive API 265 +enum : D3DPRIMITIVETYPE { 266 + D3DPT_POINTLIST = 1, 267 + D3DPT_LINELIST = 2, 268 + D3DPT_LINESTRIP = 3, 269 + D3DPT_TRIANGLELIST = 4, 270 + D3DPT_TRIANGLESTRIP = 5, 271 + D3DPT_TRIANGLEFAN = 6 272 +} 273 +alias TypeDef!(uint) D3DPRIMITIVETYPE; 274 + 275 +D3DTRANSFORMSTATETYPE D3DTS_WORLDMATRIX(uint index) { return cast(D3DTRANSFORMSTATETYPE)(index + 256); } 276 +template T_D3DTS_WORLDMATRIX(uint index) { 277 + const D3DTRANSFORMSTATETYPE T_D3DTS_WORLDMATRIX = index + 256; 278 +} 279 + 280 +enum : D3DTRANSFORMSTATETYPE { 281 + D3DTS_VIEW = 2, 282 + D3DTS_PROJECTION = 3, 283 + D3DTS_TEXTURE0 = 16, 284 + D3DTS_TEXTURE1 = 17, 285 + D3DTS_TEXTURE2 = 18, 286 + D3DTS_TEXTURE3 = 19, 287 + D3DTS_TEXTURE4 = 20, 288 + D3DTS_TEXTURE5 = 21, 289 + D3DTS_TEXTURE6 = 22, 290 + D3DTS_TEXTURE7 = 23, 291 + D3DTS_WORLD = T_D3DTS_WORLDMATRIX!(0), 292 + D3DTS_WORLD1 = T_D3DTS_WORLDMATRIX!(1), 293 + D3DTS_WORLD2 = T_D3DTS_WORLDMATRIX!(2), 294 + D3DTS_WORLD3 = T_D3DTS_WORLDMATRIX!(3) 295 +} 296 +alias TypeDef!(uint) D3DTRANSFORMSTATETYPE; 297 + 298 +enum : D3DRENDERSTATETYPE { 299 + D3DRS_ZENABLE = 7, /* D3DZBUFFERTYPE (or TRUE/FALSE for legacy) */ 300 + D3DRS_FILLMODE = 8, /* D3DFILLMODE */ 301 + D3DRS_SHADEMODE = 9, /* D3DSHADEMODE */ 302 + D3DRS_ZWRITEENABLE = 14, /* TRUE to enable z writes */ 303 + D3DRS_ALPHATESTENABLE = 15, /* TRUE to enable alpha tests */ 304 + D3DRS_LASTPIXEL = 16, /* TRUE for last-pixel on lines */ 305 + D3DRS_SRCBLEND = 19, /* D3DBLEND */ 306 + D3DRS_DESTBLEND = 20, /* D3DBLEND */ 307 + D3DRS_CULLMODE = 22, /* D3DCULL */ 308 + D3DRS_ZFUNC = 23, /* D3DCMPFUNC */ 309 + D3DRS_ALPHAREF = 24, /* D3DFIXED */ 310 + D3DRS_ALPHAFUNC = 25, /* D3DCMPFUNC */ 311 + D3DRS_DITHERENABLE = 26, /* TRUE to enable dithering */ 312 + D3DRS_ALPHABLENDENABLE = 27, /* TRUE to enable alpha blending */ 313 + D3DRS_FOGENABLE = 28, /* TRUE to enable fog blending */ 314 + D3DRS_SPECULARENABLE = 29, /* TRUE to enable specular */ 315 + D3DRS_FOGCOLOR = 34, /* D3DCOLOR */ 316 + D3DRS_FOGTABLEMODE = 35, /* D3DFOGMODE */ 317 + D3DRS_FOGSTART = 36, /* Fog start (for both vertex and pixel fog) */ 318 + D3DRS_FOGEND = 37, /* Fog end */ 319 + D3DRS_FOGDENSITY = 38, /* Fog density */ 320 + D3DRS_RANGEFOGENABLE = 48, /* Enables range-based fog */ 321 + D3DRS_STENCILENABLE = 52, /* BOOL enable/disable stenciling */ 322 + D3DRS_STENCILFAIL = 53, /* D3DSTENCILOP to do if stencil test fails */ 323 + D3DRS_STENCILZFAIL = 54, /* D3DSTENCILOP to do if stencil test passes and Z test fails */ 324 + D3DRS_STENCILPASS = 55, /* D3DSTENCILOP to do if both stencil and Z tests pass */ 325 + D3DRS_STENCILFUNC = 56, /* D3DCMPFUNC fn. Stencil Test passes if ((ref & mask) stencilfn (stencil & mask)) is true */ 326 + D3DRS_STENCILREF = 57, /* Reference value used in stencil test */ 327 + D3DRS_STENCILMASK = 58, /* Mask value used in stencil test */ 328 + D3DRS_STENCILWRITEMASK = 59, /* Write mask applied to values written to stencil buffer */ 329 + D3DRS_TEXTUREFACTOR = 60, /* D3DCOLOR used for multi-texture blend */ 330 + D3DRS_WRAP0 = 128, /* wrap for 1st texture coord. set */ 331 + D3DRS_WRAP1 = 129, /* wrap for 2nd texture coord. set */ 332 + D3DRS_WRAP2 = 130, /* wrap for 3rd texture coord. set */ 333 + D3DRS_WRAP3 = 131, /* wrap for 4th texture coord. set */ 334 + D3DRS_WRAP4 = 132, /* wrap for 5th texture coord. set */ 335 + D3DRS_WRAP5 = 133, /* wrap for 6th texture coord. set */ 336 + D3DRS_WRAP6 = 134, /* wrap for 7th texture coord. set */ 337 + D3DRS_WRAP7 = 135, /* wrap for 8th texture coord. set */ 338 + D3DRS_CLIPPING = 136, 339 + D3DRS_LIGHTING = 137, 340 + D3DRS_AMBIENT = 139, 341 + D3DRS_FOGVERTEXMODE = 140, 342 + D3DRS_COLORVERTEX = 141, 343 + D3DRS_LOCALVIEWER = 142, 344 + D3DRS_NORMALIZENORMALS = 143, 345 + D3DRS_DIFFUSEMATERIALSOURCE = 145, 346 + D3DRS_SPECULARMATERIALSOURCE = 146, 347 + D3DRS_AMBIENTMATERIALSOURCE = 147, 348 + D3DRS_EMISSIVEMATERIALSOURCE = 148, 349 + D3DRS_VERTEXBLEND = 151, 350 + D3DRS_CLIPPLANEENABLE = 152, 351 + D3DRS_POINTSIZE = 154, /* float point size */ 352 + D3DRS_POINTSIZE_MIN = 155, /* float point size min threshold */ 353 + D3DRS_POINTSPRITEENABLE = 156, /* BOOL point texture coord control */ 354 + D3DRS_POINTSCALEENABLE = 157, /* BOOL point size scale enable */ 355 + D3DRS_POINTSCALE_A = 158, /* float point attenuation A value */ 356 + D3DRS_POINTSCALE_B = 159, /* float point attenuation B value */ 357 + D3DRS_POINTSCALE_C = 160, /* float point attenuation C value */ 358 + D3DRS_MULTISAMPLEANTIALIAS = 161, // BOOL - set to do FSAA with multisample buffer 359 + D3DRS_MULTISAMPLEMASK = 162, // DWORD - per-sample enable/disable 360 + D3DRS_PATCHEDGESTYLE = 163, // Sets whether patch edges will use float style tessellation 361 + D3DRS_DEBUGMONITORTOKEN = 165, // DEBUG ONLY - token to debug monitor 362 + D3DRS_POINTSIZE_MAX = 166, /* float point size max threshold */ 363 + D3DRS_INDEXEDVERTEXBLENDENABLE = 167, 364 + D3DRS_COLORWRITEENABLE = 168, // per-channel write enable 365 + D3DRS_TWEENFACTOR = 170, // float tween factor 366 + D3DRS_BLENDOP = 171, // D3DBLENDOP setting 367 + D3DRS_POSITIONDEGREE = 172, // NPatch position interpolation degree. D3DDEGREE_LINEAR or D3DDEGREE_CUBIC (default) 368 + D3DRS_NORMALDEGREE = 173, // NPatch normal interpolation degree. D3DDEGREE_LINEAR (default) or D3DDEGREE_QUADRATIC 369 + D3DRS_SCISSORTESTENABLE = 174, 370 + D3DRS_SLOPESCALEDEPTHBIAS = 175, 371 + D3DRS_ANTIALIASEDLINEENABLE = 176, 372 + D3DRS_MINTESSELLATIONLEVEL = 178, 373 + D3DRS_MAXTESSELLATIONLEVEL = 179, 374 + D3DRS_ADAPTIVETESS_X = 180, 375 + D3DRS_ADAPTIVETESS_Y = 181, 376 + D3DRS_ADAPTIVETESS_Z = 182, 377 + D3DRS_ADAPTIVETESS_W = 183, 378 + D3DRS_ENABLEADAPTIVETESSELLATION = 184, 379 + D3DRS_TWOSIDEDSTENCILMODE = 185, /* BOOL enable/disable 2 sided stenciling */ 380 + D3DRS_CCW_STENCILFAIL = 186, /* D3DSTENCILOP to do if ccw stencil test fails */ 381 + D3DRS_CCW_STENCILZFAIL = 187, /* D3DSTENCILOP to do if ccw stencil test passes and Z test fails */ 382 + D3DRS_CCW_STENCILPASS = 188, /* D3DSTENCILOP to do if both ccw stencil and Z tests pass */ 383 + D3DRS_CCW_STENCILFUNC = 189, /* D3DCMPFUNC fn. ccw Stencil Test passes if ((ref & mask) stencilfn (stencil & mask)) is true */ 384 + D3DRS_COLORWRITEENABLE1 = 190, /* Additional ColorWriteEnables for the devices that support D3DPMISCCAPS_INDEPENDENTWRITEMASKS */ 385 + D3DRS_COLORWRITEENABLE2 = 191, /* Additional ColorWriteEnables for the devices that support D3DPMISCCAPS_INDEPENDENTWRITEMASKS */ 386 + D3DRS_COLORWRITEENABLE3 = 192, /* Additional ColorWriteEnables for the devices that support D3DPMISCCAPS_INDEPENDENTWRITEMASKS */ 387 + D3DRS_BLENDFACTOR = 193, /* D3DCOLOR used for a constant blend factor during alpha blending for devices that support D3DPBLENDCAPS_BLENDFACTOR */ 388 + D3DRS_SRGBWRITEENABLE = 194, /* Enable rendertarget writes to be DE-linearized to SRGB (for formats that expose D3DUSAGE_QUERY_SRGBWRITE) */ 389 + D3DRS_DEPTHBIAS = 195, 390 + D3DRS_WRAP8 = 198, /* Additional wrap states for vs_3_0+ attributes with D3DDECLUSAGE_TEXCOORD */ 391 + D3DRS_WRAP9 = 199, 392 + D3DRS_WRAP10 = 200, 393 + D3DRS_WRAP11 = 201, 394 + D3DRS_WRAP12 = 202, 395 + D3DRS_WRAP13 = 203, 396 + D3DRS_WRAP14 = 204, 397 + D3DRS_WRAP15 = 205, 398 + D3DRS_SEPARATEALPHABLENDENABLE = 206, /* TRUE to enable a separate blending function for the alpha channel */ 399 + D3DRS_SRCBLENDALPHA = 207, /* SRC blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */ 400 + D3DRS_DESTBLENDALPHA = 208, /* DST blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */ 401 + D3DRS_BLENDOPALPHA = 209 /* Blending operation for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */ 402 +} 403 +alias TypeDef!(uint) D3DRENDERSTATETYPE; 404 + 405 +// Maximum number of simultaneous render targets D3D supports 406 +const D3D_MAX_SIMULTANEOUS_RENDERTARGETS = 4; 407 + 408 +// Values for material source 409 +enum : D3DMATERIALCOLORSOURCE { 410 + D3DMCS_MATERIAL = 0, // Color from material is used 411 + D3DMCS_COLOR1 = 1, // Diffuse vertex color is used 412 + D3DMCS_COLOR2 = 2 // Specular vertex color is used 413 +} 414 +alias TypeDef!(uint) D3DMATERIALCOLORSOURCE; 415 + 416 +// Bias to apply to the texture coordinate set to apply a wrap to. 417 +const D3DRENDERSTATE_WRAPBIAS = 128UL; 418 + 419 +/* Flags to construct the WRAP render states */ 420 +const D3DWRAP_U = 0x00000001L; 421 +const D3DWRAP_V = 0x00000002L; 422 +const D3DWRAP_W = 0x00000004L; 423 + 424 +/* Flags to construct the WRAP render states for 1D thru 4D texture coordinates */ 425 +const D3DWRAPCOORD_0 = 0x00000001L; // same as D3DWRAP_U 426 +const D3DWRAPCOORD_1 = 0x00000002L; // same as D3DWRAP_V 427 +const D3DWRAPCOORD_2 = 0x00000004L; // same as D3DWRAP_W 428 +const D3DWRAPCOORD_3 = 0x00000008L; 429 + 430 +/* Flags to construct D3DRS_COLORWRITEENABLE */ 431 +const D3DCOLORWRITEENABLE_RED = (1L<<0); 432 +const D3DCOLORWRITEENABLE_GREEN = (1L<<1); 433 +const D3DCOLORWRITEENABLE_BLUE = (1L<<2); 434 +const D3DCOLORWRITEENABLE_ALPHA = (1L<<3); 435 + 436 +/* 437 + * State enumerants for per-stage processing of fixed function pixel processing 438 + * Two of these affect fixed function vertex processing as well: TEXTURETRANSFORMFLAGS and TEXCOORDINDEX. 439 + */ 440 +enum : D3DTEXTURESTAGESTATETYPE { 441 + D3DTSS_COLOROP = 1, /* D3DTEXTUREOP - per-stage blending controls for color channels */ 442 + D3DTSS_COLORARG1 = 2, /* D3DTA_* (texture arg) */ 443 + D3DTSS_COLORARG2 = 3, /* D3DTA_* (texture arg) */ 444 + D3DTSS_ALPHAOP = 4, /* D3DTEXTUREOP - per-stage blending controls for alpha channel */ 445 + D3DTSS_ALPHAARG1 = 5, /* D3DTA_* (texture arg) */ 446 + D3DTSS_ALPHAARG2 = 6, /* D3DTA_* (texture arg) */ 447 + D3DTSS_BUMPENVMAT00 = 7, /* float (bump mapping matrix) */ 448 + D3DTSS_BUMPENVMAT01 = 8, /* float (bump mapping matrix) */ 449 + D3DTSS_BUMPENVMAT10 = 9, /* float (bump mapping matrix) */ 450 + D3DTSS_BUMPENVMAT11 = 10, /* float (bump mapping matrix) */ 451 + D3DTSS_TEXCOORDINDEX = 11, /* identifies which set of texture coordinates index this texture */ 452 + D3DTSS_BUMPENVLSCALE = 22, /* float scale for bump map luminance */ 453 + D3DTSS_BUMPENVLOFFSET = 23, /* float offset for bump map luminance */ 454 + D3DTSS_TEXTURETRANSFORMFLAGS = 24, /* D3DTEXTURETRANSFORMFLAGS controls texture transform */ 455 + D3DTSS_COLORARG0 = 26, /* D3DTA_* third arg for triadic ops */ 456 + D3DTSS_ALPHAARG0 = 27, /* D3DTA_* third arg for triadic ops */ 457 + D3DTSS_RESULTARG = 28, /* D3DTA_* arg for result (CURRENT or TEMP) */ 458 + D3DTSS_CONSTANT = 32 /* Per-stage constant D3DTA_CONSTANT */ 459 +} 460 +alias TypeDef!(uint) D3DTEXTURESTAGESTATETYPE; 461 + 462 +/* 463 + * State enumerants for per-sampler texture processing. 464 + */ 465 +enum : D3DSAMPLERSTATETYPE { 466 + D3DSAMP_ADDRESSU = 1, /* D3DTEXTUREADDRESS for U coordinate */ 467 + D3DSAMP_ADDRESSV = 2, /* D3DTEXTUREADDRESS for V coordinate */ 468 + D3DSAMP_ADDRESSW = 3, /* D3DTEXTUREADDRESS for W coordinate */ 469 + D3DSAMP_BORDERCOLOR = 4, /* D3DCOLOR */ 470 + D3DSAMP_MAGFILTER = 5, /* D3DTEXTUREFILTER filter to use for magnification */ 471 + D3DSAMP_MINFILTER = 6, /* D3DTEXTUREFILTER filter to use for minification */ 472 + D3DSAMP_MIPFILTER = 7, /* D3DTEXTUREFILTER filter to use between mipmaps during minification */ 473 + D3DSAMP_MIPMAPLODBIAS = 8, /* float Mipmap LOD bias */ 474 + D3DSAMP_MAXMIPLEVEL = 9, /* DWORD 0..(n-1) LOD index of largest map to use (0 == largest) */ 475 + D3DSAMP_MAXANISOTROPY = 10, /* DWORD maximum anisotropy */ 476 + D3DSAMP_SRGBTEXTURE = 11, /* Default = 0 (which means Gamma 1.0, 477 + no correction required.) else correct for 478 + Gamma = 2.2 */ 479 + D3DSAMP_ELEMENTINDEX = 12, /* When multi-element texture is assigned to sampler, this 480 + indicates which element index to use. Default = 0. */ 481 + D3DSAMP_DMAPOFFSET = 13 /* Offset in vertices in the pre-sampled displacement map. 482 + Only valid for D3DDMAPSAMPLER sampler */ 483 +} 484 +alias TypeDef!(uint) D3DSAMPLERSTATETYPE; 485 + 486 +/* Special sampler which is used in the tesselator */ 487 +const D3DDMAPSAMPLER = 256; 488 + 489 +// Samplers used in vertex shaders 490 +const D3DVERTEXTEXTURESAMPLER0 = (D3DDMAPSAMPLER+1); 491 +const D3DVERTEXTEXTURESAMPLER1 = (D3DDMAPSAMPLER+2); 492 +const D3DVERTEXTEXTURESAMPLER2 = (D3DDMAPSAMPLER+3); 493 +const D3DVERTEXTEXTURESAMPLER3 = (D3DDMAPSAMPLER+4); 494 + 495 +// Values, used with D3DTSS_TEXCOORDINDEX, to specify that the vertex data(position 496 +// and normal in the camera space) should be taken as texture coordinates 497 +// Low 16 bits are used to specify texture coordinate index, to take the WRAP mode from 498 +// 499 +const D3DTSS_TCI_PASSTHRU = 0x00000000; 500 +const D3DTSS_TCI_CAMERASPACENORMAL = 0x00010000; 501 +const D3DTSS_TCI_CAMERASPACEPOSITION = 0x00020000; 502 +const D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR = 0x00030000; 503 +const D3DTSS_TCI_SPHEREMAP = 0x00040000; 504 + 505 +/* 506 + * Enumerations for COLOROP and ALPHAOP texture blending operations set in 507 + * texture processing stage controls in D3DTSS. 508 + */ 509 +enum : D3DTEXTUREOP { 510 + // Control 511 + D3DTOP_DISABLE = 1, // disables stage 512 + D3DTOP_SELECTARG1 = 2, // the default 513 + D3DTOP_SELECTARG2 = 3, 514 + 515 + // Modulate 516 + D3DTOP_MODULATE = 4, // multiply args together 517 + D3DTOP_MODULATE2X = 5, // multiply and 1 bit 518 + D3DTOP_MODULATE4X = 6, // multiply and 2 bits 519 + 520 + // Add 521 + D3DTOP_ADD = 7, // add arguments together 522 + D3DTOP_ADDSIGNED = 8, // add with -0.5 bias 523 + D3DTOP_ADDSIGNED2X = 9, // as above but left 1 bit 524 + D3DTOP_SUBTRACT = 10, // Arg1 - Arg2, with no saturation 525 + D3DTOP_ADDSMOOTH = 11, // add 2 args, subtract product 526 + // Arg1 + Arg2 - Arg1*Arg2 527 + // = Arg1 + (1-Arg1)*Arg2 528 + 529 + // Linear alpha blend: Arg1*(Alpha) + Arg2*(1-Alpha) 530 + D3DTOP_BLENDDIFFUSEALPHA = 12, // iterated alpha 531 + D3DTOP_BLENDTEXTUREALPHA = 13, // texture alpha 532 + D3DTOP_BLENDFACTORALPHA = 14, // alpha from D3DRS_TEXTUREFACTOR 533 + 534 + // Linear alpha blend with pre-multiplied arg1 input: Arg1 + Arg2*(1-Alpha) 535 + D3DTOP_BLENDTEXTUREALPHAPM = 15, // texture alpha 536 + D3DTOP_BLENDCURRENTALPHA = 16, // by alpha of current color 537 + 538 + // Specular mapping 539 + D3DTOP_PREMODULATE = 17, // modulate with next texture before use 540 + D3DTOP_MODULATEALPHA_ADDCOLOR = 18, // Arg1.RGB + Arg1.A*Arg2.RGB 541 + // COLOROP only 542 + D3DTOP_MODULATECOLOR_ADDALPHA = 19, // Arg1.RGB*Arg2.RGB + Arg1.A 543 + // COLOROP only 544 + D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20, // (1-Arg1.A)*Arg2.RGB + Arg1.RGB 545 + // COLOROP only 546 + D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21, // (1-Arg1.RGB)*Arg2.RGB + Arg1.A 547 + // COLOROP only 548 + 549 + // Bump mapping 550 + D3DTOP_BUMPENVMAP = 22, // per pixel env map perturbation 551 + D3DTOP_BUMPENVMAPLUMINANCE = 23, // with luminance channel 552 + 553 + // This can do either diffuse or specular bump mapping with correct input. 554 + // Performs the function (Arg1.R*Arg2.R + Arg1.G*Arg2.G + Arg1.B*Arg2.B) 555 + // where each component has been scaled and offset to make it signed. 556 + // The result is replicated into all four (including alpha) channels. 557 + // This is a valid COLOROP only. 558 + D3DTOP_DOTPRODUCT3 = 24, 559 + 560 + // Triadic ops 561 + D3DTOP_MULTIPLYADD = 25, // Arg0 + Arg1*Arg2 562 + D3DTOP_LERP = 26 // (Arg0)*Arg1 + (1-Arg0)*Arg2 563 +} 564 +alias TypeDef!(uint) D3DTEXTUREOP; 565 + 566 +/* 567 + * Values for COLORARG0,1,2, ALPHAARG0,1,2, and RESULTARG texture blending 568 + * operations set in texture processing stage controls in D3DRENDERSTATE. 569 + */ 570 +const D3DTA_SELECTMASK = 0x0000000f; // mask for arg selector 571 +const D3DTA_DIFFUSE = 0x00000000; // select diffuse color (read only) 572 +const D3DTA_CURRENT = 0x00000001; // select stage destination register (read/write) 573 +const D3DTA_TEXTURE = 0x00000002; // select texture color (read only) 574 +const D3DTA_TFACTOR = 0x00000003; // select D3DRS_TEXTUREFACTOR (read only) 575 +const D3DTA_SPECULAR = 0x00000004; // select specular color (read only) 576 +const D3DTA_TEMP = 0x00000005; // select temporary register color (read/write) 577 +const D3DTA_CONSTANT = 0x00000006; // select texture stage constant 578 +const D3DTA_COMPLEMENT = 0x00000010; // take 1.0 - x (read modifier) 579 +const D3DTA_ALPHAREPLICATE = 0x00000020; // replicate alpha to color components (read modifier) 580 + 581 +// 582 +// Values for D3DSAMP_***FILTER texture stage states 583 +// 584 +enum : D3DTEXTUREFILTERTYPE { 585 + D3DTEXF_NONE = 0, // filtering disabled (valid for mip filter only) 586 + D3DTEXF_POINT = 1, // nearest 587 + D3DTEXF_LINEAR = 2, // linear interpolation 588 + D3DTEXF_ANISOTROPIC = 3, // anisotropic 589 + D3DTEXF_PYRAMIDALQUAD = 6, // 4-sample tent 590 + D3DTEXF_GAUSSIANQUAD = 7, // 4-sample gaussian 591 + D3DTEXF_CONVOLUTIONMONO = 8 // Convolution filter for monochrome textures 592 +} 593 +alias TypeDef!(uint) D3DTEXTUREFILTERTYPE; 594 + 595 +/* Bits for Flags in ProcessVertices call */ 596 + 597 +const D3DPV_DONOTCOPYDATA = (1 << 0); 598 + 599 +//------------------------------------------------------------------- 600 + 601 +// Flexible vertex format bits 602 +// 603 +const D3DFVF_RESERVED0 = 0x001; 604 +const D3DFVF_POSITION_MASK = 0x400E; 605 +const D3DFVF_XYZ = 0x002; 606 +const D3DFVF_XYZRHW = 0x004; 607 +const D3DFVF_XYZB1 = 0x006; 608 +const D3DFVF_XYZB2 = 0x008; 609 +const D3DFVF_XYZB3 = 0x00a; 610 +const D3DFVF_XYZB4 = 0x00c; 611 +const D3DFVF_XYZB5 = 0x00e; 612 +const D3DFVF_XYZW = 0x4002; 613 + 614 +const D3DFVF_NORMAL = 0x010; 615 +const D3DFVF_PSIZE = 0x020; 616 +const D3DFVF_DIFFUSE = 0x040; 617 +const D3DFVF_SPECULAR = 0x080; 618 + 619 +const D3DFVF_TEXCOUNT_MASK = 0xf00; 620 +const D3DFVF_TEXCOUNT_SHIFT = 8; 621 +const D3DFVF_TEX0 = 0x000; 622 +const D3DFVF_TEX1 = 0x100; 623 +const D3DFVF_TEX2 = 0x200; 624 +const D3DFVF_TEX3 = 0x300; 625 +const D3DFVF_TEX4 = 0x400; 626 +const D3DFVF_TEX5 = 0x500; 627 +const D3DFVF_TEX6 = 0x600; 628 +const D3DFVF_TEX7 = 0x700; 629 +const D3DFVF_TEX8 = 0x800; 630 + 631 +const D3DFVF_LASTBETA_UBYTE4 = 0x1000; 632 +const D3DFVF_LASTBETA_D3DCOLOR = 0x8000; 633 + 634 +const D3DFVF_RESERVED2 = 0x6000; // 2 reserved bits 635 + 636 +//--------------------------------------------------------------------- 637 +// Vertex Shaders 638 +// 639 + 640 +// Vertex shader declaration 641 + 642 +// Vertex element semantics 643 +// 644 +enum : D3DDECLUSAGE { 645 + D3DDECLUSAGE_POSITION = 0, 646 + D3DDECLUSAGE_BLENDWEIGHT, // 1 647 + D3DDECLUSAGE_BLENDINDICES, // 2 648 + D3DDECLUSAGE_NORMAL, // 3 649 + D3DDECLUSAGE_PSIZE, // 4 650 + D3DDECLUSAGE_TEXCOORD, // 5 651 + D3DDECLUSAGE_TANGENT, // 6 652 + D3DDECLUSAGE_BINORMAL, // 7 653 + D3DDECLUSAGE_TESSFACTOR, // 8 654 + D3DDECLUSAGE_POSITIONT, // 9 655 + D3DDECLUSAGE_COLOR, // 10 656 + D3DDECLUSAGE_FOG, // 11 657 + D3DDECLUSAGE_DEPTH, // 12 658 + D3DDECLUSAGE_SAMPLE // 13 659 +} 660 +alias TypeDef!(uint) D3DDECLUSAGE; 661 + 662 +const MAXD3DDECLUSAGE = D3DDECLUSAGE_SAMPLE; 663 +const MAXD3DDECLUSAGEINDEX = 15; 664 +const MAXD3DDECLLENGTH = 64; // does not include "end" marker vertex element 665 + 666 +enum : D3DDECLMETHOD { 667 + D3DDECLMETHOD_DEFAULT = 0, 668 + D3DDECLMETHOD_PARTIALU, 669 + D3DDECLMETHOD_PARTIALV, 670 + D3DDECLMETHOD_CROSSUV, // Normal 671 + D3DDECLMETHOD_UV, 672 + D3DDECLMETHOD_LOOKUP, // Lookup a displacement map 673 + D3DDECLMETHOD_LOOKUPPRESAMPLED // Lookup a pre-sampled displacement map 674 +} 675 +alias TypeDef!(uint) D3DDECLMETHOD; 676 + 677 +const MAXD3DDECLMETHOD = D3DDECLMETHOD_LOOKUPPRESAMPLED; 678 + 679 +// Declarations for _Type fields 680 +// 681 +enum : D3DDECLTYPE { 682 + D3DDECLTYPE_FLOAT1 = 0, // 1D float expanded to (value, 0., 0., 1.) 683 + D3DDECLTYPE_FLOAT2 = 1, // 2D float expanded to (value, value, 0., 1.) 684 + D3DDECLTYPE_FLOAT3 = 2, // 3D float expanded to (value, value, value, 1.) 685 + D3DDECLTYPE_FLOAT4 = 3, // 4D float 686 + D3DDECLTYPE_D3DCOLOR = 4, // 4D packed unsigned bytes mapped to 0. to 1. range 687 + // Input is in D3DCOLOR format (ARGB) expanded to (R, G, B, A) 688 + D3DDECLTYPE_UBYTE4 = 5, // 4D unsigned byte 689 + D3DDECLTYPE_SHORT2 = 6, // 2D signed short expanded to (value, value, 0., 1.) 690 + D3DDECLTYPE_SHORT4 = 7, // 4D signed short 691 + 692 +// The following types are valid only with vertex shaders >= 2.0 693 + 694 + 695 + D3DDECLTYPE_UBYTE4N = 8, // Each of 4 bytes is normalized by dividing to 255.0 696 + D3DDECLTYPE_SHORT2N = 9, // 2D signed short normalized (v[0]/32767.0,v[1]/32767.0,0,1) 697 + D3DDECLTYPE_SHORT4N = 10, // 4D signed short normalized (v[0]/32767.0,v[1]/32767.0,v[2]/32767.0,v[3]/32767.0) 698 + D3DDECLTYPE_USHORT2N = 11, // 2D unsigned short normalized (v[0]/65535.0,v[1]/65535.0,0,1) 699 + D3DDECLTYPE_USHORT4N = 12, // 4D unsigned short normalized (v[0]/65535.0,v[1]/65535.0,v[2]/65535.0,v[3]/65535.0) 700 + D3DDECLTYPE_UDEC3 = 13, // 3D unsigned 10 10 10 format expanded to (value, value, value, 1) 701 + D3DDECLTYPE_DEC3N = 14, // 3D signed 10 10 10 format normalized and expanded to (v[0]/511.0, v[1]/511.0, v[2]/511.0, 1) 702 + D3DDECLTYPE_FLOAT16_2 = 15, // Two 16-bit floating point values, expanded to (value, value, 0, 1) 703 + D3DDECLTYPE_FLOAT16_4 = 16, // Four 16-bit floating point values 704 + D3DDECLTYPE_UNUSED = 17 // When the type field in a decl is unused. 705 +} 706 +alias TypeDef!(uint) D3DDECLTYPE; 707 + 708 +const MAXD3DDECLTYPE = D3DDECLTYPE_UNUSED; 709 + 710 +struct D3DVERTEXELEMENT9 711 +{ 712 + ushort Stream; // Stream index 713 + ushort Offset; // Offset in the stream in bytes 714 + ubyte Type; // Data type 715 + ubyte Method; // Processing method 716 + ubyte Usage; // Semantics 717 + ubyte UsageIndex; // Semantic index 718 +} 719 +alias D3DVERTEXELEMENT9 *LPD3DVERTEXELEMENT9; 720 + 721 +// This is used to initialize the last vertex element in a vertex declaration 722 +// array 723 +// 724 +template D3DDECL_END() { 725 + static const D3DVERTEXELEMENT9 D3DDECL_END = { 0xFF,0,D3DDECLTYPE_UNUSED,0,0,0 }; 726 +} 727 + 728 +// Maximum supported number of texture coordinate sets 729 +const D3DDP_MAXTEXCOORD = 8; 730 + 731 +//--------------------------------------------------------------------- 732 +// Values for IDirect3DDevice9::SetStreamSourceFreq's Setting parameter 733 +//--------------------------------------------------------------------- 734 +const D3DSTREAMSOURCE_INDEXEDDATA = (1<<30); 735 +const D3DSTREAMSOURCE_INSTANCEDATA = (2<<30); 736 + 737 + 738 + 739 +//--------------------------------------------------------------------- 740 +// 741 +// The internal format of Pixel Shader (PS) & Vertex Shader (VS) 742 +// Instruction Tokens is defined in the Direct3D Device Driver Kit 743 +// 744 +//--------------------------------------------------------------------- 745 + 746 +// 747 +// Instruction Token Bit Definitions 748 +// 749 +const D3DSI_OPCODE_MASK = 0x0000FFFF; 750 + 751 +const D3DSI_INSTLENGTH_MASK = 0x0F000000; 752 +const D3DSI_INSTLENGTH_SHIFT = 24; 753 + 754 +enum : D3DSHADER_INSTRUCTION_OPCODE_TYPE { 755 + D3DSIO_NOP = 0, 756 + D3DSIO_MOV , 757 + D3DSIO_ADD , 758 + D3DSIO_SUB , 759 + D3DSIO_MAD , 760 + D3DSIO_MUL , 761 + D3DSIO_RCP , 762 + D3DSIO_RSQ , 763 + D3DSIO_DP3 , 764 + D3DSIO_DP4 , 765 + D3DSIO_MIN , 766 + D3DSIO_MAX , 767 + D3DSIO_SLT , 768 + D3DSIO_SGE , 769 + D3DSIO_EXP , 770 + D3DSIO_LOG , 771 + D3DSIO_LIT , 772 + D3DSIO_DST , 773 + D3DSIO_LRP , 774 + D3DSIO_FRC , 775 + D3DSIO_M4x4 , 776 + D3DSIO_M4x3 , 777 + D3DSIO_M3x4 , 778 + D3DSIO_M3x3 , 779 + D3DSIO_M3x2 , 780 + D3DSIO_CALL , 781 + D3DSIO_CALLNZ , 782 + D3DSIO_LOOP , 783 + D3DSIO_RET , 784 + D3DSIO_ENDLOOP , 785 + D3DSIO_LABEL , 786 + D3DSIO_DCL , 787 + D3DSIO_POW , 788 + D3DSIO_CRS , 789 + D3DSIO_SGN , 790 + D3DSIO_ABS , 791 + D3DSIO_NRM , 792 + D3DSIO_SINCOS , 793 + D3DSIO_REP , 794 + D3DSIO_ENDREP , 795 + D3DSIO_IF , 796 + D3DSIO_IFC , 797 + D3DSIO_ELSE , 798 + D3DSIO_ENDIF , 799 + D3DSIO_BREAK , 800 + D3DSIO_BREAKC , 801 + D3DSIO_MOVA , 802 + D3DSIO_DEFB , 803 + D3DSIO_DEFI , 804 + 805 + D3DSIO_TEXCOORD = 64, 806 + D3DSIO_TEXKILL , 807 + D3DSIO_TEX , 808 + D3DSIO_TEXBEM , 809 + D3DSIO_TEXBEML , 810 + D3DSIO_TEXREG2AR , 811 + D3DSIO_TEXREG2GB , 812 + D3DSIO_TEXM3x2PAD , 813 + D3DSIO_TEXM3x2TEX , 814 + D3DSIO_TEXM3x3PAD , 815 + D3DSIO_TEXM3x3TEX , 816 + D3DSIO_RESERVED0 , 817 + D3DSIO_TEXM3x3SPEC , 818 + D3DSIO_TEXM3x3VSPEC , 819 + D3DSIO_EXPP , 820 + D3DSIO_LOGP , 821 + D3DSIO_CND , 822 + D3DSIO_DEF , 823 + D3DSIO_TEXREG2RGB , 824 + D3DSIO_TEXDP3TEX , 825 + D3DSIO_TEXM3x2DEPTH , 826 + D3DSIO_TEXDP3 , 827 + D3DSIO_TEXM3x3 , 828 + D3DSIO_TEXDEPTH , 829 + D3DSIO_CMP , 830 + D3DSIO_BEM , 831 + D3DSIO_DP2ADD , 832 + D3DSIO_DSX , 833 + D3DSIO_DSY , 834 + D3DSIO_TEXLDD , 835 + D3DSIO_SETP , 836 + D3DSIO_TEXLDL , 837 + D3DSIO_BREAKP , 838 + 839 + D3DSIO_PHASE = 0xFFFD, 840 + D3DSIO_COMMENT = 0xFFFE, 841 + D3DSIO_END = 0xFFFF 842 +} 843 +alias TypeDef!(uint) D3DSHADER_INSTRUCTION_OPCODE_TYPE; 844 + 845 +//--------------------------------------------------------------------- 846 +// Use these constants with D3DSIO_SINCOS macro as SRC2, SRC3 847 +// 848 +const float[4] D3DSINCOSCONST1 = [-1.5500992e-006f, -2.1701389e-005f, 0.0026041667f, 0.00026041668f]; 849 +const float[4] D3DSINCOSCONST2 = [-0.020833334f, -0.12500000f, 1.0f, 0.50000000f]; 850 + 851 +//--------------------------------------------------------------------- 852 +// Co-Issue Instruction Modifier - if set then this instruction is to be 853 +// issued in parallel with the previous instruction(s) for which this bit 854 +// is not set. 855 +// 856 +const D3DSI_COISSUE = 0x40000000; 857 + 858 +//--------------------------------------------------------------------- 859 +// Opcode specific controls 860 + 861 +const D3DSP_OPCODESPECIFICCONTROL_MASK = 0x00ff0000; 862 +const D3DSP_OPCODESPECIFICCONTROL_SHIFT = 16; 863 + 864 +// ps_2_0 texld controls 865 +const D3DSI_TEXLD_PROJECT = (0x01 << D3DSP_OPCODESPECIFICCONTROL_SHIFT); 866 +const D3DSI_TEXLD_BIAS = (0x02 << D3DSP_OPCODESPECIFICCONTROL_SHIFT); 867 + 868 +// Comparison for dynamic conditional instruction opcodes (i.e. if, breakc) 869 +enum : D3DSHADER_COMPARISON { 870 + // < = > 871 + D3DSPC_RESERVED0= 0, // 0 0 0 872 + D3DSPC_GT = 1, // 0 0 1 873 + D3DSPC_EQ = 2, // 0 1 0 874 + D3DSPC_GE = 3, // 0 1 1 875 + D3DSPC_LT = 4, // 1 0 0 876 + D3DSPC_NE = 5, // 1 0 1 877 + D3DSPC_LE = 6, // 1 1 0 878 + D3DSPC_RESERVED1= 7 // 1 1 1 879 +} 880 +alias TypeDef!(uint) D3DSHADER_COMPARISON; 881 + 882 +// Comparison is part of instruction opcode token: 883 +const D3DSHADER_COMPARISON_SHIFT = D3DSP_OPCODESPECIFICCONTROL_SHIFT; 884 +const D3DSHADER_COMPARISON_MASK = (0x7<<D3DSHADER_COMPARISON_SHIFT); 885 + 886 +//--------------------------------------------------------------------- 887 +// Predication flags on instruction token 888 +const D3DSHADER_INSTRUCTION_PREDICATED = (0x1 << 28); 889 + 890 +//--------------------------------------------------------------------- 891 +// DCL Info Token Controls 892 + 893 +// For dcl info tokens requiring a semantic (usage + index) 894 +const D3DSP_DCL_USAGE_SHIFT = 0; 895 +const D3DSP_DCL_USAGE_MASK = 0x0000000f; 896 + 897 +const D3DSP_DCL_USAGEINDEX_SHIFT = 16; 898 +const D3DSP_DCL_USAGEINDEX_MASK = 0x000f0000; 899 + 900 +// DCL pixel shader sampler info token. 901 +const D3DSP_TEXTURETYPE_SHIFT = 27; 902 +const D3DSP_TEXTURETYPE_MASK = 0x78000000; 903 + 904 +enum : D3DSAMPLER_TEXTURE_TYPE { 905 + D3DSTT_UNKNOWN = 0<<D3DSP_TEXTURETYPE_SHIFT, // uninitialized value 906 + D3DSTT_2D = 2<<D3DSP_TEXTURETYPE_SHIFT, // dcl_2d s# (for declaring a 2-D texture) 907 + D3DSTT_CUBE = 3<<D3DSP_TEXTURETYPE_SHIFT, // dcl_cube s# (for declaring a cube texture) 908 + D3DSTT_VOLUME = 4<<D3DSP_TEXTURETYPE_SHIFT // dcl_volume s# (for declaring a volume texture) 909 +} 910 +alias TypeDef!(uint) D3DSAMPLER_TEXTURE_TYPE; 911 + 912 +//--------------------------------------------------------------------- 913 +// Parameter Token Bit Definitions 914 +// 915 +const D3DSP_REGNUM_MASK = 0x000007FF; 916 + 917 +// destination parameter write mask 918 +const D3DSP_WRITEMASK_0 = 0x00010000; // Component 0 (X;Red) 919 +const D3DSP_WRITEMASK_1 = 0x00020000; // Component 1 (Y;Green) 920 +const D3DSP_WRITEMASK_2 = 0x00040000; // Component 2 (Z;Blue) 921 +const D3DSP_WRITEMASK_3 = 0x00080000; // Component 3 (W;Alpha) 922 +const D3DSP_WRITEMASK_ALL = 0x000F0000; // All Components 923 + 924 +// destination parameter modifiers 925 +const D3DSP_DSTMOD_SHIFT = 20; 926 +const D3DSP_DSTMOD_MASK = 0x00F00000; 927 + 928 +// Bit masks for destination parameter modifiers 929 +const D3DSPDM_NONE = (0<<D3DSP_DSTMOD_SHIFT); // nop 930 +const D3DSPDM_SATURATE = (1<<D3DSP_DSTMOD_SHIFT); // clamp to 0. to 1. range 931 +const D3DSPDM_PARTIALPRECISION = (2<<D3DSP_DSTMOD_SHIFT); // Partial precision hint 932 +const D3DSPDM_MSAMPCENTROID = (4<<D3DSP_DSTMOD_SHIFT); // Relevant to multisampling only: 933 + // When the pixel center is not covered, sample 934 + // attribute or compute gradients/LOD 935 + // using multisample "centroid" location. 936 + // "Centroid" is some location within the covered 937 + // region of the pixel. 938 + 939 +// destination parameter 940 +const D3DSP_DSTSHIFT_SHIFT = 24; 941 +const D3DSP_DSTSHIFT_MASK = 0x0F000000; 942 + 943 +// destination/source parameter register type 944 +const D3DSP_REGTYPE_SHIFT = 28; 945 +const D3DSP_REGTYPE_SHIFT2 = 8; 946 +const D3DSP_REGTYPE_MASK = 0x70000000; 947 +const D3DSP_REGTYPE_MASK2 = 0x00001800; 948 + 949 +enum : D3DSHADER_PARAM_REGISTER_TYPE { 950 + D3DSPR_TEMP = 0, // Temporary Register File 951 + D3DSPR_INPUT = 1, // Input Register File 952 + D3DSPR_CONST = 2, // Constant Register File 953 + D3DSPR_ADDR = 3, // Address Register (VS) 954 + D3DSPR_TEXTURE = 3, // Texture Register File (PS) 955 + D3DSPR_RASTOUT = 4, // Rasterizer Register File 956 + D3DSPR_ATTROUT = 5, // Attribute Output Register File 957 + D3DSPR_TEXCRDOUT = 6, // Texture Coordinate Output Register File 958 + D3DSPR_OUTPUT = 6, // Output register file for VS3.0+ 959 + D3DSPR_CONSTINT = 7, // Constant Integer Vector Register File 960 + D3DSPR_COLOROUT = 8, // Color Output Register File 961 + D3DSPR_DEPTHOUT = 9, // Depth Output Register File 962 + D3DSPR_SAMPLER = 10, // Sampler State Register File 963 + D3DSPR_CONST2 = 11, // Constant Register File 2048 - 4095 964 + D3DSPR_CONST3 = 12, // Constant Register File 4096 - 6143 965 + D3DSPR_CONST4 = 13, // Constant Register File 6144 - 8191 966 + D3DSPR_CONSTBOOL = 14, // Constant Boolean register file 967 + D3DSPR_LOOP = 15, // Loop counter register file 968 + D3DSPR_TEMPFLOAT16 = 16, // 16-bit float temp register file 969 + D3DSPR_MISCTYPE = 17, // Miscellaneous (single) registers. 970 + D3DSPR_LABEL = 18, // Label 971 + D3DSPR_PREDICATE = 19 // Predicate register 972 +} 973 +alias TypeDef!(uint) D3DSHADER_PARAM_REGISTER_TYPE; 974 + 975 +// The miscellaneous register file (D3DSPR_MISCTYPES) 976 +// contains register types for which there is only ever one 977 +// register (i.e. the register # is not needed). 978 +// Rather than use up additional register types for such 979 +// registers, they are defined 980 +// as particular offsets into the misc. register file: 981 +enum : D3DSHADER_MISCTYPE_OFFSETS { 982 + D3DSMO_POSITION = 0, // Input position x,y,z,rhw (PS) 983 + D3DSMO_FACE = 1, // Floating point primitive area (PS) 984 +} 985 +alias TypeDef!(uint) D3DSHADER_MISCTYPE_OFFSETS; 986 + 987 +// Register offsets in the Rasterizer Register File 988 +// 989 +enum : D3DVS_RASTOUT_OFFSETS { 990 + D3DSRO_POSITION = 0, 991 + D3DSRO_FOG, 992 + D3DSRO_POINT_SIZE 993 +} 994 +alias TypeDef!(uint) D3DVS_RASTOUT_OFFSETS; 995 + 996 +// Source operand addressing modes 997 + 998 +const D3DVS_ADDRESSMODE_SHIFT = 13; 999 +const D3DVS_ADDRESSMODE_MASK = (1 << D3DVS_ADDRESSMODE_SHIFT); 1000 + 1001 +enum : D3DVS_ADDRESSMODE_TYPE { 1002 + D3DVS_ADDRMODE_ABSOLUTE = (0 << D3DVS_ADDRESSMODE_SHIFT), 1003 + D3DVS_ADDRMODE_RELATIVE = (1 << D3DVS_ADDRESSMODE_SHIFT) 1004 +} 1005 +alias TypeDef!(uint) D3DVS_ADDRESSMODE_TYPE; 1006 + 1007 +const D3DSHADER_ADDRESSMODE_SHIFT = 13; 1008 +const D3DSHADER_ADDRESSMODE_MASK = (1 << D3DSHADER_ADDRESSMODE_SHIFT); 1009 + 1010 +enum : D3DSHADER_ADDRESSMODE_TYPE { 1011 + D3DSHADER_ADDRMODE_ABSOLUTE = (0 << D3DSHADER_ADDRESSMODE_SHIFT), 1012 + D3DSHADER_ADDRMODE_RELATIVE = (1 << D3DSHADER_ADDRESSMODE_SHIFT) 1013 +} 1014 +alias TypeDef!(uint) D3DSHADER_ADDRESSMODE_TYPE; 1015 + 1016 +// Source operand swizzle definitions 1017 +// 1018 +const D3DVS_SWIZZLE_SHIFT = 16; 1019 +const D3DVS_SWIZZLE_MASK = 0x00FF0000; 1020 + 1021 +// The following bits define where to take component X from: 1022 + 1023 +const D3DVS_X_X = (0<<D3DVS_SWIZZLE_SHIFT); 1024 +const D3DVS_X_Y = (1<<D3DVS_SWIZZLE_SHIFT); 1025 +const D3DVS_X_Z = (2<<D3DVS_SWIZZLE_SHIFT); 1026 +const D3DVS_X_W = (3<<D3DVS_SWIZZLE_SHIFT); 1027 + 1028 +// The following bits define where to take component Y from: 1029 + 1030 +const D3DVS_Y_X = (0<<(D3DVS_SWIZZLE_SHIFT+2)); 1031 +const D3DVS_Y_Y = (1<<(D3DVS_SWIZZLE_SHIFT+2)); 1032 +const D3DVS_Y_Z = (2<<(D3DVS_SWIZZLE_SHIFT+2)); 1033 +const D3DVS_Y_W = (3<<(D3DVS_SWIZZLE_SHIFT+2)); 1034 + 1035 +// The following bits define where to take component Z from: 1036 + 1037 +const D3DVS_Z_X = (0<<(D3DVS_SWIZZLE_SHIFT+4)); 1038 +const D3DVS_Z_Y = (1<<(D3DVS_SWIZZLE_SHIFT+4)); 1039 +const D3DVS_Z_Z = (2<<(D3DVS_SWIZZLE_SHIFT+4)); 1040 +const D3DVS_Z_W = (3<<(D3DVS_SWIZZLE_SHIFT+4)); 1041 + 1042 +// The following bits define where to take component W from: 1043 + 1044 +const D3DVS_W_X = (0<<(D3DVS_SWIZZLE_SHIFT+6)); 1045 +const D3DVS_W_Y = (1<<(D3DVS_SWIZZLE_SHIFT+6)); 1046 +const D3DVS_W_Z = (2<<(D3DVS_SWIZZLE_SHIFT+6)); 1047 +const D3DVS_W_W = (3<<(D3DVS_SWIZZLE_SHIFT+6)); 1048 + 1049 +// Value when there is no swizzle (X is taken from X, Y is taken from Y, 1050 +// Z is taken from Z, W is taken from W 1051 +// 1052 +const D3DVS_NOSWIZZLE = (D3DVS_X_X|D3DVS_Y_Y|D3DVS_Z_Z|D3DVS_W_W); 1053 + 1054 +// source parameter swizzle 1055 +const D3DSP_SWIZZLE_SHIFT = 16; 1056 +const D3DSP_SWIZZLE_MASK = 0x00FF0000; 1057 + 1058 +const D3DSP_NOSWIZZLE = ( (0 << (D3DSP_SWIZZLE_SHIFT + 0)) | 1059 + (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | 1060 + (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | 1061 + (3 << (D3DSP_SWIZZLE_SHIFT + 6)) ); 1062 + 1063 +// pixel-shader swizzle ops 1064 +const D3DSP_REPLICATERED = 1065 + ( (0 << (D3DSP_SWIZZLE_SHIFT + 0)) | 1066 + (0 << (D3DSP_SWIZZLE_SHIFT + 2)) | 1067 + (0 << (D3DSP_SWIZZLE_SHIFT + 4)) | 1068 + (0 << (D3DSP_SWIZZLE_SHIFT + 6)) ); 1069 + 1070 +const D3DSP_REPLICATEGREEN = 1071 + ( (1 << (D3DSP_SWIZZLE_SHIFT + 0)) | 1072 + (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | 1073 + (1 << (D3DSP_SWIZZLE_SHIFT + 4)) | 1074 + (1 << (D3DSP_SWIZZLE_SHIFT + 6)) ); 1075 + 1076 +const D3DSP_REPLICATEBLUE = 1077 + ( (2 << (D3DSP_SWIZZLE_SHIFT + 0)) | 1078 + (2 << (D3DSP_SWIZZLE_SHIFT + 2)) | 1079 + (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | 1080 + (2 << (D3DSP_SWIZZLE_SHIFT + 6)) ); 1081 + 1082 +const D3DSP_REPLICATEALPHA = 1083 + ( (3 << (D3DSP_SWIZZLE_SHIFT + 0)) | 1084 + (3 << (D3DSP_SWIZZLE_SHIFT + 2)) | 1085 + (3 << (D3DSP_SWIZZLE_SHIFT + 4)) | 1086 + (3 << (D3DSP_SWIZZLE_SHIFT + 6)) ); 1087 + 1088 +// source parameter modifiers 1089 +const D3DSP_SRCMOD_SHIFT = 24; 1090 +const D3DSP_SRCMOD_MASK = 0x0F000000; 1091 + 1092 +enum : D3DSHADER_PARAM_SRCMOD_TYPE { 1093 + D3DSPSM_NONE = 0<<D3DSP_SRCMOD_SHIFT, // nop 1094 + D3DSPSM_NEG = 1<<D3DSP_SRCMOD_SHIFT, // negate 1095 + D3DSPSM_BIAS = 2<<D3DSP_SRCMOD_SHIFT, // bias 1096 + D3DSPSM_BIASNEG = 3<<D3DSP_SRCMOD_SHIFT, // bias and negate 1097 + D3DSPSM_SIGN = 4<<D3DSP_SRCMOD_SHIFT, // sign 1098 + D3DSPSM_SIGNNEG = 5<<D3DSP_SRCMOD_SHIFT, // sign and negate 1099 + D3DSPSM_COMP = 6<<D3DSP_SRCMOD_SHIFT, // complement 1100 + D3DSPSM_X2 = 7<<D3DSP_SRCMOD_SHIFT, // *2 1101 + D3DSPSM_X2NEG = 8<<D3DSP_SRCMOD_SHIFT, // *2 and negate 1102 + D3DSPSM_DZ = 9<<D3DSP_SRCMOD_SHIFT, // divide through by z component 1103 + D3DSPSM_DW = 10<<D3DSP_SRCMOD_SHIFT, // divide through by w component 1104 + D3DSPSM_ABS = 11<<D3DSP_SRCMOD_SHIFT, // abs() 1105 + D3DSPSM_ABSNEG = 12<<D3DSP_SRCMOD_SHIFT, // -abs() 1106 + D3DSPSM_NOT = 13<<D3DSP_SRCMOD_SHIFT // for predicate register: "!p0" 1107 +} 1108 +alias TypeDef!(uint) D3DSHADER_PARAM_SRCMOD_TYPE; 1109 + 1110 +// pixel shader version token 1111 +uint D3DPS_VERSION(ubyte _Major, ubyte _Minor) { return (0xFFFF0000|(_Major<<8)|_Minor); } 1112 + 1113 +// vertex shader version token 1114 +uint D3DVS_VERSION(ubyte _Major, ubyte _Minor) { return (0xFFFE0000|(_Major<<8)|_Minor); } 1115 + 1116 +// extract major/minor from version cap 1117 +ubyte D3DSHADER_VERSION_MAJOR(uint _Version) { return cast(ubyte)((_Version>>8)&0xFF); } 1118 +ubyte D3DSHADER_VERSION_MINOR(uint _Version) { return cast(ubyte)((_Version>>0)&0xFF); } 1119 + 1120 +// destination/source parameter register type 1121 +const D3DSI_COMMENTSIZE_SHIFT = 16; 1122 +const D3DSI_COMMENTSIZE_MASK = 0x7FFF0000; 1123 +uint D3DSHADER_COMMENT(ushort _DWordSize) { return (((_DWordSize<<D3DSI_COMMENTSIZE_SHIFT)&D3DSI_COMMENTSIZE_MASK)|D3DSIO_COMMENT); } 1124 + 1125 +// pixel/vertex shader end token 1126 +const D3DPS_END = 0x0000FFFF; 1127 +const D3DVS_END = 0x0000FFFF; 1128 + 1129 + 1130 +//--------------------------------------------------------------------- 1131 + 1132 +// High order surfaces 1133 +// 1134 +enum : D3DBASISTYPE { 1135 + D3DBASIS_BEZIER = 0, 1136 + D3DBASIS_BSPLINE = 1, 1137 + D3DBASIS_CATMULL_ROM = 2 /* In D3D8 this used to be D3DBASIS_INTERPOLATE */ 1138 +} 1139 +alias TypeDef!(uint) D3DBASISTYPE; 1140 + 1141 +enum : D3DDEGREETYPE { 1142 + D3DDEGREE_LINEAR = 1, 1143 + D3DDEGREE_QUADRATIC = 2, 1144 + D3DDEGREE_CUBIC = 3, 1145 + D3DDEGREE_QUINTIC = 5 1146 +} 1147 +alias TypeDef!(uint) D3DDEGREETYPE; 1148 + 1149 +enum : D3DPATCHEDGESTYLE { 1150 + D3DPATCHEDGE_DISCRETE = 0, 1151 + D3DPATCHEDGE_CONTINUOUS = 1 1152 +} 1153 +alias TypeDef!(uint) D3DPATCHEDGESTYLE; 1154 + 1155 +enum : D3DSTATEBLOCKTYPE { 1156 + D3DSBT_ALL = 1, // capture all state 1157 + D3DSBT_PIXELSTATE = 2, // capture pixel state 1158 + D3DSBT_VERTEXSTATE = 3 // capture vertex state 1159 +} 1160 +alias TypeDef!(uint) D3DSTATEBLOCKTYPE; 1161 + 1162 +// The D3DVERTEXBLENDFLAGS type is used with D3DRS_VERTEXBLEND state. 1163 +// 1164 +enum : D3DVERTEXBLENDFLAGS { 1165 + D3DVBF_DISABLE = 0, // Disable vertex blending 1166 + D3DVBF_1WEIGHTS = 1, // 2 matrix blending 1167 + D3DVBF_2WEIGHTS = 2, // 3 matrix blending 1168 + D3DVBF_3WEIGHTS = 3, // 4 matrix blending 1169 + D3DVBF_TWEENING = 255, // blending using D3DRS_TWEENFACTOR 1170 + D3DVBF_0WEIGHTS = 256 // one matrix is used with weight 1.0 1171 +} 1172 +alias TypeDef!(uint) D3DVERTEXBLENDFLAGS; 1173 + 1174 +enum : D3DTEXTURETRANSFORMFLAGS { 1175 + D3DTTFF_DISABLE = 0, // texture coordinates are passed directly 1176 + D3DTTFF_COUNT1 = 1, // rasterizer should expect 1-D texture coords 1177 + D3DTTFF_COUNT2 = 2, // rasterizer should expect 2-D texture coords 1178 + D3DTTFF_COUNT3 = 3, // rasterizer should expect 3-D texture coords 1179 + D3DTTFF_COUNT4 = 4, // rasterizer should expect 4-D texture coords 1180 + D3DTTFF_PROJECTED = 256 // texcoords to be divided by COUNTth element 1181 +} 1182 +alias TypeDef!(uint) D3DTEXTURETRANSFORMFLAGS; 1183 + 1184 +// Macros to set texture coordinate format bits in the FVF id 1185 + 1186 +const D3DFVF_TEXTUREFORMAT2 = 0; // Two floating point values 1187 +const D3DFVF_TEXTUREFORMAT1 = 3; // One floating point value 1188 +const D3DFVF_TEXTUREFORMAT3 = 1; // Three floating point values 1189 +const D3DFVF_TEXTUREFORMAT4 = 2; // Four floating point values 1190 + 1191 +uint D3DFVF_TEXCOORDSIZE3(uint CoordIndex) { return (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16)); } 1192 +uint D3DFVF_TEXCOORDSIZE2(uint CoordIndex) { return (D3DFVF_TEXTUREFORMAT2); } 1193 +uint D3DFVF_TEXCOORDSIZE4(uint CoordIndex) { return (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16)); } 1194 +uint D3DFVF_TEXCOORDSIZE1(uint CoordIndex) { return (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16)); } 1195 + 1196 + 1197 +//--------------------------------------------------------------------- 1198 + 1199 +/* Direct3D9 Device types */ 1200 +enum : D3DDEVTYPE { 1201 + D3DDEVTYPE_HAL = 1, 1202 + D3DDEVTYPE_REF = 2, 1203 + D3DDEVTYPE_SW = 3, 1204 + 1205 + D3DDEVTYPE_NULLREF = 4 1206 +} 1207 +alias TypeDef!(uint) D3DDEVTYPE; 1208 + 1209 +/* Multi-Sample buffer types */ 1210 +enum : D3DMULTISAMPLE_TYPE { 1211 + D3DMULTISAMPLE_NONE = 0, 1212 + D3DMULTISAMPLE_NONMASKABLE = 1, 1213 + D3DMULTISAMPLE_2_SAMPLES = 2, 1214 + D3DMULTISAMPLE_3_SAMPLES = 3, 1215 + D3DMULTISAMPLE_4_SAMPLES = 4, 1216 + D3DMULTISAMPLE_5_SAMPLES = 5, 1217 + D3DMULTISAMPLE_6_SAMPLES = 6, 1218 + D3DMULTISAMPLE_7_SAMPLES = 7, 1219 + D3DMULTISAMPLE_8_SAMPLES = 8, 1220 + D3DMULTISAMPLE_9_SAMPLES = 9, 1221 + D3DMULTISAMPLE_10_SAMPLES = 10, 1222 + D3DMULTISAMPLE_11_SAMPLES = 11, 1223 + D3DMULTISAMPLE_12_SAMPLES = 12, 1224 + D3DMULTISAMPLE_13_SAMPLES = 13, 1225 + D3DMULTISAMPLE_14_SAMPLES = 14, 1226 + D3DMULTISAMPLE_15_SAMPLES = 15, 1227 + D3DMULTISAMPLE_16_SAMPLES = 16 1228 +} 1229 +alias TypeDef!(uint) D3DMULTISAMPLE_TYPE; 1230 + 1231 +/* Formats 1232 + * Most of these names have the following convention: 1233 + * A = Alpha 1234 + * R = Red 1235 + * G = Green 1236 + * B = Blue 1237 + * X = Unused Bits 1238 + * P = Palette 1239 + * L = Luminance 1240 + * U = dU coordinate for BumpMap 1241 + * V = dV coordinate for BumpMap 1242 + * S = Stencil 1243 + * D = Depth (e.g. Z or W buffer) 1244 + * C = Computed from other channels (typically on certain read operations) 1245 + * 1246 + * Further, the order of the pieces are from MSB first; hence 1247 + * D3DFMT_A8L8 indicates that the high byte of this two byte 1248 + * format is alpha. 1249 + * 1250 + * D3DFMT_D16_LOCKABLE indicates: 1251 + * - An integer 16-bit value. 1252 + * - An app-lockable surface. 1253 + * 1254 + * D3DFMT_D32F_LOCKABLE indicates: 1255 + * - An IEEE 754 floating-point value. 1256 + * - An app-lockable surface. 1257 + * 1258 + * All Depth/Stencil formats except D3DFMT_D16_LOCKABLE and D3DFMT_D32F_LOCKABLE indicate: 1259 + * - no particular bit ordering per pixel, and 1260 + * - are not app lockable, and 1261 + * - the driver is allowed to consume more than the indicated 1262 + * number of bits per Depth channel (but not Stencil channel). 1263 + */ 1264 +uint MAKEFOURCC(ubyte ch0, ubyte ch1, ubyte ch2, ubyte ch3) { 1265 + return cast(uint)ch0 | cast(uint)(ch1 << 8) | cast(uint)(ch2 << 16) | cast(uint)(ch3 << 24 ); 1266 +} 1267 +template T_MAKEFOURCC(ubyte ch0, ubyte ch1, ubyte ch2, ubyte ch3) { 1268 + const T_MAKEFOURCC = cast(uint)ch0 | cast(uint)(ch1 << 8) | cast(uint)(ch2 << 16) | cast(uint)(ch3 << 24 ); 1269 +} 1270 + 1271 +enum : D3DFORMAT { 1272 + D3DFMT_UNKNOWN = 0, 1273 + 1274 + D3DFMT_R8G8B8 = 20, 1275 + D3DFMT_A8R8G8B8 = 21, 1276 + D3DFMT_X8R8G8B8 = 22, 1277 + D3DFMT_R5G6B5 = 23, 1278 + D3DFMT_X1R5G5B5 = 24, 1279 + D3DFMT_A1R5G5B5 = 25, 1280 + D3DFMT_A4R4G4B4 = 26, 1281 + D3DFMT_R3G3B2 = 27, 1282 + D3DFMT_A8 = 28, 1283 + D3DFMT_A8R3G3B2 = 29, 1284 + D3DFMT_X4R4G4B4 = 30, 1285 + D3DFMT_A2B10G10R10 = 31, 1286 + D3DFMT_A8B8G8R8 = 32, 1287 + D3DFMT_X8B8G8R8 = 33, 1288 + D3DFMT_G16R16 = 34, 1289 + D3DFMT_A2R10G10B10 = 35, 1290 + D3DFMT_A16B16G16R16 = 36, 1291 + 1292 + D3DFMT_A8P8 = 40, 1293 + D3DFMT_P8 = 41, 1294 + 1295 + D3DFMT_L8 = 50, 1296 + D3DFMT_A8L8 = 51, 1297 + D3DFMT_A4L4 = 52, 1298 + 1299 + D3DFMT_V8U8 = 60, 1300 + D3DFMT_L6V5U5 = 61, 1301 + D3DFMT_X8L8V8U8 = 62, 1302 + D3DFMT_Q8W8V8U8 = 63, 1303 + D3DFMT_V16U16 = 64, 1304 + D3DFMT_A2W10V10U10 = 67, 1305 + 1306 + D3DFMT_UYVY = T_MAKEFOURCC!('U', 'Y', 'V', 'Y'), 1307 + D3DFMT_R8G8_B8G8 = T_MAKEFOURCC!('R', 'G', 'B', 'G'), 1308 + D3DFMT_YUY2 = T_MAKEFOURCC!('Y', 'U', 'Y', '2'), 1309 + D3DFMT_G8R8_G8B8 = T_MAKEFOURCC!('G', 'R', 'G', 'B'), 1310 + D3DFMT_DXT1 = T_MAKEFOURCC!('D', 'X', 'T', '1'), 1311 + D3DFMT_DXT2 = T_MAKEFOURCC!('D', 'X', 'T', '2'), 1312 + D3DFMT_DXT3 = T_MAKEFOURCC!('D', 'X', 'T', '3'), 1313 + D3DFMT_DXT4 = T_MAKEFOURCC!('D', 'X', 'T', '4'), 1314 + D3DFMT_DXT5 = T_MAKEFOURCC!('D', 'X', 'T', '5'), 1315 + 1316 + D3DFMT_D16_LOCKABLE = 70, 1317 + D3DFMT_D32 = 71, 1318 + D3DFMT_D15S1 = 73, 1319 + D3DFMT_D24S8 = 75, 1320 + D3DFMT_D24X8 = 77, 1321 + D3DFMT_D24X4S4 = 79, 1322 + D3DFMT_D16 = 80, 1323 + 1324 + D3DFMT_D32F_LOCKABLE = 82, 1325 + D3DFMT_D24FS8 = 83, 1326 + 1327 + /* Z-Stencil formats valid for CPU access */ 1328 + D3DFMT_D32_LOCKABLE = 84, 1329 + D3DFMT_S8_LOCKABLE = 85, 1330 + 1331 + D3DFMT_L16 = 81, 1332 + 1333 + D3DFMT_VERTEXDATA =100, 1334 + D3DFMT_INDEX16 =101, 1335 + D3DFMT_INDEX32 =102, 1336 + 1337 + D3DFMT_Q16W16V16U16 =110, 1338 + 1339 + D3DFMT_MULTI2_ARGB8 = T_MAKEFOURCC!('M','E','T','1'), 1340 + 1341 + // Floating point surface formats 1342 + 1343 + // s10e5 formats (16-bits per channel) 1344 + D3DFMT_R16F = 111, 1345 + D3DFMT_G16R16F = 112, 1346 + D3DFMT_A16B16G16R16F = 113, 1347 + 1348 + // IEEE s23e8 formats (32-bits per channel) 1349 + D3DFMT_R32F = 114, 1350 + D3DFMT_G32R32F = 115, 1351 + D3DFMT_A32B32G32R32F = 116, 1352 + 1353 + D3DFMT_CxV8U8 = 117, 1354 + 1355 + // Monochrome 1 bit per pixel format 1356 + D3DFMT_A1 = 118, 1357 + 1358 + 1359 + // Binary format indicating that the data has no inherent type 1360 + D3DFMT_BINARYBUFFER = 199 1361 +} 1362 +alias TypeDef!(uint) D3DFORMAT; 1363 + 1364 +/* Display Modes */ 1365 +struct D3DDISPLAYMODE { 1366 + uint Width; 1367 + uint Height; 1368 + uint RefreshRate; 1369 + D3DFORMAT Format; 1370 +} 1371 + 1372 +/* Creation Parameters */ 1373 +struct D3DDEVICE_CREATION_PARAMETERS 1374 +{ 1375 + UINT AdapterOrdinal; 1376 + D3DDEVTYPE DeviceType; 1377 + HWND hFocusWindow; 1378 + DWORD BehaviorFlags; 1379 +} 1380 + 1381 + 1382 +/* SwapEffects */ 1383 +enum : D3DSWAPEFFECT { 1384 + D3DSWAPEFFECT_DISCARD = 1, 1385 + D3DSWAPEFFECT_FLIP = 2, 1386 + D3DSWAPEFFECT_COPY = 3 1387 +} 1388 +alias TypeDef!(uint) D3DSWAPEFFECT; 1389 + 1390 +/* Pool types */ 1391 +enum : D3DPOOL { 1392 + D3DPOOL_DEFAULT = 0, 1393 + D3DPOOL_MANAGED = 1, 1394 + D3DPOOL_SYSTEMMEM = 2, 1395 + D3DPOOL_SCRATCH = 3 1396 +} 1397 +alias TypeDef!(uint) D3DPOOL; 1398 + 1399 + 1400 +/* RefreshRate pre-defines */ 1401 +const D3DPRESENT_RATE_DEFAULT = 0x00000000; 1402 + 1403 + 1404 +/* Resize Optional Parameters */ 1405 +struct D3DPRESENT_PARAMETERS 1406 +{ 1407 + UINT BackBufferWidth; 1408 + UINT BackBufferHeight; 1409 + D3DFORMAT BackBufferFormat; 1410 + UINT BackBufferCount; 1411 + 1412 + D3DMULTISAMPLE_TYPE MultiSampleType; 1413 + DWORD MultiSampleQuality; 1414 + 1415 + D3DSWAPEFFECT SwapEffect; 1416 + HWND hDeviceWindow; 1417 + BOOL Windowed; 1418 + BOOL EnableAutoDepthStencil; 1419 + D3DFORMAT AutoDepthStencilFormat; 1420 + DWORD Flags; 1421 + 1422 + /* FullScreen_RefreshRateInHz must be zero for Windowed mode */ 1423 + UINT FullScreen_RefreshRateInHz; 1424 + UINT PresentationInterval; 1425 +} 1426 + 1427 +// Values for D3DPRESENT_PARAMETERS.Flags 1428 + 1429 +const D3DPRESENTFLAG_LOCKABLE_BACKBUFFER = 0x00000001; 1430 +const D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL = 0x00000002; 1431 +const D3DPRESENTFLAG_DEVICECLIP = 0x00000004; 1432 +const D3DPRESENTFLAG_VIDEO = 0x00000010; 1433 + 1434 +const D3DPRESENTFLAG_NOAUTOROTATE = 0x00000020; 1435 +const D3DPRESENTFLAG_UNPRUNEDMODE = 0x00000040; 1436 + 1437 +/* Gamma Ramp: Same as DX7 */ 1438 + 1439 +struct D3DGAMMARAMP 1440 +{ 1441 + ushort[256] red; 1442 + ushort[256] green; 1443 + ushort[256] blue; 1444 +} 1445 + 1446 +/* Back buffer types */ 1447 +enum : D3DBACKBUFFER_TYPE { 1448 + D3DBACKBUFFER_TYPE_MONO = 0, 1449 + D3DBACKBUFFER_TYPE_LEFT = 1, 1450 + D3DBACKBUFFER_TYPE_RIGHT = 2 1451 +} 1452 +alias TypeDef!(uint) D3DBACKBUFFER_TYPE; 1453 + 1454 +/* Types */ 1455 +enum : D3DRESOURCETYPE { 1456 + D3DRTYPE_SURFACE = 1, 1457 + D3DRTYPE_VOLUME = 2, 1458 + D3DRTYPE_TEXTURE = 3, 1459 + D3DRTYPE_VOLUMETEXTURE = 4, 1460 + D3DRTYPE_CUBETEXTURE = 5, 1461 + D3DRTYPE_VERTEXBUFFER = 6, 1462 + D3DRTYPE_INDEXBUFFER = 7 //if this changes, change _D3DDEVINFO_RESOURCEMANAGER definition 1463 +} 1464 +alias TypeDef!(uint) D3DRESOURCETYPE; 1465 + 1466 +/* Usages */ 1467 +const D3DUSAGE_RENDERTARGET = 0x00000001L; 1468 +const D3DUSAGE_DEPTHSTENCIL = 0x00000002L; 1469 +const D3DUSAGE_DYNAMIC = 0x00000200L; 1470 +const D3DUSAGE_NONSECURE = 0x00800000L; 1471 + 1472 +// When passed to CheckDeviceFormat, D3DUSAGE_AUTOGENMIPMAP may return 1473 +// D3DOK_NOAUTOGEN if the device doesn't support autogeneration for that format. 1474 +// D3DOK_NOAUTOGEN is a success code, not a failure code... the SUCCEEDED and FAILED macros 1475 +// will return true and false respectively for this code. 1476 +const D3DUSAGE_AUTOGENMIPMAP = 0x00000400L; 1477 +const D3DUSAGE_DMAP = 0x00004000L; 1478 + 1479 +// The following usages are valid only for querying CheckDeviceFormat 1480 +const D3DUSAGE_QUERY_LEGACYBUMPMAP = 0x00008000L; 1481 +const D3DUSAGE_QUERY_SRGBREAD = 0x00010000L; 1482 +const D3DUSAGE_QUERY_FILTER = 0x00020000L; 1483 +const D3DUSAGE_QUERY_SRGBWRITE = 0x00040000L; 1484 +const D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING = 0x00080000L; 1485 +const D3DUSAGE_QUERY_VERTEXTEXTURE = 0x00100000L; 1486 +const D3DUSAGE_QUERY_WRAPANDMIP = 0x00200000L; 1487 + 1488 +/* Usages for Vertex/Index buffers */ 1489 +const D3DUSAGE_WRITEONLY = 0x00000008L; 1490 +const D3DUSAGE_SOFTWAREPROCESSING = 0x00000010L; 1491 +const D3DUSAGE_DONOTCLIP = 0x00000020L; 1492 +const D3DUSAGE_POINTS = 0x00000040L; 1493 +const D3DUSAGE_RTPATCHES = 0x00000080L; 1494 +const D3DUSAGE_NPATCHES = 0x00000100L; 1495 +const D3DUSAGE_TEXTAPI = 0x10000000L; 1496 + 1497 +/* CubeMap Face identifiers */ 1498 +enum : D3DCUBEMAP_FACES { 1499 + D3DCUBEMAP_FACE_POSITIVE_X = 0, 1500 + D3DCUBEMAP_FACE_NEGATIVE_X = 1, 1501 + D3DCUBEMAP_FACE_POSITIVE_Y = 2, 1502 + D3DCUBEMAP_FACE_NEGATIVE_Y = 3, 1503 + D3DCUBEMAP_FACE_POSITIVE_Z = 4, 1504 + D3DCUBEMAP_FACE_NEGATIVE_Z = 5 1505 +} 1506 +alias TypeDef!(uint) D3DCUBEMAP_FACES; 1507 + 1508 +/* Lock flags */ 1509 +const D3DLOCK_READONLY = 0x00000010L; 1510 +const D3DLOCK_DISCARD = 0x00002000L; 1511 +const D3DLOCK_NOOVERWRITE = 0x00001000L; 1512 +const D3DLOCK_NOSYSLOCK = 0x00000800L; 1513 +const D3DLOCK_DONOTWAIT = 0x00004000L; 1514 +const D3DLOCK_NO_DIRTY_UPDATE = 0x00008000L; 1515 + 1516 +/* Vertex Buffer Description */ 1517 +struct D3DVERTEXBUFFER_DESC { 1518 + D3DFORMAT Format; 1519 + D3DRESOURCETYPE Type; 1520 + DWORD Usage; 1521 + D3DPOOL Pool; 1522 + UINT Size; 1523 + DWORD FVF; 1524 +} 1525 + 1526 +/* Index Buffer Description */ 1527 +struct D3DINDEXBUFFER_DESC { 1528 + D3DFORMAT Format; 1529 + D3DRESOURCETYPE Type; 1530 + DWORD Usage; 1531 + D3DPOOL Pool; 1532 + UINT Size; 1533 +} 1534 + 1535 + 1536 +/* Surface Description */ 1537 +struct D3DSURFACE_DESC { 1538 + D3DFORMAT Format; 1539 + D3DRESOURCETYPE Type; 1540 + DWORD Usage; 1541 + D3DPOOL Pool; 1542 + 1543 + D3DMULTISAMPLE_TYPE MultiSampleType; 1544 + DWORD MultiSampleQuality; 1545 + UINT Width; 1546 + UINT Height; 1547 +} 1548 + 1549 +struct D3DVOLUME_DESC { 1550 + D3DFORMAT Format; 1551 + D3DRESOURCETYPE Type; 1552 + DWORD Usage; 1553 + D3DPOOL Pool; 1554 + 1555 + UINT Width; 1556 + UINT Height; 1557 + UINT Depth; 1558 +} 1559 + 1560 +/* Structure for LockRect */ 1561 +struct D3DLOCKED_RECT { 1562 + INT Pitch; 1563 + void* pBits; 1564 +} 1565 + 1566 +/* Structures for LockBox */ 1567 +struct D3DBOX { 1568 + UINT Left; 1569 + UINT Top; 1570 + UINT Right; 1571 + UINT Bottom; 1572 + UINT Front; 1573 + UINT Back; 1574 +} 1575 + 1576 +struct D3DLOCKED_BOX 1577 +{ 1578 + INT RowPitch; 1579 + INT SlicePitch; 1580 + void* pBits; 1581 +} 1582 + 1583 +/* Structures for LockRange */ 1584 +struct D3DRANGE 1585 +{ 1586 + UINT Offset; 1587 + UINT Size; 1588 +} 1589 + 1590 +/* Structures for high order primitives */ 1591 +struct D3DRECTPATCH_INFO 1592 +{ 1593 + UINT StartVertexOffsetWidth; 1594 + UINT StartVertexOffsetHeight; 1595 + UINT Width; 1596 + UINT Height; 1597 + UINT Stride; 1598 + D3DBASISTYPE Basis; 1599 + D3DDEGREETYPE Degree; 1600 +} 1601 + 1602 +struct D3DTRIPATCH_INFO 1603 +{ 1604 + UINT StartVertexOffset; 1605 + UINT NumVertices; 1606 + D3DBASISTYPE Basis; 1607 + D3DDEGREETYPE Degree; 1608 +} 1609 + 1610 +/* Adapter Identifier */ 1611 + 1612 +const MAX_DEVICE_IDENTIFIER_STRING = 512; 1613 +struct D3DADAPTER_IDENTIFIER9 1614 +{ 1615 + char[MAX_DEVICE_IDENTIFIER_STRING] Driver; 1616 + char[MAX_DEVICE_IDENTIFIER_STRING] Description; 1617 + char[32] DeviceName; /* Device name for GDI (ex. \\.\DISPLAY1) */ 1618 + 1619 + LARGE_INTEGER DriverVersion; /* Defined for 32 bit components */ 1620 + 1621 + DWORD VendorId; 1622 + DWORD DeviceId; 1623 + DWORD SubSysId; 1624 + DWORD Revision; 1625 + 1626 + GUID DeviceIdentifier; 1627 + 1628 + DWORD WHQLLevel; 1629 +} 1630 + 1631 + 1632 +/* Raster Status structure returned by GetRasterStatus */ 1633 +struct D3DRASTER_STATUS 1634 +{ 1635 + BOOL InVBlank; 1636 + UINT ScanLine; 1637 +} 1638 + 1639 + 1640 + 1641 +/* Debug monitor tokens (DEBUG only) 1642 + 1643 + Note that if D3DRS_DEBUGMONITORTOKEN is set, the call is treated as 1644 + passing a token to the debug monitor. For example, if, after passing 1645 + D3DDMT_ENABLE/DISABLE to D3DRS_DEBUGMONITORTOKEN other token values 1646 + are passed in, the enabled/disabled state of the debug 1647 + monitor will still persist. 1648 + 1649 + The debug monitor defaults to enabled. 1650 + 1651 + Calling GetRenderState on D3DRS_DEBUGMONITORTOKEN is not of any use. 1652 +*/ 1653 +enum : D3DDEBUGMONITORTOKENS { 1654 + D3DDMT_ENABLE = 0, // enable debug monitor 1655 + D3DDMT_DISABLE = 1 // disable debug monitor 1656 +} 1657 +alias TypeDef!(uint) D3DDEBUGMONITORTOKENS; 1658 + 1659 +// Async feedback 1660 + 1661 +enum : D3DQUERYTYPE { 1662 + D3DQUERYTYPE_VCACHE = 4, /* D3DISSUE_END */ 1663 + D3DQUERYTYPE_RESOURCEMANAGER = 5, /* D3DISSUE_END */ 1664 + D3DQUERYTYPE_VERTEXSTATS = 6, /* D3DISSUE_END */ 1665 + D3DQUERYTYPE_EVENT = 8, /* D3DISSUE_END */ 1666 + D3DQUERYTYPE_OCCLUSION = 9, /* D3DISSUE_BEGIN, D3DISSUE_END */ 1667 + D3DQUERYTYPE_TIMESTAMP = 10, /* D3DISSUE_END */ 1668 + D3DQUERYTYPE_TIMESTAMPDISJOINT = 11, /* D3DISSUE_BEGIN, D3DISSUE_END */ 1669 + D3DQUERYTYPE_TIMESTAMPFREQ = 12, /* D3DISSUE_END */ 1670 + D3DQUERYTYPE_PIPELINETIMINGS = 13, /* D3DISSUE_BEGIN, D3DISSUE_END */ 1671 + D3DQUERYTYPE_INTERFACETIMINGS = 14, /* D3DISSUE_BEGIN, D3DISSUE_END */ 1672 + D3DQUERYTYPE_VERTEXTIMINGS = 15, /* D3DISSUE_BEGIN, D3DISSUE_END */ 1673 + D3DQUERYTYPE_PIXELTIMINGS = 16, /* D3DISSUE_BEGIN, D3DISSUE_END */ 1674 + D3DQUERYTYPE_BANDWIDTHTIMINGS = 17, /* D3DISSUE_BEGIN, D3DISSUE_END */ 1675 + D3DQUERYTYPE_CACHEUTILIZATION = 18, /* D3DISSUE_BEGIN, D3DISSUE_END */ 1676 +} 1677 +alias TypeDef!(uint) D3DQUERYTYPE; 1678 + 1679 +// Flags field for Issue 1680 +const D3DISSUE_END = (1 << 0); // Tells the runtime to issue the end of a query, changing it's state to "non-signaled". 1681 +const D3DISSUE_BEGIN = (1 << 1); // Tells the runtime to issue the beginng of a query. 1682 + 1683 + 1684 +// Flags field for GetData 1685 +const D3DGETDATA_FLUSH = (1 << 0); // Tells the runtime to flush if the query is outstanding. 1686 + 1687 + 1688 +struct D3DRESOURCESTATS 1689 +{ 1690 +// Data collected since last Present() 1691 + BOOL bThrashing; /* indicates if thrashing */ 1692 + DWORD ApproxBytesDownloaded; /* Approximate number of bytes downloaded by resource manager */ 1693 + DWORD NumEvicts; /* number of objects evicted */ 1694 + DWORD NumVidCreates; /* number of objects created in video memory */ 1695 + DWORD LastPri; /* priority of last object evicted */ 1696 + DWORD NumUsed; /* number of objects set to the device */ 1697 + DWORD NumUsedInVidMem; /* number of objects set to the device, which are already in video memory */ 1698 +// Persistent data 1699 + DWORD WorkingSet; /* number of objects in video memory */ 1700 + DWORD WorkingSetBytes; /* number of bytes in video memory */ 1701 + DWORD TotalManaged; /* total number of managed objects */ 1702 + DWORD TotalBytes; /* total number of bytes of managed objects */ 1703 +} 1704 + 1705 +const D3DRTYPECOUNT = D3DRTYPE_INDEXBUFFER+1; 1706 + 1707 +struct D3DDEVINFO_RESOURCEMANAGER 1708 +{ 1709 +//#ifndef WOW64_ENUM_WORKAROUND 1710 +// D3DRESOURCESTATS stats[D3DRTYPECOUNT]; 1711 + D3DRESOURCESTATS[8] stats; 1712 +} 1713 +alias D3DDEVINFO_RESOURCEMANAGER* LPD3DDEVINFO_RESOURCEMANAGER; 1714 + 1715 +struct D3DDEVINFO_D3DVERTEXSTATS 1716 +{ 1717 + DWORD NumRenderedTriangles; /* total number of triangles that are not clipped in this frame */ 1718 + DWORD NumExtraClippingTriangles; /* Number of new triangles generated by clipping */ 1719 +} 1720 +alias D3DDEVINFO_D3DVERTEXSTATS *LPD3DDEVINFO_D3DVERTEXSTATS; 1721 + 1722 + 1723 +struct D3DDEVINFO_VCACHE { 1724 + DWORD Pattern; /* bit pattern, return value must be FOUR_CC('C', 'A', 'C', 'H') */ 1725 + DWORD OptMethod; /* optimization method 0 means longest strips, 1 means vertex cache based */ 1726 + DWORD CacheSize; /* cache size to optimize for (only required if type is 1) */ 1727 + DWORD MagicNumber; /* used to determine when to restart strips (only required if type is 1)*/ 1728 +} 1729 +alias D3DDEVINFO_VCACHE *LPD3DDEVINFO_VCACHE; 1730 + 1731 +struct D3DDEVINFO_D3D9PIPELINETIMINGS 1732 +{ 1733 + FLOAT VertexProcessingTimePercent; 1734 + FLOAT PixelProcessingTimePercent; 1735 + FLOAT OtherGPUProcessingTimePercent; 1736 + FLOAT GPUIdleTimePercent; 1737 +} 1738 + 1739 +struct D3DDEVINFO_D3D9INTERFACETIMINGS 1740 +{ 1741 + FLOAT WaitingForGPUToUseApplicationResourceTimePercent; 1742 + FLOAT WaitingForGPUToAcceptMoreCommandsTimePercent; 1743 + FLOAT WaitingForGPUToStayWithinLatencyTimePercent; 1744 + FLOAT WaitingForGPUExclusiveResourceTimePercent; 1745 + FLOAT WaitingForGPUOtherTimePercent; 1746 +} 1747 + 1748 +struct D3DDEVINFO_D3D9STAGETIMINGS 1749 +{ 1750 + FLOAT MemoryProcessingPercent; 1751 + FLOAT ComputationProcessingPercent; 1752 +} 1753 + 1754 +struct D3DDEVINFO_D3D9BANDWIDTHTIMINGS 1755 +{ 1756 + FLOAT MaxBandwidthUtilized; 1757 + FLOAT FrontEndUploadMemoryUtilizedPercent; 1758 + FLOAT VertexRateUtilizedPercent; 1759 + FLOAT TriangleSetupRateUtilizedPercent; 1760 + FLOAT FillRateUtilizedPercent; 1761 +} 1762 + 1763 +struct D3DDEVINFO_D3D9CACHEUTILIZATION 1764 +{ 1765 + FLOAT TextureCacheHitRate; // Percentage of cache hits 1766 + FLOAT PostTransformVertexCacheHitRate; 1767 +} 1768 + 1769 +enum : D3DCOMPOSERECTSOP { 1770 + D3DCOMPOSERECTS_COPY = 1, 1771 + D3DCOMPOSERECTS_OR = 2, 1772 + D3DCOMPOSERECTS_AND = 3, 1773 + D3DCOMPOSERECTS_NEG = 4 1774 +} 1775 +alias TypeDef!(uint) D3DCOMPOSERECTSOP; 1776 + 1777 +struct D3DCOMPOSERECTDESC 1778 +{ 1779 + USHORT X, Y; // Top-left coordinates of a rect in the source surface 1780 + USHORT Width, Height; // Dimensions of the rect 1781 +} 1782 + 1783 +struct D3DCOMPOSERECTDESTINATION 1784 +{ 1785 + USHORT SrcRectIndex; // Index of D3DCOMPOSERECTDESC 1786 + USHORT Reserved; // For alignment 1787 + SHORT X, Y; // Top-left coordinates of the rect in the destination surface 1788 +} 1789 + 1790 +const D3DCOMPOSERECTS_MAXNUMRECTS = 0xFFFF; 1791 +const D3DCONVOLUTIONMONO_MAXWIDTH = 7; 1792 +const D3DCONVOLUTIONMONO_MAXHEIGHT = D3DCONVOLUTIONMONO_MAXWIDTH; 1793 +const D3DFMT_A1_SURFACE_MAXWIDTH = 8192; 1794 +const D3DFMT_A1_SURFACE_MAXHEIGHT = 2048; 1795 + 1796 + 1797 +struct D3DPRESENTSTATS { 1798 + UINT PresentCount; 1799 + UINT PresentRefreshCount; 1800 + UINT SyncRefreshCount; 1801 + LARGE_INTEGER SyncQPCTime; 1802 + LARGE_INTEGER SyncGPUTime; 1803 +} 1804 + 1805 +enum : D3DSCANLINEORDERING 1806 +{ 1807 + D3DSCANLINEORDERING_UNKNOWN = 0, 1808 + D3DSCANLINEORDERING_PROGRESSIVE = 1, 1809 + D3DSCANLINEORDERING_INTERLACED = 2 1810 +} 1811 +alias TypeDef!(uint) D3DSCANLINEORDERING; 1812 + 1813 + 1814 +struct D3DDISPLAYMODEEX 1815 +{ 1816 + UINT Size; 1817 + UINT Width; 1818 + UINT Height; 1819 + UINT RefreshRate; 1820 + D3DFORMAT Format; 1821 + D3DSCANLINEORDERING ScanLineOrdering; 1822 +} 1823 + 1824 +struct D3DDISPLAYMODEFILTER 1825 +{ 1826 + UINT Size; 1827 + D3DFORMAT Format; 1828 + D3DSCANLINEORDERING ScanLineOrdering; 1829 +} 1830 + 1831 + 1832 +enum : D3DDISPLAYROTATION 1833 +{ 1834 + D3DDISPLAYROTATION_IDENTITY = 1, // No rotation. 1835 + D3DDISPLAYROTATION_90 = 2, // Rotated 90 degrees. 1836 + D3DDISPLAYROTATION_180 = 3, // Rotated 180 degrees. 1837 + D3DDISPLAYROTATION_270 = 4 // Rotated 270 degrees. 1838 +} 1839 +alias TypeDef!(uint) D3DDISPLAYROTATION; 1840 + 1841 +/* For use in ID3DResource9::SetPriority calls */ 1842 +const D3D9_RESOURCE_PRIORITY_MINIMUM = 0x28000000; 1843 +const D3D9_RESOURCE_PRIORITY_LOW = 0x50000000; 1844 +const D3D9_RESOURCE_PRIORITY_NORMAL = 0x78000000; 1845 +const D3D9_RESOURCE_PRIORITY_HIGH = 0xa0000000; 1846 +const D3D9_RESOURCE_PRIORITY_MAXIMUM = 0xc8000000;

Added src/win32/directx/d3dx10.d version [95a83671f36f06d6]

1 +/***********************************************************************\ 2 +* d3dx10.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Placed into public domain * 7 +\***********************************************************************/ 8 +module win32.directx.d3dx10; 9 + 10 +private import win32.windows; 11 + 12 +public import win32.directx.d3d10; 13 +public import win32.directx.d3dx10math; 14 +public import win32.directx.d3dx10core; 15 +public import win32.directx.d3dx10tex; 16 +public import win32.directx.d3dx10mesh; 17 +public import win32.directx.d3dx10async; 18 + 19 +pragma(lib, "d3dx10.lib"); 20 + 21 +const UINT D3DX10_DEFAULT = -1; 22 +const UINT D3DX10_FROM_FILE = -3; 23 +const DXGI_FORMAT DXGI_FORMAT_FROM_FILE = cast(DXGI_FORMAT)-3; 24 + 25 +const _FACDD = 0x876; 26 +HRESULT MAKE_DDHRESULT(T)(T code) { 27 + return MAKE_HRESULT(1, _FACDD, code); 28 +} 29 + 30 +alias HRESULT _D3DX10_ERR; 31 +_D3DX10_ERR D3DX10_ERR_CANNOT_MODIFY_INDEX_BUFFER = MAKE_DDHRESULT(2900); 32 +_D3DX10_ERR D3DX10_ERR_INVALID_MESH = MAKE_DDHRESULT(2901); 33 +_D3DX10_ERR D3DX10_ERR_CANNOT_ATTR_SORT = MAKE_DDHRESULT(2902); 34 +_D3DX10_ERR D3DX10_ERR_SKINNING_NOT_SUPPORTED = MAKE_DDHRESULT(2903); 35 +_D3DX10_ERR D3DX10_ERR_TOO_MANY_INFLUENCES = MAKE_DDHRESULT(2904); 36 +_D3DX10_ERR D3DX10_ERR_INVALID_DATA = MAKE_DDHRESULT(2905); 37 +_D3DX10_ERR D3DX10_ERR_LOADED_MESH_HAS_NO_DATA = MAKE_DDHRESULT(2906); 38 +_D3DX10_ERR D3DX10_ERR_DUPLICATE_NAMED_FRAGMENT = MAKE_DDHRESULT(2907); 39 +_D3DX10_ERR D3DX10_ERR_CANNOT_REMOVE_LAST_ITEM = MAKE_DDHRESULT(2908);

Added src/win32/directx/d3dx10async.d version [3663615d3892dfa7]

1 +/***********************************************************************\ 2 +* d3dx10async.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Placed into public domain * 7 +\***********************************************************************/ 8 +module win32.directx.d3dx10async; 9 + 10 +private import win32.windows; 11 +private import win32.directx.d3d10; 12 +private import win32.directx.d3d10shader; 13 +private import win32.directx.d3d10effect; 14 +private import win32.directx.d3dx10; 15 +private import win32.directx.d3dx10async; 16 + 17 +extern(Windows) { 18 + HRESULT D3DX10CompileFromFileA(LPCSTR pSrcFile, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX10ThreadPump pPump, ID3D10Blob* ppShader, ID3D10Blob* ppErrorMsgs, HRESULT* pHResult); 19 + HRESULT D3DX10CompileFromFileW(LPCWSTR pSrcFile, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX10ThreadPump pPump, ID3D10Blob* ppShader, ID3D10Blob* ppErrorMsgs, HRESULT* pHResult); 20 +} 21 + 22 +version(Unicode) { 23 + alias D3DX10CompileFromFileW D3DX10CompileFromFile; 24 +} else { 25 + alias D3DX10CompileFromFileA D3DX10CompileFromFile; 26 +} 27 + 28 +extern(Windows) { 29 + HRESULT D3DX10CompileFromResourceA(HMODULE hSrcModule, LPCSTR pSrcResource, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX10ThreadPump pPump, ID3D10Blob* ppShader, ID3D10Blob* ppErrorMsgs, HRESULT* pHResult); 30 + HRESULT D3DX10CompileFromResourceW(HMODULE hSrcModule, LPCWSTR pSrcResource, LPCWSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX10ThreadPump pPump, ID3D10Blob* ppShader, ID3D10Blob* ppErrorMsgs, HRESULT* pHResult); 31 +} 32 + 33 +version(Unicode) { 34 + alias D3DX10CompileFromResourceW D3DX10CompileFromResource; 35 +} else { 36 + alias D3DX10CompileFromResourceA D3DX10CompileFromResource; 37 +} 38 + 39 +extern(Windows) { 40 + HRESULT D3DX10CompileFromMemory(LPCSTR pSrcData, SIZE_T SrcDataLen, LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX10ThreadPump pPump, ID3D10Blob* ppShader, ID3D10Blob* ppErrorMsgs, HRESULT* pHResult); 41 + HRESULT D3DX10CreateEffectFromFileA(LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device pDevice, ID3D10EffectPool pEffectPool, ID3DX10ThreadPump pPump, ID3D10Effect* ppEffect, ID3D10Blob* ppErrors, HRESULT* pHResult); 42 + HRESULT D3DX10CreateEffectFromFileW(LPCWSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device pDevice, ID3D10EffectPool pEffectPool, ID3DX10ThreadPump pPump, ID3D10Effect* ppEffect, ID3D10Blob* ppErrors, HRESULT* pHResult); 43 + HRESULT D3DX10CreateEffectFromMemory(LPCVOID pData, SIZE_T DataLength, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device pDevice, ID3D10EffectPool pEffectPool, ID3DX10ThreadPump pPump, ID3D10Effect* ppEffect, ID3D10Blob* ppErrors, HRESULT* pHResult); 44 + HRESULT D3DX10CreateEffectFromResourceA(HMODULE hModule, LPCSTR pResourceName, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device pDevice, ID3D10EffectPool pEffectPool, ID3DX10ThreadPump pPump, ID3D10Effect* ppEffect, ID3D10Blob* ppErrors, HRESULT* pHResult); 45 + HRESULT D3DX10CreateEffectFromResourceW(HMODULE hModule, LPCWSTR pResourceName, LPCWSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device pDevice, ID3D10EffectPool pEffectPool, ID3DX10ThreadPump pPump, ID3D10Effect* ppEffect, ID3D10Blob* ppErrors, HRESULT* pHResult); 46 +} 47 + 48 +version(Unicode) { 49 + alias D3DX10CreateEffectFromFileW D3DX10CreateEffectFromFile; 50 + alias D3DX10CreateEffectFromResourceW D3DX10CreateEffectFromResource; 51 +} else { 52 + alias D3DX10CreateEffectFromFileA D3DX10CreateEffectFromFile; 53 + alias D3DX10CreateEffectFromResourceA D3DX10CreateEffectFromResource; 54 +} 55 + 56 +extern(Windows) { 57 + HRESULT D3DX10CreateEffectPoolFromFileA(LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device pDevice, ID3DX10ThreadPump pPump, ID3D10EffectPool* ppEffectPool, ID3D10Blob* ppErrors, HRESULT* pHResult); 58 + HRESULT D3DX10CreateEffectPoolFromFileW(LPCWSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device pDevice, ID3DX10ThreadPump pPump, ID3D10EffectPool* ppEffectPool, ID3D10Blob* ppErrors, HRESULT* pHResult); 59 + HRESULT D3DX10CreateEffectPoolFromMemory(LPCVOID pData, SIZE_T DataLength, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device pDevice, ID3DX10ThreadPump pPump, ID3D10EffectPool* ppEffectPool, ID3D10Blob* ppErrors, HRESULT* pHResult); 60 + HRESULT D3DX10CreateEffectPoolFromResourceA(HMODULE hModule, LPCSTR pResourceName, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device pDevice, ID3DX10ThreadPump pPump, ID3D10EffectPool* ppEffectPool, ID3D10Blob* ppErrors, HRESULT* pHResult); 61 + HRESULT D3DX10CreateEffectPoolFromResourceW(HMODULE hModule, LPCWSTR pResourceName, LPCWSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device pDevice, ID3DX10ThreadPump pPump, ID3D10EffectPool* ppEffectPool, ID3D10Blob* ppErrors, HRESULT* pHResult); 62 +} 63 + 64 +version(Unicode) { 65 + alias D3DX10CreateEffectPoolFromFileW D3DX10CreateEffectPoolFromFile; 66 + alias D3DX10CreateEffectPoolFromResourceW D3DX10CreateEffectPoolFromResource; 67 +} else { 68 + alias D3DX10CreateEffectPoolFromFileA D3DX10CreateEffectPoolFromFile; 69 + alias D3DX10CreateEffectPoolFromResourceA D3DX10CreateEffectPoolFromResource; 70 +} 71 + 72 +extern(Windows) { 73 + HRESULT D3DX10PreprocessShaderFromFileA(LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, ID3DX10ThreadPump pPump, ID3D10Blob* ppShaderText, ID3D10Blob* ppErrorMsgs, HRESULT* pHResult); 74 + HRESULT D3DX10PreprocessShaderFromFileW(LPCWSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, ID3DX10ThreadPump pPump, ID3D10Blob* ppShaderText, ID3D10Blob* ppErrorMsgs, HRESULT* pHResult); 75 + HRESULT D3DX10PreprocessShaderFromMemory(LPCSTR pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, ID3DX10ThreadPump pPump, ID3D10Blob* ppShaderText, ID3D10Blob* ppErrorMsgs, HRESULT* pHResult); 76 + HRESULT D3DX10PreprocessShaderFromResourceA(HMODULE hModule, LPCSTR pResourceName, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, ID3DX10ThreadPump pPump, ID3D10Blob* ppShaderText, ID3D10Blob* ppErrorMsgs, HRESULT* pHResult); 77 + HRESULT D3DX10PreprocessShaderFromResourceW(HMODULE hModule, LPCWSTR pResourceName, LPCWSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, ID3DX10ThreadPump pPump, ID3D10Blob* ppShaderText, ID3D10Blob* ppErrorMsgs, HRESULT* pHResult); 78 +} 79 + 80 +version(Unicode) { 81 + alias D3DX10PreprocessShaderFromFileW D3DX10PreprocessShaderFromFile; 82 + alias D3DX10PreprocessShaderFromResourceW D3DX10PreprocessShaderFromResource; 83 +} else { 84 + alias D3DX10PreprocessShaderFromFileA D3DX10PreprocessShaderFromFile; 85 + alias D3DX10PreprocessShaderFromResourceA D3DX10PreprocessShaderFromResource; 86 +} 87 + 88 +extern(Windows) { 89 + HRESULT D3DX10CreateAsyncCompilerProcessor(LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3D10Blob* ppCompiledShader, ID3D10Blob* ppErrorBuffer, ID3DX10DataProcessor* ppProcessor); 90 + HRESULT D3DX10CreateAsyncEffectCreateProcessor(LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pProfile, UINT Flags, UINT FXFlags, ID3D10Device pDevice, ID3D10EffectPool pPool, ID3D10Blob* ppErrorBuffer, ID3DX10DataProcessor* ppProcessor); 91 + HRESULT D3DX10CreateAsyncEffectPoolCreateProcessor(LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pProfile, UINT Flags, UINT FXFlags, ID3D10Device pDevice, ID3D10Blob* ppErrorBuffer, ID3DX10DataProcessor* ppProcessor); 92 + HRESULT D3DX10CreateAsyncShaderPreprocessProcessor(LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, ID3D10Blob* ppShaderText, ID3D10Blob* ppErrorBuffer, ID3DX10DataProcessor* ppProcessor); 93 + HRESULT D3DX10CreateAsyncFileLoaderW(LPCWSTR pFileName, ID3DX10DataLoader* ppDataLoader); 94 + HRESULT D3DX10CreateAsyncFileLoaderA(LPCSTR pFileName, ID3DX10DataLoader* ppDataLoader); 95 + HRESULT D3DX10CreateAsyncMemoryLoader(LPCVOID pData, SIZE_T cbData, ID3DX10DataLoader* ppDataLoader); 96 + HRESULT D3DX10CreateAsyncResourceLoaderW(HMODULE hSrcModule, LPCWSTR pSrcResource, ID3DX10DataLoader* ppDataLoader); 97 + HRESULT D3DX10CreateAsyncResourceLoaderA(HMODULE hSrcModule, LPCSTR pSrcResource, ID3DX10DataLoader* ppDataLoader); 98 +} 99 + 100 +version(Unicode) { 101 + alias D3DX10CreateAsyncFileLoaderW D3DX10CreateAsyncFileLoader; 102 + alias D3DX10CreateAsyncResourceLoaderW D3DX10CreateAsyncResourceLoader; 103 +} else { 104 + alias D3DX10CreateAsyncFileLoaderA D3DX10CreateAsyncFileLoader; 105 + alias D3DX10CreateAsyncResourceLoaderA D3DX10CreateAsyncResourceLoader; 106 +} 107 + 108 +extern(Windows) { 109 + HRESULT D3DX10CreateAsyncTextureProcessor(ID3D10Device pDevice, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, ID3DX10DataProcessor* ppDataProcessor); 110 + HRESULT D3DX10CreateAsyncTextureInfoProcessor(D3DX10_IMAGE_INFO* pImageInfo, ID3DX10DataProcessor* ppDataProcessor); 111 + HRESULT D3DX10CreateAsyncShaderResourceViewProcessor(ID3D10Device pDevice, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, ID3DX10DataProcessor* ppDataProcessor); 112 +}

Added src/win32/directx/d3dx10core.d version [63d7357057086331]

1 +/***********************************************************************\ 2 +* d3dx10core.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Placed into public domain * 7 +\***********************************************************************/ 8 +module win32.directx.d3dx10core; 9 + 10 +private import win32.windows; 11 + 12 +private import win32.directx.d3d10; 13 +private import win32.directx.d3d10effect; 14 +private import win32.directx.d3dx10math; 15 + 16 +const D3DX10_DLL_W = "d3dx10_36.dll"; 17 +const D3DX10_DLL_A = "d3dx10_36.dll"; 18 + 19 +version(Unicode) { 20 + alias D3DX10_DLL_W D3DX10_DLL; 21 +} else { 22 + alias D3DX10_DLL_A D3DX10_DLL; 23 +} 24 + 25 +const D3DX10_SDK_VERSION = 36; 26 + 27 +extern(Windows) { 28 + HRESULT D3DX10CreateDevice(IDXGIAdapter pAdapter, D3D10_DRIVER_TYPE DriverType, 29 + HMODULE Software, UINT Flags, ID3D10Device* ppDevice); 30 + HRESULT D3DX10CreateDeviceAndSwapChain(IDXGIAdapter pAdapter, D3D10_DRIVER_TYPE DriverType, 31 + HMODULE Software, UINT Flags, DXGI_SWAP_CHAIN_DESC* pSwapChainDesc, IDXGISwapChain* ppSwapChain, 32 + ID3D10Device* ppDevice); 33 +//TODO HRESULT D3DX10GetFeatureLevel1(ID3D10Device pDevice, ID3D10Device1* ppDevice1); 34 + 35 + debug(D3D10_DEBUG) { 36 + BOOL D3DX10DebugMute(BOOL Mute); 37 + } 38 + 39 + HRESULT D3DX10CheckVersion(UINT D3DSdkVersion, UINT D3DX10SdkVersion); 40 + UINT D3DX10GetDriverLevel(ID3D10Device pDevice); 41 +} 42 + 43 +enum D3DX10_SPRITE_FLAG { 44 + D3DX10_SPRITE_SORT_TEXTURE = 0x01, 45 + D3DX10_SPRITE_SORT_DEPTH_BACK_TO_FRONT = 0x02, 46 + D3DX10_SPRITE_SORT_DEPTH_FRONT_TO_BACK = 0x04, 47 + D3DX10_SPRITE_SAVE_STATE = 0x08, 48 + D3DX10_SPRITE_ADDREF_TEXTURES = 0x10 49 +} 50 + 51 +struct D3DX10_SPRITE { 52 + D3DXMATRIX matWorld; 53 + D3DXVECTOR2 TexCoord; 54 + D3DXVECTOR2 TexSize; 55 + D3DXCOLOR ColorModulate; 56 + ID3D10ShaderResourceView pTexture; 57 + UINT TextureIndex; 58 +} 59 + 60 +extern(C) const GUID IID_ID3DX10Sprite = {0xba0b762d, 0x8d28, 0x43ec, [0xb9, 0xdc, 0x2f, 0x84, 0x44, 0x3b, 0x06, 0x14]}; 61 + 62 +interface ID3DX10Sprite : IUnknown { 63 + extern(Windows) : 64 + HRESULT Begin(UINT flags); 65 + HRESULT DrawSpritesBuffered(D3DX10_SPRITE* pSprites, UINT cSprites); 66 + HRESULT Flush(); 67 + HRESULT DrawSpritesImmediate(D3DX10_SPRITE* pSprites, UINT cSprites, UINT cbSprite, UINT flags); 68 + HRESULT End(); 69 + HRESULT GetViewTransform(D3DXMATRIX* pViewTransform); 70 + HRESULT SetViewTransform(D3DXMATRIX* pViewTransform); 71 + HRESULT GetProjectionTransform(D3DXMATRIX* pProjectionTransform); 72 + HRESULT SetProjectionTransform(D3DXMATRIX* pProjectionTransform); 73 + HRESULT GetDevice(ID3D10Device* ppDevice); 74 +} 75 + 76 +extern(Windows) HRESULT D3DX10CreateSprite(ID3D10Device pDevice, UINT cDeviceBufferSize, ID3DX10Sprite* ppSprite); 77 + 78 +interface ID3DX10DataLoader { 79 +/* TODO: fix vtbl[0] bug 80 + extern(Windows) : 81 + HRESULT Load(); 82 + HRESULT Decompress(void** ppData, SIZE_T* pcBytes); 83 + HRESULT Destroy(); 84 + */ 85 +} 86 + 87 +interface ID3DX10DataProcessor { 88 +/* TODO: fix vtbl[0] bug 89 + extern(Windows) : 90 + HRESULT Process(void* pData, SIZE_T cBytes); 91 + HRESULT CreateDeviceObject(void** ppDataObject); 92 + HRESULT Destroy(); 93 + */ 94 +} 95 + 96 +extern(C) const GUID IID_ID3DX10ThreadPump = {0xc93fecfa, 0x6967, 0x478a, [0xab, 0xbc, 0x40, 0x2d, 0x90, 0x62, 0x1f, 0xcb]}; 97 + 98 +interface ID3DX10ThreadPump : IUnknown { 99 + extern(Windows) : 100 + HRESULT AddWorkItem(ID3DX10DataLoader pDataLoader, ID3DX10DataProcessor pDataProcessor, HRESULT *pHResult, void **ppDeviceObject); 101 + UINT GetWorkItemCount(); 102 + HRESULT WaitForAllItems(); 103 + HRESULT ProcessDeviceWorkItems(UINT iWorkItemCount); 104 + HRESULT PurgeAllItems(); 105 + HRESULT GetQueueStatus(UINT* pIoQueue, UINT* pProcessQueue, UINT* pDeviceQueue); 106 +} 107 + 108 +extern(Windows) HRESULT D3DX10CreateThreadPump(UINT cIoThreads, UINT cProcThreads, 109 + ID3DX10ThreadPump *ppThreadPump); 110 + 111 +struct D3DX10_FONT_DESCA { 112 + INT Height; 113 + UINT Width; 114 + UINT Weight; 115 + UINT MipLevels; 116 + BOOL Italic; 117 + BYTE CharSet; 118 + BYTE OutputPrecision; 119 + BYTE Quality; 120 + BYTE PitchAndFamily; 121 + CHAR[LF_FACESIZE] FaceName; 122 +} 123 + 124 +struct D3DX10_FONT_DESCW { 125 + INT Height; 126 + UINT Width; 127 + UINT Weight; 128 + UINT MipLevels; 129 + BOOL Italic; 130 + BYTE CharSet; 131 + BYTE OutputPrecision; 132 + BYTE Quality; 133 + BYTE PitchAndFamily; 134 + WCHAR[LF_FACESIZE] FaceName; 135 +} 136 + 137 +version(Unicode) { 138 + alias D3DX10_FONT_DESCW D3DX10_FONT_DESC; 139 +} else { 140 + alias D3DX10_FONT_DESCA D3DX10_FONT_DESC; 141 +} 142 + 143 +extern(C) const GUID IID_ID3DX10Font = {0xd79dbb70, 0x5f21, 0x4d36, [0xbb, 0xc2, 0xff, 0x52, 0x5c, 0x21, 0x3c, 0xdc]}; 144 + 145 +interface ID3DX10Font : IUnknown { 146 + extern(Windows) : 147 + HRESULT GetDevice(ID3D10Device* ppDevice); 148 + HRESULT GetDescA(D3DX10_FONT_DESCA* pDesc); 149 + HRESULT GetDescW(D3DX10_FONT_DESCW* pDesc); 150 + BOOL GetTextMetricsA(TEXTMETRICA* pTextMetrics); 151 + BOOL GetTextMetricsW(TEXTMETRICW* pTextMetrics); 152 + HDC GetDC(); 153 + HRESULT GetGlyphData(UINT Glyph, ID3D10ShaderResourceView* ppTexture, RECT* pBlackBox, POINT* pCellInc); 154 + HRESULT PreloadCharacters(UINT First, UINT Last); 155 + HRESULT PreloadGlyphs(UINT First, UINT Last); 156 + HRESULT PreloadTextA(LPCSTR pString, INT Count); 157 + HRESULT PreloadTextW(LPCWSTR pString, INT Count); 158 + INT DrawTextA(ID3DX10Sprite pSprite, LPCSTR pString, INT Count, LPRECT pRect, UINT Format, D3DXCOLOR Color); 159 + INT DrawTextW(ID3DX10Sprite pSprite, LPCWSTR pString, INT Count, LPRECT pRect, UINT Format, D3DXCOLOR Color); 160 + version(Unicode) { 161 + alias GetTextMetricsW GetTextMetrics; 162 + alias DrawTextW DrawText; 163 + } else { 164 + alias GetTextMetricsA GetTextMetrics; 165 + alias DrawTextA DrawText; 166 + } 167 +} 168 + 169 +extern(Windows) { 170 + HRESULT D3DX10CreateFontA(ID3D10Device pDevice, INT Height, UINT Width, UINT Weight, 171 + UINT MipLevels, BOOL Italic, UINT CharSet, UINT OutputPrecision, UINT Quality, 172 + UINT PitchAndFamily, LPCSTR pFaceName, ID3DX10Font* ppFont); 173 + HRESULT D3DX10CreateFontW(ID3D10Device pDevice, INT Height, UINT Width, UINT Weight, 174 + UINT MipLevels, BOOL Italic, UINT CharSet, UINT OutputPrecision, UINT Quality, 175 + UINT PitchAndFamily, LPCWSTR pFaceName, ID3DX10Font* ppFont); 176 +} 177 + 178 +version(Unicode) { 179 + alias D3DX10CreateFontW D3DX10CreateFont; 180 +} else { 181 + alias D3DX10CreateFontA D3DX10CreateFont; 182 +} 183 + 184 +extern(Windows) { 185 + HRESULT D3DX10CreateFontIndirectA(ID3D10Device pDevice, D3DX10_FONT_DESCA* pDesc, ID3DX10Font* ppFont); 186 + HRESULT D3DX10CreateFontIndirectW(ID3D10Device pDevice, D3DX10_FONT_DESCW* pDesc, ID3DX10Font* ppFont); 187 +} 188 + 189 +version(Unicode) { 190 + alias D3DX10CreateFontIndirectW D3DX10CreateFontIndirect; 191 +} else { 192 + alias D3DX10CreateFontIndirectA D3DX10CreateFontIndirect; 193 +} 194 + 195 +extern(Windows) { 196 + HRESULT D3DX10UnsetAllDeviceObjects(ID3D10Device pDevice); 197 +//TODO HRESULT D3DX10ReflectShader(void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10ShaderReflection1 *ppReflector); 198 + HRESULT D3DX10DisassembleShader(void *pShader, SIZE_T BytecodeLength, BOOL EnableColorCode, 199 + LPCSTR pComments, ID3D10Blob* ppDisassembly); 200 + HRESULT D3DX10DisassembleEffect(ID3D10Effect pEffect, BOOL EnableColorCode, ID3D10Blob* ppDisassembly); 201 +} 202 + 203 +const _FACD3D = 0x876; 204 + 205 +HRESULT MAKE_D3DHRESULT(T)(T code) { 206 + return MAKE_HRESULT(1, _FACD3D, code); 207 +} 208 + 209 +HRESULT MAKE_D3DSTATUS(T)(T code) { 210 + return MAKE_HRESULT(0, _FACD3D, code); 211 +} 212 + 213 +const D3DERR_INVALIDCALL = MAKE_D3DHRESULT(2156); 214 +const D3DERR_WASSTILLDRAWING = MAKE_D3DHRESULT(540);

Added src/win32/directx/d3dx10math.d version [2818c66b17c430a2]

1 +/***********************************************************************\ 2 +* d3dx10math.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Placed into public domain * 7 +\***********************************************************************/ 8 +module win32.directx.d3dx10math; 9 + 10 +version(Tango) { 11 + import tango.math.Math; 12 + alias sqrt sqrtf; 13 +} else { 14 + version (D_Version2) 15 + import core.stdc.math; 16 + else 17 + import std.c.math; 18 +} 19 + 20 +private import win32.windows; 21 +private import win32.directx.d3dx10; 22 + 23 +struct D3DVECTOR { 24 + float x; 25 + float y; 26 + float z; 27 +} 28 + 29 +struct D3DMATRIX { 30 + union { 31 + struct { 32 + float _11, _12, _13, _14; 33 + float _21, _22, _23, _24; 34 + float _31, _32, _33, _34; 35 + float _41, _42, _43, _44; 36 + } 37 + float[4][4] m; 38 + } 39 +} 40 + 41 +const D3DX_PI = 3.14159265358979323846; 42 +const D3DX_1BYPI = 1.0 / D3DX_PI; 43 + 44 +float D3DXToRadian(float degree) { 45 + return degree * (D3DX_PI / 180.0); 46 +} 47 + 48 +float D3DXToDegree(float radian) { 49 + return radian * (180.0 / D3DX_PI); 50 +} 51 + 52 +const D3DX_16F_DIG = 3; 53 +const D3DX_16F_EPSILON = 4.8875809e-4f; 54 +const D3DX_16F_MANT_DIG = 11; 55 +const D3DX_16F_MAX = 6.550400e+004; 56 +const D3DX_16F_MAX_10_EXP = 4; 57 +const D3DX_16F_MAX_EXP = 15; 58 +const D3DX_16F_MIN = 6.1035156e-5f; 59 +const D3DX_16F_MIN_10_EXP = -4; 60 +const D3DX_16F_MIN_EXP = -14; 61 +const D3DX_16F_RADIX = 2; 62 +const D3DX_16F_ROUNDS = 1; 63 +const D3DX_16F_SIGN_MASK = 0x8000; 64 +const D3DX_16F_EXP_MASK = 0x7C00; 65 +const D3DX_16F_FRAC_MASK = 0x03FF; 66 + 67 +struct D3DXFLOAT16 { 68 + //TODO 69 +protected: 70 + WORD value; 71 +} 72 + 73 +struct D3DXVECTOR2 { 74 + //TODO 75 + float x, y; 76 +} 77 + 78 +struct D3DXVECTOR2_16F { 79 + //TODO 80 + D3DXFLOAT16 x, y; 81 +} 82 + 83 +struct D3DXVECTOR3 { 84 + //TODO 85 + float x, y, z; 86 +} 87 + 88 +struct D3DXVECTOR3_16F { 89 + //TODO 90 + D3DXFLOAT16 x, y, z; 91 +} 92 + 93 +struct D3DXVECTOR4 { 94 + //TODO 95 + float x, y, z, w; 96 +} 97 + 98 +struct D3DXVECTOR4_16F { 99 + //TODO 100 + D3DXFLOAT16 x, y, z, w; 101 +} 102 + 103 +struct D3DXMATRIX { 104 + //TODO 105 + union { 106 + struct { 107 + float _11, _12, _13, _14; 108 + float _21, _22, _23, _24; 109 + float _31, _32, _33, _34; 110 + float _41, _42, _43, _44; 111 + } 112 + float[4][4] m; 113 + } 114 +} 115 + 116 +//TODO struct _D3DXMATRIXA16 : D3DXMATRIX 117 + 118 +struct D3DXQUATERNION { 119 + //TODO 120 + float x, y, z, w; 121 +} 122 + 123 +struct D3DXPLANE { 124 + //TODO 125 + float a, b, c, d; 126 +} 127 + 128 +struct D3DXCOLOR { 129 + //TODO 130 + float r, g, b, a; 131 +} 132 + 133 +extern(Windows) { 134 + D3DXFLOAT16* D3DXFloat32To16Array(D3DXFLOAT16* pOut, float* pIn, UINT n); 135 + float* D3DXFloat16To32Array(float* pOut, D3DXFLOAT16* pIn, UINT n); 136 +} 137 + 138 +float D3DXVec2Length(D3DXVECTOR2* pV) { 139 + debug(D3DX10_DEBUG) { 140 + if (pV is null) return 0.0; 141 + } 142 + return sqrtf((pV.x * pV.x) + (pV.y * pV.y)); 143 +} 144 + 145 +float D3DXVec2LengthSq(D3DXVECTOR2* pV) { 146 + debug(D3DX10_DEBUG) { 147 + if (pV is null) return 0.0; 148 + } 149 + return (pV.x * pV.x) + (pV.y * pV.y); 150 +} 151 + 152 +float D3DXVec2Dot(D3DXVECTOR2* pV1, D3DXVECTOR2* pV2) { 153 + debug(D3DX10_DEBUG) { 154 + if ((pV1 is null) || (pV2 is null)) return 0.0; 155 + } 156 + return (pV1.x * pV2.x) + (pV1.y * pV2.y); 157 +} 158 + 159 +float D3DXVec2CCW(D3DXVECTOR2* pV1, D3DXVECTOR2* pV2) { 160 + debug(D3DX10_DEBUG) { 161 + if ((pV1 is null) || (pV2 is null)) return 0.0; 162 + } 163 + return (pV1.x * pV2.y) + (pV1.y * pV2.x); 164 +} 165 + 166 +D3DXVECTOR2* D3DXVec2Add(D3DXVECTOR2* pOut, D3DXVECTOR2* pV1, D3DXVECTOR2* pV2) { 167 + debug(D3DX10_DEBUG) { 168 + if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; 169 + } 170 + pOut.x = pV1.x + pV2.x; 171 + pOut.y = pV1.y + pV2.y; 172 + return pOut; 173 +} 174 + 175 +D3DXVECTOR2* D3DXVec2Subtract(D3DXVECTOR2* pOut, D3DXVECTOR2* pV1, D3DXVECTOR2* pV2) { 176 + debug(D3DX10_DEBUG) { 177 + if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; 178 + } 179 + pOut.x = pV1.x - pV2.x; 180 + pOut.y = pV1.y - pV2.y; 181 + return pOut; 182 +} 183 + 184 +D3DXVECTOR2* D3DXVec2Minimize(D3DXVECTOR2* pOut, D3DXVECTOR2* pV1, D3DXVECTOR2* pV2) { 185 + debug(D3DX10_DEBUG) { 186 + if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; 187 + } 188 + pOut.x = pV1.x < pV2.x ? pV1.x : pV2.x; 189 + pOut.y = pV1.y < pV2.y ? pV1.y : pV2.y; 190 + return pOut; 191 +} 192 + 193 +D3DXVECTOR2* D3DXVec2Maximize(D3DXVECTOR2* pOut, D3DXVECTOR2* pV1, D3DXVECTOR2* pV2) { 194 + debug(D3DX10_DEBUG) { 195 + if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; 196 + } 197 + pOut.x = pV1.x > pV2.x ? pV1.x : pV2.x; 198 + pOut.y = pV1.y > pV2.y ? pV1.y : pV2.y; 199 + return pOut; 200 +} 201 + 202 +D3DXVECTOR2* D3DXVec2Scale(D3DXVECTOR2* pOut, D3DXVECTOR2* pV, float s) { 203 + debug(D3DX10_DEBUG) { 204 + if ((pOut is null) || (pV is null)) return null; 205 + } 206 + pOut.x = pV.x * s; 207 + pOut.y = pV.y * s; 208 + return pOut; 209 +} 210 + 211 +D3DXVECTOR2* D3DXVec2Lerp(D3DXVECTOR2* pOut, D3DXVECTOR2* pV1, D3DXVECTOR2* pV2, float s) { 212 + debug(D3DX10_DEBUG) { 213 + if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; 214 + } 215 + pOut.x = pV1.x + s * (pV2.x - pV1.x); 216 + pOut.y = pV1.y + s * (pV2.y - pV1.y); 217 + return pOut; 218 +} 219 + 220 +extern(Windows) { 221 + D3DXVECTOR2* D3DXVec2Normalize(D3DXVECTOR2* pOut, D3DXVECTOR2* pV); 222 + D3DXVECTOR2* D3DXVec2Hermite(D3DXVECTOR2* pOut, D3DXVECTOR2* pV1, D3DXVECTOR2* pT1, D3DXVECTOR2* pV2, D3DXVECTOR2* pT2, float s); 223 + D3DXVECTOR2* D3DXVec2CatmullRom(D3DXVECTOR2* pOut, D3DXVECTOR2* pV0, D3DXVECTOR2* pV1, D3DXVECTOR2* pV2, D3DXVECTOR2* pV3, float s); 224 + D3DXVECTOR2* D3DXVec2BaryCentric(D3DXVECTOR2* pOut, D3DXVECTOR2* pV1, D3DXVECTOR2* pV2, D3DXVECTOR2* pV3, float f, float g); 225 + D3DXVECTOR4* D3DXVec2Transform(D3DXVECTOR4* pOut, D3DXVECTOR2* pV, D3DXMATRIX* pM); 226 + D3DXVECTOR2* D3DXVec2TransformCoord(D3DXVECTOR2* pOut, D3DXVECTOR2* pV, D3DXMATRIX* pM); 227 + D3DXVECTOR2* D3DXVec2TransformNormal(D3DXVECTOR2* pOut, D3DXVECTOR2* pV, D3DXMATRIX* pM); 228 + D3DXVECTOR4* D3DXVec2TransformArray(D3DXVECTOR4* pOut, UINT OutStride, D3DXVECTOR2* pV, UINT VStride, D3DXMATRIX* pM, UINT n); 229 + D3DXVECTOR2* D3DXVec2TransformCoordArray(D3DXVECTOR2* pOut, UINT OutStride, D3DXVECTOR2* pV, UINT VStride, D3DXMATRIX* pM, UINT n); 230 + D3DXVECTOR2* D3DXVec2TransformNormalArray(D3DXVECTOR2* pOut, UINT OutStride, D3DXVECTOR2* pV, UINT VStride, D3DXMATRIX* pM, UINT n); 231 +} 232 + 233 +float D3DXVec3Length(D3DXVECTOR3* pV) { 234 + debug(D3DX10_DEBUG) { 235 + if (pV is null) return 0.0; 236 + } 237 + return sqrtf((pV.x * pV.x) + (pV.y * pV.y) + (pV.z * pV.z)); 238 +} 239 + 240 +float D3DXVec3LengthSq(D3DXVECTOR3* pV) { 241 + debug(D3DX10_DEBUG) { 242 + if (pV is null) return 0.0; 243 + } 244 + return (pV.x * pV.x) + (pV.y * pV.y) + (pV.z * pV.z); 245 +} 246 + 247 +float D3DXVec3Dot(D3DXVECTOR3* pV1, D3DXVECTOR3* pV2) { 248 + debug(D3DX10_DEBUG) { 249 + if ((pV1 is null) || (pV2 is null)) return 0.0; 250 + } 251 + return (pV1.x * pV2.x) + (pV1.y * pV2.y) + (pV1.z * pV2.z); 252 +} 253 + 254 +D3DXVECTOR3* D3DXVec3Cross(D3DXVECTOR3* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2) { 255 + debug(D3DX10_DEBUG) { 256 + if ((pOut is null) || (pV1 is null) || (pV2 is null)) return 0.0; 257 + } 258 + D3DXVECTOR3 v; 259 + v.x = (pV1.y * pV2.z) - (pV1.z * pV2.y); 260 + v.y = (pV1.z * pV2.x) - (pV1.x * pV2.z); 261 + v.z = (pV1.x * pV2.y) - (pV1.y * pV2.x); 262 + *pOut = v; 263 + return pOut; 264 +} 265 + 266 +D3DXVECTOR3* D3DXVec3Add(D3DXVECTOR3* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2) { 267 + debug(D3DX10_DEBUG) { 268 + if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; 269 + } 270 + pOut.x = pV1.x + pV2.x; 271 + pOut.y = pV1.y + pV2.y; 272 + pOut.z = pV1.z + pV2.z; 273 + return pOut; 274 +} 275 + 276 +D3DXVECTOR3* D3DXVec3Subtract(D3DXVECTOR3* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2) { 277 + debug(D3DX10_DEBUG) { 278 + if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; 279 + } 280 + pOut.x = pV1.x - pV2.x; 281 + pOut.y = pV1.y - pV2.y; 282 + pOut.z = pV1.z - pV2.z; 283 + return pOut; 284 +} 285 + 286 +D3DXVECTOR3* D3DXVec3Minimize(D3DXVECTOR3* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2) { 287 + debug(D3DX10_DEBUG) { 288 + if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; 289 + } 290 + pOut.x = pV1.x < pV2.x ? pV1.x : pV2.x; 291 + pOut.y = pV1.y < pV2.y ? pV1.y : pV2.y; 292 + pOut.z = pV1.z < pV2.z ? pV1.z : pV2.z; 293 + return pOut; 294 +} 295 + 296 +D3DXVECTOR3* D3DXVec3Maximize(D3DXVECTOR3* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2) { 297 + debug(D3DX10_DEBUG) { 298 + if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; 299 + } 300 + pOut.x = pV1.x > pV2.x ? pV1.x : pV2.x; 301 + pOut.y = pV1.y > pV2.y ? pV1.y : pV2.y; 302 + pOut.z = pV1.z > pV2.z ? pV1.z : pV2.z; 303 + return pOut; 304 +} 305 + 306 +D3DXVECTOR3* D3DXVec3Scale(D3DXVECTOR3* pOut, D3DXVECTOR3* pV, float s) { 307 + debug(D3DX10_DEBUG) { 308 + if ((pOut is null) || (pV is null)) return null; 309 + } 310 + pOut.x = pV.x * s; 311 + pOut.y = pV.y * s; 312 + pOut.z = pV.z * s; 313 + return pOut; 314 +} 315 + 316 +D3DXVECTOR3* D3DXVec3Lerp(D3DXVECTOR3* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2, float s) { 317 + debug(D3DX10_DEBUG) { 318 + if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; 319 + } 320 + pOut.x = pV1.x + s * (pV2.x - pV1.x); 321 + pOut.y = pV1.y + s * (pV2.y - pV1.y); 322 + pOut.z = pV1.z + s * (pV2.z - pV1.z); 323 + return pOut; 324 +} 325 + 326 +extern(Windows) { 327 + D3DXVECTOR3* D3DXVec3Normalize(D3DXVECTOR3* pOut, D3DXVECTOR3* pV); 328 + D3DXVECTOR3* D3DXVec3Hermite(D3DXVECTOR3* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pT1, D3DXVECTOR3* pV2, D3DXVECTOR3* pT2, FLOAT s); 329 + D3DXVECTOR3* D3DXVec3CatmullRom(D3DXVECTOR3* pOut, D3DXVECTOR3* pV0, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2, D3DXVECTOR3* pV3, FLOAT s); 330 + D3DXVECTOR3* D3DXVec3BaryCentric(D3DXVECTOR3* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2, D3DXVECTOR3* pV3, FLOAT f, FLOAT g); 331 + D3DXVECTOR4* D3DXVec3Transform(D3DXVECTOR4* pOut, D3DXVECTOR3* pV, D3DXMATRIX* pM); 332 + D3DXVECTOR3* D3DXVec3TransformCoord(D3DXVECTOR3* pOut, D3DXVECTOR3* pV, D3DXMATRIX* pM); 333 + D3DXVECTOR3* D3DXVec3TransformNormal(D3DXVECTOR3* pOut, D3DXVECTOR3* pV, D3DXMATRIX* pM); 334 + D3DXVECTOR4* D3DXVec3TransformArray(D3DXVECTOR4* pOut, UINT OutStride, D3DXVECTOR3* pV, UINT VStride, D3DXMATRIX* pM, UINT n); 335 + D3DXVECTOR3* D3DXVec3TransformCoordArray(D3DXVECTOR3* pOut, UINT OutStride, D3DXVECTOR3* pV, UINT VStride, D3DXMATRIX* pM, UINT n); 336 + D3DXVECTOR3* D3DXVec3TransformNormalArray(D3DXVECTOR3* pOut, UINT OutStride, D3DXVECTOR3* pV, UINT VStride, D3DXMATRIX* pM, UINT n); 337 + D3DXVECTOR3* D3DXVec3Project(D3DXVECTOR3* pOut, D3DXVECTOR3* pV, D3D10_VIEWPORT* pViewport, D3DXMATRIX* pProjection, D3DXMATRIX* pView, D3DXMATRIX* pWorld); 338 + D3DXVECTOR3* D3DXVec3Unproject(D3DXVECTOR3* pOut, D3DXVECTOR3* pV, D3D10_VIEWPORT* pViewport, D3DXMATRIX* pProjection, D3DXMATRIX* pView, D3DXMATRIX* pWorld); 339 + D3DXVECTOR3* D3DXVec3ProjectArray(D3DXVECTOR3* pOut, UINT OutStride,D3DXVECTOR3* pV, UINT VStride,D3D10_VIEWPORT* pViewport, D3DXMATRIX* pProjection, D3DXMATRIX* pView, D3DXMATRIX* pWorld, UINT n); 340 + D3DXVECTOR3* D3DXVec3UnprojectArray(D3DXVECTOR3* pOut, UINT OutStride, D3DXVECTOR3* pV, UINT VStride, D3D10_VIEWPORT* pViewport, D3DXMATRIX* pProjection, D3DXMATRIX* pView, D3DXMATRIX* pWorld, UINT n); 341 +} 342 + 343 +float D3DXVec4Length(D3DXVECTOR4* pV) { 344 + debug(D3DX10_DEBUG) { 345 + if (pV is null) return 0.0; 346 + } 347 + return sqrtf((pV.x * pV.x) + (pV.y * pV.y) + (pV.z * pV.z) + (pV.w * pV.w)); 348 +} 349 + 350 +float D3DXVec4LengthSq(D3DXVECTOR4* pV) { 351 + debug(D3DX10_DEBUG) { 352 + if (pV is null) return 0.0; 353 + } 354 + return (pV.x * pV.x) + (pV.y * pV.y) + (pV.z * pV.z) + (pV.w * pV.w); 355 +} 356 + 357 +float D3DXVec4Dot(D3DXVECTOR4* pV1, D3DXVECTOR4* pV2) { 358 + debug(D3DX10_DEBUG) { 359 + if ((pV1 is null) || (pV2 is null)) return 0.0; 360 + } 361 + return (pV1.x * pV2.x) + (pV1.y * pV2.y) + (pV1.z * pV2.z) + (pV1.w * pV2.w); 362 +} 363 + 364 +D3DXVECTOR4* D3DXVec4Add(D3DXVECTOR4* pOut, D3DXVECTOR4* pV1, D3DXVECTOR4* pV2) { 365 + debug(D3DX10_DEBUG) { 366 + if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; 367 + } 368 + pOut.x = pV1.x + pV2.x; 369 + pOut.y = pV1.y + pV2.y; 370 + pOut.z = pV1.z + pV2.z; 371 + pOut.w = pV1.w + pV2.w; 372 + return pOut; 373 +} 374 + 375 +D3DXVECTOR4* D3DXVec4Subtract(D3DXVECTOR4* pOut, D3DXVECTOR4* pV1, D3DXVECTOR4* pV2) { 376 + debug(D3DX10_DEBUG) { 377 + if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; 378 + } 379 + pOut.x = pV1.x - pV2.x; 380 + pOut.y = pV1.y - pV2.y; 381 + pOut.z = pV1.z - pV2.z; 382 + pOut.w = pV1.w - pV2.w; 383 + return pOut; 384 +} 385 + 386 +D3DXVECTOR4* D3DXVec4Minimize(D3DXVECTOR4* pOut, D3DXVECTOR4* pV1, D3DXVECTOR4* pV2) { 387 + debug(D3DX10_DEBUG) { 388 + if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; 389 + } 390 + pOut.x = pV1.x < pV2.x ? pV1.x : pV2.x; 391 + pOut.y = pV1.y < pV2.y ? pV1.y : pV2.y; 392 + pOut.z = pV1.z < pV2.z ? pV1.z : pV2.z; 393 + pOut.w = pV1.w < pV2.w ? pV1.w : pV2.w; 394 + return pOut; 395 +} 396 + 397 +D3DXVECTOR4* D3DXVec4Maximize(D3DXVECTOR4* pOut, D3DXVECTOR4* pV1, D3DXVECTOR4* pV2) { 398 + debug(D3DX10_DEBUG) { 399 + if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; 400 + } 401 + pOut.x = pV1.x > pV2.x ? pV1.x : pV2.x; 402 + pOut.y = pV1.y > pV2.y ? pV1.y : pV2.y; 403 + pOut.z = pV1.z > pV2.z ? pV1.z : pV2.z; 404 + pOut.w = pV1.w > pV2.w ? pV1.w : pV2.w; 405 + return pOut; 406 +} 407 + 408 +D3DXVECTOR4* D3DXVec4Scale(D3DXVECTOR4* pOut, D3DXVECTOR4* pV, float s) { 409 + debug(D3DX10_DEBUG) { 410 + if ((pOut is null) || (pV is null)) return null; 411 + } 412 + pOut.x = pV.x * s; 413 + pOut.y = pV.y * s; 414 + pOut.z = pV.z * s; 415 + pOut.w = pV.w * s; 416 + return pOut; 417 +} 418 + 419 +D3DXVECTOR4* D3DXVec4Lerp(D3DXVECTOR4* pOut, D3DXVECTOR4* pV1, D3DXVECTOR4* pV2, float s) { 420 + debug(D3DX10_DEBUG) { 421 + if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; 422 + } 423 + pOut.x = pV1.x + s * (pV2.x - pV1.x); 424 + pOut.y = pV1.y + s * (pV2.y - pV1.y); 425 + pOut.z = pV1.z + s * (pV2.z - pV1.z); 426 + pOut.w = pV1.w + s * (pV2.w - pV1.w); 427 + return pOut; 428 +} 429 + 430 +extern(Windows) { 431 + D3DXVECTOR4* D3DXVec4Cross(D3DXVECTOR4* pOut, D3DXVECTOR4* pV1, D3DXVECTOR4* pV2, D3DXVECTOR4* pV3); 432 + D3DXVECTOR4* D3DXVec4Normalize(D3DXVECTOR4* pOut, D3DXVECTOR4* pV); 433 + D3DXVECTOR4* D3DXVec4Hermite(D3DXVECTOR4* pOut, D3DXVECTOR4* pV1, D3DXVECTOR4* pT1, D3DXVECTOR4* pV2, D3DXVECTOR4* pT2, FLOAT s); 434 + D3DXVECTOR4* D3DXVec4CatmullRom(D3DXVECTOR4* pOut, D3DXVECTOR4* pV0, D3DXVECTOR4* pV1, D3DXVECTOR4* pV2, D3DXVECTOR4* pV3, FLOAT s); 435 + D3DXVECTOR4* D3DXVec4BaryCentric(D3DXVECTOR4* pOut, D3DXVECTOR4* pV1, D3DXVECTOR4* pV2, D3DXVECTOR4* pV3, FLOAT f, FLOAT g); 436 + D3DXVECTOR4* D3DXVec4Transform(D3DXVECTOR4* pOut, D3DXVECTOR4* pV, D3DXMATRIX* pM); 437 + D3DXVECTOR4* D3DXVec4TransformArray(D3DXVECTOR4* pOut, UINT OutStride, D3DXVECTOR4* pV, UINT VStride, D3DXMATRIX* pM, UINT n); 438 +} 439 + 440 +D3DXMATRIX* D3DXMatrixIdentity(D3DXMATRIX *pOut) { 441 + debug(D3DX10_DEBUG) { 442 + if (pOut is null) return NULL; 443 + } 444 + pOut.m[0][1] = pOut.m[0][2] = pOut.m[0][3] = 445 + pOut.m[1][0] = pOut.m[1][2] = pOut.m[1][3] = 446 + pOut.m[2][0] = pOut.m[2][1] = pOut.m[2][3] = 447 + pOut.m[3][0] = pOut.m[3][1] = pOut.m[3][2] = 0.0; 448 + pOut.m[0][0] = pOut.m[1][1] = pOut.m[2][2] = pOut.m[3][3] = 1.0; 449 + return pOut; 450 +} 451 + 452 + 453 +BOOL D3DXMatrixIsIdentity(D3DXMATRIX *pM) { 454 + debug(D3DX10_DEBUG) { 455 + if(pM is null) return FALSE; 456 + } 457 + return (pM.m[0][0] == 1.0f) && (pM.m[0][1] == 0.0f) && (pM.m[0][2] == 0.0f) && (pM.m[0][3] == 0.0f) && 458 + (pM.m[1][0] == 0.0f) && (pM.m[1][1] == 1.0f) && (pM.m[1][2] == 0.0f) && (pM.m[1][3] == 0.0f) && 459 + (pM.m[2][0] == 0.0f) && (pM.m[2][1] == 0.0f) && (pM.m[2][2] == 1.0f) && (pM.m[2][3] == 0.0f) && 460 + (pM.m[3][0] == 0.0f) && (pM.m[3][1] == 0.0f) && (pM.m[3][2] == 0.0f) && (pM.m[3][3] == 1.0f); 461 +} 462 + 463 +extern(Windows) { 464 + FLOAT D3DXMatrixDeterminant(D3DXMATRIX* pM); 465 + HRESULT D3DXMatrixDecompose(D3DXVECTOR3* pOutScale, D3DXQUATERNION* pOutRotation, D3DXVECTOR3* pOutTranslation, D3DXMATRIX* pM); 466 + D3DXMATRIX* D3DXMatrixTranspose(D3DXMATRIX* pOut, D3DXMATRIX* pM); 467 + D3DXMATRIX* D3DXMatrixMultiply(D3DXMATRIX* pOut, D3DXMATRIX* pM1, D3DXMATRIX* pM2); 468 + D3DXMATRIX* D3DXMatrixMultiplyTranspose(D3DXMATRIX* pOut, D3DXMATRIX* pM1, D3DXMATRIX* pM2); 469 + D3DXMATRIX* D3DXMatrixInverse(D3DXMATRIX* pOut, FLOAT* pDeterminant, D3DXMATRIX* pM); 470 + D3DXMATRIX* D3DXMatrixScaling(D3DXMATRIX* pOut, FLOAT sx, FLOAT sy, FLOAT sz); 471 + D3DXMATRIX* D3DXMatrixTranslation(D3DXMATRIX* pOut, FLOAT x, FLOAT y, FLOAT z); 472 + D3DXMATRIX* D3DXMatrixRotationX(D3DXMATRIX* pOut, FLOAT Angle); 473 + D3DXMATRIX* D3DXMatrixRotationY(D3DXMATRIX* pOut, FLOAT Angle); 474 + D3DXMATRIX* D3DXMatrixRotationZ(D3DXMATRIX* pOut, FLOAT Angle); 475 + D3DXMATRIX* D3DXMatrixRotationAxis(D3DXMATRIX* pOut, D3DXVECTOR3* pV, FLOAT Angle); 476 + D3DXMATRIX* D3DXMatrixRotationQuaternion(D3DXMATRIX* pOut, D3DXQUATERNION* pQ); 477 + D3DXMATRIX* D3DXMatrixRotationYawPitchRoll(D3DXMATRIX* pOut, FLOAT Yaw, FLOAT Pitch, FLOAT Roll); 478 + D3DXMATRIX* D3DXMatrixTransformation(D3DXMATRIX* pOut, D3DXVECTOR3* pScalingCenter, D3DXQUATERNION* pScalingRotation, D3DXVECTOR3* pScaling, D3DXVECTOR3* pRotationCenter, D3DXQUATERNION* pRotation, D3DXVECTOR3* pTranslation); 479 + D3DXMATRIX* D3DXMatrixTransformation2D(D3DXMATRIX* pOut, D3DXVECTOR2* pScalingCenter, FLOAT ScalingRotation, D3DXVECTOR2* pScaling, D3DXVECTOR2* pRotationCenter, FLOAT Rotation, D3DXVECTOR2* pTranslation); 480 + D3DXMATRIX* D3DXMatrixAffineTransformation(D3DXMATRIX* pOut, FLOAT Scaling, D3DXVECTOR3* pRotationCenter, D3DXQUATERNION* pRotation, D3DXVECTOR3* pTranslation); 481 + D3DXMATRIX* D3DXMatrixAffineTransformation2D(D3DXMATRIX* pOut, FLOAT Scaling, D3DXVECTOR2* pRotationCenter, FLOAT Rotation, D3DXVECTOR2* pTranslation); 482 + D3DXMATRIX* D3DXMatrixLookAtRH(D3DXMATRIX* pOut, D3DXVECTOR3* pEye, D3DXVECTOR3* pAt, D3DXVECTOR3* pUp); 483 + D3DXMATRIX* D3DXMatrixLookAtLH(D3DXMATRIX* pOut, D3DXVECTOR3* pEye, D3DXVECTOR3* pAt, D3DXVECTOR3* pUp); 484 + D3DXMATRIX* D3DXMatrixPerspectiveRH(D3DXMATRIX* pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf); 485 + D3DXMATRIX* D3DXMatrixPerspectiveLH(D3DXMATRIX* pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf); 486 + D3DXMATRIX* D3DXMatrixPerspectiveFovRH(D3DXMATRIX* pOut, FLOAT fovy, FLOAT Aspect, FLOAT zn, FLOAT zf); 487 + D3DXMATRIX* D3DXMatrixPerspectiveFovLH(D3DXMATRIX* pOut, FLOAT fovy, FLOAT Aspect, FLOAT zn, FLOAT zf); 488 + D3DXMATRIX* D3DXMatrixPerspectiveOffCenterRH(D3DXMATRIX* pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf); 489 + D3DXMATRIX* D3DXMatrixPerspectiveOffCenterLH(D3DXMATRIX* pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf); 490 + D3DXMATRIX* D3DXMatrixOrthoRH(D3DXMATRIX* pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf); 491 + D3DXMATRIX* D3DXMatrixOrthoLH(D3DXMATRIX* pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf); 492 + D3DXMATRIX* D3DXMatrixOrthoOffCenterRH(D3DXMATRIX* pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf); 493 + D3DXMATRIX* D3DXMatrixOrthoOffCenterLH(D3DXMATRIX* pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf); 494 + D3DXMATRIX* D3DXMatrixShadow(D3DXMATRIX* pOut, D3DXVECTOR4* pLight, D3DXPLANE* pPlane); 495 + D3DXMATRIX* D3DXMatrixReflect(D3DXMATRIX* pOut, D3DXPLANE* pPlane); 496 +} 497 + 498 +float D3DXQuaternionLength(D3DXQUATERNION *pQ) { 499 + debug(D3DX10_DEBUG) { 500 + if (pQ is null) return 0.0f; 501 + } 502 + return sqrtf((pQ.x * pQ.x) + (pQ.y * pQ.y) + (pQ.z * pQ.z) + (pQ.w * pQ.w)); 503 +} 504 + 505 +float D3DXQuaternionLengthSq(D3DXQUATERNION *pQ) { 506 + debug(D3DX10_DEBUG) { 507 + if(pQ is null) return 0.0f; 508 + } 509 + return (pQ.x * pQ.x) + (pQ.y * pQ.y) + (pQ.z * pQ.z) + (pQ.w * pQ.w); 510 +} 511 + 512 +float D3DXQuaternionDot(D3DXQUATERNION *pQ1, D3DXQUATERNION *pQ2) { 513 + debug(D3DX10_DEBUG) { 514 + if((pQ1 is null) || (pQ2 is null)) return 0.0f; 515 + } 516 + return (pQ1.x * pQ2.x) + (pQ1.y * pQ2.y) + (pQ1.z * pQ2.z) + (pQ1.w * pQ2.w); 517 +} 518 + 519 +D3DXQUATERNION* D3DXQuaternionIdentity(D3DXQUATERNION *pOut) { 520 + debug(D3DX10_DEBUG) { 521 + if(pOut is null) return null; 522 + } 523 + pOut.x = pOut.y = pOut.z = 0.0f; 524 + pOut.w = 1.0f; 525 + return pOut; 526 +} 527 + 528 +bool D3DXQuaternionIsIdentity(D3DXQUATERNION *pQ) { 529 + debug(D3DX10_DEBUG) { 530 + if(pQ is null) return false; 531 + } 532 + return (pQ.x == 0.0f) && (pQ.y == 0.0f) && (pQ.z == 0.0f) && (pQ.w == 1.0f); 533 +} 534 + 535 +D3DXQUATERNION* D3DXQuaternionConjugate(D3DXQUATERNION *pOut, D3DXQUATERNION *pQ) { 536 + debug(D3DX10_DEBUG) { 537 + if((pOut is null) || (pQis is null)) return null; 538 + } 539 + pOut.x = -pQ.x; 540 + pOut.y = -pQ.y; 541 + pOut.z = -pQ.z; 542 + pOut.w = pQ.w; 543 + return pOut; 544 +} 545 + 546 +extern(Windows) { 547 + void D3DXQuaternionToAxisAngle(D3DXQUATERNION* pQ, D3DXVECTOR3* pAxis, FLOAT* pAngle); 548 + D3DXQUATERNION* D3DXQuaternionRotationMatrix(D3DXQUATERNION* pOut, D3DXMATRIX* pM); 549 + D3DXQUATERNION* D3DXQuaternionRotationAxis(D3DXQUATERNION* pOut, D3DXVECTOR3* pV, FLOAT Angle); 550 + D3DXQUATERNION* D3DXQuaternionRotationYawPitchRoll(D3DXQUATERNION* pOut, FLOAT Yaw, FLOAT Pitch, FLOAT Roll); 551 + D3DXQUATERNION* D3DXQuaternionMultiply(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ1, D3DXQUATERNION* pQ2); 552 + D3DXQUATERNION* D3DXQuaternionNormalize(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ); 553 + D3DXQUATERNION* D3DXQuaternionInverse(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ); 554 + D3DXQUATERNION* D3DXQuaternionLn(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ); 555 + D3DXQUATERNION* D3DXQuaternionExp(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ); 556 + D3DXQUATERNION* D3DXQuaternionSlerp(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ1, D3DXQUATERNION* pQ2, FLOAT t); 557 + D3DXQUATERNION* D3DXQuaternionSquad(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ1, D3DXQUATERNION* pA, D3DXQUATERNION* pB, D3DXQUATERNION* pC, FLOAT t); 558 + void D3DXQuaternionSquadSetup(D3DXQUATERNION* pAOut, D3DXQUATERNION* pBOut, D3DXQUATERNION* pCOut, D3DXQUATERNION* pQ0, D3DXQUATERNION* pQ1, D3DXQUATERNION* pQ2, D3DXQUATERNION* pQ3); 559 + D3DXQUATERNION* D3DXQuaternionBaryCentric(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ1, D3DXQUATERNION* pQ2, D3DXQUATERNION* pQ3, FLOAT f, FLOAT g); 560 +} 561 + 562 +float D3DXPlaneDot(D3DXPLANE *pP, D3DXVECTOR4 *pV) { 563 + debug(D3DX10_DEBUG) { 564 + if((pP is null) || (pV is null)) return 0.0f; 565 + } 566 + return (pP.a * pV.x) + (pP.b * pV.y) + (pP.c * pV.z) + (pP.d * pV.w); 567 +} 568 + 569 +float D3DXPlaneDotCoord(D3DXPLANE *pP, D3DXVECTOR3 *pV) { 570 + debug(D3DX10_DEBUG) { 571 + if((pP is null) || (pV is null)) return 0.0f; 572 + } 573 + return (pP.a * pV.x) + (pP.b * pV.y) + (pP.c * pV.z) + pP.d; 574 +} 575 + 576 +float D3DXPlaneDotNormal(D3DXPLANE *pP, D3DXVECTOR3 *pV) { 577 + debug(D3DX10_DEBUG) { 578 + if((pP is null) || (pV is null)) return 0.0f; 579 + } 580 + return (pP.a * pV.x) + (pP.b * pV.y) + (pP.c * pV.z); 581 +} 582 + 583 +D3DXPLANE* D3DXPlaneScale(D3DXPLANE *pOut, D3DXPLANE *pP, float s) { 584 + debug(D3DX10_DEBUG) { 585 + if((pOut is null) || (pP is null)) return null; 586 + } 587 + pOut.a = pP.a * s; 588 + pOut.b = pP.b * s; 589 + pOut.c = pP.c * s; 590 + pOut.d = pP.d * s; 591 + return pOut; 592 +} 593 + 594 +extern(Windows) { 595 + D3DXPLANE* D3DXPlaneNormalize(D3DXPLANE* pOut, D3DXPLANE* pP); 596 + D3DXVECTOR3* D3DXPlaneIntersectLine(D3DXVECTOR3* pOut, D3DXPLANE* pP, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2); 597 + D3DXPLANE* D3DXPlaneFromPointNormal(D3DXPLANE* pOut, D3DXVECTOR3* pPoint, D3DXVECTOR3* pNormal); 598 + D3DXPLANE* D3DXPlaneFromPoints(D3DXPLANE* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2, D3DXVECTOR3* pV3); 599 + D3DXPLANE* D3DXPlaneTransform(D3DXPLANE* pOut, D3DXPLANE* pP, D3DXMATRIX* pM); 600 + D3DXPLANE* D3DXPlaneTransformArray(D3DXPLANE* pOut, UINT OutStride, D3DXPLANE* pP, UINT PStride, D3DXMATRIX* pM, UINT n); 601 +} 602 + 603 +D3DXCOLOR* D3DXColorNegative(D3DXCOLOR* pOut, D3DXCOLOR* pC) { 604 + debug(D3DX10_DEBUG) { 605 + if((pOut is null) || (pC is null)) return null; 606 + } 607 + pOut.r = 1.0f - pC.r; 608 + pOut.g = 1.0f - pC.g; 609 + pOut.b = 1.0f - pC.b; 610 + pOut.a = pC.a; 611 + return pOut; 612 +} 613 + 614 +D3DXCOLOR* D3DXColorAdd(D3DXCOLOR* pOut, D3DXCOLOR* pC1, D3DXCOLOR* pC2) { 615 + debug(D3DX10_DEBUG) { 616 + if((pOut is null) || (pC1 is null) || (pC2 is null)) return null; 617 + } 618 + pOut.r = pC1.r + pC2.r; 619 + pOut.g = pC1.g + pC2.g; 620 + pOut.b = pC1.b + pC2.b; 621 + pOut.a = pC1.a + pC2.a; 622 + return pOut; 623 +} 624 + 625 +D3DXCOLOR* D3DXColorSubtract(D3DXCOLOR* pOut, D3DXCOLOR* pC1, D3DXCOLOR* pC2) { 626 + debug(D3DX10_DEBUG) { 627 + if((pOut is null) || (pC1 is null) || (pC2 is null)) return null; 628 + } 629 + pOut.r = pC1.r - pC2.r; 630 + pOut.g = pC1.g - pC2.g; 631 + pOut.b = pC1.b - pC2.b; 632 + pOut.a = pC1.a - pC2.a; 633 + return pOut; 634 +} 635 + 636 +D3DXCOLOR* D3DXColorScale(D3DXCOLOR* pOut, D3DXCOLOR* pC, float s) { 637 + debug(D3DX10_DEBUG) { 638 + if((pOut is null) || (pC is null)) return null; 639 + } 640 + pOut.r = pC.r * s; 641 + pOut.g = pC.g * s; 642 + pOut.b = pC.b * s; 643 + pOut.a = pC.a * s; 644 + return pOut; 645 +} 646 + 647 +D3DXCOLOR* D3DXColorModulate(D3DXCOLOR* pOut, D3DXCOLOR* pC1, D3DXCOLOR* pC2) { 648 + debug(D3DX10_DEBUG) { 649 + if((pOut is null) || (pC1 is null) || (pC2 is null)) return null; 650 + } 651 + pOut.r = pC1.r * pC2.r; 652 + pOut.g = pC1.g * pC2.g; 653 + pOut.b = pC1.b * pC2.b; 654 + pOut.a = pC1.a * pC2.a; 655 + return pOut; 656 +} 657 + 658 +D3DXCOLOR* D3DXColorLerp(D3DXCOLOR* pOut, D3DXCOLOR* pC1, D3DXCOLOR* pC2, float s) { 659 + debug(D3DX10_DEBUG) { 660 + if((pOut is null) || (pC1 is null) || (pC2 is null)) return null; 661 + } 662 + pOut.r = pC1.r + s * (pC2.r - pC1.r); 663 + pOut.g = pC1.g + s * (pC2.g - pC1.g); 664 + pOut.b = pC1.b + s * (pC2.b - pC1.b); 665 + pOut.a = pC1.a + s * (pC2.a - pC1.a); 666 + return pOut; 667 +} 668 + 669 +extern(Windows) { 670 + D3DXCOLOR* D3DXColorAdjustSaturation(D3DXCOLOR* pOut, D3DXCOLOR* pC, float s); 671 + D3DXCOLOR* D3DXColorAdjustContrast(D3DXCOLOR* pOut, D3DXCOLOR* pC, float c); 672 + FLOAT D3DXFresnelTerm(float CosTheta, float RefractionIndex); 673 +} 674 + 675 +extern (C) const GUID IID_ID3DXMatrixStack = {0xc7885ba7, 0xf990, 0x4fe7, [0x92, 0x2d, 0x85, 0x15, 0xe4, 0x77, 0xdd, 0x85]}; 676 + 677 +interface ID3DXMatrixStack : IUnknown { 678 + extern(Windows) : 679 + HRESULT Pop(); 680 + HRESULT Push(); 681 + HRESULT LoadIdentity(); 682 + HRESULT LoadMatrix(D3DXMATRIX* pM ); 683 + HRESULT MultMatrix(D3DXMATRIX* pM ); 684 + HRESULT MultMatrixLocal(D3DXMATRIX* pM ); 685 + HRESULT RotateAxis(D3DXVECTOR3* pV, float Angle); 686 + HRESULT RotateAxisLocal(D3DXVECTOR3* pV, float Angle); 687 + HRESULT RotateYawPitchRoll(float Yaw, float Pitch, float Roll); 688 + HRESULT RotateYawPitchRollLocal(float Yaw, float Pitch, float Roll); 689 + HRESULT Scale(float x, float y, float z); 690 + HRESULT ScaleLocal(float x, float y, float z); 691 + HRESULT Translate(float x, float y, float z ); 692 + HRESULT TranslateLocal(float x, float y, float z); 693 + D3DXMATRIX* GetTop(); 694 +} 695 + 696 +//TODO extern(Windows) HRESULT D3DXCreateMatrixStack(UINT Flags, D3DXMATRIXSTACK* ppStack); 697 + 698 +const D3DXSH_MINORDER = 2; 699 +const D3DXSH_MAXORDER = 6; 700 + 701 +extern(Windows) { 702 + float* D3DXSHEvalDirection(float* pOut, UINT Order, D3DXVECTOR3* pDir); 703 + float* D3DXSHRotate(float* pOut, UINT Order, D3DXMATRIX* pMatrix, float* pIn); 704 + float* D3DXSHRotateZ(float* pOut, UINT Order, float Angle, float* pIn); 705 + float* D3DXSHAdd(float* pOut, UINT Order, float* pA, float* pB); 706 + float* D3DXSHScale(float* pOut, UINT Order, float* pIn, float Scale); 707 + float D3DXSHDot(UINT Order, float* pA, float* pB); 708 + float* D3DXSHMultiply2(float* pOut, float* pF, float* pG); 709 + float* D3DXSHMultiply3(float* pOut, float* pF, float* pG); 710 + float* D3DXSHMultiply4(float* pOut, float* pF, float* pG); 711 + float* D3DXSHMultiply5(float* pOut, float* pF, float* pG); 712 + float* D3DXSHMultiply6(float* pOut, float* pF, float* pG); 713 + HRESULT D3DXSHEvalDirectionalLight(UINT Order, D3DXVECTOR3* pDir, float RIntensity, float GIntensity, float BIntensity, float* pROut, float* pGOut, float* pBOut); 714 + HRESULT D3DXSHEvalSphericalLight(UINT Order, D3DXVECTOR3* pPos, float Radius, float RIntensity, float GIntensity, float BIntensity, float* pROut, float* pGOut, float* pBOut); 715 + HRESULT D3DXSHEvalConeLight(UINT Order, D3DXVECTOR3* pDir, float Radius, float RIntensity, float GIntensity, float BIntensity, float* pROut, float* pGOut, float* pBOut); 716 + HRESULT D3DXSHEvalHemisphereLight(UINT Order, D3DXVECTOR3* pDir, D3DXCOLOR Top, D3DXCOLOR Bottom, float* pROut, float* pGOut, float* pBOut); 717 + BOOL D3DXIntersectTri(D3DXVECTOR3* p0, D3DXVECTOR3* p1, D3DXVECTOR3* p2, D3DXVECTOR3* pRayPos, D3DXVECTOR3* pRayDir, float* pU, float* pV, float* pDist); 718 + BOOL D3DXSphereBoundProbe(D3DXVECTOR3* pCenter, float Radius, D3DXVECTOR3* pRayPosition, D3DXVECTOR3* pRayDirection); 719 + BOOL D3DXBoxBoundProbe(D3DXVECTOR3* pMin, D3DXVECTOR3* pMax, D3DXVECTOR3* pRayPosition, D3DXVECTOR3* pRayDirection); 720 + HRESULT D3DXComputeBoundingSphere(D3DXVECTOR3* pFirstPosition, DWORD NumVertices, DWORD dwStride, D3DXVECTOR3* pCenter, float* pRadius); 721 + HRESULT D3DXComputeBoundingBox(D3DXVECTOR3* pFirstPosition, DWORD NumVertices, DWORD dwStride, D3DXVECTOR3* pMin, D3DXVECTOR3* pMax); 722 +} 723 + 724 +enum D3DX_CPU_OPTIMIZATION { 725 + D3DX_NOT_OPTIMIZED = 0, 726 + D3DX_3DNOW_OPTIMIZED, 727 + D3DX_SSE2_OPTIMIZED, 728 + D3DX_SSE_OPTIMIZED 729 +} 730 + 731 +extern(Windows) D3DX_CPU_OPTIMIZATION D3DXCpuOptimizations(bool Enable);

Added src/win32/directx/d3dx10mesh.d version [46de09d905522b50]

1 +/***********************************************************************\ 2 +* d3dx10mesh.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Placed into public domain * 7 +\***********************************************************************/ 8 +module win32.directx.d3dx10mesh; 9 + 10 +private import win32.windows; 11 +private import win32.directx.d3d10; 12 +private import win32.directx.d3dx10; 13 + 14 +extern(C) const GUID IID_ID3DX10BaseMesh = {0x7ed943dd, 0x52e8, 0x40b5, [0xa8, 0xd8, 0x76, 0x68, 0x5c, 0x40, 0x63, 0x30]}; 15 +extern(C) const GUID IID_ID3DX10MeshBuffer = {0x4b0d117, 0x1041, 0x46b1, [0xaa, 0x8a, 0x39, 0x52, 0x84, 0x8b, 0xa2, 0x2e]}; 16 +extern(C) const GUID IID_ID3DX10Mesh = {0x4020e5c2, 0x1403, 0x4929, [0x88, 0x3f, 0xe2, 0xe8, 0x49, 0xfa, 0xc1, 0x95]}; 17 +extern(C) const GUID IID_ID3DX10PMesh = {0x8875769a, 0xd579, 0x4088, [0xaa, 0xeb, 0x53, 0x4d, 0x1a, 0xd8, 0x4e, 0x96]}; 18 +extern(C) const GUID IID_ID3DX10SPMesh = {0x667ea4c7, 0xf1cd, 0x4386, [0xb5, 0x23, 0x7c, 0x2, 0x90, 0xb8, 0x3c, 0xc5]}; 19 +extern(C) const GUID IID_ID3DX10PatchMesh = {0x3ce6cc22, 0xdbf2, 0x44f4, [0x89, 0x4d, 0xf9, 0xc3, 0x4a, 0x33, 0x71, 0x39]}; 20 + 21 +enum D3DX10_MESH { 22 + D3DX10_MESH_32_BIT = 0x001, 23 + D3DX10_MESH_GS_ADJACENCY = 0x004 24 +} 25 + 26 +struct D3DX10_ATTRIBUTE_RANGE { 27 + UINT AttribId; 28 + UINT FaceStart; 29 + UINT FaceCount; 30 + UINT VertexStart; 31 + UINT VertexCount; 32 +} 33 + 34 +enum D3DX10_MESH_DISCARD_FLAGS { 35 + D3DX10_MESH_DISCARD_ATTRIBUTE_BUFFER = 0x01, 36 + D3DX10_MESH_DISCARD_ATTRIBUTE_TABLE = 0x02, 37 + D3DX10_MESH_DISCARD_POINTREPS = 0x04, 38 + D3DX10_MESH_DISCARD_ADJACENCY = 0x08, 39 + D3DX10_MESH_DISCARD_DEVICE_BUFFERS = 0x10 40 +} 41 + 42 +struct D3DX10_WELD_EPSILONS { 43 + FLOAT Position; 44 + FLOAT BlendWeights; 45 + FLOAT Normal; 46 + FLOAT PSize; 47 + FLOAT Specular; 48 + FLOAT Diffuse; 49 + FLOAT[8] Texcoord; 50 + FLOAT Tangent; 51 + FLOAT Binormal; 52 + FLOAT TessFactor; 53 +} 54 + 55 +struct D3DX10_INTERSECT_INFO { 56 + UINT FaceIndex; 57 + FLOAT U; 58 + FLOAT V; 59 + FLOAT Dist; 60 +} 61 + 62 +interface ID3DX10MeshBuffer : IUnknown { 63 + extern(Windows) : 64 + HRESULT Map(void** ppData, SIZE_T* pSize); 65 + HRESULT Unmap(); 66 + SIZE_T GetSize(); 67 +} 68 + 69 +interface ID3DX10Mesh : IUnknown { 70 + extern(Windows) : 71 + UINT GetFaceCount(); 72 + UINT GetVertexCount(); 73 + UINT GetVertexBufferCount(); 74 + UINT GetFlags(); 75 + HRESULT GetVertexDescription(D3D10_INPUT_ELEMENT_DESC** ppDesc, UINT* pDeclCount); 76 + HRESULT SetVertexData(UINT iBuffer, void* pData); 77 + HRESULT GetVertexBuffer(UINT iBuffer, ID3DX10MeshBuffer** ppVertexBuffer); 78 + HRESULT SetIndexData(void* pData, UINT cIndices); 79 + HRESULT GetIndexBuffer(ID3DX10MeshBuffer** ppIndexBuffer); 80 + HRESULT SetAttributeData(UINT* pData); 81 + HRESULT GetAttributeBuffer(ID3DX10MeshBuffer** ppAttributeBuffer); 82 + HRESULT SetAttributeTable(D3DX10_ATTRIBUTE_RANGE* pAttribTable, UINT cAttribTableSize); 83 + HRESULT GetAttributeTable(D3DX10_ATTRIBUTE_RANGE* pAttribTable, UINT* pAttribTableSize); 84 + HRESULT GenerateAdjacencyAndPointReps(FLOAT Epsilon); 85 + HRESULT GenerateGSAdjacency(); 86 + HRESULT SetAdjacencyData(UINT* pAdjacency); 87 + HRESULT GetAdjacencyBuffer(ID3DX10MeshBuffer** ppAdjacency); 88 + HRESULT SetPointRepData(UINT* pPointReps); 89 + HRESULT GetPointRepBuffer(ID3DX10MeshBuffer** ppPointReps); 90 + HRESULT Discard(D3DX10_MESH_DISCARD_FLAGS dwDiscard); 91 + HRESULT CloneMesh(UINT Flags, LPCSTR pPosSemantic, D3D10_INPUT_ELEMENT_DESC* pDesc, UINT DeclCount, ID3DX10Mesh** ppCloneMesh); 92 + HRESULT Optimize(UINT Flags, UINT * pFaceRemap, ID3D10Blob* ppVertexRemap); 93 + HRESULT GenerateAttributeBufferFromTable(); 94 + HRESULT Intersect(D3DXVECTOR3* pRayPos, D3DXVECTOR3* pRayDir, UINT* pHitCount, UINT* pFaceIndex, float* pU, float* pV, float* pDist, ID3D10Blob* ppAllHits); 95 + HRESULT IntersectSubset(UINT AttribId, D3DXVECTOR3* pRayPos, D3DXVECTOR3* pRayDir, UINT* pHitCount, UINT* pFaceIndex, float* pU, float* pV, float* pDist, ID3D10Blob* ppAllHits); 96 + HRESULT CommitToDevice(); 97 + HRESULT DrawSubset(UINT AttribId); 98 + HRESULT DrawSubsetInstanced(UINT AttribId, UINT InstanceCount, UINT StartInstanceLocation); 99 + HRESULT GetDeviceVertexBuffer(UINT iBuffer, ID3D10Buffer** ppVertexBuffer); 100 + HRESULT GetDeviceIndexBuffer(ID3D10Buffer** ppIndexBuffer); 101 +} 102 + 103 +HRESULT D3DX10CreateMesh(ID3D10Device* pDevice, D3D10_INPUT_ELEMENT_DESC* pDeclaration, UINT DeclCount, LPCSTR pPositionSemantic, UINT VertexCount, UINT FaceCount, UINT Options, ID3DX10Mesh** ppMesh); 104 + 105 +enum D3DX10_MESHOPT { 106 + D3DX10_MESHOPT_COMPACT = 0x01000000, 107 + D3DX10_MESHOPT_ATTR_SORT = 0x02000000, 108 + D3DX10_MESHOPT_VERTEX_CACHE = 0x04000000, 109 + D3DX10_MESHOPT_STRIP_REORDER = 0x08000000, 110 + D3DX10_MESHOPT_IGNORE_VERTS = 0x10000000, 111 + D3DX10_MESHOPT_DO_NOT_SPLIT = 0x20000000, 112 + D3DX10_MESHOPT_DEVICE_INDEPENDENT = 0x00400000 113 +} 114 + 115 +extern(C) const GUID IID_ID3DX10SkinInfo = {0x420bd604, 0x1c76, 0x4a34, [0xa4, 0x66, 0xe4, 0x5d, 0x6, 0x58, 0xa3, 0x2c]}; 116 + 117 +const D3DX10_SKININFO_NO_SCALING = 0; 118 +const D3DX10_SKININFO_SCALE_TO_1 = 1; 119 +const D3DX10_SKININFO_SCALE_TO_TOTAL = 2; 120 + 121 +struct D3DX10_SKINNING_CHANNEL { 122 + UINT SrcOffset; 123 + UINT DestOffset; 124 + BOOL IsNormal; 125 +} 126 + 127 +interface ID3DX10SkinInfo : IUnknown { 128 + extern(Windows) : 129 + HRESULT QueryInterface(REFIID iid, LPVOID* ppv); 130 + ULONG AddRef(); 131 + ULONG Release(); 132 + UINT GetNumVertices(); 133 + UINT GetNumBones(); 134 + UINT GetMaxBoneInfluences(); 135 + HRESULT AddVertices(UINT Count); 136 + HRESULT RemapVertices(UINT NewVertexCount, UINT* pVertexRemap); 137 + HRESULT AddBones(UINT Count); 138 + HRESULT RemoveBone(UINT Index); 139 + HRESULT RemapBones(UINT NewBoneCount, UINT* pBoneRemap); 140 + HRESULT AddBoneInfluences(UINT BoneIndex, UINT InfluenceCount, UINT* pIndices, float* pWeights); 141 + HRESULT ClearBoneInfluences(UINT BoneIndex); 142 + UINT GetBoneInfluenceCount(UINT BoneIndex); 143 + HRESULT GetBoneInfluences(UINT BoneIndex, UINT Offset, UINT Count, UINT* pDestIndices, float* pDestWeights); 144 + HRESULT FindBoneInfluenceIndex(UINT BoneIndex, UINT VertexIndex, UINT* pInfluenceIndex); 145 + HRESULT SetBoneInfluence(UINT BoneIndex, UINT InfluenceIndex, float Weight); 146 + HRESULT GetBoneInfluence(UINT BoneIndex, UINT InfluenceIndex, float* pWeight); 147 + HRESULT Compact(UINT MaxPerVertexInfluences, UINT ScaleMode, float MinWeight); 148 + HRESULT DoSoftwareSkinning(UINT StartVertex, UINT VertexCount, void* pSrcVertices, UINT SrcStride, void* pDestVertices, UINT DestStride, D3DXMATRIX* pBoneMatrices, D3DXMATRIX* pInverseTransposeBoneMatrices, D3DX10_SKINNING_CHANNEL* pChannelDescs, UINT NumChannels); 149 +} 150 + 151 +HRESULT D3DX10CreateSkinInfo(ID3DX10SkinInfo* ppSkinInfo); 152 + 153 +struct D3DX10_ATTRIBUTE_WEIGHTS { 154 + FLOAT Position; 155 + FLOAT Boundary; 156 + FLOAT Normal; 157 + FLOAT Diffuse; 158 + FLOAT Specular; 159 + FLOAT[8] Texcoord; 160 + FLOAT Tangent; 161 + FLOAT Binormal; 162 +} 163 +

Added src/win32/directx/d3dx10tex.d version [06a52066351ca0eb]

1 +/***********************************************************************\ 2 +* d3dx10tex.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Placed into public domain * 7 +\***********************************************************************/ 8 +module win32.directx.d3dx10tex; 9 + 10 +private import win32.windows; 11 +private import win32.directx.d3d10; 12 +private import win32.directx.d3dx10core; 13 + 14 +enum D3DX10_FILTER_FLAG { 15 + D3DX10_FILTER_NONE = 0x000001, 16 + D3DX10_FILTER_POINT = 0x000002, 17 + D3DX10_FILTER_LINEAR = 0x000003, 18 + D3DX10_FILTER_TRIANGLE = 0x000004, 19 + D3DX10_FILTER_BOX = 0x000005, 20 + D3DX10_FILTER_MIRROR_U = 0x010000, 21 + D3DX10_FILTER_MIRROR_V = 0x020000, 22 + D3DX10_FILTER_MIRROR_W = 0x040000, 23 + D3DX10_FILTER_MIRROR = 0x070000, 24 + D3DX10_FILTER_DITHER = 0x080000, 25 + D3DX10_FILTER_DITHER_DIFFUSION = 0x100000, 26 + D3DX10_FILTER_SRGB_IN = 0x200000, 27 + D3DX10_FILTER_SRGB_OUT = 0x400000, 28 + D3DX10_FILTER_SRGB = 0x600000 29 +} 30 + 31 +enum D3DX10_NORMALMAP_FLAG { 32 + D3DX10_NORMALMAP_MIRROR_U = 0x010000, 33 + D3DX10_NORMALMAP_MIRROR_V = 0x020000, 34 + D3DX10_NORMALMAP_MIRROR = 0x030000, 35 + D3DX10_NORMALMAP_INVERTSIGN = 0x080000, 36 + D3DX10_NORMALMAP_COMPUTE_OCCLUSION = 0x100000 37 +} 38 + 39 +enum D3DX10_CHANNEL_FLAG { 40 + D3DX10_CHANNEL_RED = 1, 41 + D3DX10_CHANNEL_BLUE = 2, 42 + D3DX10_CHANNEL_GREEN = 4, 43 + D3DX10_CHANNEL_ALPHA = 8, 44 + D3DX10_CHANNEL_LUMINANCE = 16 45 +} 46 + 47 +enum D3DX10_IMAGE_FILE_FORMAT { 48 + D3DX10_IFF_BMP = 0, 49 + D3DX10_IFF_JPG = 1, 50 + D3DX10_IFF_PNG = 3, 51 + D3DX10_IFF_DDS = 4, 52 + D3DX10_IFF_TIFF = 10, 53 + D3DX10_IFF_GIF = 11, 54 + D3DX10_IFF_WMP = 12, 55 + D3DX10_IFF_FORCE_DWORD = 0x7fffffff 56 +} 57 + 58 +enum D3DX10_SAVE_TEXTURE_FLAG { 59 + D3DX10_STF_USEINPUTBLOB = 1 60 +} 61 + 62 +struct D3DX10_IMAGE_INFO { 63 + UINT Width; 64 + UINT Height; 65 + UINT Depth; 66 + UINT ArraySize; 67 + UINT MipLevels; 68 + UINT MiscFlags; 69 + DXGI_FORMAT Format; 70 + D3D10_RESOURCE_DIMENSION ResourceDimension; 71 + D3DX10_IMAGE_FILE_FORMAT ImageFileFormat; 72 +} 73 + 74 +struct D3DX10_IMAGE_LOAD_INFO { 75 + UINT Width; 76 + UINT Height; 77 + UINT Depth; 78 + UINT FirstMipLevel; 79 + UINT MipLevels; 80 + D3D10_USAGE Usage; 81 + UINT BindFlags; 82 + UINT CpuAccessFlags; 83 + UINT MiscFlags; 84 + DXGI_FORMAT Format; 85 + UINT Filter; 86 + UINT MipFilter; 87 + D3DX10_IMAGE_INFO* pSrcInfo; 88 +} 89 + 90 +HRESULT D3DX10GetImageInfoFromFileA(LPCSTR pSrcFile, ID3DX10ThreadPump pPump, 91 + D3DX10_IMAGE_INFO* pSrcInfo, HRESULT* pHResult); 92 +HRESULT D3DX10GetImageInfoFromFileW(LPCWSTR pSrcFile, ID3DX10ThreadPump pPump, 93 + D3DX10_IMAGE_INFO* pSrcInfo, HRESULT* pHResult); 94 + 95 +HRESULT D3DX10GetImageInfoFromResourceA(HMODULE hSrcModule, 96 + LPCSTR pSrcResource, ID3DX10ThreadPump pPump, D3DX10_IMAGE_INFO* pSrcInfo, 97 + HRESULT* pHResult); 98 +HRESULT D3DX10GetImageInfoFromResourceW(HMODULE hSrcModule, 99 + LPCWSTR pSrcResource, ID3DX10ThreadPump pPump, D3DX10_IMAGE_INFO* pSrcInfo, 100 + HRESULT* pHResult); 101 + 102 +HRESULT D3DX10GetImageInfoFromMemory(LPCVOID pSrcData, SIZE_T SrcDataSize, 103 + ID3DX10ThreadPump pPump, D3DX10_IMAGE_INFO* pSrcInfo, HRESULT* pHResult); 104 + 105 +HRESULT D3DX10CreateShaderResourceViewFromFileA(ID3D10Device pDevice, 106 + LPCSTR pSrcFile, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, ID3DX10ThreadPump pPump, 107 + ID3D10ShaderResourceView* ppShaderResourceView, HRESULT* pHResult); 108 +HRESULT D3DX10CreateShaderResourceViewFromFileW(ID3D10Device pDevice, 109 + LPCWSTR pSrcFile, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, ID3DX10ThreadPump pPump, 110 + ID3D10ShaderResourceView* ppShaderResourceView, HRESULT* pHResult); 111 + 112 +HRESULT D3DX10CreateTextureFromFileA(ID3D10Device pDevice, LPCSTR pSrcFile, 113 + D3DX10_IMAGE_LOAD_INFO* pLoadInfo, ID3DX10ThreadPump pPump, 114 + ID3D10Resource* ppTexture, HRESULT* pHResult); 115 +HRESULT D3DX10CreateTextureFromFileW(ID3D10Device pDevice, LPCWSTR pSrcFile, 116 + D3DX10_IMAGE_LOAD_INFO* pLoadInfo, ID3DX10ThreadPump pPump, 117 + ID3D10Resource* ppTexture, HRESULT* pHResult); 118 + 119 +HRESULT D3DX10CreateShaderResourceViewFromResourceA(ID3D10Device pDevice, 120 + HMODULE hSrcModule, LPCSTR pSrcResource, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, 121 + ID3DX10ThreadPump pPump, ID3D10ShaderResourceView* ppShaderResourceView, 122 + HRESULT* pHResult); 123 +HRESULT D3DX10CreateShaderResourceViewFromResourceW(ID3D10Device pDevice, 124 + HMODULE hSrcModule, LPCWSTR pSrcResource, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, 125 + ID3DX10ThreadPump pPump, ID3D10ShaderResourceView* ppShaderResourceView, 126 + HRESULT* pHResult); 127 + 128 +HRESULT D3DX10CreateTextureFromResourceA(ID3D10Device pDevice, 129 + HMODULE hSrcModule, LPCSTR pSrcResource, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, 130 + ID3DX10ThreadPump pPump, ID3D10Resource* ppTexture, HRESULT* pHResult); 131 +HRESULT D3DX10CreateTextureFromResourceW(ID3D10Device pDevice, 132 + HMODULE hSrcModule, LPCWSTR pSrcResource, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, 133 + ID3DX10ThreadPump pPump, ID3D10Resource* ppTexture, HRESULT* pHResult); 134 + 135 +HRESULT D3DX10CreateShaderResourceViewFromMemory(ID3D10Device pDevice, 136 + LPCVOID pSrcData, SIZE_T SrcDataSize, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, 137 + ID3DX10ThreadPump pPump, ID3D10ShaderResourceView* ppShaderResourceView, 138 + HRESULT* pHResult); 139 + 140 +HRESULT D3DX10CreateTextureFromMemory(ID3D10Device pDevice, LPCVOID pSrcData, 141 + SIZE_T SrcDataSize, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, 142 + ID3DX10ThreadPump pPump, ID3D10Resource* ppTexture, HRESULT* pHResult); 143 + 144 +struct D3DX10_TEXTURE_LOAD_INFO { 145 + D3D10_BOX* pSrcBox; 146 + D3D10_BOX* pDstBox; 147 + UINT SrcFirstMip; 148 + UINT DstFirstMip; 149 + UINT NumMips; 150 + UINT SrcFirstElement; 151 + UINT DstFirstElement; 152 + UINT NumElements; 153 + UINT Filter; 154 + UINT MipFilter; 155 +} 156 + 157 +HRESULT D3DX10LoadTextureFromTexture(ID3D10Resource pSrcTexture, 158 + D3DX10_TEXTURE_LOAD_INFO* pLoadInfo, ID3D10Resource pDstTexture); 159 + 160 +HRESULT D3DX10FilterTexture(ID3D10Resource pTexture, UINT SrcLevel, UINT MipFilter); 161 + 162 +HRESULT D3DX10SaveTextureToFileA(ID3D10Resource pSrcTexture, 163 + D3DX10_IMAGE_FILE_FORMAT DestFormat, LPCSTR pDestFile); 164 +HRESULT D3DX10SaveTextureToFileW(ID3D10Resource pSrcTexture, 165 + D3DX10_IMAGE_FILE_FORMAT DestFormat, LPCWSTR pDestFile); 166 + 167 +HRESULT D3DX10SaveTextureToMemory(ID3D10Resource pSrcTexture, 168 + D3DX10_IMAGE_FILE_FORMAT DestFormat, ID3D10Blob* ppDestBuf, UINT Flags); 169 + 170 +HRESULT D3DX10ComputeNormalMap(ID3D10Texture2D pSrcTexture, UINT Flags, 171 + UINT Channel, FLOAT Amplitude, ID3D10Texture2D pDestTexture); 172 + 173 +HRESULT D3DX10SHProjectCubeMap(UINT Order, ID3D10Texture2D pCubeMap, 174 + FLOAT* pROut, FLOAT* pGOut, FLOAT* pBOut); 175 + 176 +version(Unicode) { 177 + alias D3DX10GetImageInfoFromFileW D3DX10GetImageInfoFromFile; 178 + alias D3DX10GetImageInfoFromResourceW D3DX10GetImageInfoFromResource; 179 + alias D3DX10CreateShaderResourceViewFromFileW D3DX10CreateShaderResourceViewFromFile; 180 + alias D3DX10CreateTextureFromFileW D3DX10CreateTextureFromFile; 181 + alias D3DX10CreateShaderResourceViewFromResourceW D3DX10CreateShaderResourceViewFromResource; 182 + alias D3DX10CreateTextureFromResourceW D3DX10CreateTextureFromResource; 183 + alias D3DX10SaveTextureToFileW D3DX10SaveTextureToFile; 184 +} else { 185 + alias D3DX10GetImageInfoFromFileA D3DX10GetImageInfoFromFile; 186 + alias D3DX10GetImageInfoFromResourceA D3DX10GetImageInfoFromResource; 187 + alias D3DX10CreateShaderResourceViewFromFileA D3DX10CreateShaderResourceViewFromFile; 188 + alias D3DX10CreateTextureFromFileA D3DX10CreateTextureFromFile; 189 + alias D3DX10CreateShaderResourceViewFromResourceA D3DX10CreateShaderResourceViewFromResource; 190 + alias D3DX10CreateTextureFromResourceA D3DX10CreateTextureFromResource; 191 + alias D3DX10SaveTextureToFileA D3DX10SaveTextureToFile; 192 +}

Added src/win32/directx/d3dx9.d version [49794b578fca5d4e]

1 +// D3DX Types and Constants --------------------------------------------------------------------------------------- 2 + 3 +module win32.directx.d3dx9; 4 + 5 +public import win32.directx.d3d9; 6 +public import win32.windows; 7 + 8 +alias D3DMATRIX D3DXMATRIX; 9 + 10 +const uint MAXD3DDECLLENGTH = 64; 11 +const uint MAX_FVF_DECL_SIZE = MAXD3DDECLLENGTH + 1; 12 + 13 +align(4) struct D3DXATTRIBUTERANGE 14 +{ 15 + DWORD AttribId; 16 + DWORD FaceStart; 17 + DWORD FaceCount; 18 + DWORD VertexStart; 19 + DWORD VertexCount; 20 +} 21 + 22 +align(4) struct D3DXVECTOR2 23 +{ 24 + float x = 0, y = 0; 25 + 26 + static D3DXVECTOR2 opCall(float x, float y) 27 + { 28 + D3DXVECTOR2 v; 29 + v.x = x; 30 + v.y = y; 31 + return v; 32 + } 33 +} 34 + 35 +alias D3DVECTOR D3DXVECTOR3; 36 + 37 +align(4) struct D3DXVECTOR4 38 +{ 39 + float x = 0, y = 0, z = 0, w = 0; 40 + 41 + static D3DXVECTOR4 opCall(float x, float y, float z, float w) 42 + { 43 + D3DXVECTOR4 v; 44 + v.x = x; 45 + v.y = y; 46 + v.z = z; 47 + v.w = w; 48 + return v; 49 + } 50 +} 51 + 52 +align(4) struct D3DXQUATERNION 53 +{ 54 + float x = 0, y = 0, z = 0, w = 0; 55 +} 56 + 57 +align(4) struct D3DXFRAME 58 +{ 59 + LPSTR Name; 60 + D3DXMATRIX TransformationMatrix; 61 + 62 + D3DXMESHCONTAINER* pMeshContainer; 63 + 64 + D3DXFRAME *pFrameSibling; 65 + D3DXFRAME *pFrameFirstChild; 66 +} 67 + 68 +align(4) struct D3DXMESHCONTAINER 69 +{ 70 + LPSTR Name; 71 + 72 + D3DXMESHDATA MeshData; 73 + 74 + D3DXMATERIAL* pMaterials; 75 + D3DXEFFECTINSTANCE* pEffects; 76 + DWORD NumMaterials; 77 + DWORD *pAdjacency; 78 + 79 + ID3DXSkinInfo pSkinInfo; 80 + 81 + D3DXMESHCONTAINER* pNextMeshContainer; 82 +} 83 + 84 +align(4) struct D3DXMESHDATA 85 +{ 86 + D3DXMESHDATATYPE Type; 87 + 88 + // current mesh data interface 89 + union 90 + { 91 + ID3DXMesh pMesh; 92 + ID3DXPMesh pPMesh; 93 + ID3DXPatchMesh pPatchMesh; 94 + } 95 +} 96 + 97 +alias uint D3DXMESHDATATYPE; 98 +enum : uint 99 +{ 100 + D3DXMESHTYPE_MESH = 0x001, // Normal ID3DXMesh data 101 + D3DXMESHTYPE_PMESH = 0x002, // Progressive Mesh - ID3DXPMesh 102 + D3DXMESHTYPE_PATCHMESH = 0x003 // Patch Mesh - ID3DXPatchMesh 103 +} 104 + 105 +align(4) struct D3DXMATERIAL 106 +{ 107 + D3DMATERIAL9 MatD3D; 108 + LPSTR pTextureFilename; 109 +} 110 + 111 +alias uint D3DXEFFECTDEFAULTTYPE; 112 +enum : uint 113 +{ 114 + D3DXEDT_STRING = 0x1, // pValue points to a null terminated ASCII string 115 + D3DXEDT_FLOATS = 0x2, // pValue points to an array of floats - number of floats is NumBytes / sizeof(float) 116 + D3DXEDT_DWORD = 0x3 // pValue points to a DWORD 117 +} 118 + 119 +align(4) struct D3DXEFFECTDEFAULT 120 +{ 121 + LPSTR pParamName; 122 + D3DXEFFECTDEFAULTTYPE Type; // type of the data pointed to by pValue 123 + DWORD NumBytes; // size in bytes of the data pointed to by pValue 124 + LPVOID pValue; // data for the default of the effect 125 +} 126 + 127 +align(4) struct D3DXEFFECTINSTANCE 128 +{ 129 + LPSTR pEffectFilename; 130 + DWORD NumDefaults; 131 + D3DXEFFECTDEFAULT* pDefaults; 132 +} 133 + 134 +alias uint D3DXPATCHMESHTYPE; 135 +enum : uint 136 +{ 137 + D3DXPATCHMESH_RECT = 0x001, 138 + D3DXPATCHMESH_TRI = 0x002, 139 + D3DXPATCHMESH_NPATCH = 0x003 140 +} 141 + 142 +align(4) struct D3DXPATCHINFO 143 +{ 144 + D3DXPATCHMESHTYPE PatchType; 145 + D3DDEGREETYPE Degree; 146 + D3DBASISTYPE Basis; 147 +} 148 + 149 +const uint LF_FACESIZE = 32; 150 + 151 +align(4) struct D3DXFONT_DESCA 152 +{ 153 + INT Height; 154 + UINT Width; 155 + UINT Weight; 156 + UINT MipLevels; 157 + BOOL Italic; 158 + BYTE CharSet; 159 + BYTE OutputPrecision; 160 + BYTE Quality; 161 + BYTE PitchAndFamily; 162 + CHAR[LF_FACESIZE] FaceName; 163 +} 164 + 165 +align(4) struct D3DXFONT_DESCW 166 +{ 167 + INT Height; 168 + UINT Width; 169 + UINT Weight; 170 + UINT MipLevels; 171 + BOOL Italic; 172 + BYTE CharSet; 173 + BYTE OutputPrecision; 174 + BYTE Quality; 175 + BYTE PitchAndFamily; 176 + WCHAR[LF_FACESIZE] FaceName; 177 +} 178 + 179 +align(4) struct TEXTMETRICA 180 +{ 181 + LONG tmHeight; 182 + LONG tmAscent; 183 + LONG tmDescent; 184 + LONG tmInternalLeading; 185 + LONG tmExternalLeading; 186 + LONG tmAveCharWidth; 187 + LONG tmMaxCharWidth; 188 + LONG tmWeight; 189 + LONG tmOverhang; 190 + LONG tmDigitizedAspectX; 191 + LONG tmDigitizedAspectY; 192 + BYTE tmFirstChar; 193 + BYTE tmLastChar; 194 + BYTE tmDefaultChar; 195 + BYTE tmBreakChar; 196 + BYTE tmItalic; 197 + BYTE tmUnderlined; 198 + BYTE tmStruckOut; 199 + BYTE tmPitchAndFamily; 200 + BYTE tmCharSet; 201 +} 202 + 203 +align(4) struct TEXTMETRICW 204 +{ 205 + LONG tmHeight; 206 + LONG tmAscent; 207 + LONG tmDescent; 208 + LONG tmInternalLeading; 209 + LONG tmExternalLeading; 210 + LONG tmAveCharWidth; 211 + LONG tmMaxCharWidth; 212 + LONG tmWeight; 213 + LONG tmOverhang; 214 + LONG tmDigitizedAspectX; 215 + LONG tmDigitizedAspectY; 216 + WCHAR tmFirstChar; 217 + WCHAR tmLastChar; 218 + WCHAR tmDefaultChar; 219 + WCHAR tmBreakChar; 220 + BYTE tmItalic; 221 + BYTE tmUnderlined; 222 + BYTE tmStruckOut; 223 + BYTE tmPitchAndFamily; 224 + BYTE tmCharSet; 225 +} 226 + 227 +align(4) struct D3DXEFFECT_DESC 228 +{ 229 + LPCSTR Creator; // Creator string 230 + UINT Parameters; // Number of parameters 231 + UINT Techniques; // Number of techniques 232 + UINT Functions; // Number of function entrypoints 233 +} 234 + 235 +alias char* D3DXHANDLE; 236 + 237 +align(4) struct D3DXPARAMETER_DESC 238 +{ 239 + LPCSTR Name; // Parameter name 240 + LPCSTR Semantic; // Parameter semantic 241 + D3DXPARAMETER_CLASS Class; // Class 242 + D3DXPARAMETER_TYPE Type; // Component type 243 + UINT Rows; // Number of rows 244 + UINT Columns; // Number of columns 245 + UINT Elements; // Number of array elements 246 + UINT Annotations; // Number of annotations 247 + UINT StructMembers; // Number of structure member sub-parameters 248 + DWORD Flags; // D3DX_PARAMETER_* flags 249 + UINT Bytes; // Parameter size, in bytes 250 +} 251 + 252 +alias uint D3DXPARAMETER_CLASS; 253 +enum : uint 254 +{ 255 + D3DXPC_SCALAR, 256 + D3DXPC_VECTOR, 257 + D3DXPC_MATRIX_ROWS, 258 + D3DXPC_MATRIX_COLUMNS, 259 + D3DXPC_OBJECT, 260 + D3DXPC_STRUCT 261 +} 262 + 263 +alias uint D3DXPARAMETER_TYPE; 264 +enum : uint 265 +{ 266 + D3DXPT_VOID, 267 + D3DXPT_BOOL, 268 + D3DXPT_INT, 269 + D3DXPT_FLOAT, 270 + D3DXPT_STRING, 271 + D3DXPT_TEXTURE, 272 + D3DXPT_TEXTURE1D, 273 + D3DXPT_TEXTURE2D, 274 + D3DXPT_TEXTURE3D, 275 + D3DXPT_TEXTURECUBE, 276 + D3DXPT_SAMPLER, 277 + D3DXPT_SAMPLER1D, 278 + D3DXPT_SAMPLER2D, 279 + D3DXPT_SAMPLER3D, 280 + D3DXPT_SAMPLERCUBE, 281 + D3DXPT_PIXELSHADER, 282 + D3DXPT_VERTEXSHADER, 283 + D3DXPT_PIXELFRAGMENT, 284 + D3DXPT_VERTEXFRAGMENT 285 +} 286 + 287 +align(4) struct D3DXTECHNIQUE_DESC 288 +{ 289 + LPCSTR Name; // Technique name 290 + UINT Passes; // Number of passes 291 + UINT Annotations; // Number of annotations 292 +} 293 + 294 +align(4) struct D3DXPASS_DESC 295 +{ 296 + LPCSTR Name; // Pass name 297 + UINT Annotations; // Number of annotations 298 + 299 + DWORD *pVertexShaderFunction; // Vertex shader function 300 + DWORD *pPixelShaderFunction; // Pixel shader function 301 +} 302 + 303 +align(4) struct D3DXFUNCTION_DESC 304 +{ 305 + LPCSTR Name; // Function name 306 + UINT Annotations; // Number of annotations 307 +} 308 + 309 +struct D3DXTRACK_DESC 310 +{ 311 + DWORD Priority; 312 + FLOAT Weight = 0; 313 + FLOAT Speed = 0; 314 + double Position = 0; 315 + BOOL Enable; 316 +} 317 + 318 +align(4) struct D3DXEVENT_DESC 319 +{ 320 + DWORD Type; 321 + UINT Track; 322 + double StartTime = 0; 323 + double Duration = 0; 324 + DWORD Transition; 325 + union 326 + { 327 + FLOAT Weight = 0; 328 + FLOAT Speed; 329 + double Position; 330 + BOOL Enable; 331 + }; 332 +} 333 + 334 +align(4) struct D3DXKEY_VECTOR3 335 +{ 336 + FLOAT Time = 0; 337 + D3DXVECTOR3 Value; 338 +} 339 + 340 +align(4) struct D3DXKEY_QUATERNION 341 +{ 342 + FLOAT Time = 0; 343 + D3DXQUATERNION Value; 344 +} 345 + 346 +align(4) struct D3DXKEY_CALLBACK 347 +{ 348 + FLOAT Time = 0; 349 + LPVOID pCallbackData; 350 +} 351 + 352 +align(4) struct D3DXIMAGE_INFO 353 +{ 354 + UINT Width; 355 + UINT Height; 356 + UINT Depth; 357 + UINT MipLevels; 358 + D3DFORMAT Format; 359 + D3DRESOURCETYPE ResourceType; 360 + D3DXIMAGE_FILEFORMAT ImageFileFormat; 361 +} 362 + 363 +alias uint D3DXIMAGE_FILEFORMAT; 364 +enum : uint 365 +{ 366 + D3DXIFF_BMP = 0, 367 + D3DXIFF_JPG = 1, 368 + D3DXIFF_TGA = 2, 369 + D3DXIFF_PNG = 3, 370 + D3DXIFF_DDS = 4, 371 + D3DXIFF_PPM = 5, 372 + D3DXIFF_DIB = 6, 373 +} 374 + 375 +align(4) struct D3DXATTRIBUTEWEIGHTS 376 +{ 377 + FLOAT Position = 0; 378 + FLOAT Boundary = 0; 379 + FLOAT Normal = 0; 380 + FLOAT Diffuse = 0; 381 + FLOAT Specular = 0; 382 + FLOAT[8] Texcoord = 0; 383 + FLOAT Tangent = 0; 384 + FLOAT Binormal = 0; 385 +} 386 + 387 +align(4) struct D3DXPLANE 388 +{ 389 + FLOAT a = 0, b = 0, c = 0, d = 0; 390 +} 391 + 392 +alias uint D3DXMESH; 393 +enum : uint 394 +{ 395 + D3DXMESH_32BIT = 0x001, 396 + D3DXMESH_DONOTCLIP = 0x002, 397 + D3DXMESH_POINTS = 0x004, 398 + D3DXMESH_RTPATCHES = 0x008, 399 + D3DXMESH_NPATCHES = 0x4000, 400 + D3DXMESH_VB_SYSTEMMEM = 0x010, 401 + D3DXMESH_VB_MANAGED = 0x020, 402 + D3DXMESH_VB_WRITEONLY = 0x040, 403 + D3DXMESH_VB_DYNAMIC = 0x080, 404 + D3DXMESH_VB_SOFTWAREPROCESSING = 0x8000, 405 + D3DXMESH_IB_SYSTEMMEM = 0x100, 406 + D3DXMESH_IB_MANAGED = 0x200, 407 + D3DXMESH_IB_WRITEONLY = 0x400, 408 + D3DXMESH_IB_DYNAMIC = 0x800, 409 + D3DXMESH_IB_SOFTWAREPROCESSING= 0x10000, 410 + D3DXMESH_VB_SHARE = 0x1000, 411 + D3DXMESH_USEHWONLY = 0x2000, 412 + D3DXMESH_SYSTEMMEM = 0x110, 413 + D3DXMESH_MANAGED = 0x220, 414 + D3DXMESH_WRITEONLY = 0x440, 415 + D3DXMESH_DYNAMIC = 0x880, 416 + D3DXMESH_SOFTWAREPROCESSING = 0x18000, 417 +} 418 + 419 +align(4) struct D3DXMACRO 420 +{ 421 + LPCSTR Name; 422 + LPCSTR Definition; 423 +} 424 + 425 +align(4) struct D3DXSEMANTIC 426 +{ 427 + UINT Usage; 428 + UINT UsageIndex; 429 +} 430 + 431 +alias uint D3DXINCLUDE_TYPE; 432 +enum : uint 433 +{ 434 + D3DXINC_LOCAL, 435 + D3DXINC_SYSTEM, 436 +} 437 + 438 +enum : uint 439 +{ 440 + D3DXFX_DONOTSAVESTATE = (1 << 0), 441 + D3DXFX_DONOTSAVESHADERSTATE = (1 << 1), 442 + D3DXFX_DONOTSAVESAMPLERSTATE = (1 << 2), 443 + D3DXFX_NOT_CLONEABLE = (1 << 11) 444 +} 445 + 446 +alias uint D3DXMESHSIMP; 447 +enum : uint 448 +{ 449 + D3DXMESHSIMP_VERTEX = 0x1, 450 + D3DXMESHSIMP_FACE = 0x2 451 +} 452 + 453 +enum : uint 454 +{ 455 + DT_TOP = 0x00000000, 456 + DT_LEFT = 0x00000000, 457 + DT_CENTER = 0x00000001, 458 + DT_RIGHT = 0x00000002, 459 + DT_VCENTER = 0x00000004, 460 + DT_BOTTOM = 0x00000008, 461 + DT_WORDBREAK = 0x00000010, 462 + DT_SINGLELINE = 0x00000020, 463 + DT_EXPANDTABS = 0x00000040, 464 + DT_TABSTOP = 0x00000080, 465 + DT_NOCLIP = 0x00000100, 466 + DT_EXTERNALLEADING = 0x00000200, 467 + DT_CALCRECT = 0x00000400, 468 + DT_NOPREFIX = 0x00000800, 469 + DT_INTERNAL = 0x00001000 470 +} 471 + 472 +enum : uint 473 +{ 474 + D3DXSPRITE_DONOTSAVESTATE = (1 << 0), 475 + D3DXSPRITE_DONOTMODIFY_RENDERSTATE = (1 << 1), 476 + D3DXSPRITE_OBJECTSPACE = (1 << 2), 477 + D3DXSPRITE_BILLBOARD = (1 << 3), 478 + D3DXSPRITE_ALPHABLEND = (1 << 4), 479 + D3DXSPRITE_SORT_TEXTURE = (1 << 5), 480 + D3DXSPRITE_SORT_DEPTH_FRONTTOBACK = (1 << 6), 481 + D3DXSPRITE_SORT_DEPTH_BACKTOFRONT = (1 << 7) 482 +} 483 + 484 +enum : uint 485 +{ 486 + D3DX_FILTER_NONE = (1 << 0), 487 + D3DX_FILTER_POINT = (2 << 0), 488 + D3DX_FILTER_LINEAR = (3 << 0), 489 + D3DX_FILTER_TRIANGLE = (4 << 0), 490 + D3DX_FILTER_BOX = (5 << 0), 491 + D3DX_FILTER_MIRROR_U = (1 << 16), 492 + D3DX_FILTER_MIRROR_V = (2 << 16), 493 + D3DX_FILTER_MIRROR_W = (4 << 16), 494 + D3DX_FILTER_MIRROR = (7 << 16), 495 + D3DX_FILTER_DITHER = (1 << 19), 496 + D3DX_FILTER_DITHER_DIFFUSION = (2 << 19), 497 + D3DX_FILTER_SRGB_IN = (1 << 21), 498 + D3DX_FILTER_SRGB_OUT = (2 << 21), 499 + D3DX_FILTER_SRGB = (3 << 21) 500 +} 501 + 502 +const uint D3DX_DEFAULT = cast(UINT) -1; 503 + 504 +alias uint D3DXMESHOPT; 505 +enum : uint 506 +{ 507 + D3DXMESHOPT_COMPACT = 0x01000000, 508 + D3DXMESHOPT_ATTRSORT = 0x02000000, 509 + D3DXMESHOPT_VERTEXCACHE = 0x04000000, 510 + D3DXMESHOPT_STRIPREORDER = 0x08000000, 511 + D3DXMESHOPT_IGNOREVERTS = 0x10000000, // optimize faces only, don't touch vertices 512 + D3DXMESHOPT_DONOTSPLIT = 0x20000000, // do not split vertices shared between attribute groups when attribute sorting 513 + D3DXMESHOPT_DEVICEINDEPENDENT = 0x00400000 // Only affects VCache. uses a static known good cache size for all cards 514 +} 515 + 516 +enum : uint 517 +{ 518 + D3DXPLAY_LOOP = 0, 519 + D3DXPLAY_ONCE = 1, 520 + D3DXPLAY_PINGPONG = 2 521 +} 522 +alias uint D3DXPLAYBACK_TYPE; 523 + 524 + 525 +// D3DX Interfaces --------------------------------------------------------------------------------------- 526 + 527 +interface ID3DXSkinInfo : IUnknown 528 +{ 529 + extern(Windows): 530 + 531 + // Specify the which vertices do each bones influence and by how much 532 + HRESULT SetBoneInfluence(DWORD bone, DWORD numInfluences, DWORD* vertices, FLOAT* weights); 533 + HRESULT SetBoneVertexInfluence(DWORD boneNum, DWORD influenceNum, float weight); 534 + DWORD GetNumBoneInfluences(DWORD bone); 535 + HRESULT GetBoneInfluence(DWORD bone, DWORD* vertices, FLOAT* weights); 536 + HRESULT GetBoneVertexInfluence(DWORD boneNum, DWORD influenceNum, float *pWeight, DWORD *pVertexNum); 537 + HRESULT GetMaxVertexInfluences(DWORD* maxVertexInfluences); 538 + DWORD GetNumBones(); 539 + HRESULT FindBoneVertexInfluenceIndex(DWORD boneNum, DWORD vertexNum, DWORD *pInfluenceIndex); 540 + 541 + // This gets the max face influences based on a triangle mesh with the specified index buffer 542 + HRESULT GetMaxFaceInfluences(IDirect3DIndexBuffer9 pIB, DWORD NumFaces, DWORD* maxFaceInfluences); 543 + 544 + // Set min bone influence. Bone influences that are smaller than this are ignored 545 + HRESULT SetMinBoneInfluence(FLOAT MinInfl); 546 + // Get min bone influence. 547 + FLOAT GetMinBoneInfluence(); 548 + 549 + // Bone names are returned by D3DXLoadSkinMeshFromXof. They are not used by any other method of this object 550 + HRESULT SetBoneName(DWORD Bone, LPCSTR pName); // pName is copied to an internal string buffer 551 + LPCSTR GetBoneName(DWORD Bone); // A pointer to an internal string buffer is returned. Do not free this. 552 + 553 + // Bone offset matrices are returned by D3DXLoadSkinMeshFromXof. They are not used by any other method of this object 554 + HRESULT SetBoneOffsetMatrix(DWORD Bone, D3DXMATRIX *pBoneTransform); // pBoneTransform is copied to an internal buffer 555 + D3DXMATRIX* GetBoneOffsetMatrix(DWORD Bone); // A pointer to an internal matrix is returned. Do not free this. 556 + 557 + // Clone a skin info object 558 + HRESULT Clone(ID3DXSkinInfo* ppSkinInfo); 559 + 560 + // Update bone influence information to match vertices after they are reordered. This should be called 561 + // if the target vertex buffer has been reordered externally. 562 + HRESULT Remap(DWORD NumVertices, DWORD* pVertexRemap); 563 + 564 + // These methods enable the modification of the vertex layout of the vertices that will be skinned 565 + HRESULT SetFVF(DWORD FVF); 566 + HRESULT SetDeclaration(D3DVERTEXELEMENT9 *pDeclaration); 567 + DWORD GetFVF(); 568 + HRESULT GetDeclaration(D3DVERTEXELEMENT9[MAX_FVF_DECL_SIZE] Declaration); 569 + 570 + // Apply SW skinning based on current pose matrices to the target vertices. 571 + HRESULT UpdateSkinnedMesh( 572 + D3DXMATRIX* pBoneTransforms, 573 + D3DXMATRIX* pBoneInvTransposeTransforms, 574 + LPCVOID pVerticesSrc, 575 + PVOID pVerticesDst); 576 + 577 + // Takes a mesh and returns a new mesh with per vertex blend weights and a bone combination 578 + // table that describes which bones affect which subsets of the mesh 579 + HRESULT ConvertToBlendedMesh( 580 + ID3DXMesh pMesh, 581 + DWORD Options, 582 + DWORD *pAdjacencyIn, 583 + LPDWORD pAdjacencyOut, 584 + DWORD* pFaceRemap, 585 + ID3DXBuffer* ppVertexRemap, 586 + DWORD* pMaxFaceInfl, 587 + DWORD* pNumBoneCombinations, 588 + ID3DXBuffer* ppBoneCombinationTable, 589 + ID3DXMesh* ppMesh); 590 + 591 + // Takes a mesh and returns a new mesh with per vertex blend weights and indices 592 + // and a bone combination table that describes which bones palettes affect which subsets of the mesh 593 + HRESULT ConvertToIndexedBlendedMesh( 594 + ID3DXMesh pMesh, 595 + DWORD Options, 596 + DWORD paletteSize, 597 + DWORD *pAdjacencyIn, 598 + LPDWORD pAdjacencyOut, 599 + DWORD* pFaceRemap, 600 + ID3DXBuffer* ppVertexRemap, 601 + DWORD* pMaxVertexInfl, 602 + DWORD *pNumBoneCombinations, 603 + ID3DXBuffer* ppBoneCombinationTable, 604 + ID3DXMesh* ppMesh); 605 +} 606 + 607 +interface ID3DXBaseMesh : IUnknown 608 +{ 609 + extern(Windows): 610 + 611 + // ID3DXBaseMesh 612 + HRESULT DrawSubset( DWORD AttribId) ; 613 + DWORD GetNumFaces() ; 614 + DWORD GetNumVertices() ; 615 + DWORD GetFVF() ; 616 + HRESULT GetDeclaration( D3DVERTEXELEMENT9[MAX_FVF_DECL_SIZE] Declaration) ; 617 + DWORD GetNumBytesPerVertex() ; 618 + DWORD GetOptions() ; 619 + HRESULT GetDevice( IDirect3DDevice9* ppDevice) ; 620 + HRESULT CloneMeshFVF( DWORD Options, 621 + DWORD FVF, IDirect3DDevice9 pD3DDevice, ID3DXMesh* ppCloneMesh) ; 622 + HRESULT CloneMesh( DWORD Options, 623 + D3DVERTEXELEMENT9 *pDeclaration, IDirect3DDevice9 pD3DDevice, ID3DXMesh* ppCloneMesh) ; 624 + HRESULT GetVertexBuffer( IDirect3DVertexBuffer9* ppVB) ; 625 + HRESULT GetIndexBuffer( IDirect3DIndexBuffer9* ppIB) ; 626 + HRESULT LockVertexBuffer( DWORD Flags, LPVOID *ppData) ; 627 + HRESULT UnlockVertexBuffer() ; 628 + HRESULT LockIndexBuffer( DWORD Flags, LPVOID *ppData) ; 629 + HRESULT UnlockIndexBuffer() ; 630 + HRESULT GetAttributeTable( 631 + D3DXATTRIBUTERANGE *pAttribTable, DWORD* pAttribTableSize) ; 632 + 633 + HRESULT ConvertPointRepsToAdjacency( DWORD* pPRep, DWORD* pAdjacency) ; 634 + HRESULT ConvertAdjacencyToPointReps( DWORD* pAdjacency, DWORD* pPRep) ; 635 + HRESULT GenerateAdjacency( FLOAT Epsilon, DWORD* pAdjacency) ; 636 + 637 + HRESULT UpdateSemantics( D3DVERTEXELEMENT9[MAX_FVF_DECL_SIZE] Declaration) ; 638 +} 639 + 640 +interface ID3DXMesh : ID3DXBaseMesh 641 +{ 642 + extern(Windows): 643 + 644 + // ID3DXMesh 645 + HRESULT LockAttributeBuffer( DWORD Flags, DWORD** ppData) ; 646 + HRESULT UnlockAttributeBuffer() ; 647 + HRESULT Optimize( DWORD Flags, DWORD* pAdjacencyIn, DWORD* pAdjacencyOut, 648 + DWORD* pFaceRemap, ID3DXBuffer *ppVertexRemap, 649 + ID3DXMesh* ppOptMesh) ; 650 + HRESULT OptimizeInplace( DWORD Flags, DWORD* pAdjacencyIn, DWORD* pAdjacencyOut, 651 + DWORD* pFaceRemap, ID3DXBuffer *ppVertexRemap) ; 652 + HRESULT SetAttributeTable( D3DXATTRIBUTERANGE *pAttribTable, DWORD cAttribTableSize) ; 653 +} 654 + 655 +interface ID3DXBuffer : IUnknown 656 +{ 657 + extern(Windows): 658 + 659 + // ID3DXBuffer 660 + LPVOID GetBufferPointer(); 661 + DWORD GetBufferSize(); 662 +} 663 + 664 +interface ID3DXPMesh : ID3DXBaseMesh 665 +{ 666 + extern(Windows): 667 + 668 + // ID3DXPMesh 669 + HRESULT ClonePMeshFVF( DWORD Options, 670 + DWORD FVF, IDirect3DDevice9 pD3DDevice, ID3DXPMesh* ppCloneMesh) ; 671 + HRESULT ClonePMesh( DWORD Options, 672 + D3DVERTEXELEMENT9 *pDeclaration, IDirect3DDevice9 pD3DDevice, ID3DXPMesh* ppCloneMesh) ; 673 + HRESULT SetNumFaces( DWORD Faces) ; 674 + HRESULT SetNumVertices( DWORD Vertices) ; 675 + DWORD GetMaxFaces() ; 676 + DWORD GetMinFaces() ; 677 + DWORD GetMaxVertices() ; 678 + DWORD GetMinVertices() ; 679 + HRESULT Save( void *pStream, D3DXMATERIAL* pMaterials, D3DXEFFECTINSTANCE* pEffectInstances, DWORD NumMaterials) ; 680 + 681 + HRESULT Optimize( DWORD Flags, DWORD* pAdjacencyOut, 682 + DWORD* pFaceRemap, ID3DXBuffer *ppVertexRemap, 683 + ID3DXMesh* ppOptMesh) ; 684 + 685 + HRESULT OptimizeBaseLOD( DWORD Flags, DWORD* pFaceRemap) ; 686 + HRESULT TrimByFaces( DWORD NewFacesMin, DWORD NewFacesMax, DWORD *rgiFaceRemap, DWORD *rgiVertRemap) ; 687 + HRESULT TrimByVertices( DWORD NewVerticesMin, DWORD NewVerticesMax, DWORD *rgiFaceRemap, DWORD *rgiVertRemap) ; 688 + 689 + HRESULT GetAdjacency( DWORD* pAdjacency) ; 690 + 691 + // Used to generate the immediate "ancestor" for each vertex when it is removed by a vsplit. Allows generation of geomorphs 692 + // Vertex buffer must be equal to or greater than the maximum number of vertices in the pmesh 693 + HRESULT GenerateVertexHistory( DWORD* pVertexHistory) ; 694 +} 695 + 696 +interface ID3DXPatchMesh : IUnknown 697 +{ 698 + extern(Windows): 699 + 700 + // ID3DXPatchMesh 701 + 702 + // Return creation parameters 703 + DWORD GetNumPatches() ; 704 + DWORD GetNumVertices() ; 705 + HRESULT GetDeclaration( D3DVERTEXELEMENT9[MAX_FVF_DECL_SIZE] Declaration) ; 706 + DWORD GetControlVerticesPerPatch() ; 707 + DWORD GetOptions() ; 708 + HRESULT GetDevice( IDirect3DDevice9 *ppDevice) ; 709 + HRESULT GetPatchInfo( D3DXPATCHINFO* PatchInfo) ; 710 + 711 + // Control mesh access 712 + HRESULT GetVertexBuffer( IDirect3DVertexBuffer9* ppVB) ; 713 + HRESULT GetIndexBuffer( IDirect3DIndexBuffer9* ppIB) ; 714 + HRESULT LockVertexBuffer( DWORD flags, LPVOID *ppData) ; 715 + HRESULT UnlockVertexBuffer() ; 716 + HRESULT LockIndexBuffer( DWORD flags, LPVOID *ppData) ; 717 + HRESULT UnlockIndexBuffer() ; 718 + HRESULT LockAttributeBuffer( DWORD flags, DWORD** ppData) ; 719 + HRESULT UnlockAttributeBuffer() ; 720 + 721 + // function returns the size of the tessellated mesh given a tessellation level. 722 + // assumes uniform tessellation. For adaptive tessellation the Adaptive parameter must 723 + // be set to TRUE and TessellationLevel should be the max tessellation. 724 + // will result in the max mesh size necessary for adaptive tessellation. 725 + HRESULT GetTessSize( FLOAT fTessLevel,DWORD Adaptive, DWORD *NumTriangles,DWORD *NumVertices) ; 726 + 727 + //GenerateAdjacency determines which patches are adjacent with provided tolerance 728 + // information is used internally to optimize tessellation 729 + HRESULT GenerateAdjacency( FLOAT Tolerance) ; 730 + 731 + //CloneMesh Creates a new patchmesh with the specified decl, and converts the vertex buffer 732 + //to the new decl. Entries in the new decl which are new are set to 0. If the current mesh 733 + //has adjacency, the new mesh will also have adjacency 734 + HRESULT CloneMesh( DWORD Options, D3DVERTEXELEMENT9 *pDecl, ID3DXPatchMesh *pMesh) ; 735 + 736 + // Optimizes the patchmesh for efficient tessellation. function is designed 737 + // to perform one time optimization for patch meshes that need to be tessellated 738 + // repeatedly by calling the Tessellate() method. The optimization performed is 739 + // independent of the actual tessellation level used. 740 + // Currently Flags is unused. 741 + // If vertices are changed, Optimize must be called again 742 + HRESULT Optimize( DWORD flags) ; 743 + 744 + //gets and sets displacement parameters 745 + //displacement maps can only be 2D textures MIP-MAPPING is ignored for non adapative tessellation 746 + HRESULT SetDisplaceParam( IDirect3DBaseTexture9 Texture, 747 + D3DTEXTUREFILTERTYPE MinFilter, 748 + D3DTEXTUREFILTERTYPE MagFilter, 749 + D3DTEXTUREFILTERTYPE MipFilter, 750 + D3DTEXTUREADDRESS Wrap, 751 + DWORD dwLODBias) ; 752 + 753 + HRESULT GetDisplaceParam( IDirect3DBaseTexture9 *Texture, 754 + D3DTEXTUREFILTERTYPE *MinFilter, 755 + D3DTEXTUREFILTERTYPE *MagFilter, 756 + D3DTEXTUREFILTERTYPE *MipFilter, 757 + D3DTEXTUREADDRESS *Wrap, 758 + DWORD *dwLODBias) ; 759 + 760 + // Performs the uniform tessellation based on the tessellation level. 761 + // function will perform more efficiently if the patch mesh has been optimized using the Optimize() call. 762 + HRESULT Tessellate( FLOAT fTessLevel,ID3DXMesh pMesh) ; 763 + 764 + // Performs adaptive tessellation based on the Z based adaptive tessellation criterion. 765 + // pTrans specifies a 4D vector that is dotted with the vertices to get the per vertex 766 + // adaptive tessellation amount. Each edge is tessellated to the average of the criterion 767 + // at the 2 vertices it connects. 768 + // MaxTessLevel specifies the upper limit for adaptive tesselation. 769 + // function will perform more efficiently if the patch mesh has been optimized using the Optimize() call. 770 + HRESULT TessellateAdaptive( 771 + D3DXVECTOR4 *pTrans, 772 + DWORD dwMaxTessLevel, 773 + DWORD dwMinTessLevel, 774 + ID3DXMesh pMesh) ; 775 + 776 +} 777 + 778 +interface ID3DXFont : IUnknown 779 +{ 780 + extern(Windows): 781 + 782 + // ID3DXFont 783 + HRESULT GetDevice( IDirect3DDevice9 *ppDevice) ; 784 + HRESULT GetDescA( D3DXFONT_DESCA *pDesc) ; 785 + HRESULT GetDescW( D3DXFONT_DESCW *pDesc) ; 786 + BOOL GetTextMetricsA( TEXTMETRICA *pTextMetrics) ; 787 + BOOL GetTextMetricsW( TEXTMETRICW *pTextMetrics) ; 788 + 789 + HDC GetDC() ; 790 + HRESULT GetGlyphData( UINT Glyph, IDirect3DTexture9 *ppTexture, RECT *pBlackBox, POINT *pCellInc) ; 791 + 792 + HRESULT PreloadCharacters( UINT First, UINT Last) ; 793 + HRESULT PreloadGlyphs( UINT First, UINT Last) ; 794 + HRESULT PreloadTextA( LPCSTR pString, INT Count) ; 795 + HRESULT PreloadTextW( LPCWSTR pString, INT Count) ; 796 + 797 + INT DrawTextA( ID3DXSprite pSprite, LPCSTR pString, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color) ; 798 + INT DrawTextW( ID3DXSprite pSprite, LPCWSTR pString, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color) ; 799 + 800 + HRESULT OnLostDevice() ; 801 + HRESULT OnResetDevice() ; 802 +} 803 + 804 +interface ID3DXSprite : IUnknown 805 +{ 806 + extern(Windows): 807 + 808 + // ID3DXSprite 809 + HRESULT GetDevice( IDirect3DDevice9* ppDevice) ; 810 + 811 + HRESULT GetTransform( D3DXMATRIX *pTransform) ; 812 + HRESULT SetTransform( D3DXMATRIX *pTransform) ; 813 + 814 + HRESULT SetWorldViewRH( D3DXMATRIX *pWorld, D3DXMATRIX *pView) ; 815 + HRESULT SetWorldViewLH( D3DXMATRIX *pWorld, D3DXMATRIX *pView) ; 816 + 817 + HRESULT Begin( DWORD Flags) ; 818 + HRESULT Draw( IDirect3DTexture9 pTexture, RECT *pSrcRect, D3DXVECTOR3 *pCenter, D3DXVECTOR3 *pPosition, D3DCOLOR Color) ; 819 + HRESULT Flush() ; 820 + HRESULT End() ; 821 + 822 + HRESULT OnLostDevice() ; 823 + HRESULT OnResetDevice() ; 824 +} 825 + 826 +interface ID3DXBaseEffect : IUnknown 827 +{ 828 + extern(Windows): 829 + 830 + // Descs 831 + HRESULT GetDesc( D3DXEFFECT_DESC* pDesc) ; 832 + HRESULT GetParameterDesc( D3DXHANDLE hParameter, D3DXPARAMETER_DESC* pDesc) ; 833 + HRESULT GetTechniqueDesc( D3DXHANDLE hTechnique, D3DXTECHNIQUE_DESC* pDesc) ; 834 + HRESULT GetPassDesc( D3DXHANDLE hPass, D3DXPASS_DESC* pDesc) ; 835 + HRESULT GetFunctionDesc( D3DXHANDLE hShader, D3DXFUNCTION_DESC* pDesc) ; 836 + 837 + // Handle operations 838 + D3DXHANDLE GetParameter( D3DXHANDLE hParameter, UINT Index) ; 839 + D3DXHANDLE GetParameterByName( D3DXHANDLE hParameter, LPCSTR pName) ; 840 + D3DXHANDLE GetParameterBySemantic( D3DXHANDLE hParameter, LPCSTR pSemantic) ; 841 + D3DXHANDLE GetParameterElement( D3DXHANDLE hParameter, UINT Index) ; 842 + D3DXHANDLE GetTechnique( UINT Index) ; 843 + D3DXHANDLE GetTechniqueByName( LPCSTR pName) ; 844 + D3DXHANDLE GetPass( D3DXHANDLE hTechnique, UINT Index) ; 845 + D3DXHANDLE GetPassByName( D3DXHANDLE hTechnique, LPCSTR pName) ; 846 + D3DXHANDLE GetFunction( UINT Index) ; 847 + D3DXHANDLE GetFunctionByName( LPCSTR pName) ; 848 + D3DXHANDLE GetAnnotation( D3DXHANDLE hObject, UINT Index) ; 849 + D3DXHANDLE GetAnnotationByName( D3DXHANDLE hObject, LPCSTR pName) ; 850 + 851 + // Get/Set Parameters 852 + HRESULT SetValue( D3DXHANDLE hParameter, LPCVOID pData, UINT Bytes) ; 853 + HRESULT GetValue( D3DXHANDLE hParameter, LPVOID pData, UINT Bytes) ; 854 + HRESULT SetBool( D3DXHANDLE hParameter, BOOL b) ; 855 + HRESULT GetBool( D3DXHANDLE hParameter, BOOL* pb) ; 856 + HRESULT SetBoolArray( D3DXHANDLE hParameter, BOOL* pb, UINT Count) ; 857 + HRESULT GetBoolArray( D3DXHANDLE hParameter, BOOL* pb, UINT Count) ; 858 + HRESULT SetInt( D3DXHANDLE hParameter, INT n) ; 859 + HRESULT GetInt( D3DXHANDLE hParameter, INT* pn) ; 860 + HRESULT SetIntArray( D3DXHANDLE hParameter, INT* pn, UINT Count) ; 861 + HRESULT GetIntArray( D3DXHANDLE hParameter, INT* pn, UINT Count) ; 862 + HRESULT SetFloat( D3DXHANDLE hParameter, FLOAT f) ; 863 + HRESULT GetFloat( D3DXHANDLE hParameter, FLOAT* pf) ; 864 + HRESULT SetFloatArray( D3DXHANDLE hParameter, FLOAT* pf, UINT Count) ; 865 + HRESULT GetFloatArray( D3DXHANDLE hParameter, FLOAT* pf, UINT Count) ; 866 + HRESULT SetVector( D3DXHANDLE hParameter, D3DXVECTOR4* pVector) ; 867 + HRESULT GetVector( D3DXHANDLE hParameter, D3DXVECTOR4* pVector) ; 868 + HRESULT SetVectorArray( D3DXHANDLE hParameter, D3DXVECTOR4* pVector, UINT Count) ; 869 + HRESULT GetVectorArray( D3DXHANDLE hParameter, D3DXVECTOR4* pVector, UINT Count) ; 870 + HRESULT SetMatrix( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix) ; 871 + HRESULT GetMatrix( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix) ; 872 + HRESULT SetMatrixArray( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count) ; 873 + HRESULT GetMatrixArray( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count) ; 874 + HRESULT SetMatrixPointerArray( D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count) ; 875 + HRESULT GetMatrixPointerArray( D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count) ; 876 + HRESULT SetMatrixTranspose( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix) ; 877 + HRESULT GetMatrixTranspose( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix) ; 878 + HRESULT SetMatrixTransposeArray( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count) ; 879 + HRESULT GetMatrixTransposeArray( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count) ; 880 + HRESULT SetMatrixTransposePointerArray( D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count) ; 881 + HRESULT GetMatrixTransposePointerArray( D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count) ; 882 + HRESULT SetString( D3DXHANDLE hParameter, LPCSTR pString) ; 883 + HRESULT GetString( D3DXHANDLE hParameter, LPCSTR* ppString) ; 884 + HRESULT SetTexture( D3DXHANDLE hParameter, IDirect3DBaseTexture9 pTexture) ; 885 + HRESULT GetTexture( D3DXHANDLE hParameter, IDirect3DBaseTexture9 *ppTexture) ; 886 + HRESULT GetPixelShader( D3DXHANDLE hParameter, IDirect3DPixelShader9 *ppPShader) ; 887 + HRESULT GetVertexShader( D3DXHANDLE hParameter, IDirect3DVertexShader9 *ppVShader) ; 888 + 889 + //Set Range of an Array to pass to device 890 + //Useful for sending only a subrange of an array down to the device 891 + HRESULT SetArrayRange( D3DXHANDLE hParameter, UINT uStart, UINT uEnd) ; 892 + 893 +} 894 + 895 +interface ID3DXEffect : ID3DXBaseEffect 896 +{ 897 + extern(Windows): 898 + 899 + // Pool 900 + HRESULT GetPool( ID3DXEffectPool* ppPool) ; 901 + 902 + // Selecting and setting a technique 903 + HRESULT SetTechnique( D3DXHANDLE hTechnique) ; 904 + D3DXHANDLE GetCurrentTechnique() ; 905 + HRESULT ValidateTechnique( D3DXHANDLE hTechnique) ; 906 + HRESULT FindNextValidTechnique( D3DXHANDLE hTechnique, D3DXHANDLE *pTechnique) ; 907 + BOOL IsParameterUsed( D3DXHANDLE hParameter, D3DXHANDLE hTechnique) ; 908 + 909 + // Using current technique 910 + // Begin starts active technique 911 + // BeginPass begins a pass 912 + // CommitChanges updates changes to any set calls in the pass. should be called before 913 + // any DrawPrimitive call to d3d 914 + // EndPass ends a pass 915 + // End ends active technique 916 + HRESULT Begin( UINT *pPasses, DWORD Flags) ; 917 + HRESULT BeginPass( UINT Pass) ; 918 + HRESULT CommitChanges() ; 919 + HRESULT EndPass() ; 920 + HRESULT End() ; 921 + 922 + // Managing D3D Device 923 + HRESULT GetDevice( IDirect3DDevice9* ppDevice) ; 924 + HRESULT OnLostDevice() ; 925 + HRESULT OnResetDevice() ; 926 + 927 + // Logging device calls 928 + HRESULT SetStateManager( ID3DXEffectStateManager pManager) ; 929 + HRESULT GetStateManager( ID3DXEffectStateManager *ppManager) ; 930 + 931 + // Parameter blocks 932 + HRESULT BeginParameterBlock() ; 933 + D3DXHANDLE EndParameterBlock() ; 934 + HRESULT ApplyParameterBlock( D3DXHANDLE hParameterBlock) ; 935 + HRESULT DeleteParameterBlock( D3DXHANDLE hParameterBlock) ; 936 + 937 + // Cloning 938 + HRESULT CloneEffect( IDirect3DDevice9 pDevice, ID3DXEffect* ppEffect) ; 939 +} 940 + 941 +interface ID3DXEffectPool : IUnknown 942 +{ 943 + extern(Windows): 944 + 945 + // No public methods 946 +} 947 + 948 +interface ID3DXEffectStateManager : IUnknown 949 +{ 950 + extern(Windows): 951 + 952 + // The following methods are called by the Effect when it wants to make 953 + // the corresponding device call. Note that: 954 + // 1. Users manage the state and are therefore responsible for making the 955 + // the corresponding device calls themselves inside their callbacks. 956 + // 2. Effects pay attention to the return values of the callbacks, and so 957 + // users must pay attention to what they return in their callbacks. 958 + 959 + HRESULT SetTransform( D3DTRANSFORMSTATETYPE State, D3DMATRIX *pMatrix) ; 960 + HRESULT SetMaterial( D3DMATERIAL9 *pMaterial) ; 961 + HRESULT SetLight( DWORD Index, D3DLIGHT9 *pLight) ; 962 + HRESULT LightEnable( DWORD Index, BOOL Enable) ; 963 + HRESULT SetRenderState( D3DRENDERSTATETYPE State, DWORD Value) ; 964 + HRESULT SetTexture( DWORD Stage, IDirect3DBaseTexture9 pTexture) ; 965 + HRESULT SetTextureStageState( DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) ; 966 + HRESULT SetSamplerState( DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) ; 967 + HRESULT SetNPatchMode( FLOAT NumSegments) ; 968 + HRESULT SetFVF( DWORD FVF) ; 969 + HRESULT SetVertexShader( IDirect3DVertexShader9 pShader) ; 970 + HRESULT SetVertexShaderConstantF( UINT RegisterIndex, FLOAT *pConstantData, UINT RegisterCount) ; 971 + HRESULT SetVertexShaderConstantI( UINT RegisterIndex, INT *pConstantData, UINT RegisterCount) ; 972 + HRESULT SetVertexShaderConstantB( UINT RegisterIndex, BOOL *pConstantData, UINT RegisterCount) ; 973 + HRESULT SetPixelShader( IDirect3DPixelShader9 pShader) ; 974 + HRESULT SetPixelShaderConstantF( UINT RegisterIndex, FLOAT *pConstantData, UINT RegisterCount) ; 975 + HRESULT SetPixelShaderConstantI( UINT RegisterIndex, INT *pConstantData, UINT RegisterCount) ; 976 + HRESULT SetPixelShaderConstantB( UINT RegisterIndex, BOOL *pConstantData, UINT RegisterCount) ; 977 +} 978 + 979 +interface ID3DXInclude 980 +{ 981 + HRESULT Open(D3DXINCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes); 982 + HRESULT Close(LPCVOID pData); 983 +} 984 + 985 +// D3DX Functions --------------------------------------------------------------------------------------- 986 +extern(Windows) 987 +{ 988 + uint D3DXGetShaderVersion(uint* pFunction); 989 + 990 + HRESULT D3DXCheckTextureRequirements( 991 + IDirect3DDevice9 pDevice, 992 + UINT* pWidth, 993 + UINT* pHeight, 994 + UINT* pNumMipLevels, 995 + DWORD Usage, 996 + D3DFORMAT* pFormat, 997 + D3DPOOL Pool) ; 998 + 999 + HRESULT D3DXCreateTexture( 1000 + IDirect3DDevice9 pDevice, 1001 + UINT Width, 1002 + UINT Height, 1003 + UINT MipLevels, 1004 + DWORD Usage, 1005 + D3DFORMAT Format, 1006 + D3DPOOL Pool, 1007 + IDirect3DTexture9* ppTexture); 1008 + 1009 + HRESULT D3DXCreateCubeTexture( 1010 + IDirect3DDevice9 pDevice, 1011 + UINT Size, 1012 + UINT MipLevels, 1013 + DWORD Usage, 1014 + D3DFORMAT Format, 1015 + D3DPOOL Pool, 1016 + IDirect3DCubeTexture9* ppCubeTexture); 1017 + 1018 + HRESULT D3DXCreateTextureFromFileA( 1019 + LPDIRECT3DDEVICE9 pDevice, 1020 + LPCTSTR pSrcFile, 1021 + LPDIRECT3DTEXTURE9 * ppTexture); 1022 + 1023 + HRESULT D3DXCreateTextureFromFileExA( 1024 + IDirect3DDevice9 pDevice, 1025 + LPCSTR pSrcFile, 1026 + UINT Width, 1027 + UINT Height, 1028 + UINT MipLevels, 1029 + DWORD Usage, 1030 + D3DFORMAT Format, 1031 + D3DPOOL Pool, 1032 + DWORD Filter, 1033 + DWORD MipFilter, 1034 + D3DCOLOR ColorKey, 1035 + D3DXIMAGE_INFO* pSrcInfo, 1036 + PALETTEENTRY* pPalette, 1037 + IDirect3DTexture9* ppTexture); 1038 + 1039 + HRESULT D3DXCreateCubeTextureFromFileExA( 1040 + IDirect3DDevice9 pDevice, 1041 + LPCSTR pSrcFile, 1042 + UINT Size, 1043 + UINT MipLevels, 1044 + DWORD Usage, 1045 + D3DFORMAT Format, 1046 + D3DPOOL Pool, 1047 + DWORD Filter, 1048 + DWORD MipFilter, 1049 + D3DCOLOR ColorKey, 1050 + D3DXIMAGE_INFO* pSrcInfo, 1051 + PALETTEENTRY* pPalette, 1052 + IDirect3DCubeTexture9* ppCubeTexture); 1053 + 1054 + HRESULT D3DXSimplifyMesh( 1055 + ID3DXMesh pMesh, 1056 + DWORD* pAdjacency, 1057 + D3DXATTRIBUTEWEIGHTS *pVertexAttributeWeights, 1058 + FLOAT *pVertexWeights, 1059 + DWORD MinValue, 1060 + DWORD Options, 1061 + ID3DXMesh* ppMesh); 1062 + 1063 + HRESULT D3DXCreateSkinInfoFVF( 1064 + DWORD NumVertices, 1065 + DWORD FVF, 1066 + DWORD NumBones, 1067 + ID3DXSkinInfo* ppSkinInfo); 1068 + 1069 + D3DXVECTOR2* D3DXVec2TransformCoord( D3DXVECTOR2 *pOut, D3DXVECTOR2 *pV, D3DXMATRIX *pM ); 1070 + 1071 + D3DXVECTOR4* D3DXVec3Transform( D3DXVECTOR4 *pOut, D3DXVECTOR3 *pV, D3DXMATRIX *pM ); 1072 + 1073 + D3DXVECTOR3* D3DXVec3TransformCoord( D3DXVECTOR3 *pOut, D3DXVECTOR3 *pV, D3DXMATRIX *pM ); 1074 + 1075 + D3DXVECTOR4* D3DXVec4Transform( D3DXVECTOR4 *pOut, D3DXVECTOR4 *pV, D3DXMATRIX *pM ); 1076 + 1077 + D3DXMATRIX* D3DXMatrixTranspose( D3DXMATRIX *pOut, D3DXMATRIX *pM ); 1078 + 1079 + D3DXMATRIX* D3DXMatrixMultiply( D3DXMATRIX *pOut, D3DXMATRIX *pM1, D3DXMATRIX *pM2 ); 1080 + 1081 + D3DXMATRIX* D3DXMatrixInverse( D3DXMATRIX *pOut, FLOAT *pDeterminant, D3DXMATRIX *pM ); 1082 + 1083 + D3DXMATRIX* D3DXMatrixScaling( D3DXMATRIX *pOut, FLOAT sx, FLOAT sy, FLOAT sz ); 1084 + 1085 + D3DXMATRIX* D3DXMatrixTranslation( D3DXMATRIX *pOut, FLOAT x, FLOAT y, FLOAT z ); 1086 + 1087 + D3DXMATRIX* D3DXMatrixRotationX( D3DXMATRIX *pOut, FLOAT Angle ); 1088 + 1089 + D3DXMATRIX* D3DXMatrixRotationY( D3DXMATRIX *pOut, FLOAT Angle ); 1090 + 1091 + D3DXMATRIX* D3DXMatrixRotationZ( D3DXMATRIX *pOut, FLOAT Angle ); 1092 + 1093 + D3DXMATRIX* D3DXMatrixRotationQuaternion( D3DXMATRIX *pOut, D3DXQUATERNION *pQ); 1094 + 1095 + D3DXMATRIX* D3DXMatrixRotationYawPitchRoll( D3DXMATRIX *pOut, FLOAT Yaw, FLOAT Pitch, FLOAT Roll ); 1096 + 1097 + D3DXMATRIX* D3DXMatrixAffineTransformation2D( D3DXMATRIX *pOut, FLOAT Scaling, D3DXVECTOR2 *pRotationCenter, 1098 + float Rotation, D3DXVECTOR2 *pTranslation); 1099 + 1100 + D3DXMATRIX* D3DXMatrixPerspectiveFovLH( D3DXMATRIX *pOut, FLOAT fovy, FLOAT Aspect, FLOAT zn, FLOAT zf ); 1101 + 1102 + D3DXMATRIX* D3DXMatrixOrthoLH( D3DXMATRIX *pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf ); 1103 + 1104 + D3DXMATRIX* D3DXMatrixOrthoOffCenterLH( D3DXMATRIX *pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, 1105 + FLOAT zf ); 1106 + 1107 + void D3DXQuaternionToAxisAngle( D3DXQUATERNION *pQ, D3DXVECTOR3 *pAxis, FLOAT *pAngle ); 1108 + 1109 + D3DXQUATERNION* D3DXQuaternionRotationMatrix( D3DXQUATERNION *pOut, D3DXMATRIX *pM); 1110 + 1111 + D3DXQUATERNION* D3DXQuaternionNormalize( D3DXQUATERNION *pOut, D3DXQUATERNION *pQ ); 1112 + 1113 + D3DXPLANE* D3DXPlaneNormalize( D3DXPLANE *pOut, D3DXPLANE *pP); 1114 + 1115 + char* DXGetErrorDescription9A(HRESULT hr); 1116 + 1117 + HRESULT D3DXCreateEffectFromFileA( 1118 + IDirect3DDevice9 pDevice, 1119 + LPCSTR pSrcFile, 1120 + D3DXMACRO* pDefines, 1121 + ID3DXInclude pInclude, 1122 + DWORD Flags, 1123 + ID3DXEffectPool pPool, 1124 + ID3DXEffect* ppEffect, 1125 + ID3DXBuffer* ppCompilationErrors); 1126 + 1127 + D3DXMATRIX* D3DXMatrixTransformation2D( D3DXMATRIX *pOut, D3DXVECTOR2 *pScalingCenter, 1128 + float *pScalingRotation, D3DXVECTOR2 *pScaling, 1129 + D3DXVECTOR2 *pRotationCenter, float Rotation, 1130 + D3DXVECTOR2 *pTranslation); 1131 + 1132 + HRESULT D3DXLoadMeshFromXA( 1133 + LPCSTR pFilename, 1134 + DWORD Options, 1135 + IDirect3DDevice9 pD3D, 1136 + ID3DXBuffer *ppAdjacency, 1137 + ID3DXBuffer *ppMaterials, 1138 + ID3DXBuffer *ppEffectInstances, 1139 + DWORD *pNumMaterials, 1140 + ID3DXMesh *ppMesh); 1141 + 1142 + HRESULT D3DXCreatePolygon( 1143 + IDirect3DDevice9 pDevice, 1144 + FLOAT Length, 1145 + UINT Sides, 1146 + ID3DXMesh* ppMesh, 1147 + ID3DXBuffer* ppAdjacency); 1148 + 1149 + HRESULT D3DXCreateBox( 1150 + IDirect3DDevice9 pDevice, 1151 + FLOAT Width, 1152 + FLOAT Height, 1153 + FLOAT Depth, 1154 + ID3DXMesh* ppMesh, 1155 + ID3DXBuffer* ppAdjacency); 1156 + 1157 + HRESULT D3DXCreateCylinder( 1158 + IDirect3DDevice9 pDevice, 1159 + FLOAT Radius1, 1160 + FLOAT Radius2, 1161 + FLOAT Length, 1162 + UINT Slices, 1163 + UINT Stacks, 1164 + ID3DXMesh* ppMesh, 1165 + ID3DXBuffer* ppAdjacency); 1166 + 1167 + HRESULT D3DXCreateSphere( 1168 + IDirect3DDevice9 pDevice, 1169 + FLOAT Radius, 1170 + UINT Slices, 1171 + UINT Stacks, 1172 + ID3DXMesh* ppMesh, 1173 + ID3DXBuffer* ppAdjacency); 1174 + 1175 + HRESULT D3DXCreateTorus( 1176 + IDirect3DDevice9 pDevice, 1177 + FLOAT InnerRadius, 1178 + FLOAT OuterRadius, 1179 + UINT Sides, 1180 + UINT Rings, 1181 + ID3DXMesh* ppMesh, 1182 + ID3DXBuffer* ppAdjacency); 1183 + 1184 + HRESULT D3DXCreateTeapot( 1185 + IDirect3DDevice9 pDevice, 1186 + ID3DXMesh* ppMesh, 1187 + ID3DXBuffer* ppAdjacency); 1188 + 1189 + HRESULT D3DXCreateFontA( 1190 + IDirect3DDevice9 pDevice, 1191 + UINT Height, 1192 + UINT Width, 1193 + UINT Weight, 1194 + UINT MipLevels, 1195 + BOOL Italic, 1196 + DWORD CharSet, 1197 + DWORD OutputPrecision, 1198 + DWORD Quality, 1199 + DWORD PitchAndFamily, 1200 + LPCTSTR pFacename, 1201 + ID3DXFont *ppFont); 1202 + 1203 + HRESULT D3DXCreateSprite( 1204 + IDirect3DDevice9 pDevice, 1205 + ID3DXSprite* ppSprite) ; 1206 + 1207 + HRESULT D3DXCreateEffect( 1208 + IDirect3DDevice9 pDevice, 1209 + LPCVOID pSrcData, 1210 + UINT SrcDataLen, 1211 + D3DXMACRO* pDefines, 1212 + ID3DXInclude pInclude, 1213 + DWORD Flags, 1214 + ID3DXEffectPool pPool, 1215 + ID3DXEffect* ppEffect, 1216 + ID3DXBuffer* ppCompilationErrors); 1217 + 1218 + HRESULT D3DXCreateEffectPool( 1219 + ID3DXEffectPool* pEffectPool); 1220 + 1221 + HRESULT D3DXGetShaderInputSemantics( 1222 + DWORD* pFunction, 1223 + D3DXSEMANTIC* pSemantics, 1224 + UINT* pCount); 1225 + 1226 + HRESULT 1227 + D3DXCreateMeshFVF( 1228 + DWORD NumFaces, 1229 + DWORD NumVertices, 1230 + DWORD Options, 1231 + DWORD FVF, 1232 + IDirect3DDevice9 pD3DDevice, 1233 + ID3DXMesh* ppMesh); 1234 + 1235 + UINT D3DXGetFVFVertexSize(DWORD FVF); 1236 + 1237 + HRESULT D3DXFileCreate(ID3DXFile* lplpDirectXFile); 1238 + 1239 + HRESULT D3DXLoadMeshFromXof( 1240 + ID3DXFileData pxofMesh, 1241 + DWORD Options, 1242 + IDirect3DDevice9 pD3DDevice, 1243 + ID3DXBuffer *ppAdjacency, 1244 + ID3DXBuffer *ppMaterials, 1245 + ID3DXBuffer *ppEffectInstances, 1246 + DWORD *pNumMaterials, 1247 + ID3DXMesh *ppMesh); 1248 + 1249 + HRESULT D3DXConcatenateMeshes( 1250 + ID3DXMesh * ppMeshes, 1251 + UINT NumMeshes, 1252 + DWORD Options, 1253 + D3DXMATRIX * pGeomXForms, 1254 + D3DXMATRIX * pTextureXForms, 1255 + D3DVERTEXELEMENT9 * pDecl, 1256 + IDirect3DDevice9 pD3DDevice, 1257 + ID3DXMesh * ppMeshOut); 1258 + 1259 + HRESULT D3DXDeclaratorFromFVF(DWORD FVF, D3DVERTEXELEMENT9* Declaration); 1260 + 1261 + D3DXQUATERNION* D3DXQuaternionSlerp(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ1, D3DXQUATERNION* pQ2, float t); 1262 + 1263 + D3DXVECTOR3* D3DXVec3CatmullRom(D3DXVECTOR3 *pOut, D3DXVECTOR3 *pV0, D3DXVECTOR3 *pV1, D3DXVECTOR3 *pV2, D3DXVECTOR3 *pV3, float s); 1264 + 1265 + void D3DXQuaternionSquadSetup( D3DXQUATERNION *pAOut, 1266 + D3DXQUATERNION *pBOut, 1267 + D3DXQUATERNION *pCOut, 1268 + D3DXQUATERNION *pQ0, 1269 + D3DXQUATERNION *pQ1, 1270 + D3DXQUATERNION *pQ2, 1271 + D3DXQUATERNION *pQ3); 1272 + 1273 + D3DXQUATERNION* D3DXQuaternionSquad(D3DXQUATERNION *pOut, 1274 + D3DXQUATERNION *pQ1, 1275 + D3DXQUATERNION *pA, 1276 + D3DXQUATERNION *pB, 1277 + D3DXQUATERNION *pC, 1278 + float t); 1279 + 1280 + HRESULT D3DXMatrixDecompose(D3DXVECTOR3 *pOutScale, 1281 + D3DXQUATERNION *pOutRotation, 1282 + D3DXVECTOR3 *pOutTranslation, 1283 + D3DXMATRIX *pM 1284 + ); 1285 + 1286 + D3DXQUATERNION* D3DXQuaternionRotationYawPitchRoll(D3DXQUATERNION *pOut, 1287 + FLOAT Yaw, 1288 + FLOAT Pitch, 1289 + FLOAT Roll 1290 + ); 1291 + 1292 + UINT D3DXGetDeclVertexSize(D3DVERTEXELEMENT9 *pDecl, DWORD Stream ); 1293 +} // extern(Windows) 1294 + 1295 +D3DXMATRIX* D3DXMatrixIdentity( D3DXMATRIX *pOut ) 1296 +{ 1297 + pOut.m[0][1] = pOut.m[0][2] = pOut.m[0][3] = 1298 + pOut.m[1][0] = pOut.m[1][2] = pOut.m[1][3] = 1299 + pOut.m[2][0] = pOut.m[2][1] = pOut.m[2][3] = 1300 + pOut.m[3][0] = pOut.m[3][1] = pOut.m[3][2] = 0.0f; 1301 + 1302 + pOut.m[0][0] = pOut.m[1][1] = pOut.m[2][2] = pOut.m[3][3] = 1.0f; 1303 + return pOut; 1304 +} 1305 + 1306 +FLOAT D3DXVec3LengthSq(D3DXVECTOR3* v) 1307 +{ 1308 + return (v.x * v.x) + (v.y * v.y) + (v.z * v.z); 1309 +} 1310 + 1311 +template DEFINE_GUID(uint d1, ushort d2, ushort d3, ubyte d4, ubyte d5, ubyte d6, ubyte d7, ubyte d8, ubyte d9, ubyte d10, ubyte d11) 1312 +{ 1313 + const GUID DEFINE_GUID = {d1, d2, d3, [d4, d5, d6, d7, d8, d9, d10, d11]}; 1314 +} 1315 + 1316 +const GUID TID_D3DRMInfo = DEFINE_GUID!(0x2b957100, 0x9e9a, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); 1317 +const GUID TID_D3DRMMesh = DEFINE_GUID!(0x3d82ab44, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); 1318 +const GUID TID_D3DRMVector = DEFINE_GUID!(0x3d82ab5e, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); 1319 +const GUID TID_D3DRMMeshFace = DEFINE_GUID!(0x3d82ab5f, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); 1320 +const GUID TID_D3DRMMaterial = DEFINE_GUID!(0x3d82ab4d, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); 1321 +const GUID TID_D3DRMMaterialArray = DEFINE_GUID!(0x35ff44e1, 0x6c7c, 0x11cf, 0x8F, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1322 +const GUID TID_D3DRMFrame = DEFINE_GUID!(0x3d82ab46, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); 1323 +const GUID TID_D3DRMFrameTransformMatrix = DEFINE_GUID!(0xf6f23f41, 0x7686, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1324 +const GUID TID_D3DRMMeshMaterialList = DEFINE_GUID!(0xf6f23f42, 0x7686, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1325 +const GUID TID_D3DRMMeshTextureCoords = DEFINE_GUID!(0xf6f23f40, 0x7686, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1326 +const GUID TID_D3DRMMeshNormals = DEFINE_GUID!(0xf6f23f43, 0x7686, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1327 +const GUID TID_D3DRMCoords2d = DEFINE_GUID!(0xf6f23f44, 0x7686, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1328 +const GUID TID_D3DRMMatrix4x4 = DEFINE_GUID!(0xf6f23f45, 0x7686, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1329 +const GUID TID_D3DRMAnimation = DEFINE_GUID!(0x3d82ab4f, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); 1330 +const GUID TID_D3DRMAnimationSet = DEFINE_GUID!(0x3d82ab50, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); 1331 +const GUID TID_D3DRMAnimationKey = DEFINE_GUID!(0x10dd46a8, 0x775b, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xA3); 1332 +const GUID TID_D3DRMFloatKeys = DEFINE_GUID!(0x10dd46a9, 0x775b, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xA3); 1333 +const GUID TID_D3DRMMaterialAmbientColor = DEFINE_GUID!(0x01411840, 0x7786, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xA3); 1334 +const GUID TID_D3DRMMaterialDiffuseColor = DEFINE_GUID!(0x01411841, 0x7786, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xA3); 1335 +const GUID TID_D3DRMMaterialSpecularColor = DEFINE_GUID!(0x01411842, 0x7786, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xA3); 1336 +const GUID TID_D3DRMMaterialEmissiveColor = DEFINE_GUID!(0xd3e16e80, 0x7835, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1337 +const GUID TID_D3DRMMaterialPower = DEFINE_GUID!(0x01411843, 0x7786, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xA3); 1338 +const GUID TID_D3DRMColorRGBA = DEFINE_GUID!(0x35ff44e0, 0x6c7c, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xA3); 1339 +const GUID TID_D3DRMColorRGB = DEFINE_GUID!(0xd3e16e81, 0x7835, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1340 +const GUID TID_D3DRMGuid = DEFINE_GUID!(0xa42790e0, 0x7810, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1341 +const GUID TID_D3DRMTextureFilename = DEFINE_GUID!(0xa42790e1, 0x7810, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1342 +const GUID TID_D3DRMTextureReference = DEFINE_GUID!(0xa42790e2, 0x7810, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1343 +const GUID TID_D3DRMIndexedColor = DEFINE_GUID!(0x1630b820, 0x7842, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1344 +const GUID TID_D3DRMMeshVertexColors = DEFINE_GUID!(0x1630b821, 0x7842, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1345 +const GUID TID_D3DRMMaterialWrap = DEFINE_GUID!(0x4885ae60, 0x78e8, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1346 +const GUID TID_D3DRMBoolean = DEFINE_GUID!(0x537da6a0, 0xca37, 0x11d0, 0x94, 0x1c, 0x0, 0x80, 0xc8, 0xc, 0xfa, 0x7b); 1347 +const GUID TID_D3DRMMeshFaceWraps = DEFINE_GUID!(0xed1ec5c0, 0xc0a8, 0x11d0, 0x94, 0x1c, 0x0, 0x80, 0xc8, 0xc, 0xfa, 0x7b); 1348 +const GUID TID_D3DRMBoolean2d = DEFINE_GUID!(0x4885ae63, 0x78e8, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1349 +const GUID TID_D3DRMTimedFloatKeys = DEFINE_GUID!(0xf406b180, 0x7b3b, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1350 +const GUID TID_D3DRMAnimationOptions = DEFINE_GUID!(0xe2bf56c0, 0x840f, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1351 +const GUID TID_D3DRMFramePosition = DEFINE_GUID!(0xe2bf56c1, 0x840f, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1352 +const GUID TID_D3DRMFrameVelocity = DEFINE_GUID!(0xe2bf56c2, 0x840f, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1353 +const GUID TID_D3DRMFrameRotation = DEFINE_GUID!(0xe2bf56c3, 0x840f, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); 1354 +const GUID TID_D3DRMLight = DEFINE_GUID!(0x3d82ab4a, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); 1355 +const GUID TID_D3DRMCamera = DEFINE_GUID!(0x3d82ab51, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); 1356 +const GUID TID_D3DRMAppData = DEFINE_GUID!(0xe5745280, 0xb24f, 0x11cf, 0x9d, 0xd5, 0x0, 0xaa, 0x0, 0xa7, 0x1a, 0x2f); 1357 +const GUID TID_D3DRMLightUmbra = DEFINE_GUID!(0xaed22740, 0xb31f, 0x11cf, 0x9d, 0xd5, 0x0, 0xaa, 0x0, 0xa7, 0x1a, 0x2f); 1358 +const GUID TID_D3DRMLightRange = DEFINE_GUID!(0xaed22742, 0xb31f, 0x11cf, 0x9d, 0xd5, 0x0, 0xaa, 0x0, 0xa7, 0x1a, 0x2f); 1359 +const GUID TID_D3DRMLightPenumbra = DEFINE_GUID!(0xaed22741, 0xb31f, 0x11cf, 0x9d, 0xd5, 0x0, 0xaa, 0x0, 0xa7, 0x1a, 0x2f); 1360 +const GUID TID_D3DRMLightAttenuation = DEFINE_GUID!(0xa8a98ba0, 0xc5e5, 0x11cf, 0xb9, 0x41, 0x0, 0x80, 0xc8, 0xc, 0xfa, 0x7b); 1361 +const GUID TID_D3DRMInlineData = DEFINE_GUID!(0x3a23eea0, 0x94b1, 0x11d0, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); 1362 +const GUID TID_D3DRMUrl = DEFINE_GUID!(0x3a23eea1, 0x94b1, 0x11d0, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); 1363 +const GUID TID_D3DRMProgressiveMesh = DEFINE_GUID!(0x8A63C360, 0x997D, 0x11d0, 0x94, 0x1C, 0x0, 0x80, 0xC8, 0x0C, 0xFA, 0x7B); 1364 +const GUID TID_D3DRMExternalVisual = DEFINE_GUID!(0x98116AA0, 0xBDBA, 0x11d1, 0x82, 0xC0, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x71); 1365 +const GUID TID_D3DRMStringProperty = DEFINE_GUID!(0x7f0f21e0, 0xbfe1, 0x11d1, 0x82, 0xc0, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x71); 1366 +const GUID TID_D3DRMPropertyBag = DEFINE_GUID!(0x7f0f21e1, 0xbfe1, 0x11d1, 0x82, 0xc0, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x71); 1367 +const GUID TID_D3DRMRightHanded = DEFINE_GUID!(0x7f5d5ea0, 0xd53a, 0x11d1, 0x82, 0xc0, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x71); 1368 + 1369 +ubyte[] D3DRM_XTEMPLATES = 1370 +[ 1371 + 0x78, 0x6f, 0x66, 0x20, 0x30, 0x33, 0x30, 0x32, 0x62, 1372 + 0x69, 0x6e, 0x20, 0x30, 0x30, 0x36, 0x34, 0x1f, 0, 0x1, 1373 + 0, 0x6, 0, 0, 0, 0x48, 0x65, 0x61, 0x64, 0x65, 1374 + 0x72, 0xa, 0, 0x5, 0, 0x43, 0xab, 0x82, 0x3d, 0xda, 1375 + 0x62, 0xcf, 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 1376 + 0x33, 0x28, 0, 0x1, 0, 0x5, 0, 0, 0, 0x6d, 1377 + 0x61, 0x6a, 0x6f, 0x72, 0x14, 0, 0x28, 0, 0x1, 0, 1378 + 0x5, 0, 0, 0, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x14, 1379 + 0, 0x29, 0, 0x1, 0, 0x5, 0, 0, 0, 0x66, 1380 + 0x6c, 0x61, 0x67, 0x73, 0x14, 0, 0xb, 0, 0x1f, 0, 1381 + 0x1, 0, 0x6, 0, 0, 0, 0x56, 0x65, 0x63, 0x74, 1382 + 0x6f, 0x72, 0xa, 0, 0x5, 0, 0x5e, 0xab, 0x82, 0x3d, 1383 + 0xda, 0x62, 0xcf, 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 1384 + 0xe4, 0x33, 0x2a, 0, 0x1, 0, 0x1, 0, 0, 0, 1385 + 0x78, 0x14, 0, 0x2a, 0, 0x1, 0, 0x1, 0, 0, 1386 + 0, 0x79, 0x14, 0, 0x2a, 0, 0x1, 0, 0x1, 0, 1387 + 0, 0, 0x7a, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 1388 + 0, 0x8, 0, 0, 0, 0x43, 0x6f, 0x6f, 0x72, 0x64, 1389 + 0x73, 0x32, 0x64, 0xa, 0, 0x5, 0, 0x44, 0x3f, 0xf2, 1390 + 0xf6, 0x86, 0x76, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 1391 + 0x35, 0x94, 0xa3, 0x2a, 0, 0x1, 0, 0x1, 0, 0, 1392 + 0, 0x75, 0x14, 0, 0x2a, 0, 0x1, 0, 0x1, 0, 1393 + 0, 0, 0x76, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 1394 + 0, 0x9, 0, 0, 0, 0x4d, 0x61, 0x74, 0x72, 0x69, 1395 + 0x78, 0x34, 0x78, 0x34, 0xa, 0, 0x5, 0, 0x45, 0x3f, 1396 + 0xf2, 0xf6, 0x86, 0x76, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 1397 + 0x33, 0x35, 0x94, 0xa3, 0x34, 0, 0x2a, 0, 0x1, 0, 1398 + 0x6, 0, 0, 0, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 1399 + 0xe, 0, 0x3, 0, 0x10, 0, 0, 0, 0xf, 0, 1400 + 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0, 0x9, 0, 1401 + 0, 0, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x47, 0x42, 1402 + 0x41, 0xa, 0, 0x5, 0, 0xe0, 0x44, 0xff, 0x35, 0x7c, 1403 + 0x6c, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 1404 + 0xa3, 0x2a, 0, 0x1, 0, 0x3, 0, 0, 0, 0x72, 1405 + 0x65, 0x64, 0x14, 0, 0x2a, 0, 0x1, 0, 0x5, 0, 1406 + 0, 0, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x14, 0, 0x2a, 1407 + 0, 0x1, 0, 0x4, 0, 0, 0, 0x62, 0x6c, 0x75, 1408 + 0x65, 0x14, 0, 0x2a, 0, 0x1, 0, 0x5, 0, 0, 1409 + 0, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x14, 0, 0xb, 0, 1410 + 0x1f, 0, 0x1, 0, 0x8, 0, 0, 0, 0x43, 0x6f, 1411 + 0x6c, 0x6f, 0x72, 0x52, 0x47, 0x42, 0xa, 0, 0x5, 0, 1412 + 0x81, 0x6e, 0xe1, 0xd3, 0x35, 0x78, 0xcf, 0x11, 0x8f, 0x52, 1413 + 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x2a, 0, 0x1, 0, 1414 + 0x3, 0, 0, 0, 0x72, 0x65, 0x64, 0x14, 0, 0x2a, 1415 + 0, 0x1, 0, 0x5, 0, 0, 0, 0x67, 0x72, 0x65, 1416 + 0x65, 0x6e, 0x14, 0, 0x2a, 0, 0x1, 0, 0x4, 0, 1417 + 0, 0, 0x62, 0x6c, 0x75, 0x65, 0x14, 0, 0xb, 0, 1418 + 0x1f, 0, 0x1, 0, 0xc, 0, 0, 0, 0x49, 0x6e, 1419 + 0x64, 0x65, 0x78, 0x65, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 1420 + 0xa, 0, 0x5, 0, 0x20, 0xb8, 0x30, 0x16, 0x42, 0x78, 1421 + 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 1422 + 0x29, 0, 0x1, 0, 0x5, 0, 0, 0, 0x69, 0x6e, 1423 + 0x64, 0x65, 0x78, 0x14, 0, 0x1, 0, 0x9, 0, 0, 1424 + 0, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x47, 0x42, 0x41, 1425 + 0x1, 0, 0xa, 0, 0, 0, 0x69, 0x6e, 0x64, 0x65, 1426 + 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x14, 0, 0xb, 0, 1427 + 0x1f, 0, 0x1, 0, 0x7, 0, 0, 0, 0x42, 0x6f, 1428 + 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0xa, 0, 0x5, 0, 0xa0, 1429 + 0xa6, 0x7d, 0x53, 0x37, 0xca, 0xd0, 0x11, 0x94, 0x1c, 0, 1430 + 0x80, 0xc8, 0xc, 0xfa, 0x7b, 0x29, 0, 0x1, 0, 0x9, 1431 + 0, 0, 0, 0x74, 0x72, 0x75, 0x65, 0x66, 0x61, 0x6c, 1432 + 0x73, 0x65, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0, 1433 + 0x9, 0, 0, 0, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 1434 + 0x6e, 0x32, 0x64, 0xa, 0, 0x5, 0, 0x63, 0xae, 0x85, 1435 + 0x48, 0xe8, 0x78, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 1436 + 0x35, 0x94, 0xa3, 0x1, 0, 0x7, 0, 0, 0, 0x42, 1437 + 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x1, 0, 0x1, 0, 1438 + 0, 0, 0x75, 0x14, 0, 0x1, 0, 0x7, 0, 0, 1439 + 0, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x1, 0, 1440 + 0x1, 0, 0, 0, 0x76, 0x14, 0, 0xb, 0, 0x1f, 1441 + 0, 0x1, 0, 0xc, 0, 0, 0, 0x4d, 0x61, 0x74, 1442 + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x57, 0x72, 0x61, 0x70, 0xa, 1443 + 0, 0x5, 0, 0x60, 0xae, 0x85, 0x48, 0xe8, 0x78, 0xcf, 1444 + 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x1, 1445 + 0, 0x7, 0, 0, 0, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 1446 + 0x61, 0x6e, 0x1, 0, 0x1, 0, 0, 0, 0x75, 0x14, 1447 + 0, 0x1, 0, 0x7, 0, 0, 0, 0x42, 0x6f, 0x6f, 1448 + 0x6c, 0x65, 0x61, 0x6e, 0x1, 0, 0x1, 0, 0, 0, 1449 + 0x76, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0, 0xf, 1450 + 0, 0, 0, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 1451 + 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0xa, 0, 1452 + 0x5, 0, 0xe1, 0x90, 0x27, 0xa4, 0x10, 0x78, 0xcf, 0x11, 1453 + 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x31, 0, 1454 + 0x1, 0, 0x8, 0, 0, 0, 0x66, 0x69, 0x6c, 0x65, 1455 + 0x6e, 0x61, 0x6d, 0x65, 0x14, 0, 0xb, 0, 0x1f, 0, 1456 + 0x1, 0, 0x8, 0, 0, 0, 0x4d, 0x61, 0x74, 0x65, 1457 + 0x72, 0x69, 0x61, 0x6c, 0xa, 0, 0x5, 0, 0x4d, 0xab, 1458 + 0x82, 0x3d, 0xda, 0x62, 0xcf, 0x11, 0xab, 0x39, 0, 0x20, 1459 + 0xaf, 0x71, 0xe4, 0x33, 0x1, 0, 0x9, 0, 0, 0, 1460 + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x47, 0x42, 0x41, 0x1, 1461 + 0, 0x9, 0, 0, 0, 0x66, 0x61, 0x63, 0x65, 0x43, 1462 + 0x6f, 0x6c, 0x6f, 0x72, 0x14, 0, 0x2a, 0, 0x1, 0, 1463 + 0x5, 0, 0, 0, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x14, 1464 + 0, 0x1, 0, 0x8, 0, 0, 0, 0x43, 0x6f, 0x6c, 1465 + 0x6f, 0x72, 0x52, 0x47, 0x42, 0x1, 0, 0xd, 0, 0, 1466 + 0, 0x73, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x43, 1467 + 0x6f, 0x6c, 0x6f, 0x72, 0x14, 0, 0x1, 0, 0x8, 0, 1468 + 0, 0, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x47, 0x42, 1469 + 0x1, 0, 0xd, 0, 0, 0, 0x65, 0x6d, 0x69, 0x73, 1470 + 0x73, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x14, 1471 + 0, 0xe, 0, 0x12, 0, 0x12, 0, 0x12, 0, 0xf, 1472 + 0, 0xb, 0, 0x1f, 0, 0x1, 0, 0x8, 0, 0, 1473 + 0, 0x4d, 0x65, 0x73, 0x68, 0x46, 0x61, 0x63, 0x65, 0xa, 1474 + 0, 0x5, 0, 0x5f, 0xab, 0x82, 0x3d, 0xda, 0x62, 0xcf, 1475 + 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33, 0x29, 1476 + 0, 0x1, 0, 0x12, 0, 0, 0, 0x6e, 0x46, 0x61, 1477 + 0x63, 0x65, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 1478 + 0x64, 0x69, 0x63, 0x65, 0x73, 0x14, 0, 0x34, 0, 0x29, 1479 + 0, 0x1, 0, 0x11, 0, 0, 0, 0x66, 0x61, 0x63, 1480 + 0x65, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 1481 + 0x69, 0x63, 0x65, 0x73, 0xe, 0, 0x1, 0, 0x12, 0, 1482 + 0, 0, 0x6e, 0x46, 0x61, 0x63, 0x65, 0x56, 0x65, 0x72, 1483 + 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 1484 + 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0, 1485 + 0xd, 0, 0, 0, 0x4d, 0x65, 0x73, 0x68, 0x46, 0x61, 1486 + 0x63, 0x65, 0x57, 0x72, 0x61, 0x70, 0x73, 0xa, 0, 0x5, 1487 + 0, 0xc0, 0xc5, 0x1e, 0xed, 0xa8, 0xc0, 0xd0, 0x11, 0x94, 1488 + 0x1c, 0, 0x80, 0xc8, 0xc, 0xfa, 0x7b, 0x29, 0, 0x1, 1489 + 0, 0xf, 0, 0, 0, 0x6e, 0x46, 0x61, 0x63, 0x65, 1490 + 0x57, 0x72, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 1491 + 0x14, 0, 0x34, 0, 0x1, 0, 0x9, 0, 0, 0, 1492 + 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x32, 0x64, 0x1, 1493 + 0, 0xe, 0, 0, 0, 0x66, 0x61, 0x63, 0x65, 0x57, 1494 + 0x72, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0xe, 1495 + 0, 0x1, 0, 0xf, 0, 0, 0, 0x6e, 0x46, 0x61, 1496 + 0x63, 0x65, 0x57, 0x72, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75, 1497 + 0x65, 0x73, 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, 0, 1498 + 0x1, 0, 0x11, 0, 0, 0, 0x4d, 0x65, 0x73, 0x68, 1499 + 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6f, 1500 + 0x72, 0x64, 0x73, 0xa, 0, 0x5, 0, 0x40, 0x3f, 0xf2, 1501 + 0xf6, 0x86, 0x76, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 1502 + 0x35, 0x94, 0xa3, 0x29, 0, 0x1, 0, 0xe, 0, 0, 1503 + 0, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 1504 + 0x6f, 0x6f, 0x72, 0x64, 0x73, 0x14, 0, 0x34, 0, 0x1, 1505 + 0, 0x8, 0, 0, 0, 0x43, 0x6f, 0x6f, 0x72, 0x64, 1506 + 0x73, 0x32, 0x64, 0x1, 0, 0xd, 0, 0, 0, 0x74, 1507 + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6f, 0x72, 1508 + 0x64, 0x73, 0xe, 0, 0x1, 0, 0xe, 0, 0, 0, 1509 + 0x6e, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 1510 + 0x6f, 0x72, 0x64, 0x73, 0xf, 0, 0x14, 0, 0xb, 0, 1511 + 0x1f, 0, 0x1, 0, 0x10, 0, 0, 0, 0x4d, 0x65, 1512 + 0x73, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 1513 + 0x4c, 0x69, 0x73, 0x74, 0xa, 0, 0x5, 0, 0x42, 0x3f, 1514 + 0xf2, 0xf6, 0x86, 0x76, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 1515 + 0x33, 0x35, 0x94, 0xa3, 0x29, 0, 0x1, 0, 0xa, 0, 1516 + 0, 0, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 1517 + 0x6c, 0x73, 0x14, 0, 0x29, 0, 0x1, 0, 0xc, 0, 1518 + 0, 0, 0x6e, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x64, 1519 + 0x65, 0x78, 0x65, 0x73, 0x14, 0, 0x34, 0, 0x29, 0, 1520 + 0x1, 0, 0xb, 0, 0, 0, 0x66, 0x61, 0x63, 0x65, 1521 + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0xe, 0, 0x1, 1522 + 0, 0xc, 0, 0, 0, 0x6e, 0x46, 0x61, 0x63, 0x65, 1523 + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0xf, 0, 0x14, 1524 + 0, 0xe, 0, 0x1, 0, 0x8, 0, 0, 0, 0x4d, 1525 + 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0xf, 0, 0xb, 1526 + 0, 0x1f, 0, 0x1, 0, 0xb, 0, 0, 0, 0x4d, 1527 + 0x65, 0x73, 0x68, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x73, 1528 + 0xa, 0, 0x5, 0, 0x43, 0x3f, 0xf2, 0xf6, 0x86, 0x76, 1529 + 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 1530 + 0x29, 0, 0x1, 0, 0x8, 0, 0, 0, 0x6e, 0x4e, 1531 + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x73, 0x14, 0, 0x34, 0, 1532 + 0x1, 0, 0x6, 0, 0, 0, 0x56, 0x65, 0x63, 0x74, 1533 + 0x6f, 0x72, 0x1, 0, 0x7, 0, 0, 0, 0x6e, 0x6f, 1534 + 0x72, 0x6d, 0x61, 0x6c, 0x73, 0xe, 0, 0x1, 0, 0x8, 1535 + 0, 0, 0, 0x6e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 1536 + 0x73, 0xf, 0, 0x14, 0, 0x29, 0, 0x1, 0, 0xc, 1537 + 0, 0, 0, 0x6e, 0x46, 0x61, 0x63, 0x65, 0x4e, 0x6f, 1538 + 0x72, 0x6d, 0x61, 0x6c, 0x73, 0x14, 0, 0x34, 0, 0x1, 1539 + 0, 0x8, 0, 0, 0, 0x4d, 0x65, 0x73, 0x68, 0x46, 1540 + 0x61, 0x63, 0x65, 0x1, 0, 0xb, 0, 0, 0, 0x66, 1541 + 0x61, 0x63, 0x65, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x73, 1542 + 0xe, 0, 0x1, 0, 0xc, 0, 0, 0, 0x6e, 0x46, 1543 + 0x61, 0x63, 0x65, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x73, 1544 + 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0, 1545 + 0x10, 0, 0, 0, 0x4d, 0x65, 0x73, 0x68, 0x56, 0x65, 1546 + 0x72, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 1547 + 0xa, 0, 0x5, 0, 0x21, 0xb8, 0x30, 0x16, 0x42, 0x78, 1548 + 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 1549 + 0x29, 0, 0x1, 0, 0xd, 0, 0, 0, 0x6e, 0x56, 1550 + 0x65, 0x72, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 1551 + 0x73, 0x14, 0, 0x34, 0, 0x1, 0, 0xc, 0, 0, 1552 + 0, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x43, 0x6f, 1553 + 0x6c, 0x6f, 0x72, 0x1, 0, 0xc, 0, 0, 0, 0x76, 1554 + 0x65, 0x72, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 1555 + 0x73, 0xe, 0, 0x1, 0, 0xd, 0, 0, 0, 0x6e, 1556 + 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 1557 + 0x72, 0x73, 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, 0, 1558 + 0x1, 0, 0x4, 0, 0, 0, 0x4d, 0x65, 0x73, 0x68, 1559 + 0xa, 0, 0x5, 0, 0x44, 0xab, 0x82, 0x3d, 0xda, 0x62, 1560 + 0xcf, 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33, 1561 + 0x29, 0, 0x1, 0, 0x9, 0, 0, 0, 0x6e, 0x56, 1562 + 0x65, 0x72, 0x74, 0x69, 0x63, 0x65, 0x73, 0x14, 0, 0x34, 1563 + 0, 0x1, 0, 0x6, 0, 0, 0, 0x56, 0x65, 0x63, 1564 + 0x74, 0x6f, 0x72, 0x1, 0, 0x8, 0, 0, 0, 0x76, 1565 + 0x65, 0x72, 0x74, 0x69, 0x63, 0x65, 0x73, 0xe, 0, 0x1, 1566 + 0, 0x9, 0, 0, 0, 0x6e, 0x56, 0x65, 0x72, 0x74, 1567 + 0x69, 0x63, 0x65, 0x73, 0xf, 0, 0x14, 0, 0x29, 0, 1568 + 0x1, 0, 0x6, 0, 0, 0, 0x6e, 0x46, 0x61, 0x63, 1569 + 0x65, 0x73, 0x14, 0, 0x34, 0, 0x1, 0, 0x8, 0, 1570 + 0, 0, 0x4d, 0x65, 0x73, 0x68, 0x46, 0x61, 0x63, 0x65, 1571 + 0x1, 0, 0x5, 0, 0, 0, 0x66, 0x61, 0x63, 0x65, 1572 + 0x73, 0xe, 0, 0x1, 0, 0x6, 0, 0, 0, 0x6e, 1573 + 0x46, 0x61, 0x63, 0x65, 0x73, 0xf, 0, 0x14, 0, 0xe, 1574 + 0, 0x12, 0, 0x12, 0, 0x12, 0, 0xf, 0, 0xb, 1575 + 0, 0x1f, 0, 0x1, 0, 0x14, 0, 0, 0, 0x46, 1576 + 0x72, 0x61, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 1577 + 0x6f, 0x72, 0x6d, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0xa, 1578 + 0, 0x5, 0, 0x41, 0x3f, 0xf2, 0xf6, 0x86, 0x76, 0xcf, 1579 + 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x1, 1580 + 0, 0x9, 0, 0, 0, 0x4d, 0x61, 0x74, 0x72, 0x69, 1581 + 0x78, 0x34, 0x78, 0x34, 0x1, 0, 0xb, 0, 0, 0, 1582 + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 1583 + 0x78, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0, 0x5, 1584 + 0, 0, 0, 0x46, 0x72, 0x61, 0x6d, 0x65, 0xa, 0, 1585 + 0x5, 0, 0x46, 0xab, 0x82, 0x3d, 0xda, 0x62, 0xcf, 0x11, 1586 + 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33, 0xe, 0, 1587 + 0x12, 0, 0x12, 0, 0x12, 0, 0xf, 0, 0xb, 0, 1588 + 0x1f, 0, 0x1, 0, 0x9, 0, 0, 0, 0x46, 0x6c, 1589 + 0x6f, 0x61, 0x74, 0x4b, 0x65, 0x79, 0x73, 0xa, 0, 0x5, 1590 + 0, 0xa9, 0x46, 0xdd, 0x10, 0x5b, 0x77, 0xcf, 0x11, 0x8f, 1591 + 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x29, 0, 0x1, 1592 + 0, 0x7, 0, 0, 0, 0x6e, 0x56, 0x61, 0x6c, 0x75, 1593 + 0x65, 0x73, 0x14, 0, 0x34, 0, 0x2a, 0, 0x1, 0, 1594 + 0x6, 0, 0, 0, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 1595 + 0xe, 0, 0x1, 0, 0x7, 0, 0, 0, 0x6e, 0x56, 1596 + 0x61, 0x6c, 0x75, 0x65, 0x73, 0xf, 0, 0x14, 0, 0xb, 1597 + 0, 0x1f, 0, 0x1, 0, 0xe, 0, 0, 0, 0x54, 1598 + 0x69, 0x6d, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x4b, 1599 + 0x65, 0x79, 0x73, 0xa, 0, 0x5, 0, 0x80, 0xb1, 0x6, 1600 + 0xf4, 0x3b, 0x7b, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 1601 + 0x35, 0x94, 0xa3, 0x29, 0, 0x1, 0, 0x4, 0, 0, 1602 + 0, 0x74, 0x69, 0x6d, 0x65, 0x14, 0, 0x1, 0, 0x9, 1603 + 0, 0, 0, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x4b, 0x65, 1604 + 0x79, 0x73, 0x1, 0, 0x6, 0, 0, 0, 0x74, 0x66, 1605 + 0x6b, 0x65, 0x79, 0x73, 0x14, 0, 0xb, 0, 0x1f, 0, 1606 + 0x1, 0, 0xc, 0, 0, 0, 0x41, 0x6e, 0x69, 0x6d, 1607 + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0xa, 0, 1608 + 0x5, 0, 0xa8, 0x46, 0xdd, 0x10, 0x5b, 0x77, 0xcf, 0x11, 1609 + 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x29, 0, 1610 + 0x1, 0, 0x7, 0, 0, 0, 0x6b, 0x65, 0x79, 0x54, 1611 + 0x79, 0x70, 0x65, 0x14, 0, 0x29, 0, 0x1, 0, 0x5, 1612 + 0, 0, 0, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x14, 0, 1613 + 0x34, 0, 0x1, 0, 0xe, 0, 0, 0, 0x54, 0x69, 1614 + 0x6d, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x4b, 0x65, 1615 + 0x79, 0x73, 0x1, 0, 0x4, 0, 0, 0, 0x6b, 0x65, 1616 + 0x79, 0x73, 0xe, 0, 0x1, 0, 0x5, 0, 0, 0, 1617 + 0x6e, 0x4b, 0x65, 0x79, 0x73, 0xf, 0, 0x14, 0, 0xb, 1618 + 0, 0x1f, 0, 0x1, 0, 0x10, 0, 0, 0, 0x41, 1619 + 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 1620 + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xa, 0, 0x5, 0, 0xc0, 1621 + 0x56, 0xbf, 0xe2, 0xf, 0x84, 0xcf, 0x11, 0x8f, 0x52, 0, 1622 + 0x40, 0x33, 0x35, 0x94, 0xa3, 0x29, 0, 0x1, 0, 0xa, 1623 + 0, 0, 0, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 1624 + 0x73, 0x65, 0x64, 0x14, 0, 0x29, 0, 0x1, 0, 0xf, 1625 + 0, 0, 0, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 1626 + 0x6e, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x14, 0, 1627 + 0xb, 0, 0x1f, 0, 0x1, 0, 0x9, 0, 0, 0, 1628 + 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xa, 1629 + 0, 0x5, 0, 0x4f, 0xab, 0x82, 0x3d, 0xda, 0x62, 0xcf, 1630 + 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33, 0xe, 1631 + 0, 0x12, 0, 0x12, 0, 0x12, 0, 0xf, 0, 0xb, 1632 + 0, 0x1f, 0, 0x1, 0, 0xc, 0, 0, 0, 0x41, 1633 + 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 1634 + 0x74, 0xa, 0, 0x5, 0, 0x50, 0xab, 0x82, 0x3d, 0xda, 1635 + 0x62, 0xcf, 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 1636 + 0x33, 0xe, 0, 0x1, 0, 0x9, 0, 0, 0, 0x41, 1637 + 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xf, 0, 1638 + 0xb, 0, 0x1f, 0, 0x1, 0, 0xa, 0, 0, 0, 1639 + 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 1640 + 0xa, 0, 0x5, 0, 0xa0, 0xee, 0x23, 0x3a, 0xb1, 0x94, 1641 + 0xd0, 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33, 1642 + 0xe, 0, 0x1, 0, 0x6, 0, 0, 0, 0x42, 0x49, 1643 + 0x4e, 0x41, 0x52, 0x59, 0xf, 0, 0xb, 0, 0x1f, 0, 1644 + 0x1, 0, 0x3, 0, 0, 0, 0x55, 0x72, 0x6c, 0xa, 1645 + 0, 0x5, 0, 0xa1, 0xee, 0x23, 0x3a, 0xb1, 0x94, 0xd0, 1646 + 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33, 0x29, 1647 + 0, 0x1, 0, 0x5, 0, 0, 0, 0x6e, 0x55, 0x72, 1648 + 0x6c, 0x73, 0x14, 0, 0x34, 0, 0x31, 0, 0x1, 0, 1649 + 0x4, 0, 0, 0, 0x75, 0x72, 0x6c, 0x73, 0xe, 0, 1650 + 0x1, 0, 0x5, 0, 0, 0, 0x6e, 0x55, 0x72, 0x6c, 1651 + 0x73, 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 1652 + 0, 0xf, 0, 0, 0, 0x50, 0x72, 0x6f, 0x67, 0x72, 1653 + 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x68, 1654 + 0xa, 0, 0x5, 0, 0x60, 0xc3, 0x63, 0x8a, 0x7d, 0x99, 1655 + 0xd0, 0x11, 0x94, 0x1c, 0, 0x80, 0xc8, 0xc, 0xfa, 0x7b, 1656 + 0xe, 0, 0x1, 0, 0x3, 0, 0, 0, 0x55, 0x72, 1657 + 0x6c, 0x13, 0, 0x1, 0, 0xa, 0, 0, 0, 0x49, 1658 + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0xf, 1659 + 0, 0xb, 0, 0x1f, 0, 0x1, 0, 0x4, 0, 0, 1660 + 0, 0x47, 0x75, 0x69, 0x64, 0xa, 0, 0x5, 0, 0xe0, 1661 + 0x90, 0x27, 0xa4, 0x10, 0x78, 0xcf, 0x11, 0x8f, 0x52, 0, 1662 + 0x40, 0x33, 0x35, 0x94, 0xa3, 0x29, 0, 0x1, 0, 0x5, 1663 + 0, 0, 0, 0x64, 0x61, 0x74, 0x61, 0x31, 0x14, 0, 1664 + 0x28, 0, 0x1, 0, 0x5, 0, 0, 0, 0x64, 0x61, 1665 + 0x74, 0x61, 0x32, 0x14, 0, 0x28, 0, 0x1, 0, 0x5, 1666 + 0, 0, 0, 0x64, 0x61, 0x74, 0x61, 0x33, 0x14, 0, 1667 + 0x34, 0, 0x2d, 0, 0x1, 0, 0x5, 0, 0, 0, 1668 + 0x64, 0x61, 0x74, 0x61, 0x34, 0xe, 0, 0x3, 0, 0x8, 1669 + 0, 0, 0, 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, 1670 + 0, 0x1, 0, 0xe, 0, 0, 0, 0x53, 0x74, 0x72, 1671 + 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 1672 + 0x79, 0xa, 0, 0x5, 0, 0xe0, 0x21, 0xf, 0x7f, 0xe1, 1673 + 0xbf, 0xd1, 0x11, 0x82, 0xc0, 0, 0xa0, 0xc9, 0x69, 0x72, 1674 + 0x71, 0x31, 0, 0x1, 0, 0x3, 0, 0, 0, 0x6b, 1675 + 0x65, 0x79, 0x14, 0, 0x31, 0, 0x1, 0, 0x5, 0, 1676 + 0, 0, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x14, 0, 0xb, 1677 + 0, 0x1f, 0, 0x1, 0, 0xb, 0, 0, 0, 0x50, 1678 + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x42, 0x61, 0x67, 1679 + 0xa, 0, 0x5, 0, 0xe1, 0x21, 0xf, 0x7f, 0xe1, 0xbf, 1680 + 0xd1, 0x11, 0x82, 0xc0, 0, 0xa0, 0xc9, 0x69, 0x72, 0x71, 1681 + 0xe, 0, 0x1, 0, 0xe, 0, 0, 0, 0x53, 0x74, 1682 + 0x72, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 1683 + 0x74, 0x79, 0xf, 0, 0xb, 0, 0x1f, 0, 0x1, 0, 1684 + 0xe, 0, 0, 0, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 1685 + 0x61, 0x6c, 0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, 0xa, 0, 1686 + 0x5, 0, 0xa0, 0x6a, 0x11, 0x98, 0xba, 0xbd, 0xd1, 0x11, 1687 + 0x82, 0xc0, 0, 0xa0, 0xc9, 0x69, 0x72, 0x71, 0x1, 0, 1688 + 0x4, 0, 0, 0, 0x47, 0x75, 0x69, 0x64, 0x1, 0, 1689 + 0x12, 0, 0, 0, 0x67, 0x75, 0x69, 0x64, 0x45, 0x78, 1690 + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x56, 0x69, 0x73, 0x75, 1691 + 0x61, 0x6c, 0x14, 0, 0xe, 0, 0x12, 0, 0x12, 0, 1692 + 0x12, 0, 0xf, 0, 0xb, 0, 0x1f, 0, 0x1, 0, 1693 + 0xb, 0, 0, 0, 0x52, 0x69, 0x67, 0x68, 0x74, 0x48, 1694 + 0x61, 0x6e, 0x64, 0x65, 0x64, 0xa, 0, 0x5, 0, 0xa0, 1695 + 0x5e, 0x5d, 0x7f, 0x3a, 0xd5, 0xd1, 0x11, 0x82, 0xc0, 0, 1696 + 0xa0, 0xc9, 0x69, 0x72, 0x71, 0x29, 0, 0x1, 0, 0xc, 1697 + 0, 0, 0, 0x62, 0x52, 0x69, 0x67, 0x68, 0x74, 0x48, 1698 + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x14, 0, 0xb, 0 1699 +]; 1700 + 1701 +const GUID DXFILEOBJ_XSkinMeshHeader = DEFINE_GUID!(0x3cf169ce, 0xff7c, 0x44ab, 0x93, 0xc0, 0xf7, 0x8f, 0x62, 0xd1, 0x72, 0xe2); 1702 +const GUID DXFILEOBJ_VertexDuplicationIndices = DEFINE_GUID!(0xb8d65549, 0xd7c9, 0x4995, 0x89, 0xcf, 0x53, 0xa9, 0xa8, 0xb0, 0x31, 0xe3); 1703 +const GUID DXFILEOBJ_FaceAdjacency = DEFINE_GUID!(0xa64c844a, 0xe282, 0x4756, 0x8b, 0x80, 0x25, 0xc, 0xde, 0x4, 0x39, 0x8c); 1704 +const GUID DXFILEOBJ_SkinWeights = DEFINE_GUID!(0x6f0d123b, 0xbad2, 0x4167, 0xa0, 0xd0, 0x80, 0x22, 0x4f, 0x25, 0xfa, 0xbb); 1705 +const GUID DXFILEOBJ_Patch = DEFINE_GUID!(0xa3eb5d44, 0xfc22, 0x429d, 0x9a, 0xfb, 0x32, 0x21, 0xcb, 0x97, 0x19, 0xa6); 1706 +const GUID DXFILEOBJ_PatchMesh = DEFINE_GUID!(0xd02c95cc, 0xedba, 0x4305, 0x9b, 0x5d, 0x18, 0x20, 0xd7, 0x70, 0x4b, 0xbf); 1707 +const GUID DXFILEOBJ_PatchMesh9 = DEFINE_GUID!(0xb9ec94e1, 0xb9a6, 0x4251, 0xba, 0x18, 0x94, 0x89, 0x3f, 0x2, 0xc0, 0xea); 1708 +const GUID DXFILEOBJ_PMInfo = DEFINE_GUID!(0xb6c3e656, 0xec8b, 0x4b92, 0x9b, 0x62, 0x68, 0x16, 0x59, 0x52, 0x29, 0x47); 1709 +const GUID DXFILEOBJ_PMAttributeRange = DEFINE_GUID!(0x917e0427, 0xc61e, 0x4a14, 0x9c, 0x64, 0xaf, 0xe6, 0x5f, 0x9e, 0x98, 0x44); 1710 +const GUID DXFILEOBJ_PMVSplitRecord = DEFINE_GUID!(0x574ccc14, 0xf0b3, 0x4333, 0x82, 0x2d, 0x93, 0xe8, 0xa8, 0xa0, 0x8e, 0x4c); 1711 +const GUID DXFILEOBJ_FVFData = DEFINE_GUID!(0xb6e70a0e, 0x8ef9, 0x4e83, 0x94, 0xad, 0xec, 0xc8, 0xb0, 0xc0, 0x48, 0x97); 1712 +const GUID DXFILEOBJ_VertexElement = DEFINE_GUID!(0xf752461c, 0x1e23, 0x48f6, 0xb9, 0xf8, 0x83, 0x50, 0x85, 0xf, 0x33, 0x6f); 1713 +const GUID DXFILEOBJ_DeclData = DEFINE_GUID!(0xbf22e553, 0x292c, 0x4781, 0x9f, 0xea, 0x62, 0xbd, 0x55, 0x4b, 0xdd, 0x93); 1714 +const GUID DXFILEOBJ_EffectFloats = DEFINE_GUID!(0xf1cfe2b3, 0xde3, 0x4e28, 0xaf, 0xa1, 0x15, 0x5a, 0x75, 0xa, 0x28, 0x2d); 1715 +const GUID DXFILEOBJ_EffectString = DEFINE_GUID!(0xd55b097e, 0xbdb6, 0x4c52, 0xb0, 0x3d, 0x60, 0x51, 0xc8, 0x9d, 0xe, 0x42); 1716 +const GUID DXFILEOBJ_EffectDWord = DEFINE_GUID!(0x622c0ed0, 0x956e, 0x4da9, 0x90, 0x8a, 0x2a, 0xf9, 0x4f, 0x3c, 0xe7, 0x16); 1717 +const GUID DXFILEOBJ_EffectParamFloats = DEFINE_GUID!(0x3014b9a0, 0x62f5, 0x478c, 0x9b, 0x86, 0xe4, 0xac, 0x9f, 0x4e, 0x41, 0x8b); 1718 +const GUID DXFILEOBJ_EffectParamString = DEFINE_GUID!(0x1dbc4c88, 0x94c1, 0x46ee, 0x90, 0x76, 0x2c, 0x28, 0x81, 0x8c, 0x94, 0x81); 1719 +const GUID DXFILEOBJ_EffectParamDWord = DEFINE_GUID!(0xe13963bc, 0xae51, 0x4c5d, 0xb0, 0xf, 0xcf, 0xa3, 0xa9, 0xd9, 0x7c, 0xe5); 1720 +const GUID DXFILEOBJ_EffectInstance = DEFINE_GUID!(0xe331f7e4, 0x559, 0x4cc2, 0x8e, 0x99, 0x1c, 0xec, 0x16, 0x57, 0x92, 0x8f); 1721 +const GUID DXFILEOBJ_AnimTicksPerSecond = DEFINE_GUID!(0x9e415a43, 0x7ba6, 0x4a73, 0x87, 0x43, 0xb7, 0x3d, 0x47, 0xe8, 0x84, 0x76); 1722 +const GUID DXFILEOBJ_CompressedAnimationSet = DEFINE_GUID!(0x7f9b00b3, 0xf125, 0x4890, 0x87, 0x6e, 0x1c, 0x42, 0xbf, 0x69, 0x7c, 0x4d); 1723 + 1724 +align(1) struct XFILECOMPRESSEDANIMATIONSET 1725 +{ 1726 + DWORD CompressedBlockSize; 1727 + FLOAT TicksPerSec; 1728 + DWORD PlaybackType; 1729 + DWORD BufferLength; 1730 +} 1731 + 1732 +const char[] XSKINEXP_TEMPLATES = 1733 + "xof 0303txt 0032 1734 + template XSkinMeshHeader 1735 + { 1736 + <3CF169CE-FF7C-44ab-93C0-F78F62D172E2> 1737 + WORD nMaxSkinWeightsPerVertex; 1738 + WORD nMaxSkinWeightsPerFace; 1739 + WORD nBones; 1740 + } 1741 + template VertexDuplicationIndices 1742 + { 1743 + <B8D65549-D7C9-4995-89CF-53A9A8B031E3> 1744 + DWORD nIndices; 1745 + DWORD nOriginalVertices; 1746 + array DWORD[nIndices] indices; 1747 + } 1748 + template FaceAdjacency 1749 + { 1750 + <A64C844A-E282-4756-8B80-250CDE04398C> 1751 + DWORD nIndices; 1752 + array DWORD[nIndices] indices; 1753 + } 1754 + template SkinWeights 1755 + { 1756 + <6F0D123B-BAD2-4167-A0D0-80224F25FABB> 1757 + STRING transformNodeName; 1758 + DWORD nWeights; 1759 + array DWORD[nWeights] vertexIndices; 1760 + array float[nWeights] weights; 1761 + Matrix4x4 matrixOffset; 1762 + } 1763 + template Patch 1764 + { 1765 + <A3EB5D44-FC22-429D-9AFB-3221CB9719A6> 1766 + DWORD nControlIndices; 1767 + array DWORD[nControlIndices] controlIndices; 1768 + } 1769 + template PatchMesh 1770 + { 1771 + <D02C95CC-EDBA-4305-9B5D-1820D7704BBF> 1772 + DWORD nVertices; 1773 + array Vector[nVertices] vertices; 1774 + DWORD nPatches; 1775 + array Patch[nPatches] patches; 1776 + [ ... ] 1777 + } 1778 + template PatchMesh9 1779 + { 1780 + <B9EC94E1-B9A6-4251-BA18-94893F02C0EA> 1781 + DWORD Type; 1782 + DWORD Degree; 1783 + DWORD Basis; 1784 + DWORD nVertices; 1785 + array Vector[nVertices] vertices; 1786 + DWORD nPatches; 1787 + array Patch[nPatches] patches; 1788 + [ ... ] 1789 + } " 1790 + "template EffectFloats 1791 + { 1792 + <F1CFE2B3-0DE3-4e28-AFA1-155A750A282D> 1793 + DWORD nFloats; 1794 + array float[nFloats] Floats; 1795 + } 1796 + template EffectString 1797 + { 1798 + <D55B097E-BDB6-4c52-B03D-6051C89D0E42> 1799 + STRING Value; 1800 + } 1801 + template EffectDWord 1802 + { 1803 + <622C0ED0-956E-4da9-908A-2AF94F3CE716> 1804 + DWORD Value; 1805 + } " 1806 + "template EffectParamFloats 1807 + { 1808 + <3014B9A0-62F5-478c-9B86-E4AC9F4E418B> 1809 + STRING ParamName; 1810 + DWORD nFloats; 1811 + array float[nFloats] Floats; 1812 + } " 1813 + "template EffectParamString 1814 + { 1815 + <1DBC4C88-94C1-46ee-9076-2C28818C9481> 1816 + STRING ParamName; 1817 + STRING Value; 1818 + } 1819 + template EffectParamDWord 1820 + { 1821 + <E13963BC-AE51-4c5d-B00F-CFA3A9D97CE5> 1822 + STRING ParamName; 1823 + DWORD Value; 1824 + } 1825 + template EffectInstance 1826 + { 1827 + <E331F7E4-0559-4cc2-8E99-1CEC1657928F> 1828 + STRING EffectFilename; 1829 + [ ... ] 1830 + } " 1831 + "template AnimTicksPerSecond 1832 + { 1833 + <9E415A43-7BA6-4a73-8743-B73D47E88476> 1834 + DWORD AnimTicksPerSecond; 1835 + } 1836 + template CompressedAnimationSet 1837 + { 1838 + <7F9B00B3-F125-4890-876E-1C42BF697C4D> 1839 + DWORD CompressedBlockSize; 1840 + FLOAT TicksPerSec; 1841 + DWORD PlaybackType; 1842 + DWORD BufferLength; 1843 + array DWORD[BufferLength] CompressedData; 1844 + } "; 1845 + 1846 +const char[] XEXTENSIONS_TEMPLATES = 1847 + "xof 0303txt 0032 1848 + template FVFData 1849 + { 1850 + <B6E70A0E-8EF9-4e83-94AD-ECC8B0C04897> 1851 + DWORD dwFVF; 1852 + DWORD nDWords; 1853 + array DWORD[nDWords] data; 1854 + } 1855 + template VertexElement 1856 + { 1857 + <F752461C-1E23-48f6-B9F8-8350850F336F> 1858 + DWORD Type; 1859 + DWORD Method; 1860 + DWORD Usage; 1861 + DWORD UsageIndex; 1862 + } 1863 + template DeclData 1864 + { 1865 + <BF22E553-292C-4781-9FEA-62BD554BDD93> 1866 + DWORD nElements; 1867 + array VertexElement[nElements] Elements; 1868 + DWORD nDWords; 1869 + array DWORD[nDWords] data; 1870 + } 1871 + template PMAttributeRange 1872 + { 1873 + <917E0427-C61E-4a14-9C64-AFE65F9E9844> 1874 + DWORD iFaceOffset; 1875 + DWORD nFacesMin; 1876 + DWORD nFacesMax; 1877 + DWORD iVertexOffset; 1878 + DWORD nVerticesMin; 1879 + DWORD nVerticesMax; 1880 + } 1881 + template PMVSplitRecord 1882 + { 1883 + <574CCC14-F0B3-4333-822D-93E8A8A08E4C> 1884 + DWORD iFaceCLW; 1885 + DWORD iVlrOffset; 1886 + DWORD iCode; 1887 + } 1888 + template PMInfo 1889 + { 1890 + <B6C3E656-EC8B-4b92-9B62-681659522947> 1891 + DWORD nAttributes; 1892 + array PMAttributeRange[nAttributes] attributeRanges; 1893 + DWORD nMaxValence; 1894 + DWORD nMinLogicalVertices; 1895 + DWORD nMaxLogicalVertices; 1896 + DWORD nVSplits; 1897 + array PMVSplitRecord[nVSplits] splitRecords; 1898 + DWORD nAttributeMispredicts; 1899 + array DWORD[nAttributeMispredicts] attributeMispredicts; 1900 + } "; 1901 + 1902 +enum : uint 1903 +{ 1904 + D3DXF_FILEFORMAT_BINARY = 0, 1905 + D3DXF_FILEFORMAT_TEXT = 1, 1906 + D3DXF_FILEFORMAT_COMPRESSED = 2 1907 +} 1908 +alias uint D3DXF_FILEFORMAT; 1909 + 1910 +enum : uint 1911 +{ 1912 + D3DXF_FILESAVE_TOFILE = 0x00L, 1913 + D3DXF_FILESAVE_TOWFILE = 0x01L 1914 +} 1915 +alias uint D3DXF_FILESAVEOPTIONS; 1916 + 1917 +enum : uint 1918 +{ 1919 + D3DXF_FILELOAD_FROMFILE = 0x00L, 1920 + D3DXF_FILELOAD_FROMWFILE = 0x01L, 1921 + D3DXF_FILELOAD_FROMRESOURCE = 0x02L, 1922 + D3DXF_FILELOAD_FROMMEMORY = 0x03L 1923 +} 1924 +alias uint D3DXF_FILELOADOPTIONS; 1925 + 1926 +struct D3DXF_FILELOADRESOURCE 1927 +{ 1928 + HMODULE hModule; // Desc 1929 + LPCSTR lpName; // Desc 1930 + LPCSTR lpType; // Desc 1931 +} 1932 + 1933 +struct D3DXF_FILELOADMEMORY 1934 +{ 1935 + LPCVOID lpMemory; // Desc 1936 + size_t dSize; // Desc 1937 +} 1938 + 1939 +const GUID IID_ID3DXFile = DEFINE_GUID!(0xcef08cf9, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01 ); 1940 +const GUID IID_ID3DXFileSaveObject = DEFINE_GUID!(0xcef08cfa, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01 ); 1941 +const GUID IID_ID3DXFileSaveData = DEFINE_GUID!(0xcef08cfb, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01 ); 1942 +const GUID IID_ID3DXFileEnumObject = DEFINE_GUID!(0xcef08cfc, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01 ); 1943 +const GUID IID_ID3DXFileData = DEFINE_GUID!(0xcef08cfd, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01 ); 1944 + 1945 +interface ID3DXFile : IUnknown 1946 +{ 1947 + HRESULT CreateEnumObject(LPCVOID, D3DXF_FILELOADOPTIONS, ID3DXFileEnumObject*); 1948 + HRESULT CreateSaveObject(LPCVOID, D3DXF_FILESAVEOPTIONS, D3DXF_FILEFORMAT, ID3DXFileSaveObject*); 1949 + HRESULT RegisterTemplates(LPCVOID, size_t); 1950 + HRESULT RegisterEnumTemplates(ID3DXFileEnumObject); 1951 +} 1952 + 1953 +interface ID3DXFileSaveObject : IUnknown 1954 +{ 1955 + HRESULT GetFile(ID3DXFile*); 1956 + HRESULT AddDataObject(GUID*, LPCSTR, GUID*, size_t, LPCVOID, ID3DXFileSaveData*); 1957 + HRESULT Save(); 1958 +} 1959 + 1960 +interface ID3DXFileSaveData : IUnknown 1961 +{ 1962 + HRESULT GetSave(ID3DXFileSaveObject*); 1963 + HRESULT GetName(LPSTR, size_t*); 1964 + HRESULT GetId(GUID*); 1965 + HRESULT GetType(GUID*); 1966 + HRESULT AddDataObject(GUID*, LPCSTR, GUID*, size_t, LPCVOID, ID3DXFileSaveData*); 1967 + HRESULT AddDataReference(LPCSTR, GUID* ); 1968 +} 1969 + 1970 +interface ID3DXFileEnumObject : IUnknown 1971 +{ 1972 + HRESULT GetFile(ID3DXFile*); 1973 + HRESULT GetChildren(size_t*); 1974 + HRESULT GetChild(size_t, ID3DXFileData*); 1975 + HRESULT GetDataObjectById(REFGUID, ID3DXFileData*); 1976 + HRESULT GetDataObjectByName(LPCSTR, ID3DXFileData*); 1977 +} 1978 + 1979 +interface ID3DXFileData : IUnknown 1980 +{ 1981 + HRESULT GetEnum(ID3DXFileEnumObject*); 1982 + HRESULT GetName(LPSTR, size_t*); 1983 + HRESULT GetId(GUID*); 1984 + HRESULT Lock(size_t*, LPCVOID*); 1985 + HRESULT Unlock(); 1986 + HRESULT GetType(GUID*); 1987 + BOOL IsReference(); 1988 + HRESULT GetChildren(size_t*); 1989 + HRESULT GetChild(size_t, ID3DXFileData*); 1990 +}

Added src/win32/directx/d3dx9.def version [9586cdec987a21cb]

1 +IMPORTS 2 +_D3DXConcatenateMeshes@32 = d3dx9_29.D3DXConcatenateMeshes 3 +_D3DXCreateBox@24 = d3dx9_29.D3DXCreateBox 4 +_D3DXCreateCubeTexture@28 = d3dx9_29.D3DXCreateCubeTexture 5 +_D3DXCreateCubeTextureFromFileExA@52 = d3dx9_29.D3DXCreateCubeTextureFromFileExA 6 +_D3DXCreateCylinder@32 = d3dx9_29.D3DXCreateCylinder 7 +_D3DXCreateFontA@48 = d3dx9_29.D3DXCreateFontA 8 +_D3DXCreatePolygon@20 = d3dx9_29.D3DXCreatePolygon 9 +_D3DXCreateSkinInfoFVF@16 = d3dx9_29.D3DXCreateSkinInfoFVF 10 +_D3DXCreateSphere@24 = d3dx9_29.D3DXCreateSphere 11 +_D3DXCreateSprite@8 = d3dx9_29.D3DXCreateSprite 12 +_D3DXCreateTeapot@12 = d3dx9_29.D3DXCreateTeapot 13 +_D3DXCreateTexture@32 = d3dx9_29.D3DXCreateTexture 14 +_D3DXCreateTextureFromFileExA@56 = d3dx9_29.D3DXCreateTextureFromFileExA 15 +_D3DXCreateTextureFromFileA@12 = d3dx9_29.D3DXCreateTextureFromFileA 16 +_D3DXCreateTorus@28 = d3dx9_29.D3DXCreateTorus 17 +_D3DXFileCreate@4 = d3dx9_29.D3DXFileCreate 18 +_D3DXGetDeclVertexSize@8 = d3dx9_29.D3DXGetDeclVertexSize 19 +_D3DXLoadMeshFromXof@32 = d3dx9_29.D3DXLoadMeshFromXof 20 +_D3DXMatrixDecompose@16 = d3dx9_29.D3DXMatrixDecompose 21 +_D3DXMatrixInverse@12 = d3dx9_29.D3DXMatrixInverse 22 +_D3DXMatrixMultiply@12 = d3dx9_29.D3DXMatrixMultiply 23 +_D3DXMatrixOrthoOffCenterLH@28 = d3dx9_29.D3DXMatrixOrthoOffCenterLH 24 +_D3DXMatrixPerspectiveFovLH@20 = d3dx9_29.D3DXMatrixPerspectiveFovLH 25 +_D3DXMatrixRotationQuaternion@8 = d3dx9_29.D3DXMatrixRotationQuaternion 26 +_D3DXMatrixRotationX@8 = d3dx9_29.D3DXMatrixRotationX 27 +_D3DXMatrixRotationY@8 = d3dx9_29.D3DXMatrixRotationY 28 +_D3DXMatrixRotationYawPitchRoll@16 = d3dx9_29.D3DXMatrixRotationYawPitchRoll 29 +_D3DXMatrixRotationZ@8 = d3dx9_29.D3DXMatrixRotationZ 30 +_D3DXMatrixScaling@16 = d3dx9_29.D3DXMatrixScaling 31 +_D3DXMatrixTransformation2D@28 = d3dx9_29.D3DXMatrixTransformation2D 32 +_D3DXMatrixTranslation@16 = d3dx9_29.D3DXMatrixTranslation 33 +_D3DXPlaneNormalize@8 = d3dx9_29.D3DXPlaneNormalize 34 +_D3DXQuaternionNormalize@8 = d3dx9_29.D3DXQuaternionNormalize 35 +_D3DXQuaternionRotationYawPitchRoll@16 = d3dx9_29.D3DXQuaternionRotationYawPitchRoll 36 +_D3DXQuaternionSlerp@16 = d3dx9_29.D3DXQuaternionSlerp 37 +_D3DXQuaternionSquad@24 = d3dx9_29.D3DXQuaternionSquad 38 +_D3DXQuaternionSquadSetup@28 = d3dx9_29.D3DXQuaternionSquadSetup 39 +_D3DXSimplifyMesh@28 = d3dx9_29.D3DXSimplifyMesh 40 +_D3DXVec2TransformCoord@12 = d3dx9_29.D3DXVec2TransformCoord 41 +_D3DXVec3CatmullRom@24 = d3dx9_29.D3DXVec3CatmullRom 42 +_D3DXVec3TransformCoord@12 = d3dx9_29.D3DXVec3TransformCoord 43 +_D3DXCreateEffect@36 = d3dx9_29.D3DXCreateEffect 44 +_D3DXCreateEffectFromFileA@32 = d3dx9_29.D3DXCreateEffectFromFileA 45 +_D3DXCreateEffectPool@4 = d3dx9_29.D3DXCreateEffectPool 46 +_D3DXGetShaderInputSemantics@12 = d3dx9_29.D3DXGetShaderInputSemantics 47 +_D3DXGetShaderVersion@4 = d3dx9_29.D3DXGetShaderVersion 48 +_D3DXMatrixTranspose@8 = d3dx9_29.D3DXMatrixTranspose

Added src/win32/directx/dinput8.d version [8fb075b61afe872c]

1 +module win32.directx.dinput8; 2 + 3 +//import tango.sys.win32.Types; 4 +//alias char CHAR; 5 + 6 +import win32.windows; 7 + 8 +enum { 9 + CLASS_E_NOAGGREGATION = cast(int) 0x80040110, 10 +} 11 + 12 +interface IUnknown { 13 + HRESULT QueryInterface(IID* riid, void** pvObject); 14 + ULONG AddRef(); 15 + ULONG Release(); 16 +} 17 + 18 +extern(C): 19 + 20 +struct DIDEVICEINSTANCEA 21 +{ 22 + DWORD dwSize; 23 + GUID guidInstance; 24 + GUID guidProduct; 25 + DWORD dwDevType; 26 + CHAR[MAX_PATH] tszInstanceName; 27 + CHAR[MAX_PATH] tszProductName; 28 + GUID guidFFDriver; 29 + WORD wUsagePage; 30 + WORD wUsage; 31 +} 32 +alias DIDEVICEINSTANCEA DIDEVICEINSTANCE; 33 + 34 +struct DIDEVICEOBJECTINSTANCEA 35 +{ 36 + DWORD dwSize; 37 + GUID guidType; 38 + DWORD dwOfs; 39 + DWORD dwType; 40 + DWORD dwFlags; 41 + CHAR[MAX_PATH] tszName; 42 + DWORD dwFFMaxForce; 43 + DWORD dwFFForceResolution; 44 + WORD wCollectionNumber; 45 + WORD wDesignatorIndex; 46 + WORD wUsagePage; 47 + WORD wUsage; 48 + DWORD dwDimension; 49 + WORD wExponent; 50 + WORD wReportId; 51 +} 52 + 53 +struct DIOBJECTDATAFORMAT 54 +{ 55 + const GUID *pguid; 56 + DWORD dwOfs; 57 + DWORD dwType; 58 + DWORD dwFlags; 59 +} 60 + 61 +struct DIDATAFORMAT 62 +{ 63 + DWORD dwSize; 64 + DWORD dwObjSize; 65 + DWORD dwFlags; 66 + DWORD dwDataSize; 67 + DWORD dwNumObjs; 68 + DIOBJECTDATAFORMAT* rgodf; 69 +} 70 + 71 +extern DIDATAFORMAT c_dfDIKeyboard; 72 +extern DIDATAFORMAT c_dfDIMouse2; 73 +extern DIDATAFORMAT c_dfDIJoystick; 74 + 75 +struct DIACTIONA 76 +{ 77 + UINT* uAppData; 78 + DWORD dwSemantic; 79 + DWORD dwFlags; 80 + union 81 + { 82 + LPCSTR lptszActionName; 83 + UINT uResIdString; 84 + } 85 + GUID guidInstance; 86 + DWORD dwObjID; 87 + DWORD dwHow; 88 +} 89 + 90 +struct DIACTIONFORMATA 91 +{ 92 + DWORD dwSize; 93 + DWORD dwActionSize; 94 + DWORD dwDataSize; 95 + DWORD dwNumActions; 96 + DIACTIONA* rgoAction; 97 + GUID guidActionMap; 98 + DWORD dwGenre; 99 + DWORD dwBufferSize; 100 + LONG lAxisMin; 101 + LONG lAxisMax; 102 + HINSTANCE hInstString; 103 + FILETIME ftTimeStamp; 104 + DWORD dwCRC; 105 + CHAR[MAX_PATH] tszActionMap; 106 +} 107 + 108 +struct DIDEVCAPS 109 +{ 110 + DWORD dwSize; 111 + DWORD dwFlags; 112 + DWORD dwDevType; 113 + DWORD dwAxes; 114 + DWORD dwButtons; 115 + DWORD dwPOVs; 116 + DWORD dwFFSamplePeriod; 117 + DWORD dwFFMinTimeResolution; 118 + DWORD dwFirmwareRevision; 119 + DWORD dwHardwareRevision; 120 + DWORD dwFFDriverVersion; 121 +} 122 + 123 +struct DIPROPHEADER 124 +{ 125 + DWORD dwSize; 126 + DWORD dwHeaderSize; 127 + DWORD dwObj; 128 + DWORD dwHow; 129 +} 130 + 131 +struct DIDEVICEOBJECTDATA 132 +{ 133 + DWORD dwOfs; 134 + DWORD dwData; 135 + DWORD dwTimeStamp; 136 + DWORD dwSequence; 137 + UINT* uAppData; 138 +} 139 + 140 +struct DIENVELOPE 141 +{ 142 + DWORD dwSize = DIENVELOPE.sizeof; 143 + DWORD dwAttackLevel; 144 + DWORD dwAttackTime; // Microseconds 145 + DWORD dwFadeLevel; 146 + DWORD dwFadeTime; // Microseconds 147 +} 148 + 149 +struct DIEFFECT 150 +{ 151 + DWORD dwSize = DIEFFECT.sizeof; 152 + DWORD dwFlags; // DIEFF_* 153 + DWORD dwDuration; // Microseconds 154 + DWORD dwSamplePeriod; // Microseconds 155 + DWORD dwGain; 156 + DWORD dwTriggerButton; // or DIEB_NOTRIGGER 157 + DWORD dwTriggerRepeatInterval; // Microseconds 158 + DWORD cAxes; // Number of axes 159 + LPDWORD rgdwAxes; // Array of axes 160 + LPLONG rglDirection; // Array of directions 161 + DIENVELOPE* lpEnvelope; // Optional 162 + DWORD cbTypeSpecificParams; // Size of params 163 + LPVOID lpvTypeSpecificParams; // Pointer to params 164 + DWORD dwStartDelay; // Microseconds 165 +} 166 + 167 +struct DIEFFESCAPE 168 +{ 169 + DWORD dwSize; 170 + DWORD dwCommand; 171 + LPVOID lpvInBuffer; 172 + DWORD cbInBuffer; 173 + LPVOID lpvOutBuffer; 174 + DWORD cbOutBuffer; 175 +} 176 + 177 +struct DIEFFECTINFOA 178 +{ 179 + DWORD dwSize; 180 + GUID guid; 181 + DWORD dwEffType; 182 + DWORD dwStaticParams; 183 + DWORD dwDynamicParams; 184 + CHAR[MAX_PATH] tszName; 185 +} 186 + 187 +struct DIFILEEFFECT 188 +{ 189 + DWORD dwSize; 190 + GUID GuidEffect; 191 + DIEFFECT* lpDiEffect; 192 + CHAR[MAX_PATH] szFriendlyName; 193 +} 194 + 195 +struct DIDEVICEIMAGEINFOA 196 +{ 197 + CHAR[MAX_PATH] tszImagePath; 198 + DWORD dwFlags; 199 + // These are valid if DIDIFT_OVERLAY is present in dwFlags. 200 + DWORD dwViewID; 201 + RECT rcOverlay; 202 + DWORD dwObjID; 203 + DWORD dwcValidPts; 204 + POINT[5] rgptCalloutLine; 205 + RECT rcCalloutRect; 206 + DWORD dwTextAlign; 207 +} 208 + 209 +struct DIDEVICEIMAGEINFOHEADERA 210 +{ 211 + DWORD dwSize; 212 + DWORD dwSizeImageInfo; 213 + DWORD dwcViews; 214 + DWORD dwcButtons; 215 + DWORD dwcAxes; 216 + DWORD dwcPOVs; 217 + DWORD dwBufferSize; 218 + DWORD dwBufferUsed; 219 + DIDEVICEIMAGEINFOA* lprgImageInfoArray; 220 +} 221 + 222 +struct DICONFIGUREDEVICESPARAMSA 223 +{ 224 + DWORD dwSize; 225 + DWORD dwcUsers; 226 + LPSTR lptszUserNames; 227 + DWORD dwcFormats; 228 + DIACTIONFORMATA* lprgFormats; 229 + HWND hwnd; 230 + DICOLORSET dics; 231 + IUnknown lpUnkDDSTarget; 232 +} 233 + 234 +struct DICOLORSET 235 +{ 236 + DWORD dwSize; 237 + DWORD cTextFore; 238 + DWORD cTextHighlight; 239 + DWORD cCalloutLine; 240 + DWORD cCalloutHighlight; 241 + DWORD cBorder; 242 + DWORD cControlFill; 243 + DWORD cHighlightFill; 244 + DWORD cAreaFill; 245 +} 246 + 247 +struct DIMOUSESTATE2 248 +{ 249 + LONG lX; 250 + LONG lY; 251 + LONG lZ; 252 + BYTE[8] rgbButtons; 253 +} 254 + 255 +struct DIJOYSTATE 256 +{ 257 + LONG lX; /* x-axis position */ 258 + LONG lY; /* y-axis position */ 259 + LONG lZ; /* z-axis position */ 260 + LONG lRx; /* x-axis rotation */ 261 + LONG lRy; /* y-axis rotation */ 262 + LONG lRz; /* z-axis rotation */ 263 + LONG[2] rglSlider; /* extra axes positions */ 264 + DWORD[4]rgdwPOV; /* POV directions */ 265 + BYTE[32]rgbButtons; /* 32 buttons */ 266 +} 267 + 268 +struct DIPROPRANGE 269 +{ 270 + DIPROPHEADER diph; 271 + LONG lMin; 272 + LONG lMax; 273 +} 274 + 275 +interface IDirectInputEffect : IUnknown 276 +{ 277 + HRESULT Initialize(HINSTANCE, DWORD, GUID*); 278 + HRESULT GetEffectGuid(GUID*); 279 + HRESULT GetParameters(DIEFFECT*, DWORD); 280 + HRESULT SetParameters(DIEFFECT*, DWORD); 281 + HRESULT Start(DWORD, DWORD); 282 + HRESULT Stop(); 283 + HRESULT GetEffectStatus(LPDWORD); 284 + HRESULT Download(); 285 + HRESULT Unload(); 286 + HRESULT Escape(DIEFFESCAPE*); 287 +} 288 + 289 +extern(Windows) alias bool function(DIDEVICEINSTANCEA*, LPVOID) LPDIENUMDEVICESCALLBACKA; 290 +extern(Windows) alias bool function(DIDEVICEINSTANCEA*, IDirectInputDevice8A*, DWORD, DWORD, LPVOID) LPDIENUMDEVICESBYSEMANTICSCBA; 291 + 292 +extern(Windows) alias bool function(DIDEVICEOBJECTINSTANCEA *didoi, void* pContext) LPDIENUMDEVICEOBJECTSCALLBACKA; 293 + 294 +extern(Windows) alias bool function(DIEFFECTINFOA*, LPVOID) LPDIENUMEFFECTSCALLBACKA; 295 +extern(Windows) alias bool function(IDirectInputEffect, LPVOID) LPDIENUMCREATEDEFFECTOBJECTSCALLBACK; 296 +extern(Windows) alias bool function(DIFILEEFFECT* , LPVOID) LPDIENUMEFFECTSINFILECALLBACK; 297 +extern(Windows) alias bool function(IUnknown, LPVOID) LPDICONFIGUREDEVICESCALLBACK; 298 + 299 +interface IDirectInputDevice8A : IUnknown 300 +{ 301 + HRESULT GetCapabilities(DIDEVCAPS*); 302 + HRESULT EnumObjects(LPDIENUMDEVICEOBJECTSCALLBACKA, VOID*, DWORD); 303 + HRESULT GetProperty(GUID*, DIPROPHEADER*); 304 + HRESULT SetProperty(GUID*, DIPROPHEADER*); 305 + HRESULT Acquire(); 306 + HRESULT Unacquire(); 307 + HRESULT GetDeviceState(DWORD, LPVOID); 308 + HRESULT GetDeviceData(DWORD, DIDEVICEOBJECTDATA*, LPDWORD, DWORD); 309 + HRESULT SetDataFormat(DIDATAFORMAT*); 310 + HRESULT SetEventNotification(HANDLE); 311 + HRESULT SetCooperativeLevel(HWND, DWORD); 312 + HRESULT GetObjectInfo(DIDEVICEOBJECTINSTANCEA*, DWORD, DWORD); 313 + HRESULT GetDeviceInfo(DIDEVICEINSTANCEA*); 314 + HRESULT RunControlPanel(HWND, DWORD); 315 + HRESULT Initialize(HINSTANCE, DWORD, GUID*); 316 + HRESULT CreateEffect(GUID*, DIEFFECT*, IDirectInputEffect*, IUnknown); 317 + HRESULT EnumEffects(LPDIENUMEFFECTSCALLBACKA, LPVOID, DWORD); 318 + HRESULT GetEffectInfo(DIEFFECTINFOA*, GUID*); 319 + HRESULT GetForceFeedbackState(LPDWORD); 320 + HRESULT SendForceFeedbackCommand(DWORD); 321 + HRESULT EnumCreatedEffectObjects(LPDIENUMCREATEDEFFECTOBJECTSCALLBACK, LPVOID, DWORD); 322 + HRESULT Escape(DIEFFESCAPE*); 323 + HRESULT Poll(); 324 + HRESULT SendDeviceData(DWORD, DIDEVICEOBJECTDATA*, LPDWORD, DWORD); 325 + HRESULT EnumEffectsInFile(LPCSTR, LPDIENUMEFFECTSINFILECALLBACK, LPVOID, DWORD); 326 + HRESULT WriteEffectToFile(LPCSTR, DWORD, DIFILEEFFECT*, DWORD); 327 + HRESULT BuildActionMap(DIACTIONFORMATA*, LPCSTR, DWORD); 328 + HRESULT SetActionMap(DIACTIONFORMATA*, LPCSTR, DWORD); 329 + HRESULT GetImageInfo(DIDEVICEIMAGEINFOHEADERA*); 330 +} 331 +alias IDirectInputDevice8A IDirectInputDevice8; 332 + 333 +interface IDirectInput8A : IUnknown 334 +{ 335 +extern(Windows): 336 + HRESULT CreateDevice(GUID*, IDirectInputDevice8A*, IUnknown); 337 + HRESULT EnumDevices(DWORD, LPDIENUMDEVICESCALLBACKA, LPVOID, DWORD); 338 + HRESULT GetDeviceStatus(GUID*); 339 + HRESULT RunControlPanel(HWND, DWORD); 340 + HRESULT Initialize(HINSTANCE, DWORD); 341 + HRESULT FindDevice(GUID*, LPCSTR, GUID*); 342 + HRESULT EnumDevicesBySemantics(LPCSTR, DIACTIONFORMATA*, LPDIENUMDEVICESBYSEMANTICSCBA, LPVOID, DWORD); 343 + HRESULT ConfigureDevices(LPDICONFIGUREDEVICESCALLBACK, DICONFIGUREDEVICESPARAMSA*, DWORD, LPVOID); 344 +} 345 +alias IDirectInput8A IDirectInput8; 346 + 347 +extern(Windows) HRESULT DirectInput8Create(HINSTANCE hinst, DWORD dwVersion, GUID* riidltf, void** ppvOut, IUnknown punkOuter); 348 + 349 +const GUID IID_IDirectInput8A={0xBF798030, 0x483A, 0x4DA2, [0xAA, 0x99, 0x5D, 0x64, 0xED, 0x36, 0x97, 0x00]}; 350 +alias IID_IDirectInput8A IID_IDirectInput8; 351 +const GUID GUID_SysKeyboard = {0x6F1D2B61, 0xD5A0, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; 352 +const GUID GUID_SysMouse = {0x6F1D2B60, 0xD5A0, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; 353 +const GUID GUID_XAxis = {0xA36D02E0, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; 354 +const GUID GUID_YAxis = {0xA36D02E1, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; 355 +const GUID GUID_ZAxis = {0xA36D02E2, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; 356 +const GUID GUID_RxAxis = {0xA36D02F4, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; 357 +const GUID GUID_RyAxis = {0xA36D02F5, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; 358 +const GUID GUID_RzAxis = {0xA36D02E3, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; 359 +const GUID GUID_Slider = {0xA36D02E4, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; 360 +const GUID GUID_Key = {0x55728220, 0xD33C, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; 361 +const GUID GUID_POV = {0xA36D02F2, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; 362 + 363 +enum : uint 364 +{ 365 + DISCL_EXCLUSIVE= 0x00000001, 366 + DISCL_NONEXCLUSIVE= 0x00000002, 367 + DISCL_FOREGROUND= 0x00000004, 368 + DISCL_BACKGROUND= 0x00000008, 369 + DISCL_NOWINKEY= 0x00000010, 370 + 371 + DIPH_DEVICE=0, 372 + DIPH_BYOFFSET=1, 373 + 374 + DI8DEVCLASS_GAMECTRL=4, 375 + DIEDFL_ATTACHEDONLY= 0x00000001, 376 + DIDFT_AXIS= 0x00000003 377 +} 378 + 379 +enum 380 +{ 381 + SEVERITY_SUCCESS= 0, 382 + SEVERITY_ERROR= 1, 383 + FACILITY_WIN32= 7, 384 + ERROR_READ_FAULT= 30L, 385 + DIENUM_CONTINUE= 1, 386 + DIPH_BYID= 2 387 +} 388 + 389 +struct DIPROPDWORD 390 +{ 391 + DIPROPHEADER diph; 392 + DWORD dwData; 393 +} 394 + 395 +template MAKE_HRESULT(uint sev, uint fac, uint code) 396 +{ 397 + const HRESULT MAKE_HRESULT = cast(HRESULT)((sev << 31) | (fac << 16) | code); 398 +} 399 + 400 +const HRESULT DIERR_OLDDIRECTINPUTVERSION = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, 1150); 401 +const HRESULT DIERR_BETADIRECTINPUTVERSION = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, 1153); 402 +const HRESULT DIERR_BADDRIVERVER = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, 119); 403 +const HRESULT DIERR_DEVICENOTREG = 0x80040154; 404 +const HRESULT DIERR_NOTFOUND = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, ERROR_FILE_NOT_FOUND); 405 +const HRESULT DIERR_OBJECTNOTFOUND = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, ERROR_FILE_NOT_FOUND); 406 +const HRESULT DIERR_INVALIDPARAM = E_INVALIDARG; 407 +const HRESULT DIERR_NOINTERFACE = E_NOINTERFACE; 408 +const HRESULT DIERR_GENERIC = E_FAIL; 409 +const HRESULT DIERR_OUTOFMEMORY = E_OUTOFMEMORY; 410 +const HRESULT DIERR_UNSUPPORTED = E_NOTIMPL; 411 +const HRESULT DIERR_NOTINITIALIZED = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, 21); 412 +const HRESULT DIERR_ALREADYINITIALIZED = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, 1247); 413 +const HRESULT DIERR_NOAGGREGATION = CLASS_E_NOAGGREGATION; 414 +const HRESULT DIERR_OTHERAPPHASPRIO = 0x80070005; 415 +const HRESULT DIERR_INPUTLOST = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, ERROR_READ_FAULT); 416 +const HRESULT DIERR_ACQUIRED = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, 170); 417 +const HRESULT DIERR_NOTACQUIRED = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, 12); 418 +const HRESULT DIERR_READONLY = 0x80070005; 419 +const HRESULT DIERR_HANDLEEXISTS = 0x80070005; 420 +const HRESULT DIERR_INSUFFICIENTPRIVS = 0x80040200; 421 +const HRESULT DIERR_DEVICEFULL = 0x80040201; 422 +const HRESULT DIERR_MOREDATA = 0x80040202; 423 +const HRESULT DIERR_NOTDOWNLOADED = 0x80040203; 424 +const HRESULT DIERR_HASEFFECTS = 0x80040204; 425 +const HRESULT DIERR_NOTEXCLUSIVEACQUIRED = 0x80040205; 426 +const HRESULT DIERR_INCOMPLETEEFFECT = 0x80040206; 427 +const HRESULT DIERR_NOTBUFFERED = 0x80040207; 428 +const HRESULT DIERR_EFFECTPLAYING = 0x80040208; 429 +const HRESULT DIERR_UNPLUGGED = 0x80040209; 430 +const HRESULT DIERR_REPORTFULL = 0x8004020A; 431 +const HRESULT DIERR_MAPFILEFAIL = 0x8004020B;

Added src/win32/directx/dinput8.def version [1cdb1e6b2d148f1f]

1 +IMPORTS 2 +_DirectInput8Create@20 = dinput8.DirectInput8Create

Added src/win32/directx/dsound8.d version [21a914ceb449058e]

1 +module win32.directx.dsound8; 2 + 3 +//import tango.sys.win32.Types; 4 +import win32.windows; 5 + 6 +alias GUID* LPCGUID; 7 + 8 +interface IUnknown 9 +{ 10 + HRESULT QueryInterface(IID* riid, void** pvObject); 11 + ULONG AddRef(); 12 + ULONG Release(); 13 +} 14 + 15 +alias IUnknown LPUNKNOWN; 16 + 17 +interface IDirectSound : IUnknown 18 +{ 19 + extern(Windows): 20 + 21 + // IDirectSound methods 22 + HRESULT CreateSoundBuffer (LPCDSBUFFERDESC pcDSBufferDesc, LPDIRECTSOUNDBUFFER *ppDSBuffer, LPUNKNOWN pUnkOuter); 23 + HRESULT GetCaps (LPDSCAPS pDSCaps); 24 + HRESULT DuplicateSoundBuffer (LPDIRECTSOUNDBUFFER pDSBufferOriginal, LPDIRECTSOUNDBUFFER *ppDSBufferDuplicate); 25 + HRESULT SetCooperativeLevel (HWND hwnd, DWORD dwLevel); 26 + HRESULT Compact (); 27 + HRESULT GetSpeakerConfig (LPDWORD pdwSpeakerConfig); 28 + HRESULT SetSpeakerConfig (DWORD dwSpeakerConfig); 29 + HRESULT Initialize (LPCGUID pcGuidDevice); 30 +} 31 + 32 +alias IDirectSound LPDIRECTSOUND; 33 + 34 +interface IDirectSound8 : IDirectSound 35 +{ 36 + extern(Windows): 37 + 38 + // IDirectSound8 methods 39 + HRESULT VerifyCertification (LPDWORD pdwCertified); 40 +} 41 + 42 +alias IDirectSound8 LPDIRECTSOUND8; 43 + 44 +interface IDirectSoundBuffer : IUnknown 45 +{ 46 + extern(Windows): 47 + 48 + // IDirectSoundBuffer methods 49 + HRESULT GetCaps (LPDSBCAPS pDSBufferCaps); 50 + HRESULT GetCurrentPosition (LPDWORD pdwCurrentPlayCursor, LPDWORD pdwCurrentWriteCursor); 51 + HRESULT GetFormat (LPWAVEFORMATEX pwfxFormat, DWORD dwSizeAllocated, LPDWORD pdwSizeWritten); 52 + HRESULT GetVolume (LPLONG plVolume); 53 + HRESULT GetPan (LPLONG plPan); 54 + HRESULT GetFrequency (LPDWORD pdwFrequency); 55 + HRESULT GetStatus (LPDWORD pdwStatus); 56 + HRESULT Initialize (LPDIRECTSOUND pDirectSound, LPCDSBUFFERDESC pcDSBufferDesc); 57 + HRESULT Lock (DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, 58 + LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags); 59 + HRESULT Play (DWORD dwReserved1, DWORD dwPriority, DWORD dwFlags); 60 + HRESULT SetCurrentPosition (DWORD dwNewPosition); 61 + HRESULT SetFormat (LPCWAVEFORMATEX pcfxFormat); 62 + HRESULT SetVolume (LONG lVolume); 63 + HRESULT SetPan (LONG lPan); 64 + HRESULT SetFrequency (DWORD dwFrequency); 65 + HRESULT Stop (); 66 + HRESULT Unlock (LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioBytes2); 67 + HRESULT Restore (); 68 +} 69 + 70 +alias IDirectSoundBuffer LPDIRECTSOUNDBUFFER; 71 + 72 +interface IDirectSound3DListener : IUnknown 73 +{ 74 + extern(Windows): 75 + 76 + // IDirectSound3DListener methods 77 + HRESULT GetAllParameters (LPDS3DLISTENER pListener); 78 + HRESULT GetDistanceFactor (D3DVALUE* pflDistanceFactor); 79 + HRESULT GetDopplerFactor (D3DVALUE* pflDopplerFactor); 80 + HRESULT GetOrientation (D3DVECTOR* pvOrientFront, D3DVECTOR* pvOrientTop); 81 + HRESULT GetPosition (D3DVECTOR* pvPosition); 82 + HRESULT GetRolloffFactor (D3DVALUE* pflRolloffFactor); 83 + HRESULT GetVelocity (D3DVECTOR* pvVelocity); 84 + HRESULT SetAllParameters (LPCDS3DLISTENER pcListener, DWORD dwApply); 85 + HRESULT SetDistanceFactor (D3DVALUE flDistanceFactor, DWORD dwApply); 86 + HRESULT SetDopplerFactor (D3DVALUE flDopplerFactor, DWORD dwApply); 87 + HRESULT SetOrientation (D3DVALUE xFront, D3DVALUE yFront, D3DVALUE zFront, 88 + D3DVALUE xTop, D3DVALUE yTop, D3DVALUE zTop, DWORD dwApply); 89 + HRESULT SetPosition (D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply); 90 + HRESULT SetRolloffFactor (D3DVALUE flRolloffFactor, DWORD dwApply); 91 + HRESULT SetVelocity (D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply); 92 + HRESULT CommitDeferredSettings (); 93 +} 94 + 95 +struct WAVEFORMATEX 96 +{ 97 + ushort wFormatTag; 98 + ushort nChannels; 99 + uint nSamplesPerSec; 100 + uint nAvgBytesPerSec; 101 + ushort nBlockAlign; 102 + ushort wBitsPerSample; 103 + ushort cbSize; 104 +} 105 + 106 +alias WAVEFORMATEX* LPWAVEFORMATEX, LPCWAVEFORMATEX; 107 + 108 +enum : uint 109 +{ 110 + WAVE_FORMAT_PCM = 1 111 +} 112 + 113 +struct DSCBUFFERDESC 114 +{ 115 + DWORD dwSize; 116 + DWORD dwFlags; 117 + DWORD dwBufferBytes; 118 + DWORD dwReserved; 119 + LPWAVEFORMATEX lpwfxFormat; 120 + DWORD dwFXCount; 121 + LPDSCEFFECTDESC lpDSCFXDesc; 122 +} 123 + 124 +alias DSCBUFFERDESC* LPDSCBUFFERDESC; 125 + 126 +struct DSBUFFERDESC 127 +{ 128 + DWORD dwSize; 129 + DWORD dwFlags; 130 + DWORD dwBufferBytes; 131 + DWORD dwReserved; 132 + LPWAVEFORMATEX lpwfxFormat; 133 + GUID guid3DAlgorithm; 134 +} 135 + 136 +alias DSBUFFERDESC* LPCDSBUFFERDESC; 137 + 138 +struct DSCAPS 139 +{ 140 + DWORD dwSize; 141 + DWORD dwFlags; 142 + DWORD dwMinSecondarySampleRate; 143 + DWORD dwMaxSecondarySampleRate; 144 + DWORD dwPrimaryBuffers; 145 + DWORD dwMaxHwMixingAllBuffers; 146 + DWORD dwMaxHwMixingStaticBuffers; 147 + DWORD dwMaxHwMixingStreamingBuffers; 148 + DWORD dwFreeHwMixingAllBuffers; 149 + DWORD dwFreeHwMixingStaticBuffers; 150 + DWORD dwFreeHwMixingStreamingBuffers; 151 + DWORD dwMaxHw3DAllBuffers; 152 + DWORD dwMaxHw3DStaticBuffers; 153 + DWORD dwMaxHw3DStreamingBuffers; 154 + DWORD dwFreeHw3DAllBuffers; 155 + DWORD dwFreeHw3DStaticBuffers; 156 + DWORD dwFreeHw3DStreamingBuffers; 157 + DWORD dwTotalHwMemBytes; 158 + DWORD dwFreeHwMemBytes; 159 + DWORD dwMaxContigFreeHwMemBytes; 160 + DWORD dwUnlockTransferRateHwBuffers; 161 + DWORD dwPlayCpuOverheadSwBuffers; 162 + DWORD dwReserved1; 163 + DWORD dwReserved2; 164 +} 165 + 166 +alias DSCAPS* LPDSCAPS; 167 + 168 +struct DSBCAPS 169 +{ 170 + DWORD dwSize; 171 + DWORD dwFlags; 172 + DWORD dwBufferBytes; 173 + DWORD dwUnlockTransferRate; 174 + DWORD dwPlayCpuOverhead; 175 +} 176 + 177 +alias DSBCAPS *LPDSBCAPS; 178 + 179 +struct DSCEFFECTDESC 180 +{ 181 + DWORD dwSize; 182 + DWORD dwFlags; 183 + GUID guidDSCFXClass; 184 + GUID guidDSCFXInstance; 185 + DWORD dwReserved1; 186 + DWORD dwReserved2; 187 +} 188 + 189 +alias DSCEFFECTDESC *LPDSCEFFECTDESC; 190 + 191 +struct DS3DLISTENER 192 +{ 193 + DWORD dwSize; 194 + D3DVECTOR vPosition; 195 + D3DVECTOR vVelocity; 196 + D3DVECTOR vOrientFront; 197 + D3DVECTOR vOrientTop; 198 + D3DVALUE flDistanceFactor; 199 + D3DVALUE flRolloffFactor; 200 + D3DVALUE flDopplerFactor; 201 +} 202 + 203 +alias DS3DLISTENER *LPDS3DLISTENER, LPCDS3DLISTENER; 204 + 205 +alias float D3DVALUE; 206 + 207 +struct D3DVECTOR 208 +{ 209 + float x; 210 + float y; 211 + float z; 212 +} 213 + 214 +extern(Windows) export HRESULT DirectSoundCreate8(LPCGUID pcGuidDevice, LPDIRECTSOUND8 *ppDS8, LPUNKNOWN pUnkOuter); 215 + 216 +const DSSCL_PRIORITY = 0x00000002; 217 +const DSBCAPS_PRIMARYBUFFER = 0x00000001; 218 +const DSBCAPS_CTRL3D = 0x00000010; 219 +const DSBCAPS_GETCURRENTPOSITION2 = 0x00010000; 220 +const DSBCAPS_LOCDEFER = 0x00040000; 221 +const DSBPLAY_LOOPING = 0x00000001; 222 +const DSBSTATUS_PLAYING = 0x00000001; 223 +const DSBCAPS_CTRLFREQUENCY = 0x00000020; 224 +const DSBCAPS_CTRLPAN = 0x00000040; 225 +const DSBCAPS_CTRLVOLUME = 0x00000080; 226 +const DSBLOCK_ENTIREBUFFER = 0x00000002; 227 + 228 +const GUID IID_IDirectSound3DListener8 = {0x279AFA84,0x4981,0x11CE,[0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60]};

Added src/win32/directx/dsound8.def version [ccf10df672f0f7ce]

1 +IMPORTS 2 +_DirectSoundCreate8@12 = dsound.DirectSoundCreate8

Added src/win32/directx/dxerr.d version [9090410cc0efe452]

1 +/***********************************************************************\ 2 +* dxerr.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Placed into public domain * 7 +\***********************************************************************/ 8 +module win32.directx.dxerr; 9 + 10 +import win32.windows; 11 + 12 +pragma(lib, "dxerr.lib"); 13 + 14 +extern (Windows) { 15 + CHAR* DXGetErrorStringA(HRESULT hr); 16 + WCHAR* DXGetErrorStringW(HRESULT hr); 17 + CHAR* DXGetErrorDescriptionA(HRESULT hr); 18 + WCHAR* DXGetErrorDescriptionW(HRESULT hr); 19 + HRESULT DXTraceA(CHAR* strFile, DWORD dwLine, HRESULT hr, CHAR* strMsg, 20 + BOOL bPopMsgBox); 21 + HRESULT DXTraceW(CHAR* strFile, DWORD dwLine, HRESULT hr, WCHAR* strMsg, 22 + BOOL bPopMsgBox); 23 +} 24 + 25 +version (Unicode) { 26 + alias DXGetErrorStringW DXGetErrorString; 27 + alias DXGetErrorDescriptionW DXGetErrorDescription; 28 + alias DXTraceW DXTrace; 29 +} else { 30 + alias DXGetErrorStringA DXGetErrorString; 31 + alias DXGetErrorDescriptionA DXGetErrorDescription; 32 + alias DXTraceA DXTrace; 33 +} 34 + 35 +debug (dxerr) { 36 + HRESULT DXTRACE_MSG(TCHAR* str) { 37 + return DXTrace(__FILE__, __LINE__, 0, str, false); 38 + } 39 + HRESULT DXTRACE_ERR(TCHAR* str, HRESULT hr) { 40 + return DXTrace(__FILE__, __LINE__, hr, str, false); 41 + } 42 + HRESULT DXTRACE_ERR_MSGBOX(TCHAR* str, HRESULT hr) { 43 + return DXTrace(__FILE__, __LINE__, hr, str, true); 44 + } 45 +} else { 46 + HRESULT DXTRACE_MSG(TCHAR* str) { 47 + return 0; 48 + } 49 + HRESULT DXTRACE_ERR(TCHAR* str, HRESULT hr) { 50 + return hr; 51 + } 52 + HRESULT DXTRACE_ERR_MSGBOX(TCHAR* str, HRESULT hr) { 53 + return hr; 54 + } 55 +}

Added src/win32/directx/dxerr8.d version [34ddc3a78f9452b8]

1 +/***********************************************************************\ 2 +* dxerr8.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Translated from MinGW Windows headers * 7 +* * 8 +* Placed into public domain * 9 +\***********************************************************************/ 10 +module win32.directx.dxerr8; 11 + 12 +/* 13 + dxerr8.d - Header file for the DirectX 8 Error API 14 + 15 + Written by Filip Navara <xnavara@volny.cz> 16 + Ported to D by James Pelcis <jpelcis@gmail.com> 17 + 18 + This library is distributed in the hope that it will be useful, 19 + but WITHOUT ANY WARRANTY; without even the implied warranty of 20 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 21 +*/ 22 + 23 +private import win32.windef; 24 + 25 +extern (Windows) { 26 + char* DXGetErrorString8A (HRESULT); 27 + WCHAR* DXGetErrorString8W (HRESULT); 28 + char* DXGetErrorDescription8A (HRESULT); 29 + WCHAR* DXGetErrorDescription8W (HRESULT); 30 + HRESULT DXTraceA (char*, DWORD, HRESULT, char*, BOOL); 31 + HRESULT DXTraceW (char*, DWORD, HRESULT, WCHAR*, BOOL); 32 +} 33 + 34 +version (Unicode) { 35 + alias DXGetErrorString8W DXGetErrorString8; 36 + alias DXGetErrorDescription8W DXGetErrorDescription8; 37 + alias DXTraceW DXTrace; 38 +} else { 39 + alias DXGetErrorString8A DXGetErrorString8; 40 + alias DXGetErrorDescription8A DXGetErrorDescription8; 41 + alias DXTraceA DXTrace; 42 +} 43 + 44 +debug (dxerr) { 45 + HRESULT DXTRACE_MSG(TCHAR* str) { 46 + return DXTrace(__FILE__, __LINE__, 0, str, FALSE); 47 + } 48 + 49 + HRESULT DXTRACE_ERR(TCHAR* str, HRESULT hr) { 50 + return DXTrace(__FILE__, __LINE__, hr, str, TRUE); 51 + } 52 + 53 + HRESULT DXTRACE_ERR_NOMSGBOX (WCHAR* str, HRESULT hr) { 54 + return DXTrace(__FILE__, __LINE__, hr, str, FALSE); 55 + } 56 +} else { 57 + HRESULT DXTRACE_MSG(TCHAR* str) { 58 + return 0; 59 + } 60 + 61 + HRESULT DXTRACE_ERR(TCHAR* str, HRESULT hr) { 62 + return hr; 63 + } 64 + 65 + HRESULT DXTRACE_ERR_NOMSGBOX(TCHAR* str, HRESULT hr) { 66 + return hr; 67 + } 68 +}

Added src/win32/directx/dxerr9.d version [ceb1fd2634da5b6a]

1 +/***********************************************************************\ 2 +* dxerr9.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Translated from MinGW Windows headers * 7 +* * 8 +* Placed into public domain * 9 +\***********************************************************************/ 10 +module win32.directx.dxerr9; 11 + 12 +/* 13 + dxerr9.h - Header file for the DirectX 9 Error API 14 + 15 + Written by Filip Navara <xnavara@volny.cz> 16 + Ported to D by James Pelcis <jpelcis@gmail.com> 17 + 18 + This library is distributed in the hope that it will be useful, 19 + but WITHOUT ANY WARRANTY; without even the implied warranty of 20 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 21 + 22 +*/ 23 + 24 +private import win32.windef; 25 + 26 +extern (Windows) { 27 + char* DXGetErrorString9A(HRESULT); 28 + WCHAR* DXGetErrorString9W(HRESULT); 29 + char* DXGetErrorDescription9A(HRESULT); 30 + WCHAR* DXGetErrorDescription9W(HRESULT); 31 + HRESULT DXTraceA(char*, DWORD, HRESULT, char*, BOOL); 32 + HRESULT DXTraceW(char*, DWORD, HRESULT, WCHAR*, BOOL); 33 +} 34 + 35 +version (Unicode) { 36 + alias DXGetErrorString9W DXGetErrorString9; 37 + alias DXGetErrorDescription9W DXGetErrorDescription9; 38 + alias DXTraceW DXTrace; 39 +} else { 40 + alias DXGetErrorString9A DXGetErrorString9; 41 + alias DXGetErrorDescription9A DXGetErrorDescription9; 42 + alias DXTraceA DXTrace; 43 +} 44 + 45 +debug (dxerr) { 46 + HRESULT DXTRACE_MSG(TCHAR* str) { 47 + return DXTrace(__FILE__, cast(DWORD)__LINE__, 0, str, FALSE); 48 + } 49 + 50 + HRESULT DXTRACE_ERR(TCHAR* str, HRESULT hr) { 51 + return DXTrace(__FILE__, cast(DWORD)__LINE__, hr, str, FALSE); 52 + } 53 + 54 + HRESULT DXTRACE_ERR_NOMSGBOX(TCHAR* str, HRESULT hr) { 55 + return DXTrace(__FILE__, cast(DWORD)__LINE__, hr, str, TRUE); 56 + } 57 +} else { 58 + HRESULT DXTRACE_MSG(TCHAR* str) { 59 + return 0; 60 + } 61 + 62 + HRESULT DXTRACE_ERR(TCHAR* str, HRESULT hr) { 63 + return hr; 64 + } 65 + 66 + HRESULT DXTRACE_ERR_NOMSGBOX(TCHAR* str, HRESULT hr) { 67 + return hr; 68 + } 69 +}

Added src/win32/directx/dxgi.d version [01a31b5a86041999]

1 +/***********************************************************************\ 2 +* dxgi.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Placed into public domain * 7 +\***********************************************************************/ 8 +module win32.directx.dxgi; 9 + 10 +private import win32.windows; 11 + 12 +private import win32.directx.dxgitype; 13 + 14 +enum { 15 + DXGI_CPU_ACCESS_NONE = 0, 16 + DXGI_CPU_ACCESS_DYNAMIC = 1, 17 + DXGI_CPU_ACCESS_READ_WRITE = 2, 18 + DXGI_CPU_ACCESS_SCRATCH = 3, 19 + DXGI_CPU_ACCESS_FIELD = 15 20 +} 21 + 22 +enum { 23 + DXGI_USAGE_SHADER_INPUT = 0b00_00010000, 24 + DXGI_USAGE_RENDER_TARGET_OUTPUT = 0b00_00100000, 25 + DXGI_USAGE_BACK_BUFFER = 0b00_01000000, 26 + DXGI_USAGE_SHARED = 0b00_10000000, 27 + DXGI_USAGE_READ_ONLY = 0b01_00000000, 28 + DXGI_USAGE_DISCARD_ON_PRESENT = 0b10_00000000, 29 +} 30 +alias UINT DXGI_USAGE; 31 + 32 +struct DXGI_FRAME_STATISTICS { 33 + UINT PresentCount; 34 + UINT PresentRefreshCount; 35 + UINT SyncRefreshCount; 36 + LARGE_INTEGER SyncQPCTime; 37 + LARGE_INTEGER SyncGPUTime; 38 +} 39 + 40 +struct DXGI_MAPPED_RECT { 41 + INT Pitch; 42 + BYTE* pBits; 43 +} 44 + 45 +struct DXGI_ADAPTER_DESC { 46 + WCHAR[128] Description; 47 + UINT VendorId; 48 + UINT DeviceId; 49 + UINT SubSysId; 50 + UINT Revision; 51 + SIZE_T DedicatedVideoMemory; 52 + SIZE_T DedicatedSystemMemory; 53 + SIZE_T SharedSystemMemory; 54 + LUID AdapterLuid; 55 +} 56 + 57 +struct DXGI_OUTPUT_DESC { 58 + WCHAR[32] DeviceName; 59 + RECT DesktopCoordinates; 60 + BOOL AttachedToDesktop; 61 + DXGI_MODE_ROTATION Rotation; 62 + HMONITOR Monitor; 63 +} 64 + 65 +struct DXGI_SHARED_RESOURCE { 66 + HANDLE Handle; 67 +} 68 + 69 +enum { 70 + DXGI_RESOURCE_PRIORITY_MINIMUM = 0x28000000, 71 + DXGI_RESOURCE_PRIORITY_LOW = 0x50000000, 72 + DXGI_RESOURCE_PRIORITY_NORMAL = 0x78000000, 73 + DXGI_RESOURCE_PRIORITY_HIGH = 0xa0000000, 74 + DXGI_RESOURCE_PRIORITY_MAXIMUM = 0xc8000000 75 +} 76 + 77 +enum DXGI_RESIDENCY { 78 + DXGI_RESIDENCY_FULLY_RESIDENT = 1, 79 + DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY = 2, 80 + DXGI_RESIDENCY_EVICTED_TO_DISK = 3 81 +} 82 + 83 +struct DXGI_SURFACE_DESC { 84 + UINT Width; 85 + UINT Height; 86 + DXGI_FORMAT Format; 87 + DXGI_SAMPLE_DESC SampleDesc; 88 +} 89 + 90 +enum DXGI_SWAP_EFFECT { 91 + DXGI_SWAP_EFFECT_DISCARD = 0, 92 + DXGI_SWAP_EFFECT_SEQUENTIAL = 1 93 +} 94 + 95 +enum DXGI_SWAP_CHAIN_FLAG { 96 + DXGI_SWAP_CHAIN_FLAG_NONPREROTATED = 1, 97 + DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH = 2 98 +} 99 + 100 +struct DXGI_SWAP_CHAIN_DESC { 101 + DXGI_MODE_DESC BufferDesc; 102 + DXGI_SAMPLE_DESC SampleDesc; 103 + DXGI_USAGE BufferUsage; 104 + UINT BufferCount; 105 + HWND OutputWindow; 106 + BOOL Windowed; 107 + DXGI_SWAP_EFFECT SwapEffect; 108 + UINT Flags; 109 +} 110 + 111 +interface IDXGIObject : IUnknown { 112 + extern(Windows) : 113 + HRESULT SetPrivateData(REFGUID Name, UINT DataSize, void* pData); 114 + HRESULT SetPrivateDataInterface(REFGUID Name, IUnknown pUnknown); 115 + HRESULT GetPrivateData(REFGUID Name, UINT* pDataSize, void* pData); 116 + HRESULT GetParent(REFIID riid, void** ppParent); 117 +} 118 + 119 +interface IDXGIDeviceSubObject : IDXGIObject { 120 + extern(Windows) : 121 + HRESULT GetDevice(REFIID riid, void** ppDevice); 122 +} 123 + 124 +interface IDXGIResource : IDXGIDeviceSubObject { 125 + extern(Windows) : 126 + HRESULT GetSharedHandle(HANDLE* pSharedHandle); 127 + HRESULT GetUsage(DXGI_USAGE* pUsage); 128 + HRESULT SetEvictionPriority(UINT EvictionPriority); 129 + HRESULT GetEvictionPriority(UINT* pEvictionPriority); 130 +} 131 + 132 +interface IDXGISurface : IDXGIDeviceSubObject { 133 + extern(Windows) : 134 + HRESULT GetDesc(DXGI_SURFACE_DESC* pDesc); 135 + HRESULT Map(DXGI_MAPPED_RECT* pLockedRect, UINT MapFlags); 136 + HRESULT Unmap(); 137 +} 138 + 139 +interface IDXGIAdapter : IDXGIObject { 140 + extern(Windows) : 141 + HRESULT EnumOutputs(UINT Output, IDXGIOutput* ppOutput); 142 + HRESULT GetDesc(DXGI_ADAPTER_DESC* pDesc); 143 + HRESULT CheckInterfaceSupport(REFGUID InterfaceName, LARGE_INTEGER* pUMDVersion); 144 +} 145 + 146 +interface IDXGIOutput : IDXGIObject { 147 + extern(Windows) : 148 + HRESULT GetDesc(DXGI_OUTPUT_DESC* pDesc); 149 + HRESULT GetDisplayModeList(DXGI_FORMAT EnumFormat, UINT Flags, UINT* pNumModes, DXGI_MODE_DESC* pDesc); 150 + HRESULT FindClosestMatchingMode(DXGI_MODE_DESC* pModeToMatch, DXGI_MODE_DESC* pClosestMatch, IUnknown pConcernedDevice); 151 + HRESULT WaitForVBlank(); 152 + HRESULT TakeOwnership(IUnknown pDevice, BOOL Exclusive); 153 + void ReleaseOwnership(); 154 + HRESULT GetGammaControlCapabilities(DXGI_GAMMA_CONTROL_CAPABILITIES* pGammaCaps); 155 + HRESULT SetGammaControl(DXGI_GAMMA_CONTROL* pArray); 156 + HRESULT GetGammaControl(DXGI_GAMMA_CONTROL* pArray); 157 + HRESULT SetDisplaySurface(IDXGISurface pScanoutSurface); 158 + HRESULT GetDisplaySurfaceData(IDXGISurface pDestination); 159 + HRESULT GetFrameStatistics(DXGI_FRAME_STATISTICS* pStats); 160 +} 161 + 162 +const DXGI_MAX_SWAP_CHAIN_BUFFERS = 16; 163 + 164 +enum { 165 + DXGI_PRESENT_TEST = 0x00000001, 166 + DXGI_PRESENT_DO_NOT_SEQUENCE = 0x00000002, 167 + DXGI_PRESENT_RESTART = 0x00000004 168 +} 169 + 170 +interface IDXGISwapChain : IDXGIDeviceSubObject { 171 + extern(Windows) : 172 + HRESULT Present(UINT SyncInterval, UINT Flags); 173 + HRESULT GetBuffer(UINT Buffer, REFIID riid, void** ppSurface); 174 + HRESULT SetFullscreenState(BOOL Fullscreen, IDXGIOutput pTarget); 175 + HRESULT GetFullscreenState(BOOL* pFullscreen, IDXGIOutput* ppTarget); 176 + HRESULT GetDesc(DXGI_SWAP_CHAIN_DESC* pDesc); 177 + HRESULT ResizeBuffers(UINT BufferCount, UINT Width, UINT Height, DXGI_FORMAT NewFormat, UINT SwapChainFlags); 178 + HRESULT ResizeTarget(DXGI_MODE_DESC* pNewTargetParameters); 179 + HRESULT GetContainingOutput(IDXGIOutput* ppOutput); 180 + HRESULT GetFrameStatistics(DXGI_FRAME_STATISTICS* pStats); 181 + HRESULT GetLastPresentCount(UINT* pLastPresentCount); 182 +} 183 + 184 +interface IDXGIFactory : IDXGIObject { 185 + extern(Windows) : 186 + HRESULT EnumAdapters(UINT Adapter, IDXGIAdapter* ppAdapter); 187 + HRESULT MakeWindowAssociation(HWND WindowHandle, UINT Flags); 188 + HRESULT GetWindowAssociation(HWND* pWindowHandle); 189 + HRESULT CreateSwapChain(IUnknown pDevice, DXGI_SWAP_CHAIN_DESC* pDesc, IDXGISwapChain* ppSwapChain); 190 + HRESULT CreateSoftwareAdapter(HMODULE Module, IDXGIAdapter* ppAdapter); 191 +} 192 + 193 +interface IDXGIDevice : IDXGIObject { 194 + extern(Windows) : 195 + HRESULT GetAdapter(IDXGIAdapter* pAdapter); 196 + HRESULT CreateSurface(DXGI_SURFACE_DESC* pDesc, UINT NumSurfaces, DXGI_USAGE Usage, DXGI_SHARED_RESOURCE* pSharedResource, IDXGISurface* ppSurface); 197 + HRESULT QueryResourceResidency(IUnknown* ppResources, DXGI_RESIDENCY* pResidencyStatus, UINT NumResources); 198 + HRESULT SetGPUThreadPriority(INT Priority); 199 + HRESULT GetGPUThreadPriority(INT* pPriority); 200 +} 201 + 202 +extern(C) const GUID IID_IDXGIObject = {0xaec22fb8, 0x76f3, 0x4639, [0x9b, 0xe0, 0x28, 0xeb, 0x43, 0xa6, 0x7a, 0x2e]}; 203 +extern(C) const GUID IID_IDXGIDeviceSubObject = {0x3d3e0379, 0xf9de, 0x4d58, [0xbb, 0x6c, 0x18, 0xd6, 0x29, 0x92, 0xf1, 0xa6]}; 204 +extern(C) const GUID IID_IDXGIResource = {0x035f3ab4, 0x482e, 0x4e50, [0xb4, 0x1f, 0x8a, 0x7f, 0x8b, 0xd8, 0x96, 0x0b]}; 205 +extern(C) const GUID IID_IDXGISurface = {0xcafcb56c, 0x6ac3, 0x4889, [0xbf, 0x47, 0x9e, 0x23, 0xbb, 0xd2, 0x60, 0xec]}; 206 +extern(C) const GUID IID_IDXGIAdapter = {0x2411e7e1, 0x12ac, 0x4ccf, [0xbd, 0x14, 0x97, 0x98, 0xe8, 0x53, 0x4d, 0xc0]}; 207 +extern(C) const GUID IID_IDXGIOutput = {0xae02eedb, 0xc735, 0x4690, [0x8d, 0x52, 0x5a, 0x8d, 0xc2, 0x02, 0x13, 0xaa]}; 208 +extern(C) const GUID IID_IDXGISwapChain = {0x310d36a0, 0xd2e7, 0x4c0a, [0xaa, 0x04, 0x6a, 0x9d, 0x23, 0xb8, 0x88, 0x6a]}; 209 +extern(C) const GUID IID_IDXGIFactory = {0x7b7166ec, 0x21c7, 0x44ae, [0xb2, 0x1a, 0xc9, 0xae, 0x32, 0x1a, 0xe3, 0x69]}; 210 +extern(C) const GUID IID_IDXGIDevice = {0x54ec77fa, 0x1377, 0x44e6, [0x8c, 0x32, 0x88, 0xfd, 0x5f, 0x44, 0xc8, 0x4c]}; 211 +

Added src/win32/directx/dxgitype.d version [84641e2b98a36529]

1 +/***********************************************************************\ 2 +* dxgitype.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Placed into public domain * 7 +\***********************************************************************/ 8 +module win32.directx.dxgitype; 9 + 10 +private import win32.windows; 11 + 12 +const _FACDXGI = 0x87a; 13 + 14 +HRESULT MAKE_DXGI_HRESULT(T)(T code) { 15 + return MAKE_HRESULT(1, _FACDXGI, code); 16 +} 17 + 18 +HRESULT MAKE_DXGI_STATUS(T)(T code) { 19 + return MAKE_HRESULT(0, _FACDXGI, code); 20 +} 21 + 22 +const HRESULT DXGI_STATUS_OCCLUDED = MAKE_DXGI_STATUS(1); 23 +const HRESULT DXGI_STATUS_CLIPPED = MAKE_DXGI_STATUS(2); 24 +const HRESULT DXGI_STATUS_NO_REDIRECTION = MAKE_DXGI_STATUS(4); 25 +const HRESULT DXGI_STATUS_NO_DESKTOP_ACCESS = MAKE_DXGI_STATUS(5); 26 +const HRESULT DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE = MAKE_DXGI_STATUS(6); 27 +const HRESULT DXGI_STATUS_MODE_CHANGED = MAKE_DXGI_STATUS(7); 28 +const HRESULT DXGI_STATUS_MODE_CHANGE_IN_PROGRESS = MAKE_DXGI_STATUS(8); 29 +const HRESULT DXGI_ERROR_INVALID_CALL = MAKE_DXGI_HRESULT( 1); 30 +const HRESULT DXGI_ERROR_NOT_FOUND = MAKE_DXGI_HRESULT( 2); 31 +const HRESULT DXGI_ERROR_MORE_DATA = MAKE_DXGI_HRESULT( 3); 32 +const HRESULT DXGI_ERROR_UNSUPPORTED = MAKE_DXGI_HRESULT( 4); 33 +const HRESULT DXGI_ERROR_DEVICE_REMOVED = MAKE_DXGI_HRESULT( 5); 34 +const HRESULT DXGI_ERROR_DEVICE_HUNG = MAKE_DXGI_HRESULT( 6); 35 +const HRESULT DXGI_ERROR_DEVICE_RESET = MAKE_DXGI_HRESULT( 7); 36 +const HRESULT DXGI_ERROR_WAS_STILL_DRAWING = MAKE_DXGI_HRESULT(10); 37 +const HRESULT DXGI_ERROR_FRAME_STATISTICS_DISJOINT = MAKE_DXGI_HRESULT(11); 38 +const HRESULT DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE = MAKE_DXGI_HRESULT(12); 39 +const HRESULT DXGI_ERROR_DRIVER_INTERNAL_ERROR = MAKE_DXGI_HRESULT(32); 40 +const HRESULT DXGI_ERROR_NONEXCLUSIVE = MAKE_DXGI_HRESULT(33); 41 +const HRESULT DXGI_ERROR_NOT_CURRENTLY_AVAILABLE = MAKE_DXGI_HRESULT(34); 42 +const HRESULT DXGI_FORMAT_DEFINED = 1; 43 + 44 +enum DXGI_FORMAT { 45 + DXGI_FORMAT_UNKNOWN = 0, 46 + DXGI_FORMAT_R32G32B32A32_TYPELESS, 47 + DXGI_FORMAT_R32G32B32A32_FLOAT, 48 + DXGI_FORMAT_R32G32B32A32_UINT, 49 + DXGI_FORMAT_R32G32B32A32_SINT, 50 + DXGI_FORMAT_R32G32B32_TYPELESS, 51 + DXGI_FORMAT_R32G32B32_FLOAT, 52 + DXGI_FORMAT_R32G32B32_UINT, 53 + DXGI_FORMAT_R32G32B32_SINT, 54 + DXGI_FORMAT_R16G16B16A16_TYPELESS, 55 + DXGI_FORMAT_R16G16B16A16_FLOAT, 56 + DXGI_FORMAT_R16G16B16A16_UNORM, 57 + DXGI_FORMAT_R16G16B16A16_UINT, 58 + DXGI_FORMAT_R16G16B16A16_SNORM, 59 + DXGI_FORMAT_R16G16B16A16_SINT, 60 + DXGI_FORMAT_R32G32_TYPELESS, 61 + DXGI_FORMAT_R32G32_FLOAT, 62 + DXGI_FORMAT_R32G32_UINT, 63 + DXGI_FORMAT_R32G32_SINT, 64 + DXGI_FORMAT_R32G8X24_TYPELESS, 65 + DXGI_FORMAT_D32_FLOAT_S8X24_UINT, 66 + DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS, 67 + DXGI_FORMAT_X32_TYPELESS_G8X24_UINT, 68 + DXGI_FORMAT_R10G10B10A2_TYPELESS, 69 + DXGI_FORMAT_R10G10B10A2_UNORM, 70 + DXGI_FORMAT_R10G10B10A2_UINT, 71 + DXGI_FORMAT_R11G11B10_FLOAT, 72 + DXGI_FORMAT_R8G8B8A8_TYPELESS, 73 + DXGI_FORMAT_R8G8B8A8_UNORM, 74 + DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, 75 + DXGI_FORMAT_R8G8B8A8_UINT, 76 + DXGI_FORMAT_R8G8B8A8_SNORM, 77 + DXGI_FORMAT_R8G8B8A8_SINT, 78 + DXGI_FORMAT_R16G16_TYPELESS, 79 + DXGI_FORMAT_R16G16_FLOAT, 80 + DXGI_FORMAT_R16G16_UNORM, 81 + DXGI_FORMAT_R16G16_UINT, 82 + DXGI_FORMAT_R16G16_SNORM, 83 + DXGI_FORMAT_R16G16_SINT, 84 + DXGI_FORMAT_R32_TYPELESS, 85 + DXGI_FORMAT_D32_FLOAT, 86 + DXGI_FORMAT_R32_FLOAT, 87 + DXGI_FORMAT_R32_UINT, 88 + DXGI_FORMAT_R32_SINT, 89 + DXGI_FORMAT_R24G8_TYPELESS, 90 + DXGI_FORMAT_D24_UNORM_S8_UINT, 91 + DXGI_FORMAT_R24_UNORM_X8_TYPELESS, 92 + DXGI_FORMAT_X24_TYPELESS_G8_UINT, 93 + DXGI_FORMAT_R8G8_TYPELESS, 94 + DXGI_FORMAT_R8G8_UNORM, 95 + DXGI_FORMAT_R8G8_UINT, 96 + DXGI_FORMAT_R8G8_SNORM, 97 + DXGI_FORMAT_R8G8_SINT, 98 + DXGI_FORMAT_R16_TYPELESS, 99 + DXGI_FORMAT_R16_FLOAT, 100 + DXGI_FORMAT_D16_UNORM, 101 + DXGI_FORMAT_R16_UNORM, 102 + DXGI_FORMAT_R16_UINT, 103 + DXGI_FORMAT_R16_SNORM, 104 + DXGI_FORMAT_R16_SINT, 105 + DXGI_FORMAT_R8_TYPELESS, 106 + DXGI_FORMAT_R8_UNORM, 107 + DXGI_FORMAT_R8_UINT, 108 + DXGI_FORMAT_R8_SNORM, 109 + DXGI_FORMAT_R8_SINT, 110 + DXGI_FORMAT_A8_UNORM, 111 + DXGI_FORMAT_R1_UNORM, 112 + DXGI_FORMAT_R9G9B9E5_SHAREDEXP, 113 + DXGI_FORMAT_R8G8_B8G8_UNORM, 114 + DXGI_FORMAT_G8R8_G8B8_UNORM, 115 + DXGI_FORMAT_BC1_TYPELESS, 116 + DXGI_FORMAT_BC1_UNORM, 117 + DXGI_FORMAT_BC1_UNORM_SRGB, 118 + DXGI_FORMAT_BC2_TYPELESS, 119 + DXGI_FORMAT_BC2_UNORM, 120 + DXGI_FORMAT_BC2_UNORM_SRGB, 121 + DXGI_FORMAT_BC3_TYPELESS, 122 + DXGI_FORMAT_BC3_UNORM, 123 + DXGI_FORMAT_BC3_UNORM_SRGB, 124 + DXGI_FORMAT_BC4_TYPELESS, 125 + DXGI_FORMAT_BC4_UNORM, 126 + DXGI_FORMAT_BC4_SNORM, 127 + DXGI_FORMAT_BC5_TYPELESS, 128 + DXGI_FORMAT_BC5_UNORM, 129 + DXGI_FORMAT_BC5_SNORM, 130 + DXGI_FORMAT_B5G6R5_UNORM, 131 + DXGI_FORMAT_B5G5R5A1_UNORM, 132 + DXGI_FORMAT_B8G8R8A8_UNORM, 133 + DXGI_FORMAT_B8G8R8X8_UNORM, 134 + DXGI_FORMAT_FORCE_UINT = 0xffffffff 135 +} 136 + 137 +struct DXGI_RGB { 138 + float Red; 139 + float Green; 140 + float Blue; 141 +} 142 + 143 +struct DXGI_GAMMA_CONTROL { 144 + DXGI_RGB Scale; 145 + DXGI_RGB Offset; 146 + DXGI_RGB[1025] GammaCurve; 147 +} 148 + 149 +struct DXGI_GAMMA_CONTROL_CAPABILITIES { 150 + BOOL ScaleAndOffsetSupported; 151 + float MaxConvertedValue; 152 + float MinConvertedValue; 153 + UINT NumGammaControlPoints; 154 + float[1025] ControlPointPositions; 155 +} 156 + 157 +struct DXGI_RATIONAL { 158 + UINT Numerator; 159 + UINT Denominator; 160 +} 161 + 162 +enum DXGI_MODE_SCANLINE_ORDER { 163 + DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED = 0, 164 + DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE = 1, 165 + DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST = 2, 166 + DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST = 3 167 +} 168 + 169 +enum DXGI_MODE_SCALING { 170 + DXGI_MODE_SCALING_UNSPECIFIED = 0, 171 + DXGI_MODE_SCALING_CENTERED = 1, 172 + DXGI_MODE_SCALING_STRETCHED = 2 173 +} 174 + 175 +enum DXGI_MODE_ROTATION { 176 + DXGI_MODE_ROTATION_UNSPECIFIED = 0, 177 + DXGI_MODE_ROTATION_IDENTITY = 1, 178 + DXGI_MODE_ROTATION_ROTATE90 = 2, 179 + DXGI_MODE_ROTATION_ROTATE180 = 3, 180 + DXGI_MODE_ROTATION_ROTATE270 = 4 181 +} 182 + 183 +struct DXGI_MODE_DESC { 184 + UINT Width; 185 + UINT Height; 186 + DXGI_RATIONAL RefreshRate; 187 + DXGI_FORMAT Format; 188 + DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; 189 + DXGI_MODE_SCALING Scaling; 190 +} 191 + 192 +struct DXGI_SAMPLE_DESC { 193 + UINT Count; 194 + UINT Quality; 195 +}

Modified src/win32/dlgs.d from [0d5dc094dae1c5d2] to [20496948a63c3562].

Modified src/win32/docobj.d from [b8ee0e08b2d6c61c] to [b4bf73a8fd532abb].

69 69 OLECMDEXECOPT_SHOWHELP = 3 70 70 } 71 71 72 72 struct OLECMDTEXT { 73 73 DWORD cmdtextf; 74 74 ULONG cwActual; 75 75 ULONG cwBuf; 76 - wchar rgwz[1]; 76 + wchar[1] rgwz; 77 77 } 78 78 79 79 struct OLECMD { 80 80 ULONG cmdID; 81 81 DWORD cmdf; 82 82 } 83 83 84 -alias IOleInPlaceSite* LPOLEINPLACESITE; 85 -alias IEnumOleDocumentViews* LPENUMOLEDOCUMENTVIEWS; 84 +alias IOleInPlaceSite LPOLEINPLACESITE; 85 +alias IEnumOleDocumentViews LPENUMOLEDOCUMENTVIEWS; 86 86 87 87 extern (C) extern const IID 88 88 IID_IContinueCallback, 89 89 IID_IEnumOleDocumentViews, 90 90 IID_IPrint, 91 91 IID_IOleDocumentView, 92 92 IID_IOleDocument, ................................................................................ 93 93 IID_IOleCommandTarget, 94 94 IID_IOleDocumentSite; 95 95 96 96 97 97 interface IOleDocumentView : IUnknown { 98 98 HRESULT SetInPlaceSite(LPOLEINPLACESITE); 99 99 HRESULT GetInPlaceSite(LPOLEINPLACESITE*); 100 - HRESULT GetDocument(IUnknown**); 100 + HRESULT GetDocument(IUnknown*); 101 101 HRESULT SetRect(LPRECT); 102 102 HRESULT GetRect(LPRECT); 103 103 HRESULT SetRectComplex(LPRECT, LPRECT, LPRECT, LPRECT); 104 104 HRESULT Show(BOOL); 105 105 HRESULT UIActivate(BOOL); 106 106 HRESULT Open(); 107 107 HRESULT Close(DWORD); 108 - HRESULT SaveViewState(IStream*); 109 - HRESULT ApplyViewState(IStream*); 110 - HRESULT Clone(LPOLEINPLACESITE, IOleDocumentView**); 108 + HRESULT SaveViewState(IStream); 109 + HRESULT ApplyViewState(IStream); 110 + HRESULT Clone(LPOLEINPLACESITE, IOleDocumentView*); 111 111 } 112 112 113 113 interface IEnumOleDocumentViews : IUnknown { 114 - HRESULT Next(ULONG, IOleDocumentView*, ULONG*); 114 + HRESULT Next(ULONG, IOleDocumentView, ULONG*); 115 115 HRESULT Skip(ULONG); 116 116 HRESULT Reset(); 117 - HRESULT Clone(IEnumOleDocumentViews**); 117 + HRESULT Clone(IEnumOleDocumentViews*); 118 118 } 119 119 120 120 interface IOleDocument : IUnknown { 121 - HRESULT CreateView(LPOLEINPLACESITE, IStream*, DWORD, IOleDocumentView**); 121 + HRESULT CreateView(LPOLEINPLACESITE, IStream, DWORD, IOleDocumentView*); 122 122 HRESULT GetDocMiscStatus(DWORD*); 123 - HRESULT EnumViews(LPENUMOLEDOCUMENTVIEWS*, IOleDocumentView**); 123 + HRESULT EnumViews(LPENUMOLEDOCUMENTVIEWS*, IOleDocumentView*); 124 124 } 125 125 126 126 interface IOleCommandTarget : IUnknown { 127 - HRESULT QueryStatus(CPtr!(GUID), ULONG, OLECMD*, OLECMDTEXT*); 128 - HRESULT Exec(CPtr!(GUID), DWORD, DWORD, VARIANTARG*, VARIANTARG*); 127 + HRESULT QueryStatus(const(GUID)*, ULONG, OLECMD*, OLECMDTEXT*); 128 + HRESULT Exec(const(GUID)*, DWORD, DWORD, VARIANTARG*, VARIANTARG*); 129 129 } 130 130 131 131 interface IOleDocumentSite : IUnknown { 132 - HRESULT ActivateMe(IOleDocumentView*); 132 + HRESULT ActivateMe(IOleDocumentView); 133 133 }

Modified src/win32/errorrep.d from [ea77bc83084315f4] to [e15d42c911b399d3].

Modified src/win32/exdisp.d from [4cc398018e338f19] to [86d294ce6711c367].

Modified src/win32/exdispid.d from [6ac669b949b25513] to [f9db50b00c70051d].

Modified src/win32/httpext.d from [7cfbf84102013a8b] to [dcfd30a46b353b59].

41 41 HSE_TERM_MUST_UNLOAD, 42 42 HSE_IO_SYNC = 0x00000001, 43 43 HSE_IO_ASYNC, 44 44 HSE_IO_DISCONNECT_AFTER_SEND = 0x00000004, 45 45 HSE_IO_SEND_HEADERS = 0x00000008 46 46 } 47 47 48 -alias HANDLE HCONN; 48 +mixin DECLARE_HANDLE!("HCONN"); 49 49 50 50 struct HSE_VERSION_INFO { 51 51 DWORD dwExtensionVersion; 52 52 CHAR[HSE_MAX_EXT_DLL_NAME_LEN] lpszExtensionDesc; 53 53 } 54 54 alias HSE_VERSION_INFO* LPHSE_VERSION_INFO; 55 55

Modified src/win32/idispids.d from [45a7d6937f4a5f8e] to [b1d5aaa0844dff44].

Modified src/win32/imagehlp.d from [743d5e4032c0de59] to [bbf16340c786af1a].

255 255 DWORD SizeOfStruct; 256 256 DWORD NumberOfDups; 257 257 PIMAGEHLP_SYMBOL Symbol; 258 258 ULONG SelectedSymbol; 259 259 } 260 260 alias IMAGEHLP_DUPLICATE_SYMBOL* PIMAGEHLP_DUPLICATE_SYMBOL; 261 261 262 -alias HANDLE DIGEST_HANDLE; 262 +mixin DECLARE_HANDLE!("DIGEST_HANDLE"); 263 263 264 264 extern (Windows) { 265 265 alias BOOL function(IMAGEHLP_STATUS_REASON, LPSTR, LPSTR, ULONG, ULONG) 266 266 PIMAGEHLP_STATUS_ROUTINE; 267 267 alias BOOL function(HANDLE , LPCVOID, LPVOID, DWORD, LPDWORD) 268 268 PREAD_PROCESS_MEMORY_ROUTINE; 269 269 alias LPVOID function(HANDLE, DWORD) PFUNCTION_TABLE_ACCESS_ROUTINE;

Modified src/win32/imm.d from [298859cd23308dab] to [04daf8e31397c587].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.imm; 11 -pragma(lib, "imm32.lib"); 11 +pragma(lib, "imm32"); 12 12 13 13 import win32.windef, win32.wingdi; 14 14 import win32.winuser; // for the MFS_xxx enums. 15 15 private import win32.w32api; 16 16 17 17 const WM_CONVERTREQUESTEX = 0x108; 18 18 const WM_IME_STARTCOMPOSITION = 0x10D; ................................................................................ 21 21 const WM_IME_KEYLAST = 0x10F; 22 22 const WM_IME_SETCONTEXT = 0x281; 23 23 const WM_IME_NOTIFY = 0x282; 24 24 const WM_IME_CONTROL = 0x283; 25 25 const WM_IME_COMPOSITIONFULL = 0x284; 26 26 const WM_IME_SELECT = 0x285; 27 27 const WM_IME_CHAR = 0x286; 28 -static if (WINVER >= 0x500) { 28 +static if (_WIN32_WINNT >= 0x500) { 29 29 const WM_IME_REQUEST = 0x288; 30 30 } 31 31 const WM_IME_KEYDOWN = 0x290; 32 32 const WM_IME_KEYUP = 0x291; 33 33 34 34 35 35 const IMC_GETCANDIDATEPOS=7; ................................................................................ 296 296 struct CANDIDATELIST{ 297 297 DWORD dwSize; 298 298 DWORD dwStyle; 299 299 DWORD dwCount; 300 300 DWORD dwSelection; 301 301 DWORD dwPageStart; 302 302 DWORD dwPageSize; 303 - DWORD dwOffset[1]; 303 + DWORD[1] dwOffset; 304 304 } 305 305 alias CANDIDATELIST* PCANDIDATELIST, LPCANDIDATELIST; 306 306 307 307 struct REGISTERWORDA{ 308 308 LPSTR lpReading; 309 309 LPSTR lpWord; 310 310 } ................................................................................ 314 314 LPWSTR lpReading; 315 315 LPWSTR lpWord; 316 316 } 317 317 alias REGISTERWORDW* PREGISTERWORDW, LPREGISTERWORDW; 318 318 319 319 struct STYLEBUFA{ 320 320 DWORD dwStyle; 321 - CHAR szDescription[STYLE_DESCRIPTION_SIZE]; 321 + CHAR[STYLE_DESCRIPTION_SIZE] szDescription; 322 322 } 323 323 alias STYLEBUFA* PSTYLEBUFA, LPSTYLEBUFA; 324 324 325 325 struct STYLEBUFW{ 326 326 DWORD dwStyle; 327 - WCHAR szDescription[STYLE_DESCRIPTION_SIZE]; 327 + WCHAR[STYLE_DESCRIPTION_SIZE] szDescription; 328 328 } 329 329 alias STYLEBUFW* PSTYLEBUFW, LPSTYLEBUFW; 330 330 331 331 struct IMEMENUITEMINFOA{ 332 332 UINT cbSize = this.sizeof; 333 333 UINT fType; 334 334 UINT fState; 335 335 UINT wID; 336 336 HBITMAP hbmpChecked; 337 337 HBITMAP hbmpUnchecked; 338 338 DWORD dwItemData; 339 - CHAR szString[IMEMENUITEM_STRING_SIZE]; 339 + CHAR[IMEMENUITEM_STRING_SIZE] szString; 340 340 HBITMAP hbmpItem; 341 341 } 342 342 alias IMEMENUITEMINFOA* PIMEMENUITEMINFOA, LPIMEMENUITEMINFOA; 343 343 344 344 struct IMEMENUITEMINFOW{ 345 345 UINT cbSize = this.sizeof; 346 346 UINT fType; 347 347 UINT fState; 348 348 UINT wID; 349 349 HBITMAP hbmpChecked; 350 350 HBITMAP hbmpUnchecked; 351 351 DWORD dwItemData; 352 - WCHAR szString[IMEMENUITEM_STRING_SIZE]; 352 + WCHAR[IMEMENUITEM_STRING_SIZE] szString; 353 353 HBITMAP hbmpItem; 354 354 } 355 355 alias IMEMENUITEMINFOW* PIMEMENUITEMINFOW, LPIMEMENUITEMINFOW; 356 356 357 357 alias int function (LPCSTR, DWORD, LPCSTR, LPVOID) REGISTERWORDENUMPROCA; 358 358 alias int function (LPCWSTR, DWORD, LPCWSTR, LPVOID) REGISTERWORDENUMPROCW; 359 359

Modified src/win32/intshcut.d from [3dec7c6df065235c] to [f638f23bb3b111dc].

60 60 alias URLINVOKECOMMANDINFO* PURLINVOKECOMMANDINFO, PCURLINVOKECOMMANDINFO; 61 61 62 62 interface IUniformResourceLocator : IUnknown { 63 63 HRESULT SetURL(PCSTR, DWORD); 64 64 HRESULT GetURL(PSTR*); 65 65 HRESULT InvokeCommand(PURLINVOKECOMMANDINFO); 66 66 } 67 -alias IUniformResourceLocator CIUniformResourceLocator; 68 -alias IUniformResourceLocator* PIUniformResourceLocator, 67 +//alias typeof(*(IUniformResourceLocator.init)) CIUniformResourceLocator; // value-type of interface not representable in D 68 +alias IUniformResourceLocator PIUniformResourceLocator, 69 69 PCIUniformResourceLocator; 70 70 71 71 extern (Windows) { 72 72 BOOL InetIsOffline(DWORD); 73 73 HRESULT MIMEAssociationDialogA(HWND, DWORD, PCSTR, PCSTR, PSTR, UINT); 74 74 HRESULT MIMEAssociationDialogW(HWND, DWORD, PCWSTR, PCWSTR, PWSTR, UINT); 75 75 HRESULT TranslateURLA(PCSTR, DWORD, PSTR*);

Modified src/win32/ipexport.d from [5a823418cedc80e8] to [5ac570681356fed1].

Modified src/win32/iphlpapi.d from [11828d4561dc6f68] to [0e036969485d7abe].

Modified src/win32/ipifcons.d from [14fff92b77913fcb] to [309cc6cabdd19f28].

Modified src/win32/iprtrmib.d from [ddb714521d78c352] to [14e68fd03f7e7ac9].

Modified src/win32/iptypes.d from [93c2ee9c88a504a9] to [f81fbdd33cced747].

10 10 \***********************************************************************/ 11 11 module win32.iptypes; 12 12 13 13 import win32.windef; 14 14 version(Tango){ 15 15 private import tango.stdc.time; 16 16 }else{ 17 - private import std.c.time; 17 + version (D_Version2) 18 + import core.stdc.time; 19 + else 20 + import std.c.time; 18 21 } 19 22 //#include <sys/types.h> 20 23 21 24 const size_t 22 25 DEFAULT_MINIMUM_ENTITIES = 32, 23 26 MAX_ADAPTER_ADDRESS_LENGTH = 8, 24 27 MAX_ADAPTER_DESCRIPTION_LENGTH = 128,

Modified src/win32/isguids.d from [09bcf98ace7cad90] to [de4667e9c3bdbfff].

Modified src/win32/lm.d from [17722dcea6632fed] to [b26d9ff38bedf081].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.lm; 11 - 11 +/* removed - now supporting only Win2k up 12 12 version (WindowsVista) { 13 13 version = WIN32_WINNT_ONLY; 14 14 } else version (Windows2003) { 15 15 version = WIN32_WINNT_ONLY; 16 16 } else version (WindowsXP) { 17 17 version = WIN32_WINNT_ONLY; 18 18 } else version (WindowsNTonly) { 19 19 version = WIN32_WINNT_ONLY; 20 20 } 21 - 21 +*/ 22 22 public import win32.lmcons; 23 23 public import win32.lmaccess; 24 24 public import win32.lmalert; 25 25 public import win32.lmat; 26 26 public import win32.lmerr; 27 27 public import win32.lmshare; 28 28 public import win32.lmapibuf; 29 29 public import win32.lmremutl; 30 30 public import win32.lmrepl; 31 31 public import win32.lmuse; 32 32 public import win32.lmstats; 33 +public import win32.lmwksta; 34 +public import win32.lmserver; 33 35 34 -version (WIN32_WINNT_ONLY) { 35 - public import win32.lmwksta; 36 - public import win32.lmserver; 37 -} 38 -version (WindowsVista) { 39 - public import win32.lmmsg; 40 -} else version (Windows2003) { 41 - public import win32.lmmsg; 42 -} else version (WindowsXP) { 36 +version (Windows2000) { 37 +} else { 43 38 public import win32.lmmsg; 44 39 } 45 40 46 41 // FIXME: Everything in these next files seems to be deprecated! 47 42 import win32.lmaudit; 48 43 import win32.lmchdev; // can't find many docs for functions from this file. 49 44 import win32.lmconfig; 50 45 import win32.lmerrlog; 51 46 import win32.lmsvc; 52 47 import win32.lmsname; // in MinGW, this was publicly included by lm.lmsvc

Modified src/win32/lmaccess.d from [eb215384d5061fbb] to [41a90d8230b33423].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.lmaccess; 11 -pragma(lib, "netapi32.lib"); 11 +pragma(lib, "netapi32"); 12 12 13 13 /** 14 14 Changes relative to MinGW: 15 15 USER_POSIX_ID_PARMNUM and GROUP_POSIX_ID_PARMNUM aren't in MinGW or in 16 16 the Platform SDK docs, so they have been dropped from this file. 17 17 */ 18 18 ................................................................................ 347 347 LPWSTR usri20_comment; 348 348 DWORD usri20_flags; 349 349 DWORD usri20_user_id; 350 350 } 351 351 alias USER_INFO_20* PUSER_INFO_20, LPUSER_INFO_20; 352 352 353 353 struct USER_INFO_21 { 354 - BYTE usri21_password[ENCRYPTED_PWLEN]; 354 + BYTE[ENCRYPTED_PWLEN] usri21_password; 355 355 } 356 356 alias USER_INFO_21* PUSER_INFO_21, LPUSER_INFO_21; 357 357 358 358 struct USER_INFO_22{ 359 359 LPWSTR usri22_name; 360 - BYTE usri22_password[ENCRYPTED_PWLEN]; 360 + BYTE[ENCRYPTED_PWLEN] usri22_password; 361 361 DWORD usri22_password_age; 362 362 DWORD usri22_priv; 363 363 LPWSTR usri22_home_dir; 364 364 LPWSTR usri22_comment; 365 365 DWORD usri22_flags; 366 366 LPWSTR usri22_script_path; 367 367 DWORD usri22_auth_flags;

Modified src/win32/lmalert.d from [f4b497581be6267b] to [0911235d09725936].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.lmalert; 11 -pragma(lib, "netapi32.lib"); 11 +pragma(lib, "netapi32"); 12 12 13 13 private import win32.lmcons, win32.windef; 14 14 15 15 const TCHAR[] 16 16 ALERTER_MAILSLOT = `\\.\MAILSLOT\Alerter`, 17 17 ALERT_PRINT_EVENT = "PRINTING", 18 18 ALERT_MESSAGE_EVENT = "MESSAGE", ................................................................................ 42 42 DWORD alrtad_errcode; 43 43 DWORD alrtad_numstrings; 44 44 } 45 45 alias ADMIN_OTHER_INFO* PADMIN_OTHER_INFO, LPADMIN_OTHER_INFO; 46 46 47 47 struct STD_ALERT{ 48 48 DWORD alrt_timestamp; 49 - TCHAR alrt_eventname[EVLEN+1]; 50 - TCHAR alrt_servicename[SNLEN+1]; 49 + TCHAR[EVLEN+1] alrt_eventname; 50 + TCHAR[SNLEN+1] alrt_servicename; 51 51 } 52 52 alias STD_ALERT* PSTD_ALERT, LPSTD_ALERT; 53 53 54 54 struct ERRLOG_OTHER_INFO{ 55 55 DWORD alrter_errcode; 56 56 DWORD alrter_offset; 57 57 }

Modified src/win32/lmapibuf.d from [31686aa542bfe49a] to [70d972547cb509ad].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.lmapibuf; 11 -pragma(lib, "netapi32.lib"); 11 +pragma(lib, "netapi32"); 12 12 13 13 private import win32.lmcons, win32.windef; 14 14 15 15 extern (Windows) { 16 16 NET_API_STATUS NetApiBufferAllocate(DWORD, PVOID*); 17 17 NET_API_STATUS NetApiBufferFree(PVOID); 18 18 NET_API_STATUS NetApiBufferReallocate(PVOID, DWORD, PVOID*); 19 19 NET_API_STATUS NetApiBufferSize(PVOID, PDWORD); 20 20 NET_API_STATUS NetapipBufferAllocate(DWORD, PVOID*); 21 21 }

Modified src/win32/lmat.d from [0107aad9ea7103aa] to [c09edf3182df2a76].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.lmat; 11 -pragma(lib, "netapi32.lib"); 11 +pragma(lib, "netapi32"); 12 12 13 13 private import win32.lmcons, win32.windef; 14 14 15 15 const JOB_RUN_PERIODICALLY = 1; 16 16 const JOB_EXEC_ERROR = 2; 17 17 const JOB_RUNS_TODAY = 4; 18 18 const JOB_ADD_CURRENT_DATE = 8;

Modified src/win32/lmaudit.d from [9e090844a323ae50] to [7f4e7be0e795bc57].

Modified src/win32/lmbrowsr.d from [377ae4403930c8d3] to [c82b2f6939b6eb5d].

Modified src/win32/lmchdev.d from [9590df0ba50f0d83] to [9c8e92fcb5a542c6].

Modified src/win32/lmconfig.d from [b41a4ef31c37e0e3] to [c4320c24efe6d18e].

Modified src/win32/lmcons.d from [67900f73320ed9a9] to [fd0f86f97f2386d9].

Modified src/win32/lmerr.d from [5d4be2d56864693a] to [bf5ff21a511b1fcd].

Modified src/win32/lmerrlog.d from [c43e9c476d43082d] to [bf007c9ecd0ad681].

Modified src/win32/lmmsg.d from [4a6a27a65a3145c6] to [df09b120755ba58c].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.lmmsg; 11 -pragma(lib, "netapi32.lib"); 11 +pragma(lib, "netapi32"); 12 12 13 13 private import win32.lmcons, win32.windef, win32.w32api; 14 14 15 -static assert (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x501, 15 +static assert (_WIN32_WINNT >= 0x501, 16 16 "win32.lmmsg is available only if version WindowsXP, Windows2003 " 17 17 "or WindowsVista is set"); 18 18 19 19 const MSGNAME_NOT_FORWARDED = 0; 20 20 const MSGNAME_FORWARDED_TO = 4; 21 21 const MSGNAME_FORWARDED_FROM = 16; 22 22

Modified src/win32/lmremutl.d from [b30e381dc9b94de5] to [9ec7c9fbaf59e3d6].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.lmremutl; 11 -pragma(lib, "netapi32.lib"); 11 +pragma(lib, "netapi32"); 12 12 13 13 // D Conversion Note: DESC_CHAR is defined as TCHAR. 14 14 15 15 private import win32.lmcons, win32.windef; 16 16 17 17 const SUPPORTS_REMOTE_ADMIN_PROTOCOL = 2; 18 18 const SUPPORTS_RPC = 4;

Modified src/win32/lmrepl.d from [8f5e4a7a7a045062] to [91171115333dc2d6].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.lmrepl; 11 -pragma(lib, "netapi32.lib"); 11 +pragma(lib, "netapi32"); 12 12 13 13 private import win32.lmcons, win32.windef; 14 14 15 15 const REPL_ROLE_EXPORT=1; 16 16 const REPL_ROLE_IMPORT=2; 17 17 const REPL_ROLE_BOTH=3; 18 18

Modified src/win32/lmserver.d from [8d2219491fd686fa] to [c00c39f128b03b04].

Modified src/win32/lmshare.d from [ed15fe1b7afa0e8f] to [95dca8c0f3ce0fc0].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.lmshare; 11 +pragma(lib, "netapi"); 11 12 12 13 import win32.lmcons; 13 14 private import win32.w32api, win32.windef; 14 15 15 -static if (_WIN32_WINNT_ONLY) { 16 - pragma(lib, "netapi.lib"); 17 -} 18 -/* else { 19 -// only for WinME, 98, 95. 20 - pragma(lib, "svrapi.lib") 21 -} 22 -*/ 23 16 24 17 const SHARE_NETNAME_PARMNUM = 1; 25 18 const SHARE_TYPE_PARMNUM = 3; 26 19 const SHARE_REMARK_PARMNUM = 4; 27 20 const SHARE_PERMISSIONS_PARMNUM = 5; 28 21 const SHARE_MAX_USES_PARMNUM = 6; 29 22 const SHARE_CURRENT_USES_PARMNUM = 7;

Modified src/win32/lmsname.d from [1952041052a96659] to [186e667799d84961].

Modified src/win32/lmstats.d from [366f8fb859c9c947] to [0b642be89bc8d9dc].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.lmstats; 11 -pragma(lib, "netapi32.lib"); 11 +pragma(lib, "netapi32"); 12 12 13 13 private import win32.lmcons, win32.windef; 14 14 15 15 const ULONG 16 16 STATSOPT_CLR = 1, 17 17 STATS_NO_VALUE = -1, 18 18 STATS_OVERFLOW = -2;

Modified src/win32/lmsvc.d from [da38f7b5a27f01f1] to [893821ed8f5fba34].

Modified src/win32/lmuse.d from [60a0e9bf7288e4f5] to [00c58add0720686e].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.lmuse; 11 -pragma(lib, "netapi32.lib"); 11 +pragma(lib, "netapi32"); 12 12 13 13 import win32.lmuseflg; 14 14 private import win32.lmcons, win32.windef; 15 15 16 16 enum { 17 17 USE_LOCAL_PARMNUM = 1, 18 18 USE_REMOTE_PARMNUM,

Modified src/win32/lmwksta.d from [a830d940c9e9f1c6] to [ebe621a9a42758b0].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.lmwksta; 11 -pragma(lib, "netapi32.lib"); 11 +pragma(lib, "netapi32"); 12 12 13 13 import win32.lmuseflg; 14 14 private import win32.lmcons, win32.windef; 15 15 16 -pragma(lib, "Netapi32.lib"); 16 +pragma(lib, "Netapi32"); 17 17 18 18 enum { 19 19 WKSTA_COMPUTERNAME_PARMNUM = 1, 20 20 WKSTA_LANGROUP_PARMNUM, // = 2 21 21 WKSTA_VER_MAJOR_PARMNUM = 4, 22 22 WKSTA_VER_MINOR_PARMNUM, 23 23 WKSTA_LOGGED_ON_USERS_PARMNUM,

Modified src/win32/lzexpand.d from [9913c810ddc077f2] to [5dc183bdbcf57991].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.lzexpand; 11 -pragma(lib, "lz32.lib"); 11 +pragma(lib, "lz32"); 12 12 13 13 private import win32.winbase, win32.windef; 14 14 15 15 enum : LONG { 16 16 LZERROR_BADINHANDLE = -1, 17 17 LZERROR_BADOUTHANDLE = -2, 18 18 LZERROR_READ = -3,

Added src/win32/makefile version [8869c92aa8b03b7f]

1 +# Makefile for the Windows API project 2 +# Uses GNU Make-specific extensions 3 + 4 +DC := dmd.exe 5 + 6 +DFLAGS := -inline -O -release -w 7 +#DFLAGS := -debug -gc -unittest -w 8 + 9 +DFLAGS += -version=Unicode -version=WindowsVista 10 + 11 +######################################## 12 + 13 +SUBDIRS := directx 14 + 15 +EXCLUSIONS := winsock.d 16 + 17 +######################################## 18 + 19 +SOURCES := $(wildcard *.d $(addsuffix /*.d, $(SUBDIRS))) 20 +SOURCES := $(filter-out $(EXCLUSIONS), $(SOURCES)) 21 + 22 +######################################## 23 + 24 +win32.lib : $(SOURCES) 25 + $(DC) $^ -lib -of$@ $(DFLAGS) 26 + 27 +win64.lib : $(SOURCES) 28 + $(DC) $^ -lib -m64 -of$@ $(DFLAGS) 29 + 30 +clean : 31 + -del win32.lib 32 + -del win64.lib 33 + 34 +.PHONY : clean

Modified src/win32/mapi.d from [e28cc740776b0e1e] to [d8f5f739d62d3fbe].

Modified src/win32/mciavi.d from [701f04a9a8542c05] to [3c3449db5c90428d].

Modified src/win32/mcx.d from [8ace5e6be9e6286f] to [6ac9fa5193ef174e].

Modified src/win32/mgmtapi.d from [7e83f2fa4278c27c] to [7c196a667f07ade1].

Modified src/win32/mmsystem.d from [e73903b559a6e2de] to [1ee3ecea1f52ad94].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.mmsystem; 11 -pragma(lib, "winmm.lib"); 11 +pragma(lib, "winmm"); 12 12 13 13 /* The #defines MAKEFOURCC, mmioFOURCC, sndAlias are used to define 14 14 * compile-time constants, so they are implemented as templates. 15 15 */ 16 16 17 17 private import win32.w32api, win32.windef, win32.winver; 18 18 ................................................................................ 168 168 const SND_ALIAS_START=0; 169 169 170 170 template sndAlias(char c0, char c1) 171 171 { 172 172 const DWORD sndAlias = SND_ALIAS_START + c0 | (c1<<8); 173 173 } 174 174 175 -const SND_ALIAS_SYSTEMASTERISK = sndAlias!('S','*'); 176 -const SND_ALIAS_SYSTEMQUESTION = sndAlias!('S','?'); 177 -const SND_ALIAS_SYSTEMHAND = sndAlias!('S','H'); 178 -const SND_ALIAS_SYSTEMEXIT = sndAlias!('S','E'); 179 -const SND_ALIAS_SYSTEMSTART = sndAlias!('S','S'); 180 -const SND_ALIAS_SYSTEMWELCOME = sndAlias!('S','W'); 181 -const SND_ALIAS_SYSTEMEXCLAMATION = sndAlias!('S','!'); 182 -const SND_ALIAS_SYSTEMDEFAULT = sndAlias!('S','D'); 175 +const SND_ALIAS_SYSTEMASTERISK = sndAlias!('S', '*'); 176 +const SND_ALIAS_SYSTEMQUESTION = sndAlias!('S', '?'); 177 +const SND_ALIAS_SYSTEMHAND = sndAlias!('S', 'H'); 178 +const SND_ALIAS_SYSTEMEXIT = sndAlias!('S', 'E'); 179 +const SND_ALIAS_SYSTEMSTART = sndAlias!('S', 'S'); 180 +const SND_ALIAS_SYSTEMWELCOME = sndAlias!('S', 'W'); 181 +const SND_ALIAS_SYSTEMEXCLAMATION = sndAlias!('S', '!'); 182 +const SND_ALIAS_SYSTEMDEFAULT = sndAlias!('S', 'D'); 183 183 184 184 enum { 185 185 WAVERR_BADFORMAT = (WAVERR_BASE + 0), 186 186 WAVERR_STILLPLAYING, 187 187 WAVERR_UNPREPARED, 188 188 WAVERR_SYNC, // = WAVERR_BASE + 3; 189 189 WAVERR_LASTERROR = WAVERR_SYNC ................................................................................ 445 445 const TIMERR_STRUCT=(TIMERR_BASE+33); 446 446 const TIME_ONESHOT=0; 447 447 const TIME_PERIODIC=1; 448 448 const TIME_CALLBACK_FUNCTION=0; 449 449 const TIME_CALLBACK_EVENT_SET=16; 450 450 const TIME_CALLBACK_EVENT_PULSE=32; 451 451 452 -static if (WINVER >= 0x0501) { 452 +static if (_WIN32_WINNT >= 0x501) { 453 453 454 454 const TIME_KILL_SYNCHRONOUS=0x0100; 455 455 456 456 } 457 457 458 458 const JOYERR_NOERROR = 0; 459 459 const JOYERR_PARMS=(JOYERR_BASE+5); ................................................................................ 1002 1002 const MCI_OVLY_WHERE_VIDEO=0x100000; 1003 1003 1004 1004 const NEWTRANSPARENT=3; 1005 1005 const QUERYROPSUPPORT=40; 1006 1006 const SELECTDIB=41; 1007 1007 1008 1008 LONG DIBINDEX(WORD n) { 1009 - return MAKELONG(n,0x10FF); 1009 + return MAKELONG(n, 0x10FF); 1010 1010 } 1011 1011 const CAPS1=94; 1012 1012 const C1_TRANSPARENT=1; 1013 1013 1014 1014 const SEEK_SET=0; 1015 1015 const SEEK_CUR=1; 1016 1016 const SEEK_END=2; 1017 1017 1018 1018 alias DWORD MCIERROR; 1019 1019 alias UINT MCIDEVICEID; 1020 -alias UINT function (MCIDEVICEID,DWORD) YIELDPROC; 1020 +alias UINT function (MCIDEVICEID, DWORD) YIELDPROC; 1021 1021 alias UINT MMVERSION; 1022 1022 alias UINT MMRESULT; 1023 1023 1024 1024 struct MMTIME { 1025 1025 UINT wType; 1026 1026 union { 1027 1027 DWORD ms; ................................................................................ 1031 1031 struct smpte { 1032 1032 BYTE hour; 1033 1033 BYTE min; 1034 1034 BYTE sec; 1035 1035 BYTE frame; 1036 1036 BYTE fps; 1037 1037 BYTE dummy; 1038 - BYTE pad[2]; 1038 + BYTE[2] pad; 1039 1039 }; 1040 1040 struct midi { 1041 1041 DWORD songptrpos; 1042 1042 } 1043 1043 } 1044 1044 } 1045 1045 alias MMTIME* PMMTIME, LPMMTIME; 1046 1046 1047 -alias HANDLE HDRVR; 1047 +alias TypeDef!(HANDLE) HDRVR; 1048 1048 1049 1049 struct DRVCONFIGINFO { 1050 1050 DWORD dwDCISize; 1051 1051 LPCWSTR lpszDCISectionName; 1052 1052 LPCWSTR lpszDCIAliasName; 1053 1053 } 1054 1054 alias DRVCONFIGINFO * PDRVCONFIGINFO, LPDRVCONFIGINFO; ................................................................................ 1060 1060 DWORD dnDevNode; 1061 1061 } 1062 1062 alias DRVCONFIGINFOEX* PDRVCONFIGINFOEX, LPDRVCONFIGINFOEX; 1063 1063 1064 1064 extern(Windows): 1065 1065 1066 1066 /+FIXME: I couldn't find these in MSDN. 1067 -alias void function (HDRVR,UINT,DWORD,DWORD,DWORD) DRVCALLBACK; 1068 -LRESULT DRIVERPROC (DWORD,HDRVR,UINT,LPARAM,LPARAM); 1067 +alias void function (HDRVR, UINT, DWORD, DWORD, DWORD) DRVCALLBACK; 1068 +LRESULT DRIVERPROC (DWORD, HDRVR, UINT, LPARAM, LPARAM); 1069 1069 alias DRVCALLBACK* LPDRVCALLBACK, PDRVCALLBACK; 1070 1070 1071 1071 alias DRVCALLBACK WAVECALLBACK; 1072 1072 alias WAVECALLBACK* LPWAVECALLBACK; 1073 1073 1074 1074 alias DRVCALLBACK MIDICALLBACK; 1075 1075 alias MIDICALLBACK* LPMIDICALLBACK; 1076 1076 1077 1077 +/ 1078 1078 1079 -alias HANDLE HWAVE; 1080 -alias HANDLE HWAVEIN; 1081 -alias HANDLE HWAVEOUT; 1079 +alias TypeDef!(HANDLE) HWAVE; 1080 +alias TypeDef!(HANDLE) HWAVEIN; 1081 +alias TypeDef!(HANDLE) HWAVEOUT; 1082 1082 1083 1083 alias HWAVEIN* LPHWAVEIN; 1084 1084 alias HWAVEOUT* LPHWAVEOUT; 1085 1085 1086 1086 struct WAVEHDR { 1087 1087 LPSTR lpData; 1088 1088 DWORD dwBufferLength; ................................................................................ 1095 1095 } 1096 1096 alias WAVEHDR* PWAVEHDR, LPWAVEHDR; 1097 1097 1098 1098 struct WAVEOUTCAPSA { 1099 1099 WORD wMid; 1100 1100 WORD wPid; 1101 1101 MMVERSION vDriverVersion; 1102 - CHAR szPname[MAXPNAMELEN]; 1102 + CHAR[MAXPNAMELEN] szPname; 1103 1103 DWORD dwFormats; 1104 1104 WORD wChannels; 1105 1105 WORD wReserved1; 1106 1106 DWORD dwSupport; 1107 1107 } 1108 1108 alias WAVEOUTCAPSA* PWAVEOUTCAPSA, LPWAVEOUTCAPSA; 1109 1109 1110 1110 struct WAVEOUTCAPSW { 1111 1111 WORD wMid; 1112 1112 WORD wPid; 1113 1113 MMVERSION vDriverVersion; 1114 - WCHAR szPname[MAXPNAMELEN]; 1114 + WCHAR[MAXPNAMELEN] szPname; 1115 1115 DWORD dwFormats; 1116 1116 WORD wChannels; 1117 1117 WORD wReserved1; 1118 1118 DWORD dwSupport; 1119 1119 } 1120 1120 alias WAVEOUTCAPSW* PWAVEOUTCAPSW, LPWAVEOUTCAPSW; 1121 1121 1122 1122 struct WAVEINCAPSA { 1123 1123 WORD wMid; 1124 1124 WORD wPid; 1125 1125 MMVERSION vDriverVersion; 1126 - CHAR szPname[MAXPNAMELEN]; 1126 + CHAR[MAXPNAMELEN] szPname; 1127 1127 DWORD dwFormats; 1128 1128 WORD wChannels; 1129 1129 WORD wReserved1; 1130 1130 } 1131 1131 alias WAVEINCAPSA* PWAVEINCAPSA, LPWAVEINCAPSA; 1132 1132 1133 1133 struct WAVEINCAPSW { 1134 1134 WORD wMid; 1135 1135 WORD wPid; 1136 1136 MMVERSION vDriverVersion; 1137 - WCHAR szPname[MAXPNAMELEN]; 1137 + WCHAR[MAXPNAMELEN] szPname; 1138 1138 DWORD dwFormats; 1139 1139 WORD wChannels; 1140 1140 WORD wReserved1; 1141 1141 } 1142 1142 alias WAVEINCAPSW* PWAVEINCAPSW, LPWAVEINCAPSW; 1143 1143 1144 1144 struct WAVEFORMAT { ................................................................................ 1162 1162 DWORD nSamplesPerSec; 1163 1163 DWORD nAvgBytesPerSec; 1164 1164 WORD nBlockAlign; 1165 1165 WORD wBitsPerSample; 1166 1166 WORD cbSize; 1167 1167 } 1168 1168 alias WAVEFORMATEX* PWAVEFORMATEX, LPWAVEFORMATEX; 1169 -alias CPtr!(WAVEFORMATEX) LPCWAVEFORMATEX; 1169 +alias const(WAVEFORMATEX)* LPCWAVEFORMATEX; 1170 1170 1171 -alias HANDLE HMIDI; 1172 -alias HANDLE HMIDIIN; 1173 -alias HANDLE HMIDIOUT; 1174 -alias HANDLE HMIDISTRM; 1171 +alias TypeDef!(HANDLE) HMIDI; 1172 +alias TypeDef!(HANDLE) HMIDIIN; 1173 +alias TypeDef!(HANDLE) HMIDIOUT; 1174 +alias TypeDef!(HANDLE) HMIDISTRM; 1175 1175 1176 1176 alias HMIDI* LPHMIDI; 1177 1177 alias HMIDIIN* LPHMIDIIN; 1178 1178 alias HMIDIOUT* LPHMIDIOUT; 1179 1179 alias HMIDISTRM* LPHMIDISTRM; 1180 1180 1181 -alias WORD PATCHARRAY[MIDIPATCHSIZE]; 1181 +alias WORD[MIDIPATCHSIZE] PATCHARRAY; 1182 1182 alias WORD* LPPATCHARRAY; 1183 -alias WORD KEYARRAY[MIDIPATCHSIZE]; 1183 +alias WORD[MIDIPATCHSIZE] KEYARRAY; 1184 1184 alias WORD* LPKEYARRAY; 1185 1185 1186 1186 struct MIDIOUTCAPSA { 1187 1187 WORD wMid; 1188 1188 WORD wPid; 1189 1189 MMVERSION vDriverVersion; 1190 - CHAR szPname[MAXPNAMELEN]; 1190 + CHAR[MAXPNAMELEN] szPname; 1191 1191 WORD wTechnology; 1192 1192 WORD wVoices; 1193 1193 WORD wNotes; 1194 1194 WORD wChannelMask; 1195 1195 DWORD dwSupport; 1196 1196 } 1197 1197 alias MIDIOUTCAPSA* PMIDIOUTCAPSA, LPMIDIOUTCAPSA; 1198 1198 1199 1199 struct MIDIOUTCAPSW { 1200 1200 WORD wMid; 1201 1201 WORD wPid; 1202 1202 MMVERSION vDriverVersion; 1203 - WCHAR szPname[MAXPNAMELEN]; 1203 + WCHAR[MAXPNAMELEN] szPname; 1204 1204 WORD wTechnology; 1205 1205 WORD wVoices; 1206 1206 WORD wNotes; 1207 1207 WORD wChannelMask; 1208 1208 DWORD dwSupport; 1209 1209 } 1210 1210 alias MIDIOUTCAPSW* PMIDIOUTCAPSW, LPMIDIOUTCAPSW; 1211 1211 1212 1212 struct MIDIINCAPSA { 1213 1213 WORD wMid; 1214 1214 WORD wPid; 1215 1215 MMVERSION vDriverVersion; 1216 - CHAR szPname[MAXPNAMELEN]; 1216 + CHAR[MAXPNAMELEN] szPname; 1217 1217 DWORD dwSupport; 1218 1218 } 1219 1219 alias MIDIINCAPSA* PMIDIINCAPSA, LPMIDIINCAPSA; 1220 1220 1221 1221 struct MIDIINCAPSW { 1222 1222 WORD wMid; 1223 1223 WORD wPid; 1224 1224 MMVERSION vDriverVersion; 1225 - WCHAR szPname[MAXPNAMELEN]; 1225 + WCHAR[MAXPNAMELEN] szPname; 1226 1226 DWORD dwSupport; 1227 1227 } 1228 1228 alias MIDIINCAPSW* PMIDIINCAPSW, LPMIDIINCAPSW; 1229 1229 1230 1230 struct MIDIHDR { 1231 1231 LPSTR lpData; 1232 1232 DWORD dwBufferLength; 1233 1233 DWORD dwBytesRecorded; 1234 1234 DWORD dwUser; 1235 1235 DWORD dwFlags; 1236 1236 MIDIHDR *lpNext; 1237 1237 DWORD reserved; 1238 1238 DWORD dwOffset; 1239 - DWORD dwReserved[8]; 1239 + DWORD[8] dwReserved; 1240 1240 } 1241 1241 alias MIDIHDR* PMIDIHDR, LPMIDIHDR; 1242 1242 1243 1243 struct MIDIEVENT { 1244 1244 DWORD dwDeltaTime; 1245 1245 DWORD dwStreamID; 1246 1246 DWORD dwEvent; 1247 - DWORD dwParms[1]; 1247 + DWORD[1] dwParms; 1248 1248 } 1249 1249 1250 1250 struct MIDISTRMBUFFVER { 1251 1251 DWORD dwVersion; 1252 1252 DWORD dwMid; 1253 1253 DWORD dwOEMVersion; 1254 1254 } ................................................................................ 1265 1265 } 1266 1266 alias MIDIPROPTEMPO* LPMIDIPROPTEMPO; 1267 1267 1268 1268 struct AUXCAPSA { 1269 1269 WORD wMid; 1270 1270 WORD wPid; 1271 1271 MMVERSION vDriverVersion; 1272 - CHAR szPname[MAXPNAMELEN]; 1272 + CHAR[MAXPNAMELEN] szPname; 1273 1273 WORD wTechnology; 1274 1274 WORD wReserved1; 1275 1275 DWORD dwSupport; 1276 1276 } 1277 1277 alias AUXCAPSA* PAUXCAPSA, LPAUXCAPSA; 1278 1278 1279 1279 struct AUXCAPSW { 1280 1280 WORD wMid; 1281 1281 WORD wPid; 1282 1282 MMVERSION vDriverVersion; 1283 - WCHAR szPname[MAXPNAMELEN]; 1283 + WCHAR[MAXPNAMELEN] szPname; 1284 1284 WORD wTechnology; 1285 1285 WORD wReserved1; 1286 1286 DWORD dwSupport; 1287 1287 } 1288 1288 alias AUXCAPSW* PAUXCAPSW, LPAUXCAPSW; 1289 1289 1290 -alias HANDLE HMIXEROBJ; 1290 +alias TypeDef!(HANDLE) HMIXEROBJ; 1291 1291 alias HMIXEROBJ* LPHMIXEROBJ; 1292 1292 1293 -alias HANDLE HMIXER; 1293 +alias TypeDef!(HANDLE) HMIXER; 1294 1294 alias HMIXER* LPHMIXER; 1295 1295 1296 1296 struct MIXERCAPSA { 1297 1297 WORD wMid; 1298 1298 WORD wPid; 1299 1299 MMVERSION vDriverVersion; 1300 - CHAR szPname[MAXPNAMELEN]; 1300 + CHAR[MAXPNAMELEN] szPname; 1301 1301 DWORD fdwSupport; 1302 1302 DWORD cDestinations; 1303 1303 } 1304 1304 alias MIXERCAPSA* PMIXERCAPSA, LPMIXERCAPSA; 1305 1305 1306 1306 struct MIXERCAPSW { 1307 1307 WORD wMid; 1308 1308 WORD wPid; 1309 1309 MMVERSION vDriverVersion; 1310 - WCHAR szPname[MAXPNAMELEN]; 1310 + WCHAR[MAXPNAMELEN] szPname; 1311 1311 DWORD fdwSupport; 1312 1312 DWORD cDestinations; 1313 1313 } 1314 1314 alias MIXERCAPSW* PMIXERCAPSW, LPMIXERCAPSW; 1315 1315 1316 1316 struct MIXERLINEA { 1317 1317 DWORD cbStruct; ................................................................................ 1320 1320 DWORD dwLineID; 1321 1321 DWORD fdwLine; 1322 1322 DWORD dwUser; 1323 1323 DWORD dwComponentType; 1324 1324 DWORD cChannels; 1325 1325 DWORD cConnections; 1326 1326 DWORD cControls; 1327 - CHAR szShortName[MIXER_SHORT_NAME_CHARS]; 1328 - CHAR szName[MIXER_LONG_NAME_CHARS]; 1327 + CHAR[MIXER_SHORT_NAME_CHARS] szShortName; 1328 + CHAR[MIXER_LONG_NAME_CHARS] szName; 1329 1329 struct Target { 1330 1330 DWORD dwType; 1331 1331 DWORD dwDeviceID; 1332 1332 WORD wMid; 1333 1333 WORD wPid; 1334 1334 MMVERSION vDriverVersion; 1335 - CHAR szPname[MAXPNAMELEN]; 1335 + CHAR[MAXPNAMELEN] szPname; 1336 1336 } 1337 1337 } 1338 1338 alias MIXERLINEA* PMIXERLINEA, LPMIXERLINEA; 1339 1339 1340 1340 struct MIXERLINEW { 1341 1341 DWORD cbStruct; 1342 1342 DWORD dwDestination; ................................................................................ 1344 1344 DWORD dwLineID; 1345 1345 DWORD fdwLine; 1346 1346 DWORD dwUser; 1347 1347 DWORD dwComponentType; 1348 1348 DWORD cChannels; 1349 1349 DWORD cConnections; 1350 1350 DWORD cControls; 1351 - WCHAR szShortName[MIXER_SHORT_NAME_CHARS]; 1352 - WCHAR szName[MIXER_LONG_NAME_CHARS]; 1351 + WCHAR[MIXER_SHORT_NAME_CHARS] szShortName; 1352 + WCHAR[MIXER_LONG_NAME_CHARS] szName; 1353 1353 struct Target { 1354 1354 DWORD dwType; 1355 1355 DWORD dwDeviceID; 1356 1356 WORD wMid; 1357 1357 WORD wPid; 1358 1358 MMVERSION vDriverVersion; 1359 - WCHAR szPname[MAXPNAMELEN]; 1359 + WCHAR[MAXPNAMELEN] szPname; 1360 1360 } 1361 1361 } 1362 1362 alias MIXERLINEW* PMIXERLINEW, LPMIXERLINEW; 1363 1363 1364 1364 struct MIXERCONTROLA { 1365 1365 DWORD cbStruct; 1366 1366 DWORD dwControlID; 1367 1367 DWORD dwControlType; 1368 1368 DWORD fdwControl; 1369 1369 DWORD cMultipleItems; 1370 - CHAR szShortName[MIXER_SHORT_NAME_CHARS]; 1371 - CHAR szName[MIXER_LONG_NAME_CHARS]; 1370 + CHAR[MIXER_SHORT_NAME_CHARS] szShortName; 1371 + CHAR[MIXER_LONG_NAME_CHARS] szName; 1372 1372 union _Bounds { 1373 1373 struct { 1374 1374 LONG lMinimum; 1375 1375 LONG lMaximum; 1376 1376 } 1377 1377 struct { 1378 1378 DWORD dwMinimum; 1379 1379 DWORD dwMaximum; 1380 1380 } 1381 - DWORD dwReserved[6]; 1381 + DWORD[6] dwReserved; 1382 1382 } 1383 1383 _Bounds Bounds; 1384 1384 union _Metrics { 1385 1385 DWORD cSteps; 1386 1386 DWORD cbCustomData; 1387 - DWORD dwReserved[6]; 1387 + DWORD[6] dwReserved; 1388 1388 } 1389 1389 _Metrics Metrics; 1390 1390 } 1391 1391 alias MIXERCONTROLA* PMIXERCONTROLA, LPMIXERCONTROLA; 1392 1392 1393 1393 struct MIXERCONTROLW { 1394 1394 DWORD cbStruct; 1395 1395 DWORD dwControlID; 1396 1396 DWORD dwControlType; 1397 1397 DWORD fdwControl; 1398 1398 DWORD cMultipleItems; 1399 - WCHAR szShortName[MIXER_SHORT_NAME_CHARS]; 1400 - WCHAR szName[MIXER_LONG_NAME_CHARS]; 1399 + WCHAR[MIXER_SHORT_NAME_CHARS] szShortName; 1400 + WCHAR[MIXER_LONG_NAME_CHARS] szName; 1401 1401 union _Bounds { 1402 1402 struct { 1403 1403 LONG lMinimum; 1404 1404 LONG lMaximum; 1405 1405 } 1406 1406 struct { 1407 1407 DWORD dwMinimum; 1408 1408 DWORD dwMaximum; 1409 1409 } 1410 - DWORD dwReserved[6]; 1410 + DWORD[6] dwReserved; 1411 1411 } 1412 1412 _Bounds Bounds; 1413 1413 union _Metrics { 1414 1414 DWORD cSteps; 1415 1415 DWORD cbCustomData; 1416 - DWORD dwReserved[6]; 1416 + DWORD[6] dwReserved; 1417 1417 } 1418 1418 _Metrics Metrics; 1419 1419 } 1420 1420 1421 1421 alias MIXERCONTROLW* PMIXERCONTROLW, LPMIXERCONTROLW; 1422 1422 1423 1423 struct MIXERLINECONTROLSA { ................................................................................ 1458 1458 PVOID paDetails; 1459 1459 } 1460 1460 alias MIXERCONTROLDETAILS* PMIXERCONTROLDETAILS, LPMIXERCONTROLDETAILS; 1461 1461 1462 1462 struct MIXERCONTROLDETAILS_LISTTEXTA { 1463 1463 DWORD dwParam1; 1464 1464 DWORD dwParam2; 1465 - CHAR szName[MIXER_LONG_NAME_CHARS]; 1465 + CHAR[MIXER_LONG_NAME_CHARS] szName; 1466 1466 } 1467 -alias MIXERCONTROLDETAILS_LISTTEXTA* PMIXERCONTROLDETAILS_LISTTEXTA,LPMIXERCONTROLDETAILS_LISTTEXTA; 1467 +alias MIXERCONTROLDETAILS_LISTTEXTA* PMIXERCONTROLDETAILS_LISTTEXTA, LPMIXERCONTROLDETAILS_LISTTEXTA; 1468 1468 1469 1469 struct MIXERCONTROLDETAILS_LISTTEXTW { 1470 1470 DWORD dwParam1; 1471 1471 DWORD dwParam2; 1472 - WCHAR szName[MIXER_LONG_NAME_CHARS]; 1472 + WCHAR[MIXER_LONG_NAME_CHARS] szName; 1473 1473 } 1474 -alias MIXERCONTROLDETAILS_LISTTEXTW* PMIXERCONTROLDETAILS_LISTTEXTW,LPMIXERCONTROLDETAILS_LISTTEXTW; 1474 +alias MIXERCONTROLDETAILS_LISTTEXTW* PMIXERCONTROLDETAILS_LISTTEXTW, LPMIXERCONTROLDETAILS_LISTTEXTW; 1475 1475 1476 1476 struct MIXERCONTROLDETAILS_BOOLEAN { 1477 1477 LONG fValue; 1478 1478 } 1479 1479 alias MIXERCONTROLDETAILS_BOOLEAN* PMIXERCONTROLDETAILS_BOOLEAN, LPMIXERCONTROLDETAILS_BOOLEAN; 1480 1480 1481 1481 struct MIXERCONTROLDETAILS_SIGNED { ................................................................................ 1484 1484 alias MIXERCONTROLDETAILS_SIGNED* PMIXERCONTROLDETAILS_SIGNED, LPMIXERCONTROLDETAILS_SIGNED; 1485 1485 1486 1486 struct MIXERCONTROLDETAILS_UNSIGNED { 1487 1487 DWORD dwValue; 1488 1488 } 1489 1489 alias MIXERCONTROLDETAILS_UNSIGNED* PMIXERCONTROLDETAILS_UNSIGNED, LPMIXERCONTROLDETAILS_UNSIGNED; 1490 1490 1491 -alias void function (UINT,UINT,DWORD,DWORD,DWORD) LPTIMECALLBACK; 1491 +alias void function (UINT, UINT, DWORD, DWORD, DWORD) LPTIMECALLBACK; 1492 1492 1493 1493 struct TIMECAPS { 1494 1494 UINT wPeriodMin; 1495 1495 UINT wPeriodMax; 1496 1496 } 1497 1497 alias TIMECAPS* PTIMECAPS, LPTIMECAPS; 1498 1498 1499 1499 struct JOYCAPSA { 1500 1500 WORD wMid; 1501 1501 WORD wPid; 1502 - CHAR szPname[MAXPNAMELEN]; 1502 + CHAR[MAXPNAMELEN] szPname; 1503 + UINT wXmin; 1504 + UINT wXmax; 1505 + UINT wYmin; 1506 + UINT wYmax; 1507 + UINT wZmin; 1508 + UINT wZmax; 1509 + UINT wNumButtons; 1510 + UINT wPeriodMin; 1511 + UINT wPeriodMax; 1512 + UINT wRmin; 1513 + UINT wRmax; 1514 + UINT wUmin; 1515 + UINT wUmax; 1516 + UINT wVmin; 1517 + UINT wVmax; 1518 + UINT wCaps; 1519 + UINT wMaxAxes; 1520 + UINT wNumAxes; 1521 + UINT wMaxButtons; 1522 + CHAR[MAXPNAMELEN] szRegKey; 1523 + CHAR[MAX_JOYSTICKOEMVXDNAME] szOEMVxD; 1524 +} 1525 +alias JOYCAPSA* PJOYCAPSA, LPJOYCAPSA; 1526 + 1527 +struct JOYCAPSW { 1528 + WORD wMid; 1529 + WORD wPid; 1530 + WCHAR[MAXPNAMELEN] szPname; 1503 1531 UINT wXmin; 1504 1532 UINT wXmax; 1505 1533 UINT wYmin; 1506 1534 UINT wYmax; 1507 1535 UINT wZmin; 1508 1536 UINT wZmax; 1509 1537 UINT wNumButtons; ................................................................................ 1515 1543 UINT wUmax; 1516 1544 UINT wVmin; 1517 1545 UINT wVmax; 1518 1546 UINT wCaps; 1519 1547 UINT wMaxAxes; 1520 1548 UINT wNumAxes; 1521 1549 UINT wMaxButtons; 1522 - CHAR szRegKey[MAXPNAMELEN]; 1523 - CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; 1524 -} 1525 -alias JOYCAPSA* PJOYCAPSA, LPJOYCAPSA; 1526 - 1527 -struct JOYCAPSW { 1528 - WORD wMid; 1529 - WORD wPid; 1530 - WCHAR szPname[MAXPNAMELEN]; 1531 - UINT wXmin; 1532 - UINT wXmax; 1533 - UINT wYmin; 1534 - UINT wYmax; 1535 - UINT wZmin; 1536 - UINT wZmax; 1537 - UINT wNumButtons; 1538 - UINT wPeriodMin; 1539 - UINT wPeriodMax; 1540 - UINT wRmin; 1541 - UINT wRmax; 1542 - UINT wUmin; 1543 - UINT wUmax; 1544 - UINT wVmin; 1545 - UINT wVmax; 1546 - UINT wCaps; 1547 - UINT wMaxAxes; 1548 - UINT wNumAxes; 1549 - UINT wMaxButtons; 1550 - WCHAR szRegKey[MAXPNAMELEN]; 1551 - WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; 1550 + WCHAR[MAXPNAMELEN] szRegKey; 1551 + WCHAR[MAX_JOYSTICKOEMVXDNAME] szOEMVxD; 1552 1552 } 1553 1553 alias JOYCAPSW* PJOYCAPSW, LPJOYCAPSW; 1554 1554 1555 1555 struct JOYINFO { 1556 1556 UINT wXpos; 1557 1557 UINT wYpos; 1558 1558 UINT wZpos; ................................................................................ 1576 1576 DWORD dwReserved2; 1577 1577 } 1578 1578 alias JOYINFOEX* PJOYINFOEX, LPJOYINFOEX; 1579 1579 1580 1580 alias DWORD FOURCC; 1581 1581 alias char* HPSTR; 1582 1582 1583 -alias HANDLE HMMIO; 1583 +alias TypeDef!(HANDLE) HMMIO; 1584 1584 1585 -alias LRESULT function (LPSTR,UINT,LPARAM,LPARAM) LPMMIOPROC; 1585 +alias LRESULT function (LPSTR, UINT, LPARAM, LPARAM) LPMMIOPROC; 1586 1586 1587 1587 struct MMIOINFO { 1588 1588 DWORD dwFlags; 1589 1589 FOURCC fccIOProc; 1590 1590 LPMMIOPROC pIOProc; 1591 1591 UINT wErrorRet; 1592 1592 HTASK htask; ................................................................................ 1593 1593 LONG cchBuffer; 1594 1594 HPSTR pchBuffer; 1595 1595 HPSTR pchNext; 1596 1596 HPSTR pchEndRead; 1597 1597 HPSTR pchEndWrite; 1598 1598 LONG lBufOffset; 1599 1599 LONG lDiskOffset; 1600 - DWORD adwInfo[3]; 1600 + DWORD[3] adwInfo; 1601 1601 DWORD dwReserved1; 1602 1602 DWORD dwReserved2; 1603 1603 HMMIO hmmio; 1604 1604 } 1605 1605 alias MMIOINFO* PMMIOINFO, LPMMIOINFO; 1606 -alias CPtr!(MMIOINFO) LPCMMIOINFO; 1606 +alias const(MMIOINFO)* LPCMMIOINFO; 1607 1607 1608 1608 struct MMCKINFO { 1609 1609 FOURCC ckid; 1610 1610 DWORD cksize; 1611 1611 FOURCC fccType; 1612 1612 DWORD dwDataOffset; 1613 1613 DWORD dwFlags; 1614 1614 } 1615 1615 alias MMCKINFO* PMMCKINFO, LPMMCKINFO; 1616 -alias CPtr!(MMCKINFO) LPCMMCKINFO; 1616 +alias const(MMCKINFO)* LPCMMCKINFO; 1617 1617 1618 1618 struct MCI_GENERIC_PARMS { 1619 1619 DWORD dwCallback; 1620 1620 } 1621 1621 alias MCI_GENERIC_PARMS* PMCI_GENERIC_PARMS, LPMCI_GENERIC_PARMS; 1622 1622 1623 1623 struct MCI_OPEN_PARMSA { ................................................................................ 1812 1812 WORD wReserved4; 1813 1813 WORD wBitsPerSample; 1814 1814 WORD wReserved5; 1815 1815 } 1816 1816 alias MCI_WAVE_SET_PARMS* PMCI_WAVE_SET_PARMS, LPMCI_WAVE_SET_PARMS; 1817 1817 1818 1818 extern (Windows): 1819 -LRESULT CloseDriver(HDRVR,LONG,LONG); 1820 -HDRVR OpenDriver(LPCWSTR,LPCWSTR,LONG); 1821 -LRESULT SendDriverMessage(HDRVR,UINT,LONG,LONG); 1819 +LRESULT CloseDriver(HDRVR, LONG, LONG); 1820 +HDRVR OpenDriver(LPCWSTR, LPCWSTR, LONG); 1821 +LRESULT SendDriverMessage(HDRVR, UINT, LONG, LONG); 1822 1822 HMODULE DrvGetModuleHandle(HDRVR); 1823 1823 HMODULE GetDriverModuleHandle(HDRVR); 1824 -LRESULT DefDriverProc(DWORD,HDRVR,UINT,LPARAM,LPARAM); 1824 +LRESULT DefDriverProc(DWORD, HDRVR, UINT, LPARAM, LPARAM); 1825 1825 UINT mmsystemGetVersion(); 1826 1826 // FIXME: I believe this next line is a mistake 1827 1827 //alias OutputDebugString OutputDebugStr; 1828 -BOOL sndPlaySoundA(LPCSTR,UINT); 1829 -BOOL sndPlaySoundW(LPCWSTR,UINT); 1830 -BOOL PlaySoundA(LPCSTR,HMODULE,DWORD); 1831 -BOOL PlaySoundW(LPCWSTR,HMODULE,DWORD); 1828 +BOOL sndPlaySoundA(LPCSTR, UINT); 1829 +BOOL sndPlaySoundW(LPCWSTR, UINT); 1830 +BOOL PlaySoundA(LPCSTR, HMODULE, DWORD); 1831 +BOOL PlaySoundW(LPCWSTR, HMODULE, DWORD); 1832 1832 UINT waveOutGetNumDevs(); 1833 -MMRESULT waveOutGetDevCapsA(UINT,LPWAVEOUTCAPSA,UINT); 1834 -MMRESULT waveOutGetDevCapsW(UINT,LPWAVEOUTCAPSW,UINT); 1835 -MMRESULT waveOutGetVolume(HWAVEOUT,PDWORD); 1836 -MMRESULT waveOutSetVolume(HWAVEOUT,DWORD); 1837 -MMRESULT waveOutGetErrorTextA(MMRESULT,LPSTR,UINT); 1838 -MMRESULT waveOutGetErrorTextW(MMRESULT,LPWSTR,UINT); 1839 -MMRESULT waveOutOpen(LPHWAVEOUT,UINT,LPCWAVEFORMATEX,DWORD,DWORD,DWORD); 1833 +MMRESULT waveOutGetDevCapsA(UINT, LPWAVEOUTCAPSA, UINT); 1834 +MMRESULT waveOutGetDevCapsW(UINT, LPWAVEOUTCAPSW, UINT); 1835 +MMRESULT waveOutGetVolume(HWAVEOUT, PDWORD); 1836 +MMRESULT waveOutSetVolume(HWAVEOUT, DWORD); 1837 +MMRESULT waveOutGetErrorTextA(MMRESULT, LPSTR, UINT); 1838 +MMRESULT waveOutGetErrorTextW(MMRESULT, LPWSTR, UINT); 1839 +MMRESULT waveOutOpen(LPHWAVEOUT, UINT, LPCWAVEFORMATEX, DWORD, DWORD, DWORD); 1840 1840 MMRESULT waveOutClose(HWAVEOUT); 1841 -MMRESULT waveOutPrepareHeader(HWAVEOUT,LPWAVEHDR,UINT); 1842 -MMRESULT waveOutUnprepareHeader(HWAVEOUT,LPWAVEHDR,UINT); 1843 -MMRESULT waveOutWrite(HWAVEOUT,LPWAVEHDR,UINT); 1841 +MMRESULT waveOutPrepareHeader(HWAVEOUT, LPWAVEHDR, UINT); 1842 +MMRESULT waveOutUnprepareHeader(HWAVEOUT, LPWAVEHDR, UINT); 1843 +MMRESULT waveOutWrite(HWAVEOUT, LPWAVEHDR, UINT); 1844 1844 MMRESULT waveOutPause(HWAVEOUT); 1845 1845 MMRESULT waveOutRestart(HWAVEOUT); 1846 1846 MMRESULT waveOutReset(HWAVEOUT); 1847 1847 MMRESULT waveOutBreakLoop(HWAVEOUT); 1848 -MMRESULT waveOutGetPosition(HWAVEOUT,LPMMTIME,UINT); 1849 -MMRESULT waveOutGetPitch(HWAVEOUT,PDWORD); 1850 -MMRESULT waveOutSetPitch(HWAVEOUT,DWORD); 1851 -MMRESULT waveOutGetPlaybackRate(HWAVEOUT,PDWORD); 1852 -MMRESULT waveOutSetPlaybackRate(HWAVEOUT,DWORD); 1853 -MMRESULT waveOutGetID(HWAVEOUT,LPUINT); 1854 -MMRESULT waveOutMessage(HWAVEOUT,UINT,DWORD,DWORD); 1848 +MMRESULT waveOutGetPosition(HWAVEOUT, LPMMTIME, UINT); 1849 +MMRESULT waveOutGetPitch(HWAVEOUT, PDWORD); 1850 +MMRESULT waveOutSetPitch(HWAVEOUT, DWORD); 1851 +MMRESULT waveOutGetPlaybackRate(HWAVEOUT, PDWORD); 1852 +MMRESULT waveOutSetPlaybackRate(HWAVEOUT, DWORD); 1853 +MMRESULT waveOutGetID(HWAVEOUT, LPUINT); 1854 +MMRESULT waveOutMessage(HWAVEOUT, UINT, DWORD, DWORD); 1855 1855 UINT waveInGetNumDevs(); 1856 -MMRESULT waveInGetDevCapsA(UINT,LPWAVEINCAPSA,UINT); 1857 -MMRESULT waveInGetDevCapsW(UINT,LPWAVEINCAPSW,UINT); 1858 -MMRESULT waveInGetErrorTextA(MMRESULT,LPSTR,UINT); 1859 -MMRESULT waveInGetErrorTextW(MMRESULT,LPWSTR,UINT); 1860 -MMRESULT waveInOpen(LPHWAVEIN,UINT,LPCWAVEFORMATEX,DWORD,DWORD,DWORD); 1856 +MMRESULT waveInGetDevCapsA(UINT, LPWAVEINCAPSA, UINT); 1857 +MMRESULT waveInGetDevCapsW(UINT, LPWAVEINCAPSW, UINT); 1858 +MMRESULT waveInGetErrorTextA(MMRESULT, LPSTR, UINT); 1859 +MMRESULT waveInGetErrorTextW(MMRESULT, LPWSTR, UINT); 1860 +MMRESULT waveInOpen(LPHWAVEIN, UINT, LPCWAVEFORMATEX, DWORD, DWORD, DWORD); 1861 1861 MMRESULT waveInClose(HWAVEIN); 1862 -MMRESULT waveInPrepareHeader(HWAVEIN,LPWAVEHDR,UINT); 1863 -MMRESULT waveInUnprepareHeader(HWAVEIN,LPWAVEHDR,UINT); 1864 -MMRESULT waveInAddBuffer(HWAVEIN,LPWAVEHDR,UINT); 1862 +MMRESULT waveInPrepareHeader(HWAVEIN, LPWAVEHDR, UINT); 1863 +MMRESULT waveInUnprepareHeader(HWAVEIN, LPWAVEHDR, UINT); 1864 +MMRESULT waveInAddBuffer(HWAVEIN, LPWAVEHDR, UINT); 1865 1865 MMRESULT waveInStart(HWAVEIN); 1866 1866 MMRESULT waveInStop(HWAVEIN); 1867 1867 MMRESULT waveInReset(HWAVEIN); 1868 -MMRESULT waveInGetPosition(HWAVEIN,LPMMTIME,UINT); 1869 -MMRESULT waveInGetID(HWAVEIN,LPUINT); 1870 -MMRESULT waveInMessage(HWAVEIN,UINT,DWORD,DWORD); 1868 +MMRESULT waveInGetPosition(HWAVEIN, LPMMTIME, UINT); 1869 +MMRESULT waveInGetID(HWAVEIN, LPUINT); 1870 +MMRESULT waveInMessage(HWAVEIN, UINT, DWORD, DWORD); 1871 1871 UINT midiOutGetNumDevs(); 1872 -MMRESULT midiStreamOpen(LPHMIDISTRM,LPUINT,DWORD,DWORD,DWORD,DWORD); 1872 +MMRESULT midiStreamOpen(LPHMIDISTRM, LPUINT, DWORD, DWORD, DWORD, DWORD); 1873 1873 MMRESULT midiStreamClose(HMIDISTRM); 1874 -MMRESULT midiStreamProperty(HMIDISTRM,LPBYTE,DWORD); 1875 -MMRESULT midiStreamPosition(HMIDISTRM,LPMMTIME,UINT); 1876 -MMRESULT midiStreamOut(HMIDISTRM,LPMIDIHDR,UINT); 1874 +MMRESULT midiStreamProperty(HMIDISTRM, LPBYTE, DWORD); 1875 +MMRESULT midiStreamPosition(HMIDISTRM, LPMMTIME, UINT); 1876 +MMRESULT midiStreamOut(HMIDISTRM, LPMIDIHDR, UINT); 1877 1877 MMRESULT midiStreamPause(HMIDISTRM); 1878 1878 MMRESULT midiStreamRestart(HMIDISTRM); 1879 1879 MMRESULT midiStreamStop(HMIDISTRM); 1880 -MMRESULT midiConnect(HMIDI,HMIDIOUT,PVOID); 1881 -MMRESULT midiDisconnect(HMIDI,HMIDIOUT,PVOID); 1882 -MMRESULT midiOutGetDevCapsA(UINT,LPMIDIOUTCAPSA,UINT); 1883 -MMRESULT midiOutGetDevCapsW(UINT,LPMIDIOUTCAPSW,UINT); 1884 -MMRESULT midiOutGetVolume(HMIDIOUT,PDWORD); 1885 -MMRESULT midiOutSetVolume(HMIDIOUT,DWORD); 1886 -MMRESULT midiOutGetErrorTextA(MMRESULT,LPSTR,UINT); 1887 -MMRESULT midiOutGetErrorTextW(MMRESULT,LPWSTR,UINT); 1888 -MMRESULT midiOutOpen(LPHMIDIOUT,UINT,DWORD,DWORD,DWORD); 1880 +MMRESULT midiConnect(HMIDI, HMIDIOUT, PVOID); 1881 +MMRESULT midiDisconnect(HMIDI, HMIDIOUT, PVOID); 1882 +MMRESULT midiOutGetDevCapsA(UINT, LPMIDIOUTCAPSA, UINT); 1883 +MMRESULT midiOutGetDevCapsW(UINT, LPMIDIOUTCAPSW, UINT); 1884 +MMRESULT midiOutGetVolume(HMIDIOUT, PDWORD); 1885 +MMRESULT midiOutSetVolume(HMIDIOUT, DWORD); 1886 +MMRESULT midiOutGetErrorTextA(MMRESULT, LPSTR, UINT); 1887 +MMRESULT midiOutGetErrorTextW(MMRESULT, LPWSTR, UINT); 1888 +MMRESULT midiOutOpen(LPHMIDIOUT, UINT, DWORD, DWORD, DWORD); 1889 1889 MMRESULT midiOutClose(HMIDIOUT); 1890 -MMRESULT midiOutPrepareHeader(HMIDIOUT,LPMIDIHDR,UINT); 1891 -MMRESULT midiOutUnprepareHeader(HMIDIOUT,LPMIDIHDR,UINT); 1892 -MMRESULT midiOutShortMsg(HMIDIOUT,DWORD); 1893 -MMRESULT midiOutLongMsg(HMIDIOUT,LPMIDIHDR,UINT); 1890 +MMRESULT midiOutPrepareHeader(HMIDIOUT, LPMIDIHDR, UINT); 1891 +MMRESULT midiOutUnprepareHeader(HMIDIOUT, LPMIDIHDR, UINT); 1892 +MMRESULT midiOutShortMsg(HMIDIOUT, DWORD); 1893 +MMRESULT midiOutLongMsg(HMIDIOUT, LPMIDIHDR, UINT); 1894 1894 MMRESULT midiOutReset(HMIDIOUT); 1895 -MMRESULT midiOutCachePatches(HMIDIOUT,UINT,LPWORD,UINT); 1896 -MMRESULT midiOutCacheDrumPatches(HMIDIOUT,UINT,LPWORD,UINT); 1897 -MMRESULT midiOutGetID(HMIDIOUT,LPUINT); 1898 -MMRESULT midiOutMessage(HMIDIOUT,UINT,DWORD,DWORD); 1895 +MMRESULT midiOutCachePatches(HMIDIOUT, UINT, LPWORD, UINT); 1896 +MMRESULT midiOutCacheDrumPatches(HMIDIOUT, UINT, LPWORD, UINT); 1897 +MMRESULT midiOutGetID(HMIDIOUT, LPUINT); 1898 +MMRESULT midiOutMessage(HMIDIOUT, UINT, DWORD, DWORD); 1899 1899 UINT midiInGetNumDevs(); 1900 -MMRESULT midiInGetDevCapsA(UINT,LPMIDIINCAPSA,UINT); 1901 -MMRESULT midiInGetDevCapsW(UINT,LPMIDIINCAPSW,UINT); 1902 -MMRESULT midiInGetErrorTextA(MMRESULT,LPSTR,UINT); 1903 -MMRESULT midiInGetErrorTextW(MMRESULT,LPWSTR,UINT); 1904 -MMRESULT midiInOpen(LPHMIDIIN,UINT,DWORD,DWORD,DWORD); 1900 +MMRESULT midiInGetDevCapsA(UINT, LPMIDIINCAPSA, UINT); 1901 +MMRESULT midiInGetDevCapsW(UINT, LPMIDIINCAPSW, UINT); 1902 +MMRESULT midiInGetErrorTextA(MMRESULT, LPSTR, UINT); 1903 +MMRESULT midiInGetErrorTextW(MMRESULT, LPWSTR, UINT); 1904 +MMRESULT midiInOpen(LPHMIDIIN, UINT, DWORD, DWORD, DWORD); 1905 1905 MMRESULT midiInClose(HMIDIIN); 1906 -MMRESULT midiInPrepareHeader(HMIDIIN,LPMIDIHDR,UINT); 1907 -MMRESULT midiInUnprepareHeader(HMIDIIN,LPMIDIHDR,UINT); 1908 -MMRESULT midiInAddBuffer(HMIDIIN,LPMIDIHDR,UINT); 1906 +MMRESULT midiInPrepareHeader(HMIDIIN, LPMIDIHDR, UINT); 1907 +MMRESULT midiInUnprepareHeader(HMIDIIN, LPMIDIHDR, UINT); 1908 +MMRESULT midiInAddBuffer(HMIDIIN, LPMIDIHDR, UINT); 1909 1909 MMRESULT midiInStart(HMIDIIN); 1910 1910 MMRESULT midiInStop(HMIDIIN); 1911 1911 MMRESULT midiInReset(HMIDIIN); 1912 -MMRESULT midiInGetID(HMIDIIN,LPUINT); 1913 -MMRESULT midiInMessage(HMIDIIN,UINT,DWORD,DWORD); 1912 +MMRESULT midiInGetID(HMIDIIN, LPUINT); 1913 +MMRESULT midiInMessage(HMIDIIN, UINT, DWORD, DWORD); 1914 1914 UINT auxGetNumDevs(); 1915 -MMRESULT auxGetDevCapsA(UINT,LPAUXCAPSA,UINT); 1916 -MMRESULT auxGetDevCapsW(UINT,LPAUXCAPSW,UINT); 1917 -MMRESULT auxSetVolume(UINT,DWORD); 1918 -MMRESULT auxGetVolume(UINT,PDWORD); 1919 -MMRESULT auxOutMessage(UINT,UINT,DWORD,DWORD); 1915 +MMRESULT auxGetDevCapsA(UINT, LPAUXCAPSA, UINT); 1916 +MMRESULT auxGetDevCapsW(UINT, LPAUXCAPSW, UINT); 1917 +MMRESULT auxSetVolume(UINT, DWORD); 1918 +MMRESULT auxGetVolume(UINT, PDWORD); 1919 +MMRESULT auxOutMessage(UINT, UINT, DWORD, DWORD); 1920 1920 UINT mixerGetNumDevs(); 1921 -MMRESULT mixerGetDevCapsA(UINT,LPMIXERCAPSA,UINT); 1922 -MMRESULT mixerGetDevCapsW(UINT,LPMIXERCAPSW,UINT); 1923 -MMRESULT mixerOpen(LPHMIXER,UINT,DWORD,DWORD,DWORD); 1921 +MMRESULT mixerGetDevCapsA(UINT, LPMIXERCAPSA, UINT); 1922 +MMRESULT mixerGetDevCapsW(UINT, LPMIXERCAPSW, UINT); 1923 +MMRESULT mixerOpen(LPHMIXER, UINT, DWORD, DWORD, DWORD); 1924 1924 MMRESULT mixerClose(HMIXER); 1925 -DWORD mixerMessage(HMIXER,UINT,DWORD,DWORD); 1926 -MMRESULT mixerGetLineInfoA(HMIXEROBJ,LPMIXERLINEA,DWORD); 1927 -MMRESULT mixerGetLineInfoW(HMIXEROBJ,LPMIXERLINEW,DWORD); 1928 -MMRESULT mixerGetID(HMIXEROBJ,PUINT,DWORD); 1929 -MMRESULT mixerGetLineControlsA(HMIXEROBJ,LPMIXERLINECONTROLSA,DWORD); 1930 -MMRESULT mixerGetLineControlsW(HMIXEROBJ,LPMIXERLINECONTROLSW,DWORD); 1931 -MMRESULT mixerGetControlDetailsA(HMIXEROBJ,LPMIXERCONTROLDETAILS,DWORD); 1932 -MMRESULT mixerGetControlDetailsW(HMIXEROBJ,LPMIXERCONTROLDETAILS,DWORD); 1933 -MMRESULT mixerSetControlDetails(HMIXEROBJ,LPMIXERCONTROLDETAILS,DWORD); 1934 -MMRESULT timeGetSystemTime(LPMMTIME,UINT); 1925 +DWORD mixerMessage(HMIXER, UINT, DWORD, DWORD); 1926 +MMRESULT mixerGetLineInfoA(HMIXEROBJ, LPMIXERLINEA, DWORD); 1927 +MMRESULT mixerGetLineInfoW(HMIXEROBJ, LPMIXERLINEW, DWORD); 1928 +MMRESULT mixerGetID(HMIXEROBJ, PUINT, DWORD); 1929 +MMRESULT mixerGetLineControlsA(HMIXEROBJ, LPMIXERLINECONTROLSA, DWORD); 1930 +MMRESULT mixerGetLineControlsW(HMIXEROBJ, LPMIXERLINECONTROLSW, DWORD); 1931 +MMRESULT mixerGetControlDetailsA(HMIXEROBJ, LPMIXERCONTROLDETAILS, DWORD); 1932 +MMRESULT mixerGetControlDetailsW(HMIXEROBJ, LPMIXERCONTROLDETAILS, DWORD); 1933 +MMRESULT mixerSetControlDetails(HMIXEROBJ, LPMIXERCONTROLDETAILS, DWORD); 1934 +MMRESULT timeGetSystemTime(LPMMTIME, UINT); 1935 1935 DWORD timeGetTime(); 1936 -MMRESULT timeSetEvent(UINT,UINT,LPTIMECALLBACK,DWORD,UINT); 1936 +MMRESULT timeSetEvent(UINT, UINT, LPTIMECALLBACK, DWORD, UINT); 1937 1937 MMRESULT timeKillEvent(UINT); 1938 -MMRESULT timeGetDevCaps(LPTIMECAPS,UINT); 1938 +MMRESULT timeGetDevCaps(LPTIMECAPS, UINT); 1939 1939 MMRESULT timeBeginPeriod(UINT); 1940 1940 MMRESULT timeEndPeriod(UINT); 1941 1941 UINT joyGetNumDevs(); 1942 -MMRESULT joyGetDevCapsA(UINT,LPJOYCAPSA,UINT); 1943 -MMRESULT joyGetDevCapsW(UINT,LPJOYCAPSW,UINT); 1944 -MMRESULT joyGetPos(UINT,LPJOYINFO); 1945 -MMRESULT joyGetPosEx(UINT,LPJOYINFOEX); 1946 -MMRESULT joyGetThreshold(UINT,LPUINT); 1942 +MMRESULT joyGetDevCapsA(UINT, LPJOYCAPSA, UINT); 1943 +MMRESULT joyGetDevCapsW(UINT, LPJOYCAPSW, UINT); 1944 +MMRESULT joyGetPos(UINT, LPJOYINFO); 1945 +MMRESULT joyGetPosEx(UINT, LPJOYINFOEX); 1946 +MMRESULT joyGetThreshold(UINT, LPUINT); 1947 1947 MMRESULT joyReleaseCapture(UINT); 1948 -MMRESULT joySetCapture(HWND,UINT,UINT,BOOL); 1949 -MMRESULT joySetThreshold(UINT,UINT); 1950 -FOURCC mmioStringToFOURCCA(LPCSTR,UINT); 1951 -FOURCC mmioStringToFOURCCW(LPCWSTR,UINT); 1952 -LPMMIOPROC mmioInstallIOProcA(FOURCC,LPMMIOPROC,DWORD); 1953 -LPMMIOPROC mmioInstallIOProcW(FOURCC,LPMMIOPROC,DWORD); 1954 -HMMIO mmioOpenA(LPSTR,LPMMIOINFO,DWORD); 1955 -HMMIO mmioOpenW(LPWSTR,LPMMIOINFO,DWORD); 1956 -MMRESULT mmioRenameA(LPCSTR,LPCSTR,LPCMMIOINFO,DWORD); 1957 -MMRESULT mmioRenameW(LPCWSTR,LPCWSTR,LPCMMIOINFO,DWORD); 1958 -MMRESULT mmioClose(HMMIO,UINT); 1959 -LONG mmioRead(HMMIO,HPSTR,LONG); 1960 -LONG mmioWrite(HMMIO,LPCSTR,LONG); 1961 -LONG mmioSeek(HMMIO,LONG,int); 1962 -MMRESULT mmioGetInfo(HMMIO,LPMMIOINFO,UINT); 1963 -MMRESULT mmioSetInfo(HMMIO,LPCMMIOINFO,UINT); 1964 -MMRESULT mmioSetBuffer(HMMIO,LPSTR,LONG,UINT); 1965 -MMRESULT mmioFlush(HMMIO,UINT); 1966 -MMRESULT mmioAdvance(HMMIO,LPMMIOINFO,UINT); 1967 -LRESULT mmioSendMessage(HMMIO,UINT,LPARAM,LPARAM); 1968 -MMRESULT mmioDescend(HMMIO,LPMMCKINFO, CPtr!(MMCKINFO),UINT); 1969 -MMRESULT mmioAscend(HMMIO,LPMMCKINFO,UINT); 1970 -MMRESULT mmioCreateChunk(HMMIO,LPMMCKINFO,UINT); 1971 -MCIERROR mciSendCommandA(MCIDEVICEID,UINT,DWORD,DWORD); 1972 -MCIERROR mciSendCommandW(MCIDEVICEID,UINT,DWORD,DWORD); 1973 -MCIERROR mciSendStringA(LPCSTR,LPSTR,UINT,HWND); 1974 -MCIERROR mciSendStringW(LPCWSTR,LPWSTR,UINT,HWND); 1948 +MMRESULT joySetCapture(HWND, UINT, UINT, BOOL); 1949 +MMRESULT joySetThreshold(UINT, UINT); 1950 +FOURCC mmioStringToFOURCCA(LPCSTR, UINT); 1951 +FOURCC mmioStringToFOURCCW(LPCWSTR, UINT); 1952 +LPMMIOPROC mmioInstallIOProcA(FOURCC, LPMMIOPROC, DWORD); 1953 +LPMMIOPROC mmioInstallIOProcW(FOURCC, LPMMIOPROC, DWORD); 1954 +HMMIO mmioOpenA(LPSTR, LPMMIOINFO, DWORD); 1955 +HMMIO mmioOpenW(LPWSTR, LPMMIOINFO, DWORD); 1956 +MMRESULT mmioRenameA(LPCSTR, LPCSTR, LPCMMIOINFO, DWORD); 1957 +MMRESULT mmioRenameW(LPCWSTR, LPCWSTR, LPCMMIOINFO, DWORD); 1958 +MMRESULT mmioClose(HMMIO, UINT); 1959 +LONG mmioRead(HMMIO, HPSTR, LONG); 1960 +LONG mmioWrite(HMMIO, LPCSTR, LONG); 1961 +LONG mmioSeek(HMMIO, LONG, int); 1962 +MMRESULT mmioGetInfo(HMMIO, LPMMIOINFO, UINT); 1963 +MMRESULT mmioSetInfo(HMMIO, LPCMMIOINFO, UINT); 1964 +MMRESULT mmioSetBuffer(HMMIO, LPSTR, LONG, UINT); 1965 +MMRESULT mmioFlush(HMMIO, UINT); 1966 +MMRESULT mmioAdvance(HMMIO, LPMMIOINFO, UINT); 1967 +LRESULT mmioSendMessage(HMMIO, UINT, LPARAM, LPARAM); 1968 +MMRESULT mmioDescend(HMMIO, LPMMCKINFO, const(MMCKINFO)*, UINT); 1969 +MMRESULT mmioAscend(HMMIO, LPMMCKINFO, UINT); 1970 +MMRESULT mmioCreateChunk(HMMIO, LPMMCKINFO, UINT); 1971 +MCIERROR mciSendCommandA(MCIDEVICEID, UINT, DWORD, DWORD); 1972 +MCIERROR mciSendCommandW(MCIDEVICEID, UINT, DWORD, DWORD); 1973 +MCIERROR mciSendStringA(LPCSTR, LPSTR, UINT, HWND); 1974 +MCIERROR mciSendStringW(LPCWSTR, LPWSTR, UINT, HWND); 1975 1975 MCIDEVICEID mciGetDeviceIDA(LPCSTR); 1976 1976 MCIDEVICEID mciGetDeviceIDW(LPCWSTR); 1977 -MCIDEVICEID mciGetDeviceIDFromElementIDA(DWORD,LPCSTR); 1978 -MCIDEVICEID mciGetDeviceIDFromElementIDW(DWORD,LPCWSTR); 1979 -BOOL mciGetErrorStringA(MCIERROR,LPSTR,UINT); 1980 -BOOL mciGetErrorStringW(MCIERROR,LPWSTR,UINT); 1981 -BOOL mciSetYieldProc(MCIDEVICEID,YIELDPROC,DWORD); 1977 +MCIDEVICEID mciGetDeviceIDFromElementIDA(DWORD, LPCSTR); 1978 +MCIDEVICEID mciGetDeviceIDFromElementIDW(DWORD, LPCWSTR); 1979 +BOOL mciGetErrorStringA(MCIERROR, LPSTR, UINT); 1980 +BOOL mciGetErrorStringW(MCIERROR, LPWSTR, UINT); 1981 +BOOL mciSetYieldProc(MCIDEVICEID, YIELDPROC, DWORD); 1982 1982 HTASK mciGetCreatorTask(MCIDEVICEID); 1983 -YIELDPROC mciGetYieldProc(MCIDEVICEID,PDWORD); 1983 +YIELDPROC mciGetYieldProc(MCIDEVICEID, PDWORD); 1984 1984 1985 1985 struct MCI_SEQ_SET_PARMS { 1986 1986 DWORD dwCallback; 1987 1987 DWORD dwTimeFormat; 1988 1988 DWORD dwAudio; 1989 1989 DWORD dwTempo; 1990 1990 DWORD dwPort;

Modified src/win32/msacm.d from [0c3b20b2cde333d2] to [7ba0b5397a09dc08].

8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.msacm; 12 12 13 13 private import win32.basetsd, win32.mmsystem, win32.windef; 14 14 15 -alias HANDLE HACMDRIVERID, HACMDRIVER; 16 -alias HANDLE* LPHACMDRIVER; 15 +mixin DECLARE_HANDLE!("HACMDRIVERID"); 16 +mixin DECLARE_HANDLE!("HACMDRIVER"); 17 +alias HACMDRIVER* LPHACMDRIVER; 17 18 18 19 /* Comment from MinGW 19 20 found through experimentation 20 21 */ 21 22 const size_t 22 23 ACMDRIVERDETAILS_SHORTNAME_CHARS = 32, 23 24 ACMDRIVERDETAILS_LONGNAME_CHARS = 128,

Modified src/win32/mshtml.d from [de9e44bc4f323794] to [5fd93115adea9942].

471 471 HRESULT put_noResize(VARIANT_BOOL); 472 472 HRESULT get_noResize(VARIANT_BOOL*); 473 473 HRESULT put_scrolling(BSTR); 474 474 HRESULT get_scrolling(BSTR*); 475 475 } 476 476 477 477 interface IHTMLFrameBase2 : IDispatch { 478 - HRESULT get_contentWindow(IHTMLWindow2 *); 478 + HRESULT get_contentWindow(IHTMLWindow2*); 479 479 HRESULT put_onload(VARIANT); 480 480 HRESULT get_onload(VARIANT*); 481 481 HRESULT put_onreadystatechange(VARIANT); 482 482 HRESULT get_onreadystatechange(VARIANT*); 483 483 HRESULT get_readyState(BSTR*); 484 484 HRESULT put_allowTransparency(VARIANT_BOOL); 485 485 HRESULT get_allowTransparency(VARIANT_BOOL*);

Modified src/win32/mswsock.d from [9e582cf95c9e24a6] to [2000809206e7e4e6].

22 22 // line; otherwise, default to Winsock2. 23 23 version (Win32_Winsock1) { 24 24 import win32.winsock; 25 25 } else { 26 26 import win32.winsock2; 27 27 } 28 28 29 -static if (_WIN32_WINNT_ONLY) { 30 - static if (_WIN32_WINNT >= 0x500) { 31 - enum { 32 - /* WinNT5+: 33 - ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/socket_options.htm */ 34 - SO_MAXDG = 0x7009, 35 - SO_MAXPATHDG = 0x700A, 36 - } 29 +static if (_WIN32_WINNT >= 0x500) { 30 + enum { 31 + /* WinNT5+: 32 + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/socket_options.htm */ 33 + SO_MAXDG = 0x7009, 34 + SO_MAXPATHDG = 0x700A, 37 35 } 36 +} 38 37 39 - enum { 40 - /* WinNT4+: 41 - ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/socket_options_for_windows_nt_4_0_2.htm */ 42 - SO_CONNDATA = 0x7000, 43 - SO_CONNOPT = 0x7001, 44 - SO_DISCDATA = 0x7002, 45 - SO_DISCOPT = 0x7003, 46 - SO_CONNDATALEN = 0x7004, 47 - SO_CONNOPTLEN = 0x7005, 48 - SO_DISCDATALEN = 0x7006, 49 - SO_DISCOPTLEN = 0x7007, 38 +enum { 39 + /* WinNT4+: 40 + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/socket_options_for_windows_nt_4_0_2.htm */ 41 + SO_CONNDATA = 0x7000, 42 + SO_CONNOPT = 0x7001, 43 + SO_DISCDATA = 0x7002, 44 + SO_DISCOPT = 0x7003, 45 + SO_CONNDATALEN = 0x7004, 46 + SO_CONNOPTLEN = 0x7005, 47 + SO_DISCDATALEN = 0x7006, 48 + SO_DISCOPTLEN = 0x7007, 50 49 51 - /* WinNT4: 52 - ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/socket_options.htm */ 53 - SO_UPDATE_ACCEPT_CONTENT = 0x700B, 54 - } 50 + /* WinNT4: 51 + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/socket_options.htm */ 52 + SO_UPDATE_ACCEPT_CONTENT = 0x700B, 55 53 } 56 54 57 55 enum { 58 56 /* Win95+, WinNT4+ but apparently shouldn't used: mark as deprecated? 59 57 ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/socket_options.htm */ 60 58 SO_OPENTYPE = 0x7008, 61 59 ................................................................................ 67 65 68 66 /* Win95: 69 67 ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/socket_options.htm */ 70 68 SO_CONNECT_TIME = 0x700C, 71 69 } 72 70 73 71 74 -static if (_WIN32_WINNT_ONLY) { 75 - enum { 76 - TCP_BSDURGENT = 0x7000, 77 - } 72 +enum { 73 + TCP_BSDURGENT = 0x7000, 74 +} 78 75 79 - /* These *appear* to be constants for passing to the TransmitFile / 80 - TransmitPackets functions, which are available in WinNT3.51+ 81 - ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/transmitfile_2.htm */ 82 - enum { 83 - TF_DISCONNECT = 1, 84 - TF_REUSE_SOCKET = 2, 85 - TF_WRITE_BEHIND = 4, 86 - TF_USE_DEFAULT_WORKER = 0, 87 - TF_USE_SYSTEM_THREAD = 16, 88 - TF_USE_KERNEL_APC = 32 89 - } 76 +/* These *appear* to be constants for passing to the TransmitFile / 77 + TransmitPackets functions, which are available in WinNT3.51+ 78 + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/transmitfile_2.htm */ 79 +enum { 80 + TF_DISCONNECT = 1, 81 + TF_REUSE_SOCKET = 2, 82 + TF_WRITE_BEHIND = 4, 83 + TF_USE_DEFAULT_WORKER = 0, 84 + TF_USE_SYSTEM_THREAD = 16, 85 + TF_USE_KERNEL_APC = 32 90 86 } 91 87 92 88 /* Win95+, WinNT3.51+ 93 89 ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/transmit_file_buffers_2.htm */ 94 90 struct TRANSMIT_FILE_BUFFERS { 95 91 PVOID Head; 96 92 DWORD HeadLength; ................................................................................ 104 100 ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/wsarecvex_2.htm */ 105 101 int WSARecvEx(SOCKET, char*, int, int*); 106 102 107 103 /* Win95+, WinNT3.51+ 108 104 ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/getacceptexSOCKADDRs_2.htm */ 109 105 VOID GetAcceptExSockaddrs(PVOID, DWORD, DWORD, DWORD, SOCKADDR**, LPINT, SOCKADDR**, LPINT); 110 106 111 - static if (_WIN32_WINNT_ONLY) { 112 - /* WinNT3.51+ 113 - ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/transmitfile_2.htm */ 114 - BOOL TransmitFile(SOCKET, HANDLE, DWORD, DWORD, LPOVERLAPPED, LPTRANSMIT_FILE_BUFFERS, DWORD); 107 + /* WinNT3.51+ 108 + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/transmitfile_2.htm */ 109 + BOOL TransmitFile(SOCKET, HANDLE, DWORD, DWORD, LPOVERLAPPED, LPTRANSMIT_FILE_BUFFERS, DWORD); 115 110 116 - /* WinNT3.51+ 117 - ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/acceptex_2.htm */ 118 - alias BOOL function(SOCKET, SOCKET, PVOID, DWORD, DWORD, DWORD, LPDWORD, LPOVERLAPPED) LPFN_ACCEPTEX; 119 - const GUID WSAID_ACCEPTEX = {0xb5367df1,0xcbac,0x11cf,[0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92]}; 111 + /* WinNT3.51+ 112 + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/acceptex_2.htm */ 113 + alias BOOL function(SOCKET, SOCKET, PVOID, DWORD, DWORD, DWORD, LPDWORD, LPOVERLAPPED) LPFN_ACCEPTEX; 114 + const GUID WSAID_ACCEPTEX = {0xb5367df1,0xcbac,0x11cf,[0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92]}; 120 115 121 - alias BOOL function(SOCKET, SOCKADDR*, int, PVOID, DWORD, LPDWORD, LPOVERLAPPED) LPFN_CONNECTEX; 122 - const GUID WSAID_CONNECTEX = {0x25a207b9,0xddf3,0x4660,[0x8e,0xe9,0x76,0xe5,0x8c,0x74,0x06,0x3e]}; 123 - } 116 + alias BOOL function(SOCKET, SOCKADDR*, int, PVOID, DWORD, LPDWORD, LPOVERLAPPED) LPFN_CONNECTEX; 117 + const GUID WSAID_CONNECTEX = {0x25a207b9,0xddf3,0x4660,[0x8e,0xe9,0x76,0xe5,0x8c,0x74,0x06,0x3e]}; 124 118 } 125 119 126 120 version(Win32_Winsock1) { 127 121 } else { 128 - static if (WINVER > 0x501) { 122 + static if (_WIN32_WINNT > 0x501) { 129 123 /* These appear to be constants for the TRANSMIT_PACKETS_ELEMENT 130 124 * structure below, so I've given them the same minimum version 131 125 */ 132 126 enum { 133 127 TP_ELEMENT_FILE = 1, 134 128 TP_ELEMENT_MEMORY = 2, 135 129 TP_ELEMENT_EOP = 4

Modified src/win32/nb30.d from [5d75fa8a12a29c69] to [2d02da3bd4be4b54].

207 207 UCHAR[NCBNAMSZ] ncb_callname; 208 208 UCHAR[NCBNAMSZ] ncb_name; 209 209 UCHAR ncb_rto; 210 210 UCHAR ncb_sto; 211 211 extern (Windows) void function(NCB*) ncb_post; 212 212 UCHAR ncb_lana_num; 213 213 UCHAR ncb_cmd_cplt; 214 - UCHAR ncb_reserve[10]; 214 + UCHAR[10] ncb_reserve; 215 215 HANDLE ncb_event; 216 216 } 217 217 alias NCB* PNCB; 218 218 219 219 struct SESSION_BUFFER { 220 220 UCHAR lsn; 221 221 UCHAR state;

Modified src/win32/ntdef.d from [7851c6cbb4e9f088] to [3183d8d941c5427d].

43 43 alias int* PNTSTATUS; 44 44 45 45 struct UNICODE_STRING { 46 46 USHORT Length; 47 47 USHORT MaximumLength; 48 48 PWSTR Buffer; 49 49 } 50 -alias UNICODE_STRING* PUNICODE_STRING; 51 -alias CPtr!(UNICODE_STRING) PCUNICODE_STRING; 50 +alias UNICODE_STRING* PUNICODE_STRING; 51 +alias const(UNICODE_STRING)* PCUNICODE_STRING; 52 52 53 53 struct STRING { 54 54 USHORT Length; 55 55 USHORT MaximumLength; 56 56 PCHAR Buffer; 57 57 } 58 58 alias STRING ANSI_STRING, OEM_STRING;

Modified src/win32/ntdll.d from [5b08a7cec4ddc80a] to [756e171c35e05b4a].

8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.ntdll; 12 12 13 13 private import win32.w32api; 14 14 15 -// http://www.matcode.com/undocwin.h.txt 16 -static assert (_WIN32_WINNT_ONLY, 17 - "win32.ntdll is available only if version WindowsNTonly, WindowsXP, " 18 - "Windows2003 or WindowsVista is set"); 19 - 20 15 21 16 enum SHUTDOWN_ACTION { 22 17 ShutdownNoReboot, 23 18 ShutdownReboot, 24 19 ShutdownPowerOff 25 20 } 26 21 27 22 extern (Windows) uint NtShutdownSystem(SHUTDOWN_ACTION Action);

Modified src/win32/ntsecapi.d from [af13fe2a125c8d82] to [383102dcd27f40ad].

402 402 UCHAR[MSV1_0_CHALLENGE_LENGTH] ChallengeToClient; 403 403 STRING CaseSensitiveChallengeResponse; 404 404 STRING CaseInsensitiveChallengeResponse; 405 405 ULONG ParameterControl; 406 406 } 407 407 alias MSV1_0_LM20_LOGON* PMSV1_0_LM20_LOGON; 408 408 409 -static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 409 +static if (_WIN32_WINNT >= 0x500) { 410 410 struct MSV1_0_SUBAUTH_LOGON { 411 411 MSV1_0_LOGON_SUBMIT_TYPE MessageType; 412 412 UNICODE_STRING LogonDomainName; 413 413 UNICODE_STRING UserName; 414 414 UNICODE_STRING Workstation; 415 415 UCHAR[MSV1_0_CHALLENGE_LENGTH] ChallengeToClient; 416 416 STRING AuthenticationInfo1; ................................................................................ 659 659 LARGE_INTEGER MaxTicketAge; 660 660 LARGE_INTEGER MaxRenewAge; 661 661 LARGE_INTEGER ProxyLifetime; 662 662 LARGE_INTEGER ForceLogoff; 663 663 } 664 664 alias POLICY_DOMAIN_KERBEROS_TICKET_INFO* PPOLICY_DOMAIN_KERBEROS_TICKET_INFO; 665 665 666 -alias HANDLE LSA_HANDLE; 667 -alias HANDLE* PLSA_HANDLE; 666 +mixin DECLARE_HANDLE!("LSA_HANDLE"); 667 +alias LSA_HANDLE* PLSA_HANDLE; 668 668 669 669 struct TRUSTED_DOMAIN_NAME_INFO { 670 670 LSA_UNICODE_STRING Name; 671 671 } 672 672 alias TRUSTED_DOMAIN_NAME_INFO* PTRUSTED_DOMAIN_NAME_INFO; 673 673 674 674 struct TRUSTED_CONTROLLERS_INFO {

Added src/win32/ntsecpkg.d version [f28bac35de29964e]

1 +/***********************************************************************\ 2 +* ntsecpkg.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Translated from MinGW Windows headers * 7 +* by Ellery Newcomer * 8 +* * 9 +* Placed into public domain * 10 +\***********************************************************************/ 11 +module win32.ntsecpkg; 12 + 13 +import win32.windef, win32.ntsecapi, win32.security, win32.ntdef, win32.sspi; 14 +import win32.winnt: GUID; 15 +import win32.winbase; 16 + 17 +extern(Windows): 18 + 19 +enum :ULONG{ 20 + ISC_REQ_DELEGATE = 1, 21 + ISC_REQ_MUTUAL_AUTH = 2, 22 + ISC_REQ_REPLAY_DETECT = 4, 23 + ISC_REQ_SEQUENCE_DETECT = 8, 24 + ISC_REQ_CONFIDENTIALITY = 16, 25 + ISC_REQ_USE_SESSION_KEY = 32, 26 + ISC_REQ_PROMPT_FOR_CREDS = 64, 27 + ISC_REQ_USE_SUPPLIED_CREDS = 128, 28 + ISC_REQ_ALLOCATE_MEMORY = 256, 29 + ISC_REQ_USE_DCE_STYLE = 512, 30 + ISC_REQ_DATAGRAM = 1024, 31 + ISC_REQ_CONNECTION = 2048, 32 + ISC_REQ_EXTENDED_ERROR = 16384, 33 + ISC_REQ_STREAM = 32768, 34 + ISC_REQ_INTEGRITY = 65536, 35 + ISC_REQ_MANUAL_CRED_VALIDATION = 524288, 36 + ISC_REQ_HTTP = 268435456, 37 +} 38 + 39 +enum ISC_RET_EXTENDED_ERROR = 16384; 40 + 41 +enum :ULONG{ 42 + ASC_REQ_DELEGATE = 1, 43 + ASC_REQ_MUTUAL_AUTH = 2, 44 + ASC_REQ_REPLAY_DETECT = 4, 45 + ASC_REQ_SEQUENCE_DETECT = 8, 46 + ASC_REQ_CONFIDENTIALITY = 16, 47 + ASC_REQ_USE_SESSION_KEY = 32, 48 + ASC_REQ_ALLOCATE_MEMORY = 256, 49 + ASC_REQ_USE_DCE_STYLE = 512, 50 + ASC_REQ_DATAGRAM = 1024, 51 + ASC_REQ_CONNECTION = 2048, 52 + ASC_REQ_EXTENDED_ERROR = 32768, 53 + ASC_REQ_STREAM = 65536, 54 + ASC_REQ_INTEGRITY = 131072, 55 +} 56 + 57 +enum SECURITY_NATIVE_DREP = 16; 58 +enum SECURITY_NETWORK_DREP = 0; 59 + 60 +enum :ULONG{ 61 + SECPKG_STATE_ENCRYPTION_PERMITTED = 0x01, 62 + SECPKG_STATE_STRONG_ENCRYPTION_PERMITTED = 0x02, 63 + SECPKG_STATE_DOMAIN_CONTROLLER = 0x04, 64 + SECPKG_STATE_WORKSTATION = 0x08, 65 + SECPKG_STATE_STANDALONE = 0x10, 66 +} 67 + 68 +/* enum definitions for Secure Service Provider/Authentication Packages */ 69 +enum LSA_TOKEN_INFORMATION_TYPE { 70 + LsaTokenInformationNull, 71 + LsaTokenInformationV1 72 +} 73 +alias LSA_TOKEN_INFORMATION_TYPE* PLSA_TOKEN_INFORMATION_TYPE; 74 +enum SECPKG_EXTENDED_INFORMATION_CLASS 75 +{ 76 + SecpkgGssInfo = 1, 77 + SecpkgContextThunks, 78 + SecpkgMutualAuthLevel, 79 + SecpkgMaxInfo 80 +} 81 +enum SECPKG_NAME_TYPE { 82 + SecNameSamCompatible, 83 + SecNameAlternateId, 84 + SecNameFlat, 85 + SecNameDN 86 +} 87 + 88 +/* struct definitions for SSP/AP */ 89 +struct SECPKG_PRIMARY_CRED { 90 + LUID LogonId; 91 + UNICODE_STRING DownlevelName; 92 + UNICODE_STRING DomainName; 93 + UNICODE_STRING Password; 94 + UNICODE_STRING OldPassword; 95 + PSID UserSid; 96 + ULONG Flags; 97 + UNICODE_STRING DnsDomainName; 98 + UNICODE_STRING Upn; 99 + UNICODE_STRING LogonServer; 100 + UNICODE_STRING Spare1; 101 + UNICODE_STRING Spare2; 102 + UNICODE_STRING Spare3; 103 + UNICODE_STRING Spare4; 104 +} 105 +alias SECPKG_PRIMARY_CRED* PSECPKG_PRIMARY_CRED; 106 +struct SECPKG_SUPPLEMENTAL_CRED { 107 + UNICODE_STRING PackageName; 108 + ULONG CredentialSize; 109 + PUCHAR Credentials; 110 +} 111 +alias SECPKG_SUPPLEMENTAL_CRED* PSECPKG_SUPPLEMENTAL_CRED; 112 +struct SECPKG_SUPPLEMENTAL_CRED_ARRAY { 113 + ULONG CredentialCount; 114 + SECPKG_SUPPLEMENTAL_CRED[1] Credentials; 115 +} 116 +alias SECPKG_SUPPLEMENTAL_CRED_ARRAY* PSECPKG_SUPPLEMENTAL_CRED_ARRAY; 117 +struct SECPKG_PARAMETERS { 118 + ULONG Version; 119 + ULONG MachineState; 120 + ULONG SetupMode; 121 + PSID DomainSid; 122 + UNICODE_STRING DomainName; 123 + UNICODE_STRING DnsDomainName; 124 + GUID DomainGuid; 125 +} 126 +alias SECPKG_PARAMETERS* PSECPKG_PARAMETERS,PSECPKG_EVENT_DOMAIN_CHANGE; 127 +alias SECPKG_PARAMETERS SECPKG_EVENT_DOMAIN_CHANGE; 128 +struct SECPKG_CLIENT_INFO { 129 + LUID LogonId; 130 + ULONG ProcessID; 131 + ULONG ThreadID; 132 + BOOLEAN HasTcbPrivilege; 133 + BOOLEAN Impersonating; 134 + BOOLEAN Restricted; 135 +} 136 +alias SECPKG_CLIENT_INFO* PSECPKG_CLIENT_INFO; 137 +struct SECURITY_USER_DATA { 138 + SECURITY_STRING UserName; 139 + SECURITY_STRING LogonDomainName; 140 + SECURITY_STRING LogonServer; 141 + PSID pSid; 142 +} 143 +alias SECURITY_USER_DATA* PSECURITY_USER_DATA,PSecurityUserData; 144 +alias SECURITY_USER_DATA SecurityUserData; 145 +struct SECPKG_GSS_INFO { 146 + ULONG EncodedIdLength; 147 + UCHAR[4] EncodedId; 148 +} 149 +alias SECPKG_GSS_INFO* PSECPKG_GSS_INFO; 150 +struct SECPKG_CONTEXT_THUNKS { 151 + ULONG InfoLevelCount; 152 + ULONG[1] Levels; 153 +} 154 +alias SECPKG_CONTEXT_THUNKS* PSECPKG_CONTEXT_THUNKS; 155 +struct SECPKG_MUTUAL_AUTH_LEVEL { 156 + ULONG MutualAuthLevel; 157 +} 158 +alias SECPKG_MUTUAL_AUTH_LEVEL* PSECPKG_MUTUAL_AUTH_LEVEL; 159 +struct SECPKG_CALL_INFO { 160 + ULONG ProcessId; 161 + ULONG ThreadId; 162 + ULONG Attributes; 163 + ULONG CallCount; 164 +} 165 +alias SECPKG_CALL_INFO* PSECPKG_CALL_INFO; 166 +struct SECPKG_EXTENDED_INFORMATION { 167 + SECPKG_EXTENDED_INFORMATION_CLASS Class; 168 + union _Info{ 169 + SECPKG_GSS_INFO GssInfo; 170 + SECPKG_CONTEXT_THUNKS ContextThunks; 171 + SECPKG_MUTUAL_AUTH_LEVEL MutualAuthLevel; 172 + } 173 + _Info Info; 174 +} 175 +alias SECPKG_EXTENDED_INFORMATION* PSECPKG_EXTENDED_INFORMATION; 176 + 177 +/* callbacks implemented by SSP/AP dlls and called by the LSA */ 178 +alias void function(ULONG_PTR, ULONG_PTR, PSecBuffer, 179 + PSecBuffer) PLSA_CALLBACK_FUNCTION; 180 + 181 +/* misc typedefs used in the below prototypes */ 182 +alias PVOID* PLSA_CLIENT_REQUEST; 183 +alias ULONG LSA_SEC_HANDLE; 184 +alias ULONG* PLSA_SEC_HANDLE; 185 +alias LPTHREAD_START_ROUTINE SEC_THREAD_START; 186 +alias PSECURITY_ATTRIBUTES SEC_ATTRS; 187 + 188 +/* functions used by SSP/AP obtainable by dispatch tables */ 189 +alias NTSTATUS function(ULONG, PLSA_CALLBACK_FUNCTION) PLSA_REGISTER_CALLBACK; 190 +alias NTSTATUS function(PLUID) PLSA_CREATE_LOGON_SESSION; 191 +alias NTSTATUS function(PLUID) PLSA_DELETE_LOGON_SESSION; 192 +alias NTSTATUS function(PLUID, ULONG, PLSA_STRING, 193 + PLSA_STRING) PLSA_ADD_CREDENTIAL; 194 +alias NTSTATUS function(PLUID, ULONG, PULONG, BOOLEAN, 195 + PLSA_STRING, PULONG, PLSA_STRING) PLSA_GET_CREDENTIALS; 196 +alias NTSTATUS function(PLUID, ULONG, PLSA_STRING) PLSA_DELETE_CREDENTIAL; 197 +alias PVOID function(ULONG) PLSA_ALLOCATE_LSA_HEAP; 198 +alias void function(PVOID) PLSA_FREE_LSA_HEAP; 199 +alias NTSTATUS function(PLSA_CLIENT_REQUEST, 200 + ULONG, PVOID*) PLSA_ALLOCATE_CLIENT_BUFFER; 201 +alias NTSTATUS function(PLSA_CLIENT_REQUEST, PVOID) PLSA_FREE_CLIENT_BUFFER; 202 +alias NTSTATUS function(PLSA_CLIENT_REQUEST, ULONG, 203 + PVOID, PVOID) PLSA_COPY_TO_CLIENT_BUFFER; 204 +alias NTSTATUS function(PLSA_CLIENT_REQUEST, 205 + ULONG, PVOID, PVOID) PLSA_COPY_FROM_CLIENT_BUFFER; 206 +alias NTSTATUS function() PLSA_IMPERSONATE_CLIENT; 207 +alias NTSTATUS function() PLSA_UNLOAD_PACKAGE; 208 +alias NTSTATUS function(HANDLE, PHANDLE) PLSA_DUPLICATE_HANDLE; 209 +alias NTSTATUS function(PLUID, ULONG, 210 + PVOID, BOOLEAN) PLSA_SAVE_SUPPLEMENTAL_CREDENTIALS; 211 +alias HANDLE function(SEC_ATTRS, ULONG, SEC_THREAD_START, 212 + PVOID, ULONG, PULONG) PLSA_CREATE_THREAD; 213 +alias NTSTATUS function(PSECPKG_CLIENT_INFO) PLSA_GET_CLIENT_INFO; 214 +alias HANDLE function(SEC_THREAD_START, PVOID, 215 + ULONG, ULONG, ULONG, ULONG, HANDLE) PLSA_REGISTER_NOTIFICATION; 216 +alias NTSTATUS function(HANDLE) PLSA_CANCEL_NOTIFICATION; 217 +alias NTSTATUS function(PSecBuffer, PSecBuffer) PLSA_MAP_BUFFER; 218 +alias NTSTATUS function(PLUID, PTOKEN_SOURCE, 219 + SECURITY_LOGON_TYPE, SECURITY_IMPERSONATION_LEVEL, LSA_TOKEN_INFORMATION_TYPE, 220 + PVOID, PTOKEN_GROUPS, PUNICODE_STRING, PUNICODE_STRING, PUNICODE_STRING, 221 + PUNICODE_STRING, PHANDLE, PNTSTATUS) PLSA_CREATE_TOKEN; 222 +alias void function(NTSTATUS, NTSTATUS, PUNICODE_STRING, 223 + PUNICODE_STRING, PUNICODE_STRING, PSID, SECURITY_LOGON_TYPE, 224 + PTOKEN_SOURCE, PLUID) PLSA_AUDIT_LOGON; 225 +alias NTSTATUS function(PUNICODE_STRING, PVOID, ULONG, 226 + PVOID*, PULONG, PNTSTATUS) PLSA_CALL_PACKAGE; 227 +alias BOOLEAN function(PSECPKG_CALL_INFO) PLSA_GET_CALL_INFO; 228 +alias NTSTATUS function(PUNICODE_STRING, PVOID, PVOID, 229 + ULONG, PVOID*, PULONG, PNTSTATUS) PLSA_CALL_PACKAGEEX; 230 +alias PVOID function(ULONG, ULONG) PLSA_CREATE_SHARED_MEMORY; 231 +alias PVOID function(PVOID, ULONG) PLSA_ALLOCATE_SHARED_MEMORY; 232 +alias void function(PVOID, PVOID) PLSA_FREE_SHARED_MEMORY; 233 +alias BOOLEAN function(PVOID) PLSA_DELETE_SHARED_MEMORY; 234 +alias NTSTATUS function(PSECURITY_STRING, SECPKG_NAME_TYPE, 235 + PSECURITY_STRING, BOOLEAN, ULONG, PVOID*) PLSA_OPEN_SAM_USER; 236 +alias NTSTATUS function(PVOID, PVOID *, PULONG, 237 + PVOID *, PULONG) PLSA_GET_USER_CREDENTIALS; 238 +alias NTSTATUS function(PVOID, PUCHAR *, PULONG) PLSA_GET_USER_AUTH_DATA; 239 +alias NTSTATUS function(PVOID) PLSA_CLOSE_SAM_USER; 240 +alias NTSTATUS function(PVOID, ULONG, 241 + SECURITY_IMPERSONATION_LEVEL, PTOKEN_SOURCE, SECURITY_LOGON_TYPE, 242 + PUNICODE_STRING, PHANDLE, PLUID, PUNICODE_STRING, PNTSTATUS) PLSA_CONVERT_AUTH_DATA_TO_TOKEN; 243 +alias NTSTATUS function(PCHAR, ULONG_PTR, ULONG_PTR, 244 + PSecBuffer, PSecBuffer) PLSA_CLIENT_CALLBACK; 245 +alias NTSTATUS function(PSECPKG_PRIMARY_CRED, PSECPKG_SUPPLEMENTAL_CRED_ARRAY) PLSA_UPDATE_PRIMARY_CREDENTIALS; 246 +alias NTSTATUS function(PSECURITY_STRING, 247 + SECPKG_NAME_TYPE, PSECURITY_STRING, PUCHAR *, PULONG, PUNICODE_STRING) PLSA_GET_AUTH_DATA_FOR_USER; 248 +alias NTSTATUS function(ULONG, BOOLEAN, 249 + PUNICODE_STRING, PUNICODE_STRING, ULONG, PUNICODE_STRING, PUNICODE_STRING, 250 + PULONG) PLSA_CRACK_SINGLE_NAME; 251 +alias NTSTATUS function(ULONG, BOOLEAN, 252 + PUNICODE_STRING, PUNICODE_STRING, PUNICODE_STRING, NTSTATUS) PLSA_AUDIT_ACCOUNT_LOGON; 253 +alias NTSTATUS function(PUNICODE_STRING, PVOID, 254 + PVOID, ULONG, PVOID*, PULONG, PNTSTATUS) PLSA_CALL_PACKAGE_PASSTHROUGH; 255 + 256 +/* Dispatch tables of functions used by SSP/AP */ 257 +struct SECPKG_DLL_FUNCTIONS { 258 + PLSA_ALLOCATE_LSA_HEAP AllocateHeap; 259 + PLSA_FREE_LSA_HEAP FreeHeap; 260 + PLSA_REGISTER_CALLBACK RegisterCallback; 261 +} 262 +alias SECPKG_DLL_FUNCTIONS* PSECPKG_DLL_FUNCTIONS; 263 +struct LSA_DISPATCH_TABLE { 264 + PLSA_CREATE_LOGON_SESSION CreateLogonSession; 265 + PLSA_DELETE_LOGON_SESSION DeleteLogonSession; 266 + PLSA_ADD_CREDENTIAL AddCredential; 267 + PLSA_GET_CREDENTIALS GetCredentials; 268 + PLSA_DELETE_CREDENTIAL DeleteCredential; 269 + PLSA_ALLOCATE_LSA_HEAP AllocateLsaHeap; 270 + PLSA_FREE_LSA_HEAP FreeLsaHeap; 271 + PLSA_ALLOCATE_CLIENT_BUFFER AllocateClientBuffer; 272 + PLSA_FREE_CLIENT_BUFFER FreeClientBuffer; 273 + PLSA_COPY_TO_CLIENT_BUFFER CopyToClientBuffer; 274 + PLSA_COPY_FROM_CLIENT_BUFFER CopyFromClientBuffer; 275 +} 276 +alias LSA_DISPATCH_TABLE* PLSA_DISPATCH_TABLE; 277 +struct LSA_SECPKG_FUNCTION_TABLE { 278 + PLSA_CREATE_LOGON_SESSION CreateLogonSession; 279 + PLSA_DELETE_LOGON_SESSION DeleteLogonSession; 280 + PLSA_ADD_CREDENTIAL AddCredential; 281 + PLSA_GET_CREDENTIALS GetCredentials; 282 + PLSA_DELETE_CREDENTIAL DeleteCredential; 283 + PLSA_ALLOCATE_LSA_HEAP AllocateLsaHeap; 284 + PLSA_FREE_LSA_HEAP FreeLsaHeap; 285 + PLSA_ALLOCATE_CLIENT_BUFFER AllocateClientBuffer; 286 + PLSA_FREE_CLIENT_BUFFER FreeClientBuffer; 287 + PLSA_COPY_TO_CLIENT_BUFFER CopyToClientBuffer; 288 + PLSA_COPY_FROM_CLIENT_BUFFER CopyFromClientBuffer; 289 + PLSA_IMPERSONATE_CLIENT ImpersonateClient; 290 + PLSA_UNLOAD_PACKAGE UnloadPackage; 291 + PLSA_DUPLICATE_HANDLE DuplicateHandle; 292 + PLSA_SAVE_SUPPLEMENTAL_CREDENTIALS SaveSupplementalCredentials; 293 + PLSA_CREATE_THREAD CreateThread; 294 + PLSA_GET_CLIENT_INFO GetClientInfo; 295 + PLSA_REGISTER_NOTIFICATION RegisterNotification; 296 + PLSA_CANCEL_NOTIFICATION CancelNotification; 297 + PLSA_MAP_BUFFER MapBuffer; 298 + PLSA_CREATE_TOKEN CreateToken; 299 + PLSA_AUDIT_LOGON AuditLogon; 300 + PLSA_CALL_PACKAGE CallPackage; 301 + PLSA_FREE_LSA_HEAP FreeReturnBuffer; 302 + PLSA_GET_CALL_INFO GetCallInfo; 303 + PLSA_CALL_PACKAGEEX CallPackageEx; 304 + PLSA_CREATE_SHARED_MEMORY CreateSharedMemory; 305 + PLSA_ALLOCATE_SHARED_MEMORY AllocateSharedMemory; 306 + PLSA_FREE_SHARED_MEMORY FreeSharedMemory; 307 + PLSA_DELETE_SHARED_MEMORY DeleteSharedMemory; 308 + PLSA_OPEN_SAM_USER OpenSamUser; 309 + PLSA_GET_USER_CREDENTIALS GetUserCredentials; 310 + PLSA_GET_USER_AUTH_DATA GetUserAuthData; 311 + PLSA_CLOSE_SAM_USER CloseSamUser; 312 + PLSA_CONVERT_AUTH_DATA_TO_TOKEN ConvertAuthDataToToken; 313 + PLSA_CLIENT_CALLBACK ClientCallback; 314 + PLSA_UPDATE_PRIMARY_CREDENTIALS UpdateCredentials; 315 + PLSA_GET_AUTH_DATA_FOR_USER GetAuthDataForUser; 316 + PLSA_CRACK_SINGLE_NAME CrackSingleName; 317 + PLSA_AUDIT_ACCOUNT_LOGON AuditAccountLogon; 318 + PLSA_CALL_PACKAGE_PASSTHROUGH CallPackagePassthrough; 319 +} 320 +alias LSA_SECPKG_FUNCTION_TABLE* PLSA_SECPKG_FUNCTION_TABLE; 321 + 322 +/* functions implemented by SSP/AP obtainable by dispatch tables */ 323 +alias NTSTATUS function(ULONG, PLSA_DISPATCH_TABLE, 324 + PLSA_STRING, PLSA_STRING, PLSA_STRING *) PLSA_AP_INITIALIZE_PACKAGE; 325 +alias NTSTATUS function(LPWSTR, LPWSTR, LPWSTR, LPWSTR, 326 + DWORD, DWORD, PHANDLE) PLSA_AP_LOGON_USER; 327 +alias NTSTATUS function(PUNICODE_STRING, PVOID, ULONG, 328 + PVOID *, PULONG, PNTSTATUS) PLSA_AP_CALL_PACKAGE; 329 +alias void function(PLUID) PLSA_AP_LOGON_TERMINATED; 330 +alias NTSTATUS function(PLSA_CLIENT_REQUEST, 331 + PVOID, PVOID, ULONG, PVOID *, PULONG, PNTSTATUS) PLSA_AP_CALL_PACKAGE_UNTRUSTED; 332 +alias NTSTATUS function(PUNICODE_STRING, 333 + PVOID, PVOID, ULONG, PVOID *, PULONG, PNTSTATUS) PLSA_AP_CALL_PACKAGE_PASSTHROUGH; 334 +alias NTSTATUS function(PLSA_CLIENT_REQUEST, 335 + SECURITY_LOGON_TYPE, PVOID, PVOID, ULONG, PVOID *, PULONG, PLUID, PNTSTATUS, 336 + PLSA_TOKEN_INFORMATION_TYPE, PVOID *, PUNICODE_STRING *, PUNICODE_STRING *, 337 + PUNICODE_STRING *) PLSA_AP_LOGON_USER_EX; 338 +alias NTSTATUS function(PLSA_CLIENT_REQUEST, 339 + SECURITY_LOGON_TYPE, PVOID, PVOID, ULONG, PVOID *, PULONG, PLUID, PNTSTATUS, 340 + PLSA_TOKEN_INFORMATION_TYPE, PVOID *, PUNICODE_STRING *, PUNICODE_STRING *, 341 + PUNICODE_STRING *, PSECPKG_PRIMARY_CRED, PSECPKG_SUPPLEMENTAL_CRED_ARRAY *) PLSA_AP_LOGON_USER_EX2; 342 +alias NTSTATUS function(ULONG_PTR, PSECPKG_PARAMETERS, 343 + PLSA_SECPKG_FUNCTION_TABLE) SpInitializeFn; 344 +alias NTSTATUS function() SpShutDownFn; 345 +alias NTSTATUS function(PSecPkgInfoW) SpGetInfoFn; 346 +alias NTSTATUS function(SECURITY_LOGON_TYPE, 347 + PUNICODE_STRING, PSECPKG_PRIMARY_CRED, PSECPKG_SUPPLEMENTAL_CRED) SpAcceptCredentialsFn; 348 +alias NTSTATUS function(PUNICODE_STRING, ULONG, 349 + PLUID, PVOID, PVOID, PVOID, PLSA_SEC_HANDLE, PTimeStamp) SpAcquireCredentialsHandleFn; 350 +alias NTSTATUS function(LSA_SEC_HANDLE, ULONG, PVOID) SpQueryCredentialsAttributesFn; 351 +alias NTSTATUS function(LSA_SEC_HANDLE) SpFreeCredentialsHandleFn; 352 +alias NTSTATUS function(LSA_SEC_HANDLE, PSecBuffer) SpSaveCredentialsFn; 353 +alias NTSTATUS function(LSA_SEC_HANDLE, PSecBuffer) SpGetCredentialsFn; 354 +alias NTSTATUS function(LSA_SEC_HANDLE, PSecBuffer) SpDeleteCredentialsFn; 355 +alias NTSTATUS function(LSA_SEC_HANDLE, LSA_SEC_HANDLE, 356 + PUNICODE_STRING, ULONG, ULONG, PSecBufferDesc, PLSA_SEC_HANDLE, PSecBufferDesc, 357 + PULONG, PTimeStamp, PBOOLEAN, PSecBuffer) SpInitLsaModeContextFn; 358 +alias NTSTATUS function(LSA_SEC_HANDLE, 359 + LSA_SEC_HANDLE, PSecBufferDesc, ULONG, ULONG, PLSA_SEC_HANDLE, PSecBufferDesc, 360 + PULONG, PTimeStamp, PBOOLEAN, PSecBuffer) SpAcceptLsaModeContextFn; 361 +alias NTSTATUS function(LSA_SEC_HANDLE) SpDeleteContextFn; 362 +alias NTSTATUS function(LSA_SEC_HANDLE, PSecBufferDesc) SpApplyControlTokenFn; 363 +alias NTSTATUS function(PLUID, ULONG, PSecurityUserData *) SpGetUserInfoFn; 364 +alias NTSTATUS function(SECPKG_EXTENDED_INFORMATION_CLASS, PSECPKG_EXTENDED_INFORMATION *) SpGetExtendedInformationFn; 365 +alias NTSTATUS function(LSA_SEC_HANDLE, ULONG, PVOID) SpQueryContextAttributesFn; 366 +alias NTSTATUS function(LSA_SEC_HANDLE, PUNICODE_STRING, 367 + PUNICODE_STRING, ULONG, PVOID, PVOID, PVOID, PTimeStamp) SpAddCredentialsFn; 368 +alias NTSTATUS function( 369 + SECPKG_EXTENDED_INFORMATION_CLASS, PSECPKG_EXTENDED_INFORMATION) SpSetExtendedInformationFn; 370 +alias NTSTATUS function(ULONG, PSECPKG_DLL_FUNCTIONS, 371 + PVOID *) SpInstanceInitFn; 372 +alias NTSTATUS function(LSA_SEC_HANDLE, PSecBuffer) SpInitUserModeContextFn; 373 +alias NTSTATUS function(LSA_SEC_HANDLE, ULONG, 374 + PSecBufferDesc, ULONG) SpMakeSignatureFn; 375 +alias NTSTATUS function(LSA_SEC_HANDLE, PSecBufferDesc, 376 + ULONG, PULONG) SpVerifySignatureFn; 377 +alias NTSTATUS function(LSA_SEC_HANDLE, ULONG, PSecBufferDesc, 378 + ULONG) SpSealMessageFn; 379 +alias NTSTATUS function(LSA_SEC_HANDLE, PSecBufferDesc, 380 + ULONG, PULONG) SpUnsealMessageFn; 381 +alias NTSTATUS function(LSA_SEC_HANDLE, PHANDLE) SpGetContextTokenFn; 382 +alias NTSTATUS function(LSA_SEC_HANDLE, PSecBufferDesc) SpCompleteAuthTokenFn; 383 +alias NTSTATUS function(PSecBuffer, PSecBuffer) SpFormatCredentialsFn; 384 +alias NTSTATUS function(ULONG, PUCHAR, PULONG, 385 + PVOID *) SpMarshallSupplementalCredsFn; 386 +alias NTSTATUS function(LSA_SEC_HANDLE, ULONG, 387 + PSecBuffer, PHANDLE) SpExportSecurityContextFn; 388 +alias NTSTATUS function(PSecBuffer, HANDLE, 389 + PLSA_SEC_HANDLE) SpImportSecurityContextFn; 390 + 391 +/* Dispatch tables of functions implemented by SSP/AP */ 392 +struct SECPKG_FUNCTION_TABLE { 393 + PLSA_AP_INITIALIZE_PACKAGE InitializePackage; 394 + PLSA_AP_LOGON_USER LogonUser; 395 + PLSA_AP_CALL_PACKAGE CallPackage; 396 + PLSA_AP_LOGON_TERMINATED LogonTerminated; 397 + PLSA_AP_CALL_PACKAGE_UNTRUSTED CallPackageUntrusted; 398 + PLSA_AP_CALL_PACKAGE_PASSTHROUGH CallPackagePassthrough; 399 + PLSA_AP_LOGON_USER_EX LogonUserEx; 400 + PLSA_AP_LOGON_USER_EX2 LogonUserEx2; 401 + SpInitializeFn *Initialize; 402 + SpShutDownFn *Shutdown; 403 + SpGetInfoFn *GetInfo; 404 + SpAcceptCredentialsFn *AcceptCredentials; 405 + SpAcquireCredentialsHandleFn *AcquireCredentialsHandle; 406 + SpQueryCredentialsAttributesFn *QueryCredentialsAttributes; 407 + SpFreeCredentialsHandleFn *FreeCredentialsHandle; 408 + SpSaveCredentialsFn *SaveCredentials; 409 + SpGetCredentialsFn *GetCredentials; 410 + SpDeleteCredentialsFn *DeleteCredentials; 411 + SpInitLsaModeContextFn *InitLsaModeContext; 412 + SpAcceptLsaModeContextFn *AcceptLsaModeContext; 413 + SpDeleteContextFn *DeleteContext; 414 + SpApplyControlTokenFn *ApplyControlToken; 415 + SpGetUserInfoFn *GetUserInfo; 416 + SpGetExtendedInformationFn *GetExtendedInformation; 417 + SpQueryContextAttributesFn *QueryContextAttributes; 418 + SpAddCredentialsFn *AddCredentials; 419 + SpSetExtendedInformationFn *SetExtendedInformation; 420 +} 421 +alias SECPKG_FUNCTION_TABLE* PSECPKG_FUNCTION_TABLE; 422 + 423 +struct SECPKG_USER_FUNCTION_TABLE { 424 + SpInstanceInitFn *InstanceInit; 425 + SpInitUserModeContextFn *InitUserModeContext; 426 + SpMakeSignatureFn *MakeSignature; 427 + SpVerifySignatureFn *VerifySignature; 428 + SpSealMessageFn *SealMessage; 429 + SpUnsealMessageFn *UnsealMessage; 430 + SpGetContextTokenFn *GetContextToken; 431 + SpQueryContextAttributesFn *QueryContextAttributes; 432 + SpCompleteAuthTokenFn *CompleteAuthToken; 433 + SpDeleteContextFn *DeleteUserModeContext; 434 + SpFormatCredentialsFn *FormatCredentials; 435 + SpMarshallSupplementalCredsFn *MarshallSupplementalCreds; 436 + SpExportSecurityContextFn *ExportContext; 437 + SpImportSecurityContextFn *ImportContext; 438 +} 439 +alias SECPKG_USER_FUNCTION_TABLE* PSECPKG_USER_FUNCTION_TABLE; 440 + 441 +/* Entry points to SSP/AP */ 442 +alias NTSTATUS function(ULONG, PULONG, 443 + PSECPKG_FUNCTION_TABLE *, PULONG) SpLsaModeInitializeFn; 444 +alias NTSTATUS function(ULONG, PULONG, 445 + PSECPKG_USER_FUNCTION_TABLE *, PULONG) SpUserModeInitializeFn; 446 +

Modified src/win32/oaidl.d from [2b588d001c37b323] to [3b6a16e1b16e8ad3].

89 89 struct SAFEARR_BSTR { 90 90 ULONG Size; 91 91 wireBSTR* aBstr; 92 92 } 93 93 94 94 struct SAFEARR_UNKNOWN { 95 95 ULONG Size; 96 - IUnknown** apUnknown; 96 + IUnknown* apUnknown; 97 97 } 98 98 99 99 struct SAFEARR_DISPATCH { 100 100 ULONG Size; 101 101 LPDISPATCH* apDispatch; 102 102 } 103 103 ................................................................................ 129 129 struct SAFEARR_BRECORD { 130 130 ULONG Size; 131 131 wireBRECORD* aRecord; 132 132 } 133 133 134 134 struct SAFEARR_HAVEIID { 135 135 ULONG Size; 136 - IUnknown** apUnknown; 136 + IUnknown* apUnknown; 137 137 IID iid; 138 138 } 139 139 140 140 struct SAFEARRAYUNION { 141 141 ULONG sfType; 142 142 union _u { 143 143 SAFEARR_BSTR BstrStr; ................................................................................ 156 156 157 157 struct _wireSAFEARRAY { 158 158 USHORT cDims; 159 159 USHORT fFeatures; 160 160 ULONG cbElements; 161 161 ULONG cLocks; 162 162 SAFEARRAYUNION uArrayStructs; 163 - SAFEARRAYBOUND rgsabound[1]; 163 + SAFEARRAYBOUND[1] rgsabound; 164 164 } 165 165 alias _wireSAFEARRAY* wireSAFEARRAY; 166 166 167 167 alias wireSAFEARRAY* wirePSAFEARRAY; 168 168 169 169 struct SAFEARRAY { 170 170 USHORT cDims; 171 171 USHORT fFeatures; 172 172 ULONG cbElements; 173 173 ULONG cLocks; 174 174 PVOID pvData; 175 - SAFEARRAYBOUND rgsabound[1]; 175 + SAFEARRAYBOUND[1] rgsabound; 176 176 } 177 177 alias SAFEARRAY* LPSAFEARRAY; 178 178 179 179 struct VARIANT { 180 180 union { 181 181 struct { 182 182 VARTYPE vt; ................................................................................ 255 255 FLOAT fltVal; 256 256 DOUBLE dblVal; 257 257 VARIANT_BOOL boolVal; 258 258 SCODE scode; 259 259 CY cyVal; 260 260 DATE date; 261 261 wireBSTR bstrVal; 262 - IUnknown* punkVal; 262 + IUnknown punkVal; 263 263 LPDISPATCH pdispVal; 264 264 wirePSAFEARRAY parray; 265 265 wireBRECORD brecVal; 266 266 BYTE* pbVal; 267 267 SHORT* piVal; 268 268 LONG* plVal; 269 269 FLOAT* pfltVal; 270 270 DOUBLE* pdblVal; 271 271 VARIANT_BOOL* pboolVal; 272 272 SCODE* pscode; 273 273 CY* pcyVal; 274 274 DATE* pdate; 275 275 wireBSTR* pbstrVal; 276 - IUnknown** ppunkVal; 276 + IUnknown* ppunkVal; 277 277 LPDISPATCH* ppdispVal; 278 278 wirePSAFEARRAY* pparray; 279 279 wireVARIANT* pvarVal; 280 280 CHAR cVal; 281 281 USHORT uiVal; 282 282 ULONG ulVal; 283 283 ULONGLONG ullVal; ................................................................................ 311 311 } 312 312 VARTYPE vt; 313 313 } 314 314 315 315 struct ARRAYDESC { 316 316 TYPEDESC tdescElem; 317 317 USHORT cDims; 318 - SAFEARRAYBOUND rgbounds[1]; 318 + SAFEARRAYBOUND[1] rgbounds; 319 319 } 320 320 321 321 struct PARAMDESCEX { 322 322 ULONG cBytes; 323 323 VARIANTARG varDefaultValue; 324 324 } 325 325 alias PARAMDESCEX* LPPARAMDESCEX; ................................................................................ 497 497 VARFLAG_FUIDEFAULT = 512, 498 498 VARFLAG_FNONBROWSABLE = 1024, 499 499 VARFLAG_FREPLACEABLE = 2048, 500 500 VARFLAG_FIMMEDIATEBIND = 4096 501 501 } 502 502 503 503 struct CLEANLOCALSTORAGE { 504 - IUnknown* pInterface; 504 + IUnknown pInterface; 505 505 PVOID pStorage; 506 506 DWORD flags; 507 507 } 508 508 509 509 struct CUSTDATAITEM { 510 510 GUID guid; 511 511 VARIANTARG varValue; ................................................................................ 542 542 } 543 543 alias IDispatch LPDISPATCH; 544 544 545 545 interface IEnumVARIANT : IUnknown { 546 546 HRESULT Next(ULONG, VARIANT*, ULONG*); 547 547 HRESULT Skip(ULONG); 548 548 HRESULT Reset(); 549 - HRESULT Clone(IEnumVARIANT**); 549 + HRESULT Clone(IEnumVARIANT*); 550 550 } 551 551 alias IEnumVARIANT LPENUMVARIANT; 552 552 553 553 interface ITypeComp : IUnknown { 554 554 HRESULT Bind(LPOLESTR, ULONG, WORD, LPTYPEINFO*, DESCKIND*, LPBINDPTR); 555 555 HRESULT BindType(LPOLESTR, ULONG, LPTYPEINFO*, LPTYPECOMP*); 556 556 } ................................................................................ 597 597 HRESULT GetAllVarCustData(UINT, CUSTDATA*); 598 598 HRESULT GetAllImplTypeCustData(UINT, CUSTDATA*); 599 599 } 600 600 alias ITypeInfo2 LPTYPEINFO2; 601 601 602 602 interface ITypeLib : IUnknown { 603 603 UINT GetTypeInfoCount(); 604 - HRESULT GetTypeInfo(UINT, ITypeInfo**); 604 + HRESULT GetTypeInfo(UINT, ITypeInfo*); 605 605 HRESULT GetTypeInfoType(UINT, TYPEKIND*); 606 - HRESULT GetTypeInfoOfGuid(REFGUID, ITypeInfo**); 606 + HRESULT GetTypeInfoOfGuid(REFGUID, ITypeInfo*); 607 607 HRESULT GetLibAttr(TLIBATTR**); 608 - HRESULT GetTypeComp(ITypeComp*); 608 + HRESULT GetTypeComp(ITypeComp); 609 609 HRESULT GetDocumentation(INT, BSTR*, BSTR*, DWORD*, BSTR*); 610 610 HRESULT IsName(LPOLESTR, ULONG, BOOL*); 611 - HRESULT FindName(LPOLESTR, ULONG, ITypeInfo**, MEMBERID*, USHORT*); 611 + HRESULT FindName(LPOLESTR, ULONG, ITypeInfo*, MEMBERID*, USHORT*); 612 612 void ReleaseTLibAttr(TLIBATTR*); 613 613 } 614 614 alias ITypeLib LPTYPELIB; 615 615 616 616 interface ITypeLib2 : ITypeLib { 617 617 HRESULT GetCustData(REFGUID, VARIANT*); 618 618 HRESULT GetLibStatistics(ULONG*, ULONG*); ................................................................................ 633 633 interface ICreateErrorInfo : IUnknown { 634 634 HRESULT SetGUID(REFGUID); 635 635 HRESULT SetSource(LPOLESTR); 636 636 HRESULT SetDescription(LPOLESTR); 637 637 HRESULT SetHelpFile(LPOLESTR); 638 638 HRESULT SetHelpContext(DWORD); 639 639 } 640 -alias ICreateErrorInfo* LPCREATEERRORINFO; 640 +alias ICreateErrorInfo LPCREATEERRORINFO; 641 641 642 642 interface ISupportErrorInfo : IUnknown { 643 643 HRESULT InterfaceSupportsErrorInfo(REFIID); 644 644 } 645 645 alias ISupportErrorInfo LPSUPPORTERRORINFO; 646 646 647 647 interface IRecordInfo : IUnknown { 648 648 HRESULT RecordInit(PVOID); 649 649 HRESULT RecordClear(PVOID); 650 650 HRESULT RecordCopy(PVOID, PVOID); 651 651 HRESULT GetGuid(GUID*); 652 652 HRESULT GetName(BSTR*); 653 653 HRESULT GetSize(ULONG*); 654 - HRESULT GetTypeInfo(ITypeInfo**); 654 + HRESULT GetTypeInfo(ITypeInfo*); 655 655 HRESULT GetField(PVOID, LPCOLESTR, VARIANT*); 656 656 HRESULT GetFieldNoCopy(PVOID, LPCOLESTR, VARIANT*, PVOID*); 657 657 HRESULT PutField (ULONG, PVOID, LPCOLESTR, VARIANT*); 658 658 HRESULT PutFieldNoCopy(ULONG, PVOID, LPCOLESTR, VARIANT*); 659 659 HRESULT GetFieldNames(ULONG*, BSTR*); 660 660 BOOL IsMatchingType(); 661 661 PVOID RecordCreate();

Modified src/win32/objbase.d from [a136bc964109dd20] to [db36bda51b6c05b7].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.objbase; 11 -pragma(lib, "ole32.lib"); 11 +pragma(lib, "ole32"); 12 12 13 13 import win32.cguid, win32.objidl, win32.unknwn, win32.wtypes; 14 14 private import win32.basetyps, win32.objfwd, win32.rpcdce, win32.winbase, 15 15 win32.windef; 16 16 17 17 // DAC: Not needed for D? 18 18 //MACRO #define LISet32(li, v) ((li).HighPart=(v)<0?-1:0, (li).LowPart=(v)) ................................................................................ 62 62 STGFMT_DOCFILE = 5 63 63 } 64 64 65 65 struct STGOPTIONS { 66 66 USHORT usVersion; 67 67 USHORT reserved; 68 68 ULONG ulSectorSize; 69 - CPtr!(WCHAR) pwcsTemplateFile; 69 + const(WCHAR)* pwcsTemplateFile; 70 70 } 71 71 72 72 enum REGCLS { 73 73 REGCLS_SINGLEUSE = 0, 74 74 REGCLS_MULTIPLEUSE = 1, 75 75 REGCLS_MULTI_SEPARATE = 2 76 76 } ................................................................................ 109 109 HRESULT CoInitialize(PVOID); 110 110 HRESULT CoInitializeEx(LPVOID, DWORD); 111 111 void CoUninitialize(); 112 112 HRESULT CoGetMalloc(DWORD, LPMALLOC*); 113 113 DWORD CoGetCurrentProcess(); 114 114 HRESULT CoRegisterMallocSpy(LPMALLOCSPY); 115 115 HRESULT CoRevokeMallocSpy(); 116 - HRESULT CoCreateStandardMalloc(DWORD, IMalloc**); 116 + HRESULT CoCreateStandardMalloc(DWORD, IMalloc*); 117 117 //#ifdef DBG 118 118 ULONG DebugCoGetRpcFault(); 119 119 void DebugCoSetRpcFault(ULONG); 120 120 //#endif 121 121 HRESULT CoGetClassObject(REFCLSID, DWORD, COSERVERINFO*, REFIID, PVOID*); 122 122 HRESULT CoRegisterClassObject(REFCLSID, LPUNKNOWN, DWORD, DWORD, PDWORD); 123 123 HRESULT CoRevokeClassObject(DWORD); ................................................................................ 137 137 HRESULT CoGetInterfaceAndReleaseStream(LPSTREAM, REFIID, PVOID*); 138 138 HRESULT CoCreateFreeThreadedMarshaler(LPUNKNOWN, LPUNKNOWN*); 139 139 HINSTANCE CoLoadLibrary(LPOLESTR, BOOL); 140 140 void CoFreeLibrary(HINSTANCE); 141 141 void CoFreeAllLibraries(); 142 142 void CoFreeUnusedLibraries(); 143 143 HRESULT CoCreateInstance(REFCLSID, LPUNKNOWN, DWORD, REFIID, PVOID*); 144 - HRESULT CoCreateInstanceEx(REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*); 144 + HRESULT CoCreateInstanceEx(REFCLSID, IUnknown, DWORD, COSERVERINFO*, DWORD, MULTI_QI*); 145 145 HRESULT StringFromCLSID(REFCLSID, LPOLESTR*); 146 146 HRESULT CLSIDFromString(LPOLESTR, LPCLSID); 147 147 HRESULT StringFromIID(REFIID, LPOLESTR*); 148 148 HRESULT IIDFromString(LPOLESTR, LPIID); 149 149 BOOL CoIsOle1Class(REFCLSID); 150 150 HRESULT ProgIDFromCLSID(REFCLSID, LPOLESTR*); 151 151 HRESULT CLSIDFromProgID(LPCOLESTR, LPCLSID); ................................................................................ 160 160 HRESULT DllGetClassObject(REFCLSID, REFIID, PVOID*); 161 161 HRESULT DllCanUnloadNow(); 162 162 PVOID CoTaskMemAlloc(ULONG); 163 163 PVOID CoTaskMemRealloc(PVOID, ULONG); 164 164 void CoTaskMemFree(PVOID); 165 165 HRESULT CreateDataAdviseHolder(LPDATAADVISEHOLDER*); 166 166 HRESULT CreateDataCache(LPUNKNOWN, REFCLSID, REFIID, PVOID*); 167 - HRESULT StgCreateDocfile(CPtr!(OLECHAR), DWORD, DWORD, IStorage**); 168 - HRESULT StgCreateDocfileOnILockBytes(ILockBytes*, DWORD, DWORD, IStorage**); 169 - HRESULT StgOpenStorage(CPtr!(OLECHAR), IStorage, DWORD, SNB, DWORD, IStorage*); 170 - HRESULT StgOpenStorageOnILockBytes(ILockBytes*, IStorage*, DWORD, SNB, DWORD, IStorage**); 171 - HRESULT StgIsStorageFile(CPtr!(OLECHAR)); 172 - HRESULT StgIsStorageILockBytes(ILockBytes*); 167 + HRESULT StgCreateDocfile(const(OLECHAR)*, DWORD, DWORD, IStorage*); 168 + HRESULT StgCreateDocfileOnILockBytes(ILockBytes, DWORD, DWORD, IStorage*); 169 + HRESULT StgOpenStorage(const(OLECHAR)*, IStorage, DWORD, SNB, DWORD, IStorage*); 170 + HRESULT StgOpenStorageOnILockBytes(ILockBytes, IStorage, DWORD, SNB, DWORD, IStorage*); 171 + HRESULT StgIsStorageFile(const(OLECHAR)*); 172 + HRESULT StgIsStorageILockBytes(ILockBytes); 173 173 HRESULT StgSetTimes(OLECHAR *, FILETIME *, FILETIME *, FILETIME *); 174 - HRESULT StgCreateStorageEx(CPtr!(WCHAR), DWORD, DWORD, DWORD, STGOPTIONS*, void*, REFIID, void**); 175 - HRESULT StgOpenStorageEx(CPtr!(WCHAR), DWORD, DWORD, DWORD, STGOPTIONS*, void*, REFIID, void**); 174 + HRESULT StgCreateStorageEx(const(WCHAR)*, DWORD, DWORD, DWORD, STGOPTIONS*, void*, REFIID, void**); 175 + HRESULT StgOpenStorageEx(const(WCHAR)*, DWORD, DWORD, DWORD, STGOPTIONS*, void*, REFIID, void**); 176 176 HRESULT BindMoniker(LPMONIKER, DWORD, REFIID, PVOID*); 177 177 HRESULT CoGetObject(LPCWSTR, BIND_OPTS*, REFIID, void**); 178 178 HRESULT MkParseDisplayName(LPBC, LPCOLESTR, ULONG*, LPMONIKER*); 179 179 HRESULT MonikerRelativePathTo(LPMONIKER, LPMONIKER, LPMONIKER*, BOOL); 180 180 HRESULT MonikerCommonPrefixWith(LPMONIKER, LPMONIKER, LPMONIKER*); 181 181 HRESULT CreateBindCtx(DWORD, LPBC*); 182 182 HRESULT CreateGenericComposite(LPMONIKER, LPMONIKER, LPMONIKER*);

Modified src/win32/objfwd.d from [2bf6641af127e85a] to [07bd66fce63e4755].

Modified src/win32/objidl.d from [6e8b38d251726498] to [4053c10fec8e7109].

86 86 87 87 struct DVTARGETDEVICE { 88 88 DWORD tdSize; 89 89 WORD tdDriverNameOffset; 90 90 WORD tdDeviceNameOffset; 91 91 WORD tdPortNameOffset; 92 92 WORD tdExtDevmodeOffset; 93 - BYTE tdData[1]; 93 + BYTE[1] tdData; 94 94 } 95 95 96 96 struct FORMATETC { 97 97 CLIPFORMAT cfFormat; 98 98 DVTARGETDEVICE* ptd; 99 99 DWORD dwAspect; 100 100 LONG lindex; ................................................................................ 104 104 105 105 struct RemSTGMEDIUM { 106 106 DWORD tymed; 107 107 DWORD dwHandleType; 108 108 ULONG pData; 109 109 uint pUnkForRelease; 110 110 uint cbData; 111 - BYTE data[1]; 111 + BYTE[1] data; 112 112 } 113 113 114 114 struct HLITEM { 115 115 ULONG uHLID; 116 116 LPWSTR pwzFriendlyName; 117 117 } 118 118 119 119 struct STATDATA { 120 120 FORMATETC formatetc; 121 121 DWORD grfAdvf; 122 - IAdviseSink* pAdvSink; 122 + IAdviseSink pAdvSink; 123 123 DWORD dwConnection; 124 124 } 125 125 126 126 struct STATPROPSETSTG { 127 127 FMTID fmtid; 128 128 CLSID clsid; 129 129 DWORD grfFlags; ................................................................................ 135 135 enum EXTCONN { 136 136 EXTCONN_STRONG = 1, 137 137 EXTCONN_WEAK = 2, 138 138 EXTCONN_CALLABLE = 4 139 139 } 140 140 141 141 struct MULTI_QI { 142 - CPtr!(IID) pIID; 143 - IUnknown pItf; 144 - HRESULT hr; 142 + const(IID)* pIID; 143 + IUnknown pItf; 144 + HRESULT hr; 145 145 } 146 146 147 147 struct AUTH_IDENTITY { 148 148 USHORT* User; 149 149 ULONG UserLength; 150 150 USHORT* Domain; 151 151 ULONG DomainLength; ................................................................................ 221 221 222 222 struct RPCOLEMESSAGE { 223 223 PVOID reserved1; 224 224 RPCOLEDATAREP dataRepresentation; 225 225 PVOID Buffer; 226 226 ULONG cbBuffer; 227 227 ULONG iMethod; 228 - PVOID reserved2[5]; 228 + PVOID[5] reserved2; 229 229 ULONG rpcFlags; 230 230 } 231 231 alias RPCOLEMESSAGE* PRPCOLEMESSAGE; 232 232 233 233 enum MKSYS { 234 234 MKSYS_NONE, 235 235 MKSYS_GENERICCOMPOSITE, ................................................................................ 245 245 MKRREDUCE_TOUSER = 131072, 246 246 MKRREDUCE_THROUGHUSER = 65536 247 247 } 248 248 249 249 struct RemSNB { 250 250 uint ulCntStr; 251 251 uint ulCntChar; 252 - OLECHAR rgString[1]; 252 + OLECHAR[1] rgString; 253 253 } 254 254 255 255 enum ADVF { 256 256 ADVF_NODATA = 1, 257 257 ADVF_PRIMEFIRST = 2, 258 258 ADVF_ONLYONCE = 4, 259 259 ADVFCACHE_NOHANDLER = 8, ................................................................................ 507 507 SOLE_AUTHENTICATION_INFO* aAuthInfo; 508 508 } 509 509 510 510 interface IEnumFORMATETC : IUnknown { 511 511 HRESULT Next(ULONG, FORMATETC*, ULONG*); 512 512 HRESULT Skip(ULONG); 513 513 HRESULT Reset(); 514 - HRESULT Clone(IEnumFORMATETC**); 514 + HRESULT Clone(IEnumFORMATETC*); 515 515 } 516 516 517 517 interface IEnumHLITEM : IUnknown { 518 518 HRESULT Next(ULONG, HLITEM*, ULONG*); 519 519 HRESULT Skip(ULONG); 520 520 HRESULT Reset(); 521 - HRESULT Clone(IEnumHLITEM**); 521 + HRESULT Clone(IEnumHLITEM*); 522 522 } 523 523 524 524 interface IEnumSTATDATA : IUnknown { 525 525 HRESULT Next(ULONG, STATDATA*, ULONG*); 526 526 HRESULT Skip(ULONG); 527 527 HRESULT Reset(); 528 - HRESULT Clone(IEnumSTATDATA**); 528 + HRESULT Clone(IEnumSTATDATA*); 529 529 } 530 530 531 531 interface IEnumSTATPROPSETSTG : IUnknown { 532 532 HRESULT Next(ULONG, STATPROPSETSTG*, ULONG*); 533 533 HRESULT Skip(ULONG); 534 534 HRESULT Reset(); 535 - HRESULT Clone(IEnumSTATPROPSETSTG**); 535 + HRESULT Clone(IEnumSTATPROPSETSTG*); 536 536 } 537 537 538 538 interface IEnumSTATPROPSTG : IUnknown { 539 539 HRESULT Next(ULONG, STATPROPSTG*, ULONG*); 540 540 HRESULT Skip(ULONG); 541 541 HRESULT Reset(); 542 - HRESULT Clone(IEnumSTATPROPSTG**); 542 + HRESULT Clone(IEnumSTATPROPSTG*); 543 543 } 544 544 545 545 interface IEnumSTATSTG : IUnknown { 546 546 HRESULT Next(ULONG, STATSTG*, ULONG*); 547 547 HRESULT Skip(ULONG); 548 548 HRESULT Reset(); 549 - HRESULT Clone(IEnumSTATSTG**); 549 + HRESULT Clone(IEnumSTATSTG*); 550 550 } 551 551 552 552 interface IEnumString : IUnknown { 553 553 HRESULT Next(ULONG, LPOLESTR*, ULONG*); 554 554 HRESULT Skip(ULONG); 555 555 HRESULT Reset(); 556 - HRESULT Clone(IEnumString**); 556 + HRESULT Clone(IEnumString*); 557 557 } 558 558 559 559 interface IEnumMoniker : IUnknown { 560 560 HRESULT Next(ULONG, IMoniker*, ULONG*); 561 561 HRESULT Skip(ULONG); 562 562 HRESULT Reset(); 563 - HRESULT Clone(IEnumMoniker**); 563 + HRESULT Clone(IEnumMoniker*); 564 564 } 565 565 566 566 567 567 interface IEnumUnknown : IUnknown { 568 568 HRESULT Next(ULONG, IUnknown*, ULONG*); 569 569 HRESULT Skip(ULONG); 570 570 HRESULT Reset(); 571 - HRESULT Clone(IEnumUnknown**); 571 + HRESULT Clone(IEnumUnknown*); 572 572 } 573 573 574 574 interface ISequentialStream : IUnknown { 575 575 HRESULT Read(void*, ULONG, ULONG*); 576 576 HRESULT Write(void* , ULONG, ULONG*); 577 577 } 578 578 ................................................................................ 634 634 635 635 interface IPersist : IUnknown { 636 636 HRESULT GetClassID(CLSID*); 637 637 } 638 638 639 639 interface IPersistStream : IPersist { 640 640 HRESULT IsDirty(); 641 - HRESULT Load(IStream*); 642 - HRESULT Save(IStream*, BOOL); 641 + HRESULT Load(IStream); 642 + HRESULT Save(IStream, BOOL); 643 643 HRESULT GetSizeMax(PULARGE_INTEGER); 644 644 } 645 645 646 646 interface IRunningObjectTable : IUnknown { 647 647 HRESULT Register(DWORD, LPUNKNOWN, LPMONIKER, PDWORD); 648 648 HRESULT Revoke(DWORD); 649 649 HRESULT IsRunning(LPMONIKER); 650 650 HRESULT GetObject(LPMONIKER, LPUNKNOWN*); 651 651 HRESULT NoteChangeTime(DWORD, LPFILETIME); 652 652 HRESULT GetTimeOfLastChange(LPMONIKER, LPFILETIME); 653 - HRESULT EnumRunning(IEnumMoniker**); 653 + HRESULT EnumRunning(IEnumMoniker*); 654 654 } 655 655 656 656 interface IBindCtx : IUnknown { 657 657 HRESULT RegisterObjectBound(LPUNKNOWN); 658 658 HRESULT RevokeObjectBound(LPUNKNOWN); 659 659 HRESULT ReleaseBoundObjects(); 660 660 HRESULT SetBindOptions(LPBIND_OPTS); 661 661 HRESULT GetBindOptions(LPBIND_OPTS); 662 - HRESULT GetRunningObjectTable(IRunningObjectTable**); 663 - HRESULT RegisterObjectParam(LPOLESTR, IUnknown*); 664 - HRESULT GetObjectParam(LPOLESTR, IUnknown**); 665 - HRESULT EnumObjectParam(IEnumString**); 662 + HRESULT GetRunningObjectTable(IRunningObjectTable*); 663 + HRESULT RegisterObjectParam(LPOLESTR, IUnknown); 664 + HRESULT GetObjectParam(LPOLESTR, IUnknown*); 665 + HRESULT EnumObjectParam(IEnumString*); 666 666 HRESULT RevokeObjectParam(LPOLESTR); 667 667 } 668 668 669 669 interface IMoniker: IPersistStream { 670 - HRESULT BindToObject(IBindCtx*, IMoniker*, REFIID, PVOID*); 671 - HRESULT BindToStorage(IBindCtx*, IMoniker*, REFIID, PVOID*); 672 - HRESULT Reduce(IBindCtx*, DWORD, IMoniker**, IMoniker**); 673 - HRESULT ComposeWith(IMoniker*, BOOL, IMoniker**); 674 - HRESULT Enum(BOOL, IEnumMoniker**); 675 - HRESULT IsEqual(IMoniker*); 670 + HRESULT BindToObject(IBindCtx, IMoniker, REFIID, PVOID*); 671 + HRESULT BindToStorage(IBindCtx, IMoniker, REFIID, PVOID*); 672 + HRESULT Reduce(IBindCtx, DWORD, IMoniker*, IMoniker*); 673 + HRESULT ComposeWith(IMoniker, BOOL, IMoniker*); 674 + HRESULT Enum(BOOL, IEnumMoniker*); 675 + HRESULT IsEqual(IMoniker); 676 676 HRESULT Hash(PDWORD); 677 - HRESULT IsRunning(IBindCtx*, IMoniker*, IMoniker*); 678 - HRESULT GetTimeOfLastChange(IBindCtx*, IMoniker*, LPFILETIME); 679 - HRESULT Inverse(IMoniker**); 680 - HRESULT CommonPrefixWith(IMoniker*, IMoniker**); 681 - HRESULT RelativePathTo(IMoniker*, IMoniker**); 682 - HRESULT GetDisplayName(IBindCtx*, IMoniker*, LPOLESTR*); 683 - HRESULT ParseDisplayName(IBindCtx*, IMoniker*, LPOLESTR, ULONG*, IMoniker**); 677 + HRESULT IsRunning(IBindCtx, IMoniker, IMoniker); 678 + HRESULT GetTimeOfLastChange(IBindCtx, IMoniker, LPFILETIME); 679 + HRESULT Inverse(IMoniker*); 680 + HRESULT CommonPrefixWith(IMoniker, IMoniker*); 681 + HRESULT RelativePathTo(IMoniker, IMoniker*); 682 + HRESULT GetDisplayName(IBindCtx, IMoniker, LPOLESTR*); 683 + HRESULT ParseDisplayName(IBindCtx, IMoniker, LPOLESTR, ULONG*, IMoniker*); 684 684 HRESULT IsSystemMoniker(PDWORD); 685 685 } 686 686 687 687 interface IPersistStorage : IPersist 688 688 { 689 689 HRESULT IsDirty(); 690 690 HRESULT InitNew(LPSTORAGE); ................................................................................ 705 705 706 706 interface IAdviseSink : IUnknown { 707 707 HRESULT QueryInterface(REFIID, PVOID*); 708 708 ULONG AddRef(); 709 709 ULONG Release(); 710 710 void OnDataChange(FORMATETC*, STGMEDIUM*); 711 711 void OnViewChange(DWORD, LONG); 712 - void OnRename(IMoniker*); 712 + void OnRename(IMoniker); 713 713 void OnSave(); 714 714 void OnClose(); 715 715 } 716 716 717 717 interface IAdviseSink2 : IAdviseSink 718 718 { 719 - void OnLinkSrcChange(IMoniker*); 719 + void OnLinkSrcChange(IMoniker); 720 720 } 721 721 722 722 interface IDataObject : IUnknown { 723 723 HRESULT GetData(FORMATETC*, STGMEDIUM*); 724 724 HRESULT GetDataHere(FORMATETC*, STGMEDIUM*); 725 725 HRESULT QueryGetData(FORMATETC*); 726 726 HRESULT GetCanonicalFormatEtc(FORMATETC*, FORMATETC*); 727 727 HRESULT SetData(FORMATETC*, STGMEDIUM*, BOOL); 728 - HRESULT EnumFormatEtc(DWORD, IEnumFORMATETC**); 729 - HRESULT DAdvise(FORMATETC*, DWORD, IAdviseSink*, PDWORD); 728 + HRESULT EnumFormatEtc(DWORD, IEnumFORMATETC*); 729 + HRESULT DAdvise(FORMATETC*, DWORD, IAdviseSink, PDWORD); 730 730 HRESULT DUnadvise(DWORD); 731 - HRESULT EnumDAdvise(IEnumSTATDATA**); 731 + HRESULT EnumDAdvise(IEnumSTATDATA*); 732 732 } 733 733 734 734 interface IDataAdviseHolder : IUnknown { 735 - HRESULT Advise(IDataObject*, FORMATETC*, DWORD, IAdviseSink*, PDWORD); 735 + HRESULT Advise(IDataObject, FORMATETC*, DWORD, IAdviseSink, PDWORD); 736 736 HRESULT Unadvise(DWORD); 737 - HRESULT EnumAdvise(IEnumSTATDATA**); 738 - HRESULT SendOnDataChange(IDataObject*, DWORD, DWORD); 737 + HRESULT EnumAdvise(IEnumSTATDATA*); 738 + HRESULT SendOnDataChange(IDataObject, DWORD, DWORD); 739 739 } 740 740 741 741 interface IStorage : IUnknown { 742 - HRESULT CreateStream(LPCWSTR, DWORD, DWORD, DWORD, IStream*); 743 - HRESULT OpenStream(LPCWSTR, PVOID, DWORD, DWORD, IStream*); 744 - HRESULT CreateStorage(LPCWSTR, DWORD, DWORD, DWORD, IStorage*); 745 - HRESULT OpenStorage(LPCWSTR, IStorage, DWORD, SNB, DWORD, IStorage*); 742 + HRESULT CreateStream(LPCWSTR, DWORD, DWORD, DWORD, IStream); 743 + HRESULT OpenStream(LPCWSTR, PVOID, DWORD, DWORD, IStream); 744 + HRESULT CreateStorage(LPCWSTR, DWORD, DWORD, DWORD, IStorage); 745 + HRESULT OpenStorage(LPCWSTR, IStorage, DWORD, SNB, DWORD, IStorage); 746 746 HRESULT CopyTo(DWORD, IID* , SNB, IStorage); 747 747 HRESULT MoveElementTo(LPCWSTR, IStorage, LPCWSTR, DWORD); 748 748 HRESULT Commit(DWORD); 749 749 HRESULT Revert(); 750 - HRESULT EnumElements(DWORD, PVOID, DWORD, IEnumSTATSTG*); 750 + HRESULT EnumElements(DWORD, PVOID, DWORD, IEnumSTATSTG); 751 751 HRESULT DestroyElement(LPCWSTR); 752 752 HRESULT RenameElement(LPCWSTR, LPCWSTR); 753 753 HRESULT SetElementTimes(LPCWSTR, FILETIME* , FILETIME* , FILETIME* ); 754 754 HRESULT SetClass(REFCLSID); 755 755 HRESULT SetStateBits(DWORD, DWORD); 756 756 HRESULT Stat(STATSTG*, DWORD); 757 757 } ................................................................................ 769 769 HRESULT SendReceive(RPCOLEMESSAGE*, PULONG); 770 770 HRESULT FreeBuffer(RPCOLEMESSAGE*); 771 771 HRESULT GetDestCtx(PDWORD, PVOID*); 772 772 HRESULT IsConnected(); 773 773 } 774 774 775 775 interface IRpcProxyBuffer : IUnknown { 776 - HRESULT Connect(IRpcChannelBuffer*); 776 + HRESULT Connect(IRpcChannelBuffer); 777 777 void Disconnect(); 778 778 } 779 779 780 780 interface IRpcStubBuffer : IUnknown { 781 781 HRESULT Connect(LPUNKNOWN); 782 782 void Disconnect(); 783 783 HRESULT Invoke(RPCOLEMESSAGE*, LPRPCSTUBBUFFER); ................................................................................ 787 787 HRESULT DebugServerRelease(PVOID); 788 788 } 789 789 790 790 interface IPSFactoryBuffer : IUnknown { 791 791 HRESULT CreateProxy(LPUNKNOWN, REFIID, LPRPCPROXYBUFFER*, PVOID*); 792 792 HRESULT CreateStub(REFIID, LPUNKNOWN, LPRPCSTUBBUFFER*); 793 793 } 794 -alias IPSFactoryBuffer* LPPSFACTORYBUFFER; 794 +alias IPSFactoryBuffer LPPSFACTORYBUFFER; 795 795 796 796 interface ILockBytes : IUnknown { 797 797 HRESULT ReadAt(ULARGE_INTEGER, PVOID, ULONG, ULONG*); 798 798 HRESULT WriteAt(ULARGE_INTEGER, PCVOID, ULONG, ULONG*); 799 799 HRESULT Flush(); 800 800 HRESULT SetSize(ULARGE_INTEGER); 801 801 HRESULT LockRegion(ULARGE_INTEGER, ULARGE_INTEGER, DWORD); ................................................................................ 835 835 HRESULT DeleteMultiple(ULONG, PROPSPEC* ); 836 836 HRESULT ReadPropertyNames(ULONG, PROPID* , LPWSTR*); 837 837 HRESULT WritePropertyNames(ULONG, PROPID* , LPWSTR* ); 838 838 HRESULT DeletePropertyNames(ULONG, PROPID* ); 839 839 HRESULT SetClass(REFCLSID); 840 840 HRESULT Commit(DWORD); 841 841 HRESULT Revert(); 842 - HRESULT Enum(IEnumSTATPROPSTG**); 842 + HRESULT Enum(IEnumSTATPROPSTG*); 843 843 HRESULT Stat(STATPROPSTG*); 844 844 HRESULT SetTimes(FILETIME* , FILETIME* , FILETIME* ); 845 845 } 846 846 847 847 interface IPropertySetStorage : IUnknown { 848 848 HRESULT Create(REFFMTID, CLSID*, DWORD, DWORD, LPPROPERTYSTORAGE*); 849 849 HRESULT Open(REFFMTID, DWORD, LPPROPERTYSTORAGE*); 850 850 HRESULT Delete(REFFMTID); 851 - HRESULT Enum(IEnumSTATPROPSETSTG**); 851 + HRESULT Enum(IEnumSTATPROPSETSTG*); 852 852 } 853 853 854 854 interface IClientSecurity : IUnknown { 855 855 HRESULT QueryBlanket(PVOID, PDWORD, PDWORD, OLECHAR**, PDWORD, PDWORD, RPC_AUTH_IDENTITY_HANDLE**, PDWORD*); 856 856 HRESULT SetBlanket(PVOID, DWORD, DWORD, LPWSTR, DWORD, DWORD, RPC_AUTH_IDENTITY_HANDLE*, DWORD); 857 857 HRESULT CopyProxy(LPUNKNOWN, LPUNKNOWN*); 858 858 } ................................................................................ 883 883 HRESULT LayoutScript(STORAGELAYOUT*, DWORD, DWORD); 884 884 HRESULT BeginMonitor(); 885 885 HRESULT EndMonitor(); 886 886 HRESULT ReLayoutDocfile(OLECHAR*); 887 887 } 888 888 889 889 interface IGlobalInterfaceTable : IUnknown { 890 - HRESULT RegisterInterfaceInGlobal(IUnknown*, REFIID, DWORD*); 890 + HRESULT RegisterInterfaceInGlobal(IUnknown, REFIID, DWORD*); 891 891 HRESULT RevokeInterfaceFromGlobal(DWORD); 892 892 HRESULT GetInterfaceFromGlobal(DWORD, REFIID, void**); 893 893 } 894 894 895 895 /+ 896 896 // These are probably unnecessary for D. 897 897 extern (Windows) { 898 -HRESULT IMarshal_GetUnmarshalClass_Proxy(IMarshal*, REFIID, void*, DWORD, void*, DWORD, CLSID*); 899 -void IMarshal_GetUnmarshalClass_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 900 -HRESULT IMarshal_GetMarshalSizeMax_Proxy(IMarshal*, REFIID, void*, DWORD, void*, DWORD, DWORD*); 901 -void IMarshal_GetMarshalSizeMax_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 902 -HRESULT IMarshal_MarshalInterface_Proxy(IMarshal*, IStream*, REFIID, void*, DWORD, void*, DWORD); 903 -void IMarshal_MarshalInterface_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 904 -HRESULT IMarshal_UnmarshalInterface_Proxy(IMarshal*, IStream*, REFIID, void**); 905 -void IMarshal_UnmarshalInterface_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 906 -HRESULT IMarshal_ReleaseMarshalData_Proxy(IMarshal*, IStream*); 907 -void IMarshal_ReleaseMarshalData_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 908 -HRESULT IMarshal_DisconnectObject_Proxy(IMarshal*, DWORD); 909 -void IMarshal_DisconnectObject_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 910 -void* IMalloc_Alloc_Proxy(IMalloc*, ULONG); 911 -void IMalloc_Alloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 912 -void* IMalloc_Realloc_Proxy(IMalloc*, void*, ULONG); 913 -void IMalloc_Realloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 914 -void IMalloc_Free_Proxy(IMalloc*, void*); 915 -void IMalloc_Free_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 916 -ULONG IMalloc_GetSize_Proxy(IMalloc*, void*); 917 -void IMalloc_GetSize_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 918 -int IMalloc_DidAlloc_Proxy(IMalloc*, void*); 919 -void IMalloc_DidAlloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 920 -void IMalloc_HeapMinimize_Proxy(IMalloc*); 921 -void IMalloc_HeapMinimize_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 922 -ULONG IMallocSpy_PreAlloc_Proxy(IMallocSpy*, ULONG cbRequest); 923 -void IMallocSpy_PreAlloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 924 -void* IMallocSpy_PostAlloc_Proxy(IMallocSpy*, void*); 925 -void IMallocSpy_PostAlloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 926 -void* IMallocSpy_PreFree_Proxy(IMallocSpy*, void*, BOOL); 927 -void IMallocSpy_PreFree_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 928 -void IMallocSpy_PostFree_Proxy(IMallocSpy*, BOOL); 929 -void IMallocSpy_PostFree_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 930 -ULONG IMallocSpy_PreRealloc_Proxy(IMallocSpy*, void*, ULONG, void**, BOOL); 931 -void IMallocSpy_PreRealloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 932 -void* IMallocSpy_PostRealloc_Proxy(IMallocSpy*, void*, BOOL); 933 -void IMallocSpy_PostRealloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 934 -void* IMallocSpy_PreGetSize_Proxy(IMallocSpy*, void*, BOOL); 935 -void IMallocSpy_PreGetSize_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 936 -ULONG IMallocSpy_PostGetSize_Proxy(IMallocSpy*, ULONG, BOOL); 937 -void IMallocSpy_PostGetSize_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 938 -void* IMallocSpy_PreDidAlloc_Proxy(IMallocSpy*, void*, BOOL); 939 -void IMallocSpy_PreDidAlloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 940 -int IMallocSpy_PostDidAlloc_Proxy(IMallocSpy*, void*, BOOL, int); 941 -void IMallocSpy_PostDidAlloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 942 -void IMallocSpy_PreHeapMinimize_Proxy(IMallocSpy* ); 943 -void IMallocSpy_PreHeapMinimize_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 944 -void IMallocSpy_PostHeapMinimize_Proxy(IMallocSpy*); 945 -void IMallocSpy_PostHeapMinimize_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 946 -HRESULT IStdMarshalInfo_GetClassForHandler_Proxy(IStdMarshalInfo*, DWORD, void*, CLSID*); 947 -void IStdMarshalInfo_GetClassForHandler_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 948 -DWORD IExternalConnection_AddConnection_Proxy(IExternalConnection*, DWORD, DWORD); 949 -void IExternalConnection_AddConnection_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 950 -DWORD IExternalConnection_ReleaseConnection_Proxy(IExternalConnection*, DWORD, DWORD, BOOL); 951 -void IExternalConnection_ReleaseConnection_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 952 -HRESULT IEnumUnknown_RemoteNext_Proxy(IEnumUnknown*, ULONG, IUnknown**, ULONG*); 953 -void IEnumUnknown_RemoteNext_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 954 -HRESULT IEnumUnknown_Skip_Proxy(IEnumUnknown*, ULONG); 955 -void IEnumUnknown_Skip_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 956 -HRESULT IEnumUnknown_Reset_Proxy(IEnumUnknown* ); 957 -void IEnumUnknown_Reset_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 958 -HRESULT IEnumUnknown_Clone_Proxy(IEnumUnknown*, IEnumUnknown**); 959 -void IEnumUnknown_Clone_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 960 -HRESULT IBindCtx_RegisterObjectBound_Proxy(IBindCtx*, IUnknown*punk); 961 -void IBindCtx_RegisterObjectBound_Stub(IRpcStubBuffer*, IRpcChannelBuffer*_pRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 962 -HRESULT IBindCtx_RevokeObjectBound_Proxy(IBindCtx*, IUnknown*punk); 963 -void IBindCtx_RevokeObjectBound_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 964 -HRESULT IBindCtx_ReleaseBoundObjects_Proxy(IBindCtx*); 965 -void IBindCtx_ReleaseBoundObjects_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 966 -HRESULT IBindCtx_SetBindOptions_Proxy(IBindCtx*, BIND_OPTS*); 967 -void IBindCtx_SetBindOptions_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 968 -HRESULT IBindCtx_GetBindOptions_Proxy(IBindCtx*, BIND_OPTS*pbindopts); 969 -void IBindCtx_GetBindOptions_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 970 -HRESULT IBindCtx_GetRunningObjectTable_Proxy(IBindCtx*, IRunningObjectTable**); 971 -void IBindCtx_GetRunningObjectTable_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 972 -HRESULT IBindCtx_RegisterObjectParam_Proxy(IBindCtx*, LPCSTR, IUnknown*); 973 -void IBindCtx_RegisterObjectParam_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 974 -HRESULT IBindCtx_GetObjectParam_Proxy(IBindCtx*, LPCSTR, IUnknown**); 975 -void IBindCtx_GetObjectParam_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 976 -HRESULT IBindCtx_EnumObjectParam_Proxy(IBindCtx*, IEnumString**); 977 -void IBindCtx_EnumObjectParam_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 978 -HRESULT IBindCtx_RevokeObjectParam_Proxy(IBindCtx*, LPCSTR); 979 -void IBindCtx_RevokeObjectParam_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 980 -HRESULT IEnumMoniker_RemoteNext_Proxy(IEnumMoniker*, ULONG, IMoniker**, ULONG*); 981 -void IEnumMoniker_RemoteNext_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 982 -HRESULT IEnumMoniker_Skip_Proxy(IEnumMoniker*, ULONG); 983 -void IEnumMoniker_Skip_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 984 -HRESULT IEnumMoniker_Reset_Proxy(IEnumMoniker*); 985 -void IEnumMoniker_Reset_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 986 -HRESULT IEnumMoniker_Clone_Proxy(IEnumMoniker*, IEnumMoniker**); 987 -void IEnumMoniker_Clone_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 988 -HRESULT IRunnableObject_GetRunningClass_Proxy(IRunnableObject*, LPCLSID); 989 -void IRunnableObject_GetRunningClass_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 990 -HRESULT IRunnableObject_Run_Proxy(IRunnableObject*, LPBINDCTX); 991 -void IRunnableObject_Run_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 992 -BOOL IRunnableObject_IsRunning_Proxy(IRunnableObject*); 993 -void IRunnableObject_IsRunning_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 994 -HRESULT IRunnableObject_LockRunning_Proxy(IRunnableObject*, BOOL, BOOL); 995 -void IRunnableObject_LockRunning_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 996 -HRESULT IRunnableObject_SetContainedObject_Proxy(IRunnableObject*, BOOL); 997 -void IRunnableObject_SetContainedObject_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 998 -HRESULT IRunningObjectTable_Register_Proxy(IRunningObjectTable*, DWORD, IUnknown*, IMoniker*, DWORD*); 999 -void IRunningObjectTable_Register_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1000 -HRESULT IRunningObjectTable_Revoke_Proxy(IRunningObjectTable*, DWORD); 1001 -void IRunningObjectTable_Revoke_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1002 -HRESULT IRunningObjectTable_IsRunning_Proxy(IRunningObjectTable*, IMoniker*); 1003 -void IRunningObjectTable_IsRunning_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1004 -HRESULT IRunningObjectTable_GetObject_Proxy(IRunningObjectTable*, IMoniker*, IUnknown**); 1005 -void IRunningObjectTable_GetObject_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1006 -HRESULT IRunningObjectTable_NoteChangeTime_Proxy(IRunningObjectTable*, DWORD, FILETIME*); 1007 -void IRunningObjectTable_NoteChangeTime_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1008 -HRESULT IRunningObjectTable_GetTimeOfLastChange_Proxy(IRunningObjectTable*, IMoniker*, FILETIME*); 1009 -void IRunningObjectTable_GetTimeOfLastChange_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1010 -HRESULT IRunningObjectTable_EnumRunning_Proxy(IRunningObjectTable*, IEnumMoniker**); 1011 -void IRunningObjectTable_EnumRunning_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1012 -HRESULT IPersist_GetClassID_Proxy(IPersist*, CLSID*); 1013 -void IPersist_GetClassID_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1014 -HRESULT IPersistStream_IsDirty_Proxy(IPersistStream*); 1015 -void IPersistStream_IsDirty_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1016 -HRESULT IPersistStream_Load_Proxy(IPersistStream*, IStream*); 1017 -void IPersistStream_Load_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1018 -HRESULT IPersistStream_Save_Proxy(IPersistStream*, IStream*, BOOL); 1019 -void IPersistStream_Save_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1020 -HRESULT IPersistStream_GetSizeMax_Proxy(IPersistStream*, ULARGE_INTEGER*); 1021 -void IPersistStream_GetSizeMax_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1022 -HRESULT IMoniker_RemoteBindToObject_Proxy(IMoniker*, IBindCtx*, IMoniker*, REFIID, IUnknown**); 1023 -void IMoniker_RemoteBindToObject_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1024 -HRESULT IMoniker_RemoteBindToStorage_Proxy(IMoniker*, IBindCtx*, IMoniker*, REFIID, IUnknown**); 1025 -void IMoniker_RemoteBindToStorage_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1026 -HRESULT IMoniker_Reduce_Proxy(IMoniker*, IBindCtx*, DWORD, IMoniker**, IMoniker**); 1027 -void IMoniker_Reduce_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1028 -HRESULT IMoniker_ComposeWith_Proxy(IMoniker*, IMoniker*, BOOL, IMoniker**); 1029 -void IMoniker_ComposeWith_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1030 -HRESULT IMoniker_Enum_Proxy(IMoniker*, BOOL, IEnumMoniker**); 1031 -void IMoniker_Enum_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1032 -HRESULT IMoniker_IsEqual_Proxy(IMoniker*, IMoniker*); 1033 -void IMoniker_IsEqual_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1034 -HRESULT IMoniker_Hash_Proxy(IMoniker*, DWORD*); 1035 -void IMoniker_Hash_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1036 -HRESULT IMoniker_IsRunning_Proxy(IMoniker*, IBindCtx*, IMoniker*, IMoniker*); 1037 -void IMoniker_IsRunning_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1038 -HRESULT IMoniker_GetTimeOfLastChange_Proxy(IMoniker*, IBindCtx*, IMoniker*, FILETIME*); 1039 -void IMoniker_GetTimeOfLastChange_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1040 -HRESULT IMoniker_Inverse_Proxy(IMoniker*, IMoniker**); 1041 -void IMoniker_Inverse_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1042 -HRESULT IMoniker_CommonPrefixWith_Proxy(IMoniker*, IMoniker*, IMoniker**); 1043 -void IMoniker_CommonPrefixWith_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1044 -HRESULT IMoniker_RelativePathTo_Proxy(IMoniker*, IMoniker*, IMoniker**); 1045 -void IMoniker_RelativePathTo_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1046 -HRESULT IMoniker_GetDisplayName_Proxy(IMoniker*, IBindCtx*, IMoniker*, LPCSTR*); 1047 -void IMoniker_GetDisplayName_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1048 -HRESULT IMoniker_ParseDisplayName_Proxy(IMoniker*, IBindCtx*, IMoniker*, LPCSTR, ULONG*, IMoniker**); 1049 -void IMoniker_ParseDisplayName_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1050 -HRESULT IMoniker_IsSystemMoniker_Proxy(IMoniker*, DWORD*); 1051 -void IMoniker_IsSystemMoniker_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1052 -HRESULT IROTData_GetComparisonData_Proxy(IROTData*, BYTE*, ULONG cbMax, ULONG*); 1053 -void IROTData_GetComparisonData_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1054 -HRESULT IEnumString_RemoteNext_Proxy(IEnumString*, ULONG, LPCSTR*rgelt, ULONG*); 1055 -void IEnumString_RemoteNext_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1056 -HRESULT IEnumString_Skip_Proxy(IEnumString*, ULONG); 1057 -void IEnumString_Skip_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1058 -HRESULT IEnumString_Reset_Proxy(IEnumString*); 1059 -void IEnumString_Reset_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1060 -HRESULT IEnumString_Clone_Proxy(IEnumString*, IEnumString**); 1061 -void IEnumString_Clone_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1062 -HRESULT IStream_RemoteRead_Proxy(IStream*, BYTE*, ULONG, ULONG*); 1063 -void IStream_RemoteRead_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1064 -HRESULT IStream_RemoteWrite_Proxy(IStream*, BYTE*pv, ULONG, ULONG*); 1065 -void IStream_RemoteWrite_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1066 -HRESULT IStream_RemoteSeek_Proxy(IStream*, LARGE_INTEGER, DWORD, ULARGE_INTEGER*); 1067 -void IStream_RemoteSeek_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1068 -HRESULT IStream_SetSize_Proxy(IStream*, ULARGE_INTEGER); 1069 -void IStream_SetSize_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1070 -HRESULT IStream_RemoteCopyTo_Proxy(IStream*, IStream*, ULARGE_INTEGER, ULARGE_INTEGER*, ULARGE_INTEGER*); 1071 -void IStream_RemoteCopyTo_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1072 -HRESULT IStream_Commit_Proxy(IStream*, DWORD); 1073 -void IStream_Commit_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1074 -HRESULT IStream_Revert_Proxy(IStream*); 1075 -void IStream_Revert_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1076 -HRESULT IStream_LockRegion_Proxy(IStream*, ULARGE_INTEGER, ULARGE_INTEGER, DWORD); 1077 -void IStream_LockRegion_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1078 -HRESULT IStream_UnlockRegion_Proxy(IStream*, ULARGE_INTEGER, ULARGE_INTEGER, DWORD); 1079 -void IStream_UnlockRegion_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1080 -HRESULT IStream_Stat_Proxy(IStream*, STATSTG*, DWORD); 1081 -void IStream_Stat_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1082 -HRESULT IStream_Clone_Proxy(IStream*, IStream**); 1083 -void IStream_Clone_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1084 -HRESULT IEnumSTATSTG_RemoteNext_Proxy(IEnumSTATSTG*, ULONG, STATSTG*, ULONG*); 1085 -void IEnumSTATSTG_RemoteNext_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1086 -HRESULT IEnumSTATSTG_Skip_Proxy(IEnumSTATSTG*, ULONG celt); 1087 -void IEnumSTATSTG_Skip_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1088 -HRESULT IEnumSTATSTG_Reset_Proxy(IEnumSTATSTG*); 1089 -void IEnumSTATSTG_Reset_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1090 -HRESULT IEnumSTATSTG_Clone_Proxy(IEnumSTATSTG*, IEnumSTATSTG**); 1091 -void IEnumSTATSTG_Clone_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1092 -HRESULT IStorage_CreateStream_Proxy(IStorage*, OLECHAR*, DWORD, DWORD, DWORD, IStream**); 1093 -void IStorage_CreateStream_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1094 -HRESULT IStorage_RemoteOpenStream_Proxy(IStorage*, CPtr!(OLECHAR), uint, BYTE*, DWORD, DWORD, IStream**); 1095 -void IStorage_RemoteOpenStream_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1096 -HRESULT IStorage_CreateStorage_Proxy(IStorage*, OLECHAR*, DWORD, DWORD, DWORD, IStorage**); 1097 -void IStorage_CreateStorage_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1098 -HRESULT IStorage_OpenStorage_Proxy(IStorage*, OLECHAR*, IStorage*, DWORD, SNB, DWORD, IStorage**); 1099 -void IStorage_OpenStorage_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1100 -HRESULT IStorage_CopyTo_Proxy(IStorage*, DWORD, CPtr!(IID), SNB, IStorage*); 1101 -void IStorage_CopyTo_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1102 -HRESULT IStorage_MoveElementTo_Proxy(IStorage*, CPtr!(OLECHAR), IStorage*, CPtr!(OLECHAR), DWORD); 1103 -void IStorage_MoveElementTo_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1104 -HRESULT IStorage_Commit_Proxy(IStorage*, DWORD); 1105 -void IStorage_Commit_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1106 -HRESULT IStorage_Revert_Proxy(IStorage*); 1107 -void IStorage_Revert_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1108 -HRESULT IStorage_RemoteEnumElements_Proxy(IStorage*, DWORD, uint, BYTE*, DWORD, IEnumSTATSTG**); 1109 -void IStorage_RemoteEnumElements_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1110 -HRESULT IStorage_DestroyElement_Proxy(IStorage*, OLECHAR*); 1111 -void IStorage_DestroyElement_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1112 -HRESULT IStorage_RenameElement_Proxy(IStorage*, CPtr!(OLECHAR), CPtr!(OLECHAR)); 1113 -void IStorage_RenameElement_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1114 -HRESULT IStorage_SetElementTimes_Proxy(IStorage*, CPtr!(OLECHAR), CPtr!(FILETIME), CPtr!(FILETIME), CPtr!(FILETIME)); 1115 -void IStorage_SetElementTimes_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1116 -HRESULT IStorage_SetClass_Proxy(IStorage*, REFCLSID); 1117 -void IStorage_SetClass_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1118 -HRESULT IStorage_SetStateBits_Proxy(IStorage*, DWORD, DWORD); 1119 -void IStorage_SetStateBits_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1120 -HRESULT IStorage_Stat_Proxy(IStorage*, STATSTG*, DWORD); 1121 -void IStorage_Stat_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1122 -HRESULT IPersistFile_IsDirty_Proxy(IPersistFile*); 1123 -void IPersistFile_IsDirty_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1124 -HRESULT IPersistFile_Load_Proxy(IPersistFile*, LPCOLESTR, DWORD); 1125 -void IPersistFile_Load_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1126 -HRESULT IPersistFile_Save_Proxy(IPersistFile*, LPCOLESTR pszFileName, BOOL); 1127 -void IPersistFile_Save_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1128 -HRESULT IPersistFile_SaveCompleted_Proxy(IPersistFile*, LPCOLESTR); 1129 -void IPersistFile_SaveCompleted_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1130 -HRESULT IPersistFile_GetCurFile_Proxy(IPersistFile*, LPCSTR*); 1131 -void IPersistFile_GetCurFile_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1132 -HRESULT IPersistStorage_IsDirty_Proxy(IPersistStorage*); 1133 -void IPersistStorage_IsDirty_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1134 -HRESULT IPersistStorage_InitNew_Proxy(IPersistStorage*, IStorage*); 1135 -void IPersistStorage_InitNew_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1136 -HRESULT IPersistStorage_Load_Proxy(IPersistStorage*, IStorage*); 1137 -void IPersistStorage_Load_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1138 -HRESULT IPersistStorage_Save_Proxy(IPersistStorage*, IStorage*, BOOL); 1139 -void IPersistStorage_Save_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1140 -HRESULT IPersistStorage_SaveCompleted_Proxy(IPersistStorage*, IStorage*); 1141 -void IPersistStorage_SaveCompleted_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1142 -HRESULT IPersistStorage_HandsOffStorage_Proxy(IPersistStorage*); 1143 -void IPersistStorage_HandsOffStorage_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1144 -HRESULT ILockBytes_RemoteReadAt_Proxy(ILockBytes*, ULARGE_INTEGER, BYTE*, ULONG, ULONG*); 1145 -void ILockBytes_RemoteReadAt_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1146 -HRESULT ILockBytes_RemoteWriteAt_Proxy(ILockBytes*, ULARGE_INTEGER, BYTE*pv, ULONG, ULONG*); 1147 -void ILockBytes_RemoteWriteAt_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1148 -HRESULT ILockBytes_Flush_Proxy(ILockBytes*); 1149 -void ILockBytes_Flush_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1150 -HRESULT ILockBytes_SetSize_Proxy(ILockBytes*, ULARGE_INTEGER); 1151 -void ILockBytes_SetSize_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1152 -HRESULT ILockBytes_LockRegion_Proxy(ILockBytes*, ULARGE_INTEGER, ULARGE_INTEGER, DWORD); 1153 -void ILockBytes_LockRegion_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1154 -HRESULT ILockBytes_UnlockRegion_Proxy(ILockBytes*, ULARGE_INTEGER, ULARGE_INTEGER, DWORD); 1155 -void ILockBytes_UnlockRegion_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1156 -HRESULT ILockBytes_Stat_Proxy(ILockBytes*, STATSTG*, DWORD); 1157 -void ILockBytes_Stat_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1158 -HRESULT IEnumFORMATETC_RemoteNext_Proxy(IEnumFORMATETC*, ULONG, FORMATETC*, ULONG*); 1159 -void IEnumFORMATETC_RemoteNext_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1160 -HRESULT IEnumFORMATETC_Skip_Proxy(IEnumFORMATETC*, ULONG); 1161 -void IEnumFORMATETC_Skip_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1162 -HRESULT IEnumFORMATETC_Reset_Proxy(IEnumFORMATETC*); 1163 -void IEnumFORMATETC_Reset_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1164 -HRESULT IEnumFORMATETC_Clone_Proxy(IEnumFORMATETC*, IEnumFORMATETC**); 1165 -void IEnumFORMATETC_Clone_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1166 -HRESULT IEnumFORMATETC_Next_Proxy(IEnumFORMATETC*, ULONG, FORMATETC*, ULONG*); 1167 -HRESULT IEnumFORMATETC_Next_Stub(IEnumFORMATETC*, ULONG, FORMATETC*, ULONG*); 1168 -HRESULT IEnumSTATDATA_RemoteNext_Proxy(IEnumSTATDATA*, ULONG, STATDATA*, ULONG*); 1169 -void IEnumSTATDATA_RemoteNext_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1170 -HRESULT IEnumSTATDATA_Skip_Proxy(IEnumSTATDATA*, ULONG); 1171 -void IEnumSTATDATA_Skip_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1172 -HRESULT IEnumSTATDATA_Reset_Proxy(IEnumSTATDATA*); 1173 -void IEnumSTATDATA_Reset_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1174 -HRESULT IEnumSTATDATA_Clone_Proxy(IEnumSTATDATA*, IEnumSTATDATA**); 1175 -void IEnumSTATDATA_Clone_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1176 -HRESULT IEnumSTATDATA_Next_Proxy(IEnumSTATDATA*, ULONG, STATDATA*, ULONG*); 1177 -HRESULT IEnumSTATDATA_Next_Stub(IEnumSTATDATA*, ULONG, STATDATA*, ULONG*); 1178 -HRESULT IRootStorage_SwitchToFile_Proxy(IRootStorage*, LPCSTR); 1179 -void IRootStorage_SwitchToFile_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1180 -void IAdviseSink_RemoteOnDataChange_Proxy(IAdviseSink*, FORMATETC*, RemSTGMEDIUM*); 1181 -void IAdviseSink_RemoteOnDataChange_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1182 -void IAdviseSink_RemoteOnViewChange_Proxy(IAdviseSink*, DWORD, LONG); 1183 -void IAdviseSink_RemoteOnViewChange_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1184 -void IAdviseSink_RemoteOnRename_Proxy(IAdviseSink*, IMoniker*); 1185 -void IAdviseSink_RemoteOnRename_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1186 -void IAdviseSink_RemoteOnSave_Proxy(IAdviseSink*); 1187 -void IAdviseSink_RemoteOnSave_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1188 -HRESULT IAdviseSink_RemoteOnClose_Proxy(IAdviseSink*); 1189 -void IAdviseSink_RemoteOnClose_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1190 -void IAdviseSink_OnDataChange_Proxy(IAdviseSink*, FORMATETC*, STGMEDIUM*); 1191 -void IAdviseSink_OnDataChange_Stub(IAdviseSink*, FORMATETC*, RemSTGMEDIUM*); 1192 -void IAdviseSink_OnViewChange_Proxy(IAdviseSink*, DWORD, LONG); 1193 -void IAdviseSink_OnViewChange_Stub(IAdviseSink*, DWORD, LONG); 1194 -void IAdviseSink_OnRename_Proxy(IAdviseSink*, IMoniker*); 1195 -void IAdviseSink_OnRename_Stub(IAdviseSink*, IMoniker*); 1196 -void IAdviseSink_OnSave_Proxy(IAdviseSink*); 1197 -void IAdviseSink_OnSave_Stub(IAdviseSink*); 1198 -void IAdviseSink_OnClose_Proxy(IAdviseSink*); 1199 -HRESULT IAdviseSink_OnClose_Stub(IAdviseSink*); 1200 -void IAdviseSink2_RemoteOnLinkSrcChange_Proxy(IAdviseSink2*, IMoniker*); 1201 -void IAdviseSink2_RemoteOnLinkSrcChange_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1202 -void IAdviseSink2_OnLinkSrcChange_Proxy(IAdviseSink2*, IMoniker*); 1203 -void IAdviseSink2_OnLinkSrcChange_Stub(IAdviseSink2*, IMoniker*); 1204 -HRESULT IDataObject_RemoteGetData_Proxy(IDataObject*, FORMATETC*, RemSTGMEDIUM**); 1205 -void IDataObject_RemoteGetData_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1206 -HRESULT IDataObject_RemoteGetDataHere_Proxy(IDataObject*, FORMATETC*, RemSTGMEDIUM**); 1207 -void IDataObject_RemoteGetDataHere_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1208 -HRESULT IDataObject_QueryGetData_Proxy(IDataObject*, FORMATETC*); 1209 -void IDataObject_QueryGetData_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1210 -HRESULT IDataObject_GetCanonicalFormatEtc_Proxy(IDataObject*, FORMATETC*, FORMATETC*); 1211 -void IDataObject_GetCanonicalFormatEtc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1212 -HRESULT IDataObject_RemoteSetData_Proxy(IDataObject*, FORMATETC*, RemSTGMEDIUM*, BOOL); 1213 -void IDataObject_RemoteSetData_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1214 -HRESULT IDataObject_EnumFormatEtc_Proxy(IDataObject*, DWORD, IEnumFORMATETC**); 1215 -void IDataObject_EnumFormatEtc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1216 -HRESULT IDataObject_DAdvise_Proxy(IDataObject*, FORMATETC*, DWORD, IAdviseSink*, DWORD*); 1217 -void IDataObject_DAdvise_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1218 -HRESULT IDataObject_DUnadvise_Proxy(IDataObject*, DWORD); 1219 -void IDataObject_DUnadvise_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1220 -HRESULT IDataObject_EnumDAdvise_Proxy(IDataObject*, IEnumSTATDATA**); 1221 -void IDataObject_EnumDAdvise_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1222 -HRESULT IDataObject_GetData_Proxy(IDataObject*, FORMATETC*, STGMEDIUM*); 1223 -HRESULT IDataObject_GetData_Stub(IDataObject*, FORMATETC*, RemSTGMEDIUM**); 1224 -HRESULT IDataObject_GetDataHere_Proxy(IDataObject*, FORMATETC*, STGMEDIUM*); 1225 -HRESULT IDataObject_GetDataHere_Stub(IDataObject*, FORMATETC*, RemSTGMEDIUM**); 1226 -HRESULT IDataObject_SetData_Proxy(IDataObject*, FORMATETC*, STGMEDIUM*, BOOL); 1227 -HRESULT IDataObject_SetData_Stub(IDataObject*, FORMATETC*, RemSTGMEDIUM*, BOOL); 1228 -HRESULT IDataAdviseHolder_Advise_Proxy(IDataAdviseHolder*, IDataObject*, FORMATETC*, DWORD, IAdviseSink*, DWORD*); 1229 -void IDataAdviseHolder_Advise_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1230 -HRESULT IDataAdviseHolder_Unadvise_Proxy(IDataAdviseHolder*, DWORD); 1231 -void IDataAdviseHolder_Unadvise_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1232 -HRESULT IDataAdviseHolder_EnumAdvise_Proxy(IDataAdviseHolder*, IEnumSTATDATA**); 1233 -void IDataAdviseHolder_EnumAdvise_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1234 -HRESULT IDataAdviseHolder_SendOnDataChange_Proxy(IDataAdviseHolder*, IDataObject*, DWORD, DWORD); 1235 -void IDataAdviseHolder_SendOnDataChange_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1236 -DWORD IMessageFilter_HandleInComingCall_Proxy(IMessageFilter*, DWORD, HTASK, DWORD, LPINTERFACEINFO); 1237 -void IMessageFilter_HandleInComingCall_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1238 -DWORD IMessageFilter_RetryRejectedCall_Proxy(IMessageFilter*, HTASK, DWORD, DWORD); 1239 -void IMessageFilter_RetryRejectedCall_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1240 -DWORD IMessageFilter_MessagePending_Proxy(IMessageFilter*, HTASK, DWORD, DWORD); 1241 -void IMessageFilter_MessagePending_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1242 -HRESULT IRpcChannelBuffer_GetBuffer_Proxy(IRpcChannelBuffer*, RPCOLEMESSAGE*, REFIID); 1243 -void IRpcChannelBuffer_GetBuffer_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1244 -HRESULT IRpcChannelBuffer_SendReceive_Proxy(IRpcChannelBuffer*, RPCOLEMESSAGE*, ULONG*); 1245 -void IRpcChannelBuffer_SendReceive_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1246 -HRESULT IRpcChannelBuffer_FreeBuffer_Proxy(IRpcChannelBuffer*, RPCOLEMESSAGE*); 1247 -void IRpcChannelBuffer_FreeBuffer_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1248 -HRESULT IRpcChannelBuffer_GetDestCtx_Proxy(IRpcChannelBuffer*, DWORD*, void**); 1249 -void IRpcChannelBuffer_GetDestCtx_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1250 -HRESULT IRpcChannelBuffer_IsConnected_Proxy(IRpcChannelBuffer*); 1251 -void IRpcChannelBuffer_IsConnected_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1252 -HRESULT IRpcProxyBuffer_Connect_Proxy(IRpcProxyBuffer*, IRpcChannelBuffer*pRpcChannelBuffer); 1253 -void IRpcProxyBuffer_Connect_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1254 -void IRpcProxyBuffer_Disconnect_Proxy(IRpcProxyBuffer*); 1255 -void IRpcProxyBuffer_Disconnect_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1256 -HRESULT IRpcStubBuffer_Connect_Proxy(IRpcStubBuffer*, IUnknown*); 1257 -void IRpcStubBuffer_Connect_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1258 -void IRpcStubBuffer_Disconnect_Proxy(IRpcStubBuffer*); 1259 -void IRpcStubBuffer_Disconnect_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1260 -HRESULT IRpcStubBuffer_Invoke_Proxy(IRpcStubBuffer*, RPCOLEMESSAGE*, IRpcChannelBuffer*); 1261 -void IRpcStubBuffer_Invoke_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1262 -IRpcStubBuffer*IRpcStubBuffer_IsIIDSupported_Proxy(IRpcStubBuffer*, REFIID); 1263 -void IRpcStubBuffer_IsIIDSupported_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1264 -ULONG IRpcStubBuffer_CountRefs_Proxy(IRpcStubBuffer*); 1265 -void IRpcStubBuffer_CountRefs_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1266 -HRESULT IRpcStubBuffer_DebugServerQueryInterface_Proxy(IRpcStubBuffer*, void**); 1267 -void IRpcStubBuffer_DebugServerQueryInterface_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1268 -void IRpcStubBuffer_DebugServerRelease_Proxy(IRpcStubBuffer*, void*); 1269 -void IRpcStubBuffer_DebugServerRelease_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1270 -HRESULT IPSFactoryBuffer_CreateProxy_Proxy(IPSFactoryBuffer*, IUnknown*, REFIID, IRpcProxyBuffer**, void**); 1271 -void IPSFactoryBuffer_CreateProxy_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 1272 -HRESULT IPSFactoryBuffer_CreateStub_Proxy(IPSFactoryBuffer*, REFIID, IUnknown*, IRpcStubBuffer**); 1273 -void IPSFactoryBuffer_CreateStub_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); 898 +HRESULT IMarshal_GetUnmarshalClass_Proxy(IMarshal, REFIID, void*, DWORD, void*, DWORD, CLSID*); 899 +void IMarshal_GetUnmarshalClass_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 900 +HRESULT IMarshal_GetMarshalSizeMax_Proxy(IMarshal, REFIID, void*, DWORD, void*, DWORD, DWORD*); 901 +void IMarshal_GetMarshalSizeMax_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 902 +HRESULT IMarshal_MarshalInterface_Proxy(IMarshal, IStream, REFIID, void*, DWORD, void*, DWORD); 903 +void IMarshal_MarshalInterface_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 904 +HRESULT IMarshal_UnmarshalInterface_Proxy(IMarshal, IStream, REFIID, void**); 905 +void IMarshal_UnmarshalInterface_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 906 +HRESULT IMarshal_ReleaseMarshalData_Proxy(IMarshal, IStream); 907 +void IMarshal_ReleaseMarshalData_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 908 +HRESULT IMarshal_DisconnectObject_Proxy(IMarshal, DWORD); 909 +void IMarshal_DisconnectObject_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 910 +void* IMalloc_Alloc_Proxy(IMalloc, ULONG); 911 +void IMalloc_Alloc_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 912 +void* IMalloc_Realloc_Proxy(IMalloc, void*, ULONG); 913 +void IMalloc_Realloc_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 914 +void IMalloc_Free_Proxy(IMalloc, void*); 915 +void IMalloc_Free_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 916 +ULONG IMalloc_GetSize_Proxy(IMalloc, void*); 917 +void IMalloc_GetSize_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 918 +int IMalloc_DidAlloc_Proxy(IMalloc, void*); 919 +void IMalloc_DidAlloc_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 920 +void IMalloc_HeapMinimize_Proxy(IMalloc); 921 +void IMalloc_HeapMinimize_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 922 +ULONG IMallocSpy_PreAlloc_Proxy(IMallocSpy, ULONG cbRequest); 923 +void IMallocSpy_PreAlloc_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 924 +void* IMallocSpy_PostAlloc_Proxy(IMallocSpy, void*); 925 +void IMallocSpy_PostAlloc_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 926 +void* IMallocSpy_PreFree_Proxy(IMallocSpy, void*, BOOL); 927 +void IMallocSpy_PreFree_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 928 +void IMallocSpy_PostFree_Proxy(IMallocSpy, BOOL); 929 +void IMallocSpy_PostFree_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 930 +ULONG IMallocSpy_PreRealloc_Proxy(IMallocSpy, void*, ULONG, void**, BOOL); 931 +void IMallocSpy_PreRealloc_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 932 +void* IMallocSpy_PostRealloc_Proxy(IMallocSpy, void*, BOOL); 933 +void IMallocSpy_PostRealloc_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 934 +void* IMallocSpy_PreGetSize_Proxy(IMallocSpy, void*, BOOL); 935 +void IMallocSpy_PreGetSize_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 936 +ULONG IMallocSpy_PostGetSize_Proxy(IMallocSpy, ULONG, BOOL); 937 +void IMallocSpy_PostGetSize_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 938 +void* IMallocSpy_PreDidAlloc_Proxy(IMallocSpy, void*, BOOL); 939 +void IMallocSpy_PreDidAlloc_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 940 +int IMallocSpy_PostDidAlloc_Proxy(IMallocSpy, void*, BOOL, int); 941 +void IMallocSpy_PostDidAlloc_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 942 +void IMallocSpy_PreHeapMinimize_Proxy(IMallocSpy ); 943 +void IMallocSpy_PreHeapMinimize_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 944 +void IMallocSpy_PostHeapMinimize_Proxy(IMallocSpy); 945 +void IMallocSpy_PostHeapMinimize_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 946 +HRESULT IStdMarshalInfo_GetClassForHandler_Proxy(IStdMarshalInfo, DWORD, void*, CLSID*); 947 +void IStdMarshalInfo_GetClassForHandler_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 948 +DWORD IExternalConnection_AddConnection_Proxy(IExternalConnection, DWORD, DWORD); 949 +void IExternalConnection_AddConnection_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 950 +DWORD IExternalConnection_ReleaseConnection_Proxy(IExternalConnection, DWORD, DWORD, BOOL); 951 +void IExternalConnection_ReleaseConnection_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 952 +HRESULT IEnumUnknown_RemoteNext_Proxy(IEnumUnknown, ULONG, IUnknown*, ULONG*); 953 +void IEnumUnknown_RemoteNext_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 954 +HRESULT IEnumUnknown_Skip_Proxy(IEnumUnknown, ULONG); 955 +void IEnumUnknown_Skip_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 956 +HRESULT IEnumUnknown_Reset_Proxy(IEnumUnknown ); 957 +void IEnumUnknown_Reset_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 958 +HRESULT IEnumUnknown_Clone_Proxy(IEnumUnknown, IEnumUnknown*); 959 +void IEnumUnknown_Clone_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 960 +HRESULT IBindCtx_RegisterObjectBound_Proxy(IBindCtx, IUnknownpunk); 961 +void IBindCtx_RegisterObjectBound_Stub(IRpcStubBuffer, IRpcChannelBuffer_pRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 962 +HRESULT IBindCtx_RevokeObjectBound_Proxy(IBindCtx, IUnknownpunk); 963 +void IBindCtx_RevokeObjectBound_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 964 +HRESULT IBindCtx_ReleaseBoundObjects_Proxy(IBindCtx); 965 +void IBindCtx_ReleaseBoundObjects_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 966 +HRESULT IBindCtx_SetBindOptions_Proxy(IBindCtx, BIND_OPTS*); 967 +void IBindCtx_SetBindOptions_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 968 +HRESULT IBindCtx_GetBindOptions_Proxy(IBindCtx, BIND_OPTS*pbindopts); 969 +void IBindCtx_GetBindOptions_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 970 +HRESULT IBindCtx_GetRunningObjectTable_Proxy(IBindCtx, IRunningObjectTable*); 971 +void IBindCtx_GetRunningObjectTable_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 972 +HRESULT IBindCtx_RegisterObjectParam_Proxy(IBindCtx, LPCSTR, IUnknown); 973 +void IBindCtx_RegisterObjectParam_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 974 +HRESULT IBindCtx_GetObjectParam_Proxy(IBindCtx, LPCSTR, IUnknown*); 975 +void IBindCtx_GetObjectParam_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 976 +HRESULT IBindCtx_EnumObjectParam_Proxy(IBindCtx, IEnumString*); 977 +void IBindCtx_EnumObjectParam_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 978 +HRESULT IBindCtx_RevokeObjectParam_Proxy(IBindCtx, LPCSTR); 979 +void IBindCtx_RevokeObjectParam_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 980 +HRESULT IEnumMoniker_RemoteNext_Proxy(IEnumMoniker, ULONG, IMoniker*, ULONG*); 981 +void IEnumMoniker_RemoteNext_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 982 +HRESULT IEnumMoniker_Skip_Proxy(IEnumMoniker, ULONG); 983 +void IEnumMoniker_Skip_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 984 +HRESULT IEnumMoniker_Reset_Proxy(IEnumMoniker); 985 +void IEnumMoniker_Reset_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 986 +HRESULT IEnumMoniker_Clone_Proxy(IEnumMoniker, IEnumMoniker*); 987 +void IEnumMoniker_Clone_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 988 +HRESULT IRunnableObject_GetRunningClass_Proxy(IRunnableObject, LPCLSID); 989 +void IRunnableObject_GetRunningClass_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 990 +HRESULT IRunnableObject_Run_Proxy(IRunnableObject, LPBINDCTX); 991 +void IRunnableObject_Run_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 992 +BOOL IRunnableObject_IsRunning_Proxy(IRunnableObject); 993 +void IRunnableObject_IsRunning_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 994 +HRESULT IRunnableObject_LockRunning_Proxy(IRunnableObject, BOOL, BOOL); 995 +void IRunnableObject_LockRunning_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 996 +HRESULT IRunnableObject_SetContainedObject_Proxy(IRunnableObject, BOOL); 997 +void IRunnableObject_SetContainedObject_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 998 +HRESULT IRunningObjectTable_Register_Proxy(IRunningObjectTable, DWORD, IUnknown, IMoniker, DWORD*); 999 +void IRunningObjectTable_Register_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1000 +HRESULT IRunningObjectTable_Revoke_Proxy(IRunningObjectTable, DWORD); 1001 +void IRunningObjectTable_Revoke_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1002 +HRESULT IRunningObjectTable_IsRunning_Proxy(IRunningObjectTable, IMoniker); 1003 +void IRunningObjectTable_IsRunning_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1004 +HRESULT IRunningObjectTable_GetObject_Proxy(IRunningObjectTable, IMoniker, IUnknown*); 1005 +void IRunningObjectTable_GetObject_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1006 +HRESULT IRunningObjectTable_NoteChangeTime_Proxy(IRunningObjectTable, DWORD, FILETIME*); 1007 +void IRunningObjectTable_NoteChangeTime_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1008 +HRESULT IRunningObjectTable_GetTimeOfLastChange_Proxy(IRunningObjectTable, IMoniker, FILETIME*); 1009 +void IRunningObjectTable_GetTimeOfLastChange_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1010 +HRESULT IRunningObjectTable_EnumRunning_Proxy(IRunningObjectTable, IEnumMoniker*); 1011 +void IRunningObjectTable_EnumRunning_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1012 +HRESULT IPersist_GetClassID_Proxy(IPersist, CLSID*); 1013 +void IPersist_GetClassID_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1014 +HRESULT IPersistStream_IsDirty_Proxy(IPersistStream); 1015 +void IPersistStream_IsDirty_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1016 +HRESULT IPersistStream_Load_Proxy(IPersistStream, IStream); 1017 +void IPersistStream_Load_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1018 +HRESULT IPersistStream_Save_Proxy(IPersistStream, IStream, BOOL); 1019 +void IPersistStream_Save_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1020 +HRESULT IPersistStream_GetSizeMax_Proxy(IPersistStream, ULARGE_INTEGER*); 1021 +void IPersistStream_GetSizeMax_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1022 +HRESULT IMoniker_RemoteBindToObject_Proxy(IMoniker, IBindCtx, IMoniker, REFIID, IUnknown*); 1023 +void IMoniker_RemoteBindToObject_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1024 +HRESULT IMoniker_RemoteBindToStorage_Proxy(IMoniker, IBindCtx, IMoniker, REFIID, IUnknown*); 1025 +void IMoniker_RemoteBindToStorage_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1026 +HRESULT IMoniker_Reduce_Proxy(IMoniker, IBindCtx, DWORD, IMoniker*, IMoniker*); 1027 +void IMoniker_Reduce_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1028 +HRESULT IMoniker_ComposeWith_Proxy(IMoniker, IMoniker, BOOL, IMoniker*); 1029 +void IMoniker_ComposeWith_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1030 +HRESULT IMoniker_Enum_Proxy(IMoniker, BOOL, IEnumMoniker*); 1031 +void IMoniker_Enum_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1032 +HRESULT IMoniker_IsEqual_Proxy(IMoniker, IMoniker); 1033 +void IMoniker_IsEqual_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1034 +HRESULT IMoniker_Hash_Proxy(IMoniker, DWORD*); 1035 +void IMoniker_Hash_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1036 +HRESULT IMoniker_IsRunning_Proxy(IMoniker, IBindCtx, IMoniker, IMoniker); 1037 +void IMoniker_IsRunning_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1038 +HRESULT IMoniker_GetTimeOfLastChange_Proxy(IMoniker, IBindCtx, IMoniker, FILETIME*); 1039 +void IMoniker_GetTimeOfLastChange_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1040 +HRESULT IMoniker_Inverse_Proxy(IMoniker, IMoniker*); 1041 +void IMoniker_Inverse_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1042 +HRESULT IMoniker_CommonPrefixWith_Proxy(IMoniker, IMoniker, IMoniker*); 1043 +void IMoniker_CommonPrefixWith_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1044 +HRESULT IMoniker_RelativePathTo_Proxy(IMoniker, IMoniker, IMoniker*); 1045 +void IMoniker_RelativePathTo_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1046 +HRESULT IMoniker_GetDisplayName_Proxy(IMoniker, IBindCtx, IMoniker, LPCSTR*); 1047 +void IMoniker_GetDisplayName_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1048 +HRESULT IMoniker_ParseDisplayName_Proxy(IMoniker, IBindCtx, IMoniker, LPCSTR, ULONG*, IMoniker*); 1049 +void IMoniker_ParseDisplayName_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1050 +HRESULT IMoniker_IsSystemMoniker_Proxy(IMoniker, DWORD*); 1051 +void IMoniker_IsSystemMoniker_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1052 +HRESULT IROTData_GetComparisonData_Proxy(IROTData, BYTE*, ULONG cbMax, ULONG*); 1053 +void IROTData_GetComparisonData_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1054 +HRESULT IEnumString_RemoteNext_Proxy(IEnumString, ULONG, LPCSTR*rgelt, ULONG*); 1055 +void IEnumString_RemoteNext_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1056 +HRESULT IEnumString_Skip_Proxy(IEnumString, ULONG); 1057 +void IEnumString_Skip_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1058 +HRESULT IEnumString_Reset_Proxy(IEnumString); 1059 +void IEnumString_Reset_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1060 +HRESULT IEnumString_Clone_Proxy(IEnumString, IEnumString*); 1061 +void IEnumString_Clone_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1062 +HRESULT IStream_RemoteRead_Proxy(IStream, BYTE*, ULONG, ULONG*); 1063 +void IStream_RemoteRead_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1064 +HRESULT IStream_RemoteWrite_Proxy(IStream, BYTE*pv, ULONG, ULONG*); 1065 +void IStream_RemoteWrite_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1066 +HRESULT IStream_RemoteSeek_Proxy(IStream, LARGE_INTEGER, DWORD, ULARGE_INTEGER*); 1067 +void IStream_RemoteSeek_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1068 +HRESULT IStream_SetSize_Proxy(IStream, ULARGE_INTEGER); 1069 +void IStream_SetSize_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1070 +HRESULT IStream_RemoteCopyTo_Proxy(IStream, IStream, ULARGE_INTEGER, ULARGE_INTEGER*, ULARGE_INTEGER*); 1071 +void IStream_RemoteCopyTo_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1072 +HRESULT IStream_Commit_Proxy(IStream, DWORD); 1073 +void IStream_Commit_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1074 +HRESULT IStream_Revert_Proxy(IStream); 1075 +void IStream_Revert_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1076 +HRESULT IStream_LockRegion_Proxy(IStream, ULARGE_INTEGER, ULARGE_INTEGER, DWORD); 1077 +void IStream_LockRegion_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1078 +HRESULT IStream_UnlockRegion_Proxy(IStream, ULARGE_INTEGER, ULARGE_INTEGER, DWORD); 1079 +void IStream_UnlockRegion_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1080 +HRESULT IStream_Stat_Proxy(IStream, STATSTG*, DWORD); 1081 +void IStream_Stat_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1082 +HRESULT IStream_Clone_Proxy(IStream, IStream*); 1083 +void IStream_Clone_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1084 +HRESULT IEnumSTATSTG_RemoteNext_Proxy(IEnumSTATSTG, ULONG, STATSTG*, ULONG*); 1085 +void IEnumSTATSTG_RemoteNext_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1086 +HRESULT IEnumSTATSTG_Skip_Proxy(IEnumSTATSTG, ULONG celt); 1087 +void IEnumSTATSTG_Skip_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1088 +HRESULT IEnumSTATSTG_Reset_Proxy(IEnumSTATSTG); 1089 +void IEnumSTATSTG_Reset_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1090 +HRESULT IEnumSTATSTG_Clone_Proxy(IEnumSTATSTG, IEnumSTATSTG*); 1091 +void IEnumSTATSTG_Clone_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1092 +HRESULT IStorage_CreateStream_Proxy(IStorage, OLECHAR*, DWORD, DWORD, DWORD, IStream*); 1093 +void IStorage_CreateStream_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1094 +HRESULT IStorage_RemoteOpenStream_Proxy(IStorage, const(OLECHAR)*, uint, BYTE*, DWORD, DWORD, IStream*); 1095 +void IStorage_RemoteOpenStream_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1096 +HRESULT IStorage_CreateStorage_Proxy(IStorage, OLECHAR*, DWORD, DWORD, DWORD, IStorage*); 1097 +void IStorage_CreateStorage_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1098 +HRESULT IStorage_OpenStorage_Proxy(IStorage, OLECHAR*, IStorage, DWORD, SNB, DWORD, IStorage*); 1099 +void IStorage_OpenStorage_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1100 +HRESULT IStorage_CopyTo_Proxy(IStorage, DWORD, const(IID)*, SNB, IStorage); 1101 +void IStorage_CopyTo_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1102 +HRESULT IStorage_MoveElementTo_Proxy(IStorage, const(OLECHAR)*, IStorage, const(OLECHAR)*, DWORD); 1103 +void IStorage_MoveElementTo_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1104 +HRESULT IStorage_Commit_Proxy(IStorage, DWORD); 1105 +void IStorage_Commit_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1106 +HRESULT IStorage_Revert_Proxy(IStorage); 1107 +void IStorage_Revert_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1108 +HRESULT IStorage_RemoteEnumElements_Proxy(IStorage, DWORD, uint, BYTE*, DWORD, IEnumSTATSTG*); 1109 +void IStorage_RemoteEnumElements_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1110 +HRESULT IStorage_DestroyElement_Proxy(IStorage, OLECHAR*); 1111 +void IStorage_DestroyElement_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1112 +HRESULT IStorage_RenameElement_Proxy(IStorage, const(OLECHAR)*, const(OLECHAR)*); 1113 +void IStorage_RenameElement_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1114 +HRESULT IStorage_SetElementTimes_Proxy(IStorage, const(OLECHAR)*, const(FILETIME)*, const(FILETIME)*, const(FILETIME)*); 1115 +void IStorage_SetElementTimes_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1116 +HRESULT IStorage_SetClass_Proxy(IStorage, REFCLSID); 1117 +void IStorage_SetClass_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1118 +HRESULT IStorage_SetStateBits_Proxy(IStorage, DWORD, DWORD); 1119 +void IStorage_SetStateBits_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1120 +HRESULT IStorage_Stat_Proxy(IStorage, STATSTG*, DWORD); 1121 +void IStorage_Stat_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1122 +HRESULT IPersistFile_IsDirty_Proxy(IPersistFile); 1123 +void IPersistFile_IsDirty_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1124 +HRESULT IPersistFile_Load_Proxy(IPersistFile, LPCOLESTR, DWORD); 1125 +void IPersistFile_Load_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1126 +HRESULT IPersistFile_Save_Proxy(IPersistFile, LPCOLESTR pszFileName, BOOL); 1127 +void IPersistFile_Save_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1128 +HRESULT IPersistFile_SaveCompleted_Proxy(IPersistFile, LPCOLESTR); 1129 +void IPersistFile_SaveCompleted_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1130 +HRESULT IPersistFile_GetCurFile_Proxy(IPersistFile, LPCSTR*); 1131 +void IPersistFile_GetCurFile_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1132 +HRESULT IPersistStorage_IsDirty_Proxy(IPersistStorage); 1133 +void IPersistStorage_IsDirty_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1134 +HRESULT IPersistStorage_InitNew_Proxy(IPersistStorage, IStorage); 1135 +void IPersistStorage_InitNew_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1136 +HRESULT IPersistStorage_Load_Proxy(IPersistStorage, IStorage); 1137 +void IPersistStorage_Load_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1138 +HRESULT IPersistStorage_Save_Proxy(IPersistStorage, IStorage, BOOL); 1139 +void IPersistStorage_Save_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1140 +HRESULT IPersistStorage_SaveCompleted_Proxy(IPersistStorage, IStorage); 1141 +void IPersistStorage_SaveCompleted_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1142 +HRESULT IPersistStorage_HandsOffStorage_Proxy(IPersistStorage); 1143 +void IPersistStorage_HandsOffStorage_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1144 +HRESULT ILockBytes_RemoteReadAt_Proxy(ILockBytes, ULARGE_INTEGER, BYTE*, ULONG, ULONG*); 1145 +void ILockBytes_RemoteReadAt_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1146 +HRESULT ILockBytes_RemoteWriteAt_Proxy(ILockBytes, ULARGE_INTEGER, BYTE*pv, ULONG, ULONG*); 1147 +void ILockBytes_RemoteWriteAt_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1148 +HRESULT ILockBytes_Flush_Proxy(ILockBytes); 1149 +void ILockBytes_Flush_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1150 +HRESULT ILockBytes_SetSize_Proxy(ILockBytes, ULARGE_INTEGER); 1151 +void ILockBytes_SetSize_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1152 +HRESULT ILockBytes_LockRegion_Proxy(ILockBytes, ULARGE_INTEGER, ULARGE_INTEGER, DWORD); 1153 +void ILockBytes_LockRegion_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1154 +HRESULT ILockBytes_UnlockRegion_Proxy(ILockBytes, ULARGE_INTEGER, ULARGE_INTEGER, DWORD); 1155 +void ILockBytes_UnlockRegion_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1156 +HRESULT ILockBytes_Stat_Proxy(ILockBytes, STATSTG*, DWORD); 1157 +void ILockBytes_Stat_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1158 +HRESULT IEnumFORMATETC_RemoteNext_Proxy(IEnumFORMATETC, ULONG, FORMATETC*, ULONG*); 1159 +void IEnumFORMATETC_RemoteNext_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1160 +HRESULT IEnumFORMATETC_Skip_Proxy(IEnumFORMATETC, ULONG); 1161 +void IEnumFORMATETC_Skip_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1162 +HRESULT IEnumFORMATETC_Reset_Proxy(IEnumFORMATETC); 1163 +void IEnumFORMATETC_Reset_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1164 +HRESULT IEnumFORMATETC_Clone_Proxy(IEnumFORMATETC, IEnumFORMATETC*); 1165 +void IEnumFORMATETC_Clone_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1166 +HRESULT IEnumFORMATETC_Next_Proxy(IEnumFORMATETC, ULONG, FORMATETC*, ULONG*); 1167 +HRESULT IEnumFORMATETC_Next_Stub(IEnumFORMATETC, ULONG, FORMATETC*, ULONG*); 1168 +HRESULT IEnumSTATDATA_RemoteNext_Proxy(IEnumSTATDATA, ULONG, STATDATA*, ULONG*); 1169 +void IEnumSTATDATA_RemoteNext_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1170 +HRESULT IEnumSTATDATA_Skip_Proxy(IEnumSTATDATA, ULONG); 1171 +void IEnumSTATDATA_Skip_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1172 +HRESULT IEnumSTATDATA_Reset_Proxy(IEnumSTATDATA); 1173 +void IEnumSTATDATA_Reset_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1174 +HRESULT IEnumSTATDATA_Clone_Proxy(IEnumSTATDATA, IEnumSTATDATA*); 1175 +void IEnumSTATDATA_Clone_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1176 +HRESULT IEnumSTATDATA_Next_Proxy(IEnumSTATDATA, ULONG, STATDATA*, ULONG*); 1177 +HRESULT IEnumSTATDATA_Next_Stub(IEnumSTATDATA, ULONG, STATDATA*, ULONG*); 1178 +HRESULT IRootStorage_SwitchToFile_Proxy(IRootStorage, LPCSTR); 1179 +void IRootStorage_SwitchToFile_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1180 +void IAdviseSink_RemoteOnDataChange_Proxy(IAdviseSink, FORMATETC*, RemSTGMEDIUM*); 1181 +void IAdviseSink_RemoteOnDataChange_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1182 +void IAdviseSink_RemoteOnViewChange_Proxy(IAdviseSink, DWORD, LONG); 1183 +void IAdviseSink_RemoteOnViewChange_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1184 +void IAdviseSink_RemoteOnRename_Proxy(IAdviseSink, IMoniker); 1185 +void IAdviseSink_RemoteOnRename_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1186 +void IAdviseSink_RemoteOnSave_Proxy(IAdviseSink); 1187 +void IAdviseSink_RemoteOnSave_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1188 +HRESULT IAdviseSink_RemoteOnClose_Proxy(IAdviseSink); 1189 +void IAdviseSink_RemoteOnClose_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1190 +void IAdviseSink_OnDataChange_Proxy(IAdviseSink, FORMATETC*, STGMEDIUM*); 1191 +void IAdviseSink_OnDataChange_Stub(IAdviseSink, FORMATETC*, RemSTGMEDIUM*); 1192 +void IAdviseSink_OnViewChange_Proxy(IAdviseSink, DWORD, LONG); 1193 +void IAdviseSink_OnViewChange_Stub(IAdviseSink, DWORD, LONG); 1194 +void IAdviseSink_OnRename_Proxy(IAdviseSink, IMoniker); 1195 +void IAdviseSink_OnRename_Stub(IAdviseSink, IMoniker); 1196 +void IAdviseSink_OnSave_Proxy(IAdviseSink); 1197 +void IAdviseSink_OnSave_Stub(IAdviseSink); 1198 +void IAdviseSink_OnClose_Proxy(IAdviseSink); 1199 +HRESULT IAdviseSink_OnClose_Stub(IAdviseSink); 1200 +void IAdviseSink2_RemoteOnLinkSrcChange_Proxy(IAdviseSink2, IMoniker); 1201 +void IAdviseSink2_RemoteOnLinkSrcChange_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1202 +void IAdviseSink2_OnLinkSrcChange_Proxy(IAdviseSink2, IMoniker); 1203 +void IAdviseSink2_OnLinkSrcChange_Stub(IAdviseSink2, IMoniker); 1204 +HRESULT IDataObject_RemoteGetData_Proxy(IDataObject, FORMATETC*, RemSTGMEDIUM**); 1205 +void IDataObject_RemoteGetData_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1206 +HRESULT IDataObject_RemoteGetDataHere_Proxy(IDataObject, FORMATETC*, RemSTGMEDIUM**); 1207 +void IDataObject_RemoteGetDataHere_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1208 +HRESULT IDataObject_QueryGetData_Proxy(IDataObject, FORMATETC*); 1209 +void IDataObject_QueryGetData_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1210 +HRESULT IDataObject_GetCanonicalFormatEtc_Proxy(IDataObject, FORMATETC*, FORMATETC*); 1211 +void IDataObject_GetCanonicalFormatEtc_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1212 +HRESULT IDataObject_RemoteSetData_Proxy(IDataObject, FORMATETC*, RemSTGMEDIUM*, BOOL); 1213 +void IDataObject_RemoteSetData_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1214 +HRESULT IDataObject_EnumFormatEtc_Proxy(IDataObject, DWORD, IEnumFORMATETC*); 1215 +void IDataObject_EnumFormatEtc_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1216 +HRESULT IDataObject_DAdvise_Proxy(IDataObject, FORMATETC*, DWORD, IAdviseSink, DWORD*); 1217 +void IDataObject_DAdvise_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1218 +HRESULT IDataObject_DUnadvise_Proxy(IDataObject, DWORD); 1219 +void IDataObject_DUnadvise_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1220 +HRESULT IDataObject_EnumDAdvise_Proxy(IDataObject, IEnumSTATDATA*); 1221 +void IDataObject_EnumDAdvise_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1222 +HRESULT IDataObject_GetData_Proxy(IDataObject, FORMATETC*, STGMEDIUM*); 1223 +HRESULT IDataObject_GetData_Stub(IDataObject, FORMATETC*, RemSTGMEDIUM**); 1224 +HRESULT IDataObject_GetDataHere_Proxy(IDataObject, FORMATETC*, STGMEDIUM*); 1225 +HRESULT IDataObject_GetDataHere_Stub(IDataObject, FORMATETC*, RemSTGMEDIUM**); 1226 +HRESULT IDataObject_SetData_Proxy(IDataObject, FORMATETC*, STGMEDIUM*, BOOL); 1227 +HRESULT IDataObject_SetData_Stub(IDataObject, FORMATETC*, RemSTGMEDIUM*, BOOL); 1228 +HRESULT IDataAdviseHolder_Advise_Proxy(IDataAdviseHolder, IDataObject, FORMATETC*, DWORD, IAdviseSink, DWORD*); 1229 +void IDataAdviseHolder_Advise_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1230 +HRESULT IDataAdviseHolder_Unadvise_Proxy(IDataAdviseHolder, DWORD); 1231 +void IDataAdviseHolder_Unadvise_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1232 +HRESULT IDataAdviseHolder_EnumAdvise_Proxy(IDataAdviseHolder, IEnumSTATDATA*); 1233 +void IDataAdviseHolder_EnumAdvise_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1234 +HRESULT IDataAdviseHolder_SendOnDataChange_Proxy(IDataAdviseHolder, IDataObject, DWORD, DWORD); 1235 +void IDataAdviseHolder_SendOnDataChange_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1236 +DWORD IMessageFilter_HandleInComingCall_Proxy(IMessageFilter, DWORD, HTASK, DWORD, LPINTERFACEINFO); 1237 +void IMessageFilter_HandleInComingCall_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1238 +DWORD IMessageFilter_RetryRejectedCall_Proxy(IMessageFilter, HTASK, DWORD, DWORD); 1239 +void IMessageFilter_RetryRejectedCall_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1240 +DWORD IMessageFilter_MessagePending_Proxy(IMessageFilter, HTASK, DWORD, DWORD); 1241 +void IMessageFilter_MessagePending_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1242 +HRESULT IRpcChannelBuffer_GetBuffer_Proxy(IRpcChannelBuffer, RPCOLEMESSAGE*, REFIID); 1243 +void IRpcChannelBuffer_GetBuffer_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1244 +HRESULT IRpcChannelBuffer_SendReceive_Proxy(IRpcChannelBuffer, RPCOLEMESSAGE*, ULONG*); 1245 +void IRpcChannelBuffer_SendReceive_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1246 +HRESULT IRpcChannelBuffer_FreeBuffer_Proxy(IRpcChannelBuffer, RPCOLEMESSAGE*); 1247 +void IRpcChannelBuffer_FreeBuffer_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1248 +HRESULT IRpcChannelBuffer_GetDestCtx_Proxy(IRpcChannelBuffer, DWORD*, void**); 1249 +void IRpcChannelBuffer_GetDestCtx_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1250 +HRESULT IRpcChannelBuffer_IsConnected_Proxy(IRpcChannelBuffer); 1251 +void IRpcChannelBuffer_IsConnected_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1252 +HRESULT IRpcProxyBuffer_Connect_Proxy(IRpcProxyBuffer, IRpcChannelBufferpRpcChannelBuffer); 1253 +void IRpcProxyBuffer_Connect_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1254 +void IRpcProxyBuffer_Disconnect_Proxy(IRpcProxyBuffer); 1255 +void IRpcProxyBuffer_Disconnect_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1256 +HRESULT IRpcStubBuffer_Connect_Proxy(IRpcStubBuffer, IUnknown); 1257 +void IRpcStubBuffer_Connect_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1258 +void IRpcStubBuffer_Disconnect_Proxy(IRpcStubBuffer); 1259 +void IRpcStubBuffer_Disconnect_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1260 +HRESULT IRpcStubBuffer_Invoke_Proxy(IRpcStubBuffer, RPCOLEMESSAGE*, IRpcChannelBuffer); 1261 +void IRpcStubBuffer_Invoke_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1262 +IRpcStubBufferIRpcStubBuffer_IsIIDSupported_Proxy(IRpcStubBuffer, REFIID); 1263 +void IRpcStubBuffer_IsIIDSupported_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1264 +ULONG IRpcStubBuffer_CountRefs_Proxy(IRpcStubBuffer); 1265 +void IRpcStubBuffer_CountRefs_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1266 +HRESULT IRpcStubBuffer_DebugServerQueryInterface_Proxy(IRpcStubBuffer, void**); 1267 +void IRpcStubBuffer_DebugServerQueryInterface_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1268 +void IRpcStubBuffer_DebugServerRelease_Proxy(IRpcStubBuffer, void*); 1269 +void IRpcStubBuffer_DebugServerRelease_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1270 +HRESULT IPSFactoryBuffer_CreateProxy_Proxy(IPSFactoryBuffer, IUnknown, REFIID, IRpcProxyBuffer*, void**); 1271 +void IPSFactoryBuffer_CreateProxy_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1272 +HRESULT IPSFactoryBuffer_CreateStub_Proxy(IPSFactoryBuffer, REFIID, IUnknown, IRpcStubBuffer*); 1273 +void IPSFactoryBuffer_CreateStub_Stub(IRpcStubBuffer, IRpcChannelBuffer, PRPC_MESSAGE, PDWORD); 1274 1274 void SNB_to_xmit(SNB*, RemSNB**); 1275 1275 void SNB_from_xmit(RemSNB*, SNB*); 1276 1276 void SNB_free_inst(SNB*); 1277 1277 void SNB_free_xmit(RemSNB*); 1278 -HRESULT IEnumUnknown_Next_Proxy(IEnumUnknown*, ULONG, IUnknown**, ULONG*); 1279 -HRESULT IEnumUnknown_Next_Stub(IEnumUnknown*, ULONG, IUnknown**, ULONG*); 1280 -HRESULT IEnumMoniker_Next_Proxy(IEnumMoniker*, ULONG, IMoniker**, ULONG*); 1281 -HRESULT IEnumMoniker_Next_Stub(IEnumMoniker*, ULONG, IMoniker**, ULONG*); 1282 -HRESULT IMoniker_BindToObject_Proxy(IMoniker*, IBindCtx*, IMoniker*, REFIID, void**); 1283 -HRESULT IMoniker_BindToObject_Stub(IMoniker*, IBindCtx*, IMoniker*, REFIID, IUnknown**); 1284 -HRESULT IMoniker_BindToStorage_Proxy(IMoniker*, IBindCtx*, IMoniker*, REFIID, void**); 1285 -HRESULT IMoniker_BindToStorage_Stub(IMoniker*, IBindCtx*, IMoniker*, REFIID, IUnknown**); 1286 -HRESULT IEnumString_Next_Proxy(IEnumString*, ULONG, LPCSTR*, ULONG*); 1287 -HRESULT IEnumString_Next_Stub(IEnumString*, ULONG, LPCSTR*, ULONG*); 1288 -HRESULT IStream_Read_Proxy(IStream*, void*, ULONG, ULONG*); 1289 -HRESULT IStream_Read_Stub(IStream*, BYTE*, ULONG, ULONG*); 1290 -HRESULT IStream_Write_Proxy(IStream*, void*, ULONG, ULONG*); 1291 -HRESULT IStream_Write_Stub(IStream*, BYTE*, ULONG, ULONG*); 1292 -HRESULT IStream_Seek_Proxy(IStream*, LARGE_INTEGER, DWORD, ULARGE_INTEGER*); 1293 -HRESULT IStream_Seek_Stub(IStream*, LARGE_INTEGER, DWORD, ULARGE_INTEGER*); 1294 -HRESULT IStream_CopyTo_Proxy(IStream*, IStream*, ULARGE_INTEGER, ULARGE_INTEGER*, ULARGE_INTEGER*); 1295 -HRESULT IStream_CopyTo_Stub(IStream*, IStream*, ULARGE_INTEGER, ULARGE_INTEGER*, ULARGE_INTEGER*); 1296 -HRESULT IEnumSTATSTG_Next_Proxy(IEnumSTATSTG*, ULONG, STATSTG*, ULONG*); 1297 -HRESULT IEnumSTATSTG_Next_Stub(IEnumSTATSTG*, ULONG, STATSTG*, ULONG*); 1298 -HRESULT IStorage_OpenStream_Proxy(IStorage*, OLECHAR*, void*, DWORD, DWORD, IStream**); 1299 -HRESULT IStorage_OpenStream_Stub(IStorage*, OLECHAR*, uint, BYTE*, DWORD, DWORD, IStream** ); 1300 -HRESULT IStorage_EnumElements_Proxy(IStorage*, DWORD, void*, DWORD, IEnumSTATSTG**); 1301 -HRESULT IStorage_EnumElements_Stub(IStorage*, DWORD, uint, BYTE*, DWORD, IEnumSTATSTG**); 1302 -HRESULT ILockBytes_ReadAt_Proxy(ILockBytes*, ULARGE_INTEGER, void*, ULONG, ULONG*); 1303 -HRESULT ILockBytes_ReadAt_Stub(ILockBytes*, ULARGE_INTEGER, BYTE*, ULONG, ULONG*); 1304 -HRESULT ILockBytes_WriteAt_Proxy(ILockBytes*, ULARGE_INTEGER, CPtr!(void), ULONG, ULONG*); 1305 -HRESULT ILockBytes_WriteAt_Stub(ILockBytes*, ULARGE_INTEGER, BYTE*, ULONG, ULONG*); 1278 +HRESULT IEnumUnknown_Next_Proxy(IEnumUnknown, ULONG, IUnknown*, ULONG*); 1279 +HRESULT IEnumUnknown_Next_Stub(IEnumUnknown, ULONG, IUnknown*, ULONG*); 1280 +HRESULT IEnumMoniker_Next_Proxy(IEnumMoniker, ULONG, IMoniker*, ULONG*); 1281 +HRESULT IEnumMoniker_Next_Stub(IEnumMoniker, ULONG, IMoniker*, ULONG*); 1282 +HRESULT IMoniker_BindToObject_Proxy(IMoniker, IBindCtx, IMoniker, REFIID, void**); 1283 +HRESULT IMoniker_BindToObject_Stub(IMoniker, IBindCtx, IMoniker, REFIID, IUnknown*); 1284 +HRESULT IMoniker_BindToStorage_Proxy(IMoniker, IBindCtx, IMoniker, REFIID, void**); 1285 +HRESULT IMoniker_BindToStorage_Stub(IMoniker, IBindCtx, IMoniker, REFIID, IUnknown*); 1286 +HRESULT IEnumString_Next_Proxy(IEnumString, ULONG, LPCSTR*, ULONG*); 1287 +HRESULT IEnumString_Next_Stub(IEnumString, ULONG, LPCSTR*, ULONG*); 1288 +HRESULT IStream_Read_Proxy(IStream, void*, ULONG, ULONG*); 1289 +HRESULT IStream_Read_Stub(IStream, BYTE*, ULONG, ULONG*); 1290 +HRESULT IStream_Write_Proxy(IStream, void*, ULONG, ULONG*); 1291 +HRESULT IStream_Write_Stub(IStream, BYTE*, ULONG, ULONG*); 1292 +HRESULT IStream_Seek_Proxy(IStream, LARGE_INTEGER, DWORD, ULARGE_INTEGER*); 1293 +HRESULT IStream_Seek_Stub(IStream, LARGE_INTEGER, DWORD, ULARGE_INTEGER*); 1294 +HRESULT IStream_CopyTo_Proxy(IStream, IStream, ULARGE_INTEGER, ULARGE_INTEGER*, ULARGE_INTEGER*); 1295 +HRESULT IStream_CopyTo_Stub(IStream, IStream, ULARGE_INTEGER, ULARGE_INTEGER*, ULARGE_INTEGER*); 1296 +HRESULT IEnumSTATSTG_Next_Proxy(IEnumSTATSTG, ULONG, STATSTG*, ULONG*); 1297 +HRESULT IEnumSTATSTG_Next_Stub(IEnumSTATSTG, ULONG, STATSTG*, ULONG*); 1298 +HRESULT IStorage_OpenStream_Proxy(IStorage, OLECHAR*, void*, DWORD, DWORD, IStream*); 1299 +HRESULT IStorage_OpenStream_Stub(IStorage, OLECHAR*, uint, BYTE*, DWORD, DWORD, IStream* ); 1300 +HRESULT IStorage_EnumElements_Proxy(IStorage, DWORD, void*, DWORD, IEnumSTATSTG*); 1301 +HRESULT IStorage_EnumElements_Stub(IStorage, DWORD, uint, BYTE*, DWORD, IEnumSTATSTG*); 1302 +HRESULT ILockBytes_ReadAt_Proxy(ILockBytes, ULARGE_INTEGER, void*, ULONG, ULONG*); 1303 +HRESULT ILockBytes_ReadAt_Stub(ILockBytes, ULARGE_INTEGER, BYTE*, ULONG, ULONG*); 1304 +HRESULT ILockBytes_WriteAt_Proxy(ILockBytes, ULARGE_INTEGER, const(void)*, ULONG, ULONG*); 1305 +HRESULT ILockBytes_WriteAt_Stub(ILockBytes, ULARGE_INTEGER, BYTE*, ULONG, ULONG*); 1306 1306 } 1307 1307 +/

Modified src/win32/ocidl.d from [cdcc4f883bee1256] to [1854c0f4d6ff3178].

26 26 // TODO: 27 27 //private import win32.servprov; // for IServiceProvider 28 28 // private import win32.urlmon; // for IBindHost. This is not included in MinGW. 29 29 30 30 // win32.urlmon should contain: 31 31 interface IBindHost : IUnknown 32 32 { 33 - HRESULT CreateMoniker(LPOLESTR szName, IBindCtx* pBC, IMoniker** ppmk, DWORD); 34 - HRESULT MonikerBindToObject(IMoniker* pMk, IBindCtx* pBC, IBindStatusCallback* pBSC, REFIID, void** ); 35 - HRESULT MonikerBindToStorage(IMoniker* pMk, IBindCtx* pBC, IBindStatusCallback* pBSC, REFIID, void** ); 33 + HRESULT CreateMoniker(LPOLESTR szName, IBindCtx pBC, IMoniker* ppmk, DWORD); 34 + HRESULT MonikerBindToObject(IMoniker pMk, IBindCtx pBC, IBindStatusCallback pBSC, REFIID, void** ); 35 + HRESULT MonikerBindToStorage(IMoniker pMk, IBindCtx pBC, IBindStatusCallback pBSC, REFIID, void** ); 36 36 } 37 37 */ 38 38 39 39 40 40 41 41 42 42 //[Yes] #ifndef OLE2ANSI ................................................................................ 89 89 QACONTAINER_AUTOCLIP = 32, 90 90 QACONTAINER_MESSAGEREFLECT = 64, 91 91 QACONTAINER_SUPPORTSMNEMONICS = 128 92 92 } 93 93 94 94 struct QACONTAINER { 95 95 ULONG cbSize = this.sizeof; 96 - IOleClientSite* pClientSite; 97 - IAdviseSinkEx* pAdviseSink; 98 - IPropertyNotifySink* pPropertyNotifySink; 99 - IUnknown* pUnkEventSink; 96 + IOleClientSite pClientSite; 97 + IAdviseSinkEx pAdviseSink; 98 + IPropertyNotifySink pPropertyNotifySink; 99 + IUnknown pUnkEventSink; 100 100 DWORD dwAmbientFlags; 101 101 OLE_COLOR colorFore; 102 102 OLE_COLOR colorBack; 103 - IFont* pFont; 104 - IOleUndoManager* pUndoMgr; 103 + IFont pFont; 104 + IOleUndoManager pUndoMgr; 105 105 DWORD dwAppearance; 106 106 LONG lcid; 107 107 HPALETTE hpal; 108 - IBindHost* pBindHost; 109 - IOleControlSite* pOleControlSite; 110 - IServiceProvider* pServiceProvider; 108 + IBindHost pBindHost; 109 + IOleControlSite pOleControlSite; 110 + IServiceProvider pServiceProvider; 111 111 } 112 112 113 113 struct QACONTROL { 114 114 ULONG cbSize = this.sizeof; 115 115 DWORD dwMiscStatus; 116 116 DWORD dwViewStatus; 117 117 DWORD dwEventCookie; ................................................................................ 208 208 alias IPropertyBag LPPROPERTYBAG; 209 209 210 210 interface IPropertyBag2 : IUnknown { 211 211 HRESULT Read(ULONG, PROPBAG2*, LPERRORLOG, VARIANT*, HRESULT*); 212 212 HRESULT Write(ULONG, PROPBAG2*, VARIANT*); 213 213 HRESULT CountProperties(ULONG*); 214 214 HRESULT GetPropertyInfo(ULONG, ULONG, PROPBAG2*, ULONG*); 215 - HRESULT LoadObject(LPCOLESTR, DWORD, IUnknown*, LPERRORLOG); 215 + HRESULT LoadObject(LPCOLESTR, DWORD, IUnknown, LPERRORLOG); 216 216 } 217 217 alias IPropertyBag2 LPPROPERTYBAG2; 218 218 219 219 interface IPersistPropertyBag : IPersist { 220 220 HRESULT InitNew(); 221 221 HRESULT Load(LPPROPERTYBAG, LPERRORLOG); 222 222 HRESULT Save(LPPROPERTYBAG, BOOL, BOOL); ................................................................................ 269 269 HRESULT Reset(); 270 270 HRESULT Clone(LPENUMCONNECTIONPOINTS*); 271 271 } 272 272 alias IEnumConnectionPoints LPENUMCONNECTIONPOINTS; 273 273 274 274 interface IConnectionPoint : IUnknown { 275 275 HRESULT GetConnectionInterface(IID*); 276 - HRESULT GetConnectionPointContainer(IConnectionPointContainer**); 276 + HRESULT GetConnectionPointContainer(IConnectionPointContainer*); 277 277 HRESULT Advise(LPUNKNOWN, PDWORD); 278 278 HRESULT Unadvise(DWORD); 279 279 HRESULT EnumConnections(LPENUMCONNECTIONS*); 280 280 } 281 281 alias IConnectionPoint LPCONNECTIONPOINT; 282 282 283 283 interface IEnumConnections : IUnknown { ................................................................................ 346 346 HRESULT get_Strikethrough(BOOL*); 347 347 HRESULT put_Strikethrough(BOOL); 348 348 HRESULT get_Weight(short*); 349 349 HRESULT put_Weight(short); 350 350 HRESULT get_Charset(short*); 351 351 HRESULT put_Charset(short); 352 352 HRESULT get_hFont(HFONT*); 353 - HRESULT Clone(IFont**); 354 - HRESULT IsEqual(IFont*); 353 + HRESULT Clone(IFont*); 354 + HRESULT IsEqual(IFont); 355 355 HRESULT SetRatio(int, int); 356 356 HRESULT QueryTextMetrics(LPTEXTMETRICOLE); 357 357 HRESULT AddRefHfont(HFONT); 358 358 HRESULT ReleaseHfont(HFONT); 359 359 HRESULT SetHdc(HDC); 360 360 } 361 361 alias IFont LPFONT; ................................................................................ 388 388 interface IOleInPlaceSiteEx : IOleInPlaceSite { 389 389 HRESULT OnInPlaceActivateEx(BOOL*, DWORD); 390 390 HRESULT OnInPlaceDeactivateEx(BOOL); 391 391 HRESULT RequestUIActivate(); 392 392 } 393 393 394 394 interface IObjectWithSite : IUnknown { 395 - HRESULT SetSite(IUnknown*); 395 + HRESULT SetSite(IUnknown); 396 396 HRESULT GetSite(REFIID, void**); 397 397 } 398 398 399 399 interface IOleInPlaceSiteWindowless : IOleInPlaceSiteEx { 400 400 HRESULT CanWindowlessActivate(); 401 401 HRESULT GetCapture(); 402 402 HRESULT SetCapture(BOOL); ................................................................................ 410 410 HRESULT AdjustRect(LPCRECT); 411 411 HRESULT OnDefWindowMessage(UINT, WPARAM, LPARAM, LRESULT*); 412 412 } 413 413 414 414 interface IAdviseSinkEx : IUnknown { 415 415 void OnDataChange(FORMATETC*, STGMEDIUM*); 416 416 void OnViewChange(DWORD, LONG); 417 - void OnRename(IMoniker*); 417 + void OnRename(IMoniker); 418 418 void OnSave(); 419 419 void OnClose(); 420 420 HRESULT OnViewStatusChange(DWORD); 421 421 } 422 422 423 423 interface IPointerInactive : IUnknown { 424 424 HRESULT GetActivationPolicy(DWORD*); ................................................................................ 430 430 HRESULT Do(LPOLEUNDOMANAGER); 431 431 HRESULT GetDescription(BSTR*); 432 432 HRESULT GetUnitType(CLSID*, LONG*); 433 433 HRESULT OnNextAdd(); 434 434 } 435 435 436 436 interface IOleParentUndoUnit : IOleUndoUnit { 437 - HRESULT Open(IOleParentUndoUnit*); 438 - HRESULT Close(IOleParentUndoUnit*, BOOL); 439 - HRESULT Add(IOleUndoUnit*); 440 - HRESULT FindUnit(IOleUndoUnit*); 437 + HRESULT Open(IOleParentUndoUnit); 438 + HRESULT Close(IOleParentUndoUnit, BOOL); 439 + HRESULT Add(IOleUndoUnit); 440 + HRESULT FindUnit(IOleUndoUnit); 441 441 HRESULT GetParentState(DWORD*); 442 442 } 443 443 444 444 interface IEnumOleUndoUnits : IUnknown { 445 - HRESULT Next(ULONG, IOleUndoUnit**, ULONG*); 445 + HRESULT Next(ULONG, IOleUndoUnit*, ULONG*); 446 446 HRESULT Skip(ULONG); 447 447 HRESULT Reset(); 448 - HRESULT Clone(IEnumOleUndoUnits**); 448 + HRESULT Clone(IEnumOleUndoUnits*); 449 449 } 450 450 451 451 interface IOleUndoManager : IUnknown { 452 - HRESULT Open(IOleParentUndoUnit*); 453 - HRESULT Close(IOleParentUndoUnit*, BOOL); 454 - HRESULT Add(IOleUndoUnit*); 452 + HRESULT Open(IOleParentUndoUnit); 453 + HRESULT Close(IOleParentUndoUnit, BOOL); 454 + HRESULT Add(IOleUndoUnit); 455 455 HRESULT GetOpenParentState(DWORD*); 456 - HRESULT DiscardFrom(IOleUndoUnit*); 457 - HRESULT UndoTo(IOleUndoUnit*); 458 - HRESULT RedoTo(IOleUndoUnit*); 459 - HRESULT EnumUndoable(IEnumOleUndoUnits**); 460 - HRESULT EnumRedoable(IEnumOleUndoUnits**); 456 + HRESULT DiscardFrom(IOleUndoUnit); 457 + HRESULT UndoTo(IOleUndoUnit); 458 + HRESULT RedoTo(IOleUndoUnit); 459 + HRESULT EnumUndoable(IEnumOleUndoUnits*); 460 + HRESULT EnumRedoable(IEnumOleUndoUnits*); 461 461 HRESULT GetLastUndoDescription(BSTR*); 462 462 HRESULT GetLastRedoDescription(BSTR*); 463 463 HRESULT Enable(BOOL); 464 464 } 465 465 alias IOleUndoManager LPOLEUNDOMANAGER; 466 466 467 467 interface IQuickActivate : IUnknown { 468 468 HRESULT QuickActivate(QACONTAINER*, QACONTROL*); 469 469 HRESULT SetContentExtent(LPSIZEL); 470 470 HRESULT GetContentExtent(LPSIZEL); 471 471 }

Modified src/win32/odbcinst.d from [59befc4756b0b474] to [824e560d2c5ef397].

Modified src/win32/ole.d from [e2cda4dadcb42922] to [40f31eaf30616640].

150 150 oleupdate_onsave, 151 151 oleupdate_oncall, 152 152 // #ifdef OLE_INTERNAL 153 153 oleupdate_onclose 154 154 // #endif 155 155 } 156 156 157 -alias HANDLE HOBJECT; 157 +mixin DECLARE_HANDLE!("HOBJECT"); 158 158 alias LONG LHSERVER, LHCLIENTDOC, LHSERVERDOC; 159 159 160 160 struct OLEOBJECTVTBL { 161 161 extern (Windows) { 162 162 void* function(LPOLEOBJECT, OLE_LPCSTR) QueryProtocol; 163 163 OLESTATUS function(LPOLEOBJECT) Release; 164 164 OLESTATUS function(LPOLEOBJECT, BOOL) Show; ................................................................................ 250 250 OLE_LPCSTR, LPOLESERVERDOC*) CreateFromTemplate; 251 251 OLESTATUS function(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR, 252 252 LPOLESERVERDOC*) Edit; 253 253 OLESTATUS function(LPOLESERVER) Exit; 254 254 OLESTATUS function(LPOLESERVER) Release; 255 255 OLESTATUS function(LPOLESERVER, HGLOBAL) Execute; 256 256 } 257 -alias OLESERVERVTBL* LPOLESERVERVTBL; 257 +alias TypeDef!(OLESERVERVTBL*) LPOLESERVERVTBL; 258 258 259 259 struct OLESERVER { 260 260 LPOLESERVERVTBL lpvtbl; 261 261 } 262 262 alias OLESERVER* LPOLESERVER; 263 263 264 264 struct OLESERVERDOCVTBL { ................................................................................ 284 284 OLESTATUS OleRelease(LPOLEOBJECT); 285 285 OLESTATUS OleSaveToStream(LPOLEOBJECT, LPOLESTREAM); 286 286 OLESTATUS OleEqual(LPOLEOBJECT, LPOLEOBJECT); 287 287 OLESTATUS OleCopyToClipboard(LPOLEOBJECT); 288 288 OLESTATUS OleSetHostNames(LPOLEOBJECT, LPCSTR, LPCSTR); 289 289 OLESTATUS OleSetTargetDevice(LPOLEOBJECT, HGLOBAL); 290 290 OLESTATUS OleSetBounds(LPOLEOBJECT, LPCRECT); 291 - OLESTATUS OleSetColorScheme(LPOLEOBJECT, CPtr!(LOGPALETTE)); 291 + OLESTATUS OleSetColorScheme(LPOLEOBJECT, const(LOGPALETTE)*); 292 292 OLESTATUS OleQueryBounds(LPOLEOBJECT, RECT*); 293 293 OLESTATUS OleQuerySize(LPOLEOBJECT, DWORD*); 294 294 OLESTATUS OleDraw(LPOLEOBJECT, HDC, LPCRECT, LPCRECT, HDC); 295 295 OLESTATUS OleQueryOpen(LPOLEOBJECT); 296 296 OLESTATUS OleActivate(LPOLEOBJECT, UINT, BOOL, BOOL, HWND, LPCRECT); 297 297 OLESTATUS OleExecute(LPOLEOBJECT, HGLOBAL, UINT); 298 298 OLESTATUS OleClose(LPOLEOBJECT);

Modified src/win32/ole2.d from [d7dba25775579154] to [068170c0bbf5e02d].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.ole2; 11 -pragma(lib, "ole32.lib"); 11 +pragma(lib, "ole32"); 12 12 13 13 public import win32.basetyps, win32.objbase, win32.oleauto, win32.olectlid, 14 14 win32.oleidl, win32.unknwn, win32.winerror, win32.uuid; 15 15 private import win32.objfwd, win32.objidl, win32.windef, win32.wtypes; 16 16 private import win32.winuser; // for LPMSG 17 17 18 18 const E_DRAW = VIEW_E_DRAW; ................................................................................ 39 39 LPOLESTREAMVTBL lpstbl; 40 40 } 41 41 alias OLESTREAM* LPOLESTREAM; 42 42 43 43 extern (Windows) { 44 44 struct OLESTREAMVTBL { 45 45 DWORD function (LPOLESTREAM, void*, DWORD) Get; 46 - DWORD function (LPOLESTREAM, CPtr!(void), DWORD) Put; 46 + DWORD function (LPOLESTREAM, const(void)*, DWORD) Put; 47 47 } 48 48 } 49 49 alias OLESTREAMVTBL* LPOLESTREAMVTBL; 50 50 51 51 extern (Windows) { 52 52 HRESULT CreateDataAdviseHolder(LPDATAADVISEHOLDER*); 53 53 DWORD OleBuildVersion(); ................................................................................ 98 98 HGLOBAL OleGetIconOfFile(LPOLESTR, BOOL); 99 99 HGLOBAL OleGetIconOfClass(REFCLSID, LPOLESTR, BOOL); 100 100 HGLOBAL OleMetafilePictFromIconAndLabel(HICON, LPOLESTR, LPOLESTR, UINT); 101 101 HRESULT OleRegGetUserType(REFCLSID, DWORD, LPOLESTR*); 102 102 HRESULT OleRegGetMiscStatus(REFCLSID, DWORD, DWORD*); 103 103 HRESULT OleRegEnumFormatEtc (REFCLSID, DWORD, LPENUMFORMATETC*); 104 104 HRESULT OleRegEnumVerbs (REFCLSID, LPENUMOLEVERB*); 105 - HRESULT OleConvertOLESTREAMToIStorage(LPOLESTREAM, LPSTORAGE, CPtr!(DVTARGETDEVICE)); 105 + HRESULT OleConvertOLESTREAMToIStorage(LPOLESTREAM, LPSTORAGE, const(DVTARGETDEVICE)*); 106 106 HRESULT OleConvertIStorageToOLESTREAM(LPSTORAGE, LPOLESTREAM); 107 107 HRESULT GetHGlobalFromILockBytes(LPLOCKBYTES, HGLOBAL*); 108 108 HRESULT CreateILockBytesOnHGlobal(HGLOBAL, BOOL, LPLOCKBYTES*); 109 109 HRESULT GetHGlobalFromStream(LPSTREAM, HGLOBAL*); 110 110 HRESULT CreateStreamOnHGlobal(HGLOBAL, BOOL, LPSTREAM*); 111 111 HRESULT OleDoAutoConvert(LPSTORAGE, LPCLSID); 112 112 HRESULT OleGetAutoConvert(REFCLSID, LPCLSID); 113 113 HRESULT OleSetAutoConvert(REFCLSID, REFCLSID); 114 114 HRESULT GetConvertStg(LPSTORAGE); 115 115 HRESULT SetConvertStg(LPSTORAGE, BOOL); 116 116 HRESULT OleConvertIStorageToOLESTREAMEx(LPSTORAGE, CLIPFORMAT, LONG, LONG, DWORD, LPSTGMEDIUM, LPOLESTREAM); 117 117 HRESULT OleConvertOLESTREAMToIStorageEx(LPOLESTREAM, LPSTORAGE, CLIPFORMAT*, LONG*, LONG*, DWORD*, LPSTGMEDIUM); 118 118 }

Modified src/win32/ole2ver.d from [6b6f7e7e710daccd] to [9d6b17791d89139e].

Modified src/win32/oleacc.d from [1a7488ae8c3326a5] to [dbfc227161dd27d8].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.oleacc; 11 -pragma(lib, "oleacc.lib"); 11 +pragma(lib, "oleacc"); 12 12 13 13 private import win32.basetyps, win32.oaidl, win32.unknwn, win32.wtypes, 14 14 win32.windef; 15 15 16 16 enum { 17 17 DISPID_ACC_PARENT = -5000, 18 18 DISPID_ACC_CHILDCOUNT = -5001, ................................................................................ 153 153 SELFLAG_REMOVESELECTION = 16 154 154 } 155 155 156 156 const SELFLAG_VALID = 0x0000001F; 157 157 158 158 159 159 interface IAccessible : IDispatch { 160 - HRESULT get_accParent(IDispatch**); 160 + HRESULT get_accParent(IDispatch*); 161 161 HRESULT get_accChildCount(int*); 162 - HRESULT get_accChild(VARIANT, IDispatch **); 162 + HRESULT get_accChild(VARIANT, IDispatch*); 163 163 HRESULT get_accName(VARIANT, BSTR*); 164 164 HRESULT get_accValue(VARIANT, BSTR*); 165 165 HRESULT get_accDescription(VARIANT, BSTR*); 166 166 HRESULT get_accRole(VARIANT, VARIANT*); 167 167 HRESULT get_accState(VARIANT, VARIANT*); 168 168 HRESULT get_accHelp(VARIANT, BSTR*); 169 169 HRESULT get_accHelpTopic(BSTR*, VARIANT, int*); ................................................................................ 178 178 HRESULT accHitTest(int, int, VARIANT*); 179 179 HRESULT accDoDefaultAction(VARIANT); 180 180 181 181 HRESULT put_accName(VARIANT, BSTR); 182 182 HRESULT put_accValue(VARIANT, BSTR); 183 183 } 184 184 185 -alias IAccessible* LPACCESSIBLE; 185 +alias IAccessible LPACCESSIBLE; 186 186 187 187 extern (Windows) { 188 - HRESULT AccessibleChildren(IAccessible*, LONG, LONG, VARIANT*, LONG*); 189 - HRESULT AccessibleObjectFromEvent(HWND, DWORD, DWORD, IAccessible*, VARIANT*); 190 - HRESULT AccessibleObjectFromPoint(POINT, IAccessible**, VARIANT*); 188 + HRESULT AccessibleChildren(IAccessible, LONG, LONG, VARIANT*, LONG*); 189 + HRESULT AccessibleObjectFromEvent(HWND, DWORD, DWORD, IAccessible, VARIANT*); 190 + HRESULT AccessibleObjectFromPoint(POINT, IAccessible*, VARIANT*); 191 191 HRESULT AccessibleObjectFromWindow(HWND, DWORD, REFIID, void**); 192 192 HRESULT CreateStdAccessibleObject(HWND, LONG, REFIID, void**); 193 193 HRESULT CreateStdAccessibleProxyA(HWND, LPCSTR, LONG, REFIID, void**); 194 194 HRESULT CreateStdAccessibleProxyW(HWND, LPCWSTR, LONG, REFIID, void**); 195 195 196 196 void GetOleaccVersionInfo(DWORD*, DWORD*); 197 197 UINT GetRoleTextA(DWORD, LPSTR, UINT); 198 198 UINT GetRoleTextW(DWORD, LPWSTR, UINT); 199 199 UINT GetStateTextA(DWORD, LPSTR, UINT); 200 200 UINT GetStateTextW(DWORD, LPWSTR, UINT); 201 201 LRESULT LresultFromObject(REFIID, WPARAM, LPUNKNOWN); 202 202 HRESULT ObjectFromLresult(LRESULT, REFIID, WPARAM, void**); 203 - HRESULT WindowFromAccessibleObject(IAccessible*, HWND*); 203 + HRESULT WindowFromAccessibleObject(IAccessible, HWND*); 204 204 } 205 205 206 206 version(Unicode) { 207 207 alias CreateStdAccessibleProxyW CreateStdAccessibleProxy; 208 208 alias GetRoleTextW GetRoleText; 209 209 alias GetStateTextW GetStateText; 210 210 } else { 211 211 alias CreateStdAccessibleProxyA CreateStdAccessibleProxy; 212 212 alias GetRoleTextA GetRoleText; 213 213 alias GetStateTextA GetStateText; 214 214 }

Modified src/win32/oleauto.d from [6e0e0dc09137eaf3] to [d49872cd6ba219cd].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.oleauto; 11 -pragma(lib, "oleaut32.lib"); 11 +pragma(lib, "oleaut32"); 12 12 13 13 import win32.oaidl; 14 14 private import win32.basetyps, win32.unknwn, win32.windef, win32.wtypes; 15 15 private import win32.winbase; // for SYSTEMTIME 16 16 17 17 align(8): 18 18 const STDOLE_MAJORVERNUM = 1; ................................................................................ 216 216 deprecated { // not actually deprecated, but they aren't converted yet. 217 217 // (will need to reinstate CreateTypeLib as well) 218 218 interface ICreateTypeInfo {}; 219 219 interface ICreateTypeInfo2 {}; 220 220 interface ICreateTypeLib {}; 221 221 interface ICreateTypeLib2 {}; 222 222 223 - alias ICreateTypeInfo* LPCREATETYPEINFO; 224 - alias ICreateTypeInfo2* LPCREATETYPEINFO2; 225 - alias ICreateTypeLib* LPCREATETYPELIB; 226 - alias ICreateTypeLib2* LPCREATETYPELIB2; 223 + alias ICreateTypeInfo LPCREATETYPEINFO; 224 + alias ICreateTypeInfo2 LPCREATETYPEINFO2; 225 + alias ICreateTypeLib LPCREATETYPELIB; 226 + alias ICreateTypeLib2 LPCREATETYPELIB2; 227 227 } 228 228 229 229 extern (Windows) { 230 - BSTR SysAllocString(CPtr!(OLECHAR)); 231 - int SysReAllocString(BSTR*, CPtr!(OLECHAR)); 232 - BSTR SysAllocStringLen(CPtr!(OLECHAR), uint); 233 - int SysReAllocStringLen(BSTR*, CPtr!(OLECHAR), uint); 230 + BSTR SysAllocString(const(OLECHAR)*); 231 + int SysReAllocString(BSTR*, const(OLECHAR)*); 232 + BSTR SysAllocStringLen(const(OLECHAR)*, uint); 233 + int SysReAllocStringLen(BSTR*, const(OLECHAR)*, uint); 234 234 void SysFreeString(BSTR); 235 235 uint SysStringLen(BSTR); 236 236 uint SysStringByteLen(BSTR); 237 - BSTR SysAllocStringByteLen(CPtr!(char), uint); 237 + BSTR SysAllocStringByteLen(const(char)*, uint); 238 238 int DosDateTimeToVariantTime(ushort, ushort, double*); 239 239 int VariantTimeToDosDateTime(double, ushort*, ushort*); 240 240 int VariantTimeToSystemTime(double, LPSYSTEMTIME); 241 241 int SystemTimeToVariantTime(LPSYSTEMTIME, double*); 242 242 HRESULT VarDateFromUdate(UDATE*, ULONG, DATE*); 243 243 HRESULT VarDateFromUdateEx(UDATE*, LCID, ULONG, DATE*); 244 244 HRESULT VarUdateFromDate(DATE, ULONG, UDATE*); ................................................................................ 261 261 HRESULT SafeArrayPutElement(SAFEARRAY*, int*, void*); 262 262 HRESULT SafeArrayCopy(SAFEARRAY*, SAFEARRAY**); 263 263 HRESULT SafeArrayPtrOfIndex(SAFEARRAY*, int*, void**); 264 264 SAFEARRAY* SafeArrayCreateVector(VARTYPE, LONG, ULONG); 265 265 SAFEARRAY* SafeArrayCreateVectorEx(VARTYPE, LONG, ULONG, LPVOID); 266 266 HRESULT SafeArrayAllocDescriptorEx(VARTYPE, UINT, SAFEARRAY**); 267 267 HRESULT SafeArrayGetVartype(SAFEARRAY*, VARTYPE*); 268 - HRESULT SafeArraySetRecordInfo(SAFEARRAY*, IRecordInfo*); 269 - HRESULT SafeArrayGetRecordInfo(SAFEARRAY*, IRecordInfo**); 268 + HRESULT SafeArraySetRecordInfo(SAFEARRAY*, IRecordInfo); 269 + HRESULT SafeArrayGetRecordInfo(SAFEARRAY*, IRecordInfo*); 270 270 HRESULT SafeArraySetIID(SAFEARRAY*, REFGUID); 271 271 HRESULT SafeArrayGetIID(SAFEARRAY*, GUID*); 272 272 void VariantInit(VARIANTARG*); 273 273 HRESULT VariantClear(VARIANTARG*); 274 274 HRESULT VariantCopy(VARIANTARG*, VARIANTARG*); 275 275 HRESULT VariantCopyInd(VARIANT*, VARIANTARG*); 276 276 HRESULT VariantChangeType(VARIANTARG*, VARIANTARG*, ushort, VARTYPE); ................................................................................ 354 354 HRESULT VarBoolFromR4(float, VARIANT_BOOL*); 355 355 HRESULT VarBoolFromR8(double, VARIANT_BOOL*); 356 356 HRESULT VarBoolFromDate(DATE, VARIANT_BOOL*); 357 357 HRESULT VarBoolFromCy(CY, VARIANT_BOOL*); 358 358 HRESULT VarBoolFromStr(OLECHAR*, LCID, uint, VARIANT_BOOL*); 359 359 HRESULT VarBoolFromDisp(LPDISPATCH, LCID, VARIANT_BOOL*); 360 360 HRESULT VarDecFromR8(double, DECIMAL*); 361 - ULONG LHashValOfNameSysA(SYSKIND, LCID, CPtr!(char)); 362 - ULONG LHashValOfNameSys(SYSKIND, LCID, CPtr!(OLECHAR)); 363 - HRESULT LoadTypeLib(CPtr!(OLECHAR), LPTYPELIB*); 361 + ULONG LHashValOfNameSysA(SYSKIND, LCID, const(char)*); 362 + ULONG LHashValOfNameSys(SYSKIND, LCID, const(OLECHAR)*); 363 + HRESULT LoadTypeLib(const(OLECHAR)*, LPTYPELIB*); 364 364 HRESULT LoadTypeLibEx(LPCOLESTR, REGKIND, LPTYPELIB*); 365 365 HRESULT LoadRegTypeLib(REFGUID, WORD, WORD, LCID, LPTYPELIB*); 366 366 HRESULT QueryPathOfRegTypeLib(REFGUID, ushort, ushort, LCID, LPBSTR); 367 367 HRESULT RegisterTypeLib(LPTYPELIB, OLECHAR*, OLECHAR*); 368 368 HRESULT UnRegisterTypeLib(REFGUID, WORD, WORD, LCID, SYSKIND); 369 369 // not actually deprecated, but depends on unconverted ICreateTypeLib 370 - deprecated HRESULT CreateTypeLib(SYSKIND, CPtr!(OLECHAR), LPCREATETYPELIB*); 370 + deprecated HRESULT CreateTypeLib(SYSKIND, const(OLECHAR)*, LPCREATETYPELIB*); 371 371 HRESULT DispGetParam(DISPPARAMS*, UINT, VARTYPE, VARIANT*, UINT*); 372 372 HRESULT DispGetIDsOfNames(LPTYPEINFO, OLECHAR**, UINT, DISPID*); 373 373 HRESULT DispInvoke(void*, LPTYPEINFO, DISPID, WORD, DISPPARAMS*, VARIANT*, EXCEPINFO*, UINT*); 374 374 HRESULT CreateDispTypeInfo(INTERFACEDATA*, LCID, LPTYPEINFO*); 375 - HRESULT CreateStdDispatch(IUnknown*, void*, LPTYPEINFO, IUnknown**); 376 - HRESULT RegisterActiveObject(IUnknown*, REFCLSID, DWORD, DWORD*); 375 + HRESULT CreateStdDispatch(IUnknown, void*, LPTYPEINFO, IUnknown*); 376 + HRESULT RegisterActiveObject(IUnknown, REFCLSID, DWORD, DWORD*); 377 377 HRESULT RevokeActiveObject(DWORD, void*); 378 - HRESULT GetActiveObject(REFCLSID, void*, IUnknown**); 378 + HRESULT GetActiveObject(REFCLSID, void*, IUnknown*); 379 379 HRESULT SetErrorInfo(uint, LPERRORINFO); 380 380 HRESULT GetErrorInfo(uint, LPERRORINFO*); 381 381 HRESULT CreateErrorInfo(LPCREATEERRORINFO*); 382 382 uint OaBuildVersion(); 383 383 HRESULT VectorFromBstr (BSTR, SAFEARRAY**); 384 384 HRESULT BstrFromVector (SAFEARRAY*, BSTR*); 385 385 HRESULT VarParseNumFromStr(OLECHAR*, LCID, ULONG, NUMPARSE*, BYTE*); ................................................................................ 400 400 HRESULT VarUI1FromI1(byte, BYTE*); 401 401 HRESULT VarUI1FromUI2(USHORT, BYTE*); 402 402 HRESULT VarUI1FromUI4(ULONG, BYTE*); 403 403 HRESULT VarUI1FromUI8(ULONG64, BYTE*); 404 404 HRESULT VarUI1FromStr(OLECHAR*, LCID, ULONG, BYTE*); 405 405 HRESULT VarUI1FromCy(CY, BYTE*); 406 406 HRESULT VarUI1FromDec(DECIMAL*, BYTE*); 407 - HRESULT VarUI1FromDisp(IDispatch*, LCID, BYTE*); 407 + HRESULT VarUI1FromDisp(IDispatch, LCID, BYTE*); 408 408 409 409 HRESULT VarI2FromUI1(BYTE, SHORT*); 410 410 HRESULT VarI2FromI4(LONG, SHORT*); 411 411 HRESULT VarI2FromI8(LONG64, SHORT*); 412 412 HRESULT VarI2FromR4(FLOAT, SHORT*); 413 413 HRESULT VarI2FromR8(DOUBLE, SHORT*); 414 414 HRESULT VarI2FromDate(DATE, SHORT*); ................................................................................ 416 416 HRESULT VarI2FromI1(byte, SHORT*); 417 417 HRESULT VarI2FromUI2(USHORT, SHORT*); 418 418 HRESULT VarI2FromUI4(ULONG, SHORT*); 419 419 HRESULT VarI2FromUI8(ULONG64, SHORT*); 420 420 HRESULT VarI2FromStr(OLECHAR*, LCID, ULONG, SHORT*); 421 421 HRESULT VarI2FromCy(CY, SHORT*); 422 422 HRESULT VarI2FromDec(DECIMAL*, SHORT*); 423 - HRESULT VarI2FromDisp(IDispatch*, LCID, SHORT*); 423 + HRESULT VarI2FromDisp(IDispatch, LCID, SHORT*); 424 424 425 425 HRESULT VarI4FromUI1(BYTE, LONG*); 426 426 HRESULT VarI4FromI2(SHORT, LONG*); 427 427 HRESULT VarI4FromI8(LONG64, LONG*); 428 428 HRESULT VarI4FromR4(FLOAT, LONG*); 429 429 HRESULT VarI4FromR8(DOUBLE, LONG*); 430 430 HRESULT VarI4FromDate(DATE, LONG*); ................................................................................ 432 432 HRESULT VarI4FromI1(byte, LONG*); 433 433 HRESULT VarI4FromUI2(USHORT, LONG*); 434 434 HRESULT VarI4FromUI4(ULONG, LONG*); 435 435 HRESULT VarI4FromUI8(ULONG64, LONG*); 436 436 HRESULT VarI4FromStr(OLECHAR*, LCID, ULONG, LONG*); 437 437 HRESULT VarI4FromCy(CY, LONG*); 438 438 HRESULT VarI4FromDec(DECIMAL*, LONG*); 439 - HRESULT VarI4FromDisp(IDispatch*, LCID, LONG*); 439 + HRESULT VarI4FromDisp(IDispatch, LCID, LONG*); 440 440 441 441 HRESULT VarI8FromUI1(BYTE, LONG64*); 442 442 HRESULT VarI8FromI2(SHORT, LONG64*); 443 443 HRESULT VarI8FromI4(LONG, LONG64*); 444 444 HRESULT VarI8FromR4(FLOAT, LONG64*); 445 445 HRESULT VarI8FromR8(DOUBLE, LONG64*); 446 446 HRESULT VarI8FromDate(DATE, LONG64*); ................................................................................ 449 449 HRESULT VarI8FromI1(byte, LONG64*); 450 450 HRESULT VarI8FromUI2(USHORT, LONG64*); 451 451 HRESULT VarI8FromUI4(ULONG, LONG64*); 452 452 HRESULT VarI8FromUI8(ULONG64, LONG64*); 453 453 HRESULT VarI8FromDec(DECIMAL* pdecIn, LONG64*); 454 454 HRESULT VarI8FromInt(INT intIn, LONG64*); 455 455 HRESULT VarI8FromCy(CY, LONG64*); 456 - HRESULT VarI8FromDisp(IDispatch*, LCID, LONG64*); 456 + HRESULT VarI8FromDisp(IDispatch, LCID, LONG64*); 457 457 458 458 HRESULT VarR4FromUI1(BYTE, FLOAT*); 459 459 HRESULT VarR4FromI2(SHORT, FLOAT*); 460 460 HRESULT VarR4FromI4(LONG, FLOAT*); 461 461 HRESULT VarR4FromI8(LONG64, FLOAT*); 462 462 HRESULT VarR4FromR8(DOUBLE, FLOAT*); 463 463 HRESULT VarR4FromDate(DATE, FLOAT*); ................................................................................ 465 465 HRESULT VarR4FromI1(byte, FLOAT*); 466 466 HRESULT VarR4FromUI2(USHORT, FLOAT*); 467 467 HRESULT VarR4FromUI4(ULONG, FLOAT*); 468 468 HRESULT VarR4FromUI8(ULONG64, FLOAT*); 469 469 HRESULT VarR4FromStr(OLECHAR*, LCID, ULONG, FLOAT*); 470 470 HRESULT VarR4FromCy(CY, FLOAT*); 471 471 HRESULT VarR4FromDec(DECIMAL*, FLOAT*); 472 - HRESULT VarR4FromDisp(IDispatch*, LCID, FLOAT*); 472 + HRESULT VarR4FromDisp(IDispatch, LCID, FLOAT*); 473 473 474 474 HRESULT VarR8FromUI1(BYTE, double*); 475 475 HRESULT VarR8FromI2(SHORT, double*); 476 476 HRESULT VarR8FromI4(LONG, double*); 477 477 HRESULT VarR8FromI8(LONG64, double*); 478 478 HRESULT VarR8FromR4(FLOAT, double*); 479 479 HRESULT VarR8FromDate(DATE, double*); ................................................................................ 481 481 HRESULT VarR8FromI1(byte, double*); 482 482 HRESULT VarR8FromUI2(USHORT, double*); 483 483 HRESULT VarR8FromUI4(ULONG, double*); 484 484 HRESULT VarR8FromUI8(ULONG64, double*); 485 485 HRESULT VarR8FromStr(OLECHAR*, LCID, ULONG, double*); 486 486 HRESULT VarR8FromCy(CY, double*); 487 487 HRESULT VarR8FromDec(DECIMAL*, double*); 488 - HRESULT VarR8FromDisp(IDispatch*, LCID, double*); 488 + HRESULT VarR8FromDisp(IDispatch, LCID, double*); 489 489 490 490 HRESULT VarDateFromUI1(BYTE, DATE*); 491 491 HRESULT VarDateFromI2(SHORT, DATE*); 492 492 HRESULT VarDateFromI4(LONG, DATE*); 493 493 HRESULT VarDateFromI8(LONG64, DATE*); 494 494 HRESULT VarDateFromR4(FLOAT, DATE*); 495 495 HRESULT VarDateFromR8(DOUBLE, DATE*); ................................................................................ 497 497 HRESULT VarDateFromI1(byte, DATE*); 498 498 HRESULT VarDateFromUI2(USHORT, DATE*); 499 499 HRESULT VarDateFromUI4(ULONG, DATE*); 500 500 HRESULT VarDateFromUI8(ULONG64, DATE*); 501 501 HRESULT VarDateFromBool(VARIANT_BOOL, DATE*); 502 502 HRESULT VarDateFromCy(CY, DATE*); 503 503 HRESULT VarDateFromDec(DECIMAL*, DATE*); 504 - HRESULT VarDateFromDisp(IDispatch*, LCID, DATE*); 504 + HRESULT VarDateFromDisp(IDispatch, LCID, DATE*); 505 505 506 506 HRESULT VarCyFromUI1(BYTE, CY*); 507 507 HRESULT VarCyFromI2(SHORT sIn, CY*); 508 508 HRESULT VarCyFromI4(LONG, CY*); 509 509 HRESULT VarCyFromI8(LONG64, CY*); 510 510 HRESULT VarCyFromR4(FLOAT, CY*); 511 511 HRESULT VarCyFromR8(DOUBLE, CY*); ................................................................................ 514 514 HRESULT VarCyFromBool(VARIANT_BOOL, CY*); 515 515 HRESULT VarCyFromI1(byte, CY*); 516 516 HRESULT VarCyFromUI2(USHORT, CY*); 517 517 HRESULT VarCyFromUI4(ULONG, CY*); 518 518 HRESULT VarCyFromUI8(ULONG64, CY*); 519 519 HRESULT VarCyFromDec(DECIMAL*, CY*); 520 520 HRESULT VarCyFromStr(OLECHAR*, LCID, ULONG, CY*); 521 - HRESULT VarCyFromDisp(IDispatch*, LCID, CY*); 521 + HRESULT VarCyFromDisp(IDispatch, LCID, CY*); 522 522 523 523 HRESULT VarBstrFromUI1(BYTE, LCID, ULONG, BSTR*); 524 524 HRESULT VarBstrFromI2(SHORT, LCID, ULONG, BSTR*); 525 525 HRESULT VarBstrFromI4(LONG, LCID, ULONG, BSTR*); 526 526 HRESULT VarBstrFromI8(LONG64, LCID, ULONG, BSTR*); 527 527 HRESULT VarBstrFromR4(FLOAT, LCID, ULONG, BSTR*); 528 528 HRESULT VarBstrFromR8(DOUBLE, LCID, ULONG, BSTR*); ................................................................................ 530 530 HRESULT VarBstrFromBool(VARIANT_BOOL, LCID, ULONG, BSTR*); 531 531 HRESULT VarBstrFromI1(byte, LCID, ULONG, BSTR*); 532 532 HRESULT VarBstrFromUI2(USHORT, LCID, ULONG, BSTR*); 533 533 HRESULT VarBstrFromUI8(ULONG64, LCID, ULONG, BSTR*); 534 534 HRESULT VarBstrFromUI4(ULONG, LCID, ULONG, BSTR*); 535 535 HRESULT VarBstrFromCy(CY, LCID, ULONG, BSTR*); 536 536 HRESULT VarBstrFromDec(DECIMAL*, LCID, ULONG, BSTR*); 537 - HRESULT VarBstrFromDisp(IDispatch*, LCID, ULONG, BSTR*); 537 + HRESULT VarBstrFromDisp(IDispatch, LCID, ULONG, BSTR*); 538 538 539 539 HRESULT VarBoolFromUI1(BYTE, VARIANT_BOOL*); 540 540 HRESULT VarBoolFromI2(SHORT, VARIANT_BOOL*); 541 541 HRESULT VarBoolFromI4(LONG, VARIANT_BOOL*); 542 542 HRESULT VarBoolFromI8(LONG64, VARIANT_BOOL*); 543 543 HRESULT VarBoolFromR4(FLOAT, VARIANT_BOOL*); 544 544 HRESULT VarBoolFromR8(DOUBLE, VARIANT_BOOL*); ................................................................................ 546 546 HRESULT VarBoolFromStr(OLECHAR*, LCID, ULONG, VARIANT_BOOL*); 547 547 HRESULT VarBoolFromI1(byte, VARIANT_BOOL*); 548 548 HRESULT VarBoolFromUI2(USHORT, VARIANT_BOOL*); 549 549 HRESULT VarBoolFromUI4(ULONG, VARIANT_BOOL*); 550 550 HRESULT VarBoolFromUI8(ULONG64, VARIANT_BOOL*); 551 551 HRESULT VarBoolFromCy(CY, VARIANT_BOOL*); 552 552 HRESULT VarBoolFromDec(DECIMAL*, VARIANT_BOOL*); 553 - HRESULT VarBoolFromDisp(IDispatch*, LCID, VARIANT_BOOL*); 553 + HRESULT VarBoolFromDisp(IDispatch, LCID, VARIANT_BOOL*); 554 554 555 555 HRESULT VarI1FromUI1(BYTE, byte*); 556 556 HRESULT VarI1FromI2(SHORT, byte*); 557 557 HRESULT VarI1FromI4(LONG, byte*); 558 558 HRESULT VarI1FromI8(LONG64, byte*); 559 559 HRESULT VarI1FromR4(FLOAT, byte*); 560 560 HRESULT VarI1FromR8(DOUBLE, byte*); ................................................................................ 562 562 HRESULT VarI1FromStr(OLECHAR*, LCID, ULONG, byte*); 563 563 HRESULT VarI1FromBool(VARIANT_BOOL, byte*); 564 564 HRESULT VarI1FromUI2(USHORT, byte*); 565 565 HRESULT VarI1FromUI4(ULONG, byte*); 566 566 HRESULT VarI1FromUI8(ULONG64, byte*); 567 567 HRESULT VarI1FromCy(CY, byte*); 568 568 HRESULT VarI1FromDec(DECIMAL*, byte*); 569 - HRESULT VarI1FromDisp(IDispatch*, LCID, byte*); 569 + HRESULT VarI1FromDisp(IDispatch, LCID, byte*); 570 570 571 571 HRESULT VarUI2FromUI1(BYTE, USHORT*); 572 572 HRESULT VarUI2FromI2(SHORT, USHORT*); 573 573 HRESULT VarUI2FromI4(LONG, USHORT*); 574 574 HRESULT VarUI2FromI8(LONG64, USHORT*); 575 575 HRESULT VarUI2FromR4(FLOAT, USHORT*); 576 576 HRESULT VarUI2FromR8(DOUBLE, USHORT*); ................................................................................ 578 578 HRESULT VarUI2FromStr(OLECHAR*, LCID, ULONG, USHORT*); 579 579 HRESULT VarUI2FromBool(VARIANT_BOOL, USHORT*); 580 580 HRESULT VarUI2FromI1(byte, USHORT*); 581 581 HRESULT VarUI2FromUI4(ULONG, USHORT*); 582 582 HRESULT VarUI2FromUI8(ULONG64, USHORT*); 583 583 HRESULT VarUI2FromCy(CY, USHORT*); 584 584 HRESULT VarUI2FromDec(DECIMAL*, USHORT*); 585 - HRESULT VarUI2FromDisp(IDispatch*, LCID, USHORT*); 585 + HRESULT VarUI2FromDisp(IDispatch, LCID, USHORT*); 586 586 587 587 HRESULT VarUI4FromStr(OLECHAR*, LCID, ULONG, ULONG*); 588 588 HRESULT VarUI4FromUI1(BYTE, ULONG*); 589 589 HRESULT VarUI4FromI2(SHORT, ULONG*); 590 590 HRESULT VarUI4FromI4(LONG, ULONG*); 591 591 HRESULT VarUI4FromI8(LONG64, ULONG*); 592 592 HRESULT VarUI4FromR4(FLOAT, ULONG*); ................................................................................ 594 594 HRESULT VarUI4FromDate(DATE, ULONG*); 595 595 HRESULT VarUI4FromBool(VARIANT_BOOL, ULONG*); 596 596 HRESULT VarUI4FromI1(byte, ULONG*); 597 597 HRESULT VarUI4FromUI2(USHORT, ULONG*); 598 598 HRESULT VarUI4FromUI8(ULONG64, ULONG*); 599 599 HRESULT VarUI4FromCy(CY, ULONG*); 600 600 HRESULT VarUI4FromDec(DECIMAL*, ULONG*); 601 - HRESULT VarUI4FromDisp(IDispatch*, LCID, ULONG*); 601 + HRESULT VarUI4FromDisp(IDispatch, LCID, ULONG*); 602 602 603 603 HRESULT VarUI8FromUI1(BYTE, ULONG64*); 604 604 HRESULT VarUI8FromI2(SHORT, ULONG64*); 605 605 HRESULT VarUI8FromI4(LONG, ULONG64*); 606 606 HRESULT VarUI8FromI8(LONG64, ULONG64*); 607 607 HRESULT VarUI8FromR4(FLOAT, ULONG64*); 608 608 HRESULT VarUI8FromR8(DOUBLE, ULONG64*); ................................................................................ 611 611 HRESULT VarUI8FromBool(VARIANT_BOOL, ULONG64*); 612 612 HRESULT VarUI8FromI1(byte, ULONG64*); 613 613 HRESULT VarUI8FromUI2(USHORT, ULONG64*); 614 614 HRESULT VarUI8FromUI4(ULONG, ULONG64*); 615 615 HRESULT VarUI8FromDec(DECIMAL*, ULONG64*); 616 616 HRESULT VarUI8FromInt(INT, ULONG64*); 617 617 HRESULT VarUI8FromCy(CY, ULONG64*); 618 - HRESULT VarUI8FromDisp(IDispatch*, LCID, ULONG64*); 618 + HRESULT VarUI8FromDisp(IDispatch, LCID, ULONG64*); 619 619 620 620 HRESULT VarDecFromUI1(BYTE, DECIMAL*); 621 621 HRESULT VarDecFromI2(SHORT, DECIMAL*); 622 622 HRESULT VarDecFromI4(LONG, DECIMAL*); 623 623 HRESULT VarDecFromI8(LONG64, DECIMAL*); 624 624 HRESULT VarDecFromR4(FLOAT, DECIMAL*); 625 625 HRESULT VarDecFromR8(DOUBLE, DECIMAL*); ................................................................................ 627 627 HRESULT VarDecFromStr(OLECHAR*, LCID, ULONG, DECIMAL*); 628 628 HRESULT VarDecFromBool(VARIANT_BOOL, DECIMAL*); 629 629 HRESULT VarDecFromI1(byte, DECIMAL*); 630 630 HRESULT VarDecFromUI2(USHORT, DECIMAL*); 631 631 HRESULT VarDecFromUI4(ULONG, DECIMAL*); 632 632 HRESULT VarDecFromUI8(ULONG64, DECIMAL*); 633 633 HRESULT VarDecFromCy(CY, DECIMAL*); 634 - HRESULT VarDecFromDisp(IDispatch*, LCID, DECIMAL*); 634 + HRESULT VarDecFromDisp(IDispatch, LCID, DECIMAL*); 635 635 636 - HRESULT VarDecNeg(CPtr!(DECIMAL), DECIMAL*); 636 + HRESULT VarDecNeg(const(DECIMAL)*, DECIMAL*); 637 637 HRESULT VarR4CmpR8(float, double); 638 638 HRESULT VarR8Pow(double, double, double*); 639 639 HRESULT VarR8Round(double, int, double*); 640 - HRESULT VarDecAbs(CPtr!(DECIMAL), DECIMAL*); 641 - HRESULT VarDecAdd(CPtr!(DECIMAL), CPtr!(DECIMAL), DECIMAL*); 642 - HRESULT VarDecCmp(CPtr!(DECIMAL), CPtr!(DECIMAL)); 643 - HRESULT VarDecCmpR8(CPtr!(DECIMAL), DOUBLE); 644 - HRESULT VarDecDiv(CPtr!(DECIMAL), CPtr!(DECIMAL), DECIMAL*); 645 - HRESULT VarDecFix(CPtr!(DECIMAL), DECIMAL*); 646 - HRESULT VarDecInt(CPtr!(DECIMAL), DECIMAL*); 647 - HRESULT VarDecMul(CPtr!(DECIMAL), CPtr!(DECIMAL), DECIMAL*); 648 - HRESULT VarDecRound(CPtr!(DECIMAL), int, DECIMAL*); 649 - HRESULT VarDecSub(CPtr!(DECIMAL), CPtr!(DECIMAL), DECIMAL*); 640 + HRESULT VarDecAbs(const(DECIMAL)*, DECIMAL*); 641 + HRESULT VarDecAdd(const(DECIMAL)*, const(DECIMAL)*, DECIMAL*); 642 + HRESULT VarDecCmp(const(DECIMAL)*, const(DECIMAL)*); 643 + HRESULT VarDecCmpR8(const(DECIMAL)*, DOUBLE); 644 + HRESULT VarDecDiv(const(DECIMAL)*, const(DECIMAL)*, DECIMAL*); 645 + HRESULT VarDecFix(const(DECIMAL)*, DECIMAL*); 646 + HRESULT VarDecInt(const(DECIMAL)*, DECIMAL*); 647 + HRESULT VarDecMul(const(DECIMAL)*, const(DECIMAL)*, DECIMAL*); 648 + HRESULT VarDecRound(const(DECIMAL)*, int, DECIMAL*); 649 + HRESULT VarDecSub(const(DECIMAL)*, const(DECIMAL)*, DECIMAL*); 650 650 HRESULT VarCyAbs(CY, CY*); 651 651 HRESULT VarCyAdd(CY, CY, CY*); 652 652 HRESULT VarCyCmp(CY, CY); 653 653 HRESULT VarCyCmpR8(CY, DOUBLE); 654 654 HRESULT VarCyFix(CY, CY*); 655 655 HRESULT VarCyInt(CY, CY*); 656 656 HRESULT VarCyMul(CY, CY, CY*);

Modified src/win32/olectl.d from [f75dbd32f328c551] to [47279ee1c2100dc8].

287 287 DISPID_PICT_HPAL = 2, 288 288 DISPID_PICT_TYPE, 289 289 DISPID_PICT_WIDTH, 290 290 DISPID_PICT_HEIGHT, 291 291 DISPID_PICT_RENDER // = 6 292 292 } 293 293 294 -alias IOleControl *LPOLECONTROL; 295 -alias IOleControlSite *LPOLECONTROLSITE; 296 -alias ISimpleFrameSite *LPSIMPLEFRAMESITE; 297 -alias IPersistPropertyBag *LPPERSISTPROPERTYBAG; 298 -alias IPersistStreamInit *LPPERSISTSTREAMINIT; 299 -alias IPersistMemory *LPPERSISTMEMORY; 300 -alias IPropertyNotifySink* LPPROPERTYNOTIFYSINK; 301 -alias IProvideClassInfo *LPPROVIDECLASSINFO; 302 -alias IProvideClassInfo2 *LPPROVIDECLASSINFO2; 303 -alias IConnectionPointContainer *LPCONNECTIONPOINTCONTAINER; 304 -alias IClassFactory2 *LPCLASSFACTORY2; 305 -alias ISpecifyPropertyPages *LPSPECIFYPROPERTYPAGES; 306 -alias IPerPropertyBrowsing *LPPERPROPERTYBROWSING; 307 -alias IPropertyPage *LPPROPERTYPAGE; 308 -alias IPropertyPage2 *LPPROPERTYPAGE2; 294 +alias IOleControl LPOLECONTROL; 295 +alias IOleControlSite LPOLECONTROLSITE; 296 +alias ISimpleFrameSite LPSIMPLEFRAMESITE; 297 +alias IPersistPropertyBag LPPERSISTPROPERTYBAG; 298 +alias IPersistStreamInit LPPERSISTSTREAMINIT; 299 +alias IPersistMemory LPPERSISTMEMORY; 300 +alias IPropertyNotifySink LPPROPERTYNOTIFYSINK; 301 +alias IProvideClassInfo LPPROVIDECLASSINFO; 302 +alias IProvideClassInfo2 LPPROVIDECLASSINFO2; 303 +alias IConnectionPointContainer LPCONNECTIONPOINTCONTAINER; 304 +alias IClassFactory2 LPCLASSFACTORY2; 305 +alias ISpecifyPropertyPages LPSPECIFYPROPERTYPAGES; 306 +alias IPerPropertyBrowsing LPPERPROPERTYBROWSING; 307 +alias IPropertyPage LPPROPERTYPAGE; 308 +alias IPropertyPage2 LPPROPERTYPAGE2; 309 309 310 -alias IPicture *LPPICTURE; 311 -alias IPictureDisp *LPPICTUREDISP; 310 +alias IPicture LPPICTURE; 311 +alias IPictureDisp LPPICTUREDISP; 312 312 alias int OLE_XPOS_PIXELS; 313 313 alias int OLE_YPOS_PIXELS; 314 314 alias int OLE_XSIZE_PIXELS; 315 315 alias int OLE_YSIZE_PIXELS; 316 316 alias float OLE_XPOS_CONTAINER; 317 317 alias float OLE_YPOS_CONTAINER; 318 318 alias float OLE_XSIZE_CONTAINER;

Modified src/win32/olectlid.d from [a48867c7da90131b] to [6c345ef73f060b47].

Modified src/win32/oledlg.d from [037c81af9c06936e] to [5675873348358744].

480 480 HRESULT GetLinkUpdateOptions(DWORD, PDWORD); 481 481 HRESULT SetLinkSource(DWORD, LPWSTR, ULONG, PULONG, BOOL); 482 482 HRESULT GetLinkSource(DWORD, LPWSTR*, PULONG, LPWSTR*, LPWSTR*, BOOL*, BOOL*); 483 483 HRESULT OpenLinkSource(DWORD); 484 484 HRESULT UpdateLink(DWORD, BOOL, BOOL); 485 485 HRESULT CancelLink(DWORD); 486 486 } 487 -alias IOleUILinkContainerW* LPOLEUILINKCONTAINERW; 487 +alias IOleUILinkContainerW LPOLEUILINKCONTAINERW; 488 488 489 489 interface IOleUILinkContainerA : IUnknown 490 490 { 491 491 HRESULT QueryInterface(REFIID, PVOID*); 492 492 ULONG AddRef(); 493 493 ULONG Release(); 494 494 DWORD GetNextLink(DWORD); ................................................................................ 496 496 HRESULT GetLinkUpdateOptions(DWORD, PDWORD); 497 497 HRESULT SetLinkSource(DWORD, LPSTR, ULONG, PULONG, BOOL); 498 498 HRESULT GetLinkSource(DWORD, LPSTR*, PULONG, LPSTR*, LPSTR*, BOOL*, BOOL*); 499 499 HRESULT OpenLinkSource(DWORD); 500 500 HRESULT UpdateLink(DWORD, BOOL, BOOL); 501 501 HRESULT CancelLink(DWORD); 502 502 } 503 -alias IOleUILinkContainerA* LPOLEUILINKCONTAINERA; 503 +alias IOleUILinkContainerA LPOLEUILINKCONTAINERA; 504 504 505 505 struct OLEUIEDITLINKSW { 506 506 DWORD cbStruct; 507 507 DWORD dwFlags; 508 508 HWND hWndOwner; 509 509 LPCWSTR lpszCaption; 510 510 LPFNOLEUIHOOK lpfnHook; ................................................................................ 538 538 LPFNOLEUIHOOK lpfnHook; 539 539 LPARAM lCustData; 540 540 HINSTANCE hInstance; 541 541 LPCWSTR lpszTemplate; 542 542 HRSRC hResource; 543 543 HGLOBAL hMetaPict; 544 544 CLSID clsid; 545 - WCHAR szIconExe[MAX_PATH]; 545 + WCHAR[MAX_PATH] szIconExe; 546 546 int cchIconExe; 547 547 } 548 548 alias OLEUICHANGEICONW* POLEUICHANGEICONW, LPOLEUICHANGEICONW; 549 549 550 550 struct OLEUICHANGEICONA { 551 551 DWORD cbStruct; 552 552 DWORD dwFlags; ................................................................................ 555 555 LPFNOLEUIHOOK lpfnHook; 556 556 LPARAM lCustData; 557 557 HINSTANCE hInstance; 558 558 LPCSTR lpszTemplate; 559 559 HRSRC hResource; 560 560 HGLOBAL hMetaPict; 561 561 CLSID clsid; 562 - CHAR szIconExe[MAX_PATH]; 562 + CHAR[MAX_PATH] szIconExe; 563 563 int cchIconExe; 564 564 } 565 565 alias OLEUICHANGEICONA* POLEUICHANGEICONA, LPOLEUICHANGEICONA; 566 566 567 567 struct OLEUICONVERTW { 568 568 DWORD cbStruct; 569 569 DWORD dwFlags; ................................................................................ 653 653 LPCWSTR lpszCaption; 654 654 LPFNOLEUIHOOK lpfnHook; 655 655 LPARAM lCustData; 656 656 HINSTANCE hInstance; 657 657 LPCWSTR lpszTemplate; 658 658 HRSRC hResource; 659 659 OPENFILENAMEW* lpOFN; 660 - DWORD dwReserved1[4]; 660 + DWORD[4] dwReserved1; 661 661 LPOLEUILINKCONTAINERW lpOleUILinkContainer; 662 662 DWORD dwLink; 663 663 LPWSTR lpszDisplayName; 664 664 ULONG nFileLength; 665 665 LPWSTR lpszFrom; 666 666 LPWSTR lpszTo; 667 667 } ................................................................................ 674 674 LPCSTR lpszCaption; 675 675 LPFNOLEUIHOOK lpfnHook; 676 676 LPARAM lCustData; 677 677 HINSTANCE hInstance; 678 678 LPCSTR lpszTemplate; 679 679 HRSRC hResource; 680 680 OPENFILENAMEA *lpOFN; 681 - DWORD dwReserved1[4]; 681 + DWORD[4] dwReserved1; 682 682 LPOLEUILINKCONTAINERA lpOleUILinkContainer; 683 683 DWORD dwLink; 684 684 LPSTR lpszDisplayName; 685 685 ULONG nFileLength; 686 686 LPSTR lpszFrom; 687 687 LPSTR lpszTo; 688 688 } ................................................................................ 695 695 ULONG Release(); 696 696 HRESULT GetObjectInfo(DWORD, PDWORD, LPWSTR*, LPWSTR*, LPWSTR*, LPWSTR*); 697 697 HRESULT GetConvertInfo(DWORD, CLSID*, PWORD, CLSID*, LPCLSID*, UINT*); 698 698 HRESULT ConvertObject(DWORD, REFCLSID); 699 699 HRESULT GetViewInfo(DWORD, HGLOBAL*, PDWORD, int*); 700 700 HRESULT SetViewInfo(DWORD, HGLOBAL, DWORD, int, BOOL); 701 701 } 702 -alias IOleUIObjInfoW *LPOLEUIOBJINFOW; 702 +alias IOleUIObjInfoW LPOLEUIOBJINFOW; 703 703 704 704 interface IOleUIObjInfoA : IUnknown 705 705 { 706 706 HRESULT QueryInterface(REFIID, PVOID*); 707 707 ULONG AddRef(); 708 708 ULONG Release(); 709 709 HRESULT GetObjectInfo(DWORD, PDWORD, LPSTR*, LPSTR*, LPSTR*, LPSTR*); 710 710 HRESULT GetConvertInfo(DWORD, CLSID*, PWORD, CLSID*, LPCLSID*, UINT*); 711 711 HRESULT ConvertObject(DWORD, REFCLSID); 712 712 HRESULT GetViewInfo(DWORD, HGLOBAL*, PDWORD, int*); 713 713 HRESULT SetViewInfo(DWORD, HGLOBAL, DWORD, int, BOOL); 714 714 } 715 -alias IOleUIObjInfoA *LPOLEUIOBJINFOA; 715 +alias IOleUIObjInfoA LPOLEUIOBJINFOA; 716 716 717 717 interface IOleUILinkInfoW : IOleUILinkContainerW 718 718 { 719 719 HRESULT QueryInterface(REFIID, PVOID*); 720 720 ULONG AddRef(); 721 721 ULONG Release(); 722 722 DWORD GetNextLink(DWORD); ................................................................................ 725 725 HRESULT SetLinkSource(DWORD, LPWSTR, ULONG, PULONG, BOOL); 726 726 HRESULT GetLinkSource(DWORD, LPWSTR*, PULONG, LPWSTR*, LPWSTR*, BOOL*, BOOL*); 727 727 HRESULT OpenLinkSource(DWORD); 728 728 HRESULT UpdateLink(DWORD, BOOL, BOOL); 729 729 HRESULT CancelLink(DWORD); 730 730 HRESULT GetLastUpdate(DWORD, FILETIME*); 731 731 } 732 -alias IOleUILinkInfoW *LPOLEUILINKINFOW; 732 +alias IOleUILinkInfoW LPOLEUILINKINFOW; 733 733 734 734 interface IOleUILinkInfoA : IOleUILinkContainerA 735 735 { 736 736 HRESULT QueryInterface(REFIID, PVOID*); 737 737 ULONG AddRef(); 738 738 ULONG Release(); 739 739 DWORD GetNextLink(DWORD); ................................................................................ 742 742 HRESULT SetLinkSource(DWORD, LPSTR, ULONG, PULONG, BOOL); 743 743 HRESULT GetLinkSource(DWORD, LPSTR*, PULONG, LPSTR*, LPSTR*, BOOL*, BOOL*); 744 744 HRESULT OpenLinkSource(DWORD); 745 745 HRESULT UpdateLink(DWORD, BOOL, BOOL); 746 746 HRESULT CancelLink(DWORD); 747 747 HRESULT GetLastUpdate(DWORD, FILETIME*); 748 748 } 749 -alias IOleUILinkInfoA* LPOLEUILINKINFOA; 749 +alias IOleUILinkInfoA LPOLEUILINKINFOA; 750 750 751 751 struct OLEUIGNRLPROPSW { 752 752 DWORD cbStruct; 753 753 DWORD dwFlags; 754 - DWORD dwReserved1[2]; 754 + DWORD[2] dwReserved1; 755 755 LPFNOLEUIHOOK lpfnHook; 756 756 LPARAM lCustData; 757 - DWORD dwReserved2[3]; 757 + DWORD[3] dwReserved2; 758 758 OLEUIOBJECTPROPSW* lpOP; 759 759 } 760 760 alias OLEUIGNRLPROPSW* POLEUIGNRLPROPSW, LPOLEUIGNRLPROPSW; 761 761 762 762 struct OLEUIGNRLPROPSA { 763 763 DWORD cbStruct; 764 764 DWORD dwFlags; 765 - DWORD dwReserved1[2]; 765 + DWORD[2] dwReserved1; 766 766 LPFNOLEUIHOOK lpfnHook; 767 767 LPARAM lCustData; 768 - DWORD dwReserved2[3]; 768 + DWORD[3] dwReserved2; 769 769 OLEUIOBJECTPROPSA* lpOP; 770 770 } 771 771 alias OLEUIGNRLPROPSA* POLEUIGNRLPROPSA, LPOLEUIGNRLPROPSA; 772 772 773 773 struct OLEUIVIEWPROPSW { 774 774 DWORD cbStruct; 775 775 DWORD dwFlags; 776 - DWORD dwReserved1[2]; 776 + DWORD[2] dwReserved1; 777 777 LPFNOLEUIHOOK lpfnHook; 778 778 LPARAM lCustData; 779 - DWORD dwReserved2[3]; 779 + DWORD[3] dwReserved2; 780 780 OLEUIOBJECTPROPSW* lpOP; 781 781 int nScaleMin; 782 782 int nScaleMax; 783 783 } 784 784 alias OLEUIVIEWPROPSW* POLEUIVIEWPROPSW, LPOLEUIVIEWPROPSW; 785 785 786 786 struct OLEUIVIEWPROPSA { 787 787 DWORD cbStruct; 788 788 DWORD dwFlags; 789 - DWORD dwReserved1[2]; 789 + DWORD[2] dwReserved1; 790 790 LPFNOLEUIHOOK lpfnHook; 791 791 LPARAM lCustData; 792 - DWORD dwReserved2[3]; 792 + DWORD[3] dwReserved2; 793 793 OLEUIOBJECTPROPSA *lpOP; 794 794 int nScaleMin; 795 795 int nScaleMax; 796 796 } 797 797 alias OLEUIVIEWPROPSA* POLEUIVIEWPROPSA, LPOLEUIVIEWPROPSA; 798 798 799 799 struct OLEUILINKPROPSW { 800 800 DWORD cbStruct; 801 801 DWORD dwFlags; 802 - DWORD dwReserved1[2]; 802 + DWORD[2] dwReserved1; 803 803 LPFNOLEUIHOOK lpfnHook; 804 804 LPARAM lCustData; 805 - DWORD dwReserved2[3]; 805 + DWORD[3] dwReserved2; 806 806 OLEUIOBJECTPROPSW *lpOP; 807 807 } 808 808 alias OLEUILINKPROPSW* POLEUILINKPROPSW, LPOLEUILINKPROPSW; 809 809 810 810 struct OLEUILINKPROPSA { 811 811 DWORD cbStruct; 812 812 DWORD dwFlags; 813 - DWORD dwReserved1[2]; 813 + DWORD[2] dwReserved1; 814 814 LPFNOLEUIHOOK lpfnHook; 815 815 LPARAM lCustData; 816 - DWORD dwReserved2[3]; 816 + DWORD[3] dwReserved2; 817 817 OLEUIOBJECTPROPSA* lpOP; 818 818 } 819 819 alias OLEUILINKPROPSA* POLEUILINKPROPSA, LPOLEUILINKPROPSA; 820 820 821 821 struct OLEUIOBJECTPROPSW { 822 822 DWORD cbStruct; 823 823 DWORD dwFlags;

Modified src/win32/oleidl.d from [0d8181c3ae90ee78] to [7389b9c0e57070f9].

7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.oleidl; 11 11 12 12 // DAC: This is defined in ocidl !! 13 13 // what is it doing in here? 14 -//alias IEnumOleUndoUnits* LPENUMOLEUNDOUNITS; 14 +//alias IEnumOleUndoUnits LPENUMOLEUNDOUNITS; 15 15 16 16 private import win32.basetyps, win32.objidl, win32.unknwn, win32.windef, 17 17 win32.winuser, win32.wtypes; 18 18 private import win32.objfwd; // for LPMONIKER 19 19 private import win32.wingdi; // for LPLOGPALETTE 20 20 21 21 const MK_ALT = 32; ................................................................................ 50 50 DROPEFFECT_COPY = 1, 51 51 DROPEFFECT_MOVE = 2, 52 52 DROPEFFECT_LINK = 4, 53 53 DROPEFFECT_SCROLL = 0x80000000 54 54 } 55 55 56 56 struct OLEMENUGROUPWIDTHS { 57 - LONG width[6]; 57 + LONG[6] width; 58 58 } 59 59 alias OLEMENUGROUPWIDTHS* LPOLEMENUGROUPWIDTHS; 60 60 61 61 alias HGLOBAL HOLEMENU; 62 62 63 63 enum OLECLOSE { 64 64 OLECLOSE_SAVEIFDIRTY, ................................................................................ 88 88 alias OLEINPLACEFRAMEINFO* LPOLEINPLACEFRAMEINFO; 89 89 90 90 interface IEnumOLEVERB : IUnknown 91 91 { 92 92 HRESULT Next(ULONG,OLEVERB*,ULONG*); 93 93 HRESULT Skip(ULONG); 94 94 HRESULT Reset(); 95 - HRESULT Clone(IEnumOLEVERB**); 95 + HRESULT Clone(IEnumOLEVERB*); 96 96 } 97 97 //alias IEnumOLEVERB IEnumOleVerb; 98 98 alias IEnumOLEVERB LPENUMOLEVERB; 99 99 100 100 101 101 interface IParseDisplayName : IUnknown { 102 - HRESULT ParseDisplayName(IBindCtx*,LPOLESTR,ULONG*,IMoniker**); 102 + HRESULT ParseDisplayName(IBindCtx,LPOLESTR,ULONG*,IMoniker*); 103 103 } 104 104 alias IParseDisplayName LPPARSEDISPLAYNAME; 105 105 106 106 interface IOleContainer : IParseDisplayName { 107 - HRESULT EnumObjects(DWORD,IEnumUnknown**); 107 + HRESULT EnumObjects(DWORD,IEnumUnknown*); 108 108 HRESULT LockContainer(BOOL); 109 109 } 110 110 alias IOleContainer LPOLECONTAINER; 111 111 112 112 interface IOleItemContainer : IOleContainer { 113 - HRESULT GetObject(LPOLESTR,DWORD,IBindCtx*,REFIID,void**); 114 - HRESULT GetObjectStorage(LPOLESTR,IBindCtx*,REFIID,void**); 113 + HRESULT GetObject(LPOLESTR,DWORD,IBindCtx,REFIID,void**); 114 + HRESULT GetObjectStorage(LPOLESTR,IBindCtx,REFIID,void**); 115 115 HRESULT IsRunning(LPOLESTR); 116 116 } 117 117 118 118 119 119 interface IOleClientSite : IUnknown { 120 120 HRESULT SaveObject(); 121 121 HRESULT GetMoniker(DWORD,DWORD,LPMONIKER*); ................................................................................ 192 192 } 193 193 alias IOleInPlaceFrame LPOLEINPLACEFRAME; 194 194 195 195 interface IOleInPlaceSite : IOleWindow { 196 196 HRESULT CanInPlaceActivate(); 197 197 HRESULT OnInPlaceActivate(); 198 198 HRESULT OnUIActivate(); 199 - HRESULT GetWindowContext(IOleInPlaceFrame*,IOleInPlaceUIWindow*,LPRECT,LPRECT,LPOLEINPLACEFRAMEINFO); 199 + HRESULT GetWindowContext(IOleInPlaceFrame,IOleInPlaceUIWindow,LPRECT,LPRECT,LPOLEINPLACEFRAMEINFO); 200 200 HRESULT Scroll(SIZE); 201 201 HRESULT OnUIDeactivate(BOOL); 202 202 HRESULT OnInPlaceDeactivate(); 203 203 HRESULT DiscardUndoState(); 204 204 HRESULT DeactivateAndUndo(); 205 205 HRESULT OnPosRectChange(LPCRECT); 206 206 } ................................................................................ 234 234 } 235 235 236 236 interface IViewObject : IUnknown { 237 237 HRESULT Draw(DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,HDC,LPCRECTL,LPCRECTL,__IView_pfncont pfnContinue,DWORD); 238 238 HRESULT GetColorSet(DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,LPLOGPALETTE*); 239 239 HRESULT Freeze(DWORD,LONG,PVOID,PDWORD); 240 240 HRESULT Unfreeze(DWORD); 241 - HRESULT SetAdvise(DWORD,DWORD,IAdviseSink*); 242 - HRESULT GetAdvise(PDWORD,PDWORD,IAdviseSink**); 241 + HRESULT SetAdvise(DWORD,DWORD,IAdviseSink); 242 + HRESULT GetAdvise(PDWORD,PDWORD,IAdviseSink*); 243 243 } 244 244 alias IViewObject LPVIEWOBJECT; 245 245 246 246 interface IViewObject2 : IViewObject { 247 247 HRESULT GetExtent(DWORD,LONG,DVTARGETDEVICE*,LPSIZEL); 248 248 } 249 249 alias IViewObject2 LPVIEWOBJECT2; 250 250 251 251 interface IOleCache : IUnknown { 252 252 HRESULT Cache(FORMATETC*,DWORD,DWORD*); 253 253 HRESULT Uncache(DWORD); 254 - HRESULT EnumCache(IEnumSTATDATA**); 254 + HRESULT EnumCache(IEnumSTATDATA*); 255 255 HRESULT InitCache(LPDATAOBJECT); 256 256 HRESULT SetData(FORMATETC*,STGMEDIUM*,BOOL); 257 257 } 258 258 alias IOleCache LPOLECACHE; 259 259 260 260 interface IOleCache2 : IOleCache { 261 261 HRESULT UpdateCache(LPDATAOBJECT,DWORD,LPVOID);

Modified src/win32/pbt.d from [2dc3980bf690d05f] to [1cd64e8f9ee17783].

Modified src/win32/powrprof.d from [db10623ed83eba41] to [4256acef1917a8cc].

5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * by Stewart Gordon * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.powrprof; 12 -pragma(lib, "powrprof.lib"); 12 +pragma(lib, "powrprof"); 13 13 14 14 private import win32.windef; 15 15 private import win32.ntdef; 16 16 17 17 // FIXME: look up Windows version support 18 18 19 19 const ULONG

Modified src/win32/prsht.d from [11c80dc8e4f04de3] to [d175d0f84ae40260].

5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * by Vladimir Vlasov * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.prsht; 12 -pragma(lib, "comctl32.lib"); 12 +pragma(lib, "comctl32"); 13 13 14 14 private import win32.w32api, win32.windef, win32.winuser; 15 15 16 16 const MAXPROPPAGES = 100; 17 17 18 18 enum { 19 19 PSP_DEFAULT = 0x00000000, ................................................................................ 24 24 PSP_RTLREADING = 0x00000010, 25 25 PSP_HASHELP = 0x00000020, 26 26 PSP_USEREFPARENT = 0x00000040, 27 27 PSP_USECALLBACK = 0x00000080, 28 28 PSP_PREMATURE = 0x00000400 29 29 } 30 30 31 -static if (_WIN32_IE >= 0x0400) { 31 +static if (_WIN32_IE >= 0x400) { 32 32 enum { 33 33 PSP_HIDEHEADER = 0x00000800, 34 34 PSP_USEHEADERTITLE = 0x00001000, 35 35 PSP_USEHEADERSUBTITLE = 0x00002000 36 36 } 37 37 } 38 38 ................................................................................ 54 54 PSH_USECALLBACK = 0x00000100, 55 55 PSH_HASHELP = 0x00000200, 56 56 PSH_MODELESS = 0x00000400, 57 57 PSH_RTLREADING = 0x00000800, 58 58 PSH_WIZARDCONTEXTHELP = 0x00001000 59 59 } 60 60 61 -static if (_WIN32_IE >= 0x0400) { 61 +static if (_WIN32_IE >= 0x400) { 62 62 enum { 63 63 PSH_WATERMARK = 0x00008000, 64 64 PSH_USEHBMWATERMARK = 0x00010000, 65 65 PSH_USEHPLWATERMARK = 0x00020000, 66 66 PSH_STRETCHWATERMARK = 0x00040000, 67 67 PSH_HEADER = 0x00080000, 68 68 PSH_USEHBMHEADER = 0x00100000, ................................................................................ 75 75 } else { 76 76 enum { 77 77 PSH_WIZARD97 = 0x01000000 78 78 } 79 79 } 80 80 } 81 81 82 -static if (_WIN32_IE >= 0x0500) { 82 +static if (_WIN32_IE >= 0x500) { 83 83 enum { 84 84 PSH_WIZARD_LITE = 0x00400000, 85 85 PSH_NOCONTEXTHELP = 0x02000000 86 86 } 87 87 } 88 88 89 89 enum { ................................................................................ 100 100 PSN_RESET = (-203), 101 101 PSN_HELP = (-205), 102 102 PSN_WIZBACK = (-206), 103 103 PSN_WIZNEXT = (-207), 104 104 PSN_WIZFINISH = (-208), 105 105 PSN_QUERYCANCEL = (-209) 106 106 } 107 -static if (_WIN32_IE >= 0x0400) { 107 +static if (_WIN32_IE >= 0x400) { 108 108 enum { 109 109 PSN_GETOBJECT = (-210) 110 110 } 111 111 } 112 -static if (_WIN32_IE >= 0x0500) { 112 +static if (_WIN32_IE >= 0x500) { 113 113 enum { 114 114 PSN_TRANSLATEACCELERATOR = (-212), 115 115 PSN_QUERYINITIALFOCUS = (-213) 116 116 } 117 117 } 118 118 119 119 enum { ................................................................................ 206 206 LPCSTR pszIcon; 207 207 } 208 208 LPCSTR pszTitle; 209 209 DLGPROC pfnDlgProc; 210 210 LPARAM lParam; 211 211 LPFNPSPCALLBACKA pfnCallback; 212 212 UINT* pcRefParent; 213 - static if (_WIN32_IE >= 0x0400) { 213 + static if (_WIN32_IE >= 0x400) { 214 214 LPCSTR pszHeaderTitle; 215 215 LPCSTR pszHeaderSubTitle; 216 216 } 217 217 } 218 -alias PROPSHEETPAGEA* LPPROPSHEETPAGEA; 219 -alias CPtr!(PROPSHEETPAGEA) LPCPROPSHEETPAGEA; 218 +alias PROPSHEETPAGEA* LPPROPSHEETPAGEA; 219 +alias const(PROPSHEETPAGEA)* LPCPROPSHEETPAGEA; 220 220 221 221 struct PROPSHEETPAGEW { 222 222 DWORD dwSize = PROPSHEETPAGEW.sizeof; 223 223 DWORD dwFlags; 224 224 HINSTANCE hInstance; 225 225 union { 226 226 LPCWSTR pszTemplate; ................................................................................ 231 231 LPCWSTR pszIcon; 232 232 } 233 233 LPCWSTR pszTitle; 234 234 DLGPROC pfnDlgProc; 235 235 LPARAM lParam; 236 236 LPFNPSPCALLBACKW pfnCallback; 237 237 UINT* pcRefParent; 238 - static if (_WIN32_IE >= 0x0400) { 238 + static if (_WIN32_IE >= 0x400) { 239 239 LPCWSTR pszHeaderTitle; 240 240 LPCWSTR pszHeaderSubTitle; 241 241 } 242 242 } 243 -alias PROPSHEETPAGEW* LPPROPSHEETPAGEW; 244 -alias CPtr!(PROPSHEETPAGEW) LPCPROPSHEETPAGEW; 243 +alias PROPSHEETPAGEW* LPPROPSHEETPAGEW; 244 +alias const(PROPSHEETPAGEW)* LPCPROPSHEETPAGEW; 245 245 246 -alias HANDLE HPROPSHEETPAGE; 246 +mixin DECLARE_HANDLE!("HPROPSHEETPAGE"); 247 247 248 248 struct PROPSHEETHEADERA { 249 249 DWORD dwSize = PROPSHEETHEADERA.sizeof; 250 250 DWORD dwFlags; 251 251 HWND hwndParent; 252 252 HINSTANCE hInstance; 253 253 union { ................................................................................ 261 261 LPCSTR pStartPage; 262 262 } 263 263 union { 264 264 LPCPROPSHEETPAGEA ppsp; 265 265 HPROPSHEETPAGE* phpage; 266 266 } 267 267 PFNPROPSHEETCALLBACK pfnCallback; 268 - static if (_WIN32_IE >= 0x0400) { 268 + static if (_WIN32_IE >= 0x400) { 269 269 union { 270 270 HBITMAP hbmWatermark; 271 271 LPCSTR pszbmWatermark; 272 272 } 273 273 HPALETTE hplWatermark; 274 274 union { 275 275 HBITMAP hbmHeader; 276 276 LPCSTR pszbmHeader; 277 277 } 278 278 } 279 279 } 280 -alias PROPSHEETHEADERA* LPPROPSHEETHEADERA; 281 -alias CPtr!(PROPSHEETHEADERA) LPCPROPSHEETHEADERA; 280 +alias PROPSHEETHEADERA* LPPROPSHEETHEADERA; 281 +alias const(PROPSHEETHEADERA)* LPCPROPSHEETHEADERA; 282 282 283 283 struct PROPSHEETHEADERW { 284 284 DWORD dwSize = PROPSHEETHEADERW.sizeof; 285 285 DWORD dwFlags; 286 286 HWND hwndParent; 287 287 HINSTANCE hInstance; 288 288 union { ................................................................................ 296 296 LPCWSTR pStartPage; 297 297 } 298 298 union { 299 299 LPCPROPSHEETPAGEW ppsp; 300 300 HPROPSHEETPAGE* phpage; 301 301 } 302 302 PFNPROPSHEETCALLBACK pfnCallback; 303 - static if (_WIN32_IE >= 0x0400) { 303 + static if (_WIN32_IE >= 0x400) { 304 304 union { 305 305 HBITMAP hbmWatermark; 306 306 LPCWSTR pszbmWatermark; 307 307 } 308 308 HPALETTE hplWatermark; 309 309 union { 310 310 HBITMAP hbmHeader; 311 311 LPCWSTR pszbmHeader; 312 312 } 313 313 } 314 314 } 315 -alias PROPSHEETHEADERW* LPPROPSHEETHEADERW; 316 -alias CPtr!(PROPSHEETHEADERW) LPCPROPSHEETHEADERW; 315 +alias PROPSHEETHEADERW* LPPROPSHEETHEADERW; 316 +alias const(PROPSHEETHEADERW)* LPCPROPSHEETHEADERW; 317 317 318 318 alias BOOL function(HPROPSHEETPAGE, LPARAM) LPFNADDPROPSHEETPAGE; 319 319 alias BOOL function(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM) 320 320 LPFNADDPROPSHEETPAGES; 321 321 322 322 struct PSHNOTIFY { 323 323 NMHDR hdr; ................................................................................ 387 387 } 388 388 389 389 VOID PropSheet_CancelToClose(HWND hPropSheetDlg) { 390 390 SendMessage(hPropSheetDlg, PSM_CANCELTOCLOSE, 0, 0); 391 391 } 392 392 393 393 int PropSheet_QuerySiblings(HWND hPropSheetDlg, WPARAM param1, LPARAM param2) { 394 - return SendMessage(hPropSheetDlg, PSM_QUERYSIBLINGS, param1, param2); 394 + return cast(int) SendMessage(hPropSheetDlg, PSM_QUERYSIBLINGS, param1, param2); 395 395 } 396 396 397 397 VOID PropSheet_UnChanged(HWND hPropSheetDlg, HWND hwndPage) { 398 398 SendMessage(hPropSheetDlg, PSM_UNCHANGED, cast(WPARAM) hwndPage, 0); 399 399 } 400 400 401 401 BOOL PropSheet_Apply(HWND hPropSheetDlg) {

Modified src/win32/psapi.d from [918550e05f5d1ab7] to [0dd82e579fd2aa23].

Modified src/win32/rapi.d from [f5377fbd24e425cd] to [83d09d08acc17a2f].

7 7 * by Stewart Gordon * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.rapi; 12 12 13 13 /* Comment from MinGW 14 - NOTE: This strictly does not belong in the Win32 API since it's 15 - really part of Platform SDK. 14 + NOTE: This strictly does not belong in the Win32 API since it's 15 + really part of Platform SDK. 16 16 */ 17 17 18 18 private import win32.winbase, win32.windef; 19 19 20 -struct IRAPIStream { 21 - IRAPIStreamVtbl* lpVtbl; 22 -} 20 +extern (Windows): 23 21 24 -enum RAPISTREAMFLAG { 25 - STREAM_TIMEOUT_READ 22 +enum RAPISTREAMFLAG 23 +{ 24 + STREAM_TIMEOUT_READ 26 25 } 27 26 28 -extern (Windows) { 29 - alias HRESULT function(IRAPIStream*, RAPISTREAMFLAG, DWORD) _SetRapiStat; 30 - alias HRESULT function(IRAPIStream*, RAPISTREAMFLAG, DWORD*) _GetRapiStat; 27 +interface IRAPIStream 28 +{ 29 + HRESULT SetRapiStat(RAPISTREAMFLAG, DWORD); 30 + HRESULT GetRapiStat(RAPISTREAMFLAG, DWORD*); 31 31 } 32 32 33 -struct IRAPIStreamVtbl { 34 - _SetRapiStat SetRapiStat; 35 - _GetRapiStat GetRapiStat; 33 +alias HRESULT function(DWORD, BYTE, DWORD, BYTE, IRAPIStream) RAPIEXT; 34 + 35 +struct RAPIINIT 36 +{ 37 + DWORD cbSize = this.sizeof; 38 + HANDLE heRapiInit; 39 + HRESULT hrRapiInit; 36 40 } 37 41 38 -// FIXME: what's this? 39 -//typedef HRESULT(STDAPICALLTYPE RAPIEXT)(DWORD, BYTE, DWORD, BYTE, IRAPIStream*); 40 - 41 -struct RAPIINIT { 42 - DWORD cbSize = this.sizeof; 43 - HANDLE heRapiInit; 44 - HRESULT hrRapiInit; 45 -} 46 - 47 -extern (Windows) { 48 - HRESULT CeRapiInit(); 49 - HRESULT CeRapiInitEx(RAPIINIT*); 50 - BOOL CeCreateProcess(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES, 51 - LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPWSTR, LPSTARTUPINFO, 52 - LPPROCESS_INFORMATION); 53 - HRESULT CeRapiUninit(); 54 - BOOL CeWriteFile(HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED); 55 - HANDLE CeCreateFile(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, 56 - DWORD, HANDLE); 57 - BOOL CeCreateDirectory(LPCWSTR, LPSECURITY_ATTRIBUTES); 58 - DWORD CeGetLastError(); 59 - BOOL CeGetFileTime(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME); 60 - BOOL CeCloseHandle(HANDLE); 61 -} 42 +HRESULT CeRapiInit(); 43 +HRESULT CeRapiInitEx(RAPIINIT*); 44 +BOOL CeCreateProcess(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES, 45 + LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPWSTR, LPSTARTUPINFO, 46 + LPPROCESS_INFORMATION); 47 +HRESULT CeRapiUninit(); 48 +BOOL CeWriteFile(HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED); 49 +HANDLE CeCreateFile(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, 50 + DWORD, HANDLE); 51 +BOOL CeCreateDirectory(LPCWSTR, LPSECURITY_ATTRIBUTES); 52 +DWORD CeGetLastError(); 53 +BOOL CeGetFileTime(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME); 54 +BOOL CeCloseHandle(HANDLE);

Modified src/win32/ras.d from [4c380b195643fbdf] to [d951e56f7ba4f779].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.ras; 11 -pragma(lib, "rasapi32.lib"); 11 +pragma(lib, "rasapi32"); 12 12 13 13 private import win32.basetyps, win32.lmcons, win32.w32api, win32.windef; 14 14 15 15 align(4): 16 16 17 17 const RAS_MaxDeviceType = 16; 18 18 const RAS_MaxPhoneNumber = 128; ................................................................................ 91 91 RASDT_Parallel = "PARALLEL"; 92 92 93 93 const RASET_Phone = 1; 94 94 const RASET_Vpn = 2; 95 95 const RASET_Direct = 3; 96 96 const RASET_Internet = 4; 97 97 98 -static if (WINVER >= 0x0401) { 98 +static if (_WIN32_WINNT >= 0x401) { 99 99 const RASEO_SecureLocalFiles = 0x00010000; 100 100 const RASCN_Connection = 0x00000001; 101 101 const RASCN_Disconnection = 0x00000002; 102 102 const RASCN_BandwidthAdded = 0x00000004; 103 103 const RASCN_BandwidthRemoved = 0x00000008; 104 104 const RASEDM_DialAll = 1; 105 105 const RASEDM_DialAsNeeded = 2; ................................................................................ 111 111 const RASCM_Domain = 0x00000004; 112 112 const RASADP_DisableConnectionQuery = 0; 113 113 const RASADP_LoginSessionDisable = 1; 114 114 const RASADP_SavedAddressesLimit = 2; 115 115 const RASADP_FailedConnectionTimeout = 3; 116 116 const RASADP_ConnectionQueryTimeout = 4; 117 117 } 118 -static if (WINVER >= 0x0500) { 118 +static if (_WIN32_WINNT >= 0x500) { 119 119 const RDEOPT_CustomDial = 0x00001000; 120 120 const RASLCPAP_PAP = 0xC023; 121 121 const RASLCPAP_SPAP = 0xC027; 122 122 const RASLCPAP_CHAP = 0xC223; 123 123 const RASLCPAP_EAP = 0xC227; 124 124 const RASLCPAD_CHAP_MD5 = 0x05; 125 125 const RASLCPAD_CHAP_MS = 0x80; ................................................................................ 196 196 RASCS_LogonNetwork, 197 197 RASCS_SubEntryConnected, 198 198 RASCS_SubEntryDisconnected, 199 199 RASCS_Interactive = RASCS_PAUSED, 200 200 RASCS_RetryAuthentication, 201 201 RASCS_CallbackSetByCaller, 202 202 RASCS_PasswordExpired, 203 -// static if (WINVER >= 0x0500) { 203 +// static if (_WIN32_WINNT >= 0x500) { 204 204 RASCS_InvokeEapUI, 205 205 // } 206 206 RASCS_Connected = RASCS_DONE, 207 207 RASCS_Disconnected 208 208 } 209 209 alias RASCONNSTATE* LPRASCONNSTATE; 210 210 211 211 enum RASPROJECTION { 212 212 RASP_Amb = 0x10000, 213 213 RASP_PppNbf = 0x803F, 214 214 RASP_PppIpx = 0x802B, 215 215 RASP_PppIp = 0x8021, 216 -// static if (WINVER >= 0x0500) { 216 +// static if (_WIN32_WINNT >= 0x500) { 217 217 RASP_PppCcp = 0x80FD, 218 218 // } 219 219 RASP_PppLcp = 0xC021, 220 220 RASP_Slip = 0x20000 221 221 } 222 222 alias RASPROJECTION* LPRASPROJECTION; 223 223 224 -alias HANDLE HRASCONN; 224 +alias TypeDef!(HANDLE) HRASCONN; 225 225 alias HRASCONN* LPHRASCONN; 226 226 227 227 struct RASCONNW { 228 228 DWORD dwSize; 229 229 HRASCONN hrasconn; 230 - WCHAR szEntryName[RAS_MaxEntryName + 1]; 231 - static if (WINVER >= 0x0400) { 232 - WCHAR szDeviceType[RAS_MaxDeviceType + 1]; 233 - WCHAR szDeviceName[RAS_MaxDeviceName + 1]; 234 - } 235 - static if (WINVER >= 0x0401) { 236 - WCHAR szPhonebook[MAX_PATH]; 230 + WCHAR[RAS_MaxEntryName + 1] szEntryName; 231 + WCHAR[RAS_MaxDeviceType + 1] szDeviceType; 232 + WCHAR[RAS_MaxDeviceName + 1] szDeviceName; 233 + static if (_WIN32_WINNT >= 0x401) { 234 + WCHAR[MAX_PATH] szPhonebook; 237 235 DWORD dwSubEntry; 238 236 } 239 - static if (WINVER >= 0x0500) { 237 + static if (_WIN32_WINNT >= 0x500) { 240 238 GUID guidEntry; 241 239 } 242 - static if (WINVER >= 0x0501) { 240 + static if (_WIN32_WINNT >= 0x501) { 243 241 DWORD dwFlags; 244 242 LUID luid; 245 243 } 246 244 } 247 245 alias RASCONNW* LPRASCONNW; 248 246 249 247 struct RASCONNA { 250 248 DWORD dwSize; 251 249 HRASCONN hrasconn; 252 - CHAR szEntryName[RAS_MaxEntryName + 1]; 253 - static if (WINVER >= 0x0400) { 254 - CHAR szDeviceType[RAS_MaxDeviceType + 1]; 255 - CHAR szDeviceName[RAS_MaxDeviceName + 1]; 256 - } 257 - static if (WINVER >= 0x0401) { 258 - CHAR szPhonebook[MAX_PATH]; 250 + CHAR[RAS_MaxEntryName + 1] szEntryName; 251 + CHAR[RAS_MaxDeviceType + 1] szDeviceType; 252 + CHAR[RAS_MaxDeviceName + 1] szDeviceName; 253 + static if (_WIN32_WINNT >= 0x401) { 254 + CHAR[MAX_PATH] szPhonebook; 259 255 DWORD dwSubEntry; 260 256 } 261 - static if (WINVER >= 0x0500) { 257 + static if (_WIN32_WINNT >= 0x500) { 262 258 GUID guidEntry; 263 259 } 264 - static if (WINVER >= 0x0501) { 260 + static if (_WIN32_WINNT >= 0x501) { 265 261 DWORD dwFlags; 266 262 LUID luid; 267 263 } 268 264 } 269 265 alias RASCONNA* LPRASCONNA; 270 266 271 267 struct RASCONNSTATUSW { 272 268 DWORD dwSize; 273 269 RASCONNSTATE rasconnstate; 274 270 DWORD dwError; 275 - WCHAR szDeviceType[RAS_MaxDeviceType + 1]; 276 - WCHAR szDeviceName[RAS_MaxDeviceName + 1]; 277 - static if (WINVER >= 0x0401) { 278 - WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; 271 + WCHAR[RAS_MaxDeviceType + 1] szDeviceType; 272 + WCHAR[RAS_MaxDeviceName + 1] szDeviceName; 273 + static if (_WIN32_WINNT >= 0x401) { 274 + WCHAR[RAS_MaxPhoneNumber + 1] szPhoneNumber; 279 275 } 280 276 } 281 277 alias RASCONNSTATUSW* LPRASCONNSTATUSW; 282 278 283 279 struct RASCONNSTATUSA { 284 280 DWORD dwSize; 285 281 RASCONNSTATE rasconnstate; 286 282 DWORD dwError; 287 - CHAR szDeviceType[RAS_MaxDeviceType + 1]; 288 - CHAR szDeviceName[RAS_MaxDeviceName + 1]; 289 - static if (WINVER >= 0x0401) { 290 - CHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; 283 + CHAR[RAS_MaxDeviceType + 1] szDeviceType; 284 + CHAR[RAS_MaxDeviceName + 1] szDeviceName; 285 + static if (_WIN32_WINNT >= 0x401) { 286 + CHAR[RAS_MaxPhoneNumber + 1] szPhoneNumber; 291 287 } 292 288 } 293 289 alias RASCONNSTATUSA* LPRASCONNSTATUSA; 294 290 295 291 struct RASDIALPARAMSW { 296 292 DWORD dwSize; 297 - WCHAR szEntryName[RAS_MaxEntryName + 1]; 298 - WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; 299 - WCHAR szCallbackNumber[RAS_MaxCallbackNumber + 1]; 300 - WCHAR szUserName[UNLEN + 1]; 301 - WCHAR szPassword[PWLEN + 1]; 302 - WCHAR szDomain[DNLEN + 1]; 303 - static if (WINVER >= 0x0401) { 293 + WCHAR[RAS_MaxEntryName + 1] szEntryName; 294 + WCHAR[RAS_MaxPhoneNumber + 1] szPhoneNumber; 295 + WCHAR[RAS_MaxCallbackNumber + 1] szCallbackNumber; 296 + WCHAR[UNLEN + 1] szUserName; 297 + WCHAR[PWLEN + 1] szPassword; 298 + WCHAR[DNLEN + 1] szDomain; 299 + static if (_WIN32_WINNT >= 0x401) { 304 300 DWORD dwSubEntry; 305 301 ULONG_PTR dwCallbackId; 306 302 } 307 303 } 308 304 alias RASDIALPARAMSW* LPRASDIALPARAMSW; 309 305 310 306 struct RASDIALPARAMSA{ 311 307 DWORD dwSize; 312 - CHAR szEntryName[RAS_MaxEntryName + 1]; 313 - CHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; 314 - CHAR szCallbackNumber[RAS_MaxCallbackNumber + 1]; 315 - CHAR szUserName[UNLEN + 1]; 316 - CHAR szPassword[PWLEN + 1]; 317 - CHAR szDomain[DNLEN + 1]; 318 - static if (WINVER >= 0x0401) { 308 + CHAR[RAS_MaxEntryName + 1] szEntryName; 309 + CHAR[RAS_MaxPhoneNumber + 1] szPhoneNumber; 310 + CHAR[RAS_MaxCallbackNumber + 1] szCallbackNumber; 311 + CHAR[UNLEN + 1] szUserName; 312 + CHAR[PWLEN + 1] szPassword; 313 + CHAR[DNLEN + 1] szDomain; 314 + static if (_WIN32_WINNT >= 0x401) { 319 315 DWORD dwSubEntry; 320 316 ULONG_PTR dwCallbackId; 321 317 } 322 318 } 323 319 alias RASDIALPARAMSA* LPRASDIALPARAMSA; 324 320 325 -static if (WINVER >= 0x0500) { 321 +static if (_WIN32_WINNT >= 0x500) { 326 322 struct RASEAPINFO { 327 323 DWORD dwSizeofEapInfo; 328 324 BYTE *pbEapInfo; 329 325 } 330 326 } 331 327 332 328 struct RASDIALEXTENSIONS { 333 329 DWORD dwSize; 334 330 DWORD dwfOptions; 335 331 HWND hwndParent; 336 332 ULONG_PTR reserved; 337 - static if (WINVER >= 0x0500) { 333 + static if (_WIN32_WINNT >= 0x500) { 338 334 ULONG_PTR reserved1; 339 335 RASEAPINFO RasEapInfo; 340 336 } 341 337 } 342 338 alias RASDIALEXTENSIONS* LPRASDIALEXTENSIONS; 343 339 344 340 struct RASENTRYNAMEW { 345 341 DWORD dwSize; 346 - WCHAR szEntryName[RAS_MaxEntryName + 1]; 347 - static if (WINVER >= 0x0500) { 342 + WCHAR[RAS_MaxEntryName + 1] szEntryName; 343 + static if (_WIN32_WINNT >= 0x500) { 348 344 DWORD dwFlags; 349 - WCHAR szPhonebookPath[MAX_PATH + 1]; 345 + WCHAR[MAX_PATH + 1] szPhonebookPath; 350 346 } 351 347 } 352 348 alias RASENTRYNAMEW* LPRASENTRYNAMEW; 353 349 354 350 struct RASENTRYNAMEA{ 355 351 DWORD dwSize; 356 - CHAR szEntryName[RAS_MaxEntryName + 1]; 357 - static if (WINVER >= 0x0500) { 352 + CHAR[RAS_MaxEntryName + 1] szEntryName; 353 + static if (_WIN32_WINNT >= 0x500) { 358 354 DWORD dwFlags; 359 - CHAR szPhonebookPath[MAX_PATH + 1]; 355 + CHAR[MAX_PATH + 1] szPhonebookPath; 360 356 } 361 357 } 362 358 alias RASENTRYNAMEA* LPRASENTRYNAMEA; 363 359 364 360 struct RASAMBW{ 365 361 DWORD dwSize; 366 362 DWORD dwError; 367 - WCHAR szNetBiosError[NETBIOS_NAME_LEN + 1]; 363 + WCHAR[NETBIOS_NAME_LEN + 1] szNetBiosError; 368 364 BYTE bLana; 369 365 } 370 366 alias RASAMBW* LPRASAMBW; 371 367 372 368 struct RASAMBA{ 373 369 DWORD dwSize; 374 370 DWORD dwError; 375 - CHAR szNetBiosError[NETBIOS_NAME_LEN + 1]; 371 + CHAR[NETBIOS_NAME_LEN + 1] szNetBiosError; 376 372 BYTE bLana; 377 373 } 378 374 alias RASAMBA* LPRASAMBA; 379 375 380 376 struct RASPPPNBFW{ 381 377 DWORD dwSize; 382 378 DWORD dwError; 383 379 DWORD dwNetBiosError; 384 - WCHAR szNetBiosError[NETBIOS_NAME_LEN + 1]; 385 - WCHAR szWorkstationName[NETBIOS_NAME_LEN + 1]; 380 + WCHAR[NETBIOS_NAME_LEN + 1] szNetBiosError; 381 + WCHAR[NETBIOS_NAME_LEN + 1] szWorkstationName; 386 382 BYTE bLana; 387 383 } 388 384 alias RASPPPNBFW* LPRASPPPNBFW; 389 385 390 386 struct RASPPPNBFA{ 391 387 DWORD dwSize; 392 388 DWORD dwError; 393 389 DWORD dwNetBiosError; 394 - CHAR szNetBiosError[NETBIOS_NAME_LEN + 1]; 395 - CHAR szWorkstationName[NETBIOS_NAME_LEN + 1]; 390 + CHAR[NETBIOS_NAME_LEN + 1] szNetBiosError; 391 + CHAR[NETBIOS_NAME_LEN + 1] szWorkstationName; 396 392 BYTE bLana; 397 393 } 398 394 alias RASPPPNBFA* LPRASPPPNBFA; 399 395 400 396 struct RASPPPIPXW { 401 397 DWORD dwSize; 402 398 DWORD dwError; 403 - WCHAR szIpxAddress[RAS_MaxIpxAddress + 1]; 399 + WCHAR[RAS_MaxIpxAddress + 1] szIpxAddress; 404 400 } 405 401 alias RASPPPIPXW* LPRASPPPIPXW; 406 402 407 403 struct RASPPPIPXA { 408 404 DWORD dwSize; 409 405 DWORD dwError; 410 - CHAR szIpxAddress[RAS_MaxIpxAddress + 1]; 406 + CHAR[RAS_MaxIpxAddress + 1] szIpxAddress; 411 407 } 412 408 alias RASPPPIPXA* LPRASPPPIPXA; 413 409 414 410 struct RASPPPIPW{ 415 411 DWORD dwSize; 416 412 DWORD dwError; 417 - WCHAR szIpAddress[RAS_MaxIpAddress + 1]; 413 + WCHAR[RAS_MaxIpAddress + 1] szIpAddress; 418 414 //#ifndef WINNT35COMPATIBLE 419 - WCHAR szServerIpAddress[RAS_MaxIpAddress + 1]; 415 + WCHAR[RAS_MaxIpAddress + 1] szServerIpAddress; 420 416 //#endif 421 - static if (WINVER >= 0x0500) { 417 + static if (_WIN32_WINNT >= 0x500) { 422 418 DWORD dwOptions; 423 419 DWORD dwServerOptions; 424 420 } 425 421 } 426 422 alias RASPPPIPW* LPRASPPPIPW; 427 423 428 424 struct RASPPPIPA{ 429 425 DWORD dwSize; 430 426 DWORD dwError; 431 - CHAR szIpAddress[RAS_MaxIpAddress + 1]; 427 + CHAR[RAS_MaxIpAddress + 1] szIpAddress; 432 428 //#ifndef WINNT35COMPATIBLE 433 - CHAR szServerIpAddress[RAS_MaxIpAddress + 1]; 429 + CHAR[RAS_MaxIpAddress + 1] szServerIpAddress; 434 430 //#endif 435 - static if (WINVER >= 0x0500) { 431 + static if (_WIN32_WINNT >= 0x500) { 436 432 DWORD dwOptions; 437 433 DWORD dwServerOptions; 438 434 } 439 435 } 440 436 alias RASPPPIPA* LPRASPPPIPA; 441 437 442 438 struct RASPPPLCPW{ 443 439 DWORD dwSize; 444 440 BOOL fBundled; 445 - static if (WINVER >= 0x0500) { 441 + static if (_WIN32_WINNT >= 0x500) { 446 442 DWORD dwError; 447 443 DWORD dwAuthenticationProtocol; 448 444 DWORD dwAuthenticationData; 449 445 DWORD dwEapTypeId; 450 446 DWORD dwServerAuthenticationProtocol; 451 447 DWORD dwServerAuthenticationData; 452 448 DWORD dwServerEapTypeId; 453 449 BOOL fMultilink; 454 450 DWORD dwTerminateReason; 455 451 DWORD dwServerTerminateReason; 456 - WCHAR szReplyMessage[RAS_MaxReplyMessage]; 452 + WCHAR[RAS_MaxReplyMessage] szReplyMessage; 457 453 DWORD dwOptions; 458 454 DWORD dwServerOptions; 459 455 } 460 456 } 461 457 alias RASPPPLCPW* LPRASPPPLCPW; 462 458 463 459 struct RASPPPLCPA{ 464 460 DWORD dwSize; 465 461 BOOL fBundled; 466 - static if (WINVER >= 0x0500) { 462 + static if (_WIN32_WINNT >= 0x500) { 467 463 DWORD dwError; 468 464 DWORD dwAuthenticationProtocol; 469 465 DWORD dwAuthenticationData; 470 466 DWORD dwEapTypeId; 471 467 DWORD dwServerAuthenticationProtocol; 472 468 DWORD dwServerAuthenticationData; 473 469 DWORD dwServerEapTypeId; 474 470 BOOL fMultilink; 475 471 DWORD dwTerminateReason; 476 472 DWORD dwServerTerminateReason; 477 - CHAR szReplyMessage[RAS_MaxReplyMessage]; 473 + CHAR[RAS_MaxReplyMessage] szReplyMessage; 478 474 DWORD dwOptions; 479 475 DWORD dwServerOptions; 480 476 } 481 477 } 482 478 alias RASPPPLCPA* LPRASPPPLCPA; 483 479 484 480 struct RASSLIPW{ 485 481 DWORD dwSize; 486 482 DWORD dwError; 487 - WCHAR szIpAddress[RAS_MaxIpAddress + 1]; 483 + WCHAR[RAS_MaxIpAddress + 1] szIpAddress; 488 484 } 489 485 alias RASSLIPW* LPRASSLIPW; 490 486 491 487 struct RASSLIPA{ 492 488 DWORD dwSize; 493 489 DWORD dwError; 494 - CHAR szIpAddress[RAS_MaxIpAddress + 1]; 490 + CHAR[RAS_MaxIpAddress + 1] szIpAddress; 495 491 } 496 492 alias RASSLIPA* LPRASSLIPA; 497 493 498 494 struct RASDEVINFOW{ 499 495 DWORD dwSize; 500 - WCHAR szDeviceType[RAS_MaxDeviceType + 1]; 501 - WCHAR szDeviceName[RAS_MaxDeviceName + 1]; 496 + WCHAR[RAS_MaxDeviceType + 1] szDeviceType; 497 + WCHAR[RAS_MaxDeviceName + 1] szDeviceName; 502 498 } 503 499 alias RASDEVINFOW* LPRASDEVINFOW; 504 500 505 501 struct RASDEVINFOA{ 506 502 DWORD dwSize; 507 - CHAR szDeviceType[RAS_MaxDeviceType + 1]; 508 - CHAR szDeviceName[RAS_MaxDeviceName + 1]; 503 + CHAR[RAS_MaxDeviceType + 1] szDeviceType; 504 + CHAR[RAS_MaxDeviceName + 1] szDeviceName; 509 505 } 510 506 alias RASDEVINFOA* LPRASDEVINFOA; 511 507 512 508 struct RASCTRYINFO { 513 509 DWORD dwSize; 514 510 DWORD dwCountryID; 515 511 DWORD dwNextCountryID; ................................................................................ 529 525 } 530 526 531 527 struct RASENTRYW { 532 528 DWORD dwSize; 533 529 DWORD dwfOptions; 534 530 DWORD dwCountryID; 535 531 DWORD dwCountryCode; 536 - WCHAR szAreaCode[RAS_MaxAreaCode + 1]; 537 - WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; 532 + WCHAR[RAS_MaxAreaCode + 1] szAreaCode; 533 + WCHAR[RAS_MaxPhoneNumber + 1] szLocalPhoneNumber; 538 534 DWORD dwAlternateOffset; 539 535 RASIPADDR ipaddr; 540 536 RASIPADDR ipaddrDns; 541 537 RASIPADDR ipaddrDnsAlt; 542 538 RASIPADDR ipaddrWins; 543 539 RASIPADDR ipaddrWinsAlt; 544 540 DWORD dwFrameSize; 545 541 DWORD dwfNetProtocols; 546 542 DWORD dwFramingProtocol; 547 - WCHAR szScript[MAX_PATH]; 548 - WCHAR szAutodialDll[MAX_PATH]; 549 - WCHAR szAutodialFunc[MAX_PATH]; 550 - WCHAR szDeviceType[RAS_MaxDeviceType + 1]; 551 - WCHAR szDeviceName[RAS_MaxDeviceName + 1]; 552 - WCHAR szX25PadType[RAS_MaxPadType + 1]; 553 - WCHAR szX25Address[RAS_MaxX25Address + 1]; 554 - WCHAR szX25Facilities[RAS_MaxFacilities + 1]; 555 - WCHAR szX25UserData[RAS_MaxUserData + 1]; 543 + WCHAR[MAX_PATH] szScript; 544 + WCHAR[MAX_PATH] szAutodialDll; 545 + WCHAR[MAX_PATH] szAutodialFunc; 546 + WCHAR[RAS_MaxDeviceType + 1] szDeviceType; 547 + WCHAR[RAS_MaxDeviceName + 1] szDeviceName; 548 + WCHAR[RAS_MaxPadType + 1] szX25PadType; 549 + WCHAR[RAS_MaxX25Address + 1] szX25Address; 550 + WCHAR[RAS_MaxFacilities + 1] szX25Facilities; 551 + WCHAR[RAS_MaxUserData + 1] szX25UserData; 556 552 DWORD dwChannels; 557 553 DWORD dwReserved1; 558 554 DWORD dwReserved2; 559 - static if (WINVER >= 0x0401) { 555 + static if (_WIN32_WINNT >= 0x401) { 560 556 DWORD dwSubEntries; 561 557 DWORD dwDialMode; 562 558 DWORD dwDialExtraPercent; 563 559 DWORD dwDialExtraSampleSeconds; 564 560 DWORD dwHangUpExtraPercent; 565 561 DWORD dwHangUpExtraSampleSeconds; 566 562 DWORD dwIdleDisconnectSeconds; 567 563 } 568 - static if (WINVER >= 0x0500) { 564 + static if (_WIN32_WINNT >= 0x500) { 569 565 DWORD dwType; 570 566 DWORD dwEncryptionType; 571 567 DWORD dwCustomAuthKey; 572 568 GUID guidId; 573 - WCHAR szCustomDialDll[MAX_PATH]; 569 + WCHAR[MAX_PATH] szCustomDialDll; 574 570 DWORD dwVpnStrategy; 575 571 } 576 572 } 577 573 alias RASENTRYW* LPRASENTRYW; 578 574 579 575 struct RASENTRYA { 580 576 DWORD dwSize; 581 577 DWORD dwfOptions; 582 578 DWORD dwCountryID; 583 579 DWORD dwCountryCode; 584 - CHAR szAreaCode[RAS_MaxAreaCode + 1]; 585 - CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; 580 + CHAR[RAS_MaxAreaCode + 1] szAreaCode; 581 + CHAR[RAS_MaxPhoneNumber + 1] szLocalPhoneNumber; 586 582 DWORD dwAlternateOffset; 587 583 RASIPADDR ipaddr; 588 584 RASIPADDR ipaddrDns; 589 585 RASIPADDR ipaddrDnsAlt; 590 586 RASIPADDR ipaddrWins; 591 587 RASIPADDR ipaddrWinsAlt; 592 588 DWORD dwFrameSize; 593 589 DWORD dwfNetProtocols; 594 590 DWORD dwFramingProtocol; 595 - CHAR szScript[MAX_PATH]; 596 - CHAR szAutodialDll[MAX_PATH]; 597 - CHAR szAutodialFunc[MAX_PATH]; 598 - CHAR szDeviceType[RAS_MaxDeviceType + 1]; 599 - CHAR szDeviceName[RAS_MaxDeviceName + 1]; 600 - CHAR szX25PadType[RAS_MaxPadType + 1]; 601 - CHAR szX25Address[RAS_MaxX25Address + 1]; 602 - CHAR szX25Facilities[RAS_MaxFacilities + 1]; 603 - CHAR szX25UserData[RAS_MaxUserData + 1]; 591 + CHAR[MAX_PATH] szScript; 592 + CHAR[MAX_PATH] szAutodialDll; 593 + CHAR[MAX_PATH] szAutodialFunc; 594 + CHAR[RAS_MaxDeviceType + 1] szDeviceType; 595 + CHAR[RAS_MaxDeviceName + 1] szDeviceName; 596 + CHAR[RAS_MaxPadType + 1] szX25PadType; 597 + CHAR[RAS_MaxX25Address + 1] szX25Address; 598 + CHAR[RAS_MaxFacilities + 1] szX25Facilities; 599 + CHAR[RAS_MaxUserData + 1] szX25UserData; 604 600 DWORD dwChannels; 605 601 DWORD dwReserved1; 606 602 DWORD dwReserved2; 607 - static if (WINVER >= 0x0401) { 603 + static if (_WIN32_WINNT >= 0x401) { 608 604 DWORD dwSubEntries; 609 605 DWORD dwDialMode; 610 606 DWORD dwDialExtraPercent; 611 607 DWORD dwDialExtraSampleSeconds; 612 608 DWORD dwHangUpExtraPercent; 613 609 DWORD dwHangUpExtraSampleSeconds; 614 610 DWORD dwIdleDisconnectSeconds; 615 611 } 616 - static if (WINVER >= 0x0500) { 612 + static if (_WIN32_WINNT >= 0x500) { 617 613 DWORD dwType; 618 614 DWORD dwEncryptionType; 619 615 DWORD dwCustomAuthKey; 620 616 GUID guidId; 621 - CHAR szCustomDialDll[MAX_PATH]; 617 + CHAR[MAX_PATH] szCustomDialDll; 622 618 DWORD dwVpnStrategy; 623 619 } 624 620 } 625 621 alias RASENTRYA* LPRASENTRYA; 626 622 627 623 628 -static if (WINVER >= 0x0401) { 624 +static if (_WIN32_WINNT >= 0x401) { 629 625 struct RASADPARAMS { 630 626 DWORD dwSize; 631 627 HWND hwndOwner; 632 628 DWORD dwFlags; 633 629 LONG xDlg; 634 630 LONG yDlg; 635 631 } 636 632 alias RASADPARAMS* LPRASADPARAMS; 637 633 638 634 struct RASSUBENTRYW{ 639 635 DWORD dwSize; 640 636 DWORD dwfFlags; 641 - WCHAR szDeviceType[RAS_MaxDeviceType + 1]; 642 - WCHAR szDeviceName[RAS_MaxDeviceName + 1]; 643 - WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; 637 + WCHAR[RAS_MaxDeviceType + 1] szDeviceType; 638 + WCHAR[RAS_MaxDeviceName + 1] szDeviceName; 639 + WCHAR[RAS_MaxPhoneNumber + 1] szLocalPhoneNumber; 644 640 DWORD dwAlternateOffset; 645 641 } 646 642 alias RASSUBENTRYW* LPRASSUBENTRYW; 647 643 648 644 struct RASSUBENTRYA{ 649 645 DWORD dwSize; 650 646 DWORD dwfFlags; 651 - CHAR szDeviceType[RAS_MaxDeviceType + 1]; 652 - CHAR szDeviceName[RAS_MaxDeviceName + 1]; 653 - CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; 647 + CHAR[RAS_MaxDeviceType + 1] szDeviceType; 648 + CHAR[RAS_MaxDeviceName + 1] szDeviceName; 649 + CHAR[RAS_MaxPhoneNumber + 1] szLocalPhoneNumber; 654 650 DWORD dwAlternateOffset; 655 651 } 656 652 alias RASSUBENTRYA* LPRASSUBENTRYA; 657 653 658 654 struct RASCREDENTIALSW{ 659 655 DWORD dwSize; 660 656 DWORD dwMask; 661 - WCHAR szUserName[UNLEN + 1]; 662 - WCHAR szPassword[PWLEN + 1]; 663 - WCHAR szDomain[DNLEN + 1]; 657 + WCHAR[UNLEN + 1] szUserName; 658 + WCHAR[PWLEN + 1] szPassword; 659 + WCHAR[DNLEN + 1] szDomain; 664 660 } 665 661 alias RASCREDENTIALSW* LPRASCREDENTIALSW; 666 662 667 663 struct RASCREDENTIALSA{ 668 664 DWORD dwSize; 669 665 DWORD dwMask; 670 - CHAR szUserName[UNLEN + 1]; 671 - CHAR szPassword[PWLEN + 1]; 672 - CHAR szDomain[DNLEN + 1]; 666 + CHAR[UNLEN + 1] szUserName; 667 + CHAR[PWLEN + 1] szPassword; 668 + CHAR[DNLEN + 1] szDomain; 673 669 } 674 670 alias RASCREDENTIALSA* LPRASCREDENTIALSA; 675 671 676 672 struct RASAUTODIALENTRYW{ 677 673 DWORD dwSize; 678 674 DWORD dwFlags; 679 675 DWORD dwDialingLocation; 680 - WCHAR szEntry[RAS_MaxEntryName + 1]; 676 + WCHAR[RAS_MaxEntryName + 1] szEntry; 681 677 } 682 678 alias RASAUTODIALENTRYW* LPRASAUTODIALENTRYW; 683 679 684 680 struct RASAUTODIALENTRYA{ 685 681 DWORD dwSize; 686 682 DWORD dwFlags; 687 683 DWORD dwDialingLocation; 688 - CHAR szEntry[RAS_MaxEntryName + 1]; 684 + CHAR[RAS_MaxEntryName + 1] szEntry; 689 685 } 690 686 alias RASAUTODIALENTRYA* LPRASAUTODIALENTRYA; 691 687 } 692 688 693 -static if (WINVER >= 0x0500) { 689 +static if (_WIN32_WINNT >= 0x500) { 694 690 struct RASPPPCCP{ 695 691 DWORD dwSize; 696 692 DWORD dwError; 697 693 DWORD dwCompressionAlgorithm; 698 694 DWORD dwOptions; 699 695 DWORD dwServerCompressionAlgorithm; 700 696 DWORD dwServerOptions; 701 697 } 702 698 alias RASPPPCCP* LPRASPPPCCP; 703 699 704 700 struct RASEAPUSERIDENTITYW{ 705 - WCHAR szUserName[UNLEN + 1]; 701 + WCHAR[UNLEN + 1] szUserName; 706 702 DWORD dwSizeofEapInfo; 707 - BYTE pbEapInfo[1]; 703 + BYTE[1] pbEapInfo; 708 704 } 709 705 alias RASEAPUSERIDENTITYW* LPRASEAPUSERIDENTITYW; 710 706 711 707 struct RASEAPUSERIDENTITYA{ 712 - CHAR szUserName[UNLEN + 1]; 708 + CHAR[UNLEN + 1] szUserName; 713 709 DWORD dwSizeofEapInfo; 714 - BYTE pbEapInfo[1]; 710 + BYTE[1] pbEapInfo; 715 711 } 716 712 alias RASEAPUSERIDENTITYA* LPRASEAPUSERIDENTITYA; 717 713 718 714 struct RAS_STATS{ 719 715 DWORD dwSize; 720 716 DWORD dwBytesXmited; 721 717 DWORD dwBytesRcved; ................................................................................ 747 743 alias RASPPPIPXW RASPPPIPX; 748 744 alias RASPPPIPW RASPPPIP; 749 745 alias RASPPPLCPW RASPPPLCP; 750 746 alias RASSLIPW RASSLIP; 751 747 alias RASDEVINFOW RASDEVINFO; 752 748 alias RASENTRYNAMEW RASENTRYNAME; 753 749 754 - static if (WINVER >= 0x0401) { 750 + static if (_WIN32_WINNT >= 0x401) { 755 751 alias RASSUBENTRYW RASSUBENTRY; 756 752 alias RASCREDENTIALSW RASCREDENTIALS; 757 753 alias RASAUTODIALENTRYW RASAUTODIALENTRY; 758 754 } 759 755 760 - static if (WINVER >= 0x0500) { 756 + static if (_WIN32_WINNT >= 0x500) { 761 757 alias RASEAPUSERIDENTITYW RASEAPUSERIDENTITY; 762 758 } 763 759 764 760 } else { // ! defined UNICODE 765 761 766 762 alias RASCONNA RASCONN; 767 763 alias RASENTRYA RASENTRY; ................................................................................ 772 768 alias RASPPPIPXA RASPPPIPX; 773 769 alias RASPPPIPA RASPPPIP; 774 770 alias RASPPPLCPA RASPPPLCP; 775 771 alias RASSLIPA RASSLIP; 776 772 alias RASDEVINFOA RASDEVINFO; 777 773 alias RASENTRYNAMEA RASENTRYNAME; 778 774 779 - static if (WINVER >= 0x0401) { 775 + static if (_WIN32_WINNT >= 0x401) { 780 776 alias RASSUBENTRYA RASSUBENTRY; 781 777 alias RASCREDENTIALSA RASCREDENTIALS; 782 778 alias RASAUTODIALENTRYA RASAUTODIALENTRY; 783 779 } 784 - static if (WINVER >= 0x0500) { 780 + static if (_WIN32_WINNT >= 0x500) { 785 781 alias RASEAPUSERIDENTITYA RASEAPUSERIDENTITY; 786 782 } 787 783 }// ! UNICODE 788 784 789 785 790 786 alias RASCONN* LPRASCONN; 791 787 alias RASENTRY* LPRASENTRY; ................................................................................ 796 792 alias RASPPPIPX* LPRASPPPIPX; 797 793 alias RASPPPIP* LPRASPPPIP; 798 794 alias RASPPPLCP* LPRASPPPLCP; 799 795 alias RASSLIP* LPRASSLIP; 800 796 alias RASDEVINFO* LPRASDEVINFO; 801 797 alias RASENTRYNAME* LPRASENTRYNAME; 802 798 803 -static if (WINVER >= 0x0401) { 799 +static if (_WIN32_WINNT >= 0x401) { 804 800 alias RASSUBENTRY* LPRASSUBENTRY; 805 801 alias RASCREDENTIALS* LPRASCREDENTIALS; 806 802 alias RASAUTODIALENTRY* LPRASAUTODIALENTRY; 807 803 } 808 -static if (WINVER >= 0x0500) { 804 +static if (_WIN32_WINNT >= 0x500) { 809 805 alias RASEAPUSERIDENTITY* LPRASEAPUSERIDENTITY; 810 806 } 811 807 812 808 /* Callback prototypes */ 813 809 deprecated { 814 810 alias BOOL function (HWND, LPSTR, DWORD, LPDWORD) ORASADFUNC; 815 811 } ................................................................................ 864 860 DWORD RasRenameEntryA (LPCSTR, LPCSTR, LPCSTR); 865 861 DWORD RasRenameEntryW (LPCWSTR, LPCWSTR, LPCWSTR); 866 862 DWORD RasDeleteEntryA (LPCSTR, LPCSTR); 867 863 DWORD RasDeleteEntryW (LPCWSTR, LPCWSTR); 868 864 DWORD RasValidateEntryNameA (LPCSTR, LPCSTR); 869 865 DWORD RasValidateEntryNameW (LPCWSTR, LPCWSTR); 870 866 871 -static if (WINVER >= 0x0401) { 867 +static if (_WIN32_WINNT >= 0x401) { 872 868 alias BOOL function (LPSTR, LPSTR, LPRASADPARAMS, LPDWORD) RASADFUNCA; 873 869 alias BOOL function (LPWSTR, LPWSTR, LPRASADPARAMS, LPDWORD) RASADFUNCW; 874 870 875 871 DWORD RasGetSubEntryHandleA (HRASCONN, DWORD, LPHRASCONN); 876 872 DWORD RasGetSubEntryHandleW (HRASCONN, DWORD, LPHRASCONN); 877 873 DWORD RasGetCredentialsA (LPCSTR, LPCSTR, LPRASCREDENTIALSA); 878 874 DWORD RasGetCredentialsW (LPCWSTR, LPCWSTR, LPRASCREDENTIALSW); ................................................................................ 904 900 DWORD RasSetAutodialEnableW (DWORD, BOOL); 905 901 DWORD RasGetAutodialParamA (DWORD, LPVOID, LPDWORD); 906 902 DWORD RasGetAutodialParamW (DWORD, LPVOID, LPDWORD); 907 903 DWORD RasSetAutodialParamA (DWORD, LPVOID, DWORD); 908 904 DWORD RasSetAutodialParamW (DWORD, LPVOID, DWORD); 909 905 } 910 906 911 -static if (WINVER >= 0x0500) { 907 +static if (_WIN32_WINNT >= 0x500) { 912 908 alias DWORD function (HRASCONN) RasCustomHangUpFn; 913 909 alias DWORD function (LPCTSTR, LPCTSTR, DWORD) RasCustomDeleteEntryNotifyFn; 914 910 alias DWORD function (HINSTANCE, LPRASDIALEXTENSIONS, 915 911 LPCTSTR, LPRASDIALPARAMS, DWORD, LPVOID, LPHRASCONN, DWORD) RasCustomDialFn; 916 912 917 913 DWORD RasInvokeEapUI (HRASCONN, DWORD, LPRASDIALEXTENSIONS, HWND); 918 914 DWORD RasGetLinkStatistics (HRASCONN, DWORD, RAS_STATS*); ................................................................................ 951 947 alias RasGetCountryInfoW RasGetCountryInfo; 952 948 alias RasGetEntryPropertiesW RasGetEntryProperties; 953 949 alias RasSetEntryPropertiesW RasSetEntryProperties; 954 950 alias RasRenameEntryW RasRenameEntry; 955 951 alias RasDeleteEntryW RasDeleteEntry; 956 952 alias RasValidateEntryNameW RasValidateEntryName; 957 953 958 - static if (WINVER >= 0x0401) { 954 + static if (_WIN32_WINNT >= 0x401) { 959 955 alias RASADFUNCW RASADFUNC; 960 956 alias RasGetSubEntryHandleW RasGetSubEntryHandle; 961 957 alias RasConnectionNotificationW RasConnectionNotification; 962 958 alias RasGetSubEntryPropertiesW RasGetSubEntryProperties; 963 959 alias RasSetSubEntryPropertiesW RasSetSubEntryProperties; 964 960 alias RasGetCredentialsW RasGetCredentials; 965 961 alias RasSetCredentialsW RasSetCredentials; ................................................................................ 968 964 alias RasEnumAutodialAddressesW RasEnumAutodialAddresses; 969 965 alias RasGetAutodialEnableW RasGetAutodialEnable; 970 966 alias RasSetAutodialEnableW RasSetAutodialEnable; 971 967 alias RasGetAutodialParamW RasGetAutodialParam; 972 968 alias RasSetAutodialParamW RasSetAutodialParam; 973 969 } 974 970 975 - static if (WINVER >= 0x0500) { 971 + static if (_WIN32_WINNT >= 0x500) { 976 972 alias RasGetEapUserDataW RasGetEapUserData; 977 973 alias RasSetEapUserDataW RasSetEapUserData; 978 974 alias RasGetCustomAuthDataW RasGetCustomAuthData; 979 975 alias RasSetCustomAuthDataW RasSetCustomAuthData; 980 976 alias RasGetEapUserIdentityW RasGetEapUserIdentity; 981 977 alias RasFreeEapUserIdentityW RasFreeEapUserIdentity; 982 978 } 983 979 984 -} else { // ! defined UNICODE 980 +} else { // !Unicode 985 981 alias RasDialA RasDial; 986 982 alias RasEnumConnectionsA RasEnumConnections; 987 983 alias RasEnumEntriesA RasEnumEntries; 988 984 alias RasGetConnectStatusA RasGetConnectStatus; 989 985 alias RasGetErrorStringA RasGetErrorString; 990 986 alias RasHangUpA RasHangUp; 991 987 alias RasGetProjectionInfoA RasGetProjectionInfo; ................................................................................ 997 993 alias RasGetCountryInfoA RasGetCountryInfo; 998 994 alias RasGetEntryPropertiesA RasGetEntryProperties; 999 995 alias RasSetEntryPropertiesA RasSetEntryProperties; 1000 996 alias RasRenameEntryA RasRenameEntry; 1001 997 alias RasDeleteEntryA RasDeleteEntry; 1002 998 alias RasValidateEntryNameA RasValidateEntryName; 1003 999 1004 - static if (WINVER >= 0x0401) { 1000 + static if (_WIN32_WINNT >= 0x401) { 1005 1001 alias RASADFUNCA RASADFUNC; 1006 1002 alias RasGetSubEntryHandleA RasGetSubEntryHandle; 1007 1003 alias RasConnectionNotificationA RasConnectionNotification; 1008 1004 alias RasGetSubEntryPropertiesA RasGetSubEntryProperties; 1009 1005 alias RasSetSubEntryPropertiesA RasSetSubEntryProperties; 1010 1006 alias RasGetCredentialsA RasGetCredentials; 1011 1007 alias RasSetCredentialsA RasSetCredentials; ................................................................................ 1014 1010 alias RasEnumAutodialAddressesA RasEnumAutodialAddresses; 1015 1011 alias RasGetAutodialEnableA RasGetAutodialEnable; 1016 1012 alias RasSetAutodialEnableA RasSetAutodialEnable; 1017 1013 alias RasGetAutodialParamA RasGetAutodialParam; 1018 1014 alias RasSetAutodialParamA RasSetAutodialParam; 1019 1015 } 1020 1016 1021 - static if (WINVER >= 0x0500) { 1017 + static if (_WIN32_WINNT >= 0x500) { 1022 1018 alias RasGetEapUserDataA RasGetEapUserData; 1023 1019 alias RasSetEapUserDataA RasSetEapUserData; 1024 1020 alias RasGetCustomAuthDataA RasGetCustomAuthData; 1025 1021 alias RasSetCustomAuthDataA RasSetCustomAuthData; 1026 1022 alias RasGetEapUserIdentityA RasGetEapUserIdentity; 1027 1023 alias RasFreeEapUserIdentityA RasFreeEapUserIdentity; 1028 1024 } 1029 -} //#endif // ! UNICODE 1025 +} //#endif // !Unicode

Modified src/win32/rasdlg.d from [95419ef551ec8336] to [919a0473b75001a3].

Modified src/win32/raserror.d from [d12ed6abe667cce7] to [3cb4f7086b7eeef2].

Modified src/win32/rassapi.d from [c36a057a2e8d1a48] to [432dd5d7f14ce182].

194 194 WORD TotalPorts; 195 195 WORD PortsInUse; 196 196 DWORD RasVersion; 197 197 } 198 198 alias RAS_SERVER_0* PRAS_SERVER_0; 199 199 200 200 extern (Windows) { 201 - DWORD RasAdminServerGetInfo(CPtr!(WCHAR), PRAS_SERVER_0); 202 - DWORD RasAdminGetUserAccountServer(CPtr!(WCHAR), CPtr!(WCHAR), LPWSTR); 203 - DWORD RasAdminUserGetInfo(CPtr!(WCHAR), CPtr!(WCHAR), PRAS_USER_0); 204 - DWORD RasAdminUserSetInfo(CPtr!(WCHAR), CPtr!(WCHAR), PRAS_USER_0); 201 + DWORD RasAdminServerGetInfo(const(WCHAR)*, PRAS_SERVER_0); 202 + DWORD RasAdminGetUserAccountServer(const(WCHAR)*, const(WCHAR)*, LPWSTR); 203 + DWORD RasAdminUserGetInfo(const(WCHAR)*, const(WCHAR)*, PRAS_USER_0); 204 + DWORD RasAdminUserSetInfo(const(WCHAR)*, const(WCHAR)*, PRAS_USER_0); 205 205 DWORD RasAdminPortEnum(WCHAR*, PRAS_PORT_0*, WORD*); 206 - DWORD RasAdminPortGetInfo(CPtr!(WCHAR), CPtr!(WCHAR), RAS_PORT_1*, 206 + DWORD RasAdminPortGetInfo(const(WCHAR)*, const(WCHAR)*, RAS_PORT_1*, 207 207 RAS_PORT_STATISTICS*, RAS_PARAMETERS**); 208 - DWORD RasAdminPortClearStatistics(CPtr!(WCHAR), CPtr!(WCHAR)); 209 - DWORD RasAdminPortDisconnect(CPtr!(WCHAR), CPtr!(WCHAR)); 208 + DWORD RasAdminPortClearStatistics(const(WCHAR)*, const(WCHAR)*); 209 + DWORD RasAdminPortDisconnect(const(WCHAR)*, const(WCHAR)*); 210 210 DWORD RasAdminFreeBuffer(PVOID); 211 211 DWORD RasAdminGetErrorString(UINT, WCHAR*, DWORD); 212 212 BOOL RasAdminAcceptNewConnection(RAS_PORT_1*, RAS_PORT_STATISTICS*, 213 213 RAS_PARAMETERS*); 214 214 VOID RasAdminConnectionHangupNotification(RAS_PORT_1*, 215 215 RAS_PORT_STATISTICS*, RAS_PARAMETERS*); 216 216 DWORD RasAdminGetIpAddressForUser (WCHAR*, WCHAR*, IPADDR*, BOOL*); 217 217 VOID RasAdminReleaseIpAddress (WCHAR*, WCHAR*,IPADDR*); 218 218 DWORD RasAdminGetUserParms(WCHAR*, PRAS_USER_0); 219 219 DWORD RasAdminSetUserParms(WCHAR*, DWORD, PRAS_USER_0); 220 220 }

Added src/win32/readme.txt version [a7939fa4955a94f3]

1 ++--------------------------------------+ 2 +| Translation of the Win32 API headers | 3 ++--------------------------------------+ 4 + 5 +This is a project to create a well-crafted translation of the Windows 32-bit API headers in the D programming language. 6 + 7 +The project started off as an improvement of Y. Tomino's translation, but is now a derivative of the public domain MinGW Windows headers. 8 + 9 +The official project page is at 10 + 11 +http://www.dsource.org/projects/bindings/wiki/WindowsApi 12 + 13 +If you wish to contribute to this project, please assign modules to yourself at that site, and refer to the translation instructions. 14 + 15 +Email me with comments/suggestions/bug reports: smjg@iname.com

Modified src/win32/reason.d from [6ebbc56617c07542] to [5ab8056091eb475c].

Modified src/win32/regstr.d from [ecf2fc3721a14d98] to [5642546bad4720e6].

Modified src/win32/richedit.d from [8cbb9c5888a9f01f] to [be981eb75dda2569].

281 281 282 282 const SCF_DEFAULT = 0; 283 283 const SCF_SELECTION = 1; 284 284 const SCF_WORD = 2; 285 285 const SCF_ALL = 4; 286 286 const SCF_USEUIRULES = 8; 287 287 288 +alias DWORD TEXTMODE; 288 289 const TM_PLAINTEXT=1; 289 290 const TM_RICHTEXT=2; 290 291 const TM_SINGLELEVELUNDO=4; 291 292 const TM_MULTILEVELUNDO=8; 292 293 const TM_SINGLECODEPAGE=16; 293 294 const TM_MULTICODEPAGE=32; 294 295 295 296 const GT_DEFAULT=0; 296 297 const GT_USECRLF=1; 297 298 298 299 const yHeightCharPtsMost=1638; 299 300 const lDefaultTab=720; 300 301 302 +alias DWORD UNDONAMEID; 303 +const UID_UNKNOWN = 0; 304 +const UID_TYPING = 1; 305 +const UID_DELETE = 2; 306 +const UID_DRAGDROP = 3; 307 +const UID_CUT = 4; 308 +const UID_PASTE = 5; 309 + 301 310 struct CHARFORMATA { 302 311 UINT cbSize = this.sizeof; 303 312 DWORD dwMask; 304 313 DWORD dwEffects; 305 314 LONG yHeight; 306 315 LONG yOffset; 307 316 COLORREF crTextColor; 308 317 BYTE bCharSet; 309 318 BYTE bPitchAndFamily; 310 - char szFaceName[LF_FACESIZE]; 319 + char[LF_FACESIZE] szFaceName; 311 320 } 312 321 struct CHARFORMATW { 313 322 UINT cbSize = this.sizeof; 314 323 DWORD dwMask; 315 324 DWORD dwEffects; 316 325 LONG yHeight; 317 326 LONG yOffset; 318 327 COLORREF crTextColor; 319 328 BYTE bCharSet; 320 329 BYTE bPitchAndFamily; 321 - WCHAR szFaceName[LF_FACESIZE]; 330 + WCHAR[LF_FACESIZE] szFaceName; 322 331 } 323 332 324 333 struct CHARFORMAT2A { 325 334 UINT cbSize = this.sizeof; 326 335 DWORD dwMask; 327 336 DWORD dwEffects; 328 337 LONG yHeight; 329 338 LONG yOffset; 330 339 COLORREF crTextColor; 331 340 BYTE bCharSet; 332 341 BYTE bPitchAndFamily; 333 - char szFaceName[LF_FACESIZE]; 342 + char[LF_FACESIZE] szFaceName; 334 343 WORD wWeight; 335 344 SHORT sSpacing; 336 345 COLORREF crBackColor; 337 346 LCID lcid; 338 347 DWORD dwReserved; 339 348 SHORT sStyle; 340 349 WORD wKerning; ................................................................................ 348 357 DWORD dwMask; 349 358 DWORD dwEffects; 350 359 LONG yHeight; 351 360 LONG yOffset; 352 361 COLORREF crTextColor; 353 362 BYTE bCharSet; 354 363 BYTE bPitchAndFamily; 355 - WCHAR szFaceName[LF_FACESIZE]; 364 + WCHAR[LF_FACESIZE] szFaceName; 356 365 WORD wWeight; 357 366 SHORT sSpacing; 358 367 COLORREF crBackColor; 359 368 LCID lcid; 360 369 DWORD dwReserved; 361 370 SHORT sStyle; 362 371 WORD wKerning; ................................................................................ 472 481 WORD wNumbering; 473 482 WORD wReserved; 474 483 LONG dxStartIndent; 475 484 LONG dxRightIndent; 476 485 LONG dxOffset; 477 486 WORD wAlignment; 478 487 SHORT cTabCount; 479 - LONG rgxTabs[MAX_TAB_STOPS]; 488 + LONG[MAX_TAB_STOPS] rgxTabs; 480 489 } 481 490 482 491 struct PARAFORMAT2 { 483 492 UINT cbSize = this.sizeof; 484 493 DWORD dwMask; 485 494 WORD wNumbering; 486 495 WORD wEffects; 487 496 LONG dxStartIndent; 488 497 LONG dxRightIndent; 489 498 LONG dxOffset; 490 499 WORD wAlignment; 491 500 SHORT cTabCount; 492 - LONG rgxTabs[MAX_TAB_STOPS]; 501 + LONG[MAX_TAB_STOPS] rgxTabs; 493 502 LONG dySpaceBefore; 494 503 LONG dySpaceAfter; 495 504 LONG dyLineSpacing; 496 505 SHORT sStype; 497 506 BYTE bLineSpacingRule; 498 507 BYTE bOutlineLevel; 499 508 WORD wShadingWeight; ................................................................................ 538 547 } 539 548 540 549 struct GETTEXTEX { 541 550 DWORD cb; 542 551 DWORD flags; 543 552 UINT codepage; 544 553 LPCSTR lpDefaultChar; 545 - LPBOOL lpUsedDefaultChar; 554 + LPBOOL lpUsedDefChar; 546 555 } 547 556 548 557 extern (Windows) { 549 558 alias LONG function(char*,LONG,BYTE,INT) EDITWORDBREAKPROCEX; 550 559 } 551 560 552 561 /* Defines for EM_SETTYPOGRAPHYOPTIONS */

Modified src/win32/richole.d from [b40faba978847e1c] to [92f6c63b4156f1a9].

80 80 HRESULT HandsOffStorage(LONG); 81 81 HRESULT SaveCompleted(LONG, LPSTORAGE); 82 82 HRESULT InPlaceDeactivate(); 83 83 HRESULT ContextSensitiveHelp(BOOL); 84 84 HRESULT GetClipboardData(CHARRANGE*, DWORD, LPDATAOBJECT*); 85 85 HRESULT ImportDataObject(LPDATAOBJECT, CLIPFORMAT, HGLOBAL); 86 86 }; 87 -alias IRichEditOle* LPRICHEDITOLE; 87 +alias IRichEditOle LPRICHEDITOLE; 88 88 89 89 interface IRichEditOleCallback : IUnknown { 90 90 HRESULT GetNewStorage(LPSTORAGE*); 91 91 HRESULT GetInPlaceContext(LPOLEINPLACEFRAME*, LPOLEINPLACEUIWINDOW*, LPOLEINPLACEFRAMEINFO); 92 92 HRESULT ShowContainerUI(BOOL); 93 93 HRESULT QueryInsertObject(LPCLSID, LPSTORAGE, LONG); 94 94 HRESULT DeleteObject(LPOLEOBJECT); 95 95 HRESULT QueryAcceptData(LPDATAOBJECT, CLIPFORMAT*, DWORD, BOOL, HGLOBAL); 96 96 HRESULT ContextSensitiveHelp(BOOL); 97 97 HRESULT GetClipboardData(CHARRANGE*, DWORD, LPDATAOBJECT*); 98 98 HRESULT GetDragDropEffect(BOOL, DWORD, PDWORD); 99 99 HRESULT GetContextMenu(WORD, LPOLEOBJECT, CHARRANGE*, HMENU*); 100 100 }; 101 -alias IRichEditOleCallback* LPRICHEDITOLECALLBACK; 101 +alias IRichEditOleCallback LPRICHEDITOLECALLBACK;

Modified src/win32/rpc.d from [744671b954e4e438] to [03fdad9b5bd4d6ab].

Modified src/win32/rpcdce.d from [ed6eabc89b35f750] to [13d7798ff7743b2f].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.rpcdce; 11 -pragma(lib, "Rpcrt4.lib"); 11 +pragma(lib, "Rpcrt4"); 12 12 13 13 // TODO: I think MinGW got this wrong. RPC_UNICODE_SUPPORTED should be 14 14 // replaced aliases for version(Unicode) 15 15 16 16 public import win32.rpcdcep; 17 17 private import win32.basetyps, win32.w32api, win32.windef; 18 18 ................................................................................ 113 113 const RPC_C_AUTHZ_DEFAULT=0xFFFFFFFF; 114 114 115 115 alias I_RPC_HANDLE RPC_BINDING_HANDLE; 116 116 alias RPC_BINDING_HANDLE handle_t; 117 117 118 118 struct RPC_BINDING_VECTOR { 119 119 uint Count; 120 - RPC_BINDING_HANDLE BindingH[1]; 120 + RPC_BINDING_HANDLE[1] BindingH; 121 121 } 122 122 123 123 alias RPC_BINDING_HANDLE rpc_binding_handle_t; 124 124 alias RPC_BINDING_VECTOR rpc_binding_vector_t; 125 125 126 126 127 127 struct UUID_VECTOR { 128 128 uint Count; 129 - UUID* Uuid[1]; 129 + UUID*[1] Uuid; 130 130 } 131 131 132 132 alias void* RPC_IF_HANDLE; 133 133 134 134 struct RPC_IF_ID { 135 135 UUID Uuid; 136 136 ushort VersMajor; ................................................................................ 154 154 uint[1] Stats; 155 155 } 156 156 157 157 struct RPC_IF_ID_VECTOR { 158 158 uint Count; 159 159 RPC_IF_ID*[1] IfId; 160 160 } 161 -alias HANDLE RPC_AUTH_IDENTITY_HANDLE, RPC_AUTHZ_HANDLE; 161 +mixin DECLARE_HANDLE!("RPC_AUTH_IDENTITY_HANDLE"); 162 +mixin DECLARE_HANDLE!("RPC_AUTHZ_HANDLE"); 162 163 163 164 struct RPC_SECURITY_QOS { 164 165 uint Version; 165 166 uint Capabilities; 166 167 uint IdentityTracking; 167 168 uint ImpersonationType; 168 169 } ................................................................................ 198 199 } 199 200 alias RPC_CLIENT_INFORMATION1* PRPC_CLIENT_INFORMATION1; 200 201 alias I_RPC_HANDLE* RPC_EP_INQ_HANDLE; 201 202 extern (Windows) { 202 203 alias int function(RPC_BINDING_HANDLE, uint, RPC_STATUS*) RPC_MGMT_AUTHORIZATION_FN; 203 204 } 204 205 205 -static if(_WIN32_WINNT_ONLY) { 206 - 207 - struct RPC_PROTSEQ_VECTORA { 208 - uint Count; 209 - ubyte*[1] Protseq; 210 - } 206 +struct RPC_PROTSEQ_VECTORA { 207 + uint Count; 208 + ubyte*[1] Protseq; 209 +} 211 210 212 - struct RPC_PROTSEQ_VECTORW { 213 - uint Count; 214 - ushort*[1] Protseq; 215 - } 211 +struct RPC_PROTSEQ_VECTORW { 212 + uint Count; 213 + ushort*[1] Protseq; 214 +} 216 215 217 - extern (Windows) { 218 - RPC_STATUS RpcBindingFromStringBindingA(char*, RPC_BINDING_HANDLE*); 219 - RPC_STATUS RpcBindingFromStringBindingW(wchar*, RPC_BINDING_HANDLE*); 220 - RPC_STATUS RpcBindingToStringBindingA(RPC_BINDING_HANDLE, char**); 221 - RPC_STATUS RpcBindingToStringBindingW(RPC_BINDING_HANDLE, wchar**); 222 - RPC_STATUS RpcStringBindingComposeA(char*, char*, char*, char*, char*, char**); 223 - RPC_STATUS RpcStringBindingComposeW(wchar*, wchar*, wchar*, wchar*, wchar*, wchar**); 224 - RPC_STATUS RpcStringBindingParseA(char*, char**, char**, char**, char**, char**); 225 - RPC_STATUS RpcStringBindingParseW(wchar*, wchar**, wchar**, wchar**, wchar**, wchar**); 226 - RPC_STATUS RpcStringFreeA(char**); 227 - RPC_STATUS RpcStringFreeW(wchar**); 228 - RPC_STATUS RpcNetworkIsProtseqValidA(char*); 229 - RPC_STATUS RpcNetworkIsProtseqValidW(wchar*); 230 - RPC_STATUS RpcNetworkInqProtseqsA(RPC_PROTSEQ_VECTORA**); 231 - RPC_STATUS RpcNetworkInqProtseqsW(RPC_PROTSEQ_VECTORW**); 232 - RPC_STATUS RpcProtseqVectorFreeA(RPC_PROTSEQ_VECTORA**); 233 - RPC_STATUS RpcProtseqVectorFreeW(RPC_PROTSEQ_VECTORW**); 234 - RPC_STATUS RpcServerUseProtseqA(char*, uint, void*); 235 - RPC_STATUS RpcServerUseProtseqW(wchar*, uint, void*); 236 - RPC_STATUS RpcServerUseProtseqExA(char*, uint MaxCalls, void*, PRPC_POLICY); 237 - RPC_STATUS RpcServerUseProtseqExW(wchar*, uint, void*, PRPC_POLICY); 238 - RPC_STATUS RpcServerUseProtseqEpA(char*, uint, char*, void*); 239 - RPC_STATUS RpcServerUseProtseqEpExA(char*, uint, char*, void*, PRPC_POLICY); 240 - RPC_STATUS RpcServerUseProtseqEpW(wchar*, uint, wchar*, void*); 241 - RPC_STATUS RpcServerUseProtseqEpExW(wchar*, uint, wchar*, void*, PRPC_POLICY); 242 - RPC_STATUS RpcServerUseProtseqIfA(char*, uint, RPC_IF_HANDLE, void*); 243 - RPC_STATUS RpcServerUseProtseqIfExA(char*, uint, RPC_IF_HANDLE, void*, PRPC_POLICY); 244 - RPC_STATUS RpcServerUseProtseqIfW(wchar*, uint, RPC_IF_HANDLE, void*); 245 - RPC_STATUS RpcServerUseProtseqIfExW(wchar*, uint, RPC_IF_HANDLE, void*, PRPC_POLICY); 246 - RPC_STATUS RpcMgmtInqServerPrincNameA(RPC_BINDING_HANDLE, uint, char**); 247 - RPC_STATUS RpcMgmtInqServerPrincNameW(RPC_BINDING_HANDLE, uint, wchar**); 248 - RPC_STATUS RpcServerInqDefaultPrincNameA(uint, char**); 249 - RPC_STATUS RpcServerInqDefaultPrincNameW(uint, wchar**); 250 - RPC_STATUS RpcNsBindingInqEntryNameA(RPC_BINDING_HANDLE, uint, char**); 251 - RPC_STATUS RpcNsBindingInqEntryNameW(RPC_BINDING_HANDLE, uint, wchar**); 252 - RPC_STATUS RpcBindingInqAuthClientA(RPC_BINDING_HANDLE, RPC_AUTHZ_HANDLE*, char**, uint*, uint*, uint*); 253 - RPC_STATUS RpcBindingInqAuthClientW(RPC_BINDING_HANDLE, RPC_AUTHZ_HANDLE*, wchar**, uint*, uint*, uint*); 254 - RPC_STATUS RpcBindingInqAuthInfoA(RPC_BINDING_HANDLE, char**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*); 255 - RPC_STATUS RpcBindingInqAuthInfoW(RPC_BINDING_HANDLE, wchar**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*); 256 - RPC_STATUS RpcBindingSetAuthInfoA(RPC_BINDING_HANDLE, char*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint); 257 - RPC_STATUS RpcBindingSetAuthInfoExA(RPC_BINDING_HANDLE, char*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint, RPC_SECURITY_QOS*); 258 - RPC_STATUS RpcBindingSetAuthInfoW(RPC_BINDING_HANDLE, wchar*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint); 259 - RPC_STATUS RpcBindingSetAuthInfoExW(RPC_BINDING_HANDLE, wchar*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint, RPC_SECURITY_QOS*); 260 - RPC_STATUS RpcBindingInqAuthInfoExA(RPC_BINDING_HANDLE, char**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*, uint, RPC_SECURITY_QOS*); 261 - RPC_STATUS RpcBindingInqAuthInfoExW(RPC_BINDING_HANDLE, wchar**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*, uint, RPC_SECURITY_QOS*); 262 - alias void function(void*, wchar*, uint, void**, RPC_STATUS*) RPC_AUTH_KEY_RETRIEVAL_FN; 263 - RPC_STATUS RpcServerRegisterAuthInfoA(char*, uint, RPC_AUTH_KEY_RETRIEVAL_FN, void*); 264 - RPC_STATUS RpcServerRegisterAuthInfoW(wchar*, uint, RPC_AUTH_KEY_RETRIEVAL_FN, void*); 265 - RPC_STATUS UuidToStringA(UUID*, char**); 266 - RPC_STATUS UuidFromStringA(char*, UUID*); 267 - RPC_STATUS UuidToStringW(UUID*, wchar**); 268 - RPC_STATUS UuidFromStringW(wchar*, UUID*); 269 - RPC_STATUS RpcEpRegisterNoReplaceA(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, char*); 270 - RPC_STATUS RpcEpRegisterNoReplaceW(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, wchar*); 271 - RPC_STATUS RpcEpRegisterA(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, char*); 272 - RPC_STATUS RpcEpRegisterW(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, wchar*); 273 - RPC_STATUS DceErrorInqTextA(RPC_STATUS, char*); 274 - RPC_STATUS DceErrorInqTextW(RPC_STATUS, wchar*); 275 - RPC_STATUS RpcMgmtEpEltInqNextA(RPC_EP_INQ_HANDLE, RPC_IF_ID*, RPC_BINDING_HANDLE*, UUID*, char**); 276 - RPC_STATUS RpcMgmtEpEltInqNextW(RPC_EP_INQ_HANDLE, RPC_IF_ID*, RPC_BINDING_HANDLE*, UUID*, wchar**); 216 +extern (Windows) { 217 + RPC_STATUS RpcBindingFromStringBindingA(char*, RPC_BINDING_HANDLE*); 218 + RPC_STATUS RpcBindingFromStringBindingW(wchar*, RPC_BINDING_HANDLE*); 219 + RPC_STATUS RpcBindingToStringBindingA(RPC_BINDING_HANDLE, char**); 220 + RPC_STATUS RpcBindingToStringBindingW(RPC_BINDING_HANDLE, wchar**); 221 + RPC_STATUS RpcStringBindingComposeA(char*, char*, char*, char*, char*, char**); 222 + RPC_STATUS RpcStringBindingComposeW(wchar*, wchar*, wchar*, wchar*, wchar*, wchar**); 223 + RPC_STATUS RpcStringBindingParseA(char*, char**, char**, char**, char**, char**); 224 + RPC_STATUS RpcStringBindingParseW(wchar*, wchar**, wchar**, wchar**, wchar**, wchar**); 225 + RPC_STATUS RpcStringFreeA(char**); 226 + RPC_STATUS RpcStringFreeW(wchar**); 227 + RPC_STATUS RpcNetworkIsProtseqValidA(char*); 228 + RPC_STATUS RpcNetworkIsProtseqValidW(wchar*); 229 + RPC_STATUS RpcNetworkInqProtseqsA(RPC_PROTSEQ_VECTORA**); 230 + RPC_STATUS RpcNetworkInqProtseqsW(RPC_PROTSEQ_VECTORW**); 231 + RPC_STATUS RpcProtseqVectorFreeA(RPC_PROTSEQ_VECTORA**); 232 + RPC_STATUS RpcProtseqVectorFreeW(RPC_PROTSEQ_VECTORW**); 233 + RPC_STATUS RpcServerUseProtseqA(char*, uint, void*); 234 + RPC_STATUS RpcServerUseProtseqW(wchar*, uint, void*); 235 + RPC_STATUS RpcServerUseProtseqExA(char*, uint MaxCalls, void*, PRPC_POLICY); 236 + RPC_STATUS RpcServerUseProtseqExW(wchar*, uint, void*, PRPC_POLICY); 237 + RPC_STATUS RpcServerUseProtseqEpA(char*, uint, char*, void*); 238 + RPC_STATUS RpcServerUseProtseqEpExA(char*, uint, char*, void*, PRPC_POLICY); 239 + RPC_STATUS RpcServerUseProtseqEpW(wchar*, uint, wchar*, void*); 240 + RPC_STATUS RpcServerUseProtseqEpExW(wchar*, uint, wchar*, void*, PRPC_POLICY); 241 + RPC_STATUS RpcServerUseProtseqIfA(char*, uint, RPC_IF_HANDLE, void*); 242 + RPC_STATUS RpcServerUseProtseqIfExA(char*, uint, RPC_IF_HANDLE, void*, PRPC_POLICY); 243 + RPC_STATUS RpcServerUseProtseqIfW(wchar*, uint, RPC_IF_HANDLE, void*); 244 + RPC_STATUS RpcServerUseProtseqIfExW(wchar*, uint, RPC_IF_HANDLE, void*, PRPC_POLICY); 245 + RPC_STATUS RpcMgmtInqServerPrincNameA(RPC_BINDING_HANDLE, uint, char**); 246 + RPC_STATUS RpcMgmtInqServerPrincNameW(RPC_BINDING_HANDLE, uint, wchar**); 247 + RPC_STATUS RpcServerInqDefaultPrincNameA(uint, char**); 248 + RPC_STATUS RpcServerInqDefaultPrincNameW(uint, wchar**); 249 + RPC_STATUS RpcNsBindingInqEntryNameA(RPC_BINDING_HANDLE, uint, char**); 250 + RPC_STATUS RpcNsBindingInqEntryNameW(RPC_BINDING_HANDLE, uint, wchar**); 251 + RPC_STATUS RpcBindingInqAuthClientA(RPC_BINDING_HANDLE, RPC_AUTHZ_HANDLE*, char**, uint*, uint*, uint*); 252 + RPC_STATUS RpcBindingInqAuthClientW(RPC_BINDING_HANDLE, RPC_AUTHZ_HANDLE*, wchar**, uint*, uint*, uint*); 253 + RPC_STATUS RpcBindingInqAuthInfoA(RPC_BINDING_HANDLE, char**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*); 254 + RPC_STATUS RpcBindingInqAuthInfoW(RPC_BINDING_HANDLE, wchar**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*); 255 + RPC_STATUS RpcBindingSetAuthInfoA(RPC_BINDING_HANDLE, char*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint); 256 + RPC_STATUS RpcBindingSetAuthInfoExA(RPC_BINDING_HANDLE, char*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint, RPC_SECURITY_QOS*); 257 + RPC_STATUS RpcBindingSetAuthInfoW(RPC_BINDING_HANDLE, wchar*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint); 258 + RPC_STATUS RpcBindingSetAuthInfoExW(RPC_BINDING_HANDLE, wchar*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint, RPC_SECURITY_QOS*); 259 + RPC_STATUS RpcBindingInqAuthInfoExA(RPC_BINDING_HANDLE, char**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*, uint, RPC_SECURITY_QOS*); 260 + RPC_STATUS RpcBindingInqAuthInfoExW(RPC_BINDING_HANDLE, wchar**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*, uint, RPC_SECURITY_QOS*); 261 + alias void function(void*, wchar*, uint, void**, RPC_STATUS*) RPC_AUTH_KEY_RETRIEVAL_FN; 262 + RPC_STATUS RpcServerRegisterAuthInfoA(char*, uint, RPC_AUTH_KEY_RETRIEVAL_FN, void*); 263 + RPC_STATUS RpcServerRegisterAuthInfoW(wchar*, uint, RPC_AUTH_KEY_RETRIEVAL_FN, void*); 264 + RPC_STATUS UuidToStringA(UUID*, char**); 265 + RPC_STATUS UuidFromStringA(char*, UUID*); 266 + RPC_STATUS UuidToStringW(UUID*, wchar**); 267 + RPC_STATUS UuidFromStringW(wchar*, UUID*); 268 + RPC_STATUS RpcEpRegisterNoReplaceA(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, char*); 269 + RPC_STATUS RpcEpRegisterNoReplaceW(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, wchar*); 270 + RPC_STATUS RpcEpRegisterA(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, char*); 271 + RPC_STATUS RpcEpRegisterW(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, wchar*); 272 + RPC_STATUS DceErrorInqTextA(RPC_STATUS, char*); 273 + RPC_STATUS DceErrorInqTextW(RPC_STATUS, wchar*); 274 + RPC_STATUS RpcMgmtEpEltInqNextA(RPC_EP_INQ_HANDLE, RPC_IF_ID*, RPC_BINDING_HANDLE*, UUID*, char**); 275 + RPC_STATUS RpcMgmtEpEltInqNextW(RPC_EP_INQ_HANDLE, RPC_IF_ID*, RPC_BINDING_HANDLE*, UUID*, wchar**); 277 276 278 - // MinGW erroneously had these in rpc.h 279 - RPC_STATUS RpcImpersonateClient(RPC_BINDING_HANDLE); 280 - RPC_STATUS RpcRevertToSelf(); 281 - } 277 + // MinGW erroneously had these in rpc.h 278 + RPC_STATUS RpcImpersonateClient(RPC_BINDING_HANDLE); 279 + RPC_STATUS RpcRevertToSelf(); 280 +} 282 281 283 - version(Unicode) { 284 - alias RPC_PROTSEQ_VECTORW RPC_PROTSEQ_VECTOR; 285 - alias SEC_WINNT_AUTH_IDENTITY_W SEC_WINNT_AUTH_IDENTITY; 286 - alias PSEC_WINNT_AUTH_IDENTITY_W PSEC_WINNT_AUTH_IDENTITY; 287 - alias RpcMgmtEpEltInqNextW RpcMgmtEpEltInqNext; 288 - alias RpcBindingFromStringBindingW RpcBindingFromStringBinding; 289 - alias RpcBindingToStringBindingW RpcBindingToStringBinding; 290 - alias RpcStringBindingComposeW RpcStringBindingCompose; 291 - alias RpcStringBindingParseW RpcStringBindingParse; 292 - alias RpcStringFreeW RpcStringFree; 293 - alias RpcNetworkIsProtseqValidW RpcNetworkIsProtseqValid; 294 - alias RpcNetworkInqProtseqsW RpcNetworkInqProtseqs; 295 - alias RpcProtseqVectorFreeW RpcProtseqVectorFree; 296 - alias RpcServerUseProtseqW RpcServerUseProtseq; 297 - alias RpcServerUseProtseqExW RpcServerUseProtseqEx; 298 - alias RpcServerUseProtseqEpW RpcServerUseProtseqEp; 299 - alias RpcServerUseProtseqEpExW RpcServerUseProtseqEpEx; 300 - alias RpcServerUseProtseqIfW RpcServerUseProtseqIf; 301 - alias RpcServerUseProtseqIfExW RpcServerUseProtseqIfEx; 302 - alias RpcMgmtInqServerPrincNameW RpcMgmtInqServerPrincName; 303 - alias RpcServerInqDefaultPrincNameW RpcServerInqDefaultPrincName; 304 - alias RpcNsBindingInqEntryNameW RpcNsBindingInqEntryName; 305 - alias RpcBindingInqAuthClientW RpcBindingInqAuthClient; 306 - alias RpcBindingInqAuthInfoW RpcBindingInqAuthInfo; 307 - alias RpcBindingSetAuthInfoW RpcBindingSetAuthInfo; 308 - alias RpcServerRegisterAuthInfoW RpcServerRegisterAuthInfo; 309 - alias RpcBindingInqAuthInfoExW RpcBindingInqAuthInfoEx; 310 - alias RpcBindingSetAuthInfoExW RpcBindingSetAuthInfoEx; 311 - alias UuidFromStringW UuidFromString; 312 - alias UuidToStringW UuidToString; 313 - alias RpcEpRegisterNoReplaceW RpcEpRegisterNoReplace; 314 - alias RpcEpRegisterW RpcEpRegister; 315 - alias DceErrorInqTextW DceErrorInqText; 316 - } else { // Ansi 317 - alias RPC_PROTSEQ_VECTORA RPC_PROTSEQ_VECTOR; 318 - alias SEC_WINNT_AUTH_IDENTITY_A SEC_WINNT_AUTH_IDENTITY; 319 - alias PSEC_WINNT_AUTH_IDENTITY_A PSEC_WINNT_AUTH_IDENTITY; 320 - alias RpcMgmtEpEltInqNextA RpcMgmtEpEltInqNext; 321 - alias RpcBindingFromStringBindingA RpcBindingFromStringBinding; 322 - alias RpcBindingToStringBindingA RpcBindingToStringBinding; 323 - alias RpcStringBindingComposeA RpcStringBindingCompose; 324 - alias RpcStringBindingParseA RpcStringBindingParse; 325 - alias RpcStringFreeA RpcStringFree; 326 - alias RpcNetworkIsProtseqValidA RpcNetworkIsProtseqValid; 327 - alias RpcNetworkInqProtseqsA RpcNetworkInqProtseqs; 328 - alias RpcProtseqVectorFreeA RpcProtseqVectorFree; 329 - alias RpcServerUseProtseqA RpcServerUseProtseq; 330 - alias RpcServerUseProtseqExA RpcServerUseProtseqEx; 331 - alias RpcServerUseProtseqEpA RpcServerUseProtseqEp; 332 - alias RpcServerUseProtseqEpExA RpcServerUseProtseqEpEx; 333 - alias RpcServerUseProtseqIfA RpcServerUseProtseqIf; 334 - alias RpcServerUseProtseqIfExA RpcServerUseProtseqIfEx; 335 - alias RpcMgmtInqServerPrincNameA RpcMgmtInqServerPrincName; 336 - alias RpcServerInqDefaultPrincNameA RpcServerInqDefaultPrincName; 337 - alias RpcNsBindingInqEntryNameA RpcNsBindingInqEntryName; 338 - alias RpcBindingInqAuthClientA RpcBindingInqAuthClient; 339 - alias RpcBindingInqAuthInfoA RpcBindingInqAuthInfo; 340 - alias RpcBindingSetAuthInfoA RpcBindingSetAuthInfo; 341 - alias RpcServerRegisterAuthInfoA RpcServerRegisterAuthInfo; 342 - alias RpcBindingInqAuthInfoExA RpcBindingInqAuthInfoEx; 343 - alias RpcBindingSetAuthInfoExA RpcBindingSetAuthInfoEx; 344 - alias UuidFromStringA UuidFromString; 345 - alias UuidToStringA UuidToString; 346 - alias RpcEpRegisterNoReplaceA RpcEpRegisterNoReplace; 347 - alias RpcEpRegisterA RpcEpRegister; 348 - alias DceErrorInqTextA DceErrorInqText; 349 - } //#endif // UNICODE 350 - 351 -} else { // _WIN32_WINNT_ONLY 352 - 353 - struct RPC_PROTSEQ_VECTOR { 354 - uint Count; 355 - ubyte* Protseq[1]; 356 - } 357 - // versions without Unicode. 358 - RPC_STATUS RpcBindingFromStringBinding(char*, RPC_BINDING_HANDLE*); 359 - RPC_STATUS RpcBindingToStringBinding(RPC_BINDING_HANDLE, char**); 360 - RPC_STATUS RpcStringBindingCompose(char*, char*, char*, char*, char*, char**); 361 - RPC_STATUS RpcStringBindingParse(char*, char**, char**, char**, char**, char**); 362 - RPC_STATUS RpcStringFree(char**); 363 - RPC_STATUS RpcNetworkIsProtseqValid(char*); 364 - RPC_STATUS RpcNetworkInqProtseqs(RPC_PROTSEQ_VECTOR**); 365 - RPC_STATUS RpcServerInqBindings(RPC_BINDING_VECTOR**); 366 - RPC_STATUS RpcServerUseProtseq(char*, uint, void*); 367 - RPC_STATUS RpcServerUseProtseqEx(char*, uint, void*, PRPC_POLICY); 368 - RPC_STATUS RpcServerUseProtseqEp(char*, uint, char*, void*); 369 - RPC_STATUS RpcServerUseProtseqEpEx(char*, uint, char*, void*, PRPC_POLICY); 370 - RPC_STATUS RpcServerUseProtseqIf(char*, uint, RPC_IF_HANDLE, void*); 371 - RPC_STATUS RpcServerUseProtseqIfEx(char*, uint, RPC_IF_HANDLE, void*, PRPC_POLICY); 372 - RPC_STATUS RpcMgmtInqServerPrincName(RPC_BINDING_HANDLE, uint, char**); 373 - RPC_STATUS RpcServerInqDefaultPrincName(uint, char**); 374 - RPC_STATUS RpcNsBindingInqEntryName(RPC_BINDING_HANDLE, uint, char**); 375 - RPC_STATUS RpcBindingInqAuthClient(RPC_BINDING_HANDLE, RPC_AUTHZ_HANDLE*, char**, uint*, uint*, uint*); 376 - RPC_STATUS RpcBindingInqAuthInfo(RPC_BINDING_HANDLE, char**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*); 377 - RPC_STATUS RpcBindingSetAuthInfo(RPC_BINDING_HANDLE, char*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint); 378 - alias void function(void*, char*, uint, void**, RPC_STATUS*) RPC_AUTH_KEY_RETRIEVAL_FN; 379 - RPC_STATUS RpcServerRegisterAuthInfo(char*, uint, RPC_AUTH_KEY_RETRIEVAL_FN, void*); 380 - RPC_STATUS UuidToString(UUID*, char**); 381 - RPC_STATUS UuidFromString(char*, UUID*); 382 - RPC_STATUS RpcEpRegisterNoReplace(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, char*); 383 - RPC_STATUS RpcEpRegister(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, char*); 384 - RPC_STATUS DceErrorInqText(RPC_STATUS, char*); 385 - RPC_STATUS RpcMgmtEpEltInqNext(RPC_EP_INQ_HANDLE, RPC_IF_ID*, RPC_BINDING_HANDLE*, char**); 386 -}// _WIN32_WINNT_ONLY 282 +version (Unicode) { 283 + alias RPC_PROTSEQ_VECTORW RPC_PROTSEQ_VECTOR; 284 + alias SEC_WINNT_AUTH_IDENTITY_W SEC_WINNT_AUTH_IDENTITY; 285 + alias PSEC_WINNT_AUTH_IDENTITY_W PSEC_WINNT_AUTH_IDENTITY; 286 + alias RpcMgmtEpEltInqNextW RpcMgmtEpEltInqNext; 287 + alias RpcBindingFromStringBindingW RpcBindingFromStringBinding; 288 + alias RpcBindingToStringBindingW RpcBindingToStringBinding; 289 + alias RpcStringBindingComposeW RpcStringBindingCompose; 290 + alias RpcStringBindingParseW RpcStringBindingParse; 291 + alias RpcStringFreeW RpcStringFree; 292 + alias RpcNetworkIsProtseqValidW RpcNetworkIsProtseqValid; 293 + alias RpcNetworkInqProtseqsW RpcNetworkInqProtseqs; 294 + alias RpcProtseqVectorFreeW RpcProtseqVectorFree; 295 + alias RpcServerUseProtseqW RpcServerUseProtseq; 296 + alias RpcServerUseProtseqExW RpcServerUseProtseqEx; 297 + alias RpcServerUseProtseqEpW RpcServerUseProtseqEp; 298 + alias RpcServerUseProtseqEpExW RpcServerUseProtseqEpEx; 299 + alias RpcServerUseProtseqIfW RpcServerUseProtseqIf; 300 + alias RpcServerUseProtseqIfExW RpcServerUseProtseqIfEx; 301 + alias RpcMgmtInqServerPrincNameW RpcMgmtInqServerPrincName; 302 + alias RpcServerInqDefaultPrincNameW RpcServerInqDefaultPrincName; 303 + alias RpcNsBindingInqEntryNameW RpcNsBindingInqEntryName; 304 + alias RpcBindingInqAuthClientW RpcBindingInqAuthClient; 305 + alias RpcBindingInqAuthInfoW RpcBindingInqAuthInfo; 306 + alias RpcBindingSetAuthInfoW RpcBindingSetAuthInfo; 307 + alias RpcServerRegisterAuthInfoW RpcServerRegisterAuthInfo; 308 + alias RpcBindingInqAuthInfoExW RpcBindingInqAuthInfoEx; 309 + alias RpcBindingSetAuthInfoExW RpcBindingSetAuthInfoEx; 310 + alias UuidFromStringW UuidFromString; 311 + alias UuidToStringW UuidToString; 312 + alias RpcEpRegisterNoReplaceW RpcEpRegisterNoReplace; 313 + alias RpcEpRegisterW RpcEpRegister; 314 + alias DceErrorInqTextW DceErrorInqText; 315 +} else { // Ansi 316 + alias RPC_PROTSEQ_VECTORA RPC_PROTSEQ_VECTOR; 317 + alias SEC_WINNT_AUTH_IDENTITY_A SEC_WINNT_AUTH_IDENTITY; 318 + alias PSEC_WINNT_AUTH_IDENTITY_A PSEC_WINNT_AUTH_IDENTITY; 319 + alias RpcMgmtEpEltInqNextA RpcMgmtEpEltInqNext; 320 + alias RpcBindingFromStringBindingA RpcBindingFromStringBinding; 321 + alias RpcBindingToStringBindingA RpcBindingToStringBinding; 322 + alias RpcStringBindingComposeA RpcStringBindingCompose; 323 + alias RpcStringBindingParseA RpcStringBindingParse; 324 + alias RpcStringFreeA RpcStringFree; 325 + alias RpcNetworkIsProtseqValidA RpcNetworkIsProtseqValid; 326 + alias RpcNetworkInqProtseqsA RpcNetworkInqProtseqs; 327 + alias RpcProtseqVectorFreeA RpcProtseqVectorFree; 328 + alias RpcServerUseProtseqA RpcServerUseProtseq; 329 + alias RpcServerUseProtseqExA RpcServerUseProtseqEx; 330 + alias RpcServerUseProtseqEpA RpcServerUseProtseqEp; 331 + alias RpcServerUseProtseqEpExA RpcServerUseProtseqEpEx; 332 + alias RpcServerUseProtseqIfA RpcServerUseProtseqIf; 333 + alias RpcServerUseProtseqIfExA RpcServerUseProtseqIfEx; 334 + alias RpcMgmtInqServerPrincNameA RpcMgmtInqServerPrincName; 335 + alias RpcServerInqDefaultPrincNameA RpcServerInqDefaultPrincName; 336 + alias RpcNsBindingInqEntryNameA RpcNsBindingInqEntryName; 337 + alias RpcBindingInqAuthClientA RpcBindingInqAuthClient; 338 + alias RpcBindingInqAuthInfoA RpcBindingInqAuthInfo; 339 + alias RpcBindingSetAuthInfoA RpcBindingSetAuthInfo; 340 + alias RpcServerRegisterAuthInfoA RpcServerRegisterAuthInfo; 341 + alias RpcBindingInqAuthInfoExA RpcBindingInqAuthInfoEx; 342 + alias RpcBindingSetAuthInfoExA RpcBindingSetAuthInfoEx; 343 + alias UuidFromStringA UuidFromString; 344 + alias UuidToStringA UuidToString; 345 + alias RpcEpRegisterNoReplaceA RpcEpRegisterNoReplace; 346 + alias RpcEpRegisterA RpcEpRegister; 347 + alias DceErrorInqTextA DceErrorInqText; 348 +} //#endif // UNICODE 387 349 388 350 389 351 RPC_STATUS RpcBindingCopy(RPC_BINDING_HANDLE, RPC_BINDING_HANDLE*); 390 352 RPC_STATUS RpcBindingFree(RPC_BINDING_HANDLE*); 391 353 RPC_STATUS RpcBindingInqObject(RPC_BINDING_HANDLE, UUID*); 392 354 RPC_STATUS RpcBindingReset(RPC_BINDING_HANDLE); 393 355 RPC_STATUS RpcBindingSetObject(RPC_BINDING_HANDLE, UUID*); ................................................................................ 440 402 RPC_STATUS RpcMgmtEpUnregister(RPC_BINDING_HANDLE, RPC_IF_ID*, RPC_BINDING_HANDLE, UUID*); 441 403 RPC_STATUS RpcMgmtSetAuthorizationFn(RPC_MGMT_AUTHORIZATION_FN); 442 404 RPC_STATUS RpcMgmtInqParameter(uint, uint*); 443 405 RPC_STATUS RpcMgmtSetParameter(uint, uint); 444 406 RPC_STATUS RpcMgmtBindingInqParameter(RPC_BINDING_HANDLE, uint, uint*); 445 407 RPC_STATUS RpcMgmtBindingSetParameter(RPC_BINDING_HANDLE, uint, uint); 446 408 447 -static if (_WIN32_WINNT >= 0x0500) { 409 +static if (_WIN32_WINNT >= 0x500) { 448 410 RPC_STATUS UuidCreateSequential(UUID*); 449 411 }

Modified src/win32/rpcdce2.d from [d3ce7b71ab1b6ffb] to [7597e66a5d41bac6].

Modified src/win32/rpcdcep.d from [fac68aa535f8bb3c] to [c14904c7a961f355].

9 9 \***********************************************************************/ 10 10 module win32.rpcdcep; 11 11 12 12 private import win32.basetyps; 13 13 private import win32.w32api; 14 14 private import win32.windef; 15 15 16 -alias HANDLE I_RPC_HANDLE; 16 +mixin DECLARE_HANDLE!("I_RPC_HANDLE"); 17 17 alias long RPC_STATUS; 18 18 19 19 const RPC_NCA_FLAGS_DEFAULT=0; 20 20 const RPC_NCA_FLAGS_IDEMPOTENT=1; 21 21 const RPC_NCA_FLAGS_BROADCAST=2; 22 22 const RPC_NCA_FLAGS_MAYBE=4; 23 23 const RPCFLG_ASYNCHRONOUS=0x40000000; ................................................................................ 75 75 uint Length; 76 76 RPC_SYNTAX_IDENTIFIER InterfaceId; 77 77 RPC_SYNTAX_IDENTIFIER TransferSyntax; 78 78 PRPC_DISPATCH_TABLE DispatchTable; 79 79 uint RpcProtseqEndpointCount; 80 80 PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; 81 81 void* DefaultManagerEpv; 82 - CPtr!(void) InterpreterInfo; 82 + const(void)* InterpreterInfo; 83 83 } 84 84 alias RPC_SERVER_INTERFACE* PRPC_SERVER_INTERFACE; 85 85 86 86 struct RPC_CLIENT_INTERFACE { 87 87 uint Length; 88 88 RPC_SYNTAX_IDENTIFIER InterfaceId; 89 89 RPC_SYNTAX_IDENTIFIER TransferSyntax; 90 90 PRPC_DISPATCH_TABLE DispatchTable; 91 91 uint RpcProtseqEndpointCount; 92 92 PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; 93 93 uint Reserved; 94 - CPtr!(void) InterpreterInfo; 94 + const(void)* InterpreterInfo; 95 95 } 96 96 alias RPC_CLIENT_INTERFACE* PRPC_CLIENT_INTERFACE; 97 97 98 -alias void* I_RPC_MUTEX; 98 +alias TypeDef!(void*) I_RPC_MUTEX; 99 99 100 100 struct RPC_TRANSFER_SYNTAX { 101 101 GUID Uuid; 102 102 ushort VersMajor; 103 103 ushort VersMinor; 104 104 } 105 105 alias RPC_STATUS function(void*, void*, void*) RPC_BLOCKING_FN; ................................................................................ 118 118 void I_RpcFree(void*); 119 119 void I_RpcPauseExecution(uint); 120 120 int I_RpcMonitorAssociation(HANDLE, PRPC_RUNDOWN, void*); 121 121 int I_RpcStopMonitorAssociation(HANDLE); 122 122 HANDLE I_RpcGetCurrentCallHandle(); 123 123 int I_RpcGetAssociationContext(void**); 124 124 int I_RpcSetAssociationContext(void*); 125 - 126 - static if (_WIN32_WINNT_ONLY) { 127 - int I_RpcNsBindingSetEntryName(HANDLE, uint, wchar*); 128 - int I_RpcBindingInqDynamicEndpoint(HANDLE, wchar**); 129 - } else { 130 - int I_RpcNsBindingSetEntryName(HANDLE, uint, char*); 131 - int I_RpcBindingInqDynamicEndpoint(HANDLE, char**); 132 - } 133 - 134 - int I_RpcBindingInqTransportType(HANDLE, uint*); 135 - int I_RpcIfInqTransferSyntaxes(HANDLE, RPC_TRANSFER_SYNTAX*, uint, 136 - uint*); 137 - int I_UuidCreate(GUID*); 138 - int I_RpcBindingCopy(HANDLE, HANDLE*); 139 - int I_RpcBindingIsClientLocal(HANDLE, uint*); 140 - void I_RpcSsDontSerializeContext(); 141 - int I_RpcServerRegisterForwardFunction(int function (GUID*, 142 - RPC_VERSION*, GUID*, ubyte*, void**)); 143 - int I_RpcConnectionInqSockBuffSize(uint*, uint*); 144 - int I_RpcConnectionSetSockBuffSize(uint, uint); 145 - int I_RpcBindingSetAsync(HANDLE, RPC_BLOCKING_FN); 146 - int I_RpcAsyncSendReceive(RPC_MESSAGE*, void*); 147 - int I_RpcGetThreadWindowHandle(void**); 148 - int I_RpcServerThreadPauseListening(); 149 - int I_RpcServerThreadContinueListening(); 150 - int I_RpcServerUnregisterEndpointA(ubyte*, ubyte*); 151 - int I_RpcServerUnregisterEndpointW(ushort*, ushort*); 125 + int I_RpcNsBindingSetEntryName(HANDLE, uint, wchar*); 126 + int I_RpcBindingInqDynamicEndpoint(HANDLE, wchar**); 127 + int I_RpcBindingInqTransportType(HANDLE, uint*); 128 + int I_RpcIfInqTransferSyntaxes(HANDLE, RPC_TRANSFER_SYNTAX*, uint, 129 + uint*); 130 + int I_UuidCreate(GUID*); 131 + int I_RpcBindingCopy(HANDLE, HANDLE*); 132 + int I_RpcBindingIsClientLocal(HANDLE, uint*); 133 + void I_RpcSsDontSerializeContext(); 134 + int I_RpcServerRegisterForwardFunction(int function (GUID*, 135 + RPC_VERSION*, GUID*, ubyte*, void**)); 136 + int I_RpcConnectionInqSockBuffSize(uint*, uint*); 137 + int I_RpcConnectionSetSockBuffSize(uint, uint); 138 + int I_RpcBindingSetAsync(HANDLE, RPC_BLOCKING_FN); 139 + int I_RpcAsyncSendReceive(RPC_MESSAGE*, void*); 140 + int I_RpcGetThreadWindowHandle(void**); 141 + int I_RpcServerThreadPauseListening(); 142 + int I_RpcServerThreadContinueListening(); 143 + int I_RpcServerUnregisterEndpointA(ubyte*, ubyte*); 144 + int I_RpcServerUnregisterEndpointW(ushort*, ushort*); 152 145 } 153 146 154 147 version(Unicode) { 155 148 alias I_RpcServerUnregisterEndpointW I_RpcServerUnregisterEndpoint; 156 149 } else { 157 150 alias I_RpcServerUnregisterEndpointA I_RpcServerUnregisterEndpoint; 158 151 }

Modified src/win32/rpcndr.d from [8b8a4b41425c59e6] to [a54264ccdca8c643].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.rpcndr; 11 -pragma(lib, "rpcrt4.lib"); 11 +pragma(lib, "rpcrt4"); 12 12 13 13 /* Translation notes: 14 14 RPC_CLIENT_ALLOC*, RPC_CLIENT_FREE* were replaced with PRPC_CLIENT_ALLOC, PRPC_CLIENT_FREE 15 15 */ 16 16 17 17 // TODO: Bitfields in MIDL_STUB_MESSAGE. 18 18 // Macros need to be converted. ................................................................................ 95 95 //MACRO #define NdrFieldOffset(s,f) (long)(& (((s *)0)->f)) 96 96 //MACRO #define NdrFieldPad(s,f,p,t) (NdrFieldOffset(s,f) - NdrFieldOffset(s,p) - sizeof(t)) 97 97 //MACRO #define NdrFcShort(s) (unsigned char)(s & 0xff), (unsigned char)(s >> 8) 98 98 //MACRO #define NdrFcLong(s) (unsigned char)(s & 0xff), (unsigned char)((s & 0x0000ff00) >> 8), (unsigned char)((s & 0x00ff0000) >> 16), (unsigned char)(s >> 24) 99 99 100 100 alias void * NDR_CCONTEXT; 101 101 struct tagNDR_SCONTEXT { 102 - void *pad[2]; 102 + void*[2] pad; 103 103 void *userContext; 104 104 } 105 105 alias tagNDR_SCONTEXT * NDR_SCONTEXT; 106 106 107 107 struct SCONTEXT_QUEUE { 108 108 uint NumberOfObjects; 109 109 NDR_SCONTEXT *ArrayOfObjects; ................................................................................ 113 113 struct _MIDL_STUB_MESSAGE; 114 114 struct _MIDL_STUB_DESC; 115 115 struct _FULL_PTR_XLAT_TABLES; 116 116 117 117 alias ubyte *RPC_BUFPTR; 118 118 alias uint RPC_LENGTH; 119 119 120 -alias CPtr!(char) PFORMAT_STRING; 120 +alias const(char)* PFORMAT_STRING; 121 121 122 122 struct ARRAY_INFO { 123 123 int Dimension; 124 124 uint *BufferConformanceMark; 125 125 uint *BufferVarianceMark; 126 126 uint *MaxCountArray; 127 127 uint *OffsetArray; ................................................................................ 185 185 uint ActualCount; 186 186 void* function (uint) pfnAllocate; 187 187 void function (void*) pfnFree; 188 188 ubyte * StackTop; 189 189 ubyte * pPresentedType; 190 190 ubyte * pTransmitType; 191 191 handle_t SavedHandle; 192 - CPtr!(_MIDL_STUB_DESC) StubDesc; 192 + const(_MIDL_STUB_DESC)* StubDesc; 193 193 _FULL_PTR_XLAT_TABLES *FullPtrXlatTables; 194 194 uint FullPtrRefId; 195 195 int fCheckBounds; 196 196 // FIXME: 197 197 byte bit_fields_for_D; // FIXME: Bitfields 198 198 // int fInDontFree :1; 199 199 // int fDontCallFreeInst :1; 200 200 // int fInOnlyParam :1; 201 201 // int fHasReturn :1; 202 202 uint dwDestContext; 203 203 void* pvDestContext; 204 204 NDR_SCONTEXT * SavedContextHandles; 205 205 int ParamNumber; 206 - IRpcChannelBuffer * pRpcChannelBuffer; 206 + IRpcChannelBuffer pRpcChannelBuffer; 207 207 PARRAY_INFO pArrayInfo; 208 208 uint * SizePtrCountArray; 209 209 uint * SizePtrOffsetArray; 210 210 uint * SizePtrLengthArray; 211 211 void* pArgQueue; 212 212 uint dwStubPhase; 213 - uint w2kReserved[5]; 213 + uint[5] w2kReserved; 214 214 } 215 215 alias MIDL_STUB_MESSAGE * PMIDL_STUB_MESSAGE; 216 216 217 217 extern (Windows) { 218 218 alias void* function (void*) GENERIC_BINDING_ROUTINE; 219 219 alias void function (void*,ubyte*) GENERIC_UNBIND_ROUTINE; 220 220 alias uint function (uint *,uint,void *) USER_MARSHAL_SIZING_ROUTINE; ................................................................................ 289 289 void function (void*) pfnFree; 290 290 union _IMPLICIT_HANDLE_INFO { 291 291 handle_t *pAutoHandle; 292 292 handle_t *pPrimitiveHandle; 293 293 PGENERIC_BINDING_INFO pGenericBindingInfo; 294 294 } 295 295 _IMPLICIT_HANDLE_INFO IMPLICIT_HANDLE_INFO; 296 - CPtr!(NDR_RUNDOWN) apfnNdrRundownRoutines; 297 - CPtr!(GENERIC_BINDING_ROUTINE_PAIR) aGenericBindingRoutinePairs; 298 - CPtr!(EXPR_EVAL) apfnExprEval; 299 - CPtr!(XMIT_ROUTINE_QUINTUPLE) aXmitQuintuple; 300 - CPtr!(char) *pFormatTypes; 296 + const(NDR_RUNDOWN)* apfnNdrRundownRoutines; 297 + const(GENERIC_BINDING_ROUTINE_PAIR)* aGenericBindingRoutinePairs; 298 + const(EXPR_EVAL)* apfnExprEval; 299 + const(XMIT_ROUTINE_QUINTUPLE)* aXmitQuintuple; 300 + const(char)* *pFormatTypes; 301 301 int fCheckBounds; 302 302 uint Version; 303 303 MALLOC_FREE_STRUCT *pMallocFreeStruct; 304 304 int MIDLVersion; 305 - CPtr!(COMM_FAULT_OFFSETS) CommFaultOffsets; 306 - CPtr!(USER_MARSHAL_ROUTINE_QUADRUPLE) aUserMarshalQuadruple; 307 - CPtr!(NDR_NOTIFY_ROUTINE) NotifyRoutineTable; 305 + const(COMM_FAULT_OFFSETS)* CommFaultOffsets; 306 + const(USER_MARSHAL_ROUTINE_QUADRUPLE)* aUserMarshalQuadruple; 307 + const(NDR_NOTIFY_ROUTINE)* NotifyRoutineTable; 308 308 ULONG_PTR mFlags; 309 - CPtr!(NDR_CS_ROUTINES) CsRoutineTables; 309 + const(NDR_CS_ROUTINES)* CsRoutineTables; 310 310 void *Reserved4; 311 311 ULONG_PTR Reserved5; 312 312 } 313 -alias CPtr!(MIDL_STUB_DESC) PMIDL_STUB_DESC; 313 +alias const(MIDL_STUB_DESC)* PMIDL_STUB_DESC; 314 314 315 315 alias void * PMIDL_XMIT_TYPE; 316 316 317 317 struct MIDL_FORMAT_STRING { 318 318 short Pad; 319 - ubyte Format[1]; 319 + ubyte[1] Format; 320 320 } 321 321 322 322 struct MIDL_SERVER_INFO { 323 323 PMIDL_STUB_DESC pStubDesc; 324 - CPtr!(SERVER_ROUTINE) DispatchTable; 324 + const(SERVER_ROUTINE)* DispatchTable; 325 325 PFORMAT_STRING ProcString; 326 - CPtr!(ushort) FmtStringOffset; 327 - CPtr!(STUB_THUNK) ThunkTable; 326 + const(ushort)* FmtStringOffset; 327 + const(STUB_THUNK)* ThunkTable; 328 328 } 329 329 alias MIDL_SERVER_INFO * PMIDL_SERVER_INFO; 330 330 331 331 struct MIDL_STUBLESS_PROXY_INFO { 332 332 PMIDL_STUB_DESC pStubDesc; 333 333 PFORMAT_STRING ProcFormatString; 334 - CPtr!(ushort) FormatStringOffset; 334 + const(ushort)* FormatStringOffset; 335 335 } 336 336 alias MIDL_STUBLESS_PROXY_INFO *PMIDL_STUBLESS_PROXY_INFO; 337 337 338 338 union CLIENT_CALL_RETURN { 339 339 void *Pointer; 340 340 int Simple; 341 341 } ................................................................................ 380 380 PROXY_CALCSIZE, 381 381 PROXY_GETBUFFER, 382 382 PROXY_MARSHAL, 383 383 PROXY_SENDRECEIVE, 384 384 PROXY_UNMARSHAL 385 385 } 386 386 387 -alias void * RPC_SS_THREAD_HANDLE; 387 +alias TypeDef!(void *) RPC_SS_THREAD_HANDLE; 388 388 389 389 extern (Windows) { 390 390 alias void function (void*) NDR_RUNDOWN; 391 391 alias void function (_MIDL_STUB_MESSAGE*) EXPR_EVAL; 392 392 alias void function(PMIDL_STUB_MESSAGE) XMIT_HELPER_ROUTINE; 393 393 alias void function (RPC_BINDING_HANDLE,uint,uint,IDL_CS_CONVERT*,uint*,error_status_t*) CS_TYPE_NET_SIZE_ROUTINE; 394 394 alias void function (RPC_BINDING_HANDLE,uint,uint,IDL_CS_CONVERT*,uint*,error_status_t*) CS_TYPE_LOCAL_SIZE_ROUTINE; ................................................................................ 510 510 ubyte * NdrNsGetBuffer(PMIDL_STUB_MESSAGE,uint,RPC_BINDING_HANDLE); 511 511 ubyte * NdrSendReceive(PMIDL_STUB_MESSAGE,ubyte*); 512 512 ubyte * NdrNsSendReceive(PMIDL_STUB_MESSAGE,ubyte*,RPC_BINDING_HANDLE*); 513 513 void NdrFreeBuffer(PMIDL_STUB_MESSAGE); 514 514 515 515 CLIENT_CALL_RETURN NdrClientCall(PMIDL_STUB_DESC,PFORMAT_STRING,...); 516 516 517 -int NdrStubCall(IRpcStubBuffer*, IRpcChannelBuffer*,PRPC_MESSAGE,uint*); 517 +int NdrStubCall(IRpcStubBuffer, IRpcChannelBuffer,PRPC_MESSAGE,uint*); 518 518 void NdrServerCall(PRPC_MESSAGE); 519 -int NdrServerUnmarshall(IRpcChannelBuffer*, PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,PFORMAT_STRING,void*); 520 -void NdrServerMarshall(IRpcStubBuffer*, IRpcChannelBuffer*,PMIDL_STUB_MESSAGE,PFORMAT_STRING); 519 +int NdrServerUnmarshall(IRpcChannelBuffer, PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,PFORMAT_STRING,void*); 520 +void NdrServerMarshall(IRpcStubBuffer, IRpcChannelBuffer,PMIDL_STUB_MESSAGE,PFORMAT_STRING); 521 521 RPC_STATUS NdrMapCommAndFaultStatus(PMIDL_STUB_MESSAGE,uint*,uint*,RPC_STATUS); 522 522 int NdrSH_UPDecision(PMIDL_STUB_MESSAGE,ubyte**,RPC_BUFPTR); 523 523 int NdrSH_TLUPDecision(PMIDL_STUB_MESSAGE,ubyte**); 524 524 int NdrSH_TLUPDecisionBuffer(PMIDL_STUB_MESSAGE,ubyte**); 525 525 int NdrSH_IfAlloc(PMIDL_STUB_MESSAGE,ubyte**,uint); 526 526 int NdrSH_IfAllocRef(PMIDL_STUB_MESSAGE,ubyte**,uint); 527 527 int NdrSH_IfAllocSet(PMIDL_STUB_MESSAGE,ubyte**,uint);

Modified src/win32/rpcnsi.d from [3c5ab0849ccdf24f] to [e6f2e848af2bbb85].

5 5 * RPC Name Service (RpcNs APIs) * 6 6 * * 7 7 * Translated from MinGW Windows headers * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.rpcnsi; 12 -pragma(lib, "rpcns4.lib"); 12 +pragma(lib, "rpcns4"); 13 13 14 14 private import win32.basetyps, win32.rpcdcep, win32.rpcnsi, win32.rpcdce, 15 15 win32.w32api; 16 16 private import win32.windef; // for HANDLE 17 17 18 -alias HANDLE RPC_NS_HANDLE; 18 +mixin DECLARE_HANDLE!("RPC_NS_HANDLE"); 19 19 20 20 const RPC_C_NS_SYNTAX_DEFAULT=0; 21 21 const RPC_C_NS_SYNTAX_DCE=3; 22 22 const RPC_C_PROFILE_DEFAULT_ELT=0; 23 23 const RPC_C_PROFILE_ALL_ELT=1; 24 24 const RPC_C_PROFILE_MATCH_BY_IF=2; 25 25 const RPC_C_PROFILE_MATCH_BY_MBR=3; ................................................................................ 62 62 RPC_STATUS RpcNsMgmtInqExpAge(uint*); 63 63 RPC_STATUS RpcNsMgmtSetExpAge(uint); 64 64 RPC_STATUS RpcNsBindingImportNext(RPC_NS_HANDLE, RPC_BINDING_HANDLE*); 65 65 RPC_STATUS RpcNsBindingImportDone(RPC_NS_HANDLE*); 66 66 RPC_STATUS RpcNsBindingSelect(RPC_BINDING_VECTOR*, RPC_BINDING_HANDLE*); 67 67 } 68 68 69 -// For the cases where Win95, 98, ME have no _W versions, and we must alias to 70 -// _A even for version(Unicode). 71 69 72 70 version (Unicode) { 73 - static if (_WIN32_WINNT_ONLY) { 74 - const bool _WIN32_USE_UNICODE = true; 75 - } else { 76 - const bool _WIN32_USE_UNICODE = false; 77 - } 78 71 } else { 79 - const bool _WIN32_USE_UNICODE = false; 80 -} 81 - 82 -static if (!_WIN32_USE_UNICODE) { 83 72 RPC_STATUS RpcNsEntryObjectInqBeginA(uint, ubyte*, RPC_NS_HANDLE*); 84 73 RPC_STATUS RpcNsBindingImportBeginA(uint, ubyte*, RPC_IF_HANDLE, UUID*, 85 74 RPC_NS_HANDLE*); 86 75 } 87 76 88 -static if (_WIN32_WINNT_ONLY) { 89 - RPC_STATUS RpcNsBindingExportW(uint, ushort*, RPC_IF_HANDLE, 90 - RPC_BINDING_VECTOR*, UUID_VECTOR*); 91 - RPC_STATUS RpcNsBindingUnexportW(uint, ushort*, RPC_IF_HANDLE, 92 - UUID_VECTOR*); 93 - RPC_STATUS RpcNsBindingLookupBeginW(uint, ushort*, RPC_IF_HANDLE, UUID*, 94 - uint, RPC_NS_HANDLE*); 95 - RPC_STATUS RpcNsGroupDeleteW(uint, ushort*); 96 - RPC_STATUS RpcNsGroupMbrAddW(uint, ushort*, uint, ushort*); 97 - RPC_STATUS RpcNsGroupMbrRemoveW(uint, ushort*, uint, ushort*); 98 - RPC_STATUS RpcNsGroupMbrInqBeginW(uint, ushort*, uint, RPC_NS_HANDLE*); 99 - RPC_STATUS RpcNsGroupMbrInqNextW(RPC_NS_HANDLE, ushort**); 100 - RPC_STATUS RpcNsProfileDeleteW(uint, ushort*); 101 - RPC_STATUS RpcNsProfileEltAddW(uint, ushort*, RPC_IF_ID*, uint, ushort*, 102 - uint, ushort*); 103 - RPC_STATUS RpcNsProfileEltRemoveW(uint, ushort*, RPC_IF_ID*, uint, 104 - ushort*); 105 - RPC_STATUS RpcNsProfileEltInqBeginW(uint, ushort*, uint, RPC_IF_ID*, 106 - uint, uint, ushort*, RPC_NS_HANDLE*); 107 - RPC_STATUS RpcNsProfileEltInqNextW(RPC_NS_HANDLE, RPC_IF_ID*, ushort**, 108 - uint*, ushort**); 109 - RPC_STATUS RpcNsEntryObjectInqBeginW(uint, ushort*, RPC_NS_HANDLE*); 110 - RPC_STATUS RpcNsEntryExpandNameW(uint, ushort*, ushort**); 111 - RPC_STATUS RpcNsMgmtBindingUnexportW(uint, ushort*, RPC_IF_ID*, uint, 112 - UUID_VECTOR*); 113 - RPC_STATUS RpcNsMgmtEntryCreateW(uint, ushort*); 114 - RPC_STATUS RpcNsMgmtEntryDeleteW(uint, ushort*); 115 - RPC_STATUS RpcNsMgmtEntryInqIfIdsW(uint, ushort , RPC_IF_ID_VECTOR**); 116 - RPC_STATUS RpcNsBindingImportBeginW(uint, ushort*, RPC_IF_HANDLE, UUID*, 117 - RPC_NS_HANDLE*); 118 -} // _WIN32_WINNT_ONLY 77 +RPC_STATUS RpcNsBindingExportW(uint, ushort*, RPC_IF_HANDLE, 78 + RPC_BINDING_VECTOR*, UUID_VECTOR*); 79 +RPC_STATUS RpcNsBindingUnexportW(uint, ushort*, RPC_IF_HANDLE, 80 + UUID_VECTOR*); 81 +RPC_STATUS RpcNsBindingLookupBeginW(uint, ushort*, RPC_IF_HANDLE, UUID*, 82 + uint, RPC_NS_HANDLE*); 83 +RPC_STATUS RpcNsGroupDeleteW(uint, ushort*); 84 +RPC_STATUS RpcNsGroupMbrAddW(uint, ushort*, uint, ushort*); 85 +RPC_STATUS RpcNsGroupMbrRemoveW(uint, ushort*, uint, ushort*); 86 +RPC_STATUS RpcNsGroupMbrInqBeginW(uint, ushort*, uint, RPC_NS_HANDLE*); 87 +RPC_STATUS RpcNsGroupMbrInqNextW(RPC_NS_HANDLE, ushort**); 88 +RPC_STATUS RpcNsProfileDeleteW(uint, ushort*); 89 +RPC_STATUS RpcNsProfileEltAddW(uint, ushort*, RPC_IF_ID*, uint, ushort*, 90 + uint, ushort*); 91 +RPC_STATUS RpcNsProfileEltRemoveW(uint, ushort*, RPC_IF_ID*, uint, 92 + ushort*); 93 +RPC_STATUS RpcNsProfileEltInqBeginW(uint, ushort*, uint, RPC_IF_ID*, 94 + uint, uint, ushort*, RPC_NS_HANDLE*); 95 +RPC_STATUS RpcNsProfileEltInqNextW(RPC_NS_HANDLE, RPC_IF_ID*, ushort**, 96 + uint*, ushort**); 97 +RPC_STATUS RpcNsEntryObjectInqBeginW(uint, ushort*, RPC_NS_HANDLE*); 98 +RPC_STATUS RpcNsEntryExpandNameW(uint, ushort*, ushort**); 99 +RPC_STATUS RpcNsMgmtBindingUnexportW(uint, ushort*, RPC_IF_ID*, uint, 100 + UUID_VECTOR*); 101 +RPC_STATUS RpcNsMgmtEntryCreateW(uint, ushort*); 102 +RPC_STATUS RpcNsMgmtEntryDeleteW(uint, ushort*); 103 +RPC_STATUS RpcNsMgmtEntryInqIfIdsW(uint, ushort , RPC_IF_ID_VECTOR**); 104 +RPC_STATUS RpcNsBindingImportBeginW(uint, ushort*, RPC_IF_HANDLE, UUID*, 105 + RPC_NS_HANDLE*); 119 106 120 -static if (_WIN32_USE_UNICODE) { 107 +version (Unicode) { 121 108 alias RpcNsBindingLookupBeginW RpcNsBindingLookupBegin; 122 109 alias RpcNsBindingImportBeginW RpcNsBindingImportBegin; 123 110 alias RpcNsBindingExportW RpcNsBindingExport; 124 111 alias RpcNsBindingUnexportW RpcNsBindingUnexport; 125 112 alias RpcNsGroupDeleteW RpcNsGroupDelete; 126 113 alias RpcNsGroupMbrAddW RpcNsGroupMbrAdd; 127 114 alias RpcNsGroupMbrRemoveW RpcNsGroupMbrRemove;

Modified src/win32/rpcnsip.d from [a36abd154cf4e5b1] to [4db958676c29a949].

Modified src/win32/rpcnterr.d from [63a9f93c83055c7e] to [73049331b65677f8].

Modified src/win32/schannel.d from [e98e6679e02fb18d] to [532366dbd71dc510].

Modified src/win32/secext.d from [ceb5b518aee9d6cf] to [4ff4b2ce63f9b1ac].

5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 // Don't include this file directly, use win32.security instead. 11 11 module win32.secext; 12 -pragma(lib, "secur32.lib"); 12 +pragma(lib, "secur32"); 13 13 14 14 private import win32.w32api, win32.windef; 15 15 16 -static assert (_WIN32_WINNT >= 0x0501, 16 +static assert (_WIN32_WINNT >= 0x501, 17 17 "SecExt is only available on WindowsXP and later"); 18 18 19 19 enum EXTENDED_NAME_FORMAT { 20 20 NameUnknown, 21 21 NameFullyQualifiedDN, 22 22 NameSamCompatible, 23 23 NameDisplay, // = 3

Added src/win32/security.d version [d10f1b4b67bc11ee]

1 +/***********************************************************************\ 2 +* security.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Translated from MinGW Windows headers * 7 +* by Ellery Newcomer * 8 +* * 9 +* Placed into public domain * 10 +\***********************************************************************/ 11 +module win32.security; 12 + 13 +enum :SECURITY_STATUS{ 14 + SEC_E_OK = 0, 15 + SEC_E_CERT_EXPIRED = (-2146893016), 16 + SEC_E_INCOMPLETE_MESSAGE = (-2146893032), 17 + SEC_E_INSUFFICIENT_MEMORY = (-2146893056), 18 + SEC_E_INTERNAL_ERROR = (-2146893052), 19 + SEC_E_INVALID_HANDLE = (-2146893055), 20 + SEC_E_INVALID_TOKEN = (-2146893048), 21 + SEC_E_LOGON_DENIED = (-2146893044), 22 + SEC_E_NO_AUTHENTICATING_AUTHORITY = (-2146893039), 23 + SEC_E_NO_CREDENTIALS = (-2146893042), 24 + SEC_E_TARGET_UNKNOWN = (-2146893053), 25 + SEC_E_UNSUPPORTED_FUNCTION = (-2146893054), 26 + SEC_E_UNTRUSTED_ROOT = (-2146893019), 27 + SEC_E_WRONG_PRINCIPAL = (-2146893022), 28 + SEC_E_SECPKG_NOT_FOUND = (-2146893051), 29 + SEC_E_QOP_NOT_SUPPORTED = (-2146893046), 30 + SEC_E_UNKNOWN_CREDENTIALS = (-2146893043), 31 + SEC_E_NOT_OWNER = (-2146893050), 32 +} 33 +enum :SECURITY_STATUS { 34 + SEC_I_RENEGOTIATE = 590625, 35 + SEC_I_COMPLETE_AND_CONTINUE = 590612, 36 + SEC_I_COMPLETE_NEEDED = 590611, 37 + SEC_I_CONTINUE_NEEDED = 590610, 38 + SEC_I_INCOMPLETE_CREDENTIALS = 590624, 39 +} 40 + 41 +/* always a char */ 42 +alias char SEC_CHAR; 43 +alias wchar SEC_WCHAR; 44 + 45 +alias int SECURITY_STATUS; 46 +

Modified src/win32/servprov.d from [3e46ab1399af3137] to [339bbba305edec50].

Modified src/win32/setupapi.d from [aed39609d10f2169] to [cd6d5cae7d4d0ede].

5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * by Vladimir Vlasov * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.setupapi; 12 -pragma(lib, "setupapi.lib"); 12 +pragma(lib, "setupapi"); 13 13 14 14 private import win32.basetyps, win32.commctrl, win32.prsht, win32.w32api, 15 15 win32.winreg, win32.windef; 16 16 private import win32.winbase; // for SYSTEMTIME 17 17 18 18 /*static if(_WIN32_WINNT < _WIN32_WINDOWS) { 19 19 const UINT _SETUPAPI_VER = _WIN32_WINNT; // SetupAPI version follows Windows NT version ................................................................................ 38 38 } else { 39 39 const UINT USE_SP_DRVINFO_DATA_V1 = 1; 40 40 }*/ 41 41 /+ 42 42 const UINT _SETUPAPI_VER = 0x0400; // Earliest SetupAPI version 43 43 const UINT USE_SP_DRVINFO_DATA_V1 = 1; 44 44 +/ 45 -const UINT _SETUPAPI_VER = WINVER; 46 -const bool USE_SP_DRVINFO_DATA_V1 = !_WIN32_WINNT_ONLY || _WIN32_WINNT < 0x500; 45 +const UINT _SETUPAPI_VER = _WIN32_WINNT; 46 +const bool USE_SP_DRVINFO_DATA_V1 = _WIN32_WINNT < 0x500; 47 47 48 48 enum : uint { 49 49 LINE_LEN = 256, 50 50 MAX_INF_STRING_LENGTH = 4096, 51 51 MAX_TITLE_LEN = 60, 52 52 MAX_INSTRUCTION_LEN = 256, 53 53 MAX_LABEL_LEN = 30, ................................................................................ 852 852 SRCLIST_SUBDIRS = 0x00000100, 853 853 SRCLIST_APPEND = 0x00000200, 854 854 SRCLIST_NOSTRIPPLATFORM = 0x00000400 855 855 } 856 856 857 857 alias PVOID HINF; 858 858 alias PVOID HDSKSPC; 859 -alias HANDLE HDEVINFO; 859 +mixin DECLARE_HANDLE!("HDEVINFO"); 860 860 alias PVOID HSPFILEQ; 861 861 alias PVOID HSPFILELOG; 862 862 863 863 enum SetupFileLogInfo { 864 864 SetupFileLogSourceFilename, 865 865 SetupFileLogChecksum, 866 866 SetupFileLogDiskTagfile, ................................................................................ 878 878 UINT Line; 879 879 } 880 880 alias INFCONTEXT* PINFCONTEXT; 881 881 882 882 struct SP_INF_INFORMATION { 883 883 DWORD InfStyle; 884 884 DWORD InfCount; 885 - BYTE _VersionData[1]; 885 + BYTE[1] _VersionData; 886 886 BYTE* VersionData() { return _VersionData.ptr; } 887 887 } 888 888 alias SP_INF_INFORMATION* PSP_INF_INFORMATION; 889 889 890 890 struct SP_ALTPLATFORM_INFO { 891 891 DWORD cbSize = SP_ALTPLATFORM_INFO.sizeof; 892 892 DWORD Platform; ................................................................................ 895 895 WORD ProcessorArchitecture; 896 896 WORD Reserved; 897 897 } 898 898 alias SP_ALTPLATFORM_INFO* PSP_ALTPLATFORM_INFO; 899 899 900 900 struct SP_ORIGINAL_FILE_INFO_A { 901 901 DWORD cbSize = SP_ORIGINAL_FILE_INFO_A.sizeof; 902 - CHAR OriginalInfName[MAX_PATH]; 903 - CHAR OriginalCatalogName[MAX_PATH]; 902 + CHAR[MAX_PATH] OriginalInfName; 903 + CHAR[MAX_PATH] OriginalCatalogName; 904 904 } 905 905 alias SP_ORIGINAL_FILE_INFO_A* PSP_ORIGINAL_FILE_INFO_A; 906 906 907 907 struct SP_ORIGINAL_FILE_INFO_W { 908 908 DWORD cbSize = SP_ORIGINAL_FILE_INFO_W.sizeof; 909 - WCHAR OriginalInfName[MAX_PATH]; 910 - WCHAR OriginalCatalogName[MAX_PATH]; 909 + WCHAR[MAX_PATH] OriginalInfName; 910 + WCHAR[MAX_PATH] OriginalCatalogName; 911 911 } 912 912 alias SP_ORIGINAL_FILE_INFO_W* PSP_ORIGINAL_FILE_INFO_W; 913 913 914 914 struct FILEPATHS_A { 915 915 PCSTR Target; 916 916 PCSTR Source; 917 917 UINT Win32Error; ................................................................................ 968 968 struct FILE_IN_CABINET_INFO_A { 969 969 PCSTR NameInCabinet; 970 970 DWORD FileSize; 971 971 DWORD Win32Error; 972 972 WORD DosDate; 973 973 WORD DosTime; 974 974 WORD DosAttribs; 975 - CHAR FullTargetName[MAX_PATH]; 975 + CHAR[MAX_PATH] FullTargetName; 976 976 } 977 977 alias FILE_IN_CABINET_INFO_A* PFILE_IN_CABINET_INFO_A; 978 978 979 979 struct FILE_IN_CABINET_INFO_W { 980 980 PCWSTR NameInCabinet; 981 981 DWORD FileSize; 982 982 DWORD Win32Error; 983 983 WORD DosDate; 984 984 WORD DosTime; 985 985 WORD DosAttribs; 986 - WCHAR FullTargetName[MAX_PATH]; 986 + WCHAR[MAX_PATH] FullTargetName; 987 987 } 988 988 alias FILE_IN_CABINET_INFO_W* PFILE_IN_CABINET_INFO_W; 989 989 990 990 struct SP_FILE_COPY_PARAMS_A { 991 991 DWORD cbSize = SP_FILE_COPY_PARAMS_A.sizeof; 992 992 HSPFILEQ QueueHandle; 993 993 PCSTR SourceRootPath; ................................................................................ 1035 1035 } 1036 1036 alias SP_DEVICE_INTERFACE_DATA* PSP_DEVICE_INTERFACE_DATA; 1037 1037 deprecated alias SP_DEVICE_INTERFACE_DATA SP_INTERFACE_DEVICE_DATA; 1038 1038 deprecated alias SP_DEVICE_INTERFACE_DATA* PSP_INTERFACE_DEVICE_DATA; 1039 1039 1040 1040 struct SP_DEVICE_INTERFACE_DETAIL_DATA_A { 1041 1041 DWORD cbSize = SP_DEVICE_INTERFACE_DETAIL_DATA_A.sizeof; 1042 - CHAR _DevicePath[1]; 1042 + CHAR[1] _DevicePath; 1043 1043 CHAR* DevicePath() { return _DevicePath.ptr; } 1044 1044 } 1045 1045 alias SP_DEVICE_INTERFACE_DETAIL_DATA_A* PSP_DEVICE_INTERFACE_DETAIL_DATA_A; 1046 1046 1047 1047 struct SP_DEVICE_INTERFACE_DETAIL_DATA_W { 1048 1048 DWORD cbSize = SP_DEVICE_INTERFACE_DETAIL_DATA_W.sizeof; 1049 - WCHAR _DevicePath[1]; 1049 + WCHAR[1] _DevicePath; 1050 1050 WCHAR* DevicePath() { return _DevicePath.ptr; } 1051 1051 } 1052 1052 alias SP_DEVICE_INTERFACE_DETAIL_DATA_W* PSP_DEVICE_INTERFACE_DETAIL_DATA_W; 1053 1053 1054 1054 deprecated alias SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA_A; 1055 1055 deprecated alias SP_DEVICE_INTERFACE_DETAIL_DATA_A* PSP_INTERFACE_DEVICE_DETAIL_DATA_A; 1056 1056 deprecated alias SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA_W; 1057 1057 deprecated alias SP_DEVICE_INTERFACE_DETAIL_DATA_W* PSP_INTERFACE_DEVICE_DETAIL_DATA_W; 1058 1058 1059 1059 struct SP_DEVINFO_LIST_DETAIL_DATA_A { 1060 1060 DWORD cbSize = SP_DEVINFO_LIST_DETAIL_DATA_A.sizeof; 1061 1061 GUID ClassGuid; 1062 1062 HANDLE RemoteMachineHandle; 1063 - CHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH]; 1063 + CHAR[SP_MAX_MACHINENAME_LENGTH] RemoteMachineName; 1064 1064 } 1065 1065 alias SP_DEVINFO_LIST_DETAIL_DATA_A* PSP_DEVINFO_LIST_DETAIL_DATA_A; 1066 1066 1067 1067 struct SP_DEVINFO_LIST_DETAIL_DATA_W { 1068 1068 DWORD cbSize = SP_DEVINFO_LIST_DETAIL_DATA_W.sizeof; 1069 1069 GUID ClassGuid; 1070 1070 HANDLE RemoteMachineHandle; 1071 - WCHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH]; 1071 + WCHAR[SP_MAX_MACHINENAME_LENGTH] RemoteMachineName; 1072 1072 } 1073 1073 alias SP_DEVINFO_LIST_DETAIL_DATA_W* PSP_DEVINFO_LIST_DETAIL_DATA_W; 1074 1074 1075 -extern(Windows) alias UINT function(PVOID,UINT,UINT_PTR,UINT_PTR) PSP_FILE_CALLBACK_A; 1076 -extern(Windows) alias UINT function(PVOID,UINT,UINT_PTR,UINT_PTR) PSP_FILE_CALLBACK_W; 1075 +extern(Windows) alias UINT function(PVOID, UINT, UINT_PTR, UINT_PTR) PSP_FILE_CALLBACK_A; 1076 +extern(Windows) alias UINT function(PVOID, UINT, UINT_PTR, UINT_PTR) PSP_FILE_CALLBACK_W; 1077 1077 1078 1078 struct SP_DEVINSTALL_PARAMS_A { 1079 1079 DWORD cbSize = SP_DEVINSTALL_PARAMS_A.sizeof; 1080 1080 DWORD Flags; 1081 1081 DWORD FlagsEx; 1082 1082 HWND hwndParent; 1083 1083 PSP_FILE_CALLBACK_A InstallMsgHandler; 1084 1084 PVOID InstallMsgHandlerContext; 1085 1085 HSPFILEQ FileQueue; 1086 1086 ULONG_PTR ClassInstallReserved; 1087 1087 DWORD Reserved; 1088 - CHAR DriverPath[MAX_PATH]; 1088 + CHAR[MAX_PATH] DriverPath; 1089 1089 } 1090 1090 alias SP_DEVINSTALL_PARAMS_A* PSP_DEVINSTALL_PARAMS_A; 1091 1091 1092 1092 struct SP_DEVINSTALL_PARAMS_W { 1093 1093 DWORD cbSize = SP_DEVINSTALL_PARAMS_W.sizeof; 1094 1094 DWORD Flags; 1095 1095 DWORD FlagsEx; 1096 1096 HWND hwndParent; 1097 1097 PSP_FILE_CALLBACK_W InstallMsgHandler; 1098 1098 PVOID InstallMsgHandlerContext; 1099 1099 HSPFILEQ FileQueue; 1100 1100 ULONG_PTR ClassInstallReserved; 1101 1101 DWORD Reserved; 1102 - WCHAR DriverPath[MAX_PATH]; 1102 + WCHAR[MAX_PATH] DriverPath; 1103 1103 } 1104 1104 alias SP_DEVINSTALL_PARAMS_W* PSP_DEVINSTALL_PARAMS_W; 1105 1105 1106 1106 struct SP_CLASSINSTALL_HEADER { 1107 1107 DWORD cbSize = SP_CLASSINSTALL_HEADER.sizeof; 1108 1108 DI_FUNCTION InstallFunction; 1109 1109 } ................................................................................ 1141 1141 SP_CLASSINSTALL_HEADER ClassInstallHeader; 1142 1142 DWORD Scope; 1143 1143 DWORD HwProfile; 1144 1144 } 1145 1145 alias SP_UNREMOVEDEVICE_PARAMS* PSP_UNREMOVEDEVICE_PARAMS; 1146 1146 1147 1147 struct SP_SELECTDEVICE_PARAMS_A { 1148 - SP_CLASSINSTALL_HEADER ClassInstallHeader; 1149 - CHAR Title[MAX_TITLE_LEN]; 1150 - CHAR Instructions[MAX_INSTRUCTION_LEN]; 1151 - CHAR ListLabel[MAX_LABEL_LEN]; 1152 - CHAR SubTitle[MAX_SUBTITLE_LEN]; 1153 - BYTE Reserved[2]; 1148 + SP_CLASSINSTALL_HEADER ClassInstallHeader; 1149 + CHAR[MAX_TITLE_LEN] Title; 1150 + CHAR[MAX_INSTRUCTION_LEN] Instructions; 1151 + CHAR[MAX_LABEL_LEN] ListLabel; 1152 + CHAR[MAX_SUBTITLE_LEN] SubTitle; 1153 + BYTE[2] Reserved; 1154 1154 } 1155 1155 alias SP_SELECTDEVICE_PARAMS_A* PSP_SELECTDEVICE_PARAMS_A; 1156 1156 1157 1157 struct SP_SELECTDEVICE_PARAMS_W { 1158 - SP_CLASSINSTALL_HEADER ClassInstallHeader; 1159 - WCHAR Title[MAX_TITLE_LEN]; 1160 - WCHAR Instructions[MAX_INSTRUCTION_LEN]; 1161 - WCHAR ListLabel[MAX_LABEL_LEN]; 1162 - WCHAR SubTitle[MAX_SUBTITLE_LEN]; 1158 + SP_CLASSINSTALL_HEADER ClassInstallHeader; 1159 + WCHAR[MAX_TITLE_LEN] Title; 1160 + WCHAR[MAX_INSTRUCTION_LEN] Instructions; 1161 + WCHAR[MAX_LABEL_LEN] ListLabel; 1162 + WCHAR[MAX_SUBTITLE_LEN] SubTitle; 1163 1163 } 1164 1164 alias SP_SELECTDEVICE_PARAMS_W* PSP_SELECTDEVICE_PARAMS_W; 1165 1165 1166 -extern(Windows) alias BOOL function(PVOID,DWORD) PDETECT_PROGRESS_NOTIFY; 1166 +extern(Windows) alias BOOL function(PVOID, DWORD) PDETECT_PROGRESS_NOTIFY; 1167 1167 1168 1168 struct SP_DETECTDEVICE_PARAMS { 1169 1169 SP_CLASSINSTALL_HEADER ClassInstallHeader; 1170 1170 PDETECT_PROGRESS_NOTIFY DetectProgressNotify; 1171 1171 PVOID ProgressNotifyParam; 1172 1172 } 1173 1173 alias SP_DETECTDEVICE_PARAMS* PSP_DETECTDEVICE_PARAMS; 1174 1174 1175 1175 struct SP_INSTALLWIZARD_DATA { 1176 1176 SP_CLASSINSTALL_HEADER ClassInstallHeader; 1177 1177 DWORD Flags; 1178 - HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES]; 1178 + HPROPSHEETPAGE[MAX_INSTALLWIZARD_DYNAPAGES] DynamicPages; 1179 1179 DWORD NumDynamicPages; 1180 1180 DWORD DynamicPageFlags; 1181 1181 DWORD PrivateFlags; 1182 1182 LPARAM PrivateData; 1183 1183 HWND hwndWizardDlg; 1184 1184 } 1185 1185 alias SP_INSTALLWIZARD_DATA* PSP_INSTALLWIZARD_DATA; 1186 1186 1187 1187 struct SP_NEWDEVICEWIZARD_DATA { 1188 1188 SP_CLASSINSTALL_HEADER ClassInstallHeader; 1189 1189 DWORD Flags; 1190 - HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES]; 1190 + HPROPSHEETPAGE[MAX_INSTALLWIZARD_DYNAPAGES] DynamicPages; 1191 1191 DWORD NumDynamicPages; 1192 1192 HWND hwndWizardDlg; 1193 1193 } 1194 1194 alias SP_NEWDEVICEWIZARD_DATA* PSP_NEWDEVICEWIZARD_DATA; 1195 1195 alias SP_NEWDEVICEWIZARD_DATA SP_ADDPROPERTYPAGE_DATA; 1196 1196 alias SP_NEWDEVICEWIZARD_DATA* PSP_ADDPROPERTYPAGE_DATA; 1197 1197 1198 1198 struct SP_TROUBLESHOOTER_PARAMS_A { 1199 1199 SP_CLASSINSTALL_HEADER ClassInstallHeader; 1200 - CHAR ChmFile[MAX_PATH]; 1201 - CHAR HtmlTroubleShooter[MAX_PATH]; 1200 + CHAR[MAX_PATH] ChmFile; 1201 + CHAR[MAX_PATH] HtmlTroubleShooter; 1202 1202 } 1203 1203 alias SP_TROUBLESHOOTER_PARAMS_A* PSP_TROUBLESHOOTER_PARAMS_A; 1204 1204 1205 1205 struct SP_TROUBLESHOOTER_PARAMS_W { 1206 1206 SP_CLASSINSTALL_HEADER ClassInstallHeader; 1207 - WCHAR ChmFile[MAX_PATH]; 1208 - WCHAR HtmlTroubleShooter[MAX_PATH]; 1207 + WCHAR[MAX_PATH] ChmFile; 1208 + WCHAR[MAX_PATH] HtmlTroubleShooter; 1209 1209 } 1210 1210 alias SP_TROUBLESHOOTER_PARAMS_W* PSP_TROUBLESHOOTER_PARAMS_W; 1211 1211 1212 1212 struct SP_POWERMESSAGEWAKE_PARAMS_A { 1213 1213 SP_CLASSINSTALL_HEADER ClassInstallHeader; 1214 - CHAR PowerMessageWake[LINE_LEN*2]; 1214 + CHAR[LINE_LEN*2] PowerMessageWake; 1215 1215 } 1216 1216 alias SP_POWERMESSAGEWAKE_PARAMS_A* PSP_POWERMESSAGEWAKE_PARAMS_A; 1217 1217 1218 1218 struct SP_POWERMESSAGEWAKE_PARAMS_W { 1219 1219 SP_CLASSINSTALL_HEADER ClassInstallHeader; 1220 - WCHAR PowerMessageWake[LINE_LEN*2]; 1220 + WCHAR[LINE_LEN*2] PowerMessageWake; 1221 1221 } 1222 1222 alias SP_POWERMESSAGEWAKE_PARAMS_W* PSP_POWERMESSAGEWAKE_PARAMS_W; 1223 1223 1224 1224 struct SP_DRVINFO_DATA_V2_A { 1225 - DWORD cbSize = SP_DRVINFO_DATA_V2_A.sizeof; 1226 - DWORD DriverType; 1227 - ULONG_PTR Reserved; 1228 - CHAR Description[LINE_LEN]; 1229 - CHAR MfgName[LINE_LEN]; 1230 - CHAR ProviderName[LINE_LEN]; 1231 - FILETIME DriverDate; 1232 - DWORDLONG DriverVersion; 1225 + DWORD cbSize = SP_DRVINFO_DATA_V2_A.sizeof; 1226 + DWORD DriverType; 1227 + ULONG_PTR Reserved; 1228 + CHAR[LINE_LEN] Description; 1229 + CHAR[LINE_LEN] MfgName; 1230 + CHAR[LINE_LEN] ProviderName; 1231 + FILETIME DriverDate; 1232 + DWORDLONG DriverVersion; 1233 1233 } 1234 1234 alias SP_DRVINFO_DATA_V2_A* PSP_DRVINFO_DATA_V2_A; 1235 1235 1236 1236 struct SP_DRVINFO_DATA_V2_W { 1237 - DWORD cbSize = SP_DRVINFO_DATA_V2_A.sizeof; 1238 - DWORD DriverType; 1239 - ULONG_PTR Reserved; 1240 - WCHAR Description[LINE_LEN]; 1241 - WCHAR MfgName[LINE_LEN]; 1242 - WCHAR ProviderName[LINE_LEN]; 1243 - FILETIME DriverDate; 1244 - DWORDLONG DriverVersion; 1237 + DWORD cbSize = SP_DRVINFO_DATA_V2_A.sizeof; 1238 + DWORD DriverType; 1239 + ULONG_PTR Reserved; 1240 + WCHAR[LINE_LEN] Description; 1241 + WCHAR[LINE_LEN] MfgName; 1242 + WCHAR[LINE_LEN] ProviderName; 1243 + FILETIME DriverDate; 1244 + DWORDLONG DriverVersion; 1245 1245 } 1246 1246 alias SP_DRVINFO_DATA_V2_W* PSP_DRVINFO_DATA_V2_W; 1247 1247 1248 1248 struct SP_DRVINFO_DATA_V1_A { 1249 - DWORD cbSize = SP_DRVINFO_DATA_V1_A.sizeof; 1250 - DWORD DriverType; 1251 - ULONG_PTR Reserved; 1252 - CHAR Description[LINE_LEN]; 1253 - CHAR MfgName[LINE_LEN]; 1254 - CHAR ProviderName[LINE_LEN]; 1249 + DWORD cbSize = SP_DRVINFO_DATA_V1_A.sizeof; 1250 + DWORD DriverType; 1251 + ULONG_PTR Reserved; 1252 + CHAR[LINE_LEN] Description; 1253 + CHAR[LINE_LEN] MfgName; 1254 + CHAR[LINE_LEN] ProviderName; 1255 1255 } 1256 1256 alias SP_DRVINFO_DATA_V1_A* PSP_DRVINFO_DATA_V1_A; 1257 1257 1258 1258 struct SP_DRVINFO_DATA_V1_W { 1259 - DWORD cbSize = SP_DRVINFO_DATA_V1_W.sizeof; 1260 - DWORD DriverType; 1261 - ULONG_PTR Reserved; 1262 - WCHAR Description[LINE_LEN]; 1263 - WCHAR MfgName[LINE_LEN]; 1264 - WCHAR ProviderName[LINE_LEN]; 1259 + DWORD cbSize = SP_DRVINFO_DATA_V1_W.sizeof; 1260 + DWORD DriverType; 1261 + ULONG_PTR Reserved; 1262 + WCHAR[LINE_LEN] Description; 1263 + WCHAR[LINE_LEN] MfgName; 1264 + WCHAR[LINE_LEN] ProviderName; 1265 1265 } 1266 1266 alias SP_DRVINFO_DATA_V1_W* PSP_DRVINFO_DATA_V1_W; 1267 1267 1268 1268 version (Unicode) { 1269 1269 alias SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_V1; 1270 1270 alias SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_V2; 1271 1271 } else { ................................................................................ 1287 1287 alias SP_DRVINFO_DATA_V2_A* PSP_DRVINFO_DATA_A; 1288 1288 alias SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_W; 1289 1289 alias SP_DRVINFO_DATA_V2_W* PSP_DRVINFO_DATA_W; 1290 1290 alias SP_DRVINFO_DATA_V2 SP_DRVINFO_DATA; 1291 1291 alias SP_DRVINFO_DATA_V2* PSP_DRVINFO_DATA; 1292 1292 } 1293 1293 1294 -extern(Windows) alias DWORD function(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINFO_DATA,PVOID) PSP_DETSIG_CMPPROC; 1294 +extern(Windows) alias DWORD function(HDEVINFO, PSP_DEVINFO_DATA, PSP_DEVINFO_DATA, PVOID) PSP_DETSIG_CMPPROC; 1295 1295 1296 1296 struct SP_DRVINFO_DETAIL_DATA_A { 1297 - DWORD cbSize = SP_DRVINFO_DETAIL_DATA_A.sizeof; 1298 - FILETIME InfDate; 1299 - DWORD CompatIDsOffset; 1300 - DWORD CompatIDsLength; 1301 - ULONG_PTR Reserved; 1302 - CHAR SectionName[LINE_LEN]; 1303 - CHAR InfFileName[MAX_PATH]; 1304 - CHAR DrvDescription[LINE_LEN]; 1305 - CHAR _HardwareID[1]; 1306 - CHAR* HardwareID() { return _HardwareID.ptr; } 1297 + DWORD cbSize = SP_DRVINFO_DETAIL_DATA_A.sizeof; 1298 + FILETIME InfDate; 1299 + DWORD CompatIDsOffset; 1300 + DWORD CompatIDsLength; 1301 + ULONG_PTR Reserved; 1302 + CHAR[LINE_LEN] SectionName; 1303 + CHAR[MAX_PATH] InfFileName; 1304 + CHAR[LINE_LEN] DrvDescription; 1305 + CHAR[1] _HardwareID; 1306 + CHAR* HardwareID() { return _HardwareID.ptr; } 1307 1307 } 1308 1308 alias SP_DRVINFO_DETAIL_DATA_A* PSP_DRVINFO_DETAIL_DATA_A; 1309 1309 1310 1310 struct SP_DRVINFO_DETAIL_DATA_W { 1311 - DWORD cbSize = SP_DRVINFO_DETAIL_DATA_W.sizeof; 1312 - FILETIME InfDate; 1313 - DWORD CompatIDsOffset; 1314 - DWORD CompatIDsLength; 1315 - ULONG_PTR Reserved; 1316 - WCHAR SectionName[LINE_LEN]; 1317 - WCHAR InfFileName[MAX_PATH]; 1318 - WCHAR DrvDescription[LINE_LEN]; 1319 - WCHAR _HardwareID[1]; 1320 - WCHAR* HardwareID() { return _HardwareID.ptr; } 1311 + DWORD cbSize = SP_DRVINFO_DETAIL_DATA_W.sizeof; 1312 + FILETIME InfDate; 1313 + DWORD CompatIDsOffset; 1314 + DWORD CompatIDsLength; 1315 + ULONG_PTR Reserved; 1316 + WCHAR[LINE_LEN] SectionName; 1317 + WCHAR[MAX_PATH] InfFileName; 1318 + WCHAR[LINE_LEN] DrvDescription; 1319 + WCHAR[1] _HardwareID; 1320 + WCHAR* HardwareID() { return _HardwareID.ptr; } 1321 1321 } 1322 1322 alias SP_DRVINFO_DETAIL_DATA_W* PSP_DRVINFO_DETAIL_DATA_W; 1323 1323 1324 1324 struct SP_DRVINSTALL_PARAMS { 1325 1325 DWORD cbSize = SP_DRVINSTALL_PARAMS.sizeof; 1326 1326 DWORD Rank; 1327 1327 DWORD Flags; ................................................................................ 1350 1350 HDEVINFO DeviceInfoSet; 1351 1351 PSP_DEVINFO_DATA DeviceInfoData; 1352 1352 } 1353 1353 alias SP_PROPSHEETPAGE_REQUEST* PSP_PROPSHEETPAGE_REQUEST; 1354 1354 1355 1355 struct SP_BACKUP_QUEUE_PARAMS_A { 1356 1356 DWORD cbSize = SP_BACKUP_QUEUE_PARAMS_A.sizeof; 1357 - CHAR FullInfPath[MAX_PATH]; 1358 - INT FilenameOffset; 1357 + CHAR[MAX_PATH] FullInfPath; 1358 + INT FilenameOffset; 1359 1359 } 1360 1360 alias SP_BACKUP_QUEUE_PARAMS_A* PSP_BACKUP_QUEUE_PARAMS_A; 1361 1361 1362 1362 struct SP_BACKUP_QUEUE_PARAMS_W { 1363 1363 DWORD cbSize = SP_BACKUP_QUEUE_PARAMS_W.sizeof; 1364 - WCHAR FullInfPath[MAX_PATH]; 1365 - INT FilenameOffset; 1364 + WCHAR[MAX_PATH] FullInfPath; 1365 + INT FilenameOffset; 1366 1366 } 1367 1367 alias SP_BACKUP_QUEUE_PARAMS_W* PSP_BACKUP_QUEUE_PARAMS_W; 1368 1368 1369 1369 version (Unicode) { 1370 1370 alias SP_ORIGINAL_FILE_INFO_W SP_ORIGINAL_FILE_INFO; 1371 1371 alias SP_ORIGINAL_FILE_INFO_W* PSP_ORIGINAL_FILE_INFO; 1372 1372 alias FILEPATHS_W FILEPATHS; ................................................................................ 1431 1431 alias SP_DRVINFO_DETAIL_DATA_A SP_DRVINFO_DETAIL_DATA; 1432 1432 alias SP_DRVINFO_DETAIL_DATA_A* PSP_DRVINFO_DETAIL_DATA; 1433 1433 alias SP_BACKUP_QUEUE_PARAMS_A SP_BACKUP_QUEUE_PARAMS; 1434 1434 alias SP_BACKUP_QUEUE_PARAMS_A* PSP_BACKUP_QUEUE_PARAMS; 1435 1435 } 1436 1436 1437 1437 extern (Windows) { 1438 - BOOL SetupAddInstallSectionToDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,PVOID,UINT); 1439 - BOOL SetupAddInstallSectionToDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,PVOID,UINT); 1440 - BOOL SetupAddSectionToDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,UINT,PVOID,UINT); 1441 - BOOL SetupAddSectionToDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,UINT,PVOID,UINT); 1442 - BOOL SetupAddToDiskSpaceListA(HDSKSPC,PCSTR,LONGLONG,UINT,PVOID,UINT); 1443 - BOOL SetupAddToDiskSpaceListW(HDSKSPC,PCWSTR,LONGLONG,UINT,PVOID,UINT); 1444 - BOOL SetupAddToSourceListA(DWORD,PCSTR); 1445 - BOOL SetupAddToSourceListW(DWORD,PCWSTR); 1446 - BOOL SetupQuerySourceListA(DWORD,PCSTR**List,PUINT); 1447 - BOOL SetupQuerySourceListW(DWORD,PCWSTR**List,PUINT); 1448 - BOOL SetupFreeSourceListA(PCSTR**List,UINT); 1449 - BOOL SetupFreeSourceListW(PCWSTR**List,UINT); 1450 - BOOL SetupAdjustDiskSpaceListA(HDSKSPC,LPCSTR,LONGLONG,PVOID,UINT); 1451 - BOOL SetupAdjustDiskSpaceListW(HDSKSPC,LPCWSTR,LONGLONG,PVOID,UINT); 1452 - UINT SetupBackupErrorA(HWND,PCSTR,PCSTR,PCSTR,UINT,DWORD); 1453 - UINT SetupBackupErrorW(HWND,PCWSTR,PCWSTR,PCWSTR,UINT,DWORD); 1438 + BOOL SetupAddInstallSectionToDiskSpaceListA(HDSKSPC, HINF, HINF, PCSTR, PVOID, UINT); 1439 + BOOL SetupAddInstallSectionToDiskSpaceListW(HDSKSPC, HINF, HINF, PCWSTR, PVOID, UINT); 1440 + BOOL SetupAddSectionToDiskSpaceListA(HDSKSPC, HINF, HINF, PCSTR, UINT, PVOID, UINT); 1441 + BOOL SetupAddSectionToDiskSpaceListW(HDSKSPC, HINF, HINF, PCWSTR, UINT, PVOID, UINT); 1442 + BOOL SetupAddToDiskSpaceListA(HDSKSPC, PCSTR, LONGLONG, UINT, PVOID, UINT); 1443 + BOOL SetupAddToDiskSpaceListW(HDSKSPC, PCWSTR, LONGLONG, UINT, PVOID, UINT); 1444 + BOOL SetupAddToSourceListA(DWORD, PCSTR); 1445 + BOOL SetupAddToSourceListW(DWORD, PCWSTR); 1446 + BOOL SetupQuerySourceListA(DWORD, PCSTR**List, PUINT); 1447 + BOOL SetupQuerySourceListW(DWORD, PCWSTR**List, PUINT); 1448 + BOOL SetupFreeSourceListA(PCSTR**List, UINT); 1449 + BOOL SetupFreeSourceListW(PCWSTR**List, UINT); 1450 + BOOL SetupAdjustDiskSpaceListA(HDSKSPC, LPCSTR, LONGLONG, PVOID, UINT); 1451 + BOOL SetupAdjustDiskSpaceListW(HDSKSPC, LPCWSTR, LONGLONG, PVOID, UINT); 1452 + UINT SetupBackupErrorA(HWND, PCSTR, PCSTR, PCSTR, UINT, DWORD); 1453 + UINT SetupBackupErrorW(HWND, PCWSTR, PCWSTR, PCWSTR, UINT, DWORD); 1454 1454 BOOL SetupCancelTemporary(); 1455 1455 BOOL SetupCloseFileQueue(HSPFILEQ); 1456 1456 VOID SetupCloseInfFile(HINF); 1457 1457 VOID SetupCloseLog(); 1458 - BOOL SetupCommitFileQueueA(HWND,HSPFILEQ,PSP_FILE_CALLBACK_A,PVOID); 1459 - BOOL SetupCommitFileQueueW(HWND,HSPFILEQ,PSP_FILE_CALLBACK_W,PVOID); 1460 - UINT SetupCopyErrorA(HWND,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,UINT,DWORD,PSTR,DWORD,PDWORD); 1461 - UINT SetupCopyErrorW(HWND,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,UINT,DWORD,PWSTR,DWORD,PDWORD); 1462 - BOOL SetupCopyOEMInfA(PCSTR,PCSTR,DWORD,DWORD,PSTR,DWORD,PDWORD,PSTR*); 1463 - BOOL SetupCopyOEMInfW(PCWSTR,PCWSTR,DWORD,DWORD,PWSTR,DWORD,PDWORD,PWSTR*); 1464 - HDSKSPC SetupCreateDiskSpaceListA(PVOID,DWORD,UINT); 1465 - HDSKSPC SetupCreateDiskSpaceListW(PVOID,DWORD,UINT); 1466 - DWORD SetupDecompressOrCopyFileA(PCSTR,PCSTR,PUINT); 1467 - DWORD SetupDecompressOrCopyFileW(PCWSTR,PCWSTR,PUINT); 1468 - UINT SetupDefaultQueueCallbackA(PVOID,UINT,UINT_PTR,UINT_PTR); 1469 - UINT SetupDefaultQueueCallbackW(PVOID,UINT,UINT_PTR,UINT_PTR); 1470 - UINT SetupDeleteErrorA(HWND,PCSTR,PCSTR,UINT,DWORD); 1471 - UINT SetupDeleteErrorW(HWND,PCWSTR,PCWSTR,UINT,DWORD); 1458 + BOOL SetupCommitFileQueueA(HWND, HSPFILEQ, PSP_FILE_CALLBACK_A, PVOID); 1459 + BOOL SetupCommitFileQueueW(HWND, HSPFILEQ, PSP_FILE_CALLBACK_W, PVOID); 1460 + UINT SetupCopyErrorA(HWND, PCSTR, PCSTR, PCSTR, PCSTR, PCSTR, UINT, DWORD, PSTR, DWORD, PDWORD); 1461 + UINT SetupCopyErrorW(HWND, PCWSTR, PCWSTR, PCWSTR, PCWSTR, PCWSTR, UINT, DWORD, PWSTR, DWORD, PDWORD); 1462 + BOOL SetupCopyOEMInfA(PCSTR, PCSTR, DWORD, DWORD, PSTR, DWORD, PDWORD, PSTR*); 1463 + BOOL SetupCopyOEMInfW(PCWSTR, PCWSTR, DWORD, DWORD, PWSTR, DWORD, PDWORD, PWSTR*); 1464 + HDSKSPC SetupCreateDiskSpaceListA(PVOID, DWORD, UINT); 1465 + HDSKSPC SetupCreateDiskSpaceListW(PVOID, DWORD, UINT); 1466 + DWORD SetupDecompressOrCopyFileA(PCSTR, PCSTR, PUINT); 1467 + DWORD SetupDecompressOrCopyFileW(PCWSTR, PCWSTR, PUINT); 1468 + UINT SetupDefaultQueueCallbackA(PVOID, UINT, UINT_PTR, UINT_PTR); 1469 + UINT SetupDefaultQueueCallbackW(PVOID, UINT, UINT_PTR, UINT_PTR); 1470 + UINT SetupDeleteErrorA(HWND, PCSTR, PCSTR, UINT, DWORD); 1471 + UINT SetupDeleteErrorW(HWND, PCWSTR, PCWSTR, UINT, DWORD); 1472 1472 BOOL SetupDestroyDiskSpaceList(HDSKSPC); 1473 - BOOL SetupDiAskForOEMDisk(HDEVINFO,PSP_DEVINFO_DATA); 1474 - BOOL SetupDiBuildClassInfoList(DWORD,LPGUID,DWORD,PDWORD); 1475 - BOOL SetupDiBuildClassInfoListExA(DWORD,LPGUID,DWORD,PDWORD,PCSTR,PVOID); 1476 - BOOL SetupDiBuildClassInfoListExW(DWORD,LPGUID,DWORD,PDWORD,PCWSTR,PVOID); 1477 - BOOL SetupDiBuildDriverInfoList(HDEVINFO,PSP_DEVINFO_DATA,DWORD); 1478 - BOOL SetupDiCallClassInstaller(DI_FUNCTION,HDEVINFO,PSP_DEVINFO_DATA); 1473 + BOOL SetupDiAskForOEMDisk(HDEVINFO, PSP_DEVINFO_DATA); 1474 + BOOL SetupDiBuildClassInfoList(DWORD, LPGUID, DWORD, PDWORD); 1475 + BOOL SetupDiBuildClassInfoListExA(DWORD, LPGUID, DWORD, PDWORD, PCSTR, PVOID); 1476 + BOOL SetupDiBuildClassInfoListExW(DWORD, LPGUID, DWORD, PDWORD, PCWSTR, PVOID); 1477 + BOOL SetupDiBuildDriverInfoList(HDEVINFO, PSP_DEVINFO_DATA, DWORD); 1478 + BOOL SetupDiCallClassInstaller(DI_FUNCTION, HDEVINFO, PSP_DEVINFO_DATA); 1479 1479 BOOL SetupDiCancelDriverInfoSearch(HDEVINFO); 1480 - BOOL SetupDiChangeState(HDEVINFO,PSP_DEVINFO_DATA); 1481 - BOOL SetupDiClassGuidsFromNameA(PCSTR,LPGUID,DWORD,PDWORD); 1482 - BOOL SetupDiClassGuidsFromNameW(PCWSTR,LPGUID,DWORD,PDWORD); 1483 - BOOL SetupDiClassGuidsFromNameExA(PCSTR,LPGUID,DWORD,PDWORD,PCSTR,PVOID); 1484 - BOOL SetupDiClassGuidsFromNameExW(PCWSTR,LPGUID,DWORD,PDWORD,PCWSTR,PVOID); 1485 - BOOL SetupDiClassNameFromGuidA(CPtr!(GUID),PSTR,DWORD,PDWORD); 1486 - BOOL SetupDiClassNameFromGuidW(CPtr!(GUID),PWSTR,DWORD,PDWORD); 1487 - BOOL SetupDiClassNameFromGuidExA(CPtr!(GUID),PSTR,DWORD,PDWORD,PCSTR,PVOID); 1488 - BOOL SetupDiClassNameFromGuidExW(CPtr!(GUID),PWSTR,DWORD,PDWORD,PCWSTR,PVOID); 1489 - BOOL SetupDiCreateDeviceInfoA(HDEVINFO,PCSTR,CPtr!(GUID),PCSTR,HWND,DWORD,PSP_DEVINFO_DATA); 1490 - BOOL SetupDiCreateDeviceInfoW(HDEVINFO,PCWSTR,CPtr!(GUID),PCWSTR,HWND,DWORD,PSP_DEVINFO_DATA); 1491 - HDEVINFO SetupDiCreateDeviceInfoList(CPtr!(GUID),HWND); 1492 - HDEVINFO SetupDiCreateDeviceInfoListExA(CPtr!(GUID),HWND,PCSTR,PVOID); 1493 - HDEVINFO SetupDiCreateDeviceInfoListExW(CPtr!(GUID),HWND,PCWSTR,PVOID); 1494 - BOOL SetupDiCreateDeviceInterfaceA(HDEVINFO,PSP_DEVINFO_DATA,CPtr!(GUID),PCSTR,DWORD,PSP_DEVICE_INTERFACE_DATA); 1495 - BOOL SetupDiCreateDeviceInterfaceW(HDEVINFO,PSP_DEVINFO_DATA,CPtr!(GUID),PCWSTR,DWORD,PSP_DEVICE_INTERFACE_DATA); 1496 - HKEY SetupDiCreateDeviceInterfaceRegKeyA(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,DWORD,REGSAM,HINF,PCSTR); 1497 - HKEY SetupDiCreateDeviceInterfaceRegKeyW(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,DWORD,REGSAM,HINF,PCWSTR); 1498 - HKEY SetupDiCreateDevRegKeyA(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,DWORD,HINF,PCSTR); 1499 - HKEY SetupDiCreateDevRegKeyW(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,DWORD,HINF,PCWSTR); 1500 - BOOL SetupDiDeleteDeviceInfo(HDEVINFO,PSP_DEVINFO_DATA); 1501 - BOOL SetupDiDeleteDeviceInterfaceData(HDEVINFO,PSP_DEVICE_INTERFACE_DATA); 1502 - BOOL SetupDiDeleteDeviceInterfaceRegKey(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,DWORD); 1503 - BOOL SetupDiDeleteDevRegKey(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,DWORD); 1480 + BOOL SetupDiChangeState(HDEVINFO, PSP_DEVINFO_DATA); 1481 + BOOL SetupDiClassGuidsFromNameA(PCSTR, LPGUID, DWORD, PDWORD); 1482 + BOOL SetupDiClassGuidsFromNameW(PCWSTR, LPGUID, DWORD, PDWORD); 1483 + BOOL SetupDiClassGuidsFromNameExA(PCSTR, LPGUID, DWORD, PDWORD, PCSTR, PVOID); 1484 + BOOL SetupDiClassGuidsFromNameExW(PCWSTR, LPGUID, DWORD, PDWORD, PCWSTR, PVOID); 1485 + BOOL SetupDiClassNameFromGuidA(const(GUID)*, PSTR, DWORD, PDWORD); 1486 + BOOL SetupDiClassNameFromGuidW(const(GUID)*, PWSTR, DWORD, PDWORD); 1487 + BOOL SetupDiClassNameFromGuidExA(const(GUID)*, PSTR, DWORD, PDWORD, PCSTR, PVOID); 1488 + BOOL SetupDiClassNameFromGuidExW(const(GUID)*, PWSTR, DWORD, PDWORD, PCWSTR, PVOID); 1489 + BOOL SetupDiCreateDeviceInfoA(HDEVINFO, PCSTR, const(GUID)*, PCSTR, HWND, DWORD, PSP_DEVINFO_DATA); 1490 + BOOL SetupDiCreateDeviceInfoW(HDEVINFO, PCWSTR, const(GUID)*, PCWSTR, HWND, DWORD, PSP_DEVINFO_DATA); 1491 + HDEVINFO SetupDiCreateDeviceInfoList(const(GUID)*, HWND); 1492 + HDEVINFO SetupDiCreateDeviceInfoListExA(const(GUID)*, HWND, PCSTR, PVOID); 1493 + HDEVINFO SetupDiCreateDeviceInfoListExW(const(GUID)*, HWND, PCWSTR, PVOID); 1494 + BOOL SetupDiCreateDeviceInterfaceA(HDEVINFO, PSP_DEVINFO_DATA, const(GUID)*, PCSTR, DWORD, PSP_DEVICE_INTERFACE_DATA); 1495 + BOOL SetupDiCreateDeviceInterfaceW(HDEVINFO, PSP_DEVINFO_DATA, const(GUID)*, PCWSTR, DWORD, PSP_DEVICE_INTERFACE_DATA); 1496 + HKEY SetupDiCreateDeviceInterfaceRegKeyA(HDEVINFO, PSP_DEVICE_INTERFACE_DATA, DWORD, REGSAM, HINF, PCSTR); 1497 + HKEY SetupDiCreateDeviceInterfaceRegKeyW(HDEVINFO, PSP_DEVICE_INTERFACE_DATA, DWORD, REGSAM, HINF, PCWSTR); 1498 + HKEY SetupDiCreateDevRegKeyA(HDEVINFO, PSP_DEVINFO_DATA, DWORD, DWORD, DWORD, HINF, PCSTR); 1499 + HKEY SetupDiCreateDevRegKeyW(HDEVINFO, PSP_DEVINFO_DATA, DWORD, DWORD, DWORD, HINF, PCWSTR); 1500 + BOOL SetupDiDeleteDeviceInfo(HDEVINFO, PSP_DEVINFO_DATA); 1501 + BOOL SetupDiDeleteDeviceInterfaceData(HDEVINFO, PSP_DEVICE_INTERFACE_DATA); 1502 + BOOL SetupDiDeleteDeviceInterfaceRegKey(HDEVINFO, PSP_DEVICE_INTERFACE_DATA, DWORD); 1503 + BOOL SetupDiDeleteDevRegKey(HDEVINFO, PSP_DEVINFO_DATA, DWORD, DWORD, DWORD); 1504 1504 BOOL SetupDiDestroyClassImageList(PSP_CLASSIMAGELIST_DATA); 1505 1505 BOOL SetupDiDestroyDeviceInfoList(HDEVINFO); 1506 - BOOL SetupDiDestroyDriverInfoList(HDEVINFO,PSP_DEVINFO_DATA,DWORD); 1507 - INT SetupDiDrawMiniIcon(HDC,RECT,INT,DWORD); 1508 - BOOL SetupDiEnumDeviceInfo(HDEVINFO,DWORD,PSP_DEVINFO_DATA); 1509 - BOOL SetupDiEnumDeviceInterfaces(HDEVINFO,PSP_DEVINFO_DATA,CPtr!(GUID),DWORD,PSP_DEVICE_INTERFACE_DATA); 1510 - BOOL SetupDiEnumDriverInfoA(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,PSP_DRVINFO_DATA_A); 1511 - BOOL SetupDiEnumDriverInfoW(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,PSP_DRVINFO_DATA_W); 1512 - BOOL SetupDiGetActualSectionToInstallA(HINF,PCSTR,PSTR,DWORD,PDWORD,PSTR*); 1513 - BOOL SetupDiGetActualSectionToInstallW(HINF,PCWSTR,PWSTR,DWORD,PDWORD,PWSTR*); 1514 - BOOL SetupDiGetClassBitmapIndex(CPtr!(GUID),PINT); 1515 - BOOL SetupDiGetClassDescriptionA(CPtr!(GUID),PSTR,DWORD,PDWORD); 1516 - BOOL SetupDiGetClassDescriptionW(CPtr!(GUID),PWSTR,DWORD,PDWORD); 1517 - BOOL SetupDiGetClassDescriptionExA(CPtr!(GUID),PSTR,DWORD,PDWORD,PCSTR,PVOID); 1518 - BOOL SetupDiGetClassDescriptionExW(CPtr!(GUID),PWSTR,DWORD,PDWORD,PCWSTR,PVOID); 1519 - BOOL SetupDiGetClassDevPropertySheetsA(HDEVINFO,PSP_DEVINFO_DATA,LPPROPSHEETHEADERA,DWORD,PDWORD,DWORD); 1520 - BOOL SetupDiGetClassDevPropertySheetsW(HDEVINFO,PSP_DEVINFO_DATA,LPPROPSHEETHEADERW,DWORD,PDWORD,DWORD); 1521 - HDEVINFO SetupDiGetClassDevsA(CPtr!(GUID),PCSTR,HWND,DWORD); 1522 - HDEVINFO SetupDiGetClassDevsW(CPtr!(GUID),PCWSTR,HWND,DWORD); 1523 - HDEVINFO SetupDiGetClassDevsExA(CPtr!(GUID),PCSTR,HWND,DWORD,HDEVINFO,PCSTR,PVOID); 1524 - HDEVINFO SetupDiGetClassDevsExW(CPtr!(GUID),PCWSTR,HWND,DWORD,HDEVINFO,PCWSTR,PVOID); 1525 - BOOL SetupDiGetClassImageIndex(PSP_CLASSIMAGELIST_DATA,CPtr!(GUID),PINT); 1506 + BOOL SetupDiDestroyDriverInfoList(HDEVINFO, PSP_DEVINFO_DATA, DWORD); 1507 + INT SetupDiDrawMiniIcon(HDC, RECT, INT, DWORD); 1508 + BOOL SetupDiEnumDeviceInfo(HDEVINFO, DWORD, PSP_DEVINFO_DATA); 1509 + BOOL SetupDiEnumDeviceInterfaces(HDEVINFO, PSP_DEVINFO_DATA, const(GUID)*, DWORD, PSP_DEVICE_INTERFACE_DATA); 1510 + BOOL SetupDiEnumDriverInfoA(HDEVINFO, PSP_DEVINFO_DATA, DWORD, DWORD, PSP_DRVINFO_DATA_A); 1511 + BOOL SetupDiEnumDriverInfoW(HDEVINFO, PSP_DEVINFO_DATA, DWORD, DWORD, PSP_DRVINFO_DATA_W); 1512 + BOOL SetupDiGetActualSectionToInstallA(HINF, PCSTR, PSTR, DWORD, PDWORD, PSTR*); 1513 + BOOL SetupDiGetActualSectionToInstallW(HINF, PCWSTR, PWSTR, DWORD, PDWORD, PWSTR*); 1514 + BOOL SetupDiGetClassBitmapIndex(const(GUID)*, PINT); 1515 + BOOL SetupDiGetClassDescriptionA(const(GUID)*, PSTR, DWORD, PDWORD); 1516 + BOOL SetupDiGetClassDescriptionW(const(GUID)*, PWSTR, DWORD, PDWORD); 1517 + BOOL SetupDiGetClassDescriptionExA(const(GUID)*, PSTR, DWORD, PDWORD, PCSTR, PVOID); 1518 + BOOL SetupDiGetClassDescriptionExW(const(GUID)*, PWSTR, DWORD, PDWORD, PCWSTR, PVOID); 1519 + BOOL SetupDiGetClassDevPropertySheetsA(HDEVINFO, PSP_DEVINFO_DATA, LPPROPSHEETHEADERA, DWORD, PDWORD, DWORD); 1520 + BOOL SetupDiGetClassDevPropertySheetsW(HDEVINFO, PSP_DEVINFO_DATA, LPPROPSHEETHEADERW, DWORD, PDWORD, DWORD); 1521 + HDEVINFO SetupDiGetClassDevsA(const(GUID)*, PCSTR, HWND, DWORD); 1522 + HDEVINFO SetupDiGetClassDevsW(const(GUID)*, PCWSTR, HWND, DWORD); 1523 + HDEVINFO SetupDiGetClassDevsExA(const(GUID)*, PCSTR, HWND, DWORD, HDEVINFO, PCSTR, PVOID); 1524 + HDEVINFO SetupDiGetClassDevsExW(const(GUID)*, PCWSTR, HWND, DWORD, HDEVINFO, PCWSTR, PVOID); 1525 + BOOL SetupDiGetClassImageIndex(PSP_CLASSIMAGELIST_DATA, const(GUID)*, PINT); 1526 1526 BOOL SetupDiGetClassImageList(PSP_CLASSIMAGELIST_DATA); 1527 - BOOL SetupDiGetClassImageListExA(PSP_CLASSIMAGELIST_DATA,PCSTR,PVOID); 1528 - BOOL SetupDiGetClassImageListExW(PSP_CLASSIMAGELIST_DATA,PCWSTR,PVOID); 1529 - BOOL SetupDiGetClassInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_CLASSINSTALL_HEADER,DWORD,PDWORD); 1530 - BOOL SetupDiGetClassInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_CLASSINSTALL_HEADER,DWORD,PDWORD); 1531 - BOOL SetupDiGetClassRegistryPropertyA(LPGUID,DWORD,PDWORD,PBYTE,DWORD,PDWORD,PCSTR,PVOID); 1532 - BOOL SetupDiGetClassRegistryPropertyW(LPGUID,DWORD,PDWORD,PBYTE,DWORD,PDWORD,PCWSTR,PVOID); 1533 - BOOL SetupDiGetDeviceInfoListClass(HDEVINFO,LPGUID); 1534 - BOOL SetupDiGetDeviceInfoListDetailA(HDEVINFO,PSP_DEVINFO_LIST_DETAIL_DATA_A); 1535 - BOOL SetupDiGetDeviceInfoListDetailW(HDEVINFO,PSP_DEVINFO_LIST_DETAIL_DATA_W); 1536 - BOOL SetupDiGetDeviceInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINSTALL_PARAMS_A); 1537 - BOOL SetupDiGetDeviceInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINSTALL_PARAMS_W); 1538 - BOOL SetupDiGetDeviceInstanceIdA(HDEVINFO,PSP_DEVINFO_DATA,PSTR,DWORD,PDWORD); 1539 - BOOL SetupDiGetDeviceInstanceIdW(HDEVINFO,PSP_DEVINFO_DATA,PWSTR,DWORD,PDWORD); 1540 - BOOL SetupDiGetDeviceInterfaceAlias(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,CPtr!(GUID),PSP_DEVICE_INTERFACE_DATA); 1541 - BOOL SetupDiGetDeviceInterfaceDetailA(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,PSP_DEVICE_INTERFACE_DETAIL_DATA_A,DWORD,PDWORD,PSP_DEVINFO_DATA); 1542 - BOOL SetupDiGetDeviceInterfaceDetailW(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,PSP_DEVICE_INTERFACE_DETAIL_DATA_W,DWORD,PDWORD,PSP_DEVINFO_DATA); 1543 - BOOL SetupDiGetDeviceRegistryPropertyA(HDEVINFO,PSP_DEVINFO_DATA,DWORD,PDWORD,PBYTE,DWORD,PDWORD); 1544 - BOOL SetupDiGetDeviceRegistryPropertyW(HDEVINFO,PSP_DEVINFO_DATA,DWORD,PDWORD,PBYTE,DWORD,PDWORD); 1545 - BOOL SetupDiGetDriverInfoDetailA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A,PSP_DRVINFO_DETAIL_DATA_A,DWORD,PDWORD); 1546 - BOOL SetupDiGetDriverInfoDetailW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W,PSP_DRVINFO_DETAIL_DATA_W,DWORD,PDWORD); 1547 - BOOL SetupDiGetDriverInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A,PSP_DRVINSTALL_PARAMS); 1548 - BOOL SetupDiGetDriverInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W,PSP_DRVINSTALL_PARAMS); 1549 - BOOL SetupDiGetHwProfileFriendlyNameA(DWORD,PSTR,DWORD,PDWORD); 1550 - BOOL SetupDiGetHwProfileFriendlyNameExA(DWORD,PSTR,DWORD,PDWORD,PCSTR,PVOID); 1551 - BOOL SetupDiGetHwProfileFriendlyNameExW(DWORD,PWSTR,DWORD,PDWORD,PCWSTR,PVOID); 1552 - BOOL SetupDiGetHwProfileFriendlyNameW(DWORD,PWSTR,DWORD,PDWORD); 1553 - BOOL SetupDiGetHwProfileList(PDWORD,DWORD,PDWORD,PDWORD); 1554 - BOOL SetupDiGetHwProfileListExA(PDWORD,DWORD,PDWORD,PDWORD,PCSTR,PVOID); 1555 - BOOL SetupDiGetHwProfileListExW(PDWORD,DWORD,PDWORD,PDWORD,PCWSTR,PVOID); 1556 - BOOL SetupDiGetINFClassA(PCSTR,LPGUID,PSTR,DWORD,PDWORD); 1557 - BOOL SetupDiGetINFClassW(PCWSTR,LPGUID,PWSTR,DWORD,PDWORD); 1558 - BOOL SetupDiGetSelectedDevice(HDEVINFO,PSP_DEVINFO_DATA); 1559 - BOOL SetupDiGetSelectedDriverA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A); 1560 - BOOL SetupDiGetSelectedDriverW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W); 1561 - HPROPSHEETPAGE SetupDiGetWizardage(HDEVINFO,PSP_DEVINFO_DATA,PSP_INSTALLWIZARD_DATA,DWORD,DWORD); 1562 - BOOL SetupDiInstallClassA(HWND,PCSTR,DWORD,HSPFILEQ); 1563 - BOOL SetupDiInstallClassW(HWND,PCWSTR,DWORD,HSPFILEQ); 1564 - BOOL SetupDiInstallClassExA(HWND,PCSTR,DWORD,HSPFILEQ,CPtr!(GUID),PVOID,PVOID); 1565 - BOOL SetupDiInstallClassExW(HWND,PCWSTR,DWORD,HSPFILEQ,CPtr!(GUID),PVOID,PVOID); 1566 - BOOL SetupDiInstallDevice(HDEVINFO,PSP_DEVINFO_DATA); 1567 - BOOL SetupDiInstallDeviceInterfaces(HDEVINFO,PSP_DEVINFO_DATA); 1568 - BOOL SetupDiInstallDriverFiles(HDEVINFO,PSP_DEVINFO_DATA); 1569 - BOOL SetupDiLoadClassIcon(CPtr!(GUID),HICON*,PINT); 1570 - BOOL SetupDiMoveDuplicateDevice(HDEVINFO,PSP_DEVINFO_DATA); 1571 - HKEY SetupDiOpenClassRegKey(CPtr!(GUID),REGSAM); 1572 - HKEY SetupDiOpenClassRegKeyExA(CPtr!(GUID),REGSAM,DWORD,PCSTR,PVOID); 1573 - HKEY SetupDiOpenClassRegKeyExW(CPtr!(GUID),REGSAM,DWORD,PCWSTR,PVOID); 1574 - BOOL SetupDiOpenDeviceInfoA(HDEVINFO,PCSTR,HWND,DWORD,PSP_DEVINFO_DATA); 1575 - BOOL SetupDiOpenDeviceInfoW(HDEVINFO,PCWSTR,HWND,DWORD,PSP_DEVINFO_DATA); 1576 - BOOL SetupDiOpenDeviceInterfaceA(HDEVINFO,PCSTR,DWORD,PSP_DEVICE_INTERFACE_DATA); 1577 - BOOL SetupDiOpenDeviceInterfaceW(HDEVINFO,PCWSTR,DWORD,PSP_DEVICE_INTERFACE_DATA); 1578 - HKEY SetupDiOpenDeviceInterfaceRegKey(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,DWORD,REGSAM); 1579 - HKEY SetupDiOpenDevRegKey(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,DWORD,REGSAM); 1580 - BOOL SetupDiRegisterCoDeviceInstallers(HDEVINFO,PSP_DEVINFO_DATA); 1581 - BOOL SetupDiRegisterDeviceInfo(HDEVINFO,PSP_DEVINFO_DATA,DWORD,PSP_DETSIG_CMPPROC,PVOID,PSP_DEVINFO_DATA); 1582 - BOOL SetupDiRemoveDevice(HDEVINFO,PSP_DEVINFO_DATA); 1583 - BOOL SetupDiRemoveDeviceInterface(HDEVINFO,PSP_DEVICE_INTERFACE_DATA); 1584 - BOOL SetupDiSelectBestCompatDrv(HDEVINFO,PSP_DEVINFO_DATA); 1585 - BOOL SetupDiSelectDevice(HDEVINFO,PSP_DEVINFO_DATA); 1586 - BOOL SetupDiSelectOEMDrv(HWND,HDEVINFO,PSP_DEVINFO_DATA); 1587 - BOOL SetupDiSetClassInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_CLASSINSTALL_HEADER,DWORD); 1588 - BOOL SetupDiSetClassInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_CLASSINSTALL_HEADER,DWORD); 1589 - BOOL SetupDiSetClassRegistryPropertyA(LPGUID,DWORD,CPtr!(BYTE),DWORD,PCSTR,PVOID); 1590 - BOOL SetupDiSetClassRegistryPropertyW(LPGUID,DWORD,CPtr!(BYTE),DWORD,PCWSTR,PVOID); 1591 - BOOL SetupDiSetDeviceInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINSTALL_PARAMS_A); 1592 - BOOL SetupDiSetDeviceInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINSTALL_PARAMS_W); 1593 - BOOL SetupDiSetDeviceRegistryPropertyA(HDEVINFO,PSP_DEVINFO_DATA,DWORD,CPtr!(BYTE),DWORD); 1594 - BOOL SetupDiSetDeviceRegistryPropertyW(HDEVINFO,PSP_DEVINFO_DATA,DWORD,CPtr!(BYTE),DWORD); 1595 - BOOL SetupDiSetDriverInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A,PSP_DRVINSTALL_PARAMS); 1596 - BOOL SetupDiSetDriverInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W,PSP_DRVINSTALL_PARAMS); 1597 - BOOL SetupDiSetSelectedDevice(HDEVINFO,PSP_DEVINFO_DATA); 1598 - BOOL SetupDiSetSelectedDriverA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A); 1599 - BOOL SetupDiSetSelectedDriverW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W); 1600 - BOOL SetupDiUnremoveDevice(HDEVINFO,PSP_DEVINFO_DATA); 1601 - HDSKSPC SetupDuplicateDiskSpaceListA(HDSKSPC,PVOID,DWORD,UINT); 1602 - HDSKSPC SetupDuplicateDiskSpaceListW(HDSKSPC,PVOID,DWORD,UINT); 1603 - BOOL SetupFindFirstLineA(HINF,PCSTR,PCSTR,PINFCONTEXT); 1604 - BOOL SetupFindFirstLineW(HINF,PCWSTR,PCWSTR,PINFCONTEXT); 1605 - BOOL SetupFindNextLine(PINFCONTEXT,PINFCONTEXT); 1606 - BOOL SetupFindNextMatchLineA(PINFCONTEXT,PCSTR,PINFCONTEXT); 1607 - BOOL SetupFindNextMatchLineW(PINFCONTEXT,PCWSTR,PINFCONTEXT); 1608 - BOOL SetupFreeA(PCSTR**,UINT); 1609 - BOOL SetupFreeW(PCWSTR**,UINT); 1610 - BOOL SetupGetBackupInformationA(HSPFILEQ,PSP_BACKUP_QUEUE_PARAMS_A); 1611 - BOOL SetupGetBackupInformationW(HSPFILEQ,PSP_BACKUP_QUEUE_PARAMS_W); 1612 - BOOL SetupGetBinaryField(PINFCONTEXT,DWORD,PBYTE,DWORD,LPDWORD); 1527 + BOOL SetupDiGetClassImageListExA(PSP_CLASSIMAGELIST_DATA, PCSTR, PVOID); 1528 + BOOL SetupDiGetClassImageListExW(PSP_CLASSIMAGELIST_DATA, PCWSTR, PVOID); 1529 + BOOL SetupDiGetClassInstallParamsA(HDEVINFO, PSP_DEVINFO_DATA, PSP_CLASSINSTALL_HEADER, DWORD, PDWORD); 1530 + BOOL SetupDiGetClassInstallParamsW(HDEVINFO, PSP_DEVINFO_DATA, PSP_CLASSINSTALL_HEADER, DWORD, PDWORD); 1531 + BOOL SetupDiGetClassRegistryPropertyA(LPGUID, DWORD, PDWORD, PBYTE, DWORD, PDWORD, PCSTR, PVOID); 1532 + BOOL SetupDiGetClassRegistryPropertyW(LPGUID, DWORD, PDWORD, PBYTE, DWORD, PDWORD, PCWSTR, PVOID); 1533 + BOOL SetupDiGetDeviceInfoListClass(HDEVINFO, LPGUID); 1534 + BOOL SetupDiGetDeviceInfoListDetailA(HDEVINFO, PSP_DEVINFO_LIST_DETAIL_DATA_A); 1535 + BOOL SetupDiGetDeviceInfoListDetailW(HDEVINFO, PSP_DEVINFO_LIST_DETAIL_DATA_W); 1536 + BOOL SetupDiGetDeviceInstallParamsA(HDEVINFO, PSP_DEVINFO_DATA, PSP_DEVINSTALL_PARAMS_A); 1537 + BOOL SetupDiGetDeviceInstallParamsW(HDEVINFO, PSP_DEVINFO_DATA, PSP_DEVINSTALL_PARAMS_W); 1538 + BOOL SetupDiGetDeviceInstanceIdA(HDEVINFO, PSP_DEVINFO_DATA, PSTR, DWORD, PDWORD); 1539 + BOOL SetupDiGetDeviceInstanceIdW(HDEVINFO, PSP_DEVINFO_DATA, PWSTR, DWORD, PDWORD); 1540 + BOOL SetupDiGetDeviceInterfaceAlias(HDEVINFO, PSP_DEVICE_INTERFACE_DATA, const(GUID)*, PSP_DEVICE_INTERFACE_DATA); 1541 + BOOL SetupDiGetDeviceInterfaceDetailA(HDEVINFO, PSP_DEVICE_INTERFACE_DATA, PSP_DEVICE_INTERFACE_DETAIL_DATA_A, DWORD, PDWORD, PSP_DEVINFO_DATA); 1542 + BOOL SetupDiGetDeviceInterfaceDetailW(HDEVINFO, PSP_DEVICE_INTERFACE_DATA, PSP_DEVICE_INTERFACE_DETAIL_DATA_W, DWORD, PDWORD, PSP_DEVINFO_DATA); 1543 + BOOL SetupDiGetDeviceRegistryPropertyA(HDEVINFO, PSP_DEVINFO_DATA, DWORD, PDWORD, PBYTE, DWORD, PDWORD); 1544 + BOOL SetupDiGetDeviceRegistryPropertyW(HDEVINFO, PSP_DEVINFO_DATA, DWORD, PDWORD, PBYTE, DWORD, PDWORD); 1545 + BOOL SetupDiGetDriverInfoDetailA(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_A, PSP_DRVINFO_DETAIL_DATA_A, DWORD, PDWORD); 1546 + BOOL SetupDiGetDriverInfoDetailW(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_W, PSP_DRVINFO_DETAIL_DATA_W, DWORD, PDWORD); 1547 + BOOL SetupDiGetDriverInstallParamsA(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_A, PSP_DRVINSTALL_PARAMS); 1548 + BOOL SetupDiGetDriverInstallParamsW(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_W, PSP_DRVINSTALL_PARAMS); 1549 + BOOL SetupDiGetHwProfileFriendlyNameA(DWORD, PSTR, DWORD, PDWORD); 1550 + BOOL SetupDiGetHwProfileFriendlyNameExA(DWORD, PSTR, DWORD, PDWORD, PCSTR, PVOID); 1551 + BOOL SetupDiGetHwProfileFriendlyNameExW(DWORD, PWSTR, DWORD, PDWORD, PCWSTR, PVOID); 1552 + BOOL SetupDiGetHwProfileFriendlyNameW(DWORD, PWSTR, DWORD, PDWORD); 1553 + BOOL SetupDiGetHwProfileList(PDWORD, DWORD, PDWORD, PDWORD); 1554 + BOOL SetupDiGetHwProfileListExA(PDWORD, DWORD, PDWORD, PDWORD, PCSTR, PVOID); 1555 + BOOL SetupDiGetHwProfileListExW(PDWORD, DWORD, PDWORD, PDWORD, PCWSTR, PVOID); 1556 + BOOL SetupDiGetINFClassA(PCSTR, LPGUID, PSTR, DWORD, PDWORD); 1557 + BOOL SetupDiGetINFClassW(PCWSTR, LPGUID, PWSTR, DWORD, PDWORD); 1558 + BOOL SetupDiGetSelectedDevice(HDEVINFO, PSP_DEVINFO_DATA); 1559 + BOOL SetupDiGetSelectedDriverA(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_A); 1560 + BOOL SetupDiGetSelectedDriverW(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_W); 1561 + HPROPSHEETPAGE SetupDiGetWizardage(HDEVINFO, PSP_DEVINFO_DATA, PSP_INSTALLWIZARD_DATA, DWORD, DWORD); 1562 + BOOL SetupDiInstallClassA(HWND, PCSTR, DWORD, HSPFILEQ); 1563 + BOOL SetupDiInstallClassW(HWND, PCWSTR, DWORD, HSPFILEQ); 1564 + BOOL SetupDiInstallClassExA(HWND, PCSTR, DWORD, HSPFILEQ, const(GUID)*, PVOID, PVOID); 1565 + BOOL SetupDiInstallClassExW(HWND, PCWSTR, DWORD, HSPFILEQ, const(GUID)*, PVOID, PVOID); 1566 + BOOL SetupDiInstallDevice(HDEVINFO, PSP_DEVINFO_DATA); 1567 + BOOL SetupDiInstallDeviceInterfaces(HDEVINFO, PSP_DEVINFO_DATA); 1568 + BOOL SetupDiInstallDriverFiles(HDEVINFO, PSP_DEVINFO_DATA); 1569 + BOOL SetupDiLoadClassIcon(const(GUID)*, HICON*, PINT); 1570 + BOOL SetupDiMoveDuplicateDevice(HDEVINFO, PSP_DEVINFO_DATA); 1571 + HKEY SetupDiOpenClassRegKey(const(GUID)*, REGSAM); 1572 + HKEY SetupDiOpenClassRegKeyExA(const(GUID)*, REGSAM, DWORD, PCSTR, PVOID); 1573 + HKEY SetupDiOpenClassRegKeyExW(const(GUID)*, REGSAM, DWORD, PCWSTR, PVOID); 1574 + BOOL SetupDiOpenDeviceInfoA(HDEVINFO, PCSTR, HWND, DWORD, PSP_DEVINFO_DATA); 1575 + BOOL SetupDiOpenDeviceInfoW(HDEVINFO, PCWSTR, HWND, DWORD, PSP_DEVINFO_DATA); 1576 + BOOL SetupDiOpenDeviceInterfaceA(HDEVINFO, PCSTR, DWORD, PSP_DEVICE_INTERFACE_DATA); 1577 + BOOL SetupDiOpenDeviceInterfaceW(HDEVINFO, PCWSTR, DWORD, PSP_DEVICE_INTERFACE_DATA); 1578 + HKEY SetupDiOpenDeviceInterfaceRegKey(HDEVINFO, PSP_DEVICE_INTERFACE_DATA, DWORD, REGSAM); 1579 + HKEY SetupDiOpenDevRegKey(HDEVINFO, PSP_DEVINFO_DATA, DWORD, DWORD, DWORD, REGSAM); 1580 + BOOL SetupDiRegisterCoDeviceInstallers(HDEVINFO, PSP_DEVINFO_DATA); 1581 + BOOL SetupDiRegisterDeviceInfo(HDEVINFO, PSP_DEVINFO_DATA, DWORD, PSP_DETSIG_CMPPROC, PVOID, PSP_DEVINFO_DATA); 1582 + BOOL SetupDiRemoveDevice(HDEVINFO, PSP_DEVINFO_DATA); 1583 + BOOL SetupDiRemoveDeviceInterface(HDEVINFO, PSP_DEVICE_INTERFACE_DATA); 1584 + BOOL SetupDiSelectBestCompatDrv(HDEVINFO, PSP_DEVINFO_DATA); 1585 + BOOL SetupDiSelectDevice(HDEVINFO, PSP_DEVINFO_DATA); 1586 + BOOL SetupDiSelectOEMDrv(HWND, HDEVINFO, PSP_DEVINFO_DATA); 1587 + BOOL SetupDiSetClassInstallParamsA(HDEVINFO, PSP_DEVINFO_DATA, PSP_CLASSINSTALL_HEADER, DWORD); 1588 + BOOL SetupDiSetClassInstallParamsW(HDEVINFO, PSP_DEVINFO_DATA, PSP_CLASSINSTALL_HEADER, DWORD); 1589 + BOOL SetupDiSetClassRegistryPropertyA(LPGUID, DWORD, const(BYTE)*, DWORD, PCSTR, PVOID); 1590 + BOOL SetupDiSetClassRegistryPropertyW(LPGUID, DWORD, const(BYTE)*, DWORD, PCWSTR, PVOID); 1591 + BOOL SetupDiSetDeviceInstallParamsA(HDEVINFO, PSP_DEVINFO_DATA, PSP_DEVINSTALL_PARAMS_A); 1592 + BOOL SetupDiSetDeviceInstallParamsW(HDEVINFO, PSP_DEVINFO_DATA, PSP_DEVINSTALL_PARAMS_W); 1593 + BOOL SetupDiSetDeviceRegistryPropertyA(HDEVINFO, PSP_DEVINFO_DATA, DWORD, const(BYTE)*, DWORD); 1594 + BOOL SetupDiSetDeviceRegistryPropertyW(HDEVINFO, PSP_DEVINFO_DATA, DWORD, const(BYTE)*, DWORD); 1595 + BOOL SetupDiSetDriverInstallParamsA(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_A, PSP_DRVINSTALL_PARAMS); 1596 + BOOL SetupDiSetDriverInstallParamsW(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_W, PSP_DRVINSTALL_PARAMS); 1597 + BOOL SetupDiSetSelectedDevice(HDEVINFO, PSP_DEVINFO_DATA); 1598 + BOOL SetupDiSetSelectedDriverA(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_A); 1599 + BOOL SetupDiSetSelectedDriverW(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_W); 1600 + BOOL SetupDiUnremoveDevice(HDEVINFO, PSP_DEVINFO_DATA); 1601 + HDSKSPC SetupDuplicateDiskSpaceListA(HDSKSPC, PVOID, DWORD, UINT); 1602 + HDSKSPC SetupDuplicateDiskSpaceListW(HDSKSPC, PVOID, DWORD, UINT); 1603 + BOOL SetupFindFirstLineA(HINF, PCSTR, PCSTR, PINFCONTEXT); 1604 + BOOL SetupFindFirstLineW(HINF, PCWSTR, PCWSTR, PINFCONTEXT); 1605 + BOOL SetupFindNextLine(PINFCONTEXT, PINFCONTEXT); 1606 + BOOL SetupFindNextMatchLineA(PINFCONTEXT, PCSTR, PINFCONTEXT); 1607 + BOOL SetupFindNextMatchLineW(PINFCONTEXT, PCWSTR, PINFCONTEXT); 1608 + BOOL SetupFreeA(PCSTR**, UINT); 1609 + BOOL SetupFreeW(PCWSTR**, UINT); 1610 + BOOL SetupGetBackupInformationA(HSPFILEQ, PSP_BACKUP_QUEUE_PARAMS_A); 1611 + BOOL SetupGetBackupInformationW(HSPFILEQ, PSP_BACKUP_QUEUE_PARAMS_W); 1612 + BOOL SetupGetBinaryField(PINFCONTEXT, DWORD, PBYTE, DWORD, LPDWORD); 1613 1613 DWORD SetupGetFieldCount(PINFCONTEXT); 1614 - DWORD SetupGetFileCompressionInfoA(PCSTR,PSTR*,PDWORD,PDWORD,PUINT); 1615 - DWORD SetupGetFileCompressionInfoW(PCWSTR,PWSTR*,PDWORD,PDWORD,PUINT); 1616 - BOOL SetupGetInfFileListA(PCSTR,DWORD,PSTR,DWORD,PDWORD); 1617 - BOOL SetupGetInfFileListW(PCWSTR,DWORD,PWSTR,DWORD,PDWORD); 1618 - BOOL SetupGetInfInformationA(LPCVOID,DWORD,PSP_INF_INFORMATION,DWORD,PDWORD); 1619 - BOOL SetupGetInfInformationW(LPCVOID,DWORD,PSP_INF_INFORMATION,DWORD,PDWORD); 1620 - BOOL SetupGetIntField(PINFCONTEXT,DWORD,PINT); 1621 - BOOL SetupGetLineByIndexA(HINF,PCSTR,DWORD,PINFCONTEXT); 1622 - BOOL SetupGetLineByIndexW(HINF,PCWSTR,DWORD,PINFCONTEXT); 1623 - LONG SetupGetLineCountA(HINF,PCSTR); 1624 - LONG SetupGetLineCountW(HINF,PCWSTR); 1625 - BOOL SetupGetLineTextA(PINFCONTEXT,HINF,PCSTR,PCSTR,PSTR,DWORD,PDWORD); 1626 - BOOL SetupGetLineTextW(PINFCONTEXT,HINF,PCWSTR,PCWSTR,PWSTR,DWORD,PDWORD); 1627 - BOOL SetupGetMultiSzFieldA(PINFCONTEXT,DWORD,PSTR,DWORD,LPDWORD); 1628 - BOOL SetupGetMultiSzFieldW(PINFCONTEXT,DWORD,PWSTR,DWORD,LPDWORD); 1629 - BOOL SetupGetSourceFileLocationA(HINF,PINFCONTEXT,PCSTR,PUINT,PSTR,DWORD,PDWORD); 1630 - BOOL SetupGetSourceFileLocationW(HINF,PINFCONTEXT,PCWSTR,PUINT,PWSTR,DWORD,PDWORD); 1631 - BOOL SetupGetSourceFileSizeA(HINF,PINFCONTEXT,PCSTR,PCSTR,PDWORD,UINT); 1632 - BOOL SetupGetSourceFileSizeW(HINF,PINFCONTEXT,PCWSTR,PCWSTR,PDWORD,UINT); 1633 - BOOL SetupGetSourceInfoA(HINF,UINT,UINT,PSTR,DWORD,PDWORD); 1634 - BOOL SetupGetSourceInfoW(HINF,UINT,UINT,PWSTR,DWORD,PDWORD); 1635 - BOOL SetupGetStringFieldA(PINFCONTEXT,DWORD,PSTR,DWORD,PDWORD); 1636 - BOOL SetupGetStringFieldW(PINFCONTEXT,DWORD,PWSTR,DWORD,PDWORD); 1637 - BOOL SetupGetTargetPathA(HINF,PINFCONTEXT,PCSTR,PSTR,DWORD,PDWORD); 1638 - BOOL SetupGetTargetPathW(HINF,PINFCONTEXT,PCWSTR,PWSTR,DWORD,PDWORD); 1614 + DWORD SetupGetFileCompressionInfoA(PCSTR, PSTR*, PDWORD, PDWORD, PUINT); 1615 + DWORD SetupGetFileCompressionInfoW(PCWSTR, PWSTR*, PDWORD, PDWORD, PUINT); 1616 + BOOL SetupGetInfFileListA(PCSTR, DWORD, PSTR, DWORD, PDWORD); 1617 + BOOL SetupGetInfFileListW(PCWSTR, DWORD, PWSTR, DWORD, PDWORD); 1618 + BOOL SetupGetInfInformationA(LPCVOID, DWORD, PSP_INF_INFORMATION, DWORD, PDWORD); 1619 + BOOL SetupGetInfInformationW(LPCVOID, DWORD, PSP_INF_INFORMATION, DWORD, PDWORD); 1620 + BOOL SetupGetIntField(PINFCONTEXT, DWORD, PINT); 1621 + BOOL SetupGetLineByIndexA(HINF, PCSTR, DWORD, PINFCONTEXT); 1622 + BOOL SetupGetLineByIndexW(HINF, PCWSTR, DWORD, PINFCONTEXT); 1623 + LONG SetupGetLineCountA(HINF, PCSTR); 1624 + LONG SetupGetLineCountW(HINF, PCWSTR); 1625 + BOOL SetupGetLineTextA(PINFCONTEXT, HINF, PCSTR, PCSTR, PSTR, DWORD, PDWORD); 1626 + BOOL SetupGetLineTextW(PINFCONTEXT, HINF, PCWSTR, PCWSTR, PWSTR, DWORD, PDWORD); 1627 + BOOL SetupGetMultiSzFieldA(PINFCONTEXT, DWORD, PSTR, DWORD, LPDWORD); 1628 + BOOL SetupGetMultiSzFieldW(PINFCONTEXT, DWORD, PWSTR, DWORD, LPDWORD); 1629 + BOOL SetupGetSourceFileLocationA(HINF, PINFCONTEXT, PCSTR, PUINT, PSTR, DWORD, PDWORD); 1630 + BOOL SetupGetSourceFileLocationW(HINF, PINFCONTEXT, PCWSTR, PUINT, PWSTR, DWORD, PDWORD); 1631 + BOOL SetupGetSourceFileSizeA(HINF, PINFCONTEXT, PCSTR, PCSTR, PDWORD, UINT); 1632 + BOOL SetupGetSourceFileSizeW(HINF, PINFCONTEXT, PCWSTR, PCWSTR, PDWORD, UINT); 1633 + BOOL SetupGetSourceInfoA(HINF, UINT, UINT, PSTR, DWORD, PDWORD); 1634 + BOOL SetupGetSourceInfoW(HINF, UINT, UINT, PWSTR, DWORD, PDWORD); 1635 + BOOL SetupGetStringFieldA(PINFCONTEXT, DWORD, PSTR, DWORD, PDWORD); 1636 + BOOL SetupGetStringFieldW(PINFCONTEXT, DWORD, PWSTR, DWORD, PDWORD); 1637 + BOOL SetupGetTargetPathA(HINF, PINFCONTEXT, PCSTR, PSTR, DWORD, PDWORD); 1638 + BOOL SetupGetTargetPathW(HINF, PINFCONTEXT, PCWSTR, PWSTR, DWORD, PDWORD); 1639 1639 PVOID SetupInitDefaultQueueCallback(HWND); 1640 - PVOID SetupInitDefaultQueueCallbackEx(HWND,HWND,UINT,DWORD,PVOID); 1641 - HSPFILELOG SetupInitializeFileLogA(PCSTR,DWORD); 1642 - HSPFILELOG SetupInitializeFileLogW(PCWSTR,DWORD); 1643 - BOOL SetupInstallFileA(HINF,PINFCONTEXT,PCSTR,PCSTR,PCSTR,DWORD,PSP_FILE_CALLBACK_A,PVOID); 1644 - BOOL SetupInstallFileW(HINF,PINFCONTEXT,PCWSTR,PCWSTR,PCWSTR,DWORD,PSP_FILE_CALLBACK_W,PVOID); 1645 - BOOL SetupInstallFileExA(HINF,PINFCONTEXT,PCSTR,PCSTR,PCSTR,DWORD,PSP_FILE_CALLBACK_A,PVOID,PBOOL); 1646 - BOOL SetupInstallFileExW(HINF,PINFCONTEXT,PCWSTR,PCWSTR,PCWSTR,DWORD,PSP_FILE_CALLBACK_W,PVOID,PBOOL); 1647 - BOOL SetupInstallFilesFromInfSectionA(HINF,HINF,HSPFILEQ,PCSTR,PCSTR,UINT); 1648 - BOOL SetupInstallFilesFromInfSectionW(HINF,HINF,HSPFILEQ,PCWSTR,PCWSTR,UINT); 1649 - BOOL SetupInstallFromInfSectionA(HWND,HINF,PCSTR,UINT,HKEY,PCSTR,UINT,PSP_FILE_CALLBACK_A,PVOID,HDEVINFO,PSP_DEVINFO_DATA); 1650 - BOOL SetupInstallFromInfSectionW(HWND,HINF,PCWSTR,UINT,HKEY,PCWSTR,UINT,PSP_FILE_CALLBACK_W,PVOID,HDEVINFO,PSP_DEVINFO_DATA); 1651 - BOOL SetupInstallServicesFromInfSectionA(HINF,PCSTR,DWORD); 1652 - BOOL SetupInstallServicesFromInfSectionW(HINF,PCWSTR,DWORD); 1653 - BOOL SetupInstallServicesFromInfSectionExA(HINF,PCSTR,DWORD,HDEVINFO,PSP_DEVINFO_DATA,PVOID,PVOID); 1654 - BOOL SetupInstallServicesFromInfSectionExW(HINF,PCWSTR,DWORD,HDEVINFO,PSP_DEVINFO_DATA,PVOID,PVOID); 1655 - BOOL SetupIterateCabinetA(PCSTR,DWORD,PSP_FILE_CALLBACK_A,PVOID); 1656 - BOOL SetupIterateCabinetW(PCWSTR,DWORD,PSP_FILE_CALLBACK_W,PVOID); 1657 - BOOL SetupLogErrorA(LPCSTR,LogSeverity); 1658 - BOOL SetupLogErrorW(LPCWSTR,LogSeverity); 1659 - BOOL SetupLogFileA(HSPFILELOG,PCSTR,PCSTR,PCSTR,DWORD,PCSTR,PCSTR,PCSTR,DWORD); 1660 - BOOL SetupLogFileW(HSPFILELOG,PCWSTR,PCWSTR,PCWSTR,DWORD,PCWSTR,PCWSTR,PCWSTR,DWORD); 1661 - BOOL SetupOpenAppendInfFileA(PCSTR,HINF,PUINT); 1662 - BOOL SetupOpenAppendInfFileW(PCWSTR,HINF,PUINT); 1640 + PVOID SetupInitDefaultQueueCallbackEx(HWND, HWND, UINT, DWORD, PVOID); 1641 + HSPFILELOG SetupInitializeFileLogA(PCSTR, DWORD); 1642 + HSPFILELOG SetupInitializeFileLogW(PCWSTR, DWORD); 1643 + BOOL SetupInstallFileA(HINF, PINFCONTEXT, PCSTR, PCSTR, PCSTR, DWORD, PSP_FILE_CALLBACK_A, PVOID); 1644 + BOOL SetupInstallFileW(HINF, PINFCONTEXT, PCWSTR, PCWSTR, PCWSTR, DWORD, PSP_FILE_CALLBACK_W, PVOID); 1645 + BOOL SetupInstallFileExA(HINF, PINFCONTEXT, PCSTR, PCSTR, PCSTR, DWORD, PSP_FILE_CALLBACK_A, PVOID, PBOOL); 1646 + BOOL SetupInstallFileExW(HINF, PINFCONTEXT, PCWSTR, PCWSTR, PCWSTR, DWORD, PSP_FILE_CALLBACK_W, PVOID, PBOOL); 1647 + BOOL SetupInstallFilesFromInfSectionA(HINF, HINF, HSPFILEQ, PCSTR, PCSTR, UINT); 1648 + BOOL SetupInstallFilesFromInfSectionW(HINF, HINF, HSPFILEQ, PCWSTR, PCWSTR, UINT); 1649 + BOOL SetupInstallFromInfSectionA(HWND, HINF, PCSTR, UINT, HKEY, PCSTR, UINT, PSP_FILE_CALLBACK_A, PVOID, HDEVINFO, PSP_DEVINFO_DATA); 1650 + BOOL SetupInstallFromInfSectionW(HWND, HINF, PCWSTR, UINT, HKEY, PCWSTR, UINT, PSP_FILE_CALLBACK_W, PVOID, HDEVINFO, PSP_DEVINFO_DATA); 1651 + BOOL SetupInstallServicesFromInfSectionA(HINF, PCSTR, DWORD); 1652 + BOOL SetupInstallServicesFromInfSectionW(HINF, PCWSTR, DWORD); 1653 + BOOL SetupInstallServicesFromInfSectionExA(HINF, PCSTR, DWORD, HDEVINFO, PSP_DEVINFO_DATA, PVOID, PVOID); 1654 + BOOL SetupInstallServicesFromInfSectionExW(HINF, PCWSTR, DWORD, HDEVINFO, PSP_DEVINFO_DATA, PVOID, PVOID); 1655 + BOOL SetupIterateCabinetA(PCSTR, DWORD, PSP_FILE_CALLBACK_A, PVOID); 1656 + BOOL SetupIterateCabinetW(PCWSTR, DWORD, PSP_FILE_CALLBACK_W, PVOID); 1657 + BOOL SetupLogErrorA(LPCSTR, LogSeverity); 1658 + BOOL SetupLogErrorW(LPCWSTR, LogSeverity); 1659 + BOOL SetupLogFileA(HSPFILELOG, PCSTR, PCSTR, PCSTR, DWORD, PCSTR, PCSTR, PCSTR, DWORD); 1660 + BOOL SetupLogFileW(HSPFILELOG, PCWSTR, PCWSTR, PCWSTR, DWORD, PCWSTR, PCWSTR, PCWSTR, DWORD); 1661 + BOOL SetupOpenAppendInfFileA(PCSTR, HINF, PUINT); 1662 + BOOL SetupOpenAppendInfFileW(PCWSTR, HINF, PUINT); 1663 1663 HSPFILEQ SetupOpenFileQueue(); 1664 - HINF SetupOpenInfFileA(PCSTR,PCSTR,DWORD,PUINT); 1665 - HINF SetupOpenInfFileW(PCWSTR,PCWSTR,DWORD,PUINT); 1664 + HINF SetupOpenInfFileA(PCSTR, PCSTR, DWORD, PUINT); 1665 + HINF SetupOpenInfFileW(PCWSTR, PCWSTR, DWORD, PUINT); 1666 1666 BOOL SetupOpenLog(BOOL); 1667 1667 HINF SetupOpenMasterInf(); 1668 - UINT SetupPromptForDiskA(HWND,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,DWORD,PSTR,DWORD,PDWORD); 1669 - UINT SetupPromptForDiskW(HWND,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,DWORD,PWSTR,DWORD,PDWORD); 1670 - INT SetupPromptReboot(HSPFILEQ,HWND,BOOL); 1671 - BOOL SetupQueryA(DWORD,PCSTR**,PUINT); 1672 - BOOL SetupQueryW(DWORD,PCWSTR**,PUINT); 1673 - BOOL SetupQueryDrivesInDiskSpaceListA(HDSKSPC,PSTR,DWORD,PDWORD); 1674 - BOOL SetupQueryDrivesInDiskSpaceListW(HDSKSPC,PWSTR,DWORD,PDWORD); 1675 - BOOL SetupQueryFileLogA(HSPFILELOG,PCSTR,PCSTR,SetupFileLogInfo,PSTR,DWORD,PDWORD); 1676 - BOOL SetupQueryFileLogW(HSPFILELOG,PCWSTR,PCWSTR,SetupFileLogInfo,PWSTR,DWORD,PDWORD); 1677 - BOOL SetupQueryInfFileInformationA(PSP_INF_INFORMATION,UINT,PSTR,DWORD,PDWORD); 1678 - BOOL SetupQueryInfFileInformationW(PSP_INF_INFORMATION,UINT,PWSTR,DWORD,PDWORD); 1679 - BOOL SetupQueryInfOriginalFileInformationA(PSP_INF_INFORMATION,UINT,PSP_ALTPLATFORM_INFO,PSP_ORIGINAL_FILE_INFO_A); 1680 - BOOL SetupQueryInfOriginalFileInformationW(PSP_INF_INFORMATION,UINT,PSP_ALTPLATFORM_INFO,PSP_ORIGINAL_FILE_INFO_W); 1681 - BOOL SetupQueryInfVersionInformationA(PSP_INF_INFORMATION,UINT,PSTR,PSTR,DWORD,PDWORD); 1682 - BOOL SetupQueryInfVersionInformationW(PSP_INF_INFORMATION,UINT,PCWSTR,PWSTR,DWORD,PDWORD); 1683 - BOOL SetupQuerySpaceRequiredOnDriveA(HDSKSPC,PCSTR,LONGLONG*,PVOID,UINT); 1684 - BOOL SetupQuerySpaceRequiredOnDriveW(HDSKSPC,PCWSTR,LONGLONG*,PVOID,UINT); 1685 - BOOL SetupQueueCopyA(HSPFILEQ,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,DWORD); 1686 - BOOL SetupQueueCopyW(HSPFILEQ,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,DWORD); 1668 + UINT SetupPromptForDiskA(HWND, PCSTR, PCSTR, PCSTR, PCSTR, PCSTR, DWORD, PSTR, DWORD, PDWORD); 1669 + UINT SetupPromptForDiskW(HWND, PCWSTR, PCWSTR, PCWSTR, PCWSTR, PCWSTR, DWORD, PWSTR, DWORD, PDWORD); 1670 + INT SetupPromptReboot(HSPFILEQ, HWND, BOOL); 1671 + BOOL SetupQueryA(DWORD, PCSTR**, PUINT); 1672 + BOOL SetupQueryW(DWORD, PCWSTR**, PUINT); 1673 + BOOL SetupQueryDrivesInDiskSpaceListA(HDSKSPC, PSTR, DWORD, PDWORD); 1674 + BOOL SetupQueryDrivesInDiskSpaceListW(HDSKSPC, PWSTR, DWORD, PDWORD); 1675 + BOOL SetupQueryFileLogA(HSPFILELOG, PCSTR, PCSTR, SetupFileLogInfo, PSTR, DWORD, PDWORD); 1676 + BOOL SetupQueryFileLogW(HSPFILELOG, PCWSTR, PCWSTR, SetupFileLogInfo, PWSTR, DWORD, PDWORD); 1677 + BOOL SetupQueryInfFileInformationA(PSP_INF_INFORMATION, UINT, PSTR, DWORD, PDWORD); 1678 + BOOL SetupQueryInfFileInformationW(PSP_INF_INFORMATION, UINT, PWSTR, DWORD, PDWORD); 1679 + BOOL SetupQueryInfOriginalFileInformationA(PSP_INF_INFORMATION, UINT, PSP_ALTPLATFORM_INFO, PSP_ORIGINAL_FILE_INFO_A); 1680 + BOOL SetupQueryInfOriginalFileInformationW(PSP_INF_INFORMATION, UINT, PSP_ALTPLATFORM_INFO, PSP_ORIGINAL_FILE_INFO_W); 1681 + BOOL SetupQueryInfVersionInformationA(PSP_INF_INFORMATION, UINT, PSTR, PSTR, DWORD, PDWORD); 1682 + BOOL SetupQueryInfVersionInformationW(PSP_INF_INFORMATION, UINT, PCWSTR, PWSTR, DWORD, PDWORD); 1683 + BOOL SetupQuerySpaceRequiredOnDriveA(HDSKSPC, PCSTR, LONGLONG*, PVOID, UINT); 1684 + BOOL SetupQuerySpaceRequiredOnDriveW(HDSKSPC, PCWSTR, LONGLONG*, PVOID, UINT); 1685 + BOOL SetupQueueCopyA(HSPFILEQ, PCSTR, PCSTR, PCSTR, PCSTR, PCSTR, PCSTR, PCSTR, DWORD); 1686 + BOOL SetupQueueCopyW(HSPFILEQ, PCWSTR, PCWSTR, PCWSTR, PCWSTR, PCWSTR, PCWSTR, PCWSTR, DWORD); 1687 1687 BOOL SetupQueueCopyIndirectA(PSP_FILE_COPY_PARAMS_A); 1688 1688 BOOL SetupQueueCopyIndirectW(PSP_FILE_COPY_PARAMS_W); 1689 - BOOL SetupQueueCopySectionA(HSPFILEQ,PCSTR,HINF,HINF,PCSTR,DWORD); 1690 - BOOL SetupQueueCopySectionW(HSPFILEQ,PCWSTR,HINF,HINF,PCWSTR,DWORD); 1691 - BOOL SetupQueueDefaultCopyA(HSPFILEQ,HINF,PCSTR,PCSTR,PCSTR,DWORD); 1692 - BOOL SetupQueueDefaultCopyW(HSPFILEQ,HINF,PCWSTR,PCWSTR,PCWSTR,DWORD); 1693 - BOOL SetupQueueDeleteA(HSPFILEQ,PCSTR,PCSTR); 1694 - BOOL SetupQueueDeleteW(HSPFILEQ,PCWSTR,PCWSTR); 1695 - BOOL SetupQueueDeleteSectionA(HSPFILEQ,HINF,HINF,PCSTR); 1696 - BOOL SetupQueueDeleteSectionW(HSPFILEQ,HINF,HINF,PCWSTR); 1697 - BOOL SetupQueueRenameA(HSPFILEQ,PCSTR,PCSTR,PCSTR,PCSTR); 1698 - BOOL SetupQueueRenameW(HSPFILEQ,PCWSTR,PCWSTR,PCWSTR,PCWSTR); 1699 - BOOL SetupQueueRenameSectionA(HSPFILEQ,HINF,HINF,PCSTR); 1700 - BOOL SetupQueueRenameSectionW(HSPFILEQ,HINF,HINF,PCWSTR); 1701 - BOOL SetupRemoveFileLogEntryA(HSPFILELOG,PCSTR,PCSTR); 1702 - BOOL SetupRemoveFileLogEntryW(HSPFILELOG,PCWSTR,PCWSTR); 1703 - BOOL SetupRemoveFromDiskSpaceListA(HDSKSPC,PCSTR,UINT,PVOID,UINT); 1704 - BOOL SetupRemoveFromDiskSpaceListW(HDSKSPC,PCWSTR,UINT,PVOID,UINT); 1705 - BOOL SetupRemoveFromSourceListA(DWORD,PCSTR); 1706 - BOOL SetupRemoveFromSourceListW(DWORD,PCWSTR); 1707 - BOOL SetupRemoveInstallSectionFromDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,PVOID,UINT); 1708 - BOOL SetupRemoveInstallSectionFromDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,PVOID,UINT); 1709 - BOOL SetupRemoveSectionFromDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,UINT,PVOID,UINT); 1710 - BOOL SetupRemoveSectionFromDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,UINT,PVOID,UINT); 1711 - UINT SetupRenameErrorA(HWND,PCSTR,PCSTR,PCSTR,UINT,DWORD); 1712 - UINT SetupRenameErrorW(HWND,PCWSTR,PCWSTR,PCWSTR,UINT,DWORD); 1713 - BOOL SetupScanFileQueueA(HSPFILEQ,DWORD,HWND,PSP_FILE_CALLBACK_A,PVOID,PDWORD); 1714 - BOOL SetupScanFileQueueW(HSPFILEQ,DWORD,HWND,PSP_FILE_CALLBACK_W,PVOID,PDWORD); 1715 - BOOL SetupSetDirectoryIdA(HINF,DWORD,PCSTR); 1716 - BOOL SetupSetDirectoryIdW(HINF,DWORD,PCWSTR); 1717 - BOOL SetupSetDirectoryIdExA(HINF,DWORD,PCSTR,DWORD,DWORD,PVOID); 1718 - BOOL SetupSetDirectoryIdExW(HINF,DWORD,PCWSTR,DWORD,DWORD,PVOID); 1719 - BOOL SetupSetFileQueueAlternatePlatformA(HSPFILEQ,PSP_ALTPLATFORM_INFO,PCSTR); 1720 - BOOL SetupSetFileQueueAlternatePlatformW(HSPFILEQ,PSP_ALTPLATFORM_INFO,PCWSTR); 1689 + BOOL SetupQueueCopySectionA(HSPFILEQ, PCSTR, HINF, HINF, PCSTR, DWORD); 1690 + BOOL SetupQueueCopySectionW(HSPFILEQ, PCWSTR, HINF, HINF, PCWSTR, DWORD); 1691 + BOOL SetupQueueDefaultCopyA(HSPFILEQ, HINF, PCSTR, PCSTR, PCSTR, DWORD); 1692 + BOOL SetupQueueDefaultCopyW(HSPFILEQ, HINF, PCWSTR, PCWSTR, PCWSTR, DWORD); 1693 + BOOL SetupQueueDeleteA(HSPFILEQ, PCSTR, PCSTR); 1694 + BOOL SetupQueueDeleteW(HSPFILEQ, PCWSTR, PCWSTR); 1695 + BOOL SetupQueueDeleteSectionA(HSPFILEQ, HINF, HINF, PCSTR); 1696 + BOOL SetupQueueDeleteSectionW(HSPFILEQ, HINF, HINF, PCWSTR); 1697 + BOOL SetupQueueRenameA(HSPFILEQ, PCSTR, PCSTR, PCSTR, PCSTR); 1698 + BOOL SetupQueueRenameW(HSPFILEQ, PCWSTR, PCWSTR, PCWSTR, PCWSTR); 1699 + BOOL SetupQueueRenameSectionA(HSPFILEQ, HINF, HINF, PCSTR); 1700 + BOOL SetupQueueRenameSectionW(HSPFILEQ, HINF, HINF, PCWSTR); 1701 + BOOL SetupRemoveFileLogEntryA(HSPFILELOG, PCSTR, PCSTR); 1702 + BOOL SetupRemoveFileLogEntryW(HSPFILELOG, PCWSTR, PCWSTR); 1703 + BOOL SetupRemoveFromDiskSpaceListA(HDSKSPC, PCSTR, UINT, PVOID, UINT); 1704 + BOOL SetupRemoveFromDiskSpaceListW(HDSKSPC, PCWSTR, UINT, PVOID, UINT); 1705 + BOOL SetupRemoveFromSourceListA(DWORD, PCSTR); 1706 + BOOL SetupRemoveFromSourceListW(DWORD, PCWSTR); 1707 + BOOL SetupRemoveInstallSectionFromDiskSpaceListA(HDSKSPC, HINF, HINF, PCSTR, PVOID, UINT); 1708 + BOOL SetupRemoveInstallSectionFromDiskSpaceListW(HDSKSPC, HINF, HINF, PCWSTR, PVOID, UINT); 1709 + BOOL SetupRemoveSectionFromDiskSpaceListA(HDSKSPC, HINF, HINF, PCSTR, UINT, PVOID, UINT); 1710 + BOOL SetupRemoveSectionFromDiskSpaceListW(HDSKSPC, HINF, HINF, PCWSTR, UINT, PVOID, UINT); 1711 + UINT SetupRenameErrorA(HWND, PCSTR, PCSTR, PCSTR, UINT, DWORD); 1712 + UINT SetupRenameErrorW(HWND, PCWSTR, PCWSTR, PCWSTR, UINT, DWORD); 1713 + BOOL SetupScanFileQueueA(HSPFILEQ, DWORD, HWND, PSP_FILE_CALLBACK_A, PVOID, PDWORD); 1714 + BOOL SetupScanFileQueueW(HSPFILEQ, DWORD, HWND, PSP_FILE_CALLBACK_W, PVOID, PDWORD); 1715 + BOOL SetupSetDirectoryIdA(HINF, DWORD, PCSTR); 1716 + BOOL SetupSetDirectoryIdW(HINF, DWORD, PCWSTR); 1717 + BOOL SetupSetDirectoryIdExA(HINF, DWORD, PCSTR, DWORD, DWORD, PVOID); 1718 + BOOL SetupSetDirectoryIdExW(HINF, DWORD, PCWSTR, DWORD, DWORD, PVOID); 1719 + BOOL SetupSetFileQueueAlternatePlatformA(HSPFILEQ, PSP_ALTPLATFORM_INFO, PCSTR); 1720 + BOOL SetupSetFileQueueAlternatePlatformW(HSPFILEQ, PSP_ALTPLATFORM_INFO, PCWSTR); 1721 1721 BOOL SetupSetPlatformPathOverrideA(PCSTR); 1722 1722 BOOL SetupSetPlatformPathOverrideW(PCWSTR); 1723 - BOOL SetupSetSourceListA(DWORD,PCSTR*,UINT); 1724 - BOOL SetupSetSourceListW(DWORD,PCWSTR*,UINT); 1723 + BOOL SetupSetSourceListA(DWORD, PCSTR*, UINT); 1724 + BOOL SetupSetSourceListW(DWORD, PCWSTR*, UINT); 1725 1725 VOID SetupTermDefaultQueueCallback(PVOID); 1726 1726 BOOL SetupTerminateFileLog(HSPFILELOG); 1727 1727 } 1728 1728 1729 1729 deprecated { 1730 1730 alias SetupDiCreateDeviceInterfaceW SetupDiCreateInterfaceDeviceW; 1731 1731 alias SetupDiCreateDeviceInterfaceRegKeyW SetupDiCreateInterfaceDeviceRegKeyW;

Modified src/win32/shellapi.d from [dbc32f4888561832] to [abc9e5a67da8d339].

5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * by Stewart Gordon * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.shellapi; 12 -pragma(lib, "shell32.lib"); 12 +pragma(lib, "shell32"); 13 13 14 14 private import win32.w32api, win32.windef, win32.basetyps; 15 15 16 16 enum : UINT { 17 17 ABE_LEFT, 18 18 ABE_TOP, 19 19 ABE_RIGHT, ................................................................................ 51 51 ABM_GETTASKBARPOS, 52 52 ABM_ACTIVATE, 53 53 ABM_GETAUTOHIDEBAR, 54 54 ABM_SETAUTOHIDEBAR, 55 55 ABM_WINDOWPOSCHANGED // = 9 56 56 } 57 57 58 -static if (WINVER >= 0x501) { 58 +static if (_WIN32_WINNT >= 0x501) { 59 59 const DWORD ABM_SETSTATE = 10; 60 60 } 61 61 62 62 enum : UINT { 63 63 ABN_STATECHANGE, 64 64 ABN_POSCHANGED, 65 65 ABN_FULLSCREENAPP, ................................................................................ 112 112 } 113 113 114 114 const DWORD 115 115 NIS_HIDDEN = 1, 116 116 NIS_SHAREDICON = 2; 117 117 118 118 const HINSTANCE 119 - SE_ERR_FNF = cast(HANDLE) 2, 120 - SE_ERR_PNF = cast(HANDLE) 3, 121 - SE_ERR_ACCESSDENIED = cast(HANDLE) 5, 122 - SE_ERR_OOM = cast(HANDLE) 8, 123 - SE_ERR_DLLNOTFOUND = cast(HANDLE) 32, 124 - SE_ERR_SHARE = cast(HANDLE) 26, 125 - SE_ERR_ASSOCINCOMPLETE = cast(HANDLE) 27, 126 - SE_ERR_DDETIMEOUT = cast(HANDLE) 28, 127 - SE_ERR_DDEFAIL = cast(HANDLE) 29, 128 - SE_ERR_DDEBUSY = cast(HANDLE) 30, 129 - SE_ERR_NOASSOC = cast(HANDLE) 31; 119 + SE_ERR_FNF = cast(HINSTANCE) 2, 120 + SE_ERR_PNF = cast(HINSTANCE) 3, 121 + SE_ERR_ACCESSDENIED = cast(HINSTANCE) 5, 122 + SE_ERR_OOM = cast(HINSTANCE) 8, 123 + SE_ERR_DLLNOTFOUND = cast(HINSTANCE) 32, 124 + SE_ERR_SHARE = cast(HINSTANCE) 26, 125 + SE_ERR_ASSOCINCOMPLETE = cast(HINSTANCE) 27, 126 + SE_ERR_DDETIMEOUT = cast(HINSTANCE) 28, 127 + SE_ERR_DDEFAIL = cast(HINSTANCE) 29, 128 + SE_ERR_DDEBUSY = cast(HINSTANCE) 30, 129 + SE_ERR_NOASSOC = cast(HINSTANCE) 31; 130 130 131 131 enum : UINT { 132 132 FO_MOVE = 1, 133 133 FO_COPY, 134 134 FO_DELETE, 135 135 FO_RENAME 136 136 } ................................................................................ 170 170 SHGFI_ATTRIBUTES = 0x000800, 171 171 SHGFI_ICONLOCATION = 0x001000, 172 172 SHGFI_EXETYPE = 0x002000, 173 173 SHGFI_SYSICONINDEX = 0x004000, 174 174 SHGFI_LINKOVERLAY = 0x008000, 175 175 SHGFI_SELECTED = 0x010000, 176 176 SHGFI_ATTR_SPECIFIED = 0x020000; 177 + 178 +static if (_WIN32_IE >= 0x500) { 179 + const uint 180 + SHGFI_ADDOVERLAYS = 0x000020, 181 + SHGFI_OVERLAYINDEX = 0x000040; 182 +} 177 183 178 184 const SHERB_NOCONFIRMATION = 1; 179 185 const SHERB_NOPROGRESSUI = 2; 180 186 const SHERB_NOSOUND = 4; 181 187 182 188 alias WORD FILEOP_FLAGS, PRINTEROP_FLAGS; 183 -alias HANDLE HDROP; 189 +mixin DECLARE_HANDLE!("HDROP"); 184 190 185 191 align(2): 186 192 187 193 struct APPBARDATA { 188 194 DWORD cbSize = APPBARDATA.sizeof; 189 195 HWND hWnd; 190 196 UINT uCallbackMessage; ................................................................................ 322 328 HICON hIcon; 323 329 int iIcon; 324 330 DWORD dwAttributes; 325 331 WCHAR[MAX_PATH] szDisplayName; 326 332 WCHAR[80] szTypeName; 327 333 } 328 334 329 -struct SHQUERYRBINFO { 335 +align(1) struct SHQUERYRBINFO { 330 336 DWORD cbSize = SHQUERYRBINFO.sizeof; 331 337 long i64Size; 332 338 long i64NumItems; 333 339 } 334 340 alias SHQUERYRBINFO* LPSHQUERYRBINFO; 335 341 336 342 extern (Windows) {

Modified src/win32/shldisp.d from [c1af51274ab1ba01] to [123bd0ae840278fd].

11 11 12 12 private import win32.unknwn, win32.windef, win32.wtypes; 13 13 14 14 // options for IAutoComplete2 15 15 const DWORD ACO_AUTOSUGGEST = 0x01; 16 16 17 17 interface IAutoComplete : IUnknown { 18 - HRESULT Init(HWND, IUnknown*, LPCOLESTR, LPCOLESTR); 18 + HRESULT Init(HWND, IUnknown, LPCOLESTR, LPCOLESTR); 19 19 HRESULT Enable(BOOL); 20 20 } 21 -alias IAutoComplete* LPAUTOCOMPLETE; 21 +alias IAutoComplete LPAUTOCOMPLETE; 22 22 23 23 interface IAutoComplete2 : IAutoComplete { 24 24 HRESULT SetOptions(DWORD); 25 25 HRESULT GetOptions(DWORD*); 26 26 } 27 -alias IAutoComplete2* LPAUTOCOMPLETE2; 27 +alias IAutoComplete2 LPAUTOCOMPLETE2;

Modified src/win32/shlguid.d from [b28a9f2a219fc8a0] to [06ce3ccba3f30e45].

Modified src/win32/shlobj.d from [3b1d34f9e7047278] to [7df464c2cf7d0434].

1 1 /***********************************************************************\ 2 2 * shlobj.d * 3 3 * * 4 4 * Windows API header module * 5 5 * * 6 -* Translated from MinGW Windows headers * 6 +* Translated from MinGW API for MS-Windows 4.0 * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.shlobj; 11 -pragma(lib, "shell32.lib"); 11 +pragma(lib, "shell32"); 12 12 13 13 // TODO: fix bitfields 14 14 // TODO: CMIC_VALID_SEE_FLAGS 15 15 // SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K 16 16 17 17 import win32.commctrl, win32.ole2, win32.shlguid, win32.shellapi; 18 18 private import win32.prsht, win32.unknwn, win32.w32api, win32.winbase, 19 19 win32.winnt, win32.winuser, win32.wtypes, win32.objfwd, win32.objidl; 20 20 private import win32.winnetwk; // for NETRESOURCE 21 +private import win32.oaidl : VARIANT; 21 22 22 23 23 24 // FIXME: clean up Windows version support 24 25 25 26 align(1): 26 27 27 28 const BIF_RETURNONLYFSDIRS = 1; ................................................................................ 57 58 alias BFFM_SETSTATUSTEXTA BFFM_SETSTATUSTEXT; 58 59 alias BFFM_SETSELECTIONA BFFM_SETSELECTION; 59 60 alias BFFM_VALIDATEFAILEDA BFFM_VALIDATEFAILED; 60 61 } 61 62 62 63 const DVASPECT_SHORTNAME = 2; 63 64 64 -const SHARD_PIDL = 1; 65 -const SHARD_PATH = 2; 65 +enum SHARD { 66 + SHARD_PIDL = 1, 67 + SHARD_PATHA, 68 + SHARD_PATHW, 69 + SHARD_APPIDINFO, 70 + SHARD_APPIDINFOIDLIST, 71 + SHARD_LINK, 72 + SHARD_APPIDINFOLINK, 73 + SHARD_SHELLITEM, // = 8 74 + SHARD_PATH = (_WIN32_UNICODE ? SHARD_PATHW : SHARD_PATHA) 75 +} 66 76 67 77 const SHCNE_RENAMEITEM = 1; 68 78 const SHCNE_CREATE = 2; 69 79 const SHCNE_DELETE = 4; 70 80 const SHCNE_MKDIR = 8; 71 81 const SHCNE_RMDIR = 16; 72 82 const SHCNE_MEDIAINSERTED = 32; ................................................................................ 103 113 alias SHCNF_PATHW SHCNF_PATH; 104 114 alias SHCNF_PRINTERW SHCNF_PRINTER; 105 115 } else { 106 116 alias SHCNF_PATHA SHCNF_PATH; 107 117 alias SHCNF_PRINTERA SHCNF_PRINTER; 108 118 } 109 119 110 -const SFGAO_CANCOPY = DROPEFFECT.DROPEFFECT_COPY; 111 -const SFGAO_CANMOVE = DROPEFFECT.DROPEFFECT_MOVE; 112 -const SFGAO_CANLINK = DROPEFFECT.DROPEFFECT_LINK; 113 -const SFGAO_CANRENAME = 0x00000010L; 114 -const SFGAO_CANDELETE = 0x00000020L; 115 -const SFGAO_HASPROPSHEET = 0x00000040L; 116 -const SFGAO_DROPTARGET = 0x00000100L; 117 -const SFGAO_CAPABILITYMASK = 0x00000177L; 118 -const SFGAO_GHOSTED = 0x00008000L; 119 -const SFGAO_LINK = 0x00010000L; 120 -const SFGAO_SHARE = 0x00020000L; 121 -const SFGAO_READONLY = 0x00040000L; 122 -const SFGAO_HIDDEN = 0x00080000L; 123 -const SFGAO_DISPLAYATTRMASK = 0x000F0000L; 124 -const SFGAO_FILESYSANCESTOR = 0x10000000L; 125 -const SFGAO_FOLDER = 0x20000000L; 126 -const SFGAO_FILESYSTEM = 0x40000000L; 127 -const SFGAO_HASSUBFOLDER = 0x80000000L; 128 -const SFGAO_CONTENTSMASK = 0x80000000L; 129 -const SFGAO_VALIDATE = 0x01000000L; 130 -const SFGAO_REMOVABLE = 0x02000000L; 131 -const SFGAO_COMPRESSED = 0x04000000L; 120 +enum SFGAOF : DWORD { 121 + SFGAO_CANCOPY = DROPEFFECT.DROPEFFECT_COPY, 122 + SFGAO_CANMOVE = DROPEFFECT.DROPEFFECT_MOVE, 123 + SFGAO_CANLINK = DROPEFFECT.DROPEFFECT_LINK, 124 + SFGAO_CANRENAME = 0x00000010L, 125 + SFGAO_CANDELETE = 0x00000020L, 126 + SFGAO_HASPROPSHEET = 0x00000040L, 127 + SFGAO_DROPTARGET = 0x00000100L, 128 + SFGAO_CAPABILITYMASK = 0x00000177L, 129 + SFGAO_ISSLOW = 0x00004000L, 130 + SFGAO_GHOSTED = 0x00008000L, 131 + SFGAO_LINK = 0x00010000L, 132 + SFGAO_SHARE = 0x00020000L, 133 + SFGAO_READONLY = 0x00040000L, 134 + SFGAO_HIDDEN = 0x00080000L, 135 + SFGAO_DISPLAYATTRMASK = (SFGAO_ISSLOW | SFGAO_GHOSTED | SFGAO_LINK 136 + | SFGAO_SHARE | SFGAO_READONLY | SFGAO_HIDDEN), 137 + SFGAO_FILESYSANCESTOR = 0x10000000L, 138 + SFGAO_FOLDER = 0x20000000L, 139 + SFGAO_FILESYSTEM = 0x40000000L, 140 + SFGAO_HASSUBFOLDER = 0x80000000L, 141 + SFGAO_CONTENTSMASK = 0x80000000L, 142 + SFGAO_VALIDATE = 0x01000000L, 143 + SFGAO_REMOVABLE = 0x02000000L, 144 + SFGAO_COMPRESSED = 0x04000000L 145 +} 132 146 const STRRET_WSTR = 0; 133 147 const STRRET_OFFSET = 1; 134 148 const STRRET_CSTR = 2; 135 149 136 150 enum { 137 151 SHGDFIL_FINDDATA = 1, 138 152 SHGDFIL_NETRESOURCE, ................................................................................ 159 173 SHDID_NET_OTHER 160 174 } 161 175 162 176 const TCHAR[] REGSTR_PATH_EXPLORER = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer"; 163 177 const TCHAR[] REGSTR_PATH_SPECIAL_FOLDERS=REGSTR_PATH_EXPLORER ~ "\\Shell Folders"; 164 178 165 179 enum { 166 - CSIDL_DESKTOP = 0, 180 + CSIDL_DESKTOP = 0, 167 181 CSIDL_INTERNET, 168 182 CSIDL_PROGRAMS, 169 183 CSIDL_CONTROLS, 170 184 CSIDL_PRINTERS, 171 185 CSIDL_PERSONAL, 172 186 CSIDL_FAVORITES, 173 187 CSIDL_STARTUP, 174 188 CSIDL_RECENT, 175 189 CSIDL_SENDTO, 176 190 CSIDL_BITBUCKET, 177 - CSIDL_STARTMENU, // = 11 178 - CSIDL_DESKTOPDIRECTORY = 16, 191 + CSIDL_STARTMENU, // = 11 192 + CSIDL_MYMUSIC = 13, 193 + CSIDL_MYVIDEO, // = 14 194 + CSIDL_DESKTOPDIRECTORY = 16, 179 195 CSIDL_DRIVES, 180 196 CSIDL_NETWORK, 181 197 CSIDL_NETHOOD, 182 198 CSIDL_FONTS, 183 199 CSIDL_TEMPLATES, 184 200 CSIDL_COMMON_STARTMENU, 185 201 CSIDL_COMMON_PROGRAMS, ................................................................................ 204 220 CSIDL_PROGRAM_FILESX86, 205 221 CSIDL_PROGRAM_FILES_COMMON, 206 222 CSIDL_PROGRAM_FILES_COMMONX86, 207 223 CSIDL_COMMON_TEMPLATES, 208 224 CSIDL_COMMON_DOCUMENTS, 209 225 CSIDL_COMMON_ADMINTOOLS, 210 226 CSIDL_ADMINTOOLS, 211 - CSIDL_CONNECTIONS, // =49 212 - CSIDL_COMMON_MUSIC = 53, 227 + CSIDL_CONNECTIONS, // = 49 228 + CSIDL_COMMON_MUSIC = 53, 213 229 CSIDL_COMMON_PICTURES, 214 230 CSIDL_COMMON_VIDEO, 215 231 CSIDL_RESOURCES, 216 232 CSIDL_RESOURCES_LOCALIZED, 217 233 CSIDL_COMMON_OEM_LINKS, 218 - CSIDL_CDBURN_AREA, // = 59 219 - CSIDL_COMPUTERSNEARME = 61, 234 + CSIDL_CDBURN_AREA, // = 59 235 + CSIDL_COMPUTERSNEARME = 61, 220 236 CSIDL_FLAG_DONT_VERIFY = 0x4000, 221 - CSIDL_FLAG_CREATE = 0x8000, 222 - CSIDL_FLAG_MASK = 0xFF00 237 + CSIDL_FLAG_CREATE = 0x8000, 238 + CSIDL_FLAG_MASK = 0xFF00 223 239 } 224 240 225 241 const TCHAR[] 226 242 CFSTR_SHELLIDLIST = "Shell IDList Array", 227 243 CFSTR_SHELLIDLISTOFFSET = "Shell Object Offsets", 228 244 CFSTR_NETRESOURCES = "Net Resource", 229 245 CFSTR_FILECONTENTS = "FileContents", ................................................................................ 364 380 const SVGIO_BACKGROUND=0; 365 381 const SVGIO_SELECTION=1; 366 382 const SVGIO_ALLVIEW=2; 367 383 368 384 const UINT SV2GV_CURRENTVIEW=-1; 369 385 const UINT SV2GV_DEFAULTVIEW=-2; 370 386 371 -alias ULONG SFGAOF; 372 387 alias DWORD SHGDNF; 373 388 374 389 struct CIDA { 375 390 UINT cidl; 376 391 UINT[1] aoffset; 377 392 } 378 393 alias CIDA* LPIDA; 379 394 380 395 struct SHITEMID { 381 396 USHORT cb; 382 397 BYTE[1] abID; 383 398 } 384 -alias SHITEMID* LPSHITEMID; 385 -alias CPtr!(SHITEMID) LPCSHITEMID; 399 +alias SHITEMID* LPSHITEMID; 400 +alias const(SHITEMID)* LPCSHITEMID; 386 401 387 402 struct ITEMIDLIST { 388 403 SHITEMID mkid; 389 404 } 390 -alias ITEMIDLIST* LPITEMIDLIST; 391 -alias CPtr!(ITEMIDLIST) LPCITEMIDLIST; 405 +alias ITEMIDLIST* LPITEMIDLIST; 406 +alias const(ITEMIDLIST)* LPCITEMIDLIST; 392 407 393 -alias int function(HWND,UINT,LPARAM,LPARAM) BFFCALLBACK; 408 +alias int function(HWND, UINT, LPARAM, LPARAM) BFFCALLBACK; 394 409 395 410 struct BROWSEINFOA { 396 411 HWND hwndOwner; 397 412 LPCITEMIDLIST pidlRoot; 398 413 LPSTR pszDisplayName; 399 414 LPCSTR lpszTitle; 400 415 UINT ulFlags; ................................................................................ 457 472 } 458 473 459 474 struct STRRET { 460 475 UINT uType; 461 476 union { 462 477 LPWSTR pOleStr; 463 478 UINT uOffset; 464 - char cStr[MAX_PATH]; 479 + char[MAX_PATH] cStr; 465 480 } 466 481 } 467 482 alias STRRET* LPSTRRET; 468 483 469 484 enum FD_FLAGS { 470 485 FD_CLSID = 1, 471 486 FD_SIZEPOINT = 2, ................................................................................ 484 499 POINTL pointl; 485 500 DWORD dwFileAttributes; 486 501 FILETIME ftCreationTime; 487 502 FILETIME ftLastAccessTime; 488 503 FILETIME ftLastWriteTime; 489 504 DWORD nFileSizeHigh; 490 505 DWORD nFileSizeLow; 491 - CHAR cFileName[MAX_PATH]; 506 + CHAR[MAX_PATH] cFileName; 492 507 } 493 508 alias FILEDESCRIPTORA* LPFILEDESCRIPTORA; 494 509 495 510 struct FILEDESCRIPTORW { 496 511 DWORD dwFlags; 497 512 CLSID clsid; 498 513 SIZEL sizel; ................................................................................ 499 514 POINTL pointl; 500 515 DWORD dwFileAttributes; 501 516 FILETIME ftCreationTime; 502 517 FILETIME ftLastAccessTime; 503 518 FILETIME ftLastWriteTime; 504 519 DWORD nFileSizeHigh; 505 520 DWORD nFileSizeLow; 506 - WCHAR cFileName[MAX_PATH]; 521 + WCHAR[MAX_PATH] cFileName; 507 522 } 508 523 alias FILEDESCRIPTORW* LPFILEDESCRIPTORW; 509 524 510 525 struct FILEGROUPDESCRIPTORA { 511 526 UINT cItems; 512 - FILEDESCRIPTORA fgd[1]; 527 + FILEDESCRIPTORA[1] fgd; 513 528 } 514 529 alias FILEGROUPDESCRIPTORA* LPFILEGROUPDESCRIPTORA; 515 530 516 531 struct FILEGROUPDESCRIPTORW { 517 532 UINT cItems; 518 - FILEDESCRIPTORW fgd[1]; 533 + FILEDESCRIPTORW[1] fgd; 519 534 } 520 535 alias FILEGROUPDESCRIPTORW* LPFILEGROUPDESCRIPTORW; 521 536 522 537 enum SLR_FLAGS { 523 538 SLR_NO_UI = 1, 524 539 SLR_ANY_MATCH = 2, 525 540 SLR_UPDATE = 4, ................................................................................ 561 576 FVM_DETAILS 562 577 } 563 578 564 579 struct FOLDERSETTINGS { 565 580 UINT ViewMode; 566 581 UINT fFlags; 567 582 } 568 -alias FOLDERSETTINGS* LPFOLDERSETTINGS; 569 -alias CPtr!(FOLDERSETTINGS) LPCFOLDERSETTINGS; 583 +alias FOLDERSETTINGS* LPFOLDERSETTINGS; 584 +alias const(FOLDERSETTINGS)* LPCFOLDERSETTINGS; 570 585 571 586 struct FVSHOWINFO { 572 587 DWORD cbSize = this.sizeof; 573 588 HWND hwndOwner; 574 589 int iShow; 575 590 DWORD dwFlags; 576 591 RECT rect; 577 592 LPUNKNOWN punkRel; 578 - OLECHAR strNewFile[MAX_PATH]; 593 + OLECHAR[MAX_PATH] strNewFile; 579 594 } 580 595 alias FVSHOWINFO* LPFVSHOWINFO; 581 596 582 597 struct NRESARRAY { 583 598 UINT cItems; 584 - NETRESOURCE nr[1]; 599 + NETRESOURCE[1] nr; 585 600 } 586 601 alias NRESARRAY* LPNRESARRAY; 587 602 588 603 enum { 589 604 SBSC_HIDE, 590 605 SBSC_SHOW, 591 606 SBSC_TOGGLE, ................................................................................ 604 619 enum SVUIA_STATUS { 605 620 SVUIA_DEACTIVATE, 606 621 SVUIA_ACTIVATE_NOFOCUS, 607 622 SVUIA_ACTIVATE_FOCUS, 608 623 SVUIA_INPLACEACTIVATE 609 624 } 610 625 611 -static if (_WIN32_IE >= 0x0500) { 626 +static if (_WIN32_IE >= 0x500) { 612 627 613 628 struct EXTRASEARCH 614 629 { 615 630 GUID guidSearch; 616 - WCHAR wszFriendlyName[80]; 617 - WCHAR wszUrl[2084]; 631 + WCHAR[80] wszFriendlyName; 632 + WCHAR[2084] wszUrl; 618 633 } 619 634 alias EXTRASEARCH* LPEXTRASEARCH; 620 635 621 636 alias DWORD SHCOLSTATEF; 622 637 623 638 struct SHCOLUMNID { 624 639 GUID fmtid; 625 640 DWORD pid; 626 641 } 627 - alias SHCOLUMNID* LPSHCOLUMNID; 628 - alias CPtr!(SHCOLUMNID) LPCSHCOLUMNID; 642 + alias SHCOLUMNID* LPSHCOLUMNID; 643 + alias const(SHCOLUMNID)* LPCSHCOLUMNID; 629 644 630 645 struct SHELLDETAILS { 631 646 int fmt; 632 647 int cxChar; 633 648 STRRET str; 634 649 } 635 650 alias SHELLDETAILS* LPSHELLDETAILS; 636 651 637 652 struct PERSIST_FOLDER_TARGET_INFO 638 653 { 639 654 LPITEMIDLIST pidlTargetFolder; 640 - WCHAR szTargetParsingName[MAX_PATH]; 641 - WCHAR szNetworkProvider[MAX_PATH]; 655 + WCHAR[MAX_PATH] szTargetParsingName; 656 + WCHAR[MAX_PATH] szNetworkProvider; 642 657 DWORD dwAttributes; 643 658 int csidl; 644 659 } 645 660 646 661 enum SHGFP_TYPE { 647 662 SHGFP_TYPE_CURRENT = 0, 648 663 SHGFP_TYPE_DEFAULT = 1, 649 664 } 650 665 651 666 } 652 667 653 -interface IEnumIDList: IUnknown 654 -{ 655 - HRESULT QueryInterface(REFIID,PVOID*); 656 - ULONG AddRef(); 657 - ULONG Release(); 658 - HRESULT Next(ULONG,LPITEMIDLIST*,ULONG*); 668 +interface IEnumIDList : IUnknown { 669 + HRESULT Next(ULONG, LPITEMIDLIST*, ULONG*); 659 670 HRESULT Skip(ULONG); 660 671 HRESULT Reset(); 661 - HRESULT Clone(IEnumIDList**); 672 + HRESULT Clone(IEnumIDList*); 662 673 } 663 -alias IEnumIDList *LPENUMIDLIST; 674 +alias IEnumIDList LPENUMIDLIST; 664 675 665 -interface IObjMgr : IUnknown 666 -{ 667 - HRESULT QueryInterface(REFIID,PVOID*); 668 - ULONG AddRef(); 669 - ULONG Release(); 670 - HRESULT Append(IUnknown*); 671 - HRESULT Remove(IUnknown*); 676 +interface IObjMgr : IUnknown { 677 + HRESULT Append(IUnknown); 678 + HRESULT Remove(IUnknown); 672 679 } 673 680 674 -interface IContextMenu : IUnknown 675 -{ 676 - HRESULT QueryInterface(REFIID,PVOID*); 677 - ULONG AddRef(); 678 - ULONG Release(); 679 - HRESULT QueryContextMenu(HMENU,UINT,UINT,UINT,UINT); 681 +interface IContextMenu : IUnknown { 682 + HRESULT QueryContextMenu(HMENU, UINT, UINT, UINT, UINT); 680 683 HRESULT InvokeCommand(LPCMINVOKECOMMANDINFO); 681 - HRESULT GetCommandString(UINT,UINT,PUINT,LPSTR,UINT); 684 + HRESULT GetCommandString(UINT, UINT, PUINT, LPSTR, UINT); 682 685 } 683 -alias IContextMenu* LPCONTEXTMENU; 686 +alias IContextMenu LPCONTEXTMENU; 684 687 685 -interface IContextMenu2 : IContextMenu 686 -{ 687 - HRESULT QueryInterface(REFIID,PVOID*); 688 - ULONG AddRef(); 689 - ULONG Release(); 690 - HRESULT QueryContextMenu(HMENU,UINT,UINT,UINT,UINT); 691 - HRESULT InvokeCommand(LPCMINVOKECOMMANDINFO); 692 - HRESULT GetCommandString(UINT,UINT,PUINT,LPSTR,UINT); 693 - HRESULT HandleMenuMsg(UINT,WPARAM,LPARAM); 688 +interface IContextMenu2 : IContextMenu { 689 + HRESULT HandleMenuMsg(UINT, WPARAM, LPARAM); 694 690 }; 695 -alias IContextMenu2* LPCONTEXTMENU2; 696 - 697 -static if (_WIN32_IE >= 0x0500) { 698 - 699 - align(8): 700 - struct SHCOLUMNINIT { 701 - ULONG dwFlags; 702 - ULONG dwReserved; 703 - WCHAR wszFolder[MAX_PATH]; 704 - } 705 - alias SHCOLUMNINIT* LPSHCOLUMNINIT; 706 - alias CPtr!(SHCOLUMNINIT) LPCSHCOLUMNINIT; 707 - 708 - struct SHCOLUMNDATA { 709 - ULONG dwFlags; 710 - DWORD dwFileAttributes; 711 - ULONG dwReserved; 712 - WCHAR *pwszExt; 713 - WCHAR wszFile[MAX_PATH]; 714 - } 715 - alias SHCOLUMNDATA* LPSHCOLUMNDATA; 716 - alias CPtr!(SHCOLUMNDATA) LPCSHCOLUMNDATA; 717 - align: 691 +alias IContextMenu2 LPCONTEXTMENU2; 692 + 693 +static if (_WIN32_IE >= 0x500) { 694 + align(8) { 695 + struct SHCOLUMNINIT { 696 + ULONG dwFlags; 697 + ULONG dwReserved; 698 + WCHAR[MAX_PATH] wszFolder; 699 + } 700 + alias SHCOLUMNINIT* LPSHCOLUMNINIT; 701 + alias const(SHCOLUMNINIT)* LPCSHCOLUMNINIT; 702 + 703 + struct SHCOLUMNDATA { 704 + ULONG dwFlags; 705 + DWORD dwFileAttributes; 706 + ULONG dwReserved; 707 + WCHAR *pwszExt; 708 + WCHAR[MAX_PATH] wszFile; 709 + } 710 + alias SHCOLUMNDATA* LPSHCOLUMNDATA; 711 + alias const(SHCOLUMNDATA)* LPCSHCOLUMNDATA; 712 + } 718 713 719 714 const MAX_COLUMN_NAME_LEN = 80; 720 715 const MAX_COLUMN_DESC_LEN = 128; 721 716 722 - align(1): 723 - struct SHCOLUMNINFO { 717 + align(1) struct SHCOLUMNINFO { 724 718 SHCOLUMNID scid; 725 719 VARTYPE vt; 726 720 DWORD fmt; 727 721 UINT cChars; 728 722 DWORD csFlags; 729 - WCHAR wszTitle[MAX_COLUMN_NAME_LEN]; 730 - WCHAR wszDescription[MAX_COLUMN_DESC_LEN]; 723 + WCHAR[MAX_COLUMN_NAME_LEN] wszTitle; 724 + WCHAR[MAX_COLUMN_DESC_LEN] wszDescription; 731 725 } 732 - alias SHCOLUMNINFO* LPSHCOLUMNINFO; 733 - alias CPtr!(SHCOLUMNINFO) LPCSHCOLUMNINFO; 734 - align: 726 + alias SHCOLUMNINFO* LPSHCOLUMNINFO; 727 + alias const(SHCOLUMNINFO)* LPCSHCOLUMNINFO; 735 728 736 729 enum SHCOLSTATE { 737 730 SHCOLSTATE_TYPE_STR = 0x00000001, 738 731 SHCOLSTATE_TYPE_INT = 0x00000002, 739 732 SHCOLSTATE_TYPE_DATE = 0x00000003, 740 733 SHCOLSTATE_TYPEMASK = 0x0000000f, 741 734 SHCOLSTATE_ONBYDEFAULT = 0x00000010, ................................................................................ 742 735 SHCOLSTATE_SLOW = 0x00000020, 743 736 SHCOLSTATE_EXTENDED = 0x00000040, 744 737 SHCOLSTATE_SECONDARYUI = 0x00000080, 745 738 SHCOLSTATE_HIDDEN = 0x00000100, 746 739 SHCOLSTATE_PREFER_VARCMP = 0x00000200 747 740 } 748 741 749 - interface IColumnProvider : IUnknown 750 - { 751 - HRESULT QueryInterface(REFIID,PVOID*); 752 - ULONG AddRef(); 753 - ULONG Release(); 742 + interface IColumnProvider : IUnknown { 754 743 HRESULT Initialize(LPCSHCOLUMNINIT); 755 - HRESULT GetColumnInfo(DWORD,SHCOLUMNINFO*); 756 - HRESULT GetItemData(LPCSHCOLUMNID,LPCSHCOLUMNDATA,VARIANT*); 744 + HRESULT GetColumnInfo(DWORD, SHCOLUMNINFO*); 745 + HRESULT GetItemData(LPCSHCOLUMNID, LPCSHCOLUMNDATA, VARIANT*); 757 746 } 758 -}/* _WIN32_IE >= 0x0500 */ 747 +}/* _WIN32_IE >= 0x500 */ 759 748 760 -interface IQueryInfo : IUnknown 761 -{ 762 - HRESULT QueryInterface(REFIID,PVOID*); 763 - ULONG AddRef(); 764 - ULONG Release(); 765 - HRESULT GetInfoTip(DWORD,WCHAR**); 749 +interface IQueryInfo : IUnknown { 750 + HRESULT GetInfoTip(DWORD, WCHAR**); 766 751 HRESULT GetInfoFlags(DWORD*); 767 752 } 768 753 769 -interface IShellExtInit : IUnknown 770 -{ 771 - HRESULT QueryInterface(REFIID,PVOID*); 772 - ULONG AddRef(); 773 - ULONG Release(); 774 - HRESULT Initialize(LPCITEMIDLIST,LPDATAOBJECT,HKEY); 754 +interface IShellExtInit : IUnknown { 755 + HRESULT Initialize(LPCITEMIDLIST, LPDATAOBJECT, HKEY); 775 756 } 776 -alias IShellExtInit *LPSHELLEXTINIT; 757 +alias IShellExtInit LPSHELLEXTINIT; 777 758 778 -interface IShellPropSheetExt : IUnknown 779 -{ 780 - HRESULT QueryInterface(REFIID,PVOID*); 781 - ULONG AddRef(); 782 - ULONG Release(); 783 - HRESULT AddPages(LPFNADDPROPSHEETPAGE,LPARAM); 784 - HRESULT ReplacePage(UINT,LPFNADDPROPSHEETPAGE,LPARAM); 759 +interface IShellPropSheetExt : IUnknown { 760 + HRESULT AddPages(LPFNADDPROPSHEETPAGE, LPARAM); 761 + HRESULT ReplacePage(UINT, LPFNADDPROPSHEETPAGE, LPARAM); 785 762 } 786 -alias IShellPropSheetExt *LPSHELLPROPSHEETEXT; 763 +alias IShellPropSheetExt LPSHELLPROPSHEETEXT; 787 764 788 -interface IExtractIconA : IUnknown 789 -{ 790 - HRESULT QueryInterface(REFIID,PVOID*); 791 - ULONG AddRef(); 792 - ULONG Release(); 793 - HRESULT GetIconLocation(UINT,LPSTR,UINT,int*,PUINT); 794 - HRESULT Extract(LPCSTR,UINT,HICON*,HICON*,UINT); 765 +interface IExtractIconA : IUnknown { 766 + HRESULT GetIconLocation(UINT, LPSTR, UINT, int*, PUINT); 767 + HRESULT Extract(LPCSTR, UINT, HICON*, HICON*, UINT); 795 768 }; 796 -alias IExtractIconA *LPEXTRACTICONA; 769 +alias IExtractIconA LPEXTRACTICONA; 797 770 798 -interface IExtractIconW : IUnknown 799 -{ 800 - HRESULT QueryInterface(REFIID,PVOID*); 801 - ULONG AddRef(); 802 - ULONG Release(); 803 - HRESULT GetIconLocation(UINT,LPWSTR,UINT,int*,PUINT); 804 - HRESULT Extract(LPCWSTR,UINT,HICON*,HICON*,UINT); 771 +interface IExtractIconW : IUnknown { 772 + HRESULT GetIconLocation(UINT, LPWSTR, UINT, int*, PUINT); 773 + HRESULT Extract(LPCWSTR, UINT, HICON*, HICON*, UINT); 805 774 } 806 -alias IExtractIconW *LPEXTRACTICONW; 775 +alias IExtractIconW LPEXTRACTICONW; 807 776 808 777 version(Unicode) { 809 778 alias IExtractIconW IExtractIcon; 810 779 alias LPEXTRACTICONW LPEXTRACTICON; 811 780 } else { 812 781 alias IExtractIconA IExtractIcon; 813 782 alias LPEXTRACTICONA LPEXTRACTICON; 814 783 } 815 784 816 -interface IShellLinkA : IUnknown 817 -{ 818 - HRESULT QueryInterface(REFIID,PVOID*); 819 - ULONG AddRef(); 820 - ULONG Release(); 821 - HRESULT GetPath(LPSTR,int,WIN32_FIND_DATAA*,DWORD); 785 +interface IShellLinkA : IUnknown { 786 + HRESULT GetPath(LPSTR, int, WIN32_FIND_DATAA*, DWORD); 822 787 HRESULT GetIDList(LPITEMIDLIST*); 823 788 HRESULT SetIDList(LPCITEMIDLIST); 824 - HRESULT GetDescription(LPSTR,int); 789 + HRESULT GetDescription(LPSTR, int); 825 790 HRESULT SetDescription(LPCSTR); 826 - HRESULT GetWorkingDirectory(LPSTR,int); 791 + HRESULT GetWorkingDirectory(LPSTR, int); 827 792 HRESULT SetWorkingDirectory(LPCSTR); 828 - HRESULT GetArguments(LPSTR,int); 793 + HRESULT GetArguments(LPSTR, int); 829 794 HRESULT SetArguments(LPCSTR); 830 795 HRESULT GetHotkey(PWORD); 831 796 HRESULT SetHotkey(WORD); 832 797 HRESULT GetShowCmd(int*); 833 798 HRESULT SetShowCmd(int); 834 - HRESULT GetIconLocation(LPSTR,int,int*); 835 - HRESULT SetIconLocation(LPCSTR,int); 836 - HRESULT SetRelativePath(LPCSTR ,DWORD); 837 - HRESULT Resolve(HWND,DWORD); 799 + HRESULT GetIconLocation(LPSTR, int, int*); 800 + HRESULT SetIconLocation(LPCSTR, int); 801 + HRESULT SetRelativePath(LPCSTR , DWORD); 802 + HRESULT Resolve(HWND, DWORD); 838 803 HRESULT SetPath(LPCSTR); 839 804 } 840 805 841 -interface IShellLinkW : IUnknown 842 -{ 843 - HRESULT QueryInterface(REFIID,PVOID*); 844 - ULONG AddRef(); 845 - ULONG Release(); 846 - HRESULT GetPath(LPWSTR,int,WIN32_FIND_DATAW*,DWORD); 806 +interface IShellLinkW : IUnknown { 807 + HRESULT GetPath(LPWSTR, int, WIN32_FIND_DATAW*, DWORD); 847 808 HRESULT GetIDList(LPITEMIDLIST*); 848 809 HRESULT SetIDList(LPCITEMIDLIST); 849 - HRESULT GetDescription(LPWSTR,int); 810 + HRESULT GetDescription(LPWSTR, int); 850 811 HRESULT SetDescription(LPCWSTR); 851 - HRESULT GetWorkingDirectory(LPWSTR,int); 812 + HRESULT GetWorkingDirectory(LPWSTR, int); 852 813 HRESULT SetWorkingDirectory(LPCWSTR); 853 - HRESULT GetArguments(LPWSTR,int); 814 + HRESULT GetArguments(LPWSTR, int); 854 815 HRESULT SetArguments(LPCWSTR); 855 816 HRESULT GetHotkey(PWORD); 856 817 HRESULT SetHotkey(WORD); 857 818 HRESULT GetShowCmd(int*); 858 819 HRESULT SetShowCmd(int); 859 - HRESULT GetIconLocation(LPWSTR,int,int*); 860 - HRESULT SetIconLocation(LPCWSTR,int); 861 - HRESULT SetRelativePath(LPCWSTR ,DWORD); 862 - HRESULT Resolve(HWND,DWORD); 820 + HRESULT GetIconLocation(LPWSTR, int, int*); 821 + HRESULT SetIconLocation(LPCWSTR, int); 822 + HRESULT SetRelativePath(LPCWSTR , DWORD); 823 + HRESULT Resolve(HWND, DWORD); 863 824 HRESULT SetPath(LPCWSTR); 864 825 } 865 826 866 827 867 -interface IShellFolder : IUnknown 868 -{ 869 - HRESULT QueryInterface(REFIID,PVOID*); 870 - ULONG AddRef(); 871 - ULONG Release(); 872 - HRESULT ParseDisplayName(HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG); 873 - HRESULT EnumObjects(HWND,DWORD,LPENUMIDLIST*); 874 - HRESULT BindToObject(LPCITEMIDLIST,LPBC,REFIID,PVOID*); 875 - HRESULT BindToStorage(LPCITEMIDLIST,LPBC,REFIID,PVOID*); 876 - HRESULT CompareIDs(LPARAM,LPCITEMIDLIST,LPCITEMIDLIST); 877 - HRESULT CreateViewObject(HWND,REFIID,PVOID*); 878 - HRESULT GetAttributesOf(UINT,LPCITEMIDLIST*,PULONG); 879 - HRESULT GetUIObjectOf(HWND,UINT,LPCITEMIDLIST*,REFIID,PUINT,PVOID*); 880 - HRESULT GetDisplayNameOf(LPCITEMIDLIST,DWORD,LPSTRRET); 881 - HRESULT SetNameOf(HWND,LPCITEMIDLIST,LPCOLESTR,DWORD,LPITEMIDLIST*); 882 -} 883 -alias IShellFolder *LPSHELLFOLDER; 884 - 885 -static if (_WIN32_IE >= 0x0500) { 886 - 887 -interface IEnumExtraSearch: IUnknown 888 -{ 889 - HRESULT QueryInterface(REFIID,PVOID*); 890 - ULONG AddRef(); 891 - ULONG Release(); 892 - HRESULT Next(ULONG,LPEXTRASEARCH*,ULONG*); 828 +interface IShellFolder : IUnknown { 829 + HRESULT ParseDisplayName(HWND, LPBC, LPOLESTR, PULONG, LPITEMIDLIST*, PULONG); 830 + HRESULT EnumObjects(HWND, DWORD, LPENUMIDLIST*); 831 + HRESULT BindToObject(LPCITEMIDLIST, LPBC, REFIID, PVOID*); 832 + HRESULT BindToStorage(LPCITEMIDLIST, LPBC, REFIID, PVOID*); 833 + HRESULT CompareIDs(LPARAM, LPCITEMIDLIST, LPCITEMIDLIST); 834 + HRESULT CreateViewObject(HWND, REFIID, PVOID*); 835 + HRESULT GetAttributesOf(UINT, LPCITEMIDLIST*, PULONG); 836 + HRESULT GetUIObjectOf(HWND, UINT, LPCITEMIDLIST*, REFIID, PUINT, PVOID*); 837 + HRESULT GetDisplayNameOf(LPCITEMIDLIST, DWORD, LPSTRRET); 838 + HRESULT SetNameOf(HWND, LPCITEMIDLIST, LPCOLESTR, DWORD, LPITEMIDLIST*); 839 +} 840 +alias IShellFolder LPSHELLFOLDER; 841 + 842 +static if (_WIN32_IE >= 0x500) { 843 + 844 +interface IEnumExtraSearch: IUnknown { 845 + HRESULT Next(ULONG, LPEXTRASEARCH*, ULONG*); 893 846 HRESULT Skip(ULONG); 894 847 HRESULT Reset(); 895 - HRESULT Clone(IEnumExtraSearch**); 848 + HRESULT Clone(IEnumExtraSearch*); 896 849 } 897 -alias IEnumExtraSearch *LPENUMEXTRASEARCH; 850 +alias IEnumExtraSearch LPENUMEXTRASEARCH; 898 851 899 -interface IShellFolder2 : IShellFolder 900 -{ 901 - HRESULT QueryInterface(REFIID,PVOID*); 902 - ULONG AddRef(); 903 - ULONG Release(); 904 - HRESULT ParseDisplayName(HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG); 905 - HRESULT EnumObjects(HWND,DWORD,LPENUMIDLIST*); 906 - HRESULT BindToObject(LPCITEMIDLIST,LPBC,REFIID,PVOID*); 907 - HRESULT BindToStorage(LPCITEMIDLIST,LPBC,REFIID,PVOID*); 908 - HRESULT CompareIDs(LPARAM,LPCITEMIDLIST,LPCITEMIDLIST); 909 - HRESULT CreateViewObject(HWND,REFIID,PVOID*); 910 - HRESULT GetAttributesOf(UINT,LPCITEMIDLIST*,PULONG); 911 - HRESULT GetUIObjectOf(HWND,UINT,LPCITEMIDLIST*,REFIID,PUINT,PVOID*); 912 - HRESULT GetDisplayNameOf(LPCITEMIDLIST,DWORD,LPSTRRET); 913 - HRESULT SetNameOf(HWND,LPCITEMIDLIST,LPCOLESTR,DWORD,LPITEMIDLIST*); 852 +interface IShellFolder2 : IShellFolder { 853 + HRESULT ParseDisplayName(HWND, LPBC, LPOLESTR, PULONG, LPITEMIDLIST*, PULONG); 854 + HRESULT EnumObjects(HWND, DWORD, LPENUMIDLIST*); 855 + HRESULT BindToObject(LPCITEMIDLIST, LPBC, REFIID, PVOID*); 856 + HRESULT BindToStorage(LPCITEMIDLIST, LPBC, REFIID, PVOID*); 857 + HRESULT CompareIDs(LPARAM, LPCITEMIDLIST, LPCITEMIDLIST); 858 + HRESULT CreateViewObject(HWND, REFIID, PVOID*); 859 + HRESULT GetAttributesOf(UINT, LPCITEMIDLIST*, PULONG); 860 + HRESULT GetUIObjectOf(HWND, UINT, LPCITEMIDLIST*, REFIID, PUINT, PVOID*); 861 + HRESULT GetDisplayNameOf(LPCITEMIDLIST, DWORD, LPSTRRET); 862 + HRESULT SetNameOf(HWND, LPCITEMIDLIST, LPCOLESTR, DWORD, LPITEMIDLIST*); 914 863 HRESULT GetDefaultSearchGUID(GUID*); 915 - HRESULT EnumSearches(IEnumExtraSearch**); 916 - HRESULT GetDefaultColumn(DWORD,ULONG*,ULONG*); 917 - HRESULT GetDefaultColumnState(UINT,SHCOLSTATEF*); 918 - HRESULT GetDetailsEx(LPCITEMIDLIST, CPtr!(SHCOLUMNID),VARIANT*); 919 - HRESULT GetDetailsOf(LPCITEMIDLIST,UINT,SHELLDETAILS*); 920 - HRESULT MapColumnToSCID(UINT,SHCOLUMNID*); 921 -} 922 -alias IShellFolder2 *LPSHELLFOLDER2; 923 - 924 -} /* _WIN32_IE >= 0x0500 */ 925 - 926 -interface ICopyHook : IUnknown 927 -{ 928 - HRESULT QueryInterface(REFIID,PVOID*); 929 - ULONG AddRef(); 930 - ULONG Release(); 931 - UINT CopyCallback(HWND,UINT,UINT,LPCSTR,DWORD,LPCSTR,DWORD); 932 -} 933 -alias ICopyHook *LPCOPYHOOK; 934 - 935 -interface IFileViewerSite : IUnknown 936 -{ 937 - HRESULT QueryInterface(REFIID,PVOID*); 938 - ULONG AddRef(); 939 - ULONG Release(); 864 + HRESULT EnumSearches(IEnumExtraSearch*); 865 + HRESULT GetDefaultColumn(DWORD, ULONG*, ULONG*); 866 + HRESULT GetDefaultColumnState(UINT, SHCOLSTATEF*); 867 + HRESULT GetDetailsEx(LPCITEMIDLIST, const(SHCOLUMNID)*, VARIANT*); 868 + HRESULT GetDetailsOf(LPCITEMIDLIST, UINT, SHELLDETAILS*); 869 + HRESULT MapColumnToSCID(UINT, SHCOLUMNID*); 870 +} 871 +alias IShellFolder2 LPSHELLFOLDER2; 872 + 873 +} /* _WIN32_IE >= 0x500 */ 874 + 875 +interface ICopyHook : IUnknown { 876 + UINT CopyCallback(HWND, UINT, UINT, LPCSTR, DWORD, LPCSTR, DWORD); 877 +} 878 +alias ICopyHook LPCOPYHOOK; 879 + 880 +interface IFileViewerSite : IUnknown { 940 881 HRESULT SetPinnedWindow(HWND); 941 882 HRESULT GetPinnedWindow(HWND*); 942 883 } 943 -alias IFileViewerSite *LPFILEVIEWERSITE; 884 +alias IFileViewerSite LPFILEVIEWERSITE; 944 885 945 -interface IFileViewer : IUnknown 946 -{ 947 - HRESULT QueryInterface(REFIID,PVOID*); 948 - ULONG AddRef(); 949 - ULONG Release(); 886 +interface IFileViewer : IUnknown { 950 887 HRESULT ShowInitialize(LPFILEVIEWERSITE); 951 888 HRESULT Show(LPFVSHOWINFO); 952 - HRESULT PrintTo(LPSTR,BOOL); 889 + HRESULT PrintTo(LPSTR, BOOL); 953 890 } 954 -alias IFileViewer *LPFILEVIEWER; 891 +alias IFileViewer LPFILEVIEWER; 955 892 956 -interface IFileSystemBindData : IUnknown 957 -{ 958 - HRESULT QueryInterface(REFIID,PVOID*); 959 - ULONG AddRef(); 960 - ULONG Release(); 961 - HRESULT SetFindData(CPtr!(WIN32_FIND_DATAW)); 893 +interface IFileSystemBindData : IUnknown { 894 + HRESULT SetFindData(const(WIN32_FIND_DATAW)*); 962 895 HRESULT GetFindData(WIN32_FIND_DATAW*); 963 896 } 964 897 965 -interface IPersistFolder : IPersist 966 -{ 967 - HRESULT QueryInterface(REFIID,PVOID*); 968 - ULONG AddRef(); 969 - ULONG Release(); 898 +interface IPersistFolder : IPersist { 899 + HRESULT GetClassID(CLSID*); 900 + HRESULT Initialize(LPCITEMIDLIST); 901 +} 902 +alias IPersistFolder LPPERSISTFOLDER; 903 + 904 +static if (_WIN32_IE >= 0x400 || _WIN32_WINNT >= 0x500) { 905 + 906 +interface IPersistFolder2 : IPersistFolder { 970 907 HRESULT GetClassID(CLSID*); 971 908 HRESULT Initialize(LPCITEMIDLIST); 909 + HRESULT GetCurFolder(LPITEMIDLIST*); 972 910 } 973 -alias IPersistFolder *LPPERSISTFOLDER; 911 +alias IPersistFolder2 LPPERSISTFOLDER2; 974 912 975 -static if (_WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500) { 913 +}/* _WIN32_IE >= 0x400 || _WIN32_WINNT >= 0x500 */ 976 914 977 -interface IPersistFolder2 : IPersistFolder 978 -{ 979 - HRESULT QueryInterface(REFIID,PVOID*); 980 - ULONG AddRef(); 981 - ULONG Release(); 915 +static if (_WIN32_IE >= 0x500) { 916 + 917 +interface IPersistFolder3 : IPersistFolder2 { 982 918 HRESULT GetClassID(CLSID*); 983 919 HRESULT Initialize(LPCITEMIDLIST); 984 920 HRESULT GetCurFolder(LPITEMIDLIST*); 985 -} 986 -alias IPersistFolder2 *LPPERSISTFOLDER2; 987 - 988 -}/* _WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500 */ 989 - 990 -static if (_WIN32_IE >= 0x0500) { 991 - 992 -interface IPersistFolder3 : IPersistFolder2 993 -{ 994 - HRESULT QueryInterface(REFIID,PVOID*); 995 - ULONG AddRef(); 996 - ULONG Release(); 997 - HRESULT GetClassID(CLSID*); 998 - HRESULT Initialize(LPCITEMIDLIST); 999 - HRESULT GetCurFolder(LPITEMIDLIST*); 1000 - HRESULT InitializeEx(IBindCtx*,LPCITEMIDLIST, CPtr!(PERSIST_FOLDER_TARGET_INFO)); 921 + HRESULT InitializeEx(IBindCtx, LPCITEMIDLIST, const(PERSIST_FOLDER_TARGET_INFO)*); 1001 922 HRESULT GetFolderTargetInfo(PERSIST_FOLDER_TARGET_INFO*); 1002 923 } 1003 -alias IPersistFolder3 *LPPERSISTFOLDER3; 924 +alias IPersistFolder3 LPPERSISTFOLDER3; 1004 925 1005 -} /* _WIN32_IE >= 0x0500 */ 926 +} /* _WIN32_IE >= 0x500 */ 1006 927 1007 -alias IShellBrowser* LPSHELLBROWSER; 1008 -alias IShellView* LPSHELLVIEW; 928 +alias IShellBrowser LPSHELLBROWSER; 929 +alias IShellView LPSHELLVIEW; 1009 930 1010 -interface IShellBrowser : IOleWindow 1011 -{ 1012 - HRESULT QueryInterface(REFIID,PVOID*); 1013 - ULONG AddRef(); 1014 - ULONG Release(); 931 +interface IShellBrowser : IOleWindow { 932 + HRESULT GetWindow(HWND*); 933 + HRESULT ContextSensitiveHelp(BOOL); 934 + HRESULT InsertMenusSB(HMENU, LPOLEMENUGROUPWIDTHS); 935 + HRESULT SetMenuSB(HMENU, HOLEMENU, HWND); 936 + HRESULT RemoveMenusSB(HMENU); 937 + HRESULT SetStatusTextSB(LPCOLESTR); 938 + HRESULT EnableModelessSB(BOOL); 939 + HRESULT TranslateAcceleratorSB(LPMSG, WORD); 940 + HRESULT BrowseObject(LPCITEMIDLIST, UINT); 941 + HRESULT GetViewStateStream(DWORD, LPSTREAM*); 942 + HRESULT GetControlWindow(UINT, HWND*); 943 + HRESULT SendControlMsg(UINT, UINT, WPARAM, LPARAM, LRESULT*); 944 + HRESULT QueryActiveShellView(LPSHELLVIEW*); 945 + HRESULT OnViewWindowActive(LPSHELLVIEW); 946 + HRESULT SetToolbarItems(LPTBBUTTON, UINT, UINT); 947 +} 948 + 949 +interface IShellView : IOleWindow { 1015 950 HRESULT GetWindow(HWND*); 1016 951 HRESULT ContextSensitiveHelp(BOOL); 1017 - HRESULT InsertMenusSB(HMENU,LPOLEMENUGROUPWIDTHS); 1018 - HRESULT SetMenuSB(HMENU,HOLEMENU,HWND); 1019 - HRESULT RemoveMenusSB(HMENU); 1020 - HRESULT SetStatusTextSB(LPCOLESTR); 1021 - HRESULT EnableModelessSB(BOOL); 1022 - HRESULT TranslateAcceleratorSB(LPMSG,WORD); 1023 - HRESULT BrowseObject(LPCITEMIDLIST,UINT); 1024 - HRESULT GetViewStateStream(DWORD,LPSTREAM*); 1025 - HRESULT GetControlWindow(UINT,HWND*); 1026 - HRESULT SendControlMsg(UINT,UINT,WPARAM,LPARAM,LRESULT*); 1027 - HRESULT QueryActiveShellView(LPSHELLVIEW*); 1028 - HRESULT OnViewWindowActive(LPSHELLVIEW); 1029 - HRESULT SetToolbarItems(LPTBBUTTON,UINT,UINT); 1030 -} 1031 - 1032 -interface IShellView : IOleWindow 1033 -{ 1034 - HRESULT QueryInterface(REFIID,PVOID*); 1035 - ULONG AddRef(); 1036 - ULONG Release(); 952 + HRESULT TranslateAccelerator(LPMSG); 953 +//[No] #ifdef _FIX_ENABLEMODELESS_CONFLICT 954 +//[No] STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE; 955 +//[Yes] #else 956 + HRESULT EnableModeless(BOOL); 957 +//[Yes] #endif 958 + HRESULT UIActivate(UINT); 959 + HRESULT Refresh(); 960 + HRESULT CreateViewWindow(IShellView, LPCFOLDERSETTINGS, LPSHELLBROWSER, RECT*, HWND*); 961 + HRESULT DestroyViewWindow(); 962 + HRESULT GetCurrentInfo(LPFOLDERSETTINGS); 963 + HRESULT AddPropertySheetPages(DWORD, LPFNADDPROPSHEETPAGE, LPARAM); 964 + HRESULT SaveViewState(); 965 + HRESULT SelectItem(LPCITEMIDLIST, UINT); 966 + HRESULT GetItemObject(UINT, REFIID, PVOID*); 967 +} 968 + 969 +interface ICommDlgBrowser : IUnknown { 970 + HRESULT OnDefaultCommand(IShellView); 971 + HRESULT OnStateChange(IShellView, ULONG); 972 + HRESULT IncludeObject(IShellView, LPCITEMIDLIST); 973 +} 974 +alias ICommDlgBrowser LPCOMMDLGBROWSER; 975 + 976 +alias GUID SHELLVIEWID; 977 + 978 +struct SV2CVW2_PARAMS { 979 + DWORD cbSize = this.sizeof; 980 + IShellView psvPrev; 981 + FOLDERSETTINGS *pfs; 982 + IShellBrowser psbOwner; 983 + RECT *prcView; 984 + const(SHELLVIEWID)* pvid; 985 + HWND hwndView; 986 +} 987 +alias SV2CVW2_PARAMS* LPSV2CVW2_PARAMS; 988 + 989 +interface IShellView2 : IShellView { 1037 990 HRESULT GetWindow(HWND*); 1038 991 HRESULT ContextSensitiveHelp(BOOL); 1039 992 HRESULT TranslateAccelerator(LPMSG); 1040 993 //[No] #ifdef _FIX_ENABLEMODELESS_CONFLICT 1041 994 //[No] STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE; 1042 995 //[Yes] #else 1043 996 HRESULT EnableModeless(BOOL); 1044 997 //[Yes] #endif 1045 998 HRESULT UIActivate(UINT); 1046 999 HRESULT Refresh(); 1047 - HRESULT CreateViewWindow(IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RECT*,HWND*); 1000 + HRESULT CreateViewWindow(IShellView, LPCFOLDERSETTINGS, LPSHELLBROWSER, RECT*, HWND*); 1048 1001 HRESULT DestroyViewWindow(); 1049 1002 HRESULT GetCurrentInfo(LPFOLDERSETTINGS); 1050 - HRESULT AddPropertySheetPages(DWORD,LPFNADDPROPSHEETPAGE,LPARAM); 1003 + HRESULT AddPropertySheetPages(DWORD, LPFNADDPROPSHEETPAGE, LPARAM); 1051 1004 HRESULT SaveViewState(); 1052 - HRESULT SelectItem(LPCITEMIDLIST,UINT); 1053 - HRESULT GetItemObject(UINT,REFIID,PVOID*); 1054 -} 1055 - 1056 -interface ICommDlgBrowser : IUnknown 1057 -{ 1058 - HRESULT QueryInterface(REFIID,PVOID*); 1059 - ULONG AddRef(); 1060 - ULONG Release(); 1061 - HRESULT OnDefaultCommand(IShellView*); 1062 - HRESULT OnStateChange(IShellView*,ULONG); 1063 - HRESULT IncludeObject(IShellView*,LPCITEMIDLIST); 1064 -} 1065 -alias ICommDlgBrowser *LPCOMMDLGBROWSER; 1066 - 1067 -alias GUID SHELLVIEWID; 1068 - 1069 -struct SV2CVW2_PARAMS { 1070 - DWORD cbSize = this.sizeof; 1071 - IShellView *psvPrev; 1072 - FOLDERSETTINGS *pfs; 1073 - IShellBrowser *psbOwner; 1074 - RECT *prcView; 1075 - CPtr!(SHELLVIEWID) pvid; 1076 - HWND hwndView; 1077 -} 1078 -alias SV2CVW2_PARAMS* LPSV2CVW2_PARAMS; 1079 - 1080 -interface IShellView2 : IShellView 1081 -{ 1082 - 1083 - HRESULT QueryInterface(REFIID,PVOID*); 1084 - ULONG AddRef(); 1085 - ULONG Release(); 1086 - HRESULT GetWindow(HWND*); 1087 - HRESULT ContextSensitiveHelp(BOOL); 1088 - HRESULT TranslateAccelerator(LPMSG); 1089 -//[No] #ifdef _FIX_ENABLEMODELESS_CONFLICT 1090 -//[No] STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE; 1091 -//[Yes] #else 1092 - HRESULT EnableModeless(BOOL); 1093 -//[Yes] #endif 1094 - HRESULT UIActivate(UINT); 1095 - HRESULT Refresh(); 1096 - HRESULT CreateViewWindow(IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RECT*,HWND*); 1097 - HRESULT DestroyViewWindow(); 1098 - HRESULT GetCurrentInfo(LPFOLDERSETTINGS); 1099 - HRESULT AddPropertySheetPages(DWORD,LPFNADDPROPSHEETPAGE,LPARAM); 1100 - HRESULT SaveViewState(); 1101 - HRESULT SelectItem(LPCITEMIDLIST,UINT); 1102 - HRESULT GetItemObject(UINT,REFIID,PVOID*); 1103 - HRESULT GetView(SHELLVIEWID*,ULONG); 1005 + HRESULT SelectItem(LPCITEMIDLIST, UINT); 1006 + HRESULT GetItemObject(UINT, REFIID, PVOID*); 1007 + HRESULT GetView(SHELLVIEWID*, ULONG); 1104 1008 HRESULT CreateViewWindow2(LPSV2CVW2_PARAMS); 1105 1009 } 1106 1010 1107 -interface IShellExecuteHookA : IUnknown 1108 -{ 1109 - HRESULT QueryInterface(REFIID,PVOID*); 1110 - ULONG AddRef(); 1111 - ULONG Release(); 1011 +interface IShellExecuteHookA : IUnknown { 1112 1012 HRESULT Execute(LPSHELLEXECUTEINFOA); 1113 1013 } 1114 1014 1115 -interface IShellExecuteHookW : IUnknown 1116 -{ 1117 - HRESULT QueryInterface(REFIID,PVOID*); 1118 - ULONG AddRef(); 1119 - ULONG Release(); 1015 +interface IShellExecuteHookW : IUnknown { 1120 1016 HRESULT Execute(LPSHELLEXECUTEINFOW); 1121 1017 } 1122 1018 1123 -interface IShellIcon : IUnknown 1124 -{ 1125 - HRESULT QueryInterface(REFIID,PVOID*); 1126 - ULONG AddRef(); 1127 - ULONG Release(); 1128 - HRESULT GetIconOf(LPCITEMIDLIST,UINT,PINT); 1019 +interface IShellIcon : IUnknown { 1020 + HRESULT GetIconOf(LPCITEMIDLIST, UINT, PINT); 1129 1021 } 1130 -alias IShellIcon* LPSHELLICON; 1022 +alias IShellIcon LPSHELLICON; 1131 1023 1132 1024 struct SHELLFLAGSTATE { 1133 -// TODO 1134 - short bitflags_; // for D. 1135 - /* 1025 + short _bf; 1026 +/* 1136 1027 BOOL fShowAllObjects : 1; 1137 1028 BOOL fShowExtensions : 1; 1138 1029 BOOL fNoConfirmRecycle : 1; 1139 1030 BOOL fShowSysFiles : 1; 1140 1031 BOOL fShowCompColor : 1; 1141 1032 BOOL fDoubleClickInWebView : 1; 1142 1033 BOOL fDesktopHTML : 1; ................................................................................ 1144 1035 BOOL fDontPrettyPath : 1; 1145 1036 BOOL fShowAttribCol : 1; 1146 1037 BOOL fMapNetDrvBtn : 1; 1147 1038 BOOL fShowInfoTip : 1; 1148 1039 BOOL fHideIcons : 1; 1149 1040 UINT fRestFlags : 3; 1150 1041 */ 1042 + @property bool fShowAllObjects() { return cast(bool) (_bf & 0x0001); } 1043 + @property bool fShowExtensions() { return cast(bool) (_bf & 0x0002); } 1044 + @property bool fNoConfirmRecycle() { return cast(bool) (_bf & 0x0004); } 1045 + @property bool fShowSysFiles() { return cast(bool) (_bf & 0x0008); } 1046 + @property bool fShowCompColor() { return cast(bool) (_bf & 0x0010); } 1047 + @property bool fDoubleClickInWebView() { return cast(bool) (_bf & 0x0020); } 1048 + @property bool fDesktopHTML() { return cast(bool) (_bf & 0x0040); } 1049 + @property bool fWin95Classic() { return cast(bool) (_bf & 0x0080); } 1050 + @property bool fDontPrettyPath() { return cast(bool) (_bf & 0x0100); } 1051 + @property bool fShowAttribCol() { return cast(bool) (_bf & 0x0200); } 1052 + @property bool fMapNetDrvBtn() { return cast(bool) (_bf & 0x0400); } 1053 + @property bool fShowInfoTip() { return cast(bool) (_bf & 0x0800); } 1054 + @property bool fHideIcons() { return cast(bool) (_bf & 0x1000); } 1055 + @property ubyte fRestFlags() { return cast(ubyte) (_bf >> 13); } 1056 + 1057 + @property bool fShowAllObjects(bool f) { _bf = cast(ushort) ((_bf & ~0xFFFE) | f); return f; } 1058 + @property bool fShowExtensions(bool f) { _bf = cast(ushort) ((_bf & ~0xFFFD) | (f << 1)); return f; } 1059 + @property bool fNoConfirmRecycle(bool f) { _bf = cast(ushort) ((_bf & ~0xFFFB) | (f << 2)); return f; } 1060 + @property bool fShowSysFiles(bool f) { _bf = cast(ushort) ((_bf & ~0xFFF8) | (f << 3)); return f; } 1061 + @property bool fShowCompColor(bool f) { _bf = cast(ushort) ((_bf & ~0xFFEF) | (f << 4)); return f; } 1062 + @property bool fDoubleClickInWebView(bool f) { _bf = cast(ushort) ((_bf & ~0xFFDF) | (f << 5)); return f; } 1063 + @property bool fDesktopHTML(bool f) { _bf = cast(ushort) ((_bf & ~0xFFBF) | (f << 6)); return f; } 1064 + @property bool fWin95Classic(bool f) { _bf = cast(ushort) ((_bf & ~0xFF8F) | (f << 7)); return f; } 1065 + @property bool fDontPrettyPath(bool f) { _bf = cast(ushort) ((_bf & ~0xFEFF) | (f << 8)); return f; } 1066 + @property bool fShowAttribCol(bool f) { _bf = cast(ushort) ((_bf & ~0xFDFF) | (f << 9)); return f; } 1067 + @property bool fMapNetDrvBtn(bool f) { _bf = cast(ushort) ((_bf & ~0xFBFF) | (f << 10)); return f; } 1068 + @property bool fShowInfoTip(bool f) { _bf = cast(ushort) ((_bf & ~0xF8FF) | (f << 11)); return f; } 1069 + @property bool fHideIcons(bool f) { _bf = cast(ushort) ((_bf & ~0xEFFF) | (f << 12)); return f; } 1070 + @property ubyte fRestFlags(ubyte f) { _bf = cast(ushort) ((_bf & ~0x1FFF) | (f << 13)); return cast(ubyte) (f & 7); } 1151 1071 } 1152 1072 alias SHELLFLAGSTATE* LPSHELLFLAGSTATE; 1153 1073 1154 1074 const SSF_SHOWALLOBJECTS = 0x1; 1155 1075 const SSF_SHOWEXTENSIONS = 0x2; 1156 1076 const SSF_SHOWCOMPCOLOR = 0x8; 1157 1077 const SSF_SHOWSYSFILES = 0x20; ................................................................................ 1161 1081 const SSF_WIN95CLASSIC = 0x400; 1162 1082 const SSF_DONTPRETTYPATH = 0x800; 1163 1083 const SSF_MAPNETDRVBUTTON = 0x1000; 1164 1084 const SSF_SHOWINFOTIP = 0x2000; 1165 1085 const SSF_HIDEICONS = 0x4000; 1166 1086 const SSF_NOCONFIRMRECYCLE = 0x8000; 1167 1087 1168 -interface IShellIconOverlayIdentifier : IUnknown 1169 -{ 1170 - HRESULT QueryInterface(REFIID,PVOID*); 1171 - ULONG AddRef(); 1172 - ULONG Release(); 1173 - HRESULT IsMemberOf(LPCWSTR,DWORD); 1174 - HRESULT GetOverlayInfo(LPWSTR,int,int*,DWORD*); 1088 +interface IShellIconOverlayIdentifier : IUnknown { 1089 + HRESULT IsMemberOf(LPCWSTR, DWORD); 1090 + HRESULT GetOverlayInfo(LPWSTR, int, int*, DWORD*); 1175 1091 HRESULT GetPriority(int*); 1176 1092 } 1177 1093 1178 1094 const ISIOI_ICONFILE = 0x00000001; 1179 1095 const ISIOI_ICONINDEX = 0x00000002; 1180 1096 1181 -static if (_WIN32_WINNT >= 0x0500) {/* W2K */ 1097 +static if (_WIN32_WINNT >= 0x500) { 1182 1098 struct SHELLSTATE { 1183 - //TODO: 1099 + uint _bf1; 1100 + DWORD dwWin95Unused; 1101 + UINT uWin95Unused; 1102 + LONG lParamSort; 1103 + int iSortDirection; 1104 + UINT _version; 1105 + UINT uNotUsed; 1106 + uint _bf2; 1184 1107 /* 1185 1108 BOOL fShowAllObjects : 1; 1186 1109 BOOL fShowExtensions : 1; 1187 1110 BOOL fNoConfirmRecycle : 1; 1188 1111 BOOL fShowSysFiles : 1; 1189 1112 BOOL fShowCompColor : 1; 1190 1113 BOOL fDoubleClickInWebView : 1; ................................................................................ 1195 1118 BOOL fMapNetDrvBtn : 1; 1196 1119 BOOL fShowInfoTip : 1; 1197 1120 BOOL fHideIcons : 1; 1198 1121 BOOL fWebView : 1; 1199 1122 BOOL fFilter : 1; 1200 1123 BOOL fShowSuperHidden : 1; 1201 1124 BOOL fNoNetCrawling : 1; 1202 - DWORD dwWin95Unused; 1203 - UINT uWin95Unused; 1204 - LONG lParamSort; 1205 - int iSortDirection; 1206 - UINT version; 1207 - UINT uNotUsed; 1125 + */ 1126 + @property bool fShowAllObjects() { return cast(bool) (_bf1 & 0x00000001); } 1127 + @property bool fShowExtensions() { return cast(bool) (_bf1 & 0x00000002); } 1128 + @property bool fNoConfirmRecycle() { return cast(bool) (_bf1 & 0x00000004); } 1129 + @property bool fShowSysFiles() { return cast(bool) (_bf1 & 0x00000008); } 1130 + @property bool fShowCompColor() { return cast(bool) (_bf1 & 0x00000010); } 1131 + @property bool fDoubleClickInWebView() { return cast(bool) (_bf1 & 0x00000020); } 1132 + @property bool fDesktopHTML() { return cast(bool) (_bf1 & 0x00000040); } 1133 + @property bool fWin95Classic() { return cast(bool) (_bf1 & 0x00000080); } 1134 + @property bool fDontPrettyPath() { return cast(bool) (_bf1 & 0x00000100); } 1135 + @property bool fShowAttribCol() { return cast(bool) (_bf1 & 0x00000200); } 1136 + @property bool fMapNetDrvBtn() { return cast(bool) (_bf1 & 0x00000400); } 1137 + @property bool fShowInfoTip() { return cast(bool) (_bf1 & 0x00000800); } 1138 + @property bool fHideIcons() { return cast(bool) (_bf1 & 0x00001000); } 1139 + @property bool fWebView() { return cast(bool) (_bf1 & 0x00002000); } 1140 + @property bool fFilter() { return cast(bool) (_bf1 & 0x00004000); } 1141 + @property bool fShowSuperHidden() { return cast(bool) (_bf1 & 0x00008000); } 1142 + @property bool fNoNetCrawling() { return cast(bool) (_bf1 & 0x00010000); } 1143 + 1144 + @property bool fShowAllObjects(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFFFFFE) | f); return f; } 1145 + @property bool fShowExtensions(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFFFFFD) | (f << 1)); return f; } 1146 + @property bool fNoConfirmRecycle(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFFFFFB) | (f << 2)); return f; } 1147 + @property bool fShowSysFiles(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFFFFF8) | (f << 3)); return f; } 1148 + @property bool fShowCompColor(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFFFFEF) | (f << 4)); return f; } 1149 + @property bool fDoubleClickInWebView(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFFFFDF) | (f << 5)); return f; } 1150 + @property bool fDesktopHTML(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFFFFBF) | (f << 6)); return f; } 1151 + @property bool fWin95Classic(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFFFF8F) | (f << 7)); return f; } 1152 + @property bool fDontPrettyPath(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFFFEFF) | (f << 8)); return f; } 1153 + @property bool fShowAttribCol(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFFFDFF) | (f << 9)); return f; } 1154 + @property bool fMapNetDrvBtn(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFFFBFF) | (f << 10)); return f; } 1155 + @property bool fShowInfoTip(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFFF8FF) | (f << 11)); return f; } 1156 + @property bool fHideIcons(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFFEFFF) | (f << 12)); return f; } 1157 + @property bool fWebView(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFFDFFF) | (f << 13)); return f; } 1158 + @property bool fFilter(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFFBFFF) | (f << 14)); return f; } 1159 + @property bool fShowSuperHidden(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFF8FFF) | (f << 15)); return f; } 1160 + @property bool fNoNetCrawling(bool f) { _bf1 = cast(uint) ((_bf1 & ~0xFFFEFFFF) | (f << 16)); return f; } 1161 + /* 1208 1162 BOOL fSepProcess : 1; 1209 1163 BOOL fStartPanelOn : 1; 1210 1164 BOOL fShowStartPage : 1; 1211 1165 UINT fSpareFlags : 13; 1212 -*/ 1166 + */ 1167 + @property bool fSepProcess() { return cast(bool) (_bf2 & 0x00000001); } 1168 + @property bool fStartPanelOn() { return cast(bool) (_bf2 & 0x00000002); } 1169 + @property bool fShowStartPage() { return cast(bool) (_bf2 & 0x00000004); } 1170 + @property ushort fSpareFlags() { return cast(ushort) ((_bf2 & 0x0000FFF8) >> 3); } 1171 + 1172 + @property bool fSepProcess(bool f) { _bf2 = cast(uint) ((_bf2 & ~0xFFFFFFFE) | f); return f; } 1173 + @property bool fStartPanelOn(bool f) { _bf2 = cast(uint) ((_bf2 & ~0xFFFFFFFD) | (f << 1)); return f; } 1174 + @property bool fShowStartPage(bool f) { _bf2 = cast(uint) ((_bf2 & ~0xFFFFFFFB) | (f << 2)); return f; } 1175 + @property ushort fSpareFlags(ushort f) { 1176 + _bf2 = cast(ushort) ((_bf2 & ~0xFFFF0007) | ((f & 0x1FFF) << 3)); 1177 + return cast(ushort) (f & 0x1FFF); 1178 + } 1213 1179 } 1214 1180 alias SHELLSTATE* LPSHELLSTATE; 1215 1181 } 1216 1182 1217 -static if (_WIN32_IE >= 0x0500) { 1218 - align(8): 1219 - struct SHDRAGIMAGE { 1220 - SIZE sizeDragImage; 1221 - POINT ptOffset; 1222 - HBITMAP hbmpDragImage; 1223 - COLORREF crColorKey; 1183 +static if (_WIN32_IE >= 0x500) { 1184 + align(8) { 1185 + struct SHDRAGIMAGE { 1186 + SIZE sizeDragImage; 1187 + POINT ptOffset; 1188 + HBITMAP hbmpDragImage; 1189 + COLORREF crColorKey; 1190 + } 1191 + alias SHDRAGIMAGE* LPSHDRAGIMAGE; 1224 1192 } 1225 - alias SHDRAGIMAGE* LPSHDRAGIMAGE; 1226 - align: 1227 1193 1228 - interface IDragSourceHelper : IUnknown 1229 - { 1230 - HRESULT QueryInterface(REFIID riid, void **ppv); 1231 - ULONG AddRef(); 1232 - ULONG Release(); 1233 - HRESULT InitializeFromBitmap(LPSHDRAGIMAGE pshdi, IDataObject* pDataObject); 1234 - HRESULT InitializeFromWindow(HWND hwnd, POINT* ppt, IDataObject* pDataObject); 1194 + interface IDragSourceHelper : IUnknown { 1195 + HRESULT InitializeFromBitmap(LPSHDRAGIMAGE pshdi, IDataObject pDataObject); 1196 + HRESULT InitializeFromWindow(HWND hwnd, POINT* ppt, IDataObject pDataObject); 1235 1197 } 1236 1198 1237 - interface IDropTargetHelper : IUnknown 1238 - { 1239 - HRESULT QueryInterface(REFIID riid, void** ppv); 1240 - ULONG AddRef(); 1241 - ULONG Release(); 1242 - HRESULT DragEnter(HWND hwndTarget, IDataObject* pDataObject, POINT* ppt, DWORD dwEffect); 1199 + interface IDropTargetHelper : IUnknown { 1200 + HRESULT DragEnter(HWND hwndTarget, IDataObject pDataObject, POINT* ppt, DWORD dwEffect); 1243 1201 HRESULT DragLeave(); 1244 1202 HRESULT DragOver(POINT* ppt, DWORD dwEffect); 1245 - HRESULT Drop(IDataObject* pDataObject, POINT* ppt, DWORD dwEffect); 1203 + HRESULT Drop(IDataObject pDataObject, POINT* ppt, DWORD dwEffect); 1246 1204 HRESULT Show(BOOL fShow); 1247 1205 } 1248 1206 } 1249 1207 1250 1208 extern (Windows): 1251 -void SHAddToRecentDocs(UINT,PCVOID); 1209 +void SHAddToRecentDocs(UINT, PCVOID); 1252 1210 LPITEMIDLIST SHBrowseForFolderA(PBROWSEINFOA); 1253 1211 LPITEMIDLIST SHBrowseForFolderW(PBROWSEINFOW); 1254 -void SHChangeNotify(LONG,UINT,PCVOID,PCVOID); 1255 -HRESULT SHGetDataFromIDListA(LPSHELLFOLDER,LPCITEMIDLIST,int,PVOID,int); 1256 -HRESULT SHGetDataFromIDListW(LPSHELLFOLDER,LPCITEMIDLIST,int,PVOID,int); 1212 +void SHChangeNotify(LONG, UINT, PCVOID, PCVOID); 1213 +HRESULT SHGetDataFromIDListA(LPSHELLFOLDER, LPCITEMIDLIST, int, PVOID, int); 1214 +HRESULT SHGetDataFromIDListW(LPSHELLFOLDER, LPCITEMIDLIST, int, PVOID, int); 1257 1215 HRESULT SHGetDesktopFolder(LPSHELLFOLDER*); 1258 -HRESULT SHGetInstanceExplorer(IUnknown **); 1216 +HRESULT SHGetInstanceExplorer(IUnknown*); 1259 1217 HRESULT SHGetMalloc(LPMALLOC*); 1260 -BOOL SHGetPathFromIDListA(LPCITEMIDLIST,LPSTR); 1261 -BOOL SHGetPathFromIDListW(LPCITEMIDLIST,LPWSTR); 1262 -HRESULT SHGetSpecialFolderLocation(HWND,int,LPITEMIDLIST*); 1218 +BOOL SHGetPathFromIDListA(LPCITEMIDLIST, LPSTR); 1219 +BOOL SHGetPathFromIDListW(LPCITEMIDLIST, LPWSTR); 1220 +HRESULT SHGetSpecialFolderLocation(HWND, int, LPITEMIDLIST*); 1263 1221 HRESULT SHLoadInProc(REFCLSID); 1264 1222 1265 -static if (_WIN32_IE >= 0x0400) { 1266 - BOOL SHGetSpecialFolderPathA(HWND,LPSTR,int,BOOL); 1267 - BOOL SHGetSpecialFolderPathW(HWND,LPWSTR,int,BOOL); 1223 +static if (_WIN32_IE >= 0x400) { 1224 + BOOL SHGetSpecialFolderPathA(HWND, LPSTR, int, BOOL); 1225 + BOOL SHGetSpecialFolderPathW(HWND, LPWSTR, int, BOOL); 1268 1226 } 1269 1227 1270 1228 /* SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K */ 1271 -HRESULT SHGetFolderPathA(HWND,int,HANDLE,DWORD,LPSTR); 1272 -HRESULT SHGetFolderPathW(HWND,int,HANDLE,DWORD,LPWSTR); 1229 +HRESULT SHGetFolderPathA(HWND, int, HANDLE, DWORD, LPSTR); 1230 +HRESULT SHGetFolderPathW(HWND, int, HANDLE, DWORD, LPWSTR); 1273 1231 1274 -static if ((_WIN32_WINDOWS >= 0x0490) || (_WIN32_WINNT >= 0x0500)) {/* ME or W2K */ 1275 - HRESULT SHGetFolderLocation(HWND,int,HANDLE,DWORD,LPITEMIDLIST*); 1276 -} 1277 - 1278 -static if (_WIN32_WINNT >= 0x0500) { 1279 - INT SHCreateDirectoryExA(HWND,LPCSTR,LPSECURITY_ATTRIBUTES); 1280 - INT SHCreateDirectoryExW(HWND,LPCWSTR,LPSECURITY_ATTRIBUTES); 1281 - HRESULT SHBindToParent(LPCITEMIDLIST,REFIID,VOID**,LPCITEMIDLIST*); 1232 +static if (_WIN32_WINNT >= 0x500) { 1233 + INT SHGetIconOverlayIndexW(LPCWSTR pszIconPath, int iIconIndex); 1234 + INT SHGetIconOverlayIndexA(LPCSTR pszIconPath, int iIconIndex); 1235 + HRESULT SHGetFolderLocation(HWND, int, HANDLE, DWORD, LPITEMIDLIST*); 1236 + INT SHCreateDirectoryExA(HWND, LPCSTR, LPSECURITY_ATTRIBUTES); 1237 + INT SHCreateDirectoryExW(HWND, LPCWSTR, LPSECURITY_ATTRIBUTES); 1238 + HRESULT SHBindToParent(LPCITEMIDLIST, REFIID, VOID**, LPCITEMIDLIST*); 1282 1239 } 1283 1240 1284 -static if (_WIN32_WINNT >= 0x0501) {/* XP */ 1285 - HRESULT SHGetFolderPathAndSubDirA(HWND,int,HANDLE,DWORD,LPCSTR,LPSTR); 1286 - HRESULT SHGetFolderPathAndSubDirW(HWND,int,HANDLE,DWORD,LPCWSTR,LPWSTR); 1241 +static if (_WIN32_WINNT >= 0x501) { 1242 + enum { 1243 + PRF_VERIFYEXISTS = 0x0001, 1244 + PRF_TRYPROGRAMEXTENSIONS = (0x0002 | PRF_VERIFYEXISTS), 1245 + PRF_FIRSTDIRDEF = 0x0004, 1246 + PRF_DONTFINDLNK = 0x0008, 1247 + IDO_SHGIOI_SHARE = 0x0FFFFFFF, 1248 + IDO_SHGIOI_LINK = 0x0FFFFFFE, 1249 + IDO_SHGIOI_SLOWFILE = 0x0FFFFFFD, 1250 + IDO_SHGIOI_DEFAULT = 0x0FFFFFFC 1251 + } 1252 + 1253 + struct SHDESCRIPTIONID { 1254 + DWORD dwDescriptionId; 1255 + CLSID clsid; 1256 + } 1257 + alias SHDESCRIPTIONID* LPSHDESCRIPTIONID; 1258 + 1259 + BOOL PathResolve(LPWSTR, LPCWSTR*, UINT); 1260 + HRESULT SHGetFolderPathAndSubDirA(HWND, int, HANDLE, DWORD, LPCSTR, LPSTR); 1261 + HRESULT SHGetFolderPathAndSubDirW(HWND, int, HANDLE, DWORD, LPCWSTR, LPWSTR); 1262 + HRESULT SHParseDisplayName(LPCWSTR, IBindCtx, LPITEMIDLIST, SFGAOF, SFGAOF*); 1287 1263 } 1288 1264 1289 -void SHGetSettings(LPSHELLFLAGSTATE,DWORD); 1265 +void SHGetSettings(LPSHELLFLAGSTATE, DWORD); 1290 1266 1291 -static if (_WIN32_WINNT >= 0x0500) {/* W2K */ 1292 - void SHGetSetSettings(LPSHELLSTATE,DWORD,BOOL); 1293 -} 1294 - 1295 -static if (_WIN32_WINNT >= 0x0500) {/* W2K */ 1267 +static if (_WIN32_WINNT >= 0x500) { 1268 + void SHGetSetSettings(LPSHELLSTATE, DWORD, BOOL); 1296 1269 BOOL ILIsEqual(LPCITEMIDLIST, LPCITEMIDLIST); 1297 1270 BOOL ILIsParent(LPCITEMIDLIST, LPCITEMIDLIST, BOOL); 1298 1271 BOOL ILRemoveLastID(LPITEMIDLIST); 1299 - HRESULT ILLoadFromStream(IStream*, LPITEMIDLIST*); 1300 - HRESULT ILSaveToStream(IStream*, LPCITEMIDLIST); 1272 + HRESULT ILLoadFromStream(IStream, LPITEMIDLIST*); 1273 + HRESULT ILSaveToStream(IStream, LPCITEMIDLIST); 1301 1274 LPITEMIDLIST ILAppendID(LPITEMIDLIST, LPCSHITEMID, BOOL); 1302 1275 LPITEMIDLIST ILClone(LPCITEMIDLIST); 1303 1276 LPITEMIDLIST ILCloneFirst(LPCITEMIDLIST); 1304 1277 LPITEMIDLIST ILCombine(LPCITEMIDLIST, LPCITEMIDLIST); 1305 1278 LPITEMIDLIST ILFindChild(LPCITEMIDLIST, LPCITEMIDLIST); 1306 1279 LPITEMIDLIST ILFindLastID(LPCITEMIDLIST); 1307 1280 LPITEMIDLIST ILGetNext(LPCITEMIDLIST); 1308 1281 UINT ILGetSize(LPCITEMIDLIST); 1309 1282 void ILFree(LPITEMIDLIST); 1310 1283 1311 - HRESULT SHCoCreateInstance(LPCWSTR,REFCLSID,IUnknown*,REFIID,void**); 1284 + HRESULT SHCoCreateInstance(LPCWSTR, REFCLSID, IUnknown, REFIID, void**); 1312 1285 } 1313 1286 1314 1287 version(Unicode) { 1315 1288 alias IShellExecuteHookW IShellExecuteHook; 1316 1289 alias IShellLinkW IShellLink; 1317 1290 alias BROWSEINFOW BROWSEINFO; 1318 1291 alias SHBrowseForFolderW SHBrowseForFolder; 1319 1292 alias SHGetDataFromIDListW SHGetDataFromIDList; 1320 1293 alias SHGetPathFromIDListW SHGetPathFromIDList; 1321 - static if (_WIN32_IE >= 0x0400) { 1294 + static if (_WIN32_IE >= 0x400) { 1322 1295 alias SHGetSpecialFolderPathW SHGetSpecialFolderPath; 1323 1296 } 1324 1297 alias SHGetFolderPathW SHGetFolderPath; 1325 - static if (_WIN32_WINNT >= 0x0500) { 1298 + static if (_WIN32_WINNT >= 0x500) { 1299 + alias SHGetIconOverlayIndexW SHGetIconOverlayIndex; 1326 1300 alias SHCreateDirectoryExW SHCreateDirectoryEx; 1327 1301 } 1328 - static if (_WIN32_WINNT >= 0x0501) { 1302 + static if (_WIN32_WINNT >= 0x501) { 1329 1303 alias SHGetFolderPathAndSubDirW SHGetFolderPathAndSubDir; 1330 1304 } 1331 1305 alias FILEDESCRIPTORW FILEDESCRIPTOR; 1332 1306 alias LPFILEDESCRIPTORW LPFILEDESCRIPTOR; 1333 1307 alias FILEGROUPDESCRIPTORW FILEGROUPDESCRIPTOR; 1334 1308 alias LPFILEGROUPDESCRIPTORW LPFILEGROUPDESCRIPTOR; 1335 1309 ................................................................................ 1336 1310 } else { 1337 1311 alias IShellExecuteHookA IShellExecuteHook; 1338 1312 alias IShellLinkA IShellLink; 1339 1313 alias BROWSEINFOA BROWSEINFO; 1340 1314 alias SHBrowseForFolderA SHBrowseForFolder; 1341 1315 alias SHGetDataFromIDListA SHGetDataFromIDList; 1342 1316 alias SHGetPathFromIDListA SHGetPathFromIDList; 1343 - static if (_WIN32_IE >= 0x0400) { 1317 + static if (_WIN32_IE >= 0x400) { 1344 1318 alias SHGetSpecialFolderPathA SHGetSpecialFolderPath; 1345 1319 } 1346 1320 alias SHGetFolderPathA SHGetFolderPath; 1347 - static if (_WIN32_WINNT >= 0x0500) { 1321 + static if (_WIN32_WINNT >= 0x500) { 1322 + alias SHGetIconOverlayIndexA SHGetIconOverlayIndex; 1348 1323 alias SHCreateDirectoryExA SHCreateDirectoryEx; 1349 1324 } 1350 - static if (_WIN32_WINNT >= 0x0501) { 1325 + static if (_WIN32_WINNT >= 0x501) { 1351 1326 alias SHGetFolderPathAndSubDirA SHGetFolderPathAndSubDir; 1352 1327 } 1353 1328 alias FILEDESCRIPTORA FILEDESCRIPTOR; 1354 1329 alias LPFILEDESCRIPTORA LPFILEDESCRIPTOR; 1355 1330 alias FILEGROUPDESCRIPTORA FILEGROUPDESCRIPTOR; 1356 1331 alias LPFILEGROUPDESCRIPTORA LPFILEGROUPDESCRIPTOR; 1357 1332 } 1358 1333 alias BROWSEINFO* PBROWSEINFO, LPBROWSEINFO; 1334 + 1335 +static if (_WIN32_WINNT >= 0x501) { 1336 + interface IFolderView : IUnknown { 1337 + HRESULT GetAutoArrange(); 1338 + HRESULT GetCurrentViewMode(UINT); 1339 + HRESULT GetDefaultSpacing(POINT*); 1340 + HRESULT GetFocusedItem(int*); 1341 + HRESULT GetFolder(REFIID, PVOID*); 1342 + HRESULT GetItemPosition(LPCITEMIDLIST, POINT*); 1343 + HRESULT GetSelectionMarkedItem(int*); 1344 + HRESULT GetSpacing(POINT*); 1345 + HRESULT Item(int, LPITEMIDLIST*); 1346 + HRESULT ItemCount(UINT, int*); 1347 + HRESULT Items(UINT, REFIID, PVOID*); 1348 + HRESULT SelectAndPositionItems(UINT, LPCITEMIDLIST*, POINT*, DWORD); 1349 + HRESULT SelectItem(int, DWORD); 1350 + HRESULT SetCurrentViewMode(UINT); 1351 + } 1352 + alias IFolderView LPFOLDERVIEW; 1353 +}

Modified src/win32/shlwapi.d from [06ead287f10f9815] to [b2149b33a45a6395].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.shlwapi; 11 -pragma(lib, "shlwapi.lib"); 11 +pragma(lib, "shlwapi"); 12 12 13 13 /* Changes compared to MinGW: 14 14 wnsprintf functions are not included. 15 15 // Macros unneeded for D 16 16 #define StrCmpIA lstrcmpiA; 17 17 #define StrCmpA lstrcmpA; 18 18 #define StrCpyA lstrcpyA; ................................................................................ 114 114 URLIS_NOHISTORY, 115 115 URLIS_FILEURL, 116 116 URLIS_APPLIABLE, 117 117 URLIS_DIRECTORY, 118 118 URLIS_HASQUERY 119 119 } 120 120 121 -alias HANDLE HUSKEY; 121 +mixin DECLARE_HANDLE!("HUSKEY"); 122 122 alias HUSKEY* PHUSKEY; 123 123 124 124 extern (Windows) 125 125 { 126 126 alias HRESULT function (DLLVERSIONINFO *) DLLGETVERSIONPROC; 127 127 } 128 128 ................................................................................ 153 153 } 154 154 155 155 BOOL UrlIsFileUrlW(LPCWSTR pszURL) 156 156 { 157 157 return UrlIsW(pszURL, URLIS.URLIS_FILEURL); 158 158 } 159 159 160 -HRESULT UrlUnescapeInPlaceA(LPSTR pszUrl,DWORD dwFlags) 160 +HRESULT UrlUnescapeInPlaceA(LPSTR pszUrl, DWORD dwFlags) 161 161 { 162 162 return UrlUnescapeA(pszUrl, null, null, dwFlags | URL_UNESCAPE_INPLACE); 163 163 } 164 -HRESULT UrlUnescapeInPlaceW(LPWSTR pszUrl,DWORD dwFlags) 164 +HRESULT UrlUnescapeInPlaceW(LPWSTR pszUrl, DWORD dwFlags) 165 165 { 166 166 return UrlUnescapeW(pszUrl, null, null, dwFlags | URL_UNESCAPE_INPLACE); 167 167 } 168 168 169 169 extern (Windows): 170 -BOOL ChrCmpIA(WORD,WORD); 171 -BOOL ChrCmpIW(WCHAR,WCHAR); 172 -BOOL IntlStrEqWorkerA(BOOL,LPCSTR,LPCSTR,int); 173 -BOOL IntlStrEqWorkerW(BOOL,LPCWSTR,LPCWSTR,int); 174 -HRESULT SHStrDupA(LPCSTR,LPWSTR*); 175 -HRESULT SHStrDupW(LPCWSTR,LPWSTR*); 176 -LPSTR StrCatA(LPSTR,LPCSTR); 177 -LPWSTR StrCatW(LPWSTR,LPCWSTR); 178 -LPSTR StrCatBuffA(LPSTR,LPCSTR,int); 179 -LPWSTR StrCatBuffW(LPWSTR,LPCWSTR,int); 180 -DWORD StrCatChainW(LPWSTR,DWORD,DWORD,LPCWSTR); 181 -LPSTR StrChrA(LPCSTR,WORD); 182 -LPWSTR StrChrW(LPCWSTR,WCHAR); 183 -LPSTR StrChrIA(LPCSTR,WORD); 184 -LPWSTR StrChrIW(LPCWSTR,WCHAR); 185 -int StrCmpIW(LPCWSTR,LPCWSTR); 186 -int StrCmpW(LPCWSTR,LPCWSTR); 187 -LPWSTR StrCpyW(LPWSTR,LPCWSTR); 188 -LPWSTR StrCpyNW(LPWSTR,LPCWSTR,int); 189 -int StrCmpNA(LPCSTR,LPCSTR,int); 190 -int StrCmpNW(LPCWSTR,LPCWSTR,int); 191 -int StrCmpNIA(LPCSTR,LPCSTR,int); 192 -int StrCmpNIW(LPCWSTR,LPCWSTR,int); 193 -int StrCSpnA(LPCSTR,LPCSTR); 194 -int StrCSpnW(LPCWSTR,LPCWSTR); 195 -int StrCSpnIA(LPCSTR,LPCSTR); 196 -int StrCSpnIW(LPCWSTR,LPCWSTR); 170 +BOOL ChrCmpIA(WORD, WORD); 171 +BOOL ChrCmpIW(WCHAR, WCHAR); 172 +BOOL IntlStrEqWorkerA(BOOL, LPCSTR, LPCSTR, int); 173 +BOOL IntlStrEqWorkerW(BOOL, LPCWSTR, LPCWSTR, int); 174 +HRESULT SHStrDupA(LPCSTR, LPWSTR*); 175 +HRESULT SHStrDupW(LPCWSTR, LPWSTR*); 176 +LPSTR StrCatA(LPSTR, LPCSTR); 177 +LPWSTR StrCatW(LPWSTR, LPCWSTR); 178 +LPSTR StrCatBuffA(LPSTR, LPCSTR, int); 179 +LPWSTR StrCatBuffW(LPWSTR, LPCWSTR, int); 180 +DWORD StrCatChainW(LPWSTR, DWORD, DWORD, LPCWSTR); 181 +LPSTR StrChrA(LPCSTR, WORD); 182 +LPWSTR StrChrW(LPCWSTR, WCHAR); 183 +LPSTR StrChrIA(LPCSTR, WORD); 184 +LPWSTR StrChrIW(LPCWSTR, WCHAR); 185 +int StrCmpIW(LPCWSTR, LPCWSTR); 186 +int StrCmpW(LPCWSTR, LPCWSTR); 187 +LPWSTR StrCpyW(LPWSTR, LPCWSTR); 188 +LPWSTR StrCpyNW(LPWSTR, LPCWSTR, int); 189 +int StrCmpNA(LPCSTR, LPCSTR, int); 190 +int StrCmpNW(LPCWSTR, LPCWSTR, int); 191 +int StrCmpNIA(LPCSTR, LPCSTR, int); 192 +int StrCmpNIW(LPCWSTR, LPCWSTR, int); 193 +int StrCSpnA(LPCSTR, LPCSTR); 194 +int StrCSpnW(LPCWSTR, LPCWSTR); 195 +int StrCSpnIA(LPCSTR, LPCSTR); 196 +int StrCSpnIW(LPCWSTR, LPCWSTR); 197 197 LPSTR StrDupA(LPCSTR); 198 198 LPWSTR StrDupW(LPCWSTR); 199 -LPSTR StrFormatByteSize64A(LONGLONG,LPSTR,UINT); 200 -LPSTR StrFormatByteSizeA(DWORD,LPSTR,UINT); 201 -LPWSTR StrFormatByteSizeW(LONGLONG,LPWSTR,UINT); 202 -LPSTR StrFormatKBSizeA(LONGLONG,LPSTR,UINT); 203 -LPWSTR StrFormatKBSizeW(LONGLONG,LPWSTR,UINT); 204 -int StrFromTimeIntervalA(LPSTR,UINT,DWORD,int); 205 -int StrFromTimeIntervalW(LPWSTR,UINT,DWORD,int); 206 -BOOL StrIsIntlEqualA(BOOL,LPCSTR,LPCSTR,int); 207 -BOOL StrIsIntlEqualW(BOOL,LPCWSTR,LPCWSTR,int); 208 -LPSTR StrNCatA(LPSTR,LPCSTR,int); 209 -LPWSTR StrNCatW(LPWSTR,LPCWSTR,int); 210 -LPSTR StrPBrkA(LPCSTR,LPCSTR); 211 -LPWSTR StrPBrkW(LPCWSTR,LPCWSTR); 212 -LPSTR StrRChrA(LPCSTR,LPCSTR,WORD); 213 -LPWSTR StrRChrW(LPCWSTR,LPCWSTR,WCHAR); 214 -LPSTR StrRChrIA(LPCSTR,LPCSTR,WORD); 215 -LPWSTR StrRChrIW(LPCWSTR,LPCWSTR,WCHAR); 216 -LPSTR StrRStrIA(LPCSTR,LPCSTR,LPCSTR); 217 -LPWSTR StrRStrIW(LPCWSTR,LPCWSTR,LPCWSTR); 218 -int StrSpnA(LPCSTR,LPCSTR); 219 -int StrSpnW(LPCWSTR,LPCWSTR); 199 +LPSTR StrFormatByteSize64A(LONGLONG, LPSTR, UINT); 200 +LPSTR StrFormatByteSizeA(DWORD, LPSTR, UINT); 201 +LPWSTR StrFormatByteSizeW(LONGLONG, LPWSTR, UINT); 202 +LPSTR StrFormatKBSizeA(LONGLONG, LPSTR, UINT); 203 +LPWSTR StrFormatKBSizeW(LONGLONG, LPWSTR, UINT); 204 +int StrFromTimeIntervalA(LPSTR, UINT, DWORD, int); 205 +int StrFromTimeIntervalW(LPWSTR, UINT, DWORD, int); 206 +BOOL StrIsIntlEqualA(BOOL, LPCSTR, LPCSTR, int); 207 +BOOL StrIsIntlEqualW(BOOL, LPCWSTR, LPCWSTR, int); 208 +LPSTR StrNCatA(LPSTR, LPCSTR, int); 209 +LPWSTR StrNCatW(LPWSTR, LPCWSTR, int); 210 +LPSTR StrPBrkA(LPCSTR, LPCSTR); 211 +LPWSTR StrPBrkW(LPCWSTR, LPCWSTR); 212 +LPSTR StrRChrA(LPCSTR, LPCSTR, WORD); 213 +LPWSTR StrRChrW(LPCWSTR, LPCWSTR, WCHAR); 214 +LPSTR StrRChrIA(LPCSTR, LPCSTR, WORD); 215 +LPWSTR StrRChrIW(LPCWSTR, LPCWSTR, WCHAR); 216 +LPSTR StrRStrIA(LPCSTR, LPCSTR, LPCSTR); 217 +LPWSTR StrRStrIW(LPCWSTR, LPCWSTR, LPCWSTR); 218 +int StrSpnA(LPCSTR, LPCSTR); 219 +int StrSpnW(LPCWSTR, LPCWSTR); 220 220 LPSTR StrStrA(LPCSTR, LPCSTR); 221 -LPSTR StrStrIA(LPCSTR,LPCSTR); 222 -LPWSTR StrStrIW(LPCWSTR,LPCWSTR); 223 -LPWSTR StrStrW(LPCWSTR,LPCWSTR); 221 +LPSTR StrStrIA(LPCSTR, LPCSTR); 222 +LPWSTR StrStrIW(LPCWSTR, LPCWSTR); 223 +LPWSTR StrStrW(LPCWSTR, LPCWSTR); 224 224 int StrToIntA(LPCSTR); 225 225 int StrToIntW(LPCWSTR); 226 -BOOL StrToIntExA(LPCSTR,DWORD,int*); 227 -BOOL StrToIntExW(LPCWSTR,DWORD,int*); 228 -BOOL StrTrimA(LPSTR,LPCSTR); 229 -BOOL StrTrimW(LPWSTR,LPCWSTR); 226 +BOOL StrToIntExA(LPCSTR, DWORD, int*); 227 +BOOL StrToIntExW(LPCWSTR, DWORD, int*); 228 +BOOL StrTrimA(LPSTR, LPCSTR); 229 +BOOL StrTrimW(LPWSTR, LPCWSTR); 230 230 LPSTR PathAddBackslashA(LPSTR); 231 231 LPWSTR PathAddBackslashW(LPWSTR); 232 -BOOL PathAddExtensionA(LPSTR,LPCSTR); 233 -BOOL PathAddExtensionW(LPWSTR,LPCWSTR); 234 -BOOL PathAppendA(LPSTR,LPCSTR); 235 -BOOL PathAppendW(LPWSTR,LPCWSTR); 236 -LPSTR PathBuildRootA(LPSTR,int); 237 -LPWSTR PathBuildRootW(LPWSTR,int); 238 -BOOL PathCanonicalizeA(LPSTR,LPCSTR); 239 -BOOL PathCanonicalizeW(LPWSTR,LPCWSTR); 240 -LPSTR PathCombineA(LPSTR,LPCSTR,LPCSTR); 241 -LPWSTR PathCombineW(LPWSTR,LPCWSTR,LPCWSTR); 242 -int PathCommonPrefixA(LPCSTR,LPCSTR,LPSTR); 243 -int PathCommonPrefixW(LPCWSTR,LPCWSTR,LPWSTR); 244 -BOOL PathCompactPathA(HDC,LPSTR,UINT); 245 -BOOL PathCompactPathW(HDC,LPWSTR,UINT); 246 -BOOL PathCompactPathExA(LPSTR,LPCSTR,UINT,DWORD); 247 -BOOL PathCompactPathExW(LPWSTR,LPCWSTR,UINT,DWORD); 248 -HRESULT PathCreateFromUrlA(LPCSTR,LPSTR,LPDWORD,DWORD); 249 -HRESULT PathCreateFromUrlW(LPCWSTR,LPWSTR,LPDWORD,DWORD); 232 +BOOL PathAddExtensionA(LPSTR, LPCSTR); 233 +BOOL PathAddExtensionW(LPWSTR, LPCWSTR); 234 +BOOL PathAppendA(LPSTR, LPCSTR); 235 +BOOL PathAppendW(LPWSTR, LPCWSTR); 236 +LPSTR PathBuildRootA(LPSTR, int); 237 +LPWSTR PathBuildRootW(LPWSTR, int); 238 +BOOL PathCanonicalizeA(LPSTR, LPCSTR); 239 +BOOL PathCanonicalizeW(LPWSTR, LPCWSTR); 240 +LPSTR PathCombineA(LPSTR, LPCSTR, LPCSTR); 241 +LPWSTR PathCombineW(LPWSTR, LPCWSTR, LPCWSTR); 242 +int PathCommonPrefixA(LPCSTR, LPCSTR, LPSTR); 243 +int PathCommonPrefixW(LPCWSTR, LPCWSTR, LPWSTR); 244 +BOOL PathCompactPathA(HDC, LPSTR, UINT); 245 +BOOL PathCompactPathW(HDC, LPWSTR, UINT); 246 +BOOL PathCompactPathExA(LPSTR, LPCSTR, UINT, DWORD); 247 +BOOL PathCompactPathExW(LPWSTR, LPCWSTR, UINT, DWORD); 248 +HRESULT PathCreateFromUrlA(LPCSTR, LPSTR, LPDWORD, DWORD); 249 +HRESULT PathCreateFromUrlW(LPCWSTR, LPWSTR, LPDWORD, DWORD); 250 250 BOOL PathFileExistsA(LPCSTR); 251 251 BOOL PathFileExistsW(LPCWSTR); 252 252 LPSTR PathFindExtensionA(LPCSTR); 253 253 LPWSTR PathFindExtensionW(LPCWSTR); 254 254 LPSTR PathFindFileNameA(LPCSTR); 255 255 LPWSTR PathFindFileNameW(LPCWSTR); 256 256 LPSTR PathFindNextComponentA(LPCSTR); 257 257 LPWSTR PathFindNextComponentW(LPCWSTR); 258 -BOOL PathFindOnPathA(LPSTR,LPCSTR*); 259 -BOOL PathFindOnPathW(LPWSTR,LPCWSTR*); 260 -LPCSTR PathFindSuffixArrayA(LPCSTR,LPCSTR*,int); 261 -LPCWSTR PathFindSuffixArrayW(LPCWSTR,LPCWSTR*,int); 258 +BOOL PathFindOnPathA(LPSTR, LPCSTR*); 259 +BOOL PathFindOnPathW(LPWSTR, LPCWSTR*); 260 +LPCSTR PathFindSuffixArrayA(LPCSTR, LPCSTR*, int); 261 +LPCWSTR PathFindSuffixArrayW(LPCWSTR, LPCWSTR*, int); 262 262 LPSTR PathGetArgsA(LPCSTR); 263 263 LPWSTR PathGetArgsW(LPCWSTR); 264 264 UINT PathGetCharTypeA(UCHAR); 265 265 UINT PathGetCharTypeW(WCHAR); 266 266 int PathGetDriveNumberA(LPCSTR); 267 267 int PathGetDriveNumberW(LPCWSTR); 268 -BOOL PathIsContentTypeA(LPCSTR,LPCSTR); 269 -BOOL PathIsContentTypeW(LPCWSTR,LPCWSTR); 268 +BOOL PathIsContentTypeA(LPCSTR, LPCSTR); 269 +BOOL PathIsContentTypeW(LPCWSTR, LPCWSTR); 270 270 BOOL PathIsDirectoryA(LPCSTR); 271 271 BOOL PathIsDirectoryEmptyA(LPCSTR); 272 272 BOOL PathIsDirectoryEmptyW(LPCWSTR); 273 273 BOOL PathIsDirectoryW(LPCWSTR); 274 274 BOOL PathIsFileSpecA(LPCSTR); 275 275 BOOL PathIsFileSpecW(LPCWSTR); 276 276 BOOL PathIsLFNFileSpecA(LPCSTR); 277 277 BOOL PathIsLFNFileSpecW(LPCWSTR); 278 278 BOOL PathIsNetworkPathA(LPCSTR); 279 279 BOOL PathIsNetworkPathW(LPCWSTR); 280 -BOOL PathIsPrefixA(LPCSTR,LPCSTR); 281 -BOOL PathIsPrefixW(LPCWSTR,LPCWSTR); 280 +BOOL PathIsPrefixA(LPCSTR, LPCSTR); 281 +BOOL PathIsPrefixW(LPCWSTR, LPCWSTR); 282 282 BOOL PathIsRelativeA(LPCSTR); 283 283 BOOL PathIsRelativeW(LPCWSTR); 284 284 BOOL PathIsRootA(LPCSTR); 285 285 BOOL PathIsRootW(LPCWSTR); 286 -BOOL PathIsSameRootA(LPCSTR,LPCSTR); 287 -BOOL PathIsSameRootW(LPCWSTR,LPCWSTR); 288 -BOOL PathIsSystemFolderA(LPCSTR,DWORD); 289 -BOOL PathIsSystemFolderW(LPCWSTR,DWORD); 286 +BOOL PathIsSameRootA(LPCSTR, LPCSTR); 287 +BOOL PathIsSameRootW(LPCWSTR, LPCWSTR); 288 +BOOL PathIsSystemFolderA(LPCSTR, DWORD); 289 +BOOL PathIsSystemFolderW(LPCWSTR, DWORD); 290 290 BOOL PathIsUNCA(LPCSTR); 291 291 BOOL PathIsUNCServerA(LPCSTR); 292 292 BOOL PathIsUNCServerShareA(LPCSTR); 293 293 BOOL PathIsUNCServerShareW(LPCWSTR); 294 294 BOOL PathIsUNCServerW(LPCWSTR); 295 295 BOOL PathIsUNCW(LPCWSTR); 296 296 BOOL PathIsURLA(LPCSTR); 297 297 BOOL PathIsURLW(LPCWSTR); 298 298 BOOL PathMakePrettyA(LPSTR); 299 299 BOOL PathMakePrettyW(LPWSTR); 300 300 BOOL PathMakeSystemFolderA(LPSTR); 301 301 BOOL PathMakeSystemFolderW(LPWSTR); 302 -BOOL PathMatchSpecA(LPCSTR,LPCSTR); 303 -BOOL PathMatchSpecW(LPCWSTR,LPCWSTR); 302 +BOOL PathMatchSpecA(LPCSTR, LPCSTR); 303 +BOOL PathMatchSpecW(LPCWSTR, LPCWSTR); 304 304 int PathParseIconLocationA(LPSTR); 305 305 int PathParseIconLocationW(LPWSTR); 306 306 void PathQuoteSpacesA(LPSTR); 307 307 void PathQuoteSpacesW(LPWSTR); 308 -BOOL PathRelativePathToA(LPSTR,LPCSTR,DWORD,LPCSTR,DWORD); 309 -BOOL PathRelativePathToW(LPWSTR,LPCWSTR,DWORD,LPCWSTR,DWORD); 308 +BOOL PathRelativePathToA(LPSTR, LPCSTR, DWORD, LPCSTR, DWORD); 309 +BOOL PathRelativePathToW(LPWSTR, LPCWSTR, DWORD, LPCWSTR, DWORD); 310 310 void PathRemoveArgsA(LPSTR); 311 311 void PathRemoveArgsW(LPWSTR); 312 312 LPSTR PathRemoveBackslashA(LPSTR); 313 313 LPWSTR PathRemoveBackslashW(LPWSTR); 314 314 void PathRemoveBlanksA(LPSTR); 315 315 void PathRemoveBlanksW(LPWSTR); 316 316 void PathRemoveExtensionA(LPSTR); 317 317 void PathRemoveExtensionW(LPWSTR); 318 318 BOOL PathRemoveFileSpecA(LPSTR); 319 319 BOOL PathRemoveFileSpecW(LPWSTR); 320 -BOOL PathRenameExtensionA(LPSTR,LPCSTR); 321 -BOOL PathRenameExtensionW(LPWSTR,LPCWSTR); 322 -BOOL PathSearchAndQualifyA(LPCSTR,LPSTR,UINT); 323 -BOOL PathSearchAndQualifyW(LPCWSTR,LPWSTR,UINT); 324 -void PathSetDlgItemPathA(HWND,int,LPCSTR); 325 -void PathSetDlgItemPathW(HWND,int,LPCWSTR); 320 +BOOL PathRenameExtensionA(LPSTR, LPCSTR); 321 +BOOL PathRenameExtensionW(LPWSTR, LPCWSTR); 322 +BOOL PathSearchAndQualifyA(LPCSTR, LPSTR, UINT); 323 +BOOL PathSearchAndQualifyW(LPCWSTR, LPWSTR, UINT); 324 +void PathSetDlgItemPathA(HWND, int, LPCSTR); 325 +void PathSetDlgItemPathW(HWND, int, LPCWSTR); 326 326 LPSTR PathSkipRootA(LPCSTR); 327 327 LPWSTR PathSkipRootW(LPCWSTR); 328 328 void PathStripPathA(LPSTR); 329 329 void PathStripPathW(LPWSTR); 330 330 BOOL PathStripToRootA(LPSTR); 331 331 BOOL PathStripToRootW(LPWSTR); 332 332 void PathUndecorateA(LPSTR); 333 333 void PathUndecorateW(LPWSTR); 334 -BOOL PathUnExpandEnvStringsA(LPCSTR,LPSTR,UINT); 335 -BOOL PathUnExpandEnvStringsW(LPCWSTR,LPWSTR,UINT); 334 +BOOL PathUnExpandEnvStringsA(LPCSTR, LPSTR, UINT); 335 +BOOL PathUnExpandEnvStringsW(LPCWSTR, LPWSTR, UINT); 336 336 BOOL PathUnmakeSystemFolderA(LPSTR); 337 337 BOOL PathUnmakeSystemFolderW(LPWSTR); 338 338 void PathUnquoteSpacesA(LPSTR); 339 339 void PathUnquoteSpacesW(LPWSTR); 340 -HRESULT SHAutoComplete(HWND,DWORD); 341 -BOOL SHCreateThread(LPTHREAD_START_ROUTINE,void*,DWORD,LPTHREAD_START_ROUTINE); 342 -DWORD SHCopyKeyA(HKEY,LPCSTR,HKEY,DWORD); 343 -DWORD SHCopyKeyW(HKEY,LPCWSTR,HKEY,DWORD); 344 -DWORD SHDeleteEmptyKeyA(HKEY,LPCSTR); 345 -DWORD SHDeleteEmptyKeyW(HKEY,LPCWSTR); 346 -DWORD SHDeleteKeyA(HKEY,LPCSTR); 347 -DWORD SHDeleteKeyW(HKEY,LPCWSTR); 348 -DWORD SHEnumKeyExA(HKEY,DWORD,LPSTR,LPDWORD); 349 -DWORD SHEnumKeyExW(HKEY,DWORD,LPWSTR,LPDWORD); 350 -DWORD SHQueryInfoKeyA(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD); 351 -DWORD SHQueryInfoKeyW(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD); 352 -DWORD SHQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD); 353 -DWORD SHQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD); 354 -HRESULT SHGetThreadRef(IUnknown**); 355 -HRESULT SHSetThreadRef(IUnknown*); 356 -BOOL SHSkipJunction(IBindCtx*, CPtr!(CLSID)); 357 -DWORD SHEnumValueA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD); 358 -DWORD SHEnumValueW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD); 359 -DWORD SHGetValueA(HKEY,LPCSTR,LPCSTR,LPDWORD,LPVOID,LPDWORD); 360 -DWORD SHGetValueW(HKEY,LPCWSTR,LPCWSTR,LPDWORD,LPVOID,LPDWORD); 361 -DWORD SHSetValueA(HKEY,LPCSTR,LPCSTR,DWORD,LPCVOID,DWORD); 362 -DWORD SHSetValueW(HKEY,LPCWSTR,LPCWSTR,DWORD,LPCVOID,DWORD); 363 -DWORD SHDeleteValueA(HKEY,LPCSTR,LPCSTR); 364 -DWORD SHDeleteValueW(HKEY,LPCWSTR,LPCWSTR); 365 -HRESULT AssocCreate(CLSID, CPtr!(IID) ,CPtr!(LPVOID)); 366 -HRESULT AssocQueryKeyA(ASSOCF,ASSOCKEY,LPCSTR,LPCSTR,HKEY*); 367 -HRESULT AssocQueryKeyW(ASSOCF,ASSOCKEY,LPCWSTR,LPCWSTR,HKEY*); 368 -HRESULT AssocQueryStringA(ASSOCF,ASSOCSTR,LPCSTR,LPCSTR,LPSTR,DWORD*); 369 -HRESULT AssocQueryStringByKeyA(ASSOCF,ASSOCSTR,HKEY,LPCSTR,LPSTR,DWORD*); 370 -HRESULT AssocQueryStringByKeyW(ASSOCF,ASSOCSTR,HKEY,LPCWSTR,LPWSTR,DWORD*); 371 -HRESULT AssocQueryStringW(ASSOCF,ASSOCSTR,LPCWSTR,LPCWSTR,LPWSTR,DWORD*); 372 -HRESULT UrlApplySchemeA(LPCSTR,LPSTR,LPDWORD,DWORD); 373 -HRESULT UrlApplySchemeW(LPCWSTR,LPWSTR,LPDWORD,DWORD); 374 -HRESULT UrlCanonicalizeA(LPCSTR,LPSTR,LPDWORD,DWORD); 375 -HRESULT UrlCanonicalizeW(LPCWSTR,LPWSTR,LPDWORD,DWORD); 376 -HRESULT UrlCombineA(LPCSTR,LPCSTR,LPSTR,LPDWORD,DWORD); 377 -HRESULT UrlCombineW(LPCWSTR,LPCWSTR,LPWSTR,LPDWORD,DWORD); 378 -int UrlCompareA(LPCSTR,LPCSTR,BOOL); 379 -int UrlCompareW(LPCWSTR,LPCWSTR,BOOL); 380 -HRESULT UrlCreateFromPathA(LPCSTR,LPSTR,LPDWORD,DWORD); 381 -HRESULT UrlCreateFromPathW(LPCWSTR,LPWSTR,LPDWORD,DWORD); 382 -HRESULT UrlEscapeA(LPCSTR,LPSTR,LPDWORD,DWORD); 383 -HRESULT UrlEscapeW(LPCWSTR,LPWSTR,LPDWORD,DWORD); 340 +HRESULT SHAutoComplete(HWND, DWORD); 341 +BOOL SHCreateThread(LPTHREAD_START_ROUTINE, void*, DWORD, LPTHREAD_START_ROUTINE); 342 +DWORD SHCopyKeyA(HKEY, LPCSTR, HKEY, DWORD); 343 +DWORD SHCopyKeyW(HKEY, LPCWSTR, HKEY, DWORD); 344 +DWORD SHDeleteEmptyKeyA(HKEY, LPCSTR); 345 +DWORD SHDeleteEmptyKeyW(HKEY, LPCWSTR); 346 +DWORD SHDeleteKeyA(HKEY, LPCSTR); 347 +DWORD SHDeleteKeyW(HKEY, LPCWSTR); 348 +DWORD SHEnumKeyExA(HKEY, DWORD, LPSTR, LPDWORD); 349 +DWORD SHEnumKeyExW(HKEY, DWORD, LPWSTR, LPDWORD); 350 +DWORD SHQueryInfoKeyA(HKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD); 351 +DWORD SHQueryInfoKeyW(HKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD); 352 +DWORD SHQueryValueExA(HKEY, LPCSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD); 353 +DWORD SHQueryValueExW(HKEY, LPCWSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD); 354 +HRESULT SHGetThreadRef(IUnknown*); 355 +HRESULT SHSetThreadRef(IUnknown); 356 +BOOL SHSkipJunction(IBindCtx, const(CLSID)*); 357 +DWORD SHEnumValueA(HKEY, DWORD, LPSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD); 358 +DWORD SHEnumValueW(HKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD); 359 +DWORD SHGetValueA(HKEY, LPCSTR, LPCSTR, LPDWORD, LPVOID, LPDWORD); 360 +DWORD SHGetValueW(HKEY, LPCWSTR, LPCWSTR, LPDWORD, LPVOID, LPDWORD); 361 +DWORD SHSetValueA(HKEY, LPCSTR, LPCSTR, DWORD, LPCVOID, DWORD); 362 +DWORD SHSetValueW(HKEY, LPCWSTR, LPCWSTR, DWORD, LPCVOID, DWORD); 363 +DWORD SHDeleteValueA(HKEY, LPCSTR, LPCSTR); 364 +DWORD SHDeleteValueW(HKEY, LPCWSTR, LPCWSTR); 365 +HRESULT AssocCreate(CLSID, const(IID)* , const(LPVOID)*); 366 +HRESULT AssocQueryKeyA(ASSOCF, ASSOCKEY, LPCSTR, LPCSTR, HKEY*); 367 +HRESULT AssocQueryKeyW(ASSOCF, ASSOCKEY, LPCWSTR, LPCWSTR, HKEY*); 368 +HRESULT AssocQueryStringA(ASSOCF, ASSOCSTR, LPCSTR, LPCSTR, LPSTR, DWORD*); 369 +HRESULT AssocQueryStringByKeyA(ASSOCF, ASSOCSTR, HKEY, LPCSTR, LPSTR, DWORD*); 370 +HRESULT AssocQueryStringByKeyW(ASSOCF, ASSOCSTR, HKEY, LPCWSTR, LPWSTR, DWORD*); 371 +HRESULT AssocQueryStringW(ASSOCF, ASSOCSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD*); 372 +HRESULT UrlApplySchemeA(LPCSTR, LPSTR, LPDWORD, DWORD); 373 +HRESULT UrlApplySchemeW(LPCWSTR, LPWSTR, LPDWORD, DWORD); 374 +HRESULT UrlCanonicalizeA(LPCSTR, LPSTR, LPDWORD, DWORD); 375 +HRESULT UrlCanonicalizeW(LPCWSTR, LPWSTR, LPDWORD, DWORD); 376 +HRESULT UrlCombineA(LPCSTR, LPCSTR, LPSTR, LPDWORD, DWORD); 377 +HRESULT UrlCombineW(LPCWSTR, LPCWSTR, LPWSTR, LPDWORD, DWORD); 378 +int UrlCompareA(LPCSTR, LPCSTR, BOOL); 379 +int UrlCompareW(LPCWSTR, LPCWSTR, BOOL); 380 +HRESULT UrlCreateFromPathA(LPCSTR, LPSTR, LPDWORD, DWORD); 381 +HRESULT UrlCreateFromPathW(LPCWSTR, LPWSTR, LPDWORD, DWORD); 382 +HRESULT UrlEscapeA(LPCSTR, LPSTR, LPDWORD, DWORD); 383 +HRESULT UrlEscapeW(LPCWSTR, LPWSTR, LPDWORD, DWORD); 384 384 LPCSTR UrlGetLocationA(LPCSTR); 385 385 LPCWSTR UrlGetLocationW(LPCWSTR); 386 -HRESULT UrlGetPartA(LPCSTR,LPSTR,LPDWORD,DWORD,DWORD); 387 -HRESULT UrlGetPartW(LPCWSTR,LPWSTR,LPDWORD,DWORD,DWORD); 388 -HRESULT UrlHashA(LPCSTR,LPBYTE,DWORD); 389 -HRESULT UrlHashW(LPCWSTR,LPBYTE,DWORD); 390 -BOOL UrlIsA(LPCSTR,URLIS); 391 -BOOL UrlIsW(LPCWSTR,URLIS); 386 +HRESULT UrlGetPartA(LPCSTR, LPSTR, LPDWORD, DWORD, DWORD); 387 +HRESULT UrlGetPartW(LPCWSTR, LPWSTR, LPDWORD, DWORD, DWORD); 388 +HRESULT UrlHashA(LPCSTR, LPBYTE, DWORD); 389 +HRESULT UrlHashW(LPCWSTR, LPBYTE, DWORD); 390 +BOOL UrlIsA(LPCSTR, URLIS); 391 +BOOL UrlIsW(LPCWSTR, URLIS); 392 392 BOOL UrlIsNoHistoryA(LPCSTR); 393 393 BOOL UrlIsNoHistoryW(LPCWSTR); 394 394 BOOL UrlIsOpaqueA(LPCSTR); 395 395 BOOL UrlIsOpaqueW(LPCWSTR); 396 -HRESULT UrlUnescapeA(LPSTR,LPSTR,LPDWORD,DWORD); 397 -HRESULT UrlUnescapeW(LPWSTR,LPWSTR,LPDWORD,DWORD); 396 +HRESULT UrlUnescapeA(LPSTR, LPSTR, LPDWORD, DWORD); 397 +HRESULT UrlUnescapeW(LPWSTR, LPWSTR, LPDWORD, DWORD); 398 398 DWORD SHRegCloseUSKey(HUSKEY); 399 -LONG SHRegCreateUSKeyA(LPCSTR,REGSAM,HUSKEY,PHUSKEY,DWORD); 400 -LONG SHRegCreateUSKeyW(LPCWSTR,REGSAM,HUSKEY,PHUSKEY,DWORD); 401 -LONG SHRegDeleteEmptyUSKeyA(HUSKEY,LPCSTR,SHREGDEL_FLAGS); 402 -LONG SHRegDeleteEmptyUSKeyW(HUSKEY,LPCWSTR,SHREGDEL_FLAGS); 403 -LONG SHRegDeleteUSValueA(HUSKEY,LPCSTR,SHREGDEL_FLAGS); 404 -LONG SHRegDeleteUSValueW(HUSKEY,LPCWSTR,SHREGDEL_FLAGS); 399 +LONG SHRegCreateUSKeyA(LPCSTR, REGSAM, HUSKEY, PHUSKEY, DWORD); 400 +LONG SHRegCreateUSKeyW(LPCWSTR, REGSAM, HUSKEY, PHUSKEY, DWORD); 401 +LONG SHRegDeleteEmptyUSKeyA(HUSKEY, LPCSTR, SHREGDEL_FLAGS); 402 +LONG SHRegDeleteEmptyUSKeyW(HUSKEY, LPCWSTR, SHREGDEL_FLAGS); 403 +LONG SHRegDeleteUSValueA(HUSKEY, LPCSTR, SHREGDEL_FLAGS); 404 +LONG SHRegDeleteUSValueW(HUSKEY, LPCWSTR, SHREGDEL_FLAGS); 405 405 HKEY SHRegDuplicateHKey(HKEY); 406 -DWORD SHRegEnumUSKeyA(HUSKEY,DWORD,LPSTR,LPDWORD,SHREGENUM_FLAGS); 407 -DWORD SHRegEnumUSKeyW(HUSKEY,DWORD,LPWSTR,LPDWORD,SHREGENUM_FLAGS); 408 -DWORD SHRegEnumUSValueA(HUSKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD,SHREGENUM_FLAGS); 409 -DWORD SHRegEnumUSValueW(HUSKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD,SHREGENUM_FLAGS); 410 -BOOL SHRegGetBoolUSValueA(LPCSTR,LPCSTR,BOOL,BOOL); 411 -BOOL SHRegGetBoolUSValueW(LPCWSTR,LPCWSTR,BOOL,BOOL); 412 -DWORD SHRegGetPathA(HKEY,LPCSTR,LPCSTR,LPSTR,DWORD); 413 -DWORD SHRegGetPathW(HKEY,LPCWSTR,LPCWSTR,LPWSTR,DWORD); 414 -LONG SHRegGetUSValueA(LPCSTR,LPCSTR,LPDWORD,LPVOID,LPDWORD,BOOL,LPVOID,DWORD); 415 -LONG SHRegGetUSValueW(LPCWSTR,LPCWSTR,LPDWORD,LPVOID,LPDWORD,BOOL,LPVOID,DWORD); 416 -LONG SHRegOpenUSKeyA(LPCSTR,REGSAM,HUSKEY,PHUSKEY,BOOL); 417 -LONG SHRegOpenUSKeyW(LPCWSTR,REGSAM,HUSKEY,PHUSKEY,BOOL); 418 -DWORD SHRegQueryInfoUSKeyA(HUSKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD,SHREGENUM_FLAGS); 419 -DWORD SHRegQueryInfoUSKeyW(HUSKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD,SHREGENUM_FLAGS); 420 -LONG SHRegQueryUSValueA(HUSKEY,LPCSTR,LPDWORD,LPVOID,LPDWORD,BOOL,LPVOID,DWORD); 421 -LONG SHRegQueryUSValueW(HUSKEY,LPCWSTR,LPDWORD,LPVOID,LPDWORD,BOOL,LPVOID,DWORD); 422 -DWORD SHRegSetPathA(HKEY,LPCSTR,LPCSTR,LPCSTR,DWORD); 423 -DWORD SHRegSetPathW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR,DWORD); 424 -LONG SHRegSetUSValueA(LPCSTR,LPCSTR,DWORD,LPVOID,DWORD,DWORD); 425 -LONG SHRegSetUSValueW(LPCWSTR,LPCWSTR,DWORD,LPVOID,DWORD,DWORD); 426 -LONG SHRegWriteUSValueA(HUSKEY,LPCSTR,DWORD,LPVOID,DWORD,DWORD); 427 -LONG SHRegWriteUSValueW(HUSKEY,LPCWSTR,DWORD,LPVOID,DWORD,DWORD); 428 -HRESULT HashData(LPBYTE,DWORD,LPBYTE,DWORD); 406 +DWORD SHRegEnumUSKeyA(HUSKEY, DWORD, LPSTR, LPDWORD, SHREGENUM_FLAGS); 407 +DWORD SHRegEnumUSKeyW(HUSKEY, DWORD, LPWSTR, LPDWORD, SHREGENUM_FLAGS); 408 +DWORD SHRegEnumUSValueA(HUSKEY, DWORD, LPSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD, SHREGENUM_FLAGS); 409 +DWORD SHRegEnumUSValueW(HUSKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD, SHREGENUM_FLAGS); 410 +BOOL SHRegGetBoolUSValueA(LPCSTR, LPCSTR, BOOL, BOOL); 411 +BOOL SHRegGetBoolUSValueW(LPCWSTR, LPCWSTR, BOOL, BOOL); 412 +DWORD SHRegGetPathA(HKEY, LPCSTR, LPCSTR, LPSTR, DWORD); 413 +DWORD SHRegGetPathW(HKEY, LPCWSTR, LPCWSTR, LPWSTR, DWORD); 414 +LONG SHRegGetUSValueA(LPCSTR, LPCSTR, LPDWORD, LPVOID, LPDWORD, BOOL, LPVOID, DWORD); 415 +LONG SHRegGetUSValueW(LPCWSTR, LPCWSTR, LPDWORD, LPVOID, LPDWORD, BOOL, LPVOID, DWORD); 416 +LONG SHRegOpenUSKeyA(LPCSTR, REGSAM, HUSKEY, PHUSKEY, BOOL); 417 +LONG SHRegOpenUSKeyW(LPCWSTR, REGSAM, HUSKEY, PHUSKEY, BOOL); 418 +DWORD SHRegQueryInfoUSKeyA(HUSKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD, SHREGENUM_FLAGS); 419 +DWORD SHRegQueryInfoUSKeyW(HUSKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD, SHREGENUM_FLAGS); 420 +LONG SHRegQueryUSValueA(HUSKEY, LPCSTR, LPDWORD, LPVOID, LPDWORD, BOOL, LPVOID, DWORD); 421 +LONG SHRegQueryUSValueW(HUSKEY, LPCWSTR, LPDWORD, LPVOID, LPDWORD, BOOL, LPVOID, DWORD); 422 +DWORD SHRegSetPathA(HKEY, LPCSTR, LPCSTR, LPCSTR, DWORD); 423 +DWORD SHRegSetPathW(HKEY, LPCWSTR, LPCWSTR, LPCWSTR, DWORD); 424 +LONG SHRegSetUSValueA(LPCSTR, LPCSTR, DWORD, LPVOID, DWORD, DWORD); 425 +LONG SHRegSetUSValueW(LPCWSTR, LPCWSTR, DWORD, LPVOID, DWORD, DWORD); 426 +LONG SHRegWriteUSValueA(HUSKEY, LPCSTR, DWORD, LPVOID, DWORD, DWORD); 427 +LONG SHRegWriteUSValueW(HUSKEY, LPCWSTR, DWORD, LPVOID, DWORD, DWORD); 428 +HRESULT HashData(LPBYTE, DWORD, LPBYTE, DWORD); 429 429 HPALETTE SHCreateShellPalette(HDC); 430 -COLORREF ColorHLSToRGB(WORD,WORD,WORD); 431 -COLORREF ColorAdjustLuma(COLORREF,int,BOOL); 432 -void ColorRGBToHLS(COLORREF,WORD*,WORD*,WORD*); 430 +COLORREF ColorHLSToRGB(WORD, WORD, WORD); 431 +COLORREF ColorAdjustLuma(COLORREF, int, BOOL); 432 +void ColorRGBToHLS(COLORREF, WORD*, WORD*, WORD*); 433 433 /** Should not be necessary for D? 434 434 extern (C): 435 -int wnsprintfA(LPSTR,int,LPCSTR,...); 436 -int wnsprintfW(LPWSTR,int,LPCWSTR,...); 435 +int wnsprintfA(LPSTR, int, LPCSTR, ...); 436 +int wnsprintfW(LPWSTR, int, LPCWSTR, ...); 437 437 extern (Windows): 438 -int wvnsprintfA(LPSTR,int,LPCSTR,va_list); 439 -int wvnsprintfW(LPWSTR,int,LPCWSTR,va_list); 438 +int wvnsprintfA(LPSTR, int, LPCSTR, va_list); 439 +int wvnsprintfW(LPWSTR, int, LPCWSTR, va_list); 440 440 */ 441 441 442 -HINSTANCE MLLoadLibraryA(LPCSTR,HANDLE,DWORD,LPCSTR,BOOL); 443 -HINSTANCE MLLoadLibraryW(LPCWSTR,HANDLE,DWORD,LPCWSTR,BOOL); 442 +HINSTANCE MLLoadLibraryA(LPCSTR, HANDLE, DWORD, LPCSTR, BOOL); 443 +HINSTANCE MLLoadLibraryW(LPCWSTR, HANDLE, DWORD, LPCWSTR, BOOL); 444 444 445 -HRESULT DllInstall(BOOL,LPCWSTR); 445 +HRESULT DllInstall(BOOL, LPCWSTR); 446 446 447 -HRESULT StrRetToBufA(LPSTRRET,LPCITEMIDLIST,LPSTR,UINT); 448 -HRESULT StrRetToBufW(LPSTRRET,LPCITEMIDLIST,LPWSTR,UINT); 449 -HRESULT StrRetToStrA(LPSTRRET,LPCITEMIDLIST,LPSTR*); 450 -HRESULT StrRetToStrW(LPSTRRET,LPCITEMIDLIST,LPWSTR*); 451 -HRESULT SHCreateStreamOnFileA(LPCSTR,DWORD,IStream**); 452 -HRESULT SHCreateStreamOnFileW(LPCWSTR,DWORD,IStream**); 453 -IStream* SHOpenRegStream2A(HKEY,LPCSTR,LPCSTR,DWORD); 454 -IStream* SHOpenRegStream2W(HKEY,LPCWSTR,LPCWSTR,DWORD); 455 -IStream* SHOpenRegStreamA(HKEY,LPCSTR,LPCSTR,DWORD); 456 -IStream* SHOpenRegStreamW(HKEY,LPCWSTR,LPCWSTR,DWORD); 447 +HRESULT StrRetToBufA(LPSTRRET, LPCITEMIDLIST, LPSTR, UINT); 448 +HRESULT StrRetToBufW(LPSTRRET, LPCITEMIDLIST, LPWSTR, UINT); 449 +HRESULT StrRetToStrA(LPSTRRET, LPCITEMIDLIST, LPSTR*); 450 +HRESULT StrRetToStrW(LPSTRRET, LPCITEMIDLIST, LPWSTR*); 451 +HRESULT SHCreateStreamOnFileA(LPCSTR, DWORD, IStream*); 452 +HRESULT SHCreateStreamOnFileW(LPCWSTR, DWORD, IStream*); 453 +IStream SHOpenRegStream2A(HKEY, LPCSTR, LPCSTR, DWORD); 454 +IStream SHOpenRegStream2W(HKEY, LPCWSTR, LPCWSTR, DWORD); 455 +IStream SHOpenRegStreamA(HKEY, LPCSTR, LPCSTR, DWORD); 456 +IStream SHOpenRegStreamW(HKEY, LPCWSTR, LPCWSTR, DWORD); 457 457 458 458 version(Unicode) { 459 459 alias ChrCmpIW ChrCmpI; 460 460 alias IntlStrEqNW IntlStrEqN; 461 461 alias IntlStrEqNIW IntlStrEqNI; 462 462 alias IntlStrEqWorkerW IntlStrEqWorker; 463 463 alias SHStrDupW SHStrDup;

Modified src/win32/snmp.d from [c6a48338a4008905] to [36b511a95006fc3f].

Modified src/win32/sql.d from [edd10e7d6d473fa3] to [e16fff59d532178b].

Modified src/win32/sqlext.d from [4eaa68ebc36b3782] to [ace14bc40c4bc3c9].

Modified src/win32/sqltypes.d from [96280391078c825f] to [e13dc9b878fc2ab3].

26 26 alias PVOID PTR, HENV, HDBC, HSTMT, SQLPOINTER; 27 27 alias UCHAR SQLCHAR; 28 28 // #ifndef _WIN64 29 29 alias UDWORD SQLUINTEGER; 30 30 // #endif 31 31 32 32 //static if (ODBCVER >= 0x0300) { 33 -alias HANDLE SQLHANDLE; 33 +alias TypeDef!(HANDLE) SQLHANDLE; 34 34 alias SQLHANDLE SQLHENV, SQLHDBC, SQLHSTMT, SQLHDESC; 35 35 /* 36 36 } else { 37 37 alias void* SQLHENV; 38 38 alias void* SQLHDBC; 39 39 alias void* SQLHSTMT; 40 40 } ................................................................................ 132 132 133 133 const SQL_MAX_NUMERIC_LEN = 16; 134 134 135 135 struct SQL_NUMERIC_STRUCT { 136 136 SQLCHAR precision; 137 137 SQLSCHAR scale; 138 138 SQLCHAR sign; 139 - SQLCHAR val[SQL_MAX_NUMERIC_LEN]; 139 + SQLCHAR[SQL_MAX_NUMERIC_LEN] val; 140 140 } 141 141 // } ODBCVER >= 0x0300 142 142 alias GUID SQLGUID;

Modified src/win32/sqlucode.d from [99f932d0d28c09d9] to [bcc8810ff536a408].

Added src/win32/sspi.d version [e02537c1e2b2a8a2]

1 +/***********************************************************************\ 2 +* sspi.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Translated from MinGW Windows headers * 7 +* by Ellery Newcomer * 8 +* * 9 +* Placed into public domain * 10 +\***********************************************************************/ 11 +module win32.sspi; 12 + 13 +import win32.windef; 14 +import win32.ntdef; 15 +import win32.w32api; 16 +import win32.security; 17 +import win32.ntsecapi; 18 +import win32.subauth; 19 + 20 +enum :ULONG{ 21 + SECPKG_CRED_INBOUND = 1, 22 + SECPKG_CRED_OUTBOUND = 2, 23 + SECPKG_CRED_BOTH = (SECPKG_CRED_OUTBOUND|SECPKG_CRED_INBOUND), 24 + SECPKG_CRED_ATTR_NAMES = 1, 25 +} 26 + 27 +enum :ULONG{ 28 + SECPKG_FLAG_INTEGRITY = 1, 29 + SECPKG_FLAG_PRIVACY = 2, 30 + SECPKG_FLAG_TOKEN_ONLY = 4, 31 + SECPKG_FLAG_DATAGRAM = 8, 32 + SECPKG_FLAG_CONNECTION = 16, 33 + SECPKG_FLAG_MULTI_REQUIRED = 32, 34 + SECPKG_FLAG_CLIENT_ONLY = 64, 35 + SECPKG_FLAG_EXTENDED_ERROR = 128, 36 + SECPKG_FLAG_IMPERSONATION = 256, 37 + SECPKG_FLAG_ACCEPT_WIN32_NAME = 512, 38 + SECPKG_FLAG_STREAM = 1024, 39 +} 40 + 41 +enum :ULONG{ 42 + SECPKG_ATTR_AUTHORITY = 6, 43 + SECPKG_ATTR_CONNECTION_INFO = 90, 44 + SECPKG_ATTR_ISSUER_LIST = 80, 45 + SECPKG_ATTR_ISSUER_LIST_EX = 89, 46 + SECPKG_ATTR_KEY_INFO = 5, 47 + SECPKG_ATTR_LIFESPAN = 2, 48 + SECPKG_ATTR_LOCAL_CERT_CONTEXT = 84, 49 + SECPKG_ATTR_LOCAL_CRED = 82, 50 + SECPKG_ATTR_NAMES = 1, 51 + SECPKG_ATTR_PROTO_INFO = 7, 52 + SECPKG_ATTR_REMOTE_CERT_CONTEXT = 83, 53 + SECPKG_ATTR_REMOTE_CRED = 81, 54 + SECPKG_ATTR_SIZES = 0, 55 + SECPKG_ATTR_STREAM_SIZES = 4, 56 +} 57 + 58 +enum :ULONG{ 59 + SECBUFFER_EMPTY = 0, 60 + SECBUFFER_DATA = 1, 61 + SECBUFFER_TOKEN = 2, 62 + SECBUFFER_PKG_PARAMS = 3, 63 + SECBUFFER_MISSING = 4, 64 + SECBUFFER_EXTRA = 5, 65 + SECBUFFER_STREAM_TRAILER = 6, 66 + SECBUFFER_STREAM_HEADER = 7, 67 + SECBUFFER_PADDING = 9, 68 + SECBUFFER_STREAM = 10, 69 + SECBUFFER_READONLY = 0x80000000, 70 + SECBUFFER_ATTRMASK = 0xf0000000, 71 +} 72 + 73 +enum UNISP_NAME_A = "Microsoft Unified Security Protocol Provider"; 74 +enum UNISP_NAME_W = "Microsoft Unified Security Protocol Provider"w; 75 +enum SECBUFFER_VERSION = 0; 76 + 77 +alias UNICODE_STRING SECURITY_STRING; 78 +alias UNICODE_STRING* PSECURITY_STRING; 79 + 80 +extern(Windows): 81 + 82 +struct SecHandle { 83 + ULONG_PTR dwLower; 84 + ULONG_PTR dwUpper; 85 +} 86 +alias SecHandle* PSecHandle; 87 +struct SecBuffer { 88 + ULONG cbBuffer; 89 + ULONG BufferType; 90 + PVOID pvBuffer; 91 +} 92 +alias SecBuffer* PSecBuffer; 93 +alias SecHandle CredHandle; 94 +alias PSecHandle PCredHandle; 95 +alias SecHandle CtxtHandle; 96 +alias PSecHandle PCtxtHandle; 97 +struct SECURITY_INTEGER { 98 + uint LowPart; 99 + int HighPart; 100 +} 101 +alias SECURITY_INTEGER TimeStamp; 102 +alias SECURITY_INTEGER* PTimeStamp; 103 +struct SecBufferDesc { 104 + ULONG ulVersion; 105 + ULONG cBuffers; 106 + PSecBuffer pBuffers; 107 +} 108 +alias SecBufferDesc* PSecBufferDesc; 109 +struct SecPkgContext_StreamSizes { 110 + ULONG cbHeader; 111 + ULONG cbTrailer; 112 + ULONG cbMaximumMessage; 113 + ULONG cBuffers; 114 + ULONG cbBlockSize; 115 +} 116 +alias SecPkgContext_StreamSizes* PSecPkgContext_StreamSizes; 117 +struct SecPkgContext_Sizes { 118 + ULONG cbMaxToken; 119 + ULONG cbMaxSignature; 120 + ULONG cbBlockSize; 121 + ULONG cbSecurityTrailer; 122 +} 123 +alias SecPkgContext_Sizes* PSecPkgContext_Sizes; 124 +struct SecPkgContext_AuthorityW { 125 + SEC_WCHAR* sAuthorityName; 126 +} 127 +alias SecPkgContext_AuthorityW* PSecPkgContext_AuthorityW; 128 +struct SecPkgContext_AuthorityA { 129 + SEC_CHAR* sAuthorityName; 130 +} 131 +alias SecPkgContext_AuthorityA* PSecPkgContext_AuthorityA; 132 +struct SecPkgContext_KeyInfoW { 133 + SEC_WCHAR* sSignatureAlgorithmName; 134 + SEC_WCHAR* sEncryptAlgorithmName; 135 + ULONG KeySize; 136 + ULONG SignatureAlgorithm; 137 + ULONG EncryptAlgorithm; 138 +} 139 +alias SecPkgContext_KeyInfoW* PSecPkgContext_KeyInfoW; 140 +struct SecPkgContext_KeyInfoA { 141 + SEC_CHAR* sSignatureAlgorithmName; 142 + SEC_CHAR* sEncryptAlgorithmName; 143 + ULONG KeySize; 144 + ULONG SignatureAlgorithm; 145 + ULONG EncryptAlgorithm; 146 +} 147 +alias SecPkgContext_KeyInfoA* PSecPkgContext_KeyInfoA; 148 +struct SecPkgContext_LifeSpan { 149 + TimeStamp tsStart; 150 + TimeStamp tsExpiry; 151 +} 152 +alias SecPkgContext_LifeSpan* PSecPkgContext_LifeSpan; 153 +struct SecPkgContext_NamesW { 154 + SEC_WCHAR* sUserName; 155 +} 156 +alias SecPkgContext_NamesW* PSecPkgContext_NamesW; 157 +struct SecPkgContext_NamesA { 158 + SEC_CHAR* sUserName; 159 +} 160 +alias SecPkgContext_NamesA* PSecPkgContext_NamesA; 161 +struct SecPkgInfoW { 162 + ULONG fCapabilities; 163 + USHORT wVersion; 164 + USHORT wRPCID; 165 + ULONG cbMaxToken; 166 + SEC_WCHAR* Name; 167 + SEC_WCHAR* Comment; 168 +} 169 +alias SecPkgInfoW* PSecPkgInfoW; 170 +struct SecPkgInfoA { 171 + ULONG fCapabilities; 172 + USHORT wVersion; 173 + USHORT wRPCID; 174 + ULONG cbMaxToken; 175 + SEC_CHAR* Name; 176 + SEC_CHAR* Comment; 177 +} 178 +alias SecPkgInfoA* PSecPkgInfoA; 179 +/* supported only in win2k+, so it should be a PSecPkgInfoW */ 180 +/* PSDK does not say it has ANSI/Unicode versions */ 181 +struct SecPkgContext_PackageInfo { 182 + PSecPkgInfoW PackageInfo; 183 +} 184 +alias SecPkgContext_PackageInfo* PSecPkgContext_PackageInfo; 185 +struct SecPkgCredentials_NamesW { 186 + SEC_WCHAR* sUserName; 187 +} 188 +alias SecPkgCredentials_NamesW* PSecPkgCredentials_NamesW; 189 +struct SecPkgCredentials_NamesA { 190 + SEC_CHAR* sUserName; 191 +} 192 +alias SecPkgCredentials_NamesA* PSecPkgCredentials_NamesA; 193 + 194 +/* TODO: missing type in SDK */ 195 +alias void function() SEC_GET_KEY_FN; 196 + 197 +alias SECURITY_STATUS function(PULONG,PSecPkgInfoW*) ENUMERATE_SECURITY_PACKAGES_FN_W; 198 +alias SECURITY_STATUS function(PULONG,PSecPkgInfoA*) ENUMERATE_SECURITY_PACKAGES_FN_A; 199 +alias SECURITY_STATUS function(PCredHandle,ULONG,PVOID) QUERY_CREDENTIALS_ATTRIBUTES_FN_W; 200 +alias SECURITY_STATUS function(PCredHandle,ULONG,PVOID) QUERY_CREDENTIALS_ATTRIBUTES_FN_A; 201 +alias SECURITY_STATUS function(SEC_WCHAR*,SEC_WCHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp) ACQUIRE_CREDENTIALS_HANDLE_FN_W; 202 +alias SECURITY_STATUS function(SEC_CHAR*,SEC_CHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp) ACQUIRE_CREDENTIALS_HANDLE_FN_A; 203 +alias SECURITY_STATUS function(PCredHandle) FREE_CREDENTIALS_HANDLE_FN; 204 +alias SECURITY_STATUS function(PCredHandle,PCtxtHandle,SEC_WCHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp) INITIALIZE_SECURITY_CONTEXT_FN_W; 205 +alias SECURITY_STATUS function(PCredHandle,PCtxtHandle,SEC_CHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp) INITIALIZE_SECURITY_CONTEXT_FN_A; 206 +alias SECURITY_STATUS function(PCredHandle,PCtxtHandle,PSecBufferDesc,ULONG,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp) ACCEPT_SECURITY_CONTEXT_FN; 207 +alias SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc) COMPLETE_AUTH_TOKEN_FN; 208 +alias SECURITY_STATUS function(PCtxtHandle) DELETE_SECURITY_CONTEXT_FN; 209 +alias SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc) APPLY_CONTROL_TOKEN_FN_W; 210 +alias SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc) APPLY_CONTROL_TOKEN_FN_A; 211 +alias SECURITY_STATUS function(PCtxtHandle,ULONG,PVOID) QUERY_CONTEXT_ATTRIBUTES_FN_A; 212 +alias SECURITY_STATUS function(PCtxtHandle,ULONG,PVOID) QUERY_CONTEXT_ATTRIBUTES_FN_W; 213 +alias SECURITY_STATUS function(PCtxtHandle) IMPERSONATE_SECURITY_CONTEXT_FN; 214 +alias SECURITY_STATUS function(PCtxtHandle) REVERT_SECURITY_CONTEXT_FN; 215 +alias SECURITY_STATUS function(PCtxtHandle,ULONG,PSecBufferDesc,ULONG) MAKE_SIGNATURE_FN; 216 +alias SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc,ULONG,PULONG) VERIFY_SIGNATURE_FN; 217 +alias SECURITY_STATUS function(PVOID) FREE_CONTEXT_BUFFER_FN; 218 +alias SECURITY_STATUS function(SEC_CHAR*,PSecPkgInfoA*) QUERY_SECURITY_PACKAGE_INFO_FN_A; 219 +alias SECURITY_STATUS function(PCtxtHandle,HANDLE*) QUERY_SECURITY_CONTEXT_TOKEN_FN; 220 +alias SECURITY_STATUS function(SEC_WCHAR*,PSecPkgInfoW*) QUERY_SECURITY_PACKAGE_INFO_FN_W; 221 +alias SECURITY_STATUS function(PCtxtHandle,ULONG,PSecBufferDesc,ULONG) ENCRYPT_MESSAGE_FN; 222 +alias SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc,ULONG,PULONG) DECRYPT_MESSAGE_FN; 223 + 224 +/* No, it really is FreeCredentialsHandle, see the thread beginning 225 + * http://sourceforge.net/mailarchive/message.php?msg_id=4321080 for a 226 + * discovery discussion. */ 227 +struct SecurityFunctionTableW{ 228 + uint dwVersion; 229 + ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW; 230 + QUERY_CREDENTIALS_ATTRIBUTES_FN_W QueryCredentialsAttributesW; 231 + ACQUIRE_CREDENTIALS_HANDLE_FN_W AcquireCredentialsHandleW; 232 + FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle; 233 + void* Reserved2; 234 + INITIALIZE_SECURITY_CONTEXT_FN_W InitializeSecurityContextW; 235 + ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext; 236 + COMPLETE_AUTH_TOKEN_FN CompleteAuthToken; 237 + DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext; 238 + APPLY_CONTROL_TOKEN_FN_W ApplyControlTokenW; 239 + QUERY_CONTEXT_ATTRIBUTES_FN_W QueryContextAttributesW; 240 + IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext; 241 + REVERT_SECURITY_CONTEXT_FN RevertSecurityContext; 242 + MAKE_SIGNATURE_FN MakeSignature; 243 + VERIFY_SIGNATURE_FN VerifySignature; 244 + FREE_CONTEXT_BUFFER_FN FreeContextBuffer; 245 + QUERY_SECURITY_PACKAGE_INFO_FN_W QuerySecurityPackageInfoW; 246 + void* Reserved3; 247 + void* Reserved4; 248 + void* Reserved5; 249 + void* Reserved6; 250 + void* Reserved7; 251 + void* Reserved8; 252 + QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken; 253 + ENCRYPT_MESSAGE_FN EncryptMessage; 254 + DECRYPT_MESSAGE_FN DecryptMessage; 255 +} 256 +alias SecurityFunctionTableW* PSecurityFunctionTableW; 257 +struct SecurityFunctionTableA{ 258 + uint dwVersion; 259 + ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA; 260 + QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA; 261 + ACQUIRE_CREDENTIALS_HANDLE_FN_A AcquireCredentialsHandleA; 262 + FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle; 263 + void* Reserved2; 264 + INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA; 265 + ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext; 266 + COMPLETE_AUTH_TOKEN_FN CompleteAuthToken; 267 + DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext; 268 + APPLY_CONTROL_TOKEN_FN_A ApplyControlTokenA; 269 + QUERY_CONTEXT_ATTRIBUTES_FN_A QueryContextAttributesA; 270 + IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext; 271 + REVERT_SECURITY_CONTEXT_FN RevertSecurityContext; 272 + MAKE_SIGNATURE_FN MakeSignature; 273 + VERIFY_SIGNATURE_FN VerifySignature; 274 + FREE_CONTEXT_BUFFER_FN FreeContextBuffer; 275 + QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA; 276 + void* Reserved3; 277 + void* Reserved4; 278 + void* Unknown1; 279 + void* Unknown2; 280 + void* Unknown3; 281 + void* Unknown4; 282 + void* Unknown5; 283 + ENCRYPT_MESSAGE_FN EncryptMessage; 284 + DECRYPT_MESSAGE_FN DecryptMessage; 285 +} 286 +alias SecurityFunctionTableA* PSecurityFunctionTableA; 287 +alias PSecurityFunctionTableA function() INIT_SECURITY_INTERFACE_A; 288 +alias PSecurityFunctionTableW function() INIT_SECURITY_INTERFACE_W; 289 + 290 +SECURITY_STATUS FreeCredentialsHandle(PCredHandle); 291 +SECURITY_STATUS EnumerateSecurityPackagesA(PULONG,PSecPkgInfoA*); 292 +SECURITY_STATUS EnumerateSecurityPackagesW(PULONG,PSecPkgInfoW*); 293 +SECURITY_STATUS AcquireCredentialsHandleA(SEC_CHAR*,SEC_CHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp); 294 +SECURITY_STATUS AcquireCredentialsHandleW(SEC_WCHAR*,SEC_WCHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp); 295 +SECURITY_STATUS AcceptSecurityContext(PCredHandle,PCtxtHandle,PSecBufferDesc,ULONG,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); 296 +SECURITY_STATUS InitializeSecurityContextA(PCredHandle,PCtxtHandle,SEC_CHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); 297 +SECURITY_STATUS InitializeSecurityContextW(PCredHandle,PCtxtHandle,SEC_WCHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); 298 +SECURITY_STATUS FreeContextBuffer(PVOID); 299 +SECURITY_STATUS QueryContextAttributesA(PCtxtHandle,ULONG,PVOID); 300 +SECURITY_STATUS QueryContextAttributesW(PCtxtHandle,ULONG,PVOID); 301 +SECURITY_STATUS QueryCredentialsAttributesA(PCredHandle,ULONG,PVOID); 302 +SECURITY_STATUS QueryCredentialsAttributesW(PCredHandle,ULONG,PVOID); 303 +static if(_WIN32_WINNT >= 0x500){ 304 + SECURITY_STATUS QuerySecurityContextToken(PCtxtHandle,HANDLE*); 305 +} 306 +SECURITY_STATUS DecryptMessage(PCtxtHandle,PSecBufferDesc,ULONG,PULONG); 307 +SECURITY_STATUS EncryptMessage(PCtxtHandle,ULONG,PSecBufferDesc,ULONG); 308 +SECURITY_STATUS DeleteSecurityContext(PCtxtHandle); 309 +SECURITY_STATUS CompleteAuthToken(PCtxtHandle,PSecBufferDesc); 310 +SECURITY_STATUS ApplyControlTokenA(PCtxtHandle,PSecBufferDesc); 311 +SECURITY_STATUS ApplyControlTokenW(PCtxtHandle,PSecBufferDesc); 312 +SECURITY_STATUS ImpersonateSecurityContext(PCtxtHandle); 313 +SECURITY_STATUS RevertSecurityContext(PCtxtHandle); 314 +SECURITY_STATUS MakeSignature(PCtxtHandle,ULONG,PSecBufferDesc,ULONG); 315 +SECURITY_STATUS VerifySignature(PCtxtHandle,PSecBufferDesc,ULONG,PULONG); 316 +SECURITY_STATUS QuerySecurityPackageInfoA(SEC_CHAR*,PSecPkgInfoA*); 317 +SECURITY_STATUS QuerySecurityPackageInfoW(SEC_WCHAR*,PSecPkgInfoW*); 318 +PSecurityFunctionTableA InitSecurityInterfaceA(); 319 +PSecurityFunctionTableW InitSecurityInterfaceW(); 320 + 321 +version(Unicode) { 322 + alias UNISP_NAME_W UNISP_NAME; 323 + alias SecPkgInfoW SecPkgInfo; 324 + alias PSecPkgInfoW PSecPkgInfo; 325 + alias SecPkgCredentials_NamesW SecPkgCredentials_Names; 326 + alias PSecPkgCredentials_NamesW PSecPkgCredentials_Names; 327 + alias SecPkgContext_AuthorityW SecPkgContext_Authority; 328 + alias PSecPkgContext_AuthorityW PSecPkgContext_Authority; 329 + alias SecPkgContext_KeyInfoW SecPkgContext_KeyInfo; 330 + alias PSecPkgContext_KeyInfoW PSecPkgContext_KeyInfo; 331 + alias SecPkgContext_NamesW SecPkgContext_Names; 332 + alias PSecPkgContext_NamesW PSecPkgContext_Names; 333 + alias SecurityFunctionTableW SecurityFunctionTable; 334 + alias PSecurityFunctionTableW PSecurityFunctionTable; 335 + alias AcquireCredentialsHandleW AcquireCredentialsHandle; 336 + alias EnumerateSecurityPackagesW EnumerateSecurityPackages; 337 + alias InitializeSecurityContextW InitializeSecurityContext; 338 + alias QueryContextAttributesW QueryContextAttributes; 339 + alias QueryCredentialsAttributesW QueryCredentialsAttributes; 340 + alias QuerySecurityPackageInfoW QuerySecurityPackageInfo; 341 + alias ApplyControlTokenW ApplyControlToken; 342 + alias ENUMERATE_SECURITY_PACKAGES_FN_W ENUMERATE_SECURITY_PACKAGES_FN; 343 + alias QUERY_CREDENTIALS_ATTRIBUTES_FN_W QUERY_CREDENTIALS_ATTRIBUTES_FN; 344 + alias ACQUIRE_CREDENTIALS_HANDLE_FN_W ACQUIRE_CREDENTIALS_HANDLE_FN; 345 + alias INITIALIZE_SECURITY_CONTEXT_FN_W INITIALIZE_SECURITY_CONTEXT_FN; 346 + alias APPLY_CONTROL_TOKEN_FN_W APPLY_CONTROL_TOKEN_FN; 347 + alias QUERY_CONTEXT_ATTRIBUTES_FN_W QUERY_CONTEXT_ATTRIBUTES_FN; 348 + alias QUERY_SECURITY_PACKAGE_INFO_FN_W QUERY_SECURITY_PACKAGE_INFO_FN; 349 + alias INIT_SECURITY_INTERFACE_W INIT_SECURITY_INTERFACE; 350 +}else{ 351 + alias UNISP_NAME_A UNISP_NAME; 352 + alias SecPkgInfoA SecPkgInfo; 353 + alias PSecPkgInfoA PSecPkgInfo; 354 + alias SecPkgCredentials_NamesA SecPkgCredentials_Names; 355 + alias PSecPkgCredentials_NamesA PSecPkgCredentials_Names; 356 + alias SecPkgContext_AuthorityA SecPkgContext_Authority; 357 + alias PSecPkgContext_AuthorityA PSecPkgContext_Authority; 358 + alias SecPkgContext_KeyInfoA SecPkgContext_KeyInfo; 359 + alias PSecPkgContext_KeyInfoA PSecPkgContext_KeyInfo; 360 + alias SecPkgContext_NamesA SecPkgContext_Names; 361 + alias PSecPkgContext_NamesA PSecPkgContext_Names; 362 + alias SecurityFunctionTableA SecurityFunctionTable; 363 + alias PSecurityFunctionTableA PSecurityFunctionTable; 364 + alias AcquireCredentialsHandleA AcquireCredentialsHandle; 365 + alias EnumerateSecurityPackagesA EnumerateSecurityPackages; 366 + alias InitializeSecurityContextA InitializeSecurityContext; 367 + alias QueryContextAttributesA QueryContextAttributes; 368 + alias QueryCredentialsAttributesA QueryCredentialsAttributes; 369 + alias QuerySecurityPackageInfoA QuerySecurityPackageInfo; 370 + alias ApplyControlTokenA ApplyControlToken; 371 + alias ENUMERATE_SECURITY_PACKAGES_FN_A ENUMERATE_SECURITY_PACKAGES_FN; 372 + alias QUERY_CREDENTIALS_ATTRIBUTES_FN_A QUERY_CREDENTIALS_ATTRIBUTES_FN; 373 + alias ACQUIRE_CREDENTIALS_HANDLE_FN_A ACQUIRE_CREDENTIALS_HANDLE_FN; 374 + alias INITIALIZE_SECURITY_CONTEXT_FN_A INITIALIZE_SECURITY_CONTEXT_FN; 375 + alias APPLY_CONTROL_TOKEN_FN_A APPLY_CONTROL_TOKEN_FN; 376 + alias QUERY_CONTEXT_ATTRIBUTES_FN_A QUERY_CONTEXT_ATTRIBUTES_FN; 377 + alias QUERY_SECURITY_PACKAGE_INFO_FN_A QUERY_SECURITY_PACKAGE_INFO_FN; 378 + alias INIT_SECURITY_INTERFACE_A INIT_SECURITY_INTERFACE; 379 +} 380 +

Modified src/win32/subauth.d from [f644874abd87ad5a] to [2e201cc81211b5e1].

102 102 USHORT Length; 103 103 USHORT MaximumLength; 104 104 PCHAR Buffer; 105 105 } 106 106 alias STRING* PSTRING; 107 107 +/ 108 108 109 -alias HANDLE SAM_HANDLE; 110 -alias HANDLE* PSAM_HANDLE; 109 +mixin DECLARE_HANDLE!("SAM_HANDLE"); 110 +alias SAM_HANDLE* PSAM_HANDLE; 111 111 112 112 struct OLD_LARGE_INTEGER { 113 113 ULONG LowPart; 114 114 LONG HighPart; 115 115 } 116 116 alias OLD_LARGE_INTEGER* POLD_LARGE_INTEGER; 117 117 ................................................................................ 127 127 128 128 129 129 const CYPHER_BLOCK_LENGTH = 8; 130 130 const USER_SESSION_KEY_LENGTH = CYPHER_BLOCK_LENGTH * 2; 131 131 const CLEAR_BLOCK_LENGTH = 8; 132 132 133 133 struct CYPHER_BLOCK { 134 - CHAR data[CYPHER_BLOCK_LENGTH]; 134 + CHAR[CYPHER_BLOCK_LENGTH] data; 135 135 } 136 136 alias CYPHER_BLOCK* PCYPHER_BLOCK; 137 137 138 138 struct CLEAR_BLOCK { 139 - CHAR data[CLEAR_BLOCK_LENGTH]; 139 + CHAR[CLEAR_BLOCK_LENGTH] data; 140 140 } 141 141 alias CLEAR_BLOCK* PCLEAR_BLOCK; 142 142 143 143 struct LM_OWF_PASSWORD { 144 - CYPHER_BLOCK data[2]; 144 + CYPHER_BLOCK[2] data; 145 145 } 146 146 alias LM_OWF_PASSWORD* PLM_OWF_PASSWORD; 147 147 148 148 struct USER_SESSION_KEY { 149 - CYPHER_BLOCK data[2]; 149 + CYPHER_BLOCK[2] data; 150 150 } 151 151 alias USER_SESSION_KEY* PUSER_SESSION_KEY; 152 152 153 153 alias CLEAR_BLOCK LM_CHALLENGE; 154 154 alias LM_CHALLENGE* PLM_CHALLENGE; 155 155 156 156 alias LM_OWF_PASSWORD NT_OWF_PASSWORD;

Added src/win32/testall.d version [bab623b5478ae8fc]

1 +// Used only for testing -- imports all windows headers. 2 +module win32.testall; 3 + 4 +import win32.core; 5 +import win32.windows; 6 +import win32.commctrl; 7 +import win32.setupapi; 8 + 9 +import win32.directx.dinput8; 10 +import win32.directx.dsound8; 11 + 12 +import win32.directx.d3d9; 13 +import win32.directx.d3dx9; 14 +import win32.directx.dxerr; 15 +import win32.directx.dxerr8; 16 +import win32.directx.dxerr9; 17 + 18 +import win32.directx.d3d10; 19 +import win32.directx.d3d10effect; 20 +import win32.directx.d3d10shader; 21 +import win32.directx.d3dx10; 22 +import win32.directx.dxgi; 23 + 24 +import win32.oleacc; 25 +import win32.comcat; 26 +import win32.cpl; 27 +import win32.cplext; 28 +import win32.custcntl; 29 +import win32.ocidl; 30 +import win32.olectl; 31 +import win32.oledlg; 32 +import win32.objsafe; 33 +import win32.ole; 34 + 35 +import win32.shldisp; 36 +import win32.shlobj; 37 +import win32.shlwapi; 38 +import win32.regstr; 39 +import win32.richole; 40 +import win32.tmschema; 41 +import win32.servprov; 42 +import win32.exdisp; 43 +import win32.exdispid; 44 +import win32.idispids; 45 +import win32.mshtml; 46 + 47 +import win32.lm; 48 +import win32.lmbrowsr; 49 + 50 +import win32.sql; 51 +import win32.sqlext; 52 +import win32.sqlucode; 53 +import win32.odbcinst; 54 + 55 +import win32.imagehlp; 56 +import win32.intshcut; 57 +import win32.iphlpapi; 58 +import win32.isguids; 59 + 60 +import win32.subauth; 61 +import win32.rasdlg; 62 +import win32.rassapi; 63 + 64 +import win32.mapi; 65 +import win32.mciavi; 66 +import win32.mcx; 67 +import win32.mgmtapi; 68 + 69 +import win32.nddeapi; 70 +import win32.msacm; 71 +import win32.nspapi; 72 + 73 +import win32.ntdef; 74 +import win32.ntldap; 75 +import win32.ntsecapi; 76 + 77 +import win32.pbt; 78 +import win32.powrprof; 79 +import win32.rapi; 80 + 81 +import win32.wininet; 82 +import win32.winioctl; 83 +import win32.winldap; 84 + 85 +import win32.dbt; 86 + 87 +import win32.rpcdce2; 88 + 89 +import win32.tlhelp32; 90 + 91 +import win32.httpext; 92 +import win32.lmwksta; 93 +import win32.mswsock; 94 +import win32.objidl; 95 +import win32.ole2ver; 96 +import win32.psapi; 97 +import win32.raserror; 98 +import win32.usp10; 99 +import win32.vfw; 100 + 101 +version (WindowsVista) { 102 + version = WINDOWS_XP_UP; 103 +} else version (Windows2003) { 104 + version = WINDOWS_XP_UP; 105 +} else version (WindowsXP) { 106 + version = WINDOWS_XP_UP; 107 +} 108 + 109 +version (WINDOWS_XP_UP) { 110 + import win32.errorrep; 111 + import win32.lmmsg; 112 + import win32.reason; 113 + import win32.secext; 114 +} 115 +import win32.aclapi; 116 +import win32.aclui; 117 +import win32.dhcpcsdk; 118 +import win32.lmserver; 119 +import win32.ntdll; 120 + 121 +version (Win32_Winsock1) { 122 + import win32.winsock; 123 +}

Added src/win32/testcompile.bat version [68d5658ffa3146f6]

1 +@call :testuni 2 +@call :testuni -version=Unicode 3 +@goto :eof 4 + 5 +:testuni 6 +@call :testversion %* 7 +@call :testversion %* -version=Windows2000 8 +@call :testversion %* -version=WindowsXP 9 +@call :testversion %* -version=Windows2003 10 +@call :testversion %* -version=WindowsVista 11 +@call :testversion %* -version=Win32_Winsock1 12 +@call :testversion %* -version=IE7 13 +@goto :eof 14 + 15 +:testversion 16 +@call :testone -m32 %* 17 +@call :testone -m64 %* 18 +@goto :eof 19 + 20 +:testone 21 +dmd -I.. -c %* testall.d 22 +@if errorlevel 1 exit 1 23 +@goto :eof

Modified src/win32/tlhelp32.d from [57d6b78740d2c6bb] to [ae72c8193c7063ac].

30 30 TH32CS_SNAPTHREAD = 0x4, 31 31 TH32CS_SNAPMODULE = 0x8, 32 32 TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST|TH32CS_SNAPPROCESS|TH32CS_SNAPTHREAD|TH32CS_SNAPMODULE), 33 33 TH32CS_INHERIT = 0x80000000 34 34 } 35 35 36 36 struct HEAPLIST32 { 37 - DWORD dwSize; 37 + SIZE_T dwSize; 38 38 DWORD th32ProcessID; 39 - DWORD th32HeapID; 39 + ULONG_PTR th32HeapID; 40 40 DWORD dwFlags; 41 41 } 42 42 alias HEAPLIST32* PHEAPLIST32; 43 43 alias HEAPLIST32* LPHEAPLIST32; 44 44 45 45 struct HEAPENTRY32 { 46 - DWORD dwSize; 46 + SIZE_T dwSize; 47 47 HANDLE hHandle; 48 - DWORD dwAddress; 49 - DWORD dwBlockSize; 48 + ULONG_PTR dwAddress; 49 + SIZE_T dwBlockSize; 50 50 DWORD dwFlags; 51 51 DWORD dwLockCount; 52 52 DWORD dwResvd; 53 53 DWORD th32ProcessID; 54 - DWORD th32HeapID; 54 + ULONG_PTR th32HeapID; 55 55 } 56 56 alias HEAPENTRY32* PHEAPENTRY32; 57 57 alias HEAPENTRY32* LPHEAPENTRY32; 58 58 59 59 struct PROCESSENTRY32W { 60 60 DWORD dwSize; 61 61 DWORD cntUsage; 62 62 DWORD th32ProcessID; 63 - DWORD th32DefaultHeapID; 63 + ULONG_PTR th32DefaultHeapID; 64 64 DWORD th32ModuleID; 65 65 DWORD cntThreads; 66 66 DWORD th32ParentProcessID; 67 67 LONG pcPriClassBase; 68 68 DWORD dwFlags; 69 - WCHAR szExeFile[MAX_PATH]; 69 + WCHAR[MAX_PATH] szExeFile; 70 70 } 71 71 alias PROCESSENTRY32W* PPROCESSENTRY32W; 72 72 alias PROCESSENTRY32W* LPPROCESSENTRY32W; 73 73 74 74 struct THREADENTRY32 { 75 75 DWORD dwSize; 76 76 DWORD cntUsage; ................................................................................ 88 88 DWORD th32ModuleID; 89 89 DWORD th32ProcessID; 90 90 DWORD GlblcntUsage; 91 91 DWORD ProccntUsage; 92 92 BYTE *modBaseAddr; 93 93 DWORD modBaseSize; 94 94 HMODULE hModule; 95 - WCHAR szModule[MAX_MODULE_NAME32 + 1]; 96 - WCHAR szExePath[MAX_PATH]; 95 + WCHAR[MAX_MODULE_NAME32 + 1] szModule; 96 + WCHAR[MAX_PATH] szExePath; 97 97 } 98 98 alias MODULEENTRY32W* PMODULEENTRY32W; 99 99 alias MODULEENTRY32W* LPMODULEENTRY32W; 100 100 101 101 version(Unicode) { 102 102 alias PROCESSENTRY32W PROCESSENTRY32; 103 103 alias PPROCESSENTRY32W PPROCESSENTRY32; ................................................................................ 107 107 alias PMODULEENTRY32W PMODULEENTRY32; 108 108 alias LPMODULEENTRY32W LPMODULEENTRY32; 109 109 } else { 110 110 struct PROCESSENTRY32 { 111 111 DWORD dwSize; 112 112 DWORD cntUsage; 113 113 DWORD th32ProcessID; 114 - DWORD th32DefaultHeapID; 114 + ULONG_PTR th32DefaultHeapID; 115 115 DWORD th32ModuleID; 116 116 DWORD cntThreads; 117 117 DWORD th32ParentProcessID; 118 118 LONG pcPriClassBase; 119 119 DWORD dwFlags; 120 - CHAR szExeFile[MAX_PATH]; 120 + CHAR[MAX_PATH] szExeFile; 121 121 } 122 122 alias PROCESSENTRY32* PPROCESSENTRY32; 123 123 alias PROCESSENTRY32* LPPROCESSENTRY32; 124 124 125 125 struct MODULEENTRY32 { 126 126 DWORD dwSize; 127 127 DWORD th32ModuleID; 128 128 DWORD th32ProcessID; 129 129 DWORD GlblcntUsage; 130 130 DWORD ProccntUsage; 131 131 BYTE *modBaseAddr; 132 132 DWORD modBaseSize; 133 133 HMODULE hModule; 134 - char szModule[MAX_MODULE_NAME32 + 1]; 135 - char szExePath[MAX_PATH]; 134 + char[MAX_MODULE_NAME32 + 1] szModule; 135 + char[MAX_PATH] szExePath; 136 136 } 137 137 alias MODULEENTRY32* PMODULEENTRY32; 138 138 alias MODULEENTRY32* LPMODULEENTRY32; 139 139 } 140 140 141 141 142 142 extern(Windows) {

Modified src/win32/tmschema.d from [57cb44d41ff60fd2] to [26d6cc7f6beb564c].

Modified src/win32/unknwn.d from [bef2bcd5872970ce] to [b2a61832b0cfbdcf].

32 32 HRESULT CreateInstance(IUnknown UnkOuter, IID* riid, void** pvObject); 33 33 HRESULT LockServer(BOOL fLock); 34 34 } 35 35 alias IClassFactory LPCLASSFACTORY; 36 36 37 37 /+ 38 38 // These do not seem to be necessary (or desirable) for D. 39 - HRESULT IUnknown_QueryInterface_Proxy(IUnknown*,REFIID,void**); 40 - ULONG IUnknown_AddRef_Proxy(IUnknown*); 41 - ULONG IUnknown_Release_Proxy(IUnknown*); 42 - HRESULT IClassFactory_RemoteCreateInstance_Proxy(IClassFactory*,REFIID,IUnknown**); 43 - HRESULT IClassFactory_RemoteLockServer_Proxy(IClassFactory*,BOOL); 44 - HRESULT IClassFactory_CreateInstance_Proxy(IClassFactory*,IUnknown*,REFIID,void**); 45 - HRESULT IClassFactory_CreateInstance_Stub(IClassFactory*,REFIID,IUnknown**); 46 - HRESULT IClassFactory_LockServer_Proxy(IClassFactory*,BOOL); 47 - HRESULT IClassFactory_LockServer_Stub(IClassFactory*,BOOL); 39 + HRESULT IUnknown_QueryInterface_Proxy(IUnknown,REFIID,void**); 40 + ULONG IUnknown_AddRef_Proxy(IUnknown); 41 + ULONG IUnknown_Release_Proxy(IUnknown); 42 + HRESULT IClassFactory_RemoteCreateInstance_Proxy(IClassFactory,REFIID,IUnknown*); 43 + HRESULT IClassFactory_RemoteLockServer_Proxy(IClassFactory,BOOL); 44 + HRESULT IClassFactory_CreateInstance_Proxy(IClassFactory,IUnknown,REFIID,void**); 45 + HRESULT IClassFactory_CreateInstance_Stub(IClassFactory,REFIID,IUnknown*); 46 + HRESULT IClassFactory_LockServer_Proxy(IClassFactory,BOOL); 47 + HRESULT IClassFactory_LockServer_Stub(IClassFactory,BOOL); 48 48 49 49 void IUnknown_QueryInterface_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD); 50 50 void IUnknown_AddRef_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD); 51 51 void IUnknown_Release_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD); 52 52 void IClassFactory_RemoteCreateInstance_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD); 53 53 void IClassFactory_RemoteLockServer_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD); 54 54 +/ 55 55 }

Modified src/win32/usp10.d from [a70e4c08c60d829b] to [cce453ef0465bd4e].

282 282 283 283 284 284 /* Uniscribe Functions 285 285 * http://msdn2.microsoft.com/library/ms776469 */ 286 286 extern (Windows) 287 287 { 288 288 HRESULT ScriptFreeCache(SCRIPT_CACHE*); 289 - HRESULT ScriptItemize(CPtr!(WCHAR), int, int, CPtr!(SCRIPT_CONTROL), CPtr!(SCRIPT_STATE), SCRIPT_ITEM*, int*); 290 - HRESULT ScriptLayout(int, CPtr!(BYTE), int*, int*); 291 - HRESULT ScriptShape(HDC, SCRIPT_CACHE*, CPtr!(WCHAR), int, int, SCRIPT_ANALYSIS*, WORD*, WORD*, SCRIPT_VISATTR*, int*); 292 - HRESULT ScriptPlace(HDC, SCRIPT_CACHE*, CPtr!(WORD), int, CPtr!(SCRIPT_VISATTR), SCRIPT_ANALYSIS*, int*, GOFFSET*, ABC*); 293 - HRESULT ScriptTextOut(HDC, SCRIPT_CACHE*, int, int, UINT, CPtr!(RECT), CPtr!(SCRIPT_ANALYSIS), CPtr!(WCHAR), int, CPtr!(WORD), int, CPtr!(int), int*, CPtr!(GOFFSET)); 294 - HRESULT ScriptJustify(CPtr!(SCRIPT_VISATTR), CPtr!(int), int, int, int, int*); 295 - HRESULT ScriptBreak(CPtr!(WCHAR), int, CPtr!(SCRIPT_ANALYSIS), CPtr!(SCRIPT_LOGATTR)); 296 - HRESULT ScriptCPtoX(int, BOOL, int, int, CPtr!(WORD), CPtr!(SCRIPT_VISATTR), CPtr!(int), CPtr!(SCRIPT_ANALYSIS), int*); 297 - HRESULT ScriptXtoCP(int, int, int, CPtr!(WORD), CPtr!(SCRIPT_VISATTR), CPtr!(int), CPtr!(SCRIPT_ANALYSIS), int*, int*); 298 - HRESULT ScriptGetLogicalWidths(CPtr!(SCRIPT_ANALYSIS), int, int, CPtr!(int), CPtr!(WORD), CPtr!(SCRIPT_VISATTR), int*); 299 - HRESULT ScriptApplyLogicalWidth(CPtr!(int), int, int, CPtr!(WORD), CPtr!(SCRIPT_VISATTR), CPtr!(int), CPtr!(SCRIPT_ANALYSIS), ABC*, int*); 300 - HRESULT ScriptGetCMap(HDC, SCRIPT_CACHE*, CPtr!(WCHAR), int, DWORD, WORD*); 289 + HRESULT ScriptItemize(const(WCHAR)*, int, int, const(SCRIPT_CONTROL)*, const(SCRIPT_STATE)*, SCRIPT_ITEM*, int*); 290 + HRESULT ScriptLayout(int, const(BYTE)*, int*, int*); 291 + HRESULT ScriptShape(HDC, SCRIPT_CACHE*, const(WCHAR)*, int, int, SCRIPT_ANALYSIS*, WORD*, WORD*, SCRIPT_VISATTR*, int*); 292 + HRESULT ScriptPlace(HDC, SCRIPT_CACHE*, const(WORD)*, int, const(SCRIPT_VISATTR)*, SCRIPT_ANALYSIS*, int*, GOFFSET*, ABC*); 293 + HRESULT ScriptTextOut(HDC, SCRIPT_CACHE*, int, int, UINT, const(RECT)*, const(SCRIPT_ANALYSIS)*, const(WCHAR)*, int, const(WORD)*, int, const(int)*, int*, const(GOFFSET)*); 294 + HRESULT ScriptJustify(const(SCRIPT_VISATTR)*, const(int)*, int, int, int, int*); 295 + HRESULT ScriptBreak(const(WCHAR)*, int, const(SCRIPT_ANALYSIS)*, const(SCRIPT_LOGATTR)*); 296 + HRESULT ScriptCPtoX(int, BOOL, int, int, const(WORD)*, const(SCRIPT_VISATTR)*, const(int)*, const(SCRIPT_ANALYSIS)*, int*); 297 + HRESULT ScriptXtoCP(int, int, int, const(WORD)*, const(SCRIPT_VISATTR)*, const(int)*, const(SCRIPT_ANALYSIS)*, int*, int*); 298 + HRESULT ScriptGetLogicalWidths(const(SCRIPT_ANALYSIS)*, int, int, const(int)*, const(WORD)*, const(SCRIPT_VISATTR)*, int*); 299 + HRESULT ScriptApplyLogicalWidth(const(int)*, int, int, const(WORD)*, const(SCRIPT_VISATTR)*, const(int)*, const(SCRIPT_ANALYSIS)*, ABC*, int*); 300 + HRESULT ScriptGetCMap(HDC, SCRIPT_CACHE*, const(WCHAR)*, int, DWORD, WORD*); 301 301 HRESULT ScriptGetGlyphABCWidth(HDC, SCRIPT_CACHE*, WORD, ABC*); 302 - HRESULT ScriptGetProperties(CPtr!(SCRIPT_PROPERTIES**), int*); 302 + HRESULT ScriptGetProperties(const(SCRIPT_PROPERTIES**)*, int*); 303 303 HRESULT ScriptGetFontProperties(HDC, SCRIPT_CACHE*, SCRIPT_FONTPROPERTIES*); 304 304 HRESULT ScriptCacheGetHeight(HDC, SCRIPT_CACHE*, int*); 305 - HRESULT ScriptIsComplex(CPtr!(WCHAR), int, DWORD); 305 + HRESULT ScriptIsComplex(const(WCHAR)*, int, DWORD); 306 306 HRESULT ScriptRecordDigitSubstitution(LCID, SCRIPT_DIGITSUBSTITUTE*); 307 - HRESULT ScriptApplyDigitSubstitution(CPtr!(SCRIPT_DIGITSUBSTITUTE), SCRIPT_CONTROL*, SCRIPT_STATE*); 307 + HRESULT ScriptApplyDigitSubstitution(const(SCRIPT_DIGITSUBSTITUTE)*, SCRIPT_CONTROL*, SCRIPT_STATE*); 308 308 309 309 /* ScriptString Functions 310 310 * http://msdn2.microsoft.com/library/ms776485 */ 311 - HRESULT ScriptStringAnalyse(HDC, CPtr!(void), int, int, int, DWORD, int, SCRIPT_CONTROL*, SCRIPT_STATE*, CPtr!(int), SCRIPT_TABDEF*, CPtr!(BYTE), SCRIPT_STRING_ANALYSIS*); 311 + HRESULT ScriptStringAnalyse(HDC, const(void)*, int, int, int, DWORD, int, SCRIPT_CONTROL*, SCRIPT_STATE*, const(int)*, SCRIPT_TABDEF*, const(BYTE)*, SCRIPT_STRING_ANALYSIS*); 312 312 HRESULT ScriptStringFree(SCRIPT_STRING_ANALYSIS*); 313 - CPtr!(SIZE) ScriptString_pSize(SCRIPT_STRING_ANALYSIS); 314 - CPtr!(int) ScriptString_pcOutChars(SCRIPT_STRING_ANALYSIS); 315 - CPtr!(SCRIPT_LOGATTR) ScriptString_pLogAttr(SCRIPT_STRING_ANALYSIS); 313 + const(SIZE)* ScriptString_pSize(SCRIPT_STRING_ANALYSIS); 314 + const(int)* ScriptString_pcOutChars(SCRIPT_STRING_ANALYSIS); 315 + const(SCRIPT_LOGATTR)* ScriptString_pLogAttr(SCRIPT_STRING_ANALYSIS); 316 316 HRESULT ScriptStringGetOrder(SCRIPT_STRING_ANALYSIS, UINT*); 317 317 HRESULT ScriptStringCPtoX(SCRIPT_STRING_ANALYSIS, int, BOOL, int*); 318 318 HRESULT ScriptStringXtoCP(SCRIPT_STRING_ANALYSIS, int, int*, int*); 319 319 HRESULT ScriptStringGetLogicalWidths(SCRIPT_STRING_ANALYSIS, int*); 320 320 HRESULT ScriptStringValidate(SCRIPT_STRING_ANALYSIS); 321 - HRESULT ScriptStringOut(SCRIPT_STRING_ANALYSIS, int, int, UINT, CPtr!(RECT), int, int, BOOL); 321 + HRESULT ScriptStringOut(SCRIPT_STRING_ANALYSIS, int, int, UINT, const(RECT)*, int, int, BOOL); 322 322 323 323 /* TODO: Windows Vista fearured functions 324 324 ScriptGetFontAlternateGlyphs() 325 325 ScriptGetFontFeatureTags() 326 326 ScriptGetFontLanguageTags() 327 327 ScriptGetFontScriptTags() 328 328 ScriptItemizeOpenType() 329 329 ScriptPlaceOpenType() 330 330 ScriptPositionSingleGlyph() 331 331 ScriptShapeOpenType() 332 332 ScriptSubstituteSingleGlyph() 333 333 */ 334 334 }

Modified src/win32/uuid.d from [522e1289f42c29a4] to [6945f4e8e141228c].

1 1 module win32.uuid; 2 2 3 3 import win32.basetyps; 4 4 5 +export 5 6 extern(C) { 6 7 const IID _DBBMKGUID = {0xF6304BB0, 0xD188, 0x11CD, [0xAD, 0x48, 0x00, 0xAA, 0x00, 0x3C, 0x9C, 0xB6]}; 7 8 const IID _DBCIDGUID = {0xFE284700, 0xD188, 0x11CD, [0xAD, 0x48, 0x00, 0xAA, 0x00, 0x3C, 0x9C, 0xB6]}; 8 9 const IID _GUID_NAMEONLY = {0xE8BF1170, 0xD188, 0x11CD, [0xAD, 0x48, 0x00, 0xAA, 0x00, 0x3C, 0x9C, 0xB6]}; 9 10 const IID ARRAYID_PathProperties = {0x7ECBBA04, 0x2D97, 0x11CF, [0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52]}; 10 11 const IID BFID_GRAY_16 = {0xF9D6BC00, 0x449C, 0x11D0, [0x91, 0x8C, 0x00, 0xAA, 0x00, 0x6C, 0x1A, 0x01]}; 11 12 const IID BFID_GRAY_8 = {0xD93DE910, 0x449C, 0x11D0, [0x91, 0x8C, 0x00, 0xAA, 0x00, 0x6C, 0x1A, 0x01]};

Modified src/win32/vfw.d from [b5a6268e1454a5d6] to [754e428e88f168dc].

4 4 * Windows API header module * 5 5 * written in the D programming language * 6 6 * * 7 7 * Placed into public domain * 8 8 \***********************************************************************/ 9 9 10 10 module win32.vfw; 11 -pragma(lib, "vfw32.lib"); 11 +pragma(lib, "vfw32"); 12 12 13 13 private import 14 14 win32.commdlg, 15 15 win32.wingdi, 16 16 win32.mmsystem, 17 17 win32.unknwn, 18 18 win32.w32api, ................................................................................ 31 31 32 32 /** 33 33 * COMPMAN - Installable Compression Manager. 34 34 */ 35 35 36 36 const ICVERSION = 0x0104; 37 37 38 -alias HANDLE HIC; 38 +alias TypeDef!(HANDLE) HIC; 39 39 40 40 const BI_1632 = 0x32333631; 41 41 42 42 template aviTWOCC(char c0, char c1) { 43 43 const WORD aviTWOCC = c0 | (c1 << 8); 44 44 } 45 45 ................................................................................ 182 182 struct ICINFO { 183 183 DWORD dwSize; 184 184 DWORD fccType; 185 185 DWORD fccHandler; 186 186 DWORD dwFlags; 187 187 DWORD dwVersion; 188 188 DWORD dwVersionICM; 189 - WCHAR szName[16]; 190 - WCHAR szDescription[128]; 191 - WCHAR szDriver[128]; 189 + WCHAR[16] szName; 190 + WCHAR[128] szDescription; 191 + WCHAR[128] szDriver; 192 192 } 193 193 194 194 enum { 195 195 VIDCF_QUALITY = 0x0001, 196 196 VIDCF_CRUNCH = 0x0002, 197 197 VIDCF_TEMPORAL = 0x0004, 198 198 VIDCF_COMPRESSFRAMES = 0x0008, ................................................................................ 379 379 const ICMF_ABOUT_QUERY = 0x00000001; 380 380 381 381 DWORD ICQueryAbout(HIC hic) { 382 382 return ICSendMessage(hic, ICM_ABOUT, -1, ICMF_ABOUT_QUERY) == ICERR_OK; 383 383 } 384 384 385 385 DWORD ICAbout(HIC hic, HWND hwnd) { 386 - return ICSendMessage(hic, ICM_ABOUT, cast(UINT)hwnd, 0); 386 + return cast(DWORD) ICSendMessage(hic, ICM_ABOUT, cast(DWORD_PTR) cast(UINT_PTR) hwnd, 0); 387 387 } 388 388 389 389 DWORD ICQueryConfigure(HIC hic) { 390 390 return (ICSendMessage(hic, ICM_CONFIGURE, -1, ICMF_CONFIGURE_QUERY) == ICERR_OK); 391 391 } 392 392 393 393 DWORD ICConfigure(HIC hic, HWND hwnd) { 394 - return ICSendMessage(hic, ICM_CONFIGURE, cast(UINT)hwnd, 0); 394 + return cast(DWORD) ICSendMessage(hic, ICM_CONFIGURE, cast(DWORD_PTR) cast(UINT_PTR) hwnd, 0); 395 395 } 396 396 397 397 DWORD ICGetState(HIC hic, LPVOID pv, DWORD_PTR cb) { 398 - return ICSendMessage(hic, ICM_GETSTATE, cast(DWORD)pv, cast(DWORD)cb); 398 + return cast(DWORD) ICSendMessage(hic, ICM_GETSTATE, cast(DWORD_PTR) pv, cb); 399 399 } 400 400 401 401 DWORD ICSetState(HIC hic, LPVOID pv, DWORD_PTR cb) { 402 - return ICSendMessage(hic, ICM_SETSTATE, cast(DWORD)pv, cast(DWORD)cb); 402 + return cast(DWORD) ICSendMessage(hic, ICM_SETSTATE, cast(DWORD_PTR) pv, cb); 403 403 } 404 404 405 405 DWORD ICGetStateSize(HIC hic) { 406 406 return ICGetState(hic, null, 0); 407 407 } 408 408 409 409 DWORD dwICValue; ................................................................................ 415 415 416 416 DWORD ICGetDefaultKeyFrameRate(HIC hic) { 417 417 ICSendMessage(hic, ICM_GETDEFAULTKEYFRAMERATE, cast(DWORD_PTR)&dwICValue, DWORD.sizeof); 418 418 return dwICValue; 419 419 } 420 420 421 421 DWORD ICDrawWindow(HIC hic, LPVOID prc) { 422 - return ICSendMessage(hic, ICM_DRAW_WINDOW, cast(DWORD)prc, RECT.sizeof); 422 + return cast(DWORD) ICSendMessage(hic, ICM_DRAW_WINDOW, cast(DWORD_PTR) prc, RECT.sizeof); 423 423 } 424 424 425 425 extern (Windows) { 426 426 DWORD ICCompress(HIC hic, DWORD dwFlags, LPBITMAPINFOHEADER lpbiOutput, LPVOID lpData, 427 427 LPBITMAPINFOHEADER lpbiInput, LPVOID lpBits, LPDWORD lpckid, LPDWORD lpdwFlags, 428 428 LONG lFrameNum, DWORD dwFrameSize, DWORD dwQuality, LPBITMAPINFOHEADER lpbiPrev, LPVOID lpPrev); 429 429 } ................................................................................ 669 669 extern (Windows) { 670 670 BOOL ICSeqCompressFrameStart(PCOMPVARS pc, LPBITMAPINFO lpbiIn); 671 671 void ICSeqCompressFrameEnd(PCOMPVARS pc); 672 672 LPVOID ICSeqCompressFrame(PCOMPVARS pc, UINT uiFlags, LPVOID lpBits, BOOL* pfKey, LONG* plSize); 673 673 void ICCompressorFree(PCOMPVARS pc); 674 674 } 675 675 676 -alias HANDLE HDRAWDIB; 676 +mixin DECLARE_HANDLE!("HDRAWDIB"); 677 677 678 678 enum { 679 679 DDF_0001 = 0x0001, 680 680 DDF_UPDATE = 0x0002, 681 681 DDF_SAME_HDC = 0x0004, 682 682 DDF_SAME_DRAW = 0x0008, 683 683 DDF_DONTDRAW = 0x0010, ................................................................................ 814 814 DWORD dwFlags; 815 815 DWORD dwTotalFrames; 816 816 DWORD dwInitialFrames; 817 817 DWORD dwStreams; 818 818 DWORD dwSuggestedBufferSize; 819 819 DWORD dwWidth; 820 820 DWORD dwHeight; 821 - DWORD dwReserved[4]; 821 + DWORD[4] dwReserved; 822 822 } 823 823 824 824 const AVISF_DISABLED = 0x00000001; 825 825 826 826 const AVISF_VIDEO_PALCHANGES = 0x00010000; 827 827 828 828 struct AVIStreamHeader { ................................................................................ 857 857 DWORD dwChunkLength; 858 858 } 859 859 860 860 struct AVIPALCHANGE { 861 861 BYTE bFirstEntry; 862 862 BYTE bNumEntries; 863 863 WORD wFlags; 864 - PALETTEENTRY peNew[]; 864 + PALETTEENTRY[1] _peNew; 865 + PALETTEENTRY* peNew() { return _peNew.ptr; } 865 866 } 866 867 867 868 const AVIGETFRAMEF_BESTDISPLAYFMT = 1; 868 869 869 870 struct AVISTREAMINFOW { 870 871 DWORD fccType; 871 872 DWORD fccHandler; ................................................................................ 880 881 DWORD dwInitialFrames; 881 882 DWORD dwSuggestedBufferSize; 882 883 DWORD dwQuality; 883 884 DWORD dwSampleSize; 884 885 RECT rcFrame; 885 886 DWORD dwEditCount; 886 887 DWORD dwFormatChangeCount; 887 - WCHAR szName[64]; 888 + WCHAR[64] szName; 888 889 } 889 890 alias AVISTREAMINFOW* LPAVISTREAMINFOW; 890 891 891 892 struct AVISTREAMINFOA { 892 893 DWORD fccType; 893 894 DWORD fccHandler; 894 895 DWORD dwFlags; ................................................................................ 902 903 DWORD dwInitialFrames; 903 904 DWORD dwSuggestedBufferSize; 904 905 DWORD dwQuality; 905 906 DWORD dwSampleSize; 906 907 RECT rcFrame; 907 908 DWORD dwEditCount; 908 909 DWORD dwFormatChangeCount; 909 - char szName[64]; 910 + char[64] szName; 910 911 } 911 912 alias AVISTREAMINFOA* LPAVISTREAMINFOA; 912 913 913 914 version(Unicode) { 914 915 alias AVISTREAMINFOW AVISTREAMINFO; 915 916 alias LPAVISTREAMINFOW LPAVISTREAMINFO; 916 917 } else { // Unicode ................................................................................ 929 930 DWORD dwSuggestedBufferSize; 930 931 DWORD dwWidth; 931 932 DWORD dwHeight; 932 933 DWORD dwScale; 933 934 DWORD dwRate; 934 935 DWORD dwLength; 935 936 DWORD dwEditCount; 936 - WCHAR szFileType[64]; 937 + WCHAR[64] szFileType; 937 938 } 938 939 alias AVIFILEINFOW* LPAVIFILEINFOW; 939 940 940 941 struct AVIFILEINFOA { 941 942 DWORD dwMaxBytesPerSec; 942 943 DWORD dwFlags; 943 944 DWORD dwCaps; ................................................................................ 945 946 DWORD dwSuggestedBufferSize; 946 947 DWORD dwWidth; 947 948 DWORD dwHeight; 948 949 DWORD dwScale; 949 950 DWORD dwRate; 950 951 DWORD dwLength; 951 952 DWORD dwEditCount; 952 - char szFileType[64]; 953 + char[64] szFileType; 953 954 } 954 955 alias AVIFILEINFOA* LPAVIFILEINFOA; 955 956 956 957 version(Unicode) { 957 958 alias AVIFILEINFOW AVIFILEINFO; 958 959 alias LPAVIFILEINFOW LPAVIFILEINFO; 959 960 } else { // Unicode ................................................................................ 1035 1036 STDMETHOD(Reserved2) (THIS) PURE; 1036 1037 STDMETHOD(Reserved3) (THIS) PURE; 1037 1038 STDMETHOD(Reserved4) (THIS) PURE; 1038 1039 STDMETHOD(Reserved5) (THIS) PURE; 1039 1040 #endif 1040 1041 }; 1041 1042 1042 -typedef IAVIStream FAR* PAVISTREAM; 1043 +alias TypeDef!(IAVIStream FAR*) PAVISTREAM; 1043 1044 1044 1045 #undef INTERFACE 1045 1046 #define INTERFACE IAVIStreaming 1046 1047 1047 1048 DECLARE_INTERFACE_(IAVIStreaming, IUnknown) 1048 1049 { 1049 1050 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; ................................................................................ 1053 1054 STDMETHOD(Begin) (THIS_ 1054 1055 LONG lStart, 1055 1056 LONG lEnd, 1056 1057 LONG lRate) PURE; 1057 1058 STDMETHOD(End) (THIS) PURE; 1058 1059 }; 1059 1060 1060 -typedef IAVIStreaming FAR* PAVISTREAMING; 1061 +alias TypeDef!(IAVIStreaming FAR*) PAVISTREAMING; 1061 1062 1062 1063 1063 1064 #undef INTERFACE 1064 1065 #define INTERFACE IAVIEditStream 1065 1066 1066 1067 DECLARE_INTERFACE_(IAVIEditStream, IUnknown) 1067 1068 { ................................................................................ 1081 1082 LONG lStart, 1082 1083 LONG lEnd) PURE; 1083 1084 STDMETHOD(Clone) (THIS_ PAVISTREAM FAR *ppResult) PURE; 1084 1085 STDMETHOD(SetInfo) (THIS_ AVISTREAMINFOW FAR * lpInfo, 1085 1086 LONG cbInfo) PURE; 1086 1087 }; 1087 1088 1088 -typedef IAVIEditStream FAR* PAVIEDITSTREAM; 1089 +alias TypeDef!(IAVIEditStream FAR*) PAVIEDITSTREAM; 1089 1090 1090 1091 #undef INTERFACE 1091 1092 #define INTERFACE IAVIPersistFile 1092 1093 1093 1094 DECLARE_INTERFACE_(IAVIPersistFile, IPersistFile) 1094 1095 { 1095 1096 STDMETHOD(Reserved1)(THIS) PURE; 1096 1097 }; 1097 1098 1098 -typedef IAVIPersistFile FAR* PAVIPERSISTFILE; 1099 +alias TypeDef!(IAVIPersistFile FAR*) PAVIPERSISTFILE; 1099 1100 1100 1101 #undef INTERFACE 1101 1102 #define INTERFACE IAVIFile 1102 1103 #define PAVIFILE IAVIFile FAR* 1103 1104 1104 1105 DECLARE_INTERFACE_(IAVIFile, IUnknown) 1105 1106 { ................................................................................ 1128 1129 STDMETHOD(EndRecord) (THIS) PURE; 1129 1130 STDMETHOD(DeleteStream) (THIS_ 1130 1131 DWORD fccType, 1131 1132 LONG lParam) PURE; 1132 1133 }; 1133 1134 1134 1135 #undef PAVIFILE 1135 -typedef IAVIFile FAR* PAVIFILE; 1136 +alias TypeDef!(IAVIFile FAR*) PAVIFILE; 1136 1137 1137 1138 #undef INTERFACE 1138 1139 #define INTERFACE IGetFrame 1139 1140 #define PGETFRAME IGetFrame FAR* 1140 1141 1141 1142 DECLARE_INTERFACE_(IGetFrame, IUnknown) 1142 1143 { ................................................................................ 1149 1150 STDMETHOD(Begin) (THIS_ LONG lStart, LONG lEnd, LONG lRate) PURE; 1150 1151 STDMETHOD(End) (THIS) PURE; 1151 1152 1152 1153 STDMETHOD(SetFormat) (THIS_ LPBITMAPINFOHEADER lpbi, LPVOID lpBits, int x, int y, int dx, int dy) PURE; 1153 1154 }; 1154 1155 1155 1156 #undef PGETFRAME 1156 -typedef IGetFrame FAR* PGETFRAME; 1157 +alias TypeDef!(IGetFrame FAR*) PGETFRAME; 1157 1158 1158 1159 #define DEFINE_AVIGUID(name, l, w1, w2) DEFINE_GUID(name, l, w1, w2, 0xC0,0,0,0,0,0,0,0x46) 1159 1160 1160 1161 DEFINE_AVIGUID(IID_IAVIFile, 0x00020020, 0, 0); 1161 1162 DEFINE_AVIGUID(IID_IAVIStream, 0x00020021, 0, 0); 1162 1163 DEFINE_AVIGUID(IID_IAVIStreaming, 0x00020022, 0, 0); 1163 1164 DEFINE_AVIGUID(IID_IGetFrame, 0x00020023, 0, 0); ................................................................................ 1662 1663 void MCIWndSetTimers(HWND hwnd, UINT active, UINT inactive) 1663 1664 { SendMessage(hwnd, MCIWNDM_SETTIMERS, cast(WPARAM)active, cast(LPARAM)inactive); } 1664 1665 UINT MCIWndGetActiveTimer(HWND hwnd) 1665 1666 { return cast(UINT)SendMessage(hwnd, MCIWNDM_GETACTIVETIMER, 0, 0); } 1666 1667 UINT MCIWndGetInactiveTimer(HWND hwnd) 1667 1668 { return cast(UINT)SendMessage(hwnd, MCIWNDM_GETINACTIVETIMER, 0, 0); } 1668 1669 LONG MCIWndRealize(HWND hwnd, BOOL fBkgnd) 1669 - { return SendMessage(hwnd, MCIWNDM_REALIZE, cast(WPARAM)fBkgnd, 0); } 1670 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_REALIZE, cast(WPARAM)fBkgnd, 0); } 1670 1671 LONG MCIWndSendString(HWND hwnd, LPTSTR sz) 1671 - { return SendMessage(hwnd, MCIWNDM_SENDSTRING, 0, cast(LPARAM)sz); } 1672 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_SENDSTRING, 0, cast(LPARAM)sz); } 1672 1673 LONG MCIWndReturnString(HWND hwnd, LPVOID lp, UINT len) 1673 - { return SendMessage(hwnd, MCIWNDM_RETURNSTRING, cast(WPARAM)len, cast(LPARAM)lp); } 1674 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_RETURNSTRING, cast(WPARAM)len, cast(LPARAM)lp); } 1674 1675 LONG MCIWndGetError(HWND hwnd, LPVOID lp, UINT len) 1675 - { return SendMessage(hwnd, MCIWNDM_GETERROR, cast(WPARAM)len, cast(LPARAM)lp); } 1676 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_GETERROR, cast(WPARAM)len, cast(LPARAM)lp); } 1676 1677 HPALETTE MCIWndGetPalette(HWND hwnd) 1677 1678 { return cast(HPALETTE)SendMessage(hwnd, MCIWNDM_GETPALETTE, 0, 0); } 1678 1679 LONG MCIWndSetPalette(HWND hwnd, HPALETTE hpal) 1679 - { return SendMessage(hwnd, MCIWNDM_SETPALETTE, cast(WPARAM)hpal, 0); } 1680 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_SETPALETTE, cast(WPARAM)hpal, 0); } 1680 1681 LONG MCIWndGetFileName(HWND hwnd, LPVOID lp, UINT len) 1681 - { return SendMessage(hwnd, MCIWNDM_GETFILENAME, cast(WPARAM)len, cast(LPARAM)lp); } 1682 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_GETFILENAME, cast(WPARAM)len, cast(LPARAM)lp); } 1682 1683 LONG MCIWndGetDevice(HWND hwnd, LPVOID lp, UINT len) 1683 - { return SendMessage(hwnd, MCIWNDM_GETDEVICE, cast(WPARAM)len, cast(LPARAM)lp); } 1684 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_GETDEVICE, cast(WPARAM)len, cast(LPARAM)lp); } 1684 1685 UINT MCIWndGetStyles(HWND hwnd) 1685 - { return SendMessage(hwnd, MCIWNDM_GETSTYLES, 0, 0); } 1686 + { return cast(UINT) SendMessage(hwnd, MCIWNDM_GETSTYLES, 0, 0); } 1686 1687 LONG MCIWndChangeStyles(HWND hwnd, UINT mask, LONG value) 1687 - { return SendMessage(hwnd, MCIWNDM_CHANGESTYLES, cast(WPARAM)mask, cast(LPARAM)value); } 1688 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_CHANGESTYLES, cast(WPARAM)mask, cast(LPARAM)value); } 1688 1689 LONG MCIWndOpenInterface(HWND hwnd, LPUNKNOWN pUnk) 1689 - { return SendMessage(hwnd, MCIWNDM_OPENINTERFACE, 0, cast(LPARAM)cast(void*)pUnk); } 1690 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_OPENINTERFACE, 0, cast(LPARAM)cast(void*)pUnk); } 1690 1691 LONG MCIWndSetOwner(HWND hwnd, HWND hwndP) 1691 - { return SendMessage(hwnd, MCIWNDM_SETOWNER, cast(WPARAM)hwndP, 0); } 1692 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_SETOWNER, cast(WPARAM)hwndP, 0); } 1692 1693 1693 1694 enum { 1694 1695 MCIWNDM_GETDEVICEID = WM_USER + 100, 1695 1696 MCIWNDM_SENDSTRINGA = WM_USER + 101, 1696 1697 MCIWNDM_GETPOSITIONA = WM_USER + 102, 1697 1698 MCIWNDM_GETSTART = WM_USER + 103, 1698 1699 MCIWNDM_GETLENGTH = WM_USER + 104, ................................................................................ 1815 1816 MCI_MODE_PLAY, 1816 1817 MCI_MODE_RECORD, 1817 1818 MCI_MODE_SEEK, 1818 1819 MCI_MODE_PAUSE, 1819 1820 MCI_MODE_OPEN, 1820 1821 } 1821 1822 1822 -alias HANDLE HVIDEO; 1823 +alias TypeDef!(HANDLE) HVIDEO; 1823 1824 alias HVIDEO* LPHVIDEO; 1824 1825 1825 1826 // Error Return Values 1826 1827 1827 1828 enum { 1828 1829 DV_ERR_OK = 0, 1829 1830 DV_ERR_BASE = 1, ................................................................................ 1882 1883 struct VIDEOHDR { 1883 1884 LPBYTE lpData; 1884 1885 DWORD dwBufferLength; 1885 1886 DWORD dwBytesUsed; 1886 1887 DWORD dwTimeCaptured; 1887 1888 DWORD_PTR dwUser; 1888 1889 DWORD dwFlags; 1889 - DWORD_PTR dwReserved[4]; 1890 + DWORD_PTR[4]dwReserved; 1890 1891 } 1891 1892 alias VIDEOHDR* PVIDEOHDR, LPVIDEOHDR; 1892 1893 1893 1894 enum { 1894 1895 VHDR_DONE = 0x00000001, 1895 1896 VHDR_PREPARED = 0x00000002, 1896 1897 VHDR_INQUEUE = 0x00000004,

Modified src/win32/w32api.d from [a45ec6a241aff65f] to [02649da4f1c3ff63].

1 1 /***********************************************************************\ 2 2 * w32api.d * 3 3 * * 4 4 * Windows API header module * 5 5 * * 6 -* Translated from MinGW API for MS-Windows 3.12 * 6 +* Translated from MinGW API for MS-Windows 4.0 * 7 7 * by Stewart Gordon * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.w32api; 12 12 13 -const __W32API_VERSION = 3.12; 14 -const __W32API_MAJOR_VERSION = 3; 15 -const __W32API_MINOR_VERSION = 12; 13 +enum __W32API_VERSION = 3.17; 14 +enum __W32API_MAJOR_VERSION = 3; 15 +enum __W32API_MINOR_VERSION = 17; 16 16 17 -/* These version identifiers are used to specify the minimum version of 18 - * Windows that an application will support. 17 +/* These version identifiers are used to specify the minimum version of Windows that an 18 + * application will support. 19 19 * 20 - * The programmer should set two version identifiers: one for the 21 - * minimum Windows NT version and one for the minimum Windows 9x 22 - * version. If no Windows NT version is specified, Windows NT 4 is 23 - * assumed. If no Windows 9x version is specified, Windows 95 is 24 - * assumed, unless WindowsNTonly, WindowsXP, Windows2003 or WindowsVista 25 - * is specified, implying that the application supports only the NT line of 26 - * versions. 20 + * Previously the minimum Windows 9x and Windows NT versions could be specified. However, since 21 + * Windows 9x is no longer supported, either by Microsoft or by DMD, this distinction has been 22 + * removed in order to simplify the bindings. 27 23 */ 28 - 29 -/* For Windows XP and later, assume no Windows 9x support. 30 - * API features new to Windows Vista are not yet included in this 31 - * translation or in MinGW, but this is here ready to start adding them. 32 - */ 33 -version (WindowsVista) { 34 - const uint 35 - _WIN32_WINNT = 0x600, 36 - _WIN32_WINDOWS = uint.max; 37 - 38 -} else version (Windows2003) { 39 - const uint 40 - _WIN32_WINNT = 0x502, 41 - _WIN32_WINDOWS = uint.max; 42 - 24 + version (Windows10) { 25 + enum uint _WIN32_WINNT = 0x604; 26 +} else version (Windows8_1) { // also Windows2012R2 27 + enum uint _WIN32_WINNT = 0x603; 28 +} else version (Windows8) { // also Windows2012 29 + enum uint _WIN32_WINNT = 0x602; 30 +} else version (Windows7) { // also Windows2008R2 31 + enum uint _WIN32_WINNT = 0x601; 32 +} else version (WindowsVista) { // also Windows2008 33 + enum uint _WIN32_WINNT = 0x600; 34 +} else version (Windows2003) { // also WindowsHomeServer, WindowsXP64 35 + enum uint _WIN32_WINNT = 0x502; 43 36 } else version (WindowsXP) { 44 - const uint 45 - _WIN32_WINNT = 0x501, 46 - _WIN32_WINDOWS = uint.max; 37 + enum uint _WIN32_WINNT = 0x501; 38 +} else version (Windows2000) { 39 + enum uint _WIN32_WINNT = 0x500; 40 +} else { 41 + enum uint _WIN32_WINNT = 0x501; 42 +} 47 43 44 +version (IE10) { 45 + enum uint _WIN32_IE = 0xA00; 46 +} else version (IE9) { 47 + enum uint _WIN32_IE = 0x900; 48 +} else version (IE8) { 49 + enum uint _WIN32_IE = 0x800; 50 +} else version (IE7) { 51 + enum uint _WIN32_IE = 0x700; 52 +} else version (IE602) { 53 + enum uint _WIN32_IE = 0x603; 54 +} else version (IE601) { 55 + enum uint _WIN32_IE = 0x601; 56 +} else version (IE6) { 57 + enum uint _WIN32_IE = 0x600; 58 +} else version (IE56) { 59 + enum uint _WIN32_IE = 0x560; 60 +} else version (IE501) { 61 + enum uint _WIN32_IE = 0x501; 62 +} else version (IE5) { 63 + enum uint _WIN32_IE = 0x500; 64 +} else version (IE401) { 65 + enum uint _WIN32_IE = 0x401; 66 +} else version (IE4) { 67 + enum uint _WIN32_IE = 0x400; 68 +} else version (IE3) { 69 + enum uint _WIN32_IE = 0x300; 70 +} else static if (_WIN32_WINNT >= 0x410) { 71 + enum uint _WIN32_IE = 0x400; 48 72 } else { 49 - /* for earlier Windows versions, separate version identifiers into 50 - * the NT and 9x lines 51 - */ 52 - version (Windows2000) { 53 - const uint _WIN32_WINNT = 0x500; 54 - } else { 55 - const uint _WIN32_WINNT = 0x400; 56 - } 73 + enum uint _WIN32_IE = 0; 74 +} 57 75 58 - version (WindowsNTonly) { 59 - const uint _WIN32_WINDOWS = uint.max; 60 - } else version (WindowsME) { 61 - const uint _WIN32_WINDOWS = 0x500; 62 - } else version (Windows98) { 63 - const uint _WIN32_WINDOWS = 0x410; 64 - } else { 65 - const uint _WIN32_WINDOWS = 0x400; 76 +debug (WindowsUnitTest) { 77 + unittest { 78 + printf("Windows NT version: %03x\n", _WIN32_WINNT); 79 + printf("IE version: %03x\n", _WIN32_IE); 66 80 } 67 81 } 68 82 69 -// Just a bit of syntactic sugar for the static ifs 70 -const uint WINVER = _WIN32_WINDOWS < _WIN32_WINNT ? 71 - _WIN32_WINDOWS : _WIN32_WINNT; 72 -const bool _WIN32_WINNT_ONLY = _WIN32_WINDOWS == uint.max; 73 - 74 -version (IE7) { 75 - const uint _WIN32_IE = 0x700; 76 -} else version (IE602) { 77 - const uint _WIN32_IE = 0x603; 78 -} else version (IE601) { 79 - const uint _WIN32_IE = 0x601; 80 -} else version (IE6) { 81 - const uint _WIN32_IE = 0x600; 82 -} else version (IE56) { 83 - const uint _WIN32_IE = 0x560; 84 -} else version (IE501) { 85 - const uint _WIN32_IE = 0x501; 86 -} else version (IE5) { 87 - const uint _WIN32_IE = 0x500; 88 -} else version (IE401) { 89 - const uint _WIN32_IE = 0x401; 90 -} else version (IE4) { 91 - const uint _WIN32_IE = 0x400; 92 -} else version (IE3) { 93 - const uint _WIN32_IE = 0x300; 94 -} else static if (WINVER >= 0x410) { 95 - const uint _WIN32_IE = 0x400; 83 +version (Unicode) { 84 + enum bool _WIN32_UNICODE = true; 85 + package template DECLARE_AW(string name) { 86 + mixin("alias " ~ name ~ "W " ~ name ~ ";"); 87 + } 96 88 } else { 97 - const uint _WIN32_IE = 0; 98 -} 99 - 100 -debug (WindowsUnitTest) { 101 - unittest { 102 - printf("Windows NT version: %03x\n", _WIN32_WINNT); 103 - printf("Windows 9x version: %03x\n", _WIN32_WINDOWS); 104 - printf("IE version: %03x\n", _WIN32_IE); 89 + enum bool _WIN32_UNICODE = false; 90 + package template DECLARE_AW(string name) { 91 + mixin("alias " ~ name ~ "A " ~ name ~ ";"); 105 92 } 106 93 }

Modified src/win32/winbase.d from [5a227ddcf54fb45e] to [db3749c0fedd7c1b].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW API for MS-Windows 3.10 * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.winbase; 11 -pragma(lib, "kernel32.lib"); 11 +pragma(lib, "kernel32"); 12 12 13 13 /** 14 14 Translation Notes: 15 15 The following macros are obsolete, and have no effect. 16 16 17 17 LockSegment(w), MakeProcInstance(p, i), UnlockResource(h), UnlockSegment(w) 18 18 FreeModule(m), FreeProcInstance(p), GetFreeSpace(w), DefineHandleTable(w) ................................................................................ 63 63 /+ 64 64 //-------------------------------------- 65 65 // These functions are problematic 66 66 67 67 version(UseNtoSKernel) {}else { 68 68 /* CAREFUL: These are exported from ntoskrnl.exe and declared in winddk.h 69 69 as __fastcall functions, but are exported from kernel32.dll as __stdcall */ 70 - static if (_WIN32_WINNT >= 0x0501) { 70 + static if (_WIN32_WINNT >= 0x501) { 71 71 VOID InitializeSListHead(PSLIST_HEADER); 72 72 } 73 73 LONG InterlockedCompareExchange(LPLONG, LONG, LONG); 74 74 // PVOID WINAPI InterlockedCompareExchangePointer(PVOID*, PVOID, PVOID); 75 75 (PVOID)InterlockedCompareExchange((LPLONG)(d) (PVOID)InterlockedCompareExchange((LPLONG)(d), (LONG)(e), (LONG)(c)) 76 76 LONG InterlockedDecrement(LPLONG); 77 77 LONG InterlockedExchange(LPLONG, LONG); 78 78 // PVOID WINAPI InterlockedExchangePointer(PVOID*, PVOID); 79 79 (PVOID)InterlockedExchange((LPLONG)((PVOID)InterlockedExchange((LPLONG)(t), (LONG)(v)) 80 80 LONG InterlockedExchangeAdd(LPLONG, LONG); 81 81 82 - static if (_WIN32_WINNT >= 0x0501) { 82 + static if (_WIN32_WINNT >= 0x501) { 83 83 PSLIST_ENTRY InterlockedFlushSList(PSLIST_HEADER); 84 84 } 85 85 LONG InterlockedIncrement(LPLONG); 86 - static if (_WIN32_WINNT >= 0x0501) { 86 + static if (_WIN32_WINNT >= 0x501) { 87 87 PSLIST_ENTRY InterlockedPopEntrySList(PSLIST_HEADER); 88 88 PSLIST_ENTRY InterlockedPushEntrySList(PSLIST_HEADER, PSLIST_ENTRY); 89 89 } 90 90 } // #endif // __USE_NTOSKRNL__ 91 91 //-------------------------------------- 92 92 +/ 93 93 ................................................................................ 176 176 PARITY_ODD = 0x0200, 177 177 PARITY_EVEN = 0x0400, 178 178 PARITY_MARK = 0x0800, 179 179 PARITY_SPACE = 0x1000 180 180 } 181 181 182 182 // used by dwServiceMask 183 -const SP_SERIALCOMM = 1; 183 +enum SP_SERIALCOMM = 1; 184 184 185 185 struct COMMPROP { 186 186 WORD wPacketLength; 187 187 WORD wPacketVersion; 188 188 DWORD dwServiceMask; 189 189 DWORD dwReserved1; 190 190 DWORD dwMaxTxQueue; ................................................................................ 376 376 FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000, 377 377 FILE_FLAG_DELETE_ON_CLOSE = 0x04000000, 378 378 FILE_FLAG_BACKUP_SEMANTICS = 0x02000000, 379 379 FILE_FLAG_POSIX_SEMANTICS = 0x01000000, 380 380 FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000, 381 381 FILE_FLAG_OPEN_NO_RECALL = 0x00100000; 382 382 383 -static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 383 +static if (_WIN32_WINNT >= 0x500) { 384 384 const DWORD FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000; 385 385 } 386 386 387 387 // for CreateFile() 388 388 const DWORD 389 389 SECURITY_ANONYMOUS = SECURITY_IMPERSONATION_LEVEL.SecurityAnonymous<<16, 390 390 SECURITY_IDENTIFICATION = SECURITY_IMPERSONATION_LEVEL.SecurityIdentification<<16, ................................................................................ 454 454 455 455 enum : DWORD { 456 456 STD_INPUT_HANDLE = 0xFFFFFFF6, 457 457 STD_OUTPUT_HANDLE = 0xFFFFFFF5, 458 458 STD_ERROR_HANDLE = 0xFFFFFFF4 459 459 } 460 460 461 -const HANDLE INVALID_HANDLE_VALUE = cast(HANDLE) (-1); 461 +enum HANDLE INVALID_HANDLE_VALUE = cast(HANDLE) (-1); 462 462 463 463 enum : DWORD { 464 464 GET_TAPE_MEDIA_INFORMATION = 0, 465 465 GET_TAPE_DRIVE_INFORMATION = 1 466 466 } 467 467 468 468 enum : DWORD { ................................................................................ 865 865 const DWORD INVALID_FILE_SIZE = 0xFFFFFFFF; 866 866 867 867 const DWORD TLS_OUT_OF_INDEXES = 0xFFFFFFFF; 868 868 869 869 // GetWriteWatch() 870 870 const DWORD WRITE_WATCH_FLAG_RESET = 1; 871 871 872 -static if (_WIN32_WINNT_ONLY) { 873 - // for LogonUser() 874 - enum : DWORD { 875 - LOGON32_LOGON_INTERACTIVE = 2, 876 - LOGON32_LOGON_NETWORK = 3, 877 - LOGON32_LOGON_BATCH = 4, 878 - LOGON32_LOGON_SERVICE = 5, 879 - LOGON32_LOGON_UNLOCK = 7 880 - } 872 +// for LogonUser() 873 +enum : DWORD { 874 + LOGON32_LOGON_INTERACTIVE = 2, 875 + LOGON32_LOGON_NETWORK = 3, 876 + LOGON32_LOGON_BATCH = 4, 877 + LOGON32_LOGON_SERVICE = 5, 878 + LOGON32_LOGON_UNLOCK = 7 879 +} 881 880 882 - // for LogonUser() 881 +// for LogonUser() 882 +enum : DWORD { 883 + LOGON32_PROVIDER_DEFAULT, 884 + LOGON32_PROVIDER_WINNT35, 885 + LOGON32_PROVIDER_WINNT40, 886 + LOGON32_PROVIDER_WINNT50 887 +} 888 + 889 +// for MoveFileEx() 890 +const DWORD 891 + MOVEFILE_REPLACE_EXISTING = 1, 892 + MOVEFILE_COPY_ALLOWED = 2, 893 + MOVEFILE_DELAY_UNTIL_REBOOT = 4, 894 + MOVEFILE_WRITE_THROUGH = 8; 895 + 896 +// DefineDosDevice() 897 +const DWORD 898 + DDD_RAW_TARGET_PATH = 1, 899 + DDD_REMOVE_DEFINITION = 2, 900 + DDD_EXACT_MATCH_ON_REMOVE = 4; 901 + 902 +static if (_WIN32_WINNT >= 0x500) { 883 903 enum : DWORD { 884 - LOGON32_PROVIDER_DEFAULT, 885 - LOGON32_PROVIDER_WINNT35, 886 - LOGON32_PROVIDER_WINNT40, 887 - LOGON32_PROVIDER_WINNT50 904 + LOGON32_LOGON_NETWORK_CLEARTEXT = 8, 905 + LOGON32_LOGON_NEW_CREDENTIALS = 9 888 906 } 889 907 890 - // for MoveFileEx() 908 + // ReplaceFile() 909 + const DWORD 910 + REPLACEFILE_WRITE_THROUGH = 1, 911 + REPLACEFILE_IGNORE_MERGE_ERRORS = 2; 912 +} 913 + 914 +static if (_WIN32_WINNT >= 0x501) { 915 + const DWORD 916 + GET_MODULE_HANDLE_EX_FLAG_PIN = 1, 917 + GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2, 918 + GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 4; 919 + 920 + // for ACTCTX 891 921 const DWORD 892 - MOVEFILE_REPLACE_EXISTING = 1, 893 - MOVEFILE_COPY_ALLOWED = 2, 894 - MOVEFILE_DELAY_UNTIL_REBOOT = 4, 895 - MOVEFILE_WRITE_THROUGH = 8; 922 + ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID = 0x01, 923 + ACTCTX_FLAG_LANGID_VALID = 0x02, 924 + ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID = 0x04, 925 + ACTCTX_FLAG_RESOURCE_NAME_VALID = 0x08, 926 + ACTCTX_FLAG_SET_PROCESS_DEFAULT = 0x10, 927 + ACTCTX_FLAG_APPLICATION_NAME_VALID = 0x20, 928 + ACTCTX_FLAG_HMODULE_VALID = 0x80; 896 929 897 - // DefineDosDevice() 930 + // DeactivateActCtx() 931 + const DWORD DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION = 1; 932 + // FindActCtxSectionString() 933 + const DWORD FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX = 1; 934 + // QueryActCtxW() 898 935 const DWORD 899 - DDD_RAW_TARGET_PATH = 1, 900 - DDD_REMOVE_DEFINITION = 2, 901 - DDD_EXACT_MATCH_ON_REMOVE = 4; 936 + QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX = 0x04, 937 + QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE = 0x08, 938 + QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS = 0x10; 902 939 903 - static if (_WIN32_WINNT >= 0x500) { 904 - enum : DWORD { 905 - LOGON32_LOGON_NETWORK_CLEARTEXT = 8, 906 - LOGON32_LOGON_NEW_CREDENTIALS = 9 907 - } 908 - 909 - // ReplaceFile() 910 - const DWORD 911 - REPLACEFILE_WRITE_THROUGH = 1, 912 - REPLACEFILE_IGNORE_MERGE_ERRORS = 2; 913 - } 914 - 915 - static if (_WIN32_WINNT >= 0x501) { 916 - const DWORD 917 - GET_MODULE_HANDLE_EX_FLAG_PIN = 1, 918 - GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2, 919 - GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 4; 920 - 921 - // for ACTCTX 922 - const DWORD 923 - ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID = 0x01, 924 - ACTCTX_FLAG_LANGID_VALID = 0x02, 925 - ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID = 0x04, 926 - ACTCTX_FLAG_RESOURCE_NAME_VALID = 0x08, 927 - ACTCTX_FLAG_SET_PROCESS_DEFAULT = 0x10, 928 - ACTCTX_FLAG_APPLICATION_NAME_VALID = 0x20, 929 - ACTCTX_FLAG_HMODULE_VALID = 0x80; 930 - 931 - // DeactivateActCtx() 932 - const DWORD DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION = 1; 933 - // FindActCtxSectionString() 934 - const DWORD FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX = 1; 935 - // QueryActCtxW() 936 - const DWORD 937 - QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX = 0x04, 938 - QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE = 0x08, 939 - QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS = 0x10; 940 - 941 - enum { 942 - LOGON_WITH_PROFILE = 1, 943 - LOGON_NETCREDENTIALS_ONLY 944 - } 940 + enum { 941 + LOGON_WITH_PROFILE = 1, 942 + LOGON_NETCREDENTIALS_ONLY 945 943 } 946 944 } 947 945 948 946 // ---- 949 947 950 948 struct FILETIME { 951 949 DWORD dwLowDateTime; ................................................................................ 1264 1262 WORD wHour; 1265 1263 WORD wMinute; 1266 1264 WORD wSecond; 1267 1265 WORD wMilliseconds; 1268 1266 } 1269 1267 alias SYSTEMTIME* LPSYSTEMTIME; 1270 1268 1271 -static if (_WIN32_WINDOWS >= 0x410) { 1272 - struct WIN32_FILE_ATTRIBUTE_DATA { 1273 - DWORD dwFileAttributes; 1274 - FILETIME ftCreationTime; 1275 - FILETIME ftLastAccessTime; 1276 - FILETIME ftLastWriteTime; 1277 - DWORD nFileSizeHigh; 1278 - DWORD nFileSizeLow; 1279 - } 1280 - alias WIN32_FILE_ATTRIBUTE_DATA* LPWIN32_FILE_ATTRIBUTE_DATA; 1269 +struct WIN32_FILE_ATTRIBUTE_DATA { 1270 + DWORD dwFileAttributes; 1271 + FILETIME ftCreationTime; 1272 + FILETIME ftLastAccessTime; 1273 + FILETIME ftLastWriteTime; 1274 + DWORD nFileSizeHigh; 1275 + DWORD nFileSizeLow; 1281 1276 } 1277 +alias WIN32_FILE_ATTRIBUTE_DATA* LPWIN32_FILE_ATTRIBUTE_DATA; 1282 1278 1283 1279 struct WIN32_FIND_DATAA { 1284 1280 DWORD dwFileAttributes; 1285 1281 FILETIME ftCreationTime; 1286 1282 FILETIME ftLastAccessTime; 1287 1283 FILETIME ftLastWriteTime; 1288 1284 DWORD nFileSizeHigh; ................................................................................ 1316 1312 WCHAR[MAX_PATH] cFileName; 1317 1313 // #ifndef _WIN32_WCE 1318 1314 WCHAR[14] cAlternateFileName; 1319 1315 // #endif 1320 1316 } 1321 1317 alias WIN32_FIND_DATAW* PWIN32_FIND_DATAW, LPWIN32_FIND_DATAW; 1322 1318 1323 -static if (_WIN32_WINNT_ONLY) { 1324 - struct WIN32_STREAM_ID { 1325 - DWORD dwStreamId; 1326 - DWORD dwStreamAttributes; 1327 - LARGE_INTEGER Size; 1328 - DWORD dwStreamNameSize; 1329 - WCHAR _cStreamName; 1330 - 1331 - WCHAR* cStreamName() { return &_cStreamName; } 1332 - } 1333 - alias WIN32_STREAM_ID* LPWIN32_STREAM_ID; 1334 - 1335 - enum FINDEX_INFO_LEVELS { 1336 - FindExInfoStandard, 1337 - FindExInfoMaxInfoLevel 1338 - } 1339 - 1340 - enum FINDEX_SEARCH_OPS { 1341 - FindExSearchNameMatch, 1342 - FindExSearchLimitToDirectories, 1343 - FindExSearchLimitToDevices, 1344 - FindExSearchMaxSearchOp 1345 - } 1346 - 1347 - enum ACL_INFORMATION_CLASS { 1348 - AclRevisionInformation = 1, 1349 - AclSizeInformation 1350 - } 1351 - 1352 - struct HW_PROFILE_INFOA { 1353 - DWORD dwDockInfo; 1354 - CHAR[HW_PROFILE_GUIDLEN] szHwProfileGuid; 1355 - CHAR[MAX_PROFILE_LEN] szHwProfileName; 1356 - } 1357 - alias HW_PROFILE_INFOA* LPHW_PROFILE_INFOA; 1358 - 1359 - struct HW_PROFILE_INFOW { 1360 - DWORD dwDockInfo; 1361 - WCHAR[HW_PROFILE_GUIDLEN] szHwProfileGuid; 1362 - WCHAR[MAX_PROFILE_LEN] szHwProfileName; 1363 - } 1364 - alias HW_PROFILE_INFOW* LPHW_PROFILE_INFOW; 1365 -} 1319 +struct WIN32_STREAM_ID { 1320 + DWORD dwStreamId; 1321 + DWORD dwStreamAttributes; 1322 + LARGE_INTEGER Size; 1323 + DWORD dwStreamNameSize; 1324 + WCHAR _cStreamName; 1325 + 1326 + WCHAR* cStreamName() { return &_cStreamName; } 1327 +} 1328 +alias WIN32_STREAM_ID* LPWIN32_STREAM_ID; 1329 + 1330 +enum FINDEX_INFO_LEVELS { 1331 + FindExInfoStandard, 1332 + FindExInfoMaxInfoLevel 1333 +} 1334 + 1335 +enum FINDEX_SEARCH_OPS { 1336 + FindExSearchNameMatch, 1337 + FindExSearchLimitToDirectories, 1338 + FindExSearchLimitToDevices, 1339 + FindExSearchMaxSearchOp 1340 +} 1341 + 1342 +enum ACL_INFORMATION_CLASS { 1343 + AclRevisionInformation = 1, 1344 + AclSizeInformation 1345 +} 1346 + 1347 +struct HW_PROFILE_INFOA { 1348 + DWORD dwDockInfo; 1349 + CHAR[HW_PROFILE_GUIDLEN] szHwProfileGuid; 1350 + CHAR[MAX_PROFILE_LEN] szHwProfileName; 1351 +} 1352 +alias HW_PROFILE_INFOA* LPHW_PROFILE_INFOA; 1353 + 1354 +struct HW_PROFILE_INFOW { 1355 + DWORD dwDockInfo; 1356 + WCHAR[HW_PROFILE_GUIDLEN] szHwProfileGuid; 1357 + WCHAR[MAX_PROFILE_LEN] szHwProfileName; 1358 +} 1359 +alias HW_PROFILE_INFOW* LPHW_PROFILE_INFOW; 1366 1360 1367 1361 /* ??? MSDN documents this only for Windows CE/Mobile, but it's used by 1368 1362 * GetFileAttributesEx, which is in desktop Windows. 1369 1363 */ 1370 1364 enum GET_FILEEX_INFO_LEVELS { 1371 1365 GetFileExInfoStandard, 1372 1366 GetFileExMaxInfoLevel ................................................................................ 1379 1373 WORD wProcessorArchitecture; 1380 1374 WORD wReserved; 1381 1375 } 1382 1376 } 1383 1377 DWORD dwPageSize; 1384 1378 PVOID lpMinimumApplicationAddress; 1385 1379 PVOID lpMaximumApplicationAddress; 1386 - DWORD dwActiveProcessorMask; 1380 + DWORD_PTR dwActiveProcessorMask; 1387 1381 DWORD dwNumberOfProcessors; 1388 1382 DWORD dwProcessorType; 1389 1383 DWORD dwAllocationGranularity; 1390 1384 WORD wProcessorLevel; 1391 1385 WORD wProcessorRevision; 1392 1386 } 1393 1387 alias SYSTEM_INFO* LPSYSTEM_INFO; 1394 1388 1395 -static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 1389 +static if (_WIN32_WINNT >= 0x500) { 1396 1390 struct SYSTEM_POWER_STATUS { 1397 1391 BYTE ACLineStatus; 1398 1392 BYTE BatteryFlag; 1399 1393 BYTE BatteryLifePercent; 1400 1394 BYTE Reserved1; 1401 1395 DWORD BatteryLifeTime; 1402 1396 DWORD BatteryFullLifeTime; ................................................................................ 1565 1559 USHORT wProcessorArchitecture; 1566 1560 LANGID wLangId; 1567 1561 LPCSTR lpAssemblyDirectory; 1568 1562 LPCSTR lpResourceName; 1569 1563 LPCSTR lpApplicationName; 1570 1564 HMODULE hModule; 1571 1565 } 1572 - alias ACTCTXA* PACTCTXA; 1573 - alias CPtr!(ACTCTXA) PCACTCTXA; 1566 + alias ACTCTXA* PACTCTXA; 1567 + alias const(ACTCTXA)* PCACTCTXA; 1574 1568 1575 1569 struct ACTCTXW { 1576 1570 ULONG cbSize = this.sizeof; 1577 1571 DWORD dwFlags; 1578 1572 LPCWSTR lpSource; 1579 1573 USHORT wProcessorArchitecture; 1580 1574 LANGID wLangId; 1581 1575 LPCWSTR lpAssemblyDirectory; 1582 1576 LPCWSTR lpResourceName; 1583 1577 LPCWSTR lpApplicationName; 1584 1578 HMODULE hModule; 1585 1579 } 1586 - alias ACTCTXW* PACTCTXW; 1587 - alias CPtr!(ACTCTXW) PCACTCTXW; 1580 + alias ACTCTXW* PACTCTXW; 1581 + alias const(ACTCTXW)* PCACTCTXW; 1588 1582 1589 1583 struct ACTCTX_SECTION_KEYED_DATA { 1590 1584 ULONG cbSize = this.sizeof; 1591 1585 ULONG ulDataFormatVersion; 1592 1586 PVOID lpData; 1593 1587 ULONG ulLength; 1594 1588 PVOID lpSectionGlobalData; 1595 1589 ULONG ulSectionGlobalDataLength; 1596 1590 PVOID lpSectionBase; 1597 1591 ULONG ulSectionTotalLength; 1598 1592 HANDLE hActCtx; 1599 1593 HANDLE ulAssemblyRosterIndex; 1600 1594 } 1601 - alias ACTCTX_SECTION_KEYED_DATA* PACTCTX_SECTION_KEYED_DATA; 1602 - alias CPtr!(ACTCTX_SECTION_KEYED_DATA) PCACTCTX_SECTION_KEYED_DATA; 1595 + alias ACTCTX_SECTION_KEYED_DATA* PACTCTX_SECTION_KEYED_DATA; 1596 + alias const(ACTCTX_SECTION_KEYED_DATA)* PCACTCTX_SECTION_KEYED_DATA; 1603 1597 1604 1598 enum MEMORY_RESOURCE_NOTIFICATION_TYPE { 1605 1599 LowMemoryResourceNotification, 1606 1600 HighMemoryResourceNotification 1607 1601 } 1608 1602 1609 -} // (_WIN32_WINNT >= 0x0501) 1603 +} // (_WIN32_WINNT >= 0x501) 1610 1604 1611 -static if (WINVER >= 0x410) { 1605 +static if (_WIN32_WINNT >= 0x410) { 1612 1606 /* apparently used only by SetThreadExecutionState (Win2000+) 1613 1607 * and DDK functions (version compatibility not established) 1614 1608 */ 1615 1609 alias DWORD EXECUTION_STATE; 1616 1610 } 1617 1611 1618 1612 // Callbacks ................................................................................ 1631 1625 alias void function(DWORD, DWORD, LPOVERLAPPED) LPOVERLAPPED_COMPLETION_ROUTINE; 1632 1626 alias LONG function(LPEXCEPTION_POINTERS) PTOP_LEVEL_EXCEPTION_FILTER; 1633 1627 alias PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER; 1634 1628 1635 1629 alias void function(ULONG_PTR) PAPCFUNC; 1636 1630 alias void function(PVOID, DWORD, DWORD) PTIMERAPCROUTINE; 1637 1631 1638 - static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 1632 + static if (_WIN32_WINNT >= 0x500) { 1639 1633 alias void function(PVOID, BOOLEAN) WAITORTIMERCALLBACK; 1640 1634 } 1641 1635 } 1642 1636 1643 -LPTSTR MAKEINTATOM(short i) { 1644 - return cast(LPTSTR) i; 1637 +LPTSTR MAKEINTATOM()(ushort i) { 1638 + return cast(LPTSTR) cast(size_t) i; 1645 1639 } 1646 1640 1647 1641 extern (Windows) { 1648 1642 ATOM AddAtomA(LPCSTR); 1649 1643 ATOM AddAtomW(LPCWSTR); 1650 1644 BOOL AreFileApisANSI(); 1651 1645 BOOL Beep(DWORD, DWORD); ................................................................................ 1660 1654 BOOL CancelDeviceWakeupRequest(HANDLE); 1661 1655 BOOL CheckTokenMembership(HANDLE, PSID, PBOOL); 1662 1656 BOOL ClearCommBreak(HANDLE); 1663 1657 BOOL ClearCommError(HANDLE, PDWORD, LPCOMSTAT); 1664 1658 BOOL CloseHandle(HANDLE); 1665 1659 BOOL CommConfigDialogA(LPCSTR, HWND, LPCOMMCONFIG); 1666 1660 BOOL CommConfigDialogW(LPCWSTR, HWND, LPCOMMCONFIG); 1667 - LONG CompareFileTime(CPtr!(FILETIME), CPtr!(FILETIME)); 1661 + LONG CompareFileTime(const(FILETIME)*, const(FILETIME)*); 1668 1662 BOOL ContinueDebugEvent(DWORD, DWORD, DWORD); 1669 1663 BOOL CopyFileA(LPCSTR, LPCSTR, BOOL); 1670 1664 BOOL CopyFileW(LPCWSTR, LPCWSTR, BOOL); 1671 1665 BOOL CopyFileExA(LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD); 1672 1666 BOOL CopyFileExW(LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD); 1673 1667 1674 1668 /+ FIXME ................................................................................ 1676 1670 alias memcpy RtlCopyMemory; 1677 1671 1678 1672 void RtlFillMemory(PVOID dest, SIZE_T len, BYTE fill) { 1679 1673 memset(dest, fill, len); 1680 1674 } 1681 1675 1682 1676 void RtlZeroMemory(PVOID dest, SIZE_T len) { 1683 - RtlFillMemory(dest, len , 0); 1677 + RtlFillMemory(dest, len, 0); 1684 1678 } 1685 1679 1686 1680 alias RtlMoveMemory MoveMemory; 1687 1681 alias RtlCopyMemory CopyMemory; 1688 1682 alias RtlFillMemory FillMemory; 1689 1683 alias RtlZeroMemory ZeroMemory; 1690 1684 +/ ................................................................................ 1729 1723 void ExitProcess(UINT); // Never returns 1730 1724 void ExitThread(DWORD); // Never returns 1731 1725 DWORD ExpandEnvironmentStringsA(LPCSTR, LPSTR, DWORD); 1732 1726 DWORD ExpandEnvironmentStringsW(LPCWSTR, LPWSTR, DWORD); 1733 1727 void FatalAppExitA(UINT, LPCSTR); 1734 1728 void FatalAppExitW(UINT, LPCWSTR); 1735 1729 void FatalExit(int); 1736 - BOOL FileTimeToDosDateTime(CPtr!(FILETIME) , LPWORD, LPWORD); 1737 - BOOL FileTimeToLocalFileTime(CPtr!(FILETIME) , LPFILETIME); 1738 - BOOL FileTimeToSystemTime(CPtr!(FILETIME) , LPSYSTEMTIME); 1730 + BOOL FileTimeToDosDateTime(const(FILETIME)*, LPWORD, LPWORD); 1731 + BOOL FileTimeToLocalFileTime(const(FILETIME)*, LPFILETIME); 1732 + BOOL FileTimeToSystemTime(const(FILETIME)*, LPSYSTEMTIME); 1739 1733 ATOM FindAtomA(LPCSTR); 1740 1734 ATOM FindAtomW(LPCWSTR); 1741 1735 BOOL FindClose(HANDLE); 1742 1736 BOOL FindCloseChangeNotification(HANDLE); 1743 1737 HANDLE FindFirstChangeNotificationA(LPCSTR, BOOL, DWORD); 1744 1738 HANDLE FindFirstChangeNotificationW(LPCWSTR, BOOL, DWORD); 1745 1739 HANDLE FindFirstFileA(LPCSTR, LPWIN32_FIND_DATAA); ................................................................................ 1890 1884 BOOL InitAtomTable(DWORD); 1891 1885 VOID InitializeCriticalSection(LPCRITICAL_SECTION); 1892 1886 /* ??? The next two are allegedly obsolete and "supported only for 1893 1887 * backward compatibility with the 16-bit Windows API". Yet the 1894 1888 * replacements IsBadReadPtr and IsBadWritePtr are apparently Win2000+ 1895 1889 * only. Where's the mistake? 1896 1890 */ 1897 - BOOL IsBadHugeReadPtr(PCVOID, UINT); 1898 - BOOL IsBadHugeWritePtr(PVOID, UINT); 1899 - BOOL IsBadReadPtr(PCVOID, UINT); 1900 - BOOL IsBadStringPtrA(LPCSTR, UINT); 1901 - BOOL IsBadStringPtrW(LPCWSTR, UINT); 1902 - BOOL IsBadWritePtr(PVOID, UINT); 1891 + BOOL IsBadHugeReadPtr(PCVOID, UINT_PTR); 1892 + BOOL IsBadHugeWritePtr(PVOID, UINT_PTR); 1893 + BOOL IsBadReadPtr(PCVOID, UINT_PTR); 1894 + BOOL IsBadStringPtrA(LPCSTR, UINT_PTR); 1895 + BOOL IsBadStringPtrW(LPCWSTR, UINT_PTR); 1896 + BOOL IsBadWritePtr(PVOID, UINT_PTR); 1903 1897 void LeaveCriticalSection(LPCRITICAL_SECTION); 1904 1898 HINSTANCE LoadLibraryA(LPCSTR); 1905 1899 HINSTANCE LoadLibraryW(LPCWSTR); 1906 1900 HINSTANCE LoadLibraryExA(LPCSTR, HANDLE, DWORD); 1907 1901 HINSTANCE LoadLibraryExW(LPCWSTR, HANDLE, DWORD); 1908 1902 DWORD LoadModule(LPCSTR, PVOID); 1909 1903 HGLOBAL LoadResource(HINSTANCE, HRSRC); 1910 - BOOL LocalFileTimeToFileTime(CPtr!(FILETIME) , LPFILETIME); 1904 + BOOL LocalFileTimeToFileTime(const(FILETIME)*, LPFILETIME); 1911 1905 BOOL LockFile(HANDLE, DWORD, DWORD, DWORD, DWORD); 1912 1906 PVOID LockResource(HGLOBAL); 1913 1907 1914 1908 LPSTR lstrcatA(LPSTR, LPCSTR); 1915 1909 LPWSTR lstrcatW(LPWSTR, LPCWSTR); 1916 1910 int lstrcmpA(LPCSTR, LPCSTR); 1917 1911 int lstrcmpiA(LPCSTR, LPCSTR); ................................................................................ 1939 1933 void OutputDebugStringW(LPCWSTR); 1940 1934 BOOL PeekNamedPipe(HANDLE, PVOID, DWORD, PDWORD, PDWORD, PDWORD); 1941 1935 BOOL PulseEvent(HANDLE); 1942 1936 BOOL PurgeComm(HANDLE, DWORD); 1943 1937 BOOL QueryPerformanceCounter(PLARGE_INTEGER); 1944 1938 BOOL QueryPerformanceFrequency(PLARGE_INTEGER); 1945 1939 DWORD QueueUserAPC(PAPCFUNC, HANDLE, ULONG_PTR); 1946 - void RaiseException(DWORD, DWORD, DWORD, CPtr!(DWORD)); 1940 + void RaiseException(DWORD, DWORD, DWORD, const(DWORD)*); 1947 1941 BOOL ReadFile(HANDLE, PVOID, DWORD, PDWORD, LPOVERLAPPED); 1948 1942 BOOL ReadFileEx(HANDLE, PVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE); 1949 - BOOL ReadProcessMemory(HANDLE, PCVOID, PVOID, DWORD, PDWORD); 1943 + BOOL ReadProcessMemory(HANDLE, PCVOID, PVOID, SIZE_T, SIZE_T*); 1950 1944 BOOL ReleaseMutex(HANDLE); 1951 1945 BOOL ReleaseSemaphore(HANDLE, LONG, LPLONG); 1952 1946 BOOL RemoveDirectoryA(LPCSTR); 1953 1947 BOOL RemoveDirectoryW(LPCWSTR); 1954 1948 /* In MinGW: 1955 1949 #ifdef _WIN32_WCE 1956 1950 extern BOOL ResetEvent(HANDLE); ................................................................................ 1986 1980 */ 1987 1981 BOOL SetEvent(HANDLE); 1988 1982 VOID SetFileApisToANSI(); 1989 1983 VOID SetFileApisToOEM(); 1990 1984 BOOL SetFileAttributesA(LPCSTR, DWORD); 1991 1985 BOOL SetFileAttributesW(LPCWSTR, DWORD); 1992 1986 DWORD SetFilePointer(HANDLE, LONG, PLONG, DWORD); 1993 - BOOL SetFileTime(HANDLE, CPtr!(FILETIME), CPtr!(FILETIME), CPtr!(FILETIME)); 1987 + BOOL SetFileTime(HANDLE, const(FILETIME)*, const(FILETIME)*, const(FILETIME)*); 1994 1988 deprecated UINT SetHandleCount(UINT); 1995 1989 void SetLastError(DWORD); 1996 1990 void SetLastErrorEx(DWORD, DWORD); 1997 - BOOL SetLocalTime(CPtr!(SYSTEMTIME)); 1991 + BOOL SetLocalTime(const(SYSTEMTIME)*); 1998 1992 BOOL SetMailslotInfo(HANDLE, DWORD); 1999 1993 BOOL SetNamedPipeHandleState(HANDLE, PDWORD, PDWORD, PDWORD); 2000 1994 BOOL SetPriorityClass(HANDLE, DWORD); 2001 1995 BOOL SetStdHandle(DWORD, HANDLE); 2002 - BOOL SetSystemTime(CPtr!(SYSTEMTIME)); 1996 + BOOL SetSystemTime(const(SYSTEMTIME)*); 2003 1997 DWORD SetThreadAffinityMask(HANDLE, DWORD); 2004 - BOOL SetThreadContext(HANDLE, CPtr!(CONTEXT)); 1998 + BOOL SetThreadContext(HANDLE, const(CONTEXT)*); 2005 1999 BOOL SetThreadPriority(HANDLE, int); 2006 - BOOL SetTimeZoneInformation(CPtr!(TIME_ZONE_INFORMATION)); 2000 + BOOL SetTimeZoneInformation(const(TIME_ZONE_INFORMATION)*); 2007 2001 LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER); 2008 2002 BOOL SetupComm(HANDLE, DWORD, DWORD); 2009 2003 BOOL SetVolumeLabelA(LPCSTR, LPCSTR); 2010 2004 BOOL SetVolumeLabelW(LPCWSTR, LPCWSTR); 2011 2005 2012 2006 DWORD SizeofResource(HINSTANCE, HRSRC); 2013 2007 void Sleep(DWORD); 2014 2008 DWORD SleepEx(DWORD, BOOL); 2015 2009 DWORD SuspendThread(HANDLE); 2016 - BOOL SystemTimeToFileTime(CPtr!(SYSTEMTIME), LPFILETIME); 2010 + BOOL SystemTimeToFileTime(const(SYSTEMTIME)*, LPFILETIME); 2017 2011 BOOL TerminateProcess(HANDLE, UINT); 2018 2012 BOOL TerminateThread(HANDLE, DWORD); 2019 2013 DWORD TlsAlloc(); 2020 2014 BOOL TlsFree(DWORD); 2021 2015 PVOID TlsGetValue(DWORD); 2022 2016 BOOL TlsSetValue(DWORD, PVOID); 2023 2017 BOOL TransactNamedPipe(HANDLE, PVOID, DWORD, PVOID, DWORD, PDWORD, LPOVERLAPPED); 2024 2018 BOOL TransmitCommChar(HANDLE, char); 2025 2019 LONG UnhandledExceptionFilter(LPEXCEPTION_POINTERS); 2026 2020 BOOL UnlockFile(HANDLE, DWORD, DWORD, DWORD, DWORD); 2027 2021 BOOL WaitCommEvent(HANDLE, PDWORD, LPOVERLAPPED); 2028 2022 BOOL WaitForDebugEvent(LPDEBUG_EVENT, DWORD); 2029 - DWORD WaitForMultipleObjects(DWORD, CPtr!(HANDLE), BOOL, DWORD); 2030 - DWORD WaitForMultipleObjectsEx(DWORD, CPtr!(HANDLE), BOOL, DWORD, BOOL); 2023 + DWORD WaitForMultipleObjects(DWORD, const(HANDLE)*, BOOL, DWORD); 2024 + DWORD WaitForMultipleObjectsEx(DWORD, const(HANDLE)*, BOOL, DWORD, BOOL); 2031 2025 DWORD WaitForSingleObject(HANDLE, DWORD); 2032 2026 DWORD WaitForSingleObjectEx(HANDLE, DWORD, BOOL); 2033 2027 BOOL WaitNamedPipeA(LPCSTR, DWORD); 2034 2028 BOOL WaitNamedPipeW(LPCWSTR, DWORD); 2035 2029 // undocumented on MSDN 2036 2030 BOOL WinLoadTrustProvider(GUID*); 2037 2031 BOOL WriteFile(HANDLE, PCVOID, DWORD, PDWORD, LPOVERLAPPED); ................................................................................ 2086 2080 BOOL VirtualFreeEx(HANDLE, PVOID, DWORD, DWORD); 2087 2081 BOOL VirtualLock(PVOID, DWORD); 2088 2082 BOOL VirtualProtect(PVOID, DWORD, DWORD, PDWORD); 2089 2083 BOOL VirtualProtectEx(HANDLE, PVOID, DWORD, DWORD, PDWORD); 2090 2084 DWORD VirtualQuery(LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD); 2091 2085 DWORD VirtualQueryEx(HANDLE, LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD); 2092 2086 BOOL VirtualUnlock(PVOID, DWORD); 2093 - 2094 - static if (_WIN32_WINDOWS >= 0x600) { 2087 +// not in MinGW 4.0 - ??? 2088 + static if (_WIN32_WINNT >= 0x600) { 2095 2089 BOOL CancelIoEx(HANDLE, LPOVERLAPPED); 2096 2090 } 2097 2091 2098 - static if (_WIN32_WINDOWS >= 0x410) { 2099 - BOOL CancelIo(HANDLE); 2100 - BOOL CancelWaitableTimer(HANDLE); 2101 - PVOID ConvertThreadToFiber(PVOID); 2102 - LPVOID CreateFiber(SIZE_T, LPFIBER_START_ROUTINE, LPVOID); 2103 - HANDLE CreateWaitableTimerA(LPSECURITY_ATTRIBUTES, BOOL, LPCSTR); 2104 - HANDLE CreateWaitableTimerW(LPSECURITY_ATTRIBUTES, BOOL, LPCWSTR); 2105 - void DeleteFiber(PVOID); 2106 - BOOL GetFileAttributesExA(LPCSTR, GET_FILEEX_INFO_LEVELS, PVOID); 2107 - BOOL GetFileAttributesExW(LPCWSTR, GET_FILEEX_INFO_LEVELS, PVOID); 2108 - DWORD GetLongPathNameA(LPCSTR, LPSTR, DWORD); 2109 - DWORD GetLongPathNameW(LPCWSTR, LPWSTR, DWORD); 2110 - BOOL InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION, DWORD); 2111 - BOOL IsDebuggerPresent(); 2112 - HANDLE OpenWaitableTimerA(DWORD, BOOL, LPCSTR); 2113 - HANDLE OpenWaitableTimerW(DWORD, BOOL, LPCWSTR); 2114 - DWORD QueryDosDeviceA(LPCSTR, LPSTR, DWORD); 2115 - DWORD QueryDosDeviceW(LPCWSTR, LPWSTR, DWORD); 2116 - BOOL SetWaitableTimer(HANDLE, CPtr!(LARGE_INTEGER), LONG, PTIMERAPCROUTINE, PVOID, BOOL); 2117 - void SwitchToFiber(PVOID); 2118 - } 2119 - 2120 - static if (WINVER >= 0x500) { 2092 + BOOL CancelIo(HANDLE); 2093 + BOOL CancelWaitableTimer(HANDLE); 2094 + PVOID ConvertThreadToFiber(PVOID); 2095 + LPVOID CreateFiber(SIZE_T, LPFIBER_START_ROUTINE, LPVOID); 2096 + HANDLE CreateWaitableTimerA(LPSECURITY_ATTRIBUTES, BOOL, LPCSTR); 2097 + HANDLE CreateWaitableTimerW(LPSECURITY_ATTRIBUTES, BOOL, LPCWSTR); 2098 + void DeleteFiber(PVOID); 2099 + BOOL GetFileAttributesExA(LPCSTR, GET_FILEEX_INFO_LEVELS, PVOID); 2100 + BOOL GetFileAttributesExW(LPCWSTR, GET_FILEEX_INFO_LEVELS, PVOID); 2101 + DWORD GetLongPathNameA(LPCSTR, LPSTR, DWORD); 2102 + DWORD GetLongPathNameW(LPCWSTR, LPWSTR, DWORD); 2103 + BOOL InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION, DWORD); 2104 + BOOL IsDebuggerPresent(); 2105 + HANDLE OpenWaitableTimerA(DWORD, BOOL, LPCSTR); 2106 + HANDLE OpenWaitableTimerW(DWORD, BOOL, LPCWSTR); 2107 + DWORD QueryDosDeviceA(LPCSTR, LPSTR, DWORD); 2108 + DWORD QueryDosDeviceW(LPCWSTR, LPWSTR, DWORD); 2109 + BOOL SetWaitableTimer(HANDLE, const(LARGE_INTEGER)*, LONG, PTIMERAPCROUTINE, PVOID, BOOL); 2110 + void SwitchToFiber(PVOID); 2111 + 2112 + static if (_WIN32_WINNT >= 0x500) { 2121 2113 HANDLE OpenThread(DWORD, BOOL, DWORD); 2122 2114 } 2123 2115 2124 - static if (_WIN32_WINNT_ONLY) { 2125 - BOOL AccessCheck(PSECURITY_DESCRIPTOR, HANDLE, DWORD, PGENERIC_MAPPING, PPRIVILEGE_SET, PDWORD, PDWORD, PBOOL); 2126 - BOOL AccessCheckAndAuditAlarmA(LPCSTR, LPVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING, BOOL, PDWORD, PBOOL, PBOOL); 2127 - BOOL AccessCheckAndAuditAlarmW(LPCWSTR, LPVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING, BOOL, PDWORD, PBOOL, PBOOL); 2128 - BOOL AddAccessAllowedAce(PACL, DWORD, DWORD, PSID); 2129 - BOOL AddAccessDeniedAce(PACL, DWORD, DWORD, PSID); 2130 - BOOL AddAce(PACL, DWORD, DWORD, PVOID, DWORD); 2131 - BOOL AddAuditAccessAce(PACL, DWORD, DWORD, PSID, BOOL, BOOL); 2132 - BOOL AdjustTokenGroups(HANDLE, BOOL, PTOKEN_GROUPS, DWORD, PTOKEN_GROUPS, PDWORD); 2133 - BOOL AdjustTokenPrivileges(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD); 2134 - BOOL AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY, BYTE, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, PSID*); 2135 - BOOL AllocateLocallyUniqueId(PLUID); 2136 - BOOL AreAllAccessesGranted(DWORD, DWORD); 2137 - BOOL AreAnyAccessesGranted(DWORD, DWORD); 2138 - BOOL BackupEventLogA(HANDLE, LPCSTR); 2139 - BOOL BackupEventLogW(HANDLE, LPCWSTR); 2140 - BOOL BackupRead(HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVOID*); 2141 - BOOL BackupSeek(HANDLE, DWORD, DWORD, LPDWORD, LPDWORD, LPVOID*); 2142 - BOOL BackupWrite(HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVOID*); 2143 - BOOL ClearEventLogA(HANDLE, LPCSTR); 2144 - BOOL ClearEventLogW(HANDLE, LPCWSTR); 2145 - BOOL CloseEventLog(HANDLE); 2146 - BOOL ConnectNamedPipe(HANDLE, LPOVERLAPPED); 2147 - BOOL CopySid(DWORD, PSID, PSID); 2148 - HANDLE CreateNamedPipeA(LPCSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES); 2149 - HANDLE CreateNamedPipeW(LPCWSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES); 2150 - BOOL CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR*, BOOL, HANDLE, PGENERIC_MAPPING); 2151 - BOOL CreateProcessAsUserA(HANDLE, LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCSTR, LPSTARTUPINFOA, LPPROCESS_INFORMATION); 2152 - BOOL CreateProcessAsUserW(HANDLE, LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION); 2153 - HANDLE CreateRemoteThread(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD); 2154 - DWORD CreateTapePartition(HANDLE, DWORD, DWORD, DWORD); 2155 - BOOL DefineDosDeviceA(DWORD, LPCSTR, LPCSTR); 2156 - BOOL DefineDosDeviceW(DWORD, LPCWSTR, LPCWSTR); 2157 - BOOL DeleteAce(PACL, DWORD); 2158 - BOOL DeregisterEventSource(HANDLE); 2159 - BOOL DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*); 2160 - BOOL DeviceIoControl(HANDLE, DWORD, PVOID, DWORD, PVOID, DWORD, PDWORD, POVERLAPPED); 2161 - BOOL DisconnectNamedPipe(HANDLE); 2162 - BOOL DuplicateToken(HANDLE, SECURITY_IMPERSONATION_LEVEL, PHANDLE); 2163 - BOOL DuplicateTokenEx(HANDLE, DWORD, LPSECURITY_ATTRIBUTES, SECURITY_IMPERSONATION_LEVEL, TOKEN_TYPE, PHANDLE); 2164 - BOOL EqualPrefixSid(PSID, PSID); 2165 - BOOL EqualSid(PSID, PSID); 2166 - DWORD EraseTape(HANDLE, DWORD, BOOL); 2167 - HANDLE FindFirstFileExA(LPCSTR, FINDEX_INFO_LEVELS, PVOID, FINDEX_SEARCH_OPS, PVOID, DWORD); 2168 - HANDLE FindFirstFileExW(LPCWSTR, FINDEX_INFO_LEVELS, PVOID, FINDEX_SEARCH_OPS, PVOID, DWORD); 2169 - BOOL FindFirstFreeAce(PACL, PVOID*); 2170 - PVOID FreeSid(PSID); 2171 - BOOL GetAce(PACL, DWORD, LPVOID*); 2172 - BOOL GetAclInformation(PACL, PVOID, DWORD, ACL_INFORMATION_CLASS); 2173 - BOOL GetBinaryTypeA(LPCSTR, PDWORD); 2174 - BOOL GetBinaryTypeW(LPCWSTR, PDWORD); 2175 - DWORD GetCompressedFileSizeA(LPCSTR, PDWORD); 2176 - DWORD GetCompressedFileSizeW(LPCWSTR, PDWORD); 2177 - BOOL GetCurrentHwProfileA(LPHW_PROFILE_INFOA); 2178 - BOOL GetCurrentHwProfileW(LPHW_PROFILE_INFOW); 2179 - BOOL GetFileSecurityA(LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); 2180 - BOOL GetFileSecurityW(LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); 2181 - BOOL GetHandleInformation(HANDLE, PDWORD); 2182 - BOOL GetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); 2183 - DWORD GetLengthSid(PSID); 2184 - BOOL GetNumberOfEventLogRecords(HANDLE, PDWORD); 2185 - BOOL GetOldestEventLogRecord(HANDLE, PDWORD); 2186 - BOOL GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); 2187 - BOOL GetProcessPriorityBoost(HANDLE, PBOOL); 2188 - BOOL GetProcessShutdownParameters(PDWORD, PDWORD); 2189 - BOOL GetProcessTimes(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME); 2190 - HWINSTA GetProcessWindowStation(); 2191 - BOOL GetProcessWorkingSetSize(HANDLE, PSIZE_T, PSIZE_T); 2192 - BOOL GetQueuedCompletionStatus(HANDLE, PDWORD, PULONG_PTR, LPOVERLAPPED*, DWORD); 2193 - BOOL GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR_CONTROL, PDWORD); 2194 - BOOL GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, LPBOOL, PACL*, LPBOOL); 2195 - BOOL GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID*, LPBOOL); 2196 - DWORD GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR); 2197 - BOOL GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID*, LPBOOL); 2198 - BOOL GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, LPBOOL, PACL*, LPBOOL); 2199 - PSID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority(PSID); 2200 - DWORD GetSidLengthRequired(UCHAR); 2201 - PDWORD GetSidSubAuthority(PSID, DWORD); 2202 - PUCHAR GetSidSubAuthorityCount(PSID); 2203 - DWORD GetTapeParameters(HANDLE, DWORD, PDWORD, PVOID); 2204 - DWORD GetTapePosition(HANDLE, DWORD, PDWORD, PDWORD, PDWORD); 2205 - DWORD GetTapeStatus(HANDLE); 2206 - BOOL GetThreadPriorityBoost(HANDLE, PBOOL); 2207 - BOOL GetThreadTimes(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME); 2208 - BOOL GetTokenInformation(HANDLE, TOKEN_INFORMATION_CLASS, PVOID, DWORD, PDWORD); 2209 - BOOL ImpersonateLoggedOnUser(HANDLE); 2210 - BOOL ImpersonateNamedPipeClient(HANDLE); 2211 - BOOL ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL); 2212 - BOOL InitializeAcl(PACL, DWORD, DWORD); 2213 - DWORD SetCriticalSectionSpinCount(LPCRITICAL_SECTION, DWORD); 2214 - BOOL InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR, DWORD); 2215 - BOOL InitializeSid(PSID, PSID_IDENTIFIER_AUTHORITY, BYTE); 2216 - BOOL IsProcessorFeaturePresent(DWORD); 2217 - BOOL IsTextUnicode(PCVOID, int, LPINT); 2218 - BOOL IsValidAcl(PACL); 2219 - BOOL IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR); 2220 - BOOL IsValidSid(PSID); 2221 - BOOL LockFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED); 2222 - BOOL LogonUserA(LPSTR, LPSTR, LPSTR, DWORD, DWORD, PHANDLE); 2223 - BOOL LogonUserW(LPWSTR, LPWSTR, LPWSTR, DWORD, DWORD, PHANDLE); 2224 - BOOL LookupAccountNameA(LPCSTR, LPCSTR, PSID, PDWORD, LPSTR, PDWORD, PSID_NAME_USE); 2225 - BOOL LookupAccountNameW(LPCWSTR, LPCWSTR, PSID, PDWORD, LPWSTR, PDWORD, PSID_NAME_USE); 2226 - BOOL LookupAccountSidA(LPCSTR, PSID, LPSTR, PDWORD, LPSTR, PDWORD, PSID_NAME_USE); 2227 - BOOL LookupAccountSidW(LPCWSTR, PSID, LPWSTR, PDWORD, LPWSTR, PDWORD, PSID_NAME_USE); 2228 - BOOL LookupPrivilegeDisplayNameA(LPCSTR, LPCSTR, LPSTR, PDWORD, PDWORD); 2229 - BOOL LookupPrivilegeDisplayNameW(LPCWSTR, LPCWSTR, LPWSTR, PDWORD, PDWORD); 2230 - BOOL LookupPrivilegeNameA(LPCSTR, PLUID, LPSTR, PDWORD); 2231 - BOOL LookupPrivilegeNameW(LPCWSTR, PLUID, LPWSTR, PDWORD); 2232 - BOOL LookupPrivilegeValueA(LPCSTR, LPCSTR, PLUID); 2233 - BOOL LookupPrivilegeValueW(LPCWSTR, LPCWSTR, PLUID); 2234 - BOOL MakeAbsoluteSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD, PACL, PDWORD, PACL, PDWORD, PSID, PDWORD, PSID, PDWORD); 2235 - BOOL MakeSelfRelativeSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD); 2236 - VOID MapGenericMask(PDWORD, PGENERIC_MAPPING); 2237 - BOOL MoveFileExA(LPCSTR, LPCSTR, DWORD); 2238 - BOOL MoveFileExW(LPCWSTR, LPCWSTR, DWORD); 2239 - BOOL NotifyChangeEventLog(HANDLE, HANDLE); 2240 - BOOL ObjectCloseAuditAlarmA(LPCSTR, PVOID, BOOL); 2241 - BOOL ObjectCloseAuditAlarmW(LPCWSTR, PVOID, BOOL); 2242 - BOOL ObjectDeleteAuditAlarmA(LPCSTR, PVOID, BOOL); 2243 - BOOL ObjectDeleteAuditAlarmW(LPCWSTR, PVOID, BOOL); 2244 - BOOL ObjectOpenAuditAlarmA(LPCSTR, PVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD, PPRIVILEGE_SET, BOOL, BOOL, PBOOL); 2245 - BOOL ObjectOpenAuditAlarmW(LPCWSTR, PVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD, PPRIVILEGE_SET, BOOL, BOOL, PBOOL); 2246 - BOOL ObjectPrivilegeAuditAlarmA(LPCSTR, PVOID, HANDLE, DWORD, PPRIVILEGE_SET, BOOL); 2247 - BOOL ObjectPrivilegeAuditAlarmW(LPCWSTR, PVOID, HANDLE, DWORD, PPRIVILEGE_SET, BOOL); 2248 - HANDLE OpenBackupEventLogA(LPCSTR, LPCSTR); 2249 - HANDLE OpenBackupEventLogW(LPCWSTR, LPCWSTR); 2250 - HANDLE OpenEventLogA(LPCSTR, LPCSTR); 2251 - HANDLE OpenEventLogW(LPCWSTR, LPCWSTR); 2252 - BOOL OpenProcessToken(HANDLE, DWORD, PHANDLE); 2253 - BOOL OpenThreadToken(HANDLE, DWORD, BOOL, PHANDLE); 2254 - BOOL PostQueuedCompletionStatus(HANDLE, DWORD, ULONG_PTR, LPOVERLAPPED); 2255 - DWORD PrepareTape(HANDLE, DWORD, BOOL); 2256 - BOOL PrivilegeCheck(HANDLE, PPRIVILEGE_SET, PBOOL); 2257 - BOOL PrivilegedServiceAuditAlarmA(LPCSTR, LPCSTR, HANDLE, PPRIVILEGE_SET, BOOL); 2258 - BOOL PrivilegedServiceAuditAlarmW(LPCWSTR, LPCWSTR, HANDLE, PPRIVILEGE_SET, BOOL); 2259 - BOOL ReadDirectoryChangesW(HANDLE, PVOID, DWORD, BOOL, DWORD, PDWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE); 2260 - BOOL ReadEventLogA(HANDLE, DWORD, DWORD, PVOID, DWORD, DWORD*, DWORD*); 2261 - BOOL ReadEventLogW(HANDLE, DWORD, DWORD, PVOID, DWORD, DWORD*, DWORD*); 2262 - BOOL ReadFileScatter(HANDLE, FILE_SEGMENT_ELEMENT*, DWORD, LPDWORD, LPOVERLAPPED); 2263 - HANDLE RegisterEventSourceA (LPCSTR, LPCSTR); 2264 - HANDLE RegisterEventSourceW(LPCWSTR, LPCWSTR); 2265 - BOOL ReportEventA(HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, LPCSTR*, PVOID); 2266 - BOOL ReportEventW(HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, LPCWSTR*, PVOID); 2267 - BOOL RevertToSelf(); 2268 - BOOL SetAclInformation(PACL, PVOID, DWORD, ACL_INFORMATION_CLASS); 2269 - BOOL SetFileSecurityA(LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 2270 - BOOL SetFileSecurityW(LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 2271 - BOOL SetHandleInformation(HANDLE, DWORD, DWORD); 2272 - BOOL SetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 2273 - BOOL SetPrivateObjectSecurity(SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR* , PGENERIC_MAPPING, HANDLE); 2274 - BOOL SetProcessAffinityMask(HANDLE, DWORD); 2275 - BOOL SetProcessPriorityBoost(HANDLE, BOOL); 2276 - BOOL SetProcessShutdownParameters(DWORD, DWORD); 2277 - BOOL SetProcessWorkingSetSize(HANDLE, SIZE_T, SIZE_T); 2278 - BOOL SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL); 2279 - BOOL SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID, BOOL); 2280 - BOOL SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID, BOOL); 2281 - BOOL SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL); 2282 - BOOL SetSystemTimeAdjustment(DWORD, BOOL); 2283 - DWORD SetTapeParameters(HANDLE, DWORD, PVOID); 2284 - DWORD SetTapePosition(HANDLE, DWORD, DWORD, DWORD, DWORD, BOOL); 2285 - BOOL SetThreadPriorityBoost(HANDLE, BOOL); 2286 - BOOL SetThreadToken(PHANDLE, HANDLE); 2287 - BOOL SetTokenInformation(HANDLE, TOKEN_INFORMATION_CLASS, PVOID, DWORD); 2288 - DWORD SignalObjectAndWait(HANDLE, HANDLE, DWORD, BOOL); 2289 - BOOL SwitchToThread(); 2290 - BOOL SystemTimeToTzSpecificLocalTime(LPTIME_ZONE_INFORMATION, LPSYSTEMTIME, LPSYSTEMTIME); 2291 - BOOL TryEnterCriticalSection(LPCRITICAL_SECTION); 2292 - BOOL UnlockFileEx(HANDLE, DWORD, DWORD, DWORD, LPOVERLAPPED); 2293 - BOOL UpdateResourceA(HANDLE, LPCSTR, LPCSTR, WORD, PVOID, DWORD); 2294 - BOOL UpdateResourceW(HANDLE, LPCWSTR, LPCWSTR, WORD, PVOID, DWORD); 2295 - BOOL WriteFileGather(HANDLE, FILE_SEGMENT_ELEMENT*, DWORD, LPDWORD, LPOVERLAPPED); 2296 - DWORD WriteTapemark(HANDLE, DWORD, DWORD, BOOL); 2297 - 2298 - static if (_WIN32_WINNT >= 0x500) { 2299 - BOOL AddAccessAllowedAceEx(PACL, DWORD, DWORD, DWORD, PSID); 2300 - BOOL AddAccessDeniedAceEx(PACL, DWORD, DWORD, DWORD, PSID); 2301 - PVOID AddVectoredExceptionHandler(ULONG, PVECTORED_EXCEPTION_HANDLER); 2302 - BOOL AllocateUserPhysicalPages(HANDLE, PULONG_PTR, PULONG_PTR); 2303 - BOOL AssignProcessToJobObject(HANDLE, HANDLE); 2304 - BOOL ChangeTimerQueueTimer(HANDLE,HANDLE,ULONG,ULONG); 2305 - LPVOID CreateFiberEx(SIZE_T, SIZE_T, DWORD, LPFIBER_START_ROUTINE, LPVOID); 2306 - HANDLE CreateFileMappingA(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCSTR); 2307 - HANDLE CreateFileMappingW(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCWSTR); 2308 - BOOL CreateHardLinkA(LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES); 2309 - BOOL CreateHardLinkW(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES); 2310 - HANDLE CreateJobObjectA(LPSECURITY_ATTRIBUTES, LPCSTR); 2311 - HANDLE CreateJobObjectW(LPSECURITY_ATTRIBUTES, LPCWSTR); 2312 - BOOL CreateProcessWithLogonW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPCWSTR, LPWSTR, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION); 2313 - HANDLE CreateTimerQueue(); 2314 - BOOL CreateTimerQueueTimer(PHANDLE, HANDLE, WAITORTIMERCALLBACK, PVOID, DWORD, DWORD, ULONG); 2315 - BOOL DeleteTimerQueue(HANDLE); 2316 - BOOL DeleteTimerQueueEx(HANDLE, HANDLE); 2317 - BOOL DeleteTimerQueueTimer(HANDLE, HANDLE, HANDLE); 2318 - BOOL DeleteVolumeMountPointA(LPCSTR); 2319 - BOOL DeleteVolumeMountPointW(LPCWSTR); 2320 - BOOL DnsHostnameToComputerNameA(LPCSTR, LPSTR, LPDWORD); 2321 - BOOL DnsHostnameToComputerNameW(LPCWSTR, LPWSTR, LPDWORD); 2322 - BOOL EncryptFileA(LPCSTR); 2323 - BOOL EncryptFileW(LPCWSTR); 2324 - BOOL FileEncryptionStatusA(LPCSTR, LPDWORD); 2325 - BOOL FileEncryptionStatusW(LPCWSTR, LPDWORD); 2326 - HANDLE FindFirstVolumeA(LPCSTR, DWORD); 2327 - HANDLE FindFirstVolumeMountPointA(LPSTR, LPSTR, DWORD); 2328 - HANDLE FindFirstVolumeMountPointW(LPWSTR, LPWSTR, DWORD); 2329 - HANDLE FindFirstVolumeW(LPCWSTR, DWORD); 2330 - BOOL FindNextVolumeA(HANDLE, LPCSTR, DWORD); 2331 - BOOL FindNextVolumeW(HANDLE, LPWSTR, DWORD); 2332 - BOOL FindNextVolumeMountPointA(HANDLE, LPSTR, DWORD); 2333 - BOOL FindNextVolumeMountPointW(HANDLE, LPWSTR, DWORD); 2334 - BOOL FindVolumeClose(HANDLE); 2335 - BOOL FindVolumeMountPointClose(HANDLE); 2336 - BOOL FlushViewOfFile(PCVOID, DWORD); 2337 - BOOL FreeUserPhysicalPages(HANDLE, PULONG_PTR, PULONG_PTR); 2338 - BOOL GetComputerNameExA(COMPUTER_NAME_FORMAT, LPSTR, LPDWORD); 2339 - BOOL GetComputerNameExW(COMPUTER_NAME_FORMAT, LPWSTR, LPDWORD); 2340 - BOOL GetFileSizeEx(HANDLE, PLARGE_INTEGER); 2341 - BOOL GetModuleHandleExA(DWORD, LPCSTR, HMODULE*); 2342 - BOOL GetModuleHandleExW(DWORD, LPCWSTR, HMODULE*); 2343 - HANDLE GetProcessHeap(); 2344 - DWORD GetProcessHeaps(DWORD, PHANDLE); 2345 - BOOL GetProcessIoCounters(HANDLE, PIO_COUNTERS); 2346 - BOOL GetSystemPowerStatus(LPSYSTEM_POWER_STATUS); 2347 - UINT GetSystemWindowsDirectoryA(LPSTR, UINT); 2348 - UINT GetSystemWindowsDirectoryW(LPWSTR, UINT); 2349 - BOOL GetVolumeNameForVolumeMountPointA(LPCSTR, LPSTR, DWORD); 2350 - BOOL GetVolumeNameForVolumeMountPointW(LPCWSTR, LPWSTR, DWORD); 2351 - BOOL GetVolumePathNameA(LPCSTR, LPSTR, DWORD); 2352 - BOOL GetVolumePathNameW(LPCWSTR, LPWSTR, DWORD); 2353 - BOOL GlobalMemoryStatusEx(LPMEMORYSTATUSEX); 2354 - BOOL IsBadCodePtr(FARPROC); 2355 - BOOL IsSystemResumeAutomatic(); 2356 - BOOL MapUserPhysicalPages(PVOID, ULONG_PTR, PULONG_PTR); 2357 - BOOL MapUserPhysicalPagesScatter(PVOID*, ULONG_PTR, PULONG_PTR); 2358 - PVOID MapViewOfFile(HANDLE, DWORD, DWORD, DWORD, DWORD); 2359 - PVOID MapViewOfFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, PVOID); 2360 - HANDLE OpenFileMappingA(DWORD, BOOL, LPCSTR); 2361 - HANDLE OpenFileMappingW(DWORD, BOOL, LPCWSTR); 2362 - BOOL ProcessIdToSessionId(DWORD, DWORD*); 2363 - BOOL QueryInformationJobObject(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD, LPDWORD); 2364 - ULONG RemoveVectoredExceptionHandler(PVOID); 2365 - BOOL ReplaceFileA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPVOID, LPVOID); 2366 - BOOL ReplaceFileW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPVOID, LPVOID); 2367 - BOOL SetComputerNameExA(COMPUTER_NAME_FORMAT, LPCSTR); 2368 - BOOL SetComputerNameExW(COMPUTER_NAME_FORMAT, LPCWSTR); 2369 - BOOL SetFilePointerEx(HANDLE, LARGE_INTEGER, PLARGE_INTEGER, DWORD); 2370 - BOOL SetInformationJobObject(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD); 2371 - BOOL SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, SECURITY_DESCRIPTOR_CONTROL, SECURITY_DESCRIPTOR_CONTROL); 2372 - BOOL SetSystemPowerState(BOOL, BOOL); 2373 - EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE); 2374 - DWORD SetThreadIdealProcessor(HANDLE, DWORD); 2375 - BOOL SetVolumeMountPointA(LPCSTR, LPCSTR); 2376 - BOOL SetVolumeMountPointW(LPCWSTR, LPCWSTR); 2377 - BOOL TerminateJobObject(HANDLE, UINT); 2378 - BOOL UnmapViewOfFile(PVOID); 2379 - BOOL UnregisterWait(HANDLE); 2380 - BOOL UnregisterWaitEx(HANDLE, HANDLE); 2381 - BOOL VerifyVersionInfoA(LPOSVERSIONINFOEXA, DWORD, DWORDLONG); 2382 - BOOL VerifyVersionInfoW(LPOSVERSIONINFOEXW, DWORD, DWORDLONG); 2383 - } 2384 - 2385 - static if (_WIN32_WINNT >= 0x501) { 2386 - BOOL ActivateActCtx(HANDLE, ULONG_PTR*); 2387 - void AddRefActCtx(HANDLE); 2388 - BOOL CheckNameLegalDOS8Dot3A(LPCSTR, LPSTR, DWORD, PBOOL, PBOOL); 2389 - BOOL CheckNameLegalDOS8Dot3W(LPCWSTR, LPSTR, DWORD, PBOOL, PBOOL); 2390 - BOOL CheckRemoteDebuggerPresent(HANDLE, PBOOL); 2391 - BOOL ConvertFiberToThread(); 2392 - HANDLE CreateActCtxA(PCACTCTXA); 2393 - HANDLE CreateActCtxW(PCACTCTXW); 2394 - HANDLE CreateMemoryResourceNotification(MEMORY_RESOURCE_NOTIFICATION_TYPE); 2395 - BOOL DeactivateActCtx(DWORD, ULONG_PTR); 2396 - BOOL DebugActiveProcessStop(DWORD); 2397 - BOOL DebugBreakProcess(HANDLE); 2398 - BOOL DebugSetProcessKillOnExit(BOOL); 2399 - BOOL FindActCtxSectionGuid(DWORD, CPtr!(GUID), ULONG, CPtr!(GUID), 2400 - PACTCTX_SECTION_KEYED_DATA); 2401 - BOOL FindActCtxSectionStringA(DWORD, CPtr!(GUID), ULONG, LPCSTR, 2402 - PACTCTX_SECTION_KEYED_DATA); 2403 - BOOL FindActCtxSectionStringW(DWORD, CPtr!(GUID), ULONG, LPCWSTR, 2404 - PACTCTX_SECTION_KEYED_DATA); 2405 - BOOL GetCurrentActCtx(HANDLE*); 2406 - VOID GetNativeSystemInfo(LPSYSTEM_INFO); 2407 - BOOL GetProcessHandleCount(HANDLE, PDWORD); 2408 - BOOL GetSystemRegistryQuota(PDWORD, PDWORD); 2409 - BOOL GetSystemTimes(LPFILETIME, LPFILETIME, LPFILETIME); 2410 - UINT GetSystemWow64DirectoryA(LPSTR, UINT); 2411 - UINT GetSystemWow64DirectoryW(LPWSTR, UINT); 2412 - BOOL GetThreadIOPendingFlag(HANDLE, PBOOL); 2413 - BOOL GetVolumePathNamesForVolumeNameA(LPCSTR, LPSTR, DWORD, PDWORD); 2414 - BOOL GetVolumePathNamesForVolumeNameW(LPCWSTR, LPWSTR, DWORD, PDWORD); 2415 - UINT GetWriteWatch(DWORD, PVOID, SIZE_T, PVOID*, PULONG_PTR, PULONG); 2416 - BOOL HeapQueryInformation(HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T, PSIZE_T); 2417 - BOOL HeapSetInformation(HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T); 2418 - BOOL IsProcessInJob(HANDLE, HANDLE, PBOOL); 2419 - BOOL IsWow64Process(HANDLE, PBOOL); 2420 - BOOL QueryActCtxW(DWORD, HANDLE, PVOID, ULONG, PVOID, SIZE_T, SIZE_T*); 2421 - BOOL QueryMemoryResourceNotification(HANDLE, PBOOL); 2422 - void ReleaseActCtx(HANDLE); 2423 - UINT ResetWriteWatch(LPVOID, SIZE_T); 2424 - BOOL SetFileShortNameA(HANDLE, LPCSTR); 2425 - BOOL SetFileShortNameW(HANDLE, LPCWSTR); 2426 - BOOL SetFileValidData(HANDLE, LONGLONG); 2427 - BOOL ZombifyActCtx(HANDLE); 2428 - } 2429 - 2430 - static if (_WIN32_WINNT >= 0x502) { 2431 - DWORD GetFirmwareEnvironmentVariableA(LPCSTR, LPCSTR, PVOID, DWORD); 2432 - DWORD GetFirmwareEnvironmentVariableW(LPCWSTR, LPCWSTR, PVOID, DWORD); 2433 - DWORD GetDllDirectoryA(DWORD, LPSTR); 2434 - DWORD GetDllDirectoryW(DWORD, LPWSTR); 2435 - DWORD GetProcessId(HANDLE); 2436 - HANDLE ReOpenFile(HANDLE, DWORD, DWORD, DWORD); 2437 - BOOL SetDllDirectoryA(LPCSTR); 2438 - BOOL SetDllDirectoryW(LPCWSTR); 2439 - BOOL SetFirmwareEnvironmentVariableA(LPCSTR, LPCSTR, PVOID, DWORD); 2440 - BOOL SetFirmwareEnvironmentVariableW(LPCWSTR, LPCWSTR, PVOID, DWORD); 2441 - } 2116 + BOOL AccessCheck(PSECURITY_DESCRIPTOR, HANDLE, DWORD, PGENERIC_MAPPING, PPRIVILEGE_SET, PDWORD, PDWORD, PBOOL); 2117 + BOOL AccessCheckAndAuditAlarmA(LPCSTR, LPVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING, BOOL, PDWORD, PBOOL, PBOOL); 2118 + BOOL AccessCheckAndAuditAlarmW(LPCWSTR, LPVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING, BOOL, PDWORD, PBOOL, PBOOL); 2119 + BOOL AddAccessAllowedAce(PACL, DWORD, DWORD, PSID); 2120 + BOOL AddAccessDeniedAce(PACL, DWORD, DWORD, PSID); 2121 + BOOL AddAce(PACL, DWORD, DWORD, PVOID, DWORD); 2122 + BOOL AddAuditAccessAce(PACL, DWORD, DWORD, PSID, BOOL, BOOL); 2123 + BOOL AdjustTokenGroups(HANDLE, BOOL, PTOKEN_GROUPS, DWORD, PTOKEN_GROUPS, PDWORD); 2124 + BOOL AdjustTokenPrivileges(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD); 2125 + BOOL AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY, BYTE, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, PSID*); 2126 + BOOL AllocateLocallyUniqueId(PLUID); 2127 + BOOL AreAllAccessesGranted(DWORD, DWORD); 2128 + BOOL AreAnyAccessesGranted(DWORD, DWORD); 2129 + BOOL BackupEventLogA(HANDLE, LPCSTR); 2130 + BOOL BackupEventLogW(HANDLE, LPCWSTR); 2131 + BOOL BackupRead(HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVOID*); 2132 + BOOL BackupSeek(HANDLE, DWORD, DWORD, LPDWORD, LPDWORD, LPVOID*); 2133 + BOOL BackupWrite(HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVOID*); 2134 + BOOL ClearEventLogA(HANDLE, LPCSTR); 2135 + BOOL ClearEventLogW(HANDLE, LPCWSTR); 2136 + BOOL CloseEventLog(HANDLE); 2137 + BOOL ConnectNamedPipe(HANDLE, LPOVERLAPPED); 2138 + BOOL CopySid(DWORD, PSID, PSID); 2139 + HANDLE CreateNamedPipeA(LPCSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES); 2140 + HANDLE CreateNamedPipeW(LPCWSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES); 2141 + BOOL CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR*, BOOL, HANDLE, PGENERIC_MAPPING); 2142 + BOOL CreateProcessAsUserA(HANDLE, LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCSTR, LPSTARTUPINFOA, LPPROCESS_INFORMATION); 2143 + BOOL CreateProcessAsUserW(HANDLE, LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION); 2144 + HANDLE CreateRemoteThread(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD); 2145 + DWORD CreateTapePartition(HANDLE, DWORD, DWORD, DWORD); 2146 + BOOL DefineDosDeviceA(DWORD, LPCSTR, LPCSTR); 2147 + BOOL DefineDosDeviceW(DWORD, LPCWSTR, LPCWSTR); 2148 + BOOL DeleteAce(PACL, DWORD); 2149 + BOOL DeregisterEventSource(HANDLE); 2150 + BOOL DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*); 2151 + BOOL DeviceIoControl(HANDLE, DWORD, PVOID, DWORD, PVOID, DWORD, PDWORD, POVERLAPPED); 2152 + BOOL DisconnectNamedPipe(HANDLE); 2153 + BOOL DuplicateToken(HANDLE, SECURITY_IMPERSONATION_LEVEL, PHANDLE); 2154 + BOOL DuplicateTokenEx(HANDLE, DWORD, LPSECURITY_ATTRIBUTES, SECURITY_IMPERSONATION_LEVEL, TOKEN_TYPE, PHANDLE); 2155 + BOOL EqualPrefixSid(PSID, PSID); 2156 + BOOL EqualSid(PSID, PSID); 2157 + DWORD EraseTape(HANDLE, DWORD, BOOL); 2158 + HANDLE FindFirstFileExA(LPCSTR, FINDEX_INFO_LEVELS, PVOID, FINDEX_SEARCH_OPS, PVOID, DWORD); 2159 + HANDLE FindFirstFileExW(LPCWSTR, FINDEX_INFO_LEVELS, PVOID, FINDEX_SEARCH_OPS, PVOID, DWORD); 2160 + BOOL FindFirstFreeAce(PACL, PVOID*); 2161 + PVOID FreeSid(PSID); 2162 + BOOL GetAce(PACL, DWORD, LPVOID*); 2163 + BOOL GetAclInformation(PACL, PVOID, DWORD, ACL_INFORMATION_CLASS); 2164 + BOOL GetBinaryTypeA(LPCSTR, PDWORD); 2165 + BOOL GetBinaryTypeW(LPCWSTR, PDWORD); 2166 + DWORD GetCompressedFileSizeA(LPCSTR, PDWORD); 2167 + DWORD GetCompressedFileSizeW(LPCWSTR, PDWORD); 2168 + BOOL GetCurrentHwProfileA(LPHW_PROFILE_INFOA); 2169 + BOOL GetCurrentHwProfileW(LPHW_PROFILE_INFOW); 2170 + BOOL GetFileSecurityA(LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); 2171 + BOOL GetFileSecurityW(LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); 2172 + BOOL GetHandleInformation(HANDLE, PDWORD); 2173 + BOOL GetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); 2174 + DWORD GetLengthSid(PSID); 2175 + BOOL GetNumberOfEventLogRecords(HANDLE, PDWORD); 2176 + BOOL GetOldestEventLogRecord(HANDLE, PDWORD); 2177 + BOOL GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); 2178 + BOOL GetProcessPriorityBoost(HANDLE, PBOOL); 2179 + BOOL GetProcessShutdownParameters(PDWORD, PDWORD); 2180 + BOOL GetProcessTimes(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME); 2181 + HWINSTA GetProcessWindowStation(); 2182 + BOOL GetProcessWorkingSetSize(HANDLE, PSIZE_T, PSIZE_T); 2183 + BOOL GetQueuedCompletionStatus(HANDLE, PDWORD, PULONG_PTR, LPOVERLAPPED*, DWORD); 2184 + BOOL GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR_CONTROL, PDWORD); 2185 + BOOL GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, LPBOOL, PACL*, LPBOOL); 2186 + BOOL GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID*, LPBOOL); 2187 + DWORD GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR); 2188 + BOOL GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID*, LPBOOL); 2189 + BOOL GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, LPBOOL, PACL*, LPBOOL); 2190 + PSID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority(PSID); 2191 + DWORD GetSidLengthRequired(UCHAR); 2192 + PDWORD GetSidSubAuthority(PSID, DWORD); 2193 + PUCHAR GetSidSubAuthorityCount(PSID); 2194 + DWORD GetTapeParameters(HANDLE, DWORD, PDWORD, PVOID); 2195 + DWORD GetTapePosition(HANDLE, DWORD, PDWORD, PDWORD, PDWORD); 2196 + DWORD GetTapeStatus(HANDLE); 2197 + BOOL GetThreadPriorityBoost(HANDLE, PBOOL); 2198 + BOOL GetThreadTimes(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME); 2199 + BOOL GetTokenInformation(HANDLE, TOKEN_INFORMATION_CLASS, PVOID, DWORD, PDWORD); 2200 + BOOL ImpersonateLoggedOnUser(HANDLE); 2201 + BOOL ImpersonateNamedPipeClient(HANDLE); 2202 + BOOL ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL); 2203 + BOOL InitializeAcl(PACL, DWORD, DWORD); 2204 + DWORD SetCriticalSectionSpinCount(LPCRITICAL_SECTION, DWORD); 2205 + BOOL InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR, DWORD); 2206 + BOOL InitializeSid(PSID, PSID_IDENTIFIER_AUTHORITY, BYTE); 2207 + BOOL IsProcessorFeaturePresent(DWORD); 2208 + BOOL IsTextUnicode(PCVOID, int, LPINT); 2209 + BOOL IsValidAcl(PACL); 2210 + BOOL IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR); 2211 + BOOL IsValidSid(PSID); 2212 + BOOL LockFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED); 2213 + BOOL LogonUserA(LPSTR, LPSTR, LPSTR, DWORD, DWORD, PHANDLE); 2214 + BOOL LogonUserW(LPWSTR, LPWSTR, LPWSTR, DWORD, DWORD, PHANDLE); 2215 + BOOL LookupAccountNameA(LPCSTR, LPCSTR, PSID, PDWORD, LPSTR, PDWORD, PSID_NAME_USE); 2216 + BOOL LookupAccountNameW(LPCWSTR, LPCWSTR, PSID, PDWORD, LPWSTR, PDWORD, PSID_NAME_USE); 2217 + BOOL LookupAccountSidA(LPCSTR, PSID, LPSTR, PDWORD, LPSTR, PDWORD, PSID_NAME_USE); 2218 + BOOL LookupAccountSidW(LPCWSTR, PSID, LPWSTR, PDWORD, LPWSTR, PDWORD, PSID_NAME_USE); 2219 + BOOL LookupPrivilegeDisplayNameA(LPCSTR, LPCSTR, LPSTR, PDWORD, PDWORD); 2220 + BOOL LookupPrivilegeDisplayNameW(LPCWSTR, LPCWSTR, LPWSTR, PDWORD, PDWORD); 2221 + BOOL LookupPrivilegeNameA(LPCSTR, PLUID, LPSTR, PDWORD); 2222 + BOOL LookupPrivilegeNameW(LPCWSTR, PLUID, LPWSTR, PDWORD); 2223 + BOOL LookupPrivilegeValueA(LPCSTR, LPCSTR, PLUID); 2224 + BOOL LookupPrivilegeValueW(LPCWSTR, LPCWSTR, PLUID); 2225 + BOOL MakeAbsoluteSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD, PACL, PDWORD, PACL, PDWORD, PSID, PDWORD, PSID, PDWORD); 2226 + BOOL MakeSelfRelativeSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD); 2227 + VOID MapGenericMask(PDWORD, PGENERIC_MAPPING); 2228 + BOOL MoveFileExA(LPCSTR, LPCSTR, DWORD); 2229 + BOOL MoveFileExW(LPCWSTR, LPCWSTR, DWORD); 2230 + BOOL NotifyChangeEventLog(HANDLE, HANDLE); 2231 + BOOL ObjectCloseAuditAlarmA(LPCSTR, PVOID, BOOL); 2232 + BOOL ObjectCloseAuditAlarmW(LPCWSTR, PVOID, BOOL); 2233 + BOOL ObjectDeleteAuditAlarmA(LPCSTR, PVOID, BOOL); 2234 + BOOL ObjectDeleteAuditAlarmW(LPCWSTR, PVOID, BOOL); 2235 + BOOL ObjectOpenAuditAlarmA(LPCSTR, PVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD, PPRIVILEGE_SET, BOOL, BOOL, PBOOL); 2236 + BOOL ObjectOpenAuditAlarmW(LPCWSTR, PVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD, PPRIVILEGE_SET, BOOL, BOOL, PBOOL); 2237 + BOOL ObjectPrivilegeAuditAlarmA(LPCSTR, PVOID, HANDLE, DWORD, PPRIVILEGE_SET, BOOL); 2238 + BOOL ObjectPrivilegeAuditAlarmW(LPCWSTR, PVOID, HANDLE, DWORD, PPRIVILEGE_SET, BOOL); 2239 + HANDLE OpenBackupEventLogA(LPCSTR, LPCSTR); 2240 + HANDLE OpenBackupEventLogW(LPCWSTR, LPCWSTR); 2241 + HANDLE OpenEventLogA(LPCSTR, LPCSTR); 2242 + HANDLE OpenEventLogW(LPCWSTR, LPCWSTR); 2243 + BOOL OpenProcessToken(HANDLE, DWORD, PHANDLE); 2244 + BOOL OpenThreadToken(HANDLE, DWORD, BOOL, PHANDLE); 2245 + BOOL PostQueuedCompletionStatus(HANDLE, DWORD, ULONG_PTR, LPOVERLAPPED); 2246 + DWORD PrepareTape(HANDLE, DWORD, BOOL); 2247 + BOOL PrivilegeCheck(HANDLE, PPRIVILEGE_SET, PBOOL); 2248 + BOOL PrivilegedServiceAuditAlarmA(LPCSTR, LPCSTR, HANDLE, PPRIVILEGE_SET, BOOL); 2249 + BOOL PrivilegedServiceAuditAlarmW(LPCWSTR, LPCWSTR, HANDLE, PPRIVILEGE_SET, BOOL); 2250 + BOOL ReadDirectoryChangesW(HANDLE, PVOID, DWORD, BOOL, DWORD, PDWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE); 2251 + BOOL ReadEventLogA(HANDLE, DWORD, DWORD, PVOID, DWORD, DWORD*, DWORD*); 2252 + BOOL ReadEventLogW(HANDLE, DWORD, DWORD, PVOID, DWORD, DWORD*, DWORD*); 2253 + BOOL ReadFileScatter(HANDLE, FILE_SEGMENT_ELEMENT*, DWORD, LPDWORD, LPOVERLAPPED); 2254 + HANDLE RegisterEventSourceA (LPCSTR, LPCSTR); 2255 + HANDLE RegisterEventSourceW(LPCWSTR, LPCWSTR); 2256 + BOOL ReportEventA(HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, LPCSTR*, PVOID); 2257 + BOOL ReportEventW(HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, LPCWSTR*, PVOID); 2258 + BOOL RevertToSelf(); 2259 + BOOL SetAclInformation(PACL, PVOID, DWORD, ACL_INFORMATION_CLASS); 2260 + BOOL SetFileSecurityA(LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 2261 + BOOL SetFileSecurityW(LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 2262 + BOOL SetHandleInformation(HANDLE, DWORD, DWORD); 2263 + BOOL SetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 2264 + BOOL SetPrivateObjectSecurity(SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR*, PGENERIC_MAPPING, HANDLE); 2265 + BOOL SetProcessAffinityMask(HANDLE, DWORD); 2266 + BOOL SetProcessPriorityBoost(HANDLE, BOOL); 2267 + BOOL SetProcessShutdownParameters(DWORD, DWORD); 2268 + BOOL SetProcessWorkingSetSize(HANDLE, SIZE_T, SIZE_T); 2269 + BOOL SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL); 2270 + BOOL SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID, BOOL); 2271 + BOOL SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID, BOOL); 2272 + BOOL SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL); 2273 + BOOL SetSystemTimeAdjustment(DWORD, BOOL); 2274 + DWORD SetTapeParameters(HANDLE, DWORD, PVOID); 2275 + DWORD SetTapePosition(HANDLE, DWORD, DWORD, DWORD, DWORD, BOOL); 2276 + BOOL SetThreadPriorityBoost(HANDLE, BOOL); 2277 + BOOL SetThreadToken(PHANDLE, HANDLE); 2278 + BOOL SetTokenInformation(HANDLE, TOKEN_INFORMATION_CLASS, PVOID, DWORD); 2279 + DWORD SignalObjectAndWait(HANDLE, HANDLE, DWORD, BOOL); 2280 + BOOL SwitchToThread(); 2281 + BOOL SystemTimeToTzSpecificLocalTime(LPTIME_ZONE_INFORMATION, LPSYSTEMTIME, LPSYSTEMTIME); 2282 + BOOL TryEnterCriticalSection(LPCRITICAL_SECTION); 2283 + BOOL UnlockFileEx(HANDLE, DWORD, DWORD, DWORD, LPOVERLAPPED); 2284 + BOOL UpdateResourceA(HANDLE, LPCSTR, LPCSTR, WORD, PVOID, DWORD); 2285 + BOOL UpdateResourceW(HANDLE, LPCWSTR, LPCWSTR, WORD, PVOID, DWORD); 2286 + BOOL WriteFileGather(HANDLE, FILE_SEGMENT_ELEMENT*, DWORD, LPDWORD, LPOVERLAPPED); 2287 + DWORD WriteTapemark(HANDLE, DWORD, DWORD, BOOL); 2288 + 2289 + static if (_WIN32_WINNT >= 0x500) { 2290 + BOOL AddAccessAllowedAceEx(PACL, DWORD, DWORD, DWORD, PSID); 2291 + BOOL AddAccessDeniedAceEx(PACL, DWORD, DWORD, DWORD, PSID); 2292 + PVOID AddVectoredExceptionHandler(ULONG, PVECTORED_EXCEPTION_HANDLER); 2293 + BOOL AllocateUserPhysicalPages(HANDLE, PULONG_PTR, PULONG_PTR); 2294 + BOOL AssignProcessToJobObject(HANDLE, HANDLE); 2295 + BOOL ChangeTimerQueueTimer(HANDLE,HANDLE,ULONG,ULONG); 2296 + LPVOID CreateFiberEx(SIZE_T, SIZE_T, DWORD, LPFIBER_START_ROUTINE, LPVOID); 2297 + HANDLE CreateFileMappingA(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCSTR); 2298 + HANDLE CreateFileMappingW(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCWSTR); 2299 + BOOL CreateHardLinkA(LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES); 2300 + BOOL CreateHardLinkW(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES); 2301 + HANDLE CreateJobObjectA(LPSECURITY_ATTRIBUTES, LPCSTR); 2302 + HANDLE CreateJobObjectW(LPSECURITY_ATTRIBUTES, LPCWSTR); 2303 + BOOL CreateProcessWithLogonW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPCWSTR, LPWSTR, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION); 2304 + HANDLE CreateTimerQueue(); 2305 + BOOL CreateTimerQueueTimer(PHANDLE, HANDLE, WAITORTIMERCALLBACK, PVOID, DWORD, DWORD, ULONG); 2306 + BOOL DeleteTimerQueue(HANDLE); 2307 + BOOL DeleteTimerQueueEx(HANDLE, HANDLE); 2308 + BOOL DeleteTimerQueueTimer(HANDLE, HANDLE, HANDLE); 2309 + BOOL DeleteVolumeMountPointA(LPCSTR); 2310 + BOOL DeleteVolumeMountPointW(LPCWSTR); 2311 + BOOL DnsHostnameToComputerNameA(LPCSTR, LPSTR, LPDWORD); 2312 + BOOL DnsHostnameToComputerNameW(LPCWSTR, LPWSTR, LPDWORD); 2313 + BOOL EncryptFileA(LPCSTR); 2314 + BOOL EncryptFileW(LPCWSTR); 2315 + BOOL FileEncryptionStatusA(LPCSTR, LPDWORD); 2316 + BOOL FileEncryptionStatusW(LPCWSTR, LPDWORD); 2317 + HANDLE FindFirstVolumeA(LPCSTR, DWORD); 2318 + HANDLE FindFirstVolumeMountPointA(LPSTR, LPSTR, DWORD); 2319 + HANDLE FindFirstVolumeMountPointW(LPWSTR, LPWSTR, DWORD); 2320 + HANDLE FindFirstVolumeW(LPCWSTR, DWORD); 2321 + BOOL FindNextVolumeA(HANDLE, LPCSTR, DWORD); 2322 + BOOL FindNextVolumeW(HANDLE, LPWSTR, DWORD); 2323 + BOOL FindNextVolumeMountPointA(HANDLE, LPSTR, DWORD); 2324 + BOOL FindNextVolumeMountPointW(HANDLE, LPWSTR, DWORD); 2325 + BOOL FindVolumeClose(HANDLE); 2326 + BOOL FindVolumeMountPointClose(HANDLE); 2327 + BOOL FlushViewOfFile(PCVOID, DWORD); 2328 + BOOL FreeUserPhysicalPages(HANDLE, PULONG_PTR, PULONG_PTR); 2329 + BOOL GetComputerNameExA(COMPUTER_NAME_FORMAT, LPSTR, LPDWORD); 2330 + BOOL GetComputerNameExW(COMPUTER_NAME_FORMAT, LPWSTR, LPDWORD); 2331 + BOOL GetFileSizeEx(HANDLE, PLARGE_INTEGER); 2332 + BOOL GetModuleHandleExA(DWORD, LPCSTR, HMODULE*); 2333 + BOOL GetModuleHandleExW(DWORD, LPCWSTR, HMODULE*); 2334 + HANDLE GetProcessHeap(); 2335 + DWORD GetProcessHeaps(DWORD, PHANDLE); 2336 + BOOL GetProcessIoCounters(HANDLE, PIO_COUNTERS); 2337 + BOOL GetSystemPowerStatus(LPSYSTEM_POWER_STATUS); 2338 + UINT GetSystemWindowsDirectoryA(LPSTR, UINT); 2339 + UINT GetSystemWindowsDirectoryW(LPWSTR, UINT); 2340 + BOOL GetVolumeNameForVolumeMountPointA(LPCSTR, LPSTR, DWORD); 2341 + BOOL GetVolumeNameForVolumeMountPointW(LPCWSTR, LPWSTR, DWORD); 2342 + BOOL GetVolumePathNameA(LPCSTR, LPSTR, DWORD); 2343 + BOOL GetVolumePathNameW(LPCWSTR, LPWSTR, DWORD); 2344 + BOOL GlobalMemoryStatusEx(LPMEMORYSTATUSEX); 2345 + BOOL IsBadCodePtr(FARPROC); 2346 + BOOL IsSystemResumeAutomatic(); 2347 + BOOL MapUserPhysicalPages(PVOID, ULONG_PTR, PULONG_PTR); 2348 + BOOL MapUserPhysicalPagesScatter(PVOID*, ULONG_PTR, PULONG_PTR); 2349 + PVOID MapViewOfFile(HANDLE, DWORD, DWORD, DWORD, DWORD); 2350 + PVOID MapViewOfFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, PVOID); 2351 + HANDLE OpenFileMappingA(DWORD, BOOL, LPCSTR); 2352 + HANDLE OpenFileMappingW(DWORD, BOOL, LPCWSTR); 2353 + BOOL ProcessIdToSessionId(DWORD, DWORD*); 2354 + BOOL QueryInformationJobObject(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD, LPDWORD); 2355 + ULONG RemoveVectoredExceptionHandler(PVOID); 2356 + BOOL ReplaceFileA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPVOID, LPVOID); 2357 + BOOL ReplaceFileW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPVOID, LPVOID); 2358 + BOOL SetComputerNameExA(COMPUTER_NAME_FORMAT, LPCSTR); 2359 + BOOL SetComputerNameExW(COMPUTER_NAME_FORMAT, LPCWSTR); 2360 + BOOL SetFilePointerEx(HANDLE, LARGE_INTEGER, PLARGE_INTEGER, DWORD); 2361 + BOOL SetInformationJobObject(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD); 2362 + BOOL SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, SECURITY_DESCRIPTOR_CONTROL, SECURITY_DESCRIPTOR_CONTROL); 2363 + BOOL SetSystemPowerState(BOOL, BOOL); 2364 + EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE); 2365 + DWORD SetThreadIdealProcessor(HANDLE, DWORD); 2366 + BOOL SetVolumeMountPointA(LPCSTR, LPCSTR); 2367 + BOOL SetVolumeMountPointW(LPCWSTR, LPCWSTR); 2368 + BOOL TerminateJobObject(HANDLE, UINT); 2369 + BOOL UnmapViewOfFile(PVOID); 2370 + BOOL UnregisterWait(HANDLE); 2371 + BOOL UnregisterWaitEx(HANDLE, HANDLE); 2372 + BOOL VerifyVersionInfoA(LPOSVERSIONINFOEXA, DWORD, DWORDLONG); 2373 + BOOL VerifyVersionInfoW(LPOSVERSIONINFOEXW, DWORD, DWORDLONG); 2374 + } 2375 + 2376 + static if (_WIN32_WINNT >= 0x501) { 2377 + BOOL ActivateActCtx(HANDLE, ULONG_PTR*); 2378 + void AddRefActCtx(HANDLE); 2379 + BOOL CheckNameLegalDOS8Dot3A(LPCSTR, LPSTR, DWORD, PBOOL, PBOOL); 2380 + BOOL CheckNameLegalDOS8Dot3W(LPCWSTR, LPSTR, DWORD, PBOOL, PBOOL); 2381 + BOOL CheckRemoteDebuggerPresent(HANDLE, PBOOL); 2382 + BOOL ConvertFiberToThread(); 2383 + HANDLE CreateActCtxA(PCACTCTXA); 2384 + HANDLE CreateActCtxW(PCACTCTXW); 2385 + HANDLE CreateMemoryResourceNotification(MEMORY_RESOURCE_NOTIFICATION_TYPE); 2386 + BOOL DeactivateActCtx(DWORD, ULONG_PTR); 2387 + BOOL DebugActiveProcessStop(DWORD); 2388 + BOOL DebugBreakProcess(HANDLE); 2389 + BOOL DebugSetProcessKillOnExit(BOOL); 2390 + BOOL FindActCtxSectionGuid(DWORD, const(GUID)*, ULONG, const(GUID)*, 2391 + PACTCTX_SECTION_KEYED_DATA); 2392 + BOOL FindActCtxSectionStringA(DWORD, const(GUID)*, ULONG, LPCSTR, 2393 + PACTCTX_SECTION_KEYED_DATA); 2394 + BOOL FindActCtxSectionStringW(DWORD, const(GUID)*, ULONG, LPCWSTR, 2395 + PACTCTX_SECTION_KEYED_DATA); 2396 + BOOL GetCurrentActCtx(HANDLE*); 2397 + VOID GetNativeSystemInfo(LPSYSTEM_INFO); 2398 + BOOL GetProcessHandleCount(HANDLE, PDWORD); 2399 + BOOL GetSystemRegistryQuota(PDWORD, PDWORD); 2400 + BOOL GetSystemTimes(LPFILETIME, LPFILETIME, LPFILETIME); 2401 + UINT GetSystemWow64DirectoryA(LPSTR, UINT); 2402 + UINT GetSystemWow64DirectoryW(LPWSTR, UINT); 2403 + BOOL GetThreadIOPendingFlag(HANDLE, PBOOL); 2404 + BOOL GetVolumePathNamesForVolumeNameA(LPCSTR, LPSTR, DWORD, PDWORD); 2405 + BOOL GetVolumePathNamesForVolumeNameW(LPCWSTR, LPWSTR, DWORD, PDWORD); 2406 + UINT GetWriteWatch(DWORD, PVOID, SIZE_T, PVOID*, PULONG_PTR, PULONG); 2407 + BOOL HeapQueryInformation(HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T, PSIZE_T); 2408 + BOOL HeapSetInformation(HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T); 2409 + BOOL IsProcessInJob(HANDLE, HANDLE, PBOOL); 2410 + BOOL IsWow64Process(HANDLE, PBOOL); 2411 + BOOL QueryActCtxW(DWORD, HANDLE, PVOID, ULONG, PVOID, SIZE_T, SIZE_T*); 2412 + BOOL QueryMemoryResourceNotification(HANDLE, PBOOL); 2413 + void ReleaseActCtx(HANDLE); 2414 + UINT ResetWriteWatch(LPVOID, SIZE_T); 2415 + BOOL SetFileShortNameA(HANDLE, LPCSTR); 2416 + BOOL SetFileShortNameW(HANDLE, LPCWSTR); 2417 + BOOL SetFileValidData(HANDLE, LONGLONG); 2418 + BOOL ZombifyActCtx(HANDLE); 2419 + } 2420 + 2421 + static if (_WIN32_WINNT >= 0x502) { 2422 + DWORD GetFirmwareEnvironmentVariableA(LPCSTR, LPCSTR, PVOID, DWORD); 2423 + DWORD GetFirmwareEnvironmentVariableW(LPCWSTR, LPCWSTR, PVOID, DWORD); 2424 + DWORD GetDllDirectoryA(DWORD, LPSTR); 2425 + DWORD GetDllDirectoryW(DWORD, LPWSTR); 2426 + DWORD GetThreadId(HANDLE); 2427 + DWORD GetProcessId(HANDLE); 2428 + HANDLE ReOpenFile(HANDLE, DWORD, DWORD, DWORD); 2429 + BOOL SetDllDirectoryA(LPCSTR); 2430 + BOOL SetDllDirectoryW(LPCWSTR); 2431 + BOOL SetFirmwareEnvironmentVariableA(LPCSTR, LPCSTR, PVOID, DWORD); 2432 + BOOL SetFirmwareEnvironmentVariableW(LPCWSTR, LPCWSTR, PVOID, DWORD); 2442 2433 } 2443 2434 2444 2435 // ??? 2445 2436 static if (_WIN32_WINNT >= 0x510) { 2446 2437 VOID RestoreLastError(DWORD); 2447 2438 } 2448 2439 } 2449 2440 2450 - 2441 +mixin DECLARE_AW!("STARTUPINFO"); 2451 2442 version (Unicode) { 2452 - alias STARTUPINFOW STARTUPINFO; 2443 + //alias STARTUPINFOW STARTUPINFO; 2453 2444 alias WIN32_FIND_DATAW WIN32_FIND_DATA; 2454 2445 alias ENUMRESLANGPROCW ENUMRESLANGPROC; 2455 2446 alias ENUMRESNAMEPROCW ENUMRESNAMEPROC; 2456 2447 alias ENUMRESTYPEPROCW ENUMRESTYPEPROC; 2457 2448 alias AddAtomW AddAtom; 2458 2449 alias BeginUpdateResourceW BeginUpdateResource; 2459 2450 alias BuildCommDCBW BuildCommDCB; ................................................................................ 2545 2536 alias SetVolumeLabelW SetVolumeLabel; 2546 2537 alias WaitNamedPipeW WaitNamedPipe; 2547 2538 alias WritePrivateProfileSectionW WritePrivateProfileSection; 2548 2539 alias WritePrivateProfileStringW WritePrivateProfileString; 2549 2540 alias WritePrivateProfileStructW WritePrivateProfileStruct; 2550 2541 alias WriteProfileSectionW WriteProfileSection; 2551 2542 alias WriteProfileStringW WriteProfileString; 2543 + alias CreateWaitableTimerW CreateWaitableTimer; 2544 + alias GetFileAttributesExW GetFileAttributesEx; 2545 + alias GetLongPathNameW GetLongPathName; 2546 + alias QueryDosDeviceW QueryDosDevice; 2547 + 2548 + alias HW_PROFILE_INFOW HW_PROFILE_INFO; 2549 + alias AccessCheckAndAuditAlarmW AccessCheckAndAuditAlarm; 2550 + alias BackupEventLogW BackupEventLog; 2551 + alias ClearEventLogW ClearEventLog; 2552 + alias CreateNamedPipeW CreateNamedPipe; 2553 + alias CreateProcessAsUserW CreateProcessAsUser; 2554 + alias DefineDosDeviceW DefineDosDevice; 2555 + alias FindFirstFileExW FindFirstFileEx; 2556 + alias GetBinaryTypeW GetBinaryType; 2557 + alias GetCompressedFileSizeW GetCompressedFileSize; 2558 + alias GetFileSecurityW GetFileSecurity; 2559 + alias LogonUserW LogonUser; 2560 + alias LookupAccountNameW LookupAccountName; 2561 + alias LookupAccountSidW LookupAccountSid; 2562 + alias LookupPrivilegeDisplayNameW LookupPrivilegeDisplayName; 2563 + alias LookupPrivilegeNameW LookupPrivilegeName; 2564 + alias LookupPrivilegeValueW LookupPrivilegeValue; 2565 + alias MoveFileExW MoveFileEx; 2566 + alias ObjectCloseAuditAlarmW ObjectCloseAuditAlarm; 2567 + alias ObjectDeleteAuditAlarmW ObjectDeleteAuditAlarm; 2568 + alias ObjectOpenAuditAlarmW ObjectOpenAuditAlarm; 2569 + alias ObjectPrivilegeAuditAlarmW ObjectPrivilegeAuditAlarm; 2570 + alias OpenBackupEventLogW OpenBackupEventLog; 2571 + alias OpenEventLogW OpenEventLog; 2572 + alias PrivilegedServiceAuditAlarmW PrivilegedServiceAuditAlarm; 2573 + alias ReadEventLogW ReadEventLog; 2574 + alias RegisterEventSourceW RegisterEventSource; 2575 + alias ReportEventW ReportEvent; 2576 + alias SetFileSecurityW SetFileSecurity; 2577 + alias UpdateResourceW UpdateResource; 2552 2578 2553 - static if (_WIN32_WINDOWS >= 0x410) { 2554 - alias CreateWaitableTimerW CreateWaitableTimer; 2555 - alias GetFileAttributesExW GetFileAttributesEx; 2556 - alias GetLongPathNameW GetLongPathName; 2557 - alias QueryDosDeviceW QueryDosDevice; 2579 + static if (_WIN32_WINNT >= 0x500) { 2580 + alias CreateFileMappingW CreateFileMapping; 2581 + alias CreateHardLinkW CreateHardLink; 2582 + alias CreateJobObjectW CreateJobObject; 2583 + alias DeleteVolumeMountPointW DeleteVolumeMountPoint; 2584 + alias DnsHostnameToComputerNameW DnsHostnameToComputerName; 2585 + alias EncryptFileW EncryptFile; 2586 + alias FileEncryptionStatusW FileEncryptionStatus; 2587 + alias FindFirstVolumeW FindFirstVolume; 2588 + alias FindFirstVolumeMountPointW FindFirstVolumeMountPoint; 2589 + alias FindNextVolumeW FindNextVolume; 2590 + alias FindNextVolumeMountPointW FindNextVolumeMountPoint; 2591 + alias GetModuleHandleExW GetModuleHandleEx; 2592 + alias GetSystemWindowsDirectoryW GetSystemWindowsDirectory; 2593 + alias GetVolumeNameForVolumeMountPointW GetVolumeNameForVolumeMountPoint; 2594 + alias GetVolumePathNameW GetVolumePathName; 2595 + alias OpenFileMappingW OpenFileMapping; 2596 + alias ReplaceFileW ReplaceFile; 2597 + alias SetVolumeMountPointW SetVolumeMountPoint; 2598 + alias VerifyVersionInfoW VerifyVersionInfo; 2558 2599 } 2559 2600 2560 - static if (_WIN32_WINNT_ONLY) { 2561 - alias HW_PROFILE_INFOW HW_PROFILE_INFO; 2562 - alias AccessCheckAndAuditAlarmW AccessCheckAndAuditAlarm; 2563 - alias BackupEventLogW BackupEventLog; 2564 - alias ClearEventLogW ClearEventLog; 2565 - alias CreateNamedPipeW CreateNamedPipe; 2566 - alias CreateProcessAsUserW CreateProcessAsUser; 2567 - alias DefineDosDeviceW DefineDosDevice; 2568 - alias FindFirstFileExW FindFirstFileEx; 2569 - alias GetBinaryTypeW GetBinaryType; 2570 - alias GetCompressedFileSizeW GetCompressedFileSize; 2571 - alias GetFileSecurityW GetFileSecurity; 2572 - alias LogonUserW LogonUser; 2573 - alias LookupAccountNameW LookupAccountName; 2574 - alias LookupAccountSidW LookupAccountSid; 2575 - alias LookupPrivilegeDisplayNameW LookupPrivilegeDisplayName; 2576 - alias LookupPrivilegeNameW LookupPrivilegeName; 2577 - alias LookupPrivilegeValueW LookupPrivilegeValue; 2578 - alias MoveFileExW MoveFileEx; 2579 - alias ObjectCloseAuditAlarmW ObjectCloseAuditAlarm; 2580 - alias ObjectDeleteAuditAlarmW ObjectDeleteAuditAlarm; 2581 - alias ObjectOpenAuditAlarmW ObjectOpenAuditAlarm; 2582 - alias ObjectPrivilegeAuditAlarmW ObjectPrivilegeAuditAlarm; 2583 - alias OpenBackupEventLogW OpenBackupEventLog; 2584 - alias OpenEventLogW OpenEventLog; 2585 - alias PrivilegedServiceAuditAlarmW PrivilegedServiceAuditAlarm; 2586 - alias ReadEventLogW ReadEventLog; 2587 - alias RegisterEventSourceW RegisterEventSource; 2588 - alias ReportEventW ReportEvent; 2589 - alias SetFileSecurityW SetFileSecurity; 2590 - alias UpdateResourceW UpdateResource; 2601 + static if (_WIN32_WINNT >= 0x501) { 2602 + alias ACTCTXW ACTCTX; 2603 + alias CheckNameLegalDOS8Dot3W CheckNameLegalDOS8Dot3; 2604 + alias CreateActCtxW CreateActCtx; 2605 + alias FindActCtxSectionStringW FindActCtxSectionString; 2606 + alias GetSystemWow64DirectoryW GetSystemWow64Directory; 2607 + alias GetVolumePathNamesForVolumeNameW GetVolumePathNamesForVolumeName; 2608 + alias SetFileShortNameW SetFileShortName; 2609 + } 2591 2610 2592 - static if (_WIN32_WINNT >= 0x500) { 2593 - alias CreateFileMappingW CreateFileMapping; 2594 - alias CreateHardLinkW CreateHardLink; 2595 - alias CreateJobObjectW CreateJobObject; 2596 - alias DeleteVolumeMountPointW DeleteVolumeMountPoint; 2597 - alias DnsHostnameToComputerNameW DnsHostnameToComputerName; 2598 - alias EncryptFileW EncryptFile; 2599 - alias FileEncryptionStatusW FileEncryptionStatus; 2600 - alias FindFirstVolumeW FindFirstVolume; 2601 - alias FindFirstVolumeMountPointW FindFirstVolumeMountPoint; 2602 - alias FindNextVolumeW FindNextVolume; 2603 - alias FindNextVolumeMountPointW FindNextVolumeMountPoint; 2604 - alias GetModuleHandleExW GetModuleHandleEx; 2605 - alias GetSystemWindowsDirectoryW GetSystemWindowsDirectory; 2606 - alias GetVolumeNameForVolumeMountPointW GetVolumeNameForVolumeMountPoint; 2607 - alias GetVolumePathNameW GetVolumePathName; 2608 - alias OpenFileMappingW OpenFileMapping; 2609 - alias ReplaceFileW ReplaceFile; 2610 - alias SetVolumeMountPointW SetVolumeMountPoint; 2611 - alias VerifyVersionInfoW VerifyVersionInfo; 2612 - } 2613 - 2614 - static if (_WIN32_WINNT >= 0x501) { 2615 - alias ACTCTXW ACTCTX; 2616 - alias CheckNameLegalDOS8Dot3W CheckNameLegalDOS8Dot3; 2617 - alias CreateActCtxW CreateActCtx; 2618 - alias FindActCtxSectionStringW FindActCtxSectionString; 2619 - alias GetSystemWow64DirectoryW GetSystemWow64Directory; 2620 - alias GetVolumePathNamesForVolumeNameW GetVolumePathNamesForVolumeName; 2621 - alias SetFileShortNameW SetFileShortName; 2622 - } 2623 - 2624 - static if (_WIN32_WINNT >= 0x502) { 2625 - alias SetFirmwareEnvironmentVariableW SetFirmwareEnvironmentVariable; 2626 - alias SetDllDirectoryW SetDllDirectory; 2627 - alias GetDllDirectoryW GetDllDirectory; 2628 - } 2611 + static if (_WIN32_WINNT >= 0x502) { 2612 + alias SetFirmwareEnvironmentVariableW SetFirmwareEnvironmentVariable; 2613 + alias SetDllDirectoryW SetDllDirectory; 2614 + alias GetDllDirectoryW GetDllDirectory; 2629 2615 } 2630 2616 2631 2617 } else { 2632 - alias STARTUPINFOA STARTUPINFO; 2618 + //alias STARTUPINFOA STARTUPINFO; 2633 2619 alias WIN32_FIND_DATAA WIN32_FIND_DATA; 2634 2620 alias ENUMRESLANGPROCW ENUMRESLANGPROC; 2635 2621 alias ENUMRESNAMEPROCW ENUMRESNAMEPROC; 2636 2622 alias ENUMRESTYPEPROCW ENUMRESTYPEPROC; 2637 2623 alias AddAtomA AddAtom; 2638 2624 alias BeginUpdateResourceA BeginUpdateResource; 2639 2625 alias BuildCommDCBA BuildCommDCB; ................................................................................ 2724 2710 alias SetVolumeLabelA SetVolumeLabel; 2725 2711 alias WaitNamedPipeA WaitNamedPipe; 2726 2712 alias WritePrivateProfileSectionA WritePrivateProfileSection; 2727 2713 alias WritePrivateProfileStringA WritePrivateProfileString; 2728 2714 alias WritePrivateProfileStructA WritePrivateProfileStruct; 2729 2715 alias WriteProfileSectionA WriteProfileSection; 2730 2716 alias WriteProfileStringA WriteProfileString; 2717 + alias CreateWaitableTimerA CreateWaitableTimer; 2718 + alias GetFileAttributesExA GetFileAttributesEx; 2719 + alias GetLongPathNameA GetLongPathName; 2720 + alias QueryDosDeviceA QueryDosDevice; 2721 + 2722 + alias HW_PROFILE_INFOA HW_PROFILE_INFO; 2723 + alias AccessCheckAndAuditAlarmA AccessCheckAndAuditAlarm; 2724 + alias BackupEventLogA BackupEventLog; 2725 + alias ClearEventLogA ClearEventLog; 2726 + alias CreateNamedPipeA CreateNamedPipe; 2727 + alias CreateProcessAsUserA CreateProcessAsUser; 2728 + alias DefineDosDeviceA DefineDosDevice; 2729 + alias FindFirstFileExA FindFirstFileEx; 2730 + alias GetBinaryTypeA GetBinaryType; 2731 + alias GetCompressedFileSizeA GetCompressedFileSize; 2732 + alias GetFileSecurityA GetFileSecurity; 2733 + alias LogonUserA LogonUser; 2734 + alias LookupAccountNameA LookupAccountName; 2735 + alias LookupAccountSidA LookupAccountSid; 2736 + alias LookupPrivilegeDisplayNameA LookupPrivilegeDisplayName; 2737 + alias LookupPrivilegeNameA LookupPrivilegeName; 2738 + alias LookupPrivilegeValueA LookupPrivilegeValue; 2739 + alias MoveFileExA MoveFileEx; 2740 + alias ObjectCloseAuditAlarmA ObjectCloseAuditAlarm; 2741 + alias ObjectDeleteAuditAlarmA ObjectDeleteAuditAlarm; 2742 + alias ObjectOpenAuditAlarmA ObjectOpenAuditAlarm; 2743 + alias ObjectPrivilegeAuditAlarmA ObjectPrivilegeAuditAlarm; 2744 + alias OpenBackupEventLogA OpenBackupEventLog; 2745 + alias OpenEventLogA OpenEventLog; 2746 + alias PrivilegedServiceAuditAlarmA PrivilegedServiceAuditAlarm; 2747 + alias ReadEventLogA ReadEventLog; 2748 + alias RegisterEventSourceA RegisterEventSource; 2749 + alias ReportEventA ReportEvent; 2750 + alias SetFileSecurityA SetFileSecurity; 2751 + alias UpdateResourceA UpdateResource; 2731 2752 2732 - static if (_WIN32_WINDOWS >= 0x410) { 2733 - alias CreateWaitableTimerA CreateWaitableTimer; 2734 - alias GetFileAttributesExA GetFileAttributesEx; 2735 - alias GetLongPathNameA GetLongPathName; 2736 - alias QueryDosDeviceA QueryDosDevice; 2753 + static if (_WIN32_WINNT >= 0x500) { 2754 + alias CreateFileMappingA CreateFileMapping; 2755 + alias CreateHardLinkA CreateHardLink; 2756 + alias CreateJobObjectA CreateJobObject; 2757 + alias DeleteVolumeMountPointA DeleteVolumeMountPoint; 2758 + alias DnsHostnameToComputerNameA DnsHostnameToComputerName; 2759 + alias EncryptFileA EncryptFile; 2760 + alias FileEncryptionStatusA FileEncryptionStatus; 2761 + alias FindFirstVolumeA FindFirstVolume; 2762 + alias FindFirstVolumeMountPointA FindFirstVolumeMountPoint; 2763 + alias FindNextVolumeA FindNextVolume; 2764 + alias FindNextVolumeMountPointA FindNextVolumeMountPoint; 2765 + alias GetModuleHandleExA GetModuleHandleEx; 2766 + alias GetSystemWindowsDirectoryA GetSystemWindowsDirectory; 2767 + alias GetVolumeNameForVolumeMountPointA GetVolumeNameForVolumeMountPoint; 2768 + alias GetVolumePathNameA GetVolumePathName; 2769 + alias OpenFileMappingA OpenFileMapping; 2770 + alias ReplaceFileA ReplaceFile; 2771 + alias SetVolumeMountPointA SetVolumeMountPoint; 2772 + alias VerifyVersionInfoA VerifyVersionInfo; 2737 2773 } 2738 2774 2739 - static if (_WIN32_WINNT_ONLY) { 2740 - alias HW_PROFILE_INFOA HW_PROFILE_INFO; 2741 - alias AccessCheckAndAuditAlarmA AccessCheckAndAuditAlarm; 2742 - alias BackupEventLogA BackupEventLog; 2743 - alias ClearEventLogA ClearEventLog; 2744 - alias CreateNamedPipeA CreateNamedPipe; 2745 - alias CreateProcessAsUserA CreateProcessAsUser; 2746 - alias DefineDosDeviceA DefineDosDevice; 2747 - alias FindFirstFileExA FindFirstFileEx; 2748 - alias GetBinaryTypeA GetBinaryType; 2749 - alias GetCompressedFileSizeA GetCompressedFileSize; 2750 - alias GetFileSecurityA GetFileSecurity; 2751 - alias LogonUserA LogonUser; 2752 - alias LookupAccountNameA LookupAccountName; 2753 - alias LookupAccountSidA LookupAccountSid; 2754 - alias LookupPrivilegeDisplayNameA LookupPrivilegeDisplayName; 2755 - alias LookupPrivilegeNameA LookupPrivilegeName; 2756 - alias LookupPrivilegeValueA LookupPrivilegeValue; 2757 - alias MoveFileExA MoveFileEx; 2758 - alias ObjectCloseAuditAlarmA ObjectCloseAuditAlarm; 2759 - alias ObjectDeleteAuditAlarmA ObjectDeleteAuditAlarm; 2760 - alias ObjectOpenAuditAlarmA ObjectOpenAuditAlarm; 2761 - alias ObjectPrivilegeAuditAlarmA ObjectPrivilegeAuditAlarm; 2762 - alias OpenBackupEventLogA OpenBackupEventLog; 2763 - alias OpenEventLogA OpenEventLog; 2764 - alias PrivilegedServiceAuditAlarmA PrivilegedServiceAuditAlarm; 2765 - alias ReadEventLogA ReadEventLog; 2766 - alias RegisterEventSourceA RegisterEventSource; 2767 - alias ReportEventA ReportEvent; 2768 - alias SetFileSecurityA SetFileSecurity; 2769 - alias UpdateResourceA UpdateResource; 2775 + static if (_WIN32_WINNT >= 0x501) { 2776 + alias ACTCTXA ACTCTX; 2777 + alias CheckNameLegalDOS8Dot3A CheckNameLegalDOS8Dot3; 2778 + alias CreateActCtxA CreateActCtx; 2779 + alias FindActCtxSectionStringA FindActCtxSectionString; 2780 + alias GetSystemWow64DirectoryA GetSystemWow64Directory; 2781 + alias GetVolumePathNamesForVolumeNameA GetVolumePathNamesForVolumeName; 2782 + alias SetFileShortNameA SetFileShortName; 2783 + } 2770 2784 2771 - static if (_WIN32_WINNT >= 0x500) { 2772 - alias CreateFileMappingA CreateFileMapping; 2773 - alias CreateHardLinkA CreateHardLink; 2774 - alias CreateJobObjectA CreateJobObject; 2775 - alias DeleteVolumeMountPointA DeleteVolumeMountPoint; 2776 - alias DnsHostnameToComputerNameA DnsHostnameToComputerName; 2777 - alias EncryptFileA EncryptFile; 2778 - alias FileEncryptionStatusA FileEncryptionStatus; 2779 - alias FindFirstVolumeA FindFirstVolume; 2780 - alias FindFirstVolumeMountPointA FindFirstVolumeMountPoint; 2781 - alias FindNextVolumeA FindNextVolume; 2782 - alias FindNextVolumeMountPointA FindNextVolumeMountPoint; 2783 - alias GetModuleHandleExA GetModuleHandleEx; 2784 - alias GetSystemWindowsDirectoryA GetSystemWindowsDirectory; 2785 - alias GetVolumeNameForVolumeMountPointA GetVolumeNameForVolumeMountPoint; 2786 - alias GetVolumePathNameA GetVolumePathName; 2787 - alias OpenFileMappingA OpenFileMapping; 2788 - alias ReplaceFileA ReplaceFile; 2789 - alias SetVolumeMountPointA SetVolumeMountPoint; 2790 - alias VerifyVersionInfoA VerifyVersionInfo; 2791 - } 2792 - 2793 - static if (_WIN32_WINNT >= 0x501) { 2794 - alias ACTCTXA ACTCTX; 2795 - alias CheckNameLegalDOS8Dot3A CheckNameLegalDOS8Dot3; 2796 - alias CreateActCtxA CreateActCtx; 2797 - alias FindActCtxSectionStringA FindActCtxSectionString; 2798 - alias GetSystemWow64DirectoryA GetSystemWow64Directory; 2799 - alias GetVolumePathNamesForVolumeNameA GetVolumePathNamesForVolumeName; 2800 - alias SetFileShortNameA SetFileShortName; 2801 - } 2802 - 2803 - static if (_WIN32_WINNT >= 0x502) { 2804 - alias GetDllDirectoryA GetDllDirectory; 2805 - alias SetDllDirectoryA SetDllDirectory; 2806 - alias SetFirmwareEnvironmentVariableA SetFirmwareEnvironmentVariable; 2807 - } 2785 + static if (_WIN32_WINNT >= 0x502) { 2786 + alias GetDllDirectoryA GetDllDirectory; 2787 + alias SetDllDirectoryA SetDllDirectory; 2788 + alias SetFirmwareEnvironmentVariableA SetFirmwareEnvironmentVariable; 2808 2789 } 2809 2790 } 2810 2791 2811 2792 alias STARTUPINFO* LPSTARTUPINFO; 2812 2793 alias WIN32_FIND_DATA* LPWIN32_FIND_DATA; 2813 2794 2814 -static if (_WIN32_WINNT_ONLY) { 2815 - alias HW_PROFILE_INFO* LPHW_PROFILE_INFO; 2795 +alias HW_PROFILE_INFO* LPHW_PROFILE_INFO; 2816 2796 2817 - static if (_WIN32_WINNT >= 0x501) { 2818 - alias ACTCTX* PACTCTX, PCACTCTX; 2819 - } 2797 +static if (_WIN32_WINNT >= 0x501) { 2798 + alias ACTCTX* PACTCTX, PCACTCTX; 2820 2799 }

Modified src/win32/winber.d from [4ba5ee97ba871a5e] to [5a860f3915f03be8].

50 50 LBER_DEFAULT = -1, 51 51 LBER_USE_DER = 1; 52 52 53 53 /* FIXME: In MinGW, these are WINBERAPI == DECLSPEC_IMPORT. Linkage 54 54 * attribute? 55 55 */ 56 56 extern (C) { 57 - BerElement* ber_init(CPtr!(BerValue)); 58 - int ber_printf(BerElement*, CPtr!(char), ...); 57 + BerElement* ber_init(const(BerValue)*); 58 + int ber_printf(BerElement*, const(char)*, ...); 59 59 int ber_flatten(BerElement*, BerValue**); 60 - ber_tag_t ber_scanf(BerElement*, CPtr!(char), ...); 60 + ber_tag_t ber_scanf(BerElement*, const(char)*, ...); 61 61 ber_tag_t ber_peek_tag(BerElement*, ber_len_t*); 62 62 ber_tag_t ber_skip_tag(BerElement*, ber_len_t*); 63 63 ber_tag_t ber_first_element(BerElement*, ber_len_t*, char**); 64 64 ber_tag_t ber_next_element(BerElement*, ber_len_t*, char*); 65 65 void ber_bvfree(BerValue*); 66 66 void ber_bvecfree(BerValue**); 67 67 void ber_free(BerElement*, int); 68 68 BerValue* ber_bvdup(BerValue*); 69 69 BerElement* ber_alloc_t(int); 70 70 }

Modified src/win32/wincon.d from [a1d2dfcf9ddedace] to [418f11163a21e063].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.wincon; 11 -pragma(lib, "kernel32.lib"); 11 +pragma(lib, "kernel32"); 12 12 13 13 private import win32.w32api, win32.windef; 14 14 15 15 // FIXME: clean up Windows version support 16 16 17 17 enum { 18 18 FOREGROUND_BLUE = 1, ................................................................................ 21 21 FOREGROUND_INTENSITY = 8, 22 22 BACKGROUND_BLUE = 16, 23 23 BACKGROUND_GREEN = 32, 24 24 BACKGROUND_RED = 64, 25 25 BACKGROUND_INTENSITY = 128 26 26 } 27 27 28 -static if (_WIN32_WINNT >= 0x0501) { 28 +static if (_WIN32_WINNT >= 0x501) { 29 29 enum { 30 30 CONSOLE_FULLSCREEN_MODE = 1, 31 31 CONSOLE_WINDOWED_MODE = 0 32 32 } 33 33 } 34 34 35 35 enum { ................................................................................ 205 205 BOOL ReadConsoleInputA(HANDLE, PINPUT_RECORD, DWORD, PDWORD); 206 206 BOOL ReadConsoleInputW(HANDLE, PINPUT_RECORD, DWORD, PDWORD); 207 207 BOOL ReadConsoleOutputAttribute(HANDLE, LPWORD, DWORD, COORD, LPDWORD); 208 208 BOOL ReadConsoleOutputCharacterA(HANDLE, LPSTR, DWORD, COORD, PDWORD); 209 209 BOOL ReadConsoleOutputCharacterW(HANDLE, LPWSTR, DWORD, COORD, PDWORD); 210 210 BOOL ReadConsoleOutputA(HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT); 211 211 BOOL ReadConsoleOutputW(HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT); 212 -BOOL ScrollConsoleScreenBufferA(HANDLE, CPtr!(SMALL_RECT), CPtr!(SMALL_RECT), COORD, CPtr!(CHAR_INFO)); 213 -BOOL ScrollConsoleScreenBufferW(HANDLE, CPtr!(SMALL_RECT), CPtr!(SMALL_RECT), COORD, CPtr!(CHAR_INFO)); 212 +BOOL ScrollConsoleScreenBufferA(HANDLE, const(SMALL_RECT)*, const(SMALL_RECT)*, COORD, const(CHAR_INFO)*); 213 +BOOL ScrollConsoleScreenBufferW(HANDLE, const(SMALL_RECT)*, const(SMALL_RECT)*, COORD, const(CHAR_INFO)*); 214 214 BOOL SetConsoleActiveScreenBuffer(HANDLE); 215 215 BOOL SetConsoleCP(UINT); 216 216 BOOL SetConsoleCtrlHandler(PHANDLER_ROUTINE, BOOL); 217 -BOOL SetConsoleCursorInfo(HANDLE, CPtr!(CONSOLE_CURSOR_INFO)); 217 +BOOL SetConsoleCursorInfo(HANDLE, const(CONSOLE_CURSOR_INFO)*); 218 218 BOOL SetConsoleCursorPosition(HANDLE, COORD); 219 219 220 220 221 -static if (_WIN32_WINNT >= 0x0500) { 221 +static if (_WIN32_WINNT >= 0x500) { 222 222 BOOL GetConsoleDisplayMode(LPDWORD); 223 223 HWND GetConsoleWindow(); 224 224 } 225 225 226 -static if (_WIN32_WINNT >= 0x0501) { 226 +static if (_WIN32_WINNT >= 0x501) { 227 227 BOOL AttachConsole(DWORD); 228 228 BOOL SetConsoleDisplayMode(HANDLE, DWORD, PCOORD); 229 229 const DWORD ATTACH_PARENT_PROCESS = cast(DWORD)-1; 230 230 } 231 231 232 232 BOOL SetConsoleMode(HANDLE, DWORD); 233 233 BOOL SetConsoleOutputCP(UINT); 234 234 BOOL SetConsoleScreenBufferSize(HANDLE, COORD); 235 235 BOOL SetConsoleTextAttribute(HANDLE, WORD); 236 236 BOOL SetConsoleTitleA(LPCSTR); 237 237 BOOL SetConsoleTitleW(LPCWSTR); 238 -BOOL SetConsoleWindowInfo(HANDLE, BOOL, CPtr!(SMALL_RECT)); 238 +BOOL SetConsoleWindowInfo(HANDLE, BOOL, const(SMALL_RECT)*); 239 239 BOOL WriteConsoleA(HANDLE, PCVOID, DWORD, PDWORD, PVOID); 240 240 BOOL WriteConsoleW(HANDLE, PCVOID, DWORD, PDWORD, PVOID); 241 -BOOL WriteConsoleInputA(HANDLE, CPtr!(INPUT_RECORD), DWORD, PDWORD); 242 -BOOL WriteConsoleInputW(HANDLE, CPtr!(INPUT_RECORD), DWORD, PDWORD); 243 -BOOL WriteConsoleOutputA(HANDLE, CPtr!(CHAR_INFO), COORD, COORD, PSMALL_RECT); 244 -BOOL WriteConsoleOutputW(HANDLE, CPtr!(CHAR_INFO), COORD, COORD, PSMALL_RECT); 245 -BOOL WriteConsoleOutputAttribute(HANDLE, CPtr!(WORD), DWORD, COORD, PDWORD); 241 +BOOL WriteConsoleInputA(HANDLE, const(INPUT_RECORD)*, DWORD, PDWORD); 242 +BOOL WriteConsoleInputW(HANDLE, const(INPUT_RECORD)*, DWORD, PDWORD); 243 +BOOL WriteConsoleOutputA(HANDLE, const(CHAR_INFO)*, COORD, COORD, PSMALL_RECT); 244 +BOOL WriteConsoleOutputW(HANDLE, const(CHAR_INFO)*, COORD, COORD, PSMALL_RECT); 245 +BOOL WriteConsoleOutputAttribute(HANDLE, const(WORD)*, DWORD, COORD, PDWORD); 246 246 BOOL WriteConsoleOutputCharacterA(HANDLE, LPCSTR, DWORD, COORD, PDWORD); 247 247 BOOL WriteConsoleOutputCharacterW(HANDLE, LPCWSTR, DWORD, COORD, PDWORD); 248 248 249 249 version (Unicode) { 250 250 alias FillConsoleOutputCharacterW FillConsoleOutputCharacter; 251 251 alias GetConsoleTitleW GetConsoleTitle; 252 252 alias PeekConsoleInputW PeekConsoleInput;

Modified src/win32/wincrypt.d from [01dc6f0e64f6c54b] to [56b59d671f703037].

29 29 MS_DEF_DSS_DH_PROV 30 30 = "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider", 31 31 MS_ENH_DSS_DH_PROV 32 32 = "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider", 33 33 MS_DEF_DH_SCHANNEL_PROV = "Microsoft DH SChannel Cryptographic Provider", 34 34 MS_SCARD_PROV = "Microsoft Base Smart Card Crypto Provider"; 35 35 36 -static if (WINVER > 0x501) { 36 +static if (_WIN32_WINNT > 0x501) { 37 37 const TCHAR[] MS_ENH_RSA_AES_PROV 38 38 = "Microsoft Enhanced RSA and AES Cryptographic Provider"; 39 -} else static if (WINVER == 0x501) { 39 +} else static if (_WIN32_WINNT == 0x501) { 40 40 const TCHAR[] MS_ENH_RSA_AES_PROV 41 41 = "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"; 42 42 } 43 43 44 44 ALG_ID GET_ALG_CLASS(ALG_ID x) { return x & 0xE000; } 45 45 ALG_ID GET_ALG_TYPE (ALG_ID x) { return x & 0x1E00; } 46 46 ALG_ID GET_ALG_SID (ALG_ID x) { return x & 0x01FF; } ................................................................................ 132 132 CALG_TLS1PRF = ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_TLS1PRF, 133 133 CALG_AES_128 = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_128, 134 134 CALG_AES_192 = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_192, 135 135 CALG_AES_256 = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_256, 136 136 CALG_AES = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES, 137 137 } 138 138 139 -/+ 140 -#define CRYPT_VERIFYCONTEXT 0xF0000000 141 -#define CRYPT_NEWKEYSET 8 142 -#define CRYPT_DELETEKEYSET 16 143 -#define CRYPT_MACHINE_KEYSET 32 144 -#define CRYPT_SILENT 64 145 -#define CRYPT_EXPORTABLE 1 146 -#define CRYPT_USER_PROTECTED 2 147 -#define CRYPT_CREATE_SALT 4 148 -#define CRYPT_UPDATE_KEY 8 149 -#define SIMPLEBLOB 1 150 -#define PUBLICKEYBLOB 6 151 -#define PRIVATEKEYBLOB 7 152 -#define PLAINTEXTKEYBLOB 8 153 -#define OPAQUEKEYBLOB 9 154 -#define PUBLICKEYBLOBEX 10 155 -#define SYMMETRICWRAPKEYBLOB 11 156 -#define AT_KEYEXCHANGE 1 157 -#define AT_SIGNATURE 2 158 -#define CRYPT_USERDATA 1 159 -#define PKCS5_PADDING 1 160 -#define CRYPT_MODE_CBC 1 161 -#define CRYPT_MODE_ECB 2 162 -#define CRYPT_MODE_OFB 3 163 -#define CRYPT_MODE_CFB 4 164 -#define CRYPT_MODE_CTS 5 165 -#define CRYPT_MODE_CBCI 6 166 -#define CRYPT_MODE_CFBP 7 167 -#define CRYPT_MODE_OFBP 8 168 -#define CRYPT_MODE_CBCOFM 9 169 -#define CRYPT_MODE_CBCOFMI 10 170 -#define CRYPT_ENCRYPT 1 171 -#define CRYPT_DECRYPT 2 172 -#define CRYPT_EXPORT 4 173 -#define CRYPT_READ 8 174 -#define CRYPT_WRITE 16 175 -#define CRYPT_MAC 32 176 -#define HP_ALGID 1 177 -#define HP_HASHVAL 2 178 -#define HP_HASHSIZE 4 179 -#define HP_HMAC_INFO 5 180 -#define CRYPT_FAILED FALSE 181 -#define CRYPT_SUCCEED TRUE 182 -#define RCRYPT_SUCCEEDED(r) ((r)==CRYPT_SUCCEED) 183 -#define RCRYPT_FAILED(r) ((r)==CRYPT_FAILED) 184 -#define PP_ENUMALGS 1 185 -#define PP_ENUMCONTAINERS 2 186 -#define PP_IMPTYPE 3 187 -#define PP_NAME 4 188 -#define PP_VERSION 5 189 -#define PP_CONTAINER 6 190 -#define PP_CHANGE_PASSWORD 7 191 -#define PP_KEYSET_SEC_DESCR 8 192 -#define PP_CERTCHAIN 9 193 -#define PP_KEY_TYPE_SUBTYPE 10 194 -#define PP_PROVTYPE 16 195 -#define PP_KEYSTORAGE 17 196 -#define PP_APPLI_CERT 18 197 -#define PP_SYM_KEYSIZE 19 198 -#define PP_SESSION_KEYSIZE 20 199 -#define PP_UI_PROMPT 21 200 -#define PP_ENUMALGS_EX 22 201 -#define PP_ENUMMANDROOTS 25 202 -#define PP_ENUMELECTROOTS 26 203 -#define PP_KEYSET_TYPE 27 204 -#define PP_ADMIN_PIN 31 205 -#define PP_KEYEXCHANGE_PIN 32 206 -#define PP_SIGNATURE_PIN 33 207 -#define PP_SIG_KEYSIZE_INC 34 208 -#define PP_KEYX_KEYSIZE_INC 35 209 -#define PP_UNIQUE_CONTAINER 36 210 -#define PP_SGC_INFO 37 211 -#define PP_USE_HARDWARE_RNG 38 212 -#define PP_KEYSPEC 39 213 -#define PP_ENUMEX_SIGNING_PROT 40 214 -#define CRYPT_FIRST 1 215 -#define CRYPT_NEXT 2 216 -#define CRYPT_IMPL_HARDWARE 1 217 -#define CRYPT_IMPL_SOFTWARE 2 218 -#define CRYPT_IMPL_MIXED 3 219 -#define CRYPT_IMPL_UNKNOWN 4 220 -#define PROV_RSA_FULL 1 221 -#define PROV_RSA_SIG 2 222 -#define PROV_DSS 3 223 -#define PROV_FORTEZZA 4 224 -#define PROV_MS_MAIL 5 225 -#define PROV_SSL 6 226 -#define PROV_STT_MER 7 227 -#define PROV_STT_ACQ 8 228 -#define PROV_STT_BRND 9 229 -#define PROV_STT_ROOT 10 230 -#define PROV_STT_ISS 11 231 -#define PROV_RSA_SCHANNEL 12 232 -#define PROV_DSS_DH 13 233 -#define PROV_EC_ECDSA_SIG 14 234 -#define PROV_EC_ECNRA_SIG 15 235 -#define PROV_EC_ECDSA_FULL 16 236 -#define PROV_EC_ECNRA_FULL 17 237 -#define PROV_DH_SCHANNEL 18 238 -#define PROV_SPYRUS_LYNKS 20 239 -#define PROV_RNG 21 240 -#define PROV_INTEL_SEC 22 241 -#define PROV_RSA_AES 24 242 -#define MAXUIDLEN 64 243 -#define CUR_BLOB_VERSION 2 244 -#define X509_ASN_ENCODING 1 245 -#define PKCS_7_ASN_ENCODING 65536 246 -#define CERT_V1 0 247 -#define CERT_V2 1 248 -#define CERT_V3 2 249 -#define CERT_E_CHAINING (-2146762486) 250 -#define CERT_E_CN_NO_MATCH (-2146762481) 251 -#define CERT_E_EXPIRED (-2146762495) 252 -#define CERT_E_PURPOSE (-2146762490) 253 -#define CERT_E_REVOCATION_FAILURE (-2146762482) 254 -#define CERT_E_REVOKED (-2146762484) 255 -#define CERT_E_ROLE (-2146762493) 256 -#define CERT_E_UNTRUSTEDROOT (-2146762487) 257 -#define CERT_E_UNTRUSTEDTESTROOT (-2146762483) 258 -#define CERT_E_VALIDITYPERIODNESTING (-2146762494) 259 -#define CERT_E_WRONG_USAGE (-2146762480) 260 -#define CERT_E_PATHLENCONST (-2146762492) 261 -#define CERT_E_CRITICAL (-2146762491) 262 -#define CERT_E_ISSUERCHAINING (-2146762489) 263 -#define CERT_E_MALFORMED (-2146762488) 264 -#define CRYPT_E_REVOCATION_OFFLINE (-2146885613) 265 -#define CRYPT_E_REVOKED (-2146885616) 266 -#define TRUST_E_BASIC_CONSTRAINTS (-2146869223) 267 -#define TRUST_E_CERT_SIGNATURE (-2146869244) 268 -#define TRUST_E_FAIL (-2146762485) 269 -#define CERT_TRUST_NO_ERROR 0 270 -#define CERT_TRUST_IS_NOT_TIME_VALID 1 271 -#define CERT_TRUST_IS_NOT_TIME_NESTED 2 272 -#define CERT_TRUST_IS_REVOKED 4 273 -#define CERT_TRUST_IS_NOT_SIGNATURE_VALID 8 274 -#define CERT_TRUST_IS_NOT_VALID_FOR_USAGE 16 275 -#define CERT_TRUST_IS_UNTRUSTED_ROOT 32 276 -#define CERT_TRUST_REVOCATION_STATUS_UNKNOWN 64 277 -#define CERT_TRUST_IS_CYCLIC 128 278 -#define CERT_TRUST_IS_PARTIAL_CHAIN 65536 279 -#define CERT_TRUST_CTL_IS_NOT_TIME_VALID 131072 280 -#define CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID 262144 281 -#define CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE 524288 282 -#define CERT_TRUST_HAS_EXACT_MATCH_ISSUER 1 283 -#define CERT_TRUST_HAS_KEY_MATCH_ISSUER 2 284 -#define CERT_TRUST_HAS_NAME_MATCH_ISSUER 4 285 -#define CERT_TRUST_IS_SELF_SIGNED 8 286 -#define CERT_TRUST_IS_COMPLEX_CHAIN 65536 287 -#define CERT_CHAIN_POLICY_BASE ((LPCSTR) 1) 288 -#define CERT_CHAIN_POLICY_AUTHENTICODE ((LPCSTR) 2) 289 -#define CERT_CHAIN_POLICY_AUTHENTICODE_TS ((LPCSTR) 3) 290 -#define CERT_CHAIN_POLICY_SSL ((LPCSTR) 4) 291 -#define CERT_CHAIN_POLICY_BASIC_CONSTRAINTS ((LPCSTR) 5) 292 -#define CERT_CHAIN_POLICY_NT_AUTH ((LPCSTR) 6) 293 -#define USAGE_MATCH_TYPE_AND 0 294 -#define USAGE_MATCH_TYPE_OR 1 295 -#define CERT_SIMPLE_NAME_STR 1 296 -#define CERT_OID_NAME_STR 2 297 -#define CERT_X500_NAME_STR 3 298 -#define CERT_NAME_STR_SEMICOLON_FLAG 1073741824 299 -#define CERT_NAME_STR_CRLF_FLAG 134217728 300 -#define CERT_NAME_STR_NO_PLUS_FLAG 536870912 301 -#define CERT_NAME_STR_NO_QUOTING_FLAG 268435456 302 -#define CERT_NAME_STR_REVERSE_FLAG 33554432 303 -#define CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG 131072 304 -#define CERT_FIND_ANY 0 305 -#define CERT_FIND_CERT_ID 1048576 306 -#define CERT_FIND_CTL_USAGE 655360 307 -#define CERT_FIND_ENHKEY_USAGE 655360 308 -#define CERT_FIND_EXISTING 851968 309 -#define CERT_FIND_HASH 65536 310 -#define CERT_FIND_ISSUER_ATTR 196612 311 -#define CERT_FIND_ISSUER_NAME 131076 312 -#define CERT_FIND_ISSUER_OF 786432 313 -#define CERT_FIND_KEY_IDENTIFIER 983040 314 -#define CERT_FIND_KEY_SPEC 589824 315 -#define CERT_FIND_MD5_HASH 262144 316 -#define CERT_FIND_PROPERTY 327680 317 -#define CERT_FIND_PUBLIC_KEY 393216 318 -#define CERT_FIND_SHA1_HASH 65536 319 -#define CERT_FIND_SIGNATURE_HASH 917504 320 -#define CERT_FIND_SUBJECT_ATTR 196615 321 -#define CERT_FIND_SUBJECT_CERT 720896 322 -#define CERT_FIND_SUBJECT_NAME 131079 323 -#define CERT_FIND_SUBJECT_STR_A 458759 324 -#define CERT_FIND_SUBJECT_STR_W 524295 325 -#define CERT_FIND_ISSUER_STR_A 458756 326 -#define CERT_FIND_ISSUER_STR_W 524292 327 -#define CERT_FIND_OR_ENHKEY_USAGE_FLAG 16 328 -#define CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG 1 329 -#define CERT_FIND_NO_ENHKEY_USAGE_FLAG 8 330 -#define CERT_FIND_VALID_ENHKEY_USAGE_FLAG 32 331 -#define CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG 2 332 -#define CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG 2 333 -#define CERT_UNICODE_IS_RDN_ATTRS_FLAG 1 334 -#define CERT_CHAIN_FIND_BY_ISSUER 1 335 -#define CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG 1 336 -#define CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG 2 337 -#define CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG 32768 338 -#define CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG 4 339 -#define CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG 8 340 -#define CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG 16384 341 -#define CERT_STORE_PROV_SYSTEM 10 342 -#define CERT_SYSTEM_STORE_LOCAL_MACHINE 131072 343 -#define szOID_PKIX_KP_SERVER_AUTH "4235600" 344 -#define szOID_SERVER_GATED_CRYPTO "4235658" 345 -#define szOID_SGC_NETSCAPE "2.16.840.1.113730.4.1" 346 -#define szOID_PKIX_KP_CLIENT_AUTH "1.3.6.1.5.5.7.3.2" 347 -#define CRYPT_NOHASHOID 0x00000001 348 -#define CRYPT_NO_SALT 0x10 349 -#define CRYPT_PREGEN 0x40 350 -#define CRYPT_RECIPIENT 0x10 351 -#define CRYPT_INITIATOR 0x40 352 -#define CRYPT_ONLINE 0x80 353 -#define CRYPT_SF 0x100 354 -#define CRYPT_CREATE_IV 0x200 355 -#define CRYPT_KEK 0x400 356 -#define CRYPT_DATA_KEY 0x800 357 -#define CRYPT_VOLATILE 0x1000 358 -#define CRYPT_SGCKEY 0x2000 359 -#define KP_IV 0x00000001 360 -#define KP_SALT 0x00000002 361 -#define KP_PADDING 0x00000003 362 -#define KP_MODE 0x00000004 363 -#define KP_MODE_BITS 0x00000005 364 -#define KP_PERMISSIONS 0x00000006 365 -#define KP_ALGID 0x00000007 366 -#define KP_BLOCKLEN 0x00000008 367 -#define KP_KEYLEN 0x00000009 368 -#define KP_SALT_EX 0x0000000a 369 -#define KP_P 0x0000000b 370 -#define KP_G 0x0000000c 371 -#define KP_Q 0x0000000d 372 -#define KP_X 0x0000000e 373 -#define KP_Y 0x0000000f 374 -#define KP_RA 0x00000010 375 -#define KP_RB 0x00000011 376 -#define KP_INFO 0x00000012 377 -#define KP_EFFECTIVE_KEYLEN 0x00000013 378 -#define KP_SCHANNEL_ALG 0x00000014 379 -#define KP_PUB_PARAMS 0x00000027 380 -#define CRYPT_FLAG_PCT1 0x0001 381 -#define CRYPT_FLAG_SSL2 0x0002 382 -#define CRYPT_FLAG_SSL3 0x0004 383 -#define CRYPT_FLAG_TLS1 0x0008 384 -#define CRYPT_FLAG_IPSEC 0x0010 385 -#define CRYPT_FLAG_SIGNING 0x0020 386 -#define SCHANNEL_MAC_KEY 0x00000000 387 -#define SCHANNEL_ENC_KEY 0x00000001 388 -#define INTERNATIONAL_USAGE 0x00000001 389 -+/ 139 +enum { 140 + CRYPT_VERIFYCONTEXT = 0xF0000000, 141 +} 142 + 143 +enum { 144 + CRYPT_NEWKEYSET = 8, 145 + CRYPT_DELETEKEYSET = 16, 146 + CRYPT_MACHINE_KEYSET = 32, 147 + CRYPT_SILENT = 64, 148 +} 149 + 150 +enum { 151 + CRYPT_EXPORTABLE = 1, 152 + CRYPT_USER_PROTECTED = 2, 153 + CRYPT_CREATE_SALT = 4, 154 + CRYPT_UPDATE_KEY = 8, 155 +} 156 + 157 +enum { 158 + SIMPLEBLOB = 1, 159 + PUBLICKEYBLOB = 6, 160 + PRIVATEKEYBLOB = 7, 161 + PLAINTEXTKEYBLOB = 8, 162 + OPAQUEKEYBLOB = 9, 163 + PUBLICKEYBLOBEX = 10, 164 + SYMMETRICWRAPKEYBLOB = 11, 165 +} 166 + 167 +enum { 168 + AT_KEYEXCHANGE = 1, 169 + AT_SIGNATURE = 2, 170 +} 171 + 172 +enum { 173 + CRYPT_USERDATA = 1, 174 +} 175 + 176 +enum { 177 + PKCS5_PADDING = 1, 178 +} 179 + 180 +enum { 181 + CRYPT_MODE_CBC = 1, 182 + CRYPT_MODE_ECB = 2, 183 + CRYPT_MODE_OFB = 3, 184 + CRYPT_MODE_CFB = 4, 185 + CRYPT_MODE_CTS = 5, 186 + CRYPT_MODE_CBCI = 6, 187 + CRYPT_MODE_CFBP = 7, 188 + CRYPT_MODE_OFBP = 8, 189 + CRYPT_MODE_CBCOFM = 9, 190 + CRYPT_MODE_CBCOFMI = 10, 191 +} 192 + 193 +enum { 194 + CRYPT_ENCRYPT = 1, 195 + CRYPT_DECRYPT = 2, 196 + CRYPT_EXPORT = 4, 197 + CRYPT_READ = 8, 198 + CRYPT_WRITE = 16, 199 + CRYPT_MAC = 32, 200 +} 201 + 202 +enum { 203 + HP_ALGID = 1, 204 + HP_HASHVAL = 2, 205 + HP_HASHSIZE = 4, 206 + HP_HMAC_INFO = 5, 207 +} 208 + 209 +enum { 210 + CRYPT_FAILED = FALSE, 211 + CRYPT_SUCCEED = TRUE, 212 +} 213 + 214 +bool RCRYPT_SUCCEEDED(BOOL r) { return r==CRYPT_SUCCEED; } 215 +bool RCRYPT_FAILED(BOOL r) { return r==CRYPT_FAILED; } 216 + 217 +enum { 218 + PP_ENUMALGS = 1, 219 + PP_ENUMCONTAINERS = 2, 220 + PP_IMPTYPE = 3, 221 + PP_NAME = 4, 222 + PP_VERSION = 5, 223 + PP_CONTAINER = 6, 224 + PP_CHANGE_PASSWORD = 7, 225 + PP_KEYSET_SEC_DESCR = 8, 226 + PP_CERTCHAIN = 9, 227 + PP_KEY_TYPE_SUBTYPE = 10, 228 + PP_PROVTYPE = 16, 229 + PP_KEYSTORAGE = 17, 230 + PP_APPLI_CERT = 18, 231 + PP_SYM_KEYSIZE = 19, 232 + PP_SESSION_KEYSIZE = 20, 233 + PP_UI_PROMPT = 21, 234 + PP_ENUMALGS_EX = 22, 235 + PP_ENUMMANDROOTS = 25, 236 + PP_ENUMELECTROOTS = 26, 237 + PP_KEYSET_TYPE = 27, 238 + PP_ADMIN_PIN = 31, 239 + PP_KEYEXCHANGE_PIN = 32, 240 + PP_SIGNATURE_PIN = 33, 241 + PP_SIG_KEYSIZE_INC = 34, 242 + PP_KEYX_KEYSIZE_INC = 35, 243 + PP_UNIQUE_CONTAINER = 36, 244 + PP_SGC_INFO = 37, 245 + PP_USE_HARDWARE_RNG = 38, 246 + PP_KEYSPEC = 39, 247 + PP_ENUMEX_SIGNING_PROT = 40, 248 +} 249 + 250 +enum { 251 + CRYPT_FIRST = 1, 252 + CRYPT_NEXT = 2, 253 +} 254 + 255 +enum { 256 + CRYPT_IMPL_HARDWARE = 1, 257 + CRYPT_IMPL_SOFTWARE = 2, 258 + CRYPT_IMPL_MIXED = 3, 259 + CRYPT_IMPL_UNKNOWN = 4, 260 +} 261 + 262 +enum { 263 + PROV_RSA_FULL = 1, 264 + PROV_RSA_SIG = 2, 265 + PROV_DSS = 3, 266 + PROV_FORTEZZA = 4, 267 + PROV_MS_MAIL = 5, 268 + PROV_SSL = 6, 269 + PROV_STT_MER = 7, 270 + PROV_STT_ACQ = 8, 271 + PROV_STT_BRND = 9, 272 + PROV_STT_ROOT = 10, 273 + PROV_STT_ISS = 11, 274 + PROV_RSA_SCHANNEL = 12, 275 + PROV_DSS_DH = 13, 276 + PROV_EC_ECDSA_SIG = 14, 277 + PROV_EC_ECNRA_SIG = 15, 278 + PROV_EC_ECDSA_FULL = 16, 279 + PROV_EC_ECNRA_FULL = 17, 280 + PROV_DH_SCHANNEL = 18, 281 + PROV_SPYRUS_LYNKS = 20, 282 + PROV_RNG = 21, 283 + PROV_INTEL_SEC = 22, 284 + PROV_RSA_AES = 24, 285 + MAXUIDLEN = 64, 286 +} 287 + 288 +enum { 289 + CUR_BLOB_VERSION = 2, 290 +} 291 + 292 +enum { 293 + X509_ASN_ENCODING = 1, 294 + PKCS_7_ASN_ENCODING = 65536, 295 +} 296 + 297 +enum { 298 + CERT_V1 = 0, 299 + CERT_V2 = 1, 300 + CERT_V3 = 2, 301 +} 302 + 303 +enum { 304 + CERT_E_CHAINING = (-2146762486), 305 + CERT_E_CN_NO_MATCH = (-2146762481), 306 + CERT_E_EXPIRED = (-2146762495), 307 + CERT_E_PURPOSE = (-2146762490), 308 + CERT_E_REVOCATION_FAILURE = (-2146762482), 309 + CERT_E_REVOKED = (-2146762484), 310 + CERT_E_ROLE = (-2146762493), 311 + CERT_E_UNTRUSTEDROOT = (-2146762487), 312 + CERT_E_UNTRUSTEDTESTROOT = (-2146762483), 313 + CERT_E_VALIDITYPERIODNESTING = (-2146762494), 314 + CERT_E_WRONG_USAGE = (-2146762480), 315 + CERT_E_PATHLENCONST = (-2146762492), 316 + CERT_E_CRITICAL = (-2146762491), 317 + CERT_E_ISSUERCHAINING = (-2146762489), 318 + CERT_E_MALFORMED = (-2146762488), 319 + CRYPT_E_REVOCATION_OFFLINE = (-2146885613), 320 + CRYPT_E_REVOKED = (-2146885616), 321 + TRUST_E_BASIC_CONSTRAINTS = (-2146869223), 322 + TRUST_E_CERT_SIGNATURE = (-2146869244), 323 + TRUST_E_FAIL = (-2146762485), 324 +} 325 + 326 +enum { 327 + CERT_TRUST_NO_ERROR = 0, 328 + CERT_TRUST_IS_NOT_TIME_VALID = 1, 329 + CERT_TRUST_IS_NOT_TIME_NESTED = 2, 330 + CERT_TRUST_IS_REVOKED = 4, 331 + CERT_TRUST_IS_NOT_SIGNATURE_VALID = 8, 332 + CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 16, 333 + CERT_TRUST_IS_UNTRUSTED_ROOT = 32, 334 + CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 64, 335 + CERT_TRUST_IS_CYCLIC = 128, 336 + CERT_TRUST_IS_PARTIAL_CHAIN = 65536, 337 + CERT_TRUST_CTL_IS_NOT_TIME_VALID = 131072, 338 + CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 262144, 339 + CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 524288, 340 +} 341 + 342 +enum { 343 + CERT_TRUST_HAS_EXACT_MATCH_ISSUER = 1, 344 + CERT_TRUST_HAS_KEY_MATCH_ISSUER = 2, 345 + CERT_TRUST_HAS_NAME_MATCH_ISSUER = 4, 346 + CERT_TRUST_IS_SELF_SIGNED = 8, 347 + CERT_TRUST_IS_COMPLEX_CHAIN = 65536, 348 +} 349 + 350 +enum { 351 + CERT_CHAIN_POLICY_BASE = cast(LPCSTR) 1, 352 + CERT_CHAIN_POLICY_AUTHENTICODE = cast(LPCSTR) 2, 353 + CERT_CHAIN_POLICY_AUTHENTICODE_TS = cast(LPCSTR) 3, 354 + CERT_CHAIN_POLICY_SSL = cast(LPCSTR) 4, 355 + CERT_CHAIN_POLICY_BASIC_CONSTRAINTS = cast(LPCSTR) 5, 356 + CERT_CHAIN_POLICY_NT_AUTH = cast(LPCSTR) 6, 357 +} 358 + 359 +enum { 360 + USAGE_MATCH_TYPE_AND = 0, 361 + USAGE_MATCH_TYPE_OR = 1, 362 +} 363 + 364 +enum { 365 + CERT_SIMPLE_NAME_STR = 1, 366 + CERT_OID_NAME_STR = 2, 367 + CERT_X500_NAME_STR = 3, 368 +} 369 +enum { 370 + CERT_NAME_STR_SEMICOLON_FLAG = 1073741824, 371 + CERT_NAME_STR_CRLF_FLAG = 134217728, 372 + CERT_NAME_STR_NO_PLUS_FLAG = 536870912, 373 + CERT_NAME_STR_NO_QUOTING_FLAG = 268435456, 374 + CERT_NAME_STR_REVERSE_FLAG = 33554432, 375 + CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG = 131072, 376 +} 377 + 378 +enum { 379 + CERT_FIND_ANY = 0, 380 + CERT_FIND_CERT_ID = 1048576, 381 + CERT_FIND_CTL_USAGE = 655360, 382 + CERT_FIND_ENHKEY_USAGE = 655360, 383 + CERT_FIND_EXISTING = 851968, 384 + CERT_FIND_HASH = 65536, 385 + CERT_FIND_ISSUER_ATTR = 196612, 386 + CERT_FIND_ISSUER_NAME = 131076, 387 + CERT_FIND_ISSUER_OF = 786432, 388 + CERT_FIND_KEY_IDENTIFIER = 983040, 389 + CERT_FIND_KEY_SPEC = 589824, 390 + CERT_FIND_MD5_HASH = 262144, 391 + CERT_FIND_PROPERTY = 327680, 392 + CERT_FIND_PUBLIC_KEY = 393216, 393 + CERT_FIND_SHA1_HASH = 65536, 394 + CERT_FIND_SIGNATURE_HASH = 917504, 395 + CERT_FIND_SUBJECT_ATTR = 196615, 396 + CERT_FIND_SUBJECT_CERT = 720896, 397 + CERT_FIND_SUBJECT_NAME = 131079, 398 + CERT_FIND_SUBJECT_STR_A = 458759, 399 + CERT_FIND_SUBJECT_STR_W = 524295, 400 + CERT_FIND_ISSUER_STR_A = 458756, 401 + CERT_FIND_ISSUER_STR_W = 524292, 402 +} 403 + 404 +enum { 405 + CERT_FIND_OR_ENHKEY_USAGE_FLAG = 16, 406 + CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG = 1, 407 + CERT_FIND_NO_ENHKEY_USAGE_FLAG = 8, 408 + CERT_FIND_VALID_ENHKEY_USAGE_FLAG = 32, 409 + CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG = 2, 410 +} 411 + 412 +enum { 413 + CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG = 2, 414 + CERT_UNICODE_IS_RDN_ATTRS_FLAG = 1, 415 + CERT_CHAIN_FIND_BY_ISSUER = 1, 416 +} 417 + 418 +enum { 419 + CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG = 1, 420 + CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG = 2, 421 + CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG = 4, 422 + CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG = 8, 423 + CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG = 16384, 424 + CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG = 32768, 425 +} 426 + 427 +enum { 428 + CERT_STORE_PROV_SYSTEM = 10, 429 + CERT_SYSTEM_STORE_LOCAL_MACHINE = 131072, 430 +} 431 + 432 +enum { 433 + szOID_PKIX_KP_SERVER_AUTH = "4235600", 434 + szOID_SERVER_GATED_CRYPTO = "4235658", 435 + szOID_SGC_NETSCAPE = "2.16.840.1.113730.4.1", 436 + szOID_PKIX_KP_CLIENT_AUTH = "1.3.6.1.5.5.7.3.2", 437 +} 438 + 439 +enum { 440 + CRYPT_NOHASHOID = 0x00000001, 441 + CRYPT_NO_SALT = 0x10, 442 + CRYPT_PREGEN = 0x40, 443 +} 444 + 445 +enum { 446 + CRYPT_RECIPIENT = 0x10, 447 + CRYPT_INITIATOR = 0x40, 448 + CRYPT_ONLINE = 0x80, 449 + CRYPT_SF = 0x100, 450 + CRYPT_CREATE_IV = 0x200, 451 + CRYPT_KEK = 0x400, 452 + CRYPT_DATA_KEY = 0x800, 453 + CRYPT_VOLATILE = 0x1000, 454 + CRYPT_SGCKEY = 0x2000, 455 +} 456 + 457 +enum { 458 + KP_IV = 0x00000001, 459 + KP_SALT = 0x00000002, 460 + KP_PADDING = 0x00000003, 461 + KP_MODE = 0x00000004, 462 + KP_MODE_BITS = 0x00000005, 463 + KP_PERMISSIONS = 0x00000006, 464 + KP_ALGID = 0x00000007, 465 + KP_BLOCKLEN = 0x00000008, 466 + KP_KEYLEN = 0x00000009, 467 + KP_SALT_EX = 0x0000000a, 468 + KP_P = 0x0000000b, 469 + KP_G = 0x0000000c, 470 + KP_Q = 0x0000000d, 471 + KP_X = 0x0000000e, 472 + KP_Y = 0x0000000f, 473 + KP_RA = 0x00000010, 474 + KP_RB = 0x00000011, 475 + KP_INFO = 0x00000012, 476 + KP_EFFECTIVE_KEYLEN = 0x00000013, 477 + KP_SCHANNEL_ALG = 0x00000014, 478 + KP_PUB_PARAMS = 0x00000027, 479 +} 480 + 481 +enum { 482 + CRYPT_FLAG_PCT1 = 0x0001, 483 + CRYPT_FLAG_SSL2 = 0x0002, 484 + CRYPT_FLAG_SSL3 = 0x0004, 485 + CRYPT_FLAG_TLS1 = 0x0008, 486 + CRYPT_FLAG_IPSEC = 0x0010, 487 + CRYPT_FLAG_SIGNING = 0x0020, 488 +} 489 + 490 +enum { 491 + SCHANNEL_MAC_KEY = 0x00000000, 492 + SCHANNEL_ENC_KEY = 0x00000001, 493 +} 494 + 495 +enum { 496 + INTERNATIONAL_USAGE = 0x00000001, 497 +} 498 + 390 499 391 500 alias UINT ALG_ID; 392 501 alias ULONG HCRYPTPROV, HCRYPTKEY, HCRYPTHASH; 393 502 alias PVOID HCERTSTORE, HCRYPTMSG, HCERTCHAINENGINE; 394 503 395 504 struct VTableProvStruc { 396 505 FARPROC FuncVerifyImage; ................................................................................ 484 593 struct CERT_CONTEXT { 485 594 DWORD dwCertEncodingType; 486 595 BYTE* pbCertEncoded; 487 596 DWORD cbCertEncoded; 488 597 PCERT_INFO pCertInfo; 489 598 HCERTSTORE hCertStore; 490 599 } 491 -alias CERT_CONTEXT* PCERT_CONTEXT; 492 -alias CPtr!(CERT_CONTEXT) PCCERT_CONTEXT; 600 +alias CERT_CONTEXT* PCERT_CONTEXT; 601 +alias const(CERT_CONTEXT)* PCCERT_CONTEXT; 493 602 494 603 struct CTL_USAGE { 495 604 DWORD cUsageIdentifier; 496 605 LPSTR* rgpszUsageIdentifier; 497 606 } 498 607 alias CTL_USAGE CERT_ENHKEY_USAGE; 499 608 alias CTL_USAGE* PCTRL_USAGE, PCERT_ENHKEY_USAGE; ................................................................................ 565 674 struct CRL_CONTEXT { 566 675 DWORD dwCertEncodingType; 567 676 BYTE* pbCrlEncoded; 568 677 DWORD cbCrlEncoded; 569 678 PCRL_INFO pCrlInfo; 570 679 HCERTSTORE hCertStore; 571 680 } 572 -alias CRL_CONTEXT* PCRL_CONTEXT; 573 -alias CPtr!(CRL_CONTEXT) PCCRL_CONTEXT; 681 +alias CRL_CONTEXT* PCRL_CONTEXT; 682 +alias const(CRL_CONTEXT)* PCCRL_CONTEXT; 574 683 575 684 struct CERT_REVOCATION_CRL_INFO { 576 685 DWORD cbSize = CERT_REVOCATION_CRL_INFO.sizeof; 577 686 PCCRL_CONTEXT pBaseCRLContext; 578 687 PCCRL_CONTEXT pDeltaCRLContext; 579 688 PCRL_ENTRY pCrlEntry; 580 689 BOOL fDeltaCrlEntry; ................................................................................ 639 748 DWORD cbCtlEncoded; 640 749 PCTL_INFO pCtlInfo; 641 750 HCERTSTORE hCertStore; 642 751 HCRYPTMSG hCryptMsg; 643 752 BYTE* pbCtlContent; 644 753 DWORD cbCtlContent; 645 754 } 646 -alias CTL_CONTEXT* PCTL_CONTEXT; 647 -alias CPtr!(CTL_CONTEXT) PCCTL_CONTEXT; 755 +alias CTL_CONTEXT* PCTL_CONTEXT; 756 +alias const(CTL_CONTEXT)* PCCTL_CONTEXT; 648 757 649 758 struct CERT_TRUST_LIST_INFO { 650 759 DWORD cbSize = CERT_TRUST_LIST_INFO.sizeof; 651 760 PCTL_ENTRY pCtlEntry; 652 761 PCCTL_CONTEXT pCtlContext; 653 762 } 654 763 alias CERT_TRUST_LIST_INFO* PCERT_TRUST_LIST_INFO; ................................................................................ 661 770 PCERT_TRUST_LIST_INFO pTrustListInfo; 662 771 BOOL fHasRevocationFreshnessTime; 663 772 DWORD dwRevocationFreshnessTime; 664 773 } 665 774 alias CERT_SIMPLE_CHAIN* PCERT_SIMPLE_CHAIN; 666 775 667 776 /* #if (_WIN32_WINNT>=0x500) */ 668 -alias CPtr!(CERT_CHAIN_CONTEXT) PCCERT_CHAIN_CONTEXT; 777 +alias const(CERT_CHAIN_CONTEXT)* PCCERT_CHAIN_CONTEXT; 669 778 struct CERT_CHAIN_CONTEXT { 670 779 DWORD cbSize = CERT_CHAIN_CONTEXT.sizeof; 671 780 CERT_TRUST_STATUS TrustStatus; 672 781 DWORD cChain; 673 782 PCERT_SIMPLE_CHAIN* rgpChain; 674 783 DWORD cLowerQualityChainContext; 675 784 PCCERT_CHAIN_CONTEXT* rgpLowerQualityChainContext; ................................................................................ 716 825 BOOL CertVerifyCertificateChainPolicy(LPCSTR, PCCERT_CHAIN_CONTEXT, 717 826 PCERT_CHAIN_POLICY_PARA, PCERT_CHAIN_POLICY_STATUS); 718 827 void CertFreeCertificateChain(PCCERT_CHAIN_CONTEXT); 719 828 DWORD CertNameToStrA(DWORD, PCERT_NAME_BLOB, DWORD, LPSTR, DWORD); 720 829 DWORD CertNameToStrW(DWORD, PCERT_NAME_BLOB, DWORD, LPWSTR, DWORD); 721 830 HCERTSTORE CertOpenSystemStoreA(HCRYPTPROV, LPCSTR); 722 831 HCERTSTORE CertOpenSystemStoreW(HCRYPTPROV, LPCWSTR); 723 - HCERTSTORE CertOpenStore(LPCSTR, DWORD, HCRYPTPROV, DWORD, CPtr!(void)); 832 + HCERTSTORE CertOpenStore(LPCSTR, DWORD, HCRYPTPROV, DWORD, const(void)*); 724 833 PCCERT_CONTEXT CertFindCertificateInStore(HCERTSTORE, DWORD, DWORD, DWORD, 725 - CPtr!(void), PCCERT_CONTEXT); 834 + const(void)*, PCCERT_CONTEXT); 726 835 BOOL CertFreeCertificateContext(PCCERT_CONTEXT); 727 836 PCCERT_CONTEXT CertGetIssuerCertificateFromStore(HCERTSTORE, 728 837 PCCERT_CONTEXT, PCCERT_CONTEXT, DWORD*); 729 838 PCCERT_CHAIN_CONTEXT CertFindChainInStore(HCERTSTORE, DWORD, DWORD, DWORD, 730 - CPtr!(void), PCCERT_CHAIN_CONTEXT); 839 + const(void)*, PCCERT_CHAIN_CONTEXT); 731 840 732 841 BOOL CryptAcquireContextA(HCRYPTPROV*, LPCSTR, LPCSTR, DWORD, DWORD); 733 842 BOOL CryptAcquireContextW(HCRYPTPROV*, LPCWSTR, LPCWSTR, DWORD, DWORD); 734 843 BOOL CryptContextAddRef(HCRYPTPROV, DWORD*, DWORD); 735 844 BOOL CryptReleaseContext(HCRYPTPROV, DWORD); 736 845 BOOL CryptGenKey(HCRYPTPROV, ALG_ID, DWORD, HCRYPTKEY*); 737 846 BOOL CryptDeriveKey(HCRYPTPROV, ALG_ID, HCRYPTHASH, DWORD, HCRYPTKEY*); 738 847 BOOL CryptDestroyKey(HCRYPTKEY); 739 - static if (WINVER >= 0x0500) { 848 + static if (_WIN32_WINNT >= 0x500) { 740 849 BOOL CryptDuplicateHash(HCRYPTHASH, DWORD*, DWORD, HCRYPTHASH*); 741 850 BOOL CryptDuplicateKey(HCRYPTKEY, DWORD*, DWORD, HCRYPTKEY*); 742 851 } 743 852 BOOL CryptSetKeyParam(HCRYPTKEY, DWORD, PBYTE, DWORD); 744 853 BOOL CryptGetKeyParam(HCRYPTKEY, DWORD, PBYTE, PDWORD, DWORD); 745 854 BOOL CryptSetHashParam(HCRYPTHASH, DWORD, PBYTE, DWORD); 746 855 BOOL CryptGetHashParam(HCRYPTHASH, DWORD, PBYTE, PDWORD, DWORD);

Modified src/win32/windef.d from [d85b79a6d3b758cc] to [305164202924dd1b].

1 - 2 1 /***********************************************************************\ 3 2 * windef.d * 4 3 * * 5 4 * Windows API header module * 6 5 * * 7 6 * Translated from MinGW Windows headers * 8 7 * by Stewart Gordon * ................................................................................ 12 11 module win32.windef; 13 12 14 13 public import win32.winnt; 15 14 private import win32.w32api; 16 15 17 16 const size_t MAX_PATH = 260; 18 17 19 -ushort MAKEWORD(ubyte a, ubyte b) 20 -{ 21 - return cast(ushort) ((b << 8) | a); 18 +ushort MAKEWORD(ubyte a, ubyte b) { 19 + return cast(ushort) ((b << 8) | a); 20 +} 21 + 22 +ushort MAKEWORD(ushort a, ushort b) { 23 + assert((a & 0xFF00) == 0); 24 + assert((b & 0xFF00) == 0); 25 + return MAKEWORD(cast(ubyte)a, cast(ubyte)b); 26 +} 27 + 28 +uint MAKELONG(ushort a, ushort b) { 29 + return cast(uint) ((b << 16) | a); 30 +} 31 + 32 +uint MAKELONG(uint a, uint b) { 33 + assert((a & 0xFFFF0000) == 0); 34 + assert((b & 0xFFFF0000) == 0); 35 + return MAKELONG(cast(ushort)a, cast(ushort)b); 36 +} 37 + 38 +ushort LOWORD(ulong l) { 39 + return cast(ushort) l; 40 +} 41 + 42 +ushort HIWORD(ulong l) { 43 + return cast(ushort) (l >>> 16); 22 44 } 23 45 24 - 25 -uint MAKELONG(ushort a, ushort b) 26 -{ 27 - return cast(uint) ((b << 16) | a); 46 +ubyte LOBYTE(ushort w) { 47 + return cast(ubyte) w; 28 48 } 29 49 30 - 31 -ushort LOWORD(uint l) 32 -{ 33 - return cast(ushort) l; 34 -} 35 - 36 - 37 -ushort HIWORD(uint l) 38 -{ 39 - return cast(ushort) (l >>> 16); 50 +ubyte HIBYTE(ushort w) { 51 + return cast(ubyte) (w >>> 8); 40 52 } 41 53 42 - 43 -ubyte LOBYTE(ushort w) 44 -{ 45 - return cast(ubyte) w; 46 -} 47 - 48 - 49 -ubyte HIBYTE(ushort w) 50 -{ 51 - return cast(ubyte) (w >>> 8); 52 -} 53 - 54 - 55 -/+ template max(T) { 56 - T max(T a, T b) 57 - { 58 - return a > b ? a : b; 59 - } 54 +template max(T) { 55 + T max(T a, T b) { 56 + return a > b ? a : b; 57 + } 60 58 } 61 59 62 60 template min(T) { 63 - T min(T a, T b) 64 - { 65 - return a < b ? a : b; 66 - } 67 -} +/ 61 + T min(T a, T b) { 62 + return a < b ? a : b; 63 + } 64 +} 68 65 69 -enum NULL = null; 70 -//~ alias null NULL; 71 -//~ const void *NULL = null; 72 -alias ubyte BYTE; 73 -alias ubyte *PBYTE, LPBYTE; 74 -alias ushort USHORT, WORD, ATOM; 75 -alias ushort*PUSHORT, PWORD, LPWORD; 76 -alias uint ULONG, DWORD, UINT, COLORREF; 77 -alias uint *PULONG, PDWORD, LPDWORD, PUINT, LPUINT; 78 -alias int WINBOOL, BOOL, INT, LONG, HFILE, HRESULT; 79 -alias int*PWINBOOL, LPWINBOOL, PBOOL, LPBOOL, PINT, LPINT, LPLONG; 80 -alias float FLOAT; 81 -alias float*PFLOAT; 82 -alias CPtr!(void) PCVOID, LPCVOID; 66 +enum void* NULL = null; 67 +alias ubyte BYTE; 68 +alias ubyte* PBYTE, LPBYTE; 69 +alias ushort USHORT, WORD, ATOM; 70 +alias ushort* PUSHORT, PWORD, LPWORD; 71 +alias uint ULONG, DWORD, UINT, COLORREF; 72 +alias uint* PULONG, PDWORD, LPDWORD, PUINT, LPUINT; 73 +alias int WINBOOL, BOOL, INT, LONG, HFILE, HRESULT; 74 +alias int* PWINBOOL, LPWINBOOL, PBOOL, LPBOOL, PINT, LPINT, LPLONG; 75 +alias float FLOAT; 76 +alias float* PFLOAT; 77 +alias const(void)* PCVOID, LPCVOID; 83 78 84 79 alias UINT_PTR WPARAM; 85 80 alias LONG_PTR LPARAM, LRESULT; 86 81 87 -alias HANDLE HGLOBAL, HLOCAL, GLOBALHANDLE, LOCALHANDLE, HGDIOBJ, HACCEL, 88 - HBITMAP, HBRUSH, HCOLORSPACE, HDC, HGLRC, HDESK, HENHMETAFILE, HFONT, 89 - HICON, HINSTANCE, HKEY, HMENU, HMETAFILE, HMODULE, HMONITOR, HPALETTE, HPEN, 90 - HRGN, HRSRC, HSTR, HTASK, HWND, HWINSTA, HKL, HCURSOR; 91 -alias HANDLE*PHKEY; 92 - 93 -static 82 +mixin DECLARE_HANDLE!("HGLOBAL"); 83 +mixin DECLARE_HANDLE!("HLOCAL"); 84 +mixin DECLARE_HANDLE!("GLOBALHANDLE"); 85 +mixin DECLARE_HANDLE!("LOCALHANDLE"); 86 +mixin DECLARE_HANDLE!("HGDIOBJ"); 87 +mixin DECLARE_HANDLE!("HACCEL"); 88 +mixin DECLARE_HANDLE!("HBITMAP", HGDIOBJ); 89 +mixin DECLARE_HANDLE!("HBRUSH", HGDIOBJ); 90 +mixin DECLARE_HANDLE!("HCOLORSPACE"); 91 +mixin DECLARE_HANDLE!("HDC"); 92 +mixin DECLARE_HANDLE!("HGLRC"); 93 +mixin DECLARE_HANDLE!("HDESK"); 94 +mixin DECLARE_HANDLE!("HENHMETAFILE"); 95 +mixin DECLARE_HANDLE!("HFONT", HGDIOBJ); 96 +mixin DECLARE_HANDLE!("HICON"); 97 +mixin DECLARE_HANDLE!("HINSTANCE"); 98 +mixin DECLARE_HANDLE!("HKEY"); 99 +mixin DECLARE_HANDLE!("HMENU"); 100 +mixin DECLARE_HANDLE!("HMETAFILE"); 101 +mixin DECLARE_HANDLE!("HMODULE"); 102 +mixin DECLARE_HANDLE!("HMONITOR"); 103 +mixin DECLARE_HANDLE!("HPALETTE"); 104 +mixin DECLARE_HANDLE!("HPEN", HGDIOBJ); 105 +mixin DECLARE_HANDLE!("HRGN", HGDIOBJ); 106 +mixin DECLARE_HANDLE!("HRSRC"); 107 +mixin DECLARE_HANDLE!("HSTR"); 108 +mixin DECLARE_HANDLE!("HTASK"); 109 +mixin DECLARE_HANDLE!("HWND"); 110 +mixin DECLARE_HANDLE!("HWINSTA"); 111 +mixin DECLARE_HANDLE!("HKL"); 112 +mixin DECLARE_HANDLE!("HCURSOR"); 113 +alias HKEY* PHKEY; 94 114 95 -if (WINVER >= 0x500) 96 -{ 97 - alias HANDLE HTERMINAL, HWINEVENTHOOK; 115 +static if (_WIN32_WINNT >= 0x500) { 116 + mixin DECLARE_HANDLE!("HTERMINAL"); 117 + mixin DECLARE_HANDLE!("HWINEVENTHOOK"); 98 118 } 99 119 100 -alias extern (Windows) int function() FARPROC, NEARPROC, PROC; 120 +alias extern (Windows) INT_PTR function() FARPROC, NEARPROC, PROC; 101 121 102 -struct RECT 103 -{ 104 - LONG left; 105 - LONG top; 106 - LONG right; 107 - LONG bottom; 122 +struct RECT { 123 + LONG left; 124 + LONG top; 125 + LONG right; 126 + LONG bottom; 108 127 } 109 128 alias RECT RECTL; 110 -alias RECT*PRECT, LPRECT, PRECTL, LPRECTL; 111 -alias CPtr!(RECT) LPCRECT, LPCRECTL; 129 +alias RECT* PRECT, LPRECT, PRECTL, LPRECTL; 130 +alias const(RECT)* LPCRECT, LPCRECTL; 112 131 113 -struct POINT 114 -{ 115 - LONG x; 116 - LONG y; 117 - alias x e1; 118 - alias y e2; 132 +struct POINT { 133 + LONG x; 134 + LONG y; 119 135 } 120 136 alias POINT POINTL; 121 -alias POINT*PPOINT, LPPOINT, PPOINTL, LPPOINTL; 137 +alias POINT* PPOINT, LPPOINT, PPOINTL, LPPOINTL; 122 138 123 -struct SIZE 124 -{ 125 - LONG cx; 126 - LONG cy; 139 +struct SIZE { 140 + LONG cx; 141 + LONG cy; 127 142 } 128 143 alias SIZE SIZEL; 129 -alias SIZE*PSIZE, LPSIZE, PSIZEL, LPSIZEL; 144 +alias SIZE* PSIZE, LPSIZE, PSIZEL, LPSIZEL; 130 145 131 -struct POINTS 132 -{ 133 - SHORT x; 134 - SHORT y; 146 +struct POINTS { 147 + SHORT x; 148 + SHORT y; 135 149 } 136 -alias POINTS*PPOINTS, LPPOINTS; 150 +alias POINTS* PPOINTS, LPPOINTS; 137 151 138 152 enum : BOOL { 139 - FALSE = 0, 140 - TRUE = 1 153 + FALSE = 0, 154 + TRUE = 1 141 155 }

Modified src/win32/windows.d from [886c2dae4f8ee53d] to [17920ef67c1aa508].

1 1 /***********************************************************************\ 2 2 * windows.d * 3 3 * * 4 4 * Windows API header module * 5 5 * * 6 -* Translated from MinGW API for MS-Windows 3.10 * 6 +* Translated from MinGW API for MS-Windows 4.0 * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.windows; 11 11 12 12 /* 13 13 windows.h - main header file for the Win32 API ................................................................................ 21 21 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 22 22 23 23 */ 24 24 25 25 public import win32.w32api; 26 26 public import win32.core; 27 27 28 -// We can't use static if for imports, build gets confused. 29 -version (WindowsVista) { 30 - public import win32.winsvc; 31 -} else version (Windows2003) { 32 - public import win32.winsvc; 33 -} else version (WindowsXP) { 34 - public import win32.winsvc; 35 -} else version (WindowsNTonly) { 36 - public import win32.winsvc; 37 -} 38 - 39 28 public import win32.cderr; 40 29 public import win32.dde; 41 30 public import win32.ddeml; 42 31 public import win32.dlgs; 43 32 public import win32.imm; 44 33 public import win32.lzexpand; 45 34 public import win32.mmsystem; 46 35 public import win32.nb30; 47 - 48 - 36 +public import win32.winsvc; 49 37 50 38 public import win32.rpc; 51 39 public import win32.shellapi; 52 40 public import win32.winperf; 53 41 public import win32.commdlg; 54 42 public import win32.winspool; 55 43 public import win32.ole2; ................................................................................ 60 48 public import win32.winsock; 61 49 } else { 62 50 public import win32.winsock2; 63 51 public import win32.ws2tcpip; 64 52 } 65 53 66 54 /+ 67 -#if (_WIN32_WINNT >= 0x0400) 55 +#if (_WIN32_WINNT >= 0x400) 68 56 #include <winsock2.h> 69 57 /* 70 58 * MS likes to include mswsock.h here as well, 71 59 * but that can cause undefined symbols if 72 60 * winsock2.h is included before windows.h 73 61 */ 74 62 #else 75 63 #include <winsock.h> 76 -#endif /* (_WIN32_WINNT >= 0x0400) */ 64 +#endif /* (_WIN32_WINNT >= 0x400) */ 77 65 +/

Modified src/win32/winerror.d from [71c5579353ac7b76] to [559075db5bad5300].

Modified src/win32/wingdi.d from [831d9d5a2951cb99] to [5fb8f5b21d4e8b04].

1 - 2 1 /***********************************************************************\ 3 2 * wingdi.d * 4 3 * * 5 4 * Windows API header module * 6 5 * * 7 6 * Translated from MinGW Windows headers * 8 7 * * 9 8 * Placed into public domain * 10 9 \***********************************************************************/ 11 10 module win32.wingdi; 12 -pragma(lib, "gdi32.lib"); 11 +pragma(lib, "gdi32"); 13 12 14 13 // FIXME: clean up Windows version support 15 14 16 15 private import win32.w32api, win32.windef, win32.winver; 17 16 18 17 // BITMAPINFOHEADER.biCompression 19 18 enum : DWORD { 20 - BI_RGB = 0, 21 - BI_RLE8, 22 - BI_RLE4, 23 - BI_BITFIELDS, 24 - BI_JPEG, 25 - BI_PNG 19 + BI_RGB = 0, 20 + BI_RLE8, 21 + BI_RLE4, 22 + BI_BITFIELDS, 23 + BI_JPEG, 24 + BI_PNG 26 25 } 27 26 28 27 // --- 29 28 // COLORADJUSTMENT -- only for NT 3.1+, Win2000+ 30 29 const WORD 31 -CA_NEGATIVE = 1, 32 -CA_LOG_FILTER = 2; 30 + CA_NEGATIVE = 1, 31 + CA_LOG_FILTER = 2; 33 32 34 33 // COLORADJUSTMENT 35 34 enum : WORD { 36 - ILLUMINANT_DEVICE_DEFAULT = 0, 37 - ILLUMINANT_A, 38 - ILLUMINANT_B, 39 - ILLUMINANT_C, 40 - ILLUMINANT_D50, 41 - ILLUMINANT_D55, 42 - ILLUMINANT_D65, 43 - ILLUMINANT_D75, 44 - ILLUMINANT_F2, 45 - ILLUMINANT_MAX_INDEX = ILLUMINANT_F2, 46 - ILLUMINANT_TUNGSTEN = ILLUMINANT_A, 47 - ILLUMINANT_DAYLIGHT = ILLUMINANT_C, 48 - ILLUMINANT_FLUORESCENT = ILLUMINANT_F2, 49 - ILLUMINANT_NTSC = ILLUMINANT_C 35 + ILLUMINANT_DEVICE_DEFAULT = 0, 36 + ILLUMINANT_A, 37 + ILLUMINANT_B, 38 + ILLUMINANT_C, 39 + ILLUMINANT_D50, 40 + ILLUMINANT_D55, 41 + ILLUMINANT_D65, 42 + ILLUMINANT_D75, 43 + ILLUMINANT_F2, 44 + ILLUMINANT_MAX_INDEX = ILLUMINANT_F2, 45 + ILLUMINANT_TUNGSTEN = ILLUMINANT_A, 46 + ILLUMINANT_DAYLIGHT = ILLUMINANT_C, 47 + ILLUMINANT_FLUORESCENT = ILLUMINANT_F2, 48 + ILLUMINANT_NTSC = ILLUMINANT_C 50 49 } 51 50 52 51 enum { 53 - RGB_GAMMA_MIN = 2500, 54 - RGB_GAMMA_MAX = 65000, 55 - REFERENCE_WHITE_MIN = 6000, 56 - REFERENCE_WHITE_MAX = 10000, 57 - REFERENCE_BLACK_MIN = 0, 58 - REFERENCE_BLACK_MAX = 4000, 59 - COLOR_ADJ_MIN = -100, 60 - COLOR_ADJ_MAX = 100, 52 + RGB_GAMMA_MIN = 2500, 53 + RGB_GAMMA_MAX = 65000, 54 + REFERENCE_WHITE_MIN = 6000, 55 + REFERENCE_WHITE_MAX = 10000, 56 + REFERENCE_BLACK_MIN = 0, 57 + REFERENCE_BLACK_MAX = 4000, 58 + COLOR_ADJ_MIN = -100, 59 + COLOR_ADJ_MAX = 100, 61 60 } 62 - 63 -// --- 61 +//--- 64 62 65 63 /* FIXME: move to win32.winuser ? */ 66 - 67 64 // DrawIconEx() 68 65 enum : UINT { 69 - DI_MASK = 1, 70 - DI_IMAGE = 2, 71 - DI_NORMAL = 3, 72 - DI_COMPAT = 4, 73 - DI_DEFAULTSIZE = 8 66 + DI_MASK = 1, 67 + DI_IMAGE = 2, 68 + DI_NORMAL = 3, 69 + DI_COMPAT = 4, 70 + DI_DEFAULTSIZE = 8 74 71 } 75 72 76 73 // DOCINFO 77 74 enum : DWORD { 78 - DI_APPBANDING = 1, 79 - DI_ROPS_READ_DESTINATION = 2, 75 + DI_APPBANDING = 1, 76 + DI_ROPS_READ_DESTINATION = 2, 80 77 } 81 78 82 79 // ENHMETAHEADER 83 80 enum : DWORD { 84 - EMR_HEADER = 1, 85 - EMR_POLYBEZIER, 86 - EMR_POLYGON, 87 - EMR_POLYLINE, 88 - EMR_POLYBEZIERTO, 89 - EMR_POLYLINETO, 90 - EMR_POLYPOLYLINE, 91 - EMR_POLYPOLYGON, 92 - EMR_SETWINDOWEXTEX, 93 - EMR_SETWINDOWORGEX, 94 - EMR_SETVIEWPORTEXTEX, 95 - EMR_SETVIEWPORTORGEX, 96 - EMR_SETBRUSHORGEX, 97 - EMR_EOF, 98 - EMR_SETPIXELV, 99 - EMR_SETMAPPERFLAGS, 100 - EMR_SETMAPMODE, 101 - EMR_SETBKMODE, 102 - EMR_SETPOLYFILLMODE, 103 - EMR_SETROP2, 104 - EMR_SETSTRETCHBLTMODE, 105 - EMR_SETTEXTALIGN, 106 - EMR_SETCOLORADJUSTMENT, 107 - EMR_SETTEXTCOLOR, 108 - EMR_SETBKCOLOR, 109 - EMR_OFFSETCLIPRGN, 110 - EMR_MOVETOEX, 111 - EMR_SETMETARGN, 112 - EMR_EXCLUDECLIPRECT, 113 - EMR_INTERSECTCLIPRECT, 114 - EMR_SCALEVIEWPORTEXTEX, 115 - EMR_SCALEWINDOWEXTEX, 116 - EMR_SAVEDC, 117 - EMR_RESTOREDC, 118 - EMR_SETWORLDTRANSFORM, 119 - EMR_MODIFYWORLDTRANSFORM, 120 - EMR_SELECTOBJECT, 121 - EMR_CREATEPEN, 122 - EMR_CREATEBRUSHINDIRECT, 123 - EMR_DELETEOBJECT, 124 - EMR_ANGLEARC, 125 - EMR_ELLIPSE, 126 - EMR_RECTANGLE, 127 - EMR_ROUNDRECT, 128 - EMR_ARC, 129 - EMR_CHORD, 130 - EMR_PIE, 131 - EMR_SELECTPALETTE, 132 - EMR_CREATEPALETTE, 133 - EMR_SETPALETTEENTRIES, 134 - EMR_RESIZEPALETTE, 135 - EMR_REALIZEPALETTE, 136 - EMR_EXTFLOODFILL, 137 - EMR_LINETO, 138 - EMR_ARCTO, 139 - EMR_POLYDRAW, 140 - EMR_SETARCDIRECTION, 141 - EMR_SETMITERLIMIT, 142 - EMR_BEGINPATH, 143 - EMR_ENDPATH, 144 - EMR_CLOSEFIGURE, 145 - EMR_FILLPATH, 146 - EMR_STROKEANDFILLPATH, 147 - EMR_STROKEPATH, 148 - EMR_FLATTENPATH, 149 - EMR_WIDENPATH, 150 - EMR_SELECTCLIPPATH, 151 - EMR_ABORTPATH, // 68 152 - // reserved 69 153 - EMR_GDICOMMENT = 70, 154 - EMR_FILLRGN, 155 - EMR_FRAMERGN, 156 - EMR_INVERTRGN, 157 - EMR_PAINTRGN, 158 - EMR_EXTSELECTCLIPRGN, 159 - EMR_BITBLT, 160 - EMR_STRETCHBLT, 161 - EMR_MASKBLT, 162 - EMR_PLGBLT, 163 - EMR_SETDIBITSTODEVICE, 164 - EMR_STRETCHDIBITS, 165 - EMR_EXTCREATEFONTINDIRECTW, 166 - EMR_EXTTEXTOUTA, 167 - EMR_EXTTEXTOUTW, 168 - EMR_POLYBEZIER16, 169 - EMR_POLYGON16, 170 - EMR_POLYLINE16, 171 - EMR_POLYBEZIERTO16, 172 - EMR_POLYLINETO16, 173 - EMR_POLYPOLYLINE16, 174 - EMR_POLYPOLYGON16, 175 - EMR_POLYDRAW16, 176 - EMR_CREATEMONOBRUSH, 177 - EMR_CREATEDIBPATTERNBRUSHPT, 178 - EMR_EXTCREATEPEN, 179 - EMR_POLYTEXTOUTA, 180 - EMR_POLYTEXTOUTW, // 97 181 - EMR_SETICMMODE, 182 - EMR_CREATECOLORSPACE, 183 - EMR_SETCOLORSPACE, 184 - EMR_DELETECOLORSPACE, 185 - EMR_GLSRECORD, 186 - EMR_GLSBOUNDEDRECORD, 187 - EMR_PIXELFORMAT, // = 104 188 - // reserved 105 - 110 189 - EMR_COLORCORRECTPALETTE = 111, 190 - EMR_SETICMPROFILEA, 191 - EMR_SETICMPROFILEW, 192 - EMR_ALPHABLEND, 193 - EMR_SETLAYOUT, 194 - EMR_TRANSPARENTBLT, // 116 195 - // reserved 117 196 - EMR_GRADIENTFILL = 118, 197 - 198 - // reserved 119, 120 199 - EMR_COLORMATCHTOTARGETW = 121, 200 - EMR_CREATECOLORSPACEW // 122 81 + EMR_HEADER = 1, 82 + EMR_POLYBEZIER, 83 + EMR_POLYGON, 84 + EMR_POLYLINE, 85 + EMR_POLYBEZIERTO, 86 + EMR_POLYLINETO, 87 + EMR_POLYPOLYLINE, 88 + EMR_POLYPOLYGON, 89 + EMR_SETWINDOWEXTEX, 90 + EMR_SETWINDOWORGEX, 91 + EMR_SETVIEWPORTEXTEX, 92 + EMR_SETVIEWPORTORGEX, 93 + EMR_SETBRUSHORGEX, 94 + EMR_EOF, 95 + EMR_SETPIXELV, 96 + EMR_SETMAPPERFLAGS, 97 + EMR_SETMAPMODE, 98 + EMR_SETBKMODE, 99 + EMR_SETPOLYFILLMODE, 100 + EMR_SETROP2, 101 + EMR_SETSTRETCHBLTMODE, 102 + EMR_SETTEXTALIGN, 103 + EMR_SETCOLORADJUSTMENT, 104 + EMR_SETTEXTCOLOR, 105 + EMR_SETBKCOLOR, 106 + EMR_OFFSETCLIPRGN, 107 + EMR_MOVETOEX, 108 + EMR_SETMETARGN, 109 + EMR_EXCLUDECLIPRECT, 110 + EMR_INTERSECTCLIPRECT, 111 + EMR_SCALEVIEWPORTEXTEX, 112 + EMR_SCALEWINDOWEXTEX, 113 + EMR_SAVEDC, 114 + EMR_RESTOREDC, 115 + EMR_SETWORLDTRANSFORM, 116 + EMR_MODIFYWORLDTRANSFORM, 117 + EMR_SELECTOBJECT, 118 + EMR_CREATEPEN, 119 + EMR_CREATEBRUSHINDIRECT, 120 + EMR_DELETEOBJECT, 121 + EMR_ANGLEARC, 122 + EMR_ELLIPSE, 123 + EMR_RECTANGLE, 124 + EMR_ROUNDRECT, 125 + EMR_ARC, 126 + EMR_CHORD, 127 + EMR_PIE, 128 + EMR_SELECTPALETTE, 129 + EMR_CREATEPALETTE, 130 + EMR_SETPALETTEENTRIES, 131 + EMR_RESIZEPALETTE, 132 + EMR_REALIZEPALETTE, 133 + EMR_EXTFLOODFILL, 134 + EMR_LINETO, 135 + EMR_ARCTO, 136 + EMR_POLYDRAW, 137 + EMR_SETARCDIRECTION, 138 + EMR_SETMITERLIMIT, 139 + EMR_BEGINPATH, 140 + EMR_ENDPATH, 141 + EMR_CLOSEFIGURE, 142 + EMR_FILLPATH, 143 + EMR_STROKEANDFILLPATH, 144 + EMR_STROKEPATH, 145 + EMR_FLATTENPATH, 146 + EMR_WIDENPATH, 147 + EMR_SELECTCLIPPATH, 148 + EMR_ABORTPATH, // 68 149 + // reserved 69 150 + EMR_GDICOMMENT = 70, 151 + EMR_FILLRGN, 152 + EMR_FRAMERGN, 153 + EMR_INVERTRGN, 154 + EMR_PAINTRGN, 155 + EMR_EXTSELECTCLIPRGN, 156 + EMR_BITBLT, 157 + EMR_STRETCHBLT, 158 + EMR_MASKBLT, 159 + EMR_PLGBLT, 160 + EMR_SETDIBITSTODEVICE, 161 + EMR_STRETCHDIBITS, 162 + EMR_EXTCREATEFONTINDIRECTW, 163 + EMR_EXTTEXTOUTA, 164 + EMR_EXTTEXTOUTW, 165 + EMR_POLYBEZIER16, 166 + EMR_POLYGON16, 167 + EMR_POLYLINE16, 168 + EMR_POLYBEZIERTO16, 169 + EMR_POLYLINETO16, 170 + EMR_POLYPOLYLINE16, 171 + EMR_POLYPOLYGON16, 172 + EMR_POLYDRAW16, 173 + EMR_CREATEMONOBRUSH, 174 + EMR_CREATEDIBPATTERNBRUSHPT, 175 + EMR_EXTCREATEPEN, 176 + EMR_POLYTEXTOUTA, 177 + EMR_POLYTEXTOUTW, // 97 178 + EMR_SETICMMODE, 179 + EMR_CREATECOLORSPACE, 180 + EMR_SETCOLORSPACE, 181 + EMR_DELETECOLORSPACE, 182 + EMR_GLSRECORD, 183 + EMR_GLSBOUNDEDRECORD, 184 + EMR_PIXELFORMAT, // = 104 185 + // reserved 105 - 110 186 + EMR_COLORCORRECTPALETTE = 111, 187 + EMR_SETICMPROFILEA, 188 + EMR_SETICMPROFILEW, 189 + EMR_ALPHABLEND, 190 + EMR_SETLAYOUT, 191 + EMR_TRANSPARENTBLT, // 116 192 + // reserved 117 193 + EMR_GRADIENTFILL = 118, 194 + // reserved 119, 120 195 + EMR_COLORMATCHTOTARGETW = 121, 196 + EMR_CREATECOLORSPACEW // 122 201 197 } 202 198 203 199 const EMR_MIN = EMR_HEADER; 204 200 205 -static 206 - 207 -if (WINVER >= 0x0500) 208 - const EMR_MAX = EMR_CREATECOLORSPACEW; 209 -else static 210 - 211 - if (WINVER >= 0x0400) 212 - const EMR_MAX = EMR_PIXELFORMAT; 213 - else 214 - const EMR_MAX = EMR_POLYTEXTOUTW; 201 +static if (_WIN32_WINNT >= 0x500) { 202 + const EMR_MAX = EMR_CREATECOLORSPACEW; 203 +} else { 204 + const EMR_MAX = EMR_PIXELFORMAT; 205 +} 215 206 216 207 // ENHMETAHEADER.dSignature, ENHMETAHEADER3.dSignature, 217 208 // EMRFORMAT.dSignature 218 209 enum : DWORD { 219 - ENHMETA_SIGNATURE = 1179469088, 220 - EPS_SIGNATURE = 0x46535045 210 + ENHMETA_SIGNATURE = 1179469088, 211 + EPS_SIGNATURE = 0x46535045 221 212 } 222 213 223 -static 224 - 225 -if (_WIN32_WINNT >= 0x0500) 226 -{ 227 - // AddFontResourceEx() 228 - enum : DWORD { 229 - FR_PRIVATE = 0x10, 230 - FR_NOT_ENUM = 0x20 231 - } 214 +static if (_WIN32_WINNT >= 0x500) { 215 + // AddFontResourceEx() 216 + enum : DWORD { 217 + FR_PRIVATE = 0x10, 218 + FR_NOT_ENUM = 0x20 219 + } 232 220 } 233 221 234 222 enum { 235 - META_SAVEDC = 0x1E, 236 - META_REALIZEPALETTE = 0x35, 237 - META_SETPALENTRIES = 0x37, 238 - META_CREATEPALETTE = 0xf7, 239 - META_SETBKMODE = 0x102, 240 - META_SETMAPMODE = 0x103, 241 - META_SETROP2 = 0x104, 242 - META_SETRELABS = 0x105, 243 - META_SETPOLYFILLMODE = 0x106, 244 - META_SETSTRETCHBLTMODE = 0x107, 245 - META_SETTEXTCHAREXTRA = 0x108, 246 - META_RESTOREDC = 0x127, 247 - META_INVERTREGION = 0x12A, 248 - META_PAINTREGION = 0x12B, 249 - META_SELECTCLIPREGION = 0x12C, 250 - META_SELECTOBJECT = 0x12D, 251 - META_SETTEXTALIGN = 0x12E, 252 - META_RESIZEPALETTE = 0x139, 253 - META_DIBCREATEPATTERNBRUSH = 0x142, 254 - META_SETLAYOUT = 0x149, 255 - META_DELETEOBJECT = 0x1F0, 256 - META_CREATEPATTERNBRUSH = 0x1F9, 257 - META_SETBKCOLOR = 0x201, 258 - META_SETTEXTCOLOR = 0x209, 259 - META_SETTEXTJUSTIFICATION = 0x20A, 260 - META_SETWINDOWORG = 0x20B, 261 - META_SETWINDOWEXT = 0x20C, 262 - META_SETVIEWPORTORG = 0x20D, 263 - META_SETVIEWPORTEXT = 0x20E, 264 - META_OFFSETWINDOWORG = 0x20F, 265 - META_OFFSETVIEWPORTORG = 0x211, 266 - META_LINETO = 0x213, 267 - META_MOVETO = 0x214, 268 - META_OFFSETCLIPRGN = 0x220, 269 - META_FILLREGION = 0x228, 270 - META_SETMAPPERFLAGS = 0x231, 271 - META_SELECTPALETTE = 0x234, 272 - META_CREATEPENINDIRECT = 0x2FA, 273 - META_CREATEFONTINDIRECT = 0x2FB, 274 - META_CREATEBRUSHINDIRECT = 0x2FC, 275 - META_POLYGON = 0x324, 276 - META_POLYLINE = 0x325, 277 - META_SCALEWINDOWEXT = 0x410, 278 - META_SCALEVIEWPORTEXT = 0x412, 279 - META_EXCLUDECLIPRECT = 0x415, 280 - META_INTERSECTCLIPRECT = 0x416, 281 - META_ELLIPSE = 0x418, 282 - META_FLOODFILL = 0x419, 283 - META_RECTANGLE = 0x41B, 284 - META_SETPIXEL = 0x41F, 285 - META_FRAMEREGION = 0x429, 286 - META_ANIMATEPALETTE = 0x436, 287 - META_TEXTOUT = 0x521, 288 - META_POLYPOLYGON = 0x538, 289 - META_EXTFLOODFILL = 0x548, 290 - META_ROUNDRECT = 0x61C, 291 - META_PATBLT = 0x61D, 292 - META_ESCAPE = 0x626, 293 - META_CREATEREGION = 0x6FF, 294 - META_ARC = 0x817, 295 - META_PIE = 0x81A, 296 - META_CHORD = 0x830, 297 - META_BITBLT = 0x922, 298 - META_DIBBITBLT = 0x940, 299 - META_EXTTEXTOUT = 0xA32, 300 - META_STRETCHBLT = 0xB23, 301 - META_DIBSTRETCHBLT = 0xB41, 302 - META_SETDIBTODEV = 0xD33, 303 - META_STRETCHDIB = 0xF43 223 + META_SAVEDC = 0x1E, 224 + META_REALIZEPALETTE = 0x35, 225 + META_SETPALENTRIES = 0x37, 226 + META_CREATEPALETTE = 0xf7, 227 + META_SETBKMODE = 0x102, 228 + META_SETMAPMODE = 0x103, 229 + META_SETROP2 = 0x104, 230 + META_SETRELABS = 0x105, 231 + META_SETPOLYFILLMODE = 0x106, 232 + META_SETSTRETCHBLTMODE = 0x107, 233 + META_SETTEXTCHAREXTRA = 0x108, 234 + META_RESTOREDC = 0x127, 235 + META_INVERTREGION = 0x12A, 236 + META_PAINTREGION = 0x12B, 237 + META_SELECTCLIPREGION = 0x12C, 238 + META_SELECTOBJECT = 0x12D, 239 + META_SETTEXTALIGN = 0x12E, 240 + META_RESIZEPALETTE = 0x139, 241 + META_DIBCREATEPATTERNBRUSH = 0x142, 242 + META_SETLAYOUT = 0x149, 243 + META_DELETEOBJECT = 0x1F0, 244 + META_CREATEPATTERNBRUSH = 0x1F9, 245 + META_SETBKCOLOR = 0x201, 246 + META_SETTEXTCOLOR = 0x209, 247 + META_SETTEXTJUSTIFICATION = 0x20A, 248 + META_SETWINDOWORG = 0x20B, 249 + META_SETWINDOWEXT = 0x20C, 250 + META_SETVIEWPORTORG = 0x20D, 251 + META_SETVIEWPORTEXT = 0x20E, 252 + META_OFFSETWINDOWORG = 0x20F, 253 + META_OFFSETVIEWPORTORG = 0x211, 254 + META_LINETO = 0x213, 255 + META_MOVETO = 0x214, 256 + META_OFFSETCLIPRGN = 0x220, 257 + META_FILLREGION = 0x228, 258 + META_SETMAPPERFLAGS = 0x231, 259 + META_SELECTPALETTE = 0x234, 260 + META_CREATEPENINDIRECT = 0x2FA, 261 + META_CREATEFONTINDIRECT = 0x2FB, 262 + META_CREATEBRUSHINDIRECT = 0x2FC, 263 + META_POLYGON = 0x324, 264 + META_POLYLINE = 0x325, 265 + META_SCALEWINDOWEXT = 0x410, 266 + META_SCALEVIEWPORTEXT = 0x412, 267 + META_EXCLUDECLIPRECT = 0x415, 268 + META_INTERSECTCLIPRECT = 0x416, 269 + META_ELLIPSE = 0x418, 270 + META_FLOODFILL = 0x419, 271 + META_RECTANGLE = 0x41B, 272 + META_SETPIXEL = 0x41F, 273 + META_FRAMEREGION = 0x429, 274 + META_ANIMATEPALETTE = 0x436, 275 + META_TEXTOUT = 0x521, 276 + META_POLYPOLYGON = 0x538, 277 + META_EXTFLOODFILL = 0x548, 278 + META_ROUNDRECT = 0x61C, 279 + META_PATBLT = 0x61D, 280 + META_ESCAPE = 0x626, 281 + META_CREATEREGION = 0x6FF, 282 + META_ARC = 0x817, 283 + META_PIE = 0x81A, 284 + META_CHORD = 0x830, 285 + META_BITBLT = 0x922, 286 + META_DIBBITBLT = 0x940, 287 + META_EXTTEXTOUT = 0xA32, 288 + META_STRETCHBLT = 0xB23, 289 + META_DIBSTRETCHBLT = 0xB41, 290 + META_SETDIBTODEV = 0xD33, 291 + META_STRETCHDIB = 0xF43 304 292 } 305 293 306 294 // EMRPOLYDRAW 307 295 enum : BYTE { 308 - PT_CLOSEFIGURE = 1, 309 - PT_LINETO = 2, 310 - PT_BEZIERTO = 4, 311 - PT_MOVETO = 6 296 + PT_CLOSEFIGURE = 1, 297 + PT_LINETO = 2, 298 + PT_BEZIERTO = 4, 299 + PT_MOVETO = 6 312 300 } 313 301 314 302 // ---- 315 303 // PIXELFORMATDESCRIPTOR.iPixelType 316 304 enum : BYTE { 317 - PFD_TYPE_RGBA = 0, 318 - PFD_TYPE_COLORINDEX = 1 305 + PFD_TYPE_RGBA = 0, 306 + PFD_TYPE_COLORINDEX = 1 319 307 } 320 308 321 309 deprecated { 322 - // PIXELFORMATDESCRIPTOR. 323 - const byte 324 - PFD_MAIN_PLANE = 0, 325 - PFD_OVERLAY_PLANE = 1, 326 - PFD_UNDERLAY_PLANE = -1; 310 +// PIXELFORMATDESCRIPTOR. 311 +const byte 312 + PFD_MAIN_PLANE = 0, 313 + PFD_OVERLAY_PLANE = 1, 314 + PFD_UNDERLAY_PLANE = -1; 327 315 } 328 - 329 316 // PIXELFORMATDESCRIPTOR.dwFlags 330 317 const DWORD 331 -PFD_DOUBLEBUFFER = 0x00000001, 332 -PFD_STEREO = 0x00000002, 333 -PFD_DRAW_TO_WINDOW = 0x00000004, 334 -PFD_DRAW_TO_BITMAP = 0x00000008, 335 -PFD_SUPPORT_GDI = 0x00000010, 336 -PFD_SUPPORT_OPENGL = 0x00000020, 337 -PFD_GENERIC_FORMAT = 0x00000040, 338 -PFD_NEED_PALETTE = 0x00000080, 339 -PFD_NEED_SYSTEM_PALETTE = 0x00000100, 340 -PFD_SWAP_EXCHANGE = 0x00000200, 341 -PFD_SWAP_COPY = 0x00000400, 342 -PFD_SWAP_LAYER_BUFFERS = 0x00000800, 343 -PFD_GENERIC_ACCELERATED = 0x00001000, 344 -PFD_SUPPORT_DIRECTDRAW = 0x00002000, 345 - 346 -/* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */ 347 -PFD_DEPTH_DONTCARE = 0x20000000, 348 -PFD_DOUBLEBUFFER_DONTCARE = 0x40000000, 349 -PFD_STEREO_DONTCARE = 0x80000000; 318 + PFD_DOUBLEBUFFER = 0x00000001, 319 + PFD_STEREO = 0x00000002, 320 + PFD_DRAW_TO_WINDOW = 0x00000004, 321 + PFD_DRAW_TO_BITMAP = 0x00000008, 322 + PFD_SUPPORT_GDI = 0x00000010, 323 + PFD_SUPPORT_OPENGL = 0x00000020, 324 + PFD_GENERIC_FORMAT = 0x00000040, 325 + PFD_NEED_PALETTE = 0x00000080, 326 + PFD_NEED_SYSTEM_PALETTE = 0x00000100, 327 + PFD_SWAP_EXCHANGE = 0x00000200, 328 + PFD_SWAP_COPY = 0x00000400, 329 + PFD_SWAP_LAYER_BUFFERS = 0x00000800, 330 + PFD_GENERIC_ACCELERATED = 0x00001000, 331 + PFD_SUPPORT_DIRECTDRAW = 0x00002000, 332 + /* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */ 333 + PFD_DEPTH_DONTCARE = 0x20000000, 334 + PFD_DOUBLEBUFFER_DONTCARE = 0x40000000, 335 + PFD_STEREO_DONTCARE = 0x80000000; 350 336 351 337 // ---- 352 338 353 339 const DWORD 354 -BLACKNESS = 0x000042, 355 -NOTSRCERASE = 0x1100A6, 356 -NOTSRCCOPY = 0x330008, 357 -SRCERASE = 0x440328, 358 -DSTINVERT = 0x550009, 359 -PATINVERT = 0x5A0049, 360 -SRCINVERT = 0x660046, 361 -SRCAND = 0x8800C6, 362 -MERGEPAINT = 0xBB0226, 363 -MERGECOPY = 0xC000CA, 364 -SRCCOPY = 0xCC0020, 365 -SRCPAINT = 0xEE0086, 366 -PATCOPY = 0xF00021, 367 -PATPAINT = 0xFB0A09, 368 -WHITENESS = 0xFF0062; 369 -static 370 - 371 -if (WINVER >= 0x0500) 372 -{ 373 - const DWORD 374 - NOMIRRORBITMAP = 0x80000000, 375 - CAPTUREBLT = 0x40000000; 340 + BLACKNESS = 0x000042, 341 + NOTSRCERASE = 0x1100A6, 342 + NOTSRCCOPY = 0x330008, 343 + SRCERASE = 0x440328, 344 + DSTINVERT = 0x550009, 345 + PATINVERT = 0x5A0049, 346 + SRCINVERT = 0x660046, 347 + SRCAND = 0x8800C6, 348 + MERGEPAINT = 0xBB0226, 349 + MERGECOPY = 0xC000CA, 350 + SRCCOPY = 0xCC0020, 351 + SRCPAINT = 0xEE0086, 352 + PATCOPY = 0xF00021, 353 + PATPAINT = 0xFB0A09, 354 + WHITENESS = 0xFF0062; 355 +static if (_WIN32_WINNT >= 0x500) { 356 + const DWORD 357 + NOMIRRORBITMAP = 0x80000000, 358 + CAPTUREBLT = 0x40000000; 376 359 } 377 360 378 361 // GetROP2(), SetROP2() 379 362 enum : int { 380 - R2_BLACK = 1, 381 - R2_NOTMERGEPEN = 2, 382 - R2_MASKNOTPEN = 3, 383 - R2_NOTCOPYPEN = 4, 384 - R2_MASKPENNOT = 5, 385 - R2_NOT = 6, 386 - R2_XORPEN = 7, 387 - R2_NOTMASKPEN = 8, 388 - R2_MASKPEN = 9, 389 - R2_NOTXORPEN = 10, 390 - R2_NOP = 11, 391 - R2_MERGENOTPEN = 12, 392 - R2_COPYPEN = 13, 393 - R2_MERGEPENNOT = 14, 394 - R2_MERGEPEN = 15, 395 - R2_WHITE = 16 363 + R2_BLACK = 1, 364 + R2_NOTMERGEPEN = 2, 365 + R2_MASKNOTPEN = 3, 366 + R2_NOTCOPYPEN = 4, 367 + R2_MASKPENNOT = 5, 368 + R2_NOT = 6, 369 + R2_XORPEN = 7, 370 + R2_NOTMASKPEN = 8, 371 + R2_MASKPEN = 9, 372 + R2_NOTXORPEN = 10, 373 + R2_NOP = 11, 374 + R2_MERGENOTPEN = 12, 375 + R2_COPYPEN = 13, 376 + R2_MERGEPENNOT = 14, 377 + R2_MERGEPEN = 15, 378 + R2_WHITE = 16 396 379 } 397 380 398 381 const R2_LAST = R2_WHITE; 399 382 400 383 // CheckColorsInGamut() 401 384 const ubyte 402 -CM_IN_GAMUT = 0, 403 -CM_OUT_OF_GAMUT = 255; 385 + CM_IN_GAMUT = 0, 386 + CM_OUT_OF_GAMUT = 255; 404 387 405 388 /* UpdateICMRegKey Constants */ 406 389 const int 407 -ICM_ADDPROFILE = 1, 408 -ICM_DELETEPROFILE = 2, 409 -ICM_QUERYPROFILE = 3, 410 -ICM_SETDEFAULTPROFILE = 4, 411 -ICM_REGISTERICMATCHER = 5, 412 -ICM_UNREGISTERICMATCHER = 6, 413 -ICM_QUERYMATCH = 7; 390 + ICM_ADDPROFILE = 1, 391 + ICM_DELETEPROFILE = 2, 392 + ICM_QUERYPROFILE = 3, 393 + ICM_SETDEFAULTPROFILE = 4, 394 + ICM_REGISTERICMATCHER = 5, 395 + ICM_UNREGISTERICMATCHER = 6, 396 + ICM_QUERYMATCH = 7; 414 397 415 398 enum : int { 416 - RGN_AND = 1, 417 - RGN_OR = 2, 418 - RGN_XOR = 3, 419 - RGN_DIFF = 4, 420 - RGN_COPY = 5 399 + RGN_AND = 1, 400 + RGN_OR = 2, 401 + RGN_XOR = 3, 402 + RGN_DIFF = 4, 403 + RGN_COPY = 5 421 404 } 422 405 423 406 const RGN_MIN = RGN_AND; 424 407 const RGN_MAX = RGN_COPY; 425 408 426 409 // Return values for CombineRgn() 427 410 enum { 428 - NULLREGION = 1, 429 - SIMPLEREGION = 2, 430 - COMPLEXREGION = 3 411 + NULLREGION = 1, 412 + SIMPLEREGION = 2, 413 + COMPLEXREGION = 3 431 414 } 432 415 433 416 const ERROR = 0; 434 417 alias ERROR RGN_ERROR; 435 418 436 419 // CreateDIBitmap() 437 420 const DWORD CBM_INIT = 4; 438 421 439 422 // CreateDIBitmap() 440 423 enum : UINT { 441 - DIB_RGB_COLORS = 0, 442 - DIB_PAL_COLORS = 1 424 + DIB_RGB_COLORS = 0, 425 + DIB_PAL_COLORS = 1 443 426 } 444 427 445 428 // --- 446 429 // Values for LOGFONT and CreateFont() 447 430 448 431 // FIXME: For D, replace with lfFaceName.length() 449 432 const LF_FACESIZE = 32; 450 433 const LF_FULLFACESIZE = 64; 451 434 452 435 // FIXME: Not needed for D, only EXTLOGFONT 453 436 const ELF_VENDOR_SIZE = 4; 454 437 455 438 // ??? 456 -const ELF_VERSION = 0; 439 +const ELF_VERSION = 0; 457 440 const ELF_CULTURE_LATIN = 0; 458 441 459 442 // LOGFONT.lfWeight 460 443 const LONG 461 -FW_DONTCARE = 0, 462 -FW_THIN = 100, 463 -FW_EXTRALIGHT = 200, 464 -FW_ULTRALIGHT = FW_EXTRALIGHT, 465 -FW_LIGHT = 300, 466 -FW_NORMAL = 400, 467 -FW_REGULAR = FW_NORMAL, 468 -FW_MEDIUM = 500, 469 -FW_SEMIBOLD = 600, 470 -FW_DEMIBOLD = FW_SEMIBOLD, 471 -FW_BOLD = 700, 472 -FW_EXTRABOLD = 800, 473 -FW_ULTRABOLD = FW_EXTRABOLD, 474 -FW_HEAVY = 900, 475 -FW_BLACK = FW_HEAVY; 444 + FW_DONTCARE = 0, 445 + FW_THIN = 100, 446 + FW_EXTRALIGHT = 200, 447 + FW_ULTRALIGHT = FW_EXTRALIGHT, 448 + FW_LIGHT = 300, 449 + FW_NORMAL = 400, 450 + FW_REGULAR = FW_NORMAL, 451 + FW_MEDIUM = 500, 452 + FW_SEMIBOLD = 600, 453 + FW_DEMIBOLD = FW_SEMIBOLD, 454 + FW_BOLD = 700, 455 + FW_EXTRABOLD = 800, 456 + FW_ULTRABOLD = FW_EXTRABOLD, 457 + FW_HEAVY = 900, 458 + FW_BLACK = FW_HEAVY; 476 459 477 460 // LOGFONT.lfCharSet 478 461 enum : DWORD { 479 - ANSI_CHARSET = 0, 480 - DEFAULT_CHARSET = 1, 481 - SYMBOL_CHARSET = 2, 482 - MAC_CHARSET = 77, 483 - SHIFTJIS_CHARSET = 128, 484 - HANGEUL_CHARSET = 129, 485 - HANGUL_CHARSET = 129, 486 - JOHAB_CHARSET = 130, 487 - GB2312_CHARSET = 134, 488 - CHINESEBIG5_CHARSET = 136, 489 - GREEK_CHARSET = 161, 490 - TURKISH_CHARSET = 162, 491 - VIETNAMESE_CHARSET = 163, 492 - HEBREW_CHARSET = 177, 493 - ARABIC_CHARSET = 178, 494 - BALTIC_CHARSET = 186, 495 - RUSSIAN_CHARSET = 204, 496 - THAI_CHARSET = 222, 497 - EASTEUROPE_CHARSET = 238, 498 - OEM_CHARSET = 255 462 + ANSI_CHARSET = 0, 463 + DEFAULT_CHARSET = 1, 464 + SYMBOL_CHARSET = 2, 465 + MAC_CHARSET = 77, 466 + SHIFTJIS_CHARSET = 128, 467 + HANGEUL_CHARSET = 129, 468 + HANGUL_CHARSET = 129, 469 + JOHAB_CHARSET = 130, 470 + GB2312_CHARSET = 134, 471 + CHINESEBIG5_CHARSET = 136, 472 + GREEK_CHARSET = 161, 473 + TURKISH_CHARSET = 162, 474 + VIETNAMESE_CHARSET = 163, 475 + HEBREW_CHARSET = 177, 476 + ARABIC_CHARSET = 178, 477 + BALTIC_CHARSET = 186, 478 + RUSSIAN_CHARSET = 204, 479 + THAI_CHARSET = 222, 480 + EASTEUROPE_CHARSET = 238, 481 + OEM_CHARSET = 255 499 482 } 500 483 501 484 // LOGFONT.lfOutPrecision 502 485 enum : BYTE { 503 - OUT_DEFAULT_PRECIS = 0, 504 - OUT_STRING_PRECIS, 505 - OUT_CHARACTER_PRECIS, 506 - OUT_STROKE_PRECIS, 507 - OUT_TT_PRECIS, 508 - OUT_DEVICE_PRECIS, 509 - OUT_RASTER_PRECIS, 510 - OUT_TT_ONLY_PRECIS, 511 - OUT_OUTLINE_PRECIS, 512 - OUT_SCREEN_OUTLINE_PRECIS, 513 - OUT_PS_ONLY_PRECIS, // 10 486 + OUT_DEFAULT_PRECIS = 0, 487 + OUT_STRING_PRECIS, 488 + OUT_CHARACTER_PRECIS, 489 + OUT_STROKE_PRECIS, 490 + OUT_TT_PRECIS, 491 + OUT_DEVICE_PRECIS, 492 + OUT_RASTER_PRECIS, 493 + OUT_TT_ONLY_PRECIS, 494 + OUT_OUTLINE_PRECIS, 495 + OUT_SCREEN_OUTLINE_PRECIS, 496 + OUT_PS_ONLY_PRECIS, // 10 514 497 } 515 498 516 499 // LOGFONT.lfClipPrecision 517 500 enum : BYTE { 518 - CLIP_DEFAULT_PRECIS = 0, 519 - CLIP_CHARACTER_PRECIS = 1, 520 - CLIP_STROKE_PRECIS = 2, 521 - CLIP_MASK = 15, 522 - CLIP_LH_ANGLES = 16, 523 - CLIP_TT_ALWAYS = 32, 524 - CLIP_DFA_DISABLE = 64, 525 - CLIP_EMBEDDED = 128 501 + CLIP_DEFAULT_PRECIS = 0, 502 + CLIP_CHARACTER_PRECIS = 1, 503 + CLIP_STROKE_PRECIS = 2, 504 + CLIP_MASK = 15, 505 + CLIP_LH_ANGLES = 16, 506 + CLIP_TT_ALWAYS = 32, 507 + CLIP_DFA_DISABLE = 64, 508 + CLIP_EMBEDDED = 128 526 509 } 527 510 528 511 // LOGFONT.lfQuality 529 512 enum : BYTE { 530 - DEFAULT_QUALITY = 0, 531 - DRAFT_QUALITY, 532 - PROOF_QUALITY, 533 - NONANTIALIASED_QUALITY, 534 - ANTIALIASED_QUALITY 513 + DEFAULT_QUALITY = 0, 514 + DRAFT_QUALITY, 515 + PROOF_QUALITY, 516 + NONANTIALIASED_QUALITY, 517 + ANTIALIASED_QUALITY 535 518 } 536 519 537 520 // LOGFONT.lfPitchAndFamily 538 521 539 522 const BYTE 540 -DEFAULT_PITCH = 0, 541 -FIXED_PITCH = 1, 542 -VARIABLE_PITCH = 2, 543 -MONO_FONT = 8, 544 -FF_DONTCARE = 0, 545 -FF_ROMAN = 16, 546 -FF_SWISS = 32, 547 -FF_SCRIPT = 64, 548 -FF_MODERN = 48, 549 -FF_DECORATIVE = 80; 523 + DEFAULT_PITCH = 0, 524 + FIXED_PITCH = 1, 525 + VARIABLE_PITCH = 2, 526 + MONO_FONT = 8, 527 + FF_DONTCARE = 0, 528 + FF_ROMAN = 16, 529 + FF_SWISS = 32, 530 + FF_SCRIPT = 64, 531 + FF_MODERN = 48, 532 + FF_DECORATIVE = 80; 550 533 551 534 // ---- 552 535 // Enums for the PANOSE struct 553 536 554 537 const PANOSE_COUNT=10; 555 538 556 539 enum { 557 - PAN_FAMILYTYPE_INDEX = 0, 558 - PAN_SERIFSTYLE_INDEX, 559 - PAN_WEIGHT_INDEX, 560 - PAN_PROPORTION_INDEX, 561 - PAN_CONTRAST_INDEX, 562 - PAN_STROKEVARIATION_INDEX, 563 - PAN_ARMSTYLE_INDEX, 564 - PAN_LETTERFORM_INDEX, 565 - PAN_MIDLINE_INDEX, 566 - PAN_XHEIGHT_INDEX 540 + PAN_FAMILYTYPE_INDEX = 0, 541 + PAN_SERIFSTYLE_INDEX, 542 + PAN_WEIGHT_INDEX, 543 + PAN_PROPORTION_INDEX, 544 + PAN_CONTRAST_INDEX, 545 + PAN_STROKEVARIATION_INDEX, 546 + PAN_ARMSTYLE_INDEX, 547 + PAN_LETTERFORM_INDEX, 548 + PAN_MIDLINE_INDEX, 549 + PAN_XHEIGHT_INDEX 567 550 } 568 551 569 552 const PAN_CULTURE_LATIN=0; 570 553 571 554 // NOTE: the first two values (PAN_ANY and PAN_NO_FIT) apply to all these enums! 572 555 enum : BYTE { 573 - PAN_ANY = 0, 574 - PAN_NO_FIT = 1, 556 + PAN_ANY = 0, 557 + PAN_NO_FIT = 1, 558 +} 559 + 560 +enum : BYTE { 561 + PAN_FAMILY_TEXT_DISPLAY = 2, 562 + PAN_FAMILY_SCRIPT, 563 + PAN_FAMILY_DECORATIVE, 564 + PAN_FAMILY_PICTORIAL 565 +} 566 +enum : BYTE { 567 + PAN_SERIF_COVE = 2, 568 + PAN_SERIF_OBTUSE_COVE, 569 + PAN_SERIF_SQUARE_COVE, 570 + PAN_SERIF_OBTUSE_SQUARE_COVE, 571 + PAN_SERIF_SQUARE, 572 + PAN_SERIF_THIN, 573 + PAN_SERIF_BONE, 574 + PAN_SERIF_EXAGGERATED, 575 + PAN_SERIF_TRIANGLE, 576 + PAN_SERIF_NORMAL_SANS, 577 + PAN_SERIF_OBTUSE_SANS, 578 + PAN_SERIF_PERP_SANS, 579 + PAN_SERIF_FLARED, 580 + PAN_SERIF_ROUNDED 575 581 } 576 582 577 583 enum : BYTE { 578 - PAN_FAMILY_TEXT_DISPLAY = 2, 579 - PAN_FAMILY_SCRIPT, 580 - PAN_FAMILY_DECORATIVE, 581 - PAN_FAMILY_PICTORIAL 582 -} 583 -enum : BYTE { 584 - PAN_SERIF_COVE = 2, 585 - PAN_SERIF_OBTUSE_COVE, 586 - PAN_SERIF_SQUARE_COVE, 587 - PAN_SERIF_OBTUSE_SQUARE_COVE, 588 - PAN_SERIF_SQUARE, 589 - PAN_SERIF_THIN, 590 - PAN_SERIF_BONE, 591 - PAN_SERIF_EXAGGERATED, 592 - PAN_SERIF_TRIANGLE, 593 - PAN_SERIF_NORMAL_SANS, 594 - PAN_SERIF_OBTUSE_SANS, 595 - PAN_SERIF_PERP_SANS, 596 - PAN_SERIF_FLARED, 597 - PAN_SERIF_ROUNDED 584 + PAN_WEIGHT_VERY_LIGHT = 2, 585 + PAN_WEIGHT_LIGHT, 586 + PAN_WEIGHT_THIN, 587 + PAN_WEIGHT_BOOK, 588 + PAN_WEIGHT_MEDIUM, 589 + PAN_WEIGHT_DEMI, 590 + PAN_WEIGHT_BOLD, 591 + PAN_WEIGHT_HEAVY, 592 + PAN_WEIGHT_BLACK, 593 + PAN_WEIGHT_NORD 598 594 } 599 595 600 596 enum : BYTE { 601 - PAN_WEIGHT_VERY_LIGHT = 2, 602 - PAN_WEIGHT_LIGHT, 603 - PAN_WEIGHT_THIN, 604 - PAN_WEIGHT_BOOK, 605 - PAN_WEIGHT_MEDIUM, 606 - PAN_WEIGHT_DEMI, 607 - PAN_WEIGHT_BOLD, 608 - PAN_WEIGHT_HEAVY, 609 - PAN_WEIGHT_BLACK, 610 - PAN_WEIGHT_NORD 597 + PAN_PROP_OLD_STYLE = 2, 598 + PAN_PROP_MODERN, 599 + PAN_PROP_EVEN_WIDTH, 600 + PAN_PROP_EXPANDED, 601 + PAN_PROP_CONDENSED, 602 + PAN_PROP_VERY_EXPANDED, 603 + PAN_PROP_VERY_CONDENSED, 604 + PAN_PROP_MONOSPACED 611 605 } 612 606 613 607 enum : BYTE { 614 - PAN_PROP_OLD_STYLE = 2, 615 - PAN_PROP_MODERN, 616 - PAN_PROP_EVEN_WIDTH, 617 - PAN_PROP_EXPANDED, 618 - PAN_PROP_CONDENSED, 619 - PAN_PROP_VERY_EXPANDED, 620 - PAN_PROP_VERY_CONDENSED, 621 - PAN_PROP_MONOSPACED 622 -} 623 - 624 -enum : BYTE { 625 - PAN_CONTRAST_NONE = 2, 626 - PAN_CONTRAST_VERY_LOW, 627 - PAN_CONTRAST_LOW, 628 - PAN_CONTRAST_MEDIUM_LOW, 629 - PAN_CONTRAST_MEDIUM, 630 - PAN_CONTRAST_MEDIUM_HIGH, 631 - PAN_CONTRAST_HIGH, 632 - PAN_CONTRAST_VERY_HIGH 608 + PAN_CONTRAST_NONE = 2, 609 + PAN_CONTRAST_VERY_LOW, 610 + PAN_CONTRAST_LOW, 611 + PAN_CONTRAST_MEDIUM_LOW, 612 + PAN_CONTRAST_MEDIUM, 613 + PAN_CONTRAST_MEDIUM_HIGH, 614 + PAN_CONTRAST_HIGH, 615 + PAN_CONTRAST_VERY_HIGH 633 616 } 634 617 635 618 // PANOSE.bStrokeVariation 636 619 enum : BYTE { 637 - PAN_STROKE_GRADUAL_DIAG = 2, 638 - PAN_STROKE_GRADUAL_TRAN, 639 - PAN_STROKE_GRADUAL_VERT, 640 - PAN_STROKE_GRADUAL_HORZ, 641 - PAN_STROKE_RAPID_VERT, 642 - PAN_STROKE_RAPID_HORZ, 643 - PAN_STROKE_INSTANT_VERT 620 + PAN_STROKE_GRADUAL_DIAG = 2, 621 + PAN_STROKE_GRADUAL_TRAN, 622 + PAN_STROKE_GRADUAL_VERT, 623 + PAN_STROKE_GRADUAL_HORZ, 624 + PAN_STROKE_RAPID_VERT, 625 + PAN_STROKE_RAPID_HORZ, 626 + PAN_STROKE_INSTANT_VERT 644 627 } 645 628 646 629 // PANOSE.bArmStyle 647 630 enum : BYTE { 648 - PAN_STRAIGHT_ARMS_HORZ = 2, 649 - PAN_STRAIGHT_ARMS_WEDGE, 650 - PAN_STRAIGHT_ARMS_VERT, 651 - PAN_STRAIGHT_ARMS_SINGLE_SERIF, 652 - PAN_STRAIGHT_ARMS_DOUBLE_SERIF, 653 - PAN_BENT_ARMS_HORZ, 654 - PAN_BENT_ARMS_WEDGE, 655 - PAN_BENT_ARMS_VERT, 656 - PAN_BENT_ARMS_SINGLE_SERIF, 657 - PAN_BENT_ARMS_DOUBLE_SERIF 631 + PAN_STRAIGHT_ARMS_HORZ = 2, 632 + PAN_STRAIGHT_ARMS_WEDGE, 633 + PAN_STRAIGHT_ARMS_VERT, 634 + PAN_STRAIGHT_ARMS_SINGLE_SERIF, 635 + PAN_STRAIGHT_ARMS_DOUBLE_SERIF, 636 + PAN_BENT_ARMS_HORZ, 637 + PAN_BENT_ARMS_WEDGE, 638 + PAN_BENT_ARMS_VERT, 639 + PAN_BENT_ARMS_SINGLE_SERIF, 640 + PAN_BENT_ARMS_DOUBLE_SERIF 658 641 } 659 642 660 643 // PANOSE.bLetterForm 661 644 enum : BYTE { 662 - PAN_LETT_NORMAL_CONTACT = 2, 663 - PAN_LETT_NORMAL_WEIGHTED, 664 - PAN_LETT_NORMAL_BOXED, 665 - PAN_LETT_NORMAL_FLATTENED, 666 - PAN_LETT_NORMAL_ROUNDED, 667 - PAN_LETT_NORMAL_OFF_CENTER, 668 - PAN_LETT_NORMAL_SQUARE, 669 - PAN_LETT_OBLIQUE_CONTACT, 670 - PAN_LETT_OBLIQUE_WEIGHTED, 671 - PAN_LETT_OBLIQUE_BOXED, 672 - PAN_LETT_OBLIQUE_FLATTENED, 673 - PAN_LETT_OBLIQUE_ROUNDED, 674 - PAN_LETT_OBLIQUE_OFF_CENTER, 675 - PAN_LETT_OBLIQUE_SQUARE 645 + PAN_LETT_NORMAL_CONTACT = 2, 646 + PAN_LETT_NORMAL_WEIGHTED, 647 + PAN_LETT_NORMAL_BOXED, 648 + PAN_LETT_NORMAL_FLATTENED, 649 + PAN_LETT_NORMAL_ROUNDED, 650 + PAN_LETT_NORMAL_OFF_CENTER, 651 + PAN_LETT_NORMAL_SQUARE, 652 + PAN_LETT_OBLIQUE_CONTACT, 653 + PAN_LETT_OBLIQUE_WEIGHTED, 654 + PAN_LETT_OBLIQUE_BOXED, 655 + PAN_LETT_OBLIQUE_FLATTENED, 656 + PAN_LETT_OBLIQUE_ROUNDED, 657 + PAN_LETT_OBLIQUE_OFF_CENTER, 658 + PAN_LETT_OBLIQUE_SQUARE 676 659 } 677 660 678 661 // PANOSE.bMidLine 679 662 enum : BYTE { 680 - PAN_MIDLINE_STANDARD_TRIMMED = 2, 681 - PAN_MIDLINE_STANDARD_POINTED, 682 - PAN_MIDLINE_STANDARD_SERIFED, 683 - PAN_MIDLINE_HIGH_TRIMMED, 684 - PAN_MIDLINE_HIGH_POINTED, 685 - PAN_MIDLINE_HIGH_SERIFED, 686 - PAN_MIDLINE_CONSTANT_TRIMMED, 687 - PAN_MIDLINE_CONSTANT_POINTED, 688 - PAN_MIDLINE_CONSTANT_SERIFED, 689 - PAN_MIDLINE_LOW_TRIMMED, 690 - PAN_MIDLINE_LOW_POINTED, 691 - PAN_MIDLINE_LOW_SERIFED 663 + PAN_MIDLINE_STANDARD_TRIMMED = 2, 664 + PAN_MIDLINE_STANDARD_POINTED, 665 + PAN_MIDLINE_STANDARD_SERIFED, 666 + PAN_MIDLINE_HIGH_TRIMMED, 667 + PAN_MIDLINE_HIGH_POINTED, 668 + PAN_MIDLINE_HIGH_SERIFED, 669 + PAN_MIDLINE_CONSTANT_TRIMMED, 670 + PAN_MIDLINE_CONSTANT_POINTED, 671 + PAN_MIDLINE_CONSTANT_SERIFED, 672 + PAN_MIDLINE_LOW_TRIMMED, 673 + PAN_MIDLINE_LOW_POINTED, 674 + PAN_MIDLINE_LOW_SERIFED 692 675 } 693 676 694 677 // PANOSE.bXHeight 695 678 enum : BYTE { 696 - PAN_XHEIGHT_CONSTANT_SMALL = 2, 697 - PAN_XHEIGHT_CONSTANT_STD, 698 - PAN_XHEIGHT_CONSTANT_LARGE, 699 - PAN_XHEIGHT_DUCKING_SMALL, 700 - PAN_XHEIGHT_DUCKING_STD, 701 - PAN_XHEIGHT_DUCKING_LARGE 679 + PAN_XHEIGHT_CONSTANT_SMALL = 2, 680 + PAN_XHEIGHT_CONSTANT_STD, 681 + PAN_XHEIGHT_CONSTANT_LARGE, 682 + PAN_XHEIGHT_DUCKING_SMALL, 683 + PAN_XHEIGHT_DUCKING_STD, 684 + PAN_XHEIGHT_DUCKING_LARGE 702 685 } 703 686 704 687 // ---- 705 688 // ??? 706 689 const FS_LATIN1 = 0x00000001; 707 690 const FS_LATIN2 = 0x00000002; 708 691 const FS_CYRILLIC = 0x00000004; ................................................................................ 719 702 const FS_CHINESETRAD = 0x00100000; 720 703 const FS_JOHAB = 0x00200000; 721 704 const FS_SYMBOL = 0x80000000; 722 705 723 706 // ---- 724 707 // Poly Fill Mode 725 708 enum : int { 726 - ALTERNATE = 1, 727 - WINDING = 2 709 + ALTERNATE = 1, 710 + WINDING = 2 728 711 } 729 712 const int POLYFILL_LAST = WINDING; 730 713 731 -// --- 714 +//--- 732 715 // LOGBRUSH 733 716 enum : LONG { 734 - HS_HORIZONTAL = 0, 735 - HS_VERTICAL, 736 - HS_FDIAGONAL, 737 - HS_BDIAGONAL, 738 - HS_CROSS, 739 - HS_DIAGCROSS 717 + HS_HORIZONTAL = 0, 718 + HS_VERTICAL, 719 + HS_FDIAGONAL, 720 + HS_BDIAGONAL, 721 + HS_CROSS, 722 + HS_DIAGCROSS 740 723 } 741 724 742 -// LOGBRUSH.lbStyle 725 +//LOGBRUSH.lbStyle 743 726 enum : UINT { 744 - BS_SOLID = 0, 745 - BS_NULL = 1, 746 - BS_HOLLOW = BS_NULL, 747 - BS_HATCHED, 748 - BS_PATTERN, 749 - BS_INDEXED, 750 - BS_DIBPATTERN, 751 - BS_DIBPATTERNPT, 752 - BS_PATTERN8X8, 753 - BS_DIBPATTERN8X8, 754 - BS_MONOPATTERN, 727 + BS_SOLID = 0, 728 + BS_NULL = 1, 729 + BS_HOLLOW = BS_NULL, 730 + BS_HATCHED, 731 + BS_PATTERN, 732 + BS_INDEXED, 733 + BS_DIBPATTERN, 734 + BS_DIBPATTERNPT, 735 + BS_PATTERN8X8, 736 + BS_DIBPATTERN8X8, 737 + BS_MONOPATTERN, 755 738 } 756 - 757 -// ----- 739 +//----- 758 740 // EXTLOGPEN, ExtCreatePen() 759 741 760 742 // EXTLOGPEN.elpPenStyle 761 743 enum : DWORD { 762 - PS_SOLID = 0, 763 - PS_DASH = 1, 764 - PS_DOT = 2, 765 - PS_DASHDOT = 3, 766 - PS_DASHDOTDOT = 4, 767 - PS_NULL = 5, 768 - PS_INSIDEFRAME = 6, 769 - PS_USERSTYLE = 7, 770 - PS_ALTERNATE = 8, 771 - PS_STYLE_MASK = 15, 744 + PS_SOLID = 0, 745 + PS_DASH = 1, 746 + PS_DOT = 2, 747 + PS_DASHDOT = 3, 748 + PS_DASHDOTDOT = 4, 749 + PS_NULL = 5, 750 + PS_INSIDEFRAME = 6, 751 + PS_USERSTYLE = 7, 752 + PS_ALTERNATE = 8, 753 + PS_STYLE_MASK = 15, 772 754 } 773 755 774 756 enum : DWORD { 775 - PS_COSMETIC = 0x00000000, 776 - PS_GEOMETRIC = 0x00010000, 777 - PS_TYPE_MASK = 0x000F0000, 757 + PS_COSMETIC = 0x00000000, 758 + PS_GEOMETRIC = 0x00010000, 759 + PS_TYPE_MASK = 0x000F0000, 778 760 } 779 761 enum : DWORD { 780 - PS_ENDCAP_ROUND = 0x00000000, 781 - PS_ENDCAP_SQUARE = 0x00000100, 782 - PS_ENDCAP_FLAT = 0x00000200, 783 - PS_ENDCAP_MASK = 0x00000F00, 762 + PS_ENDCAP_ROUND = 0x00000000, 763 + PS_ENDCAP_SQUARE = 0x00000100, 764 + PS_ENDCAP_FLAT = 0x00000200, 765 + PS_ENDCAP_MASK = 0x00000F00, 784 766 } 785 767 enum : DWORD { 786 - PS_JOIN_ROUND = 0x00000000, 787 - PS_JOIN_BEVEL = 0x00001000, 788 - PS_JOIN_MITER = 0x00002000, 789 - PS_JOIN_MASK = 0x0000F000, 768 + PS_JOIN_ROUND = 0x00000000, 769 + PS_JOIN_BEVEL = 0x00001000, 770 + PS_JOIN_MITER = 0x00002000, 771 + PS_JOIN_MASK = 0x0000F000, 790 772 } 791 773 792 774 // --- 793 775 // DeviceCapabilities() 794 776 795 777 enum : WORD { 796 - DC_FIELDS = 1, 797 - DC_PAPERS, 798 - DC_PAPERSIZE, 799 - DC_MINEXTENT, 800 - DC_MAXEXTENT, 801 - DC_BINS, 802 - DC_DUPLEX, 803 - DC_SIZE, 804 - DC_EXTRA, 805 - DC_VERSION, 806 - DC_DRIVER, 807 - DC_BINNAMES, 808 - DC_ENUMRESOLUTIONS, 809 - DC_FILEDEPENDENCIES, 810 - DC_TRUETYPE, 811 - DC_PAPERNAMES, 812 - DC_ORIENTATION, 813 - DC_COPIES, 814 - DC_BINADJUST, 815 - DC_EMF_COMPLIANT, 816 - DC_DATATYPE_PRODUCED, 817 - DC_COLLATE, 818 - DC_MANUFACTURER, 819 - DC_MODEL, 820 -} 821 - 822 -static 823 - 824 -if (WINVER >= 0x0500) 825 -{ 826 - enum { 827 - DC_PERSONALITY = 25, 828 - DC_PRINTRATE = 26, 829 - DC_PRINTRATEUNIT = 27, 830 - DC_PRINTERMEM = 28, 831 - DC_MEDIAREADY = 29, 832 - DC_STAPLE = 30, 833 - DC_PRINTRATEPPM = 31, 834 - DC_COLORDEVICE = 32, 835 - DC_NUP = 33, 836 - DC_MEDIATYPENAMES = 34, 837 - DC_MEDIATYPES = 35, 838 - } 839 - enum { 840 - PRINTRATEUNIT_PPM = 1, 841 - PRINTRATEUNIT_CPS = 2, 842 - PRINTRATEUNIT_LPM = 3, 843 - PRINTRATEUNIT_IPM = 4, 844 - } 845 -} 778 + DC_FIELDS = 1, 779 + DC_PAPERS, 780 + DC_PAPERSIZE, 781 + DC_MINEXTENT, 782 + DC_MAXEXTENT, 783 + DC_BINS, 784 + DC_DUPLEX, 785 + DC_SIZE, 786 + DC_EXTRA, 787 + DC_VERSION, 788 + DC_DRIVER, 789 + DC_BINNAMES, 790 + DC_ENUMRESOLUTIONS, 791 + DC_FILEDEPENDENCIES, 792 + DC_TRUETYPE, 793 + DC_PAPERNAMES, 794 + DC_ORIENTATION, 795 + DC_COPIES, 796 + DC_BINADJUST, 797 + DC_EMF_COMPLIANT, 798 + DC_DATATYPE_PRODUCED, 799 + DC_COLLATE, 800 + DC_MANUFACTURER, 801 + DC_MODEL, 802 +} 803 + 804 +static if (_WIN32_WINNT >= 0x500) { 805 + enum { 806 + DC_PERSONALITY = 25, 807 + DC_PRINTRATE = 26, 808 + DC_PRINTRATEUNIT = 27, 809 + DC_PRINTERMEM = 28, 810 + DC_MEDIAREADY = 29, 811 + DC_STAPLE = 30, 812 + DC_PRINTRATEPPM = 31, 813 + DC_COLORDEVICE = 32, 814 + DC_NUP = 33, 815 + DC_MEDIATYPENAMES = 34, 816 + DC_MEDIATYPES = 35, 817 + } 818 + enum { 819 + PRINTRATEUNIT_PPM = 1, 820 + PRINTRATEUNIT_CPS = 2, 821 + PRINTRATEUNIT_LPM = 3, 822 + PRINTRATEUNIT_IPM = 4, 823 + } 824 +} 825 + 846 826 847 827 // return from DC_TRUETYPE 848 828 const DWORD 849 -DCTT_BITMAP = 1, 850 -DCTT_DOWNLOAD = 2, 851 -DCTT_SUBDEV = 4, 852 -DCTT_DOWNLOAD_OUTLINE = 8; 829 + DCTT_BITMAP = 1, 830 + DCTT_DOWNLOAD = 2, 831 + DCTT_SUBDEV = 4, 832 + DCTT_DOWNLOAD_OUTLINE = 8; 853 833 854 -static 855 - 856 -if (WINVER >= 0x0400) 857 -{ 858 - // return from DC_BINADJUST 859 - enum : DWORD { 860 - DCBA_FACEUPNONE = 0x0000, 861 - DCBA_FACEUPCENTER = 0x0001, 862 - DCBA_FACEUPLEFT = 0x0002, 863 - DCBA_FACEUPRIGHT = 0x0003, 864 - DCBA_FACEDOWNNONE = 0x0100, 865 - DCBA_FACEDOWNCENTER = 0x0101, 866 - DCBA_FACEDOWNLEFT = 0x0102, 867 - DCBA_FACEDOWNRIGHT = 0x0103, 868 - } 834 +// return from DC_BINADJUST 835 +enum : DWORD { 836 + DCBA_FACEUPNONE = 0x0000, 837 + DCBA_FACEUPCENTER = 0x0001, 838 + DCBA_FACEUPLEFT = 0x0002, 839 + DCBA_FACEUPRIGHT = 0x0003, 840 + DCBA_FACEDOWNNONE = 0x0100, 841 + DCBA_FACEDOWNCENTER = 0x0101, 842 + DCBA_FACEDOWNLEFT = 0x0102, 843 + DCBA_FACEDOWNRIGHT = 0x0103, 869 844 } 870 - 871 -// --- 845 +//--- 872 846 873 847 const FLOODFILLBORDER = 0; 874 848 const FLOODFILLSURFACE = 1; 875 849 876 850 // ExtTextOut() 877 851 const UINT 878 -ETO_OPAQUE = 0x0002, 879 -ETO_CLIPPED = 0x0004, 880 -ETO_GLYPH_INDEX = 0x0010, 881 -ETO_RTLREADING = 0x0080, 882 -ETO_NUMERICSLOCAL = 0x0400, 883 -ETO_NUMERICSLATIN = 0x0800, 884 -ETO_IGNORELANGUAGE = 0x1000; 885 -static 886 - 887 -if (_WIN32_WINNT >= 0x0500) 888 -{ 889 - const UINT 890 - ETO_PDY = 0x2000; 852 + ETO_OPAQUE = 0x0002, 853 + ETO_CLIPPED = 0x0004, 854 + ETO_GLYPH_INDEX = 0x0010, 855 + ETO_RTLREADING = 0x0080, 856 + ETO_NUMERICSLOCAL = 0x0400, 857 + ETO_NUMERICSLATIN = 0x0800, 858 + ETO_IGNORELANGUAGE = 0x1000; 859 +static if (_WIN32_WINNT >= 0x500) { 860 + const UINT 861 + ETO_PDY = 0x2000; 891 862 } 892 863 893 864 // GdiComment() 894 865 enum { 895 - GDICOMMENT_BEGINGROUP = 0x00000002, 896 - GDICOMMENT_ENDGROUP = 0x00000003, 897 - GDICOMMENT_UNICODE_STRING = 0x00000040, 898 - GDICOMMENT_UNICODE_END = 0x00000080, 899 - GDICOMMENT_MULTIFORMATS = 0x40000004, 900 - GDICOMMENT_IDENTIFIER = 0x43494447, 901 - GDICOMMENT_WINDOWS_METAFILE = 0x80000001, 866 + GDICOMMENT_BEGINGROUP = 0x00000002, 867 + GDICOMMENT_ENDGROUP = 0x00000003, 868 + GDICOMMENT_UNICODE_STRING = 0x00000040, 869 + GDICOMMENT_UNICODE_END = 0x00000080, 870 + GDICOMMENT_MULTIFORMATS = 0x40000004, 871 + GDICOMMENT_IDENTIFIER = 0x43494447, 872 + GDICOMMENT_WINDOWS_METAFILE = 0x80000001, 902 873 } 903 874 904 875 // Get/SetArcDirection() 905 876 enum : int { 906 - AD_COUNTERCLOCKWISE = 1, 907 - AD_CLOCKWISE = 2 877 + AD_COUNTERCLOCKWISE = 1, 878 + AD_CLOCKWISE = 2 908 879 } 909 880 910 881 const RDH_RECTANGLES = 1; 911 882 912 883 // GCPRESULTS.lpClass 913 884 enum { 914 - GCPCLASS_LATIN = 1, 915 - GCPCLASS_HEBREW = 2, 916 - GCPCLASS_ARABIC = 2, 917 - GCPCLASS_NEUTRAL, 918 - GCPCLASS_LOCALNUMBER, 919 - GCPCLASS_LATINNUMBER, 920 - GCPCLASS_LATINNUMERICTERMINATOR, 921 - GCPCLASS_LATINNUMERICSEPARATOR, 922 - GCPCLASS_NUMERICSEPARATOR, // = 8, 923 - GCPCLASS_POSTBOUNDRTL = 16, 924 - GCPCLASS_POSTBOUNDLTR = 32, 925 - GCPCLASS_PREBOUNDRTL = 64, 926 - GCPCLASS_PREBOUNDLTR = 128, 927 - GCPGLYPH_LINKAFTER = 0x4000, 928 - GCPGLYPH_LINKBEFORE = 0x8000 885 + GCPCLASS_LATIN = 1, 886 + GCPCLASS_HEBREW = 2, 887 + GCPCLASS_ARABIC = 2, 888 + GCPCLASS_NEUTRAL, 889 + GCPCLASS_LOCALNUMBER, 890 + GCPCLASS_LATINNUMBER, 891 + GCPCLASS_LATINNUMERICTERMINATOR, 892 + GCPCLASS_LATINNUMERICSEPARATOR, 893 + GCPCLASS_NUMERICSEPARATOR, // = 8, 894 + GCPCLASS_POSTBOUNDRTL = 16, 895 + GCPCLASS_POSTBOUNDLTR = 32, 896 + GCPCLASS_PREBOUNDRTL = 64, 897 + GCPCLASS_PREBOUNDLTR = 128, 898 + GCPGLYPH_LINKAFTER = 0x4000, 899 + GCPGLYPH_LINKBEFORE = 0x8000 929 900 } 930 901 931 902 // GetBoundsRect(), SetBoundsRect() 932 903 const UINT 933 -DCB_RESET = 1, 934 -DCB_ACCUMULATE = 2, 935 -DCB_SET = DCB_RESET | DCB_ACCUMULATE, 936 -DCB_ENABLE = 4, 937 -DCB_DISABLE = 8, 938 -DCB_DIRTY = DCB_ACCUMULATE; 904 + DCB_RESET = 1, 905 + DCB_ACCUMULATE = 2, 906 + DCB_SET = DCB_RESET | DCB_ACCUMULATE, 907 + DCB_ENABLE = 4, 908 + DCB_DISABLE = 8, 909 + DCB_DIRTY = DCB_ACCUMULATE; 939 910 940 -// --- 911 +//--- 941 912 // GetObjectType() 942 913 enum : DWORD { 943 - OBJ_PEN = 1, 944 - OBJ_BRUSH, 945 - OBJ_DC, 946 - OBJ_METADC, 947 - OBJ_PAL, 948 - OBJ_FONT, 949 - OBJ_BITMAP, 950 - OBJ_REGION, 951 - OBJ_METAFILE, 952 - OBJ_MEMDC, 953 - OBJ_EXTPEN, 954 - OBJ_ENHMETADC, 955 - OBJ_ENHMETAFILE, 956 - OBJ_COLORSPACE, 914 + OBJ_PEN = 1, 915 + OBJ_BRUSH, 916 + OBJ_DC, 917 + OBJ_METADC, 918 + OBJ_PAL, 919 + OBJ_FONT, 920 + OBJ_BITMAP, 921 + OBJ_REGION, 922 + OBJ_METAFILE, 923 + OBJ_MEMDC, 924 + OBJ_EXTPEN, 925 + OBJ_ENHMETADC, 926 + OBJ_ENHMETAFILE, 927 + OBJ_COLORSPACE, 957 928 } 958 929 959 -// --------------------- 930 +//--------------------- 960 931 // Capabilities for GetDeviceCaps(dc, xxx) 961 932 962 933 enum : int { 963 - DRIVERVERSION = 0, 964 - TECHNOLOGY = 2, 965 - HORZSIZE = 4, 966 - VERTSIZE = 6, 967 - HORZRES = 8, 968 - VERTRES = 10, 969 - BITSPIXEL = 12, 970 - PLANES = 14, 971 - NUMBRUSHES = 16, 972 - NUMPENS = 18, 973 - NUMMARKERS = 20, 974 - NUMFONTS = 22, 975 - NUMCOLORS = 24, 976 - PDEVICESIZE = 26, 977 - CURVECAPS = 28, 978 - LINECAPS = 30, 979 - POLYGONALCAPS = 32, 980 - TEXTCAPS = 34, 981 - CLIPCAPS = 36, 982 - RASTERCAPS = 38, 983 - ASPECTX = 40, 984 - ASPECTY = 42, 985 - ASPECTXY = 44, 986 - LOGPIXELSX = 88, 987 - LOGPIXELSY = 90, 988 - SIZEPALETTE = 104, 989 - NUMRESERVED = 106, 990 - COLORRES = 108, 991 - PHYSICALWIDTH = 110, 992 - PHYSICALHEIGHT = 111, 993 - PHYSICALOFFSETX = 112, 994 - PHYSICALOFFSETY = 113, 995 - SCALINGFACTORX = 114, 996 - SCALINGFACTORY = 115, 997 - VREFRESH = 116, 998 - DESKTOPVERTRES = 117, 999 - DESKTOPHORZRES = 118, 1000 - BLTALIGNMENT = 119 1001 -} 1002 -static 1003 - 1004 -if (WINVER >= 0x0500) 1005 -{ 1006 - int 1007 - SHADEBLENDCAPS = 120, 1008 - COLORMGMTCAPS = 121; 934 + DRIVERVERSION = 0, 935 + TECHNOLOGY = 2, 936 + HORZSIZE = 4, 937 + VERTSIZE = 6, 938 + HORZRES = 8, 939 + VERTRES = 10, 940 + BITSPIXEL = 12, 941 + PLANES = 14, 942 + NUMBRUSHES = 16, 943 + NUMPENS = 18, 944 + NUMMARKERS = 20, 945 + NUMFONTS = 22, 946 + NUMCOLORS = 24, 947 + PDEVICESIZE = 26, 948 + CURVECAPS = 28, 949 + LINECAPS = 30, 950 + POLYGONALCAPS = 32, 951 + TEXTCAPS = 34, 952 + CLIPCAPS = 36, 953 + RASTERCAPS = 38, 954 + ASPECTX = 40, 955 + ASPECTY = 42, 956 + ASPECTXY = 44, 957 + LOGPIXELSX = 88, 958 + LOGPIXELSY = 90, 959 + SIZEPALETTE = 104, 960 + NUMRESERVED = 106, 961 + COLORRES = 108, 962 + PHYSICALWIDTH = 110, 963 + PHYSICALHEIGHT = 111, 964 + PHYSICALOFFSETX = 112, 965 + PHYSICALOFFSETY = 113, 966 + SCALINGFACTORX = 114, 967 + SCALINGFACTORY = 115, 968 + VREFRESH = 116, 969 + DESKTOPVERTRES = 117, 970 + DESKTOPHORZRES = 118, 971 + BLTALIGNMENT = 119 972 +} 973 +static if (_WIN32_WINNT >= 0x500) { 974 +enum : int { 975 + SHADEBLENDCAPS = 120, 976 + COLORMGMTCAPS = 121, 977 +} 1009 978 } 1010 979 1011 980 // Return values for GetDeviceCaps(dc, TECHNOLOGY) 1012 981 enum : int { 1013 - DT_PLOTTER = 0, 1014 - DT_RASDISPLAY, 1015 - DT_RASPRINTER, 1016 - DT_RASCAMERA, 1017 - DT_CHARSTREAM, 1018 - DT_METAFILE, 1019 - DT_DISPFILE // = 6 982 + DT_PLOTTER = 0, 983 + DT_RASDISPLAY, 984 + DT_RASPRINTER, 985 + DT_RASCAMERA, 986 + DT_CHARSTREAM, 987 + DT_METAFILE, 988 + DT_DISPFILE // = 6 1020 989 } 1021 990 1022 991 // Return values for GetDeviceCaps(dc, RASTERCAPS) 1023 992 const int 1024 -RC_NONE = 0, 1025 -RC_BITBLT = 1, 1026 -RC_BANDING = 2, 1027 -RC_SCALING = 4, 1028 -RC_BITMAP64 = 8, 1029 -RC_GDI20_OUTPUT = 16, 1030 -RC_GDI20_STATE = 32, 1031 -RC_SAVEBITMAP = 64, 1032 -RC_DI_BITMAP = 128, 1033 -RC_PALETTE = 256, 1034 -RC_DIBTODEV = 512, 1035 -RC_BIGFONT = 1024, 1036 -RC_STRETCHBLT = 2048, 1037 -RC_FLOODFILL = 4096, 1038 -RC_STRETCHDIB = 8192, 1039 -RC_OP_DX_OUTPUT = 0x4000, 1040 -RC_DEVBITS = 0x8000; 1041 - 1042 -static 1043 - 1044 -if (WINVER >= 0x0500) 1045 -{ 1046 - /* Shading and blending caps */ 1047 - const SB_NONE = 0x00000000; 1048 - const SB_CONST_ALPHA = 0x00000001; 1049 - const SB_PIXEL_ALPHA = 0x00000002; 1050 - const SB_PREMULT_ALPHA = 0x00000004; 1051 - const SB_GRAD_RECT = 0x00000010; 1052 - const SB_GRAD_TRI = 0x00000020; 1053 - 1054 - /* Color Management caps */ 1055 - const CM_NONE = 0x00000000; 1056 - const CM_DEVICE_ICM = 0x00000001; 1057 - const CM_GAMMA_RAMP = 0x00000002; 1058 - const CM_CMYK_COLOR = 0x00000004; 993 + RC_NONE = 0, 994 + RC_BITBLT = 1, 995 + RC_BANDING = 2, 996 + RC_SCALING = 4, 997 + RC_BITMAP64 = 8, 998 + RC_GDI20_OUTPUT = 16, 999 + RC_GDI20_STATE = 32, 1000 + RC_SAVEBITMAP = 64, 1001 + RC_DI_BITMAP = 128, 1002 + RC_PALETTE = 256, 1003 + RC_DIBTODEV = 512, 1004 + RC_BIGFONT = 1024, 1005 + RC_STRETCHBLT = 2048, 1006 + RC_FLOODFILL = 4096, 1007 + RC_STRETCHDIB = 8192, 1008 + RC_OP_DX_OUTPUT = 0x4000, 1009 + RC_DEVBITS = 0x8000; 1010 + 1011 +static if (_WIN32_WINNT >= 0x500) { 1012 + /* Shading and blending caps */ 1013 + const SB_NONE = 0x00000000; 1014 + const SB_CONST_ALPHA = 0x00000001; 1015 + const SB_PIXEL_ALPHA = 0x00000002; 1016 + const SB_PREMULT_ALPHA = 0x00000004; 1017 + const SB_GRAD_RECT = 0x00000010; 1018 + const SB_GRAD_TRI = 0x00000020; 1019 + /* Color Management caps */ 1020 + const CM_NONE = 0x00000000; 1021 + const CM_DEVICE_ICM = 0x00000001; 1022 + const CM_GAMMA_RAMP = 0x00000002; 1023 + const CM_CMYK_COLOR = 0x00000004; 1059 1024 } 1060 1025 1061 1026 // Return values for GetDeviceCaps(dc, CURVECAPS) 1062 1027 const int 1063 -CC_NONE = 0, 1064 -CC_CIRCLES = 1, 1065 -CC_PIE = 2, 1066 -CC_CHORD = 4, 1067 -CC_ELLIPSES = 8, 1068 -CC_WIDE = 16, 1069 -CC_STYLED = 32, 1070 -CC_WIDESTYLED = 64, 1071 -CC_INTERIORS = 128, 1072 -CC_ROUNDRECT = 256; 1028 + CC_NONE = 0, 1029 + CC_CIRCLES = 1, 1030 + CC_PIE = 2, 1031 + CC_CHORD = 4, 1032 + CC_ELLIPSES = 8, 1033 + CC_WIDE = 16, 1034 + CC_STYLED = 32, 1035 + CC_WIDESTYLED = 64, 1036 + CC_INTERIORS = 128, 1037 + CC_ROUNDRECT = 256; 1073 1038 1074 1039 // Return values for GetDeviceCaps(dc, LINECAPS) 1075 1040 1076 1041 const int 1077 -LC_NONE = 0, 1078 -LC_POLYLINE = 2, 1079 -LC_MARKER = 4, 1080 -LC_POLYMARKER = 8, 1081 -LC_WIDE = 16, 1082 -LC_STYLED = 32, 1083 -LC_WIDESTYLED = 64, 1084 -LC_INTERIORS = 128; 1042 + LC_NONE = 0, 1043 + LC_POLYLINE = 2, 1044 + LC_MARKER = 4, 1045 + LC_POLYMARKER = 8, 1046 + LC_WIDE = 16, 1047 + LC_STYLED = 32, 1048 + LC_WIDESTYLED = 64, 1049 + LC_INTERIORS = 128; 1085 1050 1086 1051 // Return values for GetDeviceCaps(dc, POLYGONALCAPS) 1087 1052 1088 1053 const int 1089 -PC_NONE = 0, 1090 -PC_POLYGON = 1, 1091 -PC_RECTANGLE = 2, 1092 -PC_WINDPOLYGON = 4, 1093 -PC_TRAPEZOID = 4, 1094 -PC_SCANLINE = 8, 1095 -PC_WIDE = 16, 1096 -PC_STYLED = 32, 1097 -PC_WIDESTYLED = 64, 1098 -PC_INTERIORS = 128, 1099 -PC_POLYPOLYGON = 256, 1100 -PC_PATHS = 512; 1054 + PC_NONE = 0, 1055 + PC_POLYGON = 1, 1056 + PC_RECTANGLE = 2, 1057 + PC_WINDPOLYGON = 4, 1058 + PC_TRAPEZOID = 4, 1059 + PC_SCANLINE = 8, 1060 + PC_WIDE = 16, 1061 + PC_STYLED = 32, 1062 + PC_WIDESTYLED = 64, 1063 + PC_INTERIORS = 128, 1064 + PC_POLYPOLYGON = 256, 1065 + PC_PATHS = 512; 1101 1066 1102 1067 /* Clipping Capabilities */ 1103 -const int CP_NONE = 0, 1104 - CP_RECTANGLE = 1, 1105 - CP_REGION = 2; 1068 +const int CP_NONE = 0, 1069 + CP_RECTANGLE = 1, 1070 + CP_REGION = 2; 1106 1071 1107 1072 // Return values for GetDeviceCaps(dc, TEXTCAPS) 1108 1073 1109 1074 const int 1110 -TC_OP_CHARACTER = 1, 1111 -TC_OP_STROKE = 2, 1112 -TC_CP_STROKE = 4, 1113 -TC_CR_90 = 8, 1114 -TC_CR_ANY = 16, 1115 -TC_SF_X_YINDEP = 32, 1116 -TC_SA_DOUBLE = 64, 1117 -TC_SA_INTEGER = 128, 1118 -TC_SA_CONTIN = 256, 1119 -TC_EA_DOUBLE = 512, 1120 -TC_IA_ABLE = 1024, 1121 -TC_UA_ABLE = 2048, 1122 -TC_SO_ABLE = 4096, 1123 -TC_RA_ABLE = 8192, 1124 -TC_VA_ABLE = 16384, 1125 -TC_RESERVED = 32768, 1126 -TC_SCROLLBLT = 65536; 1075 + TC_OP_CHARACTER = 1, 1076 + TC_OP_STROKE = 2, 1077 + TC_CP_STROKE = 4, 1078 + TC_CR_90 = 8, 1079 + TC_CR_ANY = 16, 1080 + TC_SF_X_YINDEP = 32, 1081 + TC_SA_DOUBLE = 64, 1082 + TC_SA_INTEGER = 128, 1083 + TC_SA_CONTIN = 256, 1084 + TC_EA_DOUBLE = 512, 1085 + TC_IA_ABLE = 1024, 1086 + TC_UA_ABLE = 2048, 1087 + TC_SO_ABLE = 4096, 1088 + TC_RA_ABLE = 8192, 1089 + TC_VA_ABLE = 16384, 1090 + TC_RESERVED = 32768, 1091 + TC_SCROLLBLT = 65536; 1127 1092 1128 1093 // End GetDeviceCaps 1129 -// --------------------- 1094 +//--------------------- 1130 1095 // GetCharacterPlacement(), and GetFontLanguageInfo() 1131 1096 const DWORD 1132 -GCP_DBCS = 1, 1133 -GCP_REORDER = 2, 1134 -GCP_USEKERNING = 8, 1135 -GCP_GLYPHSHAPE = 16, 1136 -GCP_LIGATE = 32, 1137 -GCP_DIACRITIC = 256, 1138 -GCP_KASHIDA = 1024, 1139 -GCP_ERROR = 0x8000, 1140 -GCP_JUSTIFY = 0x10000, 1141 -GCP_CLASSIN = 0x80000, 1142 -GCP_MAXEXTENT = 0x100000, 1143 -GCP_JUSTIFYIN = 0x200000, 1144 -GCP_DISPLAYZWG = 0x400000, 1145 -GCP_SYMSWAPOFF = 0x800000, 1146 -GCP_NUMERICOVERRIDE = 0x1000000, 1147 -GCP_NEUTRALOVERRIDE = 0x2000000, 1148 -GCP_NUMERICSLATIN = 0x4000000, 1149 -GCP_NUMERICSLOCAL = 0x8000000, 1150 - 1151 -// Only for GetFontLanguageInfo() 1152 -FLI_GLYPHS = 0x40000, 1153 -FLI_MASK = 0x103b; 1097 + GCP_DBCS = 1, 1098 + GCP_REORDER = 2, 1099 + GCP_USEKERNING = 8, 1100 + GCP_GLYPHSHAPE = 16, 1101 + GCP_LIGATE = 32, 1102 + GCP_DIACRITIC = 256, 1103 + GCP_KASHIDA = 1024, 1104 + GCP_ERROR = 0x8000, 1105 + GCP_JUSTIFY = 0x10000, 1106 + GCP_CLASSIN = 0x80000, 1107 + GCP_MAXEXTENT = 0x100000, 1108 + GCP_JUSTIFYIN = 0x200000, 1109 + GCP_DISPLAYZWG = 0x400000, 1110 + GCP_SYMSWAPOFF = 0x800000, 1111 + GCP_NUMERICOVERRIDE = 0x1000000, 1112 + GCP_NEUTRALOVERRIDE = 0x2000000, 1113 + GCP_NUMERICSLATIN = 0x4000000, 1114 + GCP_NUMERICSLOCAL = 0x8000000, 1115 + // Only for GetFontLanguageInfo() 1116 + FLI_GLYPHS = 0x40000, 1117 + FLI_MASK = 0x103b; 1154 1118 1155 1119 // GetGlyphOutline() 1156 1120 enum : UINT { 1157 - GGO_METRICS = 0, 1158 - GGO_BITMAP = 1, 1159 - GGO_NATIVE = 2, 1160 - GGO_BEZIER = 3, 1161 - GGO_GRAY2_BITMAP = 4, 1162 - GGO_GRAY4_BITMAP = 5, 1163 - GGO_GRAY8_BITMAP = 6, 1164 - GGO_GLYPH_INDEX = 128, 1165 - GGO_UNHINTED = 256 1121 + GGO_METRICS = 0, 1122 + GGO_BITMAP = 1, 1123 + GGO_NATIVE = 2, 1124 + GGO_BEZIER = 3, 1125 + GGO_GRAY2_BITMAP = 4, 1126 + GGO_GRAY4_BITMAP = 5, 1127 + GGO_GRAY8_BITMAP = 6, 1128 + GGO_GLYPH_INDEX = 128, 1129 + GGO_UNHINTED = 256 1166 1130 } 1167 1131 1168 1132 enum : int { 1169 - GM_COMPATIBLE = 1, 1170 - GM_ADVANCED 1133 + GM_COMPATIBLE = 1, 1134 + GM_ADVANCED 1171 1135 } 1172 1136 const GM_LAST = GM_ADVANCED; 1173 1137 1174 1138 enum : int { 1175 - MM_TEXT = 1, 1176 - MM_LOMETRIC, 1177 - MM_HIMETRIC, 1178 - MM_LOENGLISH, 1179 - MM_HIENGLISH, 1180 - MM_TWIPS, 1181 - MM_ISOTROPIC, 1182 - MM_ANISOTROPIC, 1139 + MM_TEXT = 1, 1140 + MM_LOMETRIC, 1141 + MM_HIMETRIC, 1142 + MM_LOENGLISH, 1143 + MM_HIENGLISH, 1144 + MM_TWIPS, 1145 + MM_ISOTROPIC, 1146 + MM_ANISOTROPIC, 1183 1147 } 1184 1148 1185 1149 const int 1186 -MM_MIN = MM_TEXT, 1187 -MM_MAX = MM_ANISOTROPIC, 1188 -MM_MAX_FIXEDSCALE = MM_TWIPS; 1150 + MM_MIN = MM_TEXT, 1151 + MM_MAX = MM_ANISOTROPIC, 1152 + MM_MAX_FIXEDSCALE = MM_TWIPS; 1189 1153 1190 1154 const ABSOLUTE = 1; 1191 1155 const RELATIVE = 2; 1192 1156 1193 1157 enum : BYTE { 1194 - PC_RESERVED = 1, 1195 - PC_EXPLICIT = 2, 1196 - PC_NOCOLLAPSE = 4 1158 + PC_RESERVED = 1, 1159 + PC_EXPLICIT = 2, 1160 + PC_NOCOLLAPSE = 4 1197 1161 } 1198 1162 1199 1163 /* FIXME: move to win32.commctrl ? */ 1200 - 1201 1164 // ImageList 1202 1165 const COLORREF 1203 -CLR_NONE = 0xffffffff, 1204 -CLR_INVALID = CLR_NONE, 1205 -CLR_DEFAULT = 0xff000000; 1166 + CLR_NONE = 0xffffffff, 1167 + CLR_INVALID = CLR_NONE, 1168 + CLR_DEFAULT = 0xff000000; 1206 1169 1207 1170 // RASTERIZER_STATUS.wFlags 1208 1171 const short 1209 -TT_AVAILABLE = 1, 1210 -TT_ENABLED = 2; 1172 + TT_AVAILABLE = 1, 1173 + TT_ENABLED = 2; 1211 1174 1212 1175 // GetStockObject() 1213 1176 enum : int { 1214 - WHITE_BRUSH = 0, 1215 - LTGRAY_BRUSH, 1216 - GRAY_BRUSH, 1217 - DKGRAY_BRUSH, 1218 - BLACK_BRUSH, 1219 - HOLLOW_BRUSH, // = 5 1220 - NULL_BRUSH = HOLLOW_BRUSH, 1221 - WHITE_PEN = 6, 1222 - BLACK_PEN, 1223 - NULL_PEN, // = 8 1224 - OEM_FIXED_FONT = 10, 1225 - ANSI_FIXED_FONT, 1226 - ANSI_VAR_FONT, 1227 - SYSTEM_FONT, 1228 - DEVICE_DEFAULT_FONT, 1229 - DEFAULT_PALETTE, 1230 - SYSTEM_FIXED_FONT, 1231 -} 1232 -static 1233 - 1234 -if (WINVER >= 0x0400) 1235 -{ 1236 - enum : int { 1237 - DEFAULT_GUI_FONT = SYSTEM_FIXED_FONT + 1, 1238 - } 1239 -} 1240 - 1241 -static 1242 - 1243 -if (_WIN32_WINNT >= 0x0500) 1244 -{ 1245 - enum : int { 1246 - DC_BRUSH = DEFAULT_GUI_FONT + 1, 1247 - DC_PEN, 1248 - } 1249 -} 1250 - 1251 -static 1252 - 1253 -if (_WIN32_WINNT >= 0x0500) 1254 -{ 1255 - const STOCK_LAST = DC_PEN; 1256 -} 1257 -else static 1258 - 1259 - if (WINVER >= 0x0400) 1260 - { 1261 - const STOCK_LAST = DEFAULT_GUI_FONT; 1262 - } 1263 - else 1264 - { 1265 - const STOCK_LAST = SYSTEM_FIXED_FONT; 1266 - } 1177 + WHITE_BRUSH = 0, 1178 + LTGRAY_BRUSH, 1179 + GRAY_BRUSH, 1180 + DKGRAY_BRUSH, 1181 + BLACK_BRUSH, 1182 + HOLLOW_BRUSH, // = 5 1183 + NULL_BRUSH = HOLLOW_BRUSH, 1184 + WHITE_PEN = 6, 1185 + BLACK_PEN, 1186 + NULL_PEN, // = 8 1187 + OEM_FIXED_FONT = 10, 1188 + ANSI_FIXED_FONT, 1189 + ANSI_VAR_FONT, 1190 + SYSTEM_FONT, 1191 + DEVICE_DEFAULT_FONT, 1192 + DEFAULT_PALETTE, 1193 + SYSTEM_FIXED_FONT, 1194 + DEFAULT_GUI_FONT = SYSTEM_FIXED_FONT + 1, 1195 +} 1196 +static if (_WIN32_WINNT >= 0x500) { 1197 + enum : int { 1198 + DC_BRUSH = DEFAULT_GUI_FONT + 1, 1199 + DC_PEN, 1200 + } 1201 +} 1202 + 1203 +static if (_WIN32_WINNT >= 0x500) { 1204 + const STOCK_LAST = DC_PEN; 1205 +} else { 1206 + const STOCK_LAST = DEFAULT_GUI_FONT; 1207 +} 1267 1208 1268 1209 // Get/SetSystemPaletteUse() 1269 1210 enum : UINT { 1270 - SYSPAL_ERROR = 0, 1271 - SYSPAL_STATIC = 1, 1272 - SYSPAL_NOSTATIC = 2, 1273 - SYSPAL_NOSTATIC256 = 3, 1211 + SYSPAL_ERROR = 0, 1212 + SYSPAL_STATIC = 1, 1213 + SYSPAL_NOSTATIC = 2, 1214 + SYSPAL_NOSTATIC256 = 3, 1274 1215 } 1275 1216 1276 1217 // SetTextAlign() 1277 1218 const UINT 1278 -TA_TOP = 0, 1279 -TA_CENTER = 6, 1280 -TA_BOTTOM = 8, 1281 -TA_BASELINE = 24, 1282 -TA_LEFT = 0, 1283 -TA_RIGHT = 2, 1284 -TA_RTLREADING = 256, 1285 -TA_NOUPDATECP = 0, 1286 -TA_UPDATECP = 1, 1287 -TA_MASK = TA_BASELINE + TA_CENTER + TA_UPDATECP + TA_RTLREADING, 1288 -VTA_BASELINE = TA_BASELINE, 1289 -VTA_CENTER = TA_CENTER, 1290 -VTA_LEFT = TA_BOTTOM, 1291 -VTA_RIGHT = TA_TOP, 1292 -VTA_BOTTOM = TA_RIGHT, 1293 -VTA_TOP = TA_LEFT; 1219 + TA_TOP = 0, 1220 + TA_CENTER = 6, 1221 + TA_BOTTOM = 8, 1222 + TA_BASELINE = 24, 1223 + TA_LEFT = 0, 1224 + TA_RIGHT = 2, 1225 + TA_RTLREADING = 256, 1226 + TA_NOUPDATECP = 0, 1227 + TA_UPDATECP = 1, 1228 + TA_MASK = TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING, 1229 + VTA_BASELINE = TA_BASELINE, 1230 + VTA_CENTER = TA_CENTER, 1231 + VTA_LEFT = TA_BOTTOM, 1232 + VTA_RIGHT = TA_TOP, 1233 + VTA_BOTTOM = TA_RIGHT, 1234 + VTA_TOP = TA_LEFT; 1294 1235 1295 1236 // EMRMODIFYWORLDTRANSFORM.iMode 1296 1237 enum : DWORD { 1297 - MWT_IDENTITY = 1, 1298 - MWT_LEFTMULTIPLY, 1299 - MWT_RIGHTMULTIPLY 1238 + MWT_IDENTITY = 1, 1239 + MWT_LEFTMULTIPLY, 1240 + MWT_RIGHTMULTIPLY 1300 1241 } 1301 1242 1302 1243 const DWORD 1303 -MWT_MIN = MWT_IDENTITY, 1304 -MWT_MAX = MWT_RIGHTMULTIPLY; 1244 + MWT_MIN = MWT_IDENTITY, 1245 + MWT_MAX = MWT_RIGHTMULTIPLY; 1305 1246 1306 1247 enum { 1307 - TRANSPARENT = 1, 1308 - OPAQUE = 2 1248 + TRANSPARENT = 1, 1249 + OPAQUE = 2 1309 1250 } 1310 1251 1311 1252 // Get/SetStretchMode() 1312 1253 enum : int { 1313 - BLACKONWHITE = 1, 1314 - WHITEONBLACK = 2, 1315 - COLORONCOLOR = 3, 1316 - HALFTONE = 4, 1254 + BLACKONWHITE = 1, 1255 + WHITEONBLACK = 2, 1256 + COLORONCOLOR = 3, 1257 + HALFTONE = 4, 1317 1258 1318 - STRETCH_ANDSCANS = 1, 1319 - STRETCH_ORSCANS = 2, 1320 - STRETCH_DELETESCANS = 3, 1321 - STRETCH_HALFTONE = 4, 1259 + STRETCH_ANDSCANS = 1, 1260 + STRETCH_ORSCANS = 2, 1261 + STRETCH_DELETESCANS = 3, 1262 + STRETCH_HALFTONE = 4, 1322 1263 1323 - MAXSTRETCHBLTMODE = 4 1264 + MAXSTRETCHBLTMODE = 4 1324 1265 } 1325 1266 1326 1267 // TranslateCharsetInfo() 1327 1268 enum : DWORD { 1328 - TCI_SRCCHARSET = 1, 1329 - TCI_SRCCODEPAGE = 2, 1330 - TCI_SRCFONTSIG = 3, 1331 - TCI_SRCLOCALE = 0x1000, 1269 + TCI_SRCCHARSET = 1, 1270 + TCI_SRCCODEPAGE = 2, 1271 + TCI_SRCFONTSIG = 3, 1272 + TCI_SRCLOCALE = 0x1000, 1332 1273 } 1333 1274 1334 1275 // SetICMMode() 1335 1276 enum : int { 1336 - ICM_OFF = 1, 1337 - ICM_ON = 2, 1338 - ICM_QUERY = 3, 1339 - ICM_DONE_OUTSIDEDC = 4, 1277 + ICM_OFF = 1, 1278 + ICM_ON = 2, 1279 + ICM_QUERY = 3, 1280 + ICM_DONE_OUTSIDEDC = 4, 1340 1281 } 1341 1282 1342 1283 // ---- 1343 1284 // Escape() Spooler Error Codes 1344 1285 enum : int { 1345 - SP_NOTREPORTED = 0x4000, 1346 - SP_ERROR = -1, 1347 - SP_APPABORT = -2, 1348 - SP_USERABORT = -3, 1349 - SP_OUTOFDISK = -4, 1350 - SP_OUTOFMEMORY = -5 1286 + SP_NOTREPORTED = 0x4000, 1287 + SP_ERROR = -1, 1288 + SP_APPABORT = -2, 1289 + SP_USERABORT = -3, 1290 + SP_OUTOFDISK = -4, 1291 + SP_OUTOFMEMORY = -5 1351 1292 } 1352 1293 1353 1294 // Escape(), ExtEscape() 1354 1295 // Most of the following are deprecated (Win16 only) 1355 1296 enum : int { 1356 - NEWFRAME = 1, 1357 - ABORTDOC = 2, 1358 - NEXTBAND = 3, 1359 - SETCOLORTABLE = 4, 1360 - GETCOLORTABLE = 5, 1361 - FLUSHOUTPUT = 6, 1362 - DRAFTMODE = 7, 1363 - QUERYESCSUPPORT = 8, 1364 - SETABORTPROC = 9, 1365 - STARTDOC = 10, 1366 - ENDDOC = 11, 1367 - GETPHYSPAGESIZE = 12, 1368 - GETPRINTINGOFFSET = 13, 1369 - GETSCALINGFACTOR = 14, 1370 - MFCOMMENT = 15, 1371 - GETPENWIDTH = 16, 1372 - SETCOPYCOUNT = 17, 1373 - SELECTPAPERSOURCE = 18, 1374 - DEVICEDATA = 19, 1375 - PASSTHROUGH = 19, 1376 - GETTECHNOLOGY = 20, 1377 - SETLINECAP = 21, 1378 - SETLINEJOIN = 22, 1379 - SETMITERLIMIT = 23, 1380 - BANDINFO = 24, 1381 - DRAWPATTERNRECT = 25, 1382 - GETVECTORPENSIZE = 26, 1383 - GETVECTORBRUSHSIZE = 27, 1384 - ENABLEDUPLEX = 28, 1385 - GETSETPAPERBINS = 29, 1386 - GETSETPRINTORIENT = 30, 1387 - ENUMPAPERBINS = 31, 1388 - SETDIBSCALING = 32, 1389 - EPSPRINTING = 33, 1390 - ENUMPAPERMETRICS = 34, 1391 - GETSETPAPERMETRICS = 35, 1392 - POSTSCRIPT_DATA = 37, 1393 - POSTSCRIPT_IGNORE = 38, 1394 - MOUSETRAILS = 39, 1395 - GETDEVICEUNITS = 42, 1396 - GETEXTENDEDTEXTMETRICS = 256, 1397 - GETEXTENTTABLE = 257, 1398 - GETPAIRKERNTABLE = 258, 1399 - GETTRACKKERNTABLE = 259, 1400 - EXTTEXTOUT = 512, 1401 - GETFACENAME = 513, 1402 - DOWNLOADFACE = 514, 1403 - ENABLERELATIVEWIDTHS = 768, 1404 - ENABLEPAIRKERNING = 769, 1405 - SETKERNTRACK = 770, 1406 - SETALLJUSTVALUES = 771, 1407 - SETCHARSET = 772, 1408 - STRETCHBLT = 2048, 1409 - METAFILE_DRIVER = 2049, 1410 - GETSETSCREENPARAMS = 3072, 1411 - QUERYDIBSUPPORT = 3073, 1412 - BEGIN_PATH = 4096, 1413 - CLIP_TO_PATH = 4097, 1414 - END_PATH = 4098, 1415 - EXT_DEVICE_CAPS = 4099, 1416 - RESTORE_CTM = 4100, 1417 - SAVE_CTM = 4101, 1418 - SET_ARC_DIRECTION = 4102, 1419 - SET_BACKGROUND_COLOR = 4103, 1420 - SET_POLY_MODE = 4104, 1421 - SET_SCREEN_ANGLE = 4105, 1422 - SET_SPREAD = 4106, 1423 - TRANSFORM_CTM = 4107, 1424 - SET_CLIP_BOX = 4108, 1425 - SET_BOUNDS = 4109, 1426 - SET_MIRROR_MODE = 4110, 1427 - OPENCHANNEL = 4110, 1428 - DOWNLOADHEADER = 4111, 1429 - CLOSECHANNEL = 4112, 1430 - POSTSCRIPT_PASSTHROUGH = 4115, 1431 - ENCAPSULATED_POSTSCRIPT = 4116, 1432 - POSTSCRIPT_IDENTIFY = 4117, 1433 - POSTSCRIPT_INJECTION = 4118, 1434 - CHECKJPEGFORMAT = 4119, 1435 - CHECKPNGFORMAT = 4120, 1436 - GET_PS_FEATURESETTING = 4121, 1437 - SPCLPASSTHROUGH2 = 4568, 1297 + NEWFRAME = 1, 1298 + ABORTDOC = 2, 1299 + NEXTBAND = 3, 1300 + SETCOLORTABLE = 4, 1301 + GETCOLORTABLE = 5, 1302 + FLUSHOUTPUT = 6, 1303 + DRAFTMODE = 7, 1304 + QUERYESCSUPPORT = 8, 1305 + SETABORTPROC = 9, 1306 + STARTDOC = 10, 1307 + ENDDOC = 11, 1308 + GETPHYSPAGESIZE = 12, 1309 + GETPRINTINGOFFSET = 13, 1310 + GETSCALINGFACTOR = 14, 1311 + MFCOMMENT = 15, 1312 + GETPENWIDTH = 16, 1313 + SETCOPYCOUNT = 17, 1314 + SELECTPAPERSOURCE = 18, 1315 + DEVICEDATA = 19, 1316 + PASSTHROUGH = 19, 1317 + GETTECHNOLOGY = 20, 1318 + SETLINECAP = 21, 1319 + SETLINEJOIN = 22, 1320 + SETMITERLIMIT = 23, 1321 + BANDINFO = 24, 1322 + DRAWPATTERNRECT = 25, 1323 + GETVECTORPENSIZE = 26, 1324 + GETVECTORBRUSHSIZE = 27, 1325 + ENABLEDUPLEX = 28, 1326 + GETSETPAPERBINS = 29, 1327 + GETSETPRINTORIENT = 30, 1328 + ENUMPAPERBINS = 31, 1329 + SETDIBSCALING = 32, 1330 + EPSPRINTING = 33, 1331 + ENUMPAPERMETRICS = 34, 1332 + GETSETPAPERMETRICS = 35, 1333 + POSTSCRIPT_DATA = 37, 1334 + POSTSCRIPT_IGNORE = 38, 1335 + MOUSETRAILS = 39, 1336 + GETDEVICEUNITS = 42, 1337 + GETEXTENDEDTEXTMETRICS = 256, 1338 + GETEXTENTTABLE = 257, 1339 + GETPAIRKERNTABLE = 258, 1340 + GETTRACKKERNTABLE = 259, 1341 + EXTTEXTOUT = 512, 1342 + GETFACENAME = 513, 1343 + DOWNLOADFACE = 514, 1344 + ENABLERELATIVEWIDTHS = 768, 1345 + ENABLEPAIRKERNING = 769, 1346 + SETKERNTRACK = 770, 1347 + SETALLJUSTVALUES = 771, 1348 + SETCHARSET = 772, 1349 + STRETCHBLT = 2048, 1350 + METAFILE_DRIVER = 2049, 1351 + GETSETSCREENPARAMS = 3072, 1352 + QUERYDIBSUPPORT = 3073, 1353 + BEGIN_PATH = 4096, 1354 + CLIP_TO_PATH = 4097, 1355 + END_PATH = 4098, 1356 + EXT_DEVICE_CAPS = 4099, 1357 + RESTORE_CTM = 4100, 1358 + SAVE_CTM = 4101, 1359 + SET_ARC_DIRECTION = 4102, 1360 + SET_BACKGROUND_COLOR = 4103, 1361 + SET_POLY_MODE = 4104, 1362 + SET_SCREEN_ANGLE = 4105, 1363 + SET_SPREAD = 4106, 1364 + TRANSFORM_CTM = 4107, 1365 + SET_CLIP_BOX = 4108, 1366 + SET_BOUNDS = 4109, 1367 + SET_MIRROR_MODE = 4110, 1368 + OPENCHANNEL = 4110, 1369 + DOWNLOADHEADER = 4111, 1370 + CLOSECHANNEL = 4112, 1371 + POSTSCRIPT_PASSTHROUGH = 4115, 1372 + ENCAPSULATED_POSTSCRIPT = 4116, 1373 + POSTSCRIPT_IDENTIFY = 4117, 1374 + POSTSCRIPT_INJECTION = 4118, 1375 + CHECKJPEGFORMAT = 4119, 1376 + CHECKPNGFORMAT = 4120, 1377 + GET_PS_FEATURESETTING = 4121, 1378 + SPCLPASSTHROUGH2 = 4568, 1438 1379 } 1439 1380 1440 1381 enum : int { 1441 - PSIDENT_GDICENTRIC = 0, 1442 - PSIDENT_PSCENTRIC = 1, 1382 + PSIDENT_GDICENTRIC = 0, 1383 + PSIDENT_PSCENTRIC = 1, 1443 1384 } 1444 1385 1445 1386 /* 1446 1387 * Header structure for the input buffer to POSTSCRIPT_INJECTION escape 1447 1388 */ 1448 -struct PSINJECTDATA 1449 -{ 1450 - DWORD DataBytes; 1451 - WORD InjectionPoint; 1452 - WORD PageNumber; 1389 +struct PSINJECTDATA { 1390 + DWORD DataBytes; 1391 + WORD InjectionPoint; 1392 + WORD PageNumber; 1453 1393 } 1454 -alias PSINJECTDATA*PPSINJECTDATA; 1394 +alias PSINJECTDATA* PPSINJECTDATA; 1455 1395 1456 1396 /* Constants for PSINJECTDATA.InjectionPoint field */ 1457 1397 enum { 1458 - PSINJECT_BEGINSTREAM = 1, 1459 - PSINJECT_PSADOBE = 2, 1460 - PSINJECT_PAGESATEND = 3, 1461 - PSINJECT_PAGES = 4, 1462 - PSINJECT_DOCNEEDEDRES = 5, 1463 - PSINJECT_DOCSUPPLIEDRES = 6, 1464 - PSINJECT_PAGEORDER = 7, 1465 - PSINJECT_ORIENTATION = 8, 1466 - PSINJECT_BOUNDINGBOX = 9, 1467 - PSINJECT_DOCUMENTPROCESSCOLORS = 10, 1468 - PSINJECT_COMMENTS = 11, 1469 - PSINJECT_BEGINDEFAULTS = 12, 1470 - PSINJECT_ENDDEFAULTS = 13, 1471 - PSINJECT_BEGINPROLOG = 14, 1472 - PSINJECT_ENDPROLOG = 15, 1473 - PSINJECT_BEGINSETUP = 16, 1474 - PSINJECT_ENDSETUP = 17, 1475 - PSINJECT_TRAILER = 18, 1476 - PSINJECT_EOF = 19, 1477 - PSINJECT_ENDSTREAM = 20, 1478 - PSINJECT_DOCUMENTPROCESSCOLORSATEND = 21, 1479 - 1480 - PSINJECT_PAGENUMBER = 100, 1481 - PSINJECT_BEGINPAGESETUP = 101, 1482 - PSINJECT_ENDPAGESETUP = 102, 1483 - PSINJECT_PAGETRAILER = 103, 1484 - PSINJECT_PLATECOLOR = 104, 1485 - PSINJECT_SHOWPAGE = 105, 1486 - PSINJECT_PAGEBBOX = 106, 1487 - PSINJECT_ENDPAGECOMMENTS = 107, 1488 - 1489 - PSINJECT_VMSAVE = 200, 1490 - PSINJECT_VMRESTORE = 201, 1398 + PSINJECT_BEGINSTREAM = 1, 1399 + PSINJECT_PSADOBE = 2, 1400 + PSINJECT_PAGESATEND = 3, 1401 + PSINJECT_PAGES = 4, 1402 + PSINJECT_DOCNEEDEDRES = 5, 1403 + PSINJECT_DOCSUPPLIEDRES = 6, 1404 + PSINJECT_PAGEORDER = 7, 1405 + PSINJECT_ORIENTATION = 8, 1406 + PSINJECT_BOUNDINGBOX = 9, 1407 + PSINJECT_DOCUMENTPROCESSCOLORS = 10, 1408 + PSINJECT_COMMENTS = 11, 1409 + PSINJECT_BEGINDEFAULTS = 12, 1410 + PSINJECT_ENDDEFAULTS = 13, 1411 + PSINJECT_BEGINPROLOG = 14, 1412 + PSINJECT_ENDPROLOG = 15, 1413 + PSINJECT_BEGINSETUP = 16, 1414 + PSINJECT_ENDSETUP = 17, 1415 + PSINJECT_TRAILER = 18, 1416 + PSINJECT_EOF = 19, 1417 + PSINJECT_ENDSTREAM = 20, 1418 + PSINJECT_DOCUMENTPROCESSCOLORSATEND = 21, 1419 + 1420 + PSINJECT_PAGENUMBER = 100, 1421 + PSINJECT_BEGINPAGESETUP = 101, 1422 + PSINJECT_ENDPAGESETUP = 102, 1423 + PSINJECT_PAGETRAILER = 103, 1424 + PSINJECT_PLATECOLOR = 104, 1425 + PSINJECT_SHOWPAGE = 105, 1426 + PSINJECT_PAGEBBOX = 106, 1427 + PSINJECT_ENDPAGECOMMENTS = 107, 1428 + 1429 + PSINJECT_VMSAVE = 200, 1430 + PSINJECT_VMRESTORE = 201, 1491 1431 } 1492 1432 1493 1433 /* Parameter for GET_PS_FEATURESETTING escape */ 1494 1434 enum { 1495 - FEATURESETTING_NUP = 0, 1496 - FEATURESETTING_OUTPUT = 1, 1497 - FEATURESETTING_PSLEVEL = 2, 1498 - FEATURESETTING_CUSTPAPER = 3, 1499 - FEATURESETTING_MIRROR = 4, 1500 - FEATURESETTING_NEGATIVE = 5, 1501 - FEATURESETTING_PROTOCOL = 6, 1435 + FEATURESETTING_NUP = 0, 1436 + FEATURESETTING_OUTPUT = 1, 1437 + FEATURESETTING_PSLEVEL = 2, 1438 + FEATURESETTING_CUSTPAPER = 3, 1439 + FEATURESETTING_MIRROR = 4, 1440 + FEATURESETTING_NEGATIVE = 5, 1441 + FEATURESETTING_PROTOCOL = 6, 1502 1442 } 1503 1443 1504 1444 enum { 1505 - FEATURESETTING_PRIVATE_BEGIN = 0x1000, 1506 - FEATURESETTING_PRIVATE_END = 0x1FFF, 1445 + FEATURESETTING_PRIVATE_BEGIN = 0x1000, 1446 + FEATURESETTING_PRIVATE_END = 0x1FFF, 1507 1447 } 1508 1448 1509 1449 /* Value returned for FEATURESETTING_PROTOCOL */ 1510 -const PSPROTOCOL_ASCII = 0; 1511 -const PSPROTOCOL_BCP = 1; 1512 -const PSPROTOCOL_TBCP = 2; 1450 +const PSPROTOCOL_ASCII = 0; 1451 +const PSPROTOCOL_BCP = 1; 1452 +const PSPROTOCOL_TBCP = 2; 1513 1453 const PSPROTOCOL_BINARY = 3; 1514 1454 1515 1455 // ---- 1516 1456 1517 1457 const WPARAM PR_JOBSTATUS = 0; 1518 1458 1519 1459 // ??? ................................................................................ 1522 1462 const QDI_DIBTOSCREEN = 4; 1523 1463 const QDI_STRETCHDIB = 8; 1524 1464 1525 1465 const ASPECT_FILTERING = 1; 1526 1466 1527 1467 // LOGCOLORSPACE.lcsCSType 1528 1468 enum : LCSCSTYPE { 1529 - LCS_CALIBRATED_RGB = 0, 1530 - LCS_DEVICE_RGB, 1531 - LCS_DEVICE_CMYK 1469 + LCS_CALIBRATED_RGB = 0, 1470 + LCS_DEVICE_RGB, 1471 + LCS_DEVICE_CMYK 1532 1472 } /* What this for? */ 1533 1473 1534 1474 // LOGCOLORSPACE.lcsIntent 1535 1475 enum : LCSGAMUTMATCH { 1536 - LCS_GM_BUSINESS = 1, 1537 - LCS_GM_GRAPHICS = 2, 1538 - LCS_GM_IMAGES = 4, 1539 - LCS_GM_ABS_COLORIMETRIC = 8, 1476 + LCS_GM_BUSINESS = 1, 1477 + LCS_GM_GRAPHICS = 2, 1478 + LCS_GM_IMAGES = 4, 1479 + LCS_GM_ABS_COLORIMETRIC = 8, 1540 1480 } 1541 1481 1542 1482 const DWORD 1543 -RASTER_FONTTYPE = 1, 1544 -DEVICE_FONTTYPE = 2, 1545 -TRUETYPE_FONTTYPE = 4; 1483 + RASTER_FONTTYPE = 1, 1484 + DEVICE_FONTTYPE = 2, 1485 + TRUETYPE_FONTTYPE = 4; 1546 1486 1547 1487 // --- 1548 1488 // DEVMODE struct 1549 1489 1550 1490 // FIXME: Not needed for D (use .length instead) 1551 1491 const CCHDEVICENAME = 32; 1552 1492 const CCHFORMNAME = 32; 1553 1493 1554 1494 // DEVMODE.dmSpecVersion 1555 1495 // current version of specification 1556 -static 1557 - 1558 -if (WINVER >= 0x0500 || _WIN32_WINNT >= 0x0400) 1559 -{ 1560 - const WORD DM_SPECVERSION = 0x0401; 1561 -} 1562 -else static 1563 - 1564 - if (WINVER >= 0x0400) 1565 - { 1566 - const WORD DM_SPECVERSION = 0x0400; 1567 - } 1568 - else 1569 - { 1570 - const WORD DM_SPECVERSION = 0x0320; 1571 - } 1496 +const WORD DM_SPECVERSION = 0x0401; 1572 1497 1573 1498 // DEVMODE.dmOrientation 1574 1499 enum : short { 1575 - DMORIENT_PORTRAIT = 1, 1576 - DMORIENT_LANDSCAPE = 2 1500 + DMORIENT_PORTRAIT = 1, 1501 + DMORIENT_LANDSCAPE = 2 1577 1502 } 1578 1503 1579 1504 // DEVMODE.dmPaperSize 1580 1505 enum : short { 1581 - DMPAPER_LETTER = 1, 1582 - DMPAPER_LETTERSMALL, 1583 - DMPAPER_TABLOID, 1584 - DMPAPER_LEDGER, 1585 - DMPAPER_LEGAL, 1586 - DMPAPER_STATEMENT, 1587 - DMPAPER_EXECUTIVE, 1588 - DMPAPER_A3, 1589 - DMPAPER_A4, 1590 - DMPAPER_A4SMALL, 1591 - DMPAPER_A5, 1592 - DMPAPER_B4, 1593 - DMPAPER_B5, 1594 - DMPAPER_FOLIO, 1595 - DMPAPER_QUARTO, 1596 - DMPAPER_10X14, 1597 - DMPAPER_11X17, 1598 - DMPAPER_NOTE, 1599 - DMPAPER_ENV_9, 1600 - DMPAPER_ENV_10, 1601 - DMPAPER_ENV_11, 1602 - DMPAPER_ENV_12, 1603 - DMPAPER_ENV_14, 1604 - DMPAPER_CSHEET, 1605 - DMPAPER_DSHEET, 1606 - DMPAPER_ESHEET, 1607 - DMPAPER_ENV_DL, 1608 - DMPAPER_ENV_C5, 1609 - DMPAPER_ENV_C3, 1610 - DMPAPER_ENV_C4, 1611 - DMPAPER_ENV_C6, 1612 - DMPAPER_ENV_C65, 1613 - DMPAPER_ENV_B4, 1614 - DMPAPER_ENV_B5, 1615 - DMPAPER_ENV_B6, 1616 - DMPAPER_ENV_ITALY, 1617 - DMPAPER_ENV_MONARCH, 1618 - DMPAPER_ENV_PERSONAL, 1619 - DMPAPER_FANFOLD_US, 1620 - DMPAPER_FANFOLD_STD_GERMAN, 1621 - DMPAPER_FANFOLD_LGL_GERMAN, 1622 - DMPAPER_ISO_B4, 1623 - DMPAPER_JAPANESE_POSTCARD, 1624 - DMPAPER_9X11, 1625 - DMPAPER_10X11, 1626 - DMPAPER_15X11, 1627 - DMPAPER_ENV_INVITE, 1628 - DMPAPER_RESERVED_48, 1629 - DMPAPER_RESERVED_49, 1630 - DMPAPER_LETTER_EXTRA, 1631 - DMPAPER_LEGAL_EXTRA, 1632 - DMPAPER_TABLOID_EXTRA, 1633 - DMPAPER_A4_EXTRA, 1634 - DMPAPER_LETTER_TRANSVERSE, 1635 - DMPAPER_A4_TRANSVERSE, 1636 - DMPAPER_LETTER_EXTRA_TRANSVERSE, 1637 - DMPAPER_A_PLUS, 1638 - DMPAPER_B_PLUS, 1639 - DMPAPER_LETTER_PLUS, 1640 - DMPAPER_A4_PLUS, 1641 - DMPAPER_A5_TRANSVERSE, 1642 - DMPAPER_B5_TRANSVERSE, 1643 - DMPAPER_A3_EXTRA, 1644 - DMPAPER_A5_EXTRA, 1645 - DMPAPER_B5_EXTRA, 1646 - DMPAPER_A2, 1647 - DMPAPER_A3_TRANSVERSE, 1648 - DMPAPER_A3_EXTRA_TRANSVERSE // = 68 1649 -} 1650 -static 1651 - 1652 -if (WINVER >= 0x0500) 1653 -{ 1654 - enum : short { 1655 - DMPAPER_DBL_JAPANESE_POSTCARD = 69, 1656 - DMPAPER_A6, 1657 - DMPAPER_JENV_KAKU2, 1658 - DMPAPER_JENV_KAKU3, 1659 - DMPAPER_JENV_CHOU3, 1660 - DMPAPER_JENV_CHOU4, 1661 - DMPAPER_LETTER_ROTATED, 1662 - DMPAPER_A3_ROTATED, 1663 - DMPAPER_A4_ROTATED, 1664 - DMPAPER_A5_ROTATED, 1665 - DMPAPER_B4_JIS_ROTATED, 1666 - DMPAPER_B5_JIS_ROTATED, 1667 - DMPAPER_JAPANESE_POSTCARD_ROTATED, 1668 - DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED, 1669 - DMPAPER_A6_ROTATED, 1670 - DMPAPER_JENV_KAKU2_ROTATED, 1671 - DMPAPER_JENV_KAKU3_ROTATED, 1672 - DMPAPER_JENV_CHOU3_ROTATED, 1673 - DMPAPER_JENV_CHOU4_ROTATED, 1674 - DMPAPER_B6_JIS, 1675 - DMPAPER_B6_JIS_ROTATED, 1676 - DMPAPER_12X11, 1677 - DMPAPER_JENV_YOU4, 1678 - DMPAPER_JENV_YOU4_ROTATED, 1679 - DMPAPER_P16K, 1680 - DMPAPER_P32K, 1681 - DMPAPER_P32KBIG, 1682 - DMPAPER_PENV_1, 1683 - DMPAPER_PENV_2, 1684 - DMPAPER_PENV_3, 1685 - DMPAPER_PENV_4, 1686 - DMPAPER_PENV_5, 1687 - DMPAPER_PENV_6, 1688 - DMPAPER_PENV_7, 1689 - DMPAPER_PENV_8, 1690 - DMPAPER_PENV_9, 1691 - DMPAPER_PENV_10, 1692 - DMPAPER_P16K_ROTATED, 1693 - DMPAPER_P32K_ROTATED, 1694 - DMPAPER_P32KBIG_ROTATED, 1695 - DMPAPER_PENV_1_ROTATED, 1696 - DMPAPER_PENV_2_ROTATED, 1697 - DMPAPER_PENV_3_ROTATED, 1698 - DMPAPER_PENV_4_ROTATED, 1699 - DMPAPER_PENV_5_ROTATED, 1700 - DMPAPER_PENV_6_ROTATED, 1701 - DMPAPER_PENV_7_ROTATED, 1702 - DMPAPER_PENV_8_ROTATED, 1703 - DMPAPER_PENV_9_ROTATED, 1704 - DMPAPER_PENV_10_ROTATED // 118 1705 - } 1506 + DMPAPER_LETTER = 1, 1507 + DMPAPER_LETTERSMALL, 1508 + DMPAPER_TABLOID, 1509 + DMPAPER_LEDGER, 1510 + DMPAPER_LEGAL, 1511 + DMPAPER_STATEMENT, 1512 + DMPAPER_EXECUTIVE, 1513 + DMPAPER_A3, 1514 + DMPAPER_A4, 1515 + DMPAPER_A4SMALL, 1516 + DMPAPER_A5, 1517 + DMPAPER_B4, 1518 + DMPAPER_B5, 1519 + DMPAPER_FOLIO, 1520 + DMPAPER_QUARTO, 1521 + DMPAPER_10X14, 1522 + DMPAPER_11X17, 1523 + DMPAPER_NOTE, 1524 + DMPAPER_ENV_9, 1525 + DMPAPER_ENV_10, 1526 + DMPAPER_ENV_11, 1527 + DMPAPER_ENV_12, 1528 + DMPAPER_ENV_14, 1529 + DMPAPER_CSHEET, 1530 + DMPAPER_DSHEET, 1531 + DMPAPER_ESHEET, 1532 + DMPAPER_ENV_DL, 1533 + DMPAPER_ENV_C5, 1534 + DMPAPER_ENV_C3, 1535 + DMPAPER_ENV_C4, 1536 + DMPAPER_ENV_C6, 1537 + DMPAPER_ENV_C65, 1538 + DMPAPER_ENV_B4, 1539 + DMPAPER_ENV_B5, 1540 + DMPAPER_ENV_B6, 1541 + DMPAPER_ENV_ITALY, 1542 + DMPAPER_ENV_MONARCH, 1543 + DMPAPER_ENV_PERSONAL, 1544 + DMPAPER_FANFOLD_US, 1545 + DMPAPER_FANFOLD_STD_GERMAN, 1546 + DMPAPER_FANFOLD_LGL_GERMAN, 1547 + DMPAPER_ISO_B4, 1548 + DMPAPER_JAPANESE_POSTCARD, 1549 + DMPAPER_9X11, 1550 + DMPAPER_10X11, 1551 + DMPAPER_15X11, 1552 + DMPAPER_ENV_INVITE, 1553 + DMPAPER_RESERVED_48, 1554 + DMPAPER_RESERVED_49, 1555 + DMPAPER_LETTER_EXTRA, 1556 + DMPAPER_LEGAL_EXTRA, 1557 + DMPAPER_TABLOID_EXTRA, 1558 + DMPAPER_A4_EXTRA, 1559 + DMPAPER_LETTER_TRANSVERSE, 1560 + DMPAPER_A4_TRANSVERSE, 1561 + DMPAPER_LETTER_EXTRA_TRANSVERSE, 1562 + DMPAPER_A_PLUS, 1563 + DMPAPER_B_PLUS, 1564 + DMPAPER_LETTER_PLUS, 1565 + DMPAPER_A4_PLUS, 1566 + DMPAPER_A5_TRANSVERSE, 1567 + DMPAPER_B5_TRANSVERSE, 1568 + DMPAPER_A3_EXTRA, 1569 + DMPAPER_A5_EXTRA, 1570 + DMPAPER_B5_EXTRA, 1571 + DMPAPER_A2, 1572 + DMPAPER_A3_TRANSVERSE, 1573 + DMPAPER_A3_EXTRA_TRANSVERSE // = 68 1574 +} 1575 +static if (_WIN32_WINNT >= 0x500) { 1576 + enum : short { 1577 + DMPAPER_DBL_JAPANESE_POSTCARD = 69, 1578 + DMPAPER_A6, 1579 + DMPAPER_JENV_KAKU2, 1580 + DMPAPER_JENV_KAKU3, 1581 + DMPAPER_JENV_CHOU3, 1582 + DMPAPER_JENV_CHOU4, 1583 + DMPAPER_LETTER_ROTATED, 1584 + DMPAPER_A3_ROTATED, 1585 + DMPAPER_A4_ROTATED, 1586 + DMPAPER_A5_ROTATED, 1587 + DMPAPER_B4_JIS_ROTATED, 1588 + DMPAPER_B5_JIS_ROTATED, 1589 + DMPAPER_JAPANESE_POSTCARD_ROTATED, 1590 + DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED, 1591 + DMPAPER_A6_ROTATED, 1592 + DMPAPER_JENV_KAKU2_ROTATED, 1593 + DMPAPER_JENV_KAKU3_ROTATED, 1594 + DMPAPER_JENV_CHOU3_ROTATED, 1595 + DMPAPER_JENV_CHOU4_ROTATED, 1596 + DMPAPER_B6_JIS, 1597 + DMPAPER_B6_JIS_ROTATED, 1598 + DMPAPER_12X11, 1599 + DMPAPER_JENV_YOU4, 1600 + DMPAPER_JENV_YOU4_ROTATED, 1601 + DMPAPER_P16K, 1602 + DMPAPER_P32K, 1603 + DMPAPER_P32KBIG, 1604 + DMPAPER_PENV_1, 1605 + DMPAPER_PENV_2, 1606 + DMPAPER_PENV_3, 1607 + DMPAPER_PENV_4, 1608 + DMPAPER_PENV_5, 1609 + DMPAPER_PENV_6, 1610 + DMPAPER_PENV_7, 1611 + DMPAPER_PENV_8, 1612 + DMPAPER_PENV_9, 1613 + DMPAPER_PENV_10, 1614 + DMPAPER_P16K_ROTATED, 1615 + DMPAPER_P32K_ROTATED, 1616 + DMPAPER_P32KBIG_ROTATED, 1617 + DMPAPER_PENV_1_ROTATED, 1618 + DMPAPER_PENV_2_ROTATED, 1619 + DMPAPER_PENV_3_ROTATED, 1620 + DMPAPER_PENV_4_ROTATED, 1621 + DMPAPER_PENV_5_ROTATED, 1622 + DMPAPER_PENV_6_ROTATED, 1623 + DMPAPER_PENV_7_ROTATED, 1624 + DMPAPER_PENV_8_ROTATED, 1625 + DMPAPER_PENV_9_ROTATED, 1626 + DMPAPER_PENV_10_ROTATED // 118 1627 + } 1706 1628 } 1707 1629 1708 1630 const short DMPAPER_FIRST = DMPAPER_LETTER; 1709 1631 1710 -static 1711 - 1712 -if (WINVER >= 0x0500) 1713 - const short DMPAPER_LAST = DMPAPER_PENV_10_ROTATED; 1714 -else 1715 - const short DMPAPER_LAST = DMPAPER_A3_EXTRA_TRANSVERSE; 1632 +static if (_WIN32_WINNT >= 0x500) { 1633 + const short DMPAPER_LAST = DMPAPER_PENV_10_ROTATED; 1634 +} else { 1635 + const short DMPAPER_LAST = DMPAPER_A3_EXTRA_TRANSVERSE; 1636 +} 1716 1637 1717 1638 const short DMPAPER_USER = 256; 1639 + 1718 1640 1719 1641 // DEVMODE.dmDefaultSource 1720 1642 enum : short { 1721 - DMBIN_ONLYONE = 1, 1722 - DMBIN_UPPER = 1, 1723 - DMBIN_LOWER, 1724 - DMBIN_MIDDLE, 1725 - DMBIN_MANUAL, 1726 - DMBIN_ENVELOPE, 1727 - DMBIN_ENVMANUAL, 1728 - DMBIN_AUTO, 1729 - DMBIN_TRACTOR, 1730 - DMBIN_SMALLFMT, 1731 - DMBIN_LARGEFMT, 1732 - DMBIN_LARGECAPACITY, // = 11 1733 - DMBIN_CASSETTE = 14, 1734 - DMBIN_FORMSOURCE, 1643 + DMBIN_ONLYONE = 1, 1644 + DMBIN_UPPER = 1, 1645 + DMBIN_LOWER, 1646 + DMBIN_MIDDLE, 1647 + DMBIN_MANUAL, 1648 + DMBIN_ENVELOPE, 1649 + DMBIN_ENVMANUAL, 1650 + DMBIN_AUTO, 1651 + DMBIN_TRACTOR, 1652 + DMBIN_SMALLFMT, 1653 + DMBIN_LARGEFMT, 1654 + DMBIN_LARGECAPACITY, // = 11 1655 + DMBIN_CASSETTE = 14, 1656 + DMBIN_FORMSOURCE, 1735 1657 } 1736 -short 1737 -DMBIN_FIRST = DMBIN_UPPER, 1738 -DMBIN_LAST = DMBIN_FORMSOURCE, 1739 -DMBIN_USER = 256; 1658 +enum : short { 1659 + DMBIN_FIRST = DMBIN_UPPER, 1660 + DMBIN_LAST = DMBIN_FORMSOURCE, 1661 + DMBIN_USER = 256, 1662 +} 1740 1663 1741 1664 // DEVMODE.dmPrintQuality 1742 1665 enum : short { 1743 - DMRES_DRAFT = -1, 1744 - DMRES_LOW = -2, 1745 - DMRES_MEDIUM = -3, 1746 - DMRES_HIGH = -4 1666 + DMRES_DRAFT = -1, 1667 + DMRES_LOW = -2, 1668 + DMRES_MEDIUM = -3, 1669 + DMRES_HIGH = -4 1747 1670 } 1748 1671 1749 1672 // DEVMODE.dmColor 1750 1673 enum : short { 1751 - DMCOLOR_MONOCHROME = 1, 1752 - DMCOLOR_COLOR = 2 1674 + DMCOLOR_MONOCHROME = 1, 1675 + DMCOLOR_COLOR = 2 1753 1676 } 1754 1677 1755 1678 // DEVMODE.dmDuplex 1756 1679 enum : short { 1757 - DMDUP_SIMPLEX = 1, 1758 - DMDUP_VERTICAL = 2, 1759 - DMDUP_HORIZONTAL = 3 1680 + DMDUP_SIMPLEX = 1, 1681 + DMDUP_VERTICAL = 2, 1682 + DMDUP_HORIZONTAL = 3 1760 1683 } 1761 1684 1762 1685 // DEVMODE.dmTTOption 1763 1686 enum : short { 1764 - DMTT_BITMAP = 1, 1765 - DMTT_DOWNLOAD, 1766 - DMTT_SUBDEV, 1767 - DMTT_DOWNLOAD_OUTLINE 1687 + DMTT_BITMAP = 1, 1688 + DMTT_DOWNLOAD, 1689 + DMTT_SUBDEV, 1690 + DMTT_DOWNLOAD_OUTLINE 1768 1691 } 1769 1692 1770 1693 // DEVMODE.dmCollate 1771 1694 enum : short { 1772 - DMCOLLATE_FALSE = 0, 1773 - DMCOLLATE_TRUE 1774 -} 1775 - 1776 -static 1777 - 1778 -if (WINVER >= 0x0501) 1779 -{ 1780 - /* DEVMODE dmDisplayOrientation specifiations */ 1781 - enum : short { 1782 - DMDO_DEFAULT = 0, 1783 - DMDO_90 = 1, 1784 - DMDO_180 = 2, 1785 - DMDO_270 = 3, 1786 - } 1787 - 1788 - /* DEVMODE dmDisplayFixedOutput specifiations */ 1789 - enum : short { 1790 - DMDFO_DEFAULT = 0, 1791 - DMDFO_STRETCH = 1, 1792 - DMDFO_CENTER = 2, 1793 - } 1794 -} 1695 + DMCOLLATE_FALSE = 0, 1696 + DMCOLLATE_TRUE 1697 +} 1698 + 1699 +static if (_WIN32_WINNT >= 0x501) { 1700 + /* DEVMODE dmDisplayOrientation specifiations */ 1701 + enum : short { 1702 + DMDO_DEFAULT = 0, 1703 + DMDO_90 = 1, 1704 + DMDO_180 = 2, 1705 + DMDO_270 = 3, 1706 + } 1707 + 1708 + /* DEVMODE dmDisplayFixedOutput specifiations */ 1709 + enum : short { 1710 + DMDFO_DEFAULT = 0, 1711 + DMDFO_STRETCH = 1, 1712 + DMDFO_CENTER = 2, 1713 + } 1714 +} 1715 + 1795 1716 1796 1717 /* FIXME: this flags are deprecated ? */ 1797 - 1798 1718 // DEVMODE.dmDisplayFlags 1799 1719 const DWORD 1800 -DM_GRAYSCALE = 1, 1801 -DM_INTERLACED = 2; 1720 + DM_GRAYSCALE = 1, 1721 + DM_INTERLACED = 2; 1802 1722 1803 1723 const DWORD 1804 -DMDISPLAYFLAGS_TEXTMODE = 0x00000004; 1724 + DMDISPLAYFLAGS_TEXTMODE = 0x00000004; 1805 1725 1806 1726 /* dmNup , multiple logical page per physical page options */ 1807 1727 const DWORD 1808 -DMNUP_SYSTEM = 1, 1809 -DMNUP_ONEUP = 2; 1728 + DMNUP_SYSTEM = 1, 1729 + DMNUP_ONEUP = 2; 1810 1730 1811 1731 // DEVMODE.dmFields 1812 1732 const DWORD 1813 -DM_ORIENTATION = 0x00000001, 1814 -DM_PAPERSIZE = 0x00000002, 1815 -DM_PAPERLENGTH = 0x00000004, 1816 -DM_PAPERWIDTH = 0x00000008, 1817 -DM_SCALE = 0x00000010; 1818 -static 1819 - 1820 -if (WINVER >= 0x0500) 1821 -{ 1822 - const DWORD 1823 - DM_POSITION = 0x00000020, 1824 - DM_NUP = 0x00000040; 1733 + DM_ORIENTATION = 0x00000001, 1734 + DM_PAPERSIZE = 0x00000002, 1735 + DM_PAPERLENGTH = 0x00000004, 1736 + DM_PAPERWIDTH = 0x00000008, 1737 + DM_SCALE = 0x00000010; 1738 +static if (_WIN32_WINNT >= 0x500) { 1739 + const DWORD 1740 + DM_POSITION = 0x00000020, 1741 + DM_NUP = 0x00000040; 1825 1742 } 1826 - 1827 -static 1828 - 1829 -if (WINVER >= 0x0501) 1830 -{ 1831 - const DWORD 1832 - DM_DISPLAYORIENTATION = 0x00000080; 1743 +static if (_WIN32_WINNT >= 0x501) { 1744 + const DWORD 1745 + DM_DISPLAYORIENTATION = 0x00000080; 1833 1746 } 1834 - 1835 1747 const DWORD 1836 -DM_COPIES = 0x00000100, 1837 -DM_DEFAULTSOURCE = 0x00000200, 1838 -DM_PRINTQUALITY = 0x00000400, 1839 -DM_COLOR = 0x00000800, 1840 -DM_DUPLEX = 0x00001000, 1841 -DM_YRESOLUTION = 0x00002000, 1842 -DM_TTOPTION = 0x00004000, 1843 -DM_COLLATE = 0x00008000, 1844 -DM_FORMNAME = 0x00010000, 1845 -DM_LOGPIXELS = 0x00020000, 1846 -DM_BITSPERPEL = 0x00040000, 1847 -DM_PELSWIDTH = 0x00080000, 1848 -DM_PELSHEIGHT = 0x00100000, 1849 -DM_DISPLAYFLAGS = 0x00200000, 1850 -DM_DISPLAYFREQUENCY = 0x00400000; 1851 -static 1852 - 1853 -if (WINVER >= 0x0400) 1854 -{ 1855 - const DWORD 1856 - DM_ICMMETHOD = 0x00800000, 1857 - DM_ICMINTENT = 0x01000000, 1858 - DM_MEDIATYPE = 0x02000000, 1859 - DM_DITHERTYPE = 0x04000000, 1860 - DM_PANNINGWIDTH = 0x08000000, 1861 - DM_PANNINGHEIGHT = 0x10000000; 1862 -} 1863 - 1864 -static 1865 - 1866 -if (WINVER >= 0x0501) 1867 -{ 1868 - const DWORD 1869 - DM_DISPLAYFIXEDOUTPUT = 0x20000000; 1748 + DM_COPIES = 0x00000100, 1749 + DM_DEFAULTSOURCE = 0x00000200, 1750 + DM_PRINTQUALITY = 0x00000400, 1751 + DM_COLOR = 0x00000800, 1752 + DM_DUPLEX = 0x00001000, 1753 + DM_YRESOLUTION = 0x00002000, 1754 + DM_TTOPTION = 0x00004000, 1755 + DM_COLLATE = 0x00008000, 1756 + DM_FORMNAME = 0x00010000, 1757 + DM_LOGPIXELS = 0x00020000, 1758 + DM_BITSPERPEL = 0x00040000, 1759 + DM_PELSWIDTH = 0x00080000, 1760 + DM_PELSHEIGHT = 0x00100000, 1761 + DM_DISPLAYFLAGS = 0x00200000, 1762 + DM_DISPLAYFREQUENCY = 0x00400000, 1763 + DM_ICMMETHOD = 0x00800000, 1764 + DM_ICMINTENT = 0x01000000, 1765 + DM_MEDIATYPE = 0x02000000, 1766 + DM_DITHERTYPE = 0x04000000, 1767 + DM_PANNINGWIDTH = 0x08000000, 1768 + DM_PANNINGHEIGHT = 0x10000000; 1769 +static if (_WIN32_WINNT >= 0x501) { 1770 + const DWORD 1771 + DM_DISPLAYFIXEDOUTPUT = 0x20000000; 1870 1772 } 1871 1773 1872 1774 // DEVMODE.dmICMMethod 1873 1775 enum : DWORD { 1874 - DMICMMETHOD_NONE = 1, 1875 - DMICMMETHOD_SYSTEM = 2, 1876 - DMICMMETHOD_DRIVER = 3, 1877 - DMICMMETHOD_DEVICE = 4, 1878 - DMICMMETHOD_USER = 256 1776 + DMICMMETHOD_NONE = 1, 1777 + DMICMMETHOD_SYSTEM = 2, 1778 + DMICMMETHOD_DRIVER = 3, 1779 + DMICMMETHOD_DEVICE = 4, 1780 + DMICMMETHOD_USER = 256 1879 1781 } 1880 1782 1881 1783 // DEVMODE.dmICMIntent 1882 1784 enum : DWORD { 1883 - DMICM_SATURATE = 1, 1884 - DMICM_CONTRAST = 2, 1885 - DMICM_COLORIMETRIC = 3, 1886 - DMICM_ABS_COLORIMETRIC = 4, 1887 - DMICM_USER = 256 1785 + DMICM_SATURATE = 1, 1786 + DMICM_CONTRAST = 2, 1787 + DMICM_COLORIMETRIC = 3, 1788 + DMICM_ABS_COLORIMETRIC = 4, 1789 + DMICM_USER = 256 1888 1790 } 1889 1791 1890 1792 // DEVMODE.dmMediaType 1891 1793 enum : DWORD { 1892 - DMMEDIA_STANDARD = 1, 1893 - DMMEDIA_TRANSPARENCY = 2, 1894 - DMMEDIA_GLOSSY = 3, 1895 - DMMEDIA_USER = 256 1794 + DMMEDIA_STANDARD = 1, 1795 + DMMEDIA_TRANSPARENCY = 2, 1796 + DMMEDIA_GLOSSY = 3, 1797 + DMMEDIA_USER = 256 1896 1798 } 1897 1799 1898 1800 // DEVMODE.dmDitherType 1899 1801 enum : DWORD { 1900 - DMDITHER_NONE = 1, 1901 - DMDITHER_COARSE, 1902 - DMDITHER_FINE, 1903 - DMDITHER_LINEART, 1904 - DMDITHER_ERRORDIFFUSION, 1905 - DMDITHER_RESERVED6, 1906 - DMDITHER_RESERVED7, 1907 - DMDITHER_RESERVED8, 1908 - DMDITHER_RESERVED9, 1909 - DMDITHER_GRAYSCALE, 1910 - DMDITHER_USER = 256 1802 + DMDITHER_NONE = 1, 1803 + DMDITHER_COARSE, 1804 + DMDITHER_FINE, 1805 + DMDITHER_LINEART, 1806 + DMDITHER_ERRORDIFFUSION, 1807 + DMDITHER_RESERVED6, 1808 + DMDITHER_RESERVED7, 1809 + DMDITHER_RESERVED8, 1810 + DMDITHER_RESERVED9, 1811 + DMDITHER_GRAYSCALE, 1812 + DMDITHER_USER = 256 1911 1813 } 1912 1814 1913 1815 // ---- 1914 1816 // DocumentProperties() 1915 1817 const DWORD 1916 -DM_UPDATE = 1, 1917 -DM_COPY = 2, 1918 -DM_PROMPT = 4, 1919 -DM_MODIFY = 8, 1920 -DM_IN_BUFFER = DM_MODIFY, 1921 -DM_IN_PROMPT = DM_PROMPT, 1922 -DM_OUT_BUFFER = DM_COPY, 1923 -DM_OUT_DEFAULT = DM_UPDATE; 1924 - 1818 + DM_UPDATE = 1, 1819 + DM_COPY = 2, 1820 + DM_PROMPT = 4, 1821 + DM_MODIFY = 8, 1822 + DM_IN_BUFFER = DM_MODIFY, 1823 + DM_IN_PROMPT = DM_PROMPT, 1824 + DM_OUT_BUFFER = DM_COPY, 1825 + DM_OUT_DEFAULT = DM_UPDATE; 1925 1826 // --- 1926 1827 1927 1828 const GDI_ERROR = 0xFFFFFFFF; 1928 -const HGDI_ERROR= cast(HANDLE) GDI_ERROR; 1829 +const HGDI_ERROR= cast(HANDLE)GDI_ERROR; 1929 1830 1930 1831 // TEXTMETRIC.tmPitchAndFamily 1931 1832 const BYTE 1932 -TMPF_FIXED_PITCH = 1, 1933 -TMPF_VECTOR = 2, 1934 -TMPF_TRUETYPE = 4, 1935 -TMPF_DEVICE = 8; 1833 + TMPF_FIXED_PITCH = 1, 1834 + TMPF_VECTOR = 2, 1835 + TMPF_TRUETYPE = 4, 1836 + TMPF_DEVICE = 8; 1936 1837 1937 1838 // NEWTEXTMETRIC.ntmFlags 1938 1839 const DWORD 1939 -NTM_ITALIC = 0x00000001, 1940 -NTM_BOLD = 0x00000020, 1941 -NTM_REGULAR = 0x00000040, 1942 -NTM_NONNEGATIVE_AC = 0x00010000, 1943 -NTM_PS_OPENTYPE = 0x00020000, 1944 -NTM_TT_OPENTYPE = 0x00040000, 1945 -NTM_MULTIPLEMASTER = 0x00080000, 1946 -NTM_TYPE1 = 0x00100000, 1947 -NTM_DSIG = 0x00200000; 1840 + NTM_ITALIC = 0x00000001, 1841 + NTM_BOLD = 0x00000020, 1842 + NTM_REGULAR = 0x00000040, 1843 + NTM_NONNEGATIVE_AC = 0x00010000, 1844 + NTM_PS_OPENTYPE = 0x00020000, 1845 + NTM_TT_OPENTYPE = 0x00040000, 1846 + NTM_MULTIPLEMASTER = 0x00080000, 1847 + NTM_TYPE1 = 0x00100000, 1848 + NTM_DSIG = 0x00200000; 1948 1849 1949 1850 // --- 1950 1851 const DWORD TT_POLYGON_TYPE = 24; 1951 1852 1952 1853 // TTPOLYCURVE 1953 1854 enum : WORD { 1954 - TT_PRIM_LINE = 1, 1955 - TT_PRIM_QSPLINE = 2, 1956 - TT_PRIM_CSPLINE = 3, 1855 + TT_PRIM_LINE = 1, 1856 + TT_PRIM_QSPLINE = 2, 1857 + TT_PRIM_CSPLINE = 3, 1957 1858 } 1958 - 1959 1859 // --- 1960 -const FONTMAPPER_MAX = 10; 1860 +const FONTMAPPER_MAX = 10; 1961 1861 const ENHMETA_STOCK_OBJECT = 0x80000000; 1962 -const WGL_FONT_LINES = 0; 1963 -const WGL_FONT_POLYGONS = 1; 1862 +const WGL_FONT_LINES = 0; 1863 +const WGL_FONT_POLYGONS = 1; 1964 1864 1965 1865 // --- 1966 1866 // LAYERPLANEDESCRIPTOR.dwFlags 1967 1867 const DWORD 1968 -LPD_DOUBLEBUFFER = 1, 1969 -LPD_STEREO = 2, 1970 -LPD_SUPPORT_GDI = 16, 1971 -LPD_SUPPORT_OPENGL = 32, 1972 -LPD_SHARE_DEPTH = 64, 1973 -LPD_SHARE_STENCIL = 128, 1974 -LPD_SHARE_ACCUM = 256, 1975 -LPD_SWAP_EXCHANGE = 512, 1976 -LPD_SWAP_COPY = 1024, 1977 -LPD_TRANSPARENT = 4096; 1868 + LPD_DOUBLEBUFFER = 1, 1869 + LPD_STEREO = 2, 1870 + LPD_SUPPORT_GDI = 16, 1871 + LPD_SUPPORT_OPENGL = 32, 1872 + LPD_SHARE_DEPTH = 64, 1873 + LPD_SHARE_STENCIL = 128, 1874 + LPD_SHARE_ACCUM = 256, 1875 + LPD_SWAP_EXCHANGE = 512, 1876 + LPD_SWAP_COPY = 1024, 1877 + LPD_TRANSPARENT = 4096; 1978 1878 1979 1879 // LAYERPLANEDESCRIPTOR.iPixelType 1980 1880 enum : BYTE { 1981 - LPD_TYPE_RGBA = 0, 1982 - LPD_TYPE_COLORINDEX = 1 1881 + LPD_TYPE_RGBA = 0, 1882 + LPD_TYPE_COLORINDEX = 1 1983 1883 } 1984 1884 1985 1885 // --- 1986 1886 1987 1887 // wglSwapLayerBuffers() 1988 1888 const UINT 1989 -WGL_SWAP_MAIN_PLANE = 1, 1990 -WGL_SWAP_OVERLAY1 = 2, 1991 -WGL_SWAP_OVERLAY2 = 4, 1992 -WGL_SWAP_OVERLAY3 = 8, 1993 -WGL_SWAP_OVERLAY4 = 16, 1994 -WGL_SWAP_OVERLAY5 = 32, 1995 -WGL_SWAP_OVERLAY6 = 64, 1996 -WGL_SWAP_OVERLAY7 = 128, 1997 -WGL_SWAP_OVERLAY8 = 256, 1998 -WGL_SWAP_OVERLAY9 = 512, 1999 -WGL_SWAP_OVERLAY10 = 1024, 2000 -WGL_SWAP_OVERLAY11 = 2048, 2001 -WGL_SWAP_OVERLAY12 = 4096, 2002 -WGL_SWAP_OVERLAY13 = 8192, 2003 -WGL_SWAP_OVERLAY14 = 16384, 2004 -WGL_SWAP_OVERLAY15 = 32768, 2005 -WGL_SWAP_UNDERLAY1 = 65536, 2006 -WGL_SWAP_UNDERLAY2 = 0x20000, 2007 -WGL_SWAP_UNDERLAY3 = 0x40000, 2008 -WGL_SWAP_UNDERLAY4 = 0x80000, 2009 -WGL_SWAP_UNDERLAY5 = 0x100000, 2010 -WGL_SWAP_UNDERLAY6 = 0x200000, 2011 -WGL_SWAP_UNDERLAY7 = 0x400000, 2012 -WGL_SWAP_UNDERLAY8 = 0x800000, 2013 -WGL_SWAP_UNDERLAY9 = 0x1000000, 2014 -WGL_SWAP_UNDERLAY10 = 0x2000000, 2015 -WGL_SWAP_UNDERLAY11 = 0x4000000, 2016 -WGL_SWAP_UNDERLAY12 = 0x8000000, 2017 -WGL_SWAP_UNDERLAY13 = 0x10000000, 2018 -WGL_SWAP_UNDERLAY14 = 0x20000000, 2019 -WGL_SWAP_UNDERLAY15 = 0x40000000; 1889 + WGL_SWAP_MAIN_PLANE = 1, 1890 + WGL_SWAP_OVERLAY1 = 2, 1891 + WGL_SWAP_OVERLAY2 = 4, 1892 + WGL_SWAP_OVERLAY3 = 8, 1893 + WGL_SWAP_OVERLAY4 = 16, 1894 + WGL_SWAP_OVERLAY5 = 32, 1895 + WGL_SWAP_OVERLAY6 = 64, 1896 + WGL_SWAP_OVERLAY7 = 128, 1897 + WGL_SWAP_OVERLAY8 = 256, 1898 + WGL_SWAP_OVERLAY9 = 512, 1899 + WGL_SWAP_OVERLAY10 = 1024, 1900 + WGL_SWAP_OVERLAY11 = 2048, 1901 + WGL_SWAP_OVERLAY12 = 4096, 1902 + WGL_SWAP_OVERLAY13 = 8192, 1903 + WGL_SWAP_OVERLAY14 = 16384, 1904 + WGL_SWAP_OVERLAY15 = 32768, 1905 + WGL_SWAP_UNDERLAY1 = 65536, 1906 + WGL_SWAP_UNDERLAY2 = 0x20000, 1907 + WGL_SWAP_UNDERLAY3 = 0x40000, 1908 + WGL_SWAP_UNDERLAY4 = 0x80000, 1909 + WGL_SWAP_UNDERLAY5 = 0x100000, 1910 + WGL_SWAP_UNDERLAY6 = 0x200000, 1911 + WGL_SWAP_UNDERLAY7 = 0x400000, 1912 + WGL_SWAP_UNDERLAY8 = 0x800000, 1913 + WGL_SWAP_UNDERLAY9 = 0x1000000, 1914 + WGL_SWAP_UNDERLAY10 = 0x2000000, 1915 + WGL_SWAP_UNDERLAY11 = 0x4000000, 1916 + WGL_SWAP_UNDERLAY12 = 0x8000000, 1917 + WGL_SWAP_UNDERLAY13 = 0x10000000, 1918 + WGL_SWAP_UNDERLAY14 = 0x20000000, 1919 + WGL_SWAP_UNDERLAY15 = 0x40000000; 2020 1920 2021 1921 const AC_SRC_OVER = 0x00; 2022 1922 const AC_SRC_ALPHA = 0x01; 2023 1923 2024 1924 // ??? 2025 1925 const AC_SRC_NO_PREMULT_ALPHA = 0x01; 2026 1926 const AC_SRC_NO_ALPHA = 0x02; ................................................................................ 2028 1928 const AC_DST_NO_ALPHA = 0x20; 2029 1929 2030 1930 const LAYOUT_RTL = 1; 2031 1931 const LAYOUT_BTT = 2; 2032 1932 const LAYOUT_VBH = 4; 2033 1933 const LAYOUT_BITMAPORIENTATIONPRESERVED = 8; 2034 1934 2035 -static 1935 +const CS_ENABLE = 0x00000001; 1936 +const CS_DISABLE = 0x00000002; 1937 +const CS_DELETE_TRANSFORM = 0x00000003; 2036 1938 2037 -if (WINVER > 0x0400) 2038 -{ 2039 - const CS_ENABLE = 0x00000001; 2040 - const CS_DISABLE = 0x00000002; 2041 - const CS_DELETE_TRANSFORM = 0x00000003; 2042 -} 2043 - 2044 -static 2045 - 2046 -if (WINVER > 0x0500) 2047 -{ 2048 - const GRADIENT_FILL_RECT_H =0x00; 2049 - const GRADIENT_FILL_RECT_V =0x01; 2050 - const GRADIENT_FILL_TRIANGLE =0x02; 2051 - const GRADIENT_FILL_OP_FLAG =0xff; 2052 - const COLORMATCHTOTARGET_EMBEDED=0x00000001; 2053 - const CREATECOLORSPACE_EMBEDED =0x00000001; 2054 - const SETICMPROFILE_EMBEDED =0x00000001; 1939 +static if (_WIN32_WINNT > 0x500) { 1940 + const GRADIENT_FILL_RECT_H=0x00; 1941 + const GRADIENT_FILL_RECT_V=0x01; 1942 + const GRADIENT_FILL_TRIANGLE=0x02; 1943 + const GRADIENT_FILL_OP_FLAG=0xff; 1944 + const COLORMATCHTOTARGET_EMBEDED=0x00000001; 1945 + const CREATECOLORSPACE_EMBEDED=0x00000001; 1946 + const SETICMPROFILE_EMBEDED=0x00000001; 2055 1947 } 2056 1948 2057 1949 // DISPLAY_DEVICE.StateFlags 2058 1950 const DWORD 2059 -DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = 0x00000001, 2060 -DISPLAY_DEVICE_MULTI_DRIVER = 0x00000002, 2061 -DISPLAY_DEVICE_PRIMARY_DEVICE = 0x00000004, 2062 -DISPLAY_DEVICE_MIRRORING_DRIVER = 0x00000008, 2063 -DISPLAY_DEVICE_VGA_COMPATIBLE = 0x00000010, 2064 -DISPLAY_DEVICE_REMOVABLE = 0x00000020, 2065 -DISPLAY_DEVICE_DISCONNECT = 0x02000000, 2066 -DISPLAY_DEVICE_REMOTE = 0x04000000, 2067 -DISPLAY_DEVICE_MODESPRUNED = 0x08000000; 1951 + DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = 0x00000001, 1952 + DISPLAY_DEVICE_MULTI_DRIVER = 0x00000002, 1953 + DISPLAY_DEVICE_PRIMARY_DEVICE = 0x00000004, 1954 + DISPLAY_DEVICE_MIRRORING_DRIVER = 0x00000008, 1955 + DISPLAY_DEVICE_VGA_COMPATIBLE = 0x00000010, 1956 + DISPLAY_DEVICE_REMOVABLE = 0x00000020, 1957 + DISPLAY_DEVICE_DISCONNECT = 0x02000000, 1958 + DISPLAY_DEVICE_REMOTE = 0x04000000, 1959 + DISPLAY_DEVICE_MODESPRUNED = 0x08000000; 2068 1960 2069 1961 /* Child device state */ 2070 1962 const DWORD 2071 -DISPLAY_DEVICE_ACTIVE = 0x00000001, 2072 -DISPLAY_DEVICE_ATTACHED = 0x00000002; 1963 + DISPLAY_DEVICE_ACTIVE = 0x00000001, 1964 + DISPLAY_DEVICE_ATTACHED = 0x00000002; 2073 1965 2074 -static 2075 - 2076 -if (_WIN32_WINNT >= 0x0500) 2077 -{ 2078 - const GGI_MARK_NONEXISTING_GLYPHS = 1; 1966 +static if (_WIN32_WINNT >= 0x500) { 1967 + const GGI_MARK_NONEXISTING_GLYPHS = 1; 2079 1968 } 2080 1969 2081 1970 // ---------- 2082 1971 // STRUCTS 2083 1972 // ---------- 2084 1973 2085 -struct ABC 2086 -{ 2087 - int abcA; 2088 - UINT abcB; 2089 - int abcC; 2090 -} 2091 -alias ABC*PABC, NPABC, LPABC; 2092 - 2093 -struct ABCFLOAT 2094 -{ 2095 - FLOAT abcfA; 2096 - FLOAT abcfB; 2097 - FLOAT abcfC; 2098 -} 2099 -alias ABCFLOAT*PABCFLOAT, NPABCFLOAT, LPABCFLOAT; 2100 - 2101 -struct BITMAP 2102 -{ 2103 - LONG bmType; 2104 - LONG bmWidth; 2105 - LONG bmHeight; 2106 - LONG bmWidthBytes; 2107 - WORD bmPlanes; 2108 - WORD bmBitsPixel; 2109 - LPVOID bmBits; 2110 -} 2111 -alias BITMAP*PBITMAP, NPBITMAP, LPBITMAP; 2112 - 2113 -struct BITMAPCOREHEADER 2114 -{ 2115 - DWORD bcSize; 2116 - WORD bcWidth; 2117 - WORD bcHeight; 2118 - WORD bcPlanes; 2119 - WORD bcBitCount; 2120 -} 2121 -alias BITMAPCOREHEADER*PBITMAPCOREHEADER, LPBITMAPCOREHEADER; 2122 - 2123 -align (1) : 2124 -struct RGBTRIPLE 2125 -{ 2126 - BYTE rgbtBlue; 2127 - BYTE rgbtGreen; 2128 - BYTE rgbtRed; 2129 -} 2130 -alias RGBTRIPLE*LPRGBTRIPLE; 2131 - 2132 -align (2) : 2133 -struct BITMAPFILEHEADER 2134 -{ 2135 - WORD bfType; 2136 - DWORD bfSize; 2137 - WORD bfReserved1; 2138 - WORD bfReserved2; 2139 - DWORD bfOffBits; 2140 -} 2141 -alias BITMAPFILEHEADER*LPBITMAPFILEHEADER, PBITMAPFILEHEADER; 2142 - 2143 -align : 2144 - 2145 -struct BITMAPCOREINFO 2146 -{ 2147 - BITMAPCOREHEADER bmciHeader; 2148 - RGBTRIPLE[1] bmciColors; 2149 -} 2150 -alias BITMAPCOREINFO*LPBITMAPCOREINFO, PBITMAPCOREINFO; 2151 - 2152 -struct BITMAPINFOHEADER 2153 -{ 2154 - DWORD biSize; 2155 - LONG biWidth; 2156 - LONG biHeight; 2157 - WORD biPlanes; 2158 - WORD biBitCount; 2159 - DWORD biCompression; 2160 - DWORD biSizeImage; 2161 - LONG biXPelsPerMeter; 2162 - LONG biYPelsPerMeter; 2163 - DWORD biClrUsed; 2164 - DWORD biClrImportant; 2165 -} 2166 - 2167 -alias BITMAPINFOHEADER*LPBITMAPINFOHEADER, PBITMAPINFOHEADER; 2168 - 2169 -struct RGBQUAD 2170 -{ 2171 - BYTE rgbBlue; 2172 - BYTE rgbGreen; 2173 - BYTE rgbRed; 2174 - BYTE rgbReserved; 1974 +struct ABC { 1975 + int abcA; 1976 + UINT abcB; 1977 + int abcC; 1978 +} 1979 +alias ABC* PABC, NPABC, LPABC; 1980 + 1981 +struct ABCFLOAT { 1982 + FLOAT abcfA; 1983 + FLOAT abcfB; 1984 + FLOAT abcfC; 1985 +} 1986 +alias ABCFLOAT* PABCFLOAT, NPABCFLOAT, LPABCFLOAT; 1987 + 1988 +struct BITMAP { 1989 + LONG bmType; 1990 + LONG bmWidth; 1991 + LONG bmHeight; 1992 + LONG bmWidthBytes; 1993 + WORD bmPlanes; 1994 + WORD bmBitsPixel; 1995 + LPVOID bmBits; 1996 +} 1997 +alias BITMAP* PBITMAP, NPBITMAP, LPBITMAP; 1998 + 1999 +struct BITMAPCOREHEADER { 2000 + DWORD bcSize; 2001 + WORD bcWidth; 2002 + WORD bcHeight; 2003 + WORD bcPlanes; 2004 + WORD bcBitCount; 2005 +} 2006 +alias BITMAPCOREHEADER* PBITMAPCOREHEADER, LPBITMAPCOREHEADER; 2007 + 2008 +align(1): 2009 +struct RGBTRIPLE { 2010 + BYTE rgbtBlue; 2011 + BYTE rgbtGreen; 2012 + BYTE rgbtRed; 2013 +} 2014 +alias RGBTRIPLE* LPRGBTRIPLE; 2015 + 2016 +align(2): 2017 +struct BITMAPFILEHEADER { 2018 + WORD bfType; 2019 + DWORD bfSize; 2020 + WORD bfReserved1; 2021 + WORD bfReserved2; 2022 + DWORD bfOffBits; 2023 +} 2024 +alias BITMAPFILEHEADER* LPBITMAPFILEHEADER, PBITMAPFILEHEADER; 2025 + 2026 +align: 2027 + 2028 +struct BITMAPCOREINFO { 2029 + BITMAPCOREHEADER bmciHeader; 2030 + RGBTRIPLE[1] bmciColors; 2031 +} 2032 +alias BITMAPCOREINFO* LPBITMAPCOREINFO, PBITMAPCOREINFO; 2033 + 2034 +struct BITMAPINFOHEADER { 2035 + DWORD biSize; 2036 + LONG biWidth; 2037 + LONG biHeight; 2038 + WORD biPlanes; 2039 + WORD biBitCount; 2040 + DWORD biCompression; 2041 + DWORD biSizeImage; 2042 + LONG biXPelsPerMeter; 2043 + LONG biYPelsPerMeter; 2044 + DWORD biClrUsed; 2045 + DWORD biClrImportant; 2046 +} 2047 + 2048 +alias BITMAPINFOHEADER* LPBITMAPINFOHEADER, PBITMAPINFOHEADER; 2049 + 2050 +struct RGBQUAD { 2051 + BYTE rgbBlue; 2052 + BYTE rgbGreen; 2053 + BYTE rgbRed; 2054 + BYTE rgbReserved; 2055 +}; 2056 +alias RGBQUAD* LPRGBQUAD; 2057 + 2058 +struct BITMAPINFO { 2059 + BITMAPINFOHEADER bmiHeader; 2060 + RGBQUAD[1] bmiColors; 2175 2061 }; 2176 -alias RGBQUAD*LPRGBQUAD; 2177 - 2178 -struct BITMAPINFO 2179 -{ 2180 - BITMAPINFOHEADER bmiHeader; 2181 - RGBQUAD[1] bmiColors; 2182 -}; 2183 -alias BITMAPINFO*PBITMAPINFO, LPBITMAPINFO; 2062 +alias BITMAPINFO* PBITMAPINFO, LPBITMAPINFO; 2184 2063 2185 2064 alias int FXPT16DOT16; 2186 -alias int*LPFXPT16DOT16; 2065 +alias int* LPFXPT16DOT16; 2187 2066 alias int FXPT2DOT30; 2188 -alias int*LPFXPT2DOT30; 2189 - 2190 -struct CIEXYZ 2191 -{ 2192 - FXPT2DOT30 ciexyzX; 2193 - FXPT2DOT30 ciexyzY; 2194 - FXPT2DOT30 ciexyzZ; 2195 -} 2196 -alias CIEXYZ*LPCIEXYZ; 2197 - 2198 -struct CIEXYZTRIPLE 2199 -{ 2200 - CIEXYZ ciexyzRed; 2201 - CIEXYZ ciexyzGreen; 2202 - CIEXYZ ciexyzBlue; 2203 -} 2204 -alias CIEXYZTRIPLE*LPCIEXYZTRIPLE; 2205 - 2206 -struct BITMAPV4HEADER 2207 -{ 2208 - DWORD bV4Size; 2209 - LONG bV4Width; 2210 - LONG bV4Height; 2211 - WORD bV4Planes; 2212 - WORD bV4BitCount; 2213 - DWORD bV4V4Compression; 2214 - DWORD bV4SizeImage; 2215 - LONG bV4XPelsPerMeter; 2216 - LONG bV4YPelsPerMeter; 2217 - DWORD bV4ClrUsed; 2218 - DWORD bV4ClrImportant; 2219 - DWORD bV4RedMask; 2220 - DWORD bV4GreenMask; 2221 - DWORD bV4BlueMask; 2222 - DWORD bV4AlphaMask; 2223 - DWORD bV4CSType; 2224 - CIEXYZTRIPLE bV4Endpoints; 2225 - DWORD bV4GammaRed; 2226 - DWORD bV4GammaGreen; 2227 - DWORD bV4GammaBlue; 2228 -} 2229 -alias BITMAPV4HEADER*LPBITMAPV4HEADER, PBITMAPV4HEADER; 2230 - 2231 -struct BITMAPV5HEADER 2232 -{ 2233 - DWORD bV5Size; 2234 - LONG bV5Width; 2235 - LONG bV5Height; 2236 - WORD bV5Planes; 2237 - WORD bV5BitCount; 2238 - DWORD bV5Compression; 2239 - DWORD bV5SizeImage; 2240 - LONG bV5XPelsPerMeter; 2241 - LONG bV5YPelsPerMeter; 2242 - DWORD bV5ClrUsed; 2243 - DWORD bV5ClrImportant; 2244 - DWORD bV5RedMask; 2245 - DWORD bV5GreenMask; 2246 - DWORD bV5BlueMask; 2247 - DWORD bV5AlphaMask; 2248 - DWORD bV5CSType; 2249 - CIEXYZTRIPLE bV5Endpoints; 2250 - DWORD bV5GammaRed; 2251 - DWORD bV5GammaGreen; 2252 - DWORD bV5GammaBlue; 2253 - DWORD bV5Intent; 2254 - DWORD bV5ProfileData; 2255 - DWORD bV5ProfileSize; 2256 - DWORD bV5Reserved; 2257 -} 2258 -alias BITMAPV5HEADER*LPBITMAPV5HEADER, PBITMAPV5HEADER; 2259 - 2260 -struct FONTSIGNATURE 2261 -{ 2262 - DWORD[4] fsUsb; 2263 - DWORD[2] fsCsb; 2264 -} 2265 -alias FONTSIGNATURE*PFONTSIGNATURE, LPFONTSIGNATURE; 2266 - 2267 -struct CHARSETINFO 2268 -{ 2269 - UINT ciCharset; 2270 - UINT ciACP; 2271 - FONTSIGNATURE fs; 2272 -} 2273 -alias CHARSETINFO*PCHARSETINFO, NPCHARSETINFO, LPCHARSETINFO; 2274 - 2275 -struct COLORADJUSTMENT 2276 -{ 2277 - WORD caSize; 2278 - WORD caFlags; 2279 - WORD caIlluminantIndex; 2280 - WORD caRedGamma; 2281 - WORD caGreenGamma; 2282 - WORD caBlueGamma; 2283 - WORD caReferenceBlack; 2284 - WORD caReferenceWhite; 2285 - SHORT caContrast; 2286 - SHORT caBrightness; 2287 - SHORT caColorfulness; 2288 - SHORT caRedGreenTint; 2289 -} 2290 -alias COLORADJUSTMENT*PCOLORADJUSTMENT, LPCOLORADJUSTMENT; 2291 - 2292 -struct DEVMODEA 2293 -{ 2294 - BYTE[CCHDEVICENAME] dmDeviceName; 2295 - WORD dmSpecVersion; 2296 - WORD dmDriverVersion; 2297 - WORD dmSize; 2298 - WORD dmDriverExtra; 2299 - DWORD dmFields; 2300 - union { 2301 - struct 2302 - { 2303 - short dmOrientation; 2304 - short dmPaperSize; 2305 - short dmPaperLength; 2306 - short dmPaperWidth; 2307 - short dmScale; 2308 - short dmCopies; 2309 - short dmDefaultSource; 2310 - short dmPrintQuality; 2311 - } 2312 - POINTL dmPosition; 2313 - DWORD dmDisplayOrientation; 2314 - DWORD dmDisplayFixedOutput; 2315 - } 2316 - short dmColor; 2317 - short dmDuplex; 2318 - short dmYResolution; 2319 - short dmTTOption; 2320 - short dmCollate; 2321 - BYTE[CCHFORMNAME] dmFormName; 2322 - WORD dmLogPixels; 2323 - DWORD dmBitsPerPel; 2324 - DWORD dmPelsWidth; 2325 - DWORD dmPelsHeight; 2326 - union { 2327 - DWORD dmDisplayFlags; 2328 - DWORD dmNup; 2329 - } 2330 - DWORD dmDisplayFrequency; 2331 - static 2332 - 2333 - if (WINVER >= 0x0400) 2334 - { 2335 - DWORD dmICMMethod; 2336 - DWORD dmICMIntent; 2337 - DWORD dmMediaType; 2338 - DWORD dmDitherType; 2339 - DWORD dmReserved1; 2340 - DWORD dmReserved2; 2341 - static 2342 - 2343 - if ((WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)) 2344 - { 2345 - DWORD dmPanningWidth; 2346 - DWORD dmPanningHeight; 2347 - } 2348 - } 2349 -} 2350 -alias DEVMODEA*PDEVMODEA, NPDEVMODEA, LPDEVMODEA; 2351 - 2352 -struct DEVMODEW 2353 -{ 2354 - WCHAR[CCHDEVICENAME] dmDeviceName; 2355 - WORD dmSpecVersion; 2356 - WORD dmDriverVersion; 2357 - WORD dmSize; 2358 - WORD dmDriverExtra; 2359 - DWORD dmFields; 2360 - union { 2361 - struct 2362 - { 2363 - short dmOrientation; 2364 - short dmPaperSize; 2365 - short dmPaperLength; 2366 - short dmPaperWidth; 2367 - short dmScale; 2368 - short dmCopies; 2369 - short dmDefaultSource; 2370 - short dmPrintQuality; 2371 - } 2372 - POINTL dmPosition; 2373 - DWORD dmDisplayOrientation; 2374 - DWORD dmDisplayFixedOutput; 2375 - } 2376 - 2377 - short dmColor; 2378 - short dmDuplex; 2379 - short dmYResolution; 2380 - short dmTTOption; 2381 - short dmCollate; 2382 - WCHAR[CCHFORMNAME] dmFormName; 2383 - WORD dmLogPixels; 2384 - DWORD dmBitsPerPel; 2385 - DWORD dmPelsWidth; 2386 - DWORD dmPelsHeight; 2387 - union { 2388 - DWORD dmDisplayFlags; 2389 - DWORD dmNup; 2390 - } 2391 - DWORD dmDisplayFrequency; 2392 - static 2393 - 2394 - if (WINVER >= 0x0400) 2395 - { 2396 - DWORD dmICMMethod; 2397 - DWORD dmICMIntent; 2398 - DWORD dmMediaType; 2399 - DWORD dmDitherType; 2400 - DWORD dmReserved1; 2401 - DWORD dmReserved2; 2402 - static 2403 - 2404 - if ((WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)) 2405 - { 2406 - DWORD dmPanningWidth; 2407 - DWORD dmPanningHeight; 2408 - } 2409 - } 2410 -} 2411 -alias DEVMODEW*PDEVMODEW, NPDEVMODEW, LPDEVMODEW; 2067 +alias int* LPFXPT2DOT30; 2068 + 2069 +struct CIEXYZ { 2070 + FXPT2DOT30 ciexyzX; 2071 + FXPT2DOT30 ciexyzY; 2072 + FXPT2DOT30 ciexyzZ; 2073 +} 2074 +alias CIEXYZ* LPCIEXYZ; 2075 + 2076 +struct CIEXYZTRIPLE { 2077 + CIEXYZ ciexyzRed; 2078 + CIEXYZ ciexyzGreen; 2079 + CIEXYZ ciexyzBlue; 2080 +} 2081 +alias CIEXYZTRIPLE* LPCIEXYZTRIPLE; 2082 + 2083 +struct BITMAPV4HEADER { 2084 + DWORD bV4Size; 2085 + LONG bV4Width; 2086 + LONG bV4Height; 2087 + WORD bV4Planes; 2088 + WORD bV4BitCount; 2089 + DWORD bV4V4Compression; 2090 + DWORD bV4SizeImage; 2091 + LONG bV4XPelsPerMeter; 2092 + LONG bV4YPelsPerMeter; 2093 + DWORD bV4ClrUsed; 2094 + DWORD bV4ClrImportant; 2095 + DWORD bV4RedMask; 2096 + DWORD bV4GreenMask; 2097 + DWORD bV4BlueMask; 2098 + DWORD bV4AlphaMask; 2099 + DWORD bV4CSType; 2100 + CIEXYZTRIPLE bV4Endpoints; 2101 + DWORD bV4GammaRed; 2102 + DWORD bV4GammaGreen; 2103 + DWORD bV4GammaBlue; 2104 +} 2105 +alias BITMAPV4HEADER* LPBITMAPV4HEADER, PBITMAPV4HEADER; 2106 + 2107 +struct BITMAPV5HEADER { 2108 + DWORD bV5Size; 2109 + LONG bV5Width; 2110 + LONG bV5Height; 2111 + WORD bV5Planes; 2112 + WORD bV5BitCount; 2113 + DWORD bV5Compression; 2114 + DWORD bV5SizeImage; 2115 + LONG bV5XPelsPerMeter; 2116 + LONG bV5YPelsPerMeter; 2117 + DWORD bV5ClrUsed; 2118 + DWORD bV5ClrImportant; 2119 + DWORD bV5RedMask; 2120 + DWORD bV5GreenMask; 2121 + DWORD bV5BlueMask; 2122 + DWORD bV5AlphaMask; 2123 + DWORD bV5CSType; 2124 + CIEXYZTRIPLE bV5Endpoints; 2125 + DWORD bV5GammaRed; 2126 + DWORD bV5GammaGreen; 2127 + DWORD bV5GammaBlue; 2128 + DWORD bV5Intent; 2129 + DWORD bV5ProfileData; 2130 + DWORD bV5ProfileSize; 2131 + DWORD bV5Reserved; 2132 +} 2133 +alias BITMAPV5HEADER* LPBITMAPV5HEADER, PBITMAPV5HEADER; 2134 + 2135 +struct FONTSIGNATURE { 2136 + DWORD[4] fsUsb; 2137 + DWORD[2] fsCsb; 2138 +} 2139 +alias FONTSIGNATURE* PFONTSIGNATURE, LPFONTSIGNATURE; 2140 + 2141 +struct CHARSETINFO { 2142 + UINT ciCharset; 2143 + UINT ciACP; 2144 + FONTSIGNATURE fs; 2145 +} 2146 +alias CHARSETINFO* PCHARSETINFO, NPCHARSETINFO, LPCHARSETINFO; 2147 + 2148 +struct COLORADJUSTMENT { 2149 + WORD caSize; 2150 + WORD caFlags; 2151 + WORD caIlluminantIndex; 2152 + WORD caRedGamma; 2153 + WORD caGreenGamma; 2154 + WORD caBlueGamma; 2155 + WORD caReferenceBlack; 2156 + WORD caReferenceWhite; 2157 + SHORT caContrast; 2158 + SHORT caBrightness; 2159 + SHORT caColorfulness; 2160 + SHORT caRedGreenTint; 2161 +} 2162 +alias COLORADJUSTMENT* PCOLORADJUSTMENT, LPCOLORADJUSTMENT; 2163 + 2164 +struct DEVMODEA { 2165 + BYTE[CCHDEVICENAME] dmDeviceName; 2166 + WORD dmSpecVersion; 2167 + WORD dmDriverVersion; 2168 + WORD dmSize; 2169 + WORD dmDriverExtra; 2170 + DWORD dmFields; 2171 + union { 2172 + struct { 2173 + short dmOrientation; 2174 + short dmPaperSize; 2175 + short dmPaperLength; 2176 + short dmPaperWidth; 2177 + short dmScale; 2178 + short dmCopies; 2179 + short dmDefaultSource; 2180 + short dmPrintQuality; 2181 + } 2182 + POINTL dmPosition; 2183 + DWORD dmDisplayOrientation; 2184 + DWORD dmDisplayFixedOutput; 2185 + } 2186 + short dmColor; 2187 + short dmDuplex; 2188 + short dmYResolution; 2189 + short dmTTOption; 2190 + short dmCollate; 2191 + BYTE[CCHFORMNAME] dmFormName; 2192 + WORD dmLogPixels; 2193 + DWORD dmBitsPerPel; 2194 + DWORD dmPelsWidth; 2195 + DWORD dmPelsHeight; 2196 + union { 2197 + DWORD dmDisplayFlags; 2198 + DWORD dmNup; 2199 + } 2200 + DWORD dmDisplayFrequency; 2201 + DWORD dmICMMethod; 2202 + DWORD dmICMIntent; 2203 + DWORD dmMediaType; 2204 + DWORD dmDitherType; 2205 + DWORD dmReserved1; 2206 + DWORD dmReserved2; 2207 + DWORD dmPanningWidth; 2208 + DWORD dmPanningHeight; 2209 +} 2210 +alias DEVMODEA* PDEVMODEA, NPDEVMODEA, LPDEVMODEA; 2211 + 2212 +struct DEVMODEW { 2213 + WCHAR[CCHDEVICENAME] dmDeviceName; 2214 + WORD dmSpecVersion; 2215 + WORD dmDriverVersion; 2216 + WORD dmSize; 2217 + WORD dmDriverExtra; 2218 + DWORD dmFields; 2219 + union { 2220 + struct { 2221 + short dmOrientation; 2222 + short dmPaperSize; 2223 + short dmPaperLength; 2224 + short dmPaperWidth; 2225 + short dmScale; 2226 + short dmCopies; 2227 + short dmDefaultSource; 2228 + short dmPrintQuality; 2229 + } 2230 + POINTL dmPosition; 2231 + DWORD dmDisplayOrientation; 2232 + DWORD dmDisplayFixedOutput; 2233 + } 2234 + 2235 + short dmColor; 2236 + short dmDuplex; 2237 + short dmYResolution; 2238 + short dmTTOption; 2239 + short dmCollate; 2240 + WCHAR[CCHFORMNAME] dmFormName; 2241 + WORD dmLogPixels; 2242 + DWORD dmBitsPerPel; 2243 + DWORD dmPelsWidth; 2244 + DWORD dmPelsHeight; 2245 + union { 2246 + DWORD dmDisplayFlags; 2247 + DWORD dmNup; 2248 + } 2249 + DWORD dmDisplayFrequency; 2250 + DWORD dmICMMethod; 2251 + DWORD dmICMIntent; 2252 + DWORD dmMediaType; 2253 + DWORD dmDitherType; 2254 + DWORD dmReserved1; 2255 + DWORD dmReserved2; 2256 + DWORD dmPanningWidth; 2257 + DWORD dmPanningHeight; 2258 +} 2259 +alias DEVMODEW* PDEVMODEW, NPDEVMODEW, LPDEVMODEW; 2412 2260 2413 2261 /* 2414 2262 * Information about output options 2415 2263 */ 2416 -struct PSFEATURE_OUTPUT 2417 -{ 2418 - BOOL bPageIndependent; 2419 - BOOL bSetPageDevice; 2264 +struct PSFEATURE_OUTPUT { 2265 + BOOL bPageIndependent; 2266 + BOOL bSetPageDevice; 2420 2267 } 2421 -alias PSFEATURE_OUTPUT*PPSFEATURE_OUTPUT; 2268 +alias PSFEATURE_OUTPUT* PPSFEATURE_OUTPUT; 2422 2269 2423 2270 /* 2424 2271 * Information about custom paper size 2425 2272 */ 2426 -struct PSFEATURE_CUSTPAPER 2427 -{ 2428 - LONG lOrientation; 2429 - LONG lWidth; 2430 - LONG lHeight; 2431 - LONG lWidthOffset; 2432 - LONG lHeightOffset; 2433 -} 2434 -alias PSFEATURE_CUSTPAPER*PPSFEATURE_CUSTPAPER; 2435 - 2436 -struct DIBSECTION 2437 -{ 2438 - BITMAP dsBm; 2439 - BITMAPINFOHEADER dsBmih; 2440 - DWORD[3] dsBitfields; 2441 - HANDLE dshSection; 2442 - DWORD dsOffset; 2443 -} 2444 -alias DIBSECTION*PDIBSECTION; 2445 - 2446 -struct DOCINFOA 2447 -{ 2448 - int cbSize = DOCINFOA.sizeof; 2449 - LPCSTR lpszDocName; 2450 - LPCSTR lpszOutput; 2451 - LPCSTR lpszDatatype; 2452 - DWORD fwType; 2453 -} 2454 -alias DOCINFOA*LPDOCINFOA; 2455 - 2456 -struct DOCINFOW 2457 -{ 2458 - int cbSize = DOCINFOW.sizeof; 2459 - LPCWSTR lpszDocName; 2460 - LPCWSTR lpszOutput; 2461 - LPCWSTR lpszDatatype; 2462 - DWORD fwType; 2463 -} 2464 -alias DOCINFOW*LPDOCINFOW; 2465 - 2466 -struct PANOSE 2467 -{ 2468 - BYTE bFamilyType; 2469 - BYTE bSerifStyle; 2470 - BYTE bWeight; 2471 - BYTE bProportion; 2472 - BYTE bContrast; 2473 - BYTE bStrokeVariation; 2474 - BYTE bArmStyle; 2475 - BYTE bLetterform; 2476 - BYTE bMidline; 2477 - BYTE bXHeight; 2478 -} 2479 -alias PANOSE*LPPANOSE; 2480 - 2481 -struct LOGFONTA 2482 -{ 2483 - LONG lfHeight; 2484 - LONG lfWidth; 2485 - LONG lfEscapement; 2486 - LONG lfOrientation; 2487 - LONG lfWeight; 2488 - BYTE lfItalic; 2489 - BYTE lfUnderline; 2490 - BYTE lfStrikeOut; 2491 - BYTE lfCharSet; 2492 - BYTE lfOutPrecision; 2493 - BYTE lfClipPrecision; 2494 - BYTE lfQuality; 2495 - BYTE lfPitchAndFamily; 2496 - CHAR[LF_FACESIZE] lfFaceName; 2497 -} 2498 -alias LOGFONTA*PLOGFONTA, NPLOGFONTA, LPLOGFONTA; 2499 - 2500 -struct LOGFONTW 2501 -{ 2502 - LONG lfHeight; 2503 - LONG lfWidth; 2504 - LONG lfEscapement; 2505 - LONG lfOrientation; 2506 - LONG lfWeight; 2507 - BYTE lfItalic; 2508 - BYTE lfUnderline; 2509 - BYTE lfStrikeOut; 2510 - BYTE lfCharSet; 2511 - BYTE lfOutPrecision; 2512 - BYTE lfClipPrecision; 2513 - BYTE lfQuality; 2514 - BYTE lfPitchAndFamily; 2515 - WCHAR[LF_FACESIZE] lfFaceName; 2516 -} 2517 -alias LOGFONTW*PLOGFONTW, NPLOGFONTW, LPLOGFONTW; 2518 - 2519 -struct EXTLOGFONTA 2520 -{ 2521 - LOGFONTA elfLogFont; 2522 - BYTE[LF_FULLFACESIZE] elfFullName; 2523 - BYTE[LF_FACESIZE] elfStyle; 2524 - DWORD elfVersion; 2525 - DWORD elfStyleSize; 2526 - DWORD elfMatch; 2527 - DWORD elfReserved; 2528 - BYTE[ELF_VENDOR_SIZE] elfVendorId; 2529 - DWORD elfCulture; 2530 - PANOSE elfPanose; 2531 -} 2532 -alias EXTLOGFONTA*PEXTLOGFONTA, NPEXTLOGFONTA, LPEXTLOGFONTA; 2533 - 2534 -struct EXTLOGFONTW 2535 -{ 2536 - LOGFONTW elfLogFont; 2537 - WCHAR[LF_FULLFACESIZE] elfFullName; 2538 - WCHAR[LF_FACESIZE] elfStyle; 2539 - DWORD elfVersion; 2540 - DWORD elfStyleSize; 2541 - DWORD elfMatch; 2542 - DWORD elfReserved; 2543 - BYTE[ELF_VENDOR_SIZE] elfVendorId; 2544 - DWORD elfCulture; 2545 - PANOSE elfPanose; 2546 -} 2547 -alias EXTLOGFONTW*PEXTLOGFONTW, NPEXTLOGFONTW, LPEXTLOGFONTW; 2548 - 2549 -struct LOGPEN 2550 -{ 2551 - UINT lopnStyle; 2552 - POINT lopnWidth; 2553 - COLORREF lopnColor; 2554 -} 2555 -alias LOGPEN*PLOGPEN, NPLOGPEN, LPLOGPEN; 2273 +struct PSFEATURE_CUSTPAPER { 2274 + LONG lOrientation; 2275 + LONG lWidth; 2276 + LONG lHeight; 2277 + LONG lWidthOffset; 2278 + LONG lHeightOffset; 2279 +} 2280 +alias PSFEATURE_CUSTPAPER* PPSFEATURE_CUSTPAPER; 2281 + 2282 +struct DIBSECTION { 2283 + BITMAP dsBm; 2284 + BITMAPINFOHEADER dsBmih; 2285 + DWORD[3] dsBitfields; 2286 + HANDLE dshSection; 2287 + DWORD dsOffset; 2288 +} 2289 +alias DIBSECTION* PDIBSECTION; 2290 + 2291 +struct DOCINFOA { 2292 + int cbSize = DOCINFOA.sizeof; 2293 + LPCSTR lpszDocName; 2294 + LPCSTR lpszOutput; 2295 + LPCSTR lpszDatatype; 2296 + DWORD fwType; 2297 +} 2298 +alias DOCINFOA* LPDOCINFOA; 2299 + 2300 +struct DOCINFOW { 2301 + int cbSize = DOCINFOW.sizeof; 2302 + LPCWSTR lpszDocName; 2303 + LPCWSTR lpszOutput; 2304 + LPCWSTR lpszDatatype; 2305 + DWORD fwType; 2306 +} 2307 +alias DOCINFOW* LPDOCINFOW; 2308 + 2309 + 2310 +struct PANOSE { 2311 + BYTE bFamilyType; 2312 + BYTE bSerifStyle; 2313 + BYTE bWeight; 2314 + BYTE bProportion; 2315 + BYTE bContrast; 2316 + BYTE bStrokeVariation; 2317 + BYTE bArmStyle; 2318 + BYTE bLetterform; 2319 + BYTE bMidline; 2320 + BYTE bXHeight; 2321 +} 2322 +alias PANOSE* LPPANOSE; 2323 + 2324 +struct LOGFONTA { 2325 + LONG lfHeight; 2326 + LONG lfWidth; 2327 + LONG lfEscapement; 2328 + LONG lfOrientation; 2329 + LONG lfWeight; 2330 + BYTE lfItalic; 2331 + BYTE lfUnderline; 2332 + BYTE lfStrikeOut; 2333 + BYTE lfCharSet; 2334 + BYTE lfOutPrecision; 2335 + BYTE lfClipPrecision; 2336 + BYTE lfQuality; 2337 + BYTE lfPitchAndFamily; 2338 + CHAR[LF_FACESIZE] lfFaceName; 2339 +} 2340 +alias LOGFONTA* PLOGFONTA, NPLOGFONTA, LPLOGFONTA; 2341 + 2342 +struct LOGFONTW { 2343 + LONG lfHeight; 2344 + LONG lfWidth; 2345 + LONG lfEscapement; 2346 + LONG lfOrientation; 2347 + LONG lfWeight; 2348 + BYTE lfItalic; 2349 + BYTE lfUnderline; 2350 + BYTE lfStrikeOut; 2351 + BYTE lfCharSet; 2352 + BYTE lfOutPrecision; 2353 + BYTE lfClipPrecision; 2354 + BYTE lfQuality; 2355 + BYTE lfPitchAndFamily; 2356 + WCHAR[LF_FACESIZE] lfFaceName; 2357 +} 2358 +alias LOGFONTW* PLOGFONTW, NPLOGFONTW, LPLOGFONTW; 2359 + 2360 +struct EXTLOGFONTA { 2361 + LOGFONTA elfLogFont; 2362 + BYTE[LF_FULLFACESIZE] elfFullName; 2363 + BYTE[LF_FACESIZE] elfStyle; 2364 + DWORD elfVersion; 2365 + DWORD elfStyleSize; 2366 + DWORD elfMatch; 2367 + DWORD elfReserved; 2368 + BYTE[ELF_VENDOR_SIZE] elfVendorId; 2369 + DWORD elfCulture; 2370 + PANOSE elfPanose; 2371 +} 2372 +alias EXTLOGFONTA* PEXTLOGFONTA, NPEXTLOGFONTA, LPEXTLOGFONTA; 2373 + 2374 +struct EXTLOGFONTW { 2375 + LOGFONTW elfLogFont; 2376 + WCHAR[LF_FULLFACESIZE] elfFullName; 2377 + WCHAR[LF_FACESIZE] elfStyle; 2378 + DWORD elfVersion; 2379 + DWORD elfStyleSize; 2380 + DWORD elfMatch; 2381 + DWORD elfReserved; 2382 + BYTE[ELF_VENDOR_SIZE] elfVendorId; 2383 + DWORD elfCulture; 2384 + PANOSE elfPanose; 2385 +} 2386 +alias EXTLOGFONTW* PEXTLOGFONTW, NPEXTLOGFONTW, LPEXTLOGFONTW; 2387 + 2388 +struct LOGPEN { 2389 + UINT lopnStyle; 2390 + POINT lopnWidth; 2391 + COLORREF lopnColor; 2392 +} 2393 +alias LOGPEN* PLOGPEN, NPLOGPEN, LPLOGPEN; 2556 2394 2557 2395 // ---------------------- EMR ------------ 2558 2396 2559 -struct EMR 2560 -{ 2561 - DWORD iType; 2562 - DWORD nSize; 2563 -} 2564 -alias EMR*PEMR; 2565 - 2566 -struct EMRANGLEARC 2567 -{ 2568 - EMR emr; 2569 - POINTL ptlCenter; 2570 - DWORD nRadius; 2571 - FLOAT eStartAngle; 2572 - FLOAT eSweepAngle; 2573 -} 2574 -alias EMRANGLEARC*PEMRANGLEARC; 2575 - 2576 -struct EMRARC 2577 -{ 2578 - EMR emr; 2579 - RECTL rclBox; 2580 - POINTL ptlStart; 2581 - POINTL ptlEnd; 2582 -} 2583 -alias EMRARC*PEMRARC; 2584 -alias EMRARC EMRARCTO; 2585 -alias EMRARCTO*PEMRARCTO; 2586 -alias EMRARC EMRCHORD; 2587 -alias EMRCHORD*PEMRCHORD; 2588 -alias EMRARC EMRPIE; 2589 -alias EMRPIE*PEMRPIE; 2590 - 2591 -struct XFORM 2592 -{ 2593 - FLOAT eM11; 2594 - FLOAT eM12; 2595 - FLOAT eM21; 2596 - FLOAT eM22; 2597 - FLOAT eDx; 2598 - FLOAT eDy; 2599 -} 2600 -alias XFORM*PXFORM, LPXFORM; 2601 - 2602 -struct EMRBITBLT 2603 -{ 2604 - EMR emr; 2605 - RECTL rclBounds; 2606 - LONG xDest; 2607 - LONG yDest; 2608 - LONG cxDest; 2609 - LONG cyDest; 2610 - DWORD dwRop; 2611 - LONG xSrc; 2612 - LONG ySrc; 2613 - XFORM xformSrc; 2614 - COLORREF crBkColorSrc; 2615 - DWORD iUsageSrc; 2616 - DWORD offBmiSrc; 2617 - DWORD cbBmiSrc; 2618 - DWORD offBitsSrc; 2619 - DWORD cbBitsSrc; 2620 -} 2621 -alias EMRBITBLT*PEMRBITBLT; 2622 - 2623 -struct LOGBRUSH 2624 -{ 2625 - UINT lbStyle; 2626 - COLORREF lbColor; 2627 - LONG lbHatch; 2628 -} 2629 -alias LOGBRUSH PATTERN; 2630 -alias LOGBRUSH*PLOGBRUSH, NPLOGBRUSH, LPLOGBRUSH; 2631 -alias PATTERN *PPATTERN, NPPATTERN, LPPATTERN; 2632 - 2633 -struct LOGBRUSH32 2634 -{ 2635 - UINT lbStyle; 2636 - COLORREF lbColor; 2637 - ULONG lbHatch; 2638 -} 2639 -alias LOGBRUSH32*PLOGBRUSH32, NPLOGBRUSH32, LPLOGBRUSH32; 2640 - 2641 -struct EMRCREATEBRUSHINDIRECT 2642 -{ 2643 - EMR emr; 2644 - DWORD ihBrush; 2645 - LOGBRUSH32 lb; 2646 -} 2647 -alias EMRCREATEBRUSHINDIRECT*PEMRCREATEBRUSHINDIRECT; 2397 +struct EMR { 2398 + DWORD iType; 2399 + DWORD nSize; 2400 +} 2401 +alias EMR* PEMR; 2402 + 2403 +struct EMRANGLEARC { 2404 + EMR emr; 2405 + POINTL ptlCenter; 2406 + DWORD nRadius; 2407 + FLOAT eStartAngle; 2408 + FLOAT eSweepAngle; 2409 +} 2410 +alias EMRANGLEARC* PEMRANGLEARC; 2411 + 2412 +struct EMRARC { 2413 + EMR emr; 2414 + RECTL rclBox; 2415 + POINTL ptlStart; 2416 + POINTL ptlEnd; 2417 +} 2418 +alias EMRARC* PEMRARC; 2419 +alias TypeDef!(EMRARC) EMRARCTO; 2420 +alias EMRARCTO* PEMRARCTO; 2421 +alias TypeDef!(EMRARC) EMRCHORD; 2422 +alias EMRCHORD* PEMRCHORD; 2423 +alias TypeDef!(EMRARC) EMRPIE; 2424 +alias EMRPIE* PEMRPIE; 2425 + 2426 +struct XFORM { 2427 + FLOAT eM11; 2428 + FLOAT eM12; 2429 + FLOAT eM21; 2430 + FLOAT eM22; 2431 + FLOAT eDx; 2432 + FLOAT eDy; 2433 +} 2434 +alias XFORM* PXFORM, LPXFORM; 2435 + 2436 +struct EMRBITBLT { 2437 + EMR emr; 2438 + RECTL rclBounds; 2439 + LONG xDest; 2440 + LONG yDest; 2441 + LONG cxDest; 2442 + LONG cyDest; 2443 + DWORD dwRop; 2444 + LONG xSrc; 2445 + LONG ySrc; 2446 + XFORM xformSrc; 2447 + COLORREF crBkColorSrc; 2448 + DWORD iUsageSrc; 2449 + DWORD offBmiSrc; 2450 + DWORD cbBmiSrc; 2451 + DWORD offBitsSrc; 2452 + DWORD cbBitsSrc; 2453 +} 2454 +alias EMRBITBLT* PEMRBITBLT; 2455 + 2456 +struct LOGBRUSH { 2457 + UINT lbStyle; 2458 + COLORREF lbColor; 2459 + LONG lbHatch; 2460 +} 2461 +alias TypeDef!(LOGBRUSH) PATTERN; 2462 +alias LOGBRUSH* PLOGBRUSH, NPLOGBRUSH, LPLOGBRUSH; 2463 +alias PATTERN* PPATTERN, NPPATTERN, LPPATTERN; 2464 + 2465 +struct LOGBRUSH32 { 2466 + UINT lbStyle; 2467 + COLORREF lbColor; 2468 + ULONG lbHatch; 2469 +} 2470 +alias LOGBRUSH32* PLOGBRUSH32, NPLOGBRUSH32, LPLOGBRUSH32; 2471 + 2472 +struct EMRCREATEBRUSHINDIRECT { 2473 + EMR emr; 2474 + DWORD ihBrush; 2475 + LOGBRUSH32 lb; 2476 +} 2477 +alias EMRCREATEBRUSHINDIRECT* PEMRCREATEBRUSHINDIRECT; 2648 2478 2649 2479 alias LONG LCSCSTYPE, LCSGAMUTMATCH; 2650 2480 2651 -struct LOGCOLORSPACEA 2652 -{ 2653 - DWORD lcsSignature; 2654 - DWORD lcsVersion; 2655 - DWORD lcsSize; 2656 - LCSCSTYPE lcsCSType; 2657 - LCSGAMUTMATCH lcsIntent; 2658 - CIEXYZTRIPLE lcsEndpoints; 2659 - DWORD lcsGammaRed; 2660 - DWORD lcsGammaGreen; 2661 - DWORD lcsGammaBlue; 2662 - CHAR[MAX_PATH] lcsFilename; 2663 -} 2664 -alias LOGCOLORSPACEA*LPLOGCOLORSPACEA; 2665 - 2666 -struct LOGCOLORSPACEW 2667 -{ 2668 - DWORD lcsSignature; 2669 - DWORD lcsVersion; 2670 - DWORD lcsSize; 2671 - LCSCSTYPE lcsCSType; 2672 - LCSGAMUTMATCH lcsIntent; 2673 - CIEXYZTRIPLE lcsEndpoints; 2674 - DWORD lcsGammaRed; 2675 - DWORD lcsGammaGreen; 2676 - DWORD lcsGammaBlue; 2677 - WCHAR[MAX_PATH] lcsFilename; 2678 -} 2679 -alias LOGCOLORSPACEW*LPLOGCOLORSPACEW; 2481 +struct LOGCOLORSPACEA { 2482 + DWORD lcsSignature; 2483 + DWORD lcsVersion; 2484 + DWORD lcsSize; 2485 + LCSCSTYPE lcsCSType; 2486 + LCSGAMUTMATCH lcsIntent; 2487 + CIEXYZTRIPLE lcsEndpoints; 2488 + DWORD lcsGammaRed; 2489 + DWORD lcsGammaGreen; 2490 + DWORD lcsGammaBlue; 2491 + CHAR[MAX_PATH] lcsFilename; 2492 +} 2493 +alias LOGCOLORSPACEA* LPLOGCOLORSPACEA; 2494 + 2495 +struct LOGCOLORSPACEW { 2496 + DWORD lcsSignature; 2497 + DWORD lcsVersion; 2498 + DWORD lcsSize; 2499 + LCSCSTYPE lcsCSType; 2500 + LCSGAMUTMATCH lcsIntent; 2501 + CIEXYZTRIPLE lcsEndpoints; 2502 + DWORD lcsGammaRed; 2503 + DWORD lcsGammaGreen; 2504 + DWORD lcsGammaBlue; 2505 + WCHAR[MAX_PATH] lcsFilename; 2506 +} 2507 +alias LOGCOLORSPACEW* LPLOGCOLORSPACEW; 2680 2508 2681 2509 alias USHORT COLOR16; 2682 -struct TRIVERTEX 2683 -{ 2684 - LONG x; 2685 - LONG y; 2686 - COLOR16 Red; 2687 - COLOR16 Green; 2688 - COLOR16 Blue; 2689 - COLOR16 Alpha; 2690 -} 2691 -alias TRIVERTEX*PTRIVERTEX, LPTRIVERTEX; 2692 - 2693 -static 2694 - 2695 -if (WINVER >= 0x0400) 2696 -{ 2697 - struct EMRGLSRECORD 2698 - { 2699 - EMR emr; 2700 - DWORD cbData; 2701 - BYTE[1] Data; 2702 - } 2703 - alias EMRGLSRECORD*PEMRGLSRECORD; 2704 - 2705 - struct EMRGLSBOUNDEDRECORD 2706 - { 2707 - EMR emr; 2708 - RECTL rclBounds; 2709 - DWORD cbData; 2710 - BYTE[1] Data; 2711 - } 2712 - alias EMRGLSBOUNDEDRECORD*PEMRGLSBOUNDEDRECORD; 2713 - 2714 - struct EMRPIXELFORMAT 2715 - { 2716 - EMR emr; 2717 - PIXELFORMATDESCRIPTOR pfd; 2718 - } 2719 - alias EMRPIXELFORMAT*PEMRPIXELFORMAT; 2720 - 2721 - struct EMRCREATECOLORSPACE 2722 - { 2723 - EMR emr; 2724 - DWORD ihCS; 2725 - LOGCOLORSPACE lcs; 2726 - } 2727 - alias EMRCREATECOLORSPACE*PEMRCREATECOLORSPACE; 2728 - 2729 - struct EMRSETCOLORSPACE 2730 - { 2731 - EMR emr; 2732 - DWORD ihCS; 2733 - } 2734 - alias EMRSETCOLORSPACE*PEMRSETCOLORSPACE; 2735 - alias EMRSETCOLORSPACE EMRSELECTCOLORSPACE; 2736 - alias EMRSELECTCOLORSPACE*PEMRSELECTCOLORSPACE; 2737 - alias EMRSETCOLORSPACE EMRDELETECOLORSPACE; 2738 - alias EMRDELETECOLORSPACE*PEMRDELETECOLORSPACE; 2739 -} 2740 - 2741 -static 2742 - 2743 -if (WINVER >= 0x0500) 2744 -{ 2745 - struct EMREXTESCAPE 2746 - { 2747 - EMR emr; 2748 - INT iEscape; 2749 - INT cbEscData; 2750 - BYTE[1] EscData; 2751 - } 2752 - alias EMREXTESCAPE*PEMREXTESCAPE; 2753 - alias EMREXTESCAPE EMRDRAWESCAPE; 2754 - alias EMRDRAWESCAPE*PEMRDRAWESCAPE; 2755 - 2756 - struct EMRNAMEDESCAPE 2757 - { 2758 - EMR emr; 2759 - INT iEscape; 2760 - INT cbDriver; 2761 - INT cbEscData; 2762 - BYTE[1] EscData; 2763 - } 2764 - alias EMRNAMEDESCAPE*PEMRNAMEDESCAPE; 2765 - 2766 - struct EMRSETICMPROFILE 2767 - { 2768 - EMR emr; 2769 - DWORD dwFlags; 2770 - DWORD cbName; 2771 - DWORD cbData; 2772 - BYTE[1] Data; 2773 - } 2774 - alias EMRSETICMPROFILE*PEMRSETICMPROFILE; 2775 - alias EMRSETICMPROFILE EMRSETICMPROFILEA; 2776 - alias EMRSETICMPROFILEA*PEMRSETICMPROFILEA; 2777 - alias EMRSETICMPROFILE EMRSETICMPROFILEW; 2778 - alias EMRSETICMPROFILEW*PEMRSETICMPROFILEW; 2779 - 2780 - struct EMRCREATECOLORSPACEW 2781 - { 2782 - EMR emr; 2783 - DWORD ihCS; 2784 - LOGCOLORSPACEW lcs; 2785 - DWORD dwFlags; 2786 - DWORD cbData; 2787 - BYTE[1] Data; 2788 - } 2789 - alias EMRCREATECOLORSPACEW*PEMRCREATECOLORSPACEW; 2790 - 2791 - struct EMRCOLORMATCHTOTARGET 2792 - { 2793 - EMR emr; 2794 - DWORD dwAction; 2795 - DWORD dwFlags; 2796 - DWORD cbName; 2797 - DWORD cbData; 2798 - BYTE[1] Data; 2799 - } 2800 - alias EMRCOLORMATCHTOTARGET*PEMRCOLORMATCHTOTARGET; 2801 - 2802 - struct EMRCOLORCORRECTPALETTE 2803 - { 2804 - EMR emr; 2805 - DWORD ihPalette; 2806 - DWORD nFirstEntry; 2807 - DWORD nPalEntries; 2808 - DWORD nReserved; 2809 - } 2810 - alias EMRCOLORCORRECTPALETTE*PEMRCOLORCORRECTPALETTE; 2811 - 2812 - struct EMRALPHABLEND 2813 - { 2814 - EMR emr; 2815 - RECTL rclBounds; 2816 - LONG xDest; 2817 - LONG yDest; 2818 - LONG cxDest; 2819 - LONG cyDest; 2820 - DWORD dwRop; 2821 - LONG xSrc; 2822 - LONG ySrc; 2823 - XFORM xformSrc; 2824 - COLORREF crBkColorSrc; 2825 - DWORD iUsageSrc; 2826 - DWORD offBmiSrc; 2827 - DWORD cbBmiSrc; 2828 - DWORD offBitsSrc; 2829 - DWORD cbBitsSrc; 2830 - LONG cxSrc; 2831 - LONG cySrc; 2832 - } 2833 - alias EMRALPHABLEND*PEMRALPHABLEND; 2834 - 2835 - struct EMRGRADIENTFILL 2836 - { 2837 - EMR emr; 2838 - RECTL rclBounds; 2839 - DWORD nVer; 2840 - DWORD nTri; 2841 - ULONG ulMode; 2842 - TRIVERTEX[1] Ver; 2843 - } 2844 - alias EMRGRADIENTFILL*PEMRGRADIENTFILL; 2845 - 2846 - struct EMRTRANSPARENTBLT 2847 - { 2848 - EMR emr; 2849 - RECTL rclBounds; 2850 - LONG xDest; 2851 - LONG yDest; 2852 - LONG cxDest; 2853 - LONG cyDest; 2854 - DWORD dwRop; 2855 - LONG xSrc; 2856 - LONG ySrc; 2857 - XFORM xformSrc; 2858 - COLORREF crBkColorSrc; 2859 - DWORD iUsageSrc; 2860 - DWORD offBmiSrc; 2861 - DWORD cbBmiSrc; 2862 - DWORD offBitsSrc; 2863 - DWORD cbBitsSrc; 2864 - LONG cxSrc; 2865 - LONG cySrc; 2866 - } 2867 - alias EMRTRANSPARENTBLT*PEMRTRANSPARENTBLT; 2868 -} 2869 - 2870 -struct EMRCREATEDIBPATTERNBRUSHPT 2871 -{ 2872 - EMR emr; 2873 - DWORD ihBrush; 2874 - DWORD iUsage; 2875 - DWORD offBmi; 2876 - DWORD cbBmi; 2877 - DWORD offBits; 2878 - DWORD cbBits; 2879 -} 2880 -alias EMRCREATEDIBPATTERNBRUSHPT*PEMRCREATEDIBPATTERNBRUSHPT; 2881 - 2882 -struct EMRCREATEMONOBRUSH 2883 -{ 2884 - EMR emr; 2885 - DWORD ihBrush; 2886 - DWORD iUsage; 2887 - DWORD offBmi; 2888 - DWORD cbBmi; 2889 - DWORD offBits; 2890 - DWORD cbBits; 2891 -} 2892 -alias EMRCREATEMONOBRUSH*PEMRCREATEMONOBRUSH; 2893 - 2894 -struct PALETTEENTRY 2895 -{ 2896 - BYTE peRed; 2897 - BYTE peGreen; 2898 - BYTE peBlue; 2899 - BYTE peFlags; 2900 -} 2901 -alias PALETTEENTRY*PPALETTEENTRY, LPPALETTEENTRY; 2902 - 2903 -struct LOGPALETTE 2904 -{ 2905 - WORD palVersion; 2906 - WORD palNumEntries; 2907 - PALETTEENTRY[1] palPalEntry; 2908 -} 2909 -alias LOGPALETTE*PLOGPALETTE, NPLOGPALETTE, LPLOGPALETTE; 2910 - 2911 -struct EMRCREATEPALETTE 2912 -{ 2913 - EMR emr; 2914 - DWORD ihPal; 2915 - LOGPALETTE lgpl; 2916 -} 2917 -alias EMRCREATEPALETTE*PEMRCREATEPALETTE; 2918 - 2919 -struct EMRCREATEPEN 2920 -{ 2921 - EMR emr; 2922 - DWORD ihPen; 2923 - LOGPEN lopn; 2924 -} 2925 -alias EMRCREATEPEN*PEMRCREATEPEN; 2926 - 2927 -struct EMRELLIPSE 2928 -{ 2929 - EMR emr; 2930 - RECTL rclBox; 2931 -} 2932 -alias EMRELLIPSE*PEMRELLIPSE; 2933 - 2934 -alias EMRELLIPSE EMRRECTANGLE; 2935 -alias EMRRECTANGLE*PEMRRECTANGLE; 2936 - 2937 -struct EMREOF 2938 -{ 2939 - EMR emr; 2940 - DWORD nPalEntries; 2941 - DWORD offPalEntries; 2942 - DWORD nSizeLast; 2943 -} 2944 -alias EMREOF*PEMREOF; 2945 - 2946 -struct EMREXCLUDECLIPRECT 2947 -{ 2948 - EMR emr; 2949 - RECTL rclClip; 2950 -} 2951 -alias EMREXCLUDECLIPRECT*PEMREXCLUDECLIPRECT; 2952 -alias EMREXCLUDECLIPRECT EMRINTERSECTCLIPRECT; 2953 -alias EMRINTERSECTCLIPRECT*PEMRINTERSECTCLIPRECT; 2954 - 2955 -struct EMREXTCREATEFONTINDIRECTW 2956 -{ 2957 - EMR emr; 2958 - DWORD ihFont; 2959 - EXTLOGFONTW elfw; 2960 -} 2961 -alias EMREXTCREATEFONTINDIRECTW*PEMREXTCREATEFONTINDIRECTW; 2962 - 2963 -struct EXTLOGPEN 2964 -{ 2965 - UINT elpPenStyle; 2966 - UINT elpWidth; 2967 - UINT elpBrushStyle; 2968 - COLORREF elpColor; 2969 - LONG elpHatch; 2970 - DWORD elpNumEntries; 2971 - DWORD[1] elpStyleEntry; 2972 -} 2973 -alias EXTLOGPEN*PEXTLOGPEN, NPEXTLOGPEN, LPEXTLOGPEN; 2974 - 2975 -struct EMREXTCREATEPEN 2976 -{ 2977 - EMR emr; 2978 - DWORD ihPen; 2979 - DWORD offBmi; 2980 - DWORD cbBmi; 2981 - DWORD offBits; 2982 - DWORD cbBits; 2983 - EXTLOGPEN elp; 2984 -} 2985 -alias EMREXTCREATEPEN*PEMREXTCREATEPEN; 2986 - 2987 -struct EMREXTFLOODFILL 2988 -{ 2989 - EMR emr; 2990 - POINTL ptlStart; 2991 - COLORREF crColor; 2992 - DWORD iMode; 2993 -} 2994 -alias EMREXTFLOODFILL*PEMREXTFLOODFILL; 2995 - 2996 -struct EMREXTSELECTCLIPRGN 2997 -{ 2998 - EMR emr; 2999 - DWORD cbRgnData; 3000 - DWORD iMode; 3001 - BYTE [1] RgnData; 3002 -} 3003 -alias EMREXTSELECTCLIPRGN*PEMREXTSELECTCLIPRGN; 3004 - 3005 -struct EMRTEXT 3006 -{ 3007 - POINTL ptlReference; 3008 - DWORD nChars; 3009 - DWORD offString; 3010 - DWORD fOptions; 3011 - RECTL rcl; 3012 - DWORD offDx; 3013 -} 3014 -alias EMRTEXT*PEMRTEXT; 3015 - 3016 -struct EMREXTTEXTOUTA 3017 -{ 3018 - EMR emr; 3019 - RECTL rclBounds; 3020 - DWORD iGraphicsMode; 3021 - FLOAT exScale; 3022 - FLOAT eyScale; 3023 - EMRTEXT emrtext; 3024 -} 3025 -alias EMREXTTEXTOUTA*PEMREXTTEXTOUTA; 3026 -alias EMREXTTEXTOUTA EMREXTTEXTOUTW; 3027 -alias EMREXTTEXTOUTW*PEMREXTTEXTOUTW; 3028 - 3029 -struct EMRFILLPATH 3030 -{ 3031 - EMR emr; 3032 - RECTL rclBounds; 3033 -} 3034 -alias EMRFILLPATH*PEMRFILLPATH; 3035 - 3036 -alias EMRFILLPATH EMRSTROKEANDFILLPATH; 3037 -alias EMRSTROKEANDFILLPATH*PEMRSTROKEANDFILLPATH; 3038 - 3039 -alias EMRFILLPATH EMRSTROKEPATH; 3040 -alias EMRSTROKEPATH*PEMRSTROKEPATH; 3041 - 3042 -struct EMRFILLRGN 3043 -{ 3044 - EMR emr; 3045 - RECTL rclBounds; 3046 - DWORD cbRgnData; 3047 - DWORD ihBrush; 3048 - BYTE[1] RgnData; 3049 -} 3050 -alias EMRFILLRGN*PEMRFILLRGN; 3051 - 3052 -struct EMRFORMAT 3053 -{ 3054 - DWORD dSignature; 3055 - DWORD nVersion; 3056 - DWORD cbData; 3057 - DWORD offData; 3058 -} 3059 -alias EMRFORMAT*PEMRFORMAT; 3060 - 3061 -struct EMRFRAMERGN 3062 -{ 3063 - EMR emr; 3064 - RECTL rclBounds; 3065 - DWORD cbRgnData; 3066 - DWORD ihBrush; 3067 - SIZEL szlStroke; 3068 - BYTE[1] RgnData; 3069 -} 3070 -alias EMRFRAMERGN*PEMRFRAMERGN; 3071 - 3072 -struct EMRGDICOMMENT 3073 -{ 3074 - EMR emr; 3075 - DWORD cbData; 3076 - BYTE[1] Data; 3077 -} 3078 -alias EMRGDICOMMENT*PEMRGDICOMMENT; 3079 - 3080 -struct EMRINVERTRGN 3081 -{ 3082 - EMR emr; 3083 - RECTL rclBounds; 3084 - DWORD cbRgnData; 3085 - BYTE[1] RgnData; 3086 -} 3087 -alias EMRINVERTRGN*PEMRINVERTRGN; 3088 -alias EMRINVERTRGN EMRPAINTRGN; 3089 -alias EMRPAINTRGN*PEMRPAINTRGN; 3090 - 3091 -struct EMRLINETO 3092 -{ 3093 - EMR emr; 3094 - POINTL ptl; 3095 -} 3096 -alias EMRLINETO*PEMRLINETO; 3097 -alias EMRLINETO EMRMOVETOEX; 3098 -alias EMRMOVETOEX*PEMRMOVETOEX; 3099 - 3100 -struct EMRMASKBLT 3101 -{ 3102 - EMR emr; 3103 - RECTL rclBounds; 3104 - LONG xDest; 3105 - LONG yDest; 3106 - LONG cxDest; 3107 - LONG cyDest; 3108 - DWORD dwRop; 3109 - LONG xSrc; 3110 - LONG ySrc; 3111 - XFORM xformSrc; 3112 - COLORREF crBkColorSrc; 3113 - DWORD iUsageSrc; 3114 - DWORD offBmiSrc; 3115 - DWORD cbBmiSrc; 3116 - DWORD offBitsSrc; 3117 - DWORD cbBitsSrc; 3118 - LONG xMask; 3119 - LONG yMask; 3120 - DWORD iUsageMask; 3121 - DWORD offBmiMask; 3122 - DWORD cbBmiMask; 3123 - DWORD offBitsMask; 3124 - DWORD cbBitsMask; 3125 -} 3126 -alias EMRMASKBLT*PEMRMASKBLT; 3127 - 3128 -struct EMRMODIFYWORLDTRANSFORM 3129 -{ 3130 - EMR emr; 3131 - XFORM xform; 3132 - DWORD iMode; 3133 -} 3134 -alias EMRMODIFYWORLDTRANSFORM*PEMRMODIFYWORLDTRANSFORM; 3135 - 3136 -struct EMROFFSETCLIPRGN 3137 -{ 3138 - EMR emr; 3139 - POINTL ptlOffset; 3140 -} 3141 -alias EMROFFSETCLIPRGN*PEMROFFSETCLIPRGN; 3142 - 3143 -struct EMRPLGBLT 3144 -{ 3145 - EMR emr; 3146 - RECTL rclBounds; 3147 - POINTL[3] aptlDest; 3148 - LONG xSrc; 3149 - LONG ySrc; 3150 - LONG cxSrc; 3151 - LONG cySrc; 3152 - XFORM xformSrc; 3153 - COLORREF crBkColorSrc; 3154 - DWORD iUsageSrc; 3155 - DWORD offBmiSrc; 3156 - DWORD cbBmiSrc; 3157 - DWORD offBitsSrc; 3158 - DWORD cbBitsSrc; 3159 - LONG xMask; 3160 - LONG yMask; 3161 - DWORD iUsageMask; 3162 - DWORD offBmiMask; 3163 - DWORD cbBmiMask; 3164 - DWORD offBitsMask; 3165 - DWORD cbBitsMask; 3166 -} 3167 -alias EMRPLGBLT*PEMRPLGBLT; 3168 - 3169 -struct EMRPOLYDRAW 3170 -{ 3171 - EMR emr; 3172 - RECTL rclBounds; 3173 - DWORD cptl; 3174 - POINTL[1] aptl; 3175 - BYTE[1] abTypes; 3176 -} 3177 -alias EMRPOLYDRAW*PEMRPOLYDRAW; 3178 - 3179 -struct EMRPOLYDRAW16 3180 -{ 3181 - EMR emr; 3182 - RECTL rclBounds; 3183 - DWORD cpts; 3184 - POINTS[1] apts; 3185 - BYTE[1] abTypes; 3186 -} 3187 -alias EMRPOLYDRAW16*PEMRPOLYDRAW16; 3188 - 3189 -struct EMRPOLYLINE 3190 -{ 3191 - EMR emr; 3192 - RECTL rclBounds; 3193 - DWORD cptl; 3194 - POINTL[1] aptl; 3195 -} 3196 -alias EMRPOLYLINE*PEMRPOLYLINE; 3197 -alias EMRPOLYLINE EMRPOLYBEZIER; 3198 -alias EMRPOLYBEZIER*PEMRPOLYBEZIER; 3199 -alias EMRPOLYLINE EMRPOLYGON; 3200 -alias EMRPOLYGON*PEMRPOLYGON; 3201 -alias EMRPOLYLINE EMRPOLYBEZIERTO; 3202 -alias EMRPOLYBEZIERTO*PEMRPOLYBEZIERTO; 3203 -alias EMRPOLYLINE EMRPOLYLINETO; 3204 -alias EMRPOLYLINETO*PEMRPOLYLINETO; 3205 - 3206 -struct EMRPOLYLINE16 3207 -{ 3208 - EMR emr; 3209 - RECTL rclBounds; 3210 - DWORD cpts; 3211 - POINTS[1] apts; 3212 -} 3213 -alias EMRPOLYLINE16*PEMRPOLYLINE16; 3214 -alias EMRPOLYLINE16 EMRPOLYBEZIER16; 3215 -alias EMRPOLYBEZIER16*PEMRPOLYBEZIER16; 3216 -alias EMRPOLYLINE16 EMRPOLYGON16; 3217 -alias EMRPOLYGON16*PEMRPOLYGON16; 3218 -alias EMRPOLYLINE16 EMRPOLYBEZIERTO16; 3219 -alias EMRPOLYBEZIERTO16*PEMRPOLYBEZIERTO16; 3220 -alias EMRPOLYLINE16 EMRPOLYLINETO16; 3221 -alias EMRPOLYLINETO16*PEMRPOLYLINETO16; 3222 - 3223 -struct EMRPOLYPOLYLINE 3224 -{ 3225 - EMR emr; 3226 - RECTL rclBounds; 3227 - DWORD nPolys; 3228 - DWORD cptl; 3229 - DWORD[1] aPolyCounts; 3230 - POINTL[1] aptl; 3231 -} 3232 -alias EMRPOLYPOLYLINE*PEMRPOLYPOLYLINE; 3233 -alias EMRPOLYPOLYLINE EMRPOLYPOLYGON; 3234 -alias EMRPOLYPOLYGON*PEMRPOLYPOLYGON; 3235 - 3236 -struct EMRPOLYPOLYLINE16 3237 -{ 3238 - EMR emr; 3239 - RECTL rclBounds; 3240 - DWORD nPolys; 3241 - DWORD cpts; 3242 - DWORD[1] aPolyCounts; 3243 - POINTS[1] apts; 3244 -} 3245 -alias EMRPOLYPOLYLINE16*PEMRPOLYPOLYLINE16; 3246 -alias EMRPOLYPOLYLINE16 EMRPOLYPOLYGON16; 3247 -alias EMRPOLYPOLYGON16*PEMRPOLYPOLYGON16; 3248 - 3249 -struct EMRPOLYTEXTOUTA 3250 -{ 3251 - EMR emr; 3252 - RECTL rclBounds; 3253 - DWORD iGraphicsMode; 3254 - FLOAT exScale; 3255 - FLOAT eyScale; 3256 - LONG cStrings; 3257 - EMRTEXT[1] aemrtext; 3258 -} 3259 -alias EMRPOLYTEXTOUTA*PEMRPOLYTEXTOUTA; 3260 -alias EMRPOLYTEXTOUTA EMRPOLYTEXTOUTW; 3261 -alias EMRPOLYTEXTOUTW*PEMRPOLYTEXTOUTW; 3262 - 3263 -struct EMRRESIZEPALETTE 3264 -{ 3265 - EMR emr; 3266 - DWORD ihPal; 3267 - DWORD cEntries; 3268 -} 3269 -alias EMRRESIZEPALETTE*PEMRRESIZEPALETTE; 3270 - 3271 -struct EMRRESTOREDC 3272 -{ 3273 - EMR emr; 3274 - LONG iRelative; 3275 -} 3276 -alias EMRRESTOREDC*PEMRRESTOREDC; 3277 - 3278 -struct EMRROUNDRECT 3279 -{ 3280 - EMR emr; 3281 - RECTL rclBox; 3282 - SIZEL szlCorner; 3283 -} 3284 -alias EMRROUNDRECT*PEMRROUNDRECT; 3285 - 3286 -struct EMRSCALEVIEWPORTEXTEX 3287 -{ 3288 - EMR emr; 3289 - LONG xNum; 3290 - LONG xDenom; 3291 - LONG yNum; 3292 - LONG yDenom; 3293 -} 3294 -alias EMRSCALEVIEWPORTEXTEX*PEMRSCALEVIEWPORTEXTEX; 3295 -alias EMRSCALEVIEWPORTEXTEX EMRSCALEWINDOWEXTEX; 3296 -alias EMRSCALEWINDOWEXTEX*PEMRSCALEWINDOWEXTEX; 3297 - 3298 -struct EMRSELECTOBJECT 3299 -{ 3300 - EMR emr; 3301 - DWORD ihObject; 3302 -} 3303 -alias EMRSELECTOBJECT*PEMRSELECTOBJECT; 3304 -alias EMRSELECTOBJECT EMRDELETEOBJECT; 3305 -alias EMRDELETEOBJECT*PEMRDELETEOBJECT; 3306 - 3307 -struct EMRSELECTPALETTE 3308 -{ 3309 - EMR emr; 3310 - DWORD ihPal; 3311 -} 3312 -alias EMRSELECTPALETTE*PEMRSELECTPALETTE; 3313 - 3314 -struct EMRSETARCDIRECTION 3315 -{ 3316 - EMR emr; 3317 - DWORD iArcDirection; 3318 -} 3319 -alias EMRSETARCDIRECTION*PEMRSETARCDIRECTION; 3320 - 3321 -struct EMRSETTEXTCOLOR 3322 -{ 3323 - EMR emr; 3324 - COLORREF crColor; 3325 -} 3326 -alias EMRSETTEXTCOLOR*PEMRSETTEXTCOLOR; 3327 -alias EMRSETTEXTCOLOR EMRSETBKCOLOR; 3328 -alias EMRSETBKCOLOR*PEMRSETBKCOLOR; 3329 - 3330 -struct EMRSETCOLORADJUSTMENT 3331 -{ 3332 - EMR emr; 3333 - COLORADJUSTMENT ColorAdjustment; 3334 -} 3335 -alias EMRSETCOLORADJUSTMENT*PEMRSETCOLORADJUSTMENT; 3336 - 3337 -struct EMRSETDIBITSTODEVICE 3338 -{ 3339 - EMR emr; 3340 - RECTL rclBounds; 3341 - LONG xDest; 3342 - LONG yDest; 3343 - LONG xSrc; 3344 - LONG ySrc; 3345 - LONG cxSrc; 3346 - LONG cySrc; 3347 - DWORD offBmiSrc; 3348 - DWORD cbBmiSrc; 3349 - DWORD offBitsSrc; 3350 - DWORD cbBitsSrc; 3351 - DWORD iUsageSrc; 3352 - DWORD iStartScan; 3353 - DWORD cScans; 3354 -} 3355 -alias EMRSETDIBITSTODEVICE*PEMRSETDIBITSTODEVICE; 3356 - 3357 -struct EMRSETMAPPERFLAGS 3358 -{ 3359 - EMR emr; 3360 - DWORD dwFlags; 3361 -} 3362 -alias EMRSETMAPPERFLAGS*PEMRSETMAPPERFLAGS; 3363 - 3364 -struct EMRSETMITERLIMIT 3365 -{ 3366 - EMR emr; 3367 - FLOAT eMiterLimit; 3368 -} 3369 -alias EMRSETMITERLIMIT*PEMRSETMITERLIMIT; 3370 - 3371 -struct EMRSETPALETTEENTRIES 3372 -{ 3373 - EMR emr; 3374 - DWORD ihPal; 3375 - DWORD iStart; 3376 - DWORD cEntries; 3377 - PALETTEENTRY[1] aPalEntries; 3378 -} 3379 -alias EMRSETPALETTEENTRIES*PEMRSETPALETTEENTRIES; 3380 - 3381 -struct EMRSETPIXELV 3382 -{ 3383 - EMR emr; 3384 - POINTL ptlPixel; 3385 - COLORREF crColor; 3386 -} 3387 -alias EMRSETPIXELV*PEMRSETPIXELV; 3388 - 3389 -struct EMRSETVIEWPORTEXTEX 3390 -{ 3391 - EMR emr; 3392 - SIZEL szlExtent; 3393 -} 3394 -alias EMRSETVIEWPORTEXTEX*PEMRSETVIEWPORTEXTEX; 3395 -alias EMRSETVIEWPORTEXTEX EMRSETWINDOWEXTEX; 3396 -alias EMRSETWINDOWEXTEX*PEMRSETWINDOWEXTEX; 3397 - 3398 -struct EMRSETVIEWPORTORGEX 3399 -{ 3400 - EMR emr; 3401 - POINTL ptlOrigin; 3402 -} 3403 -alias EMRSETVIEWPORTORGEX*PEMRSETVIEWPORTORGEX; 3404 -alias EMRSETVIEWPORTORGEX EMRSETWINDOWORGEX; 3405 -alias EMRSETWINDOWORGEX*PEMRSETWINDOWORGEX; 3406 -alias EMRSETVIEWPORTORGEX EMRSETBRUSHORGEX; 3407 -alias EMRSETBRUSHORGEX*PEMRSETBRUSHORGEX; 3408 - 3409 -struct EMRSETWORLDTRANSFORM 3410 -{ 3411 - EMR emr; 3412 - XFORM xform; 3413 -} 3414 -alias EMRSETWORLDTRANSFORM*PEMRSETWORLDTRANSFORM; 3415 - 3416 -struct EMRSTRETCHBLT 3417 -{ 3418 - EMR emr; 3419 - RECTL rclBounds; 3420 - LONG xDest; 3421 - LONG yDest; 3422 - LONG cxDest; 3423 - LONG cyDest; 3424 - DWORD dwRop; 3425 - LONG xSrc; 3426 - LONG ySrc; 3427 - XFORM xformSrc; 3428 - COLORREF crBkColorSrc; 3429 - DWORD iUsageSrc; 3430 - DWORD offBmiSrc; 3431 - DWORD cbBmiSrc; 3432 - DWORD offBitsSrc; 3433 - DWORD cbBitsSrc; 3434 - LONG cxSrc; 3435 - LONG cySrc; 3436 -} 3437 -alias EMRSTRETCHBLT*PEMRSTRETCHBLT; 3438 - 3439 -struct EMRSTRETCHDIBITS 3440 -{ 3441 - EMR emr; 3442 - RECTL rclBounds; 3443 - LONG xDest; 3444 - LONG yDest; 3445 - LONG xSrc; 3446 - LONG ySrc; 3447 - LONG cxSrc; 3448 - LONG cySrc; 3449 - DWORD offBmiSrc; 3450 - DWORD cbBmiSrc; 3451 - DWORD offBitsSrc; 3452 - DWORD cbBitsSrc; 3453 - DWORD iUsageSrc; 3454 - DWORD dwRop; 3455 - LONG cxDest; 3456 - LONG cyDest; 3457 -} 3458 -alias EMRSTRETCHDIBITS*PEMRSTRETCHDIBITS; 3459 - 3460 -struct EMRABORTPATH 3461 -{ 3462 - EMR emr; 3463 -} 3464 -alias EMRABORTPATH*PEMRABORTPATH; 3465 -alias EMRABORTPATH EMRBEGINPATH; 3466 -alias EMRBEGINPATH*PEMRBEGINPATH; 3467 -alias EMRABORTPATH EMRENDPATH; 3468 -alias EMRENDPATH*PEMRENDPATH; 3469 -alias EMRABORTPATH EMRCLOSEFIGURE; 3470 -alias EMRCLOSEFIGURE*PEMRCLOSEFIGURE; 3471 -alias EMRABORTPATH EMRFLATTENPATH; 3472 -alias EMRFLATTENPATH*PEMRFLATTENPATH; 3473 -alias EMRABORTPATH EMRWIDENPATH; 3474 -alias EMRWIDENPATH*PEMRWIDENPATH; 3475 -alias EMRABORTPATH EMRSETMETARGN; 3476 -alias EMRSETMETARGN*PEMRSETMETARGN; 3477 -alias EMRABORTPATH EMRSAVEDC; 3478 -alias EMRSAVEDC*PEMRSAVEDC; 3479 -alias EMRABORTPATH EMRREALIZEPALETTE; 3480 -alias EMRREALIZEPALETTE*PEMRREALIZEPALETTE; 3481 - 3482 -struct EMRSELECTCLIPPATH 3483 -{ 3484 - EMR emr; 3485 - DWORD iMode; 3486 -} 3487 -alias EMRSELECTCLIPPATH*PEMRSELECTCLIPPATH; 3488 -alias EMRSELECTCLIPPATH EMRSETBKMODE; 3489 -alias EMRSETBKMODE*PEMRSETBKMODE; 3490 -alias EMRSELECTCLIPPATH EMRSETMAPMODE; 3491 -alias EMRSETMAPMODE*PEMRSETMAPMODE; 3492 -alias EMRSELECTCLIPPATH EMRSETPOLYFILLMODE; 3493 -alias EMRSETPOLYFILLMODE*PEMRSETPOLYFILLMODE; 3494 -alias EMRSELECTCLIPPATH EMRSETROP2; 3495 -alias EMRSETROP2*PEMRSETROP2; 3496 -alias EMRSELECTCLIPPATH EMRSETSTRETCHBLTMODE; 3497 -alias EMRSETSTRETCHBLTMODE*PEMRSETSTRETCHBLTMODE; 3498 -alias EMRSELECTCLIPPATH EMRSETICMMODE; 3499 -alias EMRSETICMMODE*PEMRSETICMMODE; 3500 -alias EMRSELECTCLIPPATH EMRSETTEXTALIGN; 3501 -alias EMRSETTEXTALIGN*PEMRSETTEXTALIGN; 3502 -alias EMRSELECTCLIPPATH EMRENABLEICM; 3503 -alias EMRENABLEICM*PEMRENABLEICM; 3504 -static 3505 - 3506 -if (WINVER >= 0x0500) 3507 -{ 3508 - alias EMRSELECTCLIPPATH EMRSETLAYOUT; 3509 - alias EMRSETLAYOUT*PEMRSETLAYOUT; 3510 -} 3511 - 3512 -align (2) : 3513 -struct METAHEADER 3514 -{ 3515 - WORD mtType; 3516 - WORD mtHeaderSize; 3517 - WORD mtVersion; 3518 - DWORD mtSize; 3519 - WORD mtNoObjects; 3520 - DWORD mtMaxRecord; 3521 - WORD mtNoParameters; 3522 -} 3523 -alias METAHEADER*PMETAHEADER; 3524 -alias METAHEADER*LPMETAHEADER; 3525 - 3526 -align : 3527 - 3528 -struct ENHMETAHEADER 3529 -{ 3530 - DWORD iType; 3531 - DWORD nSize; 3532 - RECTL rclBounds; 3533 - RECTL rclFrame; 3534 - DWORD dSignature = ENHMETA_SIGNATURE; 3535 - DWORD nVersion; 3536 - DWORD nBytes; 3537 - DWORD nRecords; 3538 - WORD nHandles; 3539 - WORD sReserved; 3540 - DWORD nDescription; 3541 - DWORD offDescription; 3542 - DWORD nPalEntries; 3543 - SIZEL szlDevice; 3544 - SIZEL szlMillimeters; 3545 - static 3546 - 3547 - if (WINVER >= 0x0400) 3548 - { 3549 - DWORD cbPixelFormat; 3550 - DWORD offPixelFormat; 3551 - DWORD bOpenGL; 3552 - } 3553 - 3554 - static 3555 - 3556 - if (WINVER >= 0x0500) 3557 - { 3558 - SIZEL szlMicrometers; 3559 - } 3560 -} 3561 -alias ENHMETAHEADER*PENHMETAHEADER, LPENHMETAHEADER; 3562 - 3563 -struct METARECORD 3564 -{ 3565 - DWORD rdSize; 3566 - WORD rdFunction; 3567 - WORD[1] rdParm; 3568 -} 3569 -alias METARECORD*PMETARECORD; 3570 -alias METARECORD*LPMETARECORD; 3571 - 3572 -struct ENHMETARECORD 3573 -{ 3574 - DWORD iType; 3575 - DWORD nSize; 3576 - DWORD[1] dParm; 3577 -} 3578 -alias ENHMETARECORD*PENHMETARECORD, LPENHMETARECORD; 2510 +struct TRIVERTEX { 2511 + LONG x; 2512 + LONG y; 2513 + COLOR16 Red; 2514 + COLOR16 Green; 2515 + COLOR16 Blue; 2516 + COLOR16 Alpha; 2517 +} 2518 +alias TRIVERTEX* PTRIVERTEX, LPTRIVERTEX; 2519 + 2520 +struct EMRGLSRECORD { 2521 + EMR emr; 2522 + DWORD cbData; 2523 + BYTE[1] Data; 2524 +} 2525 +alias EMRGLSRECORD* PEMRGLSRECORD; 2526 + 2527 +struct EMRGLSBOUNDEDRECORD { 2528 + EMR emr; 2529 + RECTL rclBounds; 2530 + DWORD cbData; 2531 + BYTE[1] Data; 2532 +} 2533 +alias EMRGLSBOUNDEDRECORD* PEMRGLSBOUNDEDRECORD; 2534 + 2535 +struct EMRPIXELFORMAT { 2536 + EMR emr; 2537 + PIXELFORMATDESCRIPTOR pfd; 2538 +} 2539 +alias EMRPIXELFORMAT* PEMRPIXELFORMAT; 2540 + 2541 +struct EMRCREATECOLORSPACE { 2542 + EMR emr; 2543 + DWORD ihCS; 2544 + LOGCOLORSPACE lcs; 2545 +} 2546 +alias EMRCREATECOLORSPACE* PEMRCREATECOLORSPACE; 2547 + 2548 +struct EMRSETCOLORSPACE { 2549 + EMR emr; 2550 + DWORD ihCS; 2551 +} 2552 +alias EMRSETCOLORSPACE* PEMRSETCOLORSPACE; 2553 +alias TypeDef!(EMRSETCOLORSPACE) EMRSELECTCOLORSPACE; 2554 +alias EMRSELECTCOLORSPACE* PEMRSELECTCOLORSPACE; 2555 +alias TypeDef!(EMRSETCOLORSPACE) EMRDELETECOLORSPACE; 2556 +alias EMRDELETECOLORSPACE* PEMRDELETECOLORSPACE; 2557 + 2558 +static if (_WIN32_WINNT >= 0x500) { 2559 + 2560 + struct EMREXTESCAPE { 2561 + EMR emr; 2562 + INT iEscape; 2563 + INT cbEscData; 2564 + BYTE[1] EscData; 2565 + } 2566 + alias EMREXTESCAPE* PEMREXTESCAPE; 2567 + alias TypeDef!(EMREXTESCAPE) EMRDRAWESCAPE; 2568 + alias EMRDRAWESCAPE* PEMRDRAWESCAPE; 2569 + 2570 + struct EMRNAMEDESCAPE { 2571 + EMR emr; 2572 + INT iEscape; 2573 + INT cbDriver; 2574 + INT cbEscData; 2575 + BYTE[1] EscData; 2576 + } 2577 + alias EMRNAMEDESCAPE* PEMRNAMEDESCAPE; 2578 + 2579 + struct EMRSETICMPROFILE { 2580 + EMR emr; 2581 + DWORD dwFlags; 2582 + DWORD cbName; 2583 + DWORD cbData; 2584 + BYTE[1] Data; 2585 + } 2586 + alias EMRSETICMPROFILE* PEMRSETICMPROFILE; 2587 + alias TypeDef!(EMRSETICMPROFILE) EMRSETICMPROFILEA; 2588 + alias EMRSETICMPROFILEA* PEMRSETICMPROFILEA; 2589 + alias TypeDef!(EMRSETICMPROFILE) EMRSETICMPROFILEW; 2590 + alias EMRSETICMPROFILEW* PEMRSETICMPROFILEW; 2591 + 2592 + struct EMRCREATECOLORSPACEW { 2593 + EMR emr; 2594 + DWORD ihCS; 2595 + LOGCOLORSPACEW lcs; 2596 + DWORD dwFlags; 2597 + DWORD cbData; 2598 + BYTE[1] Data; 2599 + } 2600 + alias EMRCREATECOLORSPACEW* PEMRCREATECOLORSPACEW; 2601 + 2602 + struct EMRCOLORMATCHTOTARGET { 2603 + EMR emr; 2604 + DWORD dwAction; 2605 + DWORD dwFlags; 2606 + DWORD cbName; 2607 + DWORD cbData; 2608 + BYTE[1] Data; 2609 + } 2610 + alias EMRCOLORMATCHTOTARGET* PEMRCOLORMATCHTOTARGET; 2611 + 2612 + struct EMRCOLORCORRECTPALETTE { 2613 + EMR emr; 2614 + DWORD ihPalette; 2615 + DWORD nFirstEntry; 2616 + DWORD nPalEntries; 2617 + DWORD nReserved; 2618 + } 2619 + alias EMRCOLORCORRECTPALETTE* PEMRCOLORCORRECTPALETTE; 2620 + 2621 + struct EMRALPHABLEND { 2622 + EMR emr; 2623 + RECTL rclBounds; 2624 + LONG xDest; 2625 + LONG yDest; 2626 + LONG cxDest; 2627 + LONG cyDest; 2628 + DWORD dwRop; 2629 + LONG xSrc; 2630 + LONG ySrc; 2631 + XFORM xformSrc; 2632 + COLORREF crBkColorSrc; 2633 + DWORD iUsageSrc; 2634 + DWORD offBmiSrc; 2635 + DWORD cbBmiSrc; 2636 + DWORD offBitsSrc; 2637 + DWORD cbBitsSrc; 2638 + LONG cxSrc; 2639 + LONG cySrc; 2640 + } 2641 + alias EMRALPHABLEND* PEMRALPHABLEND; 2642 + 2643 + struct EMRGRADIENTFILL { 2644 + EMR emr; 2645 + RECTL rclBounds; 2646 + DWORD nVer; 2647 + DWORD nTri; 2648 + ULONG ulMode; 2649 + TRIVERTEX[1] Ver; 2650 + } 2651 + alias EMRGRADIENTFILL* PEMRGRADIENTFILL; 2652 + 2653 + struct EMRTRANSPARENTBLT { 2654 + EMR emr; 2655 + RECTL rclBounds; 2656 + LONG xDest; 2657 + LONG yDest; 2658 + LONG cxDest; 2659 + LONG cyDest; 2660 + DWORD dwRop; 2661 + LONG xSrc; 2662 + LONG ySrc; 2663 + XFORM xformSrc; 2664 + COLORREF crBkColorSrc; 2665 + DWORD iUsageSrc; 2666 + DWORD offBmiSrc; 2667 + DWORD cbBmiSrc; 2668 + DWORD offBitsSrc; 2669 + DWORD cbBitsSrc; 2670 + LONG cxSrc; 2671 + LONG cySrc; 2672 + } 2673 + alias EMRTRANSPARENTBLT* PEMRTRANSPARENTBLT; 2674 +} 2675 + 2676 +struct EMRCREATEDIBPATTERNBRUSHPT { 2677 + EMR emr; 2678 + DWORD ihBrush; 2679 + DWORD iUsage; 2680 + DWORD offBmi; 2681 + DWORD cbBmi; 2682 + DWORD offBits; 2683 + DWORD cbBits; 2684 +} 2685 +alias EMRCREATEDIBPATTERNBRUSHPT* PEMRCREATEDIBPATTERNBRUSHPT; 2686 + 2687 +struct EMRCREATEMONOBRUSH { 2688 + EMR emr; 2689 + DWORD ihBrush; 2690 + DWORD iUsage; 2691 + DWORD offBmi; 2692 + DWORD cbBmi; 2693 + DWORD offBits; 2694 + DWORD cbBits; 2695 +} 2696 +alias EMRCREATEMONOBRUSH* PEMRCREATEMONOBRUSH; 2697 + 2698 +struct PALETTEENTRY { 2699 + BYTE peRed; 2700 + BYTE peGreen; 2701 + BYTE peBlue; 2702 + BYTE peFlags; 2703 +} 2704 +alias PALETTEENTRY* PPALETTEENTRY, LPPALETTEENTRY; 2705 + 2706 +struct LOGPALETTE { 2707 + WORD palVersion; 2708 + WORD palNumEntries; 2709 + PALETTEENTRY[1] palPalEntry; 2710 +} 2711 +alias LOGPALETTE* PLOGPALETTE, NPLOGPALETTE, LPLOGPALETTE; 2712 + 2713 +struct EMRCREATEPALETTE { 2714 + EMR emr; 2715 + DWORD ihPal; 2716 + LOGPALETTE lgpl; 2717 +} 2718 +alias EMRCREATEPALETTE* PEMRCREATEPALETTE; 2719 + 2720 +struct EMRCREATEPEN { 2721 + EMR emr; 2722 + DWORD ihPen; 2723 + LOGPEN lopn; 2724 +} 2725 +alias EMRCREATEPEN* PEMRCREATEPEN; 2726 + 2727 +struct EMRELLIPSE { 2728 + EMR emr; 2729 + RECTL rclBox; 2730 +} 2731 +alias EMRELLIPSE* PEMRELLIPSE; 2732 + 2733 +alias TypeDef!(EMRELLIPSE) EMRRECTANGLE; 2734 +alias EMRRECTANGLE* PEMRRECTANGLE; 2735 + 2736 +struct EMREOF { 2737 + EMR emr; 2738 + DWORD nPalEntries; 2739 + DWORD offPalEntries; 2740 + DWORD nSizeLast; 2741 +} 2742 +alias EMREOF* PEMREOF; 2743 + 2744 +struct EMREXCLUDECLIPRECT { 2745 + EMR emr; 2746 + RECTL rclClip; 2747 +} 2748 +alias EMREXCLUDECLIPRECT* PEMREXCLUDECLIPRECT; 2749 +alias TypeDef!(EMREXCLUDECLIPRECT) EMRINTERSECTCLIPRECT; 2750 +alias EMRINTERSECTCLIPRECT* PEMRINTERSECTCLIPRECT; 2751 + 2752 +struct EMREXTCREATEFONTINDIRECTW { 2753 + EMR emr; 2754 + DWORD ihFont; 2755 + EXTLOGFONTW elfw; 2756 +} 2757 +alias EMREXTCREATEFONTINDIRECTW* PEMREXTCREATEFONTINDIRECTW; 2758 + 2759 +struct EXTLOGPEN { 2760 + UINT elpPenStyle; 2761 + UINT elpWidth; 2762 + UINT elpBrushStyle; 2763 + COLORREF elpColor; 2764 + LONG elpHatch; 2765 + DWORD elpNumEntries; 2766 + DWORD[1] elpStyleEntry; 2767 +} 2768 +alias EXTLOGPEN* PEXTLOGPEN, NPEXTLOGPEN, LPEXTLOGPEN; 2769 + 2770 +struct EMREXTCREATEPEN { 2771 + EMR emr; 2772 + DWORD ihPen; 2773 + DWORD offBmi; 2774 + DWORD cbBmi; 2775 + DWORD offBits; 2776 + DWORD cbBits; 2777 + EXTLOGPEN elp; 2778 +} 2779 +alias EMREXTCREATEPEN* PEMREXTCREATEPEN; 2780 + 2781 +struct EMREXTFLOODFILL { 2782 + EMR emr; 2783 + POINTL ptlStart; 2784 + COLORREF crColor; 2785 + DWORD iMode; 2786 +} 2787 +alias EMREXTFLOODFILL* PEMREXTFLOODFILL; 2788 + 2789 +struct EMREXTSELECTCLIPRGN { 2790 + EMR emr; 2791 + DWORD cbRgnData; 2792 + DWORD iMode; 2793 + BYTE [1]RgnData; 2794 +} 2795 +alias EMREXTSELECTCLIPRGN* PEMREXTSELECTCLIPRGN; 2796 + 2797 +struct EMRTEXT { 2798 + POINTL ptlReference; 2799 + DWORD nChars; 2800 + DWORD offString; 2801 + DWORD fOptions; 2802 + RECTL rcl; 2803 + DWORD offDx; 2804 +} 2805 +alias EMRTEXT* PEMRTEXT; 2806 + 2807 +struct EMREXTTEXTOUTA { 2808 + EMR emr; 2809 + RECTL rclBounds; 2810 + DWORD iGraphicsMode; 2811 + FLOAT exScale; 2812 + FLOAT eyScale; 2813 + EMRTEXT emrtext; 2814 +} 2815 +alias EMREXTTEXTOUTA* PEMREXTTEXTOUTA; 2816 +alias TypeDef!(EMREXTTEXTOUTA) EMREXTTEXTOUTW; 2817 +alias EMREXTTEXTOUTW* PEMREXTTEXTOUTW; 2818 + 2819 +struct EMRFILLPATH { 2820 + EMR emr; 2821 + RECTL rclBounds; 2822 +} 2823 +alias EMRFILLPATH* PEMRFILLPATH; 2824 + 2825 +alias TypeDef!(EMRFILLPATH) EMRSTROKEANDFILLPATH; 2826 +alias EMRSTROKEANDFILLPATH* PEMRSTROKEANDFILLPATH; 2827 + 2828 +alias TypeDef!(EMRFILLPATH) EMRSTROKEPATH; 2829 +alias EMRSTROKEPATH* PEMRSTROKEPATH; 2830 + 2831 +struct EMRFILLRGN { 2832 + EMR emr; 2833 + RECTL rclBounds; 2834 + DWORD cbRgnData; 2835 + DWORD ihBrush; 2836 + BYTE[1] RgnData; 2837 +} 2838 +alias EMRFILLRGN* PEMRFILLRGN; 2839 + 2840 +struct EMRFORMAT { 2841 + DWORD dSignature; 2842 + DWORD nVersion; 2843 + DWORD cbData; 2844 + DWORD offData; 2845 +} 2846 +alias EMRFORMAT* PEMRFORMAT; 2847 + 2848 +struct EMRFRAMERGN { 2849 + EMR emr; 2850 + RECTL rclBounds; 2851 + DWORD cbRgnData; 2852 + DWORD ihBrush; 2853 + SIZEL szlStroke; 2854 + BYTE[1] RgnData; 2855 +} 2856 +alias EMRFRAMERGN* PEMRFRAMERGN; 2857 + 2858 +struct EMRGDICOMMENT { 2859 + EMR emr; 2860 + DWORD cbData; 2861 + BYTE[1] Data; 2862 +} 2863 +alias EMRGDICOMMENT* PEMRGDICOMMENT; 2864 + 2865 +struct EMRINVERTRGN { 2866 + EMR emr; 2867 + RECTL rclBounds; 2868 + DWORD cbRgnData; 2869 + BYTE[1] RgnData; 2870 +} 2871 +alias EMRINVERTRGN* PEMRINVERTRGN; 2872 +alias TypeDef!(EMRINVERTRGN) EMRPAINTRGN; 2873 +alias EMRPAINTRGN* PEMRPAINTRGN; 2874 + 2875 +struct EMRLINETO { 2876 + EMR emr; 2877 + POINTL ptl; 2878 +} 2879 +alias EMRLINETO* PEMRLINETO; 2880 +alias TypeDef!(EMRLINETO) EMRMOVETOEX; 2881 +alias EMRMOVETOEX* PEMRMOVETOEX; 2882 + 2883 +struct EMRMASKBLT { 2884 + EMR emr; 2885 + RECTL rclBounds; 2886 + LONG xDest; 2887 + LONG yDest; 2888 + LONG cxDest; 2889 + LONG cyDest; 2890 + DWORD dwRop; 2891 + LONG xSrc; 2892 + LONG ySrc; 2893 + XFORM xformSrc; 2894 + COLORREF crBkColorSrc; 2895 + DWORD iUsageSrc; 2896 + DWORD offBmiSrc; 2897 + DWORD cbBmiSrc; 2898 + DWORD offBitsSrc; 2899 + DWORD cbBitsSrc; 2900 + LONG xMask; 2901 + LONG yMask; 2902 + DWORD iUsageMask; 2903 + DWORD offBmiMask; 2904 + DWORD cbBmiMask; 2905 + DWORD offBitsMask; 2906 + DWORD cbBitsMask; 2907 +} 2908 +alias EMRMASKBLT* PEMRMASKBLT; 2909 + 2910 +struct EMRMODIFYWORLDTRANSFORM { 2911 + EMR emr; 2912 + XFORM xform; 2913 + DWORD iMode; 2914 +} 2915 +alias EMRMODIFYWORLDTRANSFORM* PEMRMODIFYWORLDTRANSFORM; 2916 + 2917 +struct EMROFFSETCLIPRGN { 2918 + EMR emr; 2919 + POINTL ptlOffset; 2920 +} 2921 +alias EMROFFSETCLIPRGN* PEMROFFSETCLIPRGN; 2922 + 2923 +struct EMRPLGBLT { 2924 + EMR emr; 2925 + RECTL rclBounds; 2926 + POINTL[3] aptlDest; 2927 + LONG xSrc; 2928 + LONG ySrc; 2929 + LONG cxSrc; 2930 + LONG cySrc; 2931 + XFORM xformSrc; 2932 + COLORREF crBkColorSrc; 2933 + DWORD iUsageSrc; 2934 + DWORD offBmiSrc; 2935 + DWORD cbBmiSrc; 2936 + DWORD offBitsSrc; 2937 + DWORD cbBitsSrc; 2938 + LONG xMask; 2939 + LONG yMask; 2940 + DWORD iUsageMask; 2941 + DWORD offBmiMask; 2942 + DWORD cbBmiMask; 2943 + DWORD offBitsMask; 2944 + DWORD cbBitsMask; 2945 +} 2946 +alias EMRPLGBLT* PEMRPLGBLT; 2947 + 2948 +struct EMRPOLYDRAW { 2949 + EMR emr; 2950 + RECTL rclBounds; 2951 + DWORD cptl; 2952 + POINTL[1] aptl; 2953 + BYTE[1] abTypes; 2954 +} 2955 +alias EMRPOLYDRAW* PEMRPOLYDRAW; 2956 + 2957 +struct EMRPOLYDRAW16 { 2958 + EMR emr; 2959 + RECTL rclBounds; 2960 + DWORD cpts; 2961 + POINTS[1] apts; 2962 + BYTE[1] abTypes; 2963 +} 2964 +alias EMRPOLYDRAW16* PEMRPOLYDRAW16; 2965 + 2966 +struct EMRPOLYLINE { 2967 + EMR emr; 2968 + RECTL rclBounds; 2969 + DWORD cptl; 2970 + POINTL[1] aptl; 2971 +} 2972 +alias EMRPOLYLINE* PEMRPOLYLINE; 2973 +alias TypeDef!(EMRPOLYLINE) EMRPOLYBEZIER; 2974 +alias EMRPOLYBEZIER* PEMRPOLYBEZIER; 2975 +alias TypeDef!(EMRPOLYLINE) EMRPOLYGON; 2976 +alias EMRPOLYGON* PEMRPOLYGON; 2977 +alias TypeDef!(EMRPOLYLINE) EMRPOLYBEZIERTO; 2978 +alias EMRPOLYBEZIERTO* PEMRPOLYBEZIERTO; 2979 +alias TypeDef!(EMRPOLYLINE) EMRPOLYLINETO; 2980 +alias EMRPOLYLINETO* PEMRPOLYLINETO; 2981 + 2982 +struct EMRPOLYLINE16 { 2983 + EMR emr; 2984 + RECTL rclBounds; 2985 + DWORD cpts; 2986 + POINTS[1] apts; 2987 +} 2988 +alias EMRPOLYLINE16* PEMRPOLYLINE16; 2989 +alias TypeDef!(EMRPOLYLINE16) EMRPOLYBEZIER16; 2990 +alias EMRPOLYBEZIER16* PEMRPOLYBEZIER16; 2991 +alias TypeDef!(EMRPOLYLINE16) EMRPOLYGON16; 2992 +alias EMRPOLYGON16* PEMRPOLYGON16; 2993 +alias TypeDef!(EMRPOLYLINE16) EMRPOLYBEZIERTO16; 2994 +alias EMRPOLYBEZIERTO16* PEMRPOLYBEZIERTO16; 2995 +alias TypeDef!(EMRPOLYLINE16) EMRPOLYLINETO16; 2996 +alias EMRPOLYLINETO16* PEMRPOLYLINETO16; 2997 + 2998 +struct EMRPOLYPOLYLINE { 2999 + EMR emr; 3000 + RECTL rclBounds; 3001 + DWORD nPolys; 3002 + DWORD cptl; 3003 + DWORD[1] aPolyCounts; 3004 + POINTL[1] aptl; 3005 +} 3006 +alias EMRPOLYPOLYLINE* PEMRPOLYPOLYLINE; 3007 +alias TypeDef!(EMRPOLYPOLYLINE) EMRPOLYPOLYGON; 3008 +alias EMRPOLYPOLYGON* PEMRPOLYPOLYGON; 3009 + 3010 +struct EMRPOLYPOLYLINE16 { 3011 + EMR emr; 3012 + RECTL rclBounds; 3013 + DWORD nPolys; 3014 + DWORD cpts; 3015 + DWORD[1] aPolyCounts; 3016 + POINTS[1] apts; 3017 +} 3018 +alias EMRPOLYPOLYLINE16* PEMRPOLYPOLYLINE16; 3019 +alias TypeDef!(EMRPOLYPOLYLINE16) EMRPOLYPOLYGON16; 3020 +alias EMRPOLYPOLYGON16* PEMRPOLYPOLYGON16; 3021 + 3022 +struct EMRPOLYTEXTOUTA { 3023 + EMR emr; 3024 + RECTL rclBounds; 3025 + DWORD iGraphicsMode; 3026 + FLOAT exScale; 3027 + FLOAT eyScale; 3028 + LONG cStrings; 3029 + EMRTEXT[1] aemrtext; 3030 +} 3031 +alias EMRPOLYTEXTOUTA* PEMRPOLYTEXTOUTA; 3032 +alias TypeDef!(EMRPOLYTEXTOUTA) EMRPOLYTEXTOUTW; 3033 +alias EMRPOLYTEXTOUTW* PEMRPOLYTEXTOUTW; 3034 + 3035 +struct EMRRESIZEPALETTE { 3036 + EMR emr; 3037 + DWORD ihPal; 3038 + DWORD cEntries; 3039 +} 3040 +alias EMRRESIZEPALETTE* PEMRRESIZEPALETTE; 3041 + 3042 +struct EMRRESTOREDC { 3043 + EMR emr; 3044 + LONG iRelative; 3045 +} 3046 +alias EMRRESTOREDC* PEMRRESTOREDC; 3047 + 3048 +struct EMRROUNDRECT { 3049 + EMR emr; 3050 + RECTL rclBox; 3051 + SIZEL szlCorner; 3052 +} 3053 +alias EMRROUNDRECT* PEMRROUNDRECT; 3054 + 3055 +struct EMRSCALEVIEWPORTEXTEX { 3056 + EMR emr; 3057 + LONG xNum; 3058 + LONG xDenom; 3059 + LONG yNum; 3060 + LONG yDenom; 3061 +} 3062 +alias EMRSCALEVIEWPORTEXTEX* PEMRSCALEVIEWPORTEXTEX; 3063 +alias TypeDef!(EMRSCALEVIEWPORTEXTEX) EMRSCALEWINDOWEXTEX; 3064 +alias EMRSCALEWINDOWEXTEX* PEMRSCALEWINDOWEXTEX; 3065 + 3066 +struct EMRSELECTOBJECT { 3067 + EMR emr; 3068 + DWORD ihObject; 3069 +} 3070 +alias EMRSELECTOBJECT* PEMRSELECTOBJECT; 3071 +alias TypeDef!(EMRSELECTOBJECT) EMRDELETEOBJECT; 3072 +alias EMRDELETEOBJECT* PEMRDELETEOBJECT; 3073 + 3074 +struct EMRSELECTPALETTE { 3075 + EMR emr; 3076 + DWORD ihPal; 3077 +} 3078 +alias EMRSELECTPALETTE* PEMRSELECTPALETTE; 3079 + 3080 +struct EMRSETARCDIRECTION { 3081 + EMR emr; 3082 + DWORD iArcDirection; 3083 +} 3084 +alias EMRSETARCDIRECTION* PEMRSETARCDIRECTION; 3085 + 3086 +struct EMRSETTEXTCOLOR { 3087 + EMR emr; 3088 + COLORREF crColor; 3089 +} 3090 +alias EMRSETTEXTCOLOR* PEMRSETTEXTCOLOR; 3091 +alias TypeDef!(EMRSETTEXTCOLOR) EMRSETBKCOLOR; 3092 +alias EMRSETBKCOLOR* PEMRSETBKCOLOR; 3093 + 3094 +struct EMRSETCOLORADJUSTMENT { 3095 + EMR emr; 3096 + COLORADJUSTMENT ColorAdjustment; 3097 +} 3098 +alias EMRSETCOLORADJUSTMENT* PEMRSETCOLORADJUSTMENT; 3099 + 3100 +struct EMRSETDIBITSTODEVICE { 3101 + EMR emr; 3102 + RECTL rclBounds; 3103 + LONG xDest; 3104 + LONG yDest; 3105 + LONG xSrc; 3106 + LONG ySrc; 3107 + LONG cxSrc; 3108 + LONG cySrc; 3109 + DWORD offBmiSrc; 3110 + DWORD cbBmiSrc; 3111 + DWORD offBitsSrc; 3112 + DWORD cbBitsSrc; 3113 + DWORD iUsageSrc; 3114 + DWORD iStartScan; 3115 + DWORD cScans; 3116 +} 3117 +alias EMRSETDIBITSTODEVICE* PEMRSETDIBITSTODEVICE; 3118 + 3119 +struct EMRSETMAPPERFLAGS { 3120 + EMR emr; 3121 + DWORD dwFlags; 3122 +} 3123 +alias EMRSETMAPPERFLAGS* PEMRSETMAPPERFLAGS; 3124 + 3125 +struct EMRSETMITERLIMIT { 3126 + EMR emr; 3127 + FLOAT eMiterLimit; 3128 +} 3129 +alias EMRSETMITERLIMIT* PEMRSETMITERLIMIT; 3130 + 3131 +struct EMRSETPALETTEENTRIES { 3132 + EMR emr; 3133 + DWORD ihPal; 3134 + DWORD iStart; 3135 + DWORD cEntries; 3136 + PALETTEENTRY[1] aPalEntries; 3137 +} 3138 +alias EMRSETPALETTEENTRIES* PEMRSETPALETTEENTRIES; 3139 + 3140 +struct EMRSETPIXELV { 3141 + EMR emr; 3142 + POINTL ptlPixel; 3143 + COLORREF crColor; 3144 +} 3145 +alias EMRSETPIXELV* PEMRSETPIXELV; 3146 + 3147 +struct EMRSETVIEWPORTEXTEX { 3148 + EMR emr; 3149 + SIZEL szlExtent; 3150 +} 3151 +alias EMRSETVIEWPORTEXTEX* PEMRSETVIEWPORTEXTEX; 3152 +alias TypeDef!(EMRSETVIEWPORTEXTEX) EMRSETWINDOWEXTEX; 3153 +alias EMRSETWINDOWEXTEX* PEMRSETWINDOWEXTEX; 3154 + 3155 +struct EMRSETVIEWPORTORGEX { 3156 + EMR emr; 3157 + POINTL ptlOrigin; 3158 +} 3159 +alias EMRSETVIEWPORTORGEX* PEMRSETVIEWPORTORGEX; 3160 +alias TypeDef!(EMRSETVIEWPORTORGEX) EMRSETWINDOWORGEX; 3161 +alias EMRSETWINDOWORGEX* PEMRSETWINDOWORGEX; 3162 +alias TypeDef!(EMRSETVIEWPORTORGEX) EMRSETBRUSHORGEX; 3163 +alias EMRSETBRUSHORGEX* PEMRSETBRUSHORGEX; 3164 + 3165 +struct EMRSETWORLDTRANSFORM { 3166 + EMR emr; 3167 + XFORM xform; 3168 +} 3169 +alias EMRSETWORLDTRANSFORM* PEMRSETWORLDTRANSFORM; 3170 + 3171 +struct EMRSTRETCHBLT { 3172 + EMR emr; 3173 + RECTL rclBounds; 3174 + LONG xDest; 3175 + LONG yDest; 3176 + LONG cxDest; 3177 + LONG cyDest; 3178 + DWORD dwRop; 3179 + LONG xSrc; 3180 + LONG ySrc; 3181 + XFORM xformSrc; 3182 + COLORREF crBkColorSrc; 3183 + DWORD iUsageSrc; 3184 + DWORD offBmiSrc; 3185 + DWORD cbBmiSrc; 3186 + DWORD offBitsSrc; 3187 + DWORD cbBitsSrc; 3188 + LONG cxSrc; 3189 + LONG cySrc; 3190 +} 3191 +alias EMRSTRETCHBLT* PEMRSTRETCHBLT; 3192 + 3193 +struct EMRSTRETCHDIBITS { 3194 + EMR emr; 3195 + RECTL rclBounds; 3196 + LONG xDest; 3197 + LONG yDest; 3198 + LONG xSrc; 3199 + LONG ySrc; 3200 + LONG cxSrc; 3201 + LONG cySrc; 3202 + DWORD offBmiSrc; 3203 + DWORD cbBmiSrc; 3204 + DWORD offBitsSrc; 3205 + DWORD cbBitsSrc; 3206 + DWORD iUsageSrc; 3207 + DWORD dwRop; 3208 + LONG cxDest; 3209 + LONG cyDest; 3210 +} 3211 +alias EMRSTRETCHDIBITS* PEMRSTRETCHDIBITS; 3212 + 3213 +struct EMRABORTPATH { 3214 + EMR emr; 3215 +} 3216 +alias EMRABORTPATH* PEMRABORTPATH; 3217 +alias TypeDef!(EMRABORTPATH) EMRBEGINPATH; 3218 +alias EMRBEGINPATH* PEMRBEGINPATH; 3219 +alias TypeDef!(EMRABORTPATH) EMRENDPATH; 3220 +alias EMRENDPATH* PEMRENDPATH; 3221 +alias TypeDef!(EMRABORTPATH) EMRCLOSEFIGURE; 3222 +alias EMRCLOSEFIGURE* PEMRCLOSEFIGURE; 3223 +alias TypeDef!(EMRABORTPATH) EMRFLATTENPATH; 3224 +alias EMRFLATTENPATH* PEMRFLATTENPATH; 3225 +alias TypeDef!(EMRABORTPATH) EMRWIDENPATH; 3226 +alias EMRWIDENPATH* PEMRWIDENPATH; 3227 +alias TypeDef!(EMRABORTPATH) EMRSETMETARGN; 3228 +alias EMRSETMETARGN* PEMRSETMETARGN; 3229 +alias TypeDef!(EMRABORTPATH) EMRSAVEDC; 3230 +alias EMRSAVEDC* PEMRSAVEDC; 3231 +alias TypeDef!(EMRABORTPATH) EMRREALIZEPALETTE; 3232 +alias EMRREALIZEPALETTE* PEMRREALIZEPALETTE; 3233 + 3234 +struct EMRSELECTCLIPPATH { 3235 + EMR emr; 3236 + DWORD iMode; 3237 +} 3238 +alias EMRSELECTCLIPPATH* PEMRSELECTCLIPPATH; 3239 +alias TypeDef!(EMRSELECTCLIPPATH) EMRSETBKMODE; 3240 +alias EMRSETBKMODE* PEMRSETBKMODE; 3241 +alias TypeDef!(EMRSELECTCLIPPATH) EMRSETMAPMODE; 3242 +alias EMRSETMAPMODE* PEMRSETMAPMODE; 3243 +alias TypeDef!(EMRSELECTCLIPPATH) EMRSETPOLYFILLMODE; 3244 +alias EMRSETPOLYFILLMODE* PEMRSETPOLYFILLMODE; 3245 +alias TypeDef!(EMRSELECTCLIPPATH) EMRSETROP2; 3246 +alias EMRSETROP2* PEMRSETROP2; 3247 +alias TypeDef!(EMRSELECTCLIPPATH) EMRSETSTRETCHBLTMODE; 3248 +alias EMRSETSTRETCHBLTMODE* PEMRSETSTRETCHBLTMODE; 3249 +alias TypeDef!(EMRSELECTCLIPPATH) EMRSETICMMODE; 3250 +alias EMRSETICMMODE* PEMRSETICMMODE; 3251 +alias TypeDef!(EMRSELECTCLIPPATH) EMRSETTEXTALIGN; 3252 +alias EMRSETTEXTALIGN* PEMRSETTEXTALIGN; 3253 +alias TypeDef!(EMRSELECTCLIPPATH) EMRENABLEICM; 3254 +alias EMRENABLEICM* PEMRENABLEICM; 3255 +static if (_WIN32_WINNT >= 0x500) { 3256 + alias TypeDef!(EMRSELECTCLIPPATH) EMRSETLAYOUT; 3257 + alias EMRSETLAYOUT* PEMRSETLAYOUT; 3258 +} 3259 + 3260 +align(2): 3261 +struct METAHEADER { 3262 + WORD mtType; 3263 + WORD mtHeaderSize; 3264 + WORD mtVersion; 3265 + DWORD mtSize; 3266 + WORD mtNoObjects; 3267 + DWORD mtMaxRecord; 3268 + WORD mtNoParameters; 3269 +} 3270 +alias METAHEADER* PMETAHEADER; 3271 +alias METAHEADER* LPMETAHEADER; 3272 + 3273 +align: 3274 + 3275 +struct ENHMETAHEADER { 3276 + DWORD iType = EMR_HEADER; 3277 + DWORD nSize = ENHMETAHEADER.sizeof; 3278 + RECTL rclBounds; 3279 + RECTL rclFrame; 3280 + DWORD dSignature = ENHMETA_SIGNATURE; 3281 + DWORD nVersion; 3282 + DWORD nBytes; 3283 + DWORD nRecords; 3284 + WORD nHandles; 3285 + WORD sReserved; 3286 + DWORD nDescription; 3287 + DWORD offDescription; 3288 + DWORD nPalEntries; 3289 + SIZEL szlDevice; 3290 + SIZEL szlMillimeters; 3291 + DWORD cbPixelFormat; 3292 + DWORD offPixelFormat; 3293 + DWORD bOpenGL; 3294 + static if (_WIN32_WINNT >= 0x500) { 3295 + SIZEL szlMicrometers; 3296 + } 3297 +} 3298 +alias ENHMETAHEADER* PENHMETAHEADER, LPENHMETAHEADER; 3299 + 3300 +struct METARECORD { 3301 + DWORD rdSize; 3302 + WORD rdFunction; 3303 + WORD[1] rdParm; 3304 +} 3305 +alias METARECORD* PMETARECORD; 3306 +alias METARECORD* LPMETARECORD; 3307 + 3308 +struct ENHMETARECORD { 3309 + DWORD iType; 3310 + DWORD nSize; 3311 + DWORD[1] dParm; 3312 +} 3313 +alias ENHMETARECORD* PENHMETARECORD, LPENHMETARECORD; 3579 3314 3580 3315 // --- 3581 3316 3582 -struct HANDLETABLE 3583 -{ 3584 - HGDIOBJ[1] objectHandle; 3585 -} 3586 -alias HANDLETABLE*PHANDLETABLE, LPHANDLETABLE; 3587 - 3588 -struct TEXTMETRICA 3589 -{ 3590 - LONG tmHeight; 3591 - LONG tmAscent; 3592 - LONG tmDescent; 3593 - LONG tmInternalLeading; 3594 - LONG tmExternalLeading; 3595 - LONG tmAveCharWidth; 3596 - LONG tmMaxCharWidth; 3597 - LONG tmWeight; 3598 - LONG tmOverhang; 3599 - LONG tmDigitizedAspectX; 3600 - LONG tmDigitizedAspectY; 3601 - BYTE tmFirstChar; 3602 - BYTE tmLastChar; 3603 - BYTE tmDefaultChar; 3604 - BYTE tmBreakChar; 3605 - BYTE tmItalic; 3606 - BYTE tmUnderlined; 3607 - BYTE tmStruckOut; 3608 - BYTE tmPitchAndFamily; 3609 - BYTE tmCharSet; 3610 -} 3611 -alias TEXTMETRICA*PTEXTMETRICA, NPTEXTMETRICA, LPTEXTMETRICA; 3612 - 3613 -struct TEXTMETRICW 3614 -{ 3615 - LONG tmHeight; 3616 - LONG tmAscent; 3617 - LONG tmDescent; 3618 - LONG tmInternalLeading; 3619 - LONG tmExternalLeading; 3620 - LONG tmAveCharWidth; 3621 - LONG tmMaxCharWidth; 3622 - LONG tmWeight; 3623 - LONG tmOverhang; 3624 - LONG tmDigitizedAspectX; 3625 - LONG tmDigitizedAspectY; 3626 - WCHAR tmFirstChar; 3627 - WCHAR tmLastChar; 3628 - WCHAR tmDefaultChar; 3629 - WCHAR tmBreakChar; 3630 - BYTE tmItalic; 3631 - BYTE tmUnderlined; 3632 - BYTE tmStruckOut; 3633 - BYTE tmPitchAndFamily; 3634 - BYTE tmCharSet; 3635 -} 3636 -alias TEXTMETRICW*PTEXTMETRICW, NPTEXTMETRICW, LPTEXTMETRICW; 3637 - 3638 -struct RGNDATAHEADER 3639 -{ 3640 - DWORD dwSize; 3641 - DWORD iType; 3642 - DWORD nCount; 3643 - DWORD nRgnSize; 3644 - RECT rcBound; 3645 -} 3646 -alias RGNDATAHEADER*PRGNDATAHEADER; 3647 - 3648 -struct RGNDATA 3649 -{ 3650 - RGNDATAHEADER rdh; 3651 - char[1] Buffer; 3652 -} 3653 -alias RGNDATA*PRGNDATA, NPRGNDATA, LPRGNDATA; 3317 +struct HANDLETABLE { 3318 + HGDIOBJ[1] objectHandle; 3319 +} 3320 +alias HANDLETABLE* PHANDLETABLE, LPHANDLETABLE; 3321 + 3322 +struct TEXTMETRICA { 3323 + LONG tmHeight; 3324 + LONG tmAscent; 3325 + LONG tmDescent; 3326 + LONG tmInternalLeading; 3327 + LONG tmExternalLeading; 3328 + LONG tmAveCharWidth; 3329 + LONG tmMaxCharWidth; 3330 + LONG tmWeight; 3331 + LONG tmOverhang; 3332 + LONG tmDigitizedAspectX; 3333 + LONG tmDigitizedAspectY; 3334 + BYTE tmFirstChar; 3335 + BYTE tmLastChar; 3336 + BYTE tmDefaultChar; 3337 + BYTE tmBreakChar; 3338 + BYTE tmItalic; 3339 + BYTE tmUnderlined; 3340 + BYTE tmStruckOut; 3341 + BYTE tmPitchAndFamily; 3342 + BYTE tmCharSet; 3343 +} 3344 +alias TEXTMETRICA* PTEXTMETRICA, NPTEXTMETRICA, LPTEXTMETRICA; 3345 + 3346 +struct TEXTMETRICW { 3347 + LONG tmHeight; 3348 + LONG tmAscent; 3349 + LONG tmDescent; 3350 + LONG tmInternalLeading; 3351 + LONG tmExternalLeading; 3352 + LONG tmAveCharWidth; 3353 + LONG tmMaxCharWidth; 3354 + LONG tmWeight; 3355 + LONG tmOverhang; 3356 + LONG tmDigitizedAspectX; 3357 + LONG tmDigitizedAspectY; 3358 + WCHAR tmFirstChar; 3359 + WCHAR tmLastChar; 3360 + WCHAR tmDefaultChar; 3361 + WCHAR tmBreakChar; 3362 + BYTE tmItalic; 3363 + BYTE tmUnderlined; 3364 + BYTE tmStruckOut; 3365 + BYTE tmPitchAndFamily; 3366 + BYTE tmCharSet; 3367 +} 3368 +alias TEXTMETRICW* PTEXTMETRICW, NPTEXTMETRICW, LPTEXTMETRICW; 3369 + 3370 +struct RGNDATAHEADER { 3371 + DWORD dwSize; 3372 + DWORD iType; 3373 + DWORD nCount; 3374 + DWORD nRgnSize; 3375 + RECT rcBound; 3376 +} 3377 +alias RGNDATAHEADER* PRGNDATAHEADER; 3378 + 3379 +struct RGNDATA { 3380 + RGNDATAHEADER rdh; 3381 + char[1] Buffer; 3382 +} 3383 +alias RGNDATA* PRGNDATA, NPRGNDATA, LPRGNDATA; 3654 3384 3655 3385 /* for GetRandomRgn */ 3656 3386 const SYSRGN=4; 3657 -struct GCP_RESULTSA 3658 -{ 3659 - DWORD lStructSize; 3660 - LPSTR lpOutString; 3661 - UINT*lpOrder; 3662 - INT*lpDx; 3663 - INT*lpCaretPos; 3664 - LPSTR lpClass; 3665 - LPWSTR lpGlyphs; 3666 - UINT nGlyphs; 3667 - UINT nMaxFit; 3668 -} 3669 -alias GCP_RESULTSA*LPGCP_RESULTSA; 3670 - 3671 -struct GCP_RESULTSW 3672 -{ 3673 - DWORD lStructSize; 3674 - LPWSTR lpOutString; 3675 - UINT*lpOrder; 3676 - INT*lpDx; 3677 - INT*lpCaretPos; 3678 - LPWSTR lpClass; 3679 - LPWSTR lpGlyphs; 3680 - UINT nGlyphs; 3681 - UINT nMaxFit; 3682 -} 3683 -alias GCP_RESULTSW*LPGCP_RESULTSW; 3684 - 3685 -struct GLYPHMETRICS 3686 -{ 3687 - UINT gmBlackBoxX; 3688 - UINT gmBlackBoxY; 3689 - POINT gmptGlyphOrigin; 3690 - short gmCellIncX; 3691 - short gmCellIncY; 3692 -} 3693 -alias GLYPHMETRICS*LPGLYPHMETRICS; 3694 - 3695 -static 3696 - 3697 -if (_WIN32_WINNT >= 0x0500) 3698 -{ 3699 - struct WCRANGE 3700 - { 3701 - WCHAR wcLow; 3702 - USHORT cGlyphs; 3703 - } 3704 - alias WCRANGE*PWCRANGE, LPWCRANGE; 3705 - 3706 - struct GLYPHSET 3707 - { 3708 - DWORD cbThis; 3709 - DWORD flAccel; 3710 - DWORD cGlyphsSupported; 3711 - DWORD cRanges; 3712 - WCRANGE[1] ranges; 3713 - } 3714 - alias GLYPHSET*PGLYPHSET, LPGLYPHSET; 3715 - 3716 - const DWORD GS_8BIT_INDICES = 0x00000001; 3717 -} 3718 - 3719 -struct KERNINGPAIR 3720 -{ 3721 - WORD wFirst; 3722 - WORD wSecond; 3723 - int iKernAmount; 3724 -} 3725 -alias KERNINGPAIR*LPKERNINGPAIR; 3726 - 3727 -struct FIXED 3728 -{ 3729 - WORD fract; 3730 - short value; 3731 -} 3732 - 3733 -struct MAT2 3734 -{ 3735 - FIXED eM11; 3736 - FIXED eM12; 3737 - FIXED eM21; 3738 - FIXED eM22; 3739 -} 3740 -alias MAT2*LPMAT2; 3741 - 3742 -struct OUTLINETEXTMETRICA 3743 -{ 3744 - UINT otmSize; 3745 - TEXTMETRICA otmTextMetrics; 3746 - BYTE otmFiller; 3747 - PANOSE otmPanoseNumber; 3748 - UINT otmfsSelection; 3749 - UINT otmfsType; 3750 - int otmsCharSlopeRise; 3751 - int otmsCharSlopeRun; 3752 - int otmItalicAngle; 3753 - UINT otmEMSquare; 3754 - int otmAscent; 3755 - int otmDescent; 3756 - UINT otmLineGap; 3757 - UINT otmsCapEmHeight; 3758 - UINT otmsXHeight; 3759 - RECT otmrcFontBox; 3760 - int otmMacAscent; 3761 - int otmMacDescent; 3762 - UINT otmMacLineGap; 3763 - UINT otmusMinimumPPEM; 3764 - POINT otmptSubscriptSize; 3765 - POINT otmptSubscriptOffset; 3766 - POINT otmptSuperscriptSize; 3767 - POINT otmptSuperscriptOffset; 3768 - UINT otmsStrikeoutSize; 3769 - int otmsStrikeoutPosition; 3770 - int otmsUnderscoreSize; 3771 - int otmsUnderscorePosition; 3772 - PSTR otmpFamilyName; 3773 - PSTR otmpFaceName; 3774 - PSTR otmpStyleName; 3775 - PSTR otmpFullName; 3776 -} 3777 -alias OUTLINETEXTMETRICA*POUTLINETEXTMETRICA, NPOUTLINETEXTMETRICA, LPOUTLINETEXTMETRICA; 3778 - 3779 -struct OUTLINETEXTMETRICW 3780 -{ 3781 - UINT otmSize; 3782 - TEXTMETRICW otmTextMetrics; 3783 - BYTE otmFiller; 3784 - PANOSE otmPanoseNumber; 3785 - UINT otmfsSelection; 3786 - UINT otmfsType; 3787 - int otmsCharSlopeRise; 3788 - int otmsCharSlopeRun; 3789 - int otmItalicAngle; 3790 - UINT otmEMSquare; 3791 - int otmAscent; 3792 - int otmDescent; 3793 - UINT otmLineGap; 3794 - UINT otmsCapEmHeight; 3795 - UINT otmsXHeight; 3796 - RECT otmrcFontBox; 3797 - int otmMacAscent; 3798 - int otmMacDescent; 3799 - UINT otmMacLineGap; 3800 - UINT otmusMinimumPPEM; 3801 - POINT otmptSubscriptSize; 3802 - POINT otmptSubscriptOffset; 3803 - POINT otmptSuperscriptSize; 3804 - POINT otmptSuperscriptOffset; 3805 - UINT otmsStrikeoutSize; 3806 - int otmsStrikeoutPosition; 3807 - int otmsUnderscoreSize; 3808 - int otmsUnderscorePosition; 3809 - PSTR otmpFamilyName; 3810 - PSTR otmpFaceName; 3811 - PSTR otmpStyleName; 3812 - PSTR otmpFullName; 3813 -} 3814 -alias OUTLINETEXTMETRICW*POUTLINETEXTMETRICW, NPOUTLINETEXTMETRICW, LPOUTLINETEXTMETRICW; 3815 - 3816 -struct RASTERIZER_STATUS 3817 -{ 3818 - short nSize; 3819 - short wFlags; 3820 - short nLanguageID; 3821 -} 3822 -alias RASTERIZER_STATUS*LPRASTERIZER_STATUS; 3823 - 3824 -struct POLYTEXTA 3825 -{ 3826 - int x; 3827 - int y; 3828 - UINT n; 3829 - LPCSTR lpstr; 3830 - UINT uiFlags; 3831 - RECT rcl; 3832 - int*pdx; 3833 -} 3834 -alias POLYTEXTA*PPOLYTEXTA, NPPOLYTEXTA, LPPOLYTEXTA; 3835 - 3836 -struct POLYTEXTW 3837 -{ 3838 - int x; 3839 - int y; 3840 - UINT n; 3841 - LPCWSTR lpstr; 3842 - UINT uiFlags; 3843 - RECT rcl; 3844 - int*pdx; 3845 -} 3846 -alias POLYTEXTW*PPOLYTEXTW, NPPOLYTEXTW, LPPOLYTEXTW; 3847 - 3848 -struct PIXELFORMATDESCRIPTOR 3849 -{ 3850 - WORD nSize; 3851 - WORD nVersion; 3852 - DWORD dwFlags; 3853 - BYTE iPixelType; 3854 - BYTE cColorBits; 3855 - BYTE cRedBits; 3856 - BYTE cRedShift; 3857 - BYTE cGreenBits; 3858 - BYTE cGreenShift; 3859 - BYTE cBlueBits; 3860 - BYTE cBlueShift; 3861 - BYTE cAlphaBits; 3862 - BYTE cAlphaShift; 3863 - BYTE cAccumBits; 3864 - BYTE cAccumRedBits; 3865 - BYTE cAccumGreenBits; 3866 - BYTE cAccumBlueBits; 3867 - BYTE cAccumAlphaBits; 3868 - BYTE cDepthBits; 3869 - BYTE cStencilBits; 3870 - BYTE cAuxBuffers; 3871 - BYTE iLayerType; 3872 - BYTE bReserved; 3873 - DWORD dwLayerMask; 3874 - DWORD dwVisibleMask; 3875 - DWORD dwDamageMask; 3876 -} 3877 -alias PIXELFORMATDESCRIPTOR*PPIXELFORMATDESCRIPTOR, LPPIXELFORMATDESCRIPTOR; 3878 - 3879 -struct METAFILEPICT 3880 -{ 3881 - LONG mm; 3882 - LONG xExt; 3883 - LONG yExt; 3884 - HMETAFILE hMF; 3885 -} 3886 -alias METAFILEPICT*LPMETAFILEPICT; 3887 - 3888 -struct LOCALESIGNATURE 3889 -{ 3890 - DWORD[4] lsUsb; 3891 - DWORD[2] lsCsbDefault; 3892 - DWORD[2] lsCsbSupported; 3893 -} 3894 -alias LOCALESIGNATURE*PLOCALESIGNATURE, LPLOCALESIGNATURE; 3387 +struct GCP_RESULTSA { 3388 + DWORD lStructSize; 3389 + LPSTR lpOutString; 3390 + UINT* lpOrder; 3391 + INT* lpDx; 3392 + INT* lpCaretPos; 3393 + LPSTR lpClass; 3394 + LPWSTR lpGlyphs; 3395 + UINT nGlyphs; 3396 + UINT nMaxFit; 3397 +} 3398 +alias GCP_RESULTSA* LPGCP_RESULTSA; 3399 + 3400 +struct GCP_RESULTSW { 3401 + DWORD lStructSize; 3402 + LPWSTR lpOutString; 3403 + UINT* lpOrder; 3404 + INT* lpDx; 3405 + INT* lpCaretPos; 3406 + LPWSTR lpClass; 3407 + LPWSTR lpGlyphs; 3408 + UINT nGlyphs; 3409 + UINT nMaxFit; 3410 +} 3411 +alias GCP_RESULTSW* LPGCP_RESULTSW; 3412 + 3413 +struct GLYPHMETRICS { 3414 + UINT gmBlackBoxX; 3415 + UINT gmBlackBoxY; 3416 + POINT gmptGlyphOrigin; 3417 + short gmCellIncX; 3418 + short gmCellIncY; 3419 +} 3420 +alias GLYPHMETRICS* LPGLYPHMETRICS; 3421 + 3422 +static if (_WIN32_WINNT >= 0x500) { 3423 + struct WCRANGE { 3424 + WCHAR wcLow; 3425 + USHORT cGlyphs; 3426 + } 3427 + alias WCRANGE* PWCRANGE, LPWCRANGE; 3428 + 3429 + struct GLYPHSET { 3430 + DWORD cbThis; 3431 + DWORD flAccel; 3432 + DWORD cGlyphsSupported; 3433 + DWORD cRanges; 3434 + WCRANGE[1] ranges; 3435 + } 3436 + alias GLYPHSET* PGLYPHSET, LPGLYPHSET; 3437 + 3438 + const DWORD GS_8BIT_INDICES = 0x00000001; 3439 +} 3440 + 3441 +struct KERNINGPAIR { 3442 + WORD wFirst; 3443 + WORD wSecond; 3444 + int iKernAmount; 3445 +} 3446 +alias KERNINGPAIR* LPKERNINGPAIR; 3447 + 3448 +struct FIXED { 3449 + WORD fract; 3450 + short value; 3451 +} 3452 + 3453 +struct MAT2 { 3454 + FIXED eM11; 3455 + FIXED eM12; 3456 + FIXED eM21; 3457 + FIXED eM22; 3458 +} 3459 +alias MAT2* LPMAT2; 3460 + 3461 +struct OUTLINETEXTMETRICA { 3462 + UINT otmSize; 3463 + TEXTMETRICA otmTextMetrics; 3464 + BYTE otmFiller; 3465 + PANOSE otmPanoseNumber; 3466 + UINT otmfsSelection; 3467 + UINT otmfsType; 3468 + int otmsCharSlopeRise; 3469 + int otmsCharSlopeRun; 3470 + int otmItalicAngle; 3471 + UINT otmEMSquare; 3472 + int otmAscent; 3473 + int otmDescent; 3474 + UINT otmLineGap; 3475 + UINT otmsCapEmHeight; 3476 + UINT otmsXHeight; 3477 + RECT otmrcFontBox; 3478 + int otmMacAscent; 3479 + int otmMacDescent; 3480 + UINT otmMacLineGap; 3481 + UINT otmusMinimumPPEM; 3482 + POINT otmptSubscriptSize; 3483 + POINT otmptSubscriptOffset; 3484 + POINT otmptSuperscriptSize; 3485 + POINT otmptSuperscriptOffset; 3486 + UINT otmsStrikeoutSize; 3487 + int otmsStrikeoutPosition; 3488 + int otmsUnderscoreSize; 3489 + int otmsUnderscorePosition; 3490 + PSTR otmpFamilyName; 3491 + PSTR otmpFaceName; 3492 + PSTR otmpStyleName; 3493 + PSTR otmpFullName; 3494 +} 3495 +alias OUTLINETEXTMETRICA* POUTLINETEXTMETRICA, NPOUTLINETEXTMETRICA, LPOUTLINETEXTMETRICA; 3496 + 3497 +struct OUTLINETEXTMETRICW { 3498 + UINT otmSize; 3499 + TEXTMETRICW otmTextMetrics; 3500 + BYTE otmFiller; 3501 + PANOSE otmPanoseNumber; 3502 + UINT otmfsSelection; 3503 + UINT otmfsType; 3504 + int otmsCharSlopeRise; 3505 + int otmsCharSlopeRun; 3506 + int otmItalicAngle; 3507 + UINT otmEMSquare; 3508 + int otmAscent; 3509 + int otmDescent; 3510 + UINT otmLineGap; 3511 + UINT otmsCapEmHeight; 3512 + UINT otmsXHeight; 3513 + RECT otmrcFontBox; 3514 + int otmMacAscent; 3515 + int otmMacDescent; 3516 + UINT otmMacLineGap; 3517 + UINT otmusMinimumPPEM; 3518 + POINT otmptSubscriptSize; 3519 + POINT otmptSubscriptOffset; 3520 + POINT otmptSuperscriptSize; 3521 + POINT otmptSuperscriptOffset; 3522 + UINT otmsStrikeoutSize; 3523 + int otmsStrikeoutPosition; 3524 + int otmsUnderscoreSize; 3525 + int otmsUnderscorePosition; 3526 + PSTR otmpFamilyName; 3527 + PSTR otmpFaceName; 3528 + PSTR otmpStyleName; 3529 + PSTR otmpFullName; 3530 +} 3531 +alias OUTLINETEXTMETRICW* POUTLINETEXTMETRICW, NPOUTLINETEXTMETRICW, LPOUTLINETEXTMETRICW; 3532 + 3533 +struct RASTERIZER_STATUS { 3534 + short nSize; 3535 + short wFlags; 3536 + short nLanguageID; 3537 +} 3538 +alias RASTERIZER_STATUS* LPRASTERIZER_STATUS; 3539 + 3540 +struct POLYTEXTA { 3541 + int x; 3542 + int y; 3543 + UINT n; 3544 + LPCSTR lpstr; 3545 + UINT uiFlags; 3546 + RECT rcl; 3547 + int* pdx; 3548 +} 3549 +alias POLYTEXTA* PPOLYTEXTA, NPPOLYTEXTA, LPPOLYTEXTA; 3550 + 3551 +struct POLYTEXTW { 3552 + int x; 3553 + int y; 3554 + UINT n; 3555 + LPCWSTR lpstr; 3556 + UINT uiFlags; 3557 + RECT rcl; 3558 + int* pdx; 3559 +} 3560 +alias POLYTEXTW* PPOLYTEXTW, NPPOLYTEXTW, LPPOLYTEXTW; 3561 + 3562 +struct PIXELFORMATDESCRIPTOR { 3563 + WORD nSize; 3564 + WORD nVersion; 3565 + DWORD dwFlags; 3566 + BYTE iPixelType; 3567 + BYTE cColorBits; 3568 + BYTE cRedBits; 3569 + BYTE cRedShift; 3570 + BYTE cGreenBits; 3571 + BYTE cGreenShift; 3572 + BYTE cBlueBits; 3573 + BYTE cBlueShift; 3574 + BYTE cAlphaBits; 3575 + BYTE cAlphaShift; 3576 + BYTE cAccumBits; 3577 + BYTE cAccumRedBits; 3578 + BYTE cAccumGreenBits; 3579 + BYTE cAccumBlueBits; 3580 + BYTE cAccumAlphaBits; 3581 + BYTE cDepthBits; 3582 + BYTE cStencilBits; 3583 + BYTE cAuxBuffers; 3584 + BYTE iLayerType; 3585 + BYTE bReserved; 3586 + DWORD dwLayerMask; 3587 + DWORD dwVisibleMask; 3588 + DWORD dwDamageMask; 3589 +} 3590 +alias PIXELFORMATDESCRIPTOR* PPIXELFORMATDESCRIPTOR, LPPIXELFORMATDESCRIPTOR; 3591 + 3592 +struct METAFILEPICT { 3593 + LONG mm; 3594 + LONG xExt; 3595 + LONG yExt; 3596 + HMETAFILE hMF; 3597 +} 3598 +alias METAFILEPICT* LPMETAFILEPICT; 3599 + 3600 +struct LOCALESIGNATURE { 3601 + DWORD[4] lsUsb; 3602 + DWORD[2] lsCsbDefault; 3603 + DWORD[2] lsCsbSupported; 3604 +} 3605 +alias LOCALESIGNATURE* PLOCALESIGNATURE, LPLOCALESIGNATURE; 3895 3606 3896 3607 alias LONG LCSTYPE; /* What this for? */ 3897 3608 3898 -align (4) : 3899 -struct NEWTEXTMETRICA 3900 -{ 3901 - LONG tmHeight; 3902 - LONG tmAscent; 3903 - LONG tmDescent; 3904 - LONG tmInternalLeading; 3905 - LONG tmExternalLeading; 3906 - LONG tmAveCharWidth; 3907 - LONG tmMaxCharWidth; 3908 - LONG tmWeight; 3909 - LONG tmOverhang; 3910 - LONG tmDigitizedAspectX; 3911 - LONG tmDigitizedAspectY; 3912 - BYTE tmFirstChar; 3913 - BYTE tmLastChar; 3914 - BYTE tmDefaultChar; 3915 - BYTE tmBreakChar; 3916 - BYTE tmItalic; 3917 - BYTE tmUnderlined; 3918 - BYTE tmStruckOut; 3919 - BYTE tmPitchAndFamily; 3920 - BYTE tmCharSet; 3921 - DWORD ntmFlags; 3922 - UINT ntmSizeEM; 3923 - UINT ntmCellHeight; 3924 - UINT ntmAvgWidth; 3925 -} 3926 -alias NEWTEXTMETRICA*PNEWTEXTMETRICA, NPNEWTEXTMETRICA, LPNEWTEXTMETRICA; 3927 - 3928 -struct NEWTEXTMETRICW 3929 -{ 3930 - LONG tmHeight; 3931 - LONG tmAscent; 3932 - LONG tmDescent; 3933 - LONG tmInternalLeading; 3934 - LONG tmExternalLeading; 3935 - LONG tmAveCharWidth; 3936 - LONG tmMaxCharWidth; 3937 - LONG tmWeight; 3938 - LONG tmOverhang; 3939 - LONG tmDigitizedAspectX; 3940 - LONG tmDigitizedAspectY; 3941 - WCHAR tmFirstChar; 3942 - WCHAR tmLastChar; 3943 - WCHAR tmDefaultChar; 3944 - WCHAR tmBreakChar; 3945 - BYTE tmItalic; 3946 - BYTE tmUnderlined; 3947 - BYTE tmStruckOut; 3948 - BYTE tmPitchAndFamily; 3949 - BYTE tmCharSet; 3950 - DWORD ntmFlags; 3951 - UINT ntmSizeEM; 3952 - UINT ntmCellHeight; 3953 - UINT ntmAvgWidth; 3954 -} 3955 -alias NEWTEXTMETRICW*PNEWTEXTMETRICW, NPNEWTEXTMETRICW, LPNEWTEXTMETRICW; 3956 - 3957 -align : 3958 -struct NEWTEXTMETRICEXA 3959 -{ 3960 - NEWTEXTMETRICA ntmTm; 3961 - FONTSIGNATURE ntmFontSig; 3962 -} 3963 - 3964 -struct NEWTEXTMETRICEXW 3965 -{ 3966 - NEWTEXTMETRICW ntmTm; 3967 - FONTSIGNATURE ntmFontSig; 3968 -} 3969 - 3970 -struct PELARRAY 3971 -{ 3972 - LONG paXCount; 3973 - LONG paYCount; 3974 - LONG paXExt; 3975 - LONG paYExt; 3976 - BYTE paRGBs; 3977 -} 3978 -alias PELARRAY*PPELARRAY, NPPELARRAY, LPPELARRAY; 3979 - 3980 -struct ENUMLOGFONTA 3981 -{ 3982 - LOGFONTA elfLogFont; 3983 - BYTE[LF_FULLFACESIZE] elfFullName; 3984 - BYTE[LF_FACESIZE] elfStyle; 3985 -} 3986 -alias ENUMLOGFONTA*LPENUMLOGFONTA; 3987 - 3988 -struct ENUMLOGFONTW 3989 -{ 3990 - LOGFONTW elfLogFont; 3991 - WCHAR[LF_FULLFACESIZE] elfFullName; 3992 - WCHAR[LF_FACESIZE] elfStyle; 3993 -} 3994 -alias ENUMLOGFONTW*LPENUMLOGFONTW; 3995 - 3996 -struct ENUMLOGFONTEXA 3997 -{ 3998 - LOGFONTA elfLogFont; 3999 - BYTE[LF_FULLFACESIZE] elfFullName; 4000 - BYTE[LF_FACESIZE] elfStyle; 4001 - BYTE[LF_FACESIZE] elfScript; 4002 -} 4003 -alias ENUMLOGFONTEXA*LPENUMLOGFONTEXA; 4004 - 4005 -struct ENUMLOGFONTEXW 4006 -{ 4007 - LOGFONTW elfLogFont; 4008 - WCHAR[LF_FULLFACESIZE] elfFullName; 4009 - WCHAR[LF_FACESIZE] elfStyle; 4010 - WCHAR[LF_FACESIZE] elfScript; 4011 -} 4012 -alias ENUMLOGFONTEXW*LPENUMLOGFONTEXW; 4013 - 4014 -struct POINTFX 4015 -{ 4016 - FIXED x; 4017 - FIXED y; 4018 -} 4019 -alias POINTFX*LPPOINTFX; 4020 - 4021 -struct TTPOLYCURVE 4022 -{ 4023 - WORD wType; 4024 - WORD cpfx; 4025 - POINTFX[1] apfx; 4026 -} 4027 -alias TTPOLYCURVE*LPTTPOLYCURVE; 4028 - 4029 -struct TTPOLYGONHEADER 4030 -{ 4031 - DWORD cb; 4032 - DWORD dwType; 4033 - POINTFX pfxStart; 4034 -} 4035 -alias TTPOLYGONHEADER*LPTTPOLYGONHEADER; 4036 - 4037 -struct POINTFLOAT 4038 -{ 4039 - FLOAT x; 4040 - FLOAT y; 4041 -} 4042 -alias POINTFLOAT*PPOINTFLOAT; 4043 - 4044 -struct GLYPHMETRICSFLOAT 4045 -{ 4046 - FLOAT gmfBlackBoxX; 4047 - FLOAT gmfBlackBoxY; 4048 - POINTFLOAT gmfptGlyphOrigin; 4049 - FLOAT gmfCellIncX; 4050 - FLOAT gmfCellIncY; 4051 -} 4052 -alias GLYPHMETRICSFLOAT*PGLYPHMETRICSFLOAT, LPGLYPHMETRICSFLOAT; 4053 - 4054 -struct LAYERPLANEDESCRIPTOR 4055 -{ 4056 - WORD nSize; 4057 - WORD nVersion; 4058 - DWORD dwFlags; 4059 - BYTE iPixelType; 4060 - BYTE cColorBits; 4061 - BYTE cRedBits; 4062 - BYTE cRedShift; 4063 - BYTE cGreenBits; 4064 - BYTE cGreenShift; 4065 - BYTE cBlueBits; 4066 - BYTE cBlueShift; 4067 - BYTE cAlphaBits; 4068 - BYTE cAlphaShift; 4069 - BYTE cAccumBits; 4070 - BYTE cAccumRedBits; 4071 - BYTE cAccumGreenBits; 4072 - BYTE cAccumBlueBits; 4073 - BYTE cAccumAlphaBits; 4074 - BYTE cDepthBits; 4075 - BYTE cStencilBits; 4076 - BYTE cAuxBuffers; 4077 - BYTE iLayerPlane; 4078 - BYTE bReserved; 4079 - COLORREF crTransparent; 4080 -} 4081 -alias LAYERPLANEDESCRIPTOR*PLAYERPLANEDESCRIPTOR, LPLAYERPLANEDESCRIPTOR; 4082 - 4083 -struct BLENDFUNCTION 4084 -{ 4085 - BYTE BlendOp; 4086 - BYTE BlendFlags; 4087 - BYTE SourceConstantAlpha; 4088 - BYTE AlphaFormat; 4089 -} 4090 -alias BLENDFUNCTION*PBLENDFUNCTION, LPBLENDFUNCTION; 3609 +align(4): 3610 +struct NEWTEXTMETRICA { 3611 + LONG tmHeight; 3612 + LONG tmAscent; 3613 + LONG tmDescent; 3614 + LONG tmInternalLeading; 3615 + LONG tmExternalLeading; 3616 + LONG tmAveCharWidth; 3617 + LONG tmMaxCharWidth; 3618 + LONG tmWeight; 3619 + LONG tmOverhang; 3620 + LONG tmDigitizedAspectX; 3621 + LONG tmDigitizedAspectY; 3622 + BYTE tmFirstChar; 3623 + BYTE tmLastChar; 3624 + BYTE tmDefaultChar; 3625 + BYTE tmBreakChar; 3626 + BYTE tmItalic; 3627 + BYTE tmUnderlined; 3628 + BYTE tmStruckOut; 3629 + BYTE tmPitchAndFamily; 3630 + BYTE tmCharSet; 3631 + DWORD ntmFlags; 3632 + UINT ntmSizeEM; 3633 + UINT ntmCellHeight; 3634 + UINT ntmAvgWidth; 3635 +} 3636 +alias NEWTEXTMETRICA* PNEWTEXTMETRICA, NPNEWTEXTMETRICA, LPNEWTEXTMETRICA; 3637 + 3638 +struct NEWTEXTMETRICW { 3639 + LONG tmHeight; 3640 + LONG tmAscent; 3641 + LONG tmDescent; 3642 + LONG tmInternalLeading; 3643 + LONG tmExternalLeading; 3644 + LONG tmAveCharWidth; 3645 + LONG tmMaxCharWidth; 3646 + LONG tmWeight; 3647 + LONG tmOverhang; 3648 + LONG tmDigitizedAspectX; 3649 + LONG tmDigitizedAspectY; 3650 + WCHAR tmFirstChar; 3651 + WCHAR tmLastChar; 3652 + WCHAR tmDefaultChar; 3653 + WCHAR tmBreakChar; 3654 + BYTE tmItalic; 3655 + BYTE tmUnderlined; 3656 + BYTE tmStruckOut; 3657 + BYTE tmPitchAndFamily; 3658 + BYTE tmCharSet; 3659 + DWORD ntmFlags; 3660 + UINT ntmSizeEM; 3661 + UINT ntmCellHeight; 3662 + UINT ntmAvgWidth; 3663 +} 3664 +alias NEWTEXTMETRICW* PNEWTEXTMETRICW, NPNEWTEXTMETRICW, LPNEWTEXTMETRICW; 3665 + 3666 +align: 3667 +struct NEWTEXTMETRICEXA { 3668 + NEWTEXTMETRICA ntmTm; 3669 + FONTSIGNATURE ntmFontSig; 3670 +} 3671 + 3672 +struct NEWTEXTMETRICEXW { 3673 + NEWTEXTMETRICW ntmTm; 3674 + FONTSIGNATURE ntmFontSig; 3675 +} 3676 + 3677 +struct PELARRAY { 3678 + LONG paXCount; 3679 + LONG paYCount; 3680 + LONG paXExt; 3681 + LONG paYExt; 3682 + BYTE paRGBs; 3683 +} 3684 +alias PELARRAY* PPELARRAY, NPPELARRAY, LPPELARRAY; 3685 + 3686 +struct ENUMLOGFONTA { 3687 + LOGFONTA elfLogFont; 3688 + BYTE[LF_FULLFACESIZE] elfFullName; 3689 + BYTE[LF_FACESIZE] elfStyle; 3690 +} 3691 +alias ENUMLOGFONTA* LPENUMLOGFONTA; 3692 + 3693 +struct ENUMLOGFONTW { 3694 + LOGFONTW elfLogFont; 3695 + WCHAR[LF_FULLFACESIZE] elfFullName; 3696 + WCHAR[LF_FACESIZE] elfStyle; 3697 +} 3698 +alias ENUMLOGFONTW* LPENUMLOGFONTW; 3699 + 3700 +struct ENUMLOGFONTEXA { 3701 + LOGFONTA elfLogFont; 3702 + BYTE[LF_FULLFACESIZE] elfFullName; 3703 + BYTE[LF_FACESIZE] elfStyle; 3704 + BYTE[LF_FACESIZE] elfScript; 3705 +} 3706 +alias ENUMLOGFONTEXA* LPENUMLOGFONTEXA; 3707 + 3708 +struct ENUMLOGFONTEXW { 3709 + LOGFONTW elfLogFont; 3710 + WCHAR[LF_FULLFACESIZE] elfFullName; 3711 + WCHAR[LF_FACESIZE] elfStyle; 3712 + WCHAR[LF_FACESIZE] elfScript; 3713 +} 3714 +alias ENUMLOGFONTEXW* LPENUMLOGFONTEXW; 3715 + 3716 +struct POINTFX { 3717 + FIXED x; 3718 + FIXED y; 3719 +} 3720 +alias POINTFX* LPPOINTFX; 3721 + 3722 +struct TTPOLYCURVE { 3723 + WORD wType; 3724 + WORD cpfx; 3725 + POINTFX[1] apfx; 3726 +} 3727 +alias TTPOLYCURVE* LPTTPOLYCURVE; 3728 + 3729 +struct TTPOLYGONHEADER { 3730 + DWORD cb; 3731 + DWORD dwType; 3732 + POINTFX pfxStart; 3733 +} 3734 +alias TTPOLYGONHEADER* LPTTPOLYGONHEADER; 3735 + 3736 +struct POINTFLOAT { 3737 + FLOAT x; 3738 + FLOAT y; 3739 +} 3740 +alias POINTFLOAT* PPOINTFLOAT; 3741 + 3742 +struct GLYPHMETRICSFLOAT { 3743 + FLOAT gmfBlackBoxX; 3744 + FLOAT gmfBlackBoxY; 3745 + POINTFLOAT gmfptGlyphOrigin; 3746 + FLOAT gmfCellIncX; 3747 + FLOAT gmfCellIncY; 3748 +} 3749 +alias GLYPHMETRICSFLOAT* PGLYPHMETRICSFLOAT, LPGLYPHMETRICSFLOAT; 3750 + 3751 +struct LAYERPLANEDESCRIPTOR { 3752 + WORD nSize; 3753 + WORD nVersion; 3754 + DWORD dwFlags; 3755 + BYTE iPixelType; 3756 + BYTE cColorBits; 3757 + BYTE cRedBits; 3758 + BYTE cRedShift; 3759 + BYTE cGreenBits; 3760 + BYTE cGreenShift; 3761 + BYTE cBlueBits; 3762 + BYTE cBlueShift; 3763 + BYTE cAlphaBits; 3764 + BYTE cAlphaShift; 3765 + BYTE cAccumBits; 3766 + BYTE cAccumRedBits; 3767 + BYTE cAccumGreenBits; 3768 + BYTE cAccumBlueBits; 3769 + BYTE cAccumAlphaBits; 3770 + BYTE cDepthBits; 3771 + BYTE cStencilBits; 3772 + BYTE cAuxBuffers; 3773 + BYTE iLayerPlane; 3774 + BYTE bReserved; 3775 + COLORREF crTransparent; 3776 +} 3777 +alias LAYERPLANEDESCRIPTOR* PLAYERPLANEDESCRIPTOR, LPLAYERPLANEDESCRIPTOR; 3778 + 3779 +struct BLENDFUNCTION { 3780 + BYTE BlendOp; 3781 + BYTE BlendFlags; 3782 + BYTE SourceConstantAlpha; 3783 + BYTE AlphaFormat; 3784 +} 3785 +alias BLENDFUNCTION* PBLENDFUNCTION, LPBLENDFUNCTION; 4091 3786 4092 3787 const MM_MAX_NUMAXES = 16; 4093 3788 4094 -struct DESIGNVECTOR 4095 -{ 4096 - DWORD dvReserved; 4097 - DWORD dvNumAxes; 4098 - LONG[MM_MAX_NUMAXES] dvValues; 3789 +struct DESIGNVECTOR { 3790 + DWORD dvReserved; 3791 + DWORD dvNumAxes; 3792 + LONG[MM_MAX_NUMAXES] dvValues; 4099 3793 } 4100 -alias DESIGNVECTOR*PDESIGNVECTOR, LPDESIGNVECTOR; 3794 +alias DESIGNVECTOR* PDESIGNVECTOR, LPDESIGNVECTOR; 4101 3795 const STAMP_DESIGNVECTOR = 0x8000000 + 'd' + ('v' << 8); 4102 3796 const STAMP_AXESLIST = 0x8000000 + 'a' + ('l' << 8); 4103 3797 4104 -static 4105 - 4106 -if (_WIN32_WINNT >= 0x0500) 4107 -{ 4108 - const MM_MAX_AXES_NAMELEN = 16; 4109 - 4110 - struct AXISINFOA 4111 - { 4112 - LONG axMinValue; 4113 - LONG axMaxValue; 4114 - BYTE[MM_MAX_AXES_NAMELEN] axAxisName; 4115 - } 4116 - alias AXISINFOA*PAXISINFOA, LPAXISINFOA; 4117 - 4118 - struct AXISINFOW 4119 - { 4120 - LONG axMinValue; 4121 - LONG axMaxValue; 4122 - WCHAR[MM_MAX_AXES_NAMELEN] axAxisName; 4123 - } 4124 - alias AXISINFOW*PAXISINFOW, LPAXISINFOW; 4125 - 4126 - version (Unicode) 4127 - { 4128 - alias AXISINFOW AXISINFO; 4129 - alias PAXISINFOW PAXISINFO; 4130 - alias LPAXISINFOW LPAXISINFO; 4131 - } 4132 - else 4133 - { 4134 - alias AXISINFOA AXISINFO; 4135 - alias PAXISINFOA PAXISINFO; 4136 - alias LPAXISINFOA LPAXISINFO; 4137 - } 4138 - 4139 - struct AXESLISTA 4140 - { 4141 - DWORD axlReserved; 4142 - DWORD axlNumAxes; 4143 - AXISINFOA[MM_MAX_NUMAXES] axlAxisInfo; 4144 - } 4145 - alias AXESLISTA*PAXESLISTA, LPAXESLISTA; 4146 - 4147 - struct AXESLISTW 4148 - { 4149 - DWORD axlReserved; 4150 - DWORD axlNumAxes; 4151 - AXISINFOW[MM_MAX_NUMAXES] axlAxisInfo; 4152 - } 4153 - alias AXESLISTW*PAXESLISTW, LPAXESLISTW; 4154 - 4155 - version (Unicode) 4156 - { 4157 - alias AXESLISTW AXESLIST; 4158 - alias PAXESLISTW PAXESLIST; 4159 - alias LPAXESLISTW LPAXESLIST; 4160 - } 4161 - else 4162 - { 4163 - alias AXESLISTA AXESLIST; 4164 - alias PAXESLISTA PAXESLIST; 4165 - alias LPAXESLISTA LPAXESLIST; 4166 - } 4167 - 4168 - struct ENUMLOGFONTEXDVA 4169 - { 4170 - ENUMLOGFONTEXA elfEnumLogfontEx; 4171 - DESIGNVECTOR elfDesignVector; 4172 - } 4173 - alias ENUMLOGFONTEXDVA*PENUMLOGFONTEXDVA, LPENUMLOGFONTEXDVA; 4174 - 4175 - struct ENUMLOGFONTEXDVW 4176 - { 4177 - ENUMLOGFONTEXW elfEnumLogfontEx; 4178 - DESIGNVECTOR elfDesignVector; 4179 - } 4180 - alias ENUMLOGFONTEXDVW*PENUMLOGFONTEXDVW, LPENUMLOGFONTEXDVW; 4181 - 4182 - HFONT CreateFontIndirectExA(ENUMLOGFONTEXDVA*); 4183 - 4184 - HFONT CreateFontIndirectExW(ENUMLOGFONTEXDVW*); 4185 - 4186 - version (Unicode) 4187 - alias CreateFontIndirectExW CreateFontIndirectEx; 4188 - else 4189 - alias CreateFontIndirectExA CreateFontIndirectEx; 4190 - 4191 - struct ENUMTEXTMETRICA 4192 - { 4193 - NEWTEXTMETRICEXA etmNewTextMetricEx; 4194 - AXESLISTA etmAxesList; 4195 - } 4196 - alias ENUMTEXTMETRICA*PENUMTEXTMETRICA, LPENUMTEXTMETRICA; 4197 - 4198 - struct ENUMTEXTMETRICW 4199 - { 4200 - NEWTEXTMETRICEXW etmNewTextMetricEx; 4201 - AXESLISTW etmAxesList; 4202 - } 4203 - alias ENUMTEXTMETRICW*PENUMTEXTMETRICW, LPENUMTEXTMETRICW; 4204 - 4205 - version (Unicode) 4206 - { 4207 - alias ENUMTEXTMETRICW ENUMTEXTMETRIC; 4208 - alias PENUMTEXTMETRICW PENUMTEXTMETRIC; 4209 - alias LPENUMTEXTMETRICW LPENUMTEXTMETRIC; 4210 - } 4211 - else 4212 - { 4213 - alias ENUMTEXTMETRICA ENUMTEXTMETRIC; 4214 - alias PENUMTEXTMETRICA PENUMTEXTMETRIC; 4215 - alias LPENUMTEXTMETRICA LPENUMTEXTMETRIC; 4216 - } 4217 -} /* _WIN32_WINNT >= 0x0500 */ 4218 - 4219 -struct GRADIENT_TRIANGLE 4220 -{ 4221 - ULONG Vertex1; 4222 - ULONG Vertex2; 4223 - ULONG Vertex3; 4224 -} 4225 -alias GRADIENT_TRIANGLE*PGRADIENT_TRIANGLE, LPGRADIENT_TRIANGLE; 4226 - 4227 -struct GRADIENT_RECT 4228 -{ 4229 - ULONG UpperLeft; 4230 - ULONG LowerRight; 4231 -} 4232 -alias GRADIENT_RECT*PGRADIENT_RECT, LPGRADIENT_RECT; 4233 - 4234 -struct DISPLAY_DEVICEA 4235 -{ 4236 - DWORD cb; 4237 - CHAR[32] DeviceName; 4238 - CHAR[128] DeviceString; 4239 - DWORD StateFlags; 4240 - CHAR[128] DeviceID; 4241 - CHAR[128] DeviceKey; 4242 -} 4243 -alias DISPLAY_DEVICEA*PDISPLAY_DEVICEA, LPDISPLAY_DEVICEA; 4244 - 4245 -struct DISPLAY_DEVICEW 4246 -{ 4247 - DWORD cb; 4248 - WCHAR[32] DeviceName; 4249 - WCHAR[128] DeviceString; 4250 - DWORD StateFlags; 4251 - WCHAR[128] DeviceID; 4252 - WCHAR[128] DeviceKey; 4253 -} 4254 -alias DISPLAY_DEVICEW*PDISPLAY_DEVICEW, LPDISPLAY_DEVICEW; 4255 - 4256 -static 4257 - 4258 -if (WINVER >= 0x0400) 4259 -{ 4260 - struct DRAWPATRECT 4261 - { 4262 - POINT ptPosition; 4263 - POINT ptSize; 4264 - WORD wStyle; 4265 - WORD wPattern; 4266 - } 4267 - alias DRAWPATRECT*PDRAWPATRECT; 4268 -} 3798 +static if (_WIN32_WINNT >= 0x500) { 3799 + 3800 + const MM_MAX_AXES_NAMELEN = 16; 3801 + 3802 + struct AXISINFOA { 3803 + LONG axMinValue; 3804 + LONG axMaxValue; 3805 + BYTE[MM_MAX_AXES_NAMELEN] axAxisName; 3806 + } 3807 + alias AXISINFOA* PAXISINFOA, LPAXISINFOA; 3808 + 3809 + struct AXISINFOW { 3810 + LONG axMinValue; 3811 + LONG axMaxValue; 3812 + WCHAR[MM_MAX_AXES_NAMELEN] axAxisName; 3813 + } 3814 + alias AXISINFOW* PAXISINFOW, LPAXISINFOW; 3815 + 3816 + version (Unicode) { 3817 + alias AXISINFOW AXISINFO; 3818 + alias PAXISINFOW PAXISINFO; 3819 + alias LPAXISINFOW LPAXISINFO; 3820 + } 3821 + else { 3822 + alias AXISINFOA AXISINFO; 3823 + alias PAXISINFOA PAXISINFO; 3824 + alias LPAXISINFOA LPAXISINFO; 3825 + } 3826 + 3827 + struct AXESLISTA { 3828 + DWORD axlReserved; 3829 + DWORD axlNumAxes; 3830 + AXISINFOA[MM_MAX_NUMAXES] axlAxisInfo; 3831 + } 3832 + alias AXESLISTA* PAXESLISTA, LPAXESLISTA; 3833 + 3834 + struct AXESLISTW { 3835 + DWORD axlReserved; 3836 + DWORD axlNumAxes; 3837 + AXISINFOW[MM_MAX_NUMAXES] axlAxisInfo; 3838 + } 3839 + alias AXESLISTW* PAXESLISTW, LPAXESLISTW; 3840 + 3841 + version (Unicode) { 3842 + alias AXESLISTW AXESLIST; 3843 + alias PAXESLISTW PAXESLIST; 3844 + alias LPAXESLISTW LPAXESLIST; 3845 + } 3846 + else { 3847 + alias AXESLISTA AXESLIST; 3848 + alias PAXESLISTA PAXESLIST; 3849 + alias LPAXESLISTA LPAXESLIST; 3850 + } 3851 + 3852 + struct ENUMLOGFONTEXDVA { 3853 + ENUMLOGFONTEXA elfEnumLogfontEx; 3854 + DESIGNVECTOR elfDesignVector; 3855 + } 3856 + alias ENUMLOGFONTEXDVA* PENUMLOGFONTEXDVA, LPENUMLOGFONTEXDVA; 3857 + 3858 + struct ENUMLOGFONTEXDVW { 3859 + ENUMLOGFONTEXW elfEnumLogfontEx; 3860 + DESIGNVECTOR elfDesignVector; 3861 + } 3862 + alias ENUMLOGFONTEXDVW* PENUMLOGFONTEXDVW, LPENUMLOGFONTEXDVW; 3863 + 3864 + HFONT CreateFontIndirectExA(const(ENUMLOGFONTEXDVA)*); 3865 + HFONT CreateFontIndirectExW(const(ENUMLOGFONTEXDVW)*); 3866 + version (Unicode) 3867 + alias CreateFontIndirectExW CreateFontIndirectEx; 3868 + else 3869 + alias CreateFontIndirectExA CreateFontIndirectEx; 3870 + 3871 + struct ENUMTEXTMETRICA { 3872 + NEWTEXTMETRICEXA etmNewTextMetricEx; 3873 + AXESLISTA etmAxesList; 3874 + } 3875 + alias ENUMTEXTMETRICA* PENUMTEXTMETRICA, LPENUMTEXTMETRICA; 3876 + 3877 + struct ENUMTEXTMETRICW { 3878 + NEWTEXTMETRICEXW etmNewTextMetricEx; 3879 + AXESLISTW etmAxesList; 3880 + } 3881 + alias ENUMTEXTMETRICW* PENUMTEXTMETRICW, LPENUMTEXTMETRICW; 3882 + 3883 + version (Unicode) { 3884 + alias ENUMTEXTMETRICW ENUMTEXTMETRIC; 3885 + alias PENUMTEXTMETRICW PENUMTEXTMETRIC; 3886 + alias LPENUMTEXTMETRICW LPENUMTEXTMETRIC; 3887 + } 3888 + else { 3889 + alias ENUMTEXTMETRICA ENUMTEXTMETRIC; 3890 + alias PENUMTEXTMETRICA PENUMTEXTMETRIC; 3891 + alias LPENUMTEXTMETRICA LPENUMTEXTMETRIC; 3892 + } 3893 +} /* _WIN32_WINNT >= 0x500 */ 3894 + 3895 +struct GRADIENT_TRIANGLE { 3896 + ULONG Vertex1; 3897 + ULONG Vertex2; 3898 + ULONG Vertex3; 3899 +} 3900 +alias GRADIENT_TRIANGLE* PGRADIENT_TRIANGLE, LPGRADIENT_TRIANGLE; 3901 + 3902 +struct GRADIENT_RECT { 3903 + ULONG UpperLeft; 3904 + ULONG LowerRight; 3905 +} 3906 +alias GRADIENT_RECT* PGRADIENT_RECT, LPGRADIENT_RECT; 3907 + 3908 +struct DISPLAY_DEVICEA { 3909 + DWORD cb; 3910 + CHAR[32] DeviceName; 3911 + CHAR[128] DeviceString; 3912 + DWORD StateFlags; 3913 + CHAR[128] DeviceID; 3914 + CHAR[128] DeviceKey; 3915 +} 3916 +alias DISPLAY_DEVICEA* PDISPLAY_DEVICEA, LPDISPLAY_DEVICEA; 3917 + 3918 +struct DISPLAY_DEVICEW { 3919 + DWORD cb; 3920 + WCHAR[32] DeviceName; 3921 + WCHAR[128] DeviceString; 3922 + DWORD StateFlags; 3923 + WCHAR[128] DeviceID; 3924 + WCHAR[128] DeviceKey; 3925 +} 3926 +alias DISPLAY_DEVICEW* PDISPLAY_DEVICEW, LPDISPLAY_DEVICEW; 3927 + 3928 +struct DRAWPATRECT { 3929 + POINT ptPosition; 3930 + POINT ptSize; 3931 + WORD wStyle; 3932 + WORD wPattern; 3933 +} 3934 +alias DRAWPATRECT* PDRAWPATRECT; 4269 3935 4270 3936 // --------- 4271 3937 // Callbacks 4272 3938 4273 -alias BOOL function(HDC, int) ABORTPROC; 3939 +alias BOOL function (HDC, int) ABORTPROC; 3940 +alias int function (HDC, HANDLETABLE*, METARECORD*, int, LPARAM) MFENUMPROC; 3941 +alias int function (HDC, HANDLETABLE*, const(ENHMETARECORD)*, int, LPARAM) ENHMFENUMPROC; 3942 +alias int function (const(LOGFONTA)*, const(TEXTMETRICA)*, DWORD, LPARAM) FONTENUMPROCA, OLDFONTENUMPROCA; 3943 +alias int function (const(LOGFONTW)*, const(TEXTMETRICW)*, DWORD, LPARAM) FONTENUMPROCW, OLDFONTENUMPROCW; 3944 +alias int function (LPSTR, LPARAM) ICMENUMPROCA; 3945 +alias int function (LPWSTR, LPARAM) ICMENUMPROCW; 3946 +alias void function (LPVOID, LPARAM) GOBJENUMPROC; 3947 +alias void function (int, int, LPARAM) LINEDDAPROC; 3948 +alias UINT function (HWND, HMODULE, LPDEVMODEA, LPSTR, LPSTR, LPDEVMODEA, LPSTR, UINT) LPFNDEVMODE; 3949 +alias DWORD function (LPSTR, LPSTR, UINT, LPSTR, LPDEVMODEA) LPFNDEVCAPS; 4274 3950 4275 -alias int function(HDC, HANDLETABLE*, METARECORD*, int, LPARAM) MFENUMPROC; 4276 - 4277 -alias int function(HDC, HANDLETABLE*, CPtr!(ENHMETARECORD), int, LPARAM) ENHMFENUMPROC; 4278 - 4279 -alias int function(CPtr!(LOGFONTA), CPtr!(TEXTMETRICA), DWORD, LPARAM) FONTENUMPROCA, OLDFONTENUMPROCA; 4280 - 4281 -alias int function(CPtr!(LOGFONTW), CPtr!(TEXTMETRICW), DWORD, LPARAM) FONTENUMPROCW, OLDFONTENUMPROCW; 4282 - 4283 -alias int function(LPSTR, LPARAM) ICMENUMPROCA; 4284 - 4285 -alias int function(LPWSTR, LPARAM) ICMENUMPROCW; 4286 - 4287 -alias void function(LPVOID, LPARAM) GOBJENUMPROC; 4288 - 4289 -alias void function(int, int, LPARAM) LINEDDAPROC; 4290 - 4291 -alias UINT function(HWND, HMODULE, LPDEVMODEA, LPSTR, LPSTR, LPDEVMODEA, LPSTR, UINT) LPFNDEVMODE; 4292 - 4293 -alias DWORD function(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODEA) LPFNDEVCAPS; 4294 3951 4295 3952 // --------- 4296 3953 // C Macros. 4297 3954 // FIXME: 4298 -// POINTS MAKEPOINTS(DWORD dwValue) #define MAKEPOINTS(l) (*((POINTS*)&(l))) 4299 -DWORD MAKEROP4(DWORD fore, DWORD back) 4300 -{ 4301 - return ((back << 8) & 0xFF000000) | (fore); 3955 +//POINTS MAKEPOINTS(DWORD dwValue) #define MAKEPOINTS(l) (*((POINTS*)&(l))) 3956 + 3957 +DWORD MAKEROP4(DWORD fore, DWORD back) { 3958 + return ((back<<8) & 0xFF000000) | (fore); 3959 +} 3960 + 3961 +COLORREF CMYK(BYTE c, BYTE m, BYTE y, BYTE k) { 3962 + return cast(COLORREF)(k | (y << 8) | (m << 16) | (c << 24)); 3963 +} 3964 + 3965 +BYTE GetCValue(COLORREF cmyk) { 3966 + return cast(BYTE)(cmyk >> 24); 3967 +} 3968 + 3969 +BYTE GetMValue(COLORREF cmyk) { 3970 + return cast(BYTE)(cmyk >> 16); 3971 +} 3972 + 3973 +BYTE GetYValue(COLORREF cmyk) { 3974 + return cast(BYTE)(cmyk >> 8); 3975 +} 3976 + 3977 +BYTE GetKValue(COLORREF cmyk) { 3978 + return cast(BYTE)cmyk; 3979 +} 3980 + 3981 +COLORREF RGB(BYTE r, BYTE g, BYTE b) { 3982 + return cast(COLORREF)(r | (g << 8) | (b << 16)); 3983 +} 3984 + 3985 +BYTE GetRValue(COLORREF c) { 3986 + return cast(BYTE)c; 4302 3987 } 4303 3988 4304 - 4305 -COLORREF CMYK(BYTE c, BYTE m, BYTE y, BYTE k) 4306 -{ 4307 - return cast(COLORREF) (k | (y << 8) | (m << 16) | (c << 24)); 3989 +BYTE GetGValue(COLORREF c) { 3990 + return cast(BYTE)(c >> 8); 4308 3991 } 4309 3992 4310 - 4311 -BYTE GetCValue(COLORREF cmyk) 4312 -{ 4313 - return cast(BYTE) (cmyk >> 24); 4314 -} 4315 - 4316 - 4317 -BYTE GetMValue(COLORREF cmyk) 4318 -{ 4319 - return cast(BYTE) (cmyk >> 16); 3993 +BYTE GetBValue(COLORREF c) { 3994 + return cast(BYTE)(c >> 16); 4320 3995 } 4321 3996 4322 - 4323 -BYTE GetYValue(COLORREF cmyk) 4324 -{ 4325 - return cast(BYTE) (cmyk >> 8); 3997 +COLORREF PALETTEINDEX(WORD i) { 3998 + return 0x01000000 | cast(COLORREF) i; 4326 3999 } 4327 4000 4328 - 4329 -BYTE GetKValue(COLORREF cmyk) 4330 -{ 4331 - return cast(BYTE) cmyk; 4332 -} 4333 - 4334 - 4335 -COLORREF RGB(BYTE r, BYTE g, BYTE b) 4336 -{ 4337 - return cast(COLORREF) (r | (g << 8) | (b << 16)); 4001 +COLORREF PALETTERGB(BYTE r, BYTE g, BYTE b) { 4002 + return 0x02000000|RGB(r, g, b); 4338 4003 } 4339 4004 4340 - 4341 -BYTE GetRValue(COLORREF c) 4342 -{ 4343 - return cast(BYTE) c; 4344 -} 4005 +extern(Windows) { 4006 + int AbortDoc(HDC); 4007 + BOOL AbortPath(HDC); 4008 + int AddFontResourceA(LPCSTR); 4009 + int AddFontResourceW(LPCWSTR); 4010 + BOOL AngleArc(HDC, int, int, DWORD, FLOAT, FLOAT); 4011 + BOOL AnimatePalette(HPALETTE, UINT, UINT, const(PALETTEENTRY)*); 4012 + BOOL Arc(HDC, int, int, int, int, int, int, int, int); 4013 + BOOL ArcTo(HDC, int, int, int, int, int, int, int, int); 4014 + BOOL BeginPath(HDC); 4015 + BOOL BitBlt(HDC, int, int, int, int, HDC, int, int, DWORD); 4016 + BOOL CancelDC(HDC); 4017 + BOOL CheckColorsInGamut(HDC, PVOID, PVOID, DWORD); 4018 + BOOL Chord(HDC, int, int, int, int, int, int, int, int); 4019 + int ChoosePixelFormat(HDC, const(PIXELFORMATDESCRIPTOR)*); 4020 + HENHMETAFILE CloseEnhMetaFile(HDC); 4021 + BOOL CloseFigure(HDC); 4022 + HMETAFILE CloseMetaFile(HDC); 4023 + BOOL ColorMatchToTarget(HDC, HDC, DWORD); 4024 + BOOL ColorCorrectPalette(HDC, HPALETTE, DWORD, DWORD); 4025 + int CombineRgn(HRGN, HRGN, HRGN, int); 4026 + BOOL CombineTransform(LPXFORM, const(XFORM)*, const(XFORM)*); 4027 + HENHMETAFILE CopyEnhMetaFileA(HENHMETAFILE, LPCSTR); 4028 + HENHMETAFILE CopyEnhMetaFileW(HENHMETAFILE, LPCWSTR); 4029 + HMETAFILE CopyMetaFileA(HMETAFILE, LPCSTR); 4030 + HMETAFILE CopyMetaFileW(HMETAFILE, LPCWSTR); 4031 + HBITMAP CreateBitmap(int, int, UINT, UINT, PCVOID); 4032 + HBITMAP CreateBitmapIndirect(const(BITMAP)*); 4033 + HBRUSH CreateBrushIndirect(const(LOGBRUSH)*); 4034 + HCOLORSPACE CreateColorSpaceA(LPLOGCOLORSPACEA); 4035 + HCOLORSPACE CreateColorSpaceW(LPLOGCOLORSPACEW); 4036 + HBITMAP CreateCompatibleBitmap(HDC, int, int); 4037 + HDC CreateCompatibleDC(HDC); 4038 + HDC CreateDCA(LPCSTR, LPCSTR, LPCSTR, const(DEVMODEA)*); 4039 + HDC CreateDCW(LPCWSTR, LPCWSTR, LPCWSTR, const(DEVMODEW)*); 4040 + HBITMAP CreateDIBitmap(HDC, const(BITMAPINFOHEADER)*, DWORD, PCVOID, const(BITMAPINFO)*, UINT); 4041 + HBRUSH CreateDIBPatternBrush(HGLOBAL, UINT); 4042 + HBRUSH CreateDIBPatternBrushPt(PCVOID, UINT); 4043 + HBITMAP CreateDIBSection(HDC, const(BITMAPINFO)*, UINT, void**, HANDLE, DWORD); 4044 + HBITMAP CreateDiscardableBitmap(HDC, int, int); 4045 + HRGN CreateEllipticRgn(int, int, int, int); 4046 + HRGN CreateEllipticRgnIndirect(LPCRECT); 4047 + HDC CreateEnhMetaFileA(HDC, LPCSTR, LPCRECT, LPCSTR); 4048 + HDC CreateEnhMetaFileW(HDC, LPCWSTR, LPCRECT, LPCWSTR); 4049 + HFONT CreateFontA(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCSTR); 4050 + HFONT CreateFontW(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCWSTR); 4051 + HFONT CreateFontIndirectA(const(LOGFONTA)*); 4052 + HFONT CreateFontIndirectW(const(LOGFONTW)*); 4053 + HPALETTE CreateHalftonePalette(HDC); 4054 + HBRUSH CreateHatchBrush(int, COLORREF); 4055 + HDC CreateICA(LPCSTR, LPCSTR, LPCSTR, const(DEVMODEA)*); 4056 + HDC CreateICW(LPCWSTR, LPCWSTR, LPCWSTR, const(DEVMODEW)*); 4057 + HDC CreateMetaFileA(LPCSTR); 4058 + HDC CreateMetaFileW(LPCWSTR); 4059 + HPALETTE CreatePalette(const(LOGPALETTE)*); 4060 + HBRUSH CreatePatternBrush(HBITMAP); 4061 + HPEN CreatePen(int, int, COLORREF); 4062 + HPEN CreatePenIndirect(const(LOGPEN)*); 4063 + HRGN CreatePolygonRgn(const(POINT)*, int, int); 4064 + HRGN CreatePolyPolygonRgn(const(POINT)*, const(INT)*, int, int); 4065 + HRGN CreateRectRgn(int, int, int, int); 4066 + HRGN CreateRectRgnIndirect(LPCRECT); 4067 + HRGN CreateRoundRectRgn(int, int, int, int, int, int); 4068 + BOOL CreateScalableFontResourceA(DWORD, LPCSTR, LPCSTR, LPCSTR); 4069 + BOOL CreateScalableFontResourceW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR); 4070 + HBRUSH CreateSolidBrush(COLORREF); 4071 + BOOL DeleteColorSpace(HCOLORSPACE); 4072 + BOOL DeleteDC(HDC); 4073 + BOOL DeleteEnhMetaFile(HENHMETAFILE); 4074 + BOOL DeleteMetaFile(HMETAFILE); 4075 + BOOL DeleteObject(HGDIOBJ); 4076 + int DescribePixelFormat(HDC, int, UINT, LPPIXELFORMATDESCRIPTOR); 4077 + DWORD DeviceCapabilitiesA(LPCSTR, LPCSTR, WORD, LPSTR, const(DEVMODEA)*); 4078 + DWORD DeviceCapabilitiesW(LPCWSTR, LPCWSTR, WORD, LPWSTR, const(DEVMODEW)*); 4079 + BOOL DPtoLP(HDC, LPPOINT, int); 4080 + int DrawEscape(HDC, int, int, LPCSTR); 4081 + BOOL Ellipse(HDC, int, int, int, int); 4082 + int EndDoc(HDC); 4083 + int EndPage(HDC); 4084 + BOOL EndPath(HDC); 4085 + BOOL EnumEnhMetaFile(HDC, HENHMETAFILE, ENHMFENUMPROC, PVOID, LPCRECT); 4086 + int EnumFontFamiliesA(HDC, LPCSTR, FONTENUMPROCA, LPARAM); 4087 + int EnumFontFamiliesW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM); 4088 + int EnumFontFamiliesExA(HDC, PLOGFONTA, FONTENUMPROCA, LPARAM, DWORD); 4089 + int EnumFontFamiliesExW(HDC, PLOGFONTW, FONTENUMPROCW, LPARAM, DWORD); 4090 + int EnumFontsA(HDC, LPCSTR, FONTENUMPROCA, LPARAM); 4091 + int EnumFontsW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM); 4092 + int EnumICMProfilesA(HDC, ICMENUMPROCA, LPARAM); 4093 + int EnumICMProfilesW(HDC, ICMENUMPROCW, LPARAM); 4094 + BOOL EnumMetaFile(HDC, HMETAFILE, MFENUMPROC, LPARAM); 4095 + int EnumObjects(HDC, int, GOBJENUMPROC, LPARAM); 4096 + BOOL EqualRgn(HRGN, HRGN); 4097 + int Escape(HDC, int, int, LPCSTR, PVOID); 4098 + int ExcludeClipRect(HDC, int, int, int, int); 4099 + int ExcludeUpdateRgn(HDC, HWND); 4100 + HPEN ExtCreatePen(DWORD, DWORD, const(LOGBRUSH)*, DWORD, const(DWORD)*); 4101 + HRGN ExtCreateRegion(const(XFORM)*, DWORD, const(RGNDATA)*); 4102 + int ExtEscape(HDC, int, int, LPCSTR, int, LPSTR); 4103 + BOOL ExtFloodFill(HDC, int, int, COLORREF, UINT); 4104 + int ExtSelectClipRgn(HDC, HRGN, int); 4105 + BOOL ExtTextOutA(HDC, int, int, UINT, LPCRECT, LPCSTR, UINT, const(INT)*); 4106 + BOOL ExtTextOutW(HDC, int, int, UINT, LPCRECT, LPCWSTR, UINT, const(INT)*); 4107 + BOOL FillPath(HDC); 4108 + int FillRect(HDC, LPCRECT, HBRUSH); 4109 + int FillRgn(HDC, HRGN, HBRUSH); 4110 + BOOL FixBrushOrgEx(HDC, int, int, LPPOINT); 4111 + BOOL FlattenPath(HDC); 4112 + BOOL FloodFill(HDC, int, int, COLORREF); 4113 + BOOL FrameRgn(HDC, HRGN, HBRUSH, int, int); 4114 + BOOL GdiComment(HDC, UINT, const(BYTE)*); 4115 + BOOL GdiFlush(); 4116 + DWORD GdiGetBatchLimit(); 4117 + DWORD GdiSetBatchLimit(DWORD); 4118 + int GetArcDirection(HDC); 4119 + BOOL GetAspectRatioFilterEx(HDC, LPSIZE); 4120 + LONG GetBitmapBits(HBITMAP, LONG, PVOID); 4121 + BOOL GetBitmapDimensionEx(HBITMAP, LPSIZE); 4122 + COLORREF GetBkColor(HDC); 4123 + int GetBkMode(HDC); 4124 + UINT GetBoundsRect(HDC, LPRECT, UINT); 4125 + BOOL GetBrushOrgEx(HDC, LPPOINT); 4126 + BOOL GetCharABCWidthsA(HDC, UINT, UINT, LPABC); 4127 + BOOL GetCharABCWidthsW(HDC, UINT, UINT, LPABC); 4128 + BOOL GetCharABCWidthsFloatA(HDC, UINT, UINT, LPABCFLOAT); 4129 + BOOL GetCharABCWidthsFloatW(HDC, UINT, UINT, LPABCFLOAT); 4130 + DWORD GetCharacterPlacementA(HDC, LPCSTR, int, int, LPGCP_RESULTSA, DWORD); 4131 + DWORD GetCharacterPlacementW(HDC, LPCWSTR, int, int, LPGCP_RESULTSW, DWORD); 4132 + BOOL GetCharWidth32A(HDC, UINT, UINT, LPINT); 4133 + BOOL GetCharWidth32W(HDC, UINT, UINT, LPINT); 4134 + BOOL GetCharWidthA(HDC, UINT, UINT, LPINT); 4135 + BOOL GetCharWidthW(HDC, UINT, UINT, LPINT); 4136 + BOOL GetCharWidthFloatA(HDC, UINT, UINT, PFLOAT); 4137 + BOOL GetCharWidthFloatW(HDC, UINT, UINT, PFLOAT); 4138 + int GetClipBox(HDC, LPRECT); 4139 + int GetClipRgn(HDC, HRGN); 4140 + BOOL GetColorAdjustment(HDC, LPCOLORADJUSTMENT); 4141 + HANDLE GetColorSpace(HDC); 4142 + HGDIOBJ GetCurrentObject(HDC, UINT); 4143 + BOOL GetCurrentPositionEx(HDC, LPPOINT); 4144 + HCURSOR GetCursor(); 4145 + BOOL GetDCOrgEx(HDC, LPPOINT); 4146 + static if (_WIN32_WINNT >= 0x500) 4147 + { 4148 + DWORD GetDCPenColor(HGDIOBJ); 4149 + COLORREF GetDCBrushColor(HGDIOBJ); 4150 + } 4151 + int GetDeviceCaps(HDC, int); 4152 + BOOL GetDeviceGammaRamp(HDC, PVOID); 4153 + UINT GetDIBColorTable(HDC, UINT, UINT, RGBQUAD*); 4154 + int GetDIBits(HDC, HBITMAP, UINT, UINT, PVOID, LPBITMAPINFO, UINT); 4155 + HENHMETAFILE GetEnhMetaFileA(LPCSTR); 4156 + HENHMETAFILE GetEnhMetaFileW(LPCWSTR); 4157 + UINT GetEnhMetaFileBits(HENHMETAFILE, UINT, LPBYTE); 4158 + UINT GetEnhMetaFileDescriptionA(HENHMETAFILE, UINT, LPSTR); 4159 + UINT GetEnhMetaFileDescriptionW(HENHMETAFILE, UINT, LPWSTR); 4160 + UINT GetEnhMetaFileHeader(HENHMETAFILE, UINT, LPENHMETAHEADER); 4161 + UINT GetEnhMetaFilePaletteEntries(HENHMETAFILE, UINT, LPPALETTEENTRY); 4162 + UINT GetEnhMetaFilePixelFormat(HENHMETAFILE, DWORD, const(PIXELFORMATDESCRIPTOR)*); 4163 + DWORD GetFontData(HDC, DWORD, DWORD, PVOID, DWORD); 4164 + DWORD GetFontLanguageInfo(HDC); 4165 + DWORD GetGlyphOutlineA(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, PVOID, const(MAT2)*); 4166 + DWORD GetGlyphOutlineW(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, PVOID, const(MAT2)*); 4167 + int GetGraphicsMode(HDC); 4168 + BOOL GetICMProfileA(HDC, DWORD, LPSTR); 4169 + BOOL GetICMProfileW(HDC, DWORD, LPWSTR); 4170 + DWORD GetKerningPairsA(HDC, DWORD, LPKERNINGPAIR); 4171 + DWORD GetKerningPairsW(HDC, DWORD, LPKERNINGPAIR); 4172 + BOOL GetLogColorSpaceA(HCOLORSPACE, LPLOGCOLORSPACEA, DWORD); 4173 + BOOL GetLogColorSpaceW(HCOLORSPACE, LPLOGCOLORSPACEW, DWORD); 4174 + int GetMapMode(HDC); 4175 + HMETAFILE GetMetaFileA(LPCSTR); 4176 + HMETAFILE GetMetaFileW(LPCWSTR); 4177 + UINT GetMetaFileBitsEx(HMETAFILE, UINT, PVOID); 4178 + int GetMetaRgn(HDC, HRGN); 4179 + BOOL GetMiterLimit(HDC, PFLOAT); 4180 + COLORREF GetNearestColor(HDC, COLORREF); 4181 + UINT GetNearestPaletteIndex(HPALETTE, COLORREF); 4182 + int GetObjectA(HGDIOBJ, int, PVOID); 4183 + int GetObjectW(HGDIOBJ, int, PVOID); 4184 + DWORD GetObjectType(HGDIOBJ); 4185 + UINT GetOutlineTextMetricsA(HDC, UINT, LPOUTLINETEXTMETRICA); 4186 + UINT GetOutlineTextMetricsW(HDC, UINT, LPOUTLINETEXTMETRICW); 4187 + UINT GetPaletteEntries(HPALETTE, UINT, UINT, LPPALETTEENTRY); 4188 + int GetPath(HDC, LPPOINT, PBYTE, int); 4189 + COLORREF GetPixel(HDC, int, int); 4190 + int GetPixelFormat(HDC); 4191 + int GetPolyFillMode(HDC); 4192 + BOOL GetRasterizerCaps(LPRASTERIZER_STATUS, UINT); 4193 + int GetRandomRgn (HDC, HRGN, INT); 4194 + DWORD GetRegionData(HRGN, DWORD, LPRGNDATA); 4195 + int GetRgnBox(HRGN, LPRECT); 4196 + int GetROP2(HDC); 4197 + HGDIOBJ GetStockObject(int); 4198 + int GetStretchBltMode(HDC); 4199 + UINT GetSystemPaletteEntries(HDC, UINT, UINT, LPPALETTEENTRY); 4200 + UINT GetSystemPaletteUse(HDC); 4201 + UINT GetTextAlign(HDC); 4202 + int GetTextCharacterExtra(HDC); 4203 + int GetTextCharset(HDC); 4204 + int GetTextCharsetInfo(HDC, LPFONTSIGNATURE, DWORD); 4205 + COLORREF GetTextColor(HDC); 4206 + BOOL GetTextExtentExPointA(HDC, LPCSTR, int, int, LPINT, LPINT, LPSIZE); 4207 + BOOL GetTextExtentExPointW(HDC, LPCWSTR, int, int, LPINT, LPINT, LPSIZE); 4208 + BOOL GetTextExtentPointA(HDC, LPCSTR, int, LPSIZE); 4209 + BOOL GetTextExtentPointW(HDC, LPCWSTR, int, LPSIZE); 4210 + BOOL GetTextExtentPoint32A(HDC, LPCSTR, int, LPSIZE); 4211 + BOOL GetTextExtentPoint32W(HDC, LPCWSTR, int, LPSIZE); 4212 + int GetTextFaceA(HDC, int, LPSTR); 4213 + int GetTextFaceW(HDC, int, LPWSTR); 4214 + BOOL GetTextMetricsA(HDC, LPTEXTMETRICA); 4215 + BOOL GetTextMetricsW(HDC, LPTEXTMETRICW); 4216 + BOOL GetViewportExtEx(HDC, LPSIZE); 4217 + BOOL GetViewportOrgEx(HDC, LPPOINT); 4218 + BOOL GetWindowExtEx(HDC, LPSIZE); 4219 + BOOL GetWindowOrgEx(HDC, LPPOINT); 4220 + UINT GetWinMetaFileBits(HENHMETAFILE, UINT, LPBYTE, INT, HDC); 4221 + BOOL GetWorldTransform(HDC, LPXFORM); 4222 + int IntersectClipRect(HDC, int, int, int, int); 4223 + BOOL InvertRgn(HDC, HRGN); 4224 + BOOL LineDDA(int, int, int, int, LINEDDAPROC, LPARAM); 4225 + BOOL LineTo(HDC, int, int); 4226 + BOOL LPtoDP(HDC, LPPOINT, int); 4227 + BOOL MaskBlt(HDC, int, int, int, int, HDC, int, int, HBITMAP, int, int, DWORD); 4228 + BOOL ModifyWorldTransform(HDC, const(XFORM)*, DWORD); 4229 + BOOL MoveToEx(HDC, int, int, LPPOINT); 4230 + int OffsetClipRgn(HDC, int, int); 4231 + int OffsetRgn(HRGN, int, int); 4232 + BOOL OffsetViewportOrgEx(HDC, int, int, LPPOINT); 4233 + BOOL OffsetWindowOrgEx(HDC, int, int, LPPOINT); 4234 + BOOL PaintRgn(HDC, HRGN); 4235 + BOOL PatBlt(HDC, int, int, int, int, DWORD); 4236 + HRGN PathToRegion(HDC); 4237 + BOOL Pie(HDC, int, int, int, int, int, int, int, int); 4238 + BOOL PlayEnhMetaFile(HDC, HENHMETAFILE, LPCRECT); 4239 + BOOL PlayEnhMetaFileRecord(HDC, LPHANDLETABLE, const(ENHMETARECORD)*, UINT); 4240 + BOOL PlayMetaFile(HDC, HMETAFILE); 4241 + BOOL PlayMetaFileRecord(HDC, LPHANDLETABLE, LPMETARECORD, UINT); 4242 + BOOL PlgBlt(HDC, const(POINT)*, HDC, int, int, int, int, HBITMAP, int, int); 4243 + BOOL PolyBezier(HDC, const(POINT)*, DWORD); 4244 + BOOL PolyBezierTo(HDC, const(POINT)*, DWORD); 4245 + BOOL PolyDraw(HDC, const(POINT)*, const(BYTE)*, int); 4246 + BOOL Polygon(HDC, const(POINT)*, int); 4247 + BOOL Polyline(HDC, const(POINT)*, int); 4248 + BOOL PolylineTo(HDC, const(POINT)*, DWORD); 4249 + BOOL PolyPolygon(HDC, const(POINT)*, const(INT)*, int); 4250 + BOOL PolyPolyline(HDC, const(POINT)*, const(DWORD)*, DWORD); 4251 + BOOL PolyTextOutA(HDC, const(POLYTEXTA)*, int); 4252 + BOOL PolyTextOutW(HDC, const(POLYTEXTW)*, int); 4253 + BOOL PtInRegion(HRGN, int, int); 4254 + BOOL PtVisible(HDC, int, int); 4255 + UINT RealizePalette(HDC); 4256 + BOOL Rectangle(HDC, int, int, int, int); 4257 + BOOL RectInRegion(HRGN, LPCRECT); 4258 + BOOL RectVisible(HDC, LPCRECT); 4259 + BOOL RemoveFontResourceA(LPCSTR); 4260 + BOOL RemoveFontResourceW(LPCWSTR); 4261 + 4262 + HDC ResetDCA(HDC, const(DEVMODEA)*); 4263 + HDC ResetDCW(HDC, const(DEVMODEW)*); 4264 + BOOL ResizePalette(HPALETTE, UINT); 4265 + BOOL RestoreDC(HDC, int); 4266 + BOOL RoundRect(HDC, int, int, int, int, int, int); 4267 + int SaveDC(HDC); 4268 + BOOL ScaleViewportExtEx(HDC, int, int, int, int, LPSIZE); 4269 + BOOL ScaleWindowExtEx(HDC, int, int, int, int, LPSIZE); 4270 + BOOL SelectClipPath(HDC, int); 4271 + int SelectClipRgn(HDC, HRGN); 4272 + HGDIOBJ SelectObject(HDC, HGDIOBJ); 4273 + HPALETTE SelectPalette(HDC, HPALETTE, BOOL); 4274 + int SetAbortProc(HDC, ABORTPROC); 4275 + int SetArcDirection(HDC, int); 4276 + LONG SetBitmapBits(HBITMAP, DWORD, PCVOID); 4277 + BOOL SetBitmapDimensionEx(HBITMAP, int, int, LPSIZE); 4278 + COLORREF SetBkColor(HDC, COLORREF); 4279 + int SetBkMode(HDC, int); 4280 + UINT SetBoundsRect(HDC, LPCRECT, UINT); 4281 + BOOL SetBrushOrgEx(HDC, int, int, LPPOINT); 4282 + BOOL SetColorAdjustment(HDC, const(COLORADJUSTMENT)*); 4283 + BOOL SetColorSpace(HDC, HCOLORSPACE); 4284 + 4285 + BOOL SetDeviceGammaRamp(HDC, PVOID); 4286 + UINT SetDIBColorTable(HDC, UINT, UINT, const(RGBQUAD)*); 4287 + int SetDIBits(HDC, HBITMAP, UINT, UINT, PCVOID, const(BITMAPINFO)*, UINT); 4288 + int SetDIBitsToDevice(HDC, int, int, DWORD, DWORD, int, int, UINT, UINT, PCVOID, const(BITMAPINFO)*, UINT); 4289 + HENHMETAFILE SetEnhMetaFileBits(UINT, const(BYTE)*); 4290 + int SetGraphicsMode(HDC, int); 4291 + int SetICMMode(HDC, int); 4292 + BOOL SetICMProfileA(HDC, LPSTR); 4293 + BOOL SetICMProfileW(HDC, LPWSTR); 4294 + int SetMapMode(HDC, int); 4345 4295 4346 - 4347 -BYTE GetGValue(COLORREF c) 4348 -{ 4349 - return cast(BYTE) (c >> 8); 4350 -} 4296 + static if (_WIN32_WINNT >= 0x500) { 4297 + DWORD SetLayout(HDC hdc, DWORD l); 4298 + DWORD GetLayout(HDC hdc); 4299 + } 4351 4300 4352 - 4353 -BYTE GetBValue(COLORREF c) 4354 -{ 4355 - return cast(BYTE) (c >> 16); 4356 -} 4357 - 4301 + DWORD SetMapperFlags(HDC, DWORD); 4302 + HMETAFILE SetMetaFileBitsEx(UINT, const(BYTE)*); 4303 + int SetMetaRgn(HDC); 4304 + BOOL SetMiterLimit(HDC, FLOAT, PFLOAT); 4305 + UINT SetPaletteEntries(HPALETTE, UINT, UINT, const(PALETTEENTRY)*); 4306 + COLORREF SetPixel(HDC, int, int, COLORREF); 4307 + BOOL SetPixelFormat(HDC, int, const(PIXELFORMATDESCRIPTOR)*); 4308 + BOOL SetPixelV(HDC, int, int, COLORREF); 4309 + int SetPolyFillMode(HDC, int); 4310 + BOOL SetRectRgn(HRGN, int, int, int, int); 4311 + int SetROP2(HDC, int); 4312 + int SetStretchBltMode(HDC, int); 4313 + UINT SetSystemPaletteUse(HDC, UINT); 4314 + UINT SetTextAlign(HDC, UINT); 4315 + int SetTextCharacterExtra(HDC, int); 4316 + COLORREF SetTextColor(HDC, COLORREF); 4317 + BOOL SetTextJustification(HDC, int, int); 4318 + BOOL SetViewportExtEx(HDC, int, int, LPSIZE); 4319 + BOOL SetViewportOrgEx(HDC, int, int, LPPOINT); 4320 + BOOL SetWindowExtEx(HDC, int, int, LPSIZE); 4321 + BOOL SetWindowOrgEx(HDC, int, int, LPPOINT); 4322 + HENHMETAFILE SetWinMetaFileBits(UINT, const(BYTE)*, HDC, const(METAFILEPICT)*); 4323 + BOOL SetWorldTransform(HDC, const(XFORM)*); 4324 + int StartDocA(HDC, const(DOCINFOA)*); 4325 + int StartDocW(HDC, const(DOCINFOW)*); 4326 + int StartPage(HDC); 4327 + BOOL StretchBlt(HDC, int, int, int, int, HDC, int, int, int, int, DWORD); 4328 + int StretchDIBits(HDC, int, int, int, int, int, int, int, int, const(VOID)* , const(BITMAPINFO)* , UINT, DWORD); 4329 + BOOL StrokeAndFillPath(HDC); 4330 + BOOL StrokePath(HDC); 4331 + BOOL SwapBuffers(HDC); 4332 + BOOL TextOutA(HDC, int, int, LPCSTR, int); 4333 + BOOL TextOutW(HDC, int, int, LPCWSTR, int); 4334 + BOOL TranslateCharsetInfo(PDWORD, LPCHARSETINFO, DWORD); 4335 + BOOL UnrealizeObject(HGDIOBJ); 4336 + BOOL UpdateColors(HDC); 4337 + BOOL UpdateICMRegKeyA(DWORD, DWORD, LPSTR, UINT); 4338 + BOOL UpdateICMRegKeyW(DWORD, DWORD, LPWSTR, UINT); 4339 + BOOL WidenPath(HDC); 4340 + BOOL wglCopyContext(HGLRC, HGLRC, UINT); 4341 + HGLRC wglCreateContext(HDC); 4342 + HGLRC wglCreateLayerContext(HDC, int); 4343 + BOOL wglDeleteContext(HGLRC); 4344 + BOOL wglDescribeLayerPlane(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR); 4345 + HGLRC wglGetCurrentContext(); 4346 + HDC wglGetCurrentDC(); 4347 + int wglGetLayerPaletteEntries(HDC, int, int, int, COLORREF*); 4348 + PROC wglGetProcAddress(LPCSTR); 4349 + BOOL wglMakeCurrent(HDC, HGLRC); 4350 + BOOL wglRealizeLayerPalette(HDC, int, BOOL); 4351 + int wglSetLayerPaletteEntries(HDC, int, int, int, const(COLORREF)*); 4352 + BOOL wglShareLists(HGLRC, HGLRC); 4353 + BOOL wglSwapLayerBuffers(HDC, UINT); 4354 + BOOL wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD); 4355 + BOOL wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD); 4356 + BOOL wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT); 4357 + BOOL wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT); 4358 4358 4359 -COLORREF PALETTEINDEX(WORD i) 4360 -{ 4361 - return 0x01000000 | cast(COLORREF) i; 4362 -} 4363 - 4364 - 4365 -COLORREF PALETTERGB(BYTE r, BYTE g, BYTE b) 4366 -{ 4367 - return 0x02000000 | RGB(r, g, b); 4359 + static if (_WIN32_WINNT >= 0x500) { 4360 + alias WGLSWAP* PWGLSWAP; 4361 + struct WGLSWAP { 4362 + HDC hdc; 4363 + UINT uiFlags; 4364 + } 4365 + const WGL_SWAPMULTIPLE_MAX = 16; 4366 + DWORD wglSwapMultipleBuffers(UINT, WGLSWAP*); 4368 4367 } 4369 4368 4370 - 4371 -extern (Windows) { 4372 -int AbortDoc(HDC); 4369 +static if (_WIN32_WINNT >= 0x500) { 4370 + BOOL AlphaBlend(HDC, int, int, int, int, HDC, int, int, int, int, BLENDFUNCTION); 4371 + BOOL GradientFill(HDC, PTRIVERTEX, ULONG, PVOID, ULONG, ULONG); 4372 + BOOL TransparentBlt(HDC, int, int, int, int, HDC, int, int, int, int, UINT); 4373 + } 4373 4374 4374 -BOOL AbortPath(HDC); 4375 + static if (_WIN32_WINNT >= 0x500) { 4376 + COLORREF SetDCBrushColor(HDC, COLORREF); 4377 + COLORREF SetDCPenColor(HDC, COLORREF); 4378 + HANDLE AddFontMemResourceEx(PVOID, DWORD, PVOID, DWORD*); 4379 + int AddFontResourceExA(LPCSTR, DWORD, PVOID); 4380 + int AddFontResourceExW(LPCWSTR, DWORD, PVOID); 4381 + BOOL RemoveFontMemResourceEx(HANDLE); 4382 + BOOL RemoveFontResourceExA(LPCSTR, DWORD, PVOID); 4383 + BOOL RemoveFontResourceExW(LPCWSTR, DWORD, PVOID); 4384 + DWORD GetFontUnicodeRanges(HDC, LPGLYPHSET); 4385 + DWORD GetGlyphIndicesA(HDC, LPCSTR, int, LPWORD, DWORD); 4386 + DWORD GetGlyphIndicesW(HDC, LPCWSTR, int, LPWORD, DWORD); 4387 + BOOL GetTextExtentPointI(HDC, LPWORD, int, LPSIZE); 4388 + BOOL GetTextExtentExPointI(HDC, LPWORD, int, int, LPINT, LPINT, LPSIZE); 4389 + BOOL GetCharWidthI(HDC, UINT, UINT, LPWORD, LPINT); 4390 + BOOL GetCharABCWidthsI(HDC, UINT, UINT, LPWORD, LPABC); 4391 + } 4392 +} // extern (Windows) 4375 4393 4376 -int AddFontResourceA(LPCSTR); 4377 - 4378 -int AddFontResourceW(LPCWSTR); 4394 +version(Unicode) { 4395 + alias WCHAR BCHAR; 4396 + alias DOCINFOW DOCINFO; 4397 + alias LOGFONTW LOGFONT; 4379 4398 4380 -BOOL AngleArc(HDC, int, int, DWORD, FLOAT, FLOAT); 4381 - 4382 -BOOL AnimatePalette(HPALETTE, UINT, UINT, CPtr!(PALETTEENTRY)); 4383 - 4384 -BOOL Arc(HDC, int, int, int, int, int, int, int, int); 4399 + alias TEXTMETRICW TEXTMETRIC; 4400 + alias NPTEXTMETRICW NPTEXTMETRIC; 4401 + alias ICMENUMPROCW ICMENUMPROC; 4402 + alias FONTENUMPROCW FONTENUMPROC; 4403 + alias DEVMODEW DEVMODE; 4385 4404 4386 -BOOL ArcTo(HDC, int, int, int, int, int, int, int, int); 4387 - 4388 -BOOL BeginPath(HDC); 4389 - 4390 -BOOL BitBlt(HDC, int, int, int, int, HDC, int, int, DWORD); 4405 + alias EXTLOGFONTW EXTLOGFONT; 4406 + alias GCP_RESULTSW GCP_RESULTS; 4407 + alias OUTLINETEXTMETRICW OUTLINETEXTMETRIC; 4408 + alias POLYTEXTW POLYTEXT; 4409 + alias LOGCOLORSPACEW LOGCOLORSPACE; 4410 + alias NEWTEXTMETRICW NEWTEXTMETRIC; 4411 + alias NEWTEXTMETRICEXW NEWTEXTMETRICEX; 4412 + alias ENUMLOGFONTW ENUMLOGFONT; 4413 + alias ENUMLOGFONTEXW ENUMLOGFONTEX; 4414 + alias DISPLAY_DEVICEW DISPLAY_DEVICE; 4415 + alias AddFontResourceW AddFontResource; 4391 4416 4392 -BOOL CancelDC(HDC); 4393 - 4394 -BOOL CheckColorsInGamut(HDC, PVOID, PVOID, DWORD); 4395 - 4396 -BOOL Chord(HDC, int, int, int, int, int, int, int, int); 4397 - 4398 -int ChoosePixelFormat(HDC, CPtr!(PIXELFORMATDESCRIPTOR)); 4399 - 4400 -HENHMETAFILE CloseEnhMetaFile(HDC); 4401 - 4402 -BOOL CloseFigure(HDC); 4403 - 4404 -HMETAFILE CloseMetaFile(HDC); 4405 - 4406 -BOOL ColorMatchToTarget(HDC, HDC, DWORD); 4407 - 4408 -BOOL ColorCorrectPalette(HDC, HPALETTE, DWORD, DWORD); 4409 - 4410 -int CombineRgn(HRGN, HRGN, HRGN, int); 4417 + alias CopyEnhMetaFileW CopyEnhMetaFile; 4418 + alias CopyMetaFileW CopyMetaFile; 4419 + alias CreateColorSpaceW CreateColorSpace; 4420 + alias CreateDCW CreateDC; 4421 + alias CreateEnhMetaFileW CreateEnhMetaFile; 4422 + alias CreateFontW CreateFont; 4423 + alias CreateFontIndirectW CreateFontIndirect; 4424 + alias CreateICW CreateIC; 4425 + alias CreateMetaFileW CreateMetaFile; 4426 + alias CreateScalableFontResourceW CreateScalableFontResource; 4427 + alias DeviceCapabilitiesW DeviceCapabilities; 4428 + alias EnumFontFamiliesW EnumFontFamilies; 4429 + alias EnumFontFamiliesExW EnumFontFamiliesEx; 4430 + alias EnumFontsW EnumFonts; 4431 + alias EnumICMProfilesW EnumICMProfiles; 4432 + alias ExtTextOutW ExtTextOut; 4433 + alias GetCharABCWidthsFloatW GetCharABCWidthsFloat; 4434 + alias GetCharABCWidthsW GetCharABCWidths; 4435 + alias GetCharacterPlacementW GetCharacterPlacement; 4436 + alias GetCharWidth32W GetCharWidth32; 4437 + alias GetCharWidthFloatW GetCharWidthFloat; 4438 + alias GetCharWidthW GetCharWidth; 4439 + alias GetEnhMetaFileW GetEnhMetaFile; 4440 + alias GetEnhMetaFileDescriptionW GetEnhMetaFileDescription; 4441 + alias GetGlyphOutlineW GetGlyphOutline; 4442 + alias GetICMProfileW GetICMProfile; 4443 + alias GetKerningPairsW GetKerningPairs; 4444 + alias GetLogColorSpaceW GetLogColorSpace; 4445 + alias GetMetaFileW GetMetaFile; 4446 + alias GetObjectW GetObject; 4447 + alias GetOutlineTextMetricsW GetOutlineTextMetrics; 4448 + alias GetTextExtentPointW GetTextExtentPoint; 4449 + alias GetTextExtentExPointW GetTextExtentExPoint; 4450 + alias GetTextExtentPoint32W GetTextExtentPoint32; 4451 + alias GetTextFaceW GetTextFace; 4452 + alias GetTextMetricsW GetTextMetrics; 4453 + alias PolyTextOutW PolyTextOut; 4454 + alias RemoveFontResourceW RemoveFontResource; 4411 4455 4412 -BOOL CombineTransform(LPXFORM, CPtr!(XFORM), CPtr!(XFORM)); 4413 - 4414 -HENHMETAFILE CopyEnhMetaFileA(HENHMETAFILE, LPCSTR); 4415 - 4416 -HENHMETAFILE CopyEnhMetaFileW(HENHMETAFILE, LPCWSTR); 4417 - 4418 -HMETAFILE CopyMetaFileA(HMETAFILE, LPCSTR); 4419 - 4420 -HMETAFILE CopyMetaFileW(HMETAFILE, LPCWSTR); 4421 - 4422 -HBITMAP CreateBitmap(int, int, UINT, UINT, PCVOID); 4423 - 4424 -HBITMAP CreateBitmapIndirect(CPtr!(BITMAP)); 4425 - 4426 -HBRUSH CreateBrushIndirect(CPtr!(LOGBRUSH)); 4427 - 4428 -HCOLORSPACE CreateColorSpaceA(LPLOGCOLORSPACEA); 4429 - 4430 -HCOLORSPACE CreateColorSpaceW(LPLOGCOLORSPACEW); 4431 - 4432 -HBITMAP CreateCompatibleBitmap(HDC, int, int); 4433 - 4434 -HDC CreateCompatibleDC(HDC); 4435 - 4436 -HDC CreateDCA(LPCSTR, LPCSTR, LPCSTR, CPtr!(DEVMODEA)); 4437 - 4438 -HDC CreateDCW(LPCWSTR, LPCWSTR, LPCWSTR, CPtr!(DEVMODEW)); 4439 - 4440 -HBITMAP CreateDIBitmap(HDC, CPtr!(BITMAPINFOHEADER), DWORD, PCVOID, CPtr!(BITMAPINFO), UINT); 4441 - 4442 -HBRUSH CreateDIBPatternBrush(HGLOBAL, UINT); 4443 - 4444 -HBRUSH CreateDIBPatternBrushPt(PCVOID, UINT); 4445 - 4446 -HBITMAP CreateDIBSection(HDC, CPtr!(BITMAPINFO), UINT, void**, HANDLE, DWORD); 4456 + alias ResetDCW ResetDC; 4457 + alias SetICMProfileW SetICMProfile; 4458 + alias StartDocW StartDoc; 4459 + alias TextOutW TextOut; 4460 + alias UpdateICMRegKeyW UpdateICMRegKey; 4461 + alias wglUseFontBitmapsW wglUseFontBitmaps; 4462 + alias wglUseFontOutlinesW wglUseFontOutlines; 4463 + static if (_WIN32_WINNT >= 0x500) { 4464 + alias ENUMLOGFONTEXDVW ENUMLOGFONTEXDV; 4465 + alias PENUMLOGFONTEXDVW PENUMLOGFONTEXDV; 4466 + alias LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV; 4467 + alias AddFontResourceExW AddFontResourceEx; 4468 + alias RemoveFontResourceExW RemoveFontResourceEx; 4469 + alias GetGlyphIndicesW GetGlyphIndices; 4470 + } 4471 +} else { /* non-unicode build */ 4472 + alias BYTE BCHAR; 4473 + alias DOCINFOA DOCINFO; 4474 + alias LOGFONTA LOGFONT; 4475 + alias TEXTMETRICA TEXTMETRIC; 4476 + alias NPTEXTMETRICA NPTEXTMETRIC; 4477 + alias ICMENUMPROCA ICMENUMPROC; 4478 + alias FONTENUMPROCA FONTENUMPROC; 4479 + alias DEVMODEA DEVMODE; 4480 + alias EXTLOGFONTA EXTLOGFONT; 4481 + alias GCP_RESULTSA GCP_RESULTS; 4482 + alias OUTLINETEXTMETRICA OUTLINETEXTMETRIC; 4483 + alias POLYTEXTA POLYTEXT; 4484 + alias LOGCOLORSPACEA LOGCOLORSPACE; 4485 + alias NEWTEXTMETRICA NEWTEXTMETRIC; 4486 + alias NEWTEXTMETRICEXA NEWTEXTMETRICEX; 4487 + alias ENUMLOGFONTA ENUMLOGFONT; 4488 + alias ENUMLOGFONTEXA ENUMLOGFONTEX; 4489 + alias DISPLAY_DEVICEA DISPLAY_DEVICE; 4447 4490 4448 -HBITMAP CreateDiscardableBitmap(HDC, int, int); 4449 - 4450 -HRGN CreateEllipticRgn(int, int, int, int); 4451 - 4452 -HRGN CreateEllipticRgnIndirect(LPCRECT); 4453 - 4454 -HDC CreateEnhMetaFileA(HDC, LPCSTR, LPCRECT, LPCSTR); 4455 - 4456 -HDC CreateEnhMetaFileW(HDC, LPCWSTR, LPCRECT, LPCWSTR); 4457 - 4458 -HFONT CreateFontA(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCSTR); 4459 - 4460 -HFONT CreateFontW(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCWSTR); 4461 - 4462 -HFONT CreateFontIndirectA(CPtr!(LOGFONTA)); 4463 - 4464 -HFONT CreateFontIndirectW(CPtr!(LOGFONTW)); 4465 - 4466 -HPALETTE CreateHalftonePalette(HDC); 4467 - 4468 -HBRUSH CreateHatchBrush(int, COLORREF); 4469 - 4470 -HDC CreateICA(LPCSTR, LPCSTR, LPCSTR, CPtr!(DEVMODEA)); 4471 - 4472 -HDC CreateICW(LPCWSTR, LPCWSTR, LPCWSTR, CPtr!(DEVMODEW)); 4473 - 4474 -HDC CreateMetaFileA(LPCSTR); 4475 - 4476 -HDC CreateMetaFileW(LPCWSTR); 4477 - 4478 -HPALETTE CreatePalette(CPtr!(LOGPALETTE)); 4479 - 4480 -HBRUSH CreatePatternBrush(HBITMAP); 4481 - 4482 -HPEN CreatePen(int, int, COLORREF); 4483 - 4484 -HPEN CreatePenIndirect(CPtr!(LOGPEN)); 4485 - 4486 -HRGN CreatePolygonRgn(CPtr!(POINT), int, int); 4487 - 4488 -HRGN CreatePolyPolygonRgn(CPtr!(POINT), CPtr!(INT), int, int); 4489 - 4490 -HRGN CreateRectRgn(int, int, int, int); 4491 - 4492 -HRGN CreateRectRgnIndirect(LPCRECT); 4493 - 4494 -HRGN CreateRoundRectRgn(int, int, int, int, int, int); 4495 - 4496 -BOOL CreateScalableFontResourceA(DWORD, LPCSTR, LPCSTR, LPCSTR); 4497 - 4498 -BOOL CreateScalableFontResourceW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR); 4499 - 4500 -HBRUSH CreateSolidBrush(COLORREF); 4501 - 4502 -BOOL DeleteColorSpace(HCOLORSPACE); 4503 - 4504 -BOOL DeleteDC(HDC); 4505 - 4506 -BOOL DeleteEnhMetaFile(HENHMETAFILE); 4507 - 4508 -BOOL DeleteMetaFile(HMETAFILE); 4509 - 4510 -BOOL DeleteObject(HGDIOBJ); 4511 - 4512 -int DescribePixelFormat(HDC, int, UINT, LPPIXELFORMATDESCRIPTOR); 4513 - 4514 -DWORD DeviceCapabilitiesA(LPCSTR, LPCSTR, WORD, LPSTR, CPtr!(DEVMODEA)); 4515 - 4516 -DWORD DeviceCapabilitiesW(LPCWSTR, LPCWSTR, WORD, LPWSTR, CPtr!(DEVMODEW)); 4517 - 4518 -BOOL DPtoLP(HDC, LPPOINT, int); 4519 - 4520 -int DrawEscape(HDC, int, int, LPCSTR); 4521 - 4522 -BOOL Ellipse(HDC, int, int, int, int); 4523 - 4524 -int EndDoc(HDC); 4525 - 4526 -int EndPage(HDC); 4527 - 4528 -BOOL EndPath(HDC); 4529 - 4530 -BOOL EnumEnhMetaFile(HDC, HENHMETAFILE, ENHMFENUMPROC, PVOID, LPCRECT); 4531 - 4532 -int EnumFontFamiliesA(HDC, LPCSTR, FONTENUMPROCA, LPARAM); 4533 - 4534 -int EnumFontFamiliesW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM); 4535 - 4536 -int EnumFontFamiliesExA(HDC, PLOGFONTA, FONTENUMPROCA, LPARAM, DWORD); 4537 - 4538 -int EnumFontFamiliesExW(HDC, PLOGFONTW, FONTENUMPROCW, LPARAM, DWORD); 4539 - 4540 -int EnumFontsA(HDC, LPCSTR, FONTENUMPROCA, LPARAM); 4541 - 4542 -int EnumFontsW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM); 4543 - 4544 -int EnumICMProfilesA(HDC, ICMENUMPROCA, LPARAM); 4545 - 4546 -int EnumICMProfilesW(HDC, ICMENUMPROCW, LPARAM); 4547 - 4548 -BOOL EnumMetaFile(HDC, HMETAFILE, MFENUMPROC, LPARAM); 4549 - 4550 -int EnumObjects(HDC, int, GOBJENUMPROC, LPARAM); 4551 - 4552 -BOOL EqualRgn(HRGN, HRGN); 4553 - 4554 -int Escape(HDC, int, int, LPCSTR, PVOID); 4555 - 4556 -int ExcludeClipRect(HDC, int, int, int, int); 4557 - 4558 -int ExcludeUpdateRgn(HDC, HWND); 4559 - 4560 -HPEN ExtCreatePen(DWORD, DWORD, CPtr!(LOGBRUSH), DWORD, CPtr!(DWORD)); 4561 - 4562 -HRGN ExtCreateRegion(CPtr!(XFORM), DWORD, CPtr!(RGNDATA)); 4563 - 4564 -int ExtEscape(HDC, int, int, LPCSTR, int, LPSTR); 4565 - 4566 -BOOL ExtFloodFill(HDC, int, int, COLORREF, UINT); 4567 - 4568 -int ExtSelectClipRgn(HDC, HRGN, int); 4569 - 4570 -BOOL ExtTextOutA(HDC, int, int, UINT, LPCRECT, LPCSTR, UINT, CPtr!(INT)); 4571 - 4572 -BOOL ExtTextOutW(HDC, int, int, UINT, LPCRECT, LPCWSTR, UINT, CPtr!(INT)); 4573 - 4574 -BOOL FillPath(HDC); 4575 - 4576 -int FillRect(HDC, LPCRECT, HBRUSH); 4577 - 4578 -int FillRgn(HDC, HRGN, HBRUSH); 4579 - 4580 -BOOL FixBrushOrgEx(HDC, int, int, LPPOINT); 4581 - 4582 -BOOL FlattenPath(HDC); 4583 - 4584 -BOOL FloodFill(HDC, int, int, COLORREF); 4585 - 4586 -BOOL FrameRgn(HDC, HRGN, HBRUSH, int, int); 4587 - 4588 -BOOL GdiComment(HDC, UINT, CPtr!(BYTE)); 4589 - 4590 -BOOL GdiFlush(); 4591 - 4592 -DWORD GdiGetBatchLimit(); 4593 - 4594 -DWORD GdiSetBatchLimit(DWORD); 4595 - 4596 -int GetArcDirection(HDC); 4491 + alias AddFontResourceA AddFontResource; 4492 + alias CopyEnhMetaFileA CopyEnhMetaFile; 4493 + alias CopyMetaFileA CopyMetaFile; 4494 + alias CreateColorSpaceA CreateColorSpace; 4495 + alias CreateDCA CreateDC; 4496 + alias CreateEnhMetaFileA CreateEnhMetaFile; 4497 + alias CreateFontA CreateFont; 4498 + alias CreateFontIndirectA CreateFontIndirect; 4499 + alias CreateICA CreateIC; 4500 + alias CreateMetaFileA CreateMetaFile; 4501 + alias CreateScalableFontResourceA CreateScalableFontResource; 4502 + alias DeviceCapabilitiesA DeviceCapabilities; 4503 + alias EnumFontFamiliesA EnumFontFamilies; 4504 + alias EnumFontFamiliesExA EnumFontFamiliesEx; 4505 + alias EnumFontsA EnumFonts; 4506 + alias EnumICMProfilesA EnumICMProfiles; 4507 + alias ExtTextOutA ExtTextOut; 4508 + alias GetCharWidthFloatA GetCharWidthFloat; 4509 + alias GetCharWidthA GetCharWidth; 4510 + alias GetCharacterPlacementA GetCharacterPlacement; 4511 + alias GetCharABCWidthsA GetCharABCWidths; 4512 + alias GetCharABCWidthsFloatA GetCharABCWidthsFloat; 4513 + alias GetCharWidth32A GetCharWidth32; 4514 + alias GetEnhMetaFileA GetEnhMetaFile; 4515 + alias GetEnhMetaFileDescriptionA GetEnhMetaFileDescription; 4516 + alias GetGlyphOutlineA GetGlyphOutline; 4517 + alias GetICMProfileA GetICMProfile; 4518 + alias GetKerningPairsA GetKerningPairs; 4519 + alias GetLogColorSpaceA GetLogColorSpace; 4520 + alias GetMetaFileA GetMetaFile; 4521 + alias GetObjectA GetObject; 4522 + alias GetOutlineTextMetricsA GetOutlineTextMetrics; 4523 + alias GetTextExtentPointA GetTextExtentPoint; 4524 + alias GetTextExtentExPointA GetTextExtentExPoint; 4525 + alias GetTextExtentPoint32A GetTextExtentPoint32; 4526 + alias GetTextFaceA GetTextFace; 4527 + alias GetTextMetricsA GetTextMetrics; 4528 + alias PolyTextOutA PolyTextOut; 4529 + alias RemoveFontResourceA RemoveFontResource; 4530 + alias ResetDCA ResetDC; 4531 + alias SetICMProfileA SetICMProfile; 4532 + alias StartDocA StartDoc; 4533 + alias TextOutA TextOut; 4534 + alias UpdateICMRegKeyA UpdateICMRegKey; 4535 + alias wglUseFontBitmapsA wglUseFontBitmaps; 4536 + alias wglUseFontOutlinesA wglUseFontOutlines; 4537 + static if (_WIN32_WINNT >= 0x500) { 4538 + alias ENUMLOGFONTEXDVA ENUMLOGFONTEXDV; 4539 + alias PENUMLOGFONTEXDVA PENUMLOGFONTEXDV; 4540 + alias LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV; 4541 + alias AddFontResourceExA AddFontResourceEx; 4542 + alias RemoveFontResourceExA RemoveFontResourceEx; 4543 + alias GetGlyphIndicesA GetGlyphIndices; 4544 + } 4545 +} 4597 4546 4598 -BOOL GetAspectRatioFilterEx(HDC, LPSIZE); 4599 - 4600 -LONG GetBitmapBits(HBITMAP, LONG, PVOID); 4601 - 4602 -BOOL GetBitmapDimensionEx(HBITMAP, LPSIZE); 4603 - 4604 -COLORREF GetBkColor(HDC); 4605 - 4606 -int GetBkMode(HDC); 4607 - 4608 -UINT GetBoundsRect(HDC, LPRECT, UINT); 4609 - 4610 -BOOL GetBrushOrgEx(HDC, LPPOINT); 4611 - 4612 -BOOL GetCharABCWidthsA(HDC, UINT, UINT, LPABC); 4613 - 4614 -BOOL GetCharABCWidthsW(HDC, UINT, UINT, LPABC); 4615 - 4616 -BOOL GetCharABCWidthsFloatA(HDC, UINT, UINT, LPABCFLOAT); 4617 - 4618 -BOOL GetCharABCWidthsFloatW(HDC, UINT, UINT, LPABCFLOAT); 4619 - 4620 -DWORD GetCharacterPlacementA(HDC, LPCSTR, int, int, LPGCP_RESULTSA, DWORD); 4621 - 4622 -DWORD GetCharacterPlacementW(HDC, LPCWSTR, int, int, LPGCP_RESULTSW, DWORD); 4623 - 4624 -BOOL GetCharWidth32A(HDC, UINT, UINT, LPINT); 4625 - 4626 -BOOL GetCharWidth32W(HDC, UINT, UINT, LPINT); 4627 - 4628 -BOOL GetCharWidthA(HDC, UINT, UINT, LPINT); 4629 - 4630 -BOOL GetCharWidthW(HDC, UINT, UINT, LPINT); 4631 - 4632 -BOOL GetCharWidthFloatA(HDC, UINT, UINT, PFLOAT); 4633 - 4634 -BOOL GetCharWidthFloatW(HDC, UINT, UINT, PFLOAT); 4635 - 4636 -int GetClipBox(HDC, LPRECT); 4637 - 4638 -int GetClipRgn(HDC, HRGN); 4639 - 4640 -BOOL GetColorAdjustment(HDC, LPCOLORADJUSTMENT); 4641 - 4642 -HANDLE GetColorSpace(HDC); 4643 - 4644 -HGDIOBJ GetCurrentObject(HDC, UINT); 4645 - 4646 -BOOL GetCurrentPositionEx(HDC, LPPOINT); 4647 - 4648 -HCURSOR GetCursor(); 4649 - 4650 -BOOL GetDCOrgEx(HDC, LPPOINT); 4651 - 4652 -int GetDeviceCaps(HDC, int); 4653 - 4654 -BOOL GetDeviceGammaRamp(HDC, PVOID); 4655 - 4656 -UINT GetDIBColorTable(HDC, UINT, UINT, RGBQUAD*); 4657 - 4658 -int GetDIBits(HDC, HBITMAP, UINT, UINT, PVOID, LPBITMAPINFO, UINT); 4659 - 4660 -HENHMETAFILE GetEnhMetaFileA(LPCSTR); 4661 - 4662 -HENHMETAFILE GetEnhMetaFileW(LPCWSTR); 4663 - 4664 -UINT GetEnhMetaFileBits(HENHMETAFILE, UINT, LPBYTE); 4665 - 4666 -UINT GetEnhMetaFileDescriptionA(HENHMETAFILE, UINT, LPSTR); 4667 - 4668 -UINT GetEnhMetaFileDescriptionW(HENHMETAFILE, UINT, LPWSTR); 4669 - 4670 -UINT GetEnhMetaFileHeader(HENHMETAFILE, UINT, LPENHMETAHEADER); 4671 - 4672 -UINT GetEnhMetaFilePaletteEntries(HENHMETAFILE, UINT, LPPALETTEENTRY); 4673 - 4674 -UINT GetEnhMetaFilePixelFormat(HENHMETAFILE, DWORD, CPtr!(PIXELFORMATDESCRIPTOR)); 4675 - 4676 -DWORD GetFontData(HDC, DWORD, DWORD, PVOID, DWORD); 4677 - 4678 -DWORD GetFontLanguageInfo(HDC); 4679 - 4680 -DWORD GetGlyphOutlineA(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, PVOID, CPtr!(MAT2)); 4681 - 4682 -DWORD GetGlyphOutlineW(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, PVOID, CPtr!(MAT2)); 4683 - 4684 -int GetGraphicsMode(HDC); 4685 - 4686 -BOOL GetICMProfileA(HDC, DWORD, LPSTR); 4687 - 4688 -BOOL GetICMProfileW(HDC, DWORD, LPWSTR); 4689 - 4690 -DWORD GetKerningPairsA(HDC, DWORD, LPKERNINGPAIR); 4691 - 4692 -DWORD GetKerningPairsW(HDC, DWORD, LPKERNINGPAIR); 4693 - 4694 -BOOL GetLogColorSpaceA(HCOLORSPACE, LPLOGCOLORSPACEA, DWORD); 4695 - 4696 -BOOL GetLogColorSpaceW(HCOLORSPACE, LPLOGCOLORSPACEW, DWORD); 4697 - 4698 -int GetMapMode(HDC); 4699 - 4700 -HMETAFILE GetMetaFileA(LPCSTR); 4701 - 4702 -HMETAFILE GetMetaFileW(LPCWSTR); 4703 - 4704 -UINT GetMetaFileBitsEx(HMETAFILE, UINT, PVOID); 4705 - 4706 -int GetMetaRgn(HDC, HRGN); 4707 - 4708 -BOOL GetMiterLimit(HDC, PFLOAT); 4709 - 4710 -COLORREF GetNearestColor(HDC, COLORREF); 4711 - 4712 -UINT GetNearestPaletteIndex(HPALETTE, COLORREF); 4713 - 4714 -int GetObjectA(HGDIOBJ, int, PVOID); 4715 - 4716 -int GetObjectW(HGDIOBJ, int, PVOID); 4717 - 4718 -DWORD GetObjectType(HGDIOBJ); 4719 - 4720 -UINT GetOutlineTextMetricsA(HDC, UINT, LPOUTLINETEXTMETRICA); 4721 - 4722 -UINT GetOutlineTextMetricsW(HDC, UINT, LPOUTLINETEXTMETRICW); 4723 - 4724 -UINT GetPaletteEntries(HPALETTE, UINT, UINT, LPPALETTEENTRY); 4725 - 4726 -int GetPath(HDC, LPPOINT, PBYTE, int); 4727 - 4728 -COLORREF GetPixel(HDC, int, int); 4729 - 4730 -int GetPixelFormat(HDC); 4731 - 4732 -int GetPolyFillMode(HDC); 4733 - 4734 -BOOL GetRasterizerCaps(LPRASTERIZER_STATUS, UINT); 4735 - 4736 -int GetRandomRgn(HDC, HRGN, INT); 4737 - 4738 -DWORD GetRegionData(HRGN, DWORD, LPRGNDATA); 4739 - 4740 -int GetRgnBox(HRGN, LPRECT); 4741 - 4742 -int GetROP2(HDC); 4743 - 4744 -HGDIOBJ GetStockObject(int); 4745 - 4746 -int GetStretchBltMode(HDC); 4747 - 4748 -UINT GetSystemPaletteEntries(HDC, UINT, UINT, LPPALETTEENTRY); 4749 - 4750 -UINT GetSystemPaletteUse(HDC); 4751 - 4752 -UINT GetTextAlign(HDC); 4753 - 4754 -int GetTextCharacterExtra(HDC); 4755 - 4756 -int GetTextCharset(HDC); 4757 - 4758 -int GetTextCharsetInfo(HDC, LPFONTSIGNATURE, DWORD); 4759 - 4760 -COLORREF GetTextColor(HDC); 4761 - 4762 -BOOL GetTextExtentExPointA(HDC, LPCSTR, int, int, LPINT, LPINT, LPSIZE); 4763 - 4764 -BOOL GetTextExtentExPointW(HDC, LPCWSTR, int, int, LPINT, LPINT, LPSIZE); 4765 - 4766 -BOOL GetTextExtentPointA(HDC, LPCSTR, int, LPSIZE); 4767 - 4768 -BOOL GetTextExtentPointW(HDC, LPCWSTR, int, LPSIZE); 4769 - 4770 -BOOL GetTextExtentPoint32A(HDC, LPCSTR, int, LPSIZE); 4771 - 4772 -BOOL GetTextExtentPoint32W(HDC, LPCWSTR, int, LPSIZE); 4773 - 4774 -int GetTextFaceA(HDC, int, LPSTR); 4775 - 4776 -int GetTextFaceW(HDC, int, LPWSTR); 4777 - 4778 -BOOL GetTextMetricsA(HDC, LPTEXTMETRICA); 4779 - 4780 -BOOL GetTextMetricsW(HDC, LPTEXTMETRICW); 4781 - 4782 -BOOL GetViewportExtEx(HDC, LPSIZE); 4783 - 4784 -BOOL GetViewportOrgEx(HDC, LPPOINT); 4785 - 4786 -BOOL GetWindowExtEx(HDC, LPSIZE); 4787 - 4788 -BOOL GetWindowOrgEx(HDC, LPPOINT); 4789 - 4790 -UINT GetWinMetaFileBits(HENHMETAFILE, UINT, LPBYTE, INT, HDC); 4791 - 4792 -BOOL GetWorldTransform(HDC, LPXFORM); 4793 - 4794 -int IntersectClipRect(HDC, int, int, int, int); 4795 - 4796 -BOOL InvertRgn(HDC, HRGN); 4797 - 4798 -BOOL LineDDA(int, int, int, int, LINEDDAPROC, LPARAM); 4799 - 4800 -BOOL LineTo(HDC, int, int); 4801 - 4802 -BOOL LPtoDP(HDC, LPPOINT, int); 4803 - 4804 -BOOL MaskBlt(HDC, int, int, int, int, HDC, int, int, HBITMAP, int, int, DWORD); 4805 - 4806 -BOOL ModifyWorldTransform(HDC, CPtr!(XFORM), DWORD); 4807 - 4808 -BOOL MoveToEx(HDC, int, int, LPPOINT); 4809 - 4810 -int OffsetClipRgn(HDC, int, int); 4811 - 4812 -int OffsetRgn(HRGN, int, int); 4813 - 4814 -BOOL OffsetViewportOrgEx(HDC, int, int, LPPOINT); 4815 - 4816 -BOOL OffsetWindowOrgEx(HDC, int, int, LPPOINT); 4817 - 4818 -BOOL PaintRgn(HDC, HRGN); 4819 - 4820 -BOOL PatBlt(HDC, int, int, int, int, DWORD); 4821 - 4822 -HRGN PathToRegion(HDC); 4823 - 4824 -BOOL Pie(HDC, int, int, int, int, int, int, int, int); 4825 - 4826 -BOOL PlayEnhMetaFile(HDC, HENHMETAFILE, LPCRECT); 4827 - 4828 -BOOL PlayEnhMetaFileRecord(HDC, LPHANDLETABLE, CPtr!(ENHMETARECORD), UINT); 4829 - 4830 -BOOL PlayMetaFile(HDC, HMETAFILE); 4831 - 4832 -BOOL PlayMetaFileRecord(HDC, LPHANDLETABLE, LPMETARECORD, UINT); 4833 - 4834 -BOOL PlgBlt(HDC, CPtr!(POINT), HDC, int, int, int, int, HBITMAP, int, int); 4835 - 4836 -BOOL PolyBezier(HDC, CPtr!(POINT), DWORD); 4837 - 4838 -BOOL PolyBezierTo(HDC, CPtr!(POINT), DWORD); 4839 - 4840 -BOOL PolyDraw(HDC, CPtr!(POINT), CPtr!(BYTE), int); 4841 - 4842 -BOOL Polygon(HDC, CPtr!(POINT), int); 4843 - 4844 -BOOL Polyline(HDC, CPtr!(POINT), int); 4845 - 4846 -BOOL PolylineTo(HDC, CPtr!(POINT), DWORD); 4847 - 4848 -BOOL PolyPolygon(HDC, CPtr!(POINT), CPtr!(INT), int); 4849 - 4850 -BOOL PolyPolyline(HDC, CPtr!(POINT), CPtr!(DWORD), DWORD); 4851 - 4852 -BOOL PolyTextOutA(HDC, CPtr!(POLYTEXTA), int); 4853 - 4854 -BOOL PolyTextOutW(HDC, CPtr!(POLYTEXTW), int); 4855 - 4856 -BOOL PtInRegion(HRGN, int, int); 4857 - 4858 -BOOL PtVisible(HDC, int, int); 4859 - 4860 -UINT RealizePalette(HDC); 4861 - 4862 -BOOL Rectangle(HDC, int, int, int, int); 4863 - 4864 -BOOL RectInRegion(HRGN, LPCRECT); 4865 - 4866 -BOOL RectVisible(HDC, LPCRECT); 4867 - 4868 -BOOL RemoveFontResourceA(LPCSTR); 4869 - 4870 -BOOL RemoveFontResourceW(LPCWSTR); 4871 - 4872 -HDC ResetDCA(HDC, CPtr!(DEVMODEA)); 4873 - 4874 -HDC ResetDCW(HDC, CPtr!(DEVMODEW)); 4875 - 4876 -BOOL ResizePalette(HPALETTE, UINT); 4877 - 4878 -BOOL RestoreDC(HDC, int); 4879 - 4880 -BOOL RoundRect(HDC, int, int, int, int, int, int); 4881 - 4882 -int SaveDC(HDC); 4883 - 4884 -BOOL ScaleViewportExtEx(HDC, int, int, int, int, LPSIZE); 4885 - 4886 -BOOL ScaleWindowExtEx(HDC, int, int, int, int, LPSIZE); 4887 - 4888 -BOOL SelectClipPath(HDC, int); 4889 - 4890 -int SelectClipRgn(HDC, HRGN); 4891 - 4892 -HGDIOBJ SelectObject(HDC, HGDIOBJ); 4893 - 4894 -HPALETTE SelectPalette(HDC, HPALETTE, BOOL); 4895 - 4896 -int SetAbortProc(HDC, ABORTPROC); 4897 - 4898 -int SetArcDirection(HDC, int); 4899 - 4900 -LONG SetBitmapBits(HBITMAP, DWORD, PCVOID); 4901 - 4902 -BOOL SetBitmapDimensionEx(HBITMAP, int, int, LPSIZE); 4903 - 4904 -COLORREF SetBkColor(HDC, COLORREF); 4905 - 4906 -int SetBkMode(HDC, int); 4907 - 4908 -UINT SetBoundsRect(HDC, LPCRECT, UINT); 4909 - 4910 -BOOL SetBrushOrgEx(HDC, int, int, LPPOINT); 4911 - 4912 -BOOL SetColorAdjustment(HDC, CPtr!(COLORADJUSTMENT)); 4913 - 4914 -BOOL SetColorSpace(HDC, HCOLORSPACE); 4915 - 4916 -BOOL SetDeviceGammaRamp(HDC, PVOID); 4917 - 4918 -UINT SetDIBColorTable(HDC, UINT, UINT, CPtr!(RGBQUAD)); 4919 - 4920 -int SetDIBits(HDC, HBITMAP, UINT, UINT, PCVOID, CPtr!(BITMAPINFO), UINT); 4921 - 4922 -int SetDIBitsToDevice(HDC, int, int, DWORD, DWORD, int, int, UINT, UINT, PCVOID, CPtr!(BITMAPINFO), UINT); 4923 - 4924 -HENHMETAFILE SetEnhMetaFileBits(UINT, CPtr!(BYTE)); 4925 - 4926 -int SetGraphicsMode(HDC, int); 4927 - 4928 -int SetICMMode(HDC, int); 4929 - 4930 -BOOL SetICMProfileA(HDC, LPSTR); 4931 - 4932 -BOOL SetICMProfileW(HDC, LPWSTR); 4933 - 4934 -int SetMapMode(HDC, int); 4935 - 4936 -static 4937 - 4938 -if (WINVER >= 0x0500) 4939 -{ 4940 - DWORD SetLayout(HDC hdc, DWORD l); 4941 - 4942 - DWORD GetLayout(HDC hdc); 4943 -} 4944 - 4945 -DWORD SetMapperFlags(HDC, DWORD); 4946 - 4947 -HMETAFILE SetMetaFileBitsEx(UINT, CPtr!(BYTE)); 4948 - 4949 -int SetMetaRgn(HDC); 4950 - 4951 -BOOL SetMiterLimit(HDC, FLOAT, PFLOAT); 4952 - 4953 -UINT SetPaletteEntries(HPALETTE, UINT, UINT, CPtr!(PALETTEENTRY)); 4954 - 4955 -COLORREF SetPixel(HDC, int, int, COLORREF); 4956 - 4957 -BOOL SetPixelFormat(HDC, int, CPtr!(PIXELFORMATDESCRIPTOR)); 4958 - 4959 -BOOL SetPixelV(HDC, int, int, COLORREF); 4960 - 4961 -int SetPolyFillMode(HDC, int); 4962 - 4963 -BOOL SetRectRgn(HRGN, int, int, int, int); 4964 - 4965 -int SetROP2(HDC, int); 4966 - 4967 -int SetStretchBltMode(HDC, int); 4968 - 4969 -UINT SetSystemPaletteUse(HDC, UINT); 4970 - 4971 -UINT SetTextAlign(HDC, UINT); 4972 - 4973 -int SetTextCharacterExtra(HDC, int); 4974 - 4975 -COLORREF SetTextColor(HDC, COLORREF); 4976 - 4977 -BOOL SetTextJustification(HDC, int, int); 4978 - 4979 -BOOL SetViewportExtEx(HDC, int, int, LPSIZE); 4980 - 4981 -BOOL SetViewportOrgEx(HDC, int, int, LPPOINT); 4982 - 4983 -BOOL SetWindowExtEx(HDC, int, int, LPSIZE); 4984 - 4985 -BOOL SetWindowOrgEx(HDC, int, int, LPPOINT); 4986 - 4987 -HENHMETAFILE SetWinMetaFileBits(UINT, CPtr!(BYTE), HDC, CPtr!(METAFILEPICT)); 4988 - 4989 -BOOL SetWorldTransform(HDC, CPtr!(XFORM)); 4990 - 4991 -int StartDocA(HDC, CPtr!(DOCINFOA)); 4992 - 4993 -int StartDocW(HDC, CPtr!(DOCINFOW)); 4994 - 4995 -int StartPage(HDC); 4996 - 4997 -BOOL StretchBlt(HDC, int, int, int, int, HDC, int, int, int, int, DWORD); 4998 - 4999 -int StretchDIBits(HDC, int, int, int, int, int, int, int, int, CPtr!(VOID), CPtr!(BITMAPINFO), UINT, DWORD); 5000 - 5001 -BOOL StrokeAndFillPath(HDC); 5002 - 5003 -BOOL StrokePath(HDC); 5004 - 5005 -BOOL SwapBuffers(HDC); 5006 - 5007 -BOOL TextOutA(HDC, int, int, LPCSTR, int); 5008 - 5009 -BOOL TextOutW(HDC, int, int, LPCWSTR, int); 5010 - 5011 -BOOL TranslateCharsetInfo(PDWORD, LPCHARSETINFO, DWORD); 5012 - 5013 -BOOL UnrealizeObject(HGDIOBJ); 5014 - 5015 -BOOL UpdateColors(HDC); 5016 - 5017 -BOOL UpdateICMRegKeyA(DWORD, DWORD, LPSTR, UINT); 5018 - 5019 -BOOL UpdateICMRegKeyW(DWORD, DWORD, LPWSTR, UINT); 5020 - 5021 -BOOL WidenPath(HDC); 5022 - 5023 -BOOL wglCopyContext(HGLRC, HGLRC, UINT); 5024 - 5025 -HGLRC wglCreateContext(HDC); 5026 - 5027 -HGLRC wglCreateLayerContext(HDC, int); 5028 - 5029 -BOOL wglDeleteContext(HGLRC); 5030 - 5031 -BOOL wglDescribeLayerPlane(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR); 5032 - 5033 -HGLRC wglGetCurrentContext(); 5034 - 5035 -HDC wglGetCurrentDC(); 5036 - 5037 -int wglGetLayerPaletteEntries(HDC, int, int, int, COLORREF*); 5038 - 5039 -PROC wglGetProcAddress(LPCSTR); 5040 - 5041 -BOOL wglMakeCurrent(HDC, HGLRC); 5042 - 5043 -BOOL wglRealizeLayerPalette(HDC, int, BOOL); 5044 - 5045 -int wglSetLayerPaletteEntries(HDC, int, int, int, CPtr!(COLORREF)); 5046 - 5047 -BOOL wglShareLists(HGLRC, HGLRC); 5048 - 5049 -BOOL wglSwapLayerBuffers(HDC, UINT); 5050 - 5051 -BOOL wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD); 5052 - 5053 -BOOL wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD); 5054 - 5055 -BOOL wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT); 5056 - 5057 -BOOL wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT); 5058 - 5059 -static 5060 - 5061 -if (WINVER >= 0x0500) 5062 -{ 5063 - alias WGLSWAP*PWGLSWAP; 5064 - struct WGLSWAP 5065 - { 5066 - HDC hdc; 5067 - UINT uiFlags; 5068 - } 5069 - const WGL_SWAPMULTIPLE_MAX = 16; 5070 - DWORD wglSwapMultipleBuffers(UINT, WGLSWAP*); 5071 -} 5072 - 5073 -static 5074 - 5075 -if (WINVER >= 0x0500) 5076 -{ 5077 - BOOL GdiAlphaBlend(HDC, int, int, int, int, HDC, int, int, int, int, BLENDFUNCTION); 5078 - 5079 - BOOL GradientFill(HDC, PTRIVERTEX, ULONG, PVOID, ULONG, ULONG); 5080 - 5081 - BOOL TransparentBlt(HDC, int, int, int, int, HDC, int, int, int, int, UINT); 5082 -} 5083 - 5084 -static 5085 - 5086 -if (_WIN32_WINNT >= 0x0500) 5087 -{ 5088 - COLORREF SetDCBrushColor(HDC, COLORREF); 5089 - 5090 - COLORREF SetDCPenColor(HDC, COLORREF); 5091 - 5092 - HANDLE AddFontMemResourceEx(PVOID, DWORD, PVOID, DWORD*); 5093 - 5094 - int AddFontResourceExA(LPCSTR, DWORD, PVOID); 5095 - 5096 - int AddFontResourceExW(LPCWSTR, DWORD, PVOID); 5097 - 5098 - BOOL RemoveFontMemResourceEx(HANDLE); 5099 - 5100 - BOOL RemoveFontResourceExA(LPCSTR, DWORD, PVOID); 5101 - 5102 - BOOL RemoveFontResourceExW(LPCWSTR, DWORD, PVOID); 5103 - 5104 - DWORD GetFontUnicodeRanges(HDC, LPGLYPHSET); 5105 - 5106 - DWORD GetGlyphIndicesA(HDC, LPCSTR, int, LPWORD, DWORD); 5107 - 5108 - DWORD GetGlyphIndicesW(HDC, LPCWSTR, int, LPWORD, DWORD); 5109 - 5110 - BOOL GetTextExtentPointI(HDC, LPWORD, int, LPSIZE); 5111 - 5112 - BOOL GetTextExtentExPointI(HDC, LPWORD, int, int, LPINT, LPINT, LPSIZE); 5113 - 5114 - BOOL GetCharWidthI(HDC, UINT, UINT, LPWORD, LPINT); 5115 - 5116 - BOOL GetCharABCWidthsI(HDC, UINT, UINT, LPWORD, LPABC); 5117 -} 5118 -} // extern (Windows) 5119 - 5120 -version (Unicode) 5121 -{ 5122 - alias WCHAR BCHAR; 5123 - alias DOCINFOW DOCINFO; 5124 - alias LOGFONTW LOGFONT; 5125 - 5126 - alias TEXTMETRICW TEXTMETRIC; 5127 - alias NPTEXTMETRICW NPTEXTMETRIC; 5128 - alias ICMENUMPROCW ICMENUMPROC; 5129 - alias FONTENUMPROCW FONTENUMPROC; 5130 - alias DEVMODEW DEVMODE; 5131 - 5132 - alias EXTLOGFONTW EXTLOGFONT; 5133 - alias GCP_RESULTSW GCP_RESULTS; 5134 - alias OUTLINETEXTMETRICW OUTLINETEXTMETRIC; 5135 - alias POLYTEXTW POLYTEXT; 5136 - alias LOGCOLORSPACEW LOGCOLORSPACE; 5137 - alias NEWTEXTMETRICW NEWTEXTMETRIC; 5138 - alias NEWTEXTMETRICEXW NEWTEXTMETRICEX; 5139 - alias ENUMLOGFONTW ENUMLOGFONT; 5140 - alias ENUMLOGFONTEXW ENUMLOGFONTEX; 5141 - alias DISPLAY_DEVICEW DISPLAY_DEVICE; 5142 - alias AddFontResourceW AddFontResource; 5143 - 5144 - alias CopyEnhMetaFileW CopyEnhMetaFile; 5145 - alias CopyMetaFileW CopyMetaFile; 5146 - alias CreateColorSpaceW CreateColorSpace; 5147 - alias CreateDCW CreateDC; 5148 - alias CreateEnhMetaFileW CreateEnhMetaFile; 5149 - alias CreateFontW CreateFont; 5150 - alias CreateFontIndirectW CreateFontIndirect; 5151 - alias CreateICW CreateIC; 5152 - alias CreateMetaFileW CreateMetaFile; 5153 - alias CreateScalableFontResourceW CreateScalableFontResource; 5154 - alias DeviceCapabilitiesW DeviceCapabilities; 5155 - alias EnumFontFamiliesW EnumFontFamilies; 5156 - alias EnumFontFamiliesExW EnumFontFamiliesEx; 5157 - alias EnumFontsW EnumFonts; 5158 - alias EnumICMProfilesW EnumICMProfiles; 5159 - alias ExtTextOutW ExtTextOut; 5160 - alias GetCharABCWidthsFloatW GetCharABCWidthsFloat; 5161 - alias GetCharABCWidthsW GetCharABCWidths; 5162 - alias GetCharacterPlacementW GetCharacterPlacement; 5163 - alias GetCharWidth32W GetCharWidth32; 5164 - alias GetCharWidthFloatW GetCharWidthFloat; 5165 - alias GetCharWidthW GetCharWidth; 5166 - alias GetEnhMetaFileW GetEnhMetaFile; 5167 - alias GetEnhMetaFileDescriptionW GetEnhMetaFileDescription; 5168 - alias GetGlyphOutlineW GetGlyphOutline; 5169 - alias GetICMProfileW GetICMProfile; 5170 - alias GetKerningPairsW GetKerningPairs; 5171 - alias GetLogColorSpaceW GetLogColorSpace; 5172 - alias GetMetaFileW GetMetaFile; 5173 - alias GetObjectW GetObject; 5174 - alias GetOutlineTextMetricsW GetOutlineTextMetrics; 5175 - alias GetTextExtentPointW GetTextExtentPoint; 5176 - alias GetTextExtentExPointW GetTextExtentExPoint; 5177 - alias GetTextExtentPoint32W GetTextExtentPoint32; 5178 - alias GetTextFaceW GetTextFace; 5179 - alias GetTextMetricsW GetTextMetrics; 5180 - alias PolyTextOutW PolyTextOut; 5181 - alias RemoveFontResourceW RemoveFontResource; 5182 - 5183 - alias ResetDCW ResetDC; 5184 - alias SetICMProfileW SetICMProfile; 5185 - alias StartDocW StartDoc; 5186 - alias TextOutW TextOut; 5187 - alias UpdateICMRegKeyW UpdateICMRegKey; 5188 - alias wglUseFontBitmapsW wglUseFontBitmaps; 5189 - alias wglUseFontOutlinesW wglUseFontOutlines; 5190 - static 5191 - 5192 - if (_WIN32_WINNT >= 0x0500) 5193 - { 5194 - alias ENUMLOGFONTEXDVW ENUMLOGFONTEXDV; 5195 - alias PENUMLOGFONTEXDVW PENUMLOGFONTEXDV; 5196 - alias LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV; 5197 - alias AddFontResourceExW AddFontResourceEx; 5198 - alias RemoveFontResourceExW RemoveFontResourceEx; 5199 - alias GetGlyphIndicesW GetGlyphIndices; 5200 - } 5201 -} 5202 -else /* non-unicode build */ 5203 -{ 5204 - alias BYTE BCHAR; 5205 - alias DOCINFOA DOCINFO; 5206 - alias LOGFONTA LOGFONT; 5207 - alias TEXTMETRICA TEXTMETRIC; 5208 - alias NPTEXTMETRICA NPTEXTMETRIC; 5209 - alias ICMENUMPROCA ICMENUMPROC; 5210 - alias FONTENUMPROCA FONTENUMPROC; 5211 - alias DEVMODEA DEVMODE; 5212 - alias EXTLOGFONTA EXTLOGFONT; 5213 - alias GCP_RESULTSA GCP_RESULTS; 5214 - alias OUTLINETEXTMETRICA OUTLINETEXTMETRIC; 5215 - alias POLYTEXTA POLYTEXT; 5216 - alias LOGCOLORSPACEA LOGCOLORSPACE; 5217 - alias NEWTEXTMETRICA NEWTEXTMETRIC; 5218 - alias NEWTEXTMETRICEXA NEWTEXTMETRICEX; 5219 - alias ENUMLOGFONTA ENUMLOGFONT; 5220 - alias ENUMLOGFONTEXA ENUMLOGFONTEX; 5221 - alias DISPLAY_DEVICEA DISPLAY_DEVICE; 5222 - 5223 - alias AddFontResourceA AddFontResource; 5224 - alias CopyEnhMetaFileA CopyEnhMetaFile; 5225 - alias CopyMetaFileA CopyMetaFile; 5226 - alias CreateColorSpaceA CreateColorSpace; 5227 - alias CreateDCA CreateDC; 5228 - alias CreateEnhMetaFileA CreateEnhMetaFile; 5229 - alias CreateFontA CreateFont; 5230 - alias CreateFontIndirectA CreateFontIndirect; 5231 - alias CreateICA CreateIC; 5232 - alias CreateMetaFileA CreateMetaFile; 5233 - alias CreateScalableFontResourceA CreateScalableFontResource; 5234 - alias DeviceCapabilitiesA DeviceCapabilities; 5235 - alias EnumFontFamiliesA EnumFontFamilies; 5236 - alias EnumFontFamiliesExA EnumFontFamiliesEx; 5237 - alias EnumFontsA EnumFonts; 5238 - alias EnumICMProfilesA EnumICMProfiles; 5239 - alias ExtTextOutA ExtTextOut; 5240 - alias GetCharWidthFloatA GetCharWidthFloat; 5241 - alias GetCharWidthA GetCharWidth; 5242 - alias GetCharacterPlacementA GetCharacterPlacement; 5243 - alias GetCharABCWidthsA GetCharABCWidths; 5244 - alias GetCharABCWidthsFloatA GetCharABCWidthsFloat; 5245 - alias GetCharWidth32A GetCharWidth32; 5246 - alias GetEnhMetaFileA GetEnhMetaFile; 5247 - alias GetEnhMetaFileDescriptionA GetEnhMetaFileDescription; 5248 - alias GetGlyphOutlineA GetGlyphOutline; 5249 - alias GetICMProfileA GetICMProfile; 5250 - alias GetKerningPairsA GetKerningPairs; 5251 - alias GetLogColorSpaceA GetLogColorSpace; 5252 - alias GetMetaFileA GetMetaFile; 5253 - alias GetObjectA GetObject; 5254 - alias GetOutlineTextMetricsA GetOutlineTextMetrics; 5255 - alias GetTextExtentPointA GetTextExtentPoint; 5256 - alias GetTextExtentExPointA GetTextExtentExPoint; 5257 - alias GetTextExtentPoint32A GetTextExtentPoint32; 5258 - alias GetTextFaceA GetTextFace; 5259 - alias GetTextMetricsA GetTextMetrics; 5260 - alias PolyTextOutA PolyTextOut; 5261 - alias RemoveFontResourceA RemoveFontResource; 5262 - alias ResetDCA ResetDC; 5263 - alias SetICMProfileA SetICMProfile; 5264 - alias StartDocA StartDoc; 5265 - alias TextOutA TextOut; 5266 - alias UpdateICMRegKeyA UpdateICMRegKey; 5267 - alias wglUseFontBitmapsA wglUseFontBitmaps; 5268 - alias wglUseFontOutlinesA wglUseFontOutlines; 5269 - static 5270 - 5271 - if (_WIN32_WINNT >= 0x0500) 5272 - { 5273 - alias ENUMLOGFONTEXDVA ENUMLOGFONTEXDV; 5274 - alias PENUMLOGFONTEXDVA PENUMLOGFONTEXDV; 5275 - alias LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV; 5276 - alias AddFontResourceExA AddFontResourceEx; 5277 - alias RemoveFontResourceExA RemoveFontResourceEx; 5278 - alias GetGlyphIndicesA GetGlyphIndices; 5279 - } 5280 -} 5281 - 5282 4547 // Common to both ASCII & UNICODE 5283 -alias DOCINFO*LPDOCINFO; 5284 -alias LOGFONT*PLOGFONT, NPLOGFONT, LPLOGFONT; 5285 -alias TEXTMETRIC*PTEXTMETRIC, LPTEXTMETRIC; 5286 -alias DEVMODE*PDEVMODE, NPDEVMODE, LPDEVMODE; 5287 -alias EXTLOGFONT *PEXTLOGFONT, NPEXTLOGFONT, LPEXTLOGFONT; 5288 -alias GCP_RESULTS*LPGCP_RESULTS; 5289 -alias OUTLINETEXTMETRIC*POUTLINETEXTMETRIC, NPOUTLINETEXTMETRIC, LPOUTLINETEXTMETRIC; 5290 -alias POLYTEXT*PPOLYTEXT, NPPOLYTEXT, LPPOLYTEXT; 5291 -alias LOGCOLORSPACE*LPLOGCOLORSPACE; 5292 -alias NEWTEXTMETRIC*PNEWTEXTMETRIC, NPNEWTEXTMETRIC, LPNEWTEXTMETRIC; 5293 -alias ENUMLOGFONT*LPENUMLOGFONT; 5294 -alias ENUMLOGFONTEX *LPENUMLOGFONTEX; 5295 -alias DISPLAY_DEVICE*PDISPLAY_DEVICE, LPDISPLAY_DEVICE; 4548 +alias DOCINFO* LPDOCINFO; 4549 +alias LOGFONT* PLOGFONT, NPLOGFONT, LPLOGFONT; 4550 +alias TEXTMETRIC* PTEXTMETRIC, LPTEXTMETRIC; 4551 +alias DEVMODE* PDEVMODE, NPDEVMODE, LPDEVMODE; 4552 +alias EXTLOGFONT* PEXTLOGFONT, NPEXTLOGFONT, LPEXTLOGFONT; 4553 +alias GCP_RESULTS* LPGCP_RESULTS; 4554 +alias OUTLINETEXTMETRIC* POUTLINETEXTMETRIC, NPOUTLINETEXTMETRIC, LPOUTLINETEXTMETRIC; 4555 +alias POLYTEXT* PPOLYTEXT, NPPOLYTEXT, LPPOLYTEXT; 4556 +alias LOGCOLORSPACE* LPLOGCOLORSPACE; 4557 +alias NEWTEXTMETRIC* PNEWTEXTMETRIC, NPNEWTEXTMETRIC, LPNEWTEXTMETRIC; 4558 +alias ENUMLOGFONT* LPENUMLOGFONT; 4559 +alias ENUMLOGFONTEX* LPENUMLOGFONTEX; 4560 +alias DISPLAY_DEVICE* PDISPLAY_DEVICE, LPDISPLAY_DEVICE;

Added src/win32/winhttp.d version [8de3ce2cdcaacc84]

1 +/***********************************************************************\ 2 +* winhttp.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Translated from Windows SDK Headers * 7 +* * 8 +* Placed into public domain * 9 +\***********************************************************************/ 10 +module win32.winhttp; 11 +pragma(lib, "winhttp"); 12 +// FIXME: Grouping of constants. Windows SDK doesn't make this entirely clear 13 +// FIXME: Verify WINHTTP_STATUS_CALLBACK function declaration works correctly 14 + 15 +import win32.w32api; 16 +import win32.winbase; 17 +import win32.windef; 18 +import win32.winsock2; // Selective Imports BUG (: SOCKADDR_STORAGE;) 19 + 20 +alias HINTERNET = void*; 21 +alias LPHINTERNET = HINTERNET*; 22 +alias INTERNET_PORT = WORD; 23 +alias LPINTERNET_PORT = INTERNET_PORT*; 24 +alias INTERNET_SCHEME = int; 25 +alias LPINTERNET_SCHEME = INTERNET_SCHEME*; 26 + 27 +// Protocol 'Manifests' 28 +enum : DWORD { 29 + INTERNET_DEFAULT_PORT = 0, 30 + INTERNET_DEFAULT_HTTP_PORT = 80, 31 + INTERNET_DEFAULT_HTTPS_PORT = 443 32 +} 33 + 34 +// WinHttpOpen() Flags: 35 +enum DWORD WINHTTP_FLAG_ASYNC = 0x10000000; 36 + 37 +// WinHttpOpenRequest() Flags: 38 +enum : DWORD { 39 + WINHTTP_FLAG_SECURE = 0x00800000, 40 + WINHTTP_FLAG_ESCAPE_PERCENT = 0x00000004, 41 + WINHTTP_FLAG_NULL_CODEPAGE = 0x00000008, 42 + WINHTTP_FLAG_BYPASS_PROXY_CACHE = 0x00000100, 43 + WINHTTP_FLAG_REFRESH = WINHTTP_FLAG_BYPASS_PROXY_CACHE, 44 + WINHTTP_FLAG_ESCAPE_DISABLE = 0x00000040, 45 + WINHTTP_FLAG_ESCAPE_DISABLE_QUERY = 0x00000080, 46 + 47 + SECURITY_FLAG_IGNORE_UNKNOWN_CA = 0x00000100, 48 + SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000, 49 + SECURITY_FLAG_IGNORE_CERT_CN_INVALID = 0x00001000, 50 + SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE = 0x00000200 51 +} 52 + 53 +struct WINHTTP_ASYNC_RESULT { 54 + DWORD_PTR dwResult; 55 + DWORD dwError; 56 +} 57 +alias LPWINHTTP_ASYNC_RESULT = WINHTTP_ASYNC_RESULT*; 58 + 59 +struct HTTP_VERSION_INFO { 60 + DWORD dwMajorVersion; 61 + DWORD dwMinorVersion; 62 +} 63 +alias LPHTTP_VERSION_INFO = HTTP_VERSION_INFO*; 64 + 65 +// URL Scheme 66 +enum : DWORD { 67 + INTERNET_SCHEME_HTTP = 1, 68 + INTERNET_SCHEME_HTTPS = 2, 69 + INTERNET_SCHEME_FTP = 3, 70 + INTERNET_SCHEME_SOCKS = 4 71 +} 72 + 73 +struct URL_COMPONENTS { 74 + DWORD dwStructSize; 75 + LPWSTR lpszScheme; 76 + DWORD dwSchemeLength; 77 + INTERNET_SCHEME nScheme; 78 + LPWSTR lpszHostName; 79 + DWORD dwHostNameLength; 80 + INTERNET_PORT nPort; 81 + LPWSTR lpszUserName; 82 + DWORD dwUserNameLength; 83 + LPWSTR lpszPassword; 84 + DWORD dwPasswordLength; 85 + LPWSTR lpszUrlPath; 86 + DWORD dwUrlPathLength; 87 + LPWSTR lpszExtraInfo; 88 + DWORD dwExtraInfoLength; 89 +} 90 +alias LPURL_COMPONENTS = URL_COMPONENTS*; 91 +alias URL_COMPONENTSW = URL_COMPONENTS; 92 +alias LPURL_COMPONENTSW = URL_COMPONENTS*; 93 + 94 +struct WINHTTP_PROXY_INFO { 95 + DWORD dwAccessType; 96 + LPWSTR lpszProxy; 97 + LPWSTR lpszProxyBypass; 98 +} 99 +alias LPWINHTTP_PROXY_INFO = WINHTTP_PROXY_INFO*; 100 +alias WINHTTP_PROXY_INFOW = WINHTTP_PROXY_INFO; 101 +alias LPWINHTTP_PROXY_INFOW = WINHTTP_PROXY_INFO*; 102 + 103 +struct WINHTTP_AUTOPROXY_OPTIONS { 104 + DWORD dwFlags; 105 + DWORD dwAutoDetectFlags; 106 + LPCWSTR lpszAutoConfigUrl; 107 + LPVOID lpvReserved; 108 + DWORD dwReserved; 109 + BOOL fAutoLogonIfChallenged; 110 +} 111 + 112 +enum : DWORD { 113 + WINHTTP_AUTOPROXY_AUTO_DETECT = 0x00000001, 114 + WINHTTP_AUTOPROXY_CONFIG_URL = 0x00000002, 115 + WINHTTP_AUTOPROXY_HOST_KEEPCASE = 0x00000004, 116 + WINHTTP_AUTOPROXY_HOST_LOWERCASE = 0x00000008, 117 + WINHTTP_AUTOPROXY_RUN_INPROCESS = 0x00010000, 118 + WINHTTP_AUTOPROXY_RUN_OUTPROCESS_ONLY = 0x00020000, 119 + WINHTTP_AUTOPROXY_NO_DIRECTACCESS = 0x00040000, 120 + WINHTTP_AUTOPROXY_NO_CACHE_CLIENT = 0x00080000, 121 + WINHTTP_AUTOPROXY_NO_CACHE_SVC = 0x00100000, 122 + 123 + WINHTTP_AUTOPROXY_SORT_RESULTS = 0x00400000 124 +} 125 + 126 +// dwAutoDetectFlags 127 +enum : DWORD { 128 + WINHTTP_AUTO_DETECT_TYPE_DHCP = 0x00000001, 129 + WINHTTP_AUTO_DETECT_TYPE_DNS_A = 0x00000002 130 +} 131 + 132 +struct WINHTTP_CERTIFICATE_INFO { 133 + FILETIME ftExpiry; 134 + FILETIME ftStart; 135 + LPWSTR lpszSubjectInfo; 136 + LPWSTR lpszIssuerInfo; 137 + LPWSTR lpszProtocolName; 138 + LPWSTR lpszSignatureAlgName; 139 + LPWSTR lpszEncryptionAlgName; 140 + DWORD dwKeySize; 141 +} 142 + 143 +// This structure is only defined #if _WS2DEF_ defined (from <ws2def.h>) - per Windows SDK 144 +struct WINHTTP_CONNECTION_INFO { 145 + DWORD cbSize; 146 + SOCKADDR_STORAGE LocalAddress; 147 + SOCKADDR_STORAGE RemoteAddress; 148 +} 149 + 150 +// WinHttpTimeFromSystemTime 151 +enum DWORD WINHTTP_TIME_FORMAT_BUFSIZE = 62; 152 + 153 +// CrackUrl, CombineUrl 154 +enum : DWORD { 155 + ICU_NO_ENCODE = 0x20000000, 156 + ICU_DECODE = 0x10000000, 157 + ICU_NO_META = 0x08000000, 158 + ICU_ENCODE_SPACES_ONLY = 0x04000000, 159 + ICU_BROWSER_MODE = 0x02000000, 160 + ICU_ENCODE_PERCENT = 0x00001000 161 +} 162 +// WinHttpCrackUrl, WinHttpCreateUrl 163 +enum : DWORD { 164 + ICU_ESCAPE = 0x80000000, 165 + ICU_ESCAPE_AUTHORITY = 0x00002000, 166 + ICU_REJECT_USERPWD = 0x00004000 167 +} 168 +enum : DWORD { 169 + WINHTTP_ACCESS_TYPE_DEFAULT_PROXY = 0, 170 + WINHTTP_ACCESS_TYPE_NO_PROXY = 1, 171 + WINHTTP_ACCESS_TYPE_NAMED_PROXY = 3, 172 + WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY = 4 173 +} 174 +// WinHttpOpen 'prettifiers' 175 +enum LPCWSTR WINHTTP_NO_PROXY_NAME = null; 176 +enum LPCWSTR WINHTTP_NO_PROXY_BYPASS = null; 177 + 178 +enum LPVOID WINHTTP_NO_CLIENT_CERT_CONTEXT = null; 179 + 180 +// WinHttp{Query|Set}Option 181 +enum : DWORD { 182 + WINHTTP_FIRST_OPTION = WINHTTP_OPTION_CALLBACK, 183 + 184 + WINHTTP_OPTION_CALLBACK = 1, 185 + WINHTTP_OPTION_RESOLVE_TIMEOUT = 2, 186 + WINHTTP_OPTION_CONNECT_TIMEOUT = 3, 187 + WINHTTP_OPTION_CONNECT_RETRIES = 4, 188 + WINHTTP_OPTION_SEND_TIMEOUT = 5, 189 + WINHTTP_OPTION_RECEIVE_TIMEOUT = 6, 190 + WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT = 7, 191 + WINHTTP_OPTION_HANDLE_TYPE = 9, 192 + WINHTTP_OPTION_READ_BUFFER_SIZE = 12, 193 + WINHTTP_OPTION_WRITE_BUFFER_SIZE = 13, 194 + WINHTTP_OPTION_PARENT_HANDLE = 21, 195 + WINHTTP_OPTION_EXTENDED_ERROR = 24, 196 + WINHTTP_OPTION_SECURITY_FLAGS = 31, 197 + WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT = 32, 198 + WINHTTP_OPTION_URL = 34, 199 + WINHTTP_OPTION_SECURITY_KEY_BITNESS = 36, 200 + WINHTTP_OPTION_PROXY = 38, 201 + WINHTTP_OPTION_PROXY_RESULT_ENTRY = 39, 202 + 203 + WINHTTP_OPTION_USER_AGENT = 41, 204 + WINHTTP_OPTION_CONTEXT_VALUE = 45, 205 + WINHTTP_OPTION_CLIENT_CERT_CONTEXT = 47, 206 + WINHTTP_OPTION_REQUEST_PRIORITY = 58, 207 + WINHTTP_OPTION_HTTP_VERSION = 59, 208 + WINHTTP_OPTION_DISABLE_FEATURE = 63, 209 + 210 + WINHTTP_OPTION_CODEPAGE = 68, 211 + WINHTTP_OPTION_MAX_CONNS_PER_SERVER = 73, 212 + WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER = 74, 213 + WINHTTP_OPTION_AUTOLOGON_POLICY = 77, 214 + WINHTTP_OPTION_SERVER_CERT_CONTEXT = 78, 215 + WINHTTP_OPTION_ENABLE_FEATURE = 79, 216 + WINHTTP_OPTION_WORKER_THREAD_COUNT = 80, 217 + WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT = 81, 218 + WINHTTP_OPTION_PASSPORT_COBRANDING_URL = 82, 219 + WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH = 83, 220 + WINHTTP_OPTION_SECURE_PROTOCOLS = 84, 221 + WINHTTP_OPTION_ENABLETRACING = 85, 222 + WINHTTP_OPTION_PASSPORT_SIGN_OUT = 86, 223 + WINHTTP_OPTION_PASSPORT_RETURN_URL = 87, 224 + WINHTTP_OPTION_REDIRECT_POLICY = 88, 225 + WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS = 89, 226 + WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE = 90, 227 + WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE = 91, 228 + WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE = 92, 229 + WINHTTP_OPTION_CONNECTION_INFO = 93, 230 + WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST = 94, 231 + WINHTTP_OPTION_SPN = 96, 232 + 233 + WINHTTP_OPTION_GLOBAL_PROXY_CREDS = 97, 234 + WINHTTP_OPTION_GLOBAL_SERVER_CREDS = 98, 235 + 236 + WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT = 99, 237 + WINHTTP_OPTION_REJECT_USERPWD_IN_URL = 100, 238 + WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS = 101, 239 + 240 + WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE = 103, 241 + WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE = 104, 242 + 243 + WINHTTP_OPTION_SERVER_SPN_USED = 106, 244 + WINHTTP_OPTION_PROXY_SPN_USED = 107, 245 + 246 + WINHTTP_OPTION_SERVER_CBT = 108, 247 + 248 + WINHTTP_OPTION_UNSAFE_HEADER_PARSING = 110, 249 + WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS = 111, 250 + 251 + WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET = 114, 252 + WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT = 115, 253 + WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL = 116, 254 + 255 + WINHTTP_OPTION_DECOMPRESSION = 118, 256 + 257 + WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE = 122, 258 + WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE = 123, 259 + 260 + //WINHTTP_LAST_OPTION => Moved outside of enum - static if() constraints within enums 261 + 262 + WINHTTP_OPTION_USERNAME = 0x1000, 263 + WINHTTP_OPTION_PASSWORD = 0x1001, 264 + WINHTTP_OPTION_PROXY_USERNAME = 0x1002, 265 + WINHTTP_OPTION_PROXY_PASSWORD = 0x1003, 266 + 267 + WINHTTP_CONNS_PER_SERVER_UNLIMITED = 0xFFFFFFFF, 268 + 269 + WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM = 0, 270 + WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW = 1, 271 + WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH = 2, 272 + 273 + WINHTTP_AUTOLOGON_SECURITY_LEVEL_DEFAULT = WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM, 274 + 275 + WINHTTP_OPTION_REDIRECT_POLICY_NEVER = 0, 276 + WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP = 1, 277 + WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS = 2, 278 + 279 + WINHTTP_OPTION_REDIRECT_POLICY_LAST = WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS, 280 + WINHTTP_OPTION_REDIRECT_POLICY_DEFAULT = WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP, 281 + 282 + WINHTTP_DISABLE_PASSPORT_AUTH = 0x00000000, 283 + WINHTTP_ENABLE_PASSPORT_AUTH = 0x10000000, 284 + WINHTTP_DISABLE_PASSPORT_KEYRING = 0x20000000, 285 + WINHTTP_ENABLE_PASSPORT_KEYRING = 0x40000000, 286 + 287 + WINHTTP_DISABLE_COOKIES = 0x00000001, 288 + WINHTTP_DISABLE_REDIRECTS = 0x00000002, 289 + WINHTTP_DISABLE_AUTHENTICATION = 0x00000004, 290 + WINHTTP_DISABLE_KEEP_ALIVE = 0x00000008, 291 + 292 + WINHTTP_ENABLE_SSL_REVOCATION = 0x00000001, 293 + WINHTTP_ENABLE_SSL_REVERT_IMPERSONATION = 0x00000002, 294 + 295 + WINHTTP_DISABLE_SPN_SERVER_PORT = 0x00000000, 296 + WINHTTP_ENABLE_SPN_SERVER_PORT = 0x00000001, 297 + WINHTTP_OPTION_SPN_MASK = WINHTTP_ENABLE_SPN_SERVER_PORT 298 +} 299 + 300 +// Windows 8.1 SDK: 301 +static if (_WIN32_WINNT >= 0x602) { 302 + enum DWORD WINHTTP_LAST_OPTION = WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE; 303 +} else { // Windows 7.0A SDK: 304 + enum DWORD WINHTTP_LAST_OPTION = WINHTTP_OPTION_SERVER_CBT; 305 +} 306 + 307 +enum : DWORD { 308 + WINHTTP_DECOMPRESSION_FLAG_GZIP = 0x00000001, 309 + WINHTTP_DECOMPRESSION_FLAG_DEFLATE = 0x00000002, 310 + WINHTTP_DECOMPRESSION_FLAG_ALL = (WINHTTP_DECOMPRESSION_FLAG_GZIP | WINHTTP_DECOMPRESSION_FLAG_DEFLATE) 311 +} 312 + 313 +struct WINHTTP_CREDS { 314 + LPSTR lpszUserName; 315 + LPSTR lpszPassword; 316 + LPSTR lpszRealm; 317 + DWORD dwAuthScheme; 318 + LPSTR lpszHostName; 319 + DWORD dwPort; 320 +} 321 +alias PWINHTTP_CREDS = WINHTTP_CREDS*; 322 + 323 +struct WINHTTP_CREDS_EX { 324 + LPSTR lpszUserName; 325 + LPSTR lpszPassword; 326 + LPSTR lpszRealm; 327 + DWORD dwAuthScheme; 328 + LPSTR lpszHostName; 329 + DWORD dwPort; 330 + LPSTR lpszUrl; 331 +} 332 +alias PWINHTTP_CREDS_EX = WINHTTP_CREDS_EX*; 333 + 334 +enum : DWORD { 335 + WINHTTP_HANDLE_TYPE_SESSION = 1, 336 + WINHTTP_HANDLE_TYPE_CONNECT = 2, 337 + WINHTTP_HANDLE_TYPE_REQUEST = 3, 338 + 339 + WINHTTP_AUTH_SCHEME_BASIC = 0x00000001, 340 + WINHTTP_AUTH_SCHEME_NTLM = 0x00000002, 341 + WINHTTP_AUTH_SCHEME_PASSPORT = 0x00000004, 342 + WINHTTP_AUTH_SCHEME_DIGEST = 0x00000008, 343 + WINHTTP_AUTH_SCHEME_NEGOTIATE = 0x00000010, 344 + 345 + WINHTTP_AUTH_TARGET_SERVER = 0x00000000, 346 + WINHTTP_AUTH_TARGET_PROXY = 0x00000001, 347 + 348 + SECURITY_FLAG_SECURE = 0x00000001, 349 + SECURITY_FLAG_STRENGTH_WEAK = 0x10000000, 350 + SECURITY_FLAG_STRENGTH_MEDIUM = 0x40000000, 351 + SECURITY_FLAG_STRENGTH_STRONG = 0x20000000, 352 + 353 + WINHTTP_CALLBACK_STATUS_FLAG_CERT_REV_FAILED = 0x00000001, 354 + WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CERT = 0x00000002, 355 + WINHTTP_CALLBACK_STATUS_FLAG_CERT_REVOKED = 0x00000004, 356 + WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA = 0x00000008, 357 + WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID = 0x00000010, 358 + WINHTTP_CALLBACK_STATUS_FLAG_CERT_DATE_INVALID = 0x00000020, 359 + WINHTTP_CALLBACK_STATUS_FLAG_CERT_WRONG_USAGE = 0x00000040, 360 + WINHTTP_CALLBACK_STATUS_FLAG_SECURITY_CHANNEL_ERROR = 0x80000000, 361 + 362 + WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 = 0x00000008, 363 + WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 = 0x00000020, 364 + WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 = 0x00000080, 365 + WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 = 0x00000200, 366 + WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 = 0x00000800, 367 + WINHTTP_FLAG_SECURE_PROTOCOL_ALL = (WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 | 368 + WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 | 369 + WINHTTP_FLAG_SECURE_PROTOCOL_TLS1) 370 +} 371 + 372 +alias extern(Windows) int fnWINHTTP_STATUS_CALLBACK(HINTERNET hInternet, DWORD_PTR dwContext, 373 + DWORD dwInternetStatus, LPVOID lpvStatusInformation,DWORD dwStatusInformationLength); 374 +alias WINHTTP_STATUS_CALLBACK = fnWINHTTP_STATUS_CALLBACK*; 375 +alias LPWINHTTP_STATUS_CALLBACK = WINHTTP_STATUS_CALLBACK*; 376 + 377 +enum : DWORD { 378 + WINHTTP_CALLBACK_STATUS_RESOLVING_NAME = 0x00000001, 379 + WINHTTP_CALLBACK_STATUS_NAME_RESOLVED = 0x00000002, 380 + WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER = 0x00000004, 381 + WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER = 0x00000008, 382 + WINHTTP_CALLBACK_STATUS_SENDING_REQUEST = 0x00000010, 383 + WINHTTP_CALLBACK_STATUS_REQUEST_SENT = 0x00000020, 384 + WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE = 0x00000040, 385 + WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED = 0x00000080, 386 + WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION = 0x00000100, 387 + WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED = 0x00000200, 388 + WINHTTP_CALLBACK_STATUS_HANDLE_CREATED = 0x00000400, 389 + WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING = 0x00000800, 390 + WINHTTP_CALLBACK_STATUS_DETECTING_PROXY = 0x00001000, 391 + WINHTTP_CALLBACK_STATUS_REDIRECT = 0x00004000, 392 + WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE = 0x00008000, 393 + WINHTTP_CALLBACK_STATUS_SECURE_FAILURE = 0x00010000, 394 + WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE = 0x00020000, 395 + WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE = 0x00040000, 396 + WINHTTP_CALLBACK_STATUS_READ_COMPLETE = 0x00080000, 397 + WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE = 0x00100000, 398 + WINHTTP_CALLBACK_STATUS_REQUEST_ERROR = 0x00200000, 399 + WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE = 0x00400000 400 +} 401 + 402 +enum : DWORD { 403 + WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE = 0x01000000, 404 + WINHTTP_CALLBACK_STATUS_CLOSE_COMPLETE = 0x02000000, 405 + WINHTTP_CALLBACK_STATUS_SHUTDOWN_COMPLETE = 0x04000000 406 +} 407 + 408 +enum : DWORD { 409 + API_RECEIVE_RESPONSE = 1, 410 + API_QUERY_DATA_AVAILABLE = 2, 411 + API_READ_DATA = 3, 412 + API_WRITE_DATA = 4, 413 + API_SEND_REQUEST = 5 414 +} 415 + 416 +enum : DWORD { 417 + WINHTTP_CALLBACK_FLAG_RESOLVE_NAME = (WINHTTP_CALLBACK_STATUS_RESOLVING_NAME | WINHTTP_CALLBACK_STATUS_NAME_RESOLVED), 418 + WINHTTP_CALLBACK_FLAG_CONNECT_TO_SERVER = (WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER | WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER), 419 + WINHTTP_CALLBACK_FLAG_SEND_REQUEST = (WINHTTP_CALLBACK_STATUS_SENDING_REQUEST | WINHTTP_CALLBACK_STATUS_REQUEST_SENT), 420 + WINHTTP_CALLBACK_FLAG_RECEIVE_RESPONSE = (WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE | WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED), 421 + WINHTTP_CALLBACK_FLAG_CLOSE_CONNECTION = (WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION | WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED), 422 + WINHTTP_CALLBACK_FLAG_HANDLES = (WINHTTP_CALLBACK_STATUS_HANDLE_CREATED | WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING), 423 + WINHTTP_CALLBACK_FLAG_DETECTING_PROXY = WINHTTP_CALLBACK_STATUS_DETECTING_PROXY, 424 + WINHTTP_CALLBACK_FLAG_REDIRECT = WINHTTP_CALLBACK_STATUS_REDIRECT, 425 + WINHTTP_CALLBACK_FLAG_INTERMEDIATE_RESPONSE = WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE, 426 + WINHTTP_CALLBACK_FLAG_SECURE_FAILURE = WINHTTP_CALLBACK_STATUS_SECURE_FAILURE, 427 + WINHTTP_CALLBACK_FLAG_SENDREQUEST_COMPLETE = WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE, 428 + WINHTTP_CALLBACK_FLAG_HEADERS_AVAILABLE = WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE, 429 + WINHTTP_CALLBACK_FLAG_DATA_AVAILABLE = WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE, 430 + WINHTTP_CALLBACK_FLAG_READ_COMPLETE = WINHTTP_CALLBACK_STATUS_READ_COMPLETE, 431 + WINHTTP_CALLBACK_FLAG_WRITE_COMPLETE = WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE, 432 + WINHTTP_CALLBACK_FLAG_REQUEST_ERROR = WINHTTP_CALLBACK_STATUS_REQUEST_ERROR 433 +} 434 + 435 +enum DWORD WINHTTP_CALLBACK_FLAG_GETPROXYFORURL_COMPLETE = WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE; 436 + 437 +// Windows 8+/2012+ 438 +static if (_WIN32_WINNT >= 0x602) { 439 + enum DWORD WINHTTP_CALLBACK_FLAG_ALL_COMPLETIONS = (WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE 440 + | WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE 441 + | WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE 442 + | WINHTTP_CALLBACK_STATUS_READ_COMPLETE 443 + | WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE 444 + | WINHTTP_CALLBACK_STATUS_REQUEST_ERROR); 445 +} else { 446 + enum DWORD WINHTTP_CALLBACK_FLAG_ALL_COMPLETIONS = (WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE 447 + | WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE 448 + | WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE 449 + | WINHTTP_CALLBACK_STATUS_READ_COMPLETE 450 + | WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE 451 + | WINHTTP_CALLBACK_STATUS_REQUEST_ERROR 452 + | WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE); 453 +} 454 + 455 +enum DWORD WINHTTP_CALLBACK_FLAG_ALL_NOTIFICATIONS = 0xffffffff; 456 + 457 +enum WINHTTP_INVALID_STATUS_CALLBACK = (cast(WINHTTP_STATUS_CALLBACK)(-1L)); 458 + 459 +enum : DWORD { 460 + WINHTTP_QUERY_MIME_VERSION = 0, 461 + WINHTTP_QUERY_CONTENT_TYPE = 1, 462 + WINHTTP_QUERY_CONTENT_TRANSFER_ENCODING = 2, 463 + WINHTTP_QUERY_CONTENT_ID = 3, 464 + WINHTTP_QUERY_CONTENT_DESCRIPTION = 4, 465 + WINHTTP_QUERY_CONTENT_LENGTH = 5, 466 + WINHTTP_QUERY_CONTENT_LANGUAGE = 6, 467 + WINHTTP_QUERY_ALLOW = 7, 468 + WINHTTP_QUERY_PUBLIC = 8, 469 + WINHTTP_QUERY_DATE = 9, 470 + WINHTTP_QUERY_EXPIRES = 10, 471 + WINHTTP_QUERY_LAST_MODIFIED = 11, 472 + WINHTTP_QUERY_MESSAGE_ID = 12, 473 + WINHTTP_QUERY_URI = 13, 474 + WINHTTP_QUERY_DERIVED_FROM = 14, 475 + WINHTTP_QUERY_COST = 15, 476 + WINHTTP_QUERY_LINK = 16, 477 + WINHTTP_QUERY_PRAGMA = 17, 478 + WINHTTP_QUERY_VERSION = 18, 479 + WINHTTP_QUERY_STATUS_CODE = 19, 480 + WINHTTP_QUERY_STATUS_TEXT = 20, 481 + WINHTTP_QUERY_RAW_HEADERS = 21, 482 + WINHTTP_QUERY_RAW_HEADERS_CRLF = 22, 483 + WINHTTP_QUERY_CONNECTION = 23, 484 + WINHTTP_QUERY_ACCEPT = 24, 485 + WINHTTP_QUERY_ACCEPT_CHARSET = 25, 486 + WINHTTP_QUERY_ACCEPT_ENCODING = 26, 487 + WINHTTP_QUERY_ACCEPT_LANGUAGE = 27, 488 + WINHTTP_QUERY_AUTHORIZATION = 28, 489 + WINHTTP_QUERY_CONTENT_ENCODING = 29, 490 + WINHTTP_QUERY_FORWARDED = 30, 491 + WINHTTP_QUERY_FROM = 31, 492 + WINHTTP_QUERY_IF_MODIFIED_SINCE = 32, 493 + WINHTTP_QUERY_LOCATION = 33, 494 + WINHTTP_QUERY_ORIG_URI = 34, 495 + WINHTTP_QUERY_REFERER = 35, 496 + WINHTTP_QUERY_RETRY_AFTER = 36, 497 + WINHTTP_QUERY_SERVER = 37, 498 + WINHTTP_QUERY_TITLE = 38, 499 + WINHTTP_QUERY_USER_AGENT = 39, 500 + WINHTTP_QUERY_WWW_AUTHENTICATE = 40, 501 + WINHTTP_QUERY_PROXY_AUTHENTICATE = 41, 502 + WINHTTP_QUERY_ACCEPT_RANGES = 42, 503 + WINHTTP_QUERY_SET_COOKIE = 43, 504 + WINHTTP_QUERY_COOKIE = 44, 505 + WINHTTP_QUERY_REQUEST_METHOD = 45, 506 + WINHTTP_QUERY_REFRESH = 46, 507 + WINHTTP_QUERY_CONTENT_DISPOSITION = 47, 508 + 509 + // HTTP 1.1 defined headers 510 + 511 + WINHTTP_QUERY_AGE = 48, 512 + WINHTTP_QUERY_CACHE_CONTROL = 49, 513 + WINHTTP_QUERY_CONTENT_BASE = 50, 514 + WINHTTP_QUERY_CONTENT_LOCATION = 51, 515 + WINHTTP_QUERY_CONTENT_MD5 = 52, 516 + WINHTTP_QUERY_CONTENT_RANGE = 53, 517 + WINHTTP_QUERY_ETAG = 54, 518 + WINHTTP_QUERY_HOST = 55, 519 + WINHTTP_QUERY_IF_MATCH = 56, 520 + WINHTTP_QUERY_IF_NONE_MATCH = 57, 521 + WINHTTP_QUERY_IF_RANGE = 58, 522 + WINHTTP_QUERY_IF_UNMODIFIED_SINCE = 59, 523 + WINHTTP_QUERY_MAX_FORWARDS = 60, 524 + WINHTTP_QUERY_PROXY_AUTHORIZATION = 61, 525 + WINHTTP_QUERY_RANGE = 62, 526 + WINHTTP_QUERY_TRANSFER_ENCODING = 63, 527 + WINHTTP_QUERY_UPGRADE = 64, 528 + WINHTTP_QUERY_VARY = 65, 529 + WINHTTP_QUERY_VIA = 66, 530 + WINHTTP_QUERY_WARNING = 67, 531 + WINHTTP_QUERY_EXPECT = 68, 532 + WINHTTP_QUERY_PROXY_CONNECTION = 69, 533 + WINHTTP_QUERY_UNLESS_MODIFIED_SINCE = 70, 534 + 535 + WINHTTP_QUERY_PROXY_SUPPORT = 75, 536 + WINHTTP_QUERY_AUTHENTICATION_INFO = 76, 537 + WINHTTP_QUERY_PASSPORT_URLS = 77, 538 + WINHTTP_QUERY_PASSPORT_CONFIG = 78, 539 + 540 + WINHTTP_QUERY_MAX = 78, 541 + 542 + WINHTTP_QUERY_CUSTOM = 65535, 543 + 544 + WINHTTP_QUERY_FLAG_REQUEST_HEADERS = 0x80000000, 545 + 546 + WINHTTP_QUERY_FLAG_SYSTEMTIME = 0x40000000, 547 + 548 + WINHTTP_QUERY_FLAG_NUMBER = 0x20000000 549 +} 550 + 551 +enum : DWORD { 552 + HTTP_STATUS_CONTINUE = 100, 553 + HTTP_STATUS_SWITCH_PROTOCOLS = 101, 554 + 555 + HTTP_STATUS_OK = 200, 556 + HTTP_STATUS_CREATED = 201, 557 + HTTP_STATUS_ACCEPTED = 202, 558 + HTTP_STATUS_PARTIAL = 203, 559 + HTTP_STATUS_NO_CONTENT = 204, 560 + HTTP_STATUS_RESET_CONTENT = 205, 561 + HTTP_STATUS_PARTIAL_CONTENT = 206, 562 + HTTP_STATUS_WEBDAV_MULTI_STATUS = 207, 563 + 564 + HTTP_STATUS_AMBIGUOUS = 300, 565 + HTTP_STATUS_MOVED = 301, 566 + HTTP_STATUS_REDIRECT = 302, 567 + HTTP_STATUS_REDIRECT_METHOD = 303, 568 + HTTP_STATUS_NOT_MODIFIED = 304, 569 + HTTP_STATUS_USE_PROXY = 305, 570 + HTTP_STATUS_REDIRECT_KEEP_VERB = 307, 571 + 572 + HTTP_STATUS_BAD_REQUEST = 400, 573 + HTTP_STATUS_DENIED = 401, 574 + HTTP_STATUS_PAYMENT_REQ = 402, 575 + HTTP_STATUS_FORBIDDEN = 403, 576 + HTTP_STATUS_NOT_FOUND = 404, 577 + HTTP_STATUS_BAD_METHOD = 405, 578 + HTTP_STATUS_NONE_ACCEPTABLE = 406, 579 + HTTP_STATUS_PROXY_AUTH_REQ = 407, 580 + HTTP_STATUS_REQUEST_TIMEOUT = 408, 581 + HTTP_STATUS_CONFLICT = 409, 582 + HTTP_STATUS_GONE = 410, 583 + HTTP_STATUS_LENGTH_REQUIRED = 411, 584 + HTTP_STATUS_PRECOND_FAILED = 412, 585 + HTTP_STATUS_REQUEST_TOO_LARGE = 413, 586 + HTTP_STATUS_URI_TOO_LONG = 414, 587 + HTTP_STATUS_UNSUPPORTED_MEDIA = 415, 588 + HTTP_STATUS_RETRY_WITH = 449, 589 + 590 + HTTP_STATUS_SERVER_ERROR = 500, 591 + HTTP_STATUS_NOT_SUPPORTED = 501, 592 + HTTP_STATUS_BAD_GATEWAY = 502, 593 + HTTP_STATUS_SERVICE_UNAVAIL = 503, 594 + HTTP_STATUS_GATEWAY_TIMEOUT = 504, 595 + HTTP_STATUS_VERSION_NOT_SUP = 505, 596 + 597 + HTTP_STATUS_FIRST = HTTP_STATUS_CONTINUE, 598 + HTTP_STATUS_LAST = HTTP_STATUS_VERSION_NOT_SUP 599 +} 600 + 601 +enum LPCWSTR WINHTTP_NO_REFERER = null; 602 +enum LPCWSTR * WINHTTP_DEFAULT_ACCEPT_TYPES = null; 603 + 604 +enum : DWORD { 605 + WINHTTP_ADDREQ_INDEX_MASK = 0x0000FFFF, 606 + WINHTTP_ADDREQ_FLAGS_MASK = 0xFFFF0000, 607 + 608 + WINHTTP_ADDREQ_FLAG_ADD_IF_NEW = 0x10000000, 609 + 610 + WINHTTP_ADDREQ_FLAG_ADD = 0x20000000, 611 + 612 + WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA = 0x40000000, 613 + WINHTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON = 0x01000000, 614 + WINHTTP_ADDREQ_FLAG_COALESCE = WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA, 615 + 616 + WINHTTP_ADDREQ_FLAG_REPLACE = 0x80000000, 617 + 618 + WINHTTP_IGNORE_REQUEST_TOTAL_LENGTH = 0 619 +} 620 + 621 +enum LPCWSTR WINHTTP_NO_ADDITIONAL_HEADERS = null; 622 +enum LPVOID WINHTTP_NO_REQUEST_DATA = null; 623 + 624 +enum LPCWSTR WINHTTP_HEADER_NAME_BY_INDEX = null; 625 +enum LPVOID WINHTTP_NO_OUTPUT_BUFFER = null; 626 +enum LPDWORD WINHTTP_NO_HEADER_INDEX = null; 627 + 628 +struct WINHTTP_CURRENT_USER_IE_PROXY_CONFIG { 629 + BOOL fAutoDetect; 630 + LPWSTR lpszAutoConfigUrl; 631 + LPWSTR lpszProxy; 632 + LPWSTR lpszProxyBypass; 633 +} 634 + 635 +// WinHttp API error returns 636 +enum : DWORD { 637 + WINHTTP_ERROR_BASE = 12000, 638 + 639 + ERROR_WINHTTP_OUT_OF_HANDLES = (WINHTTP_ERROR_BASE + 1), 640 + ERROR_WINHTTP_TIMEOUT = (WINHTTP_ERROR_BASE + 2), 641 + ERROR_WINHTTP_INTERNAL_ERROR = (WINHTTP_ERROR_BASE + 4), 642 + ERROR_WINHTTP_INVALID_URL = (WINHTTP_ERROR_BASE + 5), 643 + ERROR_WINHTTP_UNRECOGNIZED_SCHEME = (WINHTTP_ERROR_BASE + 6), 644 + ERROR_WINHTTP_NAME_NOT_RESOLVED = (WINHTTP_ERROR_BASE + 7), 645 + ERROR_WINHTTP_INVALID_OPTION = (WINHTTP_ERROR_BASE + 9), 646 + ERROR_WINHTTP_OPTION_NOT_SETTABLE = (WINHTTP_ERROR_BASE + 11), 647 + ERROR_WINHTTP_SHUTDOWN = (WINHTTP_ERROR_BASE + 12), 648 + 649 + ERROR_WINHTTP_LOGIN_FAILURE = (WINHTTP_ERROR_BASE + 15), 650 + ERROR_WINHTTP_OPERATION_CANCELLED = (WINHTTP_ERROR_BASE + 17), 651 + ERROR_WINHTTP_INCORRECT_HANDLE_TYPE = (WINHTTP_ERROR_BASE + 18), 652 + ERROR_WINHTTP_INCORRECT_HANDLE_STATE = (WINHTTP_ERROR_BASE + 19), 653 + ERROR_WINHTTP_CANNOT_CONNECT = (WINHTTP_ERROR_BASE + 29), 654 + ERROR_WINHTTP_CONNECTION_ERROR = (WINHTTP_ERROR_BASE + 30), 655 + ERROR_WINHTTP_RESEND_REQUEST = (WINHTTP_ERROR_BASE + 32), 656 + 657 + ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED = (WINHTTP_ERROR_BASE, + 44), 658 + 659 + ERROR_WINHTTP_CANNOT_CALL_BEFORE_OPEN = (WINHTTP_ERROR_BASE + 100), 660 + ERROR_WINHTTP_CANNOT_CALL_BEFORE_SEND = (WINHTTP_ERROR_BASE + 101), 661 + ERROR_WINHTTP_CANNOT_CALL_AFTER_SEND = (WINHTTP_ERROR_BASE + 102), 662 + ERROR_WINHTTP_CANNOT_CALL_AFTER_OPEN = (WINHTTP_ERROR_BASE + 103), 663 + 664 + ERROR_WINHTTP_HEADER_NOT_FOUND = (WINHTTP_ERROR_BASE + 150), 665 + ERROR_WINHTTP_INVALID_SERVER_RESPONSE = (WINHTTP_ERROR_BASE + 152), 666 + ERROR_WINHTTP_INVALID_HEADER = (WINHTTP_ERROR_BASE + 153), 667 + ERROR_WINHTTP_INVALID_QUERY_REQUEST = (WINHTTP_ERROR_BASE + 154), 668 + ERROR_WINHTTP_HEADER_ALREADY_EXISTS = (WINHTTP_ERROR_BASE + 155), 669 + ERROR_WINHTTP_REDIRECT_FAILED = (WINHTTP_ERROR_BASE + 156), 670 + 671 + ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR = (WINHTTP_ERROR_BASE + 178), 672 + ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT = (WINHTTP_ERROR_BASE + 166), 673 + ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT = (WINHTTP_ERROR_BASE + 167), 674 + ERROR_WINHTTP_UNHANDLED_SCRIPT_TYPE = (WINHTTP_ERROR_BASE + 176), 675 + ERROR_WINHTTP_SCRIPT_EXECUTION_ERROR = (WINHTTP_ERROR_BASE + 177), 676 + 677 + ERROR_WINHTTP_NOT_INITIALIZED = (WINHTTP_ERROR_BASE + 172), 678 + ERROR_WINHTTP_SECURE_FAILURE = (WINHTTP_ERROR_BASE + 175), 679 + 680 + ERROR_WINHTTP_SECURE_CERT_DATE_INVALID = (WINHTTP_ERROR_BASE + 37), 681 + ERROR_WINHTTP_SECURE_CERT_CN_INVALID = (WINHTTP_ERROR_BASE + 38), 682 + ERROR_WINHTTP_SECURE_INVALID_CA = (WINHTTP_ERROR_BASE + 45), 683 + ERROR_WINHTTP_SECURE_CERT_REV_FAILED = (WINHTTP_ERROR_BASE + 57), 684 + ERROR_WINHTTP_SECURE_CHANNEL_ERROR = (WINHTTP_ERROR_BASE + 157), 685 + ERROR_WINHTTP_SECURE_INVALID_CERT = (WINHTTP_ERROR_BASE + 169), 686 + ERROR_WINHTTP_SECURE_CERT_REVOKED = (WINHTTP_ERROR_BASE + 170), 687 + ERROR_WINHTTP_SECURE_CERT_WRONG_USAGE = (WINHTTP_ERROR_BASE + 179), 688 + 689 + ERROR_WINHTTP_AUTODETECTION_FAILED = (WINHTTP_ERROR_BASE + 180), 690 + ERROR_WINHTTP_HEADER_COUNT_EXCEEDED = (WINHTTP_ERROR_BASE + 181), 691 + ERROR_WINHTTP_HEADER_SIZE_OVERFLOW = (WINHTTP_ERROR_BASE + 182), 692 + ERROR_WINHTTP_CHUNKED_ENCODING_HEADER_SIZE_OVERFLOW = (WINHTTP_ERROR_BASE + 183), 693 + ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW = (WINHTTP_ERROR_BASE + 184), 694 + ERROR_WINHTTP_CLIENT_CERT_NO_PRIVATE_KEY = (WINHTTP_ERROR_BASE + 185), 695 + ERROR_WINHTTP_CLIENT_CERT_NO_ACCESS_PRIVATE_KEY = (WINHTTP_ERROR_BASE + 186), 696 + 697 + WINHTTP_ERROR_LAST = (WINHTTP_ERROR_BASE + 186) 698 +} 699 + 700 +enum : DWORD { 701 + WINHTTP_RESET_STATE = 0x00000001, 702 + WINHTTP_RESET_SWPAD_CURRENT_NETWORK = 0x00000002, 703 + WINHTTP_RESET_SWPAD_ALL = 0x00000004, 704 + WINHTTP_RESET_SCRIPT_CACHE = 0x00000008, 705 + WINHTTP_RESET_ALL = 0x0000FFFF, 706 + WINHTTP_RESET_NOTIFY_NETWORK_CHANGED = 0x00010000, 707 + WINHTTP_RESET_OUT_OF_PROC = 0x00020000 708 +} 709 + 710 +enum : DWORD { 711 + WINHTTP_WEB_SOCKET_MAX_CLOSE_REASON_LENGTH = 123, 712 + WINHTTP_WEB_SOCKET_MIN_KEEPALIVE_VALUE = 15000 713 +} 714 + 715 +// Version(Windows8) || Version(Windows2012): 716 +static if (_WIN32_WINNT >= 0x602) 717 +{ 718 + enum WINHTTP_WEB_SOCKET_OPERATION : DWORD 719 + { 720 + WINHTTP_WEB_SOCKET_SEND_OPERATION = 0, 721 + WINHTTP_WEB_SOCKET_RECEIVE_OPERATION = 1, 722 + WINHTTP_WEB_SOCKET_CLOSE_OPERATION = 2, 723 + WINHTTP_WEB_SOCKET_SHUTDOWN_OPERATION = 3 724 + } 725 + enum WINHTTP_WEB_SOCKET_BUFFER_TYPE : DWORD 726 + { 727 + WINHTTP_WEB_SOCKET_BINARY_MESSAGE_BUFFER_TYPE = 0, 728 + WINHTTP_WEB_SOCKET_BINARY_FRAGMENT_BUFFER_TYPE = 1, 729 + WINHTTP_WEB_SOCKET_UTF8_MESSAGE_BUFFER_TYPE = 2, 730 + WINHTTP_WEB_SOCKET_UTF8_FRAGMENT_BUFFER_TYPE = 3, 731 + WINHTTP_WEB_SOCKET_CLOSE_BUFFER_TYPE = 4 732 + } 733 + enum WINHTTP_WEB_SOCKET_CLOSE_STATUS : DWORD 734 + { 735 + WINHTTP_WEB_SOCKET_SUCCESS_CLOSE_STATUS = 1000, 736 + WINHTTP_WEB_SOCKET_ENDPOINT_TERMINATED_CLOSE_STATUS = 1001, 737 + WINHTTP_WEB_SOCKET_PROTOCOL_ERROR_CLOSE_STATUS = 1002, 738 + WINHTTP_WEB_SOCKET_INVALID_DATA_TYPE_CLOSE_STATUS = 1003, 739 + WINHTTP_WEB_SOCKET_EMPTY_CLOSE_STATUS = 1005, 740 + WINHTTP_WEB_SOCKET_ABORTED_CLOSE_STATUS = 1006, 741 + WINHTTP_WEB_SOCKET_INVALID_PAYLOAD_CLOSE_STATUS = 1007, 742 + WINHTTP_WEB_SOCKET_POLICY_VIOLATION_CLOSE_STATUS = 1008, 743 + WINHTTP_WEB_SOCKET_MESSAGE_TOO_BIG_CLOSE_STATUS = 1009, 744 + WINHTTP_WEB_SOCKET_UNSUPPORTED_EXTENSIONS_CLOSE_STATUS = 1010, 745 + WINHTTP_WEB_SOCKET_SERVER_ERROR_CLOSE_STATUS = 1011, 746 + WINHTTP_WEB_SOCKET_SECURE_HANDSHAKE_ERROR_CLOSE_STATUS = 1015 747 + } 748 + struct WINHTTP_PROXY_RESULT_ENTRY { 749 + BOOL fProxy; 750 + BOOL fBypass; 751 + INTERNET_SCHEME ProxyScheme; 752 + PWSTR pwszProxy; 753 + INTERNET_PORT ProxyPort; 754 + } 755 + struct WINHTTP_PROXY_RESULT { 756 + DWORD cEntries; 757 + WINHTTP_PROXY_RESULT_ENTRY *pEntries; 758 + } 759 + struct WINHTTP_WEB_SOCKET_ASYNC_RESULT { 760 + WINHTTP_ASYNC_RESULT AsyncResult; 761 + WINHTTP_WEB_SOCKET_OPERATION Operation; 762 + } 763 + struct WINHTTP_WEB_SOCKET_STATUS { 764 + DWORD dwBytesTransferred; 765 + WINHTTP_WEB_SOCKET_BUFFER_TYPE eBufferType; 766 + } 767 +} 768 + 769 + 770 +extern (Windows) { 771 + BOOL WinHttpAddRequestHeaders(HINTERNET hRequest, LPCWSTR pwszHeaders, DWORD dwHeadersLength, DWORD dwModifiers); 772 + 773 + BOOL WinHttpCheckPlatform(); 774 + 775 + BOOL WinHttpCloseHandle(HINTERNET hInternet); 776 + 777 + HINTERNET WinHttpConnect(HINTERNET hSession, LPCWSTR pswzServerName, INTERNET_PORT nServerPort, DWORD dwReserved); 778 + 779 + BOOL WinHttpCrackUrl(LPCWSTR pwszUrl, DWORD dwUrlLength, DWORD dwFlags, LPURL_COMPONENTS lpUrlComponents); 780 + 781 + BOOL WinHttpCreateUrl(LPURL_COMPONENTS lpUrlComponents, DWORD dwFlags, LPWSTR pwszUrl, LPDWORD lpdwUrlLength); 782 + BOOL WinHttpDetectAutoProxyConfigUrl(DWORD dwAutoDetectFlags, LPWSTR *ppwszAutoConfigUrl); 783 + 784 + BOOL WinHttpGetDefaultProxyConfiguration(WINHTTP_PROXY_INFO *pProxyInfo); 785 + BOOL WinHttpGetIEProxyConfigForCurrentUser(WINHTTP_CURRENT_USER_IE_PROXY_CONFIG *pProxyConfig); 786 + BOOL WinHttpGetProxyForUrl(HINTERNET hSession, LPCWSTR lpcwszUrl, 787 + WINHTTP_AUTOPROXY_OPTIONS *pAutoProxyOptions, WINHTTP_PROXY_INFO *pProxyInfo); 788 + 789 + HINTERNET WinHttpOpen(LPCWSTR pwszUserAgent, DWORD dwAccessType, LPCWSTR pwszProxyName, 790 + LPCWSTR pwszProxyBypass, DWORD dwFlags); 791 + HINTERNET WinHttpOpenRequest(HINTERNET hConnect, LPCWSTR pwszVerb, LPCWSTR pwszObjectName, 792 + LPCWSTR pwszVersion, LPCWSTR pwszReferrer, 793 + LPCWSTR *ppwszAcceptTypes, DWORD dwFlags); 794 + 795 + BOOL WinHttpQueryAuthSchemes(HINTERNET hRequest, LPDWORD lpdwSupportedSchemes, 796 + LPDWORD lpdwFirstScheme, LPDWORD pdwAuthTarget); 797 + BOOL WinHttpQueryDataAvailable(HINTERNET hRequest, LPDWORD lpdwNumberOfBytesAvailable); 798 + BOOL WinHttpQueryHeaders(HINTERNET hRequest, DWORD dwInfoLevel, LPCWSTR pwszName, 799 + LPVOID lpBuffer, LPDWORD lpdwBufferLength, LPDWORD lpdwIndex); 800 + BOOL WinHttpQueryOption(HINTERNET hInternet, DWORD dwOption, LPVOID lpBuffer, 801 + LPDWORD lpdwBufferLength); 802 + 803 + BOOL WinHttpReadData(HINTERNET hRequest, LPVOID lpBuffer, DWORD dwNumberOfBytesToRead, 804 + LPDWORD lpdwNumberOfBytesRead); 805 + BOOL WinHttpReceiveResponse(HINTERNET hRequest, LPVOID lpReserved); 806 + 807 + BOOL WinHttpSendRequest(HINTERNET hRequest, LPCWSTR pwszHeaders, DWORD dwHeadersLength, 808 + LPVOID lpOptional, DWORD dwOptionalLength, DWORD dwTotalLength, DWORD_PTR dwContext); 809 + 810 + BOOL WinHttpSetCredentials(HINTERNET hRequest, DWORD AuthTargets, DWORD AuthScheme, 811 + LPCWSTR pwszUserName, LPCWSTR pwszPassword, LPVOID pAuthParams); 812 + BOOL WinHttpSetDefaultProxyConfiguration(WINHTTP_PROXY_INFO *pProxyInfo); 813 + BOOL WinHttpSetOption(HINTERNET hInternet, DWORD dwOption, LPVOID lpBuffer, DWORD dwBufferLength); 814 + WINHTTP_STATUS_CALLBACK WinHttpSetStatusCallback(HINTERNET hInternet, 815 + WINHTTP_STATUS_CALLBACK lpfnInternetCallback, 816 + DWORD dwNotificationFlags, DWORD_PTR dwReserved); 817 + BOOL WinHttpSetTimeouts(HINTERNET hInternet, int dwResolveTimeout, int dwConnectTimeout, 818 + int dwSendTimeout, int dwReceiveTimeout); 819 + 820 + BOOL WinHttpTimeFromSystemTime(const SYSTEMTIME *pst, LPWSTR pwszTime); 821 + BOOL WinHttpTimeToSystemTime(LPCWSTR pwszTime, SYSTEMTIME *pst); 822 + 823 + BOOL WinHttpWriteData(HINTERNET hRequest, LPCVOID lpBuffer, DWORD dwNumberOfBytesToWrite, 824 + LPDWORD lpdwNumberOfBytesWritten); 825 + 826 + // Version(Windows8) || Version(Windows2012): 827 + static if (_WIN32_WINNT >= 0x602) { 828 + DWORD WinHttpCreateProxyResolver(HINTERNET hSession, HINTERNET *phResolver); 829 + void WinHttpFreeProxyResult(WINHTTP_PROXY_RESULT *pProxyResult); 830 + DWORD WinHttpGetProxyForUrlEx(HINTERNET hResolver, PCWSTR pcwszUrl, 831 + WINHTTP_AUTOPROXY_OPTIONS *pAutoProxyOptions, DWORD_PTR pContext); 832 + DWORD WinHttpGetProxyResult(HINTERNET hResolver, WINHTTP_PROXY_RESULT *pProxyResult); 833 + DWORD WinHttpResetAutoProxy(HINTERNET hSession, DWORD dwFlags); 834 + DWORD WinHttpWebSocketClose(HINTERNET hWebSocket, USHORT usStatus, PVOID pvReason, DWORD dwReasonLength); 835 + HINTERNET WinHttpWebSocketCompleteUpgrade(HINTERNET hRequest, DWORD_PTR pContext); 836 + DWORD WinHttpWebSocketQueryCloseStatus(HINTERNET hWebSocket, USHORT *pusStatus, PVOID pvReason, 837 + DWORD dwReasonLength, DWORD *pdwReasonLengthConsumed); 838 + DWORD WinHttpWebSocketReceive(HINTERNET hWebSocket, PVOID pvBuffer, DWORD dwBufferLength, 839 + DWORD *pdwBytesRead, WINHTTP_WEB_SOCKET_BUFFER_TYPE *peBufferType); 840 + DWORD WinHttpWebSocketSend(HINTERNET hWebSocket, WINHTTP_WEB_SOCKET_BUFFER_TYPE eBufferType, 841 + PVOID pvBuffer, DWORD dwBufferLength); 842 + DWORD WinHttpWebSocketShutdown(HINTERNET hWebSocket, USHORT usStatus, PVOID pvReason, DWORD dwReasonLength); 843 + } 844 +}

Modified src/win32/wininet.d from [1a3947efdf6afa74] to [f0c30efc42e2bee3].

5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * by Stewart Gordon * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.wininet; 12 +pragma(lib, "wininet"); 12 13 13 14 // FIXME: check types and grouping of constants 14 15 15 16 import win32.windows; 16 17 17 18 enum { 18 19 INTERNET_INVALID_PORT_NUMBER = 0, ................................................................................ 213 214 INTERNET_STATUS_CONNECTION_CLOSED = 51, 214 215 INTERNET_STATUS_HANDLE_CREATED = 60, 215 216 INTERNET_STATUS_HANDLE_CLOSING = 70, 216 217 INTERNET_STATUS_REQUEST_COMPLETE = 100, 217 218 INTERNET_STATUS_REDIRECT = 110 218 219 } 219 220 220 -const INTERNET_INVALID_STATUS_CALLBACK 221 - = cast(INTERNET_STATUS_CALLBACK) -1; 222 - 223 221 enum { 224 222 FTP_TRANSFER_TYPE_UNKNOWN = 0, 225 223 FTP_TRANSFER_TYPE_ASCII = 1, 226 224 FTP_TRANSFER_TYPE_BINARY = 2, 227 225 FTP_TRANSFER_TYPE_MASK = 3 228 226 } 229 227 ................................................................................ 614 612 } 615 613 616 614 enum { 617 615 INTERNET_CACHE_GROUP_ADD = 0, 618 616 INTERNET_CACHE_GROUP_REMOVE = 1 619 617 } 620 618 621 -alias HANDLE HINTERNET; 622 -alias HANDLE* LPHINTERNET; 619 +mixin DECLARE_HANDLE!("HINTERNET"); // doesn't work - bug 620 +/*struct HINTERNET { 621 + HANDLE h; 622 + alias h this; 623 +}*/ 624 +alias HINTERNET* LPHINTERNET; 623 625 624 626 alias LONGLONG GROUPID; 625 627 alias WORD INTERNET_PORT; 626 628 alias WORD* LPINTERNET_PORT; 627 629 628 630 enum INTERNET_SCHEME { 629 631 INTERNET_SCHEME_PARTIAL = -2, ................................................................................ 716 718 DWORD dwKeySize; 717 719 } 718 720 alias INTERNET_CERTIFICATE_INFO* LPINTERNET_CERTIFICATE_INFO; 719 721 720 722 extern (Windows) alias void function(HINTERNET, DWORD, DWORD, PVOID, DWORD) 721 723 INTERNET_STATUS_CALLBACK; 722 724 alias INTERNET_STATUS_CALLBACK* LPINTERNET_STATUS_CALLBACK; 725 + 726 +const INTERNET_INVALID_STATUS_CALLBACK 727 + = cast(INTERNET_STATUS_CALLBACK) -1; 723 728 724 729 struct GOPHER_FIND_DATAA { 725 730 CHAR[MAX_GOPHER_DISPLAY_TEXT+1] DisplayString; 726 731 DWORD GopherType; 727 732 DWORD SizeLow; 728 733 DWORD SizeHigh; 729 734 FILETIME LastModificationTime;

Modified src/win32/winioctl.d from [0061631e5533d8ae] to [21d3d57439478e49].

Modified src/win32/winldap.d from [b2194d0c5279bcf1] to [62fd1c79ab827116].

Modified src/win32/winnetwk.d from [95bc9e92ac61060b] to [6064424d92bdbf3b].

5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * by Stewart Gordon * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.winnetwk; 12 -pragma(lib, "mpr.lib"); 12 +pragma(lib, "mpr"); 13 13 14 14 private import win32.winbase, win32.winerror, win32.winnt; 15 15 16 16 enum : DWORD { 17 17 WNNC_NET_MSNET = 0x00010000, 18 18 WNNC_NET_LANMAN = 0x00020000, 19 19 WNNC_NET_NETWARE = 0x00030000,

Modified src/win32/winnls.d from [7ac912f533a75996] to [36a7fbecd1a8b466].

5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * by Stewart Gordon * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.winnls; 12 -pragma(lib, "kernel32.lib"); 12 +pragma(lib, "kernel32"); 13 13 14 14 private import win32.basetsd, win32.w32api, win32.winbase, win32.windef; 15 15 16 16 alias DWORD LCTYPE, CALTYPE, CALID, LGRPID, GEOID, GEOTYPE, GEOCLASS; 17 17 18 18 const size_t 19 19 MAX_DEFAULTCHAR = 2, ................................................................................ 461 461 LGRPID_ARABIC, 462 462 LGRPID_VIETNAMESE, 463 463 LGRPID_INDIC, 464 464 LGRPID_GEORGIAN, 465 465 LGRPID_ARMENIAN // = 17 466 466 } 467 467 468 -static if (WINVER >= 0x500) { 468 +static if (_WIN32_WINNT >= 0x500) { 469 469 enum : LCTYPE { 470 470 LOCALE_SYEARMONTH = 0x1006, 471 471 LOCALE_SENGCURRNAME = 0x1007, 472 472 LOCALE_SNATIVECURRNAME = 0x1008, 473 473 LOCALE_IDEFAULTEBCDICCODEPAGE = 0x1012, 474 474 LOCALE_SSORTNAME = 0x1013, 475 475 LOCALE_IDIGITSUBSTITUTION = 0x1014, ................................................................................ 487 487 enum : CALTYPE { 488 488 CAL_SYEARMONTH = 47, 489 489 CAL_ITWODIGITYEARMAX = 48, 490 490 CAL_NOUSEROVERRIDE = LOCALE_NOUSEROVERRIDE, 491 491 CAL_RETURN_NUMBER = LOCALE_RETURN_NUMBER, 492 492 CAL_USE_CP_ACP = LOCALE_USE_CP_ACP 493 493 } 494 -} // (WINVER >= 0x500) 494 +} // (_WIN32_WINNT >= 0x500) 495 495 496 496 extern (Windows) { 497 497 alias BOOL function(LPSTR) CALINFO_ENUMPROCA; 498 498 alias BOOL function(LPWSTR) CALINFO_ENUMPROCW; 499 499 alias BOOL function(LPSTR, CALID) CALINFO_ENUMPROCEXA; 500 500 alias BOOL function(LPWSTR, CALID) CALINFO_ENUMPROCEXW; 501 501 alias BOOL function(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR) ................................................................................ 641 641 int FoldStringW(DWORD, LPCWSTR, int, LPWSTR, int); 642 642 UINT GetACP(); 643 643 int GetCalendarInfoA(LCID, CALID, CALTYPE, LPSTR, int, LPDWORD); 644 644 int GetCalendarInfoW(LCID, CALID, CALTYPE, LPWSTR, int, LPDWORD); 645 645 BOOL GetCPInfo(UINT, LPCPINFO); 646 646 BOOL GetCPInfoExA(UINT, DWORD, LPCPINFOEXA); 647 647 BOOL GetCPInfoExW(UINT, DWORD, LPCPINFOEXW); 648 - int GetCurrencyFormatA(LCID, DWORD, LPCSTR, CPtr!(CURRENCYFMTA), LPSTR, int); 649 - int GetCurrencyFormatW(LCID, DWORD, LPCWSTR, CPtr!(CURRENCYFMTW), LPWSTR, 648 + int GetCurrencyFormatA(LCID, DWORD, LPCSTR, const(CURRENCYFMTA)*, LPSTR, int); 649 + int GetCurrencyFormatW(LCID, DWORD, LPCWSTR, const(CURRENCYFMTW)*, LPWSTR, 650 650 int); 651 - int GetDateFormatA(LCID, DWORD, CPtr!(SYSTEMTIME), LPCSTR, LPSTR, int); 652 - int GetDateFormatW(LCID, DWORD, CPtr!(SYSTEMTIME), LPCWSTR, LPWSTR, int); 651 + int GetDateFormatA(LCID, DWORD, const(SYSTEMTIME)*, LPCSTR, LPSTR, int); 652 + int GetDateFormatW(LCID, DWORD, const(SYSTEMTIME)*, LPCWSTR, LPWSTR, int); 653 653 int GetGeoInfoA(GEOID, GEOTYPE, LPSTR, int, LANGID); 654 654 int GetGeoInfoW(GEOID, GEOTYPE, LPWSTR, int, LANGID); 655 655 int GetLocaleInfoA(LCID, LCTYPE, LPSTR, int); 656 656 int GetLocaleInfoW(LCID, LCTYPE, LPWSTR, int); 657 657 BOOL GetNLSVersion(NLS_FUNCTION, LCID, LPNLSVERSIONINFO); 658 - int GetNumberFormatA(LCID, DWORD, LPCSTR, CPtr!(NUMBERFMTA), LPSTR, int); 659 - int GetNumberFormatW(LCID, DWORD, LPCWSTR, CPtr!(NUMBERFMTW), LPWSTR, int); 658 + int GetNumberFormatA(LCID, DWORD, LPCSTR, const(NUMBERFMTA)*, LPSTR, int); 659 + int GetNumberFormatW(LCID, DWORD, LPCWSTR, const(NUMBERFMTW)*, LPWSTR, int); 660 660 UINT GetOEMCP(); 661 661 BOOL GetStringTypeA(LCID, DWORD, LPCSTR, int, LPWORD); 662 662 BOOL GetStringTypeW(DWORD, LPCWSTR, int, LPWORD); 663 663 BOOL GetStringTypeExA(LCID, DWORD, LPCSTR, int, LPWORD); 664 664 BOOL GetStringTypeExW(LCID, DWORD, LPCWSTR, int, LPWORD); 665 665 LANGID GetSystemDefaultLangID(); 666 666 LCID GetSystemDefaultLCID(); 667 667 LCID GetThreadLocale(); 668 - int GetTimeFormatA(LCID, DWORD, CPtr!(SYSTEMTIME), LPCSTR, LPSTR, int); 669 - int GetTimeFormatW(LCID, DWORD, CPtr!(SYSTEMTIME), LPCWSTR, LPWSTR, int); 668 + int GetTimeFormatA(LCID, DWORD, const(SYSTEMTIME)*, LPCSTR, LPSTR, int); 669 + int GetTimeFormatW(LCID, DWORD, const(SYSTEMTIME)*, LPCWSTR, LPWSTR, int); 670 670 LANGID GetUserDefaultLangID(); 671 671 LCID GetUserDefaultLCID(); 672 672 GEOID GetUserGeoID(GEOCLASS); 673 673 BOOL IsDBCSLeadByte(BYTE); 674 674 BOOL IsDBCSLeadByteEx(UINT, BYTE); 675 675 BOOL IsNLSDefinedString(NLS_FUNCTION, DWORD, LPNLSVERSIONINFO, LPCWSTR, 676 676 int); ................................................................................ 684 684 BOOL SetLocaleInfoA(LCID, LCTYPE, LPCSTR); 685 685 BOOL SetLocaleInfoW(LCID, LCTYPE, LPCWSTR); 686 686 BOOL SetThreadLocale(LCID); 687 687 BOOL SetUserGeoID(GEOID); 688 688 int WideCharToMultiByte(UINT, DWORD, LPCWSTR, int, LPSTR, int, LPCSTR, 689 689 LPBOOL); 690 690 691 - static if (WINVER >= 0x410) { 691 + static if (_WIN32_WINNT >= 0x410) { 692 692 BOOL EnumCalendarInfoExA(CALINFO_ENUMPROCEXA, LCID, CALID, CALTYPE); 693 693 BOOL EnumCalendarInfoExW(CALINFO_ENUMPROCEXW, LCID, CALID, CALTYPE); 694 694 BOOL EnumDateFormatsExA(DATEFMT_ENUMPROCEXA, LCID, DWORD); 695 695 BOOL EnumDateFormatsExW(DATEFMT_ENUMPROCEXW, LCID, DWORD); 696 696 BOOL IsValidLanguageGroup(LGRPID, DWORD); 697 697 } 698 698 699 - static if (WINVER >= 0x500) { 699 + static if (_WIN32_WINNT >= 0x500) { 700 700 LANGID GetSystemDefaultUILanguage(); 701 701 LANGID GetUserDefaultUILanguage(); 702 702 703 - static if (_WIN32_WINNT_ONLY) { 704 - BOOL EnumSystemLanguageGroupsA(LANGUAGEGROUP_ENUMPROCA, DWORD, 705 - LONG_PTR); 706 - BOOL EnumSystemLanguageGroupsW(LANGUAGEGROUP_ENUMPROCW, DWORD, 707 - LONG_PTR); 708 - BOOL EnumLanguageGroupLocalesA(LANGGROUPLOCALE_ENUMPROCA, LGRPID, 709 - DWORD, LONG_PTR); 710 - BOOL EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW, LGRPID, 711 - DWORD, LONG_PTR); 712 - BOOL EnumUILanguagesA(UILANGUAGE_ENUMPROCA, DWORD, LONG_PTR); 713 - BOOL EnumUILanguagesW(UILANGUAGE_ENUMPROCW, DWORD, LONG_PTR); 714 - } 703 + BOOL EnumSystemLanguageGroupsA(LANGUAGEGROUP_ENUMPROCA, DWORD, 704 + LONG_PTR); 705 + BOOL EnumSystemLanguageGroupsW(LANGUAGEGROUP_ENUMPROCW, DWORD, 706 + LONG_PTR); 707 + BOOL EnumLanguageGroupLocalesA(LANGGROUPLOCALE_ENUMPROCA, LGRPID, 708 + DWORD, LONG_PTR); 709 + BOOL EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW, LGRPID, 710 + DWORD, LONG_PTR); 711 + BOOL EnumUILanguagesA(UILANGUAGE_ENUMPROCA, DWORD, LONG_PTR); 712 + BOOL EnumUILanguagesW(UILANGUAGE_ENUMPROCW, DWORD, LONG_PTR); 715 713 } 716 714 } 717 715 718 716 version (Unicode) { 719 717 alias CALINFO_ENUMPROCW CALINFO_ENUMPROC; 720 718 alias CALINFO_ENUMPROCEXW CALINFO_ENUMPROCEX; 721 719 alias LOCALE_ENUMPROCW LOCALE_ENUMPROC; ................................................................................ 747 745 alias GetNumberFormatW GetNumberFormat; 748 746 alias GetStringTypeExW GetStringTypeEx; 749 747 alias GetTimeFormatW GetTimeFormat; 750 748 alias LCMapStringW LCMapString; 751 749 alias SetCalendarInfoW SetCalendarInfo; 752 750 alias SetLocaleInfoW SetLocaleInfo; 753 751 754 - static if (WINVER >= 0x410) { 752 + static if (_WIN32_WINNT >= 0x410) { 755 753 alias EnumCalendarInfoExW EnumCalendarInfoEx; 756 754 alias EnumDateFormatsExW EnumDateFormatsEx; 757 755 } 758 756 759 - static if (_WIN32_WINNT_ONLY && WINVER >= 0x500) { 757 + static if (_WIN32_WINNT >= 0x500) { 760 758 alias EnumSystemLanguageGroupsW EnumSystemLanguageGroups; 761 759 alias EnumLanguageGroupLocalesW EnumLanguageGroupLocales; 762 760 alias EnumUILanguagesW EnumUILanguages; 763 761 } 764 762 765 763 } else { 766 764 alias CALINFO_ENUMPROCA CALINFO_ENUMPROC; ................................................................................ 794 792 alias GetNumberFormatA GetNumberFormat; 795 793 alias GetStringTypeExA GetStringTypeEx; 796 794 alias GetTimeFormatA GetTimeFormat; 797 795 alias LCMapStringA LCMapString; 798 796 alias SetCalendarInfoA SetCalendarInfo; 799 797 alias SetLocaleInfoA SetLocaleInfo; 800 798 801 - static if (WINVER >= 0x410) { 799 + static if (_WIN32_WINNT >= 0x410) { 802 800 alias EnumCalendarInfoExA EnumCalendarInfoEx; 803 801 alias EnumDateFormatsExA EnumDateFormatsEx; 804 802 } 805 803 806 - static if (_WIN32_WINNT_ONLY && WINVER >= 0x500) { 804 + static if (_WIN32_WINNT >= 0x500) { 807 805 alias EnumSystemLanguageGroupsA EnumSystemLanguageGroups; 808 806 alias EnumLanguageGroupLocalesA EnumLanguageGroupLocales; 809 807 alias EnumUILanguagesA EnumUILanguages; 810 808 } 811 809 }

Modified src/win32/winnt.d from [217222ad3190ccc6] to [0db4dca1f0f739a5].

40 40 alias long* PLONGLONG; 41 41 alias ulong* PDWORDLONG, PULONGLONG; 42 42 43 43 // FIXME(MinGW) for __WIN64 44 44 alias void* PVOID64; 45 45 46 46 // const versions 47 -alias CPtr!(char) LPCCH, PCSTR, LPCSTR; 48 -alias CPtr!(wchar) LPCWCH, PCWCH, LPCWSTR, PCWSTR; 47 +alias const(char)* LPCCH, PCSTR, LPCSTR; 48 +alias const(wchar)* LPCWCH, PCWCH, LPCWSTR, PCWSTR; 49 49 50 50 version (Unicode) { 51 51 alias WCHAR TCHAR, _TCHAR; 52 52 } else { 53 53 alias CHAR TCHAR, _TCHAR; 54 54 } 55 55 56 -alias TCHAR TBYTE; 57 -alias TCHAR* PTCH, PTBYTE, LPTCH, PTSTR, LPTSTR, LP, PTCHAR; 58 -alias CPtr!(TCHAR) LPCTSTR; 56 +alias TCHAR TBYTE; 57 +alias TCHAR* PTCH, PTBYTE, LPTCH, PTSTR, LPTSTR, LP, PTCHAR; 58 +alias const(TCHAR)* LPCTSTR; 59 59 60 60 const char ANSI_NULL = '\0'; 61 61 const wchar UNICODE_NULL = '\0'; 62 62 63 63 const APPLICATION_ERROR_MASK = 0x20000000; 64 64 const ERROR_SEVERITY_SUCCESS = 0x00000000; 65 65 const ERROR_SEVERITY_INFORMATIONAL = 0x40000000; ................................................................................ 982 982 KEY_NOTIFY = 0x000010, 983 983 KEY_CREATE_LINK = 0x000020, 984 984 KEY_WRITE = 0x020006, 985 985 KEY_EXECUTE = 0x020019, 986 986 KEY_READ = 0x020019, 987 987 KEY_ALL_ACCESS = 0x0F003F; 988 988 989 -static if (WINVER >= 0x502) { 989 +static if (_WIN32_WINNT >= 0x502) { 990 990 const ACCESS_MASK 991 991 KEY_WOW64_64KEY = 0x000100, 992 992 KEY_WOW64_32KEY = 0x000200; 993 993 } 994 994 995 995 const DWORD 996 996 REG_WHOLE_HIVE_VOLATILE = 1, ................................................................................ 1871 1871 WT_EXECUTEINWAITTHREAD = 0x00000004, 1872 1872 WT_EXECUTEONLYONCE = 0x00000008, 1873 1873 WT_EXECUTELONGFUNCTION = 0x00000010, 1874 1874 WT_EXECUTEINTIMERTHREAD = 0x00000020, 1875 1875 WT_EXECUTEINPERSISTENTTHREAD = 0x00000080, 1876 1876 WT_TRANSFER_IMPERSONATION = 0x00000100; 1877 1877 1878 -static if (_WIN32_WINNT_ONLY) { 1879 - static if (_WIN32_WINNT >= 0x500) { 1880 - const DWORD 1881 - VER_MINORVERSION = 0x01, 1882 - VER_MAJORVERSION = 0x02, 1883 - VER_BUILDNUMBER = 0x04, 1884 - VER_PLATFORMID = 0x08, 1885 - VER_SERVICEPACKMINOR = 0x10, 1886 - VER_SERVICEPACKMAJOR = 0x20, 1887 - VER_SUITENAME = 0x40, 1888 - VER_PRODUCT_TYPE = 0x80; 1889 - 1890 - enum : DWORD { 1891 - VER_EQUAL = 1, 1892 - VER_GREATER, 1893 - VER_GREATER_EQUAL, 1894 - VER_LESS, 1895 - VER_LESS_EQUAL, 1896 - VER_AND, 1897 - VER_OR // = 7 1898 - } 1899 - } 1900 - 1901 - static if (_WIN32_WINNT >= 0x501) { 1902 - enum : ULONG { 1903 - ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION = 1, 1904 - ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, 1905 - ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, 1906 - ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION, 1907 - ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION, 1908 - ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION, 1909 - ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION, // = 7 1910 - ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES = 9 1911 - } 1878 +static if (_WIN32_WINNT >= 0x500) { 1879 + const DWORD 1880 + VER_MINORVERSION = 0x01, 1881 + VER_MAJORVERSION = 0x02, 1882 + VER_BUILDNUMBER = 0x04, 1883 + VER_PLATFORMID = 0x08, 1884 + VER_SERVICEPACKMINOR = 0x10, 1885 + VER_SERVICEPACKMAJOR = 0x20, 1886 + VER_SUITENAME = 0x40, 1887 + VER_PRODUCT_TYPE = 0x80; 1888 + 1889 + enum : DWORD { 1890 + VER_EQUAL = 1, 1891 + VER_GREATER, 1892 + VER_GREATER_EQUAL, 1893 + VER_LESS, 1894 + VER_LESS_EQUAL, 1895 + VER_AND, 1896 + VER_OR // = 7 1897 + } 1898 +} 1899 + 1900 +static if (_WIN32_WINNT >= 0x501) { 1901 + enum : ULONG { 1902 + ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION = 1, 1903 + ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, 1904 + ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, 1905 + ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION, 1906 + ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION, 1907 + ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION, 1908 + ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION, // = 7 1909 + ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES = 9 1912 1910 } 1913 1911 } 1914 1912 1915 1913 // Macros 1916 1914 BYTE BTYPE(BYTE x) { return cast(BYTE) (x & N_BTMASK); } 1917 1915 bool ISPTR(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT); } 1918 1916 bool ISFCN(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT); } ................................................................................ 2117 2115 DWORD Eip; 2118 2116 DWORD SegCs; 2119 2117 DWORD EFlags; 2120 2118 DWORD Esp; 2121 2119 DWORD SegSs; 2122 2120 BYTE[MAXIMUM_SUPPORTED_EXTENSION] ExtendedRegisters; 2123 2121 } 2122 + 2123 +} else version(X86_64) 2124 +{ 2125 + const CONTEXT_AMD64 = 0x100000; 2126 + 2127 + const CONTEXT_CONTROL = (CONTEXT_AMD64 | 0x1L); 2128 + const CONTEXT_INTEGER = (CONTEXT_AMD64 | 0x2L); 2129 + const CONTEXT_SEGMENTS = (CONTEXT_AMD64 | 0x4L); 2130 + const CONTEXT_FLOATING_POINT = (CONTEXT_AMD64 | 0x8L); 2131 + const CONTEXT_DEBUG_REGISTERS = (CONTEXT_AMD64 | 0x10L); 2132 + 2133 + const CONTEXT_FULL = (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT); 2134 + const CONTEXT_ALL = (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS); 2135 + 2136 + const CONTEXT_EXCEPTION_ACTIVE = 0x8000000; 2137 + const CONTEXT_SERVICE_ACTIVE = 0x10000000; 2138 + const CONTEXT_EXCEPTION_REQUEST = 0x40000000; 2139 + const CONTEXT_EXCEPTION_REPORTING = 0x80000000; 2140 + 2141 + const INITIAL_MXCSR = 0x1f80; 2142 + const INITIAL_FPCSR = 0x027f; 2143 + 2144 + align(16) struct M128A 2145 + { 2146 + ULONGLONG Low; 2147 + LONGLONG High; 2148 + } 2149 + alias M128A* PM128A; 2150 + 2151 + struct XMM_SAVE_AREA32 2152 + { 2153 + WORD ControlWord; 2154 + WORD StatusWord; 2155 + BYTE TagWord; 2156 + BYTE Reserved1; 2157 + WORD ErrorOpcode; 2158 + DWORD ErrorOffset; 2159 + WORD ErrorSelector; 2160 + WORD Reserved2; 2161 + DWORD DataOffset; 2162 + WORD DataSelector; 2163 + WORD Reserved3; 2164 + DWORD MxCsr; 2165 + DWORD MxCsr_Mask; 2166 + M128A[8] FloatRegisters; 2167 + M128A[16] XmmRegisters; 2168 + BYTE[96] Reserved4; 2169 + } 2170 + alias XMM_SAVE_AREA32 PXMM_SAVE_AREA32; 2171 + const LEGACY_SAVE_AREA_LENGTH = XMM_SAVE_AREA32.sizeof; 2172 + 2173 + align(16) struct CONTEXT 2174 + { 2175 + DWORD64 P1Home; 2176 + DWORD64 P2Home; 2177 + DWORD64 P3Home; 2178 + DWORD64 P4Home; 2179 + DWORD64 P5Home; 2180 + DWORD64 P6Home; 2181 + DWORD ContextFlags; 2182 + DWORD MxCsr; 2183 + WORD SegCs; 2184 + WORD SegDs; 2185 + WORD SegEs; 2186 + WORD SegFs; 2187 + WORD SegGs; 2188 + WORD SegSs; 2189 + DWORD EFlags; 2190 + DWORD64 Dr0; 2191 + DWORD64 Dr1; 2192 + DWORD64 Dr2; 2193 + DWORD64 Dr3; 2194 + DWORD64 Dr6; 2195 + DWORD64 Dr7; 2196 + DWORD64 Rax; 2197 + DWORD64 Rcx; 2198 + DWORD64 Rdx; 2199 + DWORD64 Rbx; 2200 + DWORD64 Rsp; 2201 + DWORD64 Rbp; 2202 + DWORD64 Rsi; 2203 + DWORD64 Rdi; 2204 + DWORD64 R8; 2205 + DWORD64 R9; 2206 + DWORD64 R10; 2207 + DWORD64 R11; 2208 + DWORD64 R12; 2209 + DWORD64 R13; 2210 + DWORD64 R14; 2211 + DWORD64 R15; 2212 + DWORD64 Rip; 2213 + union 2214 + { 2215 + XMM_SAVE_AREA32 FltSave; 2216 + XMM_SAVE_AREA32 FloatSave; 2217 + struct 2218 + { 2219 + M128A[2] Header; 2220 + M128A[8] Legacy; 2221 + M128A Xmm0; 2222 + M128A Xmm1; 2223 + M128A Xmm2; 2224 + M128A Xmm3; 2225 + M128A Xmm4; 2226 + M128A Xmm5; 2227 + M128A Xmm6; 2228 + M128A Xmm7; 2229 + M128A Xmm8; 2230 + M128A Xmm9; 2231 + M128A Xmm10; 2232 + M128A Xmm11; 2233 + M128A Xmm12; 2234 + M128A Xmm13; 2235 + M128A Xmm14; 2236 + M128A Xmm15; 2237 + }; 2238 + }; 2239 + M128A[26] VectorRegister; 2240 + DWORD64 VectorControl; 2241 + DWORD64 DebugControl; 2242 + DWORD64 LastBranchToRip; 2243 + DWORD64 LastBranchFromRip; 2244 + DWORD64 LastExceptionToRip; 2245 + DWORD64 LastExceptionFromRip; 2246 + } 2124 2247 2125 2248 } else { 2126 2249 static assert(false, "Unsupported CPU"); 2127 2250 // Versions for PowerPC, Alpha, SHX, and MIPS removed. 2128 2251 } 2129 2252 2130 2253 alias CONTEXT* PCONTEXT, LPCONTEXT; ................................................................................ 3568 3691 alias JOBOBJECT_EXTENDED_LIMIT_INFORMATION* PJOBOBJECT_EXTENDED_LIMIT_INFORMATION; 3569 3692 3570 3693 struct JOBOBJECT_JOBSET_INFORMATION { 3571 3694 DWORD MemberLevel; 3572 3695 } 3573 3696 alias JOBOBJECT_JOBSET_INFORMATION* PJOBOBJECT_JOBSET_INFORMATION; 3574 3697 3575 -// MinGW: Making these defines conditional on WINVER will break ddk includes 3576 -//static if (WINVER >= 0x0500) { 3698 +// MinGW: Making these defines conditional on _WIN32_WINNT will break ddk includes 3699 +//static if (_WIN32_WINNT >= 0x500) { 3577 3700 3578 3701 const DWORD 3579 3702 ES_SYSTEM_REQUIRED = 0x00000001, 3580 3703 ES_DISPLAY_REQUIRED = 0x00000002, 3581 3704 ES_USER_PRESENT = 0x00000004, 3582 3705 ES_CONTINUOUS = 0x80000000; 3583 3706 ................................................................................ 3609 3732 PowerActionShutdown, 3610 3733 PowerActionShutdownReset, 3611 3734 PowerActionShutdownOff, 3612 3735 PowerActionWarmEject 3613 3736 } 3614 3737 alias POWER_ACTION* PPOWER_ACTION; 3615 3738 3616 -static if (WINVER >= 0x600) { 3739 +static if (_WIN32_WINNT >= 0x600) { 3617 3740 enum SYSTEM_POWER_CONDITION { 3618 3741 PoAc, 3619 3742 PoDc, 3620 3743 PoHot, 3621 3744 PoConditionMaximum 3622 3745 } 3623 3746 alias SYSTEM_POWER_CONDITION* PSYSTEM_POWER_CONDITION; ................................................................................ 3841 3964 ULONG MinVideoTimeout; 3842 3965 ULONG MaxVideoTimeout; 3843 3966 ULONG MinSpindownTimeout; 3844 3967 ULONG MaxSpindownTimeout; 3845 3968 } 3846 3969 alias ADMINISTRATOR_POWER_POLICY* PADMINISTRATOR_POWER_POLICY; 3847 3970 3848 -//}//#endif /* WINVER >= 0x0500 */ 3971 +//}//#endif /* _WIN32_WINNT >= 0x500 */ 3849 3972 3850 3973 extern (Windows) { 3851 3974 alias void function(PVOID, DWORD, PVOID) PIMAGE_TLS_CALLBACK; 3852 3975 3853 - static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 3976 + static if (_WIN32_WINNT >= 0x500) { 3854 3977 alias LONG function(PEXCEPTION_POINTERS) PVECTORED_EXCEPTION_HANDLER; 3855 3978 alias void function(PVOID, BOOLEAN) WAITORTIMERCALLBACKFUNC; 3856 3979 } 3857 3980 } 3858 3981 3859 -static if (WINVER >= 0x501) { 3982 +static if (_WIN32_WINNT >= 0x501) { 3860 3983 enum HEAP_INFORMATION_CLASS { 3861 3984 HeapCompatibilityInformation 3862 3985 } 3863 3986 3864 3987 enum ACTIVATION_CONTEXT_INFO_CLASS { 3865 3988 ActivationContextBasicInformation = 1, 3866 3989 ActivationContextDetailedInformation, ................................................................................ 3886 4009 PCWSTR lpAssemblyEncodedAssemblyIdentity; 3887 4010 PCWSTR lpAssemblyManifestPath; 3888 4011 PCWSTR lpAssemblyPolicyPath; 3889 4012 PCWSTR lpAssemblyDirectoryName; 3890 4013 } 3891 4014 alias ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* 3892 4015 PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; 3893 - alias CPtr!(ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION) 4016 + alias const(ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION)* 3894 4017 PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; 3895 4018 3896 4019 struct ACTIVATION_CONTEXT_DETAILED_INFORMATION { 3897 4020 DWORD dwFlags; 3898 4021 DWORD ulFormatVersion; 3899 4022 DWORD ulAssemblyCount; 3900 4023 DWORD ulRootManifestPathType; ................................................................................ 3905 4028 DWORD ulAppDirPathChars; 3906 4029 PCWSTR lpRootManifestPath; 3907 4030 PCWSTR lpRootConfigurationPath; 3908 4031 PCWSTR lpAppDirPath; 3909 4032 } 3910 4033 alias ACTIVATION_CONTEXT_DETAILED_INFORMATION* 3911 4034 PACTIVATION_CONTEXT_DETAILED_INFORMATION; 3912 - alias CPtr!(ACTIVATION_CONTEXT_DETAILED_INFORMATION) 4035 + alias const(ACTIVATION_CONTEXT_DETAILED_INFORMATION)* 3913 4036 PCACTIVATION_CONTEXT_DETAILED_INFORMATION; 3914 4037 3915 4038 struct ACTIVATION_CONTEXT_QUERY_INDEX { 3916 4039 ULONG ulAssemblyIndex; 3917 4040 ULONG ulFileIndexInAssembly; 3918 4041 } 3919 - alias ACTIVATION_CONTEXT_QUERY_INDEX* PACTIVATION_CONTEXT_QUERY_INDEX; 3920 - alias CPtr!(ACTIVATION_CONTEXT_QUERY_INDEX) PCACTIVATION_CONTEXT_QUERY_INDEX; 4042 + alias ACTIVATION_CONTEXT_QUERY_INDEX* PACTIVATION_CONTEXT_QUERY_INDEX; 4043 + alias const(ACTIVATION_CONTEXT_QUERY_INDEX)* PCACTIVATION_CONTEXT_QUERY_INDEX; 3921 4044 3922 4045 struct ASSEMBLY_FILE_DETAILED_INFORMATION { 3923 4046 DWORD ulFlags; 3924 4047 DWORD ulFilenameLength; 3925 4048 DWORD ulPathLength; 3926 4049 PCWSTR lpFileName; 3927 4050 PCWSTR lpFilePath; 3928 4051 } 3929 4052 alias ASSEMBLY_FILE_DETAILED_INFORMATION* 3930 4053 PASSEMBLY_FILE_DETAILED_INFORMATION; 3931 - alias CPtr!(ASSEMBLY_FILE_DETAILED_INFORMATION) 4054 + alias const(ASSEMBLY_FILE_DETAILED_INFORMATION)* 3932 4055 PCASSEMBLY_FILE_DETAILED_INFORMATION; 3933 4056 } 3934 4057 3935 4058 version (Unicode) { 3936 4059 alias OSVERSIONINFOW OSVERSIONINFO; 3937 4060 alias OSVERSIONINFOEXW OSVERSIONINFOEX; 3938 4061 } else { ................................................................................ 3940 4063 alias OSVERSIONINFOEXA OSVERSIONINFOEX; 3941 4064 } 3942 4065 3943 4066 alias OSVERSIONINFO* POSVERSIONINFO, LPOSVERSIONINFO; 3944 4067 alias OSVERSIONINFOEX* POSVERSIONINFOEX, LPOSVERSIONINFOEX; 3945 4068 3946 4069 3947 -static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 4070 +static if (_WIN32_WINNT >= 0x500) { 3948 4071 extern (Windows) ULONGLONG VerSetConditionMask(ULONGLONG, DWORD, BYTE); 3949 4072 } 3950 4073 3951 4074 version (Win64) { 3952 4075 const WORD IMAGE_NT_OPTIONAL_HDR_MAGIC = IMAGE_NT_OPTIONAL_HDR64_MAGIC; 3953 4076 3954 4077 alias IMAGE_ORDINAL_FLAG64 IMAGE_ORDINAL_FLAG;

Modified src/win32/winperf.d from [785b79f8bda055b1] to [5b2657b99d3ba71d].

78 78 const PERF_100NSEC_MULTI_TIMER=(PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_DELTA_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_100NS|PERF_MULTI_COUNTER|PERF_DISPLAY_PERCENT); 79 79 const PERF_100NSEC_MULTI_TIMER_INV=(PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_DELTA_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_100NS|PERF_MULTI_COUNTER|PERF_INVERSE_COUNTER|PERF_DISPLAY_PERCENT); 80 80 const PERF_RAW_FRACTION=(PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_FRACTION|PERF_DISPLAY_PERCENT); 81 81 const PERF_RAW_BASE=(PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_BASE|PERF_DISPLAY_NOSHOW|3); 82 82 const PERF_ELAPSED_TIME=(PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_ELAPSED|PERF_OBJECT_TIMER|PERF_DISPLAY_SECONDS); 83 83 84 84 struct PERF_DATA_BLOCK { 85 - WCHAR Signature[4]; 85 + WCHAR[4] Signature; 86 86 DWORD LittleEndian; 87 87 DWORD Version; 88 88 DWORD Revision; 89 89 DWORD TotalByteLength; 90 90 DWORD HeaderLength; 91 91 DWORD NumObjectTypes; 92 92 LONG DefaultObject;

Modified src/win32/winreg.d from [e5d43e62c628c0b0] to [3495de98d7c1ed4e].

5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * by Stewart Gordon * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.winreg; 12 -pragma(lib, "advapi32.lib"); 12 +pragma(lib, "advapi32"); 13 13 14 14 private import win32.w32api, win32.winbase, win32.windef; 15 15 16 -const HKEY 16 +enum : HKEY { // for some reason, DMD errors if I don't give all the values explicitly 17 17 HKEY_CLASSES_ROOT = cast(HKEY) 0x80000000, 18 18 HKEY_CURRENT_USER = cast(HKEY) 0x80000001, 19 19 HKEY_LOCAL_MACHINE = cast(HKEY) 0x80000002, 20 20 HKEY_USERS = cast(HKEY) 0x80000003, 21 21 HKEY_PERFORMANCE_DATA = cast(HKEY) 0x80000004, 22 22 HKEY_CURRENT_CONFIG = cast(HKEY) 0x80000005, 23 - HKEY_DYN_DATA = cast(HKEY) 0x80000006; 23 + HKEY_DYN_DATA = cast(HKEY) 0x80000006 24 +} 24 25 25 26 enum : DWORD { 26 27 REG_OPTION_NON_VOLATILE, 27 28 REG_OPTION_VOLATILE 28 29 } 29 30 30 31 enum : DWORD { ................................................................................ 70 71 DWORD ve_valuelen; 71 72 DWORD ve_valueptr; 72 73 DWORD ve_type; 73 74 } 74 75 alias VALENTW* PVALENTW; 75 76 76 77 // RRF - Registry Routine Flags (for RegGetValue) 77 -static if (WINVER >= 0x600) { 78 +static if (_WIN32_WINNT >= 0x600) { 78 79 enum : DWORD { 79 80 RRF_RT_REG_NONE = 0x00000001, 80 81 RRF_RT_REG_SZ = 0x00000002, 81 82 RRF_RT_REG_EXPAND_SZ = 0x00000004, 82 83 RRF_RT_REG_BINARY = 0x00000008, 83 84 RRF_RT_REG_DWORD = 0x00000010, 84 85 RRF_RT_REG_MULTI_SZ = 0x00000020, ................................................................................ 125 126 LONG RegQueryValueExA(HKEY, LPCSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD); 126 127 LONG RegQueryValueExW(HKEY, LPCWSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD); 127 128 LONG RegReplaceKeyA(HKEY, LPCSTR, LPCSTR, LPCSTR); 128 129 LONG RegReplaceKeyW(HKEY, LPCWSTR, LPCWSTR, LPCWSTR); 129 130 LONG RegSaveKeyA(HKEY, LPCSTR, LPSECURITY_ATTRIBUTES); 130 131 LONG RegSaveKeyW(HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES); 131 132 LONG RegSetKeySecurity(HKEY, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 132 - LONG RegSetValueExA(HKEY, LPCSTR, DWORD, DWORD, CPtr!(BYTE), DWORD); 133 - LONG RegSetValueExW(HKEY, LPCWSTR, DWORD, DWORD, CPtr!(BYTE), DWORD); 133 + LONG RegSetValueExA(HKEY, LPCSTR, DWORD, DWORD, const(BYTE)*, DWORD); 134 + LONG RegSetValueExW(HKEY, LPCWSTR, DWORD, DWORD, const(BYTE)*, DWORD); 134 135 LONG RegUnLoadKeyA(HKEY, LPCSTR); 135 136 LONG RegUnLoadKeyW(HKEY, LPCWSTR); 136 - static if (_WIN32_WINDOWS >= 0x410) { 137 - LONG RegNotifyChangeKeyValue(HKEY, BOOL, DWORD, HANDLE, BOOL); 137 + LONG RegNotifyChangeKeyValue(HKEY, BOOL, DWORD, HANDLE, BOOL); 138 + 139 + BOOL AbortSystemShutdownA(LPCSTR); 140 + BOOL AbortSystemShutdownW(LPCWSTR); 141 + BOOL InitiateSystemShutdownA(LPSTR, LPSTR, DWORD, BOOL, BOOL); 142 + BOOL InitiateSystemShutdownW(LPWSTR, LPWSTR, DWORD, BOOL, BOOL); 143 + LONG RegGetKeySecurity(HKEY, SECURITY_INFORMATION, 144 + PSECURITY_DESCRIPTOR, PDWORD); 145 + LONG RegRestoreKeyA(HKEY, LPCSTR, DWORD); 146 + LONG RegRestoreKeyW(HKEY, LPCWSTR, DWORD); 147 + LONG RegSetKeySecurity(HKEY, SECURITY_INFORMATION, 148 + PSECURITY_DESCRIPTOR); 149 + 150 + static if (_WIN32_WINNT >= 0x500) { 151 + LONG RegDisablePredefinedCache(); 152 + LONG RegOpenCurrentUser(REGSAM, PHKEY); 153 + LONG RegOpenUserClassesRoot(HANDLE, DWORD, REGSAM, PHKEY); 138 154 } 139 155 140 - static if (_WIN32_WINNT_ONLY) { 141 - BOOL AbortSystemShutdownA(LPCSTR); 142 - BOOL AbortSystemShutdownW(LPCWSTR); 143 - BOOL InitiateSystemShutdownA(LPSTR, LPSTR, DWORD, BOOL, BOOL); 144 - BOOL InitiateSystemShutdownW(LPWSTR, LPWSTR, DWORD, BOOL, BOOL); 145 - LONG RegGetKeySecurity(HKEY, SECURITY_INFORMATION, 146 - PSECURITY_DESCRIPTOR, PDWORD); 147 - LONG RegRestoreKeyA(HKEY, LPCSTR, DWORD); 148 - LONG RegRestoreKeyW(HKEY, LPCWSTR, DWORD); 149 - LONG RegSetKeySecurity(HKEY, SECURITY_INFORMATION, 150 - PSECURITY_DESCRIPTOR); 151 - 152 - static if (_WIN32_WINNT >= 0x500) { 153 - LONG RegDisablePredefinedCache(); 154 - LONG RegOpenCurrentUser(REGSAM, PHKEY); 155 - LONG RegOpenUserClassesRoot(HANDLE, DWORD, REGSAM, PHKEY); 156 - } 156 + static if (_WIN32_WINNT >= 0x501) { 157 + LONG RegSaveKeyExA(HKEY, LPCSTR, LPSECURITY_ATTRIBUTES, DWORD); 158 + LONG RegSaveKeyExW(HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES, DWORD); 159 + } 157 160 158 - static if (_WIN32_WINNT >= 0x501) { 159 - LONG RegSaveKeyExA(HKEY, LPCSTR, LPSECURITY_ATTRIBUTES, DWORD); 160 - LONG RegSaveKeyExW(HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES, DWORD); 161 - } 162 - 163 - static if (_WIN32_WINNT >= 0x600) { 164 - LONG RegGetValueA(HKEY hkey, LPCSTR lpSubKey, LPCSTR lpValue, 165 - DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData); 166 - LONG RegGetValueW(HKEY hkey, LPCWSTR lpSubKey, LPCWSTR lpValue, 167 - DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData); 168 - } 161 + static if (_WIN32_WINNT >= 0x600) { 162 + LONG RegGetValueA(HKEY hkey, LPCSTR lpSubKey, LPCSTR lpValue, 163 + DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData); 164 + LONG RegGetValueW(HKEY hkey, LPCWSTR lpSubKey, LPCWSTR lpValue, 165 + DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData); 169 166 } 170 167 171 168 deprecated { 172 169 LONG RegCreateKeyA(HKEY, LPCSTR, PHKEY); 173 170 LONG RegCreateKeyW(HKEY, LPCWSTR, PHKEY); 174 171 LONG RegEnumKeyA(HKEY, DWORD, LPSTR, DWORD); 175 172 LONG RegEnumKeyW(HKEY, DWORD, LPWSTR, DWORD); ................................................................................ 196 193 alias RegQueryMultipleValuesW RegQueryMultipleValues; 197 194 alias RegQueryValueExW RegQueryValueEx; 198 195 alias RegReplaceKeyW RegReplaceKey; 199 196 alias RegSaveKeyW RegSaveKey; 200 197 alias RegSetValueExW RegSetValueEx; 201 198 alias RegUnLoadKeyW RegUnLoadKey; 202 199 203 - static if (_WIN32_WINNT_ONLY) { 204 - alias AbortSystemShutdownW AbortSystemShutdown; 205 - alias InitiateSystemShutdownW InitiateSystemShutdown; 206 - alias RegRestoreKeyW RegRestoreKey; 207 - static if (_WIN32_WINNT >= 0x501) { 208 - alias RegSaveKeyExA RegSaveKeyEx; 209 - } 210 - static if (_WIN32_WINNT >= 0x600) { 211 - alias RegGetValueW RegGetValue; 212 - } 200 + alias AbortSystemShutdownW AbortSystemShutdown; 201 + alias InitiateSystemShutdownW InitiateSystemShutdown; 202 + alias RegRestoreKeyW RegRestoreKey; 203 + static if (_WIN32_WINNT >= 0x501) { 204 + alias RegSaveKeyExA RegSaveKeyEx; 205 + } 206 + static if (_WIN32_WINNT >= 0x600) { 207 + alias RegGetValueW RegGetValue; 213 208 } 214 209 deprecated { 215 210 alias RegCreateKeyW RegCreateKey; 216 211 alias RegEnumKeyW RegEnumKey; 217 212 alias RegOpenKeyW RegOpenKey; 218 213 alias RegQueryValueW RegQueryValue; 219 214 alias RegSetValueW RegSetValue; ................................................................................ 231 226 alias RegQueryInfoKeyA RegQueryInfoKey; 232 227 alias RegQueryMultipleValuesA RegQueryMultipleValues; 233 228 alias RegQueryValueExA RegQueryValueEx; 234 229 alias RegReplaceKeyA RegReplaceKey; 235 230 alias RegSaveKeyA RegSaveKey; 236 231 alias RegSetValueExA RegSetValueEx; 237 232 alias RegUnLoadKeyA RegUnLoadKey; 238 - static if (_WIN32_WINNT_ONLY) { 239 - alias AbortSystemShutdownA AbortSystemShutdown; 240 - alias InitiateSystemShutdownA InitiateSystemShutdown; 241 - alias RegRestoreKeyW RegRestoreKey; 242 - static if (_WIN32_WINNT >= 0x501) { 243 - alias RegSaveKeyExA RegSaveKeyEx; 244 - } 245 - static if (_WIN32_WINNT >= 0x600) { 246 - alias RegGetValueA RegGetValue; 247 - } 233 + alias AbortSystemShutdownA AbortSystemShutdown; 234 + alias InitiateSystemShutdownA InitiateSystemShutdown; 235 + alias RegRestoreKeyW RegRestoreKey; 236 + static if (_WIN32_WINNT >= 0x501) { 237 + alias RegSaveKeyExA RegSaveKeyEx; 238 + } 239 + static if (_WIN32_WINNT >= 0x600) { 240 + alias RegGetValueA RegGetValue; 248 241 } 249 242 deprecated { 250 243 alias RegCreateKeyA RegCreateKey; 251 244 alias RegEnumKeyA RegEnumKey; 252 245 alias RegOpenKeyA RegOpenKey; 253 246 alias RegQueryValueA RegQueryValue; 254 247 alias RegSetValueA RegSetValue; 255 248 } 256 249 } 257 250 258 251 alias VALENT* PVALENT;

Added src/win32/winsock.d version [d9a5a4e6dafa45cb]

1 +/***********************************************************************\ 2 +* winsock.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Translated from MinGW Windows headers * 7 +* by Stewart Gordon * 8 +\***********************************************************************/ 9 +module win32.winsock; 10 + 11 +/* 12 + Definitions for winsock 1.1 13 + 14 + Portions Copyright (c) 1980, 1983, 1988, 1993 15 + The Regents of the University of California. All rights reserved. 16 + 17 + Portions Copyright (c) 1993 by Digital Equipment Corporation. 18 + */ 19 + 20 +/* DRK: This module should not be included if -version=Win32_Winsock2 has 21 + * been set. If it has, assert. I think it's better that way than letting 22 + * the user believe that it's worked. 23 + * 24 + * SG: It has now been changed so that winsock2 is the default, and 25 + * -version=Win32_Winsock1 must be set to use winsock. 26 + */ 27 +version(Win32_Winsock1) {} 28 +else { 29 + pragma(msg, "Cannot use win32.winsock without " 30 + ~ "Win32_Winsock1 defined."); 31 + static assert(false); 32 +} 33 + 34 +import win32.windef; 35 + 36 +alias char u_char; 37 +alias ushort u_short; 38 +alias uint u_int, u_long, SOCKET; 39 + 40 +const size_t FD_SETSIZE = 64; 41 + 42 +// shutdown() how types 43 +enum : int { 44 + SD_RECEIVE, 45 + SD_SEND, 46 + SD_BOTH 47 +} 48 + 49 +struct FD_SET { 50 + u_int fd_count; 51 + SOCKET[FD_SETSIZE] fd_array; 52 + 53 + static void opCall(SOCKET fd, FD_SET* set) { 54 + if (set.fd_count < FD_SETSIZE) set.fd_array[set.fd_count++] = fd; 55 + } 56 +} 57 +alias FD_SET* PFD_SET, LPFD_SET; 58 + 59 +extern(Pascal) int __WSAFDIsSet(SOCKET, FD_SET*); 60 +alias __WSAFDIsSet FD_ISSET; 61 + 62 +void FD_CLR(SOCKET fd, FD_SET* set) { 63 + for (u_int i = 0; i < set.fd_count; i++) { 64 + if (set.fd_array[i] == fd) { 65 + while (i < set.fd_count - 1) { 66 + set.fd_array[i] = set.fd_array[i+1]; 67 + i++; 68 + } 69 + set.fd_count--; 70 + break; 71 + } 72 + } 73 +} 74 + 75 +/+void FD_SET(SOCKET fd, FD_SET* set) { 76 + if (set.fd_count < FD_SETSIZE) set.fd_array[set.fd_count++] = fd; 77 +}+/ 78 + 79 +void FD_ZERO(FD_SET* set) { 80 + set.fd_count = 0; 81 +} 82 + 83 + 84 +struct TIMEVAL { 85 + int tv_sec; 86 + int tv_usec; 87 + 88 + int opCmp(TIMEVAL tv) { 89 + if (tv_sec < tv.tv_sec) return -1; 90 + if (tv_sec > tv.tv_sec) return 1; 91 + if (tv_usec < tv.tv_usec) return -1; 92 + if (tv_usec > tv.tv_usec) return 1; 93 + return 0; 94 + } 95 +} 96 +alias TIMEVAL* PTIMEVAL, LPTIMEVAL; 97 + 98 +bool timerisset(TIMEVAL tvp) { 99 + return tvp.tv_sec || tvp.tv_usec; 100 +} 101 + 102 +void timerclear(ref TIMEVAL tvp) { 103 + tvp.tv_sec = tvp.tv_usec = 0; 104 +} 105 + 106 +struct HOSTENT { 107 + char* h_name; 108 + char** h_aliases; 109 + short h_addrtype; 110 + short h_length; 111 + char** h_addr_list; 112 + 113 + char* h_addr() { return h_addr_list[0]; } 114 + char* h_addr(char* h) { return h_addr_list[0] = h; } 115 +} 116 +alias HOSTENT* PHOSTENT, LPHOSTENT; 117 + 118 +struct LINGER { 119 + u_short l_onoff; 120 + u_short l_linger; 121 +} 122 +alias LINGER* PLINGER, LPLINGER; 123 + 124 +// TOTHINKABOUT: do we need these, or are they just for internal use? 125 +/+ 126 +#define IOCPARM_MASK 0x7f 127 +#define IOC_VOID 0x20000000 128 +#define IOC_OUT 0x40000000 129 +#define IOC_IN 0x80000000 130 +#define IOC_INOUT (IOC_IN|IOC_OUT) 131 + 132 +#define _IO(x,y) (IOC_VOID|((x)<<8)|(y)) 133 +#define _IOR(x,y,t) (IOC_OUT|(((int)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) 134 +#define _IOW(x,y,t) (IOC_IN|(((int)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) 135 + 136 +#define FIONBIO _IOW('f', 126, u_long) 137 +#define FIONREAD _IOR('f', 127, u_long) 138 +#define FIOASYNC _IOW('f', 125, u_long) 139 +#define SIOCSHIWAT _IOW('s', 0, u_long) 140 +#define SIOCGHIWAT _IOR('s', 1, u_long) 141 +#define SIOCSLOWAT _IOW('s', 2, u_long) 142 +#define SIOCGLOWAT _IOR('s', 3, u_long) 143 +#define SIOCATMARK _IOR('s', 7, u_long) 144 ++/ 145 + 146 +enum : DWORD { 147 + FIONBIO = 0x8004667E, 148 + FIONREAD = 0x4004667F, 149 + FIOASYNC = 0x8004667D, 150 + SIOCSHIWAT = 0x80047300, 151 + SIOCGHIWAT = 0x40047301, 152 + SIOCSLOWAT = 0x80047302, 153 + SIOCGLOWAT = 0x40047303, 154 + SIOCATMARK = 0x40047307 155 +} 156 + 157 +struct netent { 158 + char* n_name; 159 + char** n_aliases; 160 + short n_addrtype; 161 + u_long n_net; 162 +} 163 + 164 +struct SERVENT { 165 + char* s_name; 166 + char** s_aliases; 167 + short s_port; 168 + char* s_proto; 169 +} 170 +alias SERVENT* PSERVENT, LPSERVENT; 171 + 172 +struct PROTOENT { 173 + char* p_name; 174 + char** p_aliases; 175 + short p_proto; 176 +} 177 +alias PROTOENT* PPROTOENT, LPPROTOENT; 178 + 179 +enum : int { 180 + IPPROTO_IP = 0, 181 + IPPROTO_ICMP = 1, 182 + IPPROTO_IGMP = 2, 183 + IPPROTO_GGP = 3, 184 + IPPROTO_TCP = 6, 185 + IPPROTO_PUP = 12, 186 + IPPROTO_UDP = 17, 187 + IPPROTO_IDP = 22, 188 + IPPROTO_ND = 77, 189 + IPPROTO_RAW = 255, 190 + IPPROTO_MAX = 256 191 +} 192 + 193 +// These are not documented on the MSDN site 194 +enum { 195 + IPPORT_ECHO = 7, 196 + IPPORT_DISCARD = 9, 197 + IPPORT_SYSTAT = 11, 198 + IPPORT_DAYTIME = 13, 199 + IPPORT_NETSTAT = 15, 200 + IPPORT_FTP = 21, 201 + IPPORT_TELNET = 23, 202 + IPPORT_SMTP = 25, 203 + IPPORT_TIMESERVER = 37, 204 + IPPORT_NAMESERVER = 42, 205 + IPPORT_WHOIS = 43, 206 + IPPORT_MTP = 57, 207 + IPPORT_TFTP = 69, 208 + IPPORT_RJE = 77, 209 + IPPORT_FINGER = 79, 210 + IPPORT_TTYLINK = 87, 211 + IPPORT_SUPDUP = 95, 212 + IPPORT_EXECSERVER = 512, 213 + IPPORT_LOGINSERVER = 513, 214 + IPPORT_CMDSERVER = 514, 215 + IPPORT_EFSSERVER = 520, 216 + IPPORT_BIFFUDP = 512, 217 + IPPORT_WHOSERVER = 513, 218 + IPPORT_ROUTESERVER = 520, 219 + IPPORT_RESERVED = 1024 220 +} 221 + 222 +// These are not documented on the MSDN site 223 +enum { 224 + IMPLINK_IP = 155, 225 + IMPLINK_LOWEXPER = 156, 226 + IMPLINK_HIGHEXPER = 158 227 +} 228 + 229 +struct IN_ADDR { 230 + union { 231 + struct { u_char s_net, s_host, s_lh, s_impno; } 232 + struct { u_short s_w1, s_imp; } 233 + u_long s_addr; 234 + } 235 +} 236 +alias IN_ADDR* PIN_ADDR, LPIN_ADDR; 237 + 238 +// IN_CLASSx are not used anywhere or documented on MSDN. 239 +bool IN_CLASSA(int i) { 240 + return (i & 0x80000000) == 0; 241 +} 242 + 243 +const IN_CLASSA_NET = 0xff000000; 244 +const IN_CLASSA_NSHIFT = 24; 245 +const IN_CLASSA_HOST = 0x00ffffff; 246 +const IN_CLASSA_MAX = 128; 247 + 248 +bool IN_CLASSB(int i) { 249 + return (i & 0xC0000000) == 0x80000000; 250 +} 251 + 252 +const IN_CLASSB_NET = 0xffff0000; 253 +const IN_CLASSB_NSHIFT = 16; 254 +const IN_CLASSB_HOST = 0x0000ffff; 255 +const IN_CLASSB_MAX = 65536; 256 + 257 +bool IN_CLASSC(int i) { 258 + return (i & 0xE0000000) == 0xC0000000; 259 +} 260 + 261 +const IN_CLASSC_NET = 0xffffff00; 262 +const IN_CLASSC_NSHIFT = 8; 263 +const IN_CLASSC_HOST = 0x000000ff; 264 + 265 +const u_long 266 + INADDR_ANY = 0, 267 + INADDR_LOOPBACK = 0x7F000001, 268 + INADDR_BROADCAST = 0xFFFFFFFF, 269 + INADDR_NONE = 0xFFFFFFFF; 270 + 271 +struct SOCKADDR_IN { 272 + short sin_family; 273 + u_short sin_port; 274 + IN_ADDR sin_addr; 275 + char[8] sin_zero; 276 +} 277 +alias SOCKADDR_IN* PSOCKADDR_IN, LPSOCKADDR_IN; 278 + 279 +const size_t 280 + WSADESCRIPTION_LEN = 256, 281 + WSASYS_STATUS_LEN = 128; 282 + 283 +struct WSADATA { 284 + WORD wVersion; 285 + WORD wHighVersion; 286 + char[WSADESCRIPTION_LEN+1] szDescription; 287 + char[WSASYS_STATUS_LEN+1] szSystemStatus; 288 + ushort iMaxSockets; 289 + ushort iMaxUdpDg; 290 + char* lpVendorInfo; 291 +} 292 +alias WSADATA* LPWSADATA; 293 + 294 +// This is not documented on the MSDN site 295 +const IP_OPTIONS = 1; 296 + 297 +const int 298 + SO_DEBUG = 1, 299 + SO_ACCEPTCONN = 2, 300 + SO_REUSEADDR = 4, 301 + SO_KEEPALIVE = 8, 302 + SO_DONTROUTE = 16, 303 + SO_BROADCAST = 32, 304 + SO_USELOOPBACK = 64, 305 + SO_LINGER = 128, 306 + SO_OOBINLINE = 256, 307 + SO_DONTLINGER = ~SO_LINGER; 308 + 309 +enum : int { 310 + SO_SNDBUF = 0x1001, 311 + SO_RCVBUF, 312 + SO_SNDLOWAT, 313 + SO_RCVLOWAT, 314 + SO_SNDTIMEO, 315 + SO_RCVTIMEO, 316 + SO_ERROR, 317 + SO_TYPE // = 0x1008 318 +} 319 + 320 +/* 321 + * Note that the next 5 IP defines are specific to WinSock 1.1 (wsock32.dll). 322 + * They will cause errors or unexpected results if used with the 323 + * (gs)etsockopts exported from the WinSock 2 lib, ws2_32.dll. Refer ws2tcpip.h. 324 + */ 325 +enum : int { 326 + IP_MULTICAST_IF = 2, 327 + IP_MULTICAST_TTL, 328 + IP_MULTICAST_LOOP, 329 + IP_ADD_MEMBERSHIP, 330 + IP_DROP_MEMBERSHIP 331 +} 332 + 333 +// These are not documented on the MSDN site 334 +const IP_DEFAULT_MULTICAST_TTL = 1; 335 +const IP_DEFAULT_MULTICAST_LOOP = 1; 336 +const IP_MAX_MEMBERSHIPS = 20; 337 + 338 +struct ip_mreq { 339 + IN_ADDR imr_multiaddr; 340 + IN_ADDR imr_interface; 341 +} 342 + 343 +const SOCKET INVALID_SOCKET = uint.max; 344 +const int SOCKET_ERROR = -1; 345 + 346 +enum : int { 347 + SOCK_STREAM = 1, 348 + SOCK_DGRAM, 349 + SOCK_RAW, 350 + SOCK_RDM, 351 + SOCK_SEQPACKET 352 +} 353 + 354 +const int TCP_NODELAY = 1; 355 + 356 +enum : int { 357 + AF_UNSPEC, 358 + AF_UNIX, 359 + AF_INET, 360 + AF_IMPLINK, 361 + AF_PUP, 362 + AF_CHAOS, 363 + AF_IPX, // = 6 364 + AF_NS = 6, 365 + AF_ISO, 366 + AF_OSI = AF_ISO, 367 + AF_ECMA, 368 + AF_DATAKIT, 369 + AF_CCITT, 370 + AF_SNA, 371 + AF_DECnet, 372 + AF_DLI, 373 + AF_LAT, 374 + AF_HYLINK, 375 + AF_APPLETALK, 376 + AF_NETBIOS, 377 + AF_VOICEVIEW, 378 + AF_FIREFOX, 379 + AF_UNKNOWN1, 380 + AF_BAN, 381 + AF_ATM, 382 + AF_INET6, 383 + AF_MAX // = 24 384 +} 385 + 386 +struct SOCKADDR { 387 + u_short sa_family; 388 + char[14] sa_data; 389 +} 390 +alias SOCKADDR* PSOCKADDR, LPSOCKADDR; 391 + 392 +struct sockproto { 393 + u_short sp_family; 394 + u_short sp_protocol; 395 +} 396 + 397 +enum : int { 398 + PF_UNSPEC = AF_UNSPEC, 399 + PF_UNIX = AF_UNIX, 400 + PF_INET = AF_INET, 401 + PF_IMPLINK = AF_IMPLINK, 402 + PF_PUP = AF_PUP, 403 + PF_CHAOS = AF_CHAOS, 404 + PF_NS = AF_NS, 405 + PF_IPX = AF_IPX, 406 + PF_ISO = AF_ISO, 407 + PF_OSI = AF_OSI, 408 + PF_ECMA = AF_ECMA, 409 + PF_DATAKIT = AF_DATAKIT, 410 + PF_CCITT = AF_CCITT, 411 + PF_SNA = AF_SNA, 412 + PF_DECnet = AF_DECnet, 413 + PF_DLI = AF_DLI, 414 + PF_LAT = AF_LAT, 415 + PF_HYLINK = AF_HYLINK, 416 + PF_APPLETALK = AF_APPLETALK, 417 + PF_VOICEVIEW = AF_VOICEVIEW, 418 + PF_FIREFOX = AF_FIREFOX, 419 + PF_UNKNOWN1 = AF_UNKNOWN1, 420 + PF_BAN = AF_BAN, 421 + PF_ATM = AF_ATM, 422 + PF_INET6 = AF_INET6, 423 + PF_MAX = AF_MAX 424 +} 425 + 426 +const int SOL_SOCKET = 0xFFFF; 427 + 428 +const int SOMAXCONN = 5; 429 + 430 +const int 431 + MSG_OOB = 1, 432 + MSG_PEEK = 2, 433 + MSG_DONTROUTE = 4, 434 + MSG_MAXIOVLEN = 16, 435 + MSG_PARTIAL = 0x8000; 436 + 437 +const size_t MAXGETHOSTSTRUCT = 1024; 438 + 439 +const int 440 + FD_READ = 1, 441 + FD_WRITE = 2, 442 + FD_OOB = 4, 443 + FD_ACCEPT = 8, 444 + FD_CONNECT = 16, 445 + FD_CLOSE = 32; 446 + 447 +enum : int { 448 + WSABASEERR = 10000, 449 + WSAEINTR = 10004, 450 + WSAEBADF = 10009, 451 + WSAEACCES = 10013, 452 + WSAEFAULT = 10014, 453 + WSAEINVAL = 10022, 454 + WSAEMFILE = 10024, 455 + WSAEWOULDBLOCK = 10035, 456 + WSAEINPROGRESS = 10036, 457 + WSAEALREADY = 10037, 458 + WSAENOTSOCK = 10038, 459 + WSAEDESTADDRREQ = 10039, 460 + WSAEMSGSIZE = 10040, 461 + WSAEPROTOTYPE = 10041, 462 + WSAENOPROTOOPT = 10042, 463 + WSAEPROTONOSUPPORT = 10043, 464 + WSAESOCKTNOSUPPORT = 10044, 465 + WSAEOPNOTSUPP = 10045, 466 + WSAEPFNOSUPPORT = 10046, 467 + WSAEAFNOSUPPORT = 10047, 468 + WSAEADDRINUSE = 10048, 469 + WSAEADDRNOTAVAIL = 10049, 470 + WSAENETDOWN = 10050, 471 + WSAENETUNREACH = 10051, 472 + WSAENETRESET = 10052, 473 + WSAECONNABORTED = 10053, 474 + WSAECONNRESET = 10054, 475 + WSAENOBUFS = 10055, 476 + WSAEISCONN = 10056, 477 + WSAENOTCONN = 10057, 478 + WSAESHUTDOWN = 10058, 479 + WSAETOOMANYREFS = 10059, 480 + WSAETIMEDOUT = 10060, 481 + WSAECONNREFUSED = 10061, 482 + WSAELOOP = 10062, 483 + WSAENAMETOOLONG = 10063, 484 + WSAEHOSTDOWN = 10064, 485 + WSAEHOSTUNREACH = 10065, 486 + WSAENOTEMPTY = 10066, 487 + WSAEPROCLIM = 10067, 488 + WSAEUSERS = 10068, 489 + WSAEDQUOT = 10069, 490 + WSAESTALE = 10070, 491 + WSAEREMOTE = 10071, 492 + WSAEDISCON = 10101, 493 + WSASYSNOTREADY = 10091, 494 + WSAVERNOTSUPPORTED = 10092, 495 + WSANOTINITIALISED = 10093, 496 + WSAHOST_NOT_FOUND = 11001, 497 + WSATRY_AGAIN = 11002, 498 + WSANO_RECOVERY = 11003, 499 + WSANO_DATA = 11004, 500 + WSANO_ADDRESS = WSANO_DATA 501 +} 502 + 503 +alias WSAGetLastError h_errno; 504 + 505 +enum : int { 506 + HOST_NOT_FOUND = WSAHOST_NOT_FOUND, 507 + TRY_AGAIN = WSATRY_AGAIN, 508 + NO_RECOVERY = WSANO_RECOVERY, 509 + NO_DATA = WSANO_DATA, 510 + NO_ADDRESS = WSANO_ADDRESS 511 +} 512 + 513 +extern (Pascal) { 514 + SOCKET accept(SOCKET, SOCKADDR*, int*); 515 + int bind(SOCKET, const(SOCKADDR)*, int); 516 + int closesocket(SOCKET); 517 + int connect(SOCKET, const(SOCKADDR)*, int); 518 + int ioctlsocket(SOCKET, int, u_long*); 519 + int getpeername(SOCKET, SOCKADDR*, int*); 520 + int getsockname(SOCKET, SOCKADDR*, int*); 521 + int getsockopt(SOCKET, int, int, char*, int*); 522 + uint inet_addr(const(char)*); 523 + int listen(SOCKET, int); 524 + int recv(SOCKET, char*, int, int); 525 + int recvfrom(SOCKET, char*, int, int, SOCKADDR*, int*); 526 + int send(SOCKET, const(char)*, int, int); 527 + int sendto(SOCKET, const(char)*, int, int, const(SOCKADDR)*, int); 528 + int setsockopt(SOCKET, int, int, const(char)*, int); 529 + int shutdown(SOCKET, int); 530 + SOCKET socket(int, int, int); 531 + int WSAStartup(WORD, LPWSADATA); 532 + int WSACleanup(); 533 + void WSASetLastError(int); 534 + int WSAGetLastError(); 535 + BOOL WSAIsBlocking(); 536 + int WSAUnhookBlockingHook(); 537 + FARPROC WSASetBlockingHook(FARPROC); 538 + int WSACancelBlockingCall(); 539 + HANDLE WSAAsyncGetServByName(HWND, u_int, const(char)*, const(char)*, char*, int); 540 + HANDLE WSAAsyncGetServByPort(HWND, u_int, int, const(char)*, char*, int); 541 + HANDLE WSAAsyncGetProtoByName(HWND, u_int, const(char)*, char*, int); 542 + HANDLE WSAAsyncGetProtoByNumber(HWND, u_int, int, char*, int); 543 + HANDLE WSAAsyncGetHostByName(HWND, u_int, const(char)*, char*, int); 544 + HANDLE WSAAsyncGetHostByAddr(HWND, u_int, const(char)*, int, int, char*, int); 545 + int WSACancelAsyncRequest(HANDLE); 546 + int WSAAsyncSelect(SOCKET, HWND, u_int, int); 547 + u_long htonl(u_long); 548 + u_long ntohl(u_long); 549 + u_short htons(u_short); 550 + u_short ntohs(u_short); 551 + int select(int nfds, FD_SET*, FD_SET*, FD_SET*, const(TIMEVAL)*); 552 + int gethostname(char*, int); 553 +} 554 + 555 +extern (Windows) { 556 + char* inet_ntoa(IN_ADDR); 557 + HOSTENT* gethostbyaddr(const(char)*, int, int); 558 + HOSTENT* gethostbyname(const(char)*); 559 + SERVENT* getservbyport(int, const(char)*); 560 + SERVENT* getservbyname(const(char)*, const(char)*); 561 + PROTOENT* getprotobynumber(int); 562 + PROTOENT* getprotobyname(const(char)*); 563 +} 564 + 565 +alias MAKELONG WSAMAKEASYNCREPLY, WSAMAKESELECTREPLY; 566 +alias LOWORD WSAGETASYNCBUFLEN, WSAGETSELECTEVENT; 567 +alias HIWORD WSAGETASYNCERROR, WSAGETSELECTERROR; 568 + 569 + 570 +/* 571 + * Recent MSDN docs indicate that the MS-specific extensions exported from 572 + * mswsock.dll (AcceptEx, TransmitFile. WSARecEx and GetAcceptExSockaddrs) are 573 + * declared in mswsock.h. These extensions are not supported on W9x or WinCE. 574 + * However, code using WinSock 1.1 API may expect the declarations and 575 + * associated defines to be in this header. Thus we include mswsock.h here. 576 + * 577 + * When linking against the WinSock 1.1 lib, wsock32.dll, the mswsock functions 578 + * are automatically routed to mswsock.dll (on platforms with support). 579 + * The WinSock 2 lib, ws2_32.dll, does not contain any references to 580 + * the mswsock extensions. 581 + */ 582 + 583 +import win32.mswsock;

Modified src/win32/winsock2.d from [81fbdf8d3c153cba] to [96d84048875125a5].

3 3 * * 4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * by Daniel Keep * 8 8 \***********************************************************************/ 9 9 module win32.winsock2; 10 -pragma(lib, "Ws2_32.lib"); 10 +pragma(lib, "Ws2_32"); 11 11 12 12 /* 13 13 Definitions for winsock 2 14 14 15 15 Contributed by the WINE project. 16 16 17 17 Portions Copyright (c) 1980, 1983, 1988, 1993 ................................................................................ 606 606 NO_RECOVERY = WSANO_RECOVERY, 607 607 NO_DATA = WSANO_DATA, 608 608 NO_ADDRESS = WSANO_ADDRESS 609 609 } 610 610 611 611 extern (Windows) { 612 612 SOCKET accept(SOCKET, SOCKADDR*, int*); 613 - int bind(SOCKET, CPtr!(SOCKADDR), int); 613 + int bind(SOCKET, const(SOCKADDR)*, int); 614 614 int closesocket(SOCKET); 615 - int connect(SOCKET, CPtr!(SOCKADDR), int); 615 + int connect(SOCKET, const(SOCKADDR)*, int); 616 616 int ioctlsocket(SOCKET, int, u_long*); 617 617 int getpeername(SOCKET, SOCKADDR*, int*); 618 618 int getsockname(SOCKET, SOCKADDR*, int*); 619 619 int getsockopt(SOCKET, int, int, void*, int*); 620 - uint inet_addr(CPtr!(char)); 620 + uint inet_addr(const(char)*); 621 621 int listen(SOCKET, int); 622 622 int recv(SOCKET, ubyte*, int, int); 623 623 int recvfrom(SOCKET, ubyte*, int, int, SOCKADDR*, int*); 624 - int send(SOCKET, CPtr!(ubyte), int, int); 625 - int sendto(SOCKET, CPtr!(ubyte), int, int, CPtr!(SOCKADDR), int); 626 - int setsockopt(SOCKET, int, int, CPtr!(void), int); 624 + int send(SOCKET, const(ubyte)*, int, int); 625 + int sendto(SOCKET, const(ubyte)*, int, int, const(SOCKADDR)*, int); 626 + int setsockopt(SOCKET, int, int, const(void)*, int); 627 627 int shutdown(SOCKET, int); 628 628 SOCKET socket(int, int, int); 629 629 630 630 alias typeof(&accept) LPFN_ACCEPT; 631 631 alias typeof(&bind) LPFN_BIND; 632 632 alias typeof(&closesocket) LPFN_CLOSESOCKET; 633 633 alias typeof(&connect) LPFN_CONNECT; ................................................................................ 644 644 alias typeof(&setsockopt) LPFN_SETSOCKOPT; 645 645 alias typeof(&shutdown) LPFN_SHUTDOWN; 646 646 alias typeof(&socket) LPFN_SOCKET; 647 647 } 648 648 649 649 extern(Windows) { 650 650 char* inet_ntoa(IN_ADDR); 651 - HOSTENT* gethostbyaddr(CPtr!(char), int, int); 652 - HOSTENT* gethostbyname(CPtr!(char)); 653 - SERVENT* getservbyport(int, CPtr!(char)); 654 - SERVENT* getservbyname(CPtr!(char), CPtr!(char)); 651 + HOSTENT* gethostbyaddr(const(char)*, int, int); 652 + HOSTENT* gethostbyname(const(char)*); 653 + SERVENT* getservbyport(int, const(char)*); 654 + SERVENT* getservbyname(const(char)*, const(char)*); 655 655 PROTOENT* getprotobynumber(int); 656 - PROTOENT* getprotobyname(CPtr!(char)); 656 + PROTOENT* getprotobyname(const(char)*); 657 657 658 658 /* NOTE: DK: in the original headers, these were declared with 659 659 PASCAL linkage. Since this is at odds with the definition 660 660 of the functions themselves, and also since MinGW seems to 661 661 treat the two interchangably, I have moved them here. */ 662 662 alias typeof(&inet_ntoa) LPFN_INET_NTOA; 663 663 alias typeof(&gethostbyaddr) LPFN_GETHOSTBYADDR; ................................................................................ 693 693 alias typeof(&WSAIsBlocking) LPFN_WSAISBLOCKING; 694 694 alias typeof(&WSAUnhookBlockingHook) LPFN_WSAUNHOOKBLOCKINGHOOK; 695 695 alias typeof(&WSASetBlockingHook) LPFN_WSASETBLOCKINGHOOK; 696 696 alias typeof(&WSACancelBlockingCall) LPFN_WSACANCELBLOCKINGCALL; 697 697 } 698 698 699 699 extern(Windows) { 700 - HANDLE WSAAsyncGetServByName(HWND, u_int, CPtr!(char), CPtr!(char), char*, int); 701 - HANDLE WSAAsyncGetServByPort(HWND, u_int, int, CPtr!(char), char*, int); 702 - HANDLE WSAAsyncGetProtoByName(HWND, u_int, CPtr!(char), char*, int); 700 + HANDLE WSAAsyncGetServByName(HWND, u_int, const(char)*, const(char)*, char*, int); 701 + HANDLE WSAAsyncGetServByPort(HWND, u_int, int, const(char)*, char*, int); 702 + HANDLE WSAAsyncGetProtoByName(HWND, u_int, const(char)*, char*, int); 703 703 HANDLE WSAAsyncGetProtoByNumber(HWND, u_int, int, char*, int); 704 - HANDLE WSAAsyncGetHostByName(HWND, u_int, CPtr!(char), char*, int); 705 - HANDLE WSAAsyncGetHostByAddr(HWND, u_int, CPtr!(char), int, int, char*, int); 704 + HANDLE WSAAsyncGetHostByName(HWND, u_int, const(char)*, char*, int); 705 + HANDLE WSAAsyncGetHostByAddr(HWND, u_int, const(char)*, int, int, char*, int); 706 706 int WSACancelAsyncRequest(HANDLE); 707 707 int WSAAsyncSelect(SOCKET, HWND, u_int, long); 708 708 709 709 alias typeof(&WSAAsyncGetServByName) LPFN_WSAAsyncGetServByName; 710 710 alias typeof(&WSAAsyncGetServByPort) LPFN_WSAASYNCGETSERVBYPORT; 711 711 alias typeof(&WSAAsyncGetProtoByName) LPFN_WSAASYNCGETPROTOBYNAME; 712 712 alias typeof(&WSAAsyncGetProtoByNumber) LPFN_WSAASYNCGETPROTOBYNUMBER; ................................................................................ 717 717 } 718 718 719 719 extern(Windows) { 720 720 u_long htonl(u_long); 721 721 u_long ntohl(u_long); 722 722 u_short htons(u_short); 723 723 u_short ntohs(u_short); 724 - int select(int nfds, fd_set*, fd_set*, fd_set*, CPtr!(TIMEVAL)); 724 + int select(int nfds, fd_set*, fd_set*, fd_set*, const(TIMEVAL)*); 725 725 726 726 alias typeof(&htonl) LPFN_HTONL; 727 727 alias typeof(&ntohl) LPFN_NTOHL; 728 728 alias typeof(&htons) LPFN_HTONS; 729 729 alias typeof(&ntohs) LPFN_NTOHS; 730 730 alias typeof(&select) LPFN_SELECT; 731 731 ................................................................................ 765 765 const int SO_PROTOCOL_INFO = SO_PROTOCOL_INFOA; 766 766 767 767 const PVD_CONFIG = 0x3001; 768 768 769 769 const MSG_INTERRUPT = 0x10; 770 770 //const MSG_MAXIOVLEN = 16; // Already declared above 771 771 772 -alias HANDLE WSAEVENT; 773 -alias LPHANDLE LPWSAEVENT; 772 +mixin DECLARE_HANDLE!("WSAEVENT"); 773 +alias WSAEVENT* LPWSAEVENT; 774 774 alias OVERLAPPED WSAOVERLAPPED; 775 775 alias OVERLAPPED* LPWSAOVERLAPPED; 776 776 777 777 private import win32.winerror; 778 778 private import win32.winbase; 779 779 780 780 enum { ................................................................................ 782 782 WSA_IO_INCOMPLETE = ERROR_IO_INCOMPLETE, 783 783 WSA_INVALID_HANDLE = ERROR_INVALID_HANDLE, 784 784 WSA_INVALID_PARAMETER = ERROR_INVALID_PARAMETER, 785 785 WSA_NOT_ENOUGH_MEMORY = ERROR_NOT_ENOUGH_MEMORY, 786 786 WSA_OPERATION_ABORTED = ERROR_OPERATION_ABORTED 787 787 } 788 788 789 -const WSA_INVALID_EVENT = cast(WSAEVENT)null; 789 +const WSA_INVALID_EVENT = cast(WSAEVENT)HANDLE.init; 790 790 const WSA_MAXIMUM_WAIT_EVENTS = MAXIMUM_WAIT_OBJECTS; 791 791 const WSA_WAIT_FAILED = cast(DWORD)-1; 792 792 const WSA_WAIT_EVENT_0 = WAIT_OBJECT_0; 793 793 const WSA_WAIT_IO_COMPLETION = WAIT_IO_COMPLETION; 794 794 const WSA_WAIT_TIMEOUT = WAIT_TIMEOUT; 795 795 const WSA_INFINITE = INFINITE; 796 796 ................................................................................ 1308 1308 1309 1309 1310 1310 extern(Windows) { 1311 1311 SOCKET WSAAccept(SOCKET, SOCKADDR*, LPINT, LPCONDITIONPROC, DWORD); 1312 1312 INT WSAAddressToStringA(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOA, LPSTR, LPDWORD); 1313 1313 INT WSAAddressToStringW(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOW, LPWSTR, LPDWORD); 1314 1314 BOOL WSACloseEvent(WSAEVENT); 1315 - int WSAConnect(SOCKET, CPtr!(SOCKADDR), int, LPWSABUF, LPWSABUF, LPQOS, LPQOS); 1315 + int WSAConnect(SOCKET, const(SOCKADDR)*, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS); 1316 1316 WSAEVENT WSACreateEvent(); 1317 1317 int WSADuplicateSocketA(SOCKET, DWORD, LPWSAPROTOCOL_INFOA); 1318 1318 int WSADuplicateSocketW(SOCKET, DWORD, LPWSAPROTOCOL_INFOW); 1319 1319 INT WSAEnumNameSpaceProvidersA(LPDWORD, LPWSANAMESPACE_INFOA); 1320 1320 INT WSAEnumNameSpaceProvidersW(LPDWORD, LPWSANAMESPACE_INFOW); 1321 1321 int WSAEnumNetworkEvents(SOCKET, WSAEVENT, LPWSANETWORKEVENTS); 1322 1322 int WSAEnumProtocolsA(LPINT, LPWSAPROTOCOL_INFOA, LPDWORD); ................................................................................ 1329 1329 INT WSAGetServiceClassNameByClassIdA(LPGUID, LPSTR, LPDWORD); 1330 1330 INT WSAGetServiceClassNameByClassIdW(LPGUID, LPWSTR, LPDWORD); 1331 1331 int WSAHtonl(SOCKET, uint, uint*); 1332 1332 int WSAHtons(SOCKET, ushort, ushort*); 1333 1333 INT WSAInstallServiceClassA(LPWSASERVICECLASSINFOA); 1334 1334 INT WSAInstallServiceClassW(LPWSASERVICECLASSINFOW); 1335 1335 int WSAIoctl(SOCKET, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); 1336 - SOCKET WSAJoinLeaf(SOCKET, CPtr!(SOCKADDR), int, LPWSABUF, LPWSABUF, LPQOS, LPQOS, DWORD); 1336 + SOCKET WSAJoinLeaf(SOCKET, const(SOCKADDR)*, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS, DWORD); 1337 1337 INT WSALookupServiceBeginA(LPWSAQUERYSETA, DWORD, LPHANDLE); 1338 1338 INT WSALookupServiceBeginW(LPWSAQUERYSETW lpqsRestrictions, DWORD, LPHANDLE); 1339 1339 INT WSALookupServiceNextA(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETA); 1340 1340 INT WSALookupServiceNextW(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETW); 1341 1341 INT WSALookupServiceEnd(HANDLE); 1342 1342 int WSANSPIoctl(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPWSACOMPLETION); /* XP or .NET Server */ 1343 1343 int WSANtohl(SOCKET, uint, uint*); ................................................................................ 1345 1345 int WSARecv(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); 1346 1346 int WSARecvDisconnect(SOCKET, LPWSABUF); 1347 1347 int WSARecvFrom(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, SOCKADDR*, LPINT, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); 1348 1348 INT WSARemoveServiceClass(LPGUID); 1349 1349 BOOL WSAResetEvent(WSAEVENT); 1350 1350 int WSASend(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); 1351 1351 int WSASendDisconnect(SOCKET, LPWSABUF); 1352 - int WSASendTo(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, CPtr!(SOCKADDR), int, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); 1352 + int WSASendTo(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, const(SOCKADDR)*, int, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); 1353 1353 BOOL WSASetEvent(WSAEVENT); 1354 1354 INT WSASetServiceA(LPWSAQUERYSETA, WSAESETSERVICEOP, DWORD); // NB: was declared with "WSAAPI" linkage 1355 1355 INT WSASetServiceW(LPWSAQUERYSETW, WSAESETSERVICEOP, DWORD); 1356 1356 SOCKET WSASocketA(int, int, int, LPWSAPROTOCOL_INFOA, GROUP, DWORD); 1357 1357 SOCKET WSASocketW(int, int, int, LPWSAPROTOCOL_INFOW, GROUP, DWORD); 1358 1358 INT WSAStringToAddressA(LPSTR, INT, LPWSAPROTOCOL_INFOA, LPSOCKADDR, LPINT); 1359 1359 INT WSAStringToAddressW(LPWSTR, INT, LPWSAPROTOCOL_INFOW, LPSOCKADDR, LPINT); 1360 - DWORD WSAWaitForMultipleEvents(DWORD, CPtr!(WSAEVENT), BOOL, DWORD, BOOL); 1360 + DWORD WSAWaitForMultipleEvents(DWORD, const(WSAEVENT)*, BOOL, DWORD, BOOL); 1361 1361 1362 1362 alias typeof(&WSAAccept) LPFN_WSAACCEPT; 1363 1363 alias typeof(&WSAAddressToStringA) LPFN_WSAADDRESSTOSTRINGA; 1364 1364 alias typeof(&WSAAddressToStringW) LPFN_WSAADDRESSTOSTRINGW; 1365 1365 alias typeof(&WSACloseEvent) LPFN_WSACLOSEEVENT; 1366 1366 alias typeof(&WSAConnect) LPFN_WSACONNECT; 1367 1367 alias typeof(&WSACreateEvent) LPFN_WSACREATEEVENT;

Modified src/win32/winspool.d from [fa72ba923e60f447] to [fe52fc6495d0d1f8].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.winspool; 11 -pragma(lib, "winspool.lib"); 11 +pragma(lib, "winspool"); 12 12 13 13 private import win32.w32api, win32.windef, win32.wingdi; 14 14 private import win32.winbase; // for SYSTEMTIME 15 15 16 16 // FIXME: clean up Windows version support 17 17 18 18 const DI_CHANNEL=1; ................................................................................ 631 631 632 632 struct PRINTER_NOTIFY_INFO_DATA { 633 633 WORD Type; 634 634 WORD Field; 635 635 DWORD Reserved; 636 636 DWORD Id; 637 637 union _NotifyData { 638 - DWORD adwData[2]; 638 + DWORD[2] adwData; 639 639 struct Data { 640 640 DWORD cbBuf; 641 641 PVOID pBuf; 642 642 } 643 643 } 644 644 _NotifyData NotifyData; 645 645 } 646 646 alias PRINTER_NOTIFY_INFO_DATA* PPRINTER_NOTIFY_INFO_DATA, LPPRINTER_NOTIFY_INFO_DATA; 647 647 648 648 struct PRINTER_NOTIFY_INFO { 649 649 DWORD Version; 650 650 DWORD Flags; 651 651 DWORD Count; 652 - PRINTER_NOTIFY_INFO_DATA aData[1]; 652 + PRINTER_NOTIFY_INFO_DATA[1] aData; 653 653 } 654 654 alias PRINTER_NOTIFY_INFO* PPRINTER_NOTIFY_INFO, LPPRINTER_NOTIFY_INFO; 655 655 656 656 struct FORM_INFO_1A { 657 657 DWORD Flags; 658 658 LPSTR pName; 659 659 SIZEL Size; ................................................................................ 749 749 BOOL EnumPrintProcessorsA(LPSTR, LPSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD); 750 750 BOOL EnumPrintProcessorsW(LPWSTR, LPWSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD); 751 751 BOOL FindClosePrinterChangeNotification(HANDLE); 752 752 HANDLE FindFirstPrinterChangeNotification(HANDLE, DWORD, DWORD, PVOID); 753 753 HANDLE FindNextPrinterChangeNotification(HANDLE, PDWORD, PVOID, PVOID*); 754 754 BOOL FreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO); 755 755 756 -static if (_WIN32_WINNT >= 0x0500) { 756 +static if (_WIN32_WINNT >= 0x500) { 757 757 BOOL GetDefaultPrinterA(LPSTR, LPDWORD); 758 758 BOOL GetDefaultPrinterW(LPWSTR, LPDWORD); 759 759 } 760 760 761 761 BOOL GetFormA(HANDLE, LPSTR, DWORD, PBYTE, DWORD, PDWORD); 762 762 BOOL GetFormW(HANDLE, LPWSTR, DWORD, PBYTE, DWORD, PDWORD); 763 763 BOOL GetJobA(HANDLE, DWORD, DWORD, PBYTE, DWORD, PDWORD); ................................................................................ 843 843 alias EnumPortsW EnumPorts; 844 844 alias EnumPrinterDataW EnumPrinterData; 845 845 alias EnumPrinterDriversW EnumPrinterDrivers; 846 846 alias EnumPrintersW EnumPrinters; 847 847 alias EnumPrintProcessorDatatypesW EnumPrintProcessorDatatypes; 848 848 alias EnumPrintProcessorsW EnumPrintProcessors; 849 849 850 -static if (_WIN32_WINNT >= 0x0500) { 850 +static if (_WIN32_WINNT >= 0x500) { 851 851 alias GetDefaultPrinterW GetDefaultPrinter; 852 852 } 853 853 854 854 alias GetFormW GetForm; 855 855 alias GetJobW GetJob; 856 856 alias GetPrinterW GetPrinter; 857 857 alias GetPrinterDataW GetPrinterData; ................................................................................ 915 915 alias EnumPortsA EnumPorts; 916 916 alias EnumPrinterDataA EnumPrinterData; 917 917 alias EnumPrinterDriversA EnumPrinterDrivers; 918 918 alias EnumPrintersA EnumPrinters; 919 919 alias EnumPrintProcessorDatatypesA EnumPrintProcessorDatatypes; 920 920 alias EnumPrintProcessorsA EnumPrintProcessors; 921 921 922 -static if (_WIN32_WINNT >= 0x0500) { 922 +static if (_WIN32_WINNT >= 0x500) { 923 923 alias GetDefaultPrinterA GetDefaultPrinter; 924 924 } 925 925 926 926 alias GetFormA GetForm; 927 927 alias GetJobA GetJob; 928 928 alias GetPrinterA GetPrinter; 929 929 alias GetPrinterDataA GetPrinterData;

Modified src/win32/winsvc.d from [59233b3c2f66ba16] to [1045de9392b75c75].

5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * by Stewart Gordon * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.winsvc; 12 -pragma(lib, "advapi32.lib"); 12 +pragma(lib, "advapi32"); 13 13 14 14 private import win32.w32api, win32.windef; 15 - 16 -static assert (_WIN32_WINNT_ONLY, 17 - "win32.winsvc is available only if version WindowsNTonly, WindowsXP, " 18 - "Windows2003 or WindowsVista is set"); 19 - 20 15 21 16 // FIXME: check Windows version support 22 17 23 18 const TCHAR[] 24 19 SERVICES_ACTIVE_DATABASE = "ServicesActive", 25 20 SERVICES_FAILED_DATABASE = "ServicesFailed"; 26 21 ................................................................................ 183 178 184 179 struct SERVICE_TABLE_ENTRYW { 185 180 LPWSTR lpServiceName; 186 181 LPSERVICE_MAIN_FUNCTIONW lpServiceProc; 187 182 } 188 183 alias SERVICE_TABLE_ENTRYW* LPSERVICE_TABLE_ENTRYW; 189 184 190 -alias HANDLE SC_HANDLE; 191 -alias HANDLE* LPSC_HANDLE; 185 +mixin DECLARE_HANDLE!("SC_HANDLE"); 186 +alias SC_HANDLE* LPSC_HANDLE; 192 187 alias void* SC_LOCK; 193 -alias DWORD SERVICE_STATUS_HANDLE; 188 +mixin DECLARE_HANDLE!("SERVICE_STATUS_HANDLE"); 194 189 195 190 extern (Windows) { 196 191 alias void function(DWORD) LPHANDLER_FUNCTION; 197 192 alias DWORD function(DWORD, DWORD, LPVOID, LPVOID) LPHANDLER_FUNCTION_EX; 198 193 } 199 194 200 195 static if (_WIN32_WINNT >= 0x500) {

Modified src/win32/winuser.d from [b45c73c216c900bc] to [71091da201e7d6e2].

4 4 * Windows API header module * 5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * * 8 8 * Placed into public domain * 9 9 \***********************************************************************/ 10 10 module win32.winuser; 11 -pragma(lib, "user32.lib"); 11 +pragma(lib, "user32"); 12 12 13 13 // Conversion Notes: 14 14 // The following macros were for win16 only, and are not included in this file: 15 15 //#define EnumTaskWindows(h, f, p) EnumThreadWindows((DWORD)h, f, p) 16 16 //#define PostAppMessageA(t, m, w, l) PostThreadMessageA((DWORD)t, m, w, l) 17 17 //#define PostAppMessageW(t, m, w, l) PostThreadMessageW((DWORD)t, m, w, l) 18 18 //#define GetSysModalWindow() (NULL) ................................................................................ 26 26 // FIXME: clean up Windows version support 27 27 28 28 template MAKEINTATOM_T(int i) { 29 29 const LPTSTR MAKEINTATOM_T = cast(LPTSTR) i; 30 30 } 31 31 32 32 const WC_DIALOG = MAKEINTATOM_T!(0x8002); 33 + 34 +const FAPPCOMMAND_MOUSE = 0x8000; 35 +const FAPPCOMMAND_KEY = 0; 36 +const FAPPCOMMAND_OEM = 0x1000; 37 +const FAPPCOMMAND_MASK = 0xF000; 33 38 34 39 const FVIRTKEY = 1; 35 40 const FNOINVERT = 2; 36 41 const FSHIFT = 4; 37 42 const FCONTROL = 8; 38 43 const FALT = 16; 39 44 ................................................................................ 82 87 HCBT_CLICKSKIPPED, 83 88 HCBT_KEYSKIPPED, 84 89 HCBT_SYSCOMMAND, 85 90 HCBT_SETFOCUS // = 9 86 91 } 87 92 88 93 enum { 89 - CF_TEXT = 1, 94 + CF_TEXT = 0x0001, 90 95 CF_BITMAP, 91 96 CF_METAFILEPICT, 92 97 CF_SYLK, 93 98 CF_DIF, 94 99 CF_TIFF, 95 100 CF_OEMTEXT, 96 101 CF_DIB, ................................................................................ 98 103 CF_PENDATA, 99 104 CF_RIFF, 100 105 CF_WAVE, 101 106 CF_UNICODETEXT, 102 107 CF_ENHMETAFILE, 103 108 CF_HDROP, 104 109 CF_LOCALE, 105 - CF_MAX, // = 17 106 - CF_OWNERDISPLAY = 128, 110 + CF_MAX, // = 0x0011 111 + CF_OWNERDISPLAY = 0x0080, 107 112 CF_DSPTEXT, 108 113 CF_DSPBITMAP, 109 - CF_DSPMETAFILEPICT, // = 131 110 - CF_DSPENHMETAFILE = 142, 111 - CF_PRIVATEFIRST = 512, 112 - CF_PRIVATELAST = 767, 113 - CF_GDIOBJFIRST = 768, 114 - CF_GDIOBJLAST = 1023 114 + CF_DSPMETAFILEPICT, // = 0x0083 115 + CF_DSPENHMETAFILE = 0x008E, 116 + CF_PRIVATEFIRST = 0x0200, 117 + CF_PRIVATELAST = 0x02FF, 118 + CF_GDIOBJFIRST = 0x0300, 119 + CF_GDIOBJLAST = 0x03FF 115 120 } 116 121 117 122 const HKL_PREV = 0; 118 123 const HKL_NEXT = 1; 119 124 120 125 const KLF_ACTIVATE = 1; 121 126 const KLF_SUBSTITUTE_OK = 2; ................................................................................ 165 170 const BSF_IGNORECURRENTTASK = 0x00000002; 166 171 const BSF_FLUSHDISK = 0x00000004; 167 172 const BSF_NOHANG = 0x00000008; 168 173 const BSF_POSTMESSAGE = 0x00000010; 169 174 const BSF_FORCEIFHUNG = 0x00000020; 170 175 const BSF_NOTIMEOUTIFNOTHUNG = 0x00000040; 171 176 172 -static if (_WIN32_WINNT >= 0x500) { 173 - const BSF_ALLOWSFW = 0x00000080; 174 - const BSF_SENDNOTIFYMESSAGE = 0x00000100; 175 -} 177 +const BSF_ALLOWSFW = 0x00000080; 178 +const BSF_SENDNOTIFYMESSAGE = 0x00000100; 179 + 176 180 static if (_WIN32_WINNT >= 0x501) { 177 181 const BSF_RETURNHDESK = 0x00000200; 178 182 const BSF_LUID = 0x00000400; 179 183 } 180 184 181 185 const BROADCAST_QUERY_DENY = 1112363332; 182 186 const DWORD ENUM_CURRENT_SETTINGS = -1; ................................................................................ 447 451 448 452 const DC_ACTIVE = 0x00000001; 449 453 const DC_SMALLCAP = 0x00000002; 450 454 const DC_ICON = 0x00000004; 451 455 const DC_TEXT = 0x00000008; 452 456 const DC_INBUTTON = 0x00000010; 453 457 454 -static if (WINVER >= 0x500) { 455 -const DC_GRADIENT=0x00000020; 456 -} 458 +const DC_GRADIENT = 0x00000020; 457 459 static if (_WIN32_WINNT >= 0x501) { 458 -const DC_BUTTONS=0x00001000; 460 + const DC_BUTTONS = 0x00001000; 459 461 } 460 462 461 463 // Where are these documented? 462 464 //const DC_CAPTION = DC_ICON|DC_TEXT|DC_BUTTONS; 463 465 //const DC_NC = DC_CAPTION|DC_FRAME; 464 466 465 467 const BDR_RAISEDOUTER = 1; ................................................................................ 492 494 const BF_DIAGONAL_ENDBOTTOMRIGHT = BF_DIAGONAL|BF_BOTTOM|BF_RIGHT; 493 495 const BF_MIDDLE = 0x800; 494 496 const BF_SOFT = 0x1000; 495 497 const BF_ADJUST = 0x2000; 496 498 const BF_FLAT = 0x4000; 497 499 const BF_MONO = 0x8000; 498 500 499 -const DFC_CAPTION=1; 500 -const DFC_MENU=2; 501 -const DFC_SCROLL=3; 502 -const DFC_BUTTON=4; 503 -static if (WINVER >= 0x500) { 504 -const DFC_POPUPMENU=5; 505 -}// WINVER >= 0x500 501 +enum { 502 + DFC_CAPTION = 1, 503 + DFC_MENU, 504 + DFC_SCROLL, 505 + DFC_BUTTON, 506 + DFC_POPUPMENU // = 5 507 +} 506 508 507 509 const DFCS_CAPTIONCLOSE = 0; 508 510 const DFCS_CAPTIONMIN = 1; 509 511 const DFCS_CAPTIONMAX = 2; 510 512 const DFCS_CAPTIONRESTORE = 3; 511 513 const DFCS_CAPTIONHELP = 4; 512 514 ................................................................................ 528 530 const DFCS_BUTTONRADIOMASK = 2; 529 531 const DFCS_BUTTONRADIO = 4; 530 532 const DFCS_BUTTON3STATE = 8; 531 533 const DFCS_BUTTONPUSH = 16; 532 534 const DFCS_INACTIVE = 256; 533 535 const DFCS_PUSHED = 512; 534 536 const DFCS_CHECKED = 1024; 535 -static if (WINVER >= 0x500) { 536 -const DFCS_TRANSPARENT = 0x800; 537 -const DFCS_HOT = 0x1000; 537 +static if (_WIN32_WINNT >= 0x500) { 538 + const DFCS_TRANSPARENT = 0x800; 539 + const DFCS_HOT = 0x1000; 538 540 } 539 541 const DFCS_ADJUSTRECT = 0x2000; 540 542 const DFCS_FLAT = 0x4000; 541 543 const DFCS_MONO = 0x8000; 542 544 543 545 enum { 544 546 DST_COMPLEX = 0, ................................................................................ 705 707 const IDC_UPARROW = MAKEINTRESOURCE_T!(32516); 706 708 const IDC_SIZENWSE = MAKEINTRESOURCE_T!(32642); 707 709 const IDC_SIZENESW = MAKEINTRESOURCE_T!(32643); 708 710 const IDC_SIZEWE = MAKEINTRESOURCE_T!(32644); 709 711 const IDC_SIZENS = MAKEINTRESOURCE_T!(32645); 710 712 const IDC_SIZEALL = MAKEINTRESOURCE_T!(32646); 711 713 const IDC_NO = MAKEINTRESOURCE_T!(32648); 712 -const IDC_HAND = MAKEINTRESOURCE_T!(32649); 714 +static if (_WIN32_WINNT >= 0x500) { 715 + const IDC_HAND = MAKEINTRESOURCE_T!(32649); 716 +} 713 717 const IDC_APPSTARTING = MAKEINTRESOURCE_T!(32650); 714 718 const IDC_HELP = MAKEINTRESOURCE_T!(32651); 715 719 const IDC_ICON = MAKEINTRESOURCE_T!(32641); 716 720 const IDC_SIZE = MAKEINTRESOURCE_T!(32640); 717 721 const IDI_APPLICATION = MAKEINTRESOURCE_T!(32512); 718 722 const IDI_HAND = MAKEINTRESOURCE_T!(32513); 719 723 const IDI_QUESTION = MAKEINTRESOURCE_T!(32514); 720 724 const IDI_EXCLAMATION = MAKEINTRESOURCE_T!(32515); 721 725 const IDI_ASTERISK = MAKEINTRESOURCE_T!(32516); 722 726 const IDI_WINLOGO = MAKEINTRESOURCE_T!(32517); 727 +static if (_WIN32_WINNT >= 0x600) { 728 + const IDI_SHIELD = MAKEINTRESOURCE_T!(32518); 729 +} 730 + 723 731 const IDI_WARNING = IDI_EXCLAMATION; 724 732 const IDI_ERROR = IDI_HAND; 725 733 const IDI_INFORMATION = IDI_ASTERISK; 734 + 735 +static if(_WIN32_WINNT >= 0x500) { 736 + 737 +const MNGOF_TOPGAP = 0x00000001; 738 +const MNGOF_BOTTOMGAP = 0x00000002; 739 +const MNGO_NOINTERFACE = 0x00000000; 740 +const MNGO_NOERROR = 0x00000001; 741 + 742 +} 726 743 727 744 const MIIM_STATE = 1; 728 745 const MIIM_ID = 2; 729 746 const MIIM_SUBMENU = 4; 730 747 const MIIM_CHECKMARKS = 8; 731 748 const MIIM_TYPE = 16; 732 749 const MIIM_DATA = 32; 733 750 const MIIM_STRING = 64; 734 751 const MIIM_BITMAP = 128; 735 752 const MIIM_FTYPE = 256; 736 753 737 -static if (WINVER >= 0x500) { 754 +static if (_WIN32_WINNT >= 0x500) { 738 755 739 -const MIM_MAXHEIGHT = 1; 740 -const MIM_BACKGROUND = 2; 741 -const MIM_HELPID = 4; 742 -const MIM_MENUDATA = 8; 743 -const MIM_STYLE = 16; 744 -const MIM_APPLYTOSUBMENUS = 0x80000000L; 756 + const MIM_MAXHEIGHT = 1; 757 + const MIM_BACKGROUND = 2; 758 + const MIM_HELPID = 4; 759 + const MIM_MENUDATA = 8; 760 + const MIM_STYLE = 16; 761 + const MIM_APPLYTOSUBMENUS = 0x80000000L; 745 762 746 -const MNS_NOCHECK = 0x80000000; 747 -const MNS_MODELESS = 0x40000000; 748 -const MNS_DRAGDROP = 0x20000000; 749 -const MNS_AUTODISMISS = 0x10000000; 750 -const MNS_NOTIFYBYPOS = 0x08000000; 751 -const MNS_CHECKORBMP = 0x04000000; 763 + const MNS_NOCHECK = 0x80000000; 764 + const MNS_MODELESS = 0x40000000; 765 + const MNS_DRAGDROP = 0x20000000; 766 + const MNS_AUTODISMISS = 0x10000000; 767 + const MNS_NOTIFYBYPOS = 0x08000000; 768 + const MNS_CHECKORBMP = 0x04000000; 752 769 753 770 } 754 771 755 772 const MFT_BITMAP = 4; 756 773 const MFT_MENUBARBREAK = 32; 757 774 const MFT_MENUBREAK = 64; 758 775 const MFT_OWNERDRAW = 256; ................................................................................ 814 831 const MB_DEFBUTTON3 = 512; 815 832 const MB_DEFBUTTON4 = 0x300; 816 833 const MB_ICONINFORMATION = 64; 817 834 const MB_ICONSTOP = 16; 818 835 const MB_OKCANCEL = 1; 819 836 const MB_RETRYCANCEL = 5; 820 837 821 -static if (_WIN32_WINNT_ONLY) { 822 - static if (_WIN32_WINNT >= 0x400) { 823 - const MB_SERVICE_NOTIFICATION = 0x00200000; 824 - } else { 825 - const MB_SERVICE_NOTIFICATION = 0x00040000; 826 - } 827 - const MB_SERVICE_NOTIFICATION_NT3X = 0x00040000; 828 -} 838 +const MB_SERVICE_NOTIFICATION = 0x00200000; 839 +const MB_SERVICE_NOTIFICATION_NT3X = 0x00040000; 829 840 830 841 const MB_SETFOREGROUND = 0x10000; 831 842 const MB_SYSTEMMODAL = 4096; 832 843 const MB_TASKMODAL = 0x2000; 833 844 const MB_YESNO = 4; 834 845 const MB_YESNOCANCEL = 3; 835 846 const MB_ICONMASK = 240; 836 847 const MB_DEFMASK = 3840; 837 848 const MB_MODEMASK = 0x00003000; 838 849 const MB_MISCMASK = 0x0000C000; 839 850 const MB_NOFOCUS = 0x00008000; 840 851 const MB_TYPEMASK = 15; 841 852 // [Redefined] MB_TOPMOST=0x40000 842 -static if (WINVER >= 0x500) { 853 +static if (_WIN32_WINNT >= 0x500) { 843 854 const MB_CANCELTRYCONTINUE=6; 844 855 } 845 856 846 857 const IDOK = 1; 847 858 const IDCANCEL = 2; 848 859 const IDABORT = 3; 849 860 const IDRETRY = 4; 850 861 const IDIGNORE = 5; 851 862 const IDYES = 6; 852 863 const IDNO = 7; 853 -static if (WINVER >= 0x400) { 854 -const IDCLOSE = 8; 855 -const IDHELP = 9; 864 +static if (_WIN32_WINNT >= 0x400) { 865 + const IDCLOSE = 8; 866 + const IDHELP = 9; 856 867 } 857 -static if (WINVER >= 0x500) { 858 -const IDTRYAGAIN = 10; 859 -const IDCONTINUE = 11; 868 +static if (_WIN32_WINNT >= 0x500) { 869 + const IDTRYAGAIN = 10; 870 + const IDCONTINUE = 11; 860 871 } 861 872 862 873 const GWL_EXSTYLE = -20; 863 874 const GWL_STYLE = -16; 864 875 const GWL_WNDPROC = -4; 865 876 const GWLP_WNDPROC = -4; 866 877 const GWL_HINSTANCE = -6; ................................................................................ 1142 1153 const OIC_WINLOGO = 32517; 1143 1154 const OIC_WARNING = OIC_BANG; 1144 1155 const OIC_ERROR = OIC_HAND; 1145 1156 const OIC_INFORMATION = OIC_NOTE; 1146 1157 1147 1158 const HELPINFO_MENUITEM = 2; 1148 1159 const HELPINFO_WINDOW = 1; 1160 + 1161 +static if (_WIN32_WINNT >= 0x501) { 1162 + 1163 +const WTS_CONSOLE_CONNECT = 0x1; 1164 +const WTS_CONSOLE_DISCONNECT = 0x2; 1165 +const WTS_REMOTE_CONNECT = 0x3; 1166 +const WTS_REMOTE_DISCONNECT = 0x4; 1167 +const WTS_SESSION_LOGON = 0x5; 1168 +const WTS_SESSION_LOGOFF = 0x6; 1169 +const WTS_SESSION_LOCK = 0x7; 1170 +const WTS_SESSION_UNLOCK = 0x8; 1171 +const WTS_SESSION_REMOTE_CONTROL = 0x9; 1172 + 1173 +} 1149 1174 1150 1175 const MSGF_DIALOGBOX = 0; 1151 1176 const MSGF_MESSAGEBOX = 1; 1152 1177 const MSGF_MENU = 2; 1153 1178 const MSGF_MOVE = 3; 1154 1179 const MSGF_SIZE = 4; 1155 1180 const MSGF_SCROLLBAR = 5; ................................................................................ 1167 1192 const MOUSEEVENTF_WHEEL = 0x0800; 1168 1193 const MOUSEEVENTF_ABSOLUTE = 32768; 1169 1194 1170 1195 const PM_NOREMOVE = 0; 1171 1196 const PM_REMOVE = 1; 1172 1197 const PM_NOYIELD = 2; 1173 1198 1174 -static if (WINVER >= 0x500) { 1199 +static if (_WIN32_WINNT >= 0x500) { 1175 1200 const PM_QS_INPUT = (QS_INPUT << 16); 1176 1201 const PM_QS_POSTMESSAGE = ((QS_POSTMESSAGE|QS_HOTKEY|QS_TIMER) << 16); 1177 1202 const PM_QS_PAINT = (QS_PAINT << 16); 1178 1203 const PM_QS_SENDMESSAGE = (QS_SENDMESSAGE << 16); 1179 1204 } 1180 1205 const HWND 1181 1206 HWND_BROADCAST = cast(HWND)0xffff, ................................................................................ 1222 1247 const SWP_SHOWWINDOW = 64; 1223 1248 const SWP_NOOWNERZORDER = 512; 1224 1249 const SWP_NOREPOSITION = 512; 1225 1250 const SWP_NOSENDCHANGING = 1024; 1226 1251 const SWP_DEFERERASE = 8192; 1227 1252 const SWP_ASYNCWINDOWPOS = 16384; 1228 1253 1229 -const HSHELL_ACTIVATESHELLWINDOW = 3; 1230 -const HSHELL_GETMINRECT = 5; 1231 -const HSHELL_LANGUAGE = 8; 1232 -const HSHELL_REDRAW = 6; 1233 -const HSHELL_TASKMAN = 7; 1234 -const HSHELL_WINDOWACTIVATED = 4; 1235 -const HSHELL_WINDOWCREATED = 1; 1236 -const HSHELL_WINDOWDESTROYED = 2; 1237 -const HSHELL_FLASH = 32774; 1254 +enum { // passed variously as int or WPARAM 1255 + HSHELL_WINDOWCREATED = 1, 1256 + HSHELL_WINDOWDESTROYED, 1257 + HSHELL_ACTIVATESHELLWINDOW, 1258 + HSHELL_WINDOWACTIVATED, 1259 + HSHELL_GETMINRECT, 1260 + HSHELL_REDRAW, 1261 + HSHELL_TASKMAN, 1262 + HSHELL_LANGUAGE, // = 8 1263 + HSHELL_ENDTASK = 10, 1264 + HSHELL_ACCESSIBILITYSTATE, 1265 + HSHELL_APPCOMMAND, // = 12 1266 + HSHELL_RUDEAPPACTIVATED = 32772, 1267 + HSHELL_FLASH = 32774 1268 +} 1238 1269 1239 -static if (WINVER >= 0x500) { 1240 -const SPI_SETFOREGROUNDLOCKTIMEOUT=0x2001; 1241 -const SPI_GETFOREGROUNDLOCKTIMEOUT=0x2000; 1270 +static if (_WIN32_WINNT >= 0x501) { 1271 + enum { 1272 + HSHELL_WINDOWREPLACED = 13, 1273 + HSHELL_WINDOWREPLACING 1274 + } 1242 1275 } 1276 + 1277 +enum SPI_SETFOREGROUNDLOCKTIMEOUT = 0x2001; 1278 +enum SPI_GETFOREGROUNDLOCKTIMEOUT = 0x2000; 1243 1279 1244 1280 const SPI_GETACCESSTIMEOUT=60; 1245 1281 const SPI_GETACTIVEWNDTRKTIMEOUT=8194; 1246 1282 const SPI_GETANIMATION=72; 1247 1283 const SPI_GETBEEP=1; 1248 1284 const SPI_GETBORDER=5; 1249 1285 const SPI_GETDEFAULTINPUTLANG=89; ................................................................................ 1331 1367 const SPI_SETSHOWSOUNDS=57; 1332 1368 const SPI_SETSOUNDSENTRY=65; 1333 1369 const SPI_SETSTICKYKEYS=59; 1334 1370 const SPI_SETTOGGLEKEYS=53; 1335 1371 const SPI_SETWHEELSCROLLLINES=105; 1336 1372 const SPI_SETWORKAREA=47; 1337 1373 1338 -static if (WINVER >= 0x500) { 1374 +static if (_WIN32_WINNT >= 0x500) { 1339 1375 const SPI_GETDESKWALLPAPER=115; 1340 1376 const SPI_GETMOUSESPEED=112; 1341 1377 const SPI_GETSCREENSAVERRUNNING=114; 1342 1378 const SPI_GETACTIVEWINDOWTRACKING=0x1000; 1343 1379 const SPI_GETACTIVEWNDTRKZORDER=0x100C; 1344 1380 const SPI_GETCOMBOBOXANIMATION=0x1004; 1345 1381 const SPI_GETCURSORSHADOW=0x101A; ................................................................................ 1374 1410 const SPIF_SENDWININICHANGE=2; 1375 1411 const SPIF_SENDCHANGE=2; 1376 1412 // [Redefined] ATF_ONOFFFEEDBACK=2 1377 1413 // [Redefined] ATF_TIMEOUTON=1 1378 1414 const WM_APP=32768; 1379 1415 const WM_ACTIVATE=6; 1380 1416 const WM_ACTIVATEAPP=28; 1381 -// FIXME/CHECK: Are WM_AFX {FIRST, LAST} valid for WINVER < 0x400? 1417 +// FIXME/CHECK: Are WM_AFX {FIRST, LAST} valid for _WIN32_WINNT < 0x400? 1382 1418 const WM_AFXFIRST=864; 1383 1419 const WM_AFXLAST=895; 1384 1420 const WM_ASKCBFORMATNAME=780; 1385 1421 const WM_CANCELJOURNAL=75; 1386 1422 const WM_CANCELMODE=31; 1387 1423 const WM_CAPTURECHANGED=533; 1388 1424 const WM_CHANGECBCHAIN=781; ................................................................................ 1457 1493 const WM_MDIMAXIMIZE=549; 1458 1494 const WM_MDINEXT=548; 1459 1495 const WM_MDIREFRESHMENU=564; 1460 1496 const WM_MDIRESTORE=547; 1461 1497 const WM_MDISETMENU=560; 1462 1498 const WM_MDITILE=550; 1463 1499 const WM_MEASUREITEM=44; 1464 -static if (WINVER >= 0x500) { 1465 -const WM_UNINITMENUPOPUP=0x0125; 1466 -const WM_MENURBUTTONUP=290; 1467 -const WM_MENUCOMMAND=0x0126; 1468 -const WM_MENUGETOBJECT=0x0124; 1469 -const WM_MENUDRAG=0x0123; 1500 +static if (_WIN32_WINNT >= 0x500) { 1501 + const WM_UNINITMENUPOPUP=0x0125; 1502 + const WM_MENURBUTTONUP=290; 1503 + const WM_MENUCOMMAND=0x0126; 1504 + const WM_MENUGETOBJECT=0x0124; 1505 + const WM_MENUDRAG=0x0123; 1470 1506 } 1471 1507 1472 1508 static if (_WIN32_WINNT >= 0x500) { 1473 1509 1474 1510 enum { 1475 1511 WM_CHANGEUISTATE = 0x0127, 1476 1512 WM_UPDATEUISTATE = 0x0128, ................................................................................ 1572 1608 const WM_STYLECHANGING=124; 1573 1609 const WM_SYSCHAR=262; 1574 1610 const WM_SYSCOLORCHANGE=21; 1575 1611 const WM_SYSCOMMAND=274; 1576 1612 const WM_SYSDEADCHAR=263; 1577 1613 const WM_SYSKEYDOWN=260; 1578 1614 const WM_SYSKEYUP=261; 1615 +static if(_WIN32_WINNT >= 0x501) { 1616 +const WM_TABLET_FIRST=704; 1617 +const WM_TABLET_LAST=735; 1618 +} 1579 1619 const WM_TCARD=82; 1580 1620 const WM_THEMECHANGED=794; 1581 1621 const WM_TIMECHANGE=30; 1582 1622 const WM_TIMER=275; 1583 1623 const WM_UNDO=772; 1584 1624 const WM_USER=1024; 1585 1625 const WM_USERCHANGED=84; 1586 1626 const WM_VKEYTOITEM=46; 1587 1627 const WM_VSCROLL=277; 1588 1628 const WM_VSCROLLCLIPBOARD=778; 1589 1629 const WM_WINDOWPOSCHANGED=71; 1590 1630 const WM_WINDOWPOSCHANGING=70; 1591 1631 const WM_WININICHANGE=26; 1632 +static if(_WIN32_WINNT >= 0x501) { 1633 +const WM_WTSSESSION_CHANGE=689; 1634 +} 1592 1635 const WM_INPUT=255; 1593 1636 const WM_KEYFIRST=256; 1637 +static if(_WIN32_WINNT >= 0x501) { 1638 +const WM_UNICHAR=265; 1639 +const WM_KEYLAST=265; 1640 +const UNICODE_NOCHAR=0xFFFF; 1641 +} else { 1594 1642 const WM_KEYLAST=264; 1643 +} 1595 1644 const WM_SYNCPAINT=136; 1596 1645 const WM_MOUSEACTIVATE=33; 1597 1646 const WM_MOUSEMOVE=512; 1598 1647 const WM_LBUTTONDOWN=513; 1599 1648 const WM_LBUTTONUP=514; 1600 1649 const WM_LBUTTONDBLCLK=515; 1601 1650 const WM_RBUTTONDOWN=516; ................................................................................ 1602 1651 const WM_RBUTTONUP=517; 1603 1652 const WM_RBUTTONDBLCLK=518; 1604 1653 const WM_MBUTTONDOWN=519; 1605 1654 const WM_MBUTTONUP=520; 1606 1655 const WM_MBUTTONDBLCLK=521; 1607 1656 const WM_MOUSEWHEEL=522; 1608 1657 const WM_MOUSEFIRST=512; 1609 -static if (_WIN32_WINNT >= 0x500) { 1658 +static if (_WIN32_WINNT >= 0x600) { 1659 +const WM_XBUTTONDOWN=523; 1660 +const WM_XBUTTONUP=524; 1661 +const WM_XBUTTONDBLCLK=525; 1662 +const WM_MOUSEHWHEEL=526; 1663 +const WM_MOUSELAST=526; 1664 +} 1665 +else static if (_WIN32_WINNT >= 0x500) { 1610 1666 const WM_XBUTTONDOWN=523; 1611 1667 const WM_XBUTTONUP=524; 1612 1668 const WM_XBUTTONDBLCLK=525; 1613 1669 const WM_MOUSELAST=525; 1614 1670 } else { 1615 1671 const WM_MOUSELAST=522; 1616 1672 } ................................................................................ 1628 1684 } 1629 1685 const BM_CLICK=245; 1630 1686 const BM_GETCHECK=240; 1631 1687 const BM_GETIMAGE=246; 1632 1688 const BM_GETSTATE=242; 1633 1689 const BM_SETCHECK=241; 1634 1690 const BM_SETIMAGE=247; 1691 +static if(_WIN32_WINNT >= 0x600) { 1692 + const BM_SETDONTCLICK = 248; 1693 +} 1635 1694 const BM_SETSTATE=243; 1636 1695 const BM_SETSTYLE=244; 1637 1696 const BN_CLICKED=0; 1638 1697 const BN_DBLCLK=5; 1639 1698 const BN_DISABLE=4; 1640 1699 const BN_DOUBLECLICKED=5; 1641 1700 const BN_HILITE=2; ................................................................................ 1675 1734 const CB_SETEXTENDEDUI=341; 1676 1735 const CB_SETHORIZONTALEXTENT=350; 1677 1736 const CB_SETITEMDATA=337; 1678 1737 const CB_SETITEMHEIGHT=339; 1679 1738 const CB_SETLOCALE=345; 1680 1739 const CB_SETTOPINDEX=348; 1681 1740 const CB_SHOWDROPDOWN=335; 1741 + 1742 +static if(_WIN32_WINNT >= 0x501) { 1743 +const CB_GETCOMBOBOXINFO = 356; 1744 +} 1682 1745 1683 1746 const CBN_CLOSEUP=8; 1684 1747 const CBN_DBLCLK=2; 1685 1748 const CBN_DROPDOWN=7; 1686 1749 const CBN_EDITCHANGE=5; 1687 1750 const CBN_EDITUPDATE=6; 1688 1751 const CBN_ERRSPACE=(-1); ................................................................................ 1725 1788 const EM_SETREADONLY=207; 1726 1789 const EM_SETRECT=179; 1727 1790 const EM_SETRECTNP=180; 1728 1791 const EM_SETSEL=177; 1729 1792 const EM_SETTABSTOPS=203; 1730 1793 const EM_SETWORDBREAKPROC=208; 1731 1794 const EM_UNDO=199; 1795 + 1796 +static if(_WIN32_WINNT >= 0x500) { 1797 + const EM_SETIMESTATUS=216; 1798 + const EM_GETIMESTATUS=217; 1799 +} 1732 1800 1733 1801 const EN_CHANGE=768; 1734 1802 const EN_ERRSPACE=1280; 1735 1803 const EN_HSCROLL=1537; 1736 1804 const EN_KILLFOCUS=512; 1737 1805 const EN_MAXTEXT=1281; 1738 1806 const EN_SETFOCUS=256; ................................................................................ 1775 1843 const LB_SETHORIZONTALEXTENT=404; 1776 1844 const LB_SETITEMDATA=410; 1777 1845 const LB_SETITEMHEIGHT=416; 1778 1846 const LB_SETLOCALE=421; 1779 1847 const LB_SETSEL=389; 1780 1848 const LB_SETTABSTOPS=402; 1781 1849 const LB_SETTOPINDEX=407; 1850 +static if(_WIN32_WINNT >= 0x501) { 1851 +const LB_GETLISTBOXINFO=434; 1852 +} 1782 1853 1783 1854 const LBN_DBLCLK=2; 1784 1855 const LBN_ERRSPACE=-2; 1785 1856 const LBN_KILLFOCUS=5; 1786 1857 const LBN_SELCANCEL=3; 1787 1858 const LBN_SELCHANGE=1; 1788 1859 const LBN_SETFOCUS=4; ................................................................................ 1791 1862 const SBM_GETPOS=225; 1792 1863 const SBM_GETRANGE=227; 1793 1864 const SBM_GETSCROLLINFO=234; 1794 1865 const SBM_SETPOS=224; 1795 1866 const SBM_SETRANGE=226; 1796 1867 const SBM_SETRANGEREDRAW=230; 1797 1868 const SBM_SETSCROLLINFO=233; 1869 +static if(_WIN32_WINNT >= 0x501) { 1870 +const SBM_GETSCROLLBARINFO=235; 1871 +} 1872 + 1798 1873 const STM_GETICON=369; 1799 1874 const STM_GETIMAGE=371; 1800 1875 const STM_SETICON=368; 1801 1876 const STM_SETIMAGE=370; 1802 1877 const STN_CLICKED=0; 1803 1878 const STN_DBLCLK=1; 1804 1879 const STN_DISABLE=3; ................................................................................ 2021 2096 VK_OEM_2 = 0xBF, 2022 2097 VK_OEM_3 = 0xC0, 2023 2098 VK_OEM_4 = 0xDB, 2024 2099 VK_OEM_5 = 0xDC, 2025 2100 VK_OEM_6 = 0xDD, 2026 2101 VK_OEM_7 = 0xDE, 2027 2102 VK_OEM_8 = 0xDF, 2028 - //static if (_WIN32_WINNT > = 0x500) { 2103 + //static if (_WIN32_WINNT > = 0x500) { 2029 2104 VK_OEM_102 = 0xE2, 2030 2105 //} 2031 2106 VK_PROCESSKEY = 0xE5, 2032 - //static if (_WIN32_WINNT > = 0x500) { 2107 + //static if (_WIN32_WINNT > = 0x500) { 2033 2108 VK_PACKET = 0xE7, 2034 2109 //} 2035 2110 VK_ATTN = 0xF6, 2036 2111 VK_CRSEL = 0xF7, 2037 2112 VK_EXSEL = 0xF8, 2038 2113 VK_EREOF = 0xF9, 2039 2114 VK_PLAY = 0xFA, ................................................................................ 2052 2127 2053 2128 const MK_LBUTTON=1; 2054 2129 const MK_RBUTTON=2; 2055 2130 const MK_SHIFT=4; 2056 2131 const MK_CONTROL=8; 2057 2132 const MK_MBUTTON=16; 2058 2133 static if (_WIN32_WINNT >= 0x500) { 2059 -const MK_XBUTTON1=32; 2060 -const MK_XBUTTON2=64; 2134 + const MK_XBUTTON1 = 32; 2135 + const MK_XBUTTON2 = 64; 2061 2136 } 2062 2137 const TPM_CENTERALIGN=4; 2063 2138 const TPM_LEFTALIGN=0; 2064 2139 const TPM_RIGHTALIGN=8; 2065 2140 const TPM_LEFTBUTTON=0; 2066 2141 const TPM_RIGHTBUTTON=2; 2067 2142 const TPM_HORIZONTAL=0; 2068 2143 const TPM_VERTICAL=64; 2069 2144 const TPM_TOPALIGN=0; 2070 2145 const TPM_VCENTERALIGN=16; 2071 2146 const TPM_BOTTOMALIGN=32; 2072 2147 const TPM_NONOTIFY=128; 2073 2148 const TPM_RETURNCMD=256; 2074 -static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) { 2075 -const TPM_RECURSE=1; 2149 +static if (_WIN32_WINNT >= 0x410) { 2150 + const TPM_RECURSE = 1; 2076 2151 } 2077 2152 2078 2153 const HELP_COMMAND=0x102; 2079 2154 const HELP_CONTENTS=3; 2080 2155 const HELP_CONTEXT=1; 2081 2156 const HELP_CONTEXTPOPUP=8; 2082 2157 const HELP_FORCEFILE=9; ................................................................................ 2338 2413 const MOD_LEFT=32768; 2339 2414 2340 2415 const LLKHF_EXTENDED=(KF_EXTENDED >> 8); 2341 2416 const LLKHF_INJECTED=0x00000010; 2342 2417 const LLKHF_ALTDOWN=(KF_ALTDOWN >> 8); 2343 2418 const LLKHF_UP=(KF_UP >> 8); 2344 2419 2345 -static if (WINVER >= 0x500) { 2346 -const FLASHW_STOP=0; 2347 -const FLASHW_CAPTION=1; 2348 -const FLASHW_TRAY=2; 2349 -const FLASHW_ALL=(FLASHW_CAPTION|FLASHW_TRAY); 2350 -const FLASHW_TIMER=4; 2351 -const FLASHW_TIMERNOFG=12; 2420 +static if (_WIN32_WINNT >= 0x500) { 2421 + const FLASHW_STOP=0; 2422 + const FLASHW_CAPTION=1; 2423 + const FLASHW_TRAY=2; 2424 + const FLASHW_ALL=(FLASHW_CAPTION|FLASHW_TRAY); 2425 + const FLASHW_TIMER=4; 2426 + const FLASHW_TIMERNOFG=12; 2352 2427 } 2353 2428 2354 2429 const CURSOR_SHOWING=0x00000001; 2355 2430 const WS_ACTIVECAPTION=0x00000001; 2356 2431 static if (_WIN32_WINNT >= 0x403) { 2357 -const INPUT_MOUSE=0x00000000; 2358 -const INPUT_KEYBOARD=0x00000001; 2359 -const INPUT_HARDWARE=0x00000002; 2432 + const INPUT_MOUSE=0x00000000; 2433 + const INPUT_KEYBOARD=0x00000001; 2434 + const INPUT_HARDWARE=0x00000002; 2360 2435 } 2361 -static if (WINVER >= 0x400) { 2362 2436 const ENDSESSION_LOGOFF = 0x80000000; 2363 -} 2364 2437 2365 -static if (WINVER >= 0x500) { 2438 +static if (_WIN32_WINNT >= 0x500) { 2366 2439 const CHILDID_SELF = 0; 2367 2440 const OBJID_WINDOW = 0x00000000; 2368 2441 const OBJID_SYSMENU = 0xFFFFFFFF; 2369 2442 const OBJID_TITLEBAR = 0xFFFFFFFE; 2370 2443 const OBJID_MENU = 0xFFFFFFFD; 2371 2444 const OBJID_CLIENT = 0xFFFFFFFC; 2372 2445 const OBJID_VSCROLL = 0xFFFFFFFB; ................................................................................ 2464 2537 const CONSOLE_CARET_VISIBLE = 0x00000002; 2465 2538 2466 2539 const CONSOLE_APPLICATION_16BIT = 0x00000001; 2467 2540 2468 2541 } 2469 2542 const EVENT_MAX=0x7fffffff; 2470 2543 2471 -}//(WINVER >= 0x500) 2472 - 2473 -static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x490)) { 2474 -const DWORD ASFW_ANY = -1; 2475 -const LSFW_LOCK = 1; 2476 -const LSFW_UNLOCK = 2; 2477 -} 2544 +}//(_WIN32_WINNT >= 0x500) 2478 2545 2479 2546 static if (_WIN32_WINNT >= 0x500) { 2480 -const LWA_COLORKEY=0x01; 2481 -const LWA_ALPHA=0x02; 2482 -const ULW_COLORKEY=0x01; 2483 -const ULW_ALPHA=0x02; 2484 -const ULW_OPAQUE=0x04; 2547 + const DWORD ASFW_ANY = -1; 2548 + enum : UINT { 2549 + LSFW_LOCK = 1, 2550 + LSFW_UNLOCK 2551 + } 2552 + 2553 + const LWA_COLORKEY = 0x01; 2554 + const LWA_ALPHA = 0x02; 2555 + const ULW_COLORKEY = 0x01; 2556 + const ULW_ALPHA = 0x02; 2557 + const ULW_OPAQUE = 0x04; 2485 2558 } 2486 2559 2487 2560 const GA_PARENT = 1; 2488 2561 const GA_ROOT = 2; 2489 2562 const GA_ROOTOWNER = 3; 2490 2563 2491 -static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) { 2492 - 2493 -const MONITOR_DEFAULTTONULL = 0; 2494 -const MONITOR_DEFAULTTOPRIMARY = 1; 2495 -const MONITOR_DEFAULTTONEAREST = 2; 2496 -const MONITORINFOF_PRIMARY = 1; 2497 - 2498 -const EDS_RAWMODE = 0x00000002; 2499 - 2500 -const ISMEX_NOSEND = 0x00000000; 2501 -const ISMEX_SEND = 0x00000001; 2502 -const ISMEX_NOTIFY = 0x00000002; 2503 -const ISMEX_CALLBACK = 0x00000004; 2504 -const ISMEX_REPLIED = 0x00000008; 2505 -} 2506 - 2507 2564 static if (_WIN32_WINNT >= 0x500) { 2508 -const GR_GDIOBJECTS = 0; 2509 -const GR_USEROBJECTS = 1; 2510 -} 2565 + enum : DWORD { 2566 + MONITOR_DEFAULTTONULL, 2567 + MONITOR_DEFAULTTOPRIMARY, 2568 + MONITOR_DEFAULTTONEAREST // = 2 2569 + } 2570 + const MONITORINFOF_PRIMARY = 1; 2511 2571 2512 -static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x490)) { 2513 -const GMMP_USE_DISPLAY_POINTS = 1; 2514 -const GMMP_USE_HIGH_RESOLUTION_POINTS = 2; 2572 + const EDS_RAWMODE = 0x00000002; 2573 + 2574 + const ISMEX_NOSEND = 0x00000000; 2575 + const ISMEX_SEND = 0x00000001; 2576 + const ISMEX_NOTIFY = 0x00000002; 2577 + const ISMEX_CALLBACK = 0x00000004; 2578 + const ISMEX_REPLIED = 0x00000008; 2579 + 2580 + const GR_GDIOBJECTS = 0; 2581 + const GR_USEROBJECTS = 1; 2582 + 2583 + const GMMP_USE_DISPLAY_POINTS = 1; 2584 + const GMMP_USE_HIGH_RESOLUTION_POINTS = 2; 2515 2585 } 2516 2586 2517 2587 static if (_WIN32_WINNT >= 0x501) { 2518 -const PW_CLIENTONLY = 0x00000001; 2519 -const RIM_INPUT = 0x00000000; 2520 -const RIM_INPUTSINK = 0x00000001; 2521 -const RIM_TYPEMOUSE = 0x00000000; 2522 -const RIM_TYPEKEYBOARD = 0x00000001; 2523 -const RIM_TYPEHID = 0x00000002; 2524 -const MOUSE_MOVE_RELATIVE = 0x00000000; 2525 -const MOUSE_MOVE_ABSOLUTE = 0x00000001; 2526 -const MOUSE_VIRTUAL_DESKTOP = 0x00000002; 2527 -const MOUSE_ATTRIBUTES_CHANGED = 0x00000004; 2528 -const RI_MOUSE_LEFT_BUTTON_DOWN = 0x0001; 2529 -const RI_MOUSE_LEFT_BUTTON_UP = 0x0002; 2530 -const RI_MOUSE_RIGHT_BUTTON_DOWN = 0x0004; 2531 -const RI_MOUSE_RIGHT_BUTTON_UP = 0x0008; 2532 -const RI_MOUSE_MIDDLE_BUTTON_DOWN = 0x0010; 2533 -const RI_MOUSE_MIDDLE_BUTTON_UP = 0x0020; 2534 -const RI_MOUSE_BUTTON_1_DOWN = RI_MOUSE_LEFT_BUTTON_DOWN; 2535 -const RI_MOUSE_BUTTON_1_UP = RI_MOUSE_LEFT_BUTTON_UP; 2536 -const RI_MOUSE_BUTTON_2_DOWN = RI_MOUSE_RIGHT_BUTTON_DOWN; 2537 -const RI_MOUSE_BUTTON_2_UP = RI_MOUSE_RIGHT_BUTTON_UP; 2538 -const RI_MOUSE_BUTTON_3_DOWN = RI_MOUSE_MIDDLE_BUTTON_DOWN; 2539 -const RI_MOUSE_BUTTON_3_UP = RI_MOUSE_MIDDLE_BUTTON_UP; 2540 -const RI_MOUSE_BUTTON_4_DOWN = 0x0040; 2541 -const RI_MOUSE_BUTTON_4_UP = 0x0080; 2542 -const RI_MOUSE_BUTTON_5_DOWN = 0x0100; 2543 -const RI_MOUSE_BUTTON_5_UP = 0x0200; 2544 -const RI_MOUSE_WHEEL = 0x0400; 2545 -const KEYBOARD_OVERRUN_MAKE_CODE = 0x00ff; 2546 -const RI_KEY_MAKE = 0x0000; 2547 -const RI_KEY_BREAK = 0x0001; 2548 -const RI_KEY_E0 = 0x0002; 2549 -const RI_KEY_E1 = 0x0004; 2550 -const RI_KEY_TERMSRV_SET_LED = 0x0008; 2551 -const RI_KEY_TERMSRV_SHADOW = 0x0010; 2552 - 2553 -const RID_INPUT = 0x10000003; 2554 -const RID_HEADER = 0x10000005; 2555 - 2556 -const RIDI_PREPARSEDDATA = 0x20000005; 2557 -const RIDI_DEVICENAME = 0x20000007; 2558 -const RIDI_DEVICEINFO = 0x2000000b; 2559 - 2560 -const RIDEV_REMOVE = 0x00000001; 2561 -const RIDEV_EXCLUDE = 0x00000010; 2562 -const RIDEV_PAGEONLY = 0x00000020; 2563 -const RIDEV_NOLEGACY = 0x00000030; 2564 -const RIDEV_INPUTSINK = 0x00000100; 2565 -const RIDEV_CAPTUREMOUSE = 0x00000200; 2566 -const RIDEV_NOHOTKEYS = 0x00000200; 2567 -const RIDEV_APPKEYS = 0x00000400; 2588 + const PW_CLIENTONLY = 0x00000001; 2589 + const RIM_INPUT = 0x00000000; 2590 + const RIM_INPUTSINK = 0x00000001; 2591 + const RIM_TYPEMOUSE = 0x00000000; 2592 + const RIM_TYPEKEYBOARD = 0x00000001; 2593 + const RIM_TYPEHID = 0x00000002; 2594 + const MOUSE_MOVE_RELATIVE = 0x00000000; 2595 + const MOUSE_MOVE_ABSOLUTE = 0x00000001; 2596 + const MOUSE_VIRTUAL_DESKTOP = 0x00000002; 2597 + const MOUSE_ATTRIBUTES_CHANGED = 0x00000004; 2598 + const RI_MOUSE_LEFT_BUTTON_DOWN = 0x0001; 2599 + const RI_MOUSE_LEFT_BUTTON_UP = 0x0002; 2600 + const RI_MOUSE_RIGHT_BUTTON_DOWN = 0x0004; 2601 + const RI_MOUSE_RIGHT_BUTTON_UP = 0x0008; 2602 + const RI_MOUSE_MIDDLE_BUTTON_DOWN = 0x0010; 2603 + const RI_MOUSE_MIDDLE_BUTTON_UP = 0x0020; 2604 + const RI_MOUSE_BUTTON_1_DOWN = RI_MOUSE_LEFT_BUTTON_DOWN; 2605 + const RI_MOUSE_BUTTON_1_UP = RI_MOUSE_LEFT_BUTTON_UP; 2606 + const RI_MOUSE_BUTTON_2_DOWN = RI_MOUSE_RIGHT_BUTTON_DOWN; 2607 + const RI_MOUSE_BUTTON_2_UP = RI_MOUSE_RIGHT_BUTTON_UP; 2608 + const RI_MOUSE_BUTTON_3_DOWN = RI_MOUSE_MIDDLE_BUTTON_DOWN; 2609 + const RI_MOUSE_BUTTON_3_UP = RI_MOUSE_MIDDLE_BUTTON_UP; 2610 + const RI_MOUSE_BUTTON_4_DOWN = 0x0040; 2611 + const RI_MOUSE_BUTTON_4_UP = 0x0080; 2612 + const RI_MOUSE_BUTTON_5_DOWN = 0x0100; 2613 + const RI_MOUSE_BUTTON_5_UP = 0x0200; 2614 + const RI_MOUSE_WHEEL = 0x0400; 2615 + const KEYBOARD_OVERRUN_MAKE_CODE = 0x00ff; 2616 + const RI_KEY_MAKE = 0x0000; 2617 + const RI_KEY_BREAK = 0x0001; 2618 + const RI_KEY_E0 = 0x0002; 2619 + const RI_KEY_E1 = 0x0004; 2620 + const RI_KEY_TERMSRV_SET_LED = 0x0008; 2621 + const RI_KEY_TERMSRV_SHADOW = 0x0010; 2622 + 2623 + const RID_INPUT = 0x10000003; 2624 + const RID_HEADER = 0x10000005; 2625 + 2626 + const RIDI_PREPARSEDDATA = 0x20000005; 2627 + const RIDI_DEVICENAME = 0x20000007; 2628 + const RIDI_DEVICEINFO = 0x2000000b; 2629 + 2630 + const RIDEV_REMOVE = 0x00000001; 2631 + const RIDEV_EXCLUDE = 0x00000010; 2632 + const RIDEV_PAGEONLY = 0x00000020; 2633 + const RIDEV_NOLEGACY = 0x00000030; 2634 + const RIDEV_INPUTSINK = 0x00000100; 2635 + const RIDEV_CAPTUREMOUSE = 0x00000200; 2636 + const RIDEV_NOHOTKEYS = 0x00000200; 2637 + const RIDEV_APPKEYS = 0x00000400; 2568 2638 } 2569 2639 2570 2640 // Callbacks 2571 2641 // --------- 2572 2642 extern (Windows) { 2573 - alias BOOL function (HWND, UINT, WPARAM, LPARAM) DLGPROC; 2574 - alias void function (HWND, UINT, UINT, DWORD) TIMERPROC; 2643 + alias INT_PTR function (HWND, UINT, WPARAM, LPARAM) DLGPROC; 2644 + alias void function (HWND, UINT, UINT_PTR, DWORD) TIMERPROC; 2575 2645 alias BOOL function (HDC, LPARAM, int) GRAYSTRINGPROC; 2576 2646 alias LRESULT function (int, WPARAM, LPARAM) HOOKPROC; 2577 2647 alias BOOL function (HWND, LPCSTR, HANDLE) PROPENUMPROCA; 2578 2648 alias BOOL function (HWND, LPCWSTR, HANDLE) PROPENUMPROCW; 2579 - alias BOOL function (HWND, LPSTR, HANDLE, DWORD) PROPENUMPROCEXA; 2580 - alias BOOL function (HWND, LPWSTR, HANDLE, DWORD) PROPENUMPROCEXW; 2649 + alias BOOL function (HWND, LPSTR, HANDLE, ULONG_PTR) PROPENUMPROCEXA; 2650 + alias BOOL function (HWND, LPWSTR, HANDLE, ULONG_PTR) PROPENUMPROCEXW; 2581 2651 alias int function (LPSTR, int, int, int) EDITWORDBREAKPROCA; 2582 2652 alias int function (LPWSTR, int, int, int) EDITWORDBREAKPROCW; 2583 2653 alias LRESULT function (HWND, UINT, WPARAM, LPARAM) WNDPROC; 2584 2654 alias BOOL function (HDC, LPARAM, WPARAM, int, int) DRAWSTATEPROC; 2585 2655 alias BOOL function (HWND, LPARAM) WNDENUMPROC; 2586 2656 alias BOOL function (HWND, LPARAM) ENUMWINDOWSPROC; 2587 2657 alias void function (LPHELPINFO) MSGBOXCALLBACK; 2588 2658 2589 - static if (WINVER >= 0x410) { 2659 + static if (_WIN32_WINNT >= 0x410) { 2590 2660 alias BOOL function (HMONITOR, HDC, LPRECT, LPARAM) MONITORENUMPROC; 2591 2661 } 2592 2662 alias BOOL function (LPSTR, LPARAM) NAMEENUMPROCA; 2593 2663 alias BOOL function (LPWSTR, LPARAM) NAMEENUMPROCW; 2594 - alias void function (HWND, UINT, DWORD, LRESULT) SENDASYNCPROC; 2664 + alias void function (HWND, UINT, ULONG_PTR, LRESULT) SENDASYNCPROC; 2595 2665 2596 2666 alias NAMEENUMPROCA DESKTOPENUMPROCA; 2597 2667 alias NAMEENUMPROCW DESKTOPENUMPROCW; 2598 2668 alias NAMEENUMPROCA WINSTAENUMPROCA; 2599 2669 alias NAMEENUMPROCW WINSTAENUMPROCW; 2600 2670 } 2601 2671 2602 -alias HANDLE HHOOK; 2603 -alias HANDLE HDWP; 2604 -alias HANDLE HDEVNOTIFY; 2672 +alias TypeDef!(HANDLE) HHOOK; 2673 +alias TypeDef!(HANDLE) HDWP; 2674 +alias TypeDef!(HANDLE) HDEVNOTIFY; 2605 2675 2606 2676 struct ACCEL { 2607 2677 BYTE fVirt; 2608 2678 WORD key; 2609 2679 WORD cmd; 2610 2680 } 2611 2681 alias ACCEL* LPACCEL; ................................................................................ 2668 2738 alias CBT_CREATEWNDW* LPCBT_CREATEWNDW; 2669 2739 2670 2740 struct CBTACTIVATESTRUCT { 2671 2741 BOOL fMouse; 2672 2742 HWND hWndActive; 2673 2743 } 2674 2744 alias CBTACTIVATESTRUCT* LPCBTACTIVATESTRUCT; 2745 + 2746 +static if (_WIN32_WINNT >= 0x501) { 2747 + 2748 +struct WTSSESSION_NOTIFICATION 2749 +{ 2750 + DWORD cbSize; 2751 + DWORD dwSessionId; 2752 +} 2753 +alias WTSSESSION_NOTIFICATION* PWTSSESSION_NOTIFICATION; 2754 + 2755 +} 2675 2756 2676 2757 struct CLIENTCREATESTRUCT { 2677 2758 HANDLE hWindowMenu; 2678 2759 UINT idFirstChild; 2679 2760 } 2680 2761 alias CLIENTCREATESTRUCT* LPCLIENTCREATESTRUCT; 2681 2762 ................................................................................ 2760 2841 DWORD dwExtendedStyle; 2761 2842 WORD cdit; 2762 2843 short x; 2763 2844 short y; 2764 2845 short cx; 2765 2846 short cy; 2766 2847 } 2767 -alias DLGTEMPLATE* LPDLGTEMPLATE, LPDLGTEMPLATEA, LPDLGTEMPLATEW; 2768 -alias CPtr!(DLGTEMPLATE) LPCDLGTEMPLATE; 2848 +alias DLGTEMPLATE* LPDLGTEMPLATE, LPDLGTEMPLATEA, LPDLGTEMPLATEW; 2849 +alias const(DLGTEMPLATE)* LPCDLGTEMPLATE; 2769 2850 2770 2851 align: 2771 2852 2772 2853 struct DRAWITEMSTRUCT { 2773 2854 UINT CtlType; 2774 2855 UINT CtlID; 2775 2856 UINT itemID; ................................................................................ 2818 2899 HBITMAP hbmMask; 2819 2900 HBITMAP hbmColor; 2820 2901 } 2821 2902 alias ICONINFO* PICONINFO; 2822 2903 2823 2904 struct NMHDR { 2824 2905 HWND hwndFrom; 2825 - UINT idFrom; 2906 + UINT_PTR idFrom; 2826 2907 UINT code; 2827 2908 } 2828 2909 alias NMHDR* LPNMHDR; 2829 2910 2830 2911 struct WNDCLASSA { 2831 2912 UINT style; 2832 2913 WNDPROC lpfnWndProc; ................................................................................ 2882 2963 HCURSOR hCursor; 2883 2964 HBRUSH hbrBackground; 2884 2965 LPCWSTR lpszMenuName; 2885 2966 LPCWSTR lpszClassName; 2886 2967 HICON hIconSm; 2887 2968 } 2888 2969 alias WNDCLASSEXW* LPWNDCLASSEXW, PWNDCLASSEXW; 2970 + 2971 +static if(_WIN32_WINNT >= 0x500) { 2972 + 2973 +struct MENUGETOBJECTINFO 2974 +{ 2975 + DWORD dwFlags; 2976 + UINT uPos; 2977 + HMENU hmenu; 2978 + PVOID riid; 2979 + PVOID pvObj; 2980 +} 2981 +alias MENUGETOBJECTINFO* PMENUGETOBJECTINFO; 2982 + 2983 +} 2889 2984 2890 2985 struct MENUITEMINFOA { 2891 2986 UINT cbSize = MENUITEMINFOA.sizeof; 2892 2987 UINT fMask; 2893 2988 UINT fType; 2894 2989 UINT fState; 2895 2990 UINT wID; ................................................................................ 2899 2994 DWORD dwItemData; 2900 2995 LPSTR dwTypeData; 2901 2996 UINT cch; 2902 2997 static if (_WIN32_WINNT >= 0x500) { 2903 2998 HBITMAP hbmpItem; 2904 2999 } 2905 3000 } 2906 -alias MENUITEMINFOA* LPMENUITEMINFOA; 2907 -alias CPtr!(MENUITEMINFOA) LPCMENUITEMINFOA; 3001 +alias MENUITEMINFOA* LPMENUITEMINFOA; 3002 +alias const(MENUITEMINFOA)* LPCMENUITEMINFOA; 2908 3003 2909 3004 struct MENUITEMINFOW { 2910 3005 UINT cbSize = MENUITEMINFOW.sizeof; 2911 3006 UINT fMask; 2912 3007 UINT fType; 2913 3008 UINT fState; 2914 3009 UINT wID; ................................................................................ 2918 3013 DWORD dwItemData; 2919 3014 LPWSTR dwTypeData; 2920 3015 UINT cch; 2921 3016 static if (_WIN32_WINNT >= 0x500) { 2922 3017 HBITMAP hbmpItem; 2923 3018 } 2924 3019 } 2925 -alias MENUITEMINFOW* LPMENUITEMINFOW; 2926 -alias CPtr!(MENUITEMINFOW) LPCMENUITEMINFOW; 3020 +alias MENUITEMINFOW* LPMENUITEMINFOW; 3021 +alias const(MENUITEMINFOW)* LPCMENUITEMINFOW; 2927 3022 2928 3023 struct SCROLLINFO { 2929 3024 UINT cbSize = this.sizeof; 2930 3025 UINT fMask; 2931 3026 int nMin; 2932 3027 int nMax; 2933 3028 UINT nPage; 2934 3029 int nPos; 2935 3030 int nTrackPos; 2936 3031 } 2937 -alias SCROLLINFO* LPSCROLLINFO; 2938 -alias CPtr!(SCROLLINFO) LPCSCROLLINFO; 3032 +alias SCROLLINFO* LPSCROLLINFO; 3033 +alias const(SCROLLINFO)* LPCSCROLLINFO; 2939 3034 2940 3035 struct WINDOWPLACEMENT { 2941 3036 UINT length; 2942 3037 UINT flags; 2943 3038 UINT showCmd; 2944 3039 POINT ptMinPosition; 2945 3040 POINT ptMaxPosition; ................................................................................ 2951 3046 WORD versionNumber; 2952 3047 WORD offset; 2953 3048 } 2954 3049 2955 3050 struct MENUITEMTEMPLATE { 2956 3051 WORD mtOption; 2957 3052 WORD mtID; 2958 - WCHAR mtString[1]; 3053 + WCHAR[1] mtString; 2959 3054 } 2960 3055 2961 3056 alias void MENUTEMPLATE, MENUTEMPLATEA, MENUTEMPLATEW; 2962 3057 2963 3058 alias MENUTEMPLATE* LPMENUTEMPLATEA, LPMENUTEMPLATEW, LPMENUTEMPLATE; 2964 3059 2965 3060 struct HELPINFO { ................................................................................ 3209 3304 int cx; 3210 3305 int cy; 3211 3306 UINT flags; 3212 3307 } 3213 3308 alias WINDOWPOS* PWINDOWPOS, LPWINDOWPOS; 3214 3309 3215 3310 struct NCCALCSIZE_PARAMS { 3216 - RECT rgrc[3]; 3311 + RECT[3] rgrc; 3217 3312 PWINDOWPOS lppos; 3218 3313 } 3219 3314 alias NCCALCSIZE_PARAMS* LPNCCALCSIZE_PARAMS; 3220 3315 3221 3316 struct MDICREATESTRUCTA { 3222 3317 LPCSTR szClass; 3223 3318 LPCSTR szTitle; ................................................................................ 3281 3376 alias DROPSTRUCT* PDROPSTRUCT, LPDROPSTRUCT; 3282 3377 3283 3378 alias DWORD HELPPOLY; 3284 3379 3285 3380 struct MULTIKEYHELPA { 3286 3381 DWORD mkSize; 3287 3382 CHAR mkKeylist; 3288 - CHAR szKeyphrase[1]; 3383 + CHAR[1] szKeyphrase; 3289 3384 } 3290 3385 alias MULTIKEYHELPA* PMULTIKEYHELPA, LPMULTIKEYHELPA; 3291 3386 3292 3387 struct MULTIKEYHELPW { 3293 3388 DWORD mkSize; 3294 3389 WCHAR mkKeylist; 3295 - WCHAR szKeyphrase[1]; 3390 + WCHAR[1] szKeyphrase; 3296 3391 } 3297 3392 alias MULTIKEYHELPW* PMULTIKEYHELPW, LPMULTIKEYHELPW; 3298 3393 3299 3394 struct HELPWININFOA { 3300 3395 int wStructSize; 3301 3396 int x; 3302 3397 int y; 3303 3398 int dx; 3304 3399 int dy; 3305 3400 int wMax; 3306 - CHAR rgchMember[2]; 3401 + CHAR[2] rgchMember; 3307 3402 } 3308 3403 alias HELPWININFOA* PHELPWININFOA, LPHELPWININFOA; 3309 3404 3310 3405 struct HELPWININFOW { 3311 3406 int wStructSize; 3312 3407 int x; 3313 3408 int y; 3314 3409 int dx; 3315 3410 int dy; 3316 3411 int wMax; 3317 - WCHAR rgchMember[2]; 3412 + WCHAR[2] rgchMember; 3318 3413 } 3319 3414 alias HELPWININFOW* PHELPWININFOW, LPHELPWININFOW; 3320 3415 3321 3416 struct STYLESTRUCT { 3322 3417 DWORD styleOld; 3323 3418 DWORD styleNew; 3324 3419 } ................................................................................ 3376 3471 DWORD fMask; 3377 3472 DWORD dwStyle; 3378 3473 UINT cyMax; 3379 3474 HBRUSH hbrBack; 3380 3475 DWORD dwContextHelpID; 3381 3476 ULONG_PTR dwMenuData; 3382 3477 } 3383 -alias MENUINFO* LPMENUINFO; 3384 -alias CPtr!(MENUINFO) LPCMENUINFO; 3478 +alias MENUINFO* LPMENUINFO; 3479 +alias const(MENUINFO)* LPCMENUINFO; 3385 3480 3386 3481 3387 3482 const CCHILDREN_SCROLLBAR=5; 3388 3483 3389 3484 struct SCROLLBARINFO { 3390 3485 DWORD cbSize = this.sizeof; 3391 3486 RECT rcScrollBar; 3392 3487 int dxyLineButton; 3393 3488 int xyThumbTop; 3394 3489 int xyThumbBottom; 3395 3490 int reserved; 3396 - DWORD rgstate[CCHILDREN_SCROLLBAR+1]; 3491 + DWORD[CCHILDREN_SCROLLBAR+1] rgstate; 3397 3492 } 3398 3493 alias SCROLLBARINFO* PSCROLLBARINFO, LPSCROLLBARINFO; 3399 3494 3400 3495 const CCHILDREN_TITLEBAR=5; 3401 3496 3402 3497 struct TITLEBARINFO { 3403 3498 DWORD cbSize = TITLEBARINFO.sizeof; ................................................................................ 3459 3554 DWORD scanCode; 3460 3555 DWORD flags; 3461 3556 DWORD time; 3462 3557 DWORD dwExtraInfo; 3463 3558 } 3464 3559 alias KBDLLHOOKSTRUCT* LPKBDLLHOOKSTRUCT, PKBDLLHOOKSTRUCT; 3465 3560 3466 -static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) { 3467 - 3468 -struct FLASHWINFO { 3469 - UINT cbSize = this.sizeof; 3470 - HWND hwnd; 3471 - DWORD dwFlags; 3472 - UINT uCount; 3473 - DWORD dwTimeout; 3474 -} 3475 -alias FLASHWINFO* PFLASHWINFO; 3476 - 3477 -} 3478 - 3479 -static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x490)) { 3480 - 3481 -struct MOUSEMOVEPOINT { 3482 - int x; 3483 - int y; 3484 - DWORD time; 3485 - ULONG_PTR dwExtraInfo; 3486 -} 3487 -alias MOUSEMOVEPOINT* PMOUSEMOVEPOINT, LPMOUSEMOVEPOINT; 3561 +static if (_WIN32_WINNT >= 0x501) { 3562 + struct FLASHWINFO { 3563 + UINT cbSize = this.sizeof; 3564 + HWND hwnd; 3565 + DWORD dwFlags; 3566 + UINT uCount; 3567 + DWORD dwTimeout; 3568 + } 3569 + alias FLASHWINFO* PFLASHWINFO; 3570 +} 3571 + 3572 +static if (_WIN32_WINNT >= 0x500) { 3573 + 3574 + struct MOUSEMOVEPOINT { 3575 + int x; 3576 + int y; 3577 + DWORD time; 3578 + ULONG_PTR dwExtraInfo; 3579 + } 3580 + alias MOUSEMOVEPOINT* PMOUSEMOVEPOINT, LPMOUSEMOVEPOINT; 3488 3581 } 3489 3582 3490 3583 static if (_WIN32_WINNT >= 0x403) { 3491 -struct MOUSEINPUT { 3492 - LONG dx; 3493 - LONG dy; 3494 - DWORD mouseData; 3495 - DWORD dwFlags; 3496 - DWORD time; 3497 - ULONG_PTR dwExtraInfo; 3498 -} 3499 -alias MOUSEINPUT* PMOUSEINPUT; 3500 - 3501 -struct KEYBDINPUT { 3502 - WORD wVk; 3503 - WORD wScan; 3504 - DWORD dwFlags; 3505 - DWORD time; 3506 - ULONG_PTR dwExtraInfo; 3507 -} 3508 -alias KEYBDINPUT* PKEYBDINPUT; 3509 - 3510 -struct HARDWAREINPUT { 3511 - DWORD uMsg; 3512 - WORD wParamL; 3513 - WORD wParamH; 3514 -} 3515 -alias HARDWAREINPUT* PHARDWAREINPUT; 3516 - 3517 -struct INPUT { 3518 - DWORD type; 3519 - union { 3520 - MOUSEINPUT mi; 3521 - KEYBDINPUT ki; 3522 - HARDWAREINPUT hi; 3523 - } 3524 -} 3525 -alias INPUT* PINPUT, LPINPUT; 3584 + struct MOUSEINPUT { 3585 + LONG dx; 3586 + LONG dy; 3587 + DWORD mouseData; 3588 + DWORD dwFlags; 3589 + DWORD time; 3590 + ULONG_PTR dwExtraInfo; 3591 + } 3592 + alias MOUSEINPUT* PMOUSEINPUT; 3593 + 3594 + struct KEYBDINPUT { 3595 + WORD wVk; 3596 + WORD wScan; 3597 + DWORD dwFlags; 3598 + DWORD time; 3599 + ULONG_PTR dwExtraInfo; 3600 + } 3601 + alias KEYBDINPUT* PKEYBDINPUT; 3602 + 3603 + struct HARDWAREINPUT { 3604 + DWORD uMsg; 3605 + WORD wParamL; 3606 + WORD wParamH; 3607 + } 3608 + alias HARDWAREINPUT* PHARDWAREINPUT; 3609 + 3610 + struct INPUT { 3611 + DWORD type; 3612 + union { 3613 + MOUSEINPUT mi; 3614 + KEYBDINPUT ki; 3615 + HARDWAREINPUT hi; 3616 + } 3617 + } 3618 + alias INPUT* PINPUT, LPINPUT; 3526 3619 }// (_WIN32_WINNT >= 0x403) 3527 3620 3528 -static if (WINVER >= 0x500) { 3529 -struct GUITHREADINFO { 3530 - DWORD cbSize = this.sizeof; 3531 - DWORD flags; 3532 - HWND hwndActive; 3533 - HWND hwndFocus; 3534 - HWND hwndCapture; 3535 - HWND hwndMenuOwner; 3536 - HWND hwndMoveSize; 3537 - HWND hwndCaret; 3538 - RECT rcCaret; 3539 -} 3540 -alias GUITHREADINFO* PGUITHREADINFO, LPGUITHREADINFO; 3541 -extern (Windows) { 3542 -alias void function (HWINEVENTHOOK, DWORD, HWND, LONG, LONG, DWORD, DWORD) WINEVENTPROC; 3543 -} 3621 +static if (_WIN32_WINNT >= 0x500) { 3622 + struct GUITHREADINFO { 3623 + DWORD cbSize = this.sizeof; 3624 + DWORD flags; 3625 + HWND hwndActive; 3626 + HWND hwndFocus; 3627 + HWND hwndCapture; 3628 + HWND hwndMenuOwner; 3629 + HWND hwndMoveSize; 3630 + HWND hwndCaret; 3631 + RECT rcCaret; 3632 + } 3633 + alias GUITHREADINFO* PGUITHREADINFO, LPGUITHREADINFO; 3634 + extern (Windows) { 3635 + alias void function (HWINEVENTHOOK, DWORD, HWND, LONG, LONG, DWORD, DWORD) WINEVENTPROC; 3636 + } 3544 3637 3545 -}// (WINVER >= 0x500) 3638 +}// (_WIN32_WINNT >= 0x500) 3546 3639 3547 3640 static if (_WIN32_WINNT >= 0x501) { 3548 -struct BSMINFO { 3549 - UINT cbSize = this.sizeof; 3550 - HDESK hdesk; 3551 - HWND hwnd; 3552 - LUID luid; 3553 -} 3554 -alias BSMINFO* PBSMINFO; 3555 - 3556 -alias HANDLE HRAWINPUT; 3557 - 3558 -struct RAWINPUTHEADER { 3559 - DWORD dwType; 3560 - DWORD dwSize; 3561 - HANDLE hDevice; 3562 - WPARAM wParam; 3563 -} 3564 -alias RAWINPUTHEADER* PRAWINPUTHEADER; 3565 - 3566 -struct RAWMOUSE { 3567 - USHORT usFlags; 3568 - union { 3569 - ULONG ulButtons; 3570 - struct { 3571 - USHORT usButtonFlags; 3572 - USHORT usButtonData; 3641 + struct BSMINFO { 3642 + UINT cbSize = this.sizeof; 3643 + HDESK hdesk; 3644 + HWND hwnd; 3645 + LUID luid; 3646 + } 3647 + alias BSMINFO* PBSMINFO; 3648 + 3649 + alias TypeDef!(HANDLE) HRAWINPUT; 3650 + 3651 + struct RAWINPUTHEADER { 3652 + DWORD dwType; 3653 + DWORD dwSize; 3654 + HANDLE hDevice; 3655 + WPARAM wParam; 3656 + } 3657 + alias RAWINPUTHEADER* PRAWINPUTHEADER; 3658 + 3659 + struct RAWMOUSE { 3660 + USHORT usFlags; 3661 + union { 3662 + ULONG ulButtons; 3663 + struct { 3664 + USHORT usButtonFlags; 3665 + USHORT usButtonData; 3666 + } 3667 + } 3668 + ULONG ulRawButtons; 3669 + LONG lLastX; 3670 + LONG lLastY; 3671 + ULONG ulExtraInformation; 3672 + } 3673 + alias RAWMOUSE* PRAWMOUSE, LPRAWMOUSE; 3674 + 3675 + struct RAWKEYBOARD { 3676 + USHORT MakeCode; 3677 + USHORT Flags; 3678 + USHORT Reserved; 3679 + USHORT VKey; 3680 + UINT Message; 3681 + ULONG ExtraInformation; 3682 + } 3683 + alias RAWKEYBOARD* PRAWKEYBOARD, LPRAWKEYBOARD; 3684 + 3685 + struct RAWHID { 3686 + DWORD dwSizeHid; 3687 + DWORD dwCount; 3688 + BYTE bRawData; 3689 + } 3690 + alias RAWHID* PRAWHID, LPRAWHID; 3691 + 3692 + struct RAWINPUT { 3693 + RAWINPUTHEADER header; 3694 + union _data { 3695 + RAWMOUSE mouse; 3696 + RAWKEYBOARD keyboard; 3697 + RAWHID hid; 3573 3698 } 3574 - } 3575 - ULONG ulRawButtons; 3576 - LONG lLastX; 3577 - LONG lLastY; 3578 - ULONG ulExtraInformation; 3579 -} 3580 -alias RAWMOUSE* PRAWMOUSE, LPRAWMOUSE; 3581 - 3582 -struct RAWKEYBOARD { 3583 - USHORT MakeCode; 3584 - USHORT Flags; 3585 - USHORT Reserved; 3586 - USHORT VKey; 3587 - UINT Message; 3588 - ULONG ExtraInformation; 3589 -} 3590 -alias RAWKEYBOARD* PRAWKEYBOARD, LPRAWKEYBOARD; 3591 - 3592 -struct RAWHID { 3593 - DWORD dwSizeHid; 3594 - DWORD dwCount; 3595 - BYTE bRawData; 3596 -} 3597 -alias RAWHID* PRAWHID, LPRAWHID; 3598 - 3599 -struct RAWINPUT { 3600 - RAWINPUTHEADER header; 3601 - union _data { 3602 - RAWMOUSE mouse; 3603 - RAWKEYBOARD keyboard; 3604 - RAWHID hid; 3699 + _data data; 3700 + } 3701 + alias RAWINPUT* PRAWINPUT, LPRAWINPUT; 3702 + 3703 + struct RAWINPUTDEVICE { 3704 + USHORT usUsagePage; 3705 + USHORT usUsage; 3706 + DWORD dwFlags; 3707 + HWND hwndTarget; 3708 + } 3709 + alias RAWINPUTDEVICE* PRAWINPUTDEVICE, LPRAWINPUTDEVICE; 3710 + alias const(RAWINPUTDEVICE)* PCRAWINPUTDEVICE; 3711 + 3712 + struct RAWINPUTDEVICELIST { 3713 + HANDLE hDevice; 3714 + DWORD dwType; 3715 + } 3716 + alias RAWINPUTDEVICELIST* PRAWINPUTDEVICELIST; 3717 + 3718 + struct RID_DEVICE_INFO_MOUSE { 3719 + DWORD dwId; 3720 + DWORD dwNumberOfButtons; 3721 + DWORD dwSampleRate; 3722 + BOOL fHasHorizontalWheel; 3723 + } 3724 + 3725 + struct RID_DEVICE_INFO_KEYBOARD { 3726 + DWORD dwType; 3727 + DWORD dwSubType; 3728 + DWORD dwKeyboardMode; 3729 + DWORD dwNumberOfFunctionKeys; 3730 + DWORD dwNumberOfIndicators; 3731 + DWORD dwNumberOfKeysTotal; 3732 + } 3733 + 3734 + struct RID_DEVICE_INFO_HID { 3735 + DWORD dwVendorId; 3736 + DWORD dwProductId; 3737 + DWORD dwVersionNumber; 3738 + USHORT usUsagePage; 3739 + USHORT usUsage; 3605 3740 } 3606 - _data data; 3607 -} 3608 -alias RAWINPUT* PRAWINPUT, LPRAWINPUT; 3609 - 3610 -struct RAWINPUTDEVICE { 3611 - USHORT usUsagePage; 3612 - USHORT usUsage; 3613 - DWORD dwFlags; 3614 - HWND hwndTarget; 3615 -} 3616 -alias RAWINPUTDEVICE* PRAWINPUTDEVICE, LPRAWINPUTDEVICE; 3617 -alias CPtr!(RAWINPUTDEVICE) PCRAWINPUTDEVICE; 3618 - 3619 -struct RAWINPUTDEVICELIST { 3620 - HANDLE hDevice; 3621 - DWORD dwType; 3622 -} 3623 -alias RAWINPUTDEVICELIST* PRAWINPUTDEVICELIST; 3624 - 3625 -struct RID_DEVICE_INFO_MOUSE { 3626 - DWORD dwId; 3627 - DWORD dwNumberOfButtons; 3628 - DWORD dwSampleRate; 3629 - BOOL fHasHorizontalWheel; 3630 -} 3631 - 3632 -struct RID_DEVICE_INFO_KEYBOARD { 3633 - DWORD dwType; 3634 - DWORD dwSubType; 3635 - DWORD dwKeyboardMode; 3636 - DWORD dwNumberOfFunctionKeys; 3637 - DWORD dwNumberOfIndicators; 3638 - DWORD dwNumberOfKeysTotal; 3639 -} 3640 - 3641 -struct RID_DEVICE_INFO_HID { 3642 - DWORD dwVendorId; 3643 - DWORD dwProductId; 3644 - DWORD dwVersionNumber; 3645 - USHORT usUsagePage; 3646 - USHORT usUsage; 3647 -} 3648 - 3649 -struct RID_DEVICE_INFO { 3650 - DWORD cbSize = this.sizeof; 3651 - DWORD dwType; 3652 - union { 3653 - RID_DEVICE_INFO_MOUSE mouse; 3654 - RID_DEVICE_INFO_KEYBOARD keyboard; 3655 - RID_DEVICE_INFO_HID hid; 3656 - } 3657 -} 3741 + 3742 + struct RID_DEVICE_INFO { 3743 + DWORD cbSize = this.sizeof; 3744 + DWORD dwType; 3745 + union { 3746 + RID_DEVICE_INFO_MOUSE mouse; 3747 + RID_DEVICE_INFO_KEYBOARD keyboard; 3748 + RID_DEVICE_INFO_HID hid; 3749 + } 3750 + } 3658 3751 }// (_WIN32_WINNT >= 0x501) 3659 3752 3660 3753 struct MSLLHOOKSTRUCT { 3661 3754 POINT pt; 3662 3755 DWORD mouseData; 3663 3756 DWORD flags; 3664 3757 DWORD time; ................................................................................ 3677 3770 alias CharNextA AnsiNext; 3678 3771 alias CharPrevA AnsiPrev; 3679 3772 3680 3773 alias MAKELONG MAKEWPARAM; 3681 3774 alias MAKELONG MAKELPARAM; 3682 3775 alias MAKELONG MAKELRESULT; 3683 3776 3684 -//MACRO #define POINTSTOPOINT(p, ps) { (p).x=LOWORD(*(DWORD* )&ps); (p).y=HIWORD(*(DWORD* )&ps); } 3777 +//MACRO #define POINTSTOPOINT(p, ps) { (p).x=LOWORD(*(DWORD*)&ps); (p).y=HIWORD(*(DWORD*)&ps); } 3685 3778 //MACRO #define POINTTOPOINTS(p) ((POINTS)MAKELONG((p).x, (p).y)) 3686 3779 3687 3780 extern (Windows) { 3688 3781 3689 -HKL ActivateKeyboardLayout(HKL, UINT); 3690 -BOOL AdjustWindowRect(LPRECT, DWORD, BOOL); 3691 -BOOL AdjustWindowRectEx(LPRECT, DWORD, BOOL, DWORD); 3692 -BOOL AnyPopup(); 3693 -BOOL AppendMenuA(HMENU, UINT, UINT_PTR, LPCSTR); 3694 -BOOL AppendMenuW(HMENU, UINT, UINT_PTR, LPCWSTR); 3695 -UINT ArrangeIconicWindows(HWND); 3696 -BOOL AttachThreadInput(DWORD, DWORD, BOOL); 3697 -HDWP BeginDeferWindowPos(int); 3698 -HDC BeginPaint(HWND, LPPAINTSTRUCT); 3699 -BOOL BringWindowToTop(HWND); 3700 -BOOL CallMsgFilterA(LPMSG, INT); 3701 -BOOL CallMsgFilterW(LPMSG, INT); 3702 -LRESULT CallNextHookEx(HHOOK, int, WPARAM, LPARAM); 3703 -LRESULT CallWindowProcA(WNDPROC, HWND, UINT, WPARAM, LPARAM); 3704 -LRESULT CallWindowProcW(WNDPROC, HWND, UINT, WPARAM, LPARAM); 3705 -WORD CascadeWindows(HWND, UINT, LPCRECT, UINT, CPtr!(HWND)); 3706 -BOOL ChangeClipboardChain(HWND, HWND); 3707 - 3708 -LONG ChangeDisplaySettingsA(PDEVMODEA, DWORD); 3709 -LONG ChangeDisplaySettingsW(PDEVMODEW, DWORD); 3710 -LONG ChangeDisplaySettingsExA(LPCSTR, LPDEVMODEA, HWND, DWORD, LPVOID); 3711 -LONG ChangeDisplaySettingsExW(LPCWSTR, LPDEVMODEW, HWND, DWORD, LPVOID); 3712 - 3713 -BOOL ChangeMenuA(HMENU, UINT, LPCSTR, UINT, UINT); 3714 -BOOL ChangeMenuW(HMENU, UINT, LPCWSTR, UINT, UINT); 3715 -LPSTR CharLowerA(LPSTR); 3716 -LPWSTR CharLowerW(LPWSTR); 3717 -DWORD CharLowerBuffA(LPSTR, DWORD); 3718 -DWORD CharLowerBuffW(LPWSTR, DWORD); 3719 -LPSTR CharNextA(LPCSTR); 3720 -LPWSTR CharNextW(LPCWSTR); 3721 -LPSTR CharNextExA(WORD, LPCSTR, DWORD); 3722 -LPWSTR CharNextExW(WORD, LPCWSTR, DWORD); 3723 -LPSTR CharPrevA(LPCSTR, LPCSTR); 3724 -LPWSTR CharPrevW(LPCWSTR, LPCWSTR); 3725 -LPSTR CharPrevExA(WORD, LPCSTR, LPCSTR, DWORD); 3726 -LPWSTR CharPrevExW(WORD, LPCWSTR, LPCWSTR, DWORD); 3727 -BOOL CharToOemA(LPCSTR, LPSTR); 3728 -BOOL CharToOemW(LPCWSTR, LPSTR); 3729 -BOOL CharToOemBuffA(LPCSTR, LPSTR, DWORD); 3730 -BOOL CharToOemBuffW(LPCWSTR, LPSTR, DWORD); 3731 -LPSTR CharUpperA(LPSTR); 3732 -LPWSTR CharUpperW(LPWSTR); 3733 -DWORD CharUpperBuffA(LPSTR, DWORD); 3734 -DWORD CharUpperBuffW(LPWSTR, DWORD); 3735 -BOOL CheckDlgButton(HWND, int, UINT); 3736 -DWORD CheckMenuItem(HMENU, UINT, UINT); 3737 -BOOL CheckMenuRadioItem(HMENU, UINT, UINT, UINT, UINT); 3738 -BOOL CheckRadioButton(HWND, int, int, int); 3739 -HWND ChildWindowFromPoint(HWND, POINT); 3740 -HWND ChildWindowFromPointEx(HWND, POINT, UINT); 3741 -BOOL ClientToScreen(HWND, LPPOINT); 3742 -BOOL ClipCursor(LPCRECT); 3743 -BOOL CloseClipboard(); 3744 -BOOL CloseDesktop(HDESK); 3745 -BOOL CloseWindow(HWND); 3746 -BOOL CloseWindowStation(HWINSTA); 3747 -int CopyAcceleratorTableA(HACCEL, LPACCEL, int); 3748 -int CopyAcceleratorTableW(HACCEL, LPACCEL, int); 3749 - 3750 -HICON CopyIcon(HICON); 3751 -HANDLE CopyImage(HANDLE, UINT, int, int, UINT); 3752 -BOOL CopyRect(LPRECT, LPCRECT); 3753 -int CountClipboardFormats(); 3754 -HACCEL CreateAcceleratorTableA(LPACCEL, int); 3755 -HACCEL CreateAcceleratorTableW(LPACCEL, int); 3756 -BOOL CreateCaret(HWND, HBITMAP, int, int); 3757 -HCURSOR CreateCursor(HINSTANCE, int, int, int, int, PCVOID, PCVOID); 3758 - 3759 -HDESK CreateDesktopA(LPCSTR, LPCSTR, LPDEVMODEA, DWORD, ACCESS_MASK, LPSECURITY_ATTRIBUTES); 3760 -HDESK CreateDesktopW(LPCWSTR, LPCWSTR, LPDEVMODEW, DWORD, ACCESS_MASK, LPSECURITY_ATTRIBUTES); 3761 - 3762 -HWND CreateDialogParamA(HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM); 3763 -HWND CreateDialogParamW(HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM); 3764 -HWND CreateDialogIndirectParamA(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); 3765 -HWND CreateDialogIndirectParamW(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); 3766 - 3767 -HICON CreateIcon(HINSTANCE, int, int, BYTE, BYTE, CPtr!(BYTE), BYTE*); 3768 -HICON CreateIconFromResource(PBYTE, DWORD, BOOL, DWORD); 3769 -HICON CreateIconFromResourceEx(PBYTE, DWORD, BOOL, DWORD, int, int, UINT); 3770 -HICON CreateIconIndirect(PICONINFO); 3771 -HWND CreateMDIWindowA(LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HINSTANCE, LPARAM); 3772 -HWND CreateMDIWindowW(LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HINSTANCE, LPARAM); 3773 -HMENU CreateMenu(); 3774 -HMENU CreatePopupMenu(); 3775 - 3776 -HWND CreateWindowExA(DWORD, LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID); 3777 -HWND CreateWindowExW(DWORD, LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID); 3778 - 3779 -HWINSTA CreateWindowStationA(LPSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES); 3780 -HWINSTA CreateWindowStationW(LPWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES); 3781 -LRESULT DefDlgProcA(HWND, UINT, WPARAM, LPARAM); 3782 -LRESULT DefDlgProcW(HWND, UINT, WPARAM, LPARAM); 3783 -HDWP DeferWindowPos(HDWP, HWND, HWND, int, int, int, int, UINT); 3784 -LRESULT DefFrameProcA(HWND, HWND, UINT, WPARAM, LPARAM); 3785 -LRESULT DefFrameProcW(HWND, HWND, UINT, WPARAM, LPARAM); 3786 - 3787 -LRESULT DefMDIChildProcA(HWND, UINT, WPARAM, LPARAM); 3788 -LRESULT DefMDIChildProcW(HWND, UINT, WPARAM, LPARAM); 3789 -LRESULT DefWindowProcA(HWND, UINT, WPARAM, LPARAM); 3790 -LRESULT DefWindowProcW(HWND, UINT, WPARAM, LPARAM); 3791 -BOOL DeleteMenu(HMENU, UINT, UINT); 3792 -BOOL DeregisterShellHookWindow(HWND); 3793 -BOOL DestroyAcceleratorTable(HACCEL); 3794 -BOOL DestroyCaret(); 3795 -BOOL DestroyCursor(HCURSOR); 3796 -BOOL DestroyIcon(HICON); 3797 -BOOL DestroyMenu(HMENU); 3798 -BOOL DestroyWindow(HWND); 3799 - 3800 -int DialogBoxParamA(HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM); 3801 -int DialogBoxParamW(HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM); 3802 -int DialogBoxIndirectParamA(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); 3803 -int DialogBoxIndirectParamW(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); 3782 + HKL ActivateKeyboardLayout(HKL, UINT); 3783 + BOOL AdjustWindowRect(LPRECT, DWORD, BOOL); 3784 + BOOL AdjustWindowRectEx(LPRECT, DWORD, BOOL, DWORD); 3785 + BOOL AnyPopup(); 3786 + BOOL AppendMenuA(HMENU, UINT, UINT_PTR, LPCSTR); 3787 + BOOL AppendMenuW(HMENU, UINT, UINT_PTR, LPCWSTR); 3788 + UINT ArrangeIconicWindows(HWND); 3789 + BOOL AttachThreadInput(DWORD, DWORD, BOOL); 3790 + HDWP BeginDeferWindowPos(int); 3791 + HDC BeginPaint(HWND, LPPAINTSTRUCT); 3792 + BOOL BringWindowToTop(HWND); 3793 + BOOL CallMsgFilterA(LPMSG, INT); 3794 + BOOL CallMsgFilterW(LPMSG, INT); 3795 + LRESULT CallNextHookEx(HHOOK, int, WPARAM, LPARAM); 3796 + LRESULT CallWindowProcA(WNDPROC, HWND, UINT, WPARAM, LPARAM); 3797 + LRESULT CallWindowProcW(WNDPROC, HWND, UINT, WPARAM, LPARAM); 3798 + WORD CascadeWindows(HWND, UINT, LPCRECT, UINT, const(HWND)*); 3799 + BOOL ChangeClipboardChain(HWND, HWND); 3800 + 3801 + LONG ChangeDisplaySettingsA(PDEVMODEA, DWORD); 3802 + LONG ChangeDisplaySettingsW(PDEVMODEW, DWORD); 3803 + LONG ChangeDisplaySettingsExA(LPCSTR, LPDEVMODEA, HWND, DWORD, LPVOID); 3804 + LONG ChangeDisplaySettingsExW(LPCWSTR, LPDEVMODEW, HWND, DWORD, LPVOID); 3805 + 3806 + BOOL ChangeMenuA(HMENU, UINT, LPCSTR, UINT, UINT); 3807 + BOOL ChangeMenuW(HMENU, UINT, LPCWSTR, UINT, UINT); 3808 + LPSTR CharLowerA(LPSTR); 3809 + LPWSTR CharLowerW(LPWSTR); 3810 + DWORD CharLowerBuffA(LPSTR, DWORD); 3811 + DWORD CharLowerBuffW(LPWSTR, DWORD); 3812 + LPSTR CharNextA(LPCSTR); 3813 + LPWSTR CharNextW(LPCWSTR); 3814 + LPSTR CharNextExA(WORD, LPCSTR, DWORD); 3815 + LPWSTR CharNextExW(WORD, LPCWSTR, DWORD); 3816 + LPSTR CharPrevA(LPCSTR, LPCSTR); 3817 + LPWSTR CharPrevW(LPCWSTR, LPCWSTR); 3818 + LPSTR CharPrevExA(WORD, LPCSTR, LPCSTR, DWORD); 3819 + LPWSTR CharPrevExW(WORD, LPCWSTR, LPCWSTR, DWORD); 3820 + BOOL CharToOemA(LPCSTR, LPSTR); 3821 + BOOL CharToOemW(LPCWSTR, LPSTR); 3822 + BOOL CharToOemBuffA(LPCSTR, LPSTR, DWORD); 3823 + BOOL CharToOemBuffW(LPCWSTR, LPSTR, DWORD); 3824 + LPSTR CharUpperA(LPSTR); 3825 + LPWSTR CharUpperW(LPWSTR); 3826 + DWORD CharUpperBuffA(LPSTR, DWORD); 3827 + DWORD CharUpperBuffW(LPWSTR, DWORD); 3828 + BOOL CheckDlgButton(HWND, int, UINT); 3829 + DWORD CheckMenuItem(HMENU, UINT, UINT); 3830 + BOOL CheckMenuRadioItem(HMENU, UINT, UINT, UINT, UINT); 3831 + BOOL CheckRadioButton(HWND, int, int, int); 3832 + HWND ChildWindowFromPoint(HWND, POINT); 3833 + HWND ChildWindowFromPointEx(HWND, POINT, UINT); 3834 + BOOL ClientToScreen(HWND, LPPOINT); 3835 + BOOL ClipCursor(LPCRECT); 3836 + BOOL CloseClipboard(); 3837 + BOOL CloseDesktop(HDESK); 3838 + BOOL CloseWindow(HWND); 3839 + BOOL CloseWindowStation(HWINSTA); 3840 + int CopyAcceleratorTableA(HACCEL, LPACCEL, int); 3841 + int CopyAcceleratorTableW(HACCEL, LPACCEL, int); 3842 + 3843 + HICON CopyIcon(HICON); 3844 + HANDLE CopyImage(HANDLE, UINT, int, int, UINT); 3845 + BOOL CopyRect(LPRECT, LPCRECT); 3846 + int CountClipboardFormats(); 3847 + HACCEL CreateAcceleratorTableA(LPACCEL, int); 3848 + HACCEL CreateAcceleratorTableW(LPACCEL, int); 3849 + BOOL CreateCaret(HWND, HBITMAP, int, int); 3850 + HCURSOR CreateCursor(HINSTANCE, int, int, int, int, PCVOID, PCVOID); 3851 + 3852 + HDESK CreateDesktopA(LPCSTR, LPCSTR, LPDEVMODEA, DWORD, ACCESS_MASK, LPSECURITY_ATTRIBUTES); 3853 + HDESK CreateDesktopW(LPCWSTR, LPCWSTR, LPDEVMODEW, DWORD, ACCESS_MASK, LPSECURITY_ATTRIBUTES); 3854 + 3855 + HWND CreateDialogParamA(HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM); 3856 + HWND CreateDialogParamW(HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM); 3857 + HWND CreateDialogIndirectParamA(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); 3858 + HWND CreateDialogIndirectParamW(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); 3859 + 3860 + HICON CreateIcon(HINSTANCE, int, int, BYTE, BYTE, const(BYTE)*, BYTE*); 3861 + HICON CreateIconFromResource(PBYTE, DWORD, BOOL, DWORD); 3862 + HICON CreateIconFromResourceEx(PBYTE, DWORD, BOOL, DWORD, int, int, UINT); 3863 + HICON CreateIconIndirect(PICONINFO); 3864 + HWND CreateMDIWindowA(LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HINSTANCE, LPARAM); 3865 + HWND CreateMDIWindowW(LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HINSTANCE, LPARAM); 3866 + HMENU CreateMenu(); 3867 + HMENU CreatePopupMenu(); 3868 + 3869 + HWND CreateWindowExA(DWORD, LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID); 3870 + HWND CreateWindowExW(DWORD, LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID); 3871 + 3872 + HWINSTA CreateWindowStationA(LPSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES); 3873 + HWINSTA CreateWindowStationW(LPWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES); 3874 + LRESULT DefDlgProcA(HWND, UINT, WPARAM, LPARAM); 3875 + LRESULT DefDlgProcW(HWND, UINT, WPARAM, LPARAM); 3876 + HDWP DeferWindowPos(HDWP, HWND, HWND, int, int, int, int, UINT); 3877 + LRESULT DefFrameProcA(HWND, HWND, UINT, WPARAM, LPARAM); 3878 + LRESULT DefFrameProcW(HWND, HWND, UINT, WPARAM, LPARAM); 3879 + 3880 + LRESULT DefMDIChildProcA(HWND, UINT, WPARAM, LPARAM); 3881 + LRESULT DefMDIChildProcW(HWND, UINT, WPARAM, LPARAM); 3882 + LRESULT DefWindowProcA(HWND, UINT, WPARAM, LPARAM); 3883 + LRESULT DefWindowProcW(HWND, UINT, WPARAM, LPARAM); 3884 + BOOL DeleteMenu(HMENU, UINT, UINT); 3885 + BOOL DeregisterShellHookWindow(HWND); 3886 + BOOL DestroyAcceleratorTable(HACCEL); 3887 + BOOL DestroyCaret(); 3888 + BOOL DestroyCursor(HCURSOR); 3889 + BOOL DestroyIcon(HICON); 3890 + BOOL DestroyMenu(HMENU); 3891 + BOOL DestroyWindow(HWND); 3892 + 3893 + INT_PTR DialogBoxParamA(HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM); 3894 + INT_PTR DialogBoxParamW(HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM); 3895 + INT_PTR DialogBoxIndirectParamA(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); 3896 + INT_PTR DialogBoxIndirectParamW(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); 3804 3897 3805 3898 } // extern (Windows) 3806 3899 3807 -HCURSOR CopyCursor(HCURSOR c) 3808 -{ 3900 +HCURSOR CopyCursor()(HCURSOR c) { 3809 3901 return cast(HCURSOR)CopyIcon(cast(HICON)c); 3810 3902 } 3811 3903 3812 -HWND CreateDialogA(HINSTANCE h, LPCSTR n, HWND w, DLGPROC f) 3813 -{ 3904 +HWND CreateDialogA()(HINSTANCE h, LPCSTR n, HWND w, DLGPROC f) { 3814 3905 return CreateDialogParamA(h, n, w, f, 0); 3815 3906 } 3816 3907 3817 -HWND CreateDialogW(HINSTANCE h, LPCWSTR n, HWND w, DLGPROC f) 3818 -{ 3908 +HWND CreateDialogW()(HINSTANCE h, LPCWSTR n, HWND w, DLGPROC f) { 3819 3909 return CreateDialogParamW(h, n, w, f, 0); 3820 3910 } 3821 3911 3822 -HWND CreateDialogIndirectA(HINSTANCE h, LPCDLGTEMPLATE t, HWND w , DLGPROC f) 3823 -{ 3912 +HWND CreateDialogIndirectA()(HINSTANCE h, LPCDLGTEMPLATE t, HWND w, DLGPROC f) { 3824 3913 return CreateDialogIndirectParamA(h, t, w, f, 0); 3825 3914 } 3826 3915 3827 -HWND CreateDialogIndirectW(HINSTANCE h, LPCDLGTEMPLATE t, HWND w , DLGPROC f) 3828 -{ 3916 +HWND CreateDialogIndirectW()(HINSTANCE h, LPCDLGTEMPLATE t, HWND w, DLGPROC f) { 3829 3917 return CreateDialogIndirectParamW(h, t, w, f, 0); 3830 3918 } 3831 3919 3832 - 3833 -HWND CreateWindowA(LPCSTR a, LPCSTR b, DWORD c, int d, int e, int f, int g, HWND h, HMENU i, HINSTANCE j, LPVOID k) 3834 -{ 3920 +HWND CreateWindowA()(LPCSTR a, LPCSTR b, DWORD c, int d, int e, int f, int g, HWND h, HMENU i, HINSTANCE j, LPVOID k) { 3835 3921 return CreateWindowExA(0, a, b, c, d, e, f, g, h, i, j, k); 3836 3922 } 3837 3923 3838 -HWND CreateWindowW(LPCWSTR a, LPCWSTR b, DWORD c, int d, int e, int f, int g, HWND h, HMENU i, HINSTANCE j, LPVOID k) 3839 -{ 3924 +HWND CreateWindowW()(LPCWSTR a, LPCWSTR b, DWORD c, int d, int e, int f, int g, HWND h, HMENU i, HINSTANCE j, LPVOID k) { 3840 3925 return CreateWindowExW(0, a, b, c, d, e, f, g, h, i, j, k); 3841 3926 } 3842 3927 3843 -int DialogBoxA(HINSTANCE i, LPCSTR t, HWND p, DLGPROC f) 3844 -{ 3928 +INT_PTR DialogBoxA()(HINSTANCE i, LPCSTR t, HWND p, DLGPROC f) { 3845 3929 return DialogBoxParamA(i, t, p, f, 0); 3846 3930 } 3847 3931 3848 -int DialogBoxW(HINSTANCE i, LPCWSTR t, HWND p, DLGPROC f) 3849 -{ 3932 +INT_PTR DialogBoxW()(HINSTANCE i, LPCWSTR t, HWND p, DLGPROC f) { 3850 3933 return DialogBoxParamW(i, t, p, f, 0); 3851 3934 } 3852 3935 3853 -int DialogBoxIndirectA(HINSTANCE i, LPCDLGTEMPLATE t, HWND p, DLGPROC f) 3854 -{ 3936 +INT_PTR DialogBoxIndirectA()(HINSTANCE i, LPCDLGTEMPLATE t, HWND p, DLGPROC f) { 3855 3937 return DialogBoxIndirectParamA(i, t, p, f, 0); 3856 3938 } 3857 3939 3858 -int DialogBoxIndirectW(HINSTANCE i, LPCDLGTEMPLATE t, HWND p, DLGPROC f) 3859 -{ 3940 +INT_PTR DialogBoxIndirectW()(HINSTANCE i, LPCDLGTEMPLATE t, HWND p, DLGPROC f) { 3860 3941 return DialogBoxIndirectParamW(i, t, p, f, 0); 3861 3942 } 3862 3943 3863 -BOOL ExitWindows(UINT r, DWORD c) 3864 -{ 3944 +BOOL ExitWindows()(UINT r, DWORD c) { 3865 3945 return ExitWindowsEx(EWX_LOGOFF, 0); 3866 3946 } 3867 3947 alias GetWindow GetNextWindow; 3868 3948 3869 3949 extern (Windows): 3870 -LONG DispatchMessageA( CPtr!(MSG)); 3871 -LONG DispatchMessageW( CPtr!(MSG)); 3950 +LONG DispatchMessageA(const(MSG)*); 3951 +LONG DispatchMessageW(const(MSG)*); 3872 3952 int DlgDirListA(HWND, LPSTR, int, int, UINT); 3873 3953 int DlgDirListW(HWND, LPWSTR, int, int, UINT); 3874 3954 int DlgDirListComboBoxA(HWND, LPSTR, int, int, UINT); 3875 3955 int DlgDirListComboBoxW(HWND, LPWSTR, int, int, UINT); 3876 3956 BOOL DlgDirSelectComboBoxExA(HWND, LPSTR, int, int); 3877 3957 BOOL DlgDirSelectComboBoxExW(HWND, LPWSTR, int, int); 3878 3958 BOOL DlgDirSelectExA(HWND, LPSTR, int, int); ................................................................................ 3894 3974 int DrawTextExA(HDC, LPSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS); 3895 3975 int DrawTextExW(HDC, LPWSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS); 3896 3976 BOOL EmptyClipboard(); 3897 3977 BOOL EnableMenuItem(HMENU, UINT, UINT); 3898 3978 BOOL EnableScrollBar(HWND, UINT, UINT); 3899 3979 BOOL EnableWindow(HWND, BOOL); 3900 3980 BOOL EndDeferWindowPos(HDWP); 3901 -BOOL EndDialog(HWND, int); 3981 +BOOL EndDialog(HWND, INT_PTR); 3902 3982 BOOL EndMenu(); 3903 -BOOL EndPaint(HWND, CPtr!(PAINTSTRUCT)); 3983 +BOOL EndPaint(HWND, const(PAINTSTRUCT)*); 3904 3984 BOOL EnumChildWindows(HWND, ENUMWINDOWSPROC, LPARAM); 3905 3985 UINT EnumClipboardFormats(UINT); 3906 3986 BOOL EnumDesktopsA(HWINSTA, DESKTOPENUMPROCA, LPARAM); 3907 3987 BOOL EnumDesktopsW(HWINSTA, DESKTOPENUMPROCW, LPARAM); 3908 3988 BOOL EnumDesktopWindows(HDESK, ENUMWINDOWSPROC, LPARAM); 3909 3989 BOOL EnumDisplaySettingsA(LPCSTR, DWORD, PDEVMODEA); 3910 3990 BOOL EnumDisplaySettingsW(LPCWSTR, DWORD, PDEVMODEW); ................................................................................ 4057 4137 UINT GetWindowModuleFileNameW(HWND, LPWSTR, UINT); 4058 4138 BOOL GrayStringA(HDC, HBRUSH, GRAYSTRINGPROC, LPARAM, int, int, int, int, int); 4059 4139 BOOL GrayStringW(HDC, HBRUSH, GRAYSTRINGPROC, LPARAM, int, int, int, int, int); 4060 4140 BOOL HideCaret(HWND); 4061 4141 BOOL HiliteMenuItem(HWND, HMENU, UINT, UINT); 4062 4142 BOOL InflateRect(LPRECT, int, int); 4063 4143 BOOL InSendMessage(); 4064 -BOOL InsertMenuA(HMENU, UINT, UINT, UINT, LPCSTR); 4065 -BOOL InsertMenuW(HMENU, UINT, UINT, UINT, LPCWSTR); 4144 +BOOL InsertMenuA(HMENU, UINT, UINT, UINT_PTR, LPCSTR); 4145 +BOOL InsertMenuW(HMENU, UINT, UINT, UINT_PTR, LPCWSTR); 4066 4146 BOOL InsertMenuItemA(HMENU, UINT, BOOL, LPCMENUITEMINFOA); 4067 4147 BOOL InsertMenuItemW(HMENU, UINT, BOOL, LPCMENUITEMINFOW); 4068 4148 INT InternalGetWindowText(HWND, LPWSTR, INT); 4069 4149 BOOL IntersectRect(LPRECT, LPCRECT, LPCRECT); 4070 4150 BOOL InvalidateRect(HWND, LPCRECT, BOOL); 4071 4151 BOOL InvalidateRgn(HWND, HRGN, BOOL); 4072 4152 BOOL InvertRect(HDC, LPCRECT); ................................................................................ 4088 4168 BOOL IsRectEmpty(LPCRECT); 4089 4169 BOOL IsWindow(HWND); 4090 4170 BOOL IsWindowEnabled(HWND); 4091 4171 BOOL IsWindowUnicode(HWND); 4092 4172 BOOL IsWindowVisible(HWND); 4093 4173 BOOL IsZoomed(HWND); 4094 4174 void keybd_event(BYTE, BYTE, DWORD, DWORD); 4095 -BOOL KillTimer(HWND, UINT); 4175 +BOOL KillTimer(HWND, UINT_PTR); 4096 4176 HACCEL LoadAcceleratorsA(HINSTANCE, LPCSTR); 4097 4177 HACCEL LoadAcceleratorsW(HINSTANCE, LPCWSTR); 4098 4178 HBITMAP LoadBitmapA(HINSTANCE, LPCSTR); 4099 4179 HBITMAP LoadBitmapW(HINSTANCE, LPCWSTR); 4100 4180 HCURSOR LoadCursorA(HINSTANCE, LPCSTR); 4101 4181 HCURSOR LoadCursorFromFileA(LPCSTR); 4102 4182 HCURSOR LoadCursorFromFileW(LPCWSTR); ................................................................................ 4104 4184 HICON LoadIconA(HINSTANCE, LPCSTR); 4105 4185 HICON LoadIconW(HINSTANCE, LPCWSTR); 4106 4186 HANDLE LoadImageA(HINSTANCE, LPCSTR, UINT, int, int, UINT); 4107 4187 HANDLE LoadImageW(HINSTANCE, LPCWSTR, UINT, int, int, UINT); 4108 4188 HKL LoadKeyboardLayoutA(LPCSTR, UINT); 4109 4189 HKL LoadKeyboardLayoutW(LPCWSTR, UINT); 4110 4190 HMENU LoadMenuA(HINSTANCE, LPCSTR); 4111 -HMENU LoadMenuIndirectA( CPtr!(MENUTEMPLATE)); 4112 -HMENU LoadMenuIndirectW( CPtr!(MENUTEMPLATE)); 4191 +HMENU LoadMenuIndirectA(const(MENUTEMPLATE)*); 4192 +HMENU LoadMenuIndirectW(const(MENUTEMPLATE)*); 4113 4193 HMENU LoadMenuW(HINSTANCE, LPCWSTR); 4114 4194 int LoadStringA(HINSTANCE, UINT, LPSTR, int); 4115 4195 int LoadStringW(HINSTANCE, UINT, LPWSTR, int); 4116 4196 BOOL LockWindowUpdate(HWND); 4117 4197 int LookupIconIdFromDirectory(PBYTE, BOOL); 4118 4198 int LookupIconIdFromDirectoryEx(PBYTE, BOOL, int, int, UINT); 4119 4199 BOOL MapDialogRect(HWND, LPRECT); ................................................................................ 4124 4204 int MapWindowPoints(HWND, HWND, LPPOINT, UINT); 4125 4205 int MenuItemFromPoint(HWND, HMENU, POINT); 4126 4206 BOOL MessageBeep(UINT); 4127 4207 int MessageBoxA(HWND, LPCSTR, LPCSTR, UINT); 4128 4208 int MessageBoxW(HWND, LPCWSTR, LPCWSTR, UINT); 4129 4209 int MessageBoxExA(HWND, LPCSTR, LPCSTR, UINT, WORD); 4130 4210 int MessageBoxExW(HWND, LPCWSTR, LPCWSTR, UINT, WORD); 4131 -int MessageBoxIndirectA(CPtr!(MSGBOXPARAMSA)); 4132 -int MessageBoxIndirectW(CPtr!(MSGBOXPARAMSW)); 4133 -BOOL ModifyMenuA(HMENU, UINT, UINT, UINT, LPCSTR); 4134 -BOOL ModifyMenuW(HMENU, UINT, UINT, UINT, LPCWSTR); 4211 +int MessageBoxIndirectA(const(MSGBOXPARAMSA)*); 4212 +int MessageBoxIndirectW(const(MSGBOXPARAMSW)*); 4213 +BOOL ModifyMenuA(HMENU, UINT, UINT, UINT_PTR, LPCSTR); 4214 +BOOL ModifyMenuW(HMENU, UINT, UINT, UINT_PTR, LPCWSTR); 4135 4215 void mouse_event(DWORD, DWORD, DWORD, DWORD, ULONG_PTR); 4136 4216 BOOL MoveWindow(HWND, int, int, int, int, BOOL); 4137 -DWORD MsgWaitForMultipleObjects(DWORD, CPtr!(HANDLE), BOOL, DWORD, DWORD); 4138 -DWORD MsgWaitForMultipleObjectsEx(DWORD, CPtr!(HANDLE), DWORD, DWORD, DWORD); 4217 +DWORD MsgWaitForMultipleObjects(DWORD, const(HANDLE)*, BOOL, DWORD, DWORD); 4218 +DWORD MsgWaitForMultipleObjectsEx(DWORD, const(HANDLE)*, DWORD, DWORD, DWORD); 4139 4219 DWORD OemKeyScan(WORD); 4140 4220 BOOL OemToCharA(LPCSTR, LPSTR); 4141 4221 BOOL OemToCharBuffA(LPCSTR, LPSTR, DWORD); 4142 4222 BOOL OemToCharBuffW(LPCSTR, LPWSTR, DWORD); 4143 4223 BOOL OemToCharW(LPCSTR, LPWSTR); 4144 4224 BOOL OffsetRect(LPRECT, int, int); 4145 4225 BOOL OpenClipboard(HWND); ................................................................................ 4158 4238 BOOL PostThreadMessageA(DWORD, UINT, WPARAM, LPARAM); 4159 4239 BOOL PostThreadMessageW(DWORD, UINT, WPARAM, LPARAM); 4160 4240 BOOL PtInRect(LPCRECT, POINT); 4161 4241 HWND RealChildWindowFromPoint(HWND, POINT); 4162 4242 UINT RealGetWindowClassA(HWND, LPSTR, UINT); 4163 4243 UINT RealGetWindowClassW(HWND, LPWSTR, UINT); 4164 4244 BOOL RedrawWindow(HWND, LPCRECT, HRGN, UINT); 4165 -ATOM RegisterClassA(CPtr!(WNDCLASSA)); 4166 -ATOM RegisterClassW(CPtr!(WNDCLASSW)); 4167 -ATOM RegisterClassExA(CPtr!(WNDCLASSEXA)); 4168 -ATOM RegisterClassExW(CPtr!(WNDCLASSEXW)); 4245 +ATOM RegisterClassA(const(WNDCLASSA)*); 4246 +ATOM RegisterClassW(const(WNDCLASSW)*); 4247 +ATOM RegisterClassExA(const(WNDCLASSEXA)*); 4248 +ATOM RegisterClassExW(const(WNDCLASSEXW)*); 4169 4249 UINT RegisterClipboardFormatA(LPCSTR); 4170 4250 UINT RegisterClipboardFormatW(LPCWSTR); 4171 4251 BOOL RegisterHotKey(HWND, int, UINT, UINT); 4172 4252 UINT RegisterWindowMessageA(LPCSTR); 4173 4253 UINT RegisterWindowMessageW(LPCWSTR); 4174 4254 BOOL ReleaseCapture(); 4175 4255 int ReleaseDC(HWND, HDC); ................................................................................ 4212 4292 BOOL SetKeyboardState(PBYTE); 4213 4293 BOOL SetMenu(HWND, HMENU); 4214 4294 BOOL SetMenuContextHelpId(HMENU, DWORD); 4215 4295 BOOL SetMenuDefaultItem(HMENU, UINT, UINT); 4216 4296 BOOL SetMenuInfo(HMENU, LPCMENUINFO); 4217 4297 BOOL SetMenuItemBitmaps(HMENU, UINT, UINT, HBITMAP, HBITMAP); 4218 4298 BOOL SetMenuItemInfoA(HMENU, UINT, BOOL, LPCMENUITEMINFOA); 4219 -BOOL SetMenuItemInfoW( HMENU, UINT, BOOL, LPCMENUITEMINFOW); 4299 +BOOL SetMenuItemInfoW(HMENU, UINT, BOOL, LPCMENUITEMINFOW); 4220 4300 LPARAM SetMessageExtraInfo(LPARAM); 4221 4301 BOOL SetMessageQueue(int); 4222 4302 HWND SetParent(HWND, HWND); 4223 4303 BOOL SetProcessWindowStation(HWINSTA); 4224 4304 BOOL SetPropA(HWND, LPCSTR, HANDLE); 4225 4305 BOOL SetPropW(HWND, LPCWSTR, HANDLE); 4226 4306 BOOL SetRect(LPRECT, int, int, int, int); 4227 4307 BOOL SetRectEmpty(LPRECT); 4228 4308 int SetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL); 4229 4309 int SetScrollPos(HWND, int, int, BOOL); 4230 4310 BOOL SetScrollRange(HWND, int, int, int, BOOL); 4231 -BOOL SetSysColors(int, CPtr!(INT) , CPtr!(COLORREF) ); 4311 +BOOL SetSysColors(int, const(INT)*, const(COLORREF)*); 4232 4312 BOOL SetSystemCursor(HCURSOR, DWORD); 4233 4313 BOOL SetThreadDesktop(HDESK); 4234 -UINT SetTimer(HWND, UINT, UINT, TIMERPROC); 4314 +UINT_PTR SetTimer(HWND, UINT_PTR, UINT, TIMERPROC); 4235 4315 BOOL SetUserObjectInformationA(HANDLE, int, PVOID, DWORD); 4236 4316 BOOL SetUserObjectInformationW(HANDLE, int, PVOID, DWORD); 4237 4317 BOOL SetUserObjectSecurity(HANDLE, PSECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 4238 4318 BOOL SetWindowContextHelpId(HWND, DWORD); 4239 4319 LONG SetWindowLongA(HWND, int, LONG); 4240 4320 LONG SetWindowLongW(HWND, int, LONG); 4241 -BOOL SetWindowPlacement(HWND hWnd, CPtr!(WINDOWPLACEMENT)); 4321 +BOOL SetWindowPlacement(HWND hWnd, const(WINDOWPLACEMENT)*); 4242 4322 BOOL SetWindowPos(HWND, HWND, int, int, int, int, UINT); 4243 4323 int SetWindowRgn(HWND, HRGN, BOOL); 4244 4324 HHOOK SetWindowsHookA(int, HOOKPROC); 4245 4325 HHOOK SetWindowsHookW(int, HOOKPROC); 4246 4326 HHOOK SetWindowsHookExA(int, HOOKPROC, HINSTANCE, DWORD); 4247 4327 HHOOK SetWindowsHookExW(int, HOOKPROC, HINSTANCE, DWORD); 4248 4328 BOOL SetWindowTextA(HWND, LPCSTR); ................................................................................ 4257 4337 BOOL SubtractRect(LPRECT, LPCRECT, LPCRECT); 4258 4338 BOOL SwapMouseButton(BOOL); 4259 4339 BOOL SwitchDesktop(HDESK); 4260 4340 BOOL SystemParametersInfoA(UINT, UINT, PVOID, UINT); 4261 4341 BOOL SystemParametersInfoW(UINT, UINT, PVOID, UINT); 4262 4342 LONG TabbedTextOutA(HDC, int, int, LPCSTR, int, int, LPINT, int); 4263 4343 LONG TabbedTextOutW(HDC, int, int, LPCWSTR, int, int, LPINT, int); 4264 -WORD TileWindows(HWND, UINT, LPCRECT, UINT, CPtr!(HWND) ); 4344 +WORD TileWindows(HWND, UINT, LPCRECT, UINT, const(HWND)*); 4265 4345 int ToAscii(UINT, UINT, PBYTE, LPWORD, UINT); 4266 4346 int ToAsciiEx(UINT, UINT, PBYTE, LPWORD, UINT, HKL); 4267 4347 int ToUnicode(UINT, UINT, PBYTE, LPWSTR, int, UINT); 4268 4348 int ToUnicodeEx(UINT, UINT, PBYTE, LPWSTR, int, UINT, HKL); 4269 4349 BOOL TrackMouseEvent(LPTRACKMOUSEEVENT); 4270 4350 BOOL TrackPopupMenu(HMENU, UINT, int, int, int, HWND, LPCRECT); 4271 4351 BOOL TrackPopupMenuEx(HMENU, UINT, int, int, HWND, LPTPMPARAMS); 4272 4352 int TranslateAcceleratorA(HWND, HACCEL, LPMSG); 4273 4353 int TranslateAcceleratorW(HWND, HACCEL, LPMSG); 4274 4354 BOOL TranslateMDISysAccel(HWND, LPMSG); 4275 -BOOL TranslateMessage( CPtr!(MSG)); 4355 +BOOL TranslateMessage(const(MSG)*); 4276 4356 BOOL UnhookWindowsHook(int, HOOKPROC); 4277 4357 BOOL UnhookWindowsHookEx(HHOOK); 4278 4358 BOOL UnionRect(LPRECT, LPCRECT, LPCRECT); 4279 4359 BOOL UnloadKeyboardLayout(HKL); 4280 4360 BOOL UnregisterClassA(LPCSTR, HINSTANCE); 4281 4361 BOOL UnregisterClassW(LPCWSTR, HINSTANCE); 4282 4362 BOOL UnregisterHotKey(HWND, int); ................................................................................ 4298 4378 extern (C) { 4299 4379 int wsprintfA(LPSTR, LPCSTR, ...); 4300 4380 int wsprintfW(LPWSTR, LPCWSTR, ...); 4301 4381 } 4302 4382 4303 4383 4304 4384 // These shouldn't be necessary for D. 4305 -alias char* va_list_; 4385 +alias TypeDef!(char*) va_list_; 4306 4386 int wvsprintfA(LPSTR, LPCSTR, va_list_ arglist); 4307 4387 int wvsprintfW(LPWSTR, LPCWSTR, va_list_ arglist); 4308 4388 4309 4389 4310 -static if (_WIN32_WINDOWS == 0x400) { 4311 -// On Win95, there's only one version. 4312 -int BroadcastSystemMessage(DWORD, LPDWORD, UINT, WPARAM, LPARAM); 4313 -} 4314 -static if (_WIN32_WINNT >= 0x400) { 4315 4390 int BroadcastSystemMessageA(DWORD, LPDWORD, UINT, WPARAM, LPARAM); 4316 4391 int BroadcastSystemMessageW(DWORD, LPDWORD, UINT, WPARAM, LPARAM); 4317 -} 4318 -static if (_WIN32_WINNT >= 0x501) { 4319 -int BroadcastSystemMessageExA(DWORD, LPDWORD, UINT, WPARAM, LPARAM, PBSMINFO); 4320 -int BroadcastSystemMessageExW(DWORD, LPDWORD, UINT, WPARAM, LPARAM, PBSMINFO); 4392 + 4393 +static if (_WIN32_WINNT >= 0x403) { 4394 + UINT SendInput(UINT, LPINPUT, int); 4321 4395 } 4322 4396 4323 -static if (_WIN32_WINNT >= 0x403) { 4324 -UINT SendInput(UINT, LPINPUT, int); 4325 -} 4326 -static if (_WIN32_WINNT >= 0x500) { 4327 -BOOL AnimateWindow(HWND, DWORD, DWORD); 4328 -BOOL EndTask(HWND, BOOL, BOOL); 4329 -DWORD GetGuiResources(HANDLE, DWORD); 4330 -HWND GetShellWindow(); 4331 -BOOL GetProcessDefaultLayout(DWORD*); 4332 -BOOL IsHungAppWindow(HWND); 4333 -BOOL LockWorkStation(); 4334 -HDEVNOTIFY RegisterDeviceNotificationA(HANDLE, LPVOID, DWORD); 4335 -HDEVNOTIFY RegisterDeviceNotificationW(HANDLE, LPVOID, DWORD); 4336 -BOOL SetProcessDefaultLayout(DWORD); 4337 -void SwitchToThisWindow(HWND, BOOL); 4338 -BOOL SetLayeredWindowAttributes(HWND, COLORREF, BYTE, DWORD); 4339 -BOOL UpdateLayeredWindow(HWND, HDC, POINT*, SIZE*, HDC, POINT*, COLORREF, BLENDFUNCTION*, DWORD); 4340 -BOOL UserHandleGrantAccess(HANDLE, HANDLE, BOOL); 4341 -} 4342 -static if (_WIN32_WINNT >= 0x501) { 4343 -UINT GetRawInputBuffer(PRAWINPUT, PUINT, UINT); 4344 -UINT GetRawInputData(HRAWINPUT, UINT, LPVOID, PUINT, UINT); 4345 -UINT GetRawInputDeviceInfoA(HANDLE, UINT, LPVOID, PUINT); 4346 -UINT GetRawInputDeviceInfoW(HANDLE, UINT, LPVOID, PUINT); 4347 -UINT GetRawInputDeviceList(PRAWINPUTDEVICELIST, PUINT, UINT); 4348 -UINT GetRegisteredRawInputDevices(PRAWINPUTDEVICE, PUINT, UINT); 4349 -LRESULT DefRawInputProc(PRAWINPUT*, INT, UINT); 4350 -BOOL RegisterRawInputDevices(PCRAWINPUTDEVICE, UINT, UINT); 4351 - 4352 -BOOL IsGUIThread(BOOL); 4353 -BOOL IsWinEventHookInstalled(DWORD); 4354 -BOOL PrintWindow(HWND, HDC, UINT); 4355 -BOOL GetLayeredWindowAttributes(HWND, COLORREF*, BYTE*, DWORD*); 4356 -} 4357 -static if (WINVER >= 0x410) { 4397 +static if (_WIN32_WINNT >= 0x410) { 4358 4398 BOOL EnumDisplayMonitors(HDC, LPCRECT, MONITORENUMPROC, LPARAM); 4359 4399 BOOL GetMonitorInfoA(HMONITOR, LPMONITORINFO); 4360 4400 BOOL GetMonitorInfoA(HMONITOR, LPMONITORINFOEXA); 4361 4401 BOOL GetMonitorInfoW(HMONITOR, LPMONITORINFO); 4362 4402 BOOL GetMonitorInfoW(HMONITOR, LPMONITORINFOEXW); 4363 4403 HMONITOR MonitorFromPoint(POINT, DWORD); 4364 4404 HMONITOR MonitorFromRect(LPCRECT, DWORD); 4365 4405 HMONITOR MonitorFromWindow(HWND, DWORD); 4366 4406 } 4367 -static if (WINVER >= 0x500) { 4368 -BOOL GetGUIThreadInfo(DWORD, LPGUITHREADINFO); 4369 -void NotifyWinEvent(DWORD, HWND, LONG, LONG); 4370 -HWINEVENTHOOK SetWinEventHook(UINT, UINT, HMODULE, WINEVENTPROC, DWORD, DWORD, UINT); 4371 -BOOL UnhookWinEvent(HWINEVENTHOOK); 4372 -BOOL UnregisterDeviceNotification(HANDLE); 4373 -} 4374 -static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) { 4375 -BOOL EnumDisplaySettingsExA(LPCSTR, DWORD, LPDEVMODEA, DWORD); 4376 -BOOL EnumDisplaySettingsExW(LPCWSTR, DWORD, LPDEVMODEW, DWORD); 4377 -BOOL FlashWindowEx(PFLASHWINFO); 4378 -DWORD GetClipboardSequenceNumber(); 4379 -DWORD InSendMessageEx(LPVOID); 4407 + 4408 +static if (_WIN32_WINNT >= 0x500) { 4409 + BOOL AllowSetForegroundWindow(DWORD); 4410 + BOOL AnimateWindow(HWND, DWORD, DWORD); 4411 + BOOL EndTask(HWND, BOOL, BOOL); 4412 + BOOL EnumDisplaySettingsExA(LPCSTR, DWORD, LPDEVMODEA, DWORD); 4413 + BOOL EnumDisplaySettingsExW(LPCWSTR, DWORD, LPDEVMODEW, DWORD); 4414 + DWORD GetClipboardSequenceNumber(); 4415 + DWORD GetGuiResources(HANDLE, DWORD); 4416 + BOOL GetGUIThreadInfo(DWORD, LPGUITHREADINFO); 4417 + int GetMouseMovePointsEx(UINT, LPMOUSEMOVEPOINT, LPMOUSEMOVEPOINT, int, DWORD); 4418 + BOOL GetProcessDefaultLayout(DWORD*); 4419 + HWND GetShellWindow(); 4420 + BOOL IsHungAppWindow(HWND); 4421 + DWORD InSendMessageEx(LPVOID); 4422 + BOOL LockSetForegroundWindow(UINT); 4423 + BOOL LockWorkStation(); 4424 + void NotifyWinEvent(DWORD, HWND, LONG, LONG); 4425 + HDEVNOTIFY RegisterDeviceNotificationA(HANDLE, LPVOID, DWORD); 4426 + HDEVNOTIFY RegisterDeviceNotificationW(HANDLE, LPVOID, DWORD); 4427 + BOOL SetProcessDefaultLayout(DWORD); 4428 + HWINEVENTHOOK SetWinEventHook(UINT, UINT, HMODULE, WINEVENTPROC, DWORD, DWORD, UINT); 4429 + void SwitchToThisWindow(HWND, BOOL); 4430 + BOOL SetLayeredWindowAttributes(HWND, COLORREF, BYTE, DWORD); 4431 + BOOL UpdateLayeredWindow(HWND, HDC, POINT*, SIZE*, HDC, POINT*, COLORREF, BLENDFUNCTION*, DWORD); 4432 + BOOL UserHandleGrantAccess(HANDLE, HANDLE, BOOL); 4433 + BOOL UnhookWinEvent(HWINEVENTHOOK); 4434 + BOOL UnregisterDeviceNotification(HANDLE); 4380 4435 } 4381 -static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x490)) { 4382 -BOOL AllowSetForegroundWindow(DWORD); 4383 -BOOL LockSetForegroundWindow(UINT); 4384 -int GetMouseMovePointsEx(UINT, LPMOUSEMOVEPOINT, LPMOUSEMOVEPOINT, int, DWORD); 4436 + 4437 +static if (_WIN32_WINNT >= 0x501) { 4438 + int BroadcastSystemMessageExA(DWORD, LPDWORD, UINT, WPARAM, LPARAM, PBSMINFO); 4439 + int BroadcastSystemMessageExW(DWORD, LPDWORD, UINT, WPARAM, LPARAM, PBSMINFO); 4440 + LRESULT DefRawInputProc(PRAWINPUT*, INT, UINT); 4441 + BOOL FlashWindowEx(PFLASHWINFO); 4442 + BOOL GetLayeredWindowAttributes(HWND, COLORREF*, BYTE*, DWORD*); 4443 + UINT GetRawInputBuffer(PRAWINPUT, PUINT, UINT); 4444 + UINT GetRawInputData(HRAWINPUT, UINT, LPVOID, PUINT, UINT); 4445 + UINT GetRawInputDeviceInfoA(HANDLE, UINT, LPVOID, PUINT); 4446 + UINT GetRawInputDeviceInfoW(HANDLE, UINT, LPVOID, PUINT); 4447 + UINT GetRawInputDeviceList(PRAWINPUTDEVICELIST, PUINT, UINT); 4448 + UINT GetRegisteredRawInputDevices(PRAWINPUTDEVICE, PUINT, UINT); 4449 + BOOL IsGUIThread(BOOL); 4450 + BOOL IsWinEventHookInstalled(DWORD); 4451 + BOOL PrintWindow(HWND, HDC, UINT); 4452 + BOOL RegisterRawInputDevices(PCRAWINPUTDEVICE, UINT, UINT); 4385 4453 } 4386 4454 4387 4455 version (Win64) { 4388 -LONG_PTR GetWindowLongPtrA(HWND, int); 4389 -LONG_PTR GetWindowLongPtrW(HWND, int); 4390 -LONG_PTR SetWindowLongPtrA(HWND, int, LONG_PTR); 4391 -LONG_PTR SetWindowLongPtrW(HWND, int, LONG_PTR); 4456 + LONG_PTR GetWindowLongPtrA(HWND, int); 4457 + LONG_PTR GetWindowLongPtrW(HWND, int); 4458 + LONG_PTR SetWindowLongPtrA(HWND, int, LONG_PTR); 4459 + LONG_PTR SetWindowLongPtrW(HWND, int, LONG_PTR); 4392 4460 } else { 4393 -alias GetWindowLongA GetWindowLongPtrA; 4394 -alias GetWindowLongW GetWindowLongPtrW; 4395 -alias SetWindowLongA SetWindowLongPtrA; 4396 -alias SetWindowLongW SetWindowLongPtrW; 4461 + alias GetWindowLongA GetWindowLongPtrA; 4462 + alias GetWindowLongW GetWindowLongPtrW; 4463 + alias SetWindowLongA SetWindowLongPtrA; 4464 + alias SetWindowLongW SetWindowLongPtrW; 4397 4465 } 4398 4466 4399 4467 4400 4468 // ----- 4401 4469 // Aliases for Unicode or Ansi 4402 4470 version(Unicode) { 4403 4471 4404 -alias EDITWORDBREAKPROCW EDITWORDBREAKPROC; 4405 -alias PROPENUMPROCW PROPENUMPROC; 4406 -alias PROPENUMPROCEXW PROPENUMPROCEX; 4407 -alias DESKTOPENUMPROCW DESKTOPENUMPROC; 4408 -alias WINSTAENUMPROCW WINSTAENUMPROC; 4409 -alias MAKEINTRESOURCEW MAKEINTRESOURCE; 4472 + alias EDITWORDBREAKPROCW EDITWORDBREAKPROC; 4473 + alias PROPENUMPROCW PROPENUMPROC; 4474 + alias PROPENUMPROCEXW PROPENUMPROCEX; 4475 + alias DESKTOPENUMPROCW DESKTOPENUMPROC; 4476 + alias WINSTAENUMPROCW WINSTAENUMPROC; 4477 + alias MAKEINTRESOURCEW MAKEINTRESOURCE; 4410 4478 4411 -alias WNDCLASSW WNDCLASS; 4412 -alias WNDCLASSEXW WNDCLASSEX; 4413 -alias MENUITEMINFOW MENUITEMINFO; 4414 -alias LPCMENUITEMINFOW LPCMENUITEMINFO; 4415 -alias MSGBOXPARAMSW MSGBOXPARAMS; 4416 -alias HIGHCONTRASTW HIGHCONTRAST; 4417 -alias SERIALKEYSW SERIALKEYS; 4418 -alias SOUNDSENTRYW SOUNDSENTRY; 4419 -alias CREATESTRUCTW CREATESTRUCT; 4420 -alias CBT_CREATEWNDW CBT_CREATEWND; 4421 -alias MDICREATESTRUCTW MDICREATESTRUCT; 4422 -alias MULTIKEYHELPW MULTIKEYHELP; 4423 -alias MONITORINFOEXW MONITORINFOEX; 4424 -alias ICONMETRICSW ICONMETRICS; 4425 -alias NONCLIENTMETRICSW NONCLIENTMETRICS; 4479 + alias WNDCLASSW WNDCLASS; 4480 + alias WNDCLASSEXW WNDCLASSEX; 4481 + alias MENUITEMINFOW MENUITEMINFO; 4482 + alias LPCMENUITEMINFOW LPCMENUITEMINFO; 4483 + alias MSGBOXPARAMSW MSGBOXPARAMS; 4484 + alias HIGHCONTRASTW HIGHCONTRAST; 4485 + alias SERIALKEYSW SERIALKEYS; 4486 + alias SOUNDSENTRYW SOUNDSENTRY; 4487 + alias CREATESTRUCTW CREATESTRUCT; 4488 + alias CBT_CREATEWNDW CBT_CREATEWND; 4489 + alias MDICREATESTRUCTW MDICREATESTRUCT; 4490 + alias MULTIKEYHELPW MULTIKEYHELP; 4491 + alias MONITORINFOEXW MONITORINFOEX; 4492 + alias ICONMETRICSW ICONMETRICS; 4493 + alias NONCLIENTMETRICSW NONCLIENTMETRICS; 4426 4494 4427 -alias AppendMenuW AppendMenu; 4428 -alias BroadcastSystemMessageW BroadcastSystemMessage; 4429 -static if (_WIN32_WINNT >= 0x501) { 4430 -alias BroadcastSystemMessageExW BroadcastSystemMessageEx; 4431 -} 4432 -alias CallMsgFilterW CallMsgFilter; 4433 -alias CallWindowProcW CallWindowProc; 4434 -alias ChangeMenuW ChangeMenu; 4435 -alias CharLowerW CharLower; 4436 -alias CharLowerBuffW CharLowerBuff; 4437 -alias CharNextW CharNext; 4438 -alias CharNextExW CharNextEx; 4439 -alias CharPrevW CharPrev; 4440 -alias CharPrevExW CharPrevEx; 4441 -alias CharToOemW CharToOem; 4442 -alias CharToOemBuffW CharToOemBuff; 4443 -alias CharUpperW CharUpper; 4444 -alias CharUpperBuffW CharUpperBuff; 4445 -alias CopyAcceleratorTableW CopyAcceleratorTable; 4446 -alias CreateAcceleratorTableW CreateAcceleratorTable; 4447 -alias CreateDialogW CreateDialog; 4448 -alias CreateDialogIndirectW CreateDialogIndirect; 4449 -alias CreateDialogIndirectParamW CreateDialogIndirectParam; 4450 -alias CreateDialogParamW CreateDialogParam; 4451 -alias CreateMDIWindowW CreateMDIWindow; 4452 -alias CreateWindowW CreateWindow; 4453 -alias CreateWindowExW CreateWindowEx; 4454 -alias CreateWindowStationW CreateWindowStation; 4455 -alias DefDlgProcW DefDlgProc; 4456 -alias DefFrameProcW DefFrameProc; 4457 -alias DefMDIChildProcW DefMDIChildProc; 4458 -alias DefWindowProcW DefWindowProc; 4459 -alias DialogBoxW DialogBox; 4460 -alias DialogBoxIndirectW DialogBoxIndirect; 4461 -alias DialogBoxIndirectParamW DialogBoxIndirectParam; 4462 -alias DialogBoxParamW DialogBoxParam; 4463 -alias DispatchMessageW DispatchMessage; 4464 -alias DlgDirListW DlgDirList; 4465 -alias DlgDirListComboBoxW DlgDirListComboBox; 4466 -alias DlgDirSelectComboBoxExW DlgDirSelectComboBoxEx; 4467 -alias DlgDirSelectExW DlgDirSelectEx; 4468 -alias DrawStateW DrawState; 4469 -alias DrawTextW DrawText; 4470 -alias DrawTextExW DrawTextEx; 4471 -alias EnumDesktopsW EnumDesktops; 4472 -alias EnumPropsW EnumProps; 4473 -alias EnumPropsExW EnumPropsEx; 4474 -alias EnumWindowStationsW EnumWindowStations; 4475 -alias FindWindowW FindWindow; 4476 -alias FindWindowExW FindWindowEx; 4477 -alias GetClassInfoW GetClassInfo; 4478 -alias GetClassInfoExW GetClassInfoEx; 4479 -alias GetClassLongW GetClassLong; 4480 -alias GetClassNameW GetClassName; 4481 -alias GetClipboardFormatNameW GetClipboardFormatName; 4482 -alias GetDlgItemTextW GetDlgItemText; 4483 -alias GetKeyboardLayoutNameW GetKeyboardLayoutName; 4484 -alias GetKeyNameTextW GetKeyNameText; 4485 -alias GetMenuItemInfoW GetMenuItemInfo; 4486 -alias GetMenuStringW GetMenuString; 4487 -alias GetMessageW GetMessage; 4488 -static if (WINVER >=0x410) { 4489 -alias GetMonitorInfoW GetMonitorInfo; 4490 -} 4491 -alias GetPropW GetProp; 4492 -static if (_WIN32_WINNT >= 0x501) { 4493 -alias GetRawInputDeviceInfoW GetRawInputDeviceInfo; 4494 -} 4495 -alias GetTabbedTextExtentW GetTabbedTextExtent; 4496 -alias GetUserObjectInformationW GetUserObjectInformation; 4497 -alias GetWindowLongW GetWindowLong; 4498 -alias GetWindowLongPtrW GetWindowLongPtr; 4499 -alias GetWindowTextW GetWindowText; 4500 -alias GetWindowTextLengthW GetWindowTextLength; 4501 -alias GetAltTabInfoW GetAltTabInfo; 4502 -alias GetWindowModuleFileNameW GetWindowModuleFileName; 4503 -alias GrayStringW GrayString; 4504 -alias InsertMenuW InsertMenu; 4505 -alias InsertMenuItemW InsertMenuItem; 4506 -alias IsCharAlphaW IsCharAlpha; 4507 -alias IsCharAlphaNumericW IsCharAlphaNumeric; 4508 -alias IsCharLowerW IsCharLower; 4509 -alias IsCharUpperW IsCharUpper; 4510 -alias IsDialogMessageW IsDialogMessage; 4511 -alias LoadAcceleratorsW LoadAccelerators; 4512 -alias LoadBitmapW LoadBitmap; 4513 -alias LoadCursorW LoadCursor; 4514 -alias LoadCursorFromFileW LoadCursorFromFile; 4515 -alias LoadIconW LoadIcon; 4516 -alias LoadImageW LoadImage; 4517 -alias LoadKeyboardLayoutW LoadKeyboardLayout; 4518 -alias LoadMenuW LoadMenu; 4519 -alias LoadMenuIndirectW LoadMenuIndirect; 4520 -alias LoadStringW LoadString; 4521 -alias MapVirtualKeyW MapVirtualKey; 4522 -alias MapVirtualKeyExW MapVirtualKeyEx; 4523 -alias MessageBoxW MessageBox; 4524 -alias MessageBoxExW MessageBoxEx; 4525 -alias MessageBoxIndirectW MessageBoxIndirect; 4526 -alias ModifyMenuW ModifyMenu; 4527 -alias OemToCharW OemToChar; 4528 -alias OemToCharBuffW OemToCharBuff; 4529 -alias OpenDesktopW OpenDesktop; 4530 -alias OpenWindowStationW OpenWindowStation; 4531 -alias PeekMessageW PeekMessage; 4532 -alias PostMessageW PostMessage; 4533 -alias PostThreadMessageW PostThreadMessage; 4534 -alias RealGetWindowClassW RealGetWindowClass; 4535 -alias RegisterClassW RegisterClass; 4536 -alias RegisterClassExW RegisterClassEx; 4537 -alias RegisterClipboardFormatW RegisterClipboardFormat; 4538 -static if (WINVER >= 0x500) { 4539 -alias RegisterDeviceNotificationW RegisterDeviceNotification; 4540 -} 4541 -alias RegisterWindowMessageW RegisterWindowMessage; 4542 -alias RemovePropW RemoveProp; 4543 -alias SendDlgItemMessageW SendDlgItemMessage; 4544 -alias SendMessageW SendMessage; 4545 -alias SendMessageCallbackW SendMessageCallback; 4546 -alias SendMessageTimeoutW SendMessageTimeout; 4547 -alias SendNotifyMessageW SendNotifyMessage; 4548 -alias SetClassLongW SetClassLong; 4549 -alias SetDlgItemTextW SetDlgItemText; 4550 -alias SetMenuItemInfoW SetMenuItemInfo; 4551 -alias SetPropW SetProp; 4552 -alias SetUserObjectInformationW SetUserObjectInformation; 4553 -alias SetWindowLongW SetWindowLong; 4554 -alias SetWindowLongPtrW SetWindowLongPtr; 4555 -alias SetWindowsHookW SetWindowsHook; 4556 -alias SetWindowsHookExW SetWindowsHookEx; 4557 -alias SetWindowTextW SetWindowText; 4558 -alias SystemParametersInfoW SystemParametersInfo; 4559 -alias TabbedTextOutW TabbedTextOut; 4560 -alias TranslateAcceleratorW TranslateAccelerator; 4561 -alias UnregisterClassW UnregisterClass; 4562 -alias VkKeyScanW VkKeyScan; 4563 -alias VkKeyScanExW VkKeyScanEx; 4564 -alias WinHelpW WinHelp; 4565 -alias wsprintfW wsprintf; 4566 -alias wvsprintfW wvsprintf; 4495 + alias AppendMenuW AppendMenu; 4496 + alias BroadcastSystemMessageW BroadcastSystemMessage; 4497 + static if (_WIN32_WINNT >= 0x501) { 4498 + alias BroadcastSystemMessageExW BroadcastSystemMessageEx; 4499 + } 4500 + alias CallMsgFilterW CallMsgFilter; 4501 + alias CallWindowProcW CallWindowProc; 4502 + alias ChangeMenuW ChangeMenu; 4503 + alias CharLowerW CharLower; 4504 + alias CharLowerBuffW CharLowerBuff; 4505 + alias CharNextW CharNext; 4506 + alias CharNextExW CharNextEx; 4507 + alias CharPrevW CharPrev; 4508 + alias CharPrevExW CharPrevEx; 4509 + alias CharToOemW CharToOem; 4510 + alias CharToOemBuffW CharToOemBuff; 4511 + alias CharUpperW CharUpper; 4512 + alias CharUpperBuffW CharUpperBuff; 4513 + alias CopyAcceleratorTableW CopyAcceleratorTable; 4514 + alias CreateAcceleratorTableW CreateAcceleratorTable; 4515 + alias CreateDialogW CreateDialog; 4516 + alias CreateDialogIndirectW CreateDialogIndirect; 4517 + alias CreateDialogIndirectParamW CreateDialogIndirectParam; 4518 + alias CreateDialogParamW CreateDialogParam; 4519 + alias CreateMDIWindowW CreateMDIWindow; 4520 + alias CreateWindowW CreateWindow; 4521 + alias CreateWindowExW CreateWindowEx; 4522 + alias CreateWindowStationW CreateWindowStation; 4523 + alias DefDlgProcW DefDlgProc; 4524 + alias DefFrameProcW DefFrameProc; 4525 + alias DefMDIChildProcW DefMDIChildProc; 4526 + alias DefWindowProcW DefWindowProc; 4527 + alias DialogBoxW DialogBox; 4528 + alias DialogBoxIndirectW DialogBoxIndirect; 4529 + alias DialogBoxIndirectParamW DialogBoxIndirectParam; 4530 + alias DialogBoxParamW DialogBoxParam; 4531 + alias DispatchMessageW DispatchMessage; 4532 + alias DlgDirListW DlgDirList; 4533 + alias DlgDirListComboBoxW DlgDirListComboBox; 4534 + alias DlgDirSelectComboBoxExW DlgDirSelectComboBoxEx; 4535 + alias DlgDirSelectExW DlgDirSelectEx; 4536 + alias DrawStateW DrawState; 4537 + alias DrawTextW DrawText; 4538 + alias DrawTextExW DrawTextEx; 4539 + alias EnumDesktopsW EnumDesktops; 4540 + alias EnumPropsW EnumProps; 4541 + alias EnumPropsExW EnumPropsEx; 4542 + alias EnumWindowStationsW EnumWindowStations; 4543 + alias FindWindowW FindWindow; 4544 + alias FindWindowExW FindWindowEx; 4545 + alias GetClassInfoW GetClassInfo; 4546 + alias GetClassInfoExW GetClassInfoEx; 4547 + alias GetClassLongW GetClassLong; 4548 + alias GetClassNameW GetClassName; 4549 + alias GetClipboardFormatNameW GetClipboardFormatName; 4550 + alias GetDlgItemTextW GetDlgItemText; 4551 + alias GetKeyboardLayoutNameW GetKeyboardLayoutName; 4552 + alias GetKeyNameTextW GetKeyNameText; 4553 + alias GetMenuItemInfoW GetMenuItemInfo; 4554 + alias GetMenuStringW GetMenuString; 4555 + alias GetMessageW GetMessage; 4556 + static if (_WIN32_WINNT >= 0x410) { 4557 + alias GetMonitorInfoW GetMonitorInfo; 4558 + } 4559 + alias GetPropW GetProp; 4560 + static if (_WIN32_WINNT >= 0x501) { 4561 + alias GetRawInputDeviceInfoW GetRawInputDeviceInfo; 4562 + } 4563 + alias GetTabbedTextExtentW GetTabbedTextExtent; 4564 + alias GetUserObjectInformationW GetUserObjectInformation; 4565 + alias GetWindowLongW GetWindowLong; 4566 + alias GetWindowLongPtrW GetWindowLongPtr; 4567 + alias GetWindowTextW GetWindowText; 4568 + alias GetWindowTextLengthW GetWindowTextLength; 4569 + alias GetAltTabInfoW GetAltTabInfo; 4570 + alias GetWindowModuleFileNameW GetWindowModuleFileName; 4571 + alias GrayStringW GrayString; 4572 + alias InsertMenuW InsertMenu; 4573 + alias InsertMenuItemW InsertMenuItem; 4574 + alias IsCharAlphaW IsCharAlpha; 4575 + alias IsCharAlphaNumericW IsCharAlphaNumeric; 4576 + alias IsCharLowerW IsCharLower; 4577 + alias IsCharUpperW IsCharUpper; 4578 + alias IsDialogMessageW IsDialogMessage; 4579 + alias LoadAcceleratorsW LoadAccelerators; 4580 + alias LoadBitmapW LoadBitmap; 4581 + alias LoadCursorW LoadCursor; 4582 + alias LoadCursorFromFileW LoadCursorFromFile; 4583 + alias LoadIconW LoadIcon; 4584 + alias LoadImageW LoadImage; 4585 + alias LoadKeyboardLayoutW LoadKeyboardLayout; 4586 + alias LoadMenuW LoadMenu; 4587 + alias LoadMenuIndirectW LoadMenuIndirect; 4588 + alias LoadStringW LoadString; 4589 + alias MapVirtualKeyW MapVirtualKey; 4590 + alias MapVirtualKeyExW MapVirtualKeyEx; 4591 + alias MessageBoxW MessageBox; 4592 + alias MessageBoxExW MessageBoxEx; 4593 + alias MessageBoxIndirectW MessageBoxIndirect; 4594 + alias ModifyMenuW ModifyMenu; 4595 + alias OemToCharW OemToChar; 4596 + alias OemToCharBuffW OemToCharBuff; 4597 + alias OpenDesktopW OpenDesktop; 4598 + alias OpenWindowStationW OpenWindowStation; 4599 + alias PeekMessageW PeekMessage; 4600 + alias PostMessageW PostMessage; 4601 + alias PostThreadMessageW PostThreadMessage; 4602 + alias RealGetWindowClassW RealGetWindowClass; 4603 + alias RegisterClassW RegisterClass; 4604 + alias RegisterClassExW RegisterClassEx; 4605 + alias RegisterClipboardFormatW RegisterClipboardFormat; 4606 + static if (_WIN32_WINNT >= 0x500) { 4607 + alias RegisterDeviceNotificationW RegisterDeviceNotification; 4608 + } 4609 + alias RegisterWindowMessageW RegisterWindowMessage; 4610 + alias RemovePropW RemoveProp; 4611 + alias SendDlgItemMessageW SendDlgItemMessage; 4612 + alias SendMessageW SendMessage; 4613 + alias SendMessageCallbackW SendMessageCallback; 4614 + alias SendMessageTimeoutW SendMessageTimeout; 4615 + alias SendNotifyMessageW SendNotifyMessage; 4616 + alias SetClassLongW SetClassLong; 4617 + alias SetDlgItemTextW SetDlgItemText; 4618 + alias SetMenuItemInfoW SetMenuItemInfo; 4619 + alias SetPropW SetProp; 4620 + alias SetUserObjectInformationW SetUserObjectInformation; 4621 + alias SetWindowLongW SetWindowLong; 4622 + alias SetWindowLongPtrW SetWindowLongPtr; 4623 + alias SetWindowsHookW SetWindowsHook; 4624 + alias SetWindowsHookExW SetWindowsHookEx; 4625 + alias SetWindowTextW SetWindowText; 4626 + alias SystemParametersInfoW SystemParametersInfo; 4627 + alias TabbedTextOutW TabbedTextOut; 4628 + alias TranslateAcceleratorW TranslateAccelerator; 4629 + alias UnregisterClassW UnregisterClass; 4630 + alias VkKeyScanW VkKeyScan; 4631 + alias VkKeyScanExW VkKeyScanEx; 4632 + alias WinHelpW WinHelp; 4633 + alias wsprintfW wsprintf; 4634 + alias wvsprintfW wvsprintf; 4567 4635 4568 -alias ChangeDisplaySettingsW ChangeDisplaySettings; 4569 -alias ChangeDisplaySettingsExW ChangeDisplaySettingsEx; 4570 -alias CreateDesktopW CreateDesktop; 4571 -alias EnumDisplaySettingsW EnumDisplaySettings; 4572 -static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) { 4573 -alias EnumDisplaySettingsExW EnumDisplaySettingsEx; 4574 -} 4575 -alias EnumDisplayDevicesW EnumDisplayDevices; 4636 + alias ChangeDisplaySettingsW ChangeDisplaySettings; 4637 + alias ChangeDisplaySettingsExW ChangeDisplaySettingsEx; 4638 + alias CreateDesktopW CreateDesktop; 4639 + alias EnumDisplaySettingsW EnumDisplaySettings; 4640 + static if (_WIN32_WINNT >= 0x500) { 4641 + alias EnumDisplaySettingsExW EnumDisplaySettingsEx; 4642 + } 4643 + alias EnumDisplayDevicesW EnumDisplayDevices; 4576 4644 4577 4645 } else { // ANSI 4578 4646 4579 -alias EDITWORDBREAKPROCA EDITWORDBREAKPROC; 4580 -alias PROPENUMPROCA PROPENUMPROC; 4581 -alias PROPENUMPROCEXA PROPENUMPROCEX; 4582 -alias DESKTOPENUMPROCA DESKTOPENUMPROC; 4583 -alias WINSTAENUMPROCA WINSTAENUMPROC; 4584 -alias MAKEINTRESOURCEA MAKEINTRESOURCE; 4647 + alias EDITWORDBREAKPROCA EDITWORDBREAKPROC; 4648 + alias PROPENUMPROCA PROPENUMPROC; 4649 + alias PROPENUMPROCEXA PROPENUMPROCEX; 4650 + alias DESKTOPENUMPROCA DESKTOPENUMPROC; 4651 + alias WINSTAENUMPROCA WINSTAENUMPROC; 4652 + alias MAKEINTRESOURCEA MAKEINTRESOURCE; 4585 4653 4586 -alias WNDCLASSA WNDCLASS; 4587 -alias WNDCLASSEXA WNDCLASSEX; 4588 -alias MENUITEMINFOA MENUITEMINFO; 4589 -alias LPCMENUITEMINFOA LPCMENUITEMINFO; 4590 -alias MSGBOXPARAMSA MSGBOXPARAMS; 4591 -alias HIGHCONTRASTA HIGHCONTRAST; 4592 -alias SERIALKEYSA SERIALKEYS; 4593 -alias SOUNDSENTRYA SOUNDSENTRY; 4594 -alias CREATESTRUCTA CREATESTRUCT; 4595 -alias CBT_CREATEWNDA CBT_CREATEWND; 4596 -alias MDICREATESTRUCTA MDICREATESTRUCT; 4597 -alias MULTIKEYHELPA MULTIKEYHELP; 4598 -alias MONITORINFOEXA MONITORINFOEX; 4599 -alias ICONMETRICSA ICONMETRICS; 4600 -alias NONCLIENTMETRICSA NONCLIENTMETRICS; 4654 + alias WNDCLASSA WNDCLASS; 4655 + alias WNDCLASSEXA WNDCLASSEX; 4656 + alias MENUITEMINFOA MENUITEMINFO; 4657 + alias LPCMENUITEMINFOA LPCMENUITEMINFO; 4658 + alias MSGBOXPARAMSA MSGBOXPARAMS; 4659 + alias HIGHCONTRASTA HIGHCONTRAST; 4660 + alias SERIALKEYSA SERIALKEYS; 4661 + alias SOUNDSENTRYA SOUNDSENTRY; 4662 + alias CREATESTRUCTA CREATESTRUCT; 4663 + alias CBT_CREATEWNDA CBT_CREATEWND; 4664 + alias MDICREATESTRUCTA MDICREATESTRUCT; 4665 + alias MULTIKEYHELPA MULTIKEYHELP; 4666 + alias MONITORINFOEXA MONITORINFOEX; 4667 + alias ICONMETRICSA ICONMETRICS; 4668 + alias NONCLIENTMETRICSA NONCLIENTMETRICS; 4601 4669 4602 -alias AppendMenuA AppendMenu; 4603 -alias BroadcastSystemMessageA BroadcastSystemMessage; 4604 -static if (_WIN32_WINNT >= 0x501) { 4605 -alias BroadcastSystemMessageExA BroadcastSystemMessageEx; 4606 -} 4607 -alias CallMsgFilterA CallMsgFilter; 4608 -alias CallWindowProcA CallWindowProc; 4609 -alias ChangeMenuA ChangeMenu; 4610 -alias CharLowerA CharLower; 4611 -alias CharLowerBuffA CharLowerBuff; 4612 -alias CharNextA CharNext; 4613 -alias CharNextExA CharNextEx; 4614 -alias CharPrevA CharPrev; 4615 -alias CharPrevExA CharPrevEx; 4616 -alias CharToOemA CharToOem; 4617 -alias CharToOemBuffA CharToOemBuff; 4618 -alias CharUpperA CharUpper; 4619 -alias CharUpperBuffA CharUpperBuff; 4620 -alias CopyAcceleratorTableA CopyAcceleratorTable; 4621 -alias CreateAcceleratorTableA CreateAcceleratorTable; 4622 -alias CreateDialogA CreateDialog; 4623 -alias CreateDialogIndirectA CreateDialogIndirect; 4624 -alias CreateDialogIndirectParamA CreateDialogIndirectParam; 4625 -alias CreateDialogParamA CreateDialogParam; 4626 -alias CreateMDIWindowA CreateMDIWindow; 4627 -alias CreateWindowA CreateWindow; 4628 -alias CreateWindowExA CreateWindowEx; 4629 -alias CreateWindowStationA CreateWindowStation; 4630 -alias DefDlgProcA DefDlgProc; 4631 -alias DefFrameProcA DefFrameProc; 4632 -alias DefMDIChildProcA DefMDIChildProc; 4633 -alias DefWindowProcA DefWindowProc; 4634 -alias DialogBoxA DialogBox; 4635 -alias DialogBoxIndirectA DialogBoxIndirect; 4636 -alias DialogBoxIndirectParamA DialogBoxIndirectParam; 4637 -alias DialogBoxParamA DialogBoxParam; 4638 -alias DispatchMessageA DispatchMessage; 4639 -alias DlgDirListA DlgDirList; 4640 -alias DlgDirListComboBoxA DlgDirListComboBox; 4641 -alias DlgDirSelectComboBoxExA DlgDirSelectComboBoxEx; 4642 -alias DlgDirSelectExA DlgDirSelectEx; 4643 -alias DrawStateA DrawState; 4644 -alias DrawTextA DrawText; 4645 -alias DrawTextExA DrawTextEx; 4646 -alias EnumDesktopsA EnumDesktops; 4647 -alias EnumPropsA EnumProps; 4648 -alias EnumPropsExA EnumPropsEx; 4649 -alias EnumWindowStationsA EnumWindowStations; 4650 -alias FindWindowA FindWindow; 4651 -alias FindWindowExA FindWindowEx; 4652 -alias GetClassInfoA GetClassInfo; 4653 -alias GetClassInfoExA GetClassInfoEx; 4654 -alias GetClassLongA GetClassLong; 4655 -alias GetClassNameA GetClassName; 4656 -alias GetClipboardFormatNameA GetClipboardFormatName; 4657 -alias GetDlgItemTextA GetDlgItemText; 4658 -alias GetKeyboardLayoutNameA GetKeyboardLayoutName; 4659 -alias GetKeyNameTextA GetKeyNameText; 4660 -alias GetMenuItemInfoA GetMenuItemInfo; 4661 -alias GetMenuStringA GetMenuString; 4662 -alias GetMessageA GetMessage; 4663 -static if (WINVER >=0x410) { 4664 -alias GetMonitorInfoA GetMonitorInfo; 4665 -} 4666 -alias GetPropA GetProp; 4667 -static if (_WIN32_WINNT >= 0x501) { 4668 -alias GetRawInputDeviceInfoA GetRawInputDeviceInfo; 4669 -} 4670 -alias GetTabbedTextExtentA GetTabbedTextExtent; 4671 -alias GetUserObjectInformationA GetUserObjectInformation; 4672 -alias GetWindowLongA GetWindowLong; 4673 -alias GetWindowLongPtrA GetWindowLongPtr; 4674 -alias GetWindowTextA GetWindowText; 4675 -alias GetWindowTextLengthA GetWindowTextLength; 4676 -alias GetAltTabInfoA GetAltTabInfo; 4677 -alias GetWindowModuleFileNameA GetWindowModuleFileName; 4678 -alias GrayStringA GrayString; 4679 -alias InsertMenuA InsertMenu; 4680 -alias InsertMenuItemA InsertMenuItem; 4681 -alias IsCharAlphaA IsCharAlpha; 4682 -alias IsCharAlphaNumericA IsCharAlphaNumeric; 4683 -alias IsCharLowerA IsCharLower; 4684 -alias IsCharUpperA IsCharUpper; 4685 -alias IsDialogMessageA IsDialogMessage; 4686 -alias LoadAcceleratorsA LoadAccelerators; 4687 -alias LoadBitmapA LoadBitmap; 4688 -alias LoadCursorA LoadCursor; 4689 -alias LoadIconA LoadIcon; 4690 -alias LoadCursorFromFileA LoadCursorFromFile; 4691 -alias LoadImageA LoadImage; 4692 -alias LoadKeyboardLayoutA LoadKeyboardLayout; 4693 -alias LoadMenuA LoadMenu; 4694 -alias LoadMenuIndirectA LoadMenuIndirect; 4695 -alias LoadStringA LoadString; 4696 -alias MapVirtualKeyA MapVirtualKey; 4697 -alias MapVirtualKeyExA MapVirtualKeyEx; 4698 -alias MessageBoxA MessageBox; 4699 -alias MessageBoxExA MessageBoxEx; 4700 -alias MessageBoxIndirectA MessageBoxIndirect; 4701 -alias ModifyMenuA ModifyMenu; 4702 -alias OemToCharA OemToChar; 4703 -alias OemToCharBuffA OemToCharBuff; 4704 -alias OpenDesktopA OpenDesktop; 4705 -alias OpenWindowStationA OpenWindowStation; 4706 -alias PeekMessageA PeekMessage; 4707 -alias PostMessageA PostMessage; 4708 -alias PostThreadMessageA PostThreadMessage; 4709 -alias RealGetWindowClassA RealGetWindowClass; 4710 -alias RegisterClassA RegisterClass; 4711 -alias RegisterClassExA RegisterClassEx; 4712 -alias RegisterClipboardFormatA RegisterClipboardFormat; 4713 -static if (WINVER >= 0x500) { 4714 -alias RegisterDeviceNotificationA RegisterDeviceNotification; 4715 -} 4716 -alias RegisterWindowMessageA RegisterWindowMessage; 4717 -alias RemovePropA RemoveProp; 4718 -alias SendDlgItemMessageA SendDlgItemMessage; 4719 -alias SendMessageA SendMessage; 4720 -alias SendMessageCallbackA SendMessageCallback; 4721 -alias SendMessageTimeoutA SendMessageTimeout; 4722 -alias SendNotifyMessageA SendNotifyMessage; 4723 -alias SetClassLongA SetClassLong; 4724 -alias SetDlgItemTextA SetDlgItemText; 4725 -alias SetMenuItemInfoA SetMenuItemInfo; 4726 -alias SetPropA SetProp; 4727 -alias SetUserObjectInformationA SetUserObjectInformation; 4728 -alias SetWindowLongA SetWindowLong; 4729 -alias SetWindowLongPtrA SetWindowLongPtr; 4730 -alias SetWindowsHookA SetWindowsHook; 4731 -alias SetWindowsHookExA SetWindowsHookEx; 4732 -alias SetWindowTextA SetWindowText; 4733 -alias SystemParametersInfoA SystemParametersInfo; 4734 -alias TabbedTextOutA TabbedTextOut; 4735 -alias TranslateAcceleratorA TranslateAccelerator; 4736 -alias UnregisterClassA UnregisterClass; 4737 -alias VkKeyScanA VkKeyScan; 4738 -alias VkKeyScanExA VkKeyScanEx; 4739 -alias WinHelpA WinHelp; 4740 -alias wsprintfA wsprintf; 4741 -alias wvsprintfA wvsprintf; 4670 + alias AppendMenuA AppendMenu; 4671 + alias BroadcastSystemMessageA BroadcastSystemMessage; 4672 + static if (_WIN32_WINNT >= 0x501) { 4673 + alias BroadcastSystemMessageExA BroadcastSystemMessageEx; 4674 + } 4675 + alias CallMsgFilterA CallMsgFilter; 4676 + alias CallWindowProcA CallWindowProc; 4677 + alias ChangeMenuA ChangeMenu; 4678 + alias CharLowerA CharLower; 4679 + alias CharLowerBuffA CharLowerBuff; 4680 + alias CharNextA CharNext; 4681 + alias CharNextExA CharNextEx; 4682 + alias CharPrevA CharPrev; 4683 + alias CharPrevExA CharPrevEx; 4684 + alias CharToOemA CharToOem; 4685 + alias CharToOemBuffA CharToOemBuff; 4686 + alias CharUpperA CharUpper; 4687 + alias CharUpperBuffA CharUpperBuff; 4688 + alias CopyAcceleratorTableA CopyAcceleratorTable; 4689 + alias CreateAcceleratorTableA CreateAcceleratorTable; 4690 + alias CreateDialogA CreateDialog; 4691 + alias CreateDialogIndirectA CreateDialogIndirect; 4692 + alias CreateDialogIndirectParamA CreateDialogIndirectParam; 4693 + alias CreateDialogParamA CreateDialogParam; 4694 + alias CreateMDIWindowA CreateMDIWindow; 4695 + alias CreateWindowA CreateWindow; 4696 + alias CreateWindowExA CreateWindowEx; 4697 + alias CreateWindowStationA CreateWindowStation; 4698 + alias DefDlgProcA DefDlgProc; 4699 + alias DefFrameProcA DefFrameProc; 4700 + alias DefMDIChildProcA DefMDIChildProc; 4701 + alias DefWindowProcA DefWindowProc; 4702 + alias DialogBoxA DialogBox; 4703 + alias DialogBoxIndirectA DialogBoxIndirect; 4704 + alias DialogBoxIndirectParamA DialogBoxIndirectParam; 4705 + alias DialogBoxParamA DialogBoxParam; 4706 + alias DispatchMessageA DispatchMessage; 4707 + alias DlgDirListA DlgDirList; 4708 + alias DlgDirListComboBoxA DlgDirListComboBox; 4709 + alias DlgDirSelectComboBoxExA DlgDirSelectComboBoxEx; 4710 + alias DlgDirSelectExA DlgDirSelectEx; 4711 + alias DrawStateA DrawState; 4712 + alias DrawTextA DrawText; 4713 + alias DrawTextExA DrawTextEx; 4714 + alias EnumDesktopsA EnumDesktops; 4715 + alias EnumPropsA EnumProps; 4716 + alias EnumPropsExA EnumPropsEx; 4717 + alias EnumWindowStationsA EnumWindowStations; 4718 + alias FindWindowA FindWindow; 4719 + alias FindWindowExA FindWindowEx; 4720 + alias GetClassInfoA GetClassInfo; 4721 + alias GetClassInfoExA GetClassInfoEx; 4722 + alias GetClassLongA GetClassLong; 4723 + alias GetClassNameA GetClassName; 4724 + alias GetClipboardFormatNameA GetClipboardFormatName; 4725 + alias GetDlgItemTextA GetDlgItemText; 4726 + alias GetKeyboardLayoutNameA GetKeyboardLayoutName; 4727 + alias GetKeyNameTextA GetKeyNameText; 4728 + alias GetMenuItemInfoA GetMenuItemInfo; 4729 + alias GetMenuStringA GetMenuString; 4730 + alias GetMessageA GetMessage; 4731 + static if (_WIN32_WINNT >= 0x410) { 4732 + alias GetMonitorInfoA GetMonitorInfo; 4733 + } 4734 + alias GetPropA GetProp; 4735 + static if (_WIN32_WINNT >= 0x501) { 4736 + alias GetRawInputDeviceInfoA GetRawInputDeviceInfo; 4737 + } 4738 + alias GetTabbedTextExtentA GetTabbedTextExtent; 4739 + alias GetUserObjectInformationA GetUserObjectInformation; 4740 + alias GetWindowLongA GetWindowLong; 4741 + alias GetWindowLongPtrA GetWindowLongPtr; 4742 + alias GetWindowTextA GetWindowText; 4743 + alias GetWindowTextLengthA GetWindowTextLength; 4744 + alias GetAltTabInfoA GetAltTabInfo; 4745 + alias GetWindowModuleFileNameA GetWindowModuleFileName; 4746 + alias GrayStringA GrayString; 4747 + alias InsertMenuA InsertMenu; 4748 + alias InsertMenuItemA InsertMenuItem; 4749 + alias IsCharAlphaA IsCharAlpha; 4750 + alias IsCharAlphaNumericA IsCharAlphaNumeric; 4751 + alias IsCharLowerA IsCharLower; 4752 + alias IsCharUpperA IsCharUpper; 4753 + alias IsDialogMessageA IsDialogMessage; 4754 + alias LoadAcceleratorsA LoadAccelerators; 4755 + alias LoadBitmapA LoadBitmap; 4756 + alias LoadCursorA LoadCursor; 4757 + alias LoadIconA LoadIcon; 4758 + alias LoadCursorFromFileA LoadCursorFromFile; 4759 + alias LoadImageA LoadImage; 4760 + alias LoadKeyboardLayoutA LoadKeyboardLayout; 4761 + alias LoadMenuA LoadMenu; 4762 + alias LoadMenuIndirectA LoadMenuIndirect; 4763 + alias LoadStringA LoadString; 4764 + alias MapVirtualKeyA MapVirtualKey; 4765 + alias MapVirtualKeyExA MapVirtualKeyEx; 4766 + alias MessageBoxA MessageBox; 4767 + alias MessageBoxExA MessageBoxEx; 4768 + alias MessageBoxIndirectA MessageBoxIndirect; 4769 + alias ModifyMenuA ModifyMenu; 4770 + alias OemToCharA OemToChar; 4771 + alias OemToCharBuffA OemToCharBuff; 4772 + alias OpenDesktopA OpenDesktop; 4773 + alias OpenWindowStationA OpenWindowStation; 4774 + alias PeekMessageA PeekMessage; 4775 + alias PostMessageA PostMessage; 4776 + alias PostThreadMessageA PostThreadMessage; 4777 + alias RealGetWindowClassA RealGetWindowClass; 4778 + alias RegisterClassA RegisterClass; 4779 + alias RegisterClassExA RegisterClassEx; 4780 + alias RegisterClipboardFormatA RegisterClipboardFormat; 4781 + static if (_WIN32_WINNT >= 0x500) { 4782 + alias RegisterDeviceNotificationA RegisterDeviceNotification; 4783 + } 4784 + alias RegisterWindowMessageA RegisterWindowMessage; 4785 + alias RemovePropA RemoveProp; 4786 + alias SendDlgItemMessageA SendDlgItemMessage; 4787 + alias SendMessageA SendMessage; 4788 + alias SendMessageCallbackA SendMessageCallback; 4789 + alias SendMessageTimeoutA SendMessageTimeout; 4790 + alias SendNotifyMessageA SendNotifyMessage; 4791 + alias SetClassLongA SetClassLong; 4792 + alias SetDlgItemTextA SetDlgItemText; 4793 + alias SetMenuItemInfoA SetMenuItemInfo; 4794 + alias SetPropA SetProp; 4795 + alias SetUserObjectInformationA SetUserObjectInformation; 4796 + alias SetWindowLongA SetWindowLong; 4797 + alias SetWindowLongPtrA SetWindowLongPtr; 4798 + alias SetWindowsHookA SetWindowsHook; 4799 + alias SetWindowsHookExA SetWindowsHookEx; 4800 + alias SetWindowTextA SetWindowText; 4801 + alias SystemParametersInfoA SystemParametersInfo; 4802 + alias TabbedTextOutA TabbedTextOut; 4803 + alias TranslateAcceleratorA TranslateAccelerator; 4804 + alias UnregisterClassA UnregisterClass; 4805 + alias VkKeyScanA VkKeyScan; 4806 + alias VkKeyScanExA VkKeyScanEx; 4807 + alias WinHelpA WinHelp; 4808 + alias wsprintfA wsprintf; 4809 + alias wvsprintfA wvsprintf; 4742 4810 4743 -alias ChangeDisplaySettingsA ChangeDisplaySettings; 4744 -alias ChangeDisplaySettingsExA ChangeDisplaySettingsEx; 4745 -alias CreateDesktopA CreateDesktop; 4746 -alias EnumDisplaySettingsA EnumDisplaySettings; 4747 -static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) { 4748 - alias EnumDisplaySettingsExA EnumDisplaySettingsEx; 4749 -} 4811 + alias ChangeDisplaySettingsA ChangeDisplaySettings; 4812 + alias ChangeDisplaySettingsExA ChangeDisplaySettingsEx; 4813 + alias CreateDesktopA CreateDesktop; 4814 + alias EnumDisplaySettingsA EnumDisplaySettings; 4815 + static if (_WIN32_WINNT >= 0x500) { 4816 + alias EnumDisplaySettingsExA EnumDisplaySettingsEx; 4817 + } 4750 4818 alias EnumDisplayDevicesA EnumDisplayDevices; 4751 4819 } 4752 - 4753 4820 4754 4821 alias WNDCLASS* LPWNDCLASS, PWNDCLASS; 4755 4822 alias WNDCLASSEX* LPWNDCLASSEX, PWNDCLASSEX; 4756 4823 alias MENUITEMINFO* LPMENUITEMINFO; 4757 4824 alias MSGBOXPARAMS* PMSGBOXPARAMS, LPMSGBOXPARAMS; 4758 4825 alias HIGHCONTRAST* LPHIGHCONTRAST; 4759 4826 alias SERIALKEYS* LPSERIALKEYS;

Modified src/win32/winver.d from [4fd71adb18fd2e65] to [52b0f6d426cf88df].

5 5 * * 6 6 * Translated from MinGW Windows headers * 7 7 * by Stewart Gordon * 8 8 * * 9 9 * Placed into public domain * 10 10 \***********************************************************************/ 11 11 module win32.winver; 12 +pragma(lib, "version"); 12 13 13 14 private import win32.windef; 14 15 15 16 // FIXME: type weirdness 16 17 enum { 17 18 VS_FILE_INFO = 16, 18 19 VS_VERSION_INFO = 1,

Modified src/win32/ws2tcpip.d from [8a3ffcdad49f7276] to [cfbc35c30c15b219].

219 219 size_t ai_addrlen; 220 220 char* ai_canonname; 221 221 SOCKADDR* ai_addr; 222 222 addrinfo* ai_next; 223 223 } 224 224 225 225 extern(Windows) { 226 - static if (_WIN32_WINNT >= 0x0501) { 226 + static if (_WIN32_WINNT >= 0x501) { 227 227 void freeaddrinfo(addrinfo*); 228 - int getaddrinfo (CPtr!(char), CPtr!(char), CPtr!(addrinfo), addrinfo**); 229 - int getnameinfo(CPtr!(SOCKADDR), socklen_t, char*, DWORD, char*, DWORD, int); 228 + int getaddrinfo (const(char)*, const(char)*, const(addrinfo)*, addrinfo**); 229 + int getnameinfo(const(SOCKADDR)*, socklen_t, char*, DWORD, char*, DWORD, int); 230 230 } 231 231 } 232 232 233 233 /+ TODO 234 234 static __inline char* 235 235 gai_strerrorA(int ecode) 236 236 { 237 - static char message[1024+1]; 237 + static char[1024+1] message; 238 238 DWORD dwFlags = FORMAT_MESSAGE_FROM_SYSTEM 239 239 | FORMAT_MESSAGE_IGNORE_INSERTS 240 240 | FORMAT_MESSAGE_MAX_WIDTH_MASK; 241 241 DWORD dwLanguageId = MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT); 242 242 FormatMessageA(dwFlags, NULL, ecode, dwLanguageId, (LPSTR)message, 1024, NULL); 243 243 return message; 244 244 } 245 245 static __inline WCHAR* 246 246 gai_strerrorW(int ecode) 247 247 { 248 - static WCHAR message[1024+1]; 248 + static WCHAR[1024+1] message; 249 249 DWORD dwFlags = FORMAT_MESSAGE_FROM_SYSTEM 250 250 | FORMAT_MESSAGE_IGNORE_INSERTS 251 251 | FORMAT_MESSAGE_MAX_WIDTH_MASK; 252 252 DWORD dwLanguageId = MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT); 253 253 FormatMessageW(dwFlags, NULL, ecode, dwLanguageId, (LPWSTR)message, 1024, NULL); 254 254 return message; 255 255 } ................................................................................ 261 261 +/ 262 262 263 263 extern(Windows) { 264 264 INT getnameinfo(SOCKADDR* pSockaddr, socklen_t SockaddrLength, 265 265 PCHAR pNodeBuffer, DWORD NodeBufferSize, PCHAR pServiceBuffer, 266 266 DWORD ServiceBufferSize, INT Flags); 267 267 268 - static if (_WIN32_WINNT >= 0x0502) { 268 + static if (_WIN32_WINNT >= 0x502) { 269 269 INT GetNameInfoW(SOCKADDR* pSockaddr, socklen_t SockaddrLength, 270 270 PWCHAR pNodeBuffer, DWORD NodeBufferSize, PWCHAR pServiceBuffer, 271 271 DWORD ServiceBufferSize, INT Flags); 272 272 273 273 alias getnameinfo GetNameInfoA; 274 274 275 275 version(Unicode) { 276 276 alias GetNameInfoW GetNameInfo; 277 277 } else { 278 278 alias GetNameInfoA GetNameInfo; 279 279 } 280 280 } 281 281 }

Added src/win32/wtsapi32.d version [fa6f54ec493591ee]

1 +/***********************************************************************\ 2 +* wtsapi32.d * 3 +* * 4 +* Windows API header module * 5 +* * 6 +* Translated from MinGW-w64 API * 7 +* * 8 +* Placed into public domain * 9 +\***********************************************************************/ 10 +module win32.wtsapi32; 11 +pragma(lib, "wtsapi32"); 12 +private import win32.w32api; 13 +import win32.windef; 14 + 15 +enum { 16 + WTS_CURRENT_SERVER = null, 17 + WTS_CURRENT_SERVER_HANDLE = null, 18 + WTS_CURRENT_SERVER_NAME = null 19 +} 20 + 21 +enum DWORD WTS_CURRENT_SESSION = cast(DWORD) -1; 22 + 23 +enum { 24 + IDTIMEOUT = 32000, 25 + IDASYNC = 32001 26 +} 27 + 28 +enum { 29 + WTS_WSD_LOGOFF = 0x01, 30 + WTS_WSD_SHUTDOWN = 0x02, 31 + WTS_WSD_REBOOT = 0x04, 32 + WTS_WSD_POWEROFF = 0x08, 33 + WTS_WSD_FASTREBOOT = 0x10 34 +} 35 + 36 +enum WTS_CONNECTSTATE_CLASS { 37 + WTSActive, 38 + WTSConnected, 39 + WTSConnectQuery, 40 + WTSShadow, 41 + WTSDisconnected, 42 + WTSIdle, 43 + WTSListen, 44 + WTSReset, 45 + WTSDown, 46 + WTSInit 47 +} 48 + 49 +struct WTS_SERVER_INFOW { 50 + LPWSTR pServerName; 51 +} 52 +alias WTS_SERVER_INFOW* PWTS_SERVER_INFOW; 53 + 54 +struct WTS_SERVER_INFOA { 55 + LPSTR pServerName; 56 +} 57 +alias WTS_SERVER_INFOA* PWTS_SERVER_INFOA; 58 + 59 +version(Unicode) { 60 + alias WTS_SERVER_INFOW WTS_SERVER_INFO; 61 + alias PWTS_SERVER_INFOW PWTS_SERVER_INFO; 62 +} else { 63 + alias WTS_SERVER_INFOA WTS_SERVER_INFO; 64 + alias PWTS_SERVER_INFOA PWTS_SERVER_INFO; 65 +} 66 + 67 +struct WTS_SESSION_INFOW { 68 + DWORD SessionId; 69 + LPWSTR pWinStationName; 70 + WTS_CONNECTSTATE_CLASS State; 71 +} 72 +alias WTS_SESSION_INFOW* PWTS_SESSION_INFOW; 73 + 74 +struct WTS_SESSION_INFOA { 75 + DWORD SessionId; 76 + LPSTR pWinStationName; 77 + WTS_CONNECTSTATE_CLASS State; 78 +} 79 +alias WTS_SESSION_INFOA* PWTS_SESSION_INFOA; 80 + 81 +version(Unicode) { 82 + alias WTS_SESSION_INFOW WTS_SESSION_INFO; 83 + alias PWTS_SESSION_INFOW PWTS_SESSION_INFO; 84 +} else { 85 + alias WTS_SESSION_INFOA WTS_SESSION_INFO; 86 + alias PWTS_SESSION_INFOA PWTS_SESSION_INFO; 87 +} 88 + 89 +struct WTS_PROCESS_INFOW { 90 + DWORD SessionId; 91 + DWORD ProcessId; 92 + LPWSTR pProcessName; 93 + PSID pUserSid; 94 +} 95 +alias WTS_PROCESS_INFOW* PWTS_PROCESS_INFOW; 96 + 97 +struct WTS_PROCESS_INFOA { 98 + DWORD SessionId; 99 + DWORD ProcessId; 100 + LPSTR pProcessName; 101 + PSID pUserSid; 102 +} 103 +alias WTS_PROCESS_INFOA* PWTS_PROCESS_INFOA; 104 + 105 +version(Unicode) { 106 + alias WTS_PROCESS_INFOW WTS_PROCESS_INFO; 107 + alias PWTS_PROCESS_INFOW PWTS_PROCESS_INFO; 108 +} else { 109 + alias WTS_PROCESS_INFOA WTS_PROCESS_INFO; 110 + alias PWTS_PROCESS_INFOA PWTS_PROCESS_INFO; 111 +} 112 + 113 +enum { 114 + WTS_PROTOCOL_TYPE_CONSOLE, 115 + WTS_PROTOCOL_TYPE_ICA, 116 + WTS_PROTOCOL_TYPE_RDP 117 +} 118 + 119 +enum WTS_INFO_CLASS { 120 + WTSInitialProgram, 121 + WTSApplicationName, 122 + WTSWorkingDirectory, 123 + WTSOEMId, 124 + WTSSessionId, 125 + WTSUserName, 126 + WTSWinStationName, 127 + WTSDomainName, 128 + WTSConnectState, 129 + WTSClientBuildNumber, 130 + WTSClientName, 131 + WTSClientDirectory, 132 + WTSClientProductId, 133 + WTSClientHardwareId, 134 + WTSClientAddress, 135 + WTSClientDisplay, 136 + WTSClientProtocolType, 137 + WTSIdleTime, 138 + WTSLogonTime, 139 + WTSIncomingBytes, 140 + WTSOutgoingBytes, 141 + WTSIncomingFrames, 142 + WTSOutgoingFrames, 143 + WTSClientInfo, 144 + WTSSessionInfo, // = 24 145 +} 146 + 147 +struct WTS_CLIENT_ADDRESS { 148 + DWORD AddressFamily; 149 + BYTE[20] Address; 150 +} 151 +alias WTS_CLIENT_ADDRESS* PWTS_CLIENT_ADDRESS; 152 + 153 +struct WTS_CLIENT_DISPLAY { 154 + DWORD HorizontalResolution; 155 + DWORD VerticalResolution; 156 + DWORD ColorDepth; 157 +} 158 +alias WTS_CLIENT_DISPLAY* PWTS_CLIENT_DISPLAY; 159 + 160 +enum WTS_CONFIG_CLASS { 161 + WTSUserConfigInitialProgram, 162 + WTSUserConfigWorkingDirectory, 163 + WTSUserConfigfInheritInitialProgram, 164 + WTSUserConfigfAllowLogonTerminalServer, 165 + WTSUserConfigTimeoutSettingsConnections, 166 + WTSUserConfigTimeoutSettingsDisconnections, 167 + WTSUserConfigTimeoutSettingsIdle, 168 + WTSUserConfigfDeviceClientDrives, 169 + WTSUserConfigfDeviceClientPrinters, 170 + WTSUserConfigfDeviceClientDefaultPrinter, 171 + WTSUserConfigBrokenTimeoutSettings, 172 + WTSUserConfigReconnectSettings, 173 + WTSUserConfigModemCallbackSettings, 174 + WTSUserConfigModemCallbackPhoneNumber, 175 + WTSUserConfigShadowingSettings, 176 + WTSUserConfigTerminalServerProfilePath, 177 + WTSUserConfigTerminalServerHomeDir, 178 + WTSUserConfigTerminalServerHomeDirDrive, 179 + WTSUserConfigfTerminalServerRemoteHomeDir 180 +} 181 + 182 +enum { 183 + WTS_EVENT_NONE = 0x0, 184 + WTS_EVENT_CREATE = 0x1, 185 + WTS_EVENT_DELETE = 0x2, 186 + WTS_EVENT_RENAME = 0x4, 187 + WTS_EVENT_CONNECT = 0x8, 188 + WTS_EVENT_DISCONNECT = 0x10, 189 + WTS_EVENT_LOGON = 0x20, 190 + WTS_EVENT_LOGOFF = 0x40, 191 + WTS_EVENT_STATECHANGE = 0x80, 192 + WTS_EVENT_LICENSE = 0x100, 193 + WTS_EVENT_ALL = 0x7fffffff, 194 + WTS_EVENT_FLUSH = 0x80000000 195 +} 196 + 197 +enum WTS_VIRTUAL_CLASS { 198 + WTSVirtualClientData, 199 + WTSVirtualFileHandle 200 +} 201 + 202 +version(Unicode) { 203 + alias WTSEnumerateServersW WTSEnumerateServers; 204 + alias WTSOpenServerW WTSOpenServer; 205 + alias WTSEnumerateSessionsW WTSEnumerateSessions; 206 + alias WTSEnumerateProcessesW WTSEnumerateProcesses; 207 + alias WTSQuerySessionInformationW WTSQuerySessionInformation; 208 + alias WTSQueryUserConfigW WTSQueryUserConfig; 209 + alias WTSSetUserConfigW WTSSetUserConfig; 210 + alias WTSSendMessageW WTSSendMessage; 211 +} else { 212 + alias WTSEnumerateServersA WTSEnumerateServers; 213 + alias WTSOpenServerA WTSOpenServer; 214 + alias WTSEnumerateSessionsA WTSEnumerateSessions; 215 + alias WTSEnumerateProcessesA WTSEnumerateProcesses; 216 + alias WTSQuerySessionInformationA WTSQuerySessionInformation; 217 + alias WTSQueryUserConfigA WTSQueryUserConfig; 218 + alias WTSSetUserConfigA WTSSetUserConfig; 219 + alias WTSSendMessageA WTSSendMessage; 220 +} 221 + 222 +extern(Windows) { 223 + WINBOOL WTSEnumerateServersW(LPWSTR pDomainName, DWORD Reserved, DWORD Version, PWTS_SERVER_INFOW* ppServerInfo, DWORD* pCount); 224 + WINBOOL WTSEnumerateServersA(LPSTR pDomainName, DWORD Reserved, DWORD Version, PWTS_SERVER_INFOA* ppServerInfo, DWORD* pCount); 225 + HANDLE WTSOpenServerW(LPWSTR pServerName); 226 + HANDLE WTSOpenServerA(LPSTR pServerName); 227 + VOID WTSCloseServer(HANDLE hServer); 228 + WINBOOL WTSEnumerateSessionsW(HANDLE hServer, DWORD Reserved, DWORD Version, PWTS_SESSION_INFOW* ppSessionInfo, DWORD* pCount); 229 + WINBOOL WTSEnumerateSessionsA(HANDLE hServer, DWORD Reserved, DWORD Version, PWTS_SESSION_INFOA* ppSessionInfo, DWORD* pCount); 230 + WINBOOL WTSEnumerateProcessesW(HANDLE hServer, DWORD Reserved, DWORD Version, PWTS_PROCESS_INFOW* ppProcessInfo, DWORD* pCount); 231 + WINBOOL WTSEnumerateProcessesA(HANDLE hServer, DWORD Reserved, DWORD Version, PWTS_PROCESS_INFOA* ppProcessInfo, DWORD* pCount); 232 + WINBOOL WTSTerminateProcess(HANDLE hServer, DWORD ProcessId, DWORD ExitCode); 233 + WINBOOL WTSQuerySessionInformationW(HANDLE hServer, DWORD SessionId, WTS_INFO_CLASS WTSInfoClass, LPWSTR* ppBuffer, DWORD* pBytesReturned); 234 + WINBOOL WTSQuerySessionInformationA(HANDLE hServer, DWORD SessionId, WTS_INFO_CLASS WTSInfoClass, LPSTR* ppBuffer, DWORD* pBytesReturned); 235 + WINBOOL WTSQueryUserConfigW(LPWSTR pServerName, LPWSTR pUserName, WTS_CONFIG_CLASS WTSConfigClass, LPWSTR* ppBuffer, DWORD* pBytesReturned); 236 + WINBOOL WTSQueryUserConfigA(LPSTR pServerName, LPSTR pUserName, WTS_CONFIG_CLASS WTSConfigClass, LPSTR* ppBuffer, DWORD* pBytesReturned); 237 + WINBOOL WTSSetUserConfigW(LPWSTR pServerName, LPWSTR pUserName, WTS_CONFIG_CLASS WTSConfigClass, LPWSTR pBuffer, DWORD DataLength); 238 + WINBOOL WTSSetUserConfigA(LPSTR pServerName, LPSTR pUserName, WTS_CONFIG_CLASS WTSConfigClass, LPSTR pBuffer, DWORD DataLength); 239 + WINBOOL WTSSendMessageW(HANDLE hServer, DWORD SessionId, LPWSTR pTitle, DWORD TitleLength, LPWSTR pMessage, DWORD MessageLength, DWORD Style, DWORD Timeout, DWORD* pResponse, WINBOOL bWait); 240 + WINBOOL WTSSendMessageA(HANDLE hServer, DWORD SessionId, LPSTR pTitle, DWORD TitleLength, LPSTR pMessage, DWORD MessageLength, DWORD Style, DWORD Timeout, DWORD* pResponse, WINBOOL bWait); 241 + WINBOOL WTSDisconnectSession(HANDLE hServer, DWORD SessionId, WINBOOL bWait); 242 + WINBOOL WTSLogoffSession(HANDLE hServer, DWORD SessionId, WINBOOL bWait); 243 + WINBOOL WTSShutdownSystem(HANDLE hServer, DWORD ShutdownFlag); 244 + WINBOOL WTSWaitSystemEvent(HANDLE hServer, DWORD EventMask, DWORD* pEventFlags); 245 + HANDLE WTSVirtualChannelOpen(HANDLE hServer, DWORD SessionId, LPSTR pVirtualName); 246 + WINBOOL WTSVirtualChannelClose(HANDLE hChannelHandle); 247 + WINBOOL WTSVirtualChannelRead(HANDLE hChannelHandle, ULONG TimeOut, PCHAR Buffer, ULONG BufferSize, PULONG pBytesRead); 248 + WINBOOL WTSVirtualChannelWrite(HANDLE hChannelHandle, PCHAR Buffer, ULONG Length, PULONG pBytesWritten); 249 + WINBOOL WTSVirtualChannelPurgeInput(HANDLE hChannelHandle); 250 + WINBOOL WTSVirtualChannelPurgeOutput(HANDLE hChannelHandle); 251 + WINBOOL WTSVirtualChannelQuery(HANDLE hChannelHandle, WTS_VIRTUAL_CLASS, PVOID* ppBuffer, DWORD* pBytesReturned); 252 + VOID WTSFreeMemory(PVOID pMemory); 253 + 254 + WINBOOL WTSRegisterSessionNotification(HWND hWnd, DWORD dwFlags); 255 + WINBOOL WTSUnRegisterSessionNotification(HWND hWnd); 256 + WINBOOL WTSQueryUserToken(ULONG SessionId, PHANDLE phToken); 257 +} 258 + 259 +enum { 260 + NOTIFY_FOR_ALL_SESSIONS = 1, 261 + NOTIFY_FOR_THIS_SESSION = 0 262 +} 263 + 264 +enum { 265 + USERNAME_LENGTH = 20, 266 + CLIENTNAME_LENGTH = 20, 267 + CLIENTADDRESS_LENGTH = 30, 268 + WINSTATIONNAME_LENGTH = 32, 269 + DOMAIN_LENGTH = 17 270 +} 271 + 272 +static if (_WIN32_WINNT >= 0x600) { 273 + struct WTSCLIENTW { 274 + WCHAR ClientName[CLIENTNAME_LENGTH + 1]; 275 + WCHAR Domain[DOMAIN_LENGTH + 1]; 276 + WCHAR UserName[USERNAME_LENGTH + 1]; 277 + WCHAR WorkDirectory[MAX_PATH + 1]; 278 + WCHAR InitialProgram[MAX_PATH + 1]; 279 + BYTE EncryptionLevel; 280 + ULONG ClientAddressFamily; 281 + USHORT ClientAddress[CLIENTADDRESS_LENGTH + 1]; 282 + USHORT HRes; 283 + USHORT VRes; 284 + USHORT ColorDepth; 285 + WCHAR ClientDirectory[MAX_PATH + 1]; 286 + ULONG ClientBuildNumber; 287 + ULONG ClientHardwareId; 288 + USHORT ClientProductId; 289 + USHORT OutBufCountHost; 290 + USHORT OutBufCountClient; 291 + USHORT OutBufLength; 292 + WCHAR DeviceId[MAX_PATH + 1]; 293 + } 294 + alias WTSCLIENTW* PWTSCLIENTW; 295 + 296 + struct WTSCLIENTA { 297 + CHAR ClientName[CLIENTNAME_LENGTH + 1]; 298 + CHAR Domain[DOMAIN_LENGTH + 1 ]; 299 + CHAR UserName[USERNAME_LENGTH + 1]; 300 + CHAR WorkDirectory[MAX_PATH + 1]; 301 + CHAR InitialProgram[MAX_PATH + 1]; 302 + BYTE EncryptionLevel; 303 + ULONG ClientAddressFamily; 304 + USHORT ClientAddress[CLIENTADDRESS_LENGTH + 1]; 305 + USHORT HRes; 306 + USHORT VRes; 307 + USHORT ColorDepth; 308 + CHAR ClientDirectory[MAX_PATH + 1]; 309 + ULONG ClientBuildNumber; 310 + ULONG ClientHardwareId; 311 + USHORT ClientProductId; 312 + USHORT OutBufCountHost; 313 + USHORT OutBufCountClient; 314 + USHORT OutBufLength; 315 + CHAR DeviceId[MAX_PATH + 1]; 316 + } 317 + alias WTSCLIENTA* PWTSCLIENTA; 318 + 319 + version(Unicode) { 320 + alias WTSCLIENTW WTSCLIENT; 321 + alias PWTSCLIENTW PWTSCLIENT; 322 + } else { 323 + alias WTSCLIENTA WTSCLIENT; 324 + alias PWTSCLIENTA PWTSCLIENT; 325 + } 326 + 327 + struct WTSINFOW { 328 + WTS_CONNECTSTATE_CLASS State; 329 + DWORD SessionId; 330 + DWORD IncomingBytes; 331 + DWORD OutgoingBytes; 332 + DWORD IncomingCompressedBytes; 333 + DWORD OutgoingCompressedBytes; 334 + WCHAR WinStationName[WINSTATIONNAME_LENGTH]; 335 + WCHAR Domain[DOMAIN_LENGTH]; 336 + WCHAR UserName[USERNAME_LENGTH+1]; 337 + LARGE_INTEGER ConnectTime; 338 + LARGE_INTEGER DisconnectTime; 339 + LARGE_INTEGER LastInputTime; 340 + LARGE_INTEGER LogonTime; 341 + LARGE_INTEGER CurrentTime; 342 + } 343 + alias WTSINFOW* PWTSINFOW; 344 + 345 + struct WTSINFOA { 346 + WTS_CONNECTSTATE_CLASS State; 347 + DWORD SessionId; 348 + DWORD IncomingBytes; 349 + DWORD OutgoingBytes; 350 + DWORD IncomingCompressedBytes; 351 + DWORD OutgoingCompressedBytes; 352 + CHAR WinStationName[WINSTATIONNAME_LENGTH]; 353 + CHAR Domain[DOMAIN_LENGTH]; 354 + CHAR UserName[USERNAME_LENGTH+1]; 355 + LARGE_INTEGER ConnectTime; 356 + LARGE_INTEGER DisconnectTime; 357 + LARGE_INTEGER LastInputTime; 358 + LARGE_INTEGER LogonTime; 359 + LARGE_INTEGER CurrentTime; 360 + } 361 + alias WTSINFOA* PWTSINFOA; 362 + 363 + version(Unicode) { 364 + alias WTSINFOW WTSINFO; 365 + alias PWTSINFOW PWTSINFO; 366 + } else { 367 + alias WTSINFOA WTSINFO; 368 + alias PWTSINFOA PWTSINFO; 369 + } 370 + 371 + extern(Windows) { 372 + WINBOOL WTSConnectSessionA( 373 + ULONG LogonId, 374 + ULONG TargetLogonId, 375 + PSTR pPassword, 376 + WINBOOL bWait 377 + ); 378 + 379 + WINBOOL WTSConnectSessionW( 380 + ULONG LogonId, 381 + ULONG TargetLogonId, 382 + PWSTR pPassword, 383 + WINBOOL bWait 384 + ); 385 + 386 + WINBOOL WTSRegisterSessionNotificationEx( 387 + HANDLE hServer, 388 + HWND hWnd, 389 + DWORD dwFlags 390 + ); 391 + 392 + WINBOOL WTSStartRemoteControlSessionA( 393 + LPSTR pTargetServerName, 394 + ULONG TargetLogonId, 395 + BYTE HotkeyVk, 396 + USHORT HotkeyModifiers 397 + ); 398 + 399 + WINBOOL WTSStartRemoteControlSessionW( 400 + LPWSTR pTargetServerName, 401 + ULONG TargetLogonId, 402 + BYTE HotkeyVk, 403 + USHORT HotkeyModifiers 404 + ); 405 + 406 + version(Unicode) { 407 + alias WTSStartRemoteControlSessionW WTSStartRemoteControlSession; 408 + alias WTSConnectSessionW WTSConnectSession; 409 + } else { 410 + alias WTSStartRemoteControlSessionA WTSStartRemoteControlSession; 411 + alias WTSConnectSessionA WTSConnectSession; 412 + } 413 + 414 + WINBOOL WTSStopRemoteControlSession( 415 + ULONG LogonId 416 + ); 417 + 418 + WINBOOL WTSUnRegisterSessionNotificationEx( 419 + HANDLE hServer, 420 + HWND hWnd 421 + ); 422 + 423 + HANDLE WTSVirtualChannelOpenEx( 424 + DWORD SessionId, 425 + LPSTR pVirtualName, 426 + DWORD flags 427 + ); 428 + } /* extern(Windows) */ 429 +} /* static if (_WIN32_WINNT >= 0x600) */

Modified src/win32/wtypes.d from [aa198bc3f64df113] to [9514097d3d6522ba].

72 72 MSHLFLAGS_TABLESTRONG, 73 73 MSHLFLAGS_TABLEWEAK 74 74 } 75 75 76 76 struct FLAGGED_WORD_BLOB { 77 77 uint fFlags; 78 78 uint clSize; 79 - ushort asData[1]; 79 + ushort[1] asData; 80 80 } 81 81 82 82 alias WCHAR OLECHAR; 83 83 alias LPWSTR LPOLESTR; 84 84 alias LPCWSTR LPCOLESTR; 85 85 86 86 alias ushort VARTYPE; ................................................................................ 89 89 const VARIANT_BOOL VARIANT_TRUE = -1; // 0xffff; 90 90 const VARIANT_BOOL VARIANT_FALSE = 0; 91 91 92 92 alias OLECHAR* BSTR; 93 93 alias FLAGGED_WORD_BLOB* wireBSTR; 94 94 alias BSTR* LPBSTR; 95 95 //alias LONG SCODE; // also in winerror 96 -alias HANDLE HCONTEXT, HMETAFILEPICT; 96 +mixin DECLARE_HANDLE!("HCONTEXT"); 97 +mixin DECLARE_HANDLE!("HMETAFILEPICT"); 97 98 98 99 union CY { 99 100 struct { 100 101 uint Lo; 101 102 int Hi; 102 103 } 103 104 LONGLONG int64; ................................................................................ 210 211 211 212 struct DECIMAL { 212 213 USHORT wReserved; 213 214 union { 214 215 struct { 215 216 ubyte scale; // valid values are 0 to 28 216 217 ubyte sign; // 0 for positive, DECIMAL_NEG for negatives. 217 - ubyte DECIMAL_NEG = 0x80; 218 + enum ubyte DECIMAL_NEG = 0x80; 218 219 } 219 220 USHORT signscale; 220 221 } 221 222 ULONG Hi32; 222 223 union { 223 224 struct { 224 225 ULONG Lo32;

Modified src/windll.d from [bbb6d5827e2268a2] to [6b2f129d530b6aee].

1 -サソimport win32.windows; 1 +サソimport core.runtime; 2 +import win32.windows; 2 3 import std.string; 3 4 4 5 class WinDLLException : Exception 5 6 { 6 7 private this( string msg ) { super(msg); } 7 8 } 8 9 9 10 class WinDLL 10 11 { 11 12 // constructor: 12 - // Load a DLL with specified name 13 + // Load a DLL of specified name. 14 + // Avoid loading the DLL from the current directory for security. 13 15 14 16 this( string dllname ) 15 17 { 16 18 char original_cur[MAX_PATH]; 17 19 char sys[MAX_PATH]; 18 - GetCurrentDirectoryA(MAX_PATH, original_cur.ptr); 19 - GetSystemDirectoryA(sys.ptr, MAX_PATH); 20 + GetCurrentDirectoryA(original_cur.length, original_cur.ptr); 21 + GetSystemDirectoryA(sys.ptr, sys.length); 20 22 SetCurrentDirectoryA(sys.ptr); 21 - handle = LoadLibraryA( dllname.ptr ); 23 + handle = cast(HINSTANCE) Runtime.loadLibrary(dllname); 22 24 SetCurrentDirectoryA(original_cur.ptr); 23 25 if( handle is null ) 24 26 throw new WinDLLException( dllname ~ " not found" ); 25 27 } 26 28 27 29 static WinDLL load( string name ) 28 30 { ................................................................................ 34 36 // close: 35 37 // free the DLL 36 38 37 39 void close() 38 40 { 39 41 if( handle ) 40 42 { 41 - FreeLibrary( handle ); 43 + Runtime.unloadLibrary(handle); 42 44 handle = null; 43 45 } 44 46 } 45 47 46 48 // get_api: 47 49 // extract a function with specified name from the DLL. 48 50 // may return null. ................................................................................ 56 58 return cast(FnT) GetProcAddress( handle, apiname.toStringz() ); 57 59 } 58 60 } 59 61 60 62 // load_resource: 61 63 // extract a resource 62 64 63 - void* load_resource( string resname, char* type ) 65 + void* load_resource( string resname, const char* type ) 64 66 in { assert(handle); } 65 67 body 66 68 { 69 + if(resname in rsrc_map) 70 + return rsrc_map[resname]; 71 + 67 72 HRSRC hi = FindResource( handle, resname.toStringz(), type ); 68 73 if( hi is null ) 69 74 return null; 70 75 HGLOBAL hr = LoadResource( handle, hi ); 71 76 if( hr is null ) 72 77 return null; 73 - return LockResource( hr ); 78 + void* v = LockResource( hr ); 79 + rsrc_map[resname] = v; 80 + return v; 74 81 } 75 82 76 83 // load_diaglog: 77 84 // specialized version of load_resource 78 85 79 86 void* load_dialog( string resname ) 80 87 { 81 88 return load_resource( resname, RT_DIALOG ); 82 89 } 83 90 84 91 private HINSTANCE handle; 92 + private void*[string] rsrc_map; 85 93 }