Index: readme.txt ================================================================== --- readme.txt +++ readme.txt @@ -60,11 +60,11 @@ http://sources.redhat.com/bzip2/ をビルドしたライブラリなどです。この部分は Copyright (C) 1996-2002 Julian R Seward. All rights reserved. で。 - win32.lib と win32 ディレクトリの中身は - windows.h for D - http://hp.vector.co.jp/authors/VA028375/d/windows.h.html + dmd_win32.lib と win32 ディレクトリの中身は + DWinProgramming + https://github.com/AndrejMitrovic/DWinProgramming を利用しています。 他は NYSL 0.9982 ( http://www.kmonos.net/nysl/ )に基づいてご自由に。 Index: src/Makefile ================================================================== --- src/Makefile +++ src/Makefile @@ -1,12 +1,12 @@ SRCFILES = qbga32.def qbga32.d util.d bga_melter.d hack.d windll.d qbga_gui.d BZ2FILES = libbz2\\bzlib.d libbz2\\libbz2.lib -DEPLIBS = win32a.lib -OPTS = -release +DEPLIBS = dmd_win32.lib +OPTS = -release -shared #OPTS = -unittest QBga32.dll: $(SRCFILES) $(BZ2FILES) dmd.exe $(OPTS) -ofQBga32.dll $(SRCFILES) $(BZ2FILES) $(DEPLIBS) clean: del *.map del *.obj Index: src/bga_melter.d ================================================================== --- src/bga_melter.d +++ src/bga_melter.d @@ -1,10 +1,11 @@ -サソprivate import std.string; +サソprivate import win32.windows; +private import std.string; private import std.file; private import std.c.stdio; +private import std.string; private import etc.c.zlib; -private import win32.ansi.windows; private import libbz2.bzlib; private import util; //---------------------------------------------------------------- // Bga譖ク蠎ォ縺ョ繝輔ぃ繧、繝ォ繝倥ャ繝蠖「蠑 @@ -25,11 +26,11 @@ // 0:(ext==竊?髱槫悸邵ョ:蝨ァ邵ョ) 1:蝨ァ邵ョ 2:髱槫悸邵ョ // .ARC, .ARJ, .BZ2, .BZA, .CAB, .GZ, .GZA, .LZH, // .LZS, .PAK, .RAR, .TAZ, .TBZ, .TGZ, .Z, .ZIP, .ZOO ushort dir_name_len; // 繝繧」繝ャ繧ッ繝医Μ蜷阪ョ髟キ縺 ushort file_name_len; // 繝輔ぃ繧、繝ォ蜷阪ョ髟キ縺 - char[] fname; // dir_name_len + file_name_len ( no '\0' ) + string fname; // dir_name_len + file_name_len ( no '\0' ) } //---------------------------------------------------------------- // 繧ィ繝ゥ繝シ逋コ逕滓凾縺ォ謚輔£繧倶セ句、 //---------------------------------------------------------------- @@ -92,11 +93,11 @@ class Filep { private FILE* fp; private this( FILE* p ) { fp = p; } - static Filep open( char[] filename, bool read ) + static Filep open( string filename, bool read ) { FILE* fp = fopen( toStringz(filename), read?"rb":"wb" ); return (fp ? new Filep(fp) : null); } @@ -108,11 +109,11 @@ } void[] read( int siz ) { char[] buf; buf.length = siz; - int rsiz = fread( buf, 1, siz, fp ); + int rsiz = fread( buf.ptr, 1, siz, fp ); if( rsiz < 0 ) throw new BgaMelterError(ERROR_FILE_OPEN); buf.length = rsiz; return buf; } @@ -119,13 +120,13 @@ void write( void[] buf ) { while( buf.length > 0 ) { - int rsiz = fwrite( buf, 1, buf.length, fp ); + int rsiz = fwrite( buf.ptr, 1, buf.length, fp ); if( rsiz < 0 ) return; - buf = buf[rsiz .. length]; + buf = buf[rsiz .. $]; } } int cur() { @@ -153,16 +154,16 @@ // 繝。繧、繝ウ繧ッ繝ゥ繧ケ //---------------------------------------------------------------- class BgaMelter { - alias BgaAnswer delegate(inout BgaHeader) FileHandler; + alias BgaAnswer delegate(ref BgaHeader) FileHandler; alias BgaAnswer delegate(int, int) ProgressHandler; private Filep fp = null; - this( char[] arc_name ) + this( string arc_name ) { fp = Filep.open( arc_name, true ); if( fp is null ) throw new BgaMelterError(ERROR_FILE_OPEN); } @@ -214,11 +215,11 @@ bContinue = BzDec( hdr.original_size, outf, ph ); // 髢峨§縺ヲ螻樊ァ險ュ螳 outf.close(); dosSetFTime( hdr.fname, hdr.date, hdr.time ); - SetFileAttributes( hdr.fname, hdr.attrib ); + SetFileAttributesA( toStringz(hdr.fname), hdr.attrib ); if( !bContinue ) return; } finally { fp.seek_to(nextpos); } } @@ -232,11 +233,11 @@ return (cn>=0x80 ? cn|0xffffff00 : cn); } private int find_header() { - char[] dat = cast(char[]) fp.read(0x10000); + string dat = cast(string) fp.read(0x10000); for( int i=0; i command 縺ッ繧ウ繝槭Φ繝峨Λ繧、繝ウ縺ョ譛蛻昴ョ蠑墓焚縺ィ縺励※縺上□縺輔>縲ゅ↑縺翫…ommand 繧堤怐逡・ // > 縺励◆蝣エ蜷医ッ 'x' command 縺梧欠螳壹&繧後◆繧ゅョ縺ィ縺ソ縺ェ縺励∪縺吶 if( cmd.length == 0 ) return UNSUPPORTED; if( cmd[0].length == 1 ) { - if( 0 <= find("adjlmnstvADJLMNSTV", cmd[0][0]) ) + if( 0 <= "adjlmnstvADJLMNSTV".indexOf(cmd[0][0]) ) return UNSUPPORTED; if( cmd[0][0]=='x' || cmd[0][0]=='X' ) - cmd = cmd[1 .. length]; + cmd = cmd[1 .. $]; } - // 窶サ 縺薙ョ譎らせ縺ァ縲…md縺ォ縺ッcommand繧帝勁縺縺滓ョ九j縺ョ蠑墓焚縺悟・縺」縺ヲ縺繧九ッ縺 + // 窶サ 縺薙ョ譎らせ縺ァ縲…md縺ォ縺ッcommand繧帝勁縺縺滓ョ九j縺ョ蠑墓焚縺悟・縺」縺ヲ縺繧九ッ縺 // // 繧ケ繧、繝繝∬ァ」譫舌∝シ墓焚隗」譫 // bool all_attrs = false; // -a @@ -240,15 +233,15 @@ bool newfile_only = false; // -n bool force_overwrite = false; // -o bool recursive = false; // -r bool sanitize_path = true; - char[] arc_name = null; - char[] base_dir = null; - char[][] paths; + string arc_name = null; + string base_dir = null; + string[] paths; - foreach( char[] param ; cmd ) + foreach( string param ; cmd ) if( param[0] == '-' ) switch( param[1] ) { case 'a','A': all_attrs = true; break; case 'i','I': silent = true; break; @@ -265,13 +258,14 @@ else if( base_dir is null ) { if( lastChar(param) == '\\' ) base_dir = param; else { - base_dir.length = GetCurrentDirectory(0,null)+1; - GetCurrentDirectory(base_dir.length, base_dir); - base_dir.length = strlen(base_dir); + char[] buf; + buf.length = GetCurrentDirectoryA(0,null)+1; + GetCurrentDirectoryA(buf.length, buf.ptr); + base_dir = buf.ptr.fromStringz().idup; if( lastChar(base_dir) != '\\' ) base_dir ~= '\\'; } } else @@ -291,25 +285,24 @@ dlg = new ProgressDlg( cast(DLGTEMPLATE*) g_orig_dll.load_dialog("#2025"), wnd ); dlg.set_arcname(arc_name); } - char[] src_fname; // OwnerWndProc髢「菫 + string src_fname; // OwnerWndProc髢「菫 BgaHeader cur_hdr; // OwnerWndProc髢「菫 - BgaAnswer handler( inout BgaHeader hdr ) + BgaAnswer handler( ref BgaHeader hdr ) { src_fname = hdr.fname; process_messages(); // paths if( paths.length > 0 ) { - char[] fname = // -r - (recursive ? hdr.fname[hdr.dir_name_len..length] - : hdr.fname); - foreach( char[] w ; paths ) + string fname = // -r + (recursive ? hdr.fname[hdr.dir_name_len..$] : hdr.fname); + foreach( string w ; paths ) if( wild_match( w, fname ) ) goto ok; return BgaAnswer.SkipIt; ok:; } @@ -319,32 +312,32 @@ // dialog if( dlg ) if( dlg.closed ) return BgaAnswer.Abort; else - dlg.set_filename( hdr.fname[hdr.dir_name_len .. length] ); + dlg.set_filename( hdr.fname[hdr.dir_name_len..$] ); // -j if( ignore_dir ) - hdr.fname = hdr.fname[hdr.dir_name_len .. length]; + hdr.fname = hdr.fname[hdr.dir_name_len .. $]; // sanitize if( sanitize_path ) hdr.fname = check_path(hdr.fname); // base_dir - hdr.fname = base_dir ~ hdr.fname; + hdr.fname = (base_dir ~ hdr.fname).dup; // -o if( !force_overwrite ) try { - if( std.file.exists(hdr.fname) && std.file.isfile(hdr.fname) ) + if( std.file.exists(hdr.fname) && std.file.isFile(hdr.fname) ) // -n if( newfile_only ) { if( newer_than(hdr.date,hdr.time,hdr.fname) ) return BgaAnswer.SkipIt; } else { - int r = MessageBox( dlg?dlg.hwnd:wnd, + int r = MessageBoxA( dlg?dlg.hwnd:wnd, toStringz("Overwrite "~hdr.fname~" ?"), "QBga32.dll", MB_YESNOCANCEL ); if( r == IDNO ) return BgaAnswer.SkipIt; if( r == IDCANCEL ) return BgaAnswer.Abort; } @@ -412,11 +405,11 @@ HWND g_owner_window; extern(Windows) BOOL function(HWND,UINT,UINT,EXTRACTINGINFOEX*) g_handler; extern(Windows) BOOL noex_handler( HWND w,UINT m,UINT s, EXTRACTINGINFOEX* e ) { - return !SendMessage( w, m, s, cast(LPARAM) &e.exinfo ); + return !SendMessageA( w, m, s, cast(LPARAM) &e.exinfo ); } void BgaSetOwnerWindow_impl( HWND wnd ) { g_owner_window = wnd; @@ -434,67 +427,67 @@ g_owner_window = wnd; g_handler = *proc; } enum { OP_FILE_BEGIN, OP_FILE_MIDDLE, OP_ARC_END, OP_ARC_BEGIN } -bool do_ownerwnd_proc( UINT uState, BgaHeader* hdr, int cur, char[] src_fname ) +bool do_ownerwnd_proc( UINT uState, BgaHeader* hdr, int cur, string src_fname ) { if( g_handler is null ) return true; EXTRACTINGINFOEX ex; if( uState == OP_ARC_BEGIN || uState == OP_ARC_END ) { - lstrcpyn( ex.exinfo.szSourceFileName, toStringz(src_fname), 512 ); + lstrcpynA( ex.exinfo.szSourceFileName.ptr, toStringz(src_fname), 512 ); } else { ex.exinfo.dwFileSize = hdr.original_size; ex.exinfo.dwWriteSize = cur; - lstrcpyn( ex.exinfo.szSourceFileName, toStringz(src_fname), 512 ); - lstrcpyn( ex.exinfo.szDestFileName, toStringz(hdr.fname), 512 ); + lstrcpynA( ex.exinfo.szSourceFileName.ptr, toStringz(src_fname), 512 ); + lstrcpynA( ex.exinfo.szDestFileName.ptr, toStringz(hdr.fname), 512 ); ex.dwCompressedSize = hdr.compressed_size; - ex.wRatio = cast(int)( (cast(real)hdr.compressed_size)/hdr.original_size*1000 ); + ex.wRatio = cast(ushort)( (cast(real)hdr.compressed_size)/hdr.original_size*1000 ); ex.wDate = hdr.date; ex.wTime = hdr.time; ex.szAttribute[0] = (hdr.attrib&32 ? 'A': '-'); ex.szAttribute[1] = (hdr.attrib&1 ? 'R': '-'); ex.szAttribute[2] = (hdr.attrib&2 ? 'H': '-'); ex.szAttribute[3] = (hdr.attrib&4 ? 'S': '-'); ex.szAttribute[4] = (hdr.attrib&16 ? 'D': '-'); ex.szAttribute[5] = '\0'; if( hdr.method[0]=='G' ) - lstrcpy(ex.szMode,"-gzip-"); + lstrcpyA(ex.szMode.ptr,"-gzip-"); else - lstrcpy(ex.szMode,"-bzip2-"); + lstrcpyA(ex.szMode.ptr,"-bzip2-"); } return false != g_handler( g_owner_window, WM_ARCEXTRACT, uState, &ex ); } //---------------------------------------------------------------- // 繝代せ讀懈渊邉サ //---------------------------------------------------------------- -alias std.c.windows.windows.IsDBCSLeadByte isDL; -char[] replace_yen( char[] s ) +alias core.sys.windows.windows.IsDBCSLeadByte isDL; +string replace_yen( string s ) { - char[] ans; + string ans; int j=0; for(int i=0; i!=s.length; i=i+(isDL(s[i])?2:1)) if( s[i] == '\\' ) ans~=s[j .. i], ans~='/', j=i+1; - ans ~= s[j .. length]; + ans ~= s[j .. $]; return ans; } -bool wild_match( char[] wild, char[] name ) +bool wild_match( string wild, string name ) { - bool wild_match_nopath( char[] w, char[] s ) + bool wild_match_nopath( string w, string s ) { - char[] advance( char[] s ) + string advance( string s ) { - return s[(IsDBCSLeadByte(s[0])?2:1) .. length]; + return s[(IsDBCSLeadByte(s[0])?2:1) .. $]; } while( w.length>0 ) switch( w[0] ) { @@ -529,12 +522,12 @@ } if( wild=="" || wild=="*.*" || wild=="*" || wild=="**" ) return true; - char[][] wilds = split( replace_yen( tolower(wild) ), "/" ); - char[][] names = split( replace_yen( tolower(name) ), "/" ); + string[] wilds = split( replace_yen( toLower(wild) ), "/" ); + string[] names = split( replace_yen( toLower(name) ), "/" ); if( wilds.length != names.length ) return false; for(int i=0; i!=wilds.length; ++i) if( wilds[i]!="*.*" && wilds[i]!="*" && wilds[i]!="**" ) @@ -541,25 +534,27 @@ if( !wild_match_nopath( wilds[i], names[i] ) ) return false; return true; } -char[] check_path( char[] path ) +string check_path( string in_path ) { + char[] path = in_path.dup; + // C:\ ==> C_\ if( path.length>=2 && path[1]==':' ) - path = path.dup, path[1] = '_'; + path[1] = '_'; // \\hoge ==> hoge // /hoge ==> hoge while( path.length>0 && (path[0]=='\\'||path[0]=='/') ) - path = path[1..length]; + path = path[1..$]; // .. ==> __ - char[][] paths = split( replace_yen(path), "/" ); + string[] paths = split( replace_yen(path.idup), "/" ); L1: - foreach( inout char[] pc ; paths ) + foreach( ref string pc ; paths ) if( pc.length >= 2 ) { foreach( char c ; pc ) if( c != '.' ) continue L1; Index: src/qbga_gui.d ================================================================== --- src/qbga_gui.d +++ src/qbga_gui.d @@ -1,16 +1,16 @@ -サソprivate import std.string; -private import win32.ansi.windows; -private import win32.ansi.commctrl; +サソprivate import win32.windows; +private import win32.commctrl; +private import std.string; private import qbga32; void process_messages() { - for( MSG msg; PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ); ) + for( MSG msg; PeekMessageA( &msg, null, 0, 0, PM_REMOVE ); ) { TranslateMessage( &msg ); - DispatchMessage( &msg ); + DispatchMessageA( &msg ); } } // 螳溯」邯呎価(w @@ -21,11 +21,11 @@ { return handle; } protected: - void on_init() { MessageBox(null,"xxx",null,MB_OK); } + void on_init() { MessageBoxA(null,"xxx",null,MB_OK); } bool on_ok() { return false; } bool on_cancel() { return false; } bool on_command( UINT cmd ) { return false; } bool on_message( UINT msg, WPARAM wp, LPARAM lp ) { return false; } @@ -78,13 +78,13 @@ &static_dlg_proc, cast(LPARAM) cast(Dialog*) this ); } - void set_item_text( int ID, char[] str ) + void set_item_text( int ID, string str ) { - SetDlgItemText( handle, ID, toStringz(str) ); + SetDlgItemTextA( handle, ID, toStringz(str) ); } int send_item_msg( int ID, UINT msg, WPARAM wp=0, LPARAM lp=0 ) { return SendDlgItemMessage( handle, ID, msg, wp, lp ); @@ -104,12 +104,12 @@ this( DLGTEMPLATE* dlg_template, HWND parent ) { BeginModeless( dlg_template, parent ); } - void set_arcname ( char[] str ){ set_item_text( 2006, str ); } - void set_filename( char[] str ){ set_item_text( 2007, str ); } + void set_arcname ( string str ){ set_item_text( 2006, str ); } + void set_filename( string str ){ set_item_text( 2007, str ); } void set_max( real m ) { max = m; } void set_pos( real p ) { send_item_msg(2024,PBM_SETPOS,cast(int)(p/max*65535),0); } bool closed() { Index: src/util.d ================================================================== --- src/util.d +++ src/util.d @@ -1,11 +1,11 @@ -サソprivate import std.string; +サソprivate import win32.windows; +private import std.string; private import std.file; -private import win32.ansi.windows; -char lastChar( char[] s ) - { return *CharPrev(s, cast(char*)s+s.length); } +char lastChar( string s ) + { return *CharPrevA(cast(char*)s.ptr, cast(char*)s.ptr+s.length); } //---------------------------------------------------------------- // int do_opApply!(E, C)( collection, delegate ); // int do_opApply!(E) ( array, delegate ); // forwarding the opApply call to another collection @@ -69,13 +69,13 @@ //---------------------------------------------------------------- // 繧ウ繝槭Φ繝峨Λ繧、繝ウ隗」譫 //---------------------------------------------------------------- -char[][] cmd_parse( char[] str, bool in_resp=false ) +string[] cmd_parse( string str, bool in_resp=false ) { - char[][] ans; + string[] ans; char resp_char = '@'; for(int i=0; i!=str.length; ) { // 遨コ逋ス繧ケ繧ュ繝繝 @@ -83,11 +83,11 @@ ++i; if( i == str.length ) break; // ""繧定諷ョ縺励※荳蛟九ヱ繝ゥ繝。繧ソ蛻繧雁コ縺 - char[] param; + string param; if( str[i] == '"' ) { int j = ++i; while( j!=str.length ) { @@ -110,11 +110,11 @@ // 繝ャ繧ケ繝昴Φ繧ケ繝輔ぃ繧、繝ォ髢「騾」縺ョ蜃ヲ逅 if( !in_resp && param[0]==resp_char ) { try { - char[] rsp = cast(char[]) std.file.read( param[1 .. param.length] ); + string rsp = cast(string) std.file.read( param[1 .. param.length] ); ans ~= cmd_parse(rsp,true); } catch( FileException e ) {} } else if( param.length>=2 && param[0..2]=="--" ) { @@ -130,42 +130,42 @@ //---------------------------------------------------------------- // DOS蠖「蠑上〒繝輔ぃ繧、繝ォ髻ウ譖エ譁ー譎ょ綾繧呈嶌縺肴鋤縺 //---------------------------------------------------------------- -void dosSetFTime( char[] fname, ushort date, ushort time ) +void dosSetFTime( string fname, ushort date, ushort time ) { FILETIME ft,lc; if( DosDateTimeToFileTime( date, time, &lc ) ) if( LocalFileTimeToFileTime( &lc, &ft ) ) { - HANDLE han = CreateFile( toStringz(fname), - GENERIC_READ | GENERIC_WRITE, - FILE_SHARE_READ,NULL, - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, - NULL ); + HANDLE han = CreateFileA( toStringz(fname), + GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ,null, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + null ); if( han==INVALID_HANDLE_VALUE ) return; - SetFileTime( han,&ft,NULL,&ft ); + SetFileTime( han,&ft,null,&ft ); CloseHandle( han ); } } //---------------------------------------------------------------- // 謖螳壽凾蛻サ(DOS蠖「蠑)繧医j譁ー縺励>繝輔ぃ繧、繝ォ縺具シ //---------------------------------------------------------------- -bool newer_than( ushort d1, ushort t1, char[] fname ) +bool newer_than( ushort d1, ushort t1, string fname ) { - HANDLE han = CreateFile( toStringz(fname), - GENERIC_READ | GENERIC_WRITE, - FILE_SHARE_READ,NULL, - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, - NULL ); + HANDLE han = CreateFileA( toStringz(fname), + GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ,null, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + null ); if( han==INVALID_HANDLE_VALUE ) return false; FILETIME ft; GetFileTime( han, null, null, &ft ); CloseHandle( han ); ADDED src/win32/accctrl.d Index: src/win32/accctrl.d ================================================================== --- src/win32/accctrl.d +++ src/win32/accctrl.d @@ -0,0 +1,424 @@ +/***********************************************************************\ +* accctrl.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.accctrl; + +private import win32.basetyps, win32.w32api, win32.winbase, win32.windef; + +// FIXME: check types and grouping of constants +// FIXME: check Windows version support + +static assert (_WIN32_WINNT_ONLY, + "win32.accctrl is available only if version WindowsNTonly, WindowsXP, " + "Windows2003 or WindowsVista is set"); + +alias LocalFree AccFree; + +const uint + ACTRL_RESERVED = 0x00000000, + ACTRL_ACCESS_PROTECTED = 0x00000001, + ACTRL_ACCESS_ALLOWED = 0x00000001, + ACTRL_ACCESS_DENIED = 0x00000002, + ACTRL_AUDIT_SUCCESS = 0x00000004, + ACTRL_AUDIT_FAILURE = 0x00000008, + ACTRL_SYSTEM_ACCESS = 0x04000000, + ACTRL_DELETE = 0x08000000, + ACTRL_READ_CONTROL = 0x10000000, + ACTRL_CHANGE_ACCESS = 0x20000000, + ACTRL_CHANGE_OWNER = 0x40000000, + ACTRL_SYNCHRONIZE = 0x80000000, + ACTRL_STD_RIGHTS_ALL = 0xf8000000; + +const uint + ACTRL_FILE_READ = 0x00000001, + ACTRL_FILE_WRITE = 0x00000002, + ACTRL_FILE_APPEND = 0x00000004, + ACTRL_FILE_READ_PROP = 0x00000008, + ACTRL_FILE_WRITE_PROP = 0x00000010, + ACTRL_FILE_EXECUTE = 0x00000020, + ACTRL_FILE_READ_ATTRIB = 0x00000080, + ACTRL_FILE_WRITE_ATTRIB = 0x00000100, + ACTRL_FILE_CREATE_PIPE = 0x00000200; + +const uint + ACTRL_DIR_LIST = 0x00000001, + ACTRL_DIR_CREATE_OBJECT = 0x00000002, + ACTRL_DIR_CREATE_CHILD = 0x00000004, + ACTRL_DIR_DELETE_CHILD = 0x00000040, + ACTRL_DIR_TRAVERSE = 0x00000020; + +const uint + ACTRL_KERNEL_TERMINATE = 0x00000001, + ACTRL_KERNEL_THREAD = 0x00000002, + ACTRL_KERNEL_VM = 0x00000004, + ACTRL_KERNEL_VM_READ = 0x00000008, + ACTRL_KERNEL_VM_WRITE = 0x00000010, + ACTRL_KERNEL_DUP_HANDLE = 0x00000020, + ACTRL_KERNEL_PROCESS = 0x00000040, + ACTRL_KERNEL_SET_INFO = 0x00000080, + ACTRL_KERNEL_GET_INFO = 0x00000100, + ACTRL_KERNEL_CONTROL = 0x00000200, + ACTRL_KERNEL_ALERT = 0x00000400, + ACTRL_KERNEL_GET_CONTEXT = 0x00000800, + ACTRL_KERNEL_SET_CONTEXT = 0x00001000, + ACTRL_KERNEL_TOKEN = 0x00002000, + ACTRL_KERNEL_IMPERSONATE = 0x00004000, + ACTRL_KERNEL_DIMPERSONATE = 0x00008000; + +const uint + ACTRL_PRINT_SADMIN = 0x00000001, + ACTRL_PRINT_SLIST = 0x00000002, + ACTRL_PRINT_PADMIN = 0x00000004, + ACTRL_PRINT_PUSE = 0x00000008, + ACTRL_PRINT_JADMIN = 0x00000010; + +const uint + ACTRL_SVC_GET_INFO = 0x00000001, + ACTRL_SVC_SET_INFO = 0x00000002, + ACTRL_SVC_STATUS = 0x00000004, + ACTRL_SVC_LIST = 0x00000008, + ACTRL_SVC_START = 0x00000010, + ACTRL_SVC_STOP = 0x00000020, + ACTRL_SVC_PAUSE = 0x00000040, + ACTRL_SVC_INTERROGATE = 0x00000080, + ACTRL_SVC_UCONTROL = 0x00000100; + +const uint + ACTRL_REG_QUERY = 0x00000001, + ACTRL_REG_SET = 0x00000002, + ACTRL_REG_CREATE_CHILD = 0x00000004, + ACTRL_REG_LIST = 0x00000008, + ACTRL_REG_NOTIFY = 0x00000010, + ACTRL_REG_LINK = 0x00000020; + +const uint + ACTRL_WIN_CLIPBRD = 0x00000001, + ACTRL_WIN_GLOBAL_ATOMS = 0x00000002, + ACTRL_WIN_CREATE = 0x00000004, + ACTRL_WIN_LIST_DESK = 0x00000008, + ACTRL_WIN_LIST = 0x00000010, + ACTRL_WIN_READ_ATTRIBS = 0x00000020, + ACTRL_WIN_WRITE_ATTRIBS = 0x00000040, + ACTRL_WIN_SCREEN = 0x00000080, + ACTRL_WIN_EXIT = 0x00000100; + +enum : uint { + ACTRL_ACCESS_NO_OPTIONS = 0x00000000, + ACTRL_ACCESS_SUPPORTS_OBJECT_ENTRIES = 0x00000001 +} + +const TCHAR[] ACCCTRL_DEFAULT_PROVIDER = "Windows NT Access Provider"; + +const uint + TRUSTEE_ACCESS_ALLOWED = 0x00000001, + TRUSTEE_ACCESS_READ = 0x00000002, + TRUSTEE_ACCESS_WRITE = 0x00000004, + TRUSTEE_ACCESS_EXPLICIT = 0x00000001, + TRUSTEE_ACCESS_READ_WRITE = 0x00000006, + TRUSTEE_ACCESS_ALL = 0xFFFFFFFF; + +const uint + NO_INHERITANCE = 0x0, + SUB_OBJECTS_ONLY_INHERIT = 0x1, + SUB_CONTAINERS_ONLY_INHERIT = 0x2, + SUB_CONTAINERS_AND_OBJECTS_INHERIT = 0x3, + INHERIT_NO_PROPAGATE = 0x4, + INHERIT_ONLY = 0x8, + INHERITED_ACCESS_ENTRY = 0x10, + INHERITED_PARENT = 0x10000000, + INHERITED_GRANDPARENT = 0x20000000; + +alias ULONG INHERIT_FLAGS, ACCESS_RIGHTS; +alias ULONG* PINHERIT_FLAGS, PACCESS_RIGHTS; + +enum ACCESS_MODE { + NOT_USED_ACCESS, + GRANT_ACCESS, + SET_ACCESS, + DENY_ACCESS, + REVOKE_ACCESS, + SET_AUDIT_SUCCESS, + SET_AUDIT_FAILURE +} + +enum SE_OBJECT_TYPE { + SE_UNKNOWN_OBJECT_TYPE, + SE_FILE_OBJECT, + SE_SERVICE, + SE_PRINTER, + SE_REGISTRY_KEY, + SE_LMSHARE, + SE_KERNEL_OBJECT, + SE_WINDOW_OBJECT, + SE_DS_OBJECT, + SE_DS_OBJECT_ALL, + SE_PROVIDER_DEFINED_OBJECT, + SE_WMIGUID_OBJECT, + SE_REGISTRY_WOW64_32KEY +} + +enum TRUSTEE_TYPE { + TRUSTEE_IS_UNKNOWN, + TRUSTEE_IS_USER, + TRUSTEE_IS_GROUP, + TRUSTEE_IS_DOMAIN, + TRUSTEE_IS_ALIAS, + TRUSTEE_IS_WELL_KNOWN_GROUP, + TRUSTEE_IS_DELETED, + TRUSTEE_IS_INVALID, + TRUSTEE_IS_COMPUTER +} + +enum TRUSTEE_FORM { + TRUSTEE_IS_SID, + TRUSTEE_IS_NAME, + TRUSTEE_BAD_FORM, + TRUSTEE_IS_OBJECTS_AND_SID, + TRUSTEE_IS_OBJECTS_AND_NAME +} + +enum MULTIPLE_TRUSTEE_OPERATION { + NO_MULTIPLE_TRUSTEE, + TRUSTEE_IS_IMPERSONATE +} + +struct TRUSTEE_A { + TRUSTEE_A* pMultipleTrustee; + MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation; + TRUSTEE_FORM TrusteeForm; + TRUSTEE_TYPE TrusteeType; + LPSTR ptstrName; +} +alias TRUSTEE_A TRUSTEEA; +alias TRUSTEE_A* PTRUSTEE_A, PTRUSTEEA; + +struct TRUSTEE_W { + TRUSTEE_W* pMultipleTrustee; + MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation; + TRUSTEE_FORM TrusteeForm; + TRUSTEE_TYPE TrusteeType; + LPWSTR ptstrName; +} +alias TRUSTEE_W TRUSTEEW; +alias TRUSTEEW* PTRUSTEE_W, PTRUSTEEW; + +struct ACTRL_ACCESS_ENTRYA { + TRUSTEE_A Trustee; + ULONG fAccessFlags; + ACCESS_RIGHTS Access; + ACCESS_RIGHTS ProvSpecificAccess; + INHERIT_FLAGS Inheritance; + LPCSTR lpInheritProperty; +} +alias ACTRL_ACCESS_ENTRYA* PACTRL_ACCESS_ENTRYA; + +struct ACTRL_ACCESS_ENTRYW { + TRUSTEE_W Trustee; + ULONG fAccessFlags; + ACCESS_RIGHTS Access; + ACCESS_RIGHTS ProvSpecificAccess; + INHERIT_FLAGS Inheritance; + LPCWSTR lpInheritProperty; +} +alias ACTRL_ACCESS_ENTRYW* PACTRL_ACCESS_ENTRYW; + +struct ACTRL_ACCESS_ENTRY_LISTA { + ULONG cEntries; + ACTRL_ACCESS_ENTRYA* pAccessList; +} +alias ACTRL_ACCESS_ENTRY_LISTA* PACTRL_ACCESS_ENTRY_LISTA; + +struct ACTRL_ACCESS_ENTRY_LISTW { + ULONG cEntries; + ACTRL_ACCESS_ENTRYW* pAccessList; +} +alias ACTRL_ACCESS_ENTRY_LISTW* PACTRL_ACCESS_ENTRY_LISTW; + +struct ACTRL_PROPERTY_ENTRYA { + LPCSTR lpProperty; + PACTRL_ACCESS_ENTRY_LISTA pAccessEntryList; + ULONG fListFlags; +} +alias ACTRL_PROPERTY_ENTRYA* PACTRL_PROPERTY_ENTRYA; + +struct ACTRL_PROPERTY_ENTRYW { + LPCWSTR lpProperty; + PACTRL_ACCESS_ENTRY_LISTW pAccessEntryList; + ULONG fListFlags; +} +alias ACTRL_PROPERTY_ENTRYW* PACTRL_PROPERTY_ENTRYW; + +struct ACTRL_ACCESSA { + ULONG cEntries; + PACTRL_PROPERTY_ENTRYA pPropertyAccessList; +} +alias ACTRL_ACCESSA ACTRL_AUDITA; +alias ACTRL_ACCESSA* PACTRL_ACCESSA, PACTRL_AUDITA; + +struct ACTRL_ACCESSW { + ULONG cEntries; + PACTRL_PROPERTY_ENTRYW pPropertyAccessList; +} +alias ACTRL_ACCESSW ACTRL_AUDITW; +alias ACTRL_ACCESSW* PACTRL_ACCESSW, PACTRL_AUDITW; + +struct TRUSTEE_ACCESSA { + LPSTR lpProperty; + ACCESS_RIGHTS Access; + ULONG fAccessFlags; + ULONG fReturnedAccess; +} +alias TRUSTEE_ACCESSA* PTRUSTEE_ACCESSA; + +struct TRUSTEE_ACCESSW { + LPWSTR lpProperty; + ACCESS_RIGHTS Access; + ULONG fAccessFlags; + ULONG fReturnedAccess; +} +alias TRUSTEE_ACCESSW* PTRUSTEE_ACCESSW; + +struct ACTRL_OVERLAPPED { + union { + PVOID Provider; + ULONG Reserved1; + } + ULONG Reserved2; + HANDLE hEvent; +} +alias ACTRL_OVERLAPPED* PACTRL_OVERLAPPED; + +struct ACTRL_ACCESS_INFOA { + ULONG fAccessPermission; + LPSTR lpAccessPermissionName; +} +alias ACTRL_ACCESS_INFOA* PACTRL_ACCESS_INFOA; + +struct ACTRL_ACCESS_INFOW { + ULONG fAccessPermission; + LPWSTR lpAccessPermissionName; +} +alias ACTRL_ACCESS_INFOW* PACTRL_ACCESS_INFOW; + +struct ACTRL_CONTROL_INFOA { + LPSTR lpControlId; + LPSTR lpControlName; +} +alias ACTRL_CONTROL_INFOA* PACTRL_CONTROL_INFOA; + +struct ACTRL_CONTROL_INFOW { + LPWSTR lpControlId; + LPWSTR lpControlName; +} +alias ACTRL_CONTROL_INFOW* PACTRL_CONTROL_INFOW; + +struct EXPLICIT_ACCESS_A { + DWORD grfAccessPermissions; + ACCESS_MODE grfAccessMode; + DWORD grfInheritance; + TRUSTEE_A Trustee; +} +alias EXPLICIT_ACCESS_A EXPLICIT_ACCESSA; +alias EXPLICIT_ACCESS_A* PEXPLICIT_ACCESS_A, PEXPLICIT_ACCESSA; + +struct EXPLICIT_ACCESS_W { + DWORD grfAccessPermissions; + ACCESS_MODE grfAccessMode; + DWORD grfInheritance; + TRUSTEE_W Trustee; +} +alias EXPLICIT_ACCESS_W EXPLICIT_ACCESSW; +alias EXPLICIT_ACCESS_W* PEXPLICIT_ACCESS_W, PEXPLICIT_ACCESSW; + +struct OBJECTS_AND_SID { + DWORD ObjectsPresent; + GUID ObjectTypeGuid; + GUID InheritedObjectTypeGuid; + SID* pSid; +} +alias OBJECTS_AND_SID* POBJECTS_AND_SID; + +struct OBJECTS_AND_NAME_A { + DWORD ObjectsPresent; + SE_OBJECT_TYPE ObjectType; + LPSTR ObjectTypeName; + LPSTR InheritedObjectTypeName; + LPSTR ptstrName; +} +alias OBJECTS_AND_NAME_A* POBJECTS_AND_NAME_A; + +struct OBJECTS_AND_NAME_W { + DWORD ObjectsPresent; + SE_OBJECT_TYPE ObjectType; + LPWSTR ObjectTypeName; + LPWSTR InheritedObjectTypeName; + LPWSTR ptstrName; +} +alias OBJECTS_AND_NAME_W* POBJECTS_AND_NAME_W; + +static if (WINVER >= 0x501) { + struct INHERITED_FROMA { + LONG GenerationGap; + LPSTR AncestorName; + } + alias INHERITED_FROMA* PINHERITED_FROMA; + + struct INHERITED_FROMW { + LONG GenerationGap; + LPWSTR AncestorName; + } + alias INHERITED_FROMW* PINHERITED_FROMW; +} + +version (Unicode) { + alias TRUSTEEW TRUSTEE; + alias ACTRL_ACCESSW ACTRL_ACCESS; + alias ACTRL_ACCESS_ENTRY_LISTW ACTRL_ACCESS_ENTRY_LIST; + alias ACTRL_ACCESS_INFOW ACTRL_ACCESS_INFO; + alias ACTRL_ACCESS_ENTRYW ACTRL_ACCESS_ENTRY; + alias ACTRL_AUDITW ACTRL_AUDIT; + alias ACTRL_CONTROL_INFOW ACTRL_CONTROL_INFO; + alias EXPLICIT_ACCESSW EXPLICIT_ACCESS; + alias TRUSTEE_ACCESSW TRUSTEE_ACCESS; + alias OBJECTS_AND_NAME_W OBJECTS_AND_NAME_; + static if (WINVER >= 0x501) { + alias INHERITED_FROMW INHERITED_FROM; + } +} else { + alias TRUSTEEA TRUSTEE; + alias ACTRL_ACCESSA ACTRL_ACCESS; + alias ACTRL_ACCESS_ENTRY_LISTA ACTRL_ACCESS_ENTRY_LIST; + alias ACTRL_ACCESS_INFOA ACTRL_ACCESS_INFO; + alias ACTRL_ACCESS_ENTRYA ACTRL_ACCESS_ENTRY; + alias ACTRL_AUDITA ACTRL_AUDIT; + alias ACTRL_CONTROL_INFOA ACTRL_CONTROL_INFO; + alias EXPLICIT_ACCESSA EXPLICIT_ACCESS; + alias TRUSTEE_ACCESSA TRUSTEE_ACCESS; + alias OBJECTS_AND_NAME_A OBJECTS_AND_NAME_; + static if (WINVER >= 0x501) { + alias INHERITED_FROMA INHERITED_FROM; + } +} + +alias TRUSTEE TRUSTEE_; +alias TRUSTEE* PTRUSTEE, PTRUSTEE_; +alias ACTRL_ACCESS* PACTRL_ACCESS; +alias ACTRL_ACCESS_ENTRY_LIST* PACTRL_ACCESS_ENTRY_LIST; +alias ACTRL_ACCESS_INFO* PACTRL_ACCESS_INFO; +alias ACTRL_ACCESS_ENTRY* PACTRL_ACCESS_ENTRY; +alias ACTRL_AUDIT* PACTRL_AUDIT; +alias ACTRL_CONTROL_INFO* PACTRL_CONTROL_INFO; +alias EXPLICIT_ACCESS EXPLICIT_ACCESS_; +alias EXPLICIT_ACCESS* PEXPLICIT_ACCESS, PEXPLICIT_ACCESS_; +alias TRUSTEE_ACCESS* PTRUSTEE_ACCESS; +alias OBJECTS_AND_NAME_* POBJECTS_AND_NAME_; +static if (WINVER >= 0x501) { + alias INHERITED_FROM* PINHERITED_FROM; +} ADDED src/win32/aclapi.d Index: src/win32/aclapi.d ================================================================== --- src/win32/aclapi.d +++ src/win32/aclapi.d @@ -0,0 +1,141 @@ +/***********************************************************************\ +* aclapi.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.aclapi; +pragma(lib, "advapi32.lib"); + +import win32.windows, win32.accctrl; + +static assert (_WIN32_WINNT_ONLY, + "win32.aclapi is available only if version WindowsNTonly, WindowsXP, " + "Windows2003 or WindowsVista is set"); + +extern (Windows) { + VOID BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A, LPSTR, DWORD, + ACCESS_MODE, DWORD); + VOID BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W, LPWSTR, DWORD, + ACCESS_MODE, DWORD); + DWORD BuildSecurityDescriptorA(PTRUSTEE_A, PTRUSTEE_A , ULONG, + PEXPLICIT_ACCESS_A, ULONG, PEXPLICIT_ACCESS_A, PSECURITY_DESCRIPTOR, + PULONG, PSECURITY_DESCRIPTOR*); + DWORD BuildSecurityDescriptorW(PTRUSTEE_W, PTRUSTEE_W , ULONG, + PEXPLICIT_ACCESS_W, ULONG, PEXPLICIT_ACCESS_W, PSECURITY_DESCRIPTOR, + PULONG, PSECURITY_DESCRIPTOR*); + VOID BuildTrusteeWithNameA(PTRUSTEE_A, LPSTR); + VOID BuildTrusteeWithNameW(PTRUSTEE_W, LPWSTR); + VOID BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A, POBJECTS_AND_NAME_A, + SE_OBJECT_TYPE, LPSTR, LPSTR, LPSTR); + VOID BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W, POBJECTS_AND_NAME_W, + SE_OBJECT_TYPE, LPWSTR, LPWSTR, LPWSTR); + VOID BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A, POBJECTS_AND_SID, + GUID*, GUID*, PSID); + VOID BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W, POBJECTS_AND_SID, + GUID*, GUID*, PSID); + VOID BuildTrusteeWithSidA(PTRUSTEE_A, PSID); + VOID BuildTrusteeWithSidW(PTRUSTEE_W, PSID); + DWORD GetAuditedPermissionsFromAclA(PACL, PTRUSTEE_A, PACCESS_MASK, + PACCESS_MASK); + DWORD GetAuditedPermissionsFromAclW(PACL, PTRUSTEE_W, PACCESS_MASK, + PACCESS_MASK); + DWORD GetEffectiveRightsFromAclA(PACL, PTRUSTEE_A, PACCESS_MASK); + DWORD GetEffectiveRightsFromAclW(PACL, PTRUSTEE_W, PACCESS_MASK); + DWORD GetExplicitEntriesFromAclA(PACL, PULONG, PEXPLICIT_ACCESS_A*); + DWORD GetExplicitEntriesFromAclW(PACL, PULONG, PEXPLICIT_ACCESS_W*); + static if (WINVER >= 0x501) { + DWORD GetInheritanceSourceA(LPSTR, SE_OBJECT_TYPE, + SECURITY_INFORMATION, BOOL, GUID**, DWORD, PACL, void*, + PGENERIC_MAPPING, PINHERITED_FROMA); + DWORD GetInheritanceSourceW(LPWSTR, SE_OBJECT_TYPE, + SECURITY_INFORMATION, BOOL, GUID**, DWORD, PACL, void*, + PGENERIC_MAPPING, PINHERITED_FROMW); + } + DWORD GetNamedSecurityInfoA(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, + PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*); + DWORD GetNamedSecurityInfoW(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, + PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*); + DWORD GetSecurityInfo(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION, + PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*); + TRUSTEE_FORM GetTrusteeFormA(PTRUSTEE_A); + TRUSTEE_FORM GetTrusteeFormW(PTRUSTEE_W); + LPSTR GetTrusteeNameA(PTRUSTEE_A); + LPWSTR GetTrusteeNameW(PTRUSTEE_W); + TRUSTEE_TYPE GetTrusteeTypeA(PTRUSTEE_A); + TRUSTEE_TYPE GetTrusteeTypeW(PTRUSTEE_W); + DWORD LookupSecurityDescriptorPartsA(PTRUSTEE_A*, PTRUSTEE_A*, PULONG, + PEXPLICIT_ACCESS_A*, PULONG, PEXPLICIT_ACCESS_A*, + PSECURITY_DESCRIPTOR); + DWORD LookupSecurityDescriptorPartsW(PTRUSTEE_W*, PTRUSTEE_W*, PULONG, + PEXPLICIT_ACCESS_W*, PULONG, PEXPLICIT_ACCESS_W*, + PSECURITY_DESCRIPTOR); + DWORD SetEntriesInAclA(ULONG, PEXPLICIT_ACCESS_A, PACL, PACL*); + DWORD SetEntriesInAclW(ULONG, PEXPLICIT_ACCESS_W, PACL, PACL*); + DWORD SetNamedSecurityInfoA(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, + PSID, PSID, PACL, PACL); + DWORD SetNamedSecurityInfoW(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, + PSID, PSID, PACL, PACL); + DWORD SetSecurityInfo(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, + PSID, PACL, PACL); + VOID BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A, LPSTR, + PTRUSTEE_A, DWORD, ACCESS_MODE, DWORD); + VOID BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W, LPWSTR, + PTRUSTEE_W, DWORD, ACCESS_MODE, DWORD); + VOID BuildImpersonateTrusteeA(PTRUSTEE_A, PTRUSTEE_A); + VOID BuildImpersonateTrusteeW(PTRUSTEE_W, PTRUSTEE_W); + PTRUSTEE_A GetMultipleTrusteeA(PTRUSTEE_A); + PTRUSTEE_W GetMultipleTrusteeW(PTRUSTEE_W); + MULTIPLE_TRUSTEE_OPERATION GetMultipleTrusteeOperationA(PTRUSTEE_A); + MULTIPLE_TRUSTEE_OPERATION GetMultipleTrusteeOperationW(PTRUSTEE_W); +} + +version (Unicode) { + alias BuildExplicitAccessWithNameW BuildExplicitAccessWithName; + alias BuildSecurityDescriptorW BuildSecurityDescriptor; + alias BuildTrusteeWithNameW BuildTrusteeWithName; + alias BuildTrusteeWithObjectsAndNameW BuildTrusteeWithObjectsAndName; + alias BuildTrusteeWithObjectsAndSidW BuildTrusteeWithObjectsAndSid; + alias BuildTrusteeWithSidW BuildTrusteeWithSid; + alias GetAuditedPermissionsFromAclW GetAuditedPermissionsFromAcl; + alias GetEffectiveRightsFromAclW GetEffectiveRightsFromAcl; + alias GetExplicitEntriesFromAclW GetExplicitEntriesFromAcl; + alias GetNamedSecurityInfoW GetNamedSecurityInfo; + alias GetTrusteeFormW GetTrusteeForm; + alias GetTrusteeNameW GetTrusteeName; + alias GetTrusteeTypeW GetTrusteeType; + alias LookupSecurityDescriptorPartsW LookupSecurityDescriptorParts; + alias SetEntriesInAclW SetEntriesInAcl; + alias SetNamedSecurityInfoW SetNamedSecurityInfo; + alias BuildImpersonateExplicitAccessWithNameW + BuildImpersonateExplicitAccessWithName; + alias BuildImpersonateTrusteeW BuildImpersonateTrustee; + alias GetMultipleTrusteeW GetMultipleTrustee; + alias GetMultipleTrusteeOperationW GetMultipleTrusteeOperation; +} else { + alias BuildExplicitAccessWithNameA BuildExplicitAccessWithName; + alias BuildSecurityDescriptorA BuildSecurityDescriptor; + alias BuildTrusteeWithNameA BuildTrusteeWithName; + alias BuildTrusteeWithObjectsAndNameA BuildTrusteeWithObjectsAndName; + alias BuildTrusteeWithObjectsAndSidA BuildTrusteeWithObjectsAndSid; + alias BuildTrusteeWithSidA BuildTrusteeWithSid; + alias GetAuditedPermissionsFromAclA GetAuditedPermissionsFromAcl; + alias GetEffectiveRightsFromAclA GetEffectiveRightsFromAcl; + alias GetExplicitEntriesFromAclA GetExplicitEntriesFromAcl; + alias GetNamedSecurityInfoA GetNamedSecurityInfo; + alias GetTrusteeFormA GetTrusteeForm; + alias GetTrusteeNameA GetTrusteeName; + alias GetTrusteeTypeA GetTrusteeType; + alias LookupSecurityDescriptorPartsA LookupSecurityDescriptorParts; + alias SetEntriesInAclA SetEntriesInAcl; + alias SetNamedSecurityInfoA SetNamedSecurityInfo; + alias BuildImpersonateExplicitAccessWithNameA + BuildImpersonateExplicitAccessWithName; + alias BuildImpersonateTrusteeA BuildImpersonateTrustee; + alias GetMultipleTrusteeA GetMultipleTrustee; + alias GetMultipleTrusteeOperationA GetMultipleTrusteeOperation; +} ADDED src/win32/aclui.d Index: src/win32/aclui.d ================================================================== --- src/win32/aclui.d +++ src/win32/aclui.d @@ -0,0 +1,120 @@ +/***********************************************************************\ +* aclui.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.10 * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.aclui; +pragma(lib, "aclui.lib"); + +private import win32.w32api; + +static assert (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500, + "win32.aclui is available only if version WindowsXP, Windows2003 " + "or WindowsVista is set, or both Windows2000 and WindowsNTonly are set"); + +import win32.accctrl, win32.commctrl, win32.objbase; +private import win32.basetyps, win32.prsht, win32.unknwn, win32.windef, + win32.winuser; + + +struct SI_OBJECT_INFO { + DWORD dwFlags; + HINSTANCE hInstance; + LPWSTR pszServerName; + LPWSTR pszObjectName; + LPWSTR pszPageTitle; + GUID guidObjectType; +} +alias SI_OBJECT_INFO* PSI_OBJECT_INFO; + +// values for SI_OBJECT_INFO.dwFlags +const DWORD + SI_EDIT_PERMS = 0x00000000, + SI_EDIT_OWNER = 0x00000001, + SI_EDIT_AUDITS = 0x00000002, + SI_CONTAINER = 0x00000004, + SI_READONLY = 0x00000008, + SI_ADVANCED = 0x00000010, + SI_RESET = 0x00000020, + SI_OWNER_READONLY = 0x00000040, + SI_EDIT_PROPERTIES = 0x00000080, + SI_OWNER_RECURSE = 0x00000100, + SI_NO_ACL_PROTECT = 0x00000200, + SI_NO_TREE_APPLY = 0x00000400, + SI_PAGE_TITLE = 0x00000800, + SI_SERVER_IS_DC = 0x00001000, + SI_RESET_DACL_TREE = 0x00004000, + SI_RESET_SACL_TREE = 0x00008000, + SI_OBJECT_GUID = 0x00010000, + SI_EDIT_EFFECTIVE = 0x00020000, + SI_RESET_DACL = 0x00040000, + SI_RESET_SACL = 0x00080000, + SI_RESET_OWNER = 0x00100000, + SI_NO_ADDITIONAL_PERMISSION = 0x00200000, + SI_MAY_WRITE = 0x10000000, + SI_EDIT_ALL = SI_EDIT_PERMS | SI_EDIT_OWNER + | SI_EDIT_AUDITS; + +struct SI_ACCESS { + CPtr!(GUID) pguid; + ACCESS_MASK mask; + LPCWSTR pszName; + DWORD dwFlags; +} +alias SI_ACCESS* PSI_ACCESS; + +// values for SI_ACCESS.dwFlags +const DWORD + SI_ACCESS_SPECIFIC = 0x00010000, + SI_ACCESS_GENERAL = 0x00020000, + SI_ACCESS_CONTAINER = 0x00040000, + SI_ACCESS_PROPERTY = 0x00080000; + + +struct SI_INHERIT_TYPE { + CPtr!(GUID) pguid; + ULONG dwFlags; + LPCWSTR pszName; +} +alias SI_INHERIT_TYPE* PSI_INHERIT_TYPE; + +/* values for SI_INHERIT_TYPE.dwFlags + INHERIT_ONLY_ACE, CONTAINER_INHERIT_ACE, OBJECT_INHERIT_ACE + defined elsewhere */ + +enum SI_PAGE_TYPE { + SI_PAGE_PERM, + SI_PAGE_ADVPERM, + SI_PAGE_AUDIT, + SI_PAGE_OWNER +} + +const uint PSPCB_SI_INITDIALOG = WM_USER + 1; + +interface ISecurityInformation : IUnknown { + HRESULT GetObjectInformation(PSI_OBJECT_INFO); + HRESULT GetSecurity(SECURITY_INFORMATION, PSECURITY_DESCRIPTOR*, BOOL); + HRESULT SetSecurity(SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); + HRESULT GetAccessRights(CPtr!(GUID), DWORD, PSI_ACCESS*, ULONG*, ULONG*); + HRESULT MapGeneric(CPtr!(GUID), UCHAR*, ACCESS_MASK*); + HRESULT GetInheritTypes(PSI_INHERIT_TYPE*, ULONG*); + HRESULT PropertySheetPageCallback(HWND, UINT, SI_PAGE_TYPE); +} +alias ISecurityInformation* LPSECURITYINFO; + +/* Comment from MinGW + * TODO: ISecurityInformation2, IEffectivePermission, ISecurityObjectTypeInfo + */ + +// FIXME: linkage attribute? +extern (C) /+DECLSPEC_IMPORT+/ extern const IID IID_ISecurityInformation; + +extern (Windows) { + HPROPSHEETPAGE CreateSecurityPage(LPSECURITYINFO psi); + BOOL EditSecurity(HWND hwndOwner, LPSECURITYINFO psi); +} DELETED src/win32/ansi/commctrl.d Index: src/win32/ansi/commctrl.d ================================================================== --- src/win32/ansi/commctrl.d +++ src/win32/ansi/commctrl.d @@ -1,7600 +0,0 @@ -module win32.ansi.commctrl; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.winuser; -alias void _PSP; -alias void _IMAGELIST; -alias void _TREEITEM; -alias LPTBSAVEPARAMW LPTBSAVEPARAMSW; -alias PCCOMBOEXITEMA PCCOMBOBOXEXITEMA; -alias PCCOMBOEXITEMW PCCOMBOBOXEXITEMW; -enum : uint { - NM_FIRST = 0, - SB_SETTIPTEXTA = WM_USER + 16, - SB_SETTIPTEXTW = WM_USER + 17, - SB_GETTIPTEXTA = WM_USER + 18, - SB_GETTIPTEXTW = WM_USER + 19, - TVHT_ONITEMSTATEICON = 0x0040, - CBEN_FIRST = 0U - 800U, - CBEN_GETDISPINFOA = CBEN_FIRST - 0, - CBEN_GETDISPINFOW = CBEN_FIRST - 7 -} -// inline #include -// ---- - -// #ifndef _PRSHT_H_ -// #define _PRSHT_H_ - -// #ifndef _WINRESRC_ -// #ifndef _WIN32_IE -// #... -// #else -// #if (_WIN32_IE < 0x0400) && defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0500) -// #... -// #endif -// #endif -// #endif - -// #ifndef WINCOMMCTRLAPI -// #if !defined(_COMCTL32_) && defined(_WIN32) -// #define WINCOMMCTRLAPI DECLSPEC_IMPORT -// #else -// #... -// #endif -// #endif // WINCOMMCTRLAPI - -// #ifndef CCSIZEOF_STRUCT -// #define CCSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member)) -// #endif - -// #ifndef DUMMYUNIONNAME -// #ifdef NONAMELESSUNION -// #... -// #... -// #... -// #... -// #... -// #else -// #define DUMMYUNIONNAME -// #define DUMMYUNIONNAME2 -// #define DUMMYUNIONNAME3 -// #define DUMMYUNIONNAME4 -// #define DUMMYUNIONNAME5 -// #endif -// #endif // DUMMYUNIONNAME - -// #ifdef _WIN64 -// #... -// #else -align(4): -// #endif - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #ifndef SNDMSG -// #ifdef __cplusplus -// #ifndef _MAC -// #define SNDMSG ::SendMessage -// #else -// #... -// #endif -// #else -// #ifndef _MAC -// #... -// #else -// #... -// #endif -// #endif -// #endif // ifndef SNDMSG - -enum : uint { MAXPROPPAGES = 100 } - -// struct _PSP; -alias _PSP* HPROPSHEETPAGE; - -// #ifndef MIDL_PASS -// struct _PROPSHEETPAGEA; -// struct _PROPSHEETPAGEW; -// #endif - -extern(Windows) alias UINT function(HWND hwnd, UINT uMsg, _PROPSHEETPAGEA *ppsp) LPFNPSPCALLBACKA; -extern(Windows) alias UINT function(HWND hwnd, UINT uMsg, _PROPSHEETPAGEW *ppsp) LPFNPSPCALLBACKW; - -// #ifdef UNICODE -// #... -// #else -alias LPFNPSPCALLBACKA LPFNPSPCALLBACK; -// #endif - -enum : uint { PSP_DEFAULT = 0x00000000 } -enum : uint { PSP_DLGINDIRECT = 0x00000001 } -enum : uint { PSP_USEHICON = 0x00000002 } -enum : uint { PSP_USEICONID = 0x00000004 } -enum : uint { PSP_USETITLE = 0x00000008 } -enum : uint { PSP_RTLREADING = 0x00000010 } - -enum : uint { PSP_HASHELP = 0x00000020 } -enum : uint { PSP_USEREFPARENT = 0x00000040 } -enum : uint { PSP_USECALLBACK = 0x00000080 } -enum : uint { PSP_PREMATURE = 0x00000400 } - -// #if (_WIN32_IE >= 0x0400) - -enum : uint { PSP_HIDEHEADER = 0x00000800 } -enum : uint { PSP_USEHEADERTITLE = 0x00001000 } -enum : uint { PSP_USEHEADERSUBTITLE = 0x00002000 } - -// #endif -// #if (_WIN32_WINNT >= 0x0501) || ISOLATION_AWARE_ENABLED -enum : uint { PSP_USEFUSIONCONTEXT = 0x00004000 } -// #endif - -// #if (_WIN32_IE >= 0x0500) -enum : uint { PSPCB_ADDREF = 0 } -// #endif -enum : uint { PSPCB_RELEASE = 1 } -enum : uint { PSPCB_CREATE = 2 } - -// #define PROPSHEETPAGEA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEA, pcRefParent) -// #define PROPSHEETPAGEW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEW, pcRefParent) - -// #define PROPSHEETPAGEA_V2_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEA, pszHeaderSubTitle) -// #define PROPSHEETPAGEW_V2_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEW, pszHeaderSubTitle) - -// #ifdef _WIN32 -alias LPCDLGTEMPLATE PROPSHEETPAGE_RESOURCE; -// #else -// ... -// #endif - -// #define PROPSHEETPAGEA_V1_FIELDS DWORD dwSize; DWORD dwFlags; HINSTANCE hInstance; union { LPCSTR pszTemplate; PROPSHEETPAGE_RESOURCE pResource; } DUMMYUNIONNAME; union { HICON hIcon; LPCSTR pszIcon; } DUMMYUNIONNAME2; LPCSTR pszTitle; DLGPROC pfnDlgProc; LPARAM lParam; LPFNPSPCALLBACKA pfnCallback; UINT *pcRefParent; -// #define PROPSHEETPAGEW_V1_FIELDS DWORD dwSize; DWORD dwFlags; HINSTANCE hInstance; union { LPCWSTR pszTemplate; PROPSHEETPAGE_RESOURCE pResource; } DUMMYUNIONNAME; union { HICON hIcon; LPCWSTR pszIcon; } DUMMYUNIONNAME2; LPCWSTR pszTitle; DLGPROC pfnDlgProc; LPARAM lParam; LPFNPSPCALLBACKW pfnCallback; UINT *pcRefParent; -// #if (_WIN32_WINNT >= 0x0501) || ISOLATION_AWARE_ENABLED -alias _PROPSHEETPAGEA_V3 _PROPSHEETPAGEA; -alias _PROPSHEETPAGEW_V3 _PROPSHEETPAGEW; -// #elif (_WIN32_IE >= 0x0400) -// #... -// #... -// #else -// #... -// #... -// #endif - -struct _PROPSHEETPAGEA_V1 { - DWORD dwSize; - DWORD dwFlags; - HINSTANCE hInstance; - union { - LPCSTR pszTemplate; - PROPSHEETPAGE_RESOURCE pResource; - } - union { - HICON hIcon; - LPCSTR pszIcon; - } - LPCSTR pszTitle; - DLGPROC pfnDlgProc; - LPARAM lParam; - LPFNPSPCALLBACKA pfnCallback; - UINT* pcRefParent; -} -alias _PROPSHEETPAGEA_V1 PROPSHEETPAGEA_V1; -alias _PROPSHEETPAGEA_V1* LPPROPSHEETPAGEA_V1; - -alias PROPSHEETPAGEA_V1* LPCPROPSHEETPAGEA_V1; - -struct _PROPSHEETPAGEA_V2 { - DWORD dwSize; - DWORD dwFlags; - HINSTANCE hInstance; - union { - LPCSTR pszTemplate; - PROPSHEETPAGE_RESOURCE pResource; - } - union { - HICON hIcon; - LPCSTR pszIcon; - } - LPCSTR pszTitle; - DLGPROC pfnDlgProc; - LPARAM lParam; - LPFNPSPCALLBACKA pfnCallback; - UINT* pcRefParent; - - LPCSTR pszHeaderTitle; - LPCSTR pszHeaderSubTitle; -} -alias _PROPSHEETPAGEA_V2 PROPSHEETPAGEA_V2; -alias _PROPSHEETPAGEA_V2* LPPROPSHEETPAGEA_V2; - -alias PROPSHEETPAGEA_V2* LPCPROPSHEETPAGEA_V2; - -struct _PROPSHEETPAGEA_V3 { - DWORD dwSize; - DWORD dwFlags; - HINSTANCE hInstance; - union { - LPCSTR pszTemplate; - PROPSHEETPAGE_RESOURCE pResource; - } - union { - HICON hIcon; - LPCSTR pszIcon; - } - LPCSTR pszTitle; - DLGPROC pfnDlgProc; - LPARAM lParam; - LPFNPSPCALLBACKA pfnCallback; - UINT* pcRefParent; - - LPCSTR pszHeaderTitle; - LPCSTR pszHeaderSubTitle; - - HANDLE hActCtx; -} -alias _PROPSHEETPAGEA_V3 PROPSHEETPAGEA_V3; -alias _PROPSHEETPAGEA_V3* LPPROPSHEETPAGEA_V3; - -alias PROPSHEETPAGEA_V3* LPCPROPSHEETPAGEA_V3; - -struct _PROPSHEETPAGEW_V1 { - DWORD dwSize; - DWORD dwFlags; - HINSTANCE hInstance; - union { - LPCWSTR pszTemplate; - PROPSHEETPAGE_RESOURCE pResource; - } - union { - HICON hIcon; - LPCWSTR pszIcon; - } - LPCWSTR pszTitle; - DLGPROC pfnDlgProc; - LPARAM lParam; - LPFNPSPCALLBACKW pfnCallback; - UINT* pcRefParent; -} -alias _PROPSHEETPAGEW_V1 PROPSHEETPAGEW_V1; -alias _PROPSHEETPAGEW_V1* LPPROPSHEETPAGEW_V1; - -alias PROPSHEETPAGEW_V1* LPCPROPSHEETPAGEW_V1; - -struct _PROPSHEETPAGEW_V2 { - DWORD dwSize; - DWORD dwFlags; - HINSTANCE hInstance; - union { - LPCWSTR pszTemplate; - PROPSHEETPAGE_RESOURCE pResource; - } - union { - HICON hIcon; - LPCWSTR pszIcon; - } - LPCWSTR pszTitle; - DLGPROC pfnDlgProc; - LPARAM lParam; - LPFNPSPCALLBACKW pfnCallback; - UINT* pcRefParent; - - LPCWSTR pszHeaderTitle; - LPCWSTR pszHeaderSubTitle; -} -alias _PROPSHEETPAGEW_V2 PROPSHEETPAGEW_V2; -alias _PROPSHEETPAGEW_V2* LPPROPSHEETPAGEW_V2; - -alias PROPSHEETPAGEW_V2* LPCPROPSHEETPAGEW_V2; - -struct _PROPSHEETPAGEW_V3 { - DWORD dwSize; - DWORD dwFlags; - HINSTANCE hInstance; - union { - LPCWSTR pszTemplate; - PROPSHEETPAGE_RESOURCE pResource; - } - union { - HICON hIcon; - LPCWSTR pszIcon; - } - LPCWSTR pszTitle; - DLGPROC pfnDlgProc; - LPARAM lParam; - LPFNPSPCALLBACKW pfnCallback; - UINT* pcRefParent; - - LPCWSTR pszHeaderTitle; - LPCWSTR pszHeaderSubTitle; - - HANDLE hActCtx; -} -alias _PROPSHEETPAGEW_V3 PROPSHEETPAGEW_V3; -alias _PROPSHEETPAGEW_V3* LPPROPSHEETPAGEW_V3; - -alias PROPSHEETPAGEW_V3* LPCPROPSHEETPAGEW_V3; - -alias PROPSHEETPAGEA_V3 PROPSHEETPAGEA_LATEST; -alias PROPSHEETPAGEW_V3 PROPSHEETPAGEW_LATEST; -alias LPPROPSHEETPAGEA_V3 LPPROPSHEETPAGEA_LATEST; -alias LPPROPSHEETPAGEW_V3 LPPROPSHEETPAGEW_LATEST; -alias LPCPROPSHEETPAGEA_V3 LPCPROPSHEETPAGEA_LATEST; -alias LPCPROPSHEETPAGEW_V3 LPCPROPSHEETPAGEW_LATEST; - -// #if (_WIN32_WINNT >= 0x0501) || ISOLATION_AWARE_ENABLED -alias PROPSHEETPAGEA_V3 PROPSHEETPAGEA; -alias PROPSHEETPAGEW_V3 PROPSHEETPAGEW; -alias LPPROPSHEETPAGEA_V3 LPPROPSHEETPAGEA; -alias LPPROPSHEETPAGEW_V3 LPPROPSHEETPAGEW; -alias LPCPROPSHEETPAGEA_V3 LPCPROPSHEETPAGEA; -alias LPCPROPSHEETPAGEW_V3 LPCPROPSHEETPAGEW; -// #elif (_WIN32_IE >= 0x0400) -// ... -// #else -// ... -// #endif - -// #if 0 // IEUNIX reserved. - -// #if __STDC__ || defined (NONAMELESSUNION) -// #... -// #else -// #... -// #endif -// #endif - -// #ifdef UNICODE -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #else -alias PROPSHEETPAGEA PROPSHEETPAGE; -alias LPPROPSHEETPAGEA LPPROPSHEETPAGE; -alias LPCPROPSHEETPAGEA LPCPROPSHEETPAGE; -// #define PROPSHEETPAGE_V1_SIZE PROPSHEETPAGEA_V1_SIZE -// #define PROPSHEETPAGE_V2_SIZE PROPSHEETPAGEA_V2_SIZE -alias PROPSHEETPAGEA_V1 PROPSHEETPAGE_V1; -alias LPPROPSHEETPAGEA_V1 LPPROPSHEETPAGE_V1; -alias LPCPROPSHEETPAGEA_V1 LPCPROPSHEETPAGE_V1; -alias PROPSHEETPAGEA_V2 PROPSHEETPAGE_V2; -alias LPPROPSHEETPAGEA_V2 LPPROPSHEETPAGE_V2; -alias LPCPROPSHEETPAGEA_V2 LPCPROPSHEETPAGE_V2; -alias PROPSHEETPAGEA_V3 PROPSHEETPAGE_V3; -alias LPPROPSHEETPAGEA_V3 LPPROPSHEETPAGE_V3; -alias LPCPROPSHEETPAGEA_V3 LPCPROPSHEETPAGE_V3; -alias PROPSHEETPAGEA_LATEST PROPSHEETPAGE_LATEST; -alias LPPROPSHEETPAGEA_LATEST LPPROPSHEETPAGE_LATEST; -alias LPCPROPSHEETPAGEA_LATEST LPCPROPSHEETPAGE_LATEST; -// #endif - -enum : uint { PSH_DEFAULT = 0x00000000 } -enum : uint { PSH_PROPTITLE = 0x00000001 } -enum : uint { PSH_USEHICON = 0x00000002 } -enum : uint { PSH_USEICONID = 0x00000004 } -enum : uint { PSH_PROPSHEETPAGE = 0x00000008 } -enum : uint { PSH_WIZARDHASFINISH = 0x00000010 } -enum : uint { PSH_WIZARD = 0x00000020 } -enum : uint { PSH_USEPSTARTPAGE = 0x00000040 } -enum : uint { PSH_NOAPPLYNOW = 0x00000080 } -enum : uint { PSH_USECALLBACK = 0x00000100 } -enum : uint { PSH_HASHELP = 0x00000200 } -enum : uint { PSH_MODELESS = 0x00000400 } -enum : uint { PSH_RTLREADING = 0x00000800 } -enum : uint { PSH_WIZARDCONTEXTHELP = 0x00001000 } - -// #if (_WIN32_IE >= 0x0400) - -// #if (_WIN32_IE < 0x0500) -// #... -// #else -enum : uint { PSH_WIZARD97 = 0x01000000 } -// #endif - -enum : uint { PSH_WATERMARK = 0x00008000 } -enum : uint { PSH_USEHBMWATERMARK = 0x00010000 } -enum : uint { PSH_USEHPLWATERMARK = 0x00020000 } -enum : uint { PSH_STRETCHWATERMARK = 0x00040000 } -enum : uint { PSH_HEADER = 0x00080000 } -enum : uint { PSH_USEHBMHEADER = 0x00100000 } -enum : uint { PSH_USEPAGELANG = 0x00200000 } - -// #endif - -// #if (_WIN32_IE >= 0x0500) - -enum : uint { PSH_WIZARD_LITE = 0x00400000 } -enum : uint { PSH_NOCONTEXTHELP = 0x02000000 } - -// #endif - -extern(Windows) alias int function(HWND, UINT, LPARAM) PFNPROPSHEETCALLBACK; - -// #define PROPSHEETHEADERA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERA, pfnCallback) -// #define PROPSHEETHEADERW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERW, pfnCallback) - -// #define PROPSHEETHEADERA_V2_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERA, DUMMYUNION5_MEMBER(hbmHeader)) -// #define PROPSHEETHEADERW_V2_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERW, DUMMYUNION5_MEMBER(hbmHeader)) - -struct _PROPSHEETHEADERA { - DWORD dwSize; - DWORD dwFlags; - HWND hwndParent; - HINSTANCE hInstance; -union { - HICON hIcon; - LPCSTR pszIcon; -} - - LPCSTR pszCaption; - UINT nPages; -union { - UINT nStartPage; - LPCSTR pStartPage; -} - -union { - LPCPROPSHEETPAGEA ppsp; - HPROPSHEETPAGE *phpage; -} - - PFNPROPSHEETCALLBACK pfnCallback; -// #if (_WIN32_IE >= 0x0400) -union { - HBITMAP hbmWatermark; - LPCSTR pszbmWatermark; -} - - HPALETTE hplWatermark; -union { - HBITMAP hbmHeader; - LPCSTR pszbmHeader; -} - -// #endif -} -alias _PROPSHEETHEADERA PROPSHEETHEADERA; -alias _PROPSHEETHEADERA* LPPROPSHEETHEADERA; - -alias PROPSHEETHEADERA* LPCPROPSHEETHEADERA; - -struct _PROPSHEETHEADERW { - DWORD dwSize; - DWORD dwFlags; - HWND hwndParent; - HINSTANCE hInstance; -union { - HICON hIcon; - LPCWSTR pszIcon; -} - - LPCWSTR pszCaption; - UINT nPages; -union { - UINT nStartPage; - LPCWSTR pStartPage; -} - -union { - LPCPROPSHEETPAGEW ppsp; - HPROPSHEETPAGE *phpage; -} - - PFNPROPSHEETCALLBACK pfnCallback; -// #if (_WIN32_IE >= 0x0400) -union { - HBITMAP hbmWatermark; - LPCWSTR pszbmWatermark; -} - - HPALETTE hplWatermark; -union { - HBITMAP hbmHeader; - LPCWSTR pszbmHeader; -} - -// #endif -} -alias _PROPSHEETHEADERW PROPSHEETHEADERW; -alias _PROPSHEETHEADERW* LPPROPSHEETHEADERW; - -alias PROPSHEETHEADERW* LPCPROPSHEETHEADERW; - -// #if 0 //IEUNIX reserved. - -// #if __STDC__ || defined (NONAMELESSUNION) -// #... -// #... -// #else -// #... -// #... -// #endif -// #endif - -// #ifdef UNICODE -// #... -// #... -// #... -// #... -// #... -// #else -alias PROPSHEETHEADERA PROPSHEETHEADER; -alias LPPROPSHEETHEADERA LPPROPSHEETHEADER; -alias LPCPROPSHEETHEADERA LPCPROPSHEETHEADER; -// #define PROPSHEETHEADER_V1_SIZE PROPSHEETHEADERA_V1_SIZE -// #define PROPSHEETHEADER_V2_SIZE PROPSHEETHEADERA_V2_SIZE -// #endif - -enum : uint { PSCB_INITIALIZED = 1 } -enum : uint { PSCB_PRECREATE = 2 } - -// #if (_WIN32_IE >= 0x560) - -enum : uint { PSCB_BUTTONPRESSED = 3 } -// #endif // _WIN32_IE >= 0x560 - -extern(Windows) export HPROPSHEETPAGE CreatePropertySheetPageA(LPCPROPSHEETPAGEA constPropSheetPagePointer); -extern(Windows) export HPROPSHEETPAGE CreatePropertySheetPageW(LPCPROPSHEETPAGEW constPropSheetPagePointer); -extern(Windows) export BOOL DestroyPropertySheetPage(HPROPSHEETPAGE); - -extern(Windows) export INT_PTR PropertySheetA(LPCPROPSHEETHEADERA); - -extern(Windows) export INT_PTR PropertySheetW(LPCPROPSHEETHEADERW); - -// #ifdef UNICODE -// #... -// #... -// #else -alias CreatePropertySheetPageA CreatePropertySheetPage; -alias PropertySheetA PropertySheet; -// #endif - -extern(Windows) alias BOOL function(HPROPSHEETPAGE, LPARAM) LPFNADDPROPSHEETPAGE; -extern(Windows) alias BOOL function(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM) LPFNADDPROPSHEETPAGES; - -struct _PSHNOTIFY { - NMHDR hdr; - LPARAM lParam; -} -alias _PSHNOTIFY PSHNOTIFY; -alias _PSHNOTIFY* LPPSHNOTIFY; - -enum : uint { PSN_FIRST = 0U-200U } -enum : uint { PSN_LAST = 0U-299U } - -enum : uint { PSN_SETACTIVE = PSN_FIRST-0 } -enum : uint { PSN_KILLACTIVE = PSN_FIRST-1 } - -enum : uint { PSN_APPLY = PSN_FIRST-2 } -enum : uint { PSN_RESET = PSN_FIRST-3 } - -enum : uint { PSN_HELP = PSN_FIRST-5 } -enum : uint { PSN_WIZBACK = PSN_FIRST-6 } -enum : uint { PSN_WIZNEXT = PSN_FIRST-7 } -enum : uint { PSN_WIZFINISH = PSN_FIRST-8 } -enum : uint { PSN_QUERYCANCEL = PSN_FIRST-9 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { PSN_GETOBJECT = PSN_FIRST-10 } -// #endif // 0x0400 -// #if (_WIN32_IE >= 0x0500) -enum : uint { PSN_TRANSLATEACCELERATOR = PSN_FIRST-12 } -enum : uint { PSN_QUERYINITIALFOCUS = PSN_FIRST-13 } -// #endif // 0x0500 - -enum : uint { PSNRET_NOERROR = 0 } -enum : uint { PSNRET_INVALID = 1 } -enum : uint { PSNRET_INVALID_NOCHANGEPAGE = 2 } -enum : uint { PSNRET_MESSAGEHANDLED = 3 } - -enum : uint { PSM_SETCURSEL = WM_USER + 101 } -// #define PropSheet_SetCurSel(hDlg, hpage, index) SNDMSG(hDlg, PSM_SETCURSEL, (WPARAM)index, (LPARAM)hpage) - -enum : uint { PSM_REMOVEPAGE = WM_USER + 102 } -// #define PropSheet_RemovePage(hDlg, index, hpage) SNDMSG(hDlg, PSM_REMOVEPAGE, index, (LPARAM)hpage) - -enum : uint { PSM_ADDPAGE = WM_USER + 103 } -// #define PropSheet_AddPage(hDlg, hpage) SNDMSG(hDlg, PSM_ADDPAGE, 0, (LPARAM)hpage) - -enum : uint { PSM_CHANGED = WM_USER + 104 } -// #define PropSheet_Changed(hDlg, hwnd) SNDMSG(hDlg, PSM_CHANGED, (WPARAM)hwnd, 0L) - -enum : uint { PSM_RESTARTWINDOWS = WM_USER + 105 } -// #define PropSheet_RestartWindows(hDlg) SNDMSG(hDlg, PSM_RESTARTWINDOWS, 0, 0L) - -enum : uint { PSM_REBOOTSYSTEM = WM_USER + 106 } -// #define PropSheet_RebootSystem(hDlg) SNDMSG(hDlg, PSM_REBOOTSYSTEM, 0, 0L) - -enum : uint { PSM_CANCELTOCLOSE = WM_USER + 107 } -// #define PropSheet_CancelToClose(hDlg) PostMessage(hDlg, PSM_CANCELTOCLOSE, 0, 0L) - -enum : uint { PSM_QUERYSIBLINGS = WM_USER + 108 } -// #define PropSheet_QuerySiblings(hDlg, wParam, lParam) SNDMSG(hDlg, PSM_QUERYSIBLINGS, wParam, lParam) - -enum : uint { PSM_UNCHANGED = WM_USER + 109 } -// #define PropSheet_UnChanged(hDlg, hwnd) SNDMSG(hDlg, PSM_UNCHANGED, (WPARAM)hwnd, 0L) - -enum : uint { PSM_APPLY = WM_USER + 110 } -// #define PropSheet_Apply(hDlg) SNDMSG(hDlg, PSM_APPLY, 0, 0L) - -enum : uint { PSM_SETTITLEA = WM_USER + 111 } -enum : uint { PSM_SETTITLEW = WM_USER + 120 } - -// #ifdef UNICODE -// #... -// #else -alias PSM_SETTITLEA PSM_SETTITLE; -// #endif - -// #define PropSheet_SetTitle(hDlg, wStyle, lpszText) SNDMSG(hDlg, PSM_SETTITLE, wStyle, (LPARAM)(LPCTSTR)(lpszText)) - -enum : uint { PSM_SETWIZBUTTONS = WM_USER + 112 } -// #define PropSheet_SetWizButtons(hDlg, dwFlags) PostMessage(hDlg, PSM_SETWIZBUTTONS, 0, (LPARAM)dwFlags) - -enum : uint { PSWIZB_BACK = 0x00000001 } -enum : uint { PSWIZB_NEXT = 0x00000002 } -enum : uint { PSWIZB_FINISH = 0x00000004 } -enum : uint { PSWIZB_DISABLEDFINISH = 0x00000008 } - -enum : uint { PSM_PRESSBUTTON = WM_USER + 113 } -// #define PropSheet_PressButton(hDlg, iButton) PostMessage(hDlg, PSM_PRESSBUTTON, (WPARAM)iButton, 0) - -enum : uint { PSBTN_BACK = 0 } -enum : uint { PSBTN_NEXT = 1 } -enum : uint { PSBTN_FINISH = 2 } -enum : uint { PSBTN_OK = 3 } -enum : uint { PSBTN_APPLYNOW = 4 } -enum : uint { PSBTN_CANCEL = 5 } -enum : uint { PSBTN_HELP = 6 } -enum : uint { PSBTN_MAX = 6 } - -enum : uint { PSM_SETCURSELID = WM_USER + 114 } -// #define PropSheet_SetCurSelByID(hDlg, id) SNDMSG(hDlg, PSM_SETCURSELID, 0, (LPARAM)id) - -enum : uint { PSM_SETFINISHTEXTA = WM_USER + 115 } -enum : uint { PSM_SETFINISHTEXTW = WM_USER + 121 } - -// #ifdef UNICODE -// #... -// #else -alias PSM_SETFINISHTEXTA PSM_SETFINISHTEXT; -// #endif - -// #define PropSheet_SetFinishText(hDlg, lpszText) SNDMSG(hDlg, PSM_SETFINISHTEXT, 0, (LPARAM)lpszText) - -enum : uint { PSM_GETTABCONTROL = WM_USER + 116 } -// #define PropSheet_GetTabControl(hDlg) (HWND)SNDMSG(hDlg, PSM_GETTABCONTROL, 0, 0) - -enum : uint { PSM_ISDIALOGMESSAGE = WM_USER + 117 } -// #define PropSheet_IsDialogMessage(hDlg, pMsg) (BOOL)SNDMSG(hDlg, PSM_ISDIALOGMESSAGE, 0, (LPARAM)pMsg) - -enum : uint { PSM_GETCURRENTPAGEHWND = WM_USER + 118 } -// #define PropSheet_GetCurrentPageHwnd(hDlg) (HWND)SNDMSG(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0L) - -enum : uint { PSM_INSERTPAGE = WM_USER + 119 } -// #define PropSheet_InsertPage(hDlg, index, hpage) SNDMSG(hDlg, PSM_INSERTPAGE, (WPARAM)(index), (LPARAM)(hpage)) - -// #if (_WIN32_IE >= 0x0500) -enum : uint { PSM_SETHEADERTITLEA = WM_USER + 125 } -enum : uint { PSM_SETHEADERTITLEW = WM_USER + 126 } - -// #ifdef UNICODE -// #... -// #else -alias PSM_SETHEADERTITLEA PSM_SETHEADERTITLE; -// #endif - -// #define PropSheet_SetHeaderTitle(hDlg, index, lpszText) SNDMSG(hDlg, PSM_SETHEADERTITLE, (WPARAM)(index), (LPARAM)(lpszText)) - -enum : uint { PSM_SETHEADERSUBTITLEA = WM_USER + 127 } -enum : uint { PSM_SETHEADERSUBTITLEW = WM_USER + 128 } - -// #ifdef UNICODE -// #... -// #else -alias PSM_SETHEADERSUBTITLEA PSM_SETHEADERSUBTITLE; -// #endif - -// #define PropSheet_SetHeaderSubTitle(hDlg, index, lpszText) SNDMSG(hDlg, PSM_SETHEADERSUBTITLE, (WPARAM)(index), (LPARAM)(lpszText)) - -enum : uint { PSM_HWNDTOINDEX = WM_USER + 129 } -// #define PropSheet_HwndToIndex(hDlg, hwnd) (int)SNDMSG(hDlg, PSM_HWNDTOINDEX, (WPARAM)(hwnd), 0) - -enum : uint { PSM_INDEXTOHWND = WM_USER + 130 } -// #define PropSheet_IndexToHwnd(hDlg, i) (HWND)SNDMSG(hDlg, PSM_INDEXTOHWND, (WPARAM)(i), 0) - -enum : uint { PSM_PAGETOINDEX = WM_USER + 131 } -// #define PropSheet_PageToIndex(hDlg, hpage) (int)SNDMSG(hDlg, PSM_PAGETOINDEX, 0, (LPARAM)(hpage)) - -enum : uint { PSM_INDEXTOPAGE = WM_USER + 132 } -// #define PropSheet_IndexToPage(hDlg, i) (HPROPSHEETPAGE)SNDMSG(hDlg, PSM_INDEXTOPAGE, (WPARAM)(i), 0) - -enum : uint { PSM_IDTOINDEX = WM_USER + 133 } -// #define PropSheet_IdToIndex(hDlg, id) (int)SNDMSG(hDlg, PSM_IDTOINDEX, 0, (LPARAM)(id)) - -enum : uint { PSM_INDEXTOID = WM_USER + 134 } -// #define PropSheet_IndexToId(hDlg, i) SNDMSG(hDlg, PSM_INDEXTOID, (WPARAM)(i), 0) - -enum : uint { PSM_GETRESULT = WM_USER + 135 } -// #define PropSheet_GetResult(hDlg) SNDMSG(hDlg, PSM_GETRESULT, 0, 0) - -enum : uint { PSM_RECALCPAGESIZES = WM_USER + 136 } -// #define PropSheet_RecalcPageSizes(hDlg) SNDMSG(hDlg, PSM_RECALCPAGESIZES, 0, 0) -// #endif // 0x0500 - -enum : uint { ID_PSRESTARTWINDOWS = 0x2 } -enum : uint { ID_PSREBOOTSYSTEM = ID_PSRESTARTWINDOWS | 0x1 } - -enum : uint { WIZ_CXDLG = 276 } -enum : uint { WIZ_CYDLG = 140 } - -enum : uint { WIZ_CXBMP = 80 } - -enum : uint { WIZ_BODYX = 92 } -enum : uint { WIZ_BODYCX = 184 } - -enum : uint { PROP_SM_CXDLG = 212 } -enum : uint { PROP_SM_CYDLG = 188 } - -enum : uint { PROP_MED_CXDLG = 227 } -enum : uint { PROP_MED_CYDLG = 215 } - -enum : uint { PROP_LG_CXDLG = 252 } -enum : uint { PROP_LG_CYDLG = 218 } - -// #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */ -// #if ISOLATION_AWARE_ENABLED - -// #if !defined(ISOLATION_AWARE_INLINE) -// #if defined(__cplusplus) -// #... -// #else -// #... -// #endif -// #endif - -// ... - -// #ifndef CCSIZEOF_STRUCT -// #... -// #endif - -// ... - -// #if defined(UNICODE) - -// #... -// #... - -// #else /* UNICODE */ - -// #... -// #... - -// #endif /* UNICODE */ - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #... -// #... -// #... -// #... -// #... - -// #endif /* ISOLATION_AWARE_ENABLED */ -// #endif /* RC */ - -// #ifdef __cplusplus -// } -// #endif - -align: - -// #endif // _PRSHT_H_ - -// ---- - -// #ifndef _INC_COMMCTRL -// #define _INC_COMMCTRL - -// #ifndef _WINRESRC_ -// #ifndef _WIN32_IE -// #... -// #else -// #if (_WIN32_IE < 0x0400) && defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0500) -// #... -// #endif -// #endif -// #endif - -// #ifndef _HRESULT_DEFINED -// #define _HRESULT_DEFINED -alias LONG HRESULT; -// #endif // _HRESULT_DEFINED - -// #ifndef NOUSER - -// #ifndef WINCOMMCTRLAPI -// #if !defined(_COMCTL32_) && defined(_WIN32) -// #define WINCOMMCTRLAPI DECLSPEC_IMPORT -// #else -// #... -// #endif -// #endif // WINCOMMCTRLAPI - -// #ifndef DUMMYUNIONNAME -// #ifdef NONAMELESSUNION -// #... -// #... -// #... -// #... -// #... -// #else -// #define DUMMYUNIONNAME -// #define DUMMYUNIONNAME2 -// #define DUMMYUNIONNAME3 -// #define DUMMYUNIONNAME4 -// #define DUMMYUNIONNAME5 -// #endif -// #endif // DUMMYUNIONNAME - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #include - -// #ifndef SNDMSG -// #ifdef __cplusplus -// #ifndef _MAC -// #define SNDMSG ::SendMessage -// #else -// #... -// #endif -// #else -// #ifndef _MAC -// #... -// #else -// #... -// #endif //_MAC -// #endif -// #endif // ifndef SNDMSG - -// #ifdef _MAC -// #ifndef RC_INVOKED -// #ifndef _WLM_NOFORCE_LIBS - -// #ifndef _WLMDLL -// #ifdef _DEBUG -// #... -// #else -// #... -// #endif -// #... -// #else -// #ifdef _DEBUG -// #... -// #else -// #... -// #endif -// #endif // _WLMDLL - -// #endif // _WLM_NOFORCE_LIBS -// #endif // RC_INVOKED -// #endif //_MAC - -extern(Windows) export void InitCommonControls(); - -// #if (_WIN32_IE >= 0x0300) -struct tagINITCOMMONCONTROLSEX { - DWORD dwSize; - DWORD dwICC; -} -alias tagINITCOMMONCONTROLSEX INITCOMMONCONTROLSEX; -alias tagINITCOMMONCONTROLSEX* LPINITCOMMONCONTROLSEX; - -enum : uint { ICC_LISTVIEW_CLASSES = 0x00000001 } -enum : uint { ICC_TREEVIEW_CLASSES = 0x00000002 } -enum : uint { ICC_BAR_CLASSES = 0x00000004 } -enum : uint { ICC_TAB_CLASSES = 0x00000008 } -enum : uint { ICC_UPDOWN_CLASS = 0x00000010 } -enum : uint { ICC_PROGRESS_CLASS = 0x00000020 } -enum : uint { ICC_HOTKEY_CLASS = 0x00000040 } -enum : uint { ICC_ANIMATE_CLASS = 0x00000080 } -enum : uint { ICC_WIN95_CLASSES = 0x000000FF } -enum : uint { ICC_DATE_CLASSES = 0x00000100 } -enum : uint { ICC_USEREX_CLASSES = 0x00000200 } -enum : uint { ICC_COOL_CLASSES = 0x00000400 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { ICC_INTERNET_CLASSES = 0x00000800 } -enum : uint { ICC_PAGESCROLLER_CLASS = 0x00001000 } -enum : uint { ICC_NATIVEFNTCTL_CLASS = 0x00002000 } -// #endif -// #if (_WIN32_WINNT >= 0x501) -enum : uint { ICC_STANDARD_CLASSES = 0x00004000 } -enum : uint { ICC_LINK_CLASS = 0x00008000 } -// #endif - -extern(Windows) export BOOL InitCommonControlsEx(LPINITCOMMONCONTROLSEX); -// #endif // _WIN32_IE >= 0x0300 - -enum : uint { ODT_HEADER = 100 } -enum : uint { ODT_TAB = 101 } -enum : uint { ODT_LISTVIEW = 102 } - -enum : uint { LVM_FIRST = 0x1000 } -enum : uint { TV_FIRST = 0x1100 } -enum : uint { HDM_FIRST = 0x1200 } -enum : uint { TCM_FIRST = 0x1300 } - -// #if (_WIN32_IE >= 0x0400) -enum : uint { PGM_FIRST = 0x1400 } -// #if (_WIN32_WINNT >= 0x501) -enum : uint { ECM_FIRST = 0x1500 } -enum : uint { BCM_FIRST = 0x1600 } -enum : uint { CBM_FIRST = 0x1700 } -// #endif -enum : uint { CCM_FIRST = 0x2000 } -enum : uint { CCM_LAST = CCM_FIRST + 0x200 } - -enum : uint { CCM_SETBKCOLOR = CCM_FIRST + 1 } - -struct tagCOLORSCHEME { - DWORD dwSize; - COLORREF clrBtnHighlight; - COLORREF clrBtnShadow; -} -alias tagCOLORSCHEME COLORSCHEME; -alias tagCOLORSCHEME* LPCOLORSCHEME; - -enum : uint { CCM_SETCOLORSCHEME = CCM_FIRST + 2 } -enum : uint { CCM_GETCOLORSCHEME = CCM_FIRST + 3 } -enum : uint { CCM_GETDROPTARGET = CCM_FIRST + 4 } -enum : uint { CCM_SETUNICODEFORMAT = CCM_FIRST + 5 } -enum : uint { CCM_GETUNICODEFORMAT = CCM_FIRST + 6 } - -// #if (_WIN32_IE >= 0x0500) -// #if (_WIN32_WINNT >= 0x501) -enum : uint { COMCTL32_VERSION = 6 } -// #else -// #... -// #endif - -enum : uint { CCM_SETVERSION = CCM_FIRST + 0x7 } -enum : uint { CCM_GETVERSION = CCM_FIRST + 0x8 } -enum : uint { CCM_SETNOTIFYWINDOW = CCM_FIRST + 0x9 } -// #if (_WIN32_WINNT >= 0x501) -enum : uint { CCM_SETWINDOWTHEME = CCM_FIRST + 0xb } -enum : uint { CCM_DPISCALE = CCM_FIRST + 0xc } -// #endif -// #endif // (_WIN32_IE >= 0x0500) - -// #endif // (_WIN32_IE >= 0x0400) - -// #if (_WIN32_IE >= 0x0400) - -enum : uint { INFOTIPSIZE = 1024 } -// #endif - -// #define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) (fn)((hwnd), (int)(wParam), (NMHDR *)(lParam)) -// #define FORWARD_WM_NOTIFY(hwnd, idFrom, pnmhdr, fn) (LRESULT)(fn)((hwnd), WM_NOTIFY, (WPARAM)(int)(idFrom), (LPARAM)(NMHDR *)(pnmhdr)) - -enum : uint { NM_OUTOFMEMORY = NM_FIRST-1 } -enum : uint { NM_CLICK = NM_FIRST-2 } -enum : uint { NM_DBLCLK = NM_FIRST-3 } -enum : uint { NM_RETURN = NM_FIRST-4 } -enum : uint { NM_RCLICK = NM_FIRST-5 } -enum : uint { NM_RDBLCLK = NM_FIRST-6 } -enum : uint { NM_SETFOCUS = NM_FIRST-7 } -enum : uint { NM_KILLFOCUS = NM_FIRST-8 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { NM_CUSTOMDRAW = NM_FIRST-12 } -enum : uint { NM_HOVER = NM_FIRST-13 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { NM_NCHITTEST = NM_FIRST-14 } -enum : uint { NM_KEYDOWN = NM_FIRST-15 } -enum : uint { NM_RELEASEDCAPTURE = NM_FIRST-16 } -enum : uint { NM_SETCURSOR = NM_FIRST-17 } -enum : uint { NM_CHAR = NM_FIRST-18 } -// #endif -// #if (_WIN32_IE >= 0x0401) -enum : uint { NM_TOOLTIPSCREATED = NM_FIRST-19 } -// #endif -// #if (_WIN32_IE >= 0x0500) -enum : uint { NM_LDOWN = NM_FIRST-20 } -enum : uint { NM_RDOWN = NM_FIRST-21 } -enum : uint { NM_THEMECHANGED = NM_FIRST-22 } -// #endif - -// #ifndef CCSIZEOF_STRUCT -// #define CCSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member)) -// #endif - -// #if (_WIN32_IE >= 0x0401) -struct tagNMTOOLTIPSCREATED { - NMHDR hdr; - HWND hwndToolTips; -} -alias tagNMTOOLTIPSCREATED NMTOOLTIPSCREATED; -alias tagNMTOOLTIPSCREATED* LPNMTOOLTIPSCREATED; - -// #endif - -// #if (_WIN32_IE >= 0x0400) -struct tagNMMOUSE { - NMHDR hdr; - DWORD_PTR dwItemSpec; - DWORD_PTR dwItemData; - POINT pt; - LPARAM dwHitInfo; -} -alias tagNMMOUSE NMMOUSE; -alias tagNMMOUSE* LPNMMOUSE; - -alias NMMOUSE NMCLICK; -alias LPNMMOUSE LPNMCLICK; - -struct tagNMOBJECTNOTIFY { - NMHDR hdr; - int iItem; -// #ifdef __IID_DEFINED__ - IID* piid; -// #else -// ... -// #endif - void *pObject; - HRESULT hResult; - DWORD dwFlags; -} -alias tagNMOBJECTNOTIFY NMOBJECTNOTIFY; -alias tagNMOBJECTNOTIFY* LPNMOBJECTNOTIFY; - -struct tagNMKEY { - NMHDR hdr; - UINT nVKey; - UINT uFlags; -} -alias tagNMKEY NMKEY; -alias tagNMKEY* LPNMKEY; - -struct tagNMCHAR { - NMHDR hdr; - UINT ch; - DWORD dwItemPrev; - DWORD dwItemNext; -} -alias tagNMCHAR NMCHAR; -alias tagNMCHAR* LPNMCHAR; - -// #endif // _WIN32_IE >= 0x0400 - -// #define NM_FIRST (0U- 0U) -enum : uint { NM_LAST = 0U- 99U } - -enum : uint { LVN_FIRST = 0U-100U } -enum : uint { LVN_LAST = 0U-199U } - -enum : uint { HDN_FIRST = 0U-300U } -enum : uint { HDN_LAST = 0U-399U } - -enum : uint { TVN_FIRST = 0U-400U } -enum : uint { TVN_LAST = 0U-499U } - -enum : uint { TTN_FIRST = 0U-520U } -enum : uint { TTN_LAST = 0U-549U } - -enum : uint { TCN_FIRST = 0U-550U } -enum : uint { TCN_LAST = 0U-580U } - -enum : uint { CDN_FIRST = 0U-601U } -enum : uint { CDN_LAST = 0U-699U } - -enum : uint { TBN_FIRST = 0U-700U } -enum : uint { TBN_LAST = 0U-720U } - -enum : uint { UDN_FIRST = 0U-721 } -enum : uint { UDN_LAST = 0U-740 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { MCN_FIRST = 0U-750U } -enum : uint { MCN_LAST = 0U-759U } - -enum : uint { DTN_FIRST = 0U-760U } -enum : uint { DTN_LAST = 0U-799U } - -// #define CBEN_FIRST (0U-800U) -enum : uint { CBEN_LAST = 0U-830U } - -enum : uint { RBN_FIRST = 0U-831U } -enum : uint { RBN_LAST = 0U-859U } -// #endif - -// #if (_WIN32_IE >= 0x0400) -enum : uint { IPN_FIRST = 0U-860U } -enum : uint { IPN_LAST = 0U-879U } - -enum : uint { SBN_FIRST = 0U-880U } -enum : uint { SBN_LAST = 0U-899U } - -enum : uint { PGN_FIRST = 0U-900U } -enum : uint { PGN_LAST = 0U-950U } - -// #endif - -// #if (_WIN32_IE >= 0x0500) -// #ifndef WMN_FIRST -enum : uint { WMN_FIRST = 0U-1000U } -enum : uint { WMN_LAST = 0U-1200U } -// #endif -// #endif - -// #if (_WIN32_WINNT >= 0x0501) -enum : uint { BCN_FIRST = 0U-1250U } -enum : uint { BCN_LAST = 0U-1350U } -// #endif - -enum : uint { MSGF_COMMCTRL_BEGINDRAG = 0x4200 } -enum : uint { MSGF_COMMCTRL_SIZEHEADER = 0x4201 } -enum : uint { MSGF_COMMCTRL_DRAGSELECT = 0x4202 } -enum : uint { MSGF_COMMCTRL_TOOLBARCUST = 0x4203 } - -// #if (_WIN32_IE >= 0x0300) - -enum : uint { CDRF_DODEFAULT = 0x00000000 } -enum : uint { CDRF_NEWFONT = 0x00000002 } -enum : uint { CDRF_SKIPDEFAULT = 0x00000004 } - -enum : uint { CDRF_NOTIFYPOSTPAINT = 0x00000010 } -enum : uint { CDRF_NOTIFYITEMDRAW = 0x00000020 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { CDRF_NOTIFYSUBITEMDRAW = 0x00000020 } -// #endif -enum : uint { CDRF_NOTIFYPOSTERASE = 0x00000040 } - -enum : uint { CDDS_PREPAINT = 0x00000001 } -enum : uint { CDDS_POSTPAINT = 0x00000002 } -enum : uint { CDDS_PREERASE = 0x00000003 } -enum : uint { CDDS_POSTERASE = 0x00000004 } - -enum : uint { CDDS_ITEM = 0x00010000 } -enum : uint { CDDS_ITEMPREPAINT = CDDS_ITEM | CDDS_PREPAINT } -enum : uint { CDDS_ITEMPOSTPAINT = CDDS_ITEM | CDDS_POSTPAINT } -enum : uint { CDDS_ITEMPREERASE = CDDS_ITEM | CDDS_PREERASE } -enum : uint { CDDS_ITEMPOSTERASE = CDDS_ITEM | CDDS_POSTERASE } -// #if (_WIN32_IE >= 0x0400) -enum : uint { CDDS_SUBITEM = 0x00020000 } -// #endif - -enum : uint { CDIS_SELECTED = 0x0001 } -enum : uint { CDIS_GRAYED = 0x0002 } -enum : uint { CDIS_DISABLED = 0x0004 } -enum : uint { CDIS_CHECKED = 0x0008 } -enum : uint { CDIS_FOCUS = 0x0010 } -enum : uint { CDIS_DEFAULT = 0x0020 } -enum : uint { CDIS_HOT = 0x0040 } -enum : uint { CDIS_MARKED = 0x0080 } -enum : uint { CDIS_INDETERMINATE = 0x0100 } -// #if (_WIN32_WINNT >= 0x501) -enum : uint { CDIS_SHOWKEYBOARDCUES = 0x0200 } -// #endif - -struct tagNMCUSTOMDRAWINFO { - NMHDR hdr; - DWORD dwDrawStage; - HDC hdc; - RECT rc; - DWORD_PTR dwItemSpec; - UINT uItemState; - LPARAM lItemlParam; -} -alias tagNMCUSTOMDRAWINFO NMCUSTOMDRAW; -alias tagNMCUSTOMDRAWINFO* LPNMCUSTOMDRAW; - -struct tagNMTTCUSTOMDRAW { - NMCUSTOMDRAW nmcd; - UINT uDrawFlags; -} -alias tagNMTTCUSTOMDRAW NMTTCUSTOMDRAW; -alias tagNMTTCUSTOMDRAW* LPNMTTCUSTOMDRAW; - -// #endif // _WIN32_IE >= 0x0300 - -// #ifndef NOIMAGEAPIS - -enum : uint { CLR_NONE = 0xFFFFFFFF } -enum : uint { CLR_DEFAULT = 0xFF000000 } - -// #ifndef HIMAGELIST -// struct _IMAGELIST; -alias _IMAGELIST* HIMAGELIST; -// #endif - -// #ifndef IMAGELISTDRAWPARAMS -// #if (_WIN32_IE >= 0x0300) -struct _IMAGELISTDRAWPARAMS { - DWORD cbSize; - HIMAGELIST himl; - int i; - HDC hdcDst; - int x; - int y; - int cx; - int cy; - int xBitmap; - int yBitmap; - COLORREF rgbBk; - COLORREF rgbFg; - UINT fStyle; - DWORD dwRop; -// #if (_WIN32_WINNT >= 0x501) - DWORD fState; - DWORD Frame; - COLORREF crEffect; -// #endif -} -alias _IMAGELISTDRAWPARAMS IMAGELISTDRAWPARAMS; -alias _IMAGELISTDRAWPARAMS* LPIMAGELISTDRAWPARAMS; - -// #define IMAGELISTDRAWPARAMS_V3_SIZE CCSIZEOF_STRUCT(IMAGELISTDRAWPARAMS, dwRop) - -// #endif // _WIN32_IE >= 0x0300 -// #endif - -enum : uint { ILC_MASK = 0x00000001 } -enum : uint { ILC_COLOR = 0x00000000 } -enum : uint { ILC_COLORDDB = 0x000000FE } -enum : uint { ILC_COLOR4 = 0x00000004 } -enum : uint { ILC_COLOR8 = 0x00000008 } -enum : uint { ILC_COLOR16 = 0x00000010 } -enum : uint { ILC_COLOR24 = 0x00000018 } -enum : uint { ILC_COLOR32 = 0x00000020 } -enum : uint { ILC_PALETTE = 0x00000800 } -// #if (_WIN32_WINNT >= 0x501) -enum : uint { ILC_MIRROR = 0x00002000 } -enum : uint { ILC_PERITEMMIRROR = 0x00008000 } -// #endif -extern(Windows) export HIMAGELIST ImageList_Create(int cx, int cy, UINT flags, int cInitial, int cGrow); -extern(Windows) export BOOL ImageList_Destroy(HIMAGELIST himl); - -extern(Windows) export int ImageList_GetImageCount(HIMAGELIST himl); -// #if (_WIN32_IE >= 0x0300) -extern(Windows) export BOOL ImageList_SetImageCount(HIMAGELIST himl, UINT uNewCount); -// #endif - -extern(Windows) export int ImageList_Add(HIMAGELIST himl, HBITMAP hbmImage, HBITMAP hbmMask); - -extern(Windows) export int ImageList_ReplaceIcon(HIMAGELIST himl, int i, HICON hicon); -extern(Windows) export COLORREF ImageList_SetBkColor(HIMAGELIST himl, COLORREF clrBk); -extern(Windows) export COLORREF ImageList_GetBkColor(HIMAGELIST himl); -extern(Windows) export BOOL ImageList_SetOverlayImage(HIMAGELIST himl, int iImage, int iOverlay); - -// #define ImageList_AddIcon(himl, hicon) ImageList_ReplaceIcon(himl, -1, hicon) - -enum : uint { ILD_NORMAL = 0x00000000 } -enum : uint { ILD_TRANSPARENT = 0x00000001 } -enum : uint { ILD_MASK = 0x00000010 } -enum : uint { ILD_IMAGE = 0x00000020 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { ILD_ROP = 0x00000040 } -// #endif -enum : uint { ILD_BLEND25 = 0x00000002 } -enum : uint { ILD_BLEND50 = 0x00000004 } -enum : uint { ILD_OVERLAYMASK = 0x00000F00 } -uint INDEXTOOVERLAYMASK(uint i){ return i << 8; } -enum : uint { ILD_PRESERVEALPHA = 0x00001000 } -enum : uint { ILD_SCALE = 0x00002000 } -enum : uint { ILD_DPISCALE = 0x00004000 } - -alias ILD_BLEND50 ILD_SELECTED; -alias ILD_BLEND25 ILD_FOCUS; -alias ILD_BLEND50 ILD_BLEND; -alias CLR_DEFAULT CLR_HILIGHT; - -enum : uint { ILS_NORMAL = 0x00000000 } -enum : uint { ILS_GLOW = 0x00000001 } -enum : uint { ILS_SHADOW = 0x00000002 } -enum : uint { ILS_SATURATE = 0x00000004 } -enum : uint { ILS_ALPHA = 0x00000008 } - -extern(Windows) export BOOL ImageList_Draw(HIMAGELIST himl, int i, HDC hdcDst, int x, int y, UINT fStyle); - -// #ifdef _WIN32 - -extern(Windows) export BOOL ImageList_Replace(HIMAGELIST himl, int i, HBITMAP hbmImage, HBITMAP hbmMask); - -extern(Windows) export int ImageList_AddMasked(HIMAGELIST himl, HBITMAP hbmImage, COLORREF crMask); -extern(Windows) export BOOL ImageList_DrawEx(HIMAGELIST himl, int i, HDC hdcDst, int x, int y, int dx, int dy, COLORREF rgbBk, COLORREF rgbFg, UINT fStyle); -// #if (_WIN32_IE >= 0x0300) -extern(Windows) export BOOL ImageList_DrawIndirect(IMAGELISTDRAWPARAMS* pimldp); -// #endif -extern(Windows) export BOOL ImageList_Remove(HIMAGELIST himl, int i); -extern(Windows) export HICON ImageList_GetIcon(HIMAGELIST himl, int i, UINT flags); -extern(Windows) export HIMAGELIST ImageList_LoadImageA(HINSTANCE hi, LPCSTR lpbmp, int cx, int cGrow, COLORREF crMask, UINT uType, UINT uFlags); -extern(Windows) export HIMAGELIST ImageList_LoadImageW(HINSTANCE hi, LPCWSTR lpbmp, int cx, int cGrow, COLORREF crMask, UINT uType, UINT uFlags); - -// #ifdef UNICODE -// #... -// #else -alias ImageList_LoadImageA ImageList_LoadImage; -// #endif - -// #if (_WIN32_IE >= 0x0300) -enum : uint { ILCF_MOVE = 0x00000000 } -enum : uint { ILCF_SWAP = 0x00000001 } -extern(Windows) export BOOL ImageList_Copy(HIMAGELIST himlDst, int iDst, HIMAGELIST himlSrc, int iSrc, UINT uFlags); -// #endif - -extern(Windows) export BOOL ImageList_BeginDrag(HIMAGELIST himlTrack, int iTrack, int dxHotspot, int dyHotspot); -extern(Windows) export void ImageList_EndDrag(); -extern(Windows) export BOOL ImageList_DragEnter(HWND hwndLock, int x, int y); -extern(Windows) export BOOL ImageList_DragLeave(HWND hwndLock); -extern(Windows) export BOOL ImageList_DragMove(int x, int y); -extern(Windows) export BOOL ImageList_SetDragCursorImage(HIMAGELIST himlDrag, int iDrag, int dxHotspot, int dyHotspot); - -extern(Windows) export BOOL ImageList_DragShowNolock(BOOL fShow); -extern(Windows) export HIMAGELIST ImageList_GetDragImage(POINT *ppt,POINT *pptHotspot); - -// #define ImageList_RemoveAll(himl) ImageList_Remove(himl, -1) -// #define ImageList_ExtractIcon(hi, himl, i) ImageList_GetIcon(himl, i, 0) -// #define ImageList_LoadBitmap(hi, lpbmp, cx, cGrow, crMask) ImageList_LoadImage(hi, lpbmp, cx, cGrow, crMask, IMAGE_BITMAP, 0) - -// #ifdef __IStream_INTERFACE_DEFINED__ - -// ... - -// #if (_WIN32_WINNT >= 0x0501) -// #... -// #... - -// ... -// #endif - -// #endif - -// #ifndef IMAGEINFO -struct _IMAGEINFO { - HBITMAP hbmImage; - HBITMAP hbmMask; - int Unused1; - int Unused2; - RECT rcImage; -} -alias _IMAGEINFO IMAGEINFO; -alias _IMAGEINFO* LPIMAGEINFO; - -// #endif - -extern(Windows) export BOOL ImageList_GetIconSize(HIMAGELIST himl, int *cx, int *cy); -extern(Windows) export BOOL ImageList_SetIconSize(HIMAGELIST himl, int cx, int cy); -extern(Windows) export BOOL ImageList_GetImageInfo(HIMAGELIST himl, int i, IMAGEINFO *pImageInfo); -extern(Windows) export HIMAGELIST ImageList_Merge(HIMAGELIST himl1, int i1, HIMAGELIST himl2, int i2, int dx, int dy); -// #if (_WIN32_IE >= 0x0400) -extern(Windows) export HIMAGELIST ImageList_Duplicate(HIMAGELIST himl); -// #endif - -// #endif - -// #endif - -// #ifndef NOHEADER - -// #ifdef _WIN32 -const char[] WC_HEADERA = "SysHeader32"; -const wchar[] WC_HEADERW = "SysHeader32"; - -// #ifdef UNICODE -// #... -// #else -alias WC_HEADERA WC_HEADER; -// #endif - -// #else -// #... -// #endif - -enum : uint { HDS_HORZ = 0x0000 } -enum : uint { HDS_BUTTONS = 0x0002 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { HDS_HOTTRACK = 0x0004 } -// #endif -enum : uint { HDS_HIDDEN = 0x0008 } - -// #if (_WIN32_IE >= 0x0300) -enum : uint { HDS_DRAGDROP = 0x0040 } -enum : uint { HDS_FULLDRAG = 0x0080 } -// #endif -// #if (_WIN32_IE >= 0x0500) -enum : uint { HDS_FILTERBAR = 0x0100 } -// #endif - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { HDS_FLAT = 0x0200 } -// #endif - -// #if (_WIN32_IE >= 0x0500) - -enum : uint { HDFT_ISSTRING = 0x0000 } -enum : uint { HDFT_ISNUMBER = 0x0001 } - -enum : uint { HDFT_HASNOVALUE = 0x8000 } - -// #ifdef UNICODE -// #... -// #... -// #... -// #... -// #else -alias HD_TEXTFILTERA HD_TEXTFILTER; -alias HD_TEXTFILTERA HDTEXTFILTER; -alias LPHD_TEXTFILTERA LPHD_TEXTFILTER; -alias LPHD_TEXTFILTERA LPHDTEXTFILTER; -// #endif - -struct _HD_TEXTFILTERA { - LPSTR pszText; - INT cchTextMax; -} -alias _HD_TEXTFILTERA HD_TEXTFILTERA; -alias _HD_TEXTFILTERA* LPHD_TEXTFILTERA; - -struct _HD_TEXTFILTERW { - LPWSTR pszText; - INT cchTextMax; -} -alias _HD_TEXTFILTERW HD_TEXTFILTERW; -alias _HD_TEXTFILTERW* LPHD_TEXTFILTERW; - -// #endif // _WIN32_IE >= 0x0500 - -// #if (_WIN32_IE >= 0x0300) -alias HDITEMA HD_ITEMA; -alias HDITEMW HD_ITEMW; -// #else -// #... -// #... -// #endif -alias HDITEM HD_ITEM; - -struct _HD_ITEMA { - UINT mask; - int cxy; - LPSTR pszText; - HBITMAP hbm; - int cchTextMax; - int fmt; - LPARAM lParam; -// #if (_WIN32_IE >= 0x0300) - int iImage; - int iOrder; -// #endif -// #if (_WIN32_IE >= 0x0500) - UINT type; - void * pvFilter; -// #endif -} -alias _HD_ITEMA HDITEMA; -alias _HD_ITEMA* LPHDITEMA; - -// #define HDITEMA_V1_SIZE CCSIZEOF_STRUCT(HDITEMA, lParam) -// #define HDITEMW_V1_SIZE CCSIZEOF_STRUCT(HDITEMW, lParam) - -struct _HD_ITEMW { - UINT mask; - int cxy; - LPWSTR pszText; - HBITMAP hbm; - int cchTextMax; - int fmt; - LPARAM lParam; -// #if (_WIN32_IE >= 0x0300) - int iImage; - int iOrder; -// #endif -// #if (_WIN32_IE >= 0x0500) - UINT type; - void * pvFilter; -// #endif -} -alias _HD_ITEMW HDITEMW; -alias _HD_ITEMW* LPHDITEMW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias HDITEMA HDITEM; -alias LPHDITEMA LPHDITEM; -// #define HDITEM_V1_SIZE HDITEMA_V1_SIZE -// #endif - -enum : uint { HDI_WIDTH = 0x0001 } -alias HDI_WIDTH HDI_HEIGHT; -enum : uint { HDI_TEXT = 0x0002 } -enum : uint { HDI_FORMAT = 0x0004 } -enum : uint { HDI_LPARAM = 0x0008 } -enum : uint { HDI_BITMAP = 0x0010 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { HDI_IMAGE = 0x0020 } -enum : uint { HDI_DI_SETITEM = 0x0040 } -enum : uint { HDI_ORDER = 0x0080 } -// #endif -// #if (_WIN32_IE >= 0x0500) -enum : uint { HDI_FILTER = 0x0100 } -// #endif - -enum : uint { HDF_LEFT = 0x0000 } -enum : uint { HDF_RIGHT = 0x0001 } -enum : uint { HDF_CENTER = 0x0002 } -enum : uint { HDF_JUSTIFYMASK = 0x0003 } -enum : uint { HDF_RTLREADING = 0x0004 } - -enum : uint { HDF_OWNERDRAW = 0x8000 } -enum : uint { HDF_STRING = 0x4000 } -enum : uint { HDF_BITMAP = 0x2000 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { HDF_BITMAP_ON_RIGHT = 0x1000 } -enum : uint { HDF_IMAGE = 0x0800 } -// #endif - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { HDF_SORTUP = 0x0400 } -enum : uint { HDF_SORTDOWN = 0x0200 } -// #endif - -enum : uint { HDM_GETITEMCOUNT = HDM_FIRST + 0 } -// #define Header_GetItemCount(hwndHD) (int)SNDMSG((hwndHD), HDM_GETITEMCOUNT, 0, 0L) - -enum : uint { HDM_INSERTITEMA = HDM_FIRST + 1 } -enum : uint { HDM_INSERTITEMW = HDM_FIRST + 10 } - -// #ifdef UNICODE -// #... -// #else -alias HDM_INSERTITEMA HDM_INSERTITEM; -// #endif - -// #define Header_InsertItem(hwndHD, i, phdi) (int)SNDMSG((hwndHD), HDM_INSERTITEM, (WPARAM)(int)(i), (LPARAM)(const HD_ITEM *)(phdi)) - -enum : uint { HDM_DELETEITEM = HDM_FIRST + 2 } -// #define Header_DeleteItem(hwndHD, i) (BOOL)SNDMSG((hwndHD), HDM_DELETEITEM, (WPARAM)(int)(i), 0L) - -enum : uint { HDM_GETITEMA = HDM_FIRST + 3 } -enum : uint { HDM_GETITEMW = HDM_FIRST + 11 } - -// #ifdef UNICODE -// #... -// #else -alias HDM_GETITEMA HDM_GETITEM; -// #endif - -// #define Header_GetItem(hwndHD, i, phdi) (BOOL)SNDMSG((hwndHD), HDM_GETITEM, (WPARAM)(int)(i), (LPARAM)(HD_ITEM *)(phdi)) - -enum : uint { HDM_SETITEMA = HDM_FIRST + 4 } -enum : uint { HDM_SETITEMW = HDM_FIRST + 12 } - -// #ifdef UNICODE -// #... -// #else -alias HDM_SETITEMA HDM_SETITEM; -// #endif - -// #define Header_SetItem(hwndHD, i, phdi) (BOOL)SNDMSG((hwndHD), HDM_SETITEM, (WPARAM)(int)(i), (LPARAM)(const HD_ITEM *)(phdi)) - -// #if (_WIN32_IE >= 0x0300) -alias HDLAYOUT HD_LAYOUT; -// #else -// #... -// #endif - -struct _HD_LAYOUT { - RECT *prc; - WINDOWPOS *pwpos; -} -alias _HD_LAYOUT HDLAYOUT; -alias _HD_LAYOUT* LPHDLAYOUT; - -enum : uint { HDM_LAYOUT = HDM_FIRST + 5 } -// #define Header_Layout(hwndHD, playout) (BOOL)SNDMSG((hwndHD), HDM_LAYOUT, 0, (LPARAM)(HD_LAYOUT *)(playout)) - -enum : uint { HHT_NOWHERE = 0x0001 } -enum : uint { HHT_ONHEADER = 0x0002 } -enum : uint { HHT_ONDIVIDER = 0x0004 } -enum : uint { HHT_ONDIVOPEN = 0x0008 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { HHT_ONFILTER = 0x0010 } -enum : uint { HHT_ONFILTERBUTTON = 0x0020 } -// #endif -enum : uint { HHT_ABOVE = 0x0100 } -enum : uint { HHT_BELOW = 0x0200 } -enum : uint { HHT_TORIGHT = 0x0400 } -enum : uint { HHT_TOLEFT = 0x0800 } - -// #if (_WIN32_IE >= 0x0300) -alias HDHITTESTINFO HD_HITTESTINFO; -// #else -// #... -// #endif - -struct _HD_HITTESTINFO { - POINT pt; - UINT flags; - int iItem; -} -alias _HD_HITTESTINFO HDHITTESTINFO; -alias _HD_HITTESTINFO* LPHDHITTESTINFO; - -enum : uint { HDM_HITTEST = HDM_FIRST + 6 } - -// #if (_WIN32_IE >= 0x0300) - -enum : uint { HDM_GETITEMRECT = HDM_FIRST + 7 } -// #define Header_GetItemRect(hwnd, iItem, lprc) (BOOL)SNDMSG((hwnd), HDM_GETITEMRECT, (WPARAM)(iItem), (LPARAM)(lprc)) - -enum : uint { HDM_SETIMAGELIST = HDM_FIRST + 8 } -// #define Header_SetImageList(hwnd, himl) (HIMAGELIST)SNDMSG((hwnd), HDM_SETIMAGELIST, 0, (LPARAM)(himl)) - -enum : uint { HDM_GETIMAGELIST = HDM_FIRST + 9 } -// #define Header_GetImageList(hwnd) (HIMAGELIST)SNDMSG((hwnd), HDM_GETIMAGELIST, 0, 0) - -enum : uint { HDM_ORDERTOINDEX = HDM_FIRST + 15 } -// #define Header_OrderToIndex(hwnd, i) (int)SNDMSG((hwnd), HDM_ORDERTOINDEX, (WPARAM)(i), 0) - -enum : uint { HDM_CREATEDRAGIMAGE = HDM_FIRST + 16 } -// #define Header_CreateDragImage(hwnd, i) (HIMAGELIST)SNDMSG((hwnd), HDM_CREATEDRAGIMAGE, (WPARAM)(i), 0) - -enum : uint { HDM_GETORDERARRAY = HDM_FIRST + 17 } -// #define Header_GetOrderArray(hwnd, iCount, lpi) (BOOL)SNDMSG((hwnd), HDM_GETORDERARRAY, (WPARAM)(iCount), (LPARAM)(lpi)) - -enum : uint { HDM_SETORDERARRAY = HDM_FIRST + 18 } -// #define Header_SetOrderArray(hwnd, iCount, lpi) (BOOL)SNDMSG((hwnd), HDM_SETORDERARRAY, (WPARAM)(iCount), (LPARAM)(lpi)) - -enum : uint { HDM_SETHOTDIVIDER = HDM_FIRST + 19 } -// #define Header_SetHotDivider(hwnd, fPos, dw) (int)SNDMSG((hwnd), HDM_SETHOTDIVIDER, (WPARAM)(fPos), (LPARAM)(dw)) - -// #endif // _WIN32_IE >= 0x0300 - -// #if (_WIN32_IE >= 0x0500) - -enum : uint { HDM_SETBITMAPMARGIN = HDM_FIRST + 20 } -// #define Header_SetBitmapMargin(hwnd, iWidth) (int)SNDMSG((hwnd), HDM_SETBITMAPMARGIN, (WPARAM)(iWidth), 0) - -enum : uint { HDM_GETBITMAPMARGIN = HDM_FIRST + 21 } -// #define Header_GetBitmapMargin(hwnd) (int)SNDMSG((hwnd), HDM_GETBITMAPMARGIN, 0, 0) -// #endif - -// #if (_WIN32_IE >= 0x0400) -alias CCM_SETUNICODEFORMAT HDM_SETUNICODEFORMAT; -// #define Header_SetUnicodeFormat(hwnd, fUnicode) (BOOL)SNDMSG((hwnd), HDM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) - -alias CCM_GETUNICODEFORMAT HDM_GETUNICODEFORMAT; -// #define Header_GetUnicodeFormat(hwnd) (BOOL)SNDMSG((hwnd), HDM_GETUNICODEFORMAT, 0, 0) -// #endif - -// #if (_WIN32_IE >= 0x0500) -enum : uint { HDM_SETFILTERCHANGETIMEOUT = HDM_FIRST+22 } -// #define Header_SetFilterChangeTimeout(hwnd, i) (int)SNDMSG((hwnd), HDM_SETFILTERCHANGETIMEOUT, 0, (LPARAM)(i)) - -enum : uint { HDM_EDITFILTER = HDM_FIRST+23 } -// #define Header_EditFilter(hwnd, i, fDiscardChanges) (int)SNDMSG((hwnd), HDM_EDITFILTER, (WPARAM)(i), MAKELPARAM(fDiscardChanges, 0)) - -enum : uint { HDM_CLEARFILTER = HDM_FIRST+24 } -// #define Header_ClearFilter(hwnd, i) (int)SNDMSG((hwnd), HDM_CLEARFILTER, (WPARAM)(i), 0) -// #define Header_ClearAllFilters(hwnd) (int)SNDMSG((hwnd), HDM_CLEARFILTER, (WPARAM)-1, 0) -// #endif - -enum : uint { HDN_ITEMCHANGINGA = HDN_FIRST-0 } -enum : uint { HDN_ITEMCHANGINGW = HDN_FIRST-20 } -enum : uint { HDN_ITEMCHANGEDA = HDN_FIRST-1 } -enum : uint { HDN_ITEMCHANGEDW = HDN_FIRST-21 } -enum : uint { HDN_ITEMCLICKA = HDN_FIRST-2 } -enum : uint { HDN_ITEMCLICKW = HDN_FIRST-22 } -enum : uint { HDN_ITEMDBLCLICKA = HDN_FIRST-3 } -enum : uint { HDN_ITEMDBLCLICKW = HDN_FIRST-23 } -enum : uint { HDN_DIVIDERDBLCLICKA = HDN_FIRST-5 } -enum : uint { HDN_DIVIDERDBLCLICKW = HDN_FIRST-25 } -enum : uint { HDN_BEGINTRACKA = HDN_FIRST-6 } -enum : uint { HDN_BEGINTRACKW = HDN_FIRST-26 } -enum : uint { HDN_ENDTRACKA = HDN_FIRST-7 } -enum : uint { HDN_ENDTRACKW = HDN_FIRST-27 } -enum : uint { HDN_TRACKA = HDN_FIRST-8 } -enum : uint { HDN_TRACKW = HDN_FIRST-28 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { HDN_GETDISPINFOA = HDN_FIRST-9 } -enum : uint { HDN_GETDISPINFOW = HDN_FIRST-29 } -enum : uint { HDN_BEGINDRAG = HDN_FIRST-10 } -enum : uint { HDN_ENDDRAG = HDN_FIRST-11 } -// #endif -// #if (_WIN32_IE >= 0x0500) -enum : uint { HDN_FILTERCHANGE = HDN_FIRST-12 } -enum : uint { HDN_FILTERBTNCLICK = HDN_FIRST-13 } -// #endif - -// #ifdef UNICODE -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #if (_WIN32_IE >= 0x0300) -// #... -// #endif -// #else -alias HDN_ITEMCHANGINGA HDN_ITEMCHANGING; -alias HDN_ITEMCHANGEDA HDN_ITEMCHANGED; -alias HDN_ITEMCLICKA HDN_ITEMCLICK; -alias HDN_ITEMDBLCLICKA HDN_ITEMDBLCLICK; -alias HDN_DIVIDERDBLCLICKA HDN_DIVIDERDBLCLICK; -alias HDN_BEGINTRACKA HDN_BEGINTRACK; -alias HDN_ENDTRACKA HDN_ENDTRACK; -alias HDN_TRACKA HDN_TRACK; -// #if (_WIN32_IE >= 0x0300) -alias HDN_GETDISPINFOA HDN_GETDISPINFO; -// #endif -// #endif - -// #if (_WIN32_IE >= 0x0300) -alias NMHEADERA HD_NOTIFYA; -alias NMHEADERW HD_NOTIFYW; -// #else -// #... -// #... -// #... -// #... -// #endif -alias NMHEADER HD_NOTIFY; - -struct tagNMHEADERA { - NMHDR hdr; - int iItem; - int iButton; - HDITEMA *pitem; -} -alias tagNMHEADERA NMHEADERA; -alias tagNMHEADERA* LPNMHEADERA; - -struct tagNMHEADERW { - NMHDR hdr; - int iItem; - int iButton; - HDITEMW *pitem; -} -alias tagNMHEADERW NMHEADERW; -alias tagNMHEADERW* LPNMHEADERW; - -// #ifdef UNICODE -// #... -// #... -// #else -alias NMHEADERA NMHEADER; -alias LPNMHEADERA LPNMHEADER; -// #endif - -struct tagNMHDDISPINFOW { - NMHDR hdr; - int iItem; - UINT mask; - LPWSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -} -alias tagNMHDDISPINFOW NMHDDISPINFOW; -alias tagNMHDDISPINFOW* LPNMHDDISPINFOW; - -struct tagNMHDDISPINFOA { - NMHDR hdr; - int iItem; - UINT mask; - LPSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -} -alias tagNMHDDISPINFOA NMHDDISPINFOA; -alias tagNMHDDISPINFOA* LPNMHDDISPINFOA; - -// #ifdef UNICODE -// #... -// #... -// #else -alias NMHDDISPINFOA NMHDDISPINFO; -alias LPNMHDDISPINFOA LPNMHDDISPINFO; -// #endif - -// #if (_WIN32_IE >= 0x0500) -struct tagNMHDFILTERBTNCLICK { - NMHDR hdr; - INT iItem; - RECT rc; -} -alias tagNMHDFILTERBTNCLICK NMHDFILTERBTNCLICK; -alias tagNMHDFILTERBTNCLICK* LPNMHDFILTERBTNCLICK; - -// #endif - -// #endif // NOHEADER - -// #ifndef NOTOOLBAR - -// #ifdef _WIN32 -const wchar[] TOOLBARCLASSNAMEW = "ToolbarWindow32"; -const char[] TOOLBARCLASSNAMEA = "ToolbarWindow32"; - -// #ifdef UNICODE -// #... -// #else -alias TOOLBARCLASSNAMEA TOOLBARCLASSNAME; -// #endif - -// #else -// #... -// #endif - -struct _TBBUTTON { - int iBitmap; - int idCommand; - BYTE fsState; - BYTE fsStyle; -// #ifdef _WIN64 -// ... -// #elif defined(_WIN32) - BYTE bReserved[2]; -// #endif - DWORD_PTR dwData; - INT_PTR iString; -} -alias _TBBUTTON TBBUTTON; -alias _TBBUTTON* PTBBUTTON; -alias _TBBUTTON* LPTBBUTTON; - -alias TBBUTTON* LPCTBBUTTON; - -struct _COLORMAP { - COLORREF from; - COLORREF to; -} -alias _COLORMAP COLORMAP; -alias _COLORMAP* LPCOLORMAP; - -extern(Windows) export HWND CreateToolbarEx(HWND hwnd, DWORD ws, UINT wID, int nBitmaps, - HINSTANCE hBMInst, UINT_PTR wBMID, LPCTBBUTTON lpButtons, - int iNumButtons, int dxButton, int dyButton, - int dxBitmap, int dyBitmap, UINT uStructSize); - -extern(Windows) export HBITMAP CreateMappedBitmap(HINSTANCE hInstance, INT_PTR idBitmap, - UINT wFlags, LPCOLORMAP lpColorMap, - int iNumMaps); - -enum : uint { CMB_MASKED = 0x02 } -enum : uint { TBSTATE_CHECKED = 0x01 } -enum : uint { TBSTATE_PRESSED = 0x02 } -enum : uint { TBSTATE_ENABLED = 0x04 } -enum : uint { TBSTATE_HIDDEN = 0x08 } -enum : uint { TBSTATE_INDETERMINATE = 0x10 } -enum : uint { TBSTATE_WRAP = 0x20 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TBSTATE_ELLIPSES = 0x40 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { TBSTATE_MARKED = 0x80 } -// #endif - -enum : uint { TBSTYLE_BUTTON = 0x0000 } -enum : uint { TBSTYLE_SEP = 0x0001 } -enum : uint { TBSTYLE_CHECK = 0x0002 } -enum : uint { TBSTYLE_GROUP = 0x0004 } -enum : uint { TBSTYLE_CHECKGROUP = TBSTYLE_GROUP | TBSTYLE_CHECK } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TBSTYLE_DROPDOWN = 0x0008 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { TBSTYLE_AUTOSIZE = 0x0010 } -enum : uint { TBSTYLE_NOPREFIX = 0x0020 } -// #endif - -enum : uint { TBSTYLE_TOOLTIPS = 0x0100 } -enum : uint { TBSTYLE_WRAPABLE = 0x0200 } -enum : uint { TBSTYLE_ALTDRAG = 0x0400 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TBSTYLE_FLAT = 0x0800 } -enum : uint { TBSTYLE_LIST = 0x1000 } -enum : uint { TBSTYLE_CUSTOMERASE = 0x2000 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { TBSTYLE_REGISTERDROP = 0x4000 } -enum : uint { TBSTYLE_TRANSPARENT = 0x8000 } -enum : uint { TBSTYLE_EX_DRAWDDARROWS = 0x00000001 } -// #endif - -// #if (_WIN32_IE >= 0x0500) -alias TBSTYLE_BUTTON BTNS_BUTTON; -alias TBSTYLE_SEP BTNS_SEP; -alias TBSTYLE_CHECK BTNS_CHECK; -alias TBSTYLE_GROUP BTNS_GROUP; -alias TBSTYLE_CHECKGROUP BTNS_CHECKGROUP; -alias TBSTYLE_DROPDOWN BTNS_DROPDOWN; -alias TBSTYLE_AUTOSIZE BTNS_AUTOSIZE; -alias TBSTYLE_NOPREFIX BTNS_NOPREFIX; -// #if (_WIN32_IE >= 0x0501) -enum : uint { BTNS_SHOWTEXT = 0x0040 } -// #endif // 0x0501 -enum : uint { BTNS_WHOLEDROPDOWN = 0x0080 } -// #endif - -// #if (_WIN32_IE >= 0x0501) -enum : uint { TBSTYLE_EX_MIXEDBUTTONS = 0x00000008 } -enum : uint { TBSTYLE_EX_HIDECLIPPEDBUTTONS = 0x00000010 } -// #endif // 0x0501 - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { TBSTYLE_EX_DOUBLEBUFFER = 0x00000080 } -// #endif - -// #if (_WIN32_IE >= 0x0400) - -struct _NMTBCUSTOMDRAW { - NMCUSTOMDRAW nmcd; - HBRUSH hbrMonoDither; - HBRUSH hbrLines; - HPEN hpenLines; - - COLORREF clrText; - COLORREF clrMark; - COLORREF clrTextHighlight; - COLORREF clrBtnFace; - COLORREF clrBtnHighlight; - COLORREF clrHighlightHotTrack; - - RECT rcText; - - int nStringBkMode; - int nHLStringBkMode; -// #if (_WIN32_WINNT >= 0x501) - int iListGap; -// #endif -} -alias _NMTBCUSTOMDRAW NMTBCUSTOMDRAW; -alias _NMTBCUSTOMDRAW* LPNMTBCUSTOMDRAW; - -enum : uint { TBCDRF_NOEDGES = 0x00010000 } -enum : uint { TBCDRF_HILITEHOTTRACK = 0x00020000 } -enum : uint { TBCDRF_NOOFFSET = 0x00040000 } -enum : uint { TBCDRF_NOMARK = 0x00080000 } -enum : uint { TBCDRF_NOETCHEDEFFECT = 0x00100000 } -// #endif - -// #if (_WIN32_IE >= 0x0500) -enum : uint { TBCDRF_BLENDICON = 0x00200000 } -enum : uint { TBCDRF_NOBACKGROUND = 0x00400000 } -// #endif - -enum : uint { TB_ENABLEBUTTON = WM_USER + 1 } -enum : uint { TB_CHECKBUTTON = WM_USER + 2 } -enum : uint { TB_PRESSBUTTON = WM_USER + 3 } -enum : uint { TB_HIDEBUTTON = WM_USER + 4 } -enum : uint { TB_INDETERMINATE = WM_USER + 5 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { TB_MARKBUTTON = WM_USER + 6 } -// #endif -enum : uint { TB_ISBUTTONENABLED = WM_USER + 9 } -enum : uint { TB_ISBUTTONCHECKED = WM_USER + 10 } -enum : uint { TB_ISBUTTONPRESSED = WM_USER + 11 } -enum : uint { TB_ISBUTTONHIDDEN = WM_USER + 12 } -enum : uint { TB_ISBUTTONINDETERMINATE = WM_USER + 13 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { TB_ISBUTTONHIGHLIGHTED = WM_USER + 14 } -// #endif -enum : uint { TB_SETSTATE = WM_USER + 17 } -enum : uint { TB_GETSTATE = WM_USER + 18 } -enum : uint { TB_ADDBITMAP = WM_USER + 19 } - -// #ifdef _WIN32 -struct tagTBADDBITMAP { - HINSTANCE hInst; - UINT_PTR nID; -} -alias tagTBADDBITMAP TBADDBITMAP; -alias tagTBADDBITMAP* LPTBADDBITMAP; - -HINSTANCE HINST_COMMCTRL = cast(HINSTANCE)(-1); -enum : uint { IDB_STD_SMALL_COLOR = 0 } -enum : uint { IDB_STD_LARGE_COLOR = 1 } -enum : uint { IDB_VIEW_SMALL_COLOR = 4 } -enum : uint { IDB_VIEW_LARGE_COLOR = 5 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { IDB_HIST_SMALL_COLOR = 8 } -enum : uint { IDB_HIST_LARGE_COLOR = 9 } -// #endif - -enum : uint { STD_CUT = 0 } -enum : uint { STD_COPY = 1 } -enum : uint { STD_PASTE = 2 } -enum : uint { STD_UNDO = 3 } -enum : uint { STD_REDOW = 4 } -enum : uint { STD_DELETE = 5 } -enum : uint { STD_FILENEW = 6 } -enum : uint { STD_FILEOPEN = 7 } -enum : uint { STD_FILESAVE = 8 } -enum : uint { STD_PRINTPRE = 9 } -enum : uint { STD_PROPERTIES = 10 } -enum : uint { STD_HELP = 11 } -enum : uint { STD_FIND = 12 } -enum : uint { STD_REPLACE = 13 } -enum : uint { STD_PRINT = 14 } - -enum : uint { VIEW_LARGEICONS = 0 } -enum : uint { VIEW_SMALLICONS = 1 } -enum : uint { VIEW_LIST = 2 } -enum : uint { VIEW_DETAILS = 3 } -enum : uint { VIEW_SORTNAME = 4 } -enum : uint { VIEW_SORTSIZE = 5 } -enum : uint { VIEW_SORTDATE = 6 } -enum : uint { VIEW_SORTTYPE = 7 } -enum : uint { VIEW_PARENTFOLDER = 8 } -enum : uint { VIEW_NETCONNECT = 9 } -enum : uint { VIEW_NETDISCONNECT = 10 } -enum : uint { VIEW_NEWFOLDER = 11 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { VIEW_VIEWMENU = 12 } -// #endif - -// #if (_WIN32_IE >= 0x0300) -enum : uint { HIST_BACK = 0 } -enum : uint { HIST_FORWARD = 1 } -enum : uint { HIST_FAVORITES = 2 } -enum : uint { HIST_ADDTOFAVORITES = 3 } -enum : uint { HIST_VIEWTREE = 4 } -// #endif - -// #endif - -// #if (_WIN32_IE >= 0x0400) -enum : uint { TB_ADDBUTTONSA = WM_USER + 20 } -enum : uint { TB_INSERTBUTTONA = WM_USER + 21 } -// #else -// #... -// #... -// #endif - -enum : uint { TB_DELETEBUTTON = WM_USER + 22 } -enum : uint { TB_GETBUTTON = WM_USER + 23 } -enum : uint { TB_BUTTONCOUNT = WM_USER + 24 } -enum : uint { TB_COMMANDTOINDEX = WM_USER + 25 } - -// #ifdef _WIN32 - -struct tagTBSAVEPARAMSA { - HKEY hkr; - LPCSTR pszSubKey; - LPCSTR pszValueName; -} -alias tagTBSAVEPARAMSA TBSAVEPARAMSA; -alias tagTBSAVEPARAMSA* LPTBSAVEPARAMSA; - -struct tagTBSAVEPARAMSW { - HKEY hkr; - LPCWSTR pszSubKey; - LPCWSTR pszValueName; -} -alias tagTBSAVEPARAMSW TBSAVEPARAMSW; -alias tagTBSAVEPARAMSW* LPTBSAVEPARAMW; - -// #ifdef UNICODE -// #... -// #... -// #else -alias TBSAVEPARAMSA TBSAVEPARAMS; -alias LPTBSAVEPARAMSA LPTBSAVEPARAMS; -// #endif - -// #endif // _WIN32 - -enum : uint { TB_SAVERESTOREA = WM_USER + 26 } -enum : uint { TB_SAVERESTOREW = WM_USER + 76 } -enum : uint { TB_CUSTOMIZE = WM_USER + 27 } -enum : uint { TB_ADDSTRINGA = WM_USER + 28 } -enum : uint { TB_ADDSTRINGW = WM_USER + 77 } -enum : uint { TB_GETITEMRECT = WM_USER + 29 } -enum : uint { TB_BUTTONSTRUCTSIZE = WM_USER + 30 } -enum : uint { TB_SETBUTTONSIZE = WM_USER + 31 } -enum : uint { TB_SETBITMAPSIZE = WM_USER + 32 } -enum : uint { TB_AUTOSIZE = WM_USER + 33 } -enum : uint { TB_GETTOOLTIPS = WM_USER + 35 } -enum : uint { TB_SETTOOLTIPS = WM_USER + 36 } -enum : uint { TB_SETPARENT = WM_USER + 37 } -enum : uint { TB_SETROWS = WM_USER + 39 } -enum : uint { TB_GETROWS = WM_USER + 40 } -enum : uint { TB_SETCMDID = WM_USER + 42 } -enum : uint { TB_CHANGEBITMAP = WM_USER + 43 } -enum : uint { TB_GETBITMAP = WM_USER + 44 } -enum : uint { TB_GETBUTTONTEXTA = WM_USER + 45 } -enum : uint { TB_GETBUTTONTEXTW = WM_USER + 75 } -enum : uint { TB_REPLACEBITMAP = WM_USER + 46 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TB_SETINDENT = WM_USER + 47 } -enum : uint { TB_SETIMAGELIST = WM_USER + 48 } -enum : uint { TB_GETIMAGELIST = WM_USER + 49 } -enum : uint { TB_LOADIMAGES = WM_USER + 50 } -enum : uint { TB_GETRECT = WM_USER + 51 } -enum : uint { TB_SETHOTIMAGELIST = WM_USER + 52 } -enum : uint { TB_GETHOTIMAGELIST = WM_USER + 53 } -enum : uint { TB_SETDISABLEDIMAGELIST = WM_USER + 54 } -enum : uint { TB_GETDISABLEDIMAGELIST = WM_USER + 55 } -enum : uint { TB_SETSTYLE = WM_USER + 56 } -enum : uint { TB_GETSTYLE = WM_USER + 57 } -enum : uint { TB_GETBUTTONSIZE = WM_USER + 58 } -enum : uint { TB_SETBUTTONWIDTH = WM_USER + 59 } -enum : uint { TB_SETMAXTEXTROWS = WM_USER + 60 } -enum : uint { TB_GETTEXTROWS = WM_USER + 61 } -// #endif // _WIN32_IE >= 0x0300 - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias TB_GETBUTTONTEXTA TB_GETBUTTONTEXT; -alias TB_SAVERESTOREA TB_SAVERESTORE; -alias TB_ADDSTRINGA TB_ADDSTRING; -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { TB_GETOBJECT = WM_USER + 62 } -enum : uint { TB_GETHOTITEM = WM_USER + 71 } -enum : uint { TB_SETHOTITEM = WM_USER + 72 } -enum : uint { TB_SETANCHORHIGHLIGHT = WM_USER + 73 } -enum : uint { TB_GETANCHORHIGHLIGHT = WM_USER + 74 } -enum : uint { TB_MAPACCELERATORA = WM_USER + 78 } - -struct _0 { - int iButton; - DWORD dwFlags; -} -alias _0 TBINSERTMARK; -alias _0* LPTBINSERTMARK; - -enum : uint { TBIMHT_AFTER = 0x00000001 } -enum : uint { TBIMHT_BACKGROUND = 0x00000002 } - -enum : uint { TB_GETINSERTMARK = WM_USER + 79 } -enum : uint { TB_SETINSERTMARK = WM_USER + 80 } -enum : uint { TB_INSERTMARKHITTEST = WM_USER + 81 } -enum : uint { TB_MOVEBUTTON = WM_USER + 82 } -enum : uint { TB_GETMAXSIZE = WM_USER + 83 } -enum : uint { TB_SETEXTENDEDSTYLE = WM_USER + 84 } -enum : uint { TB_GETEXTENDEDSTYLE = WM_USER + 85 } -enum : uint { TB_GETPADDING = WM_USER + 86 } -enum : uint { TB_SETPADDING = WM_USER + 87 } -enum : uint { TB_SETINSERTMARKCOLOR = WM_USER + 88 } -enum : uint { TB_GETINSERTMARKCOLOR = WM_USER + 89 } - -alias CCM_SETCOLORSCHEME TB_SETCOLORSCHEME; -alias CCM_GETCOLORSCHEME TB_GETCOLORSCHEME; - -alias CCM_SETUNICODEFORMAT TB_SETUNICODEFORMAT; -alias CCM_GETUNICODEFORMAT TB_GETUNICODEFORMAT; - -enum : uint { TB_MAPACCELERATORW = WM_USER + 90 } -// #ifdef UNICODE -// #... -// #else -alias TB_MAPACCELERATORA TB_MAPACCELERATOR; -// #endif - -// #endif // _WIN32_IE >= 0x0400 - -struct _1 { - HINSTANCE hInstOld; - UINT_PTR nIDOld; - HINSTANCE hInstNew; - UINT_PTR nIDNew; - int nButtons; -} -alias _1 TBREPLACEBITMAP; -alias _1* LPTBREPLACEBITMAP; - -// #ifdef _WIN32 - -enum : uint { TBBF_LARGE = 0x0001 } - -enum : uint { TB_GETBITMAPFLAGS = WM_USER + 41 } - -// #if (_WIN32_IE >= 0x0400) -enum : uint { TBIF_IMAGE = 0x00000001 } -enum : uint { TBIF_TEXT = 0x00000002 } -enum : uint { TBIF_STATE = 0x00000004 } -enum : uint { TBIF_STYLE = 0x00000008 } -enum : uint { TBIF_LPARAM = 0x00000010 } -enum : uint { TBIF_COMMAND = 0x00000020 } -enum : uint { TBIF_SIZE = 0x00000040 } - -// #if (_WIN32_IE >= 0x0500) -enum : uint { TBIF_BYINDEX = 0x80000000 } -// #endif - -struct _2 { - UINT cbSize; - DWORD dwMask; - int idCommand; - int iImage; - BYTE fsState; - BYTE fsStyle; - WORD cx; - DWORD_PTR lParam; - LPSTR pszText; - int cchText; -} -alias _2 TBBUTTONINFOA; -alias _2* LPTBBUTTONINFOA; - -struct _3 { - UINT cbSize; - DWORD dwMask; - int idCommand; - int iImage; - BYTE fsState; - BYTE fsStyle; - WORD cx; - DWORD_PTR lParam; - LPWSTR pszText; - int cchText; -} -alias _3 TBBUTTONINFOW; -alias _3* LPTBBUTTONINFOW; - -// #ifdef UNICODE -// #... -// #... -// #else -alias TBBUTTONINFOA TBBUTTONINFO; -alias LPTBBUTTONINFOA LPTBBUTTONINFO; -// #endif - -enum : uint { TB_GETBUTTONINFOW = WM_USER + 63 } -enum : uint { TB_SETBUTTONINFOW = WM_USER + 64 } -enum : uint { TB_GETBUTTONINFOA = WM_USER + 65 } -enum : uint { TB_SETBUTTONINFOA = WM_USER + 66 } -// #ifdef UNICODE -// #... -// #... -// #else -alias TB_GETBUTTONINFOA TB_GETBUTTONINFO; -alias TB_SETBUTTONINFOA TB_SETBUTTONINFO; -// #endif - -enum : uint { TB_INSERTBUTTONW = WM_USER + 67 } -enum : uint { TB_ADDBUTTONSW = WM_USER + 68 } - -enum : uint { TB_HITTEST = WM_USER + 69 } - -// #ifdef UNICODE -// #... -// #... -// #else -alias TB_INSERTBUTTONA TB_INSERTBUTTON; -alias TB_ADDBUTTONSA TB_ADDBUTTONS; -// #endif - -enum : uint { TB_SETDRAWTEXTFLAGS = WM_USER + 70 } - -// #endif // _WIN32_IE >= 0x0400 - -// #if (_WIN32_IE >= 0x0500) - -enum : uint { TB_GETSTRINGW = WM_USER + 91 } -enum : uint { TB_GETSTRINGA = WM_USER + 92 } -// #ifdef UNICODE -// #... -// #else -alias TB_GETSTRINGA TB_GETSTRING; -// #endif - -// #endif // _WIN32_IE >= 0x0500 - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { TBMF_PAD = 0x00000001 } -enum : uint { TBMF_BARPAD = 0x00000002 } -enum : uint { TBMF_BUTTONSPACING = 0x00000004 } - -struct _4 { - UINT cbSize; - DWORD dwMask; - int cxPad; - int cyPad; - int cxBarPad; - int cyBarPad; - int cxButtonSpacing; - int cyButtonSpacing; -} -alias _4 TBMETRICS; -alias _4* LPTBMETRICS; - -enum : uint { TB_GETMETRICS = WM_USER + 101 } -enum : uint { TB_SETMETRICS = WM_USER + 102 } -// #endif - -// #if (_WIN32_WINNT >= 0x501) -alias CCM_SETWINDOWTHEME TB_SETWINDOWTHEME; -// #endif - -enum : uint { TBN_GETBUTTONINFOA = TBN_FIRST-0 } -enum : uint { TBN_BEGINDRAG = TBN_FIRST-1 } -enum : uint { TBN_ENDDRAG = TBN_FIRST-2 } -enum : uint { TBN_BEGINADJUST = TBN_FIRST-3 } -enum : uint { TBN_ENDADJUST = TBN_FIRST-4 } -enum : uint { TBN_RESET = TBN_FIRST-5 } -enum : uint { TBN_QUERYINSERT = TBN_FIRST-6 } -enum : uint { TBN_QUERYDELETE = TBN_FIRST-7 } -enum : uint { TBN_TOOLBARCHANGE = TBN_FIRST-8 } -enum : uint { TBN_CUSTHELP = TBN_FIRST-9 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TBN_DROPDOWN = TBN_FIRST - 10 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { TBN_GETOBJECT = TBN_FIRST - 12 } - -struct tagNMTBHOTITEM { - NMHDR hdr; - int idOld; - int idNew; - DWORD dwFlags; -} -alias tagNMTBHOTITEM NMTBHOTITEM; -alias tagNMTBHOTITEM* LPNMTBHOTITEM; - -enum : uint { HICF_OTHER = 0x00000000 } -enum : uint { HICF_MOUSE = 0x00000001 } -enum : uint { HICF_ARROWKEYS = 0x00000002 } -enum : uint { HICF_ACCELERATOR = 0x00000004 } -enum : uint { HICF_DUPACCEL = 0x00000008 } -enum : uint { HICF_ENTERING = 0x00000010 } -enum : uint { HICF_LEAVING = 0x00000020 } -enum : uint { HICF_RESELECT = 0x00000040 } -enum : uint { HICF_LMOUSE = 0x00000080 } -enum : uint { HICF_TOGGLEDROPDOWN = 0x00000100 } - -enum : uint { TBN_HOTITEMCHANGE = TBN_FIRST - 13 } -enum : uint { TBN_DRAGOUT = TBN_FIRST - 14 } -enum : uint { TBN_DELETINGBUTTON = TBN_FIRST - 15 } -enum : uint { TBN_GETDISPINFOA = TBN_FIRST - 16 } -enum : uint { TBN_GETDISPINFOW = TBN_FIRST - 17 } -enum : uint { TBN_GETINFOTIPA = TBN_FIRST - 18 } -enum : uint { TBN_GETINFOTIPW = TBN_FIRST - 19 } -enum : uint { TBN_GETBUTTONINFOW = TBN_FIRST - 20 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { TBN_RESTORE = TBN_FIRST - 21 } -enum : uint { TBN_SAVE = TBN_FIRST - 22 } -enum : uint { TBN_INITCUSTOMIZE = TBN_FIRST - 23 } -enum : uint { TBNRF_HIDEHELP = 0x00000001 } -enum : uint { TBNRF_ENDCUSTOMIZE = 0x00000002 } -// #endif // (_WIN32_IE >= 0x0500) - -// #if (_WIN32_IE >= 0x0500) - -struct tagNMTBSAVE { - NMHDR hdr; - DWORD * pData; - DWORD * pCurrent; - UINT cbData; - int iItem; - int cButtons; - TBBUTTON tbButton; -} -alias tagNMTBSAVE NMTBSAVE; -alias tagNMTBSAVE* LPNMTBSAVE; - -struct tagNMTBRESTORE { - NMHDR hdr; - DWORD * pData; - DWORD * pCurrent; - UINT cbData; - int iItem; - int cButtons; - int cbBytesPerRecord; - TBBUTTON tbButton; -} -alias tagNMTBRESTORE NMTBRESTORE; -alias tagNMTBRESTORE* LPNMTBRESTORE; - -// #endif // (_WIN32_IE >= 0x0500) - -struct tagNMTBGETINFOTIPA { - NMHDR hdr; - LPSTR pszText; - int cchTextMax; - int iItem; - LPARAM lParam; -} -alias tagNMTBGETINFOTIPA NMTBGETINFOTIPA; -alias tagNMTBGETINFOTIPA* LPNMTBGETINFOTIPA; - -struct tagNMTBGETINFOTIPW { - NMHDR hdr; - LPWSTR pszText; - int cchTextMax; - int iItem; - LPARAM lParam; -} -alias tagNMTBGETINFOTIPW NMTBGETINFOTIPW; -alias tagNMTBGETINFOTIPW* LPNMTBGETINFOTIPW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias TBN_GETINFOTIPA TBN_GETINFOTIP; -alias NMTBGETINFOTIPA NMTBGETINFOTIP; -alias LPNMTBGETINFOTIPA LPNMTBGETINFOTIP; -// #endif - -enum : uint { TBNF_IMAGE = 0x00000001 } -enum : uint { TBNF_TEXT = 0x00000002 } -enum : uint { TBNF_DI_SETITEM = 0x10000000 } - -struct _5 { - NMHDR hdr; - DWORD dwMask; - int idCommand; - DWORD_PTR lParam; - int iImage; - LPSTR pszText; - int cchText; -} -alias _5 NMTBDISPINFOA; -alias _5* LPNMTBDISPINFOA; - -struct _6 { - NMHDR hdr; - DWORD dwMask; - int idCommand; - DWORD_PTR lParam; - int iImage; - LPWSTR pszText; - int cchText; -} -alias _6 NMTBDISPINFOW; -alias _6* LPNMTBDISPINFOW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias TBN_GETDISPINFOA TBN_GETDISPINFO; -alias NMTBDISPINFOA NMTBDISPINFO; -alias LPNMTBDISPINFOA LPNMTBDISPINFO; -// #endif - -enum : uint { TBDDRET_DEFAULT = 0 } -enum : uint { TBDDRET_NODEFAULT = 1 } -enum : uint { TBDDRET_TREATPRESSED = 2 } - -// #endif - -// #ifdef UNICODE -// #... -// #else -alias TBN_GETBUTTONINFOA TBN_GETBUTTONINFO; -// #endif - -// #if (_WIN32_IE >= 0x0300) -alias NMTOOLBARA TBNOTIFYA; -alias NMTOOLBARW TBNOTIFYW; -alias LPNMTOOLBARA LPTBNOTIFYA; -alias LPNMTOOLBARW LPTBNOTIFYW; -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -alias NMTOOLBAR TBNOTIFY; -alias LPNMTOOLBAR LPTBNOTIFY; - -// #if (_WIN32_IE >= 0x0300) -struct tagNMTOOLBARA { - NMHDR hdr; - int iItem; - TBBUTTON tbButton; - int cchText; - LPSTR pszText; -// #if (_WIN32_IE >= 0x500) - RECT rcButton; -// #endif -} -alias tagNMTOOLBARA NMTOOLBARA; -alias tagNMTOOLBARA* LPNMTOOLBARA; - -// #endif - -// #if (_WIN32_IE >= 0x0300) -struct tagNMTOOLBARW { - NMHDR hdr; - int iItem; - TBBUTTON tbButton; - int cchText; - LPWSTR pszText; -// #if (_WIN32_IE >= 0x500) - RECT rcButton; -// #endif -} -alias tagNMTOOLBARW NMTOOLBARW; -alias tagNMTOOLBARW* LPNMTOOLBARW; - -// #endif - -// #ifdef UNICODE -// #... -// #... -// #else -alias NMTOOLBARA NMTOOLBAR; -alias LPNMTOOLBARA LPNMTOOLBAR; -// #endif - -// #endif - -// #endif // NOTOOLBAR - -// #if (_WIN32_IE >= 0x0300) - -// #ifndef NOREBAR - -// #ifdef _WIN32 -const wchar[] REBARCLASSNAMEW = "ReBarWindow32"; -const char[] REBARCLASSNAMEA = "ReBarWindow32"; - -// #ifdef UNICODE -// #... -// #else -alias REBARCLASSNAMEA REBARCLASSNAME; -// #endif - -// #else -// #... -// #endif - -enum : uint { RBIM_IMAGELIST = 0x00000001 } - -// #if (_WIN32_IE >= 0x0400) -enum : uint { RBS_TOOLTIPS = 0x0100 } -enum : uint { RBS_VARHEIGHT = 0x0200 } -enum : uint { RBS_BANDBORDERS = 0x0400 } -enum : uint { RBS_FIXEDORDER = 0x0800 } -enum : uint { RBS_REGISTERDROP = 0x1000 } -enum : uint { RBS_AUTOSIZE = 0x2000 } -enum : uint { RBS_VERTICALGRIPPER = 0x4000 } -enum : uint { RBS_DBLCLKTOGGLE = 0x8000 } -// #else -// #... -// #... -// #... -// #... -// #endif // _WIN32_IE >= 0x0400 - -struct tagREBARINFO { - UINT cbSize; - UINT fMask; -// #ifndef NOIMAGEAPIS - HIMAGELIST himl; -// #else -// ... -// #endif -} -alias tagREBARINFO REBARINFO; -alias tagREBARINFO* LPREBARINFO; - -enum : uint { RBBS_BREAK = 0x00000001 } -enum : uint { RBBS_FIXEDSIZE = 0x00000002 } -enum : uint { RBBS_CHILDEDGE = 0x00000004 } -enum : uint { RBBS_HIDDEN = 0x00000008 } -enum : uint { RBBS_NOVERT = 0x00000010 } -enum : uint { RBBS_FIXEDBMP = 0x00000020 } -// #if (_WIN32_IE >= 0x0400) // -enum : uint { RBBS_VARIABLEHEIGHT = 0x00000040 } -enum : uint { RBBS_GRIPPERALWAYS = 0x00000080 } -enum : uint { RBBS_NOGRIPPER = 0x00000100 } -// #if (_WIN32_IE >= 0x0500) // -enum : uint { RBBS_USECHEVRON = 0x00000200 } -// #if (_WIN32_IE >= 0x0501) // -enum : uint { RBBS_HIDETITLE = 0x00000400 } -enum : uint { RBBS_TOPALIGN = 0x00000800 } -// #endif // 0x0501 // -// #endif // 0x0500 // -// #endif // 0x0400 // - -enum : uint { RBBIM_STYLE = 0x00000001 } -enum : uint { RBBIM_COLORS = 0x00000002 } -enum : uint { RBBIM_TEXT = 0x00000004 } -enum : uint { RBBIM_IMAGE = 0x00000008 } -enum : uint { RBBIM_CHILD = 0x00000010 } -enum : uint { RBBIM_CHILDSIZE = 0x00000020 } -enum : uint { RBBIM_SIZE = 0x00000040 } -enum : uint { RBBIM_BACKGROUND = 0x00000080 } -enum : uint { RBBIM_ID = 0x00000100 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { RBBIM_IDEALSIZE = 0x00000200 } -enum : uint { RBBIM_LPARAM = 0x00000400 } -enum : uint { RBBIM_HEADERSIZE = 0x00000800 } -// #endif - -struct tagREBARBANDINFOA { - UINT cbSize; - UINT fMask; - UINT fStyle; - COLORREF clrFore; - COLORREF clrBack; - LPSTR lpText; - UINT cch; - int iImage; - HWND hwndChild; - UINT cxMinChild; - UINT cyMinChild; - UINT cx; - HBITMAP hbmBack; - UINT wID; -// #if (_WIN32_IE >= 0x0400) - UINT cyChild; - UINT cyMaxChild; - UINT cyIntegral; - UINT cxIdeal; - LPARAM lParam; - UINT cxHeader; -// #endif -} -alias tagREBARBANDINFOA REBARBANDINFOA; -alias tagREBARBANDINFOA* LPREBARBANDINFOA; - -alias REBARBANDINFOA* LPCREBARBANDINFOA; - -// #define REBARBANDINFOA_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOA, wID) -// #define REBARBANDINFOW_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOW, wID) - -struct tagREBARBANDINFOW { - UINT cbSize; - UINT fMask; - UINT fStyle; - COLORREF clrFore; - COLORREF clrBack; - LPWSTR lpText; - UINT cch; - int iImage; - HWND hwndChild; - UINT cxMinChild; - UINT cyMinChild; - UINT cx; - HBITMAP hbmBack; - UINT wID; -// #if (_WIN32_IE >= 0x0400) - UINT cyChild; - UINT cyMaxChild; - UINT cyIntegral; - UINT cxIdeal; - LPARAM lParam; - UINT cxHeader; -// #endif -} -alias tagREBARBANDINFOW REBARBANDINFOW; -alias tagREBARBANDINFOW* LPREBARBANDINFOW; - -alias REBARBANDINFOW* LPCREBARBANDINFOW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #... -// #else -alias REBARBANDINFOA REBARBANDINFO; -alias LPREBARBANDINFOA LPREBARBANDINFO; -alias LPCREBARBANDINFOA LPCREBARBANDINFO; -// #define REBARBANDINFO_V3_SIZE REBARBANDINFOA_V3_SIZE -// #endif - -enum : uint { RB_INSERTBANDA = WM_USER + 1 } -enum : uint { RB_DELETEBAND = WM_USER + 2 } -enum : uint { RB_GETBARINFO = WM_USER + 3 } -enum : uint { RB_SETBARINFO = WM_USER + 4 } -// #if (_WIN32_IE < 0x0400) -// #... -// #endif -enum : uint { RB_SETBANDINFOA = WM_USER + 6 } -enum : uint { RB_SETPARENT = WM_USER + 7 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { RB_HITTEST = WM_USER + 8 } -enum : uint { RB_GETRECT = WM_USER + 9 } -// #endif -enum : uint { RB_INSERTBANDW = WM_USER + 10 } -enum : uint { RB_SETBANDINFOW = WM_USER + 11 } -enum : uint { RB_GETBANDCOUNT = WM_USER + 12 } -enum : uint { RB_GETROWCOUNT = WM_USER + 13 } -enum : uint { RB_GETROWHEIGHT = WM_USER + 14 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { RB_IDTOINDEX = WM_USER + 16 } -enum : uint { RB_GETTOOLTIPS = WM_USER + 17 } -enum : uint { RB_SETTOOLTIPS = WM_USER + 18 } -enum : uint { RB_SETBKCOLOR = WM_USER + 19 } -enum : uint { RB_GETBKCOLOR = WM_USER + 20 } -enum : uint { RB_SETTEXTCOLOR = WM_USER + 21 } -enum : uint { RB_GETTEXTCOLOR = WM_USER + 22 } - -// #if (_WIN32_WINNT >= 0x0501) -enum : uint { RBSTR_CHANGERECT = 0x0001 } -// #endif - -enum : uint { RB_SIZETORECT = WM_USER + 23 } -// #endif // _WIN32_IE >= 0x0400 - -alias CCM_SETCOLORSCHEME RB_SETCOLORSCHEME; -alias CCM_GETCOLORSCHEME RB_GETCOLORSCHEME; - -// #ifdef UNICODE -// #... -// #... -// #else -alias RB_INSERTBANDA RB_INSERTBAND; -alias RB_SETBANDINFOA RB_SETBANDINFO; -// #endif - -// #if (_WIN32_IE >= 0x0400) - -enum : uint { RB_BEGINDRAG = WM_USER + 24 } -enum : uint { RB_ENDDRAG = WM_USER + 25 } -enum : uint { RB_DRAGMOVE = WM_USER + 26 } -enum : uint { RB_GETBARHEIGHT = WM_USER + 27 } -enum : uint { RB_GETBANDINFOW = WM_USER + 28 } -enum : uint { RB_GETBANDINFOA = WM_USER + 29 } - -// #ifdef UNICODE -// #... -// #else -alias RB_GETBANDINFOA RB_GETBANDINFO; -// #endif - -enum : uint { RB_MINIMIZEBAND = WM_USER + 30 } -enum : uint { RB_MAXIMIZEBAND = WM_USER + 31 } - -enum : uint { RB_GETDROPTARGET = CCM_GETDROPTARGET } - -enum : uint { RB_GETBANDBORDERS = WM_USER + 34 } - -enum : uint { RB_SHOWBAND = WM_USER + 35 } -enum : uint { RB_SETPALETTE = WM_USER + 37 } -enum : uint { RB_GETPALETTE = WM_USER + 38 } -enum : uint { RB_MOVEBAND = WM_USER + 39 } - -alias CCM_SETUNICODEFORMAT RB_SETUNICODEFORMAT; -alias CCM_GETUNICODEFORMAT RB_GETUNICODEFORMAT; - -// #endif // _WIN32_IE >= 0x0400 - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { RB_GETBANDMARGINS = WM_USER + 40 } -alias CCM_SETWINDOWTHEME RB_SETWINDOWTHEME; -// #endif - -// #if (_WIN32_IE >= 0x0500) -enum : uint { RB_PUSHCHEVRON = WM_USER + 43 } -// #endif // _WIN32_IE >= 0x0500 - -enum : uint { RBN_HEIGHTCHANGE = RBN_FIRST - 0 } - -// #if (_WIN32_IE >= 0x0400) -enum : uint { RBN_GETOBJECT = RBN_FIRST - 1 } -enum : uint { RBN_LAYOUTCHANGED = RBN_FIRST - 2 } -enum : uint { RBN_AUTOSIZE = RBN_FIRST - 3 } -enum : uint { RBN_BEGINDRAG = RBN_FIRST - 4 } -enum : uint { RBN_ENDDRAG = RBN_FIRST - 5 } -enum : uint { RBN_DELETINGBAND = RBN_FIRST - 6 } -enum : uint { RBN_DELETEDBAND = RBN_FIRST - 7 } -enum : uint { RBN_CHILDSIZE = RBN_FIRST - 8 } - -// #if (_WIN32_IE >= 0x0500) -enum : uint { RBN_CHEVRONPUSHED = RBN_FIRST - 10 } -// #endif // _WIN32_IE >= 0x0500 - -// #if (_WIN32_IE >= 0x0500) -enum : uint { RBN_MINMAX = RBN_FIRST - 21 } -// #endif - -// #if (_WIN32_WINNT >= 0x0501) -enum : uint { RBN_AUTOBREAK = RBN_FIRST - 22 } -// #endif - -struct tagNMREBARCHILDSIZE { - NMHDR hdr; - UINT uBand; - UINT wID; - RECT rcChild; - RECT rcBand; -} -alias tagNMREBARCHILDSIZE NMREBARCHILDSIZE; -alias tagNMREBARCHILDSIZE* LPNMREBARCHILDSIZE; - -struct tagNMREBAR { - NMHDR hdr; - DWORD dwMask; - UINT uBand; - UINT fStyle; - UINT wID; - LPARAM lParam; -} -alias tagNMREBAR NMREBAR; -alias tagNMREBAR* LPNMREBAR; - -enum : uint { RBNM_ID = 0x00000001 } -enum : uint { RBNM_STYLE = 0x00000002 } -enum : uint { RBNM_LPARAM = 0x00000004 } - -struct tagNMRBAUTOSIZE { - NMHDR hdr; - BOOL fChanged; - RECT rcTarget; - RECT rcActual; -} -alias tagNMRBAUTOSIZE NMRBAUTOSIZE; -alias tagNMRBAUTOSIZE* LPNMRBAUTOSIZE; - -// #if (_WIN32_IE >= 0x0500) -struct tagNMREBARCHEVRON { - NMHDR hdr; - UINT uBand; - UINT wID; - LPARAM lParam; - RECT rc; - LPARAM lParamNM; -} -alias tagNMREBARCHEVRON NMREBARCHEVRON; -alias tagNMREBARCHEVRON* LPNMREBARCHEVRON; - -// #endif - -// #if (_WIN32_WINNT >= 0x0501) -enum : uint { RBAB_AUTOSIZE = 0x0001 } -enum : uint { RBAB_ADDBAND = 0x0002 } - -struct tagNMREBARAUTOBREAK { - NMHDR hdr; - UINT uBand; - UINT wID; - LPARAM lParam; - UINT uMsg; - UINT fStyleCurrent; - BOOL fAutoBreak; -} -alias tagNMREBARAUTOBREAK NMREBARAUTOBREAK; -alias tagNMREBARAUTOBREAK* LPNMREBARAUTOBREAK; - -// #endif - -enum : uint { RBHT_NOWHERE = 0x0001 } -enum : uint { RBHT_CAPTION = 0x0002 } -enum : uint { RBHT_CLIENT = 0x0003 } -enum : uint { RBHT_GRABBER = 0x0004 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { RBHT_CHEVRON = 0x0008 } -// #endif - -struct _RB_HITTESTINFO { - POINT pt; - UINT flags; - int iBand; -} -alias _RB_HITTESTINFO RBHITTESTINFO; -alias _RB_HITTESTINFO* LPRBHITTESTINFO; - -// #endif // _WIN32_IE >= 0x0400 - -// #endif // NOREBAR - -// #endif // _WIN32_IE >= 0x0300 - -// #ifndef NOTOOLTIPS - -// #ifdef _WIN32 - -const wchar[] TOOLTIPS_CLASSW = "tooltips_class32"; -const char[] TOOLTIPS_CLASSA = "tooltips_class32"; - -// #ifdef UNICODE -// #... -// #else -alias TOOLTIPS_CLASSA TOOLTIPS_CLASS; -// #endif - -// #else -// #... -// #endif - -// #if (_WIN32_IE >= 0x0300) -alias LPTTTOOLINFOA LPTOOLINFOA; -alias LPTTTOOLINFOW LPTOOLINFOW; -alias TTTOOLINFOA TOOLINFOA; -alias TTTOOLINFOW TOOLINFOW; -// #else -// #... -// #... -// #... -// #... -// #endif - -alias LPTTTOOLINFO LPTOOLINFO; -alias TTTOOLINFO TOOLINFO; - -// #define TTTOOLINFOA_V1_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lpszText) -// #define TTTOOLINFOW_V1_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lpszText) -// #define TTTOOLINFOA_V2_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lParam) -// #define TTTOOLINFOW_V2_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lParam) -// #define TTTOOLINFOA_V3_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lpReserved) -// #define TTTOOLINFOW_V3_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lpReserved) - -struct tagTOOLINFOA { - UINT cbSize; - UINT uFlags; - HWND hwnd; - UINT_PTR uId; - RECT rect; - HINSTANCE hinst; - LPSTR lpszText; -// #if (_WIN32_IE >= 0x0300) - LPARAM lParam; -// #endif -// #if (_WIN32_WINNT >= 0x0501) - void *lpReserved; -// #endif -} -alias tagTOOLINFOA TTTOOLINFOA; -alias tagTOOLINFOA* PTOOLINFOA; -alias tagTOOLINFOA* LPTTTOOLINFOA; - -struct tagTOOLINFOW { - UINT cbSize; - UINT uFlags; - HWND hwnd; - UINT_PTR uId; - RECT rect; - HINSTANCE hinst; - LPWSTR lpszText; -// #if (_WIN32_IE >= 0x0300) - LPARAM lParam; -// #endif -// #if (_WIN32_WINNT >= 0x0501) - void *lpReserved; -// #endif -} -alias tagTOOLINFOW TTTOOLINFOW; -alias tagTOOLINFOW* PTOOLINFOW; -alias tagTOOLINFOW* LPTTTOOLINFOW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #... -// #else -alias PTOOLINFOA PTOOLINFO; -alias TTTOOLINFOA TTTOOLINFO; -alias LPTTTOOLINFOA LPTTTOOLINFO; -// #define TTTOOLINFO_V1_SIZE TTTOOLINFOA_V1_SIZE -// #endif - -enum : uint { TTS_ALWAYSTIP = 0x01 } -enum : uint { TTS_NOPREFIX = 0x02 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { TTS_NOANIMATE = 0x10 } -enum : uint { TTS_NOFADE = 0x20 } -enum : uint { TTS_BALLOON = 0x40 } -enum : uint { TTS_CLOSE = 0x80 } -// #endif - -enum : uint { TTF_IDISHWND = 0x0001 } - -enum : uint { TTF_CENTERTIP = 0x0002 } -enum : uint { TTF_RTLREADING = 0x0004 } -enum : uint { TTF_SUBCLASS = 0x0010 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TTF_TRACK = 0x0020 } -enum : uint { TTF_ABSOLUTE = 0x0080 } -enum : uint { TTF_TRANSPARENT = 0x0100 } -// #if (_WIN32_IE >= 0x0501) -enum : uint { TTF_PARSELINKS = 0x1000 } -// #endif // _WIN32_IE >= 0x0501 -enum : uint { TTF_DI_SETITEM = 0x8000 } -// #endif // _WIN32_IE >= 0x0300 - -enum : uint { TTDT_AUTOMATIC = 0 } -enum : uint { TTDT_RESHOW = 1 } -enum : uint { TTDT_AUTOPOP = 2 } -enum : uint { TTDT_INITIAL = 3 } - -enum : uint { TTI_NONE = 0 } -enum : uint { TTI_INFO = 1 } -enum : uint { TTI_WARNING = 2 } -enum : uint { TTI_ERROR = 3 } - -enum : uint { TTM_ACTIVATE = WM_USER + 1 } -enum : uint { TTM_SETDELAYTIME = WM_USER + 3 } -enum : uint { TTM_ADDTOOLA = WM_USER + 4 } -enum : uint { TTM_ADDTOOLW = WM_USER + 50 } -enum : uint { TTM_DELTOOLA = WM_USER + 5 } -enum : uint { TTM_DELTOOLW = WM_USER + 51 } -enum : uint { TTM_NEWTOOLRECTA = WM_USER + 6 } -enum : uint { TTM_NEWTOOLRECTW = WM_USER + 52 } -enum : uint { TTM_RELAYEVENT = WM_USER + 7 } - -enum : uint { TTM_GETTOOLINFOA = WM_USER + 8 } -enum : uint { TTM_GETTOOLINFOW = WM_USER + 53 } - -enum : uint { TTM_SETTOOLINFOA = WM_USER + 9 } -enum : uint { TTM_SETTOOLINFOW = WM_USER + 54 } - -enum : uint { TTM_HITTESTA = WM_USER +10 } -enum : uint { TTM_HITTESTW = WM_USER +55 } -enum : uint { TTM_GETTEXTA = WM_USER +11 } -enum : uint { TTM_GETTEXTW = WM_USER +56 } -enum : uint { TTM_UPDATETIPTEXTA = WM_USER +12 } -enum : uint { TTM_UPDATETIPTEXTW = WM_USER +57 } -enum : uint { TTM_GETTOOLCOUNT = WM_USER +13 } -enum : uint { TTM_ENUMTOOLSA = WM_USER +14 } -enum : uint { TTM_ENUMTOOLSW = WM_USER +58 } -enum : uint { TTM_GETCURRENTTOOLA = WM_USER + 15 } -enum : uint { TTM_GETCURRENTTOOLW = WM_USER + 59 } -enum : uint { TTM_WINDOWFROMPOINT = WM_USER + 16 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TTM_TRACKACTIVATE = WM_USER + 17 } -enum : uint { TTM_TRACKPOSITION = WM_USER + 18 } -enum : uint { TTM_SETTIPBKCOLOR = WM_USER + 19 } -enum : uint { TTM_SETTIPTEXTCOLOR = WM_USER + 20 } -enum : uint { TTM_GETDELAYTIME = WM_USER + 21 } -enum : uint { TTM_GETTIPBKCOLOR = WM_USER + 22 } -enum : uint { TTM_GETTIPTEXTCOLOR = WM_USER + 23 } -enum : uint { TTM_SETMAXTIPWIDTH = WM_USER + 24 } -enum : uint { TTM_GETMAXTIPWIDTH = WM_USER + 25 } -enum : uint { TTM_SETMARGIN = WM_USER + 26 } -enum : uint { TTM_GETMARGIN = WM_USER + 27 } -enum : uint { TTM_POP = WM_USER + 28 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { TTM_UPDATE = WM_USER + 29 } -// #endif -// #if (_WIN32_IE >= 0x0500) -enum : uint { TTM_GETBUBBLESIZE = WM_USER + 30 } -enum : uint { TTM_ADJUSTRECT = WM_USER + 31 } -enum : uint { TTM_SETTITLEA = WM_USER + 32 } -enum : uint { TTM_SETTITLEW = WM_USER + 33 } -// #endif - -// #if (_WIN32_WINNT >= 0x0501) -enum : uint { TTM_POPUP = WM_USER + 34 } -enum : uint { TTM_GETTITLE = WM_USER + 35 } - -struct _TTGETTITLE { - DWORD dwSize; - UINT uTitleBitmap; - UINT cch; - WCHAR * pszTitle; -} -alias _TTGETTITLE TTGETTITLE; -alias _TTGETTITLE* PTTGETTITLE; - -// #endif - -// #ifdef UNICODE -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #if (_WIN32_IE >= 0x0500) -// #... -// #endif -// #else -alias TTM_ADDTOOLA TTM_ADDTOOL; -alias TTM_DELTOOLA TTM_DELTOOL; -alias TTM_NEWTOOLRECTA TTM_NEWTOOLRECT; -alias TTM_GETTOOLINFOA TTM_GETTOOLINFO; -alias TTM_SETTOOLINFOA TTM_SETTOOLINFO; -alias TTM_HITTESTA TTM_HITTEST; -alias TTM_GETTEXTA TTM_GETTEXT; -alias TTM_UPDATETIPTEXTA TTM_UPDATETIPTEXT; -alias TTM_ENUMTOOLSA TTM_ENUMTOOLS; -alias TTM_GETCURRENTTOOLA TTM_GETCURRENTTOOL; -// #if (_WIN32_IE >= 0x0500) -alias TTM_SETTITLEA TTM_SETTITLE; -// #endif -// #endif - -// #if (_WIN32_WINNT >= 0x501) -alias CCM_SETWINDOWTHEME TTM_SETWINDOWTHEME; -// #endif - -// #if (_WIN32_IE >= 0x0300) -alias LPTTHITTESTINFOW LPHITTESTINFOW; -alias LPTTHITTESTINFOA LPHITTESTINFOA; -// #else -// #... -// #... -// #endif - -alias LPTTHITTESTINFO LPHITTESTINFO; - -struct _TT_HITTESTINFOA { - HWND hwnd; - POINT pt; - TTTOOLINFOA ti; -} -alias _TT_HITTESTINFOA TTHITTESTINFOA; -alias _TT_HITTESTINFOA* LPTTHITTESTINFOA; - -struct _TT_HITTESTINFOW { - HWND hwnd; - POINT pt; - TTTOOLINFOW ti; -} -alias _TT_HITTESTINFOW TTHITTESTINFOW; -alias _TT_HITTESTINFOW* LPTTHITTESTINFOW; - -// #ifdef UNICODE -// #... -// #... -// #else -alias TTHITTESTINFOA TTHITTESTINFO; -alias LPTTHITTESTINFOA LPTTHITTESTINFO; -// #endif - -enum : uint { TTN_GETDISPINFOA = TTN_FIRST - 0 } -enum : uint { TTN_GETDISPINFOW = TTN_FIRST - 10 } -enum : uint { TTN_SHOW = TTN_FIRST - 1 } -enum : uint { TTN_POP = TTN_FIRST - 2 } -enum : uint { TTN_LINKCLICK = TTN_FIRST - 3 } - -// #ifdef UNICODE -// #... -// #else -alias TTN_GETDISPINFOA TTN_GETDISPINFO; -// #endif - -alias TTN_GETDISPINFO TTN_NEEDTEXT; -alias TTN_GETDISPINFOA TTN_NEEDTEXTA; -alias TTN_GETDISPINFOW TTN_NEEDTEXTW; - -// #if (_WIN32_IE >= 0x0300) -alias NMTTDISPINFOW TOOLTIPTEXTW; -alias NMTTDISPINFOA TOOLTIPTEXTA; -alias LPNMTTDISPINFOA LPTOOLTIPTEXTA; -alias LPNMTTDISPINFOW LPTOOLTIPTEXTW; -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -alias NMTTDISPINFO TOOLTIPTEXT; -alias LPNMTTDISPINFO LPTOOLTIPTEXT; - -// #define NMTTDISPINFOA_V1_SIZE CCSIZEOF_STRUCT(NMTTDISPINFOA, uFlags) -// #define NMTTDISPINFOW_V1_SIZE CCSIZEOF_STRUCT(NMTTDISPINFOW, uFlags) - -struct tagNMTTDISPINFOA { - NMHDR hdr; - LPSTR lpszText; - char szText[80]; - HINSTANCE hinst; - UINT uFlags; -// #if (_WIN32_IE >= 0x0300) - LPARAM lParam; -// #endif -} -alias tagNMTTDISPINFOA NMTTDISPINFOA; -alias tagNMTTDISPINFOA* LPNMTTDISPINFOA; - -struct tagNMTTDISPINFOW { - NMHDR hdr; - LPWSTR lpszText; - WCHAR szText[80]; - HINSTANCE hinst; - UINT uFlags; -// #if (_WIN32_IE >= 0x0300) - LPARAM lParam; -// #endif -} -alias tagNMTTDISPINFOW NMTTDISPINFOW; -alias tagNMTTDISPINFOW* LPNMTTDISPINFOW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias NMTTDISPINFOA NMTTDISPINFO; -alias LPNMTTDISPINFOA LPNMTTDISPINFO; -// #define NMTTDISPINFO_V1_SIZE NMTTDISPINFOA_V1_SIZE -// #endif - -// #endif // NOTOOLTIPS - -// #ifndef NOSTATUSBAR - -enum : uint { SBARS_SIZEGRIP = 0x0100 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { SBARS_TOOLTIPS = 0x0800 } -// #endif - -// #if (_WIN32_IE >= 0x0400) - -enum : uint { SBT_TOOLTIPS = 0x0800 } -// #endif - -extern(Windows) export void DrawStatusTextA(HDC hDC, LPRECT lprc, LPCSTR pszText, UINT uFlags); -extern(Windows) export void DrawStatusTextW(HDC hDC, LPRECT lprc, LPCWSTR pszText, UINT uFlags); - -extern(Windows) export HWND CreateStatusWindowA(LONG style, LPCSTR lpszText, HWND hwndParent, UINT wID); -extern(Windows) export HWND CreateStatusWindowW(LONG style, LPCWSTR lpszText, HWND hwndParent, UINT wID); - -// #ifdef UNICODE -// #... -// #... -// #else -alias CreateStatusWindowA CreateStatusWindow; -alias DrawStatusTextA DrawStatusText; -// #endif - -// #ifdef _WIN32 -const wchar[] STATUSCLASSNAMEW = "msctls_statusbar32"; -const char[] STATUSCLASSNAMEA = "msctls_statusbar32"; - -// #ifdef UNICODE -// #... -// #else -alias STATUSCLASSNAMEA STATUSCLASSNAME; -// #endif - -// #else -// #... -// #endif - -enum : uint { SB_SETTEXTA = WM_USER+1 } -enum : uint { SB_SETTEXTW = WM_USER+11 } -enum : uint { SB_GETTEXTA = WM_USER+2 } -enum : uint { SB_GETTEXTW = WM_USER+13 } -enum : uint { SB_GETTEXTLENGTHA = WM_USER+3 } -enum : uint { SB_GETTEXTLENGTHW = WM_USER+12 } - -// #ifdef UNICODE -// #... -// #... -// #... -// #if (_WIN32_IE >= 0x0400) -// #... -// #... -// #endif -// #else -alias SB_GETTEXTA SB_GETTEXT; -alias SB_SETTEXTA SB_SETTEXT; -alias SB_GETTEXTLENGTHA SB_GETTEXTLENGTH; -// #if (_WIN32_IE >= 0x0400) -alias SB_SETTIPTEXTA SB_SETTIPTEXT; -alias SB_GETTIPTEXTA SB_GETTIPTEXT; -// #endif -// #endif - -enum : uint { SB_SETPARTS = WM_USER+4 } -enum : uint { SB_GETPARTS = WM_USER+6 } -enum : uint { SB_GETBORDERS = WM_USER+7 } -enum : uint { SB_SETMINHEIGHT = WM_USER+8 } -enum : uint { SB_SIMPLE = WM_USER+9 } -enum : uint { SB_GETRECT = WM_USER+10 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { SB_ISSIMPLE = WM_USER+14 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { SB_SETICON = WM_USER+15 } -// #define SB_SETTIPTEXTA (WM_USER+16) -// #define SB_SETTIPTEXTW (WM_USER+17) -// #define SB_GETTIPTEXTA (WM_USER+18) -// #define SB_GETTIPTEXTW (WM_USER+19) -enum : uint { SB_GETICON = WM_USER+20 } -alias CCM_SETUNICODEFORMAT SB_SETUNICODEFORMAT; -alias CCM_GETUNICODEFORMAT SB_GETUNICODEFORMAT; -// #endif - -enum : uint { SBT_OWNERDRAW = 0x1000 } -enum : uint { SBT_NOBORDERS = 0x0100 } -enum : uint { SBT_POPOUT = 0x0200 } -enum : uint { SBT_RTLREADING = 0x0400 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { SBT_NOTABPARSING = 0x0800 } -// #endif - -alias CCM_SETBKCOLOR SB_SETBKCOLOR; - -// #if (_WIN32_IE >= 0x0400) -enum : uint { SBN_SIMPLEMODECHANGE = SBN_FIRST - 0 } -// #endif - -// #if (_WIN32_IE >= 0x0500) - -enum : uint { SB_SIMPLEID = 0x00ff } -// #endif - -// #endif // NOSTATUSBAR - -// #ifndef NOMENUHELP - -extern(Windows) export void MenuHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, HMENU hMainMenu, HINSTANCE hInst, HWND hwndStatus, UINT *lpwIDs); -extern(Windows) export BOOL ShowHideMenuCtl(HWND hWnd, UINT_PTR uFlags, LPINT lpInfo); -extern(Windows) export void GetEffectiveClientRect(HWND hWnd, LPRECT lprc, LPINT lpInfo); - -alias SC_SIZE MINSYSCOMMAND; - -// #endif - -// #ifndef NOTRACKBAR - -// #ifdef _WIN32 - -const char[] TRACKBAR_CLASSA = "msctls_trackbar32"; -const wchar[] TRACKBAR_CLASSW = "msctls_trackbar32"; - -// #ifdef UNICODE -// #... -// #else -alias TRACKBAR_CLASSA TRACKBAR_CLASS; -// #endif - -// #else -// #... -// #endif - -enum : uint { TBS_AUTOTICKS = 0x0001 } -enum : uint { TBS_VERT = 0x0002 } -enum : uint { TBS_HORZ = 0x0000 } -enum : uint { TBS_TOP = 0x0004 } -enum : uint { TBS_BOTTOM = 0x0000 } -enum : uint { TBS_LEFT = 0x0004 } -enum : uint { TBS_RIGHT = 0x0000 } -enum : uint { TBS_BOTH = 0x0008 } -enum : uint { TBS_NOTICKS = 0x0010 } -enum : uint { TBS_ENABLESELRANGE = 0x0020 } -enum : uint { TBS_FIXEDLENGTH = 0x0040 } -enum : uint { TBS_NOTHUMB = 0x0080 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TBS_TOOLTIPS = 0x0100 } -// #endif -// #if (_WIN32_IE >= 0x0500) -enum : uint { TBS_REVERSED = 0x0200 } -// #endif - -// #if (_WIN32_IE >= 0x0501) -enum : uint { TBS_DOWNISLEFT = 0x0400 } -// #endif - -enum : uint { TBM_GETPOS = WM_USER } -enum : uint { TBM_GETRANGEMIN = WM_USER+1 } -enum : uint { TBM_GETRANGEMAX = WM_USER+2 } -enum : uint { TBM_GETTIC = WM_USER+3 } -enum : uint { TBM_SETTIC = WM_USER+4 } -enum : uint { TBM_SETPOS = WM_USER+5 } -enum : uint { TBM_SETRANGE = WM_USER+6 } -enum : uint { TBM_SETRANGEMIN = WM_USER+7 } -enum : uint { TBM_SETRANGEMAX = WM_USER+8 } -enum : uint { TBM_CLEARTICS = WM_USER+9 } -enum : uint { TBM_SETSEL = WM_USER+10 } -enum : uint { TBM_SETSELSTART = WM_USER+11 } -enum : uint { TBM_SETSELEND = WM_USER+12 } -enum : uint { TBM_GETPTICS = WM_USER+14 } -enum : uint { TBM_GETTICPOS = WM_USER+15 } -enum : uint { TBM_GETNUMTICS = WM_USER+16 } -enum : uint { TBM_GETSELSTART = WM_USER+17 } -enum : uint { TBM_GETSELEND = WM_USER+18 } -enum : uint { TBM_CLEARSEL = WM_USER+19 } -enum : uint { TBM_SETTICFREQ = WM_USER+20 } -enum : uint { TBM_SETPAGESIZE = WM_USER+21 } -enum : uint { TBM_GETPAGESIZE = WM_USER+22 } -enum : uint { TBM_SETLINESIZE = WM_USER+23 } -enum : uint { TBM_GETLINESIZE = WM_USER+24 } -enum : uint { TBM_GETTHUMBRECT = WM_USER+25 } -enum : uint { TBM_GETCHANNELRECT = WM_USER+26 } -enum : uint { TBM_SETTHUMBLENGTH = WM_USER+27 } -enum : uint { TBM_GETTHUMBLENGTH = WM_USER+28 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TBM_SETTOOLTIPS = WM_USER+29 } -enum : uint { TBM_GETTOOLTIPS = WM_USER+30 } -enum : uint { TBM_SETTIPSIDE = WM_USER+31 } - -enum : uint { TBTS_TOP = 0 } -enum : uint { TBTS_LEFT = 1 } -enum : uint { TBTS_BOTTOM = 2 } -enum : uint { TBTS_RIGHT = 3 } - -enum : uint { TBM_SETBUDDY = WM_USER+32 } -enum : uint { TBM_GETBUDDY = WM_USER+33 } -// #endif -// #if (_WIN32_IE >= 0x0400) -alias CCM_SETUNICODEFORMAT TBM_SETUNICODEFORMAT; -alias CCM_GETUNICODEFORMAT TBM_GETUNICODEFORMAT; -// #endif - -enum : uint { TB_LINEUP = 0 } -enum : uint { TB_LINEDOWN = 1 } -enum : uint { TB_PAGEUP = 2 } -enum : uint { TB_PAGEDOWN = 3 } -enum : uint { TB_THUMBPOSITION = 4 } -enum : uint { TB_THUMBTRACK = 5 } -enum : uint { TB_TOP = 6 } -enum : uint { TB_BOTTOM = 7 } -enum : uint { TB_ENDTRACK = 8 } - -// #if (_WIN32_IE >= 0x0300) - -enum : uint { TBCD_TICS = 0x0001 } -enum : uint { TBCD_THUMB = 0x0002 } -enum : uint { TBCD_CHANNEL = 0x0003 } -// #endif - -// #endif // trackbar - -// #ifndef NODRAGLIST - -struct tagDRAGLISTINFO { - UINT uNotification; - HWND hWnd; - POINT ptCursor; -} -alias tagDRAGLISTINFO DRAGLISTINFO; -alias tagDRAGLISTINFO* LPDRAGLISTINFO; - -enum : uint { DL_BEGINDRAG = WM_USER+133 } -enum : uint { DL_DRAGGING = WM_USER+134 } -enum : uint { DL_DROPPED = WM_USER+135 } -enum : uint { DL_CANCELDRAG = WM_USER+136 } - -enum : uint { DL_CURSORSET = 0 } -enum : uint { DL_STOPCURSOR = 1 } -enum : uint { DL_COPYCURSOR = 2 } -enum : uint { DL_MOVECURSOR = 3 } - -const TCHAR[] DRAGLISTMSGSTRING = "commctrl_DragListMsg"; - -extern(Windows) export BOOL MakeDragList(HWND hLB); -extern(Windows) export void DrawInsert(HWND handParent, HWND hLB, int nItem); - -extern(Windows) export int LBItemFromPt(HWND hLB, POINT pt, BOOL bAutoScroll); - -// #endif - -// #ifndef NOUPDOWN - -// #ifdef _WIN32 - -const char[] UPDOWN_CLASSA = "msctls_updown32"; -const wchar[] UPDOWN_CLASSW = "msctls_updown32"; - -// #ifdef UNICODE -// #... -// #else -alias UPDOWN_CLASSA UPDOWN_CLASS; -// #endif - -// #else -// #... -// #endif - -struct _UDACCEL { - UINT nSec; - UINT nInc; -} -alias _UDACCEL UDACCEL; -alias _UDACCEL* LPUDACCEL; - -enum : uint { UD_MAXVAL = 0x7fff } -enum : uint { UD_MINVAL = -UD_MAXVAL } - -enum : uint { UDS_WRAP = 0x0001 } -enum : uint { UDS_SETBUDDYINT = 0x0002 } -enum : uint { UDS_ALIGNRIGHT = 0x0004 } -enum : uint { UDS_ALIGNLEFT = 0x0008 } -enum : uint { UDS_AUTOBUDDY = 0x0010 } -enum : uint { UDS_ARROWKEYS = 0x0020 } -enum : uint { UDS_HORZ = 0x0040 } -enum : uint { UDS_NOTHOUSANDS = 0x0080 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { UDS_HOTTRACK = 0x0100 } -// #endif - -enum : uint { UDM_SETRANGE = WM_USER+101 } -enum : uint { UDM_GETRANGE = WM_USER+102 } -enum : uint { UDM_SETPOS = WM_USER+103 } -enum : uint { UDM_GETPOS = WM_USER+104 } -enum : uint { UDM_SETBUDDY = WM_USER+105 } -enum : uint { UDM_GETBUDDY = WM_USER+106 } -enum : uint { UDM_SETACCEL = WM_USER+107 } -enum : uint { UDM_GETACCEL = WM_USER+108 } -enum : uint { UDM_SETBASE = WM_USER+109 } -enum : uint { UDM_GETBASE = WM_USER+110 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { UDM_SETRANGE32 = WM_USER+111 } -enum : uint { UDM_GETRANGE32 = WM_USER+112 } -alias CCM_SETUNICODEFORMAT UDM_SETUNICODEFORMAT; -alias CCM_GETUNICODEFORMAT UDM_GETUNICODEFORMAT; -// #endif -// #if (_WIN32_IE >= 0x0500) -enum : uint { UDM_SETPOS32 = WM_USER+113 } -enum : uint { UDM_GETPOS32 = WM_USER+114 } -// #endif - -extern(Windows) export HWND CreateUpDownControl(DWORD dwStyle, int x, int y, int cx, int cy, - HWND hParent, int nID, HINSTANCE hInst, - HWND hBuddy, - int nUpper, int nLower, int nPos); - -// #if (_WIN32_IE >= 0x0300) -alias NMUPDOWN NM_UPDOWN; -alias LPNMUPDOWN LPNM_UPDOWN; -// #else -// #... -// #... -// #endif - -struct _NM_UPDOWN { - NMHDR hdr; - int iPos; - int iDelta; -} -alias _NM_UPDOWN NMUPDOWN; -alias _NM_UPDOWN* LPNMUPDOWN; - -enum : uint { UDN_DELTAPOS = UDN_FIRST - 1 } - -// #endif // NOUPDOWN - -// #ifndef NOPROGRESS - -// #ifdef _WIN32 - -const char[] PROGRESS_CLASSA = "msctls_progress32"; -const wchar[] PROGRESS_CLASSW = "msctls_progress32"; - -// #ifdef UNICODE -// #... -// #else -alias PROGRESS_CLASSA PROGRESS_CLASS; -// #endif - -// #else -// #... -// #endif - -// #if (_WIN32_IE >= 0x0300) -enum : uint { PBS_SMOOTH = 0x01 } -enum : uint { PBS_VERTICAL = 0x04 } -// #endif - -enum : uint { PBM_SETRANGE = WM_USER+1 } -enum : uint { PBM_SETPOS = WM_USER+2 } -enum : uint { PBM_DELTAPOS = WM_USER+3 } -enum : uint { PBM_SETSTEP = WM_USER+4 } -enum : uint { PBM_STEPIT = WM_USER+5 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { PBM_SETRANGE32 = WM_USER+6 } -struct _7 { - int iLow; - int iHigh; -} -alias _7 PBRANGE; -alias _7* PPBRANGE; - -enum : uint { PBM_GETRANGE = WM_USER+7 } -enum : uint { PBM_GETPOS = WM_USER+8 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { PBM_SETBARCOLOR = WM_USER+9 } -// #endif // _WIN32_IE >= 0x0400 -alias CCM_SETBKCOLOR PBM_SETBKCOLOR; -// #endif // _WIN32_IE >= 0x0300 - -// #endif // NOPROGRESS - -// #ifndef NOHOTKEY - -enum : uint { HOTKEYF_SHIFT = 0x01 } -enum : uint { HOTKEYF_CONTROL = 0x02 } -enum : uint { HOTKEYF_ALT = 0x04 } -// #ifdef _MAC -// #... -// #else -enum : uint { HOTKEYF_EXT = 0x08 } -// #endif - -enum : uint { HKCOMB_NONE = 0x0001 } -enum : uint { HKCOMB_S = 0x0002 } -enum : uint { HKCOMB_C = 0x0004 } -enum : uint { HKCOMB_A = 0x0008 } -enum : uint { HKCOMB_SC = 0x0010 } -enum : uint { HKCOMB_SA = 0x0020 } -enum : uint { HKCOMB_CA = 0x0040 } -enum : uint { HKCOMB_SCA = 0x0080 } - -enum : uint { HKM_SETHOTKEY = WM_USER+1 } -enum : uint { HKM_GETHOTKEY = WM_USER+2 } -enum : uint { HKM_SETRULES = WM_USER+3 } - -// #ifdef _WIN32 - -const char[] HOTKEY_CLASSA = "msctls_hotkey32"; -const wchar[] HOTKEY_CLASSW = "msctls_hotkey32"; - -// #ifdef UNICODE -// #... -// #else -alias HOTKEY_CLASSA HOTKEY_CLASS; -// #endif - -// #else -// #... -// #endif - -// #endif // NOHOTKEY - -enum : uint { CCS_TOP = 0x00000001 } -enum : uint { CCS_NOMOVEY = 0x00000002 } -enum : uint { CCS_BOTTOM = 0x00000003 } -enum : uint { CCS_NORESIZE = 0x00000004 } -enum : uint { CCS_NOPARENTALIGN = 0x00000008 } -enum : uint { CCS_ADJUSTABLE = 0x00000020 } -enum : uint { CCS_NODIVIDER = 0x00000040 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { CCS_VERT = 0x00000080 } -enum : uint { CCS_LEFT = CCS_VERT | CCS_TOP } -enum : uint { CCS_RIGHT = CCS_VERT | CCS_BOTTOM } -enum : uint { CCS_NOMOVEX = CCS_VERT | CCS_NOMOVEY } -// #endif - -// #ifndef NOLISTVIEW - -// #ifdef _WIN32 - -const char[] WC_LISTVIEWA = "SysListView32"; -const wchar[] WC_LISTVIEWW = "SysListView32"; - -// #ifdef UNICODE -// #... -// #else -alias WC_LISTVIEWA WC_LISTVIEW; -// #endif - -// #else -// #... -// #endif - -enum : uint { LVS_ICON = 0x0000 } -enum : uint { LVS_REPORT = 0x0001 } -enum : uint { LVS_SMALLICON = 0x0002 } -enum : uint { LVS_LIST = 0x0003 } -enum : uint { LVS_TYPEMASK = 0x0003 } -enum : uint { LVS_SINGLESEL = 0x0004 } -enum : uint { LVS_SHOWSELALWAYS = 0x0008 } -enum : uint { LVS_SORTASCENDING = 0x0010 } -enum : uint { LVS_SORTDESCENDING = 0x0020 } -enum : uint { LVS_SHAREIMAGELISTS = 0x0040 } -enum : uint { LVS_NOLABELWRAP = 0x0080 } -enum : uint { LVS_AUTOARRANGE = 0x0100 } -enum : uint { LVS_EDITLABELS = 0x0200 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { LVS_OWNERDATA = 0x1000 } -// #endif -enum : uint { LVS_NOSCROLL = 0x2000 } - -enum : uint { LVS_TYPESTYLEMASK = 0xfc00 } - -enum : uint { LVS_ALIGNTOP = 0x0000 } -enum : uint { LVS_ALIGNLEFT = 0x0800 } -enum : uint { LVS_ALIGNMASK = 0x0c00 } - -enum : uint { LVS_OWNERDRAWFIXED = 0x0400 } -enum : uint { LVS_NOCOLUMNHEADER = 0x4000 } -enum : uint { LVS_NOSORTHEADER = 0x8000 } - -// #if (_WIN32_IE >= 0x0400) -alias CCM_SETUNICODEFORMAT LVM_SETUNICODEFORMAT; -// #define ListView_SetUnicodeFormat(hwnd, fUnicode) (BOOL)SNDMSG((hwnd), LVM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) - -alias CCM_GETUNICODEFORMAT LVM_GETUNICODEFORMAT; -// #define ListView_GetUnicodeFormat(hwnd) (BOOL)SNDMSG((hwnd), LVM_GETUNICODEFORMAT, 0, 0) -// #endif - -enum : uint { LVM_GETBKCOLOR = LVM_FIRST + 0 } -// #define ListView_GetBkColor(hwnd) (COLORREF)SNDMSG((hwnd), LVM_GETBKCOLOR, 0, 0L) - -enum : uint { LVM_SETBKCOLOR = LVM_FIRST + 1 } -// #define ListView_SetBkColor(hwnd, clrBk) (BOOL)SNDMSG((hwnd), LVM_SETBKCOLOR, 0, (LPARAM)(COLORREF)(clrBk)) - -enum : uint { LVM_GETIMAGELIST = LVM_FIRST + 2 } -// #define ListView_GetImageList(hwnd, iImageList) (HIMAGELIST)SNDMSG((hwnd), LVM_GETIMAGELIST, (WPARAM)(INT)(iImageList), 0L) - -enum : uint { LVSIL_NORMAL = 0 } -enum : uint { LVSIL_SMALL = 1 } -enum : uint { LVSIL_STATE = 2 } - -enum : uint { LVM_SETIMAGELIST = LVM_FIRST + 3 } -// #define ListView_SetImageList(hwnd, himl, iImageList) (HIMAGELIST)SNDMSG((hwnd), LVM_SETIMAGELIST, (WPARAM)(iImageList), (LPARAM)(HIMAGELIST)(himl)) - -enum : uint { LVM_GETITEMCOUNT = LVM_FIRST + 4 } -// #define ListView_GetItemCount(hwnd) (int)SNDMSG((hwnd), LVM_GETITEMCOUNT, 0, 0L) - -enum : uint { LVIF_TEXT = 0x0001 } -enum : uint { LVIF_IMAGE = 0x0002 } -enum : uint { LVIF_PARAM = 0x0004 } -enum : uint { LVIF_STATE = 0x0008 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { LVIF_INDENT = 0x0010 } -enum : uint { LVIF_NORECOMPUTE = 0x0800 } -// #endif -// #if (_WIN32_WINNT >= 0x501) -enum : uint { LVIF_GROUPID = 0x0100 } -enum : uint { LVIF_COLUMNS = 0x0200 } -// #endif - -enum : uint { LVIS_FOCUSED = 0x0001 } -enum : uint { LVIS_SELECTED = 0x0002 } -enum : uint { LVIS_CUT = 0x0004 } -enum : uint { LVIS_DROPHILITED = 0x0008 } -enum : uint { LVIS_GLOW = 0x0010 } -enum : uint { LVIS_ACTIVATING = 0x0020 } - -enum : uint { LVIS_OVERLAYMASK = 0x0F00 } -enum : uint { LVIS_STATEIMAGEMASK = 0xF000 } - -uint INDEXTOSTATEIMAGEMASK(uint i){ return i << 12; } - -// #if (_WIN32_IE >= 0x0300) -enum { I_INDENTCALLBACK = -1 } -alias LVITEMA LV_ITEMA; -alias LVITEMW LV_ITEMW; -// #else -// #... -// #... -// #... -// #... -// #endif - -// #if (_WIN32_WINNT >= 0x501) -enum { I_GROUPIDCALLBACK = -1 } -enum { I_GROUPIDNONE = -2 } -// #endif -alias LVITEM LV_ITEM; - -// #define LVITEMA_V1_SIZE CCSIZEOF_STRUCT(LVITEMA, lParam) -// #define LVITEMW_V1_SIZE CCSIZEOF_STRUCT(LVITEMW, lParam) - -struct tagLVITEMA { - UINT mask; - int iItem; - int iSubItem; - UINT state; - UINT stateMask; - LPSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -// #if (_WIN32_IE >= 0x0300) - int iIndent; -// #endif -// #if (_WIN32_WINNT >= 0x501) - int iGroupId; - UINT cColumns; - PUINT puColumns; -// #endif -} -alias tagLVITEMA LVITEMA; -alias tagLVITEMA* LPLVITEMA; - -struct tagLVITEMW { - UINT mask; - int iItem; - int iSubItem; - UINT state; - UINT stateMask; - LPWSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -// #if (_WIN32_IE >= 0x0300) - int iIndent; -// #endif -// #if (_WIN32_WINNT >= 0x501) - int iGroupId; - UINT cColumns; - PUINT puColumns; -// #endif -} -alias tagLVITEMW LVITEMW; -alias tagLVITEMW* LPLVITEMW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias LVITEMA LVITEM; -alias LPLVITEMA LPLVITEM; -// #define LVITEM_V1_SIZE LVITEMA_V1_SIZE -// #endif - -const LPWSTR LPSTR_TEXTCALLBACKW = cast(LPWSTR)-1; -const LPSTR LPSTR_TEXTCALLBACKA = cast(LPSTR)-1; -// #ifdef UNICODE -// #... -// #else -alias LPSTR_TEXTCALLBACKA LPSTR_TEXTCALLBACK; -// #endif - -enum { I_IMAGECALLBACK = -1 } -// #if (_WIN32_IE >= 0x0501) -enum { I_IMAGENONE = -2 } -// #endif // 0x0501 - -// #if (_WIN32_WINNT >= 0x501) - -enum : uint { I_COLUMNSCALLBACK = cast(UINT)-1 } -// #endif - -enum : uint { LVM_GETITEMA = LVM_FIRST + 5 } -enum : uint { LVM_GETITEMW = LVM_FIRST + 75 } -// #ifdef UNICODE -// #... -// #else -alias LVM_GETITEMA LVM_GETITEM; -// #endif - -// #define ListView_GetItem(hwnd, pitem) (BOOL)SNDMSG((hwnd), LVM_GETITEM, 0, (LPARAM)(LV_ITEM *)(pitem)) - -enum : uint { LVM_SETITEMA = LVM_FIRST + 6 } -enum : uint { LVM_SETITEMW = LVM_FIRST + 76 } -// #ifdef UNICODE -// #... -// #else -alias LVM_SETITEMA LVM_SETITEM; -// #endif - -// #define ListView_SetItem(hwnd, pitem) (BOOL)SNDMSG((hwnd), LVM_SETITEM, 0, (LPARAM)(const LV_ITEM *)(pitem)) - -enum : uint { LVM_INSERTITEMA = LVM_FIRST + 7 } -enum : uint { LVM_INSERTITEMW = LVM_FIRST + 77 } -// #ifdef UNICODE -// #... -// #else -alias LVM_INSERTITEMA LVM_INSERTITEM; -// #endif -// #define ListView_InsertItem(hwnd, pitem) (int)SNDMSG((hwnd), LVM_INSERTITEM, 0, (LPARAM)(const LV_ITEM *)(pitem)) - -enum : uint { LVM_DELETEITEM = LVM_FIRST + 8 } -// #define ListView_DeleteItem(hwnd, i) (BOOL)SNDMSG((hwnd), LVM_DELETEITEM, (WPARAM)(int)(i), 0L) - -enum : uint { LVM_DELETEALLITEMS = LVM_FIRST + 9 } -// #define ListView_DeleteAllItems(hwnd) (BOOL)SNDMSG((hwnd), LVM_DELETEALLITEMS, 0, 0L) - -enum : uint { LVM_GETCALLBACKMASK = LVM_FIRST + 10 } -// #define ListView_GetCallbackMask(hwnd) (BOOL)SNDMSG((hwnd), LVM_GETCALLBACKMASK, 0, 0) - -enum : uint { LVM_SETCALLBACKMASK = LVM_FIRST + 11 } -// #define ListView_SetCallbackMask(hwnd, mask) (BOOL)SNDMSG((hwnd), LVM_SETCALLBACKMASK, (WPARAM)(UINT)(mask), 0) - -enum : uint { LVNI_ALL = 0x0000 } -enum : uint { LVNI_FOCUSED = 0x0001 } -enum : uint { LVNI_SELECTED = 0x0002 } -enum : uint { LVNI_CUT = 0x0004 } -enum : uint { LVNI_DROPHILITED = 0x0008 } - -enum : uint { LVNI_ABOVE = 0x0100 } -enum : uint { LVNI_BELOW = 0x0200 } -enum : uint { LVNI_TOLEFT = 0x0400 } -enum : uint { LVNI_TORIGHT = 0x0800 } - -enum : uint { LVM_GETNEXTITEM = LVM_FIRST + 12 } -// #define ListView_GetNextItem(hwnd, i, flags) (int)SNDMSG((hwnd), LVM_GETNEXTITEM, (WPARAM)(int)(i), MAKELPARAM((flags), 0)) - -enum : uint { LVFI_PARAM = 0x0001 } -enum : uint { LVFI_STRING = 0x0002 } -enum : uint { LVFI_PARTIAL = 0x0008 } -enum : uint { LVFI_WRAP = 0x0020 } -enum : uint { LVFI_NEARESTXY = 0x0040 } - -// #if (_WIN32_IE >= 0x0300) -alias LVFINDINFOA LV_FINDINFOA; -alias LVFINDINFOW LV_FINDINFOW; -// #else -// #... -// #... -// #... -// #... -// #endif - -alias LVFINDINFO LV_FINDINFO; - -struct tagLVFINDINFOA { - UINT flags; - LPCSTR psz; - LPARAM lParam; - POINT pt; - UINT vkDirection; -} -alias tagLVFINDINFOA LVFINDINFOA; -alias tagLVFINDINFOA* LPFINDINFOA; - -struct tagLVFINDINFOW { - UINT flags; - LPCWSTR psz; - LPARAM lParam; - POINT pt; - UINT vkDirection; -} -alias tagLVFINDINFOW LVFINDINFOW; -alias tagLVFINDINFOW* LPFINDINFOW; - -// #ifdef UNICODE -// #... -// #else -alias LVFINDINFOA LVFINDINFO; -// #endif - -enum : uint { LVM_FINDITEMA = LVM_FIRST + 13 } -enum : uint { LVM_FINDITEMW = LVM_FIRST + 83 } -// #ifdef UNICODE -// #... -// #else -alias LVM_FINDITEMA LVM_FINDITEM; -// #endif - -// #define ListView_FindItem(hwnd, iStart, plvfi) (int)SNDMSG((hwnd), LVM_FINDITEM, (WPARAM)(int)(iStart), (LPARAM)(const LV_FINDINFO *)(plvfi)) - -enum : uint { LVIR_BOUNDS = 0 } -enum : uint { LVIR_ICON = 1 } -enum : uint { LVIR_LABEL = 2 } -enum : uint { LVIR_SELECTBOUNDS = 3 } - -enum : uint { LVM_GETITEMRECT = LVM_FIRST + 14 } -// #define ListView_GetItemRect(hwnd, i, prc, code) (BOOL)SNDMSG((hwnd), LVM_GETITEMRECT, (WPARAM)(int)(i), ((prc) ? (((RECT *)(prc))->left = (code),(LPARAM)(RECT *)(prc)) : (LPARAM)(RECT *)NULL)) - -enum : uint { LVM_SETITEMPOSITION = LVM_FIRST + 15 } -// #define ListView_SetItemPosition(hwndLV, i, x, y) (BOOL)SNDMSG((hwndLV), LVM_SETITEMPOSITION, (WPARAM)(int)(i), MAKELPARAM((x), (y))) - -enum : uint { LVM_GETITEMPOSITION = LVM_FIRST + 16 } -// #define ListView_GetItemPosition(hwndLV, i, ppt) (BOOL)SNDMSG((hwndLV), LVM_GETITEMPOSITION, (WPARAM)(int)(i), (LPARAM)(POINT *)(ppt)) - -enum : uint { LVM_GETSTRINGWIDTHA = LVM_FIRST + 17 } -enum : uint { LVM_GETSTRINGWIDTHW = LVM_FIRST + 87 } -// #ifdef UNICODE -// #... -// #else -alias LVM_GETSTRINGWIDTHA LVM_GETSTRINGWIDTH; -// #endif - -// #define ListView_GetStringWidth(hwndLV, psz) (int)SNDMSG((hwndLV), LVM_GETSTRINGWIDTH, 0, (LPARAM)(LPCTSTR)(psz)) - -enum : uint { LVHT_NOWHERE = 0x0001 } -enum : uint { LVHT_ONITEMICON = 0x0002 } -enum : uint { LVHT_ONITEMLABEL = 0x0004 } -enum : uint { LVHT_ONITEMSTATEICON = 0x0008 } -enum : uint { LVHT_ONITEM = LVHT_ONITEMICON | LVHT_ONITEMLABEL | LVHT_ONITEMSTATEICON } - -enum : uint { LVHT_ABOVE = 0x0008 } -enum : uint { LVHT_BELOW = 0x0010 } -enum : uint { LVHT_TORIGHT = 0x0020 } -enum : uint { LVHT_TOLEFT = 0x0040 } - -// #if (_WIN32_IE >= 0x0300) -alias LVHITTESTINFO LV_HITTESTINFO; -// #else -// #... -// #... -// #endif - -// #define LVHITTESTINFO_V1_SIZE CCSIZEOF_STRUCT(LVHITTESTINFO, iItem) - -struct tagLVHITTESTINFO { - POINT pt; - UINT flags; - int iItem; -// #if (_WIN32_IE >= 0x0300) - int iSubItem; -// #endif -} -alias tagLVHITTESTINFO LVHITTESTINFO; -alias tagLVHITTESTINFO* LPLVHITTESTINFO; - -enum : uint { LVM_HITTEST = LVM_FIRST + 18 } -// #define ListView_HitTest(hwndLV, pinfo) (int)SNDMSG((hwndLV), LVM_HITTEST, 0, (LPARAM)(LV_HITTESTINFO *)(pinfo)) - -enum : uint { LVM_ENSUREVISIBLE = LVM_FIRST + 19 } -// #define ListView_EnsureVisible(hwndLV, i, fPartialOK) (BOOL)SNDMSG((hwndLV), LVM_ENSUREVISIBLE, (WPARAM)(int)(i), MAKELPARAM((fPartialOK), 0)) - -enum : uint { LVM_SCROLL = LVM_FIRST + 20 } -// #define ListView_Scroll(hwndLV, dx, dy) (BOOL)SNDMSG((hwndLV), LVM_SCROLL, (WPARAM)(int)(dx), (LPARAM)(int)(dy)) - -enum : uint { LVM_REDRAWITEMS = LVM_FIRST + 21 } -// #define ListView_RedrawItems(hwndLV, iFirst, iLast) (BOOL)SNDMSG((hwndLV), LVM_REDRAWITEMS, (WPARAM)(int)(iFirst), (LPARAM)(int)(iLast)) - -enum : uint { LVA_DEFAULT = 0x0000 } -enum : uint { LVA_ALIGNLEFT = 0x0001 } -enum : uint { LVA_ALIGNTOP = 0x0002 } -enum : uint { LVA_SNAPTOGRID = 0x0005 } - -enum : uint { LVM_ARRANGE = LVM_FIRST + 22 } -// #define ListView_Arrange(hwndLV, code) (BOOL)SNDMSG((hwndLV), LVM_ARRANGE, (WPARAM)(UINT)(code), 0L) - -enum : uint { LVM_EDITLABELA = LVM_FIRST + 23 } -enum : uint { LVM_EDITLABELW = LVM_FIRST + 118 } -// #ifdef UNICODE -// #... -// #else -alias LVM_EDITLABELA LVM_EDITLABEL; -// #endif - -// #define ListView_EditLabel(hwndLV, i) (HWND)SNDMSG((hwndLV), LVM_EDITLABEL, (WPARAM)(int)(i), 0L) - -enum : uint { LVM_GETEDITCONTROL = LVM_FIRST + 24 } -// #define ListView_GetEditControl(hwndLV) (HWND)SNDMSG((hwndLV), LVM_GETEDITCONTROL, 0, 0L) - -// #if (_WIN32_IE >= 0x0300) -alias LVCOLUMNA LV_COLUMNA; -alias LVCOLUMNW LV_COLUMNW; -// #else -// #... -// #... -// #... -// #... -// #endif - -alias LVCOLUMN LV_COLUMN; - -// #define LVCOLUMNA_V1_SIZE CCSIZEOF_STRUCT(LVCOLUMNA, iSubItem) -// #define LVCOLUMNW_V1_SIZE CCSIZEOF_STRUCT(LVCOLUMNW, iSubItem) - -struct tagLVCOLUMNA { - UINT mask; - int fmt; - int cx; - LPSTR pszText; - int cchTextMax; - int iSubItem; -// #if (_WIN32_IE >= 0x0300) - int iImage; - int iOrder; -// #endif -} -alias tagLVCOLUMNA LVCOLUMNA; -alias tagLVCOLUMNA* LPLVCOLUMNA; - -struct tagLVCOLUMNW { - UINT mask; - int fmt; - int cx; - LPWSTR pszText; - int cchTextMax; - int iSubItem; -// #if (_WIN32_IE >= 0x0300) - int iImage; - int iOrder; -// #endif -} -alias tagLVCOLUMNW LVCOLUMNW; -alias tagLVCOLUMNW* LPLVCOLUMNW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias LVCOLUMNA LVCOLUMN; -alias LPLVCOLUMNA LPLVCOLUMN; -// #define LVCOLUMN_V1_SIZE LVCOLUMNA_V1_SIZE -// #endif - -enum : uint { LVCF_FMT = 0x0001 } -enum : uint { LVCF_WIDTH = 0x0002 } -enum : uint { LVCF_TEXT = 0x0004 } -enum : uint { LVCF_SUBITEM = 0x0008 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { LVCF_IMAGE = 0x0010 } -enum : uint { LVCF_ORDER = 0x0020 } -// #endif - -enum : uint { LVCFMT_LEFT = 0x0000 } -enum : uint { LVCFMT_RIGHT = 0x0001 } -enum : uint { LVCFMT_CENTER = 0x0002 } -enum : uint { LVCFMT_JUSTIFYMASK = 0x0003 } - -// #if (_WIN32_IE >= 0x0300) -enum : uint { LVCFMT_IMAGE = 0x0800 } -enum : uint { LVCFMT_BITMAP_ON_RIGHT = 0x1000 } -enum : uint { LVCFMT_COL_HAS_IMAGES = 0x8000 } -// #endif - -enum : uint { LVM_GETCOLUMNA = LVM_FIRST + 25 } -enum : uint { LVM_GETCOLUMNW = LVM_FIRST + 95 } -// #ifdef UNICODE -// #... -// #else -alias LVM_GETCOLUMNA LVM_GETCOLUMN; -// #endif - -// #define ListView_GetColumn(hwnd, iCol, pcol) (BOOL)SNDMSG((hwnd), LVM_GETCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(LV_COLUMN *)(pcol)) - -enum : uint { LVM_SETCOLUMNA = LVM_FIRST + 26 } -enum : uint { LVM_SETCOLUMNW = LVM_FIRST + 96 } -// #ifdef UNICODE -// #... -// #else -alias LVM_SETCOLUMNA LVM_SETCOLUMN; -// #endif - -// #define ListView_SetColumn(hwnd, iCol, pcol) (BOOL)SNDMSG((hwnd), LVM_SETCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(const LV_COLUMN *)(pcol)) - -enum : uint { LVM_INSERTCOLUMNA = LVM_FIRST + 27 } -enum : uint { LVM_INSERTCOLUMNW = LVM_FIRST + 97 } -// #ifdef UNICODE -// #... -// #else -alias LVM_INSERTCOLUMNA LVM_INSERTCOLUMN; -// #endif - -// #define ListView_InsertColumn(hwnd, iCol, pcol) (int)SNDMSG((hwnd), LVM_INSERTCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(const LV_COLUMN *)(pcol)) - -enum : uint { LVM_DELETECOLUMN = LVM_FIRST + 28 } -// #define ListView_DeleteColumn(hwnd, iCol) (BOOL)SNDMSG((hwnd), LVM_DELETECOLUMN, (WPARAM)(int)(iCol), 0) - -enum : uint { LVM_GETCOLUMNWIDTH = LVM_FIRST + 29 } -// #define ListView_GetColumnWidth(hwnd, iCol) (int)SNDMSG((hwnd), LVM_GETCOLUMNWIDTH, (WPARAM)(int)(iCol), 0) - -enum { LVSCW_AUTOSIZE = -1 } -enum { LVSCW_AUTOSIZE_USEHEADER = -2 } -enum : uint { LVM_SETCOLUMNWIDTH = LVM_FIRST + 30 } - -// #define ListView_SetColumnWidth(hwnd, iCol, cx) (BOOL)SNDMSG((hwnd), LVM_SETCOLUMNWIDTH, (WPARAM)(int)(iCol), MAKELPARAM((cx), 0)) - -// #if (_WIN32_IE >= 0x0300) -enum : uint { LVM_GETHEADER = LVM_FIRST + 31 } -// #define ListView_GetHeader(hwnd) (HWND)SNDMSG((hwnd), LVM_GETHEADER, 0, 0L) -// #endif - -enum : uint { LVM_CREATEDRAGIMAGE = LVM_FIRST + 33 } -// #define ListView_CreateDragImage(hwnd, i, lpptUpLeft) (HIMAGELIST)SNDMSG((hwnd), LVM_CREATEDRAGIMAGE, (WPARAM)(int)(i), (LPARAM)(LPPOINT)(lpptUpLeft)) - -enum : uint { LVM_GETVIEWRECT = LVM_FIRST + 34 } -// #define ListView_GetViewRect(hwnd, prc) (BOOL)SNDMSG((hwnd), LVM_GETVIEWRECT, 0, (LPARAM)(RECT *)(prc)) - -enum : uint { LVM_GETTEXTCOLOR = LVM_FIRST + 35 } -// #define ListView_GetTextColor(hwnd) (COLORREF)SNDMSG((hwnd), LVM_GETTEXTCOLOR, 0, 0L) - -enum : uint { LVM_SETTEXTCOLOR = LVM_FIRST + 36 } -// #define ListView_SetTextColor(hwnd, clrText) (BOOL)SNDMSG((hwnd), LVM_SETTEXTCOLOR, 0, (LPARAM)(COLORREF)(clrText)) - -enum : uint { LVM_GETTEXTBKCOLOR = LVM_FIRST + 37 } -// #define ListView_GetTextBkColor(hwnd) (COLORREF)SNDMSG((hwnd), LVM_GETTEXTBKCOLOR, 0, 0L) - -enum : uint { LVM_SETTEXTBKCOLOR = LVM_FIRST + 38 } -// #define ListView_SetTextBkColor(hwnd, clrTextBk) (BOOL)SNDMSG((hwnd), LVM_SETTEXTBKCOLOR, 0, (LPARAM)(COLORREF)(clrTextBk)) - -enum : uint { LVM_GETTOPINDEX = LVM_FIRST + 39 } -// #define ListView_GetTopIndex(hwndLV) (int)SNDMSG((hwndLV), LVM_GETTOPINDEX, 0, 0) - -enum : uint { LVM_GETCOUNTPERPAGE = LVM_FIRST + 40 } -// #define ListView_GetCountPerPage(hwndLV) (int)SNDMSG((hwndLV), LVM_GETCOUNTPERPAGE, 0, 0) - -enum : uint { LVM_GETORIGIN = LVM_FIRST + 41 } -// #define ListView_GetOrigin(hwndLV, ppt) (BOOL)SNDMSG((hwndLV), LVM_GETORIGIN, (WPARAM)0, (LPARAM)(POINT *)(ppt)) - -enum : uint { LVM_UPDATE = LVM_FIRST + 42 } -// #define ListView_Update(hwndLV, i) (BOOL)SNDMSG((hwndLV), LVM_UPDATE, (WPARAM)(i), 0L) - -enum : uint { LVM_SETITEMSTATE = LVM_FIRST + 43 } -// #define ListView_SetItemState(hwndLV, i, data, mask) { LV_ITEM _ms_lvi; _ms_lvi.stateMask = mask; _ms_lvi.state = data; SNDMSG((hwndLV), LVM_SETITEMSTATE, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi); } - -// #if (_WIN32_IE >= 0x0300) -// #define ListView_SetCheckState(hwndLV, i, fCheck) ListView_SetItemState(hwndLV, i, INDEXTOSTATEIMAGEMASK((fCheck)?2:1), LVIS_STATEIMAGEMASK) -// #endif - -enum : uint { LVM_GETITEMSTATE = LVM_FIRST + 44 } -// #define ListView_GetItemState(hwndLV, i, mask) (UINT)SNDMSG((hwndLV), LVM_GETITEMSTATE, (WPARAM)(i), (LPARAM)(mask)) - -// #if (_WIN32_IE >= 0x0300) -// #define ListView_GetCheckState(hwndLV, i) ((((UINT)(SNDMSG((hwndLV), LVM_GETITEMSTATE, (WPARAM)(i), LVIS_STATEIMAGEMASK))) >> 12) -1) -// #endif - -enum : uint { LVM_GETITEMTEXTA = LVM_FIRST + 45 } -enum : uint { LVM_GETITEMTEXTW = LVM_FIRST + 115 } - -// #ifdef UNICODE -// #... -// #else -alias LVM_GETITEMTEXTA LVM_GETITEMTEXT; -// #endif - -// #define ListView_GetItemText(hwndLV, i, iSubItem_, pszText_, cchTextMax_) { LV_ITEM _ms_lvi; _ms_lvi.iSubItem = iSubItem_; _ms_lvi.cchTextMax = cchTextMax_; _ms_lvi.pszText = pszText_; SNDMSG((hwndLV), LVM_GETITEMTEXT, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi); } - -enum : uint { LVM_SETITEMTEXTA = LVM_FIRST + 46 } -enum : uint { LVM_SETITEMTEXTW = LVM_FIRST + 116 } - -// #ifdef UNICODE -// #... -// #else -alias LVM_SETITEMTEXTA LVM_SETITEMTEXT; -// #endif - -// #define ListView_SetItemText(hwndLV, i, iSubItem_, pszText_) { LV_ITEM _ms_lvi; _ms_lvi.iSubItem = iSubItem_; _ms_lvi.pszText = pszText_; SNDMSG((hwndLV), LVM_SETITEMTEXT, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi); } - -// #if (_WIN32_IE >= 0x0300) - -enum : uint { LVSICF_NOINVALIDATEALL = 0x00000001 } -enum : uint { LVSICF_NOSCROLL = 0x00000002 } -// #endif - -enum : uint { LVM_SETITEMCOUNT = LVM_FIRST + 47 } -// #define ListView_SetItemCount(hwndLV, cItems) SNDMSG((hwndLV), LVM_SETITEMCOUNT, (WPARAM)(cItems), 0) - -// #if (_WIN32_IE >= 0x0300) -// #define ListView_SetItemCountEx(hwndLV, cItems, dwFlags) SNDMSG((hwndLV), LVM_SETITEMCOUNT, (WPARAM)(cItems), (LPARAM)(dwFlags)) -// #endif - -extern(Windows) alias int function(LPARAM, LPARAM, LPARAM) PFNLVCOMPARE; - -enum : uint { LVM_SORTITEMS = LVM_FIRST + 48 } -// #define ListView_SortItems(hwndLV, _pfnCompare, _lPrm) (BOOL)SNDMSG((hwndLV), LVM_SORTITEMS, (WPARAM)(LPARAM)(_lPrm), (LPARAM)(PFNLVCOMPARE)(_pfnCompare)) - -enum : uint { LVM_SETITEMPOSITION32 = LVM_FIRST + 49 } -// #define ListView_SetItemPosition32(hwndLV, i, x0, y0) { POINT ptNewPos; ptNewPos.x = x0; ptNewPos.y = y0; SNDMSG((hwndLV), LVM_SETITEMPOSITION32, (WPARAM)(int)(i), (LPARAM)&ptNewPos); } - -enum : uint { LVM_GETSELECTEDCOUNT = LVM_FIRST + 50 } -// #define ListView_GetSelectedCount(hwndLV) (UINT)SNDMSG((hwndLV), LVM_GETSELECTEDCOUNT, 0, 0L) - -enum : uint { LVM_GETITEMSPACING = LVM_FIRST + 51 } -// #define ListView_GetItemSpacing(hwndLV, fSmall) (DWORD)SNDMSG((hwndLV), LVM_GETITEMSPACING, fSmall, 0L) - -enum : uint { LVM_GETISEARCHSTRINGA = LVM_FIRST + 52 } -enum : uint { LVM_GETISEARCHSTRINGW = LVM_FIRST + 117 } - -// #ifdef UNICODE -// #... -// #else -alias LVM_GETISEARCHSTRINGA LVM_GETISEARCHSTRING; -// #endif - -// #define ListView_GetISearchString(hwndLV, lpsz) (BOOL)SNDMSG((hwndLV), LVM_GETISEARCHSTRING, 0, (LPARAM)(LPTSTR)(lpsz)) - -// #if (_WIN32_IE >= 0x0300) -enum : uint { LVM_SETICONSPACING = LVM_FIRST + 53 } - -// #define ListView_SetIconSpacing(hwndLV, cx, cy) (DWORD)SNDMSG((hwndLV), LVM_SETICONSPACING, 0, MAKELONG(cx,cy)) - -enum : uint { LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54 } -// #define ListView_SetExtendedListViewStyle(hwndLV, dw) (DWORD)SNDMSG((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dw) -// #if (_WIN32_IE >= 0x0400) -// #define ListView_SetExtendedListViewStyleEx(hwndLV, dwMask, dw) (DWORD)SNDMSG((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, dwMask, dw) -// #endif - -enum : uint { LVM_GETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 55 } -// #define ListView_GetExtendedListViewStyle(hwndLV) (DWORD)SNDMSG((hwndLV), LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0) - -enum : uint { LVS_EX_GRIDLINES = 0x00000001 } -enum : uint { LVS_EX_SUBITEMIMAGES = 0x00000002 } -enum : uint { LVS_EX_CHECKBOXES = 0x00000004 } -enum : uint { LVS_EX_TRACKSELECT = 0x00000008 } -enum : uint { LVS_EX_HEADERDRAGDROP = 0x00000010 } -enum : uint { LVS_EX_FULLROWSELECT = 0x00000020 } -enum : uint { LVS_EX_ONECLICKACTIVATE = 0x00000040 } -enum : uint { LVS_EX_TWOCLICKACTIVATE = 0x00000080 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { LVS_EX_FLATSB = 0x00000100 } -enum : uint { LVS_EX_REGIONAL = 0x00000200 } -enum : uint { LVS_EX_INFOTIP = 0x00000400 } -enum : uint { LVS_EX_UNDERLINEHOT = 0x00000800 } -enum : uint { LVS_EX_UNDERLINECOLD = 0x00001000 } -enum : uint { LVS_EX_MULTIWORKAREAS = 0x00002000 } -// #endif -// #if (_WIN32_IE >= 0x0500) -enum : uint { LVS_EX_LABELTIP = 0x00004000 } -enum : uint { LVS_EX_BORDERSELECT = 0x00008000 } -// #endif // End (_WIN32_IE >= 0x0500) -// #if (_WIN32_WINNT >= 0x501) -enum : uint { LVS_EX_DOUBLEBUFFER = 0x00010000 } -enum : uint { LVS_EX_HIDELABELS = 0x00020000 } -enum : uint { LVS_EX_SINGLEROW = 0x00040000 } -enum : uint { LVS_EX_SNAPTOGRID = 0x00080000 } -enum : uint { LVS_EX_SIMPLESELECT = 0x00100000 } -// #endif - -enum : uint { LVM_GETSUBITEMRECT = LVM_FIRST + 56 } -// #define ListView_GetSubItemRect(hwnd, iItem, iSubItem, code, prc) (BOOL)SNDMSG((hwnd), LVM_GETSUBITEMRECT, (WPARAM)(int)(iItem), ((prc) ? ((((LPRECT)(prc))->top = iSubItem), (((LPRECT)(prc))->left = code), (LPARAM)(prc)) : (LPARAM)(LPRECT)NULL)) - -enum : uint { LVM_SUBITEMHITTEST = LVM_FIRST + 57 } -// #define ListView_SubItemHitTest(hwnd, plvhti) (int)SNDMSG((hwnd), LVM_SUBITEMHITTEST, 0, (LPARAM)(LPLVHITTESTINFO)(plvhti)) - -enum : uint { LVM_SETCOLUMNORDERARRAY = LVM_FIRST + 58 } -// #define ListView_SetColumnOrderArray(hwnd, iCount, pi) (BOOL)SNDMSG((hwnd), LVM_SETCOLUMNORDERARRAY, (WPARAM)(iCount), (LPARAM)(LPINT)(pi)) - -enum : uint { LVM_GETCOLUMNORDERARRAY = LVM_FIRST + 59 } -// #define ListView_GetColumnOrderArray(hwnd, iCount, pi) (BOOL)SNDMSG((hwnd), LVM_GETCOLUMNORDERARRAY, (WPARAM)(iCount), (LPARAM)(LPINT)(pi)) - -enum : uint { LVM_SETHOTITEM = LVM_FIRST + 60 } -// #define ListView_SetHotItem(hwnd, i) (int)SNDMSG((hwnd), LVM_SETHOTITEM, (WPARAM)(i), 0) - -enum : uint { LVM_GETHOTITEM = LVM_FIRST + 61 } -// #define ListView_GetHotItem(hwnd) (int)SNDMSG((hwnd), LVM_GETHOTITEM, 0, 0) - -enum : uint { LVM_SETHOTCURSOR = LVM_FIRST + 62 } -// #define ListView_SetHotCursor(hwnd, hcur) (HCURSOR)SNDMSG((hwnd), LVM_SETHOTCURSOR, 0, (LPARAM)(hcur)) - -enum : uint { LVM_GETHOTCURSOR = LVM_FIRST + 63 } -// #define ListView_GetHotCursor(hwnd) (HCURSOR)SNDMSG((hwnd), LVM_GETHOTCURSOR, 0, 0) - -enum : uint { LVM_APPROXIMATEVIEWRECT = LVM_FIRST + 64 } -// #define ListView_ApproximateViewRect(hwnd, iWidth, iHeight, iCount) (DWORD)SNDMSG((hwnd), LVM_APPROXIMATEVIEWRECT, iCount, MAKELPARAM(iWidth, iHeight)) -// #endif // _WIN32_IE >= 0x0300 - -// #if (_WIN32_IE >= 0x0400) - -enum : uint { LV_MAX_WORKAREAS = 16 } -enum : uint { LVM_SETWORKAREAS = LVM_FIRST + 65 } -// #define ListView_SetWorkAreas(hwnd, nWorkAreas, prc) (BOOL)SNDMSG((hwnd), LVM_SETWORKAREAS, (WPARAM)(int)(nWorkAreas), (LPARAM)(RECT *)(prc)) - -enum : uint { LVM_GETWORKAREAS = LVM_FIRST + 70 } -// #define ListView_GetWorkAreas(hwnd, nWorkAreas, prc) (BOOL)SNDMSG((hwnd), LVM_GETWORKAREAS, (WPARAM)(int)(nWorkAreas), (LPARAM)(RECT *)(prc)) - -enum : uint { LVM_GETNUMBEROFWORKAREAS = LVM_FIRST + 73 } -// #define ListView_GetNumberOfWorkAreas(hwnd, pnWorkAreas) (BOOL)SNDMSG((hwnd), LVM_GETNUMBEROFWORKAREAS, 0, (LPARAM)(UINT *)(pnWorkAreas)) - -enum : uint { LVM_GETSELECTIONMARK = LVM_FIRST + 66 } -// #define ListView_GetSelectionMark(hwnd) (int)SNDMSG((hwnd), LVM_GETSELECTIONMARK, 0, 0) - -enum : uint { LVM_SETSELECTIONMARK = LVM_FIRST + 67 } -// #define ListView_SetSelectionMark(hwnd, i) (int)SNDMSG((hwnd), LVM_SETSELECTIONMARK, 0, (LPARAM)(i)) - -enum : uint { LVM_SETHOVERTIME = LVM_FIRST + 71 } -// #define ListView_SetHoverTime(hwndLV, dwHoverTimeMs) (DWORD)SNDMSG((hwndLV), LVM_SETHOVERTIME, 0, (LPARAM)(dwHoverTimeMs)) - -enum : uint { LVM_GETHOVERTIME = LVM_FIRST + 72 } -// #define ListView_GetHoverTime(hwndLV) (DWORD)SNDMSG((hwndLV), LVM_GETHOVERTIME, 0, 0) - -enum : uint { LVM_SETTOOLTIPS = LVM_FIRST + 74 } -// #define ListView_SetToolTips(hwndLV, hwndNewHwnd) (HWND)SNDMSG((hwndLV), LVM_SETTOOLTIPS, (WPARAM)(hwndNewHwnd), 0) - -enum : uint { LVM_GETTOOLTIPS = LVM_FIRST + 78 } -// #define ListView_GetToolTips(hwndLV) (HWND)SNDMSG((hwndLV), LVM_GETTOOLTIPS, 0, 0) - -enum : uint { LVM_SORTITEMSEX = LVM_FIRST + 81 } -// #define ListView_SortItemsEx(hwndLV, _pfnCompare, _lPrm) (BOOL)SNDMSG((hwndLV), LVM_SORTITEMSEX, (WPARAM)(LPARAM)(_lPrm), (LPARAM)(PFNLVCOMPARE)(_pfnCompare)) - -struct tagLVBKIMAGEA { - ULONG ulFlags; - HBITMAP hbm; - LPSTR pszImage; - UINT cchImageMax; - int xOffsetPercent; - int yOffsetPercent; -} -alias tagLVBKIMAGEA LVBKIMAGEA; -alias tagLVBKIMAGEA* LPLVBKIMAGEA; - -struct tagLVBKIMAGEW { - ULONG ulFlags; - HBITMAP hbm; - LPWSTR pszImage; - UINT cchImageMax; - int xOffsetPercent; - int yOffsetPercent; -} -alias tagLVBKIMAGEW LVBKIMAGEW; -alias tagLVBKIMAGEW* LPLVBKIMAGEW; - -enum : uint { LVBKIF_SOURCE_NONE = 0x00000000 } -enum : uint { LVBKIF_SOURCE_HBITMAP = 0x00000001 } -enum : uint { LVBKIF_SOURCE_URL = 0x00000002 } -enum : uint { LVBKIF_SOURCE_MASK = 0x00000003 } -enum : uint { LVBKIF_STYLE_NORMAL = 0x00000000 } -enum : uint { LVBKIF_STYLE_TILE = 0x00000010 } -enum : uint { LVBKIF_STYLE_MASK = 0x00000010 } -// #if (_WIN32_WINNT >= 0x501) -enum : uint { LVBKIF_FLAG_TILEOFFSET = 0x00000100 } -enum : uint { LVBKIF_TYPE_WATERMARK = 0x10000000 } -// #endif - -enum : uint { LVM_SETBKIMAGEA = LVM_FIRST + 68 } -enum : uint { LVM_SETBKIMAGEW = LVM_FIRST + 138 } -enum : uint { LVM_GETBKIMAGEA = LVM_FIRST + 69 } -enum : uint { LVM_GETBKIMAGEW = LVM_FIRST + 139 } - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { LVM_SETSELECTEDCOLUMN = LVM_FIRST + 140 } -// #define ListView_SetSelectedColumn(hwnd, iCol) SNDMSG((hwnd), LVM_SETSELECTEDCOLUMN, (WPARAM)iCol, 0) - -enum : uint { LVM_SETTILEWIDTH = LVM_FIRST + 141 } -// #define ListView_SetTileWidth(hwnd, cpWidth) SNDMSG((hwnd), LVM_SETTILEWIDTH, (WPARAM)cpWidth, 0) - -enum : uint { LV_VIEW_ICON = 0x0000 } -enum : uint { LV_VIEW_DETAILS = 0x0001 } -enum : uint { LV_VIEW_SMALLICON = 0x0002 } -enum : uint { LV_VIEW_LIST = 0x0003 } -enum : uint { LV_VIEW_TILE = 0x0004 } -enum : uint { LV_VIEW_MAX = 0x0004 } - -enum : uint { LVM_SETVIEW = LVM_FIRST + 142 } -// #define ListView_SetView(hwnd, iView) (DWORD)SNDMSG((hwnd), LVM_SETVIEW, (WPARAM)(DWORD)iView, 0) - -enum : uint { LVM_GETVIEW = LVM_FIRST + 143 } -// #define ListView_GetView(hwnd) (DWORD)SNDMSG((hwnd), LVM_GETVIEW, 0, 0) - -enum : uint { LVGF_NONE = 0x00000000 } -enum : uint { LVGF_HEADER = 0x00000001 } -enum : uint { LVGF_FOOTER = 0x00000002 } -enum : uint { LVGF_STATE = 0x00000004 } -enum : uint { LVGF_ALIGN = 0x00000008 } -enum : uint { LVGF_GROUPID = 0x00000010 } - -enum : uint { LVGS_NORMAL = 0x00000000 } -enum : uint { LVGS_COLLAPSED = 0x00000001 } -enum : uint { LVGS_HIDDEN = 0x00000002 } - -enum : uint { LVGA_HEADER_LEFT = 0x00000001 } -enum : uint { LVGA_HEADER_CENTER = 0x00000002 } -enum : uint { LVGA_HEADER_RIGHT = 0x00000004 } -enum : uint { LVGA_FOOTER_LEFT = 0x00000008 } -enum : uint { LVGA_FOOTER_CENTER = 0x00000010 } -enum : uint { LVGA_FOOTER_RIGHT = 0x00000020 } - -struct tagLVGROUP { - UINT cbSize; - UINT mask; - LPWSTR pszHeader; - int cchHeader; - LPWSTR pszFooter; - int cchFooter; - int iGroupId; - UINT stateMask; - UINT state; - UINT uAlign; -} -alias tagLVGROUP LVGROUP; -alias tagLVGROUP* PLVGROUP; - -enum : uint { LVM_INSERTGROUP = LVM_FIRST + 145 } -// #define ListView_InsertGroup(hwnd, index, pgrp) SNDMSG((hwnd), LVM_INSERTGROUP, (WPARAM)index, (LPARAM)pgrp) - -enum : uint { LVM_SETGROUPINFO = LVM_FIRST + 147 } -// #define ListView_SetGroupInfo(hwnd, iGroupId, pgrp) SNDMSG((hwnd), LVM_SETGROUPINFO, (WPARAM)iGroupId, (LPARAM)pgrp) - -enum : uint { LVM_GETGROUPINFO = LVM_FIRST + 149 } -// #define ListView_GetGroupInfo(hwnd, iGroupId, pgrp) SNDMSG((hwnd), LVM_GETGROUPINFO, (WPARAM)iGroupId, (LPARAM)pgrp) - -enum : uint { LVM_REMOVEGROUP = LVM_FIRST + 150 } -// #define ListView_RemoveGroup(hwnd, iGroupId) SNDMSG((hwnd), LVM_REMOVEGROUP, (WPARAM)iGroupId, 0) - -enum : uint { LVM_MOVEGROUP = LVM_FIRST + 151 } -// #define ListView_MoveGroup(hwnd, iGroupId, toIndex) SNDMSG((hwnd), LVM_MOVEGROUP, (WPARAM)iGroupId, (LPARAM)toIndex) - -enum : uint { LVM_MOVEITEMTOGROUP = LVM_FIRST + 154 } -// #define ListView_MoveItemToGroup(hwnd, idItemFrom, idGroupTo) SNDMSG((hwnd), LVM_MOVEITEMTOGROUP, (WPARAM)idItemFrom, (LPARAM)idGroupTo) - -enum : uint { LVGMF_NONE = 0x00000000 } -enum : uint { LVGMF_BORDERSIZE = 0x00000001 } -enum : uint { LVGMF_BORDERCOLOR = 0x00000002 } -enum : uint { LVGMF_TEXTCOLOR = 0x00000004 } - -struct tagLVGROUPMETRICS { - UINT cbSize; - UINT mask; - UINT Left; - UINT Top; - UINT Right; - UINT Bottom; - COLORREF crLeft; - COLORREF crTop; - COLORREF crRight; - COLORREF crBottom; - COLORREF crHeader; - COLORREF crFooter; -} -alias tagLVGROUPMETRICS LVGROUPMETRICS; -alias tagLVGROUPMETRICS* PLVGROUPMETRICS; - -enum : uint { LVM_SETGROUPMETRICS = LVM_FIRST + 155 } -// #define ListView_SetGroupMetrics(hwnd, pGroupMetrics) SNDMSG((hwnd), LVM_SETGROUPMETRICS, 0, (LPARAM)pGroupMetrics) - -enum : uint { LVM_GETGROUPMETRICS = LVM_FIRST + 156 } -// #define ListView_GetGroupMetrics(hwnd, pGroupMetrics) SNDMSG((hwnd), LVM_GETGROUPMETRICS, 0, (LPARAM)pGroupMetrics) - -enum : uint { LVM_ENABLEGROUPVIEW = LVM_FIRST + 157 } -// #define ListView_EnableGroupView(hwnd, fEnable) SNDMSG((hwnd), LVM_ENABLEGROUPVIEW, (WPARAM)fEnable, 0) - -extern(Windows) alias int function(int, int, void *) PFNLVGROUPCOMPARE; - -enum : uint { LVM_SORTGROUPS = LVM_FIRST + 158 } -// #define ListView_SortGroups(hwnd, _pfnGroupCompate, _plv) SNDMSG((hwnd), LVM_SORTGROUPS, (WPARAM)_pfnGroupCompate, (LPARAM)_plv) - -struct tagLVINSERTGROUPSORTED { - PFNLVGROUPCOMPARE pfnGroupCompare; - void *pvData; - LVGROUP lvGroup; -} -alias tagLVINSERTGROUPSORTED LVINSERTGROUPSORTED; -alias tagLVINSERTGROUPSORTED* PLVINSERTGROUPSORTED; - -enum : uint { LVM_INSERTGROUPSORTED = LVM_FIRST + 159 } -// #define ListView_InsertGroupSorted(hwnd, structInsert) SNDMSG((hwnd), LVM_INSERTGROUPSORTED, (WPARAM)structInsert, 0) - -enum : uint { LVM_REMOVEALLGROUPS = LVM_FIRST + 160 } -// #define ListView_RemoveAllGroups(hwnd) SNDMSG((hwnd), LVM_REMOVEALLGROUPS, 0, 0) - -enum : uint { LVM_HASGROUP = LVM_FIRST + 161 } -// #define ListView_HasGroup(hwnd, dwGroupId) SNDMSG((hwnd), LVM_HASGROUP, dwGroupId, 0) - -enum : uint { LVTVIF_AUTOSIZE = 0x00000000 } -enum : uint { LVTVIF_FIXEDWIDTH = 0x00000001 } -enum : uint { LVTVIF_FIXEDHEIGHT = 0x00000002 } -enum : uint { LVTVIF_FIXEDSIZE = 0x00000003 } - -enum : uint { LVTVIM_TILESIZE = 0x00000001 } -enum : uint { LVTVIM_COLUMNS = 0x00000002 } -enum : uint { LVTVIM_LABELMARGIN = 0x00000004 } - -struct tagLVTILEVIEWINFO { - UINT cbSize; - DWORD dwMask; - DWORD dwFlags; - SIZE sizeTile; - int cLines; - RECT rcLabelMargin; -} -alias tagLVTILEVIEWINFO LVTILEVIEWINFO; -alias tagLVTILEVIEWINFO* PLVTILEVIEWINFO; - -struct tagLVTILEINFO { - UINT cbSize; - int iItem; - UINT cColumns; - PUINT puColumns; -} -alias tagLVTILEINFO LVTILEINFO; -alias tagLVTILEINFO* PLVTILEINFO; - -enum : uint { LVM_SETTILEVIEWINFO = LVM_FIRST + 162 } -// #define ListView_SetTileViewInfo(hwnd, ptvi) SNDMSG((hwnd), LVM_SETTILEVIEWINFO, 0, (LPARAM)ptvi) - -enum : uint { LVM_GETTILEVIEWINFO = LVM_FIRST + 163 } -// #define ListView_GetTileViewInfo(hwnd, ptvi) SNDMSG((hwnd), LVM_GETTILEVIEWINFO, 0, (LPARAM)ptvi) - -enum : uint { LVM_SETTILEINFO = LVM_FIRST + 164 } -// #define ListView_SetTileInfo(hwnd, pti) SNDMSG((hwnd), LVM_SETTILEINFO, 0, (LPARAM)pti) - -enum : uint { LVM_GETTILEINFO = LVM_FIRST + 165 } -// #define ListView_GetTileInfo(hwnd, pti) SNDMSG((hwnd), LVM_GETTILEINFO, 0, (LPARAM)pti) - -struct _8 { - UINT cbSize; - DWORD dwFlags; - int iItem; - DWORD dwReserved; -} -alias _8 LVINSERTMARK; -alias _8* LPLVINSERTMARK; - -enum : uint { LVIM_AFTER = 0x00000001 } - -enum : uint { LVM_SETINSERTMARK = LVM_FIRST + 166 } -// #define ListView_SetInsertMark(hwnd, lvim) (BOOL)SNDMSG((hwnd), LVM_SETINSERTMARK, (WPARAM) 0, (LPARAM) (lvim)) - -enum : uint { LVM_GETINSERTMARK = LVM_FIRST + 167 } -// #define ListView_GetInsertMark(hwnd, lvim) (BOOL)SNDMSG((hwnd), LVM_GETINSERTMARK, (WPARAM) 0, (LPARAM) (lvim)) - -enum : uint { LVM_INSERTMARKHITTEST = LVM_FIRST + 168 } -// #define ListView_InsertMarkHitTest(hwnd, point, lvim) (int)SNDMSG((hwnd), LVM_INSERTMARKHITTEST, (WPARAM)(LPPOINT)(point), (LPARAM)(LPLVINSERTMARK)(lvim)) - -enum : uint { LVM_GETINSERTMARKRECT = LVM_FIRST + 169 } -// #define ListView_GetInsertMarkRect(hwnd, rc) (int)SNDMSG((hwnd), LVM_GETINSERTMARKRECT, (WPARAM)0, (LPARAM)(LPRECT)(rc)) - -enum : uint { LVM_SETINSERTMARKCOLOR = LVM_FIRST + 170 } -// #define ListView_SetInsertMarkColor(hwnd, color) (COLORREF)SNDMSG((hwnd), LVM_SETINSERTMARKCOLOR, (WPARAM)0, (LPARAM)(COLORREF)(color)) - -enum : uint { LVM_GETINSERTMARKCOLOR = LVM_FIRST + 171 } -// #define ListView_GetInsertMarkColor(hwnd) (COLORREF)SNDMSG((hwnd), LVM_GETINSERTMARKCOLOR, (WPARAM)0, (LPARAM)0) - -struct tagLVSETINFOTIP { - UINT cbSize; - DWORD dwFlags; - LPWSTR pszText; - int iItem; - int iSubItem; -} -alias tagLVSETINFOTIP LVSETINFOTIP; -alias tagLVSETINFOTIP* PLVSETINFOTIP; - -enum : uint { LVM_SETINFOTIP = LVM_FIRST + 173 } - -// #define ListView_SetInfoTip(hwndLV, plvInfoTip) (BOOL)SNDMSG((hwndLV), LVM_SETINFOTIP, (WPARAM)0, (LPARAM)plvInfoTip) - -enum : uint { LVM_GETSELECTEDCOLUMN = LVM_FIRST + 174 } -// #define ListView_GetSelectedColumn(hwnd) (UINT)SNDMSG((hwnd), LVM_GETSELECTEDCOLUMN, 0, 0) - -enum : uint { LVM_ISGROUPVIEWENABLED = LVM_FIRST + 175 } -// #define ListView_IsGroupViewEnabled(hwnd) (BOOL)SNDMSG((hwnd), LVM_ISGROUPVIEWENABLED, 0, 0) - -enum : uint { LVM_GETOUTLINECOLOR = LVM_FIRST + 176 } -// #define ListView_GetOutlineColor(hwnd) (COLORREF)SNDMSG((hwnd), LVM_GETOUTLINECOLOR, 0, 0) - -enum : uint { LVM_SETOUTLINECOLOR = LVM_FIRST + 177 } -// #define ListView_SetOutlineColor(hwnd, color) (COLORREF)SNDMSG((hwnd), LVM_SETOUTLINECOLOR, (WPARAM)0, (LPARAM)(COLORREF)(color)) - -enum : uint { LVM_CANCELEDITLABEL = LVM_FIRST + 179 } -// #define ListView_CancelEditLabel(hwnd) (VOID)SNDMSG((hwnd), LVM_CANCELEDITLABEL, (WPARAM)0, (LPARAM)0) - -enum : uint { LVM_MAPINDEXTOID = LVM_FIRST + 180 } -// #define ListView_MapIndexToID(hwnd, index) (UINT)SNDMSG((hwnd), LVM_MAPINDEXTOID, (WPARAM)index, (LPARAM)0) - -enum : uint { LVM_MAPIDTOINDEX = LVM_FIRST + 181 } -// #define ListView_MapIDToIndex(hwnd, id) (UINT)SNDMSG((hwnd), LVM_MAPIDTOINDEX, (WPARAM)id, (LPARAM)0) - -// #endif - -// #ifdef UNICODE -// #... -// #... -// #... -// #... -// #else -alias LVBKIMAGEA LVBKIMAGE; -alias LPLVBKIMAGEA LPLVBKIMAGE; -alias LVM_SETBKIMAGEA LVM_SETBKIMAGE; -alias LVM_GETBKIMAGEA LVM_GETBKIMAGE; -// #endif - -// #define ListView_SetBkImage(hwnd, plvbki) (BOOL)SNDMSG((hwnd), LVM_SETBKIMAGE, 0, (LPARAM)(plvbki)) - -// #define ListView_GetBkImage(hwnd, plvbki) (BOOL)SNDMSG((hwnd), LVM_GETBKIMAGE, 0, (LPARAM)(plvbki)) - -// #endif // _WIN32_IE >= 0x0400 - -// #if (_WIN32_IE >= 0x0300) -alias LPNMLISTVIEW LPNM_LISTVIEW; -alias NMLISTVIEW NM_LISTVIEW; -// #else -// #... -// #... -// #... -// #endif - -struct tagNMLISTVIEW { - NMHDR hdr; - int iItem; - int iSubItem; - UINT uNewState; - UINT uOldState; - UINT uChanged; - POINT ptAction; - LPARAM lParam; -} -alias tagNMLISTVIEW NMLISTVIEW; -alias tagNMLISTVIEW* LPNMLISTVIEW; - -// #if (_WIN32_IE >= 0x400) - -struct tagNMITEMACTIVATE { - NMHDR hdr; - int iItem; - int iSubItem; - UINT uNewState; - UINT uOldState; - UINT uChanged; - POINT ptAction; - LPARAM lParam; - UINT uKeyFlags; -} -alias tagNMITEMACTIVATE NMITEMACTIVATE; -alias tagNMITEMACTIVATE* LPNMITEMACTIVATE; - -enum : uint { LVKF_ALT = 0x0001 } -enum : uint { LVKF_CONTROL = 0x0002 } -enum : uint { LVKF_SHIFT = 0x0004 } -// #endif //(_WIN32_IE >= 0x0400) - -// #if (_WIN32_IE >= 0x0300) -// #define NMLVCUSTOMDRAW_V3_SIZE CCSIZEOF_STRUCT(NMLVCUSTOMDRW, clrTextBk) - -struct tagNMLVCUSTOMDRAW { - NMCUSTOMDRAW nmcd; - COLORREF clrText; - COLORREF clrTextBk; -// #if (_WIN32_IE >= 0x0400) - int iSubItem; -// #endif -// #if (_WIN32_WINNT >= 0x501) - DWORD dwItemType; - COLORREF clrFace; - int iIconEffect; - int iIconPhase; - int iPartId; - int iStateId; - RECT rcText; - UINT uAlign; -// #endif -} -alias tagNMLVCUSTOMDRAW NMLVCUSTOMDRAW; -alias tagNMLVCUSTOMDRAW* LPNMLVCUSTOMDRAW; - -enum : uint { LVCDI_ITEM = 0x00000000 } -enum : uint { LVCDI_GROUP = 0x00000001 } - -enum : uint { LVCDRF_NOSELECT = 0x00010000 } -enum : uint { LVCDRF_NOGROUPFRAME = 0x00020000 } - -struct tagNMLVCACHEHINT { - NMHDR hdr; - int iFrom; - int iTo; -} -alias tagNMLVCACHEHINT NMLVCACHEHINT; -alias tagNMLVCACHEHINT* LPNMLVCACHEHINT; - -alias LPNMLVCACHEHINT LPNM_CACHEHINT; -alias LPNMLVCACHEHINT PNM_CACHEHINT; -alias NMLVCACHEHINT NM_CACHEHINT; - -struct tagNMLVFINDITEMA { - NMHDR hdr; - int iStart; - LVFINDINFOA lvfi; -} -alias tagNMLVFINDITEMA NMLVFINDITEMA; -alias tagNMLVFINDITEMA* LPNMLVFINDITEMA; - -struct tagNMLVFINDITEMW { - NMHDR hdr; - int iStart; - LVFINDINFOW lvfi; -} -alias tagNMLVFINDITEMW NMLVFINDITEMW; -alias tagNMLVFINDITEMW* LPNMLVFINDITEMW; - -alias LPNMLVFINDITEMA PNM_FINDITEMA; -alias LPNMLVFINDITEMA LPNM_FINDITEMA; -alias NMLVFINDITEMA NM_FINDITEMA; - -alias LPNMLVFINDITEMW PNM_FINDITEMW; -alias LPNMLVFINDITEMW LPNM_FINDITEMW; -alias NMLVFINDITEMW NM_FINDITEMW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #... -// #... -// #else -alias PNM_FINDITEMA PNM_FINDITEM; -alias LPNM_FINDITEMA LPNM_FINDITEM; -alias NM_FINDITEMA NM_FINDITEM; -alias NMLVFINDITEMA NMLVFINDITEM; -alias LPNMLVFINDITEMA LPNMLVFINDITEM; -// #endif - -struct tagNMLVODSTATECHANGE { - NMHDR hdr; - int iFrom; - int iTo; - UINT uNewState; - UINT uOldState; -} -alias tagNMLVODSTATECHANGE NMLVODSTATECHANGE; -alias tagNMLVODSTATECHANGE* LPNMLVODSTATECHANGE; - -alias LPNMLVODSTATECHANGE PNM_ODSTATECHANGE; -alias LPNMLVODSTATECHANGE LPNM_ODSTATECHANGE; -alias NMLVODSTATECHANGE NM_ODSTATECHANGE; -// #endif // _WIN32_IE >= 0x0300 - -enum : uint { LVN_ITEMCHANGING = LVN_FIRST-0 } -enum : uint { LVN_ITEMCHANGED = LVN_FIRST-1 } -enum : uint { LVN_INSERTITEM = LVN_FIRST-2 } -enum : uint { LVN_DELETEITEM = LVN_FIRST-3 } -enum : uint { LVN_DELETEALLITEMS = LVN_FIRST-4 } -enum : uint { LVN_BEGINLABELEDITA = LVN_FIRST-5 } -enum : uint { LVN_BEGINLABELEDITW = LVN_FIRST-75 } -enum : uint { LVN_ENDLABELEDITA = LVN_FIRST-6 } -enum : uint { LVN_ENDLABELEDITW = LVN_FIRST-76 } -enum : uint { LVN_COLUMNCLICK = LVN_FIRST-8 } -enum : uint { LVN_BEGINDRAG = LVN_FIRST-9 } -enum : uint { LVN_BEGINRDRAG = LVN_FIRST-11 } - -// #if (_WIN32_IE >= 0x0300) -enum : uint { LVN_ODCACHEHINT = LVN_FIRST-13 } -enum : uint { LVN_ODFINDITEMA = LVN_FIRST-52 } -enum : uint { LVN_ODFINDITEMW = LVN_FIRST-79 } - -enum : uint { LVN_ITEMACTIVATE = LVN_FIRST-14 } -enum : uint { LVN_ODSTATECHANGED = LVN_FIRST-15 } - -// #ifdef UNICODE -// #... -// #else -alias LVN_ODFINDITEMA LVN_ODFINDITEM; -// #endif -// #endif // _WIN32_IE >= 0x0300 - -// #if (_WIN32_IE >= 0x0400) -enum : uint { LVN_HOTTRACK = LVN_FIRST-21 } -// #endif - -enum : uint { LVN_GETDISPINFOA = LVN_FIRST-50 } -enum : uint { LVN_GETDISPINFOW = LVN_FIRST-77 } -enum : uint { LVN_SETDISPINFOA = LVN_FIRST-51 } -enum : uint { LVN_SETDISPINFOW = LVN_FIRST-78 } - -// #ifdef UNICODE -// #... -// #... -// #... -// #... -// #else -alias LVN_BEGINLABELEDITA LVN_BEGINLABELEDIT; -alias LVN_ENDLABELEDITA LVN_ENDLABELEDIT; -alias LVN_GETDISPINFOA LVN_GETDISPINFO; -alias LVN_SETDISPINFOA LVN_SETDISPINFO; -// #endif - -enum : uint { LVIF_DI_SETITEM = 0x1000 } - -// #if (_WIN32_IE >= 0x0300) -alias NMLVDISPINFOA LV_DISPINFOA; -alias NMLVDISPINFOW LV_DISPINFOW; -// #else -// #... -// #... -// #... -// #... -// #endif - -alias NMLVDISPINFO LV_DISPINFO; - -struct tagLVDISPINFO { - NMHDR hdr; - LVITEMA item; -} -alias tagLVDISPINFO NMLVDISPINFOA; -alias tagLVDISPINFO* LPNMLVDISPINFOA; - -struct tagLVDISPINFOW { - NMHDR hdr; - LVITEMW item; -} -alias tagLVDISPINFOW NMLVDISPINFOW; -alias tagLVDISPINFOW* LPNMLVDISPINFOW; - -// #ifdef UNICODE -// #... -// #else -alias NMLVDISPINFOA NMLVDISPINFO; -// #endif - -enum : uint { LVN_KEYDOWN = LVN_FIRST-55 } - -// #if (_WIN32_IE >= 0x0300) -alias NMLVKEYDOWN LV_KEYDOWN; -// #else -// #... -// #... -// #endif - -// #ifdef _WIN32 -align(1): -// #endif - -struct tagLVKEYDOWN { - NMHDR hdr; - WORD wVKey; - UINT flags; -} -alias tagLVKEYDOWN NMLVKEYDOWN; -alias tagLVKEYDOWN* LPNMLVKEYDOWN; - -// #ifdef _WIN32 -align: -// #endif - -// #if (_WIN32_IE >= 0x0300) -enum : uint { LVN_MARQUEEBEGIN = LVN_FIRST-56 } -// #endif - -// #if (_WIN32_IE >= 0x0400) -struct tagNMLVGETINFOTIPA { - NMHDR hdr; - DWORD dwFlags; - LPSTR pszText; - int cchTextMax; - int iItem; - int iSubItem; - LPARAM lParam; -} -alias tagNMLVGETINFOTIPA NMLVGETINFOTIPA; -alias tagNMLVGETINFOTIPA* LPNMLVGETINFOTIPA; - -struct tagNMLVGETINFOTIPW { - NMHDR hdr; - DWORD dwFlags; - LPWSTR pszText; - int cchTextMax; - int iItem; - int iSubItem; - LPARAM lParam; -} -alias tagNMLVGETINFOTIPW NMLVGETINFOTIPW; -alias tagNMLVGETINFOTIPW* LPNMLVGETINFOTIPW; - -enum : uint { LVGIT_UNFOLDED = 0x0001 } - -enum : uint { LVN_GETINFOTIPA = LVN_FIRST-57 } -enum : uint { LVN_GETINFOTIPW = LVN_FIRST-58 } - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias LVN_GETINFOTIPA LVN_GETINFOTIP; -alias NMLVGETINFOTIPA NMLVGETINFOTIP; -alias LPNMLVGETINFOTIPA LPNMLVGETINFOTIP; -// #endif - -// #endif // _WIN32_IE >= 0x0400 - -// #if (_WIN32_WINNT >= 0x501) -struct tagNMLVSCROLL { - NMHDR hdr; - int dx; - int dy; -} -alias tagNMLVSCROLL NMLVSCROLL; -alias tagNMLVSCROLL* LPNMLVSCROLL; - -enum : uint { LVN_BEGINSCROLL = LVN_FIRST-80 } -enum : uint { LVN_ENDSCROLL = LVN_FIRST-81 } -// #endif - -// #endif // NOLISTVIEW - -// #ifndef NOTREEVIEW - -// #ifdef _WIN32 -const char[] WC_TREEVIEWA = "SysTreeView32"; -const wchar[] WC_TREEVIEWW = "SysTreeView32"; - -// #ifdef UNICODE -// #... -// #else -alias WC_TREEVIEWA WC_TREEVIEW; -// #endif - -// #else -// #... -// #endif - -enum : uint { TVS_HASBUTTONS = 0x0001 } -enum : uint { TVS_HASLINES = 0x0002 } -enum : uint { TVS_LINESATROOT = 0x0004 } -enum : uint { TVS_EDITLABELS = 0x0008 } -enum : uint { TVS_DISABLEDRAGDROP = 0x0010 } -enum : uint { TVS_SHOWSELALWAYS = 0x0020 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TVS_RTLREADING = 0x0040 } - -enum : uint { TVS_NOTOOLTIPS = 0x0080 } -enum : uint { TVS_CHECKBOXES = 0x0100 } -enum : uint { TVS_TRACKSELECT = 0x0200 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { TVS_SINGLEEXPAND = 0x0400 } -enum : uint { TVS_INFOTIP = 0x0800 } -enum : uint { TVS_FULLROWSELECT = 0x1000 } -enum : uint { TVS_NOSCROLL = 0x2000 } -enum : uint { TVS_NONEVENHEIGHT = 0x4000 } -// #endif -// #if (_WIN32_IE >= 0x500) -enum : uint { TVS_NOHSCROLL = 0x8000 } -// #endif -// #endif - -alias _TREEITEM* HTREEITEM; - -enum : uint { TVIF_TEXT = 0x0001 } -enum : uint { TVIF_IMAGE = 0x0002 } -enum : uint { TVIF_PARAM = 0x0004 } -enum : uint { TVIF_STATE = 0x0008 } -enum : uint { TVIF_HANDLE = 0x0010 } -enum : uint { TVIF_SELECTEDIMAGE = 0x0020 } -enum : uint { TVIF_CHILDREN = 0x0040 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { TVIF_INTEGRAL = 0x0080 } -// #endif -enum : uint { TVIS_SELECTED = 0x0002 } -enum : uint { TVIS_CUT = 0x0004 } -enum : uint { TVIS_DROPHILITED = 0x0008 } -enum : uint { TVIS_BOLD = 0x0010 } -enum : uint { TVIS_EXPANDED = 0x0020 } -enum : uint { TVIS_EXPANDEDONCE = 0x0040 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TVIS_EXPANDPARTIAL = 0x0080 } -// #endif - -enum : uint { TVIS_OVERLAYMASK = 0x0F00 } -enum : uint { TVIS_STATEIMAGEMASK = 0xF000 } -enum : uint { TVIS_USERMASK = 0xF000 } - -enum { I_CHILDRENCALLBACK = -1 } - -// #if (_WIN32_IE >= 0x0300) -alias LPTVITEMW LPTV_ITEMW; -alias LPTVITEMA LPTV_ITEMA; -alias TVITEMW TV_ITEMW; -alias TVITEMA TV_ITEMA; -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -alias LPTVITEM LPTV_ITEM; -alias TVITEM TV_ITEM; - -struct tagTVITEMA { - UINT mask; - HTREEITEM hItem; - UINT state; - UINT stateMask; - LPSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int cChildren; - LPARAM lParam; -} -alias tagTVITEMA TVITEMA; -alias tagTVITEMA* LPTVITEMA; - -struct tagTVITEMW { - UINT mask; - HTREEITEM hItem; - UINT state; - UINT stateMask; - LPWSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int cChildren; - LPARAM lParam; -} -alias tagTVITEMW TVITEMW; -alias tagTVITEMW* LPTVITEMW; - -// #if (_WIN32_IE >= 0x0400) - -struct tagTVITEMEXA { - UINT mask; - HTREEITEM hItem; - UINT state; - UINT stateMask; - LPSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int cChildren; - LPARAM lParam; - int iIntegral; -} -alias tagTVITEMEXA TVITEMEXA; -alias tagTVITEMEXA* LPTVITEMEXA; - -struct tagTVITEMEXW { - UINT mask; - HTREEITEM hItem; - UINT state; - UINT stateMask; - LPWSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int cChildren; - LPARAM lParam; - int iIntegral; -} -alias tagTVITEMEXW TVITEMEXW; -alias tagTVITEMEXW* LPTVITEMEXW; - -// #ifdef UNICODE -// ... -// #else -alias TVITEMEXA TVITEMEX; -alias LPTVITEMEXA LPTVITEMEX; -// #endif // UNICODE - -// #endif - -// #ifdef UNICODE -// #... -// #... -// #else -alias TVITEMA TVITEM; -alias LPTVITEMA LPTVITEM; -// #endif - -const HTREEITEM TVI_ROOT = cast(HTREEITEM)(-0x10000); -const HTREEITEM TVI_FIRST = cast(HTREEITEM)(-0x0FFFF); -const HTREEITEM TVI_LAST = cast(HTREEITEM)(-0x0FFFE); -const HTREEITEM TVI_SORT = cast(HTREEITEM)(-0x0FFFD); - -// #if (_WIN32_IE >= 0x0300) -alias LPTVINSERTSTRUCTA LPTV_INSERTSTRUCTA; -alias LPTVINSERTSTRUCTW LPTV_INSERTSTRUCTW; -alias TVINSERTSTRUCTA TV_INSERTSTRUCTA; -alias TVINSERTSTRUCTW TV_INSERTSTRUCTW; -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -alias TVINSERTSTRUCT TV_INSERTSTRUCT; -alias LPTVINSERTSTRUCT LPTV_INSERTSTRUCT; - -// #define TVINSERTSTRUCTA_V1_SIZE CCSIZEOF_STRUCT(TVINSERTSTRUCTA, item) -// #define TVINSERTSTRUCTW_V1_SIZE CCSIZEOF_STRUCT(TVINSERTSTRUCTW, item) - -struct tagTVINSERTSTRUCTA { - HTREEITEM hParent; - HTREEITEM hInsertAfter; -// #if (_WIN32_IE >= 0x0400) -union { - TVITEMEXA itemex; - TV_ITEMA item; -} - -// #else -// ... -// #endif -} -alias tagTVINSERTSTRUCTA TVINSERTSTRUCTA; -alias tagTVINSERTSTRUCTA* LPTVINSERTSTRUCTA; - -struct tagTVINSERTSTRUCTW { - HTREEITEM hParent; - HTREEITEM hInsertAfter; -// #if (_WIN32_IE >= 0x0400) -union { - TVITEMEXW itemex; - TV_ITEMW item; -} - -// #else -// ... -// #endif -} -alias tagTVINSERTSTRUCTW TVINSERTSTRUCTW; -alias tagTVINSERTSTRUCTW* LPTVINSERTSTRUCTW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias TVINSERTSTRUCTA TVINSERTSTRUCT; -alias LPTVINSERTSTRUCTA LPTVINSERTSTRUCT; -// #define TVINSERTSTRUCT_V1_SIZE TVINSERTSTRUCTA_V1_SIZE -// #endif - -enum : uint { TVM_INSERTITEMA = TV_FIRST + 0 } -enum : uint { TVM_INSERTITEMW = TV_FIRST + 50 } -// #ifdef UNICODE -// #... -// #else -alias TVM_INSERTITEMA TVM_INSERTITEM; -// #endif - -// #define TreeView_InsertItem(hwnd, lpis) (HTREEITEM)SNDMSG((hwnd), TVM_INSERTITEM, 0, (LPARAM)(LPTV_INSERTSTRUCT)(lpis)) - -enum : uint { TVM_DELETEITEM = TV_FIRST + 1 } -// #define TreeView_DeleteItem(hwnd, hitem) (BOOL)SNDMSG((hwnd), TVM_DELETEITEM, 0, (LPARAM)(HTREEITEM)(hitem)) - -// #define TreeView_DeleteAllItems(hwnd) (BOOL)SNDMSG((hwnd), TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT) - -enum : uint { TVM_EXPAND = TV_FIRST + 2 } -// #define TreeView_Expand(hwnd, hitem, code) (BOOL)SNDMSG((hwnd), TVM_EXPAND, (WPARAM)(code), (LPARAM)(HTREEITEM)(hitem)) - -enum : uint { TVE_COLLAPSE = 0x0001 } -enum : uint { TVE_EXPAND = 0x0002 } -enum : uint { TVE_TOGGLE = 0x0003 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TVE_EXPANDPARTIAL = 0x4000 } -// #endif -enum : uint { TVE_COLLAPSERESET = 0x8000 } - -enum : uint { TVM_GETITEMRECT = TV_FIRST + 4 } -// #define TreeView_GetItemRect(hwnd, hitem, prc, code) (*(HTREEITEM *)prc = (hitem), (BOOL)SNDMSG((hwnd), TVM_GETITEMRECT, (WPARAM)(code), (LPARAM)(RECT *)(prc))) - -enum : uint { TVM_GETCOUNT = TV_FIRST + 5 } -// #define TreeView_GetCount(hwnd) (UINT)SNDMSG((hwnd), TVM_GETCOUNT, 0, 0) - -enum : uint { TVM_GETINDENT = TV_FIRST + 6 } -// #define TreeView_GetIndent(hwnd) (UINT)SNDMSG((hwnd), TVM_GETINDENT, 0, 0) - -enum : uint { TVM_SETINDENT = TV_FIRST + 7 } -// #define TreeView_SetIndent(hwnd, indent) (BOOL)SNDMSG((hwnd), TVM_SETINDENT, (WPARAM)(indent), 0) - -enum : uint { TVM_GETIMAGELIST = TV_FIRST + 8 } -// #define TreeView_GetImageList(hwnd, iImage) (HIMAGELIST)SNDMSG((hwnd), TVM_GETIMAGELIST, iImage, 0) - -enum : uint { TVSIL_NORMAL = 0 } -enum : uint { TVSIL_STATE = 2 } - -enum : uint { TVM_SETIMAGELIST = TV_FIRST + 9 } -// #define TreeView_SetImageList(hwnd, himl, iImage) (HIMAGELIST)SNDMSG((hwnd), TVM_SETIMAGELIST, iImage, (LPARAM)(HIMAGELIST)(himl)) - -enum : uint { TVM_GETNEXTITEM = TV_FIRST + 10 } -// #define TreeView_GetNextItem(hwnd, hitem, code) (HTREEITEM)SNDMSG((hwnd), TVM_GETNEXTITEM, (WPARAM)(code), (LPARAM)(HTREEITEM)(hitem)) - -enum : uint { TVGN_ROOT = 0x0000 } -enum : uint { TVGN_NEXT = 0x0001 } -enum : uint { TVGN_PREVIOUS = 0x0002 } -enum : uint { TVGN_PARENT = 0x0003 } -enum : uint { TVGN_CHILD = 0x0004 } -enum : uint { TVGN_FIRSTVISIBLE = 0x0005 } -enum : uint { TVGN_NEXTVISIBLE = 0x0006 } -enum : uint { TVGN_PREVIOUSVISIBLE = 0x0007 } -enum : uint { TVGN_DROPHILITE = 0x0008 } -enum : uint { TVGN_CARET = 0x0009 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { TVGN_LASTVISIBLE = 0x000A } -// #endif // _WIN32_IE >= 0x0400 - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { TVSI_NOSINGLEEXPAND = 0x8000 } -// #endif - -// #define TreeView_GetChild(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_CHILD) -// #define TreeView_GetNextSibling(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_NEXT) -// #define TreeView_GetPrevSibling(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUS) -// #define TreeView_GetParent(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_PARENT) -// #define TreeView_GetFirstVisible(hwnd) TreeView_GetNextItem(hwnd, NULL, TVGN_FIRSTVISIBLE) -// #define TreeView_GetNextVisible(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTVISIBLE) -// #define TreeView_GetPrevVisible(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUSVISIBLE) -// #define TreeView_GetSelection(hwnd) TreeView_GetNextItem(hwnd, NULL, TVGN_CARET) -// #define TreeView_GetDropHilight(hwnd) TreeView_GetNextItem(hwnd, NULL, TVGN_DROPHILITE) -// #define TreeView_GetRoot(hwnd) TreeView_GetNextItem(hwnd, NULL, TVGN_ROOT) -// #if (_WIN32_IE >= 0x0400) -// #define TreeView_GetLastVisible(hwnd) TreeView_GetNextItem(hwnd, NULL, TVGN_LASTVISIBLE) -// #endif // _WIN32_IE >= 0x0400 - -enum : uint { TVM_SELECTITEM = TV_FIRST + 11 } -// #define TreeView_Select(hwnd, hitem, code) (BOOL)SNDMSG((hwnd), TVM_SELECTITEM, (WPARAM)(code), (LPARAM)(HTREEITEM)(hitem)) - -// #define TreeView_SelectItem(hwnd, hitem) TreeView_Select(hwnd, hitem, TVGN_CARET) -// #define TreeView_SelectDropTarget(hwnd, hitem) TreeView_Select(hwnd, hitem, TVGN_DROPHILITE) -// #define TreeView_SelectSetFirstVisible(hwnd, hitem) TreeView_Select(hwnd, hitem, TVGN_FIRSTVISIBLE) - -enum : uint { TVM_GETITEMA = TV_FIRST + 12 } -enum : uint { TVM_GETITEMW = TV_FIRST + 62 } - -// #ifdef UNICODE -// #... -// #else -alias TVM_GETITEMA TVM_GETITEM; -// #endif - -// #define TreeView_GetItem(hwnd, pitem) (BOOL)SNDMSG((hwnd), TVM_GETITEM, 0, (LPARAM)(TV_ITEM *)(pitem)) - -enum : uint { TVM_SETITEMA = TV_FIRST + 13 } -enum : uint { TVM_SETITEMW = TV_FIRST + 63 } - -// #ifdef UNICODE -// #... -// #else -alias TVM_SETITEMA TVM_SETITEM; -// #endif - -// #define TreeView_SetItem(hwnd, pitem) (BOOL)SNDMSG((hwnd), TVM_SETITEM, 0, (LPARAM)(const TV_ITEM *)(pitem)) - -enum : uint { TVM_EDITLABELA = TV_FIRST + 14 } -enum : uint { TVM_EDITLABELW = TV_FIRST + 65 } -// #ifdef UNICODE -// #... -// #else -alias TVM_EDITLABELA TVM_EDITLABEL; -// #endif - -// #define TreeView_EditLabel(hwnd, hitem) (HWND)SNDMSG((hwnd), TVM_EDITLABEL, 0, (LPARAM)(HTREEITEM)(hitem)) - -enum : uint { TVM_GETEDITCONTROL = TV_FIRST + 15 } -// #define TreeView_GetEditControl(hwnd) (HWND)SNDMSG((hwnd), TVM_GETEDITCONTROL, 0, 0) - -enum : uint { TVM_GETVISIBLECOUNT = TV_FIRST + 16 } -// #define TreeView_GetVisibleCount(hwnd) (UINT)SNDMSG((hwnd), TVM_GETVISIBLECOUNT, 0, 0) - -enum : uint { TVM_HITTEST = TV_FIRST + 17 } -// #define TreeView_HitTest(hwnd, lpht) (HTREEITEM)SNDMSG((hwnd), TVM_HITTEST, 0, (LPARAM)(LPTV_HITTESTINFO)(lpht)) - -// #if (_WIN32_IE >= 0x0300) -alias LPTVHITTESTINFO LPTV_HITTESTINFO; -alias TVHITTESTINFO TV_HITTESTINFO; -// #else -// #... -// #... -// #... -// #endif - -struct tagTVHITTESTINFO { - POINT pt; - UINT flags; - HTREEITEM hItem; -} -alias tagTVHITTESTINFO TVHITTESTINFO; -alias tagTVHITTESTINFO* LPTVHITTESTINFO; - -enum : uint { TVHT_NOWHERE = 0x0001 } -enum : uint { TVHT_ONITEMICON = 0x0002 } -enum : uint { TVHT_ONITEMLABEL = 0x0004 } -enum : uint { TVHT_ONITEM = TVHT_ONITEMICON | TVHT_ONITEMLABEL | TVHT_ONITEMSTATEICON } -enum : uint { TVHT_ONITEMINDENT = 0x0008 } -enum : uint { TVHT_ONITEMBUTTON = 0x0010 } -enum : uint { TVHT_ONITEMRIGHT = 0x0020 } -// #define TVHT_ONITEMSTATEICON 0x0040 - -enum : uint { TVHT_ABOVE = 0x0100 } -enum : uint { TVHT_BELOW = 0x0200 } -enum : uint { TVHT_TORIGHT = 0x0400 } -enum : uint { TVHT_TOLEFT = 0x0800 } - -enum : uint { TVM_CREATEDRAGIMAGE = TV_FIRST + 18 } -// #define TreeView_CreateDragImage(hwnd, hitem) (HIMAGELIST)SNDMSG((hwnd), TVM_CREATEDRAGIMAGE, 0, (LPARAM)(HTREEITEM)(hitem)) - -enum : uint { TVM_SORTCHILDREN = TV_FIRST + 19 } -// #define TreeView_SortChildren(hwnd, hitem, recurse) (BOOL)SNDMSG((hwnd), TVM_SORTCHILDREN, (WPARAM)(recurse), (LPARAM)(HTREEITEM)(hitem)) - -enum : uint { TVM_ENSUREVISIBLE = TV_FIRST + 20 } -// #define TreeView_EnsureVisible(hwnd, hitem) (BOOL)SNDMSG((hwnd), TVM_ENSUREVISIBLE, 0, (LPARAM)(HTREEITEM)(hitem)) - -enum : uint { TVM_SORTCHILDRENCB = TV_FIRST + 21 } -// #define TreeView_SortChildrenCB(hwnd, psort, recurse) (BOOL)SNDMSG((hwnd), TVM_SORTCHILDRENCB, (WPARAM)(recurse), (LPARAM)(LPTV_SORTCB)(psort)) - -enum : uint { TVM_ENDEDITLABELNOW = TV_FIRST + 22 } -// #define TreeView_EndEditLabelNow(hwnd, fCancel) (BOOL)SNDMSG((hwnd), TVM_ENDEDITLABELNOW, (WPARAM)(fCancel), 0) - -enum : uint { TVM_GETISEARCHSTRINGA = TV_FIRST + 23 } -enum : uint { TVM_GETISEARCHSTRINGW = TV_FIRST + 64 } - -// #ifdef UNICODE -// #... -// #else -alias TVM_GETISEARCHSTRINGA TVM_GETISEARCHSTRING; -// #endif - -// #if (_WIN32_IE >= 0x0300) -enum : uint { TVM_SETTOOLTIPS = TV_FIRST + 24 } -// #define TreeView_SetToolTips(hwnd, hwndTT) (HWND)SNDMSG((hwnd), TVM_SETTOOLTIPS, (WPARAM)(hwndTT), 0) -enum : uint { TVM_GETTOOLTIPS = TV_FIRST + 25 } -// #define TreeView_GetToolTips(hwnd) (HWND)SNDMSG((hwnd), TVM_GETTOOLTIPS, 0, 0) -// #endif - -// #define TreeView_GetISearchString(hwndTV, lpsz) (BOOL)SNDMSG((hwndTV), TVM_GETISEARCHSTRING, 0, (LPARAM)(LPTSTR)(lpsz)) - -// #if (_WIN32_IE >= 0x0400) -enum : uint { TVM_SETINSERTMARK = TV_FIRST + 26 } -// #define TreeView_SetInsertMark(hwnd, hItem, fAfter) (BOOL)SNDMSG((hwnd), TVM_SETINSERTMARK, (WPARAM) (fAfter), (LPARAM) (hItem)) - -alias CCM_SETUNICODEFORMAT TVM_SETUNICODEFORMAT; -// #define TreeView_SetUnicodeFormat(hwnd, fUnicode) (BOOL)SNDMSG((hwnd), TVM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) - -alias CCM_GETUNICODEFORMAT TVM_GETUNICODEFORMAT; -// #define TreeView_GetUnicodeFormat(hwnd) (BOOL)SNDMSG((hwnd), TVM_GETUNICODEFORMAT, 0, 0) - -// #endif - -// #if (_WIN32_IE >= 0x0400) -enum : uint { TVM_SETITEMHEIGHT = TV_FIRST + 27 } -// #define TreeView_SetItemHeight(hwnd, iHeight) (int)SNDMSG((hwnd), TVM_SETITEMHEIGHT, (WPARAM)(iHeight), 0) -enum : uint { TVM_GETITEMHEIGHT = TV_FIRST + 28 } -// #define TreeView_GetItemHeight(hwnd) (int)SNDMSG((hwnd), TVM_GETITEMHEIGHT, 0, 0) - -enum : uint { TVM_SETBKCOLOR = TV_FIRST + 29 } -// #define TreeView_SetBkColor(hwnd, clr) (COLORREF)SNDMSG((hwnd), TVM_SETBKCOLOR, 0, (LPARAM)(clr)) - -enum : uint { TVM_SETTEXTCOLOR = TV_FIRST + 30 } -// #define TreeView_SetTextColor(hwnd, clr) (COLORREF)SNDMSG((hwnd), TVM_SETTEXTCOLOR, 0, (LPARAM)(clr)) - -enum : uint { TVM_GETBKCOLOR = TV_FIRST + 31 } -// #define TreeView_GetBkColor(hwnd) (COLORREF)SNDMSG((hwnd), TVM_GETBKCOLOR, 0, 0) - -enum : uint { TVM_GETTEXTCOLOR = TV_FIRST + 32 } -// #define TreeView_GetTextColor(hwnd) (COLORREF)SNDMSG((hwnd), TVM_GETTEXTCOLOR, 0, 0) - -enum : uint { TVM_SETSCROLLTIME = TV_FIRST + 33 } -// #define TreeView_SetScrollTime(hwnd, uTime) (UINT)SNDMSG((hwnd), TVM_SETSCROLLTIME, uTime, 0) - -enum : uint { TVM_GETSCROLLTIME = TV_FIRST + 34 } -// #define TreeView_GetScrollTime(hwnd) (UINT)SNDMSG((hwnd), TVM_GETSCROLLTIME, 0, 0) - -enum : uint { TVM_SETINSERTMARKCOLOR = TV_FIRST + 37 } -// #define TreeView_SetInsertMarkColor(hwnd, clr) (COLORREF)SNDMSG((hwnd), TVM_SETINSERTMARKCOLOR, 0, (LPARAM)(clr)) -enum : uint { TVM_GETINSERTMARKCOLOR = TV_FIRST + 38 } -// #define TreeView_GetInsertMarkColor(hwnd) (COLORREF)SNDMSG((hwnd), TVM_GETINSERTMARKCOLOR, 0, 0) - -// #endif /* (_WIN32_IE >= 0x0400) */ - -// #if (_WIN32_IE >= 0x0500) - -// #define TreeView_SetItemState(hwndTV, hti, data, _mask) { TVITEM _ms_TVi; _ms_TVi.mask = TVIF_STATE; _ms_TVi.hItem = hti; _ms_TVi.stateMask = _mask; _ms_TVi.state = data; SNDMSG((hwndTV), TVM_SETITEM, 0, (LPARAM)(TV_ITEM *)&_ms_TVi); } - -// #define TreeView_SetCheckState(hwndTV, hti, fCheck) TreeView_SetItemState(hwndTV, hti, INDEXTOSTATEIMAGEMASK((fCheck)?2:1), TVIS_STATEIMAGEMASK) - -enum : uint { TVM_GETITEMSTATE = TV_FIRST + 39 } -// #define TreeView_GetItemState(hwndTV, hti, mask) (UINT)SNDMSG((hwndTV), TVM_GETITEMSTATE, (WPARAM)(hti), (LPARAM)(mask)) - -// #define TreeView_GetCheckState(hwndTV, hti) ((((UINT)(SNDMSG((hwndTV), TVM_GETITEMSTATE, (WPARAM)(hti), TVIS_STATEIMAGEMASK))) >> 12) -1) - -enum : uint { TVM_SETLINECOLOR = TV_FIRST + 40 } -// #define TreeView_SetLineColor(hwnd, clr) (COLORREF)SNDMSG((hwnd), TVM_SETLINECOLOR, 0, (LPARAM)(clr)) - -enum : uint { TVM_GETLINECOLOR = TV_FIRST + 41 } -// #define TreeView_GetLineColor(hwnd) (COLORREF)SNDMSG((hwnd), TVM_GETLINECOLOR, 0, 0) - -// #endif - -// #if (_WIN32_WINNT >= 0x0501) -enum : uint { TVM_MAPACCIDTOHTREEITEM = TV_FIRST + 42 } -// #define TreeView_MapAccIDToHTREEITEM(hwnd, id) (HTREEITEM)SNDMSG((hwnd), TVM_MAPACCIDTOHTREEITEM, id, 0) - -enum : uint { TVM_MAPHTREEITEMTOACCID = TV_FIRST + 43 } -// #define TreeView_MapHTREEITEMToAccID(hwnd, htreeitem) (UINT)SNDMSG((hwnd), TVM_MAPHTREEITEMTOACCID, (WPARAM)htreeitem, 0) - -// #endif - -extern(Windows) alias int function(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) PFNTVCOMPARE; - -// #if (_WIN32_IE >= 0x0300) -alias LPTVSORTCB LPTV_SORTCB; -alias TVSORTCB TV_SORTCB; -// #else -// #... -// #... -// #... -// #endif - -struct tagTVSORTCB { - HTREEITEM hParent; - PFNTVCOMPARE lpfnCompare; - LPARAM lParam; -} -alias tagTVSORTCB TVSORTCB; -alias tagTVSORTCB* LPTVSORTCB; - -// #if (_WIN32_IE >= 0x0300) -alias LPNMTREEVIEWA LPNM_TREEVIEWA; -alias LPNMTREEVIEWW LPNM_TREEVIEWW; -alias NMTREEVIEWW NM_TREEVIEWW; -alias NMTREEVIEWA NM_TREEVIEWA; -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -alias LPNMTREEVIEW LPNM_TREEVIEW; -alias NMTREEVIEW NM_TREEVIEW; - -struct tagNMTREEVIEWA { - NMHDR hdr; - UINT action; - TVITEMA itemOld; - TVITEMA itemNew; - POINT ptDrag; -} -alias tagNMTREEVIEWA NMTREEVIEWA; -alias tagNMTREEVIEWA* LPNMTREEVIEWA; - -struct tagNMTREEVIEWW { - NMHDR hdr; - UINT action; - TVITEMW itemOld; - TVITEMW itemNew; - POINT ptDrag; -} -alias tagNMTREEVIEWW NMTREEVIEWW; -alias tagNMTREEVIEWW* LPNMTREEVIEWW; - -// #ifdef UNICODE -// #... -// #... -// #else -alias NMTREEVIEWA NMTREEVIEW; -alias LPNMTREEVIEWA LPNMTREEVIEW; -// #endif - -enum : uint { TVN_SELCHANGINGA = TVN_FIRST-1 } -enum : uint { TVN_SELCHANGINGW = TVN_FIRST-50 } -enum : uint { TVN_SELCHANGEDA = TVN_FIRST-2 } -enum : uint { TVN_SELCHANGEDW = TVN_FIRST-51 } - -enum : uint { TVC_UNKNOWN = 0x0000 } -enum : uint { TVC_BYMOUSE = 0x0001 } -enum : uint { TVC_BYKEYBOARD = 0x0002 } - -enum : uint { TVN_GETDISPINFOA = TVN_FIRST-3 } -enum : uint { TVN_GETDISPINFOW = TVN_FIRST-52 } -enum : uint { TVN_SETDISPINFOA = TVN_FIRST-4 } -enum : uint { TVN_SETDISPINFOW = TVN_FIRST-53 } - -enum : uint { TVIF_DI_SETITEM = 0x1000 } - -// #if (_WIN32_IE >= 0x0300) -alias NMTVDISPINFOA TV_DISPINFOA; -alias NMTVDISPINFOW TV_DISPINFOW; -// #else -// #... -// #... -// #... -// #... -// #endif - -alias NMTVDISPINFO TV_DISPINFO; - -struct tagTVDISPINFOA { - NMHDR hdr; - TVITEMA item; -} -alias tagTVDISPINFOA NMTVDISPINFOA; -alias tagTVDISPINFOA* LPNMTVDISPINFOA; - -struct tagTVDISPINFOW { - NMHDR hdr; - TVITEMW item; -} -alias tagTVDISPINFOW NMTVDISPINFOW; -alias tagTVDISPINFOW* LPNMTVDISPINFOW; - -// #ifdef UNICODE -// #... -// #... -// #else -alias NMTVDISPINFOA NMTVDISPINFO; -alias LPNMTVDISPINFOA LPNMTVDISPINFO; -// #endif - -enum : uint { TVN_ITEMEXPANDINGA = TVN_FIRST-5 } -enum : uint { TVN_ITEMEXPANDINGW = TVN_FIRST-54 } -enum : uint { TVN_ITEMEXPANDEDA = TVN_FIRST-6 } -enum : uint { TVN_ITEMEXPANDEDW = TVN_FIRST-55 } -enum : uint { TVN_BEGINDRAGA = TVN_FIRST-7 } -enum : uint { TVN_BEGINDRAGW = TVN_FIRST-56 } -enum : uint { TVN_BEGINRDRAGA = TVN_FIRST-8 } -enum : uint { TVN_BEGINRDRAGW = TVN_FIRST-57 } -enum : uint { TVN_DELETEITEMA = TVN_FIRST-9 } -enum : uint { TVN_DELETEITEMW = TVN_FIRST-58 } -enum : uint { TVN_BEGINLABELEDITA = TVN_FIRST-10 } -enum : uint { TVN_BEGINLABELEDITW = TVN_FIRST-59 } -enum : uint { TVN_ENDLABELEDITA = TVN_FIRST-11 } -enum : uint { TVN_ENDLABELEDITW = TVN_FIRST-60 } -enum : uint { TVN_KEYDOWN = TVN_FIRST-12 } - -// #if (_WIN32_IE >= 0x0400) -enum : uint { TVN_GETINFOTIPA = TVN_FIRST-13 } -enum : uint { TVN_GETINFOTIPW = TVN_FIRST-14 } -enum : uint { TVN_SINGLEEXPAND = TVN_FIRST-15 } - -enum : uint { TVNRET_DEFAULT = 0 } -enum : uint { TVNRET_SKIPOLD = 1 } -enum : uint { TVNRET_SKIPNEW = 2 } - -// #endif // 0x400 - -// #if (_WIN32_IE >= 0x0300) -alias NMTVKEYDOWN TV_KEYDOWN; -// #else -// #... -// #... -// #endif - -// #ifdef _WIN32 -align(1): -// #endif - -struct tagTVKEYDOWN { - NMHDR hdr; - WORD wVKey; - UINT flags; -} -alias tagTVKEYDOWN NMTVKEYDOWN; -alias tagTVKEYDOWN* LPNMTVKEYDOWN; - -// #ifdef _WIN32 -align: -// #endif - -// #ifdef UNICODE -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #else -alias TVN_SELCHANGINGA TVN_SELCHANGING; -alias TVN_SELCHANGEDA TVN_SELCHANGED; -alias TVN_GETDISPINFOA TVN_GETDISPINFO; -alias TVN_SETDISPINFOA TVN_SETDISPINFO; -alias TVN_ITEMEXPANDINGA TVN_ITEMEXPANDING; -alias TVN_ITEMEXPANDEDA TVN_ITEMEXPANDED; -alias TVN_BEGINDRAGA TVN_BEGINDRAG; -alias TVN_BEGINRDRAGA TVN_BEGINRDRAG; -alias TVN_DELETEITEMA TVN_DELETEITEM; -alias TVN_BEGINLABELEDITA TVN_BEGINLABELEDIT; -alias TVN_ENDLABELEDITA TVN_ENDLABELEDIT; -// #endif - -// #if (_WIN32_IE >= 0x0300) -// #define NMTVCUSTOMDRAW_V3_SIZE CCSIZEOF_STRUCT(NMTVCUSTOMDRAW, clrTextBk) - -struct tagNMTVCUSTOMDRAW { - NMCUSTOMDRAW nmcd; - COLORREF clrText; - COLORREF clrTextBk; -// #if (_WIN32_IE >= 0x0400) - int iLevel; -// #endif -} -alias tagNMTVCUSTOMDRAW NMTVCUSTOMDRAW; -alias tagNMTVCUSTOMDRAW* LPNMTVCUSTOMDRAW; - -// #endif - -// #if (_WIN32_IE >= 0x0400) - -struct tagNMTVGETINFOTIPA { - NMHDR hdr; - LPSTR pszText; - int cchTextMax; - HTREEITEM hItem; - LPARAM lParam; -} -alias tagNMTVGETINFOTIPA NMTVGETINFOTIPA; -alias tagNMTVGETINFOTIPA* LPNMTVGETINFOTIPA; - -struct tagNMTVGETINFOTIPW { - NMHDR hdr; - LPWSTR pszText; - int cchTextMax; - HTREEITEM hItem; - LPARAM lParam; -} -alias tagNMTVGETINFOTIPW NMTVGETINFOTIPW; -alias tagNMTVGETINFOTIPW* LPNMTVGETINFOTIPW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias TVN_GETINFOTIPA TVN_GETINFOTIP; -alias NMTVGETINFOTIPA NMTVGETINFOTIP; -alias LPNMTVGETINFOTIPA LPNMTVGETINFOTIP; -// #endif - -enum : uint { TVCDRF_NOIMAGES = 0x00010000 } - -// #endif // _WIN32_IE >= 0x0400 - -// #endif // NOTREEVIEW - -// #if (_WIN32_IE >= 0x0300) - -// #ifndef NOUSEREXCONTROLS - -const wchar[] WC_COMBOBOXEXW = "ComboBoxEx32"; -const char[] WC_COMBOBOXEXA = "ComboBoxEx32"; - -// #ifdef UNICODE -// #... -// #else -alias WC_COMBOBOXEXA WC_COMBOBOXEX; -// #endif - -enum : uint { CBEIF_TEXT = 0x00000001 } -enum : uint { CBEIF_IMAGE = 0x00000002 } -enum : uint { CBEIF_SELECTEDIMAGE = 0x00000004 } -enum : uint { CBEIF_OVERLAY = 0x00000008 } -enum : uint { CBEIF_INDENT = 0x00000010 } -enum : uint { CBEIF_LPARAM = 0x00000020 } - -enum : uint { CBEIF_DI_SETITEM = 0x10000000 } - -struct tagCOMBOBOXEXITEMA { - UINT mask; - INT_PTR iItem; - LPSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int iOverlay; - int iIndent; - LPARAM lParam; -} -alias tagCOMBOBOXEXITEMA COMBOBOXEXITEMA; -alias tagCOMBOBOXEXITEMA* PCOMBOBOXEXITEMA; - -alias COMBOBOXEXITEMA* PCCOMBOEXITEMA; - -struct tagCOMBOBOXEXITEMW { - UINT mask; - INT_PTR iItem; - LPWSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int iOverlay; - int iIndent; - LPARAM lParam; -} -alias tagCOMBOBOXEXITEMW COMBOBOXEXITEMW; -alias tagCOMBOBOXEXITEMW* PCOMBOBOXEXITEMW; - -alias COMBOBOXEXITEMW* PCCOMBOEXITEMW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias COMBOBOXEXITEMA COMBOBOXEXITEM; -alias PCOMBOBOXEXITEMA PCOMBOBOXEXITEM; -alias PCCOMBOBOXEXITEMA PCCOMBOBOXEXITEM; -// #endif - -enum : uint { CBEM_INSERTITEMA = WM_USER + 1 } -enum : uint { CBEM_SETIMAGELIST = WM_USER + 2 } -enum : uint { CBEM_GETIMAGELIST = WM_USER + 3 } -enum : uint { CBEM_GETITEMA = WM_USER + 4 } -enum : uint { CBEM_SETITEMA = WM_USER + 5 } -alias CB_DELETESTRING CBEM_DELETEITEM; -enum : uint { CBEM_GETCOMBOCONTROL = WM_USER + 6 } -enum : uint { CBEM_GETEDITCONTROL = WM_USER + 7 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { CBEM_SETEXSTYLE = WM_USER + 8 } -enum : uint { CBEM_SETEXTENDEDSTYLE = WM_USER + 14 } -enum : uint { CBEM_GETEXSTYLE = WM_USER + 9 } -enum : uint { CBEM_GETEXTENDEDSTYLE = WM_USER + 9 } -alias CCM_SETUNICODEFORMAT CBEM_SETUNICODEFORMAT; -alias CCM_GETUNICODEFORMAT CBEM_GETUNICODEFORMAT; -// #else -// #... -// #... -// #endif -enum : uint { CBEM_HASEDITCHANGED = WM_USER + 10 } -enum : uint { CBEM_INSERTITEMW = WM_USER + 11 } -enum : uint { CBEM_SETITEMW = WM_USER + 12 } -enum : uint { CBEM_GETITEMW = WM_USER + 13 } - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias CBEM_INSERTITEMA CBEM_INSERTITEM; -alias CBEM_SETITEMA CBEM_SETITEM; -alias CBEM_GETITEMA CBEM_GETITEM; -// #endif - -// #if (_WIN32_WINNT >= 0x501) -alias CCM_SETWINDOWTHEME CBEM_SETWINDOWTHEME; -// #endif - -enum : uint { CBES_EX_NOEDITIMAGE = 0x00000001 } -enum : uint { CBES_EX_NOEDITIMAGEINDENT = 0x00000002 } -enum : uint { CBES_EX_PATHWORDBREAKPROC = 0x00000004 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { CBES_EX_NOSIZELIMIT = 0x00000008 } -enum : uint { CBES_EX_CASESENSITIVE = 0x00000010 } - -struct _9 { - NMHDR hdr; - COMBOBOXEXITEMA ceItem; -} -alias _9 NMCOMBOBOXEXA; -alias _9* PNMCOMBOBOXEXA; - -struct _10 { - NMHDR hdr; - COMBOBOXEXITEMW ceItem; -} -alias _10 NMCOMBOBOXEXW; -alias _10* PNMCOMBOBOXEXW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias NMCOMBOBOXEXA NMCOMBOBOXEX; -alias PNMCOMBOBOXEXA PNMCOMBOBOXEX; -alias CBEN_GETDISPINFOA CBEN_GETDISPINFO; -// #endif - -// #else -// ... - -// #... - -// #endif // _WIN32_IE >= 0x0400 - -// #if (_WIN32_IE >= 0x0400) -// #define CBEN_GETDISPINFOA (CBEN_FIRST - 0) -// #endif -enum : uint { CBEN_INSERTITEM = CBEN_FIRST - 1 } -enum : uint { CBEN_DELETEITEM = CBEN_FIRST - 2 } -enum : uint { CBEN_BEGINEDIT = CBEN_FIRST - 4 } -enum : uint { CBEN_ENDEDITA = CBEN_FIRST - 5 } -enum : uint { CBEN_ENDEDITW = CBEN_FIRST - 6 } - -// #if (_WIN32_IE >= 0x0400) -// #define CBEN_GETDISPINFOW (CBEN_FIRST - 7) -// #endif - -// #if (_WIN32_IE >= 0x0400) -enum : uint { CBEN_DRAGBEGINA = CBEN_FIRST - 8 } -enum : uint { CBEN_DRAGBEGINW = CBEN_FIRST - 9 } - -// #ifdef UNICODE -// #... -// #else -alias CBEN_DRAGBEGINA CBEN_DRAGBEGIN; -// #endif - -// #endif //(_WIN32_IE >= 0x0400) - -// #ifdef UNICODE -// #... -// #else -alias CBEN_ENDEDITA CBEN_ENDEDIT; -// #endif - -enum : uint { CBENF_KILLFOCUS = 1 } -enum : uint { CBENF_RETURN = 2 } -enum : uint { CBENF_ESCAPE = 3 } -enum : uint { CBENF_DROPDOWN = 4 } - -enum : uint { CBEMAXSTRLEN = 260 } - -// #if (_WIN32_IE >= 0x0400) - -struct _11 { - NMHDR hdr; - int iItemid; - WCHAR szText[CBEMAXSTRLEN]; -} -alias _11 NMCBEDRAGBEGINW; -alias _11* LPNMCBEDRAGBEGINW; -alias _11* PNMCBEDRAGBEGINW; - -struct _12 { - NMHDR hdr; - int iItemid; - char szText[CBEMAXSTRLEN]; -} -alias _12 NMCBEDRAGBEGINA; -alias _12* LPNMCBEDRAGBEGINA; -alias _12* PNMCBEDRAGBEGINA; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias NMCBEDRAGBEGINA NMCBEDRAGBEGIN; -alias LPNMCBEDRAGBEGINA LPNMCBEDRAGBEGIN; -alias PNMCBEDRAGBEGINA PNMCBEDRAGBEGIN; -// #endif -// #endif // _WIN32_IE >= 0x0400 - -struct _13 { - NMHDR hdr; - BOOL fChanged; - int iNewSelection; - WCHAR szText[CBEMAXSTRLEN]; - int iWhy; -} -alias _13 NMCBEENDEDITW; -alias _13* LPNMCBEENDEDITW; -alias _13* PNMCBEENDEDITW; - -struct _14 { - NMHDR hdr; - BOOL fChanged; - int iNewSelection; - char szText[CBEMAXSTRLEN]; - int iWhy; -} -alias _14 NMCBEENDEDITA; -alias _14* LPNMCBEENDEDITA; -alias _14* PNMCBEENDEDITA; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias NMCBEENDEDITA NMCBEENDEDIT; -alias LPNMCBEENDEDITA LPNMCBEENDEDIT; -alias PNMCBEENDEDITA PNMCBEENDEDIT; -// #endif - -// #endif - -// #endif // _WIN32_IE >= 0x0300 - -// #ifndef NOTABCONTROL - -// #ifdef _WIN32 - -const char[] WC_TABCONTROLA = "SysTabControl32"; -const wchar[] WC_TABCONTROLW = "SysTabControl32"; - -// #ifdef UNICODE -// #... -// #else -alias WC_TABCONTROLA WC_TABCONTROL; -// #endif - -// #else -// #... -// #endif - -// #if (_WIN32_IE >= 0x0300) -enum : uint { TCS_SCROLLOPPOSITE = 0x0001 } -enum : uint { TCS_BOTTOM = 0x0002 } -enum : uint { TCS_RIGHT = 0x0002 } -enum : uint { TCS_MULTISELECT = 0x0004 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { TCS_FLATBUTTONS = 0x0008 } -// #endif -enum : uint { TCS_FORCEICONLEFT = 0x0010 } -enum : uint { TCS_FORCELABELLEFT = 0x0020 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TCS_HOTTRACK = 0x0040 } -enum : uint { TCS_VERTICAL = 0x0080 } -// #endif -enum : uint { TCS_TABS = 0x0000 } -enum : uint { TCS_BUTTONS = 0x0100 } -enum : uint { TCS_SINGLELINE = 0x0000 } -enum : uint { TCS_MULTILINE = 0x0200 } -enum : uint { TCS_RIGHTJUSTIFY = 0x0000 } -enum : uint { TCS_FIXEDWIDTH = 0x0400 } -enum : uint { TCS_RAGGEDRIGHT = 0x0800 } -enum : uint { TCS_FOCUSONBUTTONDOWN = 0x1000 } -enum : uint { TCS_OWNERDRAWFIXED = 0x2000 } -enum : uint { TCS_TOOLTIPS = 0x4000 } -enum : uint { TCS_FOCUSNEVER = 0x8000 } - -// #if (_WIN32_IE >= 0x0400) - -enum : uint { TCS_EX_FLATSEPARATORS = 0x00000001 } -enum : uint { TCS_EX_REGISTERDROP = 0x00000002 } -// #endif - -enum : uint { TCM_GETIMAGELIST = TCM_FIRST + 2 } -// #define TabCtrl_GetImageList(hwnd) (HIMAGELIST)SNDMSG((hwnd), TCM_GETIMAGELIST, 0, 0L) - -enum : uint { TCM_SETIMAGELIST = TCM_FIRST + 3 } -// #define TabCtrl_SetImageList(hwnd, himl) (HIMAGELIST)SNDMSG((hwnd), TCM_SETIMAGELIST, 0, (LPARAM)(HIMAGELIST)(himl)) - -enum : uint { TCM_GETITEMCOUNT = TCM_FIRST + 4 } -// #define TabCtrl_GetItemCount(hwnd) (int)SNDMSG((hwnd), TCM_GETITEMCOUNT, 0, 0L) - -enum : uint { TCIF_TEXT = 0x0001 } -enum : uint { TCIF_IMAGE = 0x0002 } -enum : uint { TCIF_RTLREADING = 0x0004 } -enum : uint { TCIF_PARAM = 0x0008 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TCIF_STATE = 0x0010 } - -enum : uint { TCIS_BUTTONPRESSED = 0x0001 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { TCIS_HIGHLIGHTED = 0x0002 } -// #endif - -// #if (_WIN32_IE >= 0x0300) -alias TCITEMHEADERA TC_ITEMHEADERA; -alias TCITEMHEADERW TC_ITEMHEADERW; -// #else -// #... -// #... -// #... -// #... -// #endif -alias TCITEMHEADER TC_ITEMHEADER; - -struct tagTCITEMHEADERA { - UINT mask; - UINT lpReserved1; - UINT lpReserved2; - LPSTR pszText; - int cchTextMax; - int iImage; -} -alias tagTCITEMHEADERA TCITEMHEADERA; -alias tagTCITEMHEADERA* LPTCITEMHEADERA; - -struct tagTCITEMHEADERW { - UINT mask; - UINT lpReserved1; - UINT lpReserved2; - LPWSTR pszText; - int cchTextMax; - int iImage; -} -alias tagTCITEMHEADERW TCITEMHEADERW; -alias tagTCITEMHEADERW* LPTCITEMHEADERW; - -// #ifdef UNICODE -// #... -// #... -// #else -alias TCITEMHEADERA TCITEMHEADER; -alias LPTCITEMHEADERA LPTCITEMHEADER; -// #endif - -// #if (_WIN32_IE >= 0x0300) -alias TCITEMA TC_ITEMA; -alias TCITEMW TC_ITEMW; -// #else -// #... -// #... -// #... -// #... -// #endif -alias TCITEM TC_ITEM; - -struct tagTCITEMA { - UINT mask; -// #if (_WIN32_IE >= 0x0300) - DWORD dwState; - DWORD dwStateMask; -// #else -// ... -// #endif - LPSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -} -alias tagTCITEMA TCITEMA; -alias tagTCITEMA* LPTCITEMA; - -struct tagTCITEMW { - UINT mask; -// #if (_WIN32_IE >= 0x0300) - DWORD dwState; - DWORD dwStateMask; -// #else -// ... -// #endif - LPWSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -} -alias tagTCITEMW TCITEMW; -alias tagTCITEMW* LPTCITEMW; - -// #ifdef UNICODE -// #... -// #... -// #else -alias TCITEMA TCITEM; -alias LPTCITEMA LPTCITEM; -// #endif - -enum : uint { TCM_GETITEMA = TCM_FIRST + 5 } -enum : uint { TCM_GETITEMW = TCM_FIRST + 60 } - -// #ifdef UNICODE -// #... -// #else -alias TCM_GETITEMA TCM_GETITEM; -// #endif - -// #define TabCtrl_GetItem(hwnd, iItem, pitem) (BOOL)SNDMSG((hwnd), TCM_GETITEM, (WPARAM)(int)(iItem), (LPARAM)(TC_ITEM *)(pitem)) - -enum : uint { TCM_SETITEMA = TCM_FIRST + 6 } -enum : uint { TCM_SETITEMW = TCM_FIRST + 61 } - -// #ifdef UNICODE -// #... -// #else -alias TCM_SETITEMA TCM_SETITEM; -// #endif - -// #define TabCtrl_SetItem(hwnd, iItem, pitem) (BOOL)SNDMSG((hwnd), TCM_SETITEM, (WPARAM)(int)(iItem), (LPARAM)(TC_ITEM *)(pitem)) - -enum : uint { TCM_INSERTITEMA = TCM_FIRST + 7 } -enum : uint { TCM_INSERTITEMW = TCM_FIRST + 62 } - -// #ifdef UNICODE -// #... -// #else -alias TCM_INSERTITEMA TCM_INSERTITEM; -// #endif - -// #define TabCtrl_InsertItem(hwnd, iItem, pitem) (int)SNDMSG((hwnd), TCM_INSERTITEM, (WPARAM)(int)(iItem), (LPARAM)(const TC_ITEM *)(pitem)) - -enum : uint { TCM_DELETEITEM = TCM_FIRST + 8 } -// #define TabCtrl_DeleteItem(hwnd, i) (BOOL)SNDMSG((hwnd), TCM_DELETEITEM, (WPARAM)(int)(i), 0L) - -enum : uint { TCM_DELETEALLITEMS = TCM_FIRST + 9 } -// #define TabCtrl_DeleteAllItems(hwnd) (BOOL)SNDMSG((hwnd), TCM_DELETEALLITEMS, 0, 0L) - -enum : uint { TCM_GETITEMRECT = TCM_FIRST + 10 } -// #define TabCtrl_GetItemRect(hwnd, i, prc) (BOOL)SNDMSG((hwnd), TCM_GETITEMRECT, (WPARAM)(int)(i), (LPARAM)(RECT *)(prc)) - -enum : uint { TCM_GETCURSEL = TCM_FIRST + 11 } -// #define TabCtrl_GetCurSel(hwnd) (int)SNDMSG((hwnd), TCM_GETCURSEL, 0, 0) - -enum : uint { TCM_SETCURSEL = TCM_FIRST + 12 } -// #define TabCtrl_SetCurSel(hwnd, i) (int)SNDMSG((hwnd), TCM_SETCURSEL, (WPARAM)(i), 0) - -enum : uint { TCHT_NOWHERE = 0x0001 } -enum : uint { TCHT_ONITEMICON = 0x0002 } -enum : uint { TCHT_ONITEMLABEL = 0x0004 } -enum : uint { TCHT_ONITEM = TCHT_ONITEMICON | TCHT_ONITEMLABEL } - -// #if (_WIN32_IE >= 0x0300) -alias LPTCHITTESTINFO LPTC_HITTESTINFO; -alias TCHITTESTINFO TC_HITTESTINFO; -// #else -// #... -// #... -// #... -// #endif - -struct tagTCHITTESTINFO { - POINT pt; - UINT flags; -} -alias tagTCHITTESTINFO TCHITTESTINFO; -alias tagTCHITTESTINFO* LPTCHITTESTINFO; - -enum : uint { TCM_HITTEST = TCM_FIRST + 13 } -// #define TabCtrl_HitTest(hwndTC, pinfo) (int)SNDMSG((hwndTC), TCM_HITTEST, 0, (LPARAM)(TC_HITTESTINFO *)(pinfo)) - -enum : uint { TCM_SETITEMEXTRA = TCM_FIRST + 14 } -// #define TabCtrl_SetItemExtra(hwndTC, cb) (BOOL)SNDMSG((hwndTC), TCM_SETITEMEXTRA, (WPARAM)(cb), 0L) - -enum : uint { TCM_ADJUSTRECT = TCM_FIRST + 40 } -// #define TabCtrl_AdjustRect(hwnd, bLarger, prc) (int)SNDMSG(hwnd, TCM_ADJUSTRECT, (WPARAM)(BOOL)(bLarger), (LPARAM)(RECT *)prc) - -enum : uint { TCM_SETITEMSIZE = TCM_FIRST + 41 } -// #define TabCtrl_SetItemSize(hwnd, x, y) (DWORD)SNDMSG((hwnd), TCM_SETITEMSIZE, 0, MAKELPARAM(x,y)) - -enum : uint { TCM_REMOVEIMAGE = TCM_FIRST + 42 } -// #define TabCtrl_RemoveImage(hwnd, i) (void)SNDMSG((hwnd), TCM_REMOVEIMAGE, i, 0L) - -enum : uint { TCM_SETPADDING = TCM_FIRST + 43 } -// #define TabCtrl_SetPadding(hwnd, cx, cy) (void)SNDMSG((hwnd), TCM_SETPADDING, 0, MAKELPARAM(cx, cy)) - -enum : uint { TCM_GETROWCOUNT = TCM_FIRST + 44 } -// #define TabCtrl_GetRowCount(hwnd) (int)SNDMSG((hwnd), TCM_GETROWCOUNT, 0, 0L) - -enum : uint { TCM_GETTOOLTIPS = TCM_FIRST + 45 } -// #define TabCtrl_GetToolTips(hwnd) (HWND)SNDMSG((hwnd), TCM_GETTOOLTIPS, 0, 0L) - -enum : uint { TCM_SETTOOLTIPS = TCM_FIRST + 46 } -// #define TabCtrl_SetToolTips(hwnd, hwndTT) (void)SNDMSG((hwnd), TCM_SETTOOLTIPS, (WPARAM)(hwndTT), 0L) - -enum : uint { TCM_GETCURFOCUS = TCM_FIRST + 47 } -// #define TabCtrl_GetCurFocus(hwnd) (int)SNDMSG((hwnd), TCM_GETCURFOCUS, 0, 0) - -enum : uint { TCM_SETCURFOCUS = TCM_FIRST + 48 } -// #define TabCtrl_SetCurFocus(hwnd, i) SNDMSG((hwnd),TCM_SETCURFOCUS, i, 0) - -// #if (_WIN32_IE >= 0x0300) -enum : uint { TCM_SETMINTABWIDTH = TCM_FIRST + 49 } -// #define TabCtrl_SetMinTabWidth(hwnd, x) (int)SNDMSG((hwnd), TCM_SETMINTABWIDTH, 0, x) - -enum : uint { TCM_DESELECTALL = TCM_FIRST + 50 } -// #define TabCtrl_DeselectAll(hwnd, fExcludeFocus) (void)SNDMSG((hwnd), TCM_DESELECTALL, fExcludeFocus, 0) -// #endif - -// #if (_WIN32_IE >= 0x0400) - -enum : uint { TCM_HIGHLIGHTITEM = TCM_FIRST + 51 } -// #define TabCtrl_HighlightItem(hwnd, i, fHighlight) (BOOL)SNDMSG((hwnd), TCM_HIGHLIGHTITEM, (WPARAM)(i), (LPARAM)MAKELONG (fHighlight, 0)) - -enum : uint { TCM_SETEXTENDEDSTYLE = TCM_FIRST + 52 } -// #define TabCtrl_SetExtendedStyle(hwnd, dw) (DWORD)SNDMSG((hwnd), TCM_SETEXTENDEDSTYLE, 0, dw) - -enum : uint { TCM_GETEXTENDEDSTYLE = TCM_FIRST + 53 } -// #define TabCtrl_GetExtendedStyle(hwnd) (DWORD)SNDMSG((hwnd), TCM_GETEXTENDEDSTYLE, 0, 0) - -alias CCM_SETUNICODEFORMAT TCM_SETUNICODEFORMAT; -// #define TabCtrl_SetUnicodeFormat(hwnd, fUnicode) (BOOL)SNDMSG((hwnd), TCM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) - -alias CCM_GETUNICODEFORMAT TCM_GETUNICODEFORMAT; -// #define TabCtrl_GetUnicodeFormat(hwnd) (BOOL)SNDMSG((hwnd), TCM_GETUNICODEFORMAT, 0, 0) - -// #endif // _WIN32_IE >= 0x0400 - -enum : uint { TCN_KEYDOWN = TCN_FIRST - 0 } - -// #if (_WIN32_IE >= 0x0300) -alias NMTCKEYDOWN TC_KEYDOWN; -// #else -// #... -// #... -// #endif - -// #ifdef _WIN32 -align(1): -// #endif - -struct tagTCKEYDOWN { - NMHDR hdr; - WORD wVKey; - UINT flags; -} -alias tagTCKEYDOWN NMTCKEYDOWN; - -// #ifdef _WIN32 -align: -// #endif - -enum : uint { TCN_SELCHANGE = TCN_FIRST - 1 } -enum : uint { TCN_SELCHANGING = TCN_FIRST - 2 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { TCN_GETOBJECT = TCN_FIRST - 3 } -// #endif // _WIN32_IE >= 0x0400 -// #if (_WIN32_IE >= 0x0500) -enum : uint { TCN_FOCUSCHANGE = TCN_FIRST - 4 } -// #endif // _WIN32_IE >= 0x0500 -// #endif // NOTABCONTROL - -// #ifndef NOANIMATE - -// #ifdef _WIN32 - -const wchar[] ANIMATE_CLASSW = "SysAnimate32"; -const char[] ANIMATE_CLASSA = "SysAnimate32"; - -// #ifdef UNICODE -// #... -// #else -alias ANIMATE_CLASSA ANIMATE_CLASS; -// #endif - -enum : uint { ACS_CENTER = 0x0001 } -enum : uint { ACS_TRANSPARENT = 0x0002 } -enum : uint { ACS_AUTOPLAY = 0x0004 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { ACS_TIMER = 0x0008 } -// #endif - -enum : uint { ACM_OPENA = WM_USER+100 } -enum : uint { ACM_OPENW = WM_USER+103 } - -// #ifdef UNICODE -// #... -// #else -alias ACM_OPENA ACM_OPEN; -// #endif - -enum : uint { ACM_PLAY = WM_USER+101 } -enum : uint { ACM_STOP = WM_USER+102 } - -enum : uint { ACN_START = 1 } -enum : uint { ACN_STOP = 2 } - -// #define Animate_Create(hwndP, id, dwStyle, hInstance) CreateWindow(ANIMATE_CLASS, NULL, dwStyle, 0, 0, 0, 0, hwndP, (HMENU)(id), hInstance, NULL) - -// #define Animate_Open(hwnd, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, 0, (LPARAM)(LPTSTR)(szName)) -// #define Animate_OpenEx(hwnd, hInst, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, (WPARAM)(hInst), (LPARAM)(LPTSTR)(szName)) -// #define Animate_Play(hwnd, from, to, rep) (BOOL)SNDMSG(hwnd, ACM_PLAY, (WPARAM)(rep), (LPARAM)MAKELONG(from, to)) -// #define Animate_Stop(hwnd) (BOOL)SNDMSG(hwnd, ACM_STOP, 0, 0) -// #define Animate_Close(hwnd) Animate_Open(hwnd, NULL) -// #define Animate_Seek(hwnd, frame) Animate_Play(hwnd, frame, frame, 1) -// #endif - -// #endif // NOANIMATE - -// #if (_WIN32_IE >= 0x0300) - -// #ifndef NOMONTHCAL -// #ifdef _WIN32 - -const wchar[] MONTHCAL_CLASSW = "SysMonthCal32"; -const char[] MONTHCAL_CLASSA = "SysMonthCal32"; - -// #ifdef UNICODE -// #... -// #else -alias MONTHCAL_CLASSA MONTHCAL_CLASS; -// #endif - -alias DWORD MONTHDAYSTATE; -alias DWORD* LPMONTHDAYSTATE; - -enum : uint { MCM_FIRST = 0x1000 } - -enum : uint { MCM_GETCURSEL = MCM_FIRST + 1 } -// #define MonthCal_GetCurSel(hmc, pst) (BOOL)SNDMSG(hmc, MCM_GETCURSEL, 0, (LPARAM)(pst)) - -enum : uint { MCM_SETCURSEL = MCM_FIRST + 2 } -// #define MonthCal_SetCurSel(hmc, pst) (BOOL)SNDMSG(hmc, MCM_SETCURSEL, 0, (LPARAM)(pst)) - -enum : uint { MCM_GETMAXSELCOUNT = MCM_FIRST + 3 } -// #define MonthCal_GetMaxSelCount(hmc) (DWORD)SNDMSG(hmc, MCM_GETMAXSELCOUNT, 0, 0L) - -enum : uint { MCM_SETMAXSELCOUNT = MCM_FIRST + 4 } -// #define MonthCal_SetMaxSelCount(hmc, n) (BOOL)SNDMSG(hmc, MCM_SETMAXSELCOUNT, (WPARAM)(n), 0L) - -enum : uint { MCM_GETSELRANGE = MCM_FIRST + 5 } -// #define MonthCal_GetSelRange(hmc, rgst) SNDMSG(hmc, MCM_GETSELRANGE, 0, (LPARAM)(rgst)) - -enum : uint { MCM_SETSELRANGE = MCM_FIRST + 6 } -// #define MonthCal_SetSelRange(hmc, rgst) SNDMSG(hmc, MCM_SETSELRANGE, 0, (LPARAM)(rgst)) - -enum : uint { MCM_GETMONTHRANGE = MCM_FIRST + 7 } -// #define MonthCal_GetMonthRange(hmc, gmr, rgst) (DWORD)SNDMSG(hmc, MCM_GETMONTHRANGE, (WPARAM)(gmr), (LPARAM)(rgst)) - -enum : uint { MCM_SETDAYSTATE = MCM_FIRST + 8 } -// #define MonthCal_SetDayState(hmc, cbds, rgds) SNDMSG(hmc, MCM_SETDAYSTATE, (WPARAM)(cbds), (LPARAM)(rgds)) - -enum : uint { MCM_GETMINREQRECT = MCM_FIRST + 9 } -// #define MonthCal_GetMinReqRect(hmc, prc) SNDMSG(hmc, MCM_GETMINREQRECT, 0, (LPARAM)(prc)) - -enum : uint { MCM_SETCOLOR = MCM_FIRST + 10 } -// #define MonthCal_SetColor(hmc, iColor, clr) SNDMSG(hmc, MCM_SETCOLOR, iColor, clr) - -enum : uint { MCM_GETCOLOR = MCM_FIRST + 11 } -// #define MonthCal_GetColor(hmc, iColor) SNDMSG(hmc, MCM_GETCOLOR, iColor, 0) - -enum : uint { MCSC_BACKGROUND = 0 } -enum : uint { MCSC_TEXT = 1 } -enum : uint { MCSC_TITLEBK = 2 } -enum : uint { MCSC_TITLETEXT = 3 } -enum : uint { MCSC_MONTHBK = 4 } -enum : uint { MCSC_TRAILINGTEXT = 5 } - -enum : uint { MCM_SETTODAY = MCM_FIRST + 12 } -// #define MonthCal_SetToday(hmc, pst) SNDMSG(hmc, MCM_SETTODAY, 0, (LPARAM)(pst)) - -enum : uint { MCM_GETTODAY = MCM_FIRST + 13 } -// #define MonthCal_GetToday(hmc, pst) (BOOL)SNDMSG(hmc, MCM_GETTODAY, 0, (LPARAM)(pst)) - -enum : uint { MCM_HITTEST = MCM_FIRST + 14 } -// #define MonthCal_HitTest(hmc, pinfo) SNDMSG(hmc, MCM_HITTEST, 0, (LPARAM)(PMCHITTESTINFO)(pinfo)) - -struct _15 { - UINT cbSize; - POINT pt; - UINT uHit; - SYSTEMTIME st; -} -alias _15 MCHITTESTINFO; -alias _15* PMCHITTESTINFO; - -enum : uint { MCHT_TITLE = 0x00010000 } -enum : uint { MCHT_CALENDAR = 0x00020000 } -enum : uint { MCHT_TODAYLINK = 0x00030000 } - -enum : uint { MCHT_NEXT = 0x01000000 } -enum : uint { MCHT_PREV = 0x02000000 } - -enum : uint { MCHT_NOWHERE = 0x00000000 } - -enum : uint { MCHT_TITLEBK = MCHT_TITLE } -enum : uint { MCHT_TITLEMONTH = MCHT_TITLE | 0x0001 } -enum : uint { MCHT_TITLEYEAR = MCHT_TITLE | 0x0002 } -enum : uint { MCHT_TITLEBTNNEXT = MCHT_TITLE | MCHT_NEXT | 0x0003 } -enum : uint { MCHT_TITLEBTNPREV = MCHT_TITLE | MCHT_PREV | 0x0003 } - -enum : uint { MCHT_CALENDARBK = MCHT_CALENDAR } -enum : uint { MCHT_CALENDARDATE = MCHT_CALENDAR | 0x0001 } -enum : uint { MCHT_CALENDARDATENEXT = MCHT_CALENDARDATE | MCHT_NEXT } -enum : uint { MCHT_CALENDARDATEPREV = MCHT_CALENDARDATE | MCHT_PREV } -enum : uint { MCHT_CALENDARDAY = MCHT_CALENDAR | 0x0002 } -enum : uint { MCHT_CALENDARWEEKNUM = MCHT_CALENDAR | 0x0003 } - -enum : uint { MCM_SETFIRSTDAYOFWEEK = MCM_FIRST + 15 } -// #define MonthCal_SetFirstDayOfWeek(hmc, iDay) SNDMSG(hmc, MCM_SETFIRSTDAYOFWEEK, 0, iDay) - -enum : uint { MCM_GETFIRSTDAYOFWEEK = MCM_FIRST + 16 } -// #define MonthCal_GetFirstDayOfWeek(hmc) (DWORD)SNDMSG(hmc, MCM_GETFIRSTDAYOFWEEK, 0, 0) - -enum : uint { MCM_GETRANGE = MCM_FIRST + 17 } -// #define MonthCal_GetRange(hmc, rgst) (DWORD)SNDMSG(hmc, MCM_GETRANGE, 0, (LPARAM)(rgst)) - -enum : uint { MCM_SETRANGE = MCM_FIRST + 18 } -// #define MonthCal_SetRange(hmc, gd, rgst) (BOOL)SNDMSG(hmc, MCM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst)) - -enum : uint { MCM_GETMONTHDELTA = MCM_FIRST + 19 } -// #define MonthCal_GetMonthDelta(hmc) (int)SNDMSG(hmc, MCM_GETMONTHDELTA, 0, 0) - -enum : uint { MCM_SETMONTHDELTA = MCM_FIRST + 20 } -// #define MonthCal_SetMonthDelta(hmc, n) (int)SNDMSG(hmc, MCM_SETMONTHDELTA, n, 0) - -enum : uint { MCM_GETMAXTODAYWIDTH = MCM_FIRST + 21 } -// #define MonthCal_GetMaxTodayWidth(hmc) (DWORD)SNDMSG(hmc, MCM_GETMAXTODAYWIDTH, 0, 0) - -// #if (_WIN32_IE >= 0x0400) -alias CCM_SETUNICODEFORMAT MCM_SETUNICODEFORMAT; -// #define MonthCal_SetUnicodeFormat(hwnd, fUnicode) (BOOL)SNDMSG((hwnd), MCM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) - -alias CCM_GETUNICODEFORMAT MCM_GETUNICODEFORMAT; -// #define MonthCal_GetUnicodeFormat(hwnd) (BOOL)SNDMSG((hwnd), MCM_GETUNICODEFORMAT, 0, 0) -// #endif - -struct tagNMSELCHANGE { - NMHDR nmhdr; - - SYSTEMTIME stSelStart; - SYSTEMTIME stSelEnd; -} -alias tagNMSELCHANGE NMSELCHANGE; -alias tagNMSELCHANGE* LPNMSELCHANGE; - -enum : uint { MCN_SELCHANGE = MCN_FIRST + 1 } - -struct tagNMDAYSTATE { - NMHDR nmhdr; - - SYSTEMTIME stStart; - int cDayState; - LPMONTHDAYSTATE prgDayState; -} -alias tagNMDAYSTATE NMDAYSTATE; -alias tagNMDAYSTATE* LPNMDAYSTATE; - -enum : uint { MCN_GETDAYSTATE = MCN_FIRST + 3 } - -alias NMSELCHANGE NMSELECT; -alias NMSELCHANGE* LPNMSELECT; - -enum : uint { MCN_SELECT = MCN_FIRST + 4 } - -enum : uint { MCS_DAYSTATE = 0x0001 } -enum : uint { MCS_MULTISELECT = 0x0002 } -enum : uint { MCS_WEEKNUMBERS = 0x0004 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { MCS_NOTODAYCIRCLE = 0x0008 } -enum : uint { MCS_NOTODAY = 0x0010 } -// #else -// #... -// #endif - -enum : uint { GMR_VISIBLE = 0 } -enum : uint { GMR_DAYSTATE = 1 } - -// #endif // _WIN32 -// #endif // NOMONTHCAL - -// #ifndef NODATETIMEPICK -// #ifdef _WIN32 - -const wchar[] DATETIMEPICK_CLASSW = "SysDateTimePick32"; -const char[] DATETIMEPICK_CLASSA = "SysDateTimePick32"; - -// #ifdef UNICODE -// #... -// #else -alias DATETIMEPICK_CLASSA DATETIMEPICK_CLASS; -// #endif - -enum : uint { DTM_FIRST = 0x1000 } - -enum : uint { DTM_GETSYSTEMTIME = DTM_FIRST + 1 } -// #define DateTime_GetSystemtime(hdp, pst) (DWORD)SNDMSG(hdp, DTM_GETSYSTEMTIME, 0, (LPARAM)(pst)) - -enum : uint { DTM_SETSYSTEMTIME = DTM_FIRST + 2 } -// #define DateTime_SetSystemtime(hdp, gd, pst) (BOOL)SNDMSG(hdp, DTM_SETSYSTEMTIME, (WPARAM)(gd), (LPARAM)(pst)) - -enum : uint { DTM_GETRANGE = DTM_FIRST + 3 } -// #define DateTime_GetRange(hdp, rgst) (DWORD)SNDMSG(hdp, DTM_GETRANGE, 0, (LPARAM)(rgst)) - -enum : uint { DTM_SETRANGE = DTM_FIRST + 4 } -// #define DateTime_SetRange(hdp, gd, rgst) (BOOL)SNDMSG(hdp, DTM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst)) - -enum : uint { DTM_SETFORMATA = DTM_FIRST + 5 } -enum : uint { DTM_SETFORMATW = DTM_FIRST + 50 } - -// #ifdef UNICODE -// #... -// #else -alias DTM_SETFORMATA DTM_SETFORMAT; -// #endif - -// #define DateTime_SetFormat(hdp, sz) (BOOL)SNDMSG(hdp, DTM_SETFORMAT, 0, (LPARAM)(sz)) - -enum : uint { DTM_SETMCCOLOR = DTM_FIRST + 6 } -// #define DateTime_SetMonthCalColor(hdp, iColor, clr) SNDMSG(hdp, DTM_SETMCCOLOR, iColor, clr) - -enum : uint { DTM_GETMCCOLOR = DTM_FIRST + 7 } -// #define DateTime_GetMonthCalColor(hdp, iColor) SNDMSG(hdp, DTM_GETMCCOLOR, iColor, 0) - -enum : uint { DTM_GETMONTHCAL = DTM_FIRST + 8 } -// #define DateTime_GetMonthCal(hdp) (HWND)SNDMSG(hdp, DTM_GETMONTHCAL, 0, 0) - -// #if (_WIN32_IE >= 0x0400) - -enum : uint { DTM_SETMCFONT = DTM_FIRST + 9 } -// #define DateTime_SetMonthCalFont(hdp, hfont, fRedraw) SNDMSG(hdp, DTM_SETMCFONT, (WPARAM)(hfont), (LPARAM)(fRedraw)) - -enum : uint { DTM_GETMCFONT = DTM_FIRST + 10 } -// #define DateTime_GetMonthCalFont(hdp) SNDMSG(hdp, DTM_GETMCFONT, 0, 0) - -// #endif // _WIN32_IE >= 0x0400 - -enum : uint { DTS_UPDOWN = 0x0001 } -enum : uint { DTS_SHOWNONE = 0x0002 } -enum : uint { DTS_SHORTDATEFORMAT = 0x0000 } -enum : uint { DTS_LONGDATEFORMAT = 0x0004 } -// #if (_WIN32_IE >= 0x500) -enum : uint { DTS_SHORTDATECENTURYFORMAT = 0x000C } -// #endif // (_WIN32_IE >= 0x500) -enum : uint { DTS_TIMEFORMAT = 0x0009 } -enum : uint { DTS_APPCANPARSE = 0x0010 } -enum : uint { DTS_RIGHTALIGN = 0x0020 } - -enum : uint { DTN_DATETIMECHANGE = DTN_FIRST + 1 } -struct tagNMDATETIMECHANGE { - NMHDR nmhdr; - DWORD dwFlags; - SYSTEMTIME st; -} -alias tagNMDATETIMECHANGE NMDATETIMECHANGE; -alias tagNMDATETIMECHANGE* LPNMDATETIMECHANGE; - -enum : uint { DTN_USERSTRINGA = DTN_FIRST + 2 } -enum : uint { DTN_USERSTRINGW = DTN_FIRST + 15 } -struct tagNMDATETIMESTRINGA { - NMHDR nmhdr; - LPCSTR pszUserString; - SYSTEMTIME st; - DWORD dwFlags; -} -alias tagNMDATETIMESTRINGA NMDATETIMESTRINGA; -alias tagNMDATETIMESTRINGA* LPNMDATETIMESTRINGA; - -struct tagNMDATETIMESTRINGW { - NMHDR nmhdr; - LPCWSTR pszUserString; - SYSTEMTIME st; - DWORD dwFlags; -} -alias tagNMDATETIMESTRINGW NMDATETIMESTRINGW; -alias tagNMDATETIMESTRINGW* LPNMDATETIMESTRINGW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias DTN_USERSTRINGA DTN_USERSTRING; -alias NMDATETIMESTRINGA NMDATETIMESTRING; -alias LPNMDATETIMESTRINGA LPNMDATETIMESTRING; -// #endif - -enum : uint { DTN_WMKEYDOWNA = DTN_FIRST + 3 } -enum : uint { DTN_WMKEYDOWNW = DTN_FIRST + 16 } -struct tagNMDATETIMEWMKEYDOWNA { - NMHDR nmhdr; - int nVirtKey; - LPCSTR pszFormat; - SYSTEMTIME st; -} -alias tagNMDATETIMEWMKEYDOWNA NMDATETIMEWMKEYDOWNA; -alias tagNMDATETIMEWMKEYDOWNA* LPNMDATETIMEWMKEYDOWNA; - -struct tagNMDATETIMEWMKEYDOWNW { - NMHDR nmhdr; - int nVirtKey; - LPCWSTR pszFormat; - SYSTEMTIME st; -} -alias tagNMDATETIMEWMKEYDOWNW NMDATETIMEWMKEYDOWNW; -alias tagNMDATETIMEWMKEYDOWNW* LPNMDATETIMEWMKEYDOWNW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias DTN_WMKEYDOWNA DTN_WMKEYDOWN; -alias NMDATETIMEWMKEYDOWNA NMDATETIMEWMKEYDOWN; -alias LPNMDATETIMEWMKEYDOWNA LPNMDATETIMEWMKEYDOWN; -// #endif - -enum : uint { DTN_FORMATA = DTN_FIRST + 4 } -enum : uint { DTN_FORMATW = DTN_FIRST + 17 } -struct tagNMDATETIMEFORMATA { - NMHDR nmhdr; - LPCSTR pszFormat; - SYSTEMTIME st; - LPCSTR pszDisplay; - CHAR szDisplay[64]; -} -alias tagNMDATETIMEFORMATA NMDATETIMEFORMATA; -alias tagNMDATETIMEFORMATA* LPNMDATETIMEFORMATA; - -struct tagNMDATETIMEFORMATW { - NMHDR nmhdr; - LPCWSTR pszFormat; - SYSTEMTIME st; - LPCWSTR pszDisplay; - WCHAR szDisplay[64]; -} -alias tagNMDATETIMEFORMATW NMDATETIMEFORMATW; -alias tagNMDATETIMEFORMATW* LPNMDATETIMEFORMATW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias DTN_FORMATA DTN_FORMAT; -alias NMDATETIMEFORMATA NMDATETIMEFORMAT; -alias LPNMDATETIMEFORMATA LPNMDATETIMEFORMAT; -// #endif - -enum : uint { DTN_FORMATQUERYA = DTN_FIRST + 5 } -enum : uint { DTN_FORMATQUERYW = DTN_FIRST + 18 } -struct tagNMDATETIMEFORMATQUERYA { - NMHDR nmhdr; - LPCSTR pszFormat; - SIZE szMax; -} -alias tagNMDATETIMEFORMATQUERYA NMDATETIMEFORMATQUERYA; -alias tagNMDATETIMEFORMATQUERYA* LPNMDATETIMEFORMATQUERYA; - -struct tagNMDATETIMEFORMATQUERYW { - NMHDR nmhdr; - LPCWSTR pszFormat; - SIZE szMax; -} -alias tagNMDATETIMEFORMATQUERYW NMDATETIMEFORMATQUERYW; -alias tagNMDATETIMEFORMATQUERYW* LPNMDATETIMEFORMATQUERYW; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias DTN_FORMATQUERYA DTN_FORMATQUERY; -alias NMDATETIMEFORMATQUERYA NMDATETIMEFORMATQUERY; -alias LPNMDATETIMEFORMATQUERYA LPNMDATETIMEFORMATQUERY; -// #endif - -enum : uint { DTN_DROPDOWN = DTN_FIRST + 6 } -enum : uint { DTN_CLOSEUP = DTN_FIRST + 7 } - -enum : uint { GDTR_MIN = 0x0001 } -enum : uint { GDTR_MAX = 0x0002 } - -enum { GDT_ERROR = -1 } -enum : uint { GDT_VALID = 0 } -enum : uint { GDT_NONE = 1 } - -// #endif // _WIN32 -// #endif // NODATETIMEPICK - -// #if (_WIN32_IE >= 0x0400) - -// #ifndef NOIPADDRESS - -enum : uint { IPM_CLEARADDRESS = WM_USER+100 } -enum : uint { IPM_SETADDRESS = WM_USER+101 } -enum : uint { IPM_GETADDRESS = WM_USER+102 } -enum : uint { IPM_SETRANGE = WM_USER+103 } -enum : uint { IPM_SETFOCUS = WM_USER+104 } -enum : uint { IPM_ISBLANK = WM_USER+105 } - -const wchar[] WC_IPADDRESSW = "SysIPAddress32"; -const char[] WC_IPADDRESSA = "SysIPAddress32"; - -// #ifdef UNICODE -// #... -// #else -alias WC_IPADDRESSA WC_IPADDRESS; -// #endif - -enum : uint { IPN_FIELDCHANGED = IPN_FIRST - 0 } -struct tagNMIPADDRESS { - NMHDR hdr; - int iField; - int iValue; -} -alias tagNMIPADDRESS NMIPADDRESS; -alias tagNMIPADDRESS* LPNMIPADDRESS; - -// #define MAKEIPRANGE(low, high) ((LPARAM)(WORD)(((BYTE)(high) << 8) + (BYTE)(low))) - -// #define MAKEIPADDRESS(b1,b2,b3,b4) ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<<16)+((DWORD)(b3)<<8)+((DWORD)(b4)))) - -// #define FIRST_IPADDRESS(x) ((x>>24) & 0xff) -// #define SECOND_IPADDRESS(x) ((x>>16) & 0xff) -// #define THIRD_IPADDRESS(x) ((x>>8) & 0xff) -// #define FOURTH_IPADDRESS(x) (x & 0xff) - -// #endif // NOIPADDRESS - -// #ifndef NOPAGESCROLLER - -const wchar[] WC_PAGESCROLLERW = "SysPager"; -const char[] WC_PAGESCROLLERA = "SysPager"; - -// #ifdef UNICODE -// #... -// #else -alias WC_PAGESCROLLERA WC_PAGESCROLLER; -// #endif - -enum : uint { PGS_VERT = 0x00000000 } -enum : uint { PGS_HORZ = 0x00000001 } -enum : uint { PGS_AUTOSCROLL = 0x00000002 } -enum : uint { PGS_DRAGNDROP = 0x00000004 } - -enum : uint { PGF_INVISIBLE = 0 } -enum : uint { PGF_NORMAL = 1 } -enum : uint { PGF_GRAYED = 2 } -enum : uint { PGF_DEPRESSED = 4 } -enum : uint { PGF_HOT = 8 } - -enum : uint { PGB_TOPORLEFT = 0 } -enum : uint { PGB_BOTTOMORRIGHT = 1 } - -enum : uint { PGM_SETCHILD = PGM_FIRST + 1 } -// #define Pager_SetChild(hwnd, hwndChild) (void)SNDMSG((hwnd), PGM_SETCHILD, 0, (LPARAM)(hwndChild)) - -enum : uint { PGM_RECALCSIZE = PGM_FIRST + 2 } -// #define Pager_RecalcSize(hwnd) (void)SNDMSG((hwnd), PGM_RECALCSIZE, 0, 0) - -enum : uint { PGM_FORWARDMOUSE = PGM_FIRST + 3 } -// #define Pager_ForwardMouse(hwnd, bForward) (void)SNDMSG((hwnd), PGM_FORWARDMOUSE, (WPARAM)(bForward), 0) - -enum : uint { PGM_SETBKCOLOR = PGM_FIRST + 4 } -// #define Pager_SetBkColor(hwnd, clr) (COLORREF)SNDMSG((hwnd), PGM_SETBKCOLOR, 0, (LPARAM)(clr)) - -enum : uint { PGM_GETBKCOLOR = PGM_FIRST + 5 } -// #define Pager_GetBkColor(hwnd) (COLORREF)SNDMSG((hwnd), PGM_GETBKCOLOR, 0, 0) - -enum : uint { PGM_SETBORDER = PGM_FIRST + 6 } -// #define Pager_SetBorder(hwnd, iBorder) (int)SNDMSG((hwnd), PGM_SETBORDER, 0, (LPARAM)(iBorder)) - -enum : uint { PGM_GETBORDER = PGM_FIRST + 7 } -// #define Pager_GetBorder(hwnd) (int)SNDMSG((hwnd), PGM_GETBORDER, 0, 0) - -enum : uint { PGM_SETPOS = PGM_FIRST + 8 } -// #define Pager_SetPos(hwnd, iPos) (int)SNDMSG((hwnd), PGM_SETPOS, 0, (LPARAM)(iPos)) - -enum : uint { PGM_GETPOS = PGM_FIRST + 9 } -// #define Pager_GetPos(hwnd) (int)SNDMSG((hwnd), PGM_GETPOS, 0, 0) - -enum : uint { PGM_SETBUTTONSIZE = PGM_FIRST + 10 } -// #define Pager_SetButtonSize(hwnd, iSize) (int)SNDMSG((hwnd), PGM_SETBUTTONSIZE, 0, (LPARAM)(iSize)) - -enum : uint { PGM_GETBUTTONSIZE = PGM_FIRST + 11 } -// #define Pager_GetButtonSize(hwnd) (int)SNDMSG((hwnd), PGM_GETBUTTONSIZE, 0,0) - -enum : uint { PGM_GETBUTTONSTATE = PGM_FIRST + 12 } -// #define Pager_GetButtonState(hwnd, iButton) (DWORD)SNDMSG((hwnd), PGM_GETBUTTONSTATE, 0, (LPARAM)(iButton)) - -alias CCM_GETDROPTARGET PGM_GETDROPTARGET; -// #define Pager_GetDropTarget(hwnd, ppdt) (void)SNDMSG((hwnd), PGM_GETDROPTARGET, 0, (LPARAM)(ppdt)) - -enum : uint { PGN_SCROLL = PGN_FIRST-1 } - -enum : uint { PGF_SCROLLUP = 1 } -enum : uint { PGF_SCROLLDOWN = 2 } -enum : uint { PGF_SCROLLLEFT = 4 } -enum : uint { PGF_SCROLLRIGHT = 8 } - -enum : uint { PGK_SHIFT = 1 } -enum : uint { PGK_CONTROL = 2 } -enum : uint { PGK_MENU = 4 } - -// #ifdef _WIN32 -align(1): -// #endif - -struct _16 { - NMHDR hdr; - WORD fwKeys; - RECT rcParent; - int iDir; - int iXpos; - int iYpos; - int iScroll; -} -alias _16 NMPGSCROLL; -alias _16* LPNMPGSCROLL; - -// #ifdef _WIN32 -align: -// #endif - -enum : uint { PGN_CALCSIZE = PGN_FIRST-2 } - -enum : uint { PGF_CALCWIDTH = 1 } -enum : uint { PGF_CALCHEIGHT = 2 } - -struct _17 { - NMHDR hdr; - DWORD dwFlag; - int iWidth; - int iHeight; -} -alias _17 NMPGCALCSIZE; -alias _17* LPNMPGCALCSIZE; - -enum : uint { PGN_HOTITEMCHANGE = PGN_FIRST-3 } - -struct tagNMPGHOTITEM { - NMHDR hdr; - int idOld; - int idNew; - DWORD dwFlags; -} -alias tagNMPGHOTITEM NMPGHOTITEM; -alias tagNMPGHOTITEM* LPNMPGHOTITEM; - -// #endif // NOPAGESCROLLER - -// #ifndef NONATIVEFONTCTL - -const wchar[] WC_NATIVEFONTCTLW = "NativeFontCtl"; -const char[] WC_NATIVEFONTCTLA = "NativeFontCtl"; - -// #ifdef UNICODE -// #... -// #else -alias WC_NATIVEFONTCTLA WC_NATIVEFONTCTL; -// #endif - -enum : uint { NFS_EDIT = 0x0001 } -enum : uint { NFS_STATIC = 0x0002 } -enum : uint { NFS_LISTCOMBO = 0x0004 } -enum : uint { NFS_BUTTON = 0x0008 } -enum : uint { NFS_ALL = 0x0010 } -enum : uint { NFS_USEFONTASSOC = 0x0020 } - -// #endif // NONATIVEFONTCTL - -// #ifndef NOBUTTON - -// #ifdef _WIN32 - -const char[] WC_BUTTONA = "Button"; -const wchar[] WC_BUTTONW = "Button"; - -// #ifdef UNICODE -// #... -// #else -alias WC_BUTTONA WC_BUTTON; -// #endif - -// #else -// #... -// #endif - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { BUTTON_IMAGELIST_ALIGN_LEFT = 0 } -enum : uint { BUTTON_IMAGELIST_ALIGN_RIGHT = 1 } -enum : uint { BUTTON_IMAGELIST_ALIGN_TOP = 2 } -enum : uint { BUTTON_IMAGELIST_ALIGN_BOTTOM = 3 } -enum : uint { BUTTON_IMAGELIST_ALIGN_CENTER = 4 } - -struct _18 { - HIMAGELIST himl; - RECT margin; - UINT uAlign; -} -alias _18 BUTTON_IMAGELIST; -alias _18* PBUTTON_IMAGELIST; - -enum : uint { BCM_GETIDEALSIZE = BCM_FIRST + 0x0001 } -// #define Button_GetIdealSize(hwnd, psize) (BOOL)SNDMSG((hwnd), BCM_GETIDEALSIZE, 0, (LPARAM)(psize)) - -enum : uint { BCM_SETIMAGELIST = BCM_FIRST + 0x0002 } -// #define Button_SetImageList(hwnd, pbuttonImagelist) (BOOL)SNDMSG((hwnd), BCM_SETIMAGELIST, 0, (LPARAM)(pbuttonImagelist)) - -enum : uint { BCM_GETIMAGELIST = BCM_FIRST + 0x0003 } -// #define Button_GetImageList(hwnd, pbuttonImagelist) (BOOL)SNDMSG((hwnd), BCM_GETIMAGELIST, 0, (LPARAM)(pbuttonImagelist)) - -enum : uint { BCM_SETTEXTMARGIN = BCM_FIRST + 0x0004 } -// #define Button_SetTextMargin(hwnd, pmargin) (BOOL)SNDMSG((hwnd), BCM_SETTEXTMARGIN, 0, (LPARAM)(pmargin)) -enum : uint { BCM_GETTEXTMARGIN = BCM_FIRST + 0x0005 } -// #define Button_GetTextMargin(hwnd, pmargin) (BOOL)SNDMSG((hwnd), BCM_GETTEXTMARGIN, 0, (LPARAM)(pmargin)) - -struct tagNMBCHOTITEM { - NMHDR hdr; - DWORD dwFlags; -} -alias tagNMBCHOTITEM NMBCHOTITEM; -alias tagNMBCHOTITEM* LPNMBCHOTITEM; - -enum : uint { BCN_HOTITEMCHANGE = BCN_FIRST + 0x0001 } - -enum : uint { BST_HOT = 0x0200 } - -// #endif - -// #endif // NOBUTTON - -// #ifndef NOSTATIC - -// #ifdef _WIN32 - -const char[] WC_STATICA = "Static"; -const wchar[] WC_STATICW = "Static"; - -// #ifdef UNICODE -// #... -// #else -alias WC_STATICA WC_STATIC; -// #endif - -// #else -// #... -// #endif - -// #endif // NOSTATIC - -// #ifndef NOEDIT - -// #ifdef _WIN32 - -const char[] WC_EDITA = "Edit"; -const wchar[] WC_EDITW = "Edit"; - -// #ifdef UNICODE -// #... -// #else -alias WC_EDITA WC_EDIT; -// #endif - -// #else -// #... -// #endif - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { EM_SETCUEBANNER = ECM_FIRST + 1 } -// #define Edit_SetCueBannerText(hwnd, lpcwText) (BOOL)SNDMSG((hwnd), EM_SETCUEBANNER, 0, (LPARAM)(lpcwText)) -enum : uint { EM_GETCUEBANNER = ECM_FIRST + 2 } -// #define Edit_GetCueBannerText(hwnd, lpwText, cchText) (BOOL)SNDMSG((hwnd), EM_GETCUEBANNER, (WPARAM)(lpwText), (LPARAM)(cchText)) - -struct _tagEDITBALLOONTIP { - DWORD cbStruct; - LPCWSTR pszTitle; - LPCWSTR pszText; - INT ttiIcon; -} -alias _tagEDITBALLOONTIP EDITBALLOONTIP; -alias _tagEDITBALLOONTIP* PEDITBALLOONTIP; - -enum : uint { EM_SHOWBALLOONTIP = ECM_FIRST + 3 } -// #define Edit_ShowBalloonTip(hwnd, peditballoontip) (BOOL)SNDMSG((hwnd), EM_SHOWBALLOONTIP, 0, (LPARAM)(peditballoontip)) -enum : uint { EM_HIDEBALLOONTIP = ECM_FIRST + 4 } -// #define Edit_HideBalloonTip(hwnd) (BOOL)SNDMSG((hwnd), EM_HIDEBALLOONTIP, 0, 0) -// #endif - -// #endif // NOEDIT - -// #ifndef NOLISTBOX - -// #ifdef _WIN32 - -const char[] WC_LISTBOXA = "ListBox"; -const wchar[] WC_LISTBOXW = "ListBox"; - -// #ifdef UNICODE -// #... -// #else -alias WC_LISTBOXA WC_LISTBOX; -// #endif - -// #else -// #... -// #endif - -// #endif // NOLISTBOX - -// #ifndef NOCOMBOBOX - -// #ifdef _WIN32 - -const char[] WC_COMBOBOXA = "ComboBox"; -const wchar[] WC_COMBOBOXW = "ComboBox"; - -// #ifdef UNICODE -// #... -// #else -alias WC_COMBOBOXA WC_COMBOBOX; -// #endif - -// #else -// #... -// #endif - -// #endif // NOCOMBOBOX - -// #if (_WIN32_WINNT >= 0x501) - -enum : uint { CB_SETMINVISIBLE = CBM_FIRST + 1 } -enum : uint { CB_GETMINVISIBLE = CBM_FIRST + 2 } - -// #define ComboBox_SetMinVisible(hwnd, iMinVisible) (BOOL)SNDMSG((hwnd), CB_SETMINVISIBLE, (WPARAM)iMinVisible, 0) - -// #define ComboBox_GetMinVisible(hwnd) (int)SNDMSG((hwnd), CB_GETMINVISIBLE, 0, 0) - -// #endif - -// #ifndef NOSCROLLBAR - -// #ifdef _WIN32 - -const char[] WC_SCROLLBARA = "ScrollBar"; -const wchar[] WC_SCROLLBARW = "ScrollBar"; - -// #ifdef UNICODE -// #... -// #else -alias WC_SCROLLBARA WC_SCROLLBAR; -// #endif - -// #else -// #... -// #endif - -// #endif // NOSCROLLBAR - -// #ifdef _WIN32 -// #if (_WIN32_WINNT >= 0x501) - -enum { INVALID_LINK_INDEX = -1 } -enum : uint { MAX_LINKID_TEXT = 48 } -enum { L_MAX_URL_LENGTH = 2048 + 32 + 4 } - -const wchar[] WC_LINK = "SysLink"; - -enum : uint { LWS_TRANSPARENT = 0x0001 } -enum : uint { LWS_IGNORERETURN = 0x0002 } - -enum : uint { LIF_ITEMINDEX = 0x00000001 } -enum : uint { LIF_STATE = 0x00000002 } -enum : uint { LIF_ITEMID = 0x00000004 } -enum : uint { LIF_URL = 0x00000008 } - -enum : uint { LIS_FOCUSED = 0x00000001 } -enum : uint { LIS_ENABLED = 0x00000002 } -enum : uint { LIS_VISITED = 0x00000004 } - -struct tagLITEM { - UINT mask ; - int iLink ; - UINT state ; - UINT stateMask ; - WCHAR szID[MAX_LINKID_TEXT] ; - WCHAR szUrl[L_MAX_URL_LENGTH] ; -} -alias tagLITEM LITEM; -alias tagLITEM* PLITEM; - -struct tagLHITTESTINFO { - POINT pt ; - LITEM item ; -} -alias tagLHITTESTINFO LHITTESTINFO; -alias tagLHITTESTINFO* PLHITTESTINFO; - -struct tagNMLINK { - NMHDR hdr; - LITEM item ; -} -alias tagNMLINK NMLINK; -alias tagNMLINK* PNMLINK; - -enum : uint { LM_HITTEST = WM_USER+0x300 } -enum : uint { LM_GETIDEALHEIGHT = WM_USER+0x301 } -enum : uint { LM_SETITEM = WM_USER+0x302 } -enum : uint { LM_GETITEM = WM_USER+0x303 } - -// #endif -// #endif // _WIN32 - -// #ifndef NOMUI -extern(Windows) export void InitMUILanguage(LANGID uiLang); - -extern(Windows) export LANGID GetMUILanguage(); -// #endif // NOMUI - -// #endif // _WIN32_IE >= 0x0400 - -// #ifdef _WIN32 - -// #ifndef NOTRACKMOUSEEVENT - -// #ifndef WM_MOUSEHOVER -// #... -// #... -// #endif - -// #ifndef TME_HOVER - -enum : uint { TME_HOVER = 0x00000001 } -enum : uint { TME_LEAVE = 0x00000002 } -// #if (WINVER >= 0x0500) -enum : uint { TME_NONCLIENT = 0x00000010 } -// #endif /* WINVER >= 0x0500 */ -enum : uint { TME_QUERY = 0x40000000 } -enum : uint { TME_CANCEL = 0x80000000 } - -enum : uint { HOVER_DEFAULT = 0xFFFFFFFF } - -struct tagTRACKMOUSEEVENT { - DWORD cbSize; - DWORD dwFlags; - HWND hwndTrack; - DWORD dwHoverTime; -} -alias tagTRACKMOUSEEVENT TRACKMOUSEEVENT; -alias tagTRACKMOUSEEVENT* LPTRACKMOUSEEVENT; - -// #endif // !TME_HOVER - -extern(Windows) export BOOL _TrackMouseEvent( - LPTRACKMOUSEEVENT lpEventTrack); - -// #endif // !NOTRACKMOUSEEVENT - -// #if (_WIN32_IE >= 0x0400) - -// #ifndef NOFLATSBAPIS - -enum : uint { WSB_PROP_CYVSCROLL = 0x00000001 } -enum : uint { WSB_PROP_CXHSCROLL = 0x00000002 } -enum : uint { WSB_PROP_CYHSCROLL = 0x00000004 } -enum : uint { WSB_PROP_CXVSCROLL = 0x00000008 } -enum : uint { WSB_PROP_CXHTHUMB = 0x00000010 } -enum : uint { WSB_PROP_CYVTHUMB = 0x00000020 } -enum : uint { WSB_PROP_VBKGCOLOR = 0x00000040 } -enum : uint { WSB_PROP_HBKGCOLOR = 0x00000080 } -enum : uint { WSB_PROP_VSTYLE = 0x00000100 } -enum : uint { WSB_PROP_HSTYLE = 0x00000200 } -enum : uint { WSB_PROP_WINSTYLE = 0x00000400 } -enum : uint { WSB_PROP_PALETTE = 0x00000800 } -enum : uint { WSB_PROP_MASK = 0x00000FFF } - -enum : uint { FSB_FLAT_MODE = 2 } -enum : uint { FSB_ENCARTA_MODE = 1 } -enum : uint { FSB_REGULAR_MODE = 0 } - -extern(Windows) export BOOL FlatSB_EnableScrollBar(HWND, int, UINT); -extern(Windows) export BOOL FlatSB_ShowScrollBar(HWND, int code, BOOL); - -extern(Windows) export BOOL FlatSB_GetScrollRange(HWND, int code, LPINT, LPINT); -extern(Windows) export BOOL FlatSB_GetScrollInfo(HWND, int code, LPSCROLLINFO); - -extern(Windows) export int FlatSB_GetScrollPos(HWND, int code); - -extern(Windows) export BOOL FlatSB_GetScrollProp(HWND, int propIndex, LPINT); -// #ifdef _WIN64 -// ... -// #else -alias FlatSB_GetScrollProp FlatSB_GetScrollPropPtr; -// #endif - -extern(Windows) export int FlatSB_SetScrollPos(HWND, int code, int pos, BOOL fRedraw); - -extern(Windows) export int FlatSB_SetScrollInfo(HWND, int code, LPSCROLLINFO, BOOL fRedraw); - -extern(Windows) export int FlatSB_SetScrollRange(HWND, int code, int min, int max, BOOL fRedraw); -extern(Windows) export BOOL FlatSB_SetScrollProp(HWND, UINT index, INT_PTR newValue, BOOL); -alias FlatSB_SetScrollProp FlatSB_SetScrollPropPtr; - -extern(Windows) export BOOL InitializeFlatSB(HWND); -extern(Windows) export HRESULT UninitializeFlatSB(HWND); - -// #endif // NOFLATSBAPIS - -// #endif // _WIN32_IE >= 0x0400 - -// #endif /* _WIN32 */ - -// #endif // _WIN32_IE >= 0x0300 - -// #if (_WIN32_WINNT >= 0x501) - -extern(Windows) alias LRESULT function(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData) SUBCLASSPROC; - -extern(Windows) export BOOL SetWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, UINT_PTR uIdSubclass, - DWORD_PTR dwRefData); -extern(Windows) export BOOL GetWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, UINT_PTR uIdSubclass, - DWORD_PTR *pdwRefData); -extern(Windows) export BOOL RemoveWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, - UINT_PTR uIdSubclass); - -extern(Windows) export LRESULT DefSubclassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); -// #endif - -// #if (_WIN32_WINNT >= 0x501) - -extern(Windows) export int DrawShadowText(HDC hdc, LPCWSTR pszText, UINT cch, RECT* prc, DWORD dwFlags, COLORREF crText, COLORREF crShadow, - int ixOffset, int iyOffset); -// #endif - -// #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */ -// #if ISOLATION_AWARE_ENABLED - -// #if !defined(ISOLATION_AWARE_INLINE) -// #if defined(__cplusplus) -// #... -// #else -// #... -// #endif -// #endif - -// ... - -// ... -// #if defined(__IStream_INTERFACE_DEFINED__) -// ... -// #if defined(__IStream_INTERFACE_DEFINED__) && (_WIN32_WINNT >= 0x0501) -// ... -// #endif /* defined(__IStream_INTERFACE_DEFINED__) && (_WIN32_WINNT >= 0x0501) */ -// #endif /* defined(__IStream_INTERFACE_DEFINED__) */ -// ... -// #if !defined(NOTRACKMOUSEEVENT) -// ... -// #endif /* !defined(NOTRACKMOUSEEVENT) */ -// ... -// #if (_WIN32_IE >= 0x560) -// ... -// #endif /* (_WIN32_IE >= 0x560) */ -// ... - -// #if defined(UNICODE) - -// #... -// #... -// #... - -// #else /* UNICODE */ - -// #... -// #... -// #... - -// #endif /* UNICODE */ - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #if defined(__IStream_INTERFACE_DEFINED__) - -// ... - -// ... - -// #if defined(__IStream_INTERFACE_DEFINED__) && (_WIN32_WINNT >= 0x0501) - -// ... - -// ... - -// ... - -// ... - -// #endif /* defined(__IStream_INTERFACE_DEFINED__) && (_WIN32_WINNT >= 0x0501) */ -// #endif /* defined(__IStream_INTERFACE_DEFINED__) */ - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #if !defined(NOTRACKMOUSEEVENT) - -// ... - -// #endif /* !defined(NOTRACKMOUSEEVENT) */ - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... -// #if defined(_WIN64) -// ... -// #else -// ... -// #endif -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #if (_WIN32_IE >= 0x560) - -// ... - -// ... - -// ... - -// #endif /* (_WIN32_IE >= 0x560) */ - -// ... - -// ... - -// ... - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #if defined(FlatSB_GetScrollPropPtr) -// #... -// #endif -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #endif /* ISOLATION_AWARE_ENABLED */ -// #endif /* RC */ - -// #ifdef __cplusplus -// } -// #endif - -// #endif - -// #endif // _INC_COMMCTRL - DELETED src/win32/ansi/commdlg.d Index: src/win32/ansi/commdlg.d ================================================================== --- src/win32/ansi/commdlg.d +++ src/win32/ansi/commdlg.d @@ -1,1131 +0,0 @@ -module win32.ansi.commdlg; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.winuser; -// inline #include -// ---- - -// #ifndef _INC_CDERR -// #define _INC_CDERR - -// #if _MSC_VER > 1000 -// #pragma once -// #endif - -enum : uint { CDERR_DIALOGFAILURE = 0xFFFF } - -enum : uint { CDERR_GENERALCODES = 0x0000 } -enum : uint { CDERR_STRUCTSIZE = 0x0001 } -enum : uint { CDERR_INITIALIZATION = 0x0002 } -enum : uint { CDERR_NOTEMPLATE = 0x0003 } -enum : uint { CDERR_NOHINSTANCE = 0x0004 } -enum : uint { CDERR_LOADSTRFAILURE = 0x0005 } -enum : uint { CDERR_FINDRESFAILURE = 0x0006 } -enum : uint { CDERR_LOADRESFAILURE = 0x0007 } -enum : uint { CDERR_LOCKRESFAILURE = 0x0008 } -enum : uint { CDERR_MEMALLOCFAILURE = 0x0009 } -enum : uint { CDERR_MEMLOCKFAILURE = 0x000A } -enum : uint { CDERR_NOHOOK = 0x000B } -enum : uint { CDERR_REGISTERMSGFAIL = 0x000C } - -enum : uint { PDERR_PRINTERCODES = 0x1000 } -enum : uint { PDERR_SETUPFAILURE = 0x1001 } -enum : uint { PDERR_PARSEFAILURE = 0x1002 } -enum : uint { PDERR_RETDEFFAILURE = 0x1003 } -enum : uint { PDERR_LOADDRVFAILURE = 0x1004 } -enum : uint { PDERR_GETDEVMODEFAIL = 0x1005 } -enum : uint { PDERR_INITFAILURE = 0x1006 } -enum : uint { PDERR_NODEVICES = 0x1007 } -enum : uint { PDERR_NODEFAULTPRN = 0x1008 } -enum : uint { PDERR_DNDMMISMATCH = 0x1009 } -enum : uint { PDERR_CREATEICFAILURE = 0x100A } -enum : uint { PDERR_PRINTERNOTFOUND = 0x100B } -enum : uint { PDERR_DEFAULTDIFFERENT = 0x100C } - -enum : uint { CFERR_CHOOSEFONTCODES = 0x2000 } -enum : uint { CFERR_NOFONTS = 0x2001 } -enum : uint { CFERR_MAXLESSTHANMIN = 0x2002 } - -enum : uint { FNERR_FILENAMECODES = 0x3000 } -enum : uint { FNERR_SUBCLASSFAILURE = 0x3001 } -enum : uint { FNERR_INVALIDFILENAME = 0x3002 } -enum : uint { FNERR_BUFFERTOOSMALL = 0x3003 } - -enum : uint { FRERR_FINDREPLACECODES = 0x4000 } -enum : uint { FRERR_BUFFERLENGTHZERO = 0x4001 } - -enum : uint { CCERR_CHOOSECOLORCODES = 0x5000 } - -// #endif /* !_INC_CDERR */ -// ---- - -// #ifndef _INC_COMMDLG -// #define _INC_COMMDLG - -// #if(WINVER >= 0x0500) - -// #ifdef DEFINE_GUID - -// ... - -// ... - -// #endif - -// #endif /* WINVER >= 0x0500 */ - -// #ifndef GUID_DEFS_ONLY - -// #include - -// #if !defined(_WIN64) -align(1): -// #endif - -// #ifdef __cplusplus -// extern "C" { /* Assume C declarations for C++ */ -// #endif /* __cplusplus */ - -// #ifndef WINCOMMDLGAPI -// #if !defined(_COMDLG32_) -// #define WINCOMMDLGAPI DECLSPEC_IMPORT -// #else -// #... -// #endif -// #endif // WINCOMMDLGAPI - -// #if(WINVER >= 0x0400) -// #ifndef SNDMSG -// #ifdef __cplusplus -// #ifndef _MAC -// #define SNDMSG ::SendMessage -// #else -// #... -// #endif -// #else /* __cplusplus */ -// #ifndef _MAC -// #... -// #else -// #... -// #endif -// #endif /* __cplusplus */ -// #endif // ifndef SNDMSG -// #endif /* WINVER >= 0x0400 */ - -// #ifdef _MAC -// ... -// #endif - -extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPOFNHOOKPROC; - -// #ifndef CDSIZEOF_STRUCT -// #define CDSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member)) -// #endif - -// #ifndef DUMMYUNIONNAME -// #ifdef NONAMELESSUNION -// #... -// #endif // NONAMELESSUNION -// #endif // DUMMYUNIONNAME - -struct tagOFN_NT4A { - DWORD lStructSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCSTR lpstrFilter; - LPSTR lpstrCustomFilter; - DWORD nMaxCustFilter; - DWORD nFilterIndex; - LPSTR lpstrFile; - DWORD nMaxFile; - LPSTR lpstrFileTitle; - DWORD nMaxFileTitle; - LPCSTR lpstrInitialDir; - LPCSTR lpstrTitle; - DWORD Flags; - WORD nFileOffset; - WORD nFileExtension; - LPCSTR lpstrDefExt; - LPARAM lCustData; - LPOFNHOOKPROC lpfnHook; - LPCSTR lpTemplateName; -} -alias tagOFN_NT4A OPENFILENAME_NT4A; -alias tagOFN_NT4A* LPOPENFILENAME_NT4A; - -struct tagOFN_NT4W { - DWORD lStructSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCWSTR lpstrFilter; - LPWSTR lpstrCustomFilter; - DWORD nMaxCustFilter; - DWORD nFilterIndex; - LPWSTR lpstrFile; - DWORD nMaxFile; - LPWSTR lpstrFileTitle; - DWORD nMaxFileTitle; - LPCWSTR lpstrInitialDir; - LPCWSTR lpstrTitle; - DWORD Flags; - WORD nFileOffset; - WORD nFileExtension; - LPCWSTR lpstrDefExt; - LPARAM lCustData; - LPOFNHOOKPROC lpfnHook; - LPCWSTR lpTemplateName; -} -alias tagOFN_NT4W OPENFILENAME_NT4W; -alias tagOFN_NT4W* LPOPENFILENAME_NT4W; - -// #ifdef UNICODE -// ... -// #else -alias OPENFILENAME_NT4A OPENFILENAME_NT4; -alias LPOPENFILENAME_NT4A LPOPENFILENAME_NT4; -// #endif // UNICODE - -struct tagOFNA { - DWORD lStructSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCSTR lpstrFilter; - LPSTR lpstrCustomFilter; - DWORD nMaxCustFilter; - DWORD nFilterIndex; - LPSTR lpstrFile; - DWORD nMaxFile; - LPSTR lpstrFileTitle; - DWORD nMaxFileTitle; - LPCSTR lpstrInitialDir; - LPCSTR lpstrTitle; - DWORD Flags; - WORD nFileOffset; - WORD nFileExtension; - LPCSTR lpstrDefExt; - LPARAM lCustData; - LPOFNHOOKPROC lpfnHook; - LPCSTR lpTemplateName; -// #ifdef _MAC -// ... -// #endif -// #if (_WIN32_WINNT >= 0x0500) - void * pvReserved; - DWORD dwReserved; - DWORD FlagsEx; -// #endif // (_WIN32_WINNT >= 0x0500) -} -alias tagOFNA OPENFILENAMEA; -alias tagOFNA* LPOPENFILENAMEA; - -struct tagOFNW { - DWORD lStructSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCWSTR lpstrFilter; - LPWSTR lpstrCustomFilter; - DWORD nMaxCustFilter; - DWORD nFilterIndex; - LPWSTR lpstrFile; - DWORD nMaxFile; - LPWSTR lpstrFileTitle; - DWORD nMaxFileTitle; - LPCWSTR lpstrInitialDir; - LPCWSTR lpstrTitle; - DWORD Flags; - WORD nFileOffset; - WORD nFileExtension; - LPCWSTR lpstrDefExt; - LPARAM lCustData; - LPOFNHOOKPROC lpfnHook; - LPCWSTR lpTemplateName; -// #ifdef _MAC -// ... -// #endif -// #if (_WIN32_WINNT >= 0x0500) - void * pvReserved; - DWORD dwReserved; - DWORD FlagsEx; -// #endif // (_WIN32_WINNT >= 0x0500) -} -alias tagOFNW OPENFILENAMEW; -alias tagOFNW* LPOPENFILENAMEW; - -// #ifdef UNICODE -// ... -// #else -alias OPENFILENAMEA OPENFILENAME; -alias LPOPENFILENAMEA LPOPENFILENAME; -// #endif // UNICODE - -// #if (_WIN32_WINNT >= 0x0500) -// #define OPENFILENAME_SIZE_VERSION_400A CDSIZEOF_STRUCT(OPENFILENAMEA,lpTemplateName) -// #define OPENFILENAME_SIZE_VERSION_400W CDSIZEOF_STRUCT(OPENFILENAMEW,lpTemplateName) -// #ifdef UNICODE -// #... -// #else -// #define OPENFILENAME_SIZE_VERSION_400 OPENFILENAME_SIZE_VERSION_400A -// #endif // !UNICODE -// #endif // (_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL GetOpenFileNameA(LPOPENFILENAMEA); -extern(Windows) export BOOL GetOpenFileNameW(LPOPENFILENAMEW); -// #ifdef UNICODE -// #... -// #else -alias GetOpenFileNameA GetOpenFileName; -// #endif // !UNICODE -extern(Windows) export BOOL GetSaveFileNameA(LPOPENFILENAMEA); -extern(Windows) export BOOL GetSaveFileNameW(LPOPENFILENAMEW); -// #ifdef UNICODE -// #... -// #else -alias GetSaveFileNameA GetSaveFileName; -// #endif // !UNICODE - -extern(Windows) export short GetFileTitleA(LPCSTR, LPSTR, WORD); -extern(Windows) export short GetFileTitleW(LPCWSTR, LPWSTR, WORD); -// #ifdef UNICODE -// #... -// #else -alias GetFileTitleA GetFileTitle; -// #endif // !UNICODE - -enum : uint { OFN_READONLY = 0x00000001 } -enum : uint { OFN_OVERWRITEPROMPT = 0x00000002 } -enum : uint { OFN_HIDEREADONLY = 0x00000004 } -enum : uint { OFN_NOCHANGEDIR = 0x00000008 } -enum : uint { OFN_SHOWHELP = 0x00000010 } -enum : uint { OFN_ENABLEHOOK = 0x00000020 } -enum : uint { OFN_ENABLETEMPLATE = 0x00000040 } -enum : uint { OFN_ENABLETEMPLATEHANDLE = 0x00000080 } -enum : uint { OFN_NOVALIDATE = 0x00000100 } -enum : uint { OFN_ALLOWMULTISELECT = 0x00000200 } -enum : uint { OFN_EXTENSIONDIFFERENT = 0x00000400 } -enum : uint { OFN_PATHMUSTEXIST = 0x00000800 } -enum : uint { OFN_FILEMUSTEXIST = 0x00001000 } -enum : uint { OFN_CREATEPROMPT = 0x00002000 } -enum : uint { OFN_SHAREAWARE = 0x00004000 } -enum : uint { OFN_NOREADONLYRETURN = 0x00008000 } -enum : uint { OFN_NOTESTFILECREATE = 0x00010000 } -enum : uint { OFN_NONETWORKBUTTON = 0x00020000 } -enum : uint { OFN_NOLONGNAMES = 0x00040000 } -// #if(WINVER >= 0x0400) -enum : uint { OFN_EXPLORER = 0x00080000 } -enum : uint { OFN_NODEREFERENCELINKS = 0x00100000 } -enum : uint { OFN_LONGNAMES = 0x00200000 } -enum : uint { OFN_ENABLEINCLUDENOTIFY = 0x00400000 } -enum : uint { OFN_ENABLESIZING = 0x00800000 } -// #endif /* WINVER >= 0x0400 */ -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { OFN_DONTADDTORECENT = 0x02000000 } -enum : uint { OFN_FORCESHOWHIDDEN = 0x10000000 } -// #endif // (_WIN32_WINNT >= 0x0500) - -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { OFN_EX_NOPLACESBAR = 0x00000001 } -// #endif // (_WIN32_WINNT >= 0x0500) - -enum : uint { OFN_SHAREFALLTHROUGH = 2 } -enum : uint { OFN_SHARENOWARN = 1 } -enum : uint { OFN_SHAREWARN = 0 } - -extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPCCHOOKPROC; - -// #if(WINVER >= 0x0400) - -struct _OFNOTIFYA { - NMHDR hdr; - LPOPENFILENAMEA lpOFN; - LPSTR pszFile; -} -alias _OFNOTIFYA OFNOTIFYA; -alias _OFNOTIFYA* LPOFNOTIFYA; - -struct _OFNOTIFYW { - NMHDR hdr; - LPOPENFILENAMEW lpOFN; - LPWSTR pszFile; -} -alias _OFNOTIFYW OFNOTIFYW; -alias _OFNOTIFYW* LPOFNOTIFYW; - -// #ifdef UNICODE -// ... -// #else -alias OFNOTIFYA OFNOTIFY; -alias LPOFNOTIFYA LPOFNOTIFY; -// #endif // UNICODE - -struct _OFNOTIFYEXA { - NMHDR hdr; - LPOPENFILENAMEA lpOFN; - LPVOID psf; - LPVOID pidl; -} -alias _OFNOTIFYEXA OFNOTIFYEXA; -alias _OFNOTIFYEXA* LPOFNOTIFYEXA; - -struct _OFNOTIFYEXW { - NMHDR hdr; - LPOPENFILENAMEW lpOFN; - LPVOID psf; - LPVOID pidl; -} -alias _OFNOTIFYEXW OFNOTIFYEXW; -alias _OFNOTIFYEXW* LPOFNOTIFYEXW; - -// #ifdef UNICODE -// ... -// #else -alias OFNOTIFYEXA OFNOTIFYEX; -alias LPOFNOTIFYEXA LPOFNOTIFYEX; -// #endif // UNICODE - -enum : uint { CDN_FIRST = 0U-601U } -enum : uint { CDN_LAST = 0U-699U } - -enum : uint { CDN_INITDONE = CDN_FIRST - 0x0000 } -enum : uint { CDN_SELCHANGE = CDN_FIRST - 0x0001 } -enum : uint { CDN_FOLDERCHANGE = CDN_FIRST - 0x0002 } -enum : uint { CDN_SHAREVIOLATION = CDN_FIRST - 0x0003 } -enum : uint { CDN_HELP = CDN_FIRST - 0x0004 } -enum : uint { CDN_FILEOK = CDN_FIRST - 0x0005 } -enum : uint { CDN_TYPECHANGE = CDN_FIRST - 0x0006 } -enum : uint { CDN_INCLUDEITEM = CDN_FIRST - 0x0007 } - -enum : uint { CDM_FIRST = WM_USER + 100 } -enum : uint { CDM_LAST = WM_USER + 200 } - -enum : uint { CDM_GETSPEC = CDM_FIRST + 0x0000 } -// #define CommDlg_OpenSave_GetSpecA(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETSPEC, (WPARAM)_cbmax, (LPARAM)(LPSTR)_psz) -// #define CommDlg_OpenSave_GetSpecW(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETSPEC, (WPARAM)_cbmax, (LPARAM)(LPWSTR)_psz) -// #ifdef UNICODE -// #... -// #else -// #define CommDlg_OpenSave_GetSpec CommDlg_OpenSave_GetSpecA -// #endif // !UNICODE - -enum : uint { CDM_GETFILEPATH = CDM_FIRST + 0x0001 } -// #define CommDlg_OpenSave_GetFilePathA(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETFILEPATH, (WPARAM)_cbmax, (LPARAM)(LPSTR)_psz) -// #define CommDlg_OpenSave_GetFilePathW(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETFILEPATH, (WPARAM)_cbmax, (LPARAM)(LPWSTR)_psz) -// #ifdef UNICODE -// #... -// #else -// #define CommDlg_OpenSave_GetFilePath CommDlg_OpenSave_GetFilePathA -// #endif // !UNICODE - -enum : uint { CDM_GETFOLDERPATH = CDM_FIRST + 0x0002 } -// #define CommDlg_OpenSave_GetFolderPathA(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETFOLDERPATH, (WPARAM)_cbmax, (LPARAM)(LPSTR)_psz) -// #define CommDlg_OpenSave_GetFolderPathW(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETFOLDERPATH, (WPARAM)_cbmax, (LPARAM)(LPWSTR)_psz) -// #ifdef UNICODE -// #... -// #else -// #define CommDlg_OpenSave_GetFolderPath CommDlg_OpenSave_GetFolderPathA -// #endif // !UNICODE - -enum : uint { CDM_GETFOLDERIDLIST = CDM_FIRST + 0x0003 } -// #define CommDlg_OpenSave_GetFolderIDList(_hdlg, _pidl, _cbmax) (int)SNDMSG(_hdlg, CDM_GETFOLDERIDLIST, (WPARAM)_cbmax, (LPARAM)(LPVOID)_pidl) - -enum : uint { CDM_SETCONTROLTEXT = CDM_FIRST + 0x0004 } -// #define CommDlg_OpenSave_SetControlText(_hdlg, _id, _text) (void)SNDMSG(_hdlg, CDM_SETCONTROLTEXT, (WPARAM)_id, (LPARAM)(LPSTR)_text) - -enum : uint { CDM_HIDECONTROL = CDM_FIRST + 0x0005 } -// #define CommDlg_OpenSave_HideControl(_hdlg, _id) (void)SNDMSG(_hdlg, CDM_HIDECONTROL, (WPARAM)_id, 0) - -enum : uint { CDM_SETDEFEXT = CDM_FIRST + 0x0006 } -// #define CommDlg_OpenSave_SetDefExt(_hdlg, _pszext) (void)SNDMSG(_hdlg, CDM_SETDEFEXT, 0, (LPARAM)(LPSTR)_pszext) -// #endif /* WINVER >= 0x0400 */ - -// #ifndef _MAC -struct tagCHOOSECOLORA { - DWORD lStructSize; - HWND hwndOwner; - HWND hInstance; - COLORREF rgbResult; - COLORREF * lpCustColors; - DWORD Flags; - LPARAM lCustData; - LPCCHOOKPROC lpfnHook; - LPCSTR lpTemplateName; -} -alias tagCHOOSECOLORA CHOOSECOLORA; -alias tagCHOOSECOLORA* LPCHOOSECOLORA; - -struct tagCHOOSECOLORW { - DWORD lStructSize; - HWND hwndOwner; - HWND hInstance; - COLORREF rgbResult; - COLORREF * lpCustColors; - DWORD Flags; - LPARAM lCustData; - LPCCHOOKPROC lpfnHook; - LPCWSTR lpTemplateName; -} -alias tagCHOOSECOLORW CHOOSECOLORW; -alias tagCHOOSECOLORW* LPCHOOSECOLORW; - -// #ifdef UNICODE -// ... -// #else -alias CHOOSECOLORA CHOOSECOLOR; -alias LPCHOOSECOLORA LPCHOOSECOLOR; -// #endif // UNICODE -// #else -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE -// #endif //_MAC - -extern(Windows) export BOOL ChooseColorA(LPCHOOSECOLORA); -extern(Windows) export BOOL ChooseColorW(LPCHOOSECOLORW); -// #ifdef UNICODE -// #... -// #else -alias ChooseColorA ChooseColor; -// #endif // !UNICODE - -enum : uint { CC_RGBINIT = 0x00000001 } -enum : uint { CC_FULLOPEN = 0x00000002 } -enum : uint { CC_PREVENTFULLOPEN = 0x00000004 } -enum : uint { CC_SHOWHELP = 0x00000008 } -enum : uint { CC_ENABLEHOOK = 0x00000010 } -enum : uint { CC_ENABLETEMPLATE = 0x00000020 } -enum : uint { CC_ENABLETEMPLATEHANDLE = 0x00000040 } -// #if(WINVER >= 0x0400) -enum : uint { CC_SOLIDCOLOR = 0x00000080 } -enum : uint { CC_ANYCOLOR = 0x00000100 } -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPFRHOOKPROC; - -struct tagFINDREPLACEA { - DWORD lStructSize; - HWND hwndOwner; - HINSTANCE hInstance; - - DWORD Flags; - LPSTR lpstrFindWhat; - LPSTR lpstrReplaceWith; - WORD wFindWhatLen; - WORD wReplaceWithLen; - LPARAM lCustData; - LPFRHOOKPROC lpfnHook; - LPCSTR lpTemplateName; -} -alias tagFINDREPLACEA FINDREPLACEA; -alias tagFINDREPLACEA* LPFINDREPLACEA; - -struct tagFINDREPLACEW { - DWORD lStructSize; - HWND hwndOwner; - HINSTANCE hInstance; - - DWORD Flags; - LPWSTR lpstrFindWhat; - LPWSTR lpstrReplaceWith; - WORD wFindWhatLen; - WORD wReplaceWithLen; - LPARAM lCustData; - LPFRHOOKPROC lpfnHook; - LPCWSTR lpTemplateName; -} -alias tagFINDREPLACEW FINDREPLACEW; -alias tagFINDREPLACEW* LPFINDREPLACEW; - -// #ifdef UNICODE -// ... -// #else -alias FINDREPLACEA FINDREPLACE; -alias LPFINDREPLACEA LPFINDREPLACE; -// #endif // UNICODE - -enum : uint { FR_DOWN = 0x00000001 } -enum : uint { FR_WHOLEWORD = 0x00000002 } -enum : uint { FR_MATCHCASE = 0x00000004 } -enum : uint { FR_FINDNEXT = 0x00000008 } -enum : uint { FR_REPLACE = 0x00000010 } -enum : uint { FR_REPLACEALL = 0x00000020 } -enum : uint { FR_DIALOGTERM = 0x00000040 } -enum : uint { FR_SHOWHELP = 0x00000080 } -enum : uint { FR_ENABLEHOOK = 0x00000100 } -enum : uint { FR_ENABLETEMPLATE = 0x00000200 } -enum : uint { FR_NOUPDOWN = 0x00000400 } -enum : uint { FR_NOMATCHCASE = 0x00000800 } -enum : uint { FR_NOWHOLEWORD = 0x00001000 } -enum : uint { FR_ENABLETEMPLATEHANDLE = 0x00002000 } -enum : uint { FR_HIDEUPDOWN = 0x00004000 } -enum : uint { FR_HIDEMATCHCASE = 0x00008000 } -enum : uint { FR_HIDEWHOLEWORD = 0x00010000 } -enum : uint { FR_RAW = 0x00020000 } -enum : uint { FR_MATCHDIAC = 0x20000000 } -enum : uint { FR_MATCHKASHIDA = 0x40000000 } -enum : uint { FR_MATCHALEFHAMZA = 0x80000000 } - -extern(Windows) export HWND FindTextA(LPFINDREPLACEA); -extern(Windows) export HWND FindTextW(LPFINDREPLACEW); -// #ifdef UNICODE -// #... -// #else -alias FindTextA FindText; -// #endif // !UNICODE -// #ifndef _MAC -extern(Windows) export HWND ReplaceTextA(LPFINDREPLACEA); -extern(Windows) export HWND ReplaceTextW(LPFINDREPLACEW); -// #ifdef UNICODE -// #... -// #else -alias ReplaceTextA ReplaceText; -// #endif // !UNICODE -// #else -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE -// #endif - -extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPCFHOOKPROC; - -struct tagCHOOSEFONTA { - DWORD lStructSize; - HWND hwndOwner; - HDC hDC; - LPLOGFONTA lpLogFont; - INT iPointSize; - DWORD Flags; - COLORREF rgbColors; - LPARAM lCustData; - LPCFHOOKPROC lpfnHook; - LPCSTR lpTemplateName; - HINSTANCE hInstance; - - LPSTR lpszStyle; - - WORD nFontType; - - WORD ___MISSING_ALIGNMENT__; - INT nSizeMin; - INT nSizeMax; - -} -alias tagCHOOSEFONTA CHOOSEFONTA; -alias tagCHOOSEFONTA* LPCHOOSEFONTA; - -struct tagCHOOSEFONTW { - DWORD lStructSize; - HWND hwndOwner; - HDC hDC; - LPLOGFONTW lpLogFont; - INT iPointSize; - DWORD Flags; - COLORREF rgbColors; - LPARAM lCustData; - LPCFHOOKPROC lpfnHook; - LPCWSTR lpTemplateName; - HINSTANCE hInstance; - - LPWSTR lpszStyle; - - WORD nFontType; - - WORD ___MISSING_ALIGNMENT__; - INT nSizeMin; - INT nSizeMax; - -} -alias tagCHOOSEFONTW CHOOSEFONTW; -alias tagCHOOSEFONTW* LPCHOOSEFONTW; - -// #ifdef UNICODE -// ... -// #else -alias CHOOSEFONTA CHOOSEFONT; -alias LPCHOOSEFONTA LPCHOOSEFONT; -// #endif // UNICODE - -extern(Windows) export BOOL ChooseFontA(LPCHOOSEFONTA); -extern(Windows) export BOOL ChooseFontW(LPCHOOSEFONTW); -// #ifdef UNICODE -// #... -// #else -alias ChooseFontA ChooseFont; -// #endif // !UNICODE - -enum : uint { CF_SCREENFONTS = 0x00000001 } -enum : uint { CF_PRINTERFONTS = 0x00000002 } -enum : uint { CF_BOTH = CF_SCREENFONTS | CF_PRINTERFONTS } -enum : uint { CF_SHOWHELP = 0x00000004 } -enum : uint { CF_ENABLEHOOK = 0x00000008 } -enum : uint { CF_ENABLETEMPLATE = 0x00000010 } -enum : uint { CF_ENABLETEMPLATEHANDLE = 0x00000020 } -enum : uint { CF_INITTOLOGFONTSTRUCT = 0x00000040 } -enum : uint { CF_USESTYLE = 0x00000080 } -enum : uint { CF_EFFECTS = 0x00000100 } -enum : uint { CF_APPLY = 0x00000200 } -enum : uint { CF_ANSIONLY = 0x00000400 } -// #if(WINVER >= 0x0400) -alias CF_ANSIONLY CF_SCRIPTSONLY; -// #endif /* WINVER >= 0x0400 */ -enum : uint { CF_NOVECTORFONTS = 0x00000800 } -alias CF_NOVECTORFONTS CF_NOOEMFONTS; -enum : uint { CF_NOSIMULATIONS = 0x00001000 } -enum : uint { CF_LIMITSIZE = 0x00002000 } -enum : uint { CF_FIXEDPITCHONLY = 0x00004000 } -enum : uint { CF_WYSIWYG = 0x00008000 } -enum : uint { CF_FORCEFONTEXIST = 0x00010000 } -enum : uint { CF_SCALABLEONLY = 0x00020000 } -enum : uint { CF_TTONLY = 0x00040000 } -enum : uint { CF_NOFACESEL = 0x00080000 } -enum : uint { CF_NOSTYLESEL = 0x00100000 } -enum : uint { CF_NOSIZESEL = 0x00200000 } -// #if(WINVER >= 0x0400) -enum : uint { CF_SELECTSCRIPT = 0x00400000 } -enum : uint { CF_NOSCRIPTSEL = 0x00800000 } -enum : uint { CF_NOVERTFONTS = 0x01000000 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { SIMULATED_FONTTYPE = 0x8000 } -enum : uint { PRINTER_FONTTYPE = 0x4000 } -enum : uint { SCREEN_FONTTYPE = 0x2000 } -enum : uint { BOLD_FONTTYPE = 0x0100 } -enum : uint { ITALIC_FONTTYPE = 0x0200 } -enum : uint { REGULAR_FONTTYPE = 0x0400 } - -// #ifdef WINNT -// #... -// #... -// #... -// #endif - -enum : uint { WM_CHOOSEFONT_GETLOGFONT = WM_USER + 1 } -enum : uint { WM_CHOOSEFONT_SETLOGFONT = WM_USER + 101 } -enum : uint { WM_CHOOSEFONT_SETFLAGS = WM_USER + 102 } - -const char[] LBSELCHSTRINGA = "commdlg_LBSelChangedNotify"; -const char[] SHAREVISTRINGA = "commdlg_ShareViolation"; -const char[] FILEOKSTRINGA = "commdlg_FileNameOK"; -const char[] COLOROKSTRINGA = "commdlg_ColorOK"; -const char[] SETRGBSTRINGA = "commdlg_SetRGBColor"; -const char[] HELPMSGSTRINGA = "commdlg_help"; -const char[] FINDMSGSTRINGA = "commdlg_FindReplace"; - -const wchar[] LBSELCHSTRINGW = "commdlg_LBSelChangedNotify"; -const wchar[] SHAREVISTRINGW = "commdlg_ShareViolation"; -const wchar[] FILEOKSTRINGW = "commdlg_FileNameOK"; -const wchar[] COLOROKSTRINGW = "commdlg_ColorOK"; -const wchar[] SETRGBSTRINGW = "commdlg_SetRGBColor"; -const wchar[] HELPMSGSTRINGW = "commdlg_help"; -const wchar[] FINDMSGSTRINGW = "commdlg_FindReplace"; - -// #ifdef UNICODE -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #else -alias LBSELCHSTRINGA LBSELCHSTRING; -alias SHAREVISTRINGA SHAREVISTRING; -alias FILEOKSTRINGA FILEOKSTRING; -alias COLOROKSTRINGA COLOROKSTRING; -alias SETRGBSTRINGA SETRGBSTRING; -alias HELPMSGSTRINGA HELPMSGSTRING; -alias FINDMSGSTRINGA FINDMSGSTRING; -// #endif - -enum { CD_LBSELNOITEMS = -1 } -enum : uint { CD_LBSELCHANGE = 0 } -enum : uint { CD_LBSELSUB = 1 } -enum : uint { CD_LBSELADD = 2 } - -extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPPRINTHOOKPROC; -extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPSETUPHOOKPROC; - -struct tagPDA { - DWORD lStructSize; - HWND hwndOwner; - HGLOBAL hDevMode; - HGLOBAL hDevNames; - HDC hDC; - DWORD Flags; - WORD nFromPage; - WORD nToPage; - WORD nMinPage; - WORD nMaxPage; - WORD nCopies; - HINSTANCE hInstance; - LPARAM lCustData; - LPPRINTHOOKPROC lpfnPrintHook; - LPSETUPHOOKPROC lpfnSetupHook; - LPCSTR lpPrintTemplateName; - LPCSTR lpSetupTemplateName; - HGLOBAL hPrintTemplate; - HGLOBAL hSetupTemplate; -} -alias tagPDA PRINTDLGA; -alias tagPDA* LPPRINTDLGA; - -struct tagPDW { - DWORD lStructSize; - HWND hwndOwner; - HGLOBAL hDevMode; - HGLOBAL hDevNames; - HDC hDC; - DWORD Flags; - WORD nFromPage; - WORD nToPage; - WORD nMinPage; - WORD nMaxPage; - WORD nCopies; - HINSTANCE hInstance; - LPARAM lCustData; - LPPRINTHOOKPROC lpfnPrintHook; - LPSETUPHOOKPROC lpfnSetupHook; - LPCWSTR lpPrintTemplateName; - LPCWSTR lpSetupTemplateName; - HGLOBAL hPrintTemplate; - HGLOBAL hSetupTemplate; -} -alias tagPDW PRINTDLGW; -alias tagPDW* LPPRINTDLGW; - -// #ifdef UNICODE -// ... -// #else -alias PRINTDLGA PRINTDLG; -alias LPPRINTDLGA LPPRINTDLG; -// #endif // UNICODE - -extern(Windows) export BOOL PrintDlgA(LPPRINTDLGA); -extern(Windows) export BOOL PrintDlgW(LPPRINTDLGW); -// #ifdef UNICODE -// #... -// #else -alias PrintDlgA PrintDlg; -// #endif // !UNICODE - -// #if(WINVER >= 0x0500) - -// #ifdef STDMETHOD - -// #... -// #... - -// ... - -// ... - -// #... -// #... - -// ... - -// ... - -// ... - -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #endif - -// #endif /* WINVER >= 0x0500 */ - -enum : uint { PD_ALLPAGES = 0x00000000 } -enum : uint { PD_SELECTION = 0x00000001 } -enum : uint { PD_PAGENUMS = 0x00000002 } -enum : uint { PD_NOSELECTION = 0x00000004 } -enum : uint { PD_NOPAGENUMS = 0x00000008 } -enum : uint { PD_COLLATE = 0x00000010 } -enum : uint { PD_PRINTTOFILE = 0x00000020 } -enum : uint { PD_PRINTSETUP = 0x00000040 } -enum : uint { PD_NOWARNING = 0x00000080 } -enum : uint { PD_RETURNDC = 0x00000100 } -enum : uint { PD_RETURNIC = 0x00000200 } -enum : uint { PD_RETURNDEFAULT = 0x00000400 } -enum : uint { PD_SHOWHELP = 0x00000800 } -enum : uint { PD_ENABLEPRINTHOOK = 0x00001000 } -enum : uint { PD_ENABLESETUPHOOK = 0x00002000 } -enum : uint { PD_ENABLEPRINTTEMPLATE = 0x00004000 } -enum : uint { PD_ENABLESETUPTEMPLATE = 0x00008000 } -enum : uint { PD_ENABLEPRINTTEMPLATEHANDLE = 0x00010000 } -enum : uint { PD_ENABLESETUPTEMPLATEHANDLE = 0x00020000 } -enum : uint { PD_USEDEVMODECOPIES = 0x00040000 } -enum : uint { PD_USEDEVMODECOPIESANDCOLLATE = 0x00040000 } -enum : uint { PD_DISABLEPRINTTOFILE = 0x00080000 } -enum : uint { PD_HIDEPRINTTOFILE = 0x00100000 } -enum : uint { PD_NONETWORKBUTTON = 0x00200000 } -// #if(WINVER >= 0x0500) -enum : uint { PD_CURRENTPAGE = 0x00400000 } -enum : uint { PD_NOCURRENTPAGE = 0x00800000 } -enum : uint { PD_EXCLUSIONFLAGS = 0x01000000 } -enum : uint { PD_USELARGETEMPLATE = 0x10000000 } -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0500) - -enum : uint { PD_EXCL_COPIESANDCOLLATE = DM_COPIES | DM_COLLATE } - -enum : uint { START_PAGE_GENERAL = 0xffffffff } - -enum : uint { PD_RESULT_CANCEL = 0 } -enum : uint { PD_RESULT_PRINT = 1 } -enum : uint { PD_RESULT_APPLY = 2 } - -// #endif /* WINVER >= 0x0500 */ - -struct tagDEVNAMES { - WORD wDriverOffset; - WORD wDeviceOffset; - WORD wOutputOffset; - WORD wDefault; -} -alias tagDEVNAMES DEVNAMES; -alias tagDEVNAMES* LPDEVNAMES; - -enum : uint { DN_DEFAULTPRN = 0x0001 } - -extern(Windows) export DWORD CommDlgExtendedError(); - -// #if(WINVER >= 0x0400) -enum : uint { WM_PSD_PAGESETUPDLG = WM_USER } -enum : uint { WM_PSD_FULLPAGERECT = WM_USER+1 } -enum : uint { WM_PSD_MINMARGINRECT = WM_USER+2 } -enum : uint { WM_PSD_MARGINRECT = WM_USER+3 } -enum : uint { WM_PSD_GREEKTEXTRECT = WM_USER+4 } -enum : uint { WM_PSD_ENVSTAMPRECT = WM_USER+5 } -enum : uint { WM_PSD_YAFULLPAGERECT = WM_USER+6 } - -extern(Windows) alias UINT_PTR function( HWND, UINT, WPARAM, LPARAM ) LPPAGEPAINTHOOK; -extern(Windows) alias UINT_PTR function( HWND, UINT, WPARAM, LPARAM ) LPPAGESETUPHOOK; - -struct tagPSDA { - DWORD lStructSize; - HWND hwndOwner; - HGLOBAL hDevMode; - HGLOBAL hDevNames; - DWORD Flags; - POINT ptPaperSize; - RECT rtMinMargin; - RECT rtMargin; - HINSTANCE hInstance; - LPARAM lCustData; - LPPAGESETUPHOOK lpfnPageSetupHook; - LPPAGEPAINTHOOK lpfnPagePaintHook; - LPCSTR lpPageSetupTemplateName; - HGLOBAL hPageSetupTemplate; -} -alias tagPSDA PAGESETUPDLGA; -alias tagPSDA* LPPAGESETUPDLGA; - -struct tagPSDW { - DWORD lStructSize; - HWND hwndOwner; - HGLOBAL hDevMode; - HGLOBAL hDevNames; - DWORD Flags; - POINT ptPaperSize; - RECT rtMinMargin; - RECT rtMargin; - HINSTANCE hInstance; - LPARAM lCustData; - LPPAGESETUPHOOK lpfnPageSetupHook; - LPPAGEPAINTHOOK lpfnPagePaintHook; - LPCWSTR lpPageSetupTemplateName; - HGLOBAL hPageSetupTemplate; -} -alias tagPSDW PAGESETUPDLGW; -alias tagPSDW* LPPAGESETUPDLGW; - -// #ifdef UNICODE -// ... -// #else -alias PAGESETUPDLGA PAGESETUPDLG; -alias LPPAGESETUPDLGA LPPAGESETUPDLG; -// #endif // UNICODE - -extern(Windows) export BOOL PageSetupDlgA( LPPAGESETUPDLGA ); -extern(Windows) export BOOL PageSetupDlgW( LPPAGESETUPDLGW ); -// #ifdef UNICODE -// #... -// #else -alias PageSetupDlgA PageSetupDlg; -// #endif // !UNICODE - -enum : uint { PSD_DEFAULTMINMARGINS = 0x00000000 } -enum : uint { PSD_INWININIINTLMEASURE = 0x00000000 } - -enum : uint { PSD_MINMARGINS = 0x00000001 } -enum : uint { PSD_MARGINS = 0x00000002 } -enum : uint { PSD_INTHOUSANDTHSOFINCHES = 0x00000004 } -enum : uint { PSD_INHUNDREDTHSOFMILLIMETERS = 0x00000008 } -enum : uint { PSD_DISABLEMARGINS = 0x00000010 } -enum : uint { PSD_DISABLEPRINTER = 0x00000020 } -enum : uint { PSD_NOWARNING = 0x00000080 } -enum : uint { PSD_DISABLEORIENTATION = 0x00000100 } -enum : uint { PSD_RETURNDEFAULT = 0x00000400 } -enum : uint { PSD_DISABLEPAPER = 0x00000200 } -enum : uint { PSD_SHOWHELP = 0x00000800 } -enum : uint { PSD_ENABLEPAGESETUPHOOK = 0x00002000 } -enum : uint { PSD_ENABLEPAGESETUPTEMPLATE = 0x00008000 } -enum : uint { PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 0x00020000 } -enum : uint { PSD_ENABLEPAGEPAINTHOOK = 0x00040000 } -enum : uint { PSD_DISABLEPAGEPAINTING = 0x00080000 } -enum : uint { PSD_NONETWORKBUTTON = 0x00200000 } -// #endif /* WINVER >= 0x0400 */ - -// #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */ -// #if ISOLATION_AWARE_ENABLED - -// #if !defined(ISOLATION_AWARE_INLINE) -// #if defined(__cplusplus) -// #... -// #else -// #... -// #endif -// #endif - -// ... - -// ... -// #if defined(STDMETHOD) && (WINVER >= 0x0500) -// ... -// #endif /* defined(STDMETHOD) && (WINVER >= 0x0500) */ -// ... - -// #if defined(UNICODE) - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #else /* UNICODE */ - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #endif /* UNICODE */ - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #if defined(STDMETHOD) && (WINVER >= 0x0500) - -// ... - -// ... - -// ... - -// ... - -// #endif /* defined(STDMETHOD) && (WINVER >= 0x0500) */ - -// ... - -// ... - -// ... - -// ... - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #endif /* ISOLATION_AWARE_ENABLED */ -// #endif /* RC */ - -// #ifdef __cplusplus -// } -// #endif /* __cplusplus */ - -// #if !defined(_WIN64) -align: -// #endif -// #endif /* GUID_DEFS_ONLY */ -// #endif /* !_INC_COMMDLG */ - DELETED src/win32/ansi/dde.d Index: src/win32/ansi/dde.d ================================================================== --- src/win32/ansi/dde.d +++ src/win32/ansi/dde.d @@ -1,134 +0,0 @@ -module win32.ansi.dde; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - - -// #ifndef _DDEHEADER_INCLUDED_ -// #define _DDEHEADER_INCLUDED_ - -// #if _MSC_VER > 1000 -// #pragma once -// #endif - -// #ifndef _WINDEF_ -import win32.ansi.windef; -// #endif - -// #ifdef __cplusplus -// extern "C" { -// #endif - -enum : uint { WM_DDE_FIRST = 0x03E0 } -enum : uint { WM_DDE_INITIATE = WM_DDE_FIRST } -enum : uint { WM_DDE_TERMINATE = WM_DDE_FIRST+1 } -enum : uint { WM_DDE_ADVISE = WM_DDE_FIRST+2 } -enum : uint { WM_DDE_UNADVISE = WM_DDE_FIRST+3 } -enum : uint { WM_DDE_ACK = WM_DDE_FIRST+4 } -enum : uint { WM_DDE_DATA = WM_DDE_FIRST+5 } -enum : uint { WM_DDE_REQUEST = WM_DDE_FIRST+6 } -enum : uint { WM_DDE_POKE = WM_DDE_FIRST+7 } -enum : uint { WM_DDE_EXECUTE = WM_DDE_FIRST+8 } -enum : uint { WM_DDE_LAST = WM_DDE_FIRST+8 } - -struct _0 { -// #ifndef _MAC -// unsigned short bAppReturnCode:8, -// reserved:6, -// fBusy:1, -// fAck:1; -// #else -// ... -// #endif -} -alias _0 DDEACK; - -struct _1 { -// #ifndef _MAC -// unsigned short reserved:14, -// fDeferUpd:1, -// fAckReq:1; -// #else -// ... -// #endif - short cfFormat; -} -alias _1 DDEADVISE; - -struct _2 { -// #ifndef _MAC -// unsigned short unused:12, -// fResponse:1, -// fRelease:1, -// reserved:1, -// fAckReq:1; -// #else -// ... -// #endif - short cfFormat; - BYTE Value[1]; -} -alias _2 DDEDATA; - -struct _3 { -// #ifndef _MAC -// unsigned short unused:13, - -// fRelease:1, -// fReserved:2; -// #else -// ... -// #endif - short cfFormat; - BYTE Value[1]; - -} -alias _3 DDEPOKE; - -struct _4 { -// #ifndef _MAC -// unsigned short unused:13, -// fRelease:1, -// fDeferUpd:1, -// fAckReq:1; -// #else -// ... -// #endif - short cfFormat; -} -alias _4 DDELN; - -struct _5 { -// #ifndef _MAC -// unsigned short unused:12, -// fAck:1, -// fRelease:1, -// fReserved:1, -// fAckReq:1; -// #else -// ... -// #endif - short cfFormat; - BYTE rgb[1]; -} -alias _5 DDEUP; - -extern(Windows) export BOOL DdeSetQualityOfService( - HWND hwndClient, - SECURITY_QUALITY_OF_SERVICE *pqosNew, - PSECURITY_QUALITY_OF_SERVICE pqosPrev); - -extern(Windows) export BOOL ImpersonateDdeClientWindow( - HWND hWndClient, - HWND hWndServer); - -extern(Windows) export LPARAM PackDDElParam(UINT msg, UINT_PTR uiLo, UINT_PTR uiHi); -extern(Windows) export BOOL UnpackDDElParam(UINT msg, LPARAM lParam, PUINT_PTR puiLo, PUINT_PTR puiHi); -extern(Windows) export BOOL FreeDDElParam(UINT msg, LPARAM lParam); -extern(Windows) export LPARAM ReuseDDElParam(LPARAM lParam, UINT msgIn, UINT msgOut, UINT_PTR uiLo, UINT_PTR uiHi); - -// #ifdef __cplusplus -// } -// #endif - -// #endif // _DDEHEADER_INCLUDED_ DELETED src/win32/ansi/ddeml.d Index: src/win32/ansi/ddeml.d ================================================================== --- src/win32/ansi/ddeml.d +++ src/win32/ansi/ddeml.d @@ -1,434 +0,0 @@ -module win32.ansi.ddeml; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.windef; - -// #ifndef _INC_DDEMLH -// #define _INC_DDEMLH - -// #ifdef __cplusplus -// extern "C" { -// #endif /* __cplusplus */ - -alias void* HCONVLIST; -alias void* HCONV; -alias void* HSZ; -alias void* HDDEDATA; -// #define EXPENTRY CALLBACK - -struct tagHSZPAIR { - HSZ hszSvc; - HSZ hszTopic; -} -alias tagHSZPAIR HSZPAIR; - -alias HSZPAIR* PHSZPAIR; - -struct tagCONVCONTEXT { - UINT cb; - UINT wFlags; - UINT wCountryID; - int iCodePage; - DWORD dwLangID; - DWORD dwSecurity; - SECURITY_QUALITY_OF_SERVICE qos; -} -alias tagCONVCONTEXT CONVCONTEXT; - -alias CONVCONTEXT* PCONVCONTEXT; - -struct tagCONVINFO { - DWORD cb; - DWORD_PTR hUser; - HCONV hConvPartner; - HSZ hszSvcPartner; - HSZ hszServiceReq; - HSZ hszTopic; - HSZ hszItem; - UINT wFmt; - UINT wType; - UINT wStatus; - UINT wConvst; - UINT wLastError; - HCONVLIST hConvList; - CONVCONTEXT ConvCtxt; - HWND hwnd; - HWND hwndPartner; -} -alias tagCONVINFO CONVINFO; - -alias CONVINFO* PCONVINFO; - -enum : uint { XST_NULL = 0 } -enum : uint { XST_INCOMPLETE = 1 } -enum : uint { XST_CONNECTED = 2 } -enum : uint { XST_INIT1 = 3 } -enum : uint { XST_INIT2 = 4 } -enum : uint { XST_REQSENT = 5 } -enum : uint { XST_DATARCVD = 6 } -enum : uint { XST_POKESENT = 7 } -enum : uint { XST_POKEACKRCVD = 8 } -enum : uint { XST_EXECSENT = 9 } -enum : uint { XST_EXECACKRCVD = 10 } -enum : uint { XST_ADVSENT = 11 } -enum : uint { XST_UNADVSENT = 12 } -enum : uint { XST_ADVACKRCVD = 13 } -enum : uint { XST_UNADVACKRCVD = 14 } -enum : uint { XST_ADVDATASENT = 15 } -enum : uint { XST_ADVDATAACKRCVD = 16 } - -enum : uint { CADV_LATEACK = 0xFFFF } - -enum : uint { ST_CONNECTED = 0x0001 } -enum : uint { ST_ADVISE = 0x0002 } -enum : uint { ST_ISLOCAL = 0x0004 } -enum : uint { ST_BLOCKED = 0x0008 } -enum : uint { ST_CLIENT = 0x0010 } -enum : uint { ST_TERMINATED = 0x0020 } -enum : uint { ST_INLIST = 0x0040 } -enum : uint { ST_BLOCKNEXT = 0x0080 } -enum : uint { ST_ISSELF = 0x0100 } - -enum : uint { DDE_FACK = 0x8000 } -enum : uint { DDE_FBUSY = 0x4000 } -enum : uint { DDE_FDEFERUPD = 0x4000 } -enum : uint { DDE_FACKREQ = 0x8000 } -enum : uint { DDE_FRELEASE = 0x2000 } -enum : uint { DDE_FREQUESTED = 0x1000 } -enum : uint { DDE_FAPPSTATUS = 0x00ff } -enum : uint { DDE_FNOTPROCESSED = 0x0000 } - -enum : uint { DDE_FACKRESERVED = ~(DDE_FACK | DDE_FBUSY | DDE_FAPPSTATUS) } -enum : uint { DDE_FADVRESERVED = ~(DDE_FACKREQ | DDE_FDEFERUPD) } -enum : uint { DDE_FDATRESERVED = ~(DDE_FACKREQ | DDE_FRELEASE | DDE_FREQUESTED) } -enum : uint { DDE_FPOKRESERVED = ~(DDE_FRELEASE) } - -enum : uint { MSGF_DDEMGR = 0x8001 } - -enum : uint { CP_WINANSI = 1004 } -enum : uint { CP_WINUNICODE = 1200 } -// #ifdef UNICODE -// #... -// #else // !UNICODE -alias CP_WINANSI CP_WINNEUTRAL; -// #endif // !UNICODE - -enum : uint { XTYPF_NOBLOCK = 0x0002 } -enum : uint { XTYPF_NODATA = 0x0004 } -enum : uint { XTYPF_ACKREQ = 0x0008 } - -enum : uint { XCLASS_MASK = 0xFC00 } -enum : uint { XCLASS_BOOL = 0x1000 } -enum : uint { XCLASS_DATA = 0x2000 } -enum : uint { XCLASS_FLAGS = 0x4000 } -enum : uint { XCLASS_NOTIFICATION = 0x8000 } - -enum : uint { XTYP_ERROR = 0x0000 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK } -enum : uint { XTYP_ADVDATA = 0x0010 | XCLASS_FLAGS } -enum : uint { XTYP_ADVREQ = 0x0020 | XCLASS_DATA | XTYPF_NOBLOCK } -enum : uint { XTYP_ADVSTART = 0x0030 | XCLASS_BOOL } -enum : uint { XTYP_ADVSTOP = 0x0040 | XCLASS_NOTIFICATION } -enum : uint { XTYP_EXECUTE = 0x0050 | XCLASS_FLAGS } -enum : uint { XTYP_CONNECT = 0x0060 | XCLASS_BOOL | XTYPF_NOBLOCK } -enum : uint { XTYP_CONNECT_CONFIRM = 0x0070 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK } -enum : uint { XTYP_XACT_COMPLETE = 0x0080 | XCLASS_NOTIFICATION } -enum : uint { XTYP_POKE = 0x0090 | XCLASS_FLAGS } -enum : uint { XTYP_REGISTER = 0x00A0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK } -enum : uint { XTYP_REQUEST = 0x00B0 | XCLASS_DATA } -enum : uint { XTYP_DISCONNECT = 0x00C0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK } -enum : uint { XTYP_UNREGISTER = 0x00D0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK } -enum : uint { XTYP_WILDCONNECT = 0x00E0 | XCLASS_DATA | XTYPF_NOBLOCK } - -enum : uint { XTYP_MASK = 0x00F0 } -enum : uint { XTYP_SHIFT = 4 } - -enum : uint { TIMEOUT_ASYNC = 0xFFFFFFFF } - -enum : uint { QID_SYNC = 0xFFFFFFFF } - -// #ifdef UNICODE -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #else -const char[] SZDDESYS_TOPIC = "System"; -const char[] SZDDESYS_ITEM_TOPICS = "Topics"; -const char[] SZDDESYS_ITEM_SYSITEMS = "SysItems"; -const char[] SZDDESYS_ITEM_RTNMSG = "ReturnMessage"; -const char[] SZDDESYS_ITEM_STATUS = "Status"; -const char[] SZDDESYS_ITEM_FORMATS = "Formats"; -const char[] SZDDESYS_ITEM_HELP = "Help"; -const char[] SZDDE_ITEM_ITEMLIST = "TopicItemList"; -// #endif - -// typedef HDDEDATA CALLBACK FNCALLBACK(UINT wType, UINT wFmt, HCONV hConv, HSZ hsz1, HSZ hsz2, HDDEDATA hData, ULONG_PTR dwData1, ULONG_PTR dwData2); -extern(Windows) alias HDDEDATA function(UINT wType, UINT wFmt, HCONV hConv, HSZ hsz1, HSZ hsz2, HDDEDATA hData, ULONG_PTR dwData1, ULONG_PTR dwData2) PFNCALLBACK; - -const HDDEDATA CBR_BLOCK = cast(HDDEDATA)-1; - -extern(Windows) export UINT DdeInitializeA( LPDWORD pidInst, PFNCALLBACK pfnCallback, - DWORD afCmd, DWORD ulRes); -extern(Windows) export UINT DdeInitializeW( LPDWORD pidInst, PFNCALLBACK pfnCallback, - DWORD afCmd, DWORD ulRes); -// #ifdef UNICODE -// #... -// #else -alias DdeInitializeA DdeInitialize; -// #endif // !UNICODE - -enum : uint { CBF_FAIL_SELFCONNECTIONS = 0x00001000 } -enum : uint { CBF_FAIL_CONNECTIONS = 0x00002000 } -enum : uint { CBF_FAIL_ADVISES = 0x00004000 } -enum : uint { CBF_FAIL_EXECUTES = 0x00008000 } -enum : uint { CBF_FAIL_POKES = 0x00010000 } -enum : uint { CBF_FAIL_REQUESTS = 0x00020000 } -enum : uint { CBF_FAIL_ALLSVRXACTIONS = 0x0003f000 } - -enum : uint { CBF_SKIP_CONNECT_CONFIRMS = 0x00040000 } -enum : uint { CBF_SKIP_REGISTRATIONS = 0x00080000 } -enum : uint { CBF_SKIP_UNREGISTRATIONS = 0x00100000 } -enum : uint { CBF_SKIP_DISCONNECTS = 0x00200000 } -enum : uint { CBF_SKIP_ALLNOTIFICATIONS = 0x003c0000 } - -enum : uint { APPCMD_CLIENTONLY = 0x00000010 } -enum : uint { APPCMD_FILTERINITS = 0x00000020 } -enum : uint { APPCMD_MASK = 0x00000FF0 } - -enum : uint { APPCLASS_STANDARD = 0x00000000 } -enum : uint { APPCLASS_MASK = 0x0000000F } - -extern(Windows) export BOOL DdeUninitialize( DWORD idInst); - -extern(Windows) export HCONVLIST DdeConnectList( DWORD idInst, HSZ hszService, HSZ hszTopic, - HCONVLIST hConvList, PCONVCONTEXT pCC); -extern(Windows) export HCONV DdeQueryNextServer( HCONVLIST hConvList, HCONV hConvPrev); -extern(Windows) export BOOL DdeDisconnectList( HCONVLIST hConvList); - -extern(Windows) export HCONV DdeConnect( DWORD idInst, HSZ hszService, HSZ hszTopic, - PCONVCONTEXT pCC); -extern(Windows) export BOOL DdeDisconnect( HCONV hConv); -extern(Windows) export HCONV DdeReconnect( HCONV hConv); -extern(Windows) export UINT DdeQueryConvInfo( HCONV hConv, DWORD idTransaction, PCONVINFO pConvInfo); -extern(Windows) export BOOL DdeSetUserHandle( HCONV hConv, DWORD id, DWORD_PTR hUser); -extern(Windows) export BOOL DdeAbandonTransaction( DWORD idInst, HCONV hConv, DWORD idTransaction); - -extern(Windows) export BOOL DdePostAdvise( DWORD idInst, HSZ hszTopic, HSZ hszItem); -extern(Windows) export BOOL DdeEnableCallback( DWORD idInst, HCONV hConv, UINT wCmd); -extern(Windows) export BOOL DdeImpersonateClient( HCONV hConv); - -enum : uint { EC_ENABLEALL = 0 } -alias ST_BLOCKNEXT EC_ENABLEONE; -alias ST_BLOCKED EC_DISABLE; -enum : uint { EC_QUERYWAITING = 2 } - -extern(Windows) export HDDEDATA DdeNameService( DWORD idInst, HSZ hsz1, HSZ hsz2, UINT afCmd); - -enum : uint { DNS_REGISTER = 0x0001 } -enum : uint { DNS_UNREGISTER = 0x0002 } -enum : uint { DNS_FILTERON = 0x0004 } -enum : uint { DNS_FILTEROFF = 0x0008 } - -extern(Windows) export HDDEDATA DdeClientTransaction( LPBYTE pData, DWORD cbData, - HCONV hConv, HSZ hszItem, UINT wFmt, UINT wType, - DWORD dwTimeout, LPDWORD pdwResult); - -extern(Windows) export HDDEDATA DdeCreateDataHandle( DWORD idInst, LPBYTE pSrc, DWORD cb, - DWORD cbOff, HSZ hszItem, UINT wFmt, UINT afCmd); -extern(Windows) export HDDEDATA DdeAddData( HDDEDATA hData, LPBYTE pSrc, DWORD cb, DWORD cbOff); -extern(Windows) export DWORD DdeGetData( HDDEDATA hData, LPBYTE pDst, DWORD cbMax, DWORD cbOff); -extern(Windows) export LPBYTE DdeAccessData( HDDEDATA hData, LPDWORD pcbDataSize); -extern(Windows) export BOOL DdeUnaccessData( HDDEDATA hData); -extern(Windows) export BOOL DdeFreeDataHandle( HDDEDATA hData); - -enum : uint { HDATA_APPOWNED = 0x0001 } - -extern(Windows) export UINT DdeGetLastError( DWORD idInst); - -enum : uint { DMLERR_NO_ERROR = 0 } - -enum : uint { DMLERR_FIRST = 0x4000 } - -enum : uint { DMLERR_ADVACKTIMEOUT = 0x4000 } -enum : uint { DMLERR_BUSY = 0x4001 } -enum : uint { DMLERR_DATAACKTIMEOUT = 0x4002 } -enum : uint { DMLERR_DLL_NOT_INITIALIZED = 0x4003 } -enum : uint { DMLERR_DLL_USAGE = 0x4004 } -enum : uint { DMLERR_EXECACKTIMEOUT = 0x4005 } -enum : uint { DMLERR_INVALIDPARAMETER = 0x4006 } -enum : uint { DMLERR_LOW_MEMORY = 0x4007 } -enum : uint { DMLERR_MEMORY_ERROR = 0x4008 } -enum : uint { DMLERR_NOTPROCESSED = 0x4009 } -enum : uint { DMLERR_NO_CONV_ESTABLISHED = 0x400a } -enum : uint { DMLERR_POKEACKTIMEOUT = 0x400b } -enum : uint { DMLERR_POSTMSG_FAILED = 0x400c } -enum : uint { DMLERR_REENTRANCY = 0x400d } -enum : uint { DMLERR_SERVER_DIED = 0x400e } -enum : uint { DMLERR_SYS_ERROR = 0x400f } -enum : uint { DMLERR_UNADVACKTIMEOUT = 0x4010 } -enum : uint { DMLERR_UNFOUND_QUEUE_ID = 0x4011 } - -enum : uint { DMLERR_LAST = 0x4011 } - -extern(Windows) export HSZ DdeCreateStringHandleA( DWORD idInst, LPCSTR psz, int iCodePage); -extern(Windows) export HSZ DdeCreateStringHandleW( DWORD idInst, LPCWSTR psz, int iCodePage); -// #ifdef UNICODE -// #... -// #else -alias DdeCreateStringHandleA DdeCreateStringHandle; -// #endif // !UNICODE -extern(Windows) export DWORD DdeQueryStringA( DWORD idInst, HSZ hsz, LPSTR psz, DWORD cchMax, int iCodePage); -extern(Windows) export DWORD DdeQueryStringW( DWORD idInst, HSZ hsz, LPWSTR psz, DWORD cchMax, int iCodePage); -// #ifdef UNICODE -// #... -// #else -alias DdeQueryStringA DdeQueryString; -// #endif // !UNICODE -extern(Windows) export BOOL DdeFreeStringHandle( DWORD idInst, HSZ hsz); -extern(Windows) export BOOL DdeKeepStringHandle( DWORD idInst, HSZ hsz); -extern(Windows) export int DdeCmpStringHandles( HSZ hsz1, HSZ hsz2); - -// #ifndef NODDEMLSPY - -struct tagDDEML_MSG_HOOK_DATA { - UINT_PTR uiLo; - UINT_PTR uiHi; - DWORD cbData; - DWORD Data[8]; -} -alias tagDDEML_MSG_HOOK_DATA DDEML_MSG_HOOK_DATA; -alias tagDDEML_MSG_HOOK_DATA* PDDEML_MSG_HOOK_DATA; - -struct tagMONMSGSTRUCT { - UINT cb; - HWND hwndTo; - DWORD dwTime; - HANDLE hTask; - UINT wMsg; - WPARAM wParam; - LPARAM lParam; - DDEML_MSG_HOOK_DATA dmhd; -} -alias tagMONMSGSTRUCT MONMSGSTRUCT; -alias tagMONMSGSTRUCT* PMONMSGSTRUCT; - -struct tagMONCBSTRUCT { - UINT cb; - DWORD dwTime; - HANDLE hTask; - DWORD dwRet; - UINT wType; - UINT wFmt; - HCONV hConv; - HSZ hsz1; - HSZ hsz2; - HDDEDATA hData; - ULONG_PTR dwData1; - ULONG_PTR dwData2; - CONVCONTEXT cc; - DWORD cbData; - DWORD Data[8]; -} -alias tagMONCBSTRUCT MONCBSTRUCT; -alias tagMONCBSTRUCT* PMONCBSTRUCT; - -struct tagMONHSZSTRUCTA { - UINT cb; - BOOL fsAction; - DWORD dwTime; - HSZ hsz; - HANDLE hTask; - CHAR str[1]; -} -alias tagMONHSZSTRUCTA MONHSZSTRUCTA; -alias tagMONHSZSTRUCTA* PMONHSZSTRUCTA; - -struct tagMONHSZSTRUCTW { - UINT cb; - BOOL fsAction; - DWORD dwTime; - HSZ hsz; - HANDLE hTask; - WCHAR str[1]; -} -alias tagMONHSZSTRUCTW MONHSZSTRUCTW; -alias tagMONHSZSTRUCTW* PMONHSZSTRUCTW; - -// #ifdef UNICODE -// ... -// #else -alias MONHSZSTRUCTA MONHSZSTRUCT; -alias PMONHSZSTRUCTA PMONHSZSTRUCT; -// #endif // UNICODE - -enum : uint { MH_CREATE = 1 } -enum : uint { MH_KEEP = 2 } -enum : uint { MH_DELETE = 3 } -enum : uint { MH_CLEANUP = 4 } - -struct tagMONERRSTRUCT { - UINT cb; - UINT wLastError; - DWORD dwTime; - HANDLE hTask; -} -alias tagMONERRSTRUCT MONERRSTRUCT; -alias tagMONERRSTRUCT* PMONERRSTRUCT; - -struct tagMONLINKSTRUCT { - UINT cb; - DWORD dwTime; - HANDLE hTask; - BOOL fEstablished; - BOOL fNoData; - HSZ hszSvc; - HSZ hszTopic; - HSZ hszItem; - UINT wFmt; - BOOL fServer; - HCONV hConvServer; - HCONV hConvClient; -} -alias tagMONLINKSTRUCT MONLINKSTRUCT; -alias tagMONLINKSTRUCT* PMONLINKSTRUCT; - -struct tagMONCONVSTRUCT { - UINT cb; - BOOL fConnect; - DWORD dwTime; - HANDLE hTask; - HSZ hszSvc; - HSZ hszTopic; - HCONV hConvClient; - HCONV hConvServer; -} -alias tagMONCONVSTRUCT MONCONVSTRUCT; -alias tagMONCONVSTRUCT* PMONCONVSTRUCT; - -enum : uint { MAX_MONITORS = 4 } -enum : uint { APPCLASS_MONITOR = 0x00000001 } -enum : uint { XTYP_MONITOR = 0x00F0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK } - -enum : uint { MF_HSZ_INFO = 0x01000000 } -enum : uint { MF_SENDMSGS = 0x02000000 } -enum : uint { MF_POSTMSGS = 0x04000000 } -enum : uint { MF_CALLBACKS = 0x08000000 } -enum : uint { MF_ERRORS = 0x10000000 } -enum : uint { MF_LINKS = 0x20000000 } -enum : uint { MF_CONV = 0x40000000 } - -enum : uint { MF_MASK = 0xFF000000 } -// #endif /* NODDEMLSPY */ - -// #ifdef __cplusplus -// } -// #endif /* __cplusplus */ - -// #endif /* _INC_DDEMLH */ - DELETED src/win32/ansi/dlgs.d Index: src/win32/ansi/dlgs.d ================================================================== --- src/win32/ansi/dlgs.d +++ src/win32/ansi/dlgs.d @@ -1,216 +0,0 @@ -module win32.ansi.dlgs; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.windef; - -// #ifndef _DLGSH_INCLUDED_ -// #define _DLGSH_INCLUDED_ - -enum : uint { ctlFirst = 0x0400 } -enum : uint { ctlLast = 0x04ff } - -enum : uint { psh1 = 0x0400 } -enum : uint { psh2 = 0x0401 } -enum : uint { psh3 = 0x0402 } -enum : uint { psh4 = 0x0403 } -enum : uint { psh5 = 0x0404 } -enum : uint { psh6 = 0x0405 } -enum : uint { psh7 = 0x0406 } -enum : uint { psh8 = 0x0407 } -enum : uint { psh9 = 0x0408 } -enum : uint { psh10 = 0x0409 } -enum : uint { psh11 = 0x040a } -enum : uint { psh12 = 0x040b } -enum : uint { psh13 = 0x040c } -enum : uint { psh14 = 0x040d } -enum : uint { psh15 = 0x040e } -alias psh15 pshHelp; -enum : uint { psh16 = 0x040f } - -enum : uint { chx1 = 0x0410 } -enum : uint { chx2 = 0x0411 } -enum : uint { chx3 = 0x0412 } -enum : uint { chx4 = 0x0413 } -enum : uint { chx5 = 0x0414 } -enum : uint { chx6 = 0x0415 } -enum : uint { chx7 = 0x0416 } -enum : uint { chx8 = 0x0417 } -enum : uint { chx9 = 0x0418 } -enum : uint { chx10 = 0x0419 } -enum : uint { chx11 = 0x041a } -enum : uint { chx12 = 0x041b } -enum : uint { chx13 = 0x041c } -enum : uint { chx14 = 0x041d } -enum : uint { chx15 = 0x041e } -enum : uint { chx16 = 0x041f } - -enum : uint { rad1 = 0x0420 } -enum : uint { rad2 = 0x0421 } -enum : uint { rad3 = 0x0422 } -enum : uint { rad4 = 0x0423 } -enum : uint { rad5 = 0x0424 } -enum : uint { rad6 = 0x0425 } -enum : uint { rad7 = 0x0426 } -enum : uint { rad8 = 0x0427 } -enum : uint { rad9 = 0x0428 } -enum : uint { rad10 = 0x0429 } -enum : uint { rad11 = 0x042a } -enum : uint { rad12 = 0x042b } -enum : uint { rad13 = 0x042c } -enum : uint { rad14 = 0x042d } -enum : uint { rad15 = 0x042e } -enum : uint { rad16 = 0x042f } - -enum : uint { grp1 = 0x0430 } -enum : uint { grp2 = 0x0431 } -enum : uint { grp3 = 0x0432 } -enum : uint { grp4 = 0x0433 } -enum : uint { frm1 = 0x0434 } -enum : uint { frm2 = 0x0435 } -enum : uint { frm3 = 0x0436 } -enum : uint { frm4 = 0x0437 } -enum : uint { rct1 = 0x0438 } -enum : uint { rct2 = 0x0439 } -enum : uint { rct3 = 0x043a } -enum : uint { rct4 = 0x043b } -enum : uint { ico1 = 0x043c } -enum : uint { ico2 = 0x043d } -enum : uint { ico3 = 0x043e } -enum : uint { ico4 = 0x043f } - -enum : uint { stc1 = 0x0440 } -enum : uint { stc2 = 0x0441 } -enum : uint { stc3 = 0x0442 } -enum : uint { stc4 = 0x0443 } -enum : uint { stc5 = 0x0444 } -enum : uint { stc6 = 0x0445 } -enum : uint { stc7 = 0x0446 } -enum : uint { stc8 = 0x0447 } -enum : uint { stc9 = 0x0448 } -enum : uint { stc10 = 0x0449 } -enum : uint { stc11 = 0x044a } -enum : uint { stc12 = 0x044b } -enum : uint { stc13 = 0x044c } -enum : uint { stc14 = 0x044d } -enum : uint { stc15 = 0x044e } -enum : uint { stc16 = 0x044f } -enum : uint { stc17 = 0x0450 } -enum : uint { stc18 = 0x0451 } -enum : uint { stc19 = 0x0452 } -enum : uint { stc20 = 0x0453 } -enum : uint { stc21 = 0x0454 } -enum : uint { stc22 = 0x0455 } -enum : uint { stc23 = 0x0456 } -enum : uint { stc24 = 0x0457 } -enum : uint { stc25 = 0x0458 } -enum : uint { stc26 = 0x0459 } -enum : uint { stc27 = 0x045a } -enum : uint { stc28 = 0x045b } -enum : uint { stc29 = 0x045c } -enum : uint { stc30 = 0x045d } -enum : uint { stc31 = 0x045e } -enum : uint { stc32 = 0x045f } - -enum : uint { lst1 = 0x0460 } -enum : uint { lst2 = 0x0461 } -enum : uint { lst3 = 0x0462 } -enum : uint { lst4 = 0x0463 } -enum : uint { lst5 = 0x0464 } -enum : uint { lst6 = 0x0465 } -enum : uint { lst7 = 0x0466 } -enum : uint { lst8 = 0x0467 } -enum : uint { lst9 = 0x0468 } -enum : uint { lst10 = 0x0469 } -enum : uint { lst11 = 0x046a } -enum : uint { lst12 = 0x046b } -enum : uint { lst13 = 0x046c } -enum : uint { lst14 = 0x046d } -enum : uint { lst15 = 0x046e } -enum : uint { lst16 = 0x046f } - -enum : uint { cmb1 = 0x0470 } -enum : uint { cmb2 = 0x0471 } -enum : uint { cmb3 = 0x0472 } -enum : uint { cmb4 = 0x0473 } -enum : uint { cmb5 = 0x0474 } -enum : uint { cmb6 = 0x0475 } -enum : uint { cmb7 = 0x0476 } -enum : uint { cmb8 = 0x0477 } -enum : uint { cmb9 = 0x0478 } -enum : uint { cmb10 = 0x0479 } -enum : uint { cmb11 = 0x047a } -enum : uint { cmb12 = 0x047b } -enum : uint { cmb13 = 0x047c } -enum : uint { cmb14 = 0x047d } -enum : uint { cmb15 = 0x047e } -enum : uint { cmb16 = 0x047f } - -enum : uint { edt1 = 0x0480 } -enum : uint { edt2 = 0x0481 } -enum : uint { edt3 = 0x0482 } -enum : uint { edt4 = 0x0483 } -enum : uint { edt5 = 0x0484 } -enum : uint { edt6 = 0x0485 } -enum : uint { edt7 = 0x0486 } -enum : uint { edt8 = 0x0487 } -enum : uint { edt9 = 0x0488 } -enum : uint { edt10 = 0x0489 } -enum : uint { edt11 = 0x048a } -enum : uint { edt12 = 0x048b } -enum : uint { edt13 = 0x048c } -enum : uint { edt14 = 0x048d } -enum : uint { edt15 = 0x048e } -enum : uint { edt16 = 0x048f } - -enum : uint { scr1 = 0x0490 } -enum : uint { scr2 = 0x0491 } -enum : uint { scr3 = 0x0492 } -enum : uint { scr4 = 0x0493 } -enum : uint { scr5 = 0x0494 } -enum : uint { scr6 = 0x0495 } -enum : uint { scr7 = 0x0496 } -enum : uint { scr8 = 0x0497 } - -enum : uint { ctl1 = 0x04A0 } - -// #ifdef UNIX - -// #... -// #... - -// #... -// #... -// #... -// #endif - -enum : uint { FILEOPENORD = 1536 } -enum : uint { MULTIFILEOPENORD = 1537 } -enum : uint { PRINTDLGORD = 1538 } -enum : uint { PRNSETUPDLGORD = 1539 } -enum : uint { FINDDLGORD = 1540 } -enum : uint { REPLACEDLGORD = 1541 } -enum : uint { FONTDLGORD = 1542 } -enum : uint { FORMATDLGORD31 = 1543 } -enum : uint { FORMATDLGORD30 = 1544 } -enum : uint { RUNDLGORD = 1545 } - -// #if (WINVER >= 0x400) -enum : uint { PAGESETUPDLGORD = 1546 } -enum : uint { NEWFILEOPENORD = 1547 } -enum : uint { PRINTDLGEXORD = 1549 } -enum : uint { PAGESETUPDLGORDMOTIF = 1550 } -enum : uint { COLORMGMTDLGORD = 1551 } -enum : uint { NEWFILEOPENV2ORD = 1552 } -// #endif /* WINVER >= 0x400) */ - -struct tagCRGB { - BYTE bRed; - BYTE bGreen; - BYTE bBlue; - BYTE bExtra; -} -alias tagCRGB CRGB; - -// #endif // _DLGSH_INCLUDED_ DELETED src/win32/ansi/guiddef.d Index: src/win32/ansi/guiddef.d ================================================================== --- src/win32/ansi/guiddef.d +++ src/win32/ansi/guiddef.d @@ -1,30 +0,0 @@ -module win32.ansi.guiddef; -import win32.ansi.windef; - -// Handwriting... - -align(1) struct GUID -{ - DWORD Data1; - WORD Data2; - WORD Data3; - BYTE Data4[8]; -} - -alias GUID CLSID; -alias GUID IID; -alias GUID* REFGUID; -alias GUID* REFCLSID; -alias GUID* REFIID; -alias CLSID* LPCLSID; -alias IID* LPIID; - -bit IsEqualGUID(in GUID rguid1, in GUID rguid2) -{ - return - (cast(uint*)&rguid1)[0] == (cast(uint*)&rguid2)[0] && - (cast(uint*)&rguid1)[1] == (cast(uint*)&rguid2)[1] && - (cast(uint*)&rguid1)[2] == (cast(uint*)&rguid2)[2] && - (cast(uint*)&rguid1)[3] == (cast(uint*)&rguid2)[3]; -} - DELETED src/win32/ansi/imm.d Index: src/win32/ansi/imm.d ================================================================== --- src/win32/ansi/imm.d +++ src/win32/ansi/imm.d @@ -1,686 +0,0 @@ -module win32.ansi.imm; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.winuser; - -// #ifndef _IMM_ -// #define _IMM_ - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #ifndef _IMM_SDK_DEFINED_ -// #define _IMM_SDK_DEFINED_ - -// #if (WINVER >= 0x040A) -alias void* HIMC; -alias void* HIMCC; -// #else -// ... -// #endif /* WINVER >= 0x040A */ - -alias HKL* LPHKL; -alias UINT* LPUINT; - -struct tagCOMPOSITIONFORM { - DWORD dwStyle; - POINT ptCurrentPos; - RECT rcArea; -} -alias tagCOMPOSITIONFORM COMPOSITIONFORM; -alias tagCOMPOSITIONFORM* PCOMPOSITIONFORM; -alias tagCOMPOSITIONFORM* NPCOMPOSITIONFORM; -alias tagCOMPOSITIONFORM* LPCOMPOSITIONFORM; - -struct tagCANDIDATEFORM { - DWORD dwIndex; - DWORD dwStyle; - POINT ptCurrentPos; - RECT rcArea; -} -alias tagCANDIDATEFORM CANDIDATEFORM; -alias tagCANDIDATEFORM* PCANDIDATEFORM; -alias tagCANDIDATEFORM* NPCANDIDATEFORM; -alias tagCANDIDATEFORM* LPCANDIDATEFORM; - -struct tagCANDIDATELIST { - DWORD dwSize; - DWORD dwStyle; - DWORD dwCount; - DWORD dwSelection; - DWORD dwPageStart; - DWORD dwPageSize; - DWORD dwOffset[1]; -} -alias tagCANDIDATELIST CANDIDATELIST; -alias tagCANDIDATELIST* PCANDIDATELIST; -alias tagCANDIDATELIST* NPCANDIDATELIST; -alias tagCANDIDATELIST* LPCANDIDATELIST; - -struct tagREGISTERWORDA { - LPSTR lpReading; - LPSTR lpWord; -} -alias tagREGISTERWORDA REGISTERWORDA; -alias tagREGISTERWORDA* PREGISTERWORDA; -alias tagREGISTERWORDA* NPREGISTERWORDA; -alias tagREGISTERWORDA* LPREGISTERWORDA; - -struct tagREGISTERWORDW { - LPWSTR lpReading; - LPWSTR lpWord; -} -alias tagREGISTERWORDW REGISTERWORDW; -alias tagREGISTERWORDW* PREGISTERWORDW; -alias tagREGISTERWORDW* NPREGISTERWORDW; -alias tagREGISTERWORDW* LPREGISTERWORDW; - -// #ifdef UNICODE -// ... -// #else -alias REGISTERWORDA REGISTERWORD; -alias PREGISTERWORDA PREGISTERWORD; -alias NPREGISTERWORDA NPREGISTERWORD; -alias LPREGISTERWORDA LPREGISTERWORD; -// #endif // UNICODE - -// #if (WINVER >= 0x040A) - -struct tagRECONVERTSTRING { - DWORD dwSize; - DWORD dwVersion; - DWORD dwStrLen; - DWORD dwStrOffset; - DWORD dwCompStrLen; - DWORD dwCompStrOffset; - DWORD dwTargetStrLen; - DWORD dwTargetStrOffset; -} -alias tagRECONVERTSTRING RECONVERTSTRING; -alias tagRECONVERTSTRING* PRECONVERTSTRING; -alias tagRECONVERTSTRING* NPRECONVERTSTRING; -alias tagRECONVERTSTRING* LPRECONVERTSTRING; - -// #endif /* WINVER >= 0x040A */ - -enum : uint { STYLE_DESCRIPTION_SIZE = 32 } - -struct tagSTYLEBUFA { - DWORD dwStyle; - CHAR szDescription[STYLE_DESCRIPTION_SIZE]; -} -alias tagSTYLEBUFA STYLEBUFA; -alias tagSTYLEBUFA* PSTYLEBUFA; -alias tagSTYLEBUFA* NPSTYLEBUFA; -alias tagSTYLEBUFA* LPSTYLEBUFA; - -struct tagSTYLEBUFW { - DWORD dwStyle; - WCHAR szDescription[STYLE_DESCRIPTION_SIZE]; -} -alias tagSTYLEBUFW STYLEBUFW; -alias tagSTYLEBUFW* PSTYLEBUFW; -alias tagSTYLEBUFW* NPSTYLEBUFW; -alias tagSTYLEBUFW* LPSTYLEBUFW; - -// #ifdef UNICODE -// ... -// #else -alias STYLEBUFA STYLEBUF; -alias PSTYLEBUFA PSTYLEBUF; -alias NPSTYLEBUFA NPSTYLEBUF; -alias LPSTYLEBUFA LPSTYLEBUF; -// #endif // UNICODE - -// #if (WINVER >= 0x040A) - -enum : uint { IMEMENUITEM_STRING_SIZE = 80 } - -struct tagIMEMENUITEMINFOA { - UINT cbSize; - UINT fType; - UINT fState; - UINT wID; - HBITMAP hbmpChecked; - HBITMAP hbmpUnchecked; - DWORD dwItemData; - CHAR szString[IMEMENUITEM_STRING_SIZE]; - HBITMAP hbmpItem; -} -alias tagIMEMENUITEMINFOA IMEMENUITEMINFOA; -alias tagIMEMENUITEMINFOA* PIMEMENUITEMINFOA; -alias tagIMEMENUITEMINFOA* NPIMEMENUITEMINFOA; -alias tagIMEMENUITEMINFOA* LPIMEMENUITEMINFOA; - -struct tagIMEMENUITEMINFOW { - UINT cbSize; - UINT fType; - UINT fState; - UINT wID; - HBITMAP hbmpChecked; - HBITMAP hbmpUnchecked; - DWORD dwItemData; - WCHAR szString[IMEMENUITEM_STRING_SIZE]; - HBITMAP hbmpItem; -} -alias tagIMEMENUITEMINFOW IMEMENUITEMINFOW; -alias tagIMEMENUITEMINFOW* PIMEMENUITEMINFOW; -alias tagIMEMENUITEMINFOW* NPIMEMENUITEMINFOW; -alias tagIMEMENUITEMINFOW* LPIMEMENUITEMINFOW; - -// #ifdef UNICODE -// ... -// #else -alias IMEMENUITEMINFOA IMEMENUITEMINFO; -alias PIMEMENUITEMINFOA PIMEMENUITEMINFO; -alias NPIMEMENUITEMINFOA NPIMEMENUITEMINFO; -alias LPIMEMENUITEMINFOA LPIMEMENUITEMINFO; -// #endif // UNICODE - -struct tagIMECHARPOSITION { - DWORD dwSize; - DWORD dwCharPos; - POINT pt; - UINT cLineHeight; - RECT rcDocument; -} -alias tagIMECHARPOSITION IMECHARPOSITION; -alias tagIMECHARPOSITION* PIMECHARPOSITION; -alias tagIMECHARPOSITION* NPIMECHARPOSITION; -alias tagIMECHARPOSITION* LPIMECHARPOSITION; - -extern(Windows) alias BOOL function(HIMC, LPARAM) IMCENUMPROC; - -// #endif /* WINVER >= 0x040A */ - -extern(Windows) export HKL ImmInstallIMEA( LPCSTR lpszIMEFileName, LPCSTR lpszLayoutText); -extern(Windows) export HKL ImmInstallIMEW( LPCWSTR lpszIMEFileName, LPCWSTR lpszLayoutText); -// #ifdef UNICODE -// #... -// #else -alias ImmInstallIMEA ImmInstallIME; -// #endif // !UNICODE - -extern(Windows) export HWND ImmGetDefaultIMEWnd( HWND); - -extern(Windows) export UINT ImmGetDescriptionA( HKL, LPSTR, UINT uBufLen); -extern(Windows) export UINT ImmGetDescriptionW( HKL, LPWSTR, UINT uBufLen); -// #ifdef UNICODE -// #... -// #else -alias ImmGetDescriptionA ImmGetDescription; -// #endif // !UNICODE - -extern(Windows) export UINT ImmGetIMEFileNameA( HKL, LPSTR, UINT uBufLen); -extern(Windows) export UINT ImmGetIMEFileNameW( HKL, LPWSTR, UINT uBufLen); -// #ifdef UNICODE -// #... -// #else -alias ImmGetIMEFileNameA ImmGetIMEFileName; -// #endif // !UNICODE - -extern(Windows) export DWORD ImmGetProperty( HKL, DWORD); - -extern(Windows) export BOOL ImmIsIME( HKL); - -extern(Windows) export BOOL ImmSimulateHotKey( HWND, DWORD); - -extern(Windows) export HIMC ImmCreateContext(); -extern(Windows) export BOOL ImmDestroyContext( HIMC); -extern(Windows) export HIMC ImmGetContext( HWND); -extern(Windows) export BOOL ImmReleaseContext( HWND, HIMC); -extern(Windows) export HIMC ImmAssociateContext( HWND, HIMC); -// #if (WINVER >= 0x040A) -extern(Windows) export BOOL ImmAssociateContextEx( HWND, HIMC, DWORD); -// #endif /* WINVER >= 0x040A */ - -extern(Windows) export LONG ImmGetCompositionStringA( HIMC, DWORD, LPVOID, DWORD); -extern(Windows) export LONG ImmGetCompositionStringW( HIMC, DWORD, LPVOID, DWORD); -// #ifdef UNICODE -// #... -// #else -alias ImmGetCompositionStringA ImmGetCompositionString; -// #endif // !UNICODE - -extern(Windows) export BOOL ImmSetCompositionStringA( HIMC, DWORD dwIndex, LPVOID lpComp, DWORD, LPVOID lpRead, DWORD); -extern(Windows) export BOOL ImmSetCompositionStringW( HIMC, DWORD dwIndex, LPVOID lpComp, DWORD, LPVOID lpRead, DWORD); -// #ifdef UNICODE -// #... -// #else -alias ImmSetCompositionStringA ImmSetCompositionString; -// #endif // !UNICODE - -extern(Windows) export DWORD ImmGetCandidateListCountA( HIMC, LPDWORD lpdwListCount); -extern(Windows) export DWORD ImmGetCandidateListCountW( HIMC, LPDWORD lpdwListCount); -// #ifdef UNICODE -// #... -// #else -alias ImmGetCandidateListCountA ImmGetCandidateListCount; -// #endif // !UNICODE - -extern(Windows) export DWORD ImmGetCandidateListA( HIMC, DWORD deIndex, LPCANDIDATELIST, DWORD dwBufLen); -extern(Windows) export DWORD ImmGetCandidateListW( HIMC, DWORD deIndex, LPCANDIDATELIST, DWORD dwBufLen); -// #ifdef UNICODE -// #... -// #else -alias ImmGetCandidateListA ImmGetCandidateList; -// #endif // !UNICODE - -extern(Windows) export DWORD ImmGetGuideLineA( HIMC, DWORD dwIndex, LPSTR, DWORD dwBufLen); -extern(Windows) export DWORD ImmGetGuideLineW( HIMC, DWORD dwIndex, LPWSTR, DWORD dwBufLen); -// #ifdef UNICODE -// #... -// #else -alias ImmGetGuideLineA ImmGetGuideLine; -// #endif // !UNICODE - -extern(Windows) export BOOL ImmGetConversionStatus( HIMC, LPDWORD, LPDWORD); -extern(Windows) export BOOL ImmSetConversionStatus( HIMC, DWORD, DWORD); -extern(Windows) export BOOL ImmGetOpenStatus( HIMC); -extern(Windows) export BOOL ImmSetOpenStatus( HIMC, BOOL); - -// #if defined(_WINGDI_) && !defined(NOGDI) -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE -// #endif // defined(_WINGDI_) && !defined(NOGDI) - -extern(Windows) export BOOL ImmConfigureIMEA( HKL, HWND, DWORD, LPVOID); -extern(Windows) export BOOL ImmConfigureIMEW( HKL, HWND, DWORD, LPVOID); -// #ifdef UNICODE -// #... -// #else -alias ImmConfigureIMEA ImmConfigureIME; -// #endif // !UNICODE - -extern(Windows) export LRESULT ImmEscapeA( HKL, HIMC, UINT, LPVOID); -extern(Windows) export LRESULT ImmEscapeW( HKL, HIMC, UINT, LPVOID); -// #ifdef UNICODE -// #... -// #else -alias ImmEscapeA ImmEscape; -// #endif // !UNICODE - -extern(Windows) export DWORD ImmGetConversionListA( HKL, HIMC, LPCSTR, LPCANDIDATELIST, DWORD dwBufLen, UINT uFlag); -extern(Windows) export DWORD ImmGetConversionListW( HKL, HIMC, LPCWSTR, LPCANDIDATELIST, DWORD dwBufLen, UINT uFlag); -// #ifdef UNICODE -// #... -// #else -alias ImmGetConversionListA ImmGetConversionList; -// #endif // !UNICODE - -extern(Windows) export BOOL ImmNotifyIME( HIMC, DWORD dwAction, DWORD dwIndex, DWORD dwValue); - -extern(Windows) export BOOL ImmGetStatusWindowPos( HIMC, LPPOINT); -extern(Windows) export BOOL ImmSetStatusWindowPos( HIMC, LPPOINT); -extern(Windows) export BOOL ImmGetCompositionWindow( HIMC, LPCOMPOSITIONFORM); -extern(Windows) export BOOL ImmSetCompositionWindow( HIMC, LPCOMPOSITIONFORM); -extern(Windows) export BOOL ImmGetCandidateWindow( HIMC, DWORD, LPCANDIDATEFORM); -extern(Windows) export BOOL ImmSetCandidateWindow( HIMC, LPCANDIDATEFORM); - -extern(Windows) export BOOL ImmIsUIMessageA( HWND, UINT, WPARAM, LPARAM); -extern(Windows) export BOOL ImmIsUIMessageW( HWND, UINT, WPARAM, LPARAM); -// #ifdef UNICODE -// #... -// #else -alias ImmIsUIMessageA ImmIsUIMessage; -// #endif // !UNICODE - -extern(Windows) export UINT ImmGetVirtualKey( HWND); - -extern(Windows) alias int function(LPCSTR, DWORD, LPCSTR, LPVOID) REGISTERWORDENUMPROCA; -extern(Windows) alias int function(LPCWSTR, DWORD, LPCWSTR, LPVOID) REGISTERWORDENUMPROCW; -// #ifdef UNICODE -// #... -// #else -alias REGISTERWORDENUMPROCA REGISTERWORDENUMPROC; -// #endif // !UNICODE - -extern(Windows) export BOOL ImmRegisterWordA( HKL, LPCSTR lpszReading, DWORD, LPCSTR lpszRegister); -extern(Windows) export BOOL ImmRegisterWordW( HKL, LPCWSTR lpszReading, DWORD, LPCWSTR lpszRegister); -// #ifdef UNICODE -// #... -// #else -alias ImmRegisterWordA ImmRegisterWord; -// #endif // !UNICODE - -extern(Windows) export BOOL ImmUnregisterWordA( HKL, LPCSTR lpszReading, DWORD, LPCSTR lpszUnregister); -extern(Windows) export BOOL ImmUnregisterWordW( HKL, LPCWSTR lpszReading, DWORD, LPCWSTR lpszUnregister); -// #ifdef UNICODE -// #... -// #else -alias ImmUnregisterWordA ImmUnregisterWord; -// #endif // !UNICODE - -extern(Windows) export UINT ImmGetRegisterWordStyleA( HKL, UINT nItem, LPSTYLEBUFA); -extern(Windows) export UINT ImmGetRegisterWordStyleW( HKL, UINT nItem, LPSTYLEBUFW); -// #ifdef UNICODE -// #... -// #else -alias ImmGetRegisterWordStyleA ImmGetRegisterWordStyle; -// #endif // !UNICODE - -extern(Windows) export UINT ImmEnumRegisterWordA( HKL, REGISTERWORDENUMPROCA, LPCSTR lpszReading, DWORD, LPCSTR lpszRegister, LPVOID); -extern(Windows) export UINT ImmEnumRegisterWordW( HKL, REGISTERWORDENUMPROCW, LPCWSTR lpszReading, DWORD, LPCWSTR lpszRegister, LPVOID); -// #ifdef UNICODE -// #... -// #else -alias ImmEnumRegisterWordA ImmEnumRegisterWord; -// #endif // !UNICODE - -// #if (WINVER >= 0x040A) -extern(Windows) export BOOL ImmDisableIME( DWORD); -extern(Windows) export BOOL ImmEnumInputContext(DWORD idThread, IMCENUMPROC lpfn, LPARAM lParam); -extern(Windows) export DWORD ImmGetImeMenuItemsA( HIMC, DWORD, DWORD, LPIMEMENUITEMINFOA, LPIMEMENUITEMINFOA, DWORD); -extern(Windows) export DWORD ImmGetImeMenuItemsW( HIMC, DWORD, DWORD, LPIMEMENUITEMINFOW, LPIMEMENUITEMINFOW, DWORD); -// #ifdef UNICODE -// #... -// #else -alias ImmGetImeMenuItemsA ImmGetImeMenuItems; -// #endif // !UNICODE -// #endif /* WINVER >= 0x040A */ - -enum : uint { IMC_GETCANDIDATEPOS = 0x0007 } -enum : uint { IMC_SETCANDIDATEPOS = 0x0008 } -enum : uint { IMC_GETCOMPOSITIONFONT = 0x0009 } -enum : uint { IMC_SETCOMPOSITIONFONT = 0x000A } -enum : uint { IMC_GETCOMPOSITIONWINDOW = 0x000B } -enum : uint { IMC_SETCOMPOSITIONWINDOW = 0x000C } -enum : uint { IMC_GETSTATUSWINDOWPOS = 0x000F } -enum : uint { IMC_SETSTATUSWINDOWPOS = 0x0010 } -enum : uint { IMC_CLOSESTATUSWINDOW = 0x0021 } -enum : uint { IMC_OPENSTATUSWINDOW = 0x0022 } - -enum : uint { NI_OPENCANDIDATE = 0x0010 } -enum : uint { NI_CLOSECANDIDATE = 0x0011 } -enum : uint { NI_SELECTCANDIDATESTR = 0x0012 } -enum : uint { NI_CHANGECANDIDATELIST = 0x0013 } -enum : uint { NI_FINALIZECONVERSIONRESULT = 0x0014 } -enum : uint { NI_COMPOSITIONSTR = 0x0015 } -enum : uint { NI_SETCANDIDATE_PAGESTART = 0x0016 } -enum : uint { NI_SETCANDIDATE_PAGESIZE = 0x0017 } -enum : uint { NI_IMEMENUSELECTED = 0x0018 } - -enum : uint { ISC_SHOWUICANDIDATEWINDOW = 0x00000001 } -enum : uint { ISC_SHOWUICOMPOSITIONWINDOW = 0x80000000 } -enum : uint { ISC_SHOWUIGUIDELINE = 0x40000000 } -enum : uint { ISC_SHOWUIALLCANDIDATEWINDOW = 0x0000000F } -enum : uint { ISC_SHOWUIALL = 0xC000000F } - -enum : uint { CPS_COMPLETE = 0x0001 } -enum : uint { CPS_CONVERT = 0x0002 } -enum : uint { CPS_REVERT = 0x0003 } -enum : uint { CPS_CANCEL = 0x0004 } - -enum : uint { MOD_ALT = 0x0001 } -enum : uint { MOD_CONTROL = 0x0002 } -enum : uint { MOD_SHIFT = 0x0004 } - -enum : uint { MOD_LEFT = 0x8000 } -enum : uint { MOD_RIGHT = 0x4000 } - -enum : uint { MOD_ON_KEYUP = 0x0800 } -enum : uint { MOD_IGNORE_ALL_MODIFIER = 0x0400 } - -enum : uint { IME_CHOTKEY_IME_NONIME_TOGGLE = 0x10 } -enum : uint { IME_CHOTKEY_SHAPE_TOGGLE = 0x11 } -enum : uint { IME_CHOTKEY_SYMBOL_TOGGLE = 0x12 } - -enum : uint { IME_JHOTKEY_CLOSE_OPEN = 0x30 } - -enum : uint { IME_KHOTKEY_SHAPE_TOGGLE = 0x50 } -enum : uint { IME_KHOTKEY_HANJACONVERT = 0x51 } -enum : uint { IME_KHOTKEY_ENGLISH = 0x52 } - -enum : uint { IME_THOTKEY_IME_NONIME_TOGGLE = 0x70 } -enum : uint { IME_THOTKEY_SHAPE_TOGGLE = 0x71 } -enum : uint { IME_THOTKEY_SYMBOL_TOGGLE = 0x72 } - -enum : uint { IME_HOTKEY_DSWITCH_FIRST = 0x100 } -enum : uint { IME_HOTKEY_DSWITCH_LAST = 0x11F } - -enum : uint { IME_HOTKEY_PRIVATE_FIRST = 0x200 } -enum : uint { IME_ITHOTKEY_RESEND_RESULTSTR = 0x200 } -enum : uint { IME_ITHOTKEY_PREVIOUS_COMPOSITION = 0x201 } -enum : uint { IME_ITHOTKEY_UISTYLE_TOGGLE = 0x202 } -enum : uint { IME_ITHOTKEY_RECONVERTSTRING = 0x203 } -enum : uint { IME_HOTKEY_PRIVATE_LAST = 0x21F } - -enum : uint { GCS_COMPREADSTR = 0x0001 } -enum : uint { GCS_COMPREADATTR = 0x0002 } -enum : uint { GCS_COMPREADCLAUSE = 0x0004 } -enum : uint { GCS_COMPSTR = 0x0008 } -enum : uint { GCS_COMPATTR = 0x0010 } -enum : uint { GCS_COMPCLAUSE = 0x0020 } -enum : uint { GCS_CURSORPOS = 0x0080 } -enum : uint { GCS_DELTASTART = 0x0100 } -enum : uint { GCS_RESULTREADSTR = 0x0200 } -enum : uint { GCS_RESULTREADCLAUSE = 0x0400 } -enum : uint { GCS_RESULTSTR = 0x0800 } -enum : uint { GCS_RESULTCLAUSE = 0x1000 } - -enum : uint { CS_INSERTCHAR = 0x2000 } -enum : uint { CS_NOMOVECARET = 0x4000 } - -enum : uint { IMEVER_0310 = 0x0003000A } -enum : uint { IMEVER_0400 = 0x00040000 } - -enum : uint { IME_PROP_AT_CARET = 0x00010000 } -enum : uint { IME_PROP_SPECIAL_UI = 0x00020000 } -enum : uint { IME_PROP_CANDLIST_START_FROM_1 = 0x00040000 } -enum : uint { IME_PROP_UNICODE = 0x00080000 } -enum : uint { IME_PROP_COMPLETE_ON_UNSELECT = 0x00100000 } - -enum : uint { UI_CAP_2700 = 0x00000001 } -enum : uint { UI_CAP_ROT90 = 0x00000002 } -enum : uint { UI_CAP_ROTANY = 0x00000004 } - -enum : uint { SCS_CAP_COMPSTR = 0x00000001 } -enum : uint { SCS_CAP_MAKEREAD = 0x00000002 } -enum : uint { SCS_CAP_SETRECONVERTSTRING = 0x00000004 } - -enum : uint { SELECT_CAP_CONVERSION = 0x00000001 } -enum : uint { SELECT_CAP_SENTENCE = 0x00000002 } - -enum : uint { GGL_LEVEL = 0x00000001 } -enum : uint { GGL_INDEX = 0x00000002 } -enum : uint { GGL_STRING = 0x00000003 } -enum : uint { GGL_PRIVATE = 0x00000004 } - -enum : uint { GL_LEVEL_NOGUIDELINE = 0x00000000 } -enum : uint { GL_LEVEL_FATAL = 0x00000001 } -enum : uint { GL_LEVEL_ERROR = 0x00000002 } -enum : uint { GL_LEVEL_WARNING = 0x00000003 } -enum : uint { GL_LEVEL_INFORMATION = 0x00000004 } - -enum : uint { GL_ID_UNKNOWN = 0x00000000 } -enum : uint { GL_ID_NOMODULE = 0x00000001 } -enum : uint { GL_ID_NODICTIONARY = 0x00000010 } -enum : uint { GL_ID_CANNOTSAVE = 0x00000011 } -enum : uint { GL_ID_NOCONVERT = 0x00000020 } -enum : uint { GL_ID_TYPINGERROR = 0x00000021 } -enum : uint { GL_ID_TOOMANYSTROKE = 0x00000022 } -enum : uint { GL_ID_READINGCONFLICT = 0x00000023 } -enum : uint { GL_ID_INPUTREADING = 0x00000024 } -enum : uint { GL_ID_INPUTRADICAL = 0x00000025 } -enum : uint { GL_ID_INPUTCODE = 0x00000026 } -enum : uint { GL_ID_INPUTSYMBOL = 0x00000027 } -enum : uint { GL_ID_CHOOSECANDIDATE = 0x00000028 } -enum : uint { GL_ID_REVERSECONVERSION = 0x00000029 } -enum : uint { GL_ID_PRIVATE_FIRST = 0x00008000 } -enum : uint { GL_ID_PRIVATE_LAST = 0x0000FFFF } - -enum : DWORD { IGP_GETIMEVERSION = cast(DWORD)-4 } -enum : uint { IGP_PROPERTY = 0x00000004 } -enum : uint { IGP_CONVERSION = 0x00000008 } -enum : uint { IGP_SENTENCE = 0x0000000c } -enum : uint { IGP_UI = 0x00000010 } -enum : uint { IGP_SETCOMPSTR = 0x00000014 } -enum : uint { IGP_SELECT = 0x00000018 } - -enum : uint { SCS_SETSTR = GCS_COMPREADSTR|GCS_COMPSTR } -enum : uint { SCS_CHANGEATTR = GCS_COMPREADATTR|GCS_COMPATTR } -enum : uint { SCS_CHANGECLAUSE = GCS_COMPREADCLAUSE|GCS_COMPCLAUSE } -enum : uint { SCS_SETRECONVERTSTRING = 0x00010000 } -enum : uint { SCS_QUERYRECONVERTSTRING = 0x00020000 } - -enum : uint { ATTR_INPUT = 0x00 } -enum : uint { ATTR_TARGET_CONVERTED = 0x01 } -enum : uint { ATTR_CONVERTED = 0x02 } -enum : uint { ATTR_TARGET_NOTCONVERTED = 0x03 } -enum : uint { ATTR_INPUT_ERROR = 0x04 } -enum : uint { ATTR_FIXEDCONVERTED = 0x05 } - -enum : uint { CFS_DEFAULT = 0x0000 } -enum : uint { CFS_RECT = 0x0001 } -enum : uint { CFS_POINT = 0x0002 } -enum : uint { CFS_FORCE_POSITION = 0x0020 } -enum : uint { CFS_CANDIDATEPOS = 0x0040 } -enum : uint { CFS_EXCLUDE = 0x0080 } - -enum : uint { GCL_CONVERSION = 0x0001 } -enum : uint { GCL_REVERSECONVERSION = 0x0002 } -enum : uint { GCL_REVERSE_LENGTH = 0x0003 } - -enum : uint { IME_CMODE_ALPHANUMERIC = 0x0000 } -enum : uint { IME_CMODE_NATIVE = 0x0001 } -alias IME_CMODE_NATIVE IME_CMODE_CHINESE; - -alias IME_CMODE_NATIVE IME_CMODE_HANGEUL; -alias IME_CMODE_NATIVE IME_CMODE_HANGUL; -alias IME_CMODE_NATIVE IME_CMODE_JAPANESE; -enum : uint { IME_CMODE_KATAKANA = 0x0002 } -enum : uint { IME_CMODE_LANGUAGE = 0x0003 } -enum : uint { IME_CMODE_FULLSHAPE = 0x0008 } -enum : uint { IME_CMODE_ROMAN = 0x0010 } -enum : uint { IME_CMODE_CHARCODE = 0x0020 } -enum : uint { IME_CMODE_HANJACONVERT = 0x0040 } -enum : uint { IME_CMODE_SOFTKBD = 0x0080 } -enum : uint { IME_CMODE_NOCONVERSION = 0x0100 } -enum : uint { IME_CMODE_EUDC = 0x0200 } -enum : uint { IME_CMODE_SYMBOL = 0x0400 } -enum : uint { IME_CMODE_FIXED = 0x0800 } - -enum : uint { IME_SMODE_NONE = 0x0000 } -enum : uint { IME_SMODE_PLAURALCLAUSE = 0x0001 } -enum : uint { IME_SMODE_SINGLECONVERT = 0x0002 } -enum : uint { IME_SMODE_AUTOMATIC = 0x0004 } -enum : uint { IME_SMODE_PHRASEPREDICT = 0x0008 } -enum : uint { IME_SMODE_CONVERSATION = 0x0010 } - -enum : uint { IME_CAND_UNKNOWN = 0x0000 } -enum : uint { IME_CAND_READ = 0x0001 } -enum : uint { IME_CAND_CODE = 0x0002 } -enum : uint { IME_CAND_MEANING = 0x0003 } -enum : uint { IME_CAND_RADICAL = 0x0004 } -enum : uint { IME_CAND_STROKE = 0x0005 } - -enum : uint { IMN_CLOSESTATUSWINDOW = 0x0001 } -enum : uint { IMN_OPENSTATUSWINDOW = 0x0002 } -enum : uint { IMN_CHANGECANDIDATE = 0x0003 } -enum : uint { IMN_CLOSECANDIDATE = 0x0004 } -enum : uint { IMN_OPENCANDIDATE = 0x0005 } -enum : uint { IMN_SETCONVERSIONMODE = 0x0006 } -enum : uint { IMN_SETSENTENCEMODE = 0x0007 } -enum : uint { IMN_SETOPENSTATUS = 0x0008 } -enum : uint { IMN_SETCANDIDATEPOS = 0x0009 } -enum : uint { IMN_SETCOMPOSITIONFONT = 0x000A } -enum : uint { IMN_SETCOMPOSITIONWINDOW = 0x000B } -enum : uint { IMN_SETSTATUSWINDOWPOS = 0x000C } -enum : uint { IMN_GUIDELINE = 0x000D } -enum : uint { IMN_PRIVATE = 0x000E } - -// #if (WINVER >= 0x040A) - -enum : uint { IMR_COMPOSITIONWINDOW = 0x0001 } -enum : uint { IMR_CANDIDATEWINDOW = 0x0002 } -enum : uint { IMR_COMPOSITIONFONT = 0x0003 } -enum : uint { IMR_RECONVERTSTRING = 0x0004 } -enum : uint { IMR_CONFIRMRECONVERTSTRING = 0x0005 } -enum : uint { IMR_QUERYCHARPOSITION = 0x0006 } -enum : uint { IMR_DOCUMENTFEED = 0x0007 } -// #endif /* WINVER >= 0x040A */ - -enum { IMM_ERROR_NODATA = -1 } -enum { IMM_ERROR_GENERAL = -2 } - -enum : uint { IME_CONFIG_GENERAL = 1 } -enum : uint { IME_CONFIG_REGISTERWORD = 2 } -enum : uint { IME_CONFIG_SELECTDICTIONARY = 3 } - -enum : uint { IME_ESC_QUERY_SUPPORT = 0x0003 } -enum : uint { IME_ESC_RESERVED_FIRST = 0x0004 } -enum : uint { IME_ESC_RESERVED_LAST = 0x07FF } -enum : uint { IME_ESC_PRIVATE_FIRST = 0x0800 } -enum : uint { IME_ESC_PRIVATE_LAST = 0x0FFF } - -enum : uint { IME_ESC_SEQUENCE_TO_INTERNAL = 0x1001 } -enum : uint { IME_ESC_GET_EUDC_DICTIONARY = 0x1003 } -enum : uint { IME_ESC_SET_EUDC_DICTIONARY = 0x1004 } -enum : uint { IME_ESC_MAX_KEY = 0x1005 } -enum : uint { IME_ESC_IME_NAME = 0x1006 } -enum : uint { IME_ESC_SYNC_HOTKEY = 0x1007 } -enum : uint { IME_ESC_HANJA_MODE = 0x1008 } -enum : uint { IME_ESC_AUTOMATA = 0x1009 } -enum : uint { IME_ESC_PRIVATE_HOTKEY = 0x100a } -enum : uint { IME_ESC_GETHELPFILENAME = 0x100b } - -enum : uint { IME_REGWORD_STYLE_EUDC = 0x00000001 } -enum : uint { IME_REGWORD_STYLE_USER_FIRST = 0x80000000 } -enum : uint { IME_REGWORD_STYLE_USER_LAST = 0xFFFFFFFF } - -// #if (WINVER >= 0x040A) - -enum : uint { IACE_CHILDREN = 0x0001 } -enum : uint { IACE_DEFAULT = 0x0010 } -enum : uint { IACE_IGNORENOCONTEXT = 0x0020 } - -enum : uint { IGIMIF_RIGHTMENU = 0x0001 } - -enum : uint { IGIMII_CMODE = 0x0001 } -enum : uint { IGIMII_SMODE = 0x0002 } -enum : uint { IGIMII_CONFIGURE = 0x0004 } -enum : uint { IGIMII_TOOLS = 0x0008 } -enum : uint { IGIMII_HELP = 0x0010 } -enum : uint { IGIMII_OTHER = 0x0020 } -enum : uint { IGIMII_INPUTTOOLS = 0x0040 } - -enum : uint { IMFT_RADIOCHECK = 0x00001 } -enum : uint { IMFT_SEPARATOR = 0x00002 } -enum : uint { IMFT_SUBMENU = 0x00004 } - -alias MFS_GRAYED IMFS_GRAYED; -alias MFS_DISABLED IMFS_DISABLED; -alias MFS_CHECKED IMFS_CHECKED; -alias MFS_HILITE IMFS_HILITE; -alias MFS_ENABLED IMFS_ENABLED; -alias MFS_UNCHECKED IMFS_UNCHECKED; -alias MFS_UNHILITE IMFS_UNHILITE; -alias MFS_DEFAULT IMFS_DEFAULT; - -// #endif /* WINVER >= 0x040A */ - -enum : uint { SOFTKEYBOARD_TYPE_T1 = 0x0001 } - -enum : uint { SOFTKEYBOARD_TYPE_C1 = 0x0002 } - -// #endif // _IMM_SDK_DEFINED_ - -// #ifdef __cplusplus -// } -// #endif - -// #endif // _IMM_ DELETED src/win32/ansi/mmsystem.d Index: src/win32/ansi/mmsystem.d ================================================================== --- src/win32/ansi/mmsystem.d +++ src/win32/ansi/mmsystem.d @@ -1,3667 +0,0 @@ -module win32.ansi.mmsystem; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.winbase; - -// #ifndef _INC_MMSYSTEM -// #define _INC_MMSYSTEM - -// #ifdef _WIN32 -align(1): -// #else -// #ifndef RC_INVOKED -// #... -// #endif -// #endif - -// #ifdef __cplusplus -// extern "C" { /* Assume C declarations for C++ */ -// #endif /* __cplusplus */ - -// #ifdef _WIN32 -// #ifndef _WINMM_ -// #define WINMMAPI DECLSPEC_IMPORT -// #else -// #... -// #endif -// #define _loadds -// #define _huge -// #else -// #... -// #endif - -// #ifdef _MAC -// #... -// #endif //_MAC - -enum : uint { MAXPNAMELEN = 32 } -enum : uint { MAXERRORLENGTH = 256 } -enum : uint { MAX_JOYSTICKOEMVXDNAME = 260 } - -// #if (WINVER <= 0x0400) -// #ifndef MM_MICROSOFT -// #... -// #endif - -// #ifndef MM_MIDI_MAPPER -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #endif -// #endif - -// #ifdef _WIN32 -alias UINT MMVERSION; -// #else -// ... -// #endif -alias UINT MMRESULT; - -// #define _MMRESULT_ - -alias UINT* LPUINT; - -struct mmtime_tag { - UINT wType; -union { - DWORD ms; - DWORD sample; - DWORD cb; - DWORD ticks; - -struct { - BYTE hour; - BYTE min; - BYTE sec; - BYTE frame; - BYTE fps; - BYTE dummy; -// #ifdef _WIN32 - BYTE pad[2]; -// #endif -} - -struct { - DWORD songptrpos; -} - -} - -} -alias mmtime_tag MMTIME; -alias mmtime_tag* PMMTIME; -alias mmtime_tag* NPMMTIME; -alias mmtime_tag* LPMMTIME; - -enum : uint { TIME_MS = 0x0001 } -enum : uint { TIME_SAMPLES = 0x0002 } -enum : uint { TIME_BYTES = 0x0004 } -enum : uint { TIME_SMPTE = 0x0008 } -enum : uint { TIME_MIDI = 0x0010 } -enum : uint { TIME_TICKS = 0x0020 } - -uint MAKEFOURCC(ubyte ch0, ubyte ch1, ubyte ch2, ubyte ch3){ return ch0 | (ch1 << 8) | (ch2 << 16) | (ch3 << 24); } - -enum : uint { MM_JOY1MOVE = 0x3A0 } -enum : uint { MM_JOY2MOVE = 0x3A1 } -enum : uint { MM_JOY1ZMOVE = 0x3A2 } -enum : uint { MM_JOY2ZMOVE = 0x3A3 } -enum : uint { MM_JOY1BUTTONDOWN = 0x3B5 } -enum : uint { MM_JOY2BUTTONDOWN = 0x3B6 } -enum : uint { MM_JOY1BUTTONUP = 0x3B7 } -enum : uint { MM_JOY2BUTTONUP = 0x3B8 } - -enum : uint { MM_MCINOTIFY = 0x3B9 } - -enum : uint { MM_WOM_OPEN = 0x3BB } -enum : uint { MM_WOM_CLOSE = 0x3BC } -enum : uint { MM_WOM_DONE = 0x3BD } - -enum : uint { MM_WIM_OPEN = 0x3BE } -enum : uint { MM_WIM_CLOSE = 0x3BF } -enum : uint { MM_WIM_DATA = 0x3C0 } - -enum : uint { MM_MIM_OPEN = 0x3C1 } -enum : uint { MM_MIM_CLOSE = 0x3C2 } -enum : uint { MM_MIM_DATA = 0x3C3 } -enum : uint { MM_MIM_LONGDATA = 0x3C4 } -enum : uint { MM_MIM_ERROR = 0x3C5 } -enum : uint { MM_MIM_LONGERROR = 0x3C6 } - -enum : uint { MM_MOM_OPEN = 0x3C7 } -enum : uint { MM_MOM_CLOSE = 0x3C8 } -enum : uint { MM_MOM_DONE = 0x3C9 } - -// #ifndef MM_DRVM_OPEN -enum : uint { MM_DRVM_OPEN = 0x3D0 } -enum : uint { MM_DRVM_CLOSE = 0x3D1 } -enum : uint { MM_DRVM_DATA = 0x3D2 } -enum : uint { MM_DRVM_ERROR = 0x3D3 } -// #endif - -enum : uint { MM_STREAM_OPEN = 0x3D4 } -enum : uint { MM_STREAM_CLOSE = 0x3D5 } -enum : uint { MM_STREAM_DONE = 0x3D6 } -enum : uint { MM_STREAM_ERROR = 0x3D7 } - -// #if(WINVER >= 0x0400) -enum : uint { MM_MOM_POSITIONCB = 0x3CA } - -// #ifndef MM_MCISIGNAL -enum : uint { MM_MCISIGNAL = 0x3CB } -// #endif - -enum : uint { MM_MIM_MOREDATA = 0x3CC } - -// #endif /* WINVER >= 0x0400 */ -enum : uint { MM_MIXM_LINE_CHANGE = 0x3D0 } -enum : uint { MM_MIXM_CONTROL_CHANGE = 0x3D1 } - -enum : uint { MMSYSERR_BASE = 0 } -enum : uint { WAVERR_BASE = 32 } -enum : uint { MIDIERR_BASE = 64 } -enum : uint { TIMERR_BASE = 96 } -enum : uint { JOYERR_BASE = 160 } -enum : uint { MCIERR_BASE = 256 } -enum : uint { MIXERR_BASE = 1024 } - -enum : uint { MCI_STRING_OFFSET = 512 } -enum : uint { MCI_VD_OFFSET = 1024 } -enum : uint { MCI_CD_OFFSET = 1088 } -enum : uint { MCI_WAVE_OFFSET = 1152 } -enum : uint { MCI_SEQ_OFFSET = 1216 } - -enum : uint { MMSYSERR_NOERROR = 0 } -enum : uint { MMSYSERR_ERROR = MMSYSERR_BASE + 1 } -enum : uint { MMSYSERR_BADDEVICEID = MMSYSERR_BASE + 2 } -enum : uint { MMSYSERR_NOTENABLED = MMSYSERR_BASE + 3 } -enum : uint { MMSYSERR_ALLOCATED = MMSYSERR_BASE + 4 } -enum : uint { MMSYSERR_INVALHANDLE = MMSYSERR_BASE + 5 } -enum : uint { MMSYSERR_NODRIVER = MMSYSERR_BASE + 6 } -enum : uint { MMSYSERR_NOMEM = MMSYSERR_BASE + 7 } -enum : uint { MMSYSERR_NOTSUPPORTED = MMSYSERR_BASE + 8 } -enum : uint { MMSYSERR_BADERRNUM = MMSYSERR_BASE + 9 } -enum : uint { MMSYSERR_INVALFLAG = MMSYSERR_BASE + 10 } -enum : uint { MMSYSERR_INVALPARAM = MMSYSERR_BASE + 11 } -enum : uint { MMSYSERR_HANDLEBUSY = MMSYSERR_BASE + 12 } - -enum : uint { MMSYSERR_INVALIDALIAS = MMSYSERR_BASE + 13 } -enum : uint { MMSYSERR_BADDB = MMSYSERR_BASE + 14 } -enum : uint { MMSYSERR_KEYNOTFOUND = MMSYSERR_BASE + 15 } -enum : uint { MMSYSERR_READERROR = MMSYSERR_BASE + 16 } -enum : uint { MMSYSERR_WRITEERROR = MMSYSERR_BASE + 17 } -enum : uint { MMSYSERR_DELETEERROR = MMSYSERR_BASE + 18 } -enum : uint { MMSYSERR_VALNOTFOUND = MMSYSERR_BASE + 19 } -enum : uint { MMSYSERR_NODRIVERCB = MMSYSERR_BASE + 20 } -enum : uint { MMSYSERR_MOREDATA = MMSYSERR_BASE + 21 } -enum : uint { MMSYSERR_LASTERROR = MMSYSERR_BASE + 21 } - -// #if (WINVER < 0x030a) || defined(_WIN32) -alias void* HDRVR; -// #endif /* ifdef WINVER < 0x030a */ - -// #ifndef MMNODRV - -// #ifdef _WIN32 -struct DRVCONFIGINFOEX { - DWORD dwDCISize; - LPCWSTR lpszDCISectionName; - LPCWSTR lpszDCIAliasName; - DWORD dnDevNode; -} -alias DRVCONFIGINFOEX* PDRVCONFIGINFOEX; -alias DRVCONFIGINFOEX* NPDRVCONFIGINFOEX; -alias DRVCONFIGINFOEX* LPDRVCONFIGINFOEX; - -// #else -// ... -// #endif - -// #if (WINVER < 0x030a) || defined(_WIN32) - -// #ifndef DRV_LOAD - -enum : uint { DRV_LOAD = 0x0001 } -enum : uint { DRV_ENABLE = 0x0002 } -enum : uint { DRV_OPEN = 0x0003 } -enum : uint { DRV_CLOSE = 0x0004 } -enum : uint { DRV_DISABLE = 0x0005 } -enum : uint { DRV_FREE = 0x0006 } -enum : uint { DRV_CONFIGURE = 0x0007 } -enum : uint { DRV_QUERYCONFIGURE = 0x0008 } -enum : uint { DRV_INSTALL = 0x0009 } -enum : uint { DRV_REMOVE = 0x000A } -enum : uint { DRV_EXITSESSION = 0x000B } -enum : uint { DRV_POWER = 0x000F } -enum : uint { DRV_RESERVED = 0x0800 } -enum : uint { DRV_USER = 0x4000 } - -// #ifdef _WIN32 -struct tagDRVCONFIGINFO { - DWORD dwDCISize; - LPCWSTR lpszDCISectionName; - LPCWSTR lpszDCIAliasName; -} -alias tagDRVCONFIGINFO DRVCONFIGINFO; -alias tagDRVCONFIGINFO* PDRVCONFIGINFO; -alias tagDRVCONFIGINFO* NPDRVCONFIGINFO; -alias tagDRVCONFIGINFO* LPDRVCONFIGINFO; - -// #else -// ... -// #endif - -enum : uint { DRVCNF_CANCEL = 0x0000 } -enum : uint { DRVCNF_OK = 0x0001 } -enum : uint { DRVCNF_RESTART = 0x0002 } - -// #ifdef _WIN32 - -extern(Windows) alias LRESULT function(DWORD_PTR, HDRVR, UINT, LPARAM, LPARAM) DRIVERPROC; - -extern(Windows) export LRESULT CloseDriver(HDRVR hDriver, LPARAM lParam1, LPARAM lParam2); -extern(Windows) export HDRVR OpenDriver(LPCWSTR szDriverName, LPCWSTR szSectionName, LPARAM lParam2); -extern(Windows) export LRESULT SendDriverMessage(HDRVR hDriver, UINT message, LPARAM lParam1, LPARAM lParam2); -extern(Windows) export HMODULE DrvGetModuleHandle(HDRVR hDriver); -extern(Windows) export HMODULE GetDriverModuleHandle(HDRVR hDriver); -extern(Windows) export LRESULT DefDriverProc(DWORD_PTR dwDriverIdentifier, HDRVR hdrvr, UINT uMsg, LPARAM lParam1, LPARAM lParam2); -// #else -// ... -// #... -// #endif /* ifdef _WIN32 */ -// #endif /* DRV_LOAD */ -// #endif /* ifdef (WINVER < 0x030a) || defined(_WIN32) */ - -// #if (WINVER >= 0x030a) - -alias DRVCNF_CANCEL DRV_CANCEL; -alias DRVCNF_OK DRV_OK; -alias DRVCNF_RESTART DRV_RESTART; - -// #endif /* ifdef WINVER >= 0x030a */ - -alias DRV_RESERVED DRV_MCI_FIRST; -enum : uint { DRV_MCI_LAST = DRV_RESERVED + 0xFFF } - -// #endif /* ifndef MMNODRV */ - -enum : uint { CALLBACK_TYPEMASK = 0x00070000 } -enum : uint { CALLBACK_NULL = 0x00000000 } -enum : uint { CALLBACK_WINDOW = 0x00010000 } -enum : uint { CALLBACK_TASK = 0x00020000 } -enum : uint { CALLBACK_FUNCTION = 0x00030000 } -// #ifdef _WIN32 -enum : uint { CALLBACK_THREAD = CALLBACK_TASK } -enum : uint { CALLBACK_EVENT = 0x00050000 } -// #endif -// typedef void (CALLBACK DRVCALLBACK)(HDRVR hdrvr, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2); - -extern(Windows) alias void function(HDRVR hdrvr, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2) LPDRVCALLBACK; -// #ifdef _WIN32 -alias LPDRVCALLBACK PDRVCALLBACK; -// #endif - -// #ifndef MMNOMMSYSTEM - -// #if (WINVER <= 0x030A) -// ... -// #endif -// #ifdef _WIN32 -alias OutputDebugString OutputDebugStr; -// #else -// ... -// #endif - -// #endif /* ifndef MMNOMMSYSTEM */ - -// #ifndef MMNOSOUND - -// #ifdef _WIN32 - -extern(Windows) export BOOL sndPlaySoundA(LPCSTR pszSound, UINT fuSound); -extern(Windows) export BOOL sndPlaySoundW(LPCWSTR pszSound, UINT fuSound); -// #ifdef UNICODE -// #... -// #else -alias sndPlaySoundA sndPlaySound; -// #endif // !UNICODE - -// #else -// ... -// #endif - -enum : uint { SND_SYNC = 0x0000 } -enum : uint { SND_ASYNC = 0x0001 } -enum : uint { SND_NODEFAULT = 0x0002 } -enum : uint { SND_MEMORY = 0x0004 } -enum : uint { SND_LOOP = 0x0008 } -enum : uint { SND_NOSTOP = 0x0010 } - -enum : uint { SND_NOWAIT = 0x00002000 } -enum : uint { SND_ALIAS = 0x00010000 } -enum : uint { SND_ALIAS_ID = 0x00110000 } -enum : uint { SND_FILENAME = 0x00020000 } -enum : uint { SND_RESOURCE = 0x00040004 } -// #if(WINVER >= 0x0400) -enum : uint { SND_PURGE = 0x0040 } -enum : uint { SND_APPLICATION = 0x0080 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { SND_ALIAS_START = 0 } - -// #ifdef _WIN32 -// #define sndAlias(ch0, ch1) (SND_ALIAS_START + (DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8)) - -// #define SND_ALIAS_SYSTEMASTERISK sndAlias('S', '*') -// #define SND_ALIAS_SYSTEMQUESTION sndAlias('S', '?') -// #define SND_ALIAS_SYSTEMHAND sndAlias('S', 'H') -// #define SND_ALIAS_SYSTEMEXIT sndAlias('S', 'E') -// #define SND_ALIAS_SYSTEMSTART sndAlias('S', 'S') -// #define SND_ALIAS_SYSTEMWELCOME sndAlias('S', 'W') -// #define SND_ALIAS_SYSTEMEXCLAMATION sndAlias('S', '!') -// #define SND_ALIAS_SYSTEMDEFAULT sndAlias('S', 'D') - -extern(Windows) export BOOL PlaySoundA(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound); -extern(Windows) export BOOL PlaySoundW(LPCWSTR pszSound, HMODULE hmod, DWORD fdwSound); -// #ifdef UNICODE -// #... -// #else -alias PlaySoundA PlaySound; -// #endif // !UNICODE - -// #else -// ... -// #endif - -// #endif /* ifndef MMNOSOUND */ - -// #ifndef MMNOWAVE - -enum : uint { WAVERR_BADFORMAT = WAVERR_BASE + 0 } -enum : uint { WAVERR_STILLPLAYING = WAVERR_BASE + 1 } -enum : uint { WAVERR_UNPREPARED = WAVERR_BASE + 2 } -enum : uint { WAVERR_SYNC = WAVERR_BASE + 3 } -enum : uint { WAVERR_LASTERROR = WAVERR_BASE + 3 } - -alias void* HWAVE; -alias void* HWAVEIN; -alias void* HWAVEOUT; -alias HWAVEIN* LPHWAVEIN; -alias HWAVEOUT* LPHWAVEOUT; -// typedef DRVCALLBACK WAVECALLBACK; -alias LPDRVCALLBACK LPWAVECALLBACK; - -alias MM_WOM_OPEN WOM_OPEN; -alias MM_WOM_CLOSE WOM_CLOSE; -alias MM_WOM_DONE WOM_DONE; -alias MM_WIM_OPEN WIM_OPEN; -alias MM_WIM_CLOSE WIM_CLOSE; -alias MM_WIM_DATA WIM_DATA; - -enum : uint { WAVE_MAPPER = cast(UINT)-1 } - -enum : uint { WAVE_FORMAT_QUERY = 0x0001 } -enum : uint { WAVE_ALLOWSYNC = 0x0002 } -// #if(WINVER >= 0x0400) -enum : uint { WAVE_MAPPED = 0x0004 } -enum : uint { WAVE_FORMAT_DIRECT = 0x0008 } -enum : uint { WAVE_FORMAT_DIRECT_QUERY = WAVE_FORMAT_QUERY | WAVE_FORMAT_DIRECT } -// #endif /* WINVER >= 0x0400 */ - -struct wavehdr_tag { - LPSTR lpData; - DWORD dwBufferLength; - DWORD dwBytesRecorded; - DWORD_PTR dwUser; - DWORD dwFlags; - DWORD dwLoops; - wavehdr_tag *lpNext; - DWORD_PTR reserved; -} -alias wavehdr_tag WAVEHDR; -alias wavehdr_tag* PWAVEHDR; -alias wavehdr_tag* NPWAVEHDR; -alias wavehdr_tag* LPWAVEHDR; - -enum : uint { WHDR_DONE = 0x00000001 } -enum : uint { WHDR_PREPARED = 0x00000002 } -enum : uint { WHDR_BEGINLOOP = 0x00000004 } -enum : uint { WHDR_ENDLOOP = 0x00000008 } -enum : uint { WHDR_INQUEUE = 0x00000010 } - -// #ifdef _WIN32 - -struct tagWAVEOUTCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; - DWORD dwSupport; -} -alias tagWAVEOUTCAPSA WAVEOUTCAPSA; -alias tagWAVEOUTCAPSA* PWAVEOUTCAPSA; -alias tagWAVEOUTCAPSA* NPWAVEOUTCAPSA; -alias tagWAVEOUTCAPSA* LPWAVEOUTCAPSA; - -struct tagWAVEOUTCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; - DWORD dwSupport; -} -alias tagWAVEOUTCAPSW WAVEOUTCAPSW; -alias tagWAVEOUTCAPSW* PWAVEOUTCAPSW; -alias tagWAVEOUTCAPSW* NPWAVEOUTCAPSW; -alias tagWAVEOUTCAPSW* LPWAVEOUTCAPSW; - -// #ifdef UNICODE -// ... -// #else -alias WAVEOUTCAPSA WAVEOUTCAPS; -alias PWAVEOUTCAPSA PWAVEOUTCAPS; -alias NPWAVEOUTCAPSA NPWAVEOUTCAPS; -alias LPWAVEOUTCAPSA LPWAVEOUTCAPS; -// #endif // UNICODE -struct tagWAVEOUTCAPS2A { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; - DWORD dwSupport; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagWAVEOUTCAPS2A WAVEOUTCAPS2A; -alias tagWAVEOUTCAPS2A* PWAVEOUTCAPS2A; -alias tagWAVEOUTCAPS2A* NPWAVEOUTCAPS2A; -alias tagWAVEOUTCAPS2A* LPWAVEOUTCAPS2A; - -struct tagWAVEOUTCAPS2W { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; - DWORD dwSupport; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagWAVEOUTCAPS2W WAVEOUTCAPS2W; -alias tagWAVEOUTCAPS2W* PWAVEOUTCAPS2W; -alias tagWAVEOUTCAPS2W* NPWAVEOUTCAPS2W; -alias tagWAVEOUTCAPS2W* LPWAVEOUTCAPS2W; - -// #ifdef UNICODE -// ... -// #else -alias WAVEOUTCAPS2A WAVEOUTCAPS2; -alias PWAVEOUTCAPS2A PWAVEOUTCAPS2; -alias NPWAVEOUTCAPS2A NPWAVEOUTCAPS2; -alias LPWAVEOUTCAPS2A LPWAVEOUTCAPS2; -// #endif // UNICODE - -// #else -// ... -// #endif - -enum : uint { WAVECAPS_PITCH = 0x0001 } -enum : uint { WAVECAPS_PLAYBACKRATE = 0x0002 } -enum : uint { WAVECAPS_VOLUME = 0x0004 } -enum : uint { WAVECAPS_LRVOLUME = 0x0008 } -enum : uint { WAVECAPS_SYNC = 0x0010 } -enum : uint { WAVECAPS_SAMPLEACCURATE = 0x0020 } - -// #ifdef _WIN32 - -struct tagWAVEINCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; -} -alias tagWAVEINCAPSA WAVEINCAPSA; -alias tagWAVEINCAPSA* PWAVEINCAPSA; -alias tagWAVEINCAPSA* NPWAVEINCAPSA; -alias tagWAVEINCAPSA* LPWAVEINCAPSA; - -struct tagWAVEINCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; -} -alias tagWAVEINCAPSW WAVEINCAPSW; -alias tagWAVEINCAPSW* PWAVEINCAPSW; -alias tagWAVEINCAPSW* NPWAVEINCAPSW; -alias tagWAVEINCAPSW* LPWAVEINCAPSW; - -// #ifdef UNICODE -// ... -// #else -alias WAVEINCAPSA WAVEINCAPS; -alias PWAVEINCAPSA PWAVEINCAPS; -alias NPWAVEINCAPSA NPWAVEINCAPS; -alias LPWAVEINCAPSA LPWAVEINCAPS; -// #endif // UNICODE -struct tagWAVEINCAPS2A { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagWAVEINCAPS2A WAVEINCAPS2A; -alias tagWAVEINCAPS2A* PWAVEINCAPS2A; -alias tagWAVEINCAPS2A* NPWAVEINCAPS2A; -alias tagWAVEINCAPS2A* LPWAVEINCAPS2A; - -struct tagWAVEINCAPS2W { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagWAVEINCAPS2W WAVEINCAPS2W; -alias tagWAVEINCAPS2W* PWAVEINCAPS2W; -alias tagWAVEINCAPS2W* NPWAVEINCAPS2W; -alias tagWAVEINCAPS2W* LPWAVEINCAPS2W; - -// #ifdef UNICODE -// ... -// #else -alias WAVEINCAPS2A WAVEINCAPS2; -alias PWAVEINCAPS2A PWAVEINCAPS2; -alias NPWAVEINCAPS2A NPWAVEINCAPS2; -alias LPWAVEINCAPS2A LPWAVEINCAPS2; -// #endif // UNICODE - -// #else -// ... -// #endif - -enum : uint { WAVE_INVALIDFORMAT = 0x00000000 } -enum : uint { WAVE_FORMAT_1M08 = 0x00000001 } -enum : uint { WAVE_FORMAT_1S08 = 0x00000002 } -enum : uint { WAVE_FORMAT_1M16 = 0x00000004 } -enum : uint { WAVE_FORMAT_1S16 = 0x00000008 } -enum : uint { WAVE_FORMAT_2M08 = 0x00000010 } -enum : uint { WAVE_FORMAT_2S08 = 0x00000020 } -enum : uint { WAVE_FORMAT_2M16 = 0x00000040 } -enum : uint { WAVE_FORMAT_2S16 = 0x00000080 } -enum : uint { WAVE_FORMAT_4M08 = 0x00000100 } -enum : uint { WAVE_FORMAT_4S08 = 0x00000200 } -enum : uint { WAVE_FORMAT_4M16 = 0x00000400 } -enum : uint { WAVE_FORMAT_4S16 = 0x00000800 } - -enum : uint { WAVE_FORMAT_44M08 = 0x00000100 } -enum : uint { WAVE_FORMAT_44S08 = 0x00000200 } -enum : uint { WAVE_FORMAT_44M16 = 0x00000400 } -enum : uint { WAVE_FORMAT_44S16 = 0x00000800 } -enum : uint { WAVE_FORMAT_48M08 = 0x00001000 } -enum : uint { WAVE_FORMAT_48S08 = 0x00002000 } -enum : uint { WAVE_FORMAT_48M16 = 0x00004000 } -enum : uint { WAVE_FORMAT_48S16 = 0x00008000 } -enum : uint { WAVE_FORMAT_96M08 = 0x00010000 } -enum : uint { WAVE_FORMAT_96S08 = 0x00020000 } -enum : uint { WAVE_FORMAT_96M16 = 0x00040000 } -enum : uint { WAVE_FORMAT_96S16 = 0x00080000 } - -// #ifndef WAVE_FORMAT_PCM - -struct waveformat_tag { - WORD wFormatTag; - WORD nChannels; - DWORD nSamplesPerSec; - DWORD nAvgBytesPerSec; - WORD nBlockAlign; -} -alias waveformat_tag WAVEFORMAT; -alias waveformat_tag* PWAVEFORMAT; -alias waveformat_tag* NPWAVEFORMAT; -alias waveformat_tag* LPWAVEFORMAT; - -enum : uint { WAVE_FORMAT_PCM = 1 } - -struct pcmwaveformat_tag { - WAVEFORMAT wf; - WORD wBitsPerSample; -} -alias pcmwaveformat_tag PCMWAVEFORMAT; -alias pcmwaveformat_tag* PPCMWAVEFORMAT; -alias pcmwaveformat_tag* NPPCMWAVEFORMAT; -alias pcmwaveformat_tag* LPPCMWAVEFORMAT; - -// #endif /* WAVE_FORMAT_PCM */ - -// #ifndef _WAVEFORMATEX_ -// #define _WAVEFORMATEX_ - -struct tWAVEFORMATEX { - WORD wFormatTag; - WORD nChannels; - DWORD nSamplesPerSec; - DWORD nAvgBytesPerSec; - WORD nBlockAlign; - WORD wBitsPerSample; - WORD cbSize; - -} -alias tWAVEFORMATEX WAVEFORMATEX; -alias tWAVEFORMATEX* PWAVEFORMATEX; -alias tWAVEFORMATEX* NPWAVEFORMATEX; -alias tWAVEFORMATEX* LPWAVEFORMATEX; - -// #endif /* _WAVEFORMATEX_ */ -alias WAVEFORMATEX* LPCWAVEFORMATEX; - -extern(Windows) export UINT waveOutGetNumDevs(); - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT waveOutGetDevCapsA(UINT_PTR uDeviceID, LPWAVEOUTCAPSA pwoc, UINT cbwoc); -extern(Windows) export MMRESULT waveOutGetDevCapsW(UINT_PTR uDeviceID, LPWAVEOUTCAPSW pwoc, UINT cbwoc); -// #ifdef UNICODE -// #... -// #else -alias waveOutGetDevCapsA waveOutGetDevCaps; -// #endif // !UNICODE - -// #else -// ... -// #endif - -// #if (WINVER >= 0x0400) -extern(Windows) export MMRESULT waveOutGetVolume(HWAVEOUT hwo, LPDWORD pdwVolume); -extern(Windows) export MMRESULT waveOutSetVolume(HWAVEOUT hwo, DWORD dwVolume); -// #else -// ... -// #endif - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT waveOutGetErrorTextA(MMRESULT mmrError, LPSTR pszText, UINT cchText); -extern(Windows) export MMRESULT waveOutGetErrorTextW(MMRESULT mmrError, LPWSTR pszText, UINT cchText); -// #ifdef UNICODE -// #... -// #else -alias waveOutGetErrorTextA waveOutGetErrorText; -// #endif // !UNICODE - -// #else -// ... -// #endif - -extern(Windows) export MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, - LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); - -extern(Windows) export MMRESULT waveOutClose(HWAVEOUT hwo); -extern(Windows) export MMRESULT waveOutPrepareHeader(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh); -extern(Windows) export MMRESULT waveOutUnprepareHeader(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh); -extern(Windows) export MMRESULT waveOutWrite(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh); -extern(Windows) export MMRESULT waveOutPause(HWAVEOUT hwo); -extern(Windows) export MMRESULT waveOutRestart(HWAVEOUT hwo); -extern(Windows) export MMRESULT waveOutReset(HWAVEOUT hwo); -extern(Windows) export MMRESULT waveOutBreakLoop(HWAVEOUT hwo); -extern(Windows) export MMRESULT waveOutGetPosition(HWAVEOUT hwo, LPMMTIME pmmt, UINT cbmmt); -extern(Windows) export MMRESULT waveOutGetPitch(HWAVEOUT hwo, LPDWORD pdwPitch); -extern(Windows) export MMRESULT waveOutSetPitch(HWAVEOUT hwo, DWORD dwPitch); -extern(Windows) export MMRESULT waveOutGetPlaybackRate(HWAVEOUT hwo, LPDWORD pdwRate); -extern(Windows) export MMRESULT waveOutSetPlaybackRate(HWAVEOUT hwo, DWORD dwRate); -extern(Windows) export MMRESULT waveOutGetID(HWAVEOUT hwo, LPUINT puDeviceID); - -// #if (WINVER >= 0x030a) -// #ifdef _WIN32 -extern(Windows) export MMRESULT waveOutMessage(HWAVEOUT hwo, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2); -// #else -// ... -// #endif -// #endif /* ifdef WINVER >= 0x030a */ - -extern(Windows) export UINT waveInGetNumDevs(); - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT waveInGetDevCapsA(UINT_PTR uDeviceID, LPWAVEINCAPSA pwic, UINT cbwic); -extern(Windows) export MMRESULT waveInGetDevCapsW(UINT_PTR uDeviceID, LPWAVEINCAPSW pwic, UINT cbwic); -// #ifdef UNICODE -// #... -// #else -alias waveInGetDevCapsA waveInGetDevCaps; -// #endif // !UNICODE - -// #else -// ... -// #endif - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT waveInGetErrorTextA(MMRESULT mmrError, LPSTR pszText, UINT cchText); -extern(Windows) export MMRESULT waveInGetErrorTextW(MMRESULT mmrError, LPWSTR pszText, UINT cchText); -// #ifdef UNICODE -// #... -// #else -alias waveInGetErrorTextA waveInGetErrorText; -// #endif // !UNICODE - -// #else -// ... -// #endif - -extern(Windows) export MMRESULT waveInOpen(LPHWAVEIN phwi, UINT uDeviceID, - LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); - -extern(Windows) export MMRESULT waveInClose(HWAVEIN hwi); -extern(Windows) export MMRESULT waveInPrepareHeader(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh); -extern(Windows) export MMRESULT waveInUnprepareHeader(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh); -extern(Windows) export MMRESULT waveInAddBuffer(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh); -extern(Windows) export MMRESULT waveInStart(HWAVEIN hwi); -extern(Windows) export MMRESULT waveInStop(HWAVEIN hwi); -extern(Windows) export MMRESULT waveInReset(HWAVEIN hwi); -extern(Windows) export MMRESULT waveInGetPosition(HWAVEIN hwi, LPMMTIME pmmt, UINT cbmmt); -extern(Windows) export MMRESULT waveInGetID(HWAVEIN hwi, LPUINT puDeviceID); - -// #if (WINVER >= 0x030a) -// #ifdef _WIN32 -extern(Windows) export MMRESULT waveInMessage(HWAVEIN hwi, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2); -// #else -// ... -// #endif -// #endif /* ifdef WINVER >= 0x030a */ - -// #endif /* ifndef MMNOWAVE */ - -// #ifndef MMNOMIDI - -enum : uint { MIDIERR_UNPREPARED = MIDIERR_BASE + 0 } -enum : uint { MIDIERR_STILLPLAYING = MIDIERR_BASE + 1 } -enum : uint { MIDIERR_NOMAP = MIDIERR_BASE + 2 } -enum : uint { MIDIERR_NOTREADY = MIDIERR_BASE + 3 } -enum : uint { MIDIERR_NODEVICE = MIDIERR_BASE + 4 } -enum : uint { MIDIERR_INVALIDSETUP = MIDIERR_BASE + 5 } -enum : uint { MIDIERR_BADOPENMODE = MIDIERR_BASE + 6 } -enum : uint { MIDIERR_DONT_CONTINUE = MIDIERR_BASE + 7 } -enum : uint { MIDIERR_LASTERROR = MIDIERR_BASE + 7 } - -alias void* HMIDI; -alias void* HMIDIIN; -alias void* HMIDIOUT; -alias void* HMIDISTRM; -alias HMIDI* LPHMIDI; -alias HMIDIIN* LPHMIDIIN; -alias HMIDIOUT* LPHMIDIOUT; -alias HMIDISTRM* LPHMIDISTRM; -// typedef DRVCALLBACK MIDICALLBACK; -alias LPDRVCALLBACK LPMIDICALLBACK; -enum : uint { MIDIPATCHSIZE = 128 } -alias WORD PATCHARRAY[MIDIPATCHSIZE]; -alias WORD* LPPATCHARRAY; -alias WORD KEYARRAY[MIDIPATCHSIZE]; -alias WORD* LPKEYARRAY; - -alias MM_MIM_OPEN MIM_OPEN; -alias MM_MIM_CLOSE MIM_CLOSE; -alias MM_MIM_DATA MIM_DATA; -alias MM_MIM_LONGDATA MIM_LONGDATA; -alias MM_MIM_ERROR MIM_ERROR; -alias MM_MIM_LONGERROR MIM_LONGERROR; -alias MM_MOM_OPEN MOM_OPEN; -alias MM_MOM_CLOSE MOM_CLOSE; -alias MM_MOM_DONE MOM_DONE; - -// #if(WINVER >= 0x0400) -alias MM_MIM_MOREDATA MIM_MOREDATA; -alias MM_MOM_POSITIONCB MOM_POSITIONCB; -// #endif /* WINVER >= 0x0400 */ - -enum : uint { MIDIMAPPER = cast(UINT)-1 } -enum : uint { MIDI_MAPPER = cast(UINT)-1 } - -// #if(WINVER >= 0x0400) - -enum : uint { MIDI_IO_STATUS = 0x00000020 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { MIDI_CACHE_ALL = 1 } -enum : uint { MIDI_CACHE_BESTFIT = 2 } -enum : uint { MIDI_CACHE_QUERY = 3 } -enum : uint { MIDI_UNCACHE = 4 } - -// #ifdef _WIN32 - -struct tagMIDIOUTCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wVoices; - WORD wNotes; - WORD wChannelMask; - DWORD dwSupport; -} -alias tagMIDIOUTCAPSA MIDIOUTCAPSA; -alias tagMIDIOUTCAPSA* PMIDIOUTCAPSA; -alias tagMIDIOUTCAPSA* NPMIDIOUTCAPSA; -alias tagMIDIOUTCAPSA* LPMIDIOUTCAPSA; - -struct tagMIDIOUTCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wVoices; - WORD wNotes; - WORD wChannelMask; - DWORD dwSupport; -} -alias tagMIDIOUTCAPSW MIDIOUTCAPSW; -alias tagMIDIOUTCAPSW* PMIDIOUTCAPSW; -alias tagMIDIOUTCAPSW* NPMIDIOUTCAPSW; -alias tagMIDIOUTCAPSW* LPMIDIOUTCAPSW; - -// #ifdef UNICODE -// ... -// #else -alias MIDIOUTCAPSA MIDIOUTCAPS; -alias PMIDIOUTCAPSA PMIDIOUTCAPS; -alias NPMIDIOUTCAPSA NPMIDIOUTCAPS; -alias LPMIDIOUTCAPSA LPMIDIOUTCAPS; -// #endif // UNICODE -struct tagMIDIOUTCAPS2A { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wVoices; - WORD wNotes; - WORD wChannelMask; - DWORD dwSupport; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagMIDIOUTCAPS2A MIDIOUTCAPS2A; -alias tagMIDIOUTCAPS2A* PMIDIOUTCAPS2A; -alias tagMIDIOUTCAPS2A* NPMIDIOUTCAPS2A; -alias tagMIDIOUTCAPS2A* LPMIDIOUTCAPS2A; - -struct tagMIDIOUTCAPS2W { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wVoices; - WORD wNotes; - WORD wChannelMask; - DWORD dwSupport; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagMIDIOUTCAPS2W MIDIOUTCAPS2W; -alias tagMIDIOUTCAPS2W* PMIDIOUTCAPS2W; -alias tagMIDIOUTCAPS2W* NPMIDIOUTCAPS2W; -alias tagMIDIOUTCAPS2W* LPMIDIOUTCAPS2W; - -// #ifdef UNICODE -// ... -// #else -alias MIDIOUTCAPS2A MIDIOUTCAPS2; -alias PMIDIOUTCAPS2A PMIDIOUTCAPS2; -alias NPMIDIOUTCAPS2A NPMIDIOUTCAPS2; -alias LPMIDIOUTCAPS2A LPMIDIOUTCAPS2; -// #endif // UNICODE - -// #else -// ... -// #endif - -enum : uint { MOD_MIDIPORT = 1 } -enum : uint { MOD_SYNTH = 2 } -enum : uint { MOD_SQSYNTH = 3 } -enum : uint { MOD_FMSYNTH = 4 } -enum : uint { MOD_MAPPER = 5 } -enum : uint { MOD_WAVETABLE = 6 } -enum : uint { MOD_SWSYNTH = 7 } - -enum : uint { MIDICAPS_VOLUME = 0x0001 } -enum : uint { MIDICAPS_LRVOLUME = 0x0002 } -enum : uint { MIDICAPS_CACHE = 0x0004 } -// #if(WINVER >= 0x0400) -enum : uint { MIDICAPS_STREAM = 0x0008 } -// #endif /* WINVER >= 0x0400 */ - -// #ifdef _WIN32 - -struct tagMIDIINCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; -// #if (WINVER >= 0x0400) - DWORD dwSupport; -// #endif -} -alias tagMIDIINCAPSA MIDIINCAPSA; -alias tagMIDIINCAPSA* PMIDIINCAPSA; -alias tagMIDIINCAPSA* NPMIDIINCAPSA; -alias tagMIDIINCAPSA* LPMIDIINCAPSA; - -struct tagMIDIINCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; -// #if (WINVER >= 0x0400) - DWORD dwSupport; -// #endif -} -alias tagMIDIINCAPSW MIDIINCAPSW; -alias tagMIDIINCAPSW* PMIDIINCAPSW; -alias tagMIDIINCAPSW* NPMIDIINCAPSW; -alias tagMIDIINCAPSW* LPMIDIINCAPSW; - -// #ifdef UNICODE -// ... -// #else -alias MIDIINCAPSA MIDIINCAPS; -alias PMIDIINCAPSA PMIDIINCAPS; -alias NPMIDIINCAPSA NPMIDIINCAPS; -alias LPMIDIINCAPSA LPMIDIINCAPS; -// #endif // UNICODE -struct tagMIDIINCAPS2A { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; -// #if (WINVER >= 0x0400) - DWORD dwSupport; -// #endif - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagMIDIINCAPS2A MIDIINCAPS2A; -alias tagMIDIINCAPS2A* PMIDIINCAPS2A; -alias tagMIDIINCAPS2A* NPMIDIINCAPS2A; -alias tagMIDIINCAPS2A* LPMIDIINCAPS2A; - -struct tagMIDIINCAPS2W { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; -// #if (WINVER >= 0x0400) - DWORD dwSupport; -// #endif - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagMIDIINCAPS2W MIDIINCAPS2W; -alias tagMIDIINCAPS2W* PMIDIINCAPS2W; -alias tagMIDIINCAPS2W* NPMIDIINCAPS2W; -alias tagMIDIINCAPS2W* LPMIDIINCAPS2W; - -// #ifdef UNICODE -// ... -// #else -alias MIDIINCAPS2A MIDIINCAPS2; -alias PMIDIINCAPS2A PMIDIINCAPS2; -alias NPMIDIINCAPS2A NPMIDIINCAPS2; -alias LPMIDIINCAPS2A LPMIDIINCAPS2; -// #endif // UNICODE - -// #else -// ... -// #if (WINVER >= 0x0400) -// ... -// #endif -// ... -// #endif - -struct midihdr_tag { - LPSTR lpData; - DWORD dwBufferLength; - DWORD dwBytesRecorded; - DWORD_PTR dwUser; - DWORD dwFlags; - midihdr_tag *lpNext; - DWORD_PTR reserved; -// #if (WINVER >= 0x0400) - DWORD dwOffset; - DWORD_PTR dwReserved[8]; -// #endif -} -alias midihdr_tag MIDIHDR; -alias midihdr_tag* PMIDIHDR; -alias midihdr_tag* NPMIDIHDR; -alias midihdr_tag* LPMIDIHDR; - -// #if(WINVER >= 0x0400) -struct midievent_tag { - DWORD dwDeltaTime; - DWORD dwStreamID; - DWORD dwEvent; - DWORD dwParms[1]; -} -alias midievent_tag MIDIEVENT; - -struct midistrmbuffver_tag { - DWORD dwVersion; - DWORD dwMid; - DWORD dwOEMVersion; -} -alias midistrmbuffver_tag MIDISTRMBUFFVER; - -// #endif /* WINVER >= 0x0400 */ - -enum : uint { MHDR_DONE = 0x00000001 } -enum : uint { MHDR_PREPARED = 0x00000002 } -enum : uint { MHDR_INQUEUE = 0x00000004 } -enum : uint { MHDR_ISSTRM = 0x00000008 } -// #if(WINVER >= 0x0400) - -enum : uint { MEVT_F_SHORT = 0x00000000 } -enum : uint { MEVT_F_LONG = 0x80000000 } -enum : uint { MEVT_F_CALLBACK = 0x40000000 } - -// #define MEVT_EVENTTYPE(x) ((BYTE)(((x)>>24)&0xFF)) -// #define MEVT_EVENTPARM(x) ((DWORD)((x)&0x00FFFFFFL)) - -enum : BYTE { MEVT_SHORTMSG = 0x00 } -enum : BYTE { MEVT_TEMPO = 0x01 } -enum : BYTE { MEVT_NOP = 0x02 } - -enum : BYTE { MEVT_LONGMSG = 0x80 } -enum : BYTE { MEVT_COMMENT = 0x82 } -enum : BYTE { MEVT_VERSION = 0x84 } - -enum { MIDISTRM_ERROR = -2 } - -enum : uint { MIDIPROP_SET = 0x80000000 } -enum : uint { MIDIPROP_GET = 0x40000000 } - -enum : uint { MIDIPROP_TIMEDIV = 0x00000001 } -enum : uint { MIDIPROP_TEMPO = 0x00000002 } - -struct midiproptimediv_tag { - DWORD cbStruct; - DWORD dwTimeDiv; -} -alias midiproptimediv_tag MIDIPROPTIMEDIV; -alias midiproptimediv_tag* LPMIDIPROPTIMEDIV; - -struct midiproptempo_tag { - DWORD cbStruct; - DWORD dwTempo; -} -alias midiproptempo_tag MIDIPROPTEMPO; -alias midiproptempo_tag* LPMIDIPROPTEMPO; - -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export UINT midiOutGetNumDevs(); -// #if(WINVER >= 0x0400) -extern(Windows) export MMRESULT midiStreamOpen(LPHMIDISTRM phms, LPUINT puDeviceID, DWORD cMidi, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); -extern(Windows) export MMRESULT midiStreamClose(HMIDISTRM hms); - -extern(Windows) export MMRESULT midiStreamProperty(HMIDISTRM hms, LPBYTE lppropdata, DWORD dwProperty); -extern(Windows) export MMRESULT midiStreamPosition(HMIDISTRM hms, LPMMTIME lpmmt, UINT cbmmt); - -extern(Windows) export MMRESULT midiStreamOut(HMIDISTRM hms, LPMIDIHDR pmh, UINT cbmh); -extern(Windows) export MMRESULT midiStreamPause(HMIDISTRM hms); -extern(Windows) export MMRESULT midiStreamRestart(HMIDISTRM hms); -extern(Windows) export MMRESULT midiStreamStop(HMIDISTRM hms); - -// #ifdef _WIN32 -extern(Windows) export MMRESULT midiConnect(HMIDI hmi, HMIDIOUT hmo, LPVOID pReserved); -extern(Windows) export MMRESULT midiDisconnect(HMIDI hmi, HMIDIOUT hmo, LPVOID pReserved); -// #endif -// #endif /* WINVER >= 0x0400 */ - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT midiOutGetDevCapsA(UINT_PTR uDeviceID, LPMIDIOUTCAPSA pmoc, UINT cbmoc); -extern(Windows) export MMRESULT midiOutGetDevCapsW(UINT_PTR uDeviceID, LPMIDIOUTCAPSW pmoc, UINT cbmoc); -// #ifdef UNICODE -// #... -// #else -alias midiOutGetDevCapsA midiOutGetDevCaps; -// #endif // !UNICODE - -// #else -// ... -// #endif - -// #if (WINVER >= 0x0400) -extern(Windows) export MMRESULT midiOutGetVolume(HMIDIOUT hmo, LPDWORD pdwVolume); -extern(Windows) export MMRESULT midiOutSetVolume(HMIDIOUT hmo, DWORD dwVolume); -// #else -// ... -// #endif - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT midiOutGetErrorTextA(MMRESULT mmrError, LPSTR pszText, UINT cchText); -extern(Windows) export MMRESULT midiOutGetErrorTextW(MMRESULT mmrError, LPWSTR pszText, UINT cchText); -// #ifdef UNICODE -// #... -// #else -alias midiOutGetErrorTextA midiOutGetErrorText; -// #endif // !UNICODE - -// #else -// ... -// #endif - -extern(Windows) export MMRESULT midiOutOpen(LPHMIDIOUT phmo, UINT uDeviceID, - DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); -extern(Windows) export MMRESULT midiOutClose(HMIDIOUT hmo); -extern(Windows) export MMRESULT midiOutPrepareHeader(HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh); -extern(Windows) export MMRESULT midiOutUnprepareHeader(HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh); -extern(Windows) export MMRESULT midiOutShortMsg(HMIDIOUT hmo, DWORD dwMsg); -extern(Windows) export MMRESULT midiOutLongMsg(HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh); -extern(Windows) export MMRESULT midiOutReset(HMIDIOUT hmo); -extern(Windows) export MMRESULT midiOutCachePatches(HMIDIOUT hmo, UINT uBank, LPWORD pwpa, UINT fuCache); -extern(Windows) export MMRESULT midiOutCacheDrumPatches(HMIDIOUT hmo, UINT uPatch, LPWORD pwkya, UINT fuCache); -extern(Windows) export MMRESULT midiOutGetID(HMIDIOUT hmo, LPUINT puDeviceID); - -// #if (WINVER >= 0x030a) -// #ifdef _WIN32 -extern(Windows) export MMRESULT midiOutMessage(HMIDIOUT hmo, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2); -// #else -// ... -// #endif -// #endif /* ifdef WINVER >= 0x030a */ - -extern(Windows) export UINT midiInGetNumDevs(); - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT midiInGetDevCapsA(UINT_PTR uDeviceID, LPMIDIINCAPSA pmic, UINT cbmic); -extern(Windows) export MMRESULT midiInGetDevCapsW(UINT_PTR uDeviceID, LPMIDIINCAPSW pmic, UINT cbmic); -// #ifdef UNICODE -// #... -// #else -alias midiInGetDevCapsA midiInGetDevCaps; -// #endif // !UNICODE -extern(Windows) export MMRESULT midiInGetErrorTextA(MMRESULT mmrError, LPSTR pszText, UINT cchText); -extern(Windows) export MMRESULT midiInGetErrorTextW(MMRESULT mmrError, LPWSTR pszText, UINT cchText); -// #ifdef UNICODE -// #... -// #else -alias midiInGetErrorTextA midiInGetErrorText; -// #endif // !UNICODE - -// #else -// ... -// #endif - -extern(Windows) export MMRESULT midiInOpen(LPHMIDIIN phmi, UINT uDeviceID, - DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); -extern(Windows) export MMRESULT midiInClose(HMIDIIN hmi); -extern(Windows) export MMRESULT midiInPrepareHeader(HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh); -extern(Windows) export MMRESULT midiInUnprepareHeader(HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh); -extern(Windows) export MMRESULT midiInAddBuffer(HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh); -extern(Windows) export MMRESULT midiInStart(HMIDIIN hmi); -extern(Windows) export MMRESULT midiInStop(HMIDIIN hmi); -extern(Windows) export MMRESULT midiInReset(HMIDIIN hmi); -extern(Windows) export MMRESULT midiInGetID(HMIDIIN hmi, LPUINT puDeviceID); - -// #if (WINVER >= 0x030a) -// #ifdef _WIN32 -extern(Windows) export MMRESULT midiInMessage(HMIDIIN hmi, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2); -// #else -// ... -// #endif -// #endif /* ifdef WINVER >= 0x030a */ - -// #endif /* ifndef MMNOMIDI */ - -// #ifndef MMNOAUX - -enum : uint { AUX_MAPPER = cast(UINT)-1 } - -// #ifdef _WIN32 - -struct tagAUXCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wReserved1; - DWORD dwSupport; -} -alias tagAUXCAPSA AUXCAPSA; -alias tagAUXCAPSA* PAUXCAPSA; -alias tagAUXCAPSA* NPAUXCAPSA; -alias tagAUXCAPSA* LPAUXCAPSA; - -struct tagAUXCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wReserved1; - DWORD dwSupport; -} -alias tagAUXCAPSW AUXCAPSW; -alias tagAUXCAPSW* PAUXCAPSW; -alias tagAUXCAPSW* NPAUXCAPSW; -alias tagAUXCAPSW* LPAUXCAPSW; - -// #ifdef UNICODE -// ... -// #else -alias AUXCAPSA AUXCAPS; -alias PAUXCAPSA PAUXCAPS; -alias NPAUXCAPSA NPAUXCAPS; -alias LPAUXCAPSA LPAUXCAPS; -// #endif // UNICODE -struct tagAUXCAPS2A { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wReserved1; - DWORD dwSupport; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagAUXCAPS2A AUXCAPS2A; -alias tagAUXCAPS2A* PAUXCAPS2A; -alias tagAUXCAPS2A* NPAUXCAPS2A; -alias tagAUXCAPS2A* LPAUXCAPS2A; - -struct tagAUXCAPS2W { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wReserved1; - DWORD dwSupport; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagAUXCAPS2W AUXCAPS2W; -alias tagAUXCAPS2W* PAUXCAPS2W; -alias tagAUXCAPS2W* NPAUXCAPS2W; -alias tagAUXCAPS2W* LPAUXCAPS2W; - -// #ifdef UNICODE -// ... -// #else -alias AUXCAPS2A AUXCAPS2; -alias PAUXCAPS2A PAUXCAPS2; -alias NPAUXCAPS2A NPAUXCAPS2; -alias LPAUXCAPS2A LPAUXCAPS2; -// #endif // UNICODE - -// #else -// ... -// #endif - -enum : uint { AUXCAPS_CDAUDIO = 1 } -enum : uint { AUXCAPS_AUXIN = 2 } - -enum : uint { AUXCAPS_VOLUME = 0x0001 } -enum : uint { AUXCAPS_LRVOLUME = 0x0002 } - -extern(Windows) export UINT auxGetNumDevs(); -// #ifdef _WIN32 - -extern(Windows) export MMRESULT auxGetDevCapsA(UINT_PTR uDeviceID, LPAUXCAPSA pac, UINT cbac); -extern(Windows) export MMRESULT auxGetDevCapsW(UINT_PTR uDeviceID, LPAUXCAPSW pac, UINT cbac); -// #ifdef UNICODE -// #... -// #else -alias auxGetDevCapsA auxGetDevCaps; -// #endif // !UNICODE - -// #else -// ... -// #endif -extern(Windows) export MMRESULT auxSetVolume(UINT uDeviceID, DWORD dwVolume); -extern(Windows) export MMRESULT auxGetVolume(UINT uDeviceID, LPDWORD pdwVolume); - -// #if (WINVER >= 0x030a) -// #ifdef _WIN32 -extern(Windows) export MMRESULT auxOutMessage(UINT uDeviceID, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2); -// #else -// ... -// #endif -// #endif /* ifdef WINVER >= 0x030a */ - -// #endif /* ifndef MMNOAUX */ - -// #ifndef MMNOMIXER - -alias void* HMIXEROBJ; -alias HMIXEROBJ* LPHMIXEROBJ; - -alias void* HMIXER; -alias HMIXER* LPHMIXER; - -enum : uint { MIXER_SHORT_NAME_CHARS = 16 } -enum : uint { MIXER_LONG_NAME_CHARS = 64 } - -enum : uint { MIXERR_INVALLINE = MIXERR_BASE + 0 } -enum : uint { MIXERR_INVALCONTROL = MIXERR_BASE + 1 } -enum : uint { MIXERR_INVALVALUE = MIXERR_BASE + 2 } -enum : uint { MIXERR_LASTERROR = MIXERR_BASE + 2 } - -enum : uint { MIXER_OBJECTF_HANDLE = 0x80000000 } -enum : uint { MIXER_OBJECTF_MIXER = 0x00000000 } -enum : uint { MIXER_OBJECTF_HMIXER = MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIXER } -enum : uint { MIXER_OBJECTF_WAVEOUT = 0x10000000 } -enum : uint { MIXER_OBJECTF_HWAVEOUT = MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEOUT } -enum : uint { MIXER_OBJECTF_WAVEIN = 0x20000000 } -enum : uint { MIXER_OBJECTF_HWAVEIN = MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEIN } -enum : uint { MIXER_OBJECTF_MIDIOUT = 0x30000000 } -enum : uint { MIXER_OBJECTF_HMIDIOUT = MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIOUT } -enum : uint { MIXER_OBJECTF_MIDIIN = 0x40000000 } -enum : uint { MIXER_OBJECTF_HMIDIIN = MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIIN } -enum : uint { MIXER_OBJECTF_AUX = 0x50000000 } - -extern(Windows) export UINT mixerGetNumDevs(); - -// #ifdef _WIN32 - -struct tagMIXERCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - DWORD fdwSupport; - DWORD cDestinations; -} -alias tagMIXERCAPSA MIXERCAPSA; -alias tagMIXERCAPSA* PMIXERCAPSA; -alias tagMIXERCAPSA* LPMIXERCAPSA; - -struct tagMIXERCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - DWORD fdwSupport; - DWORD cDestinations; -} -alias tagMIXERCAPSW MIXERCAPSW; -alias tagMIXERCAPSW* PMIXERCAPSW; -alias tagMIXERCAPSW* LPMIXERCAPSW; - -// #ifdef UNICODE -// ... -// #else -alias MIXERCAPSA MIXERCAPS; -alias PMIXERCAPSA PMIXERCAPS; -alias LPMIXERCAPSA LPMIXERCAPS; -// #endif // UNICODE -struct tagMIXERCAPS2A { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - DWORD fdwSupport; - DWORD cDestinations; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagMIXERCAPS2A MIXERCAPS2A; -alias tagMIXERCAPS2A* PMIXERCAPS2A; -alias tagMIXERCAPS2A* LPMIXERCAPS2A; - -struct tagMIXERCAPS2W { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - DWORD fdwSupport; - DWORD cDestinations; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagMIXERCAPS2W MIXERCAPS2W; -alias tagMIXERCAPS2W* PMIXERCAPS2W; -alias tagMIXERCAPS2W* LPMIXERCAPS2W; - -// #ifdef UNICODE -// ... -// #else -alias MIXERCAPS2A MIXERCAPS2; -alias PMIXERCAPS2A PMIXERCAPS2; -alias LPMIXERCAPS2A LPMIXERCAPS2; -// #endif // UNICODE - -// #else -// ... -// #endif - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT mixerGetDevCapsA(UINT_PTR uMxId, LPMIXERCAPSA pmxcaps, UINT cbmxcaps); -extern(Windows) export MMRESULT mixerGetDevCapsW(UINT_PTR uMxId, LPMIXERCAPSW pmxcaps, UINT cbmxcaps); -// #ifdef UNICODE -// #... -// #else -alias mixerGetDevCapsA mixerGetDevCaps; -// #endif // !UNICODE - -// #else -// ... -// #endif - -extern(Windows) export MMRESULT mixerOpen(LPHMIXER phmx, UINT uMxId, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); - -extern(Windows) export MMRESULT mixerClose(HMIXER hmx); - -extern(Windows) export DWORD mixerMessage(HMIXER hmx, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2); - -// #ifdef _WIN32 - -struct tagMIXERLINEA { - DWORD cbStruct; - DWORD dwDestination; - DWORD dwSource; - DWORD dwLineID; - DWORD fdwLine; - DWORD_PTR dwUser; - DWORD dwComponentType; - DWORD cChannels; - DWORD cConnections; - DWORD cControls; - CHAR szShortName[MIXER_SHORT_NAME_CHARS]; - CHAR szName[MIXER_LONG_NAME_CHARS]; -struct { - DWORD dwType; - DWORD dwDeviceID; - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; -} - -} -alias tagMIXERLINEA MIXERLINEA; -alias tagMIXERLINEA* PMIXERLINEA; -alias tagMIXERLINEA* LPMIXERLINEA; - -struct tagMIXERLINEW { - DWORD cbStruct; - DWORD dwDestination; - DWORD dwSource; - DWORD dwLineID; - DWORD fdwLine; - DWORD_PTR dwUser; - DWORD dwComponentType; - DWORD cChannels; - DWORD cConnections; - DWORD cControls; - WCHAR szShortName[MIXER_SHORT_NAME_CHARS]; - WCHAR szName[MIXER_LONG_NAME_CHARS]; -struct { - DWORD dwType; - DWORD dwDeviceID; - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; -} - -} -alias tagMIXERLINEW MIXERLINEW; -alias tagMIXERLINEW* PMIXERLINEW; -alias tagMIXERLINEW* LPMIXERLINEW; - -// #ifdef UNICODE -// ... -// #else -alias MIXERLINEA MIXERLINE; -alias PMIXERLINEA PMIXERLINE; -alias LPMIXERLINEA LPMIXERLINE; -// #endif // UNICODE - -// #else -// ... -// #endif - -enum : uint { MIXERLINE_LINEF_ACTIVE = 0x00000001 } -enum : uint { MIXERLINE_LINEF_DISCONNECTED = 0x00008000 } -enum : uint { MIXERLINE_LINEF_SOURCE = 0x80000000 } - -enum : uint { MIXERLINE_COMPONENTTYPE_DST_FIRST = 0x00000000 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_UNDEFINED = MIXERLINE_COMPONENTTYPE_DST_FIRST + 0 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_DIGITAL = MIXERLINE_COMPONENTTYPE_DST_FIRST + 1 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_LINE = MIXERLINE_COMPONENTTYPE_DST_FIRST + 2 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_MONITOR = MIXERLINE_COMPONENTTYPE_DST_FIRST + 3 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = MIXERLINE_COMPONENTTYPE_DST_FIRST + 4 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_HEADPHONES = MIXERLINE_COMPONENTTYPE_DST_FIRST + 5 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_TELEPHONE = MIXERLINE_COMPONENTTYPE_DST_FIRST + 6 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_WAVEIN = MIXERLINE_COMPONENTTYPE_DST_FIRST + 7 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_VOICEIN = MIXERLINE_COMPONENTTYPE_DST_FIRST + 8 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_LAST = MIXERLINE_COMPONENTTYPE_DST_FIRST + 8 } - -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_FIRST = 0x00001000 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_DIGITAL = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_LINE = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_ANALOG = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_LAST = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10 } - -enum : uint { MIXERLINE_TARGETTYPE_UNDEFINED = 0 } -enum : uint { MIXERLINE_TARGETTYPE_WAVEOUT = 1 } -enum : uint { MIXERLINE_TARGETTYPE_WAVEIN = 2 } -enum : uint { MIXERLINE_TARGETTYPE_MIDIOUT = 3 } -enum : uint { MIXERLINE_TARGETTYPE_MIDIIN = 4 } -enum : uint { MIXERLINE_TARGETTYPE_AUX = 5 } - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT mixerGetLineInfoA(HMIXEROBJ hmxobj, LPMIXERLINEA pmxl, DWORD fdwInfo); -extern(Windows) export MMRESULT mixerGetLineInfoW(HMIXEROBJ hmxobj, LPMIXERLINEW pmxl, DWORD fdwInfo); -// #ifdef UNICODE -// #... -// #else -alias mixerGetLineInfoA mixerGetLineInfo; -// #endif // !UNICODE - -// #else -// ... -// #endif - -enum : uint { MIXER_GETLINEINFOF_DESTINATION = 0x00000000 } -enum : uint { MIXER_GETLINEINFOF_SOURCE = 0x00000001 } -enum : uint { MIXER_GETLINEINFOF_LINEID = 0x00000002 } -enum : uint { MIXER_GETLINEINFOF_COMPONENTTYPE = 0x00000003 } -enum : uint { MIXER_GETLINEINFOF_TARGETTYPE = 0x00000004 } - -enum : uint { MIXER_GETLINEINFOF_QUERYMASK = 0x0000000F } - -extern(Windows) export MMRESULT mixerGetID(HMIXEROBJ hmxobj, UINT *puMxId, DWORD fdwId); - -// #ifdef _WIN32 - -struct tagMIXERCONTROLA { - DWORD cbStruct; - DWORD dwControlID; - DWORD dwControlType; - DWORD fdwControl; - DWORD cMultipleItems; - CHAR szShortName[MIXER_SHORT_NAME_CHARS]; - CHAR szName[MIXER_LONG_NAME_CHARS]; -union _0 { -struct { - LONG lMinimum; - LONG lMaximum; -} - -struct { - DWORD dwMinimum; - DWORD dwMaximum; -} - - DWORD dwReserved[6]; -} -_0 Bounds; - -union _1 { - DWORD cSteps; - DWORD cbCustomData; - DWORD dwReserved[6]; -} -_1 Metrics; - -} -alias tagMIXERCONTROLA MIXERCONTROLA; -alias tagMIXERCONTROLA* PMIXERCONTROLA; -alias tagMIXERCONTROLA* LPMIXERCONTROLA; - -struct tagMIXERCONTROLW { - DWORD cbStruct; - DWORD dwControlID; - DWORD dwControlType; - DWORD fdwControl; - DWORD cMultipleItems; - WCHAR szShortName[MIXER_SHORT_NAME_CHARS]; - WCHAR szName[MIXER_LONG_NAME_CHARS]; -union _2 { -struct { - LONG lMinimum; - LONG lMaximum; -} - -struct { - DWORD dwMinimum; - DWORD dwMaximum; -} - - DWORD dwReserved[6]; -} -_2 Bounds; - -union _3 { - DWORD cSteps; - DWORD cbCustomData; - DWORD dwReserved[6]; -} -_3 Metrics; - -} -alias tagMIXERCONTROLW MIXERCONTROLW; -alias tagMIXERCONTROLW* PMIXERCONTROLW; -alias tagMIXERCONTROLW* LPMIXERCONTROLW; - -// #ifdef UNICODE -// ... -// #else -alias MIXERCONTROLA MIXERCONTROL; -alias PMIXERCONTROLA PMIXERCONTROL; -alias LPMIXERCONTROLA LPMIXERCONTROL; -// #endif // UNICODE - -// #else -// ... -// #endif - -enum : uint { MIXERCONTROL_CONTROLF_UNIFORM = 0x00000001 } -enum : uint { MIXERCONTROL_CONTROLF_MULTIPLE = 0x00000002 } -enum : uint { MIXERCONTROL_CONTROLF_DISABLED = 0x80000000 } - -enum : uint { MIXERCONTROL_CT_CLASS_MASK = 0xF0000000 } -enum : uint { MIXERCONTROL_CT_CLASS_CUSTOM = 0x00000000 } -enum : uint { MIXERCONTROL_CT_CLASS_METER = 0x10000000 } -enum : uint { MIXERCONTROL_CT_CLASS_SWITCH = 0x20000000 } -enum : uint { MIXERCONTROL_CT_CLASS_NUMBER = 0x30000000 } -enum : uint { MIXERCONTROL_CT_CLASS_SLIDER = 0x40000000 } -enum : uint { MIXERCONTROL_CT_CLASS_FADER = 0x50000000 } -enum : uint { MIXERCONTROL_CT_CLASS_TIME = 0x60000000 } -enum : uint { MIXERCONTROL_CT_CLASS_LIST = 0x70000000 } - -enum : uint { MIXERCONTROL_CT_SUBCLASS_MASK = 0x0F000000 } - -enum : uint { MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = 0x00000000 } -enum : uint { MIXERCONTROL_CT_SC_SWITCH_BUTTON = 0x01000000 } - -enum : uint { MIXERCONTROL_CT_SC_METER_POLLED = 0x00000000 } - -enum : uint { MIXERCONTROL_CT_SC_TIME_MICROSECS = 0x00000000 } -enum : uint { MIXERCONTROL_CT_SC_TIME_MILLISECS = 0x01000000 } - -enum : uint { MIXERCONTROL_CT_SC_LIST_SINGLE = 0x00000000 } -enum : uint { MIXERCONTROL_CT_SC_LIST_MULTIPLE = 0x01000000 } - -enum : uint { MIXERCONTROL_CT_UNITS_MASK = 0x00FF0000 } -enum : uint { MIXERCONTROL_CT_UNITS_CUSTOM = 0x00000000 } -enum : uint { MIXERCONTROL_CT_UNITS_BOOLEAN = 0x00010000 } -enum : uint { MIXERCONTROL_CT_UNITS_SIGNED = 0x00020000 } -enum : uint { MIXERCONTROL_CT_UNITS_UNSIGNED = 0x00030000 } -enum : uint { MIXERCONTROL_CT_UNITS_DECIBELS = 0x00040000 } -enum : uint { MIXERCONTROL_CT_UNITS_PERCENT = 0x00050000 } - -enum : uint { MIXERCONTROL_CONTROLTYPE_CUSTOM = MIXERCONTROL_CT_CLASS_CUSTOM | MIXERCONTROL_CT_UNITS_CUSTOM } -enum : uint { MIXERCONTROL_CONTROLTYPE_BOOLEANMETER = MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_BOOLEAN } -enum : uint { MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_SIGNED } -enum : uint { MIXERCONTROL_CONTROLTYPE_PEAKMETER = MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1 } -enum : uint { MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER = MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_UNSIGNED } -enum : uint { MIXERCONTROL_CONTROLTYPE_BOOLEAN = MIXERCONTROL_CT_CLASS_SWITCH | MIXERCONTROL_CT_SC_SWITCH_BOOLEAN | MIXERCONTROL_CT_UNITS_BOOLEAN } -enum : uint { MIXERCONTROL_CONTROLTYPE_ONOFF = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 1 } -enum : uint { MIXERCONTROL_CONTROLTYPE_MUTE = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2 } -enum : uint { MIXERCONTROL_CONTROLTYPE_MONO = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3 } -enum : uint { MIXERCONTROL_CONTROLTYPE_LOUDNESS = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4 } -enum : uint { MIXERCONTROL_CONTROLTYPE_STEREOENH = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5 } -enum : uint { MIXERCONTROL_CONTROLTYPE_BASS_BOOST = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 0x00002277 } -enum : uint { MIXERCONTROL_CONTROLTYPE_BUTTON = MIXERCONTROL_CT_CLASS_SWITCH | MIXERCONTROL_CT_SC_SWITCH_BUTTON | MIXERCONTROL_CT_UNITS_BOOLEAN } -enum : uint { MIXERCONTROL_CONTROLTYPE_DECIBELS = MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_DECIBELS } -enum : uint { MIXERCONTROL_CONTROLTYPE_SIGNED = MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_SIGNED } -enum : uint { MIXERCONTROL_CONTROLTYPE_UNSIGNED = MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_UNSIGNED } -enum : uint { MIXERCONTROL_CONTROLTYPE_PERCENT = MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_PERCENT } -enum : uint { MIXERCONTROL_CONTROLTYPE_SLIDER = MIXERCONTROL_CT_CLASS_SLIDER | MIXERCONTROL_CT_UNITS_SIGNED } -enum : uint { MIXERCONTROL_CONTROLTYPE_PAN = MIXERCONTROL_CONTROLTYPE_SLIDER + 1 } -enum : uint { MIXERCONTROL_CONTROLTYPE_QSOUNDPAN = MIXERCONTROL_CONTROLTYPE_SLIDER + 2 } -enum : uint { MIXERCONTROL_CONTROLTYPE_FADER = MIXERCONTROL_CT_CLASS_FADER | MIXERCONTROL_CT_UNITS_UNSIGNED } -enum : uint { MIXERCONTROL_CONTROLTYPE_VOLUME = MIXERCONTROL_CONTROLTYPE_FADER + 1 } -enum : uint { MIXERCONTROL_CONTROLTYPE_BASS = MIXERCONTROL_CONTROLTYPE_FADER + 2 } -enum : uint { MIXERCONTROL_CONTROLTYPE_TREBLE = MIXERCONTROL_CONTROLTYPE_FADER + 3 } -enum : uint { MIXERCONTROL_CONTROLTYPE_EQUALIZER = MIXERCONTROL_CONTROLTYPE_FADER + 4 } -enum : uint { MIXERCONTROL_CONTROLTYPE_SINGLESELECT = MIXERCONTROL_CT_CLASS_LIST | MIXERCONTROL_CT_SC_LIST_SINGLE | MIXERCONTROL_CT_UNITS_BOOLEAN } -enum : uint { MIXERCONTROL_CONTROLTYPE_MUX = MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1 } -enum : uint { MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT = MIXERCONTROL_CT_CLASS_LIST | MIXERCONTROL_CT_SC_LIST_MULTIPLE | MIXERCONTROL_CT_UNITS_BOOLEAN } -enum : uint { MIXERCONTROL_CONTROLTYPE_MIXER = MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1 } -enum : uint { MIXERCONTROL_CONTROLTYPE_MICROTIME = MIXERCONTROL_CT_CLASS_TIME | MIXERCONTROL_CT_SC_TIME_MICROSECS | MIXERCONTROL_CT_UNITS_UNSIGNED } -enum : uint { MIXERCONTROL_CONTROLTYPE_MILLITIME = MIXERCONTROL_CT_CLASS_TIME | MIXERCONTROL_CT_SC_TIME_MILLISECS | MIXERCONTROL_CT_UNITS_UNSIGNED } - -// #ifdef _WIN32 - -struct tagMIXERLINECONTROLSA { - DWORD cbStruct; - DWORD dwLineID; -union { - DWORD dwControlID; - DWORD dwControlType; -} - - DWORD cControls; - DWORD cbmxctrl; - LPMIXERCONTROLA pamxctrl; -} -alias tagMIXERLINECONTROLSA MIXERLINECONTROLSA; -alias tagMIXERLINECONTROLSA* PMIXERLINECONTROLSA; -alias tagMIXERLINECONTROLSA* LPMIXERLINECONTROLSA; - -struct tagMIXERLINECONTROLSW { - DWORD cbStruct; - DWORD dwLineID; -union { - DWORD dwControlID; - DWORD dwControlType; -} - - DWORD cControls; - DWORD cbmxctrl; - LPMIXERCONTROLW pamxctrl; -} -alias tagMIXERLINECONTROLSW MIXERLINECONTROLSW; -alias tagMIXERLINECONTROLSW* PMIXERLINECONTROLSW; -alias tagMIXERLINECONTROLSW* LPMIXERLINECONTROLSW; - -// #ifdef UNICODE -// ... -// #else -alias MIXERLINECONTROLSA MIXERLINECONTROLS; -alias PMIXERLINECONTROLSA PMIXERLINECONTROLS; -alias LPMIXERLINECONTROLSA LPMIXERLINECONTROLS; -// #endif // UNICODE - -// #else -// ... -// #endif - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT mixerGetLineControlsA(HMIXEROBJ hmxobj, LPMIXERLINECONTROLSA pmxlc, DWORD fdwControls); -extern(Windows) export MMRESULT mixerGetLineControlsW(HMIXEROBJ hmxobj, LPMIXERLINECONTROLSW pmxlc, DWORD fdwControls); -// #ifdef UNICODE -// #... -// #else -alias mixerGetLineControlsA mixerGetLineControls; -// #endif // !UNICODE - -// #else -// ... -// #endif - -enum : uint { MIXER_GETLINECONTROLSF_ALL = 0x00000000 } -enum : uint { MIXER_GETLINECONTROLSF_ONEBYID = 0x00000001 } -enum : uint { MIXER_GETLINECONTROLSF_ONEBYTYPE = 0x00000002 } - -enum : uint { MIXER_GETLINECONTROLSF_QUERYMASK = 0x0000000F } - -struct tMIXERCONTROLDETAILS { - DWORD cbStruct; - DWORD dwControlID; - DWORD cChannels; -union { - HWND hwndOwner; - DWORD cMultipleItems; -} - - DWORD cbDetails; - LPVOID paDetails; -} -alias tMIXERCONTROLDETAILS MIXERCONTROLDETAILS; -alias tMIXERCONTROLDETAILS* PMIXERCONTROLDETAILS; -alias tMIXERCONTROLDETAILS* LPMIXERCONTROLDETAILS; - -// #ifdef _WIN32 - -struct tagMIXERCONTROLDETAILS_LISTTEXTA { - DWORD dwParam1; - DWORD dwParam2; - CHAR szName[MIXER_LONG_NAME_CHARS]; -} -alias tagMIXERCONTROLDETAILS_LISTTEXTA MIXERCONTROLDETAILS_LISTTEXTA; -alias tagMIXERCONTROLDETAILS_LISTTEXTA* PMIXERCONTROLDETAILS_LISTTEXTA; -alias tagMIXERCONTROLDETAILS_LISTTEXTA* LPMIXERCONTROLDETAILS_LISTTEXTA; - -struct tagMIXERCONTROLDETAILS_LISTTEXTW { - DWORD dwParam1; - DWORD dwParam2; - WCHAR szName[MIXER_LONG_NAME_CHARS]; -} -alias tagMIXERCONTROLDETAILS_LISTTEXTW MIXERCONTROLDETAILS_LISTTEXTW; -alias tagMIXERCONTROLDETAILS_LISTTEXTW* PMIXERCONTROLDETAILS_LISTTEXTW; -alias tagMIXERCONTROLDETAILS_LISTTEXTW* LPMIXERCONTROLDETAILS_LISTTEXTW; - -// #ifdef UNICODE -// ... -// #else -alias MIXERCONTROLDETAILS_LISTTEXTA MIXERCONTROLDETAILS_LISTTEXT; -alias PMIXERCONTROLDETAILS_LISTTEXTA PMIXERCONTROLDETAILS_LISTTEXT; -alias LPMIXERCONTROLDETAILS_LISTTEXTA LPMIXERCONTROLDETAILS_LISTTEXT; -// #endif // UNICODE - -// #else -// ... -// #endif - -struct tMIXERCONTROLDETAILS_BOOLEAN { - LONG fValue; -} -alias tMIXERCONTROLDETAILS_BOOLEAN MIXERCONTROLDETAILS_BOOLEAN; -alias tMIXERCONTROLDETAILS_BOOLEAN* PMIXERCONTROLDETAILS_BOOLEAN; -alias tMIXERCONTROLDETAILS_BOOLEAN* LPMIXERCONTROLDETAILS_BOOLEAN; - -struct tMIXERCONTROLDETAILS_SIGNED { - LONG lValue; -} -alias tMIXERCONTROLDETAILS_SIGNED MIXERCONTROLDETAILS_SIGNED; -alias tMIXERCONTROLDETAILS_SIGNED* PMIXERCONTROLDETAILS_SIGNED; -alias tMIXERCONTROLDETAILS_SIGNED* LPMIXERCONTROLDETAILS_SIGNED; - -struct tMIXERCONTROLDETAILS_UNSIGNED { - DWORD dwValue; -} -alias tMIXERCONTROLDETAILS_UNSIGNED MIXERCONTROLDETAILS_UNSIGNED; -alias tMIXERCONTROLDETAILS_UNSIGNED* PMIXERCONTROLDETAILS_UNSIGNED; -alias tMIXERCONTROLDETAILS_UNSIGNED* LPMIXERCONTROLDETAILS_UNSIGNED; - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT mixerGetControlDetailsA(HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails); -extern(Windows) export MMRESULT mixerGetControlDetailsW(HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails); -// #ifdef UNICODE -// #... -// #else -alias mixerGetControlDetailsA mixerGetControlDetails; -// #endif // !UNICODE - -// #else -// ... -// #endif - -enum : uint { MIXER_GETCONTROLDETAILSF_VALUE = 0x00000000 } -enum : uint { MIXER_GETCONTROLDETAILSF_LISTTEXT = 0x00000001 } - -enum : uint { MIXER_GETCONTROLDETAILSF_QUERYMASK = 0x0000000F } - -extern(Windows) export MMRESULT mixerSetControlDetails(HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails); - -enum : uint { MIXER_SETCONTROLDETAILSF_VALUE = 0x00000000 } -enum : uint { MIXER_SETCONTROLDETAILSF_CUSTOM = 0x00000001 } - -enum : uint { MIXER_SETCONTROLDETAILSF_QUERYMASK = 0x0000000F } - -// #endif /* ifndef MMNOMIXER */ - -// #ifndef MMNOTIMER - -enum : uint { TIMERR_NOERROR = 0 } -enum : uint { TIMERR_NOCANDO = TIMERR_BASE+1 } -enum : uint { TIMERR_STRUCT = TIMERR_BASE+33 } - -// typedef void (CALLBACK TIMECALLBACK)(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2); - -extern(Windows) alias void function(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2) LPTIMECALLBACK; - -enum : uint { TIME_ONESHOT = 0x0000 } -enum : uint { TIME_PERIODIC = 0x0001 } - -// #ifdef _WIN32 -enum : uint { TIME_CALLBACK_FUNCTION = 0x0000 } -enum : uint { TIME_CALLBACK_EVENT_SET = 0x0010 } -enum : uint { TIME_CALLBACK_EVENT_PULSE = 0x0020 } -// #endif - -// #if WINVER >= 0x0501 -enum : uint { TIME_KILL_SYNCHRONOUS = 0x0100 } - -// #endif // WINVER >= 0x0501 - -struct timecaps_tag { - UINT wPeriodMin; - UINT wPeriodMax; -} -alias timecaps_tag TIMECAPS; -alias timecaps_tag* PTIMECAPS; -alias timecaps_tag* NPTIMECAPS; -alias timecaps_tag* LPTIMECAPS; - -extern(Windows) export MMRESULT timeGetSystemTime(LPMMTIME pmmt, UINT cbmmt); -extern(Windows) export DWORD timeGetTime(); -extern(Windows) export MMRESULT timeSetEvent(UINT uDelay, UINT uResolution, - LPTIMECALLBACK fptc, DWORD_PTR dwUser, UINT fuEvent); -extern(Windows) export MMRESULT timeKillEvent(UINT uTimerID); -extern(Windows) export MMRESULT timeGetDevCaps(LPTIMECAPS ptc, UINT cbtc); -extern(Windows) export MMRESULT timeBeginPeriod(UINT uPeriod); -extern(Windows) export MMRESULT timeEndPeriod(UINT uPeriod); - -// #endif /* ifndef MMNOTIMER */ - -// #ifndef MMNOJOY - -enum : uint { JOYERR_NOERROR = 0 } -enum : uint { JOYERR_PARMS = JOYERR_BASE+5 } -enum : uint { JOYERR_NOCANDO = JOYERR_BASE+6 } -enum : uint { JOYERR_UNPLUGGED = JOYERR_BASE+7 } - -enum : uint { JOY_BUTTON1 = 0x0001 } -enum : uint { JOY_BUTTON2 = 0x0002 } -enum : uint { JOY_BUTTON3 = 0x0004 } -enum : uint { JOY_BUTTON4 = 0x0008 } -enum : uint { JOY_BUTTON1CHG = 0x0100 } -enum : uint { JOY_BUTTON2CHG = 0x0200 } -enum : uint { JOY_BUTTON3CHG = 0x0400 } -enum : uint { JOY_BUTTON4CHG = 0x0800 } - -enum : uint { JOY_BUTTON5 = 0x00000010 } -enum : uint { JOY_BUTTON6 = 0x00000020 } -enum : uint { JOY_BUTTON7 = 0x00000040 } -enum : uint { JOY_BUTTON8 = 0x00000080 } -enum : uint { JOY_BUTTON9 = 0x00000100 } -enum : uint { JOY_BUTTON10 = 0x00000200 } -enum : uint { JOY_BUTTON11 = 0x00000400 } -enum : uint { JOY_BUTTON12 = 0x00000800 } -enum : uint { JOY_BUTTON13 = 0x00001000 } -enum : uint { JOY_BUTTON14 = 0x00002000 } -enum : uint { JOY_BUTTON15 = 0x00004000 } -enum : uint { JOY_BUTTON16 = 0x00008000 } -enum : uint { JOY_BUTTON17 = 0x00010000 } -enum : uint { JOY_BUTTON18 = 0x00020000 } -enum : uint { JOY_BUTTON19 = 0x00040000 } -enum : uint { JOY_BUTTON20 = 0x00080000 } -enum : uint { JOY_BUTTON21 = 0x00100000 } -enum : uint { JOY_BUTTON22 = 0x00200000 } -enum : uint { JOY_BUTTON23 = 0x00400000 } -enum : uint { JOY_BUTTON24 = 0x00800000 } -enum : uint { JOY_BUTTON25 = 0x01000000 } -enum : uint { JOY_BUTTON26 = 0x02000000 } -enum : uint { JOY_BUTTON27 = 0x04000000 } -enum : uint { JOY_BUTTON28 = 0x08000000 } -enum : uint { JOY_BUTTON29 = 0x10000000 } -enum : uint { JOY_BUTTON30 = 0x20000000 } -enum : uint { JOY_BUTTON31 = 0x40000000 } -enum : uint { JOY_BUTTON32 = 0x80000000 } - -enum : WORD { JOY_POVCENTERED = cast(WORD)-1 } -enum : uint { JOY_POVFORWARD = 0 } -enum : uint { JOY_POVRIGHT = 9000 } -enum : uint { JOY_POVBACKWARD = 18000 } -enum : uint { JOY_POVLEFT = 27000 } - -enum : uint { JOY_RETURNX = 0x00000001 } -enum : uint { JOY_RETURNY = 0x00000002 } -enum : uint { JOY_RETURNZ = 0x00000004 } -enum : uint { JOY_RETURNR = 0x00000008 } -enum : uint { JOY_RETURNU = 0x00000010 } -enum : uint { JOY_RETURNV = 0x00000020 } -enum : uint { JOY_RETURNPOV = 0x00000040 } -enum : uint { JOY_RETURNBUTTONS = 0x00000080 } -enum : uint { JOY_RETURNRAWDATA = 0x00000100 } -enum : uint { JOY_RETURNPOVCTS = 0x00000200 } -enum : uint { JOY_RETURNCENTERED = 0x00000400 } -enum : uint { JOY_USEDEADZONE = 0x00000800 } -enum : uint { JOY_RETURNALL = JOY_RETURNX | JOY_RETURNY | JOY_RETURNZ | JOY_RETURNR | JOY_RETURNU | JOY_RETURNV | JOY_RETURNPOV | JOY_RETURNBUTTONS } -enum : uint { JOY_CAL_READALWAYS = 0x00010000 } -enum : uint { JOY_CAL_READXYONLY = 0x00020000 } -enum : uint { JOY_CAL_READ3 = 0x00040000 } -enum : uint { JOY_CAL_READ4 = 0x00080000 } -enum : uint { JOY_CAL_READXONLY = 0x00100000 } -enum : uint { JOY_CAL_READYONLY = 0x00200000 } -enum : uint { JOY_CAL_READ5 = 0x00400000 } -enum : uint { JOY_CAL_READ6 = 0x00800000 } -enum : uint { JOY_CAL_READZONLY = 0x01000000 } -enum : uint { JOY_CAL_READRONLY = 0x02000000 } -enum : uint { JOY_CAL_READUONLY = 0x04000000 } -enum : uint { JOY_CAL_READVONLY = 0x08000000 } - -enum : uint { JOYSTICKID1 = 0 } -enum : uint { JOYSTICKID2 = 1 } - -enum : uint { JOYCAPS_HASZ = 0x0001 } -enum : uint { JOYCAPS_HASR = 0x0002 } -enum : uint { JOYCAPS_HASU = 0x0004 } -enum : uint { JOYCAPS_HASV = 0x0008 } -enum : uint { JOYCAPS_HASPOV = 0x0010 } -enum : uint { JOYCAPS_POV4DIR = 0x0020 } -enum : uint { JOYCAPS_POVCTS = 0x0040 } - -// #ifdef _WIN32 - -struct tagJOYCAPSA { - WORD wMid; - WORD wPid; - CHAR szPname[MAXPNAMELEN]; - UINT wXmin; - UINT wXmax; - UINT wYmin; - UINT wYmax; - UINT wZmin; - UINT wZmax; - UINT wNumButtons; - UINT wPeriodMin; - UINT wPeriodMax; -// #if (WINVER >= 0x0400) - UINT wRmin; - UINT wRmax; - UINT wUmin; - UINT wUmax; - UINT wVmin; - UINT wVmax; - UINT wCaps; - UINT wMaxAxes; - UINT wNumAxes; - UINT wMaxButtons; - CHAR szRegKey[MAXPNAMELEN]; - CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; -// #endif -} -alias tagJOYCAPSA JOYCAPSA; -alias tagJOYCAPSA* PJOYCAPSA; -alias tagJOYCAPSA* NPJOYCAPSA; -alias tagJOYCAPSA* LPJOYCAPSA; - -struct tagJOYCAPSW { - WORD wMid; - WORD wPid; - WCHAR szPname[MAXPNAMELEN]; - UINT wXmin; - UINT wXmax; - UINT wYmin; - UINT wYmax; - UINT wZmin; - UINT wZmax; - UINT wNumButtons; - UINT wPeriodMin; - UINT wPeriodMax; -// #if (WINVER >= 0x0400) - UINT wRmin; - UINT wRmax; - UINT wUmin; - UINT wUmax; - UINT wVmin; - UINT wVmax; - UINT wCaps; - UINT wMaxAxes; - UINT wNumAxes; - UINT wMaxButtons; - WCHAR szRegKey[MAXPNAMELEN]; - WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; -// #endif -} -alias tagJOYCAPSW JOYCAPSW; -alias tagJOYCAPSW* PJOYCAPSW; -alias tagJOYCAPSW* NPJOYCAPSW; -alias tagJOYCAPSW* LPJOYCAPSW; - -// #ifdef UNICODE -// ... -// #else -alias JOYCAPSA JOYCAPS; -alias PJOYCAPSA PJOYCAPS; -alias NPJOYCAPSA NPJOYCAPS; -alias LPJOYCAPSA LPJOYCAPS; -// #endif // UNICODE -struct tagJOYCAPS2A { - WORD wMid; - WORD wPid; - CHAR szPname[MAXPNAMELEN]; - UINT wXmin; - UINT wXmax; - UINT wYmin; - UINT wYmax; - UINT wZmin; - UINT wZmax; - UINT wNumButtons; - UINT wPeriodMin; - UINT wPeriodMax; - UINT wRmin; - UINT wRmax; - UINT wUmin; - UINT wUmax; - UINT wVmin; - UINT wVmax; - UINT wCaps; - UINT wMaxAxes; - UINT wNumAxes; - UINT wMaxButtons; - CHAR szRegKey[MAXPNAMELEN]; - CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagJOYCAPS2A JOYCAPS2A; -alias tagJOYCAPS2A* PJOYCAPS2A; -alias tagJOYCAPS2A* NPJOYCAPS2A; -alias tagJOYCAPS2A* LPJOYCAPS2A; - -struct tagJOYCAPS2W { - WORD wMid; - WORD wPid; - WCHAR szPname[MAXPNAMELEN]; - UINT wXmin; - UINT wXmax; - UINT wYmin; - UINT wYmax; - UINT wZmin; - UINT wZmax; - UINT wNumButtons; - UINT wPeriodMin; - UINT wPeriodMax; - UINT wRmin; - UINT wRmax; - UINT wUmin; - UINT wUmax; - UINT wVmin; - UINT wVmax; - UINT wCaps; - UINT wMaxAxes; - UINT wNumAxes; - UINT wMaxButtons; - WCHAR szRegKey[MAXPNAMELEN]; - WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagJOYCAPS2W JOYCAPS2W; -alias tagJOYCAPS2W* PJOYCAPS2W; -alias tagJOYCAPS2W* NPJOYCAPS2W; -alias tagJOYCAPS2W* LPJOYCAPS2W; - -// #ifdef UNICODE -// ... -// #else -alias JOYCAPS2A JOYCAPS2; -alias PJOYCAPS2A PJOYCAPS2; -alias NPJOYCAPS2A NPJOYCAPS2; -alias LPJOYCAPS2A LPJOYCAPS2; -// #endif // UNICODE - -// #else -// ... -// #if (WINVER >= 0x0400) -// ... -// #endif -// ... -// #endif - -struct joyinfo_tag { - UINT wXpos; - UINT wYpos; - UINT wZpos; - UINT wButtons; -} -alias joyinfo_tag JOYINFO; -alias joyinfo_tag* PJOYINFO; -alias joyinfo_tag* NPJOYINFO; -alias joyinfo_tag* LPJOYINFO; - -// #if(WINVER >= 0x0400) -struct joyinfoex_tag { - DWORD dwSize; - DWORD dwFlags; - DWORD dwXpos; - DWORD dwYpos; - DWORD dwZpos; - DWORD dwRpos; - DWORD dwUpos; - DWORD dwVpos; - DWORD dwButtons; - DWORD dwButtonNumber; - DWORD dwPOV; - DWORD dwReserved1; - DWORD dwReserved2; -} -alias joyinfoex_tag JOYINFOEX; -alias joyinfoex_tag* PJOYINFOEX; -alias joyinfoex_tag* NPJOYINFOEX; -alias joyinfoex_tag* LPJOYINFOEX; - -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export UINT joyGetNumDevs(); -// #ifdef _WIN32 - -extern(Windows) export MMRESULT joyGetDevCapsA(UINT_PTR uJoyID, LPJOYCAPSA pjc, UINT cbjc); -extern(Windows) export MMRESULT joyGetDevCapsW(UINT_PTR uJoyID, LPJOYCAPSW pjc, UINT cbjc); -// #ifdef UNICODE -// #... -// #else -alias joyGetDevCapsA joyGetDevCaps; -// #endif // !UNICODE - -// #else -// ... -// #endif -extern(Windows) export MMRESULT joyGetPos(UINT uJoyID, LPJOYINFO pji); - -// #if(WINVER >= 0x0400) -extern(Windows) export MMRESULT joyGetPosEx(UINT uJoyID, LPJOYINFOEX pji); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export MMRESULT joyGetThreshold(UINT uJoyID, LPUINT puThreshold); -extern(Windows) export MMRESULT joyReleaseCapture(UINT uJoyID); -extern(Windows) export MMRESULT joySetCapture(HWND hwnd, UINT uJoyID, UINT uPeriod, - BOOL fChanged); -extern(Windows) export MMRESULT joySetThreshold(UINT uJoyID, UINT uThreshold); - -// #endif /* ifndef MMNOJOY */ - -// #ifndef MMNOMMIO - -enum : uint { MMIOERR_BASE = 256 } -enum : uint { MMIOERR_FILENOTFOUND = MMIOERR_BASE + 1 } -enum : uint { MMIOERR_OUTOFMEMORY = MMIOERR_BASE + 2 } -enum : uint { MMIOERR_CANNOTOPEN = MMIOERR_BASE + 3 } -enum : uint { MMIOERR_CANNOTCLOSE = MMIOERR_BASE + 4 } -enum : uint { MMIOERR_CANNOTREAD = MMIOERR_BASE + 5 } -enum : uint { MMIOERR_CANNOTWRITE = MMIOERR_BASE + 6 } -enum : uint { MMIOERR_CANNOTSEEK = MMIOERR_BASE + 7 } -enum : uint { MMIOERR_CANNOTEXPAND = MMIOERR_BASE + 8 } -enum : uint { MMIOERR_CHUNKNOTFOUND = MMIOERR_BASE + 9 } -enum : uint { MMIOERR_UNBUFFERED = MMIOERR_BASE + 10 } -enum : uint { MMIOERR_PATHNOTFOUND = MMIOERR_BASE + 11 } -enum : uint { MMIOERR_ACCESSDENIED = MMIOERR_BASE + 12 } -enum : uint { MMIOERR_SHARINGVIOLATION = MMIOERR_BASE + 13 } -enum : uint { MMIOERR_NETWORKERROR = MMIOERR_BASE + 14 } -enum : uint { MMIOERR_TOOMANYOPENFILES = MMIOERR_BASE + 15 } -enum : uint { MMIOERR_INVALIDFILE = MMIOERR_BASE + 16 } - -const char CFSEPCHAR = '+'; - -alias DWORD FOURCC; -alias char* HPSTR; -alias void* HMMIO; -// typedef LRESULT (CALLBACK MMIOPROC)(LPSTR lpmmioinfo, UINT uMsg, LPARAM lParam1, LPARAM lParam2); -extern(Windows) alias LRESULT function(LPSTR lpmmioinfo, UINT uMsg, LPARAM lParam1, LPARAM lParam2) LPMMIOPROC; - -struct _MMIOINFO { - - DWORD dwFlags; - FOURCC fccIOProc; - LPMMIOPROC pIOProc; - UINT wErrorRet; - HTASK htask; - - LONG cchBuffer; - HPSTR pchBuffer; - HPSTR pchNext; - HPSTR pchEndRead; - HPSTR pchEndWrite; - LONG lBufOffset; - - LONG lDiskOffset; - DWORD adwInfo[3]; - - DWORD dwReserved1; - DWORD dwReserved2; - HMMIO hmmio; -} -alias _MMIOINFO MMIOINFO; -alias _MMIOINFO* PMMIOINFO; -alias _MMIOINFO* NPMMIOINFO; -alias _MMIOINFO* LPMMIOINFO; - -alias MMIOINFO* LPCMMIOINFO; - -struct _MMCKINFO { - FOURCC ckid; - DWORD cksize; - FOURCC fccType; - DWORD dwDataOffset; - DWORD dwFlags; -} -alias _MMCKINFO MMCKINFO; -alias _MMCKINFO* PMMCKINFO; -alias _MMCKINFO* NPMMCKINFO; -alias _MMCKINFO* LPMMCKINFO; - -alias MMCKINFO* LPCMMCKINFO; - -enum : uint { MMIO_RWMODE = 0x00000003 } -enum : uint { MMIO_SHAREMODE = 0x00000070 } - -enum : uint { MMIO_CREATE = 0x00001000 } -enum : uint { MMIO_PARSE = 0x00000100 } -enum : uint { MMIO_DELETE = 0x00000200 } -enum : uint { MMIO_EXIST = 0x00004000 } -enum : uint { MMIO_ALLOCBUF = 0x00010000 } -enum : uint { MMIO_GETTEMP = 0x00020000 } - -enum : uint { MMIO_DIRTY = 0x10000000 } - -enum : uint { MMIO_READ = 0x00000000 } -enum : uint { MMIO_WRITE = 0x00000001 } -enum : uint { MMIO_READWRITE = 0x00000002 } - -enum : uint { MMIO_COMPAT = 0x00000000 } -enum : uint { MMIO_EXCLUSIVE = 0x00000010 } -enum : uint { MMIO_DENYWRITE = 0x00000020 } -enum : uint { MMIO_DENYREAD = 0x00000030 } -enum : uint { MMIO_DENYNONE = 0x00000040 } - -enum : uint { MMIO_FHOPEN = 0x0010 } -enum : uint { MMIO_EMPTYBUF = 0x0010 } -enum : uint { MMIO_TOUPPER = 0x0010 } -enum : uint { MMIO_INSTALLPROC = 0x00010000 } -enum : uint { MMIO_GLOBALPROC = 0x10000000 } -enum : uint { MMIO_REMOVEPROC = 0x00020000 } -enum : uint { MMIO_UNICODEPROC = 0x01000000 } -enum : uint { MMIO_FINDPROC = 0x00040000 } -enum : uint { MMIO_FINDCHUNK = 0x0010 } -enum : uint { MMIO_FINDRIFF = 0x0020 } -enum : uint { MMIO_FINDLIST = 0x0040 } -enum : uint { MMIO_CREATERIFF = 0x0020 } -enum : uint { MMIO_CREATELIST = 0x0040 } - -alias MMIO_READ MMIOM_READ; -alias MMIO_WRITE MMIOM_WRITE; -enum : uint { MMIOM_SEEK = 2 } -enum : uint { MMIOM_OPEN = 3 } -enum : uint { MMIOM_CLOSE = 4 } -enum : uint { MMIOM_WRITEFLUSH = 5 } - -// #if (WINVER >= 0x030a) -enum : uint { MMIOM_RENAME = 6 } -// #endif /* ifdef WINVER >= 0x030a */ - -enum : uint { MMIOM_USER = 0x8000 } - -// #define FOURCC_RIFF mmioFOURCC('R', 'I', 'F', 'F') -// #define FOURCC_LIST mmioFOURCC('L', 'I', 'S', 'T') - -// #define FOURCC_DOS mmioFOURCC('D', 'O', 'S', ' ') -// #define FOURCC_MEM mmioFOURCC('M', 'E', 'M', ' ') - -// #ifndef SEEK_SET -enum : uint { SEEK_SET = 0 } -enum : uint { SEEK_CUR = 1 } -enum : uint { SEEK_END = 2 } -// #endif /* ifndef SEEK_SET */ - -enum : uint { MMIO_DEFAULTBUFFER = 8192 } - -// #define mmioFOURCC(ch0, ch1, ch2, ch3) MAKEFOURCC(ch0, ch1, ch2, ch3) - -// #ifdef _WIN32 - -extern(Windows) export FOURCC mmioStringToFOURCCA(LPCSTR sz, UINT uFlags); -extern(Windows) export FOURCC mmioStringToFOURCCW(LPCWSTR sz, UINT uFlags); -// #ifdef UNICODE -// #... -// #else -alias mmioStringToFOURCCA mmioStringToFOURCC; -// #endif // !UNICODE -extern(Windows) export LPMMIOPROC mmioInstallIOProcA(FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags); -extern(Windows) export LPMMIOPROC mmioInstallIOProcW(FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags); -// #ifdef UNICODE -// #... -// #else -alias mmioInstallIOProcA mmioInstallIOProc; -// #endif // !UNICODE -extern(Windows) export HMMIO mmioOpenA(LPSTR pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen); -extern(Windows) export HMMIO mmioOpenW(LPWSTR pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen); -// #ifdef UNICODE -// #... -// #else -alias mmioOpenA mmioOpen; -// #endif // !UNICODE -extern(Windows) export MMRESULT mmioRenameA(LPCSTR pszFileName, LPCSTR pszNewFileName, LPCMMIOINFO pmmioinfo, DWORD fdwRename); -extern(Windows) export MMRESULT mmioRenameW(LPCWSTR pszFileName, LPCWSTR pszNewFileName, LPCMMIOINFO pmmioinfo, DWORD fdwRename); -// #ifdef UNICODE -// #... -// #else -alias mmioRenameA mmioRename; -// #endif // !UNICODE -// #else -// ... -// #if (WINVER >= 0x030a) -// ... -// #endif /* ifdef WINVER >= 0x030a */ -// #endif - -extern(Windows) export MMRESULT mmioClose(HMMIO hmmio, UINT fuClose); -extern(Windows) export LONG mmioRead(HMMIO hmmio, HPSTR pch, LONG cch); -extern(Windows) export LONG mmioWrite(HMMIO hmmio, char * pch, LONG cch); -extern(Windows) export LONG mmioSeek(HMMIO hmmio, LONG lOffset, int iOrigin); -extern(Windows) export MMRESULT mmioGetInfo(HMMIO hmmio, LPMMIOINFO pmmioinfo, UINT fuInfo); -extern(Windows) export MMRESULT mmioSetInfo(HMMIO hmmio, LPCMMIOINFO pmmioinfo, UINT fuInfo); -extern(Windows) export MMRESULT mmioSetBuffer(HMMIO hmmio, LPSTR pchBuffer, LONG cchBuffer, - UINT fuBuffer); -extern(Windows) export MMRESULT mmioFlush(HMMIO hmmio, UINT fuFlush); -extern(Windows) export MMRESULT mmioAdvance(HMMIO hmmio, LPMMIOINFO pmmioinfo, UINT fuAdvance); -extern(Windows) export LRESULT mmioSendMessage(HMMIO hmmio, UINT uMsg, - LPARAM lParam1, LPARAM lParam2); -extern(Windows) export MMRESULT mmioDescend(HMMIO hmmio, LPMMCKINFO pmmcki, - MMCKINFO * pmmckiParent, UINT fuDescend); -extern(Windows) export MMRESULT mmioAscend(HMMIO hmmio, LPMMCKINFO pmmcki, UINT fuAscend); -extern(Windows) export MMRESULT mmioCreateChunk(HMMIO hmmio, LPMMCKINFO pmmcki, UINT fuCreate); - -// #endif /* ifndef MMNOMMIO */ - -// #ifndef MMNOMCI - -// #ifndef _MCIERROR_ /* MCIERROR is defined in some post 3.1 apps */ -// #define _MCIERROR_ -alias DWORD MCIERROR; -// #endif - -// #ifndef _MCIDEVICEID_ /* Same with MCIDEVICEID */ -// #define _MCIDEVICEID_ -alias UINT MCIDEVICEID; -// #endif - -extern(Windows) alias UINT function(MCIDEVICEID mciId, DWORD dwYieldData) YIELDPROC; - -// #ifdef _WIN32 - -extern(Windows) export MCIERROR mciSendCommandA(MCIDEVICEID mciId, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2); -extern(Windows) export MCIERROR mciSendCommandW(MCIDEVICEID mciId, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2); -// #ifdef UNICODE -// #... -// #else -alias mciSendCommandA mciSendCommand; -// #endif // !UNICODE -extern(Windows) export MCIERROR mciSendStringA(LPCSTR lpstrCommand, LPSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback); -extern(Windows) export MCIERROR mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback); -// #ifdef UNICODE -// #... -// #else -alias mciSendStringA mciSendString; -// #endif // !UNICODE -extern(Windows) export MCIDEVICEID mciGetDeviceIDA(LPCSTR pszDevice); -extern(Windows) export MCIDEVICEID mciGetDeviceIDW(LPCWSTR pszDevice); -// #ifdef UNICODE -// #... -// #else -alias mciGetDeviceIDA mciGetDeviceID; -// #endif // !UNICODE -extern(Windows) export MCIDEVICEID mciGetDeviceIDFromElementIDA(DWORD dwElementID, LPCSTR lpstrType ); -extern(Windows) export MCIDEVICEID mciGetDeviceIDFromElementIDW(DWORD dwElementID, LPCWSTR lpstrType ); -// #ifdef UNICODE -// #... -// #else -alias mciGetDeviceIDFromElementIDA mciGetDeviceIDFromElementID; -// #endif // !UNICODE -extern(Windows) export BOOL mciGetErrorStringA(MCIERROR mcierr, LPSTR pszText, UINT cchText); -extern(Windows) export BOOL mciGetErrorStringW(MCIERROR mcierr, LPWSTR pszText, UINT cchText); -// #ifdef UNICODE -// #... -// #else -alias mciGetErrorStringA mciGetErrorString; -// #endif // !UNICODE - -// #else -// ... -// #endif - -extern(Windows) export BOOL mciSetYieldProc(MCIDEVICEID mciId, YIELDPROC fpYieldProc, - DWORD dwYieldData); - -// #if (WINVER >= 0x030a) -extern(Windows) export HTASK mciGetCreatorTask(MCIDEVICEID mciId); -extern(Windows) export YIELDPROC mciGetYieldProc(MCIDEVICEID mciId, LPDWORD pdwYieldData); -// #endif /* ifdef WINVER >= 0x030a */ - -// #if (WINVER < 0x030a) -// ... -// #endif /* ifdef WINVER < 0x030a */ - -enum : uint { MCIERR_INVALID_DEVICE_ID = MCIERR_BASE + 1 } -enum : uint { MCIERR_UNRECOGNIZED_KEYWORD = MCIERR_BASE + 3 } -enum : uint { MCIERR_UNRECOGNIZED_COMMAND = MCIERR_BASE + 5 } -enum : uint { MCIERR_HARDWARE = MCIERR_BASE + 6 } -enum : uint { MCIERR_INVALID_DEVICE_NAME = MCIERR_BASE + 7 } -enum : uint { MCIERR_OUT_OF_MEMORY = MCIERR_BASE + 8 } -enum : uint { MCIERR_DEVICE_OPEN = MCIERR_BASE + 9 } -enum : uint { MCIERR_CANNOT_LOAD_DRIVER = MCIERR_BASE + 10 } -enum : uint { MCIERR_MISSING_COMMAND_STRING = MCIERR_BASE + 11 } -enum : uint { MCIERR_PARAM_OVERFLOW = MCIERR_BASE + 12 } -enum : uint { MCIERR_MISSING_STRING_ARGUMENT = MCIERR_BASE + 13 } -enum : uint { MCIERR_BAD_INTEGER = MCIERR_BASE + 14 } -enum : uint { MCIERR_PARSER_INTERNAL = MCIERR_BASE + 15 } -enum : uint { MCIERR_DRIVER_INTERNAL = MCIERR_BASE + 16 } -enum : uint { MCIERR_MISSING_PARAMETER = MCIERR_BASE + 17 } -enum : uint { MCIERR_UNSUPPORTED_FUNCTION = MCIERR_BASE + 18 } -enum : uint { MCIERR_FILE_NOT_FOUND = MCIERR_BASE + 19 } -enum : uint { MCIERR_DEVICE_NOT_READY = MCIERR_BASE + 20 } -enum : uint { MCIERR_INTERNAL = MCIERR_BASE + 21 } -enum : uint { MCIERR_DRIVER = MCIERR_BASE + 22 } -enum : uint { MCIERR_CANNOT_USE_ALL = MCIERR_BASE + 23 } -enum : uint { MCIERR_MULTIPLE = MCIERR_BASE + 24 } -enum : uint { MCIERR_EXTENSION_NOT_FOUND = MCIERR_BASE + 25 } -enum : uint { MCIERR_OUTOFRANGE = MCIERR_BASE + 26 } -enum : uint { MCIERR_FLAGS_NOT_COMPATIBLE = MCIERR_BASE + 28 } -enum : uint { MCIERR_FILE_NOT_SAVED = MCIERR_BASE + 30 } -enum : uint { MCIERR_DEVICE_TYPE_REQUIRED = MCIERR_BASE + 31 } -enum : uint { MCIERR_DEVICE_LOCKED = MCIERR_BASE + 32 } -enum : uint { MCIERR_DUPLICATE_ALIAS = MCIERR_BASE + 33 } -enum : uint { MCIERR_BAD_CONSTANT = MCIERR_BASE + 34 } -enum : uint { MCIERR_MUST_USE_SHAREABLE = MCIERR_BASE + 35 } -enum : uint { MCIERR_MISSING_DEVICE_NAME = MCIERR_BASE + 36 } -enum : uint { MCIERR_BAD_TIME_FORMAT = MCIERR_BASE + 37 } -enum : uint { MCIERR_NO_CLOSING_QUOTE = MCIERR_BASE + 38 } -enum : uint { MCIERR_DUPLICATE_FLAGS = MCIERR_BASE + 39 } -enum : uint { MCIERR_INVALID_FILE = MCIERR_BASE + 40 } -enum : uint { MCIERR_NULL_PARAMETER_BLOCK = MCIERR_BASE + 41 } -enum : uint { MCIERR_UNNAMED_RESOURCE = MCIERR_BASE + 42 } -enum : uint { MCIERR_NEW_REQUIRES_ALIAS = MCIERR_BASE + 43 } -enum : uint { MCIERR_NOTIFY_ON_AUTO_OPEN = MCIERR_BASE + 44 } -enum : uint { MCIERR_NO_ELEMENT_ALLOWED = MCIERR_BASE + 45 } -enum : uint { MCIERR_NONAPPLICABLE_FUNCTION = MCIERR_BASE + 46 } -enum : uint { MCIERR_ILLEGAL_FOR_AUTO_OPEN = MCIERR_BASE + 47 } -enum : uint { MCIERR_FILENAME_REQUIRED = MCIERR_BASE + 48 } -enum : uint { MCIERR_EXTRA_CHARACTERS = MCIERR_BASE + 49 } -enum : uint { MCIERR_DEVICE_NOT_INSTALLED = MCIERR_BASE + 50 } -enum : uint { MCIERR_GET_CD = MCIERR_BASE + 51 } -enum : uint { MCIERR_SET_CD = MCIERR_BASE + 52 } -enum : uint { MCIERR_SET_DRIVE = MCIERR_BASE + 53 } -enum : uint { MCIERR_DEVICE_LENGTH = MCIERR_BASE + 54 } -enum : uint { MCIERR_DEVICE_ORD_LENGTH = MCIERR_BASE + 55 } -enum : uint { MCIERR_NO_INTEGER = MCIERR_BASE + 56 } - -enum : uint { MCIERR_WAVE_OUTPUTSINUSE = MCIERR_BASE + 64 } -enum : uint { MCIERR_WAVE_SETOUTPUTINUSE = MCIERR_BASE + 65 } -enum : uint { MCIERR_WAVE_INPUTSINUSE = MCIERR_BASE + 66 } -enum : uint { MCIERR_WAVE_SETINPUTINUSE = MCIERR_BASE + 67 } -enum : uint { MCIERR_WAVE_OUTPUTUNSPECIFIED = MCIERR_BASE + 68 } -enum : uint { MCIERR_WAVE_INPUTUNSPECIFIED = MCIERR_BASE + 69 } -enum : uint { MCIERR_WAVE_OUTPUTSUNSUITABLE = MCIERR_BASE + 70 } -enum : uint { MCIERR_WAVE_SETOUTPUTUNSUITABLE = MCIERR_BASE + 71 } -enum : uint { MCIERR_WAVE_INPUTSUNSUITABLE = MCIERR_BASE + 72 } -enum : uint { MCIERR_WAVE_SETINPUTUNSUITABLE = MCIERR_BASE + 73 } - -enum : uint { MCIERR_SEQ_DIV_INCOMPATIBLE = MCIERR_BASE + 80 } -enum : uint { MCIERR_SEQ_PORT_INUSE = MCIERR_BASE + 81 } -enum : uint { MCIERR_SEQ_PORT_NONEXISTENT = MCIERR_BASE + 82 } -enum : uint { MCIERR_SEQ_PORT_MAPNODEVICE = MCIERR_BASE + 83 } -enum : uint { MCIERR_SEQ_PORT_MISCERROR = MCIERR_BASE + 84 } -enum : uint { MCIERR_SEQ_TIMER = MCIERR_BASE + 85 } -enum : uint { MCIERR_SEQ_PORTUNSPECIFIED = MCIERR_BASE + 86 } -enum : uint { MCIERR_SEQ_NOMIDIPRESENT = MCIERR_BASE + 87 } - -enum : uint { MCIERR_NO_WINDOW = MCIERR_BASE + 90 } -enum : uint { MCIERR_CREATEWINDOW = MCIERR_BASE + 91 } -enum : uint { MCIERR_FILE_READ = MCIERR_BASE + 92 } -enum : uint { MCIERR_FILE_WRITE = MCIERR_BASE + 93 } - -enum : uint { MCIERR_NO_IDENTITY = MCIERR_BASE + 94 } - -enum : uint { MCIERR_CUSTOM_DRIVER_BASE = MCIERR_BASE + 256 } - -alias DRV_MCI_FIRST MCI_FIRST; - -enum : uint { MCI_OPEN = 0x0803 } -enum : uint { MCI_CLOSE = 0x0804 } -enum : uint { MCI_ESCAPE = 0x0805 } -enum : uint { MCI_PLAY = 0x0806 } -enum : uint { MCI_SEEK = 0x0807 } -enum : uint { MCI_STOP = 0x0808 } -enum : uint { MCI_PAUSE = 0x0809 } -enum : uint { MCI_INFO = 0x080A } -enum : uint { MCI_GETDEVCAPS = 0x080B } -enum : uint { MCI_SPIN = 0x080C } -enum : uint { MCI_SET = 0x080D } -enum : uint { MCI_STEP = 0x080E } -enum : uint { MCI_RECORD = 0x080F } -enum : uint { MCI_SYSINFO = 0x0810 } -enum : uint { MCI_BREAK = 0x0811 } -enum : uint { MCI_SAVE = 0x0813 } -enum : uint { MCI_STATUS = 0x0814 } -enum : uint { MCI_CUE = 0x0830 } -enum : uint { MCI_REALIZE = 0x0840 } -enum : uint { MCI_WINDOW = 0x0841 } -enum : uint { MCI_PUT = 0x0842 } -enum : uint { MCI_WHERE = 0x0843 } -enum : uint { MCI_FREEZE = 0x0844 } -enum : uint { MCI_UNFREEZE = 0x0845 } -enum : uint { MCI_LOAD = 0x0850 } -enum : uint { MCI_CUT = 0x0851 } -enum : uint { MCI_COPY = 0x0852 } -enum : uint { MCI_PASTE = 0x0853 } -enum : uint { MCI_UPDATE = 0x0854 } -enum : uint { MCI_RESUME = 0x0855 } -enum : uint { MCI_DELETE = 0x0856 } - -enum : uint { MCI_USER_MESSAGES = DRV_MCI_FIRST + 0x400 } -enum : uint { MCI_LAST = 0x0FFF } - -enum : uint { MCI_ALL_DEVICE_ID = cast(MCIDEVICEID)-1 } - -enum : uint { MCI_DEVTYPE_VCR = 513 } -enum : uint { MCI_DEVTYPE_VIDEODISC = 514 } -enum : uint { MCI_DEVTYPE_OVERLAY = 515 } -enum : uint { MCI_DEVTYPE_CD_AUDIO = 516 } -enum : uint { MCI_DEVTYPE_DAT = 517 } -enum : uint { MCI_DEVTYPE_SCANNER = 518 } -enum : uint { MCI_DEVTYPE_ANIMATION = 519 } -enum : uint { MCI_DEVTYPE_DIGITAL_VIDEO = 520 } -enum : uint { MCI_DEVTYPE_OTHER = 521 } -enum : uint { MCI_DEVTYPE_WAVEFORM_AUDIO = 522 } -enum : uint { MCI_DEVTYPE_SEQUENCER = 523 } - -alias MCI_DEVTYPE_VCR MCI_DEVTYPE_FIRST; -alias MCI_DEVTYPE_SEQUENCER MCI_DEVTYPE_LAST; - -enum : uint { MCI_DEVTYPE_FIRST_USER = 0x1000 } - -enum : uint { MCI_MODE_NOT_READY = MCI_STRING_OFFSET + 12 } -enum : uint { MCI_MODE_STOP = MCI_STRING_OFFSET + 13 } -enum : uint { MCI_MODE_PLAY = MCI_STRING_OFFSET + 14 } -enum : uint { MCI_MODE_RECORD = MCI_STRING_OFFSET + 15 } -enum : uint { MCI_MODE_SEEK = MCI_STRING_OFFSET + 16 } -enum : uint { MCI_MODE_PAUSE = MCI_STRING_OFFSET + 17 } -enum : uint { MCI_MODE_OPEN = MCI_STRING_OFFSET + 18 } - -enum : uint { MCI_FORMAT_MILLISECONDS = 0 } -enum : uint { MCI_FORMAT_HMS = 1 } -enum : uint { MCI_FORMAT_MSF = 2 } -enum : uint { MCI_FORMAT_FRAMES = 3 } -enum : uint { MCI_FORMAT_SMPTE_24 = 4 } -enum : uint { MCI_FORMAT_SMPTE_25 = 5 } -enum : uint { MCI_FORMAT_SMPTE_30 = 6 } -enum : uint { MCI_FORMAT_SMPTE_30DROP = 7 } -enum : uint { MCI_FORMAT_BYTES = 8 } -enum : uint { MCI_FORMAT_SAMPLES = 9 } -enum : uint { MCI_FORMAT_TMSF = 10 } - -// #define MCI_MSF_MINUTE(msf) ((BYTE)(msf)) -// #define MCI_MSF_SECOND(msf) ((BYTE)(((WORD)(msf)) >> 8)) -// #define MCI_MSF_FRAME(msf) ((BYTE)((msf)>>16)) - -// #define MCI_MAKE_MSF(m, s, f) ((DWORD)(((BYTE)(m) | ((WORD)(s)<<8)) | (((DWORD)(BYTE)(f))<<16))) - -// #define MCI_TMSF_TRACK(tmsf) ((BYTE)(tmsf)) -// #define MCI_TMSF_MINUTE(tmsf) ((BYTE)(((WORD)(tmsf)) >> 8)) -// #define MCI_TMSF_SECOND(tmsf) ((BYTE)((tmsf)>>16)) -// #define MCI_TMSF_FRAME(tmsf) ((BYTE)((tmsf)>>24)) - -// #define MCI_MAKE_TMSF(t, m, s, f) ((DWORD)(((BYTE)(t) | ((WORD)(m)<<8)) | (((DWORD)(BYTE)(s) | ((WORD)(f)<<8))<<16))) - -// #define MCI_HMS_HOUR(hms) ((BYTE)(hms)) -// #define MCI_HMS_MINUTE(hms) ((BYTE)(((WORD)(hms)) >> 8)) -// #define MCI_HMS_SECOND(hms) ((BYTE)((hms)>>16)) - -// #define MCI_MAKE_HMS(h, m, s) ((DWORD)(((BYTE)(h) | ((WORD)(m)<<8)) | (((DWORD)(BYTE)(s))<<16))) - -enum : uint { MCI_NOTIFY_SUCCESSFUL = 0x0001 } -enum : uint { MCI_NOTIFY_SUPERSEDED = 0x0002 } -enum : uint { MCI_NOTIFY_ABORTED = 0x0004 } -enum : uint { MCI_NOTIFY_FAILURE = 0x0008 } - -enum : uint { MCI_NOTIFY = 0x00000001 } -enum : uint { MCI_WAIT = 0x00000002 } -enum : uint { MCI_FROM = 0x00000004 } -enum : uint { MCI_TO = 0x00000008 } -enum : uint { MCI_TRACK = 0x00000010 } - -enum : uint { MCI_OPEN_SHAREABLE = 0x00000100 } -enum : uint { MCI_OPEN_ELEMENT = 0x00000200 } -enum : uint { MCI_OPEN_ALIAS = 0x00000400 } -enum : uint { MCI_OPEN_ELEMENT_ID = 0x00000800 } -enum : uint { MCI_OPEN_TYPE_ID = 0x00001000 } -enum : uint { MCI_OPEN_TYPE = 0x00002000 } - -enum : uint { MCI_SEEK_TO_START = 0x00000100 } -enum : uint { MCI_SEEK_TO_END = 0x00000200 } - -enum : uint { MCI_STATUS_ITEM = 0x00000100 } -enum : uint { MCI_STATUS_START = 0x00000200 } - -enum : uint { MCI_STATUS_LENGTH = 0x00000001 } -enum : uint { MCI_STATUS_POSITION = 0x00000002 } -enum : uint { MCI_STATUS_NUMBER_OF_TRACKS = 0x00000003 } -enum : uint { MCI_STATUS_MODE = 0x00000004 } -enum : uint { MCI_STATUS_MEDIA_PRESENT = 0x00000005 } -enum : uint { MCI_STATUS_TIME_FORMAT = 0x00000006 } -enum : uint { MCI_STATUS_READY = 0x00000007 } -enum : uint { MCI_STATUS_CURRENT_TRACK = 0x00000008 } - -enum : uint { MCI_INFO_PRODUCT = 0x00000100 } -enum : uint { MCI_INFO_FILE = 0x00000200 } -enum : uint { MCI_INFO_MEDIA_UPC = 0x00000400 } -enum : uint { MCI_INFO_MEDIA_IDENTITY = 0x00000800 } -enum : uint { MCI_INFO_NAME = 0x00001000 } -enum : uint { MCI_INFO_COPYRIGHT = 0x00002000 } - -enum : uint { MCI_GETDEVCAPS_ITEM = 0x00000100 } - -enum : uint { MCI_GETDEVCAPS_CAN_RECORD = 0x00000001 } -enum : uint { MCI_GETDEVCAPS_HAS_AUDIO = 0x00000002 } -enum : uint { MCI_GETDEVCAPS_HAS_VIDEO = 0x00000003 } -enum : uint { MCI_GETDEVCAPS_DEVICE_TYPE = 0x00000004 } -enum : uint { MCI_GETDEVCAPS_USES_FILES = 0x00000005 } -enum : uint { MCI_GETDEVCAPS_COMPOUND_DEVICE = 0x00000006 } -enum : uint { MCI_GETDEVCAPS_CAN_EJECT = 0x00000007 } -enum : uint { MCI_GETDEVCAPS_CAN_PLAY = 0x00000008 } -enum : uint { MCI_GETDEVCAPS_CAN_SAVE = 0x00000009 } - -enum : uint { MCI_SYSINFO_QUANTITY = 0x00000100 } -enum : uint { MCI_SYSINFO_OPEN = 0x00000200 } -enum : uint { MCI_SYSINFO_NAME = 0x00000400 } -enum : uint { MCI_SYSINFO_INSTALLNAME = 0x00000800 } - -enum : uint { MCI_SET_DOOR_OPEN = 0x00000100 } -enum : uint { MCI_SET_DOOR_CLOSED = 0x00000200 } -enum : uint { MCI_SET_TIME_FORMAT = 0x00000400 } -enum : uint { MCI_SET_AUDIO = 0x00000800 } -enum : uint { MCI_SET_VIDEO = 0x00001000 } -enum : uint { MCI_SET_ON = 0x00002000 } -enum : uint { MCI_SET_OFF = 0x00004000 } - -enum : uint { MCI_SET_AUDIO_ALL = 0x00000000 } -enum : uint { MCI_SET_AUDIO_LEFT = 0x00000001 } -enum : uint { MCI_SET_AUDIO_RIGHT = 0x00000002 } - -enum : uint { MCI_BREAK_KEY = 0x00000100 } -enum : uint { MCI_BREAK_HWND = 0x00000200 } -enum : uint { MCI_BREAK_OFF = 0x00000400 } - -enum : uint { MCI_RECORD_INSERT = 0x00000100 } -enum : uint { MCI_RECORD_OVERWRITE = 0x00000200 } - -enum : uint { MCI_SAVE_FILE = 0x00000100 } - -enum : uint { MCI_LOAD_FILE = 0x00000100 } - -struct tagMCI_GENERIC_PARMS { - DWORD_PTR dwCallback; -} -alias tagMCI_GENERIC_PARMS MCI_GENERIC_PARMS; -alias tagMCI_GENERIC_PARMS* PMCI_GENERIC_PARMS; -alias tagMCI_GENERIC_PARMS* LPMCI_GENERIC_PARMS; - -// #ifdef _WIN32 - -struct tagMCI_OPEN_PARMSA { - DWORD_PTR dwCallback; - MCIDEVICEID wDeviceID; - LPCSTR lpstrDeviceType; - LPCSTR lpstrElementName; - LPCSTR lpstrAlias; -} -alias tagMCI_OPEN_PARMSA MCI_OPEN_PARMSA; -alias tagMCI_OPEN_PARMSA* PMCI_OPEN_PARMSA; -alias tagMCI_OPEN_PARMSA* LPMCI_OPEN_PARMSA; - -struct tagMCI_OPEN_PARMSW { - DWORD_PTR dwCallback; - MCIDEVICEID wDeviceID; - LPCWSTR lpstrDeviceType; - LPCWSTR lpstrElementName; - LPCWSTR lpstrAlias; -} -alias tagMCI_OPEN_PARMSW MCI_OPEN_PARMSW; -alias tagMCI_OPEN_PARMSW* PMCI_OPEN_PARMSW; -alias tagMCI_OPEN_PARMSW* LPMCI_OPEN_PARMSW; - -// #ifdef UNICODE -// ... -// #else -alias MCI_OPEN_PARMSA MCI_OPEN_PARMS; -alias PMCI_OPEN_PARMSA PMCI_OPEN_PARMS; -alias LPMCI_OPEN_PARMSA LPMCI_OPEN_PARMS; -// #endif // UNICODE - -// #else -// ... -// #endif - -struct tagMCI_PLAY_PARMS { - DWORD_PTR dwCallback; - DWORD dwFrom; - DWORD dwTo; -} -alias tagMCI_PLAY_PARMS MCI_PLAY_PARMS; -alias tagMCI_PLAY_PARMS* PMCI_PLAY_PARMS; -alias tagMCI_PLAY_PARMS* LPMCI_PLAY_PARMS; - -struct tagMCI_SEEK_PARMS { - DWORD_PTR dwCallback; - DWORD dwTo; -} -alias tagMCI_SEEK_PARMS MCI_SEEK_PARMS; -alias tagMCI_SEEK_PARMS* PMCI_SEEK_PARMS; -alias tagMCI_SEEK_PARMS* LPMCI_SEEK_PARMS; - -struct tagMCI_STATUS_PARMS { - DWORD_PTR dwCallback; - DWORD_PTR dwReturn; - DWORD dwItem; - DWORD dwTrack; -} -alias tagMCI_STATUS_PARMS MCI_STATUS_PARMS; -alias tagMCI_STATUS_PARMS* PMCI_STATUS_PARMS; -alias tagMCI_STATUS_PARMS* LPMCI_STATUS_PARMS; - -// #ifdef _WIN32 - -struct tagMCI_INFO_PARMSA { - DWORD_PTR dwCallback; - LPSTR lpstrReturn; - DWORD dwRetSize; -} -alias tagMCI_INFO_PARMSA MCI_INFO_PARMSA; -alias tagMCI_INFO_PARMSA* LPMCI_INFO_PARMSA; - -struct tagMCI_INFO_PARMSW { - DWORD_PTR dwCallback; - LPWSTR lpstrReturn; - DWORD dwRetSize; -} -alias tagMCI_INFO_PARMSW MCI_INFO_PARMSW; -alias tagMCI_INFO_PARMSW* LPMCI_INFO_PARMSW; - -// #ifdef UNICODE -// ... -// #else -alias MCI_INFO_PARMSA MCI_INFO_PARMS; -alias LPMCI_INFO_PARMSA LPMCI_INFO_PARMS; -// #endif // UNICODE - -// #else -// ... -// #endif - -struct tagMCI_GETDEVCAPS_PARMS { - DWORD_PTR dwCallback; - DWORD dwReturn; - DWORD dwItem; -} -alias tagMCI_GETDEVCAPS_PARMS MCI_GETDEVCAPS_PARMS; -alias tagMCI_GETDEVCAPS_PARMS* PMCI_GETDEVCAPS_PARMS; -alias tagMCI_GETDEVCAPS_PARMS* LPMCI_GETDEVCAPS_PARMS; - -// #ifdef _WIN32 - -struct tagMCI_SYSINFO_PARMSA { - DWORD_PTR dwCallback; - LPSTR lpstrReturn; - DWORD dwRetSize; - DWORD dwNumber; - UINT wDeviceType; -} -alias tagMCI_SYSINFO_PARMSA MCI_SYSINFO_PARMSA; -alias tagMCI_SYSINFO_PARMSA* PMCI_SYSINFO_PARMSA; -alias tagMCI_SYSINFO_PARMSA* LPMCI_SYSINFO_PARMSA; - -struct tagMCI_SYSINFO_PARMSW { - DWORD_PTR dwCallback; - LPWSTR lpstrReturn; - DWORD dwRetSize; - DWORD dwNumber; - UINT wDeviceType; -} -alias tagMCI_SYSINFO_PARMSW MCI_SYSINFO_PARMSW; -alias tagMCI_SYSINFO_PARMSW* PMCI_SYSINFO_PARMSW; -alias tagMCI_SYSINFO_PARMSW* LPMCI_SYSINFO_PARMSW; - -// #ifdef UNICODE -// ... -// #else -alias MCI_SYSINFO_PARMSA MCI_SYSINFO_PARMS; -alias PMCI_SYSINFO_PARMSA PMCI_SYSINFO_PARMS; -alias LPMCI_SYSINFO_PARMSA LPMCI_SYSINFO_PARMS; -// #endif // UNICODE -// #else -// ... -// #endif - -struct tagMCI_SET_PARMS { - DWORD_PTR dwCallback; - DWORD dwTimeFormat; - DWORD dwAudio; -} -alias tagMCI_SET_PARMS MCI_SET_PARMS; -alias tagMCI_SET_PARMS* PMCI_SET_PARMS; -alias tagMCI_SET_PARMS* LPMCI_SET_PARMS; - -struct tagMCI_BREAK_PARMS { - DWORD_PTR dwCallback; -// #ifdef _WIN32 - int nVirtKey; - HWND hwndBreak; -// #else -// ... -// #endif -} -alias tagMCI_BREAK_PARMS MCI_BREAK_PARMS; -alias tagMCI_BREAK_PARMS* PMCI_BREAK_PARMS; -alias tagMCI_BREAK_PARMS* LPMCI_BREAK_PARMS; - -// #ifdef _WIN32 - -struct tagMCI_SAVE_PARMSA { - DWORD_PTR dwCallback; - LPCSTR lpfilename; -} -alias tagMCI_SAVE_PARMSA MCI_SAVE_PARMSA; -alias tagMCI_SAVE_PARMSA* PMCI_SAVE_PARMSA; -alias tagMCI_SAVE_PARMSA* LPMCI_SAVE_PARMSA; - -struct tagMCI_SAVE_PARMSW { - DWORD_PTR dwCallback; - LPCWSTR lpfilename; -} -alias tagMCI_SAVE_PARMSW MCI_SAVE_PARMSW; -alias tagMCI_SAVE_PARMSW* PMCI_SAVE_PARMSW; -alias tagMCI_SAVE_PARMSW* LPMCI_SAVE_PARMSW; - -// #ifdef UNICODE -// ... -// #else -alias MCI_SAVE_PARMSA MCI_SAVE_PARMS; -alias PMCI_SAVE_PARMSA PMCI_SAVE_PARMS; -alias LPMCI_SAVE_PARMSA LPMCI_SAVE_PARMS; -// #endif // UNICODE - -// #else -// ... -// #endif - -// #ifdef _WIN32 - -struct tagMCI_LOAD_PARMSA { - DWORD_PTR dwCallback; - LPCSTR lpfilename; -} -alias tagMCI_LOAD_PARMSA MCI_LOAD_PARMSA; -alias tagMCI_LOAD_PARMSA* PMCI_LOAD_PARMSA; -alias tagMCI_LOAD_PARMSA* LPMCI_LOAD_PARMSA; - -struct tagMCI_LOAD_PARMSW { - DWORD_PTR dwCallback; - LPCWSTR lpfilename; -} -alias tagMCI_LOAD_PARMSW MCI_LOAD_PARMSW; -alias tagMCI_LOAD_PARMSW* PMCI_LOAD_PARMSW; -alias tagMCI_LOAD_PARMSW* LPMCI_LOAD_PARMSW; - -// #ifdef UNICODE -// ... -// #else -alias MCI_LOAD_PARMSA MCI_LOAD_PARMS; -alias PMCI_LOAD_PARMSA PMCI_LOAD_PARMS; -alias LPMCI_LOAD_PARMSA LPMCI_LOAD_PARMS; -// #endif // UNICODE - -// #else -// ... -// #endif - -struct tagMCI_RECORD_PARMS { - DWORD_PTR dwCallback; - DWORD dwFrom; - DWORD dwTo; -} -alias tagMCI_RECORD_PARMS MCI_RECORD_PARMS; -alias tagMCI_RECORD_PARMS* LPMCI_RECORD_PARMS; - -enum : uint { MCI_VD_MODE_PARK = MCI_VD_OFFSET + 1 } - -enum : uint { MCI_VD_MEDIA_CLV = MCI_VD_OFFSET + 2 } -enum : uint { MCI_VD_MEDIA_CAV = MCI_VD_OFFSET + 3 } -enum : uint { MCI_VD_MEDIA_OTHER = MCI_VD_OFFSET + 4 } - -enum : uint { MCI_VD_FORMAT_TRACK = 0x4001 } - -enum : uint { MCI_VD_PLAY_REVERSE = 0x00010000 } -enum : uint { MCI_VD_PLAY_FAST = 0x00020000 } -enum : uint { MCI_VD_PLAY_SPEED = 0x00040000 } -enum : uint { MCI_VD_PLAY_SCAN = 0x00080000 } -enum : uint { MCI_VD_PLAY_SLOW = 0x00100000 } - -enum : uint { MCI_VD_SEEK_REVERSE = 0x00010000 } - -enum : uint { MCI_VD_STATUS_SPEED = 0x00004002 } -enum : uint { MCI_VD_STATUS_FORWARD = 0x00004003 } -enum : uint { MCI_VD_STATUS_MEDIA_TYPE = 0x00004004 } -enum : uint { MCI_VD_STATUS_SIDE = 0x00004005 } -enum : uint { MCI_VD_STATUS_DISC_SIZE = 0x00004006 } - -enum : uint { MCI_VD_GETDEVCAPS_CLV = 0x00010000 } -enum : uint { MCI_VD_GETDEVCAPS_CAV = 0x00020000 } - -enum : uint { MCI_VD_SPIN_UP = 0x00010000 } -enum : uint { MCI_VD_SPIN_DOWN = 0x00020000 } - -enum : uint { MCI_VD_GETDEVCAPS_CAN_REVERSE = 0x00004002 } -enum : uint { MCI_VD_GETDEVCAPS_FAST_RATE = 0x00004003 } -enum : uint { MCI_VD_GETDEVCAPS_SLOW_RATE = 0x00004004 } -enum : uint { MCI_VD_GETDEVCAPS_NORMAL_RATE = 0x00004005 } - -enum : uint { MCI_VD_STEP_FRAMES = 0x00010000 } -enum : uint { MCI_VD_STEP_REVERSE = 0x00020000 } - -enum : uint { MCI_VD_ESCAPE_STRING = 0x00000100 } - -struct tagMCI_VD_PLAY_PARMS { - DWORD_PTR dwCallback; - DWORD dwFrom; - DWORD dwTo; - DWORD dwSpeed; -} -alias tagMCI_VD_PLAY_PARMS MCI_VD_PLAY_PARMS; -alias tagMCI_VD_PLAY_PARMS* PMCI_VD_PLAY_PARMS; -alias tagMCI_VD_PLAY_PARMS* LPMCI_VD_PLAY_PARMS; - -struct tagMCI_VD_STEP_PARMS { - DWORD_PTR dwCallback; - DWORD dwFrames; -} -alias tagMCI_VD_STEP_PARMS MCI_VD_STEP_PARMS; -alias tagMCI_VD_STEP_PARMS* PMCI_VD_STEP_PARMS; -alias tagMCI_VD_STEP_PARMS* LPMCI_VD_STEP_PARMS; - -// #ifdef _WIN32 - -struct tagMCI_VD_ESCAPE_PARMSA { - DWORD_PTR dwCallback; - LPCSTR lpstrCommand; -} -alias tagMCI_VD_ESCAPE_PARMSA MCI_VD_ESCAPE_PARMSA; -alias tagMCI_VD_ESCAPE_PARMSA* PMCI_VD_ESCAPE_PARMSA; -alias tagMCI_VD_ESCAPE_PARMSA* LPMCI_VD_ESCAPE_PARMSA; - -struct tagMCI_VD_ESCAPE_PARMSW { - DWORD_PTR dwCallback; - LPCWSTR lpstrCommand; -} -alias tagMCI_VD_ESCAPE_PARMSW MCI_VD_ESCAPE_PARMSW; -alias tagMCI_VD_ESCAPE_PARMSW* PMCI_VD_ESCAPE_PARMSW; -alias tagMCI_VD_ESCAPE_PARMSW* LPMCI_VD_ESCAPE_PARMSW; - -// #ifdef UNICODE -// ... -// #else -alias MCI_VD_ESCAPE_PARMSA MCI_VD_ESCAPE_PARMS; -alias PMCI_VD_ESCAPE_PARMSA PMCI_VD_ESCAPE_PARMS; -alias LPMCI_VD_ESCAPE_PARMSA LPMCI_VD_ESCAPE_PARMS; -// #endif // UNICODE - -// #else -// ... -// #endif - -enum : uint { MCI_CDA_STATUS_TYPE_TRACK = 0x00004001 } - -enum : uint { MCI_CDA_TRACK_AUDIO = MCI_CD_OFFSET + 0 } -enum : uint { MCI_CDA_TRACK_OTHER = MCI_CD_OFFSET + 1 } - -enum : uint { MCI_WAVE_PCM = MCI_WAVE_OFFSET + 0 } -enum : uint { MCI_WAVE_MAPPER = MCI_WAVE_OFFSET + 1 } - -enum : uint { MCI_WAVE_OPEN_BUFFER = 0x00010000 } - -enum : uint { MCI_WAVE_SET_FORMATTAG = 0x00010000 } -enum : uint { MCI_WAVE_SET_CHANNELS = 0x00020000 } -enum : uint { MCI_WAVE_SET_SAMPLESPERSEC = 0x00040000 } -enum : uint { MCI_WAVE_SET_AVGBYTESPERSEC = 0x00080000 } -enum : uint { MCI_WAVE_SET_BLOCKALIGN = 0x00100000 } -enum : uint { MCI_WAVE_SET_BITSPERSAMPLE = 0x00200000 } - -enum : uint { MCI_WAVE_INPUT = 0x00400000 } -enum : uint { MCI_WAVE_OUTPUT = 0x00800000 } - -enum : uint { MCI_WAVE_STATUS_FORMATTAG = 0x00004001 } -enum : uint { MCI_WAVE_STATUS_CHANNELS = 0x00004002 } -enum : uint { MCI_WAVE_STATUS_SAMPLESPERSEC = 0x00004003 } -enum : uint { MCI_WAVE_STATUS_AVGBYTESPERSEC = 0x00004004 } -enum : uint { MCI_WAVE_STATUS_BLOCKALIGN = 0x00004005 } -enum : uint { MCI_WAVE_STATUS_BITSPERSAMPLE = 0x00004006 } -enum : uint { MCI_WAVE_STATUS_LEVEL = 0x00004007 } - -enum : uint { MCI_WAVE_SET_ANYINPUT = 0x04000000 } -enum : uint { MCI_WAVE_SET_ANYOUTPUT = 0x08000000 } - -enum : uint { MCI_WAVE_GETDEVCAPS_INPUTS = 0x00004001 } -enum : uint { MCI_WAVE_GETDEVCAPS_OUTPUTS = 0x00004002 } - -// #ifdef _WIN32 - -struct tagMCI_WAVE_OPEN_PARMSA { - DWORD_PTR dwCallback; - MCIDEVICEID wDeviceID; - LPCSTR lpstrDeviceType; - LPCSTR lpstrElementName; - LPCSTR lpstrAlias; - DWORD dwBufferSeconds; -} -alias tagMCI_WAVE_OPEN_PARMSA MCI_WAVE_OPEN_PARMSA; -alias tagMCI_WAVE_OPEN_PARMSA* PMCI_WAVE_OPEN_PARMSA; -alias tagMCI_WAVE_OPEN_PARMSA* LPMCI_WAVE_OPEN_PARMSA; - -struct tagMCI_WAVE_OPEN_PARMSW { - DWORD_PTR dwCallback; - MCIDEVICEID wDeviceID; - LPCWSTR lpstrDeviceType; - LPCWSTR lpstrElementName; - LPCWSTR lpstrAlias; - DWORD dwBufferSeconds; -} -alias tagMCI_WAVE_OPEN_PARMSW MCI_WAVE_OPEN_PARMSW; -alias tagMCI_WAVE_OPEN_PARMSW* PMCI_WAVE_OPEN_PARMSW; -alias tagMCI_WAVE_OPEN_PARMSW* LPMCI_WAVE_OPEN_PARMSW; - -// #ifdef UNICODE -// ... -// #else -alias MCI_WAVE_OPEN_PARMSA MCI_WAVE_OPEN_PARMS; -alias PMCI_WAVE_OPEN_PARMSA PMCI_WAVE_OPEN_PARMS; -alias LPMCI_WAVE_OPEN_PARMSA LPMCI_WAVE_OPEN_PARMS; -// #endif // UNICODE - -// #else -// ... -// #endif - -struct tagMCI_WAVE_DELETE_PARMS { - DWORD_PTR dwCallback; - DWORD dwFrom; - DWORD dwTo; -} -alias tagMCI_WAVE_DELETE_PARMS MCI_WAVE_DELETE_PARMS; -alias tagMCI_WAVE_DELETE_PARMS* PMCI_WAVE_DELETE_PARMS; -alias tagMCI_WAVE_DELETE_PARMS* LPMCI_WAVE_DELETE_PARMS; - -struct tagMCI_WAVE_SET_PARMS { - DWORD_PTR dwCallback; - DWORD dwTimeFormat; - DWORD dwAudio; -// #ifdef _WIN32 - UINT wInput; - UINT wOutput; -// #else -// ... -// #endif - WORD wFormatTag; - WORD wReserved2; - WORD nChannels; - WORD wReserved3; - DWORD nSamplesPerSec; - DWORD nAvgBytesPerSec; - WORD nBlockAlign; - WORD wReserved4; - WORD wBitsPerSample; - WORD wReserved5; -} -alias tagMCI_WAVE_SET_PARMS MCI_WAVE_SET_PARMS; -alias tagMCI_WAVE_SET_PARMS* PMCI_WAVE_SET_PARMS; -alias tagMCI_WAVE_SET_PARMS* LPMCI_WAVE_SET_PARMS; - -enum : uint { MCI_SEQ_DIV_PPQN = 0 + MCI_SEQ_OFFSET } -enum : uint { MCI_SEQ_DIV_SMPTE_24 = 1 + MCI_SEQ_OFFSET } -enum : uint { MCI_SEQ_DIV_SMPTE_25 = 2 + MCI_SEQ_OFFSET } -enum : uint { MCI_SEQ_DIV_SMPTE_30DROP = 3 + MCI_SEQ_OFFSET } -enum : uint { MCI_SEQ_DIV_SMPTE_30 = 4 + MCI_SEQ_OFFSET } - -enum : uint { MCI_SEQ_FORMAT_SONGPTR = 0x4001 } -enum : uint { MCI_SEQ_FILE = 0x4002 } -enum : uint { MCI_SEQ_MIDI = 0x4003 } -enum : uint { MCI_SEQ_SMPTE = 0x4004 } -enum : uint { MCI_SEQ_NONE = 65533 } -enum : uint { MCI_SEQ_MAPPER = 65535 } - -enum : uint { MCI_SEQ_STATUS_TEMPO = 0x00004002 } -enum : uint { MCI_SEQ_STATUS_PORT = 0x00004003 } -enum : uint { MCI_SEQ_STATUS_SLAVE = 0x00004007 } -enum : uint { MCI_SEQ_STATUS_MASTER = 0x00004008 } -enum : uint { MCI_SEQ_STATUS_OFFSET = 0x00004009 } -enum : uint { MCI_SEQ_STATUS_DIVTYPE = 0x0000400A } -enum : uint { MCI_SEQ_STATUS_NAME = 0x0000400B } -enum : uint { MCI_SEQ_STATUS_COPYRIGHT = 0x0000400C } - -enum : uint { MCI_SEQ_SET_TEMPO = 0x00010000 } -enum : uint { MCI_SEQ_SET_PORT = 0x00020000 } -enum : uint { MCI_SEQ_SET_SLAVE = 0x00040000 } -enum : uint { MCI_SEQ_SET_MASTER = 0x00080000 } -enum : uint { MCI_SEQ_SET_OFFSET = 0x01000000 } - -struct tagMCI_SEQ_SET_PARMS { - DWORD_PTR dwCallback; - DWORD dwTimeFormat; - DWORD dwAudio; - DWORD dwTempo; - DWORD dwPort; - DWORD dwSlave; - DWORD dwMaster; - DWORD dwOffset; -} -alias tagMCI_SEQ_SET_PARMS MCI_SEQ_SET_PARMS; -alias tagMCI_SEQ_SET_PARMS* PMCI_SEQ_SET_PARMS; -alias tagMCI_SEQ_SET_PARMS* LPMCI_SEQ_SET_PARMS; - -enum : uint { MCI_ANIM_OPEN_WS = 0x00010000 } -enum : uint { MCI_ANIM_OPEN_PARENT = 0x00020000 } -enum : uint { MCI_ANIM_OPEN_NOSTATIC = 0x00040000 } - -enum : uint { MCI_ANIM_PLAY_SPEED = 0x00010000 } -enum : uint { MCI_ANIM_PLAY_REVERSE = 0x00020000 } -enum : uint { MCI_ANIM_PLAY_FAST = 0x00040000 } -enum : uint { MCI_ANIM_PLAY_SLOW = 0x00080000 } -enum : uint { MCI_ANIM_PLAY_SCAN = 0x00100000 } - -enum : uint { MCI_ANIM_STEP_REVERSE = 0x00010000 } -enum : uint { MCI_ANIM_STEP_FRAMES = 0x00020000 } - -enum : uint { MCI_ANIM_STATUS_SPEED = 0x00004001 } -enum : uint { MCI_ANIM_STATUS_FORWARD = 0x00004002 } -enum : uint { MCI_ANIM_STATUS_HWND = 0x00004003 } -enum : uint { MCI_ANIM_STATUS_HPAL = 0x00004004 } -enum : uint { MCI_ANIM_STATUS_STRETCH = 0x00004005 } - -enum : uint { MCI_ANIM_INFO_TEXT = 0x00010000 } - -enum : uint { MCI_ANIM_GETDEVCAPS_CAN_REVERSE = 0x00004001 } -enum : uint { MCI_ANIM_GETDEVCAPS_FAST_RATE = 0x00004002 } -enum : uint { MCI_ANIM_GETDEVCAPS_SLOW_RATE = 0x00004003 } -enum : uint { MCI_ANIM_GETDEVCAPS_NORMAL_RATE = 0x00004004 } -enum : uint { MCI_ANIM_GETDEVCAPS_PALETTES = 0x00004006 } -enum : uint { MCI_ANIM_GETDEVCAPS_CAN_STRETCH = 0x00004007 } -enum : uint { MCI_ANIM_GETDEVCAPS_MAX_WINDOWS = 0x00004008 } - -enum : uint { MCI_ANIM_REALIZE_NORM = 0x00010000 } -enum : uint { MCI_ANIM_REALIZE_BKGD = 0x00020000 } - -enum : uint { MCI_ANIM_WINDOW_HWND = 0x00010000 } -enum : uint { MCI_ANIM_WINDOW_STATE = 0x00040000 } -enum : uint { MCI_ANIM_WINDOW_TEXT = 0x00080000 } -enum : uint { MCI_ANIM_WINDOW_ENABLE_STRETCH = 0x00100000 } -enum : uint { MCI_ANIM_WINDOW_DISABLE_STRETCH = 0x00200000 } - -enum : uint { MCI_ANIM_WINDOW_DEFAULT = 0x00000000 } - -enum : uint { MCI_ANIM_RECT = 0x00010000 } -enum : uint { MCI_ANIM_PUT_SOURCE = 0x00020000 } -enum : uint { MCI_ANIM_PUT_DESTINATION = 0x00040000 } - -enum : uint { MCI_ANIM_WHERE_SOURCE = 0x00020000 } -enum : uint { MCI_ANIM_WHERE_DESTINATION = 0x00040000 } - -enum : uint { MCI_ANIM_UPDATE_HDC = 0x00020000 } - -// #ifdef _WIN32 - -struct tagMCI_ANIM_OPEN_PARMSA { - DWORD_PTR dwCallback; - MCIDEVICEID wDeviceID; - LPCSTR lpstrDeviceType; - LPCSTR lpstrElementName; - LPCSTR lpstrAlias; - DWORD dwStyle; - HWND hWndParent; -} -alias tagMCI_ANIM_OPEN_PARMSA MCI_ANIM_OPEN_PARMSA; -alias tagMCI_ANIM_OPEN_PARMSA* PMCI_ANIM_OPEN_PARMSA; -alias tagMCI_ANIM_OPEN_PARMSA* LPMCI_ANIM_OPEN_PARMSA; - -struct tagMCI_ANIM_OPEN_PARMSW { - DWORD_PTR dwCallback; - MCIDEVICEID wDeviceID; - LPCWSTR lpstrDeviceType; - LPCWSTR lpstrElementName; - LPCWSTR lpstrAlias; - DWORD dwStyle; - HWND hWndParent; -} -alias tagMCI_ANIM_OPEN_PARMSW MCI_ANIM_OPEN_PARMSW; -alias tagMCI_ANIM_OPEN_PARMSW* PMCI_ANIM_OPEN_PARMSW; -alias tagMCI_ANIM_OPEN_PARMSW* LPMCI_ANIM_OPEN_PARMSW; - -// #ifdef UNICODE -// ... -// #else -alias MCI_ANIM_OPEN_PARMSA MCI_ANIM_OPEN_PARMS; -alias PMCI_ANIM_OPEN_PARMSA PMCI_ANIM_OPEN_PARMS; -alias LPMCI_ANIM_OPEN_PARMSA LPMCI_ANIM_OPEN_PARMS; -// #endif // UNICODE - -// #else -// ... -// #endif - -struct tagMCI_ANIM_PLAY_PARMS { - DWORD_PTR dwCallback; - DWORD dwFrom; - DWORD dwTo; - DWORD dwSpeed; -} -alias tagMCI_ANIM_PLAY_PARMS MCI_ANIM_PLAY_PARMS; -alias tagMCI_ANIM_PLAY_PARMS* PMCI_ANIM_PLAY_PARMS; -alias tagMCI_ANIM_PLAY_PARMS* LPMCI_ANIM_PLAY_PARMS; - -struct tagMCI_ANIM_STEP_PARMS { - DWORD_PTR dwCallback; - DWORD dwFrames; -} -alias tagMCI_ANIM_STEP_PARMS MCI_ANIM_STEP_PARMS; -alias tagMCI_ANIM_STEP_PARMS* PMCI_ANIM_STEP_PARMS; -alias tagMCI_ANIM_STEP_PARMS* LPMCI_ANIM_STEP_PARMS; - -// #ifdef _WIN32 - -struct tagMCI_ANIM_WINDOW_PARMSA { - DWORD_PTR dwCallback; - HWND hWnd; - UINT nCmdShow; - LPCSTR lpstrText; -} -alias tagMCI_ANIM_WINDOW_PARMSA MCI_ANIM_WINDOW_PARMSA; -alias tagMCI_ANIM_WINDOW_PARMSA* PMCI_ANIM_WINDOW_PARMSA; -alias tagMCI_ANIM_WINDOW_PARMSA* LPMCI_ANIM_WINDOW_PARMSA; - -struct tagMCI_ANIM_WINDOW_PARMSW { - DWORD_PTR dwCallback; - HWND hWnd; - UINT nCmdShow; - LPCWSTR lpstrText; -} -alias tagMCI_ANIM_WINDOW_PARMSW MCI_ANIM_WINDOW_PARMSW; -alias tagMCI_ANIM_WINDOW_PARMSW* PMCI_ANIM_WINDOW_PARMSW; -alias tagMCI_ANIM_WINDOW_PARMSW* LPMCI_ANIM_WINDOW_PARMSW; - -// #ifdef UNICODE -// ... -// #else -alias MCI_ANIM_WINDOW_PARMSA MCI_ANIM_WINDOW_PARMS; -alias PMCI_ANIM_WINDOW_PARMSA PMCI_ANIM_WINDOW_PARMS; -alias LPMCI_ANIM_WINDOW_PARMSA LPMCI_ANIM_WINDOW_PARMS; -// #endif // UNICODE - -// #else -// ... -// #endif - -struct tagMCI_ANIM_RECT_PARMS { - DWORD_PTR dwCallback; -// #ifdef MCI_USE_OFFEXT -// ... -// #else /* ifdef MCI_USE_OFFEXT */ - RECT rc; -// #endif /* ifdef MCI_USE_OFFEXT */ -} -alias tagMCI_ANIM_RECT_PARMS MCI_ANIM_RECT_PARMS; - -alias MCI_ANIM_RECT_PARMS* PMCI_ANIM_RECT_PARMS; -alias MCI_ANIM_RECT_PARMS* LPMCI_ANIM_RECT_PARMS; - -struct tagMCI_ANIM_UPDATE_PARMS { - DWORD_PTR dwCallback; - RECT rc; - HDC hDC; -} -alias tagMCI_ANIM_UPDATE_PARMS MCI_ANIM_UPDATE_PARMS; -alias tagMCI_ANIM_UPDATE_PARMS* PMCI_ANIM_UPDATE_PARMS; -alias tagMCI_ANIM_UPDATE_PARMS* LPMCI_ANIM_UPDATE_PARMS; - -enum : uint { MCI_OVLY_OPEN_WS = 0x00010000 } -enum : uint { MCI_OVLY_OPEN_PARENT = 0x00020000 } - -enum : uint { MCI_OVLY_STATUS_HWND = 0x00004001 } -enum : uint { MCI_OVLY_STATUS_STRETCH = 0x00004002 } - -enum : uint { MCI_OVLY_INFO_TEXT = 0x00010000 } - -enum : uint { MCI_OVLY_GETDEVCAPS_CAN_STRETCH = 0x00004001 } -enum : uint { MCI_OVLY_GETDEVCAPS_CAN_FREEZE = 0x00004002 } -enum : uint { MCI_OVLY_GETDEVCAPS_MAX_WINDOWS = 0x00004003 } - -enum : uint { MCI_OVLY_WINDOW_HWND = 0x00010000 } -enum : uint { MCI_OVLY_WINDOW_STATE = 0x00040000 } -enum : uint { MCI_OVLY_WINDOW_TEXT = 0x00080000 } -enum : uint { MCI_OVLY_WINDOW_ENABLE_STRETCH = 0x00100000 } -enum : uint { MCI_OVLY_WINDOW_DISABLE_STRETCH = 0x00200000 } - -enum : uint { MCI_OVLY_WINDOW_DEFAULT = 0x00000000 } - -enum : uint { MCI_OVLY_RECT = 0x00010000 } -enum : uint { MCI_OVLY_PUT_SOURCE = 0x00020000 } -enum : uint { MCI_OVLY_PUT_DESTINATION = 0x00040000 } -enum : uint { MCI_OVLY_PUT_FRAME = 0x00080000 } -enum : uint { MCI_OVLY_PUT_VIDEO = 0x00100000 } - -enum : uint { MCI_OVLY_WHERE_SOURCE = 0x00020000 } -enum : uint { MCI_OVLY_WHERE_DESTINATION = 0x00040000 } -enum : uint { MCI_OVLY_WHERE_FRAME = 0x00080000 } -enum : uint { MCI_OVLY_WHERE_VIDEO = 0x00100000 } - -// #ifdef _WIN32 - -struct tagMCI_OVLY_OPEN_PARMSA { - DWORD_PTR dwCallback; - MCIDEVICEID wDeviceID; - LPCSTR lpstrDeviceType; - LPCSTR lpstrElementName; - LPCSTR lpstrAlias; - DWORD dwStyle; - HWND hWndParent; -} -alias tagMCI_OVLY_OPEN_PARMSA MCI_OVLY_OPEN_PARMSA; -alias tagMCI_OVLY_OPEN_PARMSA* PMCI_OVLY_OPEN_PARMSA; -alias tagMCI_OVLY_OPEN_PARMSA* LPMCI_OVLY_OPEN_PARMSA; - -struct tagMCI_OVLY_OPEN_PARMSW { - DWORD_PTR dwCallback; - MCIDEVICEID wDeviceID; - LPCWSTR lpstrDeviceType; - LPCWSTR lpstrElementName; - LPCWSTR lpstrAlias; - DWORD dwStyle; - HWND hWndParent; -} -alias tagMCI_OVLY_OPEN_PARMSW MCI_OVLY_OPEN_PARMSW; -alias tagMCI_OVLY_OPEN_PARMSW* PMCI_OVLY_OPEN_PARMSW; -alias tagMCI_OVLY_OPEN_PARMSW* LPMCI_OVLY_OPEN_PARMSW; - -// #ifdef UNICODE -// ... -// #else -alias MCI_OVLY_OPEN_PARMSA MCI_OVLY_OPEN_PARMS; -alias PMCI_OVLY_OPEN_PARMSA PMCI_OVLY_OPEN_PARMS; -alias LPMCI_OVLY_OPEN_PARMSA LPMCI_OVLY_OPEN_PARMS; -// #endif // UNICODE - -// #else -// ... -// #endif - -// #ifdef _WIN32 - -struct tagMCI_OVLY_WINDOW_PARMSA { - DWORD_PTR dwCallback; - HWND hWnd; - UINT nCmdShow; - LPCSTR lpstrText; -} -alias tagMCI_OVLY_WINDOW_PARMSA MCI_OVLY_WINDOW_PARMSA; -alias tagMCI_OVLY_WINDOW_PARMSA* PMCI_OVLY_WINDOW_PARMSA; -alias tagMCI_OVLY_WINDOW_PARMSA* LPMCI_OVLY_WINDOW_PARMSA; - -struct tagMCI_OVLY_WINDOW_PARMSW { - DWORD_PTR dwCallback; - HWND hWnd; - UINT nCmdShow; - LPCWSTR lpstrText; -} -alias tagMCI_OVLY_WINDOW_PARMSW MCI_OVLY_WINDOW_PARMSW; -alias tagMCI_OVLY_WINDOW_PARMSW* PMCI_OVLY_WINDOW_PARMSW; -alias tagMCI_OVLY_WINDOW_PARMSW* LPMCI_OVLY_WINDOW_PARMSW; - -// #ifdef UNICODE -// ... -// #else -alias MCI_OVLY_WINDOW_PARMSA MCI_OVLY_WINDOW_PARMS; -alias PMCI_OVLY_WINDOW_PARMSA PMCI_OVLY_WINDOW_PARMS; -alias LPMCI_OVLY_WINDOW_PARMSA LPMCI_OVLY_WINDOW_PARMS; -// #endif // UNICODE -// #else -// ... -// #endif - -struct tagMCI_OVLY_RECT_PARMS { - DWORD_PTR dwCallback; -// #ifdef MCI_USE_OFFEXT -// ... -// #else /* ifdef MCI_USE_OFFEXT */ - RECT rc; -// #endif /* ifdef MCI_USE_OFFEXT */ -} -alias tagMCI_OVLY_RECT_PARMS MCI_OVLY_RECT_PARMS; -alias tagMCI_OVLY_RECT_PARMS* PMCI_OVLY_RECT_PARMS; -alias tagMCI_OVLY_RECT_PARMS* LPMCI_OVLY_RECT_PARMS; - -// #ifdef _WIN32 - -struct tagMCI_OVLY_SAVE_PARMSA { - DWORD_PTR dwCallback; - LPCSTR lpfilename; - RECT rc; -} -alias tagMCI_OVLY_SAVE_PARMSA MCI_OVLY_SAVE_PARMSA; -alias tagMCI_OVLY_SAVE_PARMSA* PMCI_OVLY_SAVE_PARMSA; -alias tagMCI_OVLY_SAVE_PARMSA* LPMCI_OVLY_SAVE_PARMSA; - -struct tagMCI_OVLY_SAVE_PARMSW { - DWORD_PTR dwCallback; - LPCWSTR lpfilename; - RECT rc; -} -alias tagMCI_OVLY_SAVE_PARMSW MCI_OVLY_SAVE_PARMSW; -alias tagMCI_OVLY_SAVE_PARMSW* PMCI_OVLY_SAVE_PARMSW; -alias tagMCI_OVLY_SAVE_PARMSW* LPMCI_OVLY_SAVE_PARMSW; - -// #ifdef UNICODE -// ... -// #else -alias MCI_OVLY_SAVE_PARMSA MCI_OVLY_SAVE_PARMS; -alias PMCI_OVLY_SAVE_PARMSA PMCI_OVLY_SAVE_PARMS; -alias LPMCI_OVLY_SAVE_PARMSA LPMCI_OVLY_SAVE_PARMS; -// #endif // UNICODE -// #else -// ... -// #endif - -// #ifdef _WIN32 - -struct tagMCI_OVLY_LOAD_PARMSA { - DWORD_PTR dwCallback; - LPCSTR lpfilename; - RECT rc; -} -alias tagMCI_OVLY_LOAD_PARMSA MCI_OVLY_LOAD_PARMSA; -alias tagMCI_OVLY_LOAD_PARMSA* PMCI_OVLY_LOAD_PARMSA; -alias tagMCI_OVLY_LOAD_PARMSA* LPMCI_OVLY_LOAD_PARMSA; - -struct tagMCI_OVLY_LOAD_PARMSW { - DWORD_PTR dwCallback; - LPCWSTR lpfilename; - RECT rc; -} -alias tagMCI_OVLY_LOAD_PARMSW MCI_OVLY_LOAD_PARMSW; -alias tagMCI_OVLY_LOAD_PARMSW* PMCI_OVLY_LOAD_PARMSW; -alias tagMCI_OVLY_LOAD_PARMSW* LPMCI_OVLY_LOAD_PARMSW; - -// #ifdef UNICODE -// ... -// #else -alias MCI_OVLY_LOAD_PARMSA MCI_OVLY_LOAD_PARMS; -alias PMCI_OVLY_LOAD_PARMSA PMCI_OVLY_LOAD_PARMS; -alias LPMCI_OVLY_LOAD_PARMSA LPMCI_OVLY_LOAD_PARMS; -// #endif // UNICODE -// #else -// ... -// #endif - -// #endif /* ifndef MMNOMCI */ - -// #ifndef NEWTRANSPARENT -enum : uint { NEWTRANSPARENT = 3 } - -enum : uint { QUERYROPSUPPORT = 40 } -// #endif /* ifndef NEWTRANSPARENT */ - -enum : uint { SELECTDIB = 41 } -// #define DIBINDEX(n) MAKELONG((n),0x10FF) - -// #ifndef SC_SCREENSAVE - -enum : uint { SC_SCREENSAVE = 0xF140 } - -// #endif /* ifndef SC_SCREENSAVE */ - -// #ifdef __cplusplus -// } -// #endif /* __cplusplus */ - -// #ifdef _WIN32 -align: -// #else -// #ifndef RC_INVOKED -// #... -// #endif -// #endif - -// #endif /* _INC_MMSYSTEM */ - DELETED src/win32/ansi/shellapi.d Index: src/win32/ansi/shellapi.d ================================================================== --- src/win32/ansi/shellapi.d +++ src/win32/ansi/shellapi.d @@ -1,782 +0,0 @@ -module win32.ansi.shellapi; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.winuser; - -// #ifndef _INC_SHELLAPI -// #define _INC_SHELLAPI - -// #ifndef WINSHELLAPI -// #if !defined(_SHELL32_) -// #define WINSHELLAPI DECLSPEC_IMPORT -// #else -// #... -// #endif -// #endif // WINSHELLAPI - -// #ifndef SHSTDAPI -// #if !defined(_SHELL32_) -// #define SHSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE -// #define SHSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE -// #else -// #... -// #... -// #endif -// #endif // SHSTDAPI - -// #ifndef SHDOCAPI -// #if !defined(_SHDOCVW_) -// #define SHDOCAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE -// #define SHDOCAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE -// #else -// #... -// #... -// #endif -// #endif // SHDOCAPI - -// #if !defined(_WIN64) -align(1): -// #endif - -// #ifdef __cplusplus -// extern "C" { /* Assume C declarations for C++ */ -// #endif /* __cplusplus */ - -alias void* HDROP; - -extern(Windows) export UINT DragQueryFileA(HDROP,UINT,LPSTR,UINT); -extern(Windows) export UINT DragQueryFileW(HDROP,UINT,LPWSTR,UINT); -// #ifdef UNICODE -// #... -// #else -alias DragQueryFileA DragQueryFile; -// #endif // !UNICODE -extern(Windows) export BOOL DragQueryPoint(HDROP,LPPOINT); -extern(Windows) export void DragFinish(HDROP); -extern(Windows) export void DragAcceptFiles(HWND,BOOL); - -extern(Windows) export HINSTANCE ShellExecuteA(HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd); -extern(Windows) export HINSTANCE ShellExecuteW(HWND hwnd, LPCWSTR lpOperation, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd); -// #ifdef UNICODE -// #... -// #else -alias ShellExecuteA ShellExecute; -// #endif // !UNICODE -extern(Windows) export HINSTANCE FindExecutableA(LPCSTR lpFile, LPCSTR lpDirectory, LPSTR lpResult); -extern(Windows) export HINSTANCE FindExecutableW(LPCWSTR lpFile, LPCWSTR lpDirectory, LPWSTR lpResult); -// #ifdef UNICODE -// #... -// #else -alias FindExecutableA FindExecutable; -// #endif // !UNICODE -extern(Windows) export LPWSTR * CommandLineToArgvW(LPCWSTR lpCmdLine, int*pNumArgs); - -extern(Windows) export INT ShellAboutA(HWND hWnd, LPCSTR szApp, LPCSTR szOtherStuff, HICON hIcon); -extern(Windows) export INT ShellAboutW(HWND hWnd, LPCWSTR szApp, LPCWSTR szOtherStuff, HICON hIcon); -// #ifdef UNICODE -// #... -// #else -alias ShellAboutA ShellAbout; -// #endif // !UNICODE -extern(Windows) export HICON DuplicateIcon(HINSTANCE hInst, HICON hIcon); -extern(Windows) export HICON ExtractAssociatedIconA(HINSTANCE hInst, LPSTR lpIconPath, LPWORD lpiIcon); -extern(Windows) export HICON ExtractAssociatedIconW(HINSTANCE hInst, LPWSTR lpIconPath, LPWORD lpiIcon); -// #ifdef UNICODE -// #... -// #else -alias ExtractAssociatedIconA ExtractAssociatedIcon; -// #endif // !UNICODE -extern(Windows) export HICON ExtractIconA(HINSTANCE hInst, LPCSTR lpszExeFileName, UINT nIconIndex); -extern(Windows) export HICON ExtractIconW(HINSTANCE hInst, LPCWSTR lpszExeFileName, UINT nIconIndex); -// #ifdef UNICODE -// #... -// #else -alias ExtractIconA ExtractIcon; -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -struct _DRAGINFOA { - UINT uSize; - POINT pt; - BOOL fNC; - LPSTR lpFileList; - DWORD grfKeyState; -} -alias _DRAGINFOA DRAGINFOA; -alias _DRAGINFOA* LPDRAGINFOA; - -struct _DRAGINFOW { - UINT uSize; - POINT pt; - BOOL fNC; - LPWSTR lpFileList; - DWORD grfKeyState; -} -alias _DRAGINFOW DRAGINFOW; -alias _DRAGINFOW* LPDRAGINFOW; - -// #ifdef UNICODE -// ... -// #else -alias DRAGINFOA DRAGINFO; -alias LPDRAGINFOA LPDRAGINFO; -// #endif // UNICODE - -enum : uint { ABM_NEW = 0x00000000 } -enum : uint { ABM_REMOVE = 0x00000001 } -enum : uint { ABM_QUERYPOS = 0x00000002 } -enum : uint { ABM_SETPOS = 0x00000003 } -enum : uint { ABM_GETSTATE = 0x00000004 } -enum : uint { ABM_GETTASKBARPOS = 0x00000005 } -enum : uint { ABM_ACTIVATE = 0x00000006 } -enum : uint { ABM_GETAUTOHIDEBAR = 0x00000007 } -enum : uint { ABM_SETAUTOHIDEBAR = 0x00000008 } - -enum : uint { ABM_WINDOWPOSCHANGED = 0x0000009 } -enum : uint { ABM_SETSTATE = 0x0000000a } - -enum : uint { ABN_STATECHANGE = 0x0000000 } -enum : uint { ABN_POSCHANGED = 0x0000001 } -enum : uint { ABN_FULLSCREENAPP = 0x0000002 } -enum : uint { ABN_WINDOWARRANGE = 0x0000003 } - -enum : uint { ABS_AUTOHIDE = 0x0000001 } -enum : uint { ABS_ALWAYSONTOP = 0x0000002 } - -enum : uint { ABE_LEFT = 0 } -enum : uint { ABE_TOP = 1 } -enum : uint { ABE_RIGHT = 2 } -enum : uint { ABE_BOTTOM = 3 } - -struct _AppBarData { - DWORD cbSize; - HWND hWnd; - UINT uCallbackMessage; - UINT uEdge; - RECT rc; - LPARAM lParam; -} -alias _AppBarData APPBARDATA; -alias _AppBarData* PAPPBARDATA; - -extern(Windows) export UINT_PTR SHAppBarMessage(DWORD dwMessage, PAPPBARDATA pData); - -extern(Windows) export DWORD DoEnvironmentSubstA(LPSTR szString, UINT cchString); -extern(Windows) export DWORD DoEnvironmentSubstW(LPWSTR szString, UINT cchString); -// #ifdef UNICODE -// #... -// #else -alias DoEnvironmentSubstA DoEnvironmentSubst; -// #endif // !UNICODE - -// #define EIRESID(x) (-1 * (int)(x)) -extern(Windows) export UINT ExtractIconExA(LPCSTR lpszFile, int nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIcons); -extern(Windows) export UINT ExtractIconExW(LPCWSTR lpszFile, int nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIcons); -// #ifdef UNICODE -// #... -// #else -alias ExtractIconExA ExtractIconEx; -// #endif // !UNICODE - -// #ifndef FO_MOVE //these need to be kept in sync with the ones in shlobj.h - -enum : uint { FO_MOVE = 0x0001 } -enum : uint { FO_COPY = 0x0002 } -enum : uint { FO_DELETE = 0x0003 } -enum : uint { FO_RENAME = 0x0004 } - -enum : uint { FOF_MULTIDESTFILES = 0x0001 } -enum : uint { FOF_CONFIRMMOUSE = 0x0002 } -enum : uint { FOF_SILENT = 0x0004 } -enum : uint { FOF_RENAMEONCOLLISION = 0x0008 } -enum : uint { FOF_NOCONFIRMATION = 0x0010 } -enum : uint { FOF_WANTMAPPINGHANDLE = 0x0020 } - -enum : uint { FOF_ALLOWUNDO = 0x0040 } -enum : uint { FOF_FILESONLY = 0x0080 } -enum : uint { FOF_SIMPLEPROGRESS = 0x0100 } -enum : uint { FOF_NOCONFIRMMKDIR = 0x0200 } -enum : uint { FOF_NOERRORUI = 0x0400 } -enum : uint { FOF_NOCOPYSECURITYATTRIBS = 0x0800 } -enum : uint { FOF_NORECURSION = 0x1000 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { FOF_NO_CONNECTED_ELEMENTS = 0x2000 } -enum : uint { FOF_WANTNUKEWARNING = 0x4000 } -// #endif // (_WIN32_IE >= 0x500) -// #if (_WIN32_WINNT >= 0x0501) -enum : uint { FOF_NORECURSEREPARSE = 0x8000 } -// #endif // (_WIN32_WINNT >= 0x501) - -alias WORD FILEOP_FLAGS; - -enum : uint { PO_DELETE = 0x0013 } -enum : uint { PO_RENAME = 0x0014 } -enum : uint { PO_PORTCHANGE = 0x0020 } - -enum : uint { PO_REN_PORT = 0x0034 } - -alias WORD PRINTEROP_FLAGS; - -// #endif // FO_MOVE - -struct _SHFILEOPSTRUCTA { - HWND hwnd; - UINT wFunc; - LPCSTR pFrom; - LPCSTR pTo; - FILEOP_FLAGS fFlags; - BOOL fAnyOperationsAborted; - LPVOID hNameMappings; - LPCSTR lpszProgressTitle; -} -alias _SHFILEOPSTRUCTA SHFILEOPSTRUCTA; -alias _SHFILEOPSTRUCTA* LPSHFILEOPSTRUCTA; - -struct _SHFILEOPSTRUCTW { - HWND hwnd; - UINT wFunc; - LPCWSTR pFrom; - LPCWSTR pTo; - FILEOP_FLAGS fFlags; - BOOL fAnyOperationsAborted; - LPVOID hNameMappings; - LPCWSTR lpszProgressTitle; -} -alias _SHFILEOPSTRUCTW SHFILEOPSTRUCTW; -alias _SHFILEOPSTRUCTW* LPSHFILEOPSTRUCTW; - -// #ifdef UNICODE -// ... -// #else -alias SHFILEOPSTRUCTA SHFILEOPSTRUCT; -alias LPSHFILEOPSTRUCTA LPSHFILEOPSTRUCT; -// #endif // UNICODE - -extern(Windows) export int SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp); -extern(Windows) export int SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp); -// #ifdef UNICODE -// #... -// #else -alias SHFileOperationA SHFileOperation; -// #endif // !UNICODE -extern(Windows) export void SHFreeNameMappings(HANDLE hNameMappings); - -struct _SHNAMEMAPPINGA { - LPSTR pszOldPath; - LPSTR pszNewPath; - int cchOldPath; - int cchNewPath; -} -alias _SHNAMEMAPPINGA SHNAMEMAPPINGA; -alias _SHNAMEMAPPINGA* LPSHNAMEMAPPINGA; - -struct _SHNAMEMAPPINGW { - LPWSTR pszOldPath; - LPWSTR pszNewPath; - int cchOldPath; - int cchNewPath; -} -alias _SHNAMEMAPPINGW SHNAMEMAPPINGW; -alias _SHNAMEMAPPINGW* LPSHNAMEMAPPINGW; - -// #ifdef UNICODE -// ... -// #else -alias SHNAMEMAPPINGA SHNAMEMAPPING; -alias LPSHNAMEMAPPINGA LPSHNAMEMAPPING; -// #endif // UNICODE - -enum : uint { SE_ERR_FNF = 2 } -enum : uint { SE_ERR_PNF = 3 } -enum : uint { SE_ERR_ACCESSDENIED = 5 } -enum : uint { SE_ERR_OOM = 8 } -enum : uint { SE_ERR_DLLNOTFOUND = 32 } - -// #endif /* WINVER >= 0x0400 */ - -enum : uint { SE_ERR_SHARE = 26 } -enum : uint { SE_ERR_ASSOCINCOMPLETE = 27 } -enum : uint { SE_ERR_DDETIMEOUT = 28 } -enum : uint { SE_ERR_DDEFAIL = 29 } -enum : uint { SE_ERR_DDEBUSY = 30 } -enum : uint { SE_ERR_NOASSOC = 31 } - -// #if(WINVER >= 0x0400) - -enum : uint { SEE_MASK_CLASSNAME = 0x00000001 } -enum : uint { SEE_MASK_CLASSKEY = 0x00000003 } - -enum : uint { SEE_MASK_IDLIST = 0x00000004 } -enum : uint { SEE_MASK_INVOKEIDLIST = 0x0000000c } -enum : uint { SEE_MASK_ICON = 0x00000010 } -enum : uint { SEE_MASK_HOTKEY = 0x00000020 } -enum : uint { SEE_MASK_NOCLOSEPROCESS = 0x00000040 } -enum : uint { SEE_MASK_CONNECTNETDRV = 0x00000080 } -enum : uint { SEE_MASK_FLAG_DDEWAIT = 0x00000100 } -enum : uint { SEE_MASK_DOENVSUBST = 0x00000200 } -enum : uint { SEE_MASK_FLAG_NO_UI = 0x00000400 } -enum : uint { SEE_MASK_UNICODE = 0x00004000 } -enum : uint { SEE_MASK_NO_CONSOLE = 0x00008000 } -enum : uint { SEE_MASK_ASYNCOK = 0x00100000 } -enum : uint { SEE_MASK_HMONITOR = 0x00200000 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { SEE_MASK_NOQUERYCLASSSTORE = 0x01000000 } -enum : uint { SEE_MASK_WAITFORINPUTIDLE = 0x02000000 } -// #endif // (_WIN32_IE >= 0x500) -// #if (_WIN32_IE >= 0x0560) -enum : uint { SEE_MASK_FLAG_LOG_USAGE = 0x04000000 } -// #endif // (_WIN32_IE >= 0x560) - -// #ifndef DUMMYUNIONNAME -// #ifdef NONAMELESSUNION -// #... -// #... -// #... -// #... -// #... -// #else -// #define DUMMYUNIONNAME -// #define DUMMYUNIONNAME2 -// #define DUMMYUNIONNAME3 -// #define DUMMYUNIONNAME4 -// #define DUMMYUNIONNAME5 -// #endif -// #endif // DUMMYUNIONNAME - -struct _SHELLEXECUTEINFOA { - DWORD cbSize; - ULONG fMask; - HWND hwnd; - LPCSTR lpVerb; - LPCSTR lpFile; - LPCSTR lpParameters; - LPCSTR lpDirectory; - int nShow; - HINSTANCE hInstApp; - - LPVOID lpIDList; - LPCSTR lpClass; - HKEY hkeyClass; - DWORD dwHotKey; -union { - HANDLE hIcon; - HANDLE hMonitor; -} - - HANDLE hProcess; -} -alias _SHELLEXECUTEINFOA SHELLEXECUTEINFOA; -alias _SHELLEXECUTEINFOA* LPSHELLEXECUTEINFOA; - -struct _SHELLEXECUTEINFOW { - DWORD cbSize; - ULONG fMask; - HWND hwnd; - LPCWSTR lpVerb; - LPCWSTR lpFile; - LPCWSTR lpParameters; - LPCWSTR lpDirectory; - int nShow; - HINSTANCE hInstApp; - - LPVOID lpIDList; - LPCWSTR lpClass; - HKEY hkeyClass; - DWORD dwHotKey; -union { - HANDLE hIcon; - HANDLE hMonitor; -} - - HANDLE hProcess; -} -alias _SHELLEXECUTEINFOW SHELLEXECUTEINFOW; -alias _SHELLEXECUTEINFOW* LPSHELLEXECUTEINFOW; - -// #ifdef UNICODE -// ... -// #else -alias SHELLEXECUTEINFOA SHELLEXECUTEINFO; -alias LPSHELLEXECUTEINFOA LPSHELLEXECUTEINFO; -// #endif // UNICODE - -extern(Windows) export BOOL ShellExecuteExA(LPSHELLEXECUTEINFOA lpExecInfo); -extern(Windows) export BOOL ShellExecuteExW(LPSHELLEXECUTEINFOW lpExecInfo); -// #ifdef UNICODE -// #... -// #else -alias ShellExecuteExA ShellExecuteEx; -// #endif // !UNICODE -extern(Windows) export void WinExecErrorA(HWND hwnd, int error, LPCSTR lpstrFileName, LPCSTR lpstrTitle); -extern(Windows) export void WinExecErrorW(HWND hwnd, int error, LPCWSTR lpstrFileName, LPCWSTR lpstrTitle); -// #ifdef UNICODE -// #... -// #else -alias WinExecErrorA WinExecError; -// #endif // !UNICODE - -struct _SHCREATEPROCESSINFOW { - DWORD cbSize; - ULONG fMask; - HWND hwnd; - LPCWSTR pszFile; - LPCWSTR pszParameters; - LPCWSTR pszCurrentDirectory; - HANDLE hUserToken; - LPSECURITY_ATTRIBUTES lpProcessAttributes; - LPSECURITY_ATTRIBUTES lpThreadAttributes; - BOOL bInheritHandles; - DWORD dwCreationFlags; - LPSTARTUPINFOW lpStartupInfo; - LPPROCESS_INFORMATION lpProcessInformation; -} -alias _SHCREATEPROCESSINFOW SHCREATEPROCESSINFOW; -alias _SHCREATEPROCESSINFOW* PSHCREATEPROCESSINFOW; - -extern(Windows) export BOOL SHCreateProcessAsUserW(PSHCREATEPROCESSINFOW pscpi); - -struct _SHQUERYRBINFO { - DWORD cbSize; -// #if !defined(_MAC) || defined(_MAC_INT_64) - __int64 i64Size; - __int64 i64NumItems; -// #else -// ... -// #endif -} -alias _SHQUERYRBINFO SHQUERYRBINFO; -alias _SHQUERYRBINFO* LPSHQUERYRBINFO; - -enum : uint { SHERB_NOCONFIRMATION = 0x00000001 } -enum : uint { SHERB_NOPROGRESSUI = 0x00000002 } -enum : uint { SHERB_NOSOUND = 0x00000004 } - -extern(Windows) export HRESULT SHQueryRecycleBinA(LPCSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo); -extern(Windows) export HRESULT SHQueryRecycleBinW(LPCWSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo); -// #ifdef UNICODE -// #... -// #else -alias SHQueryRecycleBinA SHQueryRecycleBin; -// #endif // !UNICODE -extern(Windows) export HRESULT SHEmptyRecycleBinA(HWND hwnd, LPCSTR pszRootPath, DWORD dwFlags); -extern(Windows) export HRESULT SHEmptyRecycleBinW(HWND hwnd, LPCWSTR pszRootPath, DWORD dwFlags); -// #ifdef UNICODE -// #... -// #else -alias SHEmptyRecycleBinA SHEmptyRecycleBin; -// #endif // !UNICODE - -struct _NOTIFYICONDATAA { - DWORD cbSize; - HWND hWnd; - UINT uID; - UINT uFlags; - UINT uCallbackMessage; - HICON hIcon; -// #if (_WIN32_IE < 0x0500) -// ... -// #else - CHAR szTip[128]; -// #endif -// #if (_WIN32_IE >= 0x0500) - DWORD dwState; - DWORD dwStateMask; - CHAR szInfo[256]; -union { - UINT uTimeout; - UINT uVersion; -} - - CHAR szInfoTitle[64]; - DWORD dwInfoFlags; -// #endif -// #if (_WIN32_IE >= 0x600) - GUID guidItem; -// #endif -} -alias _NOTIFYICONDATAA NOTIFYICONDATAA; -alias _NOTIFYICONDATAA* PNOTIFYICONDATAA; - -struct _NOTIFYICONDATAW { - DWORD cbSize; - HWND hWnd; - UINT uID; - UINT uFlags; - UINT uCallbackMessage; - HICON hIcon; -// #if (_WIN32_IE < 0x0500) -// ... -// #else - WCHAR szTip[128]; -// #endif -// #if (_WIN32_IE >= 0x0500) - DWORD dwState; - DWORD dwStateMask; - WCHAR szInfo[256]; -union { - UINT uTimeout; - UINT uVersion; -} - - WCHAR szInfoTitle[64]; - DWORD dwInfoFlags; -// #endif -// #if (_WIN32_IE >= 0x600) - GUID guidItem; -// #endif -} -alias _NOTIFYICONDATAW NOTIFYICONDATAW; -alias _NOTIFYICONDATAW* PNOTIFYICONDATAW; - -// #ifdef UNICODE -// ... -// #else -alias NOTIFYICONDATAA NOTIFYICONDATA; -alias PNOTIFYICONDATAA PNOTIFYICONDATA; -// #endif // UNICODE - -// #define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAA, szTip[64]) -// #define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64]) -// #ifdef UNICODE -// #... -// #else -// #define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAA_V1_SIZE -// #endif - -// #define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem) -// #define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem) -// #ifdef UNICODE -// #... -// #else -// #define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAA_V2_SIZE -// #endif - -// #if (_WIN32_IE >= 0x0500) -enum : uint { NIN_SELECT = WM_USER + 0 } -enum : uint { NINF_KEY = 0x1 } -enum : uint { NIN_KEYSELECT = NIN_SELECT | NINF_KEY } -// #endif - -// #if (_WIN32_IE >= 0x0501) -enum : uint { NIN_BALLOONSHOW = WM_USER + 2 } -enum : uint { NIN_BALLOONHIDE = WM_USER + 3 } -enum : uint { NIN_BALLOONTIMEOUT = WM_USER + 4 } -enum : uint { NIN_BALLOONUSERCLICK = WM_USER + 5 } -// #endif - -enum : uint { NIM_ADD = 0x00000000 } -enum : uint { NIM_MODIFY = 0x00000001 } -enum : uint { NIM_DELETE = 0x00000002 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { NIM_SETFOCUS = 0x00000003 } -enum : uint { NIM_SETVERSION = 0x00000004 } -enum : uint { NOTIFYICON_VERSION = 3 } -// #endif - -enum : uint { NIF_MESSAGE = 0x00000001 } -enum : uint { NIF_ICON = 0x00000002 } -enum : uint { NIF_TIP = 0x00000004 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { NIF_STATE = 0x00000008 } -enum : uint { NIF_INFO = 0x00000010 } -// #endif -// #if (_WIN32_IE >= 0x600) -enum : uint { NIF_GUID = 0x00000020 } -// #endif - -// #if (_WIN32_IE >= 0x0500) -enum : uint { NIS_HIDDEN = 0x00000001 } -enum : uint { NIS_SHAREDICON = 0x00000002 } - -enum : uint { NIIF_NONE = 0x00000000 } - -enum : uint { NIIF_INFO = 0x00000001 } -enum : uint { NIIF_WARNING = 0x00000002 } -enum : uint { NIIF_ERROR = 0x00000003 } -enum : uint { NIIF_ICON_MASK = 0x0000000F } -// #if (_WIN32_IE >= 0x0501) -enum : uint { NIIF_NOSOUND = 0x00000010 } -// #endif -// #endif - -extern(Windows) export BOOL Shell_NotifyIconA(DWORD dwMessage, PNOTIFYICONDATAA lpData); -extern(Windows) export BOOL Shell_NotifyIconW(DWORD dwMessage, PNOTIFYICONDATAW lpData); -// #ifdef UNICODE -// #... -// #else -alias Shell_NotifyIconA Shell_NotifyIcon; -// #endif // !UNICODE - -// #ifndef SHFILEINFO_DEFINED -// #define SHFILEINFO_DEFINED - -struct _SHFILEINFOA { - HICON hIcon; - int iIcon; - DWORD dwAttributes; - CHAR szDisplayName[MAX_PATH]; - CHAR szTypeName[80]; -} -alias _SHFILEINFOA SHFILEINFOA; - -struct _SHFILEINFOW { - HICON hIcon; - int iIcon; - DWORD dwAttributes; - WCHAR szDisplayName[MAX_PATH]; - WCHAR szTypeName[80]; -} -alias _SHFILEINFOW SHFILEINFOW; - -// #ifdef UNICODE -// ... -// #else -alias SHFILEINFOA SHFILEINFO; -// #endif // UNICODE - -// #endif // !SHFILEINFO_DEFINED - -enum : uint { SHGFI_ICON = 0x000000100 } -enum : uint { SHGFI_DISPLAYNAME = 0x000000200 } -enum : uint { SHGFI_TYPENAME = 0x000000400 } -enum : uint { SHGFI_ATTRIBUTES = 0x000000800 } -enum : uint { SHGFI_ICONLOCATION = 0x000001000 } -enum : uint { SHGFI_EXETYPE = 0x000002000 } -enum : uint { SHGFI_SYSICONINDEX = 0x000004000 } -enum : uint { SHGFI_LINKOVERLAY = 0x000008000 } -enum : uint { SHGFI_SELECTED = 0x000010000 } -enum : uint { SHGFI_ATTR_SPECIFIED = 0x000020000 } -enum : uint { SHGFI_LARGEICON = 0x000000000 } -enum : uint { SHGFI_SMALLICON = 0x000000001 } -enum : uint { SHGFI_OPENICON = 0x000000002 } -enum : uint { SHGFI_SHELLICONSIZE = 0x000000004 } -enum : uint { SHGFI_PIDL = 0x000000008 } -enum : uint { SHGFI_USEFILEATTRIBUTES = 0x000000010 } - -// #if (_WIN32_IE >= 0x0500) -enum : uint { SHGFI_ADDOVERLAYS = 0x000000020 } -enum : uint { SHGFI_OVERLAYINDEX = 0x000000040 } - -// #endif - -extern(Windows) export DWORD_PTR SHGetFileInfoA(LPCSTR pszPath, DWORD dwFileAttributes, SHFILEINFOA *psfi, UINT cbFileInfo, UINT uFlags); -extern(Windows) export DWORD_PTR SHGetFileInfoW(LPCWSTR pszPath, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT cbFileInfo, UINT uFlags); -// #ifdef UNICODE -// #... -// #else -alias SHGetFileInfoA SHGetFileInfo; -// #endif // !UNICODE - -alias SHGetDiskFreeSpaceEx SHGetDiskFreeSpace; - -extern(Windows) export BOOL SHGetDiskFreeSpaceExA(LPCSTR pszDirectoryName, ULARGE_INTEGER* pulFreeBytesAvailableToCaller, ULARGE_INTEGER* pulTotalNumberOfBytes, ULARGE_INTEGER* pulTotalNumberOfFreeBytes); -extern(Windows) export BOOL SHGetDiskFreeSpaceExW(LPCWSTR pszDirectoryName, ULARGE_INTEGER* pulFreeBytesAvailableToCaller, ULARGE_INTEGER* pulTotalNumberOfBytes, ULARGE_INTEGER* pulTotalNumberOfFreeBytes); -// #ifdef UNICODE -// #... -// #else -alias SHGetDiskFreeSpaceExA SHGetDiskFreeSpaceEx; -// #endif // !UNICODE -extern(Windows) export BOOL SHGetNewLinkInfoA(LPCSTR pszLinkTo, LPCSTR pszDir, LPSTR pszName, BOOL *pfMustCopy, UINT uFlags); -extern(Windows) export BOOL SHGetNewLinkInfoW(LPCWSTR pszLinkTo, LPCWSTR pszDir, LPWSTR pszName, BOOL *pfMustCopy, UINT uFlags); -// #ifdef UNICODE -// #... -// #else -alias SHGetNewLinkInfoA SHGetNewLinkInfo; -// #endif // !UNICODE - -enum : uint { SHGNLI_PIDL = 0x000000001 } -enum : uint { SHGNLI_PREFIXNAME = 0x000000002 } -enum : uint { SHGNLI_NOUNIQUE = 0x000000004 } -// #if (_WIN32_IE >= 0x0501) -enum : uint { SHGNLI_NOLNK = 0x000000008 } -// #endif // _WIN2_IE >= 0x0501 - -enum : uint { PRINTACTION_OPEN = 0 } -enum : uint { PRINTACTION_PROPERTIES = 1 } -enum : uint { PRINTACTION_NETINSTALL = 2 } -enum : uint { PRINTACTION_NETINSTALLLINK = 3 } -enum : uint { PRINTACTION_TESTPAGE = 4 } -enum : uint { PRINTACTION_OPENNETPRN = 5 } -// #ifdef WINNT -// #... -// #... -// #endif - -extern(Windows) export BOOL SHInvokePrinterCommandA(HWND hwnd, UINT uAction, LPCSTR lpBuf1, LPCSTR lpBuf2, BOOL fModal); -extern(Windows) export BOOL SHInvokePrinterCommandW(HWND hwnd, UINT uAction, LPCWSTR lpBuf1, LPCWSTR lpBuf2, BOOL fModal); -// #ifdef UNICODE -// #... -// #else -alias SHInvokePrinterCommandA SHInvokePrinterCommand; -// #endif // !UNICODE - -// #endif /* WINVER >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0500) - -extern(Windows) export HRESULT SHLoadNonloadedIconOverlayIdentifiers(); - -extern(Windows) export HRESULT SHIsFileAvailableOffline(LPCWSTR pwszPath, LPDWORD pdwStatus); - -enum : uint { OFFLINE_STATUS_LOCAL = 0x0001 } -enum : uint { OFFLINE_STATUS_REMOTE = 0x0002 } -enum : uint { OFFLINE_STATUS_INCOMPLETE = 0x0004 } - -// #endif - -extern(Windows) export HRESULT SHSetLocalizedName(LPWSTR pszPath, LPCWSTR pszResModule, int idsRes); - -// #if _WIN32_IE >= 0x0600 - -extern(Windows) export HRESULT SHEnumerateUnreadMailAccountsA(HKEY hKeyUser, DWORD dwIndex, LPSTR pszMailAddress, int cchMailAddress); -extern(Windows) export HRESULT SHEnumerateUnreadMailAccountsW(HKEY hKeyUser, DWORD dwIndex, LPWSTR pszMailAddress, int cchMailAddress); -// #ifdef UNICODE -// #... -// #else -alias SHEnumerateUnreadMailAccountsA SHEnumerateUnreadMailAccounts; -// #endif // !UNICODE -extern(Windows) export HRESULT SHGetUnreadMailCountA(HKEY hKeyUser, LPCSTR pszMailAddress, DWORD *pdwCount, FILETIME *pFileTime, LPSTR pszShellExecuteCommand, int cchShellExecuteCommand); -extern(Windows) export HRESULT SHGetUnreadMailCountW(HKEY hKeyUser, LPCWSTR pszMailAddress, DWORD *pdwCount, FILETIME *pFileTime, LPWSTR pszShellExecuteCommand, int cchShellExecuteCommand); -// #ifdef UNICODE -// #... -// #else -alias SHGetUnreadMailCountA SHGetUnreadMailCount; -// #endif // !UNICODE -extern(Windows) export HRESULT SHSetUnreadMailCountA(LPCSTR pszMailAddress, DWORD dwCount, LPCSTR pszShellExecuteCommand); -extern(Windows) export HRESULT SHSetUnreadMailCountW(LPCWSTR pszMailAddress, DWORD dwCount, LPCWSTR pszShellExecuteCommand); -// #ifdef UNICODE -// #... -// #else -alias SHSetUnreadMailCountA SHSetUnreadMailCount; -// #endif // !UNICODE - -// #endif /* _WIN32_IE >= 0x0600 */ - -// #if _WIN32_IE >= 0x0600 - -extern(Windows) export HRESULT SHGetImageList(int iImageList, REFIID riid, void **ppvObj); - -enum : uint { SHIL_LARGE = 0 } -enum : uint { SHIL_SMALL = 1 } -enum : uint { SHIL_EXTRALARGE = 2 } -enum : uint { SHIL_SYSSMALL = 3 } - -alias SHIL_SYSSMALL SHIL_LAST; - -extern(Windows) alias HRESULT function( LPCWSTR pszPath) PFNCANSHAREFOLDERW; -extern(Windows) alias HRESULT function( HWND hwndParent, LPCWSTR pszPath) PFNSHOWSHAREFOLDERUIW; - -// #endif /* _WIN32_IE >= 0x0600 */ - -// #ifdef __cplusplus -// } -// #endif /* __cplusplus */ - -// #if !defined(_WIN64) -align: -// #endif - -// #endif /* _INC_SHELLAPI */ - DELETED src/win32/ansi/winbase.d Index: src/win32/ansi/winbase.d ================================================================== --- src/win32/ansi/winbase.d +++ src/win32/ansi/winbase.d @@ -1,6453 +0,0 @@ -module win32.ansi.winbase; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.windef; - -// #ifndef _WINBASE_ -// #define _WINBASE_ - -// #if _MSC_VER > 1000 -// #pragma once -// #endif - -// #ifdef _MAC -// #... -// #endif //_MAC - -// #if !defined(_ADVAPI32_) -// #define WINADVAPI DECLSPEC_IMPORT -// #else -// #... -// #endif - -// #if !defined(_KERNEL32_) -// #define WINBASEAPI DECLSPEC_IMPORT -// #else -// #... -// #endif - -// #if !defined(_ZAWPROXY_) -// #define ZAWPROXYAPI DECLSPEC_IMPORT -// #else -// #... -// #endif - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #define DefineHandleTable(w) ((w),TRUE) -// #define LimitEmsPages(dw) -// #define SetSwapAreaSize(w) (w) -// #define LockSegment(w) GlobalFix((HANDLE)(w)) -// #define UnlockSegment(w) GlobalUnfix((HANDLE)(w)) -alias GetTickCount GetCurrentTime; - -// #define Yield() - -HANDLE INVALID_HANDLE_VALUE = cast(HANDLE)-1; -enum : DWORD { INVALID_FILE_SIZE = 0xFFFFFFFF } -enum : DWORD { INVALID_SET_FILE_POINTER = cast(DWORD)-1 } -enum : DWORD { INVALID_FILE_ATTRIBUTES = cast(DWORD)-1 } - -enum : uint { FILE_BEGIN = 0 } -enum : uint { FILE_CURRENT = 1 } -enum : uint { FILE_END = 2 } - -enum : DWORD { TIME_ZONE_ID_INVALID = 0xFFFFFFFF } - -enum : DWORD { WAIT_FAILED = 0xFFFFFFFF } -alias STATUS_WAIT_0 WAIT_OBJECT_0; - -alias STATUS_ABANDONED_WAIT_0 WAIT_ABANDONED; -alias STATUS_ABANDONED_WAIT_0 WAIT_ABANDONED_0; - -alias STATUS_USER_APC WAIT_IO_COMPLETION; -alias STATUS_PENDING STILL_ACTIVE; -alias STATUS_ACCESS_VIOLATION EXCEPTION_ACCESS_VIOLATION; -alias STATUS_DATATYPE_MISALIGNMENT EXCEPTION_DATATYPE_MISALIGNMENT; -alias STATUS_BREAKPOINT EXCEPTION_BREAKPOINT; -alias STATUS_SINGLE_STEP EXCEPTION_SINGLE_STEP; -alias STATUS_ARRAY_BOUNDS_EXCEEDED EXCEPTION_ARRAY_BOUNDS_EXCEEDED; -alias STATUS_FLOAT_DENORMAL_OPERAND EXCEPTION_FLT_DENORMAL_OPERAND; -alias STATUS_FLOAT_DIVIDE_BY_ZERO EXCEPTION_FLT_DIVIDE_BY_ZERO; -alias STATUS_FLOAT_INEXACT_RESULT EXCEPTION_FLT_INEXACT_RESULT; -alias STATUS_FLOAT_INVALID_OPERATION EXCEPTION_FLT_INVALID_OPERATION; -alias STATUS_FLOAT_OVERFLOW EXCEPTION_FLT_OVERFLOW; -alias STATUS_FLOAT_STACK_CHECK EXCEPTION_FLT_STACK_CHECK; -alias STATUS_FLOAT_UNDERFLOW EXCEPTION_FLT_UNDERFLOW; -alias STATUS_INTEGER_DIVIDE_BY_ZERO EXCEPTION_INT_DIVIDE_BY_ZERO; -alias STATUS_INTEGER_OVERFLOW EXCEPTION_INT_OVERFLOW; -alias STATUS_PRIVILEGED_INSTRUCTION EXCEPTION_PRIV_INSTRUCTION; -alias STATUS_IN_PAGE_ERROR EXCEPTION_IN_PAGE_ERROR; -alias STATUS_ILLEGAL_INSTRUCTION EXCEPTION_ILLEGAL_INSTRUCTION; -alias STATUS_NONCONTINUABLE_EXCEPTION EXCEPTION_NONCONTINUABLE_EXCEPTION; -alias STATUS_STACK_OVERFLOW EXCEPTION_STACK_OVERFLOW; -alias STATUS_INVALID_DISPOSITION EXCEPTION_INVALID_DISPOSITION; -alias STATUS_GUARD_PAGE_VIOLATION EXCEPTION_GUARD_PAGE; -alias STATUS_INVALID_HANDLE EXCEPTION_INVALID_HANDLE; -alias STATUS_CONTROL_C_EXIT CONTROL_C_EXIT; -alias RtlMoveMemory MoveMemory; -alias RtlCopyMemory CopyMemory; -alias RtlFillMemory FillMemory; -alias RtlZeroMemory ZeroMemory; - -enum : uint { FILE_FLAG_WRITE_THROUGH = 0x80000000 } -enum : uint { FILE_FLAG_OVERLAPPED = 0x40000000 } -enum : uint { FILE_FLAG_NO_BUFFERING = 0x20000000 } -enum : uint { FILE_FLAG_RANDOM_ACCESS = 0x10000000 } -enum : uint { FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000 } -enum : uint { FILE_FLAG_DELETE_ON_CLOSE = 0x04000000 } -enum : uint { FILE_FLAG_BACKUP_SEMANTICS = 0x02000000 } -enum : uint { FILE_FLAG_POSIX_SEMANTICS = 0x01000000 } -enum : uint { FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000 } -enum : uint { FILE_FLAG_OPEN_NO_RECALL = 0x00100000 } -enum : uint { FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000 } - -enum : uint { CREATE_NEW = 1 } -enum : uint { CREATE_ALWAYS = 2 } -enum : uint { OPEN_EXISTING = 3 } -enum : uint { OPEN_ALWAYS = 4 } -enum : uint { TRUNCATE_EXISTING = 5 } - -// #if(_WIN32_WINNT >= 0x0400) - -enum : uint { PROGRESS_CONTINUE = 0 } -enum : uint { PROGRESS_CANCEL = 1 } -enum : uint { PROGRESS_STOP = 2 } -enum : uint { PROGRESS_QUIET = 3 } - -enum : uint { CALLBACK_CHUNK_FINISHED = 0x00000000 } -enum : uint { CALLBACK_STREAM_SWITCH = 0x00000001 } - -enum : uint { COPY_FILE_FAIL_IF_EXISTS = 0x00000001 } -enum : uint { COPY_FILE_RESTARTABLE = 0x00000002 } -enum : uint { COPY_FILE_OPEN_SOURCE_FOR_WRITE = 0x00000004 } -enum : uint { COPY_FILE_ALLOW_DECRYPTED_DESTINATION = 0x00000008 } -// #endif /* _WIN32_WINNT >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0500) - -enum : uint { REPLACEFILE_WRITE_THROUGH = 0x00000001 } -enum : uint { REPLACEFILE_IGNORE_MERGE_ERRORS = 0x00000002 } - -// #endif // #if (_WIN32_WINNT >= 0x0500) - -enum : uint { PIPE_ACCESS_INBOUND = 0x00000001 } -enum : uint { PIPE_ACCESS_OUTBOUND = 0x00000002 } -enum : uint { PIPE_ACCESS_DUPLEX = 0x00000003 } - -enum : uint { PIPE_CLIENT_END = 0x00000000 } -enum : uint { PIPE_SERVER_END = 0x00000001 } - -enum : uint { PIPE_WAIT = 0x00000000 } -enum : uint { PIPE_NOWAIT = 0x00000001 } -enum : uint { PIPE_READMODE_BYTE = 0x00000000 } -enum : uint { PIPE_READMODE_MESSAGE = 0x00000002 } -enum : uint { PIPE_TYPE_BYTE = 0x00000000 } -enum : uint { PIPE_TYPE_MESSAGE = 0x00000004 } - -enum : uint { PIPE_UNLIMITED_INSTANCES = 255 } - -enum : uint { SECURITY_ANONYMOUS = SecurityAnonymous << 16 } -enum : uint { SECURITY_IDENTIFICATION = SecurityIdentification << 16 } -enum : uint { SECURITY_IMPERSONATION = SecurityImpersonation << 16 } -enum : uint { SECURITY_DELEGATION = SecurityDelegation << 16 } - -enum : uint { SECURITY_CONTEXT_TRACKING = 0x00040000 } -enum : uint { SECURITY_EFFECTIVE_ONLY = 0x00080000 } - -enum : uint { SECURITY_SQOS_PRESENT = 0x00100000 } -enum : uint { SECURITY_VALID_SQOS_FLAGS = 0x001F0000 } - -struct _OVERLAPPED { - ULONG_PTR Internal; - ULONG_PTR InternalHigh; -union { -struct { - DWORD Offset; - DWORD OffsetHigh; -} - - PVOID Pointer; -} - - HANDLE hEvent; -} -alias _OVERLAPPED OVERLAPPED; -alias _OVERLAPPED* LPOVERLAPPED; - -struct _SECURITY_ATTRIBUTES { - DWORD nLength; - LPVOID lpSecurityDescriptor; - BOOL bInheritHandle; -} -alias _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES; -alias _SECURITY_ATTRIBUTES* PSECURITY_ATTRIBUTES; -alias _SECURITY_ATTRIBUTES* LPSECURITY_ATTRIBUTES; - -struct _PROCESS_INFORMATION { - HANDLE hProcess; - HANDLE hThread; - DWORD dwProcessId; - DWORD dwThreadId; -} -alias _PROCESS_INFORMATION PROCESS_INFORMATION; -alias _PROCESS_INFORMATION* PPROCESS_INFORMATION; -alias _PROCESS_INFORMATION* LPPROCESS_INFORMATION; - -struct _FILETIME { - DWORD dwLowDateTime; - DWORD dwHighDateTime; -} -alias _FILETIME FILETIME; -alias _FILETIME* PFILETIME; -alias _FILETIME* LPFILETIME; - -struct _SYSTEMTIME { - WORD wYear; - WORD wMonth; - WORD wDayOfWeek; - WORD wDay; - WORD wHour; - WORD wMinute; - WORD wSecond; - WORD wMilliseconds; -} -alias _SYSTEMTIME SYSTEMTIME; -alias _SYSTEMTIME* PSYSTEMTIME; -alias _SYSTEMTIME* LPSYSTEMTIME; - -extern(Windows) alias DWORD function( LPVOID lpThreadParameter ) PTHREAD_START_ROUTINE; -alias PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE; - -// #if(_WIN32_WINNT >= 0x0400) -extern(Windows) alias VOID function( LPVOID lpFiberParameter ) PFIBER_START_ROUTINE; -alias PFIBER_START_ROUTINE LPFIBER_START_ROUTINE; -// #endif /* _WIN32_WINNT >= 0x0400 */ - -alias RTL_CRITICAL_SECTION CRITICAL_SECTION; -alias PRTL_CRITICAL_SECTION PCRITICAL_SECTION; -alias PRTL_CRITICAL_SECTION LPCRITICAL_SECTION; - -alias RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG; -alias PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG; -alias PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG; - -// #if defined(_X86_) -alias PLDT_ENTRY LPLDT_ENTRY; -// #else -// ... -// #endif - -alias MUTANT_QUERY_STATE MUTEX_MODIFY_STATE; -alias MUTANT_ALL_ACCESS MUTEX_ALL_ACCESS; - -enum : DWORD { SP_SERIALCOMM = 0x00000001 } - -enum : DWORD { PST_UNSPECIFIED = 0x00000000 } -enum : DWORD { PST_RS232 = 0x00000001 } -enum : DWORD { PST_PARALLELPORT = 0x00000002 } -enum : DWORD { PST_RS422 = 0x00000003 } -enum : DWORD { PST_RS423 = 0x00000004 } -enum : DWORD { PST_RS449 = 0x00000005 } -enum : DWORD { PST_MODEM = 0x00000006 } -enum : DWORD { PST_FAX = 0x00000021 } -enum : DWORD { PST_SCANNER = 0x00000022 } -enum : DWORD { PST_NETWORK_BRIDGE = 0x00000100 } -enum : DWORD { PST_LAT = 0x00000101 } -enum : DWORD { PST_TCPIP_TELNET = 0x00000102 } -enum : DWORD { PST_X25 = 0x00000103 } - -enum : DWORD { PCF_DTRDSR = 0x0001 } -enum : DWORD { PCF_RTSCTS = 0x0002 } -enum : DWORD { PCF_RLSD = 0x0004 } -enum : DWORD { PCF_PARITY_CHECK = 0x0008 } -enum : DWORD { PCF_XONXOFF = 0x0010 } -enum : DWORD { PCF_SETXCHAR = 0x0020 } -enum : DWORD { PCF_TOTALTIMEOUTS = 0x0040 } -enum : DWORD { PCF_INTTIMEOUTS = 0x0080 } -enum : DWORD { PCF_SPECIALCHARS = 0x0100 } -enum : DWORD { PCF_16BITMODE = 0x0200 } - -enum : DWORD { SP_PARITY = 0x0001 } -enum : DWORD { SP_BAUD = 0x0002 } -enum : DWORD { SP_DATABITS = 0x0004 } -enum : DWORD { SP_STOPBITS = 0x0008 } -enum : DWORD { SP_HANDSHAKING = 0x0010 } -enum : DWORD { SP_PARITY_CHECK = 0x0020 } -enum : DWORD { SP_RLSD = 0x0040 } - -enum : DWORD { BAUD_075 = 0x00000001 } -enum : DWORD { BAUD_110 = 0x00000002 } -enum : DWORD { BAUD_134_5 = 0x00000004 } -enum : DWORD { BAUD_150 = 0x00000008 } -enum : DWORD { BAUD_300 = 0x00000010 } -enum : DWORD { BAUD_600 = 0x00000020 } -enum : DWORD { BAUD_1200 = 0x00000040 } -enum : DWORD { BAUD_1800 = 0x00000080 } -enum : DWORD { BAUD_2400 = 0x00000100 } -enum : DWORD { BAUD_4800 = 0x00000200 } -enum : DWORD { BAUD_7200 = 0x00000400 } -enum : DWORD { BAUD_9600 = 0x00000800 } -enum : DWORD { BAUD_14400 = 0x00001000 } -enum : DWORD { BAUD_19200 = 0x00002000 } -enum : DWORD { BAUD_38400 = 0x00004000 } -enum : DWORD { BAUD_56K = 0x00008000 } -enum : DWORD { BAUD_128K = 0x00010000 } -enum : DWORD { BAUD_115200 = 0x00020000 } -enum : DWORD { BAUD_57600 = 0x00040000 } -enum : DWORD { BAUD_USER = 0x10000000 } - -enum : WORD { DATABITS_5 = 0x0001 } -enum : WORD { DATABITS_6 = 0x0002 } -enum : WORD { DATABITS_7 = 0x0004 } -enum : WORD { DATABITS_8 = 0x0008 } -enum : WORD { DATABITS_16 = 0x0010 } -enum : WORD { DATABITS_16X = 0x0020 } - -enum : WORD { STOPBITS_10 = 0x0001 } -enum : WORD { STOPBITS_15 = 0x0002 } -enum : WORD { STOPBITS_20 = 0x0004 } -enum : WORD { PARITY_NONE = 0x0100 } -enum : WORD { PARITY_ODD = 0x0200 } -enum : WORD { PARITY_EVEN = 0x0400 } -enum : WORD { PARITY_MARK = 0x0800 } -enum : WORD { PARITY_SPACE = 0x1000 } - -struct _COMMPROP { - WORD wPacketLength; - WORD wPacketVersion; - DWORD dwServiceMask; - DWORD dwReserved1; - DWORD dwMaxTxQueue; - DWORD dwMaxRxQueue; - DWORD dwMaxBaud; - DWORD dwProvSubType; - DWORD dwProvCapabilities; - DWORD dwSettableParams; - DWORD dwSettableBaud; - WORD wSettableData; - WORD wSettableStopParity; - DWORD dwCurrentTxQueue; - DWORD dwCurrentRxQueue; - DWORD dwProvSpec1; - DWORD dwProvSpec2; - WCHAR wcProvChar[1]; -} -alias _COMMPROP COMMPROP; -alias _COMMPROP* LPCOMMPROP; - -enum : DWORD { COMMPROP_INITIALIZED = 0xE73CF52E } - -struct _COMSTAT { -// DWORD fCtsHold : 1; -// DWORD fDsrHold : 1; -// DWORD fRlsdHold : 1; -// DWORD fXoffHold : 1; -// DWORD fXoffSent : 1; -// DWORD fEof : 1; -// DWORD fTxim : 1; -// DWORD fReserved : 25; - DWORD cbInQue; - DWORD cbOutQue; -} -alias _COMSTAT COMSTAT; -alias _COMSTAT* LPCOMSTAT; - -enum : uint { DTR_CONTROL_DISABLE = 0x00 } -enum : uint { DTR_CONTROL_ENABLE = 0x01 } -enum : uint { DTR_CONTROL_HANDSHAKE = 0x02 } - -enum : uint { RTS_CONTROL_DISABLE = 0x00 } -enum : uint { RTS_CONTROL_ENABLE = 0x01 } -enum : uint { RTS_CONTROL_HANDSHAKE = 0x02 } -enum : uint { RTS_CONTROL_TOGGLE = 0x03 } - -struct _DCB { - DWORD DCBlength; - DWORD BaudRate; -// DWORD fBinary: 1; -// DWORD fParity: 1; -// DWORD fOutxCtsFlow:1; -// DWORD fOutxDsrFlow:1; -// DWORD fDtrControl:2; -// DWORD fDsrSensitivity:1; -// DWORD fTXContinueOnXoff: 1; -// DWORD fOutX: 1; -// DWORD fInX: 1; -// DWORD fErrorChar: 1; -// DWORD fNull: 1; -// DWORD fRtsControl:2; -// DWORD fAbortOnError:1; -// DWORD fDummy2:17; - WORD wReserved; - WORD XonLim; - WORD XoffLim; - BYTE ByteSize; - BYTE Parity; - BYTE StopBits; - char XonChar; - char XoffChar; - char ErrorChar; - char EofChar; - char EvtChar; - WORD wReserved1; -} -alias _DCB DCB; -alias _DCB* LPDCB; - -struct _COMMTIMEOUTS { - DWORD ReadIntervalTimeout; - DWORD ReadTotalTimeoutMultiplier; - DWORD ReadTotalTimeoutConstant; - DWORD WriteTotalTimeoutMultiplier; - DWORD WriteTotalTimeoutConstant; -} -alias _COMMTIMEOUTS COMMTIMEOUTS; -alias _COMMTIMEOUTS* LPCOMMTIMEOUTS; - -struct _COMMCONFIG { - DWORD dwSize; - WORD wVersion; - WORD wReserved; - DCB dcb; - DWORD dwProviderSubType; - DWORD dwProviderOffset; - DWORD dwProviderSize; - WCHAR wcProviderData[1]; -} -alias _COMMCONFIG COMMCONFIG; -alias _COMMCONFIG* LPCOMMCONFIG; - -struct _SYSTEM_INFO { -union { - DWORD dwOemId; -struct { - WORD wProcessorArchitecture; - WORD wReserved; -} - -} - - DWORD dwPageSize; - LPVOID lpMinimumApplicationAddress; - LPVOID lpMaximumApplicationAddress; - DWORD_PTR dwActiveProcessorMask; - DWORD dwNumberOfProcessors; - DWORD dwProcessorType; - DWORD dwAllocationGranularity; - WORD wProcessorLevel; - WORD wProcessorRevision; -} -alias _SYSTEM_INFO SYSTEM_INFO; -alias _SYSTEM_INFO* LPSYSTEM_INFO; - -alias FreeLibrary FreeModule; -// #define MakeProcInstance(lpProc,hInstance) (lpProc) -// #define FreeProcInstance(lpProc) (lpProc) - -enum : uint { GMEM_FIXED = 0x0000 } -enum : uint { GMEM_MOVEABLE = 0x0002 } -enum : uint { GMEM_NOCOMPACT = 0x0010 } -enum : uint { GMEM_NODISCARD = 0x0020 } -enum : uint { GMEM_ZEROINIT = 0x0040 } -enum : uint { GMEM_MODIFY = 0x0080 } -enum : uint { GMEM_DISCARDABLE = 0x0100 } -enum : uint { GMEM_NOT_BANKED = 0x1000 } -enum : uint { GMEM_SHARE = 0x2000 } -enum : uint { GMEM_DDESHARE = 0x2000 } -enum : uint { GMEM_NOTIFY = 0x4000 } -alias GMEM_NOT_BANKED GMEM_LOWER; -enum : uint { GMEM_VALID_FLAGS = 0x7F72 } -enum : uint { GMEM_INVALID_HANDLE = 0x8000 } - -enum : uint { GHND = GMEM_MOVEABLE | GMEM_ZEROINIT } -enum : uint { GPTR = GMEM_FIXED | GMEM_ZEROINIT } - -// #define GlobalLRUNewest( h ) ((HANDLE)(h)) -// #define GlobalLRUOldest( h ) ((HANDLE)(h)) -// #define GlobalDiscard( h ) GlobalReAlloc( (h), 0, GMEM_MOVEABLE ) - -enum : uint { GMEM_DISCARDED = 0x4000 } -enum : uint { GMEM_LOCKCOUNT = 0x00FF } - -struct _MEMORYSTATUS { - DWORD dwLength; - DWORD dwMemoryLoad; - SIZE_T dwTotalPhys; - SIZE_T dwAvailPhys; - SIZE_T dwTotalPageFile; - SIZE_T dwAvailPageFile; - SIZE_T dwTotalVirtual; - SIZE_T dwAvailVirtual; -} -alias _MEMORYSTATUS MEMORYSTATUS; -alias _MEMORYSTATUS* LPMEMORYSTATUS; - -enum : uint { LMEM_FIXED = 0x0000 } -enum : uint { LMEM_MOVEABLE = 0x0002 } -enum : uint { LMEM_NOCOMPACT = 0x0010 } -enum : uint { LMEM_NODISCARD = 0x0020 } -enum : uint { LMEM_ZEROINIT = 0x0040 } -enum : uint { LMEM_MODIFY = 0x0080 } -enum : uint { LMEM_DISCARDABLE = 0x0F00 } -enum : uint { LMEM_VALID_FLAGS = 0x0F72 } -enum : uint { LMEM_INVALID_HANDLE = 0x8000 } - -enum : uint { LHND = LMEM_MOVEABLE | LMEM_ZEROINIT } -enum : uint { LPTR = LMEM_FIXED | LMEM_ZEROINIT } - -enum : uint { NONZEROLHND = LMEM_MOVEABLE } -enum : uint { NONZEROLPTR = LMEM_FIXED } - -// #define LocalDiscard( h ) LocalReAlloc( (h), 0, LMEM_MOVEABLE ) - -enum : uint { LMEM_DISCARDED = 0x4000 } -enum : uint { LMEM_LOCKCOUNT = 0x00FF } - -enum : uint { DEBUG_PROCESS = 0x00000001 } -enum : uint { DEBUG_ONLY_THIS_PROCESS = 0x00000002 } - -enum : uint { CREATE_SUSPENDED = 0x00000004 } - -enum : uint { DETACHED_PROCESS = 0x00000008 } - -enum : uint { CREATE_NEW_CONSOLE = 0x00000010 } - -enum : uint { NORMAL_PRIORITY_CLASS = 0x00000020 } -enum : uint { IDLE_PRIORITY_CLASS = 0x00000040 } -enum : uint { HIGH_PRIORITY_CLASS = 0x00000080 } -enum : uint { REALTIME_PRIORITY_CLASS = 0x00000100 } - -enum : uint { CREATE_NEW_PROCESS_GROUP = 0x00000200 } -enum : uint { CREATE_UNICODE_ENVIRONMENT = 0x00000400 } - -enum : uint { CREATE_SEPARATE_WOW_VDM = 0x00000800 } -enum : uint { CREATE_SHARED_WOW_VDM = 0x00001000 } -enum : uint { CREATE_FORCEDOS = 0x00002000 } - -enum : uint { BELOW_NORMAL_PRIORITY_CLASS = 0x00004000 } -enum : uint { ABOVE_NORMAL_PRIORITY_CLASS = 0x00008000 } -enum : uint { STACK_SIZE_PARAM_IS_A_RESERVATION = 0x00010000 } - -enum : uint { CREATE_BREAKAWAY_FROM_JOB = 0x01000000 } -enum : uint { CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000 } - -enum : uint { CREATE_DEFAULT_ERROR_MODE = 0x04000000 } -enum : uint { CREATE_NO_WINDOW = 0x08000000 } - -enum : uint { PROFILE_USER = 0x10000000 } -enum : uint { PROFILE_KERNEL = 0x20000000 } -enum : uint { PROFILE_SERVER = 0x40000000 } - -enum : uint { CREATE_IGNORE_SYSTEM_DEFAULT = 0x80000000 } - -alias THREAD_BASE_PRIORITY_MIN THREAD_PRIORITY_LOWEST; -enum : uint { THREAD_PRIORITY_BELOW_NORMAL = THREAD_PRIORITY_LOWEST+1 } -enum : uint { THREAD_PRIORITY_NORMAL = 0 } -alias THREAD_BASE_PRIORITY_MAX THREAD_PRIORITY_HIGHEST; -enum : uint { THREAD_PRIORITY_ABOVE_NORMAL = THREAD_PRIORITY_HIGHEST-1 } -enum : uint { THREAD_PRIORITY_ERROR_RETURN = MAXLONG } - -alias THREAD_BASE_PRIORITY_LOWRT THREAD_PRIORITY_TIME_CRITICAL; -alias THREAD_BASE_PRIORITY_IDLE THREAD_PRIORITY_IDLE; - -enum : uint { EXCEPTION_DEBUG_EVENT = 1 } -enum : uint { CREATE_THREAD_DEBUG_EVENT = 2 } -enum : uint { CREATE_PROCESS_DEBUG_EVENT = 3 } -enum : uint { EXIT_THREAD_DEBUG_EVENT = 4 } -enum : uint { EXIT_PROCESS_DEBUG_EVENT = 5 } -enum : uint { LOAD_DLL_DEBUG_EVENT = 6 } -enum : uint { UNLOAD_DLL_DEBUG_EVENT = 7 } -enum : uint { OUTPUT_DEBUG_STRING_EVENT = 8 } -enum : uint { RIP_EVENT = 9 } - -struct _EXCEPTION_DEBUG_INFO { - EXCEPTION_RECORD ExceptionRecord; - DWORD dwFirstChance; -} -alias _EXCEPTION_DEBUG_INFO EXCEPTION_DEBUG_INFO; -alias _EXCEPTION_DEBUG_INFO* LPEXCEPTION_DEBUG_INFO; - -struct _CREATE_THREAD_DEBUG_INFO { - HANDLE hThread; - LPVOID lpThreadLocalBase; - LPTHREAD_START_ROUTINE lpStartAddress; -} -alias _CREATE_THREAD_DEBUG_INFO CREATE_THREAD_DEBUG_INFO; -alias _CREATE_THREAD_DEBUG_INFO* LPCREATE_THREAD_DEBUG_INFO; - -struct _CREATE_PROCESS_DEBUG_INFO { - HANDLE hFile; - HANDLE hProcess; - HANDLE hThread; - LPVOID lpBaseOfImage; - DWORD dwDebugInfoFileOffset; - DWORD nDebugInfoSize; - LPVOID lpThreadLocalBase; - LPTHREAD_START_ROUTINE lpStartAddress; - LPVOID lpImageName; - WORD fUnicode; -} -alias _CREATE_PROCESS_DEBUG_INFO CREATE_PROCESS_DEBUG_INFO; -alias _CREATE_PROCESS_DEBUG_INFO* LPCREATE_PROCESS_DEBUG_INFO; - -struct _EXIT_THREAD_DEBUG_INFO { - DWORD dwExitCode; -} -alias _EXIT_THREAD_DEBUG_INFO EXIT_THREAD_DEBUG_INFO; -alias _EXIT_THREAD_DEBUG_INFO* LPEXIT_THREAD_DEBUG_INFO; - -struct _EXIT_PROCESS_DEBUG_INFO { - DWORD dwExitCode; -} -alias _EXIT_PROCESS_DEBUG_INFO EXIT_PROCESS_DEBUG_INFO; -alias _EXIT_PROCESS_DEBUG_INFO* LPEXIT_PROCESS_DEBUG_INFO; - -struct _LOAD_DLL_DEBUG_INFO { - HANDLE hFile; - LPVOID lpBaseOfDll; - DWORD dwDebugInfoFileOffset; - DWORD nDebugInfoSize; - LPVOID lpImageName; - WORD fUnicode; -} -alias _LOAD_DLL_DEBUG_INFO LOAD_DLL_DEBUG_INFO; -alias _LOAD_DLL_DEBUG_INFO* LPLOAD_DLL_DEBUG_INFO; - -struct _UNLOAD_DLL_DEBUG_INFO { - LPVOID lpBaseOfDll; -} -alias _UNLOAD_DLL_DEBUG_INFO UNLOAD_DLL_DEBUG_INFO; -alias _UNLOAD_DLL_DEBUG_INFO* LPUNLOAD_DLL_DEBUG_INFO; - -struct _OUTPUT_DEBUG_STRING_INFO { - LPSTR lpDebugStringData; - WORD fUnicode; - WORD nDebugStringLength; -} -alias _OUTPUT_DEBUG_STRING_INFO OUTPUT_DEBUG_STRING_INFO; -alias _OUTPUT_DEBUG_STRING_INFO* LPOUTPUT_DEBUG_STRING_INFO; - -struct _RIP_INFO { - DWORD dwError; - DWORD dwType; -} -alias _RIP_INFO RIP_INFO; -alias _RIP_INFO* LPRIP_INFO; - -struct _DEBUG_EVENT { - DWORD dwDebugEventCode; - DWORD dwProcessId; - DWORD dwThreadId; -union { - EXCEPTION_DEBUG_INFO Exception; - CREATE_THREAD_DEBUG_INFO CreateThread; - CREATE_PROCESS_DEBUG_INFO CreateProcessInfo; - EXIT_THREAD_DEBUG_INFO ExitThread; - EXIT_PROCESS_DEBUG_INFO ExitProcess; - LOAD_DLL_DEBUG_INFO LoadDll; - UNLOAD_DLL_DEBUG_INFO UnloadDll; - OUTPUT_DEBUG_STRING_INFO DebugString; - RIP_INFO RipInfo; -} - -} -alias _DEBUG_EVENT DEBUG_EVENT; -alias _DEBUG_EVENT* LPDEBUG_EVENT; - -// #if !defined(MIDL_PASS) -alias PCONTEXT LPCONTEXT; -alias PEXCEPTION_RECORD LPEXCEPTION_RECORD; -alias PEXCEPTION_POINTERS LPEXCEPTION_POINTERS; -// #endif - -enum : uint { DRIVE_UNKNOWN = 0 } -enum : uint { DRIVE_NO_ROOT_DIR = 1 } -enum : uint { DRIVE_REMOVABLE = 2 } -enum : uint { DRIVE_FIXED = 3 } -enum : uint { DRIVE_REMOTE = 4 } -enum : uint { DRIVE_CDROM = 5 } -enum : uint { DRIVE_RAMDISK = 6 } - -// #ifndef _MAC -// #define GetFreeSpace(w) (0x100000L) -// #else -// ... -// #endif - -enum : uint { FILE_TYPE_UNKNOWN = 0x0000 } -enum : uint { FILE_TYPE_DISK = 0x0001 } -enum : uint { FILE_TYPE_CHAR = 0x0002 } -enum : uint { FILE_TYPE_PIPE = 0x0003 } -enum : uint { FILE_TYPE_REMOTE = 0x8000 } - -enum : DWORD { STD_INPUT_HANDLE = cast(DWORD)-10 } -enum : DWORD { STD_OUTPUT_HANDLE = cast(DWORD)-11 } -enum : DWORD { STD_ERROR_HANDLE = cast(DWORD)-12 } - -enum : uint { NOPARITY = 0 } -enum : uint { ODDPARITY = 1 } -enum : uint { EVENPARITY = 2 } -enum : uint { MARKPARITY = 3 } -enum : uint { SPACEPARITY = 4 } - -enum : uint { ONESTOPBIT = 0 } -enum : uint { ONE5STOPBITS = 1 } -enum : uint { TWOSTOPBITS = 2 } - -enum : uint { IGNORE = 0 } -enum : uint { INFINITE = 0xFFFFFFFF } - -enum : uint { CBR_110 = 110 } -enum : uint { CBR_300 = 300 } -enum : uint { CBR_600 = 600 } -enum : uint { CBR_1200 = 1200 } -enum : uint { CBR_2400 = 2400 } -enum : uint { CBR_4800 = 4800 } -enum : uint { CBR_9600 = 9600 } -enum : uint { CBR_14400 = 14400 } -enum : uint { CBR_19200 = 19200 } -enum : uint { CBR_38400 = 38400 } -enum : uint { CBR_56000 = 56000 } -enum : uint { CBR_57600 = 57600 } -enum : uint { CBR_115200 = 115200 } -enum : uint { CBR_128000 = 128000 } -enum : uint { CBR_256000 = 256000 } - -enum : uint { CE_RXOVER = 0x0001 } -enum : uint { CE_OVERRUN = 0x0002 } -enum : uint { CE_RXPARITY = 0x0004 } -enum : uint { CE_FRAME = 0x0008 } -enum : uint { CE_BREAK = 0x0010 } -enum : uint { CE_TXFULL = 0x0100 } -enum : uint { CE_PTO = 0x0200 } -enum : uint { CE_IOE = 0x0400 } -enum : uint { CE_DNS = 0x0800 } -enum : uint { CE_OOP = 0x1000 } -enum : uint { CE_MODE = 0x8000 } - -enum { IE_BADID = -1 } -enum { IE_OPEN = -2 } -enum { IE_NOPEN = -3 } -enum { IE_MEMORY = -4 } -enum { IE_DEFAULT = -5 } -enum { IE_HARDWARE = -10 } -enum { IE_BYTESIZE = -11 } -enum { IE_BAUDRATE = -12 } - -enum : uint { EV_RXCHAR = 0x0001 } -enum : uint { EV_RXFLAG = 0x0002 } -enum : uint { EV_TXEMPTY = 0x0004 } -enum : uint { EV_CTS = 0x0008 } -enum : uint { EV_DSR = 0x0010 } -enum : uint { EV_RLSD = 0x0020 } -enum : uint { EV_BREAK = 0x0040 } -enum : uint { EV_ERR = 0x0080 } -enum : uint { EV_RING = 0x0100 } -enum : uint { EV_PERR = 0x0200 } -enum : uint { EV_RX80FULL = 0x0400 } -enum : uint { EV_EVENT1 = 0x0800 } -enum : uint { EV_EVENT2 = 0x1000 } - -enum : uint { SETXOFF = 1 } -enum : uint { SETXON = 2 } -enum : uint { SETRTS = 3 } -enum : uint { CLRRTS = 4 } -enum : uint { SETDTR = 5 } -enum : uint { CLRDTR = 6 } -enum : uint { RESETDEV = 7 } -enum : uint { SETBREAK = 8 } -enum : uint { CLRBREAK = 9 } - -enum : uint { PURGE_TXABORT = 0x0001 } -enum : uint { PURGE_RXABORT = 0x0002 } -enum : uint { PURGE_TXCLEAR = 0x0004 } -enum : uint { PURGE_RXCLEAR = 0x0008 } - -enum : uint { LPTx = 0x80 } - -enum : DWORD { MS_CTS_ON = 0x0010 } -enum : DWORD { MS_DSR_ON = 0x0020 } -enum : DWORD { MS_RING_ON = 0x0040 } -enum : DWORD { MS_RLSD_ON = 0x0080 } - -enum : uint { S_QUEUEEMPTY = 0 } -enum : uint { S_THRESHOLD = 1 } -enum : uint { S_ALLTHRESHOLD = 2 } - -enum : uint { S_NORMAL = 0 } -enum : uint { S_LEGATO = 1 } -enum : uint { S_STACCATO = 2 } - -enum : uint { S_PERIOD512 = 0 } -enum : uint { S_PERIOD1024 = 1 } -enum : uint { S_PERIOD2048 = 2 } -enum : uint { S_PERIODVOICE = 3 } -enum : uint { S_WHITE512 = 4 } -enum : uint { S_WHITE1024 = 5 } -enum : uint { S_WHITE2048 = 6 } -enum : uint { S_WHITEVOICE = 7 } - -enum { S_SERDVNA = -1 } -enum { S_SEROFM = -2 } -enum { S_SERMACT = -3 } -enum { S_SERQFUL = -4 } -enum { S_SERBDNT = -5 } -enum { S_SERDLN = -6 } -enum { S_SERDCC = -7 } -enum { S_SERDTP = -8 } -enum { S_SERDVL = -9 } -enum { S_SERDMD = -10 } -enum { S_SERDSH = -11 } -enum { S_SERDPT = -12 } -enum { S_SERDFQ = -13 } -enum { S_SERDDR = -14 } -enum { S_SERDSR = -15 } -enum { S_SERDST = -16 } - -enum : uint { NMPWAIT_WAIT_FOREVER = 0xffffffff } -enum : uint { NMPWAIT_NOWAIT = 0x00000001 } -enum : uint { NMPWAIT_USE_DEFAULT_WAIT = 0x00000000 } - -alias FILE_CASE_PRESERVED_NAMES FS_CASE_IS_PRESERVED; -alias FILE_CASE_SENSITIVE_SEARCH FS_CASE_SENSITIVE; -alias FILE_UNICODE_ON_DISK FS_UNICODE_STORED_ON_DISK; -alias FILE_PERSISTENT_ACLS FS_PERSISTENT_ACLS; -alias FILE_VOLUME_IS_COMPRESSED FS_VOL_IS_COMPRESSED; -alias FILE_FILE_COMPRESSION FS_FILE_COMPRESSION; -alias FILE_SUPPORTS_ENCRYPTION FS_FILE_ENCRYPTION; - -alias SECTION_QUERY FILE_MAP_COPY; -alias SECTION_MAP_WRITE FILE_MAP_WRITE; -alias SECTION_MAP_READ FILE_MAP_READ; -alias SECTION_ALL_ACCESS FILE_MAP_ALL_ACCESS; - -enum : uint { OF_READ = 0x00000000 } -enum : uint { OF_WRITE = 0x00000001 } -enum : uint { OF_READWRITE = 0x00000002 } -enum : uint { OF_SHARE_COMPAT = 0x00000000 } -enum : uint { OF_SHARE_EXCLUSIVE = 0x00000010 } -enum : uint { OF_SHARE_DENY_WRITE = 0x00000020 } -enum : uint { OF_SHARE_DENY_READ = 0x00000030 } -enum : uint { OF_SHARE_DENY_NONE = 0x00000040 } -enum : uint { OF_PARSE = 0x00000100 } -enum : uint { OF_DELETE = 0x00000200 } -enum : uint { OF_VERIFY = 0x00000400 } -enum : uint { OF_CANCEL = 0x00000800 } -enum : uint { OF_CREATE = 0x00001000 } -enum : uint { OF_PROMPT = 0x00002000 } -enum : uint { OF_EXIST = 0x00004000 } -enum : uint { OF_REOPEN = 0x00008000 } - -enum : uint { OFS_MAXPATHNAME = 128 } -struct _OFSTRUCT { - BYTE cBytes; - BYTE fFixedDisk; - WORD nErrCode; - WORD Reserved1; - WORD Reserved2; - CHAR szPathName[OFS_MAXPATHNAME]; -} -alias _OFSTRUCT OFSTRUCT; -alias _OFSTRUCT* LPOFSTRUCT; -alias _OFSTRUCT* POFSTRUCT; - -// #ifndef NOWINBASEINTERLOCK - -// #ifndef _NTOS_ - -// #if defined(_M_IA64) && !defined(RC_INVOKED) - -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #elif defined(_M_AMD64) && !defined(RC_INVOKED) - -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #else // X86 interlocked definitions - -extern(Windows) export LONG InterlockedIncrement( - LONG *lpAddend); - -extern(Windows) export LONG InterlockedDecrement( - LONG *lpAddend); - -extern(Windows) export LONG InterlockedExchange( - LONG *Target, - LONG Value); - -void* InterlockedExchangePointer(void** t, void* v){ return cast(void*)InterlockedExchange(cast(PLONG)t, cast(LONG)v); } - -extern(Windows) export LONG InterlockedExchangeAdd( - LONG *Addend, - LONG Value); - -extern(Windows) export LONG InterlockedCompareExchange( - LONG *Destination, - LONG Exchange, - LONG Comperand); - -// #ifdef __cplusplus - -PVOID __InlineInterlockedCompareExchangePointer(PVOID* Destination, PVOID ExChange, PVOID Comperand){ return(cast(PVOID)cast(LONG_PTR)InterlockedCompareExchange(cast(LONG*)Destination, cast(LONG)cast(LONG_PTR)ExChange, cast(LONG)cast(LONG_PTR)Comperand)); } -alias __InlineInterlockedCompareExchangePointer InterlockedCompareExchangePointer; - -// #else - -// #... -// ... - -// #endif /* __cplusplus */ - -// #endif /* X86 | IA64 */ - -// #if defined(_SLIST_HEADER_) && !defined(_NTOSP_) - -// ... - -// ... - -// ... - -// ... - -// ... - -// #endif /* _SLIST_HEADER_ */ -// #endif /* _NTOS_ */ - -// #endif /* NOWINBASEINTERLOCK */ - -extern(Windows) export BOOL FreeResource( - HGLOBAL hResData); - -extern(Windows) export LPVOID LockResource( - HGLOBAL hResData); - -// #define UnlockResource(hResData) ((hResData), 0) -enum : uint { MAXINTATOM = 0xC000 } -// #define MAKEINTATOM(i) (LPTSTR)((ULONG_PTR)((WORD)(i))) -enum : ATOM { INVALID_ATOM = 0 } - -// #ifndef _MAC -// ??? -// ??? -// #else -// ... -// #endif -// WinMain - -extern(Windows) export BOOL FreeLibrary( - HMODULE hLibModule); - -extern(Windows) export VOID FreeLibraryAndExitThread( - HMODULE hLibModule, - DWORD dwExitCode); - -extern(Windows) export BOOL DisableThreadLibraryCalls( - HMODULE hLibModule); - -extern(Windows) export FARPROC GetProcAddress( - HMODULE hModule, - LPCSTR lpProcName); - -extern(Windows) export DWORD GetVersion(); - -extern(Windows) export HGLOBAL GlobalAlloc( - UINT uFlags, - SIZE_T dwBytes); - -extern(Windows) export HGLOBAL GlobalReAlloc( - HGLOBAL hMem, - SIZE_T dwBytes, - UINT uFlags); - -extern(Windows) export SIZE_T GlobalSize( - HGLOBAL hMem); - -extern(Windows) export UINT GlobalFlags( - HGLOBAL hMem); - -extern(Windows) export LPVOID GlobalLock( - HGLOBAL hMem); - -extern(Windows) export HGLOBAL GlobalHandle( - LPCVOID pMem); - -extern(Windows) export BOOL GlobalUnlock( - HGLOBAL hMem); - -extern(Windows) export HGLOBAL GlobalFree( - HGLOBAL hMem); - -extern(Windows) export SIZE_T GlobalCompact( - DWORD dwMinFree); - -extern(Windows) export VOID GlobalFix( - HGLOBAL hMem); - -extern(Windows) export VOID GlobalUnfix( - HGLOBAL hMem); - -extern(Windows) export LPVOID GlobalWire( - HGLOBAL hMem); - -extern(Windows) export BOOL GlobalUnWire( - HGLOBAL hMem); - -extern(Windows) export VOID GlobalMemoryStatus( - LPMEMORYSTATUS lpBuffer); - -struct _MEMORYSTATUSEX { - DWORD dwLength; - DWORD dwMemoryLoad; - DWORDLONG ullTotalPhys; - DWORDLONG ullAvailPhys; - DWORDLONG ullTotalPageFile; - DWORDLONG ullAvailPageFile; - DWORDLONG ullTotalVirtual; - DWORDLONG ullAvailVirtual; - DWORDLONG ullAvailExtendedVirtual; -} -alias _MEMORYSTATUSEX MEMORYSTATUSEX; -alias _MEMORYSTATUSEX* LPMEMORYSTATUSEX; - -extern(Windows) export BOOL GlobalMemoryStatusEx( - LPMEMORYSTATUSEX lpBuffer); - -extern(Windows) export HLOCAL LocalAlloc( - UINT uFlags, - SIZE_T uBytes); - -extern(Windows) export HLOCAL LocalReAlloc( - HLOCAL hMem, - SIZE_T uBytes, - UINT uFlags); - -extern(Windows) export LPVOID LocalLock( - HLOCAL hMem); - -extern(Windows) export HLOCAL LocalHandle( - LPCVOID pMem); - -extern(Windows) export BOOL LocalUnlock( - HLOCAL hMem); - -extern(Windows) export SIZE_T LocalSize( - HLOCAL hMem); - -extern(Windows) export UINT LocalFlags( - HLOCAL hMem); - -extern(Windows) export HLOCAL LocalFree( - HLOCAL hMem); - -extern(Windows) export SIZE_T LocalShrink( - HLOCAL hMem, - UINT cbNewSize); - -extern(Windows) export SIZE_T LocalCompact( - UINT uMinFree); - -extern(Windows) export BOOL FlushInstructionCache( - HANDLE hProcess, - LPCVOID lpBaseAddress, - SIZE_T dwSize); - -extern(Windows) export LPVOID VirtualAlloc( - LPVOID lpAddress, - SIZE_T dwSize, - DWORD flAllocationType, - DWORD flProtect); - -extern(Windows) export BOOL VirtualFree( - LPVOID lpAddress, - SIZE_T dwSize, - DWORD dwFreeType); - -extern(Windows) export BOOL VirtualProtect( - LPVOID lpAddress, - SIZE_T dwSize, - DWORD flNewProtect, - PDWORD lpflOldProtect); - -extern(Windows) export SIZE_T VirtualQuery( - LPCVOID lpAddress, - PMEMORY_BASIC_INFORMATION lpBuffer, - SIZE_T dwLength); - -extern(Windows) export LPVOID VirtualAllocEx( - HANDLE hProcess, - LPVOID lpAddress, - SIZE_T dwSize, - DWORD flAllocationType, - DWORD flProtect); - -extern(Windows) export UINT GetWriteWatch( - DWORD dwFlags, - PVOID lpBaseAddress, - SIZE_T dwRegionSize, - PVOID *lpAddresses, - PULONG_PTR lpdwCount, - PULONG lpdwGranularity); - -extern(Windows) export UINT ResetWriteWatch( - LPVOID lpBaseAddress, - SIZE_T dwRegionSize); - -extern(Windows) export BOOL VirtualFreeEx( - HANDLE hProcess, - LPVOID lpAddress, - SIZE_T dwSize, - DWORD dwFreeType); - -extern(Windows) export BOOL VirtualProtectEx( - HANDLE hProcess, - LPVOID lpAddress, - SIZE_T dwSize, - DWORD flNewProtect, - PDWORD lpflOldProtect); - -extern(Windows) export SIZE_T VirtualQueryEx( - HANDLE hProcess, - LPCVOID lpAddress, - PMEMORY_BASIC_INFORMATION lpBuffer, - SIZE_T dwLength); - -extern(Windows) export HANDLE HeapCreate( - DWORD flOptions, - SIZE_T dwInitialSize, - SIZE_T dwMaximumSize); - -extern(Windows) export BOOL HeapDestroy( - HANDLE hHeap); - -extern(Windows) export LPVOID HeapAlloc( - HANDLE hHeap, - DWORD dwFlags, - SIZE_T dwBytes); - -extern(Windows) export LPVOID HeapReAlloc( - HANDLE hHeap, - DWORD dwFlags, - LPVOID lpMem, - SIZE_T dwBytes); - -extern(Windows) export BOOL HeapFree( - HANDLE hHeap, - DWORD dwFlags, - LPVOID lpMem); - -extern(Windows) export SIZE_T HeapSize( - HANDLE hHeap, - DWORD dwFlags, - LPCVOID lpMem); - -extern(Windows) export BOOL HeapValidate( - HANDLE hHeap, - DWORD dwFlags, - LPCVOID lpMem); - -extern(Windows) export SIZE_T HeapCompact( - HANDLE hHeap, - DWORD dwFlags); - -extern(Windows) export HANDLE GetProcessHeap(); - -extern(Windows) export DWORD GetProcessHeaps( - DWORD NumberOfHeaps, - PHANDLE ProcessHeaps); - -struct _PROCESS_HEAP_ENTRY { - PVOID lpData; - DWORD cbData; - BYTE cbOverhead; - BYTE iRegionIndex; - WORD wFlags; -union { -struct { - HANDLE hMem; - DWORD dwReserved[ 3 ]; -} - -struct { - DWORD dwCommittedSize; - DWORD dwUnCommittedSize; - LPVOID lpFirstBlock; - LPVOID lpLastBlock; -} - -} - -} -alias _PROCESS_HEAP_ENTRY PROCESS_HEAP_ENTRY; -alias _PROCESS_HEAP_ENTRY* LPPROCESS_HEAP_ENTRY; -alias _PROCESS_HEAP_ENTRY* PPROCESS_HEAP_ENTRY; - -enum : uint { PROCESS_HEAP_REGION = 0x0001 } -enum : uint { PROCESS_HEAP_UNCOMMITTED_RANGE = 0x0002 } -enum : uint { PROCESS_HEAP_ENTRY_BUSY = 0x0004 } -enum : uint { PROCESS_HEAP_ENTRY_MOVEABLE = 0x0010 } -enum : uint { PROCESS_HEAP_ENTRY_DDESHARE = 0x0020 } - -extern(Windows) export BOOL HeapLock( - HANDLE hHeap); - -extern(Windows) export BOOL HeapUnlock( - HANDLE hHeap); - -extern(Windows) export BOOL HeapWalk( - HANDLE hHeap, - LPPROCESS_HEAP_ENTRY lpEntry); - -extern(Windows) export BOOL HeapSetInformation( - PVOID HeapHandle, - HEAP_INFORMATION_CLASS HeapInformationClass, - PVOID HeapInformation , - SIZE_T HeapInformationLength ); - -extern(Windows) export BOOL HeapQueryInformation( - PVOID HeapHandle, - HEAP_INFORMATION_CLASS HeapInformationClass, - PVOID HeapInformation , - SIZE_T HeapInformationLength , - PSIZE_T ReturnLength ); - -enum : uint { SCS_32BIT_BINARY = 0 } -enum : uint { SCS_DOS_BINARY = 1 } -enum : uint { SCS_WOW_BINARY = 2 } -enum : uint { SCS_PIF_BINARY = 3 } -enum : uint { SCS_POSIX_BINARY = 4 } -enum : uint { SCS_OS216_BINARY = 5 } -enum : uint { SCS_64BIT_BINARY = 6 } - -// #if defined(_WIN64) -// #... -// #else -alias SCS_32BIT_BINARY SCS_THIS_PLATFORM_BINARY; -// #endif - -extern(Windows) export BOOL GetBinaryTypeA( - LPCSTR lpApplicationName, - LPDWORD lpBinaryType); -extern(Windows) export BOOL GetBinaryTypeW( - LPCWSTR lpApplicationName, - LPDWORD lpBinaryType); -// #ifdef UNICODE -// #... -// #else -alias GetBinaryTypeA GetBinaryType; -// #endif // !UNICODE - -extern(Windows) export DWORD GetShortPathNameA( - LPCSTR lpszLongPath, - LPSTR lpszShortPath, - DWORD cchBuffer); -extern(Windows) export DWORD GetShortPathNameW( - LPCWSTR lpszLongPath, - LPWSTR lpszShortPath, - DWORD cchBuffer); -// #ifdef UNICODE -// #... -// #else -alias GetShortPathNameA GetShortPathName; -// #endif // !UNICODE - -extern(Windows) export DWORD GetLongPathNameA( - LPCSTR lpszShortPath, - LPSTR lpszLongPath, - DWORD cchBuffer); -extern(Windows) export DWORD GetLongPathNameW( - LPCWSTR lpszShortPath, - LPWSTR lpszLongPath, - DWORD cchBuffer); -// #ifdef UNICODE -// #... -// #else -alias GetLongPathNameA GetLongPathName; -// #endif // !UNICODE - -extern(Windows) export BOOL GetProcessAffinityMask( - HANDLE hProcess, - PDWORD_PTR lpProcessAffinityMask, - PDWORD_PTR lpSystemAffinityMask); - -extern(Windows) export BOOL SetProcessAffinityMask( - HANDLE hProcess, - DWORD_PTR dwProcessAffinityMask); - -extern(Windows) export BOOL GetProcessTimes( - HANDLE hProcess, - LPFILETIME lpCreationTime, - LPFILETIME lpExitTime, - LPFILETIME lpKernelTime, - LPFILETIME lpUserTime); - -extern(Windows) export BOOL GetProcessIoCounters( - HANDLE hProcess, - PIO_COUNTERS lpIoCounters); - -extern(Windows) export BOOL GetProcessWorkingSetSize( - HANDLE hProcess, - PSIZE_T lpMinimumWorkingSetSize, - PSIZE_T lpMaximumWorkingSetSize); - -extern(Windows) export BOOL SetProcessWorkingSetSize( - HANDLE hProcess, - SIZE_T dwMinimumWorkingSetSize, - SIZE_T dwMaximumWorkingSetSize); - -extern(Windows) export HANDLE OpenProcess( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - DWORD dwProcessId); - -extern(Windows) export HANDLE GetCurrentProcess(); - -extern(Windows) export DWORD GetCurrentProcessId(); - -extern(Windows) export VOID ExitProcess( - UINT uExitCode); - -extern(Windows) export BOOL TerminateProcess( - HANDLE hProcess, - UINT uExitCode); - -extern(Windows) export BOOL GetExitCodeProcess( - HANDLE hProcess, - LPDWORD lpExitCode); - -extern(Windows) export VOID FatalExit( - int ExitCode); - -extern(Windows) export LPSTR GetEnvironmentStrings(); - -extern(Windows) export LPWSTR GetEnvironmentStringsW(); - -// #ifdef UNICODE -// #... -// #else -alias GetEnvironmentStrings GetEnvironmentStringsA; -// #endif // !UNICODE - -extern(Windows) export BOOL FreeEnvironmentStringsA( - LPSTR); -extern(Windows) export BOOL FreeEnvironmentStringsW( - LPWSTR); -// #ifdef UNICODE -// #... -// #else -alias FreeEnvironmentStringsA FreeEnvironmentStrings; -// #endif // !UNICODE - -extern(Windows) export VOID RaiseException( - DWORD dwExceptionCode, - DWORD dwExceptionFlags, - DWORD nNumberOfArguments, - ULONG_PTR *lpArguments); - -extern(Windows) export LONG UnhandledExceptionFilter( - _EXCEPTION_POINTERS *ExceptionInfo); - -extern(Windows) alias LONG function( _EXCEPTION_POINTERS *ExceptionInfo ) PTOP_LEVEL_EXCEPTION_FILTER; -alias PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER; - -extern(Windows) export LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter( - LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter); - -// #if(_WIN32_WINNT >= 0x0400) - -extern(Windows) export LPVOID CreateFiber( - SIZE_T dwStackSize, - LPFIBER_START_ROUTINE lpStartAddress, - LPVOID lpParameter); - -extern(Windows) export LPVOID CreateFiberEx( - SIZE_T dwStackCommitSize, - SIZE_T dwStackReserveSize, - DWORD dwFlags, - LPFIBER_START_ROUTINE lpStartAddress, - LPVOID lpParameter); - -extern(Windows) export VOID DeleteFiber( - LPVOID lpFiber); - -extern(Windows) export LPVOID ConvertThreadToFiber( - LPVOID lpParameter); - -extern(Windows) export BOOL ConvertFiberToThread(); - -extern(Windows) export VOID SwitchToFiber( - LPVOID lpFiber); - -extern(Windows) export BOOL SwitchToThread(); -// #endif /* _WIN32_WINNT >= 0x0400 */ - -extern(Windows) export HANDLE CreateThread( - LPSECURITY_ATTRIBUTES lpThreadAttributes, - SIZE_T dwStackSize, - LPTHREAD_START_ROUTINE lpStartAddress, - LPVOID lpParameter, - DWORD dwCreationFlags, - LPDWORD lpThreadId); - -extern(Windows) export HANDLE CreateRemoteThread( - HANDLE hProcess, - LPSECURITY_ATTRIBUTES lpThreadAttributes, - SIZE_T dwStackSize, - LPTHREAD_START_ROUTINE lpStartAddress, - LPVOID lpParameter, - DWORD dwCreationFlags, - LPDWORD lpThreadId); - -extern(Windows) export HANDLE GetCurrentThread(); - -extern(Windows) export DWORD GetCurrentThreadId(); - -extern(Windows) export DWORD_PTR SetThreadAffinityMask( - HANDLE hThread, - DWORD_PTR dwThreadAffinityMask); - -// #if(_WIN32_WINNT >= 0x0400) -extern(Windows) export DWORD SetThreadIdealProcessor( - HANDLE hThread, - DWORD dwIdealProcessor); -// #endif /* _WIN32_WINNT >= 0x0400 */ - -extern(Windows) export BOOL SetProcessPriorityBoost( - HANDLE hProcess, - BOOL bDisablePriorityBoost); - -extern(Windows) export BOOL GetProcessPriorityBoost( - HANDLE hProcess, - PBOOL pDisablePriorityBoost); - -extern(Windows) export BOOL RequestWakeupLatency( - LATENCY_TIME latency); - -extern(Windows) export BOOL IsSystemResumeAutomatic(); - -extern(Windows) export HANDLE OpenThread( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - DWORD dwThreadId); - -extern(Windows) export BOOL SetThreadPriority( - HANDLE hThread, - int nPriority); - -extern(Windows) export BOOL SetThreadPriorityBoost( - HANDLE hThread, - BOOL bDisablePriorityBoost); - -extern(Windows) export BOOL GetThreadPriorityBoost( - HANDLE hThread, - PBOOL pDisablePriorityBoost); - -extern(Windows) export int GetThreadPriority( - HANDLE hThread); - -extern(Windows) export BOOL GetThreadTimes( - HANDLE hThread, - LPFILETIME lpCreationTime, - LPFILETIME lpExitTime, - LPFILETIME lpKernelTime, - LPFILETIME lpUserTime); - -extern(Windows) export VOID ExitThread( - DWORD dwExitCode); - -extern(Windows) export BOOL TerminateThread( - HANDLE hThread, - DWORD dwExitCode); - -extern(Windows) export BOOL GetExitCodeThread( - HANDLE hThread, - LPDWORD lpExitCode); - -extern(Windows) export BOOL GetThreadSelectorEntry( - HANDLE hThread, - DWORD dwSelector, - LPLDT_ENTRY lpSelectorEntry); - -extern(Windows) export EXECUTION_STATE SetThreadExecutionState( - EXECUTION_STATE esFlags); - -extern(Windows) export DWORD GetLastError(); - -extern(Windows) export VOID SetLastError( - DWORD dwErrCode); - -// #if !defined(RC_INVOKED) // RC warns because "WINBASE_DECLARE_RESTORE_LAST_ERROR" is a bit long. - -// #if defined(WINBASE_DECLARE_RESTORE_LAST_ERROR) - -// ... - -// ... -// #... -// #... -// #... - -// #endif -// #endif - -bit HasOverlappedIoCompleted(LPOVERLAPPED lpOverlapped){ return (*lpOverlapped).Internal != STATUS_PENDING; } - -extern(Windows) export BOOL GetOverlappedResult( - HANDLE hFile, - LPOVERLAPPED lpOverlapped, - LPDWORD lpNumberOfBytesTransferred, - BOOL bWait); - -extern(Windows) export HANDLE CreateIoCompletionPort( - HANDLE FileHandle, - HANDLE ExistingCompletionPort, - ULONG_PTR CompletionKey, - DWORD NumberOfConcurrentThreads); - -extern(Windows) export BOOL GetQueuedCompletionStatus( - HANDLE CompletionPort, - LPDWORD lpNumberOfBytesTransferred, - PULONG_PTR lpCompletionKey, - LPOVERLAPPED *lpOverlapped, - DWORD dwMilliseconds); - -extern(Windows) export BOOL PostQueuedCompletionStatus( - HANDLE CompletionPort, - DWORD dwNumberOfBytesTransferred, - ULONG_PTR dwCompletionKey, - LPOVERLAPPED lpOverlapped); - -enum : uint { SEM_FAILCRITICALERRORS = 0x0001 } -enum : uint { SEM_NOGPFAULTERRORBOX = 0x0002 } -enum : uint { SEM_NOALIGNMENTFAULTEXCEPT = 0x0004 } -enum : uint { SEM_NOOPENFILEERRORBOX = 0x8000 } - -extern(Windows) export UINT SetErrorMode( - UINT uMode); - -extern(Windows) export BOOL ReadProcessMemory( - HANDLE hProcess, - LPCVOID lpBaseAddress, - LPVOID lpBuffer, - SIZE_T nSize, - SIZE_T * lpNumberOfBytesRead); - -extern(Windows) export BOOL WriteProcessMemory( - HANDLE hProcess, - LPVOID lpBaseAddress, - LPCVOID lpBuffer, - SIZE_T nSize, - SIZE_T * lpNumberOfBytesWritten); - -// #if !defined(MIDL_PASS) -extern(Windows) export BOOL GetThreadContext( - HANDLE hThread, - LPCONTEXT lpContext); - -extern(Windows) export BOOL SetThreadContext( - HANDLE hThread, - CONTEXT *lpContext); -// #endif - -extern(Windows) export DWORD SuspendThread( - HANDLE hThread); - -extern(Windows) export DWORD ResumeThread( - HANDLE hThread); - -// #if(_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) - -// ... - -// ... - -// #endif /* _WIN32_WINNT >= 0x0400 || _WIN32_WINDOWS > 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) -extern(Windows) export BOOL IsDebuggerPresent(); -// #endif - -extern(Windows) export VOID DebugBreak(); - -extern(Windows) export BOOL WaitForDebugEvent( - LPDEBUG_EVENT lpDebugEvent, - DWORD dwMilliseconds); - -extern(Windows) export BOOL ContinueDebugEvent( - DWORD dwProcessId, - DWORD dwThreadId, - DWORD dwContinueStatus); - -extern(Windows) export BOOL DebugActiveProcess( - DWORD dwProcessId); - -extern(Windows) export BOOL DebugActiveProcessStop( - DWORD dwProcessId); - -extern(Windows) export BOOL DebugSetProcessKillOnExit( - BOOL KillOnExit); - -extern(Windows) export BOOL DebugBreakProcess( - HANDLE Process); - -extern(Windows) export VOID InitializeCriticalSection( - LPCRITICAL_SECTION lpCriticalSection); - -extern(Windows) export VOID EnterCriticalSection( - LPCRITICAL_SECTION lpCriticalSection); - -extern(Windows) export VOID LeaveCriticalSection( - LPCRITICAL_SECTION lpCriticalSection); - -// #if (_WIN32_WINNT >= 0x0403) -extern(Windows) export BOOL InitializeCriticalSectionAndSpinCount( - LPCRITICAL_SECTION lpCriticalSection, - DWORD dwSpinCount); - -extern(Windows) export DWORD SetCriticalSectionSpinCount( - LPCRITICAL_SECTION lpCriticalSection, - DWORD dwSpinCount); -// #endif - -// #if(_WIN32_WINNT >= 0x0400) -extern(Windows) export BOOL TryEnterCriticalSection( - LPCRITICAL_SECTION lpCriticalSection); -// #endif /* _WIN32_WINNT >= 0x0400 */ - -extern(Windows) export VOID DeleteCriticalSection( - LPCRITICAL_SECTION lpCriticalSection); - -extern(Windows) export BOOL SetEvent( - HANDLE hEvent); - -extern(Windows) export BOOL ResetEvent( - HANDLE hEvent); - -extern(Windows) export BOOL PulseEvent( - HANDLE hEvent); - -extern(Windows) export BOOL ReleaseSemaphore( - HANDLE hSemaphore, - LONG lReleaseCount, - LPLONG lpPreviousCount); - -extern(Windows) export BOOL ReleaseMutex( - HANDLE hMutex); - -extern(Windows) export DWORD WaitForSingleObject( - HANDLE hHandle, - DWORD dwMilliseconds); - -extern(Windows) export DWORD WaitForMultipleObjects( - DWORD nCount, - HANDLE *lpHandles, - BOOL bWaitAll, - DWORD dwMilliseconds); - -extern(Windows) export VOID Sleep( - DWORD dwMilliseconds); - -extern(Windows) export HGLOBAL LoadResource( - HMODULE hModule, - HRSRC hResInfo); - -extern(Windows) export DWORD SizeofResource( - HMODULE hModule, - HRSRC hResInfo); - -extern(Windows) export ATOM GlobalDeleteAtom( - ATOM nAtom); - -extern(Windows) export BOOL InitAtomTable( - DWORD nSize); - -extern(Windows) export ATOM DeleteAtom( - ATOM nAtom); - -extern(Windows) export UINT SetHandleCount( - UINT uNumber); - -extern(Windows) export DWORD GetLogicalDrives(); - -extern(Windows) export BOOL LockFile( - HANDLE hFile, - DWORD dwFileOffsetLow, - DWORD dwFileOffsetHigh, - DWORD nNumberOfBytesToLockLow, - DWORD nNumberOfBytesToLockHigh); - -extern(Windows) export BOOL UnlockFile( - HANDLE hFile, - DWORD dwFileOffsetLow, - DWORD dwFileOffsetHigh, - DWORD nNumberOfBytesToUnlockLow, - DWORD nNumberOfBytesToUnlockHigh); - -extern(Windows) export BOOL LockFileEx( - HANDLE hFile, - DWORD dwFlags, - DWORD dwReserved, - DWORD nNumberOfBytesToLockLow, - DWORD nNumberOfBytesToLockHigh, - LPOVERLAPPED lpOverlapped); - -enum : uint { LOCKFILE_FAIL_IMMEDIATELY = 0x00000001 } -enum : uint { LOCKFILE_EXCLUSIVE_LOCK = 0x00000002 } - -extern(Windows) export BOOL UnlockFileEx( - HANDLE hFile, - DWORD dwReserved, - DWORD nNumberOfBytesToUnlockLow, - DWORD nNumberOfBytesToUnlockHigh, - LPOVERLAPPED lpOverlapped); - -struct _BY_HANDLE_FILE_INFORMATION { - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD dwVolumeSerialNumber; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; - DWORD nNumberOfLinks; - DWORD nFileIndexHigh; - DWORD nFileIndexLow; -} -alias _BY_HANDLE_FILE_INFORMATION BY_HANDLE_FILE_INFORMATION; -alias _BY_HANDLE_FILE_INFORMATION* PBY_HANDLE_FILE_INFORMATION; -alias _BY_HANDLE_FILE_INFORMATION* LPBY_HANDLE_FILE_INFORMATION; - -extern(Windows) export BOOL GetFileInformationByHandle( - HANDLE hFile, - LPBY_HANDLE_FILE_INFORMATION lpFileInformation); - -extern(Windows) export DWORD GetFileType( - HANDLE hFile); - -extern(Windows) export DWORD GetFileSize( - HANDLE hFile, - LPDWORD lpFileSizeHigh); - -extern(Windows) export BOOL GetFileSizeEx( - HANDLE hFile, - PLARGE_INTEGER lpFileSize); - -extern(Windows) export HANDLE GetStdHandle( - DWORD nStdHandle); - -extern(Windows) export BOOL SetStdHandle( - DWORD nStdHandle, - HANDLE hHandle); - -extern(Windows) export BOOL WriteFile( - HANDLE hFile, - LPCVOID lpBuffer, - DWORD nNumberOfBytesToWrite, - LPDWORD lpNumberOfBytesWritten, - LPOVERLAPPED lpOverlapped); - -extern(Windows) export BOOL ReadFile( - HANDLE hFile, - LPVOID lpBuffer, - DWORD nNumberOfBytesToRead, - LPDWORD lpNumberOfBytesRead, - LPOVERLAPPED lpOverlapped); - -extern(Windows) export BOOL FlushFileBuffers( - HANDLE hFile); - -extern(Windows) export BOOL DeviceIoControl( - HANDLE hDevice, - DWORD dwIoControlCode, - LPVOID lpInBuffer, - DWORD nInBufferSize, - LPVOID lpOutBuffer, - DWORD nOutBufferSize, - LPDWORD lpBytesReturned, - LPOVERLAPPED lpOverlapped); - -extern(Windows) export BOOL RequestDeviceWakeup( - HANDLE hDevice); - -extern(Windows) export BOOL CancelDeviceWakeupRequest( - HANDLE hDevice); - -extern(Windows) export BOOL GetDevicePowerState( - HANDLE hDevice, - BOOL *pfOn); - -extern(Windows) export BOOL SetMessageWaitingIndicator( - HANDLE hMsgIndicator, - ULONG ulMsgCount); - -extern(Windows) export BOOL SetEndOfFile( - HANDLE hFile); - -extern(Windows) export DWORD SetFilePointer( - HANDLE hFile, - LONG lDistanceToMove, - PLONG lpDistanceToMoveHigh, - DWORD dwMoveMethod); - -extern(Windows) export BOOL SetFilePointerEx( - HANDLE hFile, - LARGE_INTEGER liDistanceToMove, - PLARGE_INTEGER lpNewFilePointer, - DWORD dwMoveMethod); - -extern(Windows) export BOOL FindClose( - HANDLE hFindFile); - -extern(Windows) export BOOL GetFileTime( - HANDLE hFile, - LPFILETIME lpCreationTime, - LPFILETIME lpLastAccessTime, - LPFILETIME lpLastWriteTime); - -extern(Windows) export BOOL SetFileTime( - HANDLE hFile, - FILETIME *lpCreationTime, - FILETIME *lpLastAccessTime, - FILETIME *lpLastWriteTime); - -extern(Windows) export BOOL SetFileValidData( - HANDLE hFile, - LONGLONG ValidDataLength); - -extern(Windows) export BOOL SetFileShortNameA( - HANDLE hFile, - LPCSTR lpShortName); -extern(Windows) export BOOL SetFileShortNameW( - HANDLE hFile, - LPCWSTR lpShortName); -// #ifdef UNICODE -// #... -// #else -alias SetFileShortNameA SetFileShortName; -// #endif // !UNICODE - -extern(Windows) export BOOL CloseHandle( - HANDLE hObject); - -extern(Windows) export BOOL DuplicateHandle( - HANDLE hSourceProcessHandle, - HANDLE hSourceHandle, - HANDLE hTargetProcessHandle, - LPHANDLE lpTargetHandle, - DWORD dwDesiredAccess, - BOOL bInheritHandle, - DWORD dwOptions); - -extern(Windows) export BOOL GetHandleInformation( - HANDLE hObject, - LPDWORD lpdwFlags); - -extern(Windows) export BOOL SetHandleInformation( - HANDLE hObject, - DWORD dwMask, - DWORD dwFlags); - -enum : uint { HANDLE_FLAG_INHERIT = 0x00000001 } -enum : uint { HANDLE_FLAG_PROTECT_FROM_CLOSE = 0x00000002 } - -enum : uint { HINSTANCE_ERROR = 32 } - -extern(Windows) export DWORD LoadModule( - LPCSTR lpModuleName, - LPVOID lpParameterBlock); - -extern(Windows) export UINT WinExec( - LPCSTR lpCmdLine, - UINT uCmdShow); - -extern(Windows) export BOOL ClearCommBreak( - HANDLE hFile); - -extern(Windows) export BOOL ClearCommError( - HANDLE hFile, - LPDWORD lpErrors, - LPCOMSTAT lpStat); - -extern(Windows) export BOOL SetupComm( - HANDLE hFile, - DWORD dwInQueue, - DWORD dwOutQueue); - -extern(Windows) export BOOL EscapeCommFunction( - HANDLE hFile, - DWORD dwFunc); - -extern(Windows) export BOOL GetCommConfig( - HANDLE hCommDev, - LPCOMMCONFIG lpCC, - LPDWORD lpdwSize); - -extern(Windows) export BOOL GetCommMask( - HANDLE hFile, - LPDWORD lpEvtMask); - -extern(Windows) export BOOL GetCommProperties( - HANDLE hFile, - LPCOMMPROP lpCommProp); - -extern(Windows) export BOOL GetCommModemStatus( - HANDLE hFile, - LPDWORD lpModemStat); - -extern(Windows) export BOOL GetCommState( - HANDLE hFile, - LPDCB lpDCB); - -extern(Windows) export BOOL GetCommTimeouts( - HANDLE hFile, - LPCOMMTIMEOUTS lpCommTimeouts); - -extern(Windows) export BOOL PurgeComm( - HANDLE hFile, - DWORD dwFlags); - -extern(Windows) export BOOL SetCommBreak( - HANDLE hFile); - -extern(Windows) export BOOL SetCommConfig( - HANDLE hCommDev, - LPCOMMCONFIG lpCC, - DWORD dwSize); - -extern(Windows) export BOOL SetCommMask( - HANDLE hFile, - DWORD dwEvtMask); - -extern(Windows) export BOOL SetCommState( - HANDLE hFile, - LPDCB lpDCB); - -extern(Windows) export BOOL SetCommTimeouts( - HANDLE hFile, - LPCOMMTIMEOUTS lpCommTimeouts); - -extern(Windows) export BOOL TransmitCommChar( - HANDLE hFile, - char cChar); - -extern(Windows) export BOOL WaitCommEvent( - HANDLE hFile, - LPDWORD lpEvtMask, - LPOVERLAPPED lpOverlapped); - -extern(Windows) export DWORD SetTapePosition( - HANDLE hDevice, - DWORD dwPositionMethod, - DWORD dwPartition, - DWORD dwOffsetLow, - DWORD dwOffsetHigh, - BOOL bImmediate); - -extern(Windows) export DWORD GetTapePosition( - HANDLE hDevice, - DWORD dwPositionType, - LPDWORD lpdwPartition, - LPDWORD lpdwOffsetLow, - LPDWORD lpdwOffsetHigh); - -extern(Windows) export DWORD PrepareTape( - HANDLE hDevice, - DWORD dwOperation, - BOOL bImmediate); - -extern(Windows) export DWORD EraseTape( - HANDLE hDevice, - DWORD dwEraseType, - BOOL bImmediate); - -extern(Windows) export DWORD CreateTapePartition( - HANDLE hDevice, - DWORD dwPartitionMethod, - DWORD dwCount, - DWORD dwSize); - -extern(Windows) export DWORD WriteTapemark( - HANDLE hDevice, - DWORD dwTapemarkType, - DWORD dwTapemarkCount, - BOOL bImmediate); - -extern(Windows) export DWORD GetTapeStatus( - HANDLE hDevice); - -extern(Windows) export DWORD GetTapeParameters( - HANDLE hDevice, - DWORD dwOperation, - LPDWORD lpdwSize, - LPVOID lpTapeInformation); - -enum : uint { GET_TAPE_MEDIA_INFORMATION = 0 } -enum : uint { GET_TAPE_DRIVE_INFORMATION = 1 } - -extern(Windows) export DWORD SetTapeParameters( - HANDLE hDevice, - DWORD dwOperation, - LPVOID lpTapeInformation); - -enum : uint { SET_TAPE_MEDIA_INFORMATION = 0 } -enum : uint { SET_TAPE_DRIVE_INFORMATION = 1 } - -extern(Windows) export BOOL Beep( - DWORD dwFreq, - DWORD dwDuration); - -extern(Windows) export int MulDiv( - int nNumber, - int nNumerator, - int nDenominator); - -extern(Windows) export VOID GetSystemTime( - LPSYSTEMTIME lpSystemTime); - -extern(Windows) export VOID GetSystemTimeAsFileTime( - LPFILETIME lpSystemTimeAsFileTime); - -extern(Windows) export BOOL SetSystemTime( - SYSTEMTIME *lpSystemTime); - -extern(Windows) export VOID GetLocalTime( - LPSYSTEMTIME lpSystemTime); - -extern(Windows) export BOOL SetLocalTime( - SYSTEMTIME *lpSystemTime); - -extern(Windows) export VOID GetSystemInfo( - LPSYSTEM_INFO lpSystemInfo); - -// #if _WIN32_WINNT >= 0x0501 -extern(Windows) export VOID GetNativeSystemInfo( - LPSYSTEM_INFO lpSystemInfo); -// #endif - -extern(Windows) export BOOL IsProcessorFeaturePresent( - DWORD ProcessorFeature); - -struct _TIME_ZONE_INFORMATION { - LONG Bias; - WCHAR StandardName[ 32 ]; - SYSTEMTIME StandardDate; - LONG StandardBias; - WCHAR DaylightName[ 32 ]; - SYSTEMTIME DaylightDate; - LONG DaylightBias; -} -alias _TIME_ZONE_INFORMATION TIME_ZONE_INFORMATION; -alias _TIME_ZONE_INFORMATION* PTIME_ZONE_INFORMATION; -alias _TIME_ZONE_INFORMATION* LPTIME_ZONE_INFORMATION; - -extern(Windows) export BOOL SystemTimeToTzSpecificLocalTime( - LPTIME_ZONE_INFORMATION lpTimeZoneInformation, - LPSYSTEMTIME lpUniversalTime, - LPSYSTEMTIME lpLocalTime); - -extern(Windows) export BOOL TzSpecificLocalTimeToSystemTime( - LPTIME_ZONE_INFORMATION lpTimeZoneInformation, - LPSYSTEMTIME lpLocalTime, - LPSYSTEMTIME lpUniversalTime); - -extern(Windows) export DWORD GetTimeZoneInformation( - LPTIME_ZONE_INFORMATION lpTimeZoneInformation); - -extern(Windows) export BOOL SetTimeZoneInformation( - TIME_ZONE_INFORMATION *lpTimeZoneInformation); - -extern(Windows) export BOOL SystemTimeToFileTime( - SYSTEMTIME *lpSystemTime, - LPFILETIME lpFileTime); - -extern(Windows) export BOOL FileTimeToLocalFileTime( - FILETIME *lpFileTime, - LPFILETIME lpLocalFileTime); - -extern(Windows) export BOOL LocalFileTimeToFileTime( - FILETIME *lpLocalFileTime, - LPFILETIME lpFileTime); - -extern(Windows) export BOOL FileTimeToSystemTime( - FILETIME *lpFileTime, - LPSYSTEMTIME lpSystemTime); - -extern(Windows) export LONG CompareFileTime( - FILETIME *lpFileTime1, - FILETIME *lpFileTime2); - -extern(Windows) export BOOL FileTimeToDosDateTime( - FILETIME *lpFileTime, - LPWORD lpFatDate, - LPWORD lpFatTime); - -extern(Windows) export BOOL DosDateTimeToFileTime( - WORD wFatDate, - WORD wFatTime, - LPFILETIME lpFileTime); - -extern(Windows) export DWORD GetTickCount(); - -extern(Windows) export BOOL SetSystemTimeAdjustment( - DWORD dwTimeAdjustment, - BOOL bTimeAdjustmentDisabled); - -extern(Windows) export BOOL GetSystemTimeAdjustment( - PDWORD lpTimeAdjustment, - PDWORD lpTimeIncrement, - PBOOL lpTimeAdjustmentDisabled); - -// #if !defined(MIDL_PASS) -extern(Windows) export DWORD FormatMessageA( - DWORD dwFlags, - LPCVOID lpSource, - DWORD dwMessageId, - DWORD dwLanguageId, - LPSTR lpBuffer, - DWORD nSize, - va_list *Arguments); -extern(Windows) export DWORD FormatMessageW( - DWORD dwFlags, - LPCVOID lpSource, - DWORD dwMessageId, - DWORD dwLanguageId, - LPWSTR lpBuffer, - DWORD nSize, - va_list *Arguments); -// #ifdef UNICODE -// #... -// #else -alias FormatMessageA FormatMessage; -// #endif // !UNICODE -// #endif - -enum : uint { FORMAT_MESSAGE_ALLOCATE_BUFFER = 0x00000100 } -enum : uint { FORMAT_MESSAGE_IGNORE_INSERTS = 0x00000200 } -enum : uint { FORMAT_MESSAGE_FROM_STRING = 0x00000400 } -enum : uint { FORMAT_MESSAGE_FROM_HMODULE = 0x00000800 } -enum : uint { FORMAT_MESSAGE_FROM_SYSTEM = 0x00001000 } -enum : uint { FORMAT_MESSAGE_ARGUMENT_ARRAY = 0x00002000 } -enum : uint { FORMAT_MESSAGE_MAX_WIDTH_MASK = 0x000000FF } - -extern(Windows) export BOOL CreatePipe( - PHANDLE hReadPipe, - PHANDLE hWritePipe, - LPSECURITY_ATTRIBUTES lpPipeAttributes, - DWORD nSize); - -extern(Windows) export BOOL ConnectNamedPipe( - HANDLE hNamedPipe, - LPOVERLAPPED lpOverlapped); - -extern(Windows) export BOOL DisconnectNamedPipe( - HANDLE hNamedPipe); - -extern(Windows) export BOOL SetNamedPipeHandleState( - HANDLE hNamedPipe, - LPDWORD lpMode, - LPDWORD lpMaxCollectionCount, - LPDWORD lpCollectDataTimeout); - -extern(Windows) export BOOL GetNamedPipeInfo( - HANDLE hNamedPipe, - LPDWORD lpFlags, - LPDWORD lpOutBufferSize, - LPDWORD lpInBufferSize, - LPDWORD lpMaxInstances); - -extern(Windows) export BOOL PeekNamedPipe( - HANDLE hNamedPipe, - LPVOID lpBuffer, - DWORD nBufferSize, - LPDWORD lpBytesRead, - LPDWORD lpTotalBytesAvail, - LPDWORD lpBytesLeftThisMessage); - -extern(Windows) export BOOL TransactNamedPipe( - HANDLE hNamedPipe, - LPVOID lpInBuffer, - DWORD nInBufferSize, - LPVOID lpOutBuffer, - DWORD nOutBufferSize, - LPDWORD lpBytesRead, - LPOVERLAPPED lpOverlapped); - -extern(Windows) export HANDLE CreateMailslotA( - LPCSTR lpName, - DWORD nMaxMessageSize, - DWORD lReadTimeout, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -extern(Windows) export HANDLE CreateMailslotW( - LPCWSTR lpName, - DWORD nMaxMessageSize, - DWORD lReadTimeout, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -// #ifdef UNICODE -// #... -// #else -alias CreateMailslotA CreateMailslot; -// #endif // !UNICODE - -extern(Windows) export BOOL GetMailslotInfo( - HANDLE hMailslot, - LPDWORD lpMaxMessageSize, - LPDWORD lpNextSize, - LPDWORD lpMessageCount, - LPDWORD lpReadTimeout); - -extern(Windows) export BOOL SetMailslotInfo( - HANDLE hMailslot, - DWORD lReadTimeout); - -extern(Windows) export LPVOID MapViewOfFile( - HANDLE hFileMappingObject, - DWORD dwDesiredAccess, - DWORD dwFileOffsetHigh, - DWORD dwFileOffsetLow, - SIZE_T dwNumberOfBytesToMap); - -extern(Windows) export BOOL FlushViewOfFile( - LPCVOID lpBaseAddress, - SIZE_T dwNumberOfBytesToFlush); - -extern(Windows) export BOOL UnmapViewOfFile( - LPCVOID lpBaseAddress); - -extern(Windows) export BOOL EncryptFileA( - LPCSTR lpFileName); -extern(Windows) export BOOL EncryptFileW( - LPCWSTR lpFileName); -// #ifdef UNICODE -// #... -// #else -alias EncryptFileA EncryptFile; -// #endif // !UNICODE - -extern(Windows) export BOOL DecryptFileA( - LPCSTR lpFileName, - DWORD dwReserved); -extern(Windows) export BOOL DecryptFileW( - LPCWSTR lpFileName, - DWORD dwReserved); -// #ifdef UNICODE -// #... -// #else -alias DecryptFileA DecryptFile; -// #endif // !UNICODE - -enum : uint { FILE_ENCRYPTABLE = 0 } -enum : uint { FILE_IS_ENCRYPTED = 1 } -enum : uint { FILE_SYSTEM_ATTR = 2 } -enum : uint { FILE_ROOT_DIR = 3 } -enum : uint { FILE_SYSTEM_DIR = 4 } -enum : uint { FILE_UNKNOWN = 5 } -enum : uint { FILE_SYSTEM_NOT_SUPPORT = 6 } -enum : uint { FILE_USER_DISALLOWED = 7 } -enum : uint { FILE_READ_ONLY = 8 } -enum : uint { FILE_DIR_DISALLOWED = 9 } - -extern(Windows) export BOOL FileEncryptionStatusA( - LPCSTR lpFileName, - LPDWORD lpStatus); -extern(Windows) export BOOL FileEncryptionStatusW( - LPCWSTR lpFileName, - LPDWORD lpStatus); -// #ifdef UNICODE -// #... -// #else -alias FileEncryptionStatusA FileEncryptionStatus; -// #endif // !UNICODE - -enum : uint { EFS_USE_RECOVERY_KEYS = 0x1 } - -extern(Windows) alias DWORD function( PBYTE pbData, PVOID pvCallbackContext, ULONG ulLength ) PFE_EXPORT_FUNC; - -extern(Windows) alias DWORD function( PBYTE pbData, PVOID pvCallbackContext, PULONG ulLength ) PFE_IMPORT_FUNC; - -enum : uint { CREATE_FOR_IMPORT = 1 } -enum : uint { CREATE_FOR_DIR = 2 } -enum : uint { OVERWRITE_HIDDEN = 4 } - -extern(Windows) export DWORD OpenEncryptedFileRawA( - LPCSTR lpFileName, - ULONG ulFlags, - PVOID * pvContext); -extern(Windows) export DWORD OpenEncryptedFileRawW( - LPCWSTR lpFileName, - ULONG ulFlags, - PVOID * pvContext); -// #ifdef UNICODE -// #... -// #else -alias OpenEncryptedFileRawA OpenEncryptedFileRaw; -// #endif // !UNICODE - -extern(Windows) export DWORD ReadEncryptedFileRaw( - PFE_EXPORT_FUNC pfExportCallback, - PVOID pvCallbackContext, - PVOID pvContext); - -extern(Windows) export DWORD WriteEncryptedFileRaw( - PFE_IMPORT_FUNC pfImportCallback, - PVOID pvCallbackContext, - PVOID pvContext); - -extern(Windows) export VOID CloseEncryptedFileRaw( - PVOID pvContext); - -extern(Windows) export int lstrcmpA( - LPCSTR lpString1, - LPCSTR lpString2); -extern(Windows) export int lstrcmpW( - LPCWSTR lpString1, - LPCWSTR lpString2); -// #ifdef UNICODE -// #... -// #else -alias lstrcmpA lstrcmp; -// #endif // !UNICODE - -extern(Windows) export int lstrcmpiA( - LPCSTR lpString1, - LPCSTR lpString2); -extern(Windows) export int lstrcmpiW( - LPCWSTR lpString1, - LPCWSTR lpString2); -// #ifdef UNICODE -// #... -// #else -alias lstrcmpiA lstrcmpi; -// #endif // !UNICODE - -extern(Windows) export LPSTR lstrcpynA( - LPSTR lpString1, - LPCSTR lpString2, - int iMaxLength); -extern(Windows) export LPWSTR lstrcpynW( - LPWSTR lpString1, - LPCWSTR lpString2, - int iMaxLength); -// #ifdef UNICODE -// #... -// #else -alias lstrcpynA lstrcpyn; -// #endif // !UNICODE - -extern(Windows) export LPSTR lstrcpyA( - LPSTR lpString1, - LPCSTR lpString2); -extern(Windows) export LPWSTR lstrcpyW( - LPWSTR lpString1, - LPCWSTR lpString2); -// #ifdef UNICODE -// #... -// #else -alias lstrcpyA lstrcpy; -// #endif // !UNICODE - -extern(Windows) export LPSTR lstrcatA( - LPSTR lpString1, - LPCSTR lpString2); -extern(Windows) export LPWSTR lstrcatW( - LPWSTR lpString1, - LPCWSTR lpString2); -// #ifdef UNICODE -// #... -// #else -alias lstrcatA lstrcat; -// #endif // !UNICODE - -extern(Windows) export int lstrlenA( - LPCSTR lpString); -extern(Windows) export int lstrlenW( - LPCWSTR lpString); -// #ifdef UNICODE -// #... -// #else -alias lstrlenA lstrlen; -// #endif // !UNICODE - -extern(Windows) export HFILE OpenFile( - LPCSTR lpFileName, - LPOFSTRUCT lpReOpenBuff, - UINT uStyle); - -extern(Windows) export HFILE _lopen( - LPCSTR lpPathName, - int iReadWrite); - -extern(Windows) export HFILE _lcreat( - LPCSTR lpPathName, - int iAttribute); - -extern(Windows) export UINT _lread( - HFILE hFile, - LPVOID lpBuffer, - UINT uBytes); - -extern(Windows) export UINT _lwrite( - HFILE hFile, - LPCSTR lpBuffer, - UINT uBytes); - -extern(Windows) export int _hread( - HFILE hFile, - LPVOID lpBuffer, - int lBytes); - -extern(Windows) export int _hwrite( - HFILE hFile, - LPCSTR lpBuffer, - int lBytes); - -extern(Windows) export HFILE _lclose( - HFILE hFile); - -extern(Windows) export LONG _llseek( - HFILE hFile, - LONG lOffset, - int iOrigin); - -extern(Windows) export BOOL IsTextUnicode( - VOID* lpBuffer, - int cb, - LPINT lpi); - -extern(Windows) export DWORD TlsAlloc(); - -enum : DWORD { TLS_OUT_OF_INDEXES = 0xFFFFFFFF } - -extern(Windows) export LPVOID TlsGetValue( - DWORD dwTlsIndex); - -extern(Windows) export BOOL TlsSetValue( - DWORD dwTlsIndex, - LPVOID lpTlsValue); - -extern(Windows) export BOOL TlsFree( - DWORD dwTlsIndex); - -extern(Windows) alias VOID function( DWORD dwErrorCode, DWORD dwNumberOfBytesTransfered, LPOVERLAPPED lpOverlapped ) LPOVERLAPPED_COMPLETION_ROUTINE; - -extern(Windows) export DWORD SleepEx( - DWORD dwMilliseconds, - BOOL bAlertable); - -extern(Windows) export DWORD WaitForSingleObjectEx( - HANDLE hHandle, - DWORD dwMilliseconds, - BOOL bAlertable); - -extern(Windows) export DWORD WaitForMultipleObjectsEx( - DWORD nCount, - HANDLE *lpHandles, - BOOL bWaitAll, - DWORD dwMilliseconds, - BOOL bAlertable); - -// #if(_WIN32_WINNT >= 0x0400) -extern(Windows) export DWORD SignalObjectAndWait( - HANDLE hObjectToSignal, - HANDLE hObjectToWaitOn, - DWORD dwMilliseconds, - BOOL bAlertable); -// #endif /* _WIN32_WINNT >= 0x0400 */ - -extern(Windows) export BOOL ReadFileEx( - HANDLE hFile, - LPVOID lpBuffer, - DWORD nNumberOfBytesToRead, - LPOVERLAPPED lpOverlapped, - LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); - -extern(Windows) export BOOL WriteFileEx( - HANDLE hFile, - LPCVOID lpBuffer, - DWORD nNumberOfBytesToWrite, - LPOVERLAPPED lpOverlapped, - LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); - -extern(Windows) export BOOL BackupRead( - HANDLE hFile, - LPBYTE lpBuffer, - DWORD nNumberOfBytesToRead, - LPDWORD lpNumberOfBytesRead, - BOOL bAbort, - BOOL bProcessSecurity, - LPVOID *lpContext); - -extern(Windows) export BOOL BackupSeek( - HANDLE hFile, - DWORD dwLowBytesToSeek, - DWORD dwHighBytesToSeek, - LPDWORD lpdwLowByteSeeked, - LPDWORD lpdwHighByteSeeked, - LPVOID *lpContext); - -extern(Windows) export BOOL BackupWrite( - HANDLE hFile, - LPBYTE lpBuffer, - DWORD nNumberOfBytesToWrite, - LPDWORD lpNumberOfBytesWritten, - BOOL bAbort, - BOOL bProcessSecurity, - LPVOID *lpContext); - -struct _WIN32_STREAM_ID { - DWORD dwStreamId ; - DWORD dwStreamAttributes ; - LARGE_INTEGER Size ; - DWORD dwStreamNameSize ; - WCHAR cStreamName[ ANYSIZE_ARRAY ] ; -} -alias _WIN32_STREAM_ID WIN32_STREAM_ID; -alias _WIN32_STREAM_ID* LPWIN32_STREAM_ID; - -enum : uint { BACKUP_INVALID = 0x00000000 } -enum : uint { BACKUP_DATA = 0x00000001 } -enum : uint { BACKUP_EA_DATA = 0x00000002 } -enum : uint { BACKUP_SECURITY_DATA = 0x00000003 } -enum : uint { BACKUP_ALTERNATE_DATA = 0x00000004 } -enum : uint { BACKUP_LINK = 0x00000005 } -enum : uint { BACKUP_PROPERTY_DATA = 0x00000006 } -enum : uint { BACKUP_OBJECT_ID = 0x00000007 } -enum : uint { BACKUP_REPARSE_DATA = 0x00000008 } -enum : uint { BACKUP_SPARSE_BLOCK = 0x00000009 } - -enum : uint { STREAM_NORMAL_ATTRIBUTE = 0x00000000 } -enum : uint { STREAM_MODIFIED_WHEN_READ = 0x00000001 } -enum : uint { STREAM_CONTAINS_SECURITY = 0x00000002 } -enum : uint { STREAM_CONTAINS_PROPERTIES = 0x00000004 } -enum : uint { STREAM_SPARSE_ATTRIBUTE = 0x00000008 } - -extern(Windows) export BOOL ReadFileScatter( - HANDLE hFile, - FILE_SEGMENT_ELEMENT aSegmentArray[], - DWORD nNumberOfBytesToRead, - LPDWORD lpReserved, - LPOVERLAPPED lpOverlapped); - -extern(Windows) export BOOL WriteFileGather( - HANDLE hFile, - FILE_SEGMENT_ELEMENT aSegmentArray[], - DWORD nNumberOfBytesToWrite, - LPDWORD lpReserved, - LPOVERLAPPED lpOverlapped); - -enum : uint { STARTF_USESHOWWINDOW = 0x00000001 } -enum : uint { STARTF_USESIZE = 0x00000002 } -enum : uint { STARTF_USEPOSITION = 0x00000004 } -enum : uint { STARTF_USECOUNTCHARS = 0x00000008 } -enum : uint { STARTF_USEFILLATTRIBUTE = 0x00000010 } -enum : uint { STARTF_RUNFULLSCREEN = 0x00000020 } -enum : uint { STARTF_FORCEONFEEDBACK = 0x00000040 } -enum : uint { STARTF_FORCEOFFFEEDBACK = 0x00000080 } -enum : uint { STARTF_USESTDHANDLES = 0x00000100 } - -// #if(WINVER >= 0x0400) - -enum : uint { STARTF_USEHOTKEY = 0x00000200 } -// #endif /* WINVER >= 0x0400 */ - -struct _STARTUPINFOA { - DWORD cb; - LPSTR lpReserved; - LPSTR lpDesktop; - LPSTR lpTitle; - DWORD dwX; - DWORD dwY; - DWORD dwXSize; - DWORD dwYSize; - DWORD dwXCountChars; - DWORD dwYCountChars; - DWORD dwFillAttribute; - DWORD dwFlags; - WORD wShowWindow; - WORD cbReserved2; - LPBYTE lpReserved2; - HANDLE hStdInput; - HANDLE hStdOutput; - HANDLE hStdError; -} -alias _STARTUPINFOA STARTUPINFOA; -alias _STARTUPINFOA* LPSTARTUPINFOA; - -struct _STARTUPINFOW { - DWORD cb; - LPWSTR lpReserved; - LPWSTR lpDesktop; - LPWSTR lpTitle; - DWORD dwX; - DWORD dwY; - DWORD dwXSize; - DWORD dwYSize; - DWORD dwXCountChars; - DWORD dwYCountChars; - DWORD dwFillAttribute; - DWORD dwFlags; - WORD wShowWindow; - WORD cbReserved2; - LPBYTE lpReserved2; - HANDLE hStdInput; - HANDLE hStdOutput; - HANDLE hStdError; -} -alias _STARTUPINFOW STARTUPINFOW; -alias _STARTUPINFOW* LPSTARTUPINFOW; - -// #ifdef UNICODE -// ... -// #else -alias STARTUPINFOA STARTUPINFO; -alias LPSTARTUPINFOA LPSTARTUPINFO; -// #endif // UNICODE - -enum : uint { SHUTDOWN_NORETRY = 0x00000001 } - -struct _WIN32_FIND_DATAA { - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; - DWORD dwReserved0; - DWORD dwReserved1; - CHAR cFileName[ MAX_PATH ]; - CHAR cAlternateFileName[ 14 ]; -// #ifdef _MAC -// ... -// #endif -} -alias _WIN32_FIND_DATAA WIN32_FIND_DATAA; -alias _WIN32_FIND_DATAA* PWIN32_FIND_DATAA; -alias _WIN32_FIND_DATAA* LPWIN32_FIND_DATAA; - -struct _WIN32_FIND_DATAW { - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; - DWORD dwReserved0; - DWORD dwReserved1; - WCHAR cFileName[ MAX_PATH ]; - WCHAR cAlternateFileName[ 14 ]; -// #ifdef _MAC -// ... -// #endif -} -alias _WIN32_FIND_DATAW WIN32_FIND_DATAW; -alias _WIN32_FIND_DATAW* PWIN32_FIND_DATAW; -alias _WIN32_FIND_DATAW* LPWIN32_FIND_DATAW; - -// #ifdef UNICODE -// ... -// #else -alias WIN32_FIND_DATAA WIN32_FIND_DATA; -alias PWIN32_FIND_DATAA PWIN32_FIND_DATA; -alias LPWIN32_FIND_DATAA LPWIN32_FIND_DATA; -// #endif // UNICODE - -struct _WIN32_FILE_ATTRIBUTE_DATA { - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; -} -alias _WIN32_FILE_ATTRIBUTE_DATA WIN32_FILE_ATTRIBUTE_DATA; -alias _WIN32_FILE_ATTRIBUTE_DATA* LPWIN32_FILE_ATTRIBUTE_DATA; - -extern(Windows) export HANDLE CreateMutexA( - LPSECURITY_ATTRIBUTES lpMutexAttributes, - BOOL bInitialOwner, - LPCSTR lpName); -extern(Windows) export HANDLE CreateMutexW( - LPSECURITY_ATTRIBUTES lpMutexAttributes, - BOOL bInitialOwner, - LPCWSTR lpName); -// #ifdef UNICODE -// #... -// #else -alias CreateMutexA CreateMutex; -// #endif // !UNICODE - -extern(Windows) export HANDLE OpenMutexA( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCSTR lpName); -extern(Windows) export HANDLE OpenMutexW( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCWSTR lpName); -// #ifdef UNICODE -// #... -// #else -alias OpenMutexA OpenMutex; -// #endif // !UNICODE - -extern(Windows) export HANDLE CreateEventA( - LPSECURITY_ATTRIBUTES lpEventAttributes, - BOOL bManualReset, - BOOL bInitialState, - LPCSTR lpName); -extern(Windows) export HANDLE CreateEventW( - LPSECURITY_ATTRIBUTES lpEventAttributes, - BOOL bManualReset, - BOOL bInitialState, - LPCWSTR lpName); -// #ifdef UNICODE -// #... -// #else -alias CreateEventA CreateEvent; -// #endif // !UNICODE - -extern(Windows) export HANDLE OpenEventA( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCSTR lpName); -extern(Windows) export HANDLE OpenEventW( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCWSTR lpName); -// #ifdef UNICODE -// #... -// #else -alias OpenEventA OpenEvent; -// #endif // !UNICODE - -extern(Windows) export HANDLE CreateSemaphoreA( - LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, - LONG lInitialCount, - LONG lMaximumCount, - LPCSTR lpName); -extern(Windows) export HANDLE CreateSemaphoreW( - LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, - LONG lInitialCount, - LONG lMaximumCount, - LPCWSTR lpName); -// #ifdef UNICODE -// #... -// #else -alias CreateSemaphoreA CreateSemaphore; -// #endif // !UNICODE - -extern(Windows) export HANDLE OpenSemaphoreA( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCSTR lpName); -extern(Windows) export HANDLE OpenSemaphoreW( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCWSTR lpName); -// #ifdef UNICODE -// #... -// #else -alias OpenSemaphoreA OpenSemaphore; -// #endif // !UNICODE - -// #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) -extern(Windows) alias VOID function( LPVOID lpArgToCompletionRoutine, DWORD dwTimerLowValue, DWORD dwTimerHighValue ) PTIMERAPCROUTINE; - -extern(Windows) export HANDLE CreateWaitableTimerA( - LPSECURITY_ATTRIBUTES lpTimerAttributes, - BOOL bManualReset, - LPCSTR lpTimerName); -extern(Windows) export HANDLE CreateWaitableTimerW( - LPSECURITY_ATTRIBUTES lpTimerAttributes, - BOOL bManualReset, - LPCWSTR lpTimerName); -// #ifdef UNICODE -// #... -// #else -alias CreateWaitableTimerA CreateWaitableTimer; -// #endif // !UNICODE - -extern(Windows) export HANDLE OpenWaitableTimerA( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCSTR lpTimerName); -extern(Windows) export HANDLE OpenWaitableTimerW( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCWSTR lpTimerName); -// #ifdef UNICODE -// #... -// #else -alias OpenWaitableTimerA OpenWaitableTimer; -// #endif // !UNICODE - -extern(Windows) export BOOL SetWaitableTimer( - HANDLE hTimer, - LARGE_INTEGER *lpDueTime, - LONG lPeriod, - PTIMERAPCROUTINE pfnCompletionRoutine, - LPVOID lpArgToCompletionRoutine, - BOOL fResume); - -extern(Windows) export BOOL CancelWaitableTimer( - HANDLE hTimer); -// #endif /* (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) */ - -extern(Windows) export HANDLE CreateFileMappingA( - HANDLE hFile, - LPSECURITY_ATTRIBUTES lpFileMappingAttributes, - DWORD flProtect, - DWORD dwMaximumSizeHigh, - DWORD dwMaximumSizeLow, - LPCSTR lpName); -extern(Windows) export HANDLE CreateFileMappingW( - HANDLE hFile, - LPSECURITY_ATTRIBUTES lpFileMappingAttributes, - DWORD flProtect, - DWORD dwMaximumSizeHigh, - DWORD dwMaximumSizeLow, - LPCWSTR lpName); -// #ifdef UNICODE -// #... -// #else -alias CreateFileMappingA CreateFileMapping; -// #endif // !UNICODE - -extern(Windows) export HANDLE OpenFileMappingA( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCSTR lpName); -extern(Windows) export HANDLE OpenFileMappingW( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCWSTR lpName); -// #ifdef UNICODE -// #... -// #else -alias OpenFileMappingA OpenFileMapping; -// #endif // !UNICODE - -extern(Windows) export DWORD GetLogicalDriveStringsA( - DWORD nBufferLength, - LPSTR lpBuffer); -extern(Windows) export DWORD GetLogicalDriveStringsW( - DWORD nBufferLength, - LPWSTR lpBuffer); -// #ifdef UNICODE -// #... -// #else -alias GetLogicalDriveStringsA GetLogicalDriveStrings; -// #endif // !UNICODE - -// #if _WIN32_WINNT >= 0x0501 - -alias int _MEMORY_RESOURCE_NOTIFICATION_TYPE; -enum { - LowMemoryResourceNotification, - HighMemoryResourceNotification, -} -alias _MEMORY_RESOURCE_NOTIFICATION_TYPE MEMORY_RESOURCE_NOTIFICATION_TYPE; - -extern(Windows) export HANDLE CreateMemoryResourceNotification( - MEMORY_RESOURCE_NOTIFICATION_TYPE NotificationType); - -extern(Windows) export BOOL QueryMemoryResourceNotification( - HANDLE ResourceNotificationHandle, - PBOOL ResourceState); - -// #endif // _WIN32_WINNT >= 0x0501 - -extern(Windows) export HMODULE LoadLibraryA( - LPCSTR lpLibFileName); -extern(Windows) export HMODULE LoadLibraryW( - LPCWSTR lpLibFileName); -// #ifdef UNICODE -// #... -// #else -alias LoadLibraryA LoadLibrary; -// #endif // !UNICODE - -extern(Windows) export HMODULE LoadLibraryExA( - LPCSTR lpLibFileName, - HANDLE hFile, - DWORD dwFlags); -extern(Windows) export HMODULE LoadLibraryExW( - LPCWSTR lpLibFileName, - HANDLE hFile, - DWORD dwFlags); -// #ifdef UNICODE -// #... -// #else -alias LoadLibraryExA LoadLibraryEx; -// #endif // !UNICODE - -enum : uint { DONT_RESOLVE_DLL_REFERENCES = 0x00000001 } -enum : uint { LOAD_LIBRARY_AS_DATAFILE = 0x00000002 } -enum : uint { LOAD_WITH_ALTERED_SEARCH_PATH = 0x00000008 } -enum : uint { LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x00000010 } - -extern(Windows) export DWORD GetModuleFileNameA( - HMODULE hModule, - LPSTR lpFilename, - DWORD nSize); -extern(Windows) export DWORD GetModuleFileNameW( - HMODULE hModule, - LPWSTR lpFilename, - DWORD nSize); -// #ifdef UNICODE -// #... -// #else -alias GetModuleFileNameA GetModuleFileName; -// #endif // !UNICODE - -extern(Windows) export HMODULE GetModuleHandleA( - LPCSTR lpModuleName); -extern(Windows) export HMODULE GetModuleHandleW( - LPCWSTR lpModuleName); -// #ifdef UNICODE -// #... -// #else -alias GetModuleHandleA GetModuleHandle; -// #endif // !UNICODE - -// #if !defined(RC_INVOKED) -// #if _WIN32_WINNT > 0x0500 || defined(WINBASE_DECLARE_GET_MODULE_HANDLE_EX) || ISOLATION_AWARE_ENABLED - -enum : uint { GET_MODULE_HANDLE_EX_FLAG_PIN = 0x00000001 } -enum : uint { GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 0x00000002 } -enum : uint { GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 0x00000004 } - -extern(Windows) alias BOOL function( DWORD dwFlags, LPCSTR lpModuleName, HMODULE* phModule ) PGET_MODULE_HANDLE_EXA; -extern(Windows) alias BOOL function( DWORD dwFlags, LPCWSTR lpModuleName, HMODULE* phModule ) PGET_MODULE_HANDLE_EXW; -// #ifdef UNICODE -// #... -// #else -alias PGET_MODULE_HANDLE_EXA PGET_MODULE_HANDLE_EX; -// #endif // !UNICODE - -extern(Windows) export BOOL GetModuleHandleExA( - DWORD dwFlags, - LPCSTR lpModuleName, - HMODULE* phModule); -extern(Windows) export BOOL GetModuleHandleExW( - DWORD dwFlags, - LPCWSTR lpModuleName, - HMODULE* phModule); -// #ifdef UNICODE -// #... -// #else -alias GetModuleHandleExA GetModuleHandleEx; -// #endif // !UNICODE - -// #endif -// #endif - -extern(Windows) export BOOL CreateProcessA( - LPCSTR lpApplicationName, - LPSTR lpCommandLine, - LPSECURITY_ATTRIBUTES lpProcessAttributes, - LPSECURITY_ATTRIBUTES lpThreadAttributes, - BOOL bInheritHandles, - DWORD dwCreationFlags, - LPVOID lpEnvironment, - LPCSTR lpCurrentDirectory, - LPSTARTUPINFOA lpStartupInfo, - LPPROCESS_INFORMATION lpProcessInformation); -extern(Windows) export BOOL CreateProcessW( - LPCWSTR lpApplicationName, - LPWSTR lpCommandLine, - LPSECURITY_ATTRIBUTES lpProcessAttributes, - LPSECURITY_ATTRIBUTES lpThreadAttributes, - BOOL bInheritHandles, - DWORD dwCreationFlags, - LPVOID lpEnvironment, - LPCWSTR lpCurrentDirectory, - LPSTARTUPINFOW lpStartupInfo, - LPPROCESS_INFORMATION lpProcessInformation); -// #ifdef UNICODE -// #... -// #else -alias CreateProcessA CreateProcess; -// #endif // !UNICODE - -extern(Windows) export BOOL SetProcessShutdownParameters( - DWORD dwLevel, - DWORD dwFlags); - -extern(Windows) export BOOL GetProcessShutdownParameters( - LPDWORD lpdwLevel, - LPDWORD lpdwFlags); - -extern(Windows) export DWORD GetProcessVersion( - DWORD ProcessId); - -extern(Windows) export VOID FatalAppExitA( - UINT uAction, - LPCSTR lpMessageText); -extern(Windows) export VOID FatalAppExitW( - UINT uAction, - LPCWSTR lpMessageText); -// #ifdef UNICODE -// #... -// #else -alias FatalAppExitA FatalAppExit; -// #endif // !UNICODE - -extern(Windows) export VOID GetStartupInfoA( - LPSTARTUPINFOA lpStartupInfo); -extern(Windows) export VOID GetStartupInfoW( - LPSTARTUPINFOW lpStartupInfo); -// #ifdef UNICODE -// #... -// #else -alias GetStartupInfoA GetStartupInfo; -// #endif // !UNICODE - -extern(Windows) export LPSTR GetCommandLineA(); -extern(Windows) export LPWSTR GetCommandLineW(); -// #ifdef UNICODE -// #... -// #else -alias GetCommandLineA GetCommandLine; -// #endif // !UNICODE - -extern(Windows) export DWORD GetEnvironmentVariableA( - LPCSTR lpName, - LPSTR lpBuffer, - DWORD nSize); -extern(Windows) export DWORD GetEnvironmentVariableW( - LPCWSTR lpName, - LPWSTR lpBuffer, - DWORD nSize); -// #ifdef UNICODE -// #... -// #else -alias GetEnvironmentVariableA GetEnvironmentVariable; -// #endif // !UNICODE - -extern(Windows) export BOOL SetEnvironmentVariableA( - LPCSTR lpName, - LPCSTR lpValue); -extern(Windows) export BOOL SetEnvironmentVariableW( - LPCWSTR lpName, - LPCWSTR lpValue); -// #ifdef UNICODE -// #... -// #else -alias SetEnvironmentVariableA SetEnvironmentVariable; -// #endif // !UNICODE - -extern(Windows) export DWORD ExpandEnvironmentStringsA( - LPCSTR lpSrc, - LPSTR lpDst, - DWORD nSize); -extern(Windows) export DWORD ExpandEnvironmentStringsW( - LPCWSTR lpSrc, - LPWSTR lpDst, - DWORD nSize); -// #ifdef UNICODE -// #... -// #else -alias ExpandEnvironmentStringsA ExpandEnvironmentStrings; -// #endif // !UNICODE - -extern(Windows) export DWORD GetFirmwareEnvironmentVariableA( - LPCSTR lpName, - LPCSTR lpGuid, - PVOID pBuffer, - DWORD nSize); -extern(Windows) export DWORD GetFirmwareEnvironmentVariableW( - LPCWSTR lpName, - LPCWSTR lpGuid, - PVOID pBuffer, - DWORD nSize); -// #ifdef UNICODE -// #... -// #else -alias GetFirmwareEnvironmentVariableA GetFirmwareEnvironmentVariable; -// #endif // !UNICODE - -extern(Windows) export BOOL SetFirmwareEnvironmentVariableA( - LPCSTR lpName, - LPCSTR lpGuid, - PVOID pValue, - DWORD nSize); -extern(Windows) export BOOL SetFirmwareEnvironmentVariableW( - LPCWSTR lpName, - LPCWSTR lpGuid, - PVOID pValue, - DWORD nSize); -// #ifdef UNICODE -// #... -// #else -alias SetFirmwareEnvironmentVariableA SetFirmwareEnvironmentVariable; -// #endif // !UNICODE - -extern(Windows) export VOID OutputDebugStringA( - LPCSTR lpOutputString); -extern(Windows) export VOID OutputDebugStringW( - LPCWSTR lpOutputString); -// #ifdef UNICODE -// #... -// #else -alias OutputDebugStringA OutputDebugString; -// #endif // !UNICODE - -extern(Windows) export HRSRC FindResourceA( - HMODULE hModule, - LPCSTR lpName, - LPCSTR lpType); -extern(Windows) export HRSRC FindResourceW( - HMODULE hModule, - LPCWSTR lpName, - LPCWSTR lpType); -// #ifdef UNICODE -// #... -// #else -alias FindResourceA FindResource; -// #endif // !UNICODE - -extern(Windows) export HRSRC FindResourceExA( - HMODULE hModule, - LPCSTR lpType, - LPCSTR lpName, - WORD wLanguage); -extern(Windows) export HRSRC FindResourceExW( - HMODULE hModule, - LPCWSTR lpType, - LPCWSTR lpName, - WORD wLanguage); -// #ifdef UNICODE -// #... -// #else -alias FindResourceExA FindResourceEx; -// #endif // !UNICODE - -// #ifdef STRICT -extern(Windows) alias BOOL function(HMODULE hModule, LPSTR lpType, LONG_PTR lParam) ENUMRESTYPEPROCA; -extern(Windows) alias BOOL function(HMODULE hModule, LPWSTR lpType, LONG_PTR lParam) ENUMRESTYPEPROCW; -// #ifdef UNICODE -// #... -// #else -alias ENUMRESTYPEPROCA ENUMRESTYPEPROC; -// #endif // !UNICODE -extern(Windows) alias BOOL function(HMODULE hModule, LPCSTR lpType, LPSTR lpName, LONG_PTR lParam) ENUMRESNAMEPROCA; -extern(Windows) alias BOOL function(HMODULE hModule, LPCWSTR lpType, LPWSTR lpName, LONG_PTR lParam) ENUMRESNAMEPROCW; -// #ifdef UNICODE -// #... -// #else -alias ENUMRESNAMEPROCA ENUMRESNAMEPROC; -// #endif // !UNICODE -extern(Windows) alias BOOL function(HMODULE hModule, LPCSTR lpType, LPCSTR lpName, WORD wLanguage, LONG_PTR lParam) ENUMRESLANGPROCA; -extern(Windows) alias BOOL function(HMODULE hModule, LPCWSTR lpType, LPCWSTR lpName, WORD wLanguage, LONG_PTR lParam) ENUMRESLANGPROCW; -// #ifdef UNICODE -// #... -// #else -alias ENUMRESLANGPROCA ENUMRESLANGPROC; -// #endif // !UNICODE -// #else -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE -// #endif - -extern(Windows) export BOOL EnumResourceTypesA( - HMODULE hModule, - ENUMRESTYPEPROCA lpEnumFunc, - LONG_PTR lParam); -extern(Windows) export BOOL EnumResourceTypesW( - HMODULE hModule, - ENUMRESTYPEPROCW lpEnumFunc, - LONG_PTR lParam); -// #ifdef UNICODE -// #... -// #else -alias EnumResourceTypesA EnumResourceTypes; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumResourceNamesA( - HMODULE hModule, - LPCSTR lpType, - ENUMRESNAMEPROCA lpEnumFunc, - LONG_PTR lParam); -extern(Windows) export BOOL EnumResourceNamesW( - HMODULE hModule, - LPCWSTR lpType, - ENUMRESNAMEPROCW lpEnumFunc, - LONG_PTR lParam); -// #ifdef UNICODE -// #... -// #else -alias EnumResourceNamesA EnumResourceNames; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumResourceLanguagesA( - HMODULE hModule, - LPCSTR lpType, - LPCSTR lpName, - ENUMRESLANGPROCA lpEnumFunc, - LONG_PTR lParam); -extern(Windows) export BOOL EnumResourceLanguagesW( - HMODULE hModule, - LPCWSTR lpType, - LPCWSTR lpName, - ENUMRESLANGPROCW lpEnumFunc, - LONG_PTR lParam); -// #ifdef UNICODE -// #... -// #else -alias EnumResourceLanguagesA EnumResourceLanguages; -// #endif // !UNICODE - -extern(Windows) export HANDLE BeginUpdateResourceA( - LPCSTR pFileName, - BOOL bDeleteExistingResources); -extern(Windows) export HANDLE BeginUpdateResourceW( - LPCWSTR pFileName, - BOOL bDeleteExistingResources); -// #ifdef UNICODE -// #... -// #else -alias BeginUpdateResourceA BeginUpdateResource; -// #endif // !UNICODE - -extern(Windows) export BOOL UpdateResourceA( - HANDLE hUpdate, - LPCSTR lpType, - LPCSTR lpName, - WORD wLanguage, - LPVOID lpData, - DWORD cbData); -extern(Windows) export BOOL UpdateResourceW( - HANDLE hUpdate, - LPCWSTR lpType, - LPCWSTR lpName, - WORD wLanguage, - LPVOID lpData, - DWORD cbData); -// #ifdef UNICODE -// #... -// #else -alias UpdateResourceA UpdateResource; -// #endif // !UNICODE - -extern(Windows) export BOOL EndUpdateResourceA( - HANDLE hUpdate, - BOOL fDiscard); -extern(Windows) export BOOL EndUpdateResourceW( - HANDLE hUpdate, - BOOL fDiscard); -// #ifdef UNICODE -// #... -// #else -alias EndUpdateResourceA EndUpdateResource; -// #endif // !UNICODE - -extern(Windows) export ATOM GlobalAddAtomA( - LPCSTR lpString); -extern(Windows) export ATOM GlobalAddAtomW( - LPCWSTR lpString); -// #ifdef UNICODE -// #... -// #else -alias GlobalAddAtomA GlobalAddAtom; -// #endif // !UNICODE - -extern(Windows) export ATOM GlobalFindAtomA( - LPCSTR lpString); -extern(Windows) export ATOM GlobalFindAtomW( - LPCWSTR lpString); -// #ifdef UNICODE -// #... -// #else -alias GlobalFindAtomA GlobalFindAtom; -// #endif // !UNICODE - -extern(Windows) export UINT GlobalGetAtomNameA( - ATOM nAtom, - LPSTR lpBuffer, - int nSize); -extern(Windows) export UINT GlobalGetAtomNameW( - ATOM nAtom, - LPWSTR lpBuffer, - int nSize); -// #ifdef UNICODE -// #... -// #else -alias GlobalGetAtomNameA GlobalGetAtomName; -// #endif // !UNICODE - -extern(Windows) export ATOM AddAtomA( - LPCSTR lpString); -extern(Windows) export ATOM AddAtomW( - LPCWSTR lpString); -// #ifdef UNICODE -// #... -// #else -alias AddAtomA AddAtom; -// #endif // !UNICODE - -extern(Windows) export ATOM FindAtomA( - LPCSTR lpString); -extern(Windows) export ATOM FindAtomW( - LPCWSTR lpString); -// #ifdef UNICODE -// #... -// #else -alias FindAtomA FindAtom; -// #endif // !UNICODE - -extern(Windows) export UINT GetAtomNameA( - ATOM nAtom, - LPSTR lpBuffer, - int nSize); -extern(Windows) export UINT GetAtomNameW( - ATOM nAtom, - LPWSTR lpBuffer, - int nSize); -// #ifdef UNICODE -// #... -// #else -alias GetAtomNameA GetAtomName; -// #endif // !UNICODE - -extern(Windows) export UINT GetProfileIntA( - LPCSTR lpAppName, - LPCSTR lpKeyName, - INT nDefault); -extern(Windows) export UINT GetProfileIntW( - LPCWSTR lpAppName, - LPCWSTR lpKeyName, - INT nDefault); -// #ifdef UNICODE -// #... -// #else -alias GetProfileIntA GetProfileInt; -// #endif // !UNICODE - -extern(Windows) export DWORD GetProfileStringA( - LPCSTR lpAppName, - LPCSTR lpKeyName, - LPCSTR lpDefault, - LPSTR lpReturnedString, - DWORD nSize); -extern(Windows) export DWORD GetProfileStringW( - LPCWSTR lpAppName, - LPCWSTR lpKeyName, - LPCWSTR lpDefault, - LPWSTR lpReturnedString, - DWORD nSize); -// #ifdef UNICODE -// #... -// #else -alias GetProfileStringA GetProfileString; -// #endif // !UNICODE - -extern(Windows) export BOOL WriteProfileStringA( - LPCSTR lpAppName, - LPCSTR lpKeyName, - LPCSTR lpString); -extern(Windows) export BOOL WriteProfileStringW( - LPCWSTR lpAppName, - LPCWSTR lpKeyName, - LPCWSTR lpString); -// #ifdef UNICODE -// #... -// #else -alias WriteProfileStringA WriteProfileString; -// #endif // !UNICODE - -extern(Windows) export DWORD GetProfileSectionA( - LPCSTR lpAppName, - LPSTR lpReturnedString, - DWORD nSize); -extern(Windows) export DWORD GetProfileSectionW( - LPCWSTR lpAppName, - LPWSTR lpReturnedString, - DWORD nSize); -// #ifdef UNICODE -// #... -// #else -alias GetProfileSectionA GetProfileSection; -// #endif // !UNICODE - -extern(Windows) export BOOL WriteProfileSectionA( - LPCSTR lpAppName, - LPCSTR lpString); -extern(Windows) export BOOL WriteProfileSectionW( - LPCWSTR lpAppName, - LPCWSTR lpString); -// #ifdef UNICODE -// #... -// #else -alias WriteProfileSectionA WriteProfileSection; -// #endif // !UNICODE - -extern(Windows) export UINT GetPrivateProfileIntA( - LPCSTR lpAppName, - LPCSTR lpKeyName, - INT nDefault, - LPCSTR lpFileName); -extern(Windows) export UINT GetPrivateProfileIntW( - LPCWSTR lpAppName, - LPCWSTR lpKeyName, - INT nDefault, - LPCWSTR lpFileName); -// #ifdef UNICODE -// #... -// #else -alias GetPrivateProfileIntA GetPrivateProfileInt; -// #endif // !UNICODE - -extern(Windows) export DWORD GetPrivateProfileStringA( - LPCSTR lpAppName, - LPCSTR lpKeyName, - LPCSTR lpDefault, - LPSTR lpReturnedString, - DWORD nSize, - LPCSTR lpFileName); -extern(Windows) export DWORD GetPrivateProfileStringW( - LPCWSTR lpAppName, - LPCWSTR lpKeyName, - LPCWSTR lpDefault, - LPWSTR lpReturnedString, - DWORD nSize, - LPCWSTR lpFileName); -// #ifdef UNICODE -// #... -// #else -alias GetPrivateProfileStringA GetPrivateProfileString; -// #endif // !UNICODE - -extern(Windows) export BOOL WritePrivateProfileStringA( - LPCSTR lpAppName, - LPCSTR lpKeyName, - LPCSTR lpString, - LPCSTR lpFileName); -extern(Windows) export BOOL WritePrivateProfileStringW( - LPCWSTR lpAppName, - LPCWSTR lpKeyName, - LPCWSTR lpString, - LPCWSTR lpFileName); -// #ifdef UNICODE -// #... -// #else -alias WritePrivateProfileStringA WritePrivateProfileString; -// #endif // !UNICODE - -extern(Windows) export DWORD GetPrivateProfileSectionA( - LPCSTR lpAppName, - LPSTR lpReturnedString, - DWORD nSize, - LPCSTR lpFileName); -extern(Windows) export DWORD GetPrivateProfileSectionW( - LPCWSTR lpAppName, - LPWSTR lpReturnedString, - DWORD nSize, - LPCWSTR lpFileName); -// #ifdef UNICODE -// #... -// #else -alias GetPrivateProfileSectionA GetPrivateProfileSection; -// #endif // !UNICODE - -extern(Windows) export BOOL WritePrivateProfileSectionA( - LPCSTR lpAppName, - LPCSTR lpString, - LPCSTR lpFileName); -extern(Windows) export BOOL WritePrivateProfileSectionW( - LPCWSTR lpAppName, - LPCWSTR lpString, - LPCWSTR lpFileName); -// #ifdef UNICODE -// #... -// #else -alias WritePrivateProfileSectionA WritePrivateProfileSection; -// #endif // !UNICODE - -extern(Windows) export DWORD GetPrivateProfileSectionNamesA( - LPSTR lpszReturnBuffer, - DWORD nSize, - LPCSTR lpFileName); -extern(Windows) export DWORD GetPrivateProfileSectionNamesW( - LPWSTR lpszReturnBuffer, - DWORD nSize, - LPCWSTR lpFileName); -// #ifdef UNICODE -// #... -// #else -alias GetPrivateProfileSectionNamesA GetPrivateProfileSectionNames; -// #endif // !UNICODE - -extern(Windows) export BOOL GetPrivateProfileStructA( - LPCSTR lpszSection, - LPCSTR lpszKey, - LPVOID lpStruct, - UINT uSizeStruct, - LPCSTR szFile); -extern(Windows) export BOOL GetPrivateProfileStructW( - LPCWSTR lpszSection, - LPCWSTR lpszKey, - LPVOID lpStruct, - UINT uSizeStruct, - LPCWSTR szFile); -// #ifdef UNICODE -// #... -// #else -alias GetPrivateProfileStructA GetPrivateProfileStruct; -// #endif // !UNICODE - -extern(Windows) export BOOL WritePrivateProfileStructA( - LPCSTR lpszSection, - LPCSTR lpszKey, - LPVOID lpStruct, - UINT uSizeStruct, - LPCSTR szFile); -extern(Windows) export BOOL WritePrivateProfileStructW( - LPCWSTR lpszSection, - LPCWSTR lpszKey, - LPVOID lpStruct, - UINT uSizeStruct, - LPCWSTR szFile); -// #ifdef UNICODE -// #... -// #else -alias WritePrivateProfileStructA WritePrivateProfileStruct; -// #endif // !UNICODE - -extern(Windows) export UINT GetDriveTypeA( - LPCSTR lpRootPathName); -extern(Windows) export UINT GetDriveTypeW( - LPCWSTR lpRootPathName); -// #ifdef UNICODE -// #... -// #else -alias GetDriveTypeA GetDriveType; -// #endif // !UNICODE - -extern(Windows) export UINT GetSystemDirectoryA( - LPSTR lpBuffer, - UINT uSize); -extern(Windows) export UINT GetSystemDirectoryW( - LPWSTR lpBuffer, - UINT uSize); -// #ifdef UNICODE -// #... -// #else -alias GetSystemDirectoryA GetSystemDirectory; -// #endif // !UNICODE - -extern(Windows) export DWORD GetTempPathA( - DWORD nBufferLength, - LPSTR lpBuffer); -extern(Windows) export DWORD GetTempPathW( - DWORD nBufferLength, - LPWSTR lpBuffer); -// #ifdef UNICODE -// #... -// #else -alias GetTempPathA GetTempPath; -// #endif // !UNICODE - -extern(Windows) export UINT GetTempFileNameA( - LPCSTR lpPathName, - LPCSTR lpPrefixString, - UINT uUnique, - LPSTR lpTempFileName); -extern(Windows) export UINT GetTempFileNameW( - LPCWSTR lpPathName, - LPCWSTR lpPrefixString, - UINT uUnique, - LPWSTR lpTempFileName); -// #ifdef UNICODE -// #... -// #else -alias GetTempFileNameA GetTempFileName; -// #endif // !UNICODE - -extern(Windows) export UINT GetWindowsDirectoryA( - LPSTR lpBuffer, - UINT uSize); -extern(Windows) export UINT GetWindowsDirectoryW( - LPWSTR lpBuffer, - UINT uSize); -// #ifdef UNICODE -// #... -// #else -alias GetWindowsDirectoryA GetWindowsDirectory; -// #endif // !UNICODE - -extern(Windows) export UINT GetSystemWindowsDirectoryA( - LPSTR lpBuffer, - UINT uSize); -extern(Windows) export UINT GetSystemWindowsDirectoryW( - LPWSTR lpBuffer, - UINT uSize); -// #ifdef UNICODE -// #... -// #else -alias GetSystemWindowsDirectoryA GetSystemWindowsDirectory; -// #endif // !UNICODE - -// #if !defined(RC_INVOKED) // RC warns because "WINBASE_DECLARE_GET_SYSTEM_WOW64_DIRECTORY" is a bit long. -// #if _WIN32_WINNT >= 0x0501 || defined(WINBASE_DECLARE_GET_SYSTEM_WOW64_DIRECTORY) - -extern(Windows) export UINT GetSystemWow64DirectoryA( - LPSTR lpBuffer, - UINT uSize); -extern(Windows) export UINT GetSystemWow64DirectoryW( - LPWSTR lpBuffer, - UINT uSize); -// #ifdef UNICODE -// #... -// #else -alias GetSystemWow64DirectoryA GetSystemWow64Directory; -// #endif // !UNICODE - -extern(Windows) alias UINT function( LPSTR lpBuffer, UINT uSize) PGET_SYSTEM_WOW64_DIRECTORY_A; -extern(Windows) alias UINT function( LPWSTR lpBuffer, UINT uSize) PGET_SYSTEM_WOW64_DIRECTORY_W; - -const char[] GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A = "GetSystemWow64DirectoryA"; -const wchar[] GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W = "GetSystemWow64DirectoryA"; -const TCHAR[] GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T = "GetSystemWow64DirectoryA"; -const char[] GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A = "GetSystemWow64DirectoryW"; -const wchar[] GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W = "GetSystemWow64DirectoryW"; -const TCHAR[] GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T = "GetSystemWow64DirectoryW"; - -// #ifdef UNICODE -// #... -// #... -// #... -// #else -alias GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A; -alias GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W; -alias GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T; -// #endif - -// #endif // _WIN32_WINNT >= 0x0501 -// #endif - -extern(Windows) export BOOL SetCurrentDirectoryA( - LPCSTR lpPathName); -extern(Windows) export BOOL SetCurrentDirectoryW( - LPCWSTR lpPathName); -// #ifdef UNICODE -// #... -// #else -alias SetCurrentDirectoryA SetCurrentDirectory; -// #endif // !UNICODE - -extern(Windows) export DWORD GetCurrentDirectoryA( - DWORD nBufferLength, - LPSTR lpBuffer); -extern(Windows) export DWORD GetCurrentDirectoryW( - DWORD nBufferLength, - LPWSTR lpBuffer); -// #ifdef UNICODE -// #... -// #else -alias GetCurrentDirectoryA GetCurrentDirectory; -// #endif // !UNICODE - -extern(Windows) export BOOL GetDiskFreeSpaceA( - LPCSTR lpRootPathName, - LPDWORD lpSectorsPerCluster, - LPDWORD lpBytesPerSector, - LPDWORD lpNumberOfFreeClusters, - LPDWORD lpTotalNumberOfClusters); -extern(Windows) export BOOL GetDiskFreeSpaceW( - LPCWSTR lpRootPathName, - LPDWORD lpSectorsPerCluster, - LPDWORD lpBytesPerSector, - LPDWORD lpNumberOfFreeClusters, - LPDWORD lpTotalNumberOfClusters); -// #ifdef UNICODE -// #... -// #else -alias GetDiskFreeSpaceA GetDiskFreeSpace; -// #endif // !UNICODE - -extern(Windows) export BOOL GetDiskFreeSpaceExA( - LPCSTR lpDirectoryName, - PULARGE_INTEGER lpFreeBytesAvailableToCaller, - PULARGE_INTEGER lpTotalNumberOfBytes, - PULARGE_INTEGER lpTotalNumberOfFreeBytes); -extern(Windows) export BOOL GetDiskFreeSpaceExW( - LPCWSTR lpDirectoryName, - PULARGE_INTEGER lpFreeBytesAvailableToCaller, - PULARGE_INTEGER lpTotalNumberOfBytes, - PULARGE_INTEGER lpTotalNumberOfFreeBytes); -// #ifdef UNICODE -// #... -// #else -alias GetDiskFreeSpaceExA GetDiskFreeSpaceEx; -// #endif // !UNICODE - -extern(Windows) export BOOL CreateDirectoryA( - LPCSTR lpPathName, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -extern(Windows) export BOOL CreateDirectoryW( - LPCWSTR lpPathName, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -// #ifdef UNICODE -// #... -// #else -alias CreateDirectoryA CreateDirectory; -// #endif // !UNICODE - -extern(Windows) export BOOL CreateDirectoryExA( - LPCSTR lpTemplateDirectory, - LPCSTR lpNewDirectory, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -extern(Windows) export BOOL CreateDirectoryExW( - LPCWSTR lpTemplateDirectory, - LPCWSTR lpNewDirectory, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -// #ifdef UNICODE -// #... -// #else -alias CreateDirectoryExA CreateDirectoryEx; -// #endif // !UNICODE - -extern(Windows) export BOOL RemoveDirectoryA( - LPCSTR lpPathName); -extern(Windows) export BOOL RemoveDirectoryW( - LPCWSTR lpPathName); -// #ifdef UNICODE -// #... -// #else -alias RemoveDirectoryA RemoveDirectory; -// #endif // !UNICODE - -extern(Windows) export DWORD GetFullPathNameA( - LPCSTR lpFileName, - DWORD nBufferLength, - LPSTR lpBuffer, - LPSTR *lpFilePart); -extern(Windows) export DWORD GetFullPathNameW( - LPCWSTR lpFileName, - DWORD nBufferLength, - LPWSTR lpBuffer, - LPWSTR *lpFilePart); -// #ifdef UNICODE -// #... -// #else -alias GetFullPathNameA GetFullPathName; -// #endif // !UNICODE - -enum : uint { DDD_RAW_TARGET_PATH = 0x00000001 } -enum : uint { DDD_REMOVE_DEFINITION = 0x00000002 } -enum : uint { DDD_EXACT_MATCH_ON_REMOVE = 0x00000004 } -enum : uint { DDD_NO_BROADCAST_SYSTEM = 0x00000008 } -enum : uint { DDD_LUID_BROADCAST_DRIVE = 0x00000010 } - -extern(Windows) export BOOL DefineDosDeviceA( - DWORD dwFlags, - LPCSTR lpDeviceName, - LPCSTR lpTargetPath); -extern(Windows) export BOOL DefineDosDeviceW( - DWORD dwFlags, - LPCWSTR lpDeviceName, - LPCWSTR lpTargetPath); -// #ifdef UNICODE -// #... -// #else -alias DefineDosDeviceA DefineDosDevice; -// #endif // !UNICODE - -extern(Windows) export DWORD QueryDosDeviceA( - LPCSTR lpDeviceName, - LPSTR lpTargetPath, - DWORD ucchMax); -extern(Windows) export DWORD QueryDosDeviceW( - LPCWSTR lpDeviceName, - LPWSTR lpTargetPath, - DWORD ucchMax); -// #ifdef UNICODE -// #... -// #else -alias QueryDosDeviceA QueryDosDevice; -// #endif // !UNICODE - -// #define EXPAND_LOCAL_DRIVES - -extern(Windows) export HANDLE CreateFileA( - LPCSTR lpFileName, - DWORD dwDesiredAccess, - DWORD dwShareMode, - LPSECURITY_ATTRIBUTES lpSecurityAttributes, - DWORD dwCreationDisposition, - DWORD dwFlagsAndAttributes, - HANDLE hTemplateFile); -extern(Windows) export HANDLE CreateFileW( - LPCWSTR lpFileName, - DWORD dwDesiredAccess, - DWORD dwShareMode, - LPSECURITY_ATTRIBUTES lpSecurityAttributes, - DWORD dwCreationDisposition, - DWORD dwFlagsAndAttributes, - HANDLE hTemplateFile); -// #ifdef UNICODE -// #... -// #else -alias CreateFileA CreateFile; -// #endif // !UNICODE - -extern(Windows) export BOOL SetFileAttributesA( - LPCSTR lpFileName, - DWORD dwFileAttributes); -extern(Windows) export BOOL SetFileAttributesW( - LPCWSTR lpFileName, - DWORD dwFileAttributes); -// #ifdef UNICODE -// #... -// #else -alias SetFileAttributesA SetFileAttributes; -// #endif // !UNICODE - -extern(Windows) export DWORD GetFileAttributesA( - LPCSTR lpFileName); -extern(Windows) export DWORD GetFileAttributesW( - LPCWSTR lpFileName); -// #ifdef UNICODE -// #... -// #else -alias GetFileAttributesA GetFileAttributes; -// #endif // !UNICODE - -alias int _GET_FILEEX_INFO_LEVELS; -enum { - GetFileExInfoStandard, - GetFileExMaxInfoLevel, -} -alias _GET_FILEEX_INFO_LEVELS GET_FILEEX_INFO_LEVELS; - -extern(Windows) export BOOL GetFileAttributesExA( - LPCSTR lpFileName, - GET_FILEEX_INFO_LEVELS fInfoLevelId, - LPVOID lpFileInformation); -extern(Windows) export BOOL GetFileAttributesExW( - LPCWSTR lpFileName, - GET_FILEEX_INFO_LEVELS fInfoLevelId, - LPVOID lpFileInformation); -// #ifdef UNICODE -// #... -// #else -alias GetFileAttributesExA GetFileAttributesEx; -// #endif // !UNICODE - -extern(Windows) export DWORD GetCompressedFileSizeA( - LPCSTR lpFileName, - LPDWORD lpFileSizeHigh); -extern(Windows) export DWORD GetCompressedFileSizeW( - LPCWSTR lpFileName, - LPDWORD lpFileSizeHigh); -// #ifdef UNICODE -// #... -// #else -alias GetCompressedFileSizeA GetCompressedFileSize; -// #endif // !UNICODE - -extern(Windows) export BOOL DeleteFileA( - LPCSTR lpFileName); -extern(Windows) export BOOL DeleteFileW( - LPCWSTR lpFileName); -// #ifdef UNICODE -// #... -// #else -alias DeleteFileA DeleteFile; -// #endif // !UNICODE - -// #if(_WIN32_WINNT >= 0x0400) -alias int _FINDEX_INFO_LEVELS; -enum { - FindExInfoStandard, - FindExInfoMaxInfoLevel, -} -alias _FINDEX_INFO_LEVELS FINDEX_INFO_LEVELS; - -alias int _FINDEX_SEARCH_OPS; -enum { - FindExSearchNameMatch, - FindExSearchLimitToDirectories, - FindExSearchLimitToDevices, - FindExSearchMaxSearchOp, -} -alias _FINDEX_SEARCH_OPS FINDEX_SEARCH_OPS; - -enum : uint { FIND_FIRST_EX_CASE_SENSITIVE = 0x00000001 } - -extern(Windows) export HANDLE FindFirstFileExA( - LPCSTR lpFileName, - FINDEX_INFO_LEVELS fInfoLevelId, - LPVOID lpFindFileData, - FINDEX_SEARCH_OPS fSearchOp, - LPVOID lpSearchFilter, - DWORD dwAdditionalFlags); -extern(Windows) export HANDLE FindFirstFileExW( - LPCWSTR lpFileName, - FINDEX_INFO_LEVELS fInfoLevelId, - LPVOID lpFindFileData, - FINDEX_SEARCH_OPS fSearchOp, - LPVOID lpSearchFilter, - DWORD dwAdditionalFlags); -// #ifdef UNICODE -// #... -// #else -alias FindFirstFileExA FindFirstFileEx; -// #endif // !UNICODE -// #endif /* _WIN32_WINNT >= 0x0400 */ - -extern(Windows) export HANDLE FindFirstFileA( - LPCSTR lpFileName, - LPWIN32_FIND_DATAA lpFindFileData); -extern(Windows) export HANDLE FindFirstFileW( - LPCWSTR lpFileName, - LPWIN32_FIND_DATAW lpFindFileData); -// #ifdef UNICODE -// #... -// #else -alias FindFirstFileA FindFirstFile; -// #endif // !UNICODE - -extern(Windows) export BOOL FindNextFileA( - HANDLE hFindFile, - LPWIN32_FIND_DATAA lpFindFileData); -extern(Windows) export BOOL FindNextFileW( - HANDLE hFindFile, - LPWIN32_FIND_DATAW lpFindFileData); -// #ifdef UNICODE -// #... -// #else -alias FindNextFileA FindNextFile; -// #endif // !UNICODE - -extern(Windows) export DWORD SearchPathA( - LPCSTR lpPath, - LPCSTR lpFileName, - LPCSTR lpExtension, - DWORD nBufferLength, - LPSTR lpBuffer, - LPSTR *lpFilePart); -extern(Windows) export DWORD SearchPathW( - LPCWSTR lpPath, - LPCWSTR lpFileName, - LPCWSTR lpExtension, - DWORD nBufferLength, - LPWSTR lpBuffer, - LPWSTR *lpFilePart); -// #ifdef UNICODE -// #... -// #else -alias SearchPathA SearchPath; -// #endif // !UNICODE - -extern(Windows) export BOOL CopyFileA( - LPCSTR lpExistingFileName, - LPCSTR lpNewFileName, - BOOL bFailIfExists); -extern(Windows) export BOOL CopyFileW( - LPCWSTR lpExistingFileName, - LPCWSTR lpNewFileName, - BOOL bFailIfExists); -// #ifdef UNICODE -// #... -// #else -alias CopyFileA CopyFile; -// #endif // !UNICODE - -// #if(_WIN32_WINNT >= 0x0400) -extern(Windows) alias DWORD function( LARGE_INTEGER TotalFileSize, LARGE_INTEGER TotalBytesTransferred, LARGE_INTEGER StreamSize, LARGE_INTEGER StreamBytesTransferred, DWORD dwStreamNumber, DWORD dwCallbackReason, HANDLE hSourceFile, HANDLE hDestinationFile, LPVOID lpData ) LPPROGRESS_ROUTINE; - -extern(Windows) export BOOL CopyFileExA( - LPCSTR lpExistingFileName, - LPCSTR lpNewFileName, - LPPROGRESS_ROUTINE lpProgressRoutine , - LPVOID lpData , - LPBOOL pbCancel , - DWORD dwCopyFlags); -extern(Windows) export BOOL CopyFileExW( - LPCWSTR lpExistingFileName, - LPCWSTR lpNewFileName, - LPPROGRESS_ROUTINE lpProgressRoutine , - LPVOID lpData , - LPBOOL pbCancel , - DWORD dwCopyFlags); -// #ifdef UNICODE -// #... -// #else -alias CopyFileExA CopyFileEx; -// #endif // !UNICODE -// #endif /* _WIN32_WINNT >= 0x0400 */ - -extern(Windows) export BOOL MoveFileA( - LPCSTR lpExistingFileName, - LPCSTR lpNewFileName); -extern(Windows) export BOOL MoveFileW( - LPCWSTR lpExistingFileName, - LPCWSTR lpNewFileName); -// #ifdef UNICODE -// #... -// #else -alias MoveFileA MoveFile; -// #endif // !UNICODE - -extern(Windows) export BOOL MoveFileExA( - LPCSTR lpExistingFileName, - LPCSTR lpNewFileName, - DWORD dwFlags); -extern(Windows) export BOOL MoveFileExW( - LPCWSTR lpExistingFileName, - LPCWSTR lpNewFileName, - DWORD dwFlags); -// #ifdef UNICODE -// #... -// #else -alias MoveFileExA MoveFileEx; -// #endif // !UNICODE - -// #if (_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL MoveFileWithProgressA( - LPCSTR lpExistingFileName, - LPCSTR lpNewFileName, - LPPROGRESS_ROUTINE lpProgressRoutine , - LPVOID lpData , - DWORD dwFlags); -extern(Windows) export BOOL MoveFileWithProgressW( - LPCWSTR lpExistingFileName, - LPCWSTR lpNewFileName, - LPPROGRESS_ROUTINE lpProgressRoutine , - LPVOID lpData , - DWORD dwFlags); -// #ifdef UNICODE -// #... -// #else -alias MoveFileWithProgressA MoveFileWithProgress; -// #endif // !UNICODE -// #endif // (_WIN32_WINNT >= 0x0500) - -enum : uint { MOVEFILE_REPLACE_EXISTING = 0x00000001 } -enum : uint { MOVEFILE_COPY_ALLOWED = 0x00000002 } -enum : uint { MOVEFILE_DELAY_UNTIL_REBOOT = 0x00000004 } -enum : uint { MOVEFILE_WRITE_THROUGH = 0x00000008 } -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { MOVEFILE_CREATE_HARDLINK = 0x00000010 } -enum : uint { MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x00000020 } -// #endif // (_WIN32_WINNT >= 0x0500) - -// #if (_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL ReplaceFileA( - LPCSTR lpReplacedFileName, - LPCSTR lpReplacementFileName, - LPCSTR lpBackupFileName, - DWORD dwReplaceFlags, - LPVOID lpExclude, - LPVOID lpReserved); -extern(Windows) export BOOL ReplaceFileW( - LPCWSTR lpReplacedFileName, - LPCWSTR lpReplacementFileName, - LPCWSTR lpBackupFileName, - DWORD dwReplaceFlags, - LPVOID lpExclude, - LPVOID lpReserved); -// #ifdef UNICODE -// #... -// #else -alias ReplaceFileA ReplaceFile; -// #endif // !UNICODE -// #endif // (_WIN32_WINNT >= 0x0500) - -// #if (_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL CreateHardLinkA( - LPCSTR lpFileName, - LPCSTR lpExistingFileName, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -extern(Windows) export BOOL CreateHardLinkW( - LPCWSTR lpFileName, - LPCWSTR lpExistingFileName, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -// #ifdef UNICODE -// #... -// #else -alias CreateHardLinkA CreateHardLink; -// #endif // !UNICODE - -// #endif // (_WIN32_WINNT >= 0x0500) - -extern(Windows) export HANDLE CreateNamedPipeA( - LPCSTR lpName, - DWORD dwOpenMode, - DWORD dwPipeMode, - DWORD nMaxInstances, - DWORD nOutBufferSize, - DWORD nInBufferSize, - DWORD nDefaultTimeOut, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -extern(Windows) export HANDLE CreateNamedPipeW( - LPCWSTR lpName, - DWORD dwOpenMode, - DWORD dwPipeMode, - DWORD nMaxInstances, - DWORD nOutBufferSize, - DWORD nInBufferSize, - DWORD nDefaultTimeOut, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -// #ifdef UNICODE -// #... -// #else -alias CreateNamedPipeA CreateNamedPipe; -// #endif // !UNICODE - -extern(Windows) export BOOL GetNamedPipeHandleStateA( - HANDLE hNamedPipe, - LPDWORD lpState, - LPDWORD lpCurInstances, - LPDWORD lpMaxCollectionCount, - LPDWORD lpCollectDataTimeout, - LPSTR lpUserName, - DWORD nMaxUserNameSize); -extern(Windows) export BOOL GetNamedPipeHandleStateW( - HANDLE hNamedPipe, - LPDWORD lpState, - LPDWORD lpCurInstances, - LPDWORD lpMaxCollectionCount, - LPDWORD lpCollectDataTimeout, - LPWSTR lpUserName, - DWORD nMaxUserNameSize); -// #ifdef UNICODE -// #... -// #else -alias GetNamedPipeHandleStateA GetNamedPipeHandleState; -// #endif // !UNICODE - -extern(Windows) export BOOL CallNamedPipeA( - LPCSTR lpNamedPipeName, - LPVOID lpInBuffer, - DWORD nInBufferSize, - LPVOID lpOutBuffer, - DWORD nOutBufferSize, - LPDWORD lpBytesRead, - DWORD nTimeOut); -extern(Windows) export BOOL CallNamedPipeW( - LPCWSTR lpNamedPipeName, - LPVOID lpInBuffer, - DWORD nInBufferSize, - LPVOID lpOutBuffer, - DWORD nOutBufferSize, - LPDWORD lpBytesRead, - DWORD nTimeOut); -// #ifdef UNICODE -// #... -// #else -alias CallNamedPipeA CallNamedPipe; -// #endif // !UNICODE - -extern(Windows) export BOOL WaitNamedPipeA( - LPCSTR lpNamedPipeName, - DWORD nTimeOut); -extern(Windows) export BOOL WaitNamedPipeW( - LPCWSTR lpNamedPipeName, - DWORD nTimeOut); -// #ifdef UNICODE -// #... -// #else -alias WaitNamedPipeA WaitNamedPipe; -// #endif // !UNICODE - -extern(Windows) export BOOL SetVolumeLabelA( - LPCSTR lpRootPathName, - LPCSTR lpVolumeName); -extern(Windows) export BOOL SetVolumeLabelW( - LPCWSTR lpRootPathName, - LPCWSTR lpVolumeName); -// #ifdef UNICODE -// #... -// #else -alias SetVolumeLabelA SetVolumeLabel; -// #endif // !UNICODE - -extern(Windows) export VOID SetFileApisToOEM(); - -extern(Windows) export VOID SetFileApisToANSI(); - -extern(Windows) export BOOL AreFileApisANSI(); - -extern(Windows) export BOOL GetVolumeInformationA( - LPCSTR lpRootPathName, - LPSTR lpVolumeNameBuffer, - DWORD nVolumeNameSize, - LPDWORD lpVolumeSerialNumber, - LPDWORD lpMaximumComponentLength, - LPDWORD lpFileSystemFlags, - LPSTR lpFileSystemNameBuffer, - DWORD nFileSystemNameSize); -extern(Windows) export BOOL GetVolumeInformationW( - LPCWSTR lpRootPathName, - LPWSTR lpVolumeNameBuffer, - DWORD nVolumeNameSize, - LPDWORD lpVolumeSerialNumber, - LPDWORD lpMaximumComponentLength, - LPDWORD lpFileSystemFlags, - LPWSTR lpFileSystemNameBuffer, - DWORD nFileSystemNameSize); -// #ifdef UNICODE -// #... -// #else -alias GetVolumeInformationA GetVolumeInformation; -// #endif // !UNICODE - -extern(Windows) export BOOL CancelIo( - HANDLE hFile); - -extern(Windows) export BOOL ClearEventLogA( - HANDLE hEventLog, - LPCSTR lpBackupFileName); -extern(Windows) export BOOL ClearEventLogW( - HANDLE hEventLog, - LPCWSTR lpBackupFileName); -// #ifdef UNICODE -// #... -// #else -alias ClearEventLogA ClearEventLog; -// #endif // !UNICODE - -extern(Windows) export BOOL BackupEventLogA( - HANDLE hEventLog, - LPCSTR lpBackupFileName); -extern(Windows) export BOOL BackupEventLogW( - HANDLE hEventLog, - LPCWSTR lpBackupFileName); -// #ifdef UNICODE -// #... -// #else -alias BackupEventLogA BackupEventLog; -// #endif // !UNICODE - -extern(Windows) export BOOL CloseEventLog( - HANDLE hEventLog); - -extern(Windows) export BOOL DeregisterEventSource( - HANDLE hEventLog); - -extern(Windows) export BOOL NotifyChangeEventLog( - HANDLE hEventLog, - HANDLE hEvent); - -extern(Windows) export BOOL GetNumberOfEventLogRecords( - HANDLE hEventLog, - PDWORD NumberOfRecords); - -extern(Windows) export BOOL GetOldestEventLogRecord( - HANDLE hEventLog, - PDWORD OldestRecord); - -extern(Windows) export HANDLE OpenEventLogA( - LPCSTR lpUNCServerName, - LPCSTR lpSourceName); -extern(Windows) export HANDLE OpenEventLogW( - LPCWSTR lpUNCServerName, - LPCWSTR lpSourceName); -// #ifdef UNICODE -// #... -// #else -alias OpenEventLogA OpenEventLog; -// #endif // !UNICODE - -extern(Windows) export HANDLE RegisterEventSourceA( - LPCSTR lpUNCServerName, - LPCSTR lpSourceName); -extern(Windows) export HANDLE RegisterEventSourceW( - LPCWSTR lpUNCServerName, - LPCWSTR lpSourceName); -// #ifdef UNICODE -// #... -// #else -alias RegisterEventSourceA RegisterEventSource; -// #endif // !UNICODE - -extern(Windows) export HANDLE OpenBackupEventLogA( - LPCSTR lpUNCServerName, - LPCSTR lpFileName); -extern(Windows) export HANDLE OpenBackupEventLogW( - LPCWSTR lpUNCServerName, - LPCWSTR lpFileName); -// #ifdef UNICODE -// #... -// #else -alias OpenBackupEventLogA OpenBackupEventLog; -// #endif // !UNICODE - -extern(Windows) export BOOL ReadEventLogA( - HANDLE hEventLog, - DWORD dwReadFlags, - DWORD dwRecordOffset, - LPVOID lpBuffer, - DWORD nNumberOfBytesToRead, - DWORD *pnBytesRead, - DWORD *pnMinNumberOfBytesNeeded); -extern(Windows) export BOOL ReadEventLogW( - HANDLE hEventLog, - DWORD dwReadFlags, - DWORD dwRecordOffset, - LPVOID lpBuffer, - DWORD nNumberOfBytesToRead, - DWORD *pnBytesRead, - DWORD *pnMinNumberOfBytesNeeded); -// #ifdef UNICODE -// #... -// #else -alias ReadEventLogA ReadEventLog; -// #endif // !UNICODE - -extern(Windows) export BOOL ReportEventA( - HANDLE hEventLog, - WORD wType, - WORD wCategory, - DWORD dwEventID, - PSID lpUserSid, - WORD wNumStrings, - DWORD dwDataSize, - LPCSTR *lpStrings, - LPVOID lpRawData); -extern(Windows) export BOOL ReportEventW( - HANDLE hEventLog, - WORD wType, - WORD wCategory, - DWORD dwEventID, - PSID lpUserSid, - WORD wNumStrings, - DWORD dwDataSize, - LPCWSTR *lpStrings, - LPVOID lpRawData); -// #ifdef UNICODE -// #... -// #else -alias ReportEventA ReportEvent; -// #endif // !UNICODE - -enum : uint { EVENTLOG_FULL_INFO = 0 } - -struct _EVENTLOG_FULL_INFORMATION { - DWORD dwFull; -} -alias _EVENTLOG_FULL_INFORMATION EVENTLOG_FULL_INFORMATION; -alias _EVENTLOG_FULL_INFORMATION* LPEVENTLOG_FULL_INFORMATION; - -extern(Windows) export BOOL GetEventLogInformation( - HANDLE hEventLog, - DWORD dwInfoLevel, - LPVOID lpBuffer, - DWORD cbBufSize, - LPDWORD pcbBytesNeeded); - -extern(Windows) export BOOL DuplicateToken( - HANDLE ExistingTokenHandle, - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, - PHANDLE DuplicateTokenHandle); - -extern(Windows) export BOOL GetKernelObjectSecurity( - HANDLE Handle, - SECURITY_INFORMATION RequestedInformation, - PSECURITY_DESCRIPTOR pSecurityDescriptor, - DWORD nLength, - LPDWORD lpnLengthNeeded); - -extern(Windows) export BOOL ImpersonateNamedPipeClient( - HANDLE hNamedPipe); - -extern(Windows) export BOOL ImpersonateSelf( - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel); - -extern(Windows) export BOOL RevertToSelf(); - -extern(Windows) export BOOL SetThreadToken( - PHANDLE Thread, - HANDLE Token); - -extern(Windows) export BOOL AccessCheck( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - HANDLE ClientToken, - DWORD DesiredAccess, - PGENERIC_MAPPING GenericMapping, - PPRIVILEGE_SET PrivilegeSet, - LPDWORD PrivilegeSetLength, - LPDWORD GrantedAccess, - LPBOOL AccessStatus); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL AccessCheckByType( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - PSID PrincipalSelfSid, - HANDLE ClientToken, - DWORD DesiredAccess, - POBJECT_TYPE_LIST ObjectTypeList, - DWORD ObjectTypeListLength, - PGENERIC_MAPPING GenericMapping, - PPRIVILEGE_SET PrivilegeSet, - LPDWORD PrivilegeSetLength, - LPDWORD GrantedAccess, - LPBOOL AccessStatus); - -extern(Windows) export BOOL AccessCheckByTypeResultList( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - PSID PrincipalSelfSid, - HANDLE ClientToken, - DWORD DesiredAccess, - POBJECT_TYPE_LIST ObjectTypeList, - DWORD ObjectTypeListLength, - PGENERIC_MAPPING GenericMapping, - PPRIVILEGE_SET PrivilegeSet, - LPDWORD PrivilegeSetLength, - LPDWORD GrantedAccessList, - LPDWORD AccessStatusList); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export BOOL OpenProcessToken( - HANDLE ProcessHandle, - DWORD DesiredAccess, - PHANDLE TokenHandle); - -extern(Windows) export BOOL OpenThreadToken( - HANDLE ThreadHandle, - DWORD DesiredAccess, - BOOL OpenAsSelf, - PHANDLE TokenHandle); - -extern(Windows) export BOOL GetTokenInformation( - HANDLE TokenHandle, - TOKEN_INFORMATION_CLASS TokenInformationClass, - LPVOID TokenInformation, - DWORD TokenInformationLength, - PDWORD ReturnLength); - -extern(Windows) export BOOL SetTokenInformation( - HANDLE TokenHandle, - TOKEN_INFORMATION_CLASS TokenInformationClass, - LPVOID TokenInformation, - DWORD TokenInformationLength); - -extern(Windows) export BOOL AdjustTokenPrivileges( - HANDLE TokenHandle, - BOOL DisableAllPrivileges, - PTOKEN_PRIVILEGES NewState, - DWORD BufferLength, - PTOKEN_PRIVILEGES PreviousState, - PDWORD ReturnLength); - -extern(Windows) export BOOL AdjustTokenGroups( - HANDLE TokenHandle, - BOOL ResetToDefault, - PTOKEN_GROUPS NewState, - DWORD BufferLength, - PTOKEN_GROUPS PreviousState, - PDWORD ReturnLength); - -extern(Windows) export BOOL PrivilegeCheck( - HANDLE ClientToken, - PPRIVILEGE_SET RequiredPrivileges, - LPBOOL pfResult); - -extern(Windows) export BOOL AccessCheckAndAuditAlarmA( - LPCSTR SubsystemName, - LPVOID HandleId, - LPSTR ObjectTypeName, - LPSTR ObjectName, - PSECURITY_DESCRIPTOR SecurityDescriptor, - DWORD DesiredAccess, - PGENERIC_MAPPING GenericMapping, - BOOL ObjectCreation, - LPDWORD GrantedAccess, - LPBOOL AccessStatus, - LPBOOL pfGenerateOnClose); -extern(Windows) export BOOL AccessCheckAndAuditAlarmW( - LPCWSTR SubsystemName, - LPVOID HandleId, - LPWSTR ObjectTypeName, - LPWSTR ObjectName, - PSECURITY_DESCRIPTOR SecurityDescriptor, - DWORD DesiredAccess, - PGENERIC_MAPPING GenericMapping, - BOOL ObjectCreation, - LPDWORD GrantedAccess, - LPBOOL AccessStatus, - LPBOOL pfGenerateOnClose); -// #ifdef UNICODE -// #... -// #else -alias AccessCheckAndAuditAlarmA AccessCheckAndAuditAlarm; -// #endif // !UNICODE - -// #if(_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL AccessCheckByTypeAndAuditAlarmA( - LPCSTR SubsystemName, - LPVOID HandleId, - LPCSTR ObjectTypeName, - LPCSTR ObjectName, - PSECURITY_DESCRIPTOR SecurityDescriptor, - PSID PrincipalSelfSid, - DWORD DesiredAccess, - AUDIT_EVENT_TYPE AuditType, - DWORD Flags, - POBJECT_TYPE_LIST ObjectTypeList, - DWORD ObjectTypeListLength, - PGENERIC_MAPPING GenericMapping, - BOOL ObjectCreation, - LPDWORD GrantedAccess, - LPBOOL AccessStatus, - LPBOOL pfGenerateOnClose); -extern(Windows) export BOOL AccessCheckByTypeAndAuditAlarmW( - LPCWSTR SubsystemName, - LPVOID HandleId, - LPCWSTR ObjectTypeName, - LPCWSTR ObjectName, - PSECURITY_DESCRIPTOR SecurityDescriptor, - PSID PrincipalSelfSid, - DWORD DesiredAccess, - AUDIT_EVENT_TYPE AuditType, - DWORD Flags, - POBJECT_TYPE_LIST ObjectTypeList, - DWORD ObjectTypeListLength, - PGENERIC_MAPPING GenericMapping, - BOOL ObjectCreation, - LPDWORD GrantedAccess, - LPBOOL AccessStatus, - LPBOOL pfGenerateOnClose); -// #ifdef UNICODE -// #... -// #else -alias AccessCheckByTypeAndAuditAlarmA AccessCheckByTypeAndAuditAlarm; -// #endif // !UNICODE - -extern(Windows) export BOOL AccessCheckByTypeResultListAndAuditAlarmA( - LPCSTR SubsystemName, - LPVOID HandleId, - LPCSTR ObjectTypeName, - LPCSTR ObjectName, - PSECURITY_DESCRIPTOR SecurityDescriptor, - PSID PrincipalSelfSid, - DWORD DesiredAccess, - AUDIT_EVENT_TYPE AuditType, - DWORD Flags, - POBJECT_TYPE_LIST ObjectTypeList, - DWORD ObjectTypeListLength, - PGENERIC_MAPPING GenericMapping, - BOOL ObjectCreation, - LPDWORD GrantedAccess, - LPDWORD AccessStatusList, - LPBOOL pfGenerateOnClose); -extern(Windows) export BOOL AccessCheckByTypeResultListAndAuditAlarmW( - LPCWSTR SubsystemName, - LPVOID HandleId, - LPCWSTR ObjectTypeName, - LPCWSTR ObjectName, - PSECURITY_DESCRIPTOR SecurityDescriptor, - PSID PrincipalSelfSid, - DWORD DesiredAccess, - AUDIT_EVENT_TYPE AuditType, - DWORD Flags, - POBJECT_TYPE_LIST ObjectTypeList, - DWORD ObjectTypeListLength, - PGENERIC_MAPPING GenericMapping, - BOOL ObjectCreation, - LPDWORD GrantedAccess, - LPDWORD AccessStatusList, - LPBOOL pfGenerateOnClose); -// #ifdef UNICODE -// #... -// #else -alias AccessCheckByTypeResultListAndAuditAlarmA AccessCheckByTypeResultListAndAuditAlarm; -// #endif // !UNICODE - -extern(Windows) export BOOL AccessCheckByTypeResultListAndAuditAlarmByHandleA( - LPCSTR SubsystemName, - LPVOID HandleId, - HANDLE ClientToken, - LPCSTR ObjectTypeName, - LPCSTR ObjectName, - PSECURITY_DESCRIPTOR SecurityDescriptor, - PSID PrincipalSelfSid, - DWORD DesiredAccess, - AUDIT_EVENT_TYPE AuditType, - DWORD Flags, - POBJECT_TYPE_LIST ObjectTypeList, - DWORD ObjectTypeListLength, - PGENERIC_MAPPING GenericMapping, - BOOL ObjectCreation, - LPDWORD GrantedAccess, - LPDWORD AccessStatusList, - LPBOOL pfGenerateOnClose); -extern(Windows) export BOOL AccessCheckByTypeResultListAndAuditAlarmByHandleW( - LPCWSTR SubsystemName, - LPVOID HandleId, - HANDLE ClientToken, - LPCWSTR ObjectTypeName, - LPCWSTR ObjectName, - PSECURITY_DESCRIPTOR SecurityDescriptor, - PSID PrincipalSelfSid, - DWORD DesiredAccess, - AUDIT_EVENT_TYPE AuditType, - DWORD Flags, - POBJECT_TYPE_LIST ObjectTypeList, - DWORD ObjectTypeListLength, - PGENERIC_MAPPING GenericMapping, - BOOL ObjectCreation, - LPDWORD GrantedAccess, - LPDWORD AccessStatusList, - LPBOOL pfGenerateOnClose); -// #ifdef UNICODE -// #... -// #else -alias AccessCheckByTypeResultListAndAuditAlarmByHandleA AccessCheckByTypeResultListAndAuditAlarmByHandle; -// #endif // !UNICODE - -// #endif //(_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL ObjectOpenAuditAlarmA( - LPCSTR SubsystemName, - LPVOID HandleId, - LPSTR ObjectTypeName, - LPSTR ObjectName, - PSECURITY_DESCRIPTOR pSecurityDescriptor, - HANDLE ClientToken, - DWORD DesiredAccess, - DWORD GrantedAccess, - PPRIVILEGE_SET Privileges, - BOOL ObjectCreation, - BOOL AccessGranted, - LPBOOL GenerateOnClose); -extern(Windows) export BOOL ObjectOpenAuditAlarmW( - LPCWSTR SubsystemName, - LPVOID HandleId, - LPWSTR ObjectTypeName, - LPWSTR ObjectName, - PSECURITY_DESCRIPTOR pSecurityDescriptor, - HANDLE ClientToken, - DWORD DesiredAccess, - DWORD GrantedAccess, - PPRIVILEGE_SET Privileges, - BOOL ObjectCreation, - BOOL AccessGranted, - LPBOOL GenerateOnClose); -// #ifdef UNICODE -// #... -// #else -alias ObjectOpenAuditAlarmA ObjectOpenAuditAlarm; -// #endif // !UNICODE - -extern(Windows) export BOOL ObjectPrivilegeAuditAlarmA( - LPCSTR SubsystemName, - LPVOID HandleId, - HANDLE ClientToken, - DWORD DesiredAccess, - PPRIVILEGE_SET Privileges, - BOOL AccessGranted); -extern(Windows) export BOOL ObjectPrivilegeAuditAlarmW( - LPCWSTR SubsystemName, - LPVOID HandleId, - HANDLE ClientToken, - DWORD DesiredAccess, - PPRIVILEGE_SET Privileges, - BOOL AccessGranted); -// #ifdef UNICODE -// #... -// #else -alias ObjectPrivilegeAuditAlarmA ObjectPrivilegeAuditAlarm; -// #endif // !UNICODE - -extern(Windows) export BOOL ObjectCloseAuditAlarmA( - LPCSTR SubsystemName, - LPVOID HandleId, - BOOL GenerateOnClose); -extern(Windows) export BOOL ObjectCloseAuditAlarmW( - LPCWSTR SubsystemName, - LPVOID HandleId, - BOOL GenerateOnClose); -// #ifdef UNICODE -// #... -// #else -alias ObjectCloseAuditAlarmA ObjectCloseAuditAlarm; -// #endif // !UNICODE - -extern(Windows) export BOOL ObjectDeleteAuditAlarmA( - LPCSTR SubsystemName, - LPVOID HandleId, - BOOL GenerateOnClose); -extern(Windows) export BOOL ObjectDeleteAuditAlarmW( - LPCWSTR SubsystemName, - LPVOID HandleId, - BOOL GenerateOnClose); -// #ifdef UNICODE -// #... -// #else -alias ObjectDeleteAuditAlarmA ObjectDeleteAuditAlarm; -// #endif // !UNICODE - -extern(Windows) export BOOL PrivilegedServiceAuditAlarmA( - LPCSTR SubsystemName, - LPCSTR ServiceName, - HANDLE ClientToken, - PPRIVILEGE_SET Privileges, - BOOL AccessGranted); -extern(Windows) export BOOL PrivilegedServiceAuditAlarmW( - LPCWSTR SubsystemName, - LPCWSTR ServiceName, - HANDLE ClientToken, - PPRIVILEGE_SET Privileges, - BOOL AccessGranted); -// #ifdef UNICODE -// #... -// #else -alias PrivilegedServiceAuditAlarmA PrivilegedServiceAuditAlarm; -// #endif // !UNICODE - -// #if(_WIN32_WINNT >= 0x0501) - -enum _0 { - - WinNullSid = 0, - WinWorldSid = 1, - WinLocalSid = 2, - WinCreatorOwnerSid = 3, - WinCreatorGroupSid = 4, - WinCreatorOwnerServerSid = 5, - WinCreatorGroupServerSid = 6, - WinNtAuthoritySid = 7, - WinDialupSid = 8, - WinNetworkSid = 9, - WinBatchSid = 10, - WinInteractiveSid = 11, - WinServiceSid = 12, - WinAnonymousSid = 13, - WinProxySid = 14, - WinEnterpriseControllersSid = 15, - WinSelfSid = 16, - WinAuthenticatedUserSid = 17, - WinRestrictedCodeSid = 18, - WinTerminalServerSid = 19, - WinRemoteLogonIdSid = 20, - WinLogonIdsSid = 21, - WinLocalSystemSid = 22, - WinLocalServiceSid = 23, - WinNetworkServiceSid = 24, - WinBuiltinDomainSid = 25, - WinBuiltinAdministratorsSid = 26, - WinBuiltinUsersSid = 27, - WinBuiltinGuestsSid = 28, - WinBuiltinPowerUsersSid = 29, - WinBuiltinAccountOperatorsSid = 30, - WinBuiltinSystemOperatorsSid = 31, - WinBuiltinPrintOperatorsSid = 32, - WinBuiltinBackupOperatorsSid = 33, - WinBuiltinReplicatorSid = 34, - WinBuiltinPreWindows2000CompatibleAccessSid = 35, - WinBuiltinRemoteDesktopUsersSid = 36, - WinBuiltinNetworkConfigurationOperatorsSid = 37, - WinAccountAdministratorSid = 38, - WinAccountGuestSid = 39, - WinAccountKrbtgtSid = 40, - WinAccountDomainAdminsSid = 41, - WinAccountDomainUsersSid = 42, - WinAccountDomainGuestsSid = 43, - WinAccountComputersSid = 44, - WinAccountControllersSid = 45, - WinAccountCertAdminsSid = 46, - WinAccountSchemaAdminsSid = 47, - WinAccountEnterpriseAdminsSid = 48, - WinAccountPolicyAdminsSid = 49, - WinAccountRasAndIasServersSid = 50, - -} -alias _0 WELL_KNOWN_SID_TYPE; - -extern(Windows) export BOOL IsWellKnownSid( - PSID pSid, - WELL_KNOWN_SID_TYPE WellKnownSidType); - -extern(Windows) export BOOL CreateWellKnownSid( - WELL_KNOWN_SID_TYPE WellKnownSidType, - PSID DomainSid , - PSID pSid, - DWORD *cbSid); - -extern(Windows) export BOOL EqualDomainSid( - PSID pSid1, - PSID pSid2, - BOOL *pfEqual); - -extern(Windows) export BOOL GetWindowsAccountDomainSid( - PSID pSid, - PSID ppDomainSid , - DWORD *cbSid); - -// #endif //(_WIN32_WINNT >= 0x0501) - -extern(Windows) export BOOL IsValidSid( - PSID pSid); - -extern(Windows) export BOOL EqualSid( - PSID pSid1, - PSID pSid2); - -extern(Windows) export BOOL EqualPrefixSid( - PSID pSid1, - PSID pSid2); - -extern(Windows) export DWORD GetSidLengthRequired( - UCHAR nSubAuthorityCount); - -extern(Windows) export BOOL AllocateAndInitializeSid( - PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, - BYTE nSubAuthorityCount, - DWORD nSubAuthority0, - DWORD nSubAuthority1, - DWORD nSubAuthority2, - DWORD nSubAuthority3, - DWORD nSubAuthority4, - DWORD nSubAuthority5, - DWORD nSubAuthority6, - DWORD nSubAuthority7, - PSID *pSid); - -extern(Windows) export PVOID FreeSid( - PSID pSid); - -extern(Windows) export BOOL InitializeSid( - PSID Sid, - PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, - BYTE nSubAuthorityCount); - -extern(Windows) export PSID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority( - PSID pSid); - -extern(Windows) export PDWORD GetSidSubAuthority( - PSID pSid, - DWORD nSubAuthority); - -extern(Windows) export PUCHAR GetSidSubAuthorityCount( - PSID pSid); - -extern(Windows) export DWORD GetLengthSid( - PSID pSid); - -extern(Windows) export BOOL CopySid( - DWORD nDestinationSidLength, - PSID pDestinationSid, - PSID pSourceSid); - -extern(Windows) export BOOL AreAllAccessesGranted( - DWORD GrantedAccess, - DWORD DesiredAccess); - -extern(Windows) export BOOL AreAnyAccessesGranted( - DWORD GrantedAccess, - DWORD DesiredAccess); - -extern(Windows) export VOID MapGenericMask( - PDWORD AccessMask, - PGENERIC_MAPPING GenericMapping); - -extern(Windows) export BOOL IsValidAcl( - PACL pAcl); - -extern(Windows) export BOOL InitializeAcl( - PACL pAcl, - DWORD nAclLength, - DWORD dwAclRevision); - -extern(Windows) export BOOL GetAclInformation( - PACL pAcl, - LPVOID pAclInformation, - DWORD nAclInformationLength, - ACL_INFORMATION_CLASS dwAclInformationClass); - -extern(Windows) export BOOL SetAclInformation( - PACL pAcl, - LPVOID pAclInformation, - DWORD nAclInformationLength, - ACL_INFORMATION_CLASS dwAclInformationClass); - -extern(Windows) export BOOL AddAce( - PACL pAcl, - DWORD dwAceRevision, - DWORD dwStartingAceIndex, - LPVOID pAceList, - DWORD nAceListLength); - -extern(Windows) export BOOL DeleteAce( - PACL pAcl, - DWORD dwAceIndex); - -extern(Windows) export BOOL GetAce( - PACL pAcl, - DWORD dwAceIndex, - LPVOID *pAce); - -extern(Windows) export BOOL AddAccessAllowedAce( - PACL pAcl, - DWORD dwAceRevision, - DWORD AccessMask, - PSID pSid); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL AddAccessAllowedAceEx( - PACL pAcl, - DWORD dwAceRevision, - DWORD AceFlags, - DWORD AccessMask, - PSID pSid); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export BOOL AddAccessDeniedAce( - PACL pAcl, - DWORD dwAceRevision, - DWORD AccessMask, - PSID pSid); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL AddAccessDeniedAceEx( - PACL pAcl, - DWORD dwAceRevision, - DWORD AceFlags, - DWORD AccessMask, - PSID pSid); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export BOOL AddAuditAccessAce( - PACL pAcl, - DWORD dwAceRevision, - DWORD dwAccessMask, - PSID pSid, - BOOL bAuditSuccess, - BOOL bAuditFailure); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL AddAuditAccessAceEx( - PACL pAcl, - DWORD dwAceRevision, - DWORD AceFlags, - DWORD dwAccessMask, - PSID pSid, - BOOL bAuditSuccess, - BOOL bAuditFailure); - -extern(Windows) export BOOL AddAccessAllowedObjectAce( - PACL pAcl, - DWORD dwAceRevision, - DWORD AceFlags, - DWORD AccessMask, - GUID *ObjectTypeGuid, - GUID *InheritedObjectTypeGuid, - PSID pSid); - -extern(Windows) export BOOL AddAccessDeniedObjectAce( - PACL pAcl, - DWORD dwAceRevision, - DWORD AceFlags, - DWORD AccessMask, - GUID *ObjectTypeGuid, - GUID *InheritedObjectTypeGuid, - PSID pSid); - -extern(Windows) export BOOL AddAuditAccessObjectAce( - PACL pAcl, - DWORD dwAceRevision, - DWORD AceFlags, - DWORD AccessMask, - GUID *ObjectTypeGuid, - GUID *InheritedObjectTypeGuid, - PSID pSid, - BOOL bAuditSuccess, - BOOL bAuditFailure); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export BOOL FindFirstFreeAce( - PACL pAcl, - LPVOID *pAce); - -extern(Windows) export BOOL InitializeSecurityDescriptor( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - DWORD dwRevision); - -extern(Windows) export BOOL IsValidSecurityDescriptor( - PSECURITY_DESCRIPTOR pSecurityDescriptor); - -extern(Windows) export DWORD GetSecurityDescriptorLength( - PSECURITY_DESCRIPTOR pSecurityDescriptor); - -extern(Windows) export BOOL GetSecurityDescriptorControl( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - PSECURITY_DESCRIPTOR_CONTROL pControl, - LPDWORD lpdwRevision); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL SetSecurityDescriptorControl( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest, - SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export BOOL SetSecurityDescriptorDacl( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - BOOL bDaclPresent, - PACL pDacl, - BOOL bDaclDefaulted); - -extern(Windows) export BOOL GetSecurityDescriptorDacl( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - LPBOOL lpbDaclPresent, - PACL *pDacl, - LPBOOL lpbDaclDefaulted); - -extern(Windows) export BOOL SetSecurityDescriptorSacl( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - BOOL bSaclPresent, - PACL pSacl, - BOOL bSaclDefaulted); - -extern(Windows) export BOOL GetSecurityDescriptorSacl( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - LPBOOL lpbSaclPresent, - PACL *pSacl, - LPBOOL lpbSaclDefaulted); - -extern(Windows) export BOOL SetSecurityDescriptorOwner( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - PSID pOwner, - BOOL bOwnerDefaulted); - -extern(Windows) export BOOL GetSecurityDescriptorOwner( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - PSID *pOwner, - LPBOOL lpbOwnerDefaulted); - -extern(Windows) export BOOL SetSecurityDescriptorGroup( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - PSID pGroup, - BOOL bGroupDefaulted); - -extern(Windows) export BOOL GetSecurityDescriptorGroup( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - PSID *pGroup, - LPBOOL lpbGroupDefaulted); - -extern(Windows) export DWORD SetSecurityDescriptorRMControl( - PSECURITY_DESCRIPTOR SecurityDescriptor, - PUCHAR RMControl ); - -extern(Windows) export DWORD GetSecurityDescriptorRMControl( - PSECURITY_DESCRIPTOR SecurityDescriptor, - PUCHAR RMControl); - -extern(Windows) export BOOL CreatePrivateObjectSecurity( - PSECURITY_DESCRIPTOR ParentDescriptor, - PSECURITY_DESCRIPTOR CreatorDescriptor, - PSECURITY_DESCRIPTOR * NewDescriptor, - BOOL IsDirectoryObject, - HANDLE Token, - PGENERIC_MAPPING GenericMapping); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL ConvertToAutoInheritPrivateObjectSecurity( - PSECURITY_DESCRIPTOR ParentDescriptor, - PSECURITY_DESCRIPTOR CurrentSecurityDescriptor, - PSECURITY_DESCRIPTOR *NewSecurityDescriptor, - GUID *ObjectType, - BOOLEAN IsDirectoryObject, - PGENERIC_MAPPING GenericMapping); - -extern(Windows) export BOOL CreatePrivateObjectSecurityEx( - PSECURITY_DESCRIPTOR ParentDescriptor, - PSECURITY_DESCRIPTOR CreatorDescriptor, - PSECURITY_DESCRIPTOR * NewDescriptor, - GUID *ObjectType , - BOOL IsContainerObject, - ULONG AutoInheritFlags, - HANDLE Token, - PGENERIC_MAPPING GenericMapping); - -extern(Windows) export BOOL CreatePrivateObjectSecurityWithMultipleInheritance( - PSECURITY_DESCRIPTOR ParentDescriptor, - PSECURITY_DESCRIPTOR CreatorDescriptor, - PSECURITY_DESCRIPTOR * NewDescriptor, - GUID **ObjectTypes , - ULONG GuidCount, - BOOL IsContainerObject, - ULONG AutoInheritFlags, - HANDLE Token, - PGENERIC_MAPPING GenericMapping); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export BOOL SetPrivateObjectSecurity( - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR ModificationDescriptor, - PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor, - PGENERIC_MAPPING GenericMapping, - HANDLE Token); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL SetPrivateObjectSecurityEx( - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR ModificationDescriptor, - PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor, - ULONG AutoInheritFlags, - PGENERIC_MAPPING GenericMapping, - HANDLE Token ); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export BOOL GetPrivateObjectSecurity( - PSECURITY_DESCRIPTOR ObjectDescriptor, - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR ResultantDescriptor, - DWORD DescriptorLength, - PDWORD ReturnLength); - -extern(Windows) export BOOL DestroyPrivateObjectSecurity( - PSECURITY_DESCRIPTOR * ObjectDescriptor); - -extern(Windows) export BOOL MakeSelfRelativeSD( - PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, - PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, - LPDWORD lpdwBufferLength); - -extern(Windows) export BOOL MakeAbsoluteSD( - PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, - PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, - LPDWORD lpdwAbsoluteSecurityDescriptorSize, - PACL pDacl, - LPDWORD lpdwDaclSize, - PACL pSacl, - LPDWORD lpdwSaclSize, - PSID pOwner, - LPDWORD lpdwOwnerSize, - PSID pPrimaryGroup, - LPDWORD lpdwPrimaryGroupSize); - -extern(Windows) export BOOL MakeAbsoluteSD2( - PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, - LPDWORD lpdwBufferSize); - -extern(Windows) export BOOL SetFileSecurityA( - LPCSTR lpFileName, - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR pSecurityDescriptor); -extern(Windows) export BOOL SetFileSecurityW( - LPCWSTR lpFileName, - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR pSecurityDescriptor); -// #ifdef UNICODE -// #... -// #else -alias SetFileSecurityA SetFileSecurity; -// #endif // !UNICODE - -extern(Windows) export BOOL GetFileSecurityA( - LPCSTR lpFileName, - SECURITY_INFORMATION RequestedInformation, - PSECURITY_DESCRIPTOR pSecurityDescriptor, - DWORD nLength, - LPDWORD lpnLengthNeeded); -extern(Windows) export BOOL GetFileSecurityW( - LPCWSTR lpFileName, - SECURITY_INFORMATION RequestedInformation, - PSECURITY_DESCRIPTOR pSecurityDescriptor, - DWORD nLength, - LPDWORD lpnLengthNeeded); -// #ifdef UNICODE -// #... -// #else -alias GetFileSecurityA GetFileSecurity; -// #endif // !UNICODE - -extern(Windows) export BOOL SetKernelObjectSecurity( - HANDLE Handle, - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR SecurityDescriptor); - -extern(Windows) export HANDLE FindFirstChangeNotificationA( - LPCSTR lpPathName, - BOOL bWatchSubtree, - DWORD dwNotifyFilter); -extern(Windows) export HANDLE FindFirstChangeNotificationW( - LPCWSTR lpPathName, - BOOL bWatchSubtree, - DWORD dwNotifyFilter); -// #ifdef UNICODE -// #... -// #else -alias FindFirstChangeNotificationA FindFirstChangeNotification; -// #endif // !UNICODE - -extern(Windows) export BOOL FindNextChangeNotification( - HANDLE hChangeHandle); - -extern(Windows) export BOOL FindCloseChangeNotification( - HANDLE hChangeHandle); - -// #if(_WIN32_WINNT >= 0x0400) -extern(Windows) export BOOL ReadDirectoryChangesW( - HANDLE hDirectory, - LPVOID lpBuffer, - DWORD nBufferLength, - BOOL bWatchSubtree, - DWORD dwNotifyFilter, - LPDWORD lpBytesReturned, - LPOVERLAPPED lpOverlapped, - LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); -// #endif /* _WIN32_WINNT >= 0x0400 */ - -extern(Windows) export BOOL VirtualLock( - LPVOID lpAddress, - SIZE_T dwSize); - -extern(Windows) export BOOL VirtualUnlock( - LPVOID lpAddress, - SIZE_T dwSize); - -extern(Windows) export LPVOID MapViewOfFileEx( - HANDLE hFileMappingObject, - DWORD dwDesiredAccess, - DWORD dwFileOffsetHigh, - DWORD dwFileOffsetLow, - SIZE_T dwNumberOfBytesToMap, - LPVOID lpBaseAddress); - -extern(Windows) export BOOL SetPriorityClass( - HANDLE hProcess, - DWORD dwPriorityClass); - -extern(Windows) export DWORD GetPriorityClass( - HANDLE hProcess); - -extern(Windows) export BOOL IsBadReadPtr( - VOID *lp, - UINT_PTR ucb); - -extern(Windows) export BOOL IsBadWritePtr( - LPVOID lp, - UINT_PTR ucb); - -extern(Windows) export BOOL IsBadHugeReadPtr( - VOID *lp, - UINT_PTR ucb); - -extern(Windows) export BOOL IsBadHugeWritePtr( - LPVOID lp, - UINT_PTR ucb); - -extern(Windows) export BOOL IsBadCodePtr( - FARPROC lpfn); - -extern(Windows) export BOOL IsBadStringPtrA( - LPCSTR lpsz, - UINT_PTR ucchMax); -extern(Windows) export BOOL IsBadStringPtrW( - LPCWSTR lpsz, - UINT_PTR ucchMax); -// #ifdef UNICODE -// #... -// #else -alias IsBadStringPtrA IsBadStringPtr; -// #endif // !UNICODE - -extern(Windows) export BOOL LookupAccountSidA( - LPCSTR lpSystemName, - PSID Sid, - LPSTR Name, - LPDWORD cbName, - LPSTR ReferencedDomainName, - LPDWORD cbReferencedDomainName, - PSID_NAME_USE peUse); -extern(Windows) export BOOL LookupAccountSidW( - LPCWSTR lpSystemName, - PSID Sid, - LPWSTR Name, - LPDWORD cbName, - LPWSTR ReferencedDomainName, - LPDWORD cbReferencedDomainName, - PSID_NAME_USE peUse); -// #ifdef UNICODE -// #... -// #else -alias LookupAccountSidA LookupAccountSid; -// #endif // !UNICODE - -extern(Windows) export BOOL LookupAccountNameA( - LPCSTR lpSystemName, - LPCSTR lpAccountName, - PSID Sid, - LPDWORD cbSid, - LPSTR ReferencedDomainName, - LPDWORD cbReferencedDomainName, - PSID_NAME_USE peUse); -extern(Windows) export BOOL LookupAccountNameW( - LPCWSTR lpSystemName, - LPCWSTR lpAccountName, - PSID Sid, - LPDWORD cbSid, - LPWSTR ReferencedDomainName, - LPDWORD cbReferencedDomainName, - PSID_NAME_USE peUse); -// #ifdef UNICODE -// #... -// #else -alias LookupAccountNameA LookupAccountName; -// #endif // !UNICODE - -extern(Windows) export BOOL LookupPrivilegeValueA( - LPCSTR lpSystemName, - LPCSTR lpName, - PLUID lpLuid); -extern(Windows) export BOOL LookupPrivilegeValueW( - LPCWSTR lpSystemName, - LPCWSTR lpName, - PLUID lpLuid); -// #ifdef UNICODE -// #... -// #else -alias LookupPrivilegeValueA LookupPrivilegeValue; -// #endif // !UNICODE - -extern(Windows) export BOOL LookupPrivilegeNameA( - LPCSTR lpSystemName, - PLUID lpLuid, - LPSTR lpName, - LPDWORD cbName); -extern(Windows) export BOOL LookupPrivilegeNameW( - LPCWSTR lpSystemName, - PLUID lpLuid, - LPWSTR lpName, - LPDWORD cbName); -// #ifdef UNICODE -// #... -// #else -alias LookupPrivilegeNameA LookupPrivilegeName; -// #endif // !UNICODE - -extern(Windows) export BOOL LookupPrivilegeDisplayNameA( - LPCSTR lpSystemName, - LPCSTR lpName, - LPSTR lpDisplayName, - LPDWORD cbDisplayName, - LPDWORD lpLanguageId); -extern(Windows) export BOOL LookupPrivilegeDisplayNameW( - LPCWSTR lpSystemName, - LPCWSTR lpName, - LPWSTR lpDisplayName, - LPDWORD cbDisplayName, - LPDWORD lpLanguageId); -// #ifdef UNICODE -// #... -// #else -alias LookupPrivilegeDisplayNameA LookupPrivilegeDisplayName; -// #endif // !UNICODE - -extern(Windows) export BOOL AllocateLocallyUniqueId( - PLUID Luid); - -extern(Windows) export BOOL BuildCommDCBA( - LPCSTR lpDef, - LPDCB lpDCB); -extern(Windows) export BOOL BuildCommDCBW( - LPCWSTR lpDef, - LPDCB lpDCB); -// #ifdef UNICODE -// #... -// #else -alias BuildCommDCBA BuildCommDCB; -// #endif // !UNICODE - -extern(Windows) export BOOL BuildCommDCBAndTimeoutsA( - LPCSTR lpDef, - LPDCB lpDCB, - LPCOMMTIMEOUTS lpCommTimeouts); -extern(Windows) export BOOL BuildCommDCBAndTimeoutsW( - LPCWSTR lpDef, - LPDCB lpDCB, - LPCOMMTIMEOUTS lpCommTimeouts); -// #ifdef UNICODE -// #... -// #else -alias BuildCommDCBAndTimeoutsA BuildCommDCBAndTimeouts; -// #endif // !UNICODE - -extern(Windows) export BOOL CommConfigDialogA( - LPCSTR lpszName, - HWND hWnd, - LPCOMMCONFIG lpCC); -extern(Windows) export BOOL CommConfigDialogW( - LPCWSTR lpszName, - HWND hWnd, - LPCOMMCONFIG lpCC); -// #ifdef UNICODE -// #... -// #else -alias CommConfigDialogA CommConfigDialog; -// #endif // !UNICODE - -extern(Windows) export BOOL GetDefaultCommConfigA( - LPCSTR lpszName, - LPCOMMCONFIG lpCC, - LPDWORD lpdwSize); -extern(Windows) export BOOL GetDefaultCommConfigW( - LPCWSTR lpszName, - LPCOMMCONFIG lpCC, - LPDWORD lpdwSize); -// #ifdef UNICODE -// #... -// #else -alias GetDefaultCommConfigA GetDefaultCommConfig; -// #endif // !UNICODE - -extern(Windows) export BOOL SetDefaultCommConfigA( - LPCSTR lpszName, - LPCOMMCONFIG lpCC, - DWORD dwSize); -extern(Windows) export BOOL SetDefaultCommConfigW( - LPCWSTR lpszName, - LPCOMMCONFIG lpCC, - DWORD dwSize); -// #ifdef UNICODE -// #... -// #else -alias SetDefaultCommConfigA SetDefaultCommConfig; -// #endif // !UNICODE - -// #ifndef _MAC -enum : uint { MAX_COMPUTERNAME_LENGTH = 15 } -// #else -// #... -// #endif - -extern(Windows) export BOOL GetComputerNameA( - LPSTR lpBuffer, - LPDWORD nSize); -extern(Windows) export BOOL GetComputerNameW( - LPWSTR lpBuffer, - LPDWORD nSize); -// #ifdef UNICODE -// #... -// #else -alias GetComputerNameA GetComputerName; -// #endif // !UNICODE - -extern(Windows) export BOOL SetComputerNameA( - LPCSTR lpComputerName); -extern(Windows) export BOOL SetComputerNameW( - LPCWSTR lpComputerName); -// #ifdef UNICODE -// #... -// #else -alias SetComputerNameA SetComputerName; -// #endif // !UNICODE - -// #if (_WIN32_WINNT >= 0x0500) - -alias int _COMPUTER_NAME_FORMAT; -enum { - ComputerNameNetBIOS, - ComputerNameDnsHostname, - ComputerNameDnsDomain, - ComputerNameDnsFullyQualified, - ComputerNamePhysicalNetBIOS, - ComputerNamePhysicalDnsHostname, - ComputerNamePhysicalDnsDomain, - ComputerNamePhysicalDnsFullyQualified, - ComputerNameMax, -} -alias _COMPUTER_NAME_FORMAT COMPUTER_NAME_FORMAT; - -extern(Windows) export BOOL GetComputerNameExA( - COMPUTER_NAME_FORMAT NameType, - LPSTR lpBuffer, - LPDWORD nSize); -extern(Windows) export BOOL GetComputerNameExW( - COMPUTER_NAME_FORMAT NameType, - LPWSTR lpBuffer, - LPDWORD nSize); -// #ifdef UNICODE -// #... -// #else -alias GetComputerNameExA GetComputerNameEx; -// #endif // !UNICODE - -extern(Windows) export BOOL SetComputerNameExA( - COMPUTER_NAME_FORMAT NameType, - LPCSTR lpBuffer); -extern(Windows) export BOOL SetComputerNameExW( - COMPUTER_NAME_FORMAT NameType, - LPCWSTR lpBuffer); -// #ifdef UNICODE -// #... -// #else -alias SetComputerNameExA SetComputerNameEx; -// #endif // !UNICODE - -extern(Windows) export DWORD AddLocalAlternateComputerNameA( - LPCSTR lpDnsFQHostname, - ULONG ulFlags); -extern(Windows) export DWORD AddLocalAlternateComputerNameW( - LPCWSTR lpDnsFQHostname, - ULONG ulFlags); -// #ifdef UNICODE -// #... -// #else -alias AddLocalAlternateComputerNameA AddLocalAlternateComputerName; -// #endif // !UNICODE - -extern(Windows) export DWORD RemoveLocalAlternateComputerNameA( - LPCSTR lpAltDnsFQHostname, - ULONG ulFlags); -extern(Windows) export DWORD RemoveLocalAlternateComputerNameW( - LPCWSTR lpAltDnsFQHostname, - ULONG ulFlags); -// #ifdef UNICODE -// #... -// #else -alias RemoveLocalAlternateComputerNameA RemoveLocalAlternateComputerName; -// #endif // !UNICODE - -extern(Windows) export DWORD SetLocalPrimaryComputerNameA( - LPCSTR lpAltDnsFQHostname, - ULONG ulFlags); -extern(Windows) export DWORD SetLocalPrimaryComputerNameW( - LPCWSTR lpAltDnsFQHostname, - ULONG ulFlags); -// #ifdef UNICODE -// #... -// #else -alias SetLocalPrimaryComputerNameA SetLocalPrimaryComputerName; -// #endif // !UNICODE - -alias int _COMPUTER_NAME_TYPE; -enum { - PrimaryComputerName, - AlternateComputerNames, - AllComputerNames, - ComputerNameTypeMax, -} -alias _COMPUTER_NAME_TYPE COMPUTER_NAME_TYPE; - -extern(Windows) export DWORD EnumerateLocalComputerNamesA( - COMPUTER_NAME_TYPE NameType, - ULONG ulFlags, - LPSTR lpDnsFQHostname, - LPDWORD nSize); -extern(Windows) export DWORD EnumerateLocalComputerNamesW( - COMPUTER_NAME_TYPE NameType, - ULONG ulFlags, - LPWSTR lpDnsFQHostname, - LPDWORD nSize); -// #ifdef UNICODE -// #... -// #else -alias EnumerateLocalComputerNamesA EnumerateLocalComputerNames; -// #endif // !UNICODE - -extern(Windows) export BOOL DnsHostnameToComputerNameA( - LPCSTR Hostname, - LPSTR ComputerName, - LPDWORD nSize); -extern(Windows) export BOOL DnsHostnameToComputerNameW( - LPCWSTR Hostname, - LPWSTR ComputerName, - LPDWORD nSize); -// #ifdef UNICODE -// #... -// #else -alias DnsHostnameToComputerNameA DnsHostnameToComputerName; -// #endif // !UNICODE - -// #endif // _WIN32_WINNT - -extern(Windows) export BOOL GetUserNameA( - LPSTR lpBuffer, - LPDWORD nSize); -extern(Windows) export BOOL GetUserNameW( - LPWSTR lpBuffer, - LPDWORD nSize); -// #ifdef UNICODE -// #... -// #else -alias GetUserNameA GetUserName; -// #endif // !UNICODE - -enum : uint { LOGON32_LOGON_INTERACTIVE = 2 } -enum : uint { LOGON32_LOGON_NETWORK = 3 } -enum : uint { LOGON32_LOGON_BATCH = 4 } -enum : uint { LOGON32_LOGON_SERVICE = 5 } -enum : uint { LOGON32_LOGON_UNLOCK = 7 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { LOGON32_LOGON_NETWORK_CLEARTEXT = 8 } -enum : uint { LOGON32_LOGON_NEW_CREDENTIALS = 9 } -// #endif // (_WIN32_WINNT >= 0x0500) - -enum : uint { LOGON32_PROVIDER_DEFAULT = 0 } -enum : uint { LOGON32_PROVIDER_WINNT35 = 1 } -// #if(_WIN32_WINNT >= 0x0400) -enum : uint { LOGON32_PROVIDER_WINNT40 = 2 } -// #endif /* _WIN32_WINNT >= 0x0400 */ -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { LOGON32_PROVIDER_WINNT50 = 3 } -// #endif // (_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL LogonUserA( - LPSTR lpszUsername, - LPSTR lpszDomain, - LPSTR lpszPassword, - DWORD dwLogonType, - DWORD dwLogonProvider, - PHANDLE phToken); -extern(Windows) export BOOL LogonUserW( - LPWSTR lpszUsername, - LPWSTR lpszDomain, - LPWSTR lpszPassword, - DWORD dwLogonType, - DWORD dwLogonProvider, - PHANDLE phToken); -// #ifdef UNICODE -// #... -// #else -alias LogonUserA LogonUser; -// #endif // !UNICODE - -extern(Windows) export BOOL LogonUserExA( - LPSTR lpszUsername, - LPSTR lpszDomain, - LPSTR lpszPassword, - DWORD dwLogonType, - DWORD dwLogonProvider, - PHANDLE phToken , - PSID *ppLogonSid , - PVOID *ppProfileBuffer , - LPDWORD pdwProfileLength , - PQUOTA_LIMITS pQuotaLimits ); -extern(Windows) export BOOL LogonUserExW( - LPWSTR lpszUsername, - LPWSTR lpszDomain, - LPWSTR lpszPassword, - DWORD dwLogonType, - DWORD dwLogonProvider, - PHANDLE phToken , - PSID *ppLogonSid , - PVOID *ppProfileBuffer , - LPDWORD pdwProfileLength , - PQUOTA_LIMITS pQuotaLimits ); -// #ifdef UNICODE -// #... -// #else -alias LogonUserExA LogonUserEx; -// #endif // !UNICODE - -extern(Windows) export BOOL ImpersonateLoggedOnUser( - HANDLE hToken); - -extern(Windows) export BOOL CreateProcessAsUserA( - HANDLE hToken, - LPCSTR lpApplicationName, - LPSTR lpCommandLine, - LPSECURITY_ATTRIBUTES lpProcessAttributes, - LPSECURITY_ATTRIBUTES lpThreadAttributes, - BOOL bInheritHandles, - DWORD dwCreationFlags, - LPVOID lpEnvironment, - LPCSTR lpCurrentDirectory, - LPSTARTUPINFOA lpStartupInfo, - LPPROCESS_INFORMATION lpProcessInformation); -extern(Windows) export BOOL CreateProcessAsUserW( - HANDLE hToken, - LPCWSTR lpApplicationName, - LPWSTR lpCommandLine, - LPSECURITY_ATTRIBUTES lpProcessAttributes, - LPSECURITY_ATTRIBUTES lpThreadAttributes, - BOOL bInheritHandles, - DWORD dwCreationFlags, - LPVOID lpEnvironment, - LPCWSTR lpCurrentDirectory, - LPSTARTUPINFOW lpStartupInfo, - LPPROCESS_INFORMATION lpProcessInformation); -// #ifdef UNICODE -// #... -// #else -alias CreateProcessAsUserA CreateProcessAsUser; -// #endif // !UNICODE - -// #if(_WIN32_WINNT >= 0x0500) - -enum : uint { LOGON_WITH_PROFILE = 0x00000001 } -enum : uint { LOGON_NETCREDENTIALS_ONLY = 0x00000002 } - -extern(Windows) export BOOL CreateProcessWithLogonW( - LPCWSTR lpUsername, - LPCWSTR lpDomain, - LPCWSTR lpPassword, - DWORD dwLogonFlags, - LPCWSTR lpApplicationName, - LPWSTR lpCommandLine, - DWORD dwCreationFlags, - LPVOID lpEnvironment, - LPCWSTR lpCurrentDirectory, - LPSTARTUPINFOW lpStartupInfo, - LPPROCESS_INFORMATION lpProcessInformation); - -// #endif // (_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL ImpersonateAnonymousToken( - HANDLE ThreadHandle); - -extern(Windows) export BOOL DuplicateTokenEx( - HANDLE hExistingToken, - DWORD dwDesiredAccess, - LPSECURITY_ATTRIBUTES lpTokenAttributes, - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, - TOKEN_TYPE TokenType, - PHANDLE phNewToken); - -extern(Windows) export BOOL CreateRestrictedToken( - HANDLE ExistingTokenHandle, - DWORD Flags, - DWORD DisableSidCount, - PSID_AND_ATTRIBUTES SidsToDisable , - DWORD DeletePrivilegeCount, - PLUID_AND_ATTRIBUTES PrivilegesToDelete , - DWORD RestrictedSidCount, - PSID_AND_ATTRIBUTES SidsToRestrict , - PHANDLE NewTokenHandle); - -extern(Windows) export BOOL IsTokenRestricted( - HANDLE TokenHandle); - -extern(Windows) export BOOL IsTokenUntrusted( - HANDLE TokenHandle); - -extern(Windows) export BOOL CheckTokenMembership( - HANDLE TokenHandle , - PSID SidToCheck, - PBOOL IsMember); - -// #if (_WIN32_WINNT >= 0x0500) - -alias WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK; - -extern(Windows) export BOOL RegisterWaitForSingleObject( - PHANDLE phNewWaitObject, - HANDLE hObject, - WAITORTIMERCALLBACK Callback, - PVOID Context, - ULONG dwMilliseconds, - ULONG dwFlags); - -extern(Windows) export HANDLE RegisterWaitForSingleObjectEx( - HANDLE hObject, - WAITORTIMERCALLBACK Callback, - PVOID Context, - ULONG dwMilliseconds, - ULONG dwFlags); - -extern(Windows) export BOOL UnregisterWait( - HANDLE WaitHandle); - -extern(Windows) export BOOL UnregisterWaitEx( - HANDLE WaitHandle, - HANDLE CompletionEvent); - -extern(Windows) export BOOL QueueUserWorkItem( - LPTHREAD_START_ROUTINE Function, - PVOID Context, - ULONG Flags); - -extern(Windows) export BOOL BindIoCompletionCallback( - HANDLE FileHandle, - LPOVERLAPPED_COMPLETION_ROUTINE Function, - ULONG Flags); - -extern(Windows) export HANDLE CreateTimerQueue(); - -extern(Windows) export BOOL CreateTimerQueueTimer( - PHANDLE phNewTimer, - HANDLE TimerQueue, - WAITORTIMERCALLBACK Callback, - PVOID Parameter, - DWORD DueTime, - DWORD Period, - ULONG Flags); - -extern(Windows) export BOOL ChangeTimerQueueTimer( - HANDLE TimerQueue, - HANDLE Timer, - ULONG DueTime, - ULONG Period); - -extern(Windows) export BOOL DeleteTimerQueueTimer( - HANDLE TimerQueue, - HANDLE Timer, - HANDLE CompletionEvent); - -extern(Windows) export BOOL DeleteTimerQueueEx( - HANDLE TimerQueue, - HANDLE CompletionEvent); - -extern(Windows) export HANDLE SetTimerQueueTimer( - HANDLE TimerQueue, - WAITORTIMERCALLBACK Callback, - PVOID Parameter, - DWORD DueTime, - DWORD Period, - BOOL PreferIo); - -extern(Windows) export BOOL CancelTimerQueueTimer( - HANDLE TimerQueue, - HANDLE Timer); - -extern(Windows) export BOOL DeleteTimerQueue( - HANDLE TimerQueue); - -// #endif // _WIN32_WINNT - -// #if(_WIN32_WINNT >= 0x0400) - -enum : uint { HW_PROFILE_GUIDLEN = 39 } -enum : uint { MAX_PROFILE_LEN = 80 } - -enum : uint { DOCKINFO_UNDOCKED = 0x1 } -enum : uint { DOCKINFO_DOCKED = 0x2 } -enum : uint { DOCKINFO_USER_SUPPLIED = 0x4 } -enum : uint { DOCKINFO_USER_UNDOCKED = DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKED } -enum : uint { DOCKINFO_USER_DOCKED = DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED } - -struct tagHW_PROFILE_INFOA { - DWORD dwDockInfo; - CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN]; - CHAR szHwProfileName[MAX_PROFILE_LEN]; -} -alias tagHW_PROFILE_INFOA HW_PROFILE_INFOA; -alias tagHW_PROFILE_INFOA* LPHW_PROFILE_INFOA; - -struct tagHW_PROFILE_INFOW { - DWORD dwDockInfo; - WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN]; - WCHAR szHwProfileName[MAX_PROFILE_LEN]; -} -alias tagHW_PROFILE_INFOW HW_PROFILE_INFOW; -alias tagHW_PROFILE_INFOW* LPHW_PROFILE_INFOW; - -// #ifdef UNICODE -// ... -// #else -alias HW_PROFILE_INFOA HW_PROFILE_INFO; -alias LPHW_PROFILE_INFOA LPHW_PROFILE_INFO; -// #endif // UNICODE - -extern(Windows) export BOOL GetCurrentHwProfileA( - LPHW_PROFILE_INFOA lpHwProfileInfo); -extern(Windows) export BOOL GetCurrentHwProfileW( - LPHW_PROFILE_INFOW lpHwProfileInfo); -// #ifdef UNICODE -// #... -// #else -alias GetCurrentHwProfileA GetCurrentHwProfile; -// #endif // !UNICODE -// #endif /* _WIN32_WINNT >= 0x0400 */ - -extern(Windows) export BOOL QueryPerformanceCounter( - LARGE_INTEGER *lpPerformanceCount); - -extern(Windows) export BOOL QueryPerformanceFrequency( - LARGE_INTEGER *lpFrequency); - -extern(Windows) export BOOL GetVersionExA( - LPOSVERSIONINFOA lpVersionInformation); -extern(Windows) export BOOL GetVersionExW( - LPOSVERSIONINFOW lpVersionInformation); -// #ifdef UNICODE -// #... -// #else -alias GetVersionExA GetVersionEx; -// #endif // !UNICODE - -extern(Windows) export BOOL VerifyVersionInfoA( - LPOSVERSIONINFOEXA lpVersionInformation, - DWORD dwTypeMask, - DWORDLONG dwlConditionMask); -extern(Windows) export BOOL VerifyVersionInfoW( - LPOSVERSIONINFOEXW lpVersionInformation, - DWORD dwTypeMask, - DWORDLONG dwlConditionMask); -// #ifdef UNICODE -// #... -// #else -alias VerifyVersionInfoA VerifyVersionInfo; -// #endif // !UNICODE - -import win32.ansi.winerror; - -enum : uint { TC_NORMAL = 0 } -enum : uint { TC_HARDERR = 1 } -enum : uint { TC_GP_TRAP = 2 } -enum : uint { TC_SIGNAL = 3 } - -// #if(WINVER >= 0x0400) - -enum : uint { AC_LINE_OFFLINE = 0x00 } -enum : uint { AC_LINE_ONLINE = 0x01 } -enum : uint { AC_LINE_BACKUP_POWER = 0x02 } -enum : uint { AC_LINE_UNKNOWN = 0xFF } - -enum : uint { BATTERY_FLAG_HIGH = 0x01 } -enum : uint { BATTERY_FLAG_LOW = 0x02 } -enum : uint { BATTERY_FLAG_CRITICAL = 0x04 } -enum : uint { BATTERY_FLAG_CHARGING = 0x08 } -enum : uint { BATTERY_FLAG_NO_BATTERY = 0x80 } -enum : uint { BATTERY_FLAG_UNKNOWN = 0xFF } - -enum : uint { BATTERY_PERCENTAGE_UNKNOWN = 0xFF } - -enum : uint { BATTERY_LIFE_UNKNOWN = 0xFFFFFFFF } - -struct _SYSTEM_POWER_STATUS { - BYTE ACLineStatus; - BYTE BatteryFlag; - BYTE BatteryLifePercent; - BYTE Reserved1; - DWORD BatteryLifeTime; - DWORD BatteryFullLifeTime; -} -alias _SYSTEM_POWER_STATUS SYSTEM_POWER_STATUS; -alias _SYSTEM_POWER_STATUS* LPSYSTEM_POWER_STATUS; - -extern(Windows) export BOOL GetSystemPowerStatus( - LPSYSTEM_POWER_STATUS lpSystemPowerStatus); - -extern(Windows) export BOOL SetSystemPowerState( - BOOL fSuspend, - BOOL fForce); - -// #endif /* WINVER >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL AllocateUserPhysicalPages( - HANDLE hProcess, - PULONG_PTR NumberOfPages, - PULONG_PTR PageArray); - -extern(Windows) export BOOL FreeUserPhysicalPages( - HANDLE hProcess, - PULONG_PTR NumberOfPages, - PULONG_PTR PageArray); - -extern(Windows) export BOOL MapUserPhysicalPages( - PVOID VirtualAddress, - ULONG_PTR NumberOfPages, - PULONG_PTR PageArray ); - -extern(Windows) export BOOL MapUserPhysicalPagesScatter( - PVOID *VirtualAddresses, - ULONG_PTR NumberOfPages, - PULONG_PTR PageArray ); - -extern(Windows) export HANDLE CreateJobObjectA( - LPSECURITY_ATTRIBUTES lpJobAttributes, - LPCSTR lpName); -extern(Windows) export HANDLE CreateJobObjectW( - LPSECURITY_ATTRIBUTES lpJobAttributes, - LPCWSTR lpName); -// #ifdef UNICODE -// #... -// #else -alias CreateJobObjectA CreateJobObject; -// #endif // !UNICODE - -extern(Windows) export HANDLE OpenJobObjectA( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCSTR lpName); -extern(Windows) export HANDLE OpenJobObjectW( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCWSTR lpName); -// #ifdef UNICODE -// #... -// #else -alias OpenJobObjectA OpenJobObject; -// #endif // !UNICODE - -extern(Windows) export BOOL AssignProcessToJobObject( - HANDLE hJob, - HANDLE hProcess); - -extern(Windows) export BOOL TerminateJobObject( - HANDLE hJob, - UINT uExitCode); - -extern(Windows) export BOOL QueryInformationJobObject( - HANDLE hJob, - JOBOBJECTINFOCLASS JobObjectInformationClass, - LPVOID lpJobObjectInformation, - DWORD cbJobObjectInformationLength, - LPDWORD lpReturnLength); - -extern(Windows) export BOOL SetInformationJobObject( - HANDLE hJob, - JOBOBJECTINFOCLASS JobObjectInformationClass, - LPVOID lpJobObjectInformation, - DWORD cbJobObjectInformationLength); - -extern(Windows) export BOOL IsProcessInJob( - HANDLE ProcessHandle, - HANDLE JobHandle, - PBOOL Result); - -extern(Windows) export BOOL CreateJobSet( - ULONG NumJob, - PJOB_SET_ARRAY UserJobSet, - ULONG Flags); - -extern(Windows) export PVOID AddVectoredExceptionHandler( - ULONG FirstHandler, - PVECTORED_EXCEPTION_HANDLER VectoredHandler); - -extern(Windows) export ULONG RemoveVectoredExceptionHandler( - PVOID VectoredHandlerHandle); - -extern(Windows) export HANDLE FindFirstVolumeA( - LPSTR lpszVolumeName, - DWORD cchBufferLength); -extern(Windows) export HANDLE FindFirstVolumeW( - LPWSTR lpszVolumeName, - DWORD cchBufferLength); -// #ifdef UNICODE -// #... -// #else -alias FindFirstVolumeA FindFirstVolume; -// #endif // !UNICODE - -extern(Windows) export BOOL FindNextVolumeA( - HANDLE hFindVolume, - LPSTR lpszVolumeName, - DWORD cchBufferLength); -extern(Windows) export BOOL FindNextVolumeW( - HANDLE hFindVolume, - LPWSTR lpszVolumeName, - DWORD cchBufferLength); -// #ifdef UNICODE -// #... -// #else -alias FindNextVolumeA FindNextVolume; -// #endif // !UNICODE - -extern(Windows) export BOOL FindVolumeClose( - HANDLE hFindVolume); - -extern(Windows) export HANDLE FindFirstVolumeMountPointA( - LPCSTR lpszRootPathName, - LPSTR lpszVolumeMountPoint, - DWORD cchBufferLength); -extern(Windows) export HANDLE FindFirstVolumeMountPointW( - LPCWSTR lpszRootPathName, - LPWSTR lpszVolumeMountPoint, - DWORD cchBufferLength); -// #ifdef UNICODE -// #... -// #else -alias FindFirstVolumeMountPointA FindFirstVolumeMountPoint; -// #endif // !UNICODE - -extern(Windows) export BOOL FindNextVolumeMountPointA( - HANDLE hFindVolumeMountPoint, - LPSTR lpszVolumeMountPoint, - DWORD cchBufferLength); -extern(Windows) export BOOL FindNextVolumeMountPointW( - HANDLE hFindVolumeMountPoint, - LPWSTR lpszVolumeMountPoint, - DWORD cchBufferLength); -// #ifdef UNICODE -// #... -// #else -alias FindNextVolumeMountPointA FindNextVolumeMountPoint; -// #endif // !UNICODE - -extern(Windows) export BOOL FindVolumeMountPointClose( - HANDLE hFindVolumeMountPoint); - -extern(Windows) export BOOL SetVolumeMountPointA( - LPCSTR lpszVolumeMountPoint, - LPCSTR lpszVolumeName); -extern(Windows) export BOOL SetVolumeMountPointW( - LPCWSTR lpszVolumeMountPoint, - LPCWSTR lpszVolumeName); -// #ifdef UNICODE -// #... -// #else -alias SetVolumeMountPointA SetVolumeMountPoint; -// #endif // !UNICODE - -extern(Windows) export BOOL DeleteVolumeMountPointA( - LPCSTR lpszVolumeMountPoint); -extern(Windows) export BOOL DeleteVolumeMountPointW( - LPCWSTR lpszVolumeMountPoint); -// #ifdef UNICODE -// #... -// #else -alias DeleteVolumeMountPointA DeleteVolumeMountPoint; -// #endif // !UNICODE - -extern(Windows) export BOOL GetVolumeNameForVolumeMountPointA( - LPCSTR lpszVolumeMountPoint, - LPSTR lpszVolumeName, - DWORD cchBufferLength); -extern(Windows) export BOOL GetVolumeNameForVolumeMountPointW( - LPCWSTR lpszVolumeMountPoint, - LPWSTR lpszVolumeName, - DWORD cchBufferLength); -// #ifdef UNICODE -// #... -// #else -alias GetVolumeNameForVolumeMountPointA GetVolumeNameForVolumeMountPoint; -// #endif // !UNICODE - -extern(Windows) export BOOL GetVolumePathNameA( - LPCSTR lpszFileName, - LPSTR lpszVolumePathName, - DWORD cchBufferLength); -extern(Windows) export BOOL GetVolumePathNameW( - LPCWSTR lpszFileName, - LPWSTR lpszVolumePathName, - DWORD cchBufferLength); -// #ifdef UNICODE -// #... -// #else -alias GetVolumePathNameA GetVolumePathName; -// #endif // !UNICODE - -extern(Windows) export BOOL GetVolumePathNamesForVolumeNameA( - LPCSTR lpszVolumeName, - LPSTR lpszVolumePathNames, - DWORD cchBufferLength, - PDWORD lpcchReturnLength); -extern(Windows) export BOOL GetVolumePathNamesForVolumeNameW( - LPCWSTR lpszVolumeName, - LPWSTR lpszVolumePathNames, - DWORD cchBufferLength, - PDWORD lpcchReturnLength); -// #ifdef UNICODE -// #... -// #else -alias GetVolumePathNamesForVolumeNameA GetVolumePathNamesForVolumeName; -// #endif // !UNICODE - -// #endif - -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED - -enum : uint { ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID = 0x00000001 } -enum : uint { ACTCTX_FLAG_LANGID_VALID = 0x00000002 } -enum : uint { ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID = 0x00000004 } -enum : uint { ACTCTX_FLAG_RESOURCE_NAME_VALID = 0x00000008 } -enum : uint { ACTCTX_FLAG_SET_PROCESS_DEFAULT = 0x00000010 } -enum : uint { ACTCTX_FLAG_APPLICATION_NAME_VALID = 0x00000020 } -enum : uint { ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF = 0x00000040 } -enum : uint { ACTCTX_FLAG_HMODULE_VALID = 0x00000080 } - -struct tagACTCTXA { - ULONG cbSize; - DWORD dwFlags; - LPCSTR lpSource; - USHORT wProcessorArchitecture; - LANGID wLangId; - LPCSTR lpAssemblyDirectory; - LPCSTR lpResourceName; - LPCSTR lpApplicationName; - HMODULE hModule; -} -alias tagACTCTXA ACTCTXA; -alias tagACTCTXA* PACTCTXA; - -struct tagACTCTXW { - ULONG cbSize; - DWORD dwFlags; - LPCWSTR lpSource; - USHORT wProcessorArchitecture; - LANGID wLangId; - LPCWSTR lpAssemblyDirectory; - LPCWSTR lpResourceName; - LPCWSTR lpApplicationName; - HMODULE hModule; -} -alias tagACTCTXW ACTCTXW; -alias tagACTCTXW* PACTCTXW; - -// #ifdef UNICODE -// ... -// #else -// skip typedef ACTCTXA ACTCTX; -alias PACTCTXA PACTCTX; -// #endif // UNICODE - -alias ACTCTXA* PCACTCTXA; -alias ACTCTXW* PCACTCTXW; -// #ifdef UNICODE -// ... -// #else -// skip typedef ACTCTXA ACTCTX; -alias PCACTCTXA PCACTCTX; -// #endif // UNICODE - -// #endif - -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) - -extern(Windows) export HANDLE CreateActCtxA( - PCACTCTXA pActCtx); -extern(Windows) export HANDLE CreateActCtxW( - PCACTCTXW pActCtx); -// #ifdef UNICODE -// #... -// #else -alias CreateActCtxA CreateActCtx; -// #endif // !UNICODE - -extern(Windows) export VOID AddRefActCtx( - HANDLE hActCtx); - -extern(Windows) export VOID ReleaseActCtx( - HANDLE hActCtx); - -extern(Windows) export BOOL ZombifyActCtx( - HANDLE hActCtx); - -extern(Windows) export BOOL ActivateActCtx( - HANDLE hActCtx, - ULONG_PTR *lpCookie); - -enum : uint { DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION = 0x00000001 } - -extern(Windows) export BOOL DeactivateActCtx( - DWORD dwFlags, - ULONG_PTR ulCookie); - -extern(Windows) export BOOL GetCurrentActCtx( - HANDLE *lphActCtx); - -// #endif - -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED - -struct tagACTCTX_SECTION_KEYED_DATA { - ULONG cbSize; - ULONG ulDataFormatVersion; - PVOID lpData; - ULONG ulLength; - PVOID lpSectionGlobalData; - ULONG ulSectionGlobalDataLength; - PVOID lpSectionBase; - ULONG ulSectionTotalLength; - HANDLE hActCtx; - ULONG ulAssemblyRosterIndex; -} -alias tagACTCTX_SECTION_KEYED_DATA ACTCTX_SECTION_KEYED_DATA; -alias tagACTCTX_SECTION_KEYED_DATA* PACTCTX_SECTION_KEYED_DATA; - -enum : uint { FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX = 0x00000001 } - -// #endif - -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) - -extern(Windows) export BOOL FindActCtxSectionStringA( - DWORD dwFlags, - GUID *lpExtensionGuid, - ULONG ulSectionId, - LPCSTR lpStringToFind, - PACTCTX_SECTION_KEYED_DATA ReturnedData); -extern(Windows) export BOOL FindActCtxSectionStringW( - DWORD dwFlags, - GUID *lpExtensionGuid, - ULONG ulSectionId, - LPCWSTR lpStringToFind, - PACTCTX_SECTION_KEYED_DATA ReturnedData); -// #ifdef UNICODE -// #... -// #else -alias FindActCtxSectionStringA FindActCtxSectionString; -// #endif // !UNICODE - -extern(Windows) export BOOL FindActCtxSectionGuid( - DWORD dwFlags, - GUID *lpExtensionGuid, - ULONG ulSectionId, - GUID *lpGuidToFind, - PACTCTX_SECTION_KEYED_DATA ReturnedData); - -// #endif - -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED - -// #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */ -// #if !defined(ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED) - -// ... - -// ... - -// #... - -// #endif // !defined(ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED) -// #endif - -enum : uint { QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX = 0x00000004 } -enum : uint { QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE = 0x00000008 } -enum : uint { QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS = 0x00000010 } -enum : uint { QUERY_ACTCTX_FLAG_NO_ADDREF = 0x80000000 } - -// #endif - -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) - -extern(Windows) export BOOL QueryActCtxW( - DWORD dwFlags, - HANDLE hActCtx, - PVOID pvSubInstance, - ULONG ulInfoClass, - PVOID pvBuffer, - SIZE_T cbBuffer , - SIZE_T *pcbWrittenOrRequired ); - -extern(Windows) alias BOOL function( DWORD dwFlags, HANDLE hActCtx, PVOID pvSubInstance, ULONG ulInfoClass, PVOID pvBuffer, SIZE_T cbBuffer , SIZE_T *pcbWrittenOrRequired ) PQUERYACTCTXW_FUNC; - -// #endif // (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) - -extern(Windows) export BOOL ProcessIdToSessionId( - DWORD dwProcessId, - DWORD *pSessionId); - -// #if _WIN32_WINNT >= 0x0501 - -extern(Windows) export DWORD WTSGetActiveConsoleSessionId(); - -extern(Windows) export BOOL IsWow64Process( - HANDLE hProcess, - PBOOL Wow64Process); - -// #endif // (_WIN32_WINNT >= 0x0501) - -extern(Windows) export BOOL GetNumaHighestNodeNumber( - PULONG HighestNodeNumber); - -extern(Windows) export BOOL GetNumaProcessorNode( - UCHAR Processor, - PUCHAR NodeNumber); - -extern(Windows) export BOOL GetNumaNodeProcessorMask( - UCHAR Node, - PULONGLONG ProcessorMask); - -extern(Windows) export BOOL GetNumaProcessorMap( - PSYSTEM_NUMA_INFORMATION Map, - ULONG Length, - PULONG ReturnedLength); - -extern(Windows) export BOOL GetNumaAvailableMemory( - PSYSTEM_NUMA_INFORMATION Memory, - ULONG Length, - PULONG ReturnedLength); - -extern(Windows) export BOOL GetNumaAvailableMemoryNode( - UCHAR Node, - PULONGLONG AvailableBytes); - -extern(Windows) export ULONGLONG NumaVirtualQueryNode( - ULONG NumberOfRanges, - PULONG_PTR RangeList, - PULONG_PTR VirtualPageAndNode, - SIZE_T MaximumOutputLength); - -// #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */ -// #if ISOLATION_AWARE_ENABLED -// #... -// #endif /* ISOLATION_AWARE_ENABLED */ -// #endif /* RC */ - -// #ifdef __cplusplus -// } -// #endif - -// #endif // _WINBASE_ - DELETED src/win32/ansi/wincon.d Index: src/win32/ansi/wincon.d ================================================================== --- src/win32/ansi/wincon.d +++ src/win32/ansi/wincon.d @@ -1,571 +0,0 @@ -module win32.ansi.wincon; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.winbase; - -// #ifndef _WINCON_ -// #define _WINCON_ - -// #ifdef __cplusplus -// extern "C" { -// #endif - -struct _COORD { - SHORT X; - SHORT Y; -} -alias _COORD COORD; -alias _COORD* PCOORD; - -struct _SMALL_RECT { - SHORT Left; - SHORT Top; - SHORT Right; - SHORT Bottom; -} -alias _SMALL_RECT SMALL_RECT; -alias _SMALL_RECT* PSMALL_RECT; - -struct _KEY_EVENT_RECORD { - BOOL bKeyDown; - WORD wRepeatCount; - WORD wVirtualKeyCode; - WORD wVirtualScanCode; -union { - WCHAR UnicodeChar; - CHAR AsciiChar; -} - - DWORD dwControlKeyState; -} -alias _KEY_EVENT_RECORD KEY_EVENT_RECORD; -alias _KEY_EVENT_RECORD* PKEY_EVENT_RECORD; - -enum : uint { RIGHT_ALT_PRESSED = 0x0001 } -enum : uint { LEFT_ALT_PRESSED = 0x0002 } -enum : uint { RIGHT_CTRL_PRESSED = 0x0004 } -enum : uint { LEFT_CTRL_PRESSED = 0x0008 } -enum : uint { SHIFT_PRESSED = 0x0010 } -enum : uint { NUMLOCK_ON = 0x0020 } -enum : uint { SCROLLLOCK_ON = 0x0040 } -enum : uint { CAPSLOCK_ON = 0x0080 } -enum : uint { ENHANCED_KEY = 0x0100 } -enum : uint { NLS_DBCSCHAR = 0x00010000 } -enum : uint { NLS_ALPHANUMERIC = 0x00000000 } -enum : uint { NLS_KATAKANA = 0x00020000 } -enum : uint { NLS_HIRAGANA = 0x00040000 } -enum : uint { NLS_ROMAN = 0x00400000 } -enum : uint { NLS_IME_CONVERSION = 0x00800000 } -enum : uint { NLS_IME_DISABLE = 0x20000000 } - -struct _MOUSE_EVENT_RECORD { - COORD dwMousePosition; - DWORD dwButtonState; - DWORD dwControlKeyState; - DWORD dwEventFlags; -} -alias _MOUSE_EVENT_RECORD MOUSE_EVENT_RECORD; -alias _MOUSE_EVENT_RECORD* PMOUSE_EVENT_RECORD; - -enum : uint { FROM_LEFT_1ST_BUTTON_PRESSED = 0x0001 } -enum : uint { RIGHTMOST_BUTTON_PRESSED = 0x0002 } -enum : uint { FROM_LEFT_2ND_BUTTON_PRESSED = 0x0004 } -enum : uint { FROM_LEFT_3RD_BUTTON_PRESSED = 0x0008 } -enum : uint { FROM_LEFT_4TH_BUTTON_PRESSED = 0x0010 } - -enum : uint { MOUSE_MOVED = 0x0001 } -enum : uint { DOUBLE_CLICK = 0x0002 } -enum : uint { MOUSE_WHEELED = 0x0004 } - -struct _WINDOW_BUFFER_SIZE_RECORD { - COORD dwSize; -} -alias _WINDOW_BUFFER_SIZE_RECORD WINDOW_BUFFER_SIZE_RECORD; -alias _WINDOW_BUFFER_SIZE_RECORD* PWINDOW_BUFFER_SIZE_RECORD; - -struct _MENU_EVENT_RECORD { - UINT dwCommandId; -} -alias _MENU_EVENT_RECORD MENU_EVENT_RECORD; -alias _MENU_EVENT_RECORD* PMENU_EVENT_RECORD; - -struct _FOCUS_EVENT_RECORD { - BOOL bSetFocus; -} -alias _FOCUS_EVENT_RECORD FOCUS_EVENT_RECORD; -alias _FOCUS_EVENT_RECORD* PFOCUS_EVENT_RECORD; - -struct _INPUT_RECORD { - WORD EventType; -union { - KEY_EVENT_RECORD KeyEvent; - MOUSE_EVENT_RECORD MouseEvent; - WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; - MENU_EVENT_RECORD MenuEvent; - FOCUS_EVENT_RECORD FocusEvent; -} - -} -alias _INPUT_RECORD INPUT_RECORD; -alias _INPUT_RECORD* PINPUT_RECORD; - -enum : uint { KEY_EVENT = 0x0001 } -enum : uint { MOUSE_EVENT = 0x0002 } -enum : uint { WINDOW_BUFFER_SIZE_EVENT = 0x0004 } -enum : uint { MENU_EVENT = 0x0008 } -enum : uint { FOCUS_EVENT = 0x0010 } - -struct _CHAR_INFO { -union { - WCHAR UnicodeChar; - CHAR AsciiChar; -} - - WORD Attributes; -} -alias _CHAR_INFO CHAR_INFO; -alias _CHAR_INFO* PCHAR_INFO; - -enum : uint { FOREGROUND_BLUE = 0x0001 } -enum : uint { FOREGROUND_GREEN = 0x0002 } -enum : uint { FOREGROUND_RED = 0x0004 } -enum : uint { FOREGROUND_INTENSITY = 0x0008 } -enum : uint { BACKGROUND_BLUE = 0x0010 } -enum : uint { BACKGROUND_GREEN = 0x0020 } -enum : uint { BACKGROUND_RED = 0x0040 } -enum : uint { BACKGROUND_INTENSITY = 0x0080 } -enum : uint { COMMON_LVB_LEADING_BYTE = 0x0100 } -enum : uint { COMMON_LVB_TRAILING_BYTE = 0x0200 } -enum : uint { COMMON_LVB_GRID_HORIZONTAL = 0x0400 } -enum : uint { COMMON_LVB_GRID_LVERTICAL = 0x0800 } -enum : uint { COMMON_LVB_GRID_RVERTICAL = 0x1000 } -enum : uint { COMMON_LVB_REVERSE_VIDEO = 0x4000 } -enum : uint { COMMON_LVB_UNDERSCORE = 0x8000 } - -enum : uint { COMMON_LVB_SBCSDBCS = 0x0300 } - -struct _CONSOLE_SCREEN_BUFFER_INFO { - COORD dwSize; - COORD dwCursorPosition; - WORD wAttributes; - SMALL_RECT srWindow; - COORD dwMaximumWindowSize; -} -alias _CONSOLE_SCREEN_BUFFER_INFO CONSOLE_SCREEN_BUFFER_INFO; -alias _CONSOLE_SCREEN_BUFFER_INFO* PCONSOLE_SCREEN_BUFFER_INFO; - -struct _CONSOLE_CURSOR_INFO { - DWORD dwSize; - BOOL bVisible; -} -alias _CONSOLE_CURSOR_INFO CONSOLE_CURSOR_INFO; -alias _CONSOLE_CURSOR_INFO* PCONSOLE_CURSOR_INFO; - -struct _CONSOLE_FONT_INFO { - DWORD nFont; - COORD dwFontSize; -} -alias _CONSOLE_FONT_INFO CONSOLE_FONT_INFO; -alias _CONSOLE_FONT_INFO* PCONSOLE_FONT_INFO; - -// #if(_WIN32_WINNT >= 0x0500) -struct _CONSOLE_SELECTION_INFO { - DWORD dwFlags; - COORD dwSelectionAnchor; - SMALL_RECT srSelection; -} -alias _CONSOLE_SELECTION_INFO CONSOLE_SELECTION_INFO; -alias _CONSOLE_SELECTION_INFO* PCONSOLE_SELECTION_INFO; - -enum : uint { CONSOLE_NO_SELECTION = 0x0000 } -enum : uint { CONSOLE_SELECTION_IN_PROGRESS = 0x0001 } -enum : uint { CONSOLE_SELECTION_NOT_EMPTY = 0x0002 } -enum : uint { CONSOLE_MOUSE_SELECTION = 0x0004 } -enum : uint { CONSOLE_MOUSE_DOWN = 0x0008 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) alias BOOL function( DWORD CtrlType ) PHANDLER_ROUTINE; - -enum : uint { CTRL_C_EVENT = 0 } -enum : uint { CTRL_BREAK_EVENT = 1 } -enum : uint { CTRL_CLOSE_EVENT = 2 } - -enum : uint { CTRL_LOGOFF_EVENT = 5 } -enum : uint { CTRL_SHUTDOWN_EVENT = 6 } - -enum : uint { ENABLE_PROCESSED_INPUT = 0x0001 } -enum : uint { ENABLE_LINE_INPUT = 0x0002 } -enum : uint { ENABLE_ECHO_INPUT = 0x0004 } -enum : uint { ENABLE_WINDOW_INPUT = 0x0008 } -enum : uint { ENABLE_MOUSE_INPUT = 0x0010 } - -enum : uint { ENABLE_PROCESSED_OUTPUT = 0x0001 } -enum : uint { ENABLE_WRAP_AT_EOL_OUTPUT = 0x0002 } - -extern(Windows) export BOOL PeekConsoleInputA( - HANDLE hConsoleInput, - PINPUT_RECORD lpBuffer, - DWORD nLength, - LPDWORD lpNumberOfEventsRead); -extern(Windows) export BOOL PeekConsoleInputW( - HANDLE hConsoleInput, - PINPUT_RECORD lpBuffer, - DWORD nLength, - LPDWORD lpNumberOfEventsRead); -// #ifdef UNICODE -// #... -// #else -alias PeekConsoleInputA PeekConsoleInput; -// #endif // !UNICODE - -extern(Windows) export BOOL ReadConsoleInputA( - HANDLE hConsoleInput, - PINPUT_RECORD lpBuffer, - DWORD nLength, - LPDWORD lpNumberOfEventsRead); -extern(Windows) export BOOL ReadConsoleInputW( - HANDLE hConsoleInput, - PINPUT_RECORD lpBuffer, - DWORD nLength, - LPDWORD lpNumberOfEventsRead); -// #ifdef UNICODE -// #... -// #else -alias ReadConsoleInputA ReadConsoleInput; -// #endif // !UNICODE - -extern(Windows) export BOOL WriteConsoleInputA( - HANDLE hConsoleInput, - INPUT_RECORD *lpBuffer, - DWORD nLength, - LPDWORD lpNumberOfEventsWritten); -extern(Windows) export BOOL WriteConsoleInputW( - HANDLE hConsoleInput, - INPUT_RECORD *lpBuffer, - DWORD nLength, - LPDWORD lpNumberOfEventsWritten); -// #ifdef UNICODE -// #... -// #else -alias WriteConsoleInputA WriteConsoleInput; -// #endif // !UNICODE - -extern(Windows) export BOOL ReadConsoleOutputA( - HANDLE hConsoleOutput, - PCHAR_INFO lpBuffer, - COORD dwBufferSize, - COORD dwBufferCoord, - PSMALL_RECT lpReadRegion); -extern(Windows) export BOOL ReadConsoleOutputW( - HANDLE hConsoleOutput, - PCHAR_INFO lpBuffer, - COORD dwBufferSize, - COORD dwBufferCoord, - PSMALL_RECT lpReadRegion); -// #ifdef UNICODE -// #... -// #else -alias ReadConsoleOutputA ReadConsoleOutput; -// #endif // !UNICODE - -extern(Windows) export BOOL WriteConsoleOutputA( - HANDLE hConsoleOutput, - CHAR_INFO *lpBuffer, - COORD dwBufferSize, - COORD dwBufferCoord, - PSMALL_RECT lpWriteRegion); -extern(Windows) export BOOL WriteConsoleOutputW( - HANDLE hConsoleOutput, - CHAR_INFO *lpBuffer, - COORD dwBufferSize, - COORD dwBufferCoord, - PSMALL_RECT lpWriteRegion); -// #ifdef UNICODE -// #... -// #else -alias WriteConsoleOutputA WriteConsoleOutput; -// #endif // !UNICODE - -extern(Windows) export BOOL ReadConsoleOutputCharacterA( - HANDLE hConsoleOutput, - LPSTR lpCharacter, - DWORD nLength, - COORD dwReadCoord, - LPDWORD lpNumberOfCharsRead); -extern(Windows) export BOOL ReadConsoleOutputCharacterW( - HANDLE hConsoleOutput, - LPWSTR lpCharacter, - DWORD nLength, - COORD dwReadCoord, - LPDWORD lpNumberOfCharsRead); -// #ifdef UNICODE -// #... -// #else -alias ReadConsoleOutputCharacterA ReadConsoleOutputCharacter; -// #endif // !UNICODE - -extern(Windows) export BOOL ReadConsoleOutputAttribute( - HANDLE hConsoleOutput, - LPWORD lpAttribute, - DWORD nLength, - COORD dwReadCoord, - LPDWORD lpNumberOfAttrsRead); - -extern(Windows) export BOOL WriteConsoleOutputCharacterA( - HANDLE hConsoleOutput, - LPCSTR lpCharacter, - DWORD nLength, - COORD dwWriteCoord, - LPDWORD lpNumberOfCharsWritten); -extern(Windows) export BOOL WriteConsoleOutputCharacterW( - HANDLE hConsoleOutput, - LPCWSTR lpCharacter, - DWORD nLength, - COORD dwWriteCoord, - LPDWORD lpNumberOfCharsWritten); -// #ifdef UNICODE -// #... -// #else -alias WriteConsoleOutputCharacterA WriteConsoleOutputCharacter; -// #endif // !UNICODE - -extern(Windows) export BOOL WriteConsoleOutputAttribute( - HANDLE hConsoleOutput, - WORD *lpAttribute, - DWORD nLength, - COORD dwWriteCoord, - LPDWORD lpNumberOfAttrsWritten); - -extern(Windows) export BOOL FillConsoleOutputCharacterA( - HANDLE hConsoleOutput, - CHAR cCharacter, - DWORD nLength, - COORD dwWriteCoord, - LPDWORD lpNumberOfCharsWritten); -extern(Windows) export BOOL FillConsoleOutputCharacterW( - HANDLE hConsoleOutput, - WCHAR cCharacter, - DWORD nLength, - COORD dwWriteCoord, - LPDWORD lpNumberOfCharsWritten); -// #ifdef UNICODE -// #... -// #else -alias FillConsoleOutputCharacterA FillConsoleOutputCharacter; -// #endif // !UNICODE - -extern(Windows) export BOOL FillConsoleOutputAttribute( - HANDLE hConsoleOutput, - WORD wAttribute, - DWORD nLength, - COORD dwWriteCoord, - LPDWORD lpNumberOfAttrsWritten); - -extern(Windows) export BOOL GetConsoleMode( - HANDLE hConsoleHandle, - LPDWORD lpMode); - -extern(Windows) export BOOL GetNumberOfConsoleInputEvents( - HANDLE hConsoleInput, - LPDWORD lpNumberOfEvents); - -extern(Windows) export BOOL GetConsoleScreenBufferInfo( - HANDLE hConsoleOutput, - PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo); - -extern(Windows) export COORD GetLargestConsoleWindowSize( - HANDLE hConsoleOutput); - -extern(Windows) export BOOL GetConsoleCursorInfo( - HANDLE hConsoleOutput, - PCONSOLE_CURSOR_INFO lpConsoleCursorInfo); - -// #if(_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL GetCurrentConsoleFont( - HANDLE hConsoleOutput, - BOOL bMaximumWindow, - PCONSOLE_FONT_INFO lpConsoleCurrentFont); - -extern(Windows) export COORD GetConsoleFontSize( - HANDLE hConsoleOutput, - DWORD nFont); - -extern(Windows) export BOOL GetConsoleSelectionInfo( - PCONSOLE_SELECTION_INFO lpConsoleSelectionInfo); - -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export BOOL GetNumberOfConsoleMouseButtons( - LPDWORD lpNumberOfMouseButtons); - -extern(Windows) export BOOL SetConsoleMode( - HANDLE hConsoleHandle, - DWORD dwMode); - -extern(Windows) export BOOL SetConsoleActiveScreenBuffer( - HANDLE hConsoleOutput); - -extern(Windows) export BOOL FlushConsoleInputBuffer( - HANDLE hConsoleInput); - -extern(Windows) export BOOL SetConsoleScreenBufferSize( - HANDLE hConsoleOutput, - COORD dwSize); - -extern(Windows) export BOOL SetConsoleCursorPosition( - HANDLE hConsoleOutput, - COORD dwCursorPosition); - -extern(Windows) export BOOL SetConsoleCursorInfo( - HANDLE hConsoleOutput, - CONSOLE_CURSOR_INFO *lpConsoleCursorInfo); - -extern(Windows) export BOOL ScrollConsoleScreenBufferA( - HANDLE hConsoleOutput, - SMALL_RECT *lpScrollRectangle, - SMALL_RECT *lpClipRectangle, - COORD dwDestinationOrigin, - CHAR_INFO *lpFill); -extern(Windows) export BOOL ScrollConsoleScreenBufferW( - HANDLE hConsoleOutput, - SMALL_RECT *lpScrollRectangle, - SMALL_RECT *lpClipRectangle, - COORD dwDestinationOrigin, - CHAR_INFO *lpFill); -// #ifdef UNICODE -// #... -// #else -alias ScrollConsoleScreenBufferA ScrollConsoleScreenBuffer; -// #endif // !UNICODE - -extern(Windows) export BOOL SetConsoleWindowInfo( - HANDLE hConsoleOutput, - BOOL bAbsolute, - SMALL_RECT *lpConsoleWindow); - -extern(Windows) export BOOL SetConsoleTextAttribute( - HANDLE hConsoleOutput, - WORD wAttributes); - -extern(Windows) export BOOL SetConsoleCtrlHandler( - PHANDLER_ROUTINE HandlerRoutine, - BOOL Add); - -extern(Windows) export BOOL GenerateConsoleCtrlEvent( - DWORD dwCtrlEvent, - DWORD dwProcessGroupId); - -extern(Windows) export BOOL AllocConsole(); - -extern(Windows) export BOOL FreeConsole(); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL AttachConsole( - DWORD dwProcessId); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export DWORD GetConsoleTitleA( - LPSTR lpConsoleTitle, - DWORD nSize); -extern(Windows) export DWORD GetConsoleTitleW( - LPWSTR lpConsoleTitle, - DWORD nSize); -// #ifdef UNICODE -// #... -// #else -alias GetConsoleTitleA GetConsoleTitle; -// #endif // !UNICODE - -extern(Windows) export BOOL SetConsoleTitleA( - LPCSTR lpConsoleTitle); -extern(Windows) export BOOL SetConsoleTitleW( - LPCWSTR lpConsoleTitle); -// #ifdef UNICODE -// #... -// #else -alias SetConsoleTitleA SetConsoleTitle; -// #endif // !UNICODE - -extern(Windows) export BOOL ReadConsoleA( - HANDLE hConsoleInput, - LPVOID lpBuffer, - DWORD nNumberOfCharsToRead, - LPDWORD lpNumberOfCharsRead, - LPVOID lpReserved); -extern(Windows) export BOOL ReadConsoleW( - HANDLE hConsoleInput, - LPVOID lpBuffer, - DWORD nNumberOfCharsToRead, - LPDWORD lpNumberOfCharsRead, - LPVOID lpReserved); -// #ifdef UNICODE -// #... -// #else -alias ReadConsoleA ReadConsole; -// #endif // !UNICODE - -extern(Windows) export BOOL WriteConsoleA( - HANDLE hConsoleOutput, - VOID *lpBuffer, - DWORD nNumberOfCharsToWrite, - LPDWORD lpNumberOfCharsWritten, - LPVOID lpReserved); -extern(Windows) export BOOL WriteConsoleW( - HANDLE hConsoleOutput, - VOID *lpBuffer, - DWORD nNumberOfCharsToWrite, - LPDWORD lpNumberOfCharsWritten, - LPVOID lpReserved); -// #ifdef UNICODE -// #... -// #else -alias WriteConsoleA WriteConsole; -// #endif // !UNICODE - -enum : uint { CONSOLE_TEXTMODE_BUFFER = 1 } - -extern(Windows) export HANDLE CreateConsoleScreenBuffer( - DWORD dwDesiredAccess, - DWORD dwShareMode, - SECURITY_ATTRIBUTES *lpSecurityAttributes, - DWORD dwFlags, - LPVOID lpScreenBufferData); - -extern(Windows) export UINT GetConsoleCP(); - -extern(Windows) export BOOL SetConsoleCP( - UINT wCodePageID); - -extern(Windows) export UINT GetConsoleOutputCP(); - -extern(Windows) export BOOL SetConsoleOutputCP( - UINT wCodePageID); - -// #if(_WIN32_WINNT >= 0x0500) - -enum : uint { CONSOLE_FULLSCREEN = 1 } -enum : uint { CONSOLE_FULLSCREEN_HARDWARE = 2 } - -extern(Windows) export BOOL GetConsoleDisplayMode( - LPDWORD lpModeFlags); - -extern(Windows) export HWND GetConsoleWindow(); - -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0501) - -extern(Windows) export DWORD GetConsoleProcessList( - LPDWORD lpdwProcessList, - DWORD dwProcessCount); -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #ifdef __cplusplus -// } -// #endif - -// #endif // _WINCON_ - DELETED src/win32/ansi/windef.d Index: src/win32/ansi/windef.d ================================================================== --- src/win32/ansi/windef.d +++ src/win32/ansi/windef.d @@ -1,394 +0,0 @@ -module win32.ansi.windef; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -alias void* va_list; -alias long __int64; -alias ulong DWORD64; -alias uint SIZE_T; -alias SIZE_T* PSIZE_T; -alias int INT_PTR; -alias uint UINT_PTR; -alias uint LONG_PTR; -alias uint ULONG_PTR; -alias uint DWORD_PTR; -alias DWORD_PTR* PDWORD_PTR; -alias UINT_PTR* PUINT_PTR; -alias ULONG_PTR* PULONG_PTR; -enum : UINT { UINT_MAX = UINT.max } - -// #ifndef _WINDEF_ -// #define _WINDEF_ - -// #ifndef NO_STRICT -// #ifndef STRICT -// #... -// #endif -// #endif /* NO_STRICT */ - -// #ifdef _MAC -// #ifndef _WIN32 -// #... -// #endif -// #endif //_MAC - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #ifndef WINVER -// #... -// #endif /* WINVER */ - -// #ifndef BASETYPES -// #define BASETYPES -alias uint ULONG; -alias ULONG* PULONG; -alias ushort USHORT; -alias USHORT* PUSHORT; -alias ubyte UCHAR; -alias UCHAR* PUCHAR; -alias char* PSZ; -// #endif /* !BASETYPES */ - -enum : uint { MAX_PATH = 260 } - -// #ifndef NULL -// #ifdef __cplusplus -const void* NULL = null; -// #else -// #... -// #endif -// #endif - -// #ifndef FALSE -enum : uint { FALSE = 0 } -// #endif - -// #ifndef TRUE -enum : uint { TRUE = 1 } -// #endif - -// #ifndef IN -// #define IN -// #endif - -// #ifndef OUT -// #define OUT -// #endif - -// #ifndef OPTIONAL -// #define OPTIONAL -// #endif - -// #undef far -// #undef near -// #undef pascal - -// #define far -// #define near -// #if (!defined(_MAC)) && ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)) -// #define pascal __stdcall -// #else -// #... -// #endif - -// #if defined(DOSWIN32) || defined(_MAC) -// #... -// #ifndef CDECL -// #... -// #endif -// #else -// #define cdecl -// #ifndef CDECL -// #define CDECL -// #endif -// #endif - -// #ifdef _MAC -// #... -// #... -// #... -// #... -// #... -// #ifdef _68K_ -// #... -// #else -// #... -// #endif -// #elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) -// #define CALLBACK __stdcall -// #define WINAPI __stdcall -// #define WINAPIV __cdecl -// #define APIENTRY WINAPI -// #define APIPRIVATE __stdcall -// #define PASCAL __stdcall -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -// #undef FAR -// #undef NEAR -// #define FAR far -// #define NEAR near -// #ifndef CONST -// #define CONST const -// #endif - -alias uint DWORD; -alias int BOOL; -alias ubyte BYTE; -alias ushort WORD; -alias float FLOAT; -alias FLOAT* PFLOAT; -alias BOOL* PBOOL; -alias BOOL* LPBOOL; -alias BYTE* PBYTE; -alias BYTE* LPBYTE; -alias int* PINT; -alias int* LPINT; -alias WORD* PWORD; -alias WORD* LPWORD; -alias int* LPLONG; -alias DWORD* PDWORD; -alias DWORD* LPDWORD; -alias void* LPVOID; -alias void* LPCVOID; - -alias int INT; -alias uint UINT; -alias uint* PUINT; - -// #ifndef NT_INCLUDED -import win32.ansi.winnt; -// #endif /* NT_INCLUDED */ - -alias UINT_PTR WPARAM; -alias LONG_PTR LPARAM; -alias LONG_PTR LRESULT; - -// #ifndef NOMINMAX - -// #ifndef max -int max(int a, int b){ return (a > b)? a : b; } -uint max(uint a, uint b){ return (a > b)? a : b; } -real max(real a, real b){ return (a > b)? a : b; } -// #endif - -// #ifndef min -int min(int a, int b){ return (a < b)? a : b; } -uint min(uint a, uint b){ return (a < b)? a : b; } -real min(real a, real b){ return (a < b)? a : b; } -// #endif - -// #endif /* NOMINMAX */ - -ushort MAKEWORD(byte a, byte b){ return (a & 0xff) | ((b & 0xff) << 8); } -uint MAKELONG(ushort a, ushort b){ return (a & 0xffff) | ((b & 0xffff) << 16); } -ushort LOWORD(uint l){ return l & 0xffff; } -ushort HIWORD(uint l){ return l >>> 16; } -ubyte LOBYTE(ushort l){ return l & 0xff; } -ubyte HIBYTE(ushort l){ return l >>> 8; } - -// #ifndef WIN_INTERNAL -alias void* HWND; -alias void* HHOOK; -// #ifdef WINABLE -// ... -// #endif -// #endif - -alias WORD ATOM; - -alias HANDLE* SPHANDLE; -alias HANDLE* LPHANDLE; -alias HANDLE HGLOBAL; -alias HANDLE HLOCAL; -alias HANDLE GLOBALHANDLE; -alias HANDLE LOCALHANDLE; -// #ifndef _MAC -// #ifdef _WIN64 -// ... -// #else -extern(Windows) alias int function() FARPROC; -extern(Windows) alias int function() NEARPROC; -extern(Windows) alias int function() PROC; -// #endif // _WIN64 -// #else -// ... -// #endif - -// #if !defined(_MAC) || !defined(GDI_INTERNAL) -// #ifdef STRICT -alias void* HGDIOBJ; -// #else -// ... -// #endif -// #endif - -alias void* HKEY; -alias HKEY* PHKEY; - -// #if !defined(_MAC) || !defined(WIN_INTERNAL) -alias void* HACCEL; -// #endif -// #if !defined(_MAC) || !defined(GDI_INTERNAL) -alias void* HBITMAP; -alias void* HBRUSH; -// #endif -// #if(WINVER >= 0x0400) -alias void* HCOLORSPACE; -// #endif /* WINVER >= 0x0400 */ -// #if !defined(_MAC) || !defined(GDI_INTERNAL) -alias void* HDC; -// #endif -alias void* HGLRC; -alias void* HDESK; -alias void* HENHMETAFILE; -// #if !defined(_MAC) || !defined(GDI_INTERNAL) -alias void* HFONT; -// #endif -alias void* HICON; -// #if !defined(_MAC) || !defined(WIN_INTERNAL) -alias void* HMENU; -// #endif -alias void* HMETAFILE; -alias void* HINSTANCE; -alias HINSTANCE HMODULE; -// #if !defined(_MAC) || !defined(GDI_INTERNAL) -alias void* HPALETTE; -alias void* HPEN; -// #endif -alias void* HRGN; -alias void* HRSRC; -alias void* HSTR; -alias void* HTASK; -alias void* HWINSTA; -alias void* HKL; - -// #if(WINVER >= 0x0500) -// #ifndef _MAC -alias void* HMONITOR; -alias void* HWINEVENTHOOK; -// #endif -alias void* HUMPD; -// #endif /* WINVER >= 0x0500 */ - -// #ifndef _MAC -alias int HFILE; -alias HICON HCURSOR; -// #else -// ... -// #endif - -alias DWORD COLORREF; -alias DWORD* LPCOLORREF; - -const HFILE HFILE_ERROR = -1; - -struct tagRECT { - LONG left; - LONG top; - LONG right; - LONG bottom; -} -alias tagRECT RECT; -alias tagRECT* PRECT; -alias tagRECT* NPRECT; -alias tagRECT* LPRECT; - -alias RECT* LPCRECT; - -struct _RECTL { - LONG left; - LONG top; - LONG right; - LONG bottom; -} -alias _RECTL RECTL; -alias _RECTL* PRECTL; -alias _RECTL* LPRECTL; - -alias RECTL* LPCRECTL; - -struct tagPOINT { - LONG x; - LONG y; -} -alias tagPOINT POINT; -alias tagPOINT* PPOINT; -alias tagPOINT* NPPOINT; -alias tagPOINT* LPPOINT; - -struct _POINTL { - LONG x; - LONG y; -} -alias _POINTL POINTL; -alias _POINTL* PPOINTL; - -struct tagSIZE { - LONG cx; - LONG cy; -} -alias tagSIZE SIZE; -alias tagSIZE* PSIZE; -alias tagSIZE* LPSIZE; - -alias SIZE SIZEL; -alias SIZE* PSIZEL; -alias SIZE* LPSIZEL; - -struct tagPOINTS { -// #ifndef _MAC - SHORT x; - SHORT y; -// #else -// ... -// #endif -} -alias tagPOINTS POINTS; -alias tagPOINTS* PPOINTS; -alias tagPOINTS* LPPOINTS; - -enum : uint { DM_UPDATE = 1 } -enum : uint { DM_COPY = 2 } -enum : uint { DM_PROMPT = 4 } -enum : uint { DM_MODIFY = 8 } - -alias DM_MODIFY DM_IN_BUFFER; -alias DM_PROMPT DM_IN_PROMPT; -alias DM_COPY DM_OUT_BUFFER; -alias DM_UPDATE DM_OUT_DEFAULT; - -enum : uint { DC_FIELDS = 1 } -enum : uint { DC_PAPERS = 2 } -enum : uint { DC_PAPERSIZE = 3 } -enum : uint { DC_MINEXTENT = 4 } -enum : uint { DC_MAXEXTENT = 5 } -enum : uint { DC_BINS = 6 } -enum : uint { DC_DUPLEX = 7 } -enum : uint { DC_SIZE = 8 } -enum : uint { DC_EXTRA = 9 } -enum : uint { DC_VERSION = 10 } -enum : uint { DC_DRIVER = 11 } -enum : uint { DC_BINNAMES = 12 } -enum : uint { DC_ENUMRESOLUTIONS = 13 } -enum : uint { DC_FILEDEPENDENCIES = 14 } -enum : uint { DC_TRUETYPE = 15 } -enum : uint { DC_PAPERNAMES = 16 } -enum : uint { DC_ORIENTATION = 17 } -enum : uint { DC_COPIES = 18 } - -// #ifdef __cplusplus -// } -// #endif - -// #endif /* _WINDEF_ */ - DELETED src/win32/ansi/windows.d Index: src/win32/ansi/windows.d ================================================================== --- src/win32/ansi/windows.d +++ src/win32/ansi/windows.d @@ -1,202 +0,0 @@ -module win32.ansi.windows; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - - -// #ifndef _WINDOWS_ -// #define _WINDOWS_ - -// #ifndef WINVER -// #... -// #else -// #if defined(_WIN32_WINNT) && (WINVER < 0x0400) && (_WIN32_WINNT > 0x0400) -// #... -// #endif -// #endif - -// #ifndef _INC_WINDOWS -// #define _INC_WINDOWS - -// #if defined (_MSC_VER) && (_MSC_VER >= 1020) -// #pragma once -// #endif - -// #if defined(RC_INVOKED) && !defined(NOWINRES) - -// #... - -// #else - -// #if defined(RC_INVOKED) - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -// #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && defined(_M_IX86) -// #... -// #endif - -// #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && defined(_M_AMD64) -// #... -// #endif - -// #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && defined(_M_M68K) -// #... -// #endif - -// #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && defined(_M_MPPC) -// #... -// #endif - -// #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_M_IX86) && !defined(_AMD64_) && defined(_M_IA64) -// #if !defined(_IA64_) -// #... -// #endif // !_IA64_ -// #endif - -// #ifndef _MAC -// #if defined(_68K_) || defined(_MPPC_) -// #... -// #endif -// #endif - -// #if defined (_MSC_VER) -// #if ( _MSC_VER >= 800 ) -// #ifndef __cplusplus -// #... - -// #endif -// #endif -// #endif - -// #ifndef RC_INVOKED -// #if ( _MSC_VER >= 800 ) -// #pragma warning(disable:4514) -// #ifndef __WINDOWS_DONT_DISABLE_PRAGMA_PACK_WARNING__ -// #pragma warning(disable:4103) -// #endif -// #if _MSC_VER >= 1200 -// #pragma warning(push) -// #endif -// #pragma warning(disable:4001) -// #pragma warning(disable:4201) -// #pragma warning(disable:4214) -// #endif -// #include -// #include -// #endif /* RC_INVOKED */ - -import win32.ansi.windef; -import win32.ansi.winbase; -import win32.ansi.wingdi; -import win32.ansi.winuser; -// #if !defined(_MAC) || defined(_WIN32NLS) -import win32.ansi.winnls; -// #endif -// #ifndef _MAC -import win32.ansi.wincon; -import win32.ansi.winver; -// #endif -// #if !defined(_MAC) || defined(_WIN32REG) -import win32.ansi.winreg; -// #endif -// #ifndef _MAC -// #include -// #endif - -// #ifndef WIN32_LEAN_AND_MEAN -// #include -import win32.ansi.dde; -import win32.ansi.ddeml; -import win32.ansi.dlgs; -// #ifndef _MAC -// #include -import win32.ansi.mmsystem; -// #include -// #include -// #endif -import win32.ansi.shellapi; -// #ifndef _MAC -// #include -// #include -// #endif -// #ifndef NOCRYPT -// #... -// #... -// #... -// #endif - -// #ifndef NOGDI -// #ifndef _MAC -import win32.ansi.winspool; -// #ifdef INC_OLE1 -// #... -// #else -// #include -// #endif /* !INC_OLE1 */ -// #endif /* !MAC */ -import win32.ansi.commdlg; -// #endif /* !NOGDI */ -// #endif /* WIN32_LEAN_AND_MEAN */ - -// #include - -// #ifdef _MAC -// #... -// #endif - -// #ifdef INC_OLE2 -// #... -// #endif /* INC_OLE2 */ - -// #ifndef _MAC -// #ifndef NOSERVICE -// #... -// #endif - -// #if(WINVER >= 0x0400) -// #ifndef NOMCX -// #... -// #endif /* NOMCX */ - -// #ifndef NOIME -import win32.ansi.imm; -// #endif -// #endif /* WINVER >= 0x0400 */ -// #endif - -// #ifndef RC_INVOKED -// #if ( _MSC_VER >= 800 ) -// #if _MSC_VER >= 1200 -// #pragma warning(pop) -// #else -// #... -// #... -// #... - -// #endif -// #endif -// #endif /* RC_INVOKED */ - -// #endif /* RC_INVOKED */ - -// #endif /* _INC_WINDOWS */ -// #endif /* _WINDOWS_ */ - DELETED src/win32/ansi/winerror.d Index: src/win32/ansi/winerror.d ================================================================== --- src/win32/ansi/winerror.d +++ src/win32/ansi/winerror.d @@ -1,5953 +0,0 @@ -module win32.ansi.winerror; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.winnt; - -// #ifndef _WINERROR_ -// #define _WINERROR_ - -// #if defined (_MSC_VER) && (_MSC_VER >= 1020) && !defined(__midl) -// #pragma once -// #endif - -enum : uint { FACILITY_WINDOWS_CE = 24 } -enum : uint { FACILITY_WINDOWS = 8 } -enum : uint { FACILITY_URT = 19 } -enum : uint { FACILITY_UMI = 22 } -enum : uint { FACILITY_SXS = 23 } -enum : uint { FACILITY_STORAGE = 3 } -enum : uint { FACILITY_SSPI = 9 } -enum : uint { FACILITY_SCARD = 16 } -enum : uint { FACILITY_SETUPAPI = 15 } -enum : uint { FACILITY_SECURITY = 9 } -enum : uint { FACILITY_RPC = 1 } -enum : uint { FACILITY_WIN32 = 7 } -enum : uint { FACILITY_CONTROL = 10 } -enum : uint { FACILITY_NULL = 0 } -enum : uint { FACILITY_MSMQ = 14 } -enum : uint { FACILITY_MEDIASERVER = 13 } -enum : uint { FACILITY_INTERNET = 12 } -enum : uint { FACILITY_ITF = 4 } -enum : uint { FACILITY_HTTP = 25 } -enum : uint { FACILITY_DPLAY = 21 } -enum : uint { FACILITY_DISPATCH = 2 } -enum : uint { FACILITY_CONFIGURATION = 33 } -enum : uint { FACILITY_COMPLUS = 17 } -enum : uint { FACILITY_CERT = 11 } -enum : uint { FACILITY_BACKGROUNDCOPY = 32 } -enum : uint { FACILITY_ACS = 20 } -enum : uint { FACILITY_AAF = 18 } - -enum : uint { ERROR_SUCCESS = 0 } - -enum : uint { NO_ERROR = 0 } -enum : HRESULT { SEC_E_OK = cast(HRESULT)0x00000000 } - -enum : uint { ERROR_INVALID_FUNCTION = 1 } - -enum : uint { ERROR_FILE_NOT_FOUND = 2 } - -enum : uint { ERROR_PATH_NOT_FOUND = 3 } - -enum : uint { ERROR_TOO_MANY_OPEN_FILES = 4 } - -enum : uint { ERROR_ACCESS_DENIED = 5 } - -enum : uint { ERROR_INVALID_HANDLE = 6 } - -enum : uint { ERROR_ARENA_TRASHED = 7 } - -enum : uint { ERROR_NOT_ENOUGH_MEMORY = 8 } - -enum : uint { ERROR_INVALID_BLOCK = 9 } - -enum : uint { ERROR_BAD_ENVIRONMENT = 10 } - -enum : uint { ERROR_BAD_FORMAT = 11 } - -enum : uint { ERROR_INVALID_ACCESS = 12 } - -enum : uint { ERROR_INVALID_DATA = 13 } - -enum : uint { ERROR_OUTOFMEMORY = 14 } - -enum : uint { ERROR_INVALID_DRIVE = 15 } - -enum : uint { ERROR_CURRENT_DIRECTORY = 16 } - -enum : uint { ERROR_NOT_SAME_DEVICE = 17 } - -enum : uint { ERROR_NO_MORE_FILES = 18 } - -enum : uint { ERROR_WRITE_PROTECT = 19 } - -enum : uint { ERROR_BAD_UNIT = 20 } - -enum : uint { ERROR_NOT_READY = 21 } - -enum : uint { ERROR_BAD_COMMAND = 22 } - -enum : uint { ERROR_CRC = 23 } - -enum : uint { ERROR_BAD_LENGTH = 24 } - -enum : uint { ERROR_SEEK = 25 } - -enum : uint { ERROR_NOT_DOS_DISK = 26 } - -enum : uint { ERROR_SECTOR_NOT_FOUND = 27 } - -enum : uint { ERROR_OUT_OF_PAPER = 28 } - -enum : uint { ERROR_WRITE_FAULT = 29 } - -enum : uint { ERROR_READ_FAULT = 30 } - -enum : uint { ERROR_GEN_FAILURE = 31 } - -enum : uint { ERROR_SHARING_VIOLATION = 32 } - -enum : uint { ERROR_LOCK_VIOLATION = 33 } - -enum : uint { ERROR_WRONG_DISK = 34 } - -enum : uint { ERROR_SHARING_BUFFER_EXCEEDED = 36 } - -enum : uint { ERROR_HANDLE_EOF = 38 } - -enum : uint { ERROR_HANDLE_DISK_FULL = 39 } - -enum : uint { ERROR_NOT_SUPPORTED = 50 } - -enum : uint { ERROR_REM_NOT_LIST = 51 } - -enum : uint { ERROR_DUP_NAME = 52 } - -enum : uint { ERROR_BAD_NETPATH = 53 } - -enum : uint { ERROR_NETWORK_BUSY = 54 } - -enum : uint { ERROR_DEV_NOT_EXIST = 55 } - -enum : uint { ERROR_TOO_MANY_CMDS = 56 } - -enum : uint { ERROR_ADAP_HDW_ERR = 57 } - -enum : uint { ERROR_BAD_NET_RESP = 58 } - -enum : uint { ERROR_UNEXP_NET_ERR = 59 } - -enum : uint { ERROR_BAD_REM_ADAP = 60 } - -enum : uint { ERROR_PRINTQ_FULL = 61 } - -enum : uint { ERROR_NO_SPOOL_SPACE = 62 } - -enum : uint { ERROR_PRINT_CANCELLED = 63 } - -enum : uint { ERROR_NETNAME_DELETED = 64 } - -enum : uint { ERROR_NETWORK_ACCESS_DENIED = 65 } - -enum : uint { ERROR_BAD_DEV_TYPE = 66 } - -enum : uint { ERROR_BAD_NET_NAME = 67 } - -enum : uint { ERROR_TOO_MANY_NAMES = 68 } - -enum : uint { ERROR_TOO_MANY_SESS = 69 } - -enum : uint { ERROR_SHARING_PAUSED = 70 } - -enum : uint { ERROR_REQ_NOT_ACCEP = 71 } - -enum : uint { ERROR_REDIR_PAUSED = 72 } - -enum : uint { ERROR_FILE_EXISTS = 80 } - -enum : uint { ERROR_CANNOT_MAKE = 82 } - -enum : uint { ERROR_FAIL_I24 = 83 } - -enum : uint { ERROR_OUT_OF_STRUCTURES = 84 } - -enum : uint { ERROR_ALREADY_ASSIGNED = 85 } - -enum : uint { ERROR_INVALID_PASSWORD = 86 } - -enum : uint { ERROR_INVALID_PARAMETER = 87 } - -enum : uint { ERROR_NET_WRITE_FAULT = 88 } - -enum : uint { ERROR_NO_PROC_SLOTS = 89 } - -enum : uint { ERROR_TOO_MANY_SEMAPHORES = 100 } - -enum : uint { ERROR_EXCL_SEM_ALREADY_OWNED = 101 } - -enum : uint { ERROR_SEM_IS_SET = 102 } - -enum : uint { ERROR_TOO_MANY_SEM_REQUESTS = 103 } - -enum : uint { ERROR_INVALID_AT_INTERRUPT_TIME = 104 } - -enum : uint { ERROR_SEM_OWNER_DIED = 105 } - -enum : uint { ERROR_SEM_USER_LIMIT = 106 } - -enum : uint { ERROR_DISK_CHANGE = 107 } - -enum : uint { ERROR_DRIVE_LOCKED = 108 } - -enum : uint { ERROR_BROKEN_PIPE = 109 } - -enum : uint { ERROR_OPEN_FAILED = 110 } - -enum : uint { ERROR_BUFFER_OVERFLOW = 111 } - -enum : uint { ERROR_DISK_FULL = 112 } - -enum : uint { ERROR_NO_MORE_SEARCH_HANDLES = 113 } - -enum : uint { ERROR_INVALID_TARGET_HANDLE = 114 } - -enum : uint { ERROR_INVALID_CATEGORY = 117 } - -enum : uint { ERROR_INVALID_VERIFY_SWITCH = 118 } - -enum : uint { ERROR_BAD_DRIVER_LEVEL = 119 } - -enum : uint { ERROR_CALL_NOT_IMPLEMENTED = 120 } - -enum : uint { ERROR_SEM_TIMEOUT = 121 } - -enum : uint { ERROR_INSUFFICIENT_BUFFER = 122 } - -enum : uint { ERROR_INVALID_NAME = 123 } - -enum : uint { ERROR_INVALID_LEVEL = 124 } - -enum : uint { ERROR_NO_VOLUME_LABEL = 125 } - -enum : uint { ERROR_MOD_NOT_FOUND = 126 } - -enum : uint { ERROR_PROC_NOT_FOUND = 127 } - -enum : uint { ERROR_WAIT_NO_CHILDREN = 128 } - -enum : uint { ERROR_CHILD_NOT_COMPLETE = 129 } - -enum : uint { ERROR_DIRECT_ACCESS_HANDLE = 130 } - -enum : uint { ERROR_NEGATIVE_SEEK = 131 } - -enum : uint { ERROR_SEEK_ON_DEVICE = 132 } - -enum : uint { ERROR_IS_JOIN_TARGET = 133 } - -enum : uint { ERROR_IS_JOINED = 134 } - -enum : uint { ERROR_IS_SUBSTED = 135 } - -enum : uint { ERROR_NOT_JOINED = 136 } - -enum : uint { ERROR_NOT_SUBSTED = 137 } - -enum : uint { ERROR_JOIN_TO_JOIN = 138 } - -enum : uint { ERROR_SUBST_TO_SUBST = 139 } - -enum : uint { ERROR_JOIN_TO_SUBST = 140 } - -enum : uint { ERROR_SUBST_TO_JOIN = 141 } - -enum : uint { ERROR_BUSY_DRIVE = 142 } - -enum : uint { ERROR_SAME_DRIVE = 143 } - -enum : uint { ERROR_DIR_NOT_ROOT = 144 } - -enum : uint { ERROR_DIR_NOT_EMPTY = 145 } - -enum : uint { ERROR_IS_SUBST_PATH = 146 } - -enum : uint { ERROR_IS_JOIN_PATH = 147 } - -enum : uint { ERROR_PATH_BUSY = 148 } - -enum : uint { ERROR_IS_SUBST_TARGET = 149 } - -enum : uint { ERROR_SYSTEM_TRACE = 150 } - -enum : uint { ERROR_INVALID_EVENT_COUNT = 151 } - -enum : uint { ERROR_TOO_MANY_MUXWAITERS = 152 } - -enum : uint { ERROR_INVALID_LIST_FORMAT = 153 } - -enum : uint { ERROR_LABEL_TOO_LONG = 154 } - -enum : uint { ERROR_TOO_MANY_TCBS = 155 } - -enum : uint { ERROR_SIGNAL_REFUSED = 156 } - -enum : uint { ERROR_DISCARDED = 157 } - -enum : uint { ERROR_NOT_LOCKED = 158 } - -enum : uint { ERROR_BAD_THREADID_ADDR = 159 } - -enum : uint { ERROR_BAD_ARGUMENTS = 160 } - -enum : uint { ERROR_BAD_PATHNAME = 161 } - -enum : uint { ERROR_SIGNAL_PENDING = 162 } - -enum : uint { ERROR_MAX_THRDS_REACHED = 164 } - -enum : uint { ERROR_LOCK_FAILED = 167 } - -enum : uint { ERROR_BUSY = 170 } - -enum : uint { ERROR_CANCEL_VIOLATION = 173 } - -enum : uint { ERROR_ATOMIC_LOCKS_NOT_SUPPORTED = 174 } - -enum : uint { ERROR_INVALID_SEGMENT_NUMBER = 180 } - -enum : uint { ERROR_INVALID_ORDINAL = 182 } - -enum : uint { ERROR_ALREADY_EXISTS = 183 } - -enum : uint { ERROR_INVALID_FLAG_NUMBER = 186 } - -enum : uint { ERROR_SEM_NOT_FOUND = 187 } - -enum : uint { ERROR_INVALID_STARTING_CODESEG = 188 } - -enum : uint { ERROR_INVALID_STACKSEG = 189 } - -enum : uint { ERROR_INVALID_MODULETYPE = 190 } - -enum : uint { ERROR_INVALID_EXE_SIGNATURE = 191 } - -enum : uint { ERROR_EXE_MARKED_INVALID = 192 } - -enum : uint { ERROR_BAD_EXE_FORMAT = 193 } - -enum : uint { ERROR_ITERATED_DATA_EXCEEDS_64k = 194 } - -enum : uint { ERROR_INVALID_MINALLOCSIZE = 195 } - -enum : uint { ERROR_DYNLINK_FROM_INVALID_RING = 196 } - -enum : uint { ERROR_IOPL_NOT_ENABLED = 197 } - -enum : uint { ERROR_INVALID_SEGDPL = 198 } - -enum : uint { ERROR_AUTODATASEG_EXCEEDS_64k = 199 } - -enum : uint { ERROR_RING2SEG_MUST_BE_MOVABLE = 200 } - -enum : uint { ERROR_RELOC_CHAIN_XEEDS_SEGLIM = 201 } - -enum : uint { ERROR_INFLOOP_IN_RELOC_CHAIN = 202 } - -enum : uint { ERROR_ENVVAR_NOT_FOUND = 203 } - -enum : uint { ERROR_NO_SIGNAL_SENT = 205 } - -enum : uint { ERROR_FILENAME_EXCED_RANGE = 206 } - -enum : uint { ERROR_RING2_STACK_IN_USE = 207 } - -enum : uint { ERROR_META_EXPANSION_TOO_LONG = 208 } - -enum : uint { ERROR_INVALID_SIGNAL_NUMBER = 209 } - -enum : uint { ERROR_THREAD_1_INACTIVE = 210 } - -enum : uint { ERROR_LOCKED = 212 } - -enum : uint { ERROR_TOO_MANY_MODULES = 214 } - -enum : uint { ERROR_NESTING_NOT_ALLOWED = 215 } - -enum : uint { ERROR_EXE_MACHINE_TYPE_MISMATCH = 216 } - -enum : uint { ERROR_BAD_PIPE = 230 } - -enum : uint { ERROR_PIPE_BUSY = 231 } - -enum : uint { ERROR_NO_DATA = 232 } - -enum : uint { ERROR_PIPE_NOT_CONNECTED = 233 } - -enum : uint { ERROR_MORE_DATA = 234 } - -enum : uint { ERROR_VC_DISCONNECTED = 240 } - -enum : uint { ERROR_INVALID_EA_NAME = 254 } - -enum : uint { ERROR_EA_LIST_INCONSISTENT = 255 } - -enum : uint { WAIT_TIMEOUT = 258 } - -enum : uint { ERROR_NO_MORE_ITEMS = 259 } - -enum : uint { ERROR_CANNOT_COPY = 266 } - -enum : uint { ERROR_DIRECTORY = 267 } - -enum : uint { ERROR_EAS_DIDNT_FIT = 275 } - -enum : uint { ERROR_EA_FILE_CORRUPT = 276 } - -enum : uint { ERROR_EA_TABLE_FULL = 277 } - -enum : uint { ERROR_INVALID_EA_HANDLE = 278 } - -enum : uint { ERROR_EAS_NOT_SUPPORTED = 282 } - -enum : uint { ERROR_NOT_OWNER = 288 } - -enum : uint { ERROR_TOO_MANY_POSTS = 298 } - -enum : uint { ERROR_PARTIAL_COPY = 299 } - -enum : uint { ERROR_OPLOCK_NOT_GRANTED = 300 } - -enum : uint { ERROR_INVALID_OPLOCK_PROTOCOL = 301 } - -enum : uint { ERROR_DISK_TOO_FRAGMENTED = 302 } - -enum : uint { ERROR_DELETE_PENDING = 303 } - -enum : uint { ERROR_MR_MID_NOT_FOUND = 317 } - -enum : uint { ERROR_INVALID_ADDRESS = 487 } - -enum : uint { ERROR_ARITHMETIC_OVERFLOW = 534 } - -enum : uint { ERROR_PIPE_CONNECTED = 535 } - -enum : uint { ERROR_PIPE_LISTENING = 536 } - -enum : uint { ERROR_EA_ACCESS_DENIED = 994 } - -enum : uint { ERROR_OPERATION_ABORTED = 995 } - -enum : uint { ERROR_IO_INCOMPLETE = 996 } - -enum : uint { ERROR_IO_PENDING = 997 } - -enum : uint { ERROR_NOACCESS = 998 } - -enum : uint { ERROR_SWAPERROR = 999 } - -enum : uint { ERROR_STACK_OVERFLOW = 1001 } - -enum : uint { ERROR_INVALID_MESSAGE = 1002 } - -enum : uint { ERROR_CAN_NOT_COMPLETE = 1003 } - -enum : uint { ERROR_INVALID_FLAGS = 1004 } - -enum : uint { ERROR_UNRECOGNIZED_VOLUME = 1005 } - -enum : uint { ERROR_FILE_INVALID = 1006 } - -enum : uint { ERROR_FULLSCREEN_MODE = 1007 } - -enum : uint { ERROR_NO_TOKEN = 1008 } - -enum : uint { ERROR_BADDB = 1009 } - -enum : uint { ERROR_BADKEY = 1010 } - -enum : uint { ERROR_CANTOPEN = 1011 } - -enum : uint { ERROR_CANTREAD = 1012 } - -enum : uint { ERROR_CANTWRITE = 1013 } - -enum : uint { ERROR_REGISTRY_RECOVERED = 1014 } - -enum : uint { ERROR_REGISTRY_CORRUPT = 1015 } - -enum : uint { ERROR_REGISTRY_IO_FAILED = 1016 } - -enum : uint { ERROR_NOT_REGISTRY_FILE = 1017 } - -enum : uint { ERROR_KEY_DELETED = 1018 } - -enum : uint { ERROR_NO_LOG_SPACE = 1019 } - -enum : uint { ERROR_KEY_HAS_CHILDREN = 1020 } - -enum : uint { ERROR_CHILD_MUST_BE_VOLATILE = 1021 } - -enum : uint { ERROR_NOTIFY_ENUM_DIR = 1022 } - -enum : uint { ERROR_DEPENDENT_SERVICES_RUNNING = 1051 } - -enum : uint { ERROR_INVALID_SERVICE_CONTROL = 1052 } - -enum : uint { ERROR_SERVICE_REQUEST_TIMEOUT = 1053 } - -enum : uint { ERROR_SERVICE_NO_THREAD = 1054 } - -enum : uint { ERROR_SERVICE_DATABASE_LOCKED = 1055 } - -enum : uint { ERROR_SERVICE_ALREADY_RUNNING = 1056 } - -enum : uint { ERROR_INVALID_SERVICE_ACCOUNT = 1057 } - -enum : uint { ERROR_SERVICE_DISABLED = 1058 } - -enum : uint { ERROR_CIRCULAR_DEPENDENCY = 1059 } - -enum : uint { ERROR_SERVICE_DOES_NOT_EXIST = 1060 } - -enum : uint { ERROR_SERVICE_CANNOT_ACCEPT_CTRL = 1061 } - -enum : uint { ERROR_SERVICE_NOT_ACTIVE = 1062 } - -enum : uint { ERROR_FAILED_SERVICE_CONTROLLER_CONNECT = 1063 } - -enum : uint { ERROR_EXCEPTION_IN_SERVICE = 1064 } - -enum : uint { ERROR_DATABASE_DOES_NOT_EXIST = 1065 } - -enum : uint { ERROR_SERVICE_SPECIFIC_ERROR = 1066 } - -enum : uint { ERROR_PROCESS_ABORTED = 1067 } - -enum : uint { ERROR_SERVICE_DEPENDENCY_FAIL = 1068 } - -enum : uint { ERROR_SERVICE_LOGON_FAILED = 1069 } - -enum : uint { ERROR_SERVICE_START_HANG = 1070 } - -enum : uint { ERROR_INVALID_SERVICE_LOCK = 1071 } - -enum : uint { ERROR_SERVICE_MARKED_FOR_DELETE = 1072 } - -enum : uint { ERROR_SERVICE_EXISTS = 1073 } - -enum : uint { ERROR_ALREADY_RUNNING_LKG = 1074 } - -enum : uint { ERROR_SERVICE_DEPENDENCY_DELETED = 1075 } - -enum : uint { ERROR_BOOT_ALREADY_ACCEPTED = 1076 } - -enum : uint { ERROR_SERVICE_NEVER_STARTED = 1077 } - -enum : uint { ERROR_DUPLICATE_SERVICE_NAME = 1078 } - -enum : uint { ERROR_DIFFERENT_SERVICE_ACCOUNT = 1079 } - -enum : uint { ERROR_CANNOT_DETECT_DRIVER_FAILURE = 1080 } - -enum : uint { ERROR_CANNOT_DETECT_PROCESS_ABORT = 1081 } - -enum : uint { ERROR_NO_RECOVERY_PROGRAM = 1082 } - -enum : uint { ERROR_SERVICE_NOT_IN_EXE = 1083 } - -enum : uint { ERROR_NOT_SAFEBOOT_SERVICE = 1084 } - -enum : uint { ERROR_END_OF_MEDIA = 1100 } - -enum : uint { ERROR_FILEMARK_DETECTED = 1101 } - -enum : uint { ERROR_BEGINNING_OF_MEDIA = 1102 } - -enum : uint { ERROR_SETMARK_DETECTED = 1103 } - -enum : uint { ERROR_NO_DATA_DETECTED = 1104 } - -enum : uint { ERROR_PARTITION_FAILURE = 1105 } - -enum : uint { ERROR_INVALID_BLOCK_LENGTH = 1106 } - -enum : uint { ERROR_DEVICE_NOT_PARTITIONED = 1107 } - -enum : uint { ERROR_UNABLE_TO_LOCK_MEDIA = 1108 } - -enum : uint { ERROR_UNABLE_TO_UNLOAD_MEDIA = 1109 } - -enum : uint { ERROR_MEDIA_CHANGED = 1110 } - -enum : uint { ERROR_BUS_RESET = 1111 } - -enum : uint { ERROR_NO_MEDIA_IN_DRIVE = 1112 } - -enum : uint { ERROR_NO_UNICODE_TRANSLATION = 1113 } - -enum : uint { ERROR_DLL_INIT_FAILED = 1114 } - -enum : uint { ERROR_SHUTDOWN_IN_PROGRESS = 1115 } - -enum : uint { ERROR_NO_SHUTDOWN_IN_PROGRESS = 1116 } - -enum : uint { ERROR_IO_DEVICE = 1117 } - -enum : uint { ERROR_SERIAL_NO_DEVICE = 1118 } - -enum : uint { ERROR_IRQ_BUSY = 1119 } - -enum : uint { ERROR_MORE_WRITES = 1120 } - -enum : uint { ERROR_COUNTER_TIMEOUT = 1121 } - -enum : uint { ERROR_FLOPPY_ID_MARK_NOT_FOUND = 1122 } - -enum : uint { ERROR_FLOPPY_WRONG_CYLINDER = 1123 } - -enum : uint { ERROR_FLOPPY_UNKNOWN_ERROR = 1124 } - -enum : uint { ERROR_FLOPPY_BAD_REGISTERS = 1125 } - -enum : uint { ERROR_DISK_RECALIBRATE_FAILED = 1126 } - -enum : uint { ERROR_DISK_OPERATION_FAILED = 1127 } - -enum : uint { ERROR_DISK_RESET_FAILED = 1128 } - -enum : uint { ERROR_EOM_OVERFLOW = 1129 } - -enum : uint { ERROR_NOT_ENOUGH_SERVER_MEMORY = 1130 } - -enum : uint { ERROR_POSSIBLE_DEADLOCK = 1131 } - -enum : uint { ERROR_MAPPED_ALIGNMENT = 1132 } - -enum : uint { ERROR_SET_POWER_STATE_VETOED = 1140 } - -enum : uint { ERROR_SET_POWER_STATE_FAILED = 1141 } - -enum : uint { ERROR_TOO_MANY_LINKS = 1142 } - -enum : uint { ERROR_OLD_WIN_VERSION = 1150 } - -enum : uint { ERROR_APP_WRONG_OS = 1151 } - -enum : uint { ERROR_SINGLE_INSTANCE_APP = 1152 } - -enum : uint { ERROR_RMODE_APP = 1153 } - -enum : uint { ERROR_INVALID_DLL = 1154 } - -enum : uint { ERROR_NO_ASSOCIATION = 1155 } - -enum : uint { ERROR_DDE_FAIL = 1156 } - -enum : uint { ERROR_DLL_NOT_FOUND = 1157 } - -enum : uint { ERROR_NO_MORE_USER_HANDLES = 1158 } - -enum : uint { ERROR_MESSAGE_SYNC_ONLY = 1159 } - -enum : uint { ERROR_SOURCE_ELEMENT_EMPTY = 1160 } - -enum : uint { ERROR_DESTINATION_ELEMENT_FULL = 1161 } - -enum : uint { ERROR_ILLEGAL_ELEMENT_ADDRESS = 1162 } - -enum : uint { ERROR_MAGAZINE_NOT_PRESENT = 1163 } - -enum : uint { ERROR_DEVICE_REINITIALIZATION_NEEDED = 1164 } - -enum : uint { ERROR_DEVICE_REQUIRES_CLEANING = 1165 } - -enum : uint { ERROR_DEVICE_DOOR_OPEN = 1166 } - -enum : uint { ERROR_DEVICE_NOT_CONNECTED = 1167 } - -enum : uint { ERROR_NOT_FOUND = 1168 } - -enum : uint { ERROR_NO_MATCH = 1169 } - -enum : uint { ERROR_SET_NOT_FOUND = 1170 } - -enum : uint { ERROR_POINT_NOT_FOUND = 1171 } - -enum : uint { ERROR_NO_TRACKING_SERVICE = 1172 } - -enum : uint { ERROR_NO_VOLUME_ID = 1173 } - -enum : uint { ERROR_UNABLE_TO_REMOVE_REPLACED = 1175 } - -enum : uint { ERROR_UNABLE_TO_MOVE_REPLACEMENT = 1176 } - -enum : uint { ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 = 1177 } - -enum : uint { ERROR_JOURNAL_DELETE_IN_PROGRESS = 1178 } - -enum : uint { ERROR_JOURNAL_NOT_ACTIVE = 1179 } - -enum : uint { ERROR_POTENTIAL_FILE_FOUND = 1180 } - -enum : uint { ERROR_JOURNAL_ENTRY_DELETED = 1181 } - -enum : uint { ERROR_BAD_DEVICE = 1200 } - -enum : uint { ERROR_CONNECTION_UNAVAIL = 1201 } - -enum : uint { ERROR_DEVICE_ALREADY_REMEMBERED = 1202 } - -enum : uint { ERROR_NO_NET_OR_BAD_PATH = 1203 } - -enum : uint { ERROR_BAD_PROVIDER = 1204 } - -enum : uint { ERROR_CANNOT_OPEN_PROFILE = 1205 } - -enum : uint { ERROR_BAD_PROFILE = 1206 } - -enum : uint { ERROR_NOT_CONTAINER = 1207 } - -enum : uint { ERROR_EXTENDED_ERROR = 1208 } - -enum : uint { ERROR_INVALID_GROUPNAME = 1209 } - -enum : uint { ERROR_INVALID_COMPUTERNAME = 1210 } - -enum : uint { ERROR_INVALID_EVENTNAME = 1211 } - -enum : uint { ERROR_INVALID_DOMAINNAME = 1212 } - -enum : uint { ERROR_INVALID_SERVICENAME = 1213 } - -enum : uint { ERROR_INVALID_NETNAME = 1214 } - -enum : uint { ERROR_INVALID_SHARENAME = 1215 } - -enum : uint { ERROR_INVALID_PASSWORDNAME = 1216 } - -enum : uint { ERROR_INVALID_MESSAGENAME = 1217 } - -enum : uint { ERROR_INVALID_MESSAGEDEST = 1218 } - -enum : uint { ERROR_SESSION_CREDENTIAL_CONFLICT = 1219 } - -enum : uint { ERROR_REMOTE_SESSION_LIMIT_EXCEEDED = 1220 } - -enum : uint { ERROR_DUP_DOMAINNAME = 1221 } - -enum : uint { ERROR_NO_NETWORK = 1222 } - -enum : uint { ERROR_CANCELLED = 1223 } - -enum : uint { ERROR_USER_MAPPED_FILE = 1224 } - -enum : uint { ERROR_CONNECTION_REFUSED = 1225 } - -enum : uint { ERROR_GRACEFUL_DISCONNECT = 1226 } - -enum : uint { ERROR_ADDRESS_ALREADY_ASSOCIATED = 1227 } - -enum : uint { ERROR_ADDRESS_NOT_ASSOCIATED = 1228 } - -enum : uint { ERROR_CONNECTION_INVALID = 1229 } - -enum : uint { ERROR_CONNECTION_ACTIVE = 1230 } - -enum : uint { ERROR_NETWORK_UNREACHABLE = 1231 } - -enum : uint { ERROR_HOST_UNREACHABLE = 1232 } - -enum : uint { ERROR_PROTOCOL_UNREACHABLE = 1233 } - -enum : uint { ERROR_PORT_UNREACHABLE = 1234 } - -enum : uint { ERROR_REQUEST_ABORTED = 1235 } - -enum : uint { ERROR_CONNECTION_ABORTED = 1236 } - -enum : uint { ERROR_RETRY = 1237 } - -enum : uint { ERROR_CONNECTION_COUNT_LIMIT = 1238 } - -enum : uint { ERROR_LOGIN_TIME_RESTRICTION = 1239 } - -enum : uint { ERROR_LOGIN_WKSTA_RESTRICTION = 1240 } - -enum : uint { ERROR_INCORRECT_ADDRESS = 1241 } - -enum : uint { ERROR_ALREADY_REGISTERED = 1242 } - -enum : uint { ERROR_SERVICE_NOT_FOUND = 1243 } - -enum : uint { ERROR_NOT_AUTHENTICATED = 1244 } - -enum : uint { ERROR_NOT_LOGGED_ON = 1245 } - -enum : uint { ERROR_CONTINUE = 1246 } - -enum : uint { ERROR_ALREADY_INITIALIZED = 1247 } - -enum : uint { ERROR_NO_MORE_DEVICES = 1248 } - -enum : uint { ERROR_NO_SUCH_SITE = 1249 } - -enum : uint { ERROR_DOMAIN_CONTROLLER_EXISTS = 1250 } - -enum : uint { ERROR_ONLY_IF_CONNECTED = 1251 } - -enum : uint { ERROR_OVERRIDE_NOCHANGES = 1252 } - -enum : uint { ERROR_BAD_USER_PROFILE = 1253 } - -enum : uint { ERROR_NOT_SUPPORTED_ON_SBS = 1254 } - -enum : uint { ERROR_SERVER_SHUTDOWN_IN_PROGRESS = 1255 } - -enum : uint { ERROR_HOST_DOWN = 1256 } - -enum : uint { ERROR_NON_ACCOUNT_SID = 1257 } - -enum : uint { ERROR_NON_DOMAIN_SID = 1258 } - -enum : uint { ERROR_APPHELP_BLOCK = 1259 } - -enum : uint { ERROR_ACCESS_DISABLED_BY_POLICY = 1260 } - -enum : uint { ERROR_REG_NAT_CONSUMPTION = 1261 } - -enum : uint { ERROR_CSCSHARE_OFFLINE = 1262 } - -enum : uint { ERROR_PKINIT_FAILURE = 1263 } - -enum : uint { ERROR_SMARTCARD_SUBSYSTEM_FAILURE = 1264 } - -enum : uint { ERROR_DOWNGRADE_DETECTED = 1265 } - -enum : uint { SEC_E_SMARTCARD_CERT_REVOKED = 1266 } - -enum : uint { SEC_E_ISSUING_CA_UNTRUSTED = 1267 } - -enum : uint { SEC_E_REVOCATION_OFFLINE_C = 1268 } - -enum : uint { SEC_E_PKINIT_CLIENT_FAILURE = 1269 } - -enum : uint { SEC_E_SMARTCARD_CERT_EXPIRED = 1270 } - -enum : uint { ERROR_MACHINE_LOCKED = 1271 } - -enum : uint { ERROR_CALLBACK_SUPPLIED_INVALID_DATA = 1273 } - -enum : uint { ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED = 1274 } - -enum : uint { ERROR_DRIVER_BLOCKED = 1275 } - -enum : uint { ERROR_INVALID_IMPORT_OF_NON_DLL = 1276 } - -enum : uint { ERROR_NOT_ALL_ASSIGNED = 1300 } - -enum : uint { ERROR_SOME_NOT_MAPPED = 1301 } - -enum : uint { ERROR_NO_QUOTAS_FOR_ACCOUNT = 1302 } - -enum : uint { ERROR_LOCAL_USER_SESSION_KEY = 1303 } - -enum : uint { ERROR_NULL_LM_PASSWORD = 1304 } - -enum : uint { ERROR_UNKNOWN_REVISION = 1305 } - -enum : uint { ERROR_REVISION_MISMATCH = 1306 } - -enum : uint { ERROR_INVALID_OWNER = 1307 } - -enum : uint { ERROR_INVALID_PRIMARY_GROUP = 1308 } - -enum : uint { ERROR_NO_IMPERSONATION_TOKEN = 1309 } - -enum : uint { ERROR_CANT_DISABLE_MANDATORY = 1310 } - -enum : uint { ERROR_NO_LOGON_SERVERS = 1311 } - -enum : uint { ERROR_NO_SUCH_LOGON_SESSION = 1312 } - -enum : uint { ERROR_NO_SUCH_PRIVILEGE = 1313 } - -enum : uint { ERROR_PRIVILEGE_NOT_HELD = 1314 } - -enum : uint { ERROR_INVALID_ACCOUNT_NAME = 1315 } - -enum : uint { ERROR_USER_EXISTS = 1316 } - -enum : uint { ERROR_NO_SUCH_USER = 1317 } - -enum : uint { ERROR_GROUP_EXISTS = 1318 } - -enum : uint { ERROR_NO_SUCH_GROUP = 1319 } - -enum : uint { ERROR_MEMBER_IN_GROUP = 1320 } - -enum : uint { ERROR_MEMBER_NOT_IN_GROUP = 1321 } - -enum : uint { ERROR_LAST_ADMIN = 1322 } - -enum : uint { ERROR_WRONG_PASSWORD = 1323 } - -enum : uint { ERROR_ILL_FORMED_PASSWORD = 1324 } - -enum : uint { ERROR_PASSWORD_RESTRICTION = 1325 } - -enum : uint { ERROR_LOGON_FAILURE = 1326 } - -enum : uint { ERROR_ACCOUNT_RESTRICTION = 1327 } - -enum : uint { ERROR_INVALID_LOGON_HOURS = 1328 } - -enum : uint { ERROR_INVALID_WORKSTATION = 1329 } - -enum : uint { ERROR_PASSWORD_EXPIRED = 1330 } - -enum : uint { ERROR_ACCOUNT_DISABLED = 1331 } - -enum : uint { ERROR_NONE_MAPPED = 1332 } - -enum : uint { ERROR_TOO_MANY_LUIDS_REQUESTED = 1333 } - -enum : uint { ERROR_LUIDS_EXHAUSTED = 1334 } - -enum : uint { ERROR_INVALID_SUB_AUTHORITY = 1335 } - -enum : uint { ERROR_INVALID_ACL = 1336 } - -enum : uint { ERROR_INVALID_SID = 1337 } - -enum : uint { ERROR_INVALID_SECURITY_DESCR = 1338 } - -enum : uint { ERROR_BAD_INHERITANCE_ACL = 1340 } - -enum : uint { ERROR_SERVER_DISABLED = 1341 } - -enum : uint { ERROR_SERVER_NOT_DISABLED = 1342 } - -enum : uint { ERROR_INVALID_ID_AUTHORITY = 1343 } - -enum : uint { ERROR_ALLOTTED_SPACE_EXCEEDED = 1344 } - -enum : uint { ERROR_INVALID_GROUP_ATTRIBUTES = 1345 } - -enum : uint { ERROR_BAD_IMPERSONATION_LEVEL = 1346 } - -enum : uint { ERROR_CANT_OPEN_ANONYMOUS = 1347 } - -enum : uint { ERROR_BAD_VALIDATION_CLASS = 1348 } - -enum : uint { ERROR_BAD_TOKEN_TYPE = 1349 } - -enum : uint { ERROR_NO_SECURITY_ON_OBJECT = 1350 } - -enum : uint { ERROR_CANT_ACCESS_DOMAIN_INFO = 1351 } - -enum : uint { ERROR_INVALID_SERVER_STATE = 1352 } - -enum : uint { ERROR_INVALID_DOMAIN_STATE = 1353 } - -enum : uint { ERROR_INVALID_DOMAIN_ROLE = 1354 } - -enum : uint { ERROR_NO_SUCH_DOMAIN = 1355 } - -enum : uint { ERROR_DOMAIN_EXISTS = 1356 } - -enum : uint { ERROR_DOMAIN_LIMIT_EXCEEDED = 1357 } - -enum : uint { ERROR_INTERNAL_DB_CORRUPTION = 1358 } - -enum : uint { ERROR_INTERNAL_ERROR = 1359 } - -enum : uint { ERROR_GENERIC_NOT_MAPPED = 1360 } - -enum : uint { ERROR_BAD_DESCRIPTOR_FORMAT = 1361 } - -enum : uint { ERROR_NOT_LOGON_PROCESS = 1362 } - -enum : uint { ERROR_LOGON_SESSION_EXISTS = 1363 } - -enum : uint { ERROR_NO_SUCH_PACKAGE = 1364 } - -enum : uint { ERROR_BAD_LOGON_SESSION_STATE = 1365 } - -enum : uint { ERROR_LOGON_SESSION_COLLISION = 1366 } - -enum : uint { ERROR_INVALID_LOGON_TYPE = 1367 } - -enum : uint { ERROR_CANNOT_IMPERSONATE = 1368 } - -enum : uint { ERROR_RXACT_INVALID_STATE = 1369 } - -enum : uint { ERROR_RXACT_COMMIT_FAILURE = 1370 } - -enum : uint { ERROR_SPECIAL_ACCOUNT = 1371 } - -enum : uint { ERROR_SPECIAL_GROUP = 1372 } - -enum : uint { ERROR_SPECIAL_USER = 1373 } - -enum : uint { ERROR_MEMBERS_PRIMARY_GROUP = 1374 } - -enum : uint { ERROR_TOKEN_ALREADY_IN_USE = 1375 } - -enum : uint { ERROR_NO_SUCH_ALIAS = 1376 } - -enum : uint { ERROR_MEMBER_NOT_IN_ALIAS = 1377 } - -enum : uint { ERROR_MEMBER_IN_ALIAS = 1378 } - -enum : uint { ERROR_ALIAS_EXISTS = 1379 } - -enum : uint { ERROR_LOGON_NOT_GRANTED = 1380 } - -enum : uint { ERROR_TOO_MANY_SECRETS = 1381 } - -enum : uint { ERROR_SECRET_TOO_LONG = 1382 } - -enum : uint { ERROR_INTERNAL_DB_ERROR = 1383 } - -enum : uint { ERROR_TOO_MANY_CONTEXT_IDS = 1384 } - -enum : uint { ERROR_LOGON_TYPE_NOT_GRANTED = 1385 } - -enum : uint { ERROR_NT_CROSS_ENCRYPTION_REQUIRED = 1386 } - -enum : uint { ERROR_NO_SUCH_MEMBER = 1387 } - -enum : uint { ERROR_INVALID_MEMBER = 1388 } - -enum : uint { ERROR_TOO_MANY_SIDS = 1389 } - -enum : uint { ERROR_LM_CROSS_ENCRYPTION_REQUIRED = 1390 } - -enum : uint { ERROR_NO_INHERITANCE = 1391 } - -enum : uint { ERROR_FILE_CORRUPT = 1392 } - -enum : uint { ERROR_DISK_CORRUPT = 1393 } - -enum : uint { ERROR_NO_USER_SESSION_KEY = 1394 } - -enum : uint { ERROR_LICENSE_QUOTA_EXCEEDED = 1395 } - -enum : uint { ERROR_WRONG_TARGET_NAME = 1396 } - -enum : uint { ERROR_MUTUAL_AUTH_FAILED = 1397 } - -enum : uint { ERROR_TIME_SKEW = 1398 } - -enum : uint { ERROR_CURRENT_DOMAIN_NOT_ALLOWED = 1399 } - -enum : uint { ERROR_INVALID_WINDOW_HANDLE = 1400 } - -enum : uint { ERROR_INVALID_MENU_HANDLE = 1401 } - -enum : uint { ERROR_INVALID_CURSOR_HANDLE = 1402 } - -enum : uint { ERROR_INVALID_ACCEL_HANDLE = 1403 } - -enum : uint { ERROR_INVALID_HOOK_HANDLE = 1404 } - -enum : uint { ERROR_INVALID_DWP_HANDLE = 1405 } - -enum : uint { ERROR_TLW_WITH_WSCHILD = 1406 } - -enum : uint { ERROR_CANNOT_FIND_WND_CLASS = 1407 } - -enum : uint { ERROR_WINDOW_OF_OTHER_THREAD = 1408 } - -enum : uint { ERROR_HOTKEY_ALREADY_REGISTERED = 1409 } - -enum : uint { ERROR_CLASS_ALREADY_EXISTS = 1410 } - -enum : uint { ERROR_CLASS_DOES_NOT_EXIST = 1411 } - -enum : uint { ERROR_CLASS_HAS_WINDOWS = 1412 } - -enum : uint { ERROR_INVALID_INDEX = 1413 } - -enum : uint { ERROR_INVALID_ICON_HANDLE = 1414 } - -enum : uint { ERROR_PRIVATE_DIALOG_INDEX = 1415 } - -enum : uint { ERROR_LISTBOX_ID_NOT_FOUND = 1416 } - -enum : uint { ERROR_NO_WILDCARD_CHARACTERS = 1417 } - -enum : uint { ERROR_CLIPBOARD_NOT_OPEN = 1418 } - -enum : uint { ERROR_HOTKEY_NOT_REGISTERED = 1419 } - -enum : uint { ERROR_WINDOW_NOT_DIALOG = 1420 } - -enum : uint { ERROR_CONTROL_ID_NOT_FOUND = 1421 } - -enum : uint { ERROR_INVALID_COMBOBOX_MESSAGE = 1422 } - -enum : uint { ERROR_WINDOW_NOT_COMBOBOX = 1423 } - -enum : uint { ERROR_INVALID_EDIT_HEIGHT = 1424 } - -enum : uint { ERROR_DC_NOT_FOUND = 1425 } - -enum : uint { ERROR_INVALID_HOOK_FILTER = 1426 } - -enum : uint { ERROR_INVALID_FILTER_PROC = 1427 } - -enum : uint { ERROR_HOOK_NEEDS_HMOD = 1428 } - -enum : uint { ERROR_GLOBAL_ONLY_HOOK = 1429 } - -enum : uint { ERROR_JOURNAL_HOOK_SET = 1430 } - -enum : uint { ERROR_HOOK_NOT_INSTALLED = 1431 } - -enum : uint { ERROR_INVALID_LB_MESSAGE = 1432 } - -enum : uint { ERROR_SETCOUNT_ON_BAD_LB = 1433 } - -enum : uint { ERROR_LB_WITHOUT_TABSTOPS = 1434 } - -enum : uint { ERROR_DESTROY_OBJECT_OF_OTHER_THREAD = 1435 } - -enum : uint { ERROR_CHILD_WINDOW_MENU = 1436 } - -enum : uint { ERROR_NO_SYSTEM_MENU = 1437 } - -enum : uint { ERROR_INVALID_MSGBOX_STYLE = 1438 } - -enum : uint { ERROR_INVALID_SPI_VALUE = 1439 } - -enum : uint { ERROR_SCREEN_ALREADY_LOCKED = 1440 } - -enum : uint { ERROR_HWNDS_HAVE_DIFF_PARENT = 1441 } - -enum : uint { ERROR_NOT_CHILD_WINDOW = 1442 } - -enum : uint { ERROR_INVALID_GW_COMMAND = 1443 } - -enum : uint { ERROR_INVALID_THREAD_ID = 1444 } - -enum : uint { ERROR_NON_MDICHILD_WINDOW = 1445 } - -enum : uint { ERROR_POPUP_ALREADY_ACTIVE = 1446 } - -enum : uint { ERROR_NO_SCROLLBARS = 1447 } - -enum : uint { ERROR_INVALID_SCROLLBAR_RANGE = 1448 } - -enum : uint { ERROR_INVALID_SHOWWIN_COMMAND = 1449 } - -enum : uint { ERROR_NO_SYSTEM_RESOURCES = 1450 } - -enum : uint { ERROR_NONPAGED_SYSTEM_RESOURCES = 1451 } - -enum : uint { ERROR_PAGED_SYSTEM_RESOURCES = 1452 } - -enum : uint { ERROR_WORKING_SET_QUOTA = 1453 } - -enum : uint { ERROR_PAGEFILE_QUOTA = 1454 } - -enum : uint { ERROR_COMMITMENT_LIMIT = 1455 } - -enum : uint { ERROR_MENU_ITEM_NOT_FOUND = 1456 } - -enum : uint { ERROR_INVALID_KEYBOARD_HANDLE = 1457 } - -enum : uint { ERROR_HOOK_TYPE_NOT_ALLOWED = 1458 } - -enum : uint { ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION = 1459 } - -enum : uint { ERROR_TIMEOUT = 1460 } - -enum : uint { ERROR_INVALID_MONITOR_HANDLE = 1461 } - -enum : uint { ERROR_EVENTLOG_FILE_CORRUPT = 1500 } - -enum : uint { ERROR_EVENTLOG_CANT_START = 1501 } - -enum : uint { ERROR_LOG_FILE_FULL = 1502 } - -enum : uint { ERROR_EVENTLOG_FILE_CHANGED = 1503 } - -enum : uint { ERROR_INSTALL_SERVICE_FAILURE = 1601 } - -enum : uint { ERROR_INSTALL_USEREXIT = 1602 } - -enum : uint { ERROR_INSTALL_FAILURE = 1603 } - -enum : uint { ERROR_INSTALL_SUSPEND = 1604 } - -enum : uint { ERROR_UNKNOWN_PRODUCT = 1605 } - -enum : uint { ERROR_UNKNOWN_FEATURE = 1606 } - -enum : uint { ERROR_UNKNOWN_COMPONENT = 1607 } - -enum : uint { ERROR_UNKNOWN_PROPERTY = 1608 } - -enum : uint { ERROR_INVALID_HANDLE_STATE = 1609 } - -enum : uint { ERROR_BAD_CONFIGURATION = 1610 } - -enum : uint { ERROR_INDEX_ABSENT = 1611 } - -enum : uint { ERROR_INSTALL_SOURCE_ABSENT = 1612 } - -enum : uint { ERROR_INSTALL_PACKAGE_VERSION = 1613 } - -enum : uint { ERROR_PRODUCT_UNINSTALLED = 1614 } - -enum : uint { ERROR_BAD_QUERY_SYNTAX = 1615 } - -enum : uint { ERROR_INVALID_FIELD = 1616 } - -enum : uint { ERROR_DEVICE_REMOVED = 1617 } - -enum : uint { ERROR_INSTALL_ALREADY_RUNNING = 1618 } - -enum : uint { ERROR_INSTALL_PACKAGE_OPEN_FAILED = 1619 } - -enum : uint { ERROR_INSTALL_PACKAGE_INVALID = 1620 } - -enum : uint { ERROR_INSTALL_UI_FAILURE = 1621 } - -enum : uint { ERROR_INSTALL_LOG_FAILURE = 1622 } - -enum : uint { ERROR_INSTALL_LANGUAGE_UNSUPPORTED = 1623 } - -enum : uint { ERROR_INSTALL_TRANSFORM_FAILURE = 1624 } - -enum : uint { ERROR_INSTALL_PACKAGE_REJECTED = 1625 } - -enum : uint { ERROR_FUNCTION_NOT_CALLED = 1626 } - -enum : uint { ERROR_FUNCTION_FAILED = 1627 } - -enum : uint { ERROR_INVALID_TABLE = 1628 } - -enum : uint { ERROR_DATATYPE_MISMATCH = 1629 } - -enum : uint { ERROR_UNSUPPORTED_TYPE = 1630 } - -enum : uint { ERROR_CREATE_FAILED = 1631 } - -enum : uint { ERROR_INSTALL_TEMP_UNWRITABLE = 1632 } - -enum : uint { ERROR_INSTALL_PLATFORM_UNSUPPORTED = 1633 } - -enum : uint { ERROR_INSTALL_NOTUSED = 1634 } - -enum : uint { ERROR_PATCH_PACKAGE_OPEN_FAILED = 1635 } - -enum : uint { ERROR_PATCH_PACKAGE_INVALID = 1636 } - -enum : uint { ERROR_PATCH_PACKAGE_UNSUPPORTED = 1637 } - -enum : uint { ERROR_PRODUCT_VERSION = 1638 } - -enum : uint { ERROR_INVALID_COMMAND_LINE = 1639 } - -enum : uint { ERROR_INSTALL_REMOTE_DISALLOWED = 1640 } - -enum : uint { ERROR_SUCCESS_REBOOT_INITIATED = 1641 } - -enum : uint { ERROR_PATCH_TARGET_NOT_FOUND = 1642 } - -enum : uint { ERROR_PATCH_PACKAGE_REJECTED = 1643 } - -enum : uint { ERROR_INSTALL_TRANSFORM_REJECTED = 1644 } - -enum : uint { RPC_S_INVALID_STRING_BINDING = 1700 } - -enum : uint { RPC_S_WRONG_KIND_OF_BINDING = 1701 } - -enum : uint { RPC_S_INVALID_BINDING = 1702 } - -enum : uint { RPC_S_PROTSEQ_NOT_SUPPORTED = 1703 } - -enum : uint { RPC_S_INVALID_RPC_PROTSEQ = 1704 } - -enum : uint { RPC_S_INVALID_STRING_UUID = 1705 } - -enum : uint { RPC_S_INVALID_ENDPOINT_FORMAT = 1706 } - -enum : uint { RPC_S_INVALID_NET_ADDR = 1707 } - -enum : uint { RPC_S_NO_ENDPOINT_FOUND = 1708 } - -enum : uint { RPC_S_INVALID_TIMEOUT = 1709 } - -enum : uint { RPC_S_OBJECT_NOT_FOUND = 1710 } - -enum : uint { RPC_S_ALREADY_REGISTERED = 1711 } - -enum : uint { RPC_S_TYPE_ALREADY_REGISTERED = 1712 } - -enum : uint { RPC_S_ALREADY_LISTENING = 1713 } - -enum : uint { RPC_S_NO_PROTSEQS_REGISTERED = 1714 } - -enum : uint { RPC_S_NOT_LISTENING = 1715 } - -enum : uint { RPC_S_UNKNOWN_MGR_TYPE = 1716 } - -enum : uint { RPC_S_UNKNOWN_IF = 1717 } - -enum : uint { RPC_S_NO_BINDINGS = 1718 } - -enum : uint { RPC_S_NO_PROTSEQS = 1719 } - -enum : uint { RPC_S_CANT_CREATE_ENDPOINT = 1720 } - -enum : uint { RPC_S_OUT_OF_RESOURCES = 1721 } - -enum : uint { RPC_S_SERVER_UNAVAILABLE = 1722 } - -enum : uint { RPC_S_SERVER_TOO_BUSY = 1723 } - -enum : uint { RPC_S_INVALID_NETWORK_OPTIONS = 1724 } - -enum : uint { RPC_S_NO_CALL_ACTIVE = 1725 } - -enum : uint { RPC_S_CALL_FAILED = 1726 } - -enum : uint { RPC_S_CALL_FAILED_DNE = 1727 } - -enum : uint { RPC_S_PROTOCOL_ERROR = 1728 } - -enum : uint { RPC_S_UNSUPPORTED_TRANS_SYN = 1730 } - -enum : uint { RPC_S_UNSUPPORTED_TYPE = 1732 } - -enum : uint { RPC_S_INVALID_TAG = 1733 } - -enum : uint { RPC_S_INVALID_BOUND = 1734 } - -enum : uint { RPC_S_NO_ENTRY_NAME = 1735 } - -enum : uint { RPC_S_INVALID_NAME_SYNTAX = 1736 } - -enum : uint { RPC_S_UNSUPPORTED_NAME_SYNTAX = 1737 } - -enum : uint { RPC_S_UUID_NO_ADDRESS = 1739 } - -enum : uint { RPC_S_DUPLICATE_ENDPOINT = 1740 } - -enum : uint { RPC_S_UNKNOWN_AUTHN_TYPE = 1741 } - -enum : uint { RPC_S_MAX_CALLS_TOO_SMALL = 1742 } - -enum : uint { RPC_S_STRING_TOO_LONG = 1743 } - -enum : uint { RPC_S_PROTSEQ_NOT_FOUND = 1744 } - -enum : uint { RPC_S_PROCNUM_OUT_OF_RANGE = 1745 } - -enum : uint { RPC_S_BINDING_HAS_NO_AUTH = 1746 } - -enum : uint { RPC_S_UNKNOWN_AUTHN_SERVICE = 1747 } - -enum : uint { RPC_S_UNKNOWN_AUTHN_LEVEL = 1748 } - -enum : uint { RPC_S_INVALID_AUTH_IDENTITY = 1749 } - -enum : uint { RPC_S_UNKNOWN_AUTHZ_SERVICE = 1750 } - -enum : uint { EPT_S_INVALID_ENTRY = 1751 } - -enum : uint { EPT_S_CANT_PERFORM_OP = 1752 } - -enum : uint { EPT_S_NOT_REGISTERED = 1753 } - -enum : uint { RPC_S_NOTHING_TO_EXPORT = 1754 } - -enum : uint { RPC_S_INCOMPLETE_NAME = 1755 } - -enum : uint { RPC_S_INVALID_VERS_OPTION = 1756 } - -enum : uint { RPC_S_NO_MORE_MEMBERS = 1757 } - -enum : uint { RPC_S_NOT_ALL_OBJS_UNEXPORTED = 1758 } - -enum : uint { RPC_S_INTERFACE_NOT_FOUND = 1759 } - -enum : uint { RPC_S_ENTRY_ALREADY_EXISTS = 1760 } - -enum : uint { RPC_S_ENTRY_NOT_FOUND = 1761 } - -enum : uint { RPC_S_NAME_SERVICE_UNAVAILABLE = 1762 } - -enum : uint { RPC_S_INVALID_NAF_ID = 1763 } - -enum : uint { RPC_S_CANNOT_SUPPORT = 1764 } - -enum : uint { RPC_S_NO_CONTEXT_AVAILABLE = 1765 } - -enum : uint { RPC_S_INTERNAL_ERROR = 1766 } - -enum : uint { RPC_S_ZERO_DIVIDE = 1767 } - -enum : uint { RPC_S_ADDRESS_ERROR = 1768 } - -enum : uint { RPC_S_FP_DIV_ZERO = 1769 } - -enum : uint { RPC_S_FP_UNDERFLOW = 1770 } - -enum : uint { RPC_S_FP_OVERFLOW = 1771 } - -enum : uint { RPC_X_NO_MORE_ENTRIES = 1772 } - -enum : uint { RPC_X_SS_CHAR_TRANS_OPEN_FAIL = 1773 } - -enum : uint { RPC_X_SS_CHAR_TRANS_SHORT_FILE = 1774 } - -enum : uint { RPC_X_SS_IN_NULL_CONTEXT = 1775 } - -enum : uint { RPC_X_SS_CONTEXT_DAMAGED = 1777 } - -enum : uint { RPC_X_SS_HANDLES_MISMATCH = 1778 } - -enum : uint { RPC_X_SS_CANNOT_GET_CALL_HANDLE = 1779 } - -enum : uint { RPC_X_NULL_REF_POINTER = 1780 } - -enum : uint { RPC_X_ENUM_VALUE_OUT_OF_RANGE = 1781 } - -enum : uint { RPC_X_BYTE_COUNT_TOO_SMALL = 1782 } - -enum : uint { RPC_X_BAD_STUB_DATA = 1783 } - -enum : uint { ERROR_INVALID_USER_BUFFER = 1784 } - -enum : uint { ERROR_UNRECOGNIZED_MEDIA = 1785 } - -enum : uint { ERROR_NO_TRUST_LSA_SECRET = 1786 } - -enum : uint { ERROR_NO_TRUST_SAM_ACCOUNT = 1787 } - -enum : uint { ERROR_TRUSTED_DOMAIN_FAILURE = 1788 } - -enum : uint { ERROR_TRUSTED_RELATIONSHIP_FAILURE = 1789 } - -enum : uint { ERROR_TRUST_FAILURE = 1790 } - -enum : uint { RPC_S_CALL_IN_PROGRESS = 1791 } - -enum : uint { ERROR_NETLOGON_NOT_STARTED = 1792 } - -enum : uint { ERROR_ACCOUNT_EXPIRED = 1793 } - -enum : uint { ERROR_REDIRECTOR_HAS_OPEN_HANDLES = 1794 } - -enum : uint { ERROR_PRINTER_DRIVER_ALREADY_INSTALLED = 1795 } - -enum : uint { ERROR_UNKNOWN_PORT = 1796 } - -enum : uint { ERROR_UNKNOWN_PRINTER_DRIVER = 1797 } - -enum : uint { ERROR_UNKNOWN_PRINTPROCESSOR = 1798 } - -enum : uint { ERROR_INVALID_SEPARATOR_FILE = 1799 } - -enum : uint { ERROR_INVALID_PRIORITY = 1800 } - -enum : uint { ERROR_INVALID_PRINTER_NAME = 1801 } - -enum : uint { ERROR_PRINTER_ALREADY_EXISTS = 1802 } - -enum : uint { ERROR_INVALID_PRINTER_COMMAND = 1803 } - -enum : uint { ERROR_INVALID_DATATYPE = 1804 } - -enum : uint { ERROR_INVALID_ENVIRONMENT = 1805 } - -enum : uint { RPC_S_NO_MORE_BINDINGS = 1806 } - -enum : uint { ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = 1807 } - -enum : uint { ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT = 1808 } - -enum : uint { ERROR_NOLOGON_SERVER_TRUST_ACCOUNT = 1809 } - -enum : uint { ERROR_DOMAIN_TRUST_INCONSISTENT = 1810 } - -enum : uint { ERROR_SERVER_HAS_OPEN_HANDLES = 1811 } - -enum : uint { ERROR_RESOURCE_DATA_NOT_FOUND = 1812 } - -enum : uint { ERROR_RESOURCE_TYPE_NOT_FOUND = 1813 } - -enum : uint { ERROR_RESOURCE_NAME_NOT_FOUND = 1814 } - -enum : uint { ERROR_RESOURCE_LANG_NOT_FOUND = 1815 } - -enum : uint { ERROR_NOT_ENOUGH_QUOTA = 1816 } - -enum : uint { RPC_S_NO_INTERFACES = 1817 } - -enum : uint { RPC_S_CALL_CANCELLED = 1818 } - -enum : uint { RPC_S_BINDING_INCOMPLETE = 1819 } - -enum : uint { RPC_S_COMM_FAILURE = 1820 } - -enum : uint { RPC_S_UNSUPPORTED_AUTHN_LEVEL = 1821 } - -enum : uint { RPC_S_NO_PRINC_NAME = 1822 } - -enum : uint { RPC_S_NOT_RPC_ERROR = 1823 } - -enum : uint { RPC_S_UUID_LOCAL_ONLY = 1824 } - -enum : uint { RPC_S_SEC_PKG_ERROR = 1825 } - -enum : uint { RPC_S_NOT_CANCELLED = 1826 } - -enum : uint { RPC_X_INVALID_ES_ACTION = 1827 } - -enum : uint { RPC_X_WRONG_ES_VERSION = 1828 } - -enum : uint { RPC_X_WRONG_STUB_VERSION = 1829 } - -enum : uint { RPC_X_INVALID_PIPE_OBJECT = 1830 } - -enum : uint { RPC_X_WRONG_PIPE_ORDER = 1831 } - -enum : uint { RPC_X_WRONG_PIPE_VERSION = 1832 } - -enum : uint { RPC_S_GROUP_MEMBER_NOT_FOUND = 1898 } - -enum : uint { EPT_S_CANT_CREATE = 1899 } - -enum : uint { RPC_S_INVALID_OBJECT = 1900 } - -enum : uint { ERROR_INVALID_TIME = 1901 } - -enum : uint { ERROR_INVALID_FORM_NAME = 1902 } - -enum : uint { ERROR_INVALID_FORM_SIZE = 1903 } - -enum : uint { ERROR_ALREADY_WAITING = 1904 } - -enum : uint { ERROR_PRINTER_DELETED = 1905 } - -enum : uint { ERROR_INVALID_PRINTER_STATE = 1906 } - -enum : uint { ERROR_PASSWORD_MUST_CHANGE = 1907 } - -enum : uint { ERROR_DOMAIN_CONTROLLER_NOT_FOUND = 1908 } - -enum : uint { ERROR_ACCOUNT_LOCKED_OUT = 1909 } - -enum : uint { OR_INVALID_OXID = 1910 } - -enum : uint { OR_INVALID_OID = 1911 } - -enum : uint { OR_INVALID_SET = 1912 } - -enum : uint { RPC_S_SEND_INCOMPLETE = 1913 } - -enum : uint { RPC_S_INVALID_ASYNC_HANDLE = 1914 } - -enum : uint { RPC_S_INVALID_ASYNC_CALL = 1915 } - -enum : uint { RPC_X_PIPE_CLOSED = 1916 } - -enum : uint { RPC_X_PIPE_DISCIPLINE_ERROR = 1917 } - -enum : uint { RPC_X_PIPE_EMPTY = 1918 } - -enum : uint { ERROR_NO_SITENAME = 1919 } - -enum : uint { ERROR_CANT_ACCESS_FILE = 1920 } - -enum : uint { ERROR_CANT_RESOLVE_FILENAME = 1921 } - -enum : uint { RPC_S_ENTRY_TYPE_MISMATCH = 1922 } - -enum : uint { RPC_S_NOT_ALL_OBJS_EXPORTED = 1923 } - -enum : uint { RPC_S_INTERFACE_NOT_EXPORTED = 1924 } - -enum : uint { RPC_S_PROFILE_NOT_ADDED = 1925 } - -enum : uint { RPC_S_PRF_ELT_NOT_ADDED = 1926 } - -enum : uint { RPC_S_PRF_ELT_NOT_REMOVED = 1927 } - -enum : uint { RPC_S_GRP_ELT_NOT_ADDED = 1928 } - -enum : uint { RPC_S_GRP_ELT_NOT_REMOVED = 1929 } - -enum : uint { ERROR_KM_DRIVER_BLOCKED = 1930 } - -enum : uint { ERROR_CONTEXT_EXPIRED = 1931 } - -enum : uint { ERROR_INVALID_PIXEL_FORMAT = 2000 } - -enum : uint { ERROR_BAD_DRIVER = 2001 } - -enum : uint { ERROR_INVALID_WINDOW_STYLE = 2002 } - -enum : uint { ERROR_METAFILE_NOT_SUPPORTED = 2003 } - -enum : uint { ERROR_TRANSFORM_NOT_SUPPORTED = 2004 } - -enum : uint { ERROR_CLIPPING_NOT_SUPPORTED = 2005 } - -enum : uint { ERROR_INVALID_CMM = 2010 } - -enum : uint { ERROR_INVALID_PROFILE = 2011 } - -enum : uint { ERROR_TAG_NOT_FOUND = 2012 } - -enum : uint { ERROR_TAG_NOT_PRESENT = 2013 } - -enum : uint { ERROR_DUPLICATE_TAG = 2014 } - -enum : uint { ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE = 2015 } - -enum : uint { ERROR_PROFILE_NOT_FOUND = 2016 } - -enum : uint { ERROR_INVALID_COLORSPACE = 2017 } - -enum : uint { ERROR_ICM_NOT_ENABLED = 2018 } - -enum : uint { ERROR_DELETING_ICM_XFORM = 2019 } - -enum : uint { ERROR_INVALID_TRANSFORM = 2020 } - -enum : uint { ERROR_COLORSPACE_MISMATCH = 2021 } - -enum : uint { ERROR_INVALID_COLORINDEX = 2022 } - -enum : uint { ERROR_CONNECTED_OTHER_PASSWORD = 2108 } - -enum : uint { ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT = 2109 } - -enum : uint { ERROR_BAD_USERNAME = 2202 } - -enum : uint { ERROR_NOT_CONNECTED = 2250 } - -enum : uint { ERROR_OPEN_FILES = 2401 } - -enum : uint { ERROR_ACTIVE_CONNECTIONS = 2402 } - -enum : uint { ERROR_DEVICE_IN_USE = 2404 } - -enum : uint { ERROR_UNKNOWN_PRINT_MONITOR = 3000 } - -enum : uint { ERROR_PRINTER_DRIVER_IN_USE = 3001 } - -enum : uint { ERROR_SPOOL_FILE_NOT_FOUND = 3002 } - -enum : uint { ERROR_SPL_NO_STARTDOC = 3003 } - -enum : uint { ERROR_SPL_NO_ADDJOB = 3004 } - -enum : uint { ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED = 3005 } - -enum : uint { ERROR_PRINT_MONITOR_ALREADY_INSTALLED = 3006 } - -enum : uint { ERROR_INVALID_PRINT_MONITOR = 3007 } - -enum : uint { ERROR_PRINT_MONITOR_IN_USE = 3008 } - -enum : uint { ERROR_PRINTER_HAS_JOBS_QUEUED = 3009 } - -enum : uint { ERROR_SUCCESS_REBOOT_REQUIRED = 3010 } - -enum : uint { ERROR_SUCCESS_RESTART_REQUIRED = 3011 } - -enum : uint { ERROR_PRINTER_NOT_FOUND = 3012 } - -enum : uint { ERROR_PRINTER_DRIVER_WARNED = 3013 } - -enum : uint { ERROR_PRINTER_DRIVER_BLOCKED = 3014 } - -enum : uint { ERROR_WINS_INTERNAL = 4000 } - -enum : uint { ERROR_CAN_NOT_DEL_LOCAL_WINS = 4001 } - -enum : uint { ERROR_STATIC_INIT = 4002 } - -enum : uint { ERROR_INC_BACKUP = 4003 } - -enum : uint { ERROR_FULL_BACKUP = 4004 } - -enum : uint { ERROR_REC_NON_EXISTENT = 4005 } - -enum : uint { ERROR_RPL_NOT_ALLOWED = 4006 } - -enum : uint { ERROR_DHCP_ADDRESS_CONFLICT = 4100 } - -enum : uint { ERROR_WMI_GUID_NOT_FOUND = 4200 } - -enum : uint { ERROR_WMI_INSTANCE_NOT_FOUND = 4201 } - -enum : uint { ERROR_WMI_ITEMID_NOT_FOUND = 4202 } - -enum : uint { ERROR_WMI_TRY_AGAIN = 4203 } - -enum : uint { ERROR_WMI_DP_NOT_FOUND = 4204 } - -enum : uint { ERROR_WMI_UNRESOLVED_INSTANCE_REF = 4205 } - -enum : uint { ERROR_WMI_ALREADY_ENABLED = 4206 } - -enum : uint { ERROR_WMI_GUID_DISCONNECTED = 4207 } - -enum : uint { ERROR_WMI_SERVER_UNAVAILABLE = 4208 } - -enum : uint { ERROR_WMI_DP_FAILED = 4209 } - -enum : uint { ERROR_WMI_INVALID_MOF = 4210 } - -enum : uint { ERROR_WMI_INVALID_REGINFO = 4211 } - -enum : uint { ERROR_WMI_ALREADY_DISABLED = 4212 } - -enum : uint { ERROR_WMI_READ_ONLY = 4213 } - -enum : uint { ERROR_WMI_SET_FAILURE = 4214 } - -enum : uint { ERROR_INVALID_MEDIA = 4300 } - -enum : uint { ERROR_INVALID_LIBRARY = 4301 } - -enum : uint { ERROR_INVALID_MEDIA_POOL = 4302 } - -enum : uint { ERROR_DRIVE_MEDIA_MISMATCH = 4303 } - -enum : uint { ERROR_MEDIA_OFFLINE = 4304 } - -enum : uint { ERROR_LIBRARY_OFFLINE = 4305 } - -enum : uint { ERROR_EMPTY = 4306 } - -enum : uint { ERROR_NOT_EMPTY = 4307 } - -enum : uint { ERROR_MEDIA_UNAVAILABLE = 4308 } - -enum : uint { ERROR_RESOURCE_DISABLED = 4309 } - -enum : uint { ERROR_INVALID_CLEANER = 4310 } - -enum : uint { ERROR_UNABLE_TO_CLEAN = 4311 } - -enum : uint { ERROR_OBJECT_NOT_FOUND = 4312 } - -enum : uint { ERROR_DATABASE_FAILURE = 4313 } - -enum : uint { ERROR_DATABASE_FULL = 4314 } - -enum : uint { ERROR_MEDIA_INCOMPATIBLE = 4315 } - -enum : uint { ERROR_RESOURCE_NOT_PRESENT = 4316 } - -enum : uint { ERROR_INVALID_OPERATION = 4317 } - -enum : uint { ERROR_MEDIA_NOT_AVAILABLE = 4318 } - -enum : uint { ERROR_DEVICE_NOT_AVAILABLE = 4319 } - -enum : uint { ERROR_REQUEST_REFUSED = 4320 } - -enum : uint { ERROR_INVALID_DRIVE_OBJECT = 4321 } - -enum : uint { ERROR_LIBRARY_FULL = 4322 } - -enum : uint { ERROR_MEDIUM_NOT_ACCESSIBLE = 4323 } - -enum : uint { ERROR_UNABLE_TO_LOAD_MEDIUM = 4324 } - -enum : uint { ERROR_UNABLE_TO_INVENTORY_DRIVE = 4325 } - -enum : uint { ERROR_UNABLE_TO_INVENTORY_SLOT = 4326 } - -enum : uint { ERROR_UNABLE_TO_INVENTORY_TRANSPORT = 4327 } - -enum : uint { ERROR_TRANSPORT_FULL = 4328 } - -enum : uint { ERROR_CONTROLLING_IEPORT = 4329 } - -enum : uint { ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA = 4330 } - -enum : uint { ERROR_CLEANER_SLOT_SET = 4331 } - -enum : uint { ERROR_CLEANER_SLOT_NOT_SET = 4332 } - -enum : uint { ERROR_CLEANER_CARTRIDGE_SPENT = 4333 } - -enum : uint { ERROR_UNEXPECTED_OMID = 4334 } - -enum : uint { ERROR_CANT_DELETE_LAST_ITEM = 4335 } - -enum : uint { ERROR_MESSAGE_EXCEEDS_MAX_SIZE = 4336 } - -enum : uint { ERROR_VOLUME_CONTAINS_SYS_FILES = 4337 } - -enum : uint { ERROR_INDIGENOUS_TYPE = 4338 } - -enum : uint { ERROR_NO_SUPPORTING_DRIVES = 4339 } - -enum : uint { ERROR_CLEANER_CARTRIDGE_INSTALLED = 4340 } - -enum : uint { ERROR_FILE_OFFLINE = 4350 } - -enum : uint { ERROR_REMOTE_STORAGE_NOT_ACTIVE = 4351 } - -enum : uint { ERROR_REMOTE_STORAGE_MEDIA_ERROR = 4352 } - -enum : uint { ERROR_NOT_A_REPARSE_POINT = 4390 } - -enum : uint { ERROR_REPARSE_ATTRIBUTE_CONFLICT = 4391 } - -enum : uint { ERROR_INVALID_REPARSE_DATA = 4392 } - -enum : uint { ERROR_REPARSE_TAG_INVALID = 4393 } - -enum : uint { ERROR_REPARSE_TAG_MISMATCH = 4394 } - -enum : uint { ERROR_VOLUME_NOT_SIS_ENABLED = 4500 } - -enum : uint { ERROR_DEPENDENT_RESOURCE_EXISTS = 5001 } - -enum : uint { ERROR_DEPENDENCY_NOT_FOUND = 5002 } - -enum : uint { ERROR_DEPENDENCY_ALREADY_EXISTS = 5003 } - -enum : uint { ERROR_RESOURCE_NOT_ONLINE = 5004 } - -enum : uint { ERROR_HOST_NODE_NOT_AVAILABLE = 5005 } - -enum : uint { ERROR_RESOURCE_NOT_AVAILABLE = 5006 } - -enum : uint { ERROR_RESOURCE_NOT_FOUND = 5007 } - -enum : uint { ERROR_SHUTDOWN_CLUSTER = 5008 } - -enum : uint { ERROR_CANT_EVICT_ACTIVE_NODE = 5009 } - -enum : uint { ERROR_OBJECT_ALREADY_EXISTS = 5010 } - -enum : uint { ERROR_OBJECT_IN_LIST = 5011 } - -enum : uint { ERROR_GROUP_NOT_AVAILABLE = 5012 } - -enum : uint { ERROR_GROUP_NOT_FOUND = 5013 } - -enum : uint { ERROR_GROUP_NOT_ONLINE = 5014 } - -enum : uint { ERROR_HOST_NODE_NOT_RESOURCE_OWNER = 5015 } - -enum : uint { ERROR_HOST_NODE_NOT_GROUP_OWNER = 5016 } - -enum : uint { ERROR_RESMON_CREATE_FAILED = 5017 } - -enum : uint { ERROR_RESMON_ONLINE_FAILED = 5018 } - -enum : uint { ERROR_RESOURCE_ONLINE = 5019 } - -enum : uint { ERROR_QUORUM_RESOURCE = 5020 } - -enum : uint { ERROR_NOT_QUORUM_CAPABLE = 5021 } - -enum : uint { ERROR_CLUSTER_SHUTTING_DOWN = 5022 } - -enum : uint { ERROR_INVALID_STATE = 5023 } - -enum : uint { ERROR_RESOURCE_PROPERTIES_STORED = 5024 } - -enum : uint { ERROR_NOT_QUORUM_CLASS = 5025 } - -enum : uint { ERROR_CORE_RESOURCE = 5026 } - -enum : uint { ERROR_QUORUM_RESOURCE_ONLINE_FAILED = 5027 } - -enum : uint { ERROR_QUORUMLOG_OPEN_FAILED = 5028 } - -enum : uint { ERROR_CLUSTERLOG_CORRUPT = 5029 } - -enum : uint { ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE = 5030 } - -enum : uint { ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE = 5031 } - -enum : uint { ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND = 5032 } - -enum : uint { ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE = 5033 } - -enum : uint { ERROR_QUORUM_OWNER_ALIVE = 5034 } - -enum : uint { ERROR_NETWORK_NOT_AVAILABLE = 5035 } - -enum : uint { ERROR_NODE_NOT_AVAILABLE = 5036 } - -enum : uint { ERROR_ALL_NODES_NOT_AVAILABLE = 5037 } - -enum : uint { ERROR_RESOURCE_FAILED = 5038 } - -enum : uint { ERROR_CLUSTER_INVALID_NODE = 5039 } - -enum : uint { ERROR_CLUSTER_NODE_EXISTS = 5040 } - -enum : uint { ERROR_CLUSTER_JOIN_IN_PROGRESS = 5041 } - -enum : uint { ERROR_CLUSTER_NODE_NOT_FOUND = 5042 } - -enum : uint { ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND = 5043 } - -enum : uint { ERROR_CLUSTER_NETWORK_EXISTS = 5044 } - -enum : uint { ERROR_CLUSTER_NETWORK_NOT_FOUND = 5045 } - -enum : uint { ERROR_CLUSTER_NETINTERFACE_EXISTS = 5046 } - -enum : uint { ERROR_CLUSTER_NETINTERFACE_NOT_FOUND = 5047 } - -enum : uint { ERROR_CLUSTER_INVALID_REQUEST = 5048 } - -enum : uint { ERROR_CLUSTER_INVALID_NETWORK_PROVIDER = 5049 } - -enum : uint { ERROR_CLUSTER_NODE_DOWN = 5050 } - -enum : uint { ERROR_CLUSTER_NODE_UNREACHABLE = 5051 } - -enum : uint { ERROR_CLUSTER_NODE_NOT_MEMBER = 5052 } - -enum : uint { ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS = 5053 } - -enum : uint { ERROR_CLUSTER_INVALID_NETWORK = 5054 } - -enum : uint { ERROR_CLUSTER_NODE_UP = 5056 } - -enum : uint { ERROR_CLUSTER_IPADDR_IN_USE = 5057 } - -enum : uint { ERROR_CLUSTER_NODE_NOT_PAUSED = 5058 } - -enum : uint { ERROR_CLUSTER_NO_SECURITY_CONTEXT = 5059 } - -enum : uint { ERROR_CLUSTER_NETWORK_NOT_INTERNAL = 5060 } - -enum : uint { ERROR_CLUSTER_NODE_ALREADY_UP = 5061 } - -enum : uint { ERROR_CLUSTER_NODE_ALREADY_DOWN = 5062 } - -enum : uint { ERROR_CLUSTER_NETWORK_ALREADY_ONLINE = 5063 } - -enum : uint { ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE = 5064 } - -enum : uint { ERROR_CLUSTER_NODE_ALREADY_MEMBER = 5065 } - -enum : uint { ERROR_CLUSTER_LAST_INTERNAL_NETWORK = 5066 } - -enum : uint { ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS = 5067 } - -enum : uint { ERROR_INVALID_OPERATION_ON_QUORUM = 5068 } - -enum : uint { ERROR_DEPENDENCY_NOT_ALLOWED = 5069 } - -enum : uint { ERROR_CLUSTER_NODE_PAUSED = 5070 } - -enum : uint { ERROR_NODE_CANT_HOST_RESOURCE = 5071 } - -enum : uint { ERROR_CLUSTER_NODE_NOT_READY = 5072 } - -enum : uint { ERROR_CLUSTER_NODE_SHUTTING_DOWN = 5073 } - -enum : uint { ERROR_CLUSTER_JOIN_ABORTED = 5074 } - -enum : uint { ERROR_CLUSTER_INCOMPATIBLE_VERSIONS = 5075 } - -enum : uint { ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED = 5076 } - -enum : uint { ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED = 5077 } - -enum : uint { ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND = 5078 } - -enum : uint { ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED = 5079 } - -enum : uint { ERROR_CLUSTER_RESNAME_NOT_FOUND = 5080 } - -enum : uint { ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED = 5081 } - -enum : uint { ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST = 5082 } - -enum : uint { ERROR_CLUSTER_DATABASE_SEQMISMATCH = 5083 } - -enum : uint { ERROR_RESMON_INVALID_STATE = 5084 } - -enum : uint { ERROR_CLUSTER_GUM_NOT_LOCKER = 5085 } - -enum : uint { ERROR_QUORUM_DISK_NOT_FOUND = 5086 } - -enum : uint { ERROR_DATABASE_BACKUP_CORRUPT = 5087 } - -enum : uint { ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT = 5088 } - -enum : uint { ERROR_RESOURCE_PROPERTY_UNCHANGEABLE = 5089 } - -enum : uint { ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE = 5890 } - -enum : uint { ERROR_CLUSTER_QUORUMLOG_NOT_FOUND = 5891 } - -enum : uint { ERROR_CLUSTER_MEMBERSHIP_HALT = 5892 } - -enum : uint { ERROR_CLUSTER_INSTANCE_ID_MISMATCH = 5893 } - -enum : uint { ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP = 5894 } - -enum : uint { ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH = 5895 } - -enum : uint { ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP = 5896 } - -enum : uint { ERROR_CLUSTER_PARAMETER_MISMATCH = 5897 } - -enum : uint { ERROR_NODE_CANNOT_BE_CLUSTERED = 5898 } - -enum : uint { ERROR_CLUSTER_WRONG_OS_VERSION = 5899 } - -enum : uint { ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME = 5900 } - -enum : uint { ERROR_ENCRYPTION_FAILED = 6000 } - -enum : uint { ERROR_DECRYPTION_FAILED = 6001 } - -enum : uint { ERROR_FILE_ENCRYPTED = 6002 } - -enum : uint { ERROR_NO_RECOVERY_POLICY = 6003 } - -enum : uint { ERROR_NO_EFS = 6004 } - -enum : uint { ERROR_WRONG_EFS = 6005 } - -enum : uint { ERROR_NO_USER_KEYS = 6006 } - -enum : uint { ERROR_FILE_NOT_ENCRYPTED = 6007 } - -enum : uint { ERROR_NOT_EXPORT_FORMAT = 6008 } - -enum : uint { ERROR_FILE_READ_ONLY = 6009 } - -enum : uint { ERROR_DIR_EFS_DISALLOWED = 6010 } - -enum : uint { ERROR_EFS_SERVER_NOT_TRUSTED = 6011 } - -enum : uint { ERROR_BAD_RECOVERY_POLICY = 6012 } - -enum : uint { ERROR_EFS_ALG_BLOB_TOO_BIG = 6013 } - -enum : uint { ERROR_VOLUME_NOT_SUPPORT_EFS = 6014 } - -enum : uint { ERROR_EFS_DISABLED = 6015 } - -enum : uint { ERROR_EFS_VERSION_NOT_SUPPORT = 6016 } - -enum : uint { ERROR_NO_BROWSER_SERVERS_FOUND = 6118 } - -enum : uint { SCHED_E_SERVICE_NOT_LOCALSYSTEM = 6200 } - -enum : uint { ERROR_CTX_WINSTATION_NAME_INVALID = 7001 } - -enum : uint { ERROR_CTX_INVALID_PD = 7002 } - -enum : uint { ERROR_CTX_PD_NOT_FOUND = 7003 } - -enum : uint { ERROR_CTX_WD_NOT_FOUND = 7004 } - -enum : uint { ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY = 7005 } - -enum : uint { ERROR_CTX_SERVICE_NAME_COLLISION = 7006 } - -enum : uint { ERROR_CTX_CLOSE_PENDING = 7007 } - -enum : uint { ERROR_CTX_NO_OUTBUF = 7008 } - -enum : uint { ERROR_CTX_MODEM_INF_NOT_FOUND = 7009 } - -enum : uint { ERROR_CTX_INVALID_MODEMNAME = 7010 } - -enum : uint { ERROR_CTX_MODEM_RESPONSE_ERROR = 7011 } - -enum : uint { ERROR_CTX_MODEM_RESPONSE_TIMEOUT = 7012 } - -enum : uint { ERROR_CTX_MODEM_RESPONSE_NO_CARRIER = 7013 } - -enum : uint { ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE = 7014 } - -enum : uint { ERROR_CTX_MODEM_RESPONSE_BUSY = 7015 } - -enum : uint { ERROR_CTX_MODEM_RESPONSE_VOICE = 7016 } - -enum : uint { ERROR_CTX_TD_ERROR = 7017 } - -enum : uint { ERROR_CTX_WINSTATION_NOT_FOUND = 7022 } - -enum : uint { ERROR_CTX_WINSTATION_ALREADY_EXISTS = 7023 } - -enum : uint { ERROR_CTX_WINSTATION_BUSY = 7024 } - -enum : uint { ERROR_CTX_BAD_VIDEO_MODE = 7025 } - -enum : uint { ERROR_CTX_GRAPHICS_INVALID = 7035 } - -enum : uint { ERROR_CTX_LOGON_DISABLED = 7037 } - -enum : uint { ERROR_CTX_NOT_CONSOLE = 7038 } - -enum : uint { ERROR_CTX_CLIENT_QUERY_TIMEOUT = 7040 } - -enum : uint { ERROR_CTX_CONSOLE_DISCONNECT = 7041 } - -enum : uint { ERROR_CTX_CONSOLE_CONNECT = 7042 } - -enum : uint { ERROR_CTX_SHADOW_DENIED = 7044 } - -enum : uint { ERROR_CTX_WINSTATION_ACCESS_DENIED = 7045 } - -enum : uint { ERROR_CTX_INVALID_WD = 7049 } - -enum : uint { ERROR_CTX_SHADOW_INVALID = 7050 } - -enum : uint { ERROR_CTX_SHADOW_DISABLED = 7051 } - -enum : uint { ERROR_CTX_CLIENT_LICENSE_IN_USE = 7052 } - -enum : uint { ERROR_CTX_CLIENT_LICENSE_NOT_SET = 7053 } - -enum : uint { ERROR_CTX_LICENSE_NOT_AVAILABLE = 7054 } - -enum : uint { ERROR_CTX_LICENSE_CLIENT_INVALID = 7055 } - -enum : uint { ERROR_CTX_LICENSE_EXPIRED = 7056 } - -enum : uint { ERROR_CTX_SHADOW_NOT_RUNNING = 7057 } - -enum : uint { ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE = 7058 } - -enum : uint { FRS_ERR_INVALID_API_SEQUENCE = 8001 } - -enum : uint { FRS_ERR_STARTING_SERVICE = 8002 } - -enum : uint { FRS_ERR_STOPPING_SERVICE = 8003 } - -enum : uint { FRS_ERR_INTERNAL_API = 8004 } - -enum : uint { FRS_ERR_INTERNAL = 8005 } - -enum : uint { FRS_ERR_SERVICE_COMM = 8006 } - -enum : uint { FRS_ERR_INSUFFICIENT_PRIV = 8007 } - -enum : uint { FRS_ERR_AUTHENTICATION = 8008 } - -enum : uint { FRS_ERR_PARENT_INSUFFICIENT_PRIV = 8009 } - -enum : uint { FRS_ERR_PARENT_AUTHENTICATION = 8010 } - -enum : uint { FRS_ERR_CHILD_TO_PARENT_COMM = 8011 } - -enum : uint { FRS_ERR_PARENT_TO_CHILD_COMM = 8012 } - -enum : uint { FRS_ERR_SYSVOL_POPULATE = 8013 } - -enum : uint { FRS_ERR_SYSVOL_POPULATE_TIMEOUT = 8014 } - -enum : uint { FRS_ERR_SYSVOL_IS_BUSY = 8015 } - -enum : uint { FRS_ERR_SYSVOL_DEMOTE = 8016 } - -enum : uint { FRS_ERR_INVALID_SERVICE_PARAMETER = 8017 } - -alias NO_ERROR DS_S_SUCCESS; - -enum : uint { ERROR_DS_NOT_INSTALLED = 8200 } - -enum : uint { ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY = 8201 } - -enum : uint { ERROR_DS_NO_ATTRIBUTE_OR_VALUE = 8202 } - -enum : uint { ERROR_DS_INVALID_ATTRIBUTE_SYNTAX = 8203 } - -enum : uint { ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED = 8204 } - -enum : uint { ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS = 8205 } - -enum : uint { ERROR_DS_BUSY = 8206 } - -enum : uint { ERROR_DS_UNAVAILABLE = 8207 } - -enum : uint { ERROR_DS_NO_RIDS_ALLOCATED = 8208 } - -enum : uint { ERROR_DS_NO_MORE_RIDS = 8209 } - -enum : uint { ERROR_DS_INCORRECT_ROLE_OWNER = 8210 } - -enum : uint { ERROR_DS_RIDMGR_INIT_ERROR = 8211 } - -enum : uint { ERROR_DS_OBJ_CLASS_VIOLATION = 8212 } - -enum : uint { ERROR_DS_CANT_ON_NON_LEAF = 8213 } - -enum : uint { ERROR_DS_CANT_ON_RDN = 8214 } - -enum : uint { ERROR_DS_CANT_MOD_OBJ_CLASS = 8215 } - -enum : uint { ERROR_DS_CROSS_DOM_MOVE_ERROR = 8216 } - -enum : uint { ERROR_DS_GC_NOT_AVAILABLE = 8217 } - -enum : uint { ERROR_SHARED_POLICY = 8218 } - -enum : uint { ERROR_POLICY_OBJECT_NOT_FOUND = 8219 } - -enum : uint { ERROR_POLICY_ONLY_IN_DS = 8220 } - -enum : uint { ERROR_PROMOTION_ACTIVE = 8221 } - -enum : uint { ERROR_NO_PROMOTION_ACTIVE = 8222 } - -enum : uint { ERROR_DS_OPERATIONS_ERROR = 8224 } - -enum : uint { ERROR_DS_PROTOCOL_ERROR = 8225 } - -enum : uint { ERROR_DS_TIMELIMIT_EXCEEDED = 8226 } - -enum : uint { ERROR_DS_SIZELIMIT_EXCEEDED = 8227 } - -enum : uint { ERROR_DS_ADMIN_LIMIT_EXCEEDED = 8228 } - -enum : uint { ERROR_DS_COMPARE_FALSE = 8229 } - -enum : uint { ERROR_DS_COMPARE_TRUE = 8230 } - -enum : uint { ERROR_DS_AUTH_METHOD_NOT_SUPPORTED = 8231 } - -enum : uint { ERROR_DS_STRONG_AUTH_REQUIRED = 8232 } - -enum : uint { ERROR_DS_INAPPROPRIATE_AUTH = 8233 } - -enum : uint { ERROR_DS_AUTH_UNKNOWN = 8234 } - -enum : uint { ERROR_DS_REFERRAL = 8235 } - -enum : uint { ERROR_DS_UNAVAILABLE_CRIT_EXTENSION = 8236 } - -enum : uint { ERROR_DS_CONFIDENTIALITY_REQUIRED = 8237 } - -enum : uint { ERROR_DS_INAPPROPRIATE_MATCHING = 8238 } - -enum : uint { ERROR_DS_CONSTRAINT_VIOLATION = 8239 } - -enum : uint { ERROR_DS_NO_SUCH_OBJECT = 8240 } - -enum : uint { ERROR_DS_ALIAS_PROBLEM = 8241 } - -enum : uint { ERROR_DS_INVALID_DN_SYNTAX = 8242 } - -enum : uint { ERROR_DS_IS_LEAF = 8243 } - -enum : uint { ERROR_DS_ALIAS_DEREF_PROBLEM = 8244 } - -enum : uint { ERROR_DS_UNWILLING_TO_PERFORM = 8245 } - -enum : uint { ERROR_DS_LOOP_DETECT = 8246 } - -enum : uint { ERROR_DS_NAMING_VIOLATION = 8247 } - -enum : uint { ERROR_DS_OBJECT_RESULTS_TOO_LARGE = 8248 } - -enum : uint { ERROR_DS_AFFECTS_MULTIPLE_DSAS = 8249 } - -enum : uint { ERROR_DS_SERVER_DOWN = 8250 } - -enum : uint { ERROR_DS_LOCAL_ERROR = 8251 } - -enum : uint { ERROR_DS_ENCODING_ERROR = 8252 } - -enum : uint { ERROR_DS_DECODING_ERROR = 8253 } - -enum : uint { ERROR_DS_FILTER_UNKNOWN = 8254 } - -enum : uint { ERROR_DS_PARAM_ERROR = 8255 } - -enum : uint { ERROR_DS_NOT_SUPPORTED = 8256 } - -enum : uint { ERROR_DS_NO_RESULTS_RETURNED = 8257 } - -enum : uint { ERROR_DS_CONTROL_NOT_FOUND = 8258 } - -enum : uint { ERROR_DS_CLIENT_LOOP = 8259 } - -enum : uint { ERROR_DS_REFERRAL_LIMIT_EXCEEDED = 8260 } - -enum : uint { ERROR_DS_SORT_CONTROL_MISSING = 8261 } - -enum : uint { ERROR_DS_OFFSET_RANGE_ERROR = 8262 } - -enum : uint { ERROR_DS_ROOT_MUST_BE_NC = 8301 } - -enum : uint { ERROR_DS_ADD_REPLICA_INHIBITED = 8302 } - -enum : uint { ERROR_DS_ATT_NOT_DEF_IN_SCHEMA = 8303 } - -enum : uint { ERROR_DS_MAX_OBJ_SIZE_EXCEEDED = 8304 } - -enum : uint { ERROR_DS_OBJ_STRING_NAME_EXISTS = 8305 } - -enum : uint { ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA = 8306 } - -enum : uint { ERROR_DS_RDN_DOESNT_MATCH_SCHEMA = 8307 } - -enum : uint { ERROR_DS_NO_REQUESTED_ATTS_FOUND = 8308 } - -enum : uint { ERROR_DS_USER_BUFFER_TO_SMALL = 8309 } - -enum : uint { ERROR_DS_ATT_IS_NOT_ON_OBJ = 8310 } - -enum : uint { ERROR_DS_ILLEGAL_MOD_OPERATION = 8311 } - -enum : uint { ERROR_DS_OBJ_TOO_LARGE = 8312 } - -enum : uint { ERROR_DS_BAD_INSTANCE_TYPE = 8313 } - -enum : uint { ERROR_DS_MASTERDSA_REQUIRED = 8314 } - -enum : uint { ERROR_DS_OBJECT_CLASS_REQUIRED = 8315 } - -enum : uint { ERROR_DS_MISSING_REQUIRED_ATT = 8316 } - -enum : uint { ERROR_DS_ATT_NOT_DEF_FOR_CLASS = 8317 } - -enum : uint { ERROR_DS_ATT_ALREADY_EXISTS = 8318 } - -enum : uint { ERROR_DS_CANT_ADD_ATT_VALUES = 8320 } - -enum : uint { ERROR_DS_SINGLE_VALUE_CONSTRAINT = 8321 } - -enum : uint { ERROR_DS_RANGE_CONSTRAINT = 8322 } - -enum : uint { ERROR_DS_ATT_VAL_ALREADY_EXISTS = 8323 } - -enum : uint { ERROR_DS_CANT_REM_MISSING_ATT = 8324 } - -enum : uint { ERROR_DS_CANT_REM_MISSING_ATT_VAL = 8325 } - -enum : uint { ERROR_DS_ROOT_CANT_BE_SUBREF = 8326 } - -enum : uint { ERROR_DS_NO_CHAINING = 8327 } - -enum : uint { ERROR_DS_NO_CHAINED_EVAL = 8328 } - -enum : uint { ERROR_DS_NO_PARENT_OBJECT = 8329 } - -enum : uint { ERROR_DS_PARENT_IS_AN_ALIAS = 8330 } - -enum : uint { ERROR_DS_CANT_MIX_MASTER_AND_REPS = 8331 } - -enum : uint { ERROR_DS_CHILDREN_EXIST = 8332 } - -enum : uint { ERROR_DS_OBJ_NOT_FOUND = 8333 } - -enum : uint { ERROR_DS_ALIASED_OBJ_MISSING = 8334 } - -enum : uint { ERROR_DS_BAD_NAME_SYNTAX = 8335 } - -enum : uint { ERROR_DS_ALIAS_POINTS_TO_ALIAS = 8336 } - -enum : uint { ERROR_DS_CANT_DEREF_ALIAS = 8337 } - -enum : uint { ERROR_DS_OUT_OF_SCOPE = 8338 } - -enum : uint { ERROR_DS_OBJECT_BEING_REMOVED = 8339 } - -enum : uint { ERROR_DS_CANT_DELETE_DSA_OBJ = 8340 } - -enum : uint { ERROR_DS_GENERIC_ERROR = 8341 } - -enum : uint { ERROR_DS_DSA_MUST_BE_INT_MASTER = 8342 } - -enum : uint { ERROR_DS_CLASS_NOT_DSA = 8343 } - -enum : uint { ERROR_DS_INSUFF_ACCESS_RIGHTS = 8344 } - -enum : uint { ERROR_DS_ILLEGAL_SUPERIOR = 8345 } - -enum : uint { ERROR_DS_ATTRIBUTE_OWNED_BY_SAM = 8346 } - -enum : uint { ERROR_DS_NAME_TOO_MANY_PARTS = 8347 } - -enum : uint { ERROR_DS_NAME_TOO_LONG = 8348 } - -enum : uint { ERROR_DS_NAME_VALUE_TOO_LONG = 8349 } - -enum : uint { ERROR_DS_NAME_UNPARSEABLE = 8350 } - -enum : uint { ERROR_DS_NAME_TYPE_UNKNOWN = 8351 } - -enum : uint { ERROR_DS_NOT_AN_OBJECT = 8352 } - -enum : uint { ERROR_DS_SEC_DESC_TOO_SHORT = 8353 } - -enum : uint { ERROR_DS_SEC_DESC_INVALID = 8354 } - -enum : uint { ERROR_DS_NO_DELETED_NAME = 8355 } - -enum : uint { ERROR_DS_SUBREF_MUST_HAVE_PARENT = 8356 } - -enum : uint { ERROR_DS_NCNAME_MUST_BE_NC = 8357 } - -enum : uint { ERROR_DS_CANT_ADD_SYSTEM_ONLY = 8358 } - -enum : uint { ERROR_DS_CLASS_MUST_BE_CONCRETE = 8359 } - -enum : uint { ERROR_DS_INVALID_DMD = 8360 } - -enum : uint { ERROR_DS_OBJ_GUID_EXISTS = 8361 } - -enum : uint { ERROR_DS_NOT_ON_BACKLINK = 8362 } - -enum : uint { ERROR_DS_NO_CROSSREF_FOR_NC = 8363 } - -enum : uint { ERROR_DS_SHUTTING_DOWN = 8364 } - -enum : uint { ERROR_DS_UNKNOWN_OPERATION = 8365 } - -enum : uint { ERROR_DS_INVALID_ROLE_OWNER = 8366 } - -enum : uint { ERROR_DS_COULDNT_CONTACT_FSMO = 8367 } - -enum : uint { ERROR_DS_CROSS_NC_DN_RENAME = 8368 } - -enum : uint { ERROR_DS_CANT_MOD_SYSTEM_ONLY = 8369 } - -enum : uint { ERROR_DS_REPLICATOR_ONLY = 8370 } - -enum : uint { ERROR_DS_OBJ_CLASS_NOT_DEFINED = 8371 } - -enum : uint { ERROR_DS_OBJ_CLASS_NOT_SUBCLASS = 8372 } - -enum : uint { ERROR_DS_NAME_REFERENCE_INVALID = 8373 } - -enum : uint { ERROR_DS_CROSS_REF_EXISTS = 8374 } - -enum : uint { ERROR_DS_CANT_DEL_MASTER_CROSSREF = 8375 } - -enum : uint { ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD = 8376 } - -enum : uint { ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX = 8377 } - -enum : uint { ERROR_DS_DUP_RDN = 8378 } - -enum : uint { ERROR_DS_DUP_OID = 8379 } - -enum : uint { ERROR_DS_DUP_MAPI_ID = 8380 } - -enum : uint { ERROR_DS_DUP_SCHEMA_ID_GUID = 8381 } - -enum : uint { ERROR_DS_DUP_LDAP_DISPLAY_NAME = 8382 } - -enum : uint { ERROR_DS_SEMANTIC_ATT_TEST = 8383 } - -enum : uint { ERROR_DS_SYNTAX_MISMATCH = 8384 } - -enum : uint { ERROR_DS_EXISTS_IN_MUST_HAVE = 8385 } - -enum : uint { ERROR_DS_EXISTS_IN_MAY_HAVE = 8386 } - -enum : uint { ERROR_DS_NONEXISTENT_MAY_HAVE = 8387 } - -enum : uint { ERROR_DS_NONEXISTENT_MUST_HAVE = 8388 } - -enum : uint { ERROR_DS_AUX_CLS_TEST_FAIL = 8389 } - -enum : uint { ERROR_DS_NONEXISTENT_POSS_SUP = 8390 } - -enum : uint { ERROR_DS_SUB_CLS_TEST_FAIL = 8391 } - -enum : uint { ERROR_DS_BAD_RDN_ATT_ID_SYNTAX = 8392 } - -enum : uint { ERROR_DS_EXISTS_IN_AUX_CLS = 8393 } - -enum : uint { ERROR_DS_EXISTS_IN_SUB_CLS = 8394 } - -enum : uint { ERROR_DS_EXISTS_IN_POSS_SUP = 8395 } - -enum : uint { ERROR_DS_RECALCSCHEMA_FAILED = 8396 } - -enum : uint { ERROR_DS_TREE_DELETE_NOT_FINISHED = 8397 } - -enum : uint { ERROR_DS_CANT_DELETE = 8398 } - -enum : uint { ERROR_DS_ATT_SCHEMA_REQ_ID = 8399 } - -enum : uint { ERROR_DS_BAD_ATT_SCHEMA_SYNTAX = 8400 } - -enum : uint { ERROR_DS_CANT_CACHE_ATT = 8401 } - -enum : uint { ERROR_DS_CANT_CACHE_CLASS = 8402 } - -enum : uint { ERROR_DS_CANT_REMOVE_ATT_CACHE = 8403 } - -enum : uint { ERROR_DS_CANT_REMOVE_CLASS_CACHE = 8404 } - -enum : uint { ERROR_DS_CANT_RETRIEVE_DN = 8405 } - -enum : uint { ERROR_DS_MISSING_SUPREF = 8406 } - -enum : uint { ERROR_DS_CANT_RETRIEVE_INSTANCE = 8407 } - -enum : uint { ERROR_DS_CODE_INCONSISTENCY = 8408 } - -enum : uint { ERROR_DS_DATABASE_ERROR = 8409 } - -enum : uint { ERROR_DS_GOVERNSID_MISSING = 8410 } - -enum : uint { ERROR_DS_MISSING_EXPECTED_ATT = 8411 } - -enum : uint { ERROR_DS_NCNAME_MISSING_CR_REF = 8412 } - -enum : uint { ERROR_DS_SECURITY_CHECKING_ERROR = 8413 } - -enum : uint { ERROR_DS_SCHEMA_NOT_LOADED = 8414 } - -enum : uint { ERROR_DS_SCHEMA_ALLOC_FAILED = 8415 } - -enum : uint { ERROR_DS_ATT_SCHEMA_REQ_SYNTAX = 8416 } - -enum : uint { ERROR_DS_GCVERIFY_ERROR = 8417 } - -enum : uint { ERROR_DS_DRA_SCHEMA_MISMATCH = 8418 } - -enum : uint { ERROR_DS_CANT_FIND_DSA_OBJ = 8419 } - -enum : uint { ERROR_DS_CANT_FIND_EXPECTED_NC = 8420 } - -enum : uint { ERROR_DS_CANT_FIND_NC_IN_CACHE = 8421 } - -enum : uint { ERROR_DS_CANT_RETRIEVE_CHILD = 8422 } - -enum : uint { ERROR_DS_SECURITY_ILLEGAL_MODIFY = 8423 } - -enum : uint { ERROR_DS_CANT_REPLACE_HIDDEN_REC = 8424 } - -enum : uint { ERROR_DS_BAD_HIERARCHY_FILE = 8425 } - -enum : uint { ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED = 8426 } - -enum : uint { ERROR_DS_CONFIG_PARAM_MISSING = 8427 } - -enum : uint { ERROR_DS_COUNTING_AB_INDICES_FAILED = 8428 } - -enum : uint { ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED = 8429 } - -enum : uint { ERROR_DS_INTERNAL_FAILURE = 8430 } - -enum : uint { ERROR_DS_UNKNOWN_ERROR = 8431 } - -enum : uint { ERROR_DS_ROOT_REQUIRES_CLASS_TOP = 8432 } - -enum : uint { ERROR_DS_REFUSING_FSMO_ROLES = 8433 } - -enum : uint { ERROR_DS_MISSING_FSMO_SETTINGS = 8434 } - -enum : uint { ERROR_DS_UNABLE_TO_SURRENDER_ROLES = 8435 } - -enum : uint { ERROR_DS_DRA_GENERIC = 8436 } - -enum : uint { ERROR_DS_DRA_INVALID_PARAMETER = 8437 } - -enum : uint { ERROR_DS_DRA_BUSY = 8438 } - -enum : uint { ERROR_DS_DRA_BAD_DN = 8439 } - -enum : uint { ERROR_DS_DRA_BAD_NC = 8440 } - -enum : uint { ERROR_DS_DRA_DN_EXISTS = 8441 } - -enum : uint { ERROR_DS_DRA_INTERNAL_ERROR = 8442 } - -enum : uint { ERROR_DS_DRA_INCONSISTENT_DIT = 8443 } - -enum : uint { ERROR_DS_DRA_CONNECTION_FAILED = 8444 } - -enum : uint { ERROR_DS_DRA_BAD_INSTANCE_TYPE = 8445 } - -enum : uint { ERROR_DS_DRA_OUT_OF_MEM = 8446 } - -enum : uint { ERROR_DS_DRA_MAIL_PROBLEM = 8447 } - -enum : uint { ERROR_DS_DRA_REF_ALREADY_EXISTS = 8448 } - -enum : uint { ERROR_DS_DRA_REF_NOT_FOUND = 8449 } - -enum : uint { ERROR_DS_DRA_OBJ_IS_REP_SOURCE = 8450 } - -enum : uint { ERROR_DS_DRA_DB_ERROR = 8451 } - -enum : uint { ERROR_DS_DRA_NO_REPLICA = 8452 } - -enum : uint { ERROR_DS_DRA_ACCESS_DENIED = 8453 } - -enum : uint { ERROR_DS_DRA_NOT_SUPPORTED = 8454 } - -enum : uint { ERROR_DS_DRA_RPC_CANCELLED = 8455 } - -enum : uint { ERROR_DS_DRA_SOURCE_DISABLED = 8456 } - -enum : uint { ERROR_DS_DRA_SINK_DISABLED = 8457 } - -enum : uint { ERROR_DS_DRA_NAME_COLLISION = 8458 } - -enum : uint { ERROR_DS_DRA_SOURCE_REINSTALLED = 8459 } - -enum : uint { ERROR_DS_DRA_MISSING_PARENT = 8460 } - -enum : uint { ERROR_DS_DRA_PREEMPTED = 8461 } - -enum : uint { ERROR_DS_DRA_ABANDON_SYNC = 8462 } - -enum : uint { ERROR_DS_DRA_SHUTDOWN = 8463 } - -enum : uint { ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET = 8464 } - -enum : uint { ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA = 8465 } - -enum : uint { ERROR_DS_DRA_EXTN_CONNECTION_FAILED = 8466 } - -enum : uint { ERROR_DS_INSTALL_SCHEMA_MISMATCH = 8467 } - -enum : uint { ERROR_DS_DUP_LINK_ID = 8468 } - -enum : uint { ERROR_DS_NAME_ERROR_RESOLVING = 8469 } - -enum : uint { ERROR_DS_NAME_ERROR_NOT_FOUND = 8470 } - -enum : uint { ERROR_DS_NAME_ERROR_NOT_UNIQUE = 8471 } - -enum : uint { ERROR_DS_NAME_ERROR_NO_MAPPING = 8472 } - -enum : uint { ERROR_DS_NAME_ERROR_DOMAIN_ONLY = 8473 } - -enum : uint { ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING = 8474 } - -enum : uint { ERROR_DS_CONSTRUCTED_ATT_MOD = 8475 } - -enum : uint { ERROR_DS_WRONG_OM_OBJ_CLASS = 8476 } - -enum : uint { ERROR_DS_DRA_REPL_PENDING = 8477 } - -enum : uint { ERROR_DS_DS_REQUIRED = 8478 } - -enum : uint { ERROR_DS_INVALID_LDAP_DISPLAY_NAME = 8479 } - -enum : uint { ERROR_DS_NON_BASE_SEARCH = 8480 } - -enum : uint { ERROR_DS_CANT_RETRIEVE_ATTS = 8481 } - -enum : uint { ERROR_DS_BACKLINK_WITHOUT_LINK = 8482 } - -enum : uint { ERROR_DS_EPOCH_MISMATCH = 8483 } - -enum : uint { ERROR_DS_SRC_NAME_MISMATCH = 8484 } - -enum : uint { ERROR_DS_SRC_AND_DST_NC_IDENTICAL = 8485 } - -enum : uint { ERROR_DS_DST_NC_MISMATCH = 8486 } - -enum : uint { ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC = 8487 } - -enum : uint { ERROR_DS_SRC_GUID_MISMATCH = 8488 } - -enum : uint { ERROR_DS_CANT_MOVE_DELETED_OBJECT = 8489 } - -enum : uint { ERROR_DS_PDC_OPERATION_IN_PROGRESS = 8490 } - -enum : uint { ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD = 8491 } - -enum : uint { ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION = 8492 } - -enum : uint { ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS = 8493 } - -enum : uint { ERROR_DS_NC_MUST_HAVE_NC_PARENT = 8494 } - -enum : uint { ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE = 8495 } - -enum : uint { ERROR_DS_DST_DOMAIN_NOT_NATIVE = 8496 } - -enum : uint { ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER = 8497 } - -enum : uint { ERROR_DS_CANT_MOVE_ACCOUNT_GROUP = 8498 } - -enum : uint { ERROR_DS_CANT_MOVE_RESOURCE_GROUP = 8499 } - -enum : uint { ERROR_DS_INVALID_SEARCH_FLAG = 8500 } - -enum : uint { ERROR_DS_NO_TREE_DELETE_ABOVE_NC = 8501 } - -enum : uint { ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE = 8502 } - -enum : uint { ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE = 8503 } - -enum : uint { ERROR_DS_SAM_INIT_FAILURE = 8504 } - -enum : uint { ERROR_DS_SENSITIVE_GROUP_VIOLATION = 8505 } - -enum : uint { ERROR_DS_CANT_MOD_PRIMARYGROUPID = 8506 } - -enum : uint { ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD = 8507 } - -enum : uint { ERROR_DS_NONSAFE_SCHEMA_CHANGE = 8508 } - -enum : uint { ERROR_DS_SCHEMA_UPDATE_DISALLOWED = 8509 } - -enum : uint { ERROR_DS_CANT_CREATE_UNDER_SCHEMA = 8510 } - -enum : uint { ERROR_DS_INSTALL_NO_SRC_SCH_VERSION = 8511 } - -enum : uint { ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE = 8512 } - -enum : uint { ERROR_DS_INVALID_GROUP_TYPE = 8513 } - -enum : uint { ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN = 8514 } - -enum : uint { ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN = 8515 } - -enum : uint { ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER = 8516 } - -enum : uint { ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER = 8517 } - -enum : uint { ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER = 8518 } - -enum : uint { ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER = 8519 } - -enum : uint { ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER = 8520 } - -enum : uint { ERROR_DS_HAVE_PRIMARY_MEMBERS = 8521 } - -enum : uint { ERROR_DS_STRING_SD_CONVERSION_FAILED = 8522 } - -enum : uint { ERROR_DS_NAMING_MASTER_GC = 8523 } - -enum : uint { ERROR_DS_DNS_LOOKUP_FAILURE = 8524 } - -enum : uint { ERROR_DS_COULDNT_UPDATE_SPNS = 8525 } - -enum : uint { ERROR_DS_CANT_RETRIEVE_SD = 8526 } - -enum : uint { ERROR_DS_KEY_NOT_UNIQUE = 8527 } - -enum : uint { ERROR_DS_WRONG_LINKED_ATT_SYNTAX = 8528 } - -enum : uint { ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD = 8529 } - -enum : uint { ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY = 8530 } - -enum : uint { ERROR_DS_CANT_START = 8531 } - -enum : uint { ERROR_DS_INIT_FAILURE = 8532 } - -enum : uint { ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION = 8533 } - -enum : uint { ERROR_DS_SOURCE_DOMAIN_IN_FOREST = 8534 } - -enum : uint { ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST = 8535 } - -enum : uint { ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED = 8536 } - -enum : uint { ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN = 8537 } - -enum : uint { ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER = 8538 } - -enum : uint { ERROR_DS_SRC_SID_EXISTS_IN_FOREST = 8539 } - -enum : uint { ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH = 8540 } - -enum : uint { ERROR_SAM_INIT_FAILURE = 8541 } - -enum : uint { ERROR_DS_DRA_SCHEMA_INFO_SHIP = 8542 } - -enum : uint { ERROR_DS_DRA_SCHEMA_CONFLICT = 8543 } - -enum : uint { ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT = 8544 } - -enum : uint { ERROR_DS_DRA_OBJ_NC_MISMATCH = 8545 } - -enum : uint { ERROR_DS_NC_STILL_HAS_DSAS = 8546 } - -enum : uint { ERROR_DS_GC_REQUIRED = 8547 } - -enum : uint { ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY = 8548 } - -enum : uint { ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS = 8549 } - -enum : uint { ERROR_DS_CANT_ADD_TO_GC = 8550 } - -enum : uint { ERROR_DS_NO_CHECKPOINT_WITH_PDC = 8551 } - -enum : uint { ERROR_DS_SOURCE_AUDITING_NOT_ENABLED = 8552 } - -enum : uint { ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC = 8553 } - -enum : uint { ERROR_DS_INVALID_NAME_FOR_SPN = 8554 } - -enum : uint { ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS = 8555 } - -enum : uint { ERROR_DS_UNICODEPWD_NOT_IN_QUOTES = 8556 } - -enum : uint { ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED = 8557 } - -enum : uint { ERROR_DS_MUST_BE_RUN_ON_DST_DC = 8558 } - -enum : uint { ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER = 8559 } - -enum : uint { ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ = 8560 } - -enum : uint { ERROR_DS_INIT_FAILURE_CONSOLE = 8561 } - -enum : uint { ERROR_DS_SAM_INIT_FAILURE_CONSOLE = 8562 } - -enum : uint { ERROR_DS_FOREST_VERSION_TOO_HIGH = 8563 } - -enum : uint { ERROR_DS_DOMAIN_VERSION_TOO_HIGH = 8564 } - -enum : uint { ERROR_DS_FOREST_VERSION_TOO_LOW = 8565 } - -enum : uint { ERROR_DS_DOMAIN_VERSION_TOO_LOW = 8566 } - -enum : uint { ERROR_DS_INCOMPATIBLE_VERSION = 8567 } - -enum : uint { ERROR_DS_LOW_DSA_VERSION = 8568 } - -enum : uint { ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN = 8569 } - -enum : uint { ERROR_DS_NOT_SUPPORTED_SORT_ORDER = 8570 } - -enum : uint { ERROR_DS_NAME_NOT_UNIQUE = 8571 } - -enum : uint { ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4 = 8572 } - -enum : uint { ERROR_DS_OUT_OF_VERSION_STORE = 8573 } - -enum : uint { ERROR_DS_INCOMPATIBLE_CONTROLS_USED = 8574 } - -enum : uint { ERROR_DS_NO_REF_DOMAIN = 8575 } - -enum : uint { ERROR_DS_RESERVED_LINK_ID = 8576 } - -enum : uint { ERROR_DS_LINK_ID_NOT_AVAILABLE = 8577 } - -enum : uint { ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER = 8578 } - -enum : uint { ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE = 8579 } - -enum : uint { ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC = 8580 } - -enum : uint { ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG = 8581 } - -enum : uint { ERROR_DS_MODIFYDN_WRONG_GRANDPARENT = 8582 } - -enum : uint { ERROR_DS_NAME_ERROR_TRUST_REFERRAL = 8583 } - -enum : uint { ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER = 8584 } - -enum : uint { ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD = 8585 } - -enum : uint { ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2 = 8586 } - -enum : uint { ERROR_DS_THREAD_LIMIT_EXCEEDED = 8587 } - -enum : uint { ERROR_DS_NOT_CLOSEST = 8588 } - -enum : uint { ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF = 8589 } - -enum : uint { ERROR_DS_SINGLE_USER_MODE_FAILED = 8590 } - -enum : uint { ERROR_DS_NTDSCRIPT_SYNTAX_ERROR = 8591 } - -enum : uint { ERROR_DS_NTDSCRIPT_PROCESS_ERROR = 8592 } - -enum : uint { ERROR_DS_DIFFERENT_REPL_EPOCHS = 8593 } - -enum : uint { ERROR_DS_DRS_EXTENSIONS_CHANGED = 8594 } - -enum : uint { ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR = 8595 } - -enum : uint { ERROR_DS_NO_MSDS_INTID = 8596 } - -enum : uint { ERROR_DS_DUP_MSDS_INTID = 8597 } - -enum : uint { ERROR_DS_EXISTS_IN_RDNATTID = 8598 } - -enum : uint { ERROR_DS_AUTHORIZATION_FAILED = 8599 } - -enum : uint { ERROR_DS_INVALID_SCRIPT = 8600 } - -enum : uint { ERROR_DS_REMOTE_CROSSREF_OP_FAILED = 8601 } - -enum : uint { DNS_ERROR_RESPONSE_CODES_BASE = 9000 } - -alias NO_ERROR DNS_ERROR_RCODE_NO_ERROR; - -enum : uint { DNS_ERROR_MASK = 0x00002328 } - -enum : uint { DNS_ERROR_RCODE_FORMAT_ERROR = 9001 } - -enum : uint { DNS_ERROR_RCODE_SERVER_FAILURE = 9002 } - -enum : uint { DNS_ERROR_RCODE_NAME_ERROR = 9003 } - -enum : uint { DNS_ERROR_RCODE_NOT_IMPLEMENTED = 9004 } - -enum : uint { DNS_ERROR_RCODE_REFUSED = 9005 } - -enum : uint { DNS_ERROR_RCODE_YXDOMAIN = 9006 } - -enum : uint { DNS_ERROR_RCODE_YXRRSET = 9007 } - -enum : uint { DNS_ERROR_RCODE_NXRRSET = 9008 } - -enum : uint { DNS_ERROR_RCODE_NOTAUTH = 9009 } - -enum : uint { DNS_ERROR_RCODE_NOTZONE = 9010 } - -enum : uint { DNS_ERROR_RCODE_BADSIG = 9016 } - -enum : uint { DNS_ERROR_RCODE_BADKEY = 9017 } - -enum : uint { DNS_ERROR_RCODE_BADTIME = 9018 } - -alias DNS_ERROR_RCODE_BADTIME DNS_ERROR_RCODE_LAST; - -enum : uint { DNS_ERROR_PACKET_FMT_BASE = 9500 } - -enum : uint { DNS_INFO_NO_RECORDS = 9501 } - -enum : uint { DNS_ERROR_BAD_PACKET = 9502 } - -enum : uint { DNS_ERROR_NO_PACKET = 9503 } - -enum : uint { DNS_ERROR_RCODE = 9504 } - -enum : uint { DNS_ERROR_UNSECURE_PACKET = 9505 } - -alias DNS_ERROR_UNSECURE_PACKET DNS_STATUS_PACKET_UNSECURE; - -alias ERROR_OUTOFMEMORY DNS_ERROR_NO_MEMORY; -alias ERROR_INVALID_NAME DNS_ERROR_INVALID_NAME; -alias ERROR_INVALID_DATA DNS_ERROR_INVALID_DATA; - -enum : uint { DNS_ERROR_GENERAL_API_BASE = 9550 } - -enum : uint { DNS_ERROR_INVALID_TYPE = 9551 } - -enum : uint { DNS_ERROR_INVALID_IP_ADDRESS = 9552 } - -enum : uint { DNS_ERROR_INVALID_PROPERTY = 9553 } - -enum : uint { DNS_ERROR_TRY_AGAIN_LATER = 9554 } - -enum : uint { DNS_ERROR_NOT_UNIQUE = 9555 } - -enum : uint { DNS_ERROR_NON_RFC_NAME = 9556 } - -enum : uint { DNS_STATUS_FQDN = 9557 } - -enum : uint { DNS_STATUS_DOTTED_NAME = 9558 } - -enum : uint { DNS_STATUS_SINGLE_PART_NAME = 9559 } - -enum : uint { DNS_ERROR_INVALID_NAME_CHAR = 9560 } - -enum : uint { DNS_ERROR_NUMERIC_NAME = 9561 } - -enum : uint { DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER = 9562 } - -enum : uint { DNS_ERROR_ZONE_BASE = 9600 } - -enum : uint { DNS_ERROR_ZONE_DOES_NOT_EXIST = 9601 } - -enum : uint { DNS_ERROR_NO_ZONE_INFO = 9602 } - -enum : uint { DNS_ERROR_INVALID_ZONE_OPERATION = 9603 } - -enum : uint { DNS_ERROR_ZONE_CONFIGURATION_ERROR = 9604 } - -enum : uint { DNS_ERROR_ZONE_HAS_NO_SOA_RECORD = 9605 } - -enum : uint { DNS_ERROR_ZONE_HAS_NO_NS_RECORDS = 9606 } - -enum : uint { DNS_ERROR_ZONE_LOCKED = 9607 } - -enum : uint { DNS_ERROR_ZONE_CREATION_FAILED = 9608 } - -enum : uint { DNS_ERROR_ZONE_ALREADY_EXISTS = 9609 } - -enum : uint { DNS_ERROR_AUTOZONE_ALREADY_EXISTS = 9610 } - -enum : uint { DNS_ERROR_INVALID_ZONE_TYPE = 9611 } - -enum : uint { DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP = 9612 } - -enum : uint { DNS_ERROR_ZONE_NOT_SECONDARY = 9613 } - -enum : uint { DNS_ERROR_NEED_SECONDARY_ADDRESSES = 9614 } - -enum : uint { DNS_ERROR_WINS_INIT_FAILED = 9615 } - -enum : uint { DNS_ERROR_NEED_WINS_SERVERS = 9616 } - -enum : uint { DNS_ERROR_NBSTAT_INIT_FAILED = 9617 } - -enum : uint { DNS_ERROR_SOA_DELETE_INVALID = 9618 } - -enum : uint { DNS_ERROR_FORWARDER_ALREADY_EXISTS = 9619 } - -enum : uint { DNS_ERROR_ZONE_REQUIRES_MASTER_IP = 9620 } - -enum : uint { DNS_ERROR_ZONE_IS_SHUTDOWN = 9621 } - -enum : uint { DNS_ERROR_DATAFILE_BASE = 9650 } - -enum : uint { DNS_ERROR_PRIMARY_REQUIRES_DATAFILE = 9651 } - -enum : uint { DNS_ERROR_INVALID_DATAFILE_NAME = 9652 } - -enum : uint { DNS_ERROR_DATAFILE_OPEN_FAILURE = 9653 } - -enum : uint { DNS_ERROR_FILE_WRITEBACK_FAILED = 9654 } - -enum : uint { DNS_ERROR_DATAFILE_PARSING = 9655 } - -enum : uint { DNS_ERROR_DATABASE_BASE = 9700 } - -enum : uint { DNS_ERROR_RECORD_DOES_NOT_EXIST = 9701 } - -enum : uint { DNS_ERROR_RECORD_FORMAT = 9702 } - -enum : uint { DNS_ERROR_NODE_CREATION_FAILED = 9703 } - -enum : uint { DNS_ERROR_UNKNOWN_RECORD_TYPE = 9704 } - -enum : uint { DNS_ERROR_RECORD_TIMED_OUT = 9705 } - -enum : uint { DNS_ERROR_NAME_NOT_IN_ZONE = 9706 } - -enum : uint { DNS_ERROR_CNAME_LOOP = 9707 } - -enum : uint { DNS_ERROR_NODE_IS_CNAME = 9708 } - -enum : uint { DNS_ERROR_CNAME_COLLISION = 9709 } - -enum : uint { DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT = 9710 } - -enum : uint { DNS_ERROR_RECORD_ALREADY_EXISTS = 9711 } - -enum : uint { DNS_ERROR_SECONDARY_DATA = 9712 } - -enum : uint { DNS_ERROR_NO_CREATE_CACHE_DATA = 9713 } - -enum : uint { DNS_ERROR_NAME_DOES_NOT_EXIST = 9714 } - -enum : uint { DNS_WARNING_PTR_CREATE_FAILED = 9715 } - -enum : uint { DNS_WARNING_DOMAIN_UNDELETED = 9716 } - -enum : uint { DNS_ERROR_DS_UNAVAILABLE = 9717 } - -enum : uint { DNS_ERROR_DS_ZONE_ALREADY_EXISTS = 9718 } - -enum : uint { DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE = 9719 } - -enum : uint { DNS_ERROR_OPERATION_BASE = 9750 } - -enum : uint { DNS_INFO_AXFR_COMPLETE = 9751 } - -enum : uint { DNS_ERROR_AXFR = 9752 } - -enum : uint { DNS_INFO_ADDED_LOCAL_WINS = 9753 } - -enum : uint { DNS_ERROR_SECURE_BASE = 9800 } - -enum : uint { DNS_STATUS_CONTINUE_NEEDED = 9801 } - -enum : uint { DNS_ERROR_SETUP_BASE = 9850 } - -enum : uint { DNS_ERROR_NO_TCPIP = 9851 } - -enum : uint { DNS_ERROR_NO_DNS_SERVERS = 9852 } - -enum : uint { DNS_ERROR_DP_BASE = 9900 } - -enum : uint { DNS_ERROR_DP_DOES_NOT_EXIST = 9901 } - -enum : uint { DNS_ERROR_DP_ALREADY_EXISTS = 9902 } - -enum : uint { DNS_ERROR_DP_NOT_ENLISTED = 9903 } - -enum : uint { DNS_ERROR_DP_ALREADY_ENLISTED = 9904 } - -// #ifndef WSABASEERR -enum : uint { WSABASEERR = 10000 } - -enum : uint { WSAEINTR = 10004 } - -enum : uint { WSAEBADF = 10009 } - -enum : uint { WSAEACCES = 10013 } - -enum : uint { WSAEFAULT = 10014 } - -enum : uint { WSAEINVAL = 10022 } - -enum : uint { WSAEMFILE = 10024 } - -enum : uint { WSAEWOULDBLOCK = 10035 } - -enum : uint { WSAEINPROGRESS = 10036 } - -enum : uint { WSAEALREADY = 10037 } - -enum : uint { WSAENOTSOCK = 10038 } - -enum : uint { WSAEDESTADDRREQ = 10039 } - -enum : uint { WSAEMSGSIZE = 10040 } - -enum : uint { WSAEPROTOTYPE = 10041 } - -enum : uint { WSAENOPROTOOPT = 10042 } - -enum : uint { WSAEPROTONOSUPPORT = 10043 } - -enum : uint { WSAESOCKTNOSUPPORT = 10044 } - -enum : uint { WSAEOPNOTSUPP = 10045 } - -enum : uint { WSAEPFNOSUPPORT = 10046 } - -enum : uint { WSAEAFNOSUPPORT = 10047 } - -enum : uint { WSAEADDRINUSE = 10048 } - -enum : uint { WSAEADDRNOTAVAIL = 10049 } - -enum : uint { WSAENETDOWN = 10050 } - -enum : uint { WSAENETUNREACH = 10051 } - -enum : uint { WSAENETRESET = 10052 } - -enum : uint { WSAECONNABORTED = 10053 } - -enum : uint { WSAECONNRESET = 10054 } - -enum : uint { WSAENOBUFS = 10055 } - -enum : uint { WSAEISCONN = 10056 } - -enum : uint { WSAENOTCONN = 10057 } - -enum : uint { WSAESHUTDOWN = 10058 } - -enum : uint { WSAETOOMANYREFS = 10059 } - -enum : uint { WSAETIMEDOUT = 10060 } - -enum : uint { WSAECONNREFUSED = 10061 } - -enum : uint { WSAELOOP = 10062 } - -enum : uint { WSAENAMETOOLONG = 10063 } - -enum : uint { WSAEHOSTDOWN = 10064 } - -enum : uint { WSAEHOSTUNREACH = 10065 } - -enum : uint { WSAENOTEMPTY = 10066 } - -enum : uint { WSAEPROCLIM = 10067 } - -enum : uint { WSAEUSERS = 10068 } - -enum : uint { WSAEDQUOT = 10069 } - -enum : uint { WSAESTALE = 10070 } - -enum : uint { WSAEREMOTE = 10071 } - -enum : uint { WSASYSNOTREADY = 10091 } - -enum : uint { WSAVERNOTSUPPORTED = 10092 } - -enum : uint { WSANOTINITIALISED = 10093 } - -enum : uint { WSAEDISCON = 10101 } - -enum : uint { WSAENOMORE = 10102 } - -enum : uint { WSAECANCELLED = 10103 } - -enum : uint { WSAEINVALIDPROCTABLE = 10104 } - -enum : uint { WSAEINVALIDPROVIDER = 10105 } - -enum : uint { WSAEPROVIDERFAILEDINIT = 10106 } - -enum : uint { WSASYSCALLFAILURE = 10107 } - -enum : uint { WSASERVICE_NOT_FOUND = 10108 } - -enum : uint { WSATYPE_NOT_FOUND = 10109 } - -enum : uint { WSA_E_NO_MORE = 10110 } - -enum : uint { WSA_E_CANCELLED = 10111 } - -enum : uint { WSAEREFUSED = 10112 } - -enum : uint { WSAHOST_NOT_FOUND = 11001 } - -enum : uint { WSATRY_AGAIN = 11002 } - -enum : uint { WSANO_RECOVERY = 11003 } - -enum : uint { WSANO_DATA = 11004 } - -enum : uint { WSA_QOS_RECEIVERS = 11005 } - -enum : uint { WSA_QOS_SENDERS = 11006 } - -enum : uint { WSA_QOS_NO_SENDERS = 11007 } - -enum : uint { WSA_QOS_NO_RECEIVERS = 11008 } - -enum : uint { WSA_QOS_REQUEST_CONFIRMED = 11009 } - -enum : uint { WSA_QOS_ADMISSION_FAILURE = 11010 } - -enum : uint { WSA_QOS_POLICY_FAILURE = 11011 } - -enum : uint { WSA_QOS_BAD_STYLE = 11012 } - -enum : uint { WSA_QOS_BAD_OBJECT = 11013 } - -enum : uint { WSA_QOS_TRAFFIC_CTRL_ERROR = 11014 } - -enum : uint { WSA_QOS_GENERIC_ERROR = 11015 } - -enum : uint { WSA_QOS_ESERVICETYPE = 11016 } - -enum : uint { WSA_QOS_EFLOWSPEC = 11017 } - -enum : uint { WSA_QOS_EPROVSPECBUF = 11018 } - -enum : uint { WSA_QOS_EFILTERSTYLE = 11019 } - -enum : uint { WSA_QOS_EFILTERTYPE = 11020 } - -enum : uint { WSA_QOS_EFILTERCOUNT = 11021 } - -enum : uint { WSA_QOS_EOBJLENGTH = 11022 } - -enum : uint { WSA_QOS_EFLOWCOUNT = 11023 } - -enum : uint { WSA_QOS_EUNKOWNPSOBJ = 11024 } - -enum : uint { WSA_QOS_EPOLICYOBJ = 11025 } - -enum : uint { WSA_QOS_EFLOWDESC = 11026 } - -enum : uint { WSA_QOS_EPSFLOWSPEC = 11027 } - -enum : uint { WSA_QOS_EPSFILTERSPEC = 11028 } - -enum : uint { WSA_QOS_ESDMODEOBJ = 11029 } - -enum : uint { WSA_QOS_ESHAPERATEOBJ = 11030 } - -enum : uint { WSA_QOS_RESERVED_PETYPE = 11031 } - -// #endif // defined(WSABASEERR) - -enum : uint { ERROR_SXS_SECTION_NOT_FOUND = 14000 } - -enum : uint { ERROR_SXS_CANT_GEN_ACTCTX = 14001 } - -enum : uint { ERROR_SXS_INVALID_ACTCTXDATA_FORMAT = 14002 } - -enum : uint { ERROR_SXS_ASSEMBLY_NOT_FOUND = 14003 } - -enum : uint { ERROR_SXS_MANIFEST_FORMAT_ERROR = 14004 } - -enum : uint { ERROR_SXS_MANIFEST_PARSE_ERROR = 14005 } - -enum : uint { ERROR_SXS_ACTIVATION_CONTEXT_DISABLED = 14006 } - -enum : uint { ERROR_SXS_KEY_NOT_FOUND = 14007 } - -enum : uint { ERROR_SXS_VERSION_CONFLICT = 14008 } - -enum : uint { ERROR_SXS_WRONG_SECTION_TYPE = 14009 } - -enum : uint { ERROR_SXS_THREAD_QUERIES_DISABLED = 14010 } - -enum : uint { ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET = 14011 } - -enum : uint { ERROR_SXS_UNKNOWN_ENCODING_GROUP = 14012 } - -enum : uint { ERROR_SXS_UNKNOWN_ENCODING = 14013 } - -enum : uint { ERROR_SXS_INVALID_XML_NAMESPACE_URI = 14014 } - -enum : uint { ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED = 14015 } - -enum : uint { ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED = 14016 } - -enum : uint { ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE = 14017 } - -enum : uint { ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE = 14018 } - -enum : uint { ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE = 14019 } - -enum : uint { ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT = 14020 } - -enum : uint { ERROR_SXS_DUPLICATE_DLL_NAME = 14021 } - -enum : uint { ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME = 14022 } - -enum : uint { ERROR_SXS_DUPLICATE_CLSID = 14023 } - -enum : uint { ERROR_SXS_DUPLICATE_IID = 14024 } - -enum : uint { ERROR_SXS_DUPLICATE_TLBID = 14025 } - -enum : uint { ERROR_SXS_DUPLICATE_PROGID = 14026 } - -enum : uint { ERROR_SXS_DUPLICATE_ASSEMBLY_NAME = 14027 } - -enum : uint { ERROR_SXS_FILE_HASH_MISMATCH = 14028 } - -enum : uint { ERROR_SXS_POLICY_PARSE_ERROR = 14029 } - -enum : uint { ERROR_SXS_XML_E_MISSINGQUOTE = 14030 } - -enum : uint { ERROR_SXS_XML_E_COMMENTSYNTAX = 14031 } - -enum : uint { ERROR_SXS_XML_E_BADSTARTNAMECHAR = 14032 } - -enum : uint { ERROR_SXS_XML_E_BADNAMECHAR = 14033 } - -enum : uint { ERROR_SXS_XML_E_BADCHARINSTRING = 14034 } - -enum : uint { ERROR_SXS_XML_E_XMLDECLSYNTAX = 14035 } - -enum : uint { ERROR_SXS_XML_E_BADCHARDATA = 14036 } - -enum : uint { ERROR_SXS_XML_E_MISSINGWHITESPACE = 14037 } - -enum : uint { ERROR_SXS_XML_E_EXPECTINGTAGEND = 14038 } - -enum : uint { ERROR_SXS_XML_E_MISSINGSEMICOLON = 14039 } - -enum : uint { ERROR_SXS_XML_E_UNBALANCEDPAREN = 14040 } - -enum : uint { ERROR_SXS_XML_E_INTERNALERROR = 14041 } - -enum : uint { ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE = 14042 } - -enum : uint { ERROR_SXS_XML_E_INCOMPLETE_ENCODING = 14043 } - -enum : uint { ERROR_SXS_XML_E_MISSING_PAREN = 14044 } - -enum : uint { ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE = 14045 } - -enum : uint { ERROR_SXS_XML_E_MULTIPLE_COLONS = 14046 } - -enum : uint { ERROR_SXS_XML_E_INVALID_DECIMAL = 14047 } - -enum : uint { ERROR_SXS_XML_E_INVALID_HEXIDECIMAL = 14048 } - -enum : uint { ERROR_SXS_XML_E_INVALID_UNICODE = 14049 } - -enum : uint { ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK = 14050 } - -enum : uint { ERROR_SXS_XML_E_UNEXPECTEDENDTAG = 14051 } - -enum : uint { ERROR_SXS_XML_E_UNCLOSEDTAG = 14052 } - -enum : uint { ERROR_SXS_XML_E_DUPLICATEATTRIBUTE = 14053 } - -enum : uint { ERROR_SXS_XML_E_MULTIPLEROOTS = 14054 } - -enum : uint { ERROR_SXS_XML_E_INVALIDATROOTLEVEL = 14055 } - -enum : uint { ERROR_SXS_XML_E_BADXMLDECL = 14056 } - -enum : uint { ERROR_SXS_XML_E_MISSINGROOT = 14057 } - -enum : uint { ERROR_SXS_XML_E_UNEXPECTEDEOF = 14058 } - -enum : uint { ERROR_SXS_XML_E_BADPEREFINSUBSET = 14059 } - -enum : uint { ERROR_SXS_XML_E_UNCLOSEDSTARTTAG = 14060 } - -enum : uint { ERROR_SXS_XML_E_UNCLOSEDENDTAG = 14061 } - -enum : uint { ERROR_SXS_XML_E_UNCLOSEDSTRING = 14062 } - -enum : uint { ERROR_SXS_XML_E_UNCLOSEDCOMMENT = 14063 } - -enum : uint { ERROR_SXS_XML_E_UNCLOSEDDECL = 14064 } - -enum : uint { ERROR_SXS_XML_E_UNCLOSEDCDATA = 14065 } - -enum : uint { ERROR_SXS_XML_E_RESERVEDNAMESPACE = 14066 } - -enum : uint { ERROR_SXS_XML_E_INVALIDENCODING = 14067 } - -enum : uint { ERROR_SXS_XML_E_INVALIDSWITCH = 14068 } - -enum : uint { ERROR_SXS_XML_E_BADXMLCASE = 14069 } - -enum : uint { ERROR_SXS_XML_E_INVALID_STANDALONE = 14070 } - -enum : uint { ERROR_SXS_XML_E_UNEXPECTED_STANDALONE = 14071 } - -enum : uint { ERROR_SXS_XML_E_INVALID_VERSION = 14072 } - -enum : uint { ERROR_SXS_XML_E_MISSINGEQUALS = 14073 } - -enum : uint { ERROR_SXS_PROTECTION_RECOVERY_FAILED = 14074 } - -enum : uint { ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT = 14075 } - -enum : uint { ERROR_SXS_PROTECTION_CATALOG_NOT_VALID = 14076 } - -enum : uint { ERROR_SXS_UNTRANSLATABLE_HRESULT = 14077 } - -enum : uint { ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING = 14078 } - -enum : uint { ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE = 14079 } - -enum : uint { ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME = 14080 } - -enum : uint { ERROR_IPSEC_QM_POLICY_EXISTS = 13000 } - -enum : uint { ERROR_IPSEC_QM_POLICY_NOT_FOUND = 13001 } - -enum : uint { ERROR_IPSEC_QM_POLICY_IN_USE = 13002 } - -enum : uint { ERROR_IPSEC_MM_POLICY_EXISTS = 13003 } - -enum : uint { ERROR_IPSEC_MM_POLICY_NOT_FOUND = 13004 } - -enum : uint { ERROR_IPSEC_MM_POLICY_IN_USE = 13005 } - -enum : uint { ERROR_IPSEC_MM_FILTER_EXISTS = 13006 } - -enum : uint { ERROR_IPSEC_MM_FILTER_NOT_FOUND = 13007 } - -enum : uint { ERROR_IPSEC_TRANSPORT_FILTER_EXISTS = 13008 } - -enum : uint { ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND = 13009 } - -enum : uint { ERROR_IPSEC_MM_AUTH_EXISTS = 13010 } - -enum : uint { ERROR_IPSEC_MM_AUTH_NOT_FOUND = 13011 } - -enum : uint { ERROR_IPSEC_MM_AUTH_IN_USE = 13012 } - -enum : uint { ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND = 13013 } - -enum : uint { ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND = 13014 } - -enum : uint { ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND = 13015 } - -enum : uint { ERROR_IPSEC_TUNNEL_FILTER_EXISTS = 13016 } - -enum : uint { ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND = 13017 } - -enum : uint { ERROR_IPSEC_MM_FILTER_PENDING_DELETION = 13018 } - -enum : uint { ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION = 13019 } - -enum : uint { ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION = 13020 } - -enum : uint { ERROR_IPSEC_MM_POLICY_PENDING_DELETION = 13021 } - -enum : uint { ERROR_IPSEC_MM_AUTH_PENDING_DELETION = 13022 } - -enum : uint { ERROR_IPSEC_QM_POLICY_PENDING_DELETION = 13023 } - -enum : uint { ERROR_IPSEC_IKE_NEG_STATUS_BEGIN = 13800 } - -enum : uint { ERROR_IPSEC_IKE_AUTH_FAIL = 13801 } - -enum : uint { ERROR_IPSEC_IKE_ATTRIB_FAIL = 13802 } - -enum : uint { ERROR_IPSEC_IKE_NEGOTIATION_PENDING = 13803 } - -enum : uint { ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR = 13804 } - -enum : uint { ERROR_IPSEC_IKE_TIMED_OUT = 13805 } - -enum : uint { ERROR_IPSEC_IKE_NO_CERT = 13806 } - -enum : uint { ERROR_IPSEC_IKE_SA_DELETED = 13807 } - -enum : uint { ERROR_IPSEC_IKE_SA_REAPED = 13808 } - -enum : uint { ERROR_IPSEC_IKE_MM_ACQUIRE_DROP = 13809 } - -enum : uint { ERROR_IPSEC_IKE_QM_ACQUIRE_DROP = 13810 } - -enum : uint { ERROR_IPSEC_IKE_QUEUE_DROP_MM = 13811 } - -enum : uint { ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM = 13812 } - -enum : uint { ERROR_IPSEC_IKE_DROP_NO_RESPONSE = 13813 } - -enum : uint { ERROR_IPSEC_IKE_MM_DELAY_DROP = 13814 } - -enum : uint { ERROR_IPSEC_IKE_QM_DELAY_DROP = 13815 } - -enum : uint { ERROR_IPSEC_IKE_ERROR = 13816 } - -enum : uint { ERROR_IPSEC_IKE_CRL_FAILED = 13817 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_KEY_USAGE = 13818 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_CERT_TYPE = 13819 } - -enum : uint { ERROR_IPSEC_IKE_NO_PRIVATE_KEY = 13820 } - -enum : uint { ERROR_IPSEC_IKE_DH_FAIL = 13822 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_HEADER = 13824 } - -enum : uint { ERROR_IPSEC_IKE_NO_POLICY = 13825 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_SIGNATURE = 13826 } - -enum : uint { ERROR_IPSEC_IKE_KERBEROS_ERROR = 13827 } - -enum : uint { ERROR_IPSEC_IKE_NO_PUBLIC_KEY = 13828 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR = 13829 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_SA = 13830 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_PROP = 13831 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_TRANS = 13832 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_KE = 13833 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_ID = 13834 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_CERT = 13835 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ = 13836 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_HASH = 13837 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_SIG = 13838 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_NONCE = 13839 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY = 13840 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_DELETE = 13841 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR = 13842 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_PAYLOAD = 13843 } - -enum : uint { ERROR_IPSEC_IKE_LOAD_SOFT_SA = 13844 } - -enum : uint { ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN = 13845 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_COOKIE = 13846 } - -enum : uint { ERROR_IPSEC_IKE_NO_PEER_CERT = 13847 } - -enum : uint { ERROR_IPSEC_IKE_PEER_CRL_FAILED = 13848 } - -enum : uint { ERROR_IPSEC_IKE_POLICY_CHANGE = 13849 } - -enum : uint { ERROR_IPSEC_IKE_NO_MM_POLICY = 13850 } - -enum : uint { ERROR_IPSEC_IKE_NOTCBPRIV = 13851 } - -enum : uint { ERROR_IPSEC_IKE_SECLOADFAIL = 13852 } - -enum : uint { ERROR_IPSEC_IKE_FAILSSPINIT = 13853 } - -enum : uint { ERROR_IPSEC_IKE_FAILQUERYSSP = 13854 } - -enum : uint { ERROR_IPSEC_IKE_SRVACQFAIL = 13855 } - -enum : uint { ERROR_IPSEC_IKE_SRVQUERYCRED = 13856 } - -enum : uint { ERROR_IPSEC_IKE_GETSPIFAIL = 13857 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_FILTER = 13858 } - -enum : uint { ERROR_IPSEC_IKE_OUT_OF_MEMORY = 13859 } - -enum : uint { ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED = 13860 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_POLICY = 13861 } - -enum : uint { ERROR_IPSEC_IKE_UNKNOWN_DOI = 13862 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_SITUATION = 13863 } - -enum : uint { ERROR_IPSEC_IKE_DH_FAILURE = 13864 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_GROUP = 13865 } - -enum : uint { ERROR_IPSEC_IKE_ENCRYPT = 13866 } - -enum : uint { ERROR_IPSEC_IKE_DECRYPT = 13867 } - -enum : uint { ERROR_IPSEC_IKE_POLICY_MATCH = 13868 } - -enum : uint { ERROR_IPSEC_IKE_UNSUPPORTED_ID = 13869 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_HASH = 13870 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_HASH_ALG = 13871 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_HASH_SIZE = 13872 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG = 13873 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_AUTH_ALG = 13874 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_SIG = 13875 } - -enum : uint { ERROR_IPSEC_IKE_LOAD_FAILED = 13876 } - -enum : uint { ERROR_IPSEC_IKE_RPC_DELETE = 13877 } - -enum : uint { ERROR_IPSEC_IKE_BENIGN_REINIT = 13878 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY = 13879 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN = 13881 } - -enum : uint { ERROR_IPSEC_IKE_MM_LIMIT = 13882 } - -enum : uint { ERROR_IPSEC_IKE_NEGOTIATION_DISABLED = 13883 } - -enum : uint { ERROR_IPSEC_IKE_NEG_STATUS_END = 13884 } - -enum : uint { SEVERITY_SUCCESS = 0 } -enum : uint { SEVERITY_ERROR = 1 } - -bit SUCCEEDED(HRESULT Status){ return Status >= 0; } - -bit FAILED(HRESULT Status){ return Status < 0; } - -// #define IS_ERROR(Status) ((unsigned long)(Status) >> 31 == SEVERITY_ERROR) - -// #define HRESULT_CODE(hr) ((hr) & 0xFFFF) -// #define SCODE_CODE(sc) ((sc) & 0xFFFF) - -// #define HRESULT_FACILITY(hr) (((hr) >> 16) & 0x1fff) -// #define SCODE_FACILITY(sc) (((sc) >> 16) & 0x1fff) - -// #define HRESULT_SEVERITY(hr) (((hr) >> 31) & 0x1) -// #define SCODE_SEVERITY(sc) (((sc) >> 31) & 0x1) - -// #define MAKE_HRESULT(sev,fac,code) ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) -// #define MAKE_SCODE(sev,fac,code) ((SCODE) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) - -enum : uint { FACILITY_NT_BIT = 0x10000000 } - -// #define __HRESULT_FROM_WIN32(x) ((HRESULT)(x) <= 0 ? ((HRESULT)(x)) : ((HRESULT) (((x) & 0x0000FFFF) | (FACILITY_WIN32 << 16) | 0x80000000))) - -// #ifdef INLINE_HRESULT_FROM_WIN32 -// #ifndef _HRESULT_DEFINED -// #... -// ... -// #endif -// #ifndef __midl -// ... -// #else -// #... -// #endif -// #else -// #define HRESULT_FROM_WIN32(x) __HRESULT_FROM_WIN32(x) -// #endif - -// #define HRESULT_FROM_NT(x) ((HRESULT) ((x) | FACILITY_NT_BIT)) - -// #define GetScode(hr) ((SCODE) (hr)) - -// #define ResultFromScode(sc) ((HRESULT) (sc)) - -// #define PropagateResult(hrPrevious, scBase) ((HRESULT) scBase) - -// #ifdef RC_INVOKED -// #... -// #else // RC_INVOKED -// #define _HRESULT_TYPEDEF_(_sc) ((HRESULT)_sc) -// #endif // RC_INVOKED - -enum : uint { NOERROR = 0 } - -enum : HRESULT { E_UNEXPECTED = cast(HRESULT)0x8000FFFFL } - -// #if defined(_WIN32) && !defined(_MAC) - -enum : HRESULT { E_NOTIMPL = cast(HRESULT)0x80004001L } - -enum : HRESULT { E_OUTOFMEMORY = cast(HRESULT)0x8007000EL } - -enum : HRESULT { E_INVALIDARG = cast(HRESULT)0x80070057L } - -enum : HRESULT { E_NOINTERFACE = cast(HRESULT)0x80004002L } - -enum : HRESULT { E_POINTER = cast(HRESULT)0x80004003L } - -enum : HRESULT { E_HANDLE = cast(HRESULT)0x80070006L } - -enum : HRESULT { E_ABORT = cast(HRESULT)0x80004004L } - -enum : HRESULT { E_FAIL = cast(HRESULT)0x80004005L } - -enum : HRESULT { E_ACCESSDENIED = cast(HRESULT)0x80070005L } - -// #else - -// #... - -// #... - -// #... - -// #... - -// #... - -// #... - -// #... - -// #... - -// #... - -// #endif //WIN32 - -enum : HRESULT { E_PENDING = cast(HRESULT)0x8000000AL } - -enum : HRESULT { CO_E_INIT_TLS = cast(HRESULT)0x80004006L } - -enum : HRESULT { CO_E_INIT_SHARED_ALLOCATOR = cast(HRESULT)0x80004007L } - -enum : HRESULT { CO_E_INIT_MEMORY_ALLOCATOR = cast(HRESULT)0x80004008L } - -enum : HRESULT { CO_E_INIT_CLASS_CACHE = cast(HRESULT)0x80004009L } - -enum : HRESULT { CO_E_INIT_RPC_CHANNEL = cast(HRESULT)0x8000400AL } - -enum : HRESULT { CO_E_INIT_TLS_SET_CHANNEL_CONTROL = cast(HRESULT)0x8000400BL } - -enum : HRESULT { CO_E_INIT_TLS_CHANNEL_CONTROL = cast(HRESULT)0x8000400CL } - -enum : HRESULT { CO_E_INIT_UNACCEPTED_USER_ALLOCATOR = cast(HRESULT)0x8000400DL } - -enum : HRESULT { CO_E_INIT_SCM_MUTEX_EXISTS = cast(HRESULT)0x8000400EL } - -enum : HRESULT { CO_E_INIT_SCM_FILE_MAPPING_EXISTS = cast(HRESULT)0x8000400FL } - -enum : HRESULT { CO_E_INIT_SCM_MAP_VIEW_OF_FILE = cast(HRESULT)0x80004010L } - -enum : HRESULT { CO_E_INIT_SCM_EXEC_FAILURE = cast(HRESULT)0x80004011L } - -enum : HRESULT { CO_E_INIT_ONLY_SINGLE_THREADED = cast(HRESULT)0x80004012L } - -enum : HRESULT { CO_E_CANT_REMOTE = cast(HRESULT)0x80004013L } - -enum : HRESULT { CO_E_BAD_SERVER_NAME = cast(HRESULT)0x80004014L } - -enum : HRESULT { CO_E_WRONG_SERVER_IDENTITY = cast(HRESULT)0x80004015L } - -enum : HRESULT { CO_E_OLE1DDE_DISABLED = cast(HRESULT)0x80004016L } - -enum : HRESULT { CO_E_RUNAS_SYNTAX = cast(HRESULT)0x80004017L } - -enum : HRESULT { CO_E_CREATEPROCESS_FAILURE = cast(HRESULT)0x80004018L } - -enum : HRESULT { CO_E_RUNAS_CREATEPROCESS_FAILURE = cast(HRESULT)0x80004019L } - -enum : HRESULT { CO_E_RUNAS_LOGON_FAILURE = cast(HRESULT)0x8000401AL } - -enum : HRESULT { CO_E_LAUNCH_PERMSSION_DENIED = cast(HRESULT)0x8000401BL } - -enum : HRESULT { CO_E_START_SERVICE_FAILURE = cast(HRESULT)0x8000401CL } - -enum : HRESULT { CO_E_REMOTE_COMMUNICATION_FAILURE = cast(HRESULT)0x8000401DL } - -enum : HRESULT { CO_E_SERVER_START_TIMEOUT = cast(HRESULT)0x8000401EL } - -enum : HRESULT { CO_E_CLSREG_INCONSISTENT = cast(HRESULT)0x8000401FL } - -enum : HRESULT { CO_E_IIDREG_INCONSISTENT = cast(HRESULT)0x80004020L } - -enum : HRESULT { CO_E_NOT_SUPPORTED = cast(HRESULT)0x80004021L } - -enum : HRESULT { CO_E_RELOAD_DLL = cast(HRESULT)0x80004022L } - -enum : HRESULT { CO_E_MSI_ERROR = cast(HRESULT)0x80004023L } - -enum : HRESULT { CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT = cast(HRESULT)0x80004024L } - -enum : HRESULT { CO_E_SERVER_PAUSED = cast(HRESULT)0x80004025L } - -enum : HRESULT { CO_E_SERVER_NOT_PAUSED = cast(HRESULT)0x80004026L } - -enum : HRESULT { CO_E_CLASS_DISABLED = cast(HRESULT)0x80004027L } - -enum : HRESULT { CO_E_CLRNOTAVAILABLE = cast(HRESULT)0x80004028L } - -enum : HRESULT { CO_E_ASYNC_WORK_REJECTED = cast(HRESULT)0x80004029L } - -enum : HRESULT { CO_E_SERVER_INIT_TIMEOUT = cast(HRESULT)0x8000402AL } - -enum : HRESULT { CO_E_NO_SECCTX_IN_ACTIVATE = cast(HRESULT)0x8000402BL } - -enum : HRESULT { CO_E_TRACKER_CONFIG = cast(HRESULT)0x80004030L } - -enum : HRESULT { CO_E_THREADPOOL_CONFIG = cast(HRESULT)0x80004031L } - -enum : HRESULT { CO_E_SXS_CONFIG = cast(HRESULT)0x80004032L } - -enum : HRESULT { CO_E_MALFORMED_SPN = cast(HRESULT)0x80004033L } - -enum : HRESULT { S_OK = cast(HRESULT)0x00000000 } -enum : HRESULT { S_FALSE = cast(HRESULT)0x00000001 } - -enum : HRESULT { OLE_E_FIRST = cast(HRESULT)0x80040000 } -enum : HRESULT { OLE_E_LAST = cast(HRESULT)0x800400FF } -enum : HRESULT { OLE_S_FIRST = cast(HRESULT)0x00040000 } -enum : HRESULT { OLE_S_LAST = cast(HRESULT)0x000400FF } - -enum : HRESULT { OLE_E_OLEVERB = cast(HRESULT)0x80040000L } - -enum : HRESULT { OLE_E_ADVF = cast(HRESULT)0x80040001L } - -enum : HRESULT { OLE_E_ENUM_NOMORE = cast(HRESULT)0x80040002L } - -enum : HRESULT { OLE_E_ADVISENOTSUPPORTED = cast(HRESULT)0x80040003L } - -enum : HRESULT { OLE_E_NOCONNECTION = cast(HRESULT)0x80040004L } - -enum : HRESULT { OLE_E_NOTRUNNING = cast(HRESULT)0x80040005L } - -enum : HRESULT { OLE_E_NOCACHE = cast(HRESULT)0x80040006L } - -enum : HRESULT { OLE_E_BLANK = cast(HRESULT)0x80040007L } - -enum : HRESULT { OLE_E_CLASSDIFF = cast(HRESULT)0x80040008L } - -enum : HRESULT { OLE_E_CANT_GETMONIKER = cast(HRESULT)0x80040009L } - -enum : HRESULT { OLE_E_CANT_BINDTOSOURCE = cast(HRESULT)0x8004000AL } - -enum : HRESULT { OLE_E_STATIC = cast(HRESULT)0x8004000BL } - -enum : HRESULT { OLE_E_PROMPTSAVECANCELLED = cast(HRESULT)0x8004000CL } - -enum : HRESULT { OLE_E_INVALIDRECT = cast(HRESULT)0x8004000DL } - -enum : HRESULT { OLE_E_WRONGCOMPOBJ = cast(HRESULT)0x8004000EL } - -enum : HRESULT { OLE_E_INVALIDHWND = cast(HRESULT)0x8004000FL } - -enum : HRESULT { OLE_E_NOT_INPLACEACTIVE = cast(HRESULT)0x80040010L } - -enum : HRESULT { OLE_E_CANTCONVERT = cast(HRESULT)0x80040011L } - -enum : HRESULT { OLE_E_NOSTORAGE = cast(HRESULT)0x80040012L } - -enum : HRESULT { DV_E_FORMATETC = cast(HRESULT)0x80040064L } - -enum : HRESULT { DV_E_DVTARGETDEVICE = cast(HRESULT)0x80040065L } - -enum : HRESULT { DV_E_STGMEDIUM = cast(HRESULT)0x80040066L } - -enum : HRESULT { DV_E_STATDATA = cast(HRESULT)0x80040067L } - -enum : HRESULT { DV_E_LINDEX = cast(HRESULT)0x80040068L } - -enum : HRESULT { DV_E_TYMED = cast(HRESULT)0x80040069L } - -enum : HRESULT { DV_E_CLIPFORMAT = cast(HRESULT)0x8004006AL } - -enum : HRESULT { DV_E_DVASPECT = cast(HRESULT)0x8004006BL } - -enum : HRESULT { DV_E_DVTARGETDEVICE_SIZE = cast(HRESULT)0x8004006CL } - -enum : HRESULT { DV_E_NOIVIEWOBJECT = cast(HRESULT)0x8004006DL } - -enum : uint { DRAGDROP_E_FIRST = 0x80040100 } -enum : uint { DRAGDROP_E_LAST = 0x8004010F } -enum : uint { DRAGDROP_S_FIRST = 0x00040100 } -enum : uint { DRAGDROP_S_LAST = 0x0004010F } - -enum : HRESULT { DRAGDROP_E_NOTREGISTERED = cast(HRESULT)0x80040100L } - -enum : HRESULT { DRAGDROP_E_ALREADYREGISTERED = cast(HRESULT)0x80040101L } - -enum : HRESULT { DRAGDROP_E_INVALIDHWND = cast(HRESULT)0x80040102L } - -enum : uint { CLASSFACTORY_E_FIRST = 0x80040110 } -enum : uint { CLASSFACTORY_E_LAST = 0x8004011F } -enum : uint { CLASSFACTORY_S_FIRST = 0x00040110 } -enum : uint { CLASSFACTORY_S_LAST = 0x0004011F } - -enum : HRESULT { CLASS_E_NOAGGREGATION = cast(HRESULT)0x80040110L } - -enum : HRESULT { CLASS_E_CLASSNOTAVAILABLE = cast(HRESULT)0x80040111L } - -enum : HRESULT { CLASS_E_NOTLICENSED = cast(HRESULT)0x80040112L } - -enum : uint { MARSHAL_E_FIRST = 0x80040120 } -enum : uint { MARSHAL_E_LAST = 0x8004012F } -enum : uint { MARSHAL_S_FIRST = 0x00040120 } -enum : uint { MARSHAL_S_LAST = 0x0004012F } -enum : uint { DATA_E_FIRST = 0x80040130 } -enum : uint { DATA_E_LAST = 0x8004013F } -enum : uint { DATA_S_FIRST = 0x00040130 } -enum : uint { DATA_S_LAST = 0x0004013F } -enum : uint { VIEW_E_FIRST = 0x80040140 } -enum : uint { VIEW_E_LAST = 0x8004014F } -enum : uint { VIEW_S_FIRST = 0x00040140 } -enum : uint { VIEW_S_LAST = 0x0004014F } - -enum : HRESULT { VIEW_E_DRAW = cast(HRESULT)0x80040140L } - -enum : uint { REGDB_E_FIRST = 0x80040150 } -enum : uint { REGDB_E_LAST = 0x8004015F } -enum : uint { REGDB_S_FIRST = 0x00040150 } -enum : uint { REGDB_S_LAST = 0x0004015F } - -enum : HRESULT { REGDB_E_READREGDB = cast(HRESULT)0x80040150L } - -enum : HRESULT { REGDB_E_WRITEREGDB = cast(HRESULT)0x80040151L } - -enum : HRESULT { REGDB_E_KEYMISSING = cast(HRESULT)0x80040152L } - -enum : HRESULT { REGDB_E_INVALIDVALUE = cast(HRESULT)0x80040153L } - -enum : HRESULT { REGDB_E_CLASSNOTREG = cast(HRESULT)0x80040154L } - -enum : HRESULT { REGDB_E_IIDNOTREG = cast(HRESULT)0x80040155L } - -enum : HRESULT { REGDB_E_BADTHREADINGMODEL = cast(HRESULT)0x80040156L } - -enum : uint { CAT_E_FIRST = 0x80040160 } -enum : uint { CAT_E_LAST = 0x80040161 } - -enum : HRESULT { CAT_E_CATIDNOEXIST = cast(HRESULT)0x80040160L } - -enum : HRESULT { CAT_E_NODESCRIPTION = cast(HRESULT)0x80040161L } - -enum : uint { CS_E_FIRST = 0x80040164 } -enum : uint { CS_E_LAST = 0x8004016F } - -enum : HRESULT { CS_E_PACKAGE_NOTFOUND = cast(HRESULT)0x80040164L } - -enum : HRESULT { CS_E_NOT_DELETABLE = cast(HRESULT)0x80040165L } - -enum : HRESULT { CS_E_CLASS_NOTFOUND = cast(HRESULT)0x80040166L } - -enum : HRESULT { CS_E_INVALID_VERSION = cast(HRESULT)0x80040167L } - -enum : HRESULT { CS_E_NO_CLASSSTORE = cast(HRESULT)0x80040168L } - -enum : HRESULT { CS_E_OBJECT_NOTFOUND = cast(HRESULT)0x80040169L } - -enum : HRESULT { CS_E_OBJECT_ALREADY_EXISTS = cast(HRESULT)0x8004016AL } - -enum : HRESULT { CS_E_INVALID_PATH = cast(HRESULT)0x8004016BL } - -enum : HRESULT { CS_E_NETWORK_ERROR = cast(HRESULT)0x8004016CL } - -enum : HRESULT { CS_E_ADMIN_LIMIT_EXCEEDED = cast(HRESULT)0x8004016DL } - -enum : HRESULT { CS_E_SCHEMA_MISMATCH = cast(HRESULT)0x8004016EL } - -enum : HRESULT { CS_E_INTERNAL_ERROR = cast(HRESULT)0x8004016FL } - -enum : uint { CACHE_E_FIRST = 0x80040170 } -enum : uint { CACHE_E_LAST = 0x8004017F } -enum : uint { CACHE_S_FIRST = 0x00040170 } -enum : uint { CACHE_S_LAST = 0x0004017F } - -enum : HRESULT { CACHE_E_NOCACHE_UPDATED = cast(HRESULT)0x80040170L } - -enum : uint { OLEOBJ_E_FIRST = 0x80040180 } -enum : uint { OLEOBJ_E_LAST = 0x8004018F } -enum : uint { OLEOBJ_S_FIRST = 0x00040180 } -enum : uint { OLEOBJ_S_LAST = 0x0004018F } - -enum : HRESULT { OLEOBJ_E_NOVERBS = cast(HRESULT)0x80040180L } - -enum : HRESULT { OLEOBJ_E_INVALIDVERB = cast(HRESULT)0x80040181L } - -enum : uint { CLIENTSITE_E_FIRST = 0x80040190 } -enum : uint { CLIENTSITE_E_LAST = 0x8004019F } -enum : uint { CLIENTSITE_S_FIRST = 0x00040190 } -enum : uint { CLIENTSITE_S_LAST = 0x0004019F } - -enum : HRESULT { INPLACE_E_NOTUNDOABLE = cast(HRESULT)0x800401A0L } - -enum : HRESULT { INPLACE_E_NOTOOLSPACE = cast(HRESULT)0x800401A1L } - -enum : uint { INPLACE_E_FIRST = 0x800401A0 } -enum : uint { INPLACE_E_LAST = 0x800401AF } -enum : uint { INPLACE_S_FIRST = 0x000401A0 } -enum : uint { INPLACE_S_LAST = 0x000401AF } -enum : uint { ENUM_E_FIRST = 0x800401B0 } -enum : uint { ENUM_E_LAST = 0x800401BF } -enum : uint { ENUM_S_FIRST = 0x000401B0 } -enum : uint { ENUM_S_LAST = 0x000401BF } -enum : uint { CONVERT10_E_FIRST = 0x800401C0 } -enum : uint { CONVERT10_E_LAST = 0x800401CF } -enum : uint { CONVERT10_S_FIRST = 0x000401C0 } -enum : uint { CONVERT10_S_LAST = 0x000401CF } - -enum : HRESULT { CONVERT10_E_OLESTREAM_GET = cast(HRESULT)0x800401C0L } - -enum : HRESULT { CONVERT10_E_OLESTREAM_PUT = cast(HRESULT)0x800401C1L } - -enum : HRESULT { CONVERT10_E_OLESTREAM_FMT = cast(HRESULT)0x800401C2L } - -enum : HRESULT { CONVERT10_E_OLESTREAM_BITMAP_TO_DIB = cast(HRESULT)0x800401C3L } - -enum : HRESULT { CONVERT10_E_STG_FMT = cast(HRESULT)0x800401C4L } - -enum : HRESULT { CONVERT10_E_STG_NO_STD_STREAM = cast(HRESULT)0x800401C5L } - -enum : HRESULT { CONVERT10_E_STG_DIB_TO_BITMAP = cast(HRESULT)0x800401C6L } - -enum : uint { CLIPBRD_E_FIRST = 0x800401D0 } -enum : uint { CLIPBRD_E_LAST = 0x800401DF } -enum : uint { CLIPBRD_S_FIRST = 0x000401D0 } -enum : uint { CLIPBRD_S_LAST = 0x000401DF } - -enum : HRESULT { CLIPBRD_E_CANT_OPEN = cast(HRESULT)0x800401D0L } - -enum : HRESULT { CLIPBRD_E_CANT_EMPTY = cast(HRESULT)0x800401D1L } - -enum : HRESULT { CLIPBRD_E_CANT_SET = cast(HRESULT)0x800401D2L } - -enum : HRESULT { CLIPBRD_E_BAD_DATA = cast(HRESULT)0x800401D3L } - -enum : HRESULT { CLIPBRD_E_CANT_CLOSE = cast(HRESULT)0x800401D4L } - -enum : uint { MK_E_FIRST = 0x800401E0 } -enum : uint { MK_E_LAST = 0x800401EF } -enum : uint { MK_S_FIRST = 0x000401E0 } -enum : uint { MK_S_LAST = 0x000401EF } - -enum : HRESULT { MK_E_CONNECTMANUALLY = cast(HRESULT)0x800401E0L } - -enum : HRESULT { MK_E_EXCEEDEDDEADLINE = cast(HRESULT)0x800401E1L } - -enum : HRESULT { MK_E_NEEDGENERIC = cast(HRESULT)0x800401E2L } - -enum : HRESULT { MK_E_UNAVAILABLE = cast(HRESULT)0x800401E3L } - -enum : HRESULT { MK_E_SYNTAX = cast(HRESULT)0x800401E4L } - -enum : HRESULT { MK_E_NOOBJECT = cast(HRESULT)0x800401E5L } - -enum : HRESULT { MK_E_INVALIDEXTENSION = cast(HRESULT)0x800401E6L } - -enum : HRESULT { MK_E_INTERMEDIATEINTERFACENOTSUPPORTED = cast(HRESULT)0x800401E7L } - -enum : HRESULT { MK_E_NOTBINDABLE = cast(HRESULT)0x800401E8L } - -enum : HRESULT { MK_E_NOTBOUND = cast(HRESULT)0x800401E9L } - -enum : HRESULT { MK_E_CANTOPENFILE = cast(HRESULT)0x800401EAL } - -enum : HRESULT { MK_E_MUSTBOTHERUSER = cast(HRESULT)0x800401EBL } - -enum : HRESULT { MK_E_NOINVERSE = cast(HRESULT)0x800401ECL } - -enum : HRESULT { MK_E_NOSTORAGE = cast(HRESULT)0x800401EDL } - -enum : HRESULT { MK_E_NOPREFIX = cast(HRESULT)0x800401EEL } - -enum : HRESULT { MK_E_ENUMERATION_FAILED = cast(HRESULT)0x800401EFL } - -enum : uint { CO_E_FIRST = 0x800401F0 } -enum : uint { CO_E_LAST = 0x800401FF } -enum : uint { CO_S_FIRST = 0x000401F0 } -enum : uint { CO_S_LAST = 0x000401FF } - -enum : HRESULT { CO_E_NOTINITIALIZED = cast(HRESULT)0x800401F0L } - -enum : HRESULT { CO_E_ALREADYINITIALIZED = cast(HRESULT)0x800401F1L } - -enum : HRESULT { CO_E_CANTDETERMINECLASS = cast(HRESULT)0x800401F2L } - -enum : HRESULT { CO_E_CLASSSTRING = cast(HRESULT)0x800401F3L } - -enum : HRESULT { CO_E_IIDSTRING = cast(HRESULT)0x800401F4L } - -enum : HRESULT { CO_E_APPNOTFOUND = cast(HRESULT)0x800401F5L } - -enum : HRESULT { CO_E_APPSINGLEUSE = cast(HRESULT)0x800401F6L } - -enum : HRESULT { CO_E_ERRORINAPP = cast(HRESULT)0x800401F7L } - -enum : HRESULT { CO_E_DLLNOTFOUND = cast(HRESULT)0x800401F8L } - -enum : HRESULT { CO_E_ERRORINDLL = cast(HRESULT)0x800401F9L } - -enum : HRESULT { CO_E_WRONGOSFORAPP = cast(HRESULT)0x800401FAL } - -enum : HRESULT { CO_E_OBJNOTREG = cast(HRESULT)0x800401FBL } - -enum : HRESULT { CO_E_OBJISREG = cast(HRESULT)0x800401FCL } - -enum : HRESULT { CO_E_OBJNOTCONNECTED = cast(HRESULT)0x800401FDL } - -enum : HRESULT { CO_E_APPDIDNTREG = cast(HRESULT)0x800401FEL } - -enum : HRESULT { CO_E_RELEASED = cast(HRESULT)0x800401FFL } - -enum : uint { EVENT_E_FIRST = 0x80040200 } -enum : uint { EVENT_E_LAST = 0x8004021F } -enum : uint { EVENT_S_FIRST = 0x00040200 } -enum : uint { EVENT_S_LAST = 0x0004021F } - -enum : HRESULT { EVENT_S_SOME_SUBSCRIBERS_FAILED = cast(HRESULT)0x00040200L } - -enum : HRESULT { EVENT_E_ALL_SUBSCRIBERS_FAILED = cast(HRESULT)0x80040201L } - -enum : HRESULT { EVENT_S_NOSUBSCRIBERS = cast(HRESULT)0x00040202L } - -enum : HRESULT { EVENT_E_QUERYSYNTAX = cast(HRESULT)0x80040203L } - -enum : HRESULT { EVENT_E_QUERYFIELD = cast(HRESULT)0x80040204L } - -enum : HRESULT { EVENT_E_INTERNALEXCEPTION = cast(HRESULT)0x80040205L } - -enum : HRESULT { EVENT_E_INTERNALERROR = cast(HRESULT)0x80040206L } - -enum : HRESULT { EVENT_E_INVALID_PER_USER_SID = cast(HRESULT)0x80040207L } - -enum : HRESULT { EVENT_E_USER_EXCEPTION = cast(HRESULT)0x80040208L } - -enum : HRESULT { EVENT_E_TOO_MANY_METHODS = cast(HRESULT)0x80040209L } - -enum : HRESULT { EVENT_E_MISSING_EVENTCLASS = cast(HRESULT)0x8004020AL } - -enum : HRESULT { EVENT_E_NOT_ALL_REMOVED = cast(HRESULT)0x8004020BL } - -enum : HRESULT { EVENT_E_COMPLUS_NOT_INSTALLED = cast(HRESULT)0x8004020CL } - -enum : HRESULT { EVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT = cast(HRESULT)0x8004020DL } - -enum : HRESULT { EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT = cast(HRESULT)0x8004020EL } - -enum : HRESULT { EVENT_E_INVALID_EVENT_CLASS_PARTITION = cast(HRESULT)0x8004020FL } - -enum : HRESULT { EVENT_E_PER_USER_SID_NOT_LOGGED_ON = cast(HRESULT)0x80040210L } - -enum : uint { XACT_E_FIRST = 0x8004D000 } -enum : uint { XACT_E_LAST = 0x8004D029 } -enum : uint { XACT_S_FIRST = 0x0004D000 } -enum : uint { XACT_S_LAST = 0x0004D010 } - -enum : HRESULT { XACT_E_ALREADYOTHERSINGLEPHASE = cast(HRESULT)0x8004D000L } - -enum : HRESULT { XACT_E_CANTRETAIN = cast(HRESULT)0x8004D001L } - -enum : HRESULT { XACT_E_COMMITFAILED = cast(HRESULT)0x8004D002L } - -enum : HRESULT { XACT_E_COMMITPREVENTED = cast(HRESULT)0x8004D003L } - -enum : HRESULT { XACT_E_HEURISTICABORT = cast(HRESULT)0x8004D004L } - -enum : HRESULT { XACT_E_HEURISTICCOMMIT = cast(HRESULT)0x8004D005L } - -enum : HRESULT { XACT_E_HEURISTICDAMAGE = cast(HRESULT)0x8004D006L } - -enum : HRESULT { XACT_E_HEURISTICDANGER = cast(HRESULT)0x8004D007L } - -enum : HRESULT { XACT_E_ISOLATIONLEVEL = cast(HRESULT)0x8004D008L } - -enum : HRESULT { XACT_E_NOASYNC = cast(HRESULT)0x8004D009L } - -enum : HRESULT { XACT_E_NOENLIST = cast(HRESULT)0x8004D00AL } - -enum : HRESULT { XACT_E_NOISORETAIN = cast(HRESULT)0x8004D00BL } - -enum : HRESULT { XACT_E_NORESOURCE = cast(HRESULT)0x8004D00CL } - -enum : HRESULT { XACT_E_NOTCURRENT = cast(HRESULT)0x8004D00DL } - -enum : HRESULT { XACT_E_NOTRANSACTION = cast(HRESULT)0x8004D00EL } - -enum : HRESULT { XACT_E_NOTSUPPORTED = cast(HRESULT)0x8004D00FL } - -enum : HRESULT { XACT_E_UNKNOWNRMGRID = cast(HRESULT)0x8004D010L } - -enum : HRESULT { XACT_E_WRONGSTATE = cast(HRESULT)0x8004D011L } - -enum : HRESULT { XACT_E_WRONGUOW = cast(HRESULT)0x8004D012L } - -enum : HRESULT { XACT_E_XTIONEXISTS = cast(HRESULT)0x8004D013L } - -enum : HRESULT { XACT_E_NOIMPORTOBJECT = cast(HRESULT)0x8004D014L } - -enum : HRESULT { XACT_E_INVALIDCOOKIE = cast(HRESULT)0x8004D015L } - -enum : HRESULT { XACT_E_INDOUBT = cast(HRESULT)0x8004D016L } - -enum : HRESULT { XACT_E_NOTIMEOUT = cast(HRESULT)0x8004D017L } - -enum : HRESULT { XACT_E_ALREADYINPROGRESS = cast(HRESULT)0x8004D018L } - -enum : HRESULT { XACT_E_ABORTED = cast(HRESULT)0x8004D019L } - -enum : HRESULT { XACT_E_LOGFULL = cast(HRESULT)0x8004D01AL } - -enum : HRESULT { XACT_E_TMNOTAVAILABLE = cast(HRESULT)0x8004D01BL } - -enum : HRESULT { XACT_E_CONNECTION_DOWN = cast(HRESULT)0x8004D01CL } - -enum : HRESULT { XACT_E_CONNECTION_DENIED = cast(HRESULT)0x8004D01DL } - -enum : HRESULT { XACT_E_REENLISTTIMEOUT = cast(HRESULT)0x8004D01EL } - -enum : HRESULT { XACT_E_TIP_CONNECT_FAILED = cast(HRESULT)0x8004D01FL } - -enum : HRESULT { XACT_E_TIP_PROTOCOL_ERROR = cast(HRESULT)0x8004D020L } - -enum : HRESULT { XACT_E_TIP_PULL_FAILED = cast(HRESULT)0x8004D021L } - -enum : HRESULT { XACT_E_DEST_TMNOTAVAILABLE = cast(HRESULT)0x8004D022L } - -enum : HRESULT { XACT_E_TIP_DISABLED = cast(HRESULT)0x8004D023L } - -enum : HRESULT { XACT_E_NETWORK_TX_DISABLED = cast(HRESULT)0x8004D024L } - -enum : HRESULT { XACT_E_PARTNER_NETWORK_TX_DISABLED = cast(HRESULT)0x8004D025L } - -enum : HRESULT { XACT_E_XA_TX_DISABLED = cast(HRESULT)0x8004D026L } - -enum : HRESULT { XACT_E_UNABLE_TO_READ_DTC_CONFIG = cast(HRESULT)0x8004D027L } - -enum : HRESULT { XACT_E_UNABLE_TO_LOAD_DTC_PROXY = cast(HRESULT)0x8004D028L } - -enum : HRESULT { XACT_E_ABORTING = cast(HRESULT)0x8004D029L } - -enum : HRESULT { XACT_E_CLERKNOTFOUND = cast(HRESULT)0x8004D080L } - -enum : HRESULT { XACT_E_CLERKEXISTS = cast(HRESULT)0x8004D081L } - -enum : HRESULT { XACT_E_RECOVERYINPROGRESS = cast(HRESULT)0x8004D082L } - -enum : HRESULT { XACT_E_TRANSACTIONCLOSED = cast(HRESULT)0x8004D083L } - -enum : HRESULT { XACT_E_INVALIDLSN = cast(HRESULT)0x8004D084L } - -enum : HRESULT { XACT_E_REPLAYREQUEST = cast(HRESULT)0x8004D085L } - -enum : HRESULT { XACT_S_ASYNC = cast(HRESULT)0x0004D000L } - -enum : HRESULT { XACT_S_DEFECT = cast(HRESULT)0x0004D001L } - -enum : HRESULT { XACT_S_READONLY = cast(HRESULT)0x0004D002L } - -enum : HRESULT { XACT_S_SOMENORETAIN = cast(HRESULT)0x0004D003L } - -enum : HRESULT { XACT_S_OKINFORM = cast(HRESULT)0x0004D004L } - -enum : HRESULT { XACT_S_MADECHANGESCONTENT = cast(HRESULT)0x0004D005L } - -enum : HRESULT { XACT_S_MADECHANGESINFORM = cast(HRESULT)0x0004D006L } - -enum : HRESULT { XACT_S_ALLNORETAIN = cast(HRESULT)0x0004D007L } - -enum : HRESULT { XACT_S_ABORTING = cast(HRESULT)0x0004D008L } - -enum : HRESULT { XACT_S_SINGLEPHASE = cast(HRESULT)0x0004D009L } - -enum : HRESULT { XACT_S_LOCALLY_OK = cast(HRESULT)0x0004D00AL } - -enum : HRESULT { XACT_S_LASTRESOURCEMANAGER = cast(HRESULT)0x0004D010L } - -enum : uint { CONTEXT_E_FIRST = 0x8004E000 } -enum : uint { CONTEXT_E_LAST = 0x8004E02F } -enum : uint { CONTEXT_S_FIRST = 0x0004E000 } -enum : uint { CONTEXT_S_LAST = 0x0004E02F } - -enum : HRESULT { CONTEXT_E_ABORTED = cast(HRESULT)0x8004E002L } - -enum : HRESULT { CONTEXT_E_ABORTING = cast(HRESULT)0x8004E003L } - -enum : HRESULT { CONTEXT_E_NOCONTEXT = cast(HRESULT)0x8004E004L } - -enum : HRESULT { CONTEXT_E_SYNCH_TIMEOUT = cast(HRESULT)0x8004E006L } - -enum : HRESULT { CONTEXT_E_OLDREF = cast(HRESULT)0x8004E007L } - -enum : HRESULT { CONTEXT_E_ROLENOTFOUND = cast(HRESULT)0x8004E00CL } - -enum : HRESULT { CONTEXT_E_TMNOTAVAILABLE = cast(HRESULT)0x8004E00FL } - -enum : HRESULT { CO_E_ACTIVATIONFAILED = cast(HRESULT)0x8004E021L } - -enum : HRESULT { CO_E_ACTIVATIONFAILED_EVENTLOGGED = cast(HRESULT)0x8004E022L } - -enum : HRESULT { CO_E_ACTIVATIONFAILED_CATALOGERROR = cast(HRESULT)0x8004E023L } - -enum : HRESULT { CO_E_ACTIVATIONFAILED_TIMEOUT = cast(HRESULT)0x8004E024L } - -enum : HRESULT { CO_E_INITIALIZATIONFAILED = cast(HRESULT)0x8004E025L } - -enum : HRESULT { CONTEXT_E_NOJIT = cast(HRESULT)0x8004E026L } - -enum : HRESULT { CONTEXT_E_NOTRANSACTION = cast(HRESULT)0x8004E027L } - -enum : HRESULT { CO_E_THREADINGMODEL_CHANGED = cast(HRESULT)0x8004E028L } - -enum : HRESULT { CO_E_NOIISINTRINSICS = cast(HRESULT)0x8004E029L } - -enum : HRESULT { CO_E_NOCOOKIES = cast(HRESULT)0x8004E02AL } - -enum : HRESULT { CO_E_DBERROR = cast(HRESULT)0x8004E02BL } - -enum : HRESULT { CO_E_NOTPOOLED = cast(HRESULT)0x8004E02CL } - -enum : HRESULT { CO_E_NOTCONSTRUCTED = cast(HRESULT)0x8004E02DL } - -enum : HRESULT { CO_E_NOSYNCHRONIZATION = cast(HRESULT)0x8004E02EL } - -enum : HRESULT { CO_E_ISOLEVELMISMATCH = cast(HRESULT)0x8004E02FL } - -enum : HRESULT { OLE_S_USEREG = cast(HRESULT)0x00040000L } - -enum : HRESULT { OLE_S_STATIC = cast(HRESULT)0x00040001L } - -enum : HRESULT { OLE_S_MAC_CLIPFORMAT = cast(HRESULT)0x00040002L } - -enum : HRESULT { DRAGDROP_S_DROP = cast(HRESULT)0x00040100L } - -enum : HRESULT { DRAGDROP_S_CANCEL = cast(HRESULT)0x00040101L } - -enum : HRESULT { DRAGDROP_S_USEDEFAULTCURSORS = cast(HRESULT)0x00040102L } - -enum : HRESULT { DATA_S_SAMEFORMATETC = cast(HRESULT)0x00040130L } - -enum : HRESULT { VIEW_S_ALREADY_FROZEN = cast(HRESULT)0x00040140L } - -enum : HRESULT { CACHE_S_FORMATETC_NOTSUPPORTED = cast(HRESULT)0x00040170L } - -enum : HRESULT { CACHE_S_SAMECACHE = cast(HRESULT)0x00040171L } - -enum : HRESULT { CACHE_S_SOMECACHES_NOTUPDATED = cast(HRESULT)0x00040172L } - -enum : HRESULT { OLEOBJ_S_INVALIDVERB = cast(HRESULT)0x00040180L } - -enum : HRESULT { OLEOBJ_S_CANNOT_DOVERB_NOW = cast(HRESULT)0x00040181L } - -enum : HRESULT { OLEOBJ_S_INVALIDHWND = cast(HRESULT)0x00040182L } - -enum : HRESULT { INPLACE_S_TRUNCATED = cast(HRESULT)0x000401A0L } - -enum : HRESULT { CONVERT10_S_NO_PRESENTATION = cast(HRESULT)0x000401C0L } - -enum : HRESULT { MK_S_REDUCED_TO_SELF = cast(HRESULT)0x000401E2L } - -enum : HRESULT { MK_S_ME = cast(HRESULT)0x000401E4L } - -enum : HRESULT { MK_S_HIM = cast(HRESULT)0x000401E5L } - -enum : HRESULT { MK_S_US = cast(HRESULT)0x000401E6L } - -enum : HRESULT { MK_S_MONIKERALREADYREGISTERED = cast(HRESULT)0x000401E7L } - -enum : HRESULT { SCHED_S_TASK_READY = cast(HRESULT)0x00041300L } - -enum : HRESULT { SCHED_S_TASK_RUNNING = cast(HRESULT)0x00041301L } - -enum : HRESULT { SCHED_S_TASK_DISABLED = cast(HRESULT)0x00041302L } - -enum : HRESULT { SCHED_S_TASK_HAS_NOT_RUN = cast(HRESULT)0x00041303L } - -enum : HRESULT { SCHED_S_TASK_NO_MORE_RUNS = cast(HRESULT)0x00041304L } - -enum : HRESULT { SCHED_S_TASK_NOT_SCHEDULED = cast(HRESULT)0x00041305L } - -enum : HRESULT { SCHED_S_TASK_TERMINATED = cast(HRESULT)0x00041306L } - -enum : HRESULT { SCHED_S_TASK_NO_VALID_TRIGGERS = cast(HRESULT)0x00041307L } - -enum : HRESULT { SCHED_S_EVENT_TRIGGER = cast(HRESULT)0x00041308L } - -enum : HRESULT { SCHED_E_TRIGGER_NOT_FOUND = cast(HRESULT)0x80041309L } - -enum : HRESULT { SCHED_E_TASK_NOT_READY = cast(HRESULT)0x8004130AL } - -enum : HRESULT { SCHED_E_TASK_NOT_RUNNING = cast(HRESULT)0x8004130BL } - -enum : HRESULT { SCHED_E_SERVICE_NOT_INSTALLED = cast(HRESULT)0x8004130CL } - -enum : HRESULT { SCHED_E_CANNOT_OPEN_TASK = cast(HRESULT)0x8004130DL } - -enum : HRESULT { SCHED_E_INVALID_TASK = cast(HRESULT)0x8004130EL } - -enum : HRESULT { SCHED_E_ACCOUNT_INFORMATION_NOT_SET = cast(HRESULT)0x8004130FL } - -enum : HRESULT { SCHED_E_ACCOUNT_NAME_NOT_FOUND = cast(HRESULT)0x80041310L } - -enum : HRESULT { SCHED_E_ACCOUNT_DBASE_CORRUPT = cast(HRESULT)0x80041311L } - -enum : HRESULT { SCHED_E_NO_SECURITY_SERVICES = cast(HRESULT)0x80041312L } - -enum : HRESULT { SCHED_E_UNKNOWN_OBJECT_VERSION = cast(HRESULT)0x80041313L } - -enum : HRESULT { SCHED_E_UNSUPPORTED_ACCOUNT_OPTION = cast(HRESULT)0x80041314L } - -enum : HRESULT { SCHED_E_SERVICE_NOT_RUNNING = cast(HRESULT)0x80041315L } - -enum : HRESULT { CO_E_CLASS_CREATE_FAILED = cast(HRESULT)0x80080001L } - -enum : HRESULT { CO_E_SCM_ERROR = cast(HRESULT)0x80080002L } - -enum : HRESULT { CO_E_SCM_RPC_FAILURE = cast(HRESULT)0x80080003L } - -enum : HRESULT { CO_E_BAD_PATH = cast(HRESULT)0x80080004L } - -enum : HRESULT { CO_E_SERVER_EXEC_FAILURE = cast(HRESULT)0x80080005L } - -enum : HRESULT { CO_E_OBJSRV_RPC_FAILURE = cast(HRESULT)0x80080006L } - -enum : HRESULT { MK_E_NO_NORMALIZED = cast(HRESULT)0x80080007L } - -enum : HRESULT { CO_E_SERVER_STOPPING = cast(HRESULT)0x80080008L } - -enum : HRESULT { MEM_E_INVALID_ROOT = cast(HRESULT)0x80080009L } - -enum : HRESULT { MEM_E_INVALID_LINK = cast(HRESULT)0x80080010L } - -enum : HRESULT { MEM_E_INVALID_SIZE = cast(HRESULT)0x80080011L } - -enum : HRESULT { CO_S_NOTALLINTERFACES = cast(HRESULT)0x00080012L } - -enum : HRESULT { CO_S_MACHINENAMENOTFOUND = cast(HRESULT)0x00080013L } - -enum : HRESULT { DISP_E_UNKNOWNINTERFACE = cast(HRESULT)0x80020001L } - -enum : HRESULT { DISP_E_MEMBERNOTFOUND = cast(HRESULT)0x80020003L } - -enum : HRESULT { DISP_E_PARAMNOTFOUND = cast(HRESULT)0x80020004L } - -enum : HRESULT { DISP_E_TYPEMISMATCH = cast(HRESULT)0x80020005L } - -enum : HRESULT { DISP_E_UNKNOWNNAME = cast(HRESULT)0x80020006L } - -enum : HRESULT { DISP_E_NONAMEDARGS = cast(HRESULT)0x80020007L } - -enum : HRESULT { DISP_E_BADVARTYPE = cast(HRESULT)0x80020008L } - -enum : HRESULT { DISP_E_EXCEPTION = cast(HRESULT)0x80020009L } - -enum : HRESULT { DISP_E_OVERFLOW = cast(HRESULT)0x8002000AL } - -enum : HRESULT { DISP_E_BADINDEX = cast(HRESULT)0x8002000BL } - -enum : HRESULT { DISP_E_UNKNOWNLCID = cast(HRESULT)0x8002000CL } - -enum : HRESULT { DISP_E_ARRAYISLOCKED = cast(HRESULT)0x8002000DL } - -enum : HRESULT { DISP_E_BADPARAMCOUNT = cast(HRESULT)0x8002000EL } - -enum : HRESULT { DISP_E_PARAMNOTOPTIONAL = cast(HRESULT)0x8002000FL } - -enum : HRESULT { DISP_E_BADCALLEE = cast(HRESULT)0x80020010L } - -enum : HRESULT { DISP_E_NOTACOLLECTION = cast(HRESULT)0x80020011L } - -enum : HRESULT { DISP_E_DIVBYZERO = cast(HRESULT)0x80020012L } - -enum : HRESULT { DISP_E_BUFFERTOOSMALL = cast(HRESULT)0x80020013L } - -enum : HRESULT { TYPE_E_BUFFERTOOSMALL = cast(HRESULT)0x80028016L } - -enum : HRESULT { TYPE_E_FIELDNOTFOUND = cast(HRESULT)0x80028017L } - -enum : HRESULT { TYPE_E_INVDATAREAD = cast(HRESULT)0x80028018L } - -enum : HRESULT { TYPE_E_UNSUPFORMAT = cast(HRESULT)0x80028019L } - -enum : HRESULT { TYPE_E_REGISTRYACCESS = cast(HRESULT)0x8002801CL } - -enum : HRESULT { TYPE_E_LIBNOTREGISTERED = cast(HRESULT)0x8002801DL } - -enum : HRESULT { TYPE_E_UNDEFINEDTYPE = cast(HRESULT)0x80028027L } - -enum : HRESULT { TYPE_E_QUALIFIEDNAMEDISALLOWED = cast(HRESULT)0x80028028L } - -enum : HRESULT { TYPE_E_INVALIDSTATE = cast(HRESULT)0x80028029L } - -enum : HRESULT { TYPE_E_WRONGTYPEKIND = cast(HRESULT)0x8002802AL } - -enum : HRESULT { TYPE_E_ELEMENTNOTFOUND = cast(HRESULT)0x8002802BL } - -enum : HRESULT { TYPE_E_AMBIGUOUSNAME = cast(HRESULT)0x8002802CL } - -enum : HRESULT { TYPE_E_NAMECONFLICT = cast(HRESULT)0x8002802DL } - -enum : HRESULT { TYPE_E_UNKNOWNLCID = cast(HRESULT)0x8002802EL } - -enum : HRESULT { TYPE_E_DLLFUNCTIONNOTFOUND = cast(HRESULT)0x8002802FL } - -enum : HRESULT { TYPE_E_BADMODULEKIND = cast(HRESULT)0x800288BDL } - -enum : HRESULT { TYPE_E_SIZETOOBIG = cast(HRESULT)0x800288C5L } - -enum : HRESULT { TYPE_E_DUPLICATEID = cast(HRESULT)0x800288C6L } - -enum : HRESULT { TYPE_E_INVALIDID = cast(HRESULT)0x800288CFL } - -enum : HRESULT { TYPE_E_TYPEMISMATCH = cast(HRESULT)0x80028CA0L } - -enum : HRESULT { TYPE_E_OUTOFBOUNDS = cast(HRESULT)0x80028CA1L } - -enum : HRESULT { TYPE_E_IOERROR = cast(HRESULT)0x80028CA2L } - -enum : HRESULT { TYPE_E_CANTCREATETMPFILE = cast(HRESULT)0x80028CA3L } - -enum : HRESULT { TYPE_E_CANTLOADLIBRARY = cast(HRESULT)0x80029C4AL } - -enum : HRESULT { TYPE_E_INCONSISTENTPROPFUNCS = cast(HRESULT)0x80029C83L } - -enum : HRESULT { TYPE_E_CIRCULARTYPE = cast(HRESULT)0x80029C84L } - -enum : HRESULT { STG_E_INVALIDFUNCTION = cast(HRESULT)0x80030001L } - -enum : HRESULT { STG_E_FILENOTFOUND = cast(HRESULT)0x80030002L } - -enum : HRESULT { STG_E_PATHNOTFOUND = cast(HRESULT)0x80030003L } - -enum : HRESULT { STG_E_TOOMANYOPENFILES = cast(HRESULT)0x80030004L } - -enum : HRESULT { STG_E_ACCESSDENIED = cast(HRESULT)0x80030005L } - -enum : HRESULT { STG_E_INVALIDHANDLE = cast(HRESULT)0x80030006L } - -enum : HRESULT { STG_E_INSUFFICIENTMEMORY = cast(HRESULT)0x80030008L } - -enum : HRESULT { STG_E_INVALIDPOINTER = cast(HRESULT)0x80030009L } - -enum : HRESULT { STG_E_NOMOREFILES = cast(HRESULT)0x80030012L } - -enum : HRESULT { STG_E_DISKISWRITEPROTECTED = cast(HRESULT)0x80030013L } - -enum : HRESULT { STG_E_SEEKERROR = cast(HRESULT)0x80030019L } - -enum : HRESULT { STG_E_WRITEFAULT = cast(HRESULT)0x8003001DL } - -enum : HRESULT { STG_E_READFAULT = cast(HRESULT)0x8003001EL } - -enum : HRESULT { STG_E_SHAREVIOLATION = cast(HRESULT)0x80030020L } - -enum : HRESULT { STG_E_LOCKVIOLATION = cast(HRESULT)0x80030021L } - -enum : HRESULT { STG_E_FILEALREADYEXISTS = cast(HRESULT)0x80030050L } - -enum : HRESULT { STG_E_INVALIDPARAMETER = cast(HRESULT)0x80030057L } - -enum : HRESULT { STG_E_MEDIUMFULL = cast(HRESULT)0x80030070L } - -enum : HRESULT { STG_E_PROPSETMISMATCHED = cast(HRESULT)0x800300F0L } - -enum : HRESULT { STG_E_ABNORMALAPIEXIT = cast(HRESULT)0x800300FAL } - -enum : HRESULT { STG_E_INVALIDHEADER = cast(HRESULT)0x800300FBL } - -enum : HRESULT { STG_E_INVALIDNAME = cast(HRESULT)0x800300FCL } - -enum : HRESULT { STG_E_UNKNOWN = cast(HRESULT)0x800300FDL } - -enum : HRESULT { STG_E_UNIMPLEMENTEDFUNCTION = cast(HRESULT)0x800300FEL } - -enum : HRESULT { STG_E_INVALIDFLAG = cast(HRESULT)0x800300FFL } - -enum : HRESULT { STG_E_INUSE = cast(HRESULT)0x80030100L } - -enum : HRESULT { STG_E_NOTCURRENT = cast(HRESULT)0x80030101L } - -enum : HRESULT { STG_E_REVERTED = cast(HRESULT)0x80030102L } - -enum : HRESULT { STG_E_CANTSAVE = cast(HRESULT)0x80030103L } - -enum : HRESULT { STG_E_OLDFORMAT = cast(HRESULT)0x80030104L } - -enum : HRESULT { STG_E_OLDDLL = cast(HRESULT)0x80030105L } - -enum : HRESULT { STG_E_SHAREREQUIRED = cast(HRESULT)0x80030106L } - -enum : HRESULT { STG_E_NOTFILEBASEDSTORAGE = cast(HRESULT)0x80030107L } - -enum : HRESULT { STG_E_EXTANTMARSHALLINGS = cast(HRESULT)0x80030108L } - -enum : HRESULT { STG_E_DOCFILECORRUPT = cast(HRESULT)0x80030109L } - -enum : HRESULT { STG_E_BADBASEADDRESS = cast(HRESULT)0x80030110L } - -enum : HRESULT { STG_E_DOCFILETOOLARGE = cast(HRESULT)0x80030111L } - -enum : HRESULT { STG_E_NOTSIMPLEFORMAT = cast(HRESULT)0x80030112L } - -enum : HRESULT { STG_E_INCOMPLETE = cast(HRESULT)0x80030201L } - -enum : HRESULT { STG_E_TERMINATED = cast(HRESULT)0x80030202L } - -enum : HRESULT { STG_S_CONVERTED = cast(HRESULT)0x00030200L } - -enum : HRESULT { STG_S_BLOCK = cast(HRESULT)0x00030201L } - -enum : HRESULT { STG_S_RETRYNOW = cast(HRESULT)0x00030202L } - -enum : HRESULT { STG_S_MONITORING = cast(HRESULT)0x00030203L } - -enum : HRESULT { STG_S_MULTIPLEOPENS = cast(HRESULT)0x00030204L } - -enum : HRESULT { STG_S_CONSOLIDATIONFAILED = cast(HRESULT)0x00030205L } - -enum : HRESULT { STG_S_CANNOTCONSOLIDATE = cast(HRESULT)0x00030206L } - -enum : HRESULT { STG_E_STATUS_COPY_PROTECTION_FAILURE = cast(HRESULT)0x80030305L } - -enum : HRESULT { STG_E_CSS_AUTHENTICATION_FAILURE = cast(HRESULT)0x80030306L } - -enum : HRESULT { STG_E_CSS_KEY_NOT_PRESENT = cast(HRESULT)0x80030307L } - -enum : HRESULT { STG_E_CSS_KEY_NOT_ESTABLISHED = cast(HRESULT)0x80030308L } - -enum : HRESULT { STG_E_CSS_SCRAMBLED_SECTOR = cast(HRESULT)0x80030309L } - -enum : HRESULT { STG_E_CSS_REGION_MISMATCH = cast(HRESULT)0x8003030AL } - -enum : HRESULT { STG_E_RESETS_EXHAUSTED = cast(HRESULT)0x8003030BL } - -enum : HRESULT { RPC_E_CALL_REJECTED = cast(HRESULT)0x80010001L } - -enum : HRESULT { RPC_E_CALL_CANCELED = cast(HRESULT)0x80010002L } - -enum : HRESULT { RPC_E_CANTPOST_INSENDCALL = cast(HRESULT)0x80010003L } - -enum : HRESULT { RPC_E_CANTCALLOUT_INASYNCCALL = cast(HRESULT)0x80010004L } - -enum : HRESULT { RPC_E_CANTCALLOUT_INEXTERNALCALL = cast(HRESULT)0x80010005L } - -enum : HRESULT { RPC_E_CONNECTION_TERMINATED = cast(HRESULT)0x80010006L } - -enum : HRESULT { RPC_E_SERVER_DIED = cast(HRESULT)0x80010007L } - -enum : HRESULT { RPC_E_CLIENT_DIED = cast(HRESULT)0x80010008L } - -enum : HRESULT { RPC_E_INVALID_DATAPACKET = cast(HRESULT)0x80010009L } - -enum : HRESULT { RPC_E_CANTTRANSMIT_CALL = cast(HRESULT)0x8001000AL } - -enum : HRESULT { RPC_E_CLIENT_CANTMARSHAL_DATA = cast(HRESULT)0x8001000BL } - -enum : HRESULT { RPC_E_CLIENT_CANTUNMARSHAL_DATA = cast(HRESULT)0x8001000CL } - -enum : HRESULT { RPC_E_SERVER_CANTMARSHAL_DATA = cast(HRESULT)0x8001000DL } - -enum : HRESULT { RPC_E_SERVER_CANTUNMARSHAL_DATA = cast(HRESULT)0x8001000EL } - -enum : HRESULT { RPC_E_INVALID_DATA = cast(HRESULT)0x8001000FL } - -enum : HRESULT { RPC_E_INVALID_PARAMETER = cast(HRESULT)0x80010010L } - -enum : HRESULT { RPC_E_CANTCALLOUT_AGAIN = cast(HRESULT)0x80010011L } - -enum : HRESULT { RPC_E_SERVER_DIED_DNE = cast(HRESULT)0x80010012L } - -enum : HRESULT { RPC_E_SYS_CALL_FAILED = cast(HRESULT)0x80010100L } - -enum : HRESULT { RPC_E_OUT_OF_RESOURCES = cast(HRESULT)0x80010101L } - -enum : HRESULT { RPC_E_ATTEMPTED_MULTITHREAD = cast(HRESULT)0x80010102L } - -enum : HRESULT { RPC_E_NOT_REGISTERED = cast(HRESULT)0x80010103L } - -enum : HRESULT { RPC_E_FAULT = cast(HRESULT)0x80010104L } - -enum : HRESULT { RPC_E_SERVERFAULT = cast(HRESULT)0x80010105L } - -enum : HRESULT { RPC_E_CHANGED_MODE = cast(HRESULT)0x80010106L } - -enum : HRESULT { RPC_E_INVALIDMETHOD = cast(HRESULT)0x80010107L } - -enum : HRESULT { RPC_E_DISCONNECTED = cast(HRESULT)0x80010108L } - -enum : HRESULT { RPC_E_RETRY = cast(HRESULT)0x80010109L } - -enum : HRESULT { RPC_E_SERVERCALL_RETRYLATER = cast(HRESULT)0x8001010AL } - -enum : HRESULT { RPC_E_SERVERCALL_REJECTED = cast(HRESULT)0x8001010BL } - -enum : HRESULT { RPC_E_INVALID_CALLDATA = cast(HRESULT)0x8001010CL } - -enum : HRESULT { RPC_E_CANTCALLOUT_ININPUTSYNCCALL = cast(HRESULT)0x8001010DL } - -enum : HRESULT { RPC_E_WRONG_THREAD = cast(HRESULT)0x8001010EL } - -enum : HRESULT { RPC_E_THREAD_NOT_INIT = cast(HRESULT)0x8001010FL } - -enum : HRESULT { RPC_E_VERSION_MISMATCH = cast(HRESULT)0x80010110L } - -enum : HRESULT { RPC_E_INVALID_HEADER = cast(HRESULT)0x80010111L } - -enum : HRESULT { RPC_E_INVALID_EXTENSION = cast(HRESULT)0x80010112L } - -enum : HRESULT { RPC_E_INVALID_IPID = cast(HRESULT)0x80010113L } - -enum : HRESULT { RPC_E_INVALID_OBJECT = cast(HRESULT)0x80010114L } - -enum : HRESULT { RPC_S_CALLPENDING = cast(HRESULT)0x80010115L } - -enum : HRESULT { RPC_S_WAITONTIMER = cast(HRESULT)0x80010116L } - -enum : HRESULT { RPC_E_CALL_COMPLETE = cast(HRESULT)0x80010117L } - -enum : HRESULT { RPC_E_UNSECURE_CALL = cast(HRESULT)0x80010118L } - -enum : HRESULT { RPC_E_TOO_LATE = cast(HRESULT)0x80010119L } - -enum : HRESULT { RPC_E_NO_GOOD_SECURITY_PACKAGES = cast(HRESULT)0x8001011AL } - -enum : HRESULT { RPC_E_ACCESS_DENIED = cast(HRESULT)0x8001011BL } - -enum : HRESULT { RPC_E_REMOTE_DISABLED = cast(HRESULT)0x8001011CL } - -enum : HRESULT { RPC_E_INVALID_OBJREF = cast(HRESULT)0x8001011DL } - -enum : HRESULT { RPC_E_NO_CONTEXT = cast(HRESULT)0x8001011EL } - -enum : HRESULT { RPC_E_TIMEOUT = cast(HRESULT)0x8001011FL } - -enum : HRESULT { RPC_E_NO_SYNC = cast(HRESULT)0x80010120L } - -enum : HRESULT { RPC_E_FULLSIC_REQUIRED = cast(HRESULT)0x80010121L } - -enum : HRESULT { RPC_E_INVALID_STD_NAME = cast(HRESULT)0x80010122L } - -enum : HRESULT { CO_E_FAILEDTOIMPERSONATE = cast(HRESULT)0x80010123L } - -enum : HRESULT { CO_E_FAILEDTOGETSECCTX = cast(HRESULT)0x80010124L } - -enum : HRESULT { CO_E_FAILEDTOOPENTHREADTOKEN = cast(HRESULT)0x80010125L } - -enum : HRESULT { CO_E_FAILEDTOGETTOKENINFO = cast(HRESULT)0x80010126L } - -enum : HRESULT { CO_E_TRUSTEEDOESNTMATCHCLIENT = cast(HRESULT)0x80010127L } - -enum : HRESULT { CO_E_FAILEDTOQUERYCLIENTBLANKET = cast(HRESULT)0x80010128L } - -enum : HRESULT { CO_E_FAILEDTOSETDACL = cast(HRESULT)0x80010129L } - -enum : HRESULT { CO_E_ACCESSCHECKFAILED = cast(HRESULT)0x8001012AL } - -enum : HRESULT { CO_E_NETACCESSAPIFAILED = cast(HRESULT)0x8001012BL } - -enum : HRESULT { CO_E_WRONGTRUSTEENAMESYNTAX = cast(HRESULT)0x8001012CL } - -enum : HRESULT { CO_E_INVALIDSID = cast(HRESULT)0x8001012DL } - -enum : HRESULT { CO_E_CONVERSIONFAILED = cast(HRESULT)0x8001012EL } - -enum : HRESULT { CO_E_NOMATCHINGSIDFOUND = cast(HRESULT)0x8001012FL } - -enum : HRESULT { CO_E_LOOKUPACCSIDFAILED = cast(HRESULT)0x80010130L } - -enum : HRESULT { CO_E_NOMATCHINGNAMEFOUND = cast(HRESULT)0x80010131L } - -enum : HRESULT { CO_E_LOOKUPACCNAMEFAILED = cast(HRESULT)0x80010132L } - -enum : HRESULT { CO_E_SETSERLHNDLFAILED = cast(HRESULT)0x80010133L } - -enum : HRESULT { CO_E_FAILEDTOGETWINDIR = cast(HRESULT)0x80010134L } - -enum : HRESULT { CO_E_PATHTOOLONG = cast(HRESULT)0x80010135L } - -enum : HRESULT { CO_E_FAILEDTOGENUUID = cast(HRESULT)0x80010136L } - -enum : HRESULT { CO_E_FAILEDTOCREATEFILE = cast(HRESULT)0x80010137L } - -enum : HRESULT { CO_E_FAILEDTOCLOSEHANDLE = cast(HRESULT)0x80010138L } - -enum : HRESULT { CO_E_EXCEEDSYSACLLIMIT = cast(HRESULT)0x80010139L } - -enum : HRESULT { CO_E_ACESINWRONGORDER = cast(HRESULT)0x8001013AL } - -enum : HRESULT { CO_E_INCOMPATIBLESTREAMVERSION = cast(HRESULT)0x8001013BL } - -enum : HRESULT { CO_E_FAILEDTOOPENPROCESSTOKEN = cast(HRESULT)0x8001013CL } - -enum : HRESULT { CO_E_DECODEFAILED = cast(HRESULT)0x8001013DL } - -enum : HRESULT { CO_E_ACNOTINITIALIZED = cast(HRESULT)0x8001013FL } - -enum : HRESULT { CO_E_CANCEL_DISABLED = cast(HRESULT)0x80010140L } - -enum : HRESULT { RPC_E_UNEXPECTED = cast(HRESULT)0x8001FFFFL } - -enum : HRESULT { ERROR_AUDITING_DISABLED = cast(HRESULT)0xC0090001L } - -enum : HRESULT { ERROR_ALL_SIDS_FILTERED = cast(HRESULT)0xC0090002L } - -enum : HRESULT { NTE_BAD_UID = cast(HRESULT)0x80090001L } - -enum : HRESULT { NTE_BAD_HASH = cast(HRESULT)0x80090002L } - -enum : HRESULT { NTE_BAD_KEY = cast(HRESULT)0x80090003L } - -enum : HRESULT { NTE_BAD_LEN = cast(HRESULT)0x80090004L } - -enum : HRESULT { NTE_BAD_DATA = cast(HRESULT)0x80090005L } - -enum : HRESULT { NTE_BAD_SIGNATURE = cast(HRESULT)0x80090006L } - -enum : HRESULT { NTE_BAD_VER = cast(HRESULT)0x80090007L } - -enum : HRESULT { NTE_BAD_ALGID = cast(HRESULT)0x80090008L } - -enum : HRESULT { NTE_BAD_FLAGS = cast(HRESULT)0x80090009L } - -enum : HRESULT { NTE_BAD_TYPE = cast(HRESULT)0x8009000AL } - -enum : HRESULT { NTE_BAD_KEY_STATE = cast(HRESULT)0x8009000BL } - -enum : HRESULT { NTE_BAD_HASH_STATE = cast(HRESULT)0x8009000CL } - -enum : HRESULT { NTE_NO_KEY = cast(HRESULT)0x8009000DL } - -enum : HRESULT { NTE_NO_MEMORY = cast(HRESULT)0x8009000EL } - -enum : HRESULT { NTE_EXISTS = cast(HRESULT)0x8009000FL } - -enum : HRESULT { NTE_PERM = cast(HRESULT)0x80090010L } - -enum : HRESULT { NTE_NOT_FOUND = cast(HRESULT)0x80090011L } - -enum : HRESULT { NTE_DOUBLE_ENCRYPT = cast(HRESULT)0x80090012L } - -enum : HRESULT { NTE_BAD_PROVIDER = cast(HRESULT)0x80090013L } - -enum : HRESULT { NTE_BAD_PROV_TYPE = cast(HRESULT)0x80090014L } - -enum : HRESULT { NTE_BAD_PUBLIC_KEY = cast(HRESULT)0x80090015L } - -enum : HRESULT { NTE_BAD_KEYSET = cast(HRESULT)0x80090016L } - -enum : HRESULT { NTE_PROV_TYPE_NOT_DEF = cast(HRESULT)0x80090017L } - -enum : HRESULT { NTE_PROV_TYPE_ENTRY_BAD = cast(HRESULT)0x80090018L } - -enum : HRESULT { NTE_KEYSET_NOT_DEF = cast(HRESULT)0x80090019L } - -enum : HRESULT { NTE_KEYSET_ENTRY_BAD = cast(HRESULT)0x8009001AL } - -enum : HRESULT { NTE_PROV_TYPE_NO_MATCH = cast(HRESULT)0x8009001BL } - -enum : HRESULT { NTE_SIGNATURE_FILE_BAD = cast(HRESULT)0x8009001CL } - -enum : HRESULT { NTE_PROVIDER_DLL_FAIL = cast(HRESULT)0x8009001DL } - -enum : HRESULT { NTE_PROV_DLL_NOT_FOUND = cast(HRESULT)0x8009001EL } - -enum : HRESULT { NTE_BAD_KEYSET_PARAM = cast(HRESULT)0x8009001FL } - -enum : HRESULT { NTE_FAIL = cast(HRESULT)0x80090020L } - -enum : HRESULT { NTE_SYS_ERR = cast(HRESULT)0x80090021L } - -enum : HRESULT { NTE_SILENT_CONTEXT = cast(HRESULT)0x80090022L } - -enum : HRESULT { NTE_TOKEN_KEYSET_STORAGE_FULL = cast(HRESULT)0x80090023L } - -enum : HRESULT { NTE_TEMPORARY_PROFILE = cast(HRESULT)0x80090024L } - -enum : HRESULT { NTE_FIXEDPARAMETER = cast(HRESULT)0x80090025L } - -enum : HRESULT { SEC_E_INSUFFICIENT_MEMORY = cast(HRESULT)0x80090300L } - -enum : HRESULT { SEC_E_INVALID_HANDLE = cast(HRESULT)0x80090301L } - -enum : HRESULT { SEC_E_UNSUPPORTED_FUNCTION = cast(HRESULT)0x80090302L } - -enum : HRESULT { SEC_E_TARGET_UNKNOWN = cast(HRESULT)0x80090303L } - -enum : HRESULT { SEC_E_INTERNAL_ERROR = cast(HRESULT)0x80090304L } - -enum : HRESULT { SEC_E_SECPKG_NOT_FOUND = cast(HRESULT)0x80090305L } - -enum : HRESULT { SEC_E_NOT_OWNER = cast(HRESULT)0x80090306L } - -enum : HRESULT { SEC_E_CANNOT_INSTALL = cast(HRESULT)0x80090307L } - -enum : HRESULT { SEC_E_INVALID_TOKEN = cast(HRESULT)0x80090308L } - -enum : HRESULT { SEC_E_CANNOT_PACK = cast(HRESULT)0x80090309L } - -enum : HRESULT { SEC_E_QOP_NOT_SUPPORTED = cast(HRESULT)0x8009030AL } - -enum : HRESULT { SEC_E_NO_IMPERSONATION = cast(HRESULT)0x8009030BL } - -enum : HRESULT { SEC_E_LOGON_DENIED = cast(HRESULT)0x8009030CL } - -enum : HRESULT { SEC_E_UNKNOWN_CREDENTIALS = cast(HRESULT)0x8009030DL } - -enum : HRESULT { SEC_E_NO_CREDENTIALS = cast(HRESULT)0x8009030EL } - -enum : HRESULT { SEC_E_MESSAGE_ALTERED = cast(HRESULT)0x8009030FL } - -enum : HRESULT { SEC_E_OUT_OF_SEQUENCE = cast(HRESULT)0x80090310L } - -enum : HRESULT { SEC_E_NO_AUTHENTICATING_AUTHORITY = cast(HRESULT)0x80090311L } - -enum : HRESULT { SEC_I_CONTINUE_NEEDED = cast(HRESULT)0x00090312L } - -enum : HRESULT { SEC_I_COMPLETE_NEEDED = cast(HRESULT)0x00090313L } - -enum : HRESULT { SEC_I_COMPLETE_AND_CONTINUE = cast(HRESULT)0x00090314L } - -enum : HRESULT { SEC_I_LOCAL_LOGON = cast(HRESULT)0x00090315L } - -enum : HRESULT { SEC_E_BAD_PKGID = cast(HRESULT)0x80090316L } - -enum : HRESULT { SEC_E_CONTEXT_EXPIRED = cast(HRESULT)0x80090317L } - -enum : HRESULT { SEC_I_CONTEXT_EXPIRED = cast(HRESULT)0x00090317L } - -enum : HRESULT { SEC_E_INCOMPLETE_MESSAGE = cast(HRESULT)0x80090318L } - -enum : HRESULT { SEC_E_INCOMPLETE_CREDENTIALS = cast(HRESULT)0x80090320L } - -enum : HRESULT { SEC_E_BUFFER_TOO_SMALL = cast(HRESULT)0x80090321L } - -enum : HRESULT { SEC_I_INCOMPLETE_CREDENTIALS = cast(HRESULT)0x00090320L } - -enum : HRESULT { SEC_I_RENEGOTIATE = cast(HRESULT)0x00090321L } - -enum : HRESULT { SEC_E_WRONG_PRINCIPAL = cast(HRESULT)0x80090322L } - -enum : HRESULT { SEC_I_NO_LSA_CONTEXT = cast(HRESULT)0x00090323L } - -enum : HRESULT { SEC_E_TIME_SKEW = cast(HRESULT)0x80090324L } - -enum : HRESULT { SEC_E_UNTRUSTED_ROOT = cast(HRESULT)0x80090325L } - -enum : HRESULT { SEC_E_ILLEGAL_MESSAGE = cast(HRESULT)0x80090326L } - -enum : HRESULT { SEC_E_CERT_UNKNOWN = cast(HRESULT)0x80090327L } - -enum : HRESULT { SEC_E_CERT_EXPIRED = cast(HRESULT)0x80090328L } - -enum : HRESULT { SEC_E_ENCRYPT_FAILURE = cast(HRESULT)0x80090329L } - -enum : HRESULT { SEC_E_DECRYPT_FAILURE = cast(HRESULT)0x80090330L } - -enum : HRESULT { SEC_E_ALGORITHM_MISMATCH = cast(HRESULT)0x80090331L } - -enum : HRESULT { SEC_E_SECURITY_QOS_FAILED = cast(HRESULT)0x80090332L } - -enum : HRESULT { SEC_E_UNFINISHED_CONTEXT_DELETED = cast(HRESULT)0x80090333L } - -enum : HRESULT { SEC_E_NO_TGT_REPLY = cast(HRESULT)0x80090334L } - -enum : HRESULT { SEC_E_NO_IP_ADDRESSES = cast(HRESULT)0x80090335L } - -enum : HRESULT { SEC_E_WRONG_CREDENTIAL_HANDLE = cast(HRESULT)0x80090336L } - -enum : HRESULT { SEC_E_CRYPTO_SYSTEM_INVALID = cast(HRESULT)0x80090337L } - -enum : HRESULT { SEC_E_MAX_REFERRALS_EXCEEDED = cast(HRESULT)0x80090338L } - -enum : HRESULT { SEC_E_MUST_BE_KDC = cast(HRESULT)0x80090339L } - -enum : HRESULT { SEC_E_STRONG_CRYPTO_NOT_SUPPORTED = cast(HRESULT)0x8009033AL } - -enum : HRESULT { SEC_E_TOO_MANY_PRINCIPALS = cast(HRESULT)0x8009033BL } - -enum : HRESULT { SEC_E_NO_PA_DATA = cast(HRESULT)0x8009033CL } - -enum : HRESULT { SEC_E_PKINIT_NAME_MISMATCH = cast(HRESULT)0x8009033DL } - -enum : HRESULT { SEC_E_SMARTCARD_LOGON_REQUIRED = cast(HRESULT)0x8009033EL } - -enum : HRESULT { SEC_E_SHUTDOWN_IN_PROGRESS = cast(HRESULT)0x8009033FL } - -enum : HRESULT { SEC_E_KDC_INVALID_REQUEST = cast(HRESULT)0x80090340L } - -enum : HRESULT { SEC_E_KDC_UNABLE_TO_REFER = cast(HRESULT)0x80090341L } - -enum : HRESULT { SEC_E_KDC_UNKNOWN_ETYPE = cast(HRESULT)0x80090342L } - -enum : HRESULT { SEC_E_UNSUPPORTED_PREAUTH = cast(HRESULT)0x80090343L } - -enum : HRESULT { SEC_E_DELEGATION_REQUIRED = cast(HRESULT)0x80090345L } - -enum : HRESULT { SEC_E_BAD_BINDINGS = cast(HRESULT)0x80090346L } - -enum : HRESULT { SEC_E_MULTIPLE_ACCOUNTS = cast(HRESULT)0x80090347L } - -enum : HRESULT { SEC_E_NO_KERB_KEY = cast(HRESULT)0x80090348L } - -alias SEC_E_INTERNAL_ERROR SEC_E_NO_SPM; -alias SEC_E_UNSUPPORTED_FUNCTION SEC_E_NOT_SUPPORTED; - -enum : HRESULT { CRYPT_E_MSG_ERROR = cast(HRESULT)0x80091001L } - -enum : HRESULT { CRYPT_E_UNKNOWN_ALGO = cast(HRESULT)0x80091002L } - -enum : HRESULT { CRYPT_E_OID_FORMAT = cast(HRESULT)0x80091003L } - -enum : HRESULT { CRYPT_E_INVALID_MSG_TYPE = cast(HRESULT)0x80091004L } - -enum : HRESULT { CRYPT_E_UNEXPECTED_ENCODING = cast(HRESULT)0x80091005L } - -enum : HRESULT { CRYPT_E_AUTH_ATTR_MISSING = cast(HRESULT)0x80091006L } - -enum : HRESULT { CRYPT_E_HASH_VALUE = cast(HRESULT)0x80091007L } - -enum : HRESULT { CRYPT_E_INVALID_INDEX = cast(HRESULT)0x80091008L } - -enum : HRESULT { CRYPT_E_ALREADY_DECRYPTED = cast(HRESULT)0x80091009L } - -enum : HRESULT { CRYPT_E_NOT_DECRYPTED = cast(HRESULT)0x8009100AL } - -enum : HRESULT { CRYPT_E_RECIPIENT_NOT_FOUND = cast(HRESULT)0x8009100BL } - -enum : HRESULT { CRYPT_E_CONTROL_TYPE = cast(HRESULT)0x8009100CL } - -enum : HRESULT { CRYPT_E_ISSUER_SERIALNUMBER = cast(HRESULT)0x8009100DL } - -enum : HRESULT { CRYPT_E_SIGNER_NOT_FOUND = cast(HRESULT)0x8009100EL } - -enum : HRESULT { CRYPT_E_ATTRIBUTES_MISSING = cast(HRESULT)0x8009100FL } - -enum : HRESULT { CRYPT_E_STREAM_MSG_NOT_READY = cast(HRESULT)0x80091010L } - -enum : HRESULT { CRYPT_E_STREAM_INSUFFICIENT_DATA = cast(HRESULT)0x80091011L } - -enum : HRESULT { CRYPT_I_NEW_PROTECTION_REQUIRED = cast(HRESULT)0x00091012L } - -enum : HRESULT { CRYPT_E_BAD_LEN = cast(HRESULT)0x80092001L } - -enum : HRESULT { CRYPT_E_BAD_ENCODE = cast(HRESULT)0x80092002L } - -enum : HRESULT { CRYPT_E_FILE_ERROR = cast(HRESULT)0x80092003L } - -enum : HRESULT { CRYPT_E_NOT_FOUND = cast(HRESULT)0x80092004L } - -enum : HRESULT { CRYPT_E_EXISTS = cast(HRESULT)0x80092005L } - -enum : HRESULT { CRYPT_E_NO_PROVIDER = cast(HRESULT)0x80092006L } - -enum : HRESULT { CRYPT_E_SELF_SIGNED = cast(HRESULT)0x80092007L } - -enum : HRESULT { CRYPT_E_DELETED_PREV = cast(HRESULT)0x80092008L } - -enum : HRESULT { CRYPT_E_NO_MATCH = cast(HRESULT)0x80092009L } - -enum : HRESULT { CRYPT_E_UNEXPECTED_MSG_TYPE = cast(HRESULT)0x8009200AL } - -enum : HRESULT { CRYPT_E_NO_KEY_PROPERTY = cast(HRESULT)0x8009200BL } - -enum : HRESULT { CRYPT_E_NO_DECRYPT_CERT = cast(HRESULT)0x8009200CL } - -enum : HRESULT { CRYPT_E_BAD_MSG = cast(HRESULT)0x8009200DL } - -enum : HRESULT { CRYPT_E_NO_SIGNER = cast(HRESULT)0x8009200EL } - -enum : HRESULT { CRYPT_E_PENDING_CLOSE = cast(HRESULT)0x8009200FL } - -enum : HRESULT { CRYPT_E_REVOKED = cast(HRESULT)0x80092010L } - -enum : HRESULT { CRYPT_E_NO_REVOCATION_DLL = cast(HRESULT)0x80092011L } - -enum : HRESULT { CRYPT_E_NO_REVOCATION_CHECK = cast(HRESULT)0x80092012L } - -enum : HRESULT { CRYPT_E_REVOCATION_OFFLINE = cast(HRESULT)0x80092013L } - -enum : HRESULT { CRYPT_E_NOT_IN_REVOCATION_DATABASE = cast(HRESULT)0x80092014L } - -enum : HRESULT { CRYPT_E_INVALID_NUMERIC_STRING = cast(HRESULT)0x80092020L } - -enum : HRESULT { CRYPT_E_INVALID_PRINTABLE_STRING = cast(HRESULT)0x80092021L } - -enum : HRESULT { CRYPT_E_INVALID_IA5_STRING = cast(HRESULT)0x80092022L } - -enum : HRESULT { CRYPT_E_INVALID_X500_STRING = cast(HRESULT)0x80092023L } - -enum : HRESULT { CRYPT_E_NOT_CHAR_STRING = cast(HRESULT)0x80092024L } - -enum : HRESULT { CRYPT_E_FILERESIZED = cast(HRESULT)0x80092025L } - -enum : HRESULT { CRYPT_E_SECURITY_SETTINGS = cast(HRESULT)0x80092026L } - -enum : HRESULT { CRYPT_E_NO_VERIFY_USAGE_DLL = cast(HRESULT)0x80092027L } - -enum : HRESULT { CRYPT_E_NO_VERIFY_USAGE_CHECK = cast(HRESULT)0x80092028L } - -enum : HRESULT { CRYPT_E_VERIFY_USAGE_OFFLINE = cast(HRESULT)0x80092029L } - -enum : HRESULT { CRYPT_E_NOT_IN_CTL = cast(HRESULT)0x8009202AL } - -enum : HRESULT { CRYPT_E_NO_TRUSTED_SIGNER = cast(HRESULT)0x8009202BL } - -enum : HRESULT { CRYPT_E_MISSING_PUBKEY_PARA = cast(HRESULT)0x8009202CL } - -enum : HRESULT { CRYPT_E_OSS_ERROR = cast(HRESULT)0x80093000L } - -enum : HRESULT { OSS_MORE_BUF = cast(HRESULT)0x80093001L } - -enum : HRESULT { OSS_NEGATIVE_UINTEGER = cast(HRESULT)0x80093002L } - -enum : HRESULT { OSS_PDU_RANGE = cast(HRESULT)0x80093003L } - -enum : HRESULT { OSS_MORE_INPUT = cast(HRESULT)0x80093004L } - -enum : HRESULT { OSS_DATA_ERROR = cast(HRESULT)0x80093005L } - -enum : HRESULT { OSS_BAD_ARG = cast(HRESULT)0x80093006L } - -enum : HRESULT { OSS_BAD_VERSION = cast(HRESULT)0x80093007L } - -enum : HRESULT { OSS_OUT_MEMORY = cast(HRESULT)0x80093008L } - -enum : HRESULT { OSS_PDU_MISMATCH = cast(HRESULT)0x80093009L } - -enum : HRESULT { OSS_LIMITED = cast(HRESULT)0x8009300AL } - -enum : HRESULT { OSS_BAD_PTR = cast(HRESULT)0x8009300BL } - -enum : HRESULT { OSS_BAD_TIME = cast(HRESULT)0x8009300CL } - -enum : HRESULT { OSS_INDEFINITE_NOT_SUPPORTED = cast(HRESULT)0x8009300DL } - -enum : HRESULT { OSS_MEM_ERROR = cast(HRESULT)0x8009300EL } - -enum : HRESULT { OSS_BAD_TABLE = cast(HRESULT)0x8009300FL } - -enum : HRESULT { OSS_TOO_LONG = cast(HRESULT)0x80093010L } - -enum : HRESULT { OSS_CONSTRAINT_VIOLATED = cast(HRESULT)0x80093011L } - -enum : HRESULT { OSS_FATAL_ERROR = cast(HRESULT)0x80093012L } - -enum : HRESULT { OSS_ACCESS_SERIALIZATION_ERROR = cast(HRESULT)0x80093013L } - -enum : HRESULT { OSS_NULL_TBL = cast(HRESULT)0x80093014L } - -enum : HRESULT { OSS_NULL_FCN = cast(HRESULT)0x80093015L } - -enum : HRESULT { OSS_BAD_ENCRULES = cast(HRESULT)0x80093016L } - -enum : HRESULT { OSS_UNAVAIL_ENCRULES = cast(HRESULT)0x80093017L } - -enum : HRESULT { OSS_CANT_OPEN_TRACE_WINDOW = cast(HRESULT)0x80093018L } - -enum : HRESULT { OSS_UNIMPLEMENTED = cast(HRESULT)0x80093019L } - -enum : HRESULT { OSS_OID_DLL_NOT_LINKED = cast(HRESULT)0x8009301AL } - -enum : HRESULT { OSS_CANT_OPEN_TRACE_FILE = cast(HRESULT)0x8009301BL } - -enum : HRESULT { OSS_TRACE_FILE_ALREADY_OPEN = cast(HRESULT)0x8009301CL } - -enum : HRESULT { OSS_TABLE_MISMATCH = cast(HRESULT)0x8009301DL } - -enum : HRESULT { OSS_TYPE_NOT_SUPPORTED = cast(HRESULT)0x8009301EL } - -enum : HRESULT { OSS_REAL_DLL_NOT_LINKED = cast(HRESULT)0x8009301FL } - -enum : HRESULT { OSS_REAL_CODE_NOT_LINKED = cast(HRESULT)0x80093020L } - -enum : HRESULT { OSS_OUT_OF_RANGE = cast(HRESULT)0x80093021L } - -enum : HRESULT { OSS_COPIER_DLL_NOT_LINKED = cast(HRESULT)0x80093022L } - -enum : HRESULT { OSS_CONSTRAINT_DLL_NOT_LINKED = cast(HRESULT)0x80093023L } - -enum : HRESULT { OSS_COMPARATOR_DLL_NOT_LINKED = cast(HRESULT)0x80093024L } - -enum : HRESULT { OSS_COMPARATOR_CODE_NOT_LINKED = cast(HRESULT)0x80093025L } - -enum : HRESULT { OSS_MEM_MGR_DLL_NOT_LINKED = cast(HRESULT)0x80093026L } - -enum : HRESULT { OSS_PDV_DLL_NOT_LINKED = cast(HRESULT)0x80093027L } - -enum : HRESULT { OSS_PDV_CODE_NOT_LINKED = cast(HRESULT)0x80093028L } - -enum : HRESULT { OSS_API_DLL_NOT_LINKED = cast(HRESULT)0x80093029L } - -enum : HRESULT { OSS_BERDER_DLL_NOT_LINKED = cast(HRESULT)0x8009302AL } - -enum : HRESULT { OSS_PER_DLL_NOT_LINKED = cast(HRESULT)0x8009302BL } - -enum : HRESULT { OSS_OPEN_TYPE_ERROR = cast(HRESULT)0x8009302CL } - -enum : HRESULT { OSS_MUTEX_NOT_CREATED = cast(HRESULT)0x8009302DL } - -enum : HRESULT { OSS_CANT_CLOSE_TRACE_FILE = cast(HRESULT)0x8009302EL } - -enum : HRESULT { CRYPT_E_ASN1_ERROR = cast(HRESULT)0x80093100L } - -enum : HRESULT { CRYPT_E_ASN1_INTERNAL = cast(HRESULT)0x80093101L } - -enum : HRESULT { CRYPT_E_ASN1_EOD = cast(HRESULT)0x80093102L } - -enum : HRESULT { CRYPT_E_ASN1_CORRUPT = cast(HRESULT)0x80093103L } - -enum : HRESULT { CRYPT_E_ASN1_LARGE = cast(HRESULT)0x80093104L } - -enum : HRESULT { CRYPT_E_ASN1_CONSTRAINT = cast(HRESULT)0x80093105L } - -enum : HRESULT { CRYPT_E_ASN1_MEMORY = cast(HRESULT)0x80093106L } - -enum : HRESULT { CRYPT_E_ASN1_OVERFLOW = cast(HRESULT)0x80093107L } - -enum : HRESULT { CRYPT_E_ASN1_BADPDU = cast(HRESULT)0x80093108L } - -enum : HRESULT { CRYPT_E_ASN1_BADARGS = cast(HRESULT)0x80093109L } - -enum : HRESULT { CRYPT_E_ASN1_BADREAL = cast(HRESULT)0x8009310AL } - -enum : HRESULT { CRYPT_E_ASN1_BADTAG = cast(HRESULT)0x8009310BL } - -enum : HRESULT { CRYPT_E_ASN1_CHOICE = cast(HRESULT)0x8009310CL } - -enum : HRESULT { CRYPT_E_ASN1_RULE = cast(HRESULT)0x8009310DL } - -enum : HRESULT { CRYPT_E_ASN1_UTF8 = cast(HRESULT)0x8009310EL } - -enum : HRESULT { CRYPT_E_ASN1_PDU_TYPE = cast(HRESULT)0x80093133L } - -enum : HRESULT { CRYPT_E_ASN1_NYI = cast(HRESULT)0x80093134L } - -enum : HRESULT { CRYPT_E_ASN1_EXTENDED = cast(HRESULT)0x80093201L } - -enum : HRESULT { CRYPT_E_ASN1_NOEOD = cast(HRESULT)0x80093202L } - -enum : HRESULT { CERTSRV_E_BAD_REQUESTSUBJECT = cast(HRESULT)0x80094001L } - -enum : HRESULT { CERTSRV_E_NO_REQUEST = cast(HRESULT)0x80094002L } - -enum : HRESULT { CERTSRV_E_BAD_REQUESTSTATUS = cast(HRESULT)0x80094003L } - -enum : HRESULT { CERTSRV_E_PROPERTY_EMPTY = cast(HRESULT)0x80094004L } - -enum : HRESULT { CERTSRV_E_INVALID_CA_CERTIFICATE = cast(HRESULT)0x80094005L } - -enum : HRESULT { CERTSRV_E_SERVER_SUSPENDED = cast(HRESULT)0x80094006L } - -enum : HRESULT { CERTSRV_E_ENCODING_LENGTH = cast(HRESULT)0x80094007L } - -enum : HRESULT { CERTSRV_E_ROLECONFLICT = cast(HRESULT)0x80094008L } - -enum : HRESULT { CERTSRV_E_RESTRICTEDOFFICER = cast(HRESULT)0x80094009L } - -enum : HRESULT { CERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED = cast(HRESULT)0x8009400AL } - -enum : HRESULT { CERTSRV_E_NO_VALID_KRA = cast(HRESULT)0x8009400BL } - -enum : HRESULT { CERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL = cast(HRESULT)0x8009400CL } - -enum : HRESULT { CERTSRV_E_NO_CAADMIN_DEFINED = cast(HRESULT)0x8009400DL } - -enum : HRESULT { CERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE = cast(HRESULT)0x8009400EL } - -enum : HRESULT { CERTSRV_E_NO_DB_SESSIONS = cast(HRESULT)0x8009400FL } - -enum : HRESULT { CERTSRV_E_ALIGNMENT_FAULT = cast(HRESULT)0x80094010L } - -enum : HRESULT { CERTSRV_E_ENROLL_DENIED = cast(HRESULT)0x80094011L } - -enum : HRESULT { CERTSRV_E_TEMPLATE_DENIED = cast(HRESULT)0x80094012L } - -enum : HRESULT { CERTSRV_E_UNSUPPORTED_CERT_TYPE = cast(HRESULT)0x80094800L } - -enum : HRESULT { CERTSRV_E_NO_CERT_TYPE = cast(HRESULT)0x80094801L } - -enum : HRESULT { CERTSRV_E_TEMPLATE_CONFLICT = cast(HRESULT)0x80094802L } - -enum : HRESULT { CERTSRV_E_SUBJECT_ALT_NAME_REQUIRED = cast(HRESULT)0x80094803L } - -enum : HRESULT { CERTSRV_E_ARCHIVED_KEY_REQUIRED = cast(HRESULT)0x80094804L } - -enum : HRESULT { CERTSRV_E_SMIME_REQUIRED = cast(HRESULT)0x80094805L } - -enum : HRESULT { CERTSRV_E_BAD_RENEWAL_SUBJECT = cast(HRESULT)0x80094806L } - -enum : HRESULT { CERTSRV_E_BAD_TEMPLATE_VERSION = cast(HRESULT)0x80094807L } - -enum : HRESULT { CERTSRV_E_TEMPLATE_POLICY_REQUIRED = cast(HRESULT)0x80094808L } - -enum : HRESULT { CERTSRV_E_SIGNATURE_POLICY_REQUIRED = cast(HRESULT)0x80094809L } - -enum : HRESULT { CERTSRV_E_SIGNATURE_COUNT = cast(HRESULT)0x8009480AL } - -enum : HRESULT { CERTSRV_E_SIGNATURE_REJECTED = cast(HRESULT)0x8009480BL } - -enum : HRESULT { CERTSRV_E_ISSUANCE_POLICY_REQUIRED = cast(HRESULT)0x8009480CL } - -enum : HRESULT { CERTSRV_E_SUBJECT_UPN_REQUIRED = cast(HRESULT)0x8009480DL } - -enum : HRESULT { CERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED = cast(HRESULT)0x8009480EL } - -enum : HRESULT { CERTSRV_E_SUBJECT_DNS_REQUIRED = cast(HRESULT)0x8009480FL } - -enum : HRESULT { CERTSRV_E_ARCHIVED_KEY_UNEXPECTED = cast(HRESULT)0x80094810L } - -enum : HRESULT { CERTSRV_E_KEY_LENGTH = cast(HRESULT)0x80094811L } - -enum : HRESULT { XENROLL_E_KEY_NOT_EXPORTABLE = cast(HRESULT)0x80095000L } - -enum : HRESULT { XENROLL_E_CANNOT_ADD_ROOT_CERT = cast(HRESULT)0x80095001L } - -enum : HRESULT { XENROLL_E_RESPONSE_KA_HASH_NOT_FOUND = cast(HRESULT)0x80095002L } - -enum : HRESULT { XENROLL_E_RESPONSE_UNEXPECTED_KA_HASH = cast(HRESULT)0x80095003L } - -enum : HRESULT { XENROLL_E_RESPONSE_KA_HASH_MISMATCH = cast(HRESULT)0x80095004L } - -enum : HRESULT { XENROLL_E_KEYSPEC_SMIME_MISMATCH = cast(HRESULT)0x80095005L } - -enum : HRESULT { TRUST_E_SYSTEM_ERROR = cast(HRESULT)0x80096001L } - -enum : HRESULT { TRUST_E_NO_SIGNER_CERT = cast(HRESULT)0x80096002L } - -enum : HRESULT { TRUST_E_COUNTER_SIGNER = cast(HRESULT)0x80096003L } - -enum : HRESULT { TRUST_E_CERT_SIGNATURE = cast(HRESULT)0x80096004L } - -enum : HRESULT { TRUST_E_TIME_STAMP = cast(HRESULT)0x80096005L } - -enum : HRESULT { TRUST_E_BAD_DIGEST = cast(HRESULT)0x80096010L } - -enum : HRESULT { TRUST_E_BASIC_CONSTRAINTS = cast(HRESULT)0x80096019L } - -enum : HRESULT { TRUST_E_FINANCIAL_CRITERIA = cast(HRESULT)0x8009601EL } - -enum : HRESULT { MSSIPOTF_E_OUTOFMEMRANGE = cast(HRESULT)0x80097001L } - -enum : HRESULT { MSSIPOTF_E_CANTGETOBJECT = cast(HRESULT)0x80097002L } - -enum : HRESULT { MSSIPOTF_E_NOHEADTABLE = cast(HRESULT)0x80097003L } - -enum : HRESULT { MSSIPOTF_E_BAD_MAGICNUMBER = cast(HRESULT)0x80097004L } - -enum : HRESULT { MSSIPOTF_E_BAD_OFFSET_TABLE = cast(HRESULT)0x80097005L } - -enum : HRESULT { MSSIPOTF_E_TABLE_TAGORDER = cast(HRESULT)0x80097006L } - -enum : HRESULT { MSSIPOTF_E_TABLE_LONGWORD = cast(HRESULT)0x80097007L } - -enum : HRESULT { MSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT = cast(HRESULT)0x80097008L } - -enum : HRESULT { MSSIPOTF_E_TABLES_OVERLAP = cast(HRESULT)0x80097009L } - -enum : HRESULT { MSSIPOTF_E_TABLE_PADBYTES = cast(HRESULT)0x8009700AL } - -enum : HRESULT { MSSIPOTF_E_FILETOOSMALL = cast(HRESULT)0x8009700BL } - -enum : HRESULT { MSSIPOTF_E_TABLE_CHECKSUM = cast(HRESULT)0x8009700CL } - -enum : HRESULT { MSSIPOTF_E_FILE_CHECKSUM = cast(HRESULT)0x8009700DL } - -enum : HRESULT { MSSIPOTF_E_FAILED_POLICY = cast(HRESULT)0x80097010L } - -enum : HRESULT { MSSIPOTF_E_FAILED_HINTS_CHECK = cast(HRESULT)0x80097011L } - -enum : HRESULT { MSSIPOTF_E_NOT_OPENTYPE = cast(HRESULT)0x80097012L } - -enum : HRESULT { MSSIPOTF_E_FILE = cast(HRESULT)0x80097013L } - -enum : HRESULT { MSSIPOTF_E_CRYPT = cast(HRESULT)0x80097014L } - -enum : HRESULT { MSSIPOTF_E_BADVERSION = cast(HRESULT)0x80097015L } - -enum : HRESULT { MSSIPOTF_E_DSIG_STRUCTURE = cast(HRESULT)0x80097016L } - -enum : HRESULT { MSSIPOTF_E_PCONST_CHECK = cast(HRESULT)0x80097017L } - -enum : HRESULT { MSSIPOTF_E_STRUCTURE = cast(HRESULT)0x80097018L } - -enum : uint { NTE_OP_OK = 0 } - -enum : HRESULT { TRUST_E_PROVIDER_UNKNOWN = cast(HRESULT)0x800B0001L } - -enum : HRESULT { TRUST_E_ACTION_UNKNOWN = cast(HRESULT)0x800B0002L } - -enum : HRESULT { TRUST_E_SUBJECT_FORM_UNKNOWN = cast(HRESULT)0x800B0003L } - -enum : HRESULT { TRUST_E_SUBJECT_NOT_TRUSTED = cast(HRESULT)0x800B0004L } - -enum : HRESULT { DIGSIG_E_ENCODE = cast(HRESULT)0x800B0005L } - -enum : HRESULT { DIGSIG_E_DECODE = cast(HRESULT)0x800B0006L } - -enum : HRESULT { DIGSIG_E_EXTENSIBILITY = cast(HRESULT)0x800B0007L } - -enum : HRESULT { DIGSIG_E_CRYPTO = cast(HRESULT)0x800B0008L } - -enum : HRESULT { PERSIST_E_SIZEDEFINITE = cast(HRESULT)0x800B0009L } - -enum : HRESULT { PERSIST_E_SIZEINDEFINITE = cast(HRESULT)0x800B000AL } - -enum : HRESULT { PERSIST_E_NOTSELFSIZING = cast(HRESULT)0x800B000BL } - -enum : HRESULT { TRUST_E_NOSIGNATURE = cast(HRESULT)0x800B0100L } - -enum : HRESULT { CERT_E_EXPIRED = cast(HRESULT)0x800B0101L } - -enum : HRESULT { CERT_E_VALIDITYPERIODNESTING = cast(HRESULT)0x800B0102L } - -enum : HRESULT { CERT_E_ROLE = cast(HRESULT)0x800B0103L } - -enum : HRESULT { CERT_E_PATHLENCONST = cast(HRESULT)0x800B0104L } - -enum : HRESULT { CERT_E_CRITICAL = cast(HRESULT)0x800B0105L } - -enum : HRESULT { CERT_E_PURPOSE = cast(HRESULT)0x800B0106L } - -enum : HRESULT { CERT_E_ISSUERCHAINING = cast(HRESULT)0x800B0107L } - -enum : HRESULT { CERT_E_MALFORMED = cast(HRESULT)0x800B0108L } - -enum : HRESULT { CERT_E_UNTRUSTEDROOT = cast(HRESULT)0x800B0109L } - -enum : HRESULT { CERT_E_CHAINING = cast(HRESULT)0x800B010AL } - -enum : HRESULT { TRUST_E_FAIL = cast(HRESULT)0x800B010BL } - -enum : HRESULT { CERT_E_REVOKED = cast(HRESULT)0x800B010CL } - -enum : HRESULT { CERT_E_UNTRUSTEDTESTROOT = cast(HRESULT)0x800B010DL } - -enum : HRESULT { CERT_E_REVOCATION_FAILURE = cast(HRESULT)0x800B010EL } - -enum : HRESULT { CERT_E_CN_NO_MATCH = cast(HRESULT)0x800B010FL } - -enum : HRESULT { CERT_E_WRONG_USAGE = cast(HRESULT)0x800B0110L } - -enum : HRESULT { TRUST_E_EXPLICIT_DISTRUST = cast(HRESULT)0x800B0111L } - -enum : HRESULT { CERT_E_UNTRUSTEDCA = cast(HRESULT)0x800B0112L } - -enum : HRESULT { CERT_E_INVALID_POLICY = cast(HRESULT)0x800B0113L } - -enum : HRESULT { CERT_E_INVALID_NAME = cast(HRESULT)0x800B0114L } - -// #define HRESULT_FROM_SETUPAPI(x) ((((x) & (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR)) == (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR)) ? ((HRESULT) (((x) & 0x0000FFFF) | (FACILITY_SETUPAPI << 16) | 0x80000000)) : HRESULT_FROM_WIN32(x)) - -enum : HRESULT { SPAPI_E_EXPECTED_SECTION_NAME = cast(HRESULT)0x800F0000L } - -enum : HRESULT { SPAPI_E_BAD_SECTION_NAME_LINE = cast(HRESULT)0x800F0001L } - -enum : HRESULT { SPAPI_E_SECTION_NAME_TOO_LONG = cast(HRESULT)0x800F0002L } - -enum : HRESULT { SPAPI_E_GENERAL_SYNTAX = cast(HRESULT)0x800F0003L } - -enum : HRESULT { SPAPI_E_WRONG_INF_STYLE = cast(HRESULT)0x800F0100L } - -enum : HRESULT { SPAPI_E_SECTION_NOT_FOUND = cast(HRESULT)0x800F0101L } - -enum : HRESULT { SPAPI_E_LINE_NOT_FOUND = cast(HRESULT)0x800F0102L } - -enum : HRESULT { SPAPI_E_NO_BACKUP = cast(HRESULT)0x800F0103L } - -enum : HRESULT { SPAPI_E_NO_ASSOCIATED_CLASS = cast(HRESULT)0x800F0200L } - -enum : HRESULT { SPAPI_E_CLASS_MISMATCH = cast(HRESULT)0x800F0201L } - -enum : HRESULT { SPAPI_E_DUPLICATE_FOUND = cast(HRESULT)0x800F0202L } - -enum : HRESULT { SPAPI_E_NO_DRIVER_SELECTED = cast(HRESULT)0x800F0203L } - -enum : HRESULT { SPAPI_E_KEY_DOES_NOT_EXIST = cast(HRESULT)0x800F0204L } - -enum : HRESULT { SPAPI_E_INVALID_DEVINST_NAME = cast(HRESULT)0x800F0205L } - -enum : HRESULT { SPAPI_E_INVALID_CLASS = cast(HRESULT)0x800F0206L } - -enum : HRESULT { SPAPI_E_DEVINST_ALREADY_EXISTS = cast(HRESULT)0x800F0207L } - -enum : HRESULT { SPAPI_E_DEVINFO_NOT_REGISTERED = cast(HRESULT)0x800F0208L } - -enum : HRESULT { SPAPI_E_INVALID_REG_PROPERTY = cast(HRESULT)0x800F0209L } - -enum : HRESULT { SPAPI_E_NO_INF = cast(HRESULT)0x800F020AL } - -enum : HRESULT { SPAPI_E_NO_SUCH_DEVINST = cast(HRESULT)0x800F020BL } - -enum : HRESULT { SPAPI_E_CANT_LOAD_CLASS_ICON = cast(HRESULT)0x800F020CL } - -enum : HRESULT { SPAPI_E_INVALID_CLASS_INSTALLER = cast(HRESULT)0x800F020DL } - -enum : HRESULT { SPAPI_E_DI_DO_DEFAULT = cast(HRESULT)0x800F020EL } - -enum : HRESULT { SPAPI_E_DI_NOFILECOPY = cast(HRESULT)0x800F020FL } - -enum : HRESULT { SPAPI_E_INVALID_HWPROFILE = cast(HRESULT)0x800F0210L } - -enum : HRESULT { SPAPI_E_NO_DEVICE_SELECTED = cast(HRESULT)0x800F0211L } - -enum : HRESULT { SPAPI_E_DEVINFO_LIST_LOCKED = cast(HRESULT)0x800F0212L } - -enum : HRESULT { SPAPI_E_DEVINFO_DATA_LOCKED = cast(HRESULT)0x800F0213L } - -enum : HRESULT { SPAPI_E_DI_BAD_PATH = cast(HRESULT)0x800F0214L } - -enum : HRESULT { SPAPI_E_NO_CLASSINSTALL_PARAMS = cast(HRESULT)0x800F0215L } - -enum : HRESULT { SPAPI_E_FILEQUEUE_LOCKED = cast(HRESULT)0x800F0216L } - -enum : HRESULT { SPAPI_E_BAD_SERVICE_INSTALLSECT = cast(HRESULT)0x800F0217L } - -enum : HRESULT { SPAPI_E_NO_CLASS_DRIVER_LIST = cast(HRESULT)0x800F0218L } - -enum : HRESULT { SPAPI_E_NO_ASSOCIATED_SERVICE = cast(HRESULT)0x800F0219L } - -enum : HRESULT { SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE = cast(HRESULT)0x800F021AL } - -enum : HRESULT { SPAPI_E_DEVICE_INTERFACE_ACTIVE = cast(HRESULT)0x800F021BL } - -enum : HRESULT { SPAPI_E_DEVICE_INTERFACE_REMOVED = cast(HRESULT)0x800F021CL } - -enum : HRESULT { SPAPI_E_BAD_INTERFACE_INSTALLSECT = cast(HRESULT)0x800F021DL } - -enum : HRESULT { SPAPI_E_NO_SUCH_INTERFACE_CLASS = cast(HRESULT)0x800F021EL } - -enum : HRESULT { SPAPI_E_INVALID_REFERENCE_STRING = cast(HRESULT)0x800F021FL } - -enum : HRESULT { SPAPI_E_INVALID_MACHINENAME = cast(HRESULT)0x800F0220L } - -enum : HRESULT { SPAPI_E_REMOTE_COMM_FAILURE = cast(HRESULT)0x800F0221L } - -enum : HRESULT { SPAPI_E_MACHINE_UNAVAILABLE = cast(HRESULT)0x800F0222L } - -enum : HRESULT { SPAPI_E_NO_CONFIGMGR_SERVICES = cast(HRESULT)0x800F0223L } - -enum : HRESULT { SPAPI_E_INVALID_PROPPAGE_PROVIDER = cast(HRESULT)0x800F0224L } - -enum : HRESULT { SPAPI_E_NO_SUCH_DEVICE_INTERFACE = cast(HRESULT)0x800F0225L } - -enum : HRESULT { SPAPI_E_DI_POSTPROCESSING_REQUIRED = cast(HRESULT)0x800F0226L } - -enum : HRESULT { SPAPI_E_INVALID_COINSTALLER = cast(HRESULT)0x800F0227L } - -enum : HRESULT { SPAPI_E_NO_COMPAT_DRIVERS = cast(HRESULT)0x800F0228L } - -enum : HRESULT { SPAPI_E_NO_DEVICE_ICON = cast(HRESULT)0x800F0229L } - -enum : HRESULT { SPAPI_E_INVALID_INF_LOGCONFIG = cast(HRESULT)0x800F022AL } - -enum : HRESULT { SPAPI_E_DI_DONT_INSTALL = cast(HRESULT)0x800F022BL } - -enum : HRESULT { SPAPI_E_INVALID_FILTER_DRIVER = cast(HRESULT)0x800F022CL } - -enum : HRESULT { SPAPI_E_NON_WINDOWS_NT_DRIVER = cast(HRESULT)0x800F022DL } - -enum : HRESULT { SPAPI_E_NON_WINDOWS_DRIVER = cast(HRESULT)0x800F022EL } - -enum : HRESULT { SPAPI_E_NO_CATALOG_FOR_OEM_INF = cast(HRESULT)0x800F022FL } - -enum : HRESULT { SPAPI_E_DEVINSTALL_QUEUE_NONNATIVE = cast(HRESULT)0x800F0230L } - -enum : HRESULT { SPAPI_E_NOT_DISABLEABLE = cast(HRESULT)0x800F0231L } - -enum : HRESULT { SPAPI_E_CANT_REMOVE_DEVINST = cast(HRESULT)0x800F0232L } - -enum : HRESULT { SPAPI_E_INVALID_TARGET = cast(HRESULT)0x800F0233L } - -enum : HRESULT { SPAPI_E_DRIVER_NONNATIVE = cast(HRESULT)0x800F0234L } - -enum : HRESULT { SPAPI_E_IN_WOW64 = cast(HRESULT)0x800F0235L } - -enum : HRESULT { SPAPI_E_SET_SYSTEM_RESTORE_POINT = cast(HRESULT)0x800F0236L } - -enum : HRESULT { SPAPI_E_INCORRECTLY_COPIED_INF = cast(HRESULT)0x800F0237L } - -enum : HRESULT { SPAPI_E_SCE_DISABLED = cast(HRESULT)0x800F0238L } - -enum : HRESULT { SPAPI_E_ERROR_NOT_INSTALLED = cast(HRESULT)0x800F1000L } - -alias NO_ERROR SCARD_S_SUCCESS; - -enum : HRESULT { SCARD_F_INTERNAL_ERROR = cast(HRESULT)0x80100001L } - -enum : HRESULT { SCARD_E_CANCELLED = cast(HRESULT)0x80100002L } - -enum : HRESULT { SCARD_E_INVALID_HANDLE = cast(HRESULT)0x80100003L } - -enum : HRESULT { SCARD_E_INVALID_PARAMETER = cast(HRESULT)0x80100004L } - -enum : HRESULT { SCARD_E_INVALID_TARGET = cast(HRESULT)0x80100005L } - -enum : HRESULT { SCARD_E_NO_MEMORY = cast(HRESULT)0x80100006L } - -enum : HRESULT { SCARD_F_WAITED_TOO_LONG = cast(HRESULT)0x80100007L } - -enum : HRESULT { SCARD_E_INSUFFICIENT_BUFFER = cast(HRESULT)0x80100008L } - -enum : HRESULT { SCARD_E_UNKNOWN_READER = cast(HRESULT)0x80100009L } - -enum : HRESULT { SCARD_E_TIMEOUT = cast(HRESULT)0x8010000AL } - -enum : HRESULT { SCARD_E_SHARING_VIOLATION = cast(HRESULT)0x8010000BL } - -enum : HRESULT { SCARD_E_NO_SMARTCARD = cast(HRESULT)0x8010000CL } - -enum : HRESULT { SCARD_E_UNKNOWN_CARD = cast(HRESULT)0x8010000DL } - -enum : HRESULT { SCARD_E_CANT_DISPOSE = cast(HRESULT)0x8010000EL } - -enum : HRESULT { SCARD_E_PROTO_MISMATCH = cast(HRESULT)0x8010000FL } - -enum : HRESULT { SCARD_E_NOT_READY = cast(HRESULT)0x80100010L } - -enum : HRESULT { SCARD_E_INVALID_VALUE = cast(HRESULT)0x80100011L } - -enum : HRESULT { SCARD_E_SYSTEM_CANCELLED = cast(HRESULT)0x80100012L } - -enum : HRESULT { SCARD_F_COMM_ERROR = cast(HRESULT)0x80100013L } - -enum : HRESULT { SCARD_F_UNKNOWN_ERROR = cast(HRESULT)0x80100014L } - -enum : HRESULT { SCARD_E_INVALID_ATR = cast(HRESULT)0x80100015L } - -enum : HRESULT { SCARD_E_NOT_TRANSACTED = cast(HRESULT)0x80100016L } - -enum : HRESULT { SCARD_E_READER_UNAVAILABLE = cast(HRESULT)0x80100017L } - -enum : HRESULT { SCARD_P_SHUTDOWN = cast(HRESULT)0x80100018L } - -enum : HRESULT { SCARD_E_PCI_TOO_SMALL = cast(HRESULT)0x80100019L } - -enum : HRESULT { SCARD_E_READER_UNSUPPORTED = cast(HRESULT)0x8010001AL } - -enum : HRESULT { SCARD_E_DUPLICATE_READER = cast(HRESULT)0x8010001BL } - -enum : HRESULT { SCARD_E_CARD_UNSUPPORTED = cast(HRESULT)0x8010001CL } - -enum : HRESULT { SCARD_E_NO_SERVICE = cast(HRESULT)0x8010001DL } - -enum : HRESULT { SCARD_E_SERVICE_STOPPED = cast(HRESULT)0x8010001EL } - -enum : HRESULT { SCARD_E_UNEXPECTED = cast(HRESULT)0x8010001FL } - -enum : HRESULT { SCARD_E_ICC_INSTALLATION = cast(HRESULT)0x80100020L } - -enum : HRESULT { SCARD_E_ICC_CREATEORDER = cast(HRESULT)0x80100021L } - -enum : HRESULT { SCARD_E_UNSUPPORTED_FEATURE = cast(HRESULT)0x80100022L } - -enum : HRESULT { SCARD_E_DIR_NOT_FOUND = cast(HRESULT)0x80100023L } - -enum : HRESULT { SCARD_E_FILE_NOT_FOUND = cast(HRESULT)0x80100024L } - -enum : HRESULT { SCARD_E_NO_DIR = cast(HRESULT)0x80100025L } - -enum : HRESULT { SCARD_E_NO_FILE = cast(HRESULT)0x80100026L } - -enum : HRESULT { SCARD_E_NO_ACCESS = cast(HRESULT)0x80100027L } - -enum : HRESULT { SCARD_E_WRITE_TOO_MANY = cast(HRESULT)0x80100028L } - -enum : HRESULT { SCARD_E_BAD_SEEK = cast(HRESULT)0x80100029L } - -enum : HRESULT { SCARD_E_INVALID_CHV = cast(HRESULT)0x8010002AL } - -enum : HRESULT { SCARD_E_UNKNOWN_RES_MNG = cast(HRESULT)0x8010002BL } - -enum : HRESULT { SCARD_E_NO_SUCH_CERTIFICATE = cast(HRESULT)0x8010002CL } - -enum : HRESULT { SCARD_E_CERTIFICATE_UNAVAILABLE = cast(HRESULT)0x8010002DL } - -enum : HRESULT { SCARD_E_NO_READERS_AVAILABLE = cast(HRESULT)0x8010002EL } - -enum : HRESULT { SCARD_E_COMM_DATA_LOST = cast(HRESULT)0x8010002FL } - -enum : HRESULT { SCARD_E_NO_KEY_CONTAINER = cast(HRESULT)0x80100030L } - -enum : HRESULT { SCARD_W_UNSUPPORTED_CARD = cast(HRESULT)0x80100065L } - -enum : HRESULT { SCARD_W_UNRESPONSIVE_CARD = cast(HRESULT)0x80100066L } - -enum : HRESULT { SCARD_W_UNPOWERED_CARD = cast(HRESULT)0x80100067L } - -enum : HRESULT { SCARD_W_RESET_CARD = cast(HRESULT)0x80100068L } - -enum : HRESULT { SCARD_W_REMOVED_CARD = cast(HRESULT)0x80100069L } - -enum : HRESULT { SCARD_W_SECURITY_VIOLATION = cast(HRESULT)0x8010006AL } - -enum : HRESULT { SCARD_W_WRONG_CHV = cast(HRESULT)0x8010006BL } - -enum : HRESULT { SCARD_W_CHV_BLOCKED = cast(HRESULT)0x8010006CL } - -enum : HRESULT { SCARD_W_EOF = cast(HRESULT)0x8010006DL } - -enum : HRESULT { SCARD_W_CANCELLED_BY_USER = cast(HRESULT)0x8010006EL } - -enum : HRESULT { SCARD_W_CARD_NOT_AUTHENTICATED = cast(HRESULT)0x8010006FL } - -enum : HRESULT { COMADMIN_E_OBJECTERRORS = cast(HRESULT)0x80110401L } - -enum : HRESULT { COMADMIN_E_OBJECTINVALID = cast(HRESULT)0x80110402L } - -enum : HRESULT { COMADMIN_E_KEYMISSING = cast(HRESULT)0x80110403L } - -enum : HRESULT { COMADMIN_E_ALREADYINSTALLED = cast(HRESULT)0x80110404L } - -enum : HRESULT { COMADMIN_E_APP_FILE_WRITEFAIL = cast(HRESULT)0x80110407L } - -enum : HRESULT { COMADMIN_E_APP_FILE_READFAIL = cast(HRESULT)0x80110408L } - -enum : HRESULT { COMADMIN_E_APP_FILE_VERSION = cast(HRESULT)0x80110409L } - -enum : HRESULT { COMADMIN_E_BADPATH = cast(HRESULT)0x8011040AL } - -enum : HRESULT { COMADMIN_E_APPLICATIONEXISTS = cast(HRESULT)0x8011040BL } - -enum : HRESULT { COMADMIN_E_ROLEEXISTS = cast(HRESULT)0x8011040CL } - -enum : HRESULT { COMADMIN_E_CANTCOPYFILE = cast(HRESULT)0x8011040DL } - -enum : HRESULT { COMADMIN_E_NOUSER = cast(HRESULT)0x8011040FL } - -enum : HRESULT { COMADMIN_E_INVALIDUSERIDS = cast(HRESULT)0x80110410L } - -enum : HRESULT { COMADMIN_E_NOREGISTRYCLSID = cast(HRESULT)0x80110411L } - -enum : HRESULT { COMADMIN_E_BADREGISTRYPROGID = cast(HRESULT)0x80110412L } - -enum : HRESULT { COMADMIN_E_AUTHENTICATIONLEVEL = cast(HRESULT)0x80110413L } - -enum : HRESULT { COMADMIN_E_USERPASSWDNOTVALID = cast(HRESULT)0x80110414L } - -enum : HRESULT { COMADMIN_E_CLSIDORIIDMISMATCH = cast(HRESULT)0x80110418L } - -enum : HRESULT { COMADMIN_E_REMOTEINTERFACE = cast(HRESULT)0x80110419L } - -enum : HRESULT { COMADMIN_E_DLLREGISTERSERVER = cast(HRESULT)0x8011041AL } - -enum : HRESULT { COMADMIN_E_NOSERVERSHARE = cast(HRESULT)0x8011041BL } - -enum : HRESULT { COMADMIN_E_DLLLOADFAILED = cast(HRESULT)0x8011041DL } - -enum : HRESULT { COMADMIN_E_BADREGISTRYLIBID = cast(HRESULT)0x8011041EL } - -enum : HRESULT { COMADMIN_E_APPDIRNOTFOUND = cast(HRESULT)0x8011041FL } - -enum : HRESULT { COMADMIN_E_REGISTRARFAILED = cast(HRESULT)0x80110423L } - -enum : HRESULT { COMADMIN_E_COMPFILE_DOESNOTEXIST = cast(HRESULT)0x80110424L } - -enum : HRESULT { COMADMIN_E_COMPFILE_LOADDLLFAIL = cast(HRESULT)0x80110425L } - -enum : HRESULT { COMADMIN_E_COMPFILE_GETCLASSOBJ = cast(HRESULT)0x80110426L } - -enum : HRESULT { COMADMIN_E_COMPFILE_CLASSNOTAVAIL = cast(HRESULT)0x80110427L } - -enum : HRESULT { COMADMIN_E_COMPFILE_BADTLB = cast(HRESULT)0x80110428L } - -enum : HRESULT { COMADMIN_E_COMPFILE_NOTINSTALLABLE = cast(HRESULT)0x80110429L } - -enum : HRESULT { COMADMIN_E_NOTCHANGEABLE = cast(HRESULT)0x8011042AL } - -enum : HRESULT { COMADMIN_E_NOTDELETEABLE = cast(HRESULT)0x8011042BL } - -enum : HRESULT { COMADMIN_E_SESSION = cast(HRESULT)0x8011042CL } - -enum : HRESULT { COMADMIN_E_COMP_MOVE_LOCKED = cast(HRESULT)0x8011042DL } - -enum : HRESULT { COMADMIN_E_COMP_MOVE_BAD_DEST = cast(HRESULT)0x8011042EL } - -enum : HRESULT { COMADMIN_E_REGISTERTLB = cast(HRESULT)0x80110430L } - -enum : HRESULT { COMADMIN_E_SYSTEMAPP = cast(HRESULT)0x80110433L } - -enum : HRESULT { COMADMIN_E_COMPFILE_NOREGISTRAR = cast(HRESULT)0x80110434L } - -enum : HRESULT { COMADMIN_E_COREQCOMPINSTALLED = cast(HRESULT)0x80110435L } - -enum : HRESULT { COMADMIN_E_SERVICENOTINSTALLED = cast(HRESULT)0x80110436L } - -enum : HRESULT { COMADMIN_E_PROPERTYSAVEFAILED = cast(HRESULT)0x80110437L } - -enum : HRESULT { COMADMIN_E_OBJECTEXISTS = cast(HRESULT)0x80110438L } - -enum : HRESULT { COMADMIN_E_COMPONENTEXISTS = cast(HRESULT)0x80110439L } - -enum : HRESULT { COMADMIN_E_REGFILE_CORRUPT = cast(HRESULT)0x8011043BL } - -enum : HRESULT { COMADMIN_E_PROPERTY_OVERFLOW = cast(HRESULT)0x8011043CL } - -enum : HRESULT { COMADMIN_E_NOTINREGISTRY = cast(HRESULT)0x8011043EL } - -enum : HRESULT { COMADMIN_E_OBJECTNOTPOOLABLE = cast(HRESULT)0x8011043FL } - -enum : HRESULT { COMADMIN_E_APPLID_MATCHES_CLSID = cast(HRESULT)0x80110446L } - -enum : HRESULT { COMADMIN_E_ROLE_DOES_NOT_EXIST = cast(HRESULT)0x80110447L } - -enum : HRESULT { COMADMIN_E_START_APP_NEEDS_COMPONENTS = cast(HRESULT)0x80110448L } - -enum : HRESULT { COMADMIN_E_REQUIRES_DIFFERENT_PLATFORM = cast(HRESULT)0x80110449L } - -enum : HRESULT { COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY = cast(HRESULT)0x8011044AL } - -enum : HRESULT { COMADMIN_E_CAN_NOT_START_APP = cast(HRESULT)0x8011044BL } - -enum : HRESULT { COMADMIN_E_CAN_NOT_EXPORT_SYS_APP = cast(HRESULT)0x8011044CL } - -enum : HRESULT { COMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT = cast(HRESULT)0x8011044DL } - -enum : HRESULT { COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER = cast(HRESULT)0x8011044EL } - -enum : HRESULT { COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE = cast(HRESULT)0x8011044FL } - -enum : HRESULT { COMADMIN_E_BASE_PARTITION_ONLY = cast(HRESULT)0x80110450L } - -enum : HRESULT { COMADMIN_E_START_APP_DISABLED = cast(HRESULT)0x80110451L } - -enum : HRESULT { COMADMIN_E_CAT_DUPLICATE_PARTITION_NAME = cast(HRESULT)0x80110457L } - -enum : HRESULT { COMADMIN_E_CAT_INVALID_PARTITION_NAME = cast(HRESULT)0x80110458L } - -enum : HRESULT { COMADMIN_E_CAT_PARTITION_IN_USE = cast(HRESULT)0x80110459L } - -enum : HRESULT { COMADMIN_E_FILE_PARTITION_DUPLICATE_FILES = cast(HRESULT)0x8011045AL } - -enum : HRESULT { COMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED = cast(HRESULT)0x8011045BL } - -enum : HRESULT { COMADMIN_E_AMBIGUOUS_APPLICATION_NAME = cast(HRESULT)0x8011045CL } - -enum : HRESULT { COMADMIN_E_AMBIGUOUS_PARTITION_NAME = cast(HRESULT)0x8011045DL } - -enum : HRESULT { COMADMIN_E_REGDB_NOTINITIALIZED = cast(HRESULT)0x80110472L } - -enum : HRESULT { COMADMIN_E_REGDB_NOTOPEN = cast(HRESULT)0x80110473L } - -enum : HRESULT { COMADMIN_E_REGDB_SYSTEMERR = cast(HRESULT)0x80110474L } - -enum : HRESULT { COMADMIN_E_REGDB_ALREADYRUNNING = cast(HRESULT)0x80110475L } - -enum : HRESULT { COMADMIN_E_MIG_VERSIONNOTSUPPORTED = cast(HRESULT)0x80110480L } - -enum : HRESULT { COMADMIN_E_MIG_SCHEMANOTFOUND = cast(HRESULT)0x80110481L } - -enum : HRESULT { COMADMIN_E_CAT_BITNESSMISMATCH = cast(HRESULT)0x80110482L } - -enum : HRESULT { COMADMIN_E_CAT_UNACCEPTABLEBITNESS = cast(HRESULT)0x80110483L } - -enum : HRESULT { COMADMIN_E_CAT_WRONGAPPBITNESS = cast(HRESULT)0x80110484L } - -enum : HRESULT { COMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED = cast(HRESULT)0x80110485L } - -enum : HRESULT { COMADMIN_E_CAT_SERVERFAULT = cast(HRESULT)0x80110486L } - -enum : HRESULT { COMQC_E_APPLICATION_NOT_QUEUED = cast(HRESULT)0x80110600L } - -enum : HRESULT { COMQC_E_NO_QUEUEABLE_INTERFACES = cast(HRESULT)0x80110601L } - -enum : HRESULT { COMQC_E_QUEUING_SERVICE_NOT_AVAILABLE = cast(HRESULT)0x80110602L } - -enum : HRESULT { COMQC_E_NO_IPERSISTSTREAM = cast(HRESULT)0x80110603L } - -enum : HRESULT { COMQC_E_BAD_MESSAGE = cast(HRESULT)0x80110604L } - -enum : HRESULT { COMQC_E_UNAUTHENTICATED = cast(HRESULT)0x80110605L } - -enum : HRESULT { COMQC_E_UNTRUSTED_ENQUEUER = cast(HRESULT)0x80110606L } - -enum : HRESULT { MSDTC_E_DUPLICATE_RESOURCE = cast(HRESULT)0x80110701L } - -enum : HRESULT { COMADMIN_E_OBJECT_PARENT_MISSING = cast(HRESULT)0x80110808L } - -enum : HRESULT { COMADMIN_E_OBJECT_DOES_NOT_EXIST = cast(HRESULT)0x80110809L } - -enum : HRESULT { COMADMIN_E_APP_NOT_RUNNING = cast(HRESULT)0x8011080AL } - -enum : HRESULT { COMADMIN_E_INVALID_PARTITION = cast(HRESULT)0x8011080BL } - -enum : HRESULT { COMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE = cast(HRESULT)0x8011080DL } - -enum : HRESULT { COMADMIN_E_USER_IN_SET = cast(HRESULT)0x8011080EL } - -enum : HRESULT { COMADMIN_E_CANTRECYCLELIBRARYAPPS = cast(HRESULT)0x8011080FL } - -enum : HRESULT { COMADMIN_E_CANTRECYCLESERVICEAPPS = cast(HRESULT)0x80110811L } - -enum : HRESULT { COMADMIN_E_PROCESSALREADYRECYCLED = cast(HRESULT)0x80110812L } - -enum : HRESULT { COMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED = cast(HRESULT)0x80110813L } - -enum : HRESULT { COMADMIN_E_CANTMAKEINPROCSERVICE = cast(HRESULT)0x80110814L } - -enum : HRESULT { COMADMIN_E_PROGIDINUSEBYCLSID = cast(HRESULT)0x80110815L } - -enum : HRESULT { COMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET = cast(HRESULT)0x80110816L } - -enum : HRESULT { COMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED = cast(HRESULT)0x80110817L } - -enum : HRESULT { COMADMIN_E_PARTITION_ACCESSDENIED = cast(HRESULT)0x80110818L } - -enum : HRESULT { COMADMIN_E_PARTITION_MSI_ONLY = cast(HRESULT)0x80110819L } - -enum : HRESULT { COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT = cast(HRESULT)0x8011081AL } - -enum : HRESULT { COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS = cast(HRESULT)0x8011081BL } - -enum : HRESULT { COMADMIN_E_COMP_MOVE_SOURCE = cast(HRESULT)0x8011081CL } - -enum : HRESULT { COMADMIN_E_COMP_MOVE_DEST = cast(HRESULT)0x8011081DL } - -enum : HRESULT { COMADMIN_E_COMP_MOVE_PRIVATE = cast(HRESULT)0x8011081EL } - -enum : HRESULT { COMADMIN_E_BASEPARTITION_REQUIRED_IN_SET = cast(HRESULT)0x8011081FL } - -enum : HRESULT { COMADMIN_E_CANNOT_ALIAS_EVENTCLASS = cast(HRESULT)0x80110820L } - -enum : HRESULT { COMADMIN_E_PRIVATE_ACCESSDENIED = cast(HRESULT)0x80110821L } - -enum : HRESULT { COMADMIN_E_SAFERINVALID = cast(HRESULT)0x80110822L } - -enum : HRESULT { COMADMIN_E_REGISTRY_ACCESSDENIED = cast(HRESULT)0x80110823L } - -enum : HRESULT { COMADMIN_E_CAT_DUPLICATE_PARTITION_SET_NAME = cast(HRESULT)0x80110900L } - -enum : HRESULT { COMADMIN_E_CAT_INVALID_PARTITION_SET_NAME = cast(HRESULT)0x80110901L } - -// #endif//_WINERROR_ DELETED src/win32/ansi/wingdi.d Index: src/win32/ansi/wingdi.d ================================================================== --- src/win32/ansi/wingdi.d +++ src/win32/ansi/wingdi.d @@ -1,4997 +0,0 @@ -module win32.ansi.wingdi; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.windef; - -// #ifndef _WINGDI_ -// #define _WINGDI_ - -// #ifdef _MAC -// #... -// #endif - -// #if !defined(_GDI32_) -// #define WINGDIAPI DECLSPEC_IMPORT -// #else -// #... -// #endif - -// #if !defined(_SPOOL32_) -// #define WINSPOOLAPI DECLSPEC_IMPORT -// #else -// #... -// #endif - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #ifndef WINVER -// #... -// #endif /* WINVER */ - -// #ifndef NOGDI - -// #ifndef NORASTEROPS - -enum : uint { R2_BLACK = 1 } -enum : uint { R2_NOTMERGEPEN = 2 } -enum : uint { R2_MASKNOTPEN = 3 } -enum : uint { R2_NOTCOPYPEN = 4 } -enum : uint { R2_MASKPENNOT = 5 } -enum : uint { R2_NOT = 6 } -enum : uint { R2_XORPEN = 7 } -enum : uint { R2_NOTMASKPEN = 8 } -enum : uint { R2_MASKPEN = 9 } -enum : uint { R2_NOTXORPEN = 10 } -enum : uint { R2_NOP = 11 } -enum : uint { R2_MERGENOTPEN = 12 } -enum : uint { R2_COPYPEN = 13 } -enum : uint { R2_MERGEPENNOT = 14 } -enum : uint { R2_MERGEPEN = 15 } -enum : uint { R2_WHITE = 16 } -enum : uint { R2_LAST = 16 } - -enum : DWORD { SRCCOPY = 0x00CC0020 } -enum : DWORD { SRCPAINT = 0x00EE0086 } -enum : DWORD { SRCAND = 0x008800C6 } -enum : DWORD { SRCINVERT = 0x00660046 } -enum : DWORD { SRCERASE = 0x00440328 } -enum : DWORD { NOTSRCCOPY = 0x00330008 } -enum : DWORD { NOTSRCERASE = 0x001100A6 } -enum : DWORD { MERGECOPY = 0x00C000CA } -enum : DWORD { MERGEPAINT = 0x00BB0226 } -enum : DWORD { PATCOPY = 0x00F00021 } -enum : DWORD { PATPAINT = 0x00FB0A09 } -enum : DWORD { PATINVERT = 0x005A0049 } -enum : DWORD { DSTINVERT = 0x00550009 } -enum : DWORD { BLACKNESS = 0x00000042 } -enum : DWORD { WHITENESS = 0x00FF0062 } -// #if(WINVER >= 0x0500) - -enum : DWORD { NOMIRRORBITMAP = 0x80000000 } -enum : DWORD { CAPTUREBLT = 0x40000000 } -// #endif /* WINVER >= 0x0500 */ - -DWORD MAKEROP4(DWORD fore, DWORD back){ return ((back << 8) & 0xFF000000) | fore; } - -// #endif /* NORASTEROPS */ - -enum : uint { GDI_ERROR = 0xFFFFFFFF } -const HANDLE HGDI_ERROR = cast(HANDLE)(0xFFFFFFFFL); - -enum : uint { ERROR = 0 } -enum : uint { NULLREGION = 1 } -enum : uint { SIMPLEREGION = 2 } -enum : uint { COMPLEXREGION = 3 } -alias ERROR RGN_ERROR; - -enum : uint { RGN_AND = 1 } -enum : uint { RGN_OR = 2 } -enum : uint { RGN_XOR = 3 } -enum : uint { RGN_DIFF = 4 } -enum : uint { RGN_COPY = 5 } -alias RGN_AND RGN_MIN; -alias RGN_COPY RGN_MAX; - -enum : uint { BLACKONWHITE = 1 } -enum : uint { WHITEONBLACK = 2 } -enum : uint { COLORONCOLOR = 3 } -enum : uint { HALFTONE = 4 } -enum : uint { MAXSTRETCHBLTMODE = 4 } - -// #if(WINVER >= 0x0400) - -alias BLACKONWHITE STRETCH_ANDSCANS; -alias WHITEONBLACK STRETCH_ORSCANS; -alias COLORONCOLOR STRETCH_DELETESCANS; -alias HALFTONE STRETCH_HALFTONE; -// #endif /* WINVER >= 0x0400 */ - -enum : uint { ALTERNATE = 1 } -enum : uint { WINDING = 2 } -enum : uint { POLYFILL_LAST = 2 } - -// #if(WINVER >= 0x0500) -enum : uint { LAYOUT_RTL = 0x00000001 } -enum : uint { LAYOUT_BTT = 0x00000002 } -enum : uint { LAYOUT_VBH = 0x00000004 } -enum : uint { LAYOUT_ORIENTATIONMASK = LAYOUT_RTL | LAYOUT_BTT | LAYOUT_VBH } -enum : uint { LAYOUT_BITMAPORIENTATIONPRESERVED = 0x00000008 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { TA_NOUPDATECP = 0 } -enum : uint { TA_UPDATECP = 1 } - -enum : uint { TA_LEFT = 0 } -enum : uint { TA_RIGHT = 2 } -enum : uint { TA_CENTER = 6 } - -enum : uint { TA_TOP = 0 } -enum : uint { TA_BOTTOM = 8 } -enum : uint { TA_BASELINE = 24 } -// #if (WINVER >= 0x0400) -enum : uint { TA_RTLREADING = 256 } -enum : uint { TA_MASK = TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING } -// #else -// #... -// #endif - -alias TA_BASELINE VTA_BASELINE; -alias TA_BOTTOM VTA_LEFT; -alias TA_TOP VTA_RIGHT; -alias TA_CENTER VTA_CENTER; -alias TA_RIGHT VTA_BOTTOM; -alias TA_LEFT VTA_TOP; - -enum : uint { ETO_OPAQUE = 0x0002 } -enum : uint { ETO_CLIPPED = 0x0004 } -// #if(WINVER >= 0x0400) -enum : uint { ETO_GLYPH_INDEX = 0x0010 } -enum : uint { ETO_RTLREADING = 0x0080 } -enum : uint { ETO_NUMERICSLOCAL = 0x0400 } -enum : uint { ETO_NUMERICSLATIN = 0x0800 } -enum : uint { ETO_IGNORELANGUAGE = 0x1000 } -// #endif /* WINVER >= 0x0400 */ -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { ETO_PDY = 0x2000 } -// #endif // (_WIN32_WINNT >= 0x0500) - -enum : uint { ASPECT_FILTERING = 0x0001 } - -enum : uint { DCB_RESET = 0x0001 } -enum : uint { DCB_ACCUMULATE = 0x0002 } -alias DCB_ACCUMULATE DCB_DIRTY; -enum : uint { DCB_SET = DCB_RESET | DCB_ACCUMULATE } -enum : uint { DCB_ENABLE = 0x0004 } -enum : uint { DCB_DISABLE = 0x0008 } - -// #ifndef NOMETAFILE - -enum : uint { META_SETBKCOLOR = 0x0201 } -enum : uint { META_SETBKMODE = 0x0102 } -enum : uint { META_SETMAPMODE = 0x0103 } -enum : uint { META_SETROP2 = 0x0104 } -enum : uint { META_SETRELABS = 0x0105 } -enum : uint { META_SETPOLYFILLMODE = 0x0106 } -enum : uint { META_SETSTRETCHBLTMODE = 0x0107 } -enum : uint { META_SETTEXTCHAREXTRA = 0x0108 } -enum : uint { META_SETTEXTCOLOR = 0x0209 } -enum : uint { META_SETTEXTJUSTIFICATION = 0x020A } -enum : uint { META_SETWINDOWORG = 0x020B } -enum : uint { META_SETWINDOWEXT = 0x020C } -enum : uint { META_SETVIEWPORTORG = 0x020D } -enum : uint { META_SETVIEWPORTEXT = 0x020E } -enum : uint { META_OFFSETWINDOWORG = 0x020F } -enum : uint { META_SCALEWINDOWEXT = 0x0410 } -enum : uint { META_OFFSETVIEWPORTORG = 0x0211 } -enum : uint { META_SCALEVIEWPORTEXT = 0x0412 } -enum : uint { META_LINETO = 0x0213 } -enum : uint { META_MOVETO = 0x0214 } -enum : uint { META_EXCLUDECLIPRECT = 0x0415 } -enum : uint { META_INTERSECTCLIPRECT = 0x0416 } -enum : uint { META_ARC = 0x0817 } -enum : uint { META_ELLIPSE = 0x0418 } -enum : uint { META_FLOODFILL = 0x0419 } -enum : uint { META_PIE = 0x081A } -enum : uint { META_RECTANGLE = 0x041B } -enum : uint { META_ROUNDRECT = 0x061C } -enum : uint { META_PATBLT = 0x061D } -enum : uint { META_SAVEDC = 0x001E } -enum : uint { META_SETPIXEL = 0x041F } -enum : uint { META_OFFSETCLIPRGN = 0x0220 } -enum : uint { META_TEXTOUT = 0x0521 } -enum : uint { META_BITBLT = 0x0922 } -enum : uint { META_STRETCHBLT = 0x0B23 } -enum : uint { META_POLYGON = 0x0324 } -enum : uint { META_POLYLINE = 0x0325 } -enum : uint { META_ESCAPE = 0x0626 } -enum : uint { META_RESTOREDC = 0x0127 } -enum : uint { META_FILLREGION = 0x0228 } -enum : uint { META_FRAMEREGION = 0x0429 } -enum : uint { META_INVERTREGION = 0x012A } -enum : uint { META_PAINTREGION = 0x012B } -enum : uint { META_SELECTCLIPREGION = 0x012C } -enum : uint { META_SELECTOBJECT = 0x012D } -enum : uint { META_SETTEXTALIGN = 0x012E } -enum : uint { META_CHORD = 0x0830 } -enum : uint { META_SETMAPPERFLAGS = 0x0231 } -enum : uint { META_EXTTEXTOUT = 0x0a32 } -enum : uint { META_SETDIBTODEV = 0x0d33 } -enum : uint { META_SELECTPALETTE = 0x0234 } -enum : uint { META_REALIZEPALETTE = 0x0035 } -enum : uint { META_ANIMATEPALETTE = 0x0436 } -enum : uint { META_SETPALENTRIES = 0x0037 } -enum : uint { META_POLYPOLYGON = 0x0538 } -enum : uint { META_RESIZEPALETTE = 0x0139 } -enum : uint { META_DIBBITBLT = 0x0940 } -enum : uint { META_DIBSTRETCHBLT = 0x0b41 } -enum : uint { META_DIBCREATEPATTERNBRUSH = 0x0142 } -enum : uint { META_STRETCHDIB = 0x0f43 } -enum : uint { META_EXTFLOODFILL = 0x0548 } -// #if(WINVER >= 0x0500) -enum : uint { META_SETLAYOUT = 0x0149 } -// #endif /* WINVER >= 0x0500 */ -enum : uint { META_DELETEOBJECT = 0x01f0 } -enum : uint { META_CREATEPALETTE = 0x00f7 } -enum : uint { META_CREATEPATTERNBRUSH = 0x01F9 } -enum : uint { META_CREATEPENINDIRECT = 0x02FA } -enum : uint { META_CREATEFONTINDIRECT = 0x02FB } -enum : uint { META_CREATEBRUSHINDIRECT = 0x02FC } -enum : uint { META_CREATEREGION = 0x06FF } - -// #if(WINVER >= 0x0400) -struct _DRAWPATRECT { - POINT ptPosition; - POINT ptSize; - WORD wStyle; - WORD wPattern; -} -alias _DRAWPATRECT DRAWPATRECT; -alias _DRAWPATRECT* PDRAWPATRECT; - -// #endif /* WINVER >= 0x0400 */ - -// #endif /* NOMETAFILE */ - -enum : uint { NEWFRAME = 1 } -enum : uint { ABORTDOC = 2 } -enum : uint { NEXTBAND = 3 } -enum : uint { SETCOLORTABLE = 4 } -enum : uint { GETCOLORTABLE = 5 } -enum : uint { FLUSHOUTPUT = 6 } -enum : uint { DRAFTMODE = 7 } -enum : uint { QUERYESCSUPPORT = 8 } -enum : uint { SETABORTPROC = 9 } -enum : uint { STARTDOC = 10 } -enum : uint { ENDDOC = 11 } -enum : uint { GETPHYSPAGESIZE = 12 } -enum : uint { GETPRINTINGOFFSET = 13 } -enum : uint { GETSCALINGFACTOR = 14 } -enum : uint { MFCOMMENT = 15 } -enum : uint { GETPENWIDTH = 16 } -enum : uint { SETCOPYCOUNT = 17 } -enum : uint { SELECTPAPERSOURCE = 18 } -enum : uint { DEVICEDATA = 19 } -enum : uint { PASSTHROUGH = 19 } -enum : uint { GETTECHNOLGY = 20 } -enum : uint { GETTECHNOLOGY = 20 } -enum : uint { SETLINECAP = 21 } -enum : uint { SETLINEJOIN = 22 } -enum : uint { SETMITERLIMIT = 23 } -enum : uint { BANDINFO = 24 } -enum : uint { DRAWPATTERNRECT = 25 } -enum : uint { GETVECTORPENSIZE = 26 } -enum : uint { GETVECTORBRUSHSIZE = 27 } -enum : uint { ENABLEDUPLEX = 28 } -enum : uint { GETSETPAPERBINS = 29 } -enum : uint { GETSETPRINTORIENT = 30 } -enum : uint { ENUMPAPERBINS = 31 } -enum : uint { SETDIBSCALING = 32 } -enum : uint { EPSPRINTING = 33 } -enum : uint { ENUMPAPERMETRICS = 34 } -enum : uint { GETSETPAPERMETRICS = 35 } -enum : uint { POSTSCRIPT_DATA = 37 } -enum : uint { POSTSCRIPT_IGNORE = 38 } -enum : uint { MOUSETRAILS = 39 } -enum : uint { GETDEVICEUNITS = 42 } - -enum : uint { GETEXTENDEDTEXTMETRICS = 256 } -enum : uint { GETEXTENTTABLE = 257 } -enum : uint { GETPAIRKERNTABLE = 258 } -enum : uint { GETTRACKKERNTABLE = 259 } -enum : uint { EXTTEXTOUT = 512 } -enum : uint { GETFACENAME = 513 } -enum : uint { DOWNLOADFACE = 514 } -enum : uint { ENABLERELATIVEWIDTHS = 768 } -enum : uint { ENABLEPAIRKERNING = 769 } -enum : uint { SETKERNTRACK = 770 } -enum : uint { SETALLJUSTVALUES = 771 } -enum : uint { SETCHARSET = 772 } - -enum : uint { STRETCHBLT = 2048 } -enum : uint { METAFILE_DRIVER = 2049 } -enum : uint { GETSETSCREENPARAMS = 3072 } -enum : uint { QUERYDIBSUPPORT = 3073 } -enum : uint { BEGIN_PATH = 4096 } -enum : uint { CLIP_TO_PATH = 4097 } -enum : uint { END_PATH = 4098 } -enum : uint { EXT_DEVICE_CAPS = 4099 } -enum : uint { RESTORE_CTM = 4100 } -enum : uint { SAVE_CTM = 4101 } -enum : uint { SET_ARC_DIRECTION = 4102 } -enum : uint { SET_BACKGROUND_COLOR = 4103 } -enum : uint { SET_POLY_MODE = 4104 } -enum : uint { SET_SCREEN_ANGLE = 4105 } -enum : uint { SET_SPREAD = 4106 } -enum : uint { TRANSFORM_CTM = 4107 } -enum : uint { SET_CLIP_BOX = 4108 } -enum : uint { SET_BOUNDS = 4109 } -enum : uint { SET_MIRROR_MODE = 4110 } -enum : uint { OPENCHANNEL = 4110 } -enum : uint { DOWNLOADHEADER = 4111 } -enum : uint { CLOSECHANNEL = 4112 } -enum : uint { POSTSCRIPT_PASSTHROUGH = 4115 } -enum : uint { ENCAPSULATED_POSTSCRIPT = 4116 } - -enum : uint { POSTSCRIPT_IDENTIFY = 4117 } -enum : uint { POSTSCRIPT_INJECTION = 4118 } - -enum : uint { CHECKJPEGFORMAT = 4119 } -enum : uint { CHECKPNGFORMAT = 4120 } - -enum : uint { GET_PS_FEATURESETTING = 4121 } - -enum : uint { SPCLPASSTHROUGH2 = 4568 } - -enum : uint { PSIDENT_GDICENTRIC = 0 } -enum : uint { PSIDENT_PSCENTRIC = 1 } - -struct _PSINJECTDATA { - - DWORD DataBytes; - WORD InjectionPoint; - WORD PageNumber; - -} -alias _PSINJECTDATA PSINJECTDATA; -alias _PSINJECTDATA* PPSINJECTDATA; - -enum : uint { PSINJECT_BEGINSTREAM = 1 } -enum : uint { PSINJECT_PSADOBE = 2 } -enum : uint { PSINJECT_PAGESATEND = 3 } -enum : uint { PSINJECT_PAGES = 4 } - -enum : uint { PSINJECT_DOCNEEDEDRES = 5 } -enum : uint { PSINJECT_DOCSUPPLIEDRES = 6 } -enum : uint { PSINJECT_PAGEORDER = 7 } -enum : uint { PSINJECT_ORIENTATION = 8 } -enum : uint { PSINJECT_BOUNDINGBOX = 9 } -enum : uint { PSINJECT_DOCUMENTPROCESSCOLORS = 10 } - -enum : uint { PSINJECT_COMMENTS = 11 } -enum : uint { PSINJECT_BEGINDEFAULTS = 12 } -enum : uint { PSINJECT_ENDDEFAULTS = 13 } -enum : uint { PSINJECT_BEGINPROLOG = 14 } -enum : uint { PSINJECT_ENDPROLOG = 15 } -enum : uint { PSINJECT_BEGINSETUP = 16 } -enum : uint { PSINJECT_ENDSETUP = 17 } -enum : uint { PSINJECT_TRAILER = 18 } -enum : uint { PSINJECT_EOF = 19 } -enum : uint { PSINJECT_ENDSTREAM = 20 } -enum : uint { PSINJECT_DOCUMENTPROCESSCOLORSATEND = 21 } - -enum : uint { PSINJECT_PAGENUMBER = 100 } -enum : uint { PSINJECT_BEGINPAGESETUP = 101 } -enum : uint { PSINJECT_ENDPAGESETUP = 102 } -enum : uint { PSINJECT_PAGETRAILER = 103 } -enum : uint { PSINJECT_PLATECOLOR = 104 } - -enum : uint { PSINJECT_SHOWPAGE = 105 } -enum : uint { PSINJECT_PAGEBBOX = 106 } -enum : uint { PSINJECT_ENDPAGECOMMENTS = 107 } - -enum : uint { PSINJECT_VMSAVE = 200 } -enum : uint { PSINJECT_VMRESTORE = 201 } - -enum : uint { FEATURESETTING_NUP = 0 } -enum : uint { FEATURESETTING_OUTPUT = 1 } -enum : uint { FEATURESETTING_PSLEVEL = 2 } -enum : uint { FEATURESETTING_CUSTPAPER = 3 } -enum : uint { FEATURESETTING_MIRROR = 4 } -enum : uint { FEATURESETTING_NEGATIVE = 5 } -enum : uint { FEATURESETTING_PROTOCOL = 6 } - -enum : uint { FEATURESETTING_PRIVATE_BEGIN = 0x1000 } -enum : uint { FEATURESETTING_PRIVATE_END = 0x1FFF } - -struct _PSFEATURE_OUTPUT { - - BOOL bPageIndependent; - BOOL bSetPageDevice; -} -alias _PSFEATURE_OUTPUT PSFEATURE_OUTPUT; -alias _PSFEATURE_OUTPUT* PPSFEATURE_OUTPUT; - -struct _PSFEATURE_CUSTPAPER { - - LONG lOrientation; - LONG lWidth; - LONG lHeight; - LONG lWidthOffset; - LONG lHeightOffset; -} -alias _PSFEATURE_CUSTPAPER PSFEATURE_CUSTPAPER; -alias _PSFEATURE_CUSTPAPER* PPSFEATURE_CUSTPAPER; - -enum : uint { PSPROTOCOL_ASCII = 0 } -enum : uint { PSPROTOCOL_BCP = 1 } -enum : uint { PSPROTOCOL_TBCP = 2 } -enum : uint { PSPROTOCOL_BINARY = 3 } - -enum : uint { QDI_SETDIBITS = 1 } -enum : uint { QDI_GETDIBITS = 2 } -enum : uint { QDI_DIBTOSCREEN = 4 } -enum : uint { QDI_STRETCHDIB = 8 } - -enum : uint { SP_NOTREPORTED = 0x4000 } -enum { SP_ERROR = -1 } -enum { SP_APPABORT = -2 } -enum { SP_USERABORT = -3 } -enum { SP_OUTOFDISK = -4 } -enum { SP_OUTOFMEMORY = -5 } - -enum : uint { PR_JOBSTATUS = 0x0000 } - -enum : uint { OBJ_PEN = 1 } -enum : uint { OBJ_BRUSH = 2 } -enum : uint { OBJ_DC = 3 } -enum : uint { OBJ_METADC = 4 } -enum : uint { OBJ_PAL = 5 } -enum : uint { OBJ_FONT = 6 } -enum : uint { OBJ_BITMAP = 7 } -enum : uint { OBJ_REGION = 8 } -enum : uint { OBJ_METAFILE = 9 } -enum : uint { OBJ_MEMDC = 10 } -enum : uint { OBJ_EXTPEN = 11 } -enum : uint { OBJ_ENHMETADC = 12 } -enum : uint { OBJ_ENHMETAFILE = 13 } -enum : uint { OBJ_COLORSPACE = 14 } - -enum : uint { MWT_IDENTITY = 1 } -enum : uint { MWT_LEFTMULTIPLY = 2 } -enum : uint { MWT_RIGHTMULTIPLY = 3 } - -alias MWT_IDENTITY MWT_MIN; -alias MWT_RIGHTMULTIPLY MWT_MAX; - -// #define _XFORM_ -struct tagXFORM { - FLOAT eM11; - FLOAT eM12; - FLOAT eM21; - FLOAT eM22; - FLOAT eDx; - FLOAT eDy; -} -alias tagXFORM XFORM; -alias tagXFORM* PXFORM; -alias tagXFORM* LPXFORM; - -struct tagBITMAP { - LONG bmType; - LONG bmWidth; - LONG bmHeight; - LONG bmWidthBytes; - WORD bmPlanes; - WORD bmBitsPixel; - LPVOID bmBits; -} -alias tagBITMAP BITMAP; -alias tagBITMAP* PBITMAP; -alias tagBITMAP* NPBITMAP; -alias tagBITMAP* LPBITMAP; - -align(1): -struct tagRGBTRIPLE { - BYTE rgbtBlue; - BYTE rgbtGreen; - BYTE rgbtRed; -} -alias tagRGBTRIPLE RGBTRIPLE; - -align: - -struct tagRGBQUAD { - BYTE rgbBlue; - BYTE rgbGreen; - BYTE rgbRed; - BYTE rgbReserved; -} -alias tagRGBQUAD RGBQUAD; - -alias RGBQUAD* LPRGBQUAD; - -// #if(WINVER >= 0x0400) - -enum : uint { CS_ENABLE = 0x00000001 } -enum : uint { CS_DISABLE = 0x00000002 } -enum : uint { CS_DELETE_TRANSFORM = 0x00000003 } - -// #define LCS_SIGNATURE 'PSOC' - -// #define LCS_sRGB 'sRGB' -// #define LCS_WINDOWS_COLOR_SPACE 'Win ' - -alias LONG LCSCSTYPE; -enum : uint { LCS_CALIBRATED_RGB = 0x00000000 } - -alias LONG LCSGAMUTMATCH; -enum : uint { LCS_GM_BUSINESS = 0x00000001 } -enum : uint { LCS_GM_GRAPHICS = 0x00000002 } -enum : uint { LCS_GM_IMAGES = 0x00000004 } -enum : uint { LCS_GM_ABS_COLORIMETRIC = 0x00000008 } - -enum : uint { CM_OUT_OF_GAMUT = 255 } -enum : uint { CM_IN_GAMUT = 0 } - -enum : uint { ICM_ADDPROFILE = 1 } -enum : uint { ICM_DELETEPROFILE = 2 } -enum : uint { ICM_QUERYPROFILE = 3 } -enum : uint { ICM_SETDEFAULTPROFILE = 4 } -enum : uint { ICM_REGISTERICMATCHER = 5 } -enum : uint { ICM_UNREGISTERICMATCHER = 6 } -enum : uint { ICM_QUERYMATCH = 7 } - -BYTE GetKValue(DWORD cmyk){ return cast(BYTE)cmyk; } -BYTE GetYValue(DWORD cmyk){ return cast(BYTE)(cmyk >>> 8); } -BYTE GetMValue(DWORD cmyk){ return cast(BYTE)(cmyk >>> 16); } -BYTE GetCValue(DWORD cmyk){ return cast(BYTE)(cmyk >>> 24); } - -DWORD CMYK(BYTE c, BYTE m, BYTE y, BYTE k){ return (cast(COLORREF)(((cast(BYTE)(k)|(cast(WORD)(cast(BYTE)(y))<<8))|((cast(DWORD)cast(BYTE)(m))<<16))|((cast(DWORD)cast(BYTE)(c))<<24))); } - -alias int FXPT16DOT16; -alias int* LPFXPT16DOT16; -alias int FXPT2DOT30; -alias int* LPFXPT2DOT30; - -struct tagCIEXYZ { - FXPT2DOT30 ciexyzX; - FXPT2DOT30 ciexyzY; - FXPT2DOT30 ciexyzZ; -} -alias tagCIEXYZ CIEXYZ; - -alias CIEXYZ* LPCIEXYZ; - -struct tagICEXYZTRIPLE { - CIEXYZ ciexyzRed; - CIEXYZ ciexyzGreen; - CIEXYZ ciexyzBlue; -} -alias tagICEXYZTRIPLE CIEXYZTRIPLE; - -alias CIEXYZTRIPLE* LPCIEXYZTRIPLE; - -struct tagLOGCOLORSPACEA { - DWORD lcsSignature; - DWORD lcsVersion; - DWORD lcsSize; - LCSCSTYPE lcsCSType; - LCSGAMUTMATCH lcsIntent; - CIEXYZTRIPLE lcsEndpoints; - DWORD lcsGammaRed; - DWORD lcsGammaGreen; - DWORD lcsGammaBlue; - CHAR lcsFilename[MAX_PATH]; -} -alias tagLOGCOLORSPACEA LOGCOLORSPACEA; -alias tagLOGCOLORSPACEA* LPLOGCOLORSPACEA; - -struct tagLOGCOLORSPACEW { - DWORD lcsSignature; - DWORD lcsVersion; - DWORD lcsSize; - LCSCSTYPE lcsCSType; - LCSGAMUTMATCH lcsIntent; - CIEXYZTRIPLE lcsEndpoints; - DWORD lcsGammaRed; - DWORD lcsGammaGreen; - DWORD lcsGammaBlue; - WCHAR lcsFilename[MAX_PATH]; -} -alias tagLOGCOLORSPACEW LOGCOLORSPACEW; -alias tagLOGCOLORSPACEW* LPLOGCOLORSPACEW; - -// #ifdef UNICODE -// ... -// #else -alias LOGCOLORSPACEA LOGCOLORSPACE; -alias LPLOGCOLORSPACEA LPLOGCOLORSPACE; -// #endif // UNICODE - -// #endif /* WINVER >= 0x0400 */ - -struct tagBITMAPCOREHEADER { - DWORD bcSize; - WORD bcWidth; - WORD bcHeight; - WORD bcPlanes; - WORD bcBitCount; -} -alias tagBITMAPCOREHEADER BITMAPCOREHEADER; -alias tagBITMAPCOREHEADER* LPBITMAPCOREHEADER; -alias tagBITMAPCOREHEADER* PBITMAPCOREHEADER; - -struct tagBITMAPINFOHEADER { - DWORD biSize; - LONG biWidth; - LONG biHeight; - WORD biPlanes; - WORD biBitCount; - DWORD biCompression; - DWORD biSizeImage; - LONG biXPelsPerMeter; - LONG biYPelsPerMeter; - DWORD biClrUsed; - DWORD biClrImportant; -} -alias tagBITMAPINFOHEADER BITMAPINFOHEADER; -alias tagBITMAPINFOHEADER* LPBITMAPINFOHEADER; -alias tagBITMAPINFOHEADER* PBITMAPINFOHEADER; - -// #if(WINVER >= 0x0400) -struct _0 { - DWORD bV4Size; - LONG bV4Width; - LONG bV4Height; - WORD bV4Planes; - WORD bV4BitCount; - DWORD bV4V4Compression; - DWORD bV4SizeImage; - LONG bV4XPelsPerMeter; - LONG bV4YPelsPerMeter; - DWORD bV4ClrUsed; - DWORD bV4ClrImportant; - DWORD bV4RedMask; - DWORD bV4GreenMask; - DWORD bV4BlueMask; - DWORD bV4AlphaMask; - DWORD bV4CSType; - CIEXYZTRIPLE bV4Endpoints; - DWORD bV4GammaRed; - DWORD bV4GammaGreen; - DWORD bV4GammaBlue; -} -alias _0 BITMAPV4HEADER; -alias _0* LPBITMAPV4HEADER; -alias _0* PBITMAPV4HEADER; - -// #endif /* WINVER >= 0x0400 */ - -// #if (WINVER >= 0x0500) -struct _1 { - DWORD bV5Size; - LONG bV5Width; - LONG bV5Height; - WORD bV5Planes; - WORD bV5BitCount; - DWORD bV5Compression; - DWORD bV5SizeImage; - LONG bV5XPelsPerMeter; - LONG bV5YPelsPerMeter; - DWORD bV5ClrUsed; - DWORD bV5ClrImportant; - DWORD bV5RedMask; - DWORD bV5GreenMask; - DWORD bV5BlueMask; - DWORD bV5AlphaMask; - DWORD bV5CSType; - CIEXYZTRIPLE bV5Endpoints; - DWORD bV5GammaRed; - DWORD bV5GammaGreen; - DWORD bV5GammaBlue; - DWORD bV5Intent; - DWORD bV5ProfileData; - DWORD bV5ProfileSize; - DWORD bV5Reserved; -} -alias _1 BITMAPV5HEADER; -alias _1* LPBITMAPV5HEADER; -alias _1* PBITMAPV5HEADER; - -// #define PROFILE_LINKED 'LINK' -// #define PROFILE_EMBEDDED 'MBED' -// #endif - -enum : uint { BI_RGB = 0 } -enum : uint { BI_RLE8 = 1 } -enum : uint { BI_RLE4 = 2 } -enum : uint { BI_BITFIELDS = 3 } -enum : uint { BI_JPEG = 4 } -enum : uint { BI_PNG = 5 } -// #if (_WIN32_WINNT >= 0x0400) -// #endif - -struct tagBITMAPINFO { - BITMAPINFOHEADER bmiHeader; - RGBQUAD bmiColors[1]; -} -alias tagBITMAPINFO BITMAPINFO; -alias tagBITMAPINFO* LPBITMAPINFO; -alias tagBITMAPINFO* PBITMAPINFO; - -struct tagBITMAPCOREINFO { - BITMAPCOREHEADER bmciHeader; - RGBTRIPLE bmciColors[1]; -} -alias tagBITMAPCOREINFO BITMAPCOREINFO; -alias tagBITMAPCOREINFO* LPBITMAPCOREINFO; -alias tagBITMAPCOREINFO* PBITMAPCOREINFO; - -align(2): -struct tagBITMAPFILEHEADER { - WORD bfType; - DWORD bfSize; - WORD bfReserved1; - WORD bfReserved2; - DWORD bfOffBits; -} -alias tagBITMAPFILEHEADER BITMAPFILEHEADER; -alias tagBITMAPFILEHEADER* LPBITMAPFILEHEADER; -alias tagBITMAPFILEHEADER* PBITMAPFILEHEADER; - -align: - -// #define MAKEPOINTS(l) (*((POINTS FAR *)&(l))) - -// #if(WINVER >= 0x0400) -// #ifndef NOFONTSIG -struct tagFONTSIGNATURE { - DWORD fsUsb[4]; - DWORD fsCsb[2]; -} -alias tagFONTSIGNATURE FONTSIGNATURE; -alias tagFONTSIGNATURE* PFONTSIGNATURE; -alias tagFONTSIGNATURE* LPFONTSIGNATURE; - -struct tagCHARSETINFO { - UINT ciCharset; - UINT ciACP; - FONTSIGNATURE fs; -} -alias tagCHARSETINFO CHARSETINFO; -alias tagCHARSETINFO* PCHARSETINFO; -alias tagCHARSETINFO* NPCHARSETINFO; -alias tagCHARSETINFO* LPCHARSETINFO; - -enum : uint { TCI_SRCCHARSET = 1 } -enum : uint { TCI_SRCCODEPAGE = 2 } -enum : uint { TCI_SRCFONTSIG = 3 } - -struct tagLOCALESIGNATURE { - DWORD lsUsb[4]; - DWORD lsCsbDefault[2]; - DWORD lsCsbSupported[2]; -} -alias tagLOCALESIGNATURE LOCALESIGNATURE; -alias tagLOCALESIGNATURE* PLOCALESIGNATURE; -alias tagLOCALESIGNATURE* LPLOCALESIGNATURE; - -// #endif -// #endif /* WINVER >= 0x0400 */ - -// #ifndef NOMETAFILE - -struct tagHANDLETABLE { - HGDIOBJ objectHandle[1]; -} -alias tagHANDLETABLE HANDLETABLE; -alias tagHANDLETABLE* PHANDLETABLE; -alias tagHANDLETABLE* LPHANDLETABLE; - -struct tagMETARECORD { - DWORD rdSize; - WORD rdFunction; - WORD rdParm[1]; -} -alias tagMETARECORD METARECORD; - -alias tagMETARECORD* PMETARECORD; -alias tagMETARECORD* LPMETARECORD; - -struct tagMETAFILEPICT { - LONG mm; - LONG xExt; - LONG yExt; - HMETAFILE hMF; -} -alias tagMETAFILEPICT METAFILEPICT; -alias tagMETAFILEPICT* LPMETAFILEPICT; - -align(2): -struct tagMETAHEADER { - WORD mtType; - WORD mtHeaderSize; - WORD mtVersion; - DWORD mtSize; - WORD mtNoObjects; - DWORD mtMaxRecord; - WORD mtNoParameters; -} -alias tagMETAHEADER METAHEADER; - -alias tagMETAHEADER* PMETAHEADER; -alias tagMETAHEADER* LPMETAHEADER; - -align: - -struct tagENHMETARECORD { - DWORD iType; - DWORD nSize; - DWORD dParm[1]; -} -alias tagENHMETARECORD ENHMETARECORD; -alias tagENHMETARECORD* PENHMETARECORD; -alias tagENHMETARECORD* LPENHMETARECORD; - -struct tagENHMETAHEADER { - DWORD iType; - DWORD nSize; - - RECTL rclBounds; - RECTL rclFrame; - DWORD dSignature; - DWORD nVersion; - DWORD nBytes; - DWORD nRecords; - WORD nHandles; - - WORD sReserved; - DWORD nDescription; - - DWORD offDescription; - - DWORD nPalEntries; - SIZEL szlDevice; - SIZEL szlMillimeters; -// #if(WINVER >= 0x0400) - DWORD cbPixelFormat; - - DWORD offPixelFormat; - - DWORD bOpenGL; - -// #endif /* WINVER >= 0x0400 */ -// #if(WINVER >= 0x0500) - SIZEL szlMicrometers; -// #endif /* WINVER >= 0x0500 */ - -} -alias tagENHMETAHEADER ENHMETAHEADER; -alias tagENHMETAHEADER* PENHMETAHEADER; -alias tagENHMETAHEADER* LPENHMETAHEADER; - -// #endif /* NOMETAFILE */ - -// #ifndef NOTEXTMETRIC - -enum : uint { TMPF_FIXED_PITCH = 0x01 } -enum : uint { TMPF_VECTOR = 0x02 } -enum : uint { TMPF_DEVICE = 0x08 } -enum : uint { TMPF_TRUETYPE = 0x04 } - -// #ifdef UNICODE -// ... -// #else -alias BYTE BCHAR; -// #endif - -// #ifndef _TEXTMETRIC_DEFINED -// #define _TEXTMETRIC_DEFINED -struct tagTEXTMETRICA { - LONG tmHeight; - LONG tmAscent; - LONG tmDescent; - LONG tmInternalLeading; - LONG tmExternalLeading; - LONG tmAveCharWidth; - LONG tmMaxCharWidth; - LONG tmWeight; - LONG tmOverhang; - LONG tmDigitizedAspectX; - LONG tmDigitizedAspectY; - BYTE tmFirstChar; - BYTE tmLastChar; - BYTE tmDefaultChar; - BYTE tmBreakChar; - BYTE tmItalic; - BYTE tmUnderlined; - BYTE tmStruckOut; - BYTE tmPitchAndFamily; - BYTE tmCharSet; -} -alias tagTEXTMETRICA TEXTMETRICA; -alias tagTEXTMETRICA* PTEXTMETRICA; -alias tagTEXTMETRICA* NPTEXTMETRICA; -alias tagTEXTMETRICA* LPTEXTMETRICA; - -struct tagTEXTMETRICW { - LONG tmHeight; - LONG tmAscent; - LONG tmDescent; - LONG tmInternalLeading; - LONG tmExternalLeading; - LONG tmAveCharWidth; - LONG tmMaxCharWidth; - LONG tmWeight; - LONG tmOverhang; - LONG tmDigitizedAspectX; - LONG tmDigitizedAspectY; - WCHAR tmFirstChar; - WCHAR tmLastChar; - WCHAR tmDefaultChar; - WCHAR tmBreakChar; - BYTE tmItalic; - BYTE tmUnderlined; - BYTE tmStruckOut; - BYTE tmPitchAndFamily; - BYTE tmCharSet; -} -alias tagTEXTMETRICW TEXTMETRICW; -alias tagTEXTMETRICW* PTEXTMETRICW; -alias tagTEXTMETRICW* NPTEXTMETRICW; -alias tagTEXTMETRICW* LPTEXTMETRICW; - -// #ifdef UNICODE -// ... -// #else -alias TEXTMETRICA TEXTMETRIC; -alias PTEXTMETRICA PTEXTMETRIC; -alias NPTEXTMETRICA NPTEXTMETRIC; -alias LPTEXTMETRICA LPTEXTMETRIC; -// #endif // UNICODE -// #endif // !_TEXTMETRIC_DEFINED - -enum : uint { NTM_REGULAR = 0x00000040 } -enum : uint { NTM_BOLD = 0x00000020 } -enum : uint { NTM_ITALIC = 0x00000001 } - -enum : uint { NTM_NONNEGATIVE_AC = 0x00010000 } -enum : uint { NTM_PS_OPENTYPE = 0x00020000 } -enum : uint { NTM_TT_OPENTYPE = 0x00040000 } -enum : uint { NTM_MULTIPLEMASTER = 0x00080000 } -enum : uint { NTM_TYPE1 = 0x00100000 } -enum : uint { NTM_DSIG = 0x00200000 } - -align(4): -struct tagNEWTEXTMETRICA { - LONG tmHeight; - LONG tmAscent; - LONG tmDescent; - LONG tmInternalLeading; - LONG tmExternalLeading; - LONG tmAveCharWidth; - LONG tmMaxCharWidth; - LONG tmWeight; - LONG tmOverhang; - LONG tmDigitizedAspectX; - LONG tmDigitizedAspectY; - BYTE tmFirstChar; - BYTE tmLastChar; - BYTE tmDefaultChar; - BYTE tmBreakChar; - BYTE tmItalic; - BYTE tmUnderlined; - BYTE tmStruckOut; - BYTE tmPitchAndFamily; - BYTE tmCharSet; - DWORD ntmFlags; - UINT ntmSizeEM; - UINT ntmCellHeight; - UINT ntmAvgWidth; -} -alias tagNEWTEXTMETRICA NEWTEXTMETRICA; -alias tagNEWTEXTMETRICA* PNEWTEXTMETRICA; -alias tagNEWTEXTMETRICA* NPNEWTEXTMETRICA; -alias tagNEWTEXTMETRICA* LPNEWTEXTMETRICA; - -struct tagNEWTEXTMETRICW { - LONG tmHeight; - LONG tmAscent; - LONG tmDescent; - LONG tmInternalLeading; - LONG tmExternalLeading; - LONG tmAveCharWidth; - LONG tmMaxCharWidth; - LONG tmWeight; - LONG tmOverhang; - LONG tmDigitizedAspectX; - LONG tmDigitizedAspectY; - WCHAR tmFirstChar; - WCHAR tmLastChar; - WCHAR tmDefaultChar; - WCHAR tmBreakChar; - BYTE tmItalic; - BYTE tmUnderlined; - BYTE tmStruckOut; - BYTE tmPitchAndFamily; - BYTE tmCharSet; - DWORD ntmFlags; - UINT ntmSizeEM; - UINT ntmCellHeight; - UINT ntmAvgWidth; -} -alias tagNEWTEXTMETRICW NEWTEXTMETRICW; -alias tagNEWTEXTMETRICW* PNEWTEXTMETRICW; -alias tagNEWTEXTMETRICW* NPNEWTEXTMETRICW; -alias tagNEWTEXTMETRICW* LPNEWTEXTMETRICW; - -// #ifdef UNICODE -// ... -// #else -alias NEWTEXTMETRICA NEWTEXTMETRIC; -alias PNEWTEXTMETRICA PNEWTEXTMETRIC; -alias NPNEWTEXTMETRICA NPNEWTEXTMETRIC; -alias LPNEWTEXTMETRICA LPNEWTEXTMETRIC; -// #endif // UNICODE -align: - -// #if(WINVER >= 0x0400) -struct tagNEWTEXTMETRICEXA { - NEWTEXTMETRICA ntmTm; - FONTSIGNATURE ntmFontSig; -} -alias tagNEWTEXTMETRICEXA NEWTEXTMETRICEXA; - -struct tagNEWTEXTMETRICEXW { - NEWTEXTMETRICW ntmTm; - FONTSIGNATURE ntmFontSig; -} -alias tagNEWTEXTMETRICEXW NEWTEXTMETRICEXW; - -// #ifdef UNICODE -// ... -// #else -alias NEWTEXTMETRICEXA NEWTEXTMETRICEX; -// #endif // UNICODE -// #endif /* WINVER >= 0x0400 */ - -// #endif /* NOTEXTMETRIC */ - -struct tagPELARRAY { - LONG paXCount; - LONG paYCount; - LONG paXExt; - LONG paYExt; - BYTE paRGBs; -} -alias tagPELARRAY PELARRAY; -alias tagPELARRAY* PPELARRAY; -alias tagPELARRAY* NPPELARRAY; -alias tagPELARRAY* LPPELARRAY; - -struct tagLOGBRUSH { - UINT lbStyle; - COLORREF lbColor; - ULONG_PTR lbHatch; -} -alias tagLOGBRUSH LOGBRUSH; -alias tagLOGBRUSH* PLOGBRUSH; -alias tagLOGBRUSH* NPLOGBRUSH; -alias tagLOGBRUSH* LPLOGBRUSH; - -struct tagLOGBRUSH32 { - UINT lbStyle; - COLORREF lbColor; - ULONG lbHatch; -} -alias tagLOGBRUSH32 LOGBRUSH32; -alias tagLOGBRUSH32* PLOGBRUSH32; -alias tagLOGBRUSH32* NPLOGBRUSH32; -alias tagLOGBRUSH32* LPLOGBRUSH32; - -alias LOGBRUSH PATTERN; -alias PATTERN* PPATTERN; -alias PATTERN* NPPATTERN; -alias PATTERN* LPPATTERN; - -struct tagLOGPEN { - UINT lopnStyle; - POINT lopnWidth; - COLORREF lopnColor; -} -alias tagLOGPEN LOGPEN; -alias tagLOGPEN* PLOGPEN; -alias tagLOGPEN* NPLOGPEN; -alias tagLOGPEN* LPLOGPEN; - -struct tagEXTLOGPEN { - DWORD elpPenStyle; - DWORD elpWidth; - UINT elpBrushStyle; - COLORREF elpColor; - ULONG_PTR elpHatch; - DWORD elpNumEntries; - DWORD elpStyleEntry[1]; -} -alias tagEXTLOGPEN EXTLOGPEN; -alias tagEXTLOGPEN* PEXTLOGPEN; -alias tagEXTLOGPEN* NPEXTLOGPEN; -alias tagEXTLOGPEN* LPEXTLOGPEN; - -// #ifndef _PALETTEENTRY_DEFINED -// #define _PALETTEENTRY_DEFINED -struct tagPALETTEENTRY { - BYTE peRed; - BYTE peGreen; - BYTE peBlue; - BYTE peFlags; -} -alias tagPALETTEENTRY PALETTEENTRY; -alias tagPALETTEENTRY* PPALETTEENTRY; -alias tagPALETTEENTRY* LPPALETTEENTRY; - -// #endif // !_PALETTEENTRY_DEFINED - -// #ifndef _LOGPALETTE_DEFINED -// #define _LOGPALETTE_DEFINED - -struct tagLOGPALETTE { - WORD palVersion; - WORD palNumEntries; - PALETTEENTRY palPalEntry[1]; -} -alias tagLOGPALETTE LOGPALETTE; -alias tagLOGPALETTE* PLOGPALETTE; -alias tagLOGPALETTE* NPLOGPALETTE; -alias tagLOGPALETTE* LPLOGPALETTE; - -// #endif // !_LOGPALETTE_DEFINED - -enum : uint { LF_FACESIZE = 32 } - -struct tagLOGFONTA { - LONG lfHeight; - LONG lfWidth; - LONG lfEscapement; - LONG lfOrientation; - LONG lfWeight; - BYTE lfItalic; - BYTE lfUnderline; - BYTE lfStrikeOut; - BYTE lfCharSet; - BYTE lfOutPrecision; - BYTE lfClipPrecision; - BYTE lfQuality; - BYTE lfPitchAndFamily; - CHAR lfFaceName[LF_FACESIZE]; -} -alias tagLOGFONTA LOGFONTA; -alias tagLOGFONTA* PLOGFONTA; -alias tagLOGFONTA* NPLOGFONTA; -alias tagLOGFONTA* LPLOGFONTA; - -struct tagLOGFONTW { - LONG lfHeight; - LONG lfWidth; - LONG lfEscapement; - LONG lfOrientation; - LONG lfWeight; - BYTE lfItalic; - BYTE lfUnderline; - BYTE lfStrikeOut; - BYTE lfCharSet; - BYTE lfOutPrecision; - BYTE lfClipPrecision; - BYTE lfQuality; - BYTE lfPitchAndFamily; - WCHAR lfFaceName[LF_FACESIZE]; -} -alias tagLOGFONTW LOGFONTW; -alias tagLOGFONTW* PLOGFONTW; -alias tagLOGFONTW* NPLOGFONTW; -alias tagLOGFONTW* LPLOGFONTW; - -// #ifdef UNICODE -// ... -// #else -alias LOGFONTA LOGFONT; -alias PLOGFONTA PLOGFONT; -alias NPLOGFONTA NPLOGFONT; -alias LPLOGFONTA LPLOGFONT; -// #endif // UNICODE - -enum : uint { LF_FULLFACESIZE = 64 } - -struct tagENUMLOGFONTA { - LOGFONTA elfLogFont; - BYTE elfFullName[LF_FULLFACESIZE]; - BYTE elfStyle[LF_FACESIZE]; -} -alias tagENUMLOGFONTA ENUMLOGFONTA; -alias tagENUMLOGFONTA* LPENUMLOGFONTA; - -struct tagENUMLOGFONTW { - LOGFONTW elfLogFont; - WCHAR elfFullName[LF_FULLFACESIZE]; - WCHAR elfStyle[LF_FACESIZE]; -} -alias tagENUMLOGFONTW ENUMLOGFONTW; -alias tagENUMLOGFONTW* LPENUMLOGFONTW; - -// #ifdef UNICODE -// ... -// #else -alias ENUMLOGFONTA ENUMLOGFONT; -alias LPENUMLOGFONTA LPENUMLOGFONT; -// #endif // UNICODE - -// #if(WINVER >= 0x0400) -struct tagENUMLOGFONTEXA { - LOGFONTA elfLogFont; - BYTE elfFullName[LF_FULLFACESIZE]; - BYTE elfStyle[LF_FACESIZE]; - BYTE elfScript[LF_FACESIZE]; -} -alias tagENUMLOGFONTEXA ENUMLOGFONTEXA; -alias tagENUMLOGFONTEXA* LPENUMLOGFONTEXA; - -struct tagENUMLOGFONTEXW { - LOGFONTW elfLogFont; - WCHAR elfFullName[LF_FULLFACESIZE]; - WCHAR elfStyle[LF_FACESIZE]; - WCHAR elfScript[LF_FACESIZE]; -} -alias tagENUMLOGFONTEXW ENUMLOGFONTEXW; -alias tagENUMLOGFONTEXW* LPENUMLOGFONTEXW; - -// #ifdef UNICODE -// ... -// #else -alias ENUMLOGFONTEXA ENUMLOGFONTEX; -alias LPENUMLOGFONTEXA LPENUMLOGFONTEX; -// #endif // UNICODE -// #endif /* WINVER >= 0x0400 */ - -enum : uint { OUT_DEFAULT_PRECIS = 0 } -enum : uint { OUT_STRING_PRECIS = 1 } -enum : uint { OUT_CHARACTER_PRECIS = 2 } -enum : uint { OUT_STROKE_PRECIS = 3 } -enum : uint { OUT_TT_PRECIS = 4 } -enum : uint { OUT_DEVICE_PRECIS = 5 } -enum : uint { OUT_RASTER_PRECIS = 6 } -enum : uint { OUT_TT_ONLY_PRECIS = 7 } -enum : uint { OUT_OUTLINE_PRECIS = 8 } -enum : uint { OUT_SCREEN_OUTLINE_PRECIS = 9 } -enum : uint { OUT_PS_ONLY_PRECIS = 10 } - -enum : uint { CLIP_DEFAULT_PRECIS = 0 } -enum : uint { CLIP_CHARACTER_PRECIS = 1 } -enum : uint { CLIP_STROKE_PRECIS = 2 } -enum : uint { CLIP_MASK = 0xf } -enum : uint { CLIP_LH_ANGLES = 1<<4 } -enum : uint { CLIP_TT_ALWAYS = 2<<4 } -enum : uint { CLIP_EMBEDDED = 8<<4 } - -enum : uint { DEFAULT_QUALITY = 0 } -enum : uint { DRAFT_QUALITY = 1 } -enum : uint { PROOF_QUALITY = 2 } -// #if(WINVER >= 0x0400) -enum : uint { NONANTIALIASED_QUALITY = 3 } -enum : uint { ANTIALIASED_QUALITY = 4 } -// #endif /* WINVER >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { CLEARTYPE_QUALITY = 5 } -// #endif - -enum : uint { DEFAULT_PITCH = 0 } -enum : uint { FIXED_PITCH = 1 } -enum : uint { VARIABLE_PITCH = 2 } -// #if(WINVER >= 0x0400) -enum : uint { MONO_FONT = 8 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { ANSI_CHARSET = 0 } -enum : uint { DEFAULT_CHARSET = 1 } -enum : uint { SYMBOL_CHARSET = 2 } -enum : uint { SHIFTJIS_CHARSET = 128 } -enum : uint { HANGEUL_CHARSET = 129 } -enum : uint { HANGUL_CHARSET = 129 } -enum : uint { GB2312_CHARSET = 134 } -enum : uint { CHINESEBIG5_CHARSET = 136 } -enum : uint { OEM_CHARSET = 255 } -// #if(WINVER >= 0x0400) -enum : uint { JOHAB_CHARSET = 130 } -enum : uint { HEBREW_CHARSET = 177 } -enum : uint { ARABIC_CHARSET = 178 } -enum : uint { GREEK_CHARSET = 161 } -enum : uint { TURKISH_CHARSET = 162 } -enum : uint { VIETNAMESE_CHARSET = 163 } -enum : uint { THAI_CHARSET = 222 } -enum : uint { EASTEUROPE_CHARSET = 238 } -enum : uint { RUSSIAN_CHARSET = 204 } - -enum : uint { MAC_CHARSET = 77 } -enum : uint { BALTIC_CHARSET = 186 } - -enum : uint { FS_LATIN1 = 0x00000001 } -enum : uint { FS_LATIN2 = 0x00000002 } -enum : uint { FS_CYRILLIC = 0x00000004 } -enum : uint { FS_GREEK = 0x00000008 } -enum : uint { FS_TURKISH = 0x00000010 } -enum : uint { FS_HEBREW = 0x00000020 } -enum : uint { FS_ARABIC = 0x00000040 } -enum : uint { FS_BALTIC = 0x00000080 } -enum : uint { FS_VIETNAMESE = 0x00000100 } -enum : uint { FS_THAI = 0x00010000 } -enum : uint { FS_JISJAPAN = 0x00020000 } -enum : uint { FS_CHINESESIMP = 0x00040000 } -enum : uint { FS_WANSUNG = 0x00080000 } -enum : uint { FS_CHINESETRAD = 0x00100000 } -enum : uint { FS_JOHAB = 0x00200000 } -enum : uint { FS_SYMBOL = 0x80000000 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { FF_DONTCARE = 0<<4 } -enum : uint { FF_ROMAN = 1<<4 } - -enum : uint { FF_SWISS = 2<<4 } - -enum : uint { FF_MODERN = 3<<4 } - -enum : uint { FF_SCRIPT = 4<<4 } -enum : uint { FF_DECORATIVE = 5<<4 } - -enum : uint { FW_DONTCARE = 0 } -enum : uint { FW_THIN = 100 } -enum : uint { FW_EXTRALIGHT = 200 } -enum : uint { FW_LIGHT = 300 } -enum : uint { FW_NORMAL = 400 } -enum : uint { FW_MEDIUM = 500 } -enum : uint { FW_SEMIBOLD = 600 } -enum : uint { FW_BOLD = 700 } -enum : uint { FW_EXTRABOLD = 800 } -enum : uint { FW_HEAVY = 900 } - -alias FW_EXTRALIGHT FW_ULTRALIGHT; -alias FW_NORMAL FW_REGULAR; -alias FW_SEMIBOLD FW_DEMIBOLD; -alias FW_EXTRABOLD FW_ULTRABOLD; -alias FW_HEAVY FW_BLACK; - -enum : uint { PANOSE_COUNT = 10 } -enum : uint { PAN_FAMILYTYPE_INDEX = 0 } -enum : uint { PAN_SERIFSTYLE_INDEX = 1 } -enum : uint { PAN_WEIGHT_INDEX = 2 } -enum : uint { PAN_PROPORTION_INDEX = 3 } -enum : uint { PAN_CONTRAST_INDEX = 4 } -enum : uint { PAN_STROKEVARIATION_INDEX = 5 } -enum : uint { PAN_ARMSTYLE_INDEX = 6 } -enum : uint { PAN_LETTERFORM_INDEX = 7 } -enum : uint { PAN_MIDLINE_INDEX = 8 } -enum : uint { PAN_XHEIGHT_INDEX = 9 } - -enum : uint { PAN_CULTURE_LATIN = 0 } - -struct tagPANOSE { - BYTE bFamilyType; - BYTE bSerifStyle; - BYTE bWeight; - BYTE bProportion; - BYTE bContrast; - BYTE bStrokeVariation; - BYTE bArmStyle; - BYTE bLetterform; - BYTE bMidline; - BYTE bXHeight; -} -alias tagPANOSE PANOSE; -alias tagPANOSE* LPPANOSE; - -enum : uint { PAN_ANY = 0 } -enum : uint { PAN_NO_FIT = 1 } - -enum : uint { PAN_FAMILY_TEXT_DISPLAY = 2 } -enum : uint { PAN_FAMILY_SCRIPT = 3 } -enum : uint { PAN_FAMILY_DECORATIVE = 4 } -enum : uint { PAN_FAMILY_PICTORIAL = 5 } - -enum : uint { PAN_SERIF_COVE = 2 } -enum : uint { PAN_SERIF_OBTUSE_COVE = 3 } -enum : uint { PAN_SERIF_SQUARE_COVE = 4 } -enum : uint { PAN_SERIF_OBTUSE_SQUARE_COVE = 5 } -enum : uint { PAN_SERIF_SQUARE = 6 } -enum : uint { PAN_SERIF_THIN = 7 } -enum : uint { PAN_SERIF_BONE = 8 } -enum : uint { PAN_SERIF_EXAGGERATED = 9 } -enum : uint { PAN_SERIF_TRIANGLE = 10 } -enum : uint { PAN_SERIF_NORMAL_SANS = 11 } -enum : uint { PAN_SERIF_OBTUSE_SANS = 12 } -enum : uint { PAN_SERIF_PERP_SANS = 13 } -enum : uint { PAN_SERIF_FLARED = 14 } -enum : uint { PAN_SERIF_ROUNDED = 15 } - -enum : uint { PAN_WEIGHT_VERY_LIGHT = 2 } -enum : uint { PAN_WEIGHT_LIGHT = 3 } -enum : uint { PAN_WEIGHT_THIN = 4 } -enum : uint { PAN_WEIGHT_BOOK = 5 } -enum : uint { PAN_WEIGHT_MEDIUM = 6 } -enum : uint { PAN_WEIGHT_DEMI = 7 } -enum : uint { PAN_WEIGHT_BOLD = 8 } -enum : uint { PAN_WEIGHT_HEAVY = 9 } -enum : uint { PAN_WEIGHT_BLACK = 10 } -enum : uint { PAN_WEIGHT_NORD = 11 } - -enum : uint { PAN_PROP_OLD_STYLE = 2 } -enum : uint { PAN_PROP_MODERN = 3 } -enum : uint { PAN_PROP_EVEN_WIDTH = 4 } -enum : uint { PAN_PROP_EXPANDED = 5 } -enum : uint { PAN_PROP_CONDENSED = 6 } -enum : uint { PAN_PROP_VERY_EXPANDED = 7 } -enum : uint { PAN_PROP_VERY_CONDENSED = 8 } -enum : uint { PAN_PROP_MONOSPACED = 9 } - -enum : uint { PAN_CONTRAST_NONE = 2 } -enum : uint { PAN_CONTRAST_VERY_LOW = 3 } -enum : uint { PAN_CONTRAST_LOW = 4 } -enum : uint { PAN_CONTRAST_MEDIUM_LOW = 5 } -enum : uint { PAN_CONTRAST_MEDIUM = 6 } -enum : uint { PAN_CONTRAST_MEDIUM_HIGH = 7 } -enum : uint { PAN_CONTRAST_HIGH = 8 } -enum : uint { PAN_CONTRAST_VERY_HIGH = 9 } - -enum : uint { PAN_STROKE_GRADUAL_DIAG = 2 } -enum : uint { PAN_STROKE_GRADUAL_TRAN = 3 } -enum : uint { PAN_STROKE_GRADUAL_VERT = 4 } -enum : uint { PAN_STROKE_GRADUAL_HORZ = 5 } -enum : uint { PAN_STROKE_RAPID_VERT = 6 } -enum : uint { PAN_STROKE_RAPID_HORZ = 7 } -enum : uint { PAN_STROKE_INSTANT_VERT = 8 } - -enum : uint { PAN_STRAIGHT_ARMS_HORZ = 2 } -enum : uint { PAN_STRAIGHT_ARMS_WEDGE = 3 } -enum : uint { PAN_STRAIGHT_ARMS_VERT = 4 } -enum : uint { PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5 } -enum : uint { PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6 } -enum : uint { PAN_BENT_ARMS_HORZ = 7 } -enum : uint { PAN_BENT_ARMS_WEDGE = 8 } -enum : uint { PAN_BENT_ARMS_VERT = 9 } -enum : uint { PAN_BENT_ARMS_SINGLE_SERIF = 10 } -enum : uint { PAN_BENT_ARMS_DOUBLE_SERIF = 11 } - -enum : uint { PAN_LETT_NORMAL_CONTACT = 2 } -enum : uint { PAN_LETT_NORMAL_WEIGHTED = 3 } -enum : uint { PAN_LETT_NORMAL_BOXED = 4 } -enum : uint { PAN_LETT_NORMAL_FLATTENED = 5 } -enum : uint { PAN_LETT_NORMAL_ROUNDED = 6 } -enum : uint { PAN_LETT_NORMAL_OFF_CENTER = 7 } -enum : uint { PAN_LETT_NORMAL_SQUARE = 8 } -enum : uint { PAN_LETT_OBLIQUE_CONTACT = 9 } -enum : uint { PAN_LETT_OBLIQUE_WEIGHTED = 10 } -enum : uint { PAN_LETT_OBLIQUE_BOXED = 11 } -enum : uint { PAN_LETT_OBLIQUE_FLATTENED = 12 } -enum : uint { PAN_LETT_OBLIQUE_ROUNDED = 13 } -enum : uint { PAN_LETT_OBLIQUE_OFF_CENTER = 14 } -enum : uint { PAN_LETT_OBLIQUE_SQUARE = 15 } - -enum : uint { PAN_MIDLINE_STANDARD_TRIMMED = 2 } -enum : uint { PAN_MIDLINE_STANDARD_POINTED = 3 } -enum : uint { PAN_MIDLINE_STANDARD_SERIFED = 4 } -enum : uint { PAN_MIDLINE_HIGH_TRIMMED = 5 } -enum : uint { PAN_MIDLINE_HIGH_POINTED = 6 } -enum : uint { PAN_MIDLINE_HIGH_SERIFED = 7 } -enum : uint { PAN_MIDLINE_CONSTANT_TRIMMED = 8 } -enum : uint { PAN_MIDLINE_CONSTANT_POINTED = 9 } -enum : uint { PAN_MIDLINE_CONSTANT_SERIFED = 10 } -enum : uint { PAN_MIDLINE_LOW_TRIMMED = 11 } -enum : uint { PAN_MIDLINE_LOW_POINTED = 12 } -enum : uint { PAN_MIDLINE_LOW_SERIFED = 13 } - -enum : uint { PAN_XHEIGHT_CONSTANT_SMALL = 2 } -enum : uint { PAN_XHEIGHT_CONSTANT_STD = 3 } -enum : uint { PAN_XHEIGHT_CONSTANT_LARGE = 4 } -enum : uint { PAN_XHEIGHT_DUCKING_SMALL = 5 } -enum : uint { PAN_XHEIGHT_DUCKING_STD = 6 } -enum : uint { PAN_XHEIGHT_DUCKING_LARGE = 7 } - -enum : uint { ELF_VENDOR_SIZE = 4 } - -struct tagEXTLOGFONTA { - LOGFONTA elfLogFont; - BYTE elfFullName[LF_FULLFACESIZE]; - BYTE elfStyle[LF_FACESIZE]; - DWORD elfVersion; - DWORD elfStyleSize; - DWORD elfMatch; - DWORD elfReserved; - BYTE elfVendorId[ELF_VENDOR_SIZE]; - DWORD elfCulture; - PANOSE elfPanose; -} -alias tagEXTLOGFONTA EXTLOGFONTA; -alias tagEXTLOGFONTA* PEXTLOGFONTA; -alias tagEXTLOGFONTA* NPEXTLOGFONTA; -alias tagEXTLOGFONTA* LPEXTLOGFONTA; - -struct tagEXTLOGFONTW { - LOGFONTW elfLogFont; - WCHAR elfFullName[LF_FULLFACESIZE]; - WCHAR elfStyle[LF_FACESIZE]; - DWORD elfVersion; - DWORD elfStyleSize; - DWORD elfMatch; - DWORD elfReserved; - BYTE elfVendorId[ELF_VENDOR_SIZE]; - DWORD elfCulture; - PANOSE elfPanose; -} -alias tagEXTLOGFONTW EXTLOGFONTW; -alias tagEXTLOGFONTW* PEXTLOGFONTW; -alias tagEXTLOGFONTW* NPEXTLOGFONTW; -alias tagEXTLOGFONTW* LPEXTLOGFONTW; - -// #ifdef UNICODE -// ... -// #else -alias EXTLOGFONTA EXTLOGFONT; -alias PEXTLOGFONTA PEXTLOGFONT; -alias NPEXTLOGFONTA NPEXTLOGFONT; -alias LPEXTLOGFONTA LPEXTLOGFONT; -// #endif // UNICODE - -enum : uint { ELF_VERSION = 0 } -enum : uint { ELF_CULTURE_LATIN = 0 } - -enum : uint { RASTER_FONTTYPE = 0x0001 } -enum : uint { DEVICE_FONTTYPE = 0x002 } -enum : uint { TRUETYPE_FONTTYPE = 0x004 } - -COLORREF RGB(BYTE r, BYTE g, BYTE b){ return r|(g <<8)|(b << 16); } -COLORREF PALETTERGB(BYTE r, BYTE g, BYTE b){ return (0x02000000 | RGB(r,g,b)); } -COLORREF PALETTEINDEX(WORD i){ return (cast(COLORREF)(0x01000000 | cast(DWORD)cast(WORD)(i))); } - -enum : uint { PC_RESERVED = 0x01 } -enum : uint { PC_EXPLICIT = 0x02 } -enum : uint { PC_NOCOLLAPSE = 0x04 } - -BYTE GetRValue(COLORREF rgb){ return cast(BYTE)rgb; } -BYTE GetGValue(COLORREF rgb){ return cast(BYTE)(rgb >>> 8); } -BYTE GetBValue(COLORREF rgb){ return cast(BYTE)(rgb >>> 16); } - -enum : uint { TRANSPARENT = 1 } -enum : uint { OPAQUE = 2 } -enum : uint { BKMODE_LAST = 2 } - -enum : uint { GM_COMPATIBLE = 1 } -enum : uint { GM_ADVANCED = 2 } -enum : uint { GM_LAST = 2 } - -enum : uint { PT_CLOSEFIGURE = 0x01 } -enum : uint { PT_LINETO = 0x02 } -enum : uint { PT_BEZIERTO = 0x04 } -enum : uint { PT_MOVETO = 0x06 } - -enum : uint { MM_TEXT = 1 } -enum : uint { MM_LOMETRIC = 2 } -enum : uint { MM_HIMETRIC = 3 } -enum : uint { MM_LOENGLISH = 4 } -enum : uint { MM_HIENGLISH = 5 } -enum : uint { MM_TWIPS = 6 } -enum : uint { MM_ISOTROPIC = 7 } -enum : uint { MM_ANISOTROPIC = 8 } - -alias MM_TEXT MM_MIN; -alias MM_ANISOTROPIC MM_MAX; -alias MM_TWIPS MM_MAX_FIXEDSCALE; - -enum : uint { ABSOLUTE = 1 } -enum : uint { RELATIVE = 2 } - -enum : uint { WHITE_BRUSH = 0 } -enum : uint { LTGRAY_BRUSH = 1 } -enum : uint { GRAY_BRUSH = 2 } -enum : uint { DKGRAY_BRUSH = 3 } -enum : uint { BLACK_BRUSH = 4 } -enum : uint { NULL_BRUSH = 5 } -alias NULL_BRUSH HOLLOW_BRUSH; -enum : uint { WHITE_PEN = 6 } -enum : uint { BLACK_PEN = 7 } -enum : uint { NULL_PEN = 8 } -enum : uint { OEM_FIXED_FONT = 10 } -enum : uint { ANSI_FIXED_FONT = 11 } -enum : uint { ANSI_VAR_FONT = 12 } -enum : uint { SYSTEM_FONT = 13 } -enum : uint { DEVICE_DEFAULT_FONT = 14 } -enum : uint { DEFAULT_PALETTE = 15 } -enum : uint { SYSTEM_FIXED_FONT = 16 } - -// #if(WINVER >= 0x0400) -enum : uint { DEFAULT_GUI_FONT = 17 } -// #endif /* WINVER >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { DC_BRUSH = 18 } -enum : uint { DC_PEN = 19 } -// #endif - -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { STOCK_LAST = 19 } -// #elif (WINVER >= 0x0400) -// #... -// #else -// #... -// #endif - -enum : uint { CLR_INVALID = 0xFFFFFFFF } - -enum : uint { BS_SOLID = 0 } -enum : uint { BS_NULL = 1 } -alias BS_NULL BS_HOLLOW; -enum : uint { BS_HATCHED = 2 } -enum : uint { BS_PATTERN = 3 } -enum : uint { BS_INDEXED = 4 } -enum : uint { BS_DIBPATTERN = 5 } -enum : uint { BS_DIBPATTERNPT = 6 } -enum : uint { BS_PATTERN8X8 = 7 } -enum : uint { BS_DIBPATTERN8X8 = 8 } -enum : uint { BS_MONOPATTERN = 9 } - -enum : uint { HS_HORIZONTAL = 0 } -enum : uint { HS_VERTICAL = 1 } -enum : uint { HS_FDIAGONAL = 2 } -enum : uint { HS_BDIAGONAL = 3 } -enum : uint { HS_CROSS = 4 } -enum : uint { HS_DIAGCROSS = 5 } - -enum : uint { PS_SOLID = 0 } -enum : uint { PS_DASH = 1 } -enum : uint { PS_DOT = 2 } -enum : uint { PS_DASHDOT = 3 } -enum : uint { PS_DASHDOTDOT = 4 } -enum : uint { PS_NULL = 5 } -enum : uint { PS_INSIDEFRAME = 6 } -enum : uint { PS_USERSTYLE = 7 } -enum : uint { PS_ALTERNATE = 8 } -enum : uint { PS_STYLE_MASK = 0x0000000F } - -enum : uint { PS_ENDCAP_ROUND = 0x00000000 } -enum : uint { PS_ENDCAP_SQUARE = 0x00000100 } -enum : uint { PS_ENDCAP_FLAT = 0x00000200 } -enum : uint { PS_ENDCAP_MASK = 0x00000F00 } - -enum : uint { PS_JOIN_ROUND = 0x00000000 } -enum : uint { PS_JOIN_BEVEL = 0x00001000 } -enum : uint { PS_JOIN_MITER = 0x00002000 } -enum : uint { PS_JOIN_MASK = 0x0000F000 } - -enum : uint { PS_COSMETIC = 0x00000000 } -enum : uint { PS_GEOMETRIC = 0x00010000 } -enum : uint { PS_TYPE_MASK = 0x000F0000 } - -enum : uint { AD_COUNTERCLOCKWISE = 1 } -enum : uint { AD_CLOCKWISE = 2 } - -enum : uint { DRIVERVERSION = 0 } -enum : uint { TECHNOLOGY = 2 } -enum : uint { HORZSIZE = 4 } -enum : uint { VERTSIZE = 6 } -enum : uint { HORZRES = 8 } -enum : uint { VERTRES = 10 } -enum : uint { BITSPIXEL = 12 } -enum : uint { PLANES = 14 } -enum : uint { NUMBRUSHES = 16 } -enum : uint { NUMPENS = 18 } -enum : uint { NUMMARKERS = 20 } -enum : uint { NUMFONTS = 22 } -enum : uint { NUMCOLORS = 24 } -enum : uint { PDEVICESIZE = 26 } -enum : uint { CURVECAPS = 28 } -enum : uint { LINECAPS = 30 } -enum : uint { POLYGONALCAPS = 32 } -enum : uint { TEXTCAPS = 34 } -enum : uint { CLIPCAPS = 36 } -enum : uint { RASTERCAPS = 38 } -enum : uint { ASPECTX = 40 } -enum : uint { ASPECTY = 42 } -enum : uint { ASPECTXY = 44 } - -enum : uint { LOGPIXELSX = 88 } -enum : uint { LOGPIXELSY = 90 } - -enum : uint { SIZEPALETTE = 104 } -enum : uint { NUMRESERVED = 106 } -enum : uint { COLORRES = 108 } - -enum : uint { PHYSICALWIDTH = 110 } -enum : uint { PHYSICALHEIGHT = 111 } -enum : uint { PHYSICALOFFSETX = 112 } -enum : uint { PHYSICALOFFSETY = 113 } -enum : uint { SCALINGFACTORX = 114 } -enum : uint { SCALINGFACTORY = 115 } - -enum : uint { VREFRESH = 116 } - -enum : uint { DESKTOPVERTRES = 117 } - -enum : uint { DESKTOPHORZRES = 118 } - -enum : uint { BLTALIGNMENT = 119 } - -// #if(WINVER >= 0x0500) -enum : uint { SHADEBLENDCAPS = 120 } -enum : uint { COLORMGMTCAPS = 121 } -// #endif /* WINVER >= 0x0500 */ - -// #ifndef NOGDICAPMASKS - -enum : uint { DT_PLOTTER = 0 } -enum : uint { DT_RASDISPLAY = 1 } -enum : uint { DT_RASPRINTER = 2 } -enum : uint { DT_RASCAMERA = 3 } -enum : uint { DT_CHARSTREAM = 4 } -enum : uint { DT_METAFILE = 5 } -enum : uint { DT_DISPFILE = 6 } - -enum : uint { CC_NONE = 0 } -enum : uint { CC_CIRCLES = 1 } -enum : uint { CC_PIE = 2 } -enum : uint { CC_CHORD = 4 } -enum : uint { CC_ELLIPSES = 8 } -enum : uint { CC_WIDE = 16 } -enum : uint { CC_STYLED = 32 } -enum : uint { CC_WIDESTYLED = 64 } -enum : uint { CC_INTERIORS = 128 } -enum : uint { CC_ROUNDRECT = 256 } - -enum : uint { LC_NONE = 0 } -enum : uint { LC_POLYLINE = 2 } -enum : uint { LC_MARKER = 4 } -enum : uint { LC_POLYMARKER = 8 } -enum : uint { LC_WIDE = 16 } -enum : uint { LC_STYLED = 32 } -enum : uint { LC_WIDESTYLED = 64 } -enum : uint { LC_INTERIORS = 128 } - -enum : uint { PC_NONE = 0 } -enum : uint { PC_POLYGON = 1 } -enum : uint { PC_RECTANGLE = 2 } -enum : uint { PC_WINDPOLYGON = 4 } -enum : uint { PC_TRAPEZOID = 4 } -enum : uint { PC_SCANLINE = 8 } -enum : uint { PC_WIDE = 16 } -enum : uint { PC_STYLED = 32 } -enum : uint { PC_WIDESTYLED = 64 } -enum : uint { PC_INTERIORS = 128 } -enum : uint { PC_POLYPOLYGON = 256 } -enum : uint { PC_PATHS = 512 } - -enum : uint { CP_NONE = 0 } -enum : uint { CP_RECTANGLE = 1 } -enum : uint { CP_REGION = 2 } - -enum : uint { TC_OP_CHARACTER = 0x00000001 } -enum : uint { TC_OP_STROKE = 0x00000002 } -enum : uint { TC_CP_STROKE = 0x00000004 } -enum : uint { TC_CR_90 = 0x00000008 } -enum : uint { TC_CR_ANY = 0x00000010 } -enum : uint { TC_SF_X_YINDEP = 0x00000020 } -enum : uint { TC_SA_DOUBLE = 0x00000040 } -enum : uint { TC_SA_INTEGER = 0x00000080 } -enum : uint { TC_SA_CONTIN = 0x00000100 } -enum : uint { TC_EA_DOUBLE = 0x00000200 } -enum : uint { TC_IA_ABLE = 0x00000400 } -enum : uint { TC_UA_ABLE = 0x00000800 } -enum : uint { TC_SO_ABLE = 0x00001000 } -enum : uint { TC_RA_ABLE = 0x00002000 } -enum : uint { TC_VA_ABLE = 0x00004000 } -enum : uint { TC_RESERVED = 0x00008000 } -enum : uint { TC_SCROLLBLT = 0x00010000 } - -// #endif /* NOGDICAPMASKS */ - -// #define RC_NONE -enum : uint { RC_BITBLT = 1 } -enum : uint { RC_BANDING = 2 } -enum : uint { RC_SCALING = 4 } -enum : uint { RC_BITMAP64 = 8 } -enum : uint { RC_GDI20_OUTPUT = 0x0010 } -enum : uint { RC_GDI20_STATE = 0x0020 } -enum : uint { RC_SAVEBITMAP = 0x0040 } -enum : uint { RC_DI_BITMAP = 0x0080 } -enum : uint { RC_PALETTE = 0x0100 } -enum : uint { RC_DIBTODEV = 0x0200 } -enum : uint { RC_BIGFONT = 0x0400 } -enum : uint { RC_STRETCHBLT = 0x0800 } -enum : uint { RC_FLOODFILL = 0x1000 } -enum : uint { RC_STRETCHDIB = 0x2000 } -enum : uint { RC_OP_DX_OUTPUT = 0x4000 } -enum : uint { RC_DEVBITS = 0x8000 } - -// #if(WINVER >= 0x0500) - -enum : uint { SB_NONE = 0x00000000 } -enum : uint { SB_CONST_ALPHA = 0x00000001 } -enum : uint { SB_PIXEL_ALPHA = 0x00000002 } -enum : uint { SB_PREMULT_ALPHA = 0x00000004 } - -enum : uint { SB_GRAD_RECT = 0x00000010 } -enum : uint { SB_GRAD_TRI = 0x00000020 } - -enum : uint { CM_NONE = 0x00000000 } -enum : uint { CM_DEVICE_ICM = 0x00000001 } -enum : uint { CM_GAMMA_RAMP = 0x00000002 } -enum : uint { CM_CMYK_COLOR = 0x00000004 } - -// #endif /* WINVER >= 0x0500 */ - -enum : uint { DIB_RGB_COLORS = 0 } -enum : uint { DIB_PAL_COLORS = 1 } - -enum : uint { SYSPAL_ERROR = 0 } -enum : uint { SYSPAL_STATIC = 1 } -enum : uint { SYSPAL_NOSTATIC = 2 } -enum : uint { SYSPAL_NOSTATIC256 = 3 } - -enum : uint { CBM_INIT = 0x04 } - -enum : uint { FLOODFILLBORDER = 0 } -enum : uint { FLOODFILLSURFACE = 1 } - -enum : uint { CCHDEVICENAME = 32 } - -enum : uint { CCHFORMNAME = 32 } - -struct _devicemodeA { - BYTE dmDeviceName[CCHDEVICENAME]; - WORD dmSpecVersion; - WORD dmDriverVersion; - WORD dmSize; - WORD dmDriverExtra; - DWORD dmFields; -union { -struct { - short dmOrientation; - short dmPaperSize; - short dmPaperLength; - short dmPaperWidth; -} - - POINTL dmPosition; -} - - short dmScale; - short dmCopies; - short dmDefaultSource; - short dmPrintQuality; - short dmColor; - short dmDuplex; - short dmYResolution; - short dmTTOption; - short dmCollate; - BYTE dmFormName[CCHFORMNAME]; - WORD dmLogPixels; - DWORD dmBitsPerPel; - DWORD dmPelsWidth; - DWORD dmPelsHeight; -union { - DWORD dmDisplayFlags; - DWORD dmNup; -} - - DWORD dmDisplayFrequency; -// #if(WINVER >= 0x0400) - DWORD dmICMMethod; - DWORD dmICMIntent; - DWORD dmMediaType; - DWORD dmDitherType; - DWORD dmReserved1; - DWORD dmReserved2; -// #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400) - DWORD dmPanningWidth; - DWORD dmPanningHeight; -// #endif -// #endif /* WINVER >= 0x0400 */ -} -alias _devicemodeA DEVMODEA; -alias _devicemodeA* PDEVMODEA; -alias _devicemodeA* NPDEVMODEA; -alias _devicemodeA* LPDEVMODEA; - -struct _devicemodeW { - WCHAR dmDeviceName[CCHDEVICENAME]; - WORD dmSpecVersion; - WORD dmDriverVersion; - WORD dmSize; - WORD dmDriverExtra; - DWORD dmFields; -union { -struct { - short dmOrientation; - short dmPaperSize; - short dmPaperLength; - short dmPaperWidth; -} - - POINTL dmPosition; -} - - short dmScale; - short dmCopies; - short dmDefaultSource; - short dmPrintQuality; - short dmColor; - short dmDuplex; - short dmYResolution; - short dmTTOption; - short dmCollate; - WCHAR dmFormName[CCHFORMNAME]; - WORD dmLogPixels; - DWORD dmBitsPerPel; - DWORD dmPelsWidth; - DWORD dmPelsHeight; -union { - DWORD dmDisplayFlags; - DWORD dmNup; -} - - DWORD dmDisplayFrequency; -// #if(WINVER >= 0x0400) - DWORD dmICMMethod; - DWORD dmICMIntent; - DWORD dmMediaType; - DWORD dmDitherType; - DWORD dmReserved1; - DWORD dmReserved2; -// #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400) - DWORD dmPanningWidth; - DWORD dmPanningHeight; -// #endif -// #endif /* WINVER >= 0x0400 */ -} -alias _devicemodeW DEVMODEW; -alias _devicemodeW* PDEVMODEW; -alias _devicemodeW* NPDEVMODEW; -alias _devicemodeW* LPDEVMODEW; - -// #ifdef UNICODE -// ... -// #else -alias DEVMODEA DEVMODE; -alias PDEVMODEA PDEVMODE; -alias NPDEVMODEA NPDEVMODE; -alias LPDEVMODEA LPDEVMODE; -// #endif // UNICODE - -// #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400) -enum : uint { DM_SPECVERSION = 0x0401 } -// #elif (WINVER >= 0x0400) -// #... -// #else -// #... -// #endif /* WINVER */ - -enum : uint { DM_ORIENTATION = 0x00000001 } -enum : uint { DM_PAPERSIZE = 0x00000002 } -enum : uint { DM_PAPERLENGTH = 0x00000004 } -enum : uint { DM_PAPERWIDTH = 0x00000008 } -enum : uint { DM_SCALE = 0x00000010 } -// #if(WINVER >= 0x0500) -enum : uint { DM_POSITION = 0x00000020 } -enum : uint { DM_NUP = 0x00000040 } -// #endif /* WINVER >= 0x0500 */ -enum : uint { DM_COPIES = 0x00000100 } -enum : uint { DM_DEFAULTSOURCE = 0x00000200 } -enum : uint { DM_PRINTQUALITY = 0x00000400 } -enum : uint { DM_COLOR = 0x00000800 } -enum : uint { DM_DUPLEX = 0x00001000 } -enum : uint { DM_YRESOLUTION = 0x00002000 } -enum : uint { DM_TTOPTION = 0x00004000 } -enum : uint { DM_COLLATE = 0x00008000 } -enum : uint { DM_FORMNAME = 0x00010000 } -enum : uint { DM_LOGPIXELS = 0x00020000 } -enum : uint { DM_BITSPERPEL = 0x00040000 } -enum : uint { DM_PELSWIDTH = 0x00080000 } -enum : uint { DM_PELSHEIGHT = 0x00100000 } -enum : uint { DM_DISPLAYFLAGS = 0x00200000 } -enum : uint { DM_DISPLAYFREQUENCY = 0x00400000 } -// #if(WINVER >= 0x0400) -enum : uint { DM_ICMMETHOD = 0x00800000 } -enum : uint { DM_ICMINTENT = 0x01000000 } -enum : uint { DM_MEDIATYPE = 0x02000000 } -enum : uint { DM_DITHERTYPE = 0x04000000 } -enum : uint { DM_PANNINGWIDTH = 0x08000000 } -enum : uint { DM_PANNINGHEIGHT = 0x10000000 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { DMORIENT_PORTRAIT = 1 } -enum : uint { DMORIENT_LANDSCAPE = 2 } - -enum { DMPAPER_FIRST = 1 } -enum : uint { DMPAPER_LETTER = 1 } -enum : uint { DMPAPER_LETTERSMALL = 2 } -enum : uint { DMPAPER_TABLOID = 3 } -enum : uint { DMPAPER_LEDGER = 4 } -enum : uint { DMPAPER_LEGAL = 5 } -enum : uint { DMPAPER_STATEMENT = 6 } -enum : uint { DMPAPER_EXECUTIVE = 7 } -enum : uint { DMPAPER_A3 = 8 } -enum : uint { DMPAPER_A4 = 9 } -enum : uint { DMPAPER_A4SMALL = 10 } -enum : uint { DMPAPER_A5 = 11 } -enum : uint { DMPAPER_B4 = 12 } -enum : uint { DMPAPER_B5 = 13 } -enum : uint { DMPAPER_FOLIO = 14 } -enum : uint { DMPAPER_QUARTO = 15 } -enum : uint { DMPAPER_10X14 = 16 } -enum : uint { DMPAPER_11X17 = 17 } -enum : uint { DMPAPER_NOTE = 18 } -enum : uint { DMPAPER_ENV_9 = 19 } -enum : uint { DMPAPER_ENV_10 = 20 } -enum : uint { DMPAPER_ENV_11 = 21 } -enum : uint { DMPAPER_ENV_12 = 22 } -enum : uint { DMPAPER_ENV_14 = 23 } -enum : uint { DMPAPER_CSHEET = 24 } -enum : uint { DMPAPER_DSHEET = 25 } -enum : uint { DMPAPER_ESHEET = 26 } -enum : uint { DMPAPER_ENV_DL = 27 } -enum : uint { DMPAPER_ENV_C5 = 28 } -enum : uint { DMPAPER_ENV_C3 = 29 } -enum : uint { DMPAPER_ENV_C4 = 30 } -enum : uint { DMPAPER_ENV_C6 = 31 } -enum : uint { DMPAPER_ENV_C65 = 32 } -enum : uint { DMPAPER_ENV_B4 = 33 } -enum : uint { DMPAPER_ENV_B5 = 34 } -enum : uint { DMPAPER_ENV_B6 = 35 } -enum : uint { DMPAPER_ENV_ITALY = 36 } -enum : uint { DMPAPER_ENV_MONARCH = 37 } -enum : uint { DMPAPER_ENV_PERSONAL = 38 } -enum : uint { DMPAPER_FANFOLD_US = 39 } -enum : uint { DMPAPER_FANFOLD_STD_GERMAN = 40 } -enum : uint { DMPAPER_FANFOLD_LGL_GERMAN = 41 } -// #if(WINVER >= 0x0400) -enum : uint { DMPAPER_ISO_B4 = 42 } -enum : uint { DMPAPER_JAPANESE_POSTCARD = 43 } -enum : uint { DMPAPER_9X11 = 44 } -enum : uint { DMPAPER_10X11 = 45 } -enum : uint { DMPAPER_15X11 = 46 } -enum : uint { DMPAPER_ENV_INVITE = 47 } -enum : uint { DMPAPER_RESERVED_48 = 48 } -enum : uint { DMPAPER_RESERVED_49 = 49 } -enum : uint { DMPAPER_LETTER_EXTRA = 50 } -enum : uint { DMPAPER_LEGAL_EXTRA = 51 } -enum : uint { DMPAPER_TABLOID_EXTRA = 52 } -enum : uint { DMPAPER_A4_EXTRA = 53 } -enum : uint { DMPAPER_LETTER_TRANSVERSE = 54 } -enum : uint { DMPAPER_A4_TRANSVERSE = 55 } -enum : uint { DMPAPER_LETTER_EXTRA_TRANSVERSE = 56 } -enum : uint { DMPAPER_A_PLUS = 57 } -enum : uint { DMPAPER_B_PLUS = 58 } -enum : uint { DMPAPER_LETTER_PLUS = 59 } -enum : uint { DMPAPER_A4_PLUS = 60 } -enum : uint { DMPAPER_A5_TRANSVERSE = 61 } -enum : uint { DMPAPER_B5_TRANSVERSE = 62 } -enum : uint { DMPAPER_A3_EXTRA = 63 } -enum : uint { DMPAPER_A5_EXTRA = 64 } -enum : uint { DMPAPER_B5_EXTRA = 65 } -enum : uint { DMPAPER_A2 = 66 } -enum : uint { DMPAPER_A3_TRANSVERSE = 67 } -enum : uint { DMPAPER_A3_EXTRA_TRANSVERSE = 68 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -enum : uint { DMPAPER_DBL_JAPANESE_POSTCARD = 69 } -enum : uint { DMPAPER_A6 = 70 } -enum : uint { DMPAPER_JENV_KAKU2 = 71 } -enum : uint { DMPAPER_JENV_KAKU3 = 72 } -enum : uint { DMPAPER_JENV_CHOU3 = 73 } -enum : uint { DMPAPER_JENV_CHOU4 = 74 } -enum : uint { DMPAPER_LETTER_ROTATED = 75 } -enum : uint { DMPAPER_A3_ROTATED = 76 } -enum : uint { DMPAPER_A4_ROTATED = 77 } -enum : uint { DMPAPER_A5_ROTATED = 78 } -enum : uint { DMPAPER_B4_JIS_ROTATED = 79 } -enum : uint { DMPAPER_B5_JIS_ROTATED = 80 } -enum : uint { DMPAPER_JAPANESE_POSTCARD_ROTATED = 81 } -enum : uint { DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED = 82 } -enum : uint { DMPAPER_A6_ROTATED = 83 } -enum : uint { DMPAPER_JENV_KAKU2_ROTATED = 84 } -enum : uint { DMPAPER_JENV_KAKU3_ROTATED = 85 } -enum : uint { DMPAPER_JENV_CHOU3_ROTATED = 86 } -enum : uint { DMPAPER_JENV_CHOU4_ROTATED = 87 } -enum : uint { DMPAPER_B6_JIS = 88 } -enum : uint { DMPAPER_B6_JIS_ROTATED = 89 } -enum : uint { DMPAPER_12X11 = 90 } -enum : uint { DMPAPER_JENV_YOU4 = 91 } -enum : uint { DMPAPER_JENV_YOU4_ROTATED = 92 } -enum : uint { DMPAPER_P16K = 93 } -enum : uint { DMPAPER_P32K = 94 } -enum : uint { DMPAPER_P32KBIG = 95 } -enum : uint { DMPAPER_PENV_1 = 96 } -enum : uint { DMPAPER_PENV_2 = 97 } -enum : uint { DMPAPER_PENV_3 = 98 } -enum : uint { DMPAPER_PENV_4 = 99 } -enum : uint { DMPAPER_PENV_5 = 100 } -enum : uint { DMPAPER_PENV_6 = 101 } -enum : uint { DMPAPER_PENV_7 = 102 } -enum : uint { DMPAPER_PENV_8 = 103 } -enum : uint { DMPAPER_PENV_9 = 104 } -enum : uint { DMPAPER_PENV_10 = 105 } -enum : uint { DMPAPER_P16K_ROTATED = 106 } -enum : uint { DMPAPER_P32K_ROTATED = 107 } -enum : uint { DMPAPER_P32KBIG_ROTATED = 108 } -enum : uint { DMPAPER_PENV_1_ROTATED = 109 } -enum : uint { DMPAPER_PENV_2_ROTATED = 110 } -enum : uint { DMPAPER_PENV_3_ROTATED = 111 } -enum : uint { DMPAPER_PENV_4_ROTATED = 112 } -enum : uint { DMPAPER_PENV_5_ROTATED = 113 } -enum : uint { DMPAPER_PENV_6_ROTATED = 114 } -enum : uint { DMPAPER_PENV_7_ROTATED = 115 } -enum : uint { DMPAPER_PENV_8_ROTATED = 116 } -enum : uint { DMPAPER_PENV_9_ROTATED = 117 } -enum : uint { DMPAPER_PENV_10_ROTATED = 118 } -// #endif /* WINVER >= 0x0500 */ - -// #if (WINVER >= 0x0500) -alias DMPAPER_PENV_10_ROTATED DMPAPER_LAST; -// #elif (WINVER >= 0x0400) -// #... -// #else -// #... -// #endif - -enum : uint { DMPAPER_USER = 256 } - -enum { DMBIN_FIRST = 1 } -enum : uint { DMBIN_UPPER = 1 } -enum : uint { DMBIN_ONLYONE = 1 } -enum : uint { DMBIN_LOWER = 2 } -enum : uint { DMBIN_MIDDLE = 3 } -enum : uint { DMBIN_MANUAL = 4 } -enum : uint { DMBIN_ENVELOPE = 5 } -enum : uint { DMBIN_ENVMANUAL = 6 } -enum : uint { DMBIN_AUTO = 7 } -enum : uint { DMBIN_TRACTOR = 8 } -enum : uint { DMBIN_SMALLFMT = 9 } -enum : uint { DMBIN_LARGEFMT = 10 } -enum : uint { DMBIN_LARGECAPACITY = 11 } -enum : uint { DMBIN_CASSETTE = 14 } -enum : uint { DMBIN_FORMSOURCE = 15 } -alias DMBIN_FORMSOURCE DMBIN_LAST; - -enum : uint { DMBIN_USER = 256 } - -enum { DMRES_DRAFT = -1 } -enum { DMRES_LOW = -2 } -enum { DMRES_MEDIUM = -3 } -enum { DMRES_HIGH = -4 } - -enum : uint { DMCOLOR_MONOCHROME = 1 } -enum : uint { DMCOLOR_COLOR = 2 } - -enum : uint { DMDUP_SIMPLEX = 1 } -enum : uint { DMDUP_VERTICAL = 2 } -enum : uint { DMDUP_HORIZONTAL = 3 } - -enum : uint { DMTT_BITMAP = 1 } -enum : uint { DMTT_DOWNLOAD = 2 } -enum : uint { DMTT_SUBDEV = 3 } -// #if(WINVER >= 0x0400) -enum : uint { DMTT_DOWNLOAD_OUTLINE = 4 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { DMCOLLATE_FALSE = 0 } -enum : uint { DMCOLLATE_TRUE = 1 } - -enum : uint { DMDISPLAYFLAGS_TEXTMODE = 0x00000004 } - -enum : uint { DMNUP_SYSTEM = 1 } -enum : uint { DMNUP_ONEUP = 2 } - -// #if(WINVER >= 0x0400) - -enum : uint { DMICMMETHOD_NONE = 1 } -enum : uint { DMICMMETHOD_SYSTEM = 2 } -enum : uint { DMICMMETHOD_DRIVER = 3 } -enum : uint { DMICMMETHOD_DEVICE = 4 } - -enum : uint { DMICMMETHOD_USER = 256 } - -enum : uint { DMICM_SATURATE = 1 } -enum : uint { DMICM_CONTRAST = 2 } -enum : uint { DMICM_COLORIMETRIC = 3 } -enum : uint { DMICM_ABS_COLORIMETRIC = 4 } - -enum : uint { DMICM_USER = 256 } - -enum : uint { DMMEDIA_STANDARD = 1 } -enum : uint { DMMEDIA_TRANSPARENCY = 2 } -enum : uint { DMMEDIA_GLOSSY = 3 } - -enum : uint { DMMEDIA_USER = 256 } - -enum : uint { DMDITHER_NONE = 1 } -enum : uint { DMDITHER_COARSE = 2 } -enum : uint { DMDITHER_FINE = 3 } -enum : uint { DMDITHER_LINEART = 4 } -enum : uint { DMDITHER_ERRORDIFFUSION = 5 } -enum : uint { DMDITHER_RESERVED6 = 6 } -enum : uint { DMDITHER_RESERVED7 = 7 } -enum : uint { DMDITHER_RESERVED8 = 8 } -enum : uint { DMDITHER_RESERVED9 = 9 } -enum : uint { DMDITHER_GRAYSCALE = 10 } - -enum : uint { DMDITHER_USER = 256 } -// #endif /* WINVER >= 0x0400 */ - -struct _DISPLAY_DEVICEA { - DWORD cb; - CHAR DeviceName[32]; - CHAR DeviceString[128]; - DWORD StateFlags; - CHAR DeviceID[128]; - CHAR DeviceKey[128]; -} -alias _DISPLAY_DEVICEA DISPLAY_DEVICEA; -alias _DISPLAY_DEVICEA* PDISPLAY_DEVICEA; -alias _DISPLAY_DEVICEA* LPDISPLAY_DEVICEA; - -struct _DISPLAY_DEVICEW { - DWORD cb; - WCHAR DeviceName[32]; - WCHAR DeviceString[128]; - DWORD StateFlags; - WCHAR DeviceID[128]; - WCHAR DeviceKey[128]; -} -alias _DISPLAY_DEVICEW DISPLAY_DEVICEW; -alias _DISPLAY_DEVICEW* PDISPLAY_DEVICEW; -alias _DISPLAY_DEVICEW* LPDISPLAY_DEVICEW; - -// #ifdef UNICODE -// ... -// #else -alias DISPLAY_DEVICEA DISPLAY_DEVICE; -alias PDISPLAY_DEVICEA PDISPLAY_DEVICE; -alias LPDISPLAY_DEVICEA LPDISPLAY_DEVICE; -// #endif // UNICODE - -enum : uint { DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = 0x00000001 } -enum : uint { DISPLAY_DEVICE_MULTI_DRIVER = 0x00000002 } -enum : uint { DISPLAY_DEVICE_PRIMARY_DEVICE = 0x00000004 } -enum : uint { DISPLAY_DEVICE_MIRRORING_DRIVER = 0x00000008 } -enum : uint { DISPLAY_DEVICE_VGA_COMPATIBLE = 0x00000010 } -enum : uint { DISPLAY_DEVICE_REMOVABLE = 0x00000020 } -enum : uint { DISPLAY_DEVICE_MODESPRUNED = 0x08000000 } -enum : uint { DISPLAY_DEVICE_REMOTE = 0x04000000 } -enum : uint { DISPLAY_DEVICE_DISCONNECT = 0x02000000 } - -enum : uint { DISPLAY_DEVICE_ACTIVE = 0x00000001 } -enum : uint { DISPLAY_DEVICE_ATTACHED = 0x00000002 } - -enum : uint { RDH_RECTANGLES = 1 } - -struct _RGNDATAHEADER { - DWORD dwSize; - DWORD iType; - DWORD nCount; - DWORD nRgnSize; - RECT rcBound; -} -alias _RGNDATAHEADER RGNDATAHEADER; -alias _RGNDATAHEADER* PRGNDATAHEADER; - -struct _RGNDATA { - RGNDATAHEADER rdh; - char Buffer[1]; -} -alias _RGNDATA RGNDATA; -alias _RGNDATA* PRGNDATA; -alias _RGNDATA* NPRGNDATA; -alias _RGNDATA* LPRGNDATA; - -enum : uint { SYSRGN = 4 } - -struct _ABC { - int abcA; - UINT abcB; - int abcC; -} -alias _ABC ABC; -alias _ABC* PABC; -alias _ABC* NPABC; -alias _ABC* LPABC; - -struct _ABCFLOAT { - FLOAT abcfA; - FLOAT abcfB; - FLOAT abcfC; -} -alias _ABCFLOAT ABCFLOAT; -alias _ABCFLOAT* PABCFLOAT; -alias _ABCFLOAT* NPABCFLOAT; -alias _ABCFLOAT* LPABCFLOAT; - -// #ifndef NOTEXTMETRIC - -// #ifdef _MAC -// #... -// #endif -struct _OUTLINETEXTMETRICA { - UINT otmSize; - TEXTMETRICA otmTextMetrics; - BYTE otmFiller; - PANOSE otmPanoseNumber; - UINT otmfsSelection; - UINT otmfsType; - int otmsCharSlopeRise; - int otmsCharSlopeRun; - int otmItalicAngle; - UINT otmEMSquare; - int otmAscent; - int otmDescent; - UINT otmLineGap; - UINT otmsCapEmHeight; - UINT otmsXHeight; - RECT otmrcFontBox; - int otmMacAscent; - int otmMacDescent; - UINT otmMacLineGap; - UINT otmusMinimumPPEM; - POINT otmptSubscriptSize; - POINT otmptSubscriptOffset; - POINT otmptSuperscriptSize; - POINT otmptSuperscriptOffset; - UINT otmsStrikeoutSize; - int otmsStrikeoutPosition; - int otmsUnderscoreSize; - int otmsUnderscorePosition; - PSTR otmpFamilyName; - PSTR otmpFaceName; - PSTR otmpStyleName; - PSTR otmpFullName; -} -alias _OUTLINETEXTMETRICA OUTLINETEXTMETRICA; -alias _OUTLINETEXTMETRICA* POUTLINETEXTMETRICA; -alias _OUTLINETEXTMETRICA* NPOUTLINETEXTMETRICA; -alias _OUTLINETEXTMETRICA* LPOUTLINETEXTMETRICA; - -struct _OUTLINETEXTMETRICW { - UINT otmSize; - TEXTMETRICW otmTextMetrics; - BYTE otmFiller; - PANOSE otmPanoseNumber; - UINT otmfsSelection; - UINT otmfsType; - int otmsCharSlopeRise; - int otmsCharSlopeRun; - int otmItalicAngle; - UINT otmEMSquare; - int otmAscent; - int otmDescent; - UINT otmLineGap; - UINT otmsCapEmHeight; - UINT otmsXHeight; - RECT otmrcFontBox; - int otmMacAscent; - int otmMacDescent; - UINT otmMacLineGap; - UINT otmusMinimumPPEM; - POINT otmptSubscriptSize; - POINT otmptSubscriptOffset; - POINT otmptSuperscriptSize; - POINT otmptSuperscriptOffset; - UINT otmsStrikeoutSize; - int otmsStrikeoutPosition; - int otmsUnderscoreSize; - int otmsUnderscorePosition; - PSTR otmpFamilyName; - PSTR otmpFaceName; - PSTR otmpStyleName; - PSTR otmpFullName; -} -alias _OUTLINETEXTMETRICW OUTLINETEXTMETRICW; -alias _OUTLINETEXTMETRICW* POUTLINETEXTMETRICW; -alias _OUTLINETEXTMETRICW* NPOUTLINETEXTMETRICW; -alias _OUTLINETEXTMETRICW* LPOUTLINETEXTMETRICW; - -// #ifdef UNICODE -// ... -// #else -alias OUTLINETEXTMETRICA OUTLINETEXTMETRIC; -alias POUTLINETEXTMETRICA POUTLINETEXTMETRIC; -alias NPOUTLINETEXTMETRICA NPOUTLINETEXTMETRIC; -alias LPOUTLINETEXTMETRICA LPOUTLINETEXTMETRIC; -// #endif // UNICODE - -// #ifdef _MAC -// #... -// #endif - -// #endif /* NOTEXTMETRIC */ - -struct tagPOLYTEXTA { - int x; - int y; - UINT n; - LPCSTR lpstr; - UINT uiFlags; - RECT rcl; - int *pdx; -} -alias tagPOLYTEXTA POLYTEXTA; -alias tagPOLYTEXTA* PPOLYTEXTA; -alias tagPOLYTEXTA* NPPOLYTEXTA; -alias tagPOLYTEXTA* LPPOLYTEXTA; - -struct tagPOLYTEXTW { - int x; - int y; - UINT n; - LPCWSTR lpstr; - UINT uiFlags; - RECT rcl; - int *pdx; -} -alias tagPOLYTEXTW POLYTEXTW; -alias tagPOLYTEXTW* PPOLYTEXTW; -alias tagPOLYTEXTW* NPPOLYTEXTW; -alias tagPOLYTEXTW* LPPOLYTEXTW; - -// #ifdef UNICODE -// ... -// #else -alias POLYTEXTA POLYTEXT; -alias PPOLYTEXTA PPOLYTEXT; -alias NPPOLYTEXTA NPPOLYTEXT; -alias LPPOLYTEXTA LPPOLYTEXT; -// #endif // UNICODE - -struct _FIXED { -// #ifndef _MAC - WORD fract; - short value; -// #else -// ... -// #endif -} -alias _FIXED FIXED; - -struct _MAT2 { - FIXED eM11; - FIXED eM12; - FIXED eM21; - FIXED eM22; -} -alias _MAT2 MAT2; -alias _MAT2* LPMAT2; - -struct _GLYPHMETRICS { - UINT gmBlackBoxX; - UINT gmBlackBoxY; - POINT gmptGlyphOrigin; - short gmCellIncX; - short gmCellIncY; -} -alias _GLYPHMETRICS GLYPHMETRICS; -alias _GLYPHMETRICS* LPGLYPHMETRICS; - -enum : uint { GGO_METRICS = 0 } -enum : uint { GGO_BITMAP = 1 } -enum : uint { GGO_NATIVE = 2 } -enum : uint { GGO_BEZIER = 3 } - -// #if(WINVER >= 0x0400) -enum : uint { GGO_GRAY2_BITMAP = 4 } -enum : uint { GGO_GRAY4_BITMAP = 5 } -enum : uint { GGO_GRAY8_BITMAP = 6 } -enum : uint { GGO_GLYPH_INDEX = 0x0080 } -// #endif /* WINVER >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { GGO_UNHINTED = 0x0100 } -// #endif // (_WIN32_WINNT >= 0x0500) - -enum : uint { TT_POLYGON_TYPE = 24 } - -enum : uint { TT_PRIM_LINE = 1 } -enum : uint { TT_PRIM_QSPLINE = 2 } -enum : uint { TT_PRIM_CSPLINE = 3 } - -struct tagPOINTFX { - FIXED x; - FIXED y; -} -alias tagPOINTFX POINTFX; -alias tagPOINTFX* LPPOINTFX; - -struct tagTTPOLYCURVE { - WORD wType; - WORD cpfx; - POINTFX apfx[1]; -} -alias tagTTPOLYCURVE TTPOLYCURVE; -alias tagTTPOLYCURVE* LPTTPOLYCURVE; - -struct tagTTPOLYGONHEADER { - DWORD cb; - DWORD dwType; - POINTFX pfxStart; -} -alias tagTTPOLYGONHEADER TTPOLYGONHEADER; -alias tagTTPOLYGONHEADER* LPTTPOLYGONHEADER; - -// #if(WINVER >= 0x0400) -enum : uint { GCP_DBCS = 0x0001 } -enum : uint { GCP_REORDER = 0x0002 } -enum : uint { GCP_USEKERNING = 0x0008 } -enum : uint { GCP_GLYPHSHAPE = 0x0010 } -enum : uint { GCP_LIGATE = 0x0020 } - -enum : uint { GCP_DIACRITIC = 0x0100 } -enum : uint { GCP_KASHIDA = 0x0400 } -enum : uint { GCP_ERROR = 0x8000 } -enum : uint { FLI_MASK = 0x103B } - -enum : uint { GCP_JUSTIFY = 0x00010000 } - -enum : uint { FLI_GLYPHS = 0x00040000 } -enum : uint { GCP_CLASSIN = 0x00080000 } -enum : uint { GCP_MAXEXTENT = 0x00100000 } -enum : uint { GCP_JUSTIFYIN = 0x00200000 } -enum : uint { GCP_DISPLAYZWG = 0x00400000 } -enum : uint { GCP_SYMSWAPOFF = 0x00800000 } -enum : uint { GCP_NUMERICOVERRIDE = 0x01000000 } -enum : uint { GCP_NEUTRALOVERRIDE = 0x02000000 } -enum : uint { GCP_NUMERICSLATIN = 0x04000000 } -enum : uint { GCP_NUMERICSLOCAL = 0x08000000 } - -enum : uint { GCPCLASS_LATIN = 1 } -enum : uint { GCPCLASS_HEBREW = 2 } -enum : uint { GCPCLASS_ARABIC = 2 } -enum : uint { GCPCLASS_NEUTRAL = 3 } -enum : uint { GCPCLASS_LOCALNUMBER = 4 } -enum : uint { GCPCLASS_LATINNUMBER = 5 } -enum : uint { GCPCLASS_LATINNUMERICTERMINATOR = 6 } -enum : uint { GCPCLASS_LATINNUMERICSEPARATOR = 7 } -enum : uint { GCPCLASS_NUMERICSEPARATOR = 8 } -enum : uint { GCPCLASS_PREBOUNDLTR = 0x80 } -enum : uint { GCPCLASS_PREBOUNDRTL = 0x40 } -enum : uint { GCPCLASS_POSTBOUNDLTR = 0x20 } -enum : uint { GCPCLASS_POSTBOUNDRTL = 0x10 } - -enum : uint { GCPGLYPH_LINKBEFORE = 0x8000 } -enum : uint { GCPGLYPH_LINKAFTER = 0x4000 } - -struct tagGCP_RESULTSA { - DWORD lStructSize; - LPSTR lpOutString; - UINT *lpOrder; - int *lpDx; - int *lpCaretPos; - LPSTR lpClass; - LPWSTR lpGlyphs; - UINT nGlyphs; - int nMaxFit; -} -alias tagGCP_RESULTSA GCP_RESULTSA; -alias tagGCP_RESULTSA* LPGCP_RESULTSA; - -struct tagGCP_RESULTSW { - DWORD lStructSize; - LPWSTR lpOutString; - UINT *lpOrder; - int *lpDx; - int *lpCaretPos; - LPSTR lpClass; - LPWSTR lpGlyphs; - UINT nGlyphs; - int nMaxFit; -} -alias tagGCP_RESULTSW GCP_RESULTSW; -alias tagGCP_RESULTSW* LPGCP_RESULTSW; - -// #ifdef UNICODE -// ... -// #else -alias GCP_RESULTSA GCP_RESULTS; -alias LPGCP_RESULTSA LPGCP_RESULTS; -// #endif // UNICODE -// #endif /* WINVER >= 0x0400 */ - -struct _RASTERIZER_STATUS { - short nSize; - short wFlags; - short nLanguageID; -} -alias _RASTERIZER_STATUS RASTERIZER_STATUS; -alias _RASTERIZER_STATUS* LPRASTERIZER_STATUS; - -enum : uint { TT_AVAILABLE = 0x0001 } -enum : uint { TT_ENABLED = 0x0002 } - -struct tagPIXELFORMATDESCRIPTOR { - WORD nSize; - WORD nVersion; - DWORD dwFlags; - BYTE iPixelType; - BYTE cColorBits; - BYTE cRedBits; - BYTE cRedShift; - BYTE cGreenBits; - BYTE cGreenShift; - BYTE cBlueBits; - BYTE cBlueShift; - BYTE cAlphaBits; - BYTE cAlphaShift; - BYTE cAccumBits; - BYTE cAccumRedBits; - BYTE cAccumGreenBits; - BYTE cAccumBlueBits; - BYTE cAccumAlphaBits; - BYTE cDepthBits; - BYTE cStencilBits; - BYTE cAuxBuffers; - BYTE iLayerType; - BYTE bReserved; - DWORD dwLayerMask; - DWORD dwVisibleMask; - DWORD dwDamageMask; -} -alias tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR; -alias tagPIXELFORMATDESCRIPTOR* PPIXELFORMATDESCRIPTOR; -alias tagPIXELFORMATDESCRIPTOR* LPPIXELFORMATDESCRIPTOR; - -enum : uint { PFD_TYPE_RGBA = 0 } -enum : uint { PFD_TYPE_COLORINDEX = 1 } - -enum : uint { PFD_MAIN_PLANE = 0 } -enum : uint { PFD_OVERLAY_PLANE = 1 } -enum { PFD_UNDERLAY_PLANE = -1 } - -enum : uint { PFD_DOUBLEBUFFER = 0x00000001 } -enum : uint { PFD_STEREO = 0x00000002 } -enum : uint { PFD_DRAW_TO_WINDOW = 0x00000004 } -enum : uint { PFD_DRAW_TO_BITMAP = 0x00000008 } -enum : uint { PFD_SUPPORT_GDI = 0x00000010 } -enum : uint { PFD_SUPPORT_OPENGL = 0x00000020 } -enum : uint { PFD_GENERIC_FORMAT = 0x00000040 } -enum : uint { PFD_NEED_PALETTE = 0x00000080 } -enum : uint { PFD_NEED_SYSTEM_PALETTE = 0x00000100 } -enum : uint { PFD_SWAP_EXCHANGE = 0x00000200 } -enum : uint { PFD_SWAP_COPY = 0x00000400 } -enum : uint { PFD_SWAP_LAYER_BUFFERS = 0x00000800 } -enum : uint { PFD_GENERIC_ACCELERATED = 0x00001000 } -enum : uint { PFD_SUPPORT_DIRECTDRAW = 0x00002000 } - -enum : uint { PFD_DEPTH_DONTCARE = 0x20000000 } -enum : uint { PFD_DOUBLEBUFFER_DONTCARE = 0x40000000 } -enum : uint { PFD_STEREO_DONTCARE = 0x80000000 } - -// #ifdef STRICT -// #if !defined(NOTEXTMETRIC) -extern(Windows) alias int function( LOGFONTA *, TEXTMETRICA *, DWORD, LPARAM) OLDFONTENUMPROCA; -extern(Windows) alias int function( LOGFONTW *, TEXTMETRICW *, DWORD, LPARAM) OLDFONTENUMPROCW; -// #ifdef UNICODE -// #... -// #else -alias OLDFONTENUMPROCA OLDFONTENUMPROC; -// #endif // !UNICODE -// #else -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE -// #endif - -alias OLDFONTENUMPROCA FONTENUMPROCA; -alias OLDFONTENUMPROCW FONTENUMPROCW; -// #ifdef UNICODE -// ... -// #else -alias FONTENUMPROCA FONTENUMPROC; -// #endif // UNICODE - -extern(Windows) alias int function(LPVOID, LPARAM) GOBJENUMPROC; -extern(Windows) alias VOID function(int, int, LPARAM) LINEDDAPROC; -// #else -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE -// ... -// #endif - -extern(Windows) export int AddFontResourceA(LPCSTR); -extern(Windows) export int AddFontResourceW(LPCWSTR); -// #ifdef UNICODE -// #... -// #else -alias AddFontResourceA AddFontResource; -// #endif // !UNICODE - -extern(Windows) export BOOL AnimatePalette(HPALETTE, UINT, UINT, PALETTEENTRY *); -extern(Windows) export BOOL Arc(HDC, int, int, int, int, int, int, int, int); -extern(Windows) export BOOL BitBlt(HDC, int, int, int, int, HDC, int, int, DWORD); -extern(Windows) export BOOL CancelDC(HDC); -extern(Windows) export BOOL Chord(HDC, int, int, int, int, int, int, int, int); -extern(Windows) export int ChoosePixelFormat(HDC, PIXELFORMATDESCRIPTOR *); -extern(Windows) export HMETAFILE CloseMetaFile(HDC); -extern(Windows) export int CombineRgn(HRGN, HRGN, HRGN, int); -extern(Windows) export HMETAFILE CopyMetaFileA(HMETAFILE, LPCSTR); -extern(Windows) export HMETAFILE CopyMetaFileW(HMETAFILE, LPCWSTR); -// #ifdef UNICODE -// #... -// #else -alias CopyMetaFileA CopyMetaFile; -// #endif // !UNICODE -extern(Windows) export HBITMAP CreateBitmap(int, int, UINT, UINT, VOID *); -extern(Windows) export HBITMAP CreateBitmapIndirect(BITMAP *); -extern(Windows) export HBRUSH CreateBrushIndirect(LOGBRUSH *); -extern(Windows) export HBITMAP CreateCompatibleBitmap(HDC, int, int); -extern(Windows) export HBITMAP CreateDiscardableBitmap(HDC, int, int); -extern(Windows) export HDC CreateCompatibleDC(HDC); -extern(Windows) export HDC CreateDCA(LPCSTR, LPCSTR, LPCSTR, DEVMODEA *); -extern(Windows) export HDC CreateDCW(LPCWSTR, LPCWSTR, LPCWSTR, DEVMODEW *); -// #ifdef UNICODE -// #... -// #else -alias CreateDCA CreateDC; -// #endif // !UNICODE -extern(Windows) export HBITMAP CreateDIBitmap(HDC, BITMAPINFOHEADER *, DWORD, VOID *, BITMAPINFO *, UINT); -extern(Windows) export HBRUSH CreateDIBPatternBrush(HGLOBAL, UINT); -extern(Windows) export HBRUSH CreateDIBPatternBrushPt(VOID *, UINT); -extern(Windows) export HRGN CreateEllipticRgn(int, int, int, int); -extern(Windows) export HRGN CreateEllipticRgnIndirect(RECT *); -extern(Windows) export HFONT CreateFontIndirectA(LOGFONTA *); -extern(Windows) export HFONT CreateFontIndirectW(LOGFONTW *); -// #ifdef UNICODE -// #... -// #else -alias CreateFontIndirectA CreateFontIndirect; -// #endif // !UNICODE -extern(Windows) export HFONT CreateFontA(int, int, int, int, int, DWORD, - DWORD, DWORD, DWORD, DWORD, DWORD, - DWORD, DWORD, LPCSTR); -extern(Windows) export HFONT CreateFontW(int, int, int, int, int, DWORD, - DWORD, DWORD, DWORD, DWORD, DWORD, - DWORD, DWORD, LPCWSTR); -// #ifdef UNICODE -// #... -// #else -alias CreateFontA CreateFont; -// #endif // !UNICODE - -extern(Windows) export HBRUSH CreateHatchBrush(int, COLORREF); -extern(Windows) export HDC CreateICA(LPCSTR, LPCSTR, LPCSTR, DEVMODEA *); -extern(Windows) export HDC CreateICW(LPCWSTR, LPCWSTR, LPCWSTR, DEVMODEW *); -// #ifdef UNICODE -// #... -// #else -alias CreateICA CreateIC; -// #endif // !UNICODE -extern(Windows) export HDC CreateMetaFileA(LPCSTR); -extern(Windows) export HDC CreateMetaFileW(LPCWSTR); -// #ifdef UNICODE -// #... -// #else -alias CreateMetaFileA CreateMetaFile; -// #endif // !UNICODE -extern(Windows) export HPALETTE CreatePalette(LOGPALETTE *); -extern(Windows) export HPEN CreatePen(int, int, COLORREF); -extern(Windows) export HPEN CreatePenIndirect(LOGPEN *); -extern(Windows) export HRGN CreatePolyPolygonRgn(POINT *, INT *, int, int); -extern(Windows) export HBRUSH CreatePatternBrush(HBITMAP); -extern(Windows) export HRGN CreateRectRgn(int, int, int, int); -extern(Windows) export HRGN CreateRectRgnIndirect(RECT *); -extern(Windows) export HRGN CreateRoundRectRgn(int, int, int, int, int, int); -extern(Windows) export BOOL CreateScalableFontResourceA(DWORD, LPCSTR, LPCSTR, LPCSTR); -extern(Windows) export BOOL CreateScalableFontResourceW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR); -// #ifdef UNICODE -// #... -// #else -alias CreateScalableFontResourceA CreateScalableFontResource; -// #endif // !UNICODE -extern(Windows) export HBRUSH CreateSolidBrush(COLORREF); - -extern(Windows) export BOOL DeleteDC(HDC); -extern(Windows) export BOOL DeleteMetaFile(HMETAFILE); -extern(Windows) export BOOL DeleteObject(HGDIOBJ); -extern(Windows) export int DescribePixelFormat(HDC, int, UINT, LPPIXELFORMATDESCRIPTOR); - -extern(Windows) alias UINT function(HWND, HMODULE, LPDEVMODE, LPSTR, LPSTR, LPDEVMODE, LPSTR, UINT) LPFNDEVMODE; - -extern(Windows) alias DWORD function(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODE) LPFNDEVCAPS; - -enum : uint { DM_UPDATE = 1 } -enum : uint { DM_COPY = 2 } -enum : uint { DM_PROMPT = 4 } -enum : uint { DM_MODIFY = 8 } - -alias DM_MODIFY DM_IN_BUFFER; -alias DM_PROMPT DM_IN_PROMPT; -alias DM_COPY DM_OUT_BUFFER; -alias DM_UPDATE DM_OUT_DEFAULT; - -enum : uint { DC_FIELDS = 1 } -enum : uint { DC_PAPERS = 2 } -enum : uint { DC_PAPERSIZE = 3 } -enum : uint { DC_MINEXTENT = 4 } -enum : uint { DC_MAXEXTENT = 5 } -enum : uint { DC_BINS = 6 } -enum : uint { DC_DUPLEX = 7 } -enum : uint { DC_SIZE = 8 } -enum : uint { DC_EXTRA = 9 } -enum : uint { DC_VERSION = 10 } -enum : uint { DC_DRIVER = 11 } -enum : uint { DC_BINNAMES = 12 } -enum : uint { DC_ENUMRESOLUTIONS = 13 } -enum : uint { DC_FILEDEPENDENCIES = 14 } -enum : uint { DC_TRUETYPE = 15 } -enum : uint { DC_PAPERNAMES = 16 } -enum : uint { DC_ORIENTATION = 17 } -enum : uint { DC_COPIES = 18 } -// #if(WINVER >= 0x0400) -enum : uint { DC_BINADJUST = 19 } -enum : uint { DC_EMF_COMPLIANT = 20 } -enum : uint { DC_DATATYPE_PRODUCED = 21 } -enum : uint { DC_COLLATE = 22 } -enum : uint { DC_MANUFACTURER = 23 } -enum : uint { DC_MODEL = 24 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -enum : uint { DC_PERSONALITY = 25 } -enum : uint { DC_PRINTRATE = 26 } -enum : uint { DC_PRINTRATEUNIT = 27 } -enum : uint { PRINTRATEUNIT_PPM = 1 } -enum : uint { PRINTRATEUNIT_CPS = 2 } -enum : uint { PRINTRATEUNIT_LPM = 3 } -enum : uint { PRINTRATEUNIT_IPM = 4 } -enum : uint { DC_PRINTERMEM = 28 } -enum : uint { DC_MEDIAREADY = 29 } -enum : uint { DC_STAPLE = 30 } -enum : uint { DC_PRINTRATEPPM = 31 } -enum : uint { DC_COLORDEVICE = 32 } -enum : uint { DC_NUP = 33 } -enum : uint { DC_MEDIATYPENAMES = 34 } -enum : uint { DC_MEDIATYPES = 35 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { DCTT_BITMAP = 0x0000001 } -enum : uint { DCTT_DOWNLOAD = 0x0000002 } -enum : uint { DCTT_SUBDEV = 0x0000004 } -// #if(WINVER >= 0x0400) -enum : uint { DCTT_DOWNLOAD_OUTLINE = 0x0000008 } - -enum : uint { DCBA_FACEUPNONE = 0x0000 } -enum : uint { DCBA_FACEUPCENTER = 0x0001 } -enum : uint { DCBA_FACEUPLEFT = 0x0002 } -enum : uint { DCBA_FACEUPRIGHT = 0x0003 } -enum : uint { DCBA_FACEDOWNNONE = 0x0100 } -enum : uint { DCBA_FACEDOWNCENTER = 0x0101 } -enum : uint { DCBA_FACEDOWNLEFT = 0x0102 } -enum : uint { DCBA_FACEDOWNRIGHT = 0x0103 } -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export int DeviceCapabilitiesA(LPCSTR, LPCSTR, WORD, - LPSTR, DEVMODEA *); -extern(Windows) export int DeviceCapabilitiesW(LPCWSTR, LPCWSTR, WORD, - LPWSTR, DEVMODEW *); -// #ifdef UNICODE -// #... -// #else -alias DeviceCapabilitiesA DeviceCapabilities; -// #endif // !UNICODE - -extern(Windows) export int DrawEscape(HDC, int, int, LPCSTR); -extern(Windows) export BOOL Ellipse(HDC, int, int, int, int); - -// #if(WINVER >= 0x0400) -extern(Windows) export int EnumFontFamiliesExA(HDC, LPLOGFONTA, FONTENUMPROCA, LPARAM, DWORD); -extern(Windows) export int EnumFontFamiliesExW(HDC, LPLOGFONTW, FONTENUMPROCW, LPARAM, DWORD); -// #ifdef UNICODE -// #... -// #else -alias EnumFontFamiliesExA EnumFontFamiliesEx; -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export int EnumFontFamiliesA(HDC, LPCSTR, FONTENUMPROCA, LPARAM); -extern(Windows) export int EnumFontFamiliesW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM); -// #ifdef UNICODE -// #... -// #else -alias EnumFontFamiliesA EnumFontFamilies; -// #endif // !UNICODE -extern(Windows) export int EnumFontsA(HDC, LPCSTR, FONTENUMPROCA, LPARAM); -extern(Windows) export int EnumFontsW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM); -// #ifdef UNICODE -// #... -// #else -alias EnumFontsA EnumFonts; -// #endif // !UNICODE - -// #ifdef STRICT -extern(Windows) export int EnumObjects(HDC, int, GOBJENUMPROC, LPARAM); -// #else -// ... -// #endif - -extern(Windows) export BOOL EqualRgn(HRGN, HRGN); -extern(Windows) export int Escape(HDC, int, int, LPCSTR, LPVOID); -extern(Windows) export int ExtEscape(HDC, int, int, LPCSTR, int, LPSTR); -extern(Windows) export int ExcludeClipRect(HDC, int, int, int, int); -extern(Windows) export HRGN ExtCreateRegion(XFORM *, DWORD, RGNDATA *); -extern(Windows) export BOOL ExtFloodFill(HDC, int, int, COLORREF, UINT); -extern(Windows) export BOOL FillRgn(HDC, HRGN, HBRUSH); -extern(Windows) export BOOL FloodFill(HDC, int, int, COLORREF); -extern(Windows) export BOOL FrameRgn(HDC, HRGN, HBRUSH, int, int); -extern(Windows) export int GetROP2(HDC); -extern(Windows) export BOOL GetAspectRatioFilterEx(HDC, LPSIZE); -extern(Windows) export COLORREF GetBkColor(HDC); - -// #if (_WIN32_WINNT >= 0x0500) -extern(Windows) export COLORREF GetDCBrushColor(HDC); -extern(Windows) export COLORREF GetDCPenColor(HDC); -// #endif - -extern(Windows) export int GetBkMode(HDC); -extern(Windows) export LONG GetBitmapBits(HBITMAP, LONG, LPVOID); -extern(Windows) export BOOL GetBitmapDimensionEx(HBITMAP, LPSIZE); -extern(Windows) export UINT GetBoundsRect(HDC, LPRECT, UINT); - -extern(Windows) export BOOL GetBrushOrgEx(HDC, LPPOINT); - -extern(Windows) export BOOL GetCharWidthA(HDC, UINT, UINT, LPINT); -extern(Windows) export BOOL GetCharWidthW(HDC, UINT, UINT, LPINT); -// #ifdef UNICODE -// #... -// #else -alias GetCharWidthA GetCharWidth; -// #endif // !UNICODE -extern(Windows) export BOOL GetCharWidth32A(HDC, UINT, UINT, LPINT); -extern(Windows) export BOOL GetCharWidth32W(HDC, UINT, UINT, LPINT); -// #ifdef UNICODE -// #... -// #else -alias GetCharWidth32A GetCharWidth32; -// #endif // !UNICODE -extern(Windows) export BOOL GetCharWidthFloatA(HDC, UINT, UINT, PFLOAT); -extern(Windows) export BOOL GetCharWidthFloatW(HDC, UINT, UINT, PFLOAT); -// #ifdef UNICODE -// #... -// #else -alias GetCharWidthFloatA GetCharWidthFloat; -// #endif // !UNICODE -extern(Windows) export BOOL GetCharABCWidthsA(HDC, UINT, UINT, LPABC); -extern(Windows) export BOOL GetCharABCWidthsW(HDC, UINT, UINT, LPABC); -// #ifdef UNICODE -// #... -// #else -alias GetCharABCWidthsA GetCharABCWidths; -// #endif // !UNICODE -extern(Windows) export BOOL GetCharABCWidthsFloatA(HDC, UINT, UINT, LPABCFLOAT); -extern(Windows) export BOOL GetCharABCWidthsFloatW(HDC, UINT, UINT, LPABCFLOAT); -// #ifdef UNICODE -// #... -// #else -alias GetCharABCWidthsFloatA GetCharABCWidthsFloat; -// #endif // !UNICODE -extern(Windows) export int GetClipBox(HDC, LPRECT); -extern(Windows) export int GetClipRgn(HDC, HRGN); -extern(Windows) export int GetMetaRgn(HDC, HRGN); -extern(Windows) export HGDIOBJ GetCurrentObject(HDC, UINT); -extern(Windows) export BOOL GetCurrentPositionEx(HDC, LPPOINT); -extern(Windows) export int GetDeviceCaps(HDC, int); -extern(Windows) export int GetDIBits(HDC, HBITMAP, UINT, UINT, LPVOID, LPBITMAPINFO, UINT); -extern(Windows) export DWORD GetFontData(HDC, DWORD, DWORD, LPVOID, DWORD); -extern(Windows) export DWORD GetGlyphOutlineA(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, LPVOID, MAT2 *); -extern(Windows) export DWORD GetGlyphOutlineW(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, LPVOID, MAT2 *); -// #ifdef UNICODE -// #... -// #else -alias GetGlyphOutlineA GetGlyphOutline; -// #endif // !UNICODE -extern(Windows) export int GetGraphicsMode(HDC); -extern(Windows) export int GetMapMode(HDC); -extern(Windows) export UINT GetMetaFileBitsEx(HMETAFILE, UINT, LPVOID); -extern(Windows) export HMETAFILE GetMetaFileA(LPCSTR); -extern(Windows) export HMETAFILE GetMetaFileW(LPCWSTR); -// #ifdef UNICODE -// #... -// #else -alias GetMetaFileA GetMetaFile; -// #endif // !UNICODE -extern(Windows) export COLORREF GetNearestColor(HDC, COLORREF); -extern(Windows) export UINT GetNearestPaletteIndex(HPALETTE, COLORREF); -extern(Windows) export DWORD GetObjectType(HGDIOBJ h); - -// #ifndef NOTEXTMETRIC - -extern(Windows) export UINT GetOutlineTextMetricsA(HDC, UINT, LPOUTLINETEXTMETRICA); -extern(Windows) export UINT GetOutlineTextMetricsW(HDC, UINT, LPOUTLINETEXTMETRICW); -// #ifdef UNICODE -// #... -// #else -alias GetOutlineTextMetricsA GetOutlineTextMetrics; -// #endif // !UNICODE - -// #endif /* NOTEXTMETRIC */ - -extern(Windows) export UINT GetPaletteEntries(HPALETTE, UINT, UINT, LPPALETTEENTRY); -extern(Windows) export COLORREF GetPixel(HDC, int, int); -extern(Windows) export int GetPixelFormat(HDC); -extern(Windows) export int GetPolyFillMode(HDC); -extern(Windows) export BOOL GetRasterizerCaps(LPRASTERIZER_STATUS, UINT); -extern(Windows) export int GetRandomRgn(HDC, HRGN, INT); -extern(Windows) export DWORD GetRegionData(HRGN, DWORD, LPRGNDATA); -extern(Windows) export int GetRgnBox(HRGN, LPRECT); -extern(Windows) export HGDIOBJ GetStockObject(int); -extern(Windows) export int GetStretchBltMode(HDC); -extern(Windows) export UINT GetSystemPaletteEntries(HDC, UINT, UINT, LPPALETTEENTRY); -extern(Windows) export UINT GetSystemPaletteUse(HDC); -extern(Windows) export int GetTextCharacterExtra(HDC); -extern(Windows) export UINT GetTextAlign(HDC); -extern(Windows) export COLORREF GetTextColor(HDC); - -extern(Windows) export BOOL GetTextExtentPointA( - HDC, - LPCSTR, - int, - LPSIZE); -extern(Windows) export BOOL GetTextExtentPointW( - HDC, - LPCWSTR, - int, - LPSIZE); -// #ifdef UNICODE -// #... -// #else -alias GetTextExtentPointA GetTextExtentPoint; -// #endif // !UNICODE - -extern(Windows) export BOOL GetTextExtentPoint32A( - HDC, - LPCSTR, - int, - LPSIZE); -extern(Windows) export BOOL GetTextExtentPoint32W( - HDC, - LPCWSTR, - int, - LPSIZE); -// #ifdef UNICODE -// #... -// #else -alias GetTextExtentPoint32A GetTextExtentPoint32; -// #endif // !UNICODE - -extern(Windows) export BOOL GetTextExtentExPointA( - HDC, - LPCSTR, - int, - int, - LPINT, - LPINT, - LPSIZE); -extern(Windows) export BOOL GetTextExtentExPointW( - HDC, - LPCWSTR, - int, - int, - LPINT, - LPINT, - LPSIZE); -// #ifdef UNICODE -// #... -// #else -alias GetTextExtentExPointA GetTextExtentExPoint; -// #endif // !UNICODE -// #if(WINVER >= 0x0400) -extern(Windows) export int GetTextCharset(HDC hdc); -extern(Windows) export int GetTextCharsetInfo(HDC hdc, LPFONTSIGNATURE lpSig, DWORD dwFlags); -extern(Windows) export BOOL TranslateCharsetInfo(DWORD *lpSrc, LPCHARSETINFO lpCs, DWORD dwFlags); -extern(Windows) export DWORD GetFontLanguageInfo(HDC ); -extern(Windows) export DWORD GetCharacterPlacementA(HDC, LPCSTR, int, int, LPGCP_RESULTSA, DWORD); -extern(Windows) export DWORD GetCharacterPlacementW(HDC, LPCWSTR, int, int, LPGCP_RESULTSW, DWORD); -// #ifdef UNICODE -// #... -// #else -alias GetCharacterPlacementA GetCharacterPlacement; -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0500) - -struct tagWCRANGE { - WCHAR wcLow; - USHORT cGlyphs; -} -alias tagWCRANGE WCRANGE; -alias tagWCRANGE* PWCRANGE; -alias tagWCRANGE* LPWCRANGE; - -struct tagGLYPHSET { - DWORD cbThis; - DWORD flAccel; - DWORD cGlyphsSupported; - DWORD cRanges; - WCRANGE ranges[1]; -} -alias tagGLYPHSET GLYPHSET; -alias tagGLYPHSET* PGLYPHSET; -alias tagGLYPHSET* LPGLYPHSET; - -enum : uint { GS_8BIT_INDICES = 0x00000001 } - -enum : uint { GGI_MARK_NONEXISTING_GLYPHS = 0X0001 } - -extern(Windows) export DWORD GetFontUnicodeRanges(HDC, LPGLYPHSET); -extern(Windows) export DWORD GetGlyphIndicesA(HDC, LPCSTR, int, LPWORD, DWORD); -extern(Windows) export DWORD GetGlyphIndicesW(HDC, LPCWSTR, int, LPWORD, DWORD); -// #ifdef UNICODE -// #... -// #else -alias GetGlyphIndicesA GetGlyphIndices; -// #endif // !UNICODE -extern(Windows) export BOOL GetTextExtentPointI(HDC, LPWORD, int, LPSIZE); -extern(Windows) export BOOL GetTextExtentExPointI(HDC, LPWORD, int, int, LPINT, LPINT, LPSIZE); -extern(Windows) export BOOL GetCharWidthI(HDC, UINT, UINT, LPWORD, LPINT); -extern(Windows) export BOOL GetCharABCWidthsI(HDC, UINT, UINT, LPWORD, LPABC); - -enum : uint { STAMP_DESIGNVECTOR = 0x8000000 + 'd' + ('v' << 8) } -enum : uint { STAMP_AXESLIST = 0x8000000 + 'a' + ('l' << 8) } -enum : uint { MM_MAX_NUMAXES = 16 } - -struct tagDESIGNVECTOR { - DWORD dvReserved; - DWORD dvNumAxes; - LONG dvValues[MM_MAX_NUMAXES]; -} -alias tagDESIGNVECTOR DESIGNVECTOR; -alias tagDESIGNVECTOR* PDESIGNVECTOR; -alias tagDESIGNVECTOR* LPDESIGNVECTOR; - -extern(Windows) export int AddFontResourceExA(LPCSTR, DWORD, PVOID); -extern(Windows) export int AddFontResourceExW(LPCWSTR, DWORD, PVOID); -// #ifdef UNICODE -// #... -// #else -alias AddFontResourceExA AddFontResourceEx; -// #endif // !UNICODE -extern(Windows) export BOOL RemoveFontResourceExA(LPCSTR, DWORD, PVOID); -extern(Windows) export BOOL RemoveFontResourceExW(LPCWSTR, DWORD, PVOID); -// #ifdef UNICODE -// #... -// #else -alias RemoveFontResourceExA RemoveFontResourceEx; -// #endif // !UNICODE -extern(Windows) export HANDLE AddFontMemResourceEx(PVOID, DWORD, PVOID , DWORD*); -extern(Windows) export BOOL RemoveFontMemResourceEx(HANDLE); -enum : uint { FR_PRIVATE = 0x10 } -enum : uint { FR_NOT_ENUM = 0x20 } - -enum : uint { MM_MAX_AXES_NAMELEN = 16 } - -struct tagAXISINFOA { - LONG axMinValue; - LONG axMaxValue; - BYTE axAxisName[MM_MAX_AXES_NAMELEN]; -} -alias tagAXISINFOA AXISINFOA; -alias tagAXISINFOA* PAXISINFOA; -alias tagAXISINFOA* LPAXISINFOA; - -struct tagAXISINFOW { - LONG axMinValue; - LONG axMaxValue; - WCHAR axAxisName[MM_MAX_AXES_NAMELEN]; -} -alias tagAXISINFOW AXISINFOW; -alias tagAXISINFOW* PAXISINFOW; -alias tagAXISINFOW* LPAXISINFOW; - -// #ifdef UNICODE -// ... -// #else -alias AXISINFOA AXISINFO; -alias PAXISINFOA PAXISINFO; -alias LPAXISINFOA LPAXISINFO; -// #endif // UNICODE - -struct tagAXESLISTA { - DWORD axlReserved; - DWORD axlNumAxes; - AXISINFOA axlAxisInfo[MM_MAX_NUMAXES]; -} -alias tagAXESLISTA AXESLISTA; -alias tagAXESLISTA* PAXESLISTA; -alias tagAXESLISTA* LPAXESLISTA; - -struct tagAXESLISTW { - DWORD axlReserved; - DWORD axlNumAxes; - AXISINFOW axlAxisInfo[MM_MAX_NUMAXES]; -} -alias tagAXESLISTW AXESLISTW; -alias tagAXESLISTW* PAXESLISTW; -alias tagAXESLISTW* LPAXESLISTW; - -// #ifdef UNICODE -// ... -// #else -alias AXESLISTA AXESLIST; -alias PAXESLISTA PAXESLIST; -alias LPAXESLISTA LPAXESLIST; -// #endif // UNICODE - -struct tagENUMLOGFONTEXDVA { - ENUMLOGFONTEXA elfEnumLogfontEx; - DESIGNVECTOR elfDesignVector; -} -alias tagENUMLOGFONTEXDVA ENUMLOGFONTEXDVA; -alias tagENUMLOGFONTEXDVA* PENUMLOGFONTEXDVA; -alias tagENUMLOGFONTEXDVA* LPENUMLOGFONTEXDVA; - -struct tagENUMLOGFONTEXDVW { - ENUMLOGFONTEXW elfEnumLogfontEx; - DESIGNVECTOR elfDesignVector; -} -alias tagENUMLOGFONTEXDVW ENUMLOGFONTEXDVW; -alias tagENUMLOGFONTEXDVW* PENUMLOGFONTEXDVW; -alias tagENUMLOGFONTEXDVW* LPENUMLOGFONTEXDVW; - -// #ifdef UNICODE -// ... -// #else -alias ENUMLOGFONTEXDVA ENUMLOGFONTEXDV; -alias PENUMLOGFONTEXDVA PENUMLOGFONTEXDV; -alias LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV; -// #endif // UNICODE - -extern(Windows) export HFONT CreateFontIndirectExA(ENUMLOGFONTEXDVA *); -extern(Windows) export HFONT CreateFontIndirectExW(ENUMLOGFONTEXDVW *); -// #ifdef UNICODE -// #... -// #else -alias CreateFontIndirectExA CreateFontIndirectEx; -// #endif // !UNICODE - -// #ifndef NOTEXTMETRIC -struct tagENUMTEXTMETRICA { - NEWTEXTMETRICEXA etmNewTextMetricEx; - AXESLISTA etmAxesList; -} -alias tagENUMTEXTMETRICA ENUMTEXTMETRICA; -alias tagENUMTEXTMETRICA* PENUMTEXTMETRICA; -alias tagENUMTEXTMETRICA* LPENUMTEXTMETRICA; - -struct tagENUMTEXTMETRICW { - NEWTEXTMETRICEXW etmNewTextMetricEx; - AXESLISTW etmAxesList; -} -alias tagENUMTEXTMETRICW ENUMTEXTMETRICW; -alias tagENUMTEXTMETRICW* PENUMTEXTMETRICW; -alias tagENUMTEXTMETRICW* LPENUMTEXTMETRICW; - -// #ifdef UNICODE -// ... -// #else -alias ENUMTEXTMETRICA ENUMTEXTMETRIC; -alias PENUMTEXTMETRICA PENUMTEXTMETRIC; -alias LPENUMTEXTMETRICA LPENUMTEXTMETRIC; -// #endif // UNICODE -// #endif /* NOTEXTMETRIC */ - -// #endif // (_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL GetViewportExtEx(HDC, LPSIZE); -extern(Windows) export BOOL GetViewportOrgEx(HDC, LPPOINT); -extern(Windows) export BOOL GetWindowExtEx(HDC, LPSIZE); -extern(Windows) export BOOL GetWindowOrgEx(HDC, LPPOINT); - -extern(Windows) export int IntersectClipRect(HDC, int, int, int, int); -extern(Windows) export BOOL InvertRgn(HDC, HRGN); -extern(Windows) export BOOL LineDDA(int, int, int, int, LINEDDAPROC, LPARAM); -extern(Windows) export BOOL LineTo(HDC, int, int); -extern(Windows) export BOOL MaskBlt(HDC, int, int, int, int, - HDC, int, int, HBITMAP, int, int, DWORD); -extern(Windows) export BOOL PlgBlt(HDC, POINT *, HDC, int, int, int, - int, HBITMAP, int, int); - -extern(Windows) export int OffsetClipRgn(HDC, int, int); -extern(Windows) export int OffsetRgn(HRGN, int, int); -extern(Windows) export BOOL PatBlt(HDC, int, int, int, int, DWORD); -extern(Windows) export BOOL Pie(HDC, int, int, int, int, int, int, int, int); -extern(Windows) export BOOL PlayMetaFile(HDC, HMETAFILE); -extern(Windows) export BOOL PaintRgn(HDC, HRGN); -extern(Windows) export BOOL PolyPolygon(HDC, POINT *, INT *, int); -extern(Windows) export BOOL PtInRegion(HRGN, int, int); -extern(Windows) export BOOL PtVisible(HDC, int, int); -extern(Windows) export BOOL RectInRegion(HRGN, RECT *); -extern(Windows) export BOOL RectVisible(HDC, RECT *); -extern(Windows) export BOOL Rectangle(HDC, int, int, int, int); -extern(Windows) export BOOL RestoreDC(HDC, int); -extern(Windows) export HDC ResetDCA(HDC, DEVMODEA *); -extern(Windows) export HDC ResetDCW(HDC, DEVMODEW *); -// #ifdef UNICODE -// #... -// #else -alias ResetDCA ResetDC; -// #endif // !UNICODE -extern(Windows) export UINT RealizePalette(HDC); -extern(Windows) export BOOL RemoveFontResourceA(LPCSTR); -extern(Windows) export BOOL RemoveFontResourceW(LPCWSTR); -// #ifdef UNICODE -// #... -// #else -alias RemoveFontResourceA RemoveFontResource; -// #endif // !UNICODE -extern(Windows) export BOOL RoundRect(HDC, int, int, int, int, int, int); -extern(Windows) export BOOL ResizePalette(HPALETTE, UINT); - -extern(Windows) export int SaveDC(HDC); -extern(Windows) export int SelectClipRgn(HDC, HRGN); -extern(Windows) export int ExtSelectClipRgn(HDC, HRGN, int); -extern(Windows) export int SetMetaRgn(HDC); -extern(Windows) export HGDIOBJ SelectObject(HDC, HGDIOBJ); -extern(Windows) export HPALETTE SelectPalette(HDC, HPALETTE, BOOL); -extern(Windows) export COLORREF SetBkColor(HDC, COLORREF); - -// #if (_WIN32_WINNT >= 0x0500) -extern(Windows) export COLORREF SetDCBrushColor(HDC, COLORREF); -extern(Windows) export COLORREF SetDCPenColor(HDC, COLORREF); -// #endif - -extern(Windows) export int SetBkMode(HDC, int); -extern(Windows) export LONG SetBitmapBits(HBITMAP, DWORD, VOID *); - -extern(Windows) export UINT SetBoundsRect(HDC, RECT *, UINT); -extern(Windows) export int SetDIBits(HDC, HBITMAP, UINT, UINT, VOID *, BITMAPINFO *, UINT); -extern(Windows) export int SetDIBitsToDevice(HDC, int, int, DWORD, DWORD, int, - int, UINT, UINT, VOID *, BITMAPINFO *, UINT); -extern(Windows) export DWORD SetMapperFlags(HDC, DWORD); -extern(Windows) export int SetGraphicsMode(HDC hdc, int iMode); -extern(Windows) export int SetMapMode(HDC, int); - -// #if(WINVER >= 0x0500) -extern(Windows) export DWORD SetLayout(HDC, DWORD); -extern(Windows) export DWORD GetLayout(HDC); -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export HMETAFILE SetMetaFileBitsEx(UINT, BYTE *); -extern(Windows) export UINT SetPaletteEntries(HPALETTE, UINT, UINT, PALETTEENTRY *); -extern(Windows) export COLORREF SetPixel(HDC, int, int, COLORREF); -extern(Windows) export BOOL SetPixelV(HDC, int, int, COLORREF); -extern(Windows) export BOOL SetPixelFormat(HDC, int, PIXELFORMATDESCRIPTOR *); -extern(Windows) export int SetPolyFillMode(HDC, int); -extern(Windows) export BOOL StretchBlt(HDC, int, int, int, int, HDC, int, int, int, int, DWORD); -extern(Windows) export BOOL SetRectRgn(HRGN, int, int, int, int); -extern(Windows) export int StretchDIBits(HDC, int, int, int, int, int, int, int, int, - VOID *, BITMAPINFO *, UINT, DWORD); -extern(Windows) export int SetROP2(HDC, int); -extern(Windows) export int SetStretchBltMode(HDC, int); -extern(Windows) export UINT SetSystemPaletteUse(HDC, UINT); -extern(Windows) export int SetTextCharacterExtra(HDC, int); -extern(Windows) export COLORREF SetTextColor(HDC, COLORREF); -extern(Windows) export UINT SetTextAlign(HDC, UINT); -extern(Windows) export BOOL SetTextJustification(HDC, int, int); -extern(Windows) export BOOL UpdateColors(HDC); - -// #if (WINVER >= 0x0400) - -alias USHORT COLOR16; - -struct _TRIVERTEX { - LONG x; - LONG y; - COLOR16 Red; - COLOR16 Green; - COLOR16 Blue; - COLOR16 Alpha; -} -alias _TRIVERTEX TRIVERTEX; -alias _TRIVERTEX* PTRIVERTEX; -alias _TRIVERTEX* LPTRIVERTEX; - -struct _GRADIENT_TRIANGLE { - ULONG Vertex1; - ULONG Vertex2; - ULONG Vertex3; -} -alias _GRADIENT_TRIANGLE GRADIENT_TRIANGLE; -alias _GRADIENT_TRIANGLE* PGRADIENT_TRIANGLE; -alias _GRADIENT_TRIANGLE* LPGRADIENT_TRIANGLE; - -struct _GRADIENT_RECT { - ULONG UpperLeft; - ULONG LowerRight; -} -alias _GRADIENT_RECT GRADIENT_RECT; -alias _GRADIENT_RECT* PGRADIENT_RECT; -alias _GRADIENT_RECT* LPGRADIENT_RECT; - -struct _BLENDFUNCTION { - BYTE BlendOp; - BYTE BlendFlags; - BYTE SourceConstantAlpha; - BYTE AlphaFormat; -} -alias _BLENDFUNCTION BLENDFUNCTION; -alias _BLENDFUNCTION* PBLENDFUNCTION; - -enum : uint { AC_SRC_OVER = 0x00 } - -enum : uint { AC_SRC_ALPHA = 0x01 } - -extern(Windows) export BOOL AlphaBlend(HDC, int, int, int, int, HDC, int, int, int, int, BLENDFUNCTION); - -extern(Windows) export BOOL TransparentBlt(HDC, int, int, int, int, HDC, int, int, int, int, UINT); - -enum : uint { GRADIENT_FILL_RECT_H = 0x00000000 } -enum : uint { GRADIENT_FILL_RECT_V = 0x00000001 } -enum : uint { GRADIENT_FILL_TRIANGLE = 0x00000002 } -enum : uint { GRADIENT_FILL_OP_FLAG = 0x000000ff } - -extern(Windows) export BOOL GradientFill(HDC, PTRIVERTEX, ULONG, PVOID, ULONG, ULONG); - -// #endif - -// #ifndef NOMETAFILE - -extern(Windows) export BOOL PlayMetaFileRecord(HDC, LPHANDLETABLE, LPMETARECORD, UINT); -extern(Windows) alias int function( HDC, HANDLETABLE *, METARECORD *, int, LPARAM) MFENUMPROC; -extern(Windows) export BOOL EnumMetaFile(HDC, HMETAFILE, MFENUMPROC, LPARAM); - -extern(Windows) alias int function(HDC, HANDLETABLE *, ENHMETARECORD *, int, LPARAM) ENHMFENUMPROC; - -extern(Windows) export HENHMETAFILE CloseEnhMetaFile(HDC); -extern(Windows) export HENHMETAFILE CopyEnhMetaFileA(HENHMETAFILE, LPCSTR); -extern(Windows) export HENHMETAFILE CopyEnhMetaFileW(HENHMETAFILE, LPCWSTR); -// #ifdef UNICODE -// #... -// #else -alias CopyEnhMetaFileA CopyEnhMetaFile; -// #endif // !UNICODE -extern(Windows) export HDC CreateEnhMetaFileA(HDC, LPCSTR, RECT *, LPCSTR); -extern(Windows) export HDC CreateEnhMetaFileW(HDC, LPCWSTR, RECT *, LPCWSTR); -// #ifdef UNICODE -// #... -// #else -alias CreateEnhMetaFileA CreateEnhMetaFile; -// #endif // !UNICODE -extern(Windows) export BOOL DeleteEnhMetaFile(HENHMETAFILE); -extern(Windows) export BOOL EnumEnhMetaFile(HDC, HENHMETAFILE, ENHMFENUMPROC, - LPVOID, RECT *); -extern(Windows) export HENHMETAFILE GetEnhMetaFileA(LPCSTR); -extern(Windows) export HENHMETAFILE GetEnhMetaFileW(LPCWSTR); -// #ifdef UNICODE -// #... -// #else -alias GetEnhMetaFileA GetEnhMetaFile; -// #endif // !UNICODE -extern(Windows) export UINT GetEnhMetaFileBits(HENHMETAFILE, UINT, LPBYTE); -extern(Windows) export UINT GetEnhMetaFileDescriptionA(HENHMETAFILE, UINT, LPSTR ); -extern(Windows) export UINT GetEnhMetaFileDescriptionW(HENHMETAFILE, UINT, LPWSTR ); -// #ifdef UNICODE -// #... -// #else -alias GetEnhMetaFileDescriptionA GetEnhMetaFileDescription; -// #endif // !UNICODE -extern(Windows) export UINT GetEnhMetaFileHeader(HENHMETAFILE, UINT, LPENHMETAHEADER ); -extern(Windows) export UINT GetEnhMetaFilePaletteEntries(HENHMETAFILE, UINT, LPPALETTEENTRY ); -extern(Windows) export UINT GetEnhMetaFilePixelFormat(HENHMETAFILE, UINT, - PIXELFORMATDESCRIPTOR *); -extern(Windows) export UINT GetWinMetaFileBits(HENHMETAFILE, UINT, LPBYTE, INT, HDC); -extern(Windows) export BOOL PlayEnhMetaFile(HDC, HENHMETAFILE, RECT *); -extern(Windows) export BOOL PlayEnhMetaFileRecord(HDC, LPHANDLETABLE, ENHMETARECORD *, UINT); -extern(Windows) export HENHMETAFILE SetEnhMetaFileBits(UINT, BYTE *); -extern(Windows) export HENHMETAFILE SetWinMetaFileBits(UINT, BYTE *, HDC, METAFILEPICT *); -extern(Windows) export BOOL GdiComment(HDC, UINT, BYTE *); - -// #endif /* NOMETAFILE */ - -// #ifndef NOTEXTMETRIC - -extern(Windows) export BOOL GetTextMetricsA(HDC, LPTEXTMETRICA); -extern(Windows) export BOOL GetTextMetricsW(HDC, LPTEXTMETRICW); -// #ifdef UNICODE -// #... -// #else -alias GetTextMetricsA GetTextMetrics; -// #endif // !UNICODE - -// #endif - -struct tagDIBSECTION { - BITMAP dsBm; - BITMAPINFOHEADER dsBmih; - DWORD dsBitfields[3]; - HANDLE dshSection; - DWORD dsOffset; -} -alias tagDIBSECTION DIBSECTION; -alias tagDIBSECTION* LPDIBSECTION; -alias tagDIBSECTION* PDIBSECTION; - -extern(Windows) export BOOL AngleArc(HDC, int, int, DWORD, FLOAT, FLOAT); -extern(Windows) export BOOL PolyPolyline(HDC, POINT *, DWORD *, DWORD); -extern(Windows) export BOOL GetWorldTransform(HDC, LPXFORM); -extern(Windows) export BOOL SetWorldTransform(HDC, XFORM *); -extern(Windows) export BOOL ModifyWorldTransform(HDC, XFORM *, DWORD); -extern(Windows) export BOOL CombineTransform(LPXFORM, XFORM *, XFORM *); -extern(Windows) export HBITMAP CreateDIBSection(HDC, BITMAPINFO *, UINT, VOID **, HANDLE, DWORD); -extern(Windows) export UINT GetDIBColorTable(HDC, UINT, UINT, RGBQUAD *); -extern(Windows) export UINT SetDIBColorTable(HDC, UINT, UINT, RGBQUAD *); - -enum : uint { CA_NEGATIVE = 0x0001 } -enum : uint { CA_LOG_FILTER = 0x0002 } - -enum : uint { ILLUMINANT_DEVICE_DEFAULT = 0 } -enum : uint { ILLUMINANT_A = 1 } -enum : uint { ILLUMINANT_B = 2 } -enum : uint { ILLUMINANT_C = 3 } -enum : uint { ILLUMINANT_D50 = 4 } -enum : uint { ILLUMINANT_D55 = 5 } -enum : uint { ILLUMINANT_D65 = 6 } -enum : uint { ILLUMINANT_D75 = 7 } -enum : uint { ILLUMINANT_F2 = 8 } -alias ILLUMINANT_F2 ILLUMINANT_MAX_INDEX; - -alias ILLUMINANT_A ILLUMINANT_TUNGSTEN; -alias ILLUMINANT_C ILLUMINANT_DAYLIGHT; -alias ILLUMINANT_F2 ILLUMINANT_FLUORESCENT; -alias ILLUMINANT_C ILLUMINANT_NTSC; - -enum : WORD { RGB_GAMMA_MIN = 02500 } -enum : WORD { RGB_GAMMA_MAX = 65000 } - -enum : WORD { REFERENCE_WHITE_MIN = 6000 } -enum : WORD { REFERENCE_WHITE_MAX = 10000 } -enum : WORD { REFERENCE_BLACK_MIN = 0 } -enum : WORD { REFERENCE_BLACK_MAX = 4000 } - -enum : SHORT { COLOR_ADJ_MIN = -100 } -enum : SHORT { COLOR_ADJ_MAX = 100 } - -struct tagCOLORADJUSTMENT { - WORD caSize; - WORD caFlags; - WORD caIlluminantIndex; - WORD caRedGamma; - WORD caGreenGamma; - WORD caBlueGamma; - WORD caReferenceBlack; - WORD caReferenceWhite; - SHORT caContrast; - SHORT caBrightness; - SHORT caColorfulness; - SHORT caRedGreenTint; -} -alias tagCOLORADJUSTMENT COLORADJUSTMENT; -alias tagCOLORADJUSTMENT* PCOLORADJUSTMENT; -alias tagCOLORADJUSTMENT* LPCOLORADJUSTMENT; - -extern(Windows) export BOOL SetColorAdjustment(HDC, COLORADJUSTMENT *); -extern(Windows) export BOOL GetColorAdjustment(HDC, LPCOLORADJUSTMENT); -extern(Windows) export HPALETTE CreateHalftonePalette(HDC); - -// #ifdef STRICT -extern(Windows) alias BOOL function( HDC, int) ABORTPROC; -// #else -// ... -// #endif - -struct _DOCINFOA { - int cbSize; - LPCSTR lpszDocName; - LPCSTR lpszOutput; -// #if (WINVER >= 0x0400) - LPCSTR lpszDatatype; - DWORD fwType; -// #endif /* WINVER */ -} -alias _DOCINFOA DOCINFOA; -alias _DOCINFOA* LPDOCINFOA; - -struct _DOCINFOW { - int cbSize; - LPCWSTR lpszDocName; - LPCWSTR lpszOutput; -// #if (WINVER >= 0x0400) - LPCWSTR lpszDatatype; - DWORD fwType; -// #endif /* WINVER */ -} -alias _DOCINFOW DOCINFOW; -alias _DOCINFOW* LPDOCINFOW; - -// #ifdef UNICODE -// ... -// #else -alias DOCINFOA DOCINFO; -alias LPDOCINFOA LPDOCINFO; -// #endif // UNICODE - -// #if(WINVER >= 0x0400) -enum : uint { DI_APPBANDING = 0x00000001 } -enum : uint { DI_ROPS_READ_DESTINATION = 0x00000002 } -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export int StartDocA(HDC, DOCINFOA *); -extern(Windows) export int StartDocW(HDC, DOCINFOW *); -// #ifdef UNICODE -// #... -// #else -alias StartDocA StartDoc; -// #endif // !UNICODE -extern(Windows) export int EndDoc(HDC); -extern(Windows) export int StartPage(HDC); -extern(Windows) export int EndPage(HDC); -extern(Windows) export int AbortDoc(HDC); -extern(Windows) export int SetAbortProc(HDC, ABORTPROC); - -extern(Windows) export BOOL AbortPath(HDC); -extern(Windows) export BOOL ArcTo(HDC, int, int, int, int, int, int, int, int); -extern(Windows) export BOOL BeginPath(HDC); -extern(Windows) export BOOL CloseFigure(HDC); -extern(Windows) export BOOL EndPath(HDC); -extern(Windows) export BOOL FillPath(HDC); -extern(Windows) export BOOL FlattenPath(HDC); -extern(Windows) export int GetPath(HDC, LPPOINT, LPBYTE, int); -extern(Windows) export HRGN PathToRegion(HDC); -extern(Windows) export BOOL PolyDraw(HDC, POINT *, BYTE *, int); -extern(Windows) export BOOL SelectClipPath(HDC, int); -extern(Windows) export int SetArcDirection(HDC, int); -extern(Windows) export BOOL SetMiterLimit(HDC, FLOAT, PFLOAT); -extern(Windows) export BOOL StrokeAndFillPath(HDC); -extern(Windows) export BOOL StrokePath(HDC); -extern(Windows) export BOOL WidenPath(HDC); -extern(Windows) export HPEN ExtCreatePen(DWORD, DWORD, LOGBRUSH *, DWORD, DWORD *); -extern(Windows) export BOOL GetMiterLimit(HDC, PFLOAT); -extern(Windows) export int GetArcDirection(HDC); - -extern(Windows) export int GetObjectA(HGDIOBJ, int, LPVOID); -extern(Windows) export int GetObjectW(HGDIOBJ, int, LPVOID); -// #ifdef UNICODE -// #... -// #else -alias GetObjectA GetObject; -// #endif // !UNICODE -extern(Windows) export BOOL MoveToEx(HDC, int, int, LPPOINT); -extern(Windows) export BOOL TextOutA(HDC, int, int, LPCSTR, int); -extern(Windows) export BOOL TextOutW(HDC, int, int, LPCWSTR, int); -// #ifdef UNICODE -// #... -// #else -alias TextOutA TextOut; -// #endif // !UNICODE -extern(Windows) export BOOL ExtTextOutA(HDC, int, int, UINT, RECT *, LPCSTR, UINT, INT *); -extern(Windows) export BOOL ExtTextOutW(HDC, int, int, UINT, RECT *, LPCWSTR, UINT, INT *); -// #ifdef UNICODE -// #... -// #else -alias ExtTextOutA ExtTextOut; -// #endif // !UNICODE -extern(Windows) export BOOL PolyTextOutA(HDC, POLYTEXTA *, int); -extern(Windows) export BOOL PolyTextOutW(HDC, POLYTEXTW *, int); -// #ifdef UNICODE -// #... -// #else -alias PolyTextOutA PolyTextOut; -// #endif // !UNICODE - -extern(Windows) export HRGN CreatePolygonRgn(POINT *, int, int); -extern(Windows) export BOOL DPtoLP(HDC, LPPOINT, int); -extern(Windows) export BOOL LPtoDP(HDC, LPPOINT, int); -extern(Windows) export BOOL Polygon(HDC, POINT *, int); -extern(Windows) export BOOL Polyline(HDC, POINT *, int); - -extern(Windows) export BOOL PolyBezier(HDC, POINT *, DWORD); -extern(Windows) export BOOL PolyBezierTo(HDC, POINT *, DWORD); -extern(Windows) export BOOL PolylineTo(HDC, POINT *, DWORD); - -extern(Windows) export BOOL SetViewportExtEx(HDC, int, int, LPSIZE); -extern(Windows) export BOOL SetViewportOrgEx(HDC, int, int, LPPOINT); -extern(Windows) export BOOL SetWindowExtEx(HDC, int, int, LPSIZE); -extern(Windows) export BOOL SetWindowOrgEx(HDC, int, int, LPPOINT); - -extern(Windows) export BOOL OffsetViewportOrgEx(HDC, int, int, LPPOINT); -extern(Windows) export BOOL OffsetWindowOrgEx(HDC, int, int, LPPOINT); -extern(Windows) export BOOL ScaleViewportExtEx(HDC, int, int, int, int, LPSIZE); -extern(Windows) export BOOL ScaleWindowExtEx(HDC, int, int, int, int, LPSIZE); -extern(Windows) export BOOL SetBitmapDimensionEx(HBITMAP, int, int, LPSIZE); -extern(Windows) export BOOL SetBrushOrgEx(HDC, int, int, LPPOINT); - -extern(Windows) export int GetTextFaceA(HDC, int, LPSTR); -extern(Windows) export int GetTextFaceW(HDC, int, LPWSTR); -// #ifdef UNICODE -// #... -// #else -alias GetTextFaceA GetTextFace; -// #endif // !UNICODE - -enum : uint { FONTMAPPER_MAX = 10 } - -struct tagKERNINGPAIR { - WORD wFirst; - WORD wSecond; - int iKernAmount; -} -alias tagKERNINGPAIR KERNINGPAIR; -alias tagKERNINGPAIR* LPKERNINGPAIR; - -extern(Windows) export DWORD GetKerningPairsA(HDC, DWORD, LPKERNINGPAIR); -extern(Windows) export DWORD GetKerningPairsW(HDC, DWORD, LPKERNINGPAIR); -// #ifdef UNICODE -// #... -// #else -alias GetKerningPairsA GetKerningPairs; -// #endif // !UNICODE - -extern(Windows) export BOOL GetDCOrgEx(HDC, LPPOINT); -extern(Windows) export BOOL FixBrushOrgEx(HDC, int, int, LPPOINT); -extern(Windows) export BOOL UnrealizeObject(HGDIOBJ); - -extern(Windows) export BOOL GdiFlush(); -extern(Windows) export DWORD GdiSetBatchLimit(DWORD); -extern(Windows) export DWORD GdiGetBatchLimit(); - -// #if(WINVER >= 0x0400) - -enum : uint { ICM_OFF = 1 } -enum : uint { ICM_ON = 2 } -enum : uint { ICM_QUERY = 3 } -enum : uint { ICM_DONE_OUTSIDEDC = 4 } - -extern(Windows) alias int function(LPSTR, LPARAM) ICMENUMPROCA; -extern(Windows) alias int function(LPWSTR, LPARAM) ICMENUMPROCW; -// #ifdef UNICODE -// #... -// #else -alias ICMENUMPROCA ICMENUMPROC; -// #endif // !UNICODE - -extern(Windows) export int SetICMMode(HDC, int); -extern(Windows) export BOOL CheckColorsInGamut(HDC, LPVOID, LPVOID, DWORD); -extern(Windows) export HCOLORSPACE GetColorSpace(HDC); -extern(Windows) export BOOL GetLogColorSpaceA(HCOLORSPACE, LPLOGCOLORSPACEA, DWORD); -extern(Windows) export BOOL GetLogColorSpaceW(HCOLORSPACE, LPLOGCOLORSPACEW, DWORD); -// #ifdef UNICODE -// #... -// #else -alias GetLogColorSpaceA GetLogColorSpace; -// #endif // !UNICODE -extern(Windows) export HCOLORSPACE CreateColorSpaceA(LPLOGCOLORSPACEA); -extern(Windows) export HCOLORSPACE CreateColorSpaceW(LPLOGCOLORSPACEW); -// #ifdef UNICODE -// #... -// #else -alias CreateColorSpaceA CreateColorSpace; -// #endif // !UNICODE -extern(Windows) export HCOLORSPACE SetColorSpace(HDC, HCOLORSPACE); -extern(Windows) export BOOL DeleteColorSpace(HCOLORSPACE); -extern(Windows) export BOOL GetICMProfileA(HDC, LPDWORD, LPSTR); -extern(Windows) export BOOL GetICMProfileW(HDC, LPDWORD, LPWSTR); -// #ifdef UNICODE -// #... -// #else -alias GetICMProfileA GetICMProfile; -// #endif // !UNICODE -extern(Windows) export BOOL SetICMProfileA(HDC, LPSTR); -extern(Windows) export BOOL SetICMProfileW(HDC, LPWSTR); -// #ifdef UNICODE -// #... -// #else -alias SetICMProfileA SetICMProfile; -// #endif // !UNICODE -extern(Windows) export BOOL GetDeviceGammaRamp(HDC, LPVOID); -extern(Windows) export BOOL SetDeviceGammaRamp(HDC, LPVOID); -extern(Windows) export BOOL ColorMatchToTarget(HDC, HDC, DWORD); -extern(Windows) export int EnumICMProfilesA(HDC, ICMENUMPROCA, LPARAM); -extern(Windows) export int EnumICMProfilesW(HDC, ICMENUMPROCW, LPARAM); -// #ifdef UNICODE -// #... -// #else -alias EnumICMProfilesA EnumICMProfiles; -// #endif // !UNICODE -extern(Windows) export BOOL UpdateICMRegKeyA(DWORD, LPSTR, LPSTR, UINT); -extern(Windows) export BOOL UpdateICMRegKeyW(DWORD, LPWSTR, LPWSTR, UINT); -// #ifdef UNICODE -// #... -// #else -alias UpdateICMRegKeyA UpdateICMRegKey; -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ - -// #if (WINVER >= 0x0500) -extern(Windows) export BOOL ColorCorrectPalette(HDC, HPALETTE, DWORD, DWORD); -// #endif - -// #ifndef NOMETAFILE - -// #ifndef _MAC -enum : uint { ENHMETA_SIGNATURE = 0x464D4520 } -// #else -// #... -// #endif - -enum : uint { ENHMETA_STOCK_OBJECT = 0x80000000 } - -enum : uint { EMR_HEADER = 1 } -enum : uint { EMR_POLYBEZIER = 2 } -enum : uint { EMR_POLYGON = 3 } -enum : uint { EMR_POLYLINE = 4 } -enum : uint { EMR_POLYBEZIERTO = 5 } -enum : uint { EMR_POLYLINETO = 6 } -enum : uint { EMR_POLYPOLYLINE = 7 } -enum : uint { EMR_POLYPOLYGON = 8 } -enum : uint { EMR_SETWINDOWEXTEX = 9 } -enum : uint { EMR_SETWINDOWORGEX = 10 } -enum : uint { EMR_SETVIEWPORTEXTEX = 11 } -enum : uint { EMR_SETVIEWPORTORGEX = 12 } -enum : uint { EMR_SETBRUSHORGEX = 13 } -enum : uint { EMR_EOF = 14 } -enum : uint { EMR_SETPIXELV = 15 } -enum : uint { EMR_SETMAPPERFLAGS = 16 } -enum : uint { EMR_SETMAPMODE = 17 } -enum : uint { EMR_SETBKMODE = 18 } -enum : uint { EMR_SETPOLYFILLMODE = 19 } -enum : uint { EMR_SETROP2 = 20 } -enum : uint { EMR_SETSTRETCHBLTMODE = 21 } -enum : uint { EMR_SETTEXTALIGN = 22 } -enum : uint { EMR_SETCOLORADJUSTMENT = 23 } -enum : uint { EMR_SETTEXTCOLOR = 24 } -enum : uint { EMR_SETBKCOLOR = 25 } -enum : uint { EMR_OFFSETCLIPRGN = 26 } -enum : uint { EMR_MOVETOEX = 27 } -enum : uint { EMR_SETMETARGN = 28 } -enum : uint { EMR_EXCLUDECLIPRECT = 29 } -enum : uint { EMR_INTERSECTCLIPRECT = 30 } -enum : uint { EMR_SCALEVIEWPORTEXTEX = 31 } -enum : uint { EMR_SCALEWINDOWEXTEX = 32 } -enum : uint { EMR_SAVEDC = 33 } -enum : uint { EMR_RESTOREDC = 34 } -enum : uint { EMR_SETWORLDTRANSFORM = 35 } -enum : uint { EMR_MODIFYWORLDTRANSFORM = 36 } -enum : uint { EMR_SELECTOBJECT = 37 } -enum : uint { EMR_CREATEPEN = 38 } -enum : uint { EMR_CREATEBRUSHINDIRECT = 39 } -enum : uint { EMR_DELETEOBJECT = 40 } -enum : uint { EMR_ANGLEARC = 41 } -enum : uint { EMR_ELLIPSE = 42 } -enum : uint { EMR_RECTANGLE = 43 } -enum : uint { EMR_ROUNDRECT = 44 } -enum : uint { EMR_ARC = 45 } -enum : uint { EMR_CHORD = 46 } -enum : uint { EMR_PIE = 47 } -enum : uint { EMR_SELECTPALETTE = 48 } -enum : uint { EMR_CREATEPALETTE = 49 } -enum : uint { EMR_SETPALETTEENTRIES = 50 } -enum : uint { EMR_RESIZEPALETTE = 51 } -enum : uint { EMR_REALIZEPALETTE = 52 } -enum : uint { EMR_EXTFLOODFILL = 53 } -enum : uint { EMR_LINETO = 54 } -enum : uint { EMR_ARCTO = 55 } -enum : uint { EMR_POLYDRAW = 56 } -enum : uint { EMR_SETARCDIRECTION = 57 } -enum : uint { EMR_SETMITERLIMIT = 58 } -enum : uint { EMR_BEGINPATH = 59 } -enum : uint { EMR_ENDPATH = 60 } -enum : uint { EMR_CLOSEFIGURE = 61 } -enum : uint { EMR_FILLPATH = 62 } -enum : uint { EMR_STROKEANDFILLPATH = 63 } -enum : uint { EMR_STROKEPATH = 64 } -enum : uint { EMR_FLATTENPATH = 65 } -enum : uint { EMR_WIDENPATH = 66 } -enum : uint { EMR_SELECTCLIPPATH = 67 } -enum : uint { EMR_ABORTPATH = 68 } - -enum : uint { EMR_GDICOMMENT = 70 } -enum : uint { EMR_FILLRGN = 71 } -enum : uint { EMR_FRAMERGN = 72 } -enum : uint { EMR_INVERTRGN = 73 } -enum : uint { EMR_PAINTRGN = 74 } -enum : uint { EMR_EXTSELECTCLIPRGN = 75 } -enum : uint { EMR_BITBLT = 76 } -enum : uint { EMR_STRETCHBLT = 77 } -enum : uint { EMR_MASKBLT = 78 } -enum : uint { EMR_PLGBLT = 79 } -enum : uint { EMR_SETDIBITSTODEVICE = 80 } -enum : uint { EMR_STRETCHDIBITS = 81 } -enum : uint { EMR_EXTCREATEFONTINDIRECTW = 82 } -enum : uint { EMR_EXTTEXTOUTA = 83 } -enum : uint { EMR_EXTTEXTOUTW = 84 } -enum : uint { EMR_POLYBEZIER16 = 85 } -enum : uint { EMR_POLYGON16 = 86 } -enum : uint { EMR_POLYLINE16 = 87 } -enum : uint { EMR_POLYBEZIERTO16 = 88 } -enum : uint { EMR_POLYLINETO16 = 89 } -enum : uint { EMR_POLYPOLYLINE16 = 90 } -enum : uint { EMR_POLYPOLYGON16 = 91 } -enum : uint { EMR_POLYDRAW16 = 92 } -enum : uint { EMR_CREATEMONOBRUSH = 93 } -enum : uint { EMR_CREATEDIBPATTERNBRUSHPT = 94 } -enum : uint { EMR_EXTCREATEPEN = 95 } -enum : uint { EMR_POLYTEXTOUTA = 96 } -enum : uint { EMR_POLYTEXTOUTW = 97 } - -// #if(WINVER >= 0x0400) -enum : uint { EMR_SETICMMODE = 98 } -enum : uint { EMR_CREATECOLORSPACE = 99 } -enum : uint { EMR_SETCOLORSPACE = 100 } -enum : uint { EMR_DELETECOLORSPACE = 101 } -enum : uint { EMR_GLSRECORD = 102 } -enum : uint { EMR_GLSBOUNDEDRECORD = 103 } -enum : uint { EMR_PIXELFORMAT = 104 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -enum : uint { EMR_RESERVED_105 = 105 } -enum : uint { EMR_RESERVED_106 = 106 } -enum : uint { EMR_RESERVED_107 = 107 } -enum : uint { EMR_RESERVED_108 = 108 } -enum : uint { EMR_RESERVED_109 = 109 } -enum : uint { EMR_RESERVED_110 = 110 } -enum : uint { EMR_COLORCORRECTPALETTE = 111 } -enum : uint { EMR_SETICMPROFILEA = 112 } -enum : uint { EMR_SETICMPROFILEW = 113 } -enum : uint { EMR_ALPHABLEND = 114 } -enum : uint { EMR_SETLAYOUT = 115 } -enum : uint { EMR_TRANSPARENTBLT = 116 } -enum : uint { EMR_RESERVED_117 = 117 } -enum : uint { EMR_GRADIENTFILL = 118 } -enum : uint { EMR_RESERVED_119 = 119 } -enum : uint { EMR_RESERVED_120 = 120 } -enum : uint { EMR_COLORMATCHTOTARGETW = 121 } -enum : uint { EMR_CREATECOLORSPACEW = 122 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { EMR_MIN = 1 } - -// #if (WINVER >= 0x0500) -enum : uint { EMR_MAX = 122 } -// #elif (WINVER >= 0x0400) -// #... -// #else -// #... -// #endif - -struct tagEMR { - DWORD iType; - DWORD nSize; - -} -alias tagEMR EMR; -alias tagEMR* PEMR; - -struct tagEMRTEXT { - POINTL ptlReference; - DWORD nChars; - DWORD offString; - DWORD fOptions; - RECTL rcl; - DWORD offDx; - -} -alias tagEMRTEXT EMRTEXT; -alias tagEMRTEXT* PEMRTEXT; - -struct tagABORTPATH { - EMR emr; -} -alias tagABORTPATH EMRABORTPATH; -alias tagABORTPATH* PEMRABORTPATH; -alias tagABORTPATH EMRBEGINPATH; -alias tagABORTPATH* PEMRBEGINPATH; -alias tagABORTPATH EMRENDPATH; -alias tagABORTPATH* PEMRENDPATH; -alias tagABORTPATH EMRCLOSEFIGURE; -alias tagABORTPATH* PEMRCLOSEFIGURE; -alias tagABORTPATH EMRFLATTENPATH; -alias tagABORTPATH* PEMRFLATTENPATH; -alias tagABORTPATH EMRWIDENPATH; -alias tagABORTPATH* PEMRWIDENPATH; -alias tagABORTPATH EMRSETMETARGN; -alias tagABORTPATH* PEMRSETMETARGN; -alias tagABORTPATH EMRSAVEDC; -alias tagABORTPATH* PEMRSAVEDC; -alias tagABORTPATH EMRREALIZEPALETTE; -alias tagABORTPATH* PEMRREALIZEPALETTE; - -struct tagEMRSELECTCLIPPATH { - EMR emr; - DWORD iMode; -} -alias tagEMRSELECTCLIPPATH EMRSELECTCLIPPATH; -alias tagEMRSELECTCLIPPATH* PEMRSELECTCLIPPATH; -alias tagEMRSELECTCLIPPATH EMRSETBKMODE; -alias tagEMRSELECTCLIPPATH* PEMRSETBKMODE; -alias tagEMRSELECTCLIPPATH EMRSETMAPMODE; -alias tagEMRSELECTCLIPPATH* PEMRSETMAPMODE; -alias tagEMRSELECTCLIPPATH EMRSETLAYOUT; -alias tagEMRSELECTCLIPPATH* PEMRSETLAYOUT; -alias tagEMRSELECTCLIPPATH EMRSETPOLYFILLMODE; -alias tagEMRSELECTCLIPPATH* PEMRSETPOLYFILLMODE; -alias tagEMRSELECTCLIPPATH EMRSETROP2; -alias tagEMRSELECTCLIPPATH* PEMRSETROP2; -alias tagEMRSELECTCLIPPATH EMRSETSTRETCHBLTMODE; -alias tagEMRSELECTCLIPPATH* PEMRSETSTRETCHBLTMODE; -alias tagEMRSELECTCLIPPATH EMRSETICMMODE; -alias tagEMRSELECTCLIPPATH* PEMRSETICMMODE; -alias tagEMRSELECTCLIPPATH EMRSETTEXTALIGN; -alias tagEMRSELECTCLIPPATH* PEMRSETTEXTALIGN; - -struct tagEMRSETMITERLIMIT { - EMR emr; - FLOAT eMiterLimit; -} -alias tagEMRSETMITERLIMIT EMRSETMITERLIMIT; -alias tagEMRSETMITERLIMIT* PEMRSETMITERLIMIT; - -struct tagEMRRESTOREDC { - EMR emr; - LONG iRelative; -} -alias tagEMRRESTOREDC EMRRESTOREDC; -alias tagEMRRESTOREDC* PEMRRESTOREDC; - -struct tagEMRSETARCDIRECTION { - EMR emr; - DWORD iArcDirection; - -} -alias tagEMRSETARCDIRECTION EMRSETARCDIRECTION; -alias tagEMRSETARCDIRECTION* PEMRSETARCDIRECTION; - -struct tagEMRSETMAPPERFLAGS { - EMR emr; - DWORD dwFlags; -} -alias tagEMRSETMAPPERFLAGS EMRSETMAPPERFLAGS; -alias tagEMRSETMAPPERFLAGS* PEMRSETMAPPERFLAGS; - -struct tagEMRSETTEXTCOLOR { - EMR emr; - COLORREF crColor; -} -alias tagEMRSETTEXTCOLOR EMRSETBKCOLOR; -alias tagEMRSETTEXTCOLOR* PEMRSETBKCOLOR; -alias tagEMRSETTEXTCOLOR EMRSETTEXTCOLOR; -alias tagEMRSETTEXTCOLOR* PEMRSETTEXTCOLOR; - -struct tagEMRSELECTOBJECT { - EMR emr; - DWORD ihObject; -} -alias tagEMRSELECTOBJECT EMRSELECTOBJECT; -alias tagEMRSELECTOBJECT* PEMRSELECTOBJECT; -alias tagEMRSELECTOBJECT EMRDELETEOBJECT; -alias tagEMRSELECTOBJECT* PEMRDELETEOBJECT; - -struct tagEMRSELECTPALETTE { - EMR emr; - DWORD ihPal; -} -alias tagEMRSELECTPALETTE EMRSELECTPALETTE; -alias tagEMRSELECTPALETTE* PEMRSELECTPALETTE; - -struct tagEMRRESIZEPALETTE { - EMR emr; - DWORD ihPal; - DWORD cEntries; -} -alias tagEMRRESIZEPALETTE EMRRESIZEPALETTE; -alias tagEMRRESIZEPALETTE* PEMRRESIZEPALETTE; - -struct tagEMRSETPALETTEENTRIES { - EMR emr; - DWORD ihPal; - DWORD iStart; - DWORD cEntries; - PALETTEENTRY aPalEntries[1]; -} -alias tagEMRSETPALETTEENTRIES EMRSETPALETTEENTRIES; -alias tagEMRSETPALETTEENTRIES* PEMRSETPALETTEENTRIES; - -struct tagEMRSETCOLORADJUSTMENT { - EMR emr; - COLORADJUSTMENT ColorAdjustment; -} -alias tagEMRSETCOLORADJUSTMENT EMRSETCOLORADJUSTMENT; -alias tagEMRSETCOLORADJUSTMENT* PEMRSETCOLORADJUSTMENT; - -struct tagEMRGDICOMMENT { - EMR emr; - DWORD cbData; - BYTE Data[1]; -} -alias tagEMRGDICOMMENT EMRGDICOMMENT; -alias tagEMRGDICOMMENT* PEMRGDICOMMENT; - -struct tagEMREOF { - EMR emr; - DWORD nPalEntries; - DWORD offPalEntries; - DWORD nSizeLast; - -} -alias tagEMREOF EMREOF; -alias tagEMREOF* PEMREOF; - -struct tagEMRLINETO { - EMR emr; - POINTL ptl; -} -alias tagEMRLINETO EMRLINETO; -alias tagEMRLINETO* PEMRLINETO; -alias tagEMRLINETO EMRMOVETOEX; -alias tagEMRLINETO* PEMRMOVETOEX; - -struct tagEMROFFSETCLIPRGN { - EMR emr; - POINTL ptlOffset; -} -alias tagEMROFFSETCLIPRGN EMROFFSETCLIPRGN; -alias tagEMROFFSETCLIPRGN* PEMROFFSETCLIPRGN; - -struct tagEMRFILLPATH { - EMR emr; - RECTL rclBounds; -} -alias tagEMRFILLPATH EMRFILLPATH; -alias tagEMRFILLPATH* PEMRFILLPATH; -alias tagEMRFILLPATH EMRSTROKEANDFILLPATH; -alias tagEMRFILLPATH* PEMRSTROKEANDFILLPATH; -alias tagEMRFILLPATH EMRSTROKEPATH; -alias tagEMRFILLPATH* PEMRSTROKEPATH; - -struct tagEMREXCLUDECLIPRECT { - EMR emr; - RECTL rclClip; -} -alias tagEMREXCLUDECLIPRECT EMREXCLUDECLIPRECT; -alias tagEMREXCLUDECLIPRECT* PEMREXCLUDECLIPRECT; -alias tagEMREXCLUDECLIPRECT EMRINTERSECTCLIPRECT; -alias tagEMREXCLUDECLIPRECT* PEMRINTERSECTCLIPRECT; - -struct tagEMRSETVIEWPORTORGEX { - EMR emr; - POINTL ptlOrigin; -} -alias tagEMRSETVIEWPORTORGEX EMRSETVIEWPORTORGEX; -alias tagEMRSETVIEWPORTORGEX* PEMRSETVIEWPORTORGEX; -alias tagEMRSETVIEWPORTORGEX EMRSETWINDOWORGEX; -alias tagEMRSETVIEWPORTORGEX* PEMRSETWINDOWORGEX; -alias tagEMRSETVIEWPORTORGEX EMRSETBRUSHORGEX; -alias tagEMRSETVIEWPORTORGEX* PEMRSETBRUSHORGEX; - -struct tagEMRSETVIEWPORTEXTEX { - EMR emr; - SIZEL szlExtent; -} -alias tagEMRSETVIEWPORTEXTEX EMRSETVIEWPORTEXTEX; -alias tagEMRSETVIEWPORTEXTEX* PEMRSETVIEWPORTEXTEX; -alias tagEMRSETVIEWPORTEXTEX EMRSETWINDOWEXTEX; -alias tagEMRSETVIEWPORTEXTEX* PEMRSETWINDOWEXTEX; - -struct tagEMRSCALEVIEWPORTEXTEX { - EMR emr; - LONG xNum; - LONG xDenom; - LONG yNum; - LONG yDenom; -} -alias tagEMRSCALEVIEWPORTEXTEX EMRSCALEVIEWPORTEXTEX; -alias tagEMRSCALEVIEWPORTEXTEX* PEMRSCALEVIEWPORTEXTEX; -alias tagEMRSCALEVIEWPORTEXTEX EMRSCALEWINDOWEXTEX; -alias tagEMRSCALEVIEWPORTEXTEX* PEMRSCALEWINDOWEXTEX; - -struct tagEMRSETWORLDTRANSFORM { - EMR emr; - XFORM xform; -} -alias tagEMRSETWORLDTRANSFORM EMRSETWORLDTRANSFORM; -alias tagEMRSETWORLDTRANSFORM* PEMRSETWORLDTRANSFORM; - -struct tagEMRMODIFYWORLDTRANSFORM { - EMR emr; - XFORM xform; - DWORD iMode; -} -alias tagEMRMODIFYWORLDTRANSFORM EMRMODIFYWORLDTRANSFORM; -alias tagEMRMODIFYWORLDTRANSFORM* PEMRMODIFYWORLDTRANSFORM; - -struct tagEMRSETPIXELV { - EMR emr; - POINTL ptlPixel; - COLORREF crColor; -} -alias tagEMRSETPIXELV EMRSETPIXELV; -alias tagEMRSETPIXELV* PEMRSETPIXELV; - -struct tagEMREXTFLOODFILL { - EMR emr; - POINTL ptlStart; - COLORREF crColor; - DWORD iMode; -} -alias tagEMREXTFLOODFILL EMREXTFLOODFILL; -alias tagEMREXTFLOODFILL* PEMREXTFLOODFILL; - -struct tagEMRELLIPSE { - EMR emr; - RECTL rclBox; -} -alias tagEMRELLIPSE EMRELLIPSE; -alias tagEMRELLIPSE* PEMRELLIPSE; -alias tagEMRELLIPSE EMRRECTANGLE; -alias tagEMRELLIPSE* PEMRRECTANGLE; - -struct tagEMRROUNDRECT { - EMR emr; - RECTL rclBox; - SIZEL szlCorner; -} -alias tagEMRROUNDRECT EMRROUNDRECT; -alias tagEMRROUNDRECT* PEMRROUNDRECT; - -struct tagEMRARC { - EMR emr; - RECTL rclBox; - POINTL ptlStart; - POINTL ptlEnd; -} -alias tagEMRARC EMRARC; -alias tagEMRARC* PEMRARC; -alias tagEMRARC EMRARCTO; -alias tagEMRARC* PEMRARCTO; -alias tagEMRARC EMRCHORD; -alias tagEMRARC* PEMRCHORD; -alias tagEMRARC EMRPIE; -alias tagEMRARC* PEMRPIE; - -struct tagEMRANGLEARC { - EMR emr; - POINTL ptlCenter; - DWORD nRadius; - FLOAT eStartAngle; - FLOAT eSweepAngle; -} -alias tagEMRANGLEARC EMRANGLEARC; -alias tagEMRANGLEARC* PEMRANGLEARC; - -struct tagEMRPOLYLINE { - EMR emr; - RECTL rclBounds; - DWORD cptl; - POINTL aptl[1]; -} -alias tagEMRPOLYLINE EMRPOLYLINE; -alias tagEMRPOLYLINE* PEMRPOLYLINE; -alias tagEMRPOLYLINE EMRPOLYBEZIER; -alias tagEMRPOLYLINE* PEMRPOLYBEZIER; -alias tagEMRPOLYLINE EMRPOLYGON; -alias tagEMRPOLYLINE* PEMRPOLYGON; -alias tagEMRPOLYLINE EMRPOLYBEZIERTO; -alias tagEMRPOLYLINE* PEMRPOLYBEZIERTO; -alias tagEMRPOLYLINE EMRPOLYLINETO; -alias tagEMRPOLYLINE* PEMRPOLYLINETO; - -struct tagEMRPOLYLINE16 { - EMR emr; - RECTL rclBounds; - DWORD cpts; - POINTS apts[1]; -} -alias tagEMRPOLYLINE16 EMRPOLYLINE16; -alias tagEMRPOLYLINE16* PEMRPOLYLINE16; -alias tagEMRPOLYLINE16 EMRPOLYBEZIER16; -alias tagEMRPOLYLINE16* PEMRPOLYBEZIER16; -alias tagEMRPOLYLINE16 EMRPOLYGON16; -alias tagEMRPOLYLINE16* PEMRPOLYGON16; -alias tagEMRPOLYLINE16 EMRPOLYBEZIERTO16; -alias tagEMRPOLYLINE16* PEMRPOLYBEZIERTO16; -alias tagEMRPOLYLINE16 EMRPOLYLINETO16; -alias tagEMRPOLYLINE16* PEMRPOLYLINETO16; - -struct tagEMRPOLYDRAW { - EMR emr; - RECTL rclBounds; - DWORD cptl; - POINTL aptl[1]; - BYTE abTypes[1]; -} -alias tagEMRPOLYDRAW EMRPOLYDRAW; -alias tagEMRPOLYDRAW* PEMRPOLYDRAW; - -struct tagEMRPOLYDRAW16 { - EMR emr; - RECTL rclBounds; - DWORD cpts; - POINTS apts[1]; - BYTE abTypes[1]; -} -alias tagEMRPOLYDRAW16 EMRPOLYDRAW16; -alias tagEMRPOLYDRAW16* PEMRPOLYDRAW16; - -struct tagEMRPOLYPOLYLINE { - EMR emr; - RECTL rclBounds; - DWORD nPolys; - DWORD cptl; - DWORD aPolyCounts[1]; - POINTL aptl[1]; -} -alias tagEMRPOLYPOLYLINE EMRPOLYPOLYLINE; -alias tagEMRPOLYPOLYLINE* PEMRPOLYPOLYLINE; -alias tagEMRPOLYPOLYLINE EMRPOLYPOLYGON; -alias tagEMRPOLYPOLYLINE* PEMRPOLYPOLYGON; - -struct tagEMRPOLYPOLYLINE16 { - EMR emr; - RECTL rclBounds; - DWORD nPolys; - DWORD cpts; - DWORD aPolyCounts[1]; - POINTS apts[1]; -} -alias tagEMRPOLYPOLYLINE16 EMRPOLYPOLYLINE16; -alias tagEMRPOLYPOLYLINE16* PEMRPOLYPOLYLINE16; -alias tagEMRPOLYPOLYLINE16 EMRPOLYPOLYGON16; -alias tagEMRPOLYPOLYLINE16* PEMRPOLYPOLYGON16; - -struct tagEMRINVERTRGN { - EMR emr; - RECTL rclBounds; - DWORD cbRgnData; - BYTE RgnData[1]; -} -alias tagEMRINVERTRGN EMRINVERTRGN; -alias tagEMRINVERTRGN* PEMRINVERTRGN; -alias tagEMRINVERTRGN EMRPAINTRGN; -alias tagEMRINVERTRGN* PEMRPAINTRGN; - -struct tagEMRFILLRGN { - EMR emr; - RECTL rclBounds; - DWORD cbRgnData; - DWORD ihBrush; - BYTE RgnData[1]; -} -alias tagEMRFILLRGN EMRFILLRGN; -alias tagEMRFILLRGN* PEMRFILLRGN; - -struct tagEMRFRAMERGN { - EMR emr; - RECTL rclBounds; - DWORD cbRgnData; - DWORD ihBrush; - SIZEL szlStroke; - BYTE RgnData[1]; -} -alias tagEMRFRAMERGN EMRFRAMERGN; -alias tagEMRFRAMERGN* PEMRFRAMERGN; - -struct tagEMREXTSELECTCLIPRGN { - EMR emr; - DWORD cbRgnData; - DWORD iMode; - BYTE RgnData[1]; -} -alias tagEMREXTSELECTCLIPRGN EMREXTSELECTCLIPRGN; -alias tagEMREXTSELECTCLIPRGN* PEMREXTSELECTCLIPRGN; - -struct tagEMREXTTEXTOUTA { - EMR emr; - RECTL rclBounds; - DWORD iGraphicsMode; - FLOAT exScale; - FLOAT eyScale; - EMRTEXT emrtext; - -} -alias tagEMREXTTEXTOUTA EMREXTTEXTOUTA; -alias tagEMREXTTEXTOUTA* PEMREXTTEXTOUTA; -alias tagEMREXTTEXTOUTA EMREXTTEXTOUTW; -alias tagEMREXTTEXTOUTA* PEMREXTTEXTOUTW; - -struct tagEMRPOLYTEXTOUTA { - EMR emr; - RECTL rclBounds; - DWORD iGraphicsMode; - FLOAT exScale; - FLOAT eyScale; - LONG cStrings; - EMRTEXT aemrtext[1]; - -} -alias tagEMRPOLYTEXTOUTA EMRPOLYTEXTOUTA; -alias tagEMRPOLYTEXTOUTA* PEMRPOLYTEXTOUTA; -alias tagEMRPOLYTEXTOUTA EMRPOLYTEXTOUTW; -alias tagEMRPOLYTEXTOUTA* PEMRPOLYTEXTOUTW; - -struct tagEMRBITBLT { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG cxDest; - LONG cyDest; - DWORD dwRop; - LONG xSrc; - LONG ySrc; - XFORM xformSrc; - COLORREF crBkColorSrc; - DWORD iUsageSrc; - - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; -} -alias tagEMRBITBLT EMRBITBLT; -alias tagEMRBITBLT* PEMRBITBLT; - -struct tagEMRSTRETCHBLT { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG cxDest; - LONG cyDest; - DWORD dwRop; - LONG xSrc; - LONG ySrc; - XFORM xformSrc; - COLORREF crBkColorSrc; - DWORD iUsageSrc; - - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - LONG cxSrc; - LONG cySrc; -} -alias tagEMRSTRETCHBLT EMRSTRETCHBLT; -alias tagEMRSTRETCHBLT* PEMRSTRETCHBLT; - -struct tagEMRMASKBLT { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG cxDest; - LONG cyDest; - DWORD dwRop; - LONG xSrc; - LONG ySrc; - XFORM xformSrc; - COLORREF crBkColorSrc; - DWORD iUsageSrc; - - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - LONG xMask; - LONG yMask; - DWORD iUsageMask; - DWORD offBmiMask; - DWORD cbBmiMask; - DWORD offBitsMask; - DWORD cbBitsMask; -} -alias tagEMRMASKBLT EMRMASKBLT; -alias tagEMRMASKBLT* PEMRMASKBLT; - -struct tagEMRPLGBLT { - EMR emr; - RECTL rclBounds; - POINTL aptlDest[3]; - LONG xSrc; - LONG ySrc; - LONG cxSrc; - LONG cySrc; - XFORM xformSrc; - COLORREF crBkColorSrc; - DWORD iUsageSrc; - - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - LONG xMask; - LONG yMask; - DWORD iUsageMask; - DWORD offBmiMask; - DWORD cbBmiMask; - DWORD offBitsMask; - DWORD cbBitsMask; -} -alias tagEMRPLGBLT EMRPLGBLT; -alias tagEMRPLGBLT* PEMRPLGBLT; - -struct tagEMRSETDIBITSTODEVICE { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG xSrc; - LONG ySrc; - LONG cxSrc; - LONG cySrc; - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - DWORD iUsageSrc; - DWORD iStartScan; - DWORD cScans; -} -alias tagEMRSETDIBITSTODEVICE EMRSETDIBITSTODEVICE; -alias tagEMRSETDIBITSTODEVICE* PEMRSETDIBITSTODEVICE; - -struct tagEMRSTRETCHDIBITS { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG xSrc; - LONG ySrc; - LONG cxSrc; - LONG cySrc; - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - DWORD iUsageSrc; - DWORD dwRop; - LONG cxDest; - LONG cyDest; -} -alias tagEMRSTRETCHDIBITS EMRSTRETCHDIBITS; -alias tagEMRSTRETCHDIBITS* PEMRSTRETCHDIBITS; - -struct tagEMREXTCREATEFONTINDIRECTW { - EMR emr; - DWORD ihFont; - EXTLOGFONTW elfw; -} -alias tagEMREXTCREATEFONTINDIRECTW EMREXTCREATEFONTINDIRECTW; -alias tagEMREXTCREATEFONTINDIRECTW* PEMREXTCREATEFONTINDIRECTW; - -struct tagEMRCREATEPALETTE { - EMR emr; - DWORD ihPal; - LOGPALETTE lgpl; - -} -alias tagEMRCREATEPALETTE EMRCREATEPALETTE; -alias tagEMRCREATEPALETTE* PEMRCREATEPALETTE; - -struct tagEMRCREATEPEN { - EMR emr; - DWORD ihPen; - LOGPEN lopn; -} -alias tagEMRCREATEPEN EMRCREATEPEN; -alias tagEMRCREATEPEN* PEMRCREATEPEN; - -struct tagEMREXTCREATEPEN { - EMR emr; - DWORD ihPen; - DWORD offBmi; - DWORD cbBmi; - - DWORD offBits; - DWORD cbBits; - EXTLOGPEN elp; -} -alias tagEMREXTCREATEPEN EMREXTCREATEPEN; -alias tagEMREXTCREATEPEN* PEMREXTCREATEPEN; - -struct tagEMRCREATEBRUSHINDIRECT { - EMR emr; - DWORD ihBrush; - LOGBRUSH32 lb; - -} -alias tagEMRCREATEBRUSHINDIRECT EMRCREATEBRUSHINDIRECT; -alias tagEMRCREATEBRUSHINDIRECT* PEMRCREATEBRUSHINDIRECT; - -struct tagEMRCREATEMONOBRUSH { - EMR emr; - DWORD ihBrush; - DWORD iUsage; - DWORD offBmi; - DWORD cbBmi; - DWORD offBits; - DWORD cbBits; -} -alias tagEMRCREATEMONOBRUSH EMRCREATEMONOBRUSH; -alias tagEMRCREATEMONOBRUSH* PEMRCREATEMONOBRUSH; - -struct tagEMRCREATEDIBPATTERNBRUSHPT { - EMR emr; - DWORD ihBrush; - DWORD iUsage; - DWORD offBmi; - DWORD cbBmi; - - DWORD offBits; - DWORD cbBits; -} -alias tagEMRCREATEDIBPATTERNBRUSHPT EMRCREATEDIBPATTERNBRUSHPT; -alias tagEMRCREATEDIBPATTERNBRUSHPT* PEMRCREATEDIBPATTERNBRUSHPT; - -struct tagEMRFORMAT { - DWORD dSignature; - DWORD nVersion; - DWORD cbData; - DWORD offData; - -} -alias tagEMRFORMAT EMRFORMAT; -alias tagEMRFORMAT* PEMRFORMAT; - -// #if(WINVER >= 0x0400) - -struct tagEMRGLSRECORD { - EMR emr; - DWORD cbData; - BYTE Data[1]; -} -alias tagEMRGLSRECORD EMRGLSRECORD; -alias tagEMRGLSRECORD* PEMRGLSRECORD; - -struct tagEMRGLSBOUNDEDRECORD { - EMR emr; - RECTL rclBounds; - DWORD cbData; - BYTE Data[1]; -} -alias tagEMRGLSBOUNDEDRECORD EMRGLSBOUNDEDRECORD; -alias tagEMRGLSBOUNDEDRECORD* PEMRGLSBOUNDEDRECORD; - -struct tagEMRPIXELFORMAT { - EMR emr; - PIXELFORMATDESCRIPTOR pfd; -} -alias tagEMRPIXELFORMAT EMRPIXELFORMAT; -alias tagEMRPIXELFORMAT* PEMRPIXELFORMAT; - -struct tagEMRCREATECOLORSPACE { - EMR emr; - DWORD ihCS; - LOGCOLORSPACEA lcs; -} -alias tagEMRCREATECOLORSPACE EMRCREATECOLORSPACE; -alias tagEMRCREATECOLORSPACE* PEMRCREATECOLORSPACE; - -struct tagEMRSETCOLORSPACE { - EMR emr; - DWORD ihCS; -} -alias tagEMRSETCOLORSPACE EMRSETCOLORSPACE; -alias tagEMRSETCOLORSPACE* PEMRSETCOLORSPACE; -alias tagEMRSETCOLORSPACE EMRSELECTCOLORSPACE; -alias tagEMRSETCOLORSPACE* PEMRSELECTCOLORSPACE; -alias tagEMRSETCOLORSPACE EMRDELETECOLORSPACE; -alias tagEMRSETCOLORSPACE* PEMRDELETECOLORSPACE; - -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) - -struct tagEMREXTESCAPE { - EMR emr; - INT iEscape; - INT cbEscData; - BYTE EscData[1]; -} -alias tagEMREXTESCAPE EMREXTESCAPE; -alias tagEMREXTESCAPE* PEMREXTESCAPE; -alias tagEMREXTESCAPE EMRDRAWESCAPE; -alias tagEMREXTESCAPE* PEMRDRAWESCAPE; - -struct tagEMRNAMEDESCAPE { - EMR emr; - INT iEscape; - INT cbDriver; - INT cbEscData; - BYTE EscData[1]; -} -alias tagEMRNAMEDESCAPE EMRNAMEDESCAPE; -alias tagEMRNAMEDESCAPE* PEMRNAMEDESCAPE; - -enum : uint { SETICMPROFILE_EMBEDED = 0x00000001 } - -struct tagEMRSETICMPROFILE { - EMR emr; - DWORD dwFlags; - DWORD cbName; - DWORD cbData; - BYTE Data[1]; -} -alias tagEMRSETICMPROFILE EMRSETICMPROFILE; -alias tagEMRSETICMPROFILE* PEMRSETICMPROFILE; -alias tagEMRSETICMPROFILE EMRSETICMPROFILEA; -alias tagEMRSETICMPROFILE* PEMRSETICMPROFILEA; -alias tagEMRSETICMPROFILE EMRSETICMPROFILEW; -alias tagEMRSETICMPROFILE* PEMRSETICMPROFILEW; - -enum : uint { CREATECOLORSPACE_EMBEDED = 0x00000001 } - -struct tagEMRCREATECOLORSPACEW { - EMR emr; - DWORD ihCS; - LOGCOLORSPACEW lcs; - DWORD dwFlags; - DWORD cbData; - BYTE Data[1]; -} -alias tagEMRCREATECOLORSPACEW EMRCREATECOLORSPACEW; -alias tagEMRCREATECOLORSPACEW* PEMRCREATECOLORSPACEW; - -enum : uint { COLORMATCHTOTARGET_EMBEDED = 0x00000001 } - -struct tagCOLORMATCHTOTARGET { - EMR emr; - DWORD dwAction; - DWORD dwFlags; - DWORD cbName; - DWORD cbData; - BYTE Data[1]; -} -alias tagCOLORMATCHTOTARGET EMRCOLORMATCHTOTARGET; -alias tagCOLORMATCHTOTARGET* PEMRCOLORMATCHTOTARGET; - -struct tagCOLORCORRECTPALETTE { - EMR emr; - DWORD ihPalette; - DWORD nFirstEntry; - DWORD nPalEntries; - DWORD nReserved; -} -alias tagCOLORCORRECTPALETTE EMRCOLORCORRECTPALETTE; -alias tagCOLORCORRECTPALETTE* PEMRCOLORCORRECTPALETTE; - -struct tagEMRALPHABLEND { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG cxDest; - LONG cyDest; - DWORD dwRop; - LONG xSrc; - LONG ySrc; - XFORM xformSrc; - COLORREF crBkColorSrc; - DWORD iUsageSrc; - - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - LONG cxSrc; - LONG cySrc; -} -alias tagEMRALPHABLEND EMRALPHABLEND; -alias tagEMRALPHABLEND* PEMRALPHABLEND; - -struct tagEMRGRADIENTFILL { - EMR emr; - RECTL rclBounds; - DWORD nVer; - DWORD nTri; - ULONG ulMode; - TRIVERTEX Ver[1]; -} -alias tagEMRGRADIENTFILL EMRGRADIENTFILL; -alias tagEMRGRADIENTFILL* PEMRGRADIENTFILL; - -struct tagEMRTRANSPARENTBLT { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG cxDest; - LONG cyDest; - DWORD dwRop; - LONG xSrc; - LONG ySrc; - XFORM xformSrc; - COLORREF crBkColorSrc; - DWORD iUsageSrc; - - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - LONG cxSrc; - LONG cySrc; -} -alias tagEMRTRANSPARENTBLT EMRTRANSPARENTBLT; -alias tagEMRTRANSPARENTBLT* PEMRTRANSPARENTBLT; - -// #endif /* WINVER >= 0x0500 */ - -enum : uint { GDICOMMENT_IDENTIFIER = 0x43494447 } -enum : uint { GDICOMMENT_WINDOWS_METAFILE = 0x80000001 } -enum : uint { GDICOMMENT_BEGINGROUP = 0x00000002 } -enum : uint { GDICOMMENT_ENDGROUP = 0x00000003 } -enum : uint { GDICOMMENT_MULTIFORMATS = 0x40000004 } -enum : uint { EPS_SIGNATURE = 0x46535045 } -enum : uint { GDICOMMENT_UNICODE_STRING = 0x00000040 } -enum : uint { GDICOMMENT_UNICODE_END = 0x00000080 } - -// #endif /* NOMETAFILE */ - -extern(Windows) export BOOL wglCopyContext(HGLRC, HGLRC, UINT); -extern(Windows) export HGLRC wglCreateContext(HDC); -extern(Windows) export HGLRC wglCreateLayerContext(HDC, int); -extern(Windows) export BOOL wglDeleteContext(HGLRC); -extern(Windows) export HGLRC wglGetCurrentContext(); -extern(Windows) export HDC wglGetCurrentDC(); -extern(Windows) export PROC wglGetProcAddress(LPCSTR); -extern(Windows) export BOOL wglMakeCurrent(HDC, HGLRC); -extern(Windows) export BOOL wglShareLists(HGLRC, HGLRC); -extern(Windows) export BOOL wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD); -extern(Windows) export BOOL wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD); -// #ifdef UNICODE -// #... -// #else -alias wglUseFontBitmapsA wglUseFontBitmaps; -// #endif // !UNICODE -extern(Windows) export BOOL SwapBuffers(HDC); - -struct _POINTFLOAT { - FLOAT x; - FLOAT y; -} -alias _POINTFLOAT POINTFLOAT; -alias _POINTFLOAT* PPOINTFLOAT; - -struct _GLYPHMETRICSFLOAT { - FLOAT gmfBlackBoxX; - FLOAT gmfBlackBoxY; - POINTFLOAT gmfptGlyphOrigin; - FLOAT gmfCellIncX; - FLOAT gmfCellIncY; -} -alias _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT; -alias _GLYPHMETRICSFLOAT* PGLYPHMETRICSFLOAT; -alias _GLYPHMETRICSFLOAT* LPGLYPHMETRICSFLOAT; - -enum : uint { WGL_FONT_LINES = 0 } -enum : uint { WGL_FONT_POLYGONS = 1 } -extern(Windows) export BOOL wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT, - FLOAT, int, LPGLYPHMETRICSFLOAT); -extern(Windows) export BOOL wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT, - FLOAT, int, LPGLYPHMETRICSFLOAT); -// #ifdef UNICODE -// #... -// #else -alias wglUseFontOutlinesA wglUseFontOutlines; -// #endif // !UNICODE - -struct tagLAYERPLANEDESCRIPTOR { - WORD nSize; - WORD nVersion; - DWORD dwFlags; - BYTE iPixelType; - BYTE cColorBits; - BYTE cRedBits; - BYTE cRedShift; - BYTE cGreenBits; - BYTE cGreenShift; - BYTE cBlueBits; - BYTE cBlueShift; - BYTE cAlphaBits; - BYTE cAlphaShift; - BYTE cAccumBits; - BYTE cAccumRedBits; - BYTE cAccumGreenBits; - BYTE cAccumBlueBits; - BYTE cAccumAlphaBits; - BYTE cDepthBits; - BYTE cStencilBits; - BYTE cAuxBuffers; - BYTE iLayerPlane; - BYTE bReserved; - COLORREF crTransparent; -} -alias tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR; -alias tagLAYERPLANEDESCRIPTOR* PLAYERPLANEDESCRIPTOR; -alias tagLAYERPLANEDESCRIPTOR* LPLAYERPLANEDESCRIPTOR; - -enum : uint { LPD_DOUBLEBUFFER = 0x00000001 } -enum : uint { LPD_STEREO = 0x00000002 } -enum : uint { LPD_SUPPORT_GDI = 0x00000010 } -enum : uint { LPD_SUPPORT_OPENGL = 0x00000020 } -enum : uint { LPD_SHARE_DEPTH = 0x00000040 } -enum : uint { LPD_SHARE_STENCIL = 0x00000080 } -enum : uint { LPD_SHARE_ACCUM = 0x00000100 } -enum : uint { LPD_SWAP_EXCHANGE = 0x00000200 } -enum : uint { LPD_SWAP_COPY = 0x00000400 } -enum : uint { LPD_TRANSPARENT = 0x00001000 } - -enum : uint { LPD_TYPE_RGBA = 0 } -enum : uint { LPD_TYPE_COLORINDEX = 1 } - -enum : uint { WGL_SWAP_MAIN_PLANE = 0x00000001 } -enum : uint { WGL_SWAP_OVERLAY1 = 0x00000002 } -enum : uint { WGL_SWAP_OVERLAY2 = 0x00000004 } -enum : uint { WGL_SWAP_OVERLAY3 = 0x00000008 } -enum : uint { WGL_SWAP_OVERLAY4 = 0x00000010 } -enum : uint { WGL_SWAP_OVERLAY5 = 0x00000020 } -enum : uint { WGL_SWAP_OVERLAY6 = 0x00000040 } -enum : uint { WGL_SWAP_OVERLAY7 = 0x00000080 } -enum : uint { WGL_SWAP_OVERLAY8 = 0x00000100 } -enum : uint { WGL_SWAP_OVERLAY9 = 0x00000200 } -enum : uint { WGL_SWAP_OVERLAY10 = 0x00000400 } -enum : uint { WGL_SWAP_OVERLAY11 = 0x00000800 } -enum : uint { WGL_SWAP_OVERLAY12 = 0x00001000 } -enum : uint { WGL_SWAP_OVERLAY13 = 0x00002000 } -enum : uint { WGL_SWAP_OVERLAY14 = 0x00004000 } -enum : uint { WGL_SWAP_OVERLAY15 = 0x00008000 } -enum : uint { WGL_SWAP_UNDERLAY1 = 0x00010000 } -enum : uint { WGL_SWAP_UNDERLAY2 = 0x00020000 } -enum : uint { WGL_SWAP_UNDERLAY3 = 0x00040000 } -enum : uint { WGL_SWAP_UNDERLAY4 = 0x00080000 } -enum : uint { WGL_SWAP_UNDERLAY5 = 0x00100000 } -enum : uint { WGL_SWAP_UNDERLAY6 = 0x00200000 } -enum : uint { WGL_SWAP_UNDERLAY7 = 0x00400000 } -enum : uint { WGL_SWAP_UNDERLAY8 = 0x00800000 } -enum : uint { WGL_SWAP_UNDERLAY9 = 0x01000000 } -enum : uint { WGL_SWAP_UNDERLAY10 = 0x02000000 } -enum : uint { WGL_SWAP_UNDERLAY11 = 0x04000000 } -enum : uint { WGL_SWAP_UNDERLAY12 = 0x08000000 } -enum : uint { WGL_SWAP_UNDERLAY13 = 0x10000000 } -enum : uint { WGL_SWAP_UNDERLAY14 = 0x20000000 } -enum : uint { WGL_SWAP_UNDERLAY15 = 0x40000000 } - -extern(Windows) export BOOL wglDescribeLayerPlane(HDC, int, int, UINT, - LPLAYERPLANEDESCRIPTOR); -extern(Windows) export int wglSetLayerPaletteEntries(HDC, int, int, int, - COLORREF *); -extern(Windows) export int wglGetLayerPaletteEntries(HDC, int, int, int, - COLORREF *); -extern(Windows) export BOOL wglRealizeLayerPalette(HDC, int, BOOL); -extern(Windows) export BOOL wglSwapLayerBuffers(HDC, UINT); - -// #if (WINVER >= 0x0500) - -struct _WGLSWAP { - HDC hdc; - UINT uiFlags; -} -alias _WGLSWAP WGLSWAP; -alias _WGLSWAP* PWGLSWAP; -alias _WGLSWAP* LPWGLSWAP; - -enum : uint { WGL_SWAPMULTIPLE_MAX = 16 } - -extern(Windows) export DWORD wglSwapMultipleBuffers(UINT, WGLSWAP *); - -// #endif // (WINVER >= 0x0500) - -// #endif /* NOGDI */ - -// #ifdef __cplusplus -// } -// #endif - -// #endif /* _WINGDI_ */ - DELETED src/win32/ansi/winnls.d Index: src/win32/ansi/winnls.d ================================================================== --- src/win32/ansi/winnls.d +++ src/win32/ansi/winnls.d @@ -1,1192 +0,0 @@ -module win32.ansi.winnls; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.winbase; - -// #ifndef _WINNLS_ -// #define _WINNLS_ - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #ifndef NONLS - -// #ifdef _MAC -// #... -// #endif - -enum : uint { MAX_LEADBYTES = 12 } -enum : uint { MAX_DEFAULTCHAR = 2 } - -enum : uint { MB_PRECOMPOSED = 0x00000001 } -enum : uint { MB_COMPOSITE = 0x00000002 } -enum : uint { MB_USEGLYPHCHARS = 0x00000004 } -enum : uint { MB_ERR_INVALID_CHARS = 0x00000008 } - -enum : uint { WC_COMPOSITECHECK = 0x00000200 } -enum : uint { WC_DISCARDNS = 0x00000010 } -enum : uint { WC_SEPCHARS = 0x00000020 } -enum : uint { WC_DEFAULTCHAR = 0x00000040 } - -// #if(WINVER >= 0x0500) -enum : uint { WC_NO_BEST_FIT_CHARS = 0x00000400 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { CT_CTYPE1 = 0x00000001 } -enum : uint { CT_CTYPE2 = 0x00000002 } -enum : uint { CT_CTYPE3 = 0x00000004 } - -enum : uint { C1_UPPER = 0x0001 } -enum : uint { C1_LOWER = 0x0002 } -enum : uint { C1_DIGIT = 0x0004 } -enum : uint { C1_SPACE = 0x0008 } -enum : uint { C1_PUNCT = 0x0010 } -enum : uint { C1_CNTRL = 0x0020 } -enum : uint { C1_BLANK = 0x0040 } -enum : uint { C1_XDIGIT = 0x0080 } -enum : uint { C1_ALPHA = 0x0100 } -enum : uint { C1_DEFINED = 0x0200 } - -enum : uint { C2_LEFTTORIGHT = 0x0001 } -enum : uint { C2_RIGHTTOLEFT = 0x0002 } - -enum : uint { C2_EUROPENUMBER = 0x0003 } -enum : uint { C2_EUROPESEPARATOR = 0x0004 } -enum : uint { C2_EUROPETERMINATOR = 0x0005 } -enum : uint { C2_ARABICNUMBER = 0x0006 } -enum : uint { C2_COMMONSEPARATOR = 0x0007 } - -enum : uint { C2_BLOCKSEPARATOR = 0x0008 } -enum : uint { C2_SEGMENTSEPARATOR = 0x0009 } -enum : uint { C2_WHITESPACE = 0x000A } -enum : uint { C2_OTHERNEUTRAL = 0x000B } - -enum : uint { C2_NOTAPPLICABLE = 0x0000 } - -enum : uint { C3_NONSPACING = 0x0001 } -enum : uint { C3_DIACRITIC = 0x0002 } -enum : uint { C3_VOWELMARK = 0x0004 } -enum : uint { C3_SYMBOL = 0x0008 } - -enum : uint { C3_KATAKANA = 0x0010 } -enum : uint { C3_HIRAGANA = 0x0020 } -enum : uint { C3_HALFWIDTH = 0x0040 } -enum : uint { C3_FULLWIDTH = 0x0080 } -enum : uint { C3_IDEOGRAPH = 0x0100 } -enum : uint { C3_KASHIDA = 0x0200 } -enum : uint { C3_LEXICAL = 0x0400 } - -enum : uint { C3_ALPHA = 0x8000 } - -enum : uint { C3_NOTAPPLICABLE = 0x0000 } - -enum : uint { NORM_IGNORECASE = 0x00000001 } -enum : uint { NORM_IGNORENONSPACE = 0x00000002 } -enum : uint { NORM_IGNORESYMBOLS = 0x00000004 } - -enum : uint { NORM_IGNOREKANATYPE = 0x00010000 } -enum : uint { NORM_IGNOREWIDTH = 0x00020000 } - -enum : uint { MAP_FOLDCZONE = 0x00000010 } -enum : uint { MAP_PRECOMPOSED = 0x00000020 } -enum : uint { MAP_COMPOSITE = 0x00000040 } -enum : uint { MAP_FOLDDIGITS = 0x00000080 } - -// #if(WINVER >= 0x0500) -enum : uint { MAP_EXPAND_LIGATURES = 0x00002000 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { LCMAP_LOWERCASE = 0x00000100 } -enum : uint { LCMAP_UPPERCASE = 0x00000200 } -enum : uint { LCMAP_SORTKEY = 0x00000400 } -enum : uint { LCMAP_BYTEREV = 0x00000800 } - -enum : uint { LCMAP_HIRAGANA = 0x00100000 } -enum : uint { LCMAP_KATAKANA = 0x00200000 } -enum : uint { LCMAP_HALFWIDTH = 0x00400000 } -enum : uint { LCMAP_FULLWIDTH = 0x00800000 } - -enum : uint { LCMAP_LINGUISTIC_CASING = 0x01000000 } - -enum : uint { LCMAP_SIMPLIFIED_CHINESE = 0x02000000 } -enum : uint { LCMAP_TRADITIONAL_CHINESE = 0x04000000 } - -enum : uint { LGRPID_INSTALLED = 0x00000001 } -enum : uint { LGRPID_SUPPORTED = 0x00000002 } - -enum : uint { LCID_INSTALLED = 0x00000001 } -enum : uint { LCID_SUPPORTED = 0x00000002 } -enum : uint { LCID_ALTERNATE_SORTS = 0x00000004 } - -enum : uint { CP_INSTALLED = 0x00000001 } -enum : uint { CP_SUPPORTED = 0x00000002 } - -enum : uint { SORT_STRINGSORT = 0x00001000 } - -enum : uint { CSTR_LESS_THAN = 1 } -enum : uint { CSTR_EQUAL = 2 } -enum : uint { CSTR_GREATER_THAN = 3 } - -enum : uint { CP_ACP = 0 } -enum : uint { CP_OEMCP = 1 } -enum : uint { CP_MACCP = 2 } -enum : uint { CP_THREAD_ACP = 3 } -enum : uint { CP_SYMBOL = 42 } - -enum : uint { CP_UTF7 = 65000 } -enum : uint { CP_UTF8 = 65001 } - -enum : uint { CTRY_DEFAULT = 0 } - -enum : uint { CTRY_ALBANIA = 355 } -enum : uint { CTRY_ALGERIA = 213 } -enum : uint { CTRY_ARGENTINA = 54 } -enum : uint { CTRY_ARMENIA = 374 } -enum : uint { CTRY_AUSTRALIA = 61 } -enum : uint { CTRY_AUSTRIA = 43 } -enum : uint { CTRY_AZERBAIJAN = 994 } -enum : uint { CTRY_BAHRAIN = 973 } -enum : uint { CTRY_BELARUS = 375 } -enum : uint { CTRY_BELGIUM = 32 } -enum : uint { CTRY_BELIZE = 501 } -enum : uint { CTRY_BOLIVIA = 591 } -enum : uint { CTRY_BRAZIL = 55 } -enum : uint { CTRY_BRUNEI_DARUSSALAM = 673 } -enum : uint { CTRY_BULGARIA = 359 } -enum : uint { CTRY_CANADA = 2 } -enum : uint { CTRY_CARIBBEAN = 1 } -enum : uint { CTRY_CHILE = 56 } -enum : uint { CTRY_COLOMBIA = 57 } -enum : uint { CTRY_COSTA_RICA = 506 } -enum : uint { CTRY_CROATIA = 385 } -enum : uint { CTRY_CZECH = 420 } -enum : uint { CTRY_DENMARK = 45 } -enum : uint { CTRY_DOMINICAN_REPUBLIC = 1 } -enum : uint { CTRY_ECUADOR = 593 } -enum : uint { CTRY_EGYPT = 20 } -enum : uint { CTRY_EL_SALVADOR = 503 } -enum : uint { CTRY_ESTONIA = 372 } -enum : uint { CTRY_FAEROE_ISLANDS = 298 } -enum : uint { CTRY_FINLAND = 358 } -enum : uint { CTRY_FRANCE = 33 } -enum : uint { CTRY_GEORGIA = 995 } -enum : uint { CTRY_GERMANY = 49 } -enum : uint { CTRY_GREECE = 30 } -enum : uint { CTRY_GUATEMALA = 502 } -enum : uint { CTRY_HONDURAS = 504 } -enum : uint { CTRY_HONG_KONG = 852 } -enum : uint { CTRY_HUNGARY = 36 } -enum : uint { CTRY_ICELAND = 354 } -enum : uint { CTRY_INDIA = 91 } -enum : uint { CTRY_INDONESIA = 62 } -enum : uint { CTRY_IRAN = 981 } -enum : uint { CTRY_IRAQ = 964 } -enum : uint { CTRY_IRELAND = 353 } -enum : uint { CTRY_ISRAEL = 972 } -enum : uint { CTRY_ITALY = 39 } -enum : uint { CTRY_JAMAICA = 1 } -enum : uint { CTRY_JAPAN = 81 } -enum : uint { CTRY_JORDAN = 962 } -enum : uint { CTRY_KAZAKSTAN = 7 } -enum : uint { CTRY_KENYA = 254 } -enum : uint { CTRY_KUWAIT = 965 } -enum : uint { CTRY_KYRGYZSTAN = 996 } -enum : uint { CTRY_LATVIA = 371 } -enum : uint { CTRY_LEBANON = 961 } -enum : uint { CTRY_LIBYA = 218 } -enum : uint { CTRY_LIECHTENSTEIN = 41 } -enum : uint { CTRY_LITHUANIA = 370 } -enum : uint { CTRY_LUXEMBOURG = 352 } -enum : uint { CTRY_MACAU = 853 } -enum : uint { CTRY_MACEDONIA = 389 } -enum : uint { CTRY_MALAYSIA = 60 } -enum : uint { CTRY_MALDIVES = 960 } -enum : uint { CTRY_MEXICO = 52 } -enum : uint { CTRY_MONACO = 33 } -enum : uint { CTRY_MONGOLIA = 976 } -enum : uint { CTRY_MOROCCO = 212 } -enum : uint { CTRY_NETHERLANDS = 31 } -enum : uint { CTRY_NEW_ZEALAND = 64 } -enum : uint { CTRY_NICARAGUA = 505 } -enum : uint { CTRY_NORWAY = 47 } -enum : uint { CTRY_OMAN = 968 } -enum : uint { CTRY_PAKISTAN = 92 } -enum : uint { CTRY_PANAMA = 507 } -enum : uint { CTRY_PARAGUAY = 595 } -enum : uint { CTRY_PERU = 51 } -enum : uint { CTRY_PHILIPPINES = 63 } -enum : uint { CTRY_POLAND = 48 } -enum : uint { CTRY_PORTUGAL = 351 } -enum : uint { CTRY_PRCHINA = 86 } -enum : uint { CTRY_PUERTO_RICO = 1 } -enum : uint { CTRY_QATAR = 974 } -enum : uint { CTRY_ROMANIA = 40 } -enum : uint { CTRY_RUSSIA = 7 } -enum : uint { CTRY_SAUDI_ARABIA = 966 } -enum : uint { CTRY_SERBIA = 381 } -enum : uint { CTRY_SINGAPORE = 65 } -enum : uint { CTRY_SLOVAK = 421 } -enum : uint { CTRY_SLOVENIA = 386 } -enum : uint { CTRY_SOUTH_AFRICA = 27 } -enum : uint { CTRY_SOUTH_KOREA = 82 } -enum : uint { CTRY_SPAIN = 34 } -enum : uint { CTRY_SWEDEN = 46 } -enum : uint { CTRY_SWITZERLAND = 41 } -enum : uint { CTRY_SYRIA = 963 } -enum : uint { CTRY_TAIWAN = 886 } -enum : uint { CTRY_TATARSTAN = 7 } -enum : uint { CTRY_THAILAND = 66 } -enum : uint { CTRY_TRINIDAD_Y_TOBAGO = 1 } -enum : uint { CTRY_TUNISIA = 216 } -enum : uint { CTRY_TURKEY = 90 } -enum : uint { CTRY_UAE = 971 } -enum : uint { CTRY_UKRAINE = 380 } -enum : uint { CTRY_UNITED_KINGDOM = 44 } -enum : uint { CTRY_UNITED_STATES = 1 } -enum : uint { CTRY_URUGUAY = 598 } -enum : uint { CTRY_UZBEKISTAN = 7 } -enum : uint { CTRY_VENEZUELA = 58 } -enum : uint { CTRY_VIET_NAM = 84 } -enum : uint { CTRY_YEMEN = 967 } -enum : uint { CTRY_ZIMBABWE = 263 } - -enum : uint { LOCALE_NOUSEROVERRIDE = 0x80000000 } -enum : uint { LOCALE_USE_CP_ACP = 0x40000000 } - -// #if(WINVER >= 0x0400) -enum : uint { LOCALE_RETURN_NUMBER = 0x20000000 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { LOCALE_ILANGUAGE = 0x00000001 } -enum : uint { LOCALE_SLANGUAGE = 0x00000002 } -enum : uint { LOCALE_SENGLANGUAGE = 0x00001001 } -enum : uint { LOCALE_SABBREVLANGNAME = 0x00000003 } -enum : uint { LOCALE_SNATIVELANGNAME = 0x00000004 } - -enum : uint { LOCALE_ICOUNTRY = 0x00000005 } -enum : uint { LOCALE_SCOUNTRY = 0x00000006 } -enum : uint { LOCALE_SENGCOUNTRY = 0x00001002 } -enum : uint { LOCALE_SABBREVCTRYNAME = 0x00000007 } -enum : uint { LOCALE_SNATIVECTRYNAME = 0x00000008 } - -enum : uint { LOCALE_IDEFAULTLANGUAGE = 0x00000009 } -enum : uint { LOCALE_IDEFAULTCOUNTRY = 0x0000000A } -enum : uint { LOCALE_IDEFAULTCODEPAGE = 0x0000000B } -enum : uint { LOCALE_IDEFAULTANSICODEPAGE = 0x00001004 } -enum : uint { LOCALE_IDEFAULTMACCODEPAGE = 0x00001011 } - -enum : uint { LOCALE_SLIST = 0x0000000C } -enum : uint { LOCALE_IMEASURE = 0x0000000D } - -enum : uint { LOCALE_SDECIMAL = 0x0000000E } -enum : uint { LOCALE_STHOUSAND = 0x0000000F } -enum : uint { LOCALE_SGROUPING = 0x00000010 } -enum : uint { LOCALE_IDIGITS = 0x00000011 } -enum : uint { LOCALE_ILZERO = 0x00000012 } -enum : uint { LOCALE_INEGNUMBER = 0x00001010 } -enum : uint { LOCALE_SNATIVEDIGITS = 0x00000013 } - -enum : uint { LOCALE_SCURRENCY = 0x00000014 } -enum : uint { LOCALE_SINTLSYMBOL = 0x00000015 } -enum : uint { LOCALE_SMONDECIMALSEP = 0x00000016 } -enum : uint { LOCALE_SMONTHOUSANDSEP = 0x00000017 } -enum : uint { LOCALE_SMONGROUPING = 0x00000018 } -enum : uint { LOCALE_ICURRDIGITS = 0x00000019 } -enum : uint { LOCALE_IINTLCURRDIGITS = 0x0000001A } -enum : uint { LOCALE_ICURRENCY = 0x0000001B } -enum : uint { LOCALE_INEGCURR = 0x0000001C } - -enum : uint { LOCALE_SDATE = 0x0000001D } -enum : uint { LOCALE_STIME = 0x0000001E } -enum : uint { LOCALE_SSHORTDATE = 0x0000001F } -enum : uint { LOCALE_SLONGDATE = 0x00000020 } -enum : uint { LOCALE_STIMEFORMAT = 0x00001003 } -enum : uint { LOCALE_IDATE = 0x00000021 } -enum : uint { LOCALE_ILDATE = 0x00000022 } -enum : uint { LOCALE_ITIME = 0x00000023 } -enum : uint { LOCALE_ITIMEMARKPOSN = 0x00001005 } -enum : uint { LOCALE_ICENTURY = 0x00000024 } -enum : uint { LOCALE_ITLZERO = 0x00000025 } -enum : uint { LOCALE_IDAYLZERO = 0x00000026 } -enum : uint { LOCALE_IMONLZERO = 0x00000027 } -enum : uint { LOCALE_S1159 = 0x00000028 } -enum : uint { LOCALE_S2359 = 0x00000029 } - -enum : uint { LOCALE_ICALENDARTYPE = 0x00001009 } -enum : uint { LOCALE_IOPTIONALCALENDAR = 0x0000100B } -enum : uint { LOCALE_IFIRSTDAYOFWEEK = 0x0000100C } -enum : uint { LOCALE_IFIRSTWEEKOFYEAR = 0x0000100D } - -enum : uint { LOCALE_SDAYNAME1 = 0x0000002A } -enum : uint { LOCALE_SDAYNAME2 = 0x0000002B } -enum : uint { LOCALE_SDAYNAME3 = 0x0000002C } -enum : uint { LOCALE_SDAYNAME4 = 0x0000002D } -enum : uint { LOCALE_SDAYNAME5 = 0x0000002E } -enum : uint { LOCALE_SDAYNAME6 = 0x0000002F } -enum : uint { LOCALE_SDAYNAME7 = 0x00000030 } -enum : uint { LOCALE_SABBREVDAYNAME1 = 0x00000031 } -enum : uint { LOCALE_SABBREVDAYNAME2 = 0x00000032 } -enum : uint { LOCALE_SABBREVDAYNAME3 = 0x00000033 } -enum : uint { LOCALE_SABBREVDAYNAME4 = 0x00000034 } -enum : uint { LOCALE_SABBREVDAYNAME5 = 0x00000035 } -enum : uint { LOCALE_SABBREVDAYNAME6 = 0x00000036 } -enum : uint { LOCALE_SABBREVDAYNAME7 = 0x00000037 } -enum : uint { LOCALE_SMONTHNAME1 = 0x00000038 } -enum : uint { LOCALE_SMONTHNAME2 = 0x00000039 } -enum : uint { LOCALE_SMONTHNAME3 = 0x0000003A } -enum : uint { LOCALE_SMONTHNAME4 = 0x0000003B } -enum : uint { LOCALE_SMONTHNAME5 = 0x0000003C } -enum : uint { LOCALE_SMONTHNAME6 = 0x0000003D } -enum : uint { LOCALE_SMONTHNAME7 = 0x0000003E } -enum : uint { LOCALE_SMONTHNAME8 = 0x0000003F } -enum : uint { LOCALE_SMONTHNAME9 = 0x00000040 } -enum : uint { LOCALE_SMONTHNAME10 = 0x00000041 } -enum : uint { LOCALE_SMONTHNAME11 = 0x00000042 } -enum : uint { LOCALE_SMONTHNAME12 = 0x00000043 } -enum : uint { LOCALE_SMONTHNAME13 = 0x0000100E } -enum : uint { LOCALE_SABBREVMONTHNAME1 = 0x00000044 } -enum : uint { LOCALE_SABBREVMONTHNAME2 = 0x00000045 } -enum : uint { LOCALE_SABBREVMONTHNAME3 = 0x00000046 } -enum : uint { LOCALE_SABBREVMONTHNAME4 = 0x00000047 } -enum : uint { LOCALE_SABBREVMONTHNAME5 = 0x00000048 } -enum : uint { LOCALE_SABBREVMONTHNAME6 = 0x00000049 } -enum : uint { LOCALE_SABBREVMONTHNAME7 = 0x0000004A } -enum : uint { LOCALE_SABBREVMONTHNAME8 = 0x0000004B } -enum : uint { LOCALE_SABBREVMONTHNAME9 = 0x0000004C } -enum : uint { LOCALE_SABBREVMONTHNAME10 = 0x0000004D } -enum : uint { LOCALE_SABBREVMONTHNAME11 = 0x0000004E } -enum : uint { LOCALE_SABBREVMONTHNAME12 = 0x0000004F } -enum : uint { LOCALE_SABBREVMONTHNAME13 = 0x0000100F } - -enum : uint { LOCALE_SPOSITIVESIGN = 0x00000050 } -enum : uint { LOCALE_SNEGATIVESIGN = 0x00000051 } -enum : uint { LOCALE_IPOSSIGNPOSN = 0x00000052 } -enum : uint { LOCALE_INEGSIGNPOSN = 0x00000053 } -enum : uint { LOCALE_IPOSSYMPRECEDES = 0x00000054 } -enum : uint { LOCALE_IPOSSEPBYSPACE = 0x00000055 } -enum : uint { LOCALE_INEGSYMPRECEDES = 0x00000056 } -enum : uint { LOCALE_INEGSEPBYSPACE = 0x00000057 } - -// #if(WINVER >= 0x0400) -enum : uint { LOCALE_FONTSIGNATURE = 0x00000058 } -enum : uint { LOCALE_SISO639LANGNAME = 0x00000059 } -enum : uint { LOCALE_SISO3166CTRYNAME = 0x0000005A } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -enum : uint { LOCALE_IDEFAULTEBCDICCODEPAGE = 0x00001012 } -enum : uint { LOCALE_IPAPERSIZE = 0x0000100A } -enum : uint { LOCALE_SENGCURRNAME = 0x00001007 } -enum : uint { LOCALE_SNATIVECURRNAME = 0x00001008 } -enum : uint { LOCALE_SYEARMONTH = 0x00001006 } -enum : uint { LOCALE_SSORTNAME = 0x00001013 } -enum : uint { LOCALE_IDIGITSUBSTITUTION = 0x00001014 } - -// #endif /* WINVER >= 0x0500 */ - -enum : uint { TIME_NOMINUTESORSECONDS = 0x00000001 } -enum : uint { TIME_NOSECONDS = 0x00000002 } -enum : uint { TIME_NOTIMEMARKER = 0x00000004 } -enum : uint { TIME_FORCE24HOURFORMAT = 0x00000008 } - -enum : uint { DATE_SHORTDATE = 0x00000001 } -enum : uint { DATE_LONGDATE = 0x00000002 } -enum : uint { DATE_USE_ALT_CALENDAR = 0x00000004 } - -// #if(WINVER >= 0x0500) -enum : uint { DATE_YEARMONTH = 0x00000008 } -enum : uint { DATE_LTRREADING = 0x00000010 } -enum : uint { DATE_RTLREADING = 0x00000020 } -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0500) -alias LOCALE_NOUSEROVERRIDE CAL_NOUSEROVERRIDE; -alias LOCALE_USE_CP_ACP CAL_USE_CP_ACP; -alias LOCALE_RETURN_NUMBER CAL_RETURN_NUMBER; -// #endif /* WINVER >= 0x0500 */ - -enum : uint { CAL_ICALINTVALUE = 0x00000001 } -enum : uint { CAL_SCALNAME = 0x00000002 } -enum : uint { CAL_IYEAROFFSETRANGE = 0x00000003 } -enum : uint { CAL_SERASTRING = 0x00000004 } -enum : uint { CAL_SSHORTDATE = 0x00000005 } -enum : uint { CAL_SLONGDATE = 0x00000006 } -enum : uint { CAL_SDAYNAME1 = 0x00000007 } -enum : uint { CAL_SDAYNAME2 = 0x00000008 } -enum : uint { CAL_SDAYNAME3 = 0x00000009 } -enum : uint { CAL_SDAYNAME4 = 0x0000000a } -enum : uint { CAL_SDAYNAME5 = 0x0000000b } -enum : uint { CAL_SDAYNAME6 = 0x0000000c } -enum : uint { CAL_SDAYNAME7 = 0x0000000d } -enum : uint { CAL_SABBREVDAYNAME1 = 0x0000000e } -enum : uint { CAL_SABBREVDAYNAME2 = 0x0000000f } -enum : uint { CAL_SABBREVDAYNAME3 = 0x00000010 } -enum : uint { CAL_SABBREVDAYNAME4 = 0x00000011 } -enum : uint { CAL_SABBREVDAYNAME5 = 0x00000012 } -enum : uint { CAL_SABBREVDAYNAME6 = 0x00000013 } -enum : uint { CAL_SABBREVDAYNAME7 = 0x00000014 } -enum : uint { CAL_SMONTHNAME1 = 0x00000015 } -enum : uint { CAL_SMONTHNAME2 = 0x00000016 } -enum : uint { CAL_SMONTHNAME3 = 0x00000017 } -enum : uint { CAL_SMONTHNAME4 = 0x00000018 } -enum : uint { CAL_SMONTHNAME5 = 0x00000019 } -enum : uint { CAL_SMONTHNAME6 = 0x0000001a } -enum : uint { CAL_SMONTHNAME7 = 0x0000001b } -enum : uint { CAL_SMONTHNAME8 = 0x0000001c } -enum : uint { CAL_SMONTHNAME9 = 0x0000001d } -enum : uint { CAL_SMONTHNAME10 = 0x0000001e } -enum : uint { CAL_SMONTHNAME11 = 0x0000001f } -enum : uint { CAL_SMONTHNAME12 = 0x00000020 } -enum : uint { CAL_SMONTHNAME13 = 0x00000021 } -enum : uint { CAL_SABBREVMONTHNAME1 = 0x00000022 } -enum : uint { CAL_SABBREVMONTHNAME2 = 0x00000023 } -enum : uint { CAL_SABBREVMONTHNAME3 = 0x00000024 } -enum : uint { CAL_SABBREVMONTHNAME4 = 0x00000025 } -enum : uint { CAL_SABBREVMONTHNAME5 = 0x00000026 } -enum : uint { CAL_SABBREVMONTHNAME6 = 0x00000027 } -enum : uint { CAL_SABBREVMONTHNAME7 = 0x00000028 } -enum : uint { CAL_SABBREVMONTHNAME8 = 0x00000029 } -enum : uint { CAL_SABBREVMONTHNAME9 = 0x0000002a } -enum : uint { CAL_SABBREVMONTHNAME10 = 0x0000002b } -enum : uint { CAL_SABBREVMONTHNAME11 = 0x0000002c } -enum : uint { CAL_SABBREVMONTHNAME12 = 0x0000002d } -enum : uint { CAL_SABBREVMONTHNAME13 = 0x0000002e } - -// #if(WINVER >= 0x0500) -enum : uint { CAL_SYEARMONTH = 0x0000002f } -enum : uint { CAL_ITWODIGITYEARMAX = 0x00000030 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { ENUM_ALL_CALENDARS = 0xffffffff } - -enum : uint { CAL_GREGORIAN = 1 } -enum : uint { CAL_GREGORIAN_US = 2 } -enum : uint { CAL_JAPAN = 3 } -enum : uint { CAL_TAIWAN = 4 } -enum : uint { CAL_KOREA = 5 } -enum : uint { CAL_HIJRI = 6 } -enum : uint { CAL_THAI = 7 } -enum : uint { CAL_HEBREW = 8 } -enum : uint { CAL_GREGORIAN_ME_FRENCH = 9 } -enum : uint { CAL_GREGORIAN_ARABIC = 10 } -enum : uint { CAL_GREGORIAN_XLIT_ENGLISH = 11 } -enum : uint { CAL_GREGORIAN_XLIT_FRENCH = 12 } - -enum : uint { LGRPID_WESTERN_EUROPE = 0x0001 } -enum : uint { LGRPID_CENTRAL_EUROPE = 0x0002 } -enum : uint { LGRPID_BALTIC = 0x0003 } -enum : uint { LGRPID_GREEK = 0x0004 } -enum : uint { LGRPID_CYRILLIC = 0x0005 } -enum : uint { LGRPID_TURKISH = 0x0006 } -enum : uint { LGRPID_JAPANESE = 0x0007 } -enum : uint { LGRPID_KOREAN = 0x0008 } -enum : uint { LGRPID_TRADITIONAL_CHINESE = 0x0009 } -enum : uint { LGRPID_SIMPLIFIED_CHINESE = 0x000a } -enum : uint { LGRPID_THAI = 0x000b } -enum : uint { LGRPID_HEBREW = 0x000c } -enum : uint { LGRPID_ARABIC = 0x000d } -enum : uint { LGRPID_VIETNAMESE = 0x000e } -enum : uint { LGRPID_INDIC = 0x000f } -enum : uint { LGRPID_GEORGIAN = 0x0010 } -enum : uint { LGRPID_ARMENIAN = 0x0011 } - -alias DWORD LGRPID; - -alias DWORD LCTYPE; - -alias DWORD CALTYPE; - -alias DWORD CALID; - -struct _cpinfo { - UINT MaxCharSize; - BYTE DefaultChar[MAX_DEFAULTCHAR]; - BYTE LeadByte[MAX_LEADBYTES]; -} -alias _cpinfo CPINFO; -alias _cpinfo* LPCPINFO; - -struct _cpinfoexA { - UINT MaxCharSize; - BYTE DefaultChar[MAX_DEFAULTCHAR]; - BYTE LeadByte[MAX_LEADBYTES]; - WCHAR UnicodeDefaultChar; - UINT CodePage; - CHAR CodePageName[MAX_PATH]; -} -alias _cpinfoexA CPINFOEXA; -alias _cpinfoexA* LPCPINFOEXA; - -struct _cpinfoexW { - UINT MaxCharSize; - BYTE DefaultChar[MAX_DEFAULTCHAR]; - BYTE LeadByte[MAX_LEADBYTES]; - WCHAR UnicodeDefaultChar; - UINT CodePage; - WCHAR CodePageName[MAX_PATH]; -} -alias _cpinfoexW CPINFOEXW; -alias _cpinfoexW* LPCPINFOEXW; - -// #ifdef UNICODE -// ... -// #else -alias CPINFOEXA CPINFOEX; -alias LPCPINFOEXA LPCPINFOEX; -// #endif // UNICODE - -struct _numberfmtA { - UINT NumDigits; - UINT LeadingZero; - UINT Grouping; - LPSTR lpDecimalSep; - LPSTR lpThousandSep; - UINT NegativeOrder; -} -alias _numberfmtA NUMBERFMTA; -alias _numberfmtA* LPNUMBERFMTA; - -struct _numberfmtW { - UINT NumDigits; - UINT LeadingZero; - UINT Grouping; - LPWSTR lpDecimalSep; - LPWSTR lpThousandSep; - UINT NegativeOrder; -} -alias _numberfmtW NUMBERFMTW; -alias _numberfmtW* LPNUMBERFMTW; - -// #ifdef UNICODE -// ... -// #else -alias NUMBERFMTA NUMBERFMT; -alias LPNUMBERFMTA LPNUMBERFMT; -// #endif // UNICODE - -struct _currencyfmtA { - UINT NumDigits; - UINT LeadingZero; - UINT Grouping; - LPSTR lpDecimalSep; - LPSTR lpThousandSep; - UINT NegativeOrder; - UINT PositiveOrder; - LPSTR lpCurrencySymbol; -} -alias _currencyfmtA CURRENCYFMTA; -alias _currencyfmtA* LPCURRENCYFMTA; - -struct _currencyfmtW { - UINT NumDigits; - UINT LeadingZero; - UINT Grouping; - LPWSTR lpDecimalSep; - LPWSTR lpThousandSep; - UINT NegativeOrder; - UINT PositiveOrder; - LPWSTR lpCurrencySymbol; -} -alias _currencyfmtW CURRENCYFMTW; -alias _currencyfmtW* LPCURRENCYFMTW; - -// #ifdef UNICODE -// ... -// #else -alias CURRENCYFMTA CURRENCYFMT; -alias LPCURRENCYFMTA LPCURRENCYFMT; -// #endif // UNICODE - -alias LONG GEOID; -alias DWORD GEOTYPE; -alias DWORD GEOCLASS; - -enum { GEOID_NOT_AVAILABLE = -1 } - -enum SYSGEOTYPE { - GEO_NATION = 0x0001, - GEO_LATITUDE = 0x0002, - GEO_LONGITUDE = 0x0003, - GEO_ISO2 = 0x0004, - GEO_ISO3 = 0x0005, - GEO_RFC1766 = 0x0006, - GEO_LCID = 0x0007, - GEO_FRIENDLYNAME = 0x0008, - GEO_OFFICIALNAME = 0x0009, - GEO_TIMEZONES = 0x000A, - GEO_OFFICIALLANGUAGES = 0x000B, -} - -enum SYSGEOCLASS { - GEOCLASS_NATION = 16, - GEOCLASS_REGION = 14, -} - -// #ifdef STRICT - -// ... - -// ... - -// #else // !STRICT - -alias FARPROC LANGUAGEGROUP_ENUMPROCA; -alias FARPROC LANGGROUPLOCALE_ENUMPROCA; -alias FARPROC UILANGUAGE_ENUMPROCA; -alias FARPROC LOCALE_ENUMPROCA; -alias FARPROC CODEPAGE_ENUMPROCA; -alias FARPROC DATEFMT_ENUMPROCA; -alias FARPROC DATEFMT_ENUMPROCEXA; -alias FARPROC TIMEFMT_ENUMPROCA; -alias FARPROC CALINFO_ENUMPROCA; -alias FARPROC CALINFO_ENUMPROCEXA; -alias FARPROC GEO_ENUMPROC; - -alias FARPROC LANGUAGEGROUP_ENUMPROCW; -alias FARPROC LANGGROUPLOCALE_ENUMPROCW; -alias FARPROC UILANGUAGE_ENUMPROCW; -alias FARPROC LOCALE_ENUMPROCW; -alias FARPROC CODEPAGE_ENUMPROCW; -alias FARPROC DATEFMT_ENUMPROCW; -alias FARPROC DATEFMT_ENUMPROCEXW; -alias FARPROC TIMEFMT_ENUMPROCW; -alias FARPROC CALINFO_ENUMPROCW; -alias FARPROC CALINFO_ENUMPROCEXW; - -// #endif // !STRICT - -// #ifdef UNICODE - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #else - -alias LANGUAGEGROUP_ENUMPROCA LANGUAGEGROUP_ENUMPROC; -alias LANGGROUPLOCALE_ENUMPROCA LANGGROUPLOCALE_ENUMPROC; -alias UILANGUAGE_ENUMPROCA UILANGUAGE_ENUMPROC; -alias LOCALE_ENUMPROCA LOCALE_ENUMPROC; -alias CODEPAGE_ENUMPROCA CODEPAGE_ENUMPROC; -alias DATEFMT_ENUMPROCA DATEFMT_ENUMPROC; -alias DATEFMT_ENUMPROCEXA DATEFMT_ENUMPROCEX; -alias TIMEFMT_ENUMPROCA TIMEFMT_ENUMPROC; -alias CALINFO_ENUMPROCA CALINFO_ENUMPROC; -alias CALINFO_ENUMPROCEXA CALINFO_ENUMPROCEX; - -// #endif // !UNICODE - -extern(Windows) export BOOL IsValidCodePage( - UINT CodePage); - -extern(Windows) export UINT GetACP(); - -extern(Windows) export UINT GetOEMCP(); - -extern(Windows) export BOOL GetCPInfo( - UINT CodePage, - LPCPINFO lpCPInfo); - -extern(Windows) export BOOL GetCPInfoExA( - UINT CodePage, - DWORD dwFlags, - LPCPINFOEXA lpCPInfoEx); -extern(Windows) export BOOL GetCPInfoExW( - UINT CodePage, - DWORD dwFlags, - LPCPINFOEXW lpCPInfoEx); -// #ifdef UNICODE -// #... -// #else -alias GetCPInfoExA GetCPInfoEx; -// #endif // !UNICODE - -extern(Windows) export BOOL IsDBCSLeadByte( - BYTE TestChar); - -extern(Windows) export BOOL IsDBCSLeadByteEx( - UINT CodePage, - BYTE TestChar); - -extern(Windows) export int MultiByteToWideChar( - UINT CodePage, - DWORD dwFlags, - LPCSTR lpMultiByteStr, - int cbMultiByte, - LPWSTR lpWideCharStr, - int cchWideChar); - -extern(Windows) export int WideCharToMultiByte( - UINT CodePage, - DWORD dwFlags, - LPCWSTR lpWideCharStr, - int cchWideChar, - LPSTR lpMultiByteStr, - int cbMultiByte, - LPCSTR lpDefaultChar, - LPBOOL lpUsedDefaultChar); - -extern(Windows) export int CompareStringA( - LCID Locale, - DWORD dwCmpFlags, - LPCSTR lpString1, - int cchCount1, - LPCSTR lpString2, - int cchCount2); -extern(Windows) export int CompareStringW( - LCID Locale, - DWORD dwCmpFlags, - LPCWSTR lpString1, - int cchCount1, - LPCWSTR lpString2, - int cchCount2); -// #ifdef UNICODE -// #... -// #else -alias CompareStringA CompareString; -// #endif // !UNICODE - -extern(Windows) export int LCMapStringA( - LCID Locale, - DWORD dwMapFlags, - LPCSTR lpSrcStr, - int cchSrc, - LPSTR lpDestStr, - int cchDest); -extern(Windows) export int LCMapStringW( - LCID Locale, - DWORD dwMapFlags, - LPCWSTR lpSrcStr, - int cchSrc, - LPWSTR lpDestStr, - int cchDest); -// #ifdef UNICODE -// #... -// #else -alias LCMapStringA LCMapString; -// #endif // !UNICODE - -extern(Windows) export int GetLocaleInfoA( - LCID Locale, - LCTYPE LCType, - LPSTR lpLCData, - int cchData); -extern(Windows) export int GetLocaleInfoW( - LCID Locale, - LCTYPE LCType, - LPWSTR lpLCData, - int cchData); -// #ifdef UNICODE -// #... -// #else -alias GetLocaleInfoA GetLocaleInfo; -// #endif // !UNICODE - -extern(Windows) export BOOL SetLocaleInfoA( - LCID Locale, - LCTYPE LCType, - LPCSTR lpLCData); -extern(Windows) export BOOL SetLocaleInfoW( - LCID Locale, - LCTYPE LCType, - LPCWSTR lpLCData); -// #ifdef UNICODE -// #... -// #else -alias SetLocaleInfoA SetLocaleInfo; -// #endif // !UNICODE - -// #if (WINVER >= 0x040A) -extern(Windows) export int GetCalendarInfoA( - LCID Locale, - CALID Calendar, - CALTYPE CalType, - LPSTR lpCalData, - int cchData, - LPDWORD lpValue); -extern(Windows) export int GetCalendarInfoW( - LCID Locale, - CALID Calendar, - CALTYPE CalType, - LPWSTR lpCalData, - int cchData, - LPDWORD lpValue); -// #ifdef UNICODE -// #... -// #else -alias GetCalendarInfoA GetCalendarInfo; -// #endif // !UNICODE - -extern(Windows) export BOOL SetCalendarInfoA( - LCID Locale, - CALID Calendar, - CALTYPE CalType, - LPCSTR lpCalData); -extern(Windows) export BOOL SetCalendarInfoW( - LCID Locale, - CALID Calendar, - CALTYPE CalType, - LPCWSTR lpCalData); -// #ifdef UNICODE -// #... -// #else -alias SetCalendarInfoA SetCalendarInfo; -// #endif // !UNICODE -// #endif - -extern(Windows) export int GetTimeFormatA( - LCID Locale, - DWORD dwFlags, - SYSTEMTIME *lpTime, - LPCSTR lpFormat, - LPSTR lpTimeStr, - int cchTime); -extern(Windows) export int GetTimeFormatW( - LCID Locale, - DWORD dwFlags, - SYSTEMTIME *lpTime, - LPCWSTR lpFormat, - LPWSTR lpTimeStr, - int cchTime); -// #ifdef UNICODE -// #... -// #else -alias GetTimeFormatA GetTimeFormat; -// #endif // !UNICODE - -extern(Windows) export int GetDateFormatA( - LCID Locale, - DWORD dwFlags, - SYSTEMTIME *lpDate, - LPCSTR lpFormat, - LPSTR lpDateStr, - int cchDate); -extern(Windows) export int GetDateFormatW( - LCID Locale, - DWORD dwFlags, - SYSTEMTIME *lpDate, - LPCWSTR lpFormat, - LPWSTR lpDateStr, - int cchDate); -// #ifdef UNICODE -// #... -// #else -alias GetDateFormatA GetDateFormat; -// #endif // !UNICODE - -extern(Windows) export int GetNumberFormatA( - LCID Locale, - DWORD dwFlags, - LPCSTR lpValue, - NUMBERFMTA *lpFormat, - LPSTR lpNumberStr, - int cchNumber); -extern(Windows) export int GetNumberFormatW( - LCID Locale, - DWORD dwFlags, - LPCWSTR lpValue, - NUMBERFMTW *lpFormat, - LPWSTR lpNumberStr, - int cchNumber); -// #ifdef UNICODE -// #... -// #else -alias GetNumberFormatA GetNumberFormat; -// #endif // !UNICODE - -extern(Windows) export int GetCurrencyFormatA( - LCID Locale, - DWORD dwFlags, - LPCSTR lpValue, - CURRENCYFMTA *lpFormat, - LPSTR lpCurrencyStr, - int cchCurrency); -extern(Windows) export int GetCurrencyFormatW( - LCID Locale, - DWORD dwFlags, - LPCWSTR lpValue, - CURRENCYFMTW *lpFormat, - LPWSTR lpCurrencyStr, - int cchCurrency); -// #ifdef UNICODE -// #... -// #else -alias GetCurrencyFormatA GetCurrencyFormat; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumCalendarInfoA( - CALINFO_ENUMPROCA lpCalInfoEnumProc, - LCID Locale, - CALID Calendar, - CALTYPE CalType); -extern(Windows) export BOOL EnumCalendarInfoW( - CALINFO_ENUMPROCW lpCalInfoEnumProc, - LCID Locale, - CALID Calendar, - CALTYPE CalType); -// #ifdef UNICODE -// #... -// #else -alias EnumCalendarInfoA EnumCalendarInfo; -// #endif // !UNICODE - -// #if(WINVER >= 0x0500) -extern(Windows) export BOOL EnumCalendarInfoExA( - CALINFO_ENUMPROCEXA lpCalInfoEnumProcEx, - LCID Locale, - CALID Calendar, - CALTYPE CalType); -extern(Windows) export BOOL EnumCalendarInfoExW( - CALINFO_ENUMPROCEXW lpCalInfoEnumProcEx, - LCID Locale, - CALID Calendar, - CALTYPE CalType); -// #ifdef UNICODE -// #... -// #else -alias EnumCalendarInfoExA EnumCalendarInfoEx; -// #endif // !UNICODE -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export BOOL EnumTimeFormatsA( - TIMEFMT_ENUMPROCA lpTimeFmtEnumProc, - LCID Locale, - DWORD dwFlags); -extern(Windows) export BOOL EnumTimeFormatsW( - TIMEFMT_ENUMPROCW lpTimeFmtEnumProc, - LCID Locale, - DWORD dwFlags); -// #ifdef UNICODE -// #... -// #else -alias EnumTimeFormatsA EnumTimeFormats; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumDateFormatsA( - DATEFMT_ENUMPROCA lpDateFmtEnumProc, - LCID Locale, - DWORD dwFlags); -extern(Windows) export BOOL EnumDateFormatsW( - DATEFMT_ENUMPROCW lpDateFmtEnumProc, - LCID Locale, - DWORD dwFlags); -// #ifdef UNICODE -// #... -// #else -alias EnumDateFormatsA EnumDateFormats; -// #endif // !UNICODE - -// #if(WINVER >= 0x0500) -extern(Windows) export BOOL EnumDateFormatsExA( - DATEFMT_ENUMPROCEXA lpDateFmtEnumProcEx, - LCID Locale, - DWORD dwFlags); -extern(Windows) export BOOL EnumDateFormatsExW( - DATEFMT_ENUMPROCEXW lpDateFmtEnumProcEx, - LCID Locale, - DWORD dwFlags); -// #ifdef UNICODE -// #... -// #else -alias EnumDateFormatsExA EnumDateFormatsEx; -// #endif // !UNICODE -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0500) -extern(Windows) export BOOL IsValidLanguageGroup( - LGRPID LanguageGroup, - DWORD dwFlags); -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export BOOL IsValidLocale( - LCID Locale, - DWORD dwFlags); - -extern(Windows) export int GetGeoInfoA( - GEOID Location, - GEOTYPE GeoType, - LPSTR lpGeoData, - int cchData, - LANGID LangId); -extern(Windows) export int GetGeoInfoW( - GEOID Location, - GEOTYPE GeoType, - LPWSTR lpGeoData, - int cchData, - LANGID LangId); -// #ifdef UNICODE -// #... -// #else -alias GetGeoInfoA GetGeoInfo; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumSystemGeoID( - GEOCLASS GeoClass, - GEOID ParentGeoId, - GEO_ENUMPROC lpGeoEnumProc); - -extern(Windows) export GEOID GetUserGeoID( - GEOCLASS GeoClass); - -extern(Windows) export BOOL SetUserGeoID( - GEOID GeoId); - -extern(Windows) export LCID ConvertDefaultLocale( - LCID Locale); - -extern(Windows) export LCID GetThreadLocale(); - -extern(Windows) export BOOL SetThreadLocale( - LCID Locale - ); - -// #if(WINVER >= 0x0500) -extern(Windows) export LANGID GetSystemDefaultUILanguage(); - -extern(Windows) export LANGID GetUserDefaultUILanguage(); -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export LANGID GetSystemDefaultLangID(); - -extern(Windows) export LANGID GetUserDefaultLangID(); - -extern(Windows) export LCID GetSystemDefaultLCID(); - -extern(Windows) export LCID GetUserDefaultLCID(); - -extern(Windows) export BOOL GetStringTypeExA( - LCID Locale, - DWORD dwInfoType, - LPCSTR lpSrcStr, - int cchSrc, - LPWORD lpCharType); -extern(Windows) export BOOL GetStringTypeExW( - LCID Locale, - DWORD dwInfoType, - LPCWSTR lpSrcStr, - int cchSrc, - LPWORD lpCharType); -// #ifdef UNICODE -// #... -// #else -alias GetStringTypeExA GetStringTypeEx; -// #endif // !UNICODE - -extern(Windows) export BOOL GetStringTypeA( - LCID Locale, - DWORD dwInfoType, - LPCSTR lpSrcStr, - int cchSrc, - LPWORD lpCharType); - -extern(Windows) export BOOL GetStringTypeW( - DWORD dwInfoType, - LPCWSTR lpSrcStr, - int cchSrc, - LPWORD lpCharType); - -extern(Windows) export int FoldStringA( - DWORD dwMapFlags, - LPCSTR lpSrcStr, - int cchSrc, - LPSTR lpDestStr, - int cchDest); -extern(Windows) export int FoldStringW( - DWORD dwMapFlags, - LPCWSTR lpSrcStr, - int cchSrc, - LPWSTR lpDestStr, - int cchDest); -// #ifdef UNICODE -// #... -// #else -alias FoldStringA FoldString; -// #endif // !UNICODE - -// #if(WINVER >= 0x0500) -extern(Windows) export BOOL EnumSystemLanguageGroupsA( - LANGUAGEGROUP_ENUMPROCA lpLanguageGroupEnumProc, - DWORD dwFlags, - LONG_PTR lParam); -extern(Windows) export BOOL EnumSystemLanguageGroupsW( - LANGUAGEGROUP_ENUMPROCW lpLanguageGroupEnumProc, - DWORD dwFlags, - LONG_PTR lParam); -// #ifdef UNICODE -// #... -// #else -alias EnumSystemLanguageGroupsA EnumSystemLanguageGroups; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumLanguageGroupLocalesA( - LANGGROUPLOCALE_ENUMPROCA lpLangGroupLocaleEnumProc, - LGRPID LanguageGroup, - DWORD dwFlags, - LONG_PTR lParam); -extern(Windows) export BOOL EnumLanguageGroupLocalesW( - LANGGROUPLOCALE_ENUMPROCW lpLangGroupLocaleEnumProc, - LGRPID LanguageGroup, - DWORD dwFlags, - LONG_PTR lParam); -// #ifdef UNICODE -// #... -// #else -alias EnumLanguageGroupLocalesA EnumLanguageGroupLocales; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumUILanguagesA( - UILANGUAGE_ENUMPROCA lpUILanguageEnumProc, - DWORD dwFlags, - LONG_PTR lParam); -extern(Windows) export BOOL EnumUILanguagesW( - UILANGUAGE_ENUMPROCW lpUILanguageEnumProc, - DWORD dwFlags, - LONG_PTR lParam); -// #ifdef UNICODE -// #... -// #else -alias EnumUILanguagesA EnumUILanguages; -// #endif // !UNICODE -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export BOOL EnumSystemLocalesA( - LOCALE_ENUMPROCA lpLocaleEnumProc, - DWORD dwFlags); -extern(Windows) export BOOL EnumSystemLocalesW( - LOCALE_ENUMPROCW lpLocaleEnumProc, - DWORD dwFlags); -// #ifdef UNICODE -// #... -// #else -alias EnumSystemLocalesA EnumSystemLocales; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumSystemCodePagesA( - CODEPAGE_ENUMPROCA lpCodePageEnumProc, - DWORD dwFlags); -extern(Windows) export BOOL EnumSystemCodePagesW( - CODEPAGE_ENUMPROCW lpCodePageEnumProc, - DWORD dwFlags); -// #ifdef UNICODE -// #... -// #else -alias EnumSystemCodePagesA EnumSystemCodePages; -// #endif // !UNICODE - -// #endif // NONLS - -// #ifdef __cplusplus -// } -// #endif - -// #endif // _WINNLS_ DELETED src/win32/ansi/winnt.d Index: src/win32/ansi/winnt.d ================================================================== --- src/win32/ansi/winnt.d +++ src/win32/ansi/winnt.d @@ -1,5764 +0,0 @@ -module win32.ansi.winnt; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.windef; -alias void _TEB; -alias void _EXCEPTION_REGISTRATION_RECORD; -private extern(C) { - int memcmp(void*, void*, uint); - void* memmove(void*, void*, uint); - void* memcpy(void*, void*, uint); - void* memset(void*, uint, uint); -} - -// #ifndef _WINNT_ -// #define _WINNT_ - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #include -enum : uint { ANYSIZE_ARRAY = 1 } - -// #if defined(_M_MRX000) && !(defined(MIDL_PASS) || defined(RC_INVOKED)) && defined(ENABLE_RESTRICTED) -// #... -// #else -// #define RESTRICTED_POINTER -// #endif - -// #if defined(_M_MRX000) || defined(_M_ALPHA) || defined(_M_PPC) || defined(_M_IA64) || defined(_M_AMD64) -// #... -// #if defined(_WIN64) -// #... -// #else -// #... -// #endif -// #else -// #define UNALIGNED -// #define UNALIGNED64 -// #endif - -// #if defined(_WIN64) || defined(_M_ALPHA) -// #... -// #... -// #else -const uint MAX_NATURAL_ALIGNMENT = DWORD.sizeof; -enum : uint { MEMORY_ALLOCATION_ALIGNMENT = 8 } -// #endif - -// #ifdef __cplusplus -// #if _MSC_VER >= 1300 -// #define TYPE_ALIGNMENT( t ) __alignof(t) -// #endif -// #else -// #... -// ... -// #endif - -// #if defined(_WIN64) - -// #... -// ... - -// #... - -// #else - -// #define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD ) - -// #endif - -// #define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1] - -// #if !defined(_MAC) && (defined(_M_MRX000) || defined(_M_AMD64) || defined(_M_IA64)) && (_MSC_VER >= 1100) && !(defined(MIDL_PASS) || defined(RC_INVOKED)) -// #... -// ... -// #if defined(_WIN64) -// #... -// #else -// #... -// #endif -// #else -// #if defined(_MAC) && defined(_MAC_INT_64) -// #... -// ... -// #else -// #define POINTER_64 -alias uint POINTER_64_INT; -// #endif -alias void* POINTER_32; -// #endif - -// #if defined(_IA64_) || defined(_AMD64_) -// #... -// #else -alias POINTER_32 FIRMWARE_PTR; -// #endif - -// #include - -// #if (defined(_M_IX86) || defined(_M_IA64) || defined(_M_AMD64)) && !defined(MIDL_PASS) -// #define DECLSPEC_IMPORT __declspec(dllimport) -// #else -// #... -// #endif - -// #ifndef DECLSPEC_NORETURN -// #if (_MSC_VER >= 1200) && !defined(MIDL_PASS) -// #define DECLSPEC_NORETURN __declspec(noreturn) -// #else -// #... -// #endif -// #endif - -// #ifndef DECLSPEC_ALIGN -// #if (_MSC_VER >= 1300) && !defined(MIDL_PASS) -// #define DECLSPEC_ALIGN(x) __declspec(align(x)) -// #else -// #... -// #endif -// #endif - -// #ifndef DECLSPEC_CACHEALIGN -// #define DECLSPEC_CACHEALIGN DECLSPEC_ALIGN(128) -// #endif - -// #ifndef DECLSPEC_UUID -// #if (_MSC_VER >= 1100) && defined (__cplusplus) -// #define DECLSPEC_UUID(x) __declspec(uuid(x)) -// #else -// #... -// #endif -// #endif - -// #ifndef DECLSPEC_NOVTABLE -// #if (_MSC_VER >= 1100) && defined(__cplusplus) -// #define DECLSPEC_NOVTABLE __declspec(novtable) -// #else -// #... -// #endif -// #endif - -// #ifndef DECLSPEC_SELECTANY -// #if (_MSC_VER >= 1100) -// #define DECLSPEC_SELECTANY __declspec(selectany) -// #else -// #... -// #endif -// #endif - -// #ifndef NOP_FUNCTION -// #if (_MSC_VER >= 1210) -// #... -// #else -// #... -// #endif -// #endif - -// #ifndef DECLSPEC_ADDRSAFE -// #if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64)) -// #... -// #else -// #define DECLSPEC_ADDRSAFE -// #endif -// #endif - -// #ifndef FORCEINLINE -// #if (_MSC_VER >= 1200) -// #define FORCEINLINE __forceinline -// #else -// #... -// #endif -// #endif - -// #ifndef DECLSPEC_DEPRECATED -// #if (_MSC_VER >= 1300) && !defined(MIDL_PASS) -// #define DECLSPEC_DEPRECATED __declspec(deprecated) -// #define DEPRECATE_SUPPORTED -// #else -// #... -// #... -// #endif -// #endif - -alias void* PVOID; -deprecated alias void* PVOID64; /* warning: 64-bit */ - -// #if ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)) && !defined(_M_AMD64) -// #define NTAPI __stdcall -// #else -// #... -// #... -// #endif - -// #if !defined(_NTSYSTEM_) -// #define NTSYSAPI DECLSPEC_IMPORT -// #define NTSYSCALLAPI DECLSPEC_IMPORT -// #else -// #... -// #if defined(_NTDLLBUILD_) -// #... -// #else -// #... -// #endif - -// #endif - -// #ifndef VOID -alias void VOID; -alias char CHAR; -alias short SHORT; -alias int LONG; -// #endif - -// #ifndef _MAC -alias wchar WCHAR; -// #else - -// ... -// #endif - -alias WCHAR* PWCHAR; -alias WCHAR* LPWCH; -alias WCHAR* PWCH; -alias WCHAR* LPCWCH; -alias WCHAR* PCWCH; -alias WCHAR* NWPSTR; -alias WCHAR* LPWSTR; -alias WCHAR* PWSTR; -alias WCHAR* LPUWSTR; -alias WCHAR* PUWSTR; - -alias WCHAR* LPCWSTR; -alias WCHAR* PCWSTR; -alias WCHAR* LPCUWSTR; -alias WCHAR* PCUWSTR; - -alias CHAR* PCHAR; -alias CHAR* LPCH; -alias CHAR* PCH; - -alias CHAR* LPCCH; -alias CHAR* PCCH; -alias CHAR* NPSTR; -alias CHAR* LPSTR; -alias CHAR* PSTR; -alias CHAR* LPCSTR; -alias CHAR* PCSTR; - -// #ifdef UNICODE // r_winnt - -// #ifndef _TCHAR_DEFINED -// ... -// #... -// #endif /* !_TCHAR_DEFINED */ - -// ... -// #... - -// #else /* UNICODE */ // r_winnt - -// #ifndef _TCHAR_DEFINED -alias char TCHAR; -alias char* PTCHAR; -alias ubyte TBYTE; -alias ubyte* PTBYTE; -// #define _TCHAR_DEFINED -// #endif /* !_TCHAR_DEFINED */ - -alias LPSTR LPTCH; -alias LPSTR PTCH; -alias LPSTR PTSTR; -alias LPSTR LPTSTR; -alias LPSTR PUTSTR; -alias LPSTR LPUTSTR; -alias LPCSTR PCTSTR; -alias LPCSTR LPCTSTR; -alias LPCSTR PCUTSTR; -alias LPCSTR LPCUTSTR; -// #define __TEXT(quote) quote - -// #endif /* UNICODE */ // r_winnt -TCHAR[] TEXT(TCHAR[] quote){ return quote; } - -alias SHORT* PSHORT; -alias LONG* PLONG; - -// #ifdef STRICT -alias void* HANDLE; -// #define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name -// #else -// ... -// #... -// #endif -alias HANDLE* PHANDLE; - -alias BYTE FCHAR; -alias WORD FSHORT; -alias DWORD FLONG; - -// #ifndef _HRESULT_DEFINED -// #define _HRESULT_DEFINED -alias LONG HRESULT; - -// #endif // !_HRESULT_DEFINED - -// #ifdef __cplusplus -// #define EXTERN_C extern "C" -// #else -// #... -// #endif - -// #if defined(_WIN32) || defined(_MPPC_) - -// #ifdef _68K_ -// #... -// #else -// #define STDMETHODCALLTYPE __stdcall -// #endif -// #define STDMETHODVCALLTYPE __cdecl - -// #define STDAPICALLTYPE __stdcall -// #define STDAPIVCALLTYPE __cdecl - -// #else - -// #... -// #... - -// #... -// #... - -// #endif - -// #define STDAPI EXTERN_C HRESULT STDAPICALLTYPE -// #define STDAPI_(type) EXTERN_C type STDAPICALLTYPE - -// #define STDMETHODIMP HRESULT STDMETHODCALLTYPE -// #define STDMETHODIMP_(type) type STDMETHODCALLTYPE - -// #define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE -// #define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE - -// #define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE -// #define STDMETHODIMPV_(type) type STDMETHODVCALLTYPE - -alias char CCHAR; -alias DWORD LCID; -alias PDWORD PLCID; -alias WORD LANGID; -enum : uint { APPLICATION_ERROR_MASK = 0x20000000 } -enum : uint { ERROR_SEVERITY_SUCCESS = 0x00000000 } -enum : uint { ERROR_SEVERITY_INFORMATIONAL = 0x40000000 } -enum : uint { ERROR_SEVERITY_WARNING = 0x80000000 } -enum : uint { ERROR_SEVERITY_ERROR = 0xC0000000 } - -// #if defined(_M_IA64) && !defined(MIDL_PASS) -// ... -// #endif -struct _FLOAT128 { - __int64 LowPart; - __int64 HighPart; -} -alias _FLOAT128 FLOAT128; - -alias FLOAT128* PFLOAT128; - -// #define _ULONGLONG_ -// #if (!defined (_MAC) && (!defined(MIDL_PASS) || defined(__midl)) && (!defined(_M_IX86) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64))) -// ... - -// #... -// #else - -// #if defined(_MAC) && defined(_MAC_INT_64) -// ... - -// #... -// #else -alias double LONGLONG; -alias double ULONGLONG; -// #endif //_MAC and int64 - -// #endif - -alias LONGLONG* PLONGLONG; -alias ULONGLONG* PULONGLONG; - -alias LONGLONG USN; - -// #if defined(MIDL_PASS) -// ... -// #else // MIDL_PASS -union _LARGE_INTEGER { -struct _0 { - DWORD LowPart; - LONG HighPart; -} -_0 _; - -struct _1 { - DWORD LowPart; - LONG HighPart; -} -_1 u; - -// #endif //MIDL_PASS - LONGLONG QuadPart; -} -alias _LARGE_INTEGER LARGE_INTEGER; - -alias LARGE_INTEGER* PLARGE_INTEGER; - -// #if defined(MIDL_PASS) -// ... -// #else // MIDL_PASS -union _ULARGE_INTEGER { -struct _2 { - DWORD LowPart; - DWORD HighPart; -} -_2 _; - -struct _3 { - DWORD LowPart; - DWORD HighPart; -} -_3 u; - -// #endif //MIDL_PASS - ULONGLONG QuadPart; -} -alias _ULARGE_INTEGER ULARGE_INTEGER; - -alias ULARGE_INTEGER* PULARGE_INTEGER; - -struct _LUID { - DWORD LowPart; - LONG HighPart; -} -alias _LUID LUID; -alias _LUID* PLUID; - -// #define _DWORDLONG_ -alias ULONGLONG DWORDLONG; -alias DWORDLONG* PDWORDLONG; - -// #if defined(MIDL_PASS) || defined(RC_INVOKED) - -// #... -// #... - -// #... -// #... -// #... - -// #elif defined(_M_MRX000) - -// #... -// #... - -// #... -// #... -// #... - -// #if defined (__cplusplus) -// ... -// #endif - -// ... - -// ... - -// ... - -// ... - -// ... - -// #if defined (__cplusplus) -// ... -// #endif - -// #... -// #... - -// #... -// #... -// #... - -// #elif defined(_M_IX86) - -long Int32x32To64(int a, int b) { return (cast(long)a) * b; } -ulong UInt32x32To64(uint a, uint b) { return (cast(ulong)a) * b; } - -extern(Windows) export ULONGLONG Int64ShllMod32( - ULONGLONG Value, - DWORD ShiftCount); - -extern(Windows) export LONGLONG Int64ShraMod32( - LONGLONG Value, - DWORD ShiftCount); - -extern(Windows) export ULONGLONG Int64ShrlMod32( - ULONGLONG Value, - DWORD ShiftCount); - -// #if _MSC_VER >= 1200 -// #pragma warning(push) -// #endif -// #pragma warning(disable:4035) // re-enable below - -// __inline ULONGLONG Int64ShllMod32( ULONGLONG Value, DWORD ShiftCount ); - -// __inline LONGLONG Int64ShraMod32( LONGLONG Value, DWORD ShiftCount ); - -// __inline ULONGLONG Int64ShrlMod32( ULONGLONG Value, DWORD ShiftCount ); - -// #if _MSC_VER >= 1200 -// #pragma warning(pop) -// #else -// #... -// #endif - -// #elif defined(_M_ALPHA) - -// #... -// #... - -// #... -// #... -// #... - -// #elif defined(_M_PPC) - -// #... -// #... - -// #... -// #... -// #... - -// #elif defined(_68K_) || defined(_MPPC_) - -// #... -// #... - -// #... -// #... -// #... - -// #elif defined(_M_IA64) || defined(_M_AMD64) - -// #... -// #... - -// #... -// #... -// #... - -// #else - -// #... - -// #endif - -enum : CHAR { ANSI_NULL = 0 } -enum : WCHAR { UNICODE_NULL = 0 } -enum : WORD { UNICODE_STRING_MAX_BYTES = 65534 } -enum : uint { UNICODE_STRING_MAX_CHARS = 32767 } -alias BYTE BOOLEAN; -alias BOOLEAN* PBOOLEAN; - -struct _LIST_ENTRY { - _LIST_ENTRY *Flink; - _LIST_ENTRY *Blink; -} -alias _LIST_ENTRY LIST_ENTRY; -alias _LIST_ENTRY* PLIST_ENTRY; -alias _LIST_ENTRY* RESTRICTED_POINTERPRLIST_ENTRY; - -struct _SINGLE_LIST_ENTRY { - _SINGLE_LIST_ENTRY *Next; -} -alias _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY; -alias _SINGLE_LIST_ENTRY* PSINGLE_LIST_ENTRY; - -struct LIST_ENTRY32 { - DWORD Flink; - DWORD Blink; -} - -alias LIST_ENTRY32* PLIST_ENTRY32; - -struct LIST_ENTRY64 { - ULONGLONG Flink; - ULONGLONG Blink; -} - -alias LIST_ENTRY64* PLIST_ENTRY64; - -import win32.ansi.guiddef; - -// #ifndef __OBJECTID_DEFINED -// #define __OBJECTID_DEFINED - -struct _OBJECTID { - GUID Lineage; - DWORD Uniquifier; -} -alias _OBJECTID OBJECTID; - -// #endif // !_OBJECTID_DEFINED - -enum : uint { MINCHAR = 0x80 } -enum : uint { MAXCHAR = 0x7f } -enum : uint { MINSHORT = 0x8000 } -enum : uint { MAXSHORT = 0x7fff } -enum : uint { MINLONG = 0x80000000 } -enum : uint { MAXLONG = 0x7fffffff } -enum : uint { MAXBYTE = 0xff } -enum : uint { MAXWORD = 0xffff } -enum : uint { MAXDWORD = 0xffffffff } - -// #define FIELD_OFFSET(type, field) ((LONG)(LONG_PTR)&(((type *)0)->field)) - -// #if(_WIN32_WINNT > 0x0500) - -// #define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field)) - -// #define RTL_SIZEOF_THROUGH_FIELD(type, field) (FIELD_OFFSET(type, field) + RTL_FIELD_SIZE(type, field)) - -// #define RTL_CONTAINS_FIELD(Struct, Size, Field) ( (((PCHAR)(&(Struct)->Field)) + sizeof((Struct)->Field)) <= (((PCHAR)(Struct))+(Size)) ) - -// #define RTL_NUMBER_OF(A) (sizeof(A)/sizeof((A)[0])) - -// #define RTL_FIELD_TYPE(type, field) (((type*)0)->field) - -// #define RTL_NUMBER_OF_FIELD(type, field) (RTL_NUMBER_OF(RTL_FIELD_TYPE(type, field))) - -// #define RTL_PADDING_BETWEEN_FIELDS(T, F1, F2) ((FIELD_OFFSET(T, F2) > FIELD_OFFSET(T, F1)) ? (FIELD_OFFSET(T, F2) - FIELD_OFFSET(T, F1) - RTL_FIELD_SIZE(T, F1)) : (FIELD_OFFSET(T, F1) - FIELD_OFFSET(T, F2) - RTL_FIELD_SIZE(T, F2))) - -// #if defined(__cplusplus) -// #define RTL_CONST_CAST(type) const_cast -// #else -// #... -// #endif - -// #define RTL_BITS_OF(sizeOfArg) (sizeof(sizeOfArg) * 8) - -// #define RTL_BITS_OF_FIELD(type, field) (RTL_BITS_OF(RTL_FIELD_TYPE(type, field))) - -// #endif /* _WIN32_WINNT > 0x0500 */ - -// #define CONTAINING_RECORD(address, type, field) ((type *)( (PCHAR)(address) - (ULONG_PTR)(&((type *)0)->field))) - -enum : uint { VER_SERVER_NT = 0x80000000 } -enum : uint { VER_WORKSTATION_NT = 0x40000000 } -enum : uint { VER_SUITE_SMALLBUSINESS = 0x00000001 } -enum : uint { VER_SUITE_ENTERPRISE = 0x00000002 } -enum : uint { VER_SUITE_BACKOFFICE = 0x00000004 } -enum : uint { VER_SUITE_COMMUNICATIONS = 0x00000008 } -enum : uint { VER_SUITE_TERMINAL = 0x00000010 } -enum : uint { VER_SUITE_SMALLBUSINESS_RESTRICTED = 0x00000020 } -enum : uint { VER_SUITE_EMBEDDEDNT = 0x00000040 } -enum : uint { VER_SUITE_DATACENTER = 0x00000080 } -enum : uint { VER_SUITE_SINGLEUSERTS = 0x00000100 } -enum : uint { VER_SUITE_PERSONAL = 0x00000200 } -enum : uint { VER_SUITE_BLADE = 0x00000400 } - -enum : uint { LANG_NEUTRAL = 0x00 } -enum : uint { LANG_INVARIANT = 0x7f } - -enum : uint { LANG_AFRIKAANS = 0x36 } -enum : uint { LANG_ALBANIAN = 0x1c } -enum : uint { LANG_ARABIC = 0x01 } -enum : uint { LANG_ARMENIAN = 0x2b } -enum : uint { LANG_ASSAMESE = 0x4d } -enum : uint { LANG_AZERI = 0x2c } -enum : uint { LANG_BASQUE = 0x2d } -enum : uint { LANG_BELARUSIAN = 0x23 } -enum : uint { LANG_BENGALI = 0x45 } -enum : uint { LANG_BULGARIAN = 0x02 } -enum : uint { LANG_CATALAN = 0x03 } -enum : uint { LANG_CHINESE = 0x04 } -enum : uint { LANG_CROATIAN = 0x1a } -enum : uint { LANG_CZECH = 0x05 } -enum : uint { LANG_DANISH = 0x06 } -enum : uint { LANG_DIVEHI = 0x65 } -enum : uint { LANG_DUTCH = 0x13 } -enum : uint { LANG_ENGLISH = 0x09 } -enum : uint { LANG_ESTONIAN = 0x25 } -enum : uint { LANG_FAEROESE = 0x38 } -enum : uint { LANG_FARSI = 0x29 } -enum : uint { LANG_FINNISH = 0x0b } -enum : uint { LANG_FRENCH = 0x0c } -enum : uint { LANG_GALICIAN = 0x56 } -enum : uint { LANG_GEORGIAN = 0x37 } -enum : uint { LANG_GERMAN = 0x07 } -enum : uint { LANG_GREEK = 0x08 } -enum : uint { LANG_GUJARATI = 0x47 } -enum : uint { LANG_HEBREW = 0x0d } -enum : uint { LANG_HINDI = 0x39 } -enum : uint { LANG_HUNGARIAN = 0x0e } -enum : uint { LANG_ICELANDIC = 0x0f } -enum : uint { LANG_INDONESIAN = 0x21 } -enum : uint { LANG_ITALIAN = 0x10 } -enum : uint { LANG_JAPANESE = 0x11 } -enum : uint { LANG_KANNADA = 0x4b } -enum : uint { LANG_KASHMIRI = 0x60 } -enum : uint { LANG_KAZAK = 0x3f } -enum : uint { LANG_KONKANI = 0x57 } -enum : uint { LANG_KOREAN = 0x12 } -enum : uint { LANG_KYRGYZ = 0x40 } -enum : uint { LANG_LATVIAN = 0x26 } -enum : uint { LANG_LITHUANIAN = 0x27 } -enum : uint { LANG_MACEDONIAN = 0x2f } -enum : uint { LANG_MALAY = 0x3e } -enum : uint { LANG_MALAYALAM = 0x4c } -enum : uint { LANG_MANIPURI = 0x58 } -enum : uint { LANG_MARATHI = 0x4e } -enum : uint { LANG_MONGOLIAN = 0x50 } -enum : uint { LANG_NEPALI = 0x61 } -enum : uint { LANG_NORWEGIAN = 0x14 } -enum : uint { LANG_ORIYA = 0x48 } -enum : uint { LANG_POLISH = 0x15 } -enum : uint { LANG_PORTUGUESE = 0x16 } -enum : uint { LANG_PUNJABI = 0x46 } -enum : uint { LANG_ROMANIAN = 0x18 } -enum : uint { LANG_RUSSIAN = 0x19 } -enum : uint { LANG_SANSKRIT = 0x4f } -enum : uint { LANG_SERBIAN = 0x1a } -enum : uint { LANG_SINDHI = 0x59 } -enum : uint { LANG_SLOVAK = 0x1b } -enum : uint { LANG_SLOVENIAN = 0x24 } -enum : uint { LANG_SPANISH = 0x0a } -enum : uint { LANG_SWAHILI = 0x41 } -enum : uint { LANG_SWEDISH = 0x1d } -enum : uint { LANG_SYRIAC = 0x5a } -enum : uint { LANG_TAMIL = 0x49 } -enum : uint { LANG_TATAR = 0x44 } -enum : uint { LANG_TELUGU = 0x4a } -enum : uint { LANG_THAI = 0x1e } -enum : uint { LANG_TURKISH = 0x1f } -enum : uint { LANG_UKRAINIAN = 0x22 } -enum : uint { LANG_URDU = 0x20 } -enum : uint { LANG_UZBEK = 0x43 } -enum : uint { LANG_VIETNAMESE = 0x2a } - -enum : uint { SUBLANG_NEUTRAL = 0x00 } -enum : uint { SUBLANG_DEFAULT = 0x01 } -enum : uint { SUBLANG_SYS_DEFAULT = 0x02 } - -enum : uint { SUBLANG_ARABIC_SAUDI_ARABIA = 0x01 } -enum : uint { SUBLANG_ARABIC_IRAQ = 0x02 } -enum : uint { SUBLANG_ARABIC_EGYPT = 0x03 } -enum : uint { SUBLANG_ARABIC_LIBYA = 0x04 } -enum : uint { SUBLANG_ARABIC_ALGERIA = 0x05 } -enum : uint { SUBLANG_ARABIC_MOROCCO = 0x06 } -enum : uint { SUBLANG_ARABIC_TUNISIA = 0x07 } -enum : uint { SUBLANG_ARABIC_OMAN = 0x08 } -enum : uint { SUBLANG_ARABIC_YEMEN = 0x09 } -enum : uint { SUBLANG_ARABIC_SYRIA = 0x0a } -enum : uint { SUBLANG_ARABIC_JORDAN = 0x0b } -enum : uint { SUBLANG_ARABIC_LEBANON = 0x0c } -enum : uint { SUBLANG_ARABIC_KUWAIT = 0x0d } -enum : uint { SUBLANG_ARABIC_UAE = 0x0e } -enum : uint { SUBLANG_ARABIC_BAHRAIN = 0x0f } -enum : uint { SUBLANG_ARABIC_QATAR = 0x10 } -enum : uint { SUBLANG_AZERI_LATIN = 0x01 } -enum : uint { SUBLANG_AZERI_CYRILLIC = 0x02 } -enum : uint { SUBLANG_CHINESE_TRADITIONAL = 0x01 } -enum : uint { SUBLANG_CHINESE_SIMPLIFIED = 0x02 } -enum : uint { SUBLANG_CHINESE_HONGKONG = 0x03 } -enum : uint { SUBLANG_CHINESE_SINGAPORE = 0x04 } -enum : uint { SUBLANG_CHINESE_MACAU = 0x05 } -enum : uint { SUBLANG_DUTCH = 0x01 } -enum : uint { SUBLANG_DUTCH_BELGIAN = 0x02 } -enum : uint { SUBLANG_ENGLISH_US = 0x01 } -enum : uint { SUBLANG_ENGLISH_UK = 0x02 } -enum : uint { SUBLANG_ENGLISH_AUS = 0x03 } -enum : uint { SUBLANG_ENGLISH_CAN = 0x04 } -enum : uint { SUBLANG_ENGLISH_NZ = 0x05 } -enum : uint { SUBLANG_ENGLISH_EIRE = 0x06 } -enum : uint { SUBLANG_ENGLISH_SOUTH_AFRICA = 0x07 } -enum : uint { SUBLANG_ENGLISH_JAMAICA = 0x08 } -enum : uint { SUBLANG_ENGLISH_CARIBBEAN = 0x09 } -enum : uint { SUBLANG_ENGLISH_BELIZE = 0x0a } -enum : uint { SUBLANG_ENGLISH_TRINIDAD = 0x0b } -enum : uint { SUBLANG_ENGLISH_ZIMBABWE = 0x0c } -enum : uint { SUBLANG_ENGLISH_PHILIPPINES = 0x0d } -enum : uint { SUBLANG_FRENCH = 0x01 } -enum : uint { SUBLANG_FRENCH_BELGIAN = 0x02 } -enum : uint { SUBLANG_FRENCH_CANADIAN = 0x03 } -enum : uint { SUBLANG_FRENCH_SWISS = 0x04 } -enum : uint { SUBLANG_FRENCH_LUXEMBOURG = 0x05 } -enum : uint { SUBLANG_FRENCH_MONACO = 0x06 } -enum : uint { SUBLANG_GERMAN = 0x01 } -enum : uint { SUBLANG_GERMAN_SWISS = 0x02 } -enum : uint { SUBLANG_GERMAN_AUSTRIAN = 0x03 } -enum : uint { SUBLANG_GERMAN_LUXEMBOURG = 0x04 } -enum : uint { SUBLANG_GERMAN_LIECHTENSTEIN = 0x05 } -enum : uint { SUBLANG_ITALIAN = 0x01 } -enum : uint { SUBLANG_ITALIAN_SWISS = 0x02 } -// #if _WIN32_WINNT >= 0x0501 -enum : uint { SUBLANG_KASHMIRI_SASIA = 0x02 } -// #endif -enum : uint { SUBLANG_KASHMIRI_INDIA = 0x02 } -enum : uint { SUBLANG_KOREAN = 0x01 } -enum : uint { SUBLANG_LITHUANIAN = 0x01 } -enum : uint { SUBLANG_MALAY_MALAYSIA = 0x01 } -enum : uint { SUBLANG_MALAY_BRUNEI_DARUSSALAM = 0x02 } -enum : uint { SUBLANG_NEPALI_INDIA = 0x02 } -enum : uint { SUBLANG_NORWEGIAN_BOKMAL = 0x01 } -enum : uint { SUBLANG_NORWEGIAN_NYNORSK = 0x02 } -enum : uint { SUBLANG_PORTUGUESE = 0x02 } -enum : uint { SUBLANG_PORTUGUESE_BRAZILIAN = 0x01 } -enum : uint { SUBLANG_SERBIAN_LATIN = 0x02 } -enum : uint { SUBLANG_SERBIAN_CYRILLIC = 0x03 } -enum : uint { SUBLANG_SPANISH = 0x01 } -enum : uint { SUBLANG_SPANISH_MEXICAN = 0x02 } -enum : uint { SUBLANG_SPANISH_MODERN = 0x03 } -enum : uint { SUBLANG_SPANISH_GUATEMALA = 0x04 } -enum : uint { SUBLANG_SPANISH_COSTA_RICA = 0x05 } -enum : uint { SUBLANG_SPANISH_PANAMA = 0x06 } -enum : uint { SUBLANG_SPANISH_DOMINICAN_REPUBLIC = 0x07 } -enum : uint { SUBLANG_SPANISH_VENEZUELA = 0x08 } -enum : uint { SUBLANG_SPANISH_COLOMBIA = 0x09 } -enum : uint { SUBLANG_SPANISH_PERU = 0x0a } -enum : uint { SUBLANG_SPANISH_ARGENTINA = 0x0b } -enum : uint { SUBLANG_SPANISH_ECUADOR = 0x0c } -enum : uint { SUBLANG_SPANISH_CHILE = 0x0d } -enum : uint { SUBLANG_SPANISH_URUGUAY = 0x0e } -enum : uint { SUBLANG_SPANISH_PARAGUAY = 0x0f } -enum : uint { SUBLANG_SPANISH_BOLIVIA = 0x10 } -enum : uint { SUBLANG_SPANISH_EL_SALVADOR = 0x11 } -enum : uint { SUBLANG_SPANISH_HONDURAS = 0x12 } -enum : uint { SUBLANG_SPANISH_NICARAGUA = 0x13 } -enum : uint { SUBLANG_SPANISH_PUERTO_RICO = 0x14 } -enum : uint { SUBLANG_SWEDISH = 0x01 } -enum : uint { SUBLANG_SWEDISH_FINLAND = 0x02 } -enum : uint { SUBLANG_URDU_PAKISTAN = 0x01 } -enum : uint { SUBLANG_URDU_INDIA = 0x02 } -enum : uint { SUBLANG_UZBEK_LATIN = 0x01 } -enum : uint { SUBLANG_UZBEK_CYRILLIC = 0x02 } - -enum : uint { SORT_DEFAULT = 0x0 } - -enum : uint { SORT_JAPANESE_XJIS = 0x0 } -enum : uint { SORT_JAPANESE_UNICODE = 0x1 } - -enum : uint { SORT_CHINESE_BIG5 = 0x0 } -enum : uint { SORT_CHINESE_PRCP = 0x0 } -enum : uint { SORT_CHINESE_UNICODE = 0x1 } -enum : uint { SORT_CHINESE_PRC = 0x2 } -enum : uint { SORT_CHINESE_BOPOMOFO = 0x3 } - -enum : uint { SORT_KOREAN_KSC = 0x0 } -enum : uint { SORT_KOREAN_UNICODE = 0x1 } - -enum : uint { SORT_GERMAN_PHONE_BOOK = 0x1 } - -enum : uint { SORT_HUNGARIAN_DEFAULT = 0x0 } -enum : uint { SORT_HUNGARIAN_TECHNICAL = 0x1 } - -enum : uint { SORT_GEORGIAN_TRADITIONAL = 0x0 } -enum : uint { SORT_GEORGIAN_MODERN = 0x1 } - -WORD MAKELANGID(USHORT p, USHORT s) { return (((cast(WORD)(s)) << 10) | cast(WORD)(p)); } -WORD PRIMARYLANGID(WORD lgid) { return lgid & 0x3ff; } -WORD SUBLANGID(WORD lgid) { return lgid >>> 10; } - -enum : uint { NLS_VALID_LOCALE_MASK = 0x000fffff } - -DWORD MAKELCID(WORD lgid, WORD srtid) { return ((cast(DWORD)srtid) << 16) | (cast(DWORD)lgid); } -DWORD MAKESORTLCID(WORD lgid, WORD srtid, WORD ver) { return (MAKELCID(lgid, srtid)) | ((cast(DWORD)ver) << 20); } -WORD LANGIDFROMLCID(LCID lcid) { return lcid; } -WORD SORTIDFROMLCID(LCID lcid) { return (cast(DWORD)lcid >>> 16) & 0xf; } -WORD SORTVERSIONFROMLCID(LCID lcid) { return (cast(DWORD)lcid >>> 20) & 0xf; } - -enum : uint { LANG_SYSTEM_DEFAULT = (SUBLANG_SYS_DEFAULT << 10) | LANG_NEUTRAL } -enum : uint { LANG_USER_DEFAULT = (SUBLANG_DEFAULT << 10) | LANG_NEUTRAL } - -enum : uint { LOCALE_SYSTEM_DEFAULT = (SORT_DEFAULT << 16) | LANG_SYSTEM_DEFAULT } -enum : uint { LOCALE_USER_DEFAULT = (SORT_DEFAULT << 16) | LANG_USER_DEFAULT } - -enum : uint { LOCALE_NEUTRAL = (SORT_DEFAULT << 16) | (SUBLANG_NEUTRAL << 10) | LANG_NEUTRAL } - -enum : uint { LOCALE_INVARIANT = (SORT_DEFAULT << 16) | (SUBLANG_NEUTRAL << 10) | LANG_INVARIANT } - -// #if ! defined(lint) -// #... -// #... -// #... - -// #else // lint - -// #define UNREFERENCED_PARAMETER(P) { (P) = (P); } -// #define DBG_UNREFERENCED_PARAMETER(P) { (P) = (P); } -// #define DBG_UNREFERENCED_LOCAL_VARIABLE(V) { (V) = (V); } - -// #endif // lint - -// #if (_MSC_VER > 1200) -// #define DEFAULT_UNREACHABLE default: __assume(0) -// #else - -// #... - -// #endif - -// #ifndef WIN32_NO_STATUS - -enum : DWORD { STATUS_WAIT_0 = 0x00000000 } -enum : DWORD { STATUS_ABANDONED_WAIT_0 = 0x00000080 } -enum : DWORD { STATUS_USER_APC = 0x000000C0 } -enum : DWORD { STATUS_TIMEOUT = 0x00000102 } -enum : DWORD { STATUS_PENDING = 0x00000103 } -enum : DWORD { DBG_EXCEPTION_HANDLED = 0x00010001 } -enum : DWORD { DBG_CONTINUE = 0x00010002 } -enum : DWORD { STATUS_SEGMENT_NOTIFICATION = 0x40000005 } -enum : DWORD { DBG_TERMINATE_THREAD = 0x40010003 } -enum : DWORD { DBG_TERMINATE_PROCESS = 0x40010004 } -enum : DWORD { DBG_CONTROL_C = 0x40010005 } -enum : DWORD { DBG_CONTROL_BREAK = 0x40010008 } -enum : DWORD { STATUS_GUARD_PAGE_VIOLATION = 0x80000001 } -enum : DWORD { STATUS_DATATYPE_MISALIGNMENT = 0x80000002 } -enum : DWORD { STATUS_BREAKPOINT = 0x80000003 } -enum : DWORD { STATUS_SINGLE_STEP = 0x80000004 } -enum : DWORD { DBG_EXCEPTION_NOT_HANDLED = 0x80010001 } -enum : DWORD { STATUS_ACCESS_VIOLATION = 0xC0000005 } -enum : DWORD { STATUS_IN_PAGE_ERROR = 0xC0000006 } -enum : DWORD { STATUS_INVALID_HANDLE = 0xC0000008 } -enum : DWORD { STATUS_NO_MEMORY = 0xC0000017 } -enum : DWORD { STATUS_ILLEGAL_INSTRUCTION = 0xC000001D } -enum : DWORD { STATUS_NONCONTINUABLE_EXCEPTION = 0xC0000025 } -enum : DWORD { STATUS_INVALID_DISPOSITION = 0xC0000026 } -enum : DWORD { STATUS_ARRAY_BOUNDS_EXCEEDED = 0xC000008C } -enum : DWORD { STATUS_FLOAT_DENORMAL_OPERAND = 0xC000008D } -enum : DWORD { STATUS_FLOAT_DIVIDE_BY_ZERO = 0xC000008E } -enum : DWORD { STATUS_FLOAT_INEXACT_RESULT = 0xC000008F } -enum : DWORD { STATUS_FLOAT_INVALID_OPERATION = 0xC0000090 } -enum : DWORD { STATUS_FLOAT_OVERFLOW = 0xC0000091 } -enum : DWORD { STATUS_FLOAT_STACK_CHECK = 0xC0000092 } -enum : DWORD { STATUS_FLOAT_UNDERFLOW = 0xC0000093 } -enum : DWORD { STATUS_INTEGER_DIVIDE_BY_ZERO = 0xC0000094 } -enum : DWORD { STATUS_INTEGER_OVERFLOW = 0xC0000095 } -enum : DWORD { STATUS_PRIVILEGED_INSTRUCTION = 0xC0000096 } -enum : DWORD { STATUS_STACK_OVERFLOW = 0xC00000FD } -enum : DWORD { STATUS_CONTROL_C_EXIT = 0xC000013A } -enum : DWORD { STATUS_FLOAT_MULTIPLE_FAULTS = 0xC00002B4 } -enum : DWORD { STATUS_FLOAT_MULTIPLE_TRAPS = 0xC00002B5 } -enum : DWORD { STATUS_REG_NAT_CONSUMPTION = 0xC00002C9 } -// #if defined(STATUS_SUCCESS) || (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) -enum : DWORD { STATUS_SXS_EARLY_DEACTIVATION = 0xC015000F } -enum : DWORD { STATUS_SXS_INVALID_DEACTIVATION = 0xC0150010 } -// #endif - -// #endif -enum : uint { MAXIMUM_WAIT_OBJECTS = 64 } - -alias MAXCHAR MAXIMUM_SUSPEND_COUNT; - -alias ULONG_PTR KSPIN_LOCK; -alias KSPIN_LOCK* PKSPIN_LOCK; - -// #if defined(_AMD64_) - -// #if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) - -// #... - -// ... - -// #... - -// #... - -// ... - -// #... - -// ... - -// ... - -// ... - -// ... - -// #... -// #... -// #... -// #... - -// #... -// #... - -// ... - -// ... - -// #... -// #... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #endif // defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) - -// #if !defined(RC_INVOKED) - -// #... - -// #... -// #... -// #... -// #... -// #... - -// #... - -// #endif // !defined(RC_INVOKED) - -// ... - -// ... - -// #... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #endif // _AMD64_ - -// #ifdef _ALPHA_ // winnt -// ... -// #if defined(_M_ALPHA) // winnt -// #... -// #endif // winnt -// #endif // winnt - -// #if defined(_M_ALPHA) -// #... -// #else -extern(Windows) export _TEB NtCurrentTeb(); -// #endif - -// #ifdef _ALPHA_ - -// #... -// #... - -// #if !defined(RC_INVOKED) - -// #... - -// #... -// #... -// #... - -// #... - -// #endif - -// #ifndef _PORTABLE_32BIT_CONTEXT - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #else - -// #... - -// #endif // _PORTABLE_32BIT_CONTEXT - -// #endif // _ALPHA_ - -// #ifdef _ALPHA_ - -// ... - -// #endif // _ALPHA_ - -// #ifdef _X86_ - -// #if !defined(MIDL_PASS) -// #if !defined(RC_INVOKED) - -// #if _MSC_VER >= 1200 -// #pragma warning(push) -// #endif -// #pragma warning(disable:4164) // disable C4164 warning so that apps that - -// #ifdef _M_IX86 -// #pragma function(_enable) -// #pragma function(_disable) -// #endif - -// #if _MSC_VER >= 1200 -// #pragma warning(pop) -// #else -// #... -// #endif - -// #endif -// #endif - -// #if !defined(MIDL_PASS) && defined(_M_IX86) -// #if _MSC_VER >= 1200 -// #pragma warning(push) -// #endif -// #pragma warning (disable:4035) // disable 4035 (function must return something) -PVOID GetFiberData() { asm { mov EAX, FS:[0x10]; mov EAX, [EAX]; } } -PVOID GetCurrentFiber() { asm { mov EAX, FS:[0x10]; } } - -// #if _MSC_VER >= 1200 -// #pragma warning(pop) -// #else -// #... -// #endif -// #endif - -enum : uint { SIZE_OF_80387_REGISTERS = 80 } - -// #if !defined(RC_INVOKED) - -enum : uint { CONTEXT_i386 = 0x00010000 } -enum : uint { CONTEXT_i486 = 0x00010000 } - -enum : uint { CONTEXT_CONTROL = CONTEXT_i386 | 0x00000001L } -enum : uint { CONTEXT_INTEGER = CONTEXT_i386 | 0x00000002L } -enum : uint { CONTEXT_SEGMENTS = CONTEXT_i386 | 0x00000004L } -enum : uint { CONTEXT_FLOATING_POINT = CONTEXT_i386 | 0x00000008L } -enum : uint { CONTEXT_DEBUG_REGISTERS = CONTEXT_i386 | 0x00000010L } -enum : uint { CONTEXT_EXTENDED_REGISTERS = CONTEXT_i386 | 0x00000020L } - -enum : uint { CONTEXT_FULL = CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS } - -// #endif - -enum : uint { MAXIMUM_SUPPORTED_EXTENSION = 512 } - -struct _FLOATING_SAVE_AREA { - DWORD ControlWord; - DWORD StatusWord; - DWORD TagWord; - DWORD ErrorOffset; - DWORD ErrorSelector; - DWORD DataOffset; - DWORD DataSelector; - BYTE RegisterArea[SIZE_OF_80387_REGISTERS]; - DWORD Cr0NpxState; -} -alias _FLOATING_SAVE_AREA FLOATING_SAVE_AREA; - -alias FLOATING_SAVE_AREA* PFLOATING_SAVE_AREA; - -struct _CONTEXT { - - DWORD ContextFlags; - - DWORD Dr0; - DWORD Dr1; - DWORD Dr2; - DWORD Dr3; - DWORD Dr6; - DWORD Dr7; - - FLOATING_SAVE_AREA FloatSave; - - DWORD SegGs; - DWORD SegFs; - DWORD SegEs; - DWORD SegDs; - - DWORD Edi; - DWORD Esi; - DWORD Ebx; - DWORD Edx; - DWORD Ecx; - DWORD Eax; - - DWORD Ebp; - DWORD Eip; - DWORD SegCs; - DWORD EFlags; - DWORD Esp; - DWORD SegSs; - - BYTE ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION]; -} -alias _CONTEXT CONTEXT; - -alias CONTEXT* PCONTEXT; - -// #endif //_X86_ - -// #ifndef _LDT_ENTRY_DEFINED -// #define _LDT_ENTRY_DEFINED - -struct _LDT_ENTRY { - WORD LimitLow; - WORD BaseLow; -union { -struct { - BYTE BaseMid; - BYTE Flags1; - BYTE Flags2; - BYTE BaseHi; -} - -struct { -// DWORD BaseMid : 8; -// DWORD Type : 5; -// DWORD Dpl : 2; -// DWORD Pres : 1; -// DWORD LimitHi : 4; -// DWORD Sys : 1; -// DWORD Reserved_0 : 1; -// DWORD Default_Big : 1; -// DWORD Granularity : 1; -// DWORD BaseHi : 8; -} - -} - -} -alias _LDT_ENTRY LDT_ENTRY; -alias _LDT_ENTRY* PLDT_ENTRY; - -// #endif - -// #if defined(_MIPS_) - -// #... -// #... - -// #if !defined(RC_INVOKED) - -// #... - -// #... -// #... -// #... -// #... -// #... - -// #... -// ... - -// #endif - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #... - -// #endif // MIPS - -// #if defined(_MIPS_) - -// ... - -// #endif // MIPS - -// #if defined(_PPC_) - -// #if defined(_M_PPC) && defined(_MSC_VER) && (_MSC_VER>=1000) -// ... -// #... -// #elif defined(_M_PPC) -// ... -// #... -// #endif - -// #... -// #... - -// #if !defined(RC_INVOKED) - -// #... -// #... -// #... -// #... - -// #... - -// #endif - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #endif // defined(_PPC_) - -// #if defined(_MPPC_) - -// #if defined(_M_PPC) && defined(_MSC_VER) && (_MSC_VER>=1000) -// ... -// #... -// #elif defined(_M_PPC) -// ... -// #... -// #endif - -// #... -// #... - -// #if !defined(RC_INVOKED) - -// #... -// #... -// #... -// #... - -// #... - -// #endif - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #endif // defined(_MPPC_) - -// #if !defined(__midl) && !defined(GENUTIL) && !defined(_GENIA64_) && defined(_IA64_) - -// ... -// #if defined(_M_IA64) // winnt -// #... -// #endif // winnt - -// #if defined(_M_IA64) -// #... -// #else -// ... -// #endif - -// #... -// #... - -// #endif // !defined(__midl) && !defined(GENUTIL) && !defined(_GENIA64_) && defined(_M_IA64) - -// #ifdef _IA64_ - -// #if !defined(RC_INVOKED) - -// #... - -// #... -// #... -// #... -// #... -// #... -// #... - -// #... -// #... - -// #endif // !defined(RC_INVOKED) - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #endif // _IA64_ - -// #ifdef _IA64_ - -// ... - -// #endif // _IA64_ - -enum : uint { EXCEPTION_NONCONTINUABLE = 0x1 } -enum : uint { EXCEPTION_MAXIMUM_PARAMETERS = 15 } - -struct _EXCEPTION_RECORD { - DWORD ExceptionCode; - DWORD ExceptionFlags; - _EXCEPTION_RECORD *ExceptionRecord; - PVOID ExceptionAddress; - DWORD NumberParameters; - ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; -} -alias _EXCEPTION_RECORD EXCEPTION_RECORD; - -alias EXCEPTION_RECORD* PEXCEPTION_RECORD; - -struct _EXCEPTION_RECORD32 { - DWORD ExceptionCode; - DWORD ExceptionFlags; - DWORD ExceptionRecord; - DWORD ExceptionAddress; - DWORD NumberParameters; - DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; -} -alias _EXCEPTION_RECORD32 EXCEPTION_RECORD32; -alias _EXCEPTION_RECORD32* PEXCEPTION_RECORD32; - -struct _EXCEPTION_RECORD64 { - DWORD ExceptionCode; - DWORD ExceptionFlags; - DWORD64 ExceptionRecord; - DWORD64 ExceptionAddress; - DWORD NumberParameters; - DWORD __unusedAlignment; - DWORD64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; -} -alias _EXCEPTION_RECORD64 EXCEPTION_RECORD64; -alias _EXCEPTION_RECORD64* PEXCEPTION_RECORD64; - -struct _EXCEPTION_POINTERS { - PEXCEPTION_RECORD ExceptionRecord; - PCONTEXT ContextRecord; -} -alias _EXCEPTION_POINTERS EXCEPTION_POINTERS; -alias _EXCEPTION_POINTERS* PEXCEPTION_POINTERS; - -alias PVOID PACCESS_TOKEN; -alias PVOID PSECURITY_DESCRIPTOR; -alias PVOID PSID; - -alias DWORD ACCESS_MASK; -alias ACCESS_MASK* PACCESS_MASK; - -enum : uint { DELETE = 0x00010000 } -enum : uint { READ_CONTROL = 0x00020000 } -enum : uint { WRITE_DAC = 0x00040000 } -enum : uint { WRITE_OWNER = 0x00080000 } -enum : uint { SYNCHRONIZE = 0x00100000 } - -enum : uint { STANDARD_RIGHTS_REQUIRED = 0x000F0000 } - -enum : uint { STANDARD_RIGHTS_READ = READ_CONTROL } -enum : uint { STANDARD_RIGHTS_WRITE = READ_CONTROL } -enum : uint { STANDARD_RIGHTS_EXECUTE = READ_CONTROL } - -enum : uint { STANDARD_RIGHTS_ALL = 0x001F0000 } - -enum : uint { SPECIFIC_RIGHTS_ALL = 0x0000FFFF } - -enum : uint { ACCESS_SYSTEM_SECURITY = 0x01000000 } - -enum : uint { MAXIMUM_ALLOWED = 0x02000000 } - -enum : uint { GENERIC_READ = 0x80000000 } -enum : uint { GENERIC_WRITE = 0x40000000 } -enum : uint { GENERIC_EXECUTE = 0x20000000 } -enum : uint { GENERIC_ALL = 0x10000000 } - -struct _GENERIC_MAPPING { - ACCESS_MASK GenericRead; - ACCESS_MASK GenericWrite; - ACCESS_MASK GenericExecute; - ACCESS_MASK GenericAll; -} -alias _GENERIC_MAPPING GENERIC_MAPPING; - -alias GENERIC_MAPPING* PGENERIC_MAPPING; - -align(4): - -struct _LUID_AND_ATTRIBUTES { - LUID Luid; - DWORD Attributes; -} -alias _LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES; -alias _LUID_AND_ATTRIBUTES* PLUID_AND_ATTRIBUTES; - -alias LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; -alias LUID_AND_ATTRIBUTES_ARRAY* PLUID_AND_ATTRIBUTES_ARRAY; - -align: - -// #ifndef SID_IDENTIFIER_AUTHORITY_DEFINED -// #define SID_IDENTIFIER_AUTHORITY_DEFINED -struct _SID_IDENTIFIER_AUTHORITY { - BYTE Value[6]; -} -alias _SID_IDENTIFIER_AUTHORITY SID_IDENTIFIER_AUTHORITY; -alias _SID_IDENTIFIER_AUTHORITY* PSID_IDENTIFIER_AUTHORITY; - -// #endif - -// #ifndef SID_DEFINED -// #define SID_DEFINED -struct _SID { - BYTE Revision; - BYTE SubAuthorityCount; - SID_IDENTIFIER_AUTHORITY IdentifierAuthority; -// #ifdef MIDL_PASS -// ... -// #else // MIDL_PASS - DWORD SubAuthority[ANYSIZE_ARRAY]; -// #endif // MIDL_PASS -} -alias _SID SID; -alias _SID* PISID; - -// #endif - -enum : uint { SID_REVISION = 1 } -enum : uint { SID_MAX_SUB_AUTHORITIES = 15 } -enum : uint { SID_RECOMMENDED_SUB_AUTHORITIES = 1 } - -// #ifndef MIDL_PASS -const uint SECURITY_MAX_SID_SIZE = SID.sizeof - DWORD.sizeof + (SID_MAX_SUB_AUTHORITIES * DWORD.sizeof); -// #endif // MIDL_PASS - -alias int _SID_NAME_USE; -enum { - SidTypeUser = 1, - SidTypeGroup, - SidTypeDomain, - SidTypeAlias, - SidTypeWellKnownGroup, - SidTypeDeletedAccount, - SidTypeInvalid, - SidTypeUnknown, - SidTypeComputer, -} -alias _SID_NAME_USE SID_NAME_USE; -alias _SID_NAME_USE* PSID_NAME_USE; - -struct _SID_AND_ATTRIBUTES { - PSID Sid; - DWORD Attributes; -} -alias _SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES; -alias _SID_AND_ATTRIBUTES* PSID_AND_ATTRIBUTES; - -alias SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; -alias SID_AND_ATTRIBUTES_ARRAY* PSID_AND_ATTRIBUTES_ARRAY; - -// #define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0} -// #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1} -// #define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2} -// #define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3} -// #define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4} -// #define SECURITY_RESOURCE_MANAGER_AUTHORITY {0,0,0,0,0,9} - -enum : uint { SECURITY_NULL_RID = 0x00000000 } -enum : uint { SECURITY_WORLD_RID = 0x00000000 } -enum : uint { SECURITY_LOCAL_RID = 0x00000000 } - -enum : uint { SECURITY_CREATOR_OWNER_RID = 0x00000000 } -enum : uint { SECURITY_CREATOR_GROUP_RID = 0x00000001 } - -enum : uint { SECURITY_CREATOR_OWNER_SERVER_RID = 0x00000002 } -enum : uint { SECURITY_CREATOR_GROUP_SERVER_RID = 0x00000003 } - -// #define SECURITY_NT_AUTHORITY {0,0,0,0,0,5} - -enum : uint { SECURITY_DIALUP_RID = 0x00000001 } -enum : uint { SECURITY_NETWORK_RID = 0x00000002 } -enum : uint { SECURITY_BATCH_RID = 0x00000003 } -enum : uint { SECURITY_INTERACTIVE_RID = 0x00000004 } -enum : uint { SECURITY_SERVICE_RID = 0x00000006 } -enum : uint { SECURITY_ANONYMOUS_LOGON_RID = 0x00000007 } -enum : uint { SECURITY_PROXY_RID = 0x00000008 } -enum : uint { SECURITY_ENTERPRISE_CONTROLLERS_RID = 0x00000009 } -alias SECURITY_ENTERPRISE_CONTROLLERS_RID SECURITY_SERVER_LOGON_RID; -enum : uint { SECURITY_PRINCIPAL_SELF_RID = 0x0000000A } -enum : uint { SECURITY_AUTHENTICATED_USER_RID = 0x0000000B } -enum : uint { SECURITY_RESTRICTED_CODE_RID = 0x0000000C } -enum : uint { SECURITY_TERMINAL_SERVER_RID = 0x0000000D } -enum : uint { SECURITY_REMOTE_LOGON_RID = 0x0000000E } - -enum : uint { SECURITY_LOGON_IDS_RID = 0x00000005 } -enum : uint { SECURITY_LOGON_IDS_RID_COUNT = 3 } - -enum : uint { SECURITY_LOCAL_SYSTEM_RID = 0x00000012 } -enum : uint { SECURITY_LOCAL_SERVICE_RID = 0x00000013 } -enum : uint { SECURITY_NETWORK_SERVICE_RID = 0x00000014 } - -enum : uint { SECURITY_NT_NON_UNIQUE = 0x00000015 } -enum : uint { SECURITY_NT_NON_UNIQUE_SUB_AUTH_COUNT = 3 } - -enum : uint { SECURITY_BUILTIN_DOMAIN_RID = 0x00000020 } - -enum : uint { DOMAIN_USER_RID_ADMIN = 0x000001F4 } -enum : uint { DOMAIN_USER_RID_GUEST = 0x000001F5 } -enum : uint { DOMAIN_USER_RID_KRBTGT = 0x000001F6 } - -enum : uint { DOMAIN_GROUP_RID_ADMINS = 0x00000200 } -enum : uint { DOMAIN_GROUP_RID_USERS = 0x00000201 } -enum : uint { DOMAIN_GROUP_RID_GUESTS = 0x00000202 } -enum : uint { DOMAIN_GROUP_RID_COMPUTERS = 0x00000203 } -enum : uint { DOMAIN_GROUP_RID_CONTROLLERS = 0x00000204 } -enum : uint { DOMAIN_GROUP_RID_CERT_ADMINS = 0x00000205 } -enum : uint { DOMAIN_GROUP_RID_SCHEMA_ADMINS = 0x00000206 } -enum : uint { DOMAIN_GROUP_RID_ENTERPRISE_ADMINS = 0x00000207 } -enum : uint { DOMAIN_GROUP_RID_POLICY_ADMINS = 0x00000208 } - -enum : uint { DOMAIN_ALIAS_RID_ADMINS = 0x00000220 } -enum : uint { DOMAIN_ALIAS_RID_USERS = 0x00000221 } -enum : uint { DOMAIN_ALIAS_RID_GUESTS = 0x00000222 } -enum : uint { DOMAIN_ALIAS_RID_POWER_USERS = 0x00000223 } - -enum : uint { DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x00000224 } -enum : uint { DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x00000225 } -enum : uint { DOMAIN_ALIAS_RID_PRINT_OPS = 0x00000226 } -enum : uint { DOMAIN_ALIAS_RID_BACKUP_OPS = 0x00000227 } - -enum : uint { DOMAIN_ALIAS_RID_REPLICATOR = 0x00000228 } -enum : uint { DOMAIN_ALIAS_RID_RAS_SERVERS = 0x00000229 } -enum : uint { DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 0x0000022A } -enum : uint { DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 0x0000022B } -enum : uint { DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 0x0000022C } - -const LUID SYSTEM_LUID = {LowPart: 0x3e7, HighPart: 0x0}; -const LUID ANONYMOUS_LOGON_LUID = {LowPart: 0x3e6, HighPart: 0x0}; -const LUID LOCALSERVICE_LUID = {LowPart: 0x3e5, HighPart: 0x0}; -const LUID NETWORKSERVICE_LUID = {LowPart: 0x3e4, HighPart: 0x0}; - -enum : uint { SE_GROUP_MANDATORY = 0x00000001 } -enum : uint { SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002 } -enum : uint { SE_GROUP_ENABLED = 0x00000004 } -enum : uint { SE_GROUP_OWNER = 0x00000008 } -enum : uint { SE_GROUP_USE_FOR_DENY_ONLY = 0x00000010 } -enum : uint { SE_GROUP_LOGON_ID = 0xC0000000 } -enum : uint { SE_GROUP_RESOURCE = 0x20000000 } - -enum : uint { ACL_REVISION = 2 } -enum : uint { ACL_REVISION_DS = 4 } - -enum : uint { ACL_REVISION1 = 1 } -enum { MIN_ACL_REVISION = 2 } -enum : uint { ACL_REVISION2 = 2 } -enum : uint { ACL_REVISION3 = 3 } -enum : uint { ACL_REVISION4 = 4 } -alias ACL_REVISION4 MAX_ACL_REVISION; - -struct _ACL { - BYTE AclRevision; - BYTE Sbz1; - WORD AclSize; - WORD AceCount; - WORD Sbz2; -} -alias _ACL ACL; - -alias ACL* PACL; - -struct _ACE_HEADER { - BYTE AceType; - BYTE AceFlags; - WORD AceSize; -} -alias _ACE_HEADER ACE_HEADER; - -alias ACE_HEADER* PACE_HEADER; - -enum : uint { ACCESS_MIN_MS_ACE_TYPE = 0x0 } -enum : uint { ACCESS_ALLOWED_ACE_TYPE = 0x0 } -enum : uint { ACCESS_DENIED_ACE_TYPE = 0x1 } -enum : uint { SYSTEM_AUDIT_ACE_TYPE = 0x2 } -enum : uint { SYSTEM_ALARM_ACE_TYPE = 0x3 } -enum : uint { ACCESS_MAX_MS_V2_ACE_TYPE = 0x3 } - -enum : uint { ACCESS_ALLOWED_COMPOUND_ACE_TYPE = 0x4 } -enum : uint { ACCESS_MAX_MS_V3_ACE_TYPE = 0x4 } - -enum : uint { ACCESS_MIN_MS_OBJECT_ACE_TYPE = 0x5 } -enum : uint { ACCESS_ALLOWED_OBJECT_ACE_TYPE = 0x5 } -enum : uint { ACCESS_DENIED_OBJECT_ACE_TYPE = 0x6 } -enum : uint { SYSTEM_AUDIT_OBJECT_ACE_TYPE = 0x7 } -enum : uint { SYSTEM_ALARM_OBJECT_ACE_TYPE = 0x8 } -enum : uint { ACCESS_MAX_MS_OBJECT_ACE_TYPE = 0x8 } - -enum : uint { ACCESS_MAX_MS_V4_ACE_TYPE = 0x8 } -enum : uint { ACCESS_MAX_MS_ACE_TYPE = 0x8 } - -enum : uint { ACCESS_ALLOWED_CALLBACK_ACE_TYPE = 0x9 } -enum : uint { ACCESS_DENIED_CALLBACK_ACE_TYPE = 0xA } -enum : uint { ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE = 0xB } -enum : uint { ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE = 0xC } -enum : uint { SYSTEM_AUDIT_CALLBACK_ACE_TYPE = 0xD } -enum : uint { SYSTEM_ALARM_CALLBACK_ACE_TYPE = 0xE } -enum : uint { SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE = 0xF } -enum : uint { SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE = 0x10 } - -enum : uint { ACCESS_MAX_MS_V5_ACE_TYPE = 0x10 } - -enum : uint { OBJECT_INHERIT_ACE = 0x1 } -enum : uint { CONTAINER_INHERIT_ACE = 0x2 } -enum : uint { NO_PROPAGATE_INHERIT_ACE = 0x4 } -enum : uint { INHERIT_ONLY_ACE = 0x8 } -enum : uint { INHERITED_ACE = 0x10 } -enum : uint { VALID_INHERIT_FLAGS = 0x1F } - -enum : uint { SUCCESSFUL_ACCESS_ACE_FLAG = 0x40 } -enum : uint { FAILED_ACCESS_ACE_FLAG = 0x80 } - -struct _ACCESS_ALLOWED_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} -alias _ACCESS_ALLOWED_ACE ACCESS_ALLOWED_ACE; - -alias ACCESS_ALLOWED_ACE* PACCESS_ALLOWED_ACE; - -struct _ACCESS_DENIED_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} -alias _ACCESS_DENIED_ACE ACCESS_DENIED_ACE; - -alias ACCESS_DENIED_ACE* PACCESS_DENIED_ACE; - -struct _SYSTEM_AUDIT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} -alias _SYSTEM_AUDIT_ACE SYSTEM_AUDIT_ACE; - -alias SYSTEM_AUDIT_ACE* PSYSTEM_AUDIT_ACE; - -struct _SYSTEM_ALARM_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} -alias _SYSTEM_ALARM_ACE SYSTEM_ALARM_ACE; - -alias SYSTEM_ALARM_ACE* PSYSTEM_ALARM_ACE; - -struct _ACCESS_ALLOWED_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} -alias _ACCESS_ALLOWED_OBJECT_ACE ACCESS_ALLOWED_OBJECT_ACE; -alias _ACCESS_ALLOWED_OBJECT_ACE* PACCESS_ALLOWED_OBJECT_ACE; - -struct _ACCESS_DENIED_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} -alias _ACCESS_DENIED_OBJECT_ACE ACCESS_DENIED_OBJECT_ACE; -alias _ACCESS_DENIED_OBJECT_ACE* PACCESS_DENIED_OBJECT_ACE; - -struct _SYSTEM_AUDIT_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} -alias _SYSTEM_AUDIT_OBJECT_ACE SYSTEM_AUDIT_OBJECT_ACE; -alias _SYSTEM_AUDIT_OBJECT_ACE* PSYSTEM_AUDIT_OBJECT_ACE; - -struct _SYSTEM_ALARM_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} -alias _SYSTEM_ALARM_OBJECT_ACE SYSTEM_ALARM_OBJECT_ACE; -alias _SYSTEM_ALARM_OBJECT_ACE* PSYSTEM_ALARM_OBJECT_ACE; - -struct _ACCESS_ALLOWED_CALLBACK_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} -alias _ACCESS_ALLOWED_CALLBACK_ACE ACCESS_ALLOWED_CALLBACK_ACE; -alias _ACCESS_ALLOWED_CALLBACK_ACE* PACCESS_ALLOWED_CALLBACK_ACE; - -struct _ACCESS_DENIED_CALLBACK_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} -alias _ACCESS_DENIED_CALLBACK_ACE ACCESS_DENIED_CALLBACK_ACE; -alias _ACCESS_DENIED_CALLBACK_ACE* PACCESS_DENIED_CALLBACK_ACE; - -struct _SYSTEM_AUDIT_CALLBACK_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} -alias _SYSTEM_AUDIT_CALLBACK_ACE SYSTEM_AUDIT_CALLBACK_ACE; -alias _SYSTEM_AUDIT_CALLBACK_ACE* PSYSTEM_AUDIT_CALLBACK_ACE; - -struct _SYSTEM_ALARM_CALLBACK_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} -alias _SYSTEM_ALARM_CALLBACK_ACE SYSTEM_ALARM_CALLBACK_ACE; -alias _SYSTEM_ALARM_CALLBACK_ACE* PSYSTEM_ALARM_CALLBACK_ACE; - -struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} -alias _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE ACCESS_ALLOWED_CALLBACK_OBJECT_ACE; -alias _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE* PACCESS_ALLOWED_CALLBACK_OBJECT_ACE; - -struct _ACCESS_DENIED_CALLBACK_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} -alias _ACCESS_DENIED_CALLBACK_OBJECT_ACE ACCESS_DENIED_CALLBACK_OBJECT_ACE; -alias _ACCESS_DENIED_CALLBACK_OBJECT_ACE* PACCESS_DENIED_CALLBACK_OBJECT_ACE; - -struct _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} -alias _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE SYSTEM_AUDIT_CALLBACK_OBJECT_ACE; -alias _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE* PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE; - -struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} -alias _SYSTEM_ALARM_CALLBACK_OBJECT_ACE SYSTEM_ALARM_CALLBACK_OBJECT_ACE; -alias _SYSTEM_ALARM_CALLBACK_OBJECT_ACE* PSYSTEM_ALARM_CALLBACK_OBJECT_ACE; - -enum : uint { ACE_OBJECT_TYPE_PRESENT = 0x1 } -enum : uint { ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x2 } - -alias int _ACL_INFORMATION_CLASS; -enum { - AclRevisionInformation = 1, - AclSizeInformation, -} -alias _ACL_INFORMATION_CLASS ACL_INFORMATION_CLASS; - -struct _ACL_REVISION_INFORMATION { - DWORD AclRevision; -} -alias _ACL_REVISION_INFORMATION ACL_REVISION_INFORMATION; - -alias ACL_REVISION_INFORMATION* PACL_REVISION_INFORMATION; - -struct _ACL_SIZE_INFORMATION { - DWORD AceCount; - DWORD AclBytesInUse; - DWORD AclBytesFree; -} -alias _ACL_SIZE_INFORMATION ACL_SIZE_INFORMATION; - -alias ACL_SIZE_INFORMATION* PACL_SIZE_INFORMATION; - -enum : uint { SECURITY_DESCRIPTOR_REVISION = 1 } -enum : uint { SECURITY_DESCRIPTOR_REVISION1 = 1 } - -const uint SECURITY_DESCRIPTOR_MIN_LENGTH = SECURITY_DESCRIPTOR.sizeof; - -alias WORD SECURITY_DESCRIPTOR_CONTROL; -alias WORD* PSECURITY_DESCRIPTOR_CONTROL; - -enum : uint { SE_OWNER_DEFAULTED = 0x0001 } -enum : uint { SE_GROUP_DEFAULTED = 0x0002 } -enum : uint { SE_DACL_PRESENT = 0x0004 } -enum : uint { SE_DACL_DEFAULTED = 0x0008 } -enum : uint { SE_SACL_PRESENT = 0x0010 } -enum : uint { SE_SACL_DEFAULTED = 0x0020 } -enum : uint { SE_DACL_AUTO_INHERIT_REQ = 0x0100 } -enum : uint { SE_SACL_AUTO_INHERIT_REQ = 0x0200 } -enum : uint { SE_DACL_AUTO_INHERITED = 0x0400 } -enum : uint { SE_SACL_AUTO_INHERITED = 0x0800 } -enum : uint { SE_DACL_PROTECTED = 0x1000 } -enum : uint { SE_SACL_PROTECTED = 0x2000 } -enum : uint { SE_RM_CONTROL_VALID = 0x4000 } -enum : uint { SE_SELF_RELATIVE = 0x8000 } - -struct _SECURITY_DESCRIPTOR_RELATIVE { - BYTE Revision; - BYTE Sbz1; - SECURITY_DESCRIPTOR_CONTROL Control; - DWORD Owner; - DWORD Group; - DWORD Sacl; - DWORD Dacl; -} -alias _SECURITY_DESCRIPTOR_RELATIVE SECURITY_DESCRIPTOR_RELATIVE; -alias _SECURITY_DESCRIPTOR_RELATIVE* PISECURITY_DESCRIPTOR_RELATIVE; - -struct _SECURITY_DESCRIPTOR { - BYTE Revision; - BYTE Sbz1; - SECURITY_DESCRIPTOR_CONTROL Control; - PSID Owner; - PSID Group; - PACL Sacl; - PACL Dacl; -} -alias _SECURITY_DESCRIPTOR SECURITY_DESCRIPTOR; -alias _SECURITY_DESCRIPTOR* PISECURITY_DESCRIPTOR; - -struct _OBJECT_TYPE_LIST { - WORD Level; - WORD Sbz; - GUID *ObjectType; -} -alias _OBJECT_TYPE_LIST OBJECT_TYPE_LIST; -alias _OBJECT_TYPE_LIST* POBJECT_TYPE_LIST; - -enum : uint { ACCESS_OBJECT_GUID = 0 } -enum : uint { ACCESS_PROPERTY_SET_GUID = 1 } -enum : uint { ACCESS_PROPERTY_GUID = 2 } - -enum : uint { ACCESS_MAX_LEVEL = 4 } - -alias int _AUDIT_EVENT_TYPE; -enum { - AuditEventObjectAccess, - AuditEventDirectoryServiceAccess, -} -alias _AUDIT_EVENT_TYPE AUDIT_EVENT_TYPE; -alias _AUDIT_EVENT_TYPE* PAUDIT_EVENT_TYPE; - -enum : uint { AUDIT_ALLOW_NO_PRIVILEGE = 0x1 } - -const char[] ACCESS_DS_SOURCE_A = "DS"; -const wchar[] ACCESS_DS_SOURCE_W = "DS"; -const char[] ACCESS_DS_OBJECT_TYPE_NAME_A = "Directory Service Object"; -const wchar[] ACCESS_DS_OBJECT_TYPE_NAME_W = "Directory Service Object"; - -enum : uint { SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001 } -enum : uint { SE_PRIVILEGE_ENABLED = 0x00000002 } -enum : uint { SE_PRIVILEGE_USED_FOR_ACCESS = 0x80000000 } - -enum : uint { PRIVILEGE_SET_ALL_NECESSARY = 1 } - -struct _PRIVILEGE_SET { - DWORD PrivilegeCount; - DWORD Control; - LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY]; -} -alias _PRIVILEGE_SET PRIVILEGE_SET; -alias _PRIVILEGE_SET* PPRIVILEGE_SET; - -const TCHAR[] SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege"; -const TCHAR[] SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege"; -const TCHAR[] SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege"; -const TCHAR[] SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege"; -const TCHAR[] SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege"; -const TCHAR[] SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege"; -const TCHAR[] SE_TCB_NAME = "SeTcbPrivilege"; -const TCHAR[] SE_SECURITY_NAME = "SeSecurityPrivilege"; -const TCHAR[] SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege"; -const TCHAR[] SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege"; -const TCHAR[] SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege"; -const TCHAR[] SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege"; -const TCHAR[] SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege"; -const TCHAR[] SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege"; -const TCHAR[] SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege"; -const TCHAR[] SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege"; -const TCHAR[] SE_BACKUP_NAME = "SeBackupPrivilege"; -const TCHAR[] SE_RESTORE_NAME = "SeRestorePrivilege"; -const TCHAR[] SE_SHUTDOWN_NAME = "SeShutdownPrivilege"; -const TCHAR[] SE_DEBUG_NAME = "SeDebugPrivilege"; -const TCHAR[] SE_AUDIT_NAME = "SeAuditPrivilege"; -const TCHAR[] SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege"; -const TCHAR[] SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege"; -const TCHAR[] SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege"; -const TCHAR[] SE_UNDOCK_NAME = "SeUndockPrivilege"; -const TCHAR[] SE_SYNC_AGENT_NAME = "SeSyncAgentPrivilege"; -const TCHAR[] SE_ENABLE_DELEGATION_NAME = "SeEnableDelegationPrivilege"; -const TCHAR[] SE_MANAGE_VOLUME_NAME = "SeManageVolumePrivilege"; - -alias int _SECURITY_IMPERSONATION_LEVEL; -enum { - SecurityAnonymous, - SecurityIdentification, - SecurityImpersonation, - SecurityDelegation, -} -alias _SECURITY_IMPERSONATION_LEVEL SECURITY_IMPERSONATION_LEVEL; -alias _SECURITY_IMPERSONATION_LEVEL* PSECURITY_IMPERSONATION_LEVEL; - -alias SecurityDelegation SECURITY_MAX_IMPERSONATION_LEVEL; -alias SecurityAnonymous SECURITY_MIN_IMPERSONATION_LEVEL; -alias SecurityImpersonation DEFAULT_IMPERSONATION_LEVEL; -bit VALID_IMPERSONATION_LEVEL(SECURITY_IMPERSONATION_LEVEL L){ return (L >= SECURITY_MIN_IMPERSONATION_LEVEL) && (L <= SECURITY_MAX_IMPERSONATION_LEVEL); } - -enum : uint { TOKEN_ASSIGN_PRIMARY = 0x0001 } -enum : uint { TOKEN_DUPLICATE = 0x0002 } -enum : uint { TOKEN_IMPERSONATE = 0x0004 } -enum : uint { TOKEN_QUERY = 0x0008 } -enum : uint { TOKEN_QUERY_SOURCE = 0x0010 } -enum : uint { TOKEN_ADJUST_PRIVILEGES = 0x0020 } -enum : uint { TOKEN_ADJUST_GROUPS = 0x0040 } -enum : uint { TOKEN_ADJUST_DEFAULT = 0x0080 } -enum : uint { TOKEN_ADJUST_SESSIONID = 0x0100 } - -enum : uint { TOKEN_ALL_ACCESS_P = STANDARD_RIGHTS_REQUIRED | TOKEN_ASSIGN_PRIMARY | TOKEN_DUPLICATE | TOKEN_IMPERSONATE | TOKEN_QUERY | TOKEN_QUERY_SOURCE | TOKEN_ADJUST_PRIVILEGES | TOKEN_ADJUST_GROUPS | TOKEN_ADJUST_DEFAULT } - -// #if ((defined(_WIN32_WINNT) && (_WIN32_WINNT > 0x0400)) || (!defined(_WIN32_WINNT))) -enum : uint { TOKEN_ALL_ACCESS = TOKEN_ALL_ACCESS_P | TOKEN_ADJUST_SESSIONID } -// #else -// #... -// #endif - -enum : uint { TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY } - -enum : uint { TOKEN_WRITE = STANDARD_RIGHTS_WRITE | TOKEN_ADJUST_PRIVILEGES | TOKEN_ADJUST_GROUPS | TOKEN_ADJUST_DEFAULT } - -enum : uint { TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE } - -alias int _TOKEN_TYPE; -enum { - TokenPrimary = 1, - TokenImpersonation, -} -alias _TOKEN_TYPE TOKEN_TYPE; - -alias TOKEN_TYPE* PTOKEN_TYPE; - -alias int _TOKEN_INFORMATION_CLASS; -enum { - TokenUser = 1, - TokenGroups, - TokenPrivileges, - TokenOwner, - TokenPrimaryGroup, - TokenDefaultDacl, - TokenSource, - TokenType, - TokenImpersonationLevel, - TokenStatistics, - TokenRestrictedSids, - TokenSessionId, - TokenGroupsAndPrivileges, - TokenSessionReference, - TokenSandBoxInert, -} -alias _TOKEN_INFORMATION_CLASS TOKEN_INFORMATION_CLASS; -alias _TOKEN_INFORMATION_CLASS* PTOKEN_INFORMATION_CLASS; - -struct _TOKEN_USER { - SID_AND_ATTRIBUTES User; -} -alias _TOKEN_USER TOKEN_USER; -alias _TOKEN_USER* PTOKEN_USER; - -struct _TOKEN_GROUPS { - DWORD GroupCount; - SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]; -} -alias _TOKEN_GROUPS TOKEN_GROUPS; -alias _TOKEN_GROUPS* PTOKEN_GROUPS; - -struct _TOKEN_PRIVILEGES { - DWORD PrivilegeCount; - LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; -} -alias _TOKEN_PRIVILEGES TOKEN_PRIVILEGES; -alias _TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES; - -struct _TOKEN_OWNER { - PSID Owner; -} -alias _TOKEN_OWNER TOKEN_OWNER; -alias _TOKEN_OWNER* PTOKEN_OWNER; - -struct _TOKEN_PRIMARY_GROUP { - PSID PrimaryGroup; -} -alias _TOKEN_PRIMARY_GROUP TOKEN_PRIMARY_GROUP; -alias _TOKEN_PRIMARY_GROUP* PTOKEN_PRIMARY_GROUP; - -struct _TOKEN_DEFAULT_DACL { - PACL DefaultDacl; -} -alias _TOKEN_DEFAULT_DACL TOKEN_DEFAULT_DACL; -alias _TOKEN_DEFAULT_DACL* PTOKEN_DEFAULT_DACL; - -struct _TOKEN_GROUPS_AND_PRIVILEGES { - DWORD SidCount; - DWORD SidLength; - PSID_AND_ATTRIBUTES Sids; - DWORD RestrictedSidCount; - DWORD RestrictedSidLength; - PSID_AND_ATTRIBUTES RestrictedSids; - DWORD PrivilegeCount; - DWORD PrivilegeLength; - PLUID_AND_ATTRIBUTES Privileges; - LUID AuthenticationId; -} -alias _TOKEN_GROUPS_AND_PRIVILEGES TOKEN_GROUPS_AND_PRIVILEGES; -alias _TOKEN_GROUPS_AND_PRIVILEGES* PTOKEN_GROUPS_AND_PRIVILEGES; - -enum : uint { TOKEN_SOURCE_LENGTH = 8 } - -struct _TOKEN_SOURCE { - CHAR SourceName[TOKEN_SOURCE_LENGTH]; - LUID SourceIdentifier; -} -alias _TOKEN_SOURCE TOKEN_SOURCE; -alias _TOKEN_SOURCE* PTOKEN_SOURCE; - -struct _TOKEN_STATISTICS { - LUID TokenId; - LUID AuthenticationId; - LARGE_INTEGER ExpirationTime; - TOKEN_TYPE TokenType; - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; - DWORD DynamicCharged; - DWORD DynamicAvailable; - DWORD GroupCount; - DWORD PrivilegeCount; - LUID ModifiedId; -} -alias _TOKEN_STATISTICS TOKEN_STATISTICS; -alias _TOKEN_STATISTICS* PTOKEN_STATISTICS; - -struct _TOKEN_CONTROL { - LUID TokenId; - LUID AuthenticationId; - LUID ModifiedId; - TOKEN_SOURCE TokenSource; -} -alias _TOKEN_CONTROL TOKEN_CONTROL; -alias _TOKEN_CONTROL* PTOKEN_CONTROL; - -enum : uint { SECURITY_DYNAMIC_TRACKING = TRUE } -enum : uint { SECURITY_STATIC_TRACKING = FALSE } - -alias BOOLEAN SECURITY_CONTEXT_TRACKING_MODE; -alias BOOLEAN* PSECURITY_CONTEXT_TRACKING_MODE; - -struct _SECURITY_QUALITY_OF_SERVICE { - DWORD Length; - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; - SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; - BOOLEAN EffectiveOnly; -} -alias _SECURITY_QUALITY_OF_SERVICE SECURITY_QUALITY_OF_SERVICE; -alias _SECURITY_QUALITY_OF_SERVICE* PSECURITY_QUALITY_OF_SERVICE; - -struct _SE_IMPERSONATION_STATE { - PACCESS_TOKEN Token; - BOOLEAN CopyOnOpen; - BOOLEAN EffectiveOnly; - SECURITY_IMPERSONATION_LEVEL Level; -} -alias _SE_IMPERSONATION_STATE SE_IMPERSONATION_STATE; -alias _SE_IMPERSONATION_STATE* PSE_IMPERSONATION_STATE; - -enum : uint { DISABLE_MAX_PRIVILEGE = 0x1 } -enum : uint { SANDBOX_INERT = 0x2 } - -alias DWORD SECURITY_INFORMATION; -alias DWORD* PSECURITY_INFORMATION; - -enum : uint { OWNER_SECURITY_INFORMATION = 0x00000001 } -enum : uint { GROUP_SECURITY_INFORMATION = 0x00000002 } -enum : uint { DACL_SECURITY_INFORMATION = 0x00000004 } -enum : uint { SACL_SECURITY_INFORMATION = 0x00000008 } - -enum : uint { PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000 } -enum : uint { PROTECTED_SACL_SECURITY_INFORMATION = 0x40000000 } -enum : uint { UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000 } -enum : uint { UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000 } - -enum : uint { PROCESS_TERMINATE = 0x0001 } -enum : uint { PROCESS_CREATE_THREAD = 0x0002 } -enum : uint { PROCESS_SET_SESSIONID = 0x0004 } -enum : uint { PROCESS_VM_OPERATION = 0x0008 } -enum : uint { PROCESS_VM_READ = 0x0010 } -enum : uint { PROCESS_VM_WRITE = 0x0020 } -enum : uint { PROCESS_DUP_HANDLE = 0x0040 } -enum : uint { PROCESS_CREATE_PROCESS = 0x0080 } -enum : uint { PROCESS_SET_QUOTA = 0x0100 } -enum : uint { PROCESS_SET_INFORMATION = 0x0200 } -enum : uint { PROCESS_QUERY_INFORMATION = 0x0400 } -enum : uint { PROCESS_SUSPEND_RESUME = 0x0800 } -enum : uint { PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFF } - -// #if defined(_WIN64) - -// #... - -// #else - -enum : uint { MAXIMUM_PROCESSORS = 32 } - -// #endif - -enum : uint { THREAD_TERMINATE = 0x0001 } -enum : uint { THREAD_SUSPEND_RESUME = 0x0002 } -enum : uint { THREAD_GET_CONTEXT = 0x0008 } -enum : uint { THREAD_SET_CONTEXT = 0x0010 } -enum : uint { THREAD_SET_INFORMATION = 0x0020 } -enum : uint { THREAD_QUERY_INFORMATION = 0x0040 } -enum : uint { THREAD_SET_THREAD_TOKEN = 0x0080 } -enum : uint { THREAD_IMPERSONATE = 0x0100 } -enum : uint { THREAD_DIRECT_IMPERSONATION = 0x0200 } - -enum : uint { THREAD_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3FF } - -enum : uint { JOB_OBJECT_ASSIGN_PROCESS = 0x0001 } -enum : uint { JOB_OBJECT_SET_ATTRIBUTES = 0x0002 } -enum : uint { JOB_OBJECT_QUERY = 0x0004 } -enum : uint { JOB_OBJECT_TERMINATE = 0x0008 } -enum : uint { JOB_OBJECT_SET_SECURITY_ATTRIBUTES = 0x0010 } -enum : uint { JOB_OBJECT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1F } - -struct _JOB_SET_ARRAY { - HANDLE JobHandle; - DWORD MemberLevel; - DWORD Flags; -} -alias _JOB_SET_ARRAY JOB_SET_ARRAY; -alias _JOB_SET_ARRAY* PJOB_SET_ARRAY; - -enum : uint { TLS_MINIMUM_AVAILABLE = 64 } - -struct _NT_TIB { - _EXCEPTION_REGISTRATION_RECORD *ExceptionList; - PVOID StackBase; - PVOID StackLimit; - PVOID SubSystemTib; -union { - PVOID FiberData; - DWORD Version; -} - - PVOID ArbitraryUserPointer; - _NT_TIB *Self; -} -alias _NT_TIB NT_TIB; - -alias NT_TIB* PNT_TIB; - -struct _NT_TIB32 { - DWORD ExceptionList; - DWORD StackBase; - DWORD StackLimit; - DWORD SubSystemTib; -union { - DWORD FiberData; - DWORD Version; -} - - DWORD ArbitraryUserPointer; - DWORD Self; -} -alias _NT_TIB32 NT_TIB32; -alias _NT_TIB32* PNT_TIB32; - -struct _NT_TIB64 { - DWORD64 ExceptionList; - DWORD64 StackBase; - DWORD64 StackLimit; - DWORD64 SubSystemTib; -union { - DWORD64 FiberData; - DWORD Version; -} - - DWORD64 ArbitraryUserPointer; - DWORD64 Self; -} -alias _NT_TIB64 NT_TIB64; -alias _NT_TIB64* PNT_TIB64; - -// #if !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) -// #... -// #endif - -enum : uint { THREAD_BASE_PRIORITY_LOWRT = 15 } -enum : uint { THREAD_BASE_PRIORITY_MAX = 2 } -enum { THREAD_BASE_PRIORITY_MIN = -2 } -enum { THREAD_BASE_PRIORITY_IDLE = -15 } - -struct _QUOTA_LIMITS { - SIZE_T PagedPoolLimit; - SIZE_T NonPagedPoolLimit; - SIZE_T MinimumWorkingSetSize; - SIZE_T MaximumWorkingSetSize; - SIZE_T PagefileLimit; - LARGE_INTEGER TimeLimit; -} -alias _QUOTA_LIMITS QUOTA_LIMITS; - -alias QUOTA_LIMITS* PQUOTA_LIMITS; - -struct _IO_COUNTERS { - ULONGLONG ReadOperationCount; - ULONGLONG WriteOperationCount; - ULONGLONG OtherOperationCount; - ULONGLONG ReadTransferCount; - ULONGLONG WriteTransferCount; - ULONGLONG OtherTransferCount; -} -alias _IO_COUNTERS IO_COUNTERS; - -alias IO_COUNTERS* PIO_COUNTERS; - -struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION { - LARGE_INTEGER TotalUserTime; - LARGE_INTEGER TotalKernelTime; - LARGE_INTEGER ThisPeriodTotalUserTime; - LARGE_INTEGER ThisPeriodTotalKernelTime; - DWORD TotalPageFaultCount; - DWORD TotalProcesses; - DWORD ActiveProcesses; - DWORD TotalTerminatedProcesses; -} -alias _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION JOBOBJECT_BASIC_ACCOUNTING_INFORMATION; -alias _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION; - -struct _JOBOBJECT_BASIC_LIMIT_INFORMATION { - LARGE_INTEGER PerProcessUserTimeLimit; - LARGE_INTEGER PerJobUserTimeLimit; - DWORD LimitFlags; - SIZE_T MinimumWorkingSetSize; - SIZE_T MaximumWorkingSetSize; - DWORD ActiveProcessLimit; - ULONG_PTR Affinity; - DWORD PriorityClass; - DWORD SchedulingClass; -} -alias _JOBOBJECT_BASIC_LIMIT_INFORMATION JOBOBJECT_BASIC_LIMIT_INFORMATION; -alias _JOBOBJECT_BASIC_LIMIT_INFORMATION* PJOBOBJECT_BASIC_LIMIT_INFORMATION; - -struct _JOBOBJECT_EXTENDED_LIMIT_INFORMATION { - JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation; - IO_COUNTERS IoInfo; - SIZE_T ProcessMemoryLimit; - SIZE_T JobMemoryLimit; - SIZE_T PeakProcessMemoryUsed; - SIZE_T PeakJobMemoryUsed; -} -alias _JOBOBJECT_EXTENDED_LIMIT_INFORMATION JOBOBJECT_EXTENDED_LIMIT_INFORMATION; -alias _JOBOBJECT_EXTENDED_LIMIT_INFORMATION* PJOBOBJECT_EXTENDED_LIMIT_INFORMATION; - -struct _JOBOBJECT_BASIC_PROCESS_ID_LIST { - DWORD NumberOfAssignedProcesses; - DWORD NumberOfProcessIdsInList; - ULONG_PTR ProcessIdList[1]; -} -alias _JOBOBJECT_BASIC_PROCESS_ID_LIST JOBOBJECT_BASIC_PROCESS_ID_LIST; -alias _JOBOBJECT_BASIC_PROCESS_ID_LIST* PJOBOBJECT_BASIC_PROCESS_ID_LIST; - -struct _JOBOBJECT_BASIC_UI_RESTRICTIONS { - DWORD UIRestrictionsClass; -} -alias _JOBOBJECT_BASIC_UI_RESTRICTIONS JOBOBJECT_BASIC_UI_RESTRICTIONS; -alias _JOBOBJECT_BASIC_UI_RESTRICTIONS* PJOBOBJECT_BASIC_UI_RESTRICTIONS; - -struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION { - DWORD SecurityLimitFlags ; - HANDLE JobToken ; - PTOKEN_GROUPS SidsToDisable ; - PTOKEN_PRIVILEGES PrivilegesToDelete ; - PTOKEN_GROUPS RestrictedSids ; -} -alias _JOBOBJECT_SECURITY_LIMIT_INFORMATION JOBOBJECT_SECURITY_LIMIT_INFORMATION; -alias _JOBOBJECT_SECURITY_LIMIT_INFORMATION* PJOBOBJECT_SECURITY_LIMIT_INFORMATION; - -struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION { - DWORD EndOfJobTimeAction; -} -alias _JOBOBJECT_END_OF_JOB_TIME_INFORMATION JOBOBJECT_END_OF_JOB_TIME_INFORMATION; -alias _JOBOBJECT_END_OF_JOB_TIME_INFORMATION* PJOBOBJECT_END_OF_JOB_TIME_INFORMATION; - -struct _JOBOBJECT_ASSOCIATE_COMPLETION_PORT { - PVOID CompletionKey; - HANDLE CompletionPort; -} -alias _JOBOBJECT_ASSOCIATE_COMPLETION_PORT JOBOBJECT_ASSOCIATE_COMPLETION_PORT; -alias _JOBOBJECT_ASSOCIATE_COMPLETION_PORT* PJOBOBJECT_ASSOCIATE_COMPLETION_PORT; - -struct _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION { - JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo; - IO_COUNTERS IoInfo; -} -alias _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION; -alias _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION; - -struct _JOBOBJECT_JOBSET_INFORMATION { - DWORD MemberLevel; -} -alias _JOBOBJECT_JOBSET_INFORMATION JOBOBJECT_JOBSET_INFORMATION; -alias _JOBOBJECT_JOBSET_INFORMATION* PJOBOBJECT_JOBSET_INFORMATION; - -enum : uint { JOB_OBJECT_TERMINATE_AT_END_OF_JOB = 0 } -enum : uint { JOB_OBJECT_POST_AT_END_OF_JOB = 1 } - -enum : uint { JOB_OBJECT_MSG_END_OF_JOB_TIME = 1 } -enum : uint { JOB_OBJECT_MSG_END_OF_PROCESS_TIME = 2 } -enum : uint { JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT = 3 } -enum : uint { JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO = 4 } -enum : uint { JOB_OBJECT_MSG_NEW_PROCESS = 6 } -enum : uint { JOB_OBJECT_MSG_EXIT_PROCESS = 7 } -enum : uint { JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS = 8 } -enum : uint { JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT = 9 } -enum : uint { JOB_OBJECT_MSG_JOB_MEMORY_LIMIT = 10 } - -enum : uint { JOB_OBJECT_LIMIT_WORKINGSET = 0x00000001 } -enum : uint { JOB_OBJECT_LIMIT_PROCESS_TIME = 0x00000002 } -enum : uint { JOB_OBJECT_LIMIT_JOB_TIME = 0x00000004 } -enum : uint { JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x00000008 } -enum : uint { JOB_OBJECT_LIMIT_AFFINITY = 0x00000010 } -enum : uint { JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x00000020 } -enum : uint { JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x00000040 } -enum : uint { JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x00000080 } - -enum : uint { JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x00000100 } -enum : uint { JOB_OBJECT_LIMIT_JOB_MEMORY = 0x00000200 } -enum : uint { JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400 } -enum : uint { JOB_OBJECT_LIMIT_BREAKAWAY_OK = 0x00000800 } -enum : uint { JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK = 0x00001000 } -enum : uint { JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE = 0x00002000 } - -enum : uint { JOB_OBJECT_LIMIT_RESERVED2 = 0x00004000 } -enum : uint { JOB_OBJECT_LIMIT_RESERVED3 = 0x00008000 } -enum : uint { JOB_OBJECT_LIMIT_RESERVED4 = 0x00010000 } -enum : uint { JOB_OBJECT_LIMIT_RESERVED5 = 0x00020000 } -enum : uint { JOB_OBJECT_LIMIT_RESERVED6 = 0x00040000 } - -enum : uint { JOB_OBJECT_LIMIT_VALID_FLAGS = 0x0007ffff } - -enum : uint { JOB_OBJECT_BASIC_LIMIT_VALID_FLAGS = 0x000000ff } -enum : uint { JOB_OBJECT_EXTENDED_LIMIT_VALID_FLAGS = 0x00003fff } -enum : uint { JOB_OBJECT_RESERVED_LIMIT_VALID_FLAGS = 0x0007ffff } - -enum : uint { JOB_OBJECT_UILIMIT_NONE = 0x00000000 } - -enum : uint { JOB_OBJECT_UILIMIT_HANDLES = 0x00000001 } -enum : uint { JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x00000002 } -enum : uint { JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x00000004 } -enum : uint { JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008 } -enum : uint { JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x00000010 } -enum : uint { JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x00000020 } -enum : uint { JOB_OBJECT_UILIMIT_DESKTOP = 0x00000040 } -enum : uint { JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x00000080 } - -enum : uint { JOB_OBJECT_UILIMIT_ALL = 0x000000FF } - -enum : uint { JOB_OBJECT_UI_VALID_FLAGS = 0x000000FF } - -enum : uint { JOB_OBJECT_SECURITY_NO_ADMIN = 0x00000001 } -enum : uint { JOB_OBJECT_SECURITY_RESTRICTED_TOKEN = 0x00000002 } -enum : uint { JOB_OBJECT_SECURITY_ONLY_TOKEN = 0x00000004 } -enum : uint { JOB_OBJECT_SECURITY_FILTER_TOKENS = 0x00000008 } - -enum : uint { JOB_OBJECT_SECURITY_VALID_FLAGS = 0x0000000f } - -alias int _JOBOBJECTINFOCLASS; -enum { - JobObjectBasicAccountingInformation = 1, - JobObjectBasicLimitInformation, - JobObjectBasicProcessIdList, - JobObjectBasicUIRestrictions, - JobObjectSecurityLimitInformation, - JobObjectEndOfJobTimeInformation, - JobObjectAssociateCompletionPortInformation, - JobObjectBasicAndIoAccountingInformation, - JobObjectExtendedLimitInformation, - JobObjectJobSetInformation, - MaxJobObjectInfoClass, -} -alias _JOBOBJECTINFOCLASS JOBOBJECTINFOCLASS; - -enum : uint { EVENT_MODIFY_STATE = 0x0002 } -enum : uint { EVENT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 } -enum : uint { MUTANT_QUERY_STATE = 0x0001 } - -enum : uint { MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE| MUTANT_QUERY_STATE } -enum : uint { SEMAPHORE_MODIFY_STATE = 0x0002 } -enum : uint { SEMAPHORE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 } - -enum : uint { TIMER_QUERY_STATE = 0x0001 } -enum : uint { TIMER_MODIFY_STATE = 0x0002 } - -enum : uint { TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE| TIMER_QUERY_STATE|TIMER_MODIFY_STATE } - -enum : uint { TIME_ZONE_ID_UNKNOWN = 0 } -enum : uint { TIME_ZONE_ID_STANDARD = 1 } -enum : uint { TIME_ZONE_ID_DAYLIGHT = 2 } - -enum : uint { MAXIMUM_NUMA_NODES = 16 } - -struct _SYSTEM_NUMA_INFORMATION { - DWORD HighestNodeNumber; - DWORD Reserved; -union { - ULONGLONG ActiveProcessorsAffinityMask[MAXIMUM_NUMA_NODES]; - ULONGLONG AvailableMemory[MAXIMUM_NUMA_NODES]; -} - -} -alias _SYSTEM_NUMA_INFORMATION SYSTEM_NUMA_INFORMATION; -alias _SYSTEM_NUMA_INFORMATION* PSYSTEM_NUMA_INFORMATION; - -enum : uint { PROCESSOR_INTEL_386 = 386 } -enum : uint { PROCESSOR_INTEL_486 = 486 } -enum : uint { PROCESSOR_INTEL_PENTIUM = 586 } -enum : uint { PROCESSOR_INTEL_IA64 = 2200 } -enum : uint { PROCESSOR_MIPS_R4000 = 4000 } -enum : uint { PROCESSOR_ALPHA_21064 = 21064 } -enum : uint { PROCESSOR_PPC_601 = 601 } -enum : uint { PROCESSOR_PPC_603 = 603 } -enum : uint { PROCESSOR_PPC_604 = 604 } -enum : uint { PROCESSOR_PPC_620 = 620 } -enum : uint { PROCESSOR_HITACHI_SH3 = 10003 } -enum : uint { PROCESSOR_HITACHI_SH3E = 10004 } -enum : uint { PROCESSOR_HITACHI_SH4 = 10005 } -enum : uint { PROCESSOR_MOTOROLA_821 = 821 } -enum : uint { PROCESSOR_SHx_SH3 = 103 } -enum : uint { PROCESSOR_SHx_SH4 = 104 } -enum : uint { PROCESSOR_STRONGARM = 2577 } -enum : uint { PROCESSOR_ARM720 = 1824 } -enum : uint { PROCESSOR_ARM820 = 2080 } -enum : uint { PROCESSOR_ARM920 = 2336 } -enum : uint { PROCESSOR_ARM_7TDMI = 70001 } -enum : uint { PROCESSOR_OPTIL = 0x494f } - -enum : uint { PROCESSOR_ARCHITECTURE_INTEL = 0 } -enum : uint { PROCESSOR_ARCHITECTURE_MIPS = 1 } -enum : uint { PROCESSOR_ARCHITECTURE_ALPHA = 2 } -enum : uint { PROCESSOR_ARCHITECTURE_PPC = 3 } -enum : uint { PROCESSOR_ARCHITECTURE_SHX = 4 } -enum : uint { PROCESSOR_ARCHITECTURE_ARM = 5 } -enum : uint { PROCESSOR_ARCHITECTURE_IA64 = 6 } -enum : uint { PROCESSOR_ARCHITECTURE_ALPHA64 = 7 } -enum : uint { PROCESSOR_ARCHITECTURE_MSIL = 8 } -enum : uint { PROCESSOR_ARCHITECTURE_AMD64 = 9 } -enum : uint { PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 = 10 } - -enum : uint { PROCESSOR_ARCHITECTURE_UNKNOWN = 0xFFFF } - -enum : uint { PF_FLOATING_POINT_PRECISION_ERRATA = 0 } -enum : uint { PF_FLOATING_POINT_EMULATED = 1 } -enum : uint { PF_COMPARE_EXCHANGE_DOUBLE = 2 } -enum : uint { PF_MMX_INSTRUCTIONS_AVAILABLE = 3 } -enum : uint { PF_PPC_MOVEMEM_64BIT_OK = 4 } -enum : uint { PF_ALPHA_BYTE_INSTRUCTIONS = 5 } -enum : uint { PF_XMMI_INSTRUCTIONS_AVAILABLE = 6 } -enum : uint { PF_3DNOW_INSTRUCTIONS_AVAILABLE = 7 } -enum : uint { PF_RDTSC_INSTRUCTION_AVAILABLE = 8 } -enum : uint { PF_PAE_ENABLED = 9 } -enum : uint { PF_XMMI64_INSTRUCTIONS_AVAILABLE = 10 } - -struct _MEMORY_BASIC_INFORMATION { - PVOID BaseAddress; - PVOID AllocationBase; - DWORD AllocationProtect; - SIZE_T RegionSize; - DWORD State; - DWORD Protect; - DWORD Type; -} -alias _MEMORY_BASIC_INFORMATION MEMORY_BASIC_INFORMATION; -alias _MEMORY_BASIC_INFORMATION* PMEMORY_BASIC_INFORMATION; - -struct _MEMORY_BASIC_INFORMATION32 { - DWORD BaseAddress; - DWORD AllocationBase; - DWORD AllocationProtect; - DWORD RegionSize; - DWORD State; - DWORD Protect; - DWORD Type; -} -alias _MEMORY_BASIC_INFORMATION32 MEMORY_BASIC_INFORMATION32; -alias _MEMORY_BASIC_INFORMATION32* PMEMORY_BASIC_INFORMATION32; - -struct _MEMORY_BASIC_INFORMATION64 { - ULONGLONG BaseAddress; - ULONGLONG AllocationBase; - DWORD AllocationProtect; - DWORD __alignment1; - ULONGLONG RegionSize; - DWORD State; - DWORD Protect; - DWORD Type; - DWORD __alignment2; -} -alias _MEMORY_BASIC_INFORMATION64 MEMORY_BASIC_INFORMATION64; -alias _MEMORY_BASIC_INFORMATION64* PMEMORY_BASIC_INFORMATION64; - -enum : uint { SECTION_QUERY = 0x0001 } -enum : uint { SECTION_MAP_WRITE = 0x0002 } -enum : uint { SECTION_MAP_READ = 0x0004 } -enum : uint { SECTION_MAP_EXECUTE = 0x0008 } -enum : uint { SECTION_EXTEND_SIZE = 0x0010 } - -enum : uint { SECTION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SECTION_QUERY| SECTION_MAP_WRITE | SECTION_MAP_READ | SECTION_MAP_EXECUTE | SECTION_EXTEND_SIZE } -enum : uint { PAGE_NOACCESS = 0x01 } -enum : uint { PAGE_READONLY = 0x02 } -enum : uint { PAGE_READWRITE = 0x04 } -enum : uint { PAGE_WRITECOPY = 0x08 } -enum : uint { PAGE_EXECUTE = 0x10 } -enum : uint { PAGE_EXECUTE_READ = 0x20 } -enum : uint { PAGE_EXECUTE_READWRITE = 0x40 } -enum : uint { PAGE_EXECUTE_WRITECOPY = 0x80 } -enum : uint { PAGE_GUARD = 0x100 } -enum : uint { PAGE_NOCACHE = 0x200 } -enum : uint { PAGE_WRITECOMBINE = 0x400 } -enum : uint { MEM_COMMIT = 0x1000 } -enum : uint { MEM_RESERVE = 0x2000 } -enum : uint { MEM_DECOMMIT = 0x4000 } -enum : uint { MEM_RELEASE = 0x8000 } -enum : uint { MEM_FREE = 0x10000 } -enum : uint { MEM_PRIVATE = 0x20000 } -enum : uint { MEM_MAPPED = 0x40000 } -enum : uint { MEM_RESET = 0x80000 } -enum : uint { MEM_TOP_DOWN = 0x100000 } -enum : uint { MEM_WRITE_WATCH = 0x200000 } -enum : uint { MEM_PHYSICAL = 0x400000 } -enum : uint { MEM_4MB_PAGES = 0x80000000 } -enum : uint { SEC_FILE = 0x800000 } -enum : uint { SEC_IMAGE = 0x1000000 } -enum : uint { SEC_RESERVE = 0x4000000 } -enum : uint { SEC_COMMIT = 0x8000000 } -enum : uint { SEC_NOCACHE = 0x10000000 } -alias SEC_IMAGE MEM_IMAGE; -enum : uint { WRITE_WATCH_FLAG_RESET = 0x01 } - -enum : uint { FILE_READ_DATA = 0x0001 } -enum : uint { FILE_LIST_DIRECTORY = 0x0001 } - -enum : uint { FILE_WRITE_DATA = 0x0002 } -enum : uint { FILE_ADD_FILE = 0x0002 } - -enum : uint { FILE_APPEND_DATA = 0x0004 } -enum : uint { FILE_ADD_SUBDIRECTORY = 0x0004 } -enum : uint { FILE_CREATE_PIPE_INSTANCE = 0x0004 } - -enum : uint { FILE_READ_EA = 0x0008 } - -enum : uint { FILE_WRITE_EA = 0x0010 } - -enum : uint { FILE_EXECUTE = 0x0020 } -enum : uint { FILE_TRAVERSE = 0x0020 } - -enum : uint { FILE_DELETE_CHILD = 0x0040 } - -enum : uint { FILE_READ_ATTRIBUTES = 0x0080 } - -enum : uint { FILE_WRITE_ATTRIBUTES = 0x0100 } - -enum : uint { FILE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF } - -enum : uint { FILE_GENERIC_READ = STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE } - -enum : uint { FILE_GENERIC_WRITE = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE } - -enum : uint { FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE } - -enum : uint { FILE_SHARE_READ = 0x00000001 } -enum : uint { FILE_SHARE_WRITE = 0x00000002 } -enum : uint { FILE_SHARE_DELETE = 0x00000004 } -enum : uint { FILE_ATTRIBUTE_READONLY = 0x00000001 } -enum : uint { FILE_ATTRIBUTE_HIDDEN = 0x00000002 } -enum : uint { FILE_ATTRIBUTE_SYSTEM = 0x00000004 } -enum : uint { FILE_ATTRIBUTE_DIRECTORY = 0x00000010 } -enum : uint { FILE_ATTRIBUTE_ARCHIVE = 0x00000020 } -enum : uint { FILE_ATTRIBUTE_DEVICE = 0x00000040 } -enum : uint { FILE_ATTRIBUTE_NORMAL = 0x00000080 } -enum : uint { FILE_ATTRIBUTE_TEMPORARY = 0x00000100 } -enum : uint { FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200 } -enum : uint { FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400 } -enum : uint { FILE_ATTRIBUTE_COMPRESSED = 0x00000800 } -enum : uint { FILE_ATTRIBUTE_OFFLINE = 0x00001000 } -enum : uint { FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000 } -enum : uint { FILE_ATTRIBUTE_ENCRYPTED = 0x00004000 } -enum : uint { FILE_NOTIFY_CHANGE_FILE_NAME = 0x00000001 } -enum : uint { FILE_NOTIFY_CHANGE_DIR_NAME = 0x00000002 } -enum : uint { FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x00000004 } -enum : uint { FILE_NOTIFY_CHANGE_SIZE = 0x00000008 } -enum : uint { FILE_NOTIFY_CHANGE_LAST_WRITE = 0x00000010 } -enum : uint { FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x00000020 } -enum : uint { FILE_NOTIFY_CHANGE_CREATION = 0x00000040 } -enum : uint { FILE_NOTIFY_CHANGE_SECURITY = 0x00000100 } -enum : uint { FILE_ACTION_ADDED = 0x00000001 } -enum : uint { FILE_ACTION_REMOVED = 0x00000002 } -enum : uint { FILE_ACTION_MODIFIED = 0x00000003 } -enum : uint { FILE_ACTION_RENAMED_OLD_NAME = 0x00000004 } -enum : uint { FILE_ACTION_RENAMED_NEW_NAME = 0x00000005 } -enum : DWORD { MAILSLOT_NO_MESSAGE = cast(DWORD)-1 } -enum : DWORD { MAILSLOT_WAIT_FOREVER = cast(DWORD)-1 } -enum : uint { FILE_CASE_SENSITIVE_SEARCH = 0x00000001 } -enum : uint { FILE_CASE_PRESERVED_NAMES = 0x00000002 } -enum : uint { FILE_UNICODE_ON_DISK = 0x00000004 } -enum : uint { FILE_PERSISTENT_ACLS = 0x00000008 } -enum : uint { FILE_FILE_COMPRESSION = 0x00000010 } -enum : uint { FILE_VOLUME_QUOTAS = 0x00000020 } -enum : uint { FILE_SUPPORTS_SPARSE_FILES = 0x00000040 } -enum : uint { FILE_SUPPORTS_REPARSE_POINTS = 0x00000080 } -enum : uint { FILE_SUPPORTS_REMOTE_STORAGE = 0x00000100 } -enum : uint { FILE_VOLUME_IS_COMPRESSED = 0x00008000 } -enum : uint { FILE_SUPPORTS_OBJECT_IDS = 0x00010000 } -enum : uint { FILE_SUPPORTS_ENCRYPTION = 0x00020000 } -enum : uint { FILE_NAMED_STREAMS = 0x00040000 } -enum : uint { FILE_READ_ONLY_VOLUME = 0x00080000 } - -struct _FILE_NOTIFY_INFORMATION { - DWORD NextEntryOffset; - DWORD Action; - DWORD FileNameLength; - WCHAR FileName[1]; -} -alias _FILE_NOTIFY_INFORMATION FILE_NOTIFY_INFORMATION; -alias _FILE_NOTIFY_INFORMATION* PFILE_NOTIFY_INFORMATION; - -union _FILE_SEGMENT_ELEMENT { - PVOID64 Buffer; - ULONGLONG Alignment; -} -alias _FILE_SEGMENT_ELEMENT FILE_SEGMENT_ELEMENT; -alias _FILE_SEGMENT_ELEMENT* PFILE_SEGMENT_ELEMENT; - -struct _REPARSE_GUID_DATA_BUFFER { - DWORD ReparseTag; - WORD ReparseDataLength; - WORD Reserved; - GUID ReparseGuid; -struct { - BYTE DataBuffer[1]; -} - -} -alias _REPARSE_GUID_DATA_BUFFER REPARSE_GUID_DATA_BUFFER; -alias _REPARSE_GUID_DATA_BUFFER* PREPARSE_GUID_DATA_BUFFER; - -// #define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_GUID_DATA_BUFFER, GenericReparseBuffer) - -enum : uint { MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024 } - -enum : uint { IO_REPARSE_TAG_RESERVED_ZERO = 0 } -enum : uint { IO_REPARSE_TAG_RESERVED_ONE = 1 } - -alias IO_REPARSE_TAG_RESERVED_ONE IO_REPARSE_TAG_RESERVED_RANGE; - -// #define IsReparseTagMicrosoft(_tag) ( ((_tag) & 0x80000000) ) - -// #define IsReparseTagNameSurrogate(_tag) ( ((_tag) & 0x20000000) ) - -enum : uint { IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003 } -enum : uint { IO_REPARSE_TAG_HSM = 0xC0000004 } -enum : uint { IO_REPARSE_TAG_SIS = 0x80000007 } -enum : uint { IO_REPARSE_TAG_FILTER_MANAGER = 0x8000000B } -enum : uint { IO_COMPLETION_MODIFY_STATE = 0x0002 } -enum : uint { IO_COMPLETION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 } -enum : uint { DUPLICATE_CLOSE_SOURCE = 0x00000001 } -enum : uint { DUPLICATE_SAME_ACCESS = 0x00000002 } - -alias int _SYSTEM_POWER_STATE; -enum { - PowerSystemUnspecified = 0, - PowerSystemWorking = 1, - PowerSystemSleeping1 = 2, - PowerSystemSleeping2 = 3, - PowerSystemSleeping3 = 4, - PowerSystemHibernate = 5, - PowerSystemShutdown = 6, - PowerSystemMaximum = 7, -} -alias _SYSTEM_POWER_STATE SYSTEM_POWER_STATE; -alias _SYSTEM_POWER_STATE* PSYSTEM_POWER_STATE; - -enum : uint { POWER_SYSTEM_MAXIMUM = 7 } - -enum _4 { - PowerActionNone = 0, - PowerActionReserved, - PowerActionSleep, - PowerActionHibernate, - PowerActionShutdown, - PowerActionShutdownReset, - PowerActionShutdownOff, - PowerActionWarmEject, -} -alias _4 POWER_ACTION; -alias _4* PPOWER_ACTION; - -alias int _DEVICE_POWER_STATE; -enum { - PowerDeviceUnspecified = 0, - PowerDeviceD0, - PowerDeviceD1, - PowerDeviceD2, - PowerDeviceD3, - PowerDeviceMaximum, -} -alias _DEVICE_POWER_STATE DEVICE_POWER_STATE; -alias _DEVICE_POWER_STATE* PDEVICE_POWER_STATE; - -enum : DWORD { ES_SYSTEM_REQUIRED = 0x00000001 } -enum : DWORD { ES_DISPLAY_REQUIRED = 0x00000002 } -enum : DWORD { ES_USER_PRESENT = 0x00000004 } -enum : DWORD { ES_CONTINUOUS = 0x80000000 } - -alias DWORD EXECUTION_STATE; - -enum _5 { - LT_DONT_CARE, - LT_LOWEST_LATENCY, -} -alias _5 LATENCY_TIME; - -enum : uint { PDCAP_D0_SUPPORTED = 0x00000001 } -enum : uint { PDCAP_D1_SUPPORTED = 0x00000002 } -enum : uint { PDCAP_D2_SUPPORTED = 0x00000004 } -enum : uint { PDCAP_D3_SUPPORTED = 0x00000008 } -enum : uint { PDCAP_WAKE_FROM_D0_SUPPORTED = 0x00000010 } -enum : uint { PDCAP_WAKE_FROM_D1_SUPPORTED = 0x00000020 } -enum : uint { PDCAP_WAKE_FROM_D2_SUPPORTED = 0x00000040 } -enum : uint { PDCAP_WAKE_FROM_D3_SUPPORTED = 0x00000080 } -enum : uint { PDCAP_WARM_EJECT_SUPPORTED = 0x00000100 } - -struct CM_Power_Data_s { - DWORD PD_Size; - DEVICE_POWER_STATE PD_MostRecentPowerState; - DWORD PD_Capabilities; - DWORD PD_D1Latency; - DWORD PD_D2Latency; - DWORD PD_D3Latency; - DEVICE_POWER_STATE PD_PowerStateMapping[POWER_SYSTEM_MAXIMUM]; - SYSTEM_POWER_STATE PD_DeepestSystemWake; -} -alias CM_Power_Data_s CM_POWER_DATA; -alias CM_Power_Data_s* PCM_POWER_DATA; - -enum _6 { - SystemPowerPolicyAc, - SystemPowerPolicyDc, - VerifySystemPolicyAc, - VerifySystemPolicyDc, - SystemPowerCapabilities, - SystemBatteryState, - SystemPowerStateHandler, - ProcessorStateHandler, - SystemPowerPolicyCurrent, - AdministratorPowerPolicy, - SystemReserveHiberFile, - ProcessorInformation, - SystemPowerInformation, - ProcessorStateHandler2, - LastWakeTime, - LastSleepTime, - SystemExecutionState, - SystemPowerStateNotifyHandler, - ProcessorPowerPolicyAc, - ProcessorPowerPolicyDc, - VerifyProcessorPowerPolicyAc, - VerifyProcessorPowerPolicyDc, - ProcessorPowerPolicyCurrent, -} -alias _6 POWER_INFORMATION_LEVEL; - -struct _7 { - DWORD Granularity; - DWORD Capacity; -} -alias _7 BATTERY_REPORTING_SCALE; -alias _7* PBATTERY_REPORTING_SCALE; - -struct _8 { - POWER_ACTION Action; - DWORD Flags; - DWORD EventCode; -} -alias _8 POWER_ACTION_POLICY; -alias _8* PPOWER_ACTION_POLICY; - -enum : uint { POWER_ACTION_QUERY_ALLOWED = 0x00000001 } -enum : uint { POWER_ACTION_UI_ALLOWED = 0x00000002 } -enum : uint { POWER_ACTION_OVERRIDE_APPS = 0x00000004 } -enum : uint { POWER_ACTION_LIGHTEST_FIRST = 0x10000000 } -enum : uint { POWER_ACTION_LOCK_CONSOLE = 0x20000000 } -enum : uint { POWER_ACTION_DISABLE_WAKES = 0x40000000 } -enum : uint { POWER_ACTION_CRITICAL = 0x80000000 } - -enum : uint { POWER_LEVEL_USER_NOTIFY_TEXT = 0x00000001 } -enum : uint { POWER_LEVEL_USER_NOTIFY_SOUND = 0x00000002 } -enum : uint { POWER_LEVEL_USER_NOTIFY_EXEC = 0x00000004 } -enum : uint { POWER_USER_NOTIFY_BUTTON = 0x00000008 } -enum : uint { POWER_USER_NOTIFY_SHUTDOWN = 0x00000010 } -enum : uint { POWER_FORCE_TRIGGER_RESET = 0x80000000 } - -struct _9 { - BOOLEAN Enable; - BYTE Spare[3]; - DWORD BatteryLevel; - POWER_ACTION_POLICY PowerPolicy; - SYSTEM_POWER_STATE MinSystemState; -} -alias _9 SYSTEM_POWER_LEVEL; -alias _9* PSYSTEM_POWER_LEVEL; - -enum : uint { NUM_DISCHARGE_POLICIES = 4 } -enum : uint { DISCHARGE_POLICY_CRITICAL = 0 } -enum : uint { DISCHARGE_POLICY_LOW = 1 } - -enum : uint { PO_THROTTLE_NONE = 0 } -enum : uint { PO_THROTTLE_CONSTANT = 1 } -enum : uint { PO_THROTTLE_DEGRADE = 2 } -enum : uint { PO_THROTTLE_ADAPTIVE = 3 } -enum : uint { PO_THROTTLE_MAXIMUM = 4 } - -struct _SYSTEM_POWER_POLICY { - DWORD Revision; - - POWER_ACTION_POLICY PowerButton; - POWER_ACTION_POLICY SleepButton; - POWER_ACTION_POLICY LidClose; - SYSTEM_POWER_STATE LidOpenWake; - DWORD Reserved; - POWER_ACTION_POLICY Idle; - DWORD IdleTimeout; - BYTE IdleSensitivity; - - BYTE DynamicThrottle; - BYTE Spare2[2]; - SYSTEM_POWER_STATE MinSleep; - SYSTEM_POWER_STATE MaxSleep; - SYSTEM_POWER_STATE ReducedLatencySleep; - DWORD WinLogonFlags; - DWORD Spare3; - DWORD DozeS4Timeout; - DWORD BroadcastCapacityResolution; - SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES]; - DWORD VideoTimeout; - BOOLEAN VideoDimDisplay; - DWORD VideoReserved[3]; - DWORD SpindownTimeout; - BOOLEAN OptimizeForPower; - BYTE FanThrottleTolerance; - BYTE ForcedThrottle; - BYTE MinThrottle; - POWER_ACTION_POLICY OverThrottled; -} -alias _SYSTEM_POWER_POLICY SYSTEM_POWER_POLICY; -alias _SYSTEM_POWER_POLICY* PSYSTEM_POWER_POLICY; - -struct _PROCESSOR_POWER_POLICY_INFO { - - DWORD TimeCheck; - DWORD DemoteLimit; - DWORD PromoteLimit; - - BYTE DemotePercent; - BYTE PromotePercent; - BYTE Spare[2]; -// DWORD AllowDemotion:1; -// DWORD AllowPromotion:1; -// DWORD Reserved:30; - -} -alias _PROCESSOR_POWER_POLICY_INFO PROCESSOR_POWER_POLICY_INFO; -alias _PROCESSOR_POWER_POLICY_INFO* PPROCESSOR_POWER_POLICY_INFO; - -struct _PROCESSOR_POWER_POLICY { - DWORD Revision; - - BYTE DynamicThrottle; - BYTE Spare[3]; - DWORD Reserved; - - DWORD PolicyCount; - PROCESSOR_POWER_POLICY_INFO Policy[3]; -} -alias _PROCESSOR_POWER_POLICY PROCESSOR_POWER_POLICY; -alias _PROCESSOR_POWER_POLICY* PPROCESSOR_POWER_POLICY; - -struct _ADMINISTRATOR_POWER_POLICY { - - SYSTEM_POWER_STATE MinSleep; - SYSTEM_POWER_STATE MaxSleep; - DWORD MinVideoTimeout; - DWORD MaxVideoTimeout; - DWORD MinSpindownTimeout; - DWORD MaxSpindownTimeout; -} -alias _ADMINISTRATOR_POWER_POLICY ADMINISTRATOR_POWER_POLICY; -alias _ADMINISTRATOR_POWER_POLICY* PADMINISTRATOR_POWER_POLICY; - -struct _10 { - - BOOLEAN PowerButtonPresent; - BOOLEAN SleepButtonPresent; - BOOLEAN LidPresent; - BOOLEAN SystemS1; - BOOLEAN SystemS2; - BOOLEAN SystemS3; - BOOLEAN SystemS4; - BOOLEAN SystemS5; - BOOLEAN HiberFilePresent; - BOOLEAN FullWake; - BOOLEAN VideoDimPresent; - BOOLEAN ApmPresent; - BOOLEAN UpsPresent; - BOOLEAN ThermalControl; - BOOLEAN ProcessorThrottle; - BYTE ProcessorMinThrottle; - BYTE ProcessorMaxThrottle; - BYTE spare2[4]; - BOOLEAN DiskSpinDown; - BYTE spare3[8]; - BOOLEAN SystemBatteriesPresent; - BOOLEAN BatteriesAreShortTerm; - BATTERY_REPORTING_SCALE BatteryScale[3]; - SYSTEM_POWER_STATE AcOnLineWake; - SYSTEM_POWER_STATE SoftLidWake; - SYSTEM_POWER_STATE RtcWake; - SYSTEM_POWER_STATE MinDeviceWakeState; - SYSTEM_POWER_STATE DefaultLowLatencyWake; -} -alias _10 SYSTEM_POWER_CAPABILITIES; -alias _10* PSYSTEM_POWER_CAPABILITIES; - -struct _11 { - BOOLEAN AcOnLine; - BOOLEAN BatteryPresent; - BOOLEAN Charging; - BOOLEAN Discharging; - BOOLEAN Spare1[4]; - DWORD MaxCapacity; - DWORD RemainingCapacity; - DWORD Rate; - DWORD EstimatedTime; - DWORD DefaultAlert1; - DWORD DefaultAlert2; -} -alias _11 SYSTEM_BATTERY_STATE; -alias _11* PSYSTEM_BATTERY_STATE; - -// #ifndef _MAC - -align(4): - -enum : uint { IMAGE_DOS_SIGNATURE = 0x5A4D } -enum : uint { IMAGE_OS2_SIGNATURE = 0x454E } -enum : uint { IMAGE_OS2_SIGNATURE_LE = 0x454C } -enum : uint { IMAGE_VXD_SIGNATURE = 0x454C } -enum : uint { IMAGE_NT_SIGNATURE = 0x00004550 } - -align(2): - -// #else - -// #... - -// #... -// #... -// #... -// #... -// #endif - -struct _IMAGE_DOS_HEADER { - WORD e_magic; - WORD e_cblp; - WORD e_cp; - WORD e_crlc; - WORD e_cparhdr; - WORD e_minalloc; - WORD e_maxalloc; - WORD e_ss; - WORD e_sp; - WORD e_csum; - WORD e_ip; - WORD e_cs; - WORD e_lfarlc; - WORD e_ovno; - WORD e_res[4]; - WORD e_oemid; - WORD e_oeminfo; - WORD e_res2[10]; - LONG e_lfanew; -} -alias _IMAGE_DOS_HEADER IMAGE_DOS_HEADER; -alias _IMAGE_DOS_HEADER* PIMAGE_DOS_HEADER; - -struct _IMAGE_OS2_HEADER { - WORD ne_magic; - CHAR ne_ver; - CHAR ne_rev; - WORD ne_enttab; - WORD ne_cbenttab; - LONG ne_crc; - WORD ne_flags; - WORD ne_autodata; - WORD ne_heap; - WORD ne_stack; - LONG ne_csip; - LONG ne_sssp; - WORD ne_cseg; - WORD ne_cmod; - WORD ne_cbnrestab; - WORD ne_segtab; - WORD ne_rsrctab; - WORD ne_restab; - WORD ne_modtab; - WORD ne_imptab; - LONG ne_nrestab; - WORD ne_cmovent; - WORD ne_align; - WORD ne_cres; - BYTE ne_exetyp; - BYTE ne_flagsothers; - WORD ne_pretthunks; - WORD ne_psegrefbytes; - WORD ne_swaparea; - WORD ne_expver; -} -alias _IMAGE_OS2_HEADER IMAGE_OS2_HEADER; -alias _IMAGE_OS2_HEADER* PIMAGE_OS2_HEADER; - -struct _IMAGE_VXD_HEADER { - WORD e32_magic; - BYTE e32_border; - BYTE e32_worder; - DWORD e32_level; - WORD e32_cpu; - WORD e32_os; - DWORD e32_ver; - DWORD e32_mflags; - DWORD e32_mpages; - DWORD e32_startobj; - DWORD e32_eip; - DWORD e32_stackobj; - DWORD e32_esp; - DWORD e32_pagesize; - DWORD e32_lastpagesize; - DWORD e32_fixupsize; - DWORD e32_fixupsum; - DWORD e32_ldrsize; - DWORD e32_ldrsum; - DWORD e32_objtab; - DWORD e32_objcnt; - DWORD e32_objmap; - DWORD e32_itermap; - DWORD e32_rsrctab; - DWORD e32_rsrccnt; - DWORD e32_restab; - DWORD e32_enttab; - DWORD e32_dirtab; - DWORD e32_dircnt; - DWORD e32_fpagetab; - DWORD e32_frectab; - DWORD e32_impmod; - DWORD e32_impmodcnt; - DWORD e32_impproc; - DWORD e32_pagesum; - DWORD e32_datapage; - DWORD e32_preload; - DWORD e32_nrestab; - DWORD e32_cbnrestab; - DWORD e32_nressum; - DWORD e32_autodata; - DWORD e32_debuginfo; - DWORD e32_debuglen; - DWORD e32_instpreload; - DWORD e32_instdemand; - DWORD e32_heapsize; - BYTE e32_res3[12]; - DWORD e32_winresoff; - DWORD e32_winreslen; - WORD e32_devid; - WORD e32_ddkver; -} -alias _IMAGE_VXD_HEADER IMAGE_VXD_HEADER; -alias _IMAGE_VXD_HEADER* PIMAGE_VXD_HEADER; - -// #ifndef _MAC -align: -// #endif - -struct _IMAGE_FILE_HEADER { - WORD Machine; - WORD NumberOfSections; - DWORD TimeDateStamp; - DWORD PointerToSymbolTable; - DWORD NumberOfSymbols; - WORD SizeOfOptionalHeader; - WORD Characteristics; -} -alias _IMAGE_FILE_HEADER IMAGE_FILE_HEADER; -alias _IMAGE_FILE_HEADER* PIMAGE_FILE_HEADER; - -enum : uint { IMAGE_SIZEOF_FILE_HEADER = 20 } - -enum : uint { IMAGE_FILE_RELOCS_STRIPPED = 0x0001 } -enum : uint { IMAGE_FILE_EXECUTABLE_IMAGE = 0x0002 } -enum : uint { IMAGE_FILE_LINE_NUMS_STRIPPED = 0x0004 } -enum : uint { IMAGE_FILE_LOCAL_SYMS_STRIPPED = 0x0008 } -enum : uint { IMAGE_FILE_AGGRESIVE_WS_TRIM = 0x0010 } -enum : uint { IMAGE_FILE_LARGE_ADDRESS_AWARE = 0x0020 } -enum : uint { IMAGE_FILE_BYTES_REVERSED_LO = 0x0080 } -enum : uint { IMAGE_FILE_32BIT_MACHINE = 0x0100 } -enum : uint { IMAGE_FILE_DEBUG_STRIPPED = 0x0200 } -enum : uint { IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 0x0400 } -enum : uint { IMAGE_FILE_NET_RUN_FROM_SWAP = 0x0800 } -enum : uint { IMAGE_FILE_SYSTEM = 0x1000 } -enum : uint { IMAGE_FILE_DLL = 0x2000 } -enum : uint { IMAGE_FILE_UP_SYSTEM_ONLY = 0x4000 } -enum : uint { IMAGE_FILE_BYTES_REVERSED_HI = 0x8000 } - -enum : uint { IMAGE_FILE_MACHINE_UNKNOWN = 0 } -enum : uint { IMAGE_FILE_MACHINE_I386 = 0x014c } -enum : uint { IMAGE_FILE_MACHINE_R3000 = 0x0162 } -enum : uint { IMAGE_FILE_MACHINE_R4000 = 0x0166 } -enum : uint { IMAGE_FILE_MACHINE_R10000 = 0x0168 } -enum : uint { IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x0169 } -enum : uint { IMAGE_FILE_MACHINE_ALPHA = 0x0184 } -enum : uint { IMAGE_FILE_MACHINE_SH3 = 0x01a2 } -enum : uint { IMAGE_FILE_MACHINE_SH3DSP = 0x01a3 } -enum : uint { IMAGE_FILE_MACHINE_SH3E = 0x01a4 } -enum : uint { IMAGE_FILE_MACHINE_SH4 = 0x01a6 } -enum : uint { IMAGE_FILE_MACHINE_SH5 = 0x01a8 } -enum : uint { IMAGE_FILE_MACHINE_ARM = 0x01c0 } -enum : uint { IMAGE_FILE_MACHINE_THUMB = 0x01c2 } -enum : uint { IMAGE_FILE_MACHINE_AM33 = 0x01d3 } -enum : uint { IMAGE_FILE_MACHINE_POWERPC = 0x01F0 } -enum : uint { IMAGE_FILE_MACHINE_POWERPCFP = 0x01f1 } -enum : uint { IMAGE_FILE_MACHINE_IA64 = 0x0200 } -enum : uint { IMAGE_FILE_MACHINE_MIPS16 = 0x0266 } -enum : uint { IMAGE_FILE_MACHINE_ALPHA64 = 0x0284 } -enum : uint { IMAGE_FILE_MACHINE_MIPSFPU = 0x0366 } -enum : uint { IMAGE_FILE_MACHINE_MIPSFPU16 = 0x0466 } -alias IMAGE_FILE_MACHINE_ALPHA64 IMAGE_FILE_MACHINE_AXP64; -enum : uint { IMAGE_FILE_MACHINE_TRICORE = 0x0520 } -enum : uint { IMAGE_FILE_MACHINE_CEF = 0x0CEF } -enum : uint { IMAGE_FILE_MACHINE_EBC = 0x0EBC } -enum : uint { IMAGE_FILE_MACHINE_AMD64 = 0x8664 } -enum : uint { IMAGE_FILE_MACHINE_M32R = 0x9041 } -enum : uint { IMAGE_FILE_MACHINE_CEE = 0xC0EE } - -struct _IMAGE_DATA_DIRECTORY { - DWORD VirtualAddress; - DWORD Size; -} -alias _IMAGE_DATA_DIRECTORY IMAGE_DATA_DIRECTORY; -alias _IMAGE_DATA_DIRECTORY* PIMAGE_DATA_DIRECTORY; - -enum : uint { IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16 } - -struct _IMAGE_OPTIONAL_HEADER { - - WORD Magic; - BYTE MajorLinkerVersion; - BYTE MinorLinkerVersion; - DWORD SizeOfCode; - DWORD SizeOfInitializedData; - DWORD SizeOfUninitializedData; - DWORD AddressOfEntryPoint; - DWORD BaseOfCode; - DWORD BaseOfData; - - DWORD ImageBase; - DWORD SectionAlignment; - DWORD FileAlignment; - WORD MajorOperatingSystemVersion; - WORD MinorOperatingSystemVersion; - WORD MajorImageVersion; - WORD MinorImageVersion; - WORD MajorSubsystemVersion; - WORD MinorSubsystemVersion; - DWORD Win32VersionValue; - DWORD SizeOfImage; - DWORD SizeOfHeaders; - DWORD CheckSum; - WORD Subsystem; - WORD DllCharacteristics; - DWORD SizeOfStackReserve; - DWORD SizeOfStackCommit; - DWORD SizeOfHeapReserve; - DWORD SizeOfHeapCommit; - DWORD LoaderFlags; - DWORD NumberOfRvaAndSizes; - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; -} -alias _IMAGE_OPTIONAL_HEADER IMAGE_OPTIONAL_HEADER32; -alias _IMAGE_OPTIONAL_HEADER* PIMAGE_OPTIONAL_HEADER32; - -struct _IMAGE_ROM_OPTIONAL_HEADER { - WORD Magic; - BYTE MajorLinkerVersion; - BYTE MinorLinkerVersion; - DWORD SizeOfCode; - DWORD SizeOfInitializedData; - DWORD SizeOfUninitializedData; - DWORD AddressOfEntryPoint; - DWORD BaseOfCode; - DWORD BaseOfData; - DWORD BaseOfBss; - DWORD GprMask; - DWORD CprMask[4]; - DWORD GpValue; -} -alias _IMAGE_ROM_OPTIONAL_HEADER IMAGE_ROM_OPTIONAL_HEADER; -alias _IMAGE_ROM_OPTIONAL_HEADER* PIMAGE_ROM_OPTIONAL_HEADER; - -struct _IMAGE_OPTIONAL_HEADER64 { - WORD Magic; - BYTE MajorLinkerVersion; - BYTE MinorLinkerVersion; - DWORD SizeOfCode; - DWORD SizeOfInitializedData; - DWORD SizeOfUninitializedData; - DWORD AddressOfEntryPoint; - DWORD BaseOfCode; - ULONGLONG ImageBase; - DWORD SectionAlignment; - DWORD FileAlignment; - WORD MajorOperatingSystemVersion; - WORD MinorOperatingSystemVersion; - WORD MajorImageVersion; - WORD MinorImageVersion; - WORD MajorSubsystemVersion; - WORD MinorSubsystemVersion; - DWORD Win32VersionValue; - DWORD SizeOfImage; - DWORD SizeOfHeaders; - DWORD CheckSum; - WORD Subsystem; - WORD DllCharacteristics; - ULONGLONG SizeOfStackReserve; - ULONGLONG SizeOfStackCommit; - ULONGLONG SizeOfHeapReserve; - ULONGLONG SizeOfHeapCommit; - DWORD LoaderFlags; - DWORD NumberOfRvaAndSizes; - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; -} -alias _IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER64; -alias _IMAGE_OPTIONAL_HEADER64* PIMAGE_OPTIONAL_HEADER64; - -enum : uint { IMAGE_SIZEOF_ROM_OPTIONAL_HEADER = 56 } -enum : uint { IMAGE_SIZEOF_STD_OPTIONAL_HEADER = 28 } -enum : uint { IMAGE_SIZEOF_NT_OPTIONAL32_HEADER = 224 } -enum : uint { IMAGE_SIZEOF_NT_OPTIONAL64_HEADER = 240 } - -enum : uint { IMAGE_NT_OPTIONAL_HDR32_MAGIC = 0x10b } -enum : uint { IMAGE_NT_OPTIONAL_HDR64_MAGIC = 0x20b } -enum : uint { IMAGE_ROM_OPTIONAL_HDR_MAGIC = 0x107 } - -// #ifdef _WIN64 -// ... -// #... -// #... -// #else -alias IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER; -alias PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER; -alias IMAGE_SIZEOF_NT_OPTIONAL32_HEADER IMAGE_SIZEOF_NT_OPTIONAL_HEADER; -alias IMAGE_NT_OPTIONAL_HDR32_MAGIC IMAGE_NT_OPTIONAL_HDR_MAGIC; -// #endif - -struct _IMAGE_NT_HEADERS64 { - DWORD Signature; - IMAGE_FILE_HEADER FileHeader; - IMAGE_OPTIONAL_HEADER64 OptionalHeader; -} -alias _IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS64; -alias _IMAGE_NT_HEADERS64* PIMAGE_NT_HEADERS64; - -struct _IMAGE_NT_HEADERS { - DWORD Signature; - IMAGE_FILE_HEADER FileHeader; - IMAGE_OPTIONAL_HEADER32 OptionalHeader; -} -alias _IMAGE_NT_HEADERS IMAGE_NT_HEADERS32; -alias _IMAGE_NT_HEADERS* PIMAGE_NT_HEADERS32; - -struct _IMAGE_ROM_HEADERS { - IMAGE_FILE_HEADER FileHeader; - IMAGE_ROM_OPTIONAL_HEADER OptionalHeader; -} -alias _IMAGE_ROM_HEADERS IMAGE_ROM_HEADERS; -alias _IMAGE_ROM_HEADERS* PIMAGE_ROM_HEADERS; - -// #ifdef _WIN64 -// ... -// #else -alias IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS; -alias PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS; -// #endif - -// #define IMAGE_FIRST_SECTION( ntheader ) ((PIMAGE_SECTION_HEADER) ((ULONG_PTR)ntheader + FIELD_OFFSET( IMAGE_NT_HEADERS, OptionalHeader ) + ((PIMAGE_NT_HEADERS)(ntheader))->FileHeader.SizeOfOptionalHeader )) - -enum : uint { IMAGE_SUBSYSTEM_UNKNOWN = 0 } -enum : uint { IMAGE_SUBSYSTEM_NATIVE = 1 } -enum : uint { IMAGE_SUBSYSTEM_WINDOWS_GUI = 2 } -enum : uint { IMAGE_SUBSYSTEM_WINDOWS_CUI = 3 } -enum : uint { IMAGE_SUBSYSTEM_OS2_CUI = 5 } -enum : uint { IMAGE_SUBSYSTEM_POSIX_CUI = 7 } -enum : uint { IMAGE_SUBSYSTEM_NATIVE_WINDOWS = 8 } -enum : uint { IMAGE_SUBSYSTEM_WINDOWS_CE_GUI = 9 } -enum : uint { IMAGE_SUBSYSTEM_EFI_APPLICATION = 10 } -enum : uint { IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER = 11 } -enum : uint { IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER = 12 } -enum : uint { IMAGE_SUBSYSTEM_EFI_ROM = 13 } -enum : uint { IMAGE_SUBSYSTEM_XBOX = 14 } - -enum : uint { IMAGE_DLLCHARACTERISTICS_NO_BIND = 0x0800 } - -enum : uint { IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 0x2000 } - -enum : uint { IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000 } - -enum : uint { IMAGE_DIRECTORY_ENTRY_EXPORT = 0 } -enum : uint { IMAGE_DIRECTORY_ENTRY_IMPORT = 1 } -enum : uint { IMAGE_DIRECTORY_ENTRY_RESOURCE = 2 } -enum : uint { IMAGE_DIRECTORY_ENTRY_EXCEPTION = 3 } -enum : uint { IMAGE_DIRECTORY_ENTRY_SECURITY = 4 } -enum : uint { IMAGE_DIRECTORY_ENTRY_BASERELOC = 5 } -enum : uint { IMAGE_DIRECTORY_ENTRY_DEBUG = 6 } - -enum : uint { IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7 } -enum : uint { IMAGE_DIRECTORY_ENTRY_GLOBALPTR = 8 } -enum : uint { IMAGE_DIRECTORY_ENTRY_TLS = 9 } -enum : uint { IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = 10 } -enum : uint { IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = 11 } -enum : uint { IMAGE_DIRECTORY_ENTRY_IAT = 12 } -enum : uint { IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT = 13 } -enum : uint { IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR = 14 } - -struct ANON_OBJECT_HEADER { - WORD Sig1; - WORD Sig2; - WORD Version; - WORD Machine; - DWORD TimeDateStamp; - CLSID ClassID; - DWORD SizeOfData; -} - -enum : uint { IMAGE_SIZEOF_SHORT_NAME = 8 } - -struct _IMAGE_SECTION_HEADER { - BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; -union { - DWORD PhysicalAddress; - DWORD VirtualSize; -} - - DWORD VirtualAddress; - DWORD SizeOfRawData; - DWORD PointerToRawData; - DWORD PointerToRelocations; - DWORD PointerToLinenumbers; - WORD NumberOfRelocations; - WORD NumberOfLinenumbers; - DWORD Characteristics; -} -alias _IMAGE_SECTION_HEADER IMAGE_SECTION_HEADER; -alias _IMAGE_SECTION_HEADER* PIMAGE_SECTION_HEADER; - -enum : uint { IMAGE_SIZEOF_SECTION_HEADER = 40 } - -enum : uint { IMAGE_SCN_TYPE_NO_PAD = 0x00000008 } - -enum : uint { IMAGE_SCN_CNT_CODE = 0x00000020 } -enum : uint { IMAGE_SCN_CNT_INITIALIZED_DATA = 0x00000040 } -enum : uint { IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080 } - -enum : uint { IMAGE_SCN_LNK_OTHER = 0x00000100 } -enum : uint { IMAGE_SCN_LNK_INFO = 0x00000200 } - -enum : uint { IMAGE_SCN_LNK_REMOVE = 0x00000800 } -enum : uint { IMAGE_SCN_LNK_COMDAT = 0x00001000 } - -enum : uint { IMAGE_SCN_NO_DEFER_SPEC_EXC = 0x00004000 } -enum : uint { IMAGE_SCN_GPREL = 0x00008000 } -enum : uint { IMAGE_SCN_MEM_FARDATA = 0x00008000 } - -enum : uint { IMAGE_SCN_MEM_PURGEABLE = 0x00020000 } -enum : uint { IMAGE_SCN_MEM_16BIT = 0x00020000 } -enum : uint { IMAGE_SCN_MEM_LOCKED = 0x00040000 } -enum : uint { IMAGE_SCN_MEM_PRELOAD = 0x00080000 } - -enum : uint { IMAGE_SCN_ALIGN_1BYTES = 0x00100000 } -enum : uint { IMAGE_SCN_ALIGN_2BYTES = 0x00200000 } -enum : uint { IMAGE_SCN_ALIGN_4BYTES = 0x00300000 } -enum : uint { IMAGE_SCN_ALIGN_8BYTES = 0x00400000 } -enum : uint { IMAGE_SCN_ALIGN_16BYTES = 0x00500000 } -enum : uint { IMAGE_SCN_ALIGN_32BYTES = 0x00600000 } -enum : uint { IMAGE_SCN_ALIGN_64BYTES = 0x00700000 } -enum : uint { IMAGE_SCN_ALIGN_128BYTES = 0x00800000 } -enum : uint { IMAGE_SCN_ALIGN_256BYTES = 0x00900000 } -enum : uint { IMAGE_SCN_ALIGN_512BYTES = 0x00A00000 } -enum : uint { IMAGE_SCN_ALIGN_1024BYTES = 0x00B00000 } -enum : uint { IMAGE_SCN_ALIGN_2048BYTES = 0x00C00000 } -enum : uint { IMAGE_SCN_ALIGN_4096BYTES = 0x00D00000 } -enum : uint { IMAGE_SCN_ALIGN_8192BYTES = 0x00E00000 } - -enum : uint { IMAGE_SCN_ALIGN_MASK = 0x00F00000 } - -enum : uint { IMAGE_SCN_LNK_NRELOC_OVFL = 0x01000000 } -enum : uint { IMAGE_SCN_MEM_DISCARDABLE = 0x02000000 } -enum : uint { IMAGE_SCN_MEM_NOT_CACHED = 0x04000000 } -enum : uint { IMAGE_SCN_MEM_NOT_PAGED = 0x08000000 } -enum : uint { IMAGE_SCN_MEM_SHARED = 0x10000000 } -enum : uint { IMAGE_SCN_MEM_EXECUTE = 0x20000000 } -enum : uint { IMAGE_SCN_MEM_READ = 0x40000000 } -enum : uint { IMAGE_SCN_MEM_WRITE = 0x80000000 } - -enum : uint { IMAGE_SCN_SCALE_INDEX = 0x00000001 } - -// #ifndef _MAC -align(2): -// #endif - -struct _IMAGE_SYMBOL { -union { - BYTE ShortName[8]; -struct { - DWORD Short; - DWORD Long; -} - - DWORD LongName[2]; -} - - DWORD Value; - SHORT SectionNumber; - WORD Type; - BYTE StorageClass; - BYTE NumberOfAuxSymbols; -} -alias _IMAGE_SYMBOL IMAGE_SYMBOL; - -alias IMAGE_SYMBOL* PIMAGE_SYMBOL; - -enum : uint { IMAGE_SIZEOF_SYMBOL = 18 } - -enum : SHORT { IMAGE_SYM_UNDEFINED = 0 } -enum : SHORT { IMAGE_SYM_ABSOLUTE = -1 } -enum : SHORT { IMAGE_SYM_DEBUG = -2 } -enum : uint { IMAGE_SYM_SECTION_MAX = 0xFEFF } - -enum : uint { IMAGE_SYM_TYPE_NULL = 0x0000 } -enum : uint { IMAGE_SYM_TYPE_VOID = 0x0001 } -enum : uint { IMAGE_SYM_TYPE_CHAR = 0x0002 } -enum : uint { IMAGE_SYM_TYPE_SHORT = 0x0003 } -enum : uint { IMAGE_SYM_TYPE_INT = 0x0004 } -enum : uint { IMAGE_SYM_TYPE_LONG = 0x0005 } -enum : uint { IMAGE_SYM_TYPE_FLOAT = 0x0006 } -enum : uint { IMAGE_SYM_TYPE_DOUBLE = 0x0007 } -enum : uint { IMAGE_SYM_TYPE_STRUCT = 0x0008 } -enum : uint { IMAGE_SYM_TYPE_UNION = 0x0009 } -enum : uint { IMAGE_SYM_TYPE_ENUM = 0x000A } -enum : uint { IMAGE_SYM_TYPE_MOE = 0x000B } -enum : uint { IMAGE_SYM_TYPE_BYTE = 0x000C } -enum : uint { IMAGE_SYM_TYPE_WORD = 0x000D } -enum : uint { IMAGE_SYM_TYPE_UINT = 0x000E } -enum : uint { IMAGE_SYM_TYPE_DWORD = 0x000F } -enum : uint { IMAGE_SYM_TYPE_PCODE = 0x8000 } - -enum : uint { IMAGE_SYM_DTYPE_NULL = 0 } -enum : uint { IMAGE_SYM_DTYPE_POINTER = 1 } -enum : uint { IMAGE_SYM_DTYPE_FUNCTION = 2 } -enum : uint { IMAGE_SYM_DTYPE_ARRAY = 3 } - -enum : BYTE { IMAGE_SYM_CLASS_END_OF_FUNCTION = cast(BYTE)-1 } -enum : uint { IMAGE_SYM_CLASS_NULL = 0x0000 } -enum : uint { IMAGE_SYM_CLASS_AUTOMATIC = 0x0001 } -enum : uint { IMAGE_SYM_CLASS_EXTERNAL = 0x0002 } -enum : uint { IMAGE_SYM_CLASS_STATIC = 0x0003 } -enum : uint { IMAGE_SYM_CLASS_REGISTER = 0x0004 } -enum : uint { IMAGE_SYM_CLASS_EXTERNAL_DEF = 0x0005 } -enum : uint { IMAGE_SYM_CLASS_LABEL = 0x0006 } -enum : uint { IMAGE_SYM_CLASS_UNDEFINED_LABEL = 0x0007 } -enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_STRUCT = 0x0008 } -enum : uint { IMAGE_SYM_CLASS_ARGUMENT = 0x0009 } -enum : uint { IMAGE_SYM_CLASS_STRUCT_TAG = 0x000A } -enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_UNION = 0x000B } -enum : uint { IMAGE_SYM_CLASS_UNION_TAG = 0x000C } -enum : uint { IMAGE_SYM_CLASS_TYPE_DEFINITION = 0x000D } -enum : uint { IMAGE_SYM_CLASS_UNDEFINED_STATIC = 0x000E } -enum : uint { IMAGE_SYM_CLASS_ENUM_TAG = 0x000F } -enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_ENUM = 0x0010 } -enum : uint { IMAGE_SYM_CLASS_REGISTER_PARAM = 0x0011 } -enum : uint { IMAGE_SYM_CLASS_BIT_FIELD = 0x0012 } - -enum : uint { IMAGE_SYM_CLASS_FAR_EXTERNAL = 0x0044 } - -enum : uint { IMAGE_SYM_CLASS_BLOCK = 0x0064 } -enum : uint { IMAGE_SYM_CLASS_FUNCTION = 0x0065 } -enum : uint { IMAGE_SYM_CLASS_END_OF_STRUCT = 0x0066 } -enum : uint { IMAGE_SYM_CLASS_FILE = 0x0067 } - -enum : uint { IMAGE_SYM_CLASS_SECTION = 0x0068 } -enum : uint { IMAGE_SYM_CLASS_WEAK_EXTERNAL = 0x0069 } - -enum : uint { IMAGE_SYM_CLASS_CLR_TOKEN = 0x006B } - -enum : uint { N_BTMASK = 0x000F } -enum : uint { N_TMASK = 0x0030 } -enum : uint { N_TMASK1 = 0x00C0 } -enum : uint { N_TMASK2 = 0x00F0 } -enum : uint { N_BTSHFT = 4 } -enum : uint { N_TSHIFT = 2 } - -BYTE BTYPE(BYTE x){ return x & N_BTMASK; } - -// #ifndef ISPTR -bit ISPTR(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT); } -// #endif - -// #ifndef ISFCN -bit ISFCN(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT); } -// #endif - -// #ifndef ISARY -bit ISARY(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT); } -// #endif - -// #ifndef ISTAG -bit ISTAG(uint x){ return x == IMAGE_SYM_CLASS_STRUCT_TAG || x == IMAGE_SYM_CLASS_UNION_TAG || x == IMAGE_SYM_CLASS_ENUM_TAG; } -// #endif - -// #ifndef INCREF -uint INCREF(uint x){ return ((x&~N_BTMASK)<>> N_TSHIFT) & ~N_BTMASK)|(x & N_BTMASK); } -// #endif - -union _IMAGE_AUX_SYMBOL { -struct { - DWORD TagIndex; -union { -struct { - WORD Linenumber; - WORD Size; -} - - DWORD TotalSize; -} - -union { -struct { - DWORD PointerToLinenumber; - DWORD PointerToNextFunction; -} - -struct { - WORD Dimension[4]; -} - -} - - WORD TvIndex; -} - -struct { - BYTE Name[IMAGE_SIZEOF_SYMBOL]; -} - -struct { - DWORD Length; - WORD NumberOfRelocations; - WORD NumberOfLinenumbers; - DWORD CheckSum; - SHORT Number; - BYTE Selection; -} - -} -alias _IMAGE_AUX_SYMBOL IMAGE_AUX_SYMBOL; - -alias IMAGE_AUX_SYMBOL* PIMAGE_AUX_SYMBOL; - -enum : uint { IMAGE_SIZEOF_AUX_SYMBOL = 18 } - -alias int IMAGE_AUX_SYMBOL_TYPE; -enum { - IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF = 1, -} - -align(2): - -struct IMAGE_AUX_SYMBOL_TOKEN_DEF { - BYTE bAuxType; - BYTE bReserved; - DWORD SymbolTableIndex; - BYTE rgbReserved[12]; -} - -alias IMAGE_AUX_SYMBOL_TOKEN_DEF* PIMAGE_AUX_SYMBOL_TOKEN_DEF; - -align: - -enum : uint { IMAGE_COMDAT_SELECT_NODUPLICATES = 1 } -enum : uint { IMAGE_COMDAT_SELECT_ANY = 2 } -enum : uint { IMAGE_COMDAT_SELECT_SAME_SIZE = 3 } -enum : uint { IMAGE_COMDAT_SELECT_EXACT_MATCH = 4 } -enum : uint { IMAGE_COMDAT_SELECT_ASSOCIATIVE = 5 } -enum : uint { IMAGE_COMDAT_SELECT_LARGEST = 6 } -enum : uint { IMAGE_COMDAT_SELECT_NEWEST = 7 } - -enum : uint { IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1 } -enum : uint { IMAGE_WEAK_EXTERN_SEARCH_LIBRARY = 2 } -enum : uint { IMAGE_WEAK_EXTERN_SEARCH_ALIAS = 3 } - -struct _IMAGE_RELOCATION { -union { - DWORD VirtualAddress; - DWORD RelocCount; -} - - DWORD SymbolTableIndex; - WORD Type; -} -alias _IMAGE_RELOCATION IMAGE_RELOCATION; - -alias IMAGE_RELOCATION* PIMAGE_RELOCATION; - -enum : uint { IMAGE_SIZEOF_RELOCATION = 10 } - -enum : uint { IMAGE_REL_I386_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_I386_DIR16 = 0x0001 } -enum : uint { IMAGE_REL_I386_REL16 = 0x0002 } -enum : uint { IMAGE_REL_I386_DIR32 = 0x0006 } -enum : uint { IMAGE_REL_I386_DIR32NB = 0x0007 } -enum : uint { IMAGE_REL_I386_SEG12 = 0x0009 } -enum : uint { IMAGE_REL_I386_SECTION = 0x000A } -enum : uint { IMAGE_REL_I386_SECREL = 0x000B } -enum : uint { IMAGE_REL_I386_TOKEN = 0x000C } -enum : uint { IMAGE_REL_I386_SECREL7 = 0x000D } -enum : uint { IMAGE_REL_I386_REL32 = 0x0014 } - -enum : uint { IMAGE_REL_MIPS_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_MIPS_REFHALF = 0x0001 } -enum : uint { IMAGE_REL_MIPS_REFWORD = 0x0002 } -enum : uint { IMAGE_REL_MIPS_JMPADDR = 0x0003 } -enum : uint { IMAGE_REL_MIPS_REFHI = 0x0004 } -enum : uint { IMAGE_REL_MIPS_REFLO = 0x0005 } -enum : uint { IMAGE_REL_MIPS_GPREL = 0x0006 } -enum : uint { IMAGE_REL_MIPS_LITERAL = 0x0007 } -enum : uint { IMAGE_REL_MIPS_SECTION = 0x000A } -enum : uint { IMAGE_REL_MIPS_SECREL = 0x000B } -enum : uint { IMAGE_REL_MIPS_SECRELLO = 0x000C } -enum : uint { IMAGE_REL_MIPS_SECRELHI = 0x000D } -enum : uint { IMAGE_REL_MIPS_TOKEN = 0x000E } -enum : uint { IMAGE_REL_MIPS_JMPADDR16 = 0x0010 } -enum : uint { IMAGE_REL_MIPS_REFWORDNB = 0x0022 } -enum : uint { IMAGE_REL_MIPS_PAIR = 0x0025 } - -enum : uint { IMAGE_REL_ALPHA_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_ALPHA_REFLONG = 0x0001 } -enum : uint { IMAGE_REL_ALPHA_REFQUAD = 0x0002 } -enum : uint { IMAGE_REL_ALPHA_GPREL32 = 0x0003 } -enum : uint { IMAGE_REL_ALPHA_LITERAL = 0x0004 } -enum : uint { IMAGE_REL_ALPHA_LITUSE = 0x0005 } -enum : uint { IMAGE_REL_ALPHA_GPDISP = 0x0006 } -enum : uint { IMAGE_REL_ALPHA_BRADDR = 0x0007 } -enum : uint { IMAGE_REL_ALPHA_HINT = 0x0008 } -enum : uint { IMAGE_REL_ALPHA_INLINE_REFLONG = 0x0009 } -enum : uint { IMAGE_REL_ALPHA_REFHI = 0x000A } -enum : uint { IMAGE_REL_ALPHA_REFLO = 0x000B } -enum : uint { IMAGE_REL_ALPHA_PAIR = 0x000C } -enum : uint { IMAGE_REL_ALPHA_MATCH = 0x000D } -enum : uint { IMAGE_REL_ALPHA_SECTION = 0x000E } -enum : uint { IMAGE_REL_ALPHA_SECREL = 0x000F } -enum : uint { IMAGE_REL_ALPHA_REFLONGNB = 0x0010 } -enum : uint { IMAGE_REL_ALPHA_SECRELLO = 0x0011 } -enum : uint { IMAGE_REL_ALPHA_SECRELHI = 0x0012 } -enum : uint { IMAGE_REL_ALPHA_REFQ3 = 0x0013 } -enum : uint { IMAGE_REL_ALPHA_REFQ2 = 0x0014 } -enum : uint { IMAGE_REL_ALPHA_REFQ1 = 0x0015 } -enum : uint { IMAGE_REL_ALPHA_GPRELLO = 0x0016 } -enum : uint { IMAGE_REL_ALPHA_GPRELHI = 0x0017 } - -enum : uint { IMAGE_REL_PPC_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_PPC_ADDR64 = 0x0001 } -enum : uint { IMAGE_REL_PPC_ADDR32 = 0x0002 } -enum : uint { IMAGE_REL_PPC_ADDR24 = 0x0003 } -enum : uint { IMAGE_REL_PPC_ADDR16 = 0x0004 } -enum : uint { IMAGE_REL_PPC_ADDR14 = 0x0005 } -enum : uint { IMAGE_REL_PPC_REL24 = 0x0006 } -enum : uint { IMAGE_REL_PPC_REL14 = 0x0007 } -enum : uint { IMAGE_REL_PPC_TOCREL16 = 0x0008 } -enum : uint { IMAGE_REL_PPC_TOCREL14 = 0x0009 } - -enum : uint { IMAGE_REL_PPC_ADDR32NB = 0x000A } -enum : uint { IMAGE_REL_PPC_SECREL = 0x000B } -enum : uint { IMAGE_REL_PPC_SECTION = 0x000C } -enum : uint { IMAGE_REL_PPC_IFGLUE = 0x000D } -enum : uint { IMAGE_REL_PPC_IMGLUE = 0x000E } -enum : uint { IMAGE_REL_PPC_SECREL16 = 0x000F } -enum : uint { IMAGE_REL_PPC_REFHI = 0x0010 } -enum : uint { IMAGE_REL_PPC_REFLO = 0x0011 } -enum : uint { IMAGE_REL_PPC_PAIR = 0x0012 } -enum : uint { IMAGE_REL_PPC_SECRELLO = 0x0013 } -enum : uint { IMAGE_REL_PPC_SECRELHI = 0x0014 } -enum : uint { IMAGE_REL_PPC_GPREL = 0x0015 } -enum : uint { IMAGE_REL_PPC_TOKEN = 0x0016 } - -enum : uint { IMAGE_REL_PPC_TYPEMASK = 0x00FF } - -enum : uint { IMAGE_REL_PPC_NEG = 0x0100 } -enum : uint { IMAGE_REL_PPC_BRTAKEN = 0x0200 } -enum : uint { IMAGE_REL_PPC_BRNTAKEN = 0x0400 } -enum : uint { IMAGE_REL_PPC_TOCDEFN = 0x0800 } - -enum : uint { IMAGE_REL_SH3_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_SH3_DIRECT16 = 0x0001 } -enum : uint { IMAGE_REL_SH3_DIRECT32 = 0x0002 } -enum : uint { IMAGE_REL_SH3_DIRECT8 = 0x0003 } -enum : uint { IMAGE_REL_SH3_DIRECT8_WORD = 0x0004 } -enum : uint { IMAGE_REL_SH3_DIRECT8_LONG = 0x0005 } -enum : uint { IMAGE_REL_SH3_DIRECT4 = 0x0006 } -enum : uint { IMAGE_REL_SH3_DIRECT4_WORD = 0x0007 } -enum : uint { IMAGE_REL_SH3_DIRECT4_LONG = 0x0008 } -enum : uint { IMAGE_REL_SH3_PCREL8_WORD = 0x0009 } -enum : uint { IMAGE_REL_SH3_PCREL8_LONG = 0x000A } -enum : uint { IMAGE_REL_SH3_PCREL12_WORD = 0x000B } -enum : uint { IMAGE_REL_SH3_STARTOF_SECTION = 0x000C } -enum : uint { IMAGE_REL_SH3_SIZEOF_SECTION = 0x000D } -enum : uint { IMAGE_REL_SH3_SECTION = 0x000E } -enum : uint { IMAGE_REL_SH3_SECREL = 0x000F } -enum : uint { IMAGE_REL_SH3_DIRECT32_NB = 0x0010 } -enum : uint { IMAGE_REL_SH3_GPREL4_LONG = 0x0011 } -enum : uint { IMAGE_REL_SH3_TOKEN = 0x0012 } - -enum : uint { IMAGE_REL_ARM_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_ARM_ADDR32 = 0x0001 } -enum : uint { IMAGE_REL_ARM_ADDR32NB = 0x0002 } -enum : uint { IMAGE_REL_ARM_BRANCH24 = 0x0003 } -enum : uint { IMAGE_REL_ARM_BRANCH11 = 0x0004 } -enum : uint { IMAGE_REL_ARM_TOKEN = 0x0005 } -enum : uint { IMAGE_REL_ARM_GPREL12 = 0x0006 } -enum : uint { IMAGE_REL_ARM_GPREL7 = 0x0007 } -enum : uint { IMAGE_REL_ARM_BLX24 = 0x0008 } -enum : uint { IMAGE_REL_ARM_BLX11 = 0x0009 } -enum : uint { IMAGE_REL_ARM_SECTION = 0x000E } -enum : uint { IMAGE_REL_ARM_SECREL = 0x000F } - -enum : uint { IMAGE_REL_AM_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_AM_ADDR32 = 0x0001 } -enum : uint { IMAGE_REL_AM_ADDR32NB = 0x0002 } -enum : uint { IMAGE_REL_AM_CALL32 = 0x0003 } -enum : uint { IMAGE_REL_AM_FUNCINFO = 0x0004 } -enum : uint { IMAGE_REL_AM_REL32_1 = 0x0005 } -enum : uint { IMAGE_REL_AM_REL32_2 = 0x0006 } -enum : uint { IMAGE_REL_AM_SECREL = 0x0007 } -enum : uint { IMAGE_REL_AM_SECTION = 0x0008 } -enum : uint { IMAGE_REL_AM_TOKEN = 0x0009 } - -enum : uint { IMAGE_REL_AMD64_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_AMD64_ADDR64 = 0x0001 } -enum : uint { IMAGE_REL_AMD64_ADDR32 = 0x0002 } -enum : uint { IMAGE_REL_AMD64_ADDR32NB = 0x0003 } -enum : uint { IMAGE_REL_AMD64_REL32 = 0x0004 } -enum : uint { IMAGE_REL_AMD64_REL32_1 = 0x0005 } -enum : uint { IMAGE_REL_AMD64_REL32_2 = 0x0006 } -enum : uint { IMAGE_REL_AMD64_REL32_3 = 0x0007 } -enum : uint { IMAGE_REL_AMD64_REL32_4 = 0x0008 } -enum : uint { IMAGE_REL_AMD64_REL32_5 = 0x0009 } -enum : uint { IMAGE_REL_AMD64_SECTION = 0x000A } -enum : uint { IMAGE_REL_AMD64_SECREL = 0x000B } -enum : uint { IMAGE_REL_AMD64_SECREL7 = 0x000C } -enum : uint { IMAGE_REL_AMD64_TOKEN = 0x000D } - -enum : uint { IMAGE_REL_IA64_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_IA64_IMM14 = 0x0001 } -enum : uint { IMAGE_REL_IA64_IMM22 = 0x0002 } -enum : uint { IMAGE_REL_IA64_IMM64 = 0x0003 } -enum : uint { IMAGE_REL_IA64_DIR32 = 0x0004 } -enum : uint { IMAGE_REL_IA64_DIR64 = 0x0005 } -enum : uint { IMAGE_REL_IA64_PCREL21B = 0x0006 } -enum : uint { IMAGE_REL_IA64_PCREL21M = 0x0007 } -enum : uint { IMAGE_REL_IA64_PCREL21F = 0x0008 } -enum : uint { IMAGE_REL_IA64_GPREL22 = 0x0009 } -enum : uint { IMAGE_REL_IA64_LTOFF22 = 0x000A } -enum : uint { IMAGE_REL_IA64_SECTION = 0x000B } -enum : uint { IMAGE_REL_IA64_SECREL22 = 0x000C } -enum : uint { IMAGE_REL_IA64_SECREL64I = 0x000D } -enum : uint { IMAGE_REL_IA64_SECREL32 = 0x000E } - -enum : uint { IMAGE_REL_IA64_DIR32NB = 0x0010 } -enum : uint { IMAGE_REL_IA64_SREL14 = 0x0011 } -enum : uint { IMAGE_REL_IA64_SREL22 = 0x0012 } -enum : uint { IMAGE_REL_IA64_SREL32 = 0x0013 } -enum : uint { IMAGE_REL_IA64_UREL32 = 0x0014 } -enum : uint { IMAGE_REL_IA64_PCREL60X = 0x0015 } -enum : uint { IMAGE_REL_IA64_PCREL60B = 0x0016 } -enum : uint { IMAGE_REL_IA64_PCREL60F = 0x0017 } -enum : uint { IMAGE_REL_IA64_PCREL60I = 0x0018 } -enum : uint { IMAGE_REL_IA64_PCREL60M = 0x0019 } -enum : uint { IMAGE_REL_IA64_IMMGPREL64 = 0x001A } -enum : uint { IMAGE_REL_IA64_TOKEN = 0x001B } -enum : uint { IMAGE_REL_IA64_GPREL32 = 0x001C } -enum : uint { IMAGE_REL_IA64_ADDEND = 0x001F } - -enum : uint { IMAGE_REL_CEF_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_CEF_ADDR32 = 0x0001 } -enum : uint { IMAGE_REL_CEF_ADDR64 = 0x0002 } -enum : uint { IMAGE_REL_CEF_ADDR32NB = 0x0003 } -enum : uint { IMAGE_REL_CEF_SECTION = 0x0004 } -enum : uint { IMAGE_REL_CEF_SECREL = 0x0005 } -enum : uint { IMAGE_REL_CEF_TOKEN = 0x0006 } - -enum : uint { IMAGE_REL_CEE_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_CEE_ADDR32 = 0x0001 } -enum : uint { IMAGE_REL_CEE_ADDR64 = 0x0002 } -enum : uint { IMAGE_REL_CEE_ADDR32NB = 0x0003 } -enum : uint { IMAGE_REL_CEE_SECTION = 0x0004 } -enum : uint { IMAGE_REL_CEE_SECREL = 0x0005 } -enum : uint { IMAGE_REL_CEE_TOKEN = 0x0006 } - -enum : uint { IMAGE_REL_M32R_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_M32R_ADDR32 = 0x0001 } -enum : uint { IMAGE_REL_M32R_ADDR32NB = 0x0002 } -enum : uint { IMAGE_REL_M32R_ADDR24 = 0x0003 } -enum : uint { IMAGE_REL_M32R_GPREL16 = 0x0004 } -enum : uint { IMAGE_REL_M32R_PCREL24 = 0x0005 } -enum : uint { IMAGE_REL_M32R_PCREL16 = 0x0006 } -enum : uint { IMAGE_REL_M32R_PCREL8 = 0x0007 } -enum : uint { IMAGE_REL_M32R_REFHALF = 0x0008 } -enum : uint { IMAGE_REL_M32R_REFHI = 0x0009 } -enum : uint { IMAGE_REL_M32R_REFLO = 0x000A } -enum : uint { IMAGE_REL_M32R_PAIR = 0x000B } -enum : uint { IMAGE_REL_M32R_SECTION = 0x000C } -enum : uint { IMAGE_REL_M32R_SECREL32 = 0x000D } -enum : uint { IMAGE_REL_M32R_TOKEN = 0x000E } - -// #define EXT_IMM64(Value, Address, Size, InstPos, ValPos) Value |= (((ULONGLONG)((*(Address) >> InstPos) & (((ULONGLONG)1 << Size) - 1))) << ValPos) - -// #define INS_IMM64(Value, Address, Size, InstPos, ValPos) *(PDWORD)Address = (*(PDWORD)Address & ~(((1 << Size) - 1) << InstPos)) | ((DWORD)((((ULONGLONG)Value >> ValPos) & (((ULONGLONG)1 << Size) - 1))) << InstPos) - -enum : uint { EMARCH_ENC_I17_IMM7B_INST_WORD_X = 3 } -enum : uint { EMARCH_ENC_I17_IMM7B_SIZE_X = 7 } -enum : uint { EMARCH_ENC_I17_IMM7B_INST_WORD_POS_X = 4 } -enum : uint { EMARCH_ENC_I17_IMM7B_VAL_POS_X = 0 } - -enum : uint { EMARCH_ENC_I17_IMM9D_INST_WORD_X = 3 } -enum : uint { EMARCH_ENC_I17_IMM9D_SIZE_X = 9 } -enum : uint { EMARCH_ENC_I17_IMM9D_INST_WORD_POS_X = 18 } -enum : uint { EMARCH_ENC_I17_IMM9D_VAL_POS_X = 7 } - -enum : uint { EMARCH_ENC_I17_IMM5C_INST_WORD_X = 3 } -enum : uint { EMARCH_ENC_I17_IMM5C_SIZE_X = 5 } -enum : uint { EMARCH_ENC_I17_IMM5C_INST_WORD_POS_X = 13 } -enum : uint { EMARCH_ENC_I17_IMM5C_VAL_POS_X = 16 } - -enum : uint { EMARCH_ENC_I17_IC_INST_WORD_X = 3 } -enum : uint { EMARCH_ENC_I17_IC_SIZE_X = 1 } -enum : uint { EMARCH_ENC_I17_IC_INST_WORD_POS_X = 12 } -enum : uint { EMARCH_ENC_I17_IC_VAL_POS_X = 21 } - -enum : uint { EMARCH_ENC_I17_IMM41a_INST_WORD_X = 1 } -enum : uint { EMARCH_ENC_I17_IMM41a_SIZE_X = 10 } -enum : uint { EMARCH_ENC_I17_IMM41a_INST_WORD_POS_X = 14 } -enum : uint { EMARCH_ENC_I17_IMM41a_VAL_POS_X = 22 } - -enum : uint { EMARCH_ENC_I17_IMM41b_INST_WORD_X = 1 } -enum : uint { EMARCH_ENC_I17_IMM41b_SIZE_X = 8 } -enum : uint { EMARCH_ENC_I17_IMM41b_INST_WORD_POS_X = 24 } -enum : uint { EMARCH_ENC_I17_IMM41b_VAL_POS_X = 32 } - -enum : uint { EMARCH_ENC_I17_IMM41c_INST_WORD_X = 2 } -enum : uint { EMARCH_ENC_I17_IMM41c_SIZE_X = 23 } -enum : uint { EMARCH_ENC_I17_IMM41c_INST_WORD_POS_X = 0 } -enum : uint { EMARCH_ENC_I17_IMM41c_VAL_POS_X = 40 } - -enum : uint { EMARCH_ENC_I17_SIGN_INST_WORD_X = 3 } -enum : uint { EMARCH_ENC_I17_SIGN_SIZE_X = 1 } -enum : uint { EMARCH_ENC_I17_SIGN_INST_WORD_POS_X = 27 } -enum : uint { EMARCH_ENC_I17_SIGN_VAL_POS_X = 63 } - -struct _IMAGE_LINENUMBER { -union { - DWORD SymbolTableIndex; - DWORD VirtualAddress; -} - - WORD Linenumber; -} -alias _IMAGE_LINENUMBER IMAGE_LINENUMBER; - -alias IMAGE_LINENUMBER* PIMAGE_LINENUMBER; - -enum : uint { IMAGE_SIZEOF_LINENUMBER = 6 } - -// #ifndef _MAC -align: -// #endif - -struct _IMAGE_BASE_RELOCATION { - DWORD VirtualAddress; - DWORD SizeOfBlock; -} -alias _IMAGE_BASE_RELOCATION IMAGE_BASE_RELOCATION; - -alias IMAGE_BASE_RELOCATION* PIMAGE_BASE_RELOCATION; - -enum : uint { IMAGE_SIZEOF_BASE_RELOCATION = 8 } - -enum : uint { IMAGE_REL_BASED_ABSOLUTE = 0 } -enum : uint { IMAGE_REL_BASED_HIGH = 1 } -enum : uint { IMAGE_REL_BASED_LOW = 2 } -enum : uint { IMAGE_REL_BASED_HIGHLOW = 3 } -enum : uint { IMAGE_REL_BASED_HIGHADJ = 4 } -enum : uint { IMAGE_REL_BASED_MIPS_JMPADDR = 5 } -enum : uint { IMAGE_REL_BASED_MIPS_JMPADDR16 = 9 } -enum : uint { IMAGE_REL_BASED_IA64_IMM64 = 9 } -enum : uint { IMAGE_REL_BASED_DIR64 = 10 } - -enum : uint { IMAGE_ARCHIVE_START_SIZE = 8 } -const char[] IMAGE_ARCHIVE_START = "!\n"; -const char[] IMAGE_ARCHIVE_END = "`\n"; -const char[] IMAGE_ARCHIVE_PAD = "\n"; -const char[] IMAGE_ARCHIVE_LINKER_MEMBER = "/ "; -const char[] IMAGE_ARCHIVE_LONGNAMES_MEMBER = "// "; - -struct _IMAGE_ARCHIVE_MEMBER_HEADER { - BYTE Name[16]; - BYTE Date[12]; - BYTE UserID[6]; - BYTE GroupID[6]; - BYTE Mode[8]; - BYTE Size[10]; - BYTE EndHeader[2]; -} -alias _IMAGE_ARCHIVE_MEMBER_HEADER IMAGE_ARCHIVE_MEMBER_HEADER; -alias _IMAGE_ARCHIVE_MEMBER_HEADER* PIMAGE_ARCHIVE_MEMBER_HEADER; - -enum : uint { IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR = 60 } - -struct _IMAGE_EXPORT_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD Name; - DWORD Base; - DWORD NumberOfFunctions; - DWORD NumberOfNames; - DWORD AddressOfFunctions; - DWORD AddressOfNames; - DWORD AddressOfNameOrdinals; -} -alias _IMAGE_EXPORT_DIRECTORY IMAGE_EXPORT_DIRECTORY; -alias _IMAGE_EXPORT_DIRECTORY* PIMAGE_EXPORT_DIRECTORY; - -struct _IMAGE_IMPORT_BY_NAME { - WORD Hint; - BYTE Name[1]; -} -alias _IMAGE_IMPORT_BY_NAME IMAGE_IMPORT_BY_NAME; -alias _IMAGE_IMPORT_BY_NAME* PIMAGE_IMPORT_BY_NAME; - -align(8): - -struct _IMAGE_THUNK_DATA64 { -union { - ULONGLONG ForwarderString; - ULONGLONG Function; - ULONGLONG Ordinal; - ULONGLONG AddressOfData; -} - -} -alias _IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA64; - -alias IMAGE_THUNK_DATA64* PIMAGE_THUNK_DATA64; - -align: - -struct _IMAGE_THUNK_DATA32 { -union { - DWORD ForwarderString; - DWORD Function; - DWORD Ordinal; - DWORD AddressOfData; -} - -} -alias _IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA32; - -alias IMAGE_THUNK_DATA32* PIMAGE_THUNK_DATA32; - -const ulong IMAGE_ORDINAL_FLAG64 = 0x8000000000000000; -enum : uint { IMAGE_ORDINAL_FLAG32 = 0x80000000 } -ulong IMAGE_ORDINAL64(ulong Ordinal){ return Ordinal & 0xffff; } -uint IMAGE_ORDINAL32(uint Ordinal){ return Ordinal & 0xffff; } -bit IMAGE_SNAP_BY_ORDINAL64(ulong Ordinal){ return (Ordinal & IMAGE_ORDINAL_FLAG64) != 0; } -bit IMAGE_SNAP_BY_ORDINAL32(uint Ordinal){ return (Ordinal & IMAGE_ORDINAL_FLAG32) != 0; } - -extern(Windows) alias VOID function( PVOID DllHandle, DWORD Reason, PVOID Reserved ) PIMAGE_TLS_CALLBACK; - -struct _IMAGE_TLS_DIRECTORY64 { - ULONGLONG StartAddressOfRawData; - ULONGLONG EndAddressOfRawData; - ULONGLONG AddressOfIndex; - ULONGLONG AddressOfCallBacks; - DWORD SizeOfZeroFill; - DWORD Characteristics; -} -alias _IMAGE_TLS_DIRECTORY64 IMAGE_TLS_DIRECTORY64; - -alias IMAGE_TLS_DIRECTORY64* PIMAGE_TLS_DIRECTORY64; - -struct _IMAGE_TLS_DIRECTORY32 { - DWORD StartAddressOfRawData; - DWORD EndAddressOfRawData; - DWORD AddressOfIndex; - DWORD AddressOfCallBacks; - DWORD SizeOfZeroFill; - DWORD Characteristics; -} -alias _IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY32; - -alias IMAGE_TLS_DIRECTORY32* PIMAGE_TLS_DIRECTORY32; - -// #ifdef _WIN64 -// #... -// #... -// ... -// #... -// ... -// #else -alias IMAGE_ORDINAL_FLAG32 IMAGE_ORDINAL_FLAG; -alias IMAGE_ORDINAL32 IMAGE_ORDINAL; -alias IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA; -alias PIMAGE_THUNK_DATA32 PIMAGE_THUNK_DATA; -alias IMAGE_SNAP_BY_ORDINAL32 IMAGE_SNAP_BY_ORDINAL; -alias IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY; -alias PIMAGE_TLS_DIRECTORY32 PIMAGE_TLS_DIRECTORY; -// #endif - -struct _IMAGE_IMPORT_DESCRIPTOR { -union { - DWORD Characteristics; - DWORD OriginalFirstThunk; -} - - DWORD TimeDateStamp; - - DWORD ForwarderChain; - DWORD Name; - DWORD FirstThunk; -} -alias _IMAGE_IMPORT_DESCRIPTOR IMAGE_IMPORT_DESCRIPTOR; - -alias IMAGE_IMPORT_DESCRIPTOR* PIMAGE_IMPORT_DESCRIPTOR; - -struct _IMAGE_BOUND_IMPORT_DESCRIPTOR { - DWORD TimeDateStamp; - WORD OffsetModuleName; - WORD NumberOfModuleForwarderRefs; -} -alias _IMAGE_BOUND_IMPORT_DESCRIPTOR IMAGE_BOUND_IMPORT_DESCRIPTOR; -alias _IMAGE_BOUND_IMPORT_DESCRIPTOR* PIMAGE_BOUND_IMPORT_DESCRIPTOR; - -struct _IMAGE_BOUND_FORWARDER_REF { - DWORD TimeDateStamp; - WORD OffsetModuleName; - WORD Reserved; -} -alias _IMAGE_BOUND_FORWARDER_REF IMAGE_BOUND_FORWARDER_REF; -alias _IMAGE_BOUND_FORWARDER_REF* PIMAGE_BOUND_FORWARDER_REF; - -struct _IMAGE_RESOURCE_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - WORD NumberOfNamedEntries; - WORD NumberOfIdEntries; -} -alias _IMAGE_RESOURCE_DIRECTORY IMAGE_RESOURCE_DIRECTORY; -alias _IMAGE_RESOURCE_DIRECTORY* PIMAGE_RESOURCE_DIRECTORY; - -enum : uint { IMAGE_RESOURCE_NAME_IS_STRING = 0x80000000 } -enum : uint { IMAGE_RESOURCE_DATA_IS_DIRECTORY = 0x80000000 } - -struct _IMAGE_RESOURCE_DIRECTORY_ENTRY { -union { -struct { -// DWORD NameOffset:31; -// DWORD NameIsString:1; -} - - DWORD Name; - WORD Id; -} - -union { - DWORD OffsetToData; -struct { -// DWORD OffsetToDirectory:31; -// DWORD DataIsDirectory:1; -} - -} - -} -alias _IMAGE_RESOURCE_DIRECTORY_ENTRY IMAGE_RESOURCE_DIRECTORY_ENTRY; -alias _IMAGE_RESOURCE_DIRECTORY_ENTRY* PIMAGE_RESOURCE_DIRECTORY_ENTRY; - -struct _IMAGE_RESOURCE_DIRECTORY_STRING { - WORD Length; - CHAR NameString[ 1 ]; -} -alias _IMAGE_RESOURCE_DIRECTORY_STRING IMAGE_RESOURCE_DIRECTORY_STRING; -alias _IMAGE_RESOURCE_DIRECTORY_STRING* PIMAGE_RESOURCE_DIRECTORY_STRING; - -struct _IMAGE_RESOURCE_DIR_STRING_U { - WORD Length; - WCHAR NameString[ 1 ]; -} -alias _IMAGE_RESOURCE_DIR_STRING_U IMAGE_RESOURCE_DIR_STRING_U; -alias _IMAGE_RESOURCE_DIR_STRING_U* PIMAGE_RESOURCE_DIR_STRING_U; - -struct _IMAGE_RESOURCE_DATA_ENTRY { - DWORD OffsetToData; - DWORD Size; - DWORD CodePage; - DWORD Reserved; -} -alias _IMAGE_RESOURCE_DATA_ENTRY IMAGE_RESOURCE_DATA_ENTRY; -alias _IMAGE_RESOURCE_DATA_ENTRY* PIMAGE_RESOURCE_DATA_ENTRY; - -struct _12 { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD GlobalFlagsClear; - DWORD GlobalFlagsSet; - DWORD CriticalSectionDefaultTimeout; - DWORD DeCommitFreeBlockThreshold; - DWORD DeCommitTotalFreeThreshold; - DWORD LockPrefixTable; - DWORD MaximumAllocationSize; - DWORD VirtualMemoryThreshold; - DWORD ProcessHeapFlags; - DWORD ProcessAffinityMask; - WORD CSDVersion; - WORD Reserved1; - DWORD EditList; - DWORD Reserved[ 1 ]; -} -alias _12 IMAGE_LOAD_CONFIG_DIRECTORY32; -alias _12* PIMAGE_LOAD_CONFIG_DIRECTORY32; - -struct _13 { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD GlobalFlagsClear; - DWORD GlobalFlagsSet; - DWORD CriticalSectionDefaultTimeout; - ULONGLONG DeCommitFreeBlockThreshold; - ULONGLONG DeCommitTotalFreeThreshold; - ULONGLONG LockPrefixTable; - ULONGLONG MaximumAllocationSize; - ULONGLONG VirtualMemoryThreshold; - ULONGLONG ProcessAffinityMask; - DWORD ProcessHeapFlags; - WORD CSDVersion; - WORD Reserved1; - ULONGLONG EditList; - DWORD Reserved[ 2 ]; -} -alias _13 IMAGE_LOAD_CONFIG_DIRECTORY64; -alias _13* PIMAGE_LOAD_CONFIG_DIRECTORY64; - -// #ifdef _WIN64 -// ... -// #else -alias IMAGE_LOAD_CONFIG_DIRECTORY32 IMAGE_LOAD_CONFIG_DIRECTORY; -alias PIMAGE_LOAD_CONFIG_DIRECTORY32 PIMAGE_LOAD_CONFIG_DIRECTORY; -// #endif - -struct _IMAGE_CE_RUNTIME_FUNCTION_ENTRY { - DWORD FuncStart; -// DWORD PrologLen : 8; -// DWORD FuncLen : 22; -// DWORD ThirtyTwoBit : 1; -// DWORD ExceptionFlag : 1; -} -alias _IMAGE_CE_RUNTIME_FUNCTION_ENTRY IMAGE_CE_RUNTIME_FUNCTION_ENTRY; -alias _IMAGE_CE_RUNTIME_FUNCTION_ENTRY* PIMAGE_CE_RUNTIME_FUNCTION_ENTRY; - -struct _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY { - ULONGLONG BeginAddress; - ULONGLONG EndAddress; - ULONGLONG ExceptionHandler; - ULONGLONG HandlerData; - ULONGLONG PrologEndAddress; -} -alias _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY; -alias _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY* PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY; - -struct _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY { - DWORD BeginAddress; - DWORD EndAddress; - DWORD ExceptionHandler; - DWORD HandlerData; - DWORD PrologEndAddress; -} -alias _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY; -alias _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY* PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY; - -struct _IMAGE_RUNTIME_FUNCTION_ENTRY { - DWORD BeginAddress; - DWORD EndAddress; - DWORD UnwindInfoAddress; -} -alias _IMAGE_RUNTIME_FUNCTION_ENTRY* _PIMAGE_RUNTIME_FUNCTION_ENTRY; - -alias _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_IA64_RUNTIME_FUNCTION_ENTRY; -alias _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY; - -// #if defined(_AXP64_) - -// ... - -// #elif defined(_ALPHA_) - -// ... - -// #else - -alias _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY; -alias _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY; - -// #endif - -struct _IMAGE_DEBUG_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD Type; - DWORD SizeOfData; - DWORD AddressOfRawData; - DWORD PointerToRawData; -} -alias _IMAGE_DEBUG_DIRECTORY IMAGE_DEBUG_DIRECTORY; -alias _IMAGE_DEBUG_DIRECTORY* PIMAGE_DEBUG_DIRECTORY; - -enum : uint { IMAGE_DEBUG_TYPE_UNKNOWN = 0 } -enum : uint { IMAGE_DEBUG_TYPE_COFF = 1 } -enum : uint { IMAGE_DEBUG_TYPE_CODEVIEW = 2 } -enum : uint { IMAGE_DEBUG_TYPE_FPO = 3 } -enum : uint { IMAGE_DEBUG_TYPE_MISC = 4 } -enum : uint { IMAGE_DEBUG_TYPE_EXCEPTION = 5 } -enum : uint { IMAGE_DEBUG_TYPE_FIXUP = 6 } -enum : uint { IMAGE_DEBUG_TYPE_OMAP_TO_SRC = 7 } -enum : uint { IMAGE_DEBUG_TYPE_OMAP_FROM_SRC = 8 } -enum : uint { IMAGE_DEBUG_TYPE_BORLAND = 9 } -enum : uint { IMAGE_DEBUG_TYPE_RESERVED10 = 10 } -enum : uint { IMAGE_DEBUG_TYPE_CLSID = 11 } - -struct _IMAGE_COFF_SYMBOLS_HEADER { - DWORD NumberOfSymbols; - DWORD LvaToFirstSymbol; - DWORD NumberOfLinenumbers; - DWORD LvaToFirstLinenumber; - DWORD RvaToFirstByteOfCode; - DWORD RvaToLastByteOfCode; - DWORD RvaToFirstByteOfData; - DWORD RvaToLastByteOfData; -} -alias _IMAGE_COFF_SYMBOLS_HEADER IMAGE_COFF_SYMBOLS_HEADER; -alias _IMAGE_COFF_SYMBOLS_HEADER* PIMAGE_COFF_SYMBOLS_HEADER; - -enum : uint { FRAME_FPO = 0 } -enum : uint { FRAME_TRAP = 1 } -enum : uint { FRAME_TSS = 2 } -enum : uint { FRAME_NONFPO = 3 } - -struct _FPO_DATA { - DWORD ulOffStart; - DWORD cbProcSize; - DWORD cdwLocals; - WORD cdwParams; -// WORD cbProlog : 8; -// WORD cbRegs : 3; -// WORD fHasSEH : 1; -// WORD fUseBP : 1; -// WORD reserved : 1; -// WORD cbFrame : 2; -} -alias _FPO_DATA FPO_DATA; -alias _FPO_DATA* PFPO_DATA; - -enum : uint { SIZEOF_RFPO_DATA = 16 } - -enum : uint { IMAGE_DEBUG_MISC_EXENAME = 1 } - -struct _IMAGE_DEBUG_MISC { - DWORD DataType; - DWORD Length; - - BOOLEAN Unicode; - BYTE Reserved[ 3 ]; - BYTE Data[ 1 ]; -} -alias _IMAGE_DEBUG_MISC IMAGE_DEBUG_MISC; -alias _IMAGE_DEBUG_MISC* PIMAGE_DEBUG_MISC; - -struct _IMAGE_FUNCTION_ENTRY { - DWORD StartingAddress; - DWORD EndingAddress; - DWORD EndOfPrologue; -} -alias _IMAGE_FUNCTION_ENTRY IMAGE_FUNCTION_ENTRY; -alias _IMAGE_FUNCTION_ENTRY* PIMAGE_FUNCTION_ENTRY; - -struct _IMAGE_FUNCTION_ENTRY64 { - ULONGLONG StartingAddress; - ULONGLONG EndingAddress; -union { - ULONGLONG EndOfPrologue; - ULONGLONG UnwindInfoAddress; -} - -} -alias _IMAGE_FUNCTION_ENTRY64 IMAGE_FUNCTION_ENTRY64; -alias _IMAGE_FUNCTION_ENTRY64* PIMAGE_FUNCTION_ENTRY64; - -struct _IMAGE_SEPARATE_DEBUG_HEADER { - WORD Signature; - WORD Flags; - WORD Machine; - WORD Characteristics; - DWORD TimeDateStamp; - DWORD CheckSum; - DWORD ImageBase; - DWORD SizeOfImage; - DWORD NumberOfSections; - DWORD ExportedNamesSize; - DWORD DebugDirectorySize; - DWORD SectionAlignment; - DWORD Reserved[2]; -} -alias _IMAGE_SEPARATE_DEBUG_HEADER IMAGE_SEPARATE_DEBUG_HEADER; -alias _IMAGE_SEPARATE_DEBUG_HEADER* PIMAGE_SEPARATE_DEBUG_HEADER; - -struct _NON_PAGED_DEBUG_INFO { - WORD Signature; - WORD Flags; - DWORD Size; - WORD Machine; - WORD Characteristics; - DWORD TimeDateStamp; - DWORD CheckSum; - DWORD SizeOfImage; - ULONGLONG ImageBase; - -} -alias _NON_PAGED_DEBUG_INFO NON_PAGED_DEBUG_INFO; -alias _NON_PAGED_DEBUG_INFO* PNON_PAGED_DEBUG_INFO; - -// #ifndef _MAC -enum : uint { IMAGE_SEPARATE_DEBUG_SIGNATURE = 0x4944 } -enum : uint { NON_PAGED_DEBUG_SIGNATURE = 0x494E } -// #else -// #... -// #... -// #endif - -enum : uint { IMAGE_SEPARATE_DEBUG_FLAGS_MASK = 0x8000 } -enum : uint { IMAGE_SEPARATE_DEBUG_MISMATCH = 0x8000 } - -struct _ImageArchitectureHeader { -// unsigned int AmaskValue: 1; - -// int :7; -// unsigned int AmaskShift: 8; -// int :16; - DWORD FirstEntryRVA; -} -alias _ImageArchitectureHeader IMAGE_ARCHITECTURE_HEADER; -alias _ImageArchitectureHeader* PIMAGE_ARCHITECTURE_HEADER; - -struct _ImageArchitectureEntry { - DWORD FixupInstRVA; - DWORD NewInst; -} -alias _ImageArchitectureEntry IMAGE_ARCHITECTURE_ENTRY; -alias _ImageArchitectureEntry* PIMAGE_ARCHITECTURE_ENTRY; - -align: - -enum : uint { IMPORT_OBJECT_HDR_SIG2 = 0xffff } - -struct IMPORT_OBJECT_HEADER { - WORD Sig1; - WORD Sig2; - WORD Version; - WORD Machine; - DWORD TimeDateStamp; - DWORD SizeOfData; - -union { - WORD Ordinal; - WORD Hint; -} - -// WORD Type : 2; -// WORD NameType : 3; -// WORD Reserved : 11; -} - -alias int IMPORT_OBJECT_TYPE; -enum { - IMPORT_OBJECT_CODE = 0, - IMPORT_OBJECT_DATA = 1, - IMPORT_OBJECT_CONST = 2, -} - -alias int IMPORT_OBJECT_NAME_TYPE; -enum { - IMPORT_OBJECT_ORDINAL = 0, - IMPORT_OBJECT_NAME = 1, - IMPORT_OBJECT_NAME_NO_PREFIX = 2, - IMPORT_OBJECT_NAME_UNDECORATE = 3, - -} - -// #ifndef __IMAGE_COR20_HEADER_DEFINED__ -// #define __IMAGE_COR20_HEADER_DEFINED__ - -alias int ReplacesCorHdrNumericDefines; -enum { - - COMIMAGE_FLAGS_ILONLY = 0x00000001, - COMIMAGE_FLAGS_32BITREQUIRED = 0x00000002, - COMIMAGE_FLAGS_IL_LIBRARY = 0x00000004, - COMIMAGE_FLAGS_TRACKDEBUGDATA = 0x00010000, - - COR_VERSION_MAJOR_V2 = 2, - COR_VERSION_MAJOR = COR_VERSION_MAJOR_V2, - COR_VERSION_MINOR = 0, - COR_DELETED_NAME_LENGTH = 8, - COR_VTABLEGAP_NAME_LENGTH = 8, - - NATIVE_TYPE_MAX_CB = 1, - COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE = 0xFF, - - IMAGE_COR_MIH_METHODRVA = 0x01, - IMAGE_COR_MIH_EHRVA = 0x02, - IMAGE_COR_MIH_BASICBLOCK = 0x08, - - COR_VTABLE_32BIT = 0x01, - COR_VTABLE_64BIT = 0x02, - COR_VTABLE_FROM_UNMANAGED = 0x04, - COR_VTABLE_CALL_MOST_DERIVED = 0x10, - - IMAGE_COR_EATJ_THUNK_SIZE = 32, - - MAX_CLASS_NAME = 1024, - MAX_PACKAGE_NAME = 1024, -} - -struct IMAGE_COR20_HEADER { - - DWORD cb; - WORD MajorRuntimeVersion; - WORD MinorRuntimeVersion; - IMAGE_DATA_DIRECTORY MetaData; - DWORD Flags; - DWORD EntryPointToken; - IMAGE_DATA_DIRECTORY Resources; - IMAGE_DATA_DIRECTORY StrongNameSignature; - IMAGE_DATA_DIRECTORY CodeManagerTable; - IMAGE_DATA_DIRECTORY VTableFixups; - IMAGE_DATA_DIRECTORY ExportAddressTableJumps; - IMAGE_DATA_DIRECTORY ManagedNativeHeader; -} -alias IMAGE_COR20_HEADER* PIMAGE_COR20_HEADER; - -// #endif // __IMAGE_COR20_HEADER_DEFINED__ - -// #ifdef _MAC -// #ifndef _INC_STRING -// #... -// #endif /* _INC_STRING */ -// #else -// #include -// #endif // _MAC - -// #ifndef _SLIST_HEADER_ -// #define _SLIST_HEADER_ - -alias SINGLE_LIST_ENTRY SLIST_ENTRY; -alias _SINGLE_LIST_ENTRY _SLIST_ENTRY; -alias PSINGLE_LIST_ENTRY PSLIST_ENTRY; - -// #if defined(_WIN64) - -// ... - -// ... - -// #else - -union _SLIST_HEADER { - ULONGLONG Alignment; -struct { - SLIST_ENTRY Next; - WORD Depth; - WORD Sequence; -} - -} -alias _SLIST_HEADER SLIST_HEADER; -alias _SLIST_HEADER* PSLIST_HEADER; - -// #endif - -// #endif - -extern(Windows) export VOID RtlInitializeSListHead( - PSLIST_HEADER ListHead); - -extern(Windows) export PSLIST_ENTRY RtlFirstEntrySList( - SLIST_HEADER *ListHead); - -extern(Windows) export PSLIST_ENTRY RtlInterlockedPopEntrySList( - PSLIST_HEADER ListHead); - -extern(Windows) export PSLIST_ENTRY RtlInterlockedPushEntrySList( - PSLIST_HEADER ListHead, - PSLIST_ENTRY ListEntry); - -extern(Windows) export PSLIST_ENTRY RtlInterlockedFlushSList( - PSLIST_HEADER ListHead); - -extern(Windows) export WORD RtlQueryDepthSList( - PSLIST_HEADER ListHead); - -enum : uint { HEAP_NO_SERIALIZE = 0x00000001 } -enum : uint { HEAP_GROWABLE = 0x00000002 } -enum : uint { HEAP_GENERATE_EXCEPTIONS = 0x00000004 } -enum : uint { HEAP_ZERO_MEMORY = 0x00000008 } -enum : uint { HEAP_REALLOC_IN_PLACE_ONLY = 0x00000010 } -enum : uint { HEAP_TAIL_CHECKING_ENABLED = 0x00000020 } -enum : uint { HEAP_FREE_CHECKING_ENABLED = 0x00000040 } -enum : uint { HEAP_DISABLE_COALESCE_ON_FREE = 0x00000080 } -enum : uint { HEAP_CREATE_ALIGN_16 = 0x00010000 } -enum : uint { HEAP_CREATE_ENABLE_TRACING = 0x00020000 } -enum : uint { HEAP_MAXIMUM_TAG = 0x0FFF } -enum : uint { HEAP_PSEUDO_TAG_FLAG = 0x8000 } -enum : uint { HEAP_TAG_SHIFT = 18 } -uint HEAP_MAKE_TAG_FLAGS(uint b, uint o){ return b + (o << 18); } - -enum : uint { IS_TEXT_UNICODE_ASCII16 = 0x0001 } -enum : uint { IS_TEXT_UNICODE_REVERSE_ASCII16 = 0x0010 } - -enum : uint { IS_TEXT_UNICODE_STATISTICS = 0x0002 } -enum : uint { IS_TEXT_UNICODE_REVERSE_STATISTICS = 0x0020 } - -enum : uint { IS_TEXT_UNICODE_CONTROLS = 0x0004 } -enum : uint { IS_TEXT_UNICODE_REVERSE_CONTROLS = 0x0040 } - -enum : uint { IS_TEXT_UNICODE_SIGNATURE = 0x0008 } -enum : uint { IS_TEXT_UNICODE_REVERSE_SIGNATURE = 0x0080 } - -enum : uint { IS_TEXT_UNICODE_ILLEGAL_CHARS = 0x0100 } -enum : uint { IS_TEXT_UNICODE_ODD_LENGTH = 0x0200 } -enum : uint { IS_TEXT_UNICODE_DBCS_LEADBYTE = 0x0400 } -enum : uint { IS_TEXT_UNICODE_NULL_BYTES = 0x1000 } - -enum : uint { IS_TEXT_UNICODE_UNICODE_MASK = 0x000F } -enum : uint { IS_TEXT_UNICODE_REVERSE_MASK = 0x00F0 } -enum : uint { IS_TEXT_UNICODE_NOT_UNICODE_MASK = 0x0F00 } -enum : uint { IS_TEXT_UNICODE_NOT_ASCII_MASK = 0xF000 } - -enum : uint { COMPRESSION_FORMAT_NONE = 0x0000 } -enum : uint { COMPRESSION_FORMAT_DEFAULT = 0x0001 } -enum : uint { COMPRESSION_FORMAT_LZNT1 = 0x0002 } -enum : uint { COMPRESSION_ENGINE_STANDARD = 0x0000 } -enum : uint { COMPRESSION_ENGINE_MAXIMUM = 0x0100 } -enum : uint { COMPRESSION_ENGINE_HIBER = 0x0200 } - -extern(Windows) export SIZE_T RtlCompareMemory( - VOID *Source1, - VOID *Source2, - SIZE_T Length); - -// #if defined(_M_AMD64) || defined(_M_IA64) - -// #... -// ... - -// ... - -// #if !defined(_M_AMD64) - -// ... - -// #endif - -// ... - -// ... - -// ... - -// #else - -bit RtlEqualMemory(void* x, void* y, uint len){ return memcmp(x, y, len) == 0; } -void RtlMoveMemory(void* d, void* s, uint len){ memmove(d, s, len); } -void RtlCopyMemory(void* d, void* s, uint len){ memcpy(d, s, len); } -void RtlFillMemory(void* d, uint len, ubyte f){ memset(d, f, len); } -void RtlZeroMemory(void* d, uint len){ memset(d, 0, len); } - -// #endif - -struct _MESSAGE_RESOURCE_ENTRY { - WORD Length; - WORD Flags; - BYTE Text[ 1 ]; -} -alias _MESSAGE_RESOURCE_ENTRY MESSAGE_RESOURCE_ENTRY; -alias _MESSAGE_RESOURCE_ENTRY* PMESSAGE_RESOURCE_ENTRY; - -enum : uint { MESSAGE_RESOURCE_UNICODE = 0x0001 } - -struct _MESSAGE_RESOURCE_BLOCK { - DWORD LowId; - DWORD HighId; - DWORD OffsetToEntries; -} -alias _MESSAGE_RESOURCE_BLOCK MESSAGE_RESOURCE_BLOCK; -alias _MESSAGE_RESOURCE_BLOCK* PMESSAGE_RESOURCE_BLOCK; - -struct _MESSAGE_RESOURCE_DATA { - DWORD NumberOfBlocks; - MESSAGE_RESOURCE_BLOCK Blocks[ 1 ]; -} -alias _MESSAGE_RESOURCE_DATA MESSAGE_RESOURCE_DATA; -alias _MESSAGE_RESOURCE_DATA* PMESSAGE_RESOURCE_DATA; - -struct _OSVERSIONINFOA { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - CHAR szCSDVersion[ 128 ]; -} -alias _OSVERSIONINFOA OSVERSIONINFOA; -alias _OSVERSIONINFOA* POSVERSIONINFOA; -alias _OSVERSIONINFOA* LPOSVERSIONINFOA; - -struct _OSVERSIONINFOW { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - WCHAR szCSDVersion[ 128 ]; -} -alias _OSVERSIONINFOW OSVERSIONINFOW; -alias _OSVERSIONINFOW* POSVERSIONINFOW; -alias _OSVERSIONINFOW* LPOSVERSIONINFOW; -alias _OSVERSIONINFOW RTL_OSVERSIONINFOW; -alias _OSVERSIONINFOW* PRTL_OSVERSIONINFOW; - -// #ifdef UNICODE -// ... -// #else -alias OSVERSIONINFOA OSVERSIONINFO; -alias POSVERSIONINFOA POSVERSIONINFO; -alias LPOSVERSIONINFOA LPOSVERSIONINFO; -// #endif // UNICODE - -struct _OSVERSIONINFOEXA { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - CHAR szCSDVersion[ 128 ]; - WORD wServicePackMajor; - WORD wServicePackMinor; - WORD wSuiteMask; - BYTE wProductType; - BYTE wReserved; -} -alias _OSVERSIONINFOEXA OSVERSIONINFOEXA; -alias _OSVERSIONINFOEXA* POSVERSIONINFOEXA; -alias _OSVERSIONINFOEXA* LPOSVERSIONINFOEXA; - -struct _OSVERSIONINFOEXW { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - WCHAR szCSDVersion[ 128 ]; - WORD wServicePackMajor; - WORD wServicePackMinor; - WORD wSuiteMask; - BYTE wProductType; - BYTE wReserved; -} -alias _OSVERSIONINFOEXW OSVERSIONINFOEXW; -alias _OSVERSIONINFOEXW* POSVERSIONINFOEXW; -alias _OSVERSIONINFOEXW* LPOSVERSIONINFOEXW; -alias _OSVERSIONINFOEXW RTL_OSVERSIONINFOEXW; -alias _OSVERSIONINFOEXW* PRTL_OSVERSIONINFOEXW; - -// #ifdef UNICODE -// ... -// #else -alias OSVERSIONINFOEXA OSVERSIONINFOEX; -alias POSVERSIONINFOEXA POSVERSIONINFOEX; -alias LPOSVERSIONINFOEXA LPOSVERSIONINFOEX; -// #endif // UNICODE - -enum : uint { VER_EQUAL = 1 } -enum : uint { VER_GREATER = 2 } -enum : uint { VER_GREATER_EQUAL = 3 } -enum : uint { VER_LESS = 4 } -enum : uint { VER_LESS_EQUAL = 5 } -enum : uint { VER_AND = 6 } -enum : uint { VER_OR = 7 } - -enum : uint { VER_CONDITION_MASK = 7 } -enum : uint { VER_NUM_BITS_PER_CONDITION_MASK = 3 } - -enum : uint { VER_MINORVERSION = 0x0000001 } -enum : uint { VER_MAJORVERSION = 0x0000002 } -enum : uint { VER_BUILDNUMBER = 0x0000004 } -enum : uint { VER_PLATFORMID = 0x0000008 } -enum : uint { VER_SERVICEPACKMINOR = 0x0000010 } -enum : uint { VER_SERVICEPACKMAJOR = 0x0000020 } -enum : uint { VER_SUITENAME = 0x0000040 } -enum : uint { VER_PRODUCT_TYPE = 0x0000080 } - -enum : uint { VER_NT_WORKSTATION = 0x0000001 } -enum : uint { VER_NT_DOMAIN_CONTROLLER = 0x0000002 } -enum : uint { VER_NT_SERVER = 0x0000003 } - -enum : uint { VER_PLATFORM_WIN32s = 0 } -enum : uint { VER_PLATFORM_WIN32_WINDOWS = 1 } -enum : uint { VER_PLATFORM_WIN32_NT = 2 } - -// #define VER_SET_CONDITION(_m_,_t_,_c_) ((_m_)=VerSetConditionMask((_m_),(_t_),(_c_))) - -extern(Windows) export ULONGLONG VerSetConditionMask( - ULONGLONG ConditionMask, - DWORD TypeMask, - BYTE Condition); - -struct _RTL_CRITICAL_SECTION_DEBUG { - WORD Type; - WORD CreatorBackTraceIndex; - _RTL_CRITICAL_SECTION *CriticalSection; - LIST_ENTRY ProcessLocksList; - DWORD EntryCount; - DWORD ContentionCount; - DWORD Spare[ 2 ]; -} -alias _RTL_CRITICAL_SECTION_DEBUG RTL_CRITICAL_SECTION_DEBUG; -alias _RTL_CRITICAL_SECTION_DEBUG* PRTL_CRITICAL_SECTION_DEBUG; -alias _RTL_CRITICAL_SECTION_DEBUG RTL_RESOURCE_DEBUG; -alias _RTL_CRITICAL_SECTION_DEBUG* PRTL_RESOURCE_DEBUG; - -enum : uint { RTL_CRITSECT_TYPE = 0 } -enum : uint { RTL_RESOURCE_TYPE = 1 } - -struct _RTL_CRITICAL_SECTION { - PRTL_CRITICAL_SECTION_DEBUG DebugInfo; - - LONG LockCount; - LONG RecursionCount; - HANDLE OwningThread; - HANDLE LockSemaphore; - ULONG_PTR SpinCount; -} -alias _RTL_CRITICAL_SECTION RTL_CRITICAL_SECTION; -alias _RTL_CRITICAL_SECTION* PRTL_CRITICAL_SECTION; - -extern(Windows) alias VOID function( PWSTR DllName, PVOID DllBase, SIZE_T DllSize, PVOID Reserved ) RTL_VERIFIER_DLL_LOAD_CALLBACK; - -extern(Windows) alias VOID function( PWSTR DllName, PVOID DllBase, SIZE_T DllSize, PVOID Reserved ) RTL_VERIFIER_DLL_UNLOAD_CALLBACK; - -struct _RTL_VERIFIER_THUNK_DESCRIPTOR { - - PCHAR ThunkName; - PVOID ThunkOldAddress; - PVOID ThunkNewAddress; -} -alias _RTL_VERIFIER_THUNK_DESCRIPTOR RTL_VERIFIER_THUNK_DESCRIPTOR; -alias _RTL_VERIFIER_THUNK_DESCRIPTOR* PRTL_VERIFIER_THUNK_DESCRIPTOR; - -struct _RTL_VERIFIER_DLL_DESCRIPTOR { - - PWCHAR DllName; - DWORD DllFlags; - PVOID DllAddress; - PRTL_VERIFIER_THUNK_DESCRIPTOR DllThunks; -} -alias _RTL_VERIFIER_DLL_DESCRIPTOR RTL_VERIFIER_DLL_DESCRIPTOR; -alias _RTL_VERIFIER_DLL_DESCRIPTOR* PRTL_VERIFIER_DLL_DESCRIPTOR; - -struct _RTL_VERIFIER_PROVIDER_DESCRIPTOR { - - DWORD Length; - PRTL_VERIFIER_DLL_DESCRIPTOR ProviderDlls; - RTL_VERIFIER_DLL_LOAD_CALLBACK ProviderDllLoadCallback; - RTL_VERIFIER_DLL_UNLOAD_CALLBACK ProviderDllUnloadCallback; - - PWSTR VerifierImage; - DWORD VerifierFlags; - DWORD VerifierDebug; -} -alias _RTL_VERIFIER_PROVIDER_DESCRIPTOR RTL_VERIFIER_PROVIDER_DESCRIPTOR; -alias _RTL_VERIFIER_PROVIDER_DESCRIPTOR* PRTL_VERIFIER_PROVIDER_DESCRIPTOR; - -enum : uint { RTL_VRF_FLG_FULL_PAGE_HEAP = 0x0001 } -enum : uint { RTL_VRF_FLG_LOCK_CHECKS = 0x0002 } -enum : uint { RTL_VRF_FLG_HANDLE_CHECKS = 0x0004 } -enum : uint { RTL_VRF_FLG_STACK_CHECKS = 0x0008 } -enum : uint { RTL_VRF_FLG_APPCOMPAT_CHECKS = 0x0010 } - -enum : uint { APPLICATION_VERIFIER_INTERNAL_ERROR = 0x80000000 } -enum : uint { APPLICATION_VERIFIER_INTERNAL_WARNING = 0x40000000 } -enum : uint { APPLICATION_VERIFIER_NO_BREAK = 0x20000000 } -enum : uint { APPLICATION_VERIFIER_RESERVED_BIT_28 = 0x10000000 } - -enum : uint { APPLICATION_VERIFIER_UNKNOWN_ERROR = 0x0001 } -enum : uint { APPLICATION_VERIFIER_ACCESS_VIOLATION = 0x0002 } -enum : uint { APPLICATION_VERIFIER_UNSYNCHRONIZED_ACCESS = 0x0003 } -enum : uint { APPLICATION_VERIFIER_EXTREME_SIZE_REQUEST = 0x0004 } -enum : uint { APPLICATION_VERIFIER_BAD_HEAP_HANDLE = 0x0005 } -enum : uint { APPLICATION_VERIFIER_SWITCHED_HEAP_HANDLE = 0x0006 } -enum : uint { APPLICATION_VERIFIER_DOUBLE_FREE = 0x0007 } -enum : uint { APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK = 0x0008 } -enum : uint { APPLICATION_VERIFIER_DESTROY_PROCESS_HEAP = 0x0009 } -enum : uint { APPLICATION_VERIFIER_UNEXPECTED_EXCEPTION = 0x000A } -enum : uint { APPLICATION_VERIFIER_STACK_OVERFLOW = 0x000B } - -enum : uint { APPLICATION_VERIFIER_TERMINATE_THREAD_CALL = 0x0100 } - -enum : uint { APPLICATION_VERIFIER_EXIT_THREAD_OWNS_LOCK = 0x0200 } -enum : uint { APPLICATION_VERIFIER_LOCK_IN_UNLOADED_DLL = 0x0201 } -enum : uint { APPLICATION_VERIFIER_LOCK_IN_FREED_HEAP = 0x0202 } -enum : uint { APPLICATION_VERIFIER_LOCK_DOUBLE_INITIALIZE = 0x0203 } -enum : uint { APPLICATION_VERIFIER_LOCK_IN_FREED_MEMORY = 0x0204 } -enum : uint { APPLICATION_VERIFIER_LOCK_CORRUPTED = 0x0205 } -enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_OWNER = 0x0206 } -enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_RECURSION_COUNT = 0x0207 } -enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_LOCK_COUNT = 0x0208 } -enum : uint { APPLICATION_VERIFIER_LOCK_OVER_RELEASED = 0x0209 } -enum : uint { APPLICATION_VERIFIER_LOCK_NOT_INITIALIZED = 0x0210 } - -enum : uint { APPLICATION_VERIFIER_INVALID_HANDLE = 0x0300 } - -// #define VERIFIER_STOP(Code, Msg, P1, S1, P2, S2, P3, S3, P4, S4) { RtlApplicationVerifierStop ((Code), (Msg), (ULONG_PTR)(P1),(S1), (ULONG_PTR)(P2),(S2), (ULONG_PTR)(P3),(S3), (ULONG_PTR)(P4),(S4)); } - -extern(Windows) export VOID RtlApplicationVerifierStop( - ULONG_PTR Code, - PCHAR Message, - ULONG_PTR Param1, PCHAR Description1, - ULONG_PTR Param2, PCHAR Description2, - ULONG_PTR Param3, PCHAR Description3, - ULONG_PTR Param4, PCHAR Description4); - -extern(Windows) alias LONG function( _EXCEPTION_POINTERS *ExceptionInfo ) PVECTORED_EXCEPTION_HANDLER; -enum : uint { SEF_DACL_AUTO_INHERIT = 0x01 } -enum : uint { SEF_SACL_AUTO_INHERIT = 0x02 } -enum : uint { SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT = 0x04 } -enum : uint { SEF_AVOID_PRIVILEGE_CHECK = 0x08 } -enum : uint { SEF_AVOID_OWNER_CHECK = 0x10 } -enum : uint { SEF_DEFAULT_OWNER_FROM_PARENT = 0x20 } -enum : uint { SEF_DEFAULT_GROUP_FROM_PARENT = 0x40 } - -alias int _HEAP_INFORMATION_CLASS; -enum { - - HeapCompatibilityInformation, - -} -alias _HEAP_INFORMATION_CLASS HEAP_INFORMATION_CLASS; - -extern(Windows) export DWORD RtlSetHeapInformation( - PVOID HeapHandle, - HEAP_INFORMATION_CLASS HeapInformationClass, - PVOID HeapInformation , - SIZE_T HeapInformationLength ); - -extern(Windows) export DWORD RtlQueryHeapInformation( - PVOID HeapHandle, - HEAP_INFORMATION_CLASS HeapInformationClass, - PVOID HeapInformation , - SIZE_T HeapInformationLength , - PSIZE_T ReturnLength ); - -enum : uint { WT_EXECUTEDEFAULT = 0x00000000 } -enum : uint { WT_EXECUTEINIOTHREAD = 0x00000001 } -enum : uint { WT_EXECUTEINUITHREAD = 0x00000002 } -enum : uint { WT_EXECUTEINWAITTHREAD = 0x00000004 } -enum : uint { WT_EXECUTEONLYONCE = 0x00000008 } -enum : uint { WT_EXECUTEINTIMERTHREAD = 0x00000020 } -enum : uint { WT_EXECUTELONGFUNCTION = 0x00000010 } -enum : uint { WT_EXECUTEINPERSISTENTIOTHREAD = 0x00000040 } -enum : uint { WT_EXECUTEINPERSISTENTTHREAD = 0x00000080 } -// #define WT_SET_MAX_THREADPOOL_THREADS(Flags, Limit) ((Flags) |= (Limit)<<16) -extern(Windows) alias VOID function(PVOID, BOOLEAN ) WAITORTIMERCALLBACKFUNC; -extern(Windows) alias VOID function(PVOID ) WORKERCALLBACKFUNC; -extern(Windows) alias VOID function(DWORD , PVOID, PVOID) APC_CALLBACK_FUNCTION; -enum : uint { WT_EXECUTEINLONGTHREAD = 0x00000010 } -enum : uint { WT_EXECUTEDELETEWAIT = 0x00000008 } - -alias int _ACTIVATION_CONTEXT_INFO_CLASS; -enum { - ActivationContextBasicInformation = 1, - ActivationContextDetailedInformation = 2, - AssemblyDetailedInformationInActivationContext = 3, - FileInformationInAssemblyOfAssemblyInActivationContext = 4, - MaxActivationContextInfoClass, - - AssemblyDetailedInformationInActivationContxt = 3, - FileInformationInAssemblyOfAssemblyInActivationContxt = 4, -} -alias _ACTIVATION_CONTEXT_INFO_CLASS ACTIVATION_CONTEXT_INFO_CLASS; - -alias ACTIVATION_CONTEXT_INFO_CLASS ACTIVATIONCONTEXTINFOCLASS; - -struct _ACTIVATION_CONTEXT_QUERY_INDEX { - DWORD ulAssemblyIndex; - DWORD ulFileIndexInAssembly; -} -alias _ACTIVATION_CONTEXT_QUERY_INDEX ACTIVATION_CONTEXT_QUERY_INDEX; -alias _ACTIVATION_CONTEXT_QUERY_INDEX* PACTIVATION_CONTEXT_QUERY_INDEX; - -alias _ACTIVATION_CONTEXT_QUERY_INDEX* PCACTIVATION_CONTEXT_QUERY_INDEX; - -enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_NONE = 1 } -enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_WIN32_FILE = 2 } -enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_URL = 3 } -enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_ASSEMBLYREF = 4 } - -struct _ASSEMBLY_FILE_DETAILED_INFORMATION { - DWORD ulFlags; - DWORD ulFilenameLength; - DWORD ulPathLength; - PCWSTR lpFileName; - PCWSTR lpFilePath; -} -alias _ASSEMBLY_FILE_DETAILED_INFORMATION ASSEMBLY_FILE_DETAILED_INFORMATION; -alias _ASSEMBLY_FILE_DETAILED_INFORMATION* PASSEMBLY_FILE_DETAILED_INFORMATION; - -alias ASSEMBLY_FILE_DETAILED_INFORMATION* PCASSEMBLY_FILE_DETAILED_INFORMATION; - -alias _ASSEMBLY_FILE_DETAILED_INFORMATION _ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION; -alias ASSEMBLY_FILE_DETAILED_INFORMATION ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION; -alias PASSEMBLY_FILE_DETAILED_INFORMATION PASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION; -alias PCASSEMBLY_FILE_DETAILED_INFORMATION PCASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION; - -struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION { - DWORD ulFlags; - DWORD ulEncodedAssemblyIdentityLength; - DWORD ulManifestPathType; - DWORD ulManifestPathLength; - LARGE_INTEGER liManifestLastWriteTime; - DWORD ulPolicyPathType; - DWORD ulPolicyPathLength; - LARGE_INTEGER liPolicyLastWriteTime; - DWORD ulMetadataSatelliteRosterIndex; - DWORD ulManifestVersionMajor; - DWORD ulManifestVersionMinor; - DWORD ulPolicyVersionMajor; - DWORD ulPolicyVersionMinor; - DWORD ulAssemblyDirectoryNameLength; - - PCWSTR lpAssemblyEncodedAssemblyIdentity; - PCWSTR lpAssemblyManifestPath; - PCWSTR lpAssemblyPolicyPath; - PCWSTR lpAssemblyDirectoryName; - DWORD ulFileCount; -} -alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; -alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; - -alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; - -struct _ACTIVATION_CONTEXT_DETAILED_INFORMATION { - DWORD dwFlags; - DWORD ulFormatVersion; - DWORD ulAssemblyCount; - DWORD ulRootManifestPathType; - DWORD ulRootManifestPathChars; - DWORD ulRootConfigurationPathType; - DWORD ulRootConfigurationPathChars; - DWORD ulAppDirPathType; - DWORD ulAppDirPathChars; - PCWSTR lpRootManifestPath; - PCWSTR lpRootConfigurationPath; - PCWSTR lpAppDirPath; -} -alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION ACTIVATION_CONTEXT_DETAILED_INFORMATION; -alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION* PACTIVATION_CONTEXT_DETAILED_INFORMATION; - -alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION* PCACTIVATION_CONTEXT_DETAILED_INFORMATION; - -enum : uint { DLL_PROCESS_ATTACH = 1 } -enum : uint { DLL_THREAD_ATTACH = 2 } -enum : uint { DLL_THREAD_DETACH = 3 } -enum : uint { DLL_PROCESS_DETACH = 0 } -enum : uint { DLL_PROCESS_VERIFIER = 4 } - -enum : uint { EVENTLOG_SEQUENTIAL_READ = 0x0001 } -enum : uint { EVENTLOG_SEEK_READ = 0x0002 } -enum : uint { EVENTLOG_FORWARDS_READ = 0x0004 } -enum : uint { EVENTLOG_BACKWARDS_READ = 0x0008 } - -enum : uint { EVENTLOG_SUCCESS = 0x0000 } -enum : uint { EVENTLOG_ERROR_TYPE = 0x0001 } -enum : uint { EVENTLOG_WARNING_TYPE = 0x0002 } -enum : uint { EVENTLOG_INFORMATION_TYPE = 0x0004 } -enum : uint { EVENTLOG_AUDIT_SUCCESS = 0x0008 } -enum : uint { EVENTLOG_AUDIT_FAILURE = 0x0010 } - -enum : uint { EVENTLOG_START_PAIRED_EVENT = 0x0001 } -enum : uint { EVENTLOG_END_PAIRED_EVENT = 0x0002 } -enum : uint { EVENTLOG_END_ALL_PAIRED_EVENTS = 0x0004 } -enum : uint { EVENTLOG_PAIRED_EVENT_ACTIVE = 0x0008 } -enum : uint { EVENTLOG_PAIRED_EVENT_INACTIVE = 0x0010 } - -struct _EVENTLOGRECORD { - DWORD Length; - DWORD Reserved; - DWORD RecordNumber; - DWORD TimeGenerated; - DWORD TimeWritten; - DWORD EventID; - WORD EventType; - WORD NumStrings; - WORD EventCategory; - WORD ReservedFlags; - DWORD ClosingRecordNumber; - DWORD StringOffset; - DWORD UserSidLength; - DWORD UserSidOffset; - DWORD DataLength; - DWORD DataOffset; - -} -alias _EVENTLOGRECORD EVENTLOGRECORD; -alias _EVENTLOGRECORD* PEVENTLOGRECORD; - -enum : uint { MAXLOGICALLOGNAMESIZE = 256 } - -// #if _MSC_VER >= 1200 -// #pragma warning(push) -// #endif -// #pragma warning(disable : 4200) -struct _EVENTSFORLOGFILE { - DWORD ulSize; - WCHAR szLogicalLogFile[MAXLOGICALLOGNAMESIZE]; - DWORD ulNumRecords; - EVENTLOGRECORD pEventLogRecords[]; -} -alias _EVENTSFORLOGFILE EVENTSFORLOGFILE; -alias _EVENTSFORLOGFILE* PEVENTSFORLOGFILE; - -struct _PACKEDEVENTINFO { - DWORD ulSize; - DWORD ulNumEventsForLogFile; - DWORD ulOffsets[]; -} -alias _PACKEDEVENTINFO PACKEDEVENTINFO; -alias _PACKEDEVENTINFO* PPACKEDEVENTINFO; - -// #if _MSC_VER >= 1200 -// #pragma warning(pop) -// #else -// #... -// #endif - -enum : uint { KEY_QUERY_VALUE = 0x0001 } -enum : uint { KEY_SET_VALUE = 0x0002 } -enum : uint { KEY_CREATE_SUB_KEY = 0x0004 } -enum : uint { KEY_ENUMERATE_SUB_KEYS = 0x0008 } -enum : uint { KEY_NOTIFY = 0x0010 } -enum : uint { KEY_CREATE_LINK = 0x0020 } -enum : uint { KEY_WOW64_32KEY = 0x0200 } -enum : uint { KEY_WOW64_64KEY = 0x0100 } -enum : uint { KEY_WOW64_RES = 0x0300 } - -enum : uint { KEY_READ = (STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY) & (~SYNCHRONIZE) } - -enum : uint { KEY_WRITE = (STANDARD_RIGHTS_WRITE | KEY_SET_VALUE | KEY_CREATE_SUB_KEY) & (~SYNCHRONIZE) } - -enum : uint { KEY_EXECUTE = KEY_READ & ~SYNCHRONIZE } - -enum : uint { KEY_ALL_ACCESS = (STANDARD_RIGHTS_ALL | KEY_QUERY_VALUE | KEY_SET_VALUE | KEY_CREATE_SUB_KEY | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY | KEY_CREATE_LINK) & (~SYNCHRONIZE) } - -enum : uint { REG_OPTION_RESERVED = 0x00000000 } - -enum : uint { REG_OPTION_NON_VOLATILE = 0x00000000 } - -enum : uint { REG_OPTION_VOLATILE = 0x00000001 } - -enum : uint { REG_OPTION_CREATE_LINK = 0x00000002 } - -enum : uint { REG_OPTION_BACKUP_RESTORE = 0x00000004 } - -enum : uint { REG_OPTION_OPEN_LINK = 0x00000008 } - -enum : uint { REG_LEGAL_OPTION = REG_OPTION_RESERVED | REG_OPTION_NON_VOLATILE | REG_OPTION_VOLATILE | REG_OPTION_CREATE_LINK | REG_OPTION_BACKUP_RESTORE | REG_OPTION_OPEN_LINK } - -enum : uint { REG_CREATED_NEW_KEY = 0x00000001 } -enum : uint { REG_OPENED_EXISTING_KEY = 0x00000002 } - -enum : uint { REG_STANDARD_FORMAT = 1 } -enum : uint { REG_LATEST_FORMAT = 2 } -enum : uint { REG_NO_COMPRESSION = 4 } - -enum : uint { REG_WHOLE_HIVE_VOLATILE = 0x00000001 } -enum : uint { REG_REFRESH_HIVE = 0x00000002 } -enum : uint { REG_NO_LAZY_FLUSH = 0x00000004 } -enum : uint { REG_FORCE_RESTORE = 0x00000008 } - -enum : uint { REG_NOTIFY_CHANGE_NAME = 0x00000001 } -enum : uint { REG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002 } -enum : uint { REG_NOTIFY_CHANGE_LAST_SET = 0x00000004 } -enum : uint { REG_NOTIFY_CHANGE_SECURITY = 0x00000008 } - -enum : uint { REG_LEGAL_CHANGE_FILTER = REG_NOTIFY_CHANGE_NAME | REG_NOTIFY_CHANGE_ATTRIBUTES | REG_NOTIFY_CHANGE_LAST_SET | REG_NOTIFY_CHANGE_SECURITY } - -enum : uint { REG_NONE = 0 } -enum : uint { REG_SZ = 1 } -enum : uint { REG_EXPAND_SZ = 2 } - -enum : uint { REG_BINARY = 3 } -enum : uint { REG_DWORD = 4 } -enum : uint { REG_DWORD_LITTLE_ENDIAN = 4 } -enum : uint { REG_DWORD_BIG_ENDIAN = 5 } -enum : uint { REG_LINK = 6 } -enum : uint { REG_MULTI_SZ = 7 } -enum : uint { REG_RESOURCE_LIST = 8 } -enum : uint { REG_FULL_RESOURCE_DESCRIPTOR = 9 } -enum : uint { REG_RESOURCE_REQUIREMENTS_LIST = 10 } -enum : uint { REG_QWORD = 11 } -enum : uint { REG_QWORD_LITTLE_ENDIAN = 11 } - -enum : uint { SERVICE_KERNEL_DRIVER = 0x00000001 } -enum : uint { SERVICE_FILE_SYSTEM_DRIVER = 0x00000002 } -enum : uint { SERVICE_ADAPTER = 0x00000004 } -enum : uint { SERVICE_RECOGNIZER_DRIVER = 0x00000008 } - -enum : uint { SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER } - -enum : uint { SERVICE_WIN32_OWN_PROCESS = 0x00000010 } -enum : uint { SERVICE_WIN32_SHARE_PROCESS = 0x00000020 } -enum : uint { SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS } - -enum : uint { SERVICE_INTERACTIVE_PROCESS = 0x00000100 } - -enum : uint { SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS } - -enum : uint { SERVICE_BOOT_START = 0x00000000 } -enum : uint { SERVICE_SYSTEM_START = 0x00000001 } -enum : uint { SERVICE_AUTO_START = 0x00000002 } -enum : uint { SERVICE_DEMAND_START = 0x00000003 } -enum : uint { SERVICE_DISABLED = 0x00000004 } - -enum : uint { SERVICE_ERROR_IGNORE = 0x00000000 } -enum : uint { SERVICE_ERROR_NORMAL = 0x00000001 } -enum : uint { SERVICE_ERROR_SEVERE = 0x00000002 } -enum : uint { SERVICE_ERROR_CRITICAL = 0x00000003 } - -alias int _CM_SERVICE_NODE_TYPE; -enum { - DriverType = SERVICE_KERNEL_DRIVER, - FileSystemType = SERVICE_FILE_SYSTEM_DRIVER, - Win32ServiceOwnProcess = SERVICE_WIN32_OWN_PROCESS, - Win32ServiceShareProcess = SERVICE_WIN32_SHARE_PROCESS, - AdapterType = SERVICE_ADAPTER, - RecognizerType = SERVICE_RECOGNIZER_DRIVER, -} -alias _CM_SERVICE_NODE_TYPE SERVICE_NODE_TYPE; - -alias int _CM_SERVICE_LOAD_TYPE; -enum { - BootLoad = SERVICE_BOOT_START, - SystemLoad = SERVICE_SYSTEM_START, - AutoLoad = SERVICE_AUTO_START, - DemandLoad = SERVICE_DEMAND_START, - DisableLoad = SERVICE_DISABLED, -} -alias _CM_SERVICE_LOAD_TYPE SERVICE_LOAD_TYPE; - -alias int _CM_ERROR_CONTROL_TYPE; -enum { - IgnoreError = SERVICE_ERROR_IGNORE, - NormalError = SERVICE_ERROR_NORMAL, - SevereError = SERVICE_ERROR_SEVERE, - CriticalError = SERVICE_ERROR_CRITICAL, -} -alias _CM_ERROR_CONTROL_TYPE SERVICE_ERROR_TYPE; - -enum : uint { TAPE_ERASE_SHORT = 0 } -enum : uint { TAPE_ERASE_LONG = 1 } - -struct _TAPE_ERASE { - DWORD Type; - BOOLEAN Immediate; -} -alias _TAPE_ERASE TAPE_ERASE; -alias _TAPE_ERASE* PTAPE_ERASE; - -enum : uint { TAPE_LOAD = 0 } -enum : uint { TAPE_UNLOAD = 1 } -enum : uint { TAPE_TENSION = 2 } -enum : uint { TAPE_LOCK = 3 } -enum : uint { TAPE_UNLOCK = 4 } -enum : uint { TAPE_FORMAT = 5 } - -struct _TAPE_PREPARE { - DWORD Operation; - BOOLEAN Immediate; -} -alias _TAPE_PREPARE TAPE_PREPARE; -alias _TAPE_PREPARE* PTAPE_PREPARE; - -enum : uint { TAPE_SETMARKS = 0 } -enum : uint { TAPE_FILEMARKS = 1 } -enum : uint { TAPE_SHORT_FILEMARKS = 2 } -enum : uint { TAPE_LONG_FILEMARKS = 3 } - -struct _TAPE_WRITE_MARKS { - DWORD Type; - DWORD Count; - BOOLEAN Immediate; -} -alias _TAPE_WRITE_MARKS TAPE_WRITE_MARKS; -alias _TAPE_WRITE_MARKS* PTAPE_WRITE_MARKS; - -enum : uint { TAPE_ABSOLUTE_POSITION = 0 } -enum : uint { TAPE_LOGICAL_POSITION = 1 } -enum : uint { TAPE_PSEUDO_LOGICAL_POSITION = 2 } - -struct _TAPE_GET_POSITION { - DWORD Type; - DWORD Partition; - LARGE_INTEGER Offset; -} -alias _TAPE_GET_POSITION TAPE_GET_POSITION; -alias _TAPE_GET_POSITION* PTAPE_GET_POSITION; - -enum : uint { TAPE_REWIND = 0 } -enum : uint { TAPE_ABSOLUTE_BLOCK = 1 } -enum : uint { TAPE_LOGICAL_BLOCK = 2 } -enum : uint { TAPE_PSEUDO_LOGICAL_BLOCK = 3 } -enum : uint { TAPE_SPACE_END_OF_DATA = 4 } -enum : uint { TAPE_SPACE_RELATIVE_BLOCKS = 5 } -enum : uint { TAPE_SPACE_FILEMARKS = 6 } -enum : uint { TAPE_SPACE_SEQUENTIAL_FMKS = 7 } -enum : uint { TAPE_SPACE_SETMARKS = 8 } -enum : uint { TAPE_SPACE_SEQUENTIAL_SMKS = 9 } - -struct _TAPE_SET_POSITION { - DWORD Method; - DWORD Partition; - LARGE_INTEGER Offset; - BOOLEAN Immediate; -} -alias _TAPE_SET_POSITION TAPE_SET_POSITION; -alias _TAPE_SET_POSITION* PTAPE_SET_POSITION; - -enum : uint { TAPE_DRIVE_FIXED = 0x00000001 } -enum : uint { TAPE_DRIVE_SELECT = 0x00000002 } -enum : uint { TAPE_DRIVE_INITIATOR = 0x00000004 } - -enum : uint { TAPE_DRIVE_ERASE_SHORT = 0x00000010 } -enum : uint { TAPE_DRIVE_ERASE_LONG = 0x00000020 } -enum : uint { TAPE_DRIVE_ERASE_BOP_ONLY = 0x00000040 } -enum : uint { TAPE_DRIVE_ERASE_IMMEDIATE = 0x00000080 } - -enum : uint { TAPE_DRIVE_TAPE_CAPACITY = 0x00000100 } -enum : uint { TAPE_DRIVE_TAPE_REMAINING = 0x00000200 } -enum : uint { TAPE_DRIVE_FIXED_BLOCK = 0x00000400 } -enum : uint { TAPE_DRIVE_VARIABLE_BLOCK = 0x00000800 } - -enum : uint { TAPE_DRIVE_WRITE_PROTECT = 0x00001000 } -enum : uint { TAPE_DRIVE_EOT_WZ_SIZE = 0x00002000 } - -enum : uint { TAPE_DRIVE_ECC = 0x00010000 } -enum : uint { TAPE_DRIVE_COMPRESSION = 0x00020000 } -enum : uint { TAPE_DRIVE_PADDING = 0x00040000 } -enum : uint { TAPE_DRIVE_REPORT_SMKS = 0x00080000 } - -enum : uint { TAPE_DRIVE_GET_ABSOLUTE_BLK = 0x00100000 } -enum : uint { TAPE_DRIVE_GET_LOGICAL_BLK = 0x00200000 } -enum : uint { TAPE_DRIVE_SET_EOT_WZ_SIZE = 0x00400000 } - -enum : uint { TAPE_DRIVE_EJECT_MEDIA = 0x01000000 } -enum : uint { TAPE_DRIVE_CLEAN_REQUESTS = 0x02000000 } -enum : uint { TAPE_DRIVE_SET_CMP_BOP_ONLY = 0x04000000 } - -enum : uint { TAPE_DRIVE_RESERVED_BIT = 0x80000000 } - -enum : uint { TAPE_DRIVE_LOAD_UNLOAD = 0x80000001 } -enum : uint { TAPE_DRIVE_TENSION = 0x80000002 } -enum : uint { TAPE_DRIVE_LOCK_UNLOCK = 0x80000004 } -enum : uint { TAPE_DRIVE_REWIND_IMMEDIATE = 0x80000008 } - -enum : uint { TAPE_DRIVE_SET_BLOCK_SIZE = 0x80000010 } -enum : uint { TAPE_DRIVE_LOAD_UNLD_IMMED = 0x80000020 } -enum : uint { TAPE_DRIVE_TENSION_IMMED = 0x80000040 } -enum : uint { TAPE_DRIVE_LOCK_UNLK_IMMED = 0x80000080 } - -enum : uint { TAPE_DRIVE_SET_ECC = 0x80000100 } -enum : uint { TAPE_DRIVE_SET_COMPRESSION = 0x80000200 } -enum : uint { TAPE_DRIVE_SET_PADDING = 0x80000400 } -enum : uint { TAPE_DRIVE_SET_REPORT_SMKS = 0x80000800 } - -enum : uint { TAPE_DRIVE_ABSOLUTE_BLK = 0x80001000 } -enum : uint { TAPE_DRIVE_ABS_BLK_IMMED = 0x80002000 } -enum : uint { TAPE_DRIVE_LOGICAL_BLK = 0x80004000 } -enum : uint { TAPE_DRIVE_LOG_BLK_IMMED = 0x80008000 } - -enum : uint { TAPE_DRIVE_END_OF_DATA = 0x80010000 } -enum : uint { TAPE_DRIVE_RELATIVE_BLKS = 0x80020000 } -enum : uint { TAPE_DRIVE_FILEMARKS = 0x80040000 } -enum : uint { TAPE_DRIVE_SEQUENTIAL_FMKS = 0x80080000 } - -enum : uint { TAPE_DRIVE_SETMARKS = 0x80100000 } -enum : uint { TAPE_DRIVE_SEQUENTIAL_SMKS = 0x80200000 } -enum : uint { TAPE_DRIVE_REVERSE_POSITION = 0x80400000 } -enum : uint { TAPE_DRIVE_SPACE_IMMEDIATE = 0x80800000 } - -enum : uint { TAPE_DRIVE_WRITE_SETMARKS = 0x81000000 } -enum : uint { TAPE_DRIVE_WRITE_FILEMARKS = 0x82000000 } -enum : uint { TAPE_DRIVE_WRITE_SHORT_FMKS = 0x84000000 } -enum : uint { TAPE_DRIVE_WRITE_LONG_FMKS = 0x88000000 } - -enum : uint { TAPE_DRIVE_WRITE_MARK_IMMED = 0x90000000 } -enum : uint { TAPE_DRIVE_FORMAT = 0xA0000000 } -enum : uint { TAPE_DRIVE_FORMAT_IMMEDIATE = 0xC0000000 } -enum : uint { TAPE_DRIVE_HIGH_FEATURES = 0x80000000 } - -struct _TAPE_GET_DRIVE_PARAMETERS { - BOOLEAN ECC; - BOOLEAN Compression; - BOOLEAN DataPadding; - BOOLEAN ReportSetmarks; - DWORD DefaultBlockSize; - DWORD MaximumBlockSize; - DWORD MinimumBlockSize; - DWORD MaximumPartitionCount; - DWORD FeaturesLow; - DWORD FeaturesHigh; - DWORD EOTWarningZoneSize; -} -alias _TAPE_GET_DRIVE_PARAMETERS TAPE_GET_DRIVE_PARAMETERS; -alias _TAPE_GET_DRIVE_PARAMETERS* PTAPE_GET_DRIVE_PARAMETERS; - -struct _TAPE_SET_DRIVE_PARAMETERS { - BOOLEAN ECC; - BOOLEAN Compression; - BOOLEAN DataPadding; - BOOLEAN ReportSetmarks; - DWORD EOTWarningZoneSize; -} -alias _TAPE_SET_DRIVE_PARAMETERS TAPE_SET_DRIVE_PARAMETERS; -alias _TAPE_SET_DRIVE_PARAMETERS* PTAPE_SET_DRIVE_PARAMETERS; - -struct _TAPE_GET_MEDIA_PARAMETERS { - LARGE_INTEGER Capacity; - LARGE_INTEGER Remaining; - DWORD BlockSize; - DWORD PartitionCount; - BOOLEAN WriteProtected; -} -alias _TAPE_GET_MEDIA_PARAMETERS TAPE_GET_MEDIA_PARAMETERS; -alias _TAPE_GET_MEDIA_PARAMETERS* PTAPE_GET_MEDIA_PARAMETERS; - -struct _TAPE_SET_MEDIA_PARAMETERS { - DWORD BlockSize; -} -alias _TAPE_SET_MEDIA_PARAMETERS TAPE_SET_MEDIA_PARAMETERS; -alias _TAPE_SET_MEDIA_PARAMETERS* PTAPE_SET_MEDIA_PARAMETERS; - -enum : uint { TAPE_FIXED_PARTITIONS = 0 } -enum : uint { TAPE_SELECT_PARTITIONS = 1 } -enum : uint { TAPE_INITIATOR_PARTITIONS = 2 } - -struct _TAPE_CREATE_PARTITION { - DWORD Method; - DWORD Count; - DWORD Size; -} -alias _TAPE_CREATE_PARTITION TAPE_CREATE_PARTITION; -alias _TAPE_CREATE_PARTITION* PTAPE_CREATE_PARTITION; - -enum : uint { TAPE_QUERY_DRIVE_PARAMETERS = 0 } -enum : uint { TAPE_QUERY_MEDIA_CAPACITY = 1 } -enum : uint { TAPE_CHECK_FOR_DRIVE_PROBLEM = 2 } -enum : uint { TAPE_QUERY_IO_ERROR_DATA = 3 } -enum : uint { TAPE_QUERY_DEVICE_ERROR_DATA = 4 } - -struct _TAPE_WMI_OPERATIONS { - DWORD Method; - DWORD DataBufferSize; - PVOID DataBuffer; -} -alias _TAPE_WMI_OPERATIONS TAPE_WMI_OPERATIONS; -alias _TAPE_WMI_OPERATIONS* PTAPE_WMI_OPERATIONS; - -alias int _TAPE_DRIVE_PROBLEM_TYPE; -enum { - TapeDriveProblemNone, - TapeDriveReadWriteWarning, - TapeDriveReadWriteError, - TapeDriveReadWarning, - TapeDriveWriteWarning, - TapeDriveReadError, - TapeDriveWriteError, - TapeDriveHardwareError, - TapeDriveUnsupportedMedia, - TapeDriveScsiConnectionError, - TapeDriveTimetoClean, - TapeDriveCleanDriveNow, - TapeDriveMediaLifeExpired, - TapeDriveSnappedTape, -} -alias _TAPE_DRIVE_PROBLEM_TYPE TAPE_DRIVE_PROBLEM_TYPE; - -// #if defined(_M_AMD64) && !defined(__midl) - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #endif // _M_AMD64 && !defined(__midl) - -// #if (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED // winnt_only -enum : uint { ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION = 1 } -enum : uint { ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION = 2 } -enum : uint { ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION = 3 } -enum : uint { ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION = 4 } -enum : uint { ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION = 5 } -enum : uint { ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION = 6 } -enum : uint { ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION = 7 } -enum : uint { ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE = 8 } -// #endif // winnt_only - -// #ifdef __cplusplus -// } -// #endif - -// #endif /* _WINNT_ */ - DELETED src/win32/ansi/winreg.d Index: src/win32/ansi/winreg.d ================================================================== --- src/win32/ansi/winreg.d +++ src/win32/ansi/winreg.d @@ -1,670 +0,0 @@ -module win32.ansi.winreg; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.winnt, win32.ansi.winbase; - -// #ifndef _WINREG_ -// #define _WINREG_ - -// #ifdef _MAC -// #... -// #endif - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #ifndef WINVER -// #... -// #endif /* !WINVER */ - -alias ACCESS_MASK REGSAM; - -const HKEY HKEY_CLASSES_ROOT = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000000) ; -const HKEY HKEY_CURRENT_USER = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000001) ; -const HKEY HKEY_LOCAL_MACHINE = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000002) ; -const HKEY HKEY_USERS = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000003) ; -const HKEY HKEY_PERFORMANCE_DATA = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000004) ; -const HKEY HKEY_PERFORMANCE_TEXT = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000050) ; -const HKEY HKEY_PERFORMANCE_NLSTEXT = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000060) ; -// #if(WINVER >= 0x0400) -const HKEY HKEY_CURRENT_CONFIG = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000005) ; -const HKEY HKEY_DYN_DATA = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000006) ; - -// #ifndef _PROVIDER_STRUCTS_DEFINED -// #define _PROVIDER_STRUCTS_DEFINED - -enum : uint { PROVIDER_KEEPS_VALUE_LENGTH = 0x1 } -struct val_context { - int valuelen; - LPVOID value_context; - LPVOID val_buff_ptr; -} - -alias val_context* PVALCONTEXT; - -struct pvalueA { - LPSTR pv_valuename; - int pv_valuelen; - LPVOID pv_value_context; - DWORD pv_type; -} -alias pvalueA PVALUEA; -alias pvalueA* PPVALUEA; - -struct pvalueW { - LPWSTR pv_valuename; - int pv_valuelen; - LPVOID pv_value_context; - DWORD pv_type; -} -alias pvalueW PVALUEW; -alias pvalueW* PPVALUEW; - -// #ifdef UNICODE -// ... -// #else -alias PVALUEA PVALUE; -alias PPVALUEA PPVALUE; -// #endif // UNICODE - -// typedef DWORD _cdecl QUERYHANDLER (LPVOID keycontext, PVALCONTEXT val_list, DWORD num_vals, LPVOID outputbuffer, DWORD FAR *total_outlen, DWORD input_blen); - -extern(Windows) alias DWORD function(LPVOID keycontext, PVALCONTEXT val_list, DWORD num_vals, LPVOID outputbuffer, DWORD* total_outlen, DWORD input_blen) PQUERYHANDLER; - -struct provider_info { - PQUERYHANDLER pi_R0_1val; - PQUERYHANDLER pi_R0_allvals; - PQUERYHANDLER pi_R3_1val; - PQUERYHANDLER pi_R3_allvals; - DWORD pi_flags; - LPVOID pi_key_context; -} -alias provider_info REG_PROVIDER; - -alias provider_info* PPROVIDER; - -struct value_entA { - LPSTR ve_valuename; - DWORD ve_valuelen; - DWORD_PTR ve_valueptr; - DWORD ve_type; -} -alias value_entA VALENTA; -alias value_entA* PVALENTA; - -struct value_entW { - LPWSTR ve_valuename; - DWORD ve_valuelen; - DWORD_PTR ve_valueptr; - DWORD ve_type; -} -alias value_entW VALENTW; -alias value_entW* PVALENTW; - -// #ifdef UNICODE -// ... -// #else -alias VALENTA VALENT; -alias PVALENTA PVALENT; -// #endif // UNICODE - -// #endif // not(_PROVIDER_STRUCTS_DEFINED) - -// #endif /* WINVER >= 0x0400 */ - -alias NULL WIN31_CLASS; - -extern(Windows) export LONG RegCloseKey( - HKEY hKey); - -extern(Windows) export LONG RegOverridePredefKey( - HKEY hKey, - HKEY hNewHKey); - -extern(Windows) export LONG RegOpenUserClassesRoot( - HANDLE hToken, - DWORD dwOptions, - REGSAM samDesired, - PHKEY phkResult); - -extern(Windows) export LONG RegOpenCurrentUser( - REGSAM samDesired, - PHKEY phkResult); - -extern(Windows) export LONG RegDisablePredefinedCache(); - -extern(Windows) export LONG RegConnectRegistryA( - LPCSTR lpMachineName, - HKEY hKey, - PHKEY phkResult); -extern(Windows) export LONG RegConnectRegistryW( - LPCWSTR lpMachineName, - HKEY hKey, - PHKEY phkResult); -// #ifdef UNICODE -// #... -// #else -alias RegConnectRegistryA RegConnectRegistry; -// #endif // !UNICODE - -extern(Windows) export LONG RegCreateKeyA( - HKEY hKey, - LPCSTR lpSubKey, - PHKEY phkResult); -extern(Windows) export LONG RegCreateKeyW( - HKEY hKey, - LPCWSTR lpSubKey, - PHKEY phkResult); -// #ifdef UNICODE -// #... -// #else -alias RegCreateKeyA RegCreateKey; -// #endif // !UNICODE - -extern(Windows) export LONG RegCreateKeyExA( - HKEY hKey, - LPCSTR lpSubKey, - DWORD Reserved, - LPSTR lpClass, - DWORD dwOptions, - REGSAM samDesired, - LPSECURITY_ATTRIBUTES lpSecurityAttributes, - PHKEY phkResult, - LPDWORD lpdwDisposition); -extern(Windows) export LONG RegCreateKeyExW( - HKEY hKey, - LPCWSTR lpSubKey, - DWORD Reserved, - LPWSTR lpClass, - DWORD dwOptions, - REGSAM samDesired, - LPSECURITY_ATTRIBUTES lpSecurityAttributes, - PHKEY phkResult, - LPDWORD lpdwDisposition); -// #ifdef UNICODE -// #... -// #else -alias RegCreateKeyExA RegCreateKeyEx; -// #endif // !UNICODE - -extern(Windows) export LONG RegDeleteKeyA( - HKEY hKey, - LPCSTR lpSubKey); -extern(Windows) export LONG RegDeleteKeyW( - HKEY hKey, - LPCWSTR lpSubKey); -// #ifdef UNICODE -// #... -// #else -alias RegDeleteKeyA RegDeleteKey; -// #endif // !UNICODE - -extern(Windows) export LONG RegDeleteValueA( - HKEY hKey, - LPCSTR lpValueName); -extern(Windows) export LONG RegDeleteValueW( - HKEY hKey, - LPCWSTR lpValueName); -// #ifdef UNICODE -// #... -// #else -alias RegDeleteValueA RegDeleteValue; -// #endif // !UNICODE - -extern(Windows) export LONG RegEnumKeyA( - HKEY hKey, - DWORD dwIndex, - LPSTR lpName, - DWORD cbName); -extern(Windows) export LONG RegEnumKeyW( - HKEY hKey, - DWORD dwIndex, - LPWSTR lpName, - DWORD cbName); -// #ifdef UNICODE -// #... -// #else -alias RegEnumKeyA RegEnumKey; -// #endif // !UNICODE - -extern(Windows) export LONG RegEnumKeyExA( - HKEY hKey, - DWORD dwIndex, - LPSTR lpName, - LPDWORD lpcbName, - LPDWORD lpReserved, - LPSTR lpClass, - LPDWORD lpcbClass, - PFILETIME lpftLastWriteTime); -extern(Windows) export LONG RegEnumKeyExW( - HKEY hKey, - DWORD dwIndex, - LPWSTR lpName, - LPDWORD lpcbName, - LPDWORD lpReserved, - LPWSTR lpClass, - LPDWORD lpcbClass, - PFILETIME lpftLastWriteTime); -// #ifdef UNICODE -// #... -// #else -alias RegEnumKeyExA RegEnumKeyEx; -// #endif // !UNICODE - -extern(Windows) export LONG RegEnumValueA( - HKEY hKey, - DWORD dwIndex, - LPSTR lpValueName, - LPDWORD lpcbValueName, - LPDWORD lpReserved, - LPDWORD lpType, - LPBYTE lpData, - LPDWORD lpcbData); -extern(Windows) export LONG RegEnumValueW( - HKEY hKey, - DWORD dwIndex, - LPWSTR lpValueName, - LPDWORD lpcbValueName, - LPDWORD lpReserved, - LPDWORD lpType, - LPBYTE lpData, - LPDWORD lpcbData); -// #ifdef UNICODE -// #... -// #else -alias RegEnumValueA RegEnumValue; -// #endif // !UNICODE - -extern(Windows) export LONG RegFlushKey( - HKEY hKey); - -extern(Windows) export LONG RegGetKeySecurity( - HKEY hKey, - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR pSecurityDescriptor, - LPDWORD lpcbSecurityDescriptor); - -extern(Windows) export LONG RegLoadKeyA( - HKEY hKey, - LPCSTR lpSubKey, - LPCSTR lpFile); -extern(Windows) export LONG RegLoadKeyW( - HKEY hKey, - LPCWSTR lpSubKey, - LPCWSTR lpFile); -// #ifdef UNICODE -// #... -// #else -alias RegLoadKeyA RegLoadKey; -// #endif // !UNICODE - -extern(Windows) export LONG RegNotifyChangeKeyValue( - HKEY hKey, - BOOL bWatchSubtree, - DWORD dwNotifyFilter, - HANDLE hEvent, - BOOL fAsynchronus); - -extern(Windows) export LONG RegOpenKeyA( - HKEY hKey, - LPCSTR lpSubKey, - PHKEY phkResult); -extern(Windows) export LONG RegOpenKeyW( - HKEY hKey, - LPCWSTR lpSubKey, - PHKEY phkResult); -// #ifdef UNICODE -// #... -// #else -alias RegOpenKeyA RegOpenKey; -// #endif // !UNICODE - -extern(Windows) export LONG RegOpenKeyExA( - HKEY hKey, - LPCSTR lpSubKey, - DWORD ulOptions, - REGSAM samDesired, - PHKEY phkResult); -extern(Windows) export LONG RegOpenKeyExW( - HKEY hKey, - LPCWSTR lpSubKey, - DWORD ulOptions, - REGSAM samDesired, - PHKEY phkResult); -// #ifdef UNICODE -// #... -// #else -alias RegOpenKeyExA RegOpenKeyEx; -// #endif // !UNICODE - -extern(Windows) export LONG RegQueryInfoKeyA( - HKEY hKey, - LPSTR lpClass, - LPDWORD lpcbClass, - LPDWORD lpReserved, - LPDWORD lpcSubKeys, - LPDWORD lpcbMaxSubKeyLen, - LPDWORD lpcbMaxClassLen, - LPDWORD lpcValues, - LPDWORD lpcbMaxValueNameLen, - LPDWORD lpcbMaxValueLen, - LPDWORD lpcbSecurityDescriptor, - PFILETIME lpftLastWriteTime); -extern(Windows) export LONG RegQueryInfoKeyW( - HKEY hKey, - LPWSTR lpClass, - LPDWORD lpcbClass, - LPDWORD lpReserved, - LPDWORD lpcSubKeys, - LPDWORD lpcbMaxSubKeyLen, - LPDWORD lpcbMaxClassLen, - LPDWORD lpcValues, - LPDWORD lpcbMaxValueNameLen, - LPDWORD lpcbMaxValueLen, - LPDWORD lpcbSecurityDescriptor, - PFILETIME lpftLastWriteTime); -// #ifdef UNICODE -// #... -// #else -alias RegQueryInfoKeyA RegQueryInfoKey; -// #endif // !UNICODE - -extern(Windows) export LONG RegQueryValueA( - HKEY hKey, - LPCSTR lpSubKey, - LPSTR lpValue, - PLONG lpcbValue); -extern(Windows) export LONG RegQueryValueW( - HKEY hKey, - LPCWSTR lpSubKey, - LPWSTR lpValue, - PLONG lpcbValue); -// #ifdef UNICODE -// #... -// #else -alias RegQueryValueA RegQueryValue; -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export LONG RegQueryMultipleValuesA( - HKEY hKey, - PVALENTA val_list, - DWORD num_vals, - LPSTR lpValueBuf, - LPDWORD ldwTotsize); -extern(Windows) export LONG RegQueryMultipleValuesW( - HKEY hKey, - PVALENTW val_list, - DWORD num_vals, - LPWSTR lpValueBuf, - LPDWORD ldwTotsize); -// #ifdef UNICODE -// #... -// #else -alias RegQueryMultipleValuesA RegQueryMultipleValues; -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export LONG RegQueryValueExA( - HKEY hKey, - LPCSTR lpValueName, - LPDWORD lpReserved, - LPDWORD lpType, - LPBYTE lpData, - LPDWORD lpcbData); -extern(Windows) export LONG RegQueryValueExW( - HKEY hKey, - LPCWSTR lpValueName, - LPDWORD lpReserved, - LPDWORD lpType, - LPBYTE lpData, - LPDWORD lpcbData); -// #ifdef UNICODE -// #... -// #else -alias RegQueryValueExA RegQueryValueEx; -// #endif // !UNICODE - -extern(Windows) export LONG RegReplaceKeyA( - HKEY hKey, - LPCSTR lpSubKey, - LPCSTR lpNewFile, - LPCSTR lpOldFile); -extern(Windows) export LONG RegReplaceKeyW( - HKEY hKey, - LPCWSTR lpSubKey, - LPCWSTR lpNewFile, - LPCWSTR lpOldFile); -// #ifdef UNICODE -// #... -// #else -alias RegReplaceKeyA RegReplaceKey; -// #endif // !UNICODE - -extern(Windows) export LONG RegRestoreKeyA( - HKEY hKey, - LPCSTR lpFile, - DWORD dwFlags); -extern(Windows) export LONG RegRestoreKeyW( - HKEY hKey, - LPCWSTR lpFile, - DWORD dwFlags); -// #ifdef UNICODE -// #... -// #else -alias RegRestoreKeyA RegRestoreKey; -// #endif // !UNICODE - -extern(Windows) export LONG RegSaveKeyA( - HKEY hKey, - LPCSTR lpFile, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -extern(Windows) export LONG RegSaveKeyW( - HKEY hKey, - LPCWSTR lpFile, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -// #ifdef UNICODE -// #... -// #else -alias RegSaveKeyA RegSaveKey; -// #endif // !UNICODE - -extern(Windows) export LONG RegSetKeySecurity( - HKEY hKey, - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR pSecurityDescriptor); - -extern(Windows) export LONG RegSetValueA( - HKEY hKey, - LPCSTR lpSubKey, - DWORD dwType, - LPCSTR lpData, - DWORD cbData); -extern(Windows) export LONG RegSetValueW( - HKEY hKey, - LPCWSTR lpSubKey, - DWORD dwType, - LPCWSTR lpData, - DWORD cbData); -// #ifdef UNICODE -// #... -// #else -alias RegSetValueA RegSetValue; -// #endif // !UNICODE - -extern(Windows) export LONG RegSetValueExA( - HKEY hKey, - LPCSTR lpValueName, - DWORD Reserved, - DWORD dwType, - BYTE* lpData, - DWORD cbData); -extern(Windows) export LONG RegSetValueExW( - HKEY hKey, - LPCWSTR lpValueName, - DWORD Reserved, - DWORD dwType, - BYTE* lpData, - DWORD cbData); -// #ifdef UNICODE -// #... -// #else -alias RegSetValueExA RegSetValueEx; -// #endif // !UNICODE - -extern(Windows) export LONG RegUnLoadKeyA( - HKEY hKey, - LPCSTR lpSubKey); -extern(Windows) export LONG RegUnLoadKeyW( - HKEY hKey, - LPCWSTR lpSubKey); -// #ifdef UNICODE -// #... -// #else -alias RegUnLoadKeyA RegUnLoadKey; -// #endif // !UNICODE - -extern(Windows) export BOOL InitiateSystemShutdownA( - LPSTR lpMachineName, - LPSTR lpMessage, - DWORD dwTimeout, - BOOL bForceAppsClosed, - BOOL bRebootAfterShutdown); -extern(Windows) export BOOL InitiateSystemShutdownW( - LPWSTR lpMachineName, - LPWSTR lpMessage, - DWORD dwTimeout, - BOOL bForceAppsClosed, - BOOL bRebootAfterShutdown); -// #ifdef UNICODE -// #... -// #else -alias InitiateSystemShutdownA InitiateSystemShutdown; -// #endif // !UNICODE - -extern(Windows) export BOOL AbortSystemShutdownA( - LPSTR lpMachineName); -extern(Windows) export BOOL AbortSystemShutdownW( - LPWSTR lpMachineName); -// #ifdef UNICODE -// #... -// #else -alias AbortSystemShutdownA AbortSystemShutdown; -// #endif // !UNICODE - -// inline #include -// ---- - -// #if !defined SENTINEL_Reason -// # define SENTINEL_Reason - -enum : uint { SHTDN_REASON_FLAG_COMMENT_REQUIRED = 0x01000000 } -enum : uint { SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED = 0x02000000 } -enum : uint { SHTDN_REASON_FLAG_CLEAN_UI = 0x04000000 } -enum : uint { SHTDN_REASON_FLAG_DIRTY_UI = 0x08000000 } - -enum : uint { SHTDN_REASON_FLAG_USER_DEFINED = 0x40000000 } -enum : uint { SHTDN_REASON_FLAG_PLANNED = 0x80000000 } - -enum : uint { SHTDN_REASON_MAJOR_OTHER = 0x00000000 } -enum : uint { SHTDN_REASON_MAJOR_NONE = 0x00000000 } -enum : uint { SHTDN_REASON_MAJOR_HARDWARE = 0x00010000 } -enum : uint { SHTDN_REASON_MAJOR_OPERATINGSYSTEM = 0x00020000 } -enum : uint { SHTDN_REASON_MAJOR_SOFTWARE = 0x00030000 } -enum : uint { SHTDN_REASON_MAJOR_APPLICATION = 0x00040000 } -enum : uint { SHTDN_REASON_MAJOR_SYSTEM = 0x00050000 } -enum : uint { SHTDN_REASON_MAJOR_POWER = 0x00060000 } - -enum : uint { SHTDN_REASON_MINOR_OTHER = 0x00000000 } -enum : uint { SHTDN_REASON_MINOR_NONE = 0x000000ff } -enum : uint { SHTDN_REASON_MINOR_MAINTENANCE = 0x00000001 } -enum : uint { SHTDN_REASON_MINOR_INSTALLATION = 0x00000002 } -enum : uint { SHTDN_REASON_MINOR_UPGRADE = 0x00000003 } -enum : uint { SHTDN_REASON_MINOR_RECONFIG = 0x00000004 } -enum : uint { SHTDN_REASON_MINOR_HUNG = 0x00000005 } -enum : uint { SHTDN_REASON_MINOR_UNSTABLE = 0x00000006 } -enum : uint { SHTDN_REASON_MINOR_DISK = 0x00000007 } -enum : uint { SHTDN_REASON_MINOR_PROCESSOR = 0x00000008 } -enum : uint { SHTDN_REASON_MINOR_NETWORKCARD = 0x00000009 } -enum : uint { SHTDN_REASON_MINOR_POWER_SUPPLY = 0x0000000a } -enum : uint { SHTDN_REASON_MINOR_CORDUNPLUGGED = 0x0000000b } -enum : uint { SHTDN_REASON_MINOR_ENVIRONMENT = 0x0000000c } -enum : uint { SHTDN_REASON_MINOR_HARDWARE_DRIVER = 0x0000000d } -enum : uint { SHTDN_REASON_MINOR_OTHERDRIVER = 0x0000000e } -enum : uint { SHTDN_REASON_MINOR_BLUESCREEN = 0x0000000F } - -alias SHTDN_REASON_MINOR_NONE SHTDN_REASON_UNKNOWN; - -enum : uint { SHTDN_REASON_VALID_BIT_MASK = 0xc0ffffff } - -enum : uint { PCLEANUI = SHTDN_REASON_FLAG_PLANNED | SHTDN_REASON_FLAG_CLEAN_UI } -enum : uint { UCLEANUI = SHTDN_REASON_FLAG_CLEAN_UI } -enum : uint { UDIRTYUI = SHTDN_REASON_FLAG_DIRTY_UI } - -enum : uint { MAX_REASON_NAME_LEN = 64 } -enum : uint { MAX_REASON_DESC_LEN = 256 } -enum : uint { MAX_REASON_BUGID_LEN = 32 } -enum : uint { MAX_REASON_COMMENT_LEN = 4096 } - -// #endif // !defined SENTINEL_Reason -// ---- - -enum : uint { REASON_SWINSTALL = SHTDN_REASON_MAJOR_SOFTWARE | SHTDN_REASON_MINOR_INSTALLATION } -enum : uint { REASON_HWINSTALL = SHTDN_REASON_MAJOR_HARDWARE | SHTDN_REASON_MINOR_INSTALLATION } -enum : uint { REASON_SERVICEHANG = SHTDN_REASON_MAJOR_SOFTWARE | SHTDN_REASON_MINOR_HUNG } -enum : uint { REASON_UNSTABLE = SHTDN_REASON_MAJOR_SYSTEM | SHTDN_REASON_MINOR_UNSTABLE } -enum : uint { REASON_SWHWRECONF = SHTDN_REASON_MAJOR_SOFTWARE | SHTDN_REASON_MINOR_RECONFIG } -enum : uint { REASON_OTHER = SHTDN_REASON_MAJOR_OTHER | SHTDN_REASON_MINOR_OTHER } -alias SHTDN_REASON_UNKNOWN REASON_UNKNOWN; -alias SHTDN_REASON_FLAG_PLANNED REASON_PLANNED_FLAG; - -extern(Windows) export BOOL InitiateSystemShutdownExA( - LPSTR lpMachineName, - LPSTR lpMessage, - DWORD dwTimeout, - BOOL bForceAppsClosed, - BOOL bRebootAfterShutdown, - DWORD dwReason); -extern(Windows) export BOOL InitiateSystemShutdownExW( - LPWSTR lpMachineName, - LPWSTR lpMessage, - DWORD dwTimeout, - BOOL bForceAppsClosed, - BOOL bRebootAfterShutdown, - DWORD dwReason); -// #ifdef UNICODE -// #... -// #else -alias InitiateSystemShutdownExA InitiateSystemShutdownEx; -// #endif // !UNICODE - -extern(Windows) export LONG RegSaveKeyExA( - HKEY hKey, - LPCSTR lpFile, - LPSECURITY_ATTRIBUTES lpSecurityAttributes, - DWORD Flags); -extern(Windows) export LONG RegSaveKeyExW( - HKEY hKey, - LPCWSTR lpFile, - LPSECURITY_ATTRIBUTES lpSecurityAttributes, - DWORD Flags); -// #ifdef UNICODE -// #... -// #else -alias RegSaveKeyExA RegSaveKeyEx; -// #endif // !UNICODE - -extern(Windows) export LONG Wow64Win32ApiEntry( - DWORD dwFuncNumber, - DWORD dwFlag, - DWORD dwRes); - -// #ifdef __cplusplus -// } -// #endif - -// #endif // _WINREG_ - DELETED src/win32/ansi/winspool.d Index: src/win32/ansi/winspool.d ================================================================== --- src/win32/ansi/winspool.d +++ src/win32/ansi/winspool.d @@ -1,2659 +0,0 @@ -module win32.ansi.winspool; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.winbase, win32.ansi.wingdi; - -// #ifndef _WINSPOOL_ -// #define _WINSPOOL_ - -// #ifdef _WINUSER_ -// #... -// #endif - -// #ifdef __cplusplus -// extern "C" { -// #endif - -struct _PRINTER_INFO_1A { - DWORD Flags; - LPSTR pDescription; - LPSTR pName; - LPSTR pComment; -} -alias _PRINTER_INFO_1A PRINTER_INFO_1A; -alias _PRINTER_INFO_1A* PPRINTER_INFO_1A; -alias _PRINTER_INFO_1A* LPPRINTER_INFO_1A; - -struct _PRINTER_INFO_1W { - DWORD Flags; - LPWSTR pDescription; - LPWSTR pName; - LPWSTR pComment; -} -alias _PRINTER_INFO_1W PRINTER_INFO_1W; -alias _PRINTER_INFO_1W* PPRINTER_INFO_1W; -alias _PRINTER_INFO_1W* LPPRINTER_INFO_1W; - -// #ifdef UNICODE -// ... -// #else -alias PRINTER_INFO_1A PRINTER_INFO_1; -alias PPRINTER_INFO_1A PPRINTER_INFO_1; -alias LPPRINTER_INFO_1A LPPRINTER_INFO_1; -// #endif // UNICODE - -struct _PRINTER_INFO_2A { - LPSTR pServerName; - LPSTR pPrinterName; - LPSTR pShareName; - LPSTR pPortName; - LPSTR pDriverName; - LPSTR pComment; - LPSTR pLocation; - LPDEVMODEA pDevMode; - LPSTR pSepFile; - LPSTR pPrintProcessor; - LPSTR pDatatype; - LPSTR pParameters; - PSECURITY_DESCRIPTOR pSecurityDescriptor; - DWORD Attributes; - DWORD Priority; - DWORD DefaultPriority; - DWORD StartTime; - DWORD UntilTime; - DWORD Status; - DWORD cJobs; - DWORD AveragePPM; -} -alias _PRINTER_INFO_2A PRINTER_INFO_2A; -alias _PRINTER_INFO_2A* PPRINTER_INFO_2A; -alias _PRINTER_INFO_2A* LPPRINTER_INFO_2A; - -struct _PRINTER_INFO_2W { - LPWSTR pServerName; - LPWSTR pPrinterName; - LPWSTR pShareName; - LPWSTR pPortName; - LPWSTR pDriverName; - LPWSTR pComment; - LPWSTR pLocation; - LPDEVMODEW pDevMode; - LPWSTR pSepFile; - LPWSTR pPrintProcessor; - LPWSTR pDatatype; - LPWSTR pParameters; - PSECURITY_DESCRIPTOR pSecurityDescriptor; - DWORD Attributes; - DWORD Priority; - DWORD DefaultPriority; - DWORD StartTime; - DWORD UntilTime; - DWORD Status; - DWORD cJobs; - DWORD AveragePPM; -} -alias _PRINTER_INFO_2W PRINTER_INFO_2W; -alias _PRINTER_INFO_2W* PPRINTER_INFO_2W; -alias _PRINTER_INFO_2W* LPPRINTER_INFO_2W; - -// #ifdef UNICODE -// ... -// #else -alias PRINTER_INFO_2A PRINTER_INFO_2; -alias PPRINTER_INFO_2A PPRINTER_INFO_2; -alias LPPRINTER_INFO_2A LPPRINTER_INFO_2; -// #endif // UNICODE - -struct _PRINTER_INFO_3 { - PSECURITY_DESCRIPTOR pSecurityDescriptor; -} -alias _PRINTER_INFO_3 PRINTER_INFO_3; -alias _PRINTER_INFO_3* PPRINTER_INFO_3; -alias _PRINTER_INFO_3* LPPRINTER_INFO_3; - -struct _PRINTER_INFO_4A { - LPSTR pPrinterName; - LPSTR pServerName; - DWORD Attributes; -} -alias _PRINTER_INFO_4A PRINTER_INFO_4A; -alias _PRINTER_INFO_4A* PPRINTER_INFO_4A; -alias _PRINTER_INFO_4A* LPPRINTER_INFO_4A; - -struct _PRINTER_INFO_4W { - LPWSTR pPrinterName; - LPWSTR pServerName; - DWORD Attributes; -} -alias _PRINTER_INFO_4W PRINTER_INFO_4W; -alias _PRINTER_INFO_4W* PPRINTER_INFO_4W; -alias _PRINTER_INFO_4W* LPPRINTER_INFO_4W; - -// #ifdef UNICODE -// ... -// #else -alias PRINTER_INFO_4A PRINTER_INFO_4; -alias PPRINTER_INFO_4A PPRINTER_INFO_4; -alias LPPRINTER_INFO_4A LPPRINTER_INFO_4; -// #endif // UNICODE - -struct _PRINTER_INFO_5A { - LPSTR pPrinterName; - LPSTR pPortName; - DWORD Attributes; - DWORD DeviceNotSelectedTimeout; - DWORD TransmissionRetryTimeout; -} -alias _PRINTER_INFO_5A PRINTER_INFO_5A; -alias _PRINTER_INFO_5A* PPRINTER_INFO_5A; -alias _PRINTER_INFO_5A* LPPRINTER_INFO_5A; - -struct _PRINTER_INFO_5W { - LPWSTR pPrinterName; - LPWSTR pPortName; - DWORD Attributes; - DWORD DeviceNotSelectedTimeout; - DWORD TransmissionRetryTimeout; -} -alias _PRINTER_INFO_5W PRINTER_INFO_5W; -alias _PRINTER_INFO_5W* PPRINTER_INFO_5W; -alias _PRINTER_INFO_5W* LPPRINTER_INFO_5W; - -// #ifdef UNICODE -// ... -// #else -alias PRINTER_INFO_5A PRINTER_INFO_5; -alias PPRINTER_INFO_5A PPRINTER_INFO_5; -alias LPPRINTER_INFO_5A LPPRINTER_INFO_5; -// #endif // UNICODE - -struct _PRINTER_INFO_6 { - DWORD dwStatus; -} -alias _PRINTER_INFO_6 PRINTER_INFO_6; -alias _PRINTER_INFO_6* PPRINTER_INFO_6; -alias _PRINTER_INFO_6* LPPRINTER_INFO_6; - -struct _PRINTER_INFO_7A { - LPSTR pszObjectGUID; - DWORD dwAction; -} -alias _PRINTER_INFO_7A PRINTER_INFO_7A; -alias _PRINTER_INFO_7A* PPRINTER_INFO_7A; -alias _PRINTER_INFO_7A* LPPRINTER_INFO_7A; - -struct _PRINTER_INFO_7W { - LPWSTR pszObjectGUID; - DWORD dwAction; -} -alias _PRINTER_INFO_7W PRINTER_INFO_7W; -alias _PRINTER_INFO_7W* PPRINTER_INFO_7W; -alias _PRINTER_INFO_7W* LPPRINTER_INFO_7W; - -// #ifdef UNICODE -// ... -// #else -alias PRINTER_INFO_7A PRINTER_INFO_7; -alias PPRINTER_INFO_7A PPRINTER_INFO_7; -alias LPPRINTER_INFO_7A LPPRINTER_INFO_7; -// #endif // UNICODE - -enum : uint { DSPRINT_PUBLISH = 0x00000001 } -enum : uint { DSPRINT_UPDATE = 0x00000002 } -enum : uint { DSPRINT_UNPUBLISH = 0x00000004 } -enum : uint { DSPRINT_REPUBLISH = 0x00000008 } -enum : uint { DSPRINT_PENDING = 0x80000000 } - -struct _PRINTER_INFO_8A { - LPDEVMODEA pDevMode; -} -alias _PRINTER_INFO_8A PRINTER_INFO_8A; -alias _PRINTER_INFO_8A* PPRINTER_INFO_8A; -alias _PRINTER_INFO_8A* LPPRINTER_INFO_8A; - -struct _PRINTER_INFO_8W { - LPDEVMODEW pDevMode; -} -alias _PRINTER_INFO_8W PRINTER_INFO_8W; -alias _PRINTER_INFO_8W* PPRINTER_INFO_8W; -alias _PRINTER_INFO_8W* LPPRINTER_INFO_8W; - -// #ifdef UNICODE -// ... -// #else -alias PRINTER_INFO_8A PRINTER_INFO_8; -alias PPRINTER_INFO_8A PPRINTER_INFO_8; -alias LPPRINTER_INFO_8A LPPRINTER_INFO_8; -// #endif // UNICODE - -struct _PRINTER_INFO_9A { - LPDEVMODEA pDevMode; -} -alias _PRINTER_INFO_9A PRINTER_INFO_9A; -alias _PRINTER_INFO_9A* PPRINTER_INFO_9A; -alias _PRINTER_INFO_9A* LPPRINTER_INFO_9A; - -struct _PRINTER_INFO_9W { - LPDEVMODEW pDevMode; -} -alias _PRINTER_INFO_9W PRINTER_INFO_9W; -alias _PRINTER_INFO_9W* PPRINTER_INFO_9W; -alias _PRINTER_INFO_9W* LPPRINTER_INFO_9W; - -// #ifdef UNICODE -// ... -// #else -alias PRINTER_INFO_9A PRINTER_INFO_9; -alias PPRINTER_INFO_9A PPRINTER_INFO_9; -alias LPPRINTER_INFO_9A LPPRINTER_INFO_9; -// #endif // UNICODE - -enum : uint { PRINTER_CONTROL_PAUSE = 1 } -enum : uint { PRINTER_CONTROL_RESUME = 2 } -enum : uint { PRINTER_CONTROL_PURGE = 3 } -enum : uint { PRINTER_CONTROL_SET_STATUS = 4 } - -enum : uint { PRINTER_STATUS_PAUSED = 0x00000001 } -enum : uint { PRINTER_STATUS_ERROR = 0x00000002 } -enum : uint { PRINTER_STATUS_PENDING_DELETION = 0x00000004 } -enum : uint { PRINTER_STATUS_PAPER_JAM = 0x00000008 } -enum : uint { PRINTER_STATUS_PAPER_OUT = 0x00000010 } -enum : uint { PRINTER_STATUS_MANUAL_FEED = 0x00000020 } -enum : uint { PRINTER_STATUS_PAPER_PROBLEM = 0x00000040 } -enum : uint { PRINTER_STATUS_OFFLINE = 0x00000080 } -enum : uint { PRINTER_STATUS_IO_ACTIVE = 0x00000100 } -enum : uint { PRINTER_STATUS_BUSY = 0x00000200 } -enum : uint { PRINTER_STATUS_PRINTING = 0x00000400 } -enum : uint { PRINTER_STATUS_OUTPUT_BIN_FULL = 0x00000800 } -enum : uint { PRINTER_STATUS_NOT_AVAILABLE = 0x00001000 } -enum : uint { PRINTER_STATUS_WAITING = 0x00002000 } -enum : uint { PRINTER_STATUS_PROCESSING = 0x00004000 } -enum : uint { PRINTER_STATUS_INITIALIZING = 0x00008000 } -enum : uint { PRINTER_STATUS_WARMING_UP = 0x00010000 } -enum : uint { PRINTER_STATUS_TONER_LOW = 0x00020000 } -enum : uint { PRINTER_STATUS_NO_TONER = 0x00040000 } -enum : uint { PRINTER_STATUS_PAGE_PUNT = 0x00080000 } -enum : uint { PRINTER_STATUS_USER_INTERVENTION = 0x00100000 } -enum : uint { PRINTER_STATUS_OUT_OF_MEMORY = 0x00200000 } -enum : uint { PRINTER_STATUS_DOOR_OPEN = 0x00400000 } -enum : uint { PRINTER_STATUS_SERVER_UNKNOWN = 0x00800000 } -enum : uint { PRINTER_STATUS_POWER_SAVE = 0x01000000 } - -enum : uint { PRINTER_ATTRIBUTE_QUEUED = 0x00000001 } -enum : uint { PRINTER_ATTRIBUTE_DIRECT = 0x00000002 } -enum : uint { PRINTER_ATTRIBUTE_DEFAULT = 0x00000004 } -enum : uint { PRINTER_ATTRIBUTE_SHARED = 0x00000008 } -enum : uint { PRINTER_ATTRIBUTE_NETWORK = 0x00000010 } -enum : uint { PRINTER_ATTRIBUTE_HIDDEN = 0x00000020 } -enum : uint { PRINTER_ATTRIBUTE_LOCAL = 0x00000040 } - -enum : uint { PRINTER_ATTRIBUTE_ENABLE_DEVQ = 0x00000080 } -enum : uint { PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS = 0x00000100 } -enum : uint { PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST = 0x00000200 } - -enum : uint { PRINTER_ATTRIBUTE_WORK_OFFLINE = 0x00000400 } -enum : uint { PRINTER_ATTRIBUTE_ENABLE_BIDI = 0x00000800 } -enum : uint { PRINTER_ATTRIBUTE_RAW_ONLY = 0x00001000 } -enum : uint { PRINTER_ATTRIBUTE_PUBLISHED = 0x00002000 } -enum : uint { PRINTER_ATTRIBUTE_FAX = 0x00004000 } - -enum : uint { NO_PRIORITY = 0 } -enum : uint { MAX_PRIORITY = 99 } -enum : uint { MIN_PRIORITY = 1 } -enum : uint { DEF_PRIORITY = 1 } - -struct _JOB_INFO_1A { - DWORD JobId; - LPSTR pPrinterName; - LPSTR pMachineName; - LPSTR pUserName; - LPSTR pDocument; - LPSTR pDatatype; - LPSTR pStatus; - DWORD Status; - DWORD Priority; - DWORD Position; - DWORD TotalPages; - DWORD PagesPrinted; - SYSTEMTIME Submitted; -} -alias _JOB_INFO_1A JOB_INFO_1A; -alias _JOB_INFO_1A* PJOB_INFO_1A; -alias _JOB_INFO_1A* LPJOB_INFO_1A; - -struct _JOB_INFO_1W { - DWORD JobId; - LPWSTR pPrinterName; - LPWSTR pMachineName; - LPWSTR pUserName; - LPWSTR pDocument; - LPWSTR pDatatype; - LPWSTR pStatus; - DWORD Status; - DWORD Priority; - DWORD Position; - DWORD TotalPages; - DWORD PagesPrinted; - SYSTEMTIME Submitted; -} -alias _JOB_INFO_1W JOB_INFO_1W; -alias _JOB_INFO_1W* PJOB_INFO_1W; -alias _JOB_INFO_1W* LPJOB_INFO_1W; - -// #ifdef UNICODE -// ... -// #else -alias JOB_INFO_1A JOB_INFO_1; -alias PJOB_INFO_1A PJOB_INFO_1; -alias LPJOB_INFO_1A LPJOB_INFO_1; -// #endif // UNICODE - -struct _JOB_INFO_2A { - DWORD JobId; - LPSTR pPrinterName; - LPSTR pMachineName; - LPSTR pUserName; - LPSTR pDocument; - LPSTR pNotifyName; - LPSTR pDatatype; - LPSTR pPrintProcessor; - LPSTR pParameters; - LPSTR pDriverName; - LPDEVMODEA pDevMode; - LPSTR pStatus; - PSECURITY_DESCRIPTOR pSecurityDescriptor; - DWORD Status; - DWORD Priority; - DWORD Position; - DWORD StartTime; - DWORD UntilTime; - DWORD TotalPages; - DWORD Size; - SYSTEMTIME Submitted; - DWORD Time; - DWORD PagesPrinted; -} -alias _JOB_INFO_2A JOB_INFO_2A; -alias _JOB_INFO_2A* PJOB_INFO_2A; -alias _JOB_INFO_2A* LPJOB_INFO_2A; - -struct _JOB_INFO_2W { - DWORD JobId; - LPWSTR pPrinterName; - LPWSTR pMachineName; - LPWSTR pUserName; - LPWSTR pDocument; - LPWSTR pNotifyName; - LPWSTR pDatatype; - LPWSTR pPrintProcessor; - LPWSTR pParameters; - LPWSTR pDriverName; - LPDEVMODEW pDevMode; - LPWSTR pStatus; - PSECURITY_DESCRIPTOR pSecurityDescriptor; - DWORD Status; - DWORD Priority; - DWORD Position; - DWORD StartTime; - DWORD UntilTime; - DWORD TotalPages; - DWORD Size; - SYSTEMTIME Submitted; - DWORD Time; - DWORD PagesPrinted; -} -alias _JOB_INFO_2W JOB_INFO_2W; -alias _JOB_INFO_2W* PJOB_INFO_2W; -alias _JOB_INFO_2W* LPJOB_INFO_2W; - -// #ifdef UNICODE -// ... -// #else -alias JOB_INFO_2A JOB_INFO_2; -alias PJOB_INFO_2A PJOB_INFO_2; -alias LPJOB_INFO_2A LPJOB_INFO_2; -// #endif // UNICODE - -struct _JOB_INFO_3 { - DWORD JobId; - DWORD NextJobId; - DWORD Reserved; -} -alias _JOB_INFO_3 JOB_INFO_3; -alias _JOB_INFO_3* PJOB_INFO_3; -alias _JOB_INFO_3* LPJOB_INFO_3; - -enum : uint { JOB_CONTROL_PAUSE = 1 } -enum : uint { JOB_CONTROL_RESUME = 2 } -enum : uint { JOB_CONTROL_CANCEL = 3 } -enum : uint { JOB_CONTROL_RESTART = 4 } -enum : uint { JOB_CONTROL_DELETE = 5 } -enum : uint { JOB_CONTROL_SENT_TO_PRINTER = 6 } -enum : uint { JOB_CONTROL_LAST_PAGE_EJECTED = 7 } - -enum : uint { JOB_STATUS_PAUSED = 0x00000001 } -enum : uint { JOB_STATUS_ERROR = 0x00000002 } -enum : uint { JOB_STATUS_DELETING = 0x00000004 } -enum : uint { JOB_STATUS_SPOOLING = 0x00000008 } -enum : uint { JOB_STATUS_PRINTING = 0x00000010 } -enum : uint { JOB_STATUS_OFFLINE = 0x00000020 } -enum : uint { JOB_STATUS_PAPEROUT = 0x00000040 } -enum : uint { JOB_STATUS_PRINTED = 0x00000080 } -enum : uint { JOB_STATUS_DELETED = 0x00000100 } -enum : uint { JOB_STATUS_BLOCKED_DEVQ = 0x00000200 } -enum : uint { JOB_STATUS_USER_INTERVENTION = 0x00000400 } -enum : uint { JOB_STATUS_RESTART = 0x00000800 } -enum : uint { JOB_STATUS_COMPLETE = 0x00001000 } - -enum : uint { JOB_POSITION_UNSPECIFIED = 0 } - -struct _ADDJOB_INFO_1A { - LPSTR Path; - DWORD JobId; -} -alias _ADDJOB_INFO_1A ADDJOB_INFO_1A; -alias _ADDJOB_INFO_1A* PADDJOB_INFO_1A; -alias _ADDJOB_INFO_1A* LPADDJOB_INFO_1A; - -struct _ADDJOB_INFO_1W { - LPWSTR Path; - DWORD JobId; -} -alias _ADDJOB_INFO_1W ADDJOB_INFO_1W; -alias _ADDJOB_INFO_1W* PADDJOB_INFO_1W; -alias _ADDJOB_INFO_1W* LPADDJOB_INFO_1W; - -// #ifdef UNICODE -// ... -// #else -alias ADDJOB_INFO_1A ADDJOB_INFO_1; -alias PADDJOB_INFO_1A PADDJOB_INFO_1; -alias LPADDJOB_INFO_1A LPADDJOB_INFO_1; -// #endif // UNICODE - -struct _DRIVER_INFO_1A { - LPSTR pName; -} -alias _DRIVER_INFO_1A DRIVER_INFO_1A; -alias _DRIVER_INFO_1A* PDRIVER_INFO_1A; -alias _DRIVER_INFO_1A* LPDRIVER_INFO_1A; - -struct _DRIVER_INFO_1W { - LPWSTR pName; -} -alias _DRIVER_INFO_1W DRIVER_INFO_1W; -alias _DRIVER_INFO_1W* PDRIVER_INFO_1W; -alias _DRIVER_INFO_1W* LPDRIVER_INFO_1W; - -// #ifdef UNICODE -// ... -// #else -alias DRIVER_INFO_1A DRIVER_INFO_1; -alias PDRIVER_INFO_1A PDRIVER_INFO_1; -alias LPDRIVER_INFO_1A LPDRIVER_INFO_1; -// #endif // UNICODE - -struct _DRIVER_INFO_2A { - DWORD cVersion; - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDriverPath; - LPSTR pDataFile; - LPSTR pConfigFile; -} -alias _DRIVER_INFO_2A DRIVER_INFO_2A; -alias _DRIVER_INFO_2A* PDRIVER_INFO_2A; -alias _DRIVER_INFO_2A* LPDRIVER_INFO_2A; - -struct _DRIVER_INFO_2W { - DWORD cVersion; - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDriverPath; - LPWSTR pDataFile; - LPWSTR pConfigFile; -} -alias _DRIVER_INFO_2W DRIVER_INFO_2W; -alias _DRIVER_INFO_2W* PDRIVER_INFO_2W; -alias _DRIVER_INFO_2W* LPDRIVER_INFO_2W; - -// #ifdef UNICODE -// ... -// #else -alias DRIVER_INFO_2A DRIVER_INFO_2; -alias PDRIVER_INFO_2A PDRIVER_INFO_2; -alias LPDRIVER_INFO_2A LPDRIVER_INFO_2; -// #endif // UNICODE - -struct _DRIVER_INFO_3A { - DWORD cVersion; - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDriverPath; - LPSTR pDataFile; - LPSTR pConfigFile; - LPSTR pHelpFile; - LPSTR pDependentFiles; - LPSTR pMonitorName; - LPSTR pDefaultDataType; -} -alias _DRIVER_INFO_3A DRIVER_INFO_3A; -alias _DRIVER_INFO_3A* PDRIVER_INFO_3A; -alias _DRIVER_INFO_3A* LPDRIVER_INFO_3A; - -struct _DRIVER_INFO_3W { - DWORD cVersion; - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDriverPath; - LPWSTR pDataFile; - LPWSTR pConfigFile; - LPWSTR pHelpFile; - LPWSTR pDependentFiles; - LPWSTR pMonitorName; - LPWSTR pDefaultDataType; -} -alias _DRIVER_INFO_3W DRIVER_INFO_3W; -alias _DRIVER_INFO_3W* PDRIVER_INFO_3W; -alias _DRIVER_INFO_3W* LPDRIVER_INFO_3W; - -// #ifdef UNICODE -// ... -// #else -alias DRIVER_INFO_3A DRIVER_INFO_3; -alias PDRIVER_INFO_3A PDRIVER_INFO_3; -alias LPDRIVER_INFO_3A LPDRIVER_INFO_3; -// #endif // UNICODE - -struct _DRIVER_INFO_4A { - DWORD cVersion; - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDriverPath; - LPSTR pDataFile; - LPSTR pConfigFile; - LPSTR pHelpFile; - LPSTR pDependentFiles; - LPSTR pMonitorName; - LPSTR pDefaultDataType; - LPSTR pszzPreviousNames; -} -alias _DRIVER_INFO_4A DRIVER_INFO_4A; -alias _DRIVER_INFO_4A* PDRIVER_INFO_4A; -alias _DRIVER_INFO_4A* LPDRIVER_INFO_4A; - -struct _DRIVER_INFO_4W { - DWORD cVersion; - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDriverPath; - LPWSTR pDataFile; - LPWSTR pConfigFile; - LPWSTR pHelpFile; - LPWSTR pDependentFiles; - LPWSTR pMonitorName; - LPWSTR pDefaultDataType; - LPWSTR pszzPreviousNames; -} -alias _DRIVER_INFO_4W DRIVER_INFO_4W; -alias _DRIVER_INFO_4W* PDRIVER_INFO_4W; -alias _DRIVER_INFO_4W* LPDRIVER_INFO_4W; - -// #ifdef UNICODE -// ... -// #else -alias DRIVER_INFO_4A DRIVER_INFO_4; -alias PDRIVER_INFO_4A PDRIVER_INFO_4; -alias LPDRIVER_INFO_4A LPDRIVER_INFO_4; -// #endif // UNICODE - -struct _DRIVER_INFO_5A { - DWORD cVersion; - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDriverPath; - LPSTR pDataFile; - LPSTR pConfigFile; - DWORD dwDriverAttributes; - DWORD dwConfigVersion; - DWORD dwDriverVersion; -} -alias _DRIVER_INFO_5A DRIVER_INFO_5A; -alias _DRIVER_INFO_5A* PDRIVER_INFO_5A; -alias _DRIVER_INFO_5A* LPDRIVER_INFO_5A; - -struct _DRIVER_INFO_5W { - DWORD cVersion; - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDriverPath; - LPWSTR pDataFile; - LPWSTR pConfigFile; - DWORD dwDriverAttributes; - DWORD dwConfigVersion; - DWORD dwDriverVersion; -} -alias _DRIVER_INFO_5W DRIVER_INFO_5W; -alias _DRIVER_INFO_5W* PDRIVER_INFO_5W; -alias _DRIVER_INFO_5W* LPDRIVER_INFO_5W; - -// #ifdef UNICODE -// ... -// #else -alias DRIVER_INFO_5A DRIVER_INFO_5; -alias PDRIVER_INFO_5A PDRIVER_INFO_5; -alias LPDRIVER_INFO_5A LPDRIVER_INFO_5; -// #endif // UNICODE - -struct _DRIVER_INFO_6A { - DWORD cVersion; - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDriverPath; - LPSTR pDataFile; - LPSTR pConfigFile; - LPSTR pHelpFile; - LPSTR pDependentFiles; - LPSTR pMonitorName; - LPSTR pDefaultDataType; - LPSTR pszzPreviousNames; - FILETIME ftDriverDate; - DWORDLONG dwlDriverVersion; - LPSTR pszMfgName; - LPSTR pszOEMUrl; - LPSTR pszHardwareID; - LPSTR pszProvider; -} -alias _DRIVER_INFO_6A DRIVER_INFO_6A; -alias _DRIVER_INFO_6A* PDRIVER_INFO_6A; -alias _DRIVER_INFO_6A* LPDRIVER_INFO_6A; - -struct _DRIVER_INFO_6W { - DWORD cVersion; - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDriverPath; - LPWSTR pDataFile; - LPWSTR pConfigFile; - LPWSTR pHelpFile; - LPWSTR pDependentFiles; - LPWSTR pMonitorName; - LPWSTR pDefaultDataType; - LPWSTR pszzPreviousNames; - FILETIME ftDriverDate; - DWORDLONG dwlDriverVersion; - LPWSTR pszMfgName; - LPWSTR pszOEMUrl; - LPWSTR pszHardwareID; - LPWSTR pszProvider; -} -alias _DRIVER_INFO_6W DRIVER_INFO_6W; -alias _DRIVER_INFO_6W* PDRIVER_INFO_6W; -alias _DRIVER_INFO_6W* LPDRIVER_INFO_6W; - -// #ifdef UNICODE -// ... -// #else -alias DRIVER_INFO_6A DRIVER_INFO_6; -alias PDRIVER_INFO_6A PDRIVER_INFO_6; -alias LPDRIVER_INFO_6A LPDRIVER_INFO_6; -// #endif // UNICODE - -enum : uint { DRIVER_KERNELMODE = 0x00000001 } -enum : uint { DRIVER_USERMODE = 0x00000002 } - -enum : uint { DPD_DELETE_UNUSED_FILES = 0x00000001 } -enum : uint { DPD_DELETE_SPECIFIC_VERSION = 0x00000002 } -enum : uint { DPD_DELETE_ALL_FILES = 0x00000004 } - -enum : uint { APD_STRICT_UPGRADE = 0x00000001 } -enum : uint { APD_STRICT_DOWNGRADE = 0x00000002 } -enum : uint { APD_COPY_ALL_FILES = 0x00000004 } -enum : uint { APD_COPY_NEW_FILES = 0x00000008 } -enum : uint { APD_COPY_FROM_DIRECTORY = 0x00000010 } - -struct _DOC_INFO_1A { - LPSTR pDocName; - LPSTR pOutputFile; - LPSTR pDatatype; -} -alias _DOC_INFO_1A DOC_INFO_1A; -alias _DOC_INFO_1A* PDOC_INFO_1A; -alias _DOC_INFO_1A* LPDOC_INFO_1A; - -struct _DOC_INFO_1W { - LPWSTR pDocName; - LPWSTR pOutputFile; - LPWSTR pDatatype; -} -alias _DOC_INFO_1W DOC_INFO_1W; -alias _DOC_INFO_1W* PDOC_INFO_1W; -alias _DOC_INFO_1W* LPDOC_INFO_1W; - -// #ifdef UNICODE -// ... -// #else -alias DOC_INFO_1A DOC_INFO_1; -alias PDOC_INFO_1A PDOC_INFO_1; -alias LPDOC_INFO_1A LPDOC_INFO_1; -// #endif // UNICODE - -struct _FORM_INFO_1A { - DWORD Flags; - LPSTR pName; - SIZEL Size; - RECTL ImageableArea; -} -alias _FORM_INFO_1A FORM_INFO_1A; -alias _FORM_INFO_1A* PFORM_INFO_1A; -alias _FORM_INFO_1A* LPFORM_INFO_1A; - -struct _FORM_INFO_1W { - DWORD Flags; - LPWSTR pName; - SIZEL Size; - RECTL ImageableArea; -} -alias _FORM_INFO_1W FORM_INFO_1W; -alias _FORM_INFO_1W* PFORM_INFO_1W; -alias _FORM_INFO_1W* LPFORM_INFO_1W; - -// #ifdef UNICODE -// ... -// #else -alias FORM_INFO_1A FORM_INFO_1; -alias PFORM_INFO_1A PFORM_INFO_1; -alias LPFORM_INFO_1A LPFORM_INFO_1; -// #endif // UNICODE - -struct _DOC_INFO_2A { - LPSTR pDocName; - LPSTR pOutputFile; - LPSTR pDatatype; - DWORD dwMode; - DWORD JobId; -} -alias _DOC_INFO_2A DOC_INFO_2A; -alias _DOC_INFO_2A* PDOC_INFO_2A; -alias _DOC_INFO_2A* LPDOC_INFO_2A; - -struct _DOC_INFO_2W { - LPWSTR pDocName; - LPWSTR pOutputFile; - LPWSTR pDatatype; - DWORD dwMode; - DWORD JobId; -} -alias _DOC_INFO_2W DOC_INFO_2W; -alias _DOC_INFO_2W* PDOC_INFO_2W; -alias _DOC_INFO_2W* LPDOC_INFO_2W; - -// #ifdef UNICODE -// ... -// #else -alias DOC_INFO_2A DOC_INFO_2; -alias PDOC_INFO_2A PDOC_INFO_2; -alias LPDOC_INFO_2A LPDOC_INFO_2; -// #endif // UNICODE - -enum : uint { DI_CHANNEL = 1 } - -enum : uint { DI_READ_SPOOL_JOB = 3 } - -struct _DOC_INFO_3A { - LPSTR pDocName; - LPSTR pOutputFile; - LPSTR pDatatype; - DWORD dwFlags; -} -alias _DOC_INFO_3A DOC_INFO_3A; -alias _DOC_INFO_3A* PDOC_INFO_3A; -alias _DOC_INFO_3A* LPDOC_INFO_3A; - -struct _DOC_INFO_3W { - LPWSTR pDocName; - LPWSTR pOutputFile; - LPWSTR pDatatype; - DWORD dwFlags; -} -alias _DOC_INFO_3W DOC_INFO_3W; -alias _DOC_INFO_3W* PDOC_INFO_3W; -alias _DOC_INFO_3W* LPDOC_INFO_3W; - -// #ifdef UNICODE -// ... -// #else -alias DOC_INFO_3A DOC_INFO_3; -alias PDOC_INFO_3A PDOC_INFO_3; -alias LPDOC_INFO_3A LPDOC_INFO_3; -// #endif // UNICODE - -enum : uint { DI_MEMORYMAP_WRITE = 0x00000001 } - -enum : uint { FORM_USER = 0x00000000 } -enum : uint { FORM_BUILTIN = 0x00000001 } -enum : uint { FORM_PRINTER = 0x00000002 } - -struct _PRINTPROCESSOR_INFO_1A { - LPSTR pName; -} -alias _PRINTPROCESSOR_INFO_1A PRINTPROCESSOR_INFO_1A; -alias _PRINTPROCESSOR_INFO_1A* PPRINTPROCESSOR_INFO_1A; -alias _PRINTPROCESSOR_INFO_1A* LPPRINTPROCESSOR_INFO_1A; - -struct _PRINTPROCESSOR_INFO_1W { - LPWSTR pName; -} -alias _PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_INFO_1W; -alias _PRINTPROCESSOR_INFO_1W* PPRINTPROCESSOR_INFO_1W; -alias _PRINTPROCESSOR_INFO_1W* LPPRINTPROCESSOR_INFO_1W; - -// #ifdef UNICODE -// ... -// #else -alias PRINTPROCESSOR_INFO_1A PRINTPROCESSOR_INFO_1; -alias PPRINTPROCESSOR_INFO_1A PPRINTPROCESSOR_INFO_1; -alias LPPRINTPROCESSOR_INFO_1A LPPRINTPROCESSOR_INFO_1; -// #endif // UNICODE - -struct _PRINTPROCESSOR_CAPS_1 { - DWORD dwLevel; - DWORD dwNupOptions; - DWORD dwPageOrderFlags; - DWORD dwNumberOfCopies; -} -alias _PRINTPROCESSOR_CAPS_1 PRINTPROCESSOR_CAPS_1; -alias _PRINTPROCESSOR_CAPS_1* PPRINTPROCESSOR_CAPS_1; - -enum : uint { NORMAL_PRINT = 0x00000000 } -enum : uint { REVERSE_PRINT = 0x00000001 } - -struct _PORT_INFO_1A { - LPSTR pName; -} -alias _PORT_INFO_1A PORT_INFO_1A; -alias _PORT_INFO_1A* PPORT_INFO_1A; -alias _PORT_INFO_1A* LPPORT_INFO_1A; - -struct _PORT_INFO_1W { - LPWSTR pName; -} -alias _PORT_INFO_1W PORT_INFO_1W; -alias _PORT_INFO_1W* PPORT_INFO_1W; -alias _PORT_INFO_1W* LPPORT_INFO_1W; - -// #ifdef UNICODE -// ... -// #else -alias PORT_INFO_1A PORT_INFO_1; -alias PPORT_INFO_1A PPORT_INFO_1; -alias LPPORT_INFO_1A LPPORT_INFO_1; -// #endif // UNICODE - -struct _PORT_INFO_2A { - LPSTR pPortName; - LPSTR pMonitorName; - LPSTR pDescription; - DWORD fPortType; - DWORD Reserved; -} -alias _PORT_INFO_2A PORT_INFO_2A; -alias _PORT_INFO_2A* PPORT_INFO_2A; -alias _PORT_INFO_2A* LPPORT_INFO_2A; - -struct _PORT_INFO_2W { - LPWSTR pPortName; - LPWSTR pMonitorName; - LPWSTR pDescription; - DWORD fPortType; - DWORD Reserved; -} -alias _PORT_INFO_2W PORT_INFO_2W; -alias _PORT_INFO_2W* PPORT_INFO_2W; -alias _PORT_INFO_2W* LPPORT_INFO_2W; - -// #ifdef UNICODE -// ... -// #else -alias PORT_INFO_2A PORT_INFO_2; -alias PPORT_INFO_2A PPORT_INFO_2; -alias LPPORT_INFO_2A LPPORT_INFO_2; -// #endif // UNICODE - -enum : uint { PORT_TYPE_WRITE = 0x0001 } -enum : uint { PORT_TYPE_READ = 0x0002 } -enum : uint { PORT_TYPE_REDIRECTED = 0x0004 } -enum : uint { PORT_TYPE_NET_ATTACHED = 0x0008 } - -struct _PORT_INFO_3A { - DWORD dwStatus; - LPSTR pszStatus; - DWORD dwSeverity; -} -alias _PORT_INFO_3A PORT_INFO_3A; -alias _PORT_INFO_3A* PPORT_INFO_3A; -alias _PORT_INFO_3A* LPPORT_INFO_3A; - -struct _PORT_INFO_3W { - DWORD dwStatus; - LPWSTR pszStatus; - DWORD dwSeverity; -} -alias _PORT_INFO_3W PORT_INFO_3W; -alias _PORT_INFO_3W* PPORT_INFO_3W; -alias _PORT_INFO_3W* LPPORT_INFO_3W; - -// #ifdef UNICODE -// ... -// #else -alias PORT_INFO_3A PORT_INFO_3; -alias PPORT_INFO_3A PPORT_INFO_3; -alias LPPORT_INFO_3A LPPORT_INFO_3; -// #endif // UNICODE - -enum : uint { PORT_STATUS_TYPE_ERROR = 1 } -enum : uint { PORT_STATUS_TYPE_WARNING = 2 } -enum : uint { PORT_STATUS_TYPE_INFO = 3 } - -enum : uint { PORT_STATUS_OFFLINE = 1 } -enum : uint { PORT_STATUS_PAPER_JAM = 2 } -enum : uint { PORT_STATUS_PAPER_OUT = 3 } -enum : uint { PORT_STATUS_OUTPUT_BIN_FULL = 4 } -enum : uint { PORT_STATUS_PAPER_PROBLEM = 5 } -enum : uint { PORT_STATUS_NO_TONER = 6 } -enum : uint { PORT_STATUS_DOOR_OPEN = 7 } -enum : uint { PORT_STATUS_USER_INTERVENTION = 8 } -enum : uint { PORT_STATUS_OUT_OF_MEMORY = 9 } - -enum : uint { PORT_STATUS_TONER_LOW = 10 } - -enum : uint { PORT_STATUS_WARMING_UP = 11 } -enum : uint { PORT_STATUS_POWER_SAVE = 12 } - -struct _MONITOR_INFO_1A { - LPSTR pName; -} -alias _MONITOR_INFO_1A MONITOR_INFO_1A; -alias _MONITOR_INFO_1A* PMONITOR_INFO_1A; -alias _MONITOR_INFO_1A* LPMONITOR_INFO_1A; - -struct _MONITOR_INFO_1W { - LPWSTR pName; -} -alias _MONITOR_INFO_1W MONITOR_INFO_1W; -alias _MONITOR_INFO_1W* PMONITOR_INFO_1W; -alias _MONITOR_INFO_1W* LPMONITOR_INFO_1W; - -// #ifdef UNICODE -// ... -// #else -alias MONITOR_INFO_1A MONITOR_INFO_1; -alias PMONITOR_INFO_1A PMONITOR_INFO_1; -alias LPMONITOR_INFO_1A LPMONITOR_INFO_1; -// #endif // UNICODE - -struct _MONITOR_INFO_2A { - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDLLName; -} -alias _MONITOR_INFO_2A MONITOR_INFO_2A; -alias _MONITOR_INFO_2A* PMONITOR_INFO_2A; -alias _MONITOR_INFO_2A* LPMONITOR_INFO_2A; - -struct _MONITOR_INFO_2W { - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDLLName; -} -alias _MONITOR_INFO_2W MONITOR_INFO_2W; -alias _MONITOR_INFO_2W* PMONITOR_INFO_2W; -alias _MONITOR_INFO_2W* LPMONITOR_INFO_2W; - -// #ifdef UNICODE -// ... -// #else -alias MONITOR_INFO_2A MONITOR_INFO_2; -alias PMONITOR_INFO_2A PMONITOR_INFO_2; -alias LPMONITOR_INFO_2A LPMONITOR_INFO_2; -// #endif // UNICODE - -struct _DATATYPES_INFO_1A { - LPSTR pName; -} -alias _DATATYPES_INFO_1A DATATYPES_INFO_1A; -alias _DATATYPES_INFO_1A* PDATATYPES_INFO_1A; -alias _DATATYPES_INFO_1A* LPDATATYPES_INFO_1A; - -struct _DATATYPES_INFO_1W { - LPWSTR pName; -} -alias _DATATYPES_INFO_1W DATATYPES_INFO_1W; -alias _DATATYPES_INFO_1W* PDATATYPES_INFO_1W; -alias _DATATYPES_INFO_1W* LPDATATYPES_INFO_1W; - -// #ifdef UNICODE -// ... -// #else -alias DATATYPES_INFO_1A DATATYPES_INFO_1; -alias PDATATYPES_INFO_1A PDATATYPES_INFO_1; -alias LPDATATYPES_INFO_1A LPDATATYPES_INFO_1; -// #endif // UNICODE - -struct _PRINTER_DEFAULTSA { - LPSTR pDatatype; - LPDEVMODEA pDevMode; - ACCESS_MASK DesiredAccess; -} -alias _PRINTER_DEFAULTSA PRINTER_DEFAULTSA; -alias _PRINTER_DEFAULTSA* PPRINTER_DEFAULTSA; -alias _PRINTER_DEFAULTSA* LPPRINTER_DEFAULTSA; - -struct _PRINTER_DEFAULTSW { - LPWSTR pDatatype; - LPDEVMODEW pDevMode; - ACCESS_MASK DesiredAccess; -} -alias _PRINTER_DEFAULTSW PRINTER_DEFAULTSW; -alias _PRINTER_DEFAULTSW* PPRINTER_DEFAULTSW; -alias _PRINTER_DEFAULTSW* LPPRINTER_DEFAULTSW; - -// #ifdef UNICODE -// ... -// #else -alias PRINTER_DEFAULTSA PRINTER_DEFAULTS; -alias PPRINTER_DEFAULTSA PPRINTER_DEFAULTS; -alias LPPRINTER_DEFAULTSA LPPRINTER_DEFAULTS; -// #endif // UNICODE - -struct _PRINTER_ENUM_VALUESA { - LPSTR pValueName; - DWORD cbValueName; - DWORD dwType; - LPBYTE pData; - DWORD cbData; -} -alias _PRINTER_ENUM_VALUESA PRINTER_ENUM_VALUESA; -alias _PRINTER_ENUM_VALUESA* PPRINTER_ENUM_VALUESA; -alias _PRINTER_ENUM_VALUESA* LPPRINTER_ENUM_VALUESA; - -struct _PRINTER_ENUM_VALUESW { - LPWSTR pValueName; - DWORD cbValueName; - DWORD dwType; - LPBYTE pData; - DWORD cbData; -} -alias _PRINTER_ENUM_VALUESW PRINTER_ENUM_VALUESW; -alias _PRINTER_ENUM_VALUESW* PPRINTER_ENUM_VALUESW; -alias _PRINTER_ENUM_VALUESW* LPPRINTER_ENUM_VALUESW; - -// #ifdef UNICODE -// ... -// #else -alias PRINTER_ENUM_VALUESA PRINTER_ENUM_VALUES; -alias PPRINTER_ENUM_VALUESA PPRINTER_ENUM_VALUES; -alias LPPRINTER_ENUM_VALUESA LPPRINTER_ENUM_VALUES; -// #endif // UNICODE - -extern(Windows) export BOOL EnumPrintersA( - DWORD Flags, - LPSTR Name, - DWORD Level, - LPBYTE pPrinterEnum, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -extern(Windows) export BOOL EnumPrintersW( - DWORD Flags, - LPWSTR Name, - DWORD Level, - LPBYTE pPrinterEnum, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -// #ifdef UNICODE -// #... -// #else -alias EnumPrintersA EnumPrinters; -// #endif // !UNICODE - -enum : uint { PRINTER_ENUM_DEFAULT = 0x00000001 } -enum : uint { PRINTER_ENUM_LOCAL = 0x00000002 } -enum : uint { PRINTER_ENUM_CONNECTIONS = 0x00000004 } -enum : uint { PRINTER_ENUM_FAVORITE = 0x00000004 } -enum : uint { PRINTER_ENUM_NAME = 0x00000008 } -enum : uint { PRINTER_ENUM_REMOTE = 0x00000010 } -enum : uint { PRINTER_ENUM_SHARED = 0x00000020 } -enum : uint { PRINTER_ENUM_NETWORK = 0x00000040 } - -enum : uint { PRINTER_ENUM_EXPAND = 0x00004000 } -enum : uint { PRINTER_ENUM_CONTAINER = 0x00008000 } - -enum : uint { PRINTER_ENUM_ICONMASK = 0x00ff0000 } -enum : uint { PRINTER_ENUM_ICON1 = 0x00010000 } -enum : uint { PRINTER_ENUM_ICON2 = 0x00020000 } -enum : uint { PRINTER_ENUM_ICON3 = 0x00040000 } -enum : uint { PRINTER_ENUM_ICON4 = 0x00080000 } -enum : uint { PRINTER_ENUM_ICON5 = 0x00100000 } -enum : uint { PRINTER_ENUM_ICON6 = 0x00200000 } -enum : uint { PRINTER_ENUM_ICON7 = 0x00400000 } -enum : uint { PRINTER_ENUM_ICON8 = 0x00800000 } -enum : uint { PRINTER_ENUM_HIDE = 0x01000000 } - -enum : uint { SPOOL_FILE_PERSISTENT = 0x00000001 } -enum : uint { SPOOL_FILE_TEMPORARY = 0x00000002 } - -extern(Windows) export BOOL OpenPrinterA( - LPSTR pPrinterName, - LPHANDLE phPrinter, - LPPRINTER_DEFAULTSA pDefault -); -extern(Windows) export BOOL OpenPrinterW( - LPWSTR pPrinterName, - LPHANDLE phPrinter, - LPPRINTER_DEFAULTSW pDefault -); -// #ifdef UNICODE -// #... -// #else -alias OpenPrinterA OpenPrinter; -// #endif // !UNICODE - -extern(Windows) export BOOL ResetPrinterA( - HANDLE hPrinter, - LPPRINTER_DEFAULTSA pDefault -); -extern(Windows) export BOOL ResetPrinterW( - HANDLE hPrinter, - LPPRINTER_DEFAULTSW pDefault -); -// #ifdef UNICODE -// #... -// #else -alias ResetPrinterA ResetPrinter; -// #endif // !UNICODE - -extern(Windows) export BOOL SetJobA( - HANDLE hPrinter, - DWORD JobId, - DWORD Level, - LPBYTE pJob, - DWORD Command -); -extern(Windows) export BOOL SetJobW( - HANDLE hPrinter, - DWORD JobId, - DWORD Level, - LPBYTE pJob, - DWORD Command -); -// #ifdef UNICODE -// #... -// #else -alias SetJobA SetJob; -// #endif // !UNICODE - -extern(Windows) export BOOL GetJobA( - HANDLE hPrinter, - DWORD JobId, - DWORD Level, - LPBYTE pJob, - DWORD cbBuf, - LPDWORD pcbNeeded -); -extern(Windows) export BOOL GetJobW( - HANDLE hPrinter, - DWORD JobId, - DWORD Level, - LPBYTE pJob, - DWORD cbBuf, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -// #... -// #else -alias GetJobA GetJob; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumJobsA( - HANDLE hPrinter, - DWORD FirstJob, - DWORD NoJobs, - DWORD Level, - LPBYTE pJob, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -extern(Windows) export BOOL EnumJobsW( - HANDLE hPrinter, - DWORD FirstJob, - DWORD NoJobs, - DWORD Level, - LPBYTE pJob, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -// #ifdef UNICODE -// #... -// #else -alias EnumJobsA EnumJobs; -// #endif // !UNICODE - -extern(Windows) export HANDLE AddPrinterA( - LPSTR pName, - DWORD Level, - LPBYTE pPrinter -); -extern(Windows) export HANDLE AddPrinterW( - LPWSTR pName, - DWORD Level, - LPBYTE pPrinter -); -// #ifdef UNICODE -// #... -// #else -alias AddPrinterA AddPrinter; -// #endif // !UNICODE - -extern(Windows) export BOOL DeletePrinter( - HANDLE hPrinter -); - -extern(Windows) export BOOL SetPrinterA( - HANDLE hPrinter, - DWORD Level, - LPBYTE pPrinter, - DWORD Command -); -extern(Windows) export BOOL SetPrinterW( - HANDLE hPrinter, - DWORD Level, - LPBYTE pPrinter, - DWORD Command -); -// #ifdef UNICODE -// #... -// #else -alias SetPrinterA SetPrinter; -// #endif // !UNICODE - -extern(Windows) export BOOL GetPrinterA( - HANDLE hPrinter, - DWORD Level, - LPBYTE pPrinter, - DWORD cbBuf, - LPDWORD pcbNeeded -); -extern(Windows) export BOOL GetPrinterW( - HANDLE hPrinter, - DWORD Level, - LPBYTE pPrinter, - DWORD cbBuf, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -// #... -// #else -alias GetPrinterA GetPrinter; -// #endif // !UNICODE - -extern(Windows) export BOOL AddPrinterDriverA( - LPSTR pName, - DWORD Level, - LPBYTE pDriverInfo -); -extern(Windows) export BOOL AddPrinterDriverW( - LPWSTR pName, - DWORD Level, - LPBYTE pDriverInfo -); -// #ifdef UNICODE -// #... -// #else -alias AddPrinterDriverA AddPrinterDriver; -// #endif // !UNICODE - -extern(Windows) export BOOL AddPrinterDriverExA( - LPSTR pName, - DWORD Level, - LPBYTE pDriverInfo, - DWORD dwFileCopyFlags -); -extern(Windows) export BOOL AddPrinterDriverExW( - LPWSTR pName, - DWORD Level, - LPBYTE pDriverInfo, - DWORD dwFileCopyFlags -); -// #ifdef UNICODE -// #... -// #else -alias AddPrinterDriverExA AddPrinterDriverEx; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumPrinterDriversA( - LPSTR pName, - LPSTR pEnvironment, - DWORD Level, - LPBYTE pDriverInfo, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -extern(Windows) export BOOL EnumPrinterDriversW( - LPWSTR pName, - LPWSTR pEnvironment, - DWORD Level, - LPBYTE pDriverInfo, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -// #ifdef UNICODE -// #... -// #else -alias EnumPrinterDriversA EnumPrinterDrivers; -// #endif // !UNICODE - -extern(Windows) export BOOL GetPrinterDriverA( - HANDLE hPrinter, - LPSTR pEnvironment, - DWORD Level, - LPBYTE pDriverInfo, - DWORD cbBuf, - LPDWORD pcbNeeded -); -extern(Windows) export BOOL GetPrinterDriverW( - HANDLE hPrinter, - LPWSTR pEnvironment, - DWORD Level, - LPBYTE pDriverInfo, - DWORD cbBuf, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -// #... -// #else -alias GetPrinterDriverA GetPrinterDriver; -// #endif // !UNICODE - -extern(Windows) export BOOL GetPrinterDriverDirectoryA( - LPSTR pName, - LPSTR pEnvironment, - DWORD Level, - LPBYTE pDriverDirectory, - DWORD cbBuf, - LPDWORD pcbNeeded -); -extern(Windows) export BOOL GetPrinterDriverDirectoryW( - LPWSTR pName, - LPWSTR pEnvironment, - DWORD Level, - LPBYTE pDriverDirectory, - DWORD cbBuf, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -// #... -// #else -alias GetPrinterDriverDirectoryA GetPrinterDriverDirectory; -// #endif // !UNICODE - -extern(Windows) export BOOL DeletePrinterDriverA( - LPSTR pName, - LPSTR pEnvironment, - LPSTR pDriverName -); -extern(Windows) export BOOL DeletePrinterDriverW( - LPWSTR pName, - LPWSTR pEnvironment, - LPWSTR pDriverName -); -// #ifdef UNICODE -// #... -// #else -alias DeletePrinterDriverA DeletePrinterDriver; -// #endif // !UNICODE - -extern(Windows) export BOOL DeletePrinterDriverExA( - LPSTR pName, - LPSTR pEnvironment, - LPSTR pDriverName, - DWORD dwDeleteFlag, - DWORD dwVersionFlag -); -extern(Windows) export BOOL DeletePrinterDriverExW( - LPWSTR pName, - LPWSTR pEnvironment, - LPWSTR pDriverName, - DWORD dwDeleteFlag, - DWORD dwVersionFlag -); -// #ifdef UNICODE -// #... -// #else -alias DeletePrinterDriverExA DeletePrinterDriverEx; -// #endif // !UNICODE - -extern(Windows) export BOOL AddPrintProcessorA( - LPSTR pName, - LPSTR pEnvironment, - LPSTR pPathName, - LPSTR pPrintProcessorName -); -extern(Windows) export BOOL AddPrintProcessorW( - LPWSTR pName, - LPWSTR pEnvironment, - LPWSTR pPathName, - LPWSTR pPrintProcessorName -); -// #ifdef UNICODE -// #... -// #else -alias AddPrintProcessorA AddPrintProcessor; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumPrintProcessorsA( - LPSTR pName, - LPSTR pEnvironment, - DWORD Level, - LPBYTE pPrintProcessorInfo, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -extern(Windows) export BOOL EnumPrintProcessorsW( - LPWSTR pName, - LPWSTR pEnvironment, - DWORD Level, - LPBYTE pPrintProcessorInfo, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -// #ifdef UNICODE -// #... -// #else -alias EnumPrintProcessorsA EnumPrintProcessors; -// #endif // !UNICODE - -extern(Windows) export BOOL GetPrintProcessorDirectoryA( - LPSTR pName, - LPSTR pEnvironment, - DWORD Level, - LPBYTE pPrintProcessorInfo, - DWORD cbBuf, - LPDWORD pcbNeeded -); -extern(Windows) export BOOL GetPrintProcessorDirectoryW( - LPWSTR pName, - LPWSTR pEnvironment, - DWORD Level, - LPBYTE pPrintProcessorInfo, - DWORD cbBuf, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -// #... -// #else -alias GetPrintProcessorDirectoryA GetPrintProcessorDirectory; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumPrintProcessorDatatypesA( - LPSTR pName, - LPSTR pPrintProcessorName, - DWORD Level, - LPBYTE pDatatypes, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -extern(Windows) export BOOL EnumPrintProcessorDatatypesW( - LPWSTR pName, - LPWSTR pPrintProcessorName, - DWORD Level, - LPBYTE pDatatypes, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -// #ifdef UNICODE -// #... -// #else -alias EnumPrintProcessorDatatypesA EnumPrintProcessorDatatypes; -// #endif // !UNICODE - -extern(Windows) export BOOL DeletePrintProcessorA( - LPSTR pName, - LPSTR pEnvironment, - LPSTR pPrintProcessorName -); -extern(Windows) export BOOL DeletePrintProcessorW( - LPWSTR pName, - LPWSTR pEnvironment, - LPWSTR pPrintProcessorName -); -// #ifdef UNICODE -// #... -// #else -alias DeletePrintProcessorA DeletePrintProcessor; -// #endif // !UNICODE - -extern(Windows) export DWORD StartDocPrinterA( - HANDLE hPrinter, - DWORD Level, - LPBYTE pDocInfo -); -extern(Windows) export DWORD StartDocPrinterW( - HANDLE hPrinter, - DWORD Level, - LPBYTE pDocInfo -); -// #ifdef UNICODE -// #... -// #else -alias StartDocPrinterA StartDocPrinter; -// #endif // !UNICODE - -extern(Windows) export BOOL StartPagePrinter( - HANDLE hPrinter -); - -extern(Windows) export BOOL WritePrinter( - HANDLE hPrinter, - LPVOID pBuf, - DWORD cbBuf, - LPDWORD pcWritten -); - -extern(Windows) export BOOL FlushPrinter( - HANDLE hPrinter, - LPVOID pBuf, - DWORD cbBuf, - LPDWORD pcWritten, - DWORD cSleep -); - -extern(Windows) export BOOL EndPagePrinter( - HANDLE hPrinter -); - -extern(Windows) export BOOL AbortPrinter( - HANDLE hPrinter -); - -extern(Windows) export BOOL ReadPrinter( - HANDLE hPrinter, - LPVOID pBuf, - DWORD cbBuf, - LPDWORD pNoBytesRead -); - -extern(Windows) export BOOL EndDocPrinter( - HANDLE hPrinter -); - -extern(Windows) export BOOL AddJobA( - HANDLE hPrinter, - DWORD Level, - LPBYTE pData, - DWORD cbBuf, - LPDWORD pcbNeeded -); -extern(Windows) export BOOL AddJobW( - HANDLE hPrinter, - DWORD Level, - LPBYTE pData, - DWORD cbBuf, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -// #... -// #else -alias AddJobA AddJob; -// #endif // !UNICODE - -extern(Windows) export BOOL ScheduleJob( - HANDLE hPrinter, - DWORD JobId -); - -extern(Windows) export BOOL PrinterProperties( - HWND hWnd, - HANDLE hPrinter -); - -extern(Windows) export LONG DocumentPropertiesA( - HWND hWnd, - HANDLE hPrinter, - LPSTR pDeviceName, - PDEVMODEA pDevModeOutput, - PDEVMODEA pDevModeInput, - DWORD fMode -); -extern(Windows) export LONG DocumentPropertiesW( - HWND hWnd, - HANDLE hPrinter, - LPWSTR pDeviceName, - PDEVMODEW pDevModeOutput, - PDEVMODEW pDevModeInput, - DWORD fMode -); -// #ifdef UNICODE -// #... -// #else -alias DocumentPropertiesA DocumentProperties; -// #endif // !UNICODE - -extern(Windows) export LONG AdvancedDocumentPropertiesA( - HWND hWnd, - HANDLE hPrinter, - LPSTR pDeviceName, - PDEVMODEA pDevModeOutput, - PDEVMODEA pDevModeInput -); -extern(Windows) export LONG AdvancedDocumentPropertiesW( - HWND hWnd, - HANDLE hPrinter, - LPWSTR pDeviceName, - PDEVMODEW pDevModeOutput, - PDEVMODEW pDevModeInput -); -// #ifdef UNICODE -// #... -// #else -alias AdvancedDocumentPropertiesA AdvancedDocumentProperties; -// #endif // !UNICODE - -extern(Windows) export DWORD GetPrinterDataA( - HANDLE hPrinter, - LPSTR pValueName, - LPDWORD pType, - LPBYTE pData, - DWORD nSize, - LPDWORD pcbNeeded -); -extern(Windows) export DWORD GetPrinterDataW( - HANDLE hPrinter, - LPWSTR pValueName, - LPDWORD pType, - LPBYTE pData, - DWORD nSize, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -// #... -// #else -alias GetPrinterDataA GetPrinterData; -// #endif // !UNICODE - -extern(Windows) export DWORD GetPrinterDataExA( - HANDLE hPrinter, - LPCSTR pKeyName, - LPCSTR pValueName, - LPDWORD pType, - LPBYTE pData, - DWORD nSize, - LPDWORD pcbNeeded -); -extern(Windows) export DWORD GetPrinterDataExW( - HANDLE hPrinter, - LPCWSTR pKeyName, - LPCWSTR pValueName, - LPDWORD pType, - LPBYTE pData, - DWORD nSize, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -// #... -// #else -alias GetPrinterDataExA GetPrinterDataEx; -// #endif // !UNICODE - -extern(Windows) export DWORD EnumPrinterDataA( - HANDLE hPrinter, - DWORD dwIndex, - LPSTR pValueName, - DWORD cbValueName, - LPDWORD pcbValueName, - LPDWORD pType, - LPBYTE pData, - DWORD cbData, - LPDWORD pcbData -); -extern(Windows) export DWORD EnumPrinterDataW( - HANDLE hPrinter, - DWORD dwIndex, - LPWSTR pValueName, - DWORD cbValueName, - LPDWORD pcbValueName, - LPDWORD pType, - LPBYTE pData, - DWORD cbData, - LPDWORD pcbData -); -// #ifdef UNICODE -// #... -// #else -alias EnumPrinterDataA EnumPrinterData; -// #endif // !UNICODE - -extern(Windows) export DWORD EnumPrinterDataExA( - HANDLE hPrinter, - LPCSTR pKeyName, - LPBYTE pEnumValues, - DWORD cbEnumValues, - LPDWORD pcbEnumValues, - LPDWORD pnEnumValues -); -extern(Windows) export DWORD EnumPrinterDataExW( - HANDLE hPrinter, - LPCWSTR pKeyName, - LPBYTE pEnumValues, - DWORD cbEnumValues, - LPDWORD pcbEnumValues, - LPDWORD pnEnumValues -); -// #ifdef UNICODE -// #... -// #else -alias EnumPrinterDataExA EnumPrinterDataEx; -// #endif // !UNICODE - -extern(Windows) export DWORD EnumPrinterKeyA( - HANDLE hPrinter, - LPCSTR pKeyName, - LPSTR pSubkey, - DWORD cbSubkey, - LPDWORD pcbSubkey -); -extern(Windows) export DWORD EnumPrinterKeyW( - HANDLE hPrinter, - LPCWSTR pKeyName, - LPWSTR pSubkey, - DWORD cbSubkey, - LPDWORD pcbSubkey -); -// #ifdef UNICODE -// #... -// #else -alias EnumPrinterKeyA EnumPrinterKey; -// #endif // !UNICODE - -extern(Windows) export DWORD SetPrinterDataA( - HANDLE hPrinter, - LPSTR pValueName, - DWORD Type, - LPBYTE pData, - DWORD cbData -); -extern(Windows) export DWORD SetPrinterDataW( - HANDLE hPrinter, - LPWSTR pValueName, - DWORD Type, - LPBYTE pData, - DWORD cbData -); -// #ifdef UNICODE -// #... -// #else -alias SetPrinterDataA SetPrinterData; -// #endif // !UNICODE - -extern(Windows) export DWORD SetPrinterDataExA( - HANDLE hPrinter, - LPCSTR pKeyName, - LPCSTR pValueName, - DWORD Type, - LPBYTE pData, - DWORD cbData -); -extern(Windows) export DWORD SetPrinterDataExW( - HANDLE hPrinter, - LPCWSTR pKeyName, - LPCWSTR pValueName, - DWORD Type, - LPBYTE pData, - DWORD cbData -); -// #ifdef UNICODE -// #... -// #else -alias SetPrinterDataExA SetPrinterDataEx; -// #endif // !UNICODE - -extern(Windows) export DWORD DeletePrinterDataA( - HANDLE hPrinter, - LPSTR pValueName -); -extern(Windows) export DWORD DeletePrinterDataW( - HANDLE hPrinter, - LPWSTR pValueName -); -// #ifdef UNICODE -// #... -// #else -alias DeletePrinterDataA DeletePrinterData; -// #endif // !UNICODE - -extern(Windows) export DWORD DeletePrinterDataExA( - HANDLE hPrinter, - LPCSTR pKeyName, - LPCSTR pValueName -); -extern(Windows) export DWORD DeletePrinterDataExW( - HANDLE hPrinter, - LPCWSTR pKeyName, - LPCWSTR pValueName -); -// #ifdef UNICODE -// #... -// #else -alias DeletePrinterDataExA DeletePrinterDataEx; -// #endif // !UNICODE - -extern(Windows) export DWORD DeletePrinterKeyA( - HANDLE hPrinter, - LPCSTR pKeyName -); -extern(Windows) export DWORD DeletePrinterKeyW( - HANDLE hPrinter, - LPCWSTR pKeyName -); -// #ifdef UNICODE -// #... -// #else -alias DeletePrinterKeyA DeletePrinterKey; -// #endif // !UNICODE - -enum : uint { PRINTER_NOTIFY_TYPE = 0x00 } -enum : uint { JOB_NOTIFY_TYPE = 0x01 } - -enum : uint { PRINTER_NOTIFY_FIELD_SERVER_NAME = 0x00 } -enum : uint { PRINTER_NOTIFY_FIELD_PRINTER_NAME = 0x01 } -enum : uint { PRINTER_NOTIFY_FIELD_SHARE_NAME = 0x02 } -enum : uint { PRINTER_NOTIFY_FIELD_PORT_NAME = 0x03 } -enum : uint { PRINTER_NOTIFY_FIELD_DRIVER_NAME = 0x04 } -enum : uint { PRINTER_NOTIFY_FIELD_COMMENT = 0x05 } -enum : uint { PRINTER_NOTIFY_FIELD_LOCATION = 0x06 } -enum : uint { PRINTER_NOTIFY_FIELD_DEVMODE = 0x07 } -enum : uint { PRINTER_NOTIFY_FIELD_SEPFILE = 0x08 } -enum : uint { PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR = 0x09 } -enum : uint { PRINTER_NOTIFY_FIELD_PARAMETERS = 0x0A } -enum : uint { PRINTER_NOTIFY_FIELD_DATATYPE = 0x0B } -enum : uint { PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR = 0x0C } -enum : uint { PRINTER_NOTIFY_FIELD_ATTRIBUTES = 0x0D } -enum : uint { PRINTER_NOTIFY_FIELD_PRIORITY = 0x0E } -enum : uint { PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY = 0x0F } -enum : uint { PRINTER_NOTIFY_FIELD_START_TIME = 0x10 } -enum : uint { PRINTER_NOTIFY_FIELD_UNTIL_TIME = 0x11 } -enum : uint { PRINTER_NOTIFY_FIELD_STATUS = 0x12 } -enum : uint { PRINTER_NOTIFY_FIELD_STATUS_STRING = 0x13 } -enum : uint { PRINTER_NOTIFY_FIELD_CJOBS = 0x14 } -enum : uint { PRINTER_NOTIFY_FIELD_AVERAGE_PPM = 0x15 } -enum : uint { PRINTER_NOTIFY_FIELD_TOTAL_PAGES = 0x16 } -enum : uint { PRINTER_NOTIFY_FIELD_PAGES_PRINTED = 0x17 } -enum : uint { PRINTER_NOTIFY_FIELD_TOTAL_BYTES = 0x18 } -enum : uint { PRINTER_NOTIFY_FIELD_BYTES_PRINTED = 0x19 } -enum : uint { PRINTER_NOTIFY_FIELD_OBJECT_GUID = 0x1A } - -enum : uint { JOB_NOTIFY_FIELD_PRINTER_NAME = 0x00 } -enum : uint { JOB_NOTIFY_FIELD_MACHINE_NAME = 0x01 } -enum : uint { JOB_NOTIFY_FIELD_PORT_NAME = 0x02 } -enum : uint { JOB_NOTIFY_FIELD_USER_NAME = 0x03 } -enum : uint { JOB_NOTIFY_FIELD_NOTIFY_NAME = 0x04 } -enum : uint { JOB_NOTIFY_FIELD_DATATYPE = 0x05 } -enum : uint { JOB_NOTIFY_FIELD_PRINT_PROCESSOR = 0x06 } -enum : uint { JOB_NOTIFY_FIELD_PARAMETERS = 0x07 } -enum : uint { JOB_NOTIFY_FIELD_DRIVER_NAME = 0x08 } -enum : uint { JOB_NOTIFY_FIELD_DEVMODE = 0x09 } -enum : uint { JOB_NOTIFY_FIELD_STATUS = 0x0A } -enum : uint { JOB_NOTIFY_FIELD_STATUS_STRING = 0x0B } -enum : uint { JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR = 0x0C } -enum : uint { JOB_NOTIFY_FIELD_DOCUMENT = 0x0D } -enum : uint { JOB_NOTIFY_FIELD_PRIORITY = 0x0E } -enum : uint { JOB_NOTIFY_FIELD_POSITION = 0x0F } -enum : uint { JOB_NOTIFY_FIELD_SUBMITTED = 0x10 } -enum : uint { JOB_NOTIFY_FIELD_START_TIME = 0x11 } -enum : uint { JOB_NOTIFY_FIELD_UNTIL_TIME = 0x12 } -enum : uint { JOB_NOTIFY_FIELD_TIME = 0x13 } -enum : uint { JOB_NOTIFY_FIELD_TOTAL_PAGES = 0x14 } -enum : uint { JOB_NOTIFY_FIELD_PAGES_PRINTED = 0x15 } -enum : uint { JOB_NOTIFY_FIELD_TOTAL_BYTES = 0x16 } -enum : uint { JOB_NOTIFY_FIELD_BYTES_PRINTED = 0x17 } - -struct _PRINTER_NOTIFY_OPTIONS_TYPE { - WORD Type; - WORD Reserved0; - DWORD Reserved1; - DWORD Reserved2; - DWORD Count; - PWORD pFields; -} -alias _PRINTER_NOTIFY_OPTIONS_TYPE PRINTER_NOTIFY_OPTIONS_TYPE; -alias _PRINTER_NOTIFY_OPTIONS_TYPE* PPRINTER_NOTIFY_OPTIONS_TYPE; -alias _PRINTER_NOTIFY_OPTIONS_TYPE* LPPRINTER_NOTIFY_OPTIONS_TYPE; - -enum : uint { PRINTER_NOTIFY_OPTIONS_REFRESH = 0x01 } - -struct _PRINTER_NOTIFY_OPTIONS { - DWORD Version; - DWORD Flags; - DWORD Count; - PPRINTER_NOTIFY_OPTIONS_TYPE pTypes; -} -alias _PRINTER_NOTIFY_OPTIONS PRINTER_NOTIFY_OPTIONS; -alias _PRINTER_NOTIFY_OPTIONS* PPRINTER_NOTIFY_OPTIONS; -alias _PRINTER_NOTIFY_OPTIONS* LPPRINTER_NOTIFY_OPTIONS; - -enum : uint { PRINTER_NOTIFY_INFO_DISCARDED = 0x01 } - -struct _PRINTER_NOTIFY_INFO_DATA { - WORD Type; - WORD Field; - DWORD Reserved; - DWORD Id; -union { - DWORD adwData[2]; -struct { - DWORD cbBuf; - LPVOID pBuf; -} - -} - -} -alias _PRINTER_NOTIFY_INFO_DATA PRINTER_NOTIFY_INFO_DATA; -alias _PRINTER_NOTIFY_INFO_DATA* PPRINTER_NOTIFY_INFO_DATA; -alias _PRINTER_NOTIFY_INFO_DATA* LPPRINTER_NOTIFY_INFO_DATA; - -struct _PRINTER_NOTIFY_INFO { - DWORD Version; - DWORD Flags; - DWORD Count; - PRINTER_NOTIFY_INFO_DATA aData[1]; -} -alias _PRINTER_NOTIFY_INFO PRINTER_NOTIFY_INFO; -alias _PRINTER_NOTIFY_INFO* PPRINTER_NOTIFY_INFO; -alias _PRINTER_NOTIFY_INFO* LPPRINTER_NOTIFY_INFO; - -struct _BINARY_CONTAINER { - DWORD cbBuf; - LPBYTE pData; -} -alias _BINARY_CONTAINER BINARY_CONTAINER; -alias _BINARY_CONTAINER* PBINARY_CONTAINER; - -struct _BIDI_DATA { - DWORD dwBidiType; -union { - BOOL bData; - LONG iData; - LPWSTR sData; - FLOAT fData; - BINARY_CONTAINER biData; -} - -} -alias _BIDI_DATA BIDI_DATA; -alias _BIDI_DATA* PBIDI_DATA; -alias _BIDI_DATA* LPBIDI_DATA; - -struct _BIDI_REQUEST_DATA { - DWORD dwReqNumber; - LPWSTR pSchema; - BIDI_DATA data; -} -alias _BIDI_REQUEST_DATA BIDI_REQUEST_DATA; -alias _BIDI_REQUEST_DATA* PBIDI_REQUEST_DATA; -alias _BIDI_REQUEST_DATA* LPBIDI_REQUEST_DATA; - -struct _BIDI_REQUEST_CONTAINER { - DWORD Version; - DWORD Flags; - DWORD Count; - BIDI_REQUEST_DATA aData[ 1 ]; -} -alias _BIDI_REQUEST_CONTAINER BIDI_REQUEST_CONTAINER; -alias _BIDI_REQUEST_CONTAINER* PBIDI_REQUEST_CONTAINER; -alias _BIDI_REQUEST_CONTAINER* LPBIDI_REQUEST_CONTAINER; - -struct _BIDI_RESPONSE_DATA { - DWORD dwResult; - DWORD dwReqNumber; - LPWSTR pSchema; - BIDI_DATA data; -} -alias _BIDI_RESPONSE_DATA BIDI_RESPONSE_DATA; -alias _BIDI_RESPONSE_DATA* PBIDI_RESPONSE_DATA; -alias _BIDI_RESPONSE_DATA* LPBIDI_RESPONSE_DATA; - -struct _BIDI_RESPONSE_CONTAINER { - DWORD Version; - DWORD Flags; - DWORD Count; - BIDI_RESPONSE_DATA aData[ 1 ]; -} -alias _BIDI_RESPONSE_CONTAINER BIDI_RESPONSE_CONTAINER; -alias _BIDI_RESPONSE_CONTAINER* PBIDI_RESPONSE_CONTAINER; -alias _BIDI_RESPONSE_CONTAINER* LPBIDI_RESPONSE_CONTAINER; - -const wchar[] BIDI_ACTION_ENUM_SCHEMA = "EnumSchema"; -const wchar[] BIDI_ACTION_GET = "Get"; -const wchar[] BIDI_ACTION_SET = "Set"; -const wchar[] BIDI_ACTION_GET_ALL = "GetAll"; - -enum _0 { - BIDI_NULL = 0, - BIDI_INT = 1, - BIDI_FLOAT = 2, - BIDI_BOOL = 3, - BIDI_STRING = 4, - BIDI_TEXT = 5, - BIDI_ENUM = 6, - BIDI_BLOB = 7, -} -alias _0 BIDI_TYPE; - -enum : uint { BIDI_ACCESS_ADMINISTRATOR = 0x1 } -enum : uint { BIDI_ACCESS_USER = 0x2 } - -enum : uint { ERROR_BIDI_STATUS_OK = 0 } -alias ERROR_NOT_SUPPORTED ERROR_BIDI_NOT_SUPPORTED; - -enum : uint { ERROR_BIDI_ERROR_BASE = 13000 } -enum : uint { ERROR_BIDI_STATUS_WARNING = ERROR_BIDI_ERROR_BASE + 1 } -enum : uint { ERROR_BIDI_SCHEMA_READ_ONLY = ERROR_BIDI_ERROR_BASE + 2 } -enum : uint { ERROR_BIDI_SERVER_OFFLINE = ERROR_BIDI_ERROR_BASE + 3 } -enum : uint { ERROR_BIDI_DEVICE_OFFLINE = ERROR_BIDI_ERROR_BASE + 4 } -enum : uint { ERROR_BIDI_SCHEMA_NOT_SUPPORTED = ERROR_BIDI_ERROR_BASE + 5 } - -extern(Windows) export DWORD WaitForPrinterChange( - HANDLE hPrinter, - DWORD Flags -); - -extern(Windows) export HANDLE FindFirstPrinterChangeNotification( - HANDLE hPrinter, - DWORD fdwFlags, - DWORD fdwOptions, - LPVOID pPrinterNotifyOptions -); - -extern(Windows) export BOOL FindNextPrinterChangeNotification( - HANDLE hChange, - PDWORD pdwChange, - LPVOID pvReserved, - LPVOID *ppPrinterNotifyInfo -); - -extern(Windows) export BOOL FreePrinterNotifyInfo( - PPRINTER_NOTIFY_INFO pPrinterNotifyInfo -); - -extern(Windows) export BOOL FindClosePrinterChangeNotification( - HANDLE hChange -); - -enum : uint { PRINTER_CHANGE_ADD_PRINTER = 0x00000001 } -enum : uint { PRINTER_CHANGE_SET_PRINTER = 0x00000002 } -enum : uint { PRINTER_CHANGE_DELETE_PRINTER = 0x00000004 } -enum : uint { PRINTER_CHANGE_FAILED_CONNECTION_PRINTER = 0x00000008 } -enum : uint { PRINTER_CHANGE_PRINTER = 0x000000FF } -enum : uint { PRINTER_CHANGE_ADD_JOB = 0x00000100 } -enum : uint { PRINTER_CHANGE_SET_JOB = 0x00000200 } -enum : uint { PRINTER_CHANGE_DELETE_JOB = 0x00000400 } -enum : uint { PRINTER_CHANGE_WRITE_JOB = 0x00000800 } -enum : uint { PRINTER_CHANGE_JOB = 0x0000FF00 } -enum : uint { PRINTER_CHANGE_ADD_FORM = 0x00010000 } -enum : uint { PRINTER_CHANGE_SET_FORM = 0x00020000 } -enum : uint { PRINTER_CHANGE_DELETE_FORM = 0x00040000 } -enum : uint { PRINTER_CHANGE_FORM = 0x00070000 } -enum : uint { PRINTER_CHANGE_ADD_PORT = 0x00100000 } -enum : uint { PRINTER_CHANGE_CONFIGURE_PORT = 0x00200000 } -enum : uint { PRINTER_CHANGE_DELETE_PORT = 0x00400000 } -enum : uint { PRINTER_CHANGE_PORT = 0x00700000 } -enum : uint { PRINTER_CHANGE_ADD_PRINT_PROCESSOR = 0x01000000 } -enum : uint { PRINTER_CHANGE_DELETE_PRINT_PROCESSOR = 0x04000000 } -enum : uint { PRINTER_CHANGE_PRINT_PROCESSOR = 0x07000000 } -enum : uint { PRINTER_CHANGE_ADD_PRINTER_DRIVER = 0x10000000 } -enum : uint { PRINTER_CHANGE_SET_PRINTER_DRIVER = 0x20000000 } -enum : uint { PRINTER_CHANGE_DELETE_PRINTER_DRIVER = 0x40000000 } -enum : uint { PRINTER_CHANGE_PRINTER_DRIVER = 0x70000000 } -enum : uint { PRINTER_CHANGE_TIMEOUT = 0x80000000 } -enum : uint { PRINTER_CHANGE_ALL = 0x7777FFFF } - -extern(Windows) export DWORD PrinterMessageBoxA( - HANDLE hPrinter, - DWORD Error, - HWND hWnd, - LPSTR pText, - LPSTR pCaption, - DWORD dwType -); -extern(Windows) export DWORD PrinterMessageBoxW( - HANDLE hPrinter, - DWORD Error, - HWND hWnd, - LPWSTR pText, - LPWSTR pCaption, - DWORD dwType -); -// #ifdef UNICODE -// #... -// #else -alias PrinterMessageBoxA PrinterMessageBox; -// #endif // !UNICODE - -enum : uint { PRINTER_ERROR_INFORMATION = 0x80000000 } -enum : uint { PRINTER_ERROR_WARNING = 0x40000000 } -enum : uint { PRINTER_ERROR_SEVERE = 0x20000000 } - -enum : uint { PRINTER_ERROR_OUTOFPAPER = 0x00000001 } -enum : uint { PRINTER_ERROR_JAM = 0x00000002 } -enum : uint { PRINTER_ERROR_OUTOFTONER = 0x00000004 } - -extern(Windows) export BOOL ClosePrinter( - HANDLE hPrinter -); - -extern(Windows) export BOOL AddFormA( - HANDLE hPrinter, - DWORD Level, - LPBYTE pForm -); -extern(Windows) export BOOL AddFormW( - HANDLE hPrinter, - DWORD Level, - LPBYTE pForm -); -// #ifdef UNICODE -// #... -// #else -alias AddFormA AddForm; -// #endif // !UNICODE - -extern(Windows) export BOOL DeleteFormA( - HANDLE hPrinter, - LPSTR pFormName -); -extern(Windows) export BOOL DeleteFormW( - HANDLE hPrinter, - LPWSTR pFormName -); -// #ifdef UNICODE -// #... -// #else -alias DeleteFormA DeleteForm; -// #endif // !UNICODE - -extern(Windows) export BOOL GetFormA( - HANDLE hPrinter, - LPSTR pFormName, - DWORD Level, - LPBYTE pForm, - DWORD cbBuf, - LPDWORD pcbNeeded -); -extern(Windows) export BOOL GetFormW( - HANDLE hPrinter, - LPWSTR pFormName, - DWORD Level, - LPBYTE pForm, - DWORD cbBuf, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -// #... -// #else -alias GetFormA GetForm; -// #endif // !UNICODE - -extern(Windows) export BOOL SetFormA( - HANDLE hPrinter, - LPSTR pFormName, - DWORD Level, - LPBYTE pForm -); -extern(Windows) export BOOL SetFormW( - HANDLE hPrinter, - LPWSTR pFormName, - DWORD Level, - LPBYTE pForm -); -// #ifdef UNICODE -// #... -// #else -alias SetFormA SetForm; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumFormsA( - HANDLE hPrinter, - DWORD Level, - LPBYTE pForm, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -extern(Windows) export BOOL EnumFormsW( - HANDLE hPrinter, - DWORD Level, - LPBYTE pForm, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -// #ifdef UNICODE -// #... -// #else -alias EnumFormsA EnumForms; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumMonitorsA( - LPSTR pName, - DWORD Level, - LPBYTE pMonitors, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -extern(Windows) export BOOL EnumMonitorsW( - LPWSTR pName, - DWORD Level, - LPBYTE pMonitors, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -// #ifdef UNICODE -// #... -// #else -alias EnumMonitorsA EnumMonitors; -// #endif // !UNICODE - -extern(Windows) export BOOL AddMonitorA( - LPSTR pName, - DWORD Level, - LPBYTE pMonitors -); -extern(Windows) export BOOL AddMonitorW( - LPWSTR pName, - DWORD Level, - LPBYTE pMonitors -); -// #ifdef UNICODE -// #... -// #else -alias AddMonitorA AddMonitor; -// #endif // !UNICODE - -extern(Windows) export BOOL DeleteMonitorA( - LPSTR pName, - LPSTR pEnvironment, - LPSTR pMonitorName -); -extern(Windows) export BOOL DeleteMonitorW( - LPWSTR pName, - LPWSTR pEnvironment, - LPWSTR pMonitorName -); -// #ifdef UNICODE -// #... -// #else -alias DeleteMonitorA DeleteMonitor; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumPortsA( - LPSTR pName, - DWORD Level, - LPBYTE pPorts, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -extern(Windows) export BOOL EnumPortsW( - LPWSTR pName, - DWORD Level, - LPBYTE pPorts, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -// #ifdef UNICODE -// #... -// #else -alias EnumPortsA EnumPorts; -// #endif // !UNICODE - -extern(Windows) export BOOL AddPortA( - LPSTR pName, - HWND hWnd, - LPSTR pMonitorName -); -extern(Windows) export BOOL AddPortW( - LPWSTR pName, - HWND hWnd, - LPWSTR pMonitorName -); -// #ifdef UNICODE -// #... -// #else -alias AddPortA AddPort; -// #endif // !UNICODE - -extern(Windows) export BOOL ConfigurePortA( - LPSTR pName, - HWND hWnd, - LPSTR pPortName -); -extern(Windows) export BOOL ConfigurePortW( - LPWSTR pName, - HWND hWnd, - LPWSTR pPortName -); -// #ifdef UNICODE -// #... -// #else -alias ConfigurePortA ConfigurePort; -// #endif // !UNICODE - -extern(Windows) export BOOL DeletePortA( - LPSTR pName, - HWND hWnd, - LPSTR pPortName -); -extern(Windows) export BOOL DeletePortW( - LPWSTR pName, - HWND hWnd, - LPWSTR pPortName -); -// #ifdef UNICODE -// #... -// #else -alias DeletePortA DeletePort; -// #endif // !UNICODE - -extern(Windows) export BOOL XcvDataW( - HANDLE hXcv, - PCWSTR pszDataName, - PBYTE pInputData, - DWORD cbInputData, - PBYTE pOutputData, - DWORD cbOutputData, - PDWORD pcbOutputNeeded, - PDWORD pdwStatus -); -alias XcvDataW XcvData; - -extern(Windows) export BOOL GetDefaultPrinterA( - LPSTR pszBuffer, - LPDWORD pcchBuffer); -extern(Windows) export BOOL GetDefaultPrinterW( - LPWSTR pszBuffer, - LPDWORD pcchBuffer); -// #ifdef UNICODE -// #... -// #else -alias GetDefaultPrinterA GetDefaultPrinter; -// #endif // !UNICODE - -extern(Windows) export BOOL SetDefaultPrinterA( - LPCSTR pszPrinter); -extern(Windows) export BOOL SetDefaultPrinterW( - LPCWSTR pszPrinter); -// #ifdef UNICODE -// #... -// #else -alias SetDefaultPrinterA SetDefaultPrinter; -// #endif // !UNICODE - -extern(Windows) export BOOL SetPortA( - LPSTR pName, - LPSTR pPortName, - DWORD dwLevel, - LPBYTE pPortInfo -); -extern(Windows) export BOOL SetPortW( - LPWSTR pName, - LPWSTR pPortName, - DWORD dwLevel, - LPBYTE pPortInfo -); -// #ifdef UNICODE -// #... -// #else -alias SetPortA SetPort; -// #endif // !UNICODE - -extern(Windows) export BOOL AddPrinterConnectionA( - LPSTR pName -); -extern(Windows) export BOOL AddPrinterConnectionW( - LPWSTR pName -); -// #ifdef UNICODE -// #... -// #else -alias AddPrinterConnectionA AddPrinterConnection; -// #endif // !UNICODE - -extern(Windows) export BOOL DeletePrinterConnectionA( - LPSTR pName -); -extern(Windows) export BOOL DeletePrinterConnectionW( - LPWSTR pName -); -// #ifdef UNICODE -// #... -// #else -alias DeletePrinterConnectionA DeletePrinterConnection; -// #endif // !UNICODE - -extern(Windows) export HANDLE ConnectToPrinterDlg( - HWND hwnd, - DWORD Flags -); - -struct _PROVIDOR_INFO_1A { - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDLLName; -} -alias _PROVIDOR_INFO_1A PROVIDOR_INFO_1A; -alias _PROVIDOR_INFO_1A* PPROVIDOR_INFO_1A; -alias _PROVIDOR_INFO_1A* LPPROVIDOR_INFO_1A; - -struct _PROVIDOR_INFO_1W { - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDLLName; -} -alias _PROVIDOR_INFO_1W PROVIDOR_INFO_1W; -alias _PROVIDOR_INFO_1W* PPROVIDOR_INFO_1W; -alias _PROVIDOR_INFO_1W* LPPROVIDOR_INFO_1W; - -// #ifdef UNICODE -// ... -// #else -alias PROVIDOR_INFO_1A PROVIDOR_INFO_1; -alias PPROVIDOR_INFO_1A PPROVIDOR_INFO_1; -alias LPPROVIDOR_INFO_1A LPPROVIDOR_INFO_1; -// #endif // UNICODE - -struct _PROVIDOR_INFO_2A { - LPSTR pOrder; -} -alias _PROVIDOR_INFO_2A PROVIDOR_INFO_2A; -alias _PROVIDOR_INFO_2A* PPROVIDOR_INFO_2A; -alias _PROVIDOR_INFO_2A* LPPROVIDOR_INFO_2A; - -struct _PROVIDOR_INFO_2W { - LPWSTR pOrder; -} -alias _PROVIDOR_INFO_2W PROVIDOR_INFO_2W; -alias _PROVIDOR_INFO_2W* PPROVIDOR_INFO_2W; -alias _PROVIDOR_INFO_2W* LPPROVIDOR_INFO_2W; - -// #ifdef UNICODE -// ... -// #else -alias PROVIDOR_INFO_2A PROVIDOR_INFO_2; -alias PPROVIDOR_INFO_2A PPROVIDOR_INFO_2; -alias LPPROVIDOR_INFO_2A LPPROVIDOR_INFO_2; -// #endif // UNICODE - -extern(Windows) export BOOL AddPrintProvidorA( - LPSTR pName, - DWORD level, - LPBYTE pProvidorInfo -); -extern(Windows) export BOOL AddPrintProvidorW( - LPWSTR pName, - DWORD level, - LPBYTE pProvidorInfo -); -// #ifdef UNICODE -// #... -// #else -alias AddPrintProvidorA AddPrintProvidor; -// #endif // !UNICODE - -extern(Windows) export BOOL DeletePrintProvidorA( - LPSTR pName, - LPSTR pEnvironment, - LPSTR pPrintProvidorName -); -extern(Windows) export BOOL DeletePrintProvidorW( - LPWSTR pName, - LPWSTR pEnvironment, - LPWSTR pPrintProvidorName -); -// #ifdef UNICODE -// #... -// #else -alias DeletePrintProvidorA DeletePrintProvidor; -// #endif // !UNICODE - -const TCHAR[] SPLREG_DEFAULT_SPOOL_DIRECTORY = "DefaultSpoolDirectory"; -const TCHAR[] SPLREG_PORT_THREAD_PRIORITY_DEFAULT = "PortThreadPriorityDefault"; -const TCHAR[] SPLREG_PORT_THREAD_PRIORITY = "PortThreadPriority"; -const TCHAR[] SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT = "SchedulerThreadPriorityDefault"; -const TCHAR[] SPLREG_SCHEDULER_THREAD_PRIORITY = "SchedulerThreadPriority"; -const TCHAR[] SPLREG_BEEP_ENABLED = "BeepEnabled"; -const TCHAR[] SPLREG_NET_POPUP = "NetPopup"; -const TCHAR[] SPLREG_RETRY_POPUP = "RetryPopup"; -const TCHAR[] SPLREG_NET_POPUP_TO_COMPUTER = "NetPopupToComputer"; -const TCHAR[] SPLREG_EVENT_LOG = "EventLog"; -const TCHAR[] SPLREG_MAJOR_VERSION = "MajorVersion"; -const TCHAR[] SPLREG_MINOR_VERSION = "MinorVersion"; -const TCHAR[] SPLREG_ARCHITECTURE = "Architecture"; -const TCHAR[] SPLREG_OS_VERSION = "OSVersion"; -const TCHAR[] SPLREG_OS_VERSIONEX = "OSVersionEx"; -const TCHAR[] SPLREG_DS_PRESENT = "DsPresent"; -const TCHAR[] SPLREG_DS_PRESENT_FOR_USER = "DsPresentForUser"; -const TCHAR[] SPLREG_REMOTE_FAX = "RemoteFax"; -const TCHAR[] SPLREG_RESTART_JOB_ON_POOL_ERROR = "RestartJobOnPoolError"; -const TCHAR[] SPLREG_RESTART_JOB_ON_POOL_ENABLED = "RestartJobOnPoolEnabled"; -const TCHAR[] SPLREG_DNS_MACHINE_NAME = "DNSMachineName"; - -enum : uint { SERVER_ACCESS_ADMINISTER = 0x00000001 } -enum : uint { SERVER_ACCESS_ENUMERATE = 0x00000002 } - -enum : uint { PRINTER_ACCESS_ADMINISTER = 0x00000004 } -enum : uint { PRINTER_ACCESS_USE = 0x00000008 } - -enum : uint { JOB_ACCESS_ADMINISTER = 0x00000010 } - -enum : uint { SERVER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE } - -enum : uint { SERVER_READ = STANDARD_RIGHTS_READ | SERVER_ACCESS_ENUMERATE } - -enum : uint { SERVER_WRITE = STANDARD_RIGHTS_WRITE | SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE } - -enum : uint { SERVER_EXECUTE = STANDARD_RIGHTS_EXECUTE | SERVER_ACCESS_ENUMERATE } - -enum : uint { PRINTER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | PRINTER_ACCESS_ADMINISTER | PRINTER_ACCESS_USE } - -enum : uint { PRINTER_READ = STANDARD_RIGHTS_READ | PRINTER_ACCESS_USE } - -enum : uint { PRINTER_WRITE = STANDARD_RIGHTS_WRITE | PRINTER_ACCESS_USE } - -enum : uint { PRINTER_EXECUTE = STANDARD_RIGHTS_EXECUTE | PRINTER_ACCESS_USE } - -enum : uint { JOB_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | JOB_ACCESS_ADMINISTER } - -enum : uint { JOB_READ = STANDARD_RIGHTS_READ | JOB_ACCESS_ADMINISTER } - -enum : uint { JOB_WRITE = STANDARD_RIGHTS_WRITE | JOB_ACCESS_ADMINISTER } - -enum : uint { JOB_EXECUTE = STANDARD_RIGHTS_EXECUTE | JOB_ACCESS_ADMINISTER } - -const TCHAR[] SPLDS_SPOOLER_KEY = "DsSpooler"; -const TCHAR[] SPLDS_DRIVER_KEY = "DsDriver"; -const TCHAR[] SPLDS_USER_KEY = "DsUser"; - -const TCHAR[] SPLDS_ASSET_NUMBER = "assetNumber"; -const TCHAR[] SPLDS_BYTES_PER_MINUTE = "bytesPerMinute"; -const TCHAR[] SPLDS_DESCRIPTION = "description"; -const TCHAR[] SPLDS_DRIVER_NAME = "driverName"; -const TCHAR[] SPLDS_DRIVER_VERSION = "driverVersion"; -const TCHAR[] SPLDS_LOCATION = "location"; -const TCHAR[] SPLDS_PORT_NAME = "portName"; -const TCHAR[] SPLDS_PRINT_ATTRIBUTES = "printAttributes"; -const TCHAR[] SPLDS_PRINT_BIN_NAMES = "printBinNames"; -const TCHAR[] SPLDS_PRINT_COLLATE = "printCollate"; -const TCHAR[] SPLDS_PRINT_COLOR = "printColor"; -const TCHAR[] SPLDS_PRINT_DUPLEX_SUPPORTED = "printDuplexSupported"; -const TCHAR[] SPLDS_PRINT_END_TIME = "printEndTime"; -const TCHAR[] SPLDS_PRINTER_CLASS = "printQueue"; -const TCHAR[] SPLDS_PRINTER_NAME = "printerName"; -const TCHAR[] SPLDS_PRINT_KEEP_PRINTED_JOBS = "printKeepPrintedJobs"; -const TCHAR[] SPLDS_PRINT_LANGUAGE = "printLanguage"; -const TCHAR[] SPLDS_PRINT_MAC_ADDRESS = "printMACAddress"; -const TCHAR[] SPLDS_PRINT_MAX_X_EXTENT = "printMaxXExtent"; -const TCHAR[] SPLDS_PRINT_MAX_Y_EXTENT = "printMaxYExtent"; -const TCHAR[] SPLDS_PRINT_MAX_RESOLUTION_SUPPORTED = "printMaxResolutionSupported"; -const TCHAR[] SPLDS_PRINT_MEDIA_READY = "printMediaReady"; -const TCHAR[] SPLDS_PRINT_MEDIA_SUPPORTED = "printMediaSupported"; -const TCHAR[] SPLDS_PRINT_MEMORY = "printMemory"; -const TCHAR[] SPLDS_PRINT_MIN_X_EXTENT = "printMinXExtent"; -const TCHAR[] SPLDS_PRINT_MIN_Y_EXTENT = "printMinYExtent"; -const TCHAR[] SPLDS_PRINT_NETWORK_ADDRESS = "printNetworkAddress"; -const TCHAR[] SPLDS_PRINT_NOTIFY = "printNotify"; -const TCHAR[] SPLDS_PRINT_NUMBER_UP = "printNumberUp"; -const TCHAR[] SPLDS_PRINT_ORIENTATIONS_SUPPORTED = "printOrientationsSupported"; -const TCHAR[] SPLDS_PRINT_OWNER = "printOwner"; -const TCHAR[] SPLDS_PRINT_PAGES_PER_MINUTE = "printPagesPerMinute"; -const TCHAR[] SPLDS_PRINT_RATE = "printRate"; -const TCHAR[] SPLDS_PRINT_RATE_UNIT = "printRateUnit"; -const TCHAR[] SPLDS_PRINT_SEPARATOR_FILE = "printSeparatorFile"; -const TCHAR[] SPLDS_PRINT_SHARE_NAME = "printShareName"; -const TCHAR[] SPLDS_PRINT_SPOOLING = "printSpooling"; -const TCHAR[] SPLDS_PRINT_STAPLING_SUPPORTED = "printStaplingSupported"; -const TCHAR[] SPLDS_PRINT_START_TIME = "printStartTime"; -const TCHAR[] SPLDS_PRINT_STATUS = "printStatus"; -const TCHAR[] SPLDS_PRIORITY = "priority"; -const TCHAR[] SPLDS_SERVER_NAME = "serverName"; -const TCHAR[] SPLDS_SHORT_SERVER_NAME = "shortServerName"; -const TCHAR[] SPLDS_UNC_NAME = "uNCName"; -const TCHAR[] SPLDS_URL = "url"; -const TCHAR[] SPLDS_FLAGS = "flags"; -const TCHAR[] SPLDS_VERSION_NUMBER = "versionNumber"; - -const TCHAR[] SPLDS_PRINTER_NAME_ALIASES = "printerNameAliases"; -const TCHAR[] SPLDS_PRINTER_LOCATIONS = "printerLocations"; -const TCHAR[] SPLDS_PRINTER_MODEL = "printerModel"; - -// #ifdef __cplusplus -// } -// #endif - -// #endif // _WINSPOOL_ DELETED src/win32/ansi/winuser.d Index: src/win32/ansi/winuser.d ================================================================== --- src/win32/ansi/winuser.d +++ src/win32/ansi/winuser.d @@ -1,8665 +0,0 @@ -module win32.ansi.winuser; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.winbase, win32.ansi.wingdi; -enum : uint { - QS_POSTMESSAGE = 0x0008, - QS_TIMER = 0x0010, - QS_PAINT = 0x0020, - QS_SENDMESSAGE = 0x0040, - QS_HOTKEY = 0x0080, - QS_INPUT = 0x0407 -} - -// #ifndef _WINUSER_ -// #define _WINUSER_ - -// #if !defined(_USER32_) -// #define WINUSERAPI DECLSPEC_IMPORT -// #else -// #... -// #endif - -// #ifdef _MAC -// #... -// #endif - -// #ifdef __cplusplus -// extern "C" { -// #endif /* __cplusplus */ - -// #ifndef WINVER -// #... -// #endif /* !WINVER */ - -// #include - -// #ifndef NOUSER - -alias HANDLE HDWP; -alias VOID MENUTEMPLATEA; -alias VOID MENUTEMPLATEW; -// #ifdef UNICODE -// ... -// #else -alias MENUTEMPLATEA MENUTEMPLATE; -// #endif // UNICODE -alias PVOID LPMENUTEMPLATEA; -alias PVOID LPMENUTEMPLATEW; -// #ifdef UNICODE -// ... -// #else -alias LPMENUTEMPLATEA LPMENUTEMPLATE; -// #endif // UNICODE - -extern(Windows) alias LRESULT function(HWND, UINT, WPARAM, LPARAM) WNDPROC; - -// #ifdef STRICT - -extern(Windows) alias INT_PTR function(HWND, UINT, WPARAM, LPARAM) DLGPROC; -extern(Windows) alias VOID function(HWND, UINT, UINT_PTR, DWORD) TIMERPROC; -extern(Windows) alias BOOL function(HDC, LPARAM, int) GRAYSTRINGPROC; -extern(Windows) alias BOOL function(HWND, LPARAM) WNDENUMPROC; -extern(Windows) alias LRESULT function(int code, WPARAM wParam, LPARAM lParam) HOOKPROC; -extern(Windows) alias VOID function(HWND, UINT, ULONG_PTR, LRESULT) SENDASYNCPROC; - -extern(Windows) alias BOOL function(HWND, LPCSTR, HANDLE) PROPENUMPROCA; -extern(Windows) alias BOOL function(HWND, LPCWSTR, HANDLE) PROPENUMPROCW; - -extern(Windows) alias BOOL function(HWND, LPSTR, HANDLE, ULONG_PTR) PROPENUMPROCEXA; -extern(Windows) alias BOOL function(HWND, LPWSTR, HANDLE, ULONG_PTR) PROPENUMPROCEXW; - -extern(Windows) alias int function(LPSTR lpch, int ichCurrent, int cch, int code) EDITWORDBREAKPROCA; -extern(Windows) alias int function(LPWSTR lpch, int ichCurrent, int cch, int code) EDITWORDBREAKPROCW; - -// #if(WINVER >= 0x0400) -extern(Windows) alias BOOL function(HDC hdc, LPARAM lData, WPARAM wData, int cx, int cy) DRAWSTATEPROC; -// #endif /* WINVER >= 0x0400 */ -// #else /* !STRICT */ - -// ... - -// ... - -// ... - -// ... - -// #if(WINVER >= 0x0400) -// ... -// #endif /* WINVER >= 0x0400 */ -// #endif /* !STRICT */ - -// #ifdef UNICODE -// ... -// #else /* !UNICODE */ -alias PROPENUMPROCA PROPENUMPROC; -alias PROPENUMPROCEXA PROPENUMPROCEX; -alias EDITWORDBREAKPROCA EDITWORDBREAKPROC; -// #endif /* UNICODE */ - -// #ifdef STRICT - -extern(Windows) alias BOOL function(LPSTR, LPARAM) NAMEENUMPROCA; -extern(Windows) alias BOOL function(LPWSTR, LPARAM) NAMEENUMPROCW; - -alias NAMEENUMPROCA WINSTAENUMPROCA; -alias NAMEENUMPROCA DESKTOPENUMPROCA; -alias NAMEENUMPROCW WINSTAENUMPROCW; -alias NAMEENUMPROCW DESKTOPENUMPROCW; - -// #else /* !STRICT */ - -// ... - -// #endif /* !STRICT */ - -// #ifdef UNICODE -// ... - -// #else /* !UNICODE */ -alias WINSTAENUMPROCA WINSTAENUMPROC; -alias DESKTOPENUMPROCA DESKTOPENUMPROC; - -// #endif /* UNICODE */ - -bit IS_INTRESOURCE(LPTSTR _r){ return ((cast(ULONG_PTR)(_r) >> 16) == 0); } -LPSTR MAKEINTRESOURCEA(WORD i){ return cast(LPSTR)(cast(ULONG_PTR)(cast(WORD)(i))); } -LPWSTR MAKEINTRESOURCEW(WORD i){ return cast(LPWSTR)(cast(ULONG_PTR)(cast(WORD)(i))); } -// #ifdef UNICODE -// #... -// #else -alias MAKEINTRESOURCEA MAKEINTRESOURCE; -// #endif // !UNICODE - -// #ifndef NORESOURCE - -const LPTSTR RT_CURSOR = cast(LPTSTR)(1); -const LPTSTR RT_BITMAP = cast(LPTSTR)(2); -const LPTSTR RT_ICON = cast(LPTSTR)(3); -const LPTSTR RT_MENU = cast(LPTSTR)(4); -const LPTSTR RT_DIALOG = cast(LPTSTR)(5); -const LPTSTR RT_STRING = cast(LPTSTR)(6); -const LPTSTR RT_FONTDIR = cast(LPTSTR)(7); -const LPTSTR RT_FONT = cast(LPTSTR)(8); -const LPTSTR RT_ACCELERATOR = cast(LPTSTR)(9); -const LPTSTR RT_RCDATA = cast(LPTSTR)(10); -const LPTSTR RT_MESSAGETABLE = cast(LPTSTR)(11); - -enum : uint { DIFFERENCE = 11 } -const LPTSTR RT_GROUP_CURSOR = cast(LPTSTR)(cast(ULONG_PTR)RT_CURSOR + DIFFERENCE); -const LPTSTR RT_GROUP_ICON = cast(LPTSTR)(cast(ULONG_PTR)RT_ICON + DIFFERENCE); -const LPTSTR RT_VERSION = cast(LPTSTR)(16); -const LPTSTR RT_DLGINCLUDE = cast(LPTSTR)(17); -// #if(WINVER >= 0x0400) -const LPTSTR RT_PLUGPLAY = cast(LPTSTR)(19); -const LPTSTR RT_VXD = cast(LPTSTR)(20); -const LPTSTR RT_ANICURSOR = cast(LPTSTR)(21); -const LPTSTR RT_ANIICON = cast(LPTSTR)(22); -// #endif /* WINVER >= 0x0400 */ -const LPTSTR RT_HTML = cast(LPTSTR)(23); -// #ifdef RC_INVOKED -// #... -// #... -// #... -// #... -// #... -// #... -// #else /* RC_INVOKED */ -const LPTSTR RT_MANIFEST = cast(LPTSTR)(24); -const LPTSTR CREATEPROCESS_MANIFEST_RESOURCE_ID = cast(LPTSTR)( 1); -const LPTSTR ISOLATIONAWARE_MANIFEST_RESOURCE_ID = cast(LPTSTR)(2); -const LPTSTR ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID = cast(LPTSTR)(3); -const LPTSTR MINIMUM_RESERVED_MANIFEST_RESOURCE_ID = cast(LPTSTR)( 1 ); -const LPTSTR MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID = cast(LPTSTR)(16 ); -// #endif /* RC_INVOKED */ - -// #endif /* !NORESOURCE */ - -extern(Windows) export int wvsprintfA( - LPSTR, - LPCSTR, - va_list arglist); -extern(Windows) export int wvsprintfW( - LPWSTR, - LPCWSTR, - va_list arglist); -// #ifdef UNICODE -// #... -// #else -alias wvsprintfA wvsprintf; -// #endif // !UNICODE - -extern(C) export int wsprintfA( - LPSTR, - LPCSTR, - ...); -extern(C) export int wsprintfW( - LPWSTR, - LPCWSTR, - ...); -// #ifdef UNICODE -// #... -// #else -alias wsprintfA wsprintf; -// #endif // !UNICODE - -const LPWSTR SETWALLPAPER_DEFAULT = cast(LPWSTR)-1; - -// #ifndef NOSCROLL - -enum : uint { SB_HORZ = 0 } -enum : uint { SB_VERT = 1 } -enum : uint { SB_CTL = 2 } -enum : uint { SB_BOTH = 3 } - -enum : uint { SB_LINEUP = 0 } -enum : uint { SB_LINELEFT = 0 } -enum : uint { SB_LINEDOWN = 1 } -enum : uint { SB_LINERIGHT = 1 } -enum : uint { SB_PAGEUP = 2 } -enum : uint { SB_PAGELEFT = 2 } -enum : uint { SB_PAGEDOWN = 3 } -enum : uint { SB_PAGERIGHT = 3 } -enum : uint { SB_THUMBPOSITION = 4 } -enum : uint { SB_THUMBTRACK = 5 } -enum : uint { SB_TOP = 6 } -enum : uint { SB_LEFT = 6 } -enum : uint { SB_BOTTOM = 7 } -enum : uint { SB_RIGHT = 7 } -enum : uint { SB_ENDSCROLL = 8 } - -// #endif /* !NOSCROLL */ - -// #ifndef NOSHOWWINDOW - -enum : uint { SW_HIDE = 0 } -enum : uint { SW_SHOWNORMAL = 1 } -enum : uint { SW_NORMAL = 1 } -enum : uint { SW_SHOWMINIMIZED = 2 } -enum : uint { SW_SHOWMAXIMIZED = 3 } -enum : uint { SW_MAXIMIZE = 3 } -enum : uint { SW_SHOWNOACTIVATE = 4 } -enum : uint { SW_SHOW = 5 } -enum : uint { SW_MINIMIZE = 6 } -enum : uint { SW_SHOWMINNOACTIVE = 7 } -enum : uint { SW_SHOWNA = 8 } -enum : uint { SW_RESTORE = 9 } -enum : uint { SW_SHOWDEFAULT = 10 } -enum : uint { SW_FORCEMINIMIZE = 11 } -enum : uint { SW_MAX = 11 } - -enum : uint { HIDE_WINDOW = 0 } -enum : uint { SHOW_OPENWINDOW = 1 } -enum : uint { SHOW_ICONWINDOW = 2 } -enum : uint { SHOW_FULLSCREEN = 3 } -enum : uint { SHOW_OPENNOACTIVATE = 4 } - -enum : uint { SW_PARENTCLOSING = 1 } -enum : uint { SW_OTHERZOOM = 2 } -enum : uint { SW_PARENTOPENING = 3 } -enum : uint { SW_OTHERUNZOOM = 4 } - -// #endif /* !NOSHOWWINDOW */ - -// #if(WINVER >= 0x0500) - -enum : uint { AW_HOR_POSITIVE = 0x00000001 } -enum : uint { AW_HOR_NEGATIVE = 0x00000002 } -enum : uint { AW_VER_POSITIVE = 0x00000004 } -enum : uint { AW_VER_NEGATIVE = 0x00000008 } -enum : uint { AW_CENTER = 0x00000010 } -enum : uint { AW_HIDE = 0x00010000 } -enum : uint { AW_ACTIVATE = 0x00020000 } -enum : uint { AW_SLIDE = 0x00040000 } -enum : uint { AW_BLEND = 0x00080000 } - -// #endif /* WINVER >= 0x0500 */ - -enum : uint { KF_EXTENDED = 0x0100 } -enum : uint { KF_DLGMODE = 0x0800 } -enum : uint { KF_MENUMODE = 0x1000 } -enum : uint { KF_ALTDOWN = 0x2000 } -enum : uint { KF_REPEAT = 0x4000 } -enum : uint { KF_UP = 0x8000 } - -// #ifndef NOVIRTUALKEYCODES - -enum : uint { VK_LBUTTON = 0x01 } -enum : uint { VK_RBUTTON = 0x02 } -enum : uint { VK_CANCEL = 0x03 } -enum : uint { VK_MBUTTON = 0x04 } - -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { VK_XBUTTON1 = 0x05 } -enum : uint { VK_XBUTTON2 = 0x06 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -enum : uint { VK_BACK = 0x08 } -enum : uint { VK_TAB = 0x09 } - -enum : uint { VK_CLEAR = 0x0C } -enum : uint { VK_RETURN = 0x0D } - -enum : uint { VK_SHIFT = 0x10 } -enum : uint { VK_CONTROL = 0x11 } -enum : uint { VK_MENU = 0x12 } -enum : uint { VK_PAUSE = 0x13 } -enum : uint { VK_CAPITAL = 0x14 } - -enum : uint { VK_KANA = 0x15 } -enum : uint { VK_HANGEUL = 0x15 } -enum : uint { VK_HANGUL = 0x15 } -enum : uint { VK_JUNJA = 0x17 } -enum : uint { VK_FINAL = 0x18 } -enum : uint { VK_HANJA = 0x19 } -enum : uint { VK_KANJI = 0x19 } - -enum : uint { VK_ESCAPE = 0x1B } - -enum : uint { VK_CONVERT = 0x1C } -enum : uint { VK_NONCONVERT = 0x1D } -enum : uint { VK_ACCEPT = 0x1E } -enum : uint { VK_MODECHANGE = 0x1F } - -enum : uint { VK_SPACE = 0x20 } -enum : uint { VK_PRIOR = 0x21 } -enum : uint { VK_NEXT = 0x22 } -enum : uint { VK_END = 0x23 } -enum : uint { VK_HOME = 0x24 } -enum : uint { VK_LEFT = 0x25 } -enum : uint { VK_UP = 0x26 } -enum : uint { VK_RIGHT = 0x27 } -enum : uint { VK_DOWN = 0x28 } -enum : uint { VK_SELECT = 0x29 } -enum : uint { VK_PRINT = 0x2A } -enum : uint { VK_EXECUTE = 0x2B } -enum : uint { VK_SNAPSHOT = 0x2C } -enum : uint { VK_INSERT = 0x2D } -enum : uint { VK_DELETE = 0x2E } -enum : uint { VK_HELP = 0x2F } - -enum : uint { VK_LWIN = 0x5B } -enum : uint { VK_RWIN = 0x5C } -enum : uint { VK_APPS = 0x5D } - -enum : uint { VK_SLEEP = 0x5F } - -enum : uint { VK_NUMPAD0 = 0x60 } -enum : uint { VK_NUMPAD1 = 0x61 } -enum : uint { VK_NUMPAD2 = 0x62 } -enum : uint { VK_NUMPAD3 = 0x63 } -enum : uint { VK_NUMPAD4 = 0x64 } -enum : uint { VK_NUMPAD5 = 0x65 } -enum : uint { VK_NUMPAD6 = 0x66 } -enum : uint { VK_NUMPAD7 = 0x67 } -enum : uint { VK_NUMPAD8 = 0x68 } -enum : uint { VK_NUMPAD9 = 0x69 } -enum : uint { VK_MULTIPLY = 0x6A } -enum : uint { VK_ADD = 0x6B } -enum : uint { VK_SEPARATOR = 0x6C } -enum : uint { VK_SUBTRACT = 0x6D } -enum : uint { VK_DECIMAL = 0x6E } -enum : uint { VK_DIVIDE = 0x6F } -enum : uint { VK_F1 = 0x70 } -enum : uint { VK_F2 = 0x71 } -enum : uint { VK_F3 = 0x72 } -enum : uint { VK_F4 = 0x73 } -enum : uint { VK_F5 = 0x74 } -enum : uint { VK_F6 = 0x75 } -enum : uint { VK_F7 = 0x76 } -enum : uint { VK_F8 = 0x77 } -enum : uint { VK_F9 = 0x78 } -enum : uint { VK_F10 = 0x79 } -enum : uint { VK_F11 = 0x7A } -enum : uint { VK_F12 = 0x7B } -enum : uint { VK_F13 = 0x7C } -enum : uint { VK_F14 = 0x7D } -enum : uint { VK_F15 = 0x7E } -enum : uint { VK_F16 = 0x7F } -enum : uint { VK_F17 = 0x80 } -enum : uint { VK_F18 = 0x81 } -enum : uint { VK_F19 = 0x82 } -enum : uint { VK_F20 = 0x83 } -enum : uint { VK_F21 = 0x84 } -enum : uint { VK_F22 = 0x85 } -enum : uint { VK_F23 = 0x86 } -enum : uint { VK_F24 = 0x87 } - -enum : uint { VK_NUMLOCK = 0x90 } -enum : uint { VK_SCROLL = 0x91 } - -enum : uint { VK_OEM_NEC_EQUAL = 0x92 } - -enum : uint { VK_OEM_FJ_JISHO = 0x92 } -enum : uint { VK_OEM_FJ_MASSHOU = 0x93 } -enum : uint { VK_OEM_FJ_TOUROKU = 0x94 } -enum : uint { VK_OEM_FJ_LOYA = 0x95 } -enum : uint { VK_OEM_FJ_ROYA = 0x96 } - -enum : uint { VK_LSHIFT = 0xA0 } -enum : uint { VK_RSHIFT = 0xA1 } -enum : uint { VK_LCONTROL = 0xA2 } -enum : uint { VK_RCONTROL = 0xA3 } -enum : uint { VK_LMENU = 0xA4 } -enum : uint { VK_RMENU = 0xA5 } - -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { VK_BROWSER_BACK = 0xA6 } -enum : uint { VK_BROWSER_FORWARD = 0xA7 } -enum : uint { VK_BROWSER_REFRESH = 0xA8 } -enum : uint { VK_BROWSER_STOP = 0xA9 } -enum : uint { VK_BROWSER_SEARCH = 0xAA } -enum : uint { VK_BROWSER_FAVORITES = 0xAB } -enum : uint { VK_BROWSER_HOME = 0xAC } - -enum : uint { VK_VOLUME_MUTE = 0xAD } -enum : uint { VK_VOLUME_DOWN = 0xAE } -enum : uint { VK_VOLUME_UP = 0xAF } -enum : uint { VK_MEDIA_NEXT_TRACK = 0xB0 } -enum : uint { VK_MEDIA_PREV_TRACK = 0xB1 } -enum : uint { VK_MEDIA_STOP = 0xB2 } -enum : uint { VK_MEDIA_PLAY_PAUSE = 0xB3 } -enum : uint { VK_LAUNCH_MAIL = 0xB4 } -enum : uint { VK_LAUNCH_MEDIA_SELECT = 0xB5 } -enum : uint { VK_LAUNCH_APP1 = 0xB6 } -enum : uint { VK_LAUNCH_APP2 = 0xB7 } - -// #endif /* _WIN32_WINNT >= 0x0500 */ - -enum : uint { VK_OEM_1 = 0xBA } -enum : uint { VK_OEM_PLUS = 0xBB } -enum : uint { VK_OEM_COMMA = 0xBC } -enum : uint { VK_OEM_MINUS = 0xBD } -enum : uint { VK_OEM_PERIOD = 0xBE } -enum : uint { VK_OEM_2 = 0xBF } -enum : uint { VK_OEM_3 = 0xC0 } - -enum : uint { VK_OEM_4 = 0xDB } -enum : uint { VK_OEM_5 = 0xDC } -enum : uint { VK_OEM_6 = 0xDD } -enum : uint { VK_OEM_7 = 0xDE } -enum : uint { VK_OEM_8 = 0xDF } - -enum : uint { VK_OEM_AX = 0xE1 } -enum : uint { VK_OEM_102 = 0xE2 } -enum : uint { VK_ICO_HELP = 0xE3 } -enum : uint { VK_ICO_00 = 0xE4 } - -// #if(WINVER >= 0x0400) -enum : uint { VK_PROCESSKEY = 0xE5 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { VK_ICO_CLEAR = 0xE6 } - -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { VK_PACKET = 0xE7 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -enum : uint { VK_OEM_RESET = 0xE9 } -enum : uint { VK_OEM_JUMP = 0xEA } -enum : uint { VK_OEM_PA1 = 0xEB } -enum : uint { VK_OEM_PA2 = 0xEC } -enum : uint { VK_OEM_PA3 = 0xED } -enum : uint { VK_OEM_WSCTRL = 0xEE } -enum : uint { VK_OEM_CUSEL = 0xEF } -enum : uint { VK_OEM_ATTN = 0xF0 } -enum : uint { VK_OEM_FINISH = 0xF1 } -enum : uint { VK_OEM_COPY = 0xF2 } -enum : uint { VK_OEM_AUTO = 0xF3 } -enum : uint { VK_OEM_ENLW = 0xF4 } -enum : uint { VK_OEM_BACKTAB = 0xF5 } - -enum : uint { VK_ATTN = 0xF6 } -enum : uint { VK_CRSEL = 0xF7 } -enum : uint { VK_EXSEL = 0xF8 } -enum : uint { VK_EREOF = 0xF9 } -enum : uint { VK_PLAY = 0xFA } -enum : uint { VK_ZOOM = 0xFB } -enum : uint { VK_NONAME = 0xFC } -enum : uint { VK_PA1 = 0xFD } -enum : uint { VK_OEM_CLEAR = 0xFE } - -// #endif /* !NOVIRTUALKEYCODES */ - -// #ifndef NOWH - -enum { WH_MIN = -1 } -enum { WH_MSGFILTER = -1 } -enum : uint { WH_JOURNALRECORD = 0 } -enum : uint { WH_JOURNALPLAYBACK = 1 } -enum : uint { WH_KEYBOARD = 2 } -enum : uint { WH_GETMESSAGE = 3 } -enum : uint { WH_CALLWNDPROC = 4 } -enum : uint { WH_CBT = 5 } -enum : uint { WH_SYSMSGFILTER = 6 } -enum : uint { WH_MOUSE = 7 } -// #if defined(_WIN32_WINDOWS) -// #... -// #endif -enum : uint { WH_DEBUG = 9 } -enum : uint { WH_SHELL = 10 } -enum : uint { WH_FOREGROUNDIDLE = 11 } -// #if(WINVER >= 0x0400) -enum : uint { WH_CALLWNDPROCRET = 12 } -// #endif /* WINVER >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0400) -enum : uint { WH_KEYBOARD_LL = 13 } -enum : uint { WH_MOUSE_LL = 14 } -// #endif // (_WIN32_WINNT >= 0x0400) - -// #if(WINVER >= 0x0400) -// #if (_WIN32_WINNT >= 0x0400) -enum : uint { WH_MAX = 14 } -// #else -// #... -// #endif // (_WIN32_WINNT >= 0x0400) -// #else -// #... -// #endif - -alias WH_MIN WH_MINHOOK; -alias WH_MAX WH_MAXHOOK; - -enum : uint { HC_ACTION = 0 } -enum : uint { HC_GETNEXT = 1 } -enum : uint { HC_SKIP = 2 } -enum : uint { HC_NOREMOVE = 3 } -alias HC_NOREMOVE HC_NOREM; -enum : uint { HC_SYSMODALON = 4 } -enum : uint { HC_SYSMODALOFF = 5 } - -enum : uint { HCBT_MOVESIZE = 0 } -enum : uint { HCBT_MINMAX = 1 } -enum : uint { HCBT_QS = 2 } -enum : uint { HCBT_CREATEWND = 3 } -enum : uint { HCBT_DESTROYWND = 4 } -enum : uint { HCBT_ACTIVATE = 5 } -enum : uint { HCBT_CLICKSKIPPED = 6 } -enum : uint { HCBT_KEYSKIPPED = 7 } -enum : uint { HCBT_SYSCOMMAND = 8 } -enum : uint { HCBT_SETFOCUS = 9 } - -struct tagCBT_CREATEWNDA { - tagCREATESTRUCTA *lpcs; - HWND hwndInsertAfter; -} -alias tagCBT_CREATEWNDA CBT_CREATEWNDA; -alias tagCBT_CREATEWNDA* LPCBT_CREATEWNDA; - -struct tagCBT_CREATEWNDW { - tagCREATESTRUCTW *lpcs; - HWND hwndInsertAfter; -} -alias tagCBT_CREATEWNDW CBT_CREATEWNDW; -alias tagCBT_CREATEWNDW* LPCBT_CREATEWNDW; - -// #ifdef UNICODE -// ... -// #else -alias CBT_CREATEWNDA CBT_CREATEWND; -alias LPCBT_CREATEWNDA LPCBT_CREATEWND; -// #endif // UNICODE - -struct tagCBTACTIVATESTRUCT { - BOOL fMouse; - HWND hWndActive; -} -alias tagCBTACTIVATESTRUCT CBTACTIVATESTRUCT; -alias tagCBTACTIVATESTRUCT* LPCBTACTIVATESTRUCT; - -// #if(_WIN32_WINNT >= 0x0501) - -struct tagWTSSESSION_NOTIFICATION { - DWORD cbSize; - DWORD dwSessionId; -} -alias tagWTSSESSION_NOTIFICATION WTSSESSION_NOTIFICATION; -alias tagWTSSESSION_NOTIFICATION* PWTSSESSION_NOTIFICATION; - -enum : uint { WTS_CONSOLE_CONNECT = 0x1 } -enum : uint { WTS_CONSOLE_DISCONNECT = 0x2 } -enum : uint { WTS_REMOTE_CONNECT = 0x3 } -enum : uint { WTS_REMOTE_DISCONNECT = 0x4 } -enum : uint { WTS_SESSION_LOGON = 0x5 } -enum : uint { WTS_SESSION_LOGOFF = 0x6 } -enum : uint { WTS_SESSION_LOCK = 0x7 } -enum : uint { WTS_SESSION_UNLOCK = 0x8 } - -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { MSGF_DIALOGBOX = 0 } -enum : uint { MSGF_MESSAGEBOX = 1 } -enum : uint { MSGF_MENU = 2 } -enum : uint { MSGF_SCROLLBAR = 5 } -enum : uint { MSGF_NEXTWINDOW = 6 } -enum : uint { MSGF_MAX = 8 } -enum : uint { MSGF_USER = 4096 } - -enum : uint { HSHELL_WINDOWCREATED = 1 } -enum : uint { HSHELL_WINDOWDESTROYED = 2 } -enum : uint { HSHELL_ACTIVATESHELLWINDOW = 3 } - -// #if(WINVER >= 0x0400) -enum : uint { HSHELL_WINDOWACTIVATED = 4 } -enum : uint { HSHELL_GETMINRECT = 5 } -enum : uint { HSHELL_REDRAW = 6 } -enum : uint { HSHELL_TASKMAN = 7 } -enum : uint { HSHELL_LANGUAGE = 8 } -// #endif /* WINVER >= 0x0400 */ -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { HSHELL_ACCESSIBILITYSTATE = 11 } -enum : uint { HSHELL_APPCOMMAND = 12 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { HSHELL_WINDOWREPLACED = 13 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if(_WIN32_WINNT >= 0x0500) - -enum : uint { ACCESS_STICKYKEYS = 0x0001 } -enum : uint { ACCESS_FILTERKEYS = 0x0002 } -enum : uint { ACCESS_MOUSEKEYS = 0x0003 } - -enum : uint { APPCOMMAND_BROWSER_BACKWARD = 1 } -enum : uint { APPCOMMAND_BROWSER_FORWARD = 2 } -enum : uint { APPCOMMAND_BROWSER_REFRESH = 3 } -enum : uint { APPCOMMAND_BROWSER_STOP = 4 } -enum : uint { APPCOMMAND_BROWSER_SEARCH = 5 } -enum : uint { APPCOMMAND_BROWSER_FAVORITES = 6 } -enum : uint { APPCOMMAND_BROWSER_HOME = 7 } -enum : uint { APPCOMMAND_VOLUME_MUTE = 8 } -enum : uint { APPCOMMAND_VOLUME_DOWN = 9 } -enum : uint { APPCOMMAND_VOLUME_UP = 10 } -enum : uint { APPCOMMAND_MEDIA_NEXTTRACK = 11 } -enum : uint { APPCOMMAND_MEDIA_PREVIOUSTRACK = 12 } -enum : uint { APPCOMMAND_MEDIA_STOP = 13 } -enum : uint { APPCOMMAND_MEDIA_PLAY_PAUSE = 14 } -enum : uint { APPCOMMAND_LAUNCH_MAIL = 15 } -enum : uint { APPCOMMAND_LAUNCH_MEDIA_SELECT = 16 } -enum : uint { APPCOMMAND_LAUNCH_APP1 = 17 } -enum : uint { APPCOMMAND_LAUNCH_APP2 = 18 } -enum : uint { APPCOMMAND_BASS_DOWN = 19 } -enum : uint { APPCOMMAND_BASS_BOOST = 20 } -enum : uint { APPCOMMAND_BASS_UP = 21 } -enum : uint { APPCOMMAND_TREBLE_DOWN = 22 } -enum : uint { APPCOMMAND_TREBLE_UP = 23 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { APPCOMMAND_MICROPHONE_VOLUME_MUTE = 24 } -enum : uint { APPCOMMAND_MICROPHONE_VOLUME_DOWN = 25 } -enum : uint { APPCOMMAND_MICROPHONE_VOLUME_UP = 26 } -enum : uint { APPCOMMAND_HELP = 27 } -enum : uint { APPCOMMAND_FIND = 28 } -enum : uint { APPCOMMAND_NEW = 29 } -enum : uint { APPCOMMAND_OPEN = 30 } -enum : uint { APPCOMMAND_CLOSE = 31 } -enum : uint { APPCOMMAND_SAVE = 32 } -enum : uint { APPCOMMAND_PRINT = 33 } -enum : uint { APPCOMMAND_UNDO = 34 } -enum : uint { APPCOMMAND_REDO = 35 } -enum : uint { APPCOMMAND_COPY = 36 } -enum : uint { APPCOMMAND_CUT = 37 } -enum : uint { APPCOMMAND_PASTE = 38 } -enum : uint { APPCOMMAND_REPLY_TO_MAIL = 39 } -enum : uint { APPCOMMAND_FORWARD_MAIL = 40 } -enum : uint { APPCOMMAND_SEND_MAIL = 41 } -enum : uint { APPCOMMAND_SPELL_CHECK = 42 } -enum : uint { APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE = 43 } -enum : uint { APPCOMMAND_MIC_ON_OFF_TOGGLE = 44 } -enum : uint { APPCOMMAND_CORRECTION_LIST = 45 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { FAPPCOMMAND_MOUSE = 0x8000 } -enum : uint { FAPPCOMMAND_KEY = 0 } -enum : uint { FAPPCOMMAND_OEM = 0x1000 } -enum : uint { FAPPCOMMAND_MASK = 0xF000 } - -// #define GET_APPCOMMAND_LPARAM(lParam) ((short)(HIWORD(lParam) & ~FAPPCOMMAND_MASK)) -// #define GET_DEVICE_LPARAM(lParam) ((WORD)(HIWORD(lParam) & FAPPCOMMAND_MASK)) -// #define GET_MOUSEORKEY_LPARAM GET_DEVICE_LPARAM -// #define GET_FLAGS_LPARAM(lParam) (LOWORD(lParam)) -// #define GET_KEYSTATE_LPARAM(lParam) GET_FLAGS_LPARAM(lParam) -// #endif /* _WIN32_WINNT >= 0x0500 */ - -struct tagEVENTMSG { - UINT message; - UINT paramL; - UINT paramH; - DWORD time; - HWND hwnd; -} -alias tagEVENTMSG EVENTMSG; -alias tagEVENTMSG* PEVENTMSGMSG; -alias tagEVENTMSG* NPEVENTMSGMSG; -alias tagEVENTMSG* LPEVENTMSGMSG; - -alias tagEVENTMSG* PEVENTMSG; -alias tagEVENTMSG* NPEVENTMSG; -alias tagEVENTMSG* LPEVENTMSG; - -struct tagCWPSTRUCT { - LPARAM lParam; - WPARAM wParam; - UINT message; - HWND hwnd; -} -alias tagCWPSTRUCT CWPSTRUCT; -alias tagCWPSTRUCT* PCWPSTRUCT; -alias tagCWPSTRUCT* NPCWPSTRUCT; -alias tagCWPSTRUCT* LPCWPSTRUCT; - -// #if(WINVER >= 0x0400) - -struct tagCWPRETSTRUCT { - LRESULT lResult; - LPARAM lParam; - WPARAM wParam; - UINT message; - HWND hwnd; -} -alias tagCWPRETSTRUCT CWPRETSTRUCT; -alias tagCWPRETSTRUCT* PCWPRETSTRUCT; -alias tagCWPRETSTRUCT* NPCWPRETSTRUCT; -alias tagCWPRETSTRUCT* LPCWPRETSTRUCT; - -// #endif /* WINVER >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0400) - -enum : uint { LLKHF_EXTENDED = KF_EXTENDED >> 8 } -enum : uint { LLKHF_INJECTED = 0x00000010 } -enum : uint { LLKHF_ALTDOWN = KF_ALTDOWN >> 8 } -enum : uint { LLKHF_UP = KF_UP >> 8 } - -enum : uint { LLMHF_INJECTED = 0x00000001 } - -struct tagKBDLLHOOKSTRUCT { - DWORD vkCode; - DWORD scanCode; - DWORD flags; - DWORD time; - ULONG_PTR dwExtraInfo; -} -alias tagKBDLLHOOKSTRUCT KBDLLHOOKSTRUCT; -alias tagKBDLLHOOKSTRUCT* LPKBDLLHOOKSTRUCT; -alias tagKBDLLHOOKSTRUCT* PKBDLLHOOKSTRUCT; - -struct tagMSLLHOOKSTRUCT { - POINT pt; - DWORD mouseData; - DWORD flags; - DWORD time; - ULONG_PTR dwExtraInfo; -} -alias tagMSLLHOOKSTRUCT MSLLHOOKSTRUCT; -alias tagMSLLHOOKSTRUCT* LPMSLLHOOKSTRUCT; -alias tagMSLLHOOKSTRUCT* PMSLLHOOKSTRUCT; - -// #endif // (_WIN32_WINNT >= 0x0400) - -struct tagDEBUGHOOKINFO { - DWORD idThread; - DWORD idThreadInstaller; - LPARAM lParam; - WPARAM wParam; - int code; -} -alias tagDEBUGHOOKINFO DEBUGHOOKINFO; -alias tagDEBUGHOOKINFO* PDEBUGHOOKINFO; -alias tagDEBUGHOOKINFO* NPDEBUGHOOKINFO; -alias tagDEBUGHOOKINFO* LPDEBUGHOOKINFO; - -struct tagMOUSEHOOKSTRUCT { - POINT pt; - HWND hwnd; - UINT wHitTestCode; - ULONG_PTR dwExtraInfo; -} -alias tagMOUSEHOOKSTRUCT MOUSEHOOKSTRUCT; -alias tagMOUSEHOOKSTRUCT* LPMOUSEHOOKSTRUCT; -alias tagMOUSEHOOKSTRUCT* PMOUSEHOOKSTRUCT; - -// #if(_WIN32_WINNT >= 0x0500) -// #ifdef __cplusplus -struct tagMOUSEHOOKSTRUCTEX { - POINT pt; - HWND hwnd; - UINT wHitTestCode; - ULONG_PTR dwExtraInfo; - DWORD mouseData; -} -alias tagMOUSEHOOKSTRUCTEX MOUSEHOOKSTRUCTEX; -alias tagMOUSEHOOKSTRUCTEX* LPMOUSEHOOKSTRUCTEX; -alias tagMOUSEHOOKSTRUCTEX* PMOUSEHOOKSTRUCTEX; - -// #else // ndef __cplusplus -// ... -// #endif -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(WINVER >= 0x0400) - -struct tagHARDWAREHOOKSTRUCT { - HWND hwnd; - UINT message; - WPARAM wParam; - LPARAM lParam; -} -alias tagHARDWAREHOOKSTRUCT HARDWAREHOOKSTRUCT; -alias tagHARDWAREHOOKSTRUCT* LPHARDWAREHOOKSTRUCT; -alias tagHARDWAREHOOKSTRUCT* PHARDWAREHOOKSTRUCT; - -// #endif /* WINVER >= 0x0400 */ -// #endif /* !NOWH */ - -enum : uint { HKL_PREV = 0 } -enum : uint { HKL_NEXT = 1 } - -enum : uint { KLF_ACTIVATE = 0x00000001 } -enum : uint { KLF_SUBSTITUTE_OK = 0x00000002 } -enum : uint { KLF_REORDER = 0x00000008 } -// #if(WINVER >= 0x0400) -enum : uint { KLF_REPLACELANG = 0x00000010 } -enum : uint { KLF_NOTELLSHELL = 0x00000080 } -// #endif /* WINVER >= 0x0400 */ -enum : uint { KLF_SETFORPROCESS = 0x00000100 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { KLF_SHIFTLOCK = 0x00010000 } -enum : uint { KLF_RESET = 0x40000000 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(WINVER >= 0x0500) - -enum : uint { INPUTLANGCHANGE_SYSCHARSET = 0x0001 } -enum : uint { INPUTLANGCHANGE_FORWARD = 0x0002 } -enum : uint { INPUTLANGCHANGE_BACKWARD = 0x0004 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { KL_NAMELENGTH = 9 } - -extern(Windows) export HKL LoadKeyboardLayoutA( - LPCSTR pwszKLID, - UINT Flags); -extern(Windows) export HKL LoadKeyboardLayoutW( - LPCWSTR pwszKLID, - UINT Flags); -// #ifdef UNICODE -// #... -// #else -alias LoadKeyboardLayoutA LoadKeyboardLayout; -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export HKL ActivateKeyboardLayout( - HKL hkl, - UINT Flags); -// #else -// ... -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0400) -extern(Windows) export int ToUnicodeEx( - UINT wVirtKey, - UINT wScanCode, - BYTE *lpKeyState, - LPWSTR pwszBuff, - int cchBuff, - UINT wFlags, - HKL dwhkl); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL UnloadKeyboardLayout( - HKL hkl); - -extern(Windows) export BOOL GetKeyboardLayoutNameA( - LPSTR pwszKLID); -extern(Windows) export BOOL GetKeyboardLayoutNameW( - LPWSTR pwszKLID); -// #ifdef UNICODE -// #... -// #else -alias GetKeyboardLayoutNameA GetKeyboardLayoutName; -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export int GetKeyboardLayoutList( - int nBuff, - HKL *lpList); - -extern(Windows) export HKL GetKeyboardLayout( - DWORD idThread -); -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) - -struct tagMOUSEMOVEPOINT { - int x; - int y; - DWORD time; - ULONG_PTR dwExtraInfo; -} -alias tagMOUSEMOVEPOINT MOUSEMOVEPOINT; -alias tagMOUSEMOVEPOINT* PMOUSEMOVEPOINT; -alias tagMOUSEMOVEPOINT* LPMOUSEMOVEPOINT; - -enum : uint { GMMP_USE_DISPLAY_POINTS = 1 } -enum : uint { GMMP_USE_HIGH_RESOLUTION_POINTS = 2 } - -extern(Windows) export int GetMouseMovePointsEx( - UINT cbSize, - LPMOUSEMOVEPOINT lppt, - LPMOUSEMOVEPOINT lpptBuf, - int nBufPoints, - DWORD resolution -); - -// #endif /* WINVER >= 0x0500 */ - -// #ifndef NODESKTOP - -enum : uint { DESKTOP_READOBJECTS = 0x0001 } -enum : uint { DESKTOP_CREATEWINDOW = 0x0002 } -enum : uint { DESKTOP_CREATEMENU = 0x0004 } -enum : uint { DESKTOP_HOOKCONTROL = 0x0008 } -enum : uint { DESKTOP_JOURNALRECORD = 0x0010 } -enum : uint { DESKTOP_JOURNALPLAYBACK = 0x0020 } -enum : uint { DESKTOP_ENUMERATE = 0x0040 } -enum : uint { DESKTOP_WRITEOBJECTS = 0x0080 } -enum : uint { DESKTOP_SWITCHDESKTOP = 0x0100 } - -enum : uint { DF_ALLOWOTHERACCOUNTHOOK = 0x0001 } - -// #ifdef _WINGDI_ -// #ifndef NOGDI - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #endif /* NOGDI */ -// #endif /* _WINGDI_ */ - -extern(Windows) export HDESK OpenDesktopA( - LPCSTR lpszDesktop, - DWORD dwFlags, - BOOL fInherit, - ACCESS_MASK dwDesiredAccess); -extern(Windows) export HDESK OpenDesktopW( - LPCWSTR lpszDesktop, - DWORD dwFlags, - BOOL fInherit, - ACCESS_MASK dwDesiredAccess); -// #ifdef UNICODE -// #... -// #else -alias OpenDesktopA OpenDesktop; -// #endif // !UNICODE - -extern(Windows) export HDESK OpenInputDesktop( - DWORD dwFlags, - BOOL fInherit, - ACCESS_MASK dwDesiredAccess); - -extern(Windows) export BOOL EnumDesktopsA( - HWINSTA hwinsta, - DESKTOPENUMPROCA lpEnumFunc, - LPARAM lParam); -extern(Windows) export BOOL EnumDesktopsW( - HWINSTA hwinsta, - DESKTOPENUMPROCW lpEnumFunc, - LPARAM lParam); -// #ifdef UNICODE -// #... -// #else -alias EnumDesktopsA EnumDesktops; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumDesktopWindows( - HDESK hDesktop, - WNDENUMPROC lpfn, - LPARAM lParam); - -extern(Windows) export BOOL SwitchDesktop( - HDESK hDesktop); - -extern(Windows) export BOOL SetThreadDesktop( - HDESK hDesktop); - -extern(Windows) export BOOL CloseDesktop( - HDESK hDesktop); - -extern(Windows) export HDESK GetThreadDesktop( - DWORD dwThreadId); -// #endif /* !NODESKTOP */ - -// #ifndef NOWINDOWSTATION - -enum : uint { WINSTA_ENUMDESKTOPS = 0x0001 } -enum : uint { WINSTA_READATTRIBUTES = 0x0002 } -enum : uint { WINSTA_ACCESSCLIPBOARD = 0x0004 } -enum : uint { WINSTA_CREATEDESKTOP = 0x0008 } -enum : uint { WINSTA_WRITEATTRIBUTES = 0x0010 } -enum : uint { WINSTA_ACCESSGLOBALATOMS = 0x0020 } -enum : uint { WINSTA_EXITWINDOWS = 0x0040 } -enum : uint { WINSTA_ENUMERATE = 0x0100 } -enum : uint { WINSTA_READSCREEN = 0x0200 } - -enum : uint { WSF_VISIBLE = 0x0001 } - -extern(Windows) export HWINSTA CreateWindowStationA( - LPCSTR lpwinsta, - DWORD dwReserved, - ACCESS_MASK dwDesiredAccess, - LPSECURITY_ATTRIBUTES lpsa); -extern(Windows) export HWINSTA CreateWindowStationW( - LPCWSTR lpwinsta, - DWORD dwReserved, - ACCESS_MASK dwDesiredAccess, - LPSECURITY_ATTRIBUTES lpsa); -// #ifdef UNICODE -// #... -// #else -alias CreateWindowStationA CreateWindowStation; -// #endif // !UNICODE - -extern(Windows) export HWINSTA OpenWindowStationA( - LPCSTR lpszWinSta, - BOOL fInherit, - ACCESS_MASK dwDesiredAccess); -extern(Windows) export HWINSTA OpenWindowStationW( - LPCWSTR lpszWinSta, - BOOL fInherit, - ACCESS_MASK dwDesiredAccess); -// #ifdef UNICODE -// #... -// #else -alias OpenWindowStationA OpenWindowStation; -// #endif // !UNICODE - -extern(Windows) export BOOL EnumWindowStationsA( - WINSTAENUMPROCA lpEnumFunc, - LPARAM lParam); -extern(Windows) export BOOL EnumWindowStationsW( - WINSTAENUMPROCW lpEnumFunc, - LPARAM lParam); -// #ifdef UNICODE -// #... -// #else -alias EnumWindowStationsA EnumWindowStations; -// #endif // !UNICODE - -extern(Windows) export BOOL CloseWindowStation( - HWINSTA hWinSta); - -extern(Windows) export BOOL SetProcessWindowStation( - HWINSTA hWinSta); - -extern(Windows) export HWINSTA GetProcessWindowStation(); -// #endif /* !NOWINDOWSTATION */ - -// #ifndef NOSECURITY - -extern(Windows) export BOOL SetUserObjectSecurity( - HANDLE hObj, - PSECURITY_INFORMATION pSIRequested, - PSECURITY_DESCRIPTOR pSID); - -extern(Windows) export BOOL GetUserObjectSecurity( - HANDLE hObj, - PSECURITY_INFORMATION pSIRequested, - PSECURITY_DESCRIPTOR pSID, - DWORD nLength, - LPDWORD lpnLengthNeeded); - -enum : uint { UOI_FLAGS = 1 } -enum : uint { UOI_NAME = 2 } -enum : uint { UOI_TYPE = 3 } -enum : uint { UOI_USER_SID = 4 } - -struct tagUSEROBJECTFLAGS { - BOOL fInherit; - BOOL fReserved; - DWORD dwFlags; -} -alias tagUSEROBJECTFLAGS USEROBJECTFLAGS; -alias tagUSEROBJECTFLAGS* PUSEROBJECTFLAGS; - -extern(Windows) export BOOL GetUserObjectInformationA( - HANDLE hObj, - int nIndex, - PVOID pvInfo, - DWORD nLength, - LPDWORD lpnLengthNeeded); -extern(Windows) export BOOL GetUserObjectInformationW( - HANDLE hObj, - int nIndex, - PVOID pvInfo, - DWORD nLength, - LPDWORD lpnLengthNeeded); -// #ifdef UNICODE -// #... -// #else -alias GetUserObjectInformationA GetUserObjectInformation; -// #endif // !UNICODE - -extern(Windows) export BOOL SetUserObjectInformationA( - HANDLE hObj, - int nIndex, - PVOID pvInfo, - DWORD nLength); -extern(Windows) export BOOL SetUserObjectInformationW( - HANDLE hObj, - int nIndex, - PVOID pvInfo, - DWORD nLength); -// #ifdef UNICODE -// #... -// #else -alias SetUserObjectInformationA SetUserObjectInformation; -// #endif // !UNICODE - -// #endif /* !NOSECURITY */ - -// #if(WINVER >= 0x0400) -struct tagWNDCLASSEXA { - UINT cbSize; - UINT style; - WNDPROC lpfnWndProc; - int cbClsExtra; - int cbWndExtra; - HINSTANCE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCSTR lpszMenuName; - LPCSTR lpszClassName; - HICON hIconSm; -} -alias tagWNDCLASSEXA WNDCLASSEXA; -alias tagWNDCLASSEXA* PWNDCLASSEXA; -alias tagWNDCLASSEXA* NPWNDCLASSEXA; -alias tagWNDCLASSEXA* LPWNDCLASSEXA; - -struct tagWNDCLASSEXW { - UINT cbSize; - UINT style; - WNDPROC lpfnWndProc; - int cbClsExtra; - int cbWndExtra; - HINSTANCE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCWSTR lpszMenuName; - LPCWSTR lpszClassName; - HICON hIconSm; -} -alias tagWNDCLASSEXW WNDCLASSEXW; -alias tagWNDCLASSEXW* PWNDCLASSEXW; -alias tagWNDCLASSEXW* NPWNDCLASSEXW; -alias tagWNDCLASSEXW* LPWNDCLASSEXW; - -// #ifdef UNICODE -// ... -// #else -alias WNDCLASSEXA WNDCLASSEX; -alias PWNDCLASSEXA PWNDCLASSEX; -alias NPWNDCLASSEXA NPWNDCLASSEX; -alias LPWNDCLASSEXA LPWNDCLASSEX; -// #endif // UNICODE -// #endif /* WINVER >= 0x0400 */ - -struct tagWNDCLASSA { - UINT style; - WNDPROC lpfnWndProc; - int cbClsExtra; - int cbWndExtra; - HINSTANCE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCSTR lpszMenuName; - LPCSTR lpszClassName; -} -alias tagWNDCLASSA WNDCLASSA; -alias tagWNDCLASSA* PWNDCLASSA; -alias tagWNDCLASSA* NPWNDCLASSA; -alias tagWNDCLASSA* LPWNDCLASSA; - -struct tagWNDCLASSW { - UINT style; - WNDPROC lpfnWndProc; - int cbClsExtra; - int cbWndExtra; - HINSTANCE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCWSTR lpszMenuName; - LPCWSTR lpszClassName; -} -alias tagWNDCLASSW WNDCLASSW; -alias tagWNDCLASSW* PWNDCLASSW; -alias tagWNDCLASSW* NPWNDCLASSW; -alias tagWNDCLASSW* LPWNDCLASSW; - -// #ifdef UNICODE -// ... -// #else -alias WNDCLASSA WNDCLASS; -alias PWNDCLASSA PWNDCLASS; -alias NPWNDCLASSA NPWNDCLASS; -alias LPWNDCLASSA LPWNDCLASS; -// #endif // UNICODE - -// #ifndef NOMSG - -struct tagMSG { - HWND hwnd; - UINT message; - WPARAM wParam; - LPARAM lParam; - DWORD time; - POINT pt; -// #ifdef _MAC -// ... -// #endif -} -alias tagMSG MSG; -alias tagMSG* PMSG; -alias tagMSG* NPMSG; -alias tagMSG* LPMSG; - -// #define POINTSTOPOINT(pt, pts) { (pt).x = (LONG)(SHORT)LOWORD(*(LONG*)&pts); (pt).y = (LONG)(SHORT)HIWORD(*(LONG*)&pts); } - -// #define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y))) -alias MAKELONG MAKEWPARAM; -alias MAKELONG MAKELPARAM; -alias MAKELONG MAKELRESULT; - -// #endif /* !NOMSG */ - -// #ifndef NOWINOFFSETS - -enum { GWL_WNDPROC = -4 } -enum { GWL_HINSTANCE = -6 } -enum { GWL_HWNDPARENT = -8 } -enum { GWL_STYLE = -16 } -enum { GWL_EXSTYLE = -20 } -enum { GWL_USERDATA = -21 } -enum { GWL_ID = -12 } - -// #ifdef _WIN64 - -// #... -// #... -// #... -// #... - -// #endif /* _WIN64 */ - -enum { GWLP_WNDPROC = -4 } -enum { GWLP_HINSTANCE = -6 } -enum { GWLP_HWNDPARENT = -8 } -enum { GWLP_USERDATA = -21 } -enum { GWLP_ID = -12 } - -enum { GCL_MENUNAME = -8 } -enum { GCL_HBRBACKGROUND = -10 } -enum { GCL_HCURSOR = -12 } -enum { GCL_HICON = -14 } -enum { GCL_HMODULE = -16 } -enum { GCL_CBWNDEXTRA = -18 } -enum { GCL_CBCLSEXTRA = -20 } -enum { GCL_WNDPROC = -24 } -enum { GCL_STYLE = -26 } -enum { GCW_ATOM = -32 } - -// #if(WINVER >= 0x0400) -enum { GCL_HICONSM = -34 } -// #endif /* WINVER >= 0x0400 */ - -// #ifdef _WIN64 - -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #endif /* _WIN64 */ - -enum { GCLP_MENUNAME = -8 } -enum { GCLP_HBRBACKGROUND = -10 } -enum { GCLP_HCURSOR = -12 } -enum { GCLP_HICON = -14 } -enum { GCLP_HMODULE = -16 } -enum { GCLP_WNDPROC = -24 } -enum { GCLP_HICONSM = -34 } - -// #endif /* !NOWINOFFSETS */ - -// #ifndef NOWINMESSAGES - -enum : uint { WM_NULL = 0x0000 } -enum : uint { WM_CREATE = 0x0001 } -enum : uint { WM_DESTROY = 0x0002 } -enum : uint { WM_MOVE = 0x0003 } -enum : uint { WM_SIZE = 0x0005 } - -enum : uint { WM_ACTIVATE = 0x0006 } - -enum : uint { WA_INACTIVE = 0 } -enum : uint { WA_ACTIVE = 1 } -enum : uint { WA_CLICKACTIVE = 2 } - -enum : uint { WM_SETFOCUS = 0x0007 } -enum : uint { WM_KILLFOCUS = 0x0008 } -enum : uint { WM_ENABLE = 0x000A } -enum : uint { WM_SETREDRAW = 0x000B } -enum : uint { WM_SETTEXT = 0x000C } -enum : uint { WM_GETTEXT = 0x000D } -enum : uint { WM_GETTEXTLENGTH = 0x000E } -enum : uint { WM_PAINT = 0x000F } -enum : uint { WM_CLOSE = 0x0010 } -// #ifndef _WIN32_WCE -enum : uint { WM_QUERYENDSESSION = 0x0011 } -enum : uint { WM_QUERYOPEN = 0x0013 } -enum : uint { WM_ENDSESSION = 0x0016 } -// #endif -enum : uint { WM_QUIT = 0x0012 } -enum : uint { WM_ERASEBKGND = 0x0014 } -enum : uint { WM_SYSCOLORCHANGE = 0x0015 } -enum : uint { WM_SHOWWINDOW = 0x0018 } -enum : uint { WM_WININICHANGE = 0x001A } -// #if(WINVER >= 0x0400) -alias WM_WININICHANGE WM_SETTINGCHANGE; -// #endif /* WINVER >= 0x0400 */ - -enum : uint { WM_DEVMODECHANGE = 0x001B } -enum : uint { WM_ACTIVATEAPP = 0x001C } -enum : uint { WM_FONTCHANGE = 0x001D } -enum : uint { WM_TIMECHANGE = 0x001E } -enum : uint { WM_CANCELMODE = 0x001F } -enum : uint { WM_SETCURSOR = 0x0020 } -enum : uint { WM_MOUSEACTIVATE = 0x0021 } -enum : uint { WM_CHILDACTIVATE = 0x0022 } -enum : uint { WM_QUEUESYNC = 0x0023 } - -enum : uint { WM_GETMINMAXINFO = 0x0024 } - -struct tagMINMAXINFO { - POINT ptReserved; - POINT ptMaxSize; - POINT ptMaxPosition; - POINT ptMinTrackSize; - POINT ptMaxTrackSize; -} -alias tagMINMAXINFO MINMAXINFO; -alias tagMINMAXINFO* PMINMAXINFO; -alias tagMINMAXINFO* LPMINMAXINFO; - -enum : uint { WM_PAINTICON = 0x0026 } -enum : uint { WM_ICONERASEBKGND = 0x0027 } -enum : uint { WM_NEXTDLGCTL = 0x0028 } -enum : uint { WM_SPOOLERSTATUS = 0x002A } -enum : uint { WM_DRAWITEM = 0x002B } -enum : uint { WM_MEASUREITEM = 0x002C } -enum : uint { WM_DELETEITEM = 0x002D } -enum : uint { WM_VKEYTOITEM = 0x002E } -enum : uint { WM_CHARTOITEM = 0x002F } -enum : uint { WM_SETFONT = 0x0030 } -enum : uint { WM_GETFONT = 0x0031 } -enum : uint { WM_SETHOTKEY = 0x0032 } -enum : uint { WM_GETHOTKEY = 0x0033 } -enum : uint { WM_QUERYDRAGICON = 0x0037 } -enum : uint { WM_COMPAREITEM = 0x0039 } -// #if(WINVER >= 0x0500) -// #ifndef _WIN32_WCE -enum : uint { WM_GETOBJECT = 0x003D } -// #endif -// #endif /* WINVER >= 0x0500 */ -enum : uint { WM_COMPACTING = 0x0041 } -enum : uint { WM_COMMNOTIFY = 0x0044 } -enum : uint { WM_WINDOWPOSCHANGING = 0x0046 } -enum : uint { WM_WINDOWPOSCHANGED = 0x0047 } - -enum : uint { WM_POWER = 0x0048 } - -enum : uint { PWR_OK = 1 } -enum { PWR_FAIL = -1 } -enum : uint { PWR_SUSPENDREQUEST = 1 } -enum : uint { PWR_SUSPENDRESUME = 2 } -enum : uint { PWR_CRITICALRESUME = 3 } - -enum : uint { WM_COPYDATA = 0x004A } -enum : uint { WM_CANCELJOURNAL = 0x004B } - -struct tagCOPYDATASTRUCT { - ULONG_PTR dwData; - DWORD cbData; - PVOID lpData; -} -alias tagCOPYDATASTRUCT COPYDATASTRUCT; -alias tagCOPYDATASTRUCT* PCOPYDATASTRUCT; - -// #if(WINVER >= 0x0400) -struct tagMDINEXTMENU { - HMENU hmenuIn; - HMENU hmenuNext; - HWND hwndNext; -} -alias tagMDINEXTMENU MDINEXTMENU; -alias tagMDINEXTMENU* PMDINEXTMENU; -alias tagMDINEXTMENU* LPMDINEXTMENU; - -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0400) -enum : uint { WM_NOTIFY = 0x004E } -enum : uint { WM_INPUTLANGCHANGEREQUEST = 0x0050 } -enum : uint { WM_INPUTLANGCHANGE = 0x0051 } -enum : uint { WM_TCARD = 0x0052 } -enum : uint { WM_HELP = 0x0053 } -enum : uint { WM_USERCHANGED = 0x0054 } -enum : uint { WM_NOTIFYFORMAT = 0x0055 } - -enum : uint { NFR_ANSI = 1 } -enum : uint { NFR_UNICODE = 2 } -enum : uint { NF_QUERY = 3 } -enum : uint { NF_REQUERY = 4 } - -enum : uint { WM_CONTEXTMENU = 0x007B } -enum : uint { WM_STYLECHANGING = 0x007C } -enum : uint { WM_STYLECHANGED = 0x007D } -enum : uint { WM_DISPLAYCHANGE = 0x007E } -enum : uint { WM_GETICON = 0x007F } -enum : uint { WM_SETICON = 0x0080 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { WM_NCCREATE = 0x0081 } -enum : uint { WM_NCDESTROY = 0x0082 } -enum : uint { WM_NCCALCSIZE = 0x0083 } -enum : uint { WM_NCHITTEST = 0x0084 } -enum : uint { WM_NCPAINT = 0x0085 } -enum : uint { WM_NCACTIVATE = 0x0086 } -enum : uint { WM_GETDLGCODE = 0x0087 } -// #ifndef _WIN32_WCE -enum : uint { WM_SYNCPAINT = 0x0088 } -// #endif -enum : uint { WM_NCMOUSEMOVE = 0x00A0 } -enum : uint { WM_NCLBUTTONDOWN = 0x00A1 } -enum : uint { WM_NCLBUTTONUP = 0x00A2 } -enum : uint { WM_NCLBUTTONDBLCLK = 0x00A3 } -enum : uint { WM_NCRBUTTONDOWN = 0x00A4 } -enum : uint { WM_NCRBUTTONUP = 0x00A5 } -enum : uint { WM_NCRBUTTONDBLCLK = 0x00A6 } -enum : uint { WM_NCMBUTTONDOWN = 0x00A7 } -enum : uint { WM_NCMBUTTONUP = 0x00A8 } -enum : uint { WM_NCMBUTTONDBLCLK = 0x00A9 } - -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { WM_NCXBUTTONDOWN = 0x00AB } -enum : uint { WM_NCXBUTTONUP = 0x00AC } -enum : uint { WM_NCXBUTTONDBLCLK = 0x00AD } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { WM_INPUT = 0x00FF } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { WM_KEYFIRST = 0x0100 } -enum : uint { WM_KEYDOWN = 0x0100 } -enum : uint { WM_KEYUP = 0x0101 } -enum : uint { WM_CHAR = 0x0102 } -enum : uint { WM_DEADCHAR = 0x0103 } -enum : uint { WM_SYSKEYDOWN = 0x0104 } -enum : uint { WM_SYSKEYUP = 0x0105 } -enum : uint { WM_SYSCHAR = 0x0106 } -enum : uint { WM_SYSDEADCHAR = 0x0107 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { WM_UNICHAR = 0x0109 } -enum : uint { WM_KEYLAST = 0x0109 } -enum : uint { UNICODE_NOCHAR = 0xFFFF } -// #else -// #... -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if(WINVER >= 0x0400) -enum : uint { WM_IME_STARTCOMPOSITION = 0x010D } -enum : uint { WM_IME_ENDCOMPOSITION = 0x010E } -enum : uint { WM_IME_COMPOSITION = 0x010F } -enum : uint { WM_IME_KEYLAST = 0x010F } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { WM_INITDIALOG = 0x0110 } -enum : uint { WM_COMMAND = 0x0111 } -enum : uint { WM_SYSCOMMAND = 0x0112 } -enum : uint { WM_TIMER = 0x0113 } -enum : uint { WM_HSCROLL = 0x0114 } -enum : uint { WM_VSCROLL = 0x0115 } -enum : uint { WM_INITMENU = 0x0116 } -enum : uint { WM_INITMENUPOPUP = 0x0117 } -enum : uint { WM_MENUSELECT = 0x011F } -enum : uint { WM_MENUCHAR = 0x0120 } -enum : uint { WM_ENTERIDLE = 0x0121 } -// #if(WINVER >= 0x0500) -// #ifndef _WIN32_WCE -enum : uint { WM_MENURBUTTONUP = 0x0122 } -enum : uint { WM_MENUDRAG = 0x0123 } -enum : uint { WM_MENUGETOBJECT = 0x0124 } -enum : uint { WM_UNINITMENUPOPUP = 0x0125 } -enum : uint { WM_MENUCOMMAND = 0x0126 } - -// #ifndef _WIN32_WCE -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { WM_CHANGEUISTATE = 0x0127 } -enum : uint { WM_UPDATEUISTATE = 0x0128 } -enum : uint { WM_QUERYUISTATE = 0x0129 } - -enum : uint { UIS_SET = 1 } -enum : uint { UIS_CLEAR = 2 } -enum : uint { UIS_INITIALIZE = 3 } - -enum : uint { UISF_HIDEFOCUS = 0x1 } -enum : uint { UISF_HIDEACCEL = 0x2 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { UISF_ACTIVE = 0x4 } -// #endif /* _WIN32_WINNT >= 0x0501 */ -// #endif /* _WIN32_WINNT >= 0x0500 */ -// #endif - -// #endif -// #endif /* WINVER >= 0x0500 */ - -enum : uint { WM_CTLCOLORMSGBOX = 0x0132 } -enum : uint { WM_CTLCOLOREDIT = 0x0133 } -enum : uint { WM_CTLCOLORLISTBOX = 0x0134 } -enum : uint { WM_CTLCOLORBTN = 0x0135 } -enum : uint { WM_CTLCOLORDLG = 0x0136 } -enum : uint { WM_CTLCOLORSCROLLBAR = 0x0137 } -enum : uint { WM_CTLCOLORSTATIC = 0x0138 } - -enum : uint { WM_MOUSEFIRST = 0x0200 } -enum : uint { WM_MOUSEMOVE = 0x0200 } -enum : uint { WM_LBUTTONDOWN = 0x0201 } -enum : uint { WM_LBUTTONUP = 0x0202 } -enum : uint { WM_LBUTTONDBLCLK = 0x0203 } -enum : uint { WM_RBUTTONDOWN = 0x0204 } -enum : uint { WM_RBUTTONUP = 0x0205 } -enum : uint { WM_RBUTTONDBLCLK = 0x0206 } -enum : uint { WM_MBUTTONDOWN = 0x0207 } -enum : uint { WM_MBUTTONUP = 0x0208 } -enum : uint { WM_MBUTTONDBLCLK = 0x0209 } -// #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) -enum : uint { WM_MOUSEWHEEL = 0x020A } -// #endif -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { WM_XBUTTONDOWN = 0x020B } -enum : uint { WM_XBUTTONUP = 0x020C } -enum : uint { WM_XBUTTONDBLCLK = 0x020D } -// #endif -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { WM_MOUSELAST = 0x020D } -// #elif (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) -// #... -// #else -// #... -// #endif /* (_WIN32_WINNT >= 0x0500) */ - -// #if(_WIN32_WINNT >= 0x0400) - -enum : uint { WHEEL_DELTA = 120 } -// #define GET_WHEEL_DELTA_WPARAM(wParam) ((short)HIWORD(wParam)) - -enum : uint { WHEEL_PAGESCROLL = UINT_MAX } -// #endif /* _WIN32_WINNT >= 0x0400 */ - -// #if(_WIN32_WINNT >= 0x0500) -// #define GET_KEYSTATE_WPARAM(wParam) (LOWORD(wParam)) -// #define GET_NCHITTEST_WPARAM(wParam) ((short)LOWORD(wParam)) -// #define GET_XBUTTON_WPARAM(wParam) (HIWORD(wParam)) - -enum : uint { XBUTTON1 = 0x0001 } -enum : uint { XBUTTON2 = 0x0002 } - -// #endif /* _WIN32_WINNT >= 0x0500 */ - -enum : uint { WM_PARENTNOTIFY = 0x0210 } -enum : uint { WM_ENTERMENULOOP = 0x0211 } -enum : uint { WM_EXITMENULOOP = 0x0212 } - -// #if(WINVER >= 0x0400) -enum : uint { WM_NEXTMENU = 0x0213 } -enum : uint { WM_SIZING = 0x0214 } -enum : uint { WM_CAPTURECHANGED = 0x0215 } -enum : uint { WM_MOVING = 0x0216 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0400) - -enum : uint { WM_POWERBROADCAST = 0x0218 } - -// #ifndef _WIN32_WCE -enum : uint { PBT_APMQUERYSUSPEND = 0x0000 } -enum : uint { PBT_APMQUERYSTANDBY = 0x0001 } - -enum : uint { PBT_APMQUERYSUSPENDFAILED = 0x0002 } -enum : uint { PBT_APMQUERYSTANDBYFAILED = 0x0003 } - -enum : uint { PBT_APMSUSPEND = 0x0004 } -enum : uint { PBT_APMSTANDBY = 0x0005 } - -enum : uint { PBT_APMRESUMECRITICAL = 0x0006 } -enum : uint { PBT_APMRESUMESUSPEND = 0x0007 } -enum : uint { PBT_APMRESUMESTANDBY = 0x0008 } - -enum : uint { PBTF_APMRESUMEFROMFAILURE = 0x00000001 } - -enum : uint { PBT_APMBATTERYLOW = 0x0009 } -enum : uint { PBT_APMPOWERSTATUSCHANGE = 0x000A } - -enum : uint { PBT_APMOEMEVENT = 0x000B } -enum : uint { PBT_APMRESUMEAUTOMATIC = 0x0012 } -// #endif - -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0400) -enum : uint { WM_DEVICECHANGE = 0x0219 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { WM_MDICREATE = 0x0220 } -enum : uint { WM_MDIDESTROY = 0x0221 } -enum : uint { WM_MDIACTIVATE = 0x0222 } -enum : uint { WM_MDIRESTORE = 0x0223 } -enum : uint { WM_MDINEXT = 0x0224 } -enum : uint { WM_MDIMAXIMIZE = 0x0225 } -enum : uint { WM_MDITILE = 0x0226 } -enum : uint { WM_MDICASCADE = 0x0227 } -enum : uint { WM_MDIICONARRANGE = 0x0228 } -enum : uint { WM_MDIGETACTIVE = 0x0229 } - -enum : uint { WM_MDISETMENU = 0x0230 } -enum : uint { WM_ENTERSIZEMOVE = 0x0231 } -enum : uint { WM_EXITSIZEMOVE = 0x0232 } -enum : uint { WM_DROPFILES = 0x0233 } -enum : uint { WM_MDIREFRESHMENU = 0x0234 } - -// #if(WINVER >= 0x0400) -enum : uint { WM_IME_SETCONTEXT = 0x0281 } -enum : uint { WM_IME_NOTIFY = 0x0282 } -enum : uint { WM_IME_CONTROL = 0x0283 } -enum : uint { WM_IME_COMPOSITIONFULL = 0x0284 } -enum : uint { WM_IME_SELECT = 0x0285 } -enum : uint { WM_IME_CHAR = 0x0286 } -// #endif /* WINVER >= 0x0400 */ -// #if(WINVER >= 0x0500) -enum : uint { WM_IME_REQUEST = 0x0288 } -// #endif /* WINVER >= 0x0500 */ -// #if(WINVER >= 0x0400) -enum : uint { WM_IME_KEYDOWN = 0x0290 } -enum : uint { WM_IME_KEYUP = 0x0291 } -// #endif /* WINVER >= 0x0400 */ - -// #if((_WIN32_WINNT >= 0x0400) || (WINVER >= 0x0500)) -enum : uint { WM_MOUSEHOVER = 0x02A1 } -enum : uint { WM_MOUSELEAVE = 0x02A3 } -// #endif -// #if(WINVER >= 0x0500) -enum : uint { WM_NCMOUSEHOVER = 0x02A0 } -enum : uint { WM_NCMOUSELEAVE = 0x02A2 } -// #endif /* WINVER >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { WM_WTSSESSION_CHANGE = 0x02B1 } - -enum : uint { WM_TABLET_FIRST = 0x02c0 } -enum : uint { WM_TABLET_LAST = 0x02df } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { WM_CUT = 0x0300 } -enum : uint { WM_COPY = 0x0301 } -enum : uint { WM_PASTE = 0x0302 } -enum : uint { WM_CLEAR = 0x0303 } -enum : uint { WM_UNDO = 0x0304 } -enum : uint { WM_RENDERFORMAT = 0x0305 } -enum : uint { WM_RENDERALLFORMATS = 0x0306 } -enum : uint { WM_DESTROYCLIPBOARD = 0x0307 } -enum : uint { WM_DRAWCLIPBOARD = 0x0308 } -enum : uint { WM_PAINTCLIPBOARD = 0x0309 } -enum : uint { WM_VSCROLLCLIPBOARD = 0x030A } -enum : uint { WM_SIZECLIPBOARD = 0x030B } -enum : uint { WM_ASKCBFORMATNAME = 0x030C } -enum : uint { WM_CHANGECBCHAIN = 0x030D } -enum : uint { WM_HSCROLLCLIPBOARD = 0x030E } -enum : uint { WM_QUERYNEWPALETTE = 0x030F } -enum : uint { WM_PALETTEISCHANGING = 0x0310 } -enum : uint { WM_PALETTECHANGED = 0x0311 } -enum : uint { WM_HOTKEY = 0x0312 } - -// #if(WINVER >= 0x0400) -enum : uint { WM_PRINT = 0x0317 } -enum : uint { WM_PRINTCLIENT = 0x0318 } -// #endif /* WINVER >= 0x0400 */ - -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { WM_APPCOMMAND = 0x0319 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { WM_THEMECHANGED = 0x031A } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if(WINVER >= 0x0400) - -enum : uint { WM_HANDHELDFIRST = 0x0358 } -enum : uint { WM_HANDHELDLAST = 0x035F } - -enum : uint { WM_AFXFIRST = 0x0360 } -enum : uint { WM_AFXLAST = 0x037F } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { WM_PENWINFIRST = 0x0380 } -enum : uint { WM_PENWINLAST = 0x038F } - -// #if(WINVER >= 0x0400) -enum : uint { WM_APP = 0x8000 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { WM_USER = 0x0400 } - -// #if(WINVER >= 0x0400) - -enum : uint { WMSZ_LEFT = 1 } -enum : uint { WMSZ_RIGHT = 2 } -enum : uint { WMSZ_TOP = 3 } -enum : uint { WMSZ_TOPLEFT = 4 } -enum : uint { WMSZ_TOPRIGHT = 5 } -enum : uint { WMSZ_BOTTOM = 6 } -enum : uint { WMSZ_BOTTOMLEFT = 7 } -enum : uint { WMSZ_BOTTOMRIGHT = 8 } -// #endif /* WINVER >= 0x0400 */ - -// #ifndef NONCMESSAGES - -enum { HTERROR = -2 } -enum { HTTRANSPARENT = -1 } -enum : uint { HTNOWHERE = 0 } -enum : uint { HTCLIENT = 1 } -enum : uint { HTCAPTION = 2 } -enum : uint { HTSYSMENU = 3 } -enum : uint { HTGROWBOX = 4 } -alias HTGROWBOX HTSIZE; -enum : uint { HTMENU = 5 } -enum : uint { HTHSCROLL = 6 } -enum : uint { HTVSCROLL = 7 } -enum : uint { HTMINBUTTON = 8 } -enum : uint { HTMAXBUTTON = 9 } -enum : uint { HTLEFT = 10 } -enum : uint { HTRIGHT = 11 } -enum : uint { HTTOP = 12 } -enum : uint { HTTOPLEFT = 13 } -enum : uint { HTTOPRIGHT = 14 } -enum : uint { HTBOTTOM = 15 } -enum : uint { HTBOTTOMLEFT = 16 } -enum : uint { HTBOTTOMRIGHT = 17 } -enum : uint { HTBORDER = 18 } -alias HTMINBUTTON HTREDUCE; -alias HTMAXBUTTON HTZOOM; -alias HTLEFT HTSIZEFIRST; -alias HTBOTTOMRIGHT HTSIZELAST; -// #if(WINVER >= 0x0400) -enum : uint { HTOBJECT = 19 } -enum : uint { HTCLOSE = 20 } -enum : uint { HTHELP = 21 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { SMTO_NORMAL = 0x0000 } -enum : uint { SMTO_BLOCK = 0x0001 } -enum : uint { SMTO_ABORTIFHUNG = 0x0002 } -// #if(WINVER >= 0x0500) -enum : uint { SMTO_NOTIMEOUTIFNOTHUNG = 0x0008 } -// #endif /* WINVER >= 0x0500 */ -// #endif /* !NONCMESSAGES */ - -enum : uint { MA_ACTIVATE = 1 } -enum : uint { MA_ACTIVATEANDEAT = 2 } -enum : uint { MA_NOACTIVATE = 3 } -enum : uint { MA_NOACTIVATEANDEAT = 4 } - -enum : uint { ICON_SMALL = 0 } -enum : uint { ICON_BIG = 1 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { ICON_SMALL2 = 2 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export UINT RegisterWindowMessageA( - LPCSTR lpString); -extern(Windows) export UINT RegisterWindowMessageW( - LPCWSTR lpString); -// #ifdef UNICODE -// #... -// #else -alias RegisterWindowMessageA RegisterWindowMessage; -// #endif // !UNICODE - -enum : uint { SIZE_RESTORED = 0 } -enum : uint { SIZE_MINIMIZED = 1 } -enum : uint { SIZE_MAXIMIZED = 2 } -enum : uint { SIZE_MAXSHOW = 3 } -enum : uint { SIZE_MAXHIDE = 4 } - -alias SIZE_RESTORED SIZENORMAL; -alias SIZE_MINIMIZED SIZEICONIC; -alias SIZE_MAXIMIZED SIZEFULLSCREEN; -alias SIZE_MAXSHOW SIZEZOOMSHOW; -alias SIZE_MAXHIDE SIZEZOOMHIDE; - -struct tagWINDOWPOS { - HWND hwnd; - HWND hwndInsertAfter; - int x; - int y; - int cx; - int cy; - UINT flags; -} -alias tagWINDOWPOS WINDOWPOS; -alias tagWINDOWPOS* LPWINDOWPOS; -alias tagWINDOWPOS* PWINDOWPOS; - -struct tagNCCALCSIZE_PARAMS { - RECT rgrc[3]; - PWINDOWPOS lppos; -} -alias tagNCCALCSIZE_PARAMS NCCALCSIZE_PARAMS; -alias tagNCCALCSIZE_PARAMS* LPNCCALCSIZE_PARAMS; - -enum : uint { WVR_ALIGNTOP = 0x0010 } -enum : uint { WVR_ALIGNLEFT = 0x0020 } -enum : uint { WVR_ALIGNBOTTOM = 0x0040 } -enum : uint { WVR_ALIGNRIGHT = 0x0080 } -enum : uint { WVR_HREDRAW = 0x0100 } -enum : uint { WVR_VREDRAW = 0x0200 } -enum : uint { WVR_REDRAW = WVR_HREDRAW | WVR_VREDRAW } -enum : uint { WVR_VALIDRECTS = 0x0400 } - -// #ifndef NOKEYSTATES - -enum : uint { MK_LBUTTON = 0x0001 } -enum : uint { MK_RBUTTON = 0x0002 } -enum : uint { MK_SHIFT = 0x0004 } -enum : uint { MK_CONTROL = 0x0008 } -enum : uint { MK_MBUTTON = 0x0010 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { MK_XBUTTON1 = 0x0020 } -enum : uint { MK_XBUTTON2 = 0x0040 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #endif /* !NOKEYSTATES */ - -// #if(_WIN32_WINNT >= 0x0400) -// #ifndef NOTRACKMOUSEEVENT - -enum : uint { TME_HOVER = 0x00000001 } -enum : uint { TME_LEAVE = 0x00000002 } -// #if(WINVER >= 0x0500) -enum : uint { TME_NONCLIENT = 0x00000010 } -// #endif /* WINVER >= 0x0500 */ -enum : uint { TME_QUERY = 0x40000000 } -enum : uint { TME_CANCEL = 0x80000000 } - -enum : uint { HOVER_DEFAULT = 0xFFFFFFFF } -// #endif /* _WIN32_WINNT >= 0x0400 */ - -// #if(_WIN32_WINNT >= 0x0400) -struct tagTRACKMOUSEEVENT { - DWORD cbSize; - DWORD dwFlags; - HWND hwndTrack; - DWORD dwHoverTime; -} -alias tagTRACKMOUSEEVENT TRACKMOUSEEVENT; -alias tagTRACKMOUSEEVENT* LPTRACKMOUSEEVENT; - -extern(Windows) export BOOL TrackMouseEvent( - LPTRACKMOUSEEVENT lpEventTrack); -// #endif /* _WIN32_WINNT >= 0x0400 */ - -// #if(_WIN32_WINNT >= 0x0400) - -// #endif /* !NOTRACKMOUSEEVENT */ -// #endif /* _WIN32_WINNT >= 0x0400 */ - -// #endif /* !NOWINMESSAGES */ - -// #ifndef NOWINSTYLES - -enum : uint { WS_OVERLAPPED = 0x00000000 } -enum : uint { WS_POPUP = 0x80000000 } -enum : uint { WS_CHILD = 0x40000000 } -enum : uint { WS_MINIMIZE = 0x20000000 } -enum : uint { WS_VISIBLE = 0x10000000 } -enum : uint { WS_DISABLED = 0x08000000 } -enum : uint { WS_CLIPSIBLINGS = 0x04000000 } -enum : uint { WS_CLIPCHILDREN = 0x02000000 } -enum : uint { WS_MAXIMIZE = 0x01000000 } -enum : uint { WS_CAPTION = 0x00C00000 } -enum : uint { WS_BORDER = 0x00800000 } -enum : uint { WS_DLGFRAME = 0x00400000 } -enum : uint { WS_VSCROLL = 0x00200000 } -enum : uint { WS_HSCROLL = 0x00100000 } -enum : uint { WS_SYSMENU = 0x00080000 } -enum : uint { WS_THICKFRAME = 0x00040000 } -enum : uint { WS_GROUP = 0x00020000 } -enum : uint { WS_TABSTOP = 0x00010000 } - -enum : uint { WS_MINIMIZEBOX = 0x00020000 } -enum : uint { WS_MAXIMIZEBOX = 0x00010000 } - -alias WS_OVERLAPPED WS_TILED; -alias WS_MINIMIZE WS_ICONIC; -alias WS_THICKFRAME WS_SIZEBOX; -// #define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW - -enum : uint { WS_OVERLAPPEDWINDOW = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX } - -enum : uint { WS_POPUPWINDOW = WS_POPUP | WS_BORDER | WS_SYSMENU } - -enum : uint { WS_CHILDWINDOW = WS_CHILD } - -enum : uint { WS_EX_DLGMODALFRAME = 0x00000001 } -enum : uint { WS_EX_NOPARENTNOTIFY = 0x00000004 } -enum : uint { WS_EX_TOPMOST = 0x00000008 } -enum : uint { WS_EX_ACCEPTFILES = 0x00000010 } -enum : uint { WS_EX_TRANSPARENT = 0x00000020 } -// #if(WINVER >= 0x0400) -enum : uint { WS_EX_MDICHILD = 0x00000040 } -enum : uint { WS_EX_TOOLWINDOW = 0x00000080 } -enum : uint { WS_EX_WINDOWEDGE = 0x00000100 } -enum : uint { WS_EX_CLIENTEDGE = 0x00000200 } -enum : uint { WS_EX_CONTEXTHELP = 0x00000400 } - -// #endif /* WINVER >= 0x0400 */ -// #if(WINVER >= 0x0400) - -enum : uint { WS_EX_RIGHT = 0x00001000 } -enum : uint { WS_EX_LEFT = 0x00000000 } -enum : uint { WS_EX_RTLREADING = 0x00002000 } -enum : uint { WS_EX_LTRREADING = 0x00000000 } -enum : uint { WS_EX_LEFTSCROLLBAR = 0x00004000 } -enum : uint { WS_EX_RIGHTSCROLLBAR = 0x00000000 } - -enum : uint { WS_EX_CONTROLPARENT = 0x00010000 } -enum : uint { WS_EX_STATICEDGE = 0x00020000 } -enum : uint { WS_EX_APPWINDOW = 0x00040000 } - -enum : uint { WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE } -enum : uint { WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST } - -// #endif /* WINVER >= 0x0400 */ - -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { WS_EX_LAYERED = 0x00080000 } - -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(WINVER >= 0x0500) -enum : uint { WS_EX_NOINHERITLAYOUT = 0x00100000 } -enum : uint { WS_EX_LAYOUTRTL = 0x00400000 } -// #endif /* WINVER >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { WS_EX_COMPOSITED = 0x02000000 } -// #endif /* _WIN32_WINNT >= 0x0501 */ -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { WS_EX_NOACTIVATE = 0x08000000 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -enum : uint { CS_VREDRAW = 0x0001 } -enum : uint { CS_HREDRAW = 0x0002 } -enum : uint { CS_DBLCLKS = 0x0008 } -enum : uint { CS_OWNDC = 0x0020 } -enum : uint { CS_CLASSDC = 0x0040 } -enum : uint { CS_PARENTDC = 0x0080 } -enum : uint { CS_NOCLOSE = 0x0200 } -enum : uint { CS_SAVEBITS = 0x0800 } -enum : uint { CS_BYTEALIGNCLIENT = 0x1000 } -enum : uint { CS_BYTEALIGNWINDOW = 0x2000 } -enum : uint { CS_GLOBALCLASS = 0x4000 } - -enum : uint { CS_IME = 0x00010000 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { CS_DROPSHADOW = 0x00020000 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #endif /* !NOWINSTYLES */ -// #if(WINVER >= 0x0400) - -enum : uint { PRF_CHECKVISIBLE = 0x00000001 } -enum : uint { PRF_NONCLIENT = 0x00000002 } -enum : uint { PRF_CLIENT = 0x00000004 } -enum : uint { PRF_ERASEBKGND = 0x00000008 } -enum : uint { PRF_CHILDREN = 0x00000010 } -enum : uint { PRF_OWNED = 0x00000020 } - -enum : uint { BDR_RAISEDOUTER = 0x0001 } -enum : uint { BDR_SUNKENOUTER = 0x0002 } -enum : uint { BDR_RAISEDINNER = 0x0004 } -enum : uint { BDR_SUNKENINNER = 0x0008 } - -enum : uint { BDR_OUTER = BDR_RAISEDOUTER | BDR_SUNKENOUTER } -enum : uint { BDR_INNER = BDR_RAISEDINNER | BDR_SUNKENINNER } -enum : uint { BDR_RAISED = BDR_RAISEDOUTER | BDR_RAISEDINNER } -enum : uint { BDR_SUNKEN = BDR_SUNKENOUTER | BDR_SUNKENINNER } - -enum : uint { EDGE_RAISED = BDR_RAISEDOUTER | BDR_RAISEDINNER } -enum : uint { EDGE_SUNKEN = BDR_SUNKENOUTER | BDR_SUNKENINNER } -enum : uint { EDGE_ETCHED = BDR_SUNKENOUTER | BDR_RAISEDINNER } -enum : uint { EDGE_BUMP = BDR_RAISEDOUTER | BDR_SUNKENINNER } - -enum : uint { BF_LEFT = 0x0001 } -enum : uint { BF_TOP = 0x0002 } -enum : uint { BF_RIGHT = 0x0004 } -enum : uint { BF_BOTTOM = 0x0008 } - -enum : uint { BF_TOPLEFT = BF_TOP | BF_LEFT } -enum : uint { BF_TOPRIGHT = BF_TOP | BF_RIGHT } -enum : uint { BF_BOTTOMLEFT = BF_BOTTOM | BF_LEFT } -enum : uint { BF_BOTTOMRIGHT = BF_BOTTOM | BF_RIGHT } -enum : uint { BF_RECT = BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM } - -enum : uint { BF_DIAGONAL = 0x0010 } - -enum : uint { BF_DIAGONAL_ENDTOPRIGHT = BF_DIAGONAL | BF_TOP | BF_RIGHT } -enum : uint { BF_DIAGONAL_ENDTOPLEFT = BF_DIAGONAL | BF_TOP | BF_LEFT } -enum : uint { BF_DIAGONAL_ENDBOTTOMLEFT = BF_DIAGONAL | BF_BOTTOM | BF_LEFT } -enum : uint { BF_DIAGONAL_ENDBOTTOMRIGHT = BF_DIAGONAL | BF_BOTTOM | BF_RIGHT } - -enum : uint { BF_MIDDLE = 0x0800 } -enum : uint { BF_SOFT = 0x1000 } -enum : uint { BF_ADJUST = 0x2000 } -enum : uint { BF_FLAT = 0x4000 } -enum : uint { BF_MONO = 0x8000 } - -extern(Windows) export BOOL DrawEdge( - HDC hdc, - LPRECT qrc, - UINT edge, - UINT grfFlags); - -enum : uint { DFC_CAPTION = 1 } -enum : uint { DFC_MENU = 2 } -enum : uint { DFC_SCROLL = 3 } -enum : uint { DFC_BUTTON = 4 } -// #if(WINVER >= 0x0500) -enum : uint { DFC_POPUPMENU = 5 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { DFCS_CAPTIONCLOSE = 0x0000 } -enum : uint { DFCS_CAPTIONMIN = 0x0001 } -enum : uint { DFCS_CAPTIONMAX = 0x0002 } -enum : uint { DFCS_CAPTIONRESTORE = 0x0003 } -enum : uint { DFCS_CAPTIONHELP = 0x0004 } - -enum : uint { DFCS_MENUARROW = 0x0000 } -enum : uint { DFCS_MENUCHECK = 0x0001 } -enum : uint { DFCS_MENUBULLET = 0x0002 } -enum : uint { DFCS_MENUARROWRIGHT = 0x0004 } -enum : uint { DFCS_SCROLLUP = 0x0000 } -enum : uint { DFCS_SCROLLDOWN = 0x0001 } -enum : uint { DFCS_SCROLLLEFT = 0x0002 } -enum : uint { DFCS_SCROLLRIGHT = 0x0003 } -enum : uint { DFCS_SCROLLCOMBOBOX = 0x0005 } -enum : uint { DFCS_SCROLLSIZEGRIP = 0x0008 } -enum : uint { DFCS_SCROLLSIZEGRIPRIGHT = 0x0010 } - -enum : uint { DFCS_BUTTONCHECK = 0x0000 } -enum : uint { DFCS_BUTTONRADIOIMAGE = 0x0001 } -enum : uint { DFCS_BUTTONRADIOMASK = 0x0002 } -enum : uint { DFCS_BUTTONRADIO = 0x0004 } -enum : uint { DFCS_BUTTON3STATE = 0x0008 } -enum : uint { DFCS_BUTTONPUSH = 0x0010 } - -enum : uint { DFCS_INACTIVE = 0x0100 } -enum : uint { DFCS_PUSHED = 0x0200 } -enum : uint { DFCS_CHECKED = 0x0400 } - -// #if(WINVER >= 0x0500) -enum : uint { DFCS_TRANSPARENT = 0x0800 } -enum : uint { DFCS_HOT = 0x1000 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { DFCS_ADJUSTRECT = 0x2000 } -enum : uint { DFCS_FLAT = 0x4000 } -enum : uint { DFCS_MONO = 0x8000 } - -extern(Windows) export BOOL DrawFrameControl( - HDC, - LPRECT, - UINT, - UINT); - -enum : uint { DC_ACTIVE = 0x0001 } -enum : uint { DC_SMALLCAP = 0x0002 } -enum : uint { DC_ICON = 0x0004 } -enum : uint { DC_TEXT = 0x0008 } -enum : uint { DC_INBUTTON = 0x0010 } -// #if(WINVER >= 0x0500) -enum : uint { DC_GRADIENT = 0x0020 } -// #endif /* WINVER >= 0x0500 */ -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { DC_BUTTONS = 0x1000 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export BOOL DrawCaption(HWND, HDC, RECT *, UINT); - -enum : uint { IDANI_OPEN = 1 } -enum : uint { IDANI_CAPTION = 3 } - -extern(Windows) export BOOL DrawAnimatedRects( - HWND hwnd, - int idAni, - RECT * lprcFrom, - RECT * lprcTo); - -// #endif /* WINVER >= 0x0400 */ - -// #ifndef NOCLIPBOARD - -enum : uint { CF_TEXT = 1 } -enum : uint { CF_BITMAP = 2 } -enum : uint { CF_METAFILEPICT = 3 } -enum : uint { CF_SYLK = 4 } -enum : uint { CF_DIF = 5 } -enum : uint { CF_TIFF = 6 } -enum : uint { CF_OEMTEXT = 7 } -enum : uint { CF_DIB = 8 } -enum : uint { CF_PALETTE = 9 } -enum : uint { CF_PENDATA = 10 } -enum : uint { CF_RIFF = 11 } -enum : uint { CF_WAVE = 12 } -enum : uint { CF_UNICODETEXT = 13 } -enum : uint { CF_ENHMETAFILE = 14 } -// #if(WINVER >= 0x0400) -enum : uint { CF_HDROP = 15 } -enum : uint { CF_LOCALE = 16 } -// #endif /* WINVER >= 0x0400 */ -// #if(WINVER >= 0x0500) -enum : uint { CF_DIBV5 = 17 } -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0500) -enum : uint { CF_MAX = 18 } -// #elif(WINVER >= 0x0400) -// #... -// #else -// #... -// #endif - -enum : uint { CF_OWNERDISPLAY = 0x0080 } -enum : uint { CF_DSPTEXT = 0x0081 } -enum : uint { CF_DSPBITMAP = 0x0082 } -enum : uint { CF_DSPMETAFILEPICT = 0x0083 } -enum : uint { CF_DSPENHMETAFILE = 0x008E } - -enum : uint { CF_PRIVATEFIRST = 0x0200 } -enum : uint { CF_PRIVATELAST = 0x02FF } - -enum : uint { CF_GDIOBJFIRST = 0x0300 } -enum : uint { CF_GDIOBJLAST = 0x03FF } - -// #endif /* !NOCLIPBOARD */ - -alias TRUE FVIRTKEY; -enum : uint { FNOINVERT = 0x02 } -enum : uint { FSHIFT = 0x04 } -enum : uint { FCONTROL = 0x08 } -enum : uint { FALT = 0x10 } - -struct tagACCEL { -// #ifndef _MAC - BYTE fVirt; - WORD key; - WORD cmd; -// #else -// ... -// #endif -} -alias tagACCEL ACCEL; -alias tagACCEL* LPACCEL; - -struct tagPAINTSTRUCT { - HDC hdc; - BOOL fErase; - RECT rcPaint; - BOOL fRestore; - BOOL fIncUpdate; - BYTE rgbReserved[32]; -} -alias tagPAINTSTRUCT PAINTSTRUCT; -alias tagPAINTSTRUCT* PPAINTSTRUCT; -alias tagPAINTSTRUCT* NPPAINTSTRUCT; -alias tagPAINTSTRUCT* LPPAINTSTRUCT; - -struct tagCREATESTRUCTA { - LPVOID lpCreateParams; - HINSTANCE hInstance; - HMENU hMenu; - HWND hwndParent; - int cy; - int cx; - int y; - int x; - LONG style; - LPCSTR lpszName; - LPCSTR lpszClass; - DWORD dwExStyle; -} -alias tagCREATESTRUCTA CREATESTRUCTA; -alias tagCREATESTRUCTA* LPCREATESTRUCTA; - -struct tagCREATESTRUCTW { - LPVOID lpCreateParams; - HINSTANCE hInstance; - HMENU hMenu; - HWND hwndParent; - int cy; - int cx; - int y; - int x; - LONG style; - LPCWSTR lpszName; - LPCWSTR lpszClass; - DWORD dwExStyle; -} -alias tagCREATESTRUCTW CREATESTRUCTW; -alias tagCREATESTRUCTW* LPCREATESTRUCTW; - -// #ifdef UNICODE -// ... -// #else -alias CREATESTRUCTA CREATESTRUCT; -alias LPCREATESTRUCTA LPCREATESTRUCT; -// #endif // UNICODE - -struct tagWINDOWPLACEMENT { - UINT length; - UINT flags; - UINT showCmd; - POINT ptMinPosition; - POINT ptMaxPosition; - RECT rcNormalPosition; -// #ifdef _MAC -// ... -// #endif -} -alias tagWINDOWPLACEMENT WINDOWPLACEMENT; - -alias WINDOWPLACEMENT* PWINDOWPLACEMENT; -alias WINDOWPLACEMENT* LPWINDOWPLACEMENT; - -enum : uint { WPF_SETMINPOSITION = 0x0001 } -enum : uint { WPF_RESTORETOMAXIMIZED = 0x0002 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { WPF_ASYNCWINDOWPLACEMENT = 0x0004 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(WINVER >= 0x0400) -struct tagNMHDR { - HWND hwndFrom; - UINT_PTR idFrom; - UINT code; -} -alias tagNMHDR NMHDR; - -alias NMHDR* LPNMHDR; - -struct tagSTYLESTRUCT { - DWORD styleOld; - DWORD styleNew; -} -alias tagSTYLESTRUCT STYLESTRUCT; -alias tagSTYLESTRUCT* LPSTYLESTRUCT; - -// #endif /* WINVER >= 0x0400 */ - -enum : uint { ODT_MENU = 1 } -enum : uint { ODT_LISTBOX = 2 } -enum : uint { ODT_COMBOBOX = 3 } -enum : uint { ODT_BUTTON = 4 } -// #if(WINVER >= 0x0400) -enum : uint { ODT_STATIC = 5 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { ODA_DRAWENTIRE = 0x0001 } -enum : uint { ODA_SELECT = 0x0002 } -enum : uint { ODA_FOCUS = 0x0004 } - -enum : uint { ODS_SELECTED = 0x0001 } -enum : uint { ODS_GRAYED = 0x0002 } -enum : uint { ODS_DISABLED = 0x0004 } -enum : uint { ODS_CHECKED = 0x0008 } -enum : uint { ODS_FOCUS = 0x0010 } -// #if(WINVER >= 0x0400) -enum : uint { ODS_DEFAULT = 0x0020 } -enum : uint { ODS_COMBOBOXEDIT = 0x1000 } -// #endif /* WINVER >= 0x0400 */ -// #if(WINVER >= 0x0500) -enum : uint { ODS_HOTLIGHT = 0x0040 } -enum : uint { ODS_INACTIVE = 0x0080 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { ODS_NOACCEL = 0x0100 } -enum : uint { ODS_NOFOCUSRECT = 0x0200 } -// #endif /* _WIN32_WINNT >= 0x0500 */ -// #endif /* WINVER >= 0x0500 */ - -struct tagMEASUREITEMSTRUCT { - UINT CtlType; - UINT CtlID; - UINT itemID; - UINT itemWidth; - UINT itemHeight; - ULONG_PTR itemData; -} -alias tagMEASUREITEMSTRUCT MEASUREITEMSTRUCT; -alias tagMEASUREITEMSTRUCT* PMEASUREITEMSTRUCT; -alias tagMEASUREITEMSTRUCT* LPMEASUREITEMSTRUCT; - -struct tagDRAWITEMSTRUCT { - UINT CtlType; - UINT CtlID; - UINT itemID; - UINT itemAction; - UINT itemState; - HWND hwndItem; - HDC hDC; - RECT rcItem; - ULONG_PTR itemData; -} -alias tagDRAWITEMSTRUCT DRAWITEMSTRUCT; -alias tagDRAWITEMSTRUCT* PDRAWITEMSTRUCT; -alias tagDRAWITEMSTRUCT* LPDRAWITEMSTRUCT; - -struct tagDELETEITEMSTRUCT { - UINT CtlType; - UINT CtlID; - UINT itemID; - HWND hwndItem; - ULONG_PTR itemData; -} -alias tagDELETEITEMSTRUCT DELETEITEMSTRUCT; -alias tagDELETEITEMSTRUCT* PDELETEITEMSTRUCT; -alias tagDELETEITEMSTRUCT* LPDELETEITEMSTRUCT; - -struct tagCOMPAREITEMSTRUCT { - UINT CtlType; - UINT CtlID; - HWND hwndItem; - UINT itemID1; - ULONG_PTR itemData1; - UINT itemID2; - ULONG_PTR itemData2; - DWORD dwLocaleId; -} -alias tagCOMPAREITEMSTRUCT COMPAREITEMSTRUCT; -alias tagCOMPAREITEMSTRUCT* PCOMPAREITEMSTRUCT; -alias tagCOMPAREITEMSTRUCT* LPCOMPAREITEMSTRUCT; - -// #ifndef NOMSG - -extern(Windows) export BOOL GetMessageA( - LPMSG lpMsg, - HWND hWnd, - UINT wMsgFilterMin, - UINT wMsgFilterMax); -extern(Windows) export BOOL GetMessageW( - LPMSG lpMsg, - HWND hWnd, - UINT wMsgFilterMin, - UINT wMsgFilterMax); -// #ifdef UNICODE -// #... -// #else -alias GetMessageA GetMessage; -// #endif // !UNICODE - -extern(Windows) export BOOL TranslateMessage( - MSG *lpMsg); - -extern(Windows) export LRESULT DispatchMessageA( - MSG *lpMsg); -extern(Windows) export LRESULT DispatchMessageW( - MSG *lpMsg); -// #ifdef UNICODE -// #... -// #else -alias DispatchMessageA DispatchMessage; -// #endif // !UNICODE - -extern(Windows) export BOOL SetMessageQueue( - int cMessagesMax); - -extern(Windows) export BOOL PeekMessageA( - LPMSG lpMsg, - HWND hWnd, - UINT wMsgFilterMin, - UINT wMsgFilterMax, - UINT wRemoveMsg); -extern(Windows) export BOOL PeekMessageW( - LPMSG lpMsg, - HWND hWnd, - UINT wMsgFilterMin, - UINT wMsgFilterMax, - UINT wRemoveMsg); -// #ifdef UNICODE -// #... -// #else -alias PeekMessageA PeekMessage; -// #endif // !UNICODE - -enum : uint { PM_NOREMOVE = 0x0000 } -enum : uint { PM_REMOVE = 0x0001 } -enum : uint { PM_NOYIELD = 0x0002 } -// #if(WINVER >= 0x0500) -enum : uint { PM_QS_INPUT = QS_INPUT << 16 } -enum : uint { PM_QS_POSTMESSAGE = (QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16 } -enum : uint { PM_QS_PAINT = QS_PAINT << 16 } -enum : uint { PM_QS_SENDMESSAGE = QS_SENDMESSAGE << 16 } -// #endif /* WINVER >= 0x0500 */ - -// #endif /* !NOMSG */ - -extern(Windows) export BOOL RegisterHotKey( - HWND hWnd, - int id, - UINT fsModifiers, - UINT vk); - -extern(Windows) export BOOL UnregisterHotKey( - HWND hWnd, - int id); - -enum : uint { MOD_ALT = 0x0001 } -enum : uint { MOD_CONTROL = 0x0002 } -enum : uint { MOD_SHIFT = 0x0004 } -enum : uint { MOD_WIN = 0x0008 } - -enum { IDHOT_SNAPWINDOW = -1 } -enum { IDHOT_SNAPDESKTOP = -2 } - -// #ifdef WIN_INTERNAL -// #ifndef LSTRING -// #... -// #endif /* LSTRING */ -// #ifndef LFILEIO -// #... -// #endif /* LFILEIO */ -// #endif /* WIN_INTERNAL */ - -// #if(WINVER >= 0x0400) - -enum : uint { ENDSESSION_LOGOFF = 0x80000000 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { EWX_LOGOFF = 0 } -enum : uint { EWX_SHUTDOWN = 0x00000001 } -enum : uint { EWX_REBOOT = 0x00000002 } -enum : uint { EWX_FORCE = 0x00000004 } -enum : uint { EWX_POWEROFF = 0x00000008 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { EWX_FORCEIFHUNG = 0x00000010 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -BOOL ExitWindows(DWORD dwReserved, UINT Code){ return ExitWindowsEx(EWX_LOGOFF, 0xFFFFFFFF); } - -extern(Windows) export BOOL ExitWindowsEx( - UINT uFlags, - DWORD dwReserved); - -extern(Windows) export BOOL SwapMouseButton( - BOOL fSwap); - -extern(Windows) export DWORD GetMessagePos(); - -extern(Windows) export LONG GetMessageTime(); - -extern(Windows) export LPARAM GetMessageExtraInfo(); - -// #if(WINVER >= 0x0400) -extern(Windows) export LPARAM SetMessageExtraInfo( - LPARAM lParam); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export LRESULT SendMessageA( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -extern(Windows) export LRESULT SendMessageW( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -// #ifdef UNICODE -// #... -// #else -alias SendMessageA SendMessage; -// #endif // !UNICODE - -extern(Windows) export LRESULT SendMessageTimeoutA( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam, - UINT fuFlags, - UINT uTimeout, - PDWORD_PTR lpdwResult); -extern(Windows) export LRESULT SendMessageTimeoutW( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam, - UINT fuFlags, - UINT uTimeout, - PDWORD_PTR lpdwResult); -// #ifdef UNICODE -// #... -// #else -alias SendMessageTimeoutA SendMessageTimeout; -// #endif // !UNICODE - -extern(Windows) export BOOL SendNotifyMessageA( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -extern(Windows) export BOOL SendNotifyMessageW( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -// #ifdef UNICODE -// #... -// #else -alias SendNotifyMessageA SendNotifyMessage; -// #endif // !UNICODE - -extern(Windows) export BOOL SendMessageCallbackA( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam, - SENDASYNCPROC lpResultCallBack, - ULONG_PTR dwData); -extern(Windows) export BOOL SendMessageCallbackW( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam, - SENDASYNCPROC lpResultCallBack, - ULONG_PTR dwData); -// #ifdef UNICODE -// #... -// #else -alias SendMessageCallbackA SendMessageCallback; -// #endif // !UNICODE - -// #if(_WIN32_WINNT >= 0x0501) -struct _0 { - UINT cbSize; - HDESK hdesk; - HWND hwnd; - LUID luid; -} -alias _0 BSMINFO; -alias _0* PBSMINFO; - -extern(Windows) export int BroadcastSystemMessageExA( - DWORD, - LPDWORD, - UINT, - WPARAM, - LPARAM, - PBSMINFO); -extern(Windows) export int BroadcastSystemMessageExW( - DWORD, - LPDWORD, - UINT, - WPARAM, - LPARAM, - PBSMINFO); -// #ifdef UNICODE -// #... -// #else -alias BroadcastSystemMessageExA BroadcastSystemMessageEx; -// #endif // !UNICODE -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if(WINVER >= 0x0400) - -// #if defined(_WIN32_WINNT) -extern(Windows) export int BroadcastSystemMessageA( - DWORD, - LPDWORD, - UINT, - WPARAM, - LPARAM); -extern(Windows) export int BroadcastSystemMessageW( - DWORD, - LPDWORD, - UINT, - WPARAM, - LPARAM); -// #ifdef UNICODE -// #... -// #else -alias BroadcastSystemMessageA BroadcastSystemMessage; -// #endif // !UNICODE -// #elif defined(_WIN32_WINDOWS) - -// ... - -// #endif - -enum : uint { BSM_ALLCOMPONENTS = 0x00000000 } -enum : uint { BSM_VXDS = 0x00000001 } -enum : uint { BSM_NETDRIVER = 0x00000002 } -enum : uint { BSM_INSTALLABLEDRIVERS = 0x00000004 } -enum : uint { BSM_APPLICATIONS = 0x00000008 } -enum : uint { BSM_ALLDESKTOPS = 0x00000010 } - -enum : uint { BSF_QUERY = 0x00000001 } -enum : uint { BSF_IGNORECURRENTTASK = 0x00000002 } -enum : uint { BSF_FLUSHDISK = 0x00000004 } -enum : uint { BSF_NOHANG = 0x00000008 } -enum : uint { BSF_POSTMESSAGE = 0x00000010 } -enum : uint { BSF_FORCEIFHUNG = 0x00000020 } -enum : uint { BSF_NOTIMEOUTIFNOTHUNG = 0x00000040 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { BSF_ALLOWSFW = 0x00000080 } -enum : uint { BSF_SENDNOTIFYMESSAGE = 0x00000100 } -// #endif /* _WIN32_WINNT >= 0x0500 */ -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { BSF_RETURNHDESK = 0x00000200 } -enum : uint { BSF_LUID = 0x00000400 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { BROADCAST_QUERY_DENY = 0x424D5144 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -alias PVOID HDEVNOTIFY; -alias HDEVNOTIFY* PHDEVNOTIFY; - -enum : uint { DEVICE_NOTIFY_WINDOW_HANDLE = 0x00000000 } -enum : uint { DEVICE_NOTIFY_SERVICE_HANDLE = 0x00000001 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { DEVICE_NOTIFY_ALL_INTERFACE_CLASSES = 0x00000004 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export HDEVNOTIFY RegisterDeviceNotificationA( - HANDLE hRecipient, - LPVOID NotificationFilter, - DWORD Flags); -extern(Windows) export HDEVNOTIFY RegisterDeviceNotificationW( - HANDLE hRecipient, - LPVOID NotificationFilter, - DWORD Flags); -// #ifdef UNICODE -// #... -// #else -alias RegisterDeviceNotificationA RegisterDeviceNotification; -// #endif // !UNICODE - -extern(Windows) export BOOL UnregisterDeviceNotification( - HDEVNOTIFY Handle); -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export BOOL PostMessageA( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -extern(Windows) export BOOL PostMessageW( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -// #ifdef UNICODE -// #... -// #else -alias PostMessageA PostMessage; -// #endif // !UNICODE - -extern(Windows) export BOOL PostThreadMessageA( - DWORD idThread, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -extern(Windows) export BOOL PostThreadMessageW( - DWORD idThread, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -// #ifdef UNICODE -// #... -// #else -alias PostThreadMessageA PostThreadMessage; -// #endif // !UNICODE - -alias PostThreadMessageA PostAppMessageA; -alias PostThreadMessageW PostAppMessageW; -// #ifdef UNICODE -// #... -// #else -alias PostAppMessageA PostAppMessage; -// #endif // !UNICODE - -const HWND HWND_BROADCAST = cast(HWND)0xffff; - -// #if(WINVER >= 0x0500) -const HWND HWND_MESSAGE = cast(HWND)-3; -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export BOOL AttachThreadInput( - DWORD idAttach, - DWORD idAttachTo, - BOOL fAttach); - -extern(Windows) export BOOL ReplyMessage( - LRESULT lResult); - -extern(Windows) export BOOL WaitMessage(); - -extern(Windows) export DWORD WaitForInputIdle( - HANDLE hProcess, - DWORD dwMilliseconds); - -extern(Windows) export LRESULT DefWindowProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); -extern(Windows) export LRESULT DefWindowProcW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); -// #ifdef UNICODE -// #... -// #else -alias DefWindowProcA DefWindowProc; -// #endif // !UNICODE - -extern(Windows) export VOID PostQuitMessage( - int nExitCode); - -// #ifdef STRICT - -extern(Windows) export LRESULT CallWindowProcA( - WNDPROC lpPrevWndFunc, - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -extern(Windows) export LRESULT CallWindowProcW( - WNDPROC lpPrevWndFunc, - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -// #ifdef UNICODE -// #... -// #else -alias CallWindowProcA CallWindowProc; -// #endif // !UNICODE - -// #else /* !STRICT */ - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #endif /* !STRICT */ - -extern(Windows) export BOOL InSendMessage(); - -// #if(WINVER >= 0x0500) -extern(Windows) export DWORD InSendMessageEx( - LPVOID lpReserved); - -enum : uint { ISMEX_NOSEND = 0x00000000 } -enum : uint { ISMEX_SEND = 0x00000001 } -enum : uint { ISMEX_NOTIFY = 0x00000002 } -enum : uint { ISMEX_CALLBACK = 0x00000004 } -enum : uint { ISMEX_REPLIED = 0x00000008 } -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export UINT GetDoubleClickTime(); - -extern(Windows) export BOOL SetDoubleClickTime( - UINT); - -extern(Windows) export ATOM RegisterClassA( - WNDCLASSA *lpWndClass); -extern(Windows) export ATOM RegisterClassW( - WNDCLASSW *lpWndClass); -// #ifdef UNICODE -// #... -// #else -alias RegisterClassA RegisterClass; -// #endif // !UNICODE - -extern(Windows) export BOOL UnregisterClassA( - LPCSTR lpClassName, - HINSTANCE hInstance); -extern(Windows) export BOOL UnregisterClassW( - LPCWSTR lpClassName, - HINSTANCE hInstance); -// #ifdef UNICODE -// #... -// #else -alias UnregisterClassA UnregisterClass; -// #endif // !UNICODE - -extern(Windows) export BOOL GetClassInfoA( - HINSTANCE hInstance, - LPCSTR lpClassName, - LPWNDCLASSA lpWndClass); -extern(Windows) export BOOL GetClassInfoW( - HINSTANCE hInstance, - LPCWSTR lpClassName, - LPWNDCLASSW lpWndClass); -// #ifdef UNICODE -// #... -// #else -alias GetClassInfoA GetClassInfo; -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export ATOM RegisterClassExA( - WNDCLASSEXA *); -extern(Windows) export ATOM RegisterClassExW( - WNDCLASSEXW *); -// #ifdef UNICODE -// #... -// #else -alias RegisterClassExA RegisterClassEx; -// #endif // !UNICODE - -extern(Windows) export BOOL GetClassInfoExA( - HINSTANCE, - LPCSTR, - LPWNDCLASSEXA); -extern(Windows) export BOOL GetClassInfoExW( - HINSTANCE, - LPCWSTR, - LPWNDCLASSEXW); -// #ifdef UNICODE -// #... -// #else -alias GetClassInfoExA GetClassInfoEx; -// #endif // !UNICODE - -// #endif /* WINVER >= 0x0400 */ - -enum { CW_USEDEFAULT = int.min } - -const HWND HWND_DESKTOP = cast(HWND)0; - -// #if(_WIN32_WINNT >= 0x0501) -extern(Windows) alias BOOLEAN function(LPCWSTR) PREGISTERCLASSNAMEW; -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export HWND CreateWindowExA( - DWORD dwExStyle, - LPCSTR lpClassName, - LPCSTR lpWindowName, - DWORD dwStyle, - int X, - int Y, - int nWidth, - int nHeight, - HWND hWndParent, - HMENU hMenu, - HINSTANCE hInstance, - LPVOID lpParam); -extern(Windows) export HWND CreateWindowExW( - DWORD dwExStyle, - LPCWSTR lpClassName, - LPCWSTR lpWindowName, - DWORD dwStyle, - int X, - int Y, - int nWidth, - int nHeight, - HWND hWndParent, - HMENU hMenu, - HINSTANCE hInstance, - LPVOID lpParam); -// #ifdef UNICODE -// #... -// #else -alias CreateWindowExA CreateWindowEx; -// #endif // !UNICODE - -HWND CreateWindowA(LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam){ return CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); } -HWND CreateWindowW(LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam){ return CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); } -// #ifdef UNICODE -// #... -// #else -alias CreateWindowA CreateWindow; -// #endif // !UNICODE - -extern(Windows) export BOOL IsWindow( - HWND hWnd); - -extern(Windows) export BOOL IsMenu( - HMENU hMenu); - -extern(Windows) export BOOL IsChild( - HWND hWndParent, - HWND hWnd); - -extern(Windows) export BOOL DestroyWindow( - HWND hWnd); - -extern(Windows) export BOOL ShowWindow( - HWND hWnd, - int nCmdShow); - -// #if(WINVER >= 0x0500) -extern(Windows) export BOOL AnimateWindow( - HWND hWnd, - DWORD dwTime, - DWORD dwFlags); -// #endif /* WINVER >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0500) -// #if defined(_WINGDI_) && !defined (NOGDI) - -// ... -// #endif - -// #if(_WIN32_WINNT >= 0x0501) -extern(Windows) export BOOL GetLayeredWindowAttributes( - HWND hwnd, - COLORREF *pcrKey, - BYTE *pbAlpha, - DWORD *pdwFlags); - -enum : uint { PW_CLIENTONLY = 0x00000001 } - -extern(Windows) export BOOL PrintWindow( - HWND hwnd, - HDC hdcBlt, - UINT nFlags); - -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export BOOL SetLayeredWindowAttributes( - HWND hwnd, - COLORREF crKey, - BYTE bAlpha, - DWORD dwFlags); - -enum : uint { LWA_COLORKEY = 0x00000001 } -enum : uint { LWA_ALPHA = 0x00000002 } - -enum : uint { ULW_COLORKEY = 0x00000001 } -enum : uint { ULW_ALPHA = 0x00000002 } -enum : uint { ULW_OPAQUE = 0x00000004 } - -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(WINVER >= 0x0400) -extern(Windows) export BOOL ShowWindowAsync( - HWND hWnd, - int nCmdShow); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL FlashWindow( - HWND hWnd, - BOOL bInvert); - -// #if(WINVER >= 0x0500) -struct _1 { - UINT cbSize; - HWND hwnd; - DWORD dwFlags; - UINT uCount; - DWORD dwTimeout; -} -alias _1 FLASHWINFO; -alias _1* PFLASHWINFO; - -extern(Windows) export BOOL FlashWindowEx( - PFLASHWINFO pfwi); - -enum : uint { FLASHW_STOP = 0 } -enum : uint { FLASHW_CAPTION = 0x00000001 } -enum : uint { FLASHW_TRAY = 0x00000002 } -enum : uint { FLASHW_ALL = FLASHW_CAPTION | FLASHW_TRAY } -enum : uint { FLASHW_TIMER = 0x00000004 } -enum : uint { FLASHW_TIMERNOFG = 0x0000000C } - -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export BOOL ShowOwnedPopups( - HWND hWnd, - BOOL fShow); - -extern(Windows) export BOOL OpenIcon( - HWND hWnd); - -extern(Windows) export BOOL CloseWindow( - HWND hWnd); - -extern(Windows) export BOOL MoveWindow( - HWND hWnd, - int X, - int Y, - int nWidth, - int nHeight, - BOOL bRepaint); - -extern(Windows) export BOOL SetWindowPos( - HWND hWnd, - HWND hWndInsertAfter, - int X, - int Y, - int cx, - int cy, - UINT uFlags); - -extern(Windows) export BOOL GetWindowPlacement( - HWND hWnd, - WINDOWPLACEMENT *lpwndpl); - -extern(Windows) export BOOL SetWindowPlacement( - HWND hWnd, - WINDOWPLACEMENT *lpwndpl); - -// #ifndef NODEFERWINDOWPOS - -extern(Windows) export HDWP BeginDeferWindowPos( - int nNumWindows); - -extern(Windows) export HDWP DeferWindowPos( - HDWP hWinPosInfo, - HWND hWnd, - HWND hWndInsertAfter, - int x, - int y, - int cx, - int cy, - UINT uFlags); - -extern(Windows) export BOOL EndDeferWindowPos( - HDWP hWinPosInfo); - -// #endif /* !NODEFERWINDOWPOS */ - -extern(Windows) export BOOL IsWindowVisible( - HWND hWnd); - -extern(Windows) export BOOL IsIconic( - HWND hWnd); - -extern(Windows) export BOOL AnyPopup(); - -extern(Windows) export BOOL BringWindowToTop( - HWND hWnd); - -extern(Windows) export BOOL IsZoomed( - HWND hWnd); - -enum : uint { SWP_NOSIZE = 0x0001 } -enum : uint { SWP_NOMOVE = 0x0002 } -enum : uint { SWP_NOZORDER = 0x0004 } -enum : uint { SWP_NOREDRAW = 0x0008 } -enum : uint { SWP_NOACTIVATE = 0x0010 } -enum : uint { SWP_FRAMECHANGED = 0x0020 } -enum : uint { SWP_SHOWWINDOW = 0x0040 } -enum : uint { SWP_HIDEWINDOW = 0x0080 } -enum : uint { SWP_NOCOPYBITS = 0x0100 } -enum : uint { SWP_NOOWNERZORDER = 0x0200 } -enum : uint { SWP_NOSENDCHANGING = 0x0400 } - -alias SWP_FRAMECHANGED SWP_DRAWFRAME; -alias SWP_NOOWNERZORDER SWP_NOREPOSITION; - -// #if(WINVER >= 0x0400) -enum : uint { SWP_DEFERERASE = 0x2000 } -enum : uint { SWP_ASYNCWINDOWPOS = 0x4000 } -// #endif /* WINVER >= 0x0400 */ - -const HWND HWND_TOP = cast(HWND)0; -const HWND HWND_BOTTOM = cast(HWND)1; -const HWND HWND_TOPMOST = cast(HWND)-1; -const HWND HWND_NOTOPMOST = cast(HWND)-2; - -// #ifndef NOCTLMGR - -align(2): - -struct _2 { - DWORD style; - DWORD dwExtendedStyle; - WORD cdit; - short x; - short y; - short cx; - short cy; -} -alias _2 DLGTEMPLATE; - -alias DLGTEMPLATE* LPDLGTEMPLATEA; -alias DLGTEMPLATE* LPDLGTEMPLATEW; -// #ifdef UNICODE -// ... -// #else -alias LPDLGTEMPLATEA LPDLGTEMPLATE; -// #endif // UNICODE -alias DLGTEMPLATE* LPCDLGTEMPLATEA; -alias DLGTEMPLATE* LPCDLGTEMPLATEW; -// #ifdef UNICODE -// ... -// #else -alias LPCDLGTEMPLATEA LPCDLGTEMPLATE; -// #endif // UNICODE - -struct _3 { - DWORD style; - DWORD dwExtendedStyle; - short x; - short y; - short cx; - short cy; - WORD id; -} -alias _3 DLGITEMTEMPLATE; - -alias DLGITEMTEMPLATE* PDLGITEMTEMPLATEA; -alias DLGITEMTEMPLATE* PDLGITEMTEMPLATEW; -// #ifdef UNICODE -// ... -// #else -alias PDLGITEMTEMPLATEA PDLGITEMTEMPLATE; -// #endif // UNICODE -alias DLGITEMTEMPLATE* LPDLGITEMTEMPLATEA; -alias DLGITEMTEMPLATE* LPDLGITEMTEMPLATEW; -// #ifdef UNICODE -// ... -// #else -alias LPDLGITEMTEMPLATEA LPDLGITEMTEMPLATE; -// #endif // UNICODE - -align: - -extern(Windows) export HWND CreateDialogParamA( - HINSTANCE hInstance, - LPCSTR lpTemplateName, - HWND hWndParent, - DLGPROC lpDialogFunc, - LPARAM dwInitParam); -extern(Windows) export HWND CreateDialogParamW( - HINSTANCE hInstance, - LPCWSTR lpTemplateName, - HWND hWndParent, - DLGPROC lpDialogFunc, - LPARAM dwInitParam); -// #ifdef UNICODE -// #... -// #else -alias CreateDialogParamA CreateDialogParam; -// #endif // !UNICODE - -extern(Windows) export HWND CreateDialogIndirectParamA( - HINSTANCE hInstance, - LPCDLGTEMPLATEA lpTemplate, - HWND hWndParent, - DLGPROC lpDialogFunc, - LPARAM dwInitParam); -extern(Windows) export HWND CreateDialogIndirectParamW( - HINSTANCE hInstance, - LPCDLGTEMPLATEW lpTemplate, - HWND hWndParent, - DLGPROC lpDialogFunc, - LPARAM dwInitParam); -// #ifdef UNICODE -// #... -// #else -alias CreateDialogIndirectParamA CreateDialogIndirectParam; -// #endif // !UNICODE - -HWND CreateDialogA(HINSTANCE hInstance, LPCSTR lpName, HWND hWndParent, DLGPROC lpDialogFunc){ return CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0L); } -HWND CreateDialogW(HINSTANCE hInstance, LPCWSTR lpName, HWND hWndParent, DLGPROC lpDialogFunc){ return CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0L); } -// #ifdef UNICODE -// #... -// #else -alias CreateDialogA CreateDialog; -// #endif // !UNICODE - -HWND CreateDialogIndirectA(HINSTANCE hInstance, LPCDLGTEMPLATE lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc){ return CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L); } -HWND CreateDialogIndirectW(HINSTANCE hInstance, LPCDLGTEMPLATE lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc){ return CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L); } -// #ifdef UNICODE -// #... -// #else -alias CreateDialogIndirectA CreateDialogIndirect; -// #endif // !UNICODE - -extern(Windows) export INT_PTR DialogBoxParamA( - HINSTANCE hInstance, - LPCSTR lpTemplateName, - HWND hWndParent, - DLGPROC lpDialogFunc, - LPARAM dwInitParam); -extern(Windows) export INT_PTR DialogBoxParamW( - HINSTANCE hInstance, - LPCWSTR lpTemplateName, - HWND hWndParent, - DLGPROC lpDialogFunc, - LPARAM dwInitParam); -// #ifdef UNICODE -// #... -// #else -alias DialogBoxParamA DialogBoxParam; -// #endif // !UNICODE - -extern(Windows) export INT_PTR DialogBoxIndirectParamA( - HINSTANCE hInstance, - LPCDLGTEMPLATEA hDialogTemplate, - HWND hWndParent, - DLGPROC lpDialogFunc, - LPARAM dwInitParam); -extern(Windows) export INT_PTR DialogBoxIndirectParamW( - HINSTANCE hInstance, - LPCDLGTEMPLATEW hDialogTemplate, - HWND hWndParent, - DLGPROC lpDialogFunc, - LPARAM dwInitParam); -// #ifdef UNICODE -// #... -// #else -alias DialogBoxIndirectParamA DialogBoxIndirectParam; -// #endif // !UNICODE - -// #define DialogBoxA(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L) -// #define DialogBoxW(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L) -// #ifdef UNICODE -// #... -// #else -// #define DialogBox DialogBoxA -// #endif // !UNICODE - -// #define DialogBoxIndirectA(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L) -// #define DialogBoxIndirectW(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L) -// #ifdef UNICODE -// #... -// #else -// #define DialogBoxIndirect DialogBoxIndirectA -// #endif // !UNICODE - -extern(Windows) export BOOL EndDialog( - HWND hDlg, - INT_PTR nResult); - -extern(Windows) export HWND GetDlgItem( - HWND hDlg, - int nIDDlgItem); - -extern(Windows) export BOOL SetDlgItemInt( - HWND hDlg, - int nIDDlgItem, - UINT uValue, - BOOL bSigned); - -extern(Windows) export UINT GetDlgItemInt( - HWND hDlg, - int nIDDlgItem, - BOOL *lpTranslated, - BOOL bSigned); - -extern(Windows) export BOOL SetDlgItemTextA( - HWND hDlg, - int nIDDlgItem, - LPCSTR lpString); -extern(Windows) export BOOL SetDlgItemTextW( - HWND hDlg, - int nIDDlgItem, - LPCWSTR lpString); -// #ifdef UNICODE -// #... -// #else -alias SetDlgItemTextA SetDlgItemText; -// #endif // !UNICODE - -extern(Windows) export UINT GetDlgItemTextA( - HWND hDlg, - int nIDDlgItem, - LPSTR lpString, - int nMaxCount); -extern(Windows) export UINT GetDlgItemTextW( - HWND hDlg, - int nIDDlgItem, - LPWSTR lpString, - int nMaxCount); -// #ifdef UNICODE -// #... -// #else -alias GetDlgItemTextA GetDlgItemText; -// #endif // !UNICODE - -extern(Windows) export BOOL CheckDlgButton( - HWND hDlg, - int nIDButton, - UINT uCheck); - -extern(Windows) export BOOL CheckRadioButton( - HWND hDlg, - int nIDFirstButton, - int nIDLastButton, - int nIDCheckButton); - -extern(Windows) export UINT IsDlgButtonChecked( - HWND hDlg, - int nIDButton); - -extern(Windows) export LRESULT SendDlgItemMessageA( - HWND hDlg, - int nIDDlgItem, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -extern(Windows) export LRESULT SendDlgItemMessageW( - HWND hDlg, - int nIDDlgItem, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -// #ifdef UNICODE -// #... -// #else -alias SendDlgItemMessageA SendDlgItemMessage; -// #endif // !UNICODE - -extern(Windows) export HWND GetNextDlgGroupItem( - HWND hDlg, - HWND hCtl, - BOOL bPrevious); - -extern(Windows) export HWND GetNextDlgTabItem( - HWND hDlg, - HWND hCtl, - BOOL bPrevious); - -extern(Windows) export int GetDlgCtrlID( - HWND hWnd); - -extern(Windows) export int GetDialogBaseUnits(); - -extern(Windows) export LRESULT DefDlgProcA(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); -extern(Windows) export LRESULT DefDlgProcW(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); -// #ifdef UNICODE -// #... -// #else -alias DefDlgProcA DefDlgProc; -// #endif // !UNICODE - -// #ifndef _MAC -enum : uint { DLGWINDOWEXTRA = 30 } -// #else -// #... -// #endif - -// #endif /* !NOCTLMGR */ - -// #ifndef NOMSG - -extern(Windows) export BOOL CallMsgFilterA( - LPMSG lpMsg, - int nCode); -extern(Windows) export BOOL CallMsgFilterW( - LPMSG lpMsg, - int nCode); -// #ifdef UNICODE -// #... -// #else -alias CallMsgFilterA CallMsgFilter; -// #endif // !UNICODE - -// #endif /* !NOMSG */ - -// #ifndef NOCLIPBOARD - -extern(Windows) export BOOL OpenClipboard( - HWND hWndNewOwner); - -extern(Windows) export BOOL CloseClipboard(); - -// #if(WINVER >= 0x0500) - -extern(Windows) export DWORD GetClipboardSequenceNumber(); - -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export HWND GetClipboardOwner(); - -extern(Windows) export HWND SetClipboardViewer( - HWND hWndNewViewer); - -extern(Windows) export HWND GetClipboardViewer(); - -extern(Windows) export BOOL ChangeClipboardChain( - HWND hWndRemove, - HWND hWndNewNext); - -extern(Windows) export HANDLE SetClipboardData( - UINT uFormat, - HANDLE hMem); - -extern(Windows) export HANDLE GetClipboardData( - UINT uFormat); - -extern(Windows) export UINT RegisterClipboardFormatA( - LPCSTR lpszFormat); -extern(Windows) export UINT RegisterClipboardFormatW( - LPCWSTR lpszFormat); -// #ifdef UNICODE -// #... -// #else -alias RegisterClipboardFormatA RegisterClipboardFormat; -// #endif // !UNICODE - -extern(Windows) export int CountClipboardFormats(); - -extern(Windows) export UINT EnumClipboardFormats( - UINT format); - -extern(Windows) export int GetClipboardFormatNameA( - UINT format, - LPSTR lpszFormatName, - int cchMaxCount); -extern(Windows) export int GetClipboardFormatNameW( - UINT format, - LPWSTR lpszFormatName, - int cchMaxCount); -// #ifdef UNICODE -// #... -// #else -alias GetClipboardFormatNameA GetClipboardFormatName; -// #endif // !UNICODE - -extern(Windows) export BOOL EmptyClipboard(); - -extern(Windows) export BOOL IsClipboardFormatAvailable( - UINT format); - -extern(Windows) export int GetPriorityClipboardFormat( - UINT *paFormatPriorityList, - int cFormats); - -extern(Windows) export HWND GetOpenClipboardWindow(); - -// #endif /* !NOCLIPBOARD */ - -extern(Windows) export BOOL CharToOemA( - LPCSTR lpszSrc, - LPSTR lpszDst); -extern(Windows) export BOOL CharToOemW( - LPCWSTR lpszSrc, - LPSTR lpszDst); -// #ifdef UNICODE -// #... -// #else -alias CharToOemA CharToOem; -// #endif // !UNICODE - -extern(Windows) export BOOL OemToCharA( - LPCSTR lpszSrc, - LPSTR lpszDst); -extern(Windows) export BOOL OemToCharW( - LPCSTR lpszSrc, - LPWSTR lpszDst); -// #ifdef UNICODE -// #... -// #else -alias OemToCharA OemToChar; -// #endif // !UNICODE - -extern(Windows) export BOOL CharToOemBuffA( - LPCSTR lpszSrc, - LPSTR lpszDst, - DWORD cchDstLength); -extern(Windows) export BOOL CharToOemBuffW( - LPCWSTR lpszSrc, - LPSTR lpszDst, - DWORD cchDstLength); -// #ifdef UNICODE -// #... -// #else -alias CharToOemBuffA CharToOemBuff; -// #endif // !UNICODE - -extern(Windows) export BOOL OemToCharBuffA( - LPCSTR lpszSrc, - LPSTR lpszDst, - DWORD cchDstLength); -extern(Windows) export BOOL OemToCharBuffW( - LPCSTR lpszSrc, - LPWSTR lpszDst, - DWORD cchDstLength); -// #ifdef UNICODE -// #... -// #else -alias OemToCharBuffA OemToCharBuff; -// #endif // !UNICODE - -extern(Windows) export LPSTR CharUpperA( - LPSTR lpsz); -extern(Windows) export LPWSTR CharUpperW( - LPWSTR lpsz); -// #ifdef UNICODE -// #... -// #else -alias CharUpperA CharUpper; -// #endif // !UNICODE - -extern(Windows) export DWORD CharUpperBuffA( - LPSTR lpsz, - DWORD cchLength); -extern(Windows) export DWORD CharUpperBuffW( - LPWSTR lpsz, - DWORD cchLength); -// #ifdef UNICODE -// #... -// #else -alias CharUpperBuffA CharUpperBuff; -// #endif // !UNICODE - -extern(Windows) export LPSTR CharLowerA( - LPSTR lpsz); -extern(Windows) export LPWSTR CharLowerW( - LPWSTR lpsz); -// #ifdef UNICODE -// #... -// #else -alias CharLowerA CharLower; -// #endif // !UNICODE - -extern(Windows) export DWORD CharLowerBuffA( - LPSTR lpsz, - DWORD cchLength); -extern(Windows) export DWORD CharLowerBuffW( - LPWSTR lpsz, - DWORD cchLength); -// #ifdef UNICODE -// #... -// #else -alias CharLowerBuffA CharLowerBuff; -// #endif // !UNICODE - -extern(Windows) export LPSTR CharNextA( - LPCSTR lpsz); -extern(Windows) export LPWSTR CharNextW( - LPCWSTR lpsz); -// #ifdef UNICODE -// #... -// #else -alias CharNextA CharNext; -// #endif // !UNICODE - -extern(Windows) export LPSTR CharPrevA( - LPCSTR lpszStart, - LPCSTR lpszCurrent); -extern(Windows) export LPWSTR CharPrevW( - LPCWSTR lpszStart, - LPCWSTR lpszCurrent); -// #ifdef UNICODE -// #... -// #else -alias CharPrevA CharPrev; -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export LPSTR CharNextExA( - WORD CodePage, - LPCSTR lpCurrentChar, - DWORD dwFlags); - -extern(Windows) export LPSTR CharPrevExA( - WORD CodePage, - LPCSTR lpStart, - LPCSTR lpCurrentChar, - DWORD dwFlags); -// #endif /* WINVER >= 0x0400 */ - -alias CharToOemA AnsiToOem; -alias OemToCharA OemToAnsi; -alias CharToOemBuffA AnsiToOemBuff; -alias OemToCharBuffA OemToAnsiBuff; -alias CharUpperA AnsiUpper; -alias CharUpperBuffA AnsiUpperBuff; -alias CharLowerA AnsiLower; -alias CharLowerBuffA AnsiLowerBuff; -alias CharNextA AnsiNext; -alias CharPrevA AnsiPrev; - -// #ifndef NOLANGUAGE - -extern(Windows) export BOOL IsCharAlphaA( - CHAR ch); -extern(Windows) export BOOL IsCharAlphaW( - WCHAR ch); -// #ifdef UNICODE -// #... -// #else -alias IsCharAlphaA IsCharAlpha; -// #endif // !UNICODE - -extern(Windows) export BOOL IsCharAlphaNumericA( - CHAR ch); -extern(Windows) export BOOL IsCharAlphaNumericW( - WCHAR ch); -// #ifdef UNICODE -// #... -// #else -alias IsCharAlphaNumericA IsCharAlphaNumeric; -// #endif // !UNICODE - -extern(Windows) export BOOL IsCharUpperA( - CHAR ch); -extern(Windows) export BOOL IsCharUpperW( - WCHAR ch); -// #ifdef UNICODE -// #... -// #else -alias IsCharUpperA IsCharUpper; -// #endif // !UNICODE - -extern(Windows) export BOOL IsCharLowerA( - CHAR ch); -extern(Windows) export BOOL IsCharLowerW( - WCHAR ch); -// #ifdef UNICODE -// #... -// #else -alias IsCharLowerA IsCharLower; -// #endif // !UNICODE - -// #endif /* !NOLANGUAGE */ - -extern(Windows) export HWND SetFocus( - HWND hWnd); - -extern(Windows) export HWND GetActiveWindow(); - -extern(Windows) export HWND GetFocus(); - -extern(Windows) export UINT GetKBCodePage(); - -extern(Windows) export SHORT GetKeyState( - int nVirtKey); - -extern(Windows) export SHORT GetAsyncKeyState( - int vKey); - -extern(Windows) export BOOL GetKeyboardState( - PBYTE lpKeyState); - -extern(Windows) export BOOL SetKeyboardState( - LPBYTE lpKeyState); - -extern(Windows) export int GetKeyNameTextA( - LONG lParam, - LPSTR lpString, - int nSize); -extern(Windows) export int GetKeyNameTextW( - LONG lParam, - LPWSTR lpString, - int nSize); -// #ifdef UNICODE -// #... -// #else -alias GetKeyNameTextA GetKeyNameText; -// #endif // !UNICODE - -extern(Windows) export int GetKeyboardType( - int nTypeFlag); - -extern(Windows) export int ToAscii( - UINT uVirtKey, - UINT uScanCode, - BYTE *lpKeyState, - LPWORD lpChar, - UINT uFlags); - -// #if(WINVER >= 0x0400) -extern(Windows) export int ToAsciiEx( - UINT uVirtKey, - UINT uScanCode, - BYTE *lpKeyState, - LPWORD lpChar, - UINT uFlags, - HKL dwhkl); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export int ToUnicode( - UINT wVirtKey, - UINT wScanCode, - BYTE *lpKeyState, - LPWSTR pwszBuff, - int cchBuff, - UINT wFlags); - -extern(Windows) export DWORD OemKeyScan( - WORD wOemChar); - -extern(Windows) export SHORT VkKeyScanA( - CHAR ch); -extern(Windows) export SHORT VkKeyScanW( - WCHAR ch); -// #ifdef UNICODE -// #... -// #else -alias VkKeyScanA VkKeyScan; -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export SHORT VkKeyScanExA( - CHAR ch, - HKL dwhkl); -extern(Windows) export SHORT VkKeyScanExW( - WCHAR ch, - HKL dwhkl); -// #ifdef UNICODE -// #... -// #else -alias VkKeyScanExA VkKeyScanEx; -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ -enum : uint { KEYEVENTF_EXTENDEDKEY = 0x0001 } -enum : uint { KEYEVENTF_KEYUP = 0x0002 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { KEYEVENTF_UNICODE = 0x0004 } -enum : uint { KEYEVENTF_SCANCODE = 0x0008 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export VOID keybd_event( - BYTE bVk, - BYTE bScan, - DWORD dwFlags, - ULONG_PTR dwExtraInfo); - -enum : uint { MOUSEEVENTF_MOVE = 0x0001 } -enum : uint { MOUSEEVENTF_LEFTDOWN = 0x0002 } -enum : uint { MOUSEEVENTF_LEFTUP = 0x0004 } -enum : uint { MOUSEEVENTF_RIGHTDOWN = 0x0008 } -enum : uint { MOUSEEVENTF_RIGHTUP = 0x0010 } -enum : uint { MOUSEEVENTF_MIDDLEDOWN = 0x0020 } -enum : uint { MOUSEEVENTF_MIDDLEUP = 0x0040 } -enum : uint { MOUSEEVENTF_XDOWN = 0x0080 } -enum : uint { MOUSEEVENTF_XUP = 0x0100 } -enum : uint { MOUSEEVENTF_WHEEL = 0x0800 } -enum : uint { MOUSEEVENTF_VIRTUALDESK = 0x4000 } -enum : uint { MOUSEEVENTF_ABSOLUTE = 0x8000 } - -extern(Windows) export VOID mouse_event( - DWORD dwFlags, - DWORD dx, - DWORD dy, - DWORD dwData, - ULONG_PTR dwExtraInfo); - -// #if (_WIN32_WINNT > 0x0400) - -struct tagMOUSEINPUT { - LONG dx; - LONG dy; - DWORD mouseData; - DWORD dwFlags; - DWORD time; - ULONG_PTR dwExtraInfo; -} -alias tagMOUSEINPUT MOUSEINPUT; -alias tagMOUSEINPUT* PMOUSEINPUT; -alias tagMOUSEINPUT* LPMOUSEINPUT; - -struct tagKEYBDINPUT { - WORD wVk; - WORD wScan; - DWORD dwFlags; - DWORD time; - ULONG_PTR dwExtraInfo; -} -alias tagKEYBDINPUT KEYBDINPUT; -alias tagKEYBDINPUT* PKEYBDINPUT; -alias tagKEYBDINPUT* LPKEYBDINPUT; - -struct tagHARDWAREINPUT { - DWORD uMsg; - WORD wParamL; - WORD wParamH; -} -alias tagHARDWAREINPUT HARDWAREINPUT; -alias tagHARDWAREINPUT* PHARDWAREINPUT; -alias tagHARDWAREINPUT* LPHARDWAREINPUT; - -enum : uint { INPUT_MOUSE = 0 } -enum : uint { INPUT_KEYBOARD = 1 } -enum : uint { INPUT_HARDWARE = 2 } - -struct tagINPUT { - DWORD type; -union { - MOUSEINPUT mi; - KEYBDINPUT ki; - HARDWAREINPUT hi; -} - -} -alias tagINPUT INPUT; -alias tagINPUT* PINPUT; -alias tagINPUT* LPINPUT; - -extern(Windows) export UINT SendInput( - UINT cInputs, // number of input in the array - LPINPUT pInputs, // array of inputs - int cbSize); - -// #endif // (_WIN32_WINNT > 0x0400) - -// #if(_WIN32_WINNT >= 0x0500) -struct tagLASTINPUTINFO { - UINT cbSize; - DWORD dwTime; -} -alias tagLASTINPUTINFO LASTINPUTINFO; -alias tagLASTINPUTINFO* PLASTINPUTINFO; - -extern(Windows) export BOOL GetLastInputInfo( - PLASTINPUTINFO plii); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export UINT MapVirtualKeyA( - UINT uCode, - UINT uMapType); -extern(Windows) export UINT MapVirtualKeyW( - UINT uCode, - UINT uMapType); -// #ifdef UNICODE -// #... -// #else -alias MapVirtualKeyA MapVirtualKey; -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export UINT MapVirtualKeyExA( - UINT uCode, - UINT uMapType, - HKL dwhkl); -extern(Windows) export UINT MapVirtualKeyExW( - UINT uCode, - UINT uMapType, - HKL dwhkl); -// #ifdef UNICODE -// #... -// #else -alias MapVirtualKeyExA MapVirtualKeyEx; -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL GetInputState(); - -extern(Windows) export DWORD GetQueueStatus( - UINT flags); - -extern(Windows) export HWND GetCapture(); - -extern(Windows) export HWND SetCapture( - HWND hWnd); - -extern(Windows) export BOOL ReleaseCapture(); - -extern(Windows) export DWORD MsgWaitForMultipleObjects( - DWORD nCount, - HANDLE *pHandles, - BOOL fWaitAll, - DWORD dwMilliseconds, - DWORD dwWakeMask); - -extern(Windows) export DWORD MsgWaitForMultipleObjectsEx( - DWORD nCount, - HANDLE *pHandles, - DWORD dwMilliseconds, - DWORD dwWakeMask, - DWORD dwFlags); - -enum : uint { MWMO_WAITALL = 0x0001 } -enum : uint { MWMO_ALERTABLE = 0x0002 } -enum : uint { MWMO_INPUTAVAILABLE = 0x0004 } - -enum : uint { QS_KEY = 0x0001 } -enum : uint { QS_MOUSEMOVE = 0x0002 } -enum : uint { QS_MOUSEBUTTON = 0x0004 } -// #define QS_POSTMESSAGE 0x0008 -// #define QS_TIMER 0x0010 -// #define QS_PAINT 0x0020 -// #define QS_SENDMESSAGE 0x0040 -// #define QS_HOTKEY 0x0080 -enum : uint { QS_ALLPOSTMESSAGE = 0x0100 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { QS_RAWINPUT = 0x0400 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { QS_MOUSE = QS_MOUSEMOVE | QS_MOUSEBUTTON } - -// #if (_WIN32_WINNT >= 0x0501) -// #define QS_INPUT (QS_MOUSE | QS_KEY | QS_RAWINPUT) -// #else -// #... -// ... -// #endif // (_WIN32_WINNT >= 0x0501) - -enum : uint { QS_ALLEVENTS = QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY } - -enum : uint { QS_ALLINPUT = QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY | QS_SENDMESSAGE } - -extern(Windows) export UINT_PTR SetTimer( - HWND hWnd, - UINT_PTR nIDEvent, - UINT uElapse, - TIMERPROC lpTimerFunc); - -extern(Windows) export BOOL KillTimer( - HWND hWnd, - UINT_PTR uIDEvent); - -extern(Windows) export BOOL IsWindowUnicode( - HWND hWnd); - -extern(Windows) export BOOL EnableWindow( - HWND hWnd, - BOOL bEnable); - -extern(Windows) export BOOL IsWindowEnabled( - HWND hWnd); - -extern(Windows) export HACCEL LoadAcceleratorsA( - HINSTANCE hInstance, - LPCSTR lpTableName); -extern(Windows) export HACCEL LoadAcceleratorsW( - HINSTANCE hInstance, - LPCWSTR lpTableName); -// #ifdef UNICODE -// #... -// #else -alias LoadAcceleratorsA LoadAccelerators; -// #endif // !UNICODE - -extern(Windows) export HACCEL CreateAcceleratorTableA( - LPACCEL, int); -extern(Windows) export HACCEL CreateAcceleratorTableW( - LPACCEL, int); -// #ifdef UNICODE -// #... -// #else -alias CreateAcceleratorTableA CreateAcceleratorTable; -// #endif // !UNICODE - -extern(Windows) export BOOL DestroyAcceleratorTable( - HACCEL hAccel); - -extern(Windows) export int CopyAcceleratorTableA( - HACCEL hAccelSrc, - LPACCEL lpAccelDst, - int cAccelEntries); -extern(Windows) export int CopyAcceleratorTableW( - HACCEL hAccelSrc, - LPACCEL lpAccelDst, - int cAccelEntries); -// #ifdef UNICODE -// #... -// #else -alias CopyAcceleratorTableA CopyAcceleratorTable; -// #endif // !UNICODE - -// #ifndef NOMSG - -extern(Windows) export int TranslateAcceleratorA( - HWND hWnd, - HACCEL hAccTable, - LPMSG lpMsg); -extern(Windows) export int TranslateAcceleratorW( - HWND hWnd, - HACCEL hAccTable, - LPMSG lpMsg); -// #ifdef UNICODE -// #... -// #else -alias TranslateAcceleratorA TranslateAccelerator; -// #endif // !UNICODE - -// #endif /* !NOMSG */ - -// #ifndef NOSYSMETRICS - -enum : uint { SM_CXSCREEN = 0 } -enum : uint { SM_CYSCREEN = 1 } -enum : uint { SM_CXVSCROLL = 2 } -enum : uint { SM_CYHSCROLL = 3 } -enum : uint { SM_CYCAPTION = 4 } -enum : uint { SM_CXBORDER = 5 } -enum : uint { SM_CYBORDER = 6 } -enum : uint { SM_CXDLGFRAME = 7 } -enum : uint { SM_CYDLGFRAME = 8 } -enum : uint { SM_CYVTHUMB = 9 } -enum : uint { SM_CXHTHUMB = 10 } -enum : uint { SM_CXICON = 11 } -enum : uint { SM_CYICON = 12 } -enum : uint { SM_CXCURSOR = 13 } -enum : uint { SM_CYCURSOR = 14 } -enum : uint { SM_CYMENU = 15 } -enum : uint { SM_CXFULLSCREEN = 16 } -enum : uint { SM_CYFULLSCREEN = 17 } -enum : uint { SM_CYKANJIWINDOW = 18 } -enum : uint { SM_MOUSEPRESENT = 19 } -enum : uint { SM_CYVSCROLL = 20 } -enum : uint { SM_CXHSCROLL = 21 } -enum : uint { SM_DEBUG = 22 } -enum : uint { SM_SWAPBUTTON = 23 } -enum : uint { SM_RESERVED1 = 24 } -enum : uint { SM_RESERVED2 = 25 } -enum : uint { SM_RESERVED3 = 26 } -enum : uint { SM_RESERVED4 = 27 } -enum : uint { SM_CXMIN = 28 } -enum : uint { SM_CYMIN = 29 } -enum : uint { SM_CXSIZE = 30 } -enum : uint { SM_CYSIZE = 31 } -enum : uint { SM_CXFRAME = 32 } -enum : uint { SM_CYFRAME = 33 } -enum : uint { SM_CXMINTRACK = 34 } -enum : uint { SM_CYMINTRACK = 35 } -enum : uint { SM_CXDOUBLECLK = 36 } -enum : uint { SM_CYDOUBLECLK = 37 } -enum : uint { SM_CXICONSPACING = 38 } -enum : uint { SM_CYICONSPACING = 39 } -enum : uint { SM_MENUDROPALIGNMENT = 40 } -enum : uint { SM_PENWINDOWS = 41 } -enum : uint { SM_DBCSENABLED = 42 } -enum : uint { SM_CMOUSEBUTTONS = 43 } - -// #if(WINVER >= 0x0400) -alias SM_CXDLGFRAME SM_CXFIXEDFRAME; -alias SM_CYDLGFRAME SM_CYFIXEDFRAME; -alias SM_CXFRAME SM_CXSIZEFRAME; -alias SM_CYFRAME SM_CYSIZEFRAME; - -enum : uint { SM_SECURE = 44 } -enum : uint { SM_CXEDGE = 45 } -enum : uint { SM_CYEDGE = 46 } -enum : uint { SM_CXMINSPACING = 47 } -enum : uint { SM_CYMINSPACING = 48 } -enum : uint { SM_CXSMICON = 49 } -enum : uint { SM_CYSMICON = 50 } -enum : uint { SM_CYSMCAPTION = 51 } -enum : uint { SM_CXSMSIZE = 52 } -enum : uint { SM_CYSMSIZE = 53 } -enum : uint { SM_CXMENUSIZE = 54 } -enum : uint { SM_CYMENUSIZE = 55 } -enum : uint { SM_ARRANGE = 56 } -enum : uint { SM_CXMINIMIZED = 57 } -enum : uint { SM_CYMINIMIZED = 58 } -enum : uint { SM_CXMAXTRACK = 59 } -enum : uint { SM_CYMAXTRACK = 60 } -enum : uint { SM_CXMAXIMIZED = 61 } -enum : uint { SM_CYMAXIMIZED = 62 } -enum : uint { SM_NETWORK = 63 } -enum : uint { SM_CLEANBOOT = 67 } -enum : uint { SM_CXDRAG = 68 } -enum : uint { SM_CYDRAG = 69 } -// #endif /* WINVER >= 0x0400 */ -enum : uint { SM_SHOWSOUNDS = 70 } -// #if(WINVER >= 0x0400) -enum : uint { SM_CXMENUCHECK = 71 } -enum : uint { SM_CYMENUCHECK = 72 } -enum : uint { SM_SLOWMACHINE = 73 } -enum : uint { SM_MIDEASTENABLED = 74 } -// #endif /* WINVER >= 0x0400 */ - -// #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400) -enum : uint { SM_MOUSEWHEELPRESENT = 75 } -// #endif -// #if(WINVER >= 0x0500) -enum : uint { SM_XVIRTUALSCREEN = 76 } -enum : uint { SM_YVIRTUALSCREEN = 77 } -enum : uint { SM_CXVIRTUALSCREEN = 78 } -enum : uint { SM_CYVIRTUALSCREEN = 79 } -enum : uint { SM_CMONITORS = 80 } -enum : uint { SM_SAMEDISPLAYFORMAT = 81 } -// #endif /* WINVER >= 0x0500 */ -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { SM_IMMENABLED = 82 } -// #endif /* _WIN32_WINNT >= 0x0500 */ -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { SM_CXFOCUSBORDER = 83 } -enum : uint { SM_CYFOCUSBORDER = 84 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if (WINVER < 0x0500) && (!defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0400)) -// #... -// #else -enum : uint { SM_CMETRICS = 86 } -// #endif - -// #if(WINVER >= 0x0500) -enum : uint { SM_REMOTESESSION = 0x1000 } - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { SM_SHUTTINGDOWN = 0x2000 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export int GetSystemMetrics( - int nIndex); - -// #endif /* !NOSYSMETRICS */ - -// #ifndef NOMENUS - -extern(Windows) export HMENU LoadMenuA( - HINSTANCE hInstance, - LPCSTR lpMenuName); -extern(Windows) export HMENU LoadMenuW( - HINSTANCE hInstance, - LPCWSTR lpMenuName); -// #ifdef UNICODE -// #... -// #else -alias LoadMenuA LoadMenu; -// #endif // !UNICODE - -extern(Windows) export HMENU LoadMenuIndirectA( - MENUTEMPLATEA *lpMenuTemplate); -extern(Windows) export HMENU LoadMenuIndirectW( - MENUTEMPLATEW *lpMenuTemplate); -// #ifdef UNICODE -// #... -// #else -alias LoadMenuIndirectA LoadMenuIndirect; -// #endif // !UNICODE - -extern(Windows) export HMENU GetMenu( - HWND hWnd); - -extern(Windows) export BOOL SetMenu( - HWND hWnd, - HMENU hMenu); - -extern(Windows) export BOOL ChangeMenuA( - HMENU hMenu, - UINT cmd, - LPCSTR lpszNewItem, - UINT cmdInsert, - UINT flags); -extern(Windows) export BOOL ChangeMenuW( - HMENU hMenu, - UINT cmd, - LPCWSTR lpszNewItem, - UINT cmdInsert, - UINT flags); -// #ifdef UNICODE -// #... -// #else -alias ChangeMenuA ChangeMenu; -// #endif // !UNICODE - -extern(Windows) export BOOL HiliteMenuItem( - HWND hWnd, - HMENU hMenu, - UINT uIDHiliteItem, - UINT uHilite); - -extern(Windows) export int GetMenuStringA( - HMENU hMenu, - UINT uIDItem, - LPSTR lpString, - int nMaxCount, - UINT uFlag); -extern(Windows) export int GetMenuStringW( - HMENU hMenu, - UINT uIDItem, - LPWSTR lpString, - int nMaxCount, - UINT uFlag); -// #ifdef UNICODE -// #... -// #else -alias GetMenuStringA GetMenuString; -// #endif // !UNICODE - -extern(Windows) export UINT GetMenuState( - HMENU hMenu, - UINT uId, - UINT uFlags); - -extern(Windows) export BOOL DrawMenuBar( - HWND hWnd); - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { PMB_ACTIVE = 0x00000001 } - -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export HMENU GetSystemMenu( - HWND hWnd, - BOOL bRevert); - -extern(Windows) export HMENU CreateMenu(); - -extern(Windows) export HMENU CreatePopupMenu(); - -extern(Windows) export BOOL DestroyMenu( - HMENU hMenu); - -extern(Windows) export DWORD CheckMenuItem( - HMENU hMenu, - UINT uIDCheckItem, - UINT uCheck); - -extern(Windows) export BOOL EnableMenuItem( - HMENU hMenu, - UINT uIDEnableItem, - UINT uEnable); - -extern(Windows) export HMENU GetSubMenu( - HMENU hMenu, - int nPos); - -extern(Windows) export UINT GetMenuItemID( - HMENU hMenu, - int nPos); - -extern(Windows) export int GetMenuItemCount( - HMENU hMenu); - -extern(Windows) export BOOL InsertMenuA( - HMENU hMenu, - UINT uPosition, - UINT uFlags, - UINT_PTR uIDNewItem, - LPCSTR lpNewItem); -extern(Windows) export BOOL InsertMenuW( - HMENU hMenu, - UINT uPosition, - UINT uFlags, - UINT_PTR uIDNewItem, - LPCWSTR lpNewItem); -// #ifdef UNICODE -// #... -// #else -alias InsertMenuA InsertMenu; -// #endif // !UNICODE - -extern(Windows) export BOOL AppendMenuA( - HMENU hMenu, - UINT uFlags, - UINT_PTR uIDNewItem, - LPCSTR lpNewItem); -extern(Windows) export BOOL AppendMenuW( - HMENU hMenu, - UINT uFlags, - UINT_PTR uIDNewItem, - LPCWSTR lpNewItem); -// #ifdef UNICODE -// #... -// #else -alias AppendMenuA AppendMenu; -// #endif // !UNICODE - -extern(Windows) export BOOL ModifyMenuA( - HMENU hMnu, - UINT uPosition, - UINT uFlags, - UINT_PTR uIDNewItem, - LPCSTR lpNewItem); -extern(Windows) export BOOL ModifyMenuW( - HMENU hMnu, - UINT uPosition, - UINT uFlags, - UINT_PTR uIDNewItem, - LPCWSTR lpNewItem); -// #ifdef UNICODE -// #... -// #else -alias ModifyMenuA ModifyMenu; -// #endif // !UNICODE - -extern(Windows) export BOOL RemoveMenu( - HMENU hMenu, - UINT uPosition, - UINT uFlags); - -extern(Windows) export BOOL DeleteMenu( - HMENU hMenu, - UINT uPosition, - UINT uFlags); - -extern(Windows) export BOOL SetMenuItemBitmaps( - HMENU hMenu, - UINT uPosition, - UINT uFlags, - HBITMAP hBitmapUnchecked, - HBITMAP hBitmapChecked); - -extern(Windows) export LONG GetMenuCheckMarkDimensions(); - -extern(Windows) export BOOL TrackPopupMenu( - HMENU hMenu, - UINT uFlags, - int x, - int y, - int nReserved, - HWND hWnd, - RECT *prcRect); - -// #if(WINVER >= 0x0400) - -enum : uint { MNC_IGNORE = 0 } -enum : uint { MNC_CLOSE = 1 } -enum : uint { MNC_EXECUTE = 2 } -enum : uint { MNC_SELECT = 3 } - -struct tagTPMPARAMS { - UINT cbSize; - RECT rcExclude; -} -alias tagTPMPARAMS TPMPARAMS; - -alias TPMPARAMS* LPTPMPARAMS; - -extern(Windows) export BOOL TrackPopupMenuEx( - HMENU, - UINT, - int, - int, - HWND, - LPTPMPARAMS); -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) - -enum : uint { MNS_NOCHECK = 0x80000000 } -enum : uint { MNS_MODELESS = 0x40000000 } -enum : uint { MNS_DRAGDROP = 0x20000000 } -enum : uint { MNS_AUTODISMISS = 0x10000000 } -enum : uint { MNS_NOTIFYBYPOS = 0x08000000 } -enum : uint { MNS_CHECKORBMP = 0x04000000 } - -enum : uint { MIM_MAXHEIGHT = 0x00000001 } -enum : uint { MIM_BACKGROUND = 0x00000002 } -enum : uint { MIM_HELPID = 0x00000004 } -enum : uint { MIM_MENUDATA = 0x00000008 } -enum : uint { MIM_STYLE = 0x00000010 } -enum : uint { MIM_APPLYTOSUBMENUS = 0x80000000 } - -struct tagMENUINFO { - DWORD cbSize; - DWORD fMask; - DWORD dwStyle; - UINT cyMax; - HBRUSH hbrBack; - DWORD dwContextHelpID; - ULONG_PTR dwMenuData; -} -alias tagMENUINFO MENUINFO; -alias tagMENUINFO* LPMENUINFO; - -alias MENUINFO* LPCMENUINFO; - -extern(Windows) export BOOL GetMenuInfo( - HMENU, - LPMENUINFO); - -extern(Windows) export BOOL SetMenuInfo( - HMENU, - LPCMENUINFO); - -extern(Windows) export BOOL EndMenu(); - -enum : uint { MND_CONTINUE = 0 } -enum : uint { MND_ENDMENU = 1 } - -struct tagMENUGETOBJECTINFO { - DWORD dwFlags; - UINT uPos; - HMENU hmenu; - PVOID riid; - PVOID pvObj; -} -alias tagMENUGETOBJECTINFO MENUGETOBJECTINFO; -alias tagMENUGETOBJECTINFO* PMENUGETOBJECTINFO; - -enum : uint { MNGOF_TOPGAP = 0x00000001 } -enum : uint { MNGOF_BOTTOMGAP = 0x00000002 } - -enum : uint { MNGO_NOINTERFACE = 0x00000000 } -enum : uint { MNGO_NOERROR = 0x00000001 } -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0400) -enum : uint { MIIM_STATE = 0x00000001 } -enum : uint { MIIM_ID = 0x00000002 } -enum : uint { MIIM_SUBMENU = 0x00000004 } -enum : uint { MIIM_CHECKMARKS = 0x00000008 } -enum : uint { MIIM_TYPE = 0x00000010 } -enum : uint { MIIM_DATA = 0x00000020 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -enum : uint { MIIM_STRING = 0x00000040 } -enum : uint { MIIM_BITMAP = 0x00000080 } -enum : uint { MIIM_FTYPE = 0x00000100 } - -const HBITMAP HBMMENU_CALLBACK = cast(HBITMAP)-1; -const HBITMAP HBMMENU_SYSTEM = cast(HBITMAP)1; -const HBITMAP HBMMENU_MBAR_RESTORE = cast(HBITMAP)2; -const HBITMAP HBMMENU_MBAR_MINIMIZE = cast(HBITMAP)3; -const HBITMAP HBMMENU_MBAR_CLOSE = cast(HBITMAP)5; -const HBITMAP HBMMENU_MBAR_CLOSE_D = cast(HBITMAP)6; -const HBITMAP HBMMENU_MBAR_MINIMIZE_D = cast(HBITMAP)7; -const HBITMAP HBMMENU_POPUP_CLOSE = cast(HBITMAP)8; -const HBITMAP HBMMENU_POPUP_RESTORE = cast(HBITMAP)9; -const HBITMAP HBMMENU_POPUP_MAXIMIZE = cast(HBITMAP)10; -const HBITMAP HBMMENU_POPUP_MINIMIZE = cast(HBITMAP)11; -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0400) -struct tagMENUITEMINFOA { - UINT cbSize; - UINT fMask; - UINT fType; - UINT fState; - UINT wID; - HMENU hSubMenu; - HBITMAP hbmpChecked; - HBITMAP hbmpUnchecked; - ULONG_PTR dwItemData; - LPSTR dwTypeData; - UINT cch; -// #if(WINVER >= 0x0500) - HBITMAP hbmpItem; -// #endif /* WINVER >= 0x0500 */ -} -alias tagMENUITEMINFOA MENUITEMINFOA; -alias tagMENUITEMINFOA* LPMENUITEMINFOA; - -struct tagMENUITEMINFOW { - UINT cbSize; - UINT fMask; - UINT fType; - UINT fState; - UINT wID; - HMENU hSubMenu; - HBITMAP hbmpChecked; - HBITMAP hbmpUnchecked; - ULONG_PTR dwItemData; - LPWSTR dwTypeData; - UINT cch; -// #if(WINVER >= 0x0500) - HBITMAP hbmpItem; -// #endif /* WINVER >= 0x0500 */ -} -alias tagMENUITEMINFOW MENUITEMINFOW; -alias tagMENUITEMINFOW* LPMENUITEMINFOW; - -// #ifdef UNICODE -// ... -// #else -alias MENUITEMINFOA MENUITEMINFO; -alias LPMENUITEMINFOA LPMENUITEMINFO; -// #endif // UNICODE -alias MENUITEMINFOA* LPCMENUITEMINFOA; -alias MENUITEMINFOW* LPCMENUITEMINFOW; -// #ifdef UNICODE -// ... -// #else -alias LPCMENUITEMINFOA LPCMENUITEMINFO; -// #endif // UNICODE - -extern(Windows) export BOOL InsertMenuItemA( - HMENU, - UINT, - BOOL, - LPCMENUITEMINFOA); -extern(Windows) export BOOL InsertMenuItemW( - HMENU, - UINT, - BOOL, - LPCMENUITEMINFOW); -// #ifdef UNICODE -// #... -// #else -alias InsertMenuItemA InsertMenuItem; -// #endif // !UNICODE - -extern(Windows) export BOOL GetMenuItemInfoA( - HMENU, - UINT, - BOOL, - LPMENUITEMINFOA); -extern(Windows) export BOOL GetMenuItemInfoW( - HMENU, - UINT, - BOOL, - LPMENUITEMINFOW); -// #ifdef UNICODE -// #... -// #else -alias GetMenuItemInfoA GetMenuItemInfo; -// #endif // !UNICODE - -extern(Windows) export BOOL SetMenuItemInfoA( - HMENU, - UINT, - BOOL, - LPCMENUITEMINFOA); -extern(Windows) export BOOL SetMenuItemInfoW( - HMENU, - UINT, - BOOL, - LPCMENUITEMINFOW); -// #ifdef UNICODE -// #... -// #else -alias SetMenuItemInfoA SetMenuItemInfo; -// #endif // !UNICODE - -enum : uint { GMDI_USEDISABLED = 0x0001 } -enum : uint { GMDI_GOINTOPOPUPS = 0x0002 } - -extern(Windows) export UINT GetMenuDefaultItem(HMENU hMenu, UINT fByPos, UINT gmdiFlags); -extern(Windows) export BOOL SetMenuDefaultItem(HMENU hMenu, UINT uItem, UINT fByPos); - -extern(Windows) export BOOL GetMenuItemRect(HWND hWnd, HMENU hMenu, UINT uItem, LPRECT lprcItem); -extern(Windows) export int MenuItemFromPoint(HWND hWnd, HMENU hMenu, POINT ptScreen); -// #endif /* WINVER >= 0x0400 */ - -enum : uint { TPM_LEFTBUTTON = 0x0000 } -enum : uint { TPM_RIGHTBUTTON = 0x0002 } -enum : uint { TPM_LEFTALIGN = 0x0000 } -enum : uint { TPM_CENTERALIGN = 0x0004 } -enum : uint { TPM_RIGHTALIGN = 0x0008 } -// #if(WINVER >= 0x0400) -enum : uint { TPM_TOPALIGN = 0x0000 } -enum : uint { TPM_VCENTERALIGN = 0x0010 } -enum : uint { TPM_BOTTOMALIGN = 0x0020 } - -enum : uint { TPM_HORIZONTAL = 0x0000 } -enum : uint { TPM_VERTICAL = 0x0040 } -enum : uint { TPM_NONOTIFY = 0x0080 } -enum : uint { TPM_RETURNCMD = 0x0100 } -// #endif /* WINVER >= 0x0400 */ -// #if(WINVER >= 0x0500) -enum : uint { TPM_RECURSE = 0x0001 } -enum : uint { TPM_HORPOSANIMATION = 0x0400 } -enum : uint { TPM_HORNEGANIMATION = 0x0800 } -enum : uint { TPM_VERPOSANIMATION = 0x1000 } -enum : uint { TPM_VERNEGANIMATION = 0x2000 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { TPM_NOANIMATION = 0x4000 } -// #endif /* _WIN32_WINNT >= 0x0500 */ -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { TPM_LAYOUTRTL = 0x8000 } -// #endif /* _WIN32_WINNT >= 0x0501 */ -// #endif /* WINVER >= 0x0500 */ - -// #endif /* !NOMENUS */ - -// #if(WINVER >= 0x0400) - -struct tagDROPSTRUCT { - HWND hwndSource; - HWND hwndSink; - DWORD wFmt; - ULONG_PTR dwData; - POINT ptDrop; - DWORD dwControlData; -} -alias tagDROPSTRUCT DROPSTRUCT; -alias tagDROPSTRUCT* PDROPSTRUCT; -alias tagDROPSTRUCT* LPDROPSTRUCT; - -enum : uint { DOF_EXECUTABLE = 0x8001 } -enum : uint { DOF_DOCUMENT = 0x8002 } -enum : uint { DOF_DIRECTORY = 0x8003 } -enum : uint { DOF_MULTIPLE = 0x8004 } -enum : uint { DOF_PROGMAN = 0x0001 } -enum : uint { DOF_SHELLDATA = 0x0002 } - -enum : uint { DO_DROPFILE = 0x454C4946 } -enum : uint { DO_PRINTFILE = 0x544E5250 } - -extern(Windows) export DWORD DragObject( - HWND, - HWND, - UINT, - ULONG_PTR, - HCURSOR); - -extern(Windows) export BOOL DragDetect( - HWND, - POINT); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL DrawIcon( - HDC hDC, - int X, - int Y, - HICON hIcon); - -// #ifndef NODRAWTEXT - -enum : uint { DT_TOP = 0x00000000 } -enum : uint { DT_LEFT = 0x00000000 } -enum : uint { DT_CENTER = 0x00000001 } -enum : uint { DT_RIGHT = 0x00000002 } -enum : uint { DT_VCENTER = 0x00000004 } -enum : uint { DT_BOTTOM = 0x00000008 } -enum : uint { DT_WORDBREAK = 0x00000010 } -enum : uint { DT_SINGLELINE = 0x00000020 } -enum : uint { DT_EXPANDTABS = 0x00000040 } -enum : uint { DT_TABSTOP = 0x00000080 } -enum : uint { DT_NOCLIP = 0x00000100 } -enum : uint { DT_EXTERNALLEADING = 0x00000200 } -enum : uint { DT_CALCRECT = 0x00000400 } -enum : uint { DT_NOPREFIX = 0x00000800 } -enum : uint { DT_INTERNAL = 0x00001000 } - -// #if(WINVER >= 0x0400) -enum : uint { DT_EDITCONTROL = 0x00002000 } -enum : uint { DT_PATH_ELLIPSIS = 0x00004000 } -enum : uint { DT_END_ELLIPSIS = 0x00008000 } -enum : uint { DT_MODIFYSTRING = 0x00010000 } -enum : uint { DT_RTLREADING = 0x00020000 } -enum : uint { DT_WORD_ELLIPSIS = 0x00040000 } -// #if(WINVER >= 0x0500) -enum : uint { DT_NOFULLWIDTHCHARBREAK = 0x00080000 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { DT_HIDEPREFIX = 0x00100000 } -enum : uint { DT_PREFIXONLY = 0x00200000 } -// #endif /* _WIN32_WINNT >= 0x0500 */ -// #endif /* WINVER >= 0x0500 */ - -struct tagDRAWTEXTPARAMS { - UINT cbSize; - int iTabLength; - int iLeftMargin; - int iRightMargin; - UINT uiLengthDrawn; -} -alias tagDRAWTEXTPARAMS DRAWTEXTPARAMS; -alias tagDRAWTEXTPARAMS* LPDRAWTEXTPARAMS; - -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export int DrawTextA( - HDC hDC, - LPCSTR lpString, - int nCount, - LPRECT lpRect, - UINT uFormat); -extern(Windows) export int DrawTextW( - HDC hDC, - LPCWSTR lpString, - int nCount, - LPRECT lpRect, - UINT uFormat); -// #ifdef UNICODE -// #... -// #else -alias DrawTextA DrawText; -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export int DrawTextExA( - HDC, - LPSTR, - int, - LPRECT, - UINT, - LPDRAWTEXTPARAMS); -extern(Windows) export int DrawTextExW( - HDC, - LPWSTR, - int, - LPRECT, - UINT, - LPDRAWTEXTPARAMS); -// #ifdef UNICODE -// #... -// #else -alias DrawTextExA DrawTextEx; -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ - -// #endif /* !NODRAWTEXT */ - -extern(Windows) export BOOL GrayStringA( - HDC hDC, - HBRUSH hBrush, - GRAYSTRINGPROC lpOutputFunc, - LPARAM lpData, - int nCount, - int X, - int Y, - int nWidth, - int nHeight); -extern(Windows) export BOOL GrayStringW( - HDC hDC, - HBRUSH hBrush, - GRAYSTRINGPROC lpOutputFunc, - LPARAM lpData, - int nCount, - int X, - int Y, - int nWidth, - int nHeight); -// #ifdef UNICODE -// #... -// #else -alias GrayStringA GrayString; -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) - -enum : uint { DST_COMPLEX = 0x0000 } -enum : uint { DST_TEXT = 0x0001 } -enum : uint { DST_PREFIXTEXT = 0x0002 } -enum : uint { DST_ICON = 0x0003 } -enum : uint { DST_BITMAP = 0x0004 } - -enum : uint { DSS_NORMAL = 0x0000 } -enum : uint { DSS_UNION = 0x0010 } -enum : uint { DSS_DISABLED = 0x0020 } -enum : uint { DSS_MONO = 0x0080 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { DSS_HIDEPREFIX = 0x0200 } -enum : uint { DSS_PREFIXONLY = 0x0400 } -// #endif /* _WIN32_WINNT >= 0x0500 */ -enum : uint { DSS_RIGHT = 0x8000 } - -extern(Windows) export BOOL DrawStateA( - HDC, - HBRUSH, - DRAWSTATEPROC, - LPARAM, - WPARAM, - int, - int, - int, - int, - UINT); -extern(Windows) export BOOL DrawStateW( - HDC, - HBRUSH, - DRAWSTATEPROC, - LPARAM, - WPARAM, - int, - int, - int, - int, - UINT); -// #ifdef UNICODE -// #... -// #else -alias DrawStateA DrawState; -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export LONG TabbedTextOutA( - HDC hDC, - int X, - int Y, - LPCSTR lpString, - int nCount, - int nTabPositions, - INT *lpnTabStopPositions, - int nTabOrigin); -extern(Windows) export LONG TabbedTextOutW( - HDC hDC, - int X, - int Y, - LPCWSTR lpString, - int nCount, - int nTabPositions, - INT *lpnTabStopPositions, - int nTabOrigin); -// #ifdef UNICODE -// #... -// #else -alias TabbedTextOutA TabbedTextOut; -// #endif // !UNICODE - -extern(Windows) export DWORD GetTabbedTextExtentA( - HDC hDC, - LPCSTR lpString, - int nCount, - int nTabPositions, - INT *lpnTabStopPositions); -extern(Windows) export DWORD GetTabbedTextExtentW( - HDC hDC, - LPCWSTR lpString, - int nCount, - int nTabPositions, - INT *lpnTabStopPositions); -// #ifdef UNICODE -// #... -// #else -alias GetTabbedTextExtentA GetTabbedTextExtent; -// #endif // !UNICODE - -extern(Windows) export BOOL UpdateWindow( - HWND hWnd); - -extern(Windows) export HWND SetActiveWindow( - HWND hWnd); - -extern(Windows) export HWND GetForegroundWindow(); - -// #if(WINVER >= 0x0400) -extern(Windows) export BOOL PaintDesktop( - HDC hdc); - -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL SetForegroundWindow( - HWND hWnd); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL AllowSetForegroundWindow( - DWORD dwProcessId); - -enum : DWORD { ASFW_ANY = cast(DWORD)-1 } - -extern(Windows) export BOOL LockSetForegroundWindow( - UINT uLockCode); - -enum : uint { LSFW_LOCK = 1 } -enum : uint { LSFW_UNLOCK = 2 } - -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export HWND WindowFromDC( - HDC hDC); - -extern(Windows) export HDC GetDC( - HWND hWnd); - -extern(Windows) export HDC GetDCEx( - HWND hWnd, - HRGN hrgnClip, - DWORD flags); - -enum : uint { DCX_WINDOW = 0x00000001 } -enum : uint { DCX_CACHE = 0x00000002 } -enum : uint { DCX_NORESETATTRS = 0x00000004 } -enum : uint { DCX_CLIPCHILDREN = 0x00000008 } -enum : uint { DCX_CLIPSIBLINGS = 0x00000010 } -enum : uint { DCX_PARENTCLIP = 0x00000020 } -enum : uint { DCX_EXCLUDERGN = 0x00000040 } -enum : uint { DCX_INTERSECTRGN = 0x00000080 } -enum : uint { DCX_EXCLUDEUPDATE = 0x00000100 } -enum : uint { DCX_INTERSECTUPDATE = 0x00000200 } -enum : uint { DCX_LOCKWINDOWUPDATE = 0x00000400 } - -enum : uint { DCX_VALIDATE = 0x00200000 } - -extern(Windows) export HDC GetWindowDC( - HWND hWnd); - -extern(Windows) export int ReleaseDC( - HWND hWnd, - HDC hDC); - -extern(Windows) export HDC BeginPaint( - HWND hWnd, - LPPAINTSTRUCT lpPaint); - -extern(Windows) export BOOL EndPaint( - HWND hWnd, - PAINTSTRUCT *lpPaint); - -extern(Windows) export BOOL GetUpdateRect( - HWND hWnd, - LPRECT lpRect, - BOOL bErase); - -extern(Windows) export int GetUpdateRgn( - HWND hWnd, - HRGN hRgn, - BOOL bErase); - -extern(Windows) export int SetWindowRgn( - HWND hWnd, - HRGN hRgn, - BOOL bRedraw); - -extern(Windows) export int GetWindowRgn( - HWND hWnd, - HRGN hRgn); - -// #if(_WIN32_WINNT >= 0x0501) - -extern(Windows) export int GetWindowRgnBox( - HWND hWnd, - LPRECT lprc); - -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export int ExcludeUpdateRgn( - HDC hDC, - HWND hWnd); - -extern(Windows) export BOOL InvalidateRect( - HWND hWnd, - RECT *lpRect, - BOOL bErase); - -extern(Windows) export BOOL ValidateRect( - HWND hWnd, - RECT *lpRect); - -extern(Windows) export BOOL InvalidateRgn( - HWND hWnd, - HRGN hRgn, - BOOL bErase); - -extern(Windows) export BOOL ValidateRgn( - HWND hWnd, - HRGN hRgn); - -extern(Windows) export BOOL RedrawWindow( - HWND hWnd, - RECT *lprcUpdate, - HRGN hrgnUpdate, - UINT flags); - -enum : uint { RDW_INVALIDATE = 0x0001 } -enum : uint { RDW_INTERNALPAINT = 0x0002 } -enum : uint { RDW_ERASE = 0x0004 } - -enum : uint { RDW_VALIDATE = 0x0008 } -enum : uint { RDW_NOINTERNALPAINT = 0x0010 } -enum : uint { RDW_NOERASE = 0x0020 } - -enum : uint { RDW_NOCHILDREN = 0x0040 } -enum : uint { RDW_ALLCHILDREN = 0x0080 } - -enum : uint { RDW_UPDATENOW = 0x0100 } -enum : uint { RDW_ERASENOW = 0x0200 } - -enum : uint { RDW_FRAME = 0x0400 } -enum : uint { RDW_NOFRAME = 0x0800 } - -extern(Windows) export BOOL LockWindowUpdate( - HWND hWndLock); - -extern(Windows) export BOOL ScrollWindow( - HWND hWnd, - int XAmount, - int YAmount, - RECT *lpRect, - RECT *lpClipRect); - -extern(Windows) export BOOL ScrollDC( - HDC hDC, - int dx, - int dy, - RECT *lprcScroll, - RECT *lprcClip, - HRGN hrgnUpdate, - LPRECT lprcUpdate); - -extern(Windows) export int ScrollWindowEx( - HWND hWnd, - int dx, - int dy, - RECT *prcScroll, - RECT *prcClip, - HRGN hrgnUpdate, - LPRECT prcUpdate, - UINT flags); - -enum : uint { SW_SCROLLCHILDREN = 0x0001 } -enum : uint { SW_INVALIDATE = 0x0002 } -enum : uint { SW_ERASE = 0x0004 } -// #if(WINVER >= 0x0500) -enum : uint { SW_SMOOTHSCROLL = 0x0010 } -// #endif /* WINVER >= 0x0500 */ - -// #ifndef NOSCROLL - -extern(Windows) export int SetScrollPos( - HWND hWnd, - int nBar, - int nPos, - BOOL bRedraw); - -extern(Windows) export int GetScrollPos( - HWND hWnd, - int nBar); - -extern(Windows) export BOOL SetScrollRange( - HWND hWnd, - int nBar, - int nMinPos, - int nMaxPos, - BOOL bRedraw); - -extern(Windows) export BOOL GetScrollRange( - HWND hWnd, - int nBar, - LPINT lpMinPos, - LPINT lpMaxPos); - -extern(Windows) export BOOL ShowScrollBar( - HWND hWnd, - int wBar, - BOOL bShow); - -extern(Windows) export BOOL EnableScrollBar( - HWND hWnd, - UINT wSBflags, - UINT wArrows); - -enum : uint { ESB_ENABLE_BOTH = 0x0000 } -enum : uint { ESB_DISABLE_BOTH = 0x0003 } - -enum : uint { ESB_DISABLE_LEFT = 0x0001 } -enum : uint { ESB_DISABLE_RIGHT = 0x0002 } - -enum : uint { ESB_DISABLE_UP = 0x0001 } -enum : uint { ESB_DISABLE_DOWN = 0x0002 } - -alias ESB_DISABLE_LEFT ESB_DISABLE_LTUP; -alias ESB_DISABLE_RIGHT ESB_DISABLE_RTDN; - -// #endif /* !NOSCROLL */ - -extern(Windows) export BOOL SetPropA( - HWND hWnd, - LPCSTR lpString, - HANDLE hData); -extern(Windows) export BOOL SetPropW( - HWND hWnd, - LPCWSTR lpString, - HANDLE hData); -// #ifdef UNICODE -// #... -// #else -alias SetPropA SetProp; -// #endif // !UNICODE - -extern(Windows) export HANDLE GetPropA( - HWND hWnd, - LPCSTR lpString); -extern(Windows) export HANDLE GetPropW( - HWND hWnd, - LPCWSTR lpString); -// #ifdef UNICODE -// #... -// #else -alias GetPropA GetProp; -// #endif // !UNICODE - -extern(Windows) export HANDLE RemovePropA( - HWND hWnd, - LPCSTR lpString); -extern(Windows) export HANDLE RemovePropW( - HWND hWnd, - LPCWSTR lpString); -// #ifdef UNICODE -// #... -// #else -alias RemovePropA RemoveProp; -// #endif // !UNICODE - -extern(Windows) export int EnumPropsExA( - HWND hWnd, - PROPENUMPROCEXA lpEnumFunc, - LPARAM lParam); -extern(Windows) export int EnumPropsExW( - HWND hWnd, - PROPENUMPROCEXW lpEnumFunc, - LPARAM lParam); -// #ifdef UNICODE -// #... -// #else -alias EnumPropsExA EnumPropsEx; -// #endif // !UNICODE - -extern(Windows) export int EnumPropsA( - HWND hWnd, - PROPENUMPROCA lpEnumFunc); -extern(Windows) export int EnumPropsW( - HWND hWnd, - PROPENUMPROCW lpEnumFunc); -// #ifdef UNICODE -// #... -// #else -alias EnumPropsA EnumProps; -// #endif // !UNICODE - -extern(Windows) export BOOL SetWindowTextA( - HWND hWnd, - LPCSTR lpString); -extern(Windows) export BOOL SetWindowTextW( - HWND hWnd, - LPCWSTR lpString); -// #ifdef UNICODE -// #... -// #else -alias SetWindowTextA SetWindowText; -// #endif // !UNICODE - -extern(Windows) export int GetWindowTextA( - HWND hWnd, - LPSTR lpString, - int nMaxCount); -extern(Windows) export int GetWindowTextW( - HWND hWnd, - LPWSTR lpString, - int nMaxCount); -// #ifdef UNICODE -// #... -// #else -alias GetWindowTextA GetWindowText; -// #endif // !UNICODE - -extern(Windows) export int GetWindowTextLengthA( - HWND hWnd); -extern(Windows) export int GetWindowTextLengthW( - HWND hWnd); -// #ifdef UNICODE -// #... -// #else -alias GetWindowTextLengthA GetWindowTextLength; -// #endif // !UNICODE - -extern(Windows) export BOOL GetClientRect( - HWND hWnd, - LPRECT lpRect); - -extern(Windows) export BOOL GetWindowRect( - HWND hWnd, - LPRECT lpRect); - -extern(Windows) export BOOL AdjustWindowRect( - LPRECT lpRect, - DWORD dwStyle, - BOOL bMenu); - -extern(Windows) export BOOL AdjustWindowRectEx( - LPRECT lpRect, - DWORD dwStyle, - BOOL bMenu, - DWORD dwExStyle); - -// #if(WINVER >= 0x0400) -enum : uint { HELPINFO_WINDOW = 0x0001 } -enum : uint { HELPINFO_MENUITEM = 0x0002 } -struct tagHELPINFO { - UINT cbSize; - int iContextType; - int iCtrlId; - HANDLE hItemHandle; - DWORD_PTR dwContextId; - POINT MousePos; -} -alias tagHELPINFO HELPINFO; -alias tagHELPINFO* LPHELPINFO; - -extern(Windows) export BOOL SetWindowContextHelpId( - HWND, - DWORD); - -extern(Windows) export DWORD GetWindowContextHelpId( - HWND); - -extern(Windows) export BOOL SetMenuContextHelpId( - HMENU, - DWORD); - -extern(Windows) export DWORD GetMenuContextHelpId( - HMENU); - -// #endif /* WINVER >= 0x0400 */ - -// #ifndef NOMB - -enum : uint { MB_OK = 0x00000000 } -enum : uint { MB_OKCANCEL = 0x00000001 } -enum : uint { MB_ABORTRETRYIGNORE = 0x00000002 } -enum : uint { MB_YESNOCANCEL = 0x00000003 } -enum : uint { MB_YESNO = 0x00000004 } -enum : uint { MB_RETRYCANCEL = 0x00000005 } -// #if(WINVER >= 0x0500) -enum : uint { MB_CANCELTRYCONTINUE = 0x00000006 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { MB_ICONHAND = 0x00000010 } -enum : uint { MB_ICONQUESTION = 0x00000020 } -enum : uint { MB_ICONEXCLAMATION = 0x00000030 } -enum : uint { MB_ICONASTERISK = 0x00000040 } - -// #if(WINVER >= 0x0400) -enum : uint { MB_USERICON = 0x00000080 } -alias MB_ICONEXCLAMATION MB_ICONWARNING; -alias MB_ICONHAND MB_ICONERROR; -// #endif /* WINVER >= 0x0400 */ - -alias MB_ICONASTERISK MB_ICONINFORMATION; -alias MB_ICONHAND MB_ICONSTOP; - -enum : uint { MB_DEFBUTTON1 = 0x00000000 } -enum : uint { MB_DEFBUTTON2 = 0x00000100 } -enum : uint { MB_DEFBUTTON3 = 0x00000200 } -// #if(WINVER >= 0x0400) -enum : uint { MB_DEFBUTTON4 = 0x00000300 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { MB_APPLMODAL = 0x00000000 } -enum : uint { MB_SYSTEMMODAL = 0x00001000 } -enum : uint { MB_TASKMODAL = 0x00002000 } -// #if(WINVER >= 0x0400) -enum : uint { MB_HELP = 0x00004000 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { MB_NOFOCUS = 0x00008000 } -enum : uint { MB_SETFOREGROUND = 0x00010000 } -enum : uint { MB_DEFAULT_DESKTOP_ONLY = 0x00020000 } - -// #if(WINVER >= 0x0400) -enum : uint { MB_TOPMOST = 0x00040000 } -enum : uint { MB_RIGHT = 0x00080000 } -enum : uint { MB_RTLREADING = 0x00100000 } - -// #endif /* WINVER >= 0x0400 */ - -// #ifdef _WIN32_WINNT -// #if (_WIN32_WINNT >= 0x0400) -enum : uint { MB_SERVICE_NOTIFICATION = 0x00200000 } -// #else -// #... -// #endif -enum : uint { MB_SERVICE_NOTIFICATION_NT3X = 0x00040000 } -// #endif - -enum : uint { MB_TYPEMASK = 0x0000000F } -enum : uint { MB_ICONMASK = 0x000000F0 } -enum : uint { MB_DEFMASK = 0x00000F00 } -enum : uint { MB_MODEMASK = 0x00003000 } -enum : uint { MB_MISCMASK = 0x0000C000 } - -extern(Windows) export int MessageBoxA( - HWND hWnd, - LPCSTR lpText, - LPCSTR lpCaption, - UINT uType); -extern(Windows) export int MessageBoxW( - HWND hWnd, - LPCWSTR lpText, - LPCWSTR lpCaption, - UINT uType); -// #ifdef UNICODE -// #... -// #else -alias MessageBoxA MessageBox; -// #endif // !UNICODE - -extern(Windows) export int MessageBoxExA( - HWND hWnd, - LPCSTR lpText, - LPCSTR lpCaption, - UINT uType, - WORD wLanguageId); -extern(Windows) export int MessageBoxExW( - HWND hWnd, - LPCWSTR lpText, - LPCWSTR lpCaption, - UINT uType, - WORD wLanguageId); -// #ifdef UNICODE -// #... -// #else -alias MessageBoxExA MessageBoxEx; -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) - -extern(Windows) alias void function(LPHELPINFO lpHelpInfo) MSGBOXCALLBACK; - -struct tagMSGBOXPARAMSA { - UINT cbSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCSTR lpszText; - LPCSTR lpszCaption; - DWORD dwStyle; - LPCSTR lpszIcon; - DWORD_PTR dwContextHelpId; - MSGBOXCALLBACK lpfnMsgBoxCallback; - DWORD dwLanguageId; -} -alias tagMSGBOXPARAMSA MSGBOXPARAMSA; -alias tagMSGBOXPARAMSA* PMSGBOXPARAMSA; -alias tagMSGBOXPARAMSA* LPMSGBOXPARAMSA; - -struct tagMSGBOXPARAMSW { - UINT cbSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCWSTR lpszText; - LPCWSTR lpszCaption; - DWORD dwStyle; - LPCWSTR lpszIcon; - DWORD_PTR dwContextHelpId; - MSGBOXCALLBACK lpfnMsgBoxCallback; - DWORD dwLanguageId; -} -alias tagMSGBOXPARAMSW MSGBOXPARAMSW; -alias tagMSGBOXPARAMSW* PMSGBOXPARAMSW; -alias tagMSGBOXPARAMSW* LPMSGBOXPARAMSW; - -// #ifdef UNICODE -// ... -// #else -alias MSGBOXPARAMSA MSGBOXPARAMS; -alias PMSGBOXPARAMSA PMSGBOXPARAMS; -alias LPMSGBOXPARAMSA LPMSGBOXPARAMS; -// #endif // UNICODE - -extern(Windows) export int MessageBoxIndirectA( - MSGBOXPARAMSA *); -extern(Windows) export int MessageBoxIndirectW( - MSGBOXPARAMSW *); -// #ifdef UNICODE -// #... -// #else -alias MessageBoxIndirectA MessageBoxIndirect; -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL MessageBeep( - UINT uType); - -// #endif /* !NOMB */ - -extern(Windows) export int ShowCursor( - BOOL bShow); - -extern(Windows) export BOOL SetCursorPos( - int X, - int Y); - -extern(Windows) export HCURSOR SetCursor( - HCURSOR hCursor); - -extern(Windows) export BOOL GetCursorPos( - LPPOINT lpPoint); - -extern(Windows) export BOOL ClipCursor( - RECT *lpRect); - -extern(Windows) export BOOL GetClipCursor( - LPRECT lpRect); - -extern(Windows) export HCURSOR GetCursor(); - -extern(Windows) export BOOL CreateCaret( - HWND hWnd, - HBITMAP hBitmap, - int nWidth, - int nHeight); - -extern(Windows) export UINT GetCaretBlinkTime(); - -extern(Windows) export BOOL SetCaretBlinkTime( - UINT uMSeconds); - -extern(Windows) export BOOL DestroyCaret(); - -extern(Windows) export BOOL HideCaret( - HWND hWnd); - -extern(Windows) export BOOL ShowCaret( - HWND hWnd); - -extern(Windows) export BOOL SetCaretPos( - int X, - int Y); - -extern(Windows) export BOOL GetCaretPos( - LPPOINT lpPoint); - -extern(Windows) export BOOL ClientToScreen( - HWND hWnd, - LPPOINT lpPoint); - -extern(Windows) export BOOL ScreenToClient( - HWND hWnd, - LPPOINT lpPoint); - -extern(Windows) export int MapWindowPoints( - HWND hWndFrom, - HWND hWndTo, - LPPOINT lpPoints, - UINT cPoints); - -extern(Windows) export HWND WindowFromPoint( - POINT Point); - -extern(Windows) export HWND ChildWindowFromPoint( - HWND hWndParent, - POINT Point); - -// #if(WINVER >= 0x0400) -enum : uint { CWP_ALL = 0x0000 } -enum : uint { CWP_SKIPINVISIBLE = 0x0001 } -enum : uint { CWP_SKIPDISABLED = 0x0002 } -enum : uint { CWP_SKIPTRANSPARENT = 0x0004 } - -extern(Windows) export HWND ChildWindowFromPointEx(HWND, POINT, UINT); -// #endif /* WINVER >= 0x0400 */ - -// #ifndef NOCOLOR - -enum : uint { CTLCOLOR_MSGBOX = 0 } -enum : uint { CTLCOLOR_EDIT = 1 } -enum : uint { CTLCOLOR_LISTBOX = 2 } -enum : uint { CTLCOLOR_BTN = 3 } -enum : uint { CTLCOLOR_DLG = 4 } -enum : uint { CTLCOLOR_SCROLLBAR = 5 } -enum : uint { CTLCOLOR_STATIC = 6 } -enum : uint { CTLCOLOR_MAX = 7 } - -enum : uint { COLOR_SCROLLBAR = 0 } -enum : uint { COLOR_BACKGROUND = 1 } -enum : uint { COLOR_ACTIVECAPTION = 2 } -enum : uint { COLOR_INACTIVECAPTION = 3 } -enum : uint { COLOR_MENU = 4 } -enum : uint { COLOR_WINDOW = 5 } -enum : uint { COLOR_WINDOWFRAME = 6 } -enum : uint { COLOR_MENUTEXT = 7 } -enum : uint { COLOR_WINDOWTEXT = 8 } -enum : uint { COLOR_CAPTIONTEXT = 9 } -enum : uint { COLOR_ACTIVEBORDER = 10 } -enum : uint { COLOR_INACTIVEBORDER = 11 } -enum : uint { COLOR_APPWORKSPACE = 12 } -enum : uint { COLOR_HIGHLIGHT = 13 } -enum : uint { COLOR_HIGHLIGHTTEXT = 14 } -enum : uint { COLOR_BTNFACE = 15 } -enum : uint { COLOR_BTNSHADOW = 16 } -enum : uint { COLOR_GRAYTEXT = 17 } -enum : uint { COLOR_BTNTEXT = 18 } -enum : uint { COLOR_INACTIVECAPTIONTEXT = 19 } -enum : uint { COLOR_BTNHIGHLIGHT = 20 } - -// #if(WINVER >= 0x0400) -enum : uint { COLOR_3DDKSHADOW = 21 } -enum : uint { COLOR_3DLIGHT = 22 } -enum : uint { COLOR_INFOTEXT = 23 } -enum : uint { COLOR_INFOBK = 24 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -enum : uint { COLOR_HOTLIGHT = 26 } -enum : uint { COLOR_GRADIENTACTIVECAPTION = 27 } -enum : uint { COLOR_GRADIENTINACTIVECAPTION = 28 } -// #if(WINVER >= 0x0501) -enum : uint { COLOR_MENUHILIGHT = 29 } -enum : uint { COLOR_MENUBAR = 30 } -// #endif /* WINVER >= 0x0501 */ -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0400) -alias COLOR_BACKGROUND COLOR_DESKTOP; -alias COLOR_BTNFACE COLOR_3DFACE; -alias COLOR_BTNSHADOW COLOR_3DSHADOW; -alias COLOR_BTNHIGHLIGHT COLOR_3DHIGHLIGHT; -alias COLOR_BTNHIGHLIGHT COLOR_3DHILIGHT; -alias COLOR_BTNHIGHLIGHT COLOR_BTNHILIGHT; -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export DWORD GetSysColor( - int nIndex); - -// #if(WINVER >= 0x0400) -extern(Windows) export HBRUSH GetSysColorBrush( - int nIndex); - -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL SetSysColors( - int cElements, - INT * lpaElements, - COLORREF * lpaRgbValues); - -// #endif /* !NOCOLOR */ - -extern(Windows) export BOOL DrawFocusRect( - HDC hDC, - RECT * lprc); - -extern(Windows) export int FillRect( - HDC hDC, - RECT *lprc, - HBRUSH hbr); - -extern(Windows) export int FrameRect( - HDC hDC, - RECT *lprc, - HBRUSH hbr); - -extern(Windows) export BOOL InvertRect( - HDC hDC, - RECT *lprc); - -extern(Windows) export BOOL SetRect( - LPRECT lprc, - int xLeft, - int yTop, - int xRight, - int yBottom); - -extern(Windows) export BOOL SetRectEmpty( - LPRECT lprc); - -extern(Windows) export BOOL CopyRect( - LPRECT lprcDst, - RECT *lprcSrc); - -extern(Windows) export BOOL InflateRect( - LPRECT lprc, - int dx, - int dy); - -extern(Windows) export BOOL IntersectRect( - LPRECT lprcDst, - RECT *lprcSrc1, - RECT *lprcSrc2); - -extern(Windows) export BOOL UnionRect( - LPRECT lprcDst, - RECT *lprcSrc1, - RECT *lprcSrc2); - -extern(Windows) export BOOL SubtractRect( - LPRECT lprcDst, - RECT *lprcSrc1, - RECT *lprcSrc2); - -extern(Windows) export BOOL OffsetRect( - LPRECT lprc, - int dx, - int dy); - -extern(Windows) export BOOL IsRectEmpty( - RECT *lprc); - -extern(Windows) export BOOL EqualRect( - RECT *lprc1, - RECT *lprc2); - -extern(Windows) export BOOL PtInRect( - RECT *lprc, - POINT pt); - -// #ifndef NOWINOFFSETS - -extern(Windows) export WORD GetWindowWord( - HWND hWnd, - int nIndex); - -extern(Windows) export WORD SetWindowWord( - HWND hWnd, - int nIndex, - WORD wNewWord); - -extern(Windows) export LONG GetWindowLongA( - HWND hWnd, - int nIndex); -extern(Windows) export LONG GetWindowLongW( - HWND hWnd, - int nIndex); -// #ifdef UNICODE -// #... -// #else -alias GetWindowLongA GetWindowLong; -// #endif // !UNICODE - -extern(Windows) export LONG SetWindowLongA( - HWND hWnd, - int nIndex, - LONG dwNewLong); -extern(Windows) export LONG SetWindowLongW( - HWND hWnd, - int nIndex, - LONG dwNewLong); -// #ifdef UNICODE -// #... -// #else -alias SetWindowLongA SetWindowLong; -// #endif // !UNICODE - -// #ifdef _WIN64 - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #else /* _WIN64 */ - -alias GetWindowLongA GetWindowLongPtrA; -alias GetWindowLongW GetWindowLongPtrW; -// #ifdef UNICODE -// #... -// #else -alias GetWindowLongPtrA GetWindowLongPtr; -// #endif // !UNICODE - -alias SetWindowLongA SetWindowLongPtrA; -alias SetWindowLongW SetWindowLongPtrW; -// #ifdef UNICODE -// #... -// #else -alias SetWindowLongPtrA SetWindowLongPtr; -// #endif // !UNICODE - -// #endif /* _WIN64 */ - -extern(Windows) export WORD GetClassWord( - HWND hWnd, - int nIndex); - -extern(Windows) export WORD SetClassWord( - HWND hWnd, - int nIndex, - WORD wNewWord); - -extern(Windows) export DWORD GetClassLongA( - HWND hWnd, - int nIndex); -extern(Windows) export DWORD GetClassLongW( - HWND hWnd, - int nIndex); -// #ifdef UNICODE -// #... -// #else -alias GetClassLongA GetClassLong; -// #endif // !UNICODE - -extern(Windows) export DWORD SetClassLongA( - HWND hWnd, - int nIndex, - LONG dwNewLong); -extern(Windows) export DWORD SetClassLongW( - HWND hWnd, - int nIndex, - LONG dwNewLong); -// #ifdef UNICODE -// #... -// #else -alias SetClassLongA SetClassLong; -// #endif // !UNICODE - -// #ifdef _WIN64 - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #else /* _WIN64 */ - -alias GetClassLongA GetClassLongPtrA; -alias GetClassLongW GetClassLongPtrW; -// #ifdef UNICODE -// #... -// #else -alias GetClassLongPtrA GetClassLongPtr; -// #endif // !UNICODE - -alias SetClassLongA SetClassLongPtrA; -alias SetClassLongW SetClassLongPtrW; -// #ifdef UNICODE -// #... -// #else -alias SetClassLongPtrA SetClassLongPtr; -// #endif // !UNICODE - -// #endif /* _WIN64 */ - -// #endif /* !NOWINOFFSETS */ - -// #if(WINVER >= 0x0500) -extern(Windows) export BOOL GetProcessDefaultLayout( - DWORD *pdwDefaultLayout); - -extern(Windows) export BOOL SetProcessDefaultLayout( - DWORD dwDefaultLayout); -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export HWND GetDesktopWindow(); - -extern(Windows) export HWND GetParent( - HWND hWnd); - -extern(Windows) export HWND SetParent( - HWND hWndChild, - HWND hWndNewParent); - -extern(Windows) export BOOL EnumChildWindows( - HWND hWndParent, - WNDENUMPROC lpEnumFunc, - LPARAM lParam); - -extern(Windows) export HWND FindWindowA( - LPCSTR lpClassName, - LPCSTR lpWindowName); -extern(Windows) export HWND FindWindowW( - LPCWSTR lpClassName, - LPCWSTR lpWindowName); -// #ifdef UNICODE -// #... -// #else -alias FindWindowA FindWindow; -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export HWND FindWindowExA(HWND, HWND, LPCSTR, LPCSTR); -extern(Windows) export HWND FindWindowExW(HWND, HWND, LPCWSTR, LPCWSTR); -// #ifdef UNICODE -// #... -// #else -alias FindWindowExA FindWindowEx; -// #endif // !UNICODE - -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL EnumWindows( - WNDENUMPROC lpEnumFunc, - LPARAM lParam); - -extern(Windows) export BOOL EnumThreadWindows( - DWORD dwThreadId, - WNDENUMPROC lpfn, - LPARAM lParam); - -// #define EnumTaskWindows(hTask, lpfn, lParam) EnumThreadWindows(HandleToUlong(hTask), lpfn, lParam) - -extern(Windows) export int GetClassNameA( - HWND hWnd, - LPSTR lpClassName, - int nMaxCount); -extern(Windows) export int GetClassNameW( - HWND hWnd, - LPWSTR lpClassName, - int nMaxCount); -// #ifdef UNICODE -// #... -// #else -alias GetClassNameA GetClassName; -// #endif // !UNICODE - -extern(Windows) export HWND GetTopWindow( - HWND hWnd); - -// #define GetNextWindow(hWnd, wCmd) GetWindow(hWnd, wCmd) -// #define GetSysModalWindow() (NULL) -// #define SetSysModalWindow(hWnd) (NULL) - -extern(Windows) export DWORD GetWindowThreadProcessId( - HWND hWnd, - LPDWORD lpdwProcessId); - -// #if(_WIN32_WINNT >= 0x0501) -extern(Windows) export BOOL IsGUIThread( - BOOL bConvert); - -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #define GetWindowTask(hWnd) ((HANDLE)(DWORD_PTR)GetWindowThreadProcessId(hWnd, NULL)) - -extern(Windows) export HWND GetLastActivePopup( - HWND hWnd); - -enum : uint { GW_HWNDFIRST = 0 } -enum : uint { GW_HWNDLAST = 1 } -enum : uint { GW_HWNDNEXT = 2 } -enum : uint { GW_HWNDPREV = 3 } -enum : uint { GW_OWNER = 4 } -enum : uint { GW_CHILD = 5 } -// #if(WINVER <= 0x0400) -// #... -// #else -enum : uint { GW_ENABLEDPOPUP = 6 } -enum : uint { GW_MAX = 6 } -// #endif - -extern(Windows) export HWND GetWindow( - HWND hWnd, - UINT uCmd); - -// #ifndef NOWH - -// #ifdef STRICT - -extern(Windows) export HHOOK SetWindowsHookA( - int nFilterType, - HOOKPROC pfnFilterProc); -extern(Windows) export HHOOK SetWindowsHookW( - int nFilterType, - HOOKPROC pfnFilterProc); -// #ifdef UNICODE -// #... -// #else -alias SetWindowsHookA SetWindowsHook; -// #endif // !UNICODE - -// #else /* !STRICT */ - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #endif /* !STRICT */ - -extern(Windows) export BOOL UnhookWindowsHook( - int nCode, - HOOKPROC pfnFilterProc); - -extern(Windows) export HHOOK SetWindowsHookExA( - int idHook, - HOOKPROC lpfn, - HINSTANCE hmod, - DWORD dwThreadId); -extern(Windows) export HHOOK SetWindowsHookExW( - int idHook, - HOOKPROC lpfn, - HINSTANCE hmod, - DWORD dwThreadId); -// #ifdef UNICODE -// #... -// #else -alias SetWindowsHookExA SetWindowsHookEx; -// #endif // !UNICODE - -extern(Windows) export BOOL UnhookWindowsHookEx( - HHOOK hhk); - -extern(Windows) export LRESULT CallNextHookEx( - HHOOK hhk, - int nCode, - WPARAM wParam, - LPARAM lParam); - -// #ifdef STRICT -// #define DefHookProc(nCode, wParam, lParam, phhk) CallNextHookEx(*phhk, nCode, wParam, lParam) -// #else -// #... -// ... -// #endif /* STRICT */ -// #endif /* !NOWH */ - -// #ifndef NOMENUS - -enum : uint { MF_INSERT = 0x00000000 } -enum : uint { MF_CHANGE = 0x00000080 } -enum : uint { MF_APPEND = 0x00000100 } -enum : uint { MF_DELETE = 0x00000200 } -enum : uint { MF_REMOVE = 0x00001000 } - -enum : uint { MF_BYCOMMAND = 0x00000000 } -enum : uint { MF_BYPOSITION = 0x00000400 } - -enum : uint { MF_SEPARATOR = 0x00000800 } - -enum : uint { MF_ENABLED = 0x00000000 } -enum : uint { MF_GRAYED = 0x00000001 } -enum : uint { MF_DISABLED = 0x00000002 } - -enum : uint { MF_UNCHECKED = 0x00000000 } -enum : uint { MF_CHECKED = 0x00000008 } -enum : uint { MF_USECHECKBITMAPS = 0x00000200 } - -enum : uint { MF_STRING = 0x00000000 } -enum : uint { MF_BITMAP = 0x00000004 } -enum : uint { MF_OWNERDRAW = 0x00000100 } - -enum : uint { MF_POPUP = 0x00000010 } -enum : uint { MF_MENUBARBREAK = 0x00000020 } -enum : uint { MF_MENUBREAK = 0x00000040 } - -enum : uint { MF_UNHILITE = 0x00000000 } -enum : uint { MF_HILITE = 0x00000080 } - -// #if(WINVER >= 0x0400) -enum : uint { MF_DEFAULT = 0x00001000 } -// #endif /* WINVER >= 0x0400 */ -enum : uint { MF_SYSMENU = 0x00002000 } -enum : uint { MF_HELP = 0x00004000 } -// #if(WINVER >= 0x0400) -enum : uint { MF_RIGHTJUSTIFY = 0x00004000 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { MF_MOUSESELECT = 0x00008000 } -// #if(WINVER >= 0x0400) -enum : uint { MF_END = 0x00000080 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0400) -alias MF_STRING MFT_STRING; -alias MF_BITMAP MFT_BITMAP; -alias MF_MENUBARBREAK MFT_MENUBARBREAK; -alias MF_MENUBREAK MFT_MENUBREAK; -alias MF_OWNERDRAW MFT_OWNERDRAW; -enum : uint { MFT_RADIOCHECK = 0x00000200 } -alias MF_SEPARATOR MFT_SEPARATOR; -enum : uint { MFT_RIGHTORDER = 0x00002000 } -alias MF_RIGHTJUSTIFY MFT_RIGHTJUSTIFY; - -enum : uint { MFS_GRAYED = 0x00000003 } -alias MFS_GRAYED MFS_DISABLED; -alias MF_CHECKED MFS_CHECKED; -alias MF_HILITE MFS_HILITE; -alias MF_ENABLED MFS_ENABLED; -alias MF_UNCHECKED MFS_UNCHECKED; -alias MF_UNHILITE MFS_UNHILITE; -alias MF_DEFAULT MFS_DEFAULT; -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0400) - -extern(Windows) export BOOL CheckMenuRadioItem( - HMENU, - UINT, - UINT, - UINT, - UINT); -// #endif /* WINVER >= 0x0400 */ - -struct _4 { - WORD versionNumber; - WORD offset; -} -alias _4 MENUITEMTEMPLATEHEADER; -alias _4* PMENUITEMTEMPLATEHEADER; - -struct _5 { - WORD mtOption; - WORD mtID; - WCHAR mtString[1]; -} -alias _5 MENUITEMTEMPLATE; -alias _5* PMENUITEMTEMPLATE; - -// skip #define MF_END 0x00000080L - -// #endif /* !NOMENUS */ - -// #ifndef NOSYSCOMMANDS - -enum : uint { SC_SIZE = 0xF000 } -enum : uint { SC_MOVE = 0xF010 } -enum : uint { SC_MINIMIZE = 0xF020 } -enum : uint { SC_MAXIMIZE = 0xF030 } -enum : uint { SC_NEXTWINDOW = 0xF040 } -enum : uint { SC_PREVWINDOW = 0xF050 } -enum : uint { SC_CLOSE = 0xF060 } -enum : uint { SC_VSCROLL = 0xF070 } -enum : uint { SC_HSCROLL = 0xF080 } -enum : uint { SC_MOUSEMENU = 0xF090 } -enum : uint { SC_KEYMENU = 0xF100 } -enum : uint { SC_ARRANGE = 0xF110 } -enum : uint { SC_RESTORE = 0xF120 } -enum : uint { SC_TASKLIST = 0xF130 } -enum : uint { SC_SCREENSAVE = 0xF140 } -enum : uint { SC_HOTKEY = 0xF150 } -// #if(WINVER >= 0x0400) -enum : uint { SC_DEFAULT = 0xF160 } -enum : uint { SC_MONITORPOWER = 0xF170 } -enum : uint { SC_CONTEXTHELP = 0xF180 } -enum : uint { SC_SEPARATOR = 0xF00F } -// #endif /* WINVER >= 0x0400 */ - -alias SC_MINIMIZE SC_ICON; -alias SC_MAXIMIZE SC_ZOOM; - -// #endif /* !NOSYSCOMMANDS */ - -extern(Windows) export HBITMAP LoadBitmapA( - HINSTANCE hInstance, - LPCSTR lpBitmapName); -extern(Windows) export HBITMAP LoadBitmapW( - HINSTANCE hInstance, - LPCWSTR lpBitmapName); -// #ifdef UNICODE -// #... -// #else -alias LoadBitmapA LoadBitmap; -// #endif // !UNICODE - -extern(Windows) export HCURSOR LoadCursorA( - HINSTANCE hInstance, - LPCSTR lpCursorName); -extern(Windows) export HCURSOR LoadCursorW( - HINSTANCE hInstance, - LPCWSTR lpCursorName); -// #ifdef UNICODE -// #... -// #else -alias LoadCursorA LoadCursor; -// #endif // !UNICODE - -extern(Windows) export HCURSOR LoadCursorFromFileA( - LPCSTR lpFileName); -extern(Windows) export HCURSOR LoadCursorFromFileW( - LPCWSTR lpFileName); -// #ifdef UNICODE -// #... -// #else -alias LoadCursorFromFileA LoadCursorFromFile; -// #endif // !UNICODE - -extern(Windows) export HCURSOR CreateCursor( - HINSTANCE hInst, - int xHotSpot, - int yHotSpot, - int nWidth, - int nHeight, - VOID *pvANDPlane, - VOID *pvXORPlane); - -extern(Windows) export BOOL DestroyCursor( - HCURSOR hCursor); - -// #ifndef _MAC -alias CopyIcon CopyCursor; -// #else -// ... -// #endif - -const LPTSTR IDC_ARROW = cast(LPTSTR)(32512); -const LPTSTR IDC_IBEAM = cast(LPTSTR)(32513); -const LPTSTR IDC_WAIT = cast(LPTSTR)(32514); -const LPTSTR IDC_CROSS = cast(LPTSTR)(32515); -const LPTSTR IDC_UPARROW = cast(LPTSTR)(32516); -const LPTSTR IDC_SIZE = cast(LPTSTR)(32640); -const LPTSTR IDC_ICON = cast(LPTSTR)(32641); -const LPTSTR IDC_SIZENWSE = cast(LPTSTR)(32642); -const LPTSTR IDC_SIZENESW = cast(LPTSTR)(32643); -const LPTSTR IDC_SIZEWE = cast(LPTSTR)(32644); -const LPTSTR IDC_SIZENS = cast(LPTSTR)(32645); -const LPTSTR IDC_SIZEALL = cast(LPTSTR)(32646); -const LPTSTR IDC_NO = cast(LPTSTR)(32648); -// #if(WINVER >= 0x0500) -const LPTSTR IDC_HAND = cast(LPTSTR)(32649); -// #endif /* WINVER >= 0x0500 */ -const LPTSTR IDC_APPSTARTING = cast(LPTSTR)(32650); -// #if(WINVER >= 0x0400) -const LPTSTR IDC_HELP = cast(LPTSTR)(32651); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL SetSystemCursor( - HCURSOR hcur, - DWORD id); - -struct _ICONINFO { - BOOL fIcon; - DWORD xHotspot; - DWORD yHotspot; - HBITMAP hbmMask; - HBITMAP hbmColor; -} -alias _ICONINFO ICONINFO; - -alias ICONINFO* PICONINFO; - -extern(Windows) export HICON LoadIconA( - HINSTANCE hInstance, - LPCSTR lpIconName); -extern(Windows) export HICON LoadIconW( - HINSTANCE hInstance, - LPCWSTR lpIconName); -// #ifdef UNICODE -// #... -// #else -alias LoadIconA LoadIcon; -// #endif // !UNICODE - -extern(Windows) export HICON CreateIcon( - HINSTANCE hInstance, - int nWidth, - int nHeight, - BYTE cPlanes, - BYTE cBitsPixel, - BYTE *lpbANDbits, - BYTE *lpbXORbits); - -extern(Windows) export BOOL DestroyIcon( - HICON hIcon); - -extern(Windows) export int LookupIconIdFromDirectory( - PBYTE presbits, - BOOL fIcon); - -// #if(WINVER >= 0x0400) -extern(Windows) export int LookupIconIdFromDirectoryEx( - PBYTE presbits, - BOOL fIcon, - int cxDesired, - int cyDesired, - UINT Flags); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export HICON CreateIconFromResource( - PBYTE presbits, - DWORD dwResSize, - BOOL fIcon, - DWORD dwVer); - -// #if(WINVER >= 0x0400) -extern(Windows) export HICON CreateIconFromResourceEx( - PBYTE presbits, - DWORD dwResSize, - BOOL fIcon, - DWORD dwVer, - int cxDesired, - int cyDesired, - UINT Flags); - -struct tagCURSORSHAPE { - int xHotSpot; - int yHotSpot; - int cx; - int cy; - int cbWidth; - BYTE Planes; - BYTE BitsPixel; -} -alias tagCURSORSHAPE CURSORSHAPE; -alias tagCURSORSHAPE* LPCURSORSHAPE; - -// #endif /* WINVER >= 0x0400 */ - -enum : uint { IMAGE_BITMAP = 0 } -enum : uint { IMAGE_ICON = 1 } -enum : uint { IMAGE_CURSOR = 2 } -// #if(WINVER >= 0x0400) -enum : uint { IMAGE_ENHMETAFILE = 3 } - -enum : uint { LR_DEFAULTCOLOR = 0x0000 } -enum : uint { LR_MONOCHROME = 0x0001 } -enum : uint { LR_COLOR = 0x0002 } -enum : uint { LR_COPYRETURNORG = 0x0004 } -enum : uint { LR_COPYDELETEORG = 0x0008 } -enum : uint { LR_LOADFROMFILE = 0x0010 } -enum : uint { LR_LOADTRANSPARENT = 0x0020 } -enum : uint { LR_DEFAULTSIZE = 0x0040 } -enum : uint { LR_VGACOLOR = 0x0080 } -enum : uint { LR_LOADMAP3DCOLORS = 0x1000 } -enum : uint { LR_CREATEDIBSECTION = 0x2000 } -enum : uint { LR_COPYFROMRESOURCE = 0x4000 } -enum : uint { LR_SHARED = 0x8000 } - -extern(Windows) export HANDLE LoadImageA( - HINSTANCE, - LPCSTR, - UINT, - int, - int, - UINT); -extern(Windows) export HANDLE LoadImageW( - HINSTANCE, - LPCWSTR, - UINT, - int, - int, - UINT); -// #ifdef UNICODE -// #... -// #else -alias LoadImageA LoadImage; -// #endif // !UNICODE - -extern(Windows) export HANDLE CopyImage( - HANDLE, - UINT, - int, - int, - UINT); - -enum : uint { DI_MASK = 0x0001 } -enum : uint { DI_IMAGE = 0x0002 } -enum : uint { DI_NORMAL = 0x0003 } -enum : uint { DI_COMPAT = 0x0004 } -enum : uint { DI_DEFAULTSIZE = 0x0008 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { DI_NOMIRROR = 0x0010 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export BOOL DrawIconEx(HDC hdc, int xLeft, int yTop, - HICON hIcon, int cxWidth, int cyWidth, - UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export HICON CreateIconIndirect( - PICONINFO piconinfo); - -extern(Windows) export HICON CopyIcon( - HICON hIcon); - -extern(Windows) export BOOL GetIconInfo( - HICON hIcon, - PICONINFO piconinfo); - -// #if(WINVER >= 0x0400) -enum : uint { RES_ICON = 1 } -enum : uint { RES_CURSOR = 2 } -// #endif /* WINVER >= 0x0400 */ - -// #ifdef OEMRESOURCE - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #if(WINVER >= 0x0500) -// #... -// #endif /* WINVER >= 0x0500 */ -// #if(WINVER >= 0x0400) -// #... -// #endif /* WINVER >= 0x0400 */ - -// #... -// #... -// #... -// #... -// #... -// #if(WINVER >= 0x0400) -// #... -// #... -// #... -// #... -// #endif /* WINVER >= 0x0400 */ - -// #endif /* OEMRESOURCE */ - -enum : uint { ORD_LANGDRIVER = 1 } - -// #ifndef NOICONS - -// #ifdef RC_INVOKED -// #... -// #... -// #... -// #... -// #... -// #if(WINVER >= 0x0400) -// #... -// #endif /* WINVER >= 0x0400 */ -// #else -const LPTSTR IDI_APPLICATION = cast(LPTSTR)(32512); -const LPTSTR IDI_HAND = cast(LPTSTR)(32513); -const LPTSTR IDI_QUESTION = cast(LPTSTR)(32514); -const LPTSTR IDI_EXCLAMATION = cast(LPTSTR)(32515); -const LPTSTR IDI_ASTERISK = cast(LPTSTR)(32516); -// #if(WINVER >= 0x0400) -const LPTSTR IDI_WINLOGO = cast(LPTSTR)(32517); -// #endif /* WINVER >= 0x0400 */ -// #endif /* RC_INVOKED */ - -// #if(WINVER >= 0x0400) -alias IDI_EXCLAMATION IDI_WARNING; -alias IDI_HAND IDI_ERROR; -alias IDI_ASTERISK IDI_INFORMATION; -// #endif /* WINVER >= 0x0400 */ - -// #endif /* !NOICONS */ - -extern(Windows) export int LoadStringA( - HINSTANCE hInstance, - UINT uID, - LPSTR lpBuffer, - int nBufferMax); -extern(Windows) export int LoadStringW( - HINSTANCE hInstance, - UINT uID, - LPWSTR lpBuffer, - int nBufferMax); -// #ifdef UNICODE -// #... -// #else -alias LoadStringA LoadString; -// #endif // !UNICODE - -enum : uint { IDOK = 1 } -enum : uint { IDCANCEL = 2 } -enum : uint { IDABORT = 3 } -enum : uint { IDRETRY = 4 } -enum : uint { IDIGNORE = 5 } -enum : uint { IDYES = 6 } -enum : uint { IDNO = 7 } -// #if(WINVER >= 0x0400) -enum : uint { IDCLOSE = 8 } -enum : uint { IDHELP = 9 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -enum : uint { IDTRYAGAIN = 10 } -enum : uint { IDCONTINUE = 11 } -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0501) -// #ifndef IDTIMEOUT -enum : uint { IDTIMEOUT = 32000 } -// #endif -// #endif /* WINVER >= 0x0501 */ - -// #ifndef NOCTLMGR - -// #ifndef NOWINSTYLES - -enum : uint { ES_LEFT = 0x0000 } -enum : uint { ES_CENTER = 0x0001 } -enum : uint { ES_RIGHT = 0x0002 } -enum : uint { ES_MULTILINE = 0x0004 } -enum : uint { ES_UPPERCASE = 0x0008 } -enum : uint { ES_LOWERCASE = 0x0010 } -enum : uint { ES_PASSWORD = 0x0020 } -enum : uint { ES_AUTOVSCROLL = 0x0040 } -enum : uint { ES_AUTOHSCROLL = 0x0080 } -enum : uint { ES_NOHIDESEL = 0x0100 } -enum : uint { ES_OEMCONVERT = 0x0400 } -enum : uint { ES_READONLY = 0x0800 } -enum : uint { ES_WANTRETURN = 0x1000 } -// #if(WINVER >= 0x0400) -enum : uint { ES_NUMBER = 0x2000 } -// #endif /* WINVER >= 0x0400 */ - -// #endif /* !NOWINSTYLES */ - -enum : uint { EN_SETFOCUS = 0x0100 } -enum : uint { EN_KILLFOCUS = 0x0200 } -enum : uint { EN_CHANGE = 0x0300 } -enum : uint { EN_UPDATE = 0x0400 } -enum : uint { EN_ERRSPACE = 0x0500 } -enum : uint { EN_MAXTEXT = 0x0501 } -enum : uint { EN_HSCROLL = 0x0601 } -enum : uint { EN_VSCROLL = 0x0602 } - -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { EN_ALIGN_LTR_EC = 0x0700 } -enum : uint { EN_ALIGN_RTL_EC = 0x0701 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(WINVER >= 0x0400) - -enum : uint { EC_LEFTMARGIN = 0x0001 } -enum : uint { EC_RIGHTMARGIN = 0x0002 } -enum : uint { EC_USEFONTINFO = 0xffff } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) - -enum : uint { EMSIS_COMPOSITIONSTRING = 0x0001 } - -enum : uint { EIMES_GETCOMPSTRATONCE = 0x0001 } -enum : uint { EIMES_CANCELCOMPSTRINFOCUS = 0x0002 } -enum : uint { EIMES_COMPLETECOMPSTRKILLFOCUS = 0x0004 } -// #endif /* WINVER >= 0x0500 */ - -// #ifndef NOWINMESSAGES - -enum : uint { EM_GETSEL = 0x00B0 } -enum : uint { EM_SETSEL = 0x00B1 } -enum : uint { EM_GETRECT = 0x00B2 } -enum : uint { EM_SETRECT = 0x00B3 } -enum : uint { EM_SETRECTNP = 0x00B4 } -enum : uint { EM_SCROLL = 0x00B5 } -enum : uint { EM_LINESCROLL = 0x00B6 } -enum : uint { EM_SCROLLCARET = 0x00B7 } -enum : uint { EM_GETMODIFY = 0x00B8 } -enum : uint { EM_SETMODIFY = 0x00B9 } -enum : uint { EM_GETLINECOUNT = 0x00BA } -enum : uint { EM_LINEINDEX = 0x00BB } -enum : uint { EM_SETHANDLE = 0x00BC } -enum : uint { EM_GETHANDLE = 0x00BD } -enum : uint { EM_GETTHUMB = 0x00BE } -enum : uint { EM_LINELENGTH = 0x00C1 } -enum : uint { EM_REPLACESEL = 0x00C2 } -enum : uint { EM_GETLINE = 0x00C4 } -enum : uint { EM_LIMITTEXT = 0x00C5 } -enum : uint { EM_CANUNDO = 0x00C6 } -enum : uint { EM_UNDO = 0x00C7 } -enum : uint { EM_FMTLINES = 0x00C8 } -enum : uint { EM_LINEFROMCHAR = 0x00C9 } -enum : uint { EM_SETTABSTOPS = 0x00CB } -enum : uint { EM_SETPASSWORDCHAR = 0x00CC } -enum : uint { EM_EMPTYUNDOBUFFER = 0x00CD } -enum : uint { EM_GETFIRSTVISIBLELINE = 0x00CE } -enum : uint { EM_SETREADONLY = 0x00CF } -enum : uint { EM_SETWORDBREAKPROC = 0x00D0 } -enum : uint { EM_GETWORDBREAKPROC = 0x00D1 } -enum : uint { EM_GETPASSWORDCHAR = 0x00D2 } -// #if(WINVER >= 0x0400) -enum : uint { EM_SETMARGINS = 0x00D3 } -enum : uint { EM_GETMARGINS = 0x00D4 } -alias EM_LIMITTEXT EM_SETLIMITTEXT; -enum : uint { EM_GETLIMITTEXT = 0x00D5 } -enum : uint { EM_POSFROMCHAR = 0x00D6 } -enum : uint { EM_CHARFROMPOS = 0x00D7 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -enum : uint { EM_SETIMESTATUS = 0x00D8 } -enum : uint { EM_GETIMESTATUS = 0x00D9 } -// #endif /* WINVER >= 0x0500 */ - -// #endif /* !NOWINMESSAGES */ - -enum : uint { WB_LEFT = 0 } -enum : uint { WB_RIGHT = 1 } -enum : uint { WB_ISDELIMITER = 2 } - -enum : uint { BS_PUSHBUTTON = 0x00000000 } -enum : uint { BS_DEFPUSHBUTTON = 0x00000001 } -enum : uint { BS_CHECKBOX = 0x00000002 } -enum : uint { BS_AUTOCHECKBOX = 0x00000003 } -enum : uint { BS_RADIOBUTTON = 0x00000004 } -enum : uint { BS_3STATE = 0x00000005 } -enum : uint { BS_AUTO3STATE = 0x00000006 } -enum : uint { BS_GROUPBOX = 0x00000007 } -enum : uint { BS_USERBUTTON = 0x00000008 } -enum : uint { BS_AUTORADIOBUTTON = 0x00000009 } -enum : uint { BS_OWNERDRAW = 0x0000000B } -enum : uint { BS_LEFTTEXT = 0x00000020 } -// #if(WINVER >= 0x0400) -enum : uint { BS_TEXT = 0x00000000 } -enum : uint { BS_ICON = 0x00000040 } -enum : uint { BS_BITMAP = 0x00000080 } -enum : uint { BS_LEFT = 0x00000100 } -enum : uint { BS_RIGHT = 0x00000200 } -enum : uint { BS_CENTER = 0x00000300 } -enum : uint { BS_TOP = 0x00000400 } -enum : uint { BS_BOTTOM = 0x00000800 } -enum : uint { BS_VCENTER = 0x00000C00 } -enum : uint { BS_PUSHLIKE = 0x00001000 } -enum : uint { BS_MULTILINE = 0x00002000 } -enum : uint { BS_NOTIFY = 0x00004000 } -enum : uint { BS_FLAT = 0x00008000 } -alias BS_LEFTTEXT BS_RIGHTBUTTON; -// #endif /* WINVER >= 0x0400 */ - -enum : uint { BN_CLICKED = 0 } -enum : uint { BN_PAINT = 1 } -enum : uint { BN_HILITE = 2 } -enum : uint { BN_UNHILITE = 3 } -enum : uint { BN_DISABLE = 4 } -enum : uint { BN_DOUBLECLICKED = 5 } -// #if(WINVER >= 0x0400) -alias BN_HILITE BN_PUSHED; -alias BN_UNHILITE BN_UNPUSHED; -alias BN_DOUBLECLICKED BN_DBLCLK; -enum : uint { BN_SETFOCUS = 6 } -enum : uint { BN_KILLFOCUS = 7 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { BM_GETCHECK = 0x00F0 } -enum : uint { BM_SETCHECK = 0x00F1 } -enum : uint { BM_GETSTATE = 0x00F2 } -enum : uint { BM_SETSTATE = 0x00F3 } -enum : uint { BM_SETSTYLE = 0x00F4 } -// #if(WINVER >= 0x0400) -enum : uint { BM_CLICK = 0x00F5 } -enum : uint { BM_GETIMAGE = 0x00F6 } -enum : uint { BM_SETIMAGE = 0x00F7 } - -enum : uint { BST_UNCHECKED = 0x0000 } -enum : uint { BST_CHECKED = 0x0001 } -enum : uint { BST_INDETERMINATE = 0x0002 } -enum : uint { BST_PUSHED = 0x0004 } -enum : uint { BST_FOCUS = 0x0008 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { SS_LEFT = 0x00000000 } -enum : uint { SS_CENTER = 0x00000001 } -enum : uint { SS_RIGHT = 0x00000002 } -enum : uint { SS_ICON = 0x00000003 } -enum : uint { SS_BLACKRECT = 0x00000004 } -enum : uint { SS_GRAYRECT = 0x00000005 } -enum : uint { SS_WHITERECT = 0x00000006 } -enum : uint { SS_BLACKFRAME = 0x00000007 } -enum : uint { SS_GRAYFRAME = 0x00000008 } -enum : uint { SS_WHITEFRAME = 0x00000009 } -enum : uint { SS_USERITEM = 0x0000000A } -enum : uint { SS_SIMPLE = 0x0000000B } -enum : uint { SS_LEFTNOWORDWRAP = 0x0000000C } -// #if(WINVER >= 0x0400) -enum : uint { SS_OWNERDRAW = 0x0000000D } -enum : uint { SS_BITMAP = 0x0000000E } -enum : uint { SS_ENHMETAFILE = 0x0000000F } -enum : uint { SS_ETCHEDHORZ = 0x00000010 } -enum : uint { SS_ETCHEDVERT = 0x00000011 } -enum : uint { SS_ETCHEDFRAME = 0x00000012 } -enum : uint { SS_TYPEMASK = 0x0000001F } -// #endif /* WINVER >= 0x0400 */ -// #if(WINVER >= 0x0501) -enum : uint { SS_REALSIZECONTROL = 0x00000040 } -// #endif /* WINVER >= 0x0501 */ -enum : uint { SS_NOPREFIX = 0x00000080 } -// #if(WINVER >= 0x0400) -enum : uint { SS_NOTIFY = 0x00000100 } -enum : uint { SS_CENTERIMAGE = 0x00000200 } -enum : uint { SS_RIGHTJUST = 0x00000400 } -enum : uint { SS_REALSIZEIMAGE = 0x00000800 } -enum : uint { SS_SUNKEN = 0x00001000 } -enum : uint { SS_ENDELLIPSIS = 0x00004000 } -enum : uint { SS_PATHELLIPSIS = 0x00008000 } -enum : uint { SS_WORDELLIPSIS = 0x0000C000 } -enum : uint { SS_ELLIPSISMASK = 0x0000C000 } -// #endif /* WINVER >= 0x0400 */ - -// #ifndef NOWINMESSAGES - -enum : uint { STM_SETICON = 0x0170 } -enum : uint { STM_GETICON = 0x0171 } -// #if(WINVER >= 0x0400) -enum : uint { STM_SETIMAGE = 0x0172 } -enum : uint { STM_GETIMAGE = 0x0173 } -enum : uint { STN_CLICKED = 0 } -enum : uint { STN_DBLCLK = 1 } -enum : uint { STN_ENABLE = 2 } -enum : uint { STN_DISABLE = 3 } -// #endif /* WINVER >= 0x0400 */ -enum : uint { STM_MSGMAX = 0x0174 } -// #endif /* !NOWINMESSAGES */ - -const ATOM WC_DIALOG = cast(ATOM)0x8002; - -enum : uint { DWL_MSGRESULT = 0 } -enum : uint { DWL_DLGPROC = 4 } -enum : uint { DWL_USER = 8 } - -// #ifdef _WIN64 - -// #... -// #... -// #... - -// #endif /* _WIN64 */ - -enum : uint { DWLP_MSGRESULT = 0 } -enum : uint { DWLP_DLGPROC = DWLP_MSGRESULT + LRESULT.sizeof } -enum : uint { DWLP_USER = DWLP_DLGPROC + DLGPROC.sizeof } - -// #ifndef NOMSG - -extern(Windows) export BOOL IsDialogMessageA( - HWND hDlg, - LPMSG lpMsg); -extern(Windows) export BOOL IsDialogMessageW( - HWND hDlg, - LPMSG lpMsg); -// #ifdef UNICODE -// #... -// #else -alias IsDialogMessageA IsDialogMessage; -// #endif // !UNICODE - -// #endif /* !NOMSG */ - -extern(Windows) export BOOL MapDialogRect( - HWND hDlg, - LPRECT lpRect); - -extern(Windows) export int DlgDirListA( - HWND hDlg, - LPSTR lpPathSpec, - int nIDListBox, - int nIDStaticPath, - UINT uFileType); -extern(Windows) export int DlgDirListW( - HWND hDlg, - LPWSTR lpPathSpec, - int nIDListBox, - int nIDStaticPath, - UINT uFileType); -// #ifdef UNICODE -// #... -// #else -alias DlgDirListA DlgDirList; -// #endif // !UNICODE - -enum : uint { DDL_READWRITE = 0x0000 } -enum : uint { DDL_READONLY = 0x0001 } -enum : uint { DDL_HIDDEN = 0x0002 } -enum : uint { DDL_SYSTEM = 0x0004 } -enum : uint { DDL_DIRECTORY = 0x0010 } -enum : uint { DDL_ARCHIVE = 0x0020 } - -enum : uint { DDL_POSTMSGS = 0x2000 } -enum : uint { DDL_DRIVES = 0x4000 } -enum : uint { DDL_EXCLUSIVE = 0x8000 } - -extern(Windows) export BOOL DlgDirSelectExA( - HWND hDlg, - LPSTR lpString, - int nCount, - int nIDListBox); -extern(Windows) export BOOL DlgDirSelectExW( - HWND hDlg, - LPWSTR lpString, - int nCount, - int nIDListBox); -// #ifdef UNICODE -// #... -// #else -alias DlgDirSelectExA DlgDirSelectEx; -// #endif // !UNICODE - -extern(Windows) export int DlgDirListComboBoxA( - HWND hDlg, - LPSTR lpPathSpec, - int nIDComboBox, - int nIDStaticPath, - UINT uFiletype); -extern(Windows) export int DlgDirListComboBoxW( - HWND hDlg, - LPWSTR lpPathSpec, - int nIDComboBox, - int nIDStaticPath, - UINT uFiletype); -// #ifdef UNICODE -// #... -// #else -alias DlgDirListComboBoxA DlgDirListComboBox; -// #endif // !UNICODE - -extern(Windows) export BOOL DlgDirSelectComboBoxExA( - HWND hDlg, - LPSTR lpString, - int nCount, - int nIDComboBox); -extern(Windows) export BOOL DlgDirSelectComboBoxExW( - HWND hDlg, - LPWSTR lpString, - int nCount, - int nIDComboBox); -// #ifdef UNICODE -// #... -// #else -alias DlgDirSelectComboBoxExA DlgDirSelectComboBoxEx; -// #endif // !UNICODE - -enum : uint { DS_ABSALIGN = 0x01 } -enum : uint { DS_SYSMODAL = 0x02 } -enum : uint { DS_LOCALEDIT = 0x20 } -enum : uint { DS_SETFONT = 0x40 } -enum : uint { DS_MODALFRAME = 0x80 } -enum : uint { DS_NOIDLEMSG = 0x100 } -enum : uint { DS_SETFOREGROUND = 0x200 } - -// #if(WINVER >= 0x0400) -enum : uint { DS_3DLOOK = 0x0004 } -enum : uint { DS_FIXEDSYS = 0x0008 } -enum : uint { DS_NOFAILCREATE = 0x0010 } -enum : uint { DS_CONTROL = 0x0400 } -enum : uint { DS_CENTER = 0x0800 } -enum : uint { DS_CENTERMOUSE = 0x1000 } -enum : uint { DS_CONTEXTHELP = 0x2000 } - -enum : uint { DS_SHELLFONT = DS_SETFONT | DS_FIXEDSYS } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { DM_GETDEFID = WM_USER+0 } -enum : uint { DM_SETDEFID = WM_USER+1 } - -// #if(WINVER >= 0x0400) -enum : uint { DM_REPOSITION = WM_USER+2 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { DC_HASDEFID = 0x534B } - -enum : uint { DLGC_WANTARROWS = 0x0001 } -enum : uint { DLGC_WANTTAB = 0x0002 } -enum : uint { DLGC_WANTALLKEYS = 0x0004 } -enum : uint { DLGC_WANTMESSAGE = 0x0004 } -enum : uint { DLGC_HASSETSEL = 0x0008 } -enum : uint { DLGC_DEFPUSHBUTTON = 0x0010 } -enum : uint { DLGC_UNDEFPUSHBUTTON = 0x0020 } -enum : uint { DLGC_RADIOBUTTON = 0x0040 } -enum : uint { DLGC_WANTCHARS = 0x0080 } -enum : uint { DLGC_STATIC = 0x0100 } -enum : uint { DLGC_BUTTON = 0x2000 } - -enum : uint { LB_CTLCODE = 0 } - -enum : uint { LB_OKAY = 0 } -enum { LB_ERR = -1 } -enum { LB_ERRSPACE = -2 } - -enum { LBN_ERRSPACE = -2 } -enum : uint { LBN_SELCHANGE = 1 } -enum : uint { LBN_DBLCLK = 2 } -enum : uint { LBN_SELCANCEL = 3 } -enum : uint { LBN_SETFOCUS = 4 } -enum : uint { LBN_KILLFOCUS = 5 } - -// #ifndef NOWINMESSAGES - -enum : uint { LB_ADDSTRING = 0x0180 } -enum : uint { LB_INSERTSTRING = 0x0181 } -enum : uint { LB_DELETESTRING = 0x0182 } -enum : uint { LB_SELITEMRANGEEX = 0x0183 } -enum : uint { LB_RESETCONTENT = 0x0184 } -enum : uint { LB_SETSEL = 0x0185 } -enum : uint { LB_SETCURSEL = 0x0186 } -enum : uint { LB_GETSEL = 0x0187 } -enum : uint { LB_GETCURSEL = 0x0188 } -enum : uint { LB_GETTEXT = 0x0189 } -enum : uint { LB_GETTEXTLEN = 0x018A } -enum : uint { LB_GETCOUNT = 0x018B } -enum : uint { LB_SELECTSTRING = 0x018C } -enum : uint { LB_DIR = 0x018D } -enum : uint { LB_GETTOPINDEX = 0x018E } -enum : uint { LB_FINDSTRING = 0x018F } -enum : uint { LB_GETSELCOUNT = 0x0190 } -enum : uint { LB_GETSELITEMS = 0x0191 } -enum : uint { LB_SETTABSTOPS = 0x0192 } -enum : uint { LB_GETHORIZONTALEXTENT = 0x0193 } -enum : uint { LB_SETHORIZONTALEXTENT = 0x0194 } -enum : uint { LB_SETCOLUMNWIDTH = 0x0195 } -enum : uint { LB_ADDFILE = 0x0196 } -enum : uint { LB_SETTOPINDEX = 0x0197 } -enum : uint { LB_GETITEMRECT = 0x0198 } -enum : uint { LB_GETITEMDATA = 0x0199 } -enum : uint { LB_SETITEMDATA = 0x019A } -enum : uint { LB_SELITEMRANGE = 0x019B } -enum : uint { LB_SETANCHORINDEX = 0x019C } -enum : uint { LB_GETANCHORINDEX = 0x019D } -enum : uint { LB_SETCARETINDEX = 0x019E } -enum : uint { LB_GETCARETINDEX = 0x019F } -enum : uint { LB_SETITEMHEIGHT = 0x01A0 } -enum : uint { LB_GETITEMHEIGHT = 0x01A1 } -enum : uint { LB_FINDSTRINGEXACT = 0x01A2 } -enum : uint { LB_SETLOCALE = 0x01A5 } -enum : uint { LB_GETLOCALE = 0x01A6 } -enum : uint { LB_SETCOUNT = 0x01A7 } -// #if(WINVER >= 0x0400) -enum : uint { LB_INITSTORAGE = 0x01A8 } -enum : uint { LB_ITEMFROMPOINT = 0x01A9 } -// #endif /* WINVER >= 0x0400 */ -// #if(_WIN32_WCE >= 0x0400) -// #... -// #endif - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { LB_GETLISTBOXINFO = 0x01B2 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { LB_MSGMAX = 0x01B3 } -// #elif(_WIN32_WCE >= 0x0400) -// #... -// #elif(WINVER >= 0x0400) -// #... -// #else -// #... -// #endif - -// #endif /* !NOWINMESSAGES */ - -// #ifndef NOWINSTYLES - -enum : uint { LBS_NOTIFY = 0x0001 } -enum : uint { LBS_SORT = 0x0002 } -enum : uint { LBS_NOREDRAW = 0x0004 } -enum : uint { LBS_MULTIPLESEL = 0x0008 } -enum : uint { LBS_OWNERDRAWFIXED = 0x0010 } -enum : uint { LBS_OWNERDRAWVARIABLE = 0x0020 } -enum : uint { LBS_HASSTRINGS = 0x0040 } -enum : uint { LBS_USETABSTOPS = 0x0080 } -enum : uint { LBS_NOINTEGRALHEIGHT = 0x0100 } -enum : uint { LBS_MULTICOLUMN = 0x0200 } -enum : uint { LBS_WANTKEYBOARDINPUT = 0x0400 } -enum : uint { LBS_EXTENDEDSEL = 0x0800 } -enum : uint { LBS_DISABLENOSCROLL = 0x1000 } -enum : uint { LBS_NODATA = 0x2000 } -// #if(WINVER >= 0x0400) -enum : uint { LBS_NOSEL = 0x4000 } -// #endif /* WINVER >= 0x0400 */ -enum : uint { LBS_STANDARD = LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER } - -// #endif /* !NOWINSTYLES */ - -enum : uint { CB_OKAY = 0 } -enum { CB_ERR = -1 } -enum { CB_ERRSPACE = -2 } - -enum { CBN_ERRSPACE = -1 } -enum : uint { CBN_SELCHANGE = 1 } -enum : uint { CBN_DBLCLK = 2 } -enum : uint { CBN_SETFOCUS = 3 } -enum : uint { CBN_KILLFOCUS = 4 } -enum : uint { CBN_EDITCHANGE = 5 } -enum : uint { CBN_EDITUPDATE = 6 } -enum : uint { CBN_DROPDOWN = 7 } -enum : uint { CBN_CLOSEUP = 8 } -enum : uint { CBN_SELENDOK = 9 } -enum : uint { CBN_SELENDCANCEL = 10 } - -// #ifndef NOWINSTYLES - -enum : uint { CBS_SIMPLE = 0x0001 } -enum : uint { CBS_DROPDOWN = 0x0002 } -enum : uint { CBS_DROPDOWNLIST = 0x0003 } -enum : uint { CBS_OWNERDRAWFIXED = 0x0010 } -enum : uint { CBS_OWNERDRAWVARIABLE = 0x0020 } -enum : uint { CBS_AUTOHSCROLL = 0x0040 } -enum : uint { CBS_OEMCONVERT = 0x0080 } -enum : uint { CBS_SORT = 0x0100 } -enum : uint { CBS_HASSTRINGS = 0x0200 } -enum : uint { CBS_NOINTEGRALHEIGHT = 0x0400 } -enum : uint { CBS_DISABLENOSCROLL = 0x0800 } -// #if(WINVER >= 0x0400) -enum : uint { CBS_UPPERCASE = 0x2000 } -enum : uint { CBS_LOWERCASE = 0x4000 } -// #endif /* WINVER >= 0x0400 */ - -// #endif /* !NOWINSTYLES */ - -// #ifndef NOWINMESSAGES -enum : uint { CB_GETEDITSEL = 0x0140 } -enum : uint { CB_LIMITTEXT = 0x0141 } -enum : uint { CB_SETEDITSEL = 0x0142 } -enum : uint { CB_ADDSTRING = 0x0143 } -enum : uint { CB_DELETESTRING = 0x0144 } -enum : uint { CB_DIR = 0x0145 } -enum : uint { CB_GETCOUNT = 0x0146 } -enum : uint { CB_GETCURSEL = 0x0147 } -enum : uint { CB_GETLBTEXT = 0x0148 } -enum : uint { CB_GETLBTEXTLEN = 0x0149 } -enum : uint { CB_INSERTSTRING = 0x014A } -enum : uint { CB_RESETCONTENT = 0x014B } -enum : uint { CB_FINDSTRING = 0x014C } -enum : uint { CB_SELECTSTRING = 0x014D } -enum : uint { CB_SETCURSEL = 0x014E } -enum : uint { CB_SHOWDROPDOWN = 0x014F } -enum : uint { CB_GETITEMDATA = 0x0150 } -enum : uint { CB_SETITEMDATA = 0x0151 } -enum : uint { CB_GETDROPPEDCONTROLRECT = 0x0152 } -enum : uint { CB_SETITEMHEIGHT = 0x0153 } -enum : uint { CB_GETITEMHEIGHT = 0x0154 } -enum : uint { CB_SETEXTENDEDUI = 0x0155 } -enum : uint { CB_GETEXTENDEDUI = 0x0156 } -enum : uint { CB_GETDROPPEDSTATE = 0x0157 } -enum : uint { CB_FINDSTRINGEXACT = 0x0158 } -enum : uint { CB_SETLOCALE = 0x0159 } -enum : uint { CB_GETLOCALE = 0x015A } -// #if(WINVER >= 0x0400) -enum : uint { CB_GETTOPINDEX = 0x015b } -enum : uint { CB_SETTOPINDEX = 0x015c } -enum : uint { CB_GETHORIZONTALEXTENT = 0x015d } -enum : uint { CB_SETHORIZONTALEXTENT = 0x015e } -enum : uint { CB_GETDROPPEDWIDTH = 0x015f } -enum : uint { CB_SETDROPPEDWIDTH = 0x0160 } -enum : uint { CB_INITSTORAGE = 0x0161 } -// #if(_WIN32_WCE >= 0x0400) -// #... -// #endif -// #endif /* WINVER >= 0x0400 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { CB_GETCOMBOBOXINFO = 0x0164 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { CB_MSGMAX = 0x0165 } -// #elif(_WIN32_WCE >= 0x0400) -// #... -// #elif(WINVER >= 0x0400) -// #... -// #else -// #... -// #endif -// #endif /* !NOWINMESSAGES */ - -// #ifndef NOWINSTYLES - -enum : uint { SBS_HORZ = 0x0000 } -enum : uint { SBS_VERT = 0x0001 } -enum : uint { SBS_TOPALIGN = 0x0002 } -enum : uint { SBS_LEFTALIGN = 0x0002 } -enum : uint { SBS_BOTTOMALIGN = 0x0004 } -enum : uint { SBS_RIGHTALIGN = 0x0004 } -enum : uint { SBS_SIZEBOXTOPLEFTALIGN = 0x0002 } -enum : uint { SBS_SIZEBOXBOTTOMRIGHTALIGN = 0x0004 } -enum : uint { SBS_SIZEBOX = 0x0008 } -// #if(WINVER >= 0x0400) -enum : uint { SBS_SIZEGRIP = 0x0010 } -// #endif /* WINVER >= 0x0400 */ - -// #endif /* !NOWINSTYLES */ - -// #ifndef NOWINMESSAGES -enum : uint { SBM_SETPOS = 0x00E0 } -enum : uint { SBM_GETPOS = 0x00E1 } -enum : uint { SBM_SETRANGE = 0x00E2 } -enum : uint { SBM_SETRANGEREDRAW = 0x00E6 } -enum : uint { SBM_GETRANGE = 0x00E3 } -enum : uint { SBM_ENABLE_ARROWS = 0x00E4 } -// #if(WINVER >= 0x0400) -enum : uint { SBM_SETSCROLLINFO = 0x00E9 } -enum : uint { SBM_GETSCROLLINFO = 0x00EA } -// #endif /* WINVER >= 0x0400 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { SBM_GETSCROLLBARINFO = 0x00EB } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if(WINVER >= 0x0400) -enum : uint { SIF_RANGE = 0x0001 } -enum : uint { SIF_PAGE = 0x0002 } -enum : uint { SIF_POS = 0x0004 } -enum : uint { SIF_DISABLENOSCROLL = 0x0008 } -enum : uint { SIF_TRACKPOS = 0x0010 } -enum : uint { SIF_ALL = SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS } - -struct tagSCROLLINFO { - UINT cbSize; - UINT fMask; - int nMin; - int nMax; - UINT nPage; - int nPos; - int nTrackPos; -} -alias tagSCROLLINFO SCROLLINFO; -alias tagSCROLLINFO* LPSCROLLINFO; - -alias SCROLLINFO* LPCSCROLLINFO; - -extern(Windows) export int SetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL); -extern(Windows) export BOOL GetScrollInfo(HWND, int, LPSCROLLINFO); - -// #endif /* WINVER >= 0x0400 */ -// #endif /* !NOWINMESSAGES */ -// #endif /* !NOCTLMGR */ - -// #ifndef NOMDI - -enum : uint { MDIS_ALLCHILDSTYLES = 0x0001 } - -enum : uint { MDITILE_VERTICAL = 0x0000 } -enum : uint { MDITILE_HORIZONTAL = 0x0001 } -enum : uint { MDITILE_SKIPDISABLED = 0x0002 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { MDITILE_ZORDER = 0x0004 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -struct tagMDICREATESTRUCTA { - LPCSTR szClass; - LPCSTR szTitle; - HANDLE hOwner; - int x; - int y; - int cx; - int cy; - DWORD style; - LPARAM lParam; -} -alias tagMDICREATESTRUCTA MDICREATESTRUCTA; -alias tagMDICREATESTRUCTA* LPMDICREATESTRUCTA; - -struct tagMDICREATESTRUCTW { - LPCWSTR szClass; - LPCWSTR szTitle; - HANDLE hOwner; - int x; - int y; - int cx; - int cy; - DWORD style; - LPARAM lParam; -} -alias tagMDICREATESTRUCTW MDICREATESTRUCTW; -alias tagMDICREATESTRUCTW* LPMDICREATESTRUCTW; - -// #ifdef UNICODE -// ... -// #else -alias MDICREATESTRUCTA MDICREATESTRUCT; -alias LPMDICREATESTRUCTA LPMDICREATESTRUCT; -// #endif // UNICODE - -struct tagCLIENTCREATESTRUCT { - HANDLE hWindowMenu; - UINT idFirstChild; -} -alias tagCLIENTCREATESTRUCT CLIENTCREATESTRUCT; -alias tagCLIENTCREATESTRUCT* LPCLIENTCREATESTRUCT; - -extern(Windows) export LRESULT DefFrameProcA( - HWND hWnd, - HWND hWndMDIClient, - UINT uMsg, - WPARAM wParam, - LPARAM lParam); -extern(Windows) export LRESULT DefFrameProcW( - HWND hWnd, - HWND hWndMDIClient, - UINT uMsg, - WPARAM wParam, - LPARAM lParam); -// #ifdef UNICODE -// #... -// #else -alias DefFrameProcA DefFrameProc; -// #endif // !UNICODE - -extern(Windows) export LRESULT DefMDIChildProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); -extern(Windows) export LRESULT DefMDIChildProcW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); -// #ifdef UNICODE -// #... -// #else -alias DefMDIChildProcA DefMDIChildProc; -// #endif // !UNICODE - -// #ifndef NOMSG - -extern(Windows) export BOOL TranslateMDISysAccel( - HWND hWndClient, - LPMSG lpMsg); - -// #endif /* !NOMSG */ - -extern(Windows) export UINT ArrangeIconicWindows( - HWND hWnd); - -extern(Windows) export HWND CreateMDIWindowA( - LPCSTR lpClassName, - LPCSTR lpWindowName, - DWORD dwStyle, - int X, - int Y, - int nWidth, - int nHeight, - HWND hWndParent, - HINSTANCE hInstance, - LPARAM lParam); -extern(Windows) export HWND CreateMDIWindowW( - LPCWSTR lpClassName, - LPCWSTR lpWindowName, - DWORD dwStyle, - int X, - int Y, - int nWidth, - int nHeight, - HWND hWndParent, - HINSTANCE hInstance, - LPARAM lParam); -// #ifdef UNICODE -// #... -// #else -alias CreateMDIWindowA CreateMDIWindow; -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export WORD TileWindows(HWND hwndParent, UINT wHow, RECT * lpRect, UINT cKids, HWND * lpKids); -extern(Windows) export WORD CascadeWindows(HWND hwndParent, UINT wHow, RECT * lpRect, UINT cKids, HWND * lpKids); -// #endif /* WINVER >= 0x0400 */ -// #endif /* !NOMDI */ - -// #endif /* !NOUSER */ - -// #ifndef NOHELP - -alias DWORD HELPPOLY; -struct tagMULTIKEYHELPA { -// #ifndef _MAC - DWORD mkSize; -// #else -// ... -// #endif - CHAR mkKeylist; - CHAR szKeyphrase[1]; -} -alias tagMULTIKEYHELPA MULTIKEYHELPA; -alias tagMULTIKEYHELPA* PMULTIKEYHELPA; -alias tagMULTIKEYHELPA* LPMULTIKEYHELPA; - -struct tagMULTIKEYHELPW { -// #ifndef _MAC - DWORD mkSize; -// #else -// ... -// #endif - WCHAR mkKeylist; - WCHAR szKeyphrase[1]; -} -alias tagMULTIKEYHELPW MULTIKEYHELPW; -alias tagMULTIKEYHELPW* PMULTIKEYHELPW; -alias tagMULTIKEYHELPW* LPMULTIKEYHELPW; - -// #ifdef UNICODE -// ... -// #else -alias MULTIKEYHELPA MULTIKEYHELP; -alias PMULTIKEYHELPA PMULTIKEYHELP; -alias LPMULTIKEYHELPA LPMULTIKEYHELP; -// #endif // UNICODE - -struct tagHELPWININFOA { - int wStructSize; - int x; - int y; - int dx; - int dy; - int wMax; - CHAR rgchMember[2]; -} -alias tagHELPWININFOA HELPWININFOA; -alias tagHELPWININFOA* PHELPWININFOA; -alias tagHELPWININFOA* LPHELPWININFOA; - -struct tagHELPWININFOW { - int wStructSize; - int x; - int y; - int dx; - int dy; - int wMax; - WCHAR rgchMember[2]; -} -alias tagHELPWININFOW HELPWININFOW; -alias tagHELPWININFOW* PHELPWININFOW; -alias tagHELPWININFOW* LPHELPWININFOW; - -// #ifdef UNICODE -// ... -// #else -alias HELPWININFOA HELPWININFO; -alias PHELPWININFOA PHELPWININFO; -alias LPHELPWININFOA LPHELPWININFO; -// #endif // UNICODE - -enum : uint { HELP_CONTEXT = 0x0001 } -enum : uint { HELP_QUIT = 0x0002 } -enum : uint { HELP_INDEX = 0x0003 } -enum : uint { HELP_CONTENTS = 0x0003 } -enum : uint { HELP_HELPONHELP = 0x0004 } -enum : uint { HELP_SETINDEX = 0x0005 } -enum : uint { HELP_SETCONTENTS = 0x0005 } -enum : uint { HELP_CONTEXTPOPUP = 0x0008 } -enum : uint { HELP_FORCEFILE = 0x0009 } -enum : uint { HELP_KEY = 0x0101 } -enum : uint { HELP_COMMAND = 0x0102 } -enum : uint { HELP_PARTIALKEY = 0x0105 } -enum : uint { HELP_MULTIKEY = 0x0201 } -enum : uint { HELP_SETWINPOS = 0x0203 } -// #if(WINVER >= 0x0400) -enum : uint { HELP_CONTEXTMENU = 0x000a } -enum : uint { HELP_FINDER = 0x000b } -enum : uint { HELP_WM_HELP = 0x000c } -enum : uint { HELP_SETPOPUP_POS = 0x000d } - -enum : uint { HELP_TCARD = 0x8000 } -enum : uint { HELP_TCARD_DATA = 0x0010 } -enum : uint { HELP_TCARD_OTHER_CALLER = 0x0011 } - -enum : uint { IDH_NO_HELP = 28440 } -enum : uint { IDH_MISSING_CONTEXT = 28441 } -enum : uint { IDH_GENERIC_HELP_BUTTON = 28442 } -enum : uint { IDH_OK = 28443 } -enum : uint { IDH_CANCEL = 28444 } -enum : uint { IDH_HELP = 28445 } - -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL WinHelpA( - HWND hWndMain, - LPCSTR lpszHelp, - UINT uCommand, - ULONG_PTR dwData); -extern(Windows) export BOOL WinHelpW( - HWND hWndMain, - LPCWSTR lpszHelp, - UINT uCommand, - ULONG_PTR dwData); -// #ifdef UNICODE -// #... -// #else -alias WinHelpA WinHelp; -// #endif // !UNICODE - -// #endif /* !NOHELP */ - -// #if(WINVER >= 0x0500) - -enum : uint { GR_GDIOBJECTS = 0 } -enum : uint { GR_USEROBJECTS = 1 } - -extern(Windows) export DWORD GetGuiResources( - HANDLE hProcess, - DWORD uiFlags); - -// #endif /* WINVER >= 0x0500 */ - -// #ifndef NOSYSPARAMSINFO - -enum : uint { SPI_GETBEEP = 0x0001 } -enum : uint { SPI_SETBEEP = 0x0002 } -enum : uint { SPI_GETMOUSE = 0x0003 } -enum : uint { SPI_SETMOUSE = 0x0004 } -enum : uint { SPI_GETBORDER = 0x0005 } -enum : uint { SPI_SETBORDER = 0x0006 } -enum : uint { SPI_GETKEYBOARDSPEED = 0x000A } -enum : uint { SPI_SETKEYBOARDSPEED = 0x000B } -enum : uint { SPI_LANGDRIVER = 0x000C } -enum : uint { SPI_ICONHORIZONTALSPACING = 0x000D } -enum : uint { SPI_GETSCREENSAVETIMEOUT = 0x000E } -enum : uint { SPI_SETSCREENSAVETIMEOUT = 0x000F } -enum : uint { SPI_GETSCREENSAVEACTIVE = 0x0010 } -enum : uint { SPI_SETSCREENSAVEACTIVE = 0x0011 } -enum : uint { SPI_GETGRIDGRANULARITY = 0x0012 } -enum : uint { SPI_SETGRIDGRANULARITY = 0x0013 } -enum : uint { SPI_SETDESKWALLPAPER = 0x0014 } -enum : uint { SPI_SETDESKPATTERN = 0x0015 } -enum : uint { SPI_GETKEYBOARDDELAY = 0x0016 } -enum : uint { SPI_SETKEYBOARDDELAY = 0x0017 } -enum : uint { SPI_ICONVERTICALSPACING = 0x0018 } -enum : uint { SPI_GETICONTITLEWRAP = 0x0019 } -enum : uint { SPI_SETICONTITLEWRAP = 0x001A } -enum : uint { SPI_GETMENUDROPALIGNMENT = 0x001B } -enum : uint { SPI_SETMENUDROPALIGNMENT = 0x001C } -enum : uint { SPI_SETDOUBLECLKWIDTH = 0x001D } -enum : uint { SPI_SETDOUBLECLKHEIGHT = 0x001E } -enum : uint { SPI_GETICONTITLELOGFONT = 0x001F } -enum : uint { SPI_SETDOUBLECLICKTIME = 0x0020 } -enum : uint { SPI_SETMOUSEBUTTONSWAP = 0x0021 } -enum : uint { SPI_SETICONTITLELOGFONT = 0x0022 } -enum : uint { SPI_GETFASTTASKSWITCH = 0x0023 } -enum : uint { SPI_SETFASTTASKSWITCH = 0x0024 } -// #if(WINVER >= 0x0400) -enum : uint { SPI_SETDRAGFULLWINDOWS = 0x0025 } -enum : uint { SPI_GETDRAGFULLWINDOWS = 0x0026 } -enum : uint { SPI_GETNONCLIENTMETRICS = 0x0029 } -enum : uint { SPI_SETNONCLIENTMETRICS = 0x002A } -enum : uint { SPI_GETMINIMIZEDMETRICS = 0x002B } -enum : uint { SPI_SETMINIMIZEDMETRICS = 0x002C } -enum : uint { SPI_GETICONMETRICS = 0x002D } -enum : uint { SPI_SETICONMETRICS = 0x002E } -enum : uint { SPI_SETWORKAREA = 0x002F } -enum : uint { SPI_GETWORKAREA = 0x0030 } -enum : uint { SPI_SETPENWINDOWS = 0x0031 } - -enum : uint { SPI_GETHIGHCONTRAST = 0x0042 } -enum : uint { SPI_SETHIGHCONTRAST = 0x0043 } -enum : uint { SPI_GETKEYBOARDPREF = 0x0044 } -enum : uint { SPI_SETKEYBOARDPREF = 0x0045 } -enum : uint { SPI_GETSCREENREADER = 0x0046 } -enum : uint { SPI_SETSCREENREADER = 0x0047 } -enum : uint { SPI_GETANIMATION = 0x0048 } -enum : uint { SPI_SETANIMATION = 0x0049 } -enum : uint { SPI_GETFONTSMOOTHING = 0x004A } -enum : uint { SPI_SETFONTSMOOTHING = 0x004B } -enum : uint { SPI_SETDRAGWIDTH = 0x004C } -enum : uint { SPI_SETDRAGHEIGHT = 0x004D } -enum : uint { SPI_SETHANDHELD = 0x004E } -enum : uint { SPI_GETLOWPOWERTIMEOUT = 0x004F } -enum : uint { SPI_GETPOWEROFFTIMEOUT = 0x0050 } -enum : uint { SPI_SETLOWPOWERTIMEOUT = 0x0051 } -enum : uint { SPI_SETPOWEROFFTIMEOUT = 0x0052 } -enum : uint { SPI_GETLOWPOWERACTIVE = 0x0053 } -enum : uint { SPI_GETPOWEROFFACTIVE = 0x0054 } -enum : uint { SPI_SETLOWPOWERACTIVE = 0x0055 } -enum : uint { SPI_SETPOWEROFFACTIVE = 0x0056 } -enum : uint { SPI_SETCURSORS = 0x0057 } -enum : uint { SPI_SETICONS = 0x0058 } -enum : uint { SPI_GETDEFAULTINPUTLANG = 0x0059 } -enum : uint { SPI_SETDEFAULTINPUTLANG = 0x005A } -enum : uint { SPI_SETLANGTOGGLE = 0x005B } -enum : uint { SPI_GETWINDOWSEXTENSION = 0x005C } -enum : uint { SPI_SETMOUSETRAILS = 0x005D } -enum : uint { SPI_GETMOUSETRAILS = 0x005E } -enum : uint { SPI_SETSCREENSAVERRUNNING = 0x0061 } -alias SPI_SETSCREENSAVERRUNNING SPI_SCREENSAVERRUNNING; -// #endif /* WINVER >= 0x0400 */ -enum : uint { SPI_GETFILTERKEYS = 0x0032 } -enum : uint { SPI_SETFILTERKEYS = 0x0033 } -enum : uint { SPI_GETTOGGLEKEYS = 0x0034 } -enum : uint { SPI_SETTOGGLEKEYS = 0x0035 } -enum : uint { SPI_GETMOUSEKEYS = 0x0036 } -enum : uint { SPI_SETMOUSEKEYS = 0x0037 } -enum : uint { SPI_GETSHOWSOUNDS = 0x0038 } -enum : uint { SPI_SETSHOWSOUNDS = 0x0039 } -enum : uint { SPI_GETSTICKYKEYS = 0x003A } -enum : uint { SPI_SETSTICKYKEYS = 0x003B } -enum : uint { SPI_GETACCESSTIMEOUT = 0x003C } -enum : uint { SPI_SETACCESSTIMEOUT = 0x003D } -// #if(WINVER >= 0x0400) -enum : uint { SPI_GETSERIALKEYS = 0x003E } -enum : uint { SPI_SETSERIALKEYS = 0x003F } -// #endif /* WINVER >= 0x0400 */ -enum : uint { SPI_GETSOUNDSENTRY = 0x0040 } -enum : uint { SPI_SETSOUNDSENTRY = 0x0041 } -// #if(_WIN32_WINNT >= 0x0400) -enum : uint { SPI_GETSNAPTODEFBUTTON = 0x005F } -enum : uint { SPI_SETSNAPTODEFBUTTON = 0x0060 } -// #endif /* _WIN32_WINNT >= 0x0400 */ -// #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) -enum : uint { SPI_GETMOUSEHOVERWIDTH = 0x0062 } -enum : uint { SPI_SETMOUSEHOVERWIDTH = 0x0063 } -enum : uint { SPI_GETMOUSEHOVERHEIGHT = 0x0064 } -enum : uint { SPI_SETMOUSEHOVERHEIGHT = 0x0065 } -enum : uint { SPI_GETMOUSEHOVERTIME = 0x0066 } -enum : uint { SPI_SETMOUSEHOVERTIME = 0x0067 } -enum : uint { SPI_GETWHEELSCROLLLINES = 0x0068 } -enum : uint { SPI_SETWHEELSCROLLLINES = 0x0069 } -enum : uint { SPI_GETMENUSHOWDELAY = 0x006A } -enum : uint { SPI_SETMENUSHOWDELAY = 0x006B } - -enum : uint { SPI_GETSHOWIMEUI = 0x006E } -enum : uint { SPI_SETSHOWIMEUI = 0x006F } -// #endif - -// #if(WINVER >= 0x0500) -enum : uint { SPI_GETMOUSESPEED = 0x0070 } -enum : uint { SPI_SETMOUSESPEED = 0x0071 } -enum : uint { SPI_GETSCREENSAVERRUNNING = 0x0072 } -enum : uint { SPI_GETDESKWALLPAPER = 0x0073 } -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0500) -enum : uint { SPI_GETACTIVEWINDOWTRACKING = 0x1000 } -enum : uint { SPI_SETACTIVEWINDOWTRACKING = 0x1001 } -enum : uint { SPI_GETMENUANIMATION = 0x1002 } -enum : uint { SPI_SETMENUANIMATION = 0x1003 } -enum : uint { SPI_GETCOMBOBOXANIMATION = 0x1004 } -enum : uint { SPI_SETCOMBOBOXANIMATION = 0x1005 } -enum : uint { SPI_GETLISTBOXSMOOTHSCROLLING = 0x1006 } -enum : uint { SPI_SETLISTBOXSMOOTHSCROLLING = 0x1007 } -enum : uint { SPI_GETGRADIENTCAPTIONS = 0x1008 } -enum : uint { SPI_SETGRADIENTCAPTIONS = 0x1009 } -enum : uint { SPI_GETKEYBOARDCUES = 0x100A } -enum : uint { SPI_SETKEYBOARDCUES = 0x100B } -alias SPI_GETKEYBOARDCUES SPI_GETMENUUNDERLINES; -alias SPI_SETKEYBOARDCUES SPI_SETMENUUNDERLINES; -enum : uint { SPI_GETACTIVEWNDTRKZORDER = 0x100C } -enum : uint { SPI_SETACTIVEWNDTRKZORDER = 0x100D } -enum : uint { SPI_GETHOTTRACKING = 0x100E } -enum : uint { SPI_SETHOTTRACKING = 0x100F } -enum : uint { SPI_GETMENUFADE = 0x1012 } -enum : uint { SPI_SETMENUFADE = 0x1013 } -enum : uint { SPI_GETSELECTIONFADE = 0x1014 } -enum : uint { SPI_SETSELECTIONFADE = 0x1015 } -enum : uint { SPI_GETTOOLTIPANIMATION = 0x1016 } -enum : uint { SPI_SETTOOLTIPANIMATION = 0x1017 } -enum : uint { SPI_GETTOOLTIPFADE = 0x1018 } -enum : uint { SPI_SETTOOLTIPFADE = 0x1019 } -enum : uint { SPI_GETCURSORSHADOW = 0x101A } -enum : uint { SPI_SETCURSORSHADOW = 0x101B } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { SPI_GETMOUSESONAR = 0x101C } -enum : uint { SPI_SETMOUSESONAR = 0x101D } -enum : uint { SPI_GETMOUSECLICKLOCK = 0x101E } -enum : uint { SPI_SETMOUSECLICKLOCK = 0x101F } -enum : uint { SPI_GETMOUSEVANISH = 0x1020 } -enum : uint { SPI_SETMOUSEVANISH = 0x1021 } -enum : uint { SPI_GETFLATMENU = 0x1022 } -enum : uint { SPI_SETFLATMENU = 0x1023 } -enum : uint { SPI_GETDROPSHADOW = 0x1024 } -enum : uint { SPI_SETDROPSHADOW = 0x1025 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { SPI_GETUIEFFECTS = 0x103E } -enum : uint { SPI_SETUIEFFECTS = 0x103F } - -enum : uint { SPI_GETFOREGROUNDLOCKTIMEOUT = 0x2000 } -enum : uint { SPI_SETFOREGROUNDLOCKTIMEOUT = 0x2001 } -enum : uint { SPI_GETACTIVEWNDTRKTIMEOUT = 0x2002 } -enum : uint { SPI_SETACTIVEWNDTRKTIMEOUT = 0x2003 } -enum : uint { SPI_GETFOREGROUNDFLASHCOUNT = 0x2004 } -enum : uint { SPI_SETFOREGROUNDFLASHCOUNT = 0x2005 } -enum : uint { SPI_GETCARETWIDTH = 0x2006 } -enum : uint { SPI_SETCARETWIDTH = 0x2007 } - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { SPI_GETMOUSECLICKLOCKTIME = 0x2008 } -enum : uint { SPI_SETMOUSECLICKLOCKTIME = 0x2009 } -enum : uint { SPI_GETFONTSMOOTHINGTYPE = 0x200A } -enum : uint { SPI_SETFONTSMOOTHINGTYPE = 0x200B } - -enum : uint { FE_FONTSMOOTHINGSTANDARD = 0x0001 } -enum : uint { FE_FONTSMOOTHINGCLEARTYPE = 0x0002 } -enum : uint { FE_FONTSMOOTHINGDOCKING = 0x8000 } - -enum : uint { SPI_GETFONTSMOOTHINGCONTRAST = 0x200C } -enum : uint { SPI_SETFONTSMOOTHINGCONTRAST = 0x200D } - -enum : uint { SPI_GETFOCUSBORDERWIDTH = 0x200E } -enum : uint { SPI_SETFOCUSBORDERWIDTH = 0x200F } -enum : uint { SPI_GETFOCUSBORDERHEIGHT = 0x2010 } -enum : uint { SPI_SETFOCUSBORDERHEIGHT = 0x2011 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #endif /* WINVER >= 0x0500 */ - -enum : uint { SPIF_UPDATEINIFILE = 0x0001 } -enum : uint { SPIF_SENDWININICHANGE = 0x0002 } -alias SPIF_SENDWININICHANGE SPIF_SENDCHANGE; - -enum { METRICS_USEDEFAULT = -1 } -// #ifdef _WINGDI_ -// #ifndef NOGDI -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE -// #endif /* NOGDI */ -// #endif /* _WINGDI_ */ - -enum : uint { ARW_BOTTOMLEFT = 0x0000 } -enum : uint { ARW_BOTTOMRIGHT = 0x0001 } -enum : uint { ARW_TOPLEFT = 0x0002 } -enum : uint { ARW_TOPRIGHT = 0x0003 } -enum : uint { ARW_STARTMASK = 0x0003 } -enum : uint { ARW_STARTRIGHT = 0x0001 } -enum : uint { ARW_STARTTOP = 0x0002 } - -enum : uint { ARW_LEFT = 0x0000 } -enum : uint { ARW_RIGHT = 0x0000 } -enum : uint { ARW_UP = 0x0004 } -enum : uint { ARW_DOWN = 0x0004 } -enum : uint { ARW_HIDE = 0x0008 } - -struct tagMINIMIZEDMETRICS { - UINT cbSize; - int iWidth; - int iHorzGap; - int iVertGap; - int iArrange; -} -alias tagMINIMIZEDMETRICS MINIMIZEDMETRICS; -alias tagMINIMIZEDMETRICS* PMINIMIZEDMETRICS; -alias tagMINIMIZEDMETRICS* LPMINIMIZEDMETRICS; - -// #ifdef _WINGDI_ -// #ifndef NOGDI -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE -// #endif /* NOGDI */ -// #endif /* _WINGDI_ */ - -struct tagANIMATIONINFO { - UINT cbSize; - int iMinAnimate; -} -alias tagANIMATIONINFO ANIMATIONINFO; -alias tagANIMATIONINFO* LPANIMATIONINFO; - -struct tagSERIALKEYSA { - UINT cbSize; - DWORD dwFlags; - LPSTR lpszActivePort; - LPSTR lpszPort; - UINT iBaudRate; - UINT iPortState; - UINT iActive; -} -alias tagSERIALKEYSA SERIALKEYSA; -alias tagSERIALKEYSA* LPSERIALKEYSA; - -struct tagSERIALKEYSW { - UINT cbSize; - DWORD dwFlags; - LPWSTR lpszActivePort; - LPWSTR lpszPort; - UINT iBaudRate; - UINT iPortState; - UINT iActive; -} -alias tagSERIALKEYSW SERIALKEYSW; -alias tagSERIALKEYSW* LPSERIALKEYSW; - -// #ifdef UNICODE -// ... -// #else -alias SERIALKEYSA SERIALKEYS; -alias LPSERIALKEYSA LPSERIALKEYS; -// #endif // UNICODE - -enum : uint { SERKF_SERIALKEYSON = 0x00000001 } -enum : uint { SERKF_AVAILABLE = 0x00000002 } -enum : uint { SERKF_INDICATOR = 0x00000004 } - -struct tagHIGHCONTRASTA { - UINT cbSize; - DWORD dwFlags; - LPSTR lpszDefaultScheme; -} -alias tagHIGHCONTRASTA HIGHCONTRASTA; -alias tagHIGHCONTRASTA* LPHIGHCONTRASTA; - -struct tagHIGHCONTRASTW { - UINT cbSize; - DWORD dwFlags; - LPWSTR lpszDefaultScheme; -} -alias tagHIGHCONTRASTW HIGHCONTRASTW; -alias tagHIGHCONTRASTW* LPHIGHCONTRASTW; - -// #ifdef UNICODE -// ... -// #else -alias HIGHCONTRASTA HIGHCONTRAST; -alias LPHIGHCONTRASTA LPHIGHCONTRAST; -// #endif // UNICODE - -enum : uint { HCF_HIGHCONTRASTON = 0x00000001 } -enum : uint { HCF_AVAILABLE = 0x00000002 } -enum : uint { HCF_HOTKEYACTIVE = 0x00000004 } -enum : uint { HCF_CONFIRMHOTKEY = 0x00000008 } -enum : uint { HCF_HOTKEYSOUND = 0x00000010 } -enum : uint { HCF_INDICATOR = 0x00000020 } -enum : uint { HCF_HOTKEYAVAILABLE = 0x00000040 } - -enum : uint { CDS_UPDATEREGISTRY = 0x00000001 } -enum : uint { CDS_TEST = 0x00000002 } -enum : uint { CDS_FULLSCREEN = 0x00000004 } -enum : uint { CDS_GLOBAL = 0x00000008 } -enum : uint { CDS_SET_PRIMARY = 0x00000010 } -enum : uint { CDS_VIDEOPARAMETERS = 0x00000020 } -enum : uint { CDS_RESET = 0x40000000 } -enum : uint { CDS_NORESET = 0x10000000 } - -// #include - -enum : uint { DISP_CHANGE_SUCCESSFUL = 0 } -enum : uint { DISP_CHANGE_RESTART = 1 } -enum { DISP_CHANGE_FAILED = -1 } -enum { DISP_CHANGE_BADMODE = -2 } -enum { DISP_CHANGE_NOTUPDATED = -3 } -enum { DISP_CHANGE_BADFLAGS = -4 } -enum { DISP_CHANGE_BADPARAM = -5 } -// #if(_WIN32_WINNT >= 0x0501) -enum { DISP_CHANGE_BADDUALVIEW = -6 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #ifdef _WINGDI_ -// #ifndef NOGDI - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #... -// #... - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0500) - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #... - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE -// #endif /* WINVER >= 0x0500 */ - -// #endif /* NOGDI */ -// #endif /* _WINGDI_ */ - -extern(Windows) export BOOL SystemParametersInfoA( - UINT uiAction, - UINT uiParam, - PVOID pvParam, - UINT fWinIni); -extern(Windows) export BOOL SystemParametersInfoW( - UINT uiAction, - UINT uiParam, - PVOID pvParam, - UINT fWinIni); -// #ifdef UNICODE -// #... -// #else -alias SystemParametersInfoA SystemParametersInfo; -// #endif // !UNICODE - -// #endif /* !NOSYSPARAMSINFO */ - -struct tagFILTERKEYS { - UINT cbSize; - DWORD dwFlags; - DWORD iWaitMSec; - DWORD iDelayMSec; - DWORD iRepeatMSec; - DWORD iBounceMSec; -} -alias tagFILTERKEYS FILTERKEYS; -alias tagFILTERKEYS* LPFILTERKEYS; - -enum : uint { FKF_FILTERKEYSON = 0x00000001 } -enum : uint { FKF_AVAILABLE = 0x00000002 } -enum : uint { FKF_HOTKEYACTIVE = 0x00000004 } -enum : uint { FKF_CONFIRMHOTKEY = 0x00000008 } -enum : uint { FKF_HOTKEYSOUND = 0x00000010 } -enum : uint { FKF_INDICATOR = 0x00000020 } -enum : uint { FKF_CLICKON = 0x00000040 } - -struct tagSTICKYKEYS { - UINT cbSize; - DWORD dwFlags; -} -alias tagSTICKYKEYS STICKYKEYS; -alias tagSTICKYKEYS* LPSTICKYKEYS; - -enum : uint { SKF_STICKYKEYSON = 0x00000001 } -enum : uint { SKF_AVAILABLE = 0x00000002 } -enum : uint { SKF_HOTKEYACTIVE = 0x00000004 } -enum : uint { SKF_CONFIRMHOTKEY = 0x00000008 } -enum : uint { SKF_HOTKEYSOUND = 0x00000010 } -enum : uint { SKF_INDICATOR = 0x00000020 } -enum : uint { SKF_AUDIBLEFEEDBACK = 0x00000040 } -enum : uint { SKF_TRISTATE = 0x00000080 } -enum : uint { SKF_TWOKEYSOFF = 0x00000100 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { SKF_LALTLATCHED = 0x10000000 } -enum : uint { SKF_LCTLLATCHED = 0x04000000 } -enum : uint { SKF_LSHIFTLATCHED = 0x01000000 } -enum : uint { SKF_RALTLATCHED = 0x20000000 } -enum : uint { SKF_RCTLLATCHED = 0x08000000 } -enum : uint { SKF_RSHIFTLATCHED = 0x02000000 } -enum : uint { SKF_LWINLATCHED = 0x40000000 } -enum : uint { SKF_RWINLATCHED = 0x80000000 } -enum : uint { SKF_LALTLOCKED = 0x00100000 } -enum : uint { SKF_LCTLLOCKED = 0x00040000 } -enum : uint { SKF_LSHIFTLOCKED = 0x00010000 } -enum : uint { SKF_RALTLOCKED = 0x00200000 } -enum : uint { SKF_RCTLLOCKED = 0x00080000 } -enum : uint { SKF_RSHIFTLOCKED = 0x00020000 } -enum : uint { SKF_LWINLOCKED = 0x00400000 } -enum : uint { SKF_RWINLOCKED = 0x00800000 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -struct tagMOUSEKEYS { - UINT cbSize; - DWORD dwFlags; - DWORD iMaxSpeed; - DWORD iTimeToMaxSpeed; - DWORD iCtrlSpeed; - DWORD dwReserved1; - DWORD dwReserved2; -} -alias tagMOUSEKEYS MOUSEKEYS; -alias tagMOUSEKEYS* LPMOUSEKEYS; - -enum : uint { MKF_MOUSEKEYSON = 0x00000001 } -enum : uint { MKF_AVAILABLE = 0x00000002 } -enum : uint { MKF_HOTKEYACTIVE = 0x00000004 } -enum : uint { MKF_CONFIRMHOTKEY = 0x00000008 } -enum : uint { MKF_HOTKEYSOUND = 0x00000010 } -enum : uint { MKF_INDICATOR = 0x00000020 } -enum : uint { MKF_MODIFIERS = 0x00000040 } -enum : uint { MKF_REPLACENUMBERS = 0x00000080 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { MKF_LEFTBUTTONSEL = 0x10000000 } -enum : uint { MKF_RIGHTBUTTONSEL = 0x20000000 } -enum : uint { MKF_LEFTBUTTONDOWN = 0x01000000 } -enum : uint { MKF_RIGHTBUTTONDOWN = 0x02000000 } -enum : uint { MKF_MOUSEMODE = 0x80000000 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -struct tagACCESSTIMEOUT { - UINT cbSize; - DWORD dwFlags; - DWORD iTimeOutMSec; -} -alias tagACCESSTIMEOUT ACCESSTIMEOUT; -alias tagACCESSTIMEOUT* LPACCESSTIMEOUT; - -enum : uint { ATF_TIMEOUTON = 0x00000001 } -enum : uint { ATF_ONOFFFEEDBACK = 0x00000002 } - -enum : uint { SSGF_NONE = 0 } -enum : uint { SSGF_DISPLAY = 3 } - -enum : uint { SSTF_NONE = 0 } -enum : uint { SSTF_CHARS = 1 } -enum : uint { SSTF_BORDER = 2 } -enum : uint { SSTF_DISPLAY = 3 } - -enum : uint { SSWF_NONE = 0 } -enum : uint { SSWF_TITLE = 1 } -enum : uint { SSWF_WINDOW = 2 } -enum : uint { SSWF_DISPLAY = 3 } -enum : uint { SSWF_CUSTOM = 4 } - -struct tagSOUNDSENTRYA { - UINT cbSize; - DWORD dwFlags; - DWORD iFSTextEffect; - DWORD iFSTextEffectMSec; - DWORD iFSTextEffectColorBits; - DWORD iFSGrafEffect; - DWORD iFSGrafEffectMSec; - DWORD iFSGrafEffectColor; - DWORD iWindowsEffect; - DWORD iWindowsEffectMSec; - LPSTR lpszWindowsEffectDLL; - DWORD iWindowsEffectOrdinal; -} -alias tagSOUNDSENTRYA SOUNDSENTRYA; -alias tagSOUNDSENTRYA* LPSOUNDSENTRYA; - -struct tagSOUNDSENTRYW { - UINT cbSize; - DWORD dwFlags; - DWORD iFSTextEffect; - DWORD iFSTextEffectMSec; - DWORD iFSTextEffectColorBits; - DWORD iFSGrafEffect; - DWORD iFSGrafEffectMSec; - DWORD iFSGrafEffectColor; - DWORD iWindowsEffect; - DWORD iWindowsEffectMSec; - LPWSTR lpszWindowsEffectDLL; - DWORD iWindowsEffectOrdinal; -} -alias tagSOUNDSENTRYW SOUNDSENTRYW; -alias tagSOUNDSENTRYW* LPSOUNDSENTRYW; - -// #ifdef UNICODE -// ... -// #else -alias SOUNDSENTRYA SOUNDSENTRY; -alias LPSOUNDSENTRYA LPSOUNDSENTRY; -// #endif // UNICODE - -enum : uint { SSF_SOUNDSENTRYON = 0x00000001 } -enum : uint { SSF_AVAILABLE = 0x00000002 } -enum : uint { SSF_INDICATOR = 0x00000004 } - -struct tagTOGGLEKEYS { - UINT cbSize; - DWORD dwFlags; -} -alias tagTOGGLEKEYS TOGGLEKEYS; -alias tagTOGGLEKEYS* LPTOGGLEKEYS; - -enum : uint { TKF_TOGGLEKEYSON = 0x00000001 } -enum : uint { TKF_AVAILABLE = 0x00000002 } -enum : uint { TKF_HOTKEYACTIVE = 0x00000004 } -enum : uint { TKF_CONFIRMHOTKEY = 0x00000008 } -enum : uint { TKF_HOTKEYSOUND = 0x00000010 } -enum : uint { TKF_INDICATOR = 0x00000020 } - -extern(Windows) export VOID SetDebugErrorLevel( - DWORD dwLevel); - -enum : uint { SLE_ERROR = 0x00000001 } -enum : uint { SLE_MINORERROR = 0x00000002 } -enum : uint { SLE_WARNING = 0x00000003 } - -extern(Windows) export VOID SetLastErrorEx( - DWORD dwErrCode, - DWORD dwType); - -// #if(WINVER >= 0x0500) - -enum : uint { MONITOR_DEFAULTTONULL = 0x00000000 } -enum : uint { MONITOR_DEFAULTTOPRIMARY = 0x00000001 } -enum : uint { MONITOR_DEFAULTTONEAREST = 0x00000002 } - -extern(Windows) export HMONITOR MonitorFromPoint( - POINT pt, - DWORD dwFlags); - -extern(Windows) export HMONITOR MonitorFromRect( - LPCRECT lprc, - DWORD dwFlags); - -extern(Windows) export HMONITOR MonitorFromWindow(HWND hwnd, DWORD dwFlags); - -enum : uint { MONITORINFOF_PRIMARY = 0x00000001 } - -// #ifndef CCHDEVICENAME -// #... -// #endif - -struct tagMONITORINFO { - DWORD cbSize; - RECT rcMonitor; - RECT rcWork; - DWORD dwFlags; -} -alias tagMONITORINFO MONITORINFO; -alias tagMONITORINFO* LPMONITORINFO; - -// #ifdef __cplusplus -struct tagMONITORINFOEXA { - DWORD cbSize; - RECT rcMonitor; - RECT rcWork; - DWORD dwFlags; - CHAR szDevice[CCHDEVICENAME]; -} -alias tagMONITORINFOEXA MONITORINFOEXA; -alias tagMONITORINFOEXA* LPMONITORINFOEXA; - -struct tagMONITORINFOEXW { - DWORD cbSize; - RECT rcMonitor; - RECT rcWork; - DWORD dwFlags; - WCHAR szDevice[CCHDEVICENAME]; -} -alias tagMONITORINFOEXW MONITORINFOEXW; -alias tagMONITORINFOEXW* LPMONITORINFOEXW; - -// #ifdef UNICODE -// ... -// #else -alias MONITORINFOEXA MONITORINFOEX; -alias LPMONITORINFOEXA LPMONITORINFOEX; -// #endif // UNICODE -// #else // ndef __cplusplus -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE -// #endif - -extern(Windows) export BOOL GetMonitorInfoA(HMONITOR hMonitor, LPMONITORINFO lpmi); -extern(Windows) export BOOL GetMonitorInfoW(HMONITOR hMonitor, LPMONITORINFO lpmi); -// #ifdef UNICODE -// #... -// #else -alias GetMonitorInfoA GetMonitorInfo; -// #endif // !UNICODE - -extern(Windows) alias BOOL function(HMONITOR, HDC, LPRECT, LPARAM) MONITORENUMPROC; - -extern(Windows) export BOOL EnumDisplayMonitors( - HDC hdc, - LPCRECT lprcClip, - MONITORENUMPROC lpfnEnum, - LPARAM dwData); - -// #ifndef NOWINABLE - -extern(Windows) export VOID NotifyWinEvent( - DWORD event, - HWND hwnd, - LONG idObject, - LONG idChild); - -extern(Windows) alias VOID function( HWINEVENTHOOK hWinEventHook, DWORD event, HWND hwnd, LONG idObject, LONG idChild, DWORD idEventThread, DWORD dwmsEventTime) WINEVENTPROC; - -extern(Windows) export HWINEVENTHOOK SetWinEventHook( - DWORD eventMin, - DWORD eventMax, - HMODULE hmodWinEventProc, - WINEVENTPROC pfnWinEventProc, - DWORD idProcess, - DWORD idThread, - DWORD dwFlags); - -// #if(_WIN32_WINNT >= 0x0501) -extern(Windows) export BOOL IsWinEventHookInstalled( - DWORD event); -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { WINEVENT_OUTOFCONTEXT = 0x0000 } -enum : uint { WINEVENT_SKIPOWNTHREAD = 0x0001 } -enum : uint { WINEVENT_SKIPOWNPROCESS = 0x0002 } -enum : uint { WINEVENT_INCONTEXT = 0x0004 } - -extern(Windows) export BOOL UnhookWinEvent( - HWINEVENTHOOK hWinEventHook); - -enum : uint { CHILDID_SELF = 0 } -enum : uint { INDEXID_OBJECT = 0 } -enum : uint { INDEXID_CONTAINER = 0 } - -enum : uint { OBJID_WINDOW = cast(LONG)0x00000000 } -enum : uint { OBJID_SYSMENU = cast(LONG)0xFFFFFFFF } -enum : uint { OBJID_TITLEBAR = cast(LONG)0xFFFFFFFE } -enum : uint { OBJID_MENU = cast(LONG)0xFFFFFFFD } -enum : uint { OBJID_CLIENT = cast(LONG)0xFFFFFFFC } -enum : uint { OBJID_VSCROLL = cast(LONG)0xFFFFFFFB } -enum : uint { OBJID_HSCROLL = cast(LONG)0xFFFFFFFA } -enum : uint { OBJID_SIZEGRIP = cast(LONG)0xFFFFFFF9 } -enum : uint { OBJID_CARET = cast(LONG)0xFFFFFFF8 } -enum : uint { OBJID_CURSOR = cast(LONG)0xFFFFFFF7 } -enum : uint { OBJID_ALERT = cast(LONG)0xFFFFFFF6 } -enum : uint { OBJID_SOUND = cast(LONG)0xFFFFFFF5 } -enum : uint { OBJID_QUERYCLASSNAMEIDX = cast(LONG)0xFFFFFFF4 } -enum : uint { OBJID_NATIVEOM = cast(LONG)0xFFFFFFF0 } - -enum : uint { EVENT_MIN = 0x00000001 } -enum : uint { EVENT_MAX = 0x7FFFFFFF } - -enum : uint { EVENT_SYSTEM_SOUND = 0x0001 } - -enum : uint { EVENT_SYSTEM_ALERT = 0x0002 } - -enum : uint { EVENT_SYSTEM_FOREGROUND = 0x0003 } - -enum : uint { EVENT_SYSTEM_MENUSTART = 0x0004 } -enum : uint { EVENT_SYSTEM_MENUEND = 0x0005 } - -enum : uint { EVENT_SYSTEM_MENUPOPUPSTART = 0x0006 } -enum : uint { EVENT_SYSTEM_MENUPOPUPEND = 0x0007 } - -enum : uint { EVENT_SYSTEM_CAPTURESTART = 0x0008 } -enum : uint { EVENT_SYSTEM_CAPTUREEND = 0x0009 } - -enum : uint { EVENT_SYSTEM_MOVESIZESTART = 0x000A } -enum : uint { EVENT_SYSTEM_MOVESIZEEND = 0x000B } - -enum : uint { EVENT_SYSTEM_CONTEXTHELPSTART = 0x000C } -enum : uint { EVENT_SYSTEM_CONTEXTHELPEND = 0x000D } - -enum : uint { EVENT_SYSTEM_DRAGDROPSTART = 0x000E } -enum : uint { EVENT_SYSTEM_DRAGDROPEND = 0x000F } - -enum : uint { EVENT_SYSTEM_DIALOGSTART = 0x0010 } -enum : uint { EVENT_SYSTEM_DIALOGEND = 0x0011 } - -enum : uint { EVENT_SYSTEM_SCROLLINGSTART = 0x0012 } -enum : uint { EVENT_SYSTEM_SCROLLINGEND = 0x0013 } - -enum : uint { EVENT_SYSTEM_SWITCHSTART = 0x0014 } -enum : uint { EVENT_SYSTEM_SWITCHEND = 0x0015 } - -enum : uint { EVENT_SYSTEM_MINIMIZESTART = 0x0016 } -enum : uint { EVENT_SYSTEM_MINIMIZEEND = 0x0017 } - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { EVENT_CONSOLE_CARET = 0x4001 } -enum : uint { EVENT_CONSOLE_UPDATE_REGION = 0x4002 } -enum : uint { EVENT_CONSOLE_UPDATE_SIMPLE = 0x4003 } -enum : uint { EVENT_CONSOLE_UPDATE_SCROLL = 0x4004 } -enum : uint { EVENT_CONSOLE_LAYOUT = 0x4005 } -enum : uint { EVENT_CONSOLE_START_APPLICATION = 0x4006 } -enum : uint { EVENT_CONSOLE_END_APPLICATION = 0x4007 } - -enum : uint { CONSOLE_APPLICATION_16BIT = 0x0001 } - -enum : uint { CONSOLE_CARET_SELECTION = 0x0001 } -enum : uint { CONSOLE_CARET_VISIBLE = 0x0002 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { EVENT_OBJECT_CREATE = 0x8000 } -enum : uint { EVENT_OBJECT_DESTROY = 0x8001 } -enum : uint { EVENT_OBJECT_SHOW = 0x8002 } -enum : uint { EVENT_OBJECT_HIDE = 0x8003 } -enum : uint { EVENT_OBJECT_REORDER = 0x8004 } - -enum : uint { EVENT_OBJECT_FOCUS = 0x8005 } -enum : uint { EVENT_OBJECT_SELECTION = 0x8006 } -enum : uint { EVENT_OBJECT_SELECTIONADD = 0x8007 } -enum : uint { EVENT_OBJECT_SELECTIONREMOVE = 0x8008 } -enum : uint { EVENT_OBJECT_SELECTIONWITHIN = 0x8009 } - -enum : uint { EVENT_OBJECT_STATECHANGE = 0x800A } - -enum : uint { EVENT_OBJECT_LOCATIONCHANGE = 0x800B } - -enum : uint { EVENT_OBJECT_NAMECHANGE = 0x800C } -enum : uint { EVENT_OBJECT_DESCRIPTIONCHANGE = 0x800D } -enum : uint { EVENT_OBJECT_VALUECHANGE = 0x800E } -enum : uint { EVENT_OBJECT_PARENTCHANGE = 0x800F } -enum : uint { EVENT_OBJECT_HELPCHANGE = 0x8010 } -enum : uint { EVENT_OBJECT_DEFACTIONCHANGE = 0x8011 } -enum : uint { EVENT_OBJECT_ACCELERATORCHANGE = 0x8012 } - -enum : uint { SOUND_SYSTEM_STARTUP = 1 } -enum : uint { SOUND_SYSTEM_SHUTDOWN = 2 } -enum : uint { SOUND_SYSTEM_BEEP = 3 } -enum : uint { SOUND_SYSTEM_ERROR = 4 } -enum : uint { SOUND_SYSTEM_QUESTION = 5 } -enum : uint { SOUND_SYSTEM_WARNING = 6 } -enum : uint { SOUND_SYSTEM_INFORMATION = 7 } -enum : uint { SOUND_SYSTEM_MAXIMIZE = 8 } -enum : uint { SOUND_SYSTEM_MINIMIZE = 9 } -enum : uint { SOUND_SYSTEM_RESTOREUP = 10 } -enum : uint { SOUND_SYSTEM_RESTOREDOWN = 11 } -enum : uint { SOUND_SYSTEM_APPSTART = 12 } -enum : uint { SOUND_SYSTEM_FAULT = 13 } -enum : uint { SOUND_SYSTEM_APPEND = 14 } -enum : uint { SOUND_SYSTEM_MENUCOMMAND = 15 } -enum : uint { SOUND_SYSTEM_MENUPOPUP = 16 } -enum : uint { CSOUND_SYSTEM = 16 } - -enum : uint { ALERT_SYSTEM_INFORMATIONAL = 1 } -enum : uint { ALERT_SYSTEM_WARNING = 2 } -enum : uint { ALERT_SYSTEM_ERROR = 3 } -enum : uint { ALERT_SYSTEM_QUERY = 4 } -enum : uint { ALERT_SYSTEM_CRITICAL = 5 } -enum : uint { CALERT_SYSTEM = 6 } - -struct tagGUITHREADINFO { - DWORD cbSize; - DWORD flags; - HWND hwndActive; - HWND hwndFocus; - HWND hwndCapture; - HWND hwndMenuOwner; - HWND hwndMoveSize; - HWND hwndCaret; - RECT rcCaret; -} -alias tagGUITHREADINFO GUITHREADINFO; -alias tagGUITHREADINFO* PGUITHREADINFO; -alias tagGUITHREADINFO* LPGUITHREADINFO; - -enum : uint { GUI_CARETBLINKING = 0x00000001 } -enum : uint { GUI_INMOVESIZE = 0x00000002 } -enum : uint { GUI_INMENUMODE = 0x00000004 } -enum : uint { GUI_SYSTEMMENUMODE = 0x00000008 } -enum : uint { GUI_POPUPMENUMODE = 0x00000010 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { GUI_16BITTASK = 0x00000020 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export BOOL GetGUIThreadInfo( - DWORD idThread, - PGUITHREADINFO pgui); - -extern(Windows) export UINT GetWindowModuleFileNameA( - HWND hwnd, - LPSTR pszFileName, - UINT cchFileNameMax); -extern(Windows) export UINT GetWindowModuleFileNameW( - HWND hwnd, - LPWSTR pszFileName, - UINT cchFileNameMax); -// #ifdef UNICODE -// #... -// #else -alias GetWindowModuleFileNameA GetWindowModuleFileName; -// #endif // !UNICODE - -// #ifndef NO_STATE_FLAGS -enum : uint { STATE_SYSTEM_UNAVAILABLE = 0x00000001 } -enum : uint { STATE_SYSTEM_SELECTED = 0x00000002 } -enum : uint { STATE_SYSTEM_FOCUSED = 0x00000004 } -enum : uint { STATE_SYSTEM_PRESSED = 0x00000008 } -enum : uint { STATE_SYSTEM_CHECKED = 0x00000010 } -enum : uint { STATE_SYSTEM_MIXED = 0x00000020 } -alias STATE_SYSTEM_MIXED STATE_SYSTEM_INDETERMINATE; -enum : uint { STATE_SYSTEM_READONLY = 0x00000040 } -enum : uint { STATE_SYSTEM_HOTTRACKED = 0x00000080 } -enum : uint { STATE_SYSTEM_DEFAULT = 0x00000100 } -enum : uint { STATE_SYSTEM_EXPANDED = 0x00000200 } -enum : uint { STATE_SYSTEM_COLLAPSED = 0x00000400 } -enum : uint { STATE_SYSTEM_BUSY = 0x00000800 } -enum : uint { STATE_SYSTEM_FLOATING = 0x00001000 } -enum : uint { STATE_SYSTEM_MARQUEED = 0x00002000 } -enum : uint { STATE_SYSTEM_ANIMATED = 0x00004000 } -enum : uint { STATE_SYSTEM_INVISIBLE = 0x00008000 } -enum : uint { STATE_SYSTEM_OFFSCREEN = 0x00010000 } -enum : uint { STATE_SYSTEM_SIZEABLE = 0x00020000 } -enum : uint { STATE_SYSTEM_MOVEABLE = 0x00040000 } -enum : uint { STATE_SYSTEM_SELFVOICING = 0x00080000 } -enum : uint { STATE_SYSTEM_FOCUSABLE = 0x00100000 } -enum : uint { STATE_SYSTEM_SELECTABLE = 0x00200000 } -enum : uint { STATE_SYSTEM_LINKED = 0x00400000 } -enum : uint { STATE_SYSTEM_TRAVERSED = 0x00800000 } -enum : uint { STATE_SYSTEM_MULTISELECTABLE = 0x01000000 } -enum : uint { STATE_SYSTEM_EXTSELECTABLE = 0x02000000 } -enum : uint { STATE_SYSTEM_ALERT_LOW = 0x04000000 } -enum : uint { STATE_SYSTEM_ALERT_MEDIUM = 0x08000000 } -enum : uint { STATE_SYSTEM_ALERT_HIGH = 0x10000000 } -enum : uint { STATE_SYSTEM_PROTECTED = 0x20000000 } -enum : uint { STATE_SYSTEM_VALID = 0x3FFFFFFF } -// #endif - -enum : uint { CCHILDREN_TITLEBAR = 5 } -enum : uint { CCHILDREN_SCROLLBAR = 5 } - -struct tagCURSORINFO { - DWORD cbSize; - DWORD flags; - HCURSOR hCursor; - POINT ptScreenPos; -} -alias tagCURSORINFO CURSORINFO; -alias tagCURSORINFO* PCURSORINFO; -alias tagCURSORINFO* LPCURSORINFO; - -enum : uint { CURSOR_SHOWING = 0x00000001 } - -extern(Windows) export BOOL GetCursorInfo( - PCURSORINFO pci -); - -struct tagWINDOWINFO { - DWORD cbSize; - RECT rcWindow; - RECT rcClient; - DWORD dwStyle; - DWORD dwExStyle; - DWORD dwWindowStatus; - UINT cxWindowBorders; - UINT cyWindowBorders; - ATOM atomWindowType; - WORD wCreatorVersion; -} -alias tagWINDOWINFO WINDOWINFO; -alias tagWINDOWINFO* PWINDOWINFO; -alias tagWINDOWINFO* LPWINDOWINFO; - -enum : uint { WS_ACTIVECAPTION = 0x0001 } - -extern(Windows) export BOOL GetWindowInfo( - HWND hwnd, - PWINDOWINFO pwi -); - -struct tagTITLEBARINFO { - DWORD cbSize; - RECT rcTitleBar; - DWORD rgstate[CCHILDREN_TITLEBAR+1]; -} -alias tagTITLEBARINFO TITLEBARINFO; -alias tagTITLEBARINFO* PTITLEBARINFO; -alias tagTITLEBARINFO* LPTITLEBARINFO; - -extern(Windows) export BOOL GetTitleBarInfo( - HWND hwnd, - PTITLEBARINFO pti -); - -struct tagMENUBARINFO { - DWORD cbSize; - RECT rcBar; - HMENU hMenu; - HWND hwndMenu; -// BOOL fBarFocused:1; -// BOOL fFocused:1; -} -alias tagMENUBARINFO MENUBARINFO; -alias tagMENUBARINFO* PMENUBARINFO; -alias tagMENUBARINFO* LPMENUBARINFO; - -extern(Windows) export BOOL GetMenuBarInfo( - HWND hwnd, - LONG idObject, - LONG idItem, - PMENUBARINFO pmbi -); - -struct tagSCROLLBARINFO { - DWORD cbSize; - RECT rcScrollBar; - int dxyLineButton; - int xyThumbTop; - int xyThumbBottom; - int reserved; - DWORD rgstate[CCHILDREN_SCROLLBAR+1]; -} -alias tagSCROLLBARINFO SCROLLBARINFO; -alias tagSCROLLBARINFO* PSCROLLBARINFO; -alias tagSCROLLBARINFO* LPSCROLLBARINFO; - -extern(Windows) export BOOL GetScrollBarInfo( - HWND hwnd, - LONG idObject, - PSCROLLBARINFO psbi -); - -struct tagCOMBOBOXINFO { - DWORD cbSize; - RECT rcItem; - RECT rcButton; - DWORD stateButton; - HWND hwndCombo; - HWND hwndItem; - HWND hwndList; -} -alias tagCOMBOBOXINFO COMBOBOXINFO; -alias tagCOMBOBOXINFO* PCOMBOBOXINFO; -alias tagCOMBOBOXINFO* LPCOMBOBOXINFO; - -extern(Windows) export BOOL GetComboBoxInfo( - HWND hwndCombo, - PCOMBOBOXINFO pcbi -); - -enum : uint { GA_PARENT = 1 } -enum : uint { GA_ROOT = 2 } -enum : uint { GA_ROOTOWNER = 3 } - -extern(Windows) export HWND GetAncestor( - HWND hwnd, - UINT gaFlags -); - -extern(Windows) export HWND RealChildWindowFromPoint( - HWND hwndParent, - POINT ptParentClientCoords -); - -extern(Windows) export UINT RealGetWindowClassA( - HWND hwnd, - LPSTR pszType, - UINT cchType -); - -extern(Windows) export UINT RealGetWindowClassW( - HWND hwnd, - LPWSTR pszType, - UINT cchType -); -// #ifdef UNICODE -// #... -// #else -alias RealGetWindowClassA RealGetWindowClass; -// #endif // !UNICODE - -struct tagALTTABINFO { - DWORD cbSize; - int cItems; - int cColumns; - int cRows; - int iColFocus; - int iRowFocus; - int cxItem; - int cyItem; - POINT ptStart; -} -alias tagALTTABINFO ALTTABINFO; -alias tagALTTABINFO* PALTTABINFO; -alias tagALTTABINFO* LPALTTABINFO; - -extern(Windows) export BOOL GetAltTabInfoA( - HWND hwnd, - int iItem, - PALTTABINFO pati, - LPSTR pszItemText, - UINT cchItemText -); -extern(Windows) export BOOL GetAltTabInfoW( - HWND hwnd, - int iItem, - PALTTABINFO pati, - LPWSTR pszItemText, - UINT cchItemText -); -// #ifdef UNICODE -// #... -// #else -alias GetAltTabInfoA GetAltTabInfo; -// #endif // !UNICODE - -extern(Windows) export DWORD GetListBoxInfo( - HWND hwnd -); - -// #endif /* NOWINABLE */ -// #endif /* WINVER >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL LockWorkStation(); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL UserHandleGrantAccess( - HANDLE hUserHandle, - HANDLE hJob, - BOOL bGrant); - -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0501) - -alias void* HRAWINPUT; - -// #define GET_RAWINPUT_CODE_WPARAM(wParam) ((wParam) & 0xff) - -enum : uint { RIM_INPUT = 0 } - -enum : uint { RIM_INPUTSINK = 1 } - -struct tagRAWINPUTHEADER { - DWORD dwType; - DWORD dwSize; - HANDLE hDevice; - WPARAM wParam; -} -alias tagRAWINPUTHEADER RAWINPUTHEADER; -alias tagRAWINPUTHEADER* PRAWINPUTHEADER; -alias tagRAWINPUTHEADER* LPRAWINPUTHEADER; - -enum : uint { RIM_TYPEMOUSE = 0 } -enum : uint { RIM_TYPEKEYBOARD = 1 } -enum : uint { RIM_TYPEHID = 2 } - -struct tagRAWMOUSE { - - USHORT usFlags; -union { - ULONG ulButtons; -struct { - USHORT usButtonFlags; - USHORT usButtonData; -} - -} - - ULONG ulRawButtons; - LONG lLastX; - LONG lLastY; - ULONG ulExtraInformation; -} -alias tagRAWMOUSE RAWMOUSE; -alias tagRAWMOUSE* PRAWMOUSE; -alias tagRAWMOUSE* LPRAWMOUSE; - -enum : uint { RI_MOUSE_LEFT_BUTTON_DOWN = 0x0001 } -enum : uint { RI_MOUSE_LEFT_BUTTON_UP = 0x0002 } -enum : uint { RI_MOUSE_RIGHT_BUTTON_DOWN = 0x0004 } -enum : uint { RI_MOUSE_RIGHT_BUTTON_UP = 0x0008 } -enum : uint { RI_MOUSE_MIDDLE_BUTTON_DOWN = 0x0010 } -enum : uint { RI_MOUSE_MIDDLE_BUTTON_UP = 0x0020 } - -alias RI_MOUSE_LEFT_BUTTON_DOWN RI_MOUSE_BUTTON_1_DOWN; -alias RI_MOUSE_LEFT_BUTTON_UP RI_MOUSE_BUTTON_1_UP; -alias RI_MOUSE_RIGHT_BUTTON_DOWN RI_MOUSE_BUTTON_2_DOWN; -alias RI_MOUSE_RIGHT_BUTTON_UP RI_MOUSE_BUTTON_2_UP; -alias RI_MOUSE_MIDDLE_BUTTON_DOWN RI_MOUSE_BUTTON_3_DOWN; -alias RI_MOUSE_MIDDLE_BUTTON_UP RI_MOUSE_BUTTON_3_UP; - -enum : uint { RI_MOUSE_BUTTON_4_DOWN = 0x0040 } -enum : uint { RI_MOUSE_BUTTON_4_UP = 0x0080 } -enum : uint { RI_MOUSE_BUTTON_5_DOWN = 0x0100 } -enum : uint { RI_MOUSE_BUTTON_5_UP = 0x0200 } - -enum : uint { RI_MOUSE_WHEEL = 0x0400 } - -enum : uint { MOUSE_MOVE_RELATIVE = 0 } -enum : uint { MOUSE_MOVE_ABSOLUTE = 1 } -enum : uint { MOUSE_VIRTUAL_DESKTOP = 0x02 } -enum : uint { MOUSE_ATTRIBUTES_CHANGED = 0x04 } - -struct tagRAWKEYBOARD { - - USHORT MakeCode; - USHORT Flags; - USHORT Reserved; - USHORT VKey; - UINT Message; - ULONG ExtraInformation; -} -alias tagRAWKEYBOARD RAWKEYBOARD; -alias tagRAWKEYBOARD* PRAWKEYBOARD; -alias tagRAWKEYBOARD* LPRAWKEYBOARD; - -enum : uint { KEYBOARD_OVERRUN_MAKE_CODE = 0xFF } - -enum : uint { RI_KEY_MAKE = 0 } -enum : uint { RI_KEY_BREAK = 1 } -enum : uint { RI_KEY_E0 = 2 } -enum : uint { RI_KEY_E1 = 4 } -enum : uint { RI_KEY_TERMSRV_SET_LED = 8 } -enum : uint { RI_KEY_TERMSRV_SHADOW = 0x10 } - -struct tagRAWHID { - DWORD dwSizeHid; - DWORD dwCount; - BYTE bRawData[1]; -} -alias tagRAWHID RAWHID; -alias tagRAWHID* PRAWHID; -alias tagRAWHID* LPRAWHID; - -struct tagRAWINPUT { - RAWINPUTHEADER header; -union { - RAWMOUSE mouse; - RAWKEYBOARD keyboard; - RAWHID hid; -} - -} -alias tagRAWINPUT RAWINPUT; -alias tagRAWINPUT* PRAWINPUT; -alias tagRAWINPUT* LPRAWINPUT; - -// #ifdef _WIN64 -// #... -// #else // _WIN64 -uint RAWINPUT_ALIGN(uint x){ return ((x + DWORD.sizeof - 1) & ~(DWORD.sizeof - 1)); } -// #endif // _WIN64 - -// #define NEXTRAWINPUTBLOCK(ptr) ((PRAWINPUT)RAWINPUT_ALIGN((ULONG_PTR)((PBYTE)(ptr) + (ptr)->header.dwSize))) - -enum : uint { RID_INPUT = 0x10000003 } -enum : uint { RID_HEADER = 0x10000005 } - -extern(Windows) export UINT GetRawInputData( - HRAWINPUT hRawInput, - UINT uiCommand, - LPVOID pData, - PUINT pcbSize, - UINT cbSizeHeader); - -enum : uint { RIDI_PREPARSEDDATA = 0x20000005 } -enum : uint { RIDI_DEVICENAME = 0x20000007 } -enum : uint { RIDI_DEVICEINFO = 0x2000000b } - -struct tagRID_DEVICE_INFO_MOUSE { - DWORD dwId; - DWORD dwNumberOfButtons; - DWORD dwSampleRate; -} -alias tagRID_DEVICE_INFO_MOUSE RID_DEVICE_INFO_MOUSE; -alias tagRID_DEVICE_INFO_MOUSE* PRID_DEVICE_INFO_MOUSE; - -struct tagRID_DEVICE_INFO_KEYBOARD { - DWORD dwType; - DWORD dwSubType; - DWORD dwKeyboardMode; - DWORD dwNumberOfFunctionKeys; - DWORD dwNumberOfIndicators; - DWORD dwNumberOfKeysTotal; -} -alias tagRID_DEVICE_INFO_KEYBOARD RID_DEVICE_INFO_KEYBOARD; -alias tagRID_DEVICE_INFO_KEYBOARD* PRID_DEVICE_INFO_KEYBOARD; - -struct tagRID_DEVICE_INFO_HID { - DWORD dwVendorId; - DWORD dwProductId; - DWORD dwVersionNumber; - USHORT usUsagePage; - USHORT usUsage; -} -alias tagRID_DEVICE_INFO_HID RID_DEVICE_INFO_HID; -alias tagRID_DEVICE_INFO_HID* PRID_DEVICE_INFO_HID; - -struct tagRID_DEVICE_INFO { - DWORD cbSize; - DWORD dwType; -union { - RID_DEVICE_INFO_MOUSE mouse; - RID_DEVICE_INFO_KEYBOARD keyboard; - RID_DEVICE_INFO_HID hid; -} - -} -alias tagRID_DEVICE_INFO RID_DEVICE_INFO; -alias tagRID_DEVICE_INFO* PRID_DEVICE_INFO; -alias tagRID_DEVICE_INFO* LPRID_DEVICE_INFO; - -extern(Windows) export UINT GetRawInputDeviceInfoA( - HANDLE hDevice, - UINT uiCommand, - LPVOID pData, - PUINT pcbSize); -extern(Windows) export UINT GetRawInputDeviceInfoW( - HANDLE hDevice, - UINT uiCommand, - LPVOID pData, - PUINT pcbSize); -// #ifdef UNICODE -// #... -// #else -alias GetRawInputDeviceInfoA GetRawInputDeviceInfo; -// #endif // !UNICODE - -extern(Windows) export UINT GetRawInputBuffer( - PRAWINPUT pData, - PUINT pcbSize, - UINT cbSizeHeader); - -struct tagRAWINPUTDEVICE { - USHORT usUsagePage; - USHORT usUsage; - DWORD dwFlags; - HWND hwndTarget; -} -alias tagRAWINPUTDEVICE RAWINPUTDEVICE; -alias tagRAWINPUTDEVICE* PRAWINPUTDEVICE; -alias tagRAWINPUTDEVICE* LPRAWINPUTDEVICE; - -alias RAWINPUTDEVICE* PCRAWINPUTDEVICE; - -enum : uint { RIDEV_REMOVE = 0x00000001 } -enum : uint { RIDEV_EXCLUDE = 0x00000010 } -enum : uint { RIDEV_PAGEONLY = 0x00000020 } -enum : uint { RIDEV_NOLEGACY = 0x00000030 } -enum : uint { RIDEV_CAPTUREMOUSE = 0x00000200 } -enum : uint { RIDEV_NOHOTKEYS = 0x00000200 } -enum : uint { RIDEV_EXMODEMASK = 0x000000F0 } - -// #define RIDEV_EXMODE(mode) ((mode) & RIDEV_EXMODEMASK) - -extern(Windows) export BOOL RegisterRawInputDevices( - PCRAWINPUTDEVICE pRawInputDevices, - UINT uiNumDevices, - UINT cbSize); - -extern(Windows) export UINT GetRegisteredRawInputDevices( - PRAWINPUTDEVICE pRawInputDevices, - PUINT puiNumDevices, - UINT cbSize); - -struct tagRAWINPUTDEVICELIST { - HANDLE hDevice; - DWORD dwType; -} -alias tagRAWINPUTDEVICELIST RAWINPUTDEVICELIST; -alias tagRAWINPUTDEVICELIST* PRAWINPUTDEVICELIST; - -extern(Windows) export UINT GetRawInputDeviceList( - PRAWINPUTDEVICELIST pRawInputDeviceList, - PUINT puiNumDevices, - UINT cbSize); - -extern(Windows) export LRESULT DefRawInputProc( - PRAWINPUT* paRawInput, - INT nInput, - UINT cbSizeHeader); - -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */ -// #if ISOLATION_AWARE_ENABLED -// #... -// #endif /* ISOLATION_AWARE_ENABLED */ -// #endif /* RC */ - -// #ifdef __cplusplus -// } -// #endif /* __cplusplus */ - -// #endif /* !_WINUSER_ */ - DELETED src/win32/ansi/winver.d Index: src/win32/ansi/winver.d ================================================================== --- src/win32/ansi/winver.d +++ src/win32/ansi/winver.d @@ -1,247 +0,0 @@ -module win32.ansi.winver; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.ansi.winuser; - -// #ifndef VER_H -// #define VER_H - -// #ifdef __cplusplus -// extern "C" { -// #endif - -alias RT_VERSION VS_FILE_INFO; -enum : uint { VS_VERSION_INFO = 1 } -enum : uint { VS_USER_DEFINED = 100 } - -// #ifndef _MAC -enum : uint { VS_FFI_SIGNATURE = 0xFEEF04BD } -// #else -// #... -// #endif -enum : uint { VS_FFI_STRUCVERSION = 0x00010000 } -enum : uint { VS_FFI_FILEFLAGSMASK = 0x0000003F } - -enum : uint { VS_FF_DEBUG = 0x00000001 } -enum : uint { VS_FF_PRERELEASE = 0x00000002 } -enum : uint { VS_FF_PATCHED = 0x00000004 } -enum : uint { VS_FF_PRIVATEBUILD = 0x00000008 } -enum : uint { VS_FF_INFOINFERRED = 0x00000010 } -enum : uint { VS_FF_SPECIALBUILD = 0x00000020 } - -enum : uint { VOS_UNKNOWN = 0x00000000 } -enum : uint { VOS_DOS = 0x00010000 } -enum : uint { VOS_OS216 = 0x00020000 } -enum : uint { VOS_OS232 = 0x00030000 } -enum : uint { VOS_NT = 0x00040000 } - -enum : uint { VOS__BASE = 0x00000000 } -enum : uint { VOS__WINDOWS16 = 0x00000001 } -enum : uint { VOS__PM16 = 0x00000002 } -enum : uint { VOS__PM32 = 0x00000003 } -enum : uint { VOS__WINDOWS32 = 0x00000004 } - -enum : uint { VOS_DOS_WINDOWS16 = 0x00010001 } -enum : uint { VOS_DOS_WINDOWS32 = 0x00010004 } -enum : uint { VOS_OS216_PM16 = 0x00020002 } -enum : uint { VOS_OS232_PM32 = 0x00030003 } -enum : uint { VOS_NT_WINDOWS32 = 0x00040004 } - -enum : uint { VFT_UNKNOWN = 0x00000000 } -enum : uint { VFT_APP = 0x00000001 } -enum : uint { VFT_DLL = 0x00000002 } -enum : uint { VFT_DRV = 0x00000003 } -enum : uint { VFT_FONT = 0x00000004 } -enum : uint { VFT_VXD = 0x00000005 } -enum : uint { VFT_STATIC_LIB = 0x00000007 } - -enum : uint { VFT2_UNKNOWN = 0x00000000 } -enum : uint { VFT2_DRV_PRINTER = 0x00000001 } -enum : uint { VFT2_DRV_KEYBOARD = 0x00000002 } -enum : uint { VFT2_DRV_LANGUAGE = 0x00000003 } -enum : uint { VFT2_DRV_DISPLAY = 0x00000004 } -enum : uint { VFT2_DRV_MOUSE = 0x00000005 } -enum : uint { VFT2_DRV_NETWORK = 0x00000006 } -enum : uint { VFT2_DRV_SYSTEM = 0x00000007 } -enum : uint { VFT2_DRV_INSTALLABLE = 0x00000008 } -enum : uint { VFT2_DRV_SOUND = 0x00000009 } -enum : uint { VFT2_DRV_COMM = 0x0000000A } -enum : uint { VFT2_DRV_INPUTMETHOD = 0x0000000B } -enum : uint { VFT2_DRV_VERSIONED_PRINTER = 0x0000000C } - -enum : uint { VFT2_FONT_RASTER = 0x00000001 } -enum : uint { VFT2_FONT_VECTOR = 0x00000002 } -enum : uint { VFT2_FONT_TRUETYPE = 0x00000003 } - -enum : uint { VFFF_ISSHAREDFILE = 0x0001 } - -enum : uint { VFF_CURNEDEST = 0x0001 } -enum : uint { VFF_FILEINUSE = 0x0002 } -enum : uint { VFF_BUFFTOOSMALL = 0x0004 } - -enum : uint { VIFF_FORCEINSTALL = 0x0001 } -enum : uint { VIFF_DONTDELETEOLD = 0x0002 } - -enum : uint { VIF_TEMPFILE = 0x00000001 } -enum : uint { VIF_MISMATCH = 0x00000002 } -enum : uint { VIF_SRCOLD = 0x00000004 } - -enum : uint { VIF_DIFFLANG = 0x00000008 } -enum : uint { VIF_DIFFCODEPG = 0x00000010 } -enum : uint { VIF_DIFFTYPE = 0x00000020 } - -enum : uint { VIF_WRITEPROT = 0x00000040 } -enum : uint { VIF_FILEINUSE = 0x00000080 } -enum : uint { VIF_OUTOFSPACE = 0x00000100 } -enum : uint { VIF_ACCESSVIOLATION = 0x00000200 } -enum : uint { VIF_SHARINGVIOLATION = 0x00000400 } -enum : uint { VIF_CANNOTCREATE = 0x00000800 } -enum : uint { VIF_CANNOTDELETE = 0x00001000 } -enum : uint { VIF_CANNOTRENAME = 0x00002000 } -enum : uint { VIF_CANNOTDELETECUR = 0x00004000 } -enum : uint { VIF_OUTOFMEMORY = 0x00008000 } - -enum : uint { VIF_CANNOTREADSRC = 0x00010000 } -enum : uint { VIF_CANNOTREADDST = 0x00020000 } - -enum : uint { VIF_BUFFTOOSMALL = 0x00040000 } -enum : uint { VIF_CANNOTLOADLZ32 = 0x00080000 } -enum : uint { VIF_CANNOTLOADCABINET = 0x00100000 } - -// #ifndef RC_INVOKED /* RC doesn't need to see the rest of this */ - -struct tagVS_FIXEDFILEINFO { - DWORD dwSignature; - DWORD dwStrucVersion; - DWORD dwFileVersionMS; - DWORD dwFileVersionLS; - DWORD dwProductVersionMS; - DWORD dwProductVersionLS; - DWORD dwFileFlagsMask; - DWORD dwFileFlags; - DWORD dwFileOS; - DWORD dwFileType; - DWORD dwFileSubtype; - DWORD dwFileDateMS; - DWORD dwFileDateLS; -} -alias tagVS_FIXEDFILEINFO VS_FIXEDFILEINFO; - -extern(Windows) export DWORD VerFindFileA( - DWORD uFlags, - LPSTR szFileName, - LPSTR szWinDir, - LPSTR szAppDir, - LPSTR szCurDir, - PUINT lpuCurDirLen, - LPSTR szDestDir, - PUINT lpuDestDirLen); -extern(Windows) export DWORD VerFindFileW( - DWORD uFlags, - LPWSTR szFileName, - LPWSTR szWinDir, - LPWSTR szAppDir, - LPWSTR szCurDir, - PUINT lpuCurDirLen, - LPWSTR szDestDir, - PUINT lpuDestDirLen); -// #ifdef UNICODE -// #... -// #else -alias VerFindFileA VerFindFile; -// #endif // !UNICODE - -extern(Windows) export DWORD VerInstallFileA( - DWORD uFlags, - LPSTR szSrcFileName, - LPSTR szDestFileName, - LPSTR szSrcDir, - LPSTR szDestDir, - LPSTR szCurDir, - LPSTR szTmpFile, - PUINT lpuTmpFileLen); -extern(Windows) export DWORD VerInstallFileW( - DWORD uFlags, - LPWSTR szSrcFileName, - LPWSTR szDestFileName, - LPWSTR szSrcDir, - LPWSTR szDestDir, - LPWSTR szCurDir, - LPWSTR szTmpFile, - PUINT lpuTmpFileLen); -// #ifdef UNICODE -// #... -// #else -alias VerInstallFileA VerInstallFile; -// #endif // !UNICODE - -extern(Windows) export DWORD GetFileVersionInfoSizeA( - LPSTR lptstrFilename, - LPDWORD lpdwHandle); - -extern(Windows) export DWORD GetFileVersionInfoSizeW( - LPWSTR lptstrFilename, - LPDWORD lpdwHandle); -// #ifdef UNICODE -// #... -// #else -alias GetFileVersionInfoSizeA GetFileVersionInfoSize; -// #endif // !UNICODE - -extern(Windows) export BOOL GetFileVersionInfoA( - LPSTR lptstrFilename, - DWORD dwHandle, - DWORD dwLen, - LPVOID lpData); - -extern(Windows) export BOOL GetFileVersionInfoW( - LPWSTR lptstrFilename, - DWORD dwHandle, - DWORD dwLen, - LPVOID lpData); -// #ifdef UNICODE -// #... -// #else -alias GetFileVersionInfoA GetFileVersionInfo; -// #endif // !UNICODE - -extern(Windows) export DWORD VerLanguageNameA( - DWORD wLang, - LPSTR szLang, - DWORD nSize); -extern(Windows) export DWORD VerLanguageNameW( - DWORD wLang, - LPWSTR szLang, - DWORD nSize); -// #ifdef UNICODE -// #... -// #else -alias VerLanguageNameA VerLanguageName; -// #endif // !UNICODE - -extern(Windows) export BOOL VerQueryValueA( - LPVOID pBlock, - LPSTR lpSubBlock, - LPVOID * lplpBuffer, - PUINT puLen); -extern(Windows) export BOOL VerQueryValueW( - LPVOID pBlock, - LPWSTR lpSubBlock, - LPVOID * lplpBuffer, - PUINT puLen); -// #ifdef UNICODE -// #... -// #else -alias VerQueryValueA VerQueryValue; -// #endif // !UNICODE - -// #endif /* !RC_INVOKED */ - -// #ifdef __cplusplus -// } -// #endif - -// #endif /* !VER_H */ - ADDED src/win32/basetsd.d Index: src/win32/basetsd.d ================================================================== --- src/win32/basetsd.d +++ src/win32/basetsd.d @@ -0,0 +1,129 @@ +/***********************************************************************\ +* basetsd.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.12 * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.basetsd; + +/* This template is used in these modules to declare constant pointer types, + * in order to support both D 1.x and 2.x. + */ +template CPtr(T) { + version (D_Version2) { + // must use mixin so that it doesn't cause a syntax error under D1 + mixin("alias const(T)* CPtr;"); + } else { + alias T* CPtr; + } +} + +// [SnakE 2009-02-23] Moved HANDLE definition here from winnt.d to avoid +// 'forwatd template reference' to CPtr from winnt.d caused by a circular +// import. + +alias void* HANDLE; + +alias HANDLE* PHANDLE, LPHANDLE; + +version (Win64) { + alias long __int3264; + const ulong ADDRESS_TAG_BIT = 0x40000000000; + + alias long INT_PTR, LONG_PTR; + alias long* PINT_PTR, PLONG_PTR; + alias ulong UINT_PTR, ULONG_PTR, HANDLE_PTR; + alias ulong* PUINT_PTR, PULONG_PTR; + alias int HALF_PTR; + alias int* PHALF_PTR; + alias uint UHALF_PTR; + alias uint* PUHALF_PTR; + + /* *To* functions are conditioned out in MinGW. + * Presumably they're not working/tested yet. Comment: + TODO when WIN64 is here + */ +} else { + alias int __int3264; + const uint ADDRESS_TAG_BIT = 0x80000000; + + alias int INT_PTR, LONG_PTR; + alias int* PINT_PTR, PLONG_PTR; + alias uint UINT_PTR, ULONG_PTR, HANDLE_PTR; + alias uint* PUINT_PTR, PULONG_PTR; + alias short HALF_PTR; + alias short* PHALF_PTR; + alias ushort UHALF_PTR; + alias ushort* PUHALF_PTR; + + uint HandleToUlong(HANDLE h) { return cast(uint) h; } + int HandleToLong(HANDLE h) { return cast(int) h; } + HANDLE LongToHandle(LONG_PTR h) { return cast(HANDLE) h; } + uint PtrToUlong(CPtr!(void) p) { return cast(uint) p; } + uint PtrToUint(CPtr!(void) p) { return cast(uint) p; } + int PtrToInt(CPtr!(void) p) { return cast(int) p; } + ushort PtrToUshort(CPtr!(void) p) { return cast(ushort) p; } + short PtrToShort(CPtr!(void) p) { return cast(short) p; } + void* IntToPtr(int i) { return cast(void*) i; } + void* UIntToPtr(uint ui) { return cast(void*) ui; } + alias IntToPtr LongToPtr; + alias UIntToPtr ULongToPtr; +} + +alias UIntToPtr UintToPtr, UlongToPtr; + +enum : UINT_PTR { + MAXUINT_PTR = UINT_PTR.max +} + +enum : INT_PTR { + MAXINT_PTR = INT_PTR.max, + MININT_PTR = INT_PTR.min +} + +enum : ULONG_PTR { + MAXULONG_PTR = ULONG_PTR.max +} + +enum : LONG_PTR { + MAXLONG_PTR = LONG_PTR.max, + MINLONG_PTR = LONG_PTR.min +} + +enum : UHALF_PTR { + MAXUHALF_PTR = UHALF_PTR.max +} + +enum : HALF_PTR { + MAXHALF_PTR = HALF_PTR.max, + MINHALF_PTR = HALF_PTR.min +} + +alias byte INT8; +alias byte* PINT8; +alias ubyte UINT8; +alias ubyte* PUINT8; + +alias short INT16; +alias short* PINT16; +alias ushort UINT16; +alias ushort* PUINT16; + +alias int LONG32, INT32; +alias int* PLONG32, PINT32; +alias uint ULONG32, DWORD32, UINT32; +alias uint* PULONG32, PDWORD32, PUINT32; + +alias ULONG_PTR SIZE_T, DWORD_PTR; +alias ULONG_PTR* PSIZE_T, PDWORD_PTR; +alias LONG_PTR SSIZE_T; +alias LONG_PTR* PSSIZE_T; + +alias long LONG64, INT64; +alias long* PLONG64, PINT64; +alias ulong ULONG64, DWORD64, UINT64; +alias ulong* PULONG64, PDWORD64, PUINT64; ADDED src/win32/basetyps.d Index: src/win32/basetyps.d ================================================================== --- src/win32/basetyps.d +++ src/win32/basetyps.d @@ -0,0 +1,24 @@ +/***********************************************************************\ +* basetyps.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.10 * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.basetyps; + +private import win32.windef, win32.basetsd; + +align(1) struct GUID { // size is 16 + DWORD Data1; + WORD Data2; + WORD Data3; + BYTE[8] Data4; +} +alias GUID UUID, IID, CLSID, FMTID, uuid_t; +alias GUID* LPGUID, LPCLSID, LPIID; +alias CPtr!(GUID) REFGUID, REFIID, REFCLSID, REFFMTID; + +alias uint error_status_t, PROPID; ADDED src/win32/cderr.d Index: src/win32/cderr.d ================================================================== --- src/win32/cderr.d +++ src/win32/cderr.d @@ -0,0 +1,50 @@ +/***********************************************************************\ +* cderr.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.cderr; + +enum { + CDERR_DIALOGFAILURE = 0xFFFF, + CDERR_GENERALCODES = 0x0000, + CDERR_STRUCTSIZE, + CDERR_INITIALIZATION, + CDERR_NOTEMPLATE, + CDERR_NOHINSTANCE, + CDERR_LOADSTRFAILURE, + CDERR_FINDRESFAILURE, + CDERR_LOADRESFAILURE, + CDERR_LOCKRESFAILURE, + CDERR_MEMALLOCFAILURE, + CDERR_MEMLOCKFAILURE, + CDERR_NOHOOK, + CDERR_REGISTERMSGFAIL, + PDERR_PRINTERCODES = 0x1000, + PDERR_SETUPFAILURE, + PDERR_PARSEFAILURE, + PDERR_RETDEFFAILURE, + PDERR_LOADDRVFAILURE, + PDERR_GETDEVMODEFAIL, + PDERR_INITFAILURE, + PDERR_NODEVICES, + PDERR_NODEFAULTPRN, + PDERR_DNDMMISMATCH, + PDERR_CREATEICFAILURE, + PDERR_PRINTERNOTFOUND, + PDERR_DEFAULTDIFFERENT, + CFERR_CHOOSEFONTCODES = 0x2000, + CFERR_NOFONTS, + CFERR_MAXLESSTHANMIN, + FNERR_FILENAMECODES = 0x3000, + FNERR_SUBCLASSFAILURE, + FNERR_INVALIDFILENAME, + FNERR_BUFFERTOOSMALL, + FRERR_FINDREPLACECODES = 0x4000, + FRERR_BUFFERLENGTHZERO, + CCERR_CHOOSECOLORCODES = 0x5000 +} ADDED src/win32/cguid.d Index: src/win32/cguid.d ================================================================== --- src/win32/cguid.d +++ src/win32/cguid.d @@ -0,0 +1,13 @@ +/***********************************************************************\ +* cguid.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.cguid; + +private import win32.basetyps; + ADDED src/win32/comcat.d Index: src/win32/comcat.d ================================================================== --- src/win32/comcat.d +++ src/win32/comcat.d @@ -0,0 +1,73 @@ +/***********************************************************************\ +* comcat.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.comcat; + +import win32.windows, win32.ole2; +private import win32.basetyps, win32.cguid, win32.objbase, win32.unknwn, + win32.windef, win32.wtypes; + +alias IEnumGUID* LPENUMGUID; + +interface IEnumGUID : IUnknown { + HRESULT Next(ULONG, GUID*, ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(LPENUMGUID*); +} + +alias GUID CATID; +alias REFGUID REFCATID; +alias GUID_NULL CATID_NULL; +alias IsEqualGUID IsEqualCATID; + +struct CATEGORYINFO { + CATID catid; + LCID lcid; + OLECHAR[128] szDescription; +} +alias CATEGORYINFO* LPCATEGORYINFO; + +alias IEnumGUID IEnumCATID; +alias LPENUMGUID LPENUMCATID; +alias IID_IEnumGUID IID_IEnumCATID; + +alias IEnumGUID IEnumCLSID; +alias LPENUMGUID LPENUMCLSID; +alias IID_IEnumGUID IID_IEnumCLSID; + +interface ICatInformation : IUnknown { + HRESULT EnumCategories(LCID, LPENUMCATEGORYINFO*); + HRESULT GetCategoryDesc(REFCATID, LCID, PWCHAR*); + HRESULT EnumClassesOfCategories(ULONG, CATID*, ULONG, CATID*, + LPENUMCLSID*); + HRESULT IsClassOfCategories(REFCLSID, ULONG, CATID*, ULONG, CATID*); + HRESULT EnumImplCategoriesOfClass(REFCLSID, LPENUMCATID*); + HRESULT EnumReqCategoriesOfClass(REFCLSID, LPENUMCATID*); +} +alias ICatInformation* LPCATINFORMATION; + +interface ICatRegister : IUnknown { + HRESULT RegisterCategories(ULONG, CATEGORYINFO*); + HRESULT UnRegisterCategories(ULONG, CATID*); + HRESULT RegisterClassImplCategories(REFCLSID, ULONG, CATID*); + HRESULT UnRegisterClassImplCategories(REFCLSID, ULONG, CATID*); + HRESULT RegisterClassReqCategories(REFCLSID, ULONG, CATID*); + HRESULT UnRegisterClassReqCategories(REFCLSID, ULONG, CATID*); +} +alias ICatRegister* LPCATREGISTER; + +interface IEnumCATEGORYINFO : IUnknown { + HRESULT Next(ULONG, CATEGORYINFO*, ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(LPENUMCATEGORYINFO*); +} +alias IEnumCATEGORYINFO* LPENUMCATEGORYINFO; Index: src/win32/commctrl.d ================================================================== --- src/win32/commctrl.d +++ src/win32/commctrl.d @@ -1,7600 +1,5874 @@ -module win32.commctrl; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.winuser; -alias void _PSP; -alias void _IMAGELIST; -alias void _TREEITEM; -alias LPTBSAVEPARAMW LPTBSAVEPARAMSW; -alias PCCOMBOEXITEMA PCCOMBOBOXEXITEMA; -alias PCCOMBOEXITEMW PCCOMBOBOXEXITEMW; -enum : uint { - NM_FIRST = 0, - SB_SETTIPTEXTA = WM_USER + 16, - SB_SETTIPTEXTW = WM_USER + 17, - SB_GETTIPTEXTA = WM_USER + 18, - SB_GETTIPTEXTW = WM_USER + 19, - TVHT_ONITEMSTATEICON = 0x0040, - CBEN_FIRST = 0U - 800U, - CBEN_GETDISPINFOA = CBEN_FIRST - 0, - CBEN_GETDISPINFOW = CBEN_FIRST - 7 -} -// inline #include -// ---- - -// #ifndef _PRSHT_H_ -// #define _PRSHT_H_ - -// #ifndef _WINRESRC_ -// #ifndef _WIN32_IE -// #... -// #else -// #if (_WIN32_IE < 0x0400) && defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0500) -// #... -// #endif -// #endif -// #endif - -// #ifndef WINCOMMCTRLAPI -// #if !defined(_COMCTL32_) && defined(_WIN32) -// #define WINCOMMCTRLAPI DECLSPEC_IMPORT -// #else -// #... -// #endif -// #endif // WINCOMMCTRLAPI - -// #ifndef CCSIZEOF_STRUCT -// #define CCSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member)) -// #endif - -// #ifndef DUMMYUNIONNAME -// #ifdef NONAMELESSUNION -// #... -// #... -// #... -// #... -// #... -// #else -// #define DUMMYUNIONNAME -// #define DUMMYUNIONNAME2 -// #define DUMMYUNIONNAME3 -// #define DUMMYUNIONNAME4 -// #define DUMMYUNIONNAME5 -// #endif -// #endif // DUMMYUNIONNAME - -// #ifdef _WIN64 -// #... -// #else -align(4): -// #endif - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #ifndef SNDMSG -// #ifdef __cplusplus -// #ifndef _MAC -// #define SNDMSG ::SendMessage -// #else -// #... -// #endif -// #else -// #ifndef _MAC -// #... -// #else -// #... -// #endif -// #endif -// #endif // ifndef SNDMSG - -enum : uint { MAXPROPPAGES = 100 } - -// struct _PSP; -alias _PSP* HPROPSHEETPAGE; - -// #ifndef MIDL_PASS -// struct _PROPSHEETPAGEA; -// struct _PROPSHEETPAGEW; -// #endif - -extern(Windows) alias UINT function(HWND hwnd, UINT uMsg, _PROPSHEETPAGEA *ppsp) LPFNPSPCALLBACKA; -extern(Windows) alias UINT function(HWND hwnd, UINT uMsg, _PROPSHEETPAGEW *ppsp) LPFNPSPCALLBACKW; - -// #ifdef UNICODE -alias LPFNPSPCALLBACKW LPFNPSPCALLBACK; -// #else -// #... -// #endif - -enum : uint { PSP_DEFAULT = 0x00000000 } -enum : uint { PSP_DLGINDIRECT = 0x00000001 } -enum : uint { PSP_USEHICON = 0x00000002 } -enum : uint { PSP_USEICONID = 0x00000004 } -enum : uint { PSP_USETITLE = 0x00000008 } -enum : uint { PSP_RTLREADING = 0x00000010 } - -enum : uint { PSP_HASHELP = 0x00000020 } -enum : uint { PSP_USEREFPARENT = 0x00000040 } -enum : uint { PSP_USECALLBACK = 0x00000080 } -enum : uint { PSP_PREMATURE = 0x00000400 } - -// #if (_WIN32_IE >= 0x0400) - -enum : uint { PSP_HIDEHEADER = 0x00000800 } -enum : uint { PSP_USEHEADERTITLE = 0x00001000 } -enum : uint { PSP_USEHEADERSUBTITLE = 0x00002000 } - -// #endif -// #if (_WIN32_WINNT >= 0x0501) || ISOLATION_AWARE_ENABLED -enum : uint { PSP_USEFUSIONCONTEXT = 0x00004000 } -// #endif - -// #if (_WIN32_IE >= 0x0500) -enum : uint { PSPCB_ADDREF = 0 } -// #endif -enum : uint { PSPCB_RELEASE = 1 } -enum : uint { PSPCB_CREATE = 2 } - -// #define PROPSHEETPAGEA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEA, pcRefParent) -// #define PROPSHEETPAGEW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEW, pcRefParent) - -// #define PROPSHEETPAGEA_V2_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEA, pszHeaderSubTitle) -// #define PROPSHEETPAGEW_V2_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEW, pszHeaderSubTitle) - -// #ifdef _WIN32 -alias LPCDLGTEMPLATE PROPSHEETPAGE_RESOURCE; -// #else -// ... -// #endif - -// #define PROPSHEETPAGEA_V1_FIELDS DWORD dwSize; DWORD dwFlags; HINSTANCE hInstance; union { LPCSTR pszTemplate; PROPSHEETPAGE_RESOURCE pResource; } DUMMYUNIONNAME; union { HICON hIcon; LPCSTR pszIcon; } DUMMYUNIONNAME2; LPCSTR pszTitle; DLGPROC pfnDlgProc; LPARAM lParam; LPFNPSPCALLBACKA pfnCallback; UINT *pcRefParent; -// #define PROPSHEETPAGEW_V1_FIELDS DWORD dwSize; DWORD dwFlags; HINSTANCE hInstance; union { LPCWSTR pszTemplate; PROPSHEETPAGE_RESOURCE pResource; } DUMMYUNIONNAME; union { HICON hIcon; LPCWSTR pszIcon; } DUMMYUNIONNAME2; LPCWSTR pszTitle; DLGPROC pfnDlgProc; LPARAM lParam; LPFNPSPCALLBACKW pfnCallback; UINT *pcRefParent; -// #if (_WIN32_WINNT >= 0x0501) || ISOLATION_AWARE_ENABLED -alias _PROPSHEETPAGEA_V3 _PROPSHEETPAGEA; -alias _PROPSHEETPAGEW_V3 _PROPSHEETPAGEW; -// #elif (_WIN32_IE >= 0x0400) -// #... -// #... -// #else -// #... -// #... -// #endif - -struct _PROPSHEETPAGEA_V1 { - DWORD dwSize; - DWORD dwFlags; - HINSTANCE hInstance; - union { - LPCSTR pszTemplate; - PROPSHEETPAGE_RESOURCE pResource; - } - union { - HICON hIcon; - LPCSTR pszIcon; - } - LPCSTR pszTitle; - DLGPROC pfnDlgProc; - LPARAM lParam; - LPFNPSPCALLBACKA pfnCallback; - UINT* pcRefParent; -} -alias _PROPSHEETPAGEA_V1 PROPSHEETPAGEA_V1; -alias _PROPSHEETPAGEA_V1* LPPROPSHEETPAGEA_V1; - -alias PROPSHEETPAGEA_V1* LPCPROPSHEETPAGEA_V1; - -struct _PROPSHEETPAGEA_V2 { - DWORD dwSize; - DWORD dwFlags; - HINSTANCE hInstance; - union { - LPCSTR pszTemplate; - PROPSHEETPAGE_RESOURCE pResource; - } - union { - HICON hIcon; - LPCSTR pszIcon; - } - LPCSTR pszTitle; - DLGPROC pfnDlgProc; - LPARAM lParam; - LPFNPSPCALLBACKA pfnCallback; - UINT* pcRefParent; - - LPCSTR pszHeaderTitle; - LPCSTR pszHeaderSubTitle; -} -alias _PROPSHEETPAGEA_V2 PROPSHEETPAGEA_V2; -alias _PROPSHEETPAGEA_V2* LPPROPSHEETPAGEA_V2; - -alias PROPSHEETPAGEA_V2* LPCPROPSHEETPAGEA_V2; - -struct _PROPSHEETPAGEA_V3 { - DWORD dwSize; - DWORD dwFlags; - HINSTANCE hInstance; - union { - LPCSTR pszTemplate; - PROPSHEETPAGE_RESOURCE pResource; - } - union { - HICON hIcon; - LPCSTR pszIcon; - } - LPCSTR pszTitle; - DLGPROC pfnDlgProc; - LPARAM lParam; - LPFNPSPCALLBACKA pfnCallback; - UINT* pcRefParent; - - LPCSTR pszHeaderTitle; - LPCSTR pszHeaderSubTitle; - - HANDLE hActCtx; -} -alias _PROPSHEETPAGEA_V3 PROPSHEETPAGEA_V3; -alias _PROPSHEETPAGEA_V3* LPPROPSHEETPAGEA_V3; - -alias PROPSHEETPAGEA_V3* LPCPROPSHEETPAGEA_V3; - -struct _PROPSHEETPAGEW_V1 { - DWORD dwSize; - DWORD dwFlags; - HINSTANCE hInstance; - union { - LPCWSTR pszTemplate; - PROPSHEETPAGE_RESOURCE pResource; - } - union { - HICON hIcon; - LPCWSTR pszIcon; - } - LPCWSTR pszTitle; - DLGPROC pfnDlgProc; - LPARAM lParam; - LPFNPSPCALLBACKW pfnCallback; - UINT* pcRefParent; -} -alias _PROPSHEETPAGEW_V1 PROPSHEETPAGEW_V1; -alias _PROPSHEETPAGEW_V1* LPPROPSHEETPAGEW_V1; - -alias PROPSHEETPAGEW_V1* LPCPROPSHEETPAGEW_V1; - -struct _PROPSHEETPAGEW_V2 { - DWORD dwSize; - DWORD dwFlags; - HINSTANCE hInstance; - union { - LPCWSTR pszTemplate; - PROPSHEETPAGE_RESOURCE pResource; - } - union { - HICON hIcon; - LPCWSTR pszIcon; - } - LPCWSTR pszTitle; - DLGPROC pfnDlgProc; - LPARAM lParam; - LPFNPSPCALLBACKW pfnCallback; - UINT* pcRefParent; - - LPCWSTR pszHeaderTitle; - LPCWSTR pszHeaderSubTitle; -} -alias _PROPSHEETPAGEW_V2 PROPSHEETPAGEW_V2; -alias _PROPSHEETPAGEW_V2* LPPROPSHEETPAGEW_V2; - -alias PROPSHEETPAGEW_V2* LPCPROPSHEETPAGEW_V2; - -struct _PROPSHEETPAGEW_V3 { - DWORD dwSize; - DWORD dwFlags; - HINSTANCE hInstance; - union { - LPCWSTR pszTemplate; - PROPSHEETPAGE_RESOURCE pResource; - } - union { - HICON hIcon; - LPCWSTR pszIcon; - } - LPCWSTR pszTitle; - DLGPROC pfnDlgProc; - LPARAM lParam; - LPFNPSPCALLBACKW pfnCallback; - UINT* pcRefParent; - - LPCWSTR pszHeaderTitle; - LPCWSTR pszHeaderSubTitle; - - HANDLE hActCtx; -} -alias _PROPSHEETPAGEW_V3 PROPSHEETPAGEW_V3; -alias _PROPSHEETPAGEW_V3* LPPROPSHEETPAGEW_V3; - -alias PROPSHEETPAGEW_V3* LPCPROPSHEETPAGEW_V3; - -alias PROPSHEETPAGEA_V3 PROPSHEETPAGEA_LATEST; -alias PROPSHEETPAGEW_V3 PROPSHEETPAGEW_LATEST; -alias LPPROPSHEETPAGEA_V3 LPPROPSHEETPAGEA_LATEST; -alias LPPROPSHEETPAGEW_V3 LPPROPSHEETPAGEW_LATEST; -alias LPCPROPSHEETPAGEA_V3 LPCPROPSHEETPAGEA_LATEST; -alias LPCPROPSHEETPAGEW_V3 LPCPROPSHEETPAGEW_LATEST; - -// #if (_WIN32_WINNT >= 0x0501) || ISOLATION_AWARE_ENABLED -alias PROPSHEETPAGEA_V3 PROPSHEETPAGEA; -alias PROPSHEETPAGEW_V3 PROPSHEETPAGEW; -alias LPPROPSHEETPAGEA_V3 LPPROPSHEETPAGEA; -alias LPPROPSHEETPAGEW_V3 LPPROPSHEETPAGEW; -alias LPCPROPSHEETPAGEA_V3 LPCPROPSHEETPAGEA; -alias LPCPROPSHEETPAGEW_V3 LPCPROPSHEETPAGEW; -// #elif (_WIN32_IE >= 0x0400) -// ... -// #else -// ... -// #endif - -// #if 0 // IEUNIX reserved. - -// #if __STDC__ || defined (NONAMELESSUNION) -// #... -// #else -// #... -// #endif -// #endif - -// #ifdef UNICODE -alias PROPSHEETPAGEW PROPSHEETPAGE; -alias LPPROPSHEETPAGEW LPPROPSHEETPAGE; -alias LPCPROPSHEETPAGEW LPCPROPSHEETPAGE; -// #define PROPSHEETPAGE_V1_SIZE PROPSHEETPAGEW_V1_SIZE -// #define PROPSHEETPAGE_V2_SIZE PROPSHEETPAGEW_V2_SIZE -alias PROPSHEETPAGEW_V1 PROPSHEETPAGE_V1; -alias LPPROPSHEETPAGEW_V1 LPPROPSHEETPAGE_V1; -alias LPCPROPSHEETPAGEW_V1 LPCPROPSHEETPAGE_V1; -alias PROPSHEETPAGEW_V2 PROPSHEETPAGE_V2; -alias LPPROPSHEETPAGEW_V2 LPPROPSHEETPAGE_V2; -alias LPCPROPSHEETPAGEW_V2 LPCPROPSHEETPAGE_V2; -alias PROPSHEETPAGEW_V3 PROPSHEETPAGE_V3; -alias LPPROPSHEETPAGEW_V3 LPPROPSHEETPAGE_V3; -alias LPCPROPSHEETPAGEW_V3 LPCPROPSHEETPAGE_V3; -alias PROPSHEETPAGEW_LATEST PROPSHEETPAGE_LATEST; -alias LPPROPSHEETPAGEW_LATEST LPPROPSHEETPAGE_LATEST; -alias LPCPROPSHEETPAGEW_LATEST LPCPROPSHEETPAGE_LATEST; -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -enum : uint { PSH_DEFAULT = 0x00000000 } -enum : uint { PSH_PROPTITLE = 0x00000001 } -enum : uint { PSH_USEHICON = 0x00000002 } -enum : uint { PSH_USEICONID = 0x00000004 } -enum : uint { PSH_PROPSHEETPAGE = 0x00000008 } -enum : uint { PSH_WIZARDHASFINISH = 0x00000010 } -enum : uint { PSH_WIZARD = 0x00000020 } -enum : uint { PSH_USEPSTARTPAGE = 0x00000040 } -enum : uint { PSH_NOAPPLYNOW = 0x00000080 } -enum : uint { PSH_USECALLBACK = 0x00000100 } -enum : uint { PSH_HASHELP = 0x00000200 } -enum : uint { PSH_MODELESS = 0x00000400 } -enum : uint { PSH_RTLREADING = 0x00000800 } -enum : uint { PSH_WIZARDCONTEXTHELP = 0x00001000 } - -// #if (_WIN32_IE >= 0x0400) - -// #if (_WIN32_IE < 0x0500) -// #... -// #else -enum : uint { PSH_WIZARD97 = 0x01000000 } -// #endif - -enum : uint { PSH_WATERMARK = 0x00008000 } -enum : uint { PSH_USEHBMWATERMARK = 0x00010000 } -enum : uint { PSH_USEHPLWATERMARK = 0x00020000 } -enum : uint { PSH_STRETCHWATERMARK = 0x00040000 } -enum : uint { PSH_HEADER = 0x00080000 } -enum : uint { PSH_USEHBMHEADER = 0x00100000 } -enum : uint { PSH_USEPAGELANG = 0x00200000 } - -// #endif - -// #if (_WIN32_IE >= 0x0500) - -enum : uint { PSH_WIZARD_LITE = 0x00400000 } -enum : uint { PSH_NOCONTEXTHELP = 0x02000000 } - -// #endif - -extern(Windows) alias int function(HWND, UINT, LPARAM) PFNPROPSHEETCALLBACK; - -// #define PROPSHEETHEADERA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERA, pfnCallback) -// #define PROPSHEETHEADERW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERW, pfnCallback) - -// #define PROPSHEETHEADERA_V2_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERA, DUMMYUNION5_MEMBER(hbmHeader)) -// #define PROPSHEETHEADERW_V2_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERW, DUMMYUNION5_MEMBER(hbmHeader)) - -struct _PROPSHEETHEADERA { - DWORD dwSize; - DWORD dwFlags; - HWND hwndParent; - HINSTANCE hInstance; -union { - HICON hIcon; - LPCSTR pszIcon; -} - - LPCSTR pszCaption; - UINT nPages; -union { - UINT nStartPage; - LPCSTR pStartPage; -} - -union { - LPCPROPSHEETPAGEA ppsp; - HPROPSHEETPAGE *phpage; -} - - PFNPROPSHEETCALLBACK pfnCallback; -// #if (_WIN32_IE >= 0x0400) -union { - HBITMAP hbmWatermark; - LPCSTR pszbmWatermark; -} - - HPALETTE hplWatermark; -union { - HBITMAP hbmHeader; - LPCSTR pszbmHeader; -} - -// #endif -} -alias _PROPSHEETHEADERA PROPSHEETHEADERA; -alias _PROPSHEETHEADERA* LPPROPSHEETHEADERA; - -alias PROPSHEETHEADERA* LPCPROPSHEETHEADERA; - -struct _PROPSHEETHEADERW { - DWORD dwSize; - DWORD dwFlags; - HWND hwndParent; - HINSTANCE hInstance; -union { - HICON hIcon; - LPCWSTR pszIcon; -} - - LPCWSTR pszCaption; - UINT nPages; -union { - UINT nStartPage; - LPCWSTR pStartPage; -} - -union { - LPCPROPSHEETPAGEW ppsp; - HPROPSHEETPAGE *phpage; -} - - PFNPROPSHEETCALLBACK pfnCallback; -// #if (_WIN32_IE >= 0x0400) -union { - HBITMAP hbmWatermark; - LPCWSTR pszbmWatermark; -} - - HPALETTE hplWatermark; -union { - HBITMAP hbmHeader; - LPCWSTR pszbmHeader; -} - -// #endif -} -alias _PROPSHEETHEADERW PROPSHEETHEADERW; -alias _PROPSHEETHEADERW* LPPROPSHEETHEADERW; - -alias PROPSHEETHEADERW* LPCPROPSHEETHEADERW; - -// #if 0 //IEUNIX reserved. - -// #if __STDC__ || defined (NONAMELESSUNION) -// #... -// #... -// #else -// #... -// #... -// #endif -// #endif - -// #ifdef UNICODE -alias PROPSHEETHEADERW PROPSHEETHEADER; -alias LPPROPSHEETHEADERW LPPROPSHEETHEADER; -alias LPCPROPSHEETHEADERW LPCPROPSHEETHEADER; -// #define PROPSHEETHEADER_V1_SIZE PROPSHEETHEADERW_V1_SIZE -// #define PROPSHEETHEADER_V2_SIZE PROPSHEETHEADERW_V2_SIZE -// #else -// #... -// #... -// #... -// #... -// #... -// #endif - -enum : uint { PSCB_INITIALIZED = 1 } -enum : uint { PSCB_PRECREATE = 2 } - -// #if (_WIN32_IE >= 0x560) - -enum : uint { PSCB_BUTTONPRESSED = 3 } -// #endif // _WIN32_IE >= 0x560 - -extern(Windows) export HPROPSHEETPAGE CreatePropertySheetPageA(LPCPROPSHEETPAGEA constPropSheetPagePointer); -extern(Windows) export HPROPSHEETPAGE CreatePropertySheetPageW(LPCPROPSHEETPAGEW constPropSheetPagePointer); -extern(Windows) export BOOL DestroyPropertySheetPage(HPROPSHEETPAGE); - -extern(Windows) export INT_PTR PropertySheetA(LPCPROPSHEETHEADERA); - -extern(Windows) export INT_PTR PropertySheetW(LPCPROPSHEETHEADERW); - -// #ifdef UNICODE -alias CreatePropertySheetPageW CreatePropertySheetPage; -alias PropertySheetW PropertySheet; -// #else -// #... -// #... -// #endif - -extern(Windows) alias BOOL function(HPROPSHEETPAGE, LPARAM) LPFNADDPROPSHEETPAGE; -extern(Windows) alias BOOL function(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM) LPFNADDPROPSHEETPAGES; - -struct _PSHNOTIFY { - NMHDR hdr; - LPARAM lParam; -} -alias _PSHNOTIFY PSHNOTIFY; -alias _PSHNOTIFY* LPPSHNOTIFY; - -enum : uint { PSN_FIRST = 0U-200U } -enum : uint { PSN_LAST = 0U-299U } - -enum : uint { PSN_SETACTIVE = PSN_FIRST-0 } -enum : uint { PSN_KILLACTIVE = PSN_FIRST-1 } - -enum : uint { PSN_APPLY = PSN_FIRST-2 } -enum : uint { PSN_RESET = PSN_FIRST-3 } - -enum : uint { PSN_HELP = PSN_FIRST-5 } -enum : uint { PSN_WIZBACK = PSN_FIRST-6 } -enum : uint { PSN_WIZNEXT = PSN_FIRST-7 } -enum : uint { PSN_WIZFINISH = PSN_FIRST-8 } -enum : uint { PSN_QUERYCANCEL = PSN_FIRST-9 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { PSN_GETOBJECT = PSN_FIRST-10 } -// #endif // 0x0400 -// #if (_WIN32_IE >= 0x0500) -enum : uint { PSN_TRANSLATEACCELERATOR = PSN_FIRST-12 } -enum : uint { PSN_QUERYINITIALFOCUS = PSN_FIRST-13 } -// #endif // 0x0500 - -enum : uint { PSNRET_NOERROR = 0 } -enum : uint { PSNRET_INVALID = 1 } -enum : uint { PSNRET_INVALID_NOCHANGEPAGE = 2 } -enum : uint { PSNRET_MESSAGEHANDLED = 3 } - -enum : uint { PSM_SETCURSEL = WM_USER + 101 } -// #define PropSheet_SetCurSel(hDlg, hpage, index) SNDMSG(hDlg, PSM_SETCURSEL, (WPARAM)index, (LPARAM)hpage) - -enum : uint { PSM_REMOVEPAGE = WM_USER + 102 } -// #define PropSheet_RemovePage(hDlg, index, hpage) SNDMSG(hDlg, PSM_REMOVEPAGE, index, (LPARAM)hpage) - -enum : uint { PSM_ADDPAGE = WM_USER + 103 } -// #define PropSheet_AddPage(hDlg, hpage) SNDMSG(hDlg, PSM_ADDPAGE, 0, (LPARAM)hpage) - -enum : uint { PSM_CHANGED = WM_USER + 104 } -// #define PropSheet_Changed(hDlg, hwnd) SNDMSG(hDlg, PSM_CHANGED, (WPARAM)hwnd, 0L) - -enum : uint { PSM_RESTARTWINDOWS = WM_USER + 105 } -// #define PropSheet_RestartWindows(hDlg) SNDMSG(hDlg, PSM_RESTARTWINDOWS, 0, 0L) - -enum : uint { PSM_REBOOTSYSTEM = WM_USER + 106 } -// #define PropSheet_RebootSystem(hDlg) SNDMSG(hDlg, PSM_REBOOTSYSTEM, 0, 0L) - -enum : uint { PSM_CANCELTOCLOSE = WM_USER + 107 } -// #define PropSheet_CancelToClose(hDlg) PostMessage(hDlg, PSM_CANCELTOCLOSE, 0, 0L) - -enum : uint { PSM_QUERYSIBLINGS = WM_USER + 108 } -// #define PropSheet_QuerySiblings(hDlg, wParam, lParam) SNDMSG(hDlg, PSM_QUERYSIBLINGS, wParam, lParam) - -enum : uint { PSM_UNCHANGED = WM_USER + 109 } -// #define PropSheet_UnChanged(hDlg, hwnd) SNDMSG(hDlg, PSM_UNCHANGED, (WPARAM)hwnd, 0L) - -enum : uint { PSM_APPLY = WM_USER + 110 } -// #define PropSheet_Apply(hDlg) SNDMSG(hDlg, PSM_APPLY, 0, 0L) - -enum : uint { PSM_SETTITLEA = WM_USER + 111 } -enum : uint { PSM_SETTITLEW = WM_USER + 120 } - -// #ifdef UNICODE -alias PSM_SETTITLEW PSM_SETTITLE; -// #else -// #... -// #endif - -// #define PropSheet_SetTitle(hDlg, wStyle, lpszText) SNDMSG(hDlg, PSM_SETTITLE, wStyle, (LPARAM)(LPCTSTR)(lpszText)) - -enum : uint { PSM_SETWIZBUTTONS = WM_USER + 112 } -// #define PropSheet_SetWizButtons(hDlg, dwFlags) PostMessage(hDlg, PSM_SETWIZBUTTONS, 0, (LPARAM)dwFlags) - -enum : uint { PSWIZB_BACK = 0x00000001 } -enum : uint { PSWIZB_NEXT = 0x00000002 } -enum : uint { PSWIZB_FINISH = 0x00000004 } -enum : uint { PSWIZB_DISABLEDFINISH = 0x00000008 } - -enum : uint { PSM_PRESSBUTTON = WM_USER + 113 } -// #define PropSheet_PressButton(hDlg, iButton) PostMessage(hDlg, PSM_PRESSBUTTON, (WPARAM)iButton, 0) - -enum : uint { PSBTN_BACK = 0 } -enum : uint { PSBTN_NEXT = 1 } -enum : uint { PSBTN_FINISH = 2 } -enum : uint { PSBTN_OK = 3 } -enum : uint { PSBTN_APPLYNOW = 4 } -enum : uint { PSBTN_CANCEL = 5 } -enum : uint { PSBTN_HELP = 6 } -enum : uint { PSBTN_MAX = 6 } - -enum : uint { PSM_SETCURSELID = WM_USER + 114 } -// #define PropSheet_SetCurSelByID(hDlg, id) SNDMSG(hDlg, PSM_SETCURSELID, 0, (LPARAM)id) - -enum : uint { PSM_SETFINISHTEXTA = WM_USER + 115 } -enum : uint { PSM_SETFINISHTEXTW = WM_USER + 121 } - -// #ifdef UNICODE -alias PSM_SETFINISHTEXTW PSM_SETFINISHTEXT; -// #else -// #... -// #endif - -// #define PropSheet_SetFinishText(hDlg, lpszText) SNDMSG(hDlg, PSM_SETFINISHTEXT, 0, (LPARAM)lpszText) - -enum : uint { PSM_GETTABCONTROL = WM_USER + 116 } -// #define PropSheet_GetTabControl(hDlg) (HWND)SNDMSG(hDlg, PSM_GETTABCONTROL, 0, 0) - -enum : uint { PSM_ISDIALOGMESSAGE = WM_USER + 117 } -// #define PropSheet_IsDialogMessage(hDlg, pMsg) (BOOL)SNDMSG(hDlg, PSM_ISDIALOGMESSAGE, 0, (LPARAM)pMsg) - -enum : uint { PSM_GETCURRENTPAGEHWND = WM_USER + 118 } -// #define PropSheet_GetCurrentPageHwnd(hDlg) (HWND)SNDMSG(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0L) - -enum : uint { PSM_INSERTPAGE = WM_USER + 119 } -// #define PropSheet_InsertPage(hDlg, index, hpage) SNDMSG(hDlg, PSM_INSERTPAGE, (WPARAM)(index), (LPARAM)(hpage)) - -// #if (_WIN32_IE >= 0x0500) -enum : uint { PSM_SETHEADERTITLEA = WM_USER + 125 } -enum : uint { PSM_SETHEADERTITLEW = WM_USER + 126 } - -// #ifdef UNICODE -alias PSM_SETHEADERTITLEW PSM_SETHEADERTITLE; -// #else -// #... -// #endif - -// #define PropSheet_SetHeaderTitle(hDlg, index, lpszText) SNDMSG(hDlg, PSM_SETHEADERTITLE, (WPARAM)(index), (LPARAM)(lpszText)) - -enum : uint { PSM_SETHEADERSUBTITLEA = WM_USER + 127 } -enum : uint { PSM_SETHEADERSUBTITLEW = WM_USER + 128 } - -// #ifdef UNICODE -alias PSM_SETHEADERSUBTITLEW PSM_SETHEADERSUBTITLE; -// #else -// #... -// #endif - -// #define PropSheet_SetHeaderSubTitle(hDlg, index, lpszText) SNDMSG(hDlg, PSM_SETHEADERSUBTITLE, (WPARAM)(index), (LPARAM)(lpszText)) - -enum : uint { PSM_HWNDTOINDEX = WM_USER + 129 } -// #define PropSheet_HwndToIndex(hDlg, hwnd) (int)SNDMSG(hDlg, PSM_HWNDTOINDEX, (WPARAM)(hwnd), 0) - -enum : uint { PSM_INDEXTOHWND = WM_USER + 130 } -// #define PropSheet_IndexToHwnd(hDlg, i) (HWND)SNDMSG(hDlg, PSM_INDEXTOHWND, (WPARAM)(i), 0) - -enum : uint { PSM_PAGETOINDEX = WM_USER + 131 } -// #define PropSheet_PageToIndex(hDlg, hpage) (int)SNDMSG(hDlg, PSM_PAGETOINDEX, 0, (LPARAM)(hpage)) - -enum : uint { PSM_INDEXTOPAGE = WM_USER + 132 } -// #define PropSheet_IndexToPage(hDlg, i) (HPROPSHEETPAGE)SNDMSG(hDlg, PSM_INDEXTOPAGE, (WPARAM)(i), 0) - -enum : uint { PSM_IDTOINDEX = WM_USER + 133 } -// #define PropSheet_IdToIndex(hDlg, id) (int)SNDMSG(hDlg, PSM_IDTOINDEX, 0, (LPARAM)(id)) - -enum : uint { PSM_INDEXTOID = WM_USER + 134 } -// #define PropSheet_IndexToId(hDlg, i) SNDMSG(hDlg, PSM_INDEXTOID, (WPARAM)(i), 0) - -enum : uint { PSM_GETRESULT = WM_USER + 135 } -// #define PropSheet_GetResult(hDlg) SNDMSG(hDlg, PSM_GETRESULT, 0, 0) - -enum : uint { PSM_RECALCPAGESIZES = WM_USER + 136 } -// #define PropSheet_RecalcPageSizes(hDlg) SNDMSG(hDlg, PSM_RECALCPAGESIZES, 0, 0) -// #endif // 0x0500 - -enum : uint { ID_PSRESTARTWINDOWS = 0x2 } -enum : uint { ID_PSREBOOTSYSTEM = ID_PSRESTARTWINDOWS | 0x1 } - -enum : uint { WIZ_CXDLG = 276 } -enum : uint { WIZ_CYDLG = 140 } - -enum : uint { WIZ_CXBMP = 80 } - -enum : uint { WIZ_BODYX = 92 } -enum : uint { WIZ_BODYCX = 184 } - -enum : uint { PROP_SM_CXDLG = 212 } -enum : uint { PROP_SM_CYDLG = 188 } - -enum : uint { PROP_MED_CXDLG = 227 } -enum : uint { PROP_MED_CYDLG = 215 } - -enum : uint { PROP_LG_CXDLG = 252 } -enum : uint { PROP_LG_CYDLG = 218 } - -// #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */ -// #if ISOLATION_AWARE_ENABLED - -// #if !defined(ISOLATION_AWARE_INLINE) -// #if defined(__cplusplus) -// #... -// #else -// #... -// #endif -// #endif - -// ... - -// #ifndef CCSIZEOF_STRUCT -// #... -// #endif - -// ... - -// #if defined(UNICODE) - -// #... -// #... - -// #else /* UNICODE */ - -// #... -// #... - -// #endif /* UNICODE */ - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #... -// #... -// #... -// #... -// #... - -// #endif /* ISOLATION_AWARE_ENABLED */ -// #endif /* RC */ - -// #ifdef __cplusplus -// } -// #endif - -align: - -// #endif // _PRSHT_H_ - -// ---- - -// #ifndef _INC_COMMCTRL -// #define _INC_COMMCTRL - -// #ifndef _WINRESRC_ -// #ifndef _WIN32_IE -// #... -// #else -// #if (_WIN32_IE < 0x0400) && defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0500) -// #... -// #endif -// #endif -// #endif - -// #ifndef _HRESULT_DEFINED -// #define _HRESULT_DEFINED -alias LONG HRESULT; -// #endif // _HRESULT_DEFINED - -// #ifndef NOUSER - -// #ifndef WINCOMMCTRLAPI -// #if !defined(_COMCTL32_) && defined(_WIN32) -// #define WINCOMMCTRLAPI DECLSPEC_IMPORT -// #else -// #... -// #endif -// #endif // WINCOMMCTRLAPI - -// #ifndef DUMMYUNIONNAME -// #ifdef NONAMELESSUNION -// #... -// #... -// #... -// #... -// #... -// #else -// #define DUMMYUNIONNAME -// #define DUMMYUNIONNAME2 -// #define DUMMYUNIONNAME3 -// #define DUMMYUNIONNAME4 -// #define DUMMYUNIONNAME5 -// #endif -// #endif // DUMMYUNIONNAME - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #include - -// #ifndef SNDMSG -// #ifdef __cplusplus -// #ifndef _MAC -// #define SNDMSG ::SendMessage -// #else -// #... -// #endif -// #else -// #ifndef _MAC -// #... -// #else -// #... -// #endif //_MAC -// #endif -// #endif // ifndef SNDMSG - -// #ifdef _MAC -// #ifndef RC_INVOKED -// #ifndef _WLM_NOFORCE_LIBS - -// #ifndef _WLMDLL -// #ifdef _DEBUG -// #... -// #else -// #... -// #endif -// #... -// #else -// #ifdef _DEBUG -// #... -// #else -// #... -// #endif -// #endif // _WLMDLL - -// #endif // _WLM_NOFORCE_LIBS -// #endif // RC_INVOKED -// #endif //_MAC - -extern(Windows) export void InitCommonControls(); - -// #if (_WIN32_IE >= 0x0300) -struct tagINITCOMMONCONTROLSEX { - DWORD dwSize; - DWORD dwICC; -} -alias tagINITCOMMONCONTROLSEX INITCOMMONCONTROLSEX; -alias tagINITCOMMONCONTROLSEX* LPINITCOMMONCONTROLSEX; - -enum : uint { ICC_LISTVIEW_CLASSES = 0x00000001 } -enum : uint { ICC_TREEVIEW_CLASSES = 0x00000002 } -enum : uint { ICC_BAR_CLASSES = 0x00000004 } -enum : uint { ICC_TAB_CLASSES = 0x00000008 } -enum : uint { ICC_UPDOWN_CLASS = 0x00000010 } -enum : uint { ICC_PROGRESS_CLASS = 0x00000020 } -enum : uint { ICC_HOTKEY_CLASS = 0x00000040 } -enum : uint { ICC_ANIMATE_CLASS = 0x00000080 } -enum : uint { ICC_WIN95_CLASSES = 0x000000FF } -enum : uint { ICC_DATE_CLASSES = 0x00000100 } -enum : uint { ICC_USEREX_CLASSES = 0x00000200 } -enum : uint { ICC_COOL_CLASSES = 0x00000400 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { ICC_INTERNET_CLASSES = 0x00000800 } -enum : uint { ICC_PAGESCROLLER_CLASS = 0x00001000 } -enum : uint { ICC_NATIVEFNTCTL_CLASS = 0x00002000 } -// #endif -// #if (_WIN32_WINNT >= 0x501) -enum : uint { ICC_STANDARD_CLASSES = 0x00004000 } -enum : uint { ICC_LINK_CLASS = 0x00008000 } -// #endif - -extern(Windows) export BOOL InitCommonControlsEx(LPINITCOMMONCONTROLSEX); -// #endif // _WIN32_IE >= 0x0300 - -enum : uint { ODT_HEADER = 100 } -enum : uint { ODT_TAB = 101 } -enum : uint { ODT_LISTVIEW = 102 } - -enum : uint { LVM_FIRST = 0x1000 } -enum : uint { TV_FIRST = 0x1100 } -enum : uint { HDM_FIRST = 0x1200 } -enum : uint { TCM_FIRST = 0x1300 } - -// #if (_WIN32_IE >= 0x0400) -enum : uint { PGM_FIRST = 0x1400 } -// #if (_WIN32_WINNT >= 0x501) -enum : uint { ECM_FIRST = 0x1500 } -enum : uint { BCM_FIRST = 0x1600 } -enum : uint { CBM_FIRST = 0x1700 } -// #endif -enum : uint { CCM_FIRST = 0x2000 } -enum : uint { CCM_LAST = CCM_FIRST + 0x200 } - -enum : uint { CCM_SETBKCOLOR = CCM_FIRST + 1 } - -struct tagCOLORSCHEME { - DWORD dwSize; - COLORREF clrBtnHighlight; - COLORREF clrBtnShadow; -} -alias tagCOLORSCHEME COLORSCHEME; -alias tagCOLORSCHEME* LPCOLORSCHEME; - -enum : uint { CCM_SETCOLORSCHEME = CCM_FIRST + 2 } -enum : uint { CCM_GETCOLORSCHEME = CCM_FIRST + 3 } -enum : uint { CCM_GETDROPTARGET = CCM_FIRST + 4 } -enum : uint { CCM_SETUNICODEFORMAT = CCM_FIRST + 5 } -enum : uint { CCM_GETUNICODEFORMAT = CCM_FIRST + 6 } - -// #if (_WIN32_IE >= 0x0500) -// #if (_WIN32_WINNT >= 0x501) -enum : uint { COMCTL32_VERSION = 6 } -// #else -// #... -// #endif - -enum : uint { CCM_SETVERSION = CCM_FIRST + 0x7 } -enum : uint { CCM_GETVERSION = CCM_FIRST + 0x8 } -enum : uint { CCM_SETNOTIFYWINDOW = CCM_FIRST + 0x9 } -// #if (_WIN32_WINNT >= 0x501) -enum : uint { CCM_SETWINDOWTHEME = CCM_FIRST + 0xb } -enum : uint { CCM_DPISCALE = CCM_FIRST + 0xc } -// #endif -// #endif // (_WIN32_IE >= 0x0500) - -// #endif // (_WIN32_IE >= 0x0400) - -// #if (_WIN32_IE >= 0x0400) - -enum : uint { INFOTIPSIZE = 1024 } -// #endif - -// #define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) (fn)((hwnd), (int)(wParam), (NMHDR *)(lParam)) -// #define FORWARD_WM_NOTIFY(hwnd, idFrom, pnmhdr, fn) (LRESULT)(fn)((hwnd), WM_NOTIFY, (WPARAM)(int)(idFrom), (LPARAM)(NMHDR *)(pnmhdr)) - -enum : uint { NM_OUTOFMEMORY = NM_FIRST-1 } -enum : uint { NM_CLICK = NM_FIRST-2 } -enum : uint { NM_DBLCLK = NM_FIRST-3 } -enum : uint { NM_RETURN = NM_FIRST-4 } -enum : uint { NM_RCLICK = NM_FIRST-5 } -enum : uint { NM_RDBLCLK = NM_FIRST-6 } -enum : uint { NM_SETFOCUS = NM_FIRST-7 } -enum : uint { NM_KILLFOCUS = NM_FIRST-8 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { NM_CUSTOMDRAW = NM_FIRST-12 } -enum : uint { NM_HOVER = NM_FIRST-13 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { NM_NCHITTEST = NM_FIRST-14 } -enum : uint { NM_KEYDOWN = NM_FIRST-15 } -enum : uint { NM_RELEASEDCAPTURE = NM_FIRST-16 } -enum : uint { NM_SETCURSOR = NM_FIRST-17 } -enum : uint { NM_CHAR = NM_FIRST-18 } -// #endif -// #if (_WIN32_IE >= 0x0401) -enum : uint { NM_TOOLTIPSCREATED = NM_FIRST-19 } -// #endif -// #if (_WIN32_IE >= 0x0500) -enum : uint { NM_LDOWN = NM_FIRST-20 } -enum : uint { NM_RDOWN = NM_FIRST-21 } -enum : uint { NM_THEMECHANGED = NM_FIRST-22 } -// #endif - -// #ifndef CCSIZEOF_STRUCT -// #define CCSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member)) -// #endif - -// #if (_WIN32_IE >= 0x0401) -struct tagNMTOOLTIPSCREATED { - NMHDR hdr; - HWND hwndToolTips; -} -alias tagNMTOOLTIPSCREATED NMTOOLTIPSCREATED; -alias tagNMTOOLTIPSCREATED* LPNMTOOLTIPSCREATED; - -// #endif - -// #if (_WIN32_IE >= 0x0400) -struct tagNMMOUSE { - NMHDR hdr; - DWORD_PTR dwItemSpec; - DWORD_PTR dwItemData; - POINT pt; - LPARAM dwHitInfo; -} -alias tagNMMOUSE NMMOUSE; -alias tagNMMOUSE* LPNMMOUSE; - -alias NMMOUSE NMCLICK; -alias LPNMMOUSE LPNMCLICK; - -struct tagNMOBJECTNOTIFY { - NMHDR hdr; - int iItem; -// #ifdef __IID_DEFINED__ - IID* piid; -// #else -// ... -// #endif - void *pObject; - HRESULT hResult; - DWORD dwFlags; -} -alias tagNMOBJECTNOTIFY NMOBJECTNOTIFY; -alias tagNMOBJECTNOTIFY* LPNMOBJECTNOTIFY; - -struct tagNMKEY { - NMHDR hdr; - UINT nVKey; - UINT uFlags; -} -alias tagNMKEY NMKEY; -alias tagNMKEY* LPNMKEY; - -struct tagNMCHAR { - NMHDR hdr; - UINT ch; - DWORD dwItemPrev; - DWORD dwItemNext; -} -alias tagNMCHAR NMCHAR; -alias tagNMCHAR* LPNMCHAR; - -// #endif // _WIN32_IE >= 0x0400 - -// #define NM_FIRST (0U- 0U) -enum : uint { NM_LAST = 0U- 99U } - -enum : uint { LVN_FIRST = 0U-100U } -enum : uint { LVN_LAST = 0U-199U } - -enum : uint { HDN_FIRST = 0U-300U } -enum : uint { HDN_LAST = 0U-399U } - -enum : uint { TVN_FIRST = 0U-400U } -enum : uint { TVN_LAST = 0U-499U } - -enum : uint { TTN_FIRST = 0U-520U } -enum : uint { TTN_LAST = 0U-549U } - -enum : uint { TCN_FIRST = 0U-550U } -enum : uint { TCN_LAST = 0U-580U } - -enum : uint { CDN_FIRST = 0U-601U } -enum : uint { CDN_LAST = 0U-699U } - -enum : uint { TBN_FIRST = 0U-700U } -enum : uint { TBN_LAST = 0U-720U } - -enum : uint { UDN_FIRST = 0U-721 } -enum : uint { UDN_LAST = 0U-740 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { MCN_FIRST = 0U-750U } -enum : uint { MCN_LAST = 0U-759U } - -enum : uint { DTN_FIRST = 0U-760U } -enum : uint { DTN_LAST = 0U-799U } - -// #define CBEN_FIRST (0U-800U) -enum : uint { CBEN_LAST = 0U-830U } - -enum : uint { RBN_FIRST = 0U-831U } -enum : uint { RBN_LAST = 0U-859U } -// #endif - -// #if (_WIN32_IE >= 0x0400) -enum : uint { IPN_FIRST = 0U-860U } -enum : uint { IPN_LAST = 0U-879U } - -enum : uint { SBN_FIRST = 0U-880U } -enum : uint { SBN_LAST = 0U-899U } - -enum : uint { PGN_FIRST = 0U-900U } -enum : uint { PGN_LAST = 0U-950U } - -// #endif - -// #if (_WIN32_IE >= 0x0500) -// #ifndef WMN_FIRST -enum : uint { WMN_FIRST = 0U-1000U } -enum : uint { WMN_LAST = 0U-1200U } -// #endif -// #endif - -// #if (_WIN32_WINNT >= 0x0501) -enum : uint { BCN_FIRST = 0U-1250U } -enum : uint { BCN_LAST = 0U-1350U } -// #endif - -enum : uint { MSGF_COMMCTRL_BEGINDRAG = 0x4200 } -enum : uint { MSGF_COMMCTRL_SIZEHEADER = 0x4201 } -enum : uint { MSGF_COMMCTRL_DRAGSELECT = 0x4202 } -enum : uint { MSGF_COMMCTRL_TOOLBARCUST = 0x4203 } - -// #if (_WIN32_IE >= 0x0300) - -enum : uint { CDRF_DODEFAULT = 0x00000000 } -enum : uint { CDRF_NEWFONT = 0x00000002 } -enum : uint { CDRF_SKIPDEFAULT = 0x00000004 } - -enum : uint { CDRF_NOTIFYPOSTPAINT = 0x00000010 } -enum : uint { CDRF_NOTIFYITEMDRAW = 0x00000020 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { CDRF_NOTIFYSUBITEMDRAW = 0x00000020 } -// #endif -enum : uint { CDRF_NOTIFYPOSTERASE = 0x00000040 } - -enum : uint { CDDS_PREPAINT = 0x00000001 } -enum : uint { CDDS_POSTPAINT = 0x00000002 } -enum : uint { CDDS_PREERASE = 0x00000003 } -enum : uint { CDDS_POSTERASE = 0x00000004 } - -enum : uint { CDDS_ITEM = 0x00010000 } -enum : uint { CDDS_ITEMPREPAINT = CDDS_ITEM | CDDS_PREPAINT } -enum : uint { CDDS_ITEMPOSTPAINT = CDDS_ITEM | CDDS_POSTPAINT } -enum : uint { CDDS_ITEMPREERASE = CDDS_ITEM | CDDS_PREERASE } -enum : uint { CDDS_ITEMPOSTERASE = CDDS_ITEM | CDDS_POSTERASE } -// #if (_WIN32_IE >= 0x0400) -enum : uint { CDDS_SUBITEM = 0x00020000 } -// #endif - -enum : uint { CDIS_SELECTED = 0x0001 } -enum : uint { CDIS_GRAYED = 0x0002 } -enum : uint { CDIS_DISABLED = 0x0004 } -enum : uint { CDIS_CHECKED = 0x0008 } -enum : uint { CDIS_FOCUS = 0x0010 } -enum : uint { CDIS_DEFAULT = 0x0020 } -enum : uint { CDIS_HOT = 0x0040 } -enum : uint { CDIS_MARKED = 0x0080 } -enum : uint { CDIS_INDETERMINATE = 0x0100 } -// #if (_WIN32_WINNT >= 0x501) -enum : uint { CDIS_SHOWKEYBOARDCUES = 0x0200 } -// #endif - -struct tagNMCUSTOMDRAWINFO { - NMHDR hdr; - DWORD dwDrawStage; - HDC hdc; - RECT rc; - DWORD_PTR dwItemSpec; - UINT uItemState; - LPARAM lItemlParam; -} -alias tagNMCUSTOMDRAWINFO NMCUSTOMDRAW; -alias tagNMCUSTOMDRAWINFO* LPNMCUSTOMDRAW; - -struct tagNMTTCUSTOMDRAW { - NMCUSTOMDRAW nmcd; - UINT uDrawFlags; -} -alias tagNMTTCUSTOMDRAW NMTTCUSTOMDRAW; -alias tagNMTTCUSTOMDRAW* LPNMTTCUSTOMDRAW; - -// #endif // _WIN32_IE >= 0x0300 - -// #ifndef NOIMAGEAPIS - -enum : uint { CLR_NONE = 0xFFFFFFFF } -enum : uint { CLR_DEFAULT = 0xFF000000 } - -// #ifndef HIMAGELIST -// struct _IMAGELIST; -alias _IMAGELIST* HIMAGELIST; -// #endif - -// #ifndef IMAGELISTDRAWPARAMS -// #if (_WIN32_IE >= 0x0300) -struct _IMAGELISTDRAWPARAMS { - DWORD cbSize; - HIMAGELIST himl; - int i; - HDC hdcDst; - int x; - int y; - int cx; - int cy; - int xBitmap; - int yBitmap; - COLORREF rgbBk; - COLORREF rgbFg; - UINT fStyle; - DWORD dwRop; -// #if (_WIN32_WINNT >= 0x501) - DWORD fState; - DWORD Frame; - COLORREF crEffect; -// #endif -} -alias _IMAGELISTDRAWPARAMS IMAGELISTDRAWPARAMS; -alias _IMAGELISTDRAWPARAMS* LPIMAGELISTDRAWPARAMS; - -// #define IMAGELISTDRAWPARAMS_V3_SIZE CCSIZEOF_STRUCT(IMAGELISTDRAWPARAMS, dwRop) - -// #endif // _WIN32_IE >= 0x0300 -// #endif - -enum : uint { ILC_MASK = 0x00000001 } -enum : uint { ILC_COLOR = 0x00000000 } -enum : uint { ILC_COLORDDB = 0x000000FE } -enum : uint { ILC_COLOR4 = 0x00000004 } -enum : uint { ILC_COLOR8 = 0x00000008 } -enum : uint { ILC_COLOR16 = 0x00000010 } -enum : uint { ILC_COLOR24 = 0x00000018 } -enum : uint { ILC_COLOR32 = 0x00000020 } -enum : uint { ILC_PALETTE = 0x00000800 } -// #if (_WIN32_WINNT >= 0x501) -enum : uint { ILC_MIRROR = 0x00002000 } -enum : uint { ILC_PERITEMMIRROR = 0x00008000 } -// #endif -extern(Windows) export HIMAGELIST ImageList_Create(int cx, int cy, UINT flags, int cInitial, int cGrow); -extern(Windows) export BOOL ImageList_Destroy(HIMAGELIST himl); - -extern(Windows) export int ImageList_GetImageCount(HIMAGELIST himl); -// #if (_WIN32_IE >= 0x0300) -extern(Windows) export BOOL ImageList_SetImageCount(HIMAGELIST himl, UINT uNewCount); -// #endif - -extern(Windows) export int ImageList_Add(HIMAGELIST himl, HBITMAP hbmImage, HBITMAP hbmMask); - -extern(Windows) export int ImageList_ReplaceIcon(HIMAGELIST himl, int i, HICON hicon); -extern(Windows) export COLORREF ImageList_SetBkColor(HIMAGELIST himl, COLORREF clrBk); -extern(Windows) export COLORREF ImageList_GetBkColor(HIMAGELIST himl); -extern(Windows) export BOOL ImageList_SetOverlayImage(HIMAGELIST himl, int iImage, int iOverlay); - -// #define ImageList_AddIcon(himl, hicon) ImageList_ReplaceIcon(himl, -1, hicon) - -enum : uint { ILD_NORMAL = 0x00000000 } -enum : uint { ILD_TRANSPARENT = 0x00000001 } -enum : uint { ILD_MASK = 0x00000010 } -enum : uint { ILD_IMAGE = 0x00000020 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { ILD_ROP = 0x00000040 } -// #endif -enum : uint { ILD_BLEND25 = 0x00000002 } -enum : uint { ILD_BLEND50 = 0x00000004 } -enum : uint { ILD_OVERLAYMASK = 0x00000F00 } -uint INDEXTOOVERLAYMASK(uint i){ return i << 8; } -enum : uint { ILD_PRESERVEALPHA = 0x00001000 } -enum : uint { ILD_SCALE = 0x00002000 } -enum : uint { ILD_DPISCALE = 0x00004000 } - -alias ILD_BLEND50 ILD_SELECTED; -alias ILD_BLEND25 ILD_FOCUS; -alias ILD_BLEND50 ILD_BLEND; -alias CLR_DEFAULT CLR_HILIGHT; - -enum : uint { ILS_NORMAL = 0x00000000 } -enum : uint { ILS_GLOW = 0x00000001 } -enum : uint { ILS_SHADOW = 0x00000002 } -enum : uint { ILS_SATURATE = 0x00000004 } -enum : uint { ILS_ALPHA = 0x00000008 } - -extern(Windows) export BOOL ImageList_Draw(HIMAGELIST himl, int i, HDC hdcDst, int x, int y, UINT fStyle); - -// #ifdef _WIN32 - -extern(Windows) export BOOL ImageList_Replace(HIMAGELIST himl, int i, HBITMAP hbmImage, HBITMAP hbmMask); - -extern(Windows) export int ImageList_AddMasked(HIMAGELIST himl, HBITMAP hbmImage, COLORREF crMask); -extern(Windows) export BOOL ImageList_DrawEx(HIMAGELIST himl, int i, HDC hdcDst, int x, int y, int dx, int dy, COLORREF rgbBk, COLORREF rgbFg, UINT fStyle); -// #if (_WIN32_IE >= 0x0300) -extern(Windows) export BOOL ImageList_DrawIndirect(IMAGELISTDRAWPARAMS* pimldp); -// #endif -extern(Windows) export BOOL ImageList_Remove(HIMAGELIST himl, int i); -extern(Windows) export HICON ImageList_GetIcon(HIMAGELIST himl, int i, UINT flags); -extern(Windows) export HIMAGELIST ImageList_LoadImageA(HINSTANCE hi, LPCSTR lpbmp, int cx, int cGrow, COLORREF crMask, UINT uType, UINT uFlags); -extern(Windows) export HIMAGELIST ImageList_LoadImageW(HINSTANCE hi, LPCWSTR lpbmp, int cx, int cGrow, COLORREF crMask, UINT uType, UINT uFlags); - -// #ifdef UNICODE -alias ImageList_LoadImageW ImageList_LoadImage; -// #else -// #... -// #endif - -// #if (_WIN32_IE >= 0x0300) -enum : uint { ILCF_MOVE = 0x00000000 } -enum : uint { ILCF_SWAP = 0x00000001 } -extern(Windows) export BOOL ImageList_Copy(HIMAGELIST himlDst, int iDst, HIMAGELIST himlSrc, int iSrc, UINT uFlags); -// #endif - -extern(Windows) export BOOL ImageList_BeginDrag(HIMAGELIST himlTrack, int iTrack, int dxHotspot, int dyHotspot); -extern(Windows) export void ImageList_EndDrag(); -extern(Windows) export BOOL ImageList_DragEnter(HWND hwndLock, int x, int y); -extern(Windows) export BOOL ImageList_DragLeave(HWND hwndLock); -extern(Windows) export BOOL ImageList_DragMove(int x, int y); -extern(Windows) export BOOL ImageList_SetDragCursorImage(HIMAGELIST himlDrag, int iDrag, int dxHotspot, int dyHotspot); - -extern(Windows) export BOOL ImageList_DragShowNolock(BOOL fShow); -extern(Windows) export HIMAGELIST ImageList_GetDragImage(POINT *ppt,POINT *pptHotspot); - -// #define ImageList_RemoveAll(himl) ImageList_Remove(himl, -1) -// #define ImageList_ExtractIcon(hi, himl, i) ImageList_GetIcon(himl, i, 0) -// #define ImageList_LoadBitmap(hi, lpbmp, cx, cGrow, crMask) ImageList_LoadImage(hi, lpbmp, cx, cGrow, crMask, IMAGE_BITMAP, 0) - -// #ifdef __IStream_INTERFACE_DEFINED__ - -// ... - -// #if (_WIN32_WINNT >= 0x0501) -// #... -// #... - -// ... -// #endif - -// #endif - -// #ifndef IMAGEINFO -struct _IMAGEINFO { - HBITMAP hbmImage; - HBITMAP hbmMask; - int Unused1; - int Unused2; - RECT rcImage; -} -alias _IMAGEINFO IMAGEINFO; -alias _IMAGEINFO* LPIMAGEINFO; - -// #endif - -extern(Windows) export BOOL ImageList_GetIconSize(HIMAGELIST himl, int *cx, int *cy); -extern(Windows) export BOOL ImageList_SetIconSize(HIMAGELIST himl, int cx, int cy); -extern(Windows) export BOOL ImageList_GetImageInfo(HIMAGELIST himl, int i, IMAGEINFO *pImageInfo); -extern(Windows) export HIMAGELIST ImageList_Merge(HIMAGELIST himl1, int i1, HIMAGELIST himl2, int i2, int dx, int dy); -// #if (_WIN32_IE >= 0x0400) -extern(Windows) export HIMAGELIST ImageList_Duplicate(HIMAGELIST himl); -// #endif - -// #endif - -// #endif - -// #ifndef NOHEADER - -// #ifdef _WIN32 -const char[] WC_HEADERA = "SysHeader32"; -const wchar[] WC_HEADERW = "SysHeader32"; - -// #ifdef UNICODE -alias WC_HEADERW WC_HEADER; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -enum : uint { HDS_HORZ = 0x0000 } -enum : uint { HDS_BUTTONS = 0x0002 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { HDS_HOTTRACK = 0x0004 } -// #endif -enum : uint { HDS_HIDDEN = 0x0008 } - -// #if (_WIN32_IE >= 0x0300) -enum : uint { HDS_DRAGDROP = 0x0040 } -enum : uint { HDS_FULLDRAG = 0x0080 } -// #endif -// #if (_WIN32_IE >= 0x0500) -enum : uint { HDS_FILTERBAR = 0x0100 } -// #endif - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { HDS_FLAT = 0x0200 } -// #endif - -// #if (_WIN32_IE >= 0x0500) - -enum : uint { HDFT_ISSTRING = 0x0000 } -enum : uint { HDFT_ISNUMBER = 0x0001 } - -enum : uint { HDFT_HASNOVALUE = 0x8000 } - -// #ifdef UNICODE -alias HD_TEXTFILTERW HD_TEXTFILTER; -alias HD_TEXTFILTERW HDTEXTFILTER; -alias LPHD_TEXTFILTERW LPHD_TEXTFILTER; -alias LPHD_TEXTFILTERW LPHDTEXTFILTER; -// #else -// #... -// #... -// #... -// #... -// #endif - -struct _HD_TEXTFILTERA { - LPSTR pszText; - INT cchTextMax; -} -alias _HD_TEXTFILTERA HD_TEXTFILTERA; -alias _HD_TEXTFILTERA* LPHD_TEXTFILTERA; - -struct _HD_TEXTFILTERW { - LPWSTR pszText; - INT cchTextMax; -} -alias _HD_TEXTFILTERW HD_TEXTFILTERW; -alias _HD_TEXTFILTERW* LPHD_TEXTFILTERW; - -// #endif // _WIN32_IE >= 0x0500 - -// #if (_WIN32_IE >= 0x0300) -alias HDITEMA HD_ITEMA; -alias HDITEMW HD_ITEMW; -// #else -// #... -// #... -// #endif -alias HDITEM HD_ITEM; - -struct _HD_ITEMA { - UINT mask; - int cxy; - LPSTR pszText; - HBITMAP hbm; - int cchTextMax; - int fmt; - LPARAM lParam; -// #if (_WIN32_IE >= 0x0300) - int iImage; - int iOrder; -// #endif -// #if (_WIN32_IE >= 0x0500) - UINT type; - void * pvFilter; -// #endif -} -alias _HD_ITEMA HDITEMA; -alias _HD_ITEMA* LPHDITEMA; - -// #define HDITEMA_V1_SIZE CCSIZEOF_STRUCT(HDITEMA, lParam) -// #define HDITEMW_V1_SIZE CCSIZEOF_STRUCT(HDITEMW, lParam) - -struct _HD_ITEMW { - UINT mask; - int cxy; - LPWSTR pszText; - HBITMAP hbm; - int cchTextMax; - int fmt; - LPARAM lParam; -// #if (_WIN32_IE >= 0x0300) - int iImage; - int iOrder; -// #endif -// #if (_WIN32_IE >= 0x0500) - UINT type; - void * pvFilter; -// #endif -} -alias _HD_ITEMW HDITEMW; -alias _HD_ITEMW* LPHDITEMW; - -// #ifdef UNICODE -alias HDITEMW HDITEM; -alias LPHDITEMW LPHDITEM; -// #define HDITEM_V1_SIZE HDITEMW_V1_SIZE -// #else -// #... -// #... -// #... -// #endif - -enum : uint { HDI_WIDTH = 0x0001 } -alias HDI_WIDTH HDI_HEIGHT; -enum : uint { HDI_TEXT = 0x0002 } -enum : uint { HDI_FORMAT = 0x0004 } -enum : uint { HDI_LPARAM = 0x0008 } -enum : uint { HDI_BITMAP = 0x0010 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { HDI_IMAGE = 0x0020 } -enum : uint { HDI_DI_SETITEM = 0x0040 } -enum : uint { HDI_ORDER = 0x0080 } -// #endif -// #if (_WIN32_IE >= 0x0500) -enum : uint { HDI_FILTER = 0x0100 } -// #endif - -enum : uint { HDF_LEFT = 0x0000 } -enum : uint { HDF_RIGHT = 0x0001 } -enum : uint { HDF_CENTER = 0x0002 } -enum : uint { HDF_JUSTIFYMASK = 0x0003 } -enum : uint { HDF_RTLREADING = 0x0004 } - -enum : uint { HDF_OWNERDRAW = 0x8000 } -enum : uint { HDF_STRING = 0x4000 } -enum : uint { HDF_BITMAP = 0x2000 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { HDF_BITMAP_ON_RIGHT = 0x1000 } -enum : uint { HDF_IMAGE = 0x0800 } -// #endif - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { HDF_SORTUP = 0x0400 } -enum : uint { HDF_SORTDOWN = 0x0200 } -// #endif - -enum : uint { HDM_GETITEMCOUNT = HDM_FIRST + 0 } -// #define Header_GetItemCount(hwndHD) (int)SNDMSG((hwndHD), HDM_GETITEMCOUNT, 0, 0L) - -enum : uint { HDM_INSERTITEMA = HDM_FIRST + 1 } -enum : uint { HDM_INSERTITEMW = HDM_FIRST + 10 } - -// #ifdef UNICODE -alias HDM_INSERTITEMW HDM_INSERTITEM; -// #else -// #... -// #endif - -// #define Header_InsertItem(hwndHD, i, phdi) (int)SNDMSG((hwndHD), HDM_INSERTITEM, (WPARAM)(int)(i), (LPARAM)(const HD_ITEM *)(phdi)) - -enum : uint { HDM_DELETEITEM = HDM_FIRST + 2 } -// #define Header_DeleteItem(hwndHD, i) (BOOL)SNDMSG((hwndHD), HDM_DELETEITEM, (WPARAM)(int)(i), 0L) - -enum : uint { HDM_GETITEMA = HDM_FIRST + 3 } -enum : uint { HDM_GETITEMW = HDM_FIRST + 11 } - -// #ifdef UNICODE -alias HDM_GETITEMW HDM_GETITEM; -// #else -// #... -// #endif - -// #define Header_GetItem(hwndHD, i, phdi) (BOOL)SNDMSG((hwndHD), HDM_GETITEM, (WPARAM)(int)(i), (LPARAM)(HD_ITEM *)(phdi)) - -enum : uint { HDM_SETITEMA = HDM_FIRST + 4 } -enum : uint { HDM_SETITEMW = HDM_FIRST + 12 } - -// #ifdef UNICODE -alias HDM_SETITEMW HDM_SETITEM; -// #else -// #... -// #endif - -// #define Header_SetItem(hwndHD, i, phdi) (BOOL)SNDMSG((hwndHD), HDM_SETITEM, (WPARAM)(int)(i), (LPARAM)(const HD_ITEM *)(phdi)) - -// #if (_WIN32_IE >= 0x0300) -alias HDLAYOUT HD_LAYOUT; -// #else -// #... -// #endif - -struct _HD_LAYOUT { - RECT *prc; - WINDOWPOS *pwpos; -} -alias _HD_LAYOUT HDLAYOUT; -alias _HD_LAYOUT* LPHDLAYOUT; - -enum : uint { HDM_LAYOUT = HDM_FIRST + 5 } -// #define Header_Layout(hwndHD, playout) (BOOL)SNDMSG((hwndHD), HDM_LAYOUT, 0, (LPARAM)(HD_LAYOUT *)(playout)) - -enum : uint { HHT_NOWHERE = 0x0001 } -enum : uint { HHT_ONHEADER = 0x0002 } -enum : uint { HHT_ONDIVIDER = 0x0004 } -enum : uint { HHT_ONDIVOPEN = 0x0008 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { HHT_ONFILTER = 0x0010 } -enum : uint { HHT_ONFILTERBUTTON = 0x0020 } -// #endif -enum : uint { HHT_ABOVE = 0x0100 } -enum : uint { HHT_BELOW = 0x0200 } -enum : uint { HHT_TORIGHT = 0x0400 } -enum : uint { HHT_TOLEFT = 0x0800 } - -// #if (_WIN32_IE >= 0x0300) -alias HDHITTESTINFO HD_HITTESTINFO; -// #else -// #... -// #endif - -struct _HD_HITTESTINFO { - POINT pt; - UINT flags; - int iItem; -} -alias _HD_HITTESTINFO HDHITTESTINFO; -alias _HD_HITTESTINFO* LPHDHITTESTINFO; - -enum : uint { HDM_HITTEST = HDM_FIRST + 6 } - -// #if (_WIN32_IE >= 0x0300) - -enum : uint { HDM_GETITEMRECT = HDM_FIRST + 7 } -// #define Header_GetItemRect(hwnd, iItem, lprc) (BOOL)SNDMSG((hwnd), HDM_GETITEMRECT, (WPARAM)(iItem), (LPARAM)(lprc)) - -enum : uint { HDM_SETIMAGELIST = HDM_FIRST + 8 } -// #define Header_SetImageList(hwnd, himl) (HIMAGELIST)SNDMSG((hwnd), HDM_SETIMAGELIST, 0, (LPARAM)(himl)) - -enum : uint { HDM_GETIMAGELIST = HDM_FIRST + 9 } -// #define Header_GetImageList(hwnd) (HIMAGELIST)SNDMSG((hwnd), HDM_GETIMAGELIST, 0, 0) - -enum : uint { HDM_ORDERTOINDEX = HDM_FIRST + 15 } -// #define Header_OrderToIndex(hwnd, i) (int)SNDMSG((hwnd), HDM_ORDERTOINDEX, (WPARAM)(i), 0) - -enum : uint { HDM_CREATEDRAGIMAGE = HDM_FIRST + 16 } -// #define Header_CreateDragImage(hwnd, i) (HIMAGELIST)SNDMSG((hwnd), HDM_CREATEDRAGIMAGE, (WPARAM)(i), 0) - -enum : uint { HDM_GETORDERARRAY = HDM_FIRST + 17 } -// #define Header_GetOrderArray(hwnd, iCount, lpi) (BOOL)SNDMSG((hwnd), HDM_GETORDERARRAY, (WPARAM)(iCount), (LPARAM)(lpi)) - -enum : uint { HDM_SETORDERARRAY = HDM_FIRST + 18 } -// #define Header_SetOrderArray(hwnd, iCount, lpi) (BOOL)SNDMSG((hwnd), HDM_SETORDERARRAY, (WPARAM)(iCount), (LPARAM)(lpi)) - -enum : uint { HDM_SETHOTDIVIDER = HDM_FIRST + 19 } -// #define Header_SetHotDivider(hwnd, fPos, dw) (int)SNDMSG((hwnd), HDM_SETHOTDIVIDER, (WPARAM)(fPos), (LPARAM)(dw)) - -// #endif // _WIN32_IE >= 0x0300 - -// #if (_WIN32_IE >= 0x0500) - -enum : uint { HDM_SETBITMAPMARGIN = HDM_FIRST + 20 } -// #define Header_SetBitmapMargin(hwnd, iWidth) (int)SNDMSG((hwnd), HDM_SETBITMAPMARGIN, (WPARAM)(iWidth), 0) - -enum : uint { HDM_GETBITMAPMARGIN = HDM_FIRST + 21 } -// #define Header_GetBitmapMargin(hwnd) (int)SNDMSG((hwnd), HDM_GETBITMAPMARGIN, 0, 0) -// #endif - -// #if (_WIN32_IE >= 0x0400) -alias CCM_SETUNICODEFORMAT HDM_SETUNICODEFORMAT; -// #define Header_SetUnicodeFormat(hwnd, fUnicode) (BOOL)SNDMSG((hwnd), HDM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) - -alias CCM_GETUNICODEFORMAT HDM_GETUNICODEFORMAT; -// #define Header_GetUnicodeFormat(hwnd) (BOOL)SNDMSG((hwnd), HDM_GETUNICODEFORMAT, 0, 0) -// #endif - -// #if (_WIN32_IE >= 0x0500) -enum : uint { HDM_SETFILTERCHANGETIMEOUT = HDM_FIRST+22 } -// #define Header_SetFilterChangeTimeout(hwnd, i) (int)SNDMSG((hwnd), HDM_SETFILTERCHANGETIMEOUT, 0, (LPARAM)(i)) - -enum : uint { HDM_EDITFILTER = HDM_FIRST+23 } -// #define Header_EditFilter(hwnd, i, fDiscardChanges) (int)SNDMSG((hwnd), HDM_EDITFILTER, (WPARAM)(i), MAKELPARAM(fDiscardChanges, 0)) - -enum : uint { HDM_CLEARFILTER = HDM_FIRST+24 } -// #define Header_ClearFilter(hwnd, i) (int)SNDMSG((hwnd), HDM_CLEARFILTER, (WPARAM)(i), 0) -// #define Header_ClearAllFilters(hwnd) (int)SNDMSG((hwnd), HDM_CLEARFILTER, (WPARAM)-1, 0) -// #endif - -enum : uint { HDN_ITEMCHANGINGA = HDN_FIRST-0 } -enum : uint { HDN_ITEMCHANGINGW = HDN_FIRST-20 } -enum : uint { HDN_ITEMCHANGEDA = HDN_FIRST-1 } -enum : uint { HDN_ITEMCHANGEDW = HDN_FIRST-21 } -enum : uint { HDN_ITEMCLICKA = HDN_FIRST-2 } -enum : uint { HDN_ITEMCLICKW = HDN_FIRST-22 } -enum : uint { HDN_ITEMDBLCLICKA = HDN_FIRST-3 } -enum : uint { HDN_ITEMDBLCLICKW = HDN_FIRST-23 } -enum : uint { HDN_DIVIDERDBLCLICKA = HDN_FIRST-5 } -enum : uint { HDN_DIVIDERDBLCLICKW = HDN_FIRST-25 } -enum : uint { HDN_BEGINTRACKA = HDN_FIRST-6 } -enum : uint { HDN_BEGINTRACKW = HDN_FIRST-26 } -enum : uint { HDN_ENDTRACKA = HDN_FIRST-7 } -enum : uint { HDN_ENDTRACKW = HDN_FIRST-27 } -enum : uint { HDN_TRACKA = HDN_FIRST-8 } -enum : uint { HDN_TRACKW = HDN_FIRST-28 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { HDN_GETDISPINFOA = HDN_FIRST-9 } -enum : uint { HDN_GETDISPINFOW = HDN_FIRST-29 } -enum : uint { HDN_BEGINDRAG = HDN_FIRST-10 } -enum : uint { HDN_ENDDRAG = HDN_FIRST-11 } -// #endif -// #if (_WIN32_IE >= 0x0500) -enum : uint { HDN_FILTERCHANGE = HDN_FIRST-12 } -enum : uint { HDN_FILTERBTNCLICK = HDN_FIRST-13 } -// #endif - -// #ifdef UNICODE -alias HDN_ITEMCHANGINGW HDN_ITEMCHANGING; -alias HDN_ITEMCHANGEDW HDN_ITEMCHANGED; -alias HDN_ITEMCLICKW HDN_ITEMCLICK; -alias HDN_ITEMDBLCLICKW HDN_ITEMDBLCLICK; -alias HDN_DIVIDERDBLCLICKW HDN_DIVIDERDBLCLICK; -alias HDN_BEGINTRACKW HDN_BEGINTRACK; -alias HDN_ENDTRACKW HDN_ENDTRACK; -alias HDN_TRACKW HDN_TRACK; -// #if (_WIN32_IE >= 0x0300) -alias HDN_GETDISPINFOW HDN_GETDISPINFO; -// #endif -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #if (_WIN32_IE >= 0x0300) -// #... -// #endif -// #endif - -// #if (_WIN32_IE >= 0x0300) -alias NMHEADERA HD_NOTIFYA; -alias NMHEADERW HD_NOTIFYW; -// #else -// #... -// #... -// #... -// #... -// #endif -alias NMHEADER HD_NOTIFY; - -struct tagNMHEADERA { - NMHDR hdr; - int iItem; - int iButton; - HDITEMA *pitem; -} -alias tagNMHEADERA NMHEADERA; -alias tagNMHEADERA* LPNMHEADERA; - -struct tagNMHEADERW { - NMHDR hdr; - int iItem; - int iButton; - HDITEMW *pitem; -} -alias tagNMHEADERW NMHEADERW; -alias tagNMHEADERW* LPNMHEADERW; - -// #ifdef UNICODE -alias NMHEADERW NMHEADER; -alias LPNMHEADERW LPNMHEADER; -// #else -// #... -// #... -// #endif - -struct tagNMHDDISPINFOW { - NMHDR hdr; - int iItem; - UINT mask; - LPWSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -} -alias tagNMHDDISPINFOW NMHDDISPINFOW; -alias tagNMHDDISPINFOW* LPNMHDDISPINFOW; - -struct tagNMHDDISPINFOA { - NMHDR hdr; - int iItem; - UINT mask; - LPSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -} -alias tagNMHDDISPINFOA NMHDDISPINFOA; -alias tagNMHDDISPINFOA* LPNMHDDISPINFOA; - -// #ifdef UNICODE -alias NMHDDISPINFOW NMHDDISPINFO; -alias LPNMHDDISPINFOW LPNMHDDISPINFO; -// #else -// #... -// #... -// #endif - -// #if (_WIN32_IE >= 0x0500) -struct tagNMHDFILTERBTNCLICK { - NMHDR hdr; - INT iItem; - RECT rc; -} -alias tagNMHDFILTERBTNCLICK NMHDFILTERBTNCLICK; -alias tagNMHDFILTERBTNCLICK* LPNMHDFILTERBTNCLICK; - -// #endif - -// #endif // NOHEADER - -// #ifndef NOTOOLBAR - -// #ifdef _WIN32 -const wchar[] TOOLBARCLASSNAMEW = "ToolbarWindow32"; -const char[] TOOLBARCLASSNAMEA = "ToolbarWindow32"; - -// #ifdef UNICODE -alias TOOLBARCLASSNAMEW TOOLBARCLASSNAME; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -struct _TBBUTTON { - int iBitmap; - int idCommand; - BYTE fsState; - BYTE fsStyle; -// #ifdef _WIN64 -// ... -// #elif defined(_WIN32) - BYTE bReserved[2]; -// #endif - DWORD_PTR dwData; - INT_PTR iString; -} -alias _TBBUTTON TBBUTTON; -alias _TBBUTTON* PTBBUTTON; -alias _TBBUTTON* LPTBBUTTON; - -alias TBBUTTON* LPCTBBUTTON; - -struct _COLORMAP { - COLORREF from; - COLORREF to; -} -alias _COLORMAP COLORMAP; -alias _COLORMAP* LPCOLORMAP; - -extern(Windows) export HWND CreateToolbarEx(HWND hwnd, DWORD ws, UINT wID, int nBitmaps, - HINSTANCE hBMInst, UINT_PTR wBMID, LPCTBBUTTON lpButtons, - int iNumButtons, int dxButton, int dyButton, - int dxBitmap, int dyBitmap, UINT uStructSize); - -extern(Windows) export HBITMAP CreateMappedBitmap(HINSTANCE hInstance, INT_PTR idBitmap, - UINT wFlags, LPCOLORMAP lpColorMap, - int iNumMaps); - -enum : uint { CMB_MASKED = 0x02 } -enum : uint { TBSTATE_CHECKED = 0x01 } -enum : uint { TBSTATE_PRESSED = 0x02 } -enum : uint { TBSTATE_ENABLED = 0x04 } -enum : uint { TBSTATE_HIDDEN = 0x08 } -enum : uint { TBSTATE_INDETERMINATE = 0x10 } -enum : uint { TBSTATE_WRAP = 0x20 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TBSTATE_ELLIPSES = 0x40 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { TBSTATE_MARKED = 0x80 } -// #endif - -enum : uint { TBSTYLE_BUTTON = 0x0000 } -enum : uint { TBSTYLE_SEP = 0x0001 } -enum : uint { TBSTYLE_CHECK = 0x0002 } -enum : uint { TBSTYLE_GROUP = 0x0004 } -enum : uint { TBSTYLE_CHECKGROUP = TBSTYLE_GROUP | TBSTYLE_CHECK } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TBSTYLE_DROPDOWN = 0x0008 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { TBSTYLE_AUTOSIZE = 0x0010 } -enum : uint { TBSTYLE_NOPREFIX = 0x0020 } -// #endif - -enum : uint { TBSTYLE_TOOLTIPS = 0x0100 } -enum : uint { TBSTYLE_WRAPABLE = 0x0200 } -enum : uint { TBSTYLE_ALTDRAG = 0x0400 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TBSTYLE_FLAT = 0x0800 } -enum : uint { TBSTYLE_LIST = 0x1000 } -enum : uint { TBSTYLE_CUSTOMERASE = 0x2000 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { TBSTYLE_REGISTERDROP = 0x4000 } -enum : uint { TBSTYLE_TRANSPARENT = 0x8000 } -enum : uint { TBSTYLE_EX_DRAWDDARROWS = 0x00000001 } -// #endif - -// #if (_WIN32_IE >= 0x0500) -alias TBSTYLE_BUTTON BTNS_BUTTON; -alias TBSTYLE_SEP BTNS_SEP; -alias TBSTYLE_CHECK BTNS_CHECK; -alias TBSTYLE_GROUP BTNS_GROUP; -alias TBSTYLE_CHECKGROUP BTNS_CHECKGROUP; -alias TBSTYLE_DROPDOWN BTNS_DROPDOWN; -alias TBSTYLE_AUTOSIZE BTNS_AUTOSIZE; -alias TBSTYLE_NOPREFIX BTNS_NOPREFIX; -// #if (_WIN32_IE >= 0x0501) -enum : uint { BTNS_SHOWTEXT = 0x0040 } -// #endif // 0x0501 -enum : uint { BTNS_WHOLEDROPDOWN = 0x0080 } -// #endif - -// #if (_WIN32_IE >= 0x0501) -enum : uint { TBSTYLE_EX_MIXEDBUTTONS = 0x00000008 } -enum : uint { TBSTYLE_EX_HIDECLIPPEDBUTTONS = 0x00000010 } -// #endif // 0x0501 - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { TBSTYLE_EX_DOUBLEBUFFER = 0x00000080 } -// #endif - -// #if (_WIN32_IE >= 0x0400) - -struct _NMTBCUSTOMDRAW { - NMCUSTOMDRAW nmcd; - HBRUSH hbrMonoDither; - HBRUSH hbrLines; - HPEN hpenLines; - - COLORREF clrText; - COLORREF clrMark; - COLORREF clrTextHighlight; - COLORREF clrBtnFace; - COLORREF clrBtnHighlight; - COLORREF clrHighlightHotTrack; - - RECT rcText; - - int nStringBkMode; - int nHLStringBkMode; -// #if (_WIN32_WINNT >= 0x501) - int iListGap; -// #endif -} -alias _NMTBCUSTOMDRAW NMTBCUSTOMDRAW; -alias _NMTBCUSTOMDRAW* LPNMTBCUSTOMDRAW; - -enum : uint { TBCDRF_NOEDGES = 0x00010000 } -enum : uint { TBCDRF_HILITEHOTTRACK = 0x00020000 } -enum : uint { TBCDRF_NOOFFSET = 0x00040000 } -enum : uint { TBCDRF_NOMARK = 0x00080000 } -enum : uint { TBCDRF_NOETCHEDEFFECT = 0x00100000 } -// #endif - -// #if (_WIN32_IE >= 0x0500) -enum : uint { TBCDRF_BLENDICON = 0x00200000 } -enum : uint { TBCDRF_NOBACKGROUND = 0x00400000 } -// #endif - -enum : uint { TB_ENABLEBUTTON = WM_USER + 1 } -enum : uint { TB_CHECKBUTTON = WM_USER + 2 } -enum : uint { TB_PRESSBUTTON = WM_USER + 3 } -enum : uint { TB_HIDEBUTTON = WM_USER + 4 } -enum : uint { TB_INDETERMINATE = WM_USER + 5 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { TB_MARKBUTTON = WM_USER + 6 } -// #endif -enum : uint { TB_ISBUTTONENABLED = WM_USER + 9 } -enum : uint { TB_ISBUTTONCHECKED = WM_USER + 10 } -enum : uint { TB_ISBUTTONPRESSED = WM_USER + 11 } -enum : uint { TB_ISBUTTONHIDDEN = WM_USER + 12 } -enum : uint { TB_ISBUTTONINDETERMINATE = WM_USER + 13 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { TB_ISBUTTONHIGHLIGHTED = WM_USER + 14 } -// #endif -enum : uint { TB_SETSTATE = WM_USER + 17 } -enum : uint { TB_GETSTATE = WM_USER + 18 } -enum : uint { TB_ADDBITMAP = WM_USER + 19 } - -// #ifdef _WIN32 -struct tagTBADDBITMAP { - HINSTANCE hInst; - UINT_PTR nID; -} -alias tagTBADDBITMAP TBADDBITMAP; -alias tagTBADDBITMAP* LPTBADDBITMAP; - -HINSTANCE HINST_COMMCTRL = cast(HINSTANCE)(-1); -enum : uint { IDB_STD_SMALL_COLOR = 0 } -enum : uint { IDB_STD_LARGE_COLOR = 1 } -enum : uint { IDB_VIEW_SMALL_COLOR = 4 } -enum : uint { IDB_VIEW_LARGE_COLOR = 5 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { IDB_HIST_SMALL_COLOR = 8 } -enum : uint { IDB_HIST_LARGE_COLOR = 9 } -// #endif - -enum : uint { STD_CUT = 0 } -enum : uint { STD_COPY = 1 } -enum : uint { STD_PASTE = 2 } -enum : uint { STD_UNDO = 3 } -enum : uint { STD_REDOW = 4 } -enum : uint { STD_DELETE = 5 } -enum : uint { STD_FILENEW = 6 } -enum : uint { STD_FILEOPEN = 7 } -enum : uint { STD_FILESAVE = 8 } -enum : uint { STD_PRINTPRE = 9 } -enum : uint { STD_PROPERTIES = 10 } -enum : uint { STD_HELP = 11 } -enum : uint { STD_FIND = 12 } -enum : uint { STD_REPLACE = 13 } -enum : uint { STD_PRINT = 14 } - -enum : uint { VIEW_LARGEICONS = 0 } -enum : uint { VIEW_SMALLICONS = 1 } -enum : uint { VIEW_LIST = 2 } -enum : uint { VIEW_DETAILS = 3 } -enum : uint { VIEW_SORTNAME = 4 } -enum : uint { VIEW_SORTSIZE = 5 } -enum : uint { VIEW_SORTDATE = 6 } -enum : uint { VIEW_SORTTYPE = 7 } -enum : uint { VIEW_PARENTFOLDER = 8 } -enum : uint { VIEW_NETCONNECT = 9 } -enum : uint { VIEW_NETDISCONNECT = 10 } -enum : uint { VIEW_NEWFOLDER = 11 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { VIEW_VIEWMENU = 12 } -// #endif - -// #if (_WIN32_IE >= 0x0300) -enum : uint { HIST_BACK = 0 } -enum : uint { HIST_FORWARD = 1 } -enum : uint { HIST_FAVORITES = 2 } -enum : uint { HIST_ADDTOFAVORITES = 3 } -enum : uint { HIST_VIEWTREE = 4 } -// #endif - -// #endif - -// #if (_WIN32_IE >= 0x0400) -enum : uint { TB_ADDBUTTONSA = WM_USER + 20 } -enum : uint { TB_INSERTBUTTONA = WM_USER + 21 } -// #else -// #... -// #... -// #endif - -enum : uint { TB_DELETEBUTTON = WM_USER + 22 } -enum : uint { TB_GETBUTTON = WM_USER + 23 } -enum : uint { TB_BUTTONCOUNT = WM_USER + 24 } -enum : uint { TB_COMMANDTOINDEX = WM_USER + 25 } - -// #ifdef _WIN32 - -struct tagTBSAVEPARAMSA { - HKEY hkr; - LPCSTR pszSubKey; - LPCSTR pszValueName; -} -alias tagTBSAVEPARAMSA TBSAVEPARAMSA; -alias tagTBSAVEPARAMSA* LPTBSAVEPARAMSA; - -struct tagTBSAVEPARAMSW { - HKEY hkr; - LPCWSTR pszSubKey; - LPCWSTR pszValueName; -} -alias tagTBSAVEPARAMSW TBSAVEPARAMSW; -alias tagTBSAVEPARAMSW* LPTBSAVEPARAMW; - -// #ifdef UNICODE -alias TBSAVEPARAMSW TBSAVEPARAMS; -alias LPTBSAVEPARAMSW LPTBSAVEPARAMS; -// #else -// #... -// #... -// #endif - -// #endif // _WIN32 - -enum : uint { TB_SAVERESTOREA = WM_USER + 26 } -enum : uint { TB_SAVERESTOREW = WM_USER + 76 } -enum : uint { TB_CUSTOMIZE = WM_USER + 27 } -enum : uint { TB_ADDSTRINGA = WM_USER + 28 } -enum : uint { TB_ADDSTRINGW = WM_USER + 77 } -enum : uint { TB_GETITEMRECT = WM_USER + 29 } -enum : uint { TB_BUTTONSTRUCTSIZE = WM_USER + 30 } -enum : uint { TB_SETBUTTONSIZE = WM_USER + 31 } -enum : uint { TB_SETBITMAPSIZE = WM_USER + 32 } -enum : uint { TB_AUTOSIZE = WM_USER + 33 } -enum : uint { TB_GETTOOLTIPS = WM_USER + 35 } -enum : uint { TB_SETTOOLTIPS = WM_USER + 36 } -enum : uint { TB_SETPARENT = WM_USER + 37 } -enum : uint { TB_SETROWS = WM_USER + 39 } -enum : uint { TB_GETROWS = WM_USER + 40 } -enum : uint { TB_SETCMDID = WM_USER + 42 } -enum : uint { TB_CHANGEBITMAP = WM_USER + 43 } -enum : uint { TB_GETBITMAP = WM_USER + 44 } -enum : uint { TB_GETBUTTONTEXTA = WM_USER + 45 } -enum : uint { TB_GETBUTTONTEXTW = WM_USER + 75 } -enum : uint { TB_REPLACEBITMAP = WM_USER + 46 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TB_SETINDENT = WM_USER + 47 } -enum : uint { TB_SETIMAGELIST = WM_USER + 48 } -enum : uint { TB_GETIMAGELIST = WM_USER + 49 } -enum : uint { TB_LOADIMAGES = WM_USER + 50 } -enum : uint { TB_GETRECT = WM_USER + 51 } -enum : uint { TB_SETHOTIMAGELIST = WM_USER + 52 } -enum : uint { TB_GETHOTIMAGELIST = WM_USER + 53 } -enum : uint { TB_SETDISABLEDIMAGELIST = WM_USER + 54 } -enum : uint { TB_GETDISABLEDIMAGELIST = WM_USER + 55 } -enum : uint { TB_SETSTYLE = WM_USER + 56 } -enum : uint { TB_GETSTYLE = WM_USER + 57 } -enum : uint { TB_GETBUTTONSIZE = WM_USER + 58 } -enum : uint { TB_SETBUTTONWIDTH = WM_USER + 59 } -enum : uint { TB_SETMAXTEXTROWS = WM_USER + 60 } -enum : uint { TB_GETTEXTROWS = WM_USER + 61 } -// #endif // _WIN32_IE >= 0x0300 - -// #ifdef UNICODE -alias TB_GETBUTTONTEXTW TB_GETBUTTONTEXT; -alias TB_SAVERESTOREW TB_SAVERESTORE; -alias TB_ADDSTRINGW TB_ADDSTRING; -// #else -// #... -// #... -// #... -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { TB_GETOBJECT = WM_USER + 62 } -enum : uint { TB_GETHOTITEM = WM_USER + 71 } -enum : uint { TB_SETHOTITEM = WM_USER + 72 } -enum : uint { TB_SETANCHORHIGHLIGHT = WM_USER + 73 } -enum : uint { TB_GETANCHORHIGHLIGHT = WM_USER + 74 } -enum : uint { TB_MAPACCELERATORA = WM_USER + 78 } - -struct _0 { - int iButton; - DWORD dwFlags; -} -alias _0 TBINSERTMARK; -alias _0* LPTBINSERTMARK; - -enum : uint { TBIMHT_AFTER = 0x00000001 } -enum : uint { TBIMHT_BACKGROUND = 0x00000002 } - -enum : uint { TB_GETINSERTMARK = WM_USER + 79 } -enum : uint { TB_SETINSERTMARK = WM_USER + 80 } -enum : uint { TB_INSERTMARKHITTEST = WM_USER + 81 } -enum : uint { TB_MOVEBUTTON = WM_USER + 82 } -enum : uint { TB_GETMAXSIZE = WM_USER + 83 } -enum : uint { TB_SETEXTENDEDSTYLE = WM_USER + 84 } -enum : uint { TB_GETEXTENDEDSTYLE = WM_USER + 85 } -enum : uint { TB_GETPADDING = WM_USER + 86 } -enum : uint { TB_SETPADDING = WM_USER + 87 } -enum : uint { TB_SETINSERTMARKCOLOR = WM_USER + 88 } -enum : uint { TB_GETINSERTMARKCOLOR = WM_USER + 89 } - -alias CCM_SETCOLORSCHEME TB_SETCOLORSCHEME; -alias CCM_GETCOLORSCHEME TB_GETCOLORSCHEME; - -alias CCM_SETUNICODEFORMAT TB_SETUNICODEFORMAT; -alias CCM_GETUNICODEFORMAT TB_GETUNICODEFORMAT; - -enum : uint { TB_MAPACCELERATORW = WM_USER + 90 } -// #ifdef UNICODE -alias TB_MAPACCELERATORW TB_MAPACCELERATOR; -// #else -// #... -// #endif - -// #endif // _WIN32_IE >= 0x0400 - -struct _1 { - HINSTANCE hInstOld; - UINT_PTR nIDOld; - HINSTANCE hInstNew; - UINT_PTR nIDNew; - int nButtons; -} -alias _1 TBREPLACEBITMAP; -alias _1* LPTBREPLACEBITMAP; - -// #ifdef _WIN32 - -enum : uint { TBBF_LARGE = 0x0001 } - -enum : uint { TB_GETBITMAPFLAGS = WM_USER + 41 } - -// #if (_WIN32_IE >= 0x0400) -enum : uint { TBIF_IMAGE = 0x00000001 } -enum : uint { TBIF_TEXT = 0x00000002 } -enum : uint { TBIF_STATE = 0x00000004 } -enum : uint { TBIF_STYLE = 0x00000008 } -enum : uint { TBIF_LPARAM = 0x00000010 } -enum : uint { TBIF_COMMAND = 0x00000020 } -enum : uint { TBIF_SIZE = 0x00000040 } - -// #if (_WIN32_IE >= 0x0500) -enum : uint { TBIF_BYINDEX = 0x80000000 } -// #endif - -struct _2 { - UINT cbSize; - DWORD dwMask; - int idCommand; - int iImage; - BYTE fsState; - BYTE fsStyle; - WORD cx; - DWORD_PTR lParam; - LPSTR pszText; - int cchText; -} -alias _2 TBBUTTONINFOA; -alias _2* LPTBBUTTONINFOA; - -struct _3 { - UINT cbSize; - DWORD dwMask; - int idCommand; - int iImage; - BYTE fsState; - BYTE fsStyle; - WORD cx; - DWORD_PTR lParam; - LPWSTR pszText; - int cchText; -} -alias _3 TBBUTTONINFOW; -alias _3* LPTBBUTTONINFOW; - -// #ifdef UNICODE -alias TBBUTTONINFOW TBBUTTONINFO; -alias LPTBBUTTONINFOW LPTBBUTTONINFO; -// #else -// #... -// #... -// #endif - -enum : uint { TB_GETBUTTONINFOW = WM_USER + 63 } -enum : uint { TB_SETBUTTONINFOW = WM_USER + 64 } -enum : uint { TB_GETBUTTONINFOA = WM_USER + 65 } -enum : uint { TB_SETBUTTONINFOA = WM_USER + 66 } -// #ifdef UNICODE -alias TB_GETBUTTONINFOW TB_GETBUTTONINFO; -alias TB_SETBUTTONINFOW TB_SETBUTTONINFO; -// #else -// #... -// #... -// #endif - -enum : uint { TB_INSERTBUTTONW = WM_USER + 67 } -enum : uint { TB_ADDBUTTONSW = WM_USER + 68 } - -enum : uint { TB_HITTEST = WM_USER + 69 } - -// #ifdef UNICODE -alias TB_INSERTBUTTONW TB_INSERTBUTTON; -alias TB_ADDBUTTONSW TB_ADDBUTTONS; -// #else -// #... -// #... -// #endif - -enum : uint { TB_SETDRAWTEXTFLAGS = WM_USER + 70 } - -// #endif // _WIN32_IE >= 0x0400 - -// #if (_WIN32_IE >= 0x0500) - -enum : uint { TB_GETSTRINGW = WM_USER + 91 } -enum : uint { TB_GETSTRINGA = WM_USER + 92 } -// #ifdef UNICODE -alias TB_GETSTRINGW TB_GETSTRING; -// #else -// #... -// #endif - -// #endif // _WIN32_IE >= 0x0500 - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { TBMF_PAD = 0x00000001 } -enum : uint { TBMF_BARPAD = 0x00000002 } -enum : uint { TBMF_BUTTONSPACING = 0x00000004 } - -struct _4 { - UINT cbSize; - DWORD dwMask; - int cxPad; - int cyPad; - int cxBarPad; - int cyBarPad; - int cxButtonSpacing; - int cyButtonSpacing; -} -alias _4 TBMETRICS; -alias _4* LPTBMETRICS; - -enum : uint { TB_GETMETRICS = WM_USER + 101 } -enum : uint { TB_SETMETRICS = WM_USER + 102 } -// #endif - -// #if (_WIN32_WINNT >= 0x501) -alias CCM_SETWINDOWTHEME TB_SETWINDOWTHEME; -// #endif - -enum : uint { TBN_GETBUTTONINFOA = TBN_FIRST-0 } -enum : uint { TBN_BEGINDRAG = TBN_FIRST-1 } -enum : uint { TBN_ENDDRAG = TBN_FIRST-2 } -enum : uint { TBN_BEGINADJUST = TBN_FIRST-3 } -enum : uint { TBN_ENDADJUST = TBN_FIRST-4 } -enum : uint { TBN_RESET = TBN_FIRST-5 } -enum : uint { TBN_QUERYINSERT = TBN_FIRST-6 } -enum : uint { TBN_QUERYDELETE = TBN_FIRST-7 } -enum : uint { TBN_TOOLBARCHANGE = TBN_FIRST-8 } -enum : uint { TBN_CUSTHELP = TBN_FIRST-9 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TBN_DROPDOWN = TBN_FIRST - 10 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { TBN_GETOBJECT = TBN_FIRST - 12 } - -struct tagNMTBHOTITEM { - NMHDR hdr; - int idOld; - int idNew; - DWORD dwFlags; -} -alias tagNMTBHOTITEM NMTBHOTITEM; -alias tagNMTBHOTITEM* LPNMTBHOTITEM; - -enum : uint { HICF_OTHER = 0x00000000 } -enum : uint { HICF_MOUSE = 0x00000001 } -enum : uint { HICF_ARROWKEYS = 0x00000002 } -enum : uint { HICF_ACCELERATOR = 0x00000004 } -enum : uint { HICF_DUPACCEL = 0x00000008 } -enum : uint { HICF_ENTERING = 0x00000010 } -enum : uint { HICF_LEAVING = 0x00000020 } -enum : uint { HICF_RESELECT = 0x00000040 } -enum : uint { HICF_LMOUSE = 0x00000080 } -enum : uint { HICF_TOGGLEDROPDOWN = 0x00000100 } - -enum : uint { TBN_HOTITEMCHANGE = TBN_FIRST - 13 } -enum : uint { TBN_DRAGOUT = TBN_FIRST - 14 } -enum : uint { TBN_DELETINGBUTTON = TBN_FIRST - 15 } -enum : uint { TBN_GETDISPINFOA = TBN_FIRST - 16 } -enum : uint { TBN_GETDISPINFOW = TBN_FIRST - 17 } -enum : uint { TBN_GETINFOTIPA = TBN_FIRST - 18 } -enum : uint { TBN_GETINFOTIPW = TBN_FIRST - 19 } -enum : uint { TBN_GETBUTTONINFOW = TBN_FIRST - 20 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { TBN_RESTORE = TBN_FIRST - 21 } -enum : uint { TBN_SAVE = TBN_FIRST - 22 } -enum : uint { TBN_INITCUSTOMIZE = TBN_FIRST - 23 } -enum : uint { TBNRF_HIDEHELP = 0x00000001 } -enum : uint { TBNRF_ENDCUSTOMIZE = 0x00000002 } -// #endif // (_WIN32_IE >= 0x0500) - -// #if (_WIN32_IE >= 0x0500) - -struct tagNMTBSAVE { - NMHDR hdr; - DWORD * pData; - DWORD * pCurrent; - UINT cbData; - int iItem; - int cButtons; - TBBUTTON tbButton; -} -alias tagNMTBSAVE NMTBSAVE; -alias tagNMTBSAVE* LPNMTBSAVE; - -struct tagNMTBRESTORE { - NMHDR hdr; - DWORD * pData; - DWORD * pCurrent; - UINT cbData; - int iItem; - int cButtons; - int cbBytesPerRecord; - TBBUTTON tbButton; -} -alias tagNMTBRESTORE NMTBRESTORE; -alias tagNMTBRESTORE* LPNMTBRESTORE; - -// #endif // (_WIN32_IE >= 0x0500) - -struct tagNMTBGETINFOTIPA { - NMHDR hdr; - LPSTR pszText; - int cchTextMax; - int iItem; - LPARAM lParam; -} -alias tagNMTBGETINFOTIPA NMTBGETINFOTIPA; -alias tagNMTBGETINFOTIPA* LPNMTBGETINFOTIPA; - -struct tagNMTBGETINFOTIPW { - NMHDR hdr; - LPWSTR pszText; - int cchTextMax; - int iItem; - LPARAM lParam; -} -alias tagNMTBGETINFOTIPW NMTBGETINFOTIPW; -alias tagNMTBGETINFOTIPW* LPNMTBGETINFOTIPW; - -// #ifdef UNICODE -alias TBN_GETINFOTIPW TBN_GETINFOTIP; -alias NMTBGETINFOTIPW NMTBGETINFOTIP; -alias LPNMTBGETINFOTIPW LPNMTBGETINFOTIP; -// #else -// #... -// #... -// #... -// #endif - -enum : uint { TBNF_IMAGE = 0x00000001 } -enum : uint { TBNF_TEXT = 0x00000002 } -enum : uint { TBNF_DI_SETITEM = 0x10000000 } - -struct _5 { - NMHDR hdr; - DWORD dwMask; - int idCommand; - DWORD_PTR lParam; - int iImage; - LPSTR pszText; - int cchText; -} -alias _5 NMTBDISPINFOA; -alias _5* LPNMTBDISPINFOA; - -struct _6 { - NMHDR hdr; - DWORD dwMask; - int idCommand; - DWORD_PTR lParam; - int iImage; - LPWSTR pszText; - int cchText; -} -alias _6 NMTBDISPINFOW; -alias _6* LPNMTBDISPINFOW; - -// #ifdef UNICODE -alias TBN_GETDISPINFOW TBN_GETDISPINFO; -alias NMTBDISPINFOW NMTBDISPINFO; -alias LPNMTBDISPINFOW LPNMTBDISPINFO; -// #else -// #... -// #... -// #... -// #endif - -enum : uint { TBDDRET_DEFAULT = 0 } -enum : uint { TBDDRET_NODEFAULT = 1 } -enum : uint { TBDDRET_TREATPRESSED = 2 } - -// #endif - -// #ifdef UNICODE -alias TBN_GETBUTTONINFOW TBN_GETBUTTONINFO; -// #else -// #... -// #endif - -// #if (_WIN32_IE >= 0x0300) -alias NMTOOLBARA TBNOTIFYA; -alias NMTOOLBARW TBNOTIFYW; -alias LPNMTOOLBARA LPTBNOTIFYA; -alias LPNMTOOLBARW LPTBNOTIFYW; -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -alias NMTOOLBAR TBNOTIFY; -alias LPNMTOOLBAR LPTBNOTIFY; - -// #if (_WIN32_IE >= 0x0300) -struct tagNMTOOLBARA { - NMHDR hdr; - int iItem; - TBBUTTON tbButton; - int cchText; - LPSTR pszText; -// #if (_WIN32_IE >= 0x500) - RECT rcButton; -// #endif -} -alias tagNMTOOLBARA NMTOOLBARA; -alias tagNMTOOLBARA* LPNMTOOLBARA; - -// #endif - -// #if (_WIN32_IE >= 0x0300) -struct tagNMTOOLBARW { - NMHDR hdr; - int iItem; - TBBUTTON tbButton; - int cchText; - LPWSTR pszText; -// #if (_WIN32_IE >= 0x500) - RECT rcButton; -// #endif -} -alias tagNMTOOLBARW NMTOOLBARW; -alias tagNMTOOLBARW* LPNMTOOLBARW; - -// #endif - -// #ifdef UNICODE -alias NMTOOLBARW NMTOOLBAR; -alias LPNMTOOLBARW LPNMTOOLBAR; -// #else -// #... -// #... -// #endif - -// #endif - -// #endif // NOTOOLBAR - -// #if (_WIN32_IE >= 0x0300) - -// #ifndef NOREBAR - -// #ifdef _WIN32 -const wchar[] REBARCLASSNAMEW = "ReBarWindow32"; -const char[] REBARCLASSNAMEA = "ReBarWindow32"; - -// #ifdef UNICODE -alias REBARCLASSNAMEW REBARCLASSNAME; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -enum : uint { RBIM_IMAGELIST = 0x00000001 } - -// #if (_WIN32_IE >= 0x0400) -enum : uint { RBS_TOOLTIPS = 0x0100 } -enum : uint { RBS_VARHEIGHT = 0x0200 } -enum : uint { RBS_BANDBORDERS = 0x0400 } -enum : uint { RBS_FIXEDORDER = 0x0800 } -enum : uint { RBS_REGISTERDROP = 0x1000 } -enum : uint { RBS_AUTOSIZE = 0x2000 } -enum : uint { RBS_VERTICALGRIPPER = 0x4000 } -enum : uint { RBS_DBLCLKTOGGLE = 0x8000 } -// #else -// #... -// #... -// #... -// #... -// #endif // _WIN32_IE >= 0x0400 - -struct tagREBARINFO { - UINT cbSize; - UINT fMask; -// #ifndef NOIMAGEAPIS - HIMAGELIST himl; -// #else -// ... -// #endif -} -alias tagREBARINFO REBARINFO; -alias tagREBARINFO* LPREBARINFO; - -enum : uint { RBBS_BREAK = 0x00000001 } -enum : uint { RBBS_FIXEDSIZE = 0x00000002 } -enum : uint { RBBS_CHILDEDGE = 0x00000004 } -enum : uint { RBBS_HIDDEN = 0x00000008 } -enum : uint { RBBS_NOVERT = 0x00000010 } -enum : uint { RBBS_FIXEDBMP = 0x00000020 } -// #if (_WIN32_IE >= 0x0400) // -enum : uint { RBBS_VARIABLEHEIGHT = 0x00000040 } -enum : uint { RBBS_GRIPPERALWAYS = 0x00000080 } -enum : uint { RBBS_NOGRIPPER = 0x00000100 } -// #if (_WIN32_IE >= 0x0500) // -enum : uint { RBBS_USECHEVRON = 0x00000200 } -// #if (_WIN32_IE >= 0x0501) // -enum : uint { RBBS_HIDETITLE = 0x00000400 } -enum : uint { RBBS_TOPALIGN = 0x00000800 } -// #endif // 0x0501 // -// #endif // 0x0500 // -// #endif // 0x0400 // - -enum : uint { RBBIM_STYLE = 0x00000001 } -enum : uint { RBBIM_COLORS = 0x00000002 } -enum : uint { RBBIM_TEXT = 0x00000004 } -enum : uint { RBBIM_IMAGE = 0x00000008 } -enum : uint { RBBIM_CHILD = 0x00000010 } -enum : uint { RBBIM_CHILDSIZE = 0x00000020 } -enum : uint { RBBIM_SIZE = 0x00000040 } -enum : uint { RBBIM_BACKGROUND = 0x00000080 } -enum : uint { RBBIM_ID = 0x00000100 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { RBBIM_IDEALSIZE = 0x00000200 } -enum : uint { RBBIM_LPARAM = 0x00000400 } -enum : uint { RBBIM_HEADERSIZE = 0x00000800 } -// #endif - -struct tagREBARBANDINFOA { - UINT cbSize; - UINT fMask; - UINT fStyle; - COLORREF clrFore; - COLORREF clrBack; - LPSTR lpText; - UINT cch; - int iImage; - HWND hwndChild; - UINT cxMinChild; - UINT cyMinChild; - UINT cx; - HBITMAP hbmBack; - UINT wID; -// #if (_WIN32_IE >= 0x0400) - UINT cyChild; - UINT cyMaxChild; - UINT cyIntegral; - UINT cxIdeal; - LPARAM lParam; - UINT cxHeader; -// #endif -} -alias tagREBARBANDINFOA REBARBANDINFOA; -alias tagREBARBANDINFOA* LPREBARBANDINFOA; - -alias REBARBANDINFOA* LPCREBARBANDINFOA; - -// #define REBARBANDINFOA_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOA, wID) -// #define REBARBANDINFOW_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOW, wID) - -struct tagREBARBANDINFOW { - UINT cbSize; - UINT fMask; - UINT fStyle; - COLORREF clrFore; - COLORREF clrBack; - LPWSTR lpText; - UINT cch; - int iImage; - HWND hwndChild; - UINT cxMinChild; - UINT cyMinChild; - UINT cx; - HBITMAP hbmBack; - UINT wID; -// #if (_WIN32_IE >= 0x0400) - UINT cyChild; - UINT cyMaxChild; - UINT cyIntegral; - UINT cxIdeal; - LPARAM lParam; - UINT cxHeader; -// #endif -} -alias tagREBARBANDINFOW REBARBANDINFOW; -alias tagREBARBANDINFOW* LPREBARBANDINFOW; - -alias REBARBANDINFOW* LPCREBARBANDINFOW; - -// #ifdef UNICODE -alias REBARBANDINFOW REBARBANDINFO; -alias LPREBARBANDINFOW LPREBARBANDINFO; -alias LPCREBARBANDINFOW LPCREBARBANDINFO; -// #define REBARBANDINFO_V3_SIZE REBARBANDINFOW_V3_SIZE -// #else -// #... -// #... -// #... -// #... -// #endif - -enum : uint { RB_INSERTBANDA = WM_USER + 1 } -enum : uint { RB_DELETEBAND = WM_USER + 2 } -enum : uint { RB_GETBARINFO = WM_USER + 3 } -enum : uint { RB_SETBARINFO = WM_USER + 4 } -// #if (_WIN32_IE < 0x0400) -// #... -// #endif -enum : uint { RB_SETBANDINFOA = WM_USER + 6 } -enum : uint { RB_SETPARENT = WM_USER + 7 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { RB_HITTEST = WM_USER + 8 } -enum : uint { RB_GETRECT = WM_USER + 9 } -// #endif -enum : uint { RB_INSERTBANDW = WM_USER + 10 } -enum : uint { RB_SETBANDINFOW = WM_USER + 11 } -enum : uint { RB_GETBANDCOUNT = WM_USER + 12 } -enum : uint { RB_GETROWCOUNT = WM_USER + 13 } -enum : uint { RB_GETROWHEIGHT = WM_USER + 14 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { RB_IDTOINDEX = WM_USER + 16 } -enum : uint { RB_GETTOOLTIPS = WM_USER + 17 } -enum : uint { RB_SETTOOLTIPS = WM_USER + 18 } -enum : uint { RB_SETBKCOLOR = WM_USER + 19 } -enum : uint { RB_GETBKCOLOR = WM_USER + 20 } -enum : uint { RB_SETTEXTCOLOR = WM_USER + 21 } -enum : uint { RB_GETTEXTCOLOR = WM_USER + 22 } - -// #if (_WIN32_WINNT >= 0x0501) -enum : uint { RBSTR_CHANGERECT = 0x0001 } -// #endif - -enum : uint { RB_SIZETORECT = WM_USER + 23 } -// #endif // _WIN32_IE >= 0x0400 - -alias CCM_SETCOLORSCHEME RB_SETCOLORSCHEME; -alias CCM_GETCOLORSCHEME RB_GETCOLORSCHEME; - -// #ifdef UNICODE -alias RB_INSERTBANDW RB_INSERTBAND; -alias RB_SETBANDINFOW RB_SETBANDINFO; -// #else -// #... -// #... -// #endif - -// #if (_WIN32_IE >= 0x0400) - -enum : uint { RB_BEGINDRAG = WM_USER + 24 } -enum : uint { RB_ENDDRAG = WM_USER + 25 } -enum : uint { RB_DRAGMOVE = WM_USER + 26 } -enum : uint { RB_GETBARHEIGHT = WM_USER + 27 } -enum : uint { RB_GETBANDINFOW = WM_USER + 28 } -enum : uint { RB_GETBANDINFOA = WM_USER + 29 } - -// #ifdef UNICODE -alias RB_GETBANDINFOW RB_GETBANDINFO; -// #else -// #... -// #endif - -enum : uint { RB_MINIMIZEBAND = WM_USER + 30 } -enum : uint { RB_MAXIMIZEBAND = WM_USER + 31 } - -enum : uint { RB_GETDROPTARGET = CCM_GETDROPTARGET } - -enum : uint { RB_GETBANDBORDERS = WM_USER + 34 } - -enum : uint { RB_SHOWBAND = WM_USER + 35 } -enum : uint { RB_SETPALETTE = WM_USER + 37 } -enum : uint { RB_GETPALETTE = WM_USER + 38 } -enum : uint { RB_MOVEBAND = WM_USER + 39 } - -alias CCM_SETUNICODEFORMAT RB_SETUNICODEFORMAT; -alias CCM_GETUNICODEFORMAT RB_GETUNICODEFORMAT; - -// #endif // _WIN32_IE >= 0x0400 - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { RB_GETBANDMARGINS = WM_USER + 40 } -alias CCM_SETWINDOWTHEME RB_SETWINDOWTHEME; -// #endif - -// #if (_WIN32_IE >= 0x0500) -enum : uint { RB_PUSHCHEVRON = WM_USER + 43 } -// #endif // _WIN32_IE >= 0x0500 - -enum : uint { RBN_HEIGHTCHANGE = RBN_FIRST - 0 } - -// #if (_WIN32_IE >= 0x0400) -enum : uint { RBN_GETOBJECT = RBN_FIRST - 1 } -enum : uint { RBN_LAYOUTCHANGED = RBN_FIRST - 2 } -enum : uint { RBN_AUTOSIZE = RBN_FIRST - 3 } -enum : uint { RBN_BEGINDRAG = RBN_FIRST - 4 } -enum : uint { RBN_ENDDRAG = RBN_FIRST - 5 } -enum : uint { RBN_DELETINGBAND = RBN_FIRST - 6 } -enum : uint { RBN_DELETEDBAND = RBN_FIRST - 7 } -enum : uint { RBN_CHILDSIZE = RBN_FIRST - 8 } - -// #if (_WIN32_IE >= 0x0500) -enum : uint { RBN_CHEVRONPUSHED = RBN_FIRST - 10 } -// #endif // _WIN32_IE >= 0x0500 - -// #if (_WIN32_IE >= 0x0500) -enum : uint { RBN_MINMAX = RBN_FIRST - 21 } -// #endif - -// #if (_WIN32_WINNT >= 0x0501) -enum : uint { RBN_AUTOBREAK = RBN_FIRST - 22 } -// #endif - -struct tagNMREBARCHILDSIZE { - NMHDR hdr; - UINT uBand; - UINT wID; - RECT rcChild; - RECT rcBand; -} -alias tagNMREBARCHILDSIZE NMREBARCHILDSIZE; -alias tagNMREBARCHILDSIZE* LPNMREBARCHILDSIZE; - -struct tagNMREBAR { - NMHDR hdr; - DWORD dwMask; - UINT uBand; - UINT fStyle; - UINT wID; - LPARAM lParam; -} -alias tagNMREBAR NMREBAR; -alias tagNMREBAR* LPNMREBAR; - -enum : uint { RBNM_ID = 0x00000001 } -enum : uint { RBNM_STYLE = 0x00000002 } -enum : uint { RBNM_LPARAM = 0x00000004 } - -struct tagNMRBAUTOSIZE { - NMHDR hdr; - BOOL fChanged; - RECT rcTarget; - RECT rcActual; -} -alias tagNMRBAUTOSIZE NMRBAUTOSIZE; -alias tagNMRBAUTOSIZE* LPNMRBAUTOSIZE; - -// #if (_WIN32_IE >= 0x0500) -struct tagNMREBARCHEVRON { - NMHDR hdr; - UINT uBand; - UINT wID; - LPARAM lParam; - RECT rc; - LPARAM lParamNM; -} -alias tagNMREBARCHEVRON NMREBARCHEVRON; -alias tagNMREBARCHEVRON* LPNMREBARCHEVRON; - -// #endif - -// #if (_WIN32_WINNT >= 0x0501) -enum : uint { RBAB_AUTOSIZE = 0x0001 } -enum : uint { RBAB_ADDBAND = 0x0002 } - -struct tagNMREBARAUTOBREAK { - NMHDR hdr; - UINT uBand; - UINT wID; - LPARAM lParam; - UINT uMsg; - UINT fStyleCurrent; - BOOL fAutoBreak; -} -alias tagNMREBARAUTOBREAK NMREBARAUTOBREAK; -alias tagNMREBARAUTOBREAK* LPNMREBARAUTOBREAK; - -// #endif - -enum : uint { RBHT_NOWHERE = 0x0001 } -enum : uint { RBHT_CAPTION = 0x0002 } -enum : uint { RBHT_CLIENT = 0x0003 } -enum : uint { RBHT_GRABBER = 0x0004 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { RBHT_CHEVRON = 0x0008 } -// #endif - -struct _RB_HITTESTINFO { - POINT pt; - UINT flags; - int iBand; -} -alias _RB_HITTESTINFO RBHITTESTINFO; -alias _RB_HITTESTINFO* LPRBHITTESTINFO; - -// #endif // _WIN32_IE >= 0x0400 - -// #endif // NOREBAR - -// #endif // _WIN32_IE >= 0x0300 - -// #ifndef NOTOOLTIPS - -// #ifdef _WIN32 - -const wchar[] TOOLTIPS_CLASSW = "tooltips_class32"; -const char[] TOOLTIPS_CLASSA = "tooltips_class32"; - -// #ifdef UNICODE -alias TOOLTIPS_CLASSW TOOLTIPS_CLASS; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -// #if (_WIN32_IE >= 0x0300) -alias LPTTTOOLINFOA LPTOOLINFOA; -alias LPTTTOOLINFOW LPTOOLINFOW; -alias TTTOOLINFOA TOOLINFOA; -alias TTTOOLINFOW TOOLINFOW; -// #else -// #... -// #... -// #... -// #... -// #endif - -alias LPTTTOOLINFO LPTOOLINFO; -alias TTTOOLINFO TOOLINFO; - -// #define TTTOOLINFOA_V1_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lpszText) -// #define TTTOOLINFOW_V1_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lpszText) -// #define TTTOOLINFOA_V2_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lParam) -// #define TTTOOLINFOW_V2_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lParam) -// #define TTTOOLINFOA_V3_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lpReserved) -// #define TTTOOLINFOW_V3_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lpReserved) - -struct tagTOOLINFOA { - UINT cbSize; - UINT uFlags; - HWND hwnd; - UINT_PTR uId; - RECT rect; - HINSTANCE hinst; - LPSTR lpszText; -// #if (_WIN32_IE >= 0x0300) - LPARAM lParam; -// #endif -// #if (_WIN32_WINNT >= 0x0501) - void *lpReserved; -// #endif -} -alias tagTOOLINFOA TTTOOLINFOA; -alias tagTOOLINFOA* PTOOLINFOA; -alias tagTOOLINFOA* LPTTTOOLINFOA; - -struct tagTOOLINFOW { - UINT cbSize; - UINT uFlags; - HWND hwnd; - UINT_PTR uId; - RECT rect; - HINSTANCE hinst; - LPWSTR lpszText; -// #if (_WIN32_IE >= 0x0300) - LPARAM lParam; -// #endif -// #if (_WIN32_WINNT >= 0x0501) - void *lpReserved; -// #endif -} -alias tagTOOLINFOW TTTOOLINFOW; -alias tagTOOLINFOW* PTOOLINFOW; -alias tagTOOLINFOW* LPTTTOOLINFOW; - -// #ifdef UNICODE -alias TTTOOLINFOW TTTOOLINFO; -alias PTOOLINFOW PTOOLINFO; -alias LPTTTOOLINFOW LPTTTOOLINFO; -// #define TTTOOLINFO_V1_SIZE TTTOOLINFOW_V1_SIZE -// #else -// #... -// #... -// #... -// #... -// #endif - -enum : uint { TTS_ALWAYSTIP = 0x01 } -enum : uint { TTS_NOPREFIX = 0x02 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { TTS_NOANIMATE = 0x10 } -enum : uint { TTS_NOFADE = 0x20 } -enum : uint { TTS_BALLOON = 0x40 } -enum : uint { TTS_CLOSE = 0x80 } -// #endif - -enum : uint { TTF_IDISHWND = 0x0001 } - -enum : uint { TTF_CENTERTIP = 0x0002 } -enum : uint { TTF_RTLREADING = 0x0004 } -enum : uint { TTF_SUBCLASS = 0x0010 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TTF_TRACK = 0x0020 } -enum : uint { TTF_ABSOLUTE = 0x0080 } -enum : uint { TTF_TRANSPARENT = 0x0100 } -// #if (_WIN32_IE >= 0x0501) -enum : uint { TTF_PARSELINKS = 0x1000 } -// #endif // _WIN32_IE >= 0x0501 -enum : uint { TTF_DI_SETITEM = 0x8000 } -// #endif // _WIN32_IE >= 0x0300 - -enum : uint { TTDT_AUTOMATIC = 0 } -enum : uint { TTDT_RESHOW = 1 } -enum : uint { TTDT_AUTOPOP = 2 } -enum : uint { TTDT_INITIAL = 3 } - -enum : uint { TTI_NONE = 0 } -enum : uint { TTI_INFO = 1 } -enum : uint { TTI_WARNING = 2 } -enum : uint { TTI_ERROR = 3 } - -enum : uint { TTM_ACTIVATE = WM_USER + 1 } -enum : uint { TTM_SETDELAYTIME = WM_USER + 3 } -enum : uint { TTM_ADDTOOLA = WM_USER + 4 } -enum : uint { TTM_ADDTOOLW = WM_USER + 50 } -enum : uint { TTM_DELTOOLA = WM_USER + 5 } -enum : uint { TTM_DELTOOLW = WM_USER + 51 } -enum : uint { TTM_NEWTOOLRECTA = WM_USER + 6 } -enum : uint { TTM_NEWTOOLRECTW = WM_USER + 52 } -enum : uint { TTM_RELAYEVENT = WM_USER + 7 } - -enum : uint { TTM_GETTOOLINFOA = WM_USER + 8 } -enum : uint { TTM_GETTOOLINFOW = WM_USER + 53 } - -enum : uint { TTM_SETTOOLINFOA = WM_USER + 9 } -enum : uint { TTM_SETTOOLINFOW = WM_USER + 54 } - -enum : uint { TTM_HITTESTA = WM_USER +10 } -enum : uint { TTM_HITTESTW = WM_USER +55 } -enum : uint { TTM_GETTEXTA = WM_USER +11 } -enum : uint { TTM_GETTEXTW = WM_USER +56 } -enum : uint { TTM_UPDATETIPTEXTA = WM_USER +12 } -enum : uint { TTM_UPDATETIPTEXTW = WM_USER +57 } -enum : uint { TTM_GETTOOLCOUNT = WM_USER +13 } -enum : uint { TTM_ENUMTOOLSA = WM_USER +14 } -enum : uint { TTM_ENUMTOOLSW = WM_USER +58 } -enum : uint { TTM_GETCURRENTTOOLA = WM_USER + 15 } -enum : uint { TTM_GETCURRENTTOOLW = WM_USER + 59 } -enum : uint { TTM_WINDOWFROMPOINT = WM_USER + 16 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TTM_TRACKACTIVATE = WM_USER + 17 } -enum : uint { TTM_TRACKPOSITION = WM_USER + 18 } -enum : uint { TTM_SETTIPBKCOLOR = WM_USER + 19 } -enum : uint { TTM_SETTIPTEXTCOLOR = WM_USER + 20 } -enum : uint { TTM_GETDELAYTIME = WM_USER + 21 } -enum : uint { TTM_GETTIPBKCOLOR = WM_USER + 22 } -enum : uint { TTM_GETTIPTEXTCOLOR = WM_USER + 23 } -enum : uint { TTM_SETMAXTIPWIDTH = WM_USER + 24 } -enum : uint { TTM_GETMAXTIPWIDTH = WM_USER + 25 } -enum : uint { TTM_SETMARGIN = WM_USER + 26 } -enum : uint { TTM_GETMARGIN = WM_USER + 27 } -enum : uint { TTM_POP = WM_USER + 28 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { TTM_UPDATE = WM_USER + 29 } -// #endif -// #if (_WIN32_IE >= 0x0500) -enum : uint { TTM_GETBUBBLESIZE = WM_USER + 30 } -enum : uint { TTM_ADJUSTRECT = WM_USER + 31 } -enum : uint { TTM_SETTITLEA = WM_USER + 32 } -enum : uint { TTM_SETTITLEW = WM_USER + 33 } -// #endif - -// #if (_WIN32_WINNT >= 0x0501) -enum : uint { TTM_POPUP = WM_USER + 34 } -enum : uint { TTM_GETTITLE = WM_USER + 35 } - -struct _TTGETTITLE { - DWORD dwSize; - UINT uTitleBitmap; - UINT cch; - WCHAR * pszTitle; -} -alias _TTGETTITLE TTGETTITLE; -alias _TTGETTITLE* PTTGETTITLE; - -// #endif - -// #ifdef UNICODE -alias TTM_ADDTOOLW TTM_ADDTOOL; -alias TTM_DELTOOLW TTM_DELTOOL; -alias TTM_NEWTOOLRECTW TTM_NEWTOOLRECT; -alias TTM_GETTOOLINFOW TTM_GETTOOLINFO; -alias TTM_SETTOOLINFOW TTM_SETTOOLINFO; -alias TTM_HITTESTW TTM_HITTEST; -alias TTM_GETTEXTW TTM_GETTEXT; -alias TTM_UPDATETIPTEXTW TTM_UPDATETIPTEXT; -alias TTM_ENUMTOOLSW TTM_ENUMTOOLS; -alias TTM_GETCURRENTTOOLW TTM_GETCURRENTTOOL; -// #if (_WIN32_IE >= 0x0500) -alias TTM_SETTITLEW TTM_SETTITLE; -// #endif -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #if (_WIN32_IE >= 0x0500) -// #... -// #endif -// #endif - -// #if (_WIN32_WINNT >= 0x501) -alias CCM_SETWINDOWTHEME TTM_SETWINDOWTHEME; -// #endif - -// #if (_WIN32_IE >= 0x0300) -alias LPTTHITTESTINFOW LPHITTESTINFOW; -alias LPTTHITTESTINFOA LPHITTESTINFOA; -// #else -// #... -// #... -// #endif - -alias LPTTHITTESTINFO LPHITTESTINFO; - -struct _TT_HITTESTINFOA { - HWND hwnd; - POINT pt; - TTTOOLINFOA ti; -} -alias _TT_HITTESTINFOA TTHITTESTINFOA; -alias _TT_HITTESTINFOA* LPTTHITTESTINFOA; - -struct _TT_HITTESTINFOW { - HWND hwnd; - POINT pt; - TTTOOLINFOW ti; -} -alias _TT_HITTESTINFOW TTHITTESTINFOW; -alias _TT_HITTESTINFOW* LPTTHITTESTINFOW; - -// #ifdef UNICODE -alias TTHITTESTINFOW TTHITTESTINFO; -alias LPTTHITTESTINFOW LPTTHITTESTINFO; -// #else -// #... -// #... -// #endif - -enum : uint { TTN_GETDISPINFOA = TTN_FIRST - 0 } -enum : uint { TTN_GETDISPINFOW = TTN_FIRST - 10 } -enum : uint { TTN_SHOW = TTN_FIRST - 1 } -enum : uint { TTN_POP = TTN_FIRST - 2 } -enum : uint { TTN_LINKCLICK = TTN_FIRST - 3 } - -// #ifdef UNICODE -alias TTN_GETDISPINFOW TTN_GETDISPINFO; -// #else -// #... -// #endif - -alias TTN_GETDISPINFO TTN_NEEDTEXT; -alias TTN_GETDISPINFOA TTN_NEEDTEXTA; -alias TTN_GETDISPINFOW TTN_NEEDTEXTW; - -// #if (_WIN32_IE >= 0x0300) -alias NMTTDISPINFOW TOOLTIPTEXTW; -alias NMTTDISPINFOA TOOLTIPTEXTA; -alias LPNMTTDISPINFOA LPTOOLTIPTEXTA; -alias LPNMTTDISPINFOW LPTOOLTIPTEXTW; -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -alias NMTTDISPINFO TOOLTIPTEXT; -alias LPNMTTDISPINFO LPTOOLTIPTEXT; - -// #define NMTTDISPINFOA_V1_SIZE CCSIZEOF_STRUCT(NMTTDISPINFOA, uFlags) -// #define NMTTDISPINFOW_V1_SIZE CCSIZEOF_STRUCT(NMTTDISPINFOW, uFlags) - -struct tagNMTTDISPINFOA { - NMHDR hdr; - LPSTR lpszText; - char szText[80]; - HINSTANCE hinst; - UINT uFlags; -// #if (_WIN32_IE >= 0x0300) - LPARAM lParam; -// #endif -} -alias tagNMTTDISPINFOA NMTTDISPINFOA; -alias tagNMTTDISPINFOA* LPNMTTDISPINFOA; - -struct tagNMTTDISPINFOW { - NMHDR hdr; - LPWSTR lpszText; - WCHAR szText[80]; - HINSTANCE hinst; - UINT uFlags; -// #if (_WIN32_IE >= 0x0300) - LPARAM lParam; -// #endif -} -alias tagNMTTDISPINFOW NMTTDISPINFOW; -alias tagNMTTDISPINFOW* LPNMTTDISPINFOW; - -// #ifdef UNICODE -alias NMTTDISPINFOW NMTTDISPINFO; -alias LPNMTTDISPINFOW LPNMTTDISPINFO; -// #define NMTTDISPINFO_V1_SIZE NMTTDISPINFOW_V1_SIZE -// #else -// #... -// #... -// #... -// #endif - -// #endif // NOTOOLTIPS - -// #ifndef NOSTATUSBAR - -enum : uint { SBARS_SIZEGRIP = 0x0100 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { SBARS_TOOLTIPS = 0x0800 } -// #endif - -// #if (_WIN32_IE >= 0x0400) - -enum : uint { SBT_TOOLTIPS = 0x0800 } -// #endif - -extern(Windows) export void DrawStatusTextA(HDC hDC, LPRECT lprc, LPCSTR pszText, UINT uFlags); -extern(Windows) export void DrawStatusTextW(HDC hDC, LPRECT lprc, LPCWSTR pszText, UINT uFlags); - -extern(Windows) export HWND CreateStatusWindowA(LONG style, LPCSTR lpszText, HWND hwndParent, UINT wID); -extern(Windows) export HWND CreateStatusWindowW(LONG style, LPCWSTR lpszText, HWND hwndParent, UINT wID); - -// #ifdef UNICODE -alias CreateStatusWindowW CreateStatusWindow; -alias DrawStatusTextW DrawStatusText; -// #else -// #... -// #... -// #endif - -// #ifdef _WIN32 -const wchar[] STATUSCLASSNAMEW = "msctls_statusbar32"; -const char[] STATUSCLASSNAMEA = "msctls_statusbar32"; - -// #ifdef UNICODE -alias STATUSCLASSNAMEW STATUSCLASSNAME; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -enum : uint { SB_SETTEXTA = WM_USER+1 } -enum : uint { SB_SETTEXTW = WM_USER+11 } -enum : uint { SB_GETTEXTA = WM_USER+2 } -enum : uint { SB_GETTEXTW = WM_USER+13 } -enum : uint { SB_GETTEXTLENGTHA = WM_USER+3 } -enum : uint { SB_GETTEXTLENGTHW = WM_USER+12 } - -// #ifdef UNICODE -alias SB_GETTEXTW SB_GETTEXT; -alias SB_SETTEXTW SB_SETTEXT; -alias SB_GETTEXTLENGTHW SB_GETTEXTLENGTH; -// #if (_WIN32_IE >= 0x0400) -alias SB_SETTIPTEXTW SB_SETTIPTEXT; -alias SB_GETTIPTEXTW SB_GETTIPTEXT; -// #endif -// #else -// #... -// #... -// #... -// #if (_WIN32_IE >= 0x0400) -// #... -// #... -// #endif -// #endif - -enum : uint { SB_SETPARTS = WM_USER+4 } -enum : uint { SB_GETPARTS = WM_USER+6 } -enum : uint { SB_GETBORDERS = WM_USER+7 } -enum : uint { SB_SETMINHEIGHT = WM_USER+8 } -enum : uint { SB_SIMPLE = WM_USER+9 } -enum : uint { SB_GETRECT = WM_USER+10 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { SB_ISSIMPLE = WM_USER+14 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { SB_SETICON = WM_USER+15 } -// #define SB_SETTIPTEXTA (WM_USER+16) -// #define SB_SETTIPTEXTW (WM_USER+17) -// #define SB_GETTIPTEXTA (WM_USER+18) -// #define SB_GETTIPTEXTW (WM_USER+19) -enum : uint { SB_GETICON = WM_USER+20 } -alias CCM_SETUNICODEFORMAT SB_SETUNICODEFORMAT; -alias CCM_GETUNICODEFORMAT SB_GETUNICODEFORMAT; -// #endif - -enum : uint { SBT_OWNERDRAW = 0x1000 } -enum : uint { SBT_NOBORDERS = 0x0100 } -enum : uint { SBT_POPOUT = 0x0200 } -enum : uint { SBT_RTLREADING = 0x0400 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { SBT_NOTABPARSING = 0x0800 } -// #endif - -alias CCM_SETBKCOLOR SB_SETBKCOLOR; - -// #if (_WIN32_IE >= 0x0400) -enum : uint { SBN_SIMPLEMODECHANGE = SBN_FIRST - 0 } -// #endif - -// #if (_WIN32_IE >= 0x0500) - -enum : uint { SB_SIMPLEID = 0x00ff } -// #endif - -// #endif // NOSTATUSBAR - -// #ifndef NOMENUHELP - -extern(Windows) export void MenuHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, HMENU hMainMenu, HINSTANCE hInst, HWND hwndStatus, UINT *lpwIDs); -extern(Windows) export BOOL ShowHideMenuCtl(HWND hWnd, UINT_PTR uFlags, LPINT lpInfo); -extern(Windows) export void GetEffectiveClientRect(HWND hWnd, LPRECT lprc, LPINT lpInfo); - -alias SC_SIZE MINSYSCOMMAND; - -// #endif - -// #ifndef NOTRACKBAR - -// #ifdef _WIN32 - -const char[] TRACKBAR_CLASSA = "msctls_trackbar32"; -const wchar[] TRACKBAR_CLASSW = "msctls_trackbar32"; - -// #ifdef UNICODE -alias TRACKBAR_CLASSW TRACKBAR_CLASS; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -enum : uint { TBS_AUTOTICKS = 0x0001 } -enum : uint { TBS_VERT = 0x0002 } -enum : uint { TBS_HORZ = 0x0000 } -enum : uint { TBS_TOP = 0x0004 } -enum : uint { TBS_BOTTOM = 0x0000 } -enum : uint { TBS_LEFT = 0x0004 } -enum : uint { TBS_RIGHT = 0x0000 } -enum : uint { TBS_BOTH = 0x0008 } -enum : uint { TBS_NOTICKS = 0x0010 } -enum : uint { TBS_ENABLESELRANGE = 0x0020 } -enum : uint { TBS_FIXEDLENGTH = 0x0040 } -enum : uint { TBS_NOTHUMB = 0x0080 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TBS_TOOLTIPS = 0x0100 } -// #endif -// #if (_WIN32_IE >= 0x0500) -enum : uint { TBS_REVERSED = 0x0200 } -// #endif - -// #if (_WIN32_IE >= 0x0501) -enum : uint { TBS_DOWNISLEFT = 0x0400 } -// #endif - -enum : uint { TBM_GETPOS = WM_USER } -enum : uint { TBM_GETRANGEMIN = WM_USER+1 } -enum : uint { TBM_GETRANGEMAX = WM_USER+2 } -enum : uint { TBM_GETTIC = WM_USER+3 } -enum : uint { TBM_SETTIC = WM_USER+4 } -enum : uint { TBM_SETPOS = WM_USER+5 } -enum : uint { TBM_SETRANGE = WM_USER+6 } -enum : uint { TBM_SETRANGEMIN = WM_USER+7 } -enum : uint { TBM_SETRANGEMAX = WM_USER+8 } -enum : uint { TBM_CLEARTICS = WM_USER+9 } -enum : uint { TBM_SETSEL = WM_USER+10 } -enum : uint { TBM_SETSELSTART = WM_USER+11 } -enum : uint { TBM_SETSELEND = WM_USER+12 } -enum : uint { TBM_GETPTICS = WM_USER+14 } -enum : uint { TBM_GETTICPOS = WM_USER+15 } -enum : uint { TBM_GETNUMTICS = WM_USER+16 } -enum : uint { TBM_GETSELSTART = WM_USER+17 } -enum : uint { TBM_GETSELEND = WM_USER+18 } -enum : uint { TBM_CLEARSEL = WM_USER+19 } -enum : uint { TBM_SETTICFREQ = WM_USER+20 } -enum : uint { TBM_SETPAGESIZE = WM_USER+21 } -enum : uint { TBM_GETPAGESIZE = WM_USER+22 } -enum : uint { TBM_SETLINESIZE = WM_USER+23 } -enum : uint { TBM_GETLINESIZE = WM_USER+24 } -enum : uint { TBM_GETTHUMBRECT = WM_USER+25 } -enum : uint { TBM_GETCHANNELRECT = WM_USER+26 } -enum : uint { TBM_SETTHUMBLENGTH = WM_USER+27 } -enum : uint { TBM_GETTHUMBLENGTH = WM_USER+28 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TBM_SETTOOLTIPS = WM_USER+29 } -enum : uint { TBM_GETTOOLTIPS = WM_USER+30 } -enum : uint { TBM_SETTIPSIDE = WM_USER+31 } - -enum : uint { TBTS_TOP = 0 } -enum : uint { TBTS_LEFT = 1 } -enum : uint { TBTS_BOTTOM = 2 } -enum : uint { TBTS_RIGHT = 3 } - -enum : uint { TBM_SETBUDDY = WM_USER+32 } -enum : uint { TBM_GETBUDDY = WM_USER+33 } -// #endif -// #if (_WIN32_IE >= 0x0400) -alias CCM_SETUNICODEFORMAT TBM_SETUNICODEFORMAT; -alias CCM_GETUNICODEFORMAT TBM_GETUNICODEFORMAT; -// #endif - -enum : uint { TB_LINEUP = 0 } -enum : uint { TB_LINEDOWN = 1 } -enum : uint { TB_PAGEUP = 2 } -enum : uint { TB_PAGEDOWN = 3 } -enum : uint { TB_THUMBPOSITION = 4 } -enum : uint { TB_THUMBTRACK = 5 } -enum : uint { TB_TOP = 6 } -enum : uint { TB_BOTTOM = 7 } -enum : uint { TB_ENDTRACK = 8 } - -// #if (_WIN32_IE >= 0x0300) - -enum : uint { TBCD_TICS = 0x0001 } -enum : uint { TBCD_THUMB = 0x0002 } -enum : uint { TBCD_CHANNEL = 0x0003 } -// #endif - -// #endif // trackbar - -// #ifndef NODRAGLIST - -struct tagDRAGLISTINFO { - UINT uNotification; - HWND hWnd; - POINT ptCursor; -} -alias tagDRAGLISTINFO DRAGLISTINFO; -alias tagDRAGLISTINFO* LPDRAGLISTINFO; - -enum : uint { DL_BEGINDRAG = WM_USER+133 } -enum : uint { DL_DRAGGING = WM_USER+134 } -enum : uint { DL_DROPPED = WM_USER+135 } -enum : uint { DL_CANCELDRAG = WM_USER+136 } - -enum : uint { DL_CURSORSET = 0 } -enum : uint { DL_STOPCURSOR = 1 } -enum : uint { DL_COPYCURSOR = 2 } -enum : uint { DL_MOVECURSOR = 3 } - -const TCHAR[] DRAGLISTMSGSTRING = "commctrl_DragListMsg"; - -extern(Windows) export BOOL MakeDragList(HWND hLB); -extern(Windows) export void DrawInsert(HWND handParent, HWND hLB, int nItem); - -extern(Windows) export int LBItemFromPt(HWND hLB, POINT pt, BOOL bAutoScroll); - -// #endif - -// #ifndef NOUPDOWN - -// #ifdef _WIN32 - -const char[] UPDOWN_CLASSA = "msctls_updown32"; -const wchar[] UPDOWN_CLASSW = "msctls_updown32"; - -// #ifdef UNICODE -alias UPDOWN_CLASSW UPDOWN_CLASS; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -struct _UDACCEL { - UINT nSec; - UINT nInc; -} -alias _UDACCEL UDACCEL; -alias _UDACCEL* LPUDACCEL; - -enum : uint { UD_MAXVAL = 0x7fff } -enum : uint { UD_MINVAL = -UD_MAXVAL } - -enum : uint { UDS_WRAP = 0x0001 } -enum : uint { UDS_SETBUDDYINT = 0x0002 } -enum : uint { UDS_ALIGNRIGHT = 0x0004 } -enum : uint { UDS_ALIGNLEFT = 0x0008 } -enum : uint { UDS_AUTOBUDDY = 0x0010 } -enum : uint { UDS_ARROWKEYS = 0x0020 } -enum : uint { UDS_HORZ = 0x0040 } -enum : uint { UDS_NOTHOUSANDS = 0x0080 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { UDS_HOTTRACK = 0x0100 } -// #endif - -enum : uint { UDM_SETRANGE = WM_USER+101 } -enum : uint { UDM_GETRANGE = WM_USER+102 } -enum : uint { UDM_SETPOS = WM_USER+103 } -enum : uint { UDM_GETPOS = WM_USER+104 } -enum : uint { UDM_SETBUDDY = WM_USER+105 } -enum : uint { UDM_GETBUDDY = WM_USER+106 } -enum : uint { UDM_SETACCEL = WM_USER+107 } -enum : uint { UDM_GETACCEL = WM_USER+108 } -enum : uint { UDM_SETBASE = WM_USER+109 } -enum : uint { UDM_GETBASE = WM_USER+110 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { UDM_SETRANGE32 = WM_USER+111 } -enum : uint { UDM_GETRANGE32 = WM_USER+112 } -alias CCM_SETUNICODEFORMAT UDM_SETUNICODEFORMAT; -alias CCM_GETUNICODEFORMAT UDM_GETUNICODEFORMAT; -// #endif -// #if (_WIN32_IE >= 0x0500) -enum : uint { UDM_SETPOS32 = WM_USER+113 } -enum : uint { UDM_GETPOS32 = WM_USER+114 } -// #endif - -extern(Windows) export HWND CreateUpDownControl(DWORD dwStyle, int x, int y, int cx, int cy, - HWND hParent, int nID, HINSTANCE hInst, - HWND hBuddy, - int nUpper, int nLower, int nPos); - -// #if (_WIN32_IE >= 0x0300) -alias NMUPDOWN NM_UPDOWN; -alias LPNMUPDOWN LPNM_UPDOWN; -// #else -// #... -// #... -// #endif - -struct _NM_UPDOWN { - NMHDR hdr; - int iPos; - int iDelta; -} -alias _NM_UPDOWN NMUPDOWN; -alias _NM_UPDOWN* LPNMUPDOWN; - -enum : uint { UDN_DELTAPOS = UDN_FIRST - 1 } - -// #endif // NOUPDOWN - -// #ifndef NOPROGRESS - -// #ifdef _WIN32 - -const char[] PROGRESS_CLASSA = "msctls_progress32"; -const wchar[] PROGRESS_CLASSW = "msctls_progress32"; - -// #ifdef UNICODE -alias PROGRESS_CLASSW PROGRESS_CLASS; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -// #if (_WIN32_IE >= 0x0300) -enum : uint { PBS_SMOOTH = 0x01 } -enum : uint { PBS_VERTICAL = 0x04 } -// #endif - -enum : uint { PBM_SETRANGE = WM_USER+1 } -enum : uint { PBM_SETPOS = WM_USER+2 } -enum : uint { PBM_DELTAPOS = WM_USER+3 } -enum : uint { PBM_SETSTEP = WM_USER+4 } -enum : uint { PBM_STEPIT = WM_USER+5 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { PBM_SETRANGE32 = WM_USER+6 } -struct _7 { - int iLow; - int iHigh; -} -alias _7 PBRANGE; -alias _7* PPBRANGE; - -enum : uint { PBM_GETRANGE = WM_USER+7 } -enum : uint { PBM_GETPOS = WM_USER+8 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { PBM_SETBARCOLOR = WM_USER+9 } -// #endif // _WIN32_IE >= 0x0400 -alias CCM_SETBKCOLOR PBM_SETBKCOLOR; -// #endif // _WIN32_IE >= 0x0300 - -// #endif // NOPROGRESS - -// #ifndef NOHOTKEY - -enum : uint { HOTKEYF_SHIFT = 0x01 } -enum : uint { HOTKEYF_CONTROL = 0x02 } -enum : uint { HOTKEYF_ALT = 0x04 } -// #ifdef _MAC -// #... -// #else -enum : uint { HOTKEYF_EXT = 0x08 } -// #endif - -enum : uint { HKCOMB_NONE = 0x0001 } -enum : uint { HKCOMB_S = 0x0002 } -enum : uint { HKCOMB_C = 0x0004 } -enum : uint { HKCOMB_A = 0x0008 } -enum : uint { HKCOMB_SC = 0x0010 } -enum : uint { HKCOMB_SA = 0x0020 } -enum : uint { HKCOMB_CA = 0x0040 } -enum : uint { HKCOMB_SCA = 0x0080 } - -enum : uint { HKM_SETHOTKEY = WM_USER+1 } -enum : uint { HKM_GETHOTKEY = WM_USER+2 } -enum : uint { HKM_SETRULES = WM_USER+3 } - -// #ifdef _WIN32 - -const char[] HOTKEY_CLASSA = "msctls_hotkey32"; -const wchar[] HOTKEY_CLASSW = "msctls_hotkey32"; - -// #ifdef UNICODE -alias HOTKEY_CLASSW HOTKEY_CLASS; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -// #endif // NOHOTKEY - -enum : uint { CCS_TOP = 0x00000001 } -enum : uint { CCS_NOMOVEY = 0x00000002 } -enum : uint { CCS_BOTTOM = 0x00000003 } -enum : uint { CCS_NORESIZE = 0x00000004 } -enum : uint { CCS_NOPARENTALIGN = 0x00000008 } -enum : uint { CCS_ADJUSTABLE = 0x00000020 } -enum : uint { CCS_NODIVIDER = 0x00000040 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { CCS_VERT = 0x00000080 } -enum : uint { CCS_LEFT = CCS_VERT | CCS_TOP } -enum : uint { CCS_RIGHT = CCS_VERT | CCS_BOTTOM } -enum : uint { CCS_NOMOVEX = CCS_VERT | CCS_NOMOVEY } -// #endif - -// #ifndef NOLISTVIEW - -// #ifdef _WIN32 - -const char[] WC_LISTVIEWA = "SysListView32"; -const wchar[] WC_LISTVIEWW = "SysListView32"; - -// #ifdef UNICODE -alias WC_LISTVIEWW WC_LISTVIEW; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -enum : uint { LVS_ICON = 0x0000 } -enum : uint { LVS_REPORT = 0x0001 } -enum : uint { LVS_SMALLICON = 0x0002 } -enum : uint { LVS_LIST = 0x0003 } -enum : uint { LVS_TYPEMASK = 0x0003 } -enum : uint { LVS_SINGLESEL = 0x0004 } -enum : uint { LVS_SHOWSELALWAYS = 0x0008 } -enum : uint { LVS_SORTASCENDING = 0x0010 } -enum : uint { LVS_SORTDESCENDING = 0x0020 } -enum : uint { LVS_SHAREIMAGELISTS = 0x0040 } -enum : uint { LVS_NOLABELWRAP = 0x0080 } -enum : uint { LVS_AUTOARRANGE = 0x0100 } -enum : uint { LVS_EDITLABELS = 0x0200 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { LVS_OWNERDATA = 0x1000 } -// #endif -enum : uint { LVS_NOSCROLL = 0x2000 } - -enum : uint { LVS_TYPESTYLEMASK = 0xfc00 } - -enum : uint { LVS_ALIGNTOP = 0x0000 } -enum : uint { LVS_ALIGNLEFT = 0x0800 } -enum : uint { LVS_ALIGNMASK = 0x0c00 } - -enum : uint { LVS_OWNERDRAWFIXED = 0x0400 } -enum : uint { LVS_NOCOLUMNHEADER = 0x4000 } -enum : uint { LVS_NOSORTHEADER = 0x8000 } - -// #if (_WIN32_IE >= 0x0400) -alias CCM_SETUNICODEFORMAT LVM_SETUNICODEFORMAT; -// #define ListView_SetUnicodeFormat(hwnd, fUnicode) (BOOL)SNDMSG((hwnd), LVM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) - -alias CCM_GETUNICODEFORMAT LVM_GETUNICODEFORMAT; -// #define ListView_GetUnicodeFormat(hwnd) (BOOL)SNDMSG((hwnd), LVM_GETUNICODEFORMAT, 0, 0) -// #endif - -enum : uint { LVM_GETBKCOLOR = LVM_FIRST + 0 } -// #define ListView_GetBkColor(hwnd) (COLORREF)SNDMSG((hwnd), LVM_GETBKCOLOR, 0, 0L) - -enum : uint { LVM_SETBKCOLOR = LVM_FIRST + 1 } -// #define ListView_SetBkColor(hwnd, clrBk) (BOOL)SNDMSG((hwnd), LVM_SETBKCOLOR, 0, (LPARAM)(COLORREF)(clrBk)) - -enum : uint { LVM_GETIMAGELIST = LVM_FIRST + 2 } -// #define ListView_GetImageList(hwnd, iImageList) (HIMAGELIST)SNDMSG((hwnd), LVM_GETIMAGELIST, (WPARAM)(INT)(iImageList), 0L) - -enum : uint { LVSIL_NORMAL = 0 } -enum : uint { LVSIL_SMALL = 1 } -enum : uint { LVSIL_STATE = 2 } - -enum : uint { LVM_SETIMAGELIST = LVM_FIRST + 3 } -// #define ListView_SetImageList(hwnd, himl, iImageList) (HIMAGELIST)SNDMSG((hwnd), LVM_SETIMAGELIST, (WPARAM)(iImageList), (LPARAM)(HIMAGELIST)(himl)) - -enum : uint { LVM_GETITEMCOUNT = LVM_FIRST + 4 } -// #define ListView_GetItemCount(hwnd) (int)SNDMSG((hwnd), LVM_GETITEMCOUNT, 0, 0L) - -enum : uint { LVIF_TEXT = 0x0001 } -enum : uint { LVIF_IMAGE = 0x0002 } -enum : uint { LVIF_PARAM = 0x0004 } -enum : uint { LVIF_STATE = 0x0008 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { LVIF_INDENT = 0x0010 } -enum : uint { LVIF_NORECOMPUTE = 0x0800 } -// #endif -// #if (_WIN32_WINNT >= 0x501) -enum : uint { LVIF_GROUPID = 0x0100 } -enum : uint { LVIF_COLUMNS = 0x0200 } -// #endif - -enum : uint { LVIS_FOCUSED = 0x0001 } -enum : uint { LVIS_SELECTED = 0x0002 } -enum : uint { LVIS_CUT = 0x0004 } -enum : uint { LVIS_DROPHILITED = 0x0008 } -enum : uint { LVIS_GLOW = 0x0010 } -enum : uint { LVIS_ACTIVATING = 0x0020 } - -enum : uint { LVIS_OVERLAYMASK = 0x0F00 } -enum : uint { LVIS_STATEIMAGEMASK = 0xF000 } - -uint INDEXTOSTATEIMAGEMASK(uint i){ return i << 12; } - -// #if (_WIN32_IE >= 0x0300) -enum { I_INDENTCALLBACK = -1 } -alias LVITEMA LV_ITEMA; -alias LVITEMW LV_ITEMW; -// #else -// #... -// #... -// #... -// #... -// #endif - -// #if (_WIN32_WINNT >= 0x501) -enum { I_GROUPIDCALLBACK = -1 } -enum { I_GROUPIDNONE = -2 } -// #endif -alias LVITEM LV_ITEM; - -// #define LVITEMA_V1_SIZE CCSIZEOF_STRUCT(LVITEMA, lParam) -// #define LVITEMW_V1_SIZE CCSIZEOF_STRUCT(LVITEMW, lParam) - -struct tagLVITEMA { - UINT mask; - int iItem; - int iSubItem; - UINT state; - UINT stateMask; - LPSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -// #if (_WIN32_IE >= 0x0300) - int iIndent; -// #endif -// #if (_WIN32_WINNT >= 0x501) - int iGroupId; - UINT cColumns; - PUINT puColumns; -// #endif -} -alias tagLVITEMA LVITEMA; -alias tagLVITEMA* LPLVITEMA; - -struct tagLVITEMW { - UINT mask; - int iItem; - int iSubItem; - UINT state; - UINT stateMask; - LPWSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -// #if (_WIN32_IE >= 0x0300) - int iIndent; -// #endif -// #if (_WIN32_WINNT >= 0x501) - int iGroupId; - UINT cColumns; - PUINT puColumns; -// #endif -} -alias tagLVITEMW LVITEMW; -alias tagLVITEMW* LPLVITEMW; - -// #ifdef UNICODE -alias LVITEMW LVITEM; -alias LPLVITEMW LPLVITEM; -// #define LVITEM_V1_SIZE LVITEMW_V1_SIZE -// #else -// #... -// #... -// #... -// #endif - -const LPWSTR LPSTR_TEXTCALLBACKW = cast(LPWSTR)-1; -const LPSTR LPSTR_TEXTCALLBACKA = cast(LPSTR)-1; -// #ifdef UNICODE -alias LPSTR_TEXTCALLBACKW LPSTR_TEXTCALLBACK; -// #else -// #... -// #endif - -enum { I_IMAGECALLBACK = -1 } -// #if (_WIN32_IE >= 0x0501) -enum { I_IMAGENONE = -2 } -// #endif // 0x0501 - -// #if (_WIN32_WINNT >= 0x501) - -enum : uint { I_COLUMNSCALLBACK = cast(UINT)-1 } -// #endif - -enum : uint { LVM_GETITEMA = LVM_FIRST + 5 } -enum : uint { LVM_GETITEMW = LVM_FIRST + 75 } -// #ifdef UNICODE -alias LVM_GETITEMW LVM_GETITEM; -// #else -// #... -// #endif - -// #define ListView_GetItem(hwnd, pitem) (BOOL)SNDMSG((hwnd), LVM_GETITEM, 0, (LPARAM)(LV_ITEM *)(pitem)) - -enum : uint { LVM_SETITEMA = LVM_FIRST + 6 } -enum : uint { LVM_SETITEMW = LVM_FIRST + 76 } -// #ifdef UNICODE -alias LVM_SETITEMW LVM_SETITEM; -// #else -// #... -// #endif - -// #define ListView_SetItem(hwnd, pitem) (BOOL)SNDMSG((hwnd), LVM_SETITEM, 0, (LPARAM)(const LV_ITEM *)(pitem)) - -enum : uint { LVM_INSERTITEMA = LVM_FIRST + 7 } -enum : uint { LVM_INSERTITEMW = LVM_FIRST + 77 } -// #ifdef UNICODE -alias LVM_INSERTITEMW LVM_INSERTITEM; -// #else -// #... -// #endif -// #define ListView_InsertItem(hwnd, pitem) (int)SNDMSG((hwnd), LVM_INSERTITEM, 0, (LPARAM)(const LV_ITEM *)(pitem)) - -enum : uint { LVM_DELETEITEM = LVM_FIRST + 8 } -// #define ListView_DeleteItem(hwnd, i) (BOOL)SNDMSG((hwnd), LVM_DELETEITEM, (WPARAM)(int)(i), 0L) - -enum : uint { LVM_DELETEALLITEMS = LVM_FIRST + 9 } -// #define ListView_DeleteAllItems(hwnd) (BOOL)SNDMSG((hwnd), LVM_DELETEALLITEMS, 0, 0L) - -enum : uint { LVM_GETCALLBACKMASK = LVM_FIRST + 10 } -// #define ListView_GetCallbackMask(hwnd) (BOOL)SNDMSG((hwnd), LVM_GETCALLBACKMASK, 0, 0) - -enum : uint { LVM_SETCALLBACKMASK = LVM_FIRST + 11 } -// #define ListView_SetCallbackMask(hwnd, mask) (BOOL)SNDMSG((hwnd), LVM_SETCALLBACKMASK, (WPARAM)(UINT)(mask), 0) - -enum : uint { LVNI_ALL = 0x0000 } -enum : uint { LVNI_FOCUSED = 0x0001 } -enum : uint { LVNI_SELECTED = 0x0002 } -enum : uint { LVNI_CUT = 0x0004 } -enum : uint { LVNI_DROPHILITED = 0x0008 } - -enum : uint { LVNI_ABOVE = 0x0100 } -enum : uint { LVNI_BELOW = 0x0200 } -enum : uint { LVNI_TOLEFT = 0x0400 } -enum : uint { LVNI_TORIGHT = 0x0800 } - -enum : uint { LVM_GETNEXTITEM = LVM_FIRST + 12 } -// #define ListView_GetNextItem(hwnd, i, flags) (int)SNDMSG((hwnd), LVM_GETNEXTITEM, (WPARAM)(int)(i), MAKELPARAM((flags), 0)) - -enum : uint { LVFI_PARAM = 0x0001 } -enum : uint { LVFI_STRING = 0x0002 } -enum : uint { LVFI_PARTIAL = 0x0008 } -enum : uint { LVFI_WRAP = 0x0020 } -enum : uint { LVFI_NEARESTXY = 0x0040 } - -// #if (_WIN32_IE >= 0x0300) -alias LVFINDINFOA LV_FINDINFOA; -alias LVFINDINFOW LV_FINDINFOW; -// #else -// #... -// #... -// #... -// #... -// #endif - -alias LVFINDINFO LV_FINDINFO; - -struct tagLVFINDINFOA { - UINT flags; - LPCSTR psz; - LPARAM lParam; - POINT pt; - UINT vkDirection; -} -alias tagLVFINDINFOA LVFINDINFOA; -alias tagLVFINDINFOA* LPFINDINFOA; - -struct tagLVFINDINFOW { - UINT flags; - LPCWSTR psz; - LPARAM lParam; - POINT pt; - UINT vkDirection; -} -alias tagLVFINDINFOW LVFINDINFOW; -alias tagLVFINDINFOW* LPFINDINFOW; - -// #ifdef UNICODE -alias LVFINDINFOW LVFINDINFO; -// #else -// #... -// #endif - -enum : uint { LVM_FINDITEMA = LVM_FIRST + 13 } -enum : uint { LVM_FINDITEMW = LVM_FIRST + 83 } -// #ifdef UNICODE -alias LVM_FINDITEMW LVM_FINDITEM; -// #else -// #... -// #endif - -// #define ListView_FindItem(hwnd, iStart, plvfi) (int)SNDMSG((hwnd), LVM_FINDITEM, (WPARAM)(int)(iStart), (LPARAM)(const LV_FINDINFO *)(plvfi)) - -enum : uint { LVIR_BOUNDS = 0 } -enum : uint { LVIR_ICON = 1 } -enum : uint { LVIR_LABEL = 2 } -enum : uint { LVIR_SELECTBOUNDS = 3 } - -enum : uint { LVM_GETITEMRECT = LVM_FIRST + 14 } -// #define ListView_GetItemRect(hwnd, i, prc, code) (BOOL)SNDMSG((hwnd), LVM_GETITEMRECT, (WPARAM)(int)(i), ((prc) ? (((RECT *)(prc))->left = (code),(LPARAM)(RECT *)(prc)) : (LPARAM)(RECT *)NULL)) - -enum : uint { LVM_SETITEMPOSITION = LVM_FIRST + 15 } -// #define ListView_SetItemPosition(hwndLV, i, x, y) (BOOL)SNDMSG((hwndLV), LVM_SETITEMPOSITION, (WPARAM)(int)(i), MAKELPARAM((x), (y))) - -enum : uint { LVM_GETITEMPOSITION = LVM_FIRST + 16 } -// #define ListView_GetItemPosition(hwndLV, i, ppt) (BOOL)SNDMSG((hwndLV), LVM_GETITEMPOSITION, (WPARAM)(int)(i), (LPARAM)(POINT *)(ppt)) - -enum : uint { LVM_GETSTRINGWIDTHA = LVM_FIRST + 17 } -enum : uint { LVM_GETSTRINGWIDTHW = LVM_FIRST + 87 } -// #ifdef UNICODE -alias LVM_GETSTRINGWIDTHW LVM_GETSTRINGWIDTH; -// #else -// #... -// #endif - -// #define ListView_GetStringWidth(hwndLV, psz) (int)SNDMSG((hwndLV), LVM_GETSTRINGWIDTH, 0, (LPARAM)(LPCTSTR)(psz)) - -enum : uint { LVHT_NOWHERE = 0x0001 } -enum : uint { LVHT_ONITEMICON = 0x0002 } -enum : uint { LVHT_ONITEMLABEL = 0x0004 } -enum : uint { LVHT_ONITEMSTATEICON = 0x0008 } -enum : uint { LVHT_ONITEM = LVHT_ONITEMICON | LVHT_ONITEMLABEL | LVHT_ONITEMSTATEICON } - -enum : uint { LVHT_ABOVE = 0x0008 } -enum : uint { LVHT_BELOW = 0x0010 } -enum : uint { LVHT_TORIGHT = 0x0020 } -enum : uint { LVHT_TOLEFT = 0x0040 } - -// #if (_WIN32_IE >= 0x0300) -alias LVHITTESTINFO LV_HITTESTINFO; -// #else -// #... -// #... -// #endif - -// #define LVHITTESTINFO_V1_SIZE CCSIZEOF_STRUCT(LVHITTESTINFO, iItem) - -struct tagLVHITTESTINFO { - POINT pt; - UINT flags; - int iItem; -// #if (_WIN32_IE >= 0x0300) - int iSubItem; -// #endif -} -alias tagLVHITTESTINFO LVHITTESTINFO; -alias tagLVHITTESTINFO* LPLVHITTESTINFO; - -enum : uint { LVM_HITTEST = LVM_FIRST + 18 } -// #define ListView_HitTest(hwndLV, pinfo) (int)SNDMSG((hwndLV), LVM_HITTEST, 0, (LPARAM)(LV_HITTESTINFO *)(pinfo)) - -enum : uint { LVM_ENSUREVISIBLE = LVM_FIRST + 19 } -// #define ListView_EnsureVisible(hwndLV, i, fPartialOK) (BOOL)SNDMSG((hwndLV), LVM_ENSUREVISIBLE, (WPARAM)(int)(i), MAKELPARAM((fPartialOK), 0)) - -enum : uint { LVM_SCROLL = LVM_FIRST + 20 } -// #define ListView_Scroll(hwndLV, dx, dy) (BOOL)SNDMSG((hwndLV), LVM_SCROLL, (WPARAM)(int)(dx), (LPARAM)(int)(dy)) - -enum : uint { LVM_REDRAWITEMS = LVM_FIRST + 21 } -// #define ListView_RedrawItems(hwndLV, iFirst, iLast) (BOOL)SNDMSG((hwndLV), LVM_REDRAWITEMS, (WPARAM)(int)(iFirst), (LPARAM)(int)(iLast)) - -enum : uint { LVA_DEFAULT = 0x0000 } -enum : uint { LVA_ALIGNLEFT = 0x0001 } -enum : uint { LVA_ALIGNTOP = 0x0002 } -enum : uint { LVA_SNAPTOGRID = 0x0005 } - -enum : uint { LVM_ARRANGE = LVM_FIRST + 22 } -// #define ListView_Arrange(hwndLV, code) (BOOL)SNDMSG((hwndLV), LVM_ARRANGE, (WPARAM)(UINT)(code), 0L) - -enum : uint { LVM_EDITLABELA = LVM_FIRST + 23 } -enum : uint { LVM_EDITLABELW = LVM_FIRST + 118 } -// #ifdef UNICODE -alias LVM_EDITLABELW LVM_EDITLABEL; -// #else -// #... -// #endif - -// #define ListView_EditLabel(hwndLV, i) (HWND)SNDMSG((hwndLV), LVM_EDITLABEL, (WPARAM)(int)(i), 0L) - -enum : uint { LVM_GETEDITCONTROL = LVM_FIRST + 24 } -// #define ListView_GetEditControl(hwndLV) (HWND)SNDMSG((hwndLV), LVM_GETEDITCONTROL, 0, 0L) - -// #if (_WIN32_IE >= 0x0300) -alias LVCOLUMNA LV_COLUMNA; -alias LVCOLUMNW LV_COLUMNW; -// #else -// #... -// #... -// #... -// #... -// #endif - -alias LVCOLUMN LV_COLUMN; - -// #define LVCOLUMNA_V1_SIZE CCSIZEOF_STRUCT(LVCOLUMNA, iSubItem) -// #define LVCOLUMNW_V1_SIZE CCSIZEOF_STRUCT(LVCOLUMNW, iSubItem) - -struct tagLVCOLUMNA { - UINT mask; - int fmt; - int cx; - LPSTR pszText; - int cchTextMax; - int iSubItem; -// #if (_WIN32_IE >= 0x0300) - int iImage; - int iOrder; -// #endif -} -alias tagLVCOLUMNA LVCOLUMNA; -alias tagLVCOLUMNA* LPLVCOLUMNA; - -struct tagLVCOLUMNW { - UINT mask; - int fmt; - int cx; - LPWSTR pszText; - int cchTextMax; - int iSubItem; -// #if (_WIN32_IE >= 0x0300) - int iImage; - int iOrder; -// #endif -} -alias tagLVCOLUMNW LVCOLUMNW; -alias tagLVCOLUMNW* LPLVCOLUMNW; - -// #ifdef UNICODE -alias LVCOLUMNW LVCOLUMN; -alias LPLVCOLUMNW LPLVCOLUMN; -// #define LVCOLUMN_V1_SIZE LVCOLUMNW_V1_SIZE -// #else -// #... -// #... -// #... -// #endif - -enum : uint { LVCF_FMT = 0x0001 } -enum : uint { LVCF_WIDTH = 0x0002 } -enum : uint { LVCF_TEXT = 0x0004 } -enum : uint { LVCF_SUBITEM = 0x0008 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { LVCF_IMAGE = 0x0010 } -enum : uint { LVCF_ORDER = 0x0020 } -// #endif - -enum : uint { LVCFMT_LEFT = 0x0000 } -enum : uint { LVCFMT_RIGHT = 0x0001 } -enum : uint { LVCFMT_CENTER = 0x0002 } -enum : uint { LVCFMT_JUSTIFYMASK = 0x0003 } - -// #if (_WIN32_IE >= 0x0300) -enum : uint { LVCFMT_IMAGE = 0x0800 } -enum : uint { LVCFMT_BITMAP_ON_RIGHT = 0x1000 } -enum : uint { LVCFMT_COL_HAS_IMAGES = 0x8000 } -// #endif - -enum : uint { LVM_GETCOLUMNA = LVM_FIRST + 25 } -enum : uint { LVM_GETCOLUMNW = LVM_FIRST + 95 } -// #ifdef UNICODE -alias LVM_GETCOLUMNW LVM_GETCOLUMN; -// #else -// #... -// #endif - -// #define ListView_GetColumn(hwnd, iCol, pcol) (BOOL)SNDMSG((hwnd), LVM_GETCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(LV_COLUMN *)(pcol)) - -enum : uint { LVM_SETCOLUMNA = LVM_FIRST + 26 } -enum : uint { LVM_SETCOLUMNW = LVM_FIRST + 96 } -// #ifdef UNICODE -alias LVM_SETCOLUMNW LVM_SETCOLUMN; -// #else -// #... -// #endif - -// #define ListView_SetColumn(hwnd, iCol, pcol) (BOOL)SNDMSG((hwnd), LVM_SETCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(const LV_COLUMN *)(pcol)) - -enum : uint { LVM_INSERTCOLUMNA = LVM_FIRST + 27 } -enum : uint { LVM_INSERTCOLUMNW = LVM_FIRST + 97 } -// #ifdef UNICODE -alias LVM_INSERTCOLUMNW LVM_INSERTCOLUMN; -// #else -// #... -// #endif - -// #define ListView_InsertColumn(hwnd, iCol, pcol) (int)SNDMSG((hwnd), LVM_INSERTCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(const LV_COLUMN *)(pcol)) - -enum : uint { LVM_DELETECOLUMN = LVM_FIRST + 28 } -// #define ListView_DeleteColumn(hwnd, iCol) (BOOL)SNDMSG((hwnd), LVM_DELETECOLUMN, (WPARAM)(int)(iCol), 0) - -enum : uint { LVM_GETCOLUMNWIDTH = LVM_FIRST + 29 } -// #define ListView_GetColumnWidth(hwnd, iCol) (int)SNDMSG((hwnd), LVM_GETCOLUMNWIDTH, (WPARAM)(int)(iCol), 0) - -enum { LVSCW_AUTOSIZE = -1 } -enum { LVSCW_AUTOSIZE_USEHEADER = -2 } -enum : uint { LVM_SETCOLUMNWIDTH = LVM_FIRST + 30 } - -// #define ListView_SetColumnWidth(hwnd, iCol, cx) (BOOL)SNDMSG((hwnd), LVM_SETCOLUMNWIDTH, (WPARAM)(int)(iCol), MAKELPARAM((cx), 0)) - -// #if (_WIN32_IE >= 0x0300) -enum : uint { LVM_GETHEADER = LVM_FIRST + 31 } -// #define ListView_GetHeader(hwnd) (HWND)SNDMSG((hwnd), LVM_GETHEADER, 0, 0L) -// #endif - -enum : uint { LVM_CREATEDRAGIMAGE = LVM_FIRST + 33 } -// #define ListView_CreateDragImage(hwnd, i, lpptUpLeft) (HIMAGELIST)SNDMSG((hwnd), LVM_CREATEDRAGIMAGE, (WPARAM)(int)(i), (LPARAM)(LPPOINT)(lpptUpLeft)) - -enum : uint { LVM_GETVIEWRECT = LVM_FIRST + 34 } -// #define ListView_GetViewRect(hwnd, prc) (BOOL)SNDMSG((hwnd), LVM_GETVIEWRECT, 0, (LPARAM)(RECT *)(prc)) - -enum : uint { LVM_GETTEXTCOLOR = LVM_FIRST + 35 } -// #define ListView_GetTextColor(hwnd) (COLORREF)SNDMSG((hwnd), LVM_GETTEXTCOLOR, 0, 0L) - -enum : uint { LVM_SETTEXTCOLOR = LVM_FIRST + 36 } -// #define ListView_SetTextColor(hwnd, clrText) (BOOL)SNDMSG((hwnd), LVM_SETTEXTCOLOR, 0, (LPARAM)(COLORREF)(clrText)) - -enum : uint { LVM_GETTEXTBKCOLOR = LVM_FIRST + 37 } -// #define ListView_GetTextBkColor(hwnd) (COLORREF)SNDMSG((hwnd), LVM_GETTEXTBKCOLOR, 0, 0L) - -enum : uint { LVM_SETTEXTBKCOLOR = LVM_FIRST + 38 } -// #define ListView_SetTextBkColor(hwnd, clrTextBk) (BOOL)SNDMSG((hwnd), LVM_SETTEXTBKCOLOR, 0, (LPARAM)(COLORREF)(clrTextBk)) - -enum : uint { LVM_GETTOPINDEX = LVM_FIRST + 39 } -// #define ListView_GetTopIndex(hwndLV) (int)SNDMSG((hwndLV), LVM_GETTOPINDEX, 0, 0) - -enum : uint { LVM_GETCOUNTPERPAGE = LVM_FIRST + 40 } -// #define ListView_GetCountPerPage(hwndLV) (int)SNDMSG((hwndLV), LVM_GETCOUNTPERPAGE, 0, 0) - -enum : uint { LVM_GETORIGIN = LVM_FIRST + 41 } -// #define ListView_GetOrigin(hwndLV, ppt) (BOOL)SNDMSG((hwndLV), LVM_GETORIGIN, (WPARAM)0, (LPARAM)(POINT *)(ppt)) - -enum : uint { LVM_UPDATE = LVM_FIRST + 42 } -// #define ListView_Update(hwndLV, i) (BOOL)SNDMSG((hwndLV), LVM_UPDATE, (WPARAM)(i), 0L) - -enum : uint { LVM_SETITEMSTATE = LVM_FIRST + 43 } -// #define ListView_SetItemState(hwndLV, i, data, mask) { LV_ITEM _ms_lvi; _ms_lvi.stateMask = mask; _ms_lvi.state = data; SNDMSG((hwndLV), LVM_SETITEMSTATE, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi); } - -// #if (_WIN32_IE >= 0x0300) -// #define ListView_SetCheckState(hwndLV, i, fCheck) ListView_SetItemState(hwndLV, i, INDEXTOSTATEIMAGEMASK((fCheck)?2:1), LVIS_STATEIMAGEMASK) -// #endif - -enum : uint { LVM_GETITEMSTATE = LVM_FIRST + 44 } -// #define ListView_GetItemState(hwndLV, i, mask) (UINT)SNDMSG((hwndLV), LVM_GETITEMSTATE, (WPARAM)(i), (LPARAM)(mask)) - -// #if (_WIN32_IE >= 0x0300) -// #define ListView_GetCheckState(hwndLV, i) ((((UINT)(SNDMSG((hwndLV), LVM_GETITEMSTATE, (WPARAM)(i), LVIS_STATEIMAGEMASK))) >> 12) -1) -// #endif - -enum : uint { LVM_GETITEMTEXTA = LVM_FIRST + 45 } -enum : uint { LVM_GETITEMTEXTW = LVM_FIRST + 115 } - -// #ifdef UNICODE -alias LVM_GETITEMTEXTW LVM_GETITEMTEXT; -// #else -// #... -// #endif - -// #define ListView_GetItemText(hwndLV, i, iSubItem_, pszText_, cchTextMax_) { LV_ITEM _ms_lvi; _ms_lvi.iSubItem = iSubItem_; _ms_lvi.cchTextMax = cchTextMax_; _ms_lvi.pszText = pszText_; SNDMSG((hwndLV), LVM_GETITEMTEXT, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi); } - -enum : uint { LVM_SETITEMTEXTA = LVM_FIRST + 46 } -enum : uint { LVM_SETITEMTEXTW = LVM_FIRST + 116 } - -// #ifdef UNICODE -alias LVM_SETITEMTEXTW LVM_SETITEMTEXT; -// #else -// #... -// #endif - -// #define ListView_SetItemText(hwndLV, i, iSubItem_, pszText_) { LV_ITEM _ms_lvi; _ms_lvi.iSubItem = iSubItem_; _ms_lvi.pszText = pszText_; SNDMSG((hwndLV), LVM_SETITEMTEXT, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi); } - -// #if (_WIN32_IE >= 0x0300) - -enum : uint { LVSICF_NOINVALIDATEALL = 0x00000001 } -enum : uint { LVSICF_NOSCROLL = 0x00000002 } -// #endif - -enum : uint { LVM_SETITEMCOUNT = LVM_FIRST + 47 } -// #define ListView_SetItemCount(hwndLV, cItems) SNDMSG((hwndLV), LVM_SETITEMCOUNT, (WPARAM)(cItems), 0) - -// #if (_WIN32_IE >= 0x0300) -// #define ListView_SetItemCountEx(hwndLV, cItems, dwFlags) SNDMSG((hwndLV), LVM_SETITEMCOUNT, (WPARAM)(cItems), (LPARAM)(dwFlags)) -// #endif - -extern(Windows) alias int function(LPARAM, LPARAM, LPARAM) PFNLVCOMPARE; - -enum : uint { LVM_SORTITEMS = LVM_FIRST + 48 } -// #define ListView_SortItems(hwndLV, _pfnCompare, _lPrm) (BOOL)SNDMSG((hwndLV), LVM_SORTITEMS, (WPARAM)(LPARAM)(_lPrm), (LPARAM)(PFNLVCOMPARE)(_pfnCompare)) - -enum : uint { LVM_SETITEMPOSITION32 = LVM_FIRST + 49 } -// #define ListView_SetItemPosition32(hwndLV, i, x0, y0) { POINT ptNewPos; ptNewPos.x = x0; ptNewPos.y = y0; SNDMSG((hwndLV), LVM_SETITEMPOSITION32, (WPARAM)(int)(i), (LPARAM)&ptNewPos); } - -enum : uint { LVM_GETSELECTEDCOUNT = LVM_FIRST + 50 } -// #define ListView_GetSelectedCount(hwndLV) (UINT)SNDMSG((hwndLV), LVM_GETSELECTEDCOUNT, 0, 0L) - -enum : uint { LVM_GETITEMSPACING = LVM_FIRST + 51 } -// #define ListView_GetItemSpacing(hwndLV, fSmall) (DWORD)SNDMSG((hwndLV), LVM_GETITEMSPACING, fSmall, 0L) - -enum : uint { LVM_GETISEARCHSTRINGA = LVM_FIRST + 52 } -enum : uint { LVM_GETISEARCHSTRINGW = LVM_FIRST + 117 } - -// #ifdef UNICODE -alias LVM_GETISEARCHSTRINGW LVM_GETISEARCHSTRING; -// #else -// #... -// #endif - -// #define ListView_GetISearchString(hwndLV, lpsz) (BOOL)SNDMSG((hwndLV), LVM_GETISEARCHSTRING, 0, (LPARAM)(LPTSTR)(lpsz)) - -// #if (_WIN32_IE >= 0x0300) -enum : uint { LVM_SETICONSPACING = LVM_FIRST + 53 } - -// #define ListView_SetIconSpacing(hwndLV, cx, cy) (DWORD)SNDMSG((hwndLV), LVM_SETICONSPACING, 0, MAKELONG(cx,cy)) - -enum : uint { LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54 } -// #define ListView_SetExtendedListViewStyle(hwndLV, dw) (DWORD)SNDMSG((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dw) -// #if (_WIN32_IE >= 0x0400) -// #define ListView_SetExtendedListViewStyleEx(hwndLV, dwMask, dw) (DWORD)SNDMSG((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, dwMask, dw) -// #endif - -enum : uint { LVM_GETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 55 } -// #define ListView_GetExtendedListViewStyle(hwndLV) (DWORD)SNDMSG((hwndLV), LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0) - -enum : uint { LVS_EX_GRIDLINES = 0x00000001 } -enum : uint { LVS_EX_SUBITEMIMAGES = 0x00000002 } -enum : uint { LVS_EX_CHECKBOXES = 0x00000004 } -enum : uint { LVS_EX_TRACKSELECT = 0x00000008 } -enum : uint { LVS_EX_HEADERDRAGDROP = 0x00000010 } -enum : uint { LVS_EX_FULLROWSELECT = 0x00000020 } -enum : uint { LVS_EX_ONECLICKACTIVATE = 0x00000040 } -enum : uint { LVS_EX_TWOCLICKACTIVATE = 0x00000080 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { LVS_EX_FLATSB = 0x00000100 } -enum : uint { LVS_EX_REGIONAL = 0x00000200 } -enum : uint { LVS_EX_INFOTIP = 0x00000400 } -enum : uint { LVS_EX_UNDERLINEHOT = 0x00000800 } -enum : uint { LVS_EX_UNDERLINECOLD = 0x00001000 } -enum : uint { LVS_EX_MULTIWORKAREAS = 0x00002000 } -// #endif -// #if (_WIN32_IE >= 0x0500) -enum : uint { LVS_EX_LABELTIP = 0x00004000 } -enum : uint { LVS_EX_BORDERSELECT = 0x00008000 } -// #endif // End (_WIN32_IE >= 0x0500) -// #if (_WIN32_WINNT >= 0x501) -enum : uint { LVS_EX_DOUBLEBUFFER = 0x00010000 } -enum : uint { LVS_EX_HIDELABELS = 0x00020000 } -enum : uint { LVS_EX_SINGLEROW = 0x00040000 } -enum : uint { LVS_EX_SNAPTOGRID = 0x00080000 } -enum : uint { LVS_EX_SIMPLESELECT = 0x00100000 } -// #endif - -enum : uint { LVM_GETSUBITEMRECT = LVM_FIRST + 56 } -// #define ListView_GetSubItemRect(hwnd, iItem, iSubItem, code, prc) (BOOL)SNDMSG((hwnd), LVM_GETSUBITEMRECT, (WPARAM)(int)(iItem), ((prc) ? ((((LPRECT)(prc))->top = iSubItem), (((LPRECT)(prc))->left = code), (LPARAM)(prc)) : (LPARAM)(LPRECT)NULL)) - -enum : uint { LVM_SUBITEMHITTEST = LVM_FIRST + 57 } -// #define ListView_SubItemHitTest(hwnd, plvhti) (int)SNDMSG((hwnd), LVM_SUBITEMHITTEST, 0, (LPARAM)(LPLVHITTESTINFO)(plvhti)) - -enum : uint { LVM_SETCOLUMNORDERARRAY = LVM_FIRST + 58 } -// #define ListView_SetColumnOrderArray(hwnd, iCount, pi) (BOOL)SNDMSG((hwnd), LVM_SETCOLUMNORDERARRAY, (WPARAM)(iCount), (LPARAM)(LPINT)(pi)) - -enum : uint { LVM_GETCOLUMNORDERARRAY = LVM_FIRST + 59 } -// #define ListView_GetColumnOrderArray(hwnd, iCount, pi) (BOOL)SNDMSG((hwnd), LVM_GETCOLUMNORDERARRAY, (WPARAM)(iCount), (LPARAM)(LPINT)(pi)) - -enum : uint { LVM_SETHOTITEM = LVM_FIRST + 60 } -// #define ListView_SetHotItem(hwnd, i) (int)SNDMSG((hwnd), LVM_SETHOTITEM, (WPARAM)(i), 0) - -enum : uint { LVM_GETHOTITEM = LVM_FIRST + 61 } -// #define ListView_GetHotItem(hwnd) (int)SNDMSG((hwnd), LVM_GETHOTITEM, 0, 0) - -enum : uint { LVM_SETHOTCURSOR = LVM_FIRST + 62 } -// #define ListView_SetHotCursor(hwnd, hcur) (HCURSOR)SNDMSG((hwnd), LVM_SETHOTCURSOR, 0, (LPARAM)(hcur)) - -enum : uint { LVM_GETHOTCURSOR = LVM_FIRST + 63 } -// #define ListView_GetHotCursor(hwnd) (HCURSOR)SNDMSG((hwnd), LVM_GETHOTCURSOR, 0, 0) - -enum : uint { LVM_APPROXIMATEVIEWRECT = LVM_FIRST + 64 } -// #define ListView_ApproximateViewRect(hwnd, iWidth, iHeight, iCount) (DWORD)SNDMSG((hwnd), LVM_APPROXIMATEVIEWRECT, iCount, MAKELPARAM(iWidth, iHeight)) -// #endif // _WIN32_IE >= 0x0300 - -// #if (_WIN32_IE >= 0x0400) - -enum : uint { LV_MAX_WORKAREAS = 16 } -enum : uint { LVM_SETWORKAREAS = LVM_FIRST + 65 } -// #define ListView_SetWorkAreas(hwnd, nWorkAreas, prc) (BOOL)SNDMSG((hwnd), LVM_SETWORKAREAS, (WPARAM)(int)(nWorkAreas), (LPARAM)(RECT *)(prc)) - -enum : uint { LVM_GETWORKAREAS = LVM_FIRST + 70 } -// #define ListView_GetWorkAreas(hwnd, nWorkAreas, prc) (BOOL)SNDMSG((hwnd), LVM_GETWORKAREAS, (WPARAM)(int)(nWorkAreas), (LPARAM)(RECT *)(prc)) - -enum : uint { LVM_GETNUMBEROFWORKAREAS = LVM_FIRST + 73 } -// #define ListView_GetNumberOfWorkAreas(hwnd, pnWorkAreas) (BOOL)SNDMSG((hwnd), LVM_GETNUMBEROFWORKAREAS, 0, (LPARAM)(UINT *)(pnWorkAreas)) - -enum : uint { LVM_GETSELECTIONMARK = LVM_FIRST + 66 } -// #define ListView_GetSelectionMark(hwnd) (int)SNDMSG((hwnd), LVM_GETSELECTIONMARK, 0, 0) - -enum : uint { LVM_SETSELECTIONMARK = LVM_FIRST + 67 } -// #define ListView_SetSelectionMark(hwnd, i) (int)SNDMSG((hwnd), LVM_SETSELECTIONMARK, 0, (LPARAM)(i)) - -enum : uint { LVM_SETHOVERTIME = LVM_FIRST + 71 } -// #define ListView_SetHoverTime(hwndLV, dwHoverTimeMs) (DWORD)SNDMSG((hwndLV), LVM_SETHOVERTIME, 0, (LPARAM)(dwHoverTimeMs)) - -enum : uint { LVM_GETHOVERTIME = LVM_FIRST + 72 } -// #define ListView_GetHoverTime(hwndLV) (DWORD)SNDMSG((hwndLV), LVM_GETHOVERTIME, 0, 0) - -enum : uint { LVM_SETTOOLTIPS = LVM_FIRST + 74 } -// #define ListView_SetToolTips(hwndLV, hwndNewHwnd) (HWND)SNDMSG((hwndLV), LVM_SETTOOLTIPS, (WPARAM)(hwndNewHwnd), 0) - -enum : uint { LVM_GETTOOLTIPS = LVM_FIRST + 78 } -// #define ListView_GetToolTips(hwndLV) (HWND)SNDMSG((hwndLV), LVM_GETTOOLTIPS, 0, 0) - -enum : uint { LVM_SORTITEMSEX = LVM_FIRST + 81 } -// #define ListView_SortItemsEx(hwndLV, _pfnCompare, _lPrm) (BOOL)SNDMSG((hwndLV), LVM_SORTITEMSEX, (WPARAM)(LPARAM)(_lPrm), (LPARAM)(PFNLVCOMPARE)(_pfnCompare)) - -struct tagLVBKIMAGEA { - ULONG ulFlags; - HBITMAP hbm; - LPSTR pszImage; - UINT cchImageMax; - int xOffsetPercent; - int yOffsetPercent; -} -alias tagLVBKIMAGEA LVBKIMAGEA; -alias tagLVBKIMAGEA* LPLVBKIMAGEA; - -struct tagLVBKIMAGEW { - ULONG ulFlags; - HBITMAP hbm; - LPWSTR pszImage; - UINT cchImageMax; - int xOffsetPercent; - int yOffsetPercent; -} -alias tagLVBKIMAGEW LVBKIMAGEW; -alias tagLVBKIMAGEW* LPLVBKIMAGEW; - -enum : uint { LVBKIF_SOURCE_NONE = 0x00000000 } -enum : uint { LVBKIF_SOURCE_HBITMAP = 0x00000001 } -enum : uint { LVBKIF_SOURCE_URL = 0x00000002 } -enum : uint { LVBKIF_SOURCE_MASK = 0x00000003 } -enum : uint { LVBKIF_STYLE_NORMAL = 0x00000000 } -enum : uint { LVBKIF_STYLE_TILE = 0x00000010 } -enum : uint { LVBKIF_STYLE_MASK = 0x00000010 } -// #if (_WIN32_WINNT >= 0x501) -enum : uint { LVBKIF_FLAG_TILEOFFSET = 0x00000100 } -enum : uint { LVBKIF_TYPE_WATERMARK = 0x10000000 } -// #endif - -enum : uint { LVM_SETBKIMAGEA = LVM_FIRST + 68 } -enum : uint { LVM_SETBKIMAGEW = LVM_FIRST + 138 } -enum : uint { LVM_GETBKIMAGEA = LVM_FIRST + 69 } -enum : uint { LVM_GETBKIMAGEW = LVM_FIRST + 139 } - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { LVM_SETSELECTEDCOLUMN = LVM_FIRST + 140 } -// #define ListView_SetSelectedColumn(hwnd, iCol) SNDMSG((hwnd), LVM_SETSELECTEDCOLUMN, (WPARAM)iCol, 0) - -enum : uint { LVM_SETTILEWIDTH = LVM_FIRST + 141 } -// #define ListView_SetTileWidth(hwnd, cpWidth) SNDMSG((hwnd), LVM_SETTILEWIDTH, (WPARAM)cpWidth, 0) - -enum : uint { LV_VIEW_ICON = 0x0000 } -enum : uint { LV_VIEW_DETAILS = 0x0001 } -enum : uint { LV_VIEW_SMALLICON = 0x0002 } -enum : uint { LV_VIEW_LIST = 0x0003 } -enum : uint { LV_VIEW_TILE = 0x0004 } -enum : uint { LV_VIEW_MAX = 0x0004 } - -enum : uint { LVM_SETVIEW = LVM_FIRST + 142 } -// #define ListView_SetView(hwnd, iView) (DWORD)SNDMSG((hwnd), LVM_SETVIEW, (WPARAM)(DWORD)iView, 0) - -enum : uint { LVM_GETVIEW = LVM_FIRST + 143 } -// #define ListView_GetView(hwnd) (DWORD)SNDMSG((hwnd), LVM_GETVIEW, 0, 0) - -enum : uint { LVGF_NONE = 0x00000000 } -enum : uint { LVGF_HEADER = 0x00000001 } -enum : uint { LVGF_FOOTER = 0x00000002 } -enum : uint { LVGF_STATE = 0x00000004 } -enum : uint { LVGF_ALIGN = 0x00000008 } -enum : uint { LVGF_GROUPID = 0x00000010 } - -enum : uint { LVGS_NORMAL = 0x00000000 } -enum : uint { LVGS_COLLAPSED = 0x00000001 } -enum : uint { LVGS_HIDDEN = 0x00000002 } - -enum : uint { LVGA_HEADER_LEFT = 0x00000001 } -enum : uint { LVGA_HEADER_CENTER = 0x00000002 } -enum : uint { LVGA_HEADER_RIGHT = 0x00000004 } -enum : uint { LVGA_FOOTER_LEFT = 0x00000008 } -enum : uint { LVGA_FOOTER_CENTER = 0x00000010 } -enum : uint { LVGA_FOOTER_RIGHT = 0x00000020 } - -struct tagLVGROUP { - UINT cbSize; - UINT mask; - LPWSTR pszHeader; - int cchHeader; - LPWSTR pszFooter; - int cchFooter; - int iGroupId; - UINT stateMask; - UINT state; - UINT uAlign; -} -alias tagLVGROUP LVGROUP; -alias tagLVGROUP* PLVGROUP; - -enum : uint { LVM_INSERTGROUP = LVM_FIRST + 145 } -// #define ListView_InsertGroup(hwnd, index, pgrp) SNDMSG((hwnd), LVM_INSERTGROUP, (WPARAM)index, (LPARAM)pgrp) - -enum : uint { LVM_SETGROUPINFO = LVM_FIRST + 147 } -// #define ListView_SetGroupInfo(hwnd, iGroupId, pgrp) SNDMSG((hwnd), LVM_SETGROUPINFO, (WPARAM)iGroupId, (LPARAM)pgrp) - -enum : uint { LVM_GETGROUPINFO = LVM_FIRST + 149 } -// #define ListView_GetGroupInfo(hwnd, iGroupId, pgrp) SNDMSG((hwnd), LVM_GETGROUPINFO, (WPARAM)iGroupId, (LPARAM)pgrp) - -enum : uint { LVM_REMOVEGROUP = LVM_FIRST + 150 } -// #define ListView_RemoveGroup(hwnd, iGroupId) SNDMSG((hwnd), LVM_REMOVEGROUP, (WPARAM)iGroupId, 0) - -enum : uint { LVM_MOVEGROUP = LVM_FIRST + 151 } -// #define ListView_MoveGroup(hwnd, iGroupId, toIndex) SNDMSG((hwnd), LVM_MOVEGROUP, (WPARAM)iGroupId, (LPARAM)toIndex) - -enum : uint { LVM_MOVEITEMTOGROUP = LVM_FIRST + 154 } -// #define ListView_MoveItemToGroup(hwnd, idItemFrom, idGroupTo) SNDMSG((hwnd), LVM_MOVEITEMTOGROUP, (WPARAM)idItemFrom, (LPARAM)idGroupTo) - -enum : uint { LVGMF_NONE = 0x00000000 } -enum : uint { LVGMF_BORDERSIZE = 0x00000001 } -enum : uint { LVGMF_BORDERCOLOR = 0x00000002 } -enum : uint { LVGMF_TEXTCOLOR = 0x00000004 } - -struct tagLVGROUPMETRICS { - UINT cbSize; - UINT mask; - UINT Left; - UINT Top; - UINT Right; - UINT Bottom; - COLORREF crLeft; - COLORREF crTop; - COLORREF crRight; - COLORREF crBottom; - COLORREF crHeader; - COLORREF crFooter; -} -alias tagLVGROUPMETRICS LVGROUPMETRICS; -alias tagLVGROUPMETRICS* PLVGROUPMETRICS; - -enum : uint { LVM_SETGROUPMETRICS = LVM_FIRST + 155 } -// #define ListView_SetGroupMetrics(hwnd, pGroupMetrics) SNDMSG((hwnd), LVM_SETGROUPMETRICS, 0, (LPARAM)pGroupMetrics) - -enum : uint { LVM_GETGROUPMETRICS = LVM_FIRST + 156 } -// #define ListView_GetGroupMetrics(hwnd, pGroupMetrics) SNDMSG((hwnd), LVM_GETGROUPMETRICS, 0, (LPARAM)pGroupMetrics) - -enum : uint { LVM_ENABLEGROUPVIEW = LVM_FIRST + 157 } -// #define ListView_EnableGroupView(hwnd, fEnable) SNDMSG((hwnd), LVM_ENABLEGROUPVIEW, (WPARAM)fEnable, 0) - -extern(Windows) alias int function(int, int, void *) PFNLVGROUPCOMPARE; - -enum : uint { LVM_SORTGROUPS = LVM_FIRST + 158 } -// #define ListView_SortGroups(hwnd, _pfnGroupCompate, _plv) SNDMSG((hwnd), LVM_SORTGROUPS, (WPARAM)_pfnGroupCompate, (LPARAM)_plv) - -struct tagLVINSERTGROUPSORTED { - PFNLVGROUPCOMPARE pfnGroupCompare; - void *pvData; - LVGROUP lvGroup; -} -alias tagLVINSERTGROUPSORTED LVINSERTGROUPSORTED; -alias tagLVINSERTGROUPSORTED* PLVINSERTGROUPSORTED; - -enum : uint { LVM_INSERTGROUPSORTED = LVM_FIRST + 159 } -// #define ListView_InsertGroupSorted(hwnd, structInsert) SNDMSG((hwnd), LVM_INSERTGROUPSORTED, (WPARAM)structInsert, 0) - -enum : uint { LVM_REMOVEALLGROUPS = LVM_FIRST + 160 } -// #define ListView_RemoveAllGroups(hwnd) SNDMSG((hwnd), LVM_REMOVEALLGROUPS, 0, 0) - -enum : uint { LVM_HASGROUP = LVM_FIRST + 161 } -// #define ListView_HasGroup(hwnd, dwGroupId) SNDMSG((hwnd), LVM_HASGROUP, dwGroupId, 0) - -enum : uint { LVTVIF_AUTOSIZE = 0x00000000 } -enum : uint { LVTVIF_FIXEDWIDTH = 0x00000001 } -enum : uint { LVTVIF_FIXEDHEIGHT = 0x00000002 } -enum : uint { LVTVIF_FIXEDSIZE = 0x00000003 } - -enum : uint { LVTVIM_TILESIZE = 0x00000001 } -enum : uint { LVTVIM_COLUMNS = 0x00000002 } -enum : uint { LVTVIM_LABELMARGIN = 0x00000004 } - -struct tagLVTILEVIEWINFO { - UINT cbSize; - DWORD dwMask; - DWORD dwFlags; - SIZE sizeTile; - int cLines; - RECT rcLabelMargin; -} -alias tagLVTILEVIEWINFO LVTILEVIEWINFO; -alias tagLVTILEVIEWINFO* PLVTILEVIEWINFO; - -struct tagLVTILEINFO { - UINT cbSize; - int iItem; - UINT cColumns; - PUINT puColumns; -} -alias tagLVTILEINFO LVTILEINFO; -alias tagLVTILEINFO* PLVTILEINFO; - -enum : uint { LVM_SETTILEVIEWINFO = LVM_FIRST + 162 } -// #define ListView_SetTileViewInfo(hwnd, ptvi) SNDMSG((hwnd), LVM_SETTILEVIEWINFO, 0, (LPARAM)ptvi) - -enum : uint { LVM_GETTILEVIEWINFO = LVM_FIRST + 163 } -// #define ListView_GetTileViewInfo(hwnd, ptvi) SNDMSG((hwnd), LVM_GETTILEVIEWINFO, 0, (LPARAM)ptvi) - -enum : uint { LVM_SETTILEINFO = LVM_FIRST + 164 } -// #define ListView_SetTileInfo(hwnd, pti) SNDMSG((hwnd), LVM_SETTILEINFO, 0, (LPARAM)pti) - -enum : uint { LVM_GETTILEINFO = LVM_FIRST + 165 } -// #define ListView_GetTileInfo(hwnd, pti) SNDMSG((hwnd), LVM_GETTILEINFO, 0, (LPARAM)pti) - -struct _8 { - UINT cbSize; - DWORD dwFlags; - int iItem; - DWORD dwReserved; -} -alias _8 LVINSERTMARK; -alias _8* LPLVINSERTMARK; - -enum : uint { LVIM_AFTER = 0x00000001 } - -enum : uint { LVM_SETINSERTMARK = LVM_FIRST + 166 } -// #define ListView_SetInsertMark(hwnd, lvim) (BOOL)SNDMSG((hwnd), LVM_SETINSERTMARK, (WPARAM) 0, (LPARAM) (lvim)) - -enum : uint { LVM_GETINSERTMARK = LVM_FIRST + 167 } -// #define ListView_GetInsertMark(hwnd, lvim) (BOOL)SNDMSG((hwnd), LVM_GETINSERTMARK, (WPARAM) 0, (LPARAM) (lvim)) - -enum : uint { LVM_INSERTMARKHITTEST = LVM_FIRST + 168 } -// #define ListView_InsertMarkHitTest(hwnd, point, lvim) (int)SNDMSG((hwnd), LVM_INSERTMARKHITTEST, (WPARAM)(LPPOINT)(point), (LPARAM)(LPLVINSERTMARK)(lvim)) - -enum : uint { LVM_GETINSERTMARKRECT = LVM_FIRST + 169 } -// #define ListView_GetInsertMarkRect(hwnd, rc) (int)SNDMSG((hwnd), LVM_GETINSERTMARKRECT, (WPARAM)0, (LPARAM)(LPRECT)(rc)) - -enum : uint { LVM_SETINSERTMARKCOLOR = LVM_FIRST + 170 } -// #define ListView_SetInsertMarkColor(hwnd, color) (COLORREF)SNDMSG((hwnd), LVM_SETINSERTMARKCOLOR, (WPARAM)0, (LPARAM)(COLORREF)(color)) - -enum : uint { LVM_GETINSERTMARKCOLOR = LVM_FIRST + 171 } -// #define ListView_GetInsertMarkColor(hwnd) (COLORREF)SNDMSG((hwnd), LVM_GETINSERTMARKCOLOR, (WPARAM)0, (LPARAM)0) - -struct tagLVSETINFOTIP { - UINT cbSize; - DWORD dwFlags; - LPWSTR pszText; - int iItem; - int iSubItem; -} -alias tagLVSETINFOTIP LVSETINFOTIP; -alias tagLVSETINFOTIP* PLVSETINFOTIP; - -enum : uint { LVM_SETINFOTIP = LVM_FIRST + 173 } - -// #define ListView_SetInfoTip(hwndLV, plvInfoTip) (BOOL)SNDMSG((hwndLV), LVM_SETINFOTIP, (WPARAM)0, (LPARAM)plvInfoTip) - -enum : uint { LVM_GETSELECTEDCOLUMN = LVM_FIRST + 174 } -// #define ListView_GetSelectedColumn(hwnd) (UINT)SNDMSG((hwnd), LVM_GETSELECTEDCOLUMN, 0, 0) - -enum : uint { LVM_ISGROUPVIEWENABLED = LVM_FIRST + 175 } -// #define ListView_IsGroupViewEnabled(hwnd) (BOOL)SNDMSG((hwnd), LVM_ISGROUPVIEWENABLED, 0, 0) - -enum : uint { LVM_GETOUTLINECOLOR = LVM_FIRST + 176 } -// #define ListView_GetOutlineColor(hwnd) (COLORREF)SNDMSG((hwnd), LVM_GETOUTLINECOLOR, 0, 0) - -enum : uint { LVM_SETOUTLINECOLOR = LVM_FIRST + 177 } -// #define ListView_SetOutlineColor(hwnd, color) (COLORREF)SNDMSG((hwnd), LVM_SETOUTLINECOLOR, (WPARAM)0, (LPARAM)(COLORREF)(color)) - -enum : uint { LVM_CANCELEDITLABEL = LVM_FIRST + 179 } -// #define ListView_CancelEditLabel(hwnd) (VOID)SNDMSG((hwnd), LVM_CANCELEDITLABEL, (WPARAM)0, (LPARAM)0) - -enum : uint { LVM_MAPINDEXTOID = LVM_FIRST + 180 } -// #define ListView_MapIndexToID(hwnd, index) (UINT)SNDMSG((hwnd), LVM_MAPINDEXTOID, (WPARAM)index, (LPARAM)0) - -enum : uint { LVM_MAPIDTOINDEX = LVM_FIRST + 181 } -// #define ListView_MapIDToIndex(hwnd, id) (UINT)SNDMSG((hwnd), LVM_MAPIDTOINDEX, (WPARAM)id, (LPARAM)0) - -// #endif - -// #ifdef UNICODE -alias LVBKIMAGEW LVBKIMAGE; -alias LPLVBKIMAGEW LPLVBKIMAGE; -alias LVM_SETBKIMAGEW LVM_SETBKIMAGE; -alias LVM_GETBKIMAGEW LVM_GETBKIMAGE; -// #else -// #... -// #... -// #... -// #... -// #endif - -// #define ListView_SetBkImage(hwnd, plvbki) (BOOL)SNDMSG((hwnd), LVM_SETBKIMAGE, 0, (LPARAM)(plvbki)) - -// #define ListView_GetBkImage(hwnd, plvbki) (BOOL)SNDMSG((hwnd), LVM_GETBKIMAGE, 0, (LPARAM)(plvbki)) - -// #endif // _WIN32_IE >= 0x0400 - -// #if (_WIN32_IE >= 0x0300) -alias LPNMLISTVIEW LPNM_LISTVIEW; -alias NMLISTVIEW NM_LISTVIEW; -// #else -// #... -// #... -// #... -// #endif - -struct tagNMLISTVIEW { - NMHDR hdr; - int iItem; - int iSubItem; - UINT uNewState; - UINT uOldState; - UINT uChanged; - POINT ptAction; - LPARAM lParam; -} -alias tagNMLISTVIEW NMLISTVIEW; -alias tagNMLISTVIEW* LPNMLISTVIEW; - -// #if (_WIN32_IE >= 0x400) - -struct tagNMITEMACTIVATE { - NMHDR hdr; - int iItem; - int iSubItem; - UINT uNewState; - UINT uOldState; - UINT uChanged; - POINT ptAction; - LPARAM lParam; - UINT uKeyFlags; -} -alias tagNMITEMACTIVATE NMITEMACTIVATE; -alias tagNMITEMACTIVATE* LPNMITEMACTIVATE; - -enum : uint { LVKF_ALT = 0x0001 } -enum : uint { LVKF_CONTROL = 0x0002 } -enum : uint { LVKF_SHIFT = 0x0004 } -// #endif //(_WIN32_IE >= 0x0400) - -// #if (_WIN32_IE >= 0x0300) -// #define NMLVCUSTOMDRAW_V3_SIZE CCSIZEOF_STRUCT(NMLVCUSTOMDRW, clrTextBk) - -struct tagNMLVCUSTOMDRAW { - NMCUSTOMDRAW nmcd; - COLORREF clrText; - COLORREF clrTextBk; -// #if (_WIN32_IE >= 0x0400) - int iSubItem; -// #endif -// #if (_WIN32_WINNT >= 0x501) - DWORD dwItemType; - COLORREF clrFace; - int iIconEffect; - int iIconPhase; - int iPartId; - int iStateId; - RECT rcText; - UINT uAlign; -// #endif -} -alias tagNMLVCUSTOMDRAW NMLVCUSTOMDRAW; -alias tagNMLVCUSTOMDRAW* LPNMLVCUSTOMDRAW; - -enum : uint { LVCDI_ITEM = 0x00000000 } -enum : uint { LVCDI_GROUP = 0x00000001 } - -enum : uint { LVCDRF_NOSELECT = 0x00010000 } -enum : uint { LVCDRF_NOGROUPFRAME = 0x00020000 } - -struct tagNMLVCACHEHINT { - NMHDR hdr; - int iFrom; - int iTo; -} -alias tagNMLVCACHEHINT NMLVCACHEHINT; -alias tagNMLVCACHEHINT* LPNMLVCACHEHINT; - -alias LPNMLVCACHEHINT LPNM_CACHEHINT; -alias LPNMLVCACHEHINT PNM_CACHEHINT; -alias NMLVCACHEHINT NM_CACHEHINT; - -struct tagNMLVFINDITEMA { - NMHDR hdr; - int iStart; - LVFINDINFOA lvfi; -} -alias tagNMLVFINDITEMA NMLVFINDITEMA; -alias tagNMLVFINDITEMA* LPNMLVFINDITEMA; - -struct tagNMLVFINDITEMW { - NMHDR hdr; - int iStart; - LVFINDINFOW lvfi; -} -alias tagNMLVFINDITEMW NMLVFINDITEMW; -alias tagNMLVFINDITEMW* LPNMLVFINDITEMW; - -alias LPNMLVFINDITEMA PNM_FINDITEMA; -alias LPNMLVFINDITEMA LPNM_FINDITEMA; -alias NMLVFINDITEMA NM_FINDITEMA; - -alias LPNMLVFINDITEMW PNM_FINDITEMW; -alias LPNMLVFINDITEMW LPNM_FINDITEMW; -alias NMLVFINDITEMW NM_FINDITEMW; - -// #ifdef UNICODE -alias PNM_FINDITEMW PNM_FINDITEM; -alias LPNM_FINDITEMW LPNM_FINDITEM; -alias NM_FINDITEMW NM_FINDITEM; -alias NMLVFINDITEMW NMLVFINDITEM; -alias LPNMLVFINDITEMW LPNMLVFINDITEM; -// #else -// #... -// #... -// #... -// #... -// #... -// #endif - -struct tagNMLVODSTATECHANGE { - NMHDR hdr; - int iFrom; - int iTo; - UINT uNewState; - UINT uOldState; -} -alias tagNMLVODSTATECHANGE NMLVODSTATECHANGE; -alias tagNMLVODSTATECHANGE* LPNMLVODSTATECHANGE; - -alias LPNMLVODSTATECHANGE PNM_ODSTATECHANGE; -alias LPNMLVODSTATECHANGE LPNM_ODSTATECHANGE; -alias NMLVODSTATECHANGE NM_ODSTATECHANGE; -// #endif // _WIN32_IE >= 0x0300 - -enum : uint { LVN_ITEMCHANGING = LVN_FIRST-0 } -enum : uint { LVN_ITEMCHANGED = LVN_FIRST-1 } -enum : uint { LVN_INSERTITEM = LVN_FIRST-2 } -enum : uint { LVN_DELETEITEM = LVN_FIRST-3 } -enum : uint { LVN_DELETEALLITEMS = LVN_FIRST-4 } -enum : uint { LVN_BEGINLABELEDITA = LVN_FIRST-5 } -enum : uint { LVN_BEGINLABELEDITW = LVN_FIRST-75 } -enum : uint { LVN_ENDLABELEDITA = LVN_FIRST-6 } -enum : uint { LVN_ENDLABELEDITW = LVN_FIRST-76 } -enum : uint { LVN_COLUMNCLICK = LVN_FIRST-8 } -enum : uint { LVN_BEGINDRAG = LVN_FIRST-9 } -enum : uint { LVN_BEGINRDRAG = LVN_FIRST-11 } - -// #if (_WIN32_IE >= 0x0300) -enum : uint { LVN_ODCACHEHINT = LVN_FIRST-13 } -enum : uint { LVN_ODFINDITEMA = LVN_FIRST-52 } -enum : uint { LVN_ODFINDITEMW = LVN_FIRST-79 } - -enum : uint { LVN_ITEMACTIVATE = LVN_FIRST-14 } -enum : uint { LVN_ODSTATECHANGED = LVN_FIRST-15 } - -// #ifdef UNICODE -alias LVN_ODFINDITEMW LVN_ODFINDITEM; -// #else -// #... -// #endif -// #endif // _WIN32_IE >= 0x0300 - -// #if (_WIN32_IE >= 0x0400) -enum : uint { LVN_HOTTRACK = LVN_FIRST-21 } -// #endif - -enum : uint { LVN_GETDISPINFOA = LVN_FIRST-50 } -enum : uint { LVN_GETDISPINFOW = LVN_FIRST-77 } -enum : uint { LVN_SETDISPINFOA = LVN_FIRST-51 } -enum : uint { LVN_SETDISPINFOW = LVN_FIRST-78 } - -// #ifdef UNICODE -alias LVN_BEGINLABELEDITW LVN_BEGINLABELEDIT; -alias LVN_ENDLABELEDITW LVN_ENDLABELEDIT; -alias LVN_GETDISPINFOW LVN_GETDISPINFO; -alias LVN_SETDISPINFOW LVN_SETDISPINFO; -// #else -// #... -// #... -// #... -// #... -// #endif - -enum : uint { LVIF_DI_SETITEM = 0x1000 } - -// #if (_WIN32_IE >= 0x0300) -alias NMLVDISPINFOA LV_DISPINFOA; -alias NMLVDISPINFOW LV_DISPINFOW; -// #else -// #... -// #... -// #... -// #... -// #endif - -alias NMLVDISPINFO LV_DISPINFO; - -struct tagLVDISPINFO { - NMHDR hdr; - LVITEMA item; -} -alias tagLVDISPINFO NMLVDISPINFOA; -alias tagLVDISPINFO* LPNMLVDISPINFOA; - -struct tagLVDISPINFOW { - NMHDR hdr; - LVITEMW item; -} -alias tagLVDISPINFOW NMLVDISPINFOW; -alias tagLVDISPINFOW* LPNMLVDISPINFOW; - -// #ifdef UNICODE -alias NMLVDISPINFOW NMLVDISPINFO; -// #else -// #... -// #endif - -enum : uint { LVN_KEYDOWN = LVN_FIRST-55 } - -// #if (_WIN32_IE >= 0x0300) -alias NMLVKEYDOWN LV_KEYDOWN; -// #else -// #... -// #... -// #endif - -// #ifdef _WIN32 -align(1): -// #endif - -struct tagLVKEYDOWN { - NMHDR hdr; - WORD wVKey; - UINT flags; -} -alias tagLVKEYDOWN NMLVKEYDOWN; -alias tagLVKEYDOWN* LPNMLVKEYDOWN; - -// #ifdef _WIN32 -align: -// #endif - -// #if (_WIN32_IE >= 0x0300) -enum : uint { LVN_MARQUEEBEGIN = LVN_FIRST-56 } -// #endif - -// #if (_WIN32_IE >= 0x0400) -struct tagNMLVGETINFOTIPA { - NMHDR hdr; - DWORD dwFlags; - LPSTR pszText; - int cchTextMax; - int iItem; - int iSubItem; - LPARAM lParam; -} -alias tagNMLVGETINFOTIPA NMLVGETINFOTIPA; -alias tagNMLVGETINFOTIPA* LPNMLVGETINFOTIPA; - -struct tagNMLVGETINFOTIPW { - NMHDR hdr; - DWORD dwFlags; - LPWSTR pszText; - int cchTextMax; - int iItem; - int iSubItem; - LPARAM lParam; -} -alias tagNMLVGETINFOTIPW NMLVGETINFOTIPW; -alias tagNMLVGETINFOTIPW* LPNMLVGETINFOTIPW; - -enum : uint { LVGIT_UNFOLDED = 0x0001 } - -enum : uint { LVN_GETINFOTIPA = LVN_FIRST-57 } -enum : uint { LVN_GETINFOTIPW = LVN_FIRST-58 } - -// #ifdef UNICODE -alias LVN_GETINFOTIPW LVN_GETINFOTIP; -alias NMLVGETINFOTIPW NMLVGETINFOTIP; -alias LPNMLVGETINFOTIPW LPNMLVGETINFOTIP; -// #else -// #... -// #... -// #... -// #endif - -// #endif // _WIN32_IE >= 0x0400 - -// #if (_WIN32_WINNT >= 0x501) -struct tagNMLVSCROLL { - NMHDR hdr; - int dx; - int dy; -} -alias tagNMLVSCROLL NMLVSCROLL; -alias tagNMLVSCROLL* LPNMLVSCROLL; - -enum : uint { LVN_BEGINSCROLL = LVN_FIRST-80 } -enum : uint { LVN_ENDSCROLL = LVN_FIRST-81 } -// #endif - -// #endif // NOLISTVIEW - -// #ifndef NOTREEVIEW - -// #ifdef _WIN32 -const char[] WC_TREEVIEWA = "SysTreeView32"; -const wchar[] WC_TREEVIEWW = "SysTreeView32"; - -// #ifdef UNICODE -alias WC_TREEVIEWW WC_TREEVIEW; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -enum : uint { TVS_HASBUTTONS = 0x0001 } -enum : uint { TVS_HASLINES = 0x0002 } -enum : uint { TVS_LINESATROOT = 0x0004 } -enum : uint { TVS_EDITLABELS = 0x0008 } -enum : uint { TVS_DISABLEDRAGDROP = 0x0010 } -enum : uint { TVS_SHOWSELALWAYS = 0x0020 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TVS_RTLREADING = 0x0040 } - -enum : uint { TVS_NOTOOLTIPS = 0x0080 } -enum : uint { TVS_CHECKBOXES = 0x0100 } -enum : uint { TVS_TRACKSELECT = 0x0200 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { TVS_SINGLEEXPAND = 0x0400 } -enum : uint { TVS_INFOTIP = 0x0800 } -enum : uint { TVS_FULLROWSELECT = 0x1000 } -enum : uint { TVS_NOSCROLL = 0x2000 } -enum : uint { TVS_NONEVENHEIGHT = 0x4000 } -// #endif -// #if (_WIN32_IE >= 0x500) -enum : uint { TVS_NOHSCROLL = 0x8000 } -// #endif -// #endif - -alias _TREEITEM* HTREEITEM; - -enum : uint { TVIF_TEXT = 0x0001 } -enum : uint { TVIF_IMAGE = 0x0002 } -enum : uint { TVIF_PARAM = 0x0004 } -enum : uint { TVIF_STATE = 0x0008 } -enum : uint { TVIF_HANDLE = 0x0010 } -enum : uint { TVIF_SELECTEDIMAGE = 0x0020 } -enum : uint { TVIF_CHILDREN = 0x0040 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { TVIF_INTEGRAL = 0x0080 } -// #endif -enum : uint { TVIS_SELECTED = 0x0002 } -enum : uint { TVIS_CUT = 0x0004 } -enum : uint { TVIS_DROPHILITED = 0x0008 } -enum : uint { TVIS_BOLD = 0x0010 } -enum : uint { TVIS_EXPANDED = 0x0020 } -enum : uint { TVIS_EXPANDEDONCE = 0x0040 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TVIS_EXPANDPARTIAL = 0x0080 } -// #endif - -enum : uint { TVIS_OVERLAYMASK = 0x0F00 } -enum : uint { TVIS_STATEIMAGEMASK = 0xF000 } -enum : uint { TVIS_USERMASK = 0xF000 } - -enum { I_CHILDRENCALLBACK = -1 } - -// #if (_WIN32_IE >= 0x0300) -alias LPTVITEMW LPTV_ITEMW; -alias LPTVITEMA LPTV_ITEMA; -alias TVITEMW TV_ITEMW; -alias TVITEMA TV_ITEMA; -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -alias LPTVITEM LPTV_ITEM; -alias TVITEM TV_ITEM; - -struct tagTVITEMA { - UINT mask; - HTREEITEM hItem; - UINT state; - UINT stateMask; - LPSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int cChildren; - LPARAM lParam; -} -alias tagTVITEMA TVITEMA; -alias tagTVITEMA* LPTVITEMA; - -struct tagTVITEMW { - UINT mask; - HTREEITEM hItem; - UINT state; - UINT stateMask; - LPWSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int cChildren; - LPARAM lParam; -} -alias tagTVITEMW TVITEMW; -alias tagTVITEMW* LPTVITEMW; - -// #if (_WIN32_IE >= 0x0400) - -struct tagTVITEMEXA { - UINT mask; - HTREEITEM hItem; - UINT state; - UINT stateMask; - LPSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int cChildren; - LPARAM lParam; - int iIntegral; -} -alias tagTVITEMEXA TVITEMEXA; -alias tagTVITEMEXA* LPTVITEMEXA; - -struct tagTVITEMEXW { - UINT mask; - HTREEITEM hItem; - UINT state; - UINT stateMask; - LPWSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int cChildren; - LPARAM lParam; - int iIntegral; -} -alias tagTVITEMEXW TVITEMEXW; -alias tagTVITEMEXW* LPTVITEMEXW; - -// #ifdef UNICODE -alias TVITEMEXW TVITEMEX; -alias LPTVITEMEXW LPTVITEMEX; -// #else -// ... -// #endif // UNICODE - -// #endif - -// #ifdef UNICODE -alias TVITEMW TVITEM; -alias LPTVITEMW LPTVITEM; -// #else -// #... -// #... -// #endif - -const HTREEITEM TVI_ROOT = cast(HTREEITEM)(-0x10000); -const HTREEITEM TVI_FIRST = cast(HTREEITEM)(-0x0FFFF); -const HTREEITEM TVI_LAST = cast(HTREEITEM)(-0x0FFFE); -const HTREEITEM TVI_SORT = cast(HTREEITEM)(-0x0FFFD); - -// #if (_WIN32_IE >= 0x0300) -alias LPTVINSERTSTRUCTA LPTV_INSERTSTRUCTA; -alias LPTVINSERTSTRUCTW LPTV_INSERTSTRUCTW; -alias TVINSERTSTRUCTA TV_INSERTSTRUCTA; -alias TVINSERTSTRUCTW TV_INSERTSTRUCTW; -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -alias TVINSERTSTRUCT TV_INSERTSTRUCT; -alias LPTVINSERTSTRUCT LPTV_INSERTSTRUCT; - -// #define TVINSERTSTRUCTA_V1_SIZE CCSIZEOF_STRUCT(TVINSERTSTRUCTA, item) -// #define TVINSERTSTRUCTW_V1_SIZE CCSIZEOF_STRUCT(TVINSERTSTRUCTW, item) - -struct tagTVINSERTSTRUCTA { - HTREEITEM hParent; - HTREEITEM hInsertAfter; -// #if (_WIN32_IE >= 0x0400) -union { - TVITEMEXA itemex; - TV_ITEMA item; -} - -// #else -// ... -// #endif -} -alias tagTVINSERTSTRUCTA TVINSERTSTRUCTA; -alias tagTVINSERTSTRUCTA* LPTVINSERTSTRUCTA; - -struct tagTVINSERTSTRUCTW { - HTREEITEM hParent; - HTREEITEM hInsertAfter; -// #if (_WIN32_IE >= 0x0400) -union { - TVITEMEXW itemex; - TV_ITEMW item; -} - -// #else -// ... -// #endif -} -alias tagTVINSERTSTRUCTW TVINSERTSTRUCTW; -alias tagTVINSERTSTRUCTW* LPTVINSERTSTRUCTW; - -// #ifdef UNICODE -alias TVINSERTSTRUCTW TVINSERTSTRUCT; -alias LPTVINSERTSTRUCTW LPTVINSERTSTRUCT; -// #define TVINSERTSTRUCT_V1_SIZE TVINSERTSTRUCTW_V1_SIZE -// #else -// #... -// #... -// #... -// #endif - -enum : uint { TVM_INSERTITEMA = TV_FIRST + 0 } -enum : uint { TVM_INSERTITEMW = TV_FIRST + 50 } -// #ifdef UNICODE -alias TVM_INSERTITEMW TVM_INSERTITEM; -// #else -// #... -// #endif - -// #define TreeView_InsertItem(hwnd, lpis) (HTREEITEM)SNDMSG((hwnd), TVM_INSERTITEM, 0, (LPARAM)(LPTV_INSERTSTRUCT)(lpis)) - -enum : uint { TVM_DELETEITEM = TV_FIRST + 1 } -// #define TreeView_DeleteItem(hwnd, hitem) (BOOL)SNDMSG((hwnd), TVM_DELETEITEM, 0, (LPARAM)(HTREEITEM)(hitem)) - -// #define TreeView_DeleteAllItems(hwnd) (BOOL)SNDMSG((hwnd), TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT) - -enum : uint { TVM_EXPAND = TV_FIRST + 2 } -// #define TreeView_Expand(hwnd, hitem, code) (BOOL)SNDMSG((hwnd), TVM_EXPAND, (WPARAM)(code), (LPARAM)(HTREEITEM)(hitem)) - -enum : uint { TVE_COLLAPSE = 0x0001 } -enum : uint { TVE_EXPAND = 0x0002 } -enum : uint { TVE_TOGGLE = 0x0003 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TVE_EXPANDPARTIAL = 0x4000 } -// #endif -enum : uint { TVE_COLLAPSERESET = 0x8000 } - -enum : uint { TVM_GETITEMRECT = TV_FIRST + 4 } -// #define TreeView_GetItemRect(hwnd, hitem, prc, code) (*(HTREEITEM *)prc = (hitem), (BOOL)SNDMSG((hwnd), TVM_GETITEMRECT, (WPARAM)(code), (LPARAM)(RECT *)(prc))) - -enum : uint { TVM_GETCOUNT = TV_FIRST + 5 } -// #define TreeView_GetCount(hwnd) (UINT)SNDMSG((hwnd), TVM_GETCOUNT, 0, 0) - -enum : uint { TVM_GETINDENT = TV_FIRST + 6 } -// #define TreeView_GetIndent(hwnd) (UINT)SNDMSG((hwnd), TVM_GETINDENT, 0, 0) - -enum : uint { TVM_SETINDENT = TV_FIRST + 7 } -// #define TreeView_SetIndent(hwnd, indent) (BOOL)SNDMSG((hwnd), TVM_SETINDENT, (WPARAM)(indent), 0) - -enum : uint { TVM_GETIMAGELIST = TV_FIRST + 8 } -// #define TreeView_GetImageList(hwnd, iImage) (HIMAGELIST)SNDMSG((hwnd), TVM_GETIMAGELIST, iImage, 0) - -enum : uint { TVSIL_NORMAL = 0 } -enum : uint { TVSIL_STATE = 2 } - -enum : uint { TVM_SETIMAGELIST = TV_FIRST + 9 } -// #define TreeView_SetImageList(hwnd, himl, iImage) (HIMAGELIST)SNDMSG((hwnd), TVM_SETIMAGELIST, iImage, (LPARAM)(HIMAGELIST)(himl)) - -enum : uint { TVM_GETNEXTITEM = TV_FIRST + 10 } -// #define TreeView_GetNextItem(hwnd, hitem, code) (HTREEITEM)SNDMSG((hwnd), TVM_GETNEXTITEM, (WPARAM)(code), (LPARAM)(HTREEITEM)(hitem)) - -enum : uint { TVGN_ROOT = 0x0000 } -enum : uint { TVGN_NEXT = 0x0001 } -enum : uint { TVGN_PREVIOUS = 0x0002 } -enum : uint { TVGN_PARENT = 0x0003 } -enum : uint { TVGN_CHILD = 0x0004 } -enum : uint { TVGN_FIRSTVISIBLE = 0x0005 } -enum : uint { TVGN_NEXTVISIBLE = 0x0006 } -enum : uint { TVGN_PREVIOUSVISIBLE = 0x0007 } -enum : uint { TVGN_DROPHILITE = 0x0008 } -enum : uint { TVGN_CARET = 0x0009 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { TVGN_LASTVISIBLE = 0x000A } -// #endif // _WIN32_IE >= 0x0400 - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { TVSI_NOSINGLEEXPAND = 0x8000 } -// #endif - -// #define TreeView_GetChild(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_CHILD) -// #define TreeView_GetNextSibling(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_NEXT) -// #define TreeView_GetPrevSibling(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUS) -// #define TreeView_GetParent(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_PARENT) -// #define TreeView_GetFirstVisible(hwnd) TreeView_GetNextItem(hwnd, NULL, TVGN_FIRSTVISIBLE) -// #define TreeView_GetNextVisible(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTVISIBLE) -// #define TreeView_GetPrevVisible(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUSVISIBLE) -// #define TreeView_GetSelection(hwnd) TreeView_GetNextItem(hwnd, NULL, TVGN_CARET) -// #define TreeView_GetDropHilight(hwnd) TreeView_GetNextItem(hwnd, NULL, TVGN_DROPHILITE) -// #define TreeView_GetRoot(hwnd) TreeView_GetNextItem(hwnd, NULL, TVGN_ROOT) -// #if (_WIN32_IE >= 0x0400) -// #define TreeView_GetLastVisible(hwnd) TreeView_GetNextItem(hwnd, NULL, TVGN_LASTVISIBLE) -// #endif // _WIN32_IE >= 0x0400 - -enum : uint { TVM_SELECTITEM = TV_FIRST + 11 } -// #define TreeView_Select(hwnd, hitem, code) (BOOL)SNDMSG((hwnd), TVM_SELECTITEM, (WPARAM)(code), (LPARAM)(HTREEITEM)(hitem)) - -// #define TreeView_SelectItem(hwnd, hitem) TreeView_Select(hwnd, hitem, TVGN_CARET) -// #define TreeView_SelectDropTarget(hwnd, hitem) TreeView_Select(hwnd, hitem, TVGN_DROPHILITE) -// #define TreeView_SelectSetFirstVisible(hwnd, hitem) TreeView_Select(hwnd, hitem, TVGN_FIRSTVISIBLE) - -enum : uint { TVM_GETITEMA = TV_FIRST + 12 } -enum : uint { TVM_GETITEMW = TV_FIRST + 62 } - -// #ifdef UNICODE -alias TVM_GETITEMW TVM_GETITEM; -// #else -// #... -// #endif - -// #define TreeView_GetItem(hwnd, pitem) (BOOL)SNDMSG((hwnd), TVM_GETITEM, 0, (LPARAM)(TV_ITEM *)(pitem)) - -enum : uint { TVM_SETITEMA = TV_FIRST + 13 } -enum : uint { TVM_SETITEMW = TV_FIRST + 63 } - -// #ifdef UNICODE -alias TVM_SETITEMW TVM_SETITEM; -// #else -// #... -// #endif - -// #define TreeView_SetItem(hwnd, pitem) (BOOL)SNDMSG((hwnd), TVM_SETITEM, 0, (LPARAM)(const TV_ITEM *)(pitem)) - -enum : uint { TVM_EDITLABELA = TV_FIRST + 14 } -enum : uint { TVM_EDITLABELW = TV_FIRST + 65 } -// #ifdef UNICODE -alias TVM_EDITLABELW TVM_EDITLABEL; -// #else -// #... -// #endif - -// #define TreeView_EditLabel(hwnd, hitem) (HWND)SNDMSG((hwnd), TVM_EDITLABEL, 0, (LPARAM)(HTREEITEM)(hitem)) - -enum : uint { TVM_GETEDITCONTROL = TV_FIRST + 15 } -// #define TreeView_GetEditControl(hwnd) (HWND)SNDMSG((hwnd), TVM_GETEDITCONTROL, 0, 0) - -enum : uint { TVM_GETVISIBLECOUNT = TV_FIRST + 16 } -// #define TreeView_GetVisibleCount(hwnd) (UINT)SNDMSG((hwnd), TVM_GETVISIBLECOUNT, 0, 0) - -enum : uint { TVM_HITTEST = TV_FIRST + 17 } -// #define TreeView_HitTest(hwnd, lpht) (HTREEITEM)SNDMSG((hwnd), TVM_HITTEST, 0, (LPARAM)(LPTV_HITTESTINFO)(lpht)) - -// #if (_WIN32_IE >= 0x0300) -alias LPTVHITTESTINFO LPTV_HITTESTINFO; -alias TVHITTESTINFO TV_HITTESTINFO; -// #else -// #... -// #... -// #... -// #endif - -struct tagTVHITTESTINFO { - POINT pt; - UINT flags; - HTREEITEM hItem; -} -alias tagTVHITTESTINFO TVHITTESTINFO; -alias tagTVHITTESTINFO* LPTVHITTESTINFO; - -enum : uint { TVHT_NOWHERE = 0x0001 } -enum : uint { TVHT_ONITEMICON = 0x0002 } -enum : uint { TVHT_ONITEMLABEL = 0x0004 } -enum : uint { TVHT_ONITEM = TVHT_ONITEMICON | TVHT_ONITEMLABEL | TVHT_ONITEMSTATEICON } -enum : uint { TVHT_ONITEMINDENT = 0x0008 } -enum : uint { TVHT_ONITEMBUTTON = 0x0010 } -enum : uint { TVHT_ONITEMRIGHT = 0x0020 } -// #define TVHT_ONITEMSTATEICON 0x0040 - -enum : uint { TVHT_ABOVE = 0x0100 } -enum : uint { TVHT_BELOW = 0x0200 } -enum : uint { TVHT_TORIGHT = 0x0400 } -enum : uint { TVHT_TOLEFT = 0x0800 } - -enum : uint { TVM_CREATEDRAGIMAGE = TV_FIRST + 18 } -// #define TreeView_CreateDragImage(hwnd, hitem) (HIMAGELIST)SNDMSG((hwnd), TVM_CREATEDRAGIMAGE, 0, (LPARAM)(HTREEITEM)(hitem)) - -enum : uint { TVM_SORTCHILDREN = TV_FIRST + 19 } -// #define TreeView_SortChildren(hwnd, hitem, recurse) (BOOL)SNDMSG((hwnd), TVM_SORTCHILDREN, (WPARAM)(recurse), (LPARAM)(HTREEITEM)(hitem)) - -enum : uint { TVM_ENSUREVISIBLE = TV_FIRST + 20 } -// #define TreeView_EnsureVisible(hwnd, hitem) (BOOL)SNDMSG((hwnd), TVM_ENSUREVISIBLE, 0, (LPARAM)(HTREEITEM)(hitem)) - -enum : uint { TVM_SORTCHILDRENCB = TV_FIRST + 21 } -// #define TreeView_SortChildrenCB(hwnd, psort, recurse) (BOOL)SNDMSG((hwnd), TVM_SORTCHILDRENCB, (WPARAM)(recurse), (LPARAM)(LPTV_SORTCB)(psort)) - -enum : uint { TVM_ENDEDITLABELNOW = TV_FIRST + 22 } -// #define TreeView_EndEditLabelNow(hwnd, fCancel) (BOOL)SNDMSG((hwnd), TVM_ENDEDITLABELNOW, (WPARAM)(fCancel), 0) - -enum : uint { TVM_GETISEARCHSTRINGA = TV_FIRST + 23 } -enum : uint { TVM_GETISEARCHSTRINGW = TV_FIRST + 64 } - -// #ifdef UNICODE -alias TVM_GETISEARCHSTRINGW TVM_GETISEARCHSTRING; -// #else -// #... -// #endif - -// #if (_WIN32_IE >= 0x0300) -enum : uint { TVM_SETTOOLTIPS = TV_FIRST + 24 } -// #define TreeView_SetToolTips(hwnd, hwndTT) (HWND)SNDMSG((hwnd), TVM_SETTOOLTIPS, (WPARAM)(hwndTT), 0) -enum : uint { TVM_GETTOOLTIPS = TV_FIRST + 25 } -// #define TreeView_GetToolTips(hwnd) (HWND)SNDMSG((hwnd), TVM_GETTOOLTIPS, 0, 0) -// #endif - -// #define TreeView_GetISearchString(hwndTV, lpsz) (BOOL)SNDMSG((hwndTV), TVM_GETISEARCHSTRING, 0, (LPARAM)(LPTSTR)(lpsz)) - -// #if (_WIN32_IE >= 0x0400) -enum : uint { TVM_SETINSERTMARK = TV_FIRST + 26 } -// #define TreeView_SetInsertMark(hwnd, hItem, fAfter) (BOOL)SNDMSG((hwnd), TVM_SETINSERTMARK, (WPARAM) (fAfter), (LPARAM) (hItem)) - -alias CCM_SETUNICODEFORMAT TVM_SETUNICODEFORMAT; -// #define TreeView_SetUnicodeFormat(hwnd, fUnicode) (BOOL)SNDMSG((hwnd), TVM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) - -alias CCM_GETUNICODEFORMAT TVM_GETUNICODEFORMAT; -// #define TreeView_GetUnicodeFormat(hwnd) (BOOL)SNDMSG((hwnd), TVM_GETUNICODEFORMAT, 0, 0) - -// #endif - -// #if (_WIN32_IE >= 0x0400) -enum : uint { TVM_SETITEMHEIGHT = TV_FIRST + 27 } -// #define TreeView_SetItemHeight(hwnd, iHeight) (int)SNDMSG((hwnd), TVM_SETITEMHEIGHT, (WPARAM)(iHeight), 0) -enum : uint { TVM_GETITEMHEIGHT = TV_FIRST + 28 } -// #define TreeView_GetItemHeight(hwnd) (int)SNDMSG((hwnd), TVM_GETITEMHEIGHT, 0, 0) - -enum : uint { TVM_SETBKCOLOR = TV_FIRST + 29 } -// #define TreeView_SetBkColor(hwnd, clr) (COLORREF)SNDMSG((hwnd), TVM_SETBKCOLOR, 0, (LPARAM)(clr)) - -enum : uint { TVM_SETTEXTCOLOR = TV_FIRST + 30 } -// #define TreeView_SetTextColor(hwnd, clr) (COLORREF)SNDMSG((hwnd), TVM_SETTEXTCOLOR, 0, (LPARAM)(clr)) - -enum : uint { TVM_GETBKCOLOR = TV_FIRST + 31 } -// #define TreeView_GetBkColor(hwnd) (COLORREF)SNDMSG((hwnd), TVM_GETBKCOLOR, 0, 0) - -enum : uint { TVM_GETTEXTCOLOR = TV_FIRST + 32 } -// #define TreeView_GetTextColor(hwnd) (COLORREF)SNDMSG((hwnd), TVM_GETTEXTCOLOR, 0, 0) - -enum : uint { TVM_SETSCROLLTIME = TV_FIRST + 33 } -// #define TreeView_SetScrollTime(hwnd, uTime) (UINT)SNDMSG((hwnd), TVM_SETSCROLLTIME, uTime, 0) - -enum : uint { TVM_GETSCROLLTIME = TV_FIRST + 34 } -// #define TreeView_GetScrollTime(hwnd) (UINT)SNDMSG((hwnd), TVM_GETSCROLLTIME, 0, 0) - -enum : uint { TVM_SETINSERTMARKCOLOR = TV_FIRST + 37 } -// #define TreeView_SetInsertMarkColor(hwnd, clr) (COLORREF)SNDMSG((hwnd), TVM_SETINSERTMARKCOLOR, 0, (LPARAM)(clr)) -enum : uint { TVM_GETINSERTMARKCOLOR = TV_FIRST + 38 } -// #define TreeView_GetInsertMarkColor(hwnd) (COLORREF)SNDMSG((hwnd), TVM_GETINSERTMARKCOLOR, 0, 0) - -// #endif /* (_WIN32_IE >= 0x0400) */ - -// #if (_WIN32_IE >= 0x0500) - -// #define TreeView_SetItemState(hwndTV, hti, data, _mask) { TVITEM _ms_TVi; _ms_TVi.mask = TVIF_STATE; _ms_TVi.hItem = hti; _ms_TVi.stateMask = _mask; _ms_TVi.state = data; SNDMSG((hwndTV), TVM_SETITEM, 0, (LPARAM)(TV_ITEM *)&_ms_TVi); } - -// #define TreeView_SetCheckState(hwndTV, hti, fCheck) TreeView_SetItemState(hwndTV, hti, INDEXTOSTATEIMAGEMASK((fCheck)?2:1), TVIS_STATEIMAGEMASK) - -enum : uint { TVM_GETITEMSTATE = TV_FIRST + 39 } -// #define TreeView_GetItemState(hwndTV, hti, mask) (UINT)SNDMSG((hwndTV), TVM_GETITEMSTATE, (WPARAM)(hti), (LPARAM)(mask)) - -// #define TreeView_GetCheckState(hwndTV, hti) ((((UINT)(SNDMSG((hwndTV), TVM_GETITEMSTATE, (WPARAM)(hti), TVIS_STATEIMAGEMASK))) >> 12) -1) - -enum : uint { TVM_SETLINECOLOR = TV_FIRST + 40 } -// #define TreeView_SetLineColor(hwnd, clr) (COLORREF)SNDMSG((hwnd), TVM_SETLINECOLOR, 0, (LPARAM)(clr)) - -enum : uint { TVM_GETLINECOLOR = TV_FIRST + 41 } -// #define TreeView_GetLineColor(hwnd) (COLORREF)SNDMSG((hwnd), TVM_GETLINECOLOR, 0, 0) - -// #endif - -// #if (_WIN32_WINNT >= 0x0501) -enum : uint { TVM_MAPACCIDTOHTREEITEM = TV_FIRST + 42 } -// #define TreeView_MapAccIDToHTREEITEM(hwnd, id) (HTREEITEM)SNDMSG((hwnd), TVM_MAPACCIDTOHTREEITEM, id, 0) - -enum : uint { TVM_MAPHTREEITEMTOACCID = TV_FIRST + 43 } -// #define TreeView_MapHTREEITEMToAccID(hwnd, htreeitem) (UINT)SNDMSG((hwnd), TVM_MAPHTREEITEMTOACCID, (WPARAM)htreeitem, 0) - -// #endif - -extern(Windows) alias int function(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) PFNTVCOMPARE; - -// #if (_WIN32_IE >= 0x0300) -alias LPTVSORTCB LPTV_SORTCB; -alias TVSORTCB TV_SORTCB; -// #else -// #... -// #... -// #... -// #endif - -struct tagTVSORTCB { - HTREEITEM hParent; - PFNTVCOMPARE lpfnCompare; - LPARAM lParam; -} -alias tagTVSORTCB TVSORTCB; -alias tagTVSORTCB* LPTVSORTCB; - -// #if (_WIN32_IE >= 0x0300) -alias LPNMTREEVIEWA LPNM_TREEVIEWA; -alias LPNMTREEVIEWW LPNM_TREEVIEWW; -alias NMTREEVIEWW NM_TREEVIEWW; -alias NMTREEVIEWA NM_TREEVIEWA; -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -alias LPNMTREEVIEW LPNM_TREEVIEW; -alias NMTREEVIEW NM_TREEVIEW; - -struct tagNMTREEVIEWA { - NMHDR hdr; - UINT action; - TVITEMA itemOld; - TVITEMA itemNew; - POINT ptDrag; -} -alias tagNMTREEVIEWA NMTREEVIEWA; -alias tagNMTREEVIEWA* LPNMTREEVIEWA; - -struct tagNMTREEVIEWW { - NMHDR hdr; - UINT action; - TVITEMW itemOld; - TVITEMW itemNew; - POINT ptDrag; -} -alias tagNMTREEVIEWW NMTREEVIEWW; -alias tagNMTREEVIEWW* LPNMTREEVIEWW; - -// #ifdef UNICODE -alias NMTREEVIEWW NMTREEVIEW; -alias LPNMTREEVIEWW LPNMTREEVIEW; -// #else -// #... -// #... -// #endif - -enum : uint { TVN_SELCHANGINGA = TVN_FIRST-1 } -enum : uint { TVN_SELCHANGINGW = TVN_FIRST-50 } -enum : uint { TVN_SELCHANGEDA = TVN_FIRST-2 } -enum : uint { TVN_SELCHANGEDW = TVN_FIRST-51 } - -enum : uint { TVC_UNKNOWN = 0x0000 } -enum : uint { TVC_BYMOUSE = 0x0001 } -enum : uint { TVC_BYKEYBOARD = 0x0002 } - -enum : uint { TVN_GETDISPINFOA = TVN_FIRST-3 } -enum : uint { TVN_GETDISPINFOW = TVN_FIRST-52 } -enum : uint { TVN_SETDISPINFOA = TVN_FIRST-4 } -enum : uint { TVN_SETDISPINFOW = TVN_FIRST-53 } - -enum : uint { TVIF_DI_SETITEM = 0x1000 } - -// #if (_WIN32_IE >= 0x0300) -alias NMTVDISPINFOA TV_DISPINFOA; -alias NMTVDISPINFOW TV_DISPINFOW; -// #else -// #... -// #... -// #... -// #... -// #endif - -alias NMTVDISPINFO TV_DISPINFO; - -struct tagTVDISPINFOA { - NMHDR hdr; - TVITEMA item; -} -alias tagTVDISPINFOA NMTVDISPINFOA; -alias tagTVDISPINFOA* LPNMTVDISPINFOA; - -struct tagTVDISPINFOW { - NMHDR hdr; - TVITEMW item; -} -alias tagTVDISPINFOW NMTVDISPINFOW; -alias tagTVDISPINFOW* LPNMTVDISPINFOW; - -// #ifdef UNICODE -alias NMTVDISPINFOW NMTVDISPINFO; -alias LPNMTVDISPINFOW LPNMTVDISPINFO; -// #else -// #... -// #... -// #endif - -enum : uint { TVN_ITEMEXPANDINGA = TVN_FIRST-5 } -enum : uint { TVN_ITEMEXPANDINGW = TVN_FIRST-54 } -enum : uint { TVN_ITEMEXPANDEDA = TVN_FIRST-6 } -enum : uint { TVN_ITEMEXPANDEDW = TVN_FIRST-55 } -enum : uint { TVN_BEGINDRAGA = TVN_FIRST-7 } -enum : uint { TVN_BEGINDRAGW = TVN_FIRST-56 } -enum : uint { TVN_BEGINRDRAGA = TVN_FIRST-8 } -enum : uint { TVN_BEGINRDRAGW = TVN_FIRST-57 } -enum : uint { TVN_DELETEITEMA = TVN_FIRST-9 } -enum : uint { TVN_DELETEITEMW = TVN_FIRST-58 } -enum : uint { TVN_BEGINLABELEDITA = TVN_FIRST-10 } -enum : uint { TVN_BEGINLABELEDITW = TVN_FIRST-59 } -enum : uint { TVN_ENDLABELEDITA = TVN_FIRST-11 } -enum : uint { TVN_ENDLABELEDITW = TVN_FIRST-60 } -enum : uint { TVN_KEYDOWN = TVN_FIRST-12 } - -// #if (_WIN32_IE >= 0x0400) -enum : uint { TVN_GETINFOTIPA = TVN_FIRST-13 } -enum : uint { TVN_GETINFOTIPW = TVN_FIRST-14 } -enum : uint { TVN_SINGLEEXPAND = TVN_FIRST-15 } - -enum : uint { TVNRET_DEFAULT = 0 } -enum : uint { TVNRET_SKIPOLD = 1 } -enum : uint { TVNRET_SKIPNEW = 2 } - -// #endif // 0x400 - -// #if (_WIN32_IE >= 0x0300) -alias NMTVKEYDOWN TV_KEYDOWN; -// #else -// #... -// #... -// #endif - -// #ifdef _WIN32 -align(1): -// #endif - -struct tagTVKEYDOWN { - NMHDR hdr; - WORD wVKey; - UINT flags; -} -alias tagTVKEYDOWN NMTVKEYDOWN; -alias tagTVKEYDOWN* LPNMTVKEYDOWN; - -// #ifdef _WIN32 -align: -// #endif - -// #ifdef UNICODE -alias TVN_SELCHANGINGW TVN_SELCHANGING; -alias TVN_SELCHANGEDW TVN_SELCHANGED; -alias TVN_GETDISPINFOW TVN_GETDISPINFO; -alias TVN_SETDISPINFOW TVN_SETDISPINFO; -alias TVN_ITEMEXPANDINGW TVN_ITEMEXPANDING; -alias TVN_ITEMEXPANDEDW TVN_ITEMEXPANDED; -alias TVN_BEGINDRAGW TVN_BEGINDRAG; -alias TVN_BEGINRDRAGW TVN_BEGINRDRAG; -alias TVN_DELETEITEMW TVN_DELETEITEM; -alias TVN_BEGINLABELEDITW TVN_BEGINLABELEDIT; -alias TVN_ENDLABELEDITW TVN_ENDLABELEDIT; -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -// #if (_WIN32_IE >= 0x0300) -// #define NMTVCUSTOMDRAW_V3_SIZE CCSIZEOF_STRUCT(NMTVCUSTOMDRAW, clrTextBk) - -struct tagNMTVCUSTOMDRAW { - NMCUSTOMDRAW nmcd; - COLORREF clrText; - COLORREF clrTextBk; -// #if (_WIN32_IE >= 0x0400) - int iLevel; -// #endif -} -alias tagNMTVCUSTOMDRAW NMTVCUSTOMDRAW; -alias tagNMTVCUSTOMDRAW* LPNMTVCUSTOMDRAW; - -// #endif - -// #if (_WIN32_IE >= 0x0400) - -struct tagNMTVGETINFOTIPA { - NMHDR hdr; - LPSTR pszText; - int cchTextMax; - HTREEITEM hItem; - LPARAM lParam; -} -alias tagNMTVGETINFOTIPA NMTVGETINFOTIPA; -alias tagNMTVGETINFOTIPA* LPNMTVGETINFOTIPA; - -struct tagNMTVGETINFOTIPW { - NMHDR hdr; - LPWSTR pszText; - int cchTextMax; - HTREEITEM hItem; - LPARAM lParam; -} -alias tagNMTVGETINFOTIPW NMTVGETINFOTIPW; -alias tagNMTVGETINFOTIPW* LPNMTVGETINFOTIPW; - -// #ifdef UNICODE -alias TVN_GETINFOTIPW TVN_GETINFOTIP; -alias NMTVGETINFOTIPW NMTVGETINFOTIP; -alias LPNMTVGETINFOTIPW LPNMTVGETINFOTIP; -// #else -// #... -// #... -// #... -// #endif - -enum : uint { TVCDRF_NOIMAGES = 0x00010000 } - -// #endif // _WIN32_IE >= 0x0400 - -// #endif // NOTREEVIEW - -// #if (_WIN32_IE >= 0x0300) - -// #ifndef NOUSEREXCONTROLS - -const wchar[] WC_COMBOBOXEXW = "ComboBoxEx32"; -const char[] WC_COMBOBOXEXA = "ComboBoxEx32"; - -// #ifdef UNICODE -alias WC_COMBOBOXEXW WC_COMBOBOXEX; -// #else -// #... -// #endif - -enum : uint { CBEIF_TEXT = 0x00000001 } -enum : uint { CBEIF_IMAGE = 0x00000002 } -enum : uint { CBEIF_SELECTEDIMAGE = 0x00000004 } -enum : uint { CBEIF_OVERLAY = 0x00000008 } -enum : uint { CBEIF_INDENT = 0x00000010 } -enum : uint { CBEIF_LPARAM = 0x00000020 } - -enum : uint { CBEIF_DI_SETITEM = 0x10000000 } - -struct tagCOMBOBOXEXITEMA { - UINT mask; - INT_PTR iItem; - LPSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int iOverlay; - int iIndent; - LPARAM lParam; -} -alias tagCOMBOBOXEXITEMA COMBOBOXEXITEMA; -alias tagCOMBOBOXEXITEMA* PCOMBOBOXEXITEMA; - -alias COMBOBOXEXITEMA* PCCOMBOEXITEMA; - -struct tagCOMBOBOXEXITEMW { - UINT mask; - INT_PTR iItem; - LPWSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int iOverlay; - int iIndent; - LPARAM lParam; -} -alias tagCOMBOBOXEXITEMW COMBOBOXEXITEMW; -alias tagCOMBOBOXEXITEMW* PCOMBOBOXEXITEMW; - -alias COMBOBOXEXITEMW* PCCOMBOEXITEMW; - -// #ifdef UNICODE -alias COMBOBOXEXITEMW COMBOBOXEXITEM; -alias PCOMBOBOXEXITEMW PCOMBOBOXEXITEM; -alias PCCOMBOBOXEXITEMW PCCOMBOBOXEXITEM; -// #else -// #... -// #... -// #... -// #endif - -enum : uint { CBEM_INSERTITEMA = WM_USER + 1 } -enum : uint { CBEM_SETIMAGELIST = WM_USER + 2 } -enum : uint { CBEM_GETIMAGELIST = WM_USER + 3 } -enum : uint { CBEM_GETITEMA = WM_USER + 4 } -enum : uint { CBEM_SETITEMA = WM_USER + 5 } -alias CB_DELETESTRING CBEM_DELETEITEM; -enum : uint { CBEM_GETCOMBOCONTROL = WM_USER + 6 } -enum : uint { CBEM_GETEDITCONTROL = WM_USER + 7 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { CBEM_SETEXSTYLE = WM_USER + 8 } -enum : uint { CBEM_SETEXTENDEDSTYLE = WM_USER + 14 } -enum : uint { CBEM_GETEXSTYLE = WM_USER + 9 } -enum : uint { CBEM_GETEXTENDEDSTYLE = WM_USER + 9 } -alias CCM_SETUNICODEFORMAT CBEM_SETUNICODEFORMAT; -alias CCM_GETUNICODEFORMAT CBEM_GETUNICODEFORMAT; -// #else -// #... -// #... -// #endif -enum : uint { CBEM_HASEDITCHANGED = WM_USER + 10 } -enum : uint { CBEM_INSERTITEMW = WM_USER + 11 } -enum : uint { CBEM_SETITEMW = WM_USER + 12 } -enum : uint { CBEM_GETITEMW = WM_USER + 13 } - -// #ifdef UNICODE -alias CBEM_INSERTITEMW CBEM_INSERTITEM; -alias CBEM_SETITEMW CBEM_SETITEM; -alias CBEM_GETITEMW CBEM_GETITEM; -// #else -// #... -// #... -// #... -// #endif - -// #if (_WIN32_WINNT >= 0x501) -alias CCM_SETWINDOWTHEME CBEM_SETWINDOWTHEME; -// #endif - -enum : uint { CBES_EX_NOEDITIMAGE = 0x00000001 } -enum : uint { CBES_EX_NOEDITIMAGEINDENT = 0x00000002 } -enum : uint { CBES_EX_PATHWORDBREAKPROC = 0x00000004 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { CBES_EX_NOSIZELIMIT = 0x00000008 } -enum : uint { CBES_EX_CASESENSITIVE = 0x00000010 } - -struct _9 { - NMHDR hdr; - COMBOBOXEXITEMA ceItem; -} -alias _9 NMCOMBOBOXEXA; -alias _9* PNMCOMBOBOXEXA; - -struct _10 { - NMHDR hdr; - COMBOBOXEXITEMW ceItem; -} -alias _10 NMCOMBOBOXEXW; -alias _10* PNMCOMBOBOXEXW; - -// #ifdef UNICODE -alias NMCOMBOBOXEXW NMCOMBOBOXEX; -alias PNMCOMBOBOXEXW PNMCOMBOBOXEX; -alias CBEN_GETDISPINFOW CBEN_GETDISPINFO; -// #else -// #... -// #... -// #... -// #endif - -// #else -// ... - -// #... - -// #endif // _WIN32_IE >= 0x0400 - -// #if (_WIN32_IE >= 0x0400) -// #define CBEN_GETDISPINFOA (CBEN_FIRST - 0) -// #endif -enum : uint { CBEN_INSERTITEM = CBEN_FIRST - 1 } -enum : uint { CBEN_DELETEITEM = CBEN_FIRST - 2 } -enum : uint { CBEN_BEGINEDIT = CBEN_FIRST - 4 } -enum : uint { CBEN_ENDEDITA = CBEN_FIRST - 5 } -enum : uint { CBEN_ENDEDITW = CBEN_FIRST - 6 } - -// #if (_WIN32_IE >= 0x0400) -// #define CBEN_GETDISPINFOW (CBEN_FIRST - 7) -// #endif - -// #if (_WIN32_IE >= 0x0400) -enum : uint { CBEN_DRAGBEGINA = CBEN_FIRST - 8 } -enum : uint { CBEN_DRAGBEGINW = CBEN_FIRST - 9 } - -// #ifdef UNICODE -alias CBEN_DRAGBEGINW CBEN_DRAGBEGIN; -// #else -// #... -// #endif - -// #endif //(_WIN32_IE >= 0x0400) - -// #ifdef UNICODE -alias CBEN_ENDEDITW CBEN_ENDEDIT; -// #else -// #... -// #endif - -enum : uint { CBENF_KILLFOCUS = 1 } -enum : uint { CBENF_RETURN = 2 } -enum : uint { CBENF_ESCAPE = 3 } -enum : uint { CBENF_DROPDOWN = 4 } - -enum : uint { CBEMAXSTRLEN = 260 } - -// #if (_WIN32_IE >= 0x0400) - -struct _11 { - NMHDR hdr; - int iItemid; - WCHAR szText[CBEMAXSTRLEN]; -} -alias _11 NMCBEDRAGBEGINW; -alias _11* LPNMCBEDRAGBEGINW; -alias _11* PNMCBEDRAGBEGINW; - -struct _12 { - NMHDR hdr; - int iItemid; - char szText[CBEMAXSTRLEN]; -} -alias _12 NMCBEDRAGBEGINA; -alias _12* LPNMCBEDRAGBEGINA; -alias _12* PNMCBEDRAGBEGINA; - -// #ifdef UNICODE -alias NMCBEDRAGBEGINW NMCBEDRAGBEGIN; -alias LPNMCBEDRAGBEGINW LPNMCBEDRAGBEGIN; -alias PNMCBEDRAGBEGINW PNMCBEDRAGBEGIN; -// #else -// #... -// #... -// #... -// #endif -// #endif // _WIN32_IE >= 0x0400 - -struct _13 { - NMHDR hdr; - BOOL fChanged; - int iNewSelection; - WCHAR szText[CBEMAXSTRLEN]; - int iWhy; -} -alias _13 NMCBEENDEDITW; -alias _13* LPNMCBEENDEDITW; -alias _13* PNMCBEENDEDITW; - -struct _14 { - NMHDR hdr; - BOOL fChanged; - int iNewSelection; - char szText[CBEMAXSTRLEN]; - int iWhy; -} -alias _14 NMCBEENDEDITA; -alias _14* LPNMCBEENDEDITA; -alias _14* PNMCBEENDEDITA; - -// #ifdef UNICODE -alias NMCBEENDEDITW NMCBEENDEDIT; -alias LPNMCBEENDEDITW LPNMCBEENDEDIT; -alias PNMCBEENDEDITW PNMCBEENDEDIT; -// #else -// #... -// #... -// #... -// #endif - -// #endif - -// #endif // _WIN32_IE >= 0x0300 - -// #ifndef NOTABCONTROL - -// #ifdef _WIN32 - -const char[] WC_TABCONTROLA = "SysTabControl32"; -const wchar[] WC_TABCONTROLW = "SysTabControl32"; - -// #ifdef UNICODE -alias WC_TABCONTROLW WC_TABCONTROL; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -// #if (_WIN32_IE >= 0x0300) -enum : uint { TCS_SCROLLOPPOSITE = 0x0001 } -enum : uint { TCS_BOTTOM = 0x0002 } -enum : uint { TCS_RIGHT = 0x0002 } -enum : uint { TCS_MULTISELECT = 0x0004 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { TCS_FLATBUTTONS = 0x0008 } -// #endif -enum : uint { TCS_FORCEICONLEFT = 0x0010 } -enum : uint { TCS_FORCELABELLEFT = 0x0020 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TCS_HOTTRACK = 0x0040 } -enum : uint { TCS_VERTICAL = 0x0080 } -// #endif -enum : uint { TCS_TABS = 0x0000 } -enum : uint { TCS_BUTTONS = 0x0100 } -enum : uint { TCS_SINGLELINE = 0x0000 } -enum : uint { TCS_MULTILINE = 0x0200 } -enum : uint { TCS_RIGHTJUSTIFY = 0x0000 } -enum : uint { TCS_FIXEDWIDTH = 0x0400 } -enum : uint { TCS_RAGGEDRIGHT = 0x0800 } -enum : uint { TCS_FOCUSONBUTTONDOWN = 0x1000 } -enum : uint { TCS_OWNERDRAWFIXED = 0x2000 } -enum : uint { TCS_TOOLTIPS = 0x4000 } -enum : uint { TCS_FOCUSNEVER = 0x8000 } - -// #if (_WIN32_IE >= 0x0400) - -enum : uint { TCS_EX_FLATSEPARATORS = 0x00000001 } -enum : uint { TCS_EX_REGISTERDROP = 0x00000002 } -// #endif - -enum : uint { TCM_GETIMAGELIST = TCM_FIRST + 2 } -// #define TabCtrl_GetImageList(hwnd) (HIMAGELIST)SNDMSG((hwnd), TCM_GETIMAGELIST, 0, 0L) - -enum : uint { TCM_SETIMAGELIST = TCM_FIRST + 3 } -// #define TabCtrl_SetImageList(hwnd, himl) (HIMAGELIST)SNDMSG((hwnd), TCM_SETIMAGELIST, 0, (LPARAM)(HIMAGELIST)(himl)) - -enum : uint { TCM_GETITEMCOUNT = TCM_FIRST + 4 } -// #define TabCtrl_GetItemCount(hwnd) (int)SNDMSG((hwnd), TCM_GETITEMCOUNT, 0, 0L) - -enum : uint { TCIF_TEXT = 0x0001 } -enum : uint { TCIF_IMAGE = 0x0002 } -enum : uint { TCIF_RTLREADING = 0x0004 } -enum : uint { TCIF_PARAM = 0x0008 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { TCIF_STATE = 0x0010 } - -enum : uint { TCIS_BUTTONPRESSED = 0x0001 } -// #endif -// #if (_WIN32_IE >= 0x0400) -enum : uint { TCIS_HIGHLIGHTED = 0x0002 } -// #endif - -// #if (_WIN32_IE >= 0x0300) -alias TCITEMHEADERA TC_ITEMHEADERA; -alias TCITEMHEADERW TC_ITEMHEADERW; -// #else -// #... -// #... -// #... -// #... -// #endif -alias TCITEMHEADER TC_ITEMHEADER; - -struct tagTCITEMHEADERA { - UINT mask; - UINT lpReserved1; - UINT lpReserved2; - LPSTR pszText; - int cchTextMax; - int iImage; -} -alias tagTCITEMHEADERA TCITEMHEADERA; -alias tagTCITEMHEADERA* LPTCITEMHEADERA; - -struct tagTCITEMHEADERW { - UINT mask; - UINT lpReserved1; - UINT lpReserved2; - LPWSTR pszText; - int cchTextMax; - int iImage; -} -alias tagTCITEMHEADERW TCITEMHEADERW; -alias tagTCITEMHEADERW* LPTCITEMHEADERW; - -// #ifdef UNICODE -alias TCITEMHEADERW TCITEMHEADER; -alias LPTCITEMHEADERW LPTCITEMHEADER; -// #else -// #... -// #... -// #endif - -// #if (_WIN32_IE >= 0x0300) -alias TCITEMA TC_ITEMA; -alias TCITEMW TC_ITEMW; -// #else -// #... -// #... -// #... -// #... -// #endif -alias TCITEM TC_ITEM; - -struct tagTCITEMA { - UINT mask; -// #if (_WIN32_IE >= 0x0300) - DWORD dwState; - DWORD dwStateMask; -// #else -// ... -// #endif - LPSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -} -alias tagTCITEMA TCITEMA; -alias tagTCITEMA* LPTCITEMA; - -struct tagTCITEMW { - UINT mask; -// #if (_WIN32_IE >= 0x0300) - DWORD dwState; - DWORD dwStateMask; -// #else -// ... -// #endif - LPWSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -} -alias tagTCITEMW TCITEMW; -alias tagTCITEMW* LPTCITEMW; - -// #ifdef UNICODE -alias TCITEMW TCITEM; -alias LPTCITEMW LPTCITEM; -// #else -// #... -// #... -// #endif - -enum : uint { TCM_GETITEMA = TCM_FIRST + 5 } -enum : uint { TCM_GETITEMW = TCM_FIRST + 60 } - -// #ifdef UNICODE -alias TCM_GETITEMW TCM_GETITEM; -// #else -// #... -// #endif - -// #define TabCtrl_GetItem(hwnd, iItem, pitem) (BOOL)SNDMSG((hwnd), TCM_GETITEM, (WPARAM)(int)(iItem), (LPARAM)(TC_ITEM *)(pitem)) - -enum : uint { TCM_SETITEMA = TCM_FIRST + 6 } -enum : uint { TCM_SETITEMW = TCM_FIRST + 61 } - -// #ifdef UNICODE -alias TCM_SETITEMW TCM_SETITEM; -// #else -// #... -// #endif - -// #define TabCtrl_SetItem(hwnd, iItem, pitem) (BOOL)SNDMSG((hwnd), TCM_SETITEM, (WPARAM)(int)(iItem), (LPARAM)(TC_ITEM *)(pitem)) - -enum : uint { TCM_INSERTITEMA = TCM_FIRST + 7 } -enum : uint { TCM_INSERTITEMW = TCM_FIRST + 62 } - -// #ifdef UNICODE -alias TCM_INSERTITEMW TCM_INSERTITEM; -// #else -// #... -// #endif - -// #define TabCtrl_InsertItem(hwnd, iItem, pitem) (int)SNDMSG((hwnd), TCM_INSERTITEM, (WPARAM)(int)(iItem), (LPARAM)(const TC_ITEM *)(pitem)) - -enum : uint { TCM_DELETEITEM = TCM_FIRST + 8 } -// #define TabCtrl_DeleteItem(hwnd, i) (BOOL)SNDMSG((hwnd), TCM_DELETEITEM, (WPARAM)(int)(i), 0L) - -enum : uint { TCM_DELETEALLITEMS = TCM_FIRST + 9 } -// #define TabCtrl_DeleteAllItems(hwnd) (BOOL)SNDMSG((hwnd), TCM_DELETEALLITEMS, 0, 0L) - -enum : uint { TCM_GETITEMRECT = TCM_FIRST + 10 } -// #define TabCtrl_GetItemRect(hwnd, i, prc) (BOOL)SNDMSG((hwnd), TCM_GETITEMRECT, (WPARAM)(int)(i), (LPARAM)(RECT *)(prc)) - -enum : uint { TCM_GETCURSEL = TCM_FIRST + 11 } -// #define TabCtrl_GetCurSel(hwnd) (int)SNDMSG((hwnd), TCM_GETCURSEL, 0, 0) - -enum : uint { TCM_SETCURSEL = TCM_FIRST + 12 } -// #define TabCtrl_SetCurSel(hwnd, i) (int)SNDMSG((hwnd), TCM_SETCURSEL, (WPARAM)(i), 0) - -enum : uint { TCHT_NOWHERE = 0x0001 } -enum : uint { TCHT_ONITEMICON = 0x0002 } -enum : uint { TCHT_ONITEMLABEL = 0x0004 } -enum : uint { TCHT_ONITEM = TCHT_ONITEMICON | TCHT_ONITEMLABEL } - -// #if (_WIN32_IE >= 0x0300) -alias LPTCHITTESTINFO LPTC_HITTESTINFO; -alias TCHITTESTINFO TC_HITTESTINFO; -// #else -// #... -// #... -// #... -// #endif - -struct tagTCHITTESTINFO { - POINT pt; - UINT flags; -} -alias tagTCHITTESTINFO TCHITTESTINFO; -alias tagTCHITTESTINFO* LPTCHITTESTINFO; - -enum : uint { TCM_HITTEST = TCM_FIRST + 13 } -// #define TabCtrl_HitTest(hwndTC, pinfo) (int)SNDMSG((hwndTC), TCM_HITTEST, 0, (LPARAM)(TC_HITTESTINFO *)(pinfo)) - -enum : uint { TCM_SETITEMEXTRA = TCM_FIRST + 14 } -// #define TabCtrl_SetItemExtra(hwndTC, cb) (BOOL)SNDMSG((hwndTC), TCM_SETITEMEXTRA, (WPARAM)(cb), 0L) - -enum : uint { TCM_ADJUSTRECT = TCM_FIRST + 40 } -// #define TabCtrl_AdjustRect(hwnd, bLarger, prc) (int)SNDMSG(hwnd, TCM_ADJUSTRECT, (WPARAM)(BOOL)(bLarger), (LPARAM)(RECT *)prc) - -enum : uint { TCM_SETITEMSIZE = TCM_FIRST + 41 } -// #define TabCtrl_SetItemSize(hwnd, x, y) (DWORD)SNDMSG((hwnd), TCM_SETITEMSIZE, 0, MAKELPARAM(x,y)) - -enum : uint { TCM_REMOVEIMAGE = TCM_FIRST + 42 } -// #define TabCtrl_RemoveImage(hwnd, i) (void)SNDMSG((hwnd), TCM_REMOVEIMAGE, i, 0L) - -enum : uint { TCM_SETPADDING = TCM_FIRST + 43 } -// #define TabCtrl_SetPadding(hwnd, cx, cy) (void)SNDMSG((hwnd), TCM_SETPADDING, 0, MAKELPARAM(cx, cy)) - -enum : uint { TCM_GETROWCOUNT = TCM_FIRST + 44 } -// #define TabCtrl_GetRowCount(hwnd) (int)SNDMSG((hwnd), TCM_GETROWCOUNT, 0, 0L) - -enum : uint { TCM_GETTOOLTIPS = TCM_FIRST + 45 } -// #define TabCtrl_GetToolTips(hwnd) (HWND)SNDMSG((hwnd), TCM_GETTOOLTIPS, 0, 0L) - -enum : uint { TCM_SETTOOLTIPS = TCM_FIRST + 46 } -// #define TabCtrl_SetToolTips(hwnd, hwndTT) (void)SNDMSG((hwnd), TCM_SETTOOLTIPS, (WPARAM)(hwndTT), 0L) - -enum : uint { TCM_GETCURFOCUS = TCM_FIRST + 47 } -// #define TabCtrl_GetCurFocus(hwnd) (int)SNDMSG((hwnd), TCM_GETCURFOCUS, 0, 0) - -enum : uint { TCM_SETCURFOCUS = TCM_FIRST + 48 } -// #define TabCtrl_SetCurFocus(hwnd, i) SNDMSG((hwnd),TCM_SETCURFOCUS, i, 0) - -// #if (_WIN32_IE >= 0x0300) -enum : uint { TCM_SETMINTABWIDTH = TCM_FIRST + 49 } -// #define TabCtrl_SetMinTabWidth(hwnd, x) (int)SNDMSG((hwnd), TCM_SETMINTABWIDTH, 0, x) - -enum : uint { TCM_DESELECTALL = TCM_FIRST + 50 } -// #define TabCtrl_DeselectAll(hwnd, fExcludeFocus) (void)SNDMSG((hwnd), TCM_DESELECTALL, fExcludeFocus, 0) -// #endif - -// #if (_WIN32_IE >= 0x0400) - -enum : uint { TCM_HIGHLIGHTITEM = TCM_FIRST + 51 } -// #define TabCtrl_HighlightItem(hwnd, i, fHighlight) (BOOL)SNDMSG((hwnd), TCM_HIGHLIGHTITEM, (WPARAM)(i), (LPARAM)MAKELONG (fHighlight, 0)) - -enum : uint { TCM_SETEXTENDEDSTYLE = TCM_FIRST + 52 } -// #define TabCtrl_SetExtendedStyle(hwnd, dw) (DWORD)SNDMSG((hwnd), TCM_SETEXTENDEDSTYLE, 0, dw) - -enum : uint { TCM_GETEXTENDEDSTYLE = TCM_FIRST + 53 } -// #define TabCtrl_GetExtendedStyle(hwnd) (DWORD)SNDMSG((hwnd), TCM_GETEXTENDEDSTYLE, 0, 0) - -alias CCM_SETUNICODEFORMAT TCM_SETUNICODEFORMAT; -// #define TabCtrl_SetUnicodeFormat(hwnd, fUnicode) (BOOL)SNDMSG((hwnd), TCM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) - -alias CCM_GETUNICODEFORMAT TCM_GETUNICODEFORMAT; -// #define TabCtrl_GetUnicodeFormat(hwnd) (BOOL)SNDMSG((hwnd), TCM_GETUNICODEFORMAT, 0, 0) - -// #endif // _WIN32_IE >= 0x0400 - -enum : uint { TCN_KEYDOWN = TCN_FIRST - 0 } - -// #if (_WIN32_IE >= 0x0300) -alias NMTCKEYDOWN TC_KEYDOWN; -// #else -// #... -// #... -// #endif - -// #ifdef _WIN32 -align(1): -// #endif - -struct tagTCKEYDOWN { - NMHDR hdr; - WORD wVKey; - UINT flags; -} -alias tagTCKEYDOWN NMTCKEYDOWN; - -// #ifdef _WIN32 -align: -// #endif - -enum : uint { TCN_SELCHANGE = TCN_FIRST - 1 } -enum : uint { TCN_SELCHANGING = TCN_FIRST - 2 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { TCN_GETOBJECT = TCN_FIRST - 3 } -// #endif // _WIN32_IE >= 0x0400 -// #if (_WIN32_IE >= 0x0500) -enum : uint { TCN_FOCUSCHANGE = TCN_FIRST - 4 } -// #endif // _WIN32_IE >= 0x0500 -// #endif // NOTABCONTROL - -// #ifndef NOANIMATE - -// #ifdef _WIN32 - -const wchar[] ANIMATE_CLASSW = "SysAnimate32"; -const char[] ANIMATE_CLASSA = "SysAnimate32"; - -// #ifdef UNICODE -alias ANIMATE_CLASSW ANIMATE_CLASS; -// #else -// #... -// #endif - -enum : uint { ACS_CENTER = 0x0001 } -enum : uint { ACS_TRANSPARENT = 0x0002 } -enum : uint { ACS_AUTOPLAY = 0x0004 } -// #if (_WIN32_IE >= 0x0300) -enum : uint { ACS_TIMER = 0x0008 } -// #endif - -enum : uint { ACM_OPENA = WM_USER+100 } -enum : uint { ACM_OPENW = WM_USER+103 } - -// #ifdef UNICODE -alias ACM_OPENW ACM_OPEN; -// #else -// #... -// #endif - -enum : uint { ACM_PLAY = WM_USER+101 } -enum : uint { ACM_STOP = WM_USER+102 } - -enum : uint { ACN_START = 1 } -enum : uint { ACN_STOP = 2 } - -// #define Animate_Create(hwndP, id, dwStyle, hInstance) CreateWindow(ANIMATE_CLASS, NULL, dwStyle, 0, 0, 0, 0, hwndP, (HMENU)(id), hInstance, NULL) - -// #define Animate_Open(hwnd, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, 0, (LPARAM)(LPTSTR)(szName)) -// #define Animate_OpenEx(hwnd, hInst, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, (WPARAM)(hInst), (LPARAM)(LPTSTR)(szName)) -// #define Animate_Play(hwnd, from, to, rep) (BOOL)SNDMSG(hwnd, ACM_PLAY, (WPARAM)(rep), (LPARAM)MAKELONG(from, to)) -// #define Animate_Stop(hwnd) (BOOL)SNDMSG(hwnd, ACM_STOP, 0, 0) -// #define Animate_Close(hwnd) Animate_Open(hwnd, NULL) -// #define Animate_Seek(hwnd, frame) Animate_Play(hwnd, frame, frame, 1) -// #endif - -// #endif // NOANIMATE - -// #if (_WIN32_IE >= 0x0300) - -// #ifndef NOMONTHCAL -// #ifdef _WIN32 - -const wchar[] MONTHCAL_CLASSW = "SysMonthCal32"; -const char[] MONTHCAL_CLASSA = "SysMonthCal32"; - -// #ifdef UNICODE -alias MONTHCAL_CLASSW MONTHCAL_CLASS; -// #else -// #... -// #endif - -alias DWORD MONTHDAYSTATE; -alias DWORD* LPMONTHDAYSTATE; - -enum : uint { MCM_FIRST = 0x1000 } - -enum : uint { MCM_GETCURSEL = MCM_FIRST + 1 } -// #define MonthCal_GetCurSel(hmc, pst) (BOOL)SNDMSG(hmc, MCM_GETCURSEL, 0, (LPARAM)(pst)) - -enum : uint { MCM_SETCURSEL = MCM_FIRST + 2 } -// #define MonthCal_SetCurSel(hmc, pst) (BOOL)SNDMSG(hmc, MCM_SETCURSEL, 0, (LPARAM)(pst)) - -enum : uint { MCM_GETMAXSELCOUNT = MCM_FIRST + 3 } -// #define MonthCal_GetMaxSelCount(hmc) (DWORD)SNDMSG(hmc, MCM_GETMAXSELCOUNT, 0, 0L) - -enum : uint { MCM_SETMAXSELCOUNT = MCM_FIRST + 4 } -// #define MonthCal_SetMaxSelCount(hmc, n) (BOOL)SNDMSG(hmc, MCM_SETMAXSELCOUNT, (WPARAM)(n), 0L) - -enum : uint { MCM_GETSELRANGE = MCM_FIRST + 5 } -// #define MonthCal_GetSelRange(hmc, rgst) SNDMSG(hmc, MCM_GETSELRANGE, 0, (LPARAM)(rgst)) - -enum : uint { MCM_SETSELRANGE = MCM_FIRST + 6 } -// #define MonthCal_SetSelRange(hmc, rgst) SNDMSG(hmc, MCM_SETSELRANGE, 0, (LPARAM)(rgst)) - -enum : uint { MCM_GETMONTHRANGE = MCM_FIRST + 7 } -// #define MonthCal_GetMonthRange(hmc, gmr, rgst) (DWORD)SNDMSG(hmc, MCM_GETMONTHRANGE, (WPARAM)(gmr), (LPARAM)(rgst)) - -enum : uint { MCM_SETDAYSTATE = MCM_FIRST + 8 } -// #define MonthCal_SetDayState(hmc, cbds, rgds) SNDMSG(hmc, MCM_SETDAYSTATE, (WPARAM)(cbds), (LPARAM)(rgds)) - -enum : uint { MCM_GETMINREQRECT = MCM_FIRST + 9 } -// #define MonthCal_GetMinReqRect(hmc, prc) SNDMSG(hmc, MCM_GETMINREQRECT, 0, (LPARAM)(prc)) - -enum : uint { MCM_SETCOLOR = MCM_FIRST + 10 } -// #define MonthCal_SetColor(hmc, iColor, clr) SNDMSG(hmc, MCM_SETCOLOR, iColor, clr) - -enum : uint { MCM_GETCOLOR = MCM_FIRST + 11 } -// #define MonthCal_GetColor(hmc, iColor) SNDMSG(hmc, MCM_GETCOLOR, iColor, 0) - -enum : uint { MCSC_BACKGROUND = 0 } -enum : uint { MCSC_TEXT = 1 } -enum : uint { MCSC_TITLEBK = 2 } -enum : uint { MCSC_TITLETEXT = 3 } -enum : uint { MCSC_MONTHBK = 4 } -enum : uint { MCSC_TRAILINGTEXT = 5 } - -enum : uint { MCM_SETTODAY = MCM_FIRST + 12 } -// #define MonthCal_SetToday(hmc, pst) SNDMSG(hmc, MCM_SETTODAY, 0, (LPARAM)(pst)) - -enum : uint { MCM_GETTODAY = MCM_FIRST + 13 } -// #define MonthCal_GetToday(hmc, pst) (BOOL)SNDMSG(hmc, MCM_GETTODAY, 0, (LPARAM)(pst)) - -enum : uint { MCM_HITTEST = MCM_FIRST + 14 } -// #define MonthCal_HitTest(hmc, pinfo) SNDMSG(hmc, MCM_HITTEST, 0, (LPARAM)(PMCHITTESTINFO)(pinfo)) - -struct _15 { - UINT cbSize; - POINT pt; - UINT uHit; - SYSTEMTIME st; -} -alias _15 MCHITTESTINFO; -alias _15* PMCHITTESTINFO; - -enum : uint { MCHT_TITLE = 0x00010000 } -enum : uint { MCHT_CALENDAR = 0x00020000 } -enum : uint { MCHT_TODAYLINK = 0x00030000 } - -enum : uint { MCHT_NEXT = 0x01000000 } -enum : uint { MCHT_PREV = 0x02000000 } - -enum : uint { MCHT_NOWHERE = 0x00000000 } - -enum : uint { MCHT_TITLEBK = MCHT_TITLE } -enum : uint { MCHT_TITLEMONTH = MCHT_TITLE | 0x0001 } -enum : uint { MCHT_TITLEYEAR = MCHT_TITLE | 0x0002 } -enum : uint { MCHT_TITLEBTNNEXT = MCHT_TITLE | MCHT_NEXT | 0x0003 } -enum : uint { MCHT_TITLEBTNPREV = MCHT_TITLE | MCHT_PREV | 0x0003 } - -enum : uint { MCHT_CALENDARBK = MCHT_CALENDAR } -enum : uint { MCHT_CALENDARDATE = MCHT_CALENDAR | 0x0001 } -enum : uint { MCHT_CALENDARDATENEXT = MCHT_CALENDARDATE | MCHT_NEXT } -enum : uint { MCHT_CALENDARDATEPREV = MCHT_CALENDARDATE | MCHT_PREV } -enum : uint { MCHT_CALENDARDAY = MCHT_CALENDAR | 0x0002 } -enum : uint { MCHT_CALENDARWEEKNUM = MCHT_CALENDAR | 0x0003 } - -enum : uint { MCM_SETFIRSTDAYOFWEEK = MCM_FIRST + 15 } -// #define MonthCal_SetFirstDayOfWeek(hmc, iDay) SNDMSG(hmc, MCM_SETFIRSTDAYOFWEEK, 0, iDay) - -enum : uint { MCM_GETFIRSTDAYOFWEEK = MCM_FIRST + 16 } -// #define MonthCal_GetFirstDayOfWeek(hmc) (DWORD)SNDMSG(hmc, MCM_GETFIRSTDAYOFWEEK, 0, 0) - -enum : uint { MCM_GETRANGE = MCM_FIRST + 17 } -// #define MonthCal_GetRange(hmc, rgst) (DWORD)SNDMSG(hmc, MCM_GETRANGE, 0, (LPARAM)(rgst)) - -enum : uint { MCM_SETRANGE = MCM_FIRST + 18 } -// #define MonthCal_SetRange(hmc, gd, rgst) (BOOL)SNDMSG(hmc, MCM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst)) - -enum : uint { MCM_GETMONTHDELTA = MCM_FIRST + 19 } -// #define MonthCal_GetMonthDelta(hmc) (int)SNDMSG(hmc, MCM_GETMONTHDELTA, 0, 0) - -enum : uint { MCM_SETMONTHDELTA = MCM_FIRST + 20 } -// #define MonthCal_SetMonthDelta(hmc, n) (int)SNDMSG(hmc, MCM_SETMONTHDELTA, n, 0) - -enum : uint { MCM_GETMAXTODAYWIDTH = MCM_FIRST + 21 } -// #define MonthCal_GetMaxTodayWidth(hmc) (DWORD)SNDMSG(hmc, MCM_GETMAXTODAYWIDTH, 0, 0) - -// #if (_WIN32_IE >= 0x0400) -alias CCM_SETUNICODEFORMAT MCM_SETUNICODEFORMAT; -// #define MonthCal_SetUnicodeFormat(hwnd, fUnicode) (BOOL)SNDMSG((hwnd), MCM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) - -alias CCM_GETUNICODEFORMAT MCM_GETUNICODEFORMAT; -// #define MonthCal_GetUnicodeFormat(hwnd) (BOOL)SNDMSG((hwnd), MCM_GETUNICODEFORMAT, 0, 0) -// #endif - -struct tagNMSELCHANGE { - NMHDR nmhdr; - - SYSTEMTIME stSelStart; - SYSTEMTIME stSelEnd; -} -alias tagNMSELCHANGE NMSELCHANGE; -alias tagNMSELCHANGE* LPNMSELCHANGE; - -enum : uint { MCN_SELCHANGE = MCN_FIRST + 1 } - -struct tagNMDAYSTATE { - NMHDR nmhdr; - - SYSTEMTIME stStart; - int cDayState; - LPMONTHDAYSTATE prgDayState; -} -alias tagNMDAYSTATE NMDAYSTATE; -alias tagNMDAYSTATE* LPNMDAYSTATE; - -enum : uint { MCN_GETDAYSTATE = MCN_FIRST + 3 } - -alias NMSELCHANGE NMSELECT; -alias NMSELCHANGE* LPNMSELECT; - -enum : uint { MCN_SELECT = MCN_FIRST + 4 } - -enum : uint { MCS_DAYSTATE = 0x0001 } -enum : uint { MCS_MULTISELECT = 0x0002 } -enum : uint { MCS_WEEKNUMBERS = 0x0004 } -// #if (_WIN32_IE >= 0x0400) -enum : uint { MCS_NOTODAYCIRCLE = 0x0008 } -enum : uint { MCS_NOTODAY = 0x0010 } -// #else -// #... -// #endif - -enum : uint { GMR_VISIBLE = 0 } -enum : uint { GMR_DAYSTATE = 1 } - -// #endif // _WIN32 -// #endif // NOMONTHCAL - -// #ifndef NODATETIMEPICK -// #ifdef _WIN32 - -const wchar[] DATETIMEPICK_CLASSW = "SysDateTimePick32"; -const char[] DATETIMEPICK_CLASSA = "SysDateTimePick32"; - -// #ifdef UNICODE -alias DATETIMEPICK_CLASSW DATETIMEPICK_CLASS; -// #else -// #... -// #endif - -enum : uint { DTM_FIRST = 0x1000 } - -enum : uint { DTM_GETSYSTEMTIME = DTM_FIRST + 1 } -// #define DateTime_GetSystemtime(hdp, pst) (DWORD)SNDMSG(hdp, DTM_GETSYSTEMTIME, 0, (LPARAM)(pst)) - -enum : uint { DTM_SETSYSTEMTIME = DTM_FIRST + 2 } -// #define DateTime_SetSystemtime(hdp, gd, pst) (BOOL)SNDMSG(hdp, DTM_SETSYSTEMTIME, (WPARAM)(gd), (LPARAM)(pst)) - -enum : uint { DTM_GETRANGE = DTM_FIRST + 3 } -// #define DateTime_GetRange(hdp, rgst) (DWORD)SNDMSG(hdp, DTM_GETRANGE, 0, (LPARAM)(rgst)) - -enum : uint { DTM_SETRANGE = DTM_FIRST + 4 } -// #define DateTime_SetRange(hdp, gd, rgst) (BOOL)SNDMSG(hdp, DTM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst)) - -enum : uint { DTM_SETFORMATA = DTM_FIRST + 5 } -enum : uint { DTM_SETFORMATW = DTM_FIRST + 50 } - -// #ifdef UNICODE -alias DTM_SETFORMATW DTM_SETFORMAT; -// #else -// #... -// #endif - -// #define DateTime_SetFormat(hdp, sz) (BOOL)SNDMSG(hdp, DTM_SETFORMAT, 0, (LPARAM)(sz)) - -enum : uint { DTM_SETMCCOLOR = DTM_FIRST + 6 } -// #define DateTime_SetMonthCalColor(hdp, iColor, clr) SNDMSG(hdp, DTM_SETMCCOLOR, iColor, clr) - -enum : uint { DTM_GETMCCOLOR = DTM_FIRST + 7 } -// #define DateTime_GetMonthCalColor(hdp, iColor) SNDMSG(hdp, DTM_GETMCCOLOR, iColor, 0) - -enum : uint { DTM_GETMONTHCAL = DTM_FIRST + 8 } -// #define DateTime_GetMonthCal(hdp) (HWND)SNDMSG(hdp, DTM_GETMONTHCAL, 0, 0) - -// #if (_WIN32_IE >= 0x0400) - -enum : uint { DTM_SETMCFONT = DTM_FIRST + 9 } -// #define DateTime_SetMonthCalFont(hdp, hfont, fRedraw) SNDMSG(hdp, DTM_SETMCFONT, (WPARAM)(hfont), (LPARAM)(fRedraw)) - -enum : uint { DTM_GETMCFONT = DTM_FIRST + 10 } -// #define DateTime_GetMonthCalFont(hdp) SNDMSG(hdp, DTM_GETMCFONT, 0, 0) - -// #endif // _WIN32_IE >= 0x0400 - -enum : uint { DTS_UPDOWN = 0x0001 } -enum : uint { DTS_SHOWNONE = 0x0002 } -enum : uint { DTS_SHORTDATEFORMAT = 0x0000 } -enum : uint { DTS_LONGDATEFORMAT = 0x0004 } -// #if (_WIN32_IE >= 0x500) -enum : uint { DTS_SHORTDATECENTURYFORMAT = 0x000C } -// #endif // (_WIN32_IE >= 0x500) -enum : uint { DTS_TIMEFORMAT = 0x0009 } -enum : uint { DTS_APPCANPARSE = 0x0010 } -enum : uint { DTS_RIGHTALIGN = 0x0020 } - -enum : uint { DTN_DATETIMECHANGE = DTN_FIRST + 1 } -struct tagNMDATETIMECHANGE { - NMHDR nmhdr; - DWORD dwFlags; - SYSTEMTIME st; -} -alias tagNMDATETIMECHANGE NMDATETIMECHANGE; -alias tagNMDATETIMECHANGE* LPNMDATETIMECHANGE; - -enum : uint { DTN_USERSTRINGA = DTN_FIRST + 2 } -enum : uint { DTN_USERSTRINGW = DTN_FIRST + 15 } -struct tagNMDATETIMESTRINGA { - NMHDR nmhdr; - LPCSTR pszUserString; - SYSTEMTIME st; - DWORD dwFlags; -} -alias tagNMDATETIMESTRINGA NMDATETIMESTRINGA; -alias tagNMDATETIMESTRINGA* LPNMDATETIMESTRINGA; - -struct tagNMDATETIMESTRINGW { - NMHDR nmhdr; - LPCWSTR pszUserString; - SYSTEMTIME st; - DWORD dwFlags; -} -alias tagNMDATETIMESTRINGW NMDATETIMESTRINGW; -alias tagNMDATETIMESTRINGW* LPNMDATETIMESTRINGW; - -// #ifdef UNICODE -alias DTN_USERSTRINGW DTN_USERSTRING; -alias NMDATETIMESTRINGW NMDATETIMESTRING; -alias LPNMDATETIMESTRINGW LPNMDATETIMESTRING; -// #else -// #... -// #... -// #... -// #endif - -enum : uint { DTN_WMKEYDOWNA = DTN_FIRST + 3 } -enum : uint { DTN_WMKEYDOWNW = DTN_FIRST + 16 } -struct tagNMDATETIMEWMKEYDOWNA { - NMHDR nmhdr; - int nVirtKey; - LPCSTR pszFormat; - SYSTEMTIME st; -} -alias tagNMDATETIMEWMKEYDOWNA NMDATETIMEWMKEYDOWNA; -alias tagNMDATETIMEWMKEYDOWNA* LPNMDATETIMEWMKEYDOWNA; - -struct tagNMDATETIMEWMKEYDOWNW { - NMHDR nmhdr; - int nVirtKey; - LPCWSTR pszFormat; - SYSTEMTIME st; -} -alias tagNMDATETIMEWMKEYDOWNW NMDATETIMEWMKEYDOWNW; -alias tagNMDATETIMEWMKEYDOWNW* LPNMDATETIMEWMKEYDOWNW; - -// #ifdef UNICODE -alias DTN_WMKEYDOWNW DTN_WMKEYDOWN; -alias NMDATETIMEWMKEYDOWNW NMDATETIMEWMKEYDOWN; -alias LPNMDATETIMEWMKEYDOWNW LPNMDATETIMEWMKEYDOWN; -// #else -// #... -// #... -// #... -// #endif - -enum : uint { DTN_FORMATA = DTN_FIRST + 4 } -enum : uint { DTN_FORMATW = DTN_FIRST + 17 } -struct tagNMDATETIMEFORMATA { - NMHDR nmhdr; - LPCSTR pszFormat; - SYSTEMTIME st; - LPCSTR pszDisplay; - CHAR szDisplay[64]; -} -alias tagNMDATETIMEFORMATA NMDATETIMEFORMATA; -alias tagNMDATETIMEFORMATA* LPNMDATETIMEFORMATA; - -struct tagNMDATETIMEFORMATW { - NMHDR nmhdr; - LPCWSTR pszFormat; - SYSTEMTIME st; - LPCWSTR pszDisplay; - WCHAR szDisplay[64]; -} -alias tagNMDATETIMEFORMATW NMDATETIMEFORMATW; -alias tagNMDATETIMEFORMATW* LPNMDATETIMEFORMATW; - -// #ifdef UNICODE -alias DTN_FORMATW DTN_FORMAT; -alias NMDATETIMEFORMATW NMDATETIMEFORMAT; -alias LPNMDATETIMEFORMATW LPNMDATETIMEFORMAT; -// #else -// #... -// #... -// #... -// #endif - -enum : uint { DTN_FORMATQUERYA = DTN_FIRST + 5 } -enum : uint { DTN_FORMATQUERYW = DTN_FIRST + 18 } -struct tagNMDATETIMEFORMATQUERYA { - NMHDR nmhdr; - LPCSTR pszFormat; - SIZE szMax; -} -alias tagNMDATETIMEFORMATQUERYA NMDATETIMEFORMATQUERYA; -alias tagNMDATETIMEFORMATQUERYA* LPNMDATETIMEFORMATQUERYA; - -struct tagNMDATETIMEFORMATQUERYW { - NMHDR nmhdr; - LPCWSTR pszFormat; - SIZE szMax; -} -alias tagNMDATETIMEFORMATQUERYW NMDATETIMEFORMATQUERYW; -alias tagNMDATETIMEFORMATQUERYW* LPNMDATETIMEFORMATQUERYW; - -// #ifdef UNICODE -alias DTN_FORMATQUERYW DTN_FORMATQUERY; -alias NMDATETIMEFORMATQUERYW NMDATETIMEFORMATQUERY; -alias LPNMDATETIMEFORMATQUERYW LPNMDATETIMEFORMATQUERY; -// #else -// #... -// #... -// #... -// #endif - -enum : uint { DTN_DROPDOWN = DTN_FIRST + 6 } -enum : uint { DTN_CLOSEUP = DTN_FIRST + 7 } - -enum : uint { GDTR_MIN = 0x0001 } -enum : uint { GDTR_MAX = 0x0002 } - -enum { GDT_ERROR = -1 } -enum : uint { GDT_VALID = 0 } -enum : uint { GDT_NONE = 1 } - -// #endif // _WIN32 -// #endif // NODATETIMEPICK - -// #if (_WIN32_IE >= 0x0400) - -// #ifndef NOIPADDRESS - -enum : uint { IPM_CLEARADDRESS = WM_USER+100 } -enum : uint { IPM_SETADDRESS = WM_USER+101 } -enum : uint { IPM_GETADDRESS = WM_USER+102 } -enum : uint { IPM_SETRANGE = WM_USER+103 } -enum : uint { IPM_SETFOCUS = WM_USER+104 } -enum : uint { IPM_ISBLANK = WM_USER+105 } - -const wchar[] WC_IPADDRESSW = "SysIPAddress32"; -const char[] WC_IPADDRESSA = "SysIPAddress32"; - -// #ifdef UNICODE -alias WC_IPADDRESSW WC_IPADDRESS; -// #else -// #... -// #endif - -enum : uint { IPN_FIELDCHANGED = IPN_FIRST - 0 } -struct tagNMIPADDRESS { - NMHDR hdr; - int iField; - int iValue; -} -alias tagNMIPADDRESS NMIPADDRESS; -alias tagNMIPADDRESS* LPNMIPADDRESS; - -// #define MAKEIPRANGE(low, high) ((LPARAM)(WORD)(((BYTE)(high) << 8) + (BYTE)(low))) - -// #define MAKEIPADDRESS(b1,b2,b3,b4) ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<<16)+((DWORD)(b3)<<8)+((DWORD)(b4)))) - -// #define FIRST_IPADDRESS(x) ((x>>24) & 0xff) -// #define SECOND_IPADDRESS(x) ((x>>16) & 0xff) -// #define THIRD_IPADDRESS(x) ((x>>8) & 0xff) -// #define FOURTH_IPADDRESS(x) (x & 0xff) - -// #endif // NOIPADDRESS - -// #ifndef NOPAGESCROLLER - -const wchar[] WC_PAGESCROLLERW = "SysPager"; -const char[] WC_PAGESCROLLERA = "SysPager"; - -// #ifdef UNICODE -alias WC_PAGESCROLLERW WC_PAGESCROLLER; -// #else -// #... -// #endif - -enum : uint { PGS_VERT = 0x00000000 } -enum : uint { PGS_HORZ = 0x00000001 } -enum : uint { PGS_AUTOSCROLL = 0x00000002 } -enum : uint { PGS_DRAGNDROP = 0x00000004 } - -enum : uint { PGF_INVISIBLE = 0 } -enum : uint { PGF_NORMAL = 1 } -enum : uint { PGF_GRAYED = 2 } -enum : uint { PGF_DEPRESSED = 4 } -enum : uint { PGF_HOT = 8 } - -enum : uint { PGB_TOPORLEFT = 0 } -enum : uint { PGB_BOTTOMORRIGHT = 1 } - -enum : uint { PGM_SETCHILD = PGM_FIRST + 1 } -// #define Pager_SetChild(hwnd, hwndChild) (void)SNDMSG((hwnd), PGM_SETCHILD, 0, (LPARAM)(hwndChild)) - -enum : uint { PGM_RECALCSIZE = PGM_FIRST + 2 } -// #define Pager_RecalcSize(hwnd) (void)SNDMSG((hwnd), PGM_RECALCSIZE, 0, 0) - -enum : uint { PGM_FORWARDMOUSE = PGM_FIRST + 3 } -// #define Pager_ForwardMouse(hwnd, bForward) (void)SNDMSG((hwnd), PGM_FORWARDMOUSE, (WPARAM)(bForward), 0) - -enum : uint { PGM_SETBKCOLOR = PGM_FIRST + 4 } -// #define Pager_SetBkColor(hwnd, clr) (COLORREF)SNDMSG((hwnd), PGM_SETBKCOLOR, 0, (LPARAM)(clr)) - -enum : uint { PGM_GETBKCOLOR = PGM_FIRST + 5 } -// #define Pager_GetBkColor(hwnd) (COLORREF)SNDMSG((hwnd), PGM_GETBKCOLOR, 0, 0) - -enum : uint { PGM_SETBORDER = PGM_FIRST + 6 } -// #define Pager_SetBorder(hwnd, iBorder) (int)SNDMSG((hwnd), PGM_SETBORDER, 0, (LPARAM)(iBorder)) - -enum : uint { PGM_GETBORDER = PGM_FIRST + 7 } -// #define Pager_GetBorder(hwnd) (int)SNDMSG((hwnd), PGM_GETBORDER, 0, 0) - -enum : uint { PGM_SETPOS = PGM_FIRST + 8 } -// #define Pager_SetPos(hwnd, iPos) (int)SNDMSG((hwnd), PGM_SETPOS, 0, (LPARAM)(iPos)) - -enum : uint { PGM_GETPOS = PGM_FIRST + 9 } -// #define Pager_GetPos(hwnd) (int)SNDMSG((hwnd), PGM_GETPOS, 0, 0) - -enum : uint { PGM_SETBUTTONSIZE = PGM_FIRST + 10 } -// #define Pager_SetButtonSize(hwnd, iSize) (int)SNDMSG((hwnd), PGM_SETBUTTONSIZE, 0, (LPARAM)(iSize)) - -enum : uint { PGM_GETBUTTONSIZE = PGM_FIRST + 11 } -// #define Pager_GetButtonSize(hwnd) (int)SNDMSG((hwnd), PGM_GETBUTTONSIZE, 0,0) - -enum : uint { PGM_GETBUTTONSTATE = PGM_FIRST + 12 } -// #define Pager_GetButtonState(hwnd, iButton) (DWORD)SNDMSG((hwnd), PGM_GETBUTTONSTATE, 0, (LPARAM)(iButton)) - -alias CCM_GETDROPTARGET PGM_GETDROPTARGET; -// #define Pager_GetDropTarget(hwnd, ppdt) (void)SNDMSG((hwnd), PGM_GETDROPTARGET, 0, (LPARAM)(ppdt)) - -enum : uint { PGN_SCROLL = PGN_FIRST-1 } - -enum : uint { PGF_SCROLLUP = 1 } -enum : uint { PGF_SCROLLDOWN = 2 } -enum : uint { PGF_SCROLLLEFT = 4 } -enum : uint { PGF_SCROLLRIGHT = 8 } - -enum : uint { PGK_SHIFT = 1 } -enum : uint { PGK_CONTROL = 2 } -enum : uint { PGK_MENU = 4 } - -// #ifdef _WIN32 -align(1): -// #endif - -struct _16 { - NMHDR hdr; - WORD fwKeys; - RECT rcParent; - int iDir; - int iXpos; - int iYpos; - int iScroll; -} -alias _16 NMPGSCROLL; -alias _16* LPNMPGSCROLL; - -// #ifdef _WIN32 -align: -// #endif - -enum : uint { PGN_CALCSIZE = PGN_FIRST-2 } - -enum : uint { PGF_CALCWIDTH = 1 } -enum : uint { PGF_CALCHEIGHT = 2 } - -struct _17 { - NMHDR hdr; - DWORD dwFlag; - int iWidth; - int iHeight; -} -alias _17 NMPGCALCSIZE; -alias _17* LPNMPGCALCSIZE; - -enum : uint { PGN_HOTITEMCHANGE = PGN_FIRST-3 } - -struct tagNMPGHOTITEM { - NMHDR hdr; - int idOld; - int idNew; - DWORD dwFlags; -} -alias tagNMPGHOTITEM NMPGHOTITEM; -alias tagNMPGHOTITEM* LPNMPGHOTITEM; - -// #endif // NOPAGESCROLLER - -// #ifndef NONATIVEFONTCTL - -const wchar[] WC_NATIVEFONTCTLW = "NativeFontCtl"; -const char[] WC_NATIVEFONTCTLA = "NativeFontCtl"; - -// #ifdef UNICODE -alias WC_NATIVEFONTCTLW WC_NATIVEFONTCTL; -// #else -// #... -// #endif - -enum : uint { NFS_EDIT = 0x0001 } -enum : uint { NFS_STATIC = 0x0002 } -enum : uint { NFS_LISTCOMBO = 0x0004 } -enum : uint { NFS_BUTTON = 0x0008 } -enum : uint { NFS_ALL = 0x0010 } -enum : uint { NFS_USEFONTASSOC = 0x0020 } - -// #endif // NONATIVEFONTCTL - -// #ifndef NOBUTTON - -// #ifdef _WIN32 - -const char[] WC_BUTTONA = "Button"; -const wchar[] WC_BUTTONW = "Button"; - -// #ifdef UNICODE -alias WC_BUTTONW WC_BUTTON; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { BUTTON_IMAGELIST_ALIGN_LEFT = 0 } -enum : uint { BUTTON_IMAGELIST_ALIGN_RIGHT = 1 } -enum : uint { BUTTON_IMAGELIST_ALIGN_TOP = 2 } -enum : uint { BUTTON_IMAGELIST_ALIGN_BOTTOM = 3 } -enum : uint { BUTTON_IMAGELIST_ALIGN_CENTER = 4 } - -struct _18 { - HIMAGELIST himl; - RECT margin; - UINT uAlign; -} -alias _18 BUTTON_IMAGELIST; -alias _18* PBUTTON_IMAGELIST; - -enum : uint { BCM_GETIDEALSIZE = BCM_FIRST + 0x0001 } -// #define Button_GetIdealSize(hwnd, psize) (BOOL)SNDMSG((hwnd), BCM_GETIDEALSIZE, 0, (LPARAM)(psize)) - -enum : uint { BCM_SETIMAGELIST = BCM_FIRST + 0x0002 } -// #define Button_SetImageList(hwnd, pbuttonImagelist) (BOOL)SNDMSG((hwnd), BCM_SETIMAGELIST, 0, (LPARAM)(pbuttonImagelist)) - -enum : uint { BCM_GETIMAGELIST = BCM_FIRST + 0x0003 } -// #define Button_GetImageList(hwnd, pbuttonImagelist) (BOOL)SNDMSG((hwnd), BCM_GETIMAGELIST, 0, (LPARAM)(pbuttonImagelist)) - -enum : uint { BCM_SETTEXTMARGIN = BCM_FIRST + 0x0004 } -// #define Button_SetTextMargin(hwnd, pmargin) (BOOL)SNDMSG((hwnd), BCM_SETTEXTMARGIN, 0, (LPARAM)(pmargin)) -enum : uint { BCM_GETTEXTMARGIN = BCM_FIRST + 0x0005 } -// #define Button_GetTextMargin(hwnd, pmargin) (BOOL)SNDMSG((hwnd), BCM_GETTEXTMARGIN, 0, (LPARAM)(pmargin)) - -struct tagNMBCHOTITEM { - NMHDR hdr; - DWORD dwFlags; -} -alias tagNMBCHOTITEM NMBCHOTITEM; -alias tagNMBCHOTITEM* LPNMBCHOTITEM; - -enum : uint { BCN_HOTITEMCHANGE = BCN_FIRST + 0x0001 } - -enum : uint { BST_HOT = 0x0200 } - -// #endif - -// #endif // NOBUTTON - -// #ifndef NOSTATIC - -// #ifdef _WIN32 - -const char[] WC_STATICA = "Static"; -const wchar[] WC_STATICW = "Static"; - -// #ifdef UNICODE -alias WC_STATICW WC_STATIC; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -// #endif // NOSTATIC - -// #ifndef NOEDIT - -// #ifdef _WIN32 - -const char[] WC_EDITA = "Edit"; -const wchar[] WC_EDITW = "Edit"; - -// #ifdef UNICODE -alias WC_EDITW WC_EDIT; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -// #if (_WIN32_WINNT >= 0x501) -enum : uint { EM_SETCUEBANNER = ECM_FIRST + 1 } -// #define Edit_SetCueBannerText(hwnd, lpcwText) (BOOL)SNDMSG((hwnd), EM_SETCUEBANNER, 0, (LPARAM)(lpcwText)) -enum : uint { EM_GETCUEBANNER = ECM_FIRST + 2 } -// #define Edit_GetCueBannerText(hwnd, lpwText, cchText) (BOOL)SNDMSG((hwnd), EM_GETCUEBANNER, (WPARAM)(lpwText), (LPARAM)(cchText)) - -struct _tagEDITBALLOONTIP { - DWORD cbStruct; - LPCWSTR pszTitle; - LPCWSTR pszText; - INT ttiIcon; -} -alias _tagEDITBALLOONTIP EDITBALLOONTIP; -alias _tagEDITBALLOONTIP* PEDITBALLOONTIP; - -enum : uint { EM_SHOWBALLOONTIP = ECM_FIRST + 3 } -// #define Edit_ShowBalloonTip(hwnd, peditballoontip) (BOOL)SNDMSG((hwnd), EM_SHOWBALLOONTIP, 0, (LPARAM)(peditballoontip)) -enum : uint { EM_HIDEBALLOONTIP = ECM_FIRST + 4 } -// #define Edit_HideBalloonTip(hwnd) (BOOL)SNDMSG((hwnd), EM_HIDEBALLOONTIP, 0, 0) -// #endif - -// #endif // NOEDIT - -// #ifndef NOLISTBOX - -// #ifdef _WIN32 - -const char[] WC_LISTBOXA = "ListBox"; -const wchar[] WC_LISTBOXW = "ListBox"; - -// #ifdef UNICODE -alias WC_LISTBOXW WC_LISTBOX; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -// #endif // NOLISTBOX - -// #ifndef NOCOMBOBOX - -// #ifdef _WIN32 - -const char[] WC_COMBOBOXA = "ComboBox"; -const wchar[] WC_COMBOBOXW = "ComboBox"; - -// #ifdef UNICODE -alias WC_COMBOBOXW WC_COMBOBOX; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -// #endif // NOCOMBOBOX - -// #if (_WIN32_WINNT >= 0x501) - -enum : uint { CB_SETMINVISIBLE = CBM_FIRST + 1 } -enum : uint { CB_GETMINVISIBLE = CBM_FIRST + 2 } - -// #define ComboBox_SetMinVisible(hwnd, iMinVisible) (BOOL)SNDMSG((hwnd), CB_SETMINVISIBLE, (WPARAM)iMinVisible, 0) - -// #define ComboBox_GetMinVisible(hwnd) (int)SNDMSG((hwnd), CB_GETMINVISIBLE, 0, 0) - -// #endif - -// #ifndef NOSCROLLBAR - -// #ifdef _WIN32 - -const char[] WC_SCROLLBARA = "ScrollBar"; -const wchar[] WC_SCROLLBARW = "ScrollBar"; - -// #ifdef UNICODE -alias WC_SCROLLBARW WC_SCROLLBAR; -// #else -// #... -// #endif - -// #else -// #... -// #endif - -// #endif // NOSCROLLBAR - -// #ifdef _WIN32 -// #if (_WIN32_WINNT >= 0x501) - -enum { INVALID_LINK_INDEX = -1 } -enum : uint { MAX_LINKID_TEXT = 48 } -enum { L_MAX_URL_LENGTH = 2048 + 32 + 4 } - -const wchar[] WC_LINK = "SysLink"; - -enum : uint { LWS_TRANSPARENT = 0x0001 } -enum : uint { LWS_IGNORERETURN = 0x0002 } - -enum : uint { LIF_ITEMINDEX = 0x00000001 } -enum : uint { LIF_STATE = 0x00000002 } -enum : uint { LIF_ITEMID = 0x00000004 } -enum : uint { LIF_URL = 0x00000008 } - -enum : uint { LIS_FOCUSED = 0x00000001 } -enum : uint { LIS_ENABLED = 0x00000002 } -enum : uint { LIS_VISITED = 0x00000004 } - -struct tagLITEM { - UINT mask ; - int iLink ; - UINT state ; - UINT stateMask ; - WCHAR szID[MAX_LINKID_TEXT] ; - WCHAR szUrl[L_MAX_URL_LENGTH] ; -} -alias tagLITEM LITEM; -alias tagLITEM* PLITEM; - -struct tagLHITTESTINFO { - POINT pt ; - LITEM item ; -} -alias tagLHITTESTINFO LHITTESTINFO; -alias tagLHITTESTINFO* PLHITTESTINFO; - -struct tagNMLINK { - NMHDR hdr; - LITEM item ; -} -alias tagNMLINK NMLINK; -alias tagNMLINK* PNMLINK; - -enum : uint { LM_HITTEST = WM_USER+0x300 } -enum : uint { LM_GETIDEALHEIGHT = WM_USER+0x301 } -enum : uint { LM_SETITEM = WM_USER+0x302 } -enum : uint { LM_GETITEM = WM_USER+0x303 } - -// #endif -// #endif // _WIN32 - -// #ifndef NOMUI -extern(Windows) export void InitMUILanguage(LANGID uiLang); - -extern(Windows) export LANGID GetMUILanguage(); -// #endif // NOMUI - -// #endif // _WIN32_IE >= 0x0400 - -// #ifdef _WIN32 - -// #ifndef NOTRACKMOUSEEVENT - -// #ifndef WM_MOUSEHOVER -// #... -// #... -// #endif - -// #ifndef TME_HOVER - -enum : uint { TME_HOVER = 0x00000001 } -enum : uint { TME_LEAVE = 0x00000002 } -// #if (WINVER >= 0x0500) -enum : uint { TME_NONCLIENT = 0x00000010 } -// #endif /* WINVER >= 0x0500 */ -enum : uint { TME_QUERY = 0x40000000 } -enum : uint { TME_CANCEL = 0x80000000 } - -enum : uint { HOVER_DEFAULT = 0xFFFFFFFF } - -struct tagTRACKMOUSEEVENT { - DWORD cbSize; - DWORD dwFlags; - HWND hwndTrack; - DWORD dwHoverTime; -} -alias tagTRACKMOUSEEVENT TRACKMOUSEEVENT; -alias tagTRACKMOUSEEVENT* LPTRACKMOUSEEVENT; - -// #endif // !TME_HOVER - -extern(Windows) export BOOL _TrackMouseEvent( - LPTRACKMOUSEEVENT lpEventTrack); - -// #endif // !NOTRACKMOUSEEVENT - -// #if (_WIN32_IE >= 0x0400) - -// #ifndef NOFLATSBAPIS - -enum : uint { WSB_PROP_CYVSCROLL = 0x00000001 } -enum : uint { WSB_PROP_CXHSCROLL = 0x00000002 } -enum : uint { WSB_PROP_CYHSCROLL = 0x00000004 } -enum : uint { WSB_PROP_CXVSCROLL = 0x00000008 } -enum : uint { WSB_PROP_CXHTHUMB = 0x00000010 } -enum : uint { WSB_PROP_CYVTHUMB = 0x00000020 } -enum : uint { WSB_PROP_VBKGCOLOR = 0x00000040 } -enum : uint { WSB_PROP_HBKGCOLOR = 0x00000080 } -enum : uint { WSB_PROP_VSTYLE = 0x00000100 } -enum : uint { WSB_PROP_HSTYLE = 0x00000200 } -enum : uint { WSB_PROP_WINSTYLE = 0x00000400 } -enum : uint { WSB_PROP_PALETTE = 0x00000800 } -enum : uint { WSB_PROP_MASK = 0x00000FFF } - -enum : uint { FSB_FLAT_MODE = 2 } -enum : uint { FSB_ENCARTA_MODE = 1 } -enum : uint { FSB_REGULAR_MODE = 0 } - -extern(Windows) export BOOL FlatSB_EnableScrollBar(HWND, int, UINT); -extern(Windows) export BOOL FlatSB_ShowScrollBar(HWND, int code, BOOL); - -extern(Windows) export BOOL FlatSB_GetScrollRange(HWND, int code, LPINT, LPINT); -extern(Windows) export BOOL FlatSB_GetScrollInfo(HWND, int code, LPSCROLLINFO); - -extern(Windows) export int FlatSB_GetScrollPos(HWND, int code); - -extern(Windows) export BOOL FlatSB_GetScrollProp(HWND, int propIndex, LPINT); -// #ifdef _WIN64 -// ... -// #else -alias FlatSB_GetScrollProp FlatSB_GetScrollPropPtr; -// #endif - -extern(Windows) export int FlatSB_SetScrollPos(HWND, int code, int pos, BOOL fRedraw); - -extern(Windows) export int FlatSB_SetScrollInfo(HWND, int code, LPSCROLLINFO, BOOL fRedraw); - -extern(Windows) export int FlatSB_SetScrollRange(HWND, int code, int min, int max, BOOL fRedraw); -extern(Windows) export BOOL FlatSB_SetScrollProp(HWND, UINT index, INT_PTR newValue, BOOL); -alias FlatSB_SetScrollProp FlatSB_SetScrollPropPtr; - -extern(Windows) export BOOL InitializeFlatSB(HWND); -extern(Windows) export HRESULT UninitializeFlatSB(HWND); - -// #endif // NOFLATSBAPIS - -// #endif // _WIN32_IE >= 0x0400 - -// #endif /* _WIN32 */ - -// #endif // _WIN32_IE >= 0x0300 - -// #if (_WIN32_WINNT >= 0x501) - -extern(Windows) alias LRESULT function(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData) SUBCLASSPROC; - -extern(Windows) export BOOL SetWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, UINT_PTR uIdSubclass, - DWORD_PTR dwRefData); -extern(Windows) export BOOL GetWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, UINT_PTR uIdSubclass, - DWORD_PTR *pdwRefData); -extern(Windows) export BOOL RemoveWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, - UINT_PTR uIdSubclass); - -extern(Windows) export LRESULT DefSubclassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); -// #endif - -// #if (_WIN32_WINNT >= 0x501) - -extern(Windows) export int DrawShadowText(HDC hdc, LPCWSTR pszText, UINT cch, RECT* prc, DWORD dwFlags, COLORREF crText, COLORREF crShadow, - int ixOffset, int iyOffset); -// #endif - -// #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */ -// #if ISOLATION_AWARE_ENABLED - -// #if !defined(ISOLATION_AWARE_INLINE) -// #if defined(__cplusplus) -// #... -// #else -// #... -// #endif -// #endif - -// ... - -// ... -// #if defined(__IStream_INTERFACE_DEFINED__) -// ... -// #if defined(__IStream_INTERFACE_DEFINED__) && (_WIN32_WINNT >= 0x0501) -// ... -// #endif /* defined(__IStream_INTERFACE_DEFINED__) && (_WIN32_WINNT >= 0x0501) */ -// #endif /* defined(__IStream_INTERFACE_DEFINED__) */ -// ... -// #if !defined(NOTRACKMOUSEEVENT) -// ... -// #endif /* !defined(NOTRACKMOUSEEVENT) */ -// ... -// #if (_WIN32_IE >= 0x560) -// ... -// #endif /* (_WIN32_IE >= 0x560) */ -// ... - -// #if defined(UNICODE) - -// #... -// #... -// #... - -// #else /* UNICODE */ - -// #... -// #... -// #... - -// #endif /* UNICODE */ - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #if defined(__IStream_INTERFACE_DEFINED__) - -// ... - -// ... - -// #if defined(__IStream_INTERFACE_DEFINED__) && (_WIN32_WINNT >= 0x0501) - -// ... - -// ... - -// ... - -// ... - -// #endif /* defined(__IStream_INTERFACE_DEFINED__) && (_WIN32_WINNT >= 0x0501) */ -// #endif /* defined(__IStream_INTERFACE_DEFINED__) */ - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #if !defined(NOTRACKMOUSEEVENT) - -// ... - -// #endif /* !defined(NOTRACKMOUSEEVENT) */ - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... -// #if defined(_WIN64) -// ... -// #else -// ... -// #endif -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #if (_WIN32_IE >= 0x560) - -// ... - -// ... - -// ... - -// #endif /* (_WIN32_IE >= 0x560) */ - -// ... - -// ... - -// ... - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #if defined(FlatSB_GetScrollPropPtr) -// #... -// #endif -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #endif /* ISOLATION_AWARE_ENABLED */ -// #endif /* RC */ - -// #ifdef __cplusplus -// } -// #endif - -// #endif - -// #endif // _INC_COMMCTRL - +/***********************************************************************\ +* commctrl.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.12 * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.commctrl; +pragma(lib, "comctl32.lib"); + +private import win32.w32api, win32.windef, win32.winuser; +private import win32.winbase; // for SYSTEMTIME +private import win32.objfwd; // for LPSTREAM + +import win32.prsht; + +const COMCTL32_VERSION = 6; + +const TCHAR[] + DRAGLISTMSGSTRING = "commctrl_DragListMsg", + HOTKEY_CLASS = "msctls_hotkey32", + PROGRESS_CLASS = "msctls_progress32", + STATUSCLASSNAME = "msctls_statusbar32", + TOOLBARCLASSNAME = "ToolbarWindow32", + TOOLTIPS_CLASS = "tooltips_class32", + TRACKBAR_CLASS = "msctls_trackbar32", + UPDOWN_CLASS = "msctls_updown32", + ANIMATE_CLASS = "SysAnimate32", + DATETIMEPICK_CLASS = "SysDateTimePick32", + MONTHCAL_CLASS = "SysMonthCal32", + REBARCLASSNAME = "ReBarWindow32", + WC_COMBOBOXEX = "ComboBoxEx32", + WC_IPADDRESS = "SysIPAddress32", + WC_LISTVIEW = "SysListView32", + WC_TABCONTROL = "SysTabControl32", + WC_TREEVIEW = "SysTreeView32", + WC_HEADER = "SysHeader32", + WC_PAGESCROLLER = "SysPager", + WC_NATIVEFONTCTL = "NativeFontCtl", + WC_BUTTON = "Button", + WC_STATIC = "Static", + WC_EDIT = "Edit", + WC_LISTBOX = "ListBox", + WC_COMBOBOX = "ComboBox", + WC_SCROLLBAR = "ScrollBar", + WC_LINKA = "SysLink"; + +enum { + LVM_FIRST = 0x1000, + TV_FIRST = 0x1100, + HDM_FIRST = 0x1200 +} + +enum { + ACM_OPENA = WM_USER + 100, + ACM_PLAY = WM_USER + 101, + ACM_STOP = WM_USER + 102, + ACM_OPENW = WM_USER + 103 +} + +enum { + ACN_START = 1, + ACN_STOP +} + +enum { + CBEIF_TEXT = 0x00000001, + CBEIF_IMAGE = 0x00000002, + CBEIF_SELECTEDIMAGE = 0x00000004, + CBEIF_OVERLAY = 0x00000008, + CBEIF_INDENT = 0x00000010, + CBEIF_LPARAM = 0x00000020, + CBEIF_DI_SETITEM = 0x10000000 +} + +enum { + RBN_FIRST = -831U, + RBN_LAST = -859U, + MCN_FIRST = -750U, + MCN_LAST = -759U, + DTN_FIRST = -760U, + DTN_LAST = -799U, + CBEN_FIRST = -800U, + CBEN_LAST = -830U +} + +enum { + CBEN_INSERTITEM = CBEN_FIRST - 1, + CBEN_DELETEITEM = CBEN_FIRST - 2, + CBEN_BEGINEDIT = CBEN_FIRST - 4, + CBEN_ENDEDITA = CBEN_FIRST - 5, + CBEN_ENDEDITW = CBEN_FIRST - 6 +} + +enum { + CBENF_KILLFOCUS = 1, + CBENF_RETURN, + CBENF_ESCAPE, + CBENF_DROPDOWN // = 4 +} + +const CBEMAXSTRLEN = 260; + +enum { + DL_BEGINDRAG = 1157, + DL_CANCELDRAG = 1160, + DL_DRAGGING = 1158, + DL_DROPPED = 1159, + DL_CURSORSET = 0, + DL_STOPCURSOR = 1, + DL_COPYCURSOR = 2, + DL_MOVECURSOR = 3 +} + +enum { + CCS_TOP = 1, + CCS_NOMOVEY = 2, + CCS_BOTTOM = 3, + CCS_NORESIZE = 4, + CCS_NOPARENTALIGN = 8, + CCS_ADJUSTABLE = 32, + CCS_NODIVIDER = 64 +} +static if (_WIN32_IE >= 0x300) { + enum { + CCS_VERT = 128, + CCS_LEFT = 129, + CCS_NOMOVEX = 130, + CCS_RIGHT = 131 + } +} + +enum { + ACS_CENTER = 0x0001, + ACS_TRANSPARENT = 0x0002, + ACS_AUTOPLAY = 0x0004, + ACS_TIMER = 0x0008 +} + +enum { + PGS_VERT = 0x00000000, + PGS_HORZ = 0x00000001, + PGS_AUTOSCROLL = 0x00000002, + PGS_DRAGNDROP = 0x00000004 +} + +const CMB_MASKED = 2; + +const MINSYSCOMMAND = SC_SIZE; + +enum { + SBT_OWNERDRAW = 0x1000, + SBT_NOBORDERS = 256, + SBT_POPOUT = 512, + SBT_RTLREADING = 1024 +} + +enum { + SB_SETTEXTA = WM_USER + 1, + SB_SETTEXTW = WM_USER + 11, + SB_GETTEXTA = WM_USER + 2, + SB_GETTEXTW = WM_USER + 13, + SB_GETTEXTLENGTHA = WM_USER + 3, + SB_GETTEXTLENGTHW = WM_USER + 12, + SB_SETPARTS = WM_USER + 4, + SB_GETPARTS = WM_USER + 6, + SB_GETBORDERS = WM_USER + 7, + SB_SETMINHEIGHT = WM_USER + 8, + SB_SIMPLE = WM_USER + 9, + SB_GETRECT = WM_USER + 10 +} + +enum { + MSGF_COMMCTRL_BEGINDRAG = 0x4200, + MSGF_COMMCTRL_SIZEHEADER = 0x4201, + MSGF_COMMCTRL_DRAGSELECT = 0x4202, + MSGF_COMMCTRL_TOOLBARCUST = 0x4203 +} + +enum { + ILC_COLOR = 0, + ILC_COLOR4 = 4, + ILC_COLOR8 = 8, + ILC_COLOR16 = 16, + ILC_COLOR24 = 24, + ILC_COLOR32 = 32, + ILC_COLORDDB = 254, + ILC_MASK = 1, + ILC_PALETTE = 2048 +} + +enum { + ILCF_MOVE, + ILCF_SWAP +} + +enum { + ILS_NORMAL = 0, + ILS_GLOW = 1, + ILS_SHADOW = 2, + ILS_SATURATE = 4, + ILS_ALPHA = 8, + ILD_BLEND25 = 2, + ILD_BLEND50 = 4, + ILD_SELECTED = 4, + ILD_BLEND = 4, + ILD_FOCUS = 2, + ILD_MASK = 16, + ILD_NORMAL = 0, + ILD_TRANSPARENT = 1, + ILD_IMAGE = 0x0020, + ILD_ROP = 0x0040, + ILD_OVERLAYMASK = 0x0F00, + ILD_PRESERVEALPHA = 0x1000, + ILD_SCALE = 0x2000, + ILD_DPISCALE = 0x4000 +} + +enum { + HDS_HORZ = 0, + HDS_BUTTONS = 2, + HDS_HIDDEN = 8 +} +static if (_WIN32_IE >= 0x400) { + enum { + HDS_HOTTRACK = 4, + HDS_DRAGDROP = 0x0040, + HDS_FULLDRAG = 0x0080 + } +} +static if (_WIN32_IE >= 0x500) { + enum { + HDS_FILTERBAR = 0x0100 + } +} + +enum { + NM_FIRST = 0, + NM_LAST = -99U, + LVN_FIRST = -100U, + LVN_LAST = -199U, + HDN_FIRST = -300U, + HDN_LAST = -399U, + TVN_FIRST = -400U, + TVN_LAST = -499U, + TTN_FIRST = -520U, + TTN_LAST = -549U, + TCN_FIRST = -550U, + TCN_LAST = -580U, + CDN_FIRST = -601U, /* also in commdlg.h */ + CDN_LAST = -699U, + TBN_FIRST = -700U, + TBN_LAST = -720U, + UDN_FIRST = -721U, + UDN_LAST = -740U +} +/*static if (_WIN32_IE >= 0x300) { + enum { + RBN_FIRST = -831U, + RBN_LAST = -859U, + MCN_FIRST = -750U, + MCN_LAST = -759U, + DTN_FIRST = -760U, + DTN_LAST = -799U, + CBEN_FIRST = -800U, + CBEN_LAST = -830U + } +}*/ +static if (_WIN32_IE >= 0x400) { + enum { + IPN_FIRST = -860U, + IPN_LAST = -879U, + IPN_FIELDCHANGED = IPN_FIRST, + SBN_FIRST = -880U, + SBN_LAST = -899U, + PGN_FIRST = -900U, + PGN_LAST = -950U, + PGN_SCROLL = PGN_FIRST-1, + PGN_CALCSIZE = PGN_FIRST-2 + } +} + +enum { + HDI_WIDTH = 1, + HDI_HEIGHT = 1, + HDI_TEXT = 2, + HDI_FORMAT = 4, + HDI_LPARAM = 8, + HDI_BITMAP = 16 +} +static if (_WIN32_IE >= 0x300) { + enum { + HDI_IMAGE = 32, + HDI_DI_SETITEM = 64, + HDI_ORDER = 128 + } +} +static if (_WIN32_IE >= 0x500) { + enum { + HDI_FILTER = 256 + } +} + +enum { + CBES_EX_NOEDITIMAGE = 0x00000001, + CBES_EX_NOEDITIMAGEINDENT = 0x00000002, + CBES_EX_PATHWORDBREAKPROC = 0x00000004 +} +static if (_WIN32_IE >= 0x400) { + enum { + CBES_EX_NOSIZELIMIT = 0x00000008, + CBES_EX_CASESENSITIVE = 0x00000010, + CBEN_GETDISPINFOA = CBEN_FIRST - 0, + CBEN_GETDISPINFOW = CBEN_FIRST - 7, + CBEN_DRAGBEGINA = CBEN_FIRST - 8, + CBEN_DRAGBEGINW = CBEN_FIRST - 9 + } +} + +enum { + HDF_LEFT, + HDF_RIGHT, + HDF_CENTER, + HDF_JUSTIFYMASK, + HDF_RTLREADING, // = 4 + HDF_OWNERDRAW = 0x8000, + HDF_STRING = 0x4000, + HDF_BITMAP = 0x2000 +} +static if (_WIN32_IE >= 0x300) { + enum { + HDF_BITMAP_ON_RIGHT = 0x1000, + HDF_IMAGE = 0x0800 + } +} + +enum { + CCM_FIRST = 0x2000, + CCM_LAST = CCM_FIRST + 0x200, + CCM_SETBKCOLOR = 8193, + CCM_SETCOLORSCHEME = 8194, + CCM_GETCOLORSCHEME = 8195, + CCM_GETDROPTARGET = 8196, + CCM_SETUNICODEFORMAT = 8197, + CCM_GETUNICODEFORMAT = 8198, + CCM_SETVERSION = 0x2007, + CCM_GETVERSION = 0x2008, + CCM_SETNOTIFYWINDOW = 0x2009 +} + +enum { + HDM_GETITEMCOUNT = HDM_FIRST, + HDM_INSERTITEMA = HDM_FIRST + 1, + HDM_INSERTITEMW = HDM_FIRST + 10, + HDM_DELETEITEM = HDM_FIRST + 2, + HDM_GETITEMA = HDM_FIRST + 3, + HDM_GETITEMW = HDM_FIRST + 11, + HDM_SETITEMA = HDM_FIRST + 4, + HDM_SETITEMW = HDM_FIRST + 12, + HDM_LAYOUT = HDM_FIRST + 5 +} +static if (_WIN32_IE >= 0x300) { + enum { + HDM_GETITEMRECT = HDM_FIRST + 7, + HDM_SETIMAGELIST = HDM_FIRST + 8, + HDM_GETIMAGELIST = HDM_FIRST + 9, + HDM_ORDERTOINDEX = HDM_FIRST + 15, + HDM_CREATEDRAGIMAGE = HDM_FIRST + 16, + HDM_GETORDERARRAY = HDM_FIRST + 17, + HDM_SETORDERARRAY = HDM_FIRST + 18, + HDM_SETHOTDIVIDER = HDM_FIRST + 19 + } +} +static if (_WIN32_IE >= 0x400) { + enum { + HDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT, + HDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT + } +} + +enum { + HHT_NOWHERE = 1, + HHT_ONHEADER = 2, + HHT_ONDIVIDER = 4, + HHT_ONDIVOPEN = 8, + HHT_ABOVE = 256, + HHT_BELOW = 512, + HHT_TORIGHT = 1024, + HHT_TOLEFT = 2048 +} + +enum { + HDM_HITTEST = HDM_FIRST + 6 +} + +enum { + HDN_ITEMCHANGINGA = HDN_FIRST -0, + HDN_ITEMCHANGINGW = HDN_FIRST -20, + HDN_ITEMCHANGEDA = HDN_FIRST -1, + HDN_ITEMCHANGEDW = HDN_FIRST -21, + HDN_ITEMCLICKA = HDN_FIRST -2, + HDN_ITEMCLICKW = HDN_FIRST -22, + HDN_ITEMDBLCLICKA = HDN_FIRST -3, + HDN_ITEMDBLCLICKW = HDN_FIRST -23, + HDN_DIVIDERDBLCLICKA = HDN_FIRST -5, + HDN_DIVIDERDBLCLICKW = HDN_FIRST -25, + HDN_BEGINTRACKA = HDN_FIRST -6, + HDN_BEGINTRACKW = HDN_FIRST -26, + HDN_ENDTRACKA = HDN_FIRST -7, + HDN_ENDTRACKW = HDN_FIRST -27, + HDN_TRACKA = HDN_FIRST -8, + HDN_TRACKW = HDN_FIRST -28 +} +static if (_WIN32_IE >= 0x300) { + enum { + HDN_ENDDRAG = (HDN_FIRST-11), + HDN_BEGINDRAG = (HDN_FIRST-10), + HDN_GETDISPINFOA = (HDN_FIRST-9), + HDN_GETDISPINFOW = (HDN_FIRST-29) + } +} + +static if (_WIN32_IE >= 0x400) { + enum { + HICF_OTHER = 0x00, + HICF_MOUSE = 0x01, + HICF_ARROWKEYS = 0x02, + HICF_ACCELERATOR = 0x04, + HICF_DUPACCEL = 0x08, + HICF_ENTERING = 0x10, + HICF_LEAVING = 0x20, + HICF_RESELECT = 0x40, + HICF_LMOUSE = 0x80, + HICF_TOGGLEDROPDOWN = 0x100 + } +} + +enum { + IPM_CLEARADDRESS = WM_USER + 100, + IPM_SETADDRESS = WM_USER + 101, + IPM_GETADDRESS = WM_USER + 102, + IPM_SETRANGE = WM_USER + 103, + IPM_SETFOCUS = WM_USER + 104, + IPM_ISBLANK = WM_USER + 105 +} + +static if (_WIN32_IE >= 0x500) { + enum { + I_INDENTCALLBACK = -1, + I_IMAGENONE = -2 + } +} + +enum { + TBSTATE_CHECKED = 1, + TBSTATE_PRESSED = 2, + TBSTATE_ENABLED = 4, + TBSTATE_HIDDEN = 8, + TBSTATE_INDETERMINATE = 16, + TBSTATE_WRAP = 32 +} +static if (_WIN32_IE >= 0x300) { + enum { + TBSTATE_ELLIPSES = 0x40 + } +} +static if (_WIN32_IE >= 0x400) { + enum { + TBSTATE_MARKED = 0x0080 + } +} + +enum { + TBSTYLE_BUTTON = 0, + TBSTYLE_SEP = 1, + TBSTYLE_CHECK = 2, + TBSTYLE_GROUP = 4, + TBSTYLE_CHECKGROUP = TBSTYLE_GROUP | TBSTYLE_CHECK +} +static if (_WIN32_IE >= 0x300) { + enum { + TBSTYLE_DROPDOWN = 8 + } +} +static if (_WIN32_IE >= 0x400) { + enum { + TBSTYLE_AUTOSIZE = 16, + TBSTYLE_NOPREFIX = 32 + } +} +enum { + TBSTYLE_TOOLTIPS = 256, + TBSTYLE_WRAPABLE = 512, + TBSTYLE_ALTDRAG = 1024 +} +static if (_WIN32_IE >= 0x300) { + enum { + TBSTYLE_FLAT = 2048, + TBSTYLE_LIST = 4096, + TBSTYLE_CUSTOMERASE = 8192 + } +} +static if (_WIN32_IE >= 0x400) { + enum { + TBSTYLE_REGISTERDROP = 0x4000, + TBSTYLE_TRANSPARENT = 0x8000, + TBSTYLE_EX_DRAWDDARROWS = 0x00000001 + } +} +static if (_WIN32_IE >= 0x501) { + enum { + TBSTYLE_EX_MIXEDBUTTONS = 8, + TBSTYLE_EX_HIDECLIPPEDBUTTONS = 16 + } +} +static if (_WIN32_WINNT >= 0x501) { + enum { + TBSTYLE_EX_DOUBLEBUFFER = 0x80 + } +} + +static if (_WIN32_IE >= 0x500) { + enum { + BTNS_BUTTON = TBSTYLE_BUTTON, + BTNS_SEP = TBSTYLE_SEP, + BTNS_CHECK = TBSTYLE_CHECK, + BTNS_GROUP = TBSTYLE_GROUP, + BTNS_CHECKGROUP = TBSTYLE_CHECKGROUP, + BTNS_DROPDOWN = TBSTYLE_DROPDOWN, + BTNS_AUTOSIZE = TBSTYLE_AUTOSIZE, + BTNS_NOPREFIX = TBSTYLE_NOPREFIX, + BTNS_WHOLEDROPDOWN = 0x0080 + } +} +static if (_WIN32_IE >= 0x501) { + enum { + BTNS_SHOWTEXT = 0x0040 + } +} + +static if (_WIN32_IE >= 0x400) { + enum { + TBCDRF_NOEDGES = 0x10000, + TBCDRF_HILITEHOTTRACK = 0x20000, + TBCDRF_NOOFFSET = 0x40000, + TBCDRF_NOMARK = 0x80000, + TBCDRF_NOETCHEDEFFECT = 0x100000 + } +} + +const HINST_COMMCTRL = cast(HINSTANCE) (-1); + +enum { + IDB_STD_SMALL_COLOR, + IDB_STD_LARGE_COLOR, + IDB_VIEW_SMALL_COLOR = 4, + IDB_VIEW_LARGE_COLOR = 5 +} +static if (_WIN32_IE >= 0x300) { + enum { + IDB_HIST_SMALL_COLOR = 8, + IDB_HIST_LARGE_COLOR = 9 + } +} + +enum { + STD_CUT, + STD_COPY, + STD_PASTE, + STD_UNDO, + STD_REDOW, + STD_DELETE, + STD_FILENEW, + STD_FILEOPEN, + STD_FILESAVE, + STD_PRINTPRE, + STD_PROPERTIES, + STD_HELP, + STD_FIND, + STD_REPLACE, + STD_PRINT // = 14 +} + +enum { + VIEW_LARGEICONS, + VIEW_SMALLICONS, + VIEW_LIST, + VIEW_DETAILS, + VIEW_SORTNAME, + VIEW_SORTSIZE, + VIEW_SORTDATE, + VIEW_SORTTYPE, + VIEW_PARENTFOLDER, + VIEW_NETCONNECT, + VIEW_NETDISCONNECT, + VIEW_NEWFOLDER // = 11 +} + +enum { + TB_ENABLEBUTTON = WM_USER + 1, + TB_CHECKBUTTON, + TB_PRESSBUTTON, + TB_HIDEBUTTON, + TB_INDETERMINATE, // = WM_USER + 5, + TB_ISBUTTONENABLED = WM_USER + 9, + TB_ISBUTTONCHECKED, + TB_ISBUTTONPRESSED, + TB_ISBUTTONHIDDEN, + TB_ISBUTTONINDETERMINATE, // = WM_USER + 13, + TB_SETSTATE = WM_USER + 17, + TB_GETSTATE = WM_USER + 18, + TB_ADDBITMAP = WM_USER + 19, + TB_DELETEBUTTON = WM_USER + 22, + TB_GETBUTTON, + TB_BUTTONCOUNT, + TB_COMMANDTOINDEX, + TB_SAVERESTOREA, + TB_CUSTOMIZE, + TB_ADDSTRINGA, + TB_GETITEMRECT, + TB_BUTTONSTRUCTSIZE, + TB_SETBUTTONSIZE, + TB_SETBITMAPSIZE, + TB_AUTOSIZE, // = WM_USER + 33, + TB_GETTOOLTIPS = WM_USER + 35, + TB_SETTOOLTIPS = WM_USER + 36, + TB_SETPARENT = WM_USER + 37, + TB_SETROWS = WM_USER + 39, + TB_GETROWS, + TB_GETBITMAPFLAGS, + TB_SETCMDID, + TB_CHANGEBITMAP, + TB_GETBITMAP, + TB_GETBUTTONTEXTA, + TB_REPLACEBITMAP, // = WM_USER + 46, + TB_GETBUTTONSIZE = WM_USER + 58, + TB_SETBUTTONWIDTH = WM_USER + 59, + TB_GETBUTTONTEXTW = WM_USER + 75, + TB_SAVERESTOREW = WM_USER + 76, + TB_ADDSTRINGW = WM_USER + 77, +} +static if (_WIN32_IE >= 0x400) { + enum { + TB_MARKBUTTON = WM_USER + 6 + } +} +static if (_WIN32_IE >= 0x400) { + enum { + TB_ISBUTTONHIGHLIGHTED = WM_USER + 14 + } +} +static if (_WIN32_IE >= 0x400) { + enum { + TB_ADDBUTTONSA = WM_USER + 20, + TB_INSERTBUTTONA = WM_USER + 21 + } +} else { + enum { + TB_ADDBUTTONS = WM_USER + 20, + TB_INSERTBUTTON = WM_USER + 21 + } +} +static if (_WIN32_IE >= 0x300) { + enum { + TB_SETINDENT = WM_USER + 47, + TB_SETIMAGELIST, + TB_GETIMAGELIST, + TB_LOADIMAGES, + TB_GETRECT, + TB_SETHOTIMAGELIST, + TB_GETHOTIMAGELIST, + TB_SETDISABLEDIMAGELIST, + TB_GETDISABLEDIMAGELIST, + TB_SETSTYLE, + TB_GETSTYLE, + //TB_GETBUTTONSIZE, + //TB_SETBUTTONWIDTH, + TB_SETMAXTEXTROWS, + TB_GETTEXTROWS // = WM_USER + 61 + } +} +static if (_WIN32_IE >= 0x400) { + enum { + TB_GETOBJECT = WM_USER + 62, + TB_GETBUTTONINFOW, + TB_SETBUTTONINFOW, + TB_GETBUTTONINFOA, + TB_SETBUTTONINFOA, + TB_INSERTBUTTONW, + TB_ADDBUTTONSW, + TB_HITTEST, // = WM_USER + 69 + TB_SETEXTENDEDSTYLE = WM_USER + 84, + TB_GETEXTENDEDSTYLE = WM_USER + 85, + TB_SETDRAWTEXTFLAGS = WM_USER + 70, + TB_GETHOTITEM, + TB_SETHOTITEM, + TB_SETANCHORHIGHLIGHT, + TB_GETANCHORHIGHLIGHT, // = WM_USER + 74 + TB_MAPACCELERATORA = WM_USER + 78, + TB_GETINSERTMARK, + TB_SETINSERTMARK, + TB_INSERTMARKHITTEST, + TB_MOVEBUTTON, + TB_GETMAXSIZE, + //TB_SETEXTENDEDSTYLE, + //TB_GETEXTENDEDSTYLE, + TB_GETPADDING, + TB_SETPADDING, + TB_SETINSERTMARKCOLOR, + TB_GETINSERTMARKCOLOR, + TB_MAPACCELERATORW, + TB_GETSTRINGW, + TB_GETSTRINGA, // = WM_USER + 92 + TB_SETCOLORSCHEME = CCM_SETCOLORSCHEME, + TB_GETCOLORSCHEME = CCM_GETCOLORSCHEME, + TB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT, + TB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT + } +} + +const TBBF_LARGE = 1; + +enum { + TBN_GETBUTTONINFOA = TBN_FIRST -0, + TBN_BEGINDRAG = TBN_FIRST -1, + TBN_ENDDRAG = TBN_FIRST -2, + TBN_BEGINADJUST = TBN_FIRST -3, + TBN_ENDADJUST = TBN_FIRST -4, + TBN_RESET = TBN_FIRST -5, + TBN_QUERYINSERT = TBN_FIRST -6, + TBN_QUERYDELETE = TBN_FIRST -7, + TBN_TOOLBARCHANGE = TBN_FIRST -8, + TBN_CUSTHELP = TBN_FIRST -9 +} +static if (_WIN32_IE >= 0x300) { + enum { + TBN_DROPDOWN = TBN_FIRST - 10 + } +} +static if (_WIN32_IE >= 0x400) { + enum { + TBN_HOTITEMCHANGE = TBN_FIRST - 13, + TBN_DRAGOUT = TBN_FIRST - 14, + TBN_DELETINGBUTTON = TBN_FIRST - 15, + TBN_GETDISPINFOA = TBN_FIRST - 16, + TBN_GETDISPINFOW = TBN_FIRST - 17, + TBN_GETINFOTIPA = TBN_FIRST - 18, + TBN_GETINFOTIPW = TBN_FIRST - 19, + TBN_GETBUTTONINFOW = TBN_FIRST - 20 + } +} +static if (_WIN32_IE >= 0x500) { + enum { + TBN_RESTORE = TBN_FIRST - 21, + TBN_SAVE = TBN_FIRST - 22, + TBN_INITCUSTOMIZE = TBN_FIRST - 23 + } + + enum { + TBNRF_HIDEHELP = 1, + TBNRF_ENDCUSTOMIZE + } + + enum { + TBNF_IMAGE = 1, + TBNF_TEXT = 2, + TBNF_DI_SETITEM = 0x10000000 + } +} + +enum { + TTS_ALWAYSTIP = 1, + TTS_NOPREFIX +} +static if(_WIN32_IE >= 0x500) { + enum { + TTS_NOANIMATE = 0x10, + TTS_NOFADE = 0x20, + TTS_BALLOON = 0x40, + TTS_CLOSE = 0x80 + } +} + +enum { + TTF_IDISHWND = 1, + TTF_CENTERTIP = 2, + TTF_RTLREADING = 4, + TTF_SUBCLASS = 16 +} +static if (_WIN32_IE >= 0x300) { + enum { + TTF_TRACK = 0x0020, + TTF_ABSOLUTE = 0x0080, + TTF_TRANSPARENT = 0x0100, + TTF_DI_SETITEM = 0x8000 + } + + static if (_WIN32_IE >= 0x501) { + enum { + TTF_PARSELINKS = 0x1000 + } + } + + enum { + TBCD_TICS = 1, + TBCD_THUMB, + TBCD_CHANNEL // = 3 + } +} + +static if (_WIN32_IE >= 0x400) { + enum { + TBDDRET_DEFAULT, + TBDDRET_NODEFAULT, + TBDDRET_TREATPRESSED + } + + enum { + TBIMHT_AFTER = 1, + TBIMHT_BACKGROUND + } +} + +enum { + TTDT_AUTOMATIC, + TTDT_RESHOW, + TTDT_AUTOPOP, + TTDT_INITIAL +} + +enum { + TTM_ACTIVATE = WM_USER + 1, + TTM_SETDELAYTIME = WM_USER + 3, + TTM_ADDTOOLA, + TTM_DELTOOLA, + TTM_NEWTOOLRECTA, + TTM_RELAYEVENT, + TTM_GETTOOLINFOA, + TTM_SETTOOLINFOA, + TTM_HITTESTA, + TTM_GETTEXTA, + TTM_UPDATETIPTEXTA, + TTM_GETTOOLCOUNT, + TTM_ENUMTOOLSA, + TTM_GETCURRENTTOOLA, + TTM_WINDOWFROMPOINT, // = WM_USER + 16 + TTM_ADDTOOLW = WM_USER + 50, + TTM_DELTOOLW, + TTM_NEWTOOLRECTW, + TTM_GETTOOLINFOW, + TTM_SETTOOLINFOW, + TTM_HITTESTW, + TTM_GETTEXTW, + TTM_UPDATETIPTEXTW, + TTM_ENUMTOOLSW, + TTM_GETCURRENTTOOLW // = WM_USER + 59 +} + +static if (_WIN32_IE >= 0x300) { + enum { + TTM_TRACKACTIVATE = WM_USER + 17, + TTM_TRACKPOSITION, + TTM_SETTIPBKCOLOR, + TTM_SETTIPTEXTCOLOR, + TTM_GETDELAYTIME, + TTM_GETTIPBKCOLOR, + TTM_GETTIPTEXTCOLOR, + TTM_SETMAXTIPWIDTH, + TTM_GETMAXTIPWIDTH, + TTM_SETMARGIN, + TTM_GETMARGIN, + TTM_POP // = WM_USER + 28 + } +} + +static if (_WIN32_IE >= 0x400) { // IE4.0 ??? + enum { + TTM_UPDATE = WM_USER + 29, + TTM_GETBUBBLESIZE, + TTM_ADJUSTRECT, + TTM_SETTITLEA, + TTM_SETTITLEW // = WM_USER + 33 + } +} + +enum { + TTN_GETDISPINFOA = TTN_FIRST - 0, + TTN_GETDISPINFOW = TTN_FIRST - 10, + TTN_NEEDTEXTA = TTN_GETDISPINFOA, + TTN_NEEDTEXTW = TTN_GETDISPINFOW, + TTN_SHOW = TTN_FIRST-1, + TTN_POP = TTN_FIRST-2 +} + +const UD_MAXVAL = 0x7fff; +const UD_MINVAL = -UD_MAXVAL; + +enum { + UDN_DELTAPOS = UDN_FIRST-1, + UDS_WRAP = 1, + UDS_SETBUDDYINT = 2, + UDS_ALIGNRIGHT = 4, + UDS_ALIGNLEFT = 8, + UDS_AUTOBUDDY = 16, + UDS_ARROWKEYS = 32, + UDS_HORZ = 64, + UDS_NOTHOUSANDS = 128 +} + +static if (_WIN32_IE >= 0x300) { + enum { + UDS_HOTTRACK = 0x0100 + } +} + +enum { + UDM_SETRANGE = WM_USER + 101, + UDM_GETRANGE, + UDM_SETPOS, + UDM_GETPOS, + UDM_SETBUDDY, + UDM_GETBUDDY, + UDM_SETACCEL, + UDM_GETACCEL, + UDM_SETBASE, + UDM_GETBASE // = WM_USER + 110 +} + +static if (_WIN32_IE >= 0x400) { + enum { + UDM_SETRANGE32 = WM_USER + 111, + UDM_GETRANGE32, + UDM_SETPOS32, + UDM_GETPOS32 // = WM_USER + 114 + } +} + +static if (_WIN32_IE >= 0x500) { + enum { + UDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT, + UDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT + } +} + +/*enum { + SB_SETTEXTA = WM_USER + 1, + SB_GETTEXTA, + SB_GETTEXTLENGTHA, + SB_SETPARTS, // = WM_USER + 4 + SB_GETPARTS = WM_USER + 6, + SB_GETBORDERS, + SB_SETMINHEIGHT, + SB_SIMPLE, + SB_GETRECT, + SB_SETTEXTW, + SB_GETTEXTLENGTHW, + SB_GETTEXTW // = WM_USER + 13 +}*/ + +/*enum { + SBT_OWNERDRAW = 0x1000, + SBT_NOBORDERS = 256, + SBT_POPOUT = 512, + SBT_RTLREADING = 1024 +}*/ + +static if(_WIN32_IE >= 0x400) { + enum { + SBT_TOOLTIPS = 0x0800, + SBN_SIMPLEMODECHANGE = SBN_FIRST + } +} + +enum { + TBS_AUTOTICKS = 1, + TBS_VERT = 2, + TBS_HORZ = 0, + TBS_TOP = 4, + TBS_BOTTOM = 0, + TBS_LEFT = 4, + TBS_RIGHT = 0, + TBS_BOTH = 8, + TBS_NOTICKS = 16, + TBS_ENABLESELRANGE = 32, + TBS_FIXEDLENGTH = 64, + TBS_NOTHUMB = 128 +} + +static if (_WIN32_IE >= 0x300) { + enum { + TBS_TOOLTIPS = 0x0100, + TBTS_TOP = 0, + TBTS_LEFT, + TBTS_BOTTOM, + TBTS_RIGHT // = 3 + } +} + +static if (_WIN32_IE >= 0x500) { + enum { + TBS_REVERSED = 0x0200 + } +} + +static if (_WIN32_IE >= 0x501) { + enum { + TBS_DOWNISLEFT = 0x0400 + } +} + +static if (_WIN32_IE >= 0x400) { + enum { + TBIF_BYINDEX = 0x80000000, + TBIF_COMMAND = 32, + TBIF_IMAGE = 1, + TBIF_LPARAM = 16, + TBIF_SIZE = 64, + TBIF_STATE = 4, + TBIF_STYLE = 8, + TBIF_TEXT = 2 + } +} + +enum { + TBM_GETPOS = WM_USER, + TBM_GETRANGEMIN, + TBM_GETRANGEMAX, + TBM_GETTIC, + TBM_SETTIC, + TBM_SETPOS, + TBM_SETRANGE, + TBM_SETRANGEMIN, + TBM_SETRANGEMAX, + TBM_CLEARTICS, + TBM_SETSEL, + TBM_SETSELSTART, + TBM_SETSELEND, // = WM_USER+12, + TBM_GETPTICS = WM_USER+14, + TBM_GETTICPOS, + TBM_GETNUMTICS, + TBM_GETSELSTART, + TBM_GETSELEND, + TBM_CLEARSEL, + TBM_SETTICFREQ, + TBM_SETPAGESIZE, + TBM_GETPAGESIZE, + TBM_SETLINESIZE, + TBM_GETLINESIZE, + TBM_GETTHUMBRECT, + TBM_GETCHANNELRECT, + TBM_SETTHUMBLENGTH, + TBM_GETTHUMBLENGTH, + TBM_SETTOOLTIPS, + TBM_GETTOOLTIPS, + TBM_SETTIPSIDE, + TBM_SETBUDDY, + TBM_GETBUDDY, // = WM_USER+33, + TBM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT, + TBM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT +} + +enum { + TB_LINEUP, + TB_LINEDOWN, + TB_PAGEUP, + TB_PAGEDOWN, + TB_THUMBPOSITION, + TB_THUMBTRACK, + TB_TOP, + TB_BOTTOM, + TB_ENDTRACK // = 8 +} + +enum { + HOTKEYF_SHIFT = 1, + HOTKEYF_CONTROL = 2, + HOTKEYF_ALT = 4, + HOTKEYF_EXT = 8 +} + +enum { + HKCOMB_NONE = 1, + HKCOMB_S = 2, + HKCOMB_C = 4, + HKCOMB_A = 8, + HKCOMB_SC = 16, + HKCOMB_SA = 32, + HKCOMB_CA = 64, + HKCOMB_SCA = 128 +} + +enum { + HKM_SETHOTKEY = WM_USER + 1, + HKM_GETHOTKEY = WM_USER + 2, + HKM_SETRULES = WM_USER + 3 +} + +enum { + PBM_SETRANGE = WM_USER + 1, + PBM_SETPOS, + PBM_DELTAPOS, + PBM_SETSTEP, + PBM_STEPIT, // = WM_USER + 5 + PBM_SETRANGE32 = 1030, + PBM_GETRANGE, + PBM_GETPOS, + PBM_SETBARCOLOR, // = 1033 + PBM_SETBKCOLOR = CCM_SETBKCOLOR +} + +enum { + PBS_SMOOTH = 1, + PBS_VERTICAL = 4 +} + +enum { + LVS_ICON, + LVS_REPORT, + LVS_SMALLICON, + LVS_LIST, // = 3 + LVS_TYPEMASK = 3, + LVS_SINGLESEL = 4, + LVS_SHOWSELALWAYS = 8, + LVS_SORTASCENDING = 16, + LVS_SORTDESCENDING = 32, + LVS_SHAREIMAGELISTS = 64, + LVS_NOLABELWRAP = 128, + LVS_AUTOARRANGE = 256, + LVS_EDITLABELS = 512, + LVS_NOSCROLL = 0x2000, + LVS_TYPESTYLEMASK = 0xFC00, + LVS_ALIGNTOP = 0, + LVS_ALIGNLEFT = 0x800, + LVS_ALIGNMASK = 0xC00, + LVS_OWNERDRAWFIXED = 0x400, + LVS_NOCOLUMNHEADER = 0x4000, + LVS_NOSORTHEADER = 0x8000 +} + +static if (_WIN32_IE >= 0x300) { + enum { + CDIS_CHECKED = 8, + CDIS_DEFAULT = 32, + CDIS_DISABLED = 4, + CDIS_FOCUS = 16, + CDIS_GRAYED = 2, + CDIS_HOT = 64, + CDIS_SELECTED = 1, + CDIS_MARKED = 128, + CDIS_INDETERMINATE = 256 + } + + static if (_WIN32_WINNT >= 0x501) { + enum { + CDIS_SHOWKEYBOARDCUES = 512 + } + } + + enum { + CDDS_POSTERASE = 4, + CDDS_POSTPAINT = 2, + CDDS_PREERASE = 3, + CDDS_PREPAINT = 1, + CDDS_ITEM = 65536, + CDDS_ITEMPOSTERASE = 65540, + CDDS_ITEMPOSTPAINT = 65538, + CDDS_ITEMPREERASE = 65539, + CDDS_ITEMPREPAINT = 65537 + } + + static if (_WIN32_IE >= 0x400) { + enum { + CDDS_SUBITEM = 0x20000 + } + } + + enum { + CDRF_DODEFAULT = 0x00, + CDRF_NOTIFYITEMDRAW = 0x20, + CDRF_NOTIFYSUBITEMDRAW = 0x20, + CDRF_NOTIFYITEMERASE = 0x80, + CDRF_NOTIFYPOSTERASE = 0x40, + CDRF_NOTIFYPOSTPAINT = 0x10, + CDRF_NEWFONT = 0x02, + CDRF_SKIPDEFAULT = 0x04 + } + + static if (_WIN32_IE >= 0x400) { + enum { + LVBKIF_SOURCE_NONE = 0x00000000, + LVBKIF_SOURCE_HBITMAP = 0x00000001, + LVBKIF_SOURCE_URL = 0x00000002, + LVBKIF_SOURCE_MASK = 0x00000003, + LVBKIF_STYLE_NORMAL = 0x00000000, + LVBKIF_STYLE_TILE = 0x00000010, + LVBKIF_STYLE_MASK = 0x00000010 + } + } + + static if (_WIN32_WINNT >= 0x501) { + enum { + LVBKIF_FLAG_TILEOFFSET = 0x00000100, + LVBKIF_TYPE_WATERMARK = 0x10000000 + } + } + + enum { + LVS_OWNERDATA = 4096 + } + + enum { + LVS_EX_CHECKBOXES = 4, + LVS_EX_FULLROWSELECT = 32, + LVS_EX_GRIDLINES = 1, + LVS_EX_HEADERDRAGDROP = 16, + LVS_EX_ONECLICKACTIVATE = 64, + LVS_EX_SUBITEMIMAGES = 2, + LVS_EX_TRACKSELECT = 8, + LVS_EX_TWOCLICKACTIVATE = 128 + } + + enum { + LVSICF_NOINVALIDATEALL = 0x00000001, + LVSICF_NOSCROLL = 0x00000002 + } + + static if(_WIN32_IE >= 0x400) { + enum { + LVS_EX_FLATSB = 0x00000100, + LVS_EX_REGIONAL = 0x00000200, + LVS_EX_INFOTIP = 0x00000400, + LVS_EX_UNDERLINEHOT = 0x00000800, + LVS_EX_UNDERLINECOLD = 0x00001000, + LVS_EX_MULTIWORKAREAS = 0x00002000 + } + } + + static if(_WIN32_IE >= 0x500) { + enum { + LVS_EX_LABELTIP = 0x00004000, + LVS_EX_BORDERSELECT = 0x00008000 + } + } +} + +enum { + LVSIL_NORMAL, + LVSIL_SMALL, + LVSIL_STATE +} + +enum { + LVM_GETBKCOLOR = LVM_FIRST, + LVM_SETBKCOLOR, + LVM_GETIMAGELIST, + LVM_SETIMAGELIST, + LVM_GETITEMCOUNT, // = LVM_FIRST + 4 + LVM_SORTITEMSEX = LVM_FIRST + 81, + LVM_SETVIEW = LVM_FIRST + 142, + LVM_GETVIEW, // = LVM_FIRST + 143 + LVM_INSERTGROUP = LVM_FIRST + 145, + LVM_SETGROUPINFO = LVM_FIRST + 147, + LVM_GETGROUPINFO = LVM_FIRST + 149, + LVM_REMOVEGROUP, + LVM_MOVEGROUP, // = LVM_FIRST + 151 + LVM_SETGROUPMETRICS = LVM_FIRST + 155, + LVM_GETGROUPMETRICS, + LVM_ENABLEGROUPVIEW, + LVM_SORTGROUPS, + LVM_INSERTGROUPSORTED, + LVM_REMOVEALLGROUPS, + LVM_HASGROUP, + LVM_SETTILEVIEWINFO, + LVM_GETTILEVIEWINFO, + LVM_SETTILEINFO, + LVM_GETTILEINFO, + LVM_SETINSERTMARK, + LVM_GETINSERTMARK, + LVM_INSERTMARKHITTEST, + LVM_GETINSERTMARKRECT, + LVM_SETINSERTMARKCOLOR, + LVM_GETINSERTMARKCOLOR, // = LVM_FIRST + 171 + LVM_SETINFOTIP = LVM_FIRST + 173, + LVM_GETSELECTEDCOLUMN, + LVM_ISGROUPVIEWENABLED, + LVM_GETOUTLINECOLOR, + LVM_SETOUTLINECOLOR, // = LVM_FIRST + 177 + LVM_CANCELEDITLABEL = LVM_FIRST + 179, + LVM_MAPIDTOINDEX = LVM_FIRST + 181 +} + +static if (_WIN32_WINNT >= 0x501) { + enum { + LVM_SETSELECTEDCOLUMN = LVM_FIRST + 140 + } +} + +enum { + LVIF_TEXT = 1, + LVIF_IMAGE = 2, + LVIF_PARAM = 4, + LVIF_STATE = 8 +} + +static if (_WIN32_IE >= 0x300) { + enum { + LVIF_INDENT = 16, + LVIF_NORECOMPUTE = 2048 + } +} + +static if (_WIN32_WINNT >= 0x501) { + enum { + LVIF_GROUPID = 128, + LVIF_COLUMNS = 256 + } +} + +enum { + LVIS_FOCUSED = 1, + LVIS_SELECTED = 2, + LVIS_CUT = 4, + LVIS_DROPHILITED = 8, + LVIS_OVERLAYMASK = 0xF00, + LVIS_STATEIMAGEMASK = 0xF000 +} + +const LPWSTR LPSTR_TEXTCALLBACKW = cast(LPWSTR) -1; +const LPSTR LPSTR_TEXTCALLBACKA = cast(LPSTR) -1; + +const I_IMAGECALLBACK = -1; + +static if(_WIN32_IE >= 0x400) { + enum { + LVM_SETBKIMAGEA = LVM_FIRST + 68, + LVM_SETBKIMAGEW = LVM_FIRST + 138, + LVM_GETBKIMAGEA = LVM_FIRST + 69, + LVM_GETBKIMAGEW = LVM_FIRST + 139, + LV_MAX_WORKAREAS = 16, + LVM_SETWORKAREAS = LVM_FIRST + 65, + LVM_GETWORKAREAS = LVM_FIRST + 70, + LVM_GETNUMBEROFWORKAREAS = LVM_FIRST + 73, + LVM_GETSELECTIONMARK = LVM_FIRST + 66, + LVM_SETSELECTIONMARK = LVM_FIRST + 67, + LVM_SETHOVERTIME = LVM_FIRST + 71, + LVM_GETHOVERTIME = LVM_FIRST + 72, + LVM_SETTOOLTIPS = LVM_FIRST + 74, + LVM_GETTOOLTIPS = LVM_FIRST + 78, + LVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT, + LVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT + } +} + +enum { + LVNI_ALL, + LVNI_FOCUSED = 1, + LVNI_SELECTED = 2, + LVNI_CUT = 4, + LVNI_DROPHILITED = 8, + LVNI_ABOVE = 256, + LVNI_BELOW = 512, + LVNI_TOLEFT = 1024, + LVNI_TORIGHT = 2048 +} + +enum { + LVM_GETITEMA = LVM_FIRST + 5, + LVM_SETITEMA, + LVM_INSERTITEMA, + LVM_DELETEITEM, + LVM_DELETEALLITEMS, + LVM_GETCALLBACKMASK, + LVM_SETCALLBACKMASK, + LVM_GETNEXTITEM, + LVM_FINDITEMA, + LVM_GETITEMRECT, + LVM_SETITEMPOSITION, + LVM_GETITEMPOSITION, + LVM_GETSTRINGWIDTHA, + LVM_HITTEST, + LVM_ENSUREVISIBLE, + LVM_SCROLL, + LVM_REDRAWITEMS, + LVM_ARRANGE, + LVM_EDITLABELA, + LVM_GETEDITCONTROL, + LVM_GETCOLUMNA, + LVM_SETCOLUMNA, + LVM_INSERTCOLUMNA, + LVM_DELETECOLUMN, + LVM_GETCOLUMNWIDTH, + LVM_SETCOLUMNWIDTH, // = LVM_FIRST + 30, + LVM_CREATEDRAGIMAGE = LVM_FIRST + 33, + LVM_GETVIEWRECT, + LVM_GETTEXTCOLOR, + LVM_SETTEXTCOLOR, + LVM_GETTEXTBKCOLOR, + LVM_SETTEXTBKCOLOR, + LVM_GETTOPINDEX, + LVM_GETCOUNTPERPAGE, + LVM_GETORIGIN, + LVM_UPDATE, + LVM_SETITEMSTATE, + LVM_GETITEMSTATE, + LVM_GETITEMTEXTA, + LVM_SETITEMTEXTA, + LVM_SETITEMCOUNT, + LVM_SORTITEMS, + LVM_SETITEMPOSITION32, + LVM_GETSELECTEDCOUNT, + LVM_GETITEMSPACING, + LVM_GETISEARCHSTRINGA, // = LVM_FIRST + 52, + LVM_GETITEMW = LVM_FIRST + 75, + LVM_SETITEMW = LVM_FIRST + 76, + LVM_INSERTITEMW = LVM_FIRST + 77, + LVM_FINDITEMW = LVM_FIRST + 83, + LVM_GETSTRINGWIDTHW = LVM_FIRST + 87, + LVM_GETCOLUMNW = LVM_FIRST + 95, + LVM_SETCOLUMNW = LVM_FIRST + 96, + LVM_INSERTCOLUMNW = LVM_FIRST + 97, + LVM_GETITEMTEXTW = LVM_FIRST + 115, + LVM_SETITEMTEXTW, + LVM_GETISEARCHSTRINGW, + LVM_EDITLABELW // = LVM_FIRST + 118, +} + +static if (_WIN32_IE >= 0x300) { + enum { + LVM_GETHEADER = LVM_FIRST + 31, + LVM_SETICONSPACING = LVM_FIRST + 53, + LVM_SETEXTENDEDLISTVIEWSTYLE, + LVM_GETEXTENDEDLISTVIEWSTYLE, + LVM_GETSUBITEMRECT, + LVM_SUBITEMHITTEST, + LVM_SETCOLUMNORDERARRAY, + LVM_GETCOLUMNORDERARRAY, + LVM_SETHOTITEM, + LVM_GETHOTITEM, + LVM_SETHOTCURSOR, + LVM_GETHOTCURSOR, + LVM_APPROXIMATEVIEWRECT // = LVM_FIRST + 64, + } +} + +enum { + LVFI_PARAM = 1, + LVFI_STRING = 2, + LVFI_PARTIAL = 8, + LVFI_WRAP = 32, + LVFI_NEARESTXY = 64 +} + +enum { + LVIF_DI_SETITEM = 0x1000 +} + +enum { + LVIR_BOUNDS, + LVIR_ICON, + LVIR_LABEL, + LVIR_SELECTBOUNDS // = 3 +} + +enum { + LVHT_NOWHERE = 1, + LVHT_ONITEMICON = 2, + LVHT_ONITEMLABEL = 4, + LVHT_ONITEMSTATEICON = 8, + LVHT_ONITEM = LVHT_ONITEMICON | LVHT_ONITEMLABEL + | LVHT_ONITEMSTATEICON, + LVHT_ABOVE = 8, + LVHT_BELOW = 16, + LVHT_TORIGHT = 32, + LVHT_TOLEFT = 64 +} + +enum { + LVA_DEFAULT = 0, + LVA_ALIGNLEFT = 1, + LVA_ALIGNTOP = 2, + LVA_SNAPTOGRID = 5 +} + +enum { + LVCF_FMT = 1, + LVCF_WIDTH = 2, + LVCF_TEXT = 4, + LVCF_SUBITEM = 8 +} + +static if (_WIN32_IE >= 0x300) { + enum { + LVCF_IMAGE = 16, + LVCF_ORDER = 32 + } +} + +enum { + LVCFMT_LEFT, + LVCFMT_RIGHT, + LVCFMT_CENTER, + LVCFMT_JUSTIFYMASK // = 3 +} + +static if (_WIN32_IE >= 0x300) { + enum { + LVCFMT_IMAGE = 2048, + LVCFMT_BITMAP_ON_RIGHT = 4096, + LVCFMT_COL_HAS_IMAGES = 32768 + } +} + +enum { + LVSCW_AUTOSIZE = -1, + LVSCW_AUTOSIZE_USEHEADER = -2 +} + +enum { + LVN_ITEMCHANGING = LVN_FIRST, + LVN_ITEMCHANGED = LVN_FIRST - 1, + LVN_INSERTITEM = LVN_FIRST - 2, + LVN_DELETEITEM = LVN_FIRST - 3, + LVN_DELETEALLITEMS = LVN_FIRST - 4, + LVN_BEGINLABELEDITA = LVN_FIRST - 5, + LVN_ENDLABELEDITA = LVN_FIRST - 6, + LVN_COLUMNCLICK = LVN_FIRST - 8, + LVN_BEGINDRAG = LVN_FIRST - 9, + LVN_BEGINRDRAG = LVN_FIRST - 11, + LVN_GETDISPINFOA = LVN_FIRST - 50, + LVN_SETDISPINFOA = LVN_FIRST - 51, + LVN_KEYDOWN = LVN_FIRST - 55, + LVN_BEGINLABELEDITW = LVN_FIRST - 75, + LVN_ENDLABELEDITW = LVN_FIRST - 76, + LVN_GETDISPINFOW = LVN_FIRST - 77, + LVN_SETDISPINFOW = LVN_FIRST - 78 +} + +static if (_WIN32_IE >= 0x400) { + enum { + LVN_MARQUEEBEGIN = LVN_FIRST - 56, + LVN_GETINFOTIPA = LVN_FIRST - 57, + LVN_GETINFOTIPW = LVN_FIRST - 58, + LVKF_ALT = 1, + LVKF_CONTROL = 2, + LVKF_SHIFT = 4, + LVGIT_UNFOLDED = 1 + } +} + +enum { + TVS_HASBUTTONS = 1, + TVS_HASLINES = 2, + TVS_LINESATROOT = 4, + TVS_EDITLABELS = 8, + TVS_DISABLEDRAGDROP = 16, + TVS_SHOWSELALWAYS = 32 +} + +static if (_WIN32_IE >= 0x300) { + enum { + TVS_RTLREADING = 64, + TVS_NOTOOLTIPS = 128, + TVS_CHECKBOXES = 256, + TVS_TRACKSELECT = 512 + } +} + +static if (_WIN32_IE >= 0x400) { + enum { + TVS_SINGLEEXPAND = 1024, + TVS_INFOTIP = 2048, + TVS_FULLROWSELECT = 4096, + TVS_NOSCROLL = 8192, + TVS_NONEVENHEIGHT = 16384 + } +} + +static if (_WIN32_IE >= 0x500) { + enum { + TVS_NOHSCROLL = 0x8000 + } +} + +enum { + TVIF_TEXT = 1, + TVIF_IMAGE = 2, + TVIF_PARAM = 4, + TVIF_STATE = 8, + TVIF_HANDLE = 16, + TVIF_SELECTEDIMAGE = 32, + TVIF_CHILDREN = 64 +} + +static if (_WIN32_IE >= 0x400) { + enum { + TVIF_INTEGRAL = 0x0080 + } +} + +enum { + TVIS_FOCUSED = 1, + TVIS_SELECTED = 2, + TVIS_CUT = 4, + TVIS_DROPHILITED = 8, + TVIS_BOLD = 16, + TVIS_EXPANDED = 32, + TVIS_EXPANDEDONCE = 64, + TVIS_OVERLAYMASK = 0xF00, + TVIS_STATEIMAGEMASK = 0xF000, + TVIS_USERMASK = 0xF000 +} + +enum { + I_CHILDRENCALLBACK = -1 +} + +alias HANDLE HTREEITEM; + +const HTREEITEM + TVI_ROOT = cast(HTREEITEM) 0xFFFF0000, + TVI_FIRST = cast(HTREEITEM) 0xFFFF0001, + TVI_LAST = cast(HTREEITEM) 0xFFFF0002, + TVI_SORT = cast(HTREEITEM) 0xFFFF0003; + +enum { + TVSIL_NORMAL = 0, + TVSIL_STATE = 2 +} + +enum { + TVM_INSERTITEMA = TV_FIRST, + TVM_DELETEITEM = TV_FIRST + 1, + TVM_EXPAND = TV_FIRST + 2, + TVM_GETITEMRECT = TV_FIRST + 4, + TVM_GETCOUNT, + TVM_GETINDENT, + TVM_SETINDENT, + TVM_GETIMAGELIST, + TVM_SETIMAGELIST, + TVM_GETNEXTITEM, + TVM_SELECTITEM, + TVM_GETITEMA, + TVM_SETITEMA, + TVM_EDITLABELA, + TVM_GETEDITCONTROL, + TVM_GETVISIBLECOUNT, + TVM_HITTEST, + TVM_CREATEDRAGIMAGE, + TVM_SORTCHILDREN, + TVM_ENSUREVISIBLE, + TVM_SORTCHILDRENCB, + TVM_ENDEDITLABELNOW, + TVM_GETISEARCHSTRINGA, // = TV_FIRST + 23 + TVM_INSERTITEMW = TV_FIRST + 50, + TVM_GETITEMW = TV_FIRST + 62, + TVM_SETITEMW = TV_FIRST + 63, + TVM_GETISEARCHSTRINGW = TV_FIRST + 64, + TVM_EDITLABELW = TV_FIRST + 65 +} + +static if (_WIN32_IE >= 0x300) { + enum { + TVM_GETTOOLTIPS = TV_FIRST + 25, + TVM_SETTOOLTIPS = TV_FIRST + 24 + } +} + +static if (_WIN32_IE >= 0x400) { + enum { + TVM_SETINSERTMARK = TV_FIRST + 26, + TVM_SETITEMHEIGHT, + TVM_GETITEMHEIGHT, + TVM_SETBKCOLOR, + TVM_SETTEXTCOLOR, + TVM_GETBKCOLOR, + TVM_GETTEXTCOLOR, + TVM_SETSCROLLTIME, + TVM_GETSCROLLTIME, // = TV_FIRST + 34 + TVM_SETINSERTMARKCOLOR = TV_FIRST + 37, + TVM_GETINSERTMARKCOLOR = TV_FIRST + 38, + TVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT, + TVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT + } +} + +static if (_WIN32_IE >= 0x500) { + enum { + TVM_GETITEMSTATE = TV_FIRST + 39, + TVM_SETLINECOLOR = TV_FIRST + 40, + TVM_GETLINECOLOR = TV_FIRST + 41 + } +} + +enum { + TVE_COLLAPSE = 1, + TVE_EXPAND = 2, + TVE_TOGGLE = 3, + TVE_COLLAPSERESET = 0x8000 +} + +static if (_WIN32_IE >= 0x300) { + enum { + TVE_EXPANDPARTIAL = 0x4000 + } +} + +enum { + TVC_UNKNOWN, + TVC_BYMOUSE, + TVC_BYKEYBOARD // = 2 +} + +enum { + TVGN_ROOT, + TVGN_NEXT, + TVGN_PREVIOUS, + TVGN_PARENT, + TVGN_CHILD, + TVGN_FIRSTVISIBLE, + TVGN_NEXTVISIBLE, + TVGN_PREVIOUSVISIBLE, + TVGN_DROPHILITE, + TVGN_CARET // = 9 +} + +static if (_WIN32_IE >= 0x400) { + enum { + TVGN_LASTVISIBLE = 10 + } +} + +enum { + TVN_SELCHANGINGA = TVN_FIRST - 1, + TVN_SELCHANGEDA = TVN_FIRST - 2, + TVN_GETDISPINFOA = TVN_FIRST - 3, + TVN_SETDISPINFOA = TVN_FIRST - 4, + TVN_ITEMEXPANDINGA = TVN_FIRST - 5, + TVN_ITEMEXPANDEDA = TVN_FIRST - 6, + TVN_BEGINDRAGA = TVN_FIRST - 7, + TVN_BEGINRDRAGA = TVN_FIRST - 8, + TVN_DELETEITEMA = TVN_FIRST - 9, + TVN_BEGINLABELEDITA = TVN_FIRST - 10, + TVN_ENDLABELEDITA = TVN_FIRST - 11, + TVN_KEYDOWN = TVN_FIRST - 12, + TVN_SELCHANGINGW = TVN_FIRST - 50, + TVN_SELCHANGEDW = TVN_FIRST - 51, + TVN_GETDISPINFOW = TVN_FIRST - 52, + TVN_SETDISPINFOW = TVN_FIRST - 53, + TVN_ITEMEXPANDINGW = TVN_FIRST - 54, + TVN_ITEMEXPANDEDW = TVN_FIRST - 55, + TVN_BEGINDRAGW = TVN_FIRST - 56, + TVN_BEGINRDRAGW = TVN_FIRST - 57, + TVN_DELETEITEMW = TVN_FIRST - 58, + TVN_BEGINLABELEDITW = TVN_FIRST - 59, + TVN_ENDLABELEDITW = TVN_FIRST - 60 +} + +static if (_WIN32_IE >= 0x400) { + enum { + TVNRET_DEFAULT = 0, + TVNRET_SKIPOLD = 1, + TVNRET_SKIPNEW = 2, + TVN_GETINFOTIPA = TVN_FIRST - 13, + TVN_GETINFOTIPW = TVN_FIRST - 14, + TVN_SINGLEEXPAND = TVN_FIRST - 15 + } +} + +enum { + TVIF_DI_SETITEM = 0x1000 +} + +enum { + TVHT_NOWHERE = 1, + TVHT_ONITEMICON = 2, + TVHT_ONITEMLABEL = 4, + TVHT_ONITEMINDENT = 8, + TVHT_ONITEMBUTTON = 16, + TVHT_ONITEMRIGHT = 32, + TVHT_ONITEMSTATEICON = 64, + TVHT_ABOVE = 256, + TVHT_BELOW = 512, + TVHT_TORIGHT = 1024, + TVHT_TOLEFT = 2048, + TCHT_NOWHERE = 1, + TCHT_ONITEMICON = 2, + TCHT_ONITEMLABEL = 4, + TVHT_ONITEM = TVHT_ONITEMICON | TVHT_ONITEMLABEL + | TVHT_ONITEMSTATEICON, + TCHT_ONITEM = TCHT_ONITEMICON | TCHT_ONITEMLABEL +} + +enum { + TCS_TABS = 0, + TCS_RIGHTJUSTIFY = 0, + TCS_SINGLELINE = 0, + TCS_FORCEICONLEFT = 16, + TCS_FORCELABELLEFT = 32, + TCS_BUTTONS = 256, + TCS_MULTILINE = 512, + TCS_FIXEDWIDTH = 1024, + TCS_RAGGEDRIGHT = 2048, + TCS_FOCUSONBUTTONDOWN = 0x1000, + TCS_OWNERDRAWFIXED = 0x2000, + TCS_TOOLTIPS = 0x4000, + TCS_FOCUSNEVER = 0x8000 +} + +static if (_WIN32_IE >= 0x300) { + enum { + TCS_BOTTOM = 2, + TCS_RIGHT = 2, + TCS_VERTICAL = 128, + TCS_SCROLLOPPOSITE = 0x0001, + TCS_HOTTRACK = 0x0040, + TCS_MULTISELECT = 0x0004 + } +} + +static if(_WIN32_IE >= 0x400) { + enum { + TCS_FLATBUTTONS = 0x0008, + TCS_EX_FLATSEPARATORS = 0x00000001, + TCS_EX_REGISTERDROP = 0x00000002 + } +} + +enum { + TCIF_TEXT = 1, + TCIF_IMAGE = 2, + TCIF_RTLREADING = 4, + TCIF_PARAM = 8 +} + +static if (_WIN32_IE >= 0x400) { + enum { + TCIF_STATE = 16 + } +} + +enum { + TCIS_BUTTONPRESSED = 1 +} + +static if (_WIN32_IE >= 0x400) { + enum { + TCIS_HIGHLIGHTED = 2 + } +} + +enum { + TCM_FIRST = 0x1300, + TCM_GETIMAGELIST = TCM_FIRST + 2, + TCM_SETIMAGELIST, + TCM_GETITEMCOUNT, + TCM_GETITEMA, + TCM_SETITEMA, + TCM_INSERTITEMA, + TCM_DELETEITEM, + TCM_DELETEALLITEMS, + TCM_GETITEMRECT, + TCM_GETCURSEL, + TCM_SETCURSEL, + TCM_HITTEST, + TCM_SETITEMEXTRA, // = TCM_FIRST + 14 + TCM_ADJUSTRECT = TCM_FIRST + 40, + TCM_SETITEMSIZE, + TCM_REMOVEIMAGE, + TCM_SETPADDING, + TCM_GETROWCOUNT, + TCM_GETTOOLTIPS, + TCM_SETTOOLTIPS, + TCM_GETCURFOCUS, + TCM_SETCURFOCUS, + TCM_SETMINTABWIDTH, + TCM_DESELECTALL, // = TCM_FIRST + 50 + TCM_GETITEMW = TCM_FIRST + 60, + TCM_SETITEMW = TCM_FIRST + 61, + TCM_INSERTITEMW = TCM_FIRST + 62 +} + +static if (_WIN32_IE >=0x0400) { + enum { + TCM_HIGHLIGHTITEM = TCM_FIRST + 51, + TCM_SETEXTENDEDSTYLE = TCM_FIRST + 52, + TCM_GETEXTENDEDSTYLE = TCM_FIRST + 53, + TCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT, + TCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT + } +} + +enum { + TCN_KEYDOWN = TCN_FIRST, + TCN_SELCHANGE = TCN_FIRST - 1, + TCN_SELCHANGING = TCN_FIRST - 2 +} + +enum { + NM_OUTOFMEMORY = NM_FIRST - 1, + NM_CLICK = NM_FIRST - 2, + NM_DBLCLK = NM_FIRST - 3, + NM_RETURN = NM_FIRST - 4, + NM_RCLICK = NM_FIRST - 5, + NM_RDBLCLK = NM_FIRST - 6, + NM_SETFOCUS = NM_FIRST - 7, + NM_KILLFOCUS = NM_FIRST - 8, + NM_CUSTOMDRAW = NM_FIRST - 12, + NM_HOVER = NM_FIRST - 13, + NM_NCHITTEST = NM_FIRST - 14, + NM_KEYDOWN = NM_FIRST - 15, + NM_RELEASEDCAPTURE = NM_FIRST - 16, + NM_SETCURSOR = NM_FIRST - 17, + NM_CHAR = NM_FIRST - 18, + NM_TOOLTIPSCREATED = NM_FIRST - 19 +} + +enum { + SBARS_SIZEGRIP = 256 +} + +/*enum { + CCM_FIRST = 0x2000, + CCM_LAST = CCM_FIRST + 0x200, + CCM_SETBKCOLOR = 8193, + CCM_SETCOLORSCHEME = 8194, + CCM_GETCOLORSCHEME = 8195, + CCM_GETDROPTARGET = 8196, + CCM_SETUNICODEFORMAT = 8197, + CCM_GETUNICODEFORMAT = 8198, + CCM_SETVERSION = 0x2007, + CCM_GETVERSION = 0x2008, + CCM_SETNOTIFYWINDOW = 0x2009 +}*/ + +static if (_WIN32_WINNT >= 0x501) { + enum { + CCM_SETWINDOWTHEME = 0x200b, + CCM_DPISCALE = 0x200c + } +} + +enum { + ICC_LISTVIEW_CLASSES = 1, + ICC_TREEVIEW_CLASSES = 2, + ICC_BAR_CLASSES = 4, + ICC_TAB_CLASSES = 8, + ICC_UPDOWN_CLASS = 16, + ICC_PROGRESS_CLASS = 32, + ICC_HOTKEY_CLASS = 64, + ICC_ANIMATE_CLASS = 128, + ICC_WIN95_CLASSES = 255, + ICC_DATE_CLASSES = 256, + ICC_USEREX_CLASSES = 512, + ICC_COOL_CLASSES = 1024 +} + +static if (_WIN32_IE >= 0x400) { + enum { + INFOTIPSIZE = 1024, + ICC_INTERNET_CLASSES = 2048, + ICC_PAGESCROLLER_CLASS = 4096, + ICC_NATIVEFNTCTL_CLASS = 8192 + } +} + +static if (_WIN32_WINNT >= 0x501) { + enum { + ICC_STANDARD_CLASSES = 0x00004000, + ICC_LINK_CLASS = 0x00008000 + } +} + +enum { + GDTR_MIN = 1, + GDTR_MAX = 2 +} + +enum { + GMR_VISIBLE, + GMR_DAYSTATE +} + +enum { + GDT_ERROR = -1, + GDT_VALID = 0, + GDT_NONE = 1 +} + +enum { + DTS_SHORTDATEFORMAT = 0, + DTS_UPDOWN = 1, + DTS_SHOWNONE = 2, + DTS_LONGDATEFORMAT = 4, + DTS_TIMEFORMAT = 9, + DTS_APPCANPARSE = 16, + DTS_RIGHTALIGN = 32 +} + +static if (_WIN32_IE >= 0x500) { + enum { + DTS_SHORTDATECENTURYFORMAT = 0x000C + } +} + +enum { + MCS_DAYSTATE = 1, + MCS_MULTISELECT = 2, + MCS_WEEKNUMBERS = 4 +} + +static if (_WIN32_IE >= 0x400) { + enum { + MCS_NOTODAYCIRCLE = 0x0008, + MCS_NOTODAY = 0x0010 + } +} else { + enum { + MCS_NOTODAY = 0x0008 + } +} + +enum { + DTM_GETSYSTEMTIME = 0x1001, + DTM_SETSYSTEMTIME = 0x1002, + DTM_GETRANGE = 0x1003, + DTM_SETRANGE = 0x1004, + DTM_SETFORMATA = 0x1005, + DTM_SETMCCOLOR = 0x1006, + DTM_GETMCCOLOR = 0x1007, + DTM_GETMONTHCAL = 0x1008, + DTM_SETMCFONT = 0x1009, + DTM_GETMCFONT = 0x100a, + DTM_SETFORMATW = 0x1050 +} + +enum { + DTN_USERSTRINGA = -758U, + DTN_USERSTRINGW = -745U, + DTN_WMKEYDOWNA = -757U, + DTN_WMKEYDOWNW = -744U, + DTN_FORMATA = -756U, + DTN_FORMATW = -743U, + DTN_FORMATQUERYA = -755U, + DTN_FORMATQUERYW = -742U, + DTN_DROPDOWN = -754U, + DTN_CLOSEUP = -753U, + DTN_DATETIMECHANGE = -759U, +} + +enum { + MCM_GETCURSEL = 0x1001, + MCM_SETCURSEL = 0x1002, + MCM_GETMAXSELCOUNT = 0x1003, + MCM_SETMAXSELCOUNT = 0x1004, + MCM_GETSELRANGE = 0x1005, + MCM_SETSELRANGE = 0x1006, + MCM_GETMONTHRANGE = 0x1007, + MCM_SETDAYSTATE = 0x1008, + MCM_GETMINREQRECT = 0x1009, + MCM_SETCOLOR = 0x100a, + MCM_GETCOLOR = 0x100b, + MCM_SETTODAY = 0x100c, + MCM_GETTODAY = 0x100d, + MCM_HITTEST = 0x100e, + MCM_SETFIRSTDAYOFWEEK = 0x100f, + MCM_GETFIRSTDAYOFWEEK = 0x1010, + MCM_GETRANGE = 0x1011, + MCM_SETRANGE = 0x1012, + MCM_GETMONTHDELTA = 0x1013, + MCM_SETMONTHDELTA = 0x1014, + MCM_GETMAXTODAYWIDTH = 0x1015, + MCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT, + MCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT +} + +enum { + MCN_SELCHANGE = -749U, + MCN_GETDAYSTATE = -747U, + MCN_SELECT = -746U +} + +enum { + ODT_HEADER = 100, + ODT_TAB, + ODT_LISTVIEW // = 102 +} + +enum { + SB_SETBKCOLOR = 0x2001 +} + +static if (_WIN32_IE >= 0x300) { + enum { + SB_ISSIMPLE = 1038 + } + + enum { + MCSC_BACKGROUND, + MCSC_TEXT, + MCSC_TITLEBK, + MCSC_TITLETEXT, + MCSC_MONTHBK, + MCSC_TRAILINGTEXT // = 5 + } +} + +static if (_WIN32_IE >= 0x400) { + enum { + MCHT_TITLE = 0x10000, + MCHT_CALENDAR = 0x20000, + MCHT_TODAYLINK = 0x30000, + MCHT_NEXT = 0x1000000, + MCHT_PREV = 0x2000000, + MCHT_NOWHERE = 0x00, + MCHT_TITLEBK = MCHT_TITLE, + MCHT_TITLEMONTH = MCHT_TITLE | 0x0001, + MCHT_TITLEYEAR = MCHT_TITLE | 0x0002, + MCHT_TITLEBTNNEXT = MCHT_TITLE | MCHT_NEXT | 0x0003, + MCHT_TITLEBTNPREV = MCHT_TITLE | MCHT_PREV | 0x0003, + MCHT_CALENDARBK = MCHT_CALENDAR, + MCHT_CALENDARDATE = MCHT_CALENDAR | 0x0001, + MCHT_CALENDARDATENEXT = MCHT_CALENDARDATE | MCHT_NEXT, + MCHT_CALENDARDATEPREV = MCHT_CALENDARDATE | MCHT_PREV, + MCHT_CALENDARDAY = MCHT_CALENDAR | 0x0002, + MCHT_CALENDARWEEKNUM = MCHT_CALENDAR | 0x0003 + } +} + +enum { + RBS_TOOLTIPS = 256, + RBS_VARHEIGHT = 512, + RBS_BANDBORDERS = 1024, + RBS_FIXEDORDER = 2048 +} + +enum { + RBIM_IMAGELIST = 1 +} + +enum { + RB_SETCOLORSCHEME = CCM_SETCOLORSCHEME, + RB_GETCOLORSCHEME = CCM_GETCOLORSCHEME +} + +enum { + RBBS_BREAK = 0x0001, + RBBS_FIXEDSIZE = 0x0002, + RBBS_CHILDEDGE = 0x0004, + RBBS_HIDDEN = 0x0008, + RBBS_NOVERT = 0x0010, + RBBS_FIXEDBMP = 0x0020, + RBBS_VARIABLEHEIGHT = 0x0040, + RBBS_GRIPPERALWAYS = 0x0080, + RBBS_NOGRIPPER = 0x0100 +} + +static if (_WIN32_IE >= 0x500) { + enum { + RBBS_USECHEVRON = 0x0200 + } +} + +static if (_WIN32_IE >= 0x501) { + enum { + RBBS_HIDETITLE = 0x0400, + RBBS_TOPALIGN = 0x0800 + } +} + +enum { + RBBIM_STYLE = 1, + RBBIM_COLORS = 2, + RBBIM_TEXT = 4, + RBBIM_IMAGE = 8, + RBBIM_CHILD = 16, + RBBIM_CHILDSIZE = 32, + RBBIM_SIZE = 64, + RBBIM_BACKGROUND = 128, + RBBIM_ID = 256 +} + +enum { + RB_INSERTBANDA = WM_USER + 1, + RB_DELETEBAND, + RB_GETBARINFO, + RB_SETBARINFO, // = WM_USER + 4 + RB_SETBANDINFOA = WM_USER + 6, + RB_SETPARENT = WM_USER + 7, + RB_INSERTBANDW = WM_USER + 10, + RB_SETBANDINFOW, + RB_GETBANDCOUNT, + RB_GETROWCOUNT, + RB_GETROWHEIGHT // = WM_USER + 14, +} + +enum { + RBN_HEIGHTCHANGE = RBN_FIRST +} + +static if (_WIN32_IE >= 0x300) { + enum { + LVN_ODCACHEHINT = LVN_FIRST - 13, + LVN_ODFINDITEMA = LVN_FIRST - 52, + LVN_ODFINDITEMW = LVN_FIRST - 79, + LVN_ITEMACTIVATE = LVN_FIRST - 14, + LVN_ODSTATECHANGED = LVN_FIRST - 15 + } + + version (Unicode) { + enum { + LVN_ODFINDITEM = LVN_ODFINDITEMW + } + } else { + enum { + LVN_ODFINDITEM = LVN_ODFINDITEMA + } + } +} + +static if (_WIN32_IE >= 0x400) { + enum { + SB_SETICON = 1039, + SB_SETTIPTEXTA, + SB_SETTIPTEXTW, + SB_GETTIPTEXTA, + SB_GETTIPTEXTW, + SB_GETICON, // = 1044 + SB_SETUNICODEFORMAT = 0x2005, + SB_GETUNICODEFORMAT = 0x2006 + } + + enum { + PGF_INVISIBLE = 0, + PGF_NORMAL = 1, + PGF_GRAYED = 2, + PGF_DEPRESSED = 4, + PGF_HOT = 8 + } + + enum { + PGB_TOPORLEFT, + PGB_BOTTOMORRIGHT + } + + enum { + PGF_SCROLLUP = 1, + PGF_SCROLLDOWN = 2, + PGF_SCROLLLEFT = 4, + PGF_SCROLLRIGHT = 8 + } + + enum { + PGK_SHIFT = 1, + PGK_CONTROL = 2, + PGK_MENU = 4 + } + + enum { + PGF_CALCWIDTH = 1, + PGF_CALCHEIGHT = 2 + } + + enum { + PGM_FIRST = 0x1400, + PGM_SETCHILD = PGM_FIRST + 1, + PGM_RECALCSIZE, + PGM_FORWARDMOUSE, + PGM_SETBKCOLOR, + PGM_GETBKCOLOR, + PGM_SETBORDER, + PGM_GETBORDER, + PGM_SETPOS, + PGM_GETPOS, + PGM_SETBUTTONSIZE, + PGM_GETBUTTONSIZE, + PGM_GETBUTTONSTATE, // = PGM_FIRST + 12 + PGM_GETDROPTARGET = CCM_GETDROPTARGET + } + + enum { + RBS_REGISTERDROP = 4096, + RBS_AUTOSIZE = 8192, + RBS_VERTICALGRIPPER = 16384, + RBS_DBLCLKTOGGLE = 32768 + } + + enum { + RBBIM_IDEALSIZE = 512, + RBBIM_LPARAM = 1024, + RBBIM_HEADERSIZE = 2048 + } + + enum { + RB_HITTEST = WM_USER + 8, + RB_GETRECT = WM_USER + 9, + RB_IDTOINDEX = WM_USER + 16, + RB_GETTOOLTIPS, + RB_SETTOOLTIPS, + RB_SETBKCOLOR, + RB_GETBKCOLOR, + RB_SETTEXTCOLOR, + RB_GETTEXTCOLOR, + RB_SIZETORECT, + RB_BEGINDRAG, + RB_ENDDRAG, + RB_DRAGMOVE, + RB_GETBARHEIGHT, + RB_GETBANDINFOW, + RB_GETBANDINFOA, + RB_MINIMIZEBAND, + RB_MAXIMIZEBAND, // = WM_USER + 31 + RB_GETDROPTARGET = CCM_GETDROPTARGET, + RB_GETBANDBORDERS = WM_USER + 34, + RB_SHOWBAND = WM_USER + 35, + RB_SETPALETTE = WM_USER + 37, + RB_GETPALETTE = WM_USER + 38, + RB_MOVEBAND = WM_USER + 39, + RB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT, + RB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT + } + + enum { + RBN_GETOBJECT = RBN_FIRST - 1, + RBN_LAYOUTCHANGED = RBN_FIRST - 2, + RBN_AUTOSIZE = RBN_FIRST - 3, + RBN_BEGINDRAG = RBN_FIRST - 4, + RBN_ENDDRAG = RBN_FIRST - 5, + RBN_DELETINGBAND = RBN_FIRST - 6, + RBN_DELETEDBAND = RBN_FIRST - 7, + RBN_CHILDSIZE = RBN_FIRST - 8 + } + + enum { + RBNM_ID = 1, + RBNM_STYLE = 2, + RBNM_LPARAM = 4 + } + + enum { + RBHT_NOWHERE = 1, + RBHT_CAPTION, + RBHT_CLIENT, + RBHT_GRABBER + } + + version (Unicode) { + alias SB_SETTIPTEXTW SB_SETTIPTEXT; + alias SB_GETTIPTEXTW SB_GETTIPTEXT; + alias RB_GETBANDINFOW RB_GETBANDINFO; + } else { + alias SB_SETTIPTEXTA SB_SETTIPTEXT; + alias SB_GETTIPTEXTA SB_GETTIPTEXT; + alias RB_GETBANDINFOA RB_GETBANDINFO; + } +} else { + enum { + RB_GETBANDINFO = WM_USER + 5 + } +} + +enum { + CBEM_INSERTITEMA = WM_USER + 1, + CBEM_SETIMAGELIST, + CBEM_GETIMAGELIST, + CBEM_GETITEMA, + CBEM_SETITEMA, + CBEM_GETCOMBOCONTROL, + CBEM_GETEDITCONTROL, + CBEM_SETEXSTYLE, + CBEM_GETEXSTYLE, // = WM_USER + 9) + CBEM_DELETEITEM = CB_DELETESTRING +} + +static if (_WIN32_IE >= 0x400) { + enum { + CBEM_SETEXTENDEDSTYLE = WM_USER + 14, + CBEM_GETEXTENDEDSTYLE = WM_USER + 9, + CBEM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT, + CBEM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT + } +} + +enum { + CBEM_HASEDITCHANGED = WM_USER + 10, + CBEM_INSERTITEMW = WM_USER + 11, + CBEM_SETITEMW = WM_USER + 12, + CBEM_GETITEMW = WM_USER + 13 +} + +enum { + DA_LAST = 0x7fffffff +} + +enum { + DPA_APPEND = 0x7fffffff, + DPA_ERR = -1 +} + +enum { + DSA_APPEND = 0x7fffffff, + DSA_ERR = -1 +} + +enum { + DPAS_SORTED = 1, + DPAS_INSERTBEFORE = 2, + DPAS_INSERTAFTER = 4 +} + +static if (_WIN32_IE >= 0x400) { + enum { + WSB_PROP_CYVSCROLL = 1, + WSB_PROP_CXHSCROLL = 2, + WSB_PROP_CYHSCROLL = 4, + WSB_PROP_CXVSCROLL = 8, + WSB_PROP_CXHTHUMB = 16, + WSB_PROP_CYVTHUMB = 32, + WSB_PROP_VBKGCOLOR = 64, + WSB_PROP_HBKGCOLOR = 128, + WSB_PROP_VSTYLE = 256, + WSB_PROP_HSTYLE = 512, + WSB_PROP_WINSTYLE = 1024, + WSB_PROP_PALETTE = 2048, + WSB_PROP_MASK = 0xfff, + FSB_FLAT_MODE = 2, + FSB_ENCARTA_MODE = 1, + FSB_REGULAR_MODE = 0 + } +} + +static if (_WIN32_WINNT >= 0x0501) { + enum { + LIF_ITEMINDEX = 1, + LIF_STATE = 2, + LIF_ITEMID = 4, + LIF_URL = 8 + } + + enum { + LIS_FOCUSED = 1, + LIS_ENABLED = 2, + LIS_VISITED = 4 + } + + enum { + LM_HITTEST = WM_USER + 768, + LM_GETIDEALHEIGHT, + LM_SETITEM, + LM_GETITEM // = WM_USER + 771 + } + + const size_t MAX_LINKID_TEXT = 48; + const size_t L_MAX_URL_LENGTH = 2084; +} + + +struct COMBOBOXEXITEMA { + UINT mask; + int iItem; + LPSTR pszText; + int cchTextMax; + int iImage; + int iSelectedImage; + int iOverlay; + int iIndent; + LPARAM lParam; +} +alias COMBOBOXEXITEMA* PCOMBOBOXEXITEMA; +alias CPtr!(COMBOBOXEXITEMA) PCCOMBOEXITEMA; + +struct COMBOBOXEXITEMW { + UINT mask; + int iItem; + LPWSTR pszText; + int cchTextMax; + int iImage; + int iSelectedImage; + int iOverlay; + int iIndent; + LPARAM lParam; +} +alias COMBOBOXEXITEMW* PCOMBOBOXEXITEMW; +alias CPtr!(COMBOBOXEXITEMW) PCCOMBOEXITEMW; + +static if (_WIN32_IE >= 0x400) { + struct NMCOMBOBOXEXA { + NMHDR hdr; + COMBOBOXEXITEMA ceItem; + } + alias NMCOMBOBOXEXA* PNMCOMBOBOXEXA; + + struct NMCOMBOBOXEXW { + NMHDR hdr; + COMBOBOXEXITEMW ceItem; + } + alias NMCOMBOBOXEXW* PNMCOMBOBOXEXW; + + struct NMCBEDRAGBEGINW { + NMHDR hdr; + int iItemid; + WCHAR szText[CBEMAXSTRLEN]; + } + alias NMCBEDRAGBEGINW* LPNMCBEDRAGBEGINW, PNMCBEDRAGBEGINW; + + struct NMCBEDRAGBEGINA { + NMHDR hdr; + int iItemid; + char szText[CBEMAXSTRLEN]; + } + alias NMCBEDRAGBEGINA* LPNMCBEDRAGBEGINA, PNMCBEDRAGBEGINA; + + struct NMIPADDRESS { + NMHDR hdr; + int iField; + int iValue; + } + alias NMIPADDRESS* LPNMIPADDRESS; + + struct NMLVKEYDOWN { + NMHDR hdr; + WORD wVKey; + UINT flags; + } + alias NMLVKEYDOWN* LPNMLVKEYDOWN; + + struct NMPGCALCSIZE { + NMHDR hdr; + DWORD dwFlag; + int iWidth; + int iHeight; + } + alias NMPGCALCSIZE* LPNMPGCALCSIZE; + + struct NMPGSCROLL { + NMHDR hdr; + BOOL fwKeys; + RECT rcParent; + int iDir; + int iXpos; + int iYpos; + int iScroll; + } + alias NMPGSCROLL* LPNMPGSCROLL; + + struct NMSELCHANGE { + NMHDR nmhdr; + SYSTEMTIME stSelStart; + SYSTEMTIME stSelEnd; + } + alias NMSELCHANGE* LPNMSELCHANGE; + + struct NMTBHOTITEM { + NMHDR hdr; + int idOld; + int idNew; + DWORD dwFlags; + } + alias NMTBHOTITEM* LPNMTBHOTITEM; + + struct NMTBDISPINFOA { + NMHDR hdr; + DWORD dwMask; + int idCommand; + DWORD_PTR lParam; + int iImage; + LPSTR pszText; + int cchText; + } + alias NMTBDISPINFOA* LPNMTBDISPINFOA; + + struct NMTBDISPINFOW { + NMHDR hdr; + DWORD dwMask; + int idCommand; + DWORD_PTR lParam; + int iImage; + LPWSTR pszText; + int cchText; + } + alias NMTBDISPINFOW* LPNMTBDISPINFOW; + + struct NMTBGETINFOTIPA { + NMHDR hdr; + LPSTR pszText; + int cchTextMax; + int iItem; + LPARAM lParam; + } + alias NMTBGETINFOTIPA* LPNMTBGETINFOTIPA; + + struct NMTBGETINFOTIPW { + NMHDR hdr; + LPWSTR pszText; + int cchTextMax; + int iItem; + LPARAM lParam; + } + alias NMTBGETINFOTIPW* LPNMTBGETINFOTIPW; + + struct NMMOUSE { + NMHDR hdr; + DWORD_PTR dwItemSpec; + DWORD_PTR dwItemData; + POINT pt; + LPARAM dwHitInfo; + } + alias NMMOUSE* LPNMMOUSE; +} + +static if (_WIN32_IE >= 0x401) { + struct NMTOOLTIPSCREATED { + NMHDR hdr; + HWND hwndToolTips; + } + alias NMTOOLTIPSCREATED* LPNMTOOLTIPSCREATED; +} + +struct NMDATETIMECHANGE { + NMHDR nmhdr; + DWORD dwFlags; + SYSTEMTIME st; +} +alias NMDATETIMECHANGE* LPNMDATETIMECHANGE; + +struct NMCBEENDEDITW { + NMHDR hdr; + BOOL fChanged; + int iNewSelection; + WCHAR szText[CBEMAXSTRLEN]; + int iWhy; +} +alias NMCBEENDEDITW* LPNMCBEENDEDITW, PNMCBEENDEDITW; + +struct NMCBEENDEDITA { + NMHDR hdr; + BOOL fChanged; + int iNewSelection; + char szText[CBEMAXSTRLEN]; + int iWhy; +} +alias NMCBEENDEDITA* LPNMCBEENDEDITA, PNMCBEENDEDITA; + +struct COLORMAP { + COLORREF from; + COLORREF to; +} +alias COLORMAP* LPCOLORMAP; + +struct DRAGLISTINFO { + UINT uNotification; + HWND hWnd; + POINT ptCursor; +} +alias DRAGLISTINFO* LPDRAGLISTINFO; + +struct TBBUTTON { + int iBitmap; + int idCommand; + BYTE fsState; + BYTE fsStyle; + BYTE bReserved[2]; + DWORD dwData; + int iString; +} +alias TBBUTTON* PTBBUTTON, LPTBBUTTON; +alias CPtr!(TBBUTTON) LPCTBBUTTON; + +static if (_WIN32_IE >= 0x400) { + struct TBBUTTONINFOA { + UINT cbSize = TBBUTTONINFOA.sizeof; + DWORD dwMask; + int idCommand; + int iImage; + BYTE fsState; + BYTE fsStyle; + WORD cx; + DWORD lParam; + LPSTR pszText; + int cchText; + } + alias TBBUTTONINFOA* LPTBBUTTONINFOA; + + struct TBBUTTONINFOW { + UINT cbSize = TBBUTTONINFOW.sizeof; + DWORD dwMask; + int idCommand; + int iImage; + BYTE fsState; + BYTE fsStyle; + WORD cx; + DWORD lParam; + LPWSTR pszText; + int cchText; + } + alias TBBUTTONINFOW* LPTBBUTTONINFOW; + + struct TBINSERTMARK { + int iButton; + DWORD dwFlags; + } + alias TBINSERTMARK* LPTBINSERTMARK; + + struct LVBKIMAGEA { + ULONG ulFlags; + HBITMAP hbm; + LPSTR pszImage; + UINT cchImageMax; + int xOffsetPercent; + int yOffsetPercent; + } + alias LVBKIMAGEA* LPLVBKIMAGEA; + + struct LVBKIMAGEW { + ULONG ulFlags; + HBITMAP hbm; + LPWSTR pszImage; + UINT cchImageMax; + int xOffsetPercent; + int yOffsetPercent; + } + alias LVBKIMAGEW* LPLVBKIMAGEW; +} + +/*struct TBNOTIFY { + NMHDR hdr; + int iItem; + TBBUTTON tbButton; + int cchText; + LPTSTR pszText; +} +alias TBNOTIFY* LPTBNOTIFY; +*/ + +/*struct TBSAVEPARAMS { + HKEY hkr; + LPCTSTR pszSubKey; + LPCTSTR pszValueName; +}*/ + +struct IMAGEINFO { + HBITMAP hbmImage; + HBITMAP hbmMask; + int Unused1; + int Unused2; + RECT rcImage; +} +alias IMAGEINFO* LPIMAGEINFO; + +alias HANDLE HIMAGELIST; + +static if (_WIN32_IE >= 0x500) { + struct HDITEMA { + UINT mask; + int cxy; + LPSTR pszText; + HBITMAP hbm; + int cchTextMax; + int fmt; + LPARAM lParam; + int iImage; + int iOrder; + UINT type; + LPVOID pvFilter; + } + + struct HDITEMW { + UINT mask; + int cxy; + LPWSTR pszText; + HBITMAP hbm; + int cchTextMax; + int fmt; + LPARAM lParam; + int iImage; + int iOrder; + UINT type; + LPVOID pvFilter; + } +} else static if (_WIN32_IE >= 0x300) { + struct HDITEMA { + UINT mask; + int cxy; + LPSTR pszText; + HBITMAP hbm; + int cchTextMax; + int fmt; + LPARAM lParam; + int iImage; + int iOrder; + } + + struct HDITEMW { + UINT mask; + int cxy; + LPWSTR pszText; + HBITMAP hbm; + int cchTextMax; + int fmt; + LPARAM lParam; + int iImage; + int iOrder; + } +} else { + struct HDITEMA { + UINT mask; + int cxy; + LPSTR pszText; + HBITMAP hbm; + int cchTextMax; + int fmt; + LPARAM lParam; + } + + struct HDITEMW { + UINT mask; + int cxy; + LPWSTR pszText; + HBITMAP hbm; + int cchTextMax; + int fmt; + LPARAM lParam; + } +} +alias HDITEMA* LPHDITEMA; +alias HDITEMW* LPHDITEMW; + +deprecated { + alias HDITEMA HD_ITEMA; + alias HDITEMW HD_ITEMW; + //alias HDITEM HD_ITEM; fixme +} + +struct HD_LAYOUT { + RECT* prc; + WINDOWPOS* pwpos; +} +alias HDLAYOUT* LPHDLAYOUT; +deprecated alias HD_LAYOUT HDLAYOUT; + +struct HD_HITTESTINFO { + POINT pt; + UINT flags; + int iItem; +} +alias HD_HITTESTINFO* LPHDHITTESTINFO; + +struct HD_NOTIFYA { + NMHDR hdr; + int iItem; + int iButton; + HDITEMA* pitem; +} + +struct HD_NOTIFYW { + NMHDR hdr; + int iItem; + int iButton; + HDITEMW* pitem; +} + +/* FIXME: NMHEADER structure (base for all events of the comctl controls) + is the same as HD_NOTIFY depending on the value of _WIN32_IE macro. + I'm defining both for now. */ +struct NMHEADERA { + NMHDR hdr; + int iItem; + int iButton; + HDITEMA* pitem; +} +alias NMHEADERA* LPNMHEADERA; + +struct NMHEADERW { + NMHDR hdr; + int iItem; + int iButton; + HDITEMW* pitem; +} +alias NMHEADERW* LPNMHEADERW; + +version (Unicode) { + alias NMHEADERW NMHEADER; + alias LPNMHEADERW LPNMHEADER; +} else { + alias NMHEADERA NMHEADER; + alias LPNMHEADERA LPNMHEADER; +} +// End FIXME + +struct NMHDDISPINFOA { + NMHDR hdr; + int iItem; + UINT mask; + LPSTR pszText; + int cchTextMax; + int iImage; + LPARAM lParam; +} +alias NMHDDISPINFOA* LPNMHDDISPINFOA; + +struct NMHDDISPINFOW { + NMHDR hdr; + int iItem; + UINT mask; + LPWSTR pszText; + int cchTextMax; + int iImage; + LPARAM lParam; +} +alias NMHDDISPINFOW* LPNMHDDISPINFOW; + +struct NMCUSTOMDRAW { + NMHDR hdr; + DWORD dwDrawStage; + HDC hdc; + RECT rc; + DWORD dwItemSpec; + UINT uItemState; + LPARAM lItemlParam; +} +alias NMCUSTOMDRAW* LPNMCUSTOMDRAW; + +static if (_WIN32_IE >= 0x400) { + struct NMLVCUSTOMDRAW { + NMCUSTOMDRAW nmcd; + COLORREF clrText; + COLORREF clrTextBk; + int iSubItem; + } +} else { + struct NMLVCUSTOMDRAW { + NMCUSTOMDRAW nmcd; + COLORREF clrText; + COLORREF clrTextBk; + } +} +alias NMLVCUSTOMDRAW* LPNMLVCUSTOMDRAW; + +static if (_WIN32_IE >= 0x400) { + struct NMLVGETINFOTIPA { + NMHDR hdr; + DWORD dwFlags; + LPSTR pszText; + int cchTextMax; + int iItem; + int iSubItem; + LPARAM lParam; + } + alias NMLVGETINFOTIPA* LPNMLVGETINFOTIPA; + + struct NMLVGETINFOTIPW { + NMHDR hdr; + DWORD dwFlags; + LPWSTR pszText; + int cchTextMax; + int iItem; + int iSubItem; + LPARAM lParam; + } + alias NMLVGETINFOTIPW* LPNMLVGETINFOTIPW; +} + +static if (_WIN32_IE >= 0x400) { + struct NMTVCUSTOMDRAW { + NMCUSTOMDRAW nmcd; + COLORREF clrText; + COLORREF clrTextBk; + int iLevel; + } +} else { + struct NMTVCUSTOMDRAW { + NMCUSTOMDRAW nmcd; + COLORREF clrText; + COLORREF clrTextBk; + } +} +alias NMTVCUSTOMDRAW* LPNMTVCUSTOMDRAW; + +static if (_WIN32_IE >= 0x400) { + static if (_WIN32_WINNT >= 0x501) { + struct NMTBCUSTOMDRAW { + NMCUSTOMDRAW nmcd; + HBRUSH hbrMonoDither; + HBRUSH hbrLines; + HPEN hpenLines; + COLORREF clrText; + COLORREF clrMark; + COLORREF clrTextHighlight; + COLORREF clrBtnFace; + COLORREF clrBtnHighlight; + COLORREF clrHighlightHotTrack; + RECT rcText; + int nStringBkMode; + int nHLStringBkMode; + int iListGap; + } + } else { + struct NMTBCUSTOMDRAW { + NMCUSTOMDRAW nmcd; + HBRUSH hbrMonoDither; + HBRUSH hbrLines; + HPEN hpenLines; + COLORREF clrText; + COLORREF clrMark; + COLORREF clrTextHighlight; + COLORREF clrBtnFace; + COLORREF clrBtnHighlight; + COLORREF clrHighlightHotTrack; + RECT rcText; + int nStringBkMode; + int nHLStringBkMode; + } + } + alias NMTBCUSTOMDRAW* LPNMTBCUSTOMDRAW; + + struct NMITEMACTIVATE { + NMHDR hdr; + int iItem; + int iSubItem; + UINT uNewState; + UINT uOldState; + UINT uChanged; + POINT ptAction; + LPARAM lParam; + UINT uKeyFlags; + } + alias NMITEMACTIVATE* LPNMITEMACTIVATE; +} + +struct TBADDBITMAP { + HINSTANCE hInst; + UINT nID; +} +alias TBADDBITMAP* LPTBADDBITMAP; + +struct TBSAVEPARAMSA { + HKEY hkr; + LPCSTR pszSubKey; + LPCSTR pszValueName; +} + +struct TBSAVEPARAMSW { + HKEY hkr; + LPCWSTR pszSubKey; + LPCWSTR pszValueName; +} + +struct TBREPLACEBITMAP { + HINSTANCE hInstOld; + UINT nIDOld; + HINSTANCE hInstNew; + UINT nIDNew; + int nButtons; +} +alias TBREPLACEBITMAP* LPTBREPLACEBITMAP; + +static if (_WIN32_IE >= 0x500) { + struct NMTOOLBARA { + NMHDR hdr; + int iItem; + TBBUTTON tbButton; + int cchText; + LPSTR pszText; + RECT rcButton; + } + + struct NMTOOLBARW { + NMHDR hdr; + int iItem; + TBBUTTON tbButton; + int cchText; + LPWSTR pszText; + RECT rcButton; + } +} else { + struct NMTOOLBARA { + NMHDR hdr; + int iItem; + TBBUTTON tbButton; + int cchText; + LPSTR pszText; + } + + struct NMTOOLBARW { + NMHDR hdr; + int iItem; + TBBUTTON tbButton; + int cchText; + LPWSTR pszText; + } +} +alias NMTOOLBARA* LPNMTOOLBARA; +alias NMTOOLBARW* LPNMTOOLBARW; + +alias NMTOOLBARA TBNOTIFYA; +alias LPNMTOOLBARA LPTBNOTIFYA; + +alias NMTOOLBARW TBNOTIFYW; +alias LPNMTOOLBARW LPTBNOTIFYW; + +static if (_WIN32_WINNT >= 0x501) { + struct TOOLINFOA { + UINT cbSize = TOOLINFOA.sizeof; + UINT uFlags; + HWND hwnd; + UINT uId; + RECT rect; + HINSTANCE hinst; + LPSTR lpszText; + LPARAM lParam; + void* lpReserved; + } + + struct TOOLINFOW { + UINT cbSize = TOOLINFOW.sizeof; + UINT uFlags; + HWND hwnd; + UINT uId; + RECT rect; + HINSTANCE hinst; + LPWSTR lpszText; + LPARAM lParam; + void* lpReserved; + } + + const size_t + TTTOOLINFOA_V1_SIZE = TOOLINFOA.lParam.offsetof, + TTTOOLINFOW_V1_SIZE = TOOLINFOW.lParam.offsetof, + TTTOOLINFOA_V2_SIZE = TOOLINFOA.lpReserved.offsetof, + TTTOOLINFOW_V2_SIZE = TOOLINFOW.lpReserved.offsetof, + TTTOOLINFOA_V3_SIZE = TOOLINFOA.sizeof, + TTTOOLINFOW_V3_SIZE = TOOLINFOW.sizeof; +} else static if (_WIN32_IE >= 0x300) { + struct TOOLINFOA { + UINT cbSize = TOOLINFOA.sizeof; + UINT uFlags; + HWND hwnd; + UINT uId; + RECT rect; + HINSTANCE hinst; + LPSTR lpszText; + LPARAM lParam; + } + + struct TOOLINFOW { + UINT cbSize = TOOLINFOW.sizeof; + UINT uFlags; + HWND hwnd; + UINT uId; + RECT rect; + HINSTANCE hinst; + LPWSTR lpszText; + LPARAM lParam; + } + + const size_t + TTTOOLINFOA_V1_SIZE = TOOLINFOA.lParam.offsetof, + TTTOOLINFOW_V1_SIZE = TOOLINFOW.lParam.offsetof, + TTTOOLINFOA_V2_SIZE = TOOLINFOA.sizeof, + TTTOOLINFOW_V2_SIZE = TOOLINFOW.sizeof; +} else { + struct TOOLINFOA { + UINT cbSize = TOOLINFOA.sizeof; + UINT uFlags; + HWND hwnd; + UINT uId; + RECT rect; + HINSTANCE hinst; + LPSTR lpszText; + } + + struct TOOLINFOW { + UINT cbSize = TOOLINFOW.sizeof; + UINT uFlags; + HWND hwnd; + UINT uId; + RECT rect; + HINSTANCE hinst; + LPWSTR lpszText; + } + + const size_t + TTTOOLINFOA_V1_SIZE = TOOLINFOA.sizeof, + TTTOOLINFOW_V1_SIZE = TOOLINFOW.sizeof; +} +alias TOOLINFOA TTTOOLINFOA; +alias TOOLINFOW TTTOOLINFOW; +alias TTTOOLINFOA* LPTTTOOLINFOA, PTOOLINFOA, LPTOOLINFOA; +alias TTTOOLINFOW* LPTTTOOLINFOW, PTOOLINFOW, LPTOOLINFOW; + +struct TTHITTESTINFOA { + HWND hwnd; + POINT pt; + TOOLINFOA ti; +} +alias TTHITTESTINFOA* LPTTHITTESTINFOA, LPHITTESTINFOA; + +struct TTHITTESTINFOW { + HWND hwnd; + POINT pt; + TOOLINFOW ti; +} +alias TTHITTESTINFOW* LPTTHITTESTINFOW, LPHITTESTINFOW; + +static if (_WIN32_IE >= 0x300) { + struct NMTTDISPINFOA { + NMHDR hdr; + LPSTR lpszText; + char szText[80]; + HINSTANCE hinst; + UINT uFlags; + LPARAM lParam; + } + + struct NMTTDISPINFOW { + NMHDR hdr; + LPWSTR lpszText; + WCHAR szText[80]; + HINSTANCE hinst; + UINT uFlags; + LPARAM lParam; + } +} else { + struct NMTTDISPINFOA { + NMHDR hdr; + LPSTR lpszText; + char szText[80]; + HINSTANCE hinst; + UINT uFlags; + } + + struct NMTTDISPINFOW { + NMHDR hdr; + LPWSTR lpszText; + WCHAR szText[80]; + HINSTANCE hinst; + UINT uFlags; + } +} +alias NMTTDISPINFOA* LPNMTTDISPINFOA; +alias NMTTDISPINFOW* LPNMTTDISPINFOW; +alias NMTTDISPINFOA TOOLTIPTEXTA; +alias LPNMTTDISPINFOA LPTOOLTIPTEXTA; +alias NMTTDISPINFOW TOOLTIPTEXTW; +alias LPNMTTDISPINFOW LPTOOLTIPTEXTW; + +struct UDACCEL { + UINT nSec; + UINT nInc; +} +alias UDACCEL* LPUDACCEL; + +struct NMUPDOWN { + NMHDR hdr; + int iPos; + int iDelta; +} +alias NMUPDOWN* LPNMUPDOWN; + +deprecated { + alias NMUPDOWN NM_UPDOWN; + alias LPNMUPDOWN LPNM_UPDOWN; +} + +static if (_WIN32_WINNT >= 0x501) { + struct LVITEMA { + UINT mask; + int iItem; + int iSubItem; + UINT state; + UINT stateMask; + LPSTR pszText; + int cchTextMax; + int iImage; + LPARAM lParam; + int iIndent; + int iGroupId; + UINT cColumns; + PUINT puColumns; + } + + struct LVITEMW { + UINT mask; + int iItem; + int iSubItem; + UINT state; + UINT stateMask; + LPWSTR pszText; + int cchTextMax; + int iImage; + LPARAM lParam; + int iIndent; + int iGroupId; + UINT cColumns; + PUINT puColumns; + } +} else static if (_WIN32_IE >= 0x300) { + struct LVITEMA { + UINT mask; + int iItem; + int iSubItem; + UINT state; + UINT stateMask; + LPSTR pszText; + int cchTextMax; + int iImage; + LPARAM lParam; + int iIndent; + } + + struct LVITEMW { + UINT mask; + int iItem; + int iSubItem; + UINT state; + UINT stateMask; + LPWSTR pszText; + int cchTextMax; + int iImage; + LPARAM lParam; + int iIndent; + } +} else { + struct LVITEMA { + UINT mask; + int iItem; + int iSubItem; + UINT state; + UINT stateMask; + LPSTR pszText; + int cchTextMax; + int iImage; + LPARAM lParam; + } + + struct LVITEMW { + UINT mask; + int iItem; + int iSubItem; + UINT state; + UINT stateMask; + LPWSTR pszText; + int cchTextMax; + int iImage; + LPARAM lParam; + } +} +alias LVITEMA* LPLVITEMA; +alias LVITEMW* LPLVITEMW; +alias LVITEMA LV_ITEMA; +alias LVITEMW LV_ITEMW; + +struct LVFINDINFOA { + UINT flags; + LPCSTR psz; + LPARAM lParam; + POINT pt; + UINT vkDirection; +} + +struct LVFINDINFOW { + UINT flags; + LPCWSTR psz; + LPARAM lParam; + POINT pt; + UINT vkDirection; +} + +alias LVFINDINFOA* LPFINDINFOA; +alias LVFINDINFOA LV_FINDINFOA; +alias LVFINDINFOW* LPFINDINFOW; +alias LVFINDINFOW LV_FINDINFOW; + +struct NMLVFINDITEMA { + NMHDR hdr; + int iStart; + LVFINDINFOA lvfi; +} + +struct NMLVFINDITEMW { + NMHDR hdr; + int iStart; + LVFINDINFOW lvfi; +} + +alias NMLVFINDITEMA* PNMLVFINDITEMA, LPNMLVFINDITEMA; +alias NMLVFINDITEMW* PNMLVFINDITEMW, LPNMLVFINDITEMW; + +static if (_WIN32_IE >= 0x300) { + struct LVHITTESTINFO { + POINT pt; + UINT flags; + int iItem; + int iSubItem; + } +} else { + struct LVHITTESTINFO { + POINT pt; + UINT flags; + int iItem; + } +} +alias LVHITTESTINFO* LPLVHITTESTINFO; +alias LVHITTESTINFO LV_HITTESTINFO; + +static if (_WIN32_IE >= 0x300) { + struct LVCOLUMNA { + UINT mask; + int fmt; + int cx; + LPSTR pszText; + int cchTextMax; + int iSubItem; + int iImage; + int iOrder; + } + struct LVCOLUMNW { + UINT mask; + int fmt; + int cx; + LPWSTR pszText; + int cchTextMax; + int iSubItem; + int iImage; + int iOrder; + } +} else { + struct LVCOLUMNA { + UINT mask; + int fmt; + int cx; + LPSTR pszText; + int cchTextMax; + int iSubItem; + } + struct LVCOLUMNW { + UINT mask; + int fmt; + int cx; + LPWSTR pszText; + int cchTextMax; + int iSubItem; + } +} +alias LVCOLUMNA* LPLVCOLUMNA; +alias LVCOLUMNW* LPLVCOLUMNW; +alias LVCOLUMNA LV_COLUMNA; +alias LVCOLUMNW LV_COLUMNW; + +static if (_WIN32_WINNT >= 0x501) { + /* SG: The definitions in this static if block are from the MSDN docs. + * They are not in MinGW, but nonetheless required for macros that are. + */ + struct LVGROUP { + UINT cbSize = LVGROUP.sizeof; + UINT mask; + LPWSTR pszHeader; + int cchHeader; + LPWSTR pszFooter; + int cchFooter; + int iGroupId; + UINT stateMask; + UINT state; + UINT uAlign; + static if (_WIN32_WINNT >= 0x600) { + LPWSTR pszSubtitle; + UINT cchSubtitle; + LPWSTR pszTask; + UINT cchTask; + LPWSTR pszDescriptionTop; + UINT cchDescriptionTop; + LPWSTR pszDescriptionBottom; + UINT cchDescriptionBottom; + int iTitleImage; + int iExtendedImage; + int iFirstItem; // Read only + UINT cItems; // Read only + LPWSTR pszSubsetTitle; // NULL if group is not subset + UINT cchSubsetTitle; + } + } + alias LVGROUP* PLVGROUP; + + struct LVGROUPMETRICS { + UINT cbSize = LVGROUPMETRICS.sizeof; + UINT mask; + UINT Left; + UINT Top; + UINT Right; + UINT Bottom; + COLORREF crLeft; + COLORREF crTop; + COLORREF crRight; + COLORREF crBottom; + COLORREF crHeader; + COLORREF crFooter; + } + alias LVGROUPMETRICS* PLVGROUPMETRICS; + + struct LVINSERTMARK { + UINT cbSize = LVINSERTMARK.sizeof; + DWORD dwFlags; + int iItem; + DWORD dwReserved; + } + alias LVINSERTMARK* PLVINSERTMARK; + + struct LVTILEINFO { + UINT cbSize = LVTILEINFO.sizeof; + int iItem; + UINT cColumns; + PUINT puColumns; + static if (_WIN32_WINNT >= 0x600) { + int* piColFmt; + } + } + alias LVTILEINFO* PLVTILEINFO; + + struct LVTILEVIEWINFO { + UINT cbSize = LVTILEVIEWINFO.sizeof; + DWORD dwMask; + DWORD dwFlags; + SIZE sizeTile; + int cLines; + RECT rcLabelMargin; + } + alias LVTILEVIEWINFO* PLVTILEVIEWINFO; + + struct LVINSERTGROUPSORTED { + PFNLVGROUPCOMPARE pfnGroupCompare; + LPVOID* pvData; + LVGROUP lvGroup; + } + alias LVINSERTGROUPSORTED* PLVINSERTGROUPSORTED; + + alias int function(INT, INT, VOID*) PFNLVGROUPCOMPARE; + + struct LVSETINFOTIP { + UINT cbSize = LVSETINFOTIP.sizeof; + DWORD dwFlags; + LPWSTR pszText; + int iItem; + int iSubItem; + HBITMAP hbmp; + } + alias LVSETINFOTIP* PLVSETINFOTIP; +} + +alias int function(LPARAM, LPARAM, LPARAM) PFNLVCOMPARE; + +struct NMLISTVIEW { + NMHDR hdr; + int iItem; + int iSubItem; + UINT uNewState; + UINT uOldState; + UINT uChanged; + POINT ptAction; + LPARAM lParam; +} +alias NMLISTVIEW* LPNMLISTVIEW; + +deprecated { + alias NMLISTVIEW NM_LISTVIEW; + alias LPNMLISTVIEW LPNM_LISTVIEW; +} + +struct NMLVDISPINFOA { + NMHDR hdr; + LV_ITEMA item; +} +alias NMLVDISPINFOA* LPNMLVDISPINFOA; +alias NMLVDISPINFOA LV_DISPINFOA; + +struct NMLVDISPINFOW { + NMHDR hdr; + LV_ITEMW item; +} +alias NMLVDISPINFOW* LPNMLVDISPINFOW; +alias NMLVDISPINFOW LV_DISPINFOW; + +struct LV_KEYDOWN { + NMHDR hdr; + WORD wVKey; + UINT flags; +} + +struct NMLVCACHEHINT { + NMHDR hdr; + int iFrom; + int iTo; +} +alias NMLVCACHEHINT* LPNMLVCACHEHINT, PNM_CACHEHINT, LPNM_CACHEHINT; +alias NMLVCACHEHINT NM_CACHEHINT; + +struct TVITEMA { + UINT mask; + HTREEITEM hItem; + UINT state; + UINT stateMask; + LPSTR pszText; + int cchTextMax; + int iImage; + int iSelectedImage; + int cChildren; + LPARAM lParam; +} +alias TVITEMA* LPTVITEMA, LPTV_ITEMA; +alias TVITEMA TV_ITEMA; + +struct TVITEMW { + UINT mask; + HTREEITEM hItem; + UINT state; + UINT stateMask; + LPWSTR pszText; + int cchTextMax; + int iImage; + int iSelectedImage; + int cChildren; + LPARAM lParam; +} +alias TVITEMW* LPTVITEMW, LPTV_ITEMW; +alias TVITEMW TV_ITEMW; + +static if (_WIN32_IE >= 0x400) { + struct TVITEMEXA { + UINT mask; + HTREEITEM hItem; + UINT state; + UINT stateMask; + LPSTR pszText; + int cchTextMax; + int iImage; + int iSelectedImage; + int cChildren; + LPARAM lParam; + int iIntegral; + } + alias TVITEMEXA* LPTVITEMEXA; + + struct TVITEMEXW { + UINT mask; + HTREEITEM hItem; + UINT state; + UINT stateMask; + LPWSTR pszText; + int cchTextMax; + int iImage; + int iSelectedImage; + int cChildren; + LPARAM lParam; + int iIntegral; + } + alias TVITEMEXW* LPTVITEMEXW; +} + +static if (_WIN32_IE >= 0x400) { + struct TVINSERTSTRUCTA { + HTREEITEM hParent; + HTREEITEM hInsertAfter; + union { + TVITEMEXA itemex; + TV_ITEMA item; + } + } + + struct TVINSERTSTRUCTW { + HTREEITEM hParent; + HTREEITEM hInsertAfter; + union { + TVITEMEXW itemex; + TV_ITEMW item; + } + } +} else { + struct TVINSERTSTRUCTA { + HTREEITEM hParent; + HTREEITEM hInsertAfter; + TV_ITEMA item; + } + + struct TVINSERTSTRUCTW { + HTREEITEM hParent; + HTREEITEM hInsertAfter; + TV_ITEMW item; + } +} +alias TVINSERTSTRUCTA* LPTVINSERTSTRUCTA, LPTV_INSERTSTRUCTA; +alias TVINSERTSTRUCTA TV_INSERTSTRUCTA; +alias TVINSERTSTRUCTW* LPTVINSERTSTRUCTW, LPTV_INSERTSTRUCTW; +alias TVINSERTSTRUCTW TV_INSERTSTRUCTW; + +struct TVHITTESTINFO { + POINT pt; + UINT flags; + HTREEITEM hItem; +} +alias TVHITTESTINFO* LPTVHITTESTINFO, LPTV_HITTESTINFO; +alias TVHITTESTINFO TV_HITTESTINFO; + +alias int function(LPARAM, LPARAM, LPARAM) PFNTVCOMPARE; +struct TVSORTCB { + HTREEITEM hParent; + PFNTVCOMPARE lpfnCompare; + LPARAM lParam; +} +alias TVSORTCB* LPTVSORTCB, LPTV_SORTCB; +alias TVSORTCB TV_SORTCB; + +struct NMTREEVIEWA { + NMHDR hdr; + UINT action; + TV_ITEMA itemOld; + TV_ITEMA itemNew; + POINT ptDrag; +} +alias NMTREEVIEWA* LPNMTREEVIEWA, LPNM_TREEVIEWA; +alias NMTREEVIEWA NM_TREEVIEWA; + +struct NMTREEVIEWW { + NMHDR hdr; + UINT action; + TV_ITEMW itemOld; + TV_ITEMW itemNew; + POINT ptDrag; +} +alias NMTREEVIEWW* LPNMTREEVIEWW, LPNM_TREEVIEWW; +alias NMTREEVIEWW NM_TREEVIEWW; + +struct NMTVDISPINFOA { + NMHDR hdr; + TVITEMA item; +} +alias NMTVDISPINFOA* LPNMTVDISPINFOA; +alias NMTVDISPINFOA TV_DISPINFOA; + +struct NMTVDISPINFOW { + NMHDR hdr; + TVITEMW item; +} +alias NMTVDISPINFOW* LPNMTVDISPINFOW; +alias NMTVDISPINFOW TV_DISPINFOW; + +static if (_WIN32_IE >= 0x400) { + struct NMTVGETINFOTIPA { + NMHDR hdr; + LPSTR pszText; + int cchTextMax; + HTREEITEM hItem; + LPARAM lParam; + } + alias NMTVGETINFOTIPA* LPNMTVGETINFOTIPA; + + struct NMTVGETINFOTIPW { + NMHDR hdr; + LPWSTR pszText; + int cchTextMax; + HTREEITEM hItem; + LPARAM lParam; + } + alias NMTVGETINFOTIPW* LPNMTVGETINFOTIPW; +} + +struct TV_KEYDOWN { + NMHDR hdr; + WORD wVKey; + UINT flags; +} + +struct TC_ITEMHEADERA { + UINT mask; + UINT lpReserved1; + UINT lpReserved2; + LPSTR pszText; + int cchTextMax; + int iImage; +} + +struct TC_ITEMHEADERW { + UINT mask; + UINT lpReserved1; + UINT lpReserved2; + LPWSTR pszText; + int cchTextMax; + int iImage; +} + +static if (_WIN32_IE >= 0x300) { + struct TCITEMA { + UINT mask; + DWORD dwState; + DWORD dwStateMask; + LPSTR pszText; + int cchTextMax; + int iImage; + LPARAM lParam; + } + + struct TCITEMW { + UINT mask; + DWORD dwState; + DWORD dwStateMask; + LPWSTR pszText; + int cchTextMax; + int iImage; + LPARAM lParam; + } +} else { + struct TCITEMA { + UINT mask; + UINT lpReserved1; + UINT lpReserved2; + LPSTR pszText; + int cchTextMax; + int iImage; + LPARAM lParam; + } + + struct TCITEMW { + UINT mask; + UINT lpReserved1; + UINT lpReserved2; + LPWSTR pszText; + int cchTextMax; + int iImage; + LPARAM lParam; + } +} +alias TCITEMA* LPTCITEMA; +alias TCITEMA TC_ITEMA; +alias TCITEMW* LPTCITEMW; +alias TCITEMW TC_ITEMW; + +struct TCHITTESTINFO { + POINT pt; + UINT flags; +} +alias TCHITTESTINFO* LPTCHITTESTINFO, LPTC_HITTESTINFO; +alias TCHITTESTINFO TC_HITTESTINFO; + +struct TC_KEYDOWN { + NMHDR hdr; + WORD wVKey; + UINT flags; +} + +static if (_WIN32_IE >= 0x300) { + struct INITCOMMONCONTROLSEX { + DWORD dwSize = INITCOMMONCONTROLSEX.sizeof; + DWORD dwICC; + } + alias INITCOMMONCONTROLSEX* LPINITCOMMONCONTROLSEX; +} + +struct PBRANGE { + int iLow; + int iHigh; +} +alias PBRANGE* PPBRANGE; + +struct COLORSCHEME { + DWORD dwSize = COLORSCHEME.sizeof; + COLORREF clrBtnHighlight; + COLORREF clrBtnShadow; +} +alias COLORSCHEME* LPCOLORSCHEME; + +struct MCHITTESTINFO { + UINT cbSize = MCHITTESTINFO.sizeof; + POINT pt; + UINT uHit; + SYSTEMTIME st; +} +alias MCHITTESTINFO* PMCHITTESTINFO; + +alias DWORD MONTHDAYSTATE; +alias MONTHDAYSTATE* LPMONTHDAYSTATE; + +struct NMDAYSTATE { + NMHDR nmhdr; + SYSTEMTIME stStart; + int cDayState; + LPMONTHDAYSTATE prgDayState; +} +alias NMDAYSTATE* LPNMDAYSTATE; + +struct REBARINFO { + UINT cbSize = REBARINFO.sizeof; + UINT fMask; + HIMAGELIST himl; +} +alias REBARINFO* LPREBARINFO; + +static if (_WIN32_IE >= 0x400) { + struct REBARBANDINFOA { + UINT cbSize = REBARBANDINFOA.sizeof; + UINT fMask; + UINT fStyle; + COLORREF clrFore; + COLORREF clrBack; + LPSTR lpText; + UINT cch; + int iImage; + HWND hwndChild; + UINT cxMinChild; + UINT cyMinChild; + UINT cx; + HBITMAP hbmBack; + UINT wID; + UINT cyChild; + UINT cyMaxChild; + UINT cyIntegral; + UINT cxIdeal; + LPARAM lParam; + UINT cxHeader; + } + + struct REBARBANDINFOW { + UINT cbSize = REBARBANDINFOW.sizeof; + UINT fMask; + UINT fStyle; + COLORREF clrFore; + COLORREF clrBack; + LPWSTR lpText; + UINT cch; + int iImage; + HWND hwndChild; + UINT cxMinChild; + UINT cyMinChild; + UINT cx; + HBITMAP hbmBack; + UINT wID; + UINT cyChild; + UINT cyMaxChild; + UINT cyIntegral; + UINT cxIdeal; + LPARAM lParam; + UINT cxHeader; + } + + enum : size_t { + REBARBANDINFOA_V3_SIZE = REBARBANDINFOA.cyChild.offsetof, + REBARBANDINFOW_V3_SIZE = REBARBANDINFOW.cyChild.offsetof + } +} else { + struct REBARBANDINFOA { + UINT cbSize = REBARBANDINFOA.sizeof; + UINT fMask; + UINT fStyle; + COLORREF clrFore; + COLORREF clrBack; + LPSTR lpText; + UINT cch; + int iImage; + HWND hwndChild; + UINT cxMinChild; + UINT cyMinChild; + UINT cx; + HBITMAP hbmBack; + UINT wID; + } + + struct REBARBANDINFOW { + UINT cbSize = REBARBANDINFOW.sizeof; + UINT fMask; + UINT fStyle; + COLORREF clrFore; + COLORREF clrBack; + LPWSTR lpText; + UINT cch; + int iImage; + HWND hwndChild; + UINT cxMinChild; + UINT cyMinChild; + UINT cx; + HBITMAP hbmBack; + UINT wID; + } + + enum : size_t { + REBARBANDINFOA_V3_SIZE = REBARBANDINFOA.sizeof, + REBARBANDINFOW_V3_SIZE = REBARBANDINFOW.sizeof + } +} +alias REBARBANDINFOA* LPREBARBANDINFOA; +alias CPtr!(REBARBANDINFOA) LPCREBARBANDINFOA; +alias REBARBANDINFOW* LPREBARBANDINFOW; +alias CPtr!(REBARBANDINFOW) LPCREBARBANDINFOW; + +static if (_WIN32_IE >= 0x300) { + struct NMLVODSTATECHANGE { + NMHDR hdr; + int iFrom; + int iTo; + UINT uNewState; + UINT uOldState; + } + alias NMLVODSTATECHANGE* LPNMLVODSTATECHANGE; + + static if (_WIN32_WINNT >= 0x501) { + struct IMAGELISTDRAWPARAMS { + DWORD cbSize = IMAGELISTDRAWPARAMS.sizeof; + HIMAGELIST himl; + int i; + HDC hdcDst; + int x; + int y; + int cx; + int cy; + int xBitmap; + int yBitmap; + COLORREF rgbBk; + COLORREF rgbFg; + UINT fStyle; + DWORD dwRop; + DWORD fState; + DWORD Frame; + COLORREF crEffect; + } + } else { + struct IMAGELISTDRAWPARAMS { + DWORD cbSize = IMAGELISTDRAWPARAMS.sizeof; + HIMAGELIST himl; + int i; + HDC hdcDst; + int x; + int y; + int cx; + int cy; + int xBitmap; + int yBitmap; + COLORREF rgbBk; + COLORREF rgbFg; + UINT fStyle; + DWORD dwRop; + } + } + alias IMAGELISTDRAWPARAMS* LPIMAGELISTDRAWPARAMS; +} + +static if (_WIN32_IE >= 0x400) { + struct NMREBARCHILDSIZE { + NMHDR hdr; + UINT uBand; + UINT wID; + RECT rcChild; + RECT rcBand; + } + alias NMREBARCHILDSIZE* LPNMREBARCHILDSIZE; + + struct NMREBAR { + NMHDR hdr; + DWORD dwMask; + UINT uBand; + UINT fStyle; + UINT wID; + LPARAM lParam; + } + alias NMREBAR* LPNMREBAR; + + struct NMRBAUTOSIZE { + NMHDR hdr; + BOOL fChanged; + RECT rcTarget; + RECT rcActual; + } + alias NMRBAUTOSIZE* LPNMRBAUTOSIZE; + + static if (_WIN32_IE >= 0x500) { + struct NMREBARCHEVRON { + NMHDR hdr; + UINT uBand; + UINT wID; + LPARAM lParam; + RECT rc; + LPARAM lParamNM; + } + alias NMREBARCHEVRON* LPNMREBARCHEVRON; + } + + struct RBHITTESTINFO { + POINT pt; + UINT flags; + int iBand; + } + alias RBHITTESTINFO* LPRBHITTESTINFO; +} + +alias HANDLE HDSA; +alias HANDLE HDPA; + +version (Unicode) { + alias HDITEMW HDITEM; + alias LPHDITEMW LPHDITEM; + alias TOOLINFOW TOOLINFO; + alias TOOLINFOW* PTOOLINFO, LPTOOLINFO; + alias TTHITTESTINFOW TTHITTESTINFO; + alias TTHITTESTINFOW* LPHITTESTINFO, LPTTHITTESTINFO; + alias TOOLTIPTEXTW TOOLTIPTEXT; + alias TOOLTIPTEXTW* LPTOOLTIPTEXT; + alias NMTTDISPINFOW NMTTDISPINFO; + alias NMTTDISPINFOW* LPNMTTDISPINFO; + alias TV_ITEMW TV_ITEM; + alias TV_ITEMW* LPTV_ITEM; + alias TVITEMW TVITEM; + alias TVITEMW* LPTVITEM; + + static if (_WIN32_IE >= 0x400) { + alias TVITEMEXW TVITEMEX; + alias TVITEMEXW* LPTVITEMEX; + } + + alias TV_INSERTSTRUCTW TV_INSERTSTRUCT; + alias TV_INSERTSTRUCTW* LPTV_INSERTSTRUCT; + alias TVINSERTSTRUCTW TVINSERTSTRUCT; + alias TVINSERTSTRUCTW* LPTVINSERTSTRUCT; + alias NM_TREEVIEWW NM_TREEVIEW; + alias NM_TREEVIEWW* LPNM_TREEVIEW; + alias NMTREEVIEWW NMTREEVIEW; + alias NMTREEVIEWW* LPNMTREEVIEW; + alias NMHDDISPINFOW NMHDDISPINFO; + alias NMHDDISPINFOW* LPNMHDDISPINFO; + + alias ACM_OPENW ACM_OPEN; + alias COMBOBOXEXITEMW COMBOBOXEXITEM; + alias PCOMBOBOXEXITEMW PCOMBOBOXEXITEM; + //alias PCCOMBOBOXEXITEMW PCCOMBOBOXEXITEM; fixme + alias CBEM_INSERTITEMW CBEM_INSERTITEM; + alias CBEM_SETITEMW CBEM_SETITEM; + alias CBEM_GETITEMW CBEM_GETITEM; + alias CBEN_ENDEDITW CBEN_ENDEDIT; + alias NMCBEENDEDITW NMCBEENDEDIT; + alias LPNMCBEENDEDITW LPNMCBEENDEDIT; + alias PNMCBEENDEDITW PNMCBEENDEDIT; + + static if (_WIN32_IE >= 0x400) { + alias NMCOMBOBOXEXW NMCOMBOBOXEX; + alias PNMCOMBOBOXEXW PNMCOMBOBOXEX; + alias CBEN_GETDISPINFOW CBEN_GETDISPINFO; + alias CBEN_DRAGBEGINW CBEN_DRAGBEGIN; + alias NMCBEDRAGBEGINW NMCBEDRAGBEGIN; + alias LPNMCBEDRAGBEGINW LPNMCBEDRAGBEGIN; + alias PNMCBEDRAGBEGINW PNMCBEDRAGBEGIN; + } + + alias SB_GETTEXTW SB_GETTEXT; + alias SB_SETTEXTW SB_SETTEXT; + alias SB_GETTEXTLENGTHW SB_GETTEXTLENGTH; + alias HDM_INSERTITEMW HDM_INSERTITEM; + alias HDM_GETITEMW HDM_GETITEM; + alias HDM_SETITEMW HDM_SETITEM; + alias HDN_ITEMCHANGINGW HDN_ITEMCHANGING; + alias HDN_ITEMCHANGEDW HDN_ITEMCHANGED; + alias HDN_ITEMCLICKW HDN_ITEMCLICK; + alias HDN_ITEMDBLCLICKW HDN_ITEMDBLCLICK; + alias HDN_DIVIDERDBLCLICKW HDN_DIVIDERDBLCLICK; + alias HDN_BEGINTRACKW HDN_BEGINTRACK; + alias HDN_ENDTRACKW HDN_ENDTRACK; + alias HDN_TRACKW HDN_TRACK; + + static if (_WIN32_IE >= 0x300) { + alias HDN_GETDISPINFOW HDN_GETDISPINFO; + } + + alias HD_NOTIFYW HD_NOTIFY; + alias TBSAVEPARAMSW TBSAVEPARAMS; + alias TB_GETBUTTONTEXTW TB_GETBUTTONTEXT; + alias TB_SAVERESTOREW TB_SAVERESTORE; + alias TB_ADDSTRINGW TB_ADDSTRING; + + static if (_WIN32_IE >= 0x400) { + alias TBN_GETBUTTONINFOW TBN_GETBUTTONINFO; // fixme + alias TB_GETBUTTONINFOW TB_GETBUTTONINFO; + alias TB_SETBUTTONINFOW TB_SETBUTTONINFO; + alias TB_INSERTBUTTONW TB_INSERTBUTTON; + alias TB_ADDBUTTONSW TB_ADDBUTTONS; + alias TB_MAPACCELERATORW TB_MAPACCELERATOR; + alias TB_GETSTRINGW TB_GETSTRING; + alias TBBUTTONINFOW TBBUTTONINFO; + alias LPTBBUTTONINFOW LPTBBUTTONINFO; + alias TBN_GETDISPINFOW TBN_GETDISPINFO; + alias NMTBDISPINFOW NMTBDISPINFO; + alias LPNMTBDISPINFOW LPNMTBDISPINFO; + alias NMTBGETINFOTIPW NMTBGETINFOTIP; + alias LPNMTBGETINFOTIPW LPNMTBGETINFOTIP; + } + + alias TBNOTIFYW TBNOTIFY; + alias LPTBNOTIFYW LPTBNOTIFY; + alias NMTOOLBARW NMTOOLBAR; + alias LPNMTOOLBARW LPNMTOOLBAR; + alias TTM_ADDTOOLW TTM_ADDTOOL; + alias TTM_DELTOOLW TTM_DELTOOL; + alias TTM_NEWTOOLRECTW TTM_NEWTOOLRECT; + alias TTM_GETTOOLINFOW TTM_GETTOOLINFO; + alias TTM_SETTOOLINFOW TTM_SETTOOLINFO; + alias TTM_HITTESTW TTM_HITTEST; + alias TTM_GETTEXTW TTM_GETTEXT; + alias TTM_UPDATETIPTEXTW TTM_UPDATETIPTEXT; + alias TTM_ENUMTOOLSW TTM_ENUMTOOLS; + alias TTM_GETCURRENTTOOLW TTM_GETCURRENTTOOL; + alias TTN_NEEDTEXTW TTN_NEEDTEXT; + alias TTN_GETDISPINFOW TTN_GETDISPINFO; + //alias SB_GETTEXTW SB_GETTEXT; + //alias SB_SETTEXTW SB_SETTEXT; + //alias SB_GETTEXTLENGTHW SB_GETTEXTLENGTH; + alias LV_ITEMW LV_ITEM; + alias LVITEMW LVITEM; + alias LVITEM* LPLVITEM; + alias LPSTR_TEXTCALLBACKW LPSTR_TEXTCALLBACK; + + static if (_WIN32_IE >= 0x400) { + alias LVBKIMAGEW LVBKIMAGE; + alias LPLVBKIMAGEW LPLVBKIMAGE; + alias LVM_SETBKIMAGEW LVM_SETBKIMAGE; + alias LVM_GETBKIMAGEW LVM_GETBKIMAGE; + } + + alias LVM_GETITEMW LVM_GETITEM; + alias LVM_SETITEMW LVM_SETITEM; + alias LVM_INSERTITEMW LVM_INSERTITEM; + alias LV_FINDINFOW LV_FINDINFO; + alias LVFINDINFOW LVFINDINFO; + alias LPFINDINFOW LPFINDINFO; + alias NMLVFINDITEMW NMLVFINDITEM; + alias PNMLVFINDITEMW PNMLVFINDITEM; + alias LPNMLVFINDITEMW LPNMLVFINDITEM; + alias LVM_FINDITEMW LVM_FINDITEM; + alias LVM_GETSTRINGWIDTHW LVM_GETSTRINGWIDTH; + alias LVM_EDITLABELW LVM_EDITLABEL; + alias LV_COLUMNW LV_COLUMN; + alias LVCOLUMNW LVCOLUMN; + alias LVCOLUMNW* LPLVCOLUMN; + alias LVM_GETCOLUMNW LVM_GETCOLUMN; + alias LVM_SETCOLUMNW LVM_SETCOLUMN; + alias LVM_INSERTCOLUMNW LVM_INSERTCOLUMN; + alias LVM_GETITEMTEXTW LVM_GETITEMTEXT; + alias LVM_SETITEMTEXTW LVM_SETITEMTEXT; + alias LVM_GETISEARCHSTRINGW LVM_GETISEARCHSTRING; + alias LVN_BEGINLABELEDITW LVN_BEGINLABELEDIT; + alias LVN_ENDLABELEDITW LVN_ENDLABELEDIT; + alias LVN_GETDISPINFOW LVN_GETDISPINFO; + alias LVN_SETDISPINFOW LVN_SETDISPINFO; + + static if (_WIN32_IE >= 0x400) { + alias LVN_GETINFOTIPW LVN_GETINFOTIP; + alias NMLVGETINFOTIPW NMLVGETINFOTIP; + alias LPNMLVGETINFOTIPW LPNMLVGETINFOTIP; + } + + alias LV_DISPINFOW LV_DISPINFO; + alias NMLVDISPINFOW NMLVDISPINFO; + alias LPNMLVDISPINFOW LPNMLVDISPINFO; + alias TVM_INSERTITEMW TVM_INSERTITEM; + alias TVM_GETITEMW TVM_GETITEM; + alias TVM_SETITEMW TVM_SETITEM; + alias TVM_EDITLABELW TVM_EDITLABEL; + alias TVM_GETISEARCHSTRINGW TVM_GETISEARCHSTRING; + alias NMTVDISPINFOW TV_DISPINFO; + alias NMTVDISPINFOW NMTVDISPINFO; + alias LPNMTVDISPINFOW LPNMTVDISPINFO; + + static if (_WIN32_IE >= 0x400) { + alias NMTVGETINFOTIPW NMTVGETINFOTIP; + alias LPNMTVGETINFOTIPW LPNMTVGETINFOTIP; + alias TVN_GETINFOTIPW TVN_GETINFOTIP; + } + + alias TVN_SELCHANGINGW TVN_SELCHANGING; + alias TVN_SELCHANGEDW TVN_SELCHANGED; + alias TVN_GETDISPINFOW TVN_GETDISPINFO; + alias TVN_SETDISPINFOW TVN_SETDISPINFO; + alias TVN_ITEMEXPANDINGW TVN_ITEMEXPANDING; + alias TVN_ITEMEXPANDEDW TVN_ITEMEXPANDED; + alias TVN_BEGINDRAGW TVN_BEGINDRAG; + alias TVN_BEGINRDRAGW TVN_BEGINRDRAG; + alias TVN_DELETEITEMW TVN_DELETEITEM; + alias TVN_BEGINLABELEDITW TVN_BEGINLABELEDIT; + alias TVN_ENDLABELEDITW TVN_ENDLABELEDIT; + alias TC_ITEMHEADERW TC_ITEMHEADER; + alias TC_ITEMW TC_ITEM; + alias TCITEMW TCITEM; + alias LPTCITEMW LPTCITEM; + alias TCM_GETITEMW TCM_GETITEM; + alias TCM_SETITEMW TCM_SETITEM; + alias TCM_INSERTITEMW TCM_INSERTITEM; + alias CreateStatusWindowW CreateStatusWindow; + alias DrawStatusTextW DrawStatusText; + alias ImageList_LoadImageW ImageList_LoadImage; + alias DTM_SETFORMATW DTM_SETFORMAT; + alias DTN_USERSTRINGW DTN_USERSTRING; + alias DTN_WMKEYDOWNW DTN_WMKEYDOWN; + alias DTN_FORMATW DTN_FORMAT; + alias DTN_FORMATQUERYW DTN_FORMATQUERY; + alias REBARBANDINFOW REBARBANDINFO; + alias REBARBANDINFO* LPREBARBANDINFO; + alias LPCREBARBANDINFOW LPCREBARBANDINFO; + alias REBARBANDINFOW_V3_SIZE REBARBANDINFO_V3_SIZE; + alias RB_INSERTBANDW RB_INSERTBAND; + alias RB_SETBANDINFOW RB_SETBANDINFO; +} else { + alias HDITEMA HDITEM; + alias LPHDITEMA LPHDITEM; + alias TOOLINFOA TOOLINFO; + alias TOOLINFOA* PTOOLINFO, LPTOOLINFO; + alias TTHITTESTINFOA TTHITTESTINFO; + alias TTHITTESTINFOA* LPHITTESTINFO, LPTTHITTESTINFO; + alias TOOLTIPTEXTA TOOLTIPTEXT; + alias TOOLTIPTEXTA* LPTOOLTIPTEXT; + alias NMTTDISPINFOA NMTTDISPINFO; + alias NMTTDISPINFOA* LPNMTTDISPINFO; + alias TV_ITEMA TV_ITEM; + alias TV_ITEMA* LPTV_ITEM; + alias TVITEMA TVITEM; + alias TVITEMA* LPTVITEM; + + static if (_WIN32_IE >= 0x400) { + alias TVITEMEXA TVITEMEX; + alias TVITEMEXA* LPTVITEMEX; + } + + alias TV_INSERTSTRUCTA TV_INSERTSTRUCT; + alias TV_INSERTSTRUCTA* LPTV_INSERTSTRUCT; + alias TVINSERTSTRUCTA TVINSERTSTRUCT; + alias TVINSERTSTRUCTA* LPTVINSERTSTRUCT; + alias NM_TREEVIEWA NM_TREEVIEW; + alias NM_TREEVIEWA* LPNM_TREEVIEW; + alias NMTREEVIEWA NMTREEVIEW; + alias NMTREEVIEWA* LPNMTREEVIEW; + alias NMHDDISPINFOW NMHDDISPINFO; + alias NMHDDISPINFOW* LPNMHDDISPINFO; + + alias ACM_OPENA ACM_OPEN; + alias COMBOBOXEXITEMA COMBOBOXEXITEM; + alias PCOMBOBOXEXITEMA PCOMBOBOXEXITEM; + //alias PCCOMBOBOXEXITEMA PCCOMBOBOXEXITEM; fixme + alias CBEM_INSERTITEMA CBEM_INSERTITEM; + alias CBEM_SETITEMA CBEM_SETITEM; + alias CBEM_GETITEMA CBEM_GETITEM; + alias CBEN_ENDEDITA CBEN_ENDEDIT; + alias NMCBEENDEDITA NMCBEENDEDIT; + alias LPNMCBEENDEDITA LPNMCBEENDEDIT; + alias PNMCBEENDEDITA PNMCBEENDEDIT; + + static if (_WIN32_IE >= 0x400) { + alias TB_GETBUTTONINFOA TB_GETBUTTONINFO; + alias TB_SETBUTTONINFOA TB_SETBUTTONINFO; + alias TB_INSERTBUTTONA TB_INSERTBUTTON; + alias TB_ADDBUTTONSA TB_ADDBUTTONS; + alias TB_MAPACCELERATORA TB_MAPACCELERATOR; + alias TB_GETSTRINGA TB_GETSTRING; + alias NMCOMBOBOXEXA NMCOMBOBOXEX; + alias PNMCOMBOBOXEXA PNMCOMBOBOXEX; + alias CBEN_DRAGBEGINA CBEN_DRAGBEGIN; + alias CBEN_GETDISPINFOA CBEN_GETDISPINFO; + alias NMCBEDRAGBEGINA NMCBEDRAGBEGIN; + alias LPNMCBEDRAGBEGINA LPNMCBEDRAGBEGIN; + alias PNMCBEDRAGBEGINA PNMCBEDRAGBEGIN; + alias TBN_GETDISPINFOA TBN_GETDISPINFO; + alias NMTBDISPINFOA NMTBDISPINFO; + alias LPNMTBDISPINFOA LPNMTBDISPINFO; + alias NMTBGETINFOTIPA NMTBGETINFOTIP; + alias LPNMTBGETINFOTIPA LPNMTBGETINFOTIP; + } + + alias SB_GETTEXTA SB_GETTEXT; + alias SB_SETTEXTA SB_SETTEXT; + alias SB_GETTEXTLENGTHA SB_GETTEXTLENGTH; + alias HDM_INSERTITEMA HDM_INSERTITEM; + alias HDM_GETITEMA HDM_GETITEM; + alias HDM_SETITEMA HDM_SETITEM; + alias HDN_ITEMCHANGINGA HDN_ITEMCHANGING; + alias HDN_ITEMCHANGEDA HDN_ITEMCHANGED; + alias HDN_ITEMCLICKA HDN_ITEMCLICK; + alias HDN_ITEMDBLCLICKA HDN_ITEMDBLCLICK; + alias HDN_DIVIDERDBLCLICKA HDN_DIVIDERDBLCLICK; + alias HDN_BEGINTRACKA HDN_BEGINTRACK; + alias HDN_ENDTRACKA HDN_ENDTRACK; + alias HDN_TRACKA HDN_TRACK; + + static if (_WIN32_IE >= 0x300) { + alias HDN_GETDISPINFOA HDN_GETDISPINFO; + } + + alias HD_NOTIFYA HD_NOTIFY; + alias TBSAVEPARAMSA TBSAVEPARAMS; + alias TB_GETBUTTONTEXTA TB_GETBUTTONTEXT; + alias TB_SAVERESTOREA TB_SAVERESTORE; + alias TB_ADDSTRINGA TB_ADDSTRING; + alias TBN_GETBUTTONINFOA TBN_GETBUTTONINFO; + + static if (_WIN32_IE >= 0x400) { + alias TBBUTTONINFOA TBBUTTONINFO; + alias LPTBBUTTONINFOA LPTBBUTTONINFO; + } + + alias TBNOTIFYA TBNOTIFY; + alias LPTBNOTIFYA LPTBNOTIFY; + alias NMTOOLBARA NMTOOLBAR; + alias LPNMTOOLBARA LPNMTOOLBAR; + alias TTM_ADDTOOLA TTM_ADDTOOL; + alias TTM_DELTOOLA TTM_DELTOOL; + alias TTM_NEWTOOLRECTA TTM_NEWTOOLRECT; + alias TTM_GETTOOLINFOA TTM_GETTOOLINFO; + alias TTM_SETTOOLINFOA TTM_SETTOOLINFO; + alias TTM_HITTESTA TTM_HITTEST; + alias TTM_GETTEXTA TTM_GETTEXT; + alias TTM_UPDATETIPTEXTA TTM_UPDATETIPTEXT; + alias TTM_ENUMTOOLSA TTM_ENUMTOOLS; + alias TTM_GETCURRENTTOOLA TTM_GETCURRENTTOOL; + alias TTN_NEEDTEXTA TTN_NEEDTEXT; + alias TTN_GETDISPINFOA TTN_GETDISPINFO; + alias LV_ITEMA LV_ITEM; + alias LVITEMA LVITEM; + alias LVITEM* LPLVITEM; + alias LPSTR_TEXTCALLBACKA LPSTR_TEXTCALLBACK; + + static if (_WIN32_IE >= 0x400) { + alias LVBKIMAGEA LVBKIMAGE; + alias LPLVBKIMAGEA LPLVBKIMAGE; + alias LVM_SETBKIMAGEA LVM_SETBKIMAGE; + alias LVM_GETBKIMAGEA LVM_GETBKIMAGE; + } + + alias LVM_GETITEMA LVM_GETITEM; + alias LVM_SETITEMA LVM_SETITEM; + alias LVM_INSERTITEMA LVM_INSERTITEM; + alias LV_FINDINFOA LV_FINDINFO; + alias LVFINDINFOA LVFINDINFO; + alias LPFINDINFOA LPFINDINFO; + alias NMLVFINDITEMA NMLVFINDITEM; + alias PNMLVFINDITEMA PNMLVFINDITEM; + alias LPNMLVFINDITEMA LPNMLVFINDITEM; + alias LVM_FINDITEMA LVM_FINDITEM; + alias LVM_GETSTRINGWIDTHA LVM_GETSTRINGWIDTH; + alias LVM_EDITLABELA LVM_EDITLABEL; + alias LV_COLUMNA LV_COLUMN; + alias LVCOLUMNA LVCOLUMN; + alias LVCOLUMNA* LPLVCOLUMN; + alias LVM_GETCOLUMNA LVM_GETCOLUMN; + alias LVM_SETCOLUMNA LVM_SETCOLUMN; + alias LVM_INSERTCOLUMNA LVM_INSERTCOLUMN; + alias LVM_GETITEMTEXTA LVM_GETITEMTEXT; + alias LVM_SETITEMTEXTA LVM_SETITEMTEXT; + alias LVM_GETISEARCHSTRINGA LVM_GETISEARCHSTRING; + alias LVN_BEGINLABELEDITA LVN_BEGINLABELEDIT; + alias LVN_ENDLABELEDITA LVN_ENDLABELEDIT; + alias LVN_GETDISPINFOA LVN_GETDISPINFO; + alias LVN_SETDISPINFOA LVN_SETDISPINFO; + + static if (_WIN32_IE >= 0x400) { + alias LVN_GETINFOTIPA LVN_GETINFOTIP; + alias NMLVGETINFOTIPA NMLVGETINFOTIP; + alias LPNMLVGETINFOTIPA LPNMLVGETINFOTIP; + } + + alias LV_DISPINFOA LV_DISPINFO; + alias NMLVDISPINFOA NMLVDISPINFO; + alias LPNMLVDISPINFOA LPNMLVDISPINFO; + alias TVM_INSERTITEMA TVM_INSERTITEM; + alias TVM_GETITEMA TVM_GETITEM; + alias TVM_SETITEMA TVM_SETITEM; + alias TVM_EDITLABELA TVM_EDITLABEL; + alias TVM_GETISEARCHSTRINGA TVM_GETISEARCHSTRING; + alias NMTVDISPINFOA TV_DISPINFO; + alias NMTVDISPINFOA NMTVDISPINFO; + alias LPNMTVDISPINFOA LPNMTVDISPINFO; + + static if (_WIN32_IE >= 0x400) { + alias NMTVGETINFOTIPA NMTVGETINFOTIP; + alias LPNMTVGETINFOTIPA LPNMTVGETINFOTIP; + alias TVN_GETINFOTIPA TVN_GETINFOTIP; + } + + alias TVN_SELCHANGINGA TVN_SELCHANGING; + alias TVN_SELCHANGEDA TVN_SELCHANGED; + alias TVN_GETDISPINFOA TVN_GETDISPINFO; + alias TVN_SETDISPINFOA TVN_SETDISPINFO; + alias TVN_ITEMEXPANDINGA TVN_ITEMEXPANDING; + alias TVN_ITEMEXPANDEDA TVN_ITEMEXPANDED; + alias TVN_BEGINDRAGA TVN_BEGINDRAG; + alias TVN_BEGINRDRAGA TVN_BEGINRDRAG; + alias TVN_DELETEITEMA TVN_DELETEITEM; + alias TVN_BEGINLABELEDITA TVN_BEGINLABELEDIT; + alias TVN_ENDLABELEDITA TVN_ENDLABELEDIT; + alias TC_ITEMHEADERA TC_ITEMHEADER; + alias TC_ITEMA TC_ITEM; + alias TCITEMA TCITEM; + alias LPTCITEMA LPTCITEM; + alias TCM_GETITEMA TCM_GETITEM; + alias TCM_SETITEMA TCM_SETITEM; + alias TCM_INSERTITEMA TCM_INSERTITEM; + alias CreateStatusWindowA CreateStatusWindow; + alias DrawStatusTextA DrawStatusText; + alias ImageList_LoadImageA ImageList_LoadImage; + alias DTM_SETFORMATA DTM_SETFORMAT; + alias DTN_USERSTRINGA DTN_USERSTRING; + alias DTN_WMKEYDOWNA DTN_WMKEYDOWN; + alias DTN_FORMATA DTN_FORMAT; + alias DTN_FORMATQUERYA DTN_FORMATQUERY; + alias REBARBANDINFOA REBARBANDINFO; + alias REBARBANDINFOA* LPREBARBANDINFO; + alias LPCREBARBANDINFOA LPCREBARBANDINFO; + alias REBARBANDINFOA_V3_SIZE REBARBANDINFO_V3_SIZE; + alias RB_INSERTBANDA RB_INSERTBAND; + alias RB_SETBANDINFOA RB_SETBANDINFO; +} + + +alias INT function(PVOID, PVOID) PFNDPAENUMCALLBACK; +alias INT function(PVOID, PVOID) PFNDSAENUMCALLBACK; +alias INT function(PVOID, PVOID, LPARAM) PFNDPACOMPARE; + +static if (_WIN32_WINNT >= 0x501) { + extern (Windows) + alias LRESULT function(HWND, UINT, WPARAM, LPARAM, UINT_PTR, DWORD_PTR) + SUBCLASSPROC; + + struct LITEM { + UINT mask; + int iLink; + UINT state; + UINT stateMask; + WCHAR[MAX_LINKID_TEXT] szID; + WCHAR[L_MAX_URL_LENGTH] szUrl; + } + alias LITEM* PLITEM; + + struct LHITTESTINFO { + POINT pt; + LITEM item; + } + alias LHITTESTINFO* PLHITTESTINFO; + + struct NMLINK { + NMHDR hdr; + LITEM item; + } + alias NMLINK* PNMLINK; +} + +uint INDEXTOOVERLAYMASK(uint i) { return i << 8; } +uint INDEXTOSTATEIMAGEMASK(uint i) { return i << 12; } + +template HANDLE_WM_NOTIFY(R) { + R HANDLE_WM_NOTIFY(HWND hwnd, WPARAM wParam, LPARAM lParam, + R function(HWND, int, NMHDR*) fn) { + return fn(hwnd, wParam, cast(NMHDR*) lParam); + } +} +int FORWARD_WM_NOTIFY(HWND hwnd, int idFrom, NMHDR* pnmhdr, + int function(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) fn) { + return fn(hwnd, WM_NOTIFY, idFrom, cast(LPARAM) pnmhdr); +} + +//#define CCSIZEOF_STRUCT(s, m) (((int)((PBYTE)(&((s*)0)->m)-((PBYTE)((s*)0))))+sizeof(((s*)0)->m)) + +LPARAM MAKEIPADDRESS(ubyte b1, ubyte b2, ubyte b3, ubyte b4) { + return (cast(DWORD) b1 << 24) + | (cast(DWORD) b2 << 16) + | (cast(DWORD) b3 << 8) + | (cast(DWORD) b4); +} + +LPARAM MAKEIPRANGE(ubyte low, ubyte high) { + return (cast(int) high << 8) | low; +} + +ubyte FIRST_IPADDRESS(LPARAM x) { + return cast(ubyte) (x >> 24); +} + +ubyte SECOND_IPADDRESS(LPARAM x) { + return cast(ubyte) (x >> 16); +} + +ubyte THIRD_IPADDRESS(LPARAM x) { + return cast(ubyte) (x >> 8); +} + +ubyte FOURTH_IPADDRESS(LPARAM x) { + return cast(ubyte) x; +} + +HWND Animate_Create(HWND hwndP, UINT id, DWORD dwStyle, + HINSTANCE hInstance) { + return CreateWindow(cast(TCHAR*)ANIMATE_CLASS.ptr, null, dwStyle, 0, 0, 0, 0, hwndP, + cast(HMENU) id, hInstance, null); +} + +BOOL Animate_Open(HWND hwnd, LPTSTR szName) { + return SendMessage(hwnd, ACM_OPEN, 0, cast(LPARAM) szName); +} + +BOOL Animate_OpenEx(HWND hwnd, HINSTANCE hInst, LPTSTR szName) { + return SendMessage(hwnd, ACM_OPEN, cast(WPARAM) hInst, + cast(LPARAM) szName); +} + +BOOL Animate_Play(HWND hwnd, int from, int to, int rep) { + return SendMessage(hwnd, ACM_PLAY, rep, + MAKELONG(cast(ushort) from, cast(ushort) to)); +} + +BOOL Animate_Stop(HWND hwnd) { + return SendMessage(hwnd, ACM_STOP, 0, 0); +} + +BOOL Animate_Close(HWND hwnd) { + return Animate_Open(hwnd, null); +} + +BOOL Animate_Seek(HWND hwnd, int frame) { + return Animate_Play(hwnd, frame, frame, 1); +} + +extern (Windows) { + HBITMAP CreateMappedBitmap(HINSTANCE, int, UINT, LPCOLORMAP, int); + HWND CreateStatusWindowA(LONG, LPCSTR, HWND, UINT); + HWND CreateStatusWindowW(LONG, LPCWSTR, HWND, UINT); + HWND CreateToolbarEx(HWND, DWORD, UINT, int, HINSTANCE, UINT, + LPCTBBUTTON, int, int, int, int, int, UINT); + HWND CreateUpDownControl(DWORD, int, int, int, int, HWND, int, HINSTANCE, + HWND, int, int, int); +} + +HWND DateTime_GetMonthCal(HWND hwnd) { + return cast(HWND) SendMessage(hwnd, DTM_GETMONTHCAL, 0, 0); +} + +COLORREF DateTime_GetMonthCalColor(HWND hwnd, int iColor) { + return cast(COLORREF) SendMessage(hwnd, DTM_GETMCCOLOR, iColor, 0); +} + +HFONT DateTime_GetMonthCalFont(HWND hwnd) { + return cast(HFONT) SendMessage(hwnd, DTM_GETMCFONT, 0, 0); +} + +DWORD DateTime_GetRange(HWND hwnd, LPSYSTEMTIME lpSysTimeArray) { + return SendMessage(hwnd, DTM_GETRANGE, 0, cast(LPARAM) lpSysTimeArray); +} + +DWORD DateTime_GetSystemtime(HWND hwnd, LPSYSTEMTIME lpSysTime) { + return SendMessage(hwnd, DTM_GETSYSTEMTIME, 0, cast(LPARAM) lpSysTime); +} + +BOOL DateTime_SetFormat(HWND hwnd, LPCTSTR lpszFormat) { + return cast(BOOL) SendMessage(hwnd, DTM_SETFORMAT, 0, + cast(LPARAM) lpszFormat); +} + +LRESULT DateTime_SetMonthCalColor(HWND hwnd, int iColor, COLORREF clr) { + return SendMessage(hwnd, DTM_SETMCCOLOR, cast(WPARAM) iColor, + cast(LPARAM) clr); +} + +void DateTime_SetMonthCalFont(HWND hwnd, HFONT hfont, BOOL fRedraw) { + SendMessage(hwnd, DTM_SETMCFONT, cast(WPARAM) hfont, fRedraw); +} + +BOOL DateTime_SetRange(HWND hwnd, WPARAM flags, LPSYSTEMTIME lpSysTimeArray) { + return cast(BOOL) SendMessage(hwnd, DTM_SETRANGE, flags, + cast(LPARAM) lpSysTimeArray); +} + +BOOL DateTime_SetSystemtime(HWND hwnd, WPARAM flag, LPSYSTEMTIME lpSysTime) { + return cast(BOOL) SendMessage(hwnd, DTM_SETSYSTEMTIME, flag, + cast(LPARAM) lpSysTime); +} + +extern (Windows) { + void DrawInsert(HWND, HWND, int); + void DrawStatusTextA(HDC, LPRECT, LPCSTR, UINT); + void DrawStatusTextW(HDC, LPRECT, LPCWSTR, UINT); + void GetEffectiveClientRect(HWND, LPRECT, LPINT); +} + +int Header_GetItemCount(HWND w) { + return SendMessage(w, HDM_GETITEMCOUNT, 0, 0); +} + +int Header_InsertItem(HWND w, int i, CPtr!(HDITEM) phdi) { + return SendMessage(w, HDM_INSERTITEM, i, cast(LPARAM) phdi); +} + +BOOL Header_DeleteItem(HWND w, int i) { + return cast(BOOL) SendMessage(w, HDM_DELETEITEM, i, 0); +} + +BOOL Header_GetItem(HWND w, int i, LPHDITEM phdi) { + return cast(BOOL) SendMessage(w, HDM_GETITEM, i, cast(LPARAM) phdi); +} + +BOOL Header_SetItem(HWND w, int i, CPtr!(HDITEM) phdi) { + return cast(BOOL) SendMessage(w, HDM_SETITEM, i, cast(LPARAM) phdi); +} + +BOOL Header_Layout(HWND w, LPHDLAYOUT playout) { + return SendMessage(w, HDM_LAYOUT, 0, cast(LPARAM) playout); +} + +static if (_WIN32_IE >= 0x300) { + int Header_OrderToIndex(HWND w, int i) { + return SendMessage(w, HDM_ORDERTOINDEX, i, 0); + } + + BOOL Header_GetItemRect(HWND w, int i, RECT* r) { + return cast(BOOL) SendMessage(w, HDM_GETITEMRECT, i, cast(LPARAM) r); + } + + BOOL Header_GetOrderArray(HWND w, int iSize, LPINT lpiArray) { + return cast(BOOL) SendMessage(w, HDM_GETORDERARRAY, iSize, + cast(LPARAM) lpiArray); + } + + BOOL Header_SetOrderArray(HWND w, int iSize, LPINT lpiArray) { + return cast(BOOL) SendMessage(w, HDM_SETORDERARRAY, iSize, + cast(LPARAM) lpiArray); + } + + HIMAGELIST Header_CreateDragImage(HWND w, int i) { + return cast(HIMAGELIST) SendMessage(w, HDM_CREATEDRAGIMAGE, i, 0); + } + + HIMAGELIST Header_SetImageList(HWND w, HIMAGELIST himl) { + return cast(HIMAGELIST) SendMessage(w, HDM_SETIMAGELIST, 0, + cast(LPARAM) himl); + } + + HIMAGELIST Header_GetImageList(HWND w) { + return cast(HIMAGELIST) SendMessage(w, HDM_GETIMAGELIST, 0, 0); + } +} + +static if (_WIN32_IE >= 0x400) { + BOOL Header_GetUnicodeFormat(HWND w) { + return cast(BOOL) SendMessage(w, HDM_GETUNICODEFORMAT, 0, 0); + } + + BOOL Header_SetUnicodeFormat(HWND w, BOOL fUnicode) { + return cast(BOOL) SendMessage(w, HDM_SETUNICODEFORMAT, fUnicode, 0); + } +} + +extern (Windows) { + HDSA DSA_Create(INT, INT); + BOOL DSA_Destroy(HDSA); + VOID DSA_DestroyCallback(HDSA, PFNDSAENUMCALLBACK, PVOID); + PVOID DSA_GetItemPtr(HDSA, INT); + INT DSA_InsertItem(HDSA, INT, PVOID); + HDPA DPA_Create(INT); + BOOL DPA_Destroy(HDPA); + PVOID DPA_DeletePtr(HDPA, INT); + BOOL DPA_DeleteAllPtrs(HDPA); + VOID DPA_EnumCallback(HDPA, PFNDPAENUMCALLBACK, PVOID); + VOID DPA_DestroyCallback(HDPA, PFNDPAENUMCALLBACK, PVOID); + BOOL DPA_SetPtr(HDPA, INT, PVOID); + INT DPA_InsertPtr(HDPA, INT, PVOID); + PVOID DPA_GetPtr(HDPA, INT_PTR); + BOOL DPA_Sort(HDPA, PFNDPACOMPARE, LPARAM); + INT DPA_Search(HDPA, PVOID, INT, PFNDPACOMPARE, LPARAM, UINT); + BOOL Str_SetPtrW(LPWSTR*, LPCWSTR); + + static if (_WIN32_IE >= 0x400) { + BOOL FlatSB_EnableScrollBar(HWND, INT, UINT); + BOOL FlatSB_ShowScrollBar(HWND, INT, BOOL); + BOOL FlatSB_GetScrollRange(HWND, INT, LPINT, LPINT); + BOOL FlatSB_GetScrollInfo(HWND, INT, LPSCROLLINFO); + INT FlatSB_GetScrollPos(HWND, INT); + BOOL FlatSB_GetScrollProp(HWND, INT, LPINT); + version (Win64) { + BOOL FlatSB_GetScrollPropPtr(HWND, INT, PINT_PTR); + } else { + alias FlatSB_GetScrollProp FlatSB_GetScrollPropPtr; + } + INT FlatSB_SetScrollPos(HWND, INT, INT, BOOL); + INT FlatSB_SetScrollInfo(HWND, INT, LPSCROLLINFO, BOOL); + INT FlatSB_SetScrollRange(HWND, INT, INT, INT, BOOL); + BOOL FlatSB_SetScrollProp(HWND, UINT, INT_PTR, BOOL); + alias FlatSB_SetScrollProp FlatSB_SetScrollPropPtr; + BOOL InitializeFlatSB(HWND); + HRESULT UninitializeFlatSB(HWND); + } + + static if (_WIN32_WINNT >= 0x501) { + BOOL SetWindowSubclass(HWND, SUBCLASSPROC, UINT_PTR, DWORD_PTR); + BOOL GetWindowSubclass(HWND, SUBCLASSPROC, UINT_PTR, DWORD_PTR*); + BOOL RemoveWindowSubclass(HWND, SUBCLASSPROC, UINT_PTR); + LRESULT DefSubclassProc(HWND, UINT, WPARAM, LPARAM); + INT DrawShadowText(HDC, LPCWSTR, UINT, RECT*, DWORD, COLORREF, + COLORREF, INT, INT); + } + + int ImageList_Add(HIMAGELIST, HBITMAP, HBITMAP); + int ImageList_AddMasked(HIMAGELIST, HBITMAP, COLORREF); + BOOL ImageList_BeginDrag(HIMAGELIST, int, int, int); + HIMAGELIST ImageList_Create(int, int, UINT, int, int); + BOOL ImageList_Destroy(HIMAGELIST); + BOOL ImageList_DragEnter(HWND, int, int); + BOOL ImageList_DragLeave(HWND); + BOOL ImageList_DragMove(int, int); + BOOL ImageList_DragShowNolock(BOOL); + BOOL ImageList_Draw(HIMAGELIST, int, HDC, int, int, UINT); + BOOL ImageList_DrawEx(HIMAGELIST, int, HDC, int, int, int, int, COLORREF, + COLORREF, UINT); + void ImageList_EndDrag(PVOID); + COLORREF ImageList_GetBkColor(HIMAGELIST); + HIMAGELIST ImageList_GetDragImage(LPPOINT, LPPOINT); + HICON ImageList_GetIcon(HIMAGELIST, int, UINT); + BOOL ImageList_GetIconSize(HIMAGELIST, int*, int*); + int ImageList_GetImageCount(HIMAGELIST); + BOOL ImageList_GetImageInfo(HIMAGELIST, int, IMAGEINFO*); + HIMAGELIST ImageList_LoadImageA(HINSTANCE, LPCSTR, int, int, COLORREF, + UINT, UINT); + HIMAGELIST ImageList_LoadImageW(HINSTANCE, LPCWSTR, int, int, COLORREF, + UINT, UINT); + HIMAGELIST ImageList_Merge(HIMAGELIST, int, HIMAGELIST, int, int, int); + BOOL ImageList_Remove(HIMAGELIST, int); + BOOL ImageList_Replace(HIMAGELIST, int, HBITMAP, HBITMAP); + int ImageList_ReplaceIcon(HIMAGELIST, int, HICON); + COLORREF ImageList_SetBkColor(HIMAGELIST, COLORREF); + BOOL ImageList_SetDragCursorImage(HIMAGELIST, int, int, int); + BOOL ImageList_SetIconSize(HIMAGELIST, int, int); + BOOL ImageList_SetOverlayImage(HIMAGELIST, int, int); + + //#ifdef _OBJIDL_H + HIMAGELIST ImageList_Read(LPSTREAM); + BOOL ImageList_Write(HIMAGELIST, LPSTREAM); + //#endif + + static if (_WIN32_IE >= 0x400) { + HIMAGELIST ImageList_Duplicate(HIMAGELIST himl); + } + + void InitCommonControls(); + + static if (_WIN32_IE >= 0x300) { + BOOL InitCommonControlsEx(LPINITCOMMONCONTROLSEX); + } + + int LBItemFromPt(HWND, POINT, BOOL); +} + +int ImageList_AddIcon(HIMAGELIST himl, HICON hicon) { + return ImageList_ReplaceIcon(himl, -1, hicon); +} + +HICON ImageList_ExtractIcon(HINSTANCE hi, HIMAGELIST himl, int i) { + return ImageList_GetIcon(himl, i, 0); +} + +HIMAGELIST ImageList_LoadBitmap(HINSTANCE hi, LPCTSTR lpbmp, int cx, + int cGrow, COLORREF crMask) { + return ImageList_LoadImage(hi, lpbmp, cx, cGrow, crMask, IMAGE_BITMAP, 0); +} + +BOOL ImageList_RemoveAll(HIMAGELIST himl) { + return ImageList_Remove(himl, -1); +} + +COLORREF ListView_GetBkColor(HWND w) { + return cast(COLORREF) SendMessage(w, LVM_GETBKCOLOR, 0, 0); +} + +HIMAGELIST ListView_GetImageList(HWND w, int i) { + return cast(HIMAGELIST) SendMessage(w, LVM_GETIMAGELIST, i, 0); +} + +int ListView_GetItemCount(HWND w) { + return SendMessage(w, LVM_GETITEMCOUNT, 0, 0); +} + +BOOL ListView_GetItem(HWND w, LPLVITEM pitem) { + return cast(BOOL) SendMessage(w, LVM_GETITEM, 0, cast(LPARAM) pitem); +} + +BOOL ListView_SetBkColor(HWND w, COLORREF c) { + return cast(BOOL) SendMessage(w, LVM_SETBKCOLOR, 0, cast(LPARAM) c); +} + +HIMAGELIST ListView_SetImageList(HWND w, HIMAGELIST h, int i) { + return cast(HIMAGELIST) SendMessage(w, LVM_SETIMAGELIST, i, + cast(LPARAM) h); +} + +BOOL ListView_SetItem(HWND w, CPtr!(LV_ITEM) i) { + return cast(BOOL) SendMessage(w, LVM_SETITEM, 0, cast(LPARAM) i); +} + +int ListView_InsertItem(HWND w, CPtr!(LV_ITEM) i) { + return SendMessage(w, LVM_INSERTITEM, 0, cast(LPARAM) i); +} + +BOOL ListView_DeleteItem(HWND w, int i) { + return cast(BOOL) SendMessage(w, LVM_DELETEITEM, i, 0); +} + +BOOL ListView_DeleteAllItems(HWND w) { + return cast(BOOL) SendMessage(w, LVM_DELETEALLITEMS, 0, 0); +} + +UINT ListView_GetCallbackMask(HWND w) { + return cast(UINT) SendMessage(w, LVM_GETCALLBACKMASK, 0, 0); +} + +BOOL ListView_SetCallbackMask(HWND w, UINT m) { + return cast(BOOL) SendMessage(w, LVM_SETCALLBACKMASK, m, 0); +} + +int ListView_GetNextItem(HWND w, int i, UINT f) { + return SendMessage(w, LVM_GETNEXTITEM, i, MAKELPARAM(cast(ushort)f, 0)); +} + +int ListView_FindItem(HWND w, int i, CPtr!(LV_FINDINFO) p) { + return SendMessage(w, LVM_FINDITEM, i, cast(LPARAM) p); +} + +BOOL ListView_GetItemRect(HWND w, int i, LPRECT p, int c) { + return cast(BOOL) SendMessage(w, LVM_GETITEMRECT, i, p ? + (p.left = c, cast(LPARAM) p) : 0); +} + +BOOL ListView_SetItemPosition(HWND w, int i, int x, int y) { + return cast(BOOL) SendMessage(w, LVM_SETITEMPOSITION, i, MAKELPARAM(cast(ushort)x, cast(ushort)y)); +} + +BOOL ListView_GetItemPosition(HWND w, int i, POINT* p) { + return cast(BOOL) SendMessage(w, LVM_GETITEMPOSITION, i, cast(LPARAM) p); +} + +DWORD ListView_GetItemSpacing(HWND w, BOOL f) { + return cast(DWORD) SendMessage(w, LVM_GETITEMSPACING, f, 0); +} + +int ListView_GetStringWidth(HWND w, LPCSTR s) { + return SendMessage(w, LVM_GETSTRINGWIDTH, 0, cast(LPARAM) s); +} + +int ListView_HitTest(HWND w, LPLVHITTESTINFO p) { + return SendMessage(w, LVM_HITTEST, 0, cast(LPARAM) p); +} + +BOOL ListView_EnsureVisible(HWND w, int i, BOOL f) { + return cast(BOOL) SendMessage(w, LVM_ENSUREVISIBLE, i, MAKELPARAM(cast(ushort)f, 0)); +} + +BOOL ListView_Scroll(HWND w, int dx, int dy) { + return cast(BOOL) SendMessage(w, LVM_SCROLL, dx, dy); +} + +BOOL ListView_RedrawItems(HWND w, int f, int l) { + return cast(BOOL) SendMessage(w, LVM_REDRAWITEMS, f, l); +} + +BOOL ListView_Arrange(HWND w, UINT c) { + return cast(BOOL) SendMessage(w, LVM_ARRANGE, c, 0); +} + +HWND ListView_EditLabel(HWND w, int i) { + return cast(HWND) SendMessage(w, LVM_EDITLABEL, i, 0); +} + +HWND ListView_GetEditControl(HWND w) { + return cast(HWND) SendMessage(w, LVM_GETEDITCONTROL, 0, 0); +} + +BOOL ListView_GetColumn(HWND w, int i, LPLVCOLUMN p) { + return cast(BOOL) SendMessage(w, LVM_GETCOLUMN, i, cast(LPARAM) p); +} + +BOOL ListView_SetColumn(HWND w, int i, CPtr!(LV_COLUMN) p) { + return cast(BOOL) SendMessage(w, LVM_SETCOLUMN, i, cast(LPARAM) p); +} + +int ListView_InsertColumn(HWND w, int i, CPtr!(LV_COLUMN) p) { + return SendMessage(w, LVM_INSERTCOLUMN, i, cast(LPARAM) p); +} + +BOOL ListView_DeleteColumn(HWND w, int i) { + return cast(BOOL) SendMessage(w, LVM_DELETECOLUMN, i, 0); +} + +int ListView_GetColumnWidth(HWND w, int i) { + return SendMessage(w, LVM_GETCOLUMNWIDTH, i, 0); +} + +BOOL ListView_SetColumnWidth(HWND w, int i, int x) { + return cast(BOOL) SendMessage(w, LVM_SETCOLUMNWIDTH, i, MAKELPARAM(cast(ushort)x, 0)); +} + +HIMAGELIST ListView_CreateDragImage(HWND w, int i, LPPOINT p) { + return cast(HIMAGELIST) SendMessage(w, LVM_CREATEDRAGIMAGE, i, + cast(LPARAM) p); +} + +BOOL ListView_GetViewRect(HWND w, RECT* p) { + return cast(BOOL) SendMessage(w, LVM_GETVIEWRECT, 0, cast(LPARAM) p); +} + +COLORREF ListView_GetTextColor(HWND w) { + return cast(COLORREF) SendMessage(w, LVM_GETTEXTCOLOR, 0, 0); +} + +BOOL ListView_SetTextColor(HWND w, COLORREF c) { + return cast(BOOL) SendMessage(w, LVM_SETTEXTCOLOR, 0, cast(LPARAM) c); +} + +COLORREF ListView_GetTextBkColor(HWND w) { + return cast(COLORREF) SendMessage(w, LVM_GETTEXTBKCOLOR, 0, 0); +} + +BOOL ListView_SetTextBkColor(HWND w, COLORREF c) { + return cast(BOOL) SendMessage(w, LVM_SETTEXTBKCOLOR, 0, cast(LPARAM) c); +} + +int ListView_GetTopIndex(HWND w) { + return SendMessage(w, LVM_GETTOPINDEX, 0, 0); +} + +int ListView_GetCountPerPage(HWND w) { + return SendMessage(w, LVM_GETCOUNTPERPAGE, 0, 0); +} + +BOOL ListView_GetOrigin(HWND w, LPPOINT p) { + return cast(BOOL) SendMessage(w, LVM_GETORIGIN, 0, cast(LPARAM) p); +} + +BOOL ListView_Update(HWND w, WPARAM i) { + return cast(BOOL) SendMessage(w, LVM_UPDATE, i, 0); +} + +void ListView_SetItemState(HWND w, int i, UINT d, UINT m) { + LV_ITEM _lvi; + _lvi.stateMask = m; + _lvi.state = d; + SendMessage(w, LVM_SETITEMSTATE, i, cast(LPARAM) &_lvi); +} + +UINT ListView_GetItemState(HWND w, int i, UINT m) { + return cast(UINT) SendMessage(w, LVM_GETITEMSTATE, i, m); +} + +void ListView_GetItemText(HWND w, int i, int iS, LPTSTR s, int n) { + LV_ITEM _lvi; + _lvi.iSubItem = iS; + _lvi.cchTextMax = n; + _lvi.pszText = s; + SendMessage(w, LVM_GETITEMTEXT, i, cast(LPARAM) &_lvi); +} + +void ListView_SetItemText(HWND w, int i, int iS, LPTSTR s) { + LV_ITEM _lvi; + _lvi.iSubItem = iS; + _lvi.pszText = s; + SendMessage(w, LVM_SETITEMTEXT, i, cast(LPARAM) &_lvi); +} + +void ListView_SetItemCount(HWND w, int n) { + SendMessage(w, LVM_SETITEMCOUNT, n, 0); +} + +BOOL ListView_SortItems(HWND w, PFNLVCOMPARE f, LPARAM l) { + return cast(BOOL) SendMessage(w, LVM_SORTITEMS, l, cast(LPARAM) f); +} + +void ListView_SetItemPosition32(HWND w, int i, int x, int y) { + POINT p; + p.x = x; + p.y = y; + SendMessage(w, LVM_SETITEMPOSITION32, i, cast(LPARAM) &p); +} + +UINT ListView_GetSelectedCount(HWND w) { + return cast(UINT) SendMessage(w, LVM_GETSELECTEDCOUNT, 0, 0); +} + +UINT ListView_GetCheckState(HWND w, UINT i) { + return ((cast(UINT) SendMessage(w, LVM_GETITEMSTATE, i, LVIS_STATEIMAGEMASK)) >> 12) - 1; +} + +void ListView_SetCheckState(HWND w, UINT i, BOOL f) { + ListView_SetItemState(w, i, INDEXTOSTATEIMAGEMASK(f ? 2 : 1), + LVIS_STATEIMAGEMASK); +} + +BOOL ListView_GetISearchString(HWND w, LPSTR lpsz) { + return cast(BOOL) SendMessage(w, LVM_GETISEARCHSTRING, 0, + cast(LPARAM) lpsz); +} + +void ListView_CancelEditLabel(HWND w) { + SendMessage(w, LVM_CANCELEDITLABEL, 0, 0); +} + +int ListView_EnableGroupView(HWND w, BOOL i) { + return cast(int) SendMessage(w, LVM_ENABLEGROUPVIEW, i, 0); +} + +static if (_WIN32_WINDOWS >= 0x410 && (_WIN32_WINNT >= 0x500 || _WIN32_IE >= 0x500)) { + BOOL ListView_SortItemsEx(HWND w, PFNLVCOMPARE c, LPARAM p) { + return SendMessage(w, LVM_SORTITEMSEX, cast(WPARAM) p, cast(LPARAM)c); + } +} + +static if (_WIN32_WINNT >= 0x501) { + int ListView_GetGroupInfo(HWND w, int i, PLVGROUP p) { + return SendMessage(w, LVM_GETGROUPINFO, i, cast(LPARAM) p); + } + + void ListView_GetGroupMetrics(HWND w, PLVGROUPMETRICS p) { + SendMessage(w, LVM_GETGROUPMETRICS, 0, cast(LPARAM) p); + } + + BOOL ListView_GetInsertMark(HWND w, PLVINSERTMARK p) { + return SendMessage(w, LVM_GETINSERTMARK, 0, cast(LPARAM) p); + } + + COLORREF ListView_GetInsertMarkColor(HWND w) { + return SendMessage(w, LVM_GETINSERTMARKCOLOR, 0, 0); + } + + int ListView_GetInsertMarkRect(HWND w, LPRECT p) { + return SendMessage(w, LVM_GETINSERTMARKRECT, 0, cast(LPARAM) p); + } + + COLORREF ListView_GetOutlineColor(HWND w) { + return SendMessage(w, LVM_GETOUTLINECOLOR, 0, 0); + } + + UINT ListView_GetSelectedColumn(HWND w) { + return SendMessage(w, LVM_GETSELECTEDCOLUMN, 0, 0); + } + + void ListView_GetTileInfo(HWND w, PLVTILEINFO p) { + SendMessage(w, LVM_GETTILEINFO, 0, cast(LPARAM) p); + } + + void ListView_GetTileViewInfo(HWND w, PLVTILEVIEWINFO p) { + SendMessage(w, LVM_GETTILEVIEWINFO, 0, cast(LPARAM) p); + } + + DWORD ListView_GetView(HWND w) { + return SendMessage(w, LVM_GETVIEW, 0, 0); + } + + BOOL ListView_HasGroup(HWND w, int i) { + return SendMessage(w, LVM_HASGROUP, i, 0); + } + + int ListView_InsertGroup(HWND w, int i, PLVGROUP p) { + return SendMessage(w, LVM_INSERTGROUP, i, cast(LPARAM) p); + } + + void ListView_InsertGroupSorted(HWND w, PLVINSERTGROUPSORTED p) { + SendMessage(w, LVM_INSERTGROUPSORTED, cast(WPARAM) p, 0); + } + + BOOL ListView_InsertMarkHitTest(HWND w, LPPOINT p, PLVINSERTMARK t) { + return SendMessage(w, LVM_INSERTMARKHITTEST, cast(WPARAM) p, cast(LPARAM) t); + } + + BOOL ListView_IsGroupViewEnabled(HWND w) { + return SendMessage(w, LVM_ISGROUPVIEWENABLED, 0, 0); + } + + UINT ListView_MapIDToIndex(HWND w, UINT i) { + return SendMessage(w, LVM_MAPIDTOINDEX, i, 0); + } + + /* ??? MSDN documents this as "Not implemented", except in relation to + * Windows CE/Mobile. + */ + void ListView_MoveGroup(HWND w, int i, int t) { + SendMessage(w, LVM_MOVEGROUP, i, t); + } + + void ListView_RemoveAllGroups(HWND w) { + SendMessage(w, LVM_REMOVEALLGROUPS, 0, 0); + } + + int ListView_RemoveGroup(HWND w, int i) { + return SendMessage(w, LVM_REMOVEGROUP, i, 0); + } + + int ListView_SetGroupInfo(HWND w, int i, PLVGROUP p) { + return SendMessage(w, LVM_SETGROUPINFO, i, cast(LPARAM) p); + } + + void ListView_SetGroupMetrics(HWND w, PLVGROUPMETRICS p) { + SendMessage(w, LVM_SETGROUPMETRICS, 0, cast(LPARAM) p); + } + + BOOL ListView_SetInfoTip(HWND w, PLVSETINFOTIP p) { + return SendMessage(w, LVM_SETINFOTIP, 0, cast(LPARAM) p); + } + + BOOL ListView_SetInsertMark(HWND w, PLVINSERTMARK p) { + return SendMessage(w, LVM_SETINSERTMARK, 0, cast(LPARAM) p); + } + + COLORREF ListView_SetInsertMarkColor(HWND w, COLORREF c) { + return SendMessage(w, LVM_SETINSERTMARKCOLOR, 0, c); + } + + COLORREF ListView_SetOutlineColor(HWND w, COLORREF c) { + return SendMessage(w, LVM_SETOUTLINECOLOR, 0, c); + } + + void ListView_SetSelectedColumn(HWND w, int i) { + SendMessage(w, LVM_SETSELECTEDCOLUMN, i, 0); + } + + BOOL ListView_SetTileInfo(HWND w, PLVTILEINFO p) { + return SendMessage(w, LVM_SETTILEINFO, 0, cast(LPARAM) p); + } + + BOOL ListView_SetTileViewInfo(HWND w, PLVTILEVIEWINFO p) { + return SendMessage(w, LVM_SETTILEVIEWINFO, 0, cast(LPARAM) p); + } + + int ListView_SetView(HWND w, DWORD i) { + return SendMessage(w, LVM_SETVIEW, i, 0); + } + + int ListView_SortGroups(HWND w, PFNLVGROUPCOMPARE c, LPVOID p) { + return SendMessage(w, LVM_SORTGROUPS, cast(WPARAM) c, cast(LPARAM) p); + } +} + +static if (_WIN32_WINNT >= 0x501) { + enum { + CBM_FIRST = 0x1700, + CB_SETMINVISIBLE = CBM_FIRST + 1, + CB_GETMINVISIBLE = CBM_FIRST + 2 + } + + BOOL ComboBox_SetMinVisible(HWND w, INT i) { + return cast(BOOL) SendMessage(w, CB_SETMINVISIBLE, cast(WPARAM) i, 0); + } + + int ComboBox_GetMinVisible(HWND w) { + return SendMessage(w, CB_GETMINVISIBLE, 0, 0); + } +} + +extern (Windows) BOOL MakeDragList(HWND); +extern (Windows) void MenuHelp(UINT, WPARAM, LPARAM, HMENU, HINSTANCE, HWND, + PUINT); + +COLORREF MonthCal_GetColor(HWND hwnd, INT icolor) { + return cast(COLORREF) SendMessage(hwnd, MCM_GETCOLOR, + cast(WPARAM) icolor, 0); +} + +BOOL MonthCal_GetCurSel(HWND hwnd, LPSYSTEMTIME lpsystime) { + return cast(BOOL) SendMessage(hwnd, MCM_GETCURSEL, 0, + cast(LPARAM) lpsystime); +} + +DWORD MonthCal_GetFirstDayOfWeek(HWND hwnd) { + return cast(DWORD) SendMessage(hwnd, MCM_GETFIRSTDAYOFWEEK, 0, 0); +} + +DWORD MonthCal_GetMaxSelCount(HWND hwnd) { + return cast(DWORD) SendMessage(hwnd, MCM_GETMAXSELCOUNT, 0, 0); +} + +DWORD MonthCal_GetMaxTodayWidth(HWND hwnd) { + return cast(DWORD) SendMessage(hwnd, MCM_GETMAXTODAYWIDTH, 0, 0); +} + +BOOL MonthCal_GetMinReqRect(HWND hwnd, LPRECT lpRectInfo) { + return cast(BOOL) SendMessage(hwnd, MCM_GETMINREQRECT, 0, + cast(LPARAM) lpRectInfo); +} + +INT MonthCal_GetMonthDelta(HWND hwnd) { + return SendMessage(hwnd, MCM_GETMONTHDELTA, 0, 0); +} + +INT MonthCal_GetMonthRange(HWND hwnd, DWORD flag, LPSYSTEMTIME systimearray) { + return SendMessage(hwnd, MCM_GETMONTHRANGE, cast(WPARAM) flag, + cast(LPARAM) systimearray); +} + +DWORD MonthCal_GetRange(HWND hwnd, LPSYSTEMTIME systimearray) { + return cast(DWORD) SendMessage(hwnd, MCM_GETRANGE, 0, + cast(LPARAM) systimearray); +} + +BOOL MonthCal_GetSelRange(HWND hwnd, LPSYSTEMTIME systimearray) { + return cast(BOOL) SendMessage(hwnd, MCM_GETSELRANGE, 0, + cast(LPARAM) systimearray); +} + +BOOL MonthCal_GetToday(HWND hwnd, LPSYSTEMTIME systime) { + return cast(BOOL) SendMessage(hwnd, MCM_GETTODAY, 0, + cast(LPARAM) systime); +} + +BOOL MonthCal_GetUnicodeFormat(HWND hwnd) { + return cast(BOOL) SendMessage(hwnd, MCM_GETUNICODEFORMAT, 0, 0); +} + +DWORD MonthCal_HitTest(HWND hwnd, PMCHITTESTINFO pmchittest) { + return cast(DWORD) SendMessage(hwnd, MCM_HITTEST, 0, + cast(LPARAM) pmchittest); +} + +COLORREF MonthCal_SetColor(HWND hwnd, INT icolor, COLORREF clr) { + return cast(COLORREF) SendMessage(hwnd, MCM_SETCOLOR, cast(WPARAM) icolor, + cast(LPARAM) clr); +} + +BOOL MonthCal_SetCurSel(HWND hwnd, LPSYSTEMTIME lpsystime) { + return cast(BOOL) SendMessage(hwnd, MCM_SETCURSEL, 0, + cast(LPARAM) lpsystime); +} + +BOOL MonthCal_SetDayState(HWND hwnd, INT imonths, LPMONTHDAYSTATE lpdatestatearray) { + return cast(BOOL) SendMessage(hwnd, MCM_SETDAYSTATE, cast(WPARAM) imonths, + cast(LPARAM) lpdatestatearray); +} + +DWORD MonthCal_SetFirstDayOfWeek(HWND hwnd, INT iday) { + return cast(DWORD) SendMessage(hwnd, MCM_SETFIRSTDAYOFWEEK, 0, + cast(LPARAM) iday); +} + +BOOL MonthCal_SetMaxSelCount(HWND hwnd, UINT imax) { + return cast(BOOL) SendMessage(hwnd, MCM_SETMAXSELCOUNT, + cast(WPARAM) imax, 0); +} + +INT MonthCal_SetMonthDelta(HWND hwnd, INT idelta) { + return SendMessage(hwnd, MCM_SETMONTHDELTA, cast(WPARAM) idelta, 0); +} + +BOOL MonthCal_SetSelRange(HWND hwnd, LPSYSTEMTIME systimearray) { + return cast(BOOL) SendMessage(hwnd, MCM_SETSELRANGE, 0, + cast(LPARAM) systimearray); +} + +void MonthCal_SetToday(HWND hwnd, LPSYSTEMTIME systime) { + SendMessage(hwnd, MCM_SETTODAY, 0, cast(LPARAM) systime); +} + +BOOL MonthCal_SetUnicodeFormat(HWND hwnd, BOOL unicode) { + return cast(BOOL) SendMessage(hwnd, MCM_SETUNICODEFORMAT, + cast(WPARAM) unicode, 0); +} + +BOOL MonthCal_SetRange(HWND w, DWORD f, LPSYSTEMTIME st) { + return cast(BOOL) SendMessage(w, MCM_SETRANGE, cast(WPARAM) f, + cast(LPARAM) st); +} + +extern (Windows) BOOL ShowHideMenuCtl(HWND, UINT, PINT); + +BOOL TabCtrl_GetItem(HWND w, int i, LPTCITEM p) { + return cast(BOOL) SendMessage(w, TCM_GETITEM, i, cast(LPARAM) p); +} + +BOOL TabCtrl_SetItem(HWND w, int i, LPTCITEM p) { + return cast(BOOL) SendMessage(w, TCM_SETITEM, i, cast(LPARAM) p); +} + +int TabCtrl_InsertItem(HWND w, int i, CPtr!(TC_ITEM) p) { + return SendMessage(w, TCM_INSERTITEM, i, cast(LPARAM) p); +} + +BOOL TabCtrl_DeleteItem(HWND w, int i) { + return cast(BOOL) SendMessage(w, TCM_DELETEITEM, i, 0); +} + +BOOL TabCtrl_DeleteAllItems(HWND w) { + return cast(BOOL) SendMessage(w, TCM_DELETEALLITEMS, 0, 0); +} + +BOOL TabCtrl_GetItemRect(HWND w, int i, LPRECT p) { + return cast(BOOL) SendMessage(w, TCM_GETITEMRECT, i, cast(LPARAM) p); +} + +int TabCtrl_GetCurSel(HWND w) { + return SendMessage(w, TCM_GETCURSEL, 0, 0); +} + +int TabCtrl_SetCurSel(HWND w, int i) { + return SendMessage(w, TCM_SETCURSEL, i, 0); +} + +int TabCtrl_HitTest(HWND w, LPTCHITTESTINFO p) { + return SendMessage(w, TCM_HITTEST, 0, cast(LPARAM) p); +} + +BOOL TabCtrl_SetItemExtra(HWND w, int c) { + return cast(BOOL) SendMessage(w, TCM_SETITEMEXTRA, c, 0); +} + +int TabCtrl_AdjustRect(HWND w, BOOL b, LPRECT p) { + return SendMessage(w, TCM_ADJUSTRECT, b, cast(LPARAM) p); +} + +DWORD TabCtrl_SetItemSize(HWND w, int x, int y) { + return cast(DWORD) SendMessage(w, TCM_SETITEMSIZE, 0, MAKELPARAM(cast(ushort)x, cast(ushort)y)); +} + +void TabCtrl_RemoveImage(HWND w, int i) { + SendMessage(w, TCM_REMOVEIMAGE, i, 0); +} + +void TabCtrl_SetPadding(HWND w, int x, int y) { + SendMessage(w, TCM_SETPADDING, 0, MAKELPARAM(cast(ushort)x, cast(ushort)y)); +} + +int TabCtrl_GetRowCount(HWND w) { + return SendMessage(w, TCM_GETROWCOUNT, 0, 0); +} + +HWND TabCtrl_GetToolTips(HWND w) { + return cast(HWND) SendMessage(w, TCM_GETTOOLTIPS, 0, 0); +} + +void TabCtrl_SetToolTips(HWND w, HWND t) { + SendMessage(w, TCM_SETTOOLTIPS, cast(WPARAM) t, 0); +} + +int TabCtrl_GetCurFocus(HWND w) { + return SendMessage(w, TCM_GETCURFOCUS, 0, 0); +} + +void TabCtrl_SetCurFocus(HWND w, int i) { + SendMessage(w, TCM_SETCURFOCUS, i, 0); +} + +HIMAGELIST TabCtrl_GetImageList(HWND w) { + return cast(HIMAGELIST) SendMessage(w, TCM_GETIMAGELIST, 0, 0); +} + +HIMAGELIST TabCtrl_SetImageList(HWND w, HIMAGELIST h) { + return cast(HIMAGELIST) SendMessage(w, TCM_SETIMAGELIST, 0, + cast(LPARAM) h); +} + +int TabCtrl_GetItemCount(HWND w) { + return SendMessage(w, TCM_GETITEMCOUNT, 0, 0); +} + +extern (Windows) BOOL _TrackMouseEvent(LPTRACKMOUSEEVENT); + +HTREEITEM TreeView_InsertItem(HWND w, LPTVINSERTSTRUCT i) { + return cast(HTREEITEM) SendMessage(w, TVM_INSERTITEM, 0, cast(LPARAM) i); +} + +BOOL TreeView_DeleteItem(HWND w, HTREEITEM i) { + return cast(BOOL) SendMessage(w, TVM_DELETEITEM, 0, cast(LPARAM) i); +} + +BOOL TreeView_DeleteAllItems(HWND w) { + return cast(BOOL) SendMessage(w, TVM_DELETEITEM, 0, cast(LPARAM) TVI_ROOT); +} + +BOOL TreeView_Expand(HWND w, HTREEITEM i, UINT c) { + return cast(BOOL) SendMessage(w, TVM_EXPAND, c, cast(LPARAM) i); +} + +BOOL TreeView_GetItemRect(HWND w, HTREEITEM i, LPRECT p, BOOL c) { + *cast(HTREEITEM*) p = i; + return cast(BOOL) SendMessage(w, TVM_GETITEMRECT, c, cast(LPARAM) p); +} + +UINT TreeView_GetCount(HWND w) { + return cast(UINT) SendMessage(w, TVM_GETCOUNT, 0, 0); +} + +UINT TreeView_GetIndent(HWND w) { + return cast(UINT) SendMessage(w, TVM_GETINDENT, 0, 0); +} + +BOOL TreeView_SetIndent(HWND w, INT i) { + return cast(BOOL) SendMessage(w, TVM_SETINDENT, i, 0); +} + +HIMAGELIST TreeView_GetImageList(HWND w, INT i) { + return cast(HIMAGELIST) SendMessage(w, TVM_GETIMAGELIST, i, 0); +} + +HIMAGELIST TreeView_SetImageList(HWND w, HIMAGELIST h, INT i) { + return cast(HIMAGELIST) SendMessage(w, TVM_SETIMAGELIST, i, + cast(LPARAM) h); +} + +HTREEITEM TreeView_GetNextItem(HWND w, HTREEITEM i, UINT c) { + return cast(HTREEITEM) SendMessage(w, TVM_GETNEXTITEM, c, cast(LPARAM) i); +} + +HTREEITEM TreeView_GetChild(HWND w, HTREEITEM i) { + return TreeView_GetNextItem(w, i, TVGN_CHILD); +} + +HTREEITEM TreeView_GetNextSibling(HWND w, HTREEITEM i) { + return TreeView_GetNextItem(w, i, TVGN_NEXT); +} + +HTREEITEM TreeView_GetPrevSibling(HWND w, HTREEITEM i) { + return TreeView_GetNextItem(w, i, TVGN_PREVIOUS); +} + +HTREEITEM TreeView_GetParent(HWND w, HTREEITEM i) { + return TreeView_GetNextItem(w, i, TVGN_PARENT); +} + +HTREEITEM TreeView_GetFirstVisible(HWND w) { + return TreeView_GetNextItem(w, null, TVGN_FIRSTVISIBLE); +} + +HTREEITEM TreeView_GetNextVisible(HWND w, HTREEITEM i) { + return TreeView_GetNextItem(w, i, TVGN_NEXTVISIBLE); +} + +HTREEITEM TreeView_GetPrevVisible(HWND w, HTREEITEM i) { + return TreeView_GetNextItem(w, i, TVGN_PREVIOUSVISIBLE); +} + +HTREEITEM TreeView_GetSelection(HWND w) { + return TreeView_GetNextItem(w, null, TVGN_CARET); +} + +HTREEITEM TreeView_GetDropHilight(HTREEITEM w) { + return TreeView_GetNextItem(w, null, TVGN_DROPHILITE); +} + +HTREEITEM TreeView_GetRoot(HWND w) { + return TreeView_GetNextItem(w, null, TVGN_ROOT); +} + +BOOL TreeView_Select(HWND w, HTREEITEM i, UINT c) { + return cast(BOOL) SendMessage(w, TVM_SELECTITEM, c, cast(LPARAM) i); +} + +BOOL TreeView_SelectItem(HWND w, HTREEITEM i) { + return TreeView_Select(w, i, TVGN_CARET); +} + +BOOL TreeView_SelectDropTarget(HWND w, HTREEITEM i) { + return TreeView_Select(w, i, TVGN_DROPHILITE); +} + +BOOL TreeView_SelectSetFirstVisible(HWND w, HTREEITEM i) { + return TreeView_Select(w, i, TVGN_FIRSTVISIBLE); +} + +BOOL TreeView_GetItem(HWND w, LPTVITEM i) { + return cast(BOOL) SendMessage(w, TVM_GETITEM, 0, cast(LPARAM) i); +} + +BOOL TreeView_SetItem(HWND w, CPtr!(TV_ITEM) i) { + return cast(BOOL) SendMessage(w, TVM_SETITEM, 0, cast(LPARAM) i); +} + +HWND TreeView_EditLabel(HWND w, HTREEITEM i) { + return cast(HWND) SendMessage(w, TVM_EDITLABEL, 0, cast(LPARAM) i); +} + +HWND TreeView_GetEditControl(HWND w) { + return cast(HWND) SendMessage(w, TVM_GETEDITCONTROL, 0, 0); +} + +UINT TreeView_GetVisibleCount(HWND w) { + return cast(UINT) SendMessage(w, TVM_GETVISIBLECOUNT, 0, 0); +} + +HTREEITEM TreeView_HitTest(HWND w, LPTVHITTESTINFO p) { + return cast(HTREEITEM) SendMessage(w, TVM_HITTEST, 0, cast(LPARAM) p); +} + +HIMAGELIST TreeView_CreateDragImage(HWND w, HTREEITEM i) { + return cast(HIMAGELIST) SendMessage(w, TVM_CREATEDRAGIMAGE, 0, + cast(LPARAM) i); +} + +BOOL TreeView_SortChildren(HWND w, HTREEITEM i, BOOL r) { + return cast(BOOL) SendMessage(w, TVM_SORTCHILDREN, r, cast(LPARAM) i); +} + +BOOL TreeView_EnsureVisible(HWND w, HTREEITEM i) { + return cast(BOOL) SendMessage(w, TVM_ENSUREVISIBLE, 0, cast(LPARAM) i); +} + +BOOL TreeView_SortChildrenCB(HWND w, LPTVSORTCB s, BOOL r) { + return cast(BOOL) SendMessage(w, TVM_SORTCHILDRENCB, r, cast(LPARAM) s); +} + +BOOL TreeView_EndEditLabelNow(HWND w, BOOL f) { + return cast(BOOL) SendMessage(w, TVM_ENDEDITLABELNOW, f, 0); +} + +BOOL TreeView_GetISearchString(HWND w, LPTSTR s) { + return cast(BOOL) SendMessage(w, TVM_GETISEARCHSTRING, 0, cast(LPARAM) s); +} + +static if (_WIN32_IE >= 0x300) { + DWORD ListView_ApproximateViewRect(HWND w, int iw, int ih, int i) { + return cast(DWORD) SendMessage(w, LVM_APPROXIMATEVIEWRECT, i, + MAKELPARAM(cast(ushort)iw, cast(ushort)ih)); + } + + DWORD ListView_SetExtendedListViewStyle(HWND w, DWORD s) { + return cast(DWORD) SendMessage(w, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, s); + } + + DWORD ListView_GetExtendedListViewStyle(HWND w) { + return cast(DWORD) SendMessage(w, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); + } + + BOOL ListView_SetColumnOrderArray(HWND w, int i, int* a) { + return cast(BOOL) SendMessage(w, LVM_SETCOLUMNORDERARRAY, + cast(WPARAM) i, cast(LPARAM) a); + } + + BOOL ListView_GetColumnOrderArray(HWND w, int i, int* a) { + return cast(BOOL) SendMessage(w, LVM_GETCOLUMNORDERARRAY, + cast(WPARAM) i, cast(LPARAM) a); + } + + HWND ListView_GetHeader(HWND w) { + return cast(HWND) SendMessage(w, LVM_GETHEADER, 0, 0); + } + + HCURSOR ListView_GetHotCursor(HWND w) { + return cast(HCURSOR) SendMessage(w, LVM_GETHOTCURSOR, 0, 0); + } + + INT ListView_GetHotItem(HWND w) { + return SendMessage(w, LVM_GETHOTITEM, 0, 0); + } + + BOOL ListView_GetSubItemRect(HWND w, int i, int isi, int c, LPRECT p) { + return cast(BOOL) SendMessage(w, LVM_GETSUBITEMRECT, i, + p ? (p.left = c, p.top = isi, cast(LPARAM) p) : 0); + } + + HCURSOR ListView_SetHotCursor(HWND w, HCURSOR c) { + return cast(HCURSOR) SendMessage(w, LVM_SETHOTCURSOR, 0, + cast(LPARAM) c); + } + + INT ListView_SetHotItem(HWND w, INT i) { + return SendMessage(w, LVM_SETHOTITEM, cast(WPARAM) i, 0); + } + + DWORD ListView_SetIconSpacing(HWND w, int x, int y) { + return cast(DWORD) SendMessage(w, LVM_SETICONSPACING, 0, + MAKELONG(cast(ushort)x, cast(ushort)y)); + } + + INT ListView_SubItemHitTest(HWND w, LPLVHITTESTINFO p) { + return SendMessage(w, LVM_SUBITEMHITTEST, 0, cast(LPARAM) p); + } + + BOOL ListView_SetItemCountEx(HWND w, int i, DWORD f) { + return cast(BOOL) SendMessage(w, LVM_SETITEMCOUNT, i, cast(LPARAM) f); + } + + extern (Windows) { + WINBOOL ImageList_SetImageCount(HIMAGELIST, UINT); + WINBOOL ImageList_Copy(HIMAGELIST, int, HIMAGELIST, int, UINT); + WINBOOL ImageList_DrawIndirect(IMAGELISTDRAWPARAMS*); + } + + int TabCtrl_SetMinTabWidth(HWND hwnd, int x) { + return SendMessage(hwnd, TCM_SETMINTABWIDTH, 0, x); + } + + VOID TabCtrl_DeselectAll(HWND hwnd, UINT fExcludeFocus) { + SendMessage(hwnd, TCM_DESELECTALL, fExcludeFocus, 0); + } + + HWND TreeView_GetToolTips(HWND w) { + return cast(HWND) SendMessage(w, TVM_GETTOOLTIPS, 0, 0); + } + + HWND TreeView_SetToolTips(HWND w, HWND wt) { + return cast(HWND) SendMessage(w, TVM_SETTOOLTIPS, cast(WPARAM) wt, 0); + } +} + +static if (_WIN32_IE >= 0x400) { + BOOL ListView_GetBkImage(HWND h, LPLVBKIMAGE plvbki) { + return cast(BOOL) SendMessage(h, LVM_GETBKIMAGE, 0, + cast(LPARAM) plvbki); + } + + BOOL ListView_SetBkImage(HWND h, LPLVBKIMAGE plvbki) { + return cast(BOOL) SendMessage(h, LVM_SETBKIMAGE, 0, + cast(LPARAM) plvbki); + } + + DWORD ListView_SetExtendedListViewStyleEx(HWND w, DWORD m, DWORD s) { + return cast(DWORD) SendMessage(w, LVM_SETEXTENDEDLISTVIEWSTYLE, m, s); + } + + VOID ListView_SetWorkAreas(HWND w, INT n, LPRECT r) { + SendMessage(w, LVM_SETWORKAREAS, cast(WPARAM) n, cast(LPARAM) r); + } + + VOID ListView_GetWorkAreas(HWND w, INT n, LPRECT r) { + SendMessage(w, LVM_GETWORKAREAS, cast(WPARAM) n, cast(LPARAM) r); + } + + BOOL ListView_GetNumberOfWorkAreas(HWND w, LPUINT n) { + return cast(BOOL) SendMessage(w, LVM_GETNUMBEROFWORKAREAS, 0, + cast(LPARAM) n); + } + + DWORD ListView_SetHoverTime(HWND w, DWORD t) { + return cast(DWORD) SendMessage(w, LVM_SETHOVERTIME, 0, + cast(LPARAM) t); + } + + DWORD ListView_GetHoverTime(HWND w) { + return cast(DWORD) SendMessage(w, LVM_GETHOVERTIME, 0, 0); + } + + INT ListView_GetSelectionMark(HWND w) { + return SendMessage(w, LVM_GETSELECTIONMARK, 0, 0); + } + + INT ListView_SetSelectionMark(HWND w, INT i) { + return SendMessage(w, LVM_SETSELECTIONMARK, 0, cast(LPARAM) i); + } + + HWND ListView_SetToolTips(HWND w, HWND n) { + return cast(HWND) SendMessage(w, LVM_SETTOOLTIPS, cast(WPARAM) n, 0); + } + + HWND ListView_GetToolTips(HWND w) { + return cast(HWND) SendMessage(w, LVM_GETTOOLTIPS, 0, 0); + } + + BOOL ListView_SetUnicodeFormat(HWND w, BOOL f) { + return cast(BOOL) SendMessage(w, LVM_SETUNICODEFORMAT, + cast(WPARAM) f, 0); + } + + BOOL ListView_GetUnicodeFormat(HWND w) { + return cast(BOOL) SendMessage(w, LVM_GETUNICODEFORMAT, 0, 0); + } + + BOOL TabCtrl_HighlightItem(HWND hwnd, INT i, WORD fHighlight) { + return cast(BOOL) SendMessage(hwnd, TCM_HIGHLIGHTITEM, + cast(WPARAM) i, cast(LPARAM) MAKELONG(fHighlight, 0)); + } + + DWORD TabCtrl_SetExtendedStyle(HWND hwnd, DWORD dw) { + return cast(DWORD) SendMessage(hwnd, TCM_SETEXTENDEDSTYLE, 0, dw); + } + + DWORD TabCtrl_GetExtendedStyle(HWND hwnd) { + return cast(DWORD) SendMessage(hwnd, TCM_GETEXTENDEDSTYLE, 0, 0); + } + + BOOL TabCtrl_SetUnicodeFormat(HWND hwnd, HWND fUnicode) { + return cast(BOOL) SendMessage(hwnd, TCM_SETUNICODEFORMAT, + cast(WPARAM) fUnicode, 0); + } + + BOOL TabCtrl_GetUnicodeFormat(HWND hwnd) { + return cast(BOOL) SendMessage(hwnd, TCM_GETUNICODEFORMAT, 0, 0); + } + + COLORREF TreeView_GetBkColor(HWND w) { + return cast(COLORREF) SendMessage(w, TVM_GETBKCOLOR, 0, 0); + } + + COLORREF TreeView_GetInsertMarkColor(HWND w) { + return cast(COLORREF) SendMessage(w, TVM_GETINSERTMARKCOLOR, 0, 0); + } + + int TreeView_GetItemHeight(HWND w) { + return SendMessage(w, TVM_GETITEMHEIGHT, 0, 0); + } + + UINT TreeView_GetScrollTime(HWND w) { + return cast(UINT) SendMessage(w, TVM_GETSCROLLTIME, 0, 0); + } + + COLORREF TreeView_GetTextColor(HWND w) { + return cast(COLORREF) SendMessage(w, TVM_GETTEXTCOLOR, 0, 0); + } + + COLORREF TreeView_SetBkColor(HWND w, COLORREF c) { + return cast(COLORREF) SendMessage(w, TVM_SETBKCOLOR, 0, + cast(LPARAM) c); + } + + COLORREF TreeView_SetInsertMarkColor(HWND w, COLORREF c) { + return cast(COLORREF) SendMessage(w, TVM_SETINSERTMARKCOLOR, 0, + cast(LPARAM) c); + } + + int TreeView_SetItemHeight(HWND w, SHORT h) { + return SendMessage(w, TVM_SETITEMHEIGHT, cast(WPARAM) h, 0); + } + + UINT TreeView_SetScrollTime(HWND w, UINT t) { + return cast(UINT) SendMessage(w, TVM_SETSCROLLTIME, cast(WPARAM) t, 0); + } + + COLORREF TreeView_SetTextColor(HWND w, COLORREF c) { + return cast(COLORREF) SendMessage(w, TVM_SETTEXTCOLOR, 0, + cast(LPARAM) c); + } + + BOOL TreeView_SetInsertMark(HWND w, HTREEITEM i, BOOL a) { + return cast(BOOL) SendMessage(w, TVM_SETINSERTMARK, cast(WPARAM) a, + cast(LPARAM) i); + } + + BOOL TreeView_SetUnicodeFormat(HWND w, BOOL u) { + return cast(BOOL) SendMessage(w, TVM_SETUNICODEFORMAT, + cast(WPARAM) u, 0); + } + + BOOL TreeView_GetUnicodeFormat(HWND w) { + return cast(BOOL) SendMessage(w, TVM_GETUNICODEFORMAT, 0, 0); + } + + HTREEITEM TreeView_GetLastVisible(HWND w) { + return TreeView_GetNextItem(w, null, TVGN_LASTVISIBLE); + } +} + +static if (_WIN32_IE >= 0x500) { + UINT TreeView_GetItemState(HWND w, HTREEITEM i, UINT m) { + return cast(UINT) SendMessage(w, TVM_GETITEMSTATE, cast(WPARAM) i, + cast(LPARAM) m); + } + + BOOL TreeView_SetItemState(HWND w, HTREEITEM i, UINT d, UINT m) { + TVITEM _tvi; + _tvi.mask = TVIF_STATE; + _tvi.hItem = i; + _tvi.stateMask = m; + _tvi.state = d; + return cast(BOOL) SendMessage(w, TVM_SETITEM, 0, cast(LPARAM) &_tvi); + } +} + + +//#ifdef _WIN32_WCE // these are PPC only +/+ +extern (Windows) { + HWND CommandBar_Create(HINSTANCE, HWND, int); + BOOL CommandBar_Show(HWND, BOOL); + int CommandBar_AddBitmap(HWND, HINSTANCE, int, int, int, int); + HWND CommandBar_InsertComboBox(HWND, HINSTANCE, int, UINT, WORD, WORD); + BOOL CommandBar_InsertMenubar(HWND, HINSTANCE, WORD, WORD ); + BOOL CommandBar_InsertMenubarEx(HWND, HINSTANCE, LPTSTR, WORD); + BOOL CommandBar_DrawMenuBar(HWND, WORD); + HMENU CommandBar_GetMenu(HWND, WORD); + BOOL CommandBar_AddAdornments(HWND, DWORD, DWORD); + int CommandBar_Height(HWND hwndCB); +} + +// MinGW: These two are not in the DLL +void CommandBar_InsertButton(HWND hwnd, int i, LPTBBUTTON lptbbutton) { + SendMessage(hwnd, TB_INSERTBUTTON, i, lptbbutton); +} +alias DestroyWindow CommandBar_Destroy; ++/ +//#endif // _WIN32_WCE Index: src/win32/commdlg.d ================================================================== --- src/win32/commdlg.d +++ src/win32/commdlg.d @@ -1,1132 +1,710 @@ -module win32.commdlg; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino - -import win32.windef; -import win32.winuser; -// inline #include -// ---- - -// #ifndef _INC_CDERR -// #define _INC_CDERR - -// #if _MSC_VER > 1000 -// #pragma once -// #endif - -enum : uint { CDERR_DIALOGFAILURE = 0xFFFF } - -enum : uint { CDERR_GENERALCODES = 0x0000 } -enum : uint { CDERR_STRUCTSIZE = 0x0001 } -enum : uint { CDERR_INITIALIZATION = 0x0002 } -enum : uint { CDERR_NOTEMPLATE = 0x0003 } -enum : uint { CDERR_NOHINSTANCE = 0x0004 } -enum : uint { CDERR_LOADSTRFAILURE = 0x0005 } -enum : uint { CDERR_FINDRESFAILURE = 0x0006 } -enum : uint { CDERR_LOADRESFAILURE = 0x0007 } -enum : uint { CDERR_LOCKRESFAILURE = 0x0008 } -enum : uint { CDERR_MEMALLOCFAILURE = 0x0009 } -enum : uint { CDERR_MEMLOCKFAILURE = 0x000A } -enum : uint { CDERR_NOHOOK = 0x000B } -enum : uint { CDERR_REGISTERMSGFAIL = 0x000C } - -enum : uint { PDERR_PRINTERCODES = 0x1000 } -enum : uint { PDERR_SETUPFAILURE = 0x1001 } -enum : uint { PDERR_PARSEFAILURE = 0x1002 } -enum : uint { PDERR_RETDEFFAILURE = 0x1003 } -enum : uint { PDERR_LOADDRVFAILURE = 0x1004 } -enum : uint { PDERR_GETDEVMODEFAIL = 0x1005 } -enum : uint { PDERR_INITFAILURE = 0x1006 } -enum : uint { PDERR_NODEVICES = 0x1007 } -enum : uint { PDERR_NODEFAULTPRN = 0x1008 } -enum : uint { PDERR_DNDMMISMATCH = 0x1009 } -enum : uint { PDERR_CREATEICFAILURE = 0x100A } -enum : uint { PDERR_PRINTERNOTFOUND = 0x100B } -enum : uint { PDERR_DEFAULTDIFFERENT = 0x100C } - -enum : uint { CFERR_CHOOSEFONTCODES = 0x2000 } -enum : uint { CFERR_NOFONTS = 0x2001 } -enum : uint { CFERR_MAXLESSTHANMIN = 0x2002 } - -enum : uint { FNERR_FILENAMECODES = 0x3000 } -enum : uint { FNERR_SUBCLASSFAILURE = 0x3001 } -enum : uint { FNERR_INVALIDFILENAME = 0x3002 } -enum : uint { FNERR_BUFFERTOOSMALL = 0x3003 } - -enum : uint { FRERR_FINDREPLACECODES = 0x4000 } -enum : uint { FRERR_BUFFERLENGTHZERO = 0x4001 } - -enum : uint { CCERR_CHOOSECOLORCODES = 0x5000 } - -// #endif /* !_INC_CDERR */ -// ---- - -// #ifndef _INC_COMMDLG -// #define _INC_COMMDLG - -// #if(WINVER >= 0x0500) - -// #ifdef DEFINE_GUID - -// ... - -// ... - -// #endif - -// #endif /* WINVER >= 0x0500 */ - -// #ifndef GUID_DEFS_ONLY - -// #include - -// #if !defined(_WIN64) -align(1): -// #endif - -// #ifdef __cplusplus -// extern "C" { /* Assume C declarations for C++ */ -// #endif /* __cplusplus */ - -// #ifndef WINCOMMDLGAPI -// #if !defined(_COMDLG32_) -// #define WINCOMMDLGAPI DECLSPEC_IMPORT -// #else -// #... -// #endif -// #endif // WINCOMMDLGAPI - -// #if(WINVER >= 0x0400) -// #ifndef SNDMSG -// #ifdef __cplusplus -// #ifndef _MAC -// #define SNDMSG ::SendMessage -// #else -// #... -// #endif -// #else /* __cplusplus */ -// #ifndef _MAC -// #... -// #else -// #... -// #endif -// #endif /* __cplusplus */ -// #endif // ifndef SNDMSG -// #endif /* WINVER >= 0x0400 */ - -// #ifdef _MAC -// ... -// #endif - -extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPOFNHOOKPROC; - -// #ifndef CDSIZEOF_STRUCT -// #define CDSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member)) -// #endif - -// #ifndef DUMMYUNIONNAME -// #ifdef NONAMELESSUNION -// #... -// #endif // NONAMELESSUNION -// #endif // DUMMYUNIONNAME - -struct tagOFN_NT4A { - DWORD lStructSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCSTR lpstrFilter; - LPSTR lpstrCustomFilter; - DWORD nMaxCustFilter; - DWORD nFilterIndex; - LPSTR lpstrFile; - DWORD nMaxFile; - LPSTR lpstrFileTitle; - DWORD nMaxFileTitle; - LPCSTR lpstrInitialDir; - LPCSTR lpstrTitle; - DWORD Flags; - WORD nFileOffset; - WORD nFileExtension; - LPCSTR lpstrDefExt; - LPARAM lCustData; - LPOFNHOOKPROC lpfnHook; - LPCSTR lpTemplateName; -} -alias tagOFN_NT4A OPENFILENAME_NT4A; -alias tagOFN_NT4A* LPOPENFILENAME_NT4A; - -struct tagOFN_NT4W { - DWORD lStructSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCWSTR lpstrFilter; - LPWSTR lpstrCustomFilter; - DWORD nMaxCustFilter; - DWORD nFilterIndex; - LPWSTR lpstrFile; - DWORD nMaxFile; - LPWSTR lpstrFileTitle; - DWORD nMaxFileTitle; - LPCWSTR lpstrInitialDir; - LPCWSTR lpstrTitle; - DWORD Flags; - WORD nFileOffset; - WORD nFileExtension; - LPCWSTR lpstrDefExt; - LPARAM lCustData; - LPOFNHOOKPROC lpfnHook; - LPCWSTR lpTemplateName; -} -alias tagOFN_NT4W OPENFILENAME_NT4W; -alias tagOFN_NT4W* LPOPENFILENAME_NT4W; - -// #ifdef UNICODE -alias OPENFILENAME_NT4W OPENFILENAME_NT4; -alias LPOPENFILENAME_NT4W LPOPENFILENAME_NT4; -// #else -// ... -// #endif // UNICODE - -struct tagOFNA { - DWORD lStructSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCSTR lpstrFilter; - LPSTR lpstrCustomFilter; - DWORD nMaxCustFilter; - DWORD nFilterIndex; - LPSTR lpstrFile; - DWORD nMaxFile; - LPSTR lpstrFileTitle; - DWORD nMaxFileTitle; - LPCSTR lpstrInitialDir; - LPCSTR lpstrTitle; - DWORD Flags; - WORD nFileOffset; - WORD nFileExtension; - LPCSTR lpstrDefExt; - LPARAM lCustData; - LPOFNHOOKPROC lpfnHook; - LPCSTR lpTemplateName; -// #ifdef _MAC -// ... -// #endif -// #if (_WIN32_WINNT >= 0x0500) - void * pvReserved; - DWORD dwReserved; - DWORD FlagsEx; -// #endif // (_WIN32_WINNT >= 0x0500) -} -alias tagOFNA OPENFILENAMEA; -alias tagOFNA* LPOPENFILENAMEA; - -struct tagOFNW { - DWORD lStructSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCWSTR lpstrFilter; - LPWSTR lpstrCustomFilter; - DWORD nMaxCustFilter; - DWORD nFilterIndex; - LPWSTR lpstrFile; - DWORD nMaxFile; - LPWSTR lpstrFileTitle; - DWORD nMaxFileTitle; - LPCWSTR lpstrInitialDir; - LPCWSTR lpstrTitle; - DWORD Flags; - WORD nFileOffset; - WORD nFileExtension; - LPCWSTR lpstrDefExt; - LPARAM lCustData; - LPOFNHOOKPROC lpfnHook; - LPCWSTR lpTemplateName; -// #ifdef _MAC -// ... -// #endif -// #if (_WIN32_WINNT >= 0x0500) - void * pvReserved; - DWORD dwReserved; - DWORD FlagsEx; -// #endif // (_WIN32_WINNT >= 0x0500) -} -alias tagOFNW OPENFILENAMEW; -alias tagOFNW* LPOPENFILENAMEW; - -// #ifdef UNICODE -alias OPENFILENAMEW OPENFILENAME; -alias LPOPENFILENAMEW LPOPENFILENAME; -// #else -// ... -// #endif // UNICODE - -// #if (_WIN32_WINNT >= 0x0500) -// #define OPENFILENAME_SIZE_VERSION_400A CDSIZEOF_STRUCT(OPENFILENAMEA,lpTemplateName) -// #define OPENFILENAME_SIZE_VERSION_400W CDSIZEOF_STRUCT(OPENFILENAMEW,lpTemplateName) -// #ifdef UNICODE -// #define OPENFILENAME_SIZE_VERSION_400 OPENFILENAME_SIZE_VERSION_400W -// #else -// #... -// #endif // !UNICODE -// #endif // (_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL GetOpenFileNameA(LPOPENFILENAMEA); -extern(Windows) export BOOL GetOpenFileNameW(LPOPENFILENAMEW); -// #ifdef UNICODE -alias GetOpenFileNameW GetOpenFileName; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL GetSaveFileNameA(LPOPENFILENAMEA); -extern(Windows) export BOOL GetSaveFileNameW(LPOPENFILENAMEW); -// #ifdef UNICODE -alias GetSaveFileNameW GetSaveFileName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export short GetFileTitleA(LPCSTR, LPSTR, WORD); -extern(Windows) export short GetFileTitleW(LPCWSTR, LPWSTR, WORD); -// #ifdef UNICODE -alias GetFileTitleW GetFileTitle; -// #else -// #... -// #endif // !UNICODE - -enum : uint { OFN_READONLY = 0x00000001 } -enum : uint { OFN_OVERWRITEPROMPT = 0x00000002 } -enum : uint { OFN_HIDEREADONLY = 0x00000004 } -enum : uint { OFN_NOCHANGEDIR = 0x00000008 } -enum : uint { OFN_SHOWHELP = 0x00000010 } -enum : uint { OFN_ENABLEHOOK = 0x00000020 } -enum : uint { OFN_ENABLETEMPLATE = 0x00000040 } -enum : uint { OFN_ENABLETEMPLATEHANDLE = 0x00000080 } -enum : uint { OFN_NOVALIDATE = 0x00000100 } -enum : uint { OFN_ALLOWMULTISELECT = 0x00000200 } -enum : uint { OFN_EXTENSIONDIFFERENT = 0x00000400 } -enum : uint { OFN_PATHMUSTEXIST = 0x00000800 } -enum : uint { OFN_FILEMUSTEXIST = 0x00001000 } -enum : uint { OFN_CREATEPROMPT = 0x00002000 } -enum : uint { OFN_SHAREAWARE = 0x00004000 } -enum : uint { OFN_NOREADONLYRETURN = 0x00008000 } -enum : uint { OFN_NOTESTFILECREATE = 0x00010000 } -enum : uint { OFN_NONETWORKBUTTON = 0x00020000 } -enum : uint { OFN_NOLONGNAMES = 0x00040000 } -// #if(WINVER >= 0x0400) -enum : uint { OFN_EXPLORER = 0x00080000 } -enum : uint { OFN_NODEREFERENCELINKS = 0x00100000 } -enum : uint { OFN_LONGNAMES = 0x00200000 } -enum : uint { OFN_ENABLEINCLUDENOTIFY = 0x00400000 } -enum : uint { OFN_ENABLESIZING = 0x00800000 } -// #endif /* WINVER >= 0x0400 */ -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { OFN_DONTADDTORECENT = 0x02000000 } -enum : uint { OFN_FORCESHOWHIDDEN = 0x10000000 } -// #endif // (_WIN32_WINNT >= 0x0500) - -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { OFN_EX_NOPLACESBAR = 0x00000001 } -// #endif // (_WIN32_WINNT >= 0x0500) - -enum : uint { OFN_SHAREFALLTHROUGH = 2 } -enum : uint { OFN_SHARENOWARN = 1 } -enum : uint { OFN_SHAREWARN = 0 } - -extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPCCHOOKPROC; - -// #if(WINVER >= 0x0400) - -struct _OFNOTIFYA { - NMHDR hdr; - LPOPENFILENAMEA lpOFN; - LPSTR pszFile; -} -alias _OFNOTIFYA OFNOTIFYA; -alias _OFNOTIFYA* LPOFNOTIFYA; - -struct _OFNOTIFYW { - NMHDR hdr; - LPOPENFILENAMEW lpOFN; - LPWSTR pszFile; -} -alias _OFNOTIFYW OFNOTIFYW; -alias _OFNOTIFYW* LPOFNOTIFYW; - -// #ifdef UNICODE -alias OFNOTIFYW OFNOTIFY; -alias LPOFNOTIFYW LPOFNOTIFY; -// #else -// ... -// #endif // UNICODE - -struct _OFNOTIFYEXA { - NMHDR hdr; - LPOPENFILENAMEA lpOFN; - LPVOID psf; - LPVOID pidl; -} -alias _OFNOTIFYEXA OFNOTIFYEXA; -alias _OFNOTIFYEXA* LPOFNOTIFYEXA; - -struct _OFNOTIFYEXW { - NMHDR hdr; - LPOPENFILENAMEW lpOFN; - LPVOID psf; - LPVOID pidl; -} -alias _OFNOTIFYEXW OFNOTIFYEXW; -alias _OFNOTIFYEXW* LPOFNOTIFYEXW; - -// #ifdef UNICODE -alias OFNOTIFYEXW OFNOTIFYEX; -alias LPOFNOTIFYEXW LPOFNOTIFYEX; -// #else -// ... -// #endif // UNICODE - -const uint CDN_FIRST = 0U-601U; -const uint CDN_LAST = 0U-699U; - -const uint CDN_INITDONE = CDN_FIRST - 0x0000; -const uint CDN_SELCHANGE = CDN_FIRST - 0x0001; -const uint CDN_FOLDERCHANGE = CDN_FIRST - 0x0002; -const uint CDN_SHAREVIOLATION = CDN_FIRST - 0x0003; -const uint CDN_HELP = CDN_FIRST - 0x0004; -const uint CDN_FILEOK = CDN_FIRST - 0x0005; -const uint CDN_TYPECHANGE = CDN_FIRST - 0x0006; -const uint CDN_INCLUDEITEM = CDN_FIRST - 0x0007; - -const uint CDM_FIRST = WM_USER + 100; -const uint CDM_LAST = WM_USER + 200; - -const uint CDM_GETSPEC = CDM_FIRST + 0x0000; -// #define CommDlg_OpenSave_GetSpecA(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETSPEC, (WPARAM)_cbmax, (LPARAM)(LPSTR)_psz) -// #define CommDlg_OpenSave_GetSpecW(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETSPEC, (WPARAM)_cbmax, (LPARAM)(LPWSTR)_psz) -// #ifdef UNICODE -// #define CommDlg_OpenSave_GetSpec CommDlg_OpenSave_GetSpecW -// #else -// #... -// #endif // !UNICODE - -const uint CDM_GETFILEPATH = CDM_FIRST + 0x0001; -// #define CommDlg_OpenSave_GetFilePathA(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETFILEPATH, (WPARAM)_cbmax, (LPARAM)(LPSTR)_psz) -// #define CommDlg_OpenSave_GetFilePathW(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETFILEPATH, (WPARAM)_cbmax, (LPARAM)(LPWSTR)_psz) -// #ifdef UNICODE -// #define CommDlg_OpenSave_GetFilePath CommDlg_OpenSave_GetFilePathW -// #else -// #... -// #endif // !UNICODE - -const uint CDM_GETFOLDERPATH = CDM_FIRST + 0x0002; -// #define CommDlg_OpenSave_GetFolderPathA(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETFOLDERPATH, (WPARAM)_cbmax, (LPARAM)(LPSTR)_psz) -// #define CommDlg_OpenSave_GetFolderPathW(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETFOLDERPATH, (WPARAM)_cbmax, (LPARAM)(LPWSTR)_psz) -// #ifdef UNICODE -// #define CommDlg_OpenSave_GetFolderPath CommDlg_OpenSave_GetFolderPathW -// #else -// #... -// #endif // !UNICODE - -const uint CDM_GETFOLDERIDLIST = CDM_FIRST + 0x0003; -// #define CommDlg_OpenSave_GetFolderIDList(_hdlg, _pidl, _cbmax) (int)SNDMSG(_hdlg, CDM_GETFOLDERIDLIST, (WPARAM)_cbmax, (LPARAM)(LPVOID)_pidl) - -const uint CDM_SETCONTROLTEXT = CDM_FIRST + 0x0004; -// #define CommDlg_OpenSave_SetControlText(_hdlg, _id, _text) (void)SNDMSG(_hdlg, CDM_SETCONTROLTEXT, (WPARAM)_id, (LPARAM)(LPSTR)_text) - -const uint CDM_HIDECONTROL = CDM_FIRST + 0x0005; -// #define CommDlg_OpenSave_HideControl(_hdlg, _id) (void)SNDMSG(_hdlg, CDM_HIDECONTROL, (WPARAM)_id, 0) - -const uint CDM_SETDEFEXT = CDM_FIRST + 0x0006; -// #define CommDlg_OpenSave_SetDefExt(_hdlg, _pszext) (void)SNDMSG(_hdlg, CDM_SETDEFEXT, 0, (LPARAM)(LPSTR)_pszext) -// #endif /* WINVER >= 0x0400 */ - -// #ifndef _MAC -struct tagCHOOSECOLORA { - DWORD lStructSize; - HWND hwndOwner; - HWND hInstance; - COLORREF rgbResult; - COLORREF * lpCustColors; - DWORD Flags; - LPARAM lCustData; - LPCCHOOKPROC lpfnHook; - LPCSTR lpTemplateName; -} -alias tagCHOOSECOLORA CHOOSECOLORA; -alias tagCHOOSECOLORA* LPCHOOSECOLORA; - -struct tagCHOOSECOLORW { - DWORD lStructSize; - HWND hwndOwner; - HWND hInstance; - COLORREF rgbResult; - COLORREF * lpCustColors; - DWORD Flags; - LPARAM lCustData; - LPCCHOOKPROC lpfnHook; - LPCWSTR lpTemplateName; -} -alias tagCHOOSECOLORW CHOOSECOLORW; -alias tagCHOOSECOLORW* LPCHOOSECOLORW; - -// #ifdef UNICODE -alias CHOOSECOLORW CHOOSECOLOR; -alias LPCHOOSECOLORW LPCHOOSECOLOR; -// #else -// ... -// #endif // UNICODE -// #else -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE -// #endif //_MAC - -extern(Windows) export BOOL ChooseColorA(LPCHOOSECOLORA); -extern(Windows) export BOOL ChooseColorW(LPCHOOSECOLORW); -// #ifdef UNICODE -alias ChooseColorW ChooseColor; -// #else -// #... -// #endif // !UNICODE - -enum : uint { CC_RGBINIT = 0x00000001 } -enum : uint { CC_FULLOPEN = 0x00000002 } -enum : uint { CC_PREVENTFULLOPEN = 0x00000004 } -enum : uint { CC_SHOWHELP = 0x00000008 } -enum : uint { CC_ENABLEHOOK = 0x00000010 } -enum : uint { CC_ENABLETEMPLATE = 0x00000020 } -enum : uint { CC_ENABLETEMPLATEHANDLE = 0x00000040 } -// #if(WINVER >= 0x0400) -enum : uint { CC_SOLIDCOLOR = 0x00000080 } -enum : uint { CC_ANYCOLOR = 0x00000100 } -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPFRHOOKPROC; - -struct tagFINDREPLACEA { - DWORD lStructSize; - HWND hwndOwner; - HINSTANCE hInstance; - - DWORD Flags; - LPSTR lpstrFindWhat; - LPSTR lpstrReplaceWith; - WORD wFindWhatLen; - WORD wReplaceWithLen; - LPARAM lCustData; - LPFRHOOKPROC lpfnHook; - LPCSTR lpTemplateName; -} -alias tagFINDREPLACEA FINDREPLACEA; -alias tagFINDREPLACEA* LPFINDREPLACEA; - -struct tagFINDREPLACEW { - DWORD lStructSize; - HWND hwndOwner; - HINSTANCE hInstance; - - DWORD Flags; - LPWSTR lpstrFindWhat; - LPWSTR lpstrReplaceWith; - WORD wFindWhatLen; - WORD wReplaceWithLen; - LPARAM lCustData; - LPFRHOOKPROC lpfnHook; - LPCWSTR lpTemplateName; -} -alias tagFINDREPLACEW FINDREPLACEW; -alias tagFINDREPLACEW* LPFINDREPLACEW; - -// #ifdef UNICODE -alias FINDREPLACEW FINDREPLACE; -alias LPFINDREPLACEW LPFINDREPLACE; -// #else -// ... -// #endif // UNICODE - -enum : uint { FR_DOWN = 0x00000001 } -enum : uint { FR_WHOLEWORD = 0x00000002 } -enum : uint { FR_MATCHCASE = 0x00000004 } -enum : uint { FR_FINDNEXT = 0x00000008 } -enum : uint { FR_REPLACE = 0x00000010 } -enum : uint { FR_REPLACEALL = 0x00000020 } -enum : uint { FR_DIALOGTERM = 0x00000040 } -enum : uint { FR_SHOWHELP = 0x00000080 } -enum : uint { FR_ENABLEHOOK = 0x00000100 } -enum : uint { FR_ENABLETEMPLATE = 0x00000200 } -enum : uint { FR_NOUPDOWN = 0x00000400 } -enum : uint { FR_NOMATCHCASE = 0x00000800 } -enum : uint { FR_NOWHOLEWORD = 0x00001000 } -enum : uint { FR_ENABLETEMPLATEHANDLE = 0x00002000 } -enum : uint { FR_HIDEUPDOWN = 0x00004000 } -enum : uint { FR_HIDEMATCHCASE = 0x00008000 } -enum : uint { FR_HIDEWHOLEWORD = 0x00010000 } -enum : uint { FR_RAW = 0x00020000 } -enum : uint { FR_MATCHDIAC = 0x20000000 } -enum : uint { FR_MATCHKASHIDA = 0x40000000 } -enum : uint { FR_MATCHALEFHAMZA = 0x80000000 } - -extern(Windows) export HWND FindTextA(LPFINDREPLACEA); -extern(Windows) export HWND FindTextW(LPFINDREPLACEW); -// #ifdef UNICODE -alias FindTextW FindText; -// #else -// #... -// #endif // !UNICODE -// #ifndef _MAC -extern(Windows) export HWND ReplaceTextA(LPFINDREPLACEA); -extern(Windows) export HWND ReplaceTextW(LPFINDREPLACEW); -// #ifdef UNICODE -alias ReplaceTextW ReplaceText; -// #else -// #... -// #endif // !UNICODE -// #else -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE -// #endif - -extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPCFHOOKPROC; - -struct tagCHOOSEFONTA { - DWORD lStructSize; - HWND hwndOwner; - HDC hDC; - LPLOGFONTA lpLogFont; - INT iPointSize; - DWORD Flags; - COLORREF rgbColors; - LPARAM lCustData; - LPCFHOOKPROC lpfnHook; - LPCSTR lpTemplateName; - HINSTANCE hInstance; - - LPSTR lpszStyle; - - WORD nFontType; - - WORD ___MISSING_ALIGNMENT__; - INT nSizeMin; - INT nSizeMax; - -} -alias tagCHOOSEFONTA CHOOSEFONTA; -alias tagCHOOSEFONTA* LPCHOOSEFONTA; - -struct tagCHOOSEFONTW { - DWORD lStructSize; - HWND hwndOwner; - HDC hDC; - LPLOGFONTW lpLogFont; - INT iPointSize; - DWORD Flags; - COLORREF rgbColors; - LPARAM lCustData; - LPCFHOOKPROC lpfnHook; - LPCWSTR lpTemplateName; - HINSTANCE hInstance; - - LPWSTR lpszStyle; - - WORD nFontType; - - WORD ___MISSING_ALIGNMENT__; - INT nSizeMin; - INT nSizeMax; - -} -alias tagCHOOSEFONTW CHOOSEFONTW; -alias tagCHOOSEFONTW* LPCHOOSEFONTW; - -// #ifdef UNICODE -alias CHOOSEFONTW CHOOSEFONT; -alias LPCHOOSEFONTW LPCHOOSEFONT; -// #else -// ... -// #endif // UNICODE - -extern(Windows) export BOOL ChooseFontA(LPCHOOSEFONTA); -extern(Windows) export BOOL ChooseFontW(LPCHOOSEFONTW); -// #ifdef UNICODE -alias ChooseFontW ChooseFont; -// #else -// #... -// #endif // !UNICODE - -enum : uint { CF_SCREENFONTS = 0x00000001 } -enum : uint { CF_PRINTERFONTS = 0x00000002 } -const uint CF_BOTH = CF_SCREENFONTS | CF_PRINTERFONTS; -enum : uint { CF_SHOWHELP = 0x00000004 } -enum : uint { CF_ENABLEHOOK = 0x00000008 } -enum : uint { CF_ENABLETEMPLATE = 0x00000010 } -enum : uint { CF_ENABLETEMPLATEHANDLE = 0x00000020 } -enum : uint { CF_INITTOLOGFONTSTRUCT = 0x00000040 } -enum : uint { CF_USESTYLE = 0x00000080 } -enum : uint { CF_EFFECTS = 0x00000100 } -enum : uint { CF_APPLY = 0x00000200 } -enum : uint { CF_ANSIONLY = 0x00000400 } -// #if(WINVER >= 0x0400) -alias CF_ANSIONLY CF_SCRIPTSONLY; -// #endif /* WINVER >= 0x0400 */ -enum : uint { CF_NOVECTORFONTS = 0x00000800 } -alias CF_NOVECTORFONTS CF_NOOEMFONTS; -enum : uint { CF_NOSIMULATIONS = 0x00001000 } -enum : uint { CF_LIMITSIZE = 0x00002000 } -enum : uint { CF_FIXEDPITCHONLY = 0x00004000 } -enum : uint { CF_WYSIWYG = 0x00008000 } -enum : uint { CF_FORCEFONTEXIST = 0x00010000 } -enum : uint { CF_SCALABLEONLY = 0x00020000 } -enum : uint { CF_TTONLY = 0x00040000 } -enum : uint { CF_NOFACESEL = 0x00080000 } -enum : uint { CF_NOSTYLESEL = 0x00100000 } -enum : uint { CF_NOSIZESEL = 0x00200000 } -// #if(WINVER >= 0x0400) -enum : uint { CF_SELECTSCRIPT = 0x00400000 } -enum : uint { CF_NOSCRIPTSEL = 0x00800000 } -enum : uint { CF_NOVERTFONTS = 0x01000000 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { SIMULATED_FONTTYPE = 0x8000 } -enum : uint { PRINTER_FONTTYPE = 0x4000 } -enum : uint { SCREEN_FONTTYPE = 0x2000 } -enum : uint { BOLD_FONTTYPE = 0x0100 } -enum : uint { ITALIC_FONTTYPE = 0x0200 } -enum : uint { REGULAR_FONTTYPE = 0x0400 } - -// #ifdef WINNT -// #... -// #... -// #... -// #endif - -const uint WM_CHOOSEFONT_GETLOGFONT = WM_USER + 1; -const uint WM_CHOOSEFONT_SETLOGFONT = WM_USER + 101; -const uint WM_CHOOSEFONT_SETFLAGS = WM_USER + 102; - -const char[] LBSELCHSTRINGA = "commdlg_LBSelChangedNotify"; -const char[] SHAREVISTRINGA = "commdlg_ShareViolation"; -const char[] FILEOKSTRINGA = "commdlg_FileNameOK"; -const char[] COLOROKSTRINGA = "commdlg_ColorOK"; -const char[] SETRGBSTRINGA = "commdlg_SetRGBColor"; -const char[] HELPMSGSTRINGA = "commdlg_help"; -const char[] FINDMSGSTRINGA = "commdlg_FindReplace"; - -const wchar[] LBSELCHSTRINGW = "commdlg_LBSelChangedNotify"; -const wchar[] SHAREVISTRINGW = "commdlg_ShareViolation"; -const wchar[] FILEOKSTRINGW = "commdlg_FileNameOK"; -const wchar[] COLOROKSTRINGW = "commdlg_ColorOK"; -const wchar[] SETRGBSTRINGW = "commdlg_SetRGBColor"; -const wchar[] HELPMSGSTRINGW = "commdlg_help"; -const wchar[] FINDMSGSTRINGW = "commdlg_FindReplace"; - -// #ifdef UNICODE -alias LBSELCHSTRINGW LBSELCHSTRING; -alias SHAREVISTRINGW SHAREVISTRING; -alias FILEOKSTRINGW FILEOKSTRING; -alias COLOROKSTRINGW COLOROKSTRING; -alias SETRGBSTRINGW SETRGBSTRING; -alias HELPMSGSTRINGW HELPMSGSTRING; -alias FINDMSGSTRINGW FINDMSGSTRING; -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -enum { CD_LBSELNOITEMS = -1 } -enum : uint { CD_LBSELCHANGE = 0 } -enum : uint { CD_LBSELSUB = 1 } -enum : uint { CD_LBSELADD = 2 } - -extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPPRINTHOOKPROC; -extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPSETUPHOOKPROC; - -struct tagPDA { - DWORD lStructSize; - HWND hwndOwner; - HGLOBAL hDevMode; - HGLOBAL hDevNames; - HDC hDC; - DWORD Flags; - WORD nFromPage; - WORD nToPage; - WORD nMinPage; - WORD nMaxPage; - WORD nCopies; - HINSTANCE hInstance; - LPARAM lCustData; - LPPRINTHOOKPROC lpfnPrintHook; - LPSETUPHOOKPROC lpfnSetupHook; - LPCSTR lpPrintTemplateName; - LPCSTR lpSetupTemplateName; - HGLOBAL hPrintTemplate; - HGLOBAL hSetupTemplate; -} -alias tagPDA PRINTDLGA; -alias tagPDA* LPPRINTDLGA; - -struct tagPDW { - DWORD lStructSize; - HWND hwndOwner; - HGLOBAL hDevMode; - HGLOBAL hDevNames; - HDC hDC; - DWORD Flags; - WORD nFromPage; - WORD nToPage; - WORD nMinPage; - WORD nMaxPage; - WORD nCopies; - HINSTANCE hInstance; - LPARAM lCustData; - LPPRINTHOOKPROC lpfnPrintHook; - LPSETUPHOOKPROC lpfnSetupHook; - LPCWSTR lpPrintTemplateName; - LPCWSTR lpSetupTemplateName; - HGLOBAL hPrintTemplate; - HGLOBAL hSetupTemplate; -} -alias tagPDW PRINTDLGW; -alias tagPDW* LPPRINTDLGW; - -// #ifdef UNICODE -alias PRINTDLGW PRINTDLG; -alias LPPRINTDLGW LPPRINTDLG; -// #else -// ... -// #endif // UNICODE - -extern(Windows) export BOOL PrintDlgA(LPPRINTDLGA); -extern(Windows) export BOOL PrintDlgW(LPPRINTDLGW); -// #ifdef UNICODE -alias PrintDlgW PrintDlg; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0500) - -// #ifdef STDMETHOD - -// #... -// #... - -// ... - -// ... - -// #... -// #... - -// ... - -// ... - -// ... - -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #endif - -// #endif /* WINVER >= 0x0500 */ - -enum : uint { PD_ALLPAGES = 0x00000000 } -enum : uint { PD_SELECTION = 0x00000001 } -enum : uint { PD_PAGENUMS = 0x00000002 } -enum : uint { PD_NOSELECTION = 0x00000004 } -enum : uint { PD_NOPAGENUMS = 0x00000008 } -enum : uint { PD_COLLATE = 0x00000010 } -enum : uint { PD_PRINTTOFILE = 0x00000020 } -enum : uint { PD_PRINTSETUP = 0x00000040 } -enum : uint { PD_NOWARNING = 0x00000080 } -enum : uint { PD_RETURNDC = 0x00000100 } -enum : uint { PD_RETURNIC = 0x00000200 } -enum : uint { PD_RETURNDEFAULT = 0x00000400 } -enum : uint { PD_SHOWHELP = 0x00000800 } -enum : uint { PD_ENABLEPRINTHOOK = 0x00001000 } -enum : uint { PD_ENABLESETUPHOOK = 0x00002000 } -enum : uint { PD_ENABLEPRINTTEMPLATE = 0x00004000 } -enum : uint { PD_ENABLESETUPTEMPLATE = 0x00008000 } -enum : uint { PD_ENABLEPRINTTEMPLATEHANDLE = 0x00010000 } -enum : uint { PD_ENABLESETUPTEMPLATEHANDLE = 0x00020000 } -enum : uint { PD_USEDEVMODECOPIES = 0x00040000 } -enum : uint { PD_USEDEVMODECOPIESANDCOLLATE = 0x00040000 } -enum : uint { PD_DISABLEPRINTTOFILE = 0x00080000 } -enum : uint { PD_HIDEPRINTTOFILE = 0x00100000 } -enum : uint { PD_NONETWORKBUTTON = 0x00200000 } -// #if(WINVER >= 0x0500) -enum : uint { PD_CURRENTPAGE = 0x00400000 } -enum : uint { PD_NOCURRENTPAGE = 0x00800000 } -enum : uint { PD_EXCLUSIONFLAGS = 0x01000000 } -enum : uint { PD_USELARGETEMPLATE = 0x10000000 } -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0500) - -const uint PD_EXCL_COPIESANDCOLLATE = DM_COPIES | DM_COLLATE; - -enum : uint { START_PAGE_GENERAL = 0xffffffff } - -enum : uint { PD_RESULT_CANCEL = 0 } -enum : uint { PD_RESULT_PRINT = 1 } -enum : uint { PD_RESULT_APPLY = 2 } - -// #endif /* WINVER >= 0x0500 */ - -struct tagDEVNAMES { - WORD wDriverOffset; - WORD wDeviceOffset; - WORD wOutputOffset; - WORD wDefault; -} -alias tagDEVNAMES DEVNAMES; -alias tagDEVNAMES* LPDEVNAMES; - -enum : uint { DN_DEFAULTPRN = 0x0001 } - -extern(Windows) export DWORD CommDlgExtendedError(); - -// #if(WINVER >= 0x0400) -const uint WM_PSD_PAGESETUPDLG = WM_USER ; -const uint WM_PSD_FULLPAGERECT = WM_USER+1; -const uint WM_PSD_MINMARGINRECT = WM_USER+2; -const uint WM_PSD_MARGINRECT = WM_USER+3; -const uint WM_PSD_GREEKTEXTRECT = WM_USER+4; -const uint WM_PSD_ENVSTAMPRECT = WM_USER+5; -const uint WM_PSD_YAFULLPAGERECT = WM_USER+6; - -extern(Windows) alias UINT_PTR function( HWND, UINT, WPARAM, LPARAM ) LPPAGEPAINTHOOK; -extern(Windows) alias UINT_PTR function( HWND, UINT, WPARAM, LPARAM ) LPPAGESETUPHOOK; - -struct tagPSDA { - DWORD lStructSize; - HWND hwndOwner; - HGLOBAL hDevMode; - HGLOBAL hDevNames; - DWORD Flags; - POINT ptPaperSize; - RECT rtMinMargin; - RECT rtMargin; - HINSTANCE hInstance; - LPARAM lCustData; - LPPAGESETUPHOOK lpfnPageSetupHook; - LPPAGEPAINTHOOK lpfnPagePaintHook; - LPCSTR lpPageSetupTemplateName; - HGLOBAL hPageSetupTemplate; -} -alias tagPSDA PAGESETUPDLGA; -alias tagPSDA* LPPAGESETUPDLGA; - -struct tagPSDW { - DWORD lStructSize; - HWND hwndOwner; - HGLOBAL hDevMode; - HGLOBAL hDevNames; - DWORD Flags; - POINT ptPaperSize; - RECT rtMinMargin; - RECT rtMargin; - HINSTANCE hInstance; - LPARAM lCustData; - LPPAGESETUPHOOK lpfnPageSetupHook; - LPPAGEPAINTHOOK lpfnPagePaintHook; - LPCWSTR lpPageSetupTemplateName; - HGLOBAL hPageSetupTemplate; -} -alias tagPSDW PAGESETUPDLGW; -alias tagPSDW* LPPAGESETUPDLGW; - -// #ifdef UNICODE -alias PAGESETUPDLGW PAGESETUPDLG; -alias LPPAGESETUPDLGW LPPAGESETUPDLG; -// #else -// ... -// #endif // UNICODE - -extern(Windows) export BOOL PageSetupDlgA( LPPAGESETUPDLGA ); -extern(Windows) export BOOL PageSetupDlgW( LPPAGESETUPDLGW ); -// #ifdef UNICODE -alias PageSetupDlgW PageSetupDlg; -// #else -// #... -// #endif // !UNICODE - -enum : uint { PSD_DEFAULTMINMARGINS = 0x00000000 } -enum : uint { PSD_INWININIINTLMEASURE = 0x00000000 } - -enum : uint { PSD_MINMARGINS = 0x00000001 } -enum : uint { PSD_MARGINS = 0x00000002 } -enum : uint { PSD_INTHOUSANDTHSOFINCHES = 0x00000004 } -enum : uint { PSD_INHUNDREDTHSOFMILLIMETERS = 0x00000008 } -enum : uint { PSD_DISABLEMARGINS = 0x00000010 } -enum : uint { PSD_DISABLEPRINTER = 0x00000020 } -enum : uint { PSD_NOWARNING = 0x00000080 } -enum : uint { PSD_DISABLEORIENTATION = 0x00000100 } -enum : uint { PSD_RETURNDEFAULT = 0x00000400 } -enum : uint { PSD_DISABLEPAPER = 0x00000200 } -enum : uint { PSD_SHOWHELP = 0x00000800 } -enum : uint { PSD_ENABLEPAGESETUPHOOK = 0x00002000 } -enum : uint { PSD_ENABLEPAGESETUPTEMPLATE = 0x00008000 } -enum : uint { PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 0x00020000 } -enum : uint { PSD_ENABLEPAGEPAINTHOOK = 0x00040000 } -enum : uint { PSD_DISABLEPAGEPAINTING = 0x00080000 } -enum : uint { PSD_NONETWORKBUTTON = 0x00200000 } -// #endif /* WINVER >= 0x0400 */ - -// #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */ -// #if ISOLATION_AWARE_ENABLED - -// #if !defined(ISOLATION_AWARE_INLINE) -// #if defined(__cplusplus) -// #... -// #else -// #... -// #endif -// #endif - -// ... - -// ... -// #if defined(STDMETHOD) && (WINVER >= 0x0500) -// ... -// #endif /* defined(STDMETHOD) && (WINVER >= 0x0500) */ -// ... - -// #if defined(UNICODE) - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #else /* UNICODE */ - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #endif /* UNICODE */ - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #if defined(STDMETHOD) && (WINVER >= 0x0500) - -// ... - -// ... - -// ... - -// ... - -// #endif /* defined(STDMETHOD) && (WINVER >= 0x0500) */ - -// ... - -// ... - -// ... - -// ... - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #endif /* ISOLATION_AWARE_ENABLED */ -// #endif /* RC */ - -// #ifdef __cplusplus -// } -// #endif /* __cplusplus */ - -// #if !defined(_WIN64) -align: -// #endif -// #endif /* GUID_DEFS_ONLY */ -// #endif /* !_INC_COMMDLG */ - +/***********************************************************************\ +* commdlg.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.12 * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.commdlg; +pragma(lib, "comdlg32.lib"); + +private import win32.w32api; +import win32.windef, win32.winuser; +import win32.wingdi; // for LPLOGFONTA + +const TCHAR[] + LBSELCHSTRING = "commdlg_LBSelChangedNotify", + SHAREVISTRING = "commdlg_ShareViolation", + FILEOKSTRING = "commdlg_FileNameOK", + COLOROKSTRING = "commdlg_ColorOK", + SETRGBSTRING = "commdlg_SetRGBColor", + HELPMSGSTRING = "commdlg_help", + FINDMSGSTRING = "commdlg_FindReplace"; + +enum : UINT { + CDN_FIRST = -601, // also in commctrl.h + CDN_LAST = -699, + CDN_INITDONE = CDN_FIRST, + CDN_SELCHANGE = CDN_FIRST - 1, + CDN_FOLDERCHANGE = CDN_FIRST - 2, + CDN_SHAREVIOLATION = CDN_FIRST - 3, + CDN_HELP = CDN_FIRST - 4, + CDN_FILEOK = CDN_FIRST - 5, + CDN_TYPECHANGE = CDN_FIRST - 6 +} + +enum : UINT { + CDM_FIRST = WM_USER + 100, + CDM_LAST = WM_USER + 200, + CDM_GETSPEC = CDM_FIRST, + CDM_GETFILEPATH, + CDM_GETFOLDERPATH, + CDM_GETFOLDERIDLIST, + CDM_SETCONTROLTEXT, + CDM_HIDECONTROL, + CDM_SETDEFEXT // = CDM_FIRST + 6 +} + +// flags for ChooseColor +enum : DWORD { + CC_RGBINIT = 0x0001, + CC_FULLOPEN = 0x0002, + CC_PREVENTFULLOPEN = 0x0004, + CC_SHOWHELP = 0x0008, + CC_ENABLEHOOK = 0x0010, + CC_ENABLETEMPLATE = 0x0020, + CC_ENABLETEMPLATEHANDLE = 0x0040, + CC_SOLIDCOLOR = 0x0080, + CC_ANYCOLOR = 0x0100 +} + +// flags for ChooseFont +enum : DWORD { + CF_SCREENFONTS = 0x00000001, + CF_PRINTERFONTS = 0x00000002, + CF_BOTH = 0x00000003, + CF_SHOWHELP = 0x00000004, + CF_ENABLEHOOK = 0x00000008, + CF_ENABLETEMPLATE = 0x00000010, + CF_ENABLETEMPLATEHANDLE = 0x00000020, + CF_INITTOLOGFONTSTRUCT = 0x00000040, + CF_USESTYLE = 0x00000080, + CF_EFFECTS = 0x00000100, + CF_APPLY = 0x00000200, + CF_ANSIONLY = 0x00000400, + CF_SCRIPTSONLY = CF_ANSIONLY, + CF_NOVECTORFONTS = 0x00000800, + CF_NOOEMFONTS = 0x00000800, + CF_NOSIMULATIONS = 0x00001000, + CF_LIMITSIZE = 0x00002000, + CF_FIXEDPITCHONLY = 0x00004000, + CF_WYSIWYG = 0x00008000, + CF_FORCEFONTEXIST = 0x00010000, + CF_SCALABLEONLY = 0x00020000, + CF_TTONLY = 0x00040000, + CF_NOFACESEL = 0x00080000, + CF_NOSTYLESEL = 0x00100000, + CF_NOSIZESEL = 0x00200000, + CF_SELECTSCRIPT = 0x00400000, + CF_NOSCRIPTSEL = 0x00800000, + CF_NOVERTFONTS = 0x01000000 +} + +// Font type for ChooseFont +enum : WORD { + BOLD_FONTTYPE = 0x0100, + ITALIC_FONTTYPE = 0x0200, + REGULAR_FONTTYPE = 0x0400, + SCREEN_FONTTYPE = 0x2000, + PRINTER_FONTTYPE = 0x4000, + SIMULATED_FONTTYPE = 0x8000 +} + +enum : UINT { + WM_CHOOSEFONT_GETLOGFONT = WM_USER + 1, + WM_CHOOSEFONT_SETLOGFONT = WM_USER + 101, + WM_CHOOSEFONT_SETFLAGS = WM_USER + 102 +} + +// flags for OpenFileName +enum : DWORD { + OFN_SHAREWARN = 0, + OFN_SHARENOWARN = 0x000001, + OFN_READONLY = 0x000001, + OFN_SHAREFALLTHROUGH = 0x000002, + OFN_OVERWRITEPROMPT = 0x000002, + OFN_HIDEREADONLY = 0x000004, + OFN_NOCHANGEDIR = 0x000008, + OFN_SHOWHELP = 0x000010, + OFN_ENABLEHOOK = 0x000020, + OFN_ENABLETEMPLATE = 0x000040, + OFN_ENABLETEMPLATEHANDLE = 0x000080, + OFN_NOVALIDATE = 0x000100, + OFN_ALLOWMULTISELECT = 0x000200, + OFN_EXTENSIONDIFFERENT = 0x000400, + OFN_PATHMUSTEXIST = 0x000800, + OFN_FILEMUSTEXIST = 0x001000, + OFN_CREATEPROMPT = 0x002000, + OFN_SHAREAWARE = 0x004000, + OFN_NOREADONLYRETURN = 0x008000, + OFN_NOTESTFILECREATE = 0x010000, + OFN_NONETWORKBUTTON = 0x020000, + OFN_NOLONGNAMES = 0x040000, + OFN_EXPLORER = 0x080000, + OFN_NODEREFERENCELINKS = 0x100000, + OFN_LONGNAMES = 0x200000, + OFN_ENABLESIZING = 0x800000 +} + +enum : DWORD { + FR_DOWN = 0x00000001, + FR_WHOLEWORD = 0x00000002, + FR_MATCHCASE = 0x00000004, + FR_FINDNEXT = 0x00000008, + FR_REPLACE = 0x00000010, + FR_REPLACEALL = 0x00000020, + FR_DIALOGTERM = 0x00000040, + FR_SHOWHELP = 0x00000080, + FR_ENABLEHOOK = 0x00000100, + FR_ENABLETEMPLATE = 0x00000200, + FR_NOUPDOWN = 0x00000400, + FR_NOMATCHCASE = 0x00000800, + FR_NOWHOLEWORD = 0x00001000, + FR_ENABLETEMPLATEHANDLE = 0x00002000, + FR_HIDEUPDOWN = 0x00004000, + FR_HIDEMATCHCASE = 0x00008000, + FR_HIDEWHOLEWORD = 0x00010000, + FR_MATCHDIAC = 0x20000000, + FR_MATCHKASHIDA = 0x40000000, + FR_MATCHALEFHAMZA = 0x80000000 +} + +enum : DWORD { + PD_ALLPAGES = 0, + PD_SELECTION = 0x000001, + PD_PAGENUMS = 0x000002, + PD_NOSELECTION = 0x000004, + PD_NOPAGENUMS = 0x000008, + PD_COLLATE = 0x000010, + PD_PRINTTOFILE = 0x000020, + PD_PRINTSETUP = 0x000040, + PD_NOWARNING = 0x000080, + PD_RETURNDC = 0x000100, + PD_RETURNIC = 0x000200, + PD_RETURNDEFAULT = 0x000400, + PD_SHOWHELP = 0x000800, + PD_ENABLEPRINTHOOK = 0x001000, + PD_ENABLESETUPHOOK = 0x002000, + PD_ENABLEPRINTTEMPLATE = 0x004000, + PD_ENABLESETUPTEMPLATE = 0x008000, + PD_ENABLEPRINTTEMPLATEHANDLE = 0x010000, + PD_ENABLESETUPTEMPLATEHANDLE = 0x020000, + PD_USEDEVMODECOPIES = 0x040000, + PD_USEDEVMODECOPIESANDCOLLATE = 0x040000, + PD_DISABLEPRINTTOFILE = 0x080000, + PD_HIDEPRINTTOFILE = 0x100000, + PD_NONETWORKBUTTON = 0x200000 +} + +static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { + enum : DWORD { + PD_CURRENTPAGE = 0x00400000, + PD_NOCURRENTPAGE = 0x00800000, + PD_EXCLUSIONFLAGS = 0x01000000, + PD_USELARGETEMPLATE = 0x10000000, + } + + enum : HRESULT { + PD_RESULT_CANCEL, + PD_RESULT_PRINT, + PD_RESULT_APPLY + } + + const DWORD START_PAGE_GENERAL = 0xFFFFFFFF; +} + +enum { + PSD_DEFAULTMINMARGINS = 0, + PSD_INWININIINTLMEASURE = 0, + PSD_MINMARGINS = 0x000001, + PSD_MARGINS = 0x000002, + PSD_INTHOUSANDTHSOFINCHES = 0x000004, + PSD_INHUNDREDTHSOFMILLIMETERS = 0x000008, + PSD_DISABLEMARGINS = 0x000010, + PSD_DISABLEPRINTER = 0x000020, + PSD_NOWARNING = 0x000080, + PSD_DISABLEORIENTATION = 0x000100, + PSD_DISABLEPAPER = 0x000200, + PSD_RETURNDEFAULT = 0x000400, + PSD_SHOWHELP = 0x000800, + PSD_ENABLEPAGESETUPHOOK = 0x002000, + PSD_ENABLEPAGESETUPTEMPLATE = 0x008000, + PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 0x020000, + PSD_ENABLEPAGEPAINTHOOK = 0x040000, + PSD_DISABLEPAGEPAINTING = 0x080000 +} + +enum : UINT { + WM_PSD_PAGESETUPDLG = WM_USER, + WM_PSD_FULLPAGERECT, + WM_PSD_MINMARGINRECT, + WM_PSD_MARGINRECT, + WM_PSD_GREEKTEXTRECT, + WM_PSD_ENVSTAMPRECT, + WM_PSD_YAFULLPAGERECT // = WM_USER + 6 +} + +enum : int { + CD_LBSELNOITEMS = -1, + CD_LBSELCHANGE, + CD_LBSELSUB, + CD_LBSELADD +} + +const WORD DN_DEFAULTPRN = 1; + +/+ +// Both MinGW and the windows docs indicate that there are macros for the send messages +// the controls. These seem to be totally unnecessary -- and at least one of MinGW or +// Windows Docs is buggy! + +int CommDlg_OpenSave_GetSpec(HWND hWndControl, LPARAM lparam, WPARAM wParam) { + return SendMessage(hWndControl, CDM_GETSPEC, wParam, lParam); +} + +int CommDlg_OpenSave_GetFilePath(HWND hWndControl, LPARAM lparam, WPARAM wParam) { + return SendMessage(hWndControl, CDM_GETFILEPATH, wParam, lParam); +} + +int CommDlg_OpenSave_GetFolderPath(HWND hWndControl, LPARAM lparam, WPARAM wParam) { + return SendMessage(hWndControl, CDM_GETFOLDERPATH, wParam, lParam); +} + +int CommDlg_OpenSave_GetFolderIDList(HWND hWndControl, LPARAM lparam, WPARAM wParam) { + return SendMessage(hWndControl, CDM_GETFOLDERIDLIST, wParam, lParam); +} + +void CommDlg_OpenSave_SetControlText(HWND hWndControl, LPARAM lparam, WPARAM wParam) { + return SendMessage(hWndControl, CDM_SETCONTROLTEXT, wParam, lParam); +} + +void CommDlg_OpenSave_HideControl(HWND hWndControl, WPARAM wParam) { + return SendMessage(hWndControl, CDM_HIDECONTROL, wParam, 0); +} + +void CommDlg_OpenSave_SetDefExt(HWND hWndControl, TCHAR* lparam) { + return SendMessage(hWndControl, CDM_SETCONTROLTEXT, 0, cast(LPARAM)lParam); +} + +// These aliases seem even more unnecessary +alias CommDlg_OpenSave_GetSpec + CommDlg_OpenSave_GetSpecA, CommDlg_OpenSave_GetSpecW; +alias CommDlg_OpenSave_GetFilePath + CommDlg_OpenSave_GetFilePathA, CommDlg_OpenSave_GetFilePathW; +alias CommDlg_OpenSave_GetFolderPath + CommDlg_OpenSave_GetFolderPathA, CommDlg_OpenSave_GetFolderPathW; ++/ + +// Callbacks. +extern(Windows) { +alias UINT function (HWND, UINT, WPARAM, LPARAM) + LPCCHOOKPROC, LPCFHOOKPROC, LPFRHOOKPROC, LPOFNHOOKPROC, + LPPAGEPAINTHOOK, LPPAGESETUPHOOK, LPSETUPHOOKPROC, LPPRINTHOOKPROC; +} + +align (1): + +struct CHOOSECOLORA { + DWORD lStructSize = CHOOSECOLORA.sizeof; + HWND hwndOwner; + HWND hInstance; + COLORREF rgbResult; + COLORREF* lpCustColors; + DWORD Flags; + LPARAM lCustData; + LPCCHOOKPROC lpfnHook; + LPCSTR lpTemplateName; +} +alias CHOOSECOLORA* LPCHOOSECOLORA; + +struct CHOOSECOLORW { + DWORD lStructSize = CHOOSECOLORW.sizeof; + HWND hwndOwner; + HWND hInstance; + COLORREF rgbResult; + COLORREF* lpCustColors; + DWORD Flags; + LPARAM lCustData; + LPCCHOOKPROC lpfnHook; + LPCWSTR lpTemplateName; +} +alias CHOOSECOLORW* LPCHOOSECOLORW; + +align (4) struct CHOOSEFONTA { + DWORD lStructSize = CHOOSEFONTA.sizeof; + HWND hwndOwner; + HDC hDC; + LPLOGFONTA lpLogFont; + INT iPointSize; + DWORD Flags; + DWORD rgbColors; + LPARAM lCustData; + LPCFHOOKPROC lpfnHook; + LPCSTR lpTemplateName; + HINSTANCE hInstance; + LPSTR lpszStyle; + WORD nFontType; + //WORD ___MISSING_ALIGNMENT__; + INT nSizeMin; + INT nSizeMax; +} +alias CHOOSEFONTA* LPCHOOSEFONTA; + +align (4) struct CHOOSEFONTW { + DWORD lStructSize = CHOOSEFONTW.sizeof; + HWND hwndOwner; + HDC hDC; + LPLOGFONTW lpLogFont; + INT iPointSize; + DWORD Flags; + DWORD rgbColors; + LPARAM lCustData; + LPCFHOOKPROC lpfnHook; + LPCWSTR lpTemplateName; + HINSTANCE hInstance; + LPWSTR lpszStyle; + WORD nFontType; + //WORD ___MISSING_ALIGNMENT__; + INT nSizeMin; + INT nSizeMax; +} +alias CHOOSEFONTW* LPCHOOSEFONTW; + +struct DEVNAMES { + WORD wDriverOffset; + WORD wDeviceOffset; + WORD wOutputOffset; + WORD wDefault; +} +alias DEVNAMES* LPDEVNAMES; + +struct FINDREPLACEA { + DWORD lStructSize = FINDREPLACEA.sizeof; + HWND hwndOwner; + HINSTANCE hInstance; + DWORD Flags; + LPSTR lpstrFindWhat; + LPSTR lpstrReplaceWith; + WORD wFindWhatLen; + WORD wReplaceWithLen; + LPARAM lCustData; + LPFRHOOKPROC lpfnHook; + LPCSTR lpTemplateName; +} +alias FINDREPLACEA* LPFINDREPLACEA; + +struct FINDREPLACEW { + DWORD lStructSize = FINDREPLACEW.sizeof; + HWND hwndOwner; + HINSTANCE hInstance; + DWORD Flags; + LPWSTR lpstrFindWhat; + LPWSTR lpstrReplaceWith; + WORD wFindWhatLen; + WORD wReplaceWithLen; + LPARAM lCustData; + LPFRHOOKPROC lpfnHook; + LPCWSTR lpTemplateName; +} +alias FINDREPLACEW* LPFINDREPLACEW; + +struct OPENFILENAMEA { + DWORD lStructSize = OPENFILENAMEA.sizeof; + HWND hwndOwner; + HINSTANCE hInstance; + LPCSTR lpstrFilter; + LPSTR lpstrCustomFilter; + DWORD nMaxCustFilter; + DWORD nFilterIndex; + LPSTR lpstrFile; + DWORD nMaxFile; + LPSTR lpstrFileTitle; + DWORD nMaxFileTitle; + LPCSTR lpstrInitialDir; + LPCSTR lpstrTitle; + DWORD Flags; + WORD nFileOffset; + WORD nFileExtension; + LPCSTR lpstrDefExt; + DWORD lCustData; + LPOFNHOOKPROC lpfnHook; + LPCSTR lpTemplateName; + + static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x0500) { + void *pvReserved; + DWORD dwReserved; + DWORD FlagsEx; + } +} +alias OPENFILENAMEA* LPOPENFILENAMEA; + +struct OPENFILENAMEW { + DWORD lStructSize = OPENFILENAMEW.sizeof; + HWND hwndOwner; + HINSTANCE hInstance; + LPCWSTR lpstrFilter; + LPWSTR lpstrCustomFilter; + DWORD nMaxCustFilter; + DWORD nFilterIndex; + LPWSTR lpstrFile; + DWORD nMaxFile; + LPWSTR lpstrFileTitle; + DWORD nMaxFileTitle; + LPCWSTR lpstrInitialDir; + LPCWSTR lpstrTitle; + DWORD Flags; + WORD nFileOffset; + WORD nFileExtension; + LPCWSTR lpstrDefExt; + DWORD lCustData; + LPOFNHOOKPROC lpfnHook; + LPCWSTR lpTemplateName; + + static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x0500) { + void *pvReserved; + DWORD dwReserved; + DWORD FlagsEx; + } +} +alias OPENFILENAMEW* LPOPENFILENAMEW; + +const size_t OPENFILENAME_SIZE_VERSION_400 = 76; + +struct OFNOTIFYA { + NMHDR hdr; + LPOPENFILENAMEA lpOFN; + LPSTR pszFile; +} +alias OFNOTIFYA* LPOFNOTIFYA; + +struct OFNOTIFYW { + NMHDR hdr; + LPOPENFILENAMEW lpOFN; + LPWSTR pszFile; +} +alias OFNOTIFYW* LPOFNOTIFYW; + +struct PAGESETUPDLGA { + DWORD lStructSize = PAGESETUPDLGA.sizeof; + HWND hwndOwner; + HGLOBAL hDevMode; + HGLOBAL hDevNames; + DWORD Flags; + POINT ptPaperSize; + RECT rtMinMargin; + RECT rtMargin; + HINSTANCE hInstance; + LPARAM lCustData; + LPPAGESETUPHOOK lpfnPageSetupHook; + LPPAGEPAINTHOOK lpfnPagePaintHook; + LPCSTR lpPageSetupTemplateName; + HGLOBAL hPageSetupTemplate; +} +alias PAGESETUPDLGA* LPPAGESETUPDLGA; + +struct PAGESETUPDLGW { + DWORD lStructSize = PAGESETUPDLGW.sizeof; + HWND hwndOwner; + HGLOBAL hDevMode; + HGLOBAL hDevNames; + DWORD Flags; + POINT ptPaperSize; + RECT rtMinMargin; + RECT rtMargin; + HINSTANCE hInstance; + LPARAM lCustData; + LPPAGESETUPHOOK lpfnPageSetupHook; + LPPAGEPAINTHOOK lpfnPagePaintHook; + LPCWSTR lpPageSetupTemplateName; + HGLOBAL hPageSetupTemplate; +} +alias PAGESETUPDLGW* LPPAGESETUPDLGW; + +struct PRINTDLGA { + DWORD lStructSize = PRINTDLGA.sizeof; + HWND hwndOwner; + HANDLE hDevMode; + HANDLE hDevNames; + HDC hDC; + DWORD Flags; + WORD nFromPage; + WORD nToPage; + WORD nMinPage; + WORD nMaxPage; + WORD nCopies; + HINSTANCE hInstance; + DWORD lCustData; + LPPRINTHOOKPROC lpfnPrintHook; + LPSETUPHOOKPROC lpfnSetupHook; + LPCSTR lpPrintTemplateName; + LPCSTR lpSetupTemplateName; + HANDLE hPrintTemplate; + HANDLE hSetupTemplate; +} +alias PRINTDLGA* LPPRINTDLGA; + +struct PRINTDLGW { + DWORD lStructSize = PRINTDLGW.sizeof; + HWND hwndOwner; + HANDLE hDevMode; + HANDLE hDevNames; + HDC hDC; + DWORD Flags; + WORD nFromPage; + WORD nToPage; + WORD nMinPage; + WORD nMaxPage; + WORD nCopies; + HINSTANCE hInstance; + DWORD lCustData; + LPPRINTHOOKPROC lpfnPrintHook; + LPSETUPHOOKPROC lpfnSetupHook; + LPCWSTR lpPrintTemplateName; + LPCWSTR lpSetupTemplateName; + HANDLE hPrintTemplate; + HANDLE hSetupTemplate; +} +alias PRINTDLGW* LPPRINTDLGW; + +static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { + import win32.unknwn; // for LPUNKNOWN + import win32.prsht; // for HPROPSHEETPAGE + + struct PRINTPAGERANGE { + DWORD nFromPage; + DWORD nToPage; + } + alias PRINTPAGERANGE* LPPRINTPAGERANGE; + + struct PRINTDLGEXA { + DWORD lStructSize = PRINTDLGEXA.sizeof; + HWND hwndOwner; + HGLOBAL hDevMode; + HGLOBAL hDevNames; + HDC hDC; + DWORD Flags; + DWORD Flags2; + DWORD ExclusionFlags; + DWORD nPageRanges; + DWORD nMaxPageRanges; + LPPRINTPAGERANGE lpPageRanges; + DWORD nMinPage; + DWORD nMaxPage; + DWORD nCopies; + HINSTANCE hInstance; + LPCSTR lpPrintTemplateName; + LPUNKNOWN lpCallback; + DWORD nPropertyPages; + HPROPSHEETPAGE* lphPropertyPages; + DWORD nStartPage; + DWORD dwResultAction; + } + alias PRINTDLGEXA* LPPRINTDLGEXA; + + struct PRINTDLGEXW { + DWORD lStructSize = PRINTDLGEXW.sizeof; + HWND hwndOwner; + HGLOBAL hDevMode; + HGLOBAL hDevNames; + HDC hDC; + DWORD Flags; + DWORD Flags2; + DWORD ExclusionFlags; + DWORD nPageRanges; + DWORD nMaxPageRanges; + LPPRINTPAGERANGE lpPageRanges; + DWORD nMinPage; + DWORD nMaxPage; + DWORD nCopies; + HINSTANCE hInstance; + LPCWSTR lpPrintTemplateName; + LPUNKNOWN lpCallback; + DWORD nPropertyPages; + HPROPSHEETPAGE* lphPropertyPages; + DWORD nStartPage; + DWORD dwResultAction; + } + alias PRINTDLGEXW* LPPRINTDLGEXW; + +} // _WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500 + +extern (Windows) { + BOOL ChooseColorA(LPCHOOSECOLORA); + BOOL ChooseColorW(LPCHOOSECOLORW); + BOOL ChooseFontA(LPCHOOSEFONTA); + BOOL ChooseFontW(LPCHOOSEFONTW); + DWORD CommDlgExtendedError(); + HWND FindTextA(LPFINDREPLACEA); + HWND FindTextW(LPFINDREPLACEW); + short GetFileTitleA(LPCSTR, LPSTR, WORD); + short GetFileTitleW(LPCWSTR, LPWSTR, WORD); + BOOL GetOpenFileNameA(LPOPENFILENAMEA); + BOOL GetOpenFileNameW(LPOPENFILENAMEW); + BOOL GetSaveFileNameA(LPOPENFILENAMEA); + BOOL GetSaveFileNameW(LPOPENFILENAMEW); + BOOL PageSetupDlgA(LPPAGESETUPDLGA); + BOOL PageSetupDlgW(LPPAGESETUPDLGW); + BOOL PrintDlgA(LPPRINTDLGA); + BOOL PrintDlgW(LPPRINTDLGW); + HWND ReplaceTextA(LPFINDREPLACEA); + HWND ReplaceTextW(LPFINDREPLACEW); + + static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { + HRESULT PrintDlgExA(LPPRINTDLGEXA); + HRESULT PrintDlgExW(LPPRINTDLGEXW); + } +} + +version (Unicode) { + alias CHOOSECOLORW CHOOSECOLOR; + alias CHOOSEFONTW CHOOSEFONT; + alias FINDREPLACEW FINDREPLACE; + alias OPENFILENAMEW OPENFILENAME; + alias OFNOTIFYW OFNOTIFY; + alias PAGESETUPDLGW PAGESETUPDLG; + alias PRINTDLGW PRINTDLG; + + alias ChooseColorW ChooseColor; + alias ChooseFontW ChooseFont; + alias FindTextW FindText; + alias GetFileTitleW GetFileTitle; + alias GetOpenFileNameW GetOpenFileName; + alias GetSaveFileNameW GetSaveFileName; + alias PageSetupDlgW PageSetupDlg; + alias PrintDlgW PrintDlg; + alias ReplaceTextW ReplaceText; + + static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { + alias PRINTDLGEXW PRINTDLGEX; + alias PrintDlgExW PrintDlgEx; + } + +} else { // UNICODE + + alias CHOOSECOLORA CHOOSECOLOR; + alias CHOOSEFONTA CHOOSEFONT; + alias FINDREPLACEA FINDREPLACE; + alias OPENFILENAMEA OPENFILENAME; + alias OFNOTIFYA OFNOTIFY; + alias PAGESETUPDLGA PAGESETUPDLG; + alias PRINTDLGA PRINTDLG; + + alias ChooseColorA ChooseColor; + alias ChooseFontA ChooseFont; + alias FindTextA FindText; + alias GetFileTitleA GetFileTitle; + alias GetOpenFileNameA GetOpenFileName; + alias GetSaveFileNameA GetSaveFileName; + alias PageSetupDlgA PageSetupDlg; + alias PrintDlgA PrintDlg; + alias ReplaceTextA ReplaceText; + + static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { + alias PRINTDLGEXA PRINTDLGEX; + alias PrintDlgExA PrintDlgEx; + } + +} // UNICODE + +alias CHOOSECOLOR* LPCHOOSECOLOR; +alias CHOOSEFONT* LPCHOOSEFONT; +alias FINDREPLACE* LPFINDREPLACE; +alias OPENFILENAME* LPOPENFILENAME; +alias OFNOTIFY* LPOFNOTIFY; +alias PAGESETUPDLG* LPPAGESETUPDLG; +alias PRINTDLG* LPPRINTDLG; +static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { + alias PRINTDLGEX* LPPRINTDLGEX; +} ADDED src/win32/core.d Index: src/win32/core.d ================================================================== --- src/win32/core.d +++ src/win32/core.d @@ -0,0 +1,45 @@ +/***********************************************************************\ +* core.d * +* * +* Helper module for the Windows API * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.core; + +/** + The core Windows API functions. + + Importing this file is equivalent to the C code: + --- + #define WIN32_LEAN_AND_MEAN + #include "windows.h" + --- + +*/ + +public import win32.windef; +public import win32.winnt; +public import win32.wincon; +public import win32.winbase; +public import win32.wingdi; +public import win32.winuser; +public import win32.winnls; +public import win32.winver; +public import win32.winnetwk; + +// We can't use static if for imports, build gets confused. +// static if (_WIN32_WINNT_ONLY) import win32.winsvc; +version (WindowsVista) { + version = WIN32_WINNT_ONLY; +} else version (Windows2003) { + version = WIN32_WINNT_ONLY; +} else version (WindowsXP) { + version = WIN32_WINNT_ONLY; +} else version (WindowsNTonly) { + version = WIN32_WINNT_ONLY; +} + +version (WIN32_WINNT_ONLY) { + public import win32.winsvc; +} ADDED src/win32/cpl.d Index: src/win32/cpl.d ================================================================== --- src/win32/cpl.d +++ src/win32/cpl.d @@ -0,0 +1,77 @@ +/***********************************************************************\ +* cpl.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.cpl; + +private import win32.windef, win32.winuser; + +enum : uint { + WM_CPL_LAUNCH = WM_USER + 1000, + WM_CPL_LAUNCHED +} + +enum : uint { + CPL_DYNAMIC_RES, + CPL_INIT, + CPL_GETCOUNT, + CPL_INQUIRE, + CPL_SELECT, + CPL_DBLCLK, + CPL_STOP, + CPL_EXIT, + CPL_NEWINQUIRE, + CPL_STARTWPARMSA, + CPL_STARTWPARMSW, // = 10 + CPL_SETUP = 200 +} + +extern (Windows) alias LONG function(HWND, UINT, LONG, LONG) APPLET_PROC; + +struct CPLINFO { + int idIcon; + int idName; + int idInfo; + LONG lData; +} +alias CPLINFO* LPCPLINFO; + +struct NEWCPLINFOA { + DWORD dwSize = NEWCPLINFOA.sizeof; + DWORD dwFlags; + DWORD dwHelpContext; + LONG lData; + HICON hIcon; + CHAR[32] szName; + CHAR[64] szInfo; + CHAR[128] szHelpFile; +} +alias NEWCPLINFOA* LPNEWCPLINFOA; + +struct NEWCPLINFOW { + DWORD dwSize = NEWCPLINFOW.sizeof; + DWORD dwFlags; + DWORD dwHelpContext; + LONG lData; + HICON hIcon; + WCHAR[32] szName; + WCHAR[64] szInfo; + WCHAR[128] szHelpFile; +} +alias NEWCPLINFOW* LPNEWCPLINFOW; + +version (Unicode) { + alias CPL_STARTWPARMSW CPL_STARTWPARMS; + alias NEWCPLINFOW NEWCPLINFO; +} else { + alias CPL_STARTWPARMSA CPL_STARTWPARMS; + alias NEWCPLINFOA NEWCPLINFO; +} + +alias NEWCPLINFO* LPNEWCPLINFO; ADDED src/win32/cplext.d Index: src/win32/cplext.d ================================================================== --- src/win32/cplext.d +++ src/win32/cplext.d @@ -0,0 +1,19 @@ +/***********************************************************************\ +* cplext.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.10 * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.cplext; + +enum : uint { + CPLPAGE_MOUSE_BUTTONS = 1, + CPLPAGE_MOUSE_PTRMOTION = 2, + CPLPAGE_MOUSE_WHEEL = 3, + CPLPAGE_KEYBOARD_SPEED = 1, + CPLPAGE_DISPLAY_BACKGROUND = 1 +} ADDED src/win32/custcntl.d Index: src/win32/custcntl.d ================================================================== --- src/win32/custcntl.d +++ src/win32/custcntl.d @@ -0,0 +1,122 @@ +/***********************************************************************\ +* custcntl.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.custcntl; + +private import win32.windef; + +// FIXME: check type +const CCF_NOTEXT = 1; + +const size_t + CCHCCCLASS = 32, + CCHCCDESC = 32, + CCHCCTEXT = 256; + +struct CCSTYLEA { + DWORD flStyle; + DWORD flExtStyle; + CHAR[CCHCCTEXT] szText; + LANGID lgid; + WORD wReserved1; +} +alias CCSTYLEA* LPCCSTYLEA; + +struct CCSTYLEW { + DWORD flStyle; + DWORD flExtStyle; + WCHAR[CCHCCTEXT] szText; + LANGID lgid; + WORD wReserved1; +} +alias CCSTYLEW* LPCCSTYLEW; + +struct CCSTYLEFLAGA { + DWORD flStyle; + DWORD flStyleMask; + LPSTR pszStyle; +} +alias CCSTYLEFLAGA* LPCCSTYLEFLAGA; + +struct CCSTYLEFLAGW { + DWORD flStyle; + DWORD flStyleMask; + LPWSTR pszStyle; +} +alias CCSTYLEFLAGW* LPCCSTYLEFLAGW; + +struct CCINFOA { + CHAR[CCHCCCLASS] szClass; + DWORD flOptions; + CHAR[CCHCCDESC] szDesc; + UINT cxDefault; + UINT cyDefault; + DWORD flStyleDefault; + DWORD flExtStyleDefault; + DWORD flCtrlTypeMask; + CHAR[CCHCCTEXT] szTextDefault; + INT cStyleFlags; + LPCCSTYLEFLAGA aStyleFlags; + LPFNCCSTYLEA lpfnStyle; + LPFNCCSIZETOTEXTA lpfnSizeToText; + DWORD dwReserved1; + DWORD dwReserved2; +} +alias CCINFOA* LPCCINFOA; + +struct CCINFOW { + WCHAR[CCHCCCLASS] szClass; + DWORD flOptions; + WCHAR[CCHCCDESC] szDesc; + UINT cxDefault; + UINT cyDefault; + DWORD flStyleDefault; + DWORD flExtStyleDefault; + DWORD flCtrlTypeMask; + WCHAR[CCHCCTEXT] szTextDefault; + INT cStyleFlags; + LPCCSTYLEFLAGW aStyleFlags; + LPFNCCSTYLEW lpfnStyle; + LPFNCCSIZETOTEXTW lpfnSizeToText; + DWORD dwReserved1; + DWORD dwReserved2; +} +alias CCINFOW* LPCCINFOW; + +extern (Windows) { + alias BOOL function(HWND, LPCCSTYLEA) LPFNCCSTYLEA; + alias BOOL function(HWND, LPCCSTYLEW) LPFNCCSTYLEW; + alias INT function(DWORD, DWORD, HFONT, LPSTR) LPFNCCSIZETOTEXTA; + alias INT function(DWORD, DWORD, HFONT, LPWSTR) LPFNCCSIZETOTEXTW; + alias UINT function(LPCCINFOA) LPFNCCINFOA; + alias UINT function(LPCCINFOW) LPFNCCINFOW; + UINT CustomControlInfoA(LPCCINFOA acci); + UINT CustomControlInfoW(LPCCINFOW acci); +} + +version (Unicode) { + alias CCSTYLEW CCSTYLE; + alias CCSTYLEFLAGW CCSTYLEFLAG; + alias CCINFOW CCINFO; + alias LPFNCCSTYLEW LPFNCCSTYLE; + alias LPFNCCSIZETOTEXTW LPFNCCSIZETOTEXT; + alias LPFNCCINFOW LPFNCCINFO; +} else { + alias CCSTYLEA CCSTYLE; + alias CCSTYLEFLAGA CCSTYLEFLAG; + alias CCINFOA CCINFO; + alias LPFNCCSTYLEA LPFNCCSTYLE; + alias LPFNCCSIZETOTEXTA LPFNCCSIZETOTEXT; + alias LPFNCCINFOA LPFNCCINFO; +} + +alias CCSTYLE* LPCCSTYLE; +alias CCSTYLEFLAG* LPCCSTYLEFLAG; +alias CCINFO* LPCCINFO; ADDED src/win32/dbt.d Index: src/win32/dbt.d ================================================================== --- src/win32/dbt.d +++ src/win32/dbt.d @@ -0,0 +1,194 @@ +/***********************************************************************\ +* dbt.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Vladimir Vlasov * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.dbt; + +import win32.w32api, win32.windef; +import win32.basetyps; // for GUID + +// FIXME: clean up Windows version support + +enum : DWORD { + DBT_NO_DISK_SPACE = 0x47, + DBT_CONFIGMGPRIVATE = 0x7FFF, + DBT_DEVICEARRIVAL = 0x8000, + DBT_DEVICEQUERYREMOVE = 0x8001, + DBT_DEVICEQUERYREMOVEFAILED = 0x8002, + DBT_DEVICEREMOVEPENDING = 0x8003, + DBT_DEVICEREMOVECOMPLETE = 0x8004, + DBT_DEVICETYPESPECIFIC = 0x8005, + DBT_DEVTYP_OEM = 0, + DBT_DEVTYP_DEVNODE = 1, + DBT_DEVTYP_VOLUME = 2, + DBT_DEVTYP_PORT = 3, + DBT_DEVTYP_NET = 4 +} + +static if (_WIN32_WINDOWS >= 0x040A) { + enum : DWORD { + DBT_DEVTYP_DEVICEINTERFACE = 5, + DBT_DEVTYP_HANDLE = 6 + } +} + +enum : DWORD { + DBT_APPYBEGIN, + DBT_APPYEND, + DBT_DEVNODES_CHANGED = 7, + DBT_QUERYCHANGECONFIG = 0x17, + DBT_CONFIGCHANGED = 0x18, + DBT_CONFIGCHANGECANCELED = 0x19, + DBT_MONITORCHANGE = 0x1B, + DBT_SHELLLOGGEDON = 32, + DBT_CONFIGMGAPI32 = 34, + DBT_VXDINITCOMPLETE = 35, + DBT_VOLLOCKQUERYLOCK = 0x8041, + DBT_VOLLOCKLOCKTAKEN = 0x8042, + DBT_VOLLOCKLOCKFAILED = 0x8043, + DBT_VOLLOCKQUERYUNLOCK = 0x8044, + DBT_VOLLOCKLOCKRELEASED = 0x8045, + DBT_VOLLOCKUNLOCKFAILED = 0x8046, + DBT_USERDEFINED = 0xFFFF +} + +enum : WORD { + DBTF_MEDIA = 1, + DBTF_NET = 2 +} + +enum : DWORD { + BSM_ALLCOMPONENTS = 0, + BSM_APPLICATIONS = 8, + BSM_ALLDESKTOPS = 16, + BSM_INSTALLABLEDRIVERS = 4, + BSM_NETDRIVER = 2, + BSM_VXDS = 1, + BSF_FLUSHDISK = 0x00000004, + BSF_FORCEIFHUNG = 0x00000020, + BSF_IGNORECURRENTTASK = 0x00000002, + BSF_NOHANG = 0x00000008, + BSF_NOTIMEOUTIFNOTHUNG = 0x00000040, + BSF_POSTMESSAGE = 0x00000010, + BSF_QUERY = 0x00000001, + BSF_MSGSRV32ISOK_BIT = 31, + BSF_MSGSRV32ISOK = 0x80000000 +} + +static if (_WIN32_WINNT >= 0x0500) { + enum : DWORD { + BSF_ALLOWSFW = 0x00000080, + BSF_SENDNOTIFYMESSAGE = 0x00000100 + } +} + +static if (_WIN32_WINNT >= 0x0501) { + enum : DWORD { + BSF_LUID = 0x00000400, + BSF_RETURNHDESK = 0x00000200 + } +} + +struct DEV_BROADCAST_HDR { + DWORD dbch_size = DEV_BROADCAST_HDR.sizeof; + DWORD dbch_devicetype; + DWORD dbch_reserved; +} +alias DEV_BROADCAST_HDR* PDEV_BROADCAST_HDR; + +struct DEV_BROADCAST_OEM { + DWORD dbco_size = DEV_BROADCAST_OEM.sizeof; + DWORD dbco_devicetype; + DWORD dbco_reserved; + DWORD dbco_identifier; + DWORD dbco_suppfunc; +} +alias DEV_BROADCAST_OEM* PDEV_BROADCAST_OEM; + +struct DEV_BROADCAST_PORT_A { + DWORD dbcp_size = DEV_BROADCAST_PORT_A.sizeof; + DWORD dbcp_devicetype; + DWORD dbcp_reserved; + char _dbcp_name; + char* dbcp_name() { return &_dbcp_name; } +} +alias DEV_BROADCAST_PORT_A* PDEV_BROADCAST_PORT_A; + +struct DEV_BROADCAST_PORT_W { + DWORD dbcp_size = DEV_BROADCAST_PORT_W.sizeof; + DWORD dbcp_devicetype; + DWORD dbcp_reserved; + WCHAR _dbcp_name; + WCHAR* dbcp_name() { return &_dbcp_name; } +} +alias DEV_BROADCAST_PORT_W* PDEV_BROADCAST_PORT_W; + +struct DEV_BROADCAST_USERDEFINED { + DEV_BROADCAST_HDR dbud_dbh; + char _dbud_szName; + char* dbud_szName() { return &_dbud_szName; } +} + +struct DEV_BROADCAST_VOLUME { + DWORD dbcv_size = DEV_BROADCAST_VOLUME.sizeof; + DWORD dbcv_devicetype; + DWORD dbcv_reserved; + DWORD dbcv_unitmask; + WORD dbcv_flags; +} +alias DEV_BROADCAST_VOLUME* PDEV_BROADCAST_VOLUME; + +version (Unicode) { + alias DEV_BROADCAST_PORT_W DEV_BROADCAST_PORT; +} else { + alias DEV_BROADCAST_PORT_A DEV_BROADCAST_PORT; +} +alias DEV_BROADCAST_PORT* PDEV_BROADCAST_PORT; + +static if ((_WIN32_WINDOWS >= 0x0410) || (_WIN32_WINNT >= 0x0500)) { + struct DEV_BROADCAST_DEVICEINTERFACE_A { + DWORD dbcc_size = DEV_BROADCAST_DEVICEINTERFACE_A.sizeof; + DWORD dbcc_devicetype; + DWORD dbcc_reserved; + GUID dbcc_classguid; + char _dbcc_name; + char* dbcc_name() { return &_dbcc_name; } + } + alias DEV_BROADCAST_DEVICEINTERFACE_A* PDEV_BROADCAST_DEVICEINTERFACE_A; + + struct DEV_BROADCAST_DEVICEINTERFACE_W { + DWORD dbcc_size = DEV_BROADCAST_DEVICEINTERFACE_W.sizeof; + DWORD dbcc_devicetype; + DWORD dbcc_reserved; + GUID dbcc_classguid; + WCHAR _dbcc_name; + WCHAR* dbcc_name() { return &_dbcc_name; } + } + alias DEV_BROADCAST_DEVICEINTERFACE_W* PDEV_BROADCAST_DEVICEINTERFACE_W; + + version (Unicode) { + alias DEV_BROADCAST_DEVICEINTERFACE_W DEV_BROADCAST_DEVICEINTERFACE; + } else { + alias DEV_BROADCAST_DEVICEINTERFACE_A DEV_BROADCAST_DEVICEINTERFACE; + } + alias DEV_BROADCAST_DEVICEINTERFACE* PDEV_BROADCAST_DEVICEINTERFACE; + + struct DEV_BROADCAST_HANDLE { + DWORD dbch_size = DEV_BROADCAST_HANDLE.sizeof; + DWORD dbch_devicetype; + DWORD dbch_reserved; + HANDLE dbch_handle; + DWORD dbch_hdevnotify; + GUID dbch_eventguid; + LONG dbch_nameoffset; + BYTE _dbch_data; + BYTE* dbch_data() { return &_dbch_data; } + } + alias DEV_BROADCAST_HANDLE* PDEV_BROADCAST_HANDLE; +} Index: src/win32/dde.d ================================================================== --- src/win32/dde.d +++ src/win32/dde.d @@ -1,134 +1,215 @@ -module win32.dde; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino - - -// #ifndef _DDEHEADER_INCLUDED_ -// #define _DDEHEADER_INCLUDED_ - -// #if _MSC_VER > 1000 -// #pragma once -// #endif - -// #ifndef _WINDEF_ -import win32.windef; -// #endif - -// #ifdef __cplusplus -// extern "C" { -// #endif - -enum : uint { WM_DDE_FIRST = 0x03E0 } -const uint WM_DDE_INITIATE = WM_DDE_FIRST; -const uint WM_DDE_TERMINATE = WM_DDE_FIRST+1; -const uint WM_DDE_ADVISE = WM_DDE_FIRST+2; -const uint WM_DDE_UNADVISE = WM_DDE_FIRST+3; -const uint WM_DDE_ACK = WM_DDE_FIRST+4; -const uint WM_DDE_DATA = WM_DDE_FIRST+5; -const uint WM_DDE_REQUEST = WM_DDE_FIRST+6; -const uint WM_DDE_POKE = WM_DDE_FIRST+7; -const uint WM_DDE_EXECUTE = WM_DDE_FIRST+8; -const uint WM_DDE_LAST = WM_DDE_FIRST+8; - -struct _0 { -// #ifndef _MAC -// unsigned short bAppReturnCode:8, -// reserved:6, -// fBusy:1, -// fAck:1; -// #else -// ... -// #endif -} -alias _0 DDEACK; - -struct _1 { -// #ifndef _MAC -// unsigned short reserved:14, -// fDeferUpd:1, -// fAckReq:1; -// #else -// ... -// #endif - short cfFormat; -} -alias _1 DDEADVISE; - -struct _2 { -// #ifndef _MAC -// unsigned short unused:12, -// fResponse:1, -// fRelease:1, -// reserved:1, -// fAckReq:1; -// #else -// ... -// #endif - short cfFormat; - BYTE Value[1]; -} -alias _2 DDEDATA; - -struct _3 { -// #ifndef _MAC -// unsigned short unused:13, - -// fRelease:1, -// fReserved:2; -// #else -// ... -// #endif - short cfFormat; - BYTE Value[1]; - -} -alias _3 DDEPOKE; - -struct _4 { -// #ifndef _MAC -// unsigned short unused:13, -// fRelease:1, -// fDeferUpd:1, -// fAckReq:1; -// #else -// ... -// #endif - short cfFormat; -} -alias _4 DDELN; - -struct _5 { -// #ifndef _MAC -// unsigned short unused:12, -// fAck:1, -// fRelease:1, -// fReserved:1, -// fAckReq:1; -// #else -// ... -// #endif - short cfFormat; - BYTE rgb[1]; -} -alias _5 DDEUP; - -extern(Windows) export BOOL DdeSetQualityOfService( - HWND hwndClient, - SECURITY_QUALITY_OF_SERVICE *pqosNew, - PSECURITY_QUALITY_OF_SERVICE pqosPrev); - -extern(Windows) export BOOL ImpersonateDdeClientWindow( - HWND hWndClient, - HWND hWndServer); - -extern(Windows) export LPARAM PackDDElParam(UINT msg, UINT_PTR uiLo, UINT_PTR uiHi); -extern(Windows) export BOOL UnpackDDElParam(UINT msg, LPARAM lParam, PUINT_PTR puiLo, PUINT_PTR puiHi); -extern(Windows) export BOOL FreeDDElParam(UINT msg, LPARAM lParam); -extern(Windows) export LPARAM ReuseDDElParam(LPARAM lParam, UINT msgIn, UINT msgOut, UINT_PTR uiLo, UINT_PTR uiHi); - -// #ifdef __cplusplus -// } -// #endif - -// #endif // _DDEHEADER_INCLUDED_ +/***********************************************************************\ +* dde.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.dde; +pragma(lib, "user32.lib"); + +private import win32.windef; + +enum : uint { + WM_DDE_FIRST = 0x03E0, + WM_DDE_INITIATE = WM_DDE_FIRST, + WM_DDE_TERMINATE, + WM_DDE_ADVISE, + WM_DDE_UNADVISE, + WM_DDE_ACK, + WM_DDE_DATA, + WM_DDE_REQUEST, + WM_DDE_POKE, + WM_DDE_EXECUTE, + WM_DDE_LAST = WM_DDE_EXECUTE +} + +struct DDEACK { + ubyte bAppReturnCode; + ubyte _bf; + + ubyte reserved() { return cast(ubyte) (_bf & 0x3F); } + bool fBusy() { return cast(bool) (_bf & 0x40); } + bool fAck() { return cast(bool) (_bf & 0x80); } + + ubyte reserved(ubyte r) { + _bf = cast(ubyte) ((_bf & ~0x3F) | (r & 0x3F)); + return cast(ubyte)(r & 0x3F); + } + + bool fBusy(bool f) { _bf = cast(ubyte) ((_bf & ~0x40) | (f << 6)); return f; } + bool fAck(bool f) { _bf = cast(ubyte) ((_bf & ~0x80) | (f << 7)); return f; } +} + +struct DDEADVISE { + ushort _bf; + short cfFormat; + + ushort reserved() { return cast(ushort) (_bf & 0x3FFF); } + bool fDeferUpd() { return cast(bool) (_bf & 0x4000); } + bool fAckReq() { return cast(bool) (_bf & 0x8000); } + + ushort reserved(ushort r) { + _bf = cast(ushort) ((_bf & ~0x3FFF) | (r & 0x3FFF)); + return cast(ushort)(r & 0x3FFF); + } + + bool fDeferUpd(bool f) { _bf = cast(ushort) ((_bf & ~0x4000) | (f << 14)); return f; } + bool fAckReq(bool f) { _bf = cast(ushort) ((_bf & ~0x8000) | (f << 15)); return f; } +} + +struct DDEDATA { + ushort _bf; + short cfFormat; + byte _Value; + + ushort unused() { return cast(ushort) (_bf & 0x0FFF); } + bool fResponse() { return cast(bool) (_bf & 0x1000); } + bool fRelease() { return cast(bool) (_bf & 0x2000); } + bool reserved() { return cast(bool) (_bf & 0x4000); } + bool fAckReq() { return cast(bool) (_bf & 0x8000); } + + byte* Value() { return &_Value; } + + ushort unused(ushort r) { + _bf = cast(ushort) ((_bf & ~0x0FFF) | (r & 0x0FFF)); + return cast(ushort)(r & 0x0FFF); + } + + bool fResponse(bool f) { _bf = cast(ushort) ((_bf & ~0x1000) | (f << 12)); return f; } + bool fRelease(bool f) { _bf = cast(ushort) ((_bf & ~0x2000) | (f << 13)); return f; } + bool reserved(bool f) { _bf = cast(ushort) ((_bf & ~0x4000) | (f << 14)); return f; } + bool fAckReq(bool f) { _bf = cast(ushort) ((_bf & ~0x8000) | (f << 15)); return f; } +} + +struct DDEPOKE { + ushort _bf; + short cfFormat; + byte _Value; + + ushort unused() { return cast(ushort) (_bf & 0x1FFF); } + bool fRelease() { return cast(bool) (_bf & 0x2000); } + ubyte fReserved() { return cast(ubyte) ((_bf & 0xC000) >>> 14); } + + byte* Value() { return &_Value; } + + ushort unused(ushort u) { + _bf = cast(ushort) ((_bf & ~0x1FFF) | (u & 0x1FFF)); + return cast(ushort)(u & 0x1FFF); + } + + bool fRelease(bool f) { _bf = cast(ushort) ((_bf & ~0x2000) | (f << 13)); return f; } + ubyte fReserved(ubyte r) { _bf = cast(ushort) ((_bf & ~0xC000) | (r << 14)); return r; } +} + +deprecated struct DDELN { + ushort _bf; + short cfFormat; + + ushort unused() { return cast(ushort) (_bf & 0x1FFF); } + bool fRelease() { return cast(bool) (_bf & 0x2000); } + bool fDeferUpd() { return cast(bool) (_bf & 0x4000); } + bool fAckReq() { return cast(bool) (_bf & 0x8000); } + + ushort unused(ushort u) { + _bf = cast(ushort)((_bf & ~0x1FFF) | (u & 0x1FFF)); + return cast(ushort)(u & 0x1FFF); + } + + bool fRelease(bool f) { _bf = cast(ushort) ((_bf & ~0x2000) | (f << 13)); return f; } + bool fDeferUpd(bool f) { _bf = cast(ushort) ((_bf & ~0x4000) | (f << 14)); return f; } + bool fAckReq(bool f) { _bf = cast(ushort) ((_bf & ~0x8000) | (f << 15)); return f; } +} + +deprecated struct DDEUP { + ushort _bf; + short cfFormat; + byte _rgb; + + ushort unused() { return cast(ushort) (_bf & 0x0FFF); } + bool fAck() { return cast(bool) (_bf & 0x1000); } + bool fRelease() { return cast(bool) (_bf & 0x2000); } + bool fReserved() { return cast(bool) (_bf & 0x4000); } + bool fAckReq() { return cast(bool) (_bf & 0x8000); } + + byte* rgb() { return &_rgb; } + + ushort unused(ushort r) { + _bf = cast(ushort) ((_bf & ~0x0FFF) | (r & 0x0FFF)); + return cast(ushort)(r & 0x0FFF); + } + + bool fAck(bool f) { _bf = cast(ushort) ((_bf & ~0x1000) | (f << 12)); return f; } + bool fRelease(bool f) { _bf = cast(ushort) ((_bf & ~0x2000) | (f << 13)); return f; } + bool fReserved(bool f) { _bf = cast(ushort) ((_bf & ~0x4000) | (f << 14)); return f; } + bool fAckReq(bool f) { _bf = cast(ushort) ((_bf & ~0x8000) | (f << 15)); return f; } +} + +extern (Windows) { + BOOL DdeSetQualityOfService(HWND, CPtr!(SECURITY_QUALITY_OF_SERVICE), + PSECURITY_QUALITY_OF_SERVICE); + BOOL ImpersonateDdeClientWindow(HWND, HWND); + LPARAM PackDDElParam(UINT, UINT_PTR, UINT_PTR); + BOOL UnpackDDElParam(UINT, LPARAM, PUINT_PTR, PUINT_PTR); + BOOL FreeDDElParam(UINT, LPARAM); + LPARAM ReuseDDElParam(LPARAM, UINT, UINT, UINT_PTR, UINT_PTR); +} + +debug (WindowsUnitTest) { + unittest { + DDEACK ddeack; + + with (ddeack) { + reserved = 10; + assert (_bf == 0x0A); + fBusy = true; + assert (_bf == 0x4A); + fAck = true; + assert (_bf == 0xCA); + + assert (reserved == 10); + assert (fBusy == true); + assert (fAck == true); + + reserved = 43; + assert (_bf == 0xEB); + fBusy = false; + assert (_bf == 0xAB); + fAck = false; + assert (_bf == 0x2B); + + assert (reserved == 43); + assert (fBusy == false); + assert (fAck == false); + } + + DDEPOKE ddepoke; + + with (ddepoke) { + unused = 3456; + assert (_bf == 0x0D80); + fRelease = true; + assert (_bf == 0x2D80); + fReserved = 2; + assert (_bf == 0xAD80); + + assert (unused == 3456); + assert (fRelease == true); + assert (fReserved == 2); + + unused = 2109; + assert (_bf == 0xa83d); + fRelease = false; + assert (_bf == 0x883d); + fReserved = 1; + assert (_bf == 0x483d); + + assert (unused == 2109); + assert (fRelease == false); + assert (fReserved == 1); + } + } +} Index: src/win32/ddeml.d ================================================================== --- src/win32/ddeml.d +++ src/win32/ddeml.d @@ -1,434 +1,374 @@ -module win32.ddeml; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino - -import win32.windef; - -// #ifndef _INC_DDEMLH -// #define _INC_DDEMLH - -// #ifdef __cplusplus -// extern "C" { -// #endif /* __cplusplus */ - -alias void* HCONVLIST; -alias void* HCONV; -alias void* HSZ; -alias void* HDDEDATA; -// #define EXPENTRY CALLBACK - -struct tagHSZPAIR { - HSZ hszSvc; - HSZ hszTopic; -} -alias tagHSZPAIR HSZPAIR; - -alias HSZPAIR* PHSZPAIR; - -struct tagCONVCONTEXT { - UINT cb; - UINT wFlags; - UINT wCountryID; - int iCodePage; - DWORD dwLangID; - DWORD dwSecurity; - SECURITY_QUALITY_OF_SERVICE qos; -} -alias tagCONVCONTEXT CONVCONTEXT; - -alias CONVCONTEXT* PCONVCONTEXT; - -struct tagCONVINFO { - DWORD cb; - DWORD_PTR hUser; - HCONV hConvPartner; - HSZ hszSvcPartner; - HSZ hszServiceReq; - HSZ hszTopic; - HSZ hszItem; - UINT wFmt; - UINT wType; - UINT wStatus; - UINT wConvst; - UINT wLastError; - HCONVLIST hConvList; - CONVCONTEXT ConvCtxt; - HWND hwnd; - HWND hwndPartner; -} -alias tagCONVINFO CONVINFO; - -alias CONVINFO* PCONVINFO; - -enum : uint { XST_NULL = 0 } -enum : uint { XST_INCOMPLETE = 1 } -enum : uint { XST_CONNECTED = 2 } -enum : uint { XST_INIT1 = 3 } -enum : uint { XST_INIT2 = 4 } -enum : uint { XST_REQSENT = 5 } -enum : uint { XST_DATARCVD = 6 } -enum : uint { XST_POKESENT = 7 } -enum : uint { XST_POKEACKRCVD = 8 } -enum : uint { XST_EXECSENT = 9 } -enum : uint { XST_EXECACKRCVD = 10 } -enum : uint { XST_ADVSENT = 11 } -enum : uint { XST_UNADVSENT = 12 } -enum : uint { XST_ADVACKRCVD = 13 } -enum : uint { XST_UNADVACKRCVD = 14 } -enum : uint { XST_ADVDATASENT = 15 } -enum : uint { XST_ADVDATAACKRCVD = 16 } - -enum : uint { CADV_LATEACK = 0xFFFF } - -enum : uint { ST_CONNECTED = 0x0001 } -enum : uint { ST_ADVISE = 0x0002 } -enum : uint { ST_ISLOCAL = 0x0004 } -enum : uint { ST_BLOCKED = 0x0008 } -enum : uint { ST_CLIENT = 0x0010 } -enum : uint { ST_TERMINATED = 0x0020 } -enum : uint { ST_INLIST = 0x0040 } -enum : uint { ST_BLOCKNEXT = 0x0080 } -enum : uint { ST_ISSELF = 0x0100 } - -enum : uint { DDE_FACK = 0x8000 } -enum : uint { DDE_FBUSY = 0x4000 } -enum : uint { DDE_FDEFERUPD = 0x4000 } -enum : uint { DDE_FACKREQ = 0x8000 } -enum : uint { DDE_FRELEASE = 0x2000 } -enum : uint { DDE_FREQUESTED = 0x1000 } -enum : uint { DDE_FAPPSTATUS = 0x00ff } -enum : uint { DDE_FNOTPROCESSED = 0x0000 } - -const uint DDE_FACKRESERVED = ~(DDE_FACK | DDE_FBUSY | DDE_FAPPSTATUS); -const uint DDE_FADVRESERVED = ~(DDE_FACKREQ | DDE_FDEFERUPD); -const uint DDE_FDATRESERVED = ~(DDE_FACKREQ | DDE_FRELEASE | DDE_FREQUESTED); -const uint DDE_FPOKRESERVED = ~(DDE_FRELEASE); - -enum : uint { MSGF_DDEMGR = 0x8001 } - -enum : uint { CP_WINANSI = 1004 } -enum : uint { CP_WINUNICODE = 1200 } -// #ifdef UNICODE -alias CP_WINUNICODE CP_WINNEUTRAL; -// #else // !UNICODE -// #... -// #endif // !UNICODE - -enum : uint { XTYPF_NOBLOCK = 0x0002 } -enum : uint { XTYPF_NODATA = 0x0004 } -enum : uint { XTYPF_ACKREQ = 0x0008 } - -enum : uint { XCLASS_MASK = 0xFC00 } -enum : uint { XCLASS_BOOL = 0x1000 } -enum : uint { XCLASS_DATA = 0x2000 } -enum : uint { XCLASS_FLAGS = 0x4000 } -enum : uint { XCLASS_NOTIFICATION = 0x8000 } - -const uint XTYP_ERROR = 0x0000 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK ; -const uint XTYP_ADVDATA = 0x0010 | XCLASS_FLAGS ; -const uint XTYP_ADVREQ = 0x0020 | XCLASS_DATA | XTYPF_NOBLOCK ; -const uint XTYP_ADVSTART = 0x0030 | XCLASS_BOOL ; -const uint XTYP_ADVSTOP = 0x0040 | XCLASS_NOTIFICATION; -const uint XTYP_EXECUTE = 0x0050 | XCLASS_FLAGS ; -const uint XTYP_CONNECT = 0x0060 | XCLASS_BOOL | XTYPF_NOBLOCK; -const uint XTYP_CONNECT_CONFIRM = 0x0070 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK; -const uint XTYP_XACT_COMPLETE = 0x0080 | XCLASS_NOTIFICATION ; -const uint XTYP_POKE = 0x0090 | XCLASS_FLAGS ; -const uint XTYP_REGISTER = 0x00A0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK; -const uint XTYP_REQUEST = 0x00B0 | XCLASS_DATA ; -const uint XTYP_DISCONNECT = 0x00C0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK; -const uint XTYP_UNREGISTER = 0x00D0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK; -const uint XTYP_WILDCONNECT = 0x00E0 | XCLASS_DATA | XTYPF_NOBLOCK; - -enum : uint { XTYP_MASK = 0x00F0 } -enum : uint { XTYP_SHIFT = 4 } - -enum : uint { TIMEOUT_ASYNC = 0xFFFFFFFF } - -enum : uint { QID_SYNC = 0xFFFFFFFF } - -// #ifdef UNICODE -const wchar[] SZDDESYS_TOPIC = "System"; -const wchar[] SZDDESYS_ITEM_TOPICS = "Topics"; -const wchar[] SZDDESYS_ITEM_SYSITEMS = "SysItems"; -const wchar[] SZDDESYS_ITEM_RTNMSG = "ReturnMessage"; -const wchar[] SZDDESYS_ITEM_STATUS = "Status"; -const wchar[] SZDDESYS_ITEM_FORMATS = "Formats"; -const wchar[] SZDDESYS_ITEM_HELP = "Help"; -const wchar[] SZDDE_ITEM_ITEMLIST = "TopicItemList"; -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -// typedef HDDEDATA CALLBACK FNCALLBACK(UINT wType, UINT wFmt, HCONV hConv, HSZ hsz1, HSZ hsz2, HDDEDATA hData, ULONG_PTR dwData1, ULONG_PTR dwData2); -extern(Windows) alias HDDEDATA function(UINT wType, UINT wFmt, HCONV hConv, HSZ hsz1, HSZ hsz2, HDDEDATA hData, ULONG_PTR dwData1, ULONG_PTR dwData2) PFNCALLBACK; - -const HDDEDATA CBR_BLOCK = cast(HDDEDATA)-1; - -extern(Windows) export UINT DdeInitializeA( LPDWORD pidInst, PFNCALLBACK pfnCallback, - DWORD afCmd, DWORD ulRes); -extern(Windows) export UINT DdeInitializeW( LPDWORD pidInst, PFNCALLBACK pfnCallback, - DWORD afCmd, DWORD ulRes); -// #ifdef UNICODE -alias DdeInitializeW DdeInitialize; -// #else -// #... -// #endif // !UNICODE - -enum : uint { CBF_FAIL_SELFCONNECTIONS = 0x00001000 } -enum : uint { CBF_FAIL_CONNECTIONS = 0x00002000 } -enum : uint { CBF_FAIL_ADVISES = 0x00004000 } -enum : uint { CBF_FAIL_EXECUTES = 0x00008000 } -enum : uint { CBF_FAIL_POKES = 0x00010000 } -enum : uint { CBF_FAIL_REQUESTS = 0x00020000 } -enum : uint { CBF_FAIL_ALLSVRXACTIONS = 0x0003f000 } - -enum : uint { CBF_SKIP_CONNECT_CONFIRMS = 0x00040000 } -enum : uint { CBF_SKIP_REGISTRATIONS = 0x00080000 } -enum : uint { CBF_SKIP_UNREGISTRATIONS = 0x00100000 } -enum : uint { CBF_SKIP_DISCONNECTS = 0x00200000 } -enum : uint { CBF_SKIP_ALLNOTIFICATIONS = 0x003c0000 } - -enum : uint { APPCMD_CLIENTONLY = 0x00000010 } -enum : uint { APPCMD_FILTERINITS = 0x00000020 } -enum : uint { APPCMD_MASK = 0x00000FF0 } - -enum : uint { APPCLASS_STANDARD = 0x00000000 } -enum : uint { APPCLASS_MASK = 0x0000000F } - -extern(Windows) export BOOL DdeUninitialize( DWORD idInst); - -extern(Windows) export HCONVLIST DdeConnectList( DWORD idInst, HSZ hszService, HSZ hszTopic, - HCONVLIST hConvList, PCONVCONTEXT pCC); -extern(Windows) export HCONV DdeQueryNextServer( HCONVLIST hConvList, HCONV hConvPrev); -extern(Windows) export BOOL DdeDisconnectList( HCONVLIST hConvList); - -extern(Windows) export HCONV DdeConnect( DWORD idInst, HSZ hszService, HSZ hszTopic, - PCONVCONTEXT pCC); -extern(Windows) export BOOL DdeDisconnect( HCONV hConv); -extern(Windows) export HCONV DdeReconnect( HCONV hConv); -extern(Windows) export UINT DdeQueryConvInfo( HCONV hConv, DWORD idTransaction, PCONVINFO pConvInfo); -extern(Windows) export BOOL DdeSetUserHandle( HCONV hConv, DWORD id, DWORD_PTR hUser); -extern(Windows) export BOOL DdeAbandonTransaction( DWORD idInst, HCONV hConv, DWORD idTransaction); - -extern(Windows) export BOOL DdePostAdvise( DWORD idInst, HSZ hszTopic, HSZ hszItem); -extern(Windows) export BOOL DdeEnableCallback( DWORD idInst, HCONV hConv, UINT wCmd); -extern(Windows) export BOOL DdeImpersonateClient( HCONV hConv); - -enum : uint { EC_ENABLEALL = 0 } -alias ST_BLOCKNEXT EC_ENABLEONE; -alias ST_BLOCKED EC_DISABLE; -enum : uint { EC_QUERYWAITING = 2 } - -extern(Windows) export HDDEDATA DdeNameService( DWORD idInst, HSZ hsz1, HSZ hsz2, UINT afCmd); - -enum : uint { DNS_REGISTER = 0x0001 } -enum : uint { DNS_UNREGISTER = 0x0002 } -enum : uint { DNS_FILTERON = 0x0004 } -enum : uint { DNS_FILTEROFF = 0x0008 } - -extern(Windows) export HDDEDATA DdeClientTransaction( LPBYTE pData, DWORD cbData, - HCONV hConv, HSZ hszItem, UINT wFmt, UINT wType, - DWORD dwTimeout, LPDWORD pdwResult); - -extern(Windows) export HDDEDATA DdeCreateDataHandle( DWORD idInst, LPBYTE pSrc, DWORD cb, - DWORD cbOff, HSZ hszItem, UINT wFmt, UINT afCmd); -extern(Windows) export HDDEDATA DdeAddData( HDDEDATA hData, LPBYTE pSrc, DWORD cb, DWORD cbOff); -extern(Windows) export DWORD DdeGetData( HDDEDATA hData, LPBYTE pDst, DWORD cbMax, DWORD cbOff); -extern(Windows) export LPBYTE DdeAccessData( HDDEDATA hData, LPDWORD pcbDataSize); -extern(Windows) export BOOL DdeUnaccessData( HDDEDATA hData); -extern(Windows) export BOOL DdeFreeDataHandle( HDDEDATA hData); - -enum : uint { HDATA_APPOWNED = 0x0001 } - -extern(Windows) export UINT DdeGetLastError( DWORD idInst); - -enum : uint { DMLERR_NO_ERROR = 0 } - -enum : uint { DMLERR_FIRST = 0x4000 } - -enum : uint { DMLERR_ADVACKTIMEOUT = 0x4000 } -enum : uint { DMLERR_BUSY = 0x4001 } -enum : uint { DMLERR_DATAACKTIMEOUT = 0x4002 } -enum : uint { DMLERR_DLL_NOT_INITIALIZED = 0x4003 } -enum : uint { DMLERR_DLL_USAGE = 0x4004 } -enum : uint { DMLERR_EXECACKTIMEOUT = 0x4005 } -enum : uint { DMLERR_INVALIDPARAMETER = 0x4006 } -enum : uint { DMLERR_LOW_MEMORY = 0x4007 } -enum : uint { DMLERR_MEMORY_ERROR = 0x4008 } -enum : uint { DMLERR_NOTPROCESSED = 0x4009 } -enum : uint { DMLERR_NO_CONV_ESTABLISHED = 0x400a } -enum : uint { DMLERR_POKEACKTIMEOUT = 0x400b } -enum : uint { DMLERR_POSTMSG_FAILED = 0x400c } -enum : uint { DMLERR_REENTRANCY = 0x400d } -enum : uint { DMLERR_SERVER_DIED = 0x400e } -enum : uint { DMLERR_SYS_ERROR = 0x400f } -enum : uint { DMLERR_UNADVACKTIMEOUT = 0x4010 } -enum : uint { DMLERR_UNFOUND_QUEUE_ID = 0x4011 } - -enum : uint { DMLERR_LAST = 0x4011 } - -extern(Windows) export HSZ DdeCreateStringHandleA( DWORD idInst, LPCSTR psz, int iCodePage); -extern(Windows) export HSZ DdeCreateStringHandleW( DWORD idInst, LPCWSTR psz, int iCodePage); -// #ifdef UNICODE -alias DdeCreateStringHandleW DdeCreateStringHandle; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export DWORD DdeQueryStringA( DWORD idInst, HSZ hsz, LPSTR psz, DWORD cchMax, int iCodePage); -extern(Windows) export DWORD DdeQueryStringW( DWORD idInst, HSZ hsz, LPWSTR psz, DWORD cchMax, int iCodePage); -// #ifdef UNICODE -alias DdeQueryStringW DdeQueryString; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL DdeFreeStringHandle( DWORD idInst, HSZ hsz); -extern(Windows) export BOOL DdeKeepStringHandle( DWORD idInst, HSZ hsz); -extern(Windows) export int DdeCmpStringHandles( HSZ hsz1, HSZ hsz2); - -// #ifndef NODDEMLSPY - -struct tagDDEML_MSG_HOOK_DATA { - UINT_PTR uiLo; - UINT_PTR uiHi; - DWORD cbData; - DWORD Data[8]; -} -alias tagDDEML_MSG_HOOK_DATA DDEML_MSG_HOOK_DATA; -alias tagDDEML_MSG_HOOK_DATA* PDDEML_MSG_HOOK_DATA; - -struct tagMONMSGSTRUCT { - UINT cb; - HWND hwndTo; - DWORD dwTime; - HANDLE hTask; - UINT wMsg; - WPARAM wParam; - LPARAM lParam; - DDEML_MSG_HOOK_DATA dmhd; -} -alias tagMONMSGSTRUCT MONMSGSTRUCT; -alias tagMONMSGSTRUCT* PMONMSGSTRUCT; - -struct tagMONCBSTRUCT { - UINT cb; - DWORD dwTime; - HANDLE hTask; - DWORD dwRet; - UINT wType; - UINT wFmt; - HCONV hConv; - HSZ hsz1; - HSZ hsz2; - HDDEDATA hData; - ULONG_PTR dwData1; - ULONG_PTR dwData2; - CONVCONTEXT cc; - DWORD cbData; - DWORD Data[8]; -} -alias tagMONCBSTRUCT MONCBSTRUCT; -alias tagMONCBSTRUCT* PMONCBSTRUCT; - -struct tagMONHSZSTRUCTA { - UINT cb; - BOOL fsAction; - DWORD dwTime; - HSZ hsz; - HANDLE hTask; - CHAR str[1]; -} -alias tagMONHSZSTRUCTA MONHSZSTRUCTA; -alias tagMONHSZSTRUCTA* PMONHSZSTRUCTA; - -struct tagMONHSZSTRUCTW { - UINT cb; - BOOL fsAction; - DWORD dwTime; - HSZ hsz; - HANDLE hTask; - WCHAR str[1]; -} -alias tagMONHSZSTRUCTW MONHSZSTRUCTW; -alias tagMONHSZSTRUCTW* PMONHSZSTRUCTW; - -// #ifdef UNICODE -alias MONHSZSTRUCTW MONHSZSTRUCT; -alias PMONHSZSTRUCTW PMONHSZSTRUCT; -// #else -// ... -// #endif // UNICODE - -enum : uint { MH_CREATE = 1 } -enum : uint { MH_KEEP = 2 } -enum : uint { MH_DELETE = 3 } -enum : uint { MH_CLEANUP = 4 } - -struct tagMONERRSTRUCT { - UINT cb; - UINT wLastError; - DWORD dwTime; - HANDLE hTask; -} -alias tagMONERRSTRUCT MONERRSTRUCT; -alias tagMONERRSTRUCT* PMONERRSTRUCT; - -struct tagMONLINKSTRUCT { - UINT cb; - DWORD dwTime; - HANDLE hTask; - BOOL fEstablished; - BOOL fNoData; - HSZ hszSvc; - HSZ hszTopic; - HSZ hszItem; - UINT wFmt; - BOOL fServer; - HCONV hConvServer; - HCONV hConvClient; -} -alias tagMONLINKSTRUCT MONLINKSTRUCT; -alias tagMONLINKSTRUCT* PMONLINKSTRUCT; - -struct tagMONCONVSTRUCT { - UINT cb; - BOOL fConnect; - DWORD dwTime; - HANDLE hTask; - HSZ hszSvc; - HSZ hszTopic; - HCONV hConvClient; - HCONV hConvServer; -} -alias tagMONCONVSTRUCT MONCONVSTRUCT; -alias tagMONCONVSTRUCT* PMONCONVSTRUCT; - -enum : uint { MAX_MONITORS = 4 } -enum : uint { APPCLASS_MONITOR = 0x00000001 } -const uint XTYP_MONITOR = 0x00F0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK; - -enum : uint { MF_HSZ_INFO = 0x01000000 } -enum : uint { MF_SENDMSGS = 0x02000000 } -enum : uint { MF_POSTMSGS = 0x04000000 } -enum : uint { MF_CALLBACKS = 0x08000000 } -enum : uint { MF_ERRORS = 0x10000000 } -enum : uint { MF_LINKS = 0x20000000 } -enum : uint { MF_CONV = 0x40000000 } - -enum : uint { MF_MASK = 0xFF000000 } -// #endif /* NODDEMLSPY */ - -// #ifdef __cplusplus -// } -// #endif /* __cplusplus */ - -// #endif /* _INC_DDEMLH */ - +/***********************************************************************\ +* ddeml.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.ddeml; +pragma(lib, "user32.lib"); + +private import win32.basetsd, win32.windef, win32.winnt; + +enum : int { + CP_WINANSI = 1004, + CP_WINUNICODE = 1200 +} + +enum : UINT { + XTYPF_NOBLOCK = 2, + XTYPF_NODATA = 4, + XTYPF_ACKREQ = 8 +} + +enum : UINT { + XCLASS_MASK = 0xFC00, + XCLASS_BOOL = 0x1000, + XCLASS_DATA = 0x2000, + XCLASS_FLAGS = 0x4000, + XCLASS_NOTIFICATION = 0x8000 +} + +enum : UINT { + XST_NULL, + XST_INCOMPLETE, + XST_CONNECTED, + XST_INIT1, + XST_INIT2, + XST_REQSENT, + XST_DATARCVD, + XST_POKESENT, + XST_POKEACKRCVD, + XST_EXECSENT, + XST_EXECACKRCVD, + XST_ADVSENT, + XST_UNADVSENT, + XST_ADVACKRCVD, + XST_UNADVACKRCVD, + XST_ADVDATASENT, + XST_ADVDATAACKRCVD // = 16 +} + +enum : UINT { + XTYP_ERROR = XCLASS_NOTIFICATION | XTYPF_NOBLOCK, + XTYP_ADVDATA = 0x0010 | XCLASS_FLAGS, + XTYP_ADVREQ = 0x0020 | XCLASS_DATA | XTYPF_NOBLOCK, + XTYP_ADVSTART = 0x0030 | XCLASS_BOOL, + XTYP_ADVSTOP = 0x0040 | XCLASS_NOTIFICATION, + XTYP_EXECUTE = 0x0050 | XCLASS_FLAGS, + XTYP_CONNECT = 0x0060 | XCLASS_BOOL | XTYPF_NOBLOCK, + XTYP_CONNECT_CONFIRM = 0x0070 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK, + XTYP_XACT_COMPLETE = 0x0080 | XCLASS_NOTIFICATION, + XTYP_POKE = 0x0090 | XCLASS_FLAGS, + XTYP_REGISTER = 0x00A0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK, + XTYP_REQUEST = 0x00B0 | XCLASS_DATA, + XTYP_DISCONNECT = 0x00C0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK, + XTYP_UNREGISTER = 0x00D0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK, + XTYP_WILDCONNECT = 0x00E0 | XCLASS_DATA | XTYPF_NOBLOCK, + XTYP_MONITOR = 0X00F0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK, + XTYP_MASK = 0x00F0, + XTYP_SHIFT = 4 +} + +/+ +#define TIMEOUT_ASYNC 0xFFFFFFFF +#define QID_SYNC 0xFFFFFFFF ++/ + +enum : UINT { + ST_CONNECTED = 1, + ST_ADVISE = 2, + ST_ISLOCAL = 4, + ST_BLOCKED = 8, + ST_CLIENT = 16, + ST_TERMINATED = 32, + ST_INLIST = 64, + ST_BLOCKNEXT = 128, + ST_ISSELF = 256 +} + +/+ +#define CADV_LATEACK 0xFFFF ++/ + +enum : UINT { + DMLERR_NO_ERROR = 0, + DMLERR_FIRST = 0x4000, + DMLERR_ADVACKTIMEOUT = DMLERR_FIRST, + DMLERR_BUSY, + DMLERR_DATAACKTIMEOUT, + DMLERR_DLL_NOT_INITIALIZED, + DMLERR_DLL_USAGE, + DMLERR_EXECACKTIMEOUT, + DMLERR_INVALIDPARAMETER, + DMLERR_LOW_MEMORY, + DMLERR_MEMORY_ERROR, + DMLERR_NOTPROCESSED, + DMLERR_NO_CONV_ESTABLISHED, + DMLERR_POKEACKTIMEOUT, + DMLERR_POSTMSG_FAILED, + DMLERR_REENTRANCY, + DMLERR_SERVER_DIED, + DMLERR_SYS_ERROR, + DMLERR_UNADVACKTIMEOUT, + DMLERR_UNFOUND_QUEUE_ID, // = 0x4011 + DMLERR_LAST = DMLERR_UNFOUND_QUEUE_ID +} + +/+ +#define DDE_FACK 0x8000 +#define DDE_FBUSY 0x4000 +#define DDE_FDEFERUPD 0x4000 +#define DDE_FACKREQ 0x8000 +#define DDE_FRELEASE 0x2000 +#define DDE_FREQUESTED 0x1000 +#define DDE_FAPPSTATUS 0x00ff +#define DDE_FNOTPROCESSED 0 +#define DDE_FACKRESERVED (~(DDE_FACK|DDE_FBUSY|DDE_FAPPSTATUS)) +#define DDE_FADVRESERVED (~(DDE_FACKREQ|DDE_FDEFERUPD)) +#define DDE_FDATRESERVED (~(DDE_FACKREQ|DDE_FRELEASE|DDE_FREQUESTED)) +#define DDE_FPOKRESERVED (~DDE_FRELEASE) +#define MSGF_DDEMGR 0x8001 +#define CBR_BLOCK ((HDDEDATA)0xffffffff) ++/ + +const DWORD + APPCLASS_STANDARD = 0, + APPCLASS_MONITOR = 0x00000001, + APPCLASS_MASK = 0x0000000F, + APPCMD_CLIENTONLY = 0x00000010, + APPCMD_FILTERINITS = 0x00000020, + APPCMD_MASK = 0x00000FF0, + CBF_FAIL_SELFCONNECTIONS = 0x00001000, + CBF_FAIL_CONNECTIONS = 0x00002000, + CBF_FAIL_ADVISES = 0x00004000, + CBF_FAIL_EXECUTES = 0x00008000, + CBF_FAIL_POKES = 0x00010000, + CBF_FAIL_REQUESTS = 0x00020000, + CBF_FAIL_ALLSVRXACTIONS = 0x0003f000, + CBF_SKIP_CONNECT_CONFIRMS = 0x00040000, + CBF_SKIP_REGISTRATIONS = 0x00080000, + CBF_SKIP_UNREGISTRATIONS = 0x00100000, + CBF_SKIP_DISCONNECTS = 0x00200000, + CBF_SKIP_ALLNOTIFICATIONS = 0x003c0000, + MF_HSZ_INFO = 0x01000000, + MF_SENDMSGS = 0x02000000, + MF_POSTMSGS = 0x04000000, + MF_CALLBACKS = 0x08000000, + MF_ERRORS = 0x10000000, + MF_LINKS = 0x20000000, + MF_CONV = 0x40000000, + MF_MASK = 0xFF000000; + +enum : UINT { + EC_ENABLEALL = 0, + EC_ENABLEONE = ST_BLOCKNEXT, + EC_DISABLE = ST_BLOCKED, + EC_QUERYWAITING = 2 +} + +enum : UINT { + DNS_REGISTER = 1, + DNS_UNREGISTER = 2, + DNS_FILTERON = 4, + DNS_FILTEROFF = 8 +} + +/+ +#define HDATA_APPOWNED 1 +#define MAX_MONITORS 4 ++/ + +enum : int { + MH_CREATE = 1, + MH_KEEP = 2, + MH_DELETE = 3, + MH_CLEANUP = 4 +} + +alias HANDLE HCONVLIST, HCONV, HSZ, HDDEDATA; + +extern (Windows) alias HDDEDATA + function(UINT, UINT, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD) PFNCALLBACK; + +struct HSZPAIR { + HSZ hszSvc; + HSZ hszTopic; +} +alias HSZPAIR* PHSZPAIR; + +struct CONVCONTEXT { + UINT cb = CONVCONTEXT.sizeof; + UINT wFlags; + UINT wCountryID; + int iCodePage; + DWORD dwLangID; + DWORD dwSecurity; + SECURITY_QUALITY_OF_SERVICE qos; +} +alias CONVCONTEXT* PCONVCONTEXT; + +struct CONVINFO { + DWORD cb = CONVINFO.sizeof; + DWORD hUser; + HCONV hConvPartner; + HSZ hszSvcPartner; + HSZ hszServiceReq; + HSZ hszTopic; + HSZ hszItem; + UINT wFmt; + UINT wType; + UINT wStatus; + UINT wConvst; + UINT wLastError; + HCONVLIST hConvList; + CONVCONTEXT ConvCtxt; + HWND hwnd; + HWND hwndPartner; +} +alias CONVINFO* PCONVINFO; + +struct DDEML_MSG_HOOK_DATA { + UINT uiLo; + UINT uiHi; + DWORD cbData; + DWORD[8] Data; +} + +struct MONHSZSTRUCT { + UINT cb = MONHSZSTRUCT.sizeof; + int fsAction; + DWORD dwTime; + HSZ hsz; + HANDLE hTask; + TCHAR[1] _str; + + TCHAR* str() { return _str.ptr; } +} +alias MONHSZSTRUCT* PMONHSZSTRUCT; + +struct MONLINKSTRUCT { + UINT cb = MONLINKSTRUCT.sizeof; + DWORD dwTime; + HANDLE hTask; + BOOL fEstablished; + BOOL fNoData; + HSZ hszSvc; + HSZ hszTopic; + HSZ hszItem; + UINT wFmt; + BOOL fServer; + HCONV hConvServer; + HCONV hConvClient; +} +alias MONLINKSTRUCT* PMONLINKSTRUCT; + +struct MONCONVSTRUCT { + UINT cb = MONCONVSTRUCT.sizeof; + BOOL fConnect; + DWORD dwTime; + HANDLE hTask; + HSZ hszSvc; + HSZ hszTopic; + HCONV hConvClient; + HCONV hConvServer; +} +alias MONCONVSTRUCT* PMONCONVSTRUCT; + +struct MONCBSTRUCT { + UINT cb = MONCBSTRUCT.sizeof; + DWORD dwTime; + HANDLE hTask; + DWORD dwRet; + UINT wType; + UINT wFmt; + HCONV hConv; + HSZ hsz1; + HSZ hsz2; + HDDEDATA hData; + ULONG_PTR dwData1; + ULONG_PTR dwData2; + CONVCONTEXT cc; + DWORD cbData; + DWORD[8] Data; +} +alias MONCBSTRUCT* PMONCBSTRUCT; + +struct MONERRSTRUCT { + UINT cb = MONERRSTRUCT.sizeof; + UINT wLastError; + DWORD dwTime; + HANDLE hTask; +} +alias MONERRSTRUCT* PMONERRSTRUCT; + +struct MONMSGSTRUCT { + UINT cb = MONMSGSTRUCT.sizeof; + HWND hwndTo; + DWORD dwTime; + HANDLE hTask; + UINT wMsg; + WPARAM wParam; + LPARAM lParam; + DDEML_MSG_HOOK_DATA dmhd; +} +alias MONMSGSTRUCT* PMONMSGSTRUCT; + +extern (Windows) { + BOOL DdeAbandonTransaction(DWORD, HCONV, DWORD); + PBYTE DdeAccessData(HDDEDATA, PDWORD); + HDDEDATA DdeAddData(HDDEDATA, PBYTE, DWORD, DWORD); + HDDEDATA DdeClientTransaction(PBYTE, DWORD, HCONV, HSZ, UINT, UINT, + DWORD, PDWORD); + int DdeCmpStringHandles(HSZ, HSZ); + HCONV DdeConnect(DWORD, HSZ, HSZ, PCONVCONTEXT); + HCONVLIST DdeConnectList(DWORD, HSZ, HSZ, HCONVLIST, PCONVCONTEXT); + HDDEDATA DdeCreateDataHandle(DWORD, PBYTE, DWORD, DWORD, HSZ, UINT, + UINT); + HSZ DdeCreateStringHandleA(DWORD, LPSTR, int); + HSZ DdeCreateStringHandleW(DWORD, LPWSTR, int); + BOOL DdeDisconnect(HCONV); + BOOL DdeDisconnectList(HCONVLIST); + BOOL DdeEnableCallback(DWORD, HCONV, UINT); + BOOL DdeFreeDataHandle(HDDEDATA); + BOOL DdeFreeStringHandle(DWORD, HSZ); + DWORD DdeGetData(HDDEDATA, PBYTE, DWORD, DWORD); + UINT DdeGetLastError(DWORD); + BOOL DdeImpersonateClient(HCONV); + UINT DdeInitializeA(PDWORD, PFNCALLBACK, DWORD, DWORD); + UINT DdeInitializeW(PDWORD, PFNCALLBACK, DWORD, DWORD); + BOOL DdeKeepStringHandle(DWORD, HSZ); + HDDEDATA DdeNameService(DWORD, HSZ, HSZ, UINT); + BOOL DdePostAdvise(DWORD, HSZ, HSZ); + UINT DdeQueryConvInfo(HCONV, DWORD, PCONVINFO); + HCONV DdeQueryNextServer(HCONVLIST, HCONV); + DWORD DdeQueryStringA(DWORD, HSZ, LPSTR, DWORD, int); + DWORD DdeQueryStringW(DWORD, HSZ, LPWSTR, DWORD, int); + HCONV DdeReconnect(HCONV); + BOOL DdeSetUserHandle(HCONV, DWORD, DWORD); + BOOL DdeUnaccessData(HDDEDATA); + BOOL DdeUninitialize(DWORD); +} + +const TCHAR[] + SZDDESYS_TOPIC = "System", + SZDDESYS_ITEM_TOPICS = "Topics", + SZDDESYS_ITEM_SYSITEMS = "SysItems", + SZDDESYS_ITEM_RTNMSG = "ReturnMessage", + SZDDESYS_ITEM_STATUS = "Status", + SZDDESYS_ITEM_FORMATS = "Formats", + SZDDESYS_ITEM_HELP = "Help", + SZDDE_ITEM_ITEMLIST = "TopicItemList"; + +version (Unicode) { + alias DdeCreateStringHandleW DdeCreateStringHandle; + alias DdeInitializeW DdeInitialize; + alias DdeQueryStringW DdeQueryString; +} else { + alias DdeCreateStringHandleA DdeCreateStringHandle; + alias DdeInitializeA DdeInitialize; + alias DdeQueryStringA DdeQueryString; +} ADDED src/win32/dhcpcsdk.d Index: src/win32/dhcpcsdk.d ================================================================== --- src/win32/dhcpcsdk.d +++ src/win32/dhcpcsdk.d @@ -0,0 +1,58 @@ +/***********************************************************************\ +* dhcpcsdk.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.dhcpcsdk; + +private import win32.w32api, win32.windef; + +static assert (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500, +"win32.dhcpcsdk is available only if version WindowsXP, Windows2003 +or WindowsVista is set, or both Windows2000 and WindowsNTonly are set"); + +//#if (_WIN32_WINNT >= 0x0500) + +// FIXME: check type +const DHCPCAPI_REGISTER_HANDLE_EVENT = 1; +const DHCPCAPI_REQUEST_PERSISTENT = 1; +const DHCPCAPI_REQUEST_SYNCHRONOUS = 2; + +struct DHCPCAPI_CLASSID { + ULONG Flags; + LPBYTE Data; + ULONG nBytesData; +} +alias DHCPCAPI_CLASSID* PDHCPCAPI_CLASSID, LPDHCPCAPI_CLASSID; + +struct DHCPAPI_PARAMS { + ULONG Flags; + ULONG OptionId; + BOOL IsVendor; + LPBYTE Data; + DWORD nBytesData; +} +alias DHCPAPI_PARAMS* PDHCPAPI_PARAMS, LPDHCPAPI_PARAMS; + +struct DHCPCAPI_PARAMS_ARRAY { + ULONG nParams; + LPDHCPAPI_PARAMS Params; +} +alias DHCPCAPI_PARAMS_ARRAY* PDHCPCAPI_PARAMS_ARRAY, LPDHCPCAPI_PARAMS_ARRAY; + +extern (Windows) { + void DhcpCApiCleanup(); + DWORD DhcpCApiInitialize(LPDWORD); + DWORD DhcpDeRegisterParamChange(DWORD, LPVOID, LPVOID); + DWORD DhcpRegisterParamChange(DWORD, LPVOID, PWSTR, LPDHCPCAPI_CLASSID, + DHCPCAPI_PARAMS_ARRAY, LPVOID); + DWORD DhcpRemoveDNSRegistrations(); + DWORD DhcpUndoRequestParams(DWORD, LPVOID, LPWSTR, LPWSTR); +} + +//#endif // (_WIN32_WINNT >= 0x0500) Index: src/win32/dlgs.d ================================================================== --- src/win32/dlgs.d +++ src/win32/dlgs.d @@ -1,216 +1,191 @@ -module win32.dlgs; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino - -import win32.windef; - -// #ifndef _DLGSH_INCLUDED_ -// #define _DLGSH_INCLUDED_ - -enum : uint { ctlFirst = 0x0400 } -enum : uint { ctlLast = 0x04ff } - -enum : uint { psh1 = 0x0400 } -enum : uint { psh2 = 0x0401 } -enum : uint { psh3 = 0x0402 } -enum : uint { psh4 = 0x0403 } -enum : uint { psh5 = 0x0404 } -enum : uint { psh6 = 0x0405 } -enum : uint { psh7 = 0x0406 } -enum : uint { psh8 = 0x0407 } -enum : uint { psh9 = 0x0408 } -enum : uint { psh10 = 0x0409 } -enum : uint { psh11 = 0x040a } -enum : uint { psh12 = 0x040b } -enum : uint { psh13 = 0x040c } -enum : uint { psh14 = 0x040d } -enum : uint { psh15 = 0x040e } -alias psh15 pshHelp; -enum : uint { psh16 = 0x040f } - -enum : uint { chx1 = 0x0410 } -enum : uint { chx2 = 0x0411 } -enum : uint { chx3 = 0x0412 } -enum : uint { chx4 = 0x0413 } -enum : uint { chx5 = 0x0414 } -enum : uint { chx6 = 0x0415 } -enum : uint { chx7 = 0x0416 } -enum : uint { chx8 = 0x0417 } -enum : uint { chx9 = 0x0418 } -enum : uint { chx10 = 0x0419 } -enum : uint { chx11 = 0x041a } -enum : uint { chx12 = 0x041b } -enum : uint { chx13 = 0x041c } -enum : uint { chx14 = 0x041d } -enum : uint { chx15 = 0x041e } -enum : uint { chx16 = 0x041f } - -enum : uint { rad1 = 0x0420 } -enum : uint { rad2 = 0x0421 } -enum : uint { rad3 = 0x0422 } -enum : uint { rad4 = 0x0423 } -enum : uint { rad5 = 0x0424 } -enum : uint { rad6 = 0x0425 } -enum : uint { rad7 = 0x0426 } -enum : uint { rad8 = 0x0427 } -enum : uint { rad9 = 0x0428 } -enum : uint { rad10 = 0x0429 } -enum : uint { rad11 = 0x042a } -enum : uint { rad12 = 0x042b } -enum : uint { rad13 = 0x042c } -enum : uint { rad14 = 0x042d } -enum : uint { rad15 = 0x042e } -enum : uint { rad16 = 0x042f } - -enum : uint { grp1 = 0x0430 } -enum : uint { grp2 = 0x0431 } -enum : uint { grp3 = 0x0432 } -enum : uint { grp4 = 0x0433 } -enum : uint { frm1 = 0x0434 } -enum : uint { frm2 = 0x0435 } -enum : uint { frm3 = 0x0436 } -enum : uint { frm4 = 0x0437 } -enum : uint { rct1 = 0x0438 } -enum : uint { rct2 = 0x0439 } -enum : uint { rct3 = 0x043a } -enum : uint { rct4 = 0x043b } -enum : uint { ico1 = 0x043c } -enum : uint { ico2 = 0x043d } -enum : uint { ico3 = 0x043e } -enum : uint { ico4 = 0x043f } - -enum : uint { stc1 = 0x0440 } -enum : uint { stc2 = 0x0441 } -enum : uint { stc3 = 0x0442 } -enum : uint { stc4 = 0x0443 } -enum : uint { stc5 = 0x0444 } -enum : uint { stc6 = 0x0445 } -enum : uint { stc7 = 0x0446 } -enum : uint { stc8 = 0x0447 } -enum : uint { stc9 = 0x0448 } -enum : uint { stc10 = 0x0449 } -enum : uint { stc11 = 0x044a } -enum : uint { stc12 = 0x044b } -enum : uint { stc13 = 0x044c } -enum : uint { stc14 = 0x044d } -enum : uint { stc15 = 0x044e } -enum : uint { stc16 = 0x044f } -enum : uint { stc17 = 0x0450 } -enum : uint { stc18 = 0x0451 } -enum : uint { stc19 = 0x0452 } -enum : uint { stc20 = 0x0453 } -enum : uint { stc21 = 0x0454 } -enum : uint { stc22 = 0x0455 } -enum : uint { stc23 = 0x0456 } -enum : uint { stc24 = 0x0457 } -enum : uint { stc25 = 0x0458 } -enum : uint { stc26 = 0x0459 } -enum : uint { stc27 = 0x045a } -enum : uint { stc28 = 0x045b } -enum : uint { stc29 = 0x045c } -enum : uint { stc30 = 0x045d } -enum : uint { stc31 = 0x045e } -enum : uint { stc32 = 0x045f } - -enum : uint { lst1 = 0x0460 } -enum : uint { lst2 = 0x0461 } -enum : uint { lst3 = 0x0462 } -enum : uint { lst4 = 0x0463 } -enum : uint { lst5 = 0x0464 } -enum : uint { lst6 = 0x0465 } -enum : uint { lst7 = 0x0466 } -enum : uint { lst8 = 0x0467 } -enum : uint { lst9 = 0x0468 } -enum : uint { lst10 = 0x0469 } -enum : uint { lst11 = 0x046a } -enum : uint { lst12 = 0x046b } -enum : uint { lst13 = 0x046c } -enum : uint { lst14 = 0x046d } -enum : uint { lst15 = 0x046e } -enum : uint { lst16 = 0x046f } - -enum : uint { cmb1 = 0x0470 } -enum : uint { cmb2 = 0x0471 } -enum : uint { cmb3 = 0x0472 } -enum : uint { cmb4 = 0x0473 } -enum : uint { cmb5 = 0x0474 } -enum : uint { cmb6 = 0x0475 } -enum : uint { cmb7 = 0x0476 } -enum : uint { cmb8 = 0x0477 } -enum : uint { cmb9 = 0x0478 } -enum : uint { cmb10 = 0x0479 } -enum : uint { cmb11 = 0x047a } -enum : uint { cmb12 = 0x047b } -enum : uint { cmb13 = 0x047c } -enum : uint { cmb14 = 0x047d } -enum : uint { cmb15 = 0x047e } -enum : uint { cmb16 = 0x047f } - -enum : uint { edt1 = 0x0480 } -enum : uint { edt2 = 0x0481 } -enum : uint { edt3 = 0x0482 } -enum : uint { edt4 = 0x0483 } -enum : uint { edt5 = 0x0484 } -enum : uint { edt6 = 0x0485 } -enum : uint { edt7 = 0x0486 } -enum : uint { edt8 = 0x0487 } -enum : uint { edt9 = 0x0488 } -enum : uint { edt10 = 0x0489 } -enum : uint { edt11 = 0x048a } -enum : uint { edt12 = 0x048b } -enum : uint { edt13 = 0x048c } -enum : uint { edt14 = 0x048d } -enum : uint { edt15 = 0x048e } -enum : uint { edt16 = 0x048f } - -enum : uint { scr1 = 0x0490 } -enum : uint { scr2 = 0x0491 } -enum : uint { scr3 = 0x0492 } -enum : uint { scr4 = 0x0493 } -enum : uint { scr5 = 0x0494 } -enum : uint { scr6 = 0x0495 } -enum : uint { scr7 = 0x0496 } -enum : uint { scr8 = 0x0497 } - -enum : uint { ctl1 = 0x04A0 } - -// #ifdef UNIX - -// #... -// #... - -// #... -// #... -// #... -// #endif - -enum : uint { FILEOPENORD = 1536 } -enum : uint { MULTIFILEOPENORD = 1537 } -enum : uint { PRINTDLGORD = 1538 } -enum : uint { PRNSETUPDLGORD = 1539 } -enum : uint { FINDDLGORD = 1540 } -enum : uint { REPLACEDLGORD = 1541 } -enum : uint { FONTDLGORD = 1542 } -enum : uint { FORMATDLGORD31 = 1543 } -enum : uint { FORMATDLGORD30 = 1544 } -enum : uint { RUNDLGORD = 1545 } - -// #if (WINVER >= 0x400) -enum : uint { PAGESETUPDLGORD = 1546 } -enum : uint { NEWFILEOPENORD = 1547 } -enum : uint { PRINTDLGEXORD = 1549 } -enum : uint { PAGESETUPDLGORDMOTIF = 1550 } -enum : uint { COLORMGMTDLGORD = 1551 } -enum : uint { NEWFILEOPENV2ORD = 1552 } -// #endif /* WINVER >= 0x400) */ - -struct tagCRGB { - BYTE bRed; - BYTE bGreen; - BYTE bBlue; - BYTE bExtra; -} -alias tagCRGB CRGB; - -// #endif // _DLGSH_INCLUDED_ +/***********************************************************************\ +* dlgs.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.dlgs; + +private import win32.windef; + +enum : ushort { + FILEOPENORD = 1536, + MULTIFILEOPENORD = 1537, + PRINTDLGORD = 1538, + PRNSETUPDLGORD = 1539, + FINDDLGORD = 1540, + REPLACEDLGORD = 1541, + FONTDLGORD = 1542, + FORMATDLGORD31 = 1543, + FORMATDLGORD30 = 1544, + PAGESETUPDLGORD = 1546 +} + +enum : int { + ctlFirst = 0x400, + ctlLast = 0x4ff, + chx1 = 0x410, + chx2 = 0x411, + chx3 = 0x412, + chx4 = 0x413, + chx5 = 0x414, + chx6 = 0x415, + chx7 = 0x416, + chx8 = 0x417, + chx9 = 0x418, + chx10 = 0x419, + chx11 = 0x41a, + chx12 = 0x41b, + chx13 = 0x41c, + chx14 = 0x41d, + chx15 = 0x41e, + chx16 = 0x41f, + cmb1 = 0x470, + cmb2 = 0x471, + cmb3 = 0x472, + cmb4 = 0x473, + cmb5 = 0x474, + cmb6 = 0x475, + cmb7 = 0x476, + cmb8 = 0x477, + cmb9 = 0x478, + cmb10 = 0x479, + cmb11 = 0x47a, + cmb12 = 0x47b, + cmb13 = 0x47c, + cmb14 = 0x47d, + cmb15 = 0x47e, + cmb16 = 0x47f, + edt1 = 0x480, + edt2 = 0x481, + edt3 = 0x482, + edt4 = 0x483, + edt5 = 0x484, + edt6 = 0x485, + edt7 = 0x486, + edt8 = 0x487, + edt9 = 0x488, + edt10 = 0x489, + edt11 = 0x48a, + edt12 = 0x48b, + edt13 = 0x48c, + edt14 = 0x48d, + edt15 = 0x48e, + edt16 = 0x48f, + frm1 = 0x434, + frm2 = 0x435, + frm3 = 0x436, + frm4 = 0x437, + grp1 = 0x430, + grp2 = 0x431, + grp3 = 0x432, + grp4 = 0x433, + ico1 = 0x43c, + ico2 = 0x43d, + ico3 = 0x43e, + ico4 = 0x43f, + lst1 = 0x460, + lst2 = 0x461, + lst3 = 0x462, + lst4 = 0x463, + lst5 = 0x464, + lst6 = 0x465, + lst7 = 0x466, + lst8 = 0x467, + lst9 = 0x468, + lst10 = 0x469, + lst11 = 0x46a, + lst12 = 0x46b, + lst13 = 0x46c, + lst14 = 0x46d, + lst15 = 0x46e, + lst16 = 0x46f, + psh1 = 0x400, + psh2 = 0x401, + psh3 = 0x402, + psh4 = 0x403, + psh5 = 0x404, + psh6 = 0x405, + psh7 = 0x406, + psh8 = 0x407, + psh9 = 0x408, + psh10 = 0x409, + psh11 = 0x40a, + psh12 = 0x40b, + psh13 = 0x40c, + psh14 = 0x40d, + psh15 = 0x40e, + pshHelp = 0x40e, + psh16 = 0x40f, + rad1 = 0x420, + rad2 = 0x421, + rad3 = 0x422, + rad4 = 0x423, + rad5 = 0x424, + rad6 = 0x425, + rad7 = 0x426, + rad8 = 0x427, + rad9 = 0x428, + rad10 = 0x429, + rad11 = 0x42a, + rad12 = 0x42b, + rad13 = 0x42c, + rad14 = 0x42d, + rad15 = 0x42e, + rad16 = 0x42f, + rct1 = 0x438, + rct2 = 0x439, + rct3 = 0x43a, + rct4 = 0x43b, + scr1 = 0x490, + scr2 = 0x491, + scr3 = 0x492, + scr4 = 0x493, + scr5 = 0x494, + scr6 = 0x495, + scr7 = 0x496, + scr8 = 0x497, + stc1 = 0x440, + stc2 = 0x441, + stc3 = 0x442, + stc4 = 0x443, + stc5 = 0x444, + stc6 = 0x445, + stc7 = 0x446, + stc8 = 0x447, + stc9 = 0x448, + stc10 = 0x449, + stc11 = 0x44a, + stc12 = 0x44b, + stc13 = 0x44c, + stc14 = 0x44d, + stc15 = 0x44e, + stc16 = 0x44f, + stc17 = 0x450, + stc18 = 0x451, + stc19 = 0x452, + stc20 = 0x453, + stc21 = 0x454, + stc22 = 0x455, + stc23 = 0x456, + stc24 = 0x457, + stc25 = 0x458, + stc26 = 0x459, + stc27 = 0x45a, + stc28 = 0x45b, + stc29 = 0x45c, + stc30 = 0x45d, + stc31 = 0x45e, + stc32 = 0x45f +} + +struct CRGB { + ubyte bRed; + ubyte bGreen; + ubyte bBlue; + ubyte bExtra; +} ADDED src/win32/docobj.d Index: src/win32/docobj.d ================================================================== --- src/win32/docobj.d +++ src/win32/docobj.d @@ -0,0 +1,133 @@ +/***********************************************************************\ +* docobj.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.docobj; + +private import win32.basetyps, win32.oaidl, win32.objidl, win32.oleidl, + win32.unknwn, win32.windef, win32.wtypes; + +// FIXME: remove inherited methods from interface definitions + +enum { + OLECMDERR_E_UNKNOWNGROUP = -2147221244, + OLECMDERR_E_CANCELED = -2147221245, + OLECMDERR_E_NOHELP = -2147221246, + OLECMDERR_E_DISABLED = -2147221247, + OLECMDERR_E_NOTSUPPORTED = -2147221248 +} + +enum OLECMDID { + OLECMDID_OPEN = 1, + OLECMDID_NEW = 2, + OLECMDID_SAVE = 3, + OLECMDID_SAVEAS = 4, + OLECMDID_SAVECOPYAS = 5, + OLECMDID_PRINT = 6, + OLECMDID_PRINTPREVIEW = 7, + OLECMDID_PAGESETUP = 8, + OLECMDID_SPELL = 9, + OLECMDID_PROPERTIES = 10, + OLECMDID_CUT = 11, + OLECMDID_COPY = 12, + OLECMDID_PASTE = 13, + OLECMDID_PASTESPECIAL = 14, + OLECMDID_UNDO = 15, + OLECMDID_REDO = 16, + OLECMDID_SELECTALL = 17, + OLECMDID_CLEARSELECTION = 18, + OLECMDID_ZOOM = 19, + OLECMDID_GETZOOMRANGE = 20, + OLECMDID_UPDATECOMMANDS = 21, + OLECMDID_REFRESH = 22, + OLECMDID_STOP = 23, + OLECMDID_HIDETOOLBARS = 24, + OLECMDID_SETPROGRESSMAX = 25, + OLECMDID_SETPROGRESSPOS = 26, + OLECMDID_SETPROGRESSTEXT = 27, + OLECMDID_SETTITLE = 28, + OLECMDID_SETDOWNLOADSTATE = 29, + OLECMDID_STOPDOWNLOAD = 30 +} + +enum OLECMDF { + OLECMDF_SUPPORTED = 1, + OLECMDF_ENABLED = 2, + OLECMDF_LATCHED = 4, + OLECMDF_NINCHED = 8 +} + +enum OLECMDEXECOPT { + OLECMDEXECOPT_DODEFAULT = 0, + OLECMDEXECOPT_PROMPTUSER = 1, + OLECMDEXECOPT_DONTPROMPTUSER = 2, + OLECMDEXECOPT_SHOWHELP = 3 +} + +struct OLECMDTEXT { + DWORD cmdtextf; + ULONG cwActual; + ULONG cwBuf; + wchar rgwz[1]; +} + +struct OLECMD { + ULONG cmdID; + DWORD cmdf; +} + +alias IOleInPlaceSite* LPOLEINPLACESITE; +alias IEnumOleDocumentViews* LPENUMOLEDOCUMENTVIEWS; + +extern (C) extern const IID + IID_IContinueCallback, + IID_IEnumOleDocumentViews, + IID_IPrint, + IID_IOleDocumentView, + IID_IOleDocument, + IID_IOleCommandTarget, + IID_IOleDocumentSite; + + +interface IOleDocumentView : IUnknown { + HRESULT SetInPlaceSite(LPOLEINPLACESITE); + HRESULT GetInPlaceSite(LPOLEINPLACESITE*); + HRESULT GetDocument(IUnknown**); + HRESULT SetRect(LPRECT); + HRESULT GetRect(LPRECT); + HRESULT SetRectComplex(LPRECT, LPRECT, LPRECT, LPRECT); + HRESULT Show(BOOL); + HRESULT UIActivate(BOOL); + HRESULT Open(); + HRESULT Close(DWORD); + HRESULT SaveViewState(IStream*); + HRESULT ApplyViewState(IStream*); + HRESULT Clone(LPOLEINPLACESITE, IOleDocumentView**); +} + +interface IEnumOleDocumentViews : IUnknown { + HRESULT Next(ULONG, IOleDocumentView*, ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(IEnumOleDocumentViews**); +} + +interface IOleDocument : IUnknown { + HRESULT CreateView(LPOLEINPLACESITE, IStream*, DWORD, IOleDocumentView**); + HRESULT GetDocMiscStatus(DWORD*); + HRESULT EnumViews(LPENUMOLEDOCUMENTVIEWS*, IOleDocumentView**); +} + +interface IOleCommandTarget : IUnknown { + HRESULT QueryStatus(CPtr!(GUID), ULONG, OLECMD*, OLECMDTEXT*); + HRESULT Exec(CPtr!(GUID), DWORD, DWORD, VARIANTARG*, VARIANTARG*); +} + +interface IOleDocumentSite : IUnknown { + HRESULT ActivateMe(IOleDocumentView*); +} ADDED src/win32/errorrep.d Index: src/win32/errorrep.d ================================================================== --- src/win32/errorrep.d +++ src/win32/errorrep.d @@ -0,0 +1,40 @@ +/***********************************************************************\ +* errorrep.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.errorrep; + +private import win32.w32api, win32.windef; + +static assert (_WIN32_WINNT >= 0x501, + "win32.errorrep is available only if version WindowsXP, Windows2003 " + "or WindowsVista is set"); + +enum EFaultRepRetVal { + frrvOk, + frrvOkManifest, + frrvOkQueued, + frrvErr, + frrvErrNoDW, + frrvErrTimeout, + frrvLaunchDebugger, + frrvOkHeadless // = 7 +} + +extern (Windows) { + BOOL AddERExcludedApplicationA(LPCSTR); + BOOL AddERExcludedApplicationW(LPCWSTR); + EFaultRepRetVal ReportFault(LPEXCEPTION_POINTERS, DWORD); +} + +version (Unicode) { + alias AddERExcludedApplicationW AddERExcludedApplication; +} else { + alias AddERExcludedApplicationA AddERExcludedApplication; +} ADDED src/win32/exdisp.d Index: src/win32/exdisp.d ================================================================== --- src/win32/exdisp.d +++ src/win32/exdisp.d @@ -0,0 +1,127 @@ +/***********************************************************************\ +* exdisp.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.exdisp; + +import win32.docobj, win32.oaidl, win32.ocidl; +private import win32.basetyps, win32.windef, win32.wtypes; + + +enum BrowserNavConstants { + navOpenInNewWindow = 0x01, + navNoHistory = 0x02, + navNoReadFromCache = 0x04, + navNoWriteTocache = 0x08, + navAllowAutosearch = 0x10, + navBrowserBar = 0x20, + navHyperLink = 0x40 +} + +interface IWebBrowser : IDispatch { + HRESULT GoBack(); + HRESULT GoForward(); + HRESULT GoHome(); + HRESULT GoSearch(); + HRESULT Navigate(BSTR, VARIANT*, VARIANT*, VARIANT*, VARIANT*); + HRESULT Refresh(); + HRESULT Refresh2(VARIANT*); + HRESULT Stop(); + HRESULT get_Application(IDispatch* ppDisp); + HRESULT get_Parent(IDispatch* ppDisp); + HRESULT get_Container(IDispatch* ppDisp); + HRESULT get_Document(IDispatch* ppDisp); + HRESULT get_TopLevelContainer(VARIANT_BOOL*); + HRESULT get_Type(BSTR*); + HRESULT get_Left(LONG*); + HRESULT put_Left(LONG); + HRESULT get_Top(LONG*); + HRESULT put_Top(LONG); + HRESULT get_Width(LONG*); + HRESULT put_Width(LONG); + HRESULT get_Height(LONG*); + HRESULT put_Height(LONG); + HRESULT get_LocationName(BSTR*); + HRESULT get_LocationURL(BSTR*); + HRESULT get_Busy(VARIANT_BOOL*); +} + +interface IWebBrowserApp : IWebBrowser { + HRESULT Quit(); + HRESULT ClientToWindow(int*, int*); + HRESULT PutProperty(BSTR, VARIANT); + HRESULT GetProperty(BSTR, VARIANT*); + HRESULT get_Name(BSTR*); + HRESULT get_HWND(LONG*); + HRESULT get_FullName(BSTR*); + HRESULT get_Path(BSTR*); + HRESULT get_Visible(VARIANT_BOOL*); + HRESULT put_Visible(VARIANT_BOOL); + HRESULT get_StatusBar(VARIANT_BOOL*); + HRESULT put_StatusBar(VARIANT_BOOL); + HRESULT get_StatusText(BSTR*); + HRESULT put_StatusText(BSTR); + HRESULT get_ToolBar(int*); + HRESULT put_ToolBar(int); + HRESULT get_MenuBar(VARIANT_BOOL*); + HRESULT put_MenuBar(VARIANT_BOOL); + HRESULT get_FullScreen(VARIANT_BOOL*); + HRESULT put_FullScreen(VARIANT_BOOL); +} + +interface IWebBrowser2 : IWebBrowserApp { + HRESULT Navigate2(VARIANT*, VARIANT*, VARIANT*, VARIANT*, VARIANT*); + HRESULT QueryStatusWB(OLECMDID, OLECMDF*); + HRESULT ExecWB(OLECMDID, OLECMDEXECOPT, VARIANT*, VARIANT*); + HRESULT ShowBrowserBar(VARIANT*, VARIANT*, VARIANT*); + HRESULT get_ReadyState(READYSTATE*); + HRESULT get_Offline(VARIANT_BOOL*); + HRESULT put_Offline(VARIANT_BOOL); + HRESULT get_Silent(VARIANT_BOOL*); + HRESULT put_Silent(VARIANT_BOOL); + HRESULT get_RegistaerAsBrowser(VARIANT_BOOL*); + HRESULT put_RegisterAsBrowser(VARIANT_BOOL); + HRESULT get_RegistaerAsDropTarget(VARIANT_BOOL*); + HRESULT put_RegisterAsDropTarget(VARIANT_BOOL); + HRESULT get_TheaterMode(VARIANT_BOOL*); + HRESULT put_TheaterMode(VARIANT_BOOL); + HRESULT get_AddressBar(VARIANT_BOOL*); + HRESULT put_AddressBar(VARIANT_BOOL); + HRESULT get_Resizable(VARIANT_BOOL*); + HRESULT put_Resizable(VARIANT_BOOL); +} + +interface DWebBrowserEvents2 : IDispatch { + void StatusTextChange(BSTR); + void ProgressChange(LONG, LONG); + void CommandStateChange(LONG, VARIANT_BOOL); + void DownloadBegin(); + void DownloadComplete(); + void TitleChange(BSTR); + void PropertyChange(BSTR); + void BeforeNavigate2(IDispatch pDisp, VARIANT*, VARIANT*, VARIANT*, VARIANT*, VARIANT*, VARIANT_BOOL*); + void NewWindow2(IDispatch* ppDisp, VARIANT_BOOL*); + void NavigateComplete(IDispatch pDisp, VARIANT*); + void DocumentComplete(IDispatch pDisp, VARIANT*); + void OnQuit(); + void OnVisible(VARIANT_BOOL); + void OnToolBar(VARIANT_BOOL); + void OnMenuBar(VARIANT_BOOL); + void OnStatusBar(VARIANT_BOOL); + void OnFullScreen(VARIANT_BOOL); + void OnTheaterMode(VARIANT_BOOL); + void WindowSetResizable(VARIANT_BOOL); + void WindowSetLeft(LONG); + void WindowSetTop(LONG); + void WindowSetWidth(LONG); + void WindowSetHeight(LONG); + void WindowClosing(VARIANT_BOOL, VARIANT_BOOL*); + void ClientToHostWindow(LONG*, LONG*); + void SetSecureLockIcon(LONG); + void FileDownload(VARIANT_BOOL*); +} ADDED src/win32/exdispid.d Index: src/win32/exdispid.d ================================================================== --- src/win32/exdispid.d +++ src/win32/exdispid.d @@ -0,0 +1,20 @@ +/***********************************************************************\ +* exdispid.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.10 * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.exdispid; + +enum : int { + DISPID_STATUSTEXTCHANGE = 102, + DISPID_PROGRESSCHANGE = 108, + DISPID_TITLECHANGE = 113, + DISPID_BEFORENAVIGATE2 = 250, + DISPID_NEWWINDOW2 = 251, + DISPID_DOCUMENTCOMPLETE = 259 +} DELETED src/win32/guiddef.d Index: src/win32/guiddef.d ================================================================== --- src/win32/guiddef.d +++ src/win32/guiddef.d @@ -1,30 +0,0 @@ -module win32.guiddef; -import win32.windef; - -// Handwriting... - -align(1) struct GUID -{ - DWORD Data1; - WORD Data2; - WORD Data3; - BYTE Data4[8]; -} - -alias GUID CLSID; -alias GUID IID; -alias GUID* REFGUID; -alias GUID* REFCLSID; -alias GUID* REFIID; -alias CLSID* LPCLSID; -alias IID* LPIID; - -bit IsEqualGUID(in GUID rguid1, in GUID rguid2) -{ - return - (cast(uint*)&rguid1)[0] == (cast(uint*)&rguid2)[0] && - (cast(uint*)&rguid1)[1] == (cast(uint*)&rguid2)[1] && - (cast(uint*)&rguid1)[2] == (cast(uint*)&rguid2)[2] && - (cast(uint*)&rguid1)[3] == (cast(uint*)&rguid2)[3]; -} - ADDED src/win32/httpext.d Index: src/win32/httpext.d ================================================================== --- src/win32/httpext.d +++ src/win32/httpext.d @@ -0,0 +1,114 @@ +/***********************************************************************\ +* httpext.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.httpext; + +/* Comment from MinGW + httpext.h - Header for ISAPI extensions. + + This file is part of a free library for the Win32 API. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +private import win32.windows; + +enum { + HSE_VERSION_MAJOR = 2, + HSE_VERSION_MINOR = 0, + HSE_LOG_BUFFER_LEN = 80, + HSE_MAX_EXT_DLL_NAME_LEN = 256, + HSE_STATUS_SUCCESS = 1, + HSE_STATUS_SUCCESS_AND_KEEP_CONN, + HSE_STATUS_PENDING, + HSE_STATUS_ERROR, + HSE_REQ_BASE = 0, + HSE_REQ_SEND_URL_REDIRECT_RESP, + HSE_REQ_SEND_URL, + HSE_REQ_SEND_RESPONSE_HEADER, + HSE_REQ_DONE_WITH_SESSION, + HSE_REQ_SEND_RESPONSE_HEADER_EX = 1016, + HSE_REQ_END_RESERVED = 1000, + HSE_TERM_ADVISORY_UNLOAD = 0x00000001, + HSE_TERM_MUST_UNLOAD, + HSE_IO_SYNC = 0x00000001, + HSE_IO_ASYNC, + HSE_IO_DISCONNECT_AFTER_SEND = 0x00000004, + HSE_IO_SEND_HEADERS = 0x00000008 +} + +alias HANDLE HCONN; + +struct HSE_VERSION_INFO { + DWORD dwExtensionVersion; + CHAR[HSE_MAX_EXT_DLL_NAME_LEN] lpszExtensionDesc; +} +alias HSE_VERSION_INFO* LPHSE_VERSION_INFO; + +struct EXTENSION_CONTROL_BLOCK { + DWORD cbSize = EXTENSION_CONTROL_BLOCK.sizeof; + DWORD dwVersion; + HCONN ConnID; + DWORD dwHttpStatusCode; + CHAR[HSE_LOG_BUFFER_LEN] lpszLogData; + LPSTR lpszMethod; + LPSTR lpszQueryString; + LPSTR lpszPathInfo; + LPSTR lpszPathTranslated; + DWORD cbTotalBytes; + DWORD cbAvailable; + LPBYTE lpbData; + LPSTR lpszContentType; + extern(Pascal) BOOL function(HCONN, LPSTR, LPVOID, LPDWORD) + GetServerVariable; + extern(Pascal) BOOL function(HCONN, LPVOID, LPDWORD, DWORD) WriteClient; + extern(Pascal) BOOL function(HCONN, LPVOID, LPDWORD) ReadClient; + extern(Pascal) BOOL function(HCONN, DWORD, LPVOID, LPDWORD, LPDWORD) + ServerSupportFunction; +} +alias EXTENSION_CONTROL_BLOCK* LPEXTENSION_CONTROL_BLOCK; + +extern (Pascal) { + alias BOOL function(HSE_VERSION_INFO*) PFN_GETEXTENSIONVERSION; + alias DWORD function(EXTENSION_CONTROL_BLOCK*) PFN_HTTPEXTENSIONPROC; + alias BOOL function(DWORD) PFN_TERMINATEEXTENSION; + alias VOID function(EXTENSION_CONTROL_BLOCK*, PVOID, DWORD, DWORD) PFN_HSE_IO_COMPLETION; +} + +struct HSE_TF_INFO { + PFN_HSE_IO_COMPLETION pfnHseIO; + PVOID pContext; + HANDLE hFile; + LPCSTR pszStatusCode; + DWORD BytesToWrite; + DWORD Offset; + PVOID pHead; + DWORD HeadLength; + PVOID pTail; + DWORD TailLength; + DWORD dwFlags; +} +alias HSE_TF_INFO* LPHSE_TF_INFO; + +struct HSE_SEND_HEADER_EX_INFO { + LPCSTR pszStatus; + LPCSTR pszHeader; + DWORD cchStatus; + DWORD cchHeader; + BOOL fKeepConn; +} +alias HSE_SEND_HEADER_EX_INFO* LPHSE_SEND_HEADER_EX_INF; + +extern (Pascal) { + BOOL GetExtensionVersion(HSE_VERSION_INFO*); + DWORD HttpExtensionProc(EXTENSION_CONTROL_BLOCK*); + BOOL TerminateExtension(DWORD); +} ADDED src/win32/idispids.d Index: src/win32/idispids.d ================================================================== --- src/win32/idispids.d +++ src/win32/idispids.d @@ -0,0 +1,16 @@ +/***********************************************************************\ +* idispids.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.10 * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.idispids; + +enum : int { + DISPID_AMBIENT_OFFLINEIFNOTCONNECTED = -5501, + DISPID_AMBIENT_SILENT = -5502 +} ADDED src/win32/imagehlp.d Index: src/win32/imagehlp.d ================================================================== --- src/win32/imagehlp.d +++ src/win32/imagehlp.d @@ -0,0 +1,363 @@ +/***********************************************************************\ +* imagehlp.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.imagehlp; + +/* Comment from MinGW + NOTE: This strictly does not belong in the Win32 API since it's + really part of Platform SDK. However, GDB needs it and we might + as well provide it here. +*/ + +private import win32.winbase, win32.windef; + +// FIXME: check types of constants + +const API_VERSION_NUMBER = 7; + +const BIND_NO_BOUND_IMPORTS = 1; +const BIND_NO_UPDATE = 2; +const BIND_ALL_IMAGES = 4; +const BIND_CACHE_IMPORT_DLLS = 8; + +enum { + CBA_DEFERRED_SYMBOL_LOAD_START = 1, + CBA_DEFERRED_SYMBOL_LOAD_COMPLETE, + CBA_DEFERRED_SYMBOL_LOAD_FAILURE, + CBA_SYMBOLS_UNLOADED, + CBA_DUPLICATE_SYMBOL +} + +const CERT_PE_IMAGE_DIGEST_DEBUG_INFO = 1; +const CERT_PE_IMAGE_DIGEST_RESOURCES = 2; +const CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO = 4; +const CERT_PE_IMAGE_DIGEST_NON_PE_INFO = 8; + +const CERT_SECTION_TYPE_ANY = 255; + +enum { + CHECKSUM_SUCCESS = 0, + CHECKSUM_OPEN_FAILURE, + CHECKSUM_MAP_FAILURE, + CHECKSUM_MAPVIEW_FAILURE, + CHECKSUM_UNICODE_FAILURE +} + +const IMAGE_SEPARATION = 65536; + +const SPLITSYM_REMOVE_PRIVATE = 1; +const SPLITSYM_EXTRACT_ALL = 2; +const SPLITSYM_SYMBOLPATH_IS_SRC = 4; + +const SYMF_OMAP_GENERATED = 1; +const SYMF_OMAP_MODIFIED = 2; + +const SYMOPT_CASE_INSENSITIVE = 1; +const SYMOPT_UNDNAME = 2; +const SYMOPT_DEFERRED_LOADS = 4; +const SYMOPT_NO_CPP = 8; +const SYMOPT_LOAD_LINES = 16; +const SYMOPT_OMAP_FIND_NEAREST = 32; + +const UNDNAME_COMPLETE = 0; +const UNDNAME_NO_LEADING_UNDERSCORES = 1; +const UNDNAME_NO_MS_KEYWORDS = 2; +const UNDNAME_NO_FUNCTION_RETURNS = 4; +const UNDNAME_NO_ALLOCATION_MODEL = 8; +const UNDNAME_NO_ALLOCATION_LANGUAGE = 16; +const UNDNAME_NO_MS_THISTYPE = 32; +const UNDNAME_NO_CV_THISTYPE = 64; +const UNDNAME_NO_THISTYPE = 96; +const UNDNAME_NO_ACCESS_SPECIFIERS = 128; +const UNDNAME_NO_THROW_SIGNATURES = 256; +const UNDNAME_NO_MEMBER_TYPE = 512; +const UNDNAME_NO_RETURN_UDT_MODEL = 1024; +const UNDNAME_32_BIT_DECODE = 2048; +const UNDNAME_NAME_ONLY = 4096; +const UNDNAME_NO_ARGUMENTS = 8192; +const UNDNAME_NO_SPECIAL_SYMS = 16384; + +enum IMAGEHLP_STATUS_REASON { + BindOutOfMemory, + BindRvaToVaFailed, + BindNoRoomInImage, + BindImportModuleFailed, + BindImportProcedureFailed, + BindImportModule, + BindImportProcedure, + BindForwarder, + BindForwarderNOT, + BindImageModified, + BindExpandFileHeaders, + BindImageComplete, + BindMismatchedSymbols, + BindSymbolsNotUpdated +} + +struct LOADED_IMAGE { + LPSTR ModuleName; + HANDLE hFile; + PUCHAR MappedAddress; + PIMAGE_NT_HEADERS FileHeader; + PIMAGE_SECTION_HEADER LastRvaSection; + ULONG NumberOfSections; + PIMAGE_SECTION_HEADER Sections; + ULONG Characteristics; + BOOLEAN fSystemImage; + BOOLEAN fDOSImage; + LIST_ENTRY Links; + ULONG SizeOfImage; +} +alias LOADED_IMAGE* PLOADED_IMAGE; + +struct IMAGE_DEBUG_INFORMATION { + LIST_ENTRY List; + DWORD Size; + PVOID MappedBase; + USHORT Machine; + USHORT Characteristics; + DWORD CheckSum; + DWORD ImageBase; + DWORD SizeOfImage; + DWORD NumberOfSections; + PIMAGE_SECTION_HEADER Sections; + DWORD ExportedNamesSize; + LPSTR ExportedNames; + DWORD NumberOfFunctionTableEntries; + PIMAGE_FUNCTION_ENTRY FunctionTableEntries; + DWORD LowestFunctionStartingAddress; + DWORD HighestFunctionEndingAddress; + DWORD NumberOfFpoTableEntries; + PFPO_DATA FpoTableEntries; + DWORD SizeOfCoffSymbols; + PIMAGE_COFF_SYMBOLS_HEADER CoffSymbols; + DWORD SizeOfCodeViewSymbols; + PVOID CodeViewSymbols; + LPSTR ImageFilePath; + LPSTR ImageFileName; + LPSTR DebugFilePath; + DWORD TimeDateStamp; + BOOL RomImage; + PIMAGE_DEBUG_DIRECTORY DebugDirectory; + DWORD NumberOfDebugDirectories; + DWORD[3] Reserved; +} +alias IMAGE_DEBUG_INFORMATION* PIMAGE_DEBUG_INFORMATION; + +enum ADDRESS_MODE { + AddrMode1616, + AddrMode1632, + AddrModeReal, + AddrModeFlat +} + +struct ADDRESS { + DWORD Offset; + WORD Segment; + ADDRESS_MODE Mode; +} +alias ADDRESS* LPADDRESS; + +struct KDHELP { + DWORD Thread; + DWORD ThCallbackStack; + DWORD NextCallback; + DWORD FramePointer; + DWORD KiCallUserMode; + DWORD KeUserCallbackDispatcher; + DWORD SystemRangeStart; +} +alias KDHELP* PKDHELP; + +struct STACKFRAME { + ADDRESS AddrPC; + ADDRESS AddrReturn; + ADDRESS AddrFrame; + ADDRESS AddrStack; + LPVOID FuncTableEntry; + DWORD[4] Params; + BOOL Far; + BOOL Virtual; + DWORD[3] Reserved; + KDHELP KdHelp; +} +alias STACKFRAME* LPSTACKFRAME; + +struct API_VERSION { + USHORT MajorVersion; + USHORT MinorVersion; + USHORT Revision; + USHORT Reserved; +} +alias API_VERSION* LPAPI_VERSION; + +enum SYM_TYPE { + SymNone, + SymCoff, + SymCv, + SymPdb, + SymExport, + SymDeferred, + SymSym +} + +struct IMAGEHLP_SYMBOL { + DWORD SizeOfStruct; + DWORD Address; + DWORD Size; + DWORD Flags; + DWORD MaxNameLength; + CHAR[1] Name; +} +alias IMAGEHLP_SYMBOL* PIMAGEHLP_SYMBOL; + +struct IMAGEHLP_MODULE { + DWORD SizeOfStruct; + DWORD BaseOfImage; + DWORD ImageSize; + DWORD TimeDateStamp; + DWORD CheckSum; + DWORD NumSyms; + SYM_TYPE SymType; + CHAR[32] ModuleName; + CHAR[256] ImageName; + CHAR[256] LoadedImageName; +} +alias IMAGEHLP_MODULE* PIMAGEHLP_MODULE; + +struct IMAGEHLP_LINE { + DWORD SizeOfStruct; + DWORD Key; + DWORD LineNumber; + PCHAR FileName; + DWORD Address; +} +alias IMAGEHLP_LINE* PIMAGEHLP_LINE; + +struct IMAGEHLP_DEFERRED_SYMBOL_LOAD { + DWORD SizeOfStruct; + DWORD BaseOfImage; + DWORD CheckSum; + DWORD TimeDateStamp; + CHAR[MAX_PATH] FileName; + BOOLEAN Reparse; +} +alias IMAGEHLP_DEFERRED_SYMBOL_LOAD* PIMAGEHLP_DEFERRED_SYMBOL_LOAD; + +struct IMAGEHLP_DUPLICATE_SYMBOL { + DWORD SizeOfStruct; + DWORD NumberOfDups; + PIMAGEHLP_SYMBOL Symbol; + ULONG SelectedSymbol; +} +alias IMAGEHLP_DUPLICATE_SYMBOL* PIMAGEHLP_DUPLICATE_SYMBOL; + +alias HANDLE DIGEST_HANDLE; + +extern (Windows) { + alias BOOL function(IMAGEHLP_STATUS_REASON, LPSTR, LPSTR, ULONG, ULONG) + PIMAGEHLP_STATUS_ROUTINE; + alias BOOL function(HANDLE , LPCVOID, LPVOID, DWORD, LPDWORD) + PREAD_PROCESS_MEMORY_ROUTINE; + alias LPVOID function(HANDLE, DWORD) PFUNCTION_TABLE_ACCESS_ROUTINE; + alias DWORD function(HANDLE, DWORD) PGET_MODULE_BASE_ROUTINE; + alias DWORD function(HANDLE, HANDLE, LPADDRESS) + PTRANSLATE_ADDRESS_ROUTINE; + alias BOOL function(LPSTR, ULONG, PVOID) PSYM_ENUMMODULES_CALLBACK; + alias BOOL function(LPSTR, ULONG, ULONG, PVOID) PSYM_ENUMSYMBOLS_CALLBACK; + alias BOOL function(LPSTR, ULONG, ULONG, PVOID) + PENUMLOADED_MODULES_CALLBACK; + alias BOOL function(HANDLE, ULONG, PVOID, PVOID) + PSYMBOL_REGISTERED_CALLBACK; + alias BOOL function(DIGEST_HANDLE refdata, PBYTE pData, DWORD dwLength) + DIGEST_FUNCTION; + + PIMAGE_NT_HEADERS CheckSumMappedFile(LPVOID, DWORD, LPDWORD, LPDWORD); + DWORD MapFileAndCheckSumA(LPSTR, LPDWORD, LPDWORD); + DWORD MapFileAndCheckSumW(PWSTR, LPDWORD, LPDWORD); + BOOL TouchFileTimes(HANDLE, LPSYSTEMTIME); + BOOL SplitSymbols(LPSTR, LPSTR, LPSTR, DWORD); + HANDLE FindDebugInfoFile(LPSTR, LPSTR, LPSTR); + HANDLE FindExecutableImage(LPSTR, LPSTR, LPSTR); + BOOL UpdateDebugInfoFile(LPSTR, LPSTR, LPSTR, PIMAGE_NT_HEADERS); + BOOL UpdateDebugInfoFileEx(LPSTR, LPSTR, LPSTR, PIMAGE_NT_HEADERS, DWORD); + BOOL BindImage(LPSTR, LPSTR, LPSTR); + BOOL BindImageEx(DWORD, LPSTR, LPSTR, LPSTR, PIMAGEHLP_STATUS_ROUTINE); + BOOL ReBaseImage(LPSTR, LPSTR, BOOL, BOOL, BOOL, ULONG, ULONG*, ULONG*, + ULONG*, ULONG*, ULONG); + PLOADED_IMAGE ImageLoad(LPSTR, LPSTR); + BOOL ImageUnload(PLOADED_IMAGE); + PIMAGE_NT_HEADERS ImageNtHeader(PVOID); + PVOID ImageDirectoryEntryToData(PVOID, BOOLEAN, USHORT, PULONG); + PIMAGE_SECTION_HEADER ImageRvaToSection(PIMAGE_NT_HEADERS, PVOID, ULONG); + PVOID ImageRvaToVa(PIMAGE_NT_HEADERS, PVOID, ULONG, + PIMAGE_SECTION_HEADER*); + BOOL MapAndLoad(LPSTR, LPSTR, PLOADED_IMAGE, BOOL, BOOL); + BOOL GetImageConfigInformation(PLOADED_IMAGE, + PIMAGE_LOAD_CONFIG_DIRECTORY); + DWORD GetImageUnusedHeaderBytes(PLOADED_IMAGE, LPDWORD); + BOOL SetImageConfigInformation(PLOADED_IMAGE, + PIMAGE_LOAD_CONFIG_DIRECTORY); + BOOL UnMapAndLoad(PLOADED_IMAGE); + PIMAGE_DEBUG_INFORMATION MapDebugInformation(HANDLE, LPSTR, LPSTR, DWORD); + BOOL UnmapDebugInformation(PIMAGE_DEBUG_INFORMATION); + HANDLE FindExecutableImage(LPSTR, LPSTR, LPSTR); + BOOL SearchTreeForFile(LPSTR, LPSTR, LPSTR); + BOOL MakeSureDirectoryPathExists(LPCSTR); + DWORD UnDecorateSymbolName(LPCSTR, LPSTR, DWORD, DWORD); + BOOL StackWalk(DWORD, HANDLE, HANDLE, LPSTACKFRAME, LPVOID, + PREAD_PROCESS_MEMORY_ROUTINE, PFUNCTION_TABLE_ACCESS_ROUTINE, + PGET_MODULE_BASE_ROUTINE, PTRANSLATE_ADDRESS_ROUTINE); + LPAPI_VERSION ImagehlpApiVersion(); + LPAPI_VERSION ImagehlpApiVersionEx(LPAPI_VERSION); + DWORD GetTimestampForLoadedLibrary(HMODULE); + BOOL RemovePrivateCvSymbolic(PCHAR, PCHAR*, ULONG*); + VOID RemoveRelocations(PCHAR); + DWORD SymSetOptions(DWORD); + DWORD SymGetOptions(); + BOOL SymCleanup(HANDLE); + BOOL SymEnumerateModules(HANDLE, PSYM_ENUMMODULES_CALLBACK, PVOID); + BOOL SymEnumerateSymbols(HANDLE, DWORD, PSYM_ENUMSYMBOLS_CALLBACK, PVOID); + BOOL EnumerateLoadedModules(HANDLE, PENUMLOADED_MODULES_CALLBACK, PVOID); + LPVOID SymFunctionTableAccess(HANDLE, DWORD); + BOOL SymGetModuleInfo(HANDLE, DWORD, PIMAGEHLP_MODULE); + DWORD SymGetModuleBase(HANDLE, DWORD); + BOOL SymGetSymFromAddr(HANDLE, DWORD, PDWORD, PIMAGEHLP_SYMBOL); + BOOL SymGetSymFromName(HANDLE, LPSTR, PIMAGEHLP_SYMBOL); + BOOL SymGetSymNext(HANDLE, PIMAGEHLP_SYMBOL); + BOOL SymGetSymPrev(HANDLE, PIMAGEHLP_SYMBOL); + BOOL SymGetLineFromAddr(HANDLE, DWORD, PDWORD, PIMAGEHLP_LINE); + BOOL SymGetLineFromName(HANDLE, LPSTR, LPSTR, DWORD, PLONG, + PIMAGEHLP_LINE); + BOOL SymGetLineNext(HANDLE, PIMAGEHLP_LINE); + BOOL SymGetLinePrev(HANDLE, PIMAGEHLP_LINE); + BOOL SymMatchFileName(LPSTR, LPSTR, LPSTR*, LPSTR*); + BOOL SymInitialize(HANDLE, LPSTR, BOOL); + BOOL SymGetSearchPath(HANDLE, LPSTR, DWORD); + BOOL SymSetSearchPath(HANDLE, LPSTR); + BOOL SymLoadModule(HANDLE, HANDLE, PSTR, PSTR, DWORD, DWORD); + BOOL SymUnloadModule(HANDLE, DWORD); + BOOL SymUnDName(PIMAGEHLP_SYMBOL, LPSTR, DWORD); + BOOL SymRegisterCallback(HANDLE, PSYMBOL_REGISTERED_CALLBACK, PVOID); + BOOL ImageGetDigestStream(HANDLE, DWORD, DIGEST_FUNCTION, DIGEST_HANDLE); + BOOL ImageAddCertificate(HANDLE, LPWIN_CERTIFICATE, PDWORD); + BOOL ImageRemoveCertificate(HANDLE, DWORD); + BOOL ImageEnumerateCertificates(HANDLE, WORD, PDWORD, PDWORD, DWORD); + BOOL ImageGetCertificateData(HANDLE, DWORD, LPWIN_CERTIFICATE, PDWORD); + BOOL ImageGetCertificateHeader(HANDLE, DWORD, LPWIN_CERTIFICATE); + BOOL CopyPdb(CHAR*, CHAR*, BOOL); + BOOL RemovePrivateCvSymbolicEx(PCHAR, ULONG, PCHAR*, ULONG*); +} + +version (Unicode) { + alias MapFileAndCheckSumW MapFileAndCheckSum; +} else { + alias MapFileAndCheckSumA MapFileAndCheckSum; +} Index: src/win32/imm.d ================================================================== --- src/win32/imm.d +++ src/win32/imm.d @@ -1,687 +1,482 @@ -module win32.imm; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino - -import win32.windef; -import win32.winuser; - -// #ifndef _IMM_ -// #define _IMM_ - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #ifndef _IMM_SDK_DEFINED_ -// #define _IMM_SDK_DEFINED_ - -// #if (WINVER >= 0x040A) -alias void* HIMC; -alias void* HIMCC; -// #else -// ... -// #endif /* WINVER >= 0x040A */ - -alias HKL* LPHKL; -alias UINT* LPUINT; - -struct tagCOMPOSITIONFORM { - DWORD dwStyle; - POINT ptCurrentPos; - RECT rcArea; -} -alias tagCOMPOSITIONFORM COMPOSITIONFORM; -alias tagCOMPOSITIONFORM* PCOMPOSITIONFORM; -alias tagCOMPOSITIONFORM* NPCOMPOSITIONFORM; -alias tagCOMPOSITIONFORM* LPCOMPOSITIONFORM; - -struct tagCANDIDATEFORM { - DWORD dwIndex; - DWORD dwStyle; - POINT ptCurrentPos; - RECT rcArea; -} -alias tagCANDIDATEFORM CANDIDATEFORM; -alias tagCANDIDATEFORM* PCANDIDATEFORM; -alias tagCANDIDATEFORM* NPCANDIDATEFORM; -alias tagCANDIDATEFORM* LPCANDIDATEFORM; - -struct tagCANDIDATELIST { - DWORD dwSize; - DWORD dwStyle; - DWORD dwCount; - DWORD dwSelection; - DWORD dwPageStart; - DWORD dwPageSize; - DWORD dwOffset[1]; -} -alias tagCANDIDATELIST CANDIDATELIST; -alias tagCANDIDATELIST* PCANDIDATELIST; -alias tagCANDIDATELIST* NPCANDIDATELIST; -alias tagCANDIDATELIST* LPCANDIDATELIST; - -struct tagREGISTERWORDA { - LPSTR lpReading; - LPSTR lpWord; -} -alias tagREGISTERWORDA REGISTERWORDA; -alias tagREGISTERWORDA* PREGISTERWORDA; -alias tagREGISTERWORDA* NPREGISTERWORDA; -alias tagREGISTERWORDA* LPREGISTERWORDA; - -struct tagREGISTERWORDW { - LPWSTR lpReading; - LPWSTR lpWord; -} -alias tagREGISTERWORDW REGISTERWORDW; -alias tagREGISTERWORDW* PREGISTERWORDW; -alias tagREGISTERWORDW* NPREGISTERWORDW; -alias tagREGISTERWORDW* LPREGISTERWORDW; - -// #ifdef UNICODE -alias REGISTERWORDW REGISTERWORD; -alias PREGISTERWORDW PREGISTERWORD; -alias NPREGISTERWORDW NPREGISTERWORD; -alias LPREGISTERWORDW LPREGISTERWORD; -// #else -// ... -// #endif // UNICODE - -// #if (WINVER >= 0x040A) - -struct tagRECONVERTSTRING { - DWORD dwSize; - DWORD dwVersion; - DWORD dwStrLen; - DWORD dwStrOffset; - DWORD dwCompStrLen; - DWORD dwCompStrOffset; - DWORD dwTargetStrLen; - DWORD dwTargetStrOffset; -} -alias tagRECONVERTSTRING RECONVERTSTRING; -alias tagRECONVERTSTRING* PRECONVERTSTRING; -alias tagRECONVERTSTRING* NPRECONVERTSTRING; -alias tagRECONVERTSTRING* LPRECONVERTSTRING; - -// #endif /* WINVER >= 0x040A */ - -enum : uint { STYLE_DESCRIPTION_SIZE = 32 } - -struct tagSTYLEBUFA { - DWORD dwStyle; - CHAR szDescription[STYLE_DESCRIPTION_SIZE]; -} -alias tagSTYLEBUFA STYLEBUFA; -alias tagSTYLEBUFA* PSTYLEBUFA; -alias tagSTYLEBUFA* NPSTYLEBUFA; -alias tagSTYLEBUFA* LPSTYLEBUFA; - -struct tagSTYLEBUFW { - DWORD dwStyle; - WCHAR szDescription[STYLE_DESCRIPTION_SIZE]; -} -alias tagSTYLEBUFW STYLEBUFW; -alias tagSTYLEBUFW* PSTYLEBUFW; -alias tagSTYLEBUFW* NPSTYLEBUFW; -alias tagSTYLEBUFW* LPSTYLEBUFW; - -// #ifdef UNICODE -alias STYLEBUFW STYLEBUF; -alias PSTYLEBUFW PSTYLEBUF; -alias NPSTYLEBUFW NPSTYLEBUF; -alias LPSTYLEBUFW LPSTYLEBUF; -// #else -// ... -// #endif // UNICODE - -// #if (WINVER >= 0x040A) - -enum : uint { IMEMENUITEM_STRING_SIZE = 80 } - -struct tagIMEMENUITEMINFOA { - UINT cbSize; - UINT fType; - UINT fState; - UINT wID; - HBITMAP hbmpChecked; - HBITMAP hbmpUnchecked; - DWORD dwItemData; - CHAR szString[IMEMENUITEM_STRING_SIZE]; - HBITMAP hbmpItem; -} -alias tagIMEMENUITEMINFOA IMEMENUITEMINFOA; -alias tagIMEMENUITEMINFOA* PIMEMENUITEMINFOA; -alias tagIMEMENUITEMINFOA* NPIMEMENUITEMINFOA; -alias tagIMEMENUITEMINFOA* LPIMEMENUITEMINFOA; - -struct tagIMEMENUITEMINFOW { - UINT cbSize; - UINT fType; - UINT fState; - UINT wID; - HBITMAP hbmpChecked; - HBITMAP hbmpUnchecked; - DWORD dwItemData; - WCHAR szString[IMEMENUITEM_STRING_SIZE]; - HBITMAP hbmpItem; -} -alias tagIMEMENUITEMINFOW IMEMENUITEMINFOW; -alias tagIMEMENUITEMINFOW* PIMEMENUITEMINFOW; -alias tagIMEMENUITEMINFOW* NPIMEMENUITEMINFOW; -alias tagIMEMENUITEMINFOW* LPIMEMENUITEMINFOW; - -// #ifdef UNICODE -alias IMEMENUITEMINFOW IMEMENUITEMINFO; -alias PIMEMENUITEMINFOW PIMEMENUITEMINFO; -alias NPIMEMENUITEMINFOW NPIMEMENUITEMINFO; -alias LPIMEMENUITEMINFOW LPIMEMENUITEMINFO; -// #else -// ... -// #endif // UNICODE - -struct tagIMECHARPOSITION { - DWORD dwSize; - DWORD dwCharPos; - POINT pt; - UINT cLineHeight; - RECT rcDocument; -} -alias tagIMECHARPOSITION IMECHARPOSITION; -alias tagIMECHARPOSITION* PIMECHARPOSITION; -alias tagIMECHARPOSITION* NPIMECHARPOSITION; -alias tagIMECHARPOSITION* LPIMECHARPOSITION; - -extern(Windows) alias BOOL function(HIMC, LPARAM) IMCENUMPROC; - -// #endif /* WINVER >= 0x040A */ - -extern(Windows) export HKL ImmInstallIMEA( LPCSTR lpszIMEFileName, LPCSTR lpszLayoutText); -extern(Windows) export HKL ImmInstallIMEW( LPCWSTR lpszIMEFileName, LPCWSTR lpszLayoutText); -// #ifdef UNICODE -alias ImmInstallIMEW ImmInstallIME; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HWND ImmGetDefaultIMEWnd( HWND); - -extern(Windows) export UINT ImmGetDescriptionA( HKL, LPSTR, UINT uBufLen); -extern(Windows) export UINT ImmGetDescriptionW( HKL, LPWSTR, UINT uBufLen); -// #ifdef UNICODE -alias ImmGetDescriptionW ImmGetDescription; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export UINT ImmGetIMEFileNameA( HKL, LPSTR, UINT uBufLen); -extern(Windows) export UINT ImmGetIMEFileNameW( HKL, LPWSTR, UINT uBufLen); -// #ifdef UNICODE -alias ImmGetIMEFileNameW ImmGetIMEFileName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD ImmGetProperty( HKL, DWORD); - -extern(Windows) export BOOL ImmIsIME( HKL); - -extern(Windows) export BOOL ImmSimulateHotKey( HWND, DWORD); - -extern(Windows) export HIMC ImmCreateContext(); -extern(Windows) export BOOL ImmDestroyContext( HIMC); -extern(Windows) export HIMC ImmGetContext( HWND); -extern(Windows) export BOOL ImmReleaseContext( HWND, HIMC); -extern(Windows) export HIMC ImmAssociateContext( HWND, HIMC); -// #if (WINVER >= 0x040A) -extern(Windows) export BOOL ImmAssociateContextEx( HWND, HIMC, DWORD); -// #endif /* WINVER >= 0x040A */ - -extern(Windows) export LONG ImmGetCompositionStringA( HIMC, DWORD, LPVOID, DWORD); -extern(Windows) export LONG ImmGetCompositionStringW( HIMC, DWORD, LPVOID, DWORD); -// #ifdef UNICODE -alias ImmGetCompositionStringW ImmGetCompositionString; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ImmSetCompositionStringA( HIMC, DWORD dwIndex, LPVOID lpComp, DWORD, LPVOID lpRead, DWORD); -extern(Windows) export BOOL ImmSetCompositionStringW( HIMC, DWORD dwIndex, LPVOID lpComp, DWORD, LPVOID lpRead, DWORD); -// #ifdef UNICODE -alias ImmSetCompositionStringW ImmSetCompositionString; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD ImmGetCandidateListCountA( HIMC, LPDWORD lpdwListCount); -extern(Windows) export DWORD ImmGetCandidateListCountW( HIMC, LPDWORD lpdwListCount); -// #ifdef UNICODE -alias ImmGetCandidateListCountW ImmGetCandidateListCount; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD ImmGetCandidateListA( HIMC, DWORD deIndex, LPCANDIDATELIST, DWORD dwBufLen); -extern(Windows) export DWORD ImmGetCandidateListW( HIMC, DWORD deIndex, LPCANDIDATELIST, DWORD dwBufLen); -// #ifdef UNICODE -alias ImmGetCandidateListW ImmGetCandidateList; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD ImmGetGuideLineA( HIMC, DWORD dwIndex, LPSTR, DWORD dwBufLen); -extern(Windows) export DWORD ImmGetGuideLineW( HIMC, DWORD dwIndex, LPWSTR, DWORD dwBufLen); -// #ifdef UNICODE -alias ImmGetGuideLineW ImmGetGuideLine; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ImmGetConversionStatus( HIMC, LPDWORD, LPDWORD); -extern(Windows) export BOOL ImmSetConversionStatus( HIMC, DWORD, DWORD); -extern(Windows) export BOOL ImmGetOpenStatus( HIMC); -extern(Windows) export BOOL ImmSetOpenStatus( HIMC, BOOL); - -// #if defined(_WINGDI_) && !defined(NOGDI) -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE -// #endif // defined(_WINGDI_) && !defined(NOGDI) - -extern(Windows) export BOOL ImmConfigureIMEA( HKL, HWND, DWORD, LPVOID); -extern(Windows) export BOOL ImmConfigureIMEW( HKL, HWND, DWORD, LPVOID); -// #ifdef UNICODE -alias ImmConfigureIMEW ImmConfigureIME; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LRESULT ImmEscapeA( HKL, HIMC, UINT, LPVOID); -extern(Windows) export LRESULT ImmEscapeW( HKL, HIMC, UINT, LPVOID); -// #ifdef UNICODE -alias ImmEscapeW ImmEscape; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD ImmGetConversionListA( HKL, HIMC, LPCSTR, LPCANDIDATELIST, DWORD dwBufLen, UINT uFlag); -extern(Windows) export DWORD ImmGetConversionListW( HKL, HIMC, LPCWSTR, LPCANDIDATELIST, DWORD dwBufLen, UINT uFlag); -// #ifdef UNICODE -alias ImmGetConversionListW ImmGetConversionList; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ImmNotifyIME( HIMC, DWORD dwAction, DWORD dwIndex, DWORD dwValue); - -extern(Windows) export BOOL ImmGetStatusWindowPos( HIMC, LPPOINT); -extern(Windows) export BOOL ImmSetStatusWindowPos( HIMC, LPPOINT); -extern(Windows) export BOOL ImmGetCompositionWindow( HIMC, LPCOMPOSITIONFORM); -extern(Windows) export BOOL ImmSetCompositionWindow( HIMC, LPCOMPOSITIONFORM); -extern(Windows) export BOOL ImmGetCandidateWindow( HIMC, DWORD, LPCANDIDATEFORM); -extern(Windows) export BOOL ImmSetCandidateWindow( HIMC, LPCANDIDATEFORM); - -extern(Windows) export BOOL ImmIsUIMessageA( HWND, UINT, WPARAM, LPARAM); -extern(Windows) export BOOL ImmIsUIMessageW( HWND, UINT, WPARAM, LPARAM); -// #ifdef UNICODE -alias ImmIsUIMessageW ImmIsUIMessage; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export UINT ImmGetVirtualKey( HWND); - -extern(Windows) alias int function(LPCSTR, DWORD, LPCSTR, LPVOID) REGISTERWORDENUMPROCA; -extern(Windows) alias int function(LPCWSTR, DWORD, LPCWSTR, LPVOID) REGISTERWORDENUMPROCW; -// #ifdef UNICODE -alias REGISTERWORDENUMPROCW REGISTERWORDENUMPROC; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ImmRegisterWordA( HKL, LPCSTR lpszReading, DWORD, LPCSTR lpszRegister); -extern(Windows) export BOOL ImmRegisterWordW( HKL, LPCWSTR lpszReading, DWORD, LPCWSTR lpszRegister); -// #ifdef UNICODE -alias ImmRegisterWordW ImmRegisterWord; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ImmUnregisterWordA( HKL, LPCSTR lpszReading, DWORD, LPCSTR lpszUnregister); -extern(Windows) export BOOL ImmUnregisterWordW( HKL, LPCWSTR lpszReading, DWORD, LPCWSTR lpszUnregister); -// #ifdef UNICODE -alias ImmUnregisterWordW ImmUnregisterWord; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export UINT ImmGetRegisterWordStyleA( HKL, UINT nItem, LPSTYLEBUFA); -extern(Windows) export UINT ImmGetRegisterWordStyleW( HKL, UINT nItem, LPSTYLEBUFW); -// #ifdef UNICODE -alias ImmGetRegisterWordStyleW ImmGetRegisterWordStyle; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export UINT ImmEnumRegisterWordA( HKL, REGISTERWORDENUMPROCA, LPCSTR lpszReading, DWORD, LPCSTR lpszRegister, LPVOID); -extern(Windows) export UINT ImmEnumRegisterWordW( HKL, REGISTERWORDENUMPROCW, LPCWSTR lpszReading, DWORD, LPCWSTR lpszRegister, LPVOID); -// #ifdef UNICODE -alias ImmEnumRegisterWordW ImmEnumRegisterWord; -// #else -// #... -// #endif // !UNICODE - -// #if (WINVER >= 0x040A) -extern(Windows) export BOOL ImmDisableIME( DWORD); -extern(Windows) export BOOL ImmEnumInputContext(DWORD idThread, IMCENUMPROC lpfn, LPARAM lParam); -extern(Windows) export DWORD ImmGetImeMenuItemsA( HIMC, DWORD, DWORD, LPIMEMENUITEMINFOA, LPIMEMENUITEMINFOA, DWORD); -extern(Windows) export DWORD ImmGetImeMenuItemsW( HIMC, DWORD, DWORD, LPIMEMENUITEMINFOW, LPIMEMENUITEMINFOW, DWORD); -// #ifdef UNICODE -alias ImmGetImeMenuItemsW ImmGetImeMenuItems; -// #else -// #... -// #endif // !UNICODE -// #endif /* WINVER >= 0x040A */ - -enum : uint { IMC_GETCANDIDATEPOS = 0x0007 } -enum : uint { IMC_SETCANDIDATEPOS = 0x0008 } -enum : uint { IMC_GETCOMPOSITIONFONT = 0x0009 } -enum : uint { IMC_SETCOMPOSITIONFONT = 0x000A } -enum : uint { IMC_GETCOMPOSITIONWINDOW = 0x000B } -enum : uint { IMC_SETCOMPOSITIONWINDOW = 0x000C } -enum : uint { IMC_GETSTATUSWINDOWPOS = 0x000F } -enum : uint { IMC_SETSTATUSWINDOWPOS = 0x0010 } -enum : uint { IMC_CLOSESTATUSWINDOW = 0x0021 } -enum : uint { IMC_OPENSTATUSWINDOW = 0x0022 } - -enum : uint { NI_OPENCANDIDATE = 0x0010 } -enum : uint { NI_CLOSECANDIDATE = 0x0011 } -enum : uint { NI_SELECTCANDIDATESTR = 0x0012 } -enum : uint { NI_CHANGECANDIDATELIST = 0x0013 } -enum : uint { NI_FINALIZECONVERSIONRESULT = 0x0014 } -enum : uint { NI_COMPOSITIONSTR = 0x0015 } -enum : uint { NI_SETCANDIDATE_PAGESTART = 0x0016 } -enum : uint { NI_SETCANDIDATE_PAGESIZE = 0x0017 } -enum : uint { NI_IMEMENUSELECTED = 0x0018 } - -enum : uint { ISC_SHOWUICANDIDATEWINDOW = 0x00000001 } -enum : uint { ISC_SHOWUICOMPOSITIONWINDOW = 0x80000000 } -enum : uint { ISC_SHOWUIGUIDELINE = 0x40000000 } -enum : uint { ISC_SHOWUIALLCANDIDATEWINDOW = 0x0000000F } -enum : uint { ISC_SHOWUIALL = 0xC000000F } - -enum : uint { CPS_COMPLETE = 0x0001 } -enum : uint { CPS_CONVERT = 0x0002 } -enum : uint { CPS_REVERT = 0x0003 } -enum : uint { CPS_CANCEL = 0x0004 } - -enum : uint { MOD_ALT = 0x0001 } -enum : uint { MOD_CONTROL = 0x0002 } -enum : uint { MOD_SHIFT = 0x0004 } - -enum : uint { MOD_LEFT = 0x8000 } -enum : uint { MOD_RIGHT = 0x4000 } - -enum : uint { MOD_ON_KEYUP = 0x0800 } -enum : uint { MOD_IGNORE_ALL_MODIFIER = 0x0400 } - -enum : uint { IME_CHOTKEY_IME_NONIME_TOGGLE = 0x10 } -enum : uint { IME_CHOTKEY_SHAPE_TOGGLE = 0x11 } -enum : uint { IME_CHOTKEY_SYMBOL_TOGGLE = 0x12 } - -enum : uint { IME_JHOTKEY_CLOSE_OPEN = 0x30 } - -enum : uint { IME_KHOTKEY_SHAPE_TOGGLE = 0x50 } -enum : uint { IME_KHOTKEY_HANJACONVERT = 0x51 } -enum : uint { IME_KHOTKEY_ENGLISH = 0x52 } - -enum : uint { IME_THOTKEY_IME_NONIME_TOGGLE = 0x70 } -enum : uint { IME_THOTKEY_SHAPE_TOGGLE = 0x71 } -enum : uint { IME_THOTKEY_SYMBOL_TOGGLE = 0x72 } - -enum : uint { IME_HOTKEY_DSWITCH_FIRST = 0x100 } -enum : uint { IME_HOTKEY_DSWITCH_LAST = 0x11F } - -enum : uint { IME_HOTKEY_PRIVATE_FIRST = 0x200 } -enum : uint { IME_ITHOTKEY_RESEND_RESULTSTR = 0x200 } -enum : uint { IME_ITHOTKEY_PREVIOUS_COMPOSITION = 0x201 } -enum : uint { IME_ITHOTKEY_UISTYLE_TOGGLE = 0x202 } -enum : uint { IME_ITHOTKEY_RECONVERTSTRING = 0x203 } -enum : uint { IME_HOTKEY_PRIVATE_LAST = 0x21F } - -enum : uint { GCS_COMPREADSTR = 0x0001 } -enum : uint { GCS_COMPREADATTR = 0x0002 } -enum : uint { GCS_COMPREADCLAUSE = 0x0004 } -enum : uint { GCS_COMPSTR = 0x0008 } -enum : uint { GCS_COMPATTR = 0x0010 } -enum : uint { GCS_COMPCLAUSE = 0x0020 } -enum : uint { GCS_CURSORPOS = 0x0080 } -enum : uint { GCS_DELTASTART = 0x0100 } -enum : uint { GCS_RESULTREADSTR = 0x0200 } -enum : uint { GCS_RESULTREADCLAUSE = 0x0400 } -enum : uint { GCS_RESULTSTR = 0x0800 } -enum : uint { GCS_RESULTCLAUSE = 0x1000 } - -enum : uint { CS_INSERTCHAR = 0x2000 } -enum : uint { CS_NOMOVECARET = 0x4000 } - -enum : uint { IMEVER_0310 = 0x0003000A } -enum : uint { IMEVER_0400 = 0x00040000 } - -enum : uint { IME_PROP_AT_CARET = 0x00010000 } -enum : uint { IME_PROP_SPECIAL_UI = 0x00020000 } -enum : uint { IME_PROP_CANDLIST_START_FROM_1 = 0x00040000 } -enum : uint { IME_PROP_UNICODE = 0x00080000 } -enum : uint { IME_PROP_COMPLETE_ON_UNSELECT = 0x00100000 } - -enum : uint { UI_CAP_2700 = 0x00000001 } -enum : uint { UI_CAP_ROT90 = 0x00000002 } -enum : uint { UI_CAP_ROTANY = 0x00000004 } - -enum : uint { SCS_CAP_COMPSTR = 0x00000001 } -enum : uint { SCS_CAP_MAKEREAD = 0x00000002 } -enum : uint { SCS_CAP_SETRECONVERTSTRING = 0x00000004 } - -enum : uint { SELECT_CAP_CONVERSION = 0x00000001 } -enum : uint { SELECT_CAP_SENTENCE = 0x00000002 } - -enum : uint { GGL_LEVEL = 0x00000001 } -enum : uint { GGL_INDEX = 0x00000002 } -enum : uint { GGL_STRING = 0x00000003 } -enum : uint { GGL_PRIVATE = 0x00000004 } - -enum : uint { GL_LEVEL_NOGUIDELINE = 0x00000000 } -enum : uint { GL_LEVEL_FATAL = 0x00000001 } -enum : uint { GL_LEVEL_ERROR = 0x00000002 } -enum : uint { GL_LEVEL_WARNING = 0x00000003 } -enum : uint { GL_LEVEL_INFORMATION = 0x00000004 } - -enum : uint { GL_ID_UNKNOWN = 0x00000000 } -enum : uint { GL_ID_NOMODULE = 0x00000001 } -enum : uint { GL_ID_NODICTIONARY = 0x00000010 } -enum : uint { GL_ID_CANNOTSAVE = 0x00000011 } -enum : uint { GL_ID_NOCONVERT = 0x00000020 } -enum : uint { GL_ID_TYPINGERROR = 0x00000021 } -enum : uint { GL_ID_TOOMANYSTROKE = 0x00000022 } -enum : uint { GL_ID_READINGCONFLICT = 0x00000023 } -enum : uint { GL_ID_INPUTREADING = 0x00000024 } -enum : uint { GL_ID_INPUTRADICAL = 0x00000025 } -enum : uint { GL_ID_INPUTCODE = 0x00000026 } -enum : uint { GL_ID_INPUTSYMBOL = 0x00000027 } -enum : uint { GL_ID_CHOOSECANDIDATE = 0x00000028 } -enum : uint { GL_ID_REVERSECONVERSION = 0x00000029 } -enum : uint { GL_ID_PRIVATE_FIRST = 0x00008000 } -enum : uint { GL_ID_PRIVATE_LAST = 0x0000FFFF } - -const DWORD IGP_GETIMEVERSION = cast(DWORD)-4; -enum : uint { IGP_PROPERTY = 0x00000004 } -enum : uint { IGP_CONVERSION = 0x00000008 } -enum : uint { IGP_SENTENCE = 0x0000000c } -enum : uint { IGP_UI = 0x00000010 } -enum : uint { IGP_SETCOMPSTR = 0x00000014 } -enum : uint { IGP_SELECT = 0x00000018 } - -const uint SCS_SETSTR = GCS_COMPREADSTR|GCS_COMPSTR; -const uint SCS_CHANGEATTR = GCS_COMPREADATTR|GCS_COMPATTR; -const uint SCS_CHANGECLAUSE = GCS_COMPREADCLAUSE|GCS_COMPCLAUSE; -enum : uint { SCS_SETRECONVERTSTRING = 0x00010000 } -enum : uint { SCS_QUERYRECONVERTSTRING = 0x00020000 } - -enum : uint { ATTR_INPUT = 0x00 } -enum : uint { ATTR_TARGET_CONVERTED = 0x01 } -enum : uint { ATTR_CONVERTED = 0x02 } -enum : uint { ATTR_TARGET_NOTCONVERTED = 0x03 } -enum : uint { ATTR_INPUT_ERROR = 0x04 } -enum : uint { ATTR_FIXEDCONVERTED = 0x05 } - -enum : uint { CFS_DEFAULT = 0x0000 } -enum : uint { CFS_RECT = 0x0001 } -enum : uint { CFS_POINT = 0x0002 } -enum : uint { CFS_FORCE_POSITION = 0x0020 } -enum : uint { CFS_CANDIDATEPOS = 0x0040 } -enum : uint { CFS_EXCLUDE = 0x0080 } - -enum : uint { GCL_CONVERSION = 0x0001 } -enum : uint { GCL_REVERSECONVERSION = 0x0002 } -enum : uint { GCL_REVERSE_LENGTH = 0x0003 } - -enum : uint { IME_CMODE_ALPHANUMERIC = 0x0000 } -enum : uint { IME_CMODE_NATIVE = 0x0001 } -alias IME_CMODE_NATIVE IME_CMODE_CHINESE; - -alias IME_CMODE_NATIVE IME_CMODE_HANGEUL; -alias IME_CMODE_NATIVE IME_CMODE_HANGUL; -alias IME_CMODE_NATIVE IME_CMODE_JAPANESE; -enum : uint { IME_CMODE_KATAKANA = 0x0002 } -enum : uint { IME_CMODE_LANGUAGE = 0x0003 } -enum : uint { IME_CMODE_FULLSHAPE = 0x0008 } -enum : uint { IME_CMODE_ROMAN = 0x0010 } -enum : uint { IME_CMODE_CHARCODE = 0x0020 } -enum : uint { IME_CMODE_HANJACONVERT = 0x0040 } -enum : uint { IME_CMODE_SOFTKBD = 0x0080 } -enum : uint { IME_CMODE_NOCONVERSION = 0x0100 } -enum : uint { IME_CMODE_EUDC = 0x0200 } -enum : uint { IME_CMODE_SYMBOL = 0x0400 } -enum : uint { IME_CMODE_FIXED = 0x0800 } - -enum : uint { IME_SMODE_NONE = 0x0000 } -enum : uint { IME_SMODE_PLAURALCLAUSE = 0x0001 } -enum : uint { IME_SMODE_SINGLECONVERT = 0x0002 } -enum : uint { IME_SMODE_AUTOMATIC = 0x0004 } -enum : uint { IME_SMODE_PHRASEPREDICT = 0x0008 } -enum : uint { IME_SMODE_CONVERSATION = 0x0010 } - -enum : uint { IME_CAND_UNKNOWN = 0x0000 } -enum : uint { IME_CAND_READ = 0x0001 } -enum : uint { IME_CAND_CODE = 0x0002 } -enum : uint { IME_CAND_MEANING = 0x0003 } -enum : uint { IME_CAND_RADICAL = 0x0004 } -enum : uint { IME_CAND_STROKE = 0x0005 } - -enum : uint { IMN_CLOSESTATUSWINDOW = 0x0001 } -enum : uint { IMN_OPENSTATUSWINDOW = 0x0002 } -enum : uint { IMN_CHANGECANDIDATE = 0x0003 } -enum : uint { IMN_CLOSECANDIDATE = 0x0004 } -enum : uint { IMN_OPENCANDIDATE = 0x0005 } -enum : uint { IMN_SETCONVERSIONMODE = 0x0006 } -enum : uint { IMN_SETSENTENCEMODE = 0x0007 } -enum : uint { IMN_SETOPENSTATUS = 0x0008 } -enum : uint { IMN_SETCANDIDATEPOS = 0x0009 } -enum : uint { IMN_SETCOMPOSITIONFONT = 0x000A } -enum : uint { IMN_SETCOMPOSITIONWINDOW = 0x000B } -enum : uint { IMN_SETSTATUSWINDOWPOS = 0x000C } -enum : uint { IMN_GUIDELINE = 0x000D } -enum : uint { IMN_PRIVATE = 0x000E } - -// #if (WINVER >= 0x040A) - -enum : uint { IMR_COMPOSITIONWINDOW = 0x0001 } -enum : uint { IMR_CANDIDATEWINDOW = 0x0002 } -enum : uint { IMR_COMPOSITIONFONT = 0x0003 } -enum : uint { IMR_RECONVERTSTRING = 0x0004 } -enum : uint { IMR_CONFIRMRECONVERTSTRING = 0x0005 } -enum : uint { IMR_QUERYCHARPOSITION = 0x0006 } -enum : uint { IMR_DOCUMENTFEED = 0x0007 } -// #endif /* WINVER >= 0x040A */ - -enum { IMM_ERROR_NODATA = -1 } -enum { IMM_ERROR_GENERAL = -2 } - -enum : uint { IME_CONFIG_GENERAL = 1 } -enum : uint { IME_CONFIG_REGISTERWORD = 2 } -enum : uint { IME_CONFIG_SELECTDICTIONARY = 3 } - -enum : uint { IME_ESC_QUERY_SUPPORT = 0x0003 } -enum : uint { IME_ESC_RESERVED_FIRST = 0x0004 } -enum : uint { IME_ESC_RESERVED_LAST = 0x07FF } -enum : uint { IME_ESC_PRIVATE_FIRST = 0x0800 } -enum : uint { IME_ESC_PRIVATE_LAST = 0x0FFF } - -enum : uint { IME_ESC_SEQUENCE_TO_INTERNAL = 0x1001 } -enum : uint { IME_ESC_GET_EUDC_DICTIONARY = 0x1003 } -enum : uint { IME_ESC_SET_EUDC_DICTIONARY = 0x1004 } -enum : uint { IME_ESC_MAX_KEY = 0x1005 } -enum : uint { IME_ESC_IME_NAME = 0x1006 } -enum : uint { IME_ESC_SYNC_HOTKEY = 0x1007 } -enum : uint { IME_ESC_HANJA_MODE = 0x1008 } -enum : uint { IME_ESC_AUTOMATA = 0x1009 } -enum : uint { IME_ESC_PRIVATE_HOTKEY = 0x100a } -enum : uint { IME_ESC_GETHELPFILENAME = 0x100b } - -enum : uint { IME_REGWORD_STYLE_EUDC = 0x00000001 } -enum : uint { IME_REGWORD_STYLE_USER_FIRST = 0x80000000 } -enum : uint { IME_REGWORD_STYLE_USER_LAST = 0xFFFFFFFF } - -// #if (WINVER >= 0x040A) - -enum : uint { IACE_CHILDREN = 0x0001 } -enum : uint { IACE_DEFAULT = 0x0010 } -enum : uint { IACE_IGNORENOCONTEXT = 0x0020 } - -enum : uint { IGIMIF_RIGHTMENU = 0x0001 } - -enum : uint { IGIMII_CMODE = 0x0001 } -enum : uint { IGIMII_SMODE = 0x0002 } -enum : uint { IGIMII_CONFIGURE = 0x0004 } -enum : uint { IGIMII_TOOLS = 0x0008 } -enum : uint { IGIMII_HELP = 0x0010 } -enum : uint { IGIMII_OTHER = 0x0020 } -enum : uint { IGIMII_INPUTTOOLS = 0x0040 } - -enum : uint { IMFT_RADIOCHECK = 0x00001 } -enum : uint { IMFT_SEPARATOR = 0x00002 } -enum : uint { IMFT_SUBMENU = 0x00004 } - -alias MFS_GRAYED IMFS_GRAYED; -alias MFS_DISABLED IMFS_DISABLED; -alias MFS_CHECKED IMFS_CHECKED; -alias MFS_HILITE IMFS_HILITE; -alias MFS_ENABLED IMFS_ENABLED; -alias MFS_UNCHECKED IMFS_UNCHECKED; -alias MFS_UNHILITE IMFS_UNHILITE; -alias MFS_DEFAULT IMFS_DEFAULT; - -// #endif /* WINVER >= 0x040A */ - -enum : uint { SOFTKEYBOARD_TYPE_T1 = 0x0001 } - -enum : uint { SOFTKEYBOARD_TYPE_C1 = 0x0002 } - -// #endif // _IMM_SDK_DEFINED_ - -// #ifdef __cplusplus -// } -// #endif - -// #endif // _IMM_ +/***********************************************************************\ +* imm.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.imm; +pragma(lib, "imm32.lib"); + +import win32.windef, win32.wingdi; +import win32.winuser; // for the MFS_xxx enums. +private import win32.w32api; + +const WM_CONVERTREQUESTEX = 0x108; +const WM_IME_STARTCOMPOSITION = 0x10D; +const WM_IME_ENDCOMPOSITION = 0x10E; +const WM_IME_COMPOSITION = 0x10F; +const WM_IME_KEYLAST = 0x10F; +const WM_IME_SETCONTEXT = 0x281; +const WM_IME_NOTIFY = 0x282; +const WM_IME_CONTROL = 0x283; +const WM_IME_COMPOSITIONFULL = 0x284; +const WM_IME_SELECT = 0x285; +const WM_IME_CHAR = 0x286; +static if (WINVER >= 0x500) { + const WM_IME_REQUEST = 0x288; +} +const WM_IME_KEYDOWN = 0x290; +const WM_IME_KEYUP = 0x291; + + +const IMC_GETCANDIDATEPOS=7; +const IMC_SETCANDIDATEPOS=8; +const IMC_GETCOMPOSITIONFONT=9; +const IMC_SETCOMPOSITIONFONT=10; +const IMC_GETCOMPOSITIONWINDOW=11; +const IMC_SETCOMPOSITIONWINDOW=12; +const IMC_GETSTATUSWINDOWPOS=15; +const IMC_SETSTATUSWINDOWPOS=16; +const IMC_CLOSESTATUSWINDOW=0x21; +const IMC_OPENSTATUSWINDOW=0x22; +const IMN_CLOSESTATUSWINDOW=1; +const IMN_OPENSTATUSWINDOW=2; +const IMN_CHANGECANDIDATE=3; +const IMN_CLOSECANDIDATE=4; +const IMN_OPENCANDIDATE=5; +const IMN_SETCONVERSIONMODE=6; +const IMN_SETSENTENCEMODE=7; +const IMN_SETOPENSTATUS=8; +const IMN_SETCANDIDATEPOS=9; +const IMN_SETCOMPOSITIONFONT=10; +const IMN_SETCOMPOSITIONWINDOW=11; +const IMN_SETSTATUSWINDOWPOS=12; +const IMN_GUIDELINE=13; +const IMN_PRIVATE=14; + +const NI_OPENCANDIDATE=16; +const NI_CLOSECANDIDATE=17; +const NI_SELECTCANDIDATESTR=18; +const NI_CHANGECANDIDATELIST=19; +const NI_FINALIZECONVERSIONRESULT=20; +const NI_COMPOSITIONSTR=21; +const NI_SETCANDIDATE_PAGESTART=22; +const NI_SETCANDIDATE_PAGESIZE=23; +const NI_IMEMENUSELECTED=24; + +const ISC_SHOWUICANDIDATEWINDOW=1; +const ISC_SHOWUICOMPOSITIONWINDOW=0x80000000; +const ISC_SHOWUIGUIDELINE=0x40000000; +const ISC_SHOWUIALLCANDIDATEWINDOW=15; +const ISC_SHOWUIALL=0xC000000F; + +const CPS_COMPLETE=1; +const CPS_CONVERT=2; +const CPS_REVERT=3; +const CPS_CANCEL=4; + +const IME_CHOTKEY_IME_NONIME_TOGGLE=16; +const IME_CHOTKEY_SHAPE_TOGGLE=17; +const IME_CHOTKEY_SYMBOL_TOGGLE=18; +const IME_JHOTKEY_CLOSE_OPEN=0x30; +const IME_KHOTKEY_SHAPE_TOGGLE=0x50; +const IME_KHOTKEY_HANJACONVERT=0x51; +const IME_KHOTKEY_ENGLISH=0x52; +const IME_THOTKEY_IME_NONIME_TOGGLE=0x70; +const IME_THOTKEY_SHAPE_TOGGLE=0x71; +const IME_THOTKEY_SYMBOL_TOGGLE=0x72; +const IME_HOTKEY_DSWITCH_FIRST=256; +const IME_HOTKEY_DSWITCH_LAST=0x11F; +const IME_ITHOTKEY_RESEND_RESULTSTR=512; +const IME_ITHOTKEY_PREVIOUS_COMPOSITION=513; +const IME_ITHOTKEY_UISTYLE_TOGGLE=514; + +const GCS_COMPREADSTR=1; +const GCS_COMPREADATTR=2; +const GCS_COMPREADCLAUSE=4; +const GCS_COMPSTR=8; +const GCS_COMPATTR=16; +const GCS_COMPCLAUSE=32; +const GCS_CURSORPOS=128; +const GCS_DELTASTART=256; +const GCS_RESULTREADSTR=512; +const GCS_RESULTREADCLAUSE=1024; +const GCS_RESULTSTR=2048; +const GCS_RESULTCLAUSE=4096; + +const CS_INSERTCHAR=0x2000; +const CS_NOMOVECARET=0x4000; + +const IMEVER_0310=0x3000A; +const IMEVER_0400=0x40000; + +const IME_PROP_AT_CARET=0x10000; +const IME_PROP_SPECIAL_UI=0x20000; +const IME_PROP_CANDLIST_START_FROM_1=0x40000; +const IME_PROP_UNICODE=0x80000; + +const UI_CAP_2700=1; +const UI_CAP_ROT90=2; +const UI_CAP_ROTANY=4; + +const SCS_CAP_COMPSTR=1; +const SCS_CAP_MAKEREAD=2; +const SELECT_CAP_CONVERSION=1; +const SELECT_CAP_SENTENCE=2; +const GGL_LEVEL=1; +const GGL_INDEX=2; +const GGL_STRING=3; +const GGL_PRIVATE=4; +const GL_LEVEL_NOGUIDELINE=0; +const GL_LEVEL_FATAL=1; +const GL_LEVEL_ERROR=2; +const GL_LEVEL_WARNING=3; +const GL_LEVEL_INFORMATION=4; +const GL_ID_UNKNOWN=0; +const GL_ID_NOMODULE=1; +const GL_ID_NODICTIONARY=16; +const GL_ID_CANNOTSAVE=17; +const GL_ID_NOCONVERT=32; +const GL_ID_TYPINGERROR=33; +const GL_ID_TOOMANYSTROKE=34; +const GL_ID_READINGCONFLICT=35; +const GL_ID_INPUTREADING=36; +const GL_ID_INPUTRADICAL=37; +const GL_ID_INPUTCODE=38; +const GL_ID_INPUTSYMBOL=39; +const GL_ID_CHOOSECANDIDATE=40; +const GL_ID_REVERSECONVERSION=41; +const GL_ID_PRIVATE_FIRST=0x8000; +const GL_ID_PRIVATE_LAST=0xFFFF; + +const DWORD IGP_GETIMEVERSION = -4; +const IGP_PROPERTY=4; +const IGP_CONVERSION=8; +const IGP_SENTENCE=12; +const IGP_UI=16; +const IGP_SETCOMPSTR=0x14; +const IGP_SELECT=0x18; + +const SCS_SETSTR = GCS_COMPREADSTR|GCS_COMPSTR; +const SCS_CHANGEATTR = GCS_COMPREADATTR|GCS_COMPATTR; +const SCS_CHANGECLAUSE = GCS_COMPREADCLAUSE|GCS_COMPCLAUSE; + +const ATTR_INPUT=0; +const ATTR_TARGET_CONVERTED=1; +const ATTR_CONVERTED=2; +const ATTR_TARGET_NOTCONVERTED=3; +const ATTR_INPUT_ERROR=4; +const ATTR_FIXEDCONVERTED=5; +const CFS_DEFAULT=0; +const CFS_RECT=1; +const CFS_POINT=2; +const CFS_SCREEN=4; +const CFS_FORCE_POSITION=32; +const CFS_CANDIDATEPOS=64; +const CFS_EXCLUDE=128; +const GCL_CONVERSION=1; +const GCL_REVERSECONVERSION=2; +const GCL_REVERSE_LENGTH=3; + +const IME_CMODE_ALPHANUMERIC=0; +const IME_CMODE_NATIVE=1; +const IME_CMODE_CHINESE=IME_CMODE_NATIVE; +const IME_CMODE_HANGEUL=IME_CMODE_NATIVE; +const IME_CMODE_HANGUL=IME_CMODE_NATIVE; +const IME_CMODE_JAPANESE=IME_CMODE_NATIVE; +const IME_CMODE_KATAKANA=2; +const IME_CMODE_LANGUAGE=3; +const IME_CMODE_FULLSHAPE=8; +const IME_CMODE_ROMAN=16; +const IME_CMODE_CHARCODE=32; +const IME_CMODE_HANJACONVERT=64; +const IME_CMODE_SOFTKBD=128; +const IME_CMODE_NOCONVERSION=256; +const IME_CMODE_EUDC=512; +const IME_CMODE_SYMBOL=1024; +const IME_CMODE_FIXED=2048; +const IME_SMODE_NONE=0; +const IME_SMODE_PLAURALCLAUSE=1; +const IME_SMODE_SINGLECONVERT=2; +const IME_SMODE_AUTOMATIC=4; +const IME_SMODE_PHRASEPREDICT=8; +const IME_CAND_UNKNOWN=0; +const IME_CAND_READ=1; +const IME_CAND_CODE=2; +const IME_CAND_MEANING=3; +const IME_CAND_RADICAL=4; +const IME_CAND_STROKE=5; +const IMM_ERROR_NODATA=(-1); +const IMM_ERROR_GENERAL=(-2); +const IME_CONFIG_GENERAL=1; +const IME_CONFIG_REGISTERWORD=2; +const IME_CONFIG_SELECTDICTIONARY=3; +const IME_ESC_QUERY_SUPPORT=3; +const IME_ESC_RESERVED_FIRST=4; +const IME_ESC_RESERVED_LAST=0x7FF; +const IME_ESC_PRIVATE_FIRST=0x800; +const IME_ESC_PRIVATE_LAST=0xFFF; +const IME_ESC_SEQUENCE_TO_INTERNAL=0x1001; +const IME_ESC_GET_EUDC_DICTIONARY=0x1003; +const IME_ESC_SET_EUDC_DICTIONARY=0x1004; +const IME_ESC_MAX_KEY=0x1005; +const IME_ESC_IME_NAME=0x1006; +const IME_ESC_SYNC_HOTKEY=0x1007; +const IME_ESC_HANJA_MODE=0x1008; +const IME_ESC_AUTOMATA=0x1009; +const IME_REGWORD_STYLE_EUDC=1; +const IME_REGWORD_STYLE_USER_FIRST=0x80000000; +const IME_REGWORD_STYLE_USER_LAST=0xFFFFFFFF; + +const SOFTKEYBOARD_TYPE_T1=1; +const SOFTKEYBOARD_TYPE_C1=2; + +const IMEMENUITEM_STRING_SIZE=80; + +const MOD_ALT=1; +const MOD_CONTROL=2; +const MOD_SHIFT=4; +const MOD_WIN=8; +const MOD_IGNORE_ALL_MODIFIER=1024; +const MOD_ON_KEYUP=2048; +const MOD_RIGHT=16384; +const MOD_LEFT=32768; + +const IACE_CHILDREN=1; +const IACE_DEFAULT=16; +const IACE_IGNORENOCONTEXT=32; + +const IGIMIF_RIGHTMENU=1; + +const IGIMII_CMODE=1; +const IGIMII_SMODE=2; +const IGIMII_CONFIGURE=4; +const IGIMII_TOOLS=8; +const IGIMII_HELP=16; +const IGIMII_OTHER=32; +const IGIMII_INPUTTOOLS=64; + +const IMFT_RADIOCHECK=1; +const IMFT_SEPARATOR=2; +const IMFT_SUBMENU=4; + +const IMFS_GRAYED=MFS_GRAYED; +const IMFS_DISABLED=MFS_DISABLED; +const IMFS_CHECKED=MFS_CHECKED; +const IMFS_HILITE=MFS_HILITE; +const IMFS_ENABLED=MFS_ENABLED; +const IMFS_UNCHECKED=MFS_UNCHECKED; +const IMFS_UNHILITE=MFS_UNHILITE; +const IMFS_DEFAULT=MFS_DEFAULT; + +const STYLE_DESCRIPTION_SIZE=32; + +alias DWORD HIMC; +alias DWORD HIMCC; +alias HKL* LPHKL; + +struct COMPOSITIONFORM{ + DWORD dwStyle; + POINT ptCurrentPos; + RECT rcArea; +} +alias COMPOSITIONFORM* PCOMPOSITIONFORM, LPCOMPOSITIONFORM; + +struct CANDIDATEFORM{ + DWORD dwIndex; + DWORD dwStyle; + POINT ptCurrentPos; + RECT rcArea; +} +alias CANDIDATEFORM* PCANDIDATEFORM, LPCANDIDATEFORM; + +struct CANDIDATELIST{ + DWORD dwSize; + DWORD dwStyle; + DWORD dwCount; + DWORD dwSelection; + DWORD dwPageStart; + DWORD dwPageSize; + DWORD dwOffset[1]; +} +alias CANDIDATELIST* PCANDIDATELIST, LPCANDIDATELIST; + +struct REGISTERWORDA{ + LPSTR lpReading; + LPSTR lpWord; +} +alias REGISTERWORDA* PREGISTERWORDA, LPREGISTERWORDA; + +struct REGISTERWORDW{ + LPWSTR lpReading; + LPWSTR lpWord; +} +alias REGISTERWORDW* PREGISTERWORDW, LPREGISTERWORDW; + +struct STYLEBUFA{ + DWORD dwStyle; + CHAR szDescription[STYLE_DESCRIPTION_SIZE]; +} +alias STYLEBUFA* PSTYLEBUFA, LPSTYLEBUFA; + +struct STYLEBUFW{ + DWORD dwStyle; + WCHAR szDescription[STYLE_DESCRIPTION_SIZE]; +} +alias STYLEBUFW* PSTYLEBUFW, LPSTYLEBUFW; + +struct IMEMENUITEMINFOA{ + UINT cbSize = this.sizeof; + UINT fType; + UINT fState; + UINT wID; + HBITMAP hbmpChecked; + HBITMAP hbmpUnchecked; + DWORD dwItemData; + CHAR szString[IMEMENUITEM_STRING_SIZE]; + HBITMAP hbmpItem; +} +alias IMEMENUITEMINFOA* PIMEMENUITEMINFOA, LPIMEMENUITEMINFOA; + +struct IMEMENUITEMINFOW{ + UINT cbSize = this.sizeof; + UINT fType; + UINT fState; + UINT wID; + HBITMAP hbmpChecked; + HBITMAP hbmpUnchecked; + DWORD dwItemData; + WCHAR szString[IMEMENUITEM_STRING_SIZE]; + HBITMAP hbmpItem; +} +alias IMEMENUITEMINFOW* PIMEMENUITEMINFOW, LPIMEMENUITEMINFOW; + +alias int function (LPCSTR, DWORD, LPCSTR, LPVOID) REGISTERWORDENUMPROCA; +alias int function (LPCWSTR, DWORD, LPCWSTR, LPVOID) REGISTERWORDENUMPROCW; + +version(Unicode) { + alias REGISTERWORDENUMPROCW REGISTERWORDENUMPROC; + alias REGISTERWORDW REGISTERWORD; + alias IMEMENUITEMINFOW IMEMENUITEMINFO; + alias STYLEBUFW STYLEBUF; +} else { + alias REGISTERWORDENUMPROCA REGISTERWORDENUMPROC; + alias REGISTERWORDA REGISTERWORD; + alias IMEMENUITEMINFOA IMEMENUITEMINFO; + alias STYLEBUFA STYLEBUF; +} + +alias STYLEBUF* PSTYLEBUF, LPSTYLEBUF; +alias REGISTERWORD* PREGISTERWORD, LPREGISTERWORD; +alias IMEMENUITEMINFO* PIMEMENUITEMINFO, LPIMEMENUITEMINFO; + + +extern (Windows): +HKL ImmInstallIMEA(LPCSTR, LPCSTR); +HKL ImmInstallIMEW(LPCWSTR, LPCWSTR); +HWND ImmGetDefaultIMEWnd(HWND); +UINT ImmGetDescriptionA(HKL, LPSTR, UINT); +UINT ImmGetDescriptionW(HKL, LPWSTR, UINT); +UINT ImmGetIMEFileNameA(HKL, LPSTR, UINT); +UINT ImmGetIMEFileNameW(HKL, LPWSTR, UINT); +DWORD ImmGetProperty(HKL, DWORD); +BOOL ImmIsIME(HKL); +BOOL ImmSimulateHotKey(HWND, DWORD); +HIMC ImmCreateContext(); +BOOL ImmDestroyContext(HIMC); +HIMC ImmGetContext(HWND); +BOOL ImmReleaseContext(HWND, HIMC); +HIMC ImmAssociateContext(HWND, HIMC); +LONG ImmGetCompositionStringA(HIMC, DWORD, PVOID, DWORD); +LONG ImmGetCompositionStringW(HIMC, DWORD, PVOID, DWORD); +BOOL ImmSetCompositionStringA(HIMC, DWORD, PCVOID, DWORD, PCVOID, DWORD); +BOOL ImmSetCompositionStringW(HIMC, DWORD, PCVOID, DWORD, PCVOID, DWORD); +DWORD ImmGetCandidateListCountA(HIMC, PDWORD); +DWORD ImmGetCandidateListCountW(HIMC, PDWORD); +DWORD ImmGetCandidateListA(HIMC, DWORD, PCANDIDATELIST, DWORD); +DWORD ImmGetCandidateListW(HIMC, DWORD, PCANDIDATELIST, DWORD); +DWORD ImmGetGuideLineA(HIMC, DWORD, LPSTR, DWORD); +DWORD ImmGetGuideLineW(HIMC, DWORD, LPWSTR, DWORD); +BOOL ImmGetConversionStatus(HIMC, LPDWORD, PDWORD); +BOOL ImmSetConversionStatus(HIMC, DWORD, DWORD); +BOOL ImmGetOpenStatus(HIMC); +BOOL ImmSetOpenStatus(HIMC, BOOL); + +BOOL ImmGetCompositionFontA(HIMC, LPLOGFONTA); +BOOL ImmGetCompositionFontW(HIMC, LPLOGFONTW); +BOOL ImmSetCompositionFontA(HIMC, LPLOGFONTA); +BOOL ImmSetCompositionFontW(HIMC, LPLOGFONTW); + +BOOL ImmConfigureIMEA(HKL, HWND, DWORD, PVOID); +BOOL ImmConfigureIMEW(HKL, HWND, DWORD, PVOID); +LRESULT ImmEscapeA(HKL, HIMC, UINT, PVOID); +LRESULT ImmEscapeW(HKL, HIMC, UINT, PVOID); +DWORD ImmGetConversionListA(HKL, HIMC, LPCSTR, PCANDIDATELIST, DWORD, UINT); +DWORD ImmGetConversionListW(HKL, HIMC, LPCWSTR, PCANDIDATELIST, DWORD, UINT); +BOOL ImmNotifyIME(HIMC, DWORD, DWORD, DWORD); +BOOL ImmGetStatusWindowPos(HIMC, LPPOINT); +BOOL ImmSetStatusWindowPos(HIMC, LPPOINT); +BOOL ImmGetCompositionWindow(HIMC, PCOMPOSITIONFORM); +BOOL ImmSetCompositionWindow(HIMC, PCOMPOSITIONFORM); +BOOL ImmGetCandidateWindow(HIMC, DWORD, PCANDIDATEFORM); +BOOL ImmSetCandidateWindow(HIMC, PCANDIDATEFORM); +BOOL ImmIsUIMessageA(HWND, UINT, WPARAM, LPARAM); +BOOL ImmIsUIMessageW(HWND, UINT, WPARAM, LPARAM); +UINT ImmGetVirtualKey(HWND); +BOOL ImmRegisterWordA(HKL, LPCSTR, DWORD, LPCSTR); +BOOL ImmRegisterWordW(HKL, LPCWSTR, DWORD, LPCWSTR); +BOOL ImmUnregisterWordA(HKL, LPCSTR, DWORD, LPCSTR); +BOOL ImmUnregisterWordW(HKL, LPCWSTR, DWORD, LPCWSTR); +UINT ImmGetRegisterWordStyleA(HKL, UINT, PSTYLEBUFA); +UINT ImmGetRegisterWordStyleW(HKL, UINT, PSTYLEBUFW); +UINT ImmEnumRegisterWordA(HKL, REGISTERWORDENUMPROCA, LPCSTR, DWORD, LPCSTR, PVOID); +UINT ImmEnumRegisterWordW(HKL, REGISTERWORDENUMPROCW, LPCWSTR, DWORD, LPCWSTR, PVOID); +BOOL EnableEUDC(BOOL); +BOOL ImmDisableIME(DWORD); +DWORD ImmGetImeMenuItemsA(HIMC, DWORD, DWORD, LPIMEMENUITEMINFOA, LPIMEMENUITEMINFOA, DWORD); +DWORD ImmGetImeMenuItemsW(HIMC, DWORD, DWORD, LPIMEMENUITEMINFOW, LPIMEMENUITEMINFOW, DWORD); + +version(Unicode) { + alias ImmEnumRegisterWordW ImmEnumRegisterWord; + alias ImmGetRegisterWordStyleW ImmGetRegisterWordStyle; + alias ImmUnregisterWordW ImmUnregisterWord; + alias ImmRegisterWordW ImmRegisterWord; + alias ImmInstallIMEW ImmInstallIME; + alias ImmIsUIMessageW ImmIsUIMessage; + alias ImmGetConversionListW ImmGetConversionList; + alias ImmEscapeW ImmEscape; + alias ImmConfigureIMEW ImmConfigureIME; + alias ImmSetCompositionFontW ImmSetCompositionFont; + alias ImmGetCompositionFontW ImmGetCompositionFont; + alias ImmGetGuideLineW ImmGetGuideLine; + alias ImmGetCandidateListW ImmGetCandidateList; + alias ImmGetCandidateListCountW ImmGetCandidateListCount; + alias ImmSetCompositionStringW ImmSetCompositionString; + alias ImmGetCompositionStringW ImmGetCompositionString; + alias ImmGetDescriptionW ImmGetDescription; + alias ImmGetIMEFileNameW ImmGetIMEFileName; + alias ImmGetImeMenuItemsW ImmGetImeMenuItems; +} else { + alias ImmEnumRegisterWordA ImmEnumRegisterWord; + alias ImmGetRegisterWordStyleA ImmGetRegisterWordStyle; + alias ImmUnregisterWordA ImmUnregisterWord; + alias ImmRegisterWordA ImmRegisterWord; + alias ImmInstallIMEA ImmInstallIME; + alias ImmIsUIMessageA ImmIsUIMessage; + alias ImmGetConversionListA ImmGetConversionList; + alias ImmEscapeA ImmEscape; + alias ImmConfigureIMEA ImmConfigureIME; + alias ImmSetCompositionFontA ImmSetCompositionFont; + alias ImmGetCompositionFontA ImmGetCompositionFont; + alias ImmGetGuideLineA ImmGetGuideLine; + alias ImmGetCandidateListA ImmGetCandidateList; + alias ImmGetCandidateListCountA ImmGetCandidateListCount; + alias ImmSetCompositionStringA ImmSetCompositionString; + alias ImmGetCompositionStringA ImmGetCompositionString; + alias ImmGetDescriptionA ImmGetDescription; + alias ImmGetIMEFileNameA ImmGetIMEFileName; + alias ImmGetImeMenuItemsW ImmGetImeMenuItems; +} ADDED src/win32/intshcut.d Index: src/win32/intshcut.d ================================================================== --- src/win32/intshcut.d +++ src/win32/intshcut.d @@ -0,0 +1,89 @@ +/***********************************************************************\ +* intshcut.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.intshcut; + +private import win32.unknwn, win32.windef; + +enum : SCODE { + E_FLAGS = 0x80041000, + // = MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x1000) + URL_E_INVALID_SYNTAX = 0x80041001, + // = MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x1001) + URL_E_UNREGISTERED_PROTOCOL = 0x80041002, // etc. + IS_E_EXEC_FAILED = 0x80042002 +} + +enum IURL_SETURL_FLAGS { + IURL_SETURL_FL_GUESS_PROTOCOL = 1, + IURL_SETURL_FL_USE_DEFAULT_PROTOCOL, + ALL_IURL_SETURL_FLAGS +} + +enum IURL_INVOKECOMMAND_FLAGS { + IURL_INVOKECOMMAND_FL_ALLOW_UI = 1, + IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB, + ALL_IURL_INVOKECOMMAND_FLAGS +} + +enum TRANSLATEURL_IN_FLAGS { + TRANSLATEURL_FL_GUESS_PROTOCOL = 1, + TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL, + ALL_TRANSLATEURL_FLAGS +} + +enum URLASSOCIATIONDIALOG_IN_FLAGS { + URLASSOCDLG_FL_USE_DEFAULT_NAME = 1, + URLASSOCDLG_FL_REGISTER_ASSOC, + ALL_URLASSOCDLG_FLAGS +} + +enum MIMEASSOCIATIONDIALOG_IN_FLAGS { + MIMEASSOCDLG_FL_REGISTER_ASSOC = 1, + ALL_MIMEASSOCDLG_FLAGS = MIMEASSOCDLG_FL_REGISTER_ASSOC +} + +struct URLINVOKECOMMANDINFO { + DWORD dwcbSize = URLINVOKECOMMANDINFO.sizeof; + DWORD dwFlags; + HWND hwndParent; + PCSTR pcszVerb; +} +alias URLINVOKECOMMANDINFO CURLINVOKECOMMANDINFO; +alias URLINVOKECOMMANDINFO* PURLINVOKECOMMANDINFO, PCURLINVOKECOMMANDINFO; + +interface IUniformResourceLocator : IUnknown { + HRESULT SetURL(PCSTR, DWORD); + HRESULT GetURL(PSTR*); + HRESULT InvokeCommand(PURLINVOKECOMMANDINFO); +} +alias IUniformResourceLocator CIUniformResourceLocator; +alias IUniformResourceLocator* PIUniformResourceLocator, + PCIUniformResourceLocator; + +extern (Windows) { + BOOL InetIsOffline(DWORD); + HRESULT MIMEAssociationDialogA(HWND, DWORD, PCSTR, PCSTR, PSTR, UINT); + HRESULT MIMEAssociationDialogW(HWND, DWORD, PCWSTR, PCWSTR, PWSTR, UINT); + HRESULT TranslateURLA(PCSTR, DWORD, PSTR*); + HRESULT TranslateURLW(PCWSTR, DWORD, PWSTR*); + HRESULT URLAssociationDialogA(HWND, DWORD, PCSTR, PCSTR, PSTR, UINT); + HRESULT URLAssociationDialogW(HWND, DWORD, PCWSTR, PCWSTR, PWSTR, UINT); +} + +version (Unicode) { + alias TranslateURLW TranslateURL; + alias MIMEAssociationDialogW MIMEAssociationDialog; + alias URLAssociationDialogW URLAssociationDialog; +} else { + alias TranslateURLA TranslateURL; + alias MIMEAssociationDialogA MIMEAssociationDialog; + alias URLAssociationDialogA URLAssociationDialog; +} ADDED src/win32/ipexport.d Index: src/win32/ipexport.d ================================================================== --- src/win32/ipexport.d +++ src/win32/ipexport.d @@ -0,0 +1,108 @@ +/***********************************************************************\ +* ipexport.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.ipexport; + +private import win32.windef; + +const size_t MAX_ADAPTER_NAME = 128; + +// IP STATUS flags +enum : IP_STATUS { + IP_SUCCESS = 0, + IP_STATUS_BASE = 11000, + IP_BUF_TOO_SMALL, + IP_DEST_NET_UNREACHABLE, + IP_DEST_HOST_UNREACHABLE, + IP_DEST_PROT_UNREACHABLE, + IP_DEST_PORT_UNREACHABLE, + IP_NO_RESOURCES, + IP_BAD_OPTION, + IP_HW_ERROR, + IP_PACKET_TOO_BIG, + IP_REQ_TIMED_OUT, + IP_BAD_REQ, + IP_BAD_ROUTE, + IP_TTL_EXPIRED_TRANSIT, + IP_TTL_EXPIRED_REASSEM, + IP_PARAM_PROBLEM, + IP_SOURCE_QUENCH, + IP_OPTION_TOO_BIG, + IP_BAD_DESTINATION, + IP_ADDR_DELETED, + IP_SPEC_MTU_CHANGE, + IP_MTU_CHANGE, + IP_UNLOAD, // = IP_STATUS_BASE + 22 + IP_GENERAL_FAILURE = IP_STATUS_BASE + 50, + MAX_IP_STATUS = IP_GENERAL_FAILURE, + IP_PENDING = IP_STATUS_BASE + 255 +} + +// IP header Flags values +const byte IP_FLAG_DF = 2; + +// IP Option types +enum : ubyte { + IP_OPT_EOL = 0, + IP_OPT_NOP = 0x01, + IP_OPT_RR = 0x07, + IP_OPT_SECURITY = 0x82, + IP_OPT_LSRR = 0x83, + IP_OPT_SSRR = 0x89, + IP_OPT_TS = 0x44, + IP_OPT_SID = 0x88, + IP_OPT_ROUTER_ALERT = 0x94 +} + +const ubyte MAX_OPT_SIZE = 40; + +alias uint IPAddr, IPMask, IP_STATUS; + +struct IP_OPTION_INFORMATION { + ubyte Ttl; + ubyte Tos; + ubyte Flags; + ubyte OptionsSize; + ubyte* OptionsData; +} +alias IP_OPTION_INFORMATION* PIP_OPTION_INFORMATION; + +struct ICMP_ECHO_REPLY { + IPAddr Address; + uint Status; + uint RoundTripTime; + ushort DataSize; + ushort Reserved; + void* Data; + IP_OPTION_INFORMATION Options; +} +alias ICMP_ECHO_REPLY* PICMP_ECHO_REPLY; + +struct IP_ADAPTER_INDEX_MAP { + ULONG Index; + WCHAR[MAX_ADAPTER_NAME] Name; +} +alias IP_ADAPTER_INDEX_MAP* PIP_ADAPTER_INDEX_MAP; + +struct IP_INTERFACE_INFO { + LONG NumAdapters; + IP_ADAPTER_INDEX_MAP[1] _Adapter; + + IP_ADAPTER_INDEX_MAP* Adapter() { return _Adapter.ptr; } +} +alias IP_INTERFACE_INFO* PIP_INTERFACE_INFO; + +struct IP_UNIDIRECTIONAL_ADAPTER_ADDRESS { + ULONG NumAdapters; + IPAddr[1] _Address; + + IPAddr* Address() { return _Address.ptr; } +} +alias IP_UNIDIRECTIONAL_ADAPTER_ADDRESS* PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS; ADDED src/win32/iphlpapi.d Index: src/win32/iphlpapi.d ================================================================== --- src/win32/iphlpapi.d +++ src/win32/iphlpapi.d @@ -0,0 +1,62 @@ +/***********************************************************************\ +* iphlpapi.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.iphlpapi; + +import win32.ipexport, win32.iprtrmib, win32.iptypes; +private import win32.winbase, win32.windef; + +extern (Windows) { + DWORD AddIPAddress(IPAddr, IPMask, DWORD, PULONG, PULONG); + DWORD CreateIpForwardEntry(PMIB_IPFORWARDROW); + DWORD CreateIpNetEntry(PMIB_IPNETROW); + DWORD CreateProxyArpEntry(DWORD, DWORD, DWORD); + DWORD DeleteIPAddress(ULONG); + DWORD DeleteIpForwardEntry(PMIB_IPFORWARDROW); + DWORD DeleteIpNetEntry(PMIB_IPNETROW); + DWORD DeleteProxyArpEntry(DWORD, DWORD, DWORD); + DWORD EnableRouter(HANDLE*, OVERLAPPED*); + DWORD FlushIpNetTable(DWORD); + DWORD GetAdapterIndex(LPWSTR, PULONG); + DWORD GetAdaptersInfo(PIP_ADAPTER_INFO, PULONG); + DWORD GetBestInterface(IPAddr, PDWORD); + DWORD GetBestRoute(DWORD, DWORD, PMIB_IPFORWARDROW); + DWORD GetFriendlyIfIndex(DWORD); + DWORD GetIcmpStatistics(PMIB_ICMP); + DWORD GetIfEntry(PMIB_IFROW); + DWORD GetIfTable(PMIB_IFTABLE, PULONG, BOOL); + DWORD GetInterfaceInfo(PIP_INTERFACE_INFO, PULONG); + DWORD GetIpAddrTable(PMIB_IPADDRTABLE, PULONG, BOOL); + DWORD GetIpForwardTable(PMIB_IPFORWARDTABLE, PULONG, BOOL); + DWORD GetIpNetTable(PMIB_IPNETTABLE, PULONG, BOOL); + DWORD GetIpStatistics(PMIB_IPSTATS); + DWORD GetNetworkParams(PFIXED_INFO, PULONG); + DWORD GetNumberOfInterfaces(PDWORD); + DWORD GetPerAdapterInfo(ULONG, PIP_PER_ADAPTER_INFO, PULONG); + BOOL GetRTTAndHopCount(IPAddr, PULONG, ULONG, PULONG); + DWORD GetTcpStatistics(PMIB_TCPSTATS); + DWORD GetTcpTable(PMIB_TCPTABLE, PDWORD, BOOL); + DWORD GetUniDirectionalAdapterInfo(PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS, + PULONG); + DWORD GetUdpStatistics(PMIB_UDPSTATS); + DWORD GetUdpTable(PMIB_UDPTABLE, PDWORD, BOOL); + DWORD IpReleaseAddress(PIP_ADAPTER_INDEX_MAP); + DWORD IpRenewAddress(PIP_ADAPTER_INDEX_MAP); + DWORD NotifyAddrChange(PHANDLE, LPOVERLAPPED); + DWORD NotifyRouteChange(PHANDLE, LPOVERLAPPED); + DWORD SendARP(IPAddr, IPAddr, PULONG, PULONG); + DWORD SetIfEntry(PMIB_IFROW); + DWORD SetIpForwardEntry(PMIB_IPFORWARDROW); + DWORD SetIpNetEntry(PMIB_IPNETROW); + DWORD SetIpStatistics(PMIB_IPSTATS); + DWORD SetIpTTL(UINT); + DWORD SetTcpEntry(PMIB_TCPROW); + DWORD UnenableRouter(OVERLAPPED*, LPDWORD); +} ADDED src/win32/ipifcons.d Index: src/win32/ipifcons.d ================================================================== --- src/win32/ipifcons.d +++ src/win32/ipifcons.d @@ -0,0 +1,38 @@ +/***********************************************************************\ +* ipifcons.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.ipifcons; + +// FIXME: check types of constants + +enum { + MIB_IF_ADMIN_STATUS_UP = 1, + MIB_IF_ADMIN_STATUS_DOWN, + MIB_IF_ADMIN_STATUS_TESTING, +} + +enum { + MIB_IF_OPER_STATUS_NON_OPERATIONAL, + MIB_IF_OPER_STATUS_UNREACHABLE, + MIB_IF_OPER_STATUS_DISCONNECTED, + MIB_IF_OPER_STATUS_CONNECTING, + MIB_IF_OPER_STATUS_CONNECTED, + MIB_IF_OPER_STATUS_OPERATIONAL // = 5 +} + +enum { + MIB_IF_TYPE_OTHER = 1, + MIB_IF_TYPE_ETHERNET = 6, + MIB_IF_TYPE_TOKENRING = 9, + MIB_IF_TYPE_FDDI = 15, + MIB_IF_TYPE_PPP = 23, + MIB_IF_TYPE_LOOPBACK = 24, + MIB_IF_TYPE_SLIP = 28 +} ADDED src/win32/iprtrmib.d Index: src/win32/iprtrmib.d ================================================================== --- src/win32/iprtrmib.d +++ src/win32/iprtrmib.d @@ -0,0 +1,267 @@ +/***********************************************************************\ +* iprtrmib.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.iprtrmib; + +import win32.ipifcons; +private import win32.windef; + +// FIXME: check types of constants + +const size_t + MAXLEN_PHYSADDR = 8, + MAXLEN_IFDESCR = 256, + MAX_INTERFACE_NAME_LEN = 256; + +enum { + MIB_IPNET_TYPE_OTHER = 1, + MIB_IPNET_TYPE_INVALID, + MIB_IPNET_TYPE_DYNAMIC, + MIB_IPNET_TYPE_STATIC +} + +enum { + MIB_TCP_RTO_OTHER = 1, + MIB_TCP_RTO_CONSTANT, + MIB_TCP_RTO_RSRE, + MIB_TCP_RTO_VANJ +} + +enum { + MIB_TCP_STATE_CLOSED = 1, + MIB_TCP_STATE_LISTEN, + MIB_TCP_STATE_SYN_SENT, + MIB_TCP_STATE_SYN_RCVD, + MIB_TCP_STATE_ESTAB, + MIB_TCP_STATE_FIN_WAIT1, + MIB_TCP_STATE_FIN_WAIT2, + MIB_TCP_STATE_CLOSE_WAIT, + MIB_TCP_STATE_CLOSING, + MIB_TCP_STATE_LAST_ACK, + MIB_TCP_STATE_TIME_WAIT, + MIB_TCP_STATE_DELETE_TCB // = 12 +} + +const DWORD + MIB_USE_CURRENT_TTL = -1, + MIB_USE_CURRENT_FORWARDING = -1, + MIB_TCP_MAXCONN_DYNAMIC = -1; + +struct MIB_IPADDRROW { + DWORD dwAddr; + DWORD dwIndex; + DWORD dwMask; + DWORD dwBCastAddr; + DWORD dwReasmSize; + ushort unused1; + ushort unused2; +} +alias MIB_IPADDRROW* PMIB_IPADDRROW; + +struct MIB_IPADDRTABLE { + DWORD dwNumEntries; + MIB_IPADDRROW[1] _table; + + MIB_IPADDRROW* table() { return _table.ptr; } +} +alias MIB_IPADDRTABLE* PMIB_IPADDRTABLE; + +struct MIB_IPFORWARDROW { + DWORD dwForwardDest; + DWORD dwForwardMask; + DWORD dwForwardPolicy; + DWORD dwForwardNextHop; + DWORD dwForwardIfIndex; + DWORD dwForwardType; + DWORD dwForwardProto; + DWORD dwForwardAge; + DWORD dwForwardNextHopAS; + DWORD dwForwardMetric1; + DWORD dwForwardMetric2; + DWORD dwForwardMetric3; + DWORD dwForwardMetric4; + DWORD dwForwardMetric5; +} +alias MIB_IPFORWARDROW* PMIB_IPFORWARDROW; + +struct MIB_IPFORWARDTABLE { + DWORD dwNumEntries; + MIB_IPFORWARDROW[1] _table; + + MIB_IPFORWARDROW* table() { return _table.ptr; } +} +alias MIB_IPFORWARDTABLE* PMIB_IPFORWARDTABLE; + +struct MIB_IPNETROW { + DWORD dwIndex; + DWORD dwPhysAddrLen; + BYTE[MAXLEN_PHYSADDR] bPhysAddr; + DWORD dwAddr; + DWORD dwType; +} +alias MIB_IPNETROW* PMIB_IPNETROW; + +struct MIB_IPNETTABLE { + DWORD dwNumEntries; + MIB_IPNETROW[1] _table; + + MIB_IPNETROW* table() { return _table.ptr; } +} +alias MIB_IPNETTABLE* PMIB_IPNETTABLE; + +struct MIBICMPSTATS { + DWORD dwMsgs; + DWORD dwErrors; + DWORD dwDestUnreachs; + DWORD dwTimeExcds; + DWORD dwParmProbs; + DWORD dwSrcQuenchs; + DWORD dwRedirects; + DWORD dwEchos; + DWORD dwEchoReps; + DWORD dwTimestamps; + DWORD dwTimestampReps; + DWORD dwAddrMasks; + DWORD dwAddrMaskReps; +} +alias MIBICMPSTATS* PMIBICMPSTATS; + +struct MIBICMPINFO { + MIBICMPSTATS icmpInStats; + MIBICMPSTATS icmpOutStats; +} +alias MIBICMPINFO* PMIBICMPINFO; + +struct MIB_ICMP { + MIBICMPINFO stats; +} +alias MIB_ICMP* PMIB_ICMP; + +struct MIB_IFROW { + WCHAR[MAX_INTERFACE_NAME_LEN] wszName; + DWORD dwIndex; + DWORD dwType; + DWORD dwMtu; + DWORD dwSpeed; + DWORD dwPhysAddrLen; + BYTE[MAXLEN_PHYSADDR] bPhysAddr; + DWORD dwAdminStatus; + DWORD dwOperStatus; + DWORD dwLastChange; + DWORD dwInOctets; + DWORD dwInUcastPkts; + DWORD dwInNUcastPkts; + DWORD dwInDiscards; + DWORD dwInErrors; + DWORD dwInUnknownProtos; + DWORD dwOutOctets; + DWORD dwOutUcastPkts; + DWORD dwOutNUcastPkts; + DWORD dwOutDiscards; + DWORD dwOutErrors; + DWORD dwOutQLen; + DWORD dwDescrLen; + BYTE[MAXLEN_IFDESCR] bDescr; +} +alias MIB_IFROW* PMIB_IFROW; + +struct MIB_IFTABLE { + DWORD dwNumEntries; + MIB_IFROW[1] _table; + + MIB_IFROW* table() { return _table.ptr; } +} +alias MIB_IFTABLE* PMIB_IFTABLE; + +struct MIB_IPSTATS { + DWORD dwForwarding; + DWORD dwDefaultTTL; + DWORD dwInReceives; + DWORD dwInHdrErrors; + DWORD dwInAddrErrors; + DWORD dwForwDatagrams; + DWORD dwInUnknownProtos; + DWORD dwInDiscards; + DWORD dwInDelivers; + DWORD dwOutRequests; + DWORD dwRoutingDiscards; + DWORD dwOutDiscards; + DWORD dwOutNoRoutes; + DWORD dwReasmTimeout; + DWORD dwReasmReqds; + DWORD dwReasmOks; + DWORD dwReasmFails; + DWORD dwFragOks; + DWORD dwFragFails; + DWORD dwFragCreates; + DWORD dwNumIf; + DWORD dwNumAddr; + DWORD dwNumRoutes; +} +alias MIB_IPSTATS* PMIB_IPSTATS; + +struct MIB_TCPSTATS { + DWORD dwRtoAlgorithm; + DWORD dwRtoMin; + DWORD dwRtoMax; + DWORD dwMaxConn; + DWORD dwActiveOpens; + DWORD dwPassiveOpens; + DWORD dwAttemptFails; + DWORD dwEstabResets; + DWORD dwCurrEstab; + DWORD dwInSegs; + DWORD dwOutSegs; + DWORD dwRetransSegs; + DWORD dwInErrs; + DWORD dwOutRsts; + DWORD dwNumConns; +} +alias MIB_TCPSTATS* PMIB_TCPSTATS; + +struct MIB_TCPROW { + DWORD dwState; + DWORD dwLocalAddr; + DWORD dwLocalPort; + DWORD dwRemoteAddr; + DWORD dwRemotePort; +} +alias MIB_TCPROW* PMIB_TCPROW; + +struct MIB_TCPTABLE { + DWORD dwNumEntries; + MIB_TCPROW[1] _table; + + MIB_TCPROW* table() { return _table.ptr; } +} +alias MIB_TCPTABLE* PMIB_TCPTABLE; + +struct MIB_UDPSTATS { + DWORD dwInDatagrams; + DWORD dwNoPorts; + DWORD dwInErrors; + DWORD dwOutDatagrams; + DWORD dwNumAddrs; +} +alias MIB_UDPSTATS* PMIB_UDPSTATS; + +struct MIB_UDPROW { + DWORD dwLocalAddr; + DWORD dwLocalPort; +} +alias MIB_UDPROW* PMIB_UDPROW; + +struct MIB_UDPTABLE { + DWORD dwNumEntries; + MIB_UDPROW[1] _table; + + MIB_UDPROW* table() { return _table.ptr; } +} +alias MIB_UDPTABLE* PMIB_UDPTABLE; ADDED src/win32/iptypes.d Index: src/win32/iptypes.d ================================================================== --- src/win32/iptypes.d +++ src/win32/iptypes.d @@ -0,0 +1,100 @@ +/***********************************************************************\ +* iptypes.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.iptypes; + +import win32.windef; +version(Tango){ + private import tango.stdc.time; +}else{ + private import std.c.time; +} +//#include + +const size_t + DEFAULT_MINIMUM_ENTITIES = 32, + MAX_ADAPTER_ADDRESS_LENGTH = 8, + MAX_ADAPTER_DESCRIPTION_LENGTH = 128, + MAX_ADAPTER_NAME_LENGTH = 256, + MAX_DOMAIN_NAME_LEN = 128, + MAX_HOSTNAME_LEN = 128, + MAX_SCOPE_ID_LEN = 256; + +const UINT + BROADCAST_NODETYPE = 1, + PEER_TO_PEER_NODETYPE = 2, + MIXED_NODETYPE = 4, + HYBRID_NODETYPE = 8; + +enum : UINT { + IF_OTHER_ADAPTERTYPE, + IF_ETHERNET_ADAPTERTYPE, + IF_TOKEN_RING_ADAPTERTYPE, + IF_FDDI_ADAPTERTYPE, + IF_PPP_ADAPTERTYPE, + IF_LOOPBACK_ADAPTERTYPE // = 5 +} + +struct IP_ADDRESS_STRING { + char[16] String; +} +alias IP_ADDRESS_STRING IP_MASK_STRING; +alias IP_ADDRESS_STRING* PIP_ADDRESS_STRING, PIP_MASK_STRING; + +struct IP_ADDR_STRING { + IP_ADDR_STRING* Next; + IP_ADDRESS_STRING IpAddress; + IP_MASK_STRING IpMask; + DWORD Context; +} +alias IP_ADDR_STRING* PIP_ADDR_STRING; + +struct IP_ADAPTER_INFO { + IP_ADAPTER_INFO* Next; + DWORD ComboIndex; + char[MAX_ADAPTER_NAME_LENGTH+4] AdapterName; + char[MAX_ADAPTER_DESCRIPTION_LENGTH+4] Description; + UINT AddressLength; + BYTE[MAX_ADAPTER_ADDRESS_LENGTH] Address; + DWORD Index; + UINT Type; + UINT DhcpEnabled; + PIP_ADDR_STRING CurrentIpAddress; + IP_ADDR_STRING IpAddressList; + IP_ADDR_STRING GatewayList; + IP_ADDR_STRING DhcpServer; + BOOL HaveWins; + IP_ADDR_STRING PrimaryWinsServer; + IP_ADDR_STRING SecondaryWinsServer; + time_t LeaseObtained; + time_t LeaseExpires; +} +alias IP_ADAPTER_INFO* PIP_ADAPTER_INFO; + +struct IP_PER_ADAPTER_INFO { + UINT AutoconfigEnabled; + UINT AutoconfigActive; + PIP_ADDR_STRING CurrentDnsServer; + IP_ADDR_STRING DnsServerList; +} +alias IP_PER_ADAPTER_INFO* PIP_PER_ADAPTER_INFO; + +struct FIXED_INFO { + char[MAX_HOSTNAME_LEN+4] HostName; + char[MAX_DOMAIN_NAME_LEN+4] DomainName; + PIP_ADDR_STRING CurrentDnsServer; + IP_ADDR_STRING DnsServerList; + UINT NodeType; + char[MAX_SCOPE_ID_LEN+4] ScopeId; + UINT EnableRouting; + UINT EnableProxy; + UINT EnableDns; +} +alias FIXED_INFO* PFIXED_INFO; ADDED src/win32/isguids.d Index: src/win32/isguids.d ================================================================== --- src/win32/isguids.d +++ src/win32/isguids.d @@ -0,0 +1,17 @@ +/***********************************************************************\ +* isguids.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.10 * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.isguids; + +private import win32.basetyps; + +extern (C) extern const GUID + CLSID_InternetShortcut, + IID_IUniformResourceLocator; ADDED src/win32/lm.d Index: src/win32/lm.d ================================================================== --- src/win32/lm.d +++ src/win32/lm.d @@ -0,0 +1,52 @@ +/***********************************************************************\ +* lm.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lm; + +version (WindowsVista) { + version = WIN32_WINNT_ONLY; +} else version (Windows2003) { + version = WIN32_WINNT_ONLY; +} else version (WindowsXP) { + version = WIN32_WINNT_ONLY; +} else version (WindowsNTonly) { + version = WIN32_WINNT_ONLY; +} + +public import win32.lmcons; +public import win32.lmaccess; +public import win32.lmalert; +public import win32.lmat; +public import win32.lmerr; +public import win32.lmshare; +public import win32.lmapibuf; +public import win32.lmremutl; +public import win32.lmrepl; +public import win32.lmuse; +public import win32.lmstats; + +version (WIN32_WINNT_ONLY) { + public import win32.lmwksta; + public import win32.lmserver; +} +version (WindowsVista) { + public import win32.lmmsg; +} else version (Windows2003) { + public import win32.lmmsg; +} else version (WindowsXP) { + public import win32.lmmsg; +} + +// FIXME: Everything in these next files seems to be deprecated! +import win32.lmaudit; +import win32.lmchdev; // can't find many docs for functions from this file. +import win32.lmconfig; +import win32.lmerrlog; +import win32.lmsvc; +import win32.lmsname; // in MinGW, this was publicly included by lm.lmsvc ADDED src/win32/lmaccess.d Index: src/win32/lmaccess.d ================================================================== --- src/win32/lmaccess.d +++ src/win32/lmaccess.d @@ -0,0 +1,759 @@ +/***********************************************************************\ +* lmaccess.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmaccess; +pragma(lib, "netapi32.lib"); + +/** + Changes relative to MinGW: + USER_POSIX_ID_PARMNUM and GROUP_POSIX_ID_PARMNUM aren't in MinGW or in + the Platform SDK docs, so they have been dropped from this file. +*/ + +private import win32.lmcons, win32.windef; + +const wchar[] + GROUP_SPECIALGRP_USERS = "USERS", + GROUP_SPECIALGRP_ADMINS = "ADMINS", + GROUP_SPECIALGRP_GUESTS = "GUESTS", + GROUP_SPECIALGRP_LOCAL = "LOCAL"; + +const ACCESS_LETTERS = "RWCXDAP "; + +const NETLOGON_CONTROL_QUERY=1; +const NETLOGON_CONTROL_REPLICATE=2; +const NETLOGON_CONTROL_SYNCHRONIZE=3; +const NETLOGON_CONTROL_PDC_REPLICATE=4; +const NETLOGON_CONTROL_REDISCOVER=5; +const NETLOGON_CONTROL_TC_QUERY=6; +const NETLOGON_CONTROL_BACKUP_CHANGE_LOG=65532; +const NETLOGON_CONTROL_TRUNCATE_LOG=65533; +const NETLOGON_CONTROL_SET_DBFLAG=65534; +const NETLOGON_CONTROL_BREAKPOINT=65535; + +const UF_SCRIPT=1; +const UF_ACCOUNTDISABLE=2; +const UF_HOMEDIR_REQUIRED=8; +const UF_LOCKOUT=16; +const UF_PASSWD_NOTREQD=32; +const UF_PASSWD_CANT_CHANGE=64; +const UF_TEMP_DUPLICATE_ACCOUNT=256; +const UF_NORMAL_ACCOUNT=512; +const UF_INTERDOMAIN_TRUST_ACCOUNT=2048; +const UF_WORKSTATION_TRUST_ACCOUNT=4096; +const UF_SERVER_TRUST_ACCOUNT=8192; +const UF_MNS_LOGON_ACCOUNT=131072; +const UF_MACHINE_ACCOUNT_MASK=UF_INTERDOMAIN_TRUST_ACCOUNT|UF_WORKSTATION_TRUST_ACCOUNT|UF_SERVER_TRUST_ACCOUNT; +const UF_ACCOUNT_TYPE_MASK=UF_TEMP_DUPLICATE_ACCOUNT|UF_NORMAL_ACCOUNT|UF_INTERDOMAIN_TRUST_ACCOUNT|UF_WORKSTATION_TRUST_ACCOUNT|UF_SERVER_TRUST_ACCOUNT; +const UF_DONT_EXPIRE_PASSWD=65536; +const UF_SETTABLE_BITS=UF_SCRIPT|UF_ACCOUNTDISABLE|UF_LOCKOUT|UF_HOMEDIR_REQUIRED|UF_PASSWD_NOTREQD|UF_PASSWD_CANT_CHANGE|UF_ACCOUNT_TYPE_MASK|UF_DONT_EXPIRE_PASSWD; + +const FILTER_TEMP_DUPLICATE_ACCOUNT=1; +const FILTER_NORMAL_ACCOUNT=2; +const FILTER_INTERDOMAIN_TRUST_ACCOUNT=8; +const FILTER_WORKSTATION_TRUST_ACCOUNT=16; +const FILTER_SERVER_TRUST_ACCOUNT=32; + +const LG_INCLUDE_INDIRECT=1; + +const AF_OP_PRINT=1; +const AF_OP_COMM=2; +const AF_OP_SERVER=4; +const AF_OP_ACCOUNTS=8; +const AF_SETTABLE_BITS=(AF_OP_PRINT|AF_OP_COMM|AF_OP_SERVER|AF_OP_ACCOUNTS); + +const UAS_ROLE_STANDALONE=0; +const UAS_ROLE_MEMBER=1; +const UAS_ROLE_BACKUP=2; +const UAS_ROLE_PRIMARY=3; + +const USER_NAME_PARMNUM=1; +const USER_PASSWORD_PARMNUM=3; +const USER_PASSWORD_AGE_PARMNUM=4; +const USER_PRIV_PARMNUM=5; +const USER_HOME_DIR_PARMNUM=6; +const USER_COMMENT_PARMNUM=7; +const USER_FLAGS_PARMNUM=8; +const USER_SCRIPT_PATH_PARMNUM=9; +const USER_AUTH_FLAGS_PARMNUM=10; +const USER_FULL_NAME_PARMNUM=11; +const USER_USR_COMMENT_PARMNUM=12; +const USER_PARMS_PARMNUM=13; +const USER_WORKSTATIONS_PARMNUM=14; +const USER_LAST_LOGON_PARMNUM=15; +const USER_LAST_LOGOFF_PARMNUM=16; +const USER_ACCT_EXPIRES_PARMNUM=17; +const USER_MAX_STORAGE_PARMNUM=18; +const USER_UNITS_PER_WEEK_PARMNUM=19; +const USER_LOGON_HOURS_PARMNUM=20; +const USER_PAD_PW_COUNT_PARMNUM=21; +const USER_NUM_LOGONS_PARMNUM=22; +const USER_LOGON_SERVER_PARMNUM=23; +const USER_COUNTRY_CODE_PARMNUM=24; +const USER_CODE_PAGE_PARMNUM=25; +const USER_PRIMARY_GROUP_PARMNUM=51; +const USER_PROFILE=52; +const USER_PROFILE_PARMNUM=52; +const USER_HOME_DIR_DRIVE_PARMNUM=53; + +const USER_NAME_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_NAME_PARMNUM; +const USER_PASSWORD_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_PASSWORD_PARMNUM; +const USER_PASSWORD_AGE_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_PASSWORD_AGE_PARMNUM; +const USER_PRIV_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_PRIV_PARMNUM; +const USER_HOME_DIR_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_HOME_DIR_PARMNUM; +const USER_COMMENT_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_COMMENT_PARMNUM; +const USER_FLAGS_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_FLAGS_PARMNUM; +const USER_SCRIPT_PATH_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_SCRIPT_PATH_PARMNUM; +const USER_AUTH_FLAGS_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_AUTH_FLAGS_PARMNUM; +const USER_FULL_NAME_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_FULL_NAME_PARMNUM; +const USER_USR_COMMENT_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_USR_COMMENT_PARMNUM; +const USER_PARMS_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_PARMS_PARMNUM; +const USER_WORKSTATIONS_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_WORKSTATIONS_PARMNUM; +const USER_LAST_LOGON_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_LAST_LOGON_PARMNUM; +const USER_LAST_LOGOFF_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_LAST_LOGOFF_PARMNUM; +const USER_ACCT_EXPIRES_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_ACCT_EXPIRES_PARMNUM; +const USER_MAX_STORAGE_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_MAX_STORAGE_PARMNUM; +const USER_UNITS_PER_WEEK_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_UNITS_PER_WEEK_PARMNUM; +const USER_LOGON_HOURS_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_LOGON_HOURS_PARMNUM; +const USER_PAD_PW_COUNT_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_PAD_PW_COUNT_PARMNUM; +const USER_NUM_LOGONS_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_NUM_LOGONS_PARMNUM; +const USER_LOGON_SERVER_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_LOGON_SERVER_PARMNUM; +const USER_COUNTRY_CODE_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_COUNTRY_CODE_PARMNUM; +const USER_CODE_PAGE_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_CODE_PAGE_PARMNUM; +const USER_PRIMARY_GROUP_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_PRIMARY_GROUP_PARMNUM; +// USER_POSIX_ID_PARMNUM isn't in MinGW or in the Platform SDK docs. +//const USER_POSIX_ID_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_POSIX_ID_PARMNUM; +const USER_HOME_DIR_DRIVE_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+USER_HOME_DIR_DRIVE_PARMNUM; + +const NULL_USERSETINFO_PASSWD=" "; +const ULONG TIMEQ_FOREVER=-1; +const ULONG USER_MAXSTORAGE_UNLIMITED=-1; +const ULONG USER_NO_LOGOFF=-1; +const UNITS_PER_DAY=24; +const UNITS_PER_WEEK=168; +const USER_PRIV_MASK=3; +const USER_PRIV_GUEST=0; +const USER_PRIV_USER=1; +const USER_PRIV_ADMIN=2; +const MAX_PASSWD_LEN=PWLEN; +const DEF_MIN_PWLEN=6; +const DEF_PWUNIQUENESS=5; +const DEF_MAX_PWHIST=8; +const DEF_MAX_PWAGE=TIMEQ_FOREVER; +const DEF_MIN_PWAGE=0; +const ULONG DEF_FORCE_LOGOFF=0xffffffff; +const DEF_MAX_BADPW=0; +const ONE_DAY=86400; +const VALIDATED_LOGON=0; +const PASSWORD_EXPIRED=2; +const NON_VALIDATED_LOGON=3; +const VALID_LOGOFF=1; + +const MODALS_MIN_PASSWD_LEN_PARMNUM=1; +const MODALS_MAX_PASSWD_AGE_PARMNUM=2; +const MODALS_MIN_PASSWD_AGE_PARMNUM=3; +const MODALS_FORCE_LOGOFF_PARMNUM=4; +const MODALS_PASSWD_HIST_LEN_PARMNUM=5; +const MODALS_ROLE_PARMNUM=6; +const MODALS_PRIMARY_PARMNUM=7; +const MODALS_DOMAIN_NAME_PARMNUM=8; +const MODALS_DOMAIN_ID_PARMNUM=9; +const MODALS_LOCKOUT_DURATION_PARMNUM=10; +const MODALS_LOCKOUT_OBSERVATION_WINDOW_PARMNUM=11; +const MODALS_LOCKOUT_THRESHOLD_PARMNUM=12; + +const MODALS_MIN_PASSWD_LEN_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+MODALS_MIN_PASSWD_LEN_PARMNUM); +const MODALS_MAX_PASSWD_AGE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+MODALS_MAX_PASSWD_AGE_PARMNUM); +const MODALS_MIN_PASSWD_AGE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+MODALS_MIN_PASSWD_AGE_PARMNUM); +const MODALS_FORCE_LOGOFF_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+MODALS_FORCE_LOGOFF_PARMNUM); +const MODALS_PASSWD_HIST_LEN_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+MODALS_PASSWD_HIST_LEN_PARMNUM); +const MODALS_ROLE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+MODALS_ROLE_PARMNUM); +const MODALS_PRIMARY_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+MODALS_PRIMARY_PARMNUM); +const MODALS_DOMAIN_NAME_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+MODALS_DOMAIN_NAME_PARMNUM); +const MODALS_DOMAIN_ID_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+MODALS_DOMAIN_ID_PARMNUM); + +const GROUPIDMASK=0x8000; +const GROUP_ALL_PARMNUM=0; +const GROUP_NAME_PARMNUM=1; +const GROUP_COMMENT_PARMNUM=2; +const GROUP_ATTRIBUTES_PARMNUM=3; + +const GROUP_ALL_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + GROUP_ALL_PARMNUM; +const GROUP_NAME_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + GROUP_NAME_PARMNUM; +const GROUP_COMMENT_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + GROUP_COMMENT_PARMNUM; +const GROUP_ATTRIBUTES_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + GROUP_ATTRIBUTES_PARMNUM; +// GROUP_POSIX_ID_PARMNUM isn't in MinGW or in the Platform SDK docs. +//const GROUP_POSIX_ID_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + GROUP_POSIX_ID_PARMNUM; + +const LOCALGROUP_NAME_PARMNUM=1; +const LOCALGROUP_COMMENT_PARMNUM=2; +const MAXPERMENTRIES=64; +const ACCESS_NONE=0; +const ACCESS_READ=1; +const ACCESS_WRITE=2; +const ACCESS_CREATE=4; +const ACCESS_EXEC=8; +const ACCESS_DELETE=16; +const ACCESS_ATRIB=32; +const ACCESS_PERM=64; +const ACCESS_ALL = ACCESS_READ|ACCESS_WRITE|ACCESS_CREATE|ACCESS_EXEC|ACCESS_DELETE|ACCESS_ATRIB|ACCESS_PERM; +const ACCESS_GROUP=0x8000; +const ACCESS_AUDIT=1; +const ACCESS_SUCCESS_OPEN=16; +const ACCESS_SUCCESS_WRITE=32; +const ACCESS_SUCCESS_DELETE=64; +const ACCESS_SUCCESS_ACL=128; +const ACCESS_SUCCESS_MASK=240; +const ACCESS_FAIL_OPEN=256; +const ACCESS_FAIL_WRITE=512; +const ACCESS_FAIL_DELETE=1024; +const ACCESS_FAIL_ACL=2048; +const ACCESS_FAIL_MASK=3840; +const ACCESS_FAIL_SHIFT=4; +const ACCESS_RESOURCE_NAME_PARMNUM=1; +const ACCESS_ATTR_PARMNUM=2; +const ACCESS_COUNT_PARMNUM=3; +const ACCESS_ACCESS_LIST_PARMNUM=4; + +const ACCESS_RESOURCE_NAME_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+ACCESS_RESOURCE_NAME_PARMNUM); +const ACCESS_ATTR_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+ACCESS_ATTR_PARMNUM); +const ACCESS_COUNT_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+ACCESS_COUNT_PARMNUM); +const ACCESS_ACCESS_LIST_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+ACCESS_ACCESS_LIST_PARMNUM); + +const NETLOGON_REPLICATION_NEEDED=1; +const NETLOGON_REPLICATION_IN_PROGRESS=2; +const NETLOGON_FULL_SYNC_REPLICATION=4; +const NETLOGON_REDO_NEEDED=8; + +struct USER_INFO_0 { + LPWSTR usri0_name; +} +alias USER_INFO_0* PUSER_INFO_0, LPUSER_INFO_0; + +struct USER_INFO_1{ + LPWSTR usri1_name; + LPWSTR usri1_password; + DWORD usri1_password_age; + DWORD usri1_priv; + LPWSTR usri1_home_dir; + LPWSTR usri1_comment; + DWORD usri1_flags; + LPWSTR usri1_script_path; +} +alias USER_INFO_1* PUSER_INFO_1, LPUSER_INFO_1; + +struct USER_INFO_2{ + LPWSTR usri2_name; + LPWSTR usri2_password; + DWORD usri2_password_age; + DWORD usri2_priv; + LPWSTR usri2_home_dir; + LPWSTR usri2_comment; + DWORD usri2_flags; + LPWSTR usri2_script_path; + DWORD usri2_auth_flags; + LPWSTR usri2_full_name; + LPWSTR usri2_usr_comment; + LPWSTR usri2_parms; + LPWSTR usri2_workstations; + DWORD usri2_last_logon; + DWORD usri2_last_logoff; + DWORD usri2_acct_expires; + DWORD usri2_max_storage; + DWORD usri2_units_per_week; + PBYTE usri2_logon_hours; + DWORD usri2_bad_pw_count; + DWORD usri2_num_logons; + LPWSTR usri2_logon_server; + DWORD usri2_country_code; + DWORD usri2_code_page; +} +alias USER_INFO_2* PUSER_INFO_2, LPUSER_INFO_2; + +struct USER_INFO_3{ + LPWSTR usri3_name; + LPWSTR usri3_password; + DWORD usri3_password_age; + DWORD usri3_priv; + LPWSTR usri3_home_dir; + LPWSTR usri3_comment; + DWORD usri3_flags; + LPWSTR usri3_script_path; + DWORD usri3_auth_flags; + LPWSTR usri3_full_name; + LPWSTR usri3_usr_comment; + LPWSTR usri3_parms; + LPWSTR usri3_workstations; + DWORD usri3_last_logon; + DWORD usri3_last_logoff; + DWORD usri3_acct_expires; + DWORD usri3_max_storage; + DWORD usri3_units_per_week; + PBYTE usri3_logon_hours; + DWORD usri3_bad_pw_count; + DWORD usri3_num_logons; + LPWSTR usri3_logon_server; + DWORD usri3_country_code; + DWORD usri3_code_page; + DWORD usri3_user_id; + DWORD usri3_primary_group_id; + LPWSTR usri3_profile; + LPWSTR usri3_home_dir_drive; + DWORD usri3_password_expired; +} +alias USER_INFO_3* PUSER_INFO_3, LPUSER_INFO_3; + +struct USER_INFO_10{ + LPWSTR usri10_name; + LPWSTR usri10_comment; + LPWSTR usri10_usr_comment; + LPWSTR usri10_full_name; +} +alias USER_INFO_10* PUSER_INFO_10, LPUSER_INFO_10; + +struct USER_INFO_11{ + LPWSTR usri11_name; + LPWSTR usri11_comment; + LPWSTR usri11_usr_comment; + LPWSTR usri11_full_name; + DWORD usri11_priv; + DWORD usri11_auth_flags; + DWORD usri11_password_age; + LPWSTR usri11_home_dir; + LPWSTR usri11_parms; + DWORD usri11_last_logon; + DWORD usri11_last_logoff; + DWORD usri11_bad_pw_count; + DWORD usri11_num_logons; + LPWSTR usri11_logon_server; + DWORD usri11_country_code; + LPWSTR usri11_workstations; + DWORD usri11_max_storage; + DWORD usri11_units_per_week; + PBYTE usri11_logon_hours; + DWORD usri11_code_page; +} +alias USER_INFO_11* PUSER_INFO_11, LPUSER_INFO_11; + +struct USER_INFO_20 { + LPWSTR usri20_name; + LPWSTR usri20_full_name; + LPWSTR usri20_comment; + DWORD usri20_flags; + DWORD usri20_user_id; +} +alias USER_INFO_20* PUSER_INFO_20, LPUSER_INFO_20; + +struct USER_INFO_21 { + BYTE usri21_password[ENCRYPTED_PWLEN]; +} +alias USER_INFO_21* PUSER_INFO_21, LPUSER_INFO_21; + +struct USER_INFO_22{ + LPWSTR usri22_name; + BYTE usri22_password[ENCRYPTED_PWLEN]; + DWORD usri22_password_age; + DWORD usri22_priv; + LPWSTR usri22_home_dir; + LPWSTR usri22_comment; + DWORD usri22_flags; + LPWSTR usri22_script_path; + DWORD usri22_auth_flags; + LPWSTR usri22_full_name; + LPWSTR usri22_usr_comment; + LPWSTR usri22_parms; + LPWSTR usri22_workstations; + DWORD usri22_last_logon; + DWORD usri22_last_logoff; + DWORD usri22_acct_expires; + DWORD usri22_max_storage; + DWORD usri22_units_per_week; + PBYTE usri22_logon_hours; + DWORD usri22_bad_pw_count; + DWORD usri22_num_logons; + LPWSTR usri22_logon_server; + DWORD usri22_country_code; + DWORD usri22_code_page; +} +alias USER_INFO_22* PUSER_INFO_22, LPUSER_INFO_22; + +struct USER_INFO_1003{ + LPWSTR usri1003_password; +} +alias USER_INFO_1003* PUSER_INFO_1003, LPUSER_INFO_1003; + +struct USER_INFO_1005{ + DWORD usri1005_priv; +} +alias USER_INFO_1005* PUSER_INFO_1005, LPUSER_INFO_1005; + +struct USER_INFO_1006{ + LPWSTR usri1006_home_dir; +} +alias USER_INFO_1006* PUSER_INFO_1006, LPUSER_INFO_1006; + +struct USER_INFO_1007{ + LPWSTR usri1007_comment; +} +alias USER_INFO_1007* PUSER_INFO_1007, LPUSER_INFO_1007; + +struct USER_INFO_1008{ + DWORD usri1008_flags; +} +alias USER_INFO_1008* PUSER_INFO_1008, LPUSER_INFO_1008; + +struct USER_INFO_1009{ + LPWSTR usri1009_script_path; +} +alias USER_INFO_1009* PUSER_INFO_1009, LPUSER_INFO_1009; + +struct USER_INFO_1010{ + DWORD usri1010_auth_flags; +} +alias USER_INFO_1010* PUSER_INFO_1010, LPUSER_INFO_1010; + +struct USER_INFO_1011{ + LPWSTR usri1011_full_name; +} +alias USER_INFO_1011* PUSER_INFO_1011, LPUSER_INFO_1011; + +struct USER_INFO_1012{ + LPWSTR usri1012_usr_comment; +} +alias USER_INFO_1012* PUSER_INFO_1012, LPUSER_INFO_1012; + +struct USER_INFO_1013{ + LPWSTR usri1013_parms; +} +alias USER_INFO_1013* PUSER_INFO_1013, LPUSER_INFO_1013; + +struct USER_INFO_1014{ + LPWSTR usri1014_workstations; +} +alias USER_INFO_1014* PUSER_INFO_1014, LPUSER_INFO_1014; + +struct USER_INFO_1017{ + DWORD usri1017_acct_expires; +} +alias USER_INFO_1017* PUSER_INFO_1017, LPUSER_INFO_1017; + +struct USER_INFO_1018{ + DWORD usri1018_max_storage; +} +alias USER_INFO_1018* PUSER_INFO_1018, LPUSER_INFO_1018; + +struct USER_INFO_1020{ + DWORD usri1020_units_per_week; + PBYTE usri1020_logon_hours; +} +alias USER_INFO_1020* PUSER_INFO_1020, LPUSER_INFO_1020; + +struct USER_INFO_1023{ + LPWSTR usri1023_logon_server; +} +alias USER_INFO_1023* PUSER_INFO_1023, LPUSER_INFO_1023; + +struct USER_INFO_1024{ + DWORD usri1024_country_code; +} +alias USER_INFO_1024* PUSER_INFO_1024, LPUSER_INFO_1024; + +struct USER_INFO_1025{ + DWORD usri1025_code_page; +} +alias USER_INFO_1025* PUSER_INFO_1025, LPUSER_INFO_1025; + +struct USER_INFO_1051{ + DWORD usri1051_primary_group_id; +} +alias USER_INFO_1051* PUSER_INFO_1051, LPUSER_INFO_1051; + +struct USER_INFO_1052{ + LPWSTR usri1052_profile; +} +alias USER_INFO_1052* PUSER_INFO_1052, LPUSER_INFO_1052; + +struct USER_INFO_1053{ + LPWSTR usri1053_home_dir_drive; +} +alias USER_INFO_1053* PUSER_INFO_1053, LPUSER_INFO_1053; + +struct USER_MODALS_INFO_0{ + DWORD usrmod0_min_passwd_len; + DWORD usrmod0_max_passwd_age; + DWORD usrmod0_min_passwd_age; + DWORD usrmod0_force_logoff; + DWORD usrmod0_password_hist_len; +} +alias USER_MODALS_INFO_0* PUSER_MODALS_INFO_0, LPUSER_MODALS_INFO_0; + +struct USER_MODALS_INFO_1{ + DWORD usrmod1_role; + LPWSTR usrmod1_primary; +} +alias USER_MODALS_INFO_1* PUSER_MODALS_INFO_1, LPUSER_MODALS_INFO_1; + +struct USER_MODALS_INFO_2{ + LPWSTR usrmod2_domain_name; + PSID usrmod2_domain_id; +} +alias USER_MODALS_INFO_2* PUSER_MODALS_INFO_2, LPUSER_MODALS_INFO_2; + +struct USER_MODALS_INFO_3{ + DWORD usrmod3_lockout_duration; + DWORD usrmod3_lockout_observation_window; + DWORD usrmod3_lockout_threshold; +} +alias USER_MODALS_INFO_3* PUSER_MODALS_INFO_3, LPUSER_MODALS_INFO_3; + +struct USER_MODALS_INFO_1001{ + DWORD usrmod1001_min_passwd_len; +} +alias USER_MODALS_INFO_1001* PUSER_MODALS_INFO_1001, LPUSER_MODALS_INFO_1001; + +struct USER_MODALS_INFO_1002{ + DWORD usrmod1002_max_passwd_age; +} +alias USER_MODALS_INFO_1002* PUSER_MODALS_INFO_1002, LPUSER_MODALS_INFO_1002; + +struct USER_MODALS_INFO_1003{ + DWORD usrmod1003_min_passwd_age; +} +alias USER_MODALS_INFO_1003* PUSER_MODALS_INFO_1003, LPUSER_MODALS_INFO_1003; + +struct USER_MODALS_INFO_1004{ + DWORD usrmod1004_force_logoff; +} +alias USER_MODALS_INFO_1004* PUSER_MODALS_INFO_1004, LPUSER_MODALS_INFO_1004; + +struct USER_MODALS_INFO_1005{ + DWORD usrmod1005_password_hist_len; +} +alias USER_MODALS_INFO_1005* PUSER_MODALS_INFO_1005, LPUSER_MODALS_INFO_1005; + +struct USER_MODALS_INFO_1006{ + DWORD usrmod1006_role; +} +alias USER_MODALS_INFO_1006* PUSER_MODALS_INFO_1006, LPUSER_MODALS_INFO_1006; + +struct USER_MODALS_INFO_1007{ + LPWSTR usrmod1007_primary; +} +alias USER_MODALS_INFO_1007* PUSER_MODALS_INFO_1007, LPUSER_MODALS_INFO_1007; + +struct GROUP_INFO_0{ + LPWSTR grpi0_name; +} +alias GROUP_INFO_0* PGROUP_INFO_0, LPGROUP_INFO_0; + +struct GROUP_INFO_1{ + LPWSTR grpi1_name; + LPWSTR grpi1_comment; +} +alias GROUP_INFO_1* PGROUP_INFO_1, LPGROUP_INFO_1; + +struct GROUP_INFO_2{ + LPWSTR grpi2_name; + LPWSTR grpi2_comment; + DWORD grpi2_group_id; + DWORD grpi2_attributes; +} +alias GROUP_INFO_2* PGROUP_INFO_2; + +struct GROUP_INFO_1002{ + LPWSTR grpi1002_comment; +} +alias GROUP_INFO_1002* PGROUP_INFO_1002, LPGROUP_INFO_1002; + +struct GROUP_INFO_1005{ + DWORD grpi1005_attributes; +} +alias GROUP_INFO_1005* PGROUP_INFO_1005, LPGROUP_INFO_1005; + +struct GROUP_USERS_INFO_0{ + LPWSTR grui0_name; +} +alias GROUP_USERS_INFO_0* PGROUP_USERS_INFO_0, LPGROUP_USERS_INFO_0; + +struct GROUP_USERS_INFO_1{ + LPWSTR grui1_name; + DWORD grui1_attributes; +} +alias GROUP_USERS_INFO_1* PGROUP_USERS_INFO_1, LPGROUP_USERS_INFO_1; + +struct LOCALGROUP_INFO_0{ + LPWSTR lgrpi0_name; +} +alias LOCALGROUP_INFO_0* PLOCALGROUP_INFO_0, LPLOCALGROUP_INFO_0; + +struct LOCALGROUP_INFO_1{ + LPWSTR lgrpi1_name; + LPWSTR lgrpi1_comment; +} +alias LOCALGROUP_INFO_1* PLOCALGROUP_INFO_1, LPLOCALGROUP_INFO_1; + +struct LOCALGROUP_INFO_1002{ + LPWSTR lgrpi1002_comment; +} +alias LOCALGROUP_INFO_1002* PLOCALGROUP_INFO_1002, LPLOCALGROUP_INFO_1002; + +struct LOCALGROUP_MEMBERS_INFO_0{ + PSID lgrmi0_sid; +} +alias LOCALGROUP_MEMBERS_INFO_0* PLOCALGROUP_MEMBERS_INFO_0, LPLOCALGROUP_MEMBERS_INFO_0; + +struct LOCALGROUP_MEMBERS_INFO_1{ + PSID lgrmi1_sid; + SID_NAME_USE lgrmi1_sidusage; + LPWSTR lgrmi1_name; +} +alias LOCALGROUP_MEMBERS_INFO_1* PLOCALGROUP_MEMBERS_INFO_1, LPLOCALGROUP_MEMBERS_INFO_1; + +struct LOCALGROUP_MEMBERS_INFO_2{ + PSID lgrmi2_sid; + SID_NAME_USE lgrmi2_sidusage; + LPWSTR lgrmi2_domainandname; +} +alias LOCALGROUP_MEMBERS_INFO_2* PLOCALGROUP_MEMBERS_INFO_2, LPLOCALGROUP_MEMBERS_INFO_2; + +struct LOCALGROUP_MEMBERS_INFO_3{ + LPWSTR lgrmi3_domainandname; +} +alias LOCALGROUP_MEMBERS_INFO_3* PLOCALGROUP_MEMBERS_INFO_3, LPLOCALGROUP_MEMBERS_INFO_3; + +struct LOCALGROUP_USERS_INFO_0{ + LPWSTR lgrui0_name; +} +alias LOCALGROUP_USERS_INFO_0* PLOCALGROUP_USERS_INFO_0, LPLOCALGROUP_USERS_INFO_0; + +struct NET_DISPLAY_USER{ + LPWSTR usri1_name; + LPWSTR usri1_comment; + DWORD usri1_flags; + LPWSTR usri1_full_name; + DWORD usri1_user_id; + DWORD usri1_next_index; +} +alias NET_DISPLAY_USER* PNET_DISPLAY_USER; + +struct NET_DISPLAY_MACHINE{ + LPWSTR usri2_name; + LPWSTR usri2_comment; + DWORD usri2_flags; + DWORD usri2_user_id; + DWORD usri2_next_index; +} +alias NET_DISPLAY_MACHINE* PNET_DISPLAY_MACHINE; + +struct NET_DISPLAY_GROUP{ + LPWSTR grpi3_name; + LPWSTR grpi3_comment; + DWORD grpi3_group_id; + DWORD grpi3_attributes; + DWORD grpi3_next_index; +} +alias NET_DISPLAY_GROUP* PNET_DISPLAY_GROUP; + +struct ACCESS_INFO_0{ + LPTSTR acc0_resource_name; +} +alias ACCESS_INFO_0* PACCESS_INFO_0, LPACCESS_INFO_0; + +struct ACCESS_INFO_1{ + LPTSTR acc1_resource_name; + DWORD acc1_attr; + DWORD acc1_count; +} +alias ACCESS_INFO_1* PACCESS_INFO_1, LPACCESS_INFO_1; + +struct ACCESS_INFO_1002{ + DWORD acc1002_attr; +} +alias ACCESS_INFO_1002* PACCESS_INFO_1002, LPACCESS_INFO_1002; + +struct ACCESS_LIST{ + LPTSTR acl_ugname; + DWORD acl_access; +} +alias ACCESS_LIST* PACCESS_LIST, LPACCESS_LIST; + +struct NETLOGON_INFO_1{ + DWORD netlog1_flags; + NET_API_STATUS netlog1_pdc_connection_status; +} +alias NETLOGON_INFO_1* PNETLOGON_INFO_1; + +struct NETLOGON_INFO_2{ + DWORD netlog2_flags; + NET_API_STATUS netlog2_pdc_connection_status; + LPWSTR netlog2_trusted_dc_name; + NET_API_STATUS netlog2_tc_connection_status; +} +alias NETLOGON_INFO_2* PNETLOGON_INFO_2; + +struct NETLOGON_INFO_3{ + DWORD netlog3_flags; + DWORD netlog3_logon_attempts; + DWORD netlog3_reserved1; + DWORD netlog3_reserved2; + DWORD netlog3_reserved3; + DWORD netlog3_reserved4; + DWORD netlog3_reserved5; +} +alias NETLOGON_INFO_3* PNETLOGON_INFO_3; + +extern (Windows) { +deprecated { + /* These are obsolete */ + NET_API_STATUS NetAccessAdd(LPCWSTR,DWORD,PBYTE,PDWORD); + NET_API_STATUS NetAccessEnum(LPCWSTR,LPCWSTR,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); + NET_API_STATUS NetAccessGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); + NET_API_STATUS NetAccessSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD); + NET_API_STATUS NetAccessDel(LPCWSTR,LPCWSTR); + NET_API_STATUS NetAccessGetUserPerms(LPCWSTR,LPCWSTR,LPCWSTR,PDWORD); +} +NET_API_STATUS NetUserAdd(LPCWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetUserEnum(LPCWSTR,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); +NET_API_STATUS NetUserGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); +NET_API_STATUS NetUserSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetUserDel(LPCWSTR,LPCWSTR); +NET_API_STATUS NetUserGetGroups(LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD); +NET_API_STATUS NetUserSetGroups(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD); +NET_API_STATUS NetUserGetLocalGroups(LPCWSTR,LPCWSTR,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD); +NET_API_STATUS NetUserModalsGet(LPCWSTR,DWORD,PBYTE*); +NET_API_STATUS NetUserModalsSet(LPCWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetUserChangePassword(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR); +NET_API_STATUS NetGroupAdd(LPCWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetGroupAddUser(LPCWSTR,LPCWSTR,LPCWSTR); +NET_API_STATUS NetGroupEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); +NET_API_STATUS NetGroupGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); +NET_API_STATUS NetGroupSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetGroupDel(LPCWSTR,LPCWSTR); +NET_API_STATUS NetGroupDelUser(LPCWSTR,LPCWSTR,LPCWSTR); +NET_API_STATUS NetGroupGetUsers(LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); +NET_API_STATUS NetGroupSetUsers(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD); +NET_API_STATUS NetLocalGroupAdd(LPCWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetLocalGroupAddMember(LPCWSTR,LPCWSTR,PSID); +NET_API_STATUS NetLocalGroupEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); +NET_API_STATUS NetLocalGroupGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); +NET_API_STATUS NetLocalGroupSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetLocalGroupDel(LPCWSTR,LPCWSTR); +NET_API_STATUS NetLocalGroupDelMember(LPCWSTR,LPCWSTR,PSID); +NET_API_STATUS NetLocalGroupGetMembers(LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD, +PDWORD,PDWORD,PDWORD); +NET_API_STATUS NetLocalGroupSetMembers(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD); +NET_API_STATUS NetLocalGroupAddMembers(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD); +NET_API_STATUS NetLocalGroupDelMembers(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD); +NET_API_STATUS NetQueryDisplayInformation(LPCWSTR,DWORD,DWORD,DWORD,DWORD,PDWORD,PVOID*); +NET_API_STATUS NetGetDisplayInformationIndex(LPCWSTR,DWORD,LPCWSTR,PDWORD); +NET_API_STATUS NetGetDCName(LPCWSTR,LPCWSTR,PBYTE*); +NET_API_STATUS NetGetAnyDCName(LPCWSTR,LPCWSTR,PBYTE*); +NET_API_STATUS I_NetLogonControl(LPCWSTR,DWORD,DWORD,PBYTE*); +NET_API_STATUS I_NetLogonControl2(LPCWSTR,DWORD,DWORD,PBYTE,PBYTE*); +} ADDED src/win32/lmalert.d Index: src/win32/lmalert.d ================================================================== --- src/win32/lmalert.d +++ src/win32/lmalert.d @@ -0,0 +1,77 @@ +/***********************************************************************\ +* lmalert.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmalert; +pragma(lib, "netapi32.lib"); + +private import win32.lmcons, win32.windef; + +const TCHAR[] + ALERTER_MAILSLOT = `\\.\MAILSLOT\Alerter`, + ALERT_PRINT_EVENT = "PRINTING", + ALERT_MESSAGE_EVENT = "MESSAGE", + ALERT_ERRORLOG_EVENT = "ERRORLOG", + ALERT_ADMIN_EVENT = "ADMIN", + ALERT_USER_EVENT = "USER"; +//MACRO #define ALERT_OTHER_INFO(x) ((PBYTE)(x)+sizeof(STD_ALERT)) + +//MACRO #define ALERT_VAR_DATA(p) ((PBYTE)(p)+sizeof(*p)) + +const PRJOB_QSTATUS = 3; +const PRJOB_DEVSTATUS = 508; +const PRJOB_COMPLETE = 4; +const PRJOB_INTERV = 8; +const PRJOB_ = 16; +const PRJOB_DESTOFFLINE = 32; +const PRJOB_DESTPAUSED = 64; +const PRJOB_NOTIFY = 128; +const PRJOB_DESTNOPAPER = 256; +const PRJOB_DELETED = 32768; +const PRJOB_QS_QUEUED = 0; +const PRJOB_QS_PAUSED = 1; +const PRJOB_QS_SPOOLING = 2; +const PRJOB_QS_PRINTING = 3; + +struct ADMIN_OTHER_INFO{ + DWORD alrtad_errcode; + DWORD alrtad_numstrings; +} +alias ADMIN_OTHER_INFO* PADMIN_OTHER_INFO, LPADMIN_OTHER_INFO; + +struct STD_ALERT{ + DWORD alrt_timestamp; + TCHAR alrt_eventname[EVLEN+1]; + TCHAR alrt_servicename[SNLEN+1]; +} +alias STD_ALERT* PSTD_ALERT, LPSTD_ALERT; + +struct ERRLOG_OTHER_INFO{ + DWORD alrter_errcode; + DWORD alrter_offset; +} +alias ERRLOG_OTHER_INFO* PERRLOG_OTHER_INFO, LPERRLOG_OTHER_INFO; + +struct PRINT_OTHER_INFO{ + DWORD alrtpr_jobid; + DWORD alrtpr_status; + DWORD alrtpr_submitted; + DWORD alrtpr_size; +} +alias PRINT_OTHER_INFO* PPRINT_OTHER_INFO, LPPRINT_OTHER_INFO; + +struct USER_OTHER_INFO{ + DWORD alrtus_errcode; + DWORD alrtus_numstrings; +} +alias USER_OTHER_INFO* PUSER_OTHER_INFO, LPUSER_OTHER_INFO; + +extern (Windows) { +NET_API_STATUS NetAlertRaise(LPCWSTR,PVOID,DWORD); +NET_API_STATUS NetAlertRaiseEx(LPCWSTR,PVOID,DWORD,LPCWSTR); +} ADDED src/win32/lmapibuf.d Index: src/win32/lmapibuf.d ================================================================== --- src/win32/lmapibuf.d +++ src/win32/lmapibuf.d @@ -0,0 +1,21 @@ +/***********************************************************************\ +* lmapibuf.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmapibuf; +pragma(lib, "netapi32.lib"); + +private import win32.lmcons, win32.windef; + +extern (Windows) { + NET_API_STATUS NetApiBufferAllocate(DWORD, PVOID*); + NET_API_STATUS NetApiBufferFree(PVOID); + NET_API_STATUS NetApiBufferReallocate(PVOID, DWORD, PVOID*); + NET_API_STATUS NetApiBufferSize(PVOID, PDWORD); + NET_API_STATUS NetapipBufferAllocate(DWORD, PVOID*); +} ADDED src/win32/lmat.d Index: src/win32/lmat.d ================================================================== --- src/win32/lmat.d +++ src/win32/lmat.d @@ -0,0 +1,50 @@ +/***********************************************************************\ +* lmat.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmat; +pragma(lib, "netapi32.lib"); + +private import win32.lmcons, win32.windef; + +const JOB_RUN_PERIODICALLY = 1; +const JOB_EXEC_ERROR = 2; +const JOB_RUNS_TODAY = 4; +const JOB_ADD_CURRENT_DATE = 8; +const JOB_NONINTERACTIVE = 16; +const JOB_INPUT_FLAGS = JOB_RUN_PERIODICALLY | JOB_ADD_CURRENT_DATE + | JOB_NONINTERACTIVE; +const JOB_OUTPUT_FLAGS = JOB_RUN_PERIODICALLY | JOB_EXEC_ERROR + | JOB_RUNS_TODAY | JOB_NONINTERACTIVE; + +struct AT_ENUM { + DWORD JobId; + DWORD JobTime; + DWORD DaysOfMonth; + UCHAR DaysOfWeek; + UCHAR Flags; + LPWSTR Command; +} +alias AT_ENUM* PAT_ENUM, LPAT_ENUM; + +struct AT_INFO { + DWORD JobTime; + DWORD DaysOfMonth; + UCHAR DaysOfWeek; + UCHAR Flags; + LPWSTR Command; +} +alias AT_INFO* PAT_INFO, LPAT_INFO; + +extern (Windows) { + NET_API_STATUS NetScheduleJobAdd(LPWSTR, PBYTE, LPDWORD); + NET_API_STATUS NetScheduleJobDel(LPWSTR, DWORD, DWORD); + NET_API_STATUS NetScheduleJobEnum(LPWSTR, PBYTE*, DWORD, PDWORD, PDWORD, + PDWORD); + NET_API_STATUS NetScheduleJobGetInfo(LPWSTR, DWORD, PBYTE*); +} ADDED src/win32/lmaudit.d Index: src/win32/lmaudit.d ================================================================== --- src/win32/lmaudit.d +++ src/win32/lmaudit.d @@ -0,0 +1,302 @@ +/***********************************************************************\ +* lmaudit.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +// COMMENT: This file may be deprecated. +module win32.lmaudit; + +private import win32.lmcons, win32.windef; + +const LOGFLAGS_FORWARD = 0; +const LOGFLAGS_BACKWARD = 1; +const LOGFLAGS_SEEK = 2; + +const ACTION_LOCKOUT = 0; +const ACTION_ADMINUNLOCK = 1; + +const AE_GUEST=0; +const AE_USER=1; +const AE_ADMIN=2; +const AE_NORMAL=0; +const AE_USERLIMIT=0; +const AE_GENERAL=0; +const AE_ERROR=1; +const AE_SESSDIS=1; +const AE_BADPW=1; +const AE_AUTODIS=2; +const AE_UNSHARE=2; +const AE_ADMINPRIVREQD=2; +const AE_ADMINDIS=3; +const AE_NOACCESSPERM=3; +const AE_ACCRESTRICT=4; +const AE_NORMAL_CLOSE=0; +const AE_SES_CLOSE=1; +const AE_ADMIN_CLOSE=2; +const AE_LIM_UNKNOWN=0; +const AE_LIM_LOGONHOURS=1; +const AE_LIM_EXPIRED=2; +const AE_LIM_INVAL_WKSTA=3; +const AE_LIM_DISABLED=4; +const AE_LIM_DELETED=5; +const AE_MOD=0; +const AE_DELETE=1; +const AE_ADD=2; + +const AE_UAS_USER = 0; +const AE_UAS_GROUP = 1; +const AE_UAS_MODALS = 2; + +const SVAUD_SERVICE = 1; +const SVAUD_GOODSESSLOGON = 6; +const SVAUD_BADSESSLOGON = 24; +const SVAUD_SESSLOGON = SVAUD_GOODSESSLOGON|SVAUD_BADSESSLOGON; +const SVAUD_GOODNETLOGON = 96; +const SVAUD_BADNETLOGON = 384; +const SVAUD_NETLOGON = SVAUD_GOODNETLOGON|SVAUD_BADNETLOGON; +const SVAUD_LOGON = SVAUD_NETLOGON|SVAUD_SESSLOGON; +const SVAUD_GOODUSE = 0x600; +const SVAUD_BADUSE = 0x1800; +const SVAUD_USE = SVAUD_GOODUSE|SVAUD_BADUSE; +const SVAUD_USERLIST = 8192; +const SVAUD_PERMISSIONS = 16384; +const SVAUD_RESOURCE = 32768; +const SVAUD_LOGONLIM = 65536; + +const AA_AUDIT_ALL=1; +const AA_A_OWNER=4; +const AA_CLOSE=8; +const AA_S_OPEN=16; +const AA_S_WRITE=32; +const AA_S_CREATE=32; +const AA_S_DELETE=64; +const AA_S_ACL=128; +const AA_S_ALL=253; +const AA_F_OPEN=256; +const AA_F_WRITE=512; +const AA_F_CREATE=512; +const AA_F_DELETE=1024; +const AA_F_ACL=2048; +const AA_F_ALL = AA_F_OPEN|AA_F_WRITE|AA_F_DELETE|AA_F_ACL; +const AA_A_OPEN=2048; +const AA_A_WRITE=4096; +const AA_A_CREATE=8192; +const AA_A_DELETE=16384; +const AA_A_ACL=32768; +const AA_A_ALL = AA_F_OPEN|AA_F_WRITE|AA_F_DELETE|AA_F_ACL; + +struct AUDIT_ENTRY{ + DWORD ae_len; + DWORD ae_reserved; + DWORD ae_time; + DWORD ae_type; + DWORD ae_data_offset; + DWORD ae_data_size; +} +alias AUDIT_ENTRY* PAUDIT_ENTRY, LPAUDIT_ENTRY; + +struct HLOG{ + DWORD time; + DWORD last_flags; + DWORD offset; + DWORD rec_offset; +} +alias HLOG* PHLOG, LPHLOG; + +struct AE_SRVSTATUS{ + DWORD ae_sv_status; +} +alias AE_SRVSTATUS* PAE_SRVSTATUS, LPAE_SRVSTATUS; + +struct AE_SESSLOGON{ + DWORD ae_so_compname; + DWORD ae_so_username; + DWORD ae_so_privilege; +} +alias AE_SESSLOGON* PAE_SESSLOGON, LPAE_SESSLOGON; + +struct AE_SESSLOGOFF{ + DWORD ae_sf_compname; + DWORD ae_sf_username; + DWORD ae_sf_reason; +} +alias AE_SESSLOGOFF* PAE_SESSLOGOFF, LPAE_SESSLOGOFF; + +struct AE_SESSPWERR{ + DWORD ae_sp_compname; + DWORD ae_sp_username; +} +alias AE_SESSPWERR* PAE_SESSPWERR, LPAE_SESSPWERR; + +struct AE_CONNSTART{ + DWORD ae_ct_compname; + DWORD ae_ct_username; + DWORD ae_ct_netname; + DWORD ae_ct_connid; +} +alias AE_CONNSTART* PAE_CONNSTART, LPAE_CONNSTART; + +struct AE_CONNSTOP{ + DWORD ae_cp_compname; + DWORD ae_cp_username; + DWORD ae_cp_netname; + DWORD ae_cp_connid; + DWORD ae_cp_reason; +} +alias AE_CONNSTOP* PAE_CONNSTOP, LPAE_CONNSTOP; + +struct AE_CONNREJ{ + DWORD ae_cr_compname; + DWORD ae_cr_username; + DWORD ae_cr_netname; + DWORD ae_cr_reason; +} +alias AE_CONNREJ* PAE_CONNREJ, LPAE_CONNREJ; + +struct AE_RESACCESS{ + DWORD ae_ra_compname; + DWORD ae_ra_username; + DWORD ae_ra_resname; + DWORD ae_ra_operation; + DWORD ae_ra_returncode; + DWORD ae_ra_restype; + DWORD ae_ra_fileid; +} +alias AE_RESACCESS* PAE_RESACCESS, LPAE_RESACCESS; + +struct AE_RESACCESSREJ{ + DWORD ae_rr_compname; + DWORD ae_rr_username; + DWORD ae_rr_resname; + DWORD ae_rr_operation; +} +alias AE_RESACCESSREJ* PAE_RESACCESSREJ, LPAE_RESACCESSREJ; + +struct AE_CLOSEFILE{ + DWORD ae_cf_compname; + DWORD ae_cf_username; + DWORD ae_cf_resname; + DWORD ae_cf_fileid; + DWORD ae_cf_duration; + DWORD ae_cf_reason; +} +alias AE_CLOSEFILE* PAE_CLOSEFILE, LPAE_CLOSEFILE; + +struct AE_SERVICESTAT{ + DWORD ae_ss_compname; + DWORD ae_ss_username; + DWORD ae_ss_svcname; + DWORD ae_ss_status; + DWORD ae_ss_code; + DWORD ae_ss_text; + DWORD ae_ss_returnval; +} +alias AE_SERVICESTAT* PAE_SERVICESTAT, LPAE_SERVICESTAT; + +struct AE_ACLMOD{ + DWORD ae_am_compname; + DWORD ae_am_username; + DWORD ae_am_resname; + DWORD ae_am_action; + DWORD ae_am_datalen; +} +alias AE_ACLMOD* PAE_ACLMOD, LPAE_ACLMOD; + +struct AE_UASMOD{ + DWORD ae_um_compname; + DWORD ae_um_username; + DWORD ae_um_resname; + DWORD ae_um_rectype; + DWORD ae_um_action; + DWORD ae_um_datalen; +} +alias AE_UASMOD* PAE_UASMOD, LPAE_UASMOD; + +struct AE_NETLOGON{ + DWORD ae_no_compname; + DWORD ae_no_username; + DWORD ae_no_privilege; + DWORD ae_no_authflags; +} +alias AE_NETLOGON* PAE_NETLOGON, LPAE_NETLOGON; + +struct AE_NETLOGOFF{ + DWORD ae_nf_compname; + DWORD ae_nf_username; + DWORD ae_nf_reserved1; + DWORD ae_nf_reserved2; +} +alias AE_NETLOGOFF* PAE_NETLOGOFF, LPAE_NETLOGOFF; + +struct AE_ACCLIM{ + DWORD ae_al_compname; + DWORD ae_al_username; + DWORD ae_al_resname; + DWORD ae_al_limit; +} +alias AE_ACCLIM* PAE_ACCLIM, LPAE_ACCLIM; + +struct AE_LOCKOUT{ + DWORD ae_lk_compname; + DWORD ae_lk_username; + DWORD ae_lk_action; + DWORD ae_lk_bad_pw_count; +} +alias AE_LOCKOUT* PAE_LOCKOUT, LPAE_LOCKOUT; + +struct AE_GENERIC{ + DWORD ae_ge_msgfile; + DWORD ae_ge_msgnum; + DWORD ae_ge_params; + DWORD ae_ge_param1; + DWORD ae_ge_param2; + DWORD ae_ge_param3; + DWORD ae_ge_param4; + DWORD ae_ge_param5; + DWORD ae_ge_param6; + DWORD ae_ge_param7; + DWORD ae_ge_param8; + DWORD ae_ge_param9; +} +alias AE_GENERIC* PAE_GENERIC, LPAE_GENERIC; + +extern (Windows) { +deprecated { +NET_API_STATUS NetAuditClear(LPCWSTR,LPCWSTR,LPCWSTR); +NET_API_STATUS NetAuditRead(LPTSTR,LPTSTR,LPHLOG,DWORD,PDWORD,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD); +NET_API_STATUS NetAuditWrite(DWORD,PBYTE,DWORD,LPTSTR,PBYTE); +} +} + +/+ +/* MinGW: These conflict with struct typedefs, why? */ +const AE_SRVSTATUS=0; +const AE_SESSLOGON=1; +const AE_SESSLOGOFF=2; +const AE_SESSPWERR=3; +const AE_CONNSTART=4; +const AE_CONNSTOP=5; +const AE_CONNREJ=6; +const AE_RESACCESS=7; +const AE_RESACCESSREJ=8; +const AE_CLOSEFILE=9; +const AE_SERVICESTAT=11; +const AE_ACLMOD=12; +const AE_UASMOD=13; +const AE_NETLOGON=14; +const AE_NETLOGOFF=15; +const AE_NETLOGDENIED=16; +const AE_ACCLIMITEXCD=17; +const AE_RESACCESS2=18; +const AE_ACLMODFAIL=19; +const AE_LOCKOUT=20; +const AE_GENERIC_TYPE=21; +const AE_SRVSTART=0; +const AE_SRVPAUSED=1; +const AE_SRVCONT=2; +const AE_SRVSTOP=3; ++/ ADDED src/win32/lmbrowsr.d Index: src/win32/lmbrowsr.d ================================================================== --- src/win32/lmbrowsr.d +++ src/win32/lmbrowsr.d @@ -0,0 +1,85 @@ +/***********************************************************************\ +* lmbrowsr.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmbrowsr; + +private import win32.lmcons, win32.windef; + +const BROWSER_ROLE_PDC = 1; +const BROWSER_ROLE_BDC = 2; + +struct BROWSER_STATISTICS { + LARGE_INTEGER StatisticsStartTime; + LARGE_INTEGER NumberOfServerAnnouncements; + LARGE_INTEGER NumberOfDomainAnnouncements; + ULONG NumberOfElectionPackets; + ULONG NumberOfMailslotWrites; + ULONG NumberOfGetBrowserServerListRequests; + ULONG NumberOfServerEnumerations; + ULONG NumberOfDomainEnumerations; + ULONG NumberOfOtherEnumerations; + ULONG NumberOfMissedServerAnnouncements; + ULONG NumberOfMissedMailslotDatagrams; + ULONG NumberOfMissedGetBrowserServerListRequests; + ULONG NumberOfFailedServerAnnounceAllocations; + ULONG NumberOfFailedMailslotAllocations; + ULONG NumberOfFailedMailslotReceives; + ULONG NumberOfFailedMailslotWrites; + ULONG NumberOfFailedMailslotOpens; + ULONG NumberOfDuplicateMasterAnnouncements; + LARGE_INTEGER NumberOfIllegalDatagrams; +} +alias BROWSER_STATISTICS* PBROWSER_STATISTICS, LPBROWSER_STATISTICS; + +struct BROWSER_STATISTICS_100 { + LARGE_INTEGER StartTime; + LARGE_INTEGER NumberOfServerAnnouncements; + LARGE_INTEGER NumberOfDomainAnnouncements; + ULONG NumberOfElectionPackets; + ULONG NumberOfMailslotWrites; + ULONG NumberOfGetBrowserServerListRequests; + LARGE_INTEGER NumberOfIllegalDatagrams; +} +alias BROWSER_STATISTICS_100* PBROWSER_STATISTICS_100; + +struct BROWSER_STATISTICS_101 { + LARGE_INTEGER StartTime; + LARGE_INTEGER NumberOfServerAnnouncements; + LARGE_INTEGER NumberOfDomainAnnouncements; + ULONG NumberOfElectionPackets; + ULONG NumberOfMailslotWrites; + ULONG NumberOfGetBrowserServerListRequests; + LARGE_INTEGER NumberOfIllegalDatagrams; + ULONG NumberOfMissedServerAnnouncements; + ULONG NumberOfMissedMailslotDatagrams; + ULONG NumberOfMissedGetBrowserServerListRequests; + ULONG NumberOfFailedServerAnnounceAllocations; + ULONG NumberOfFailedMailslotAllocations; + ULONG NumberOfFailedMailslotReceives; + ULONG NumberOfFailedMailslotWrites; + ULONG NumberOfFailedMailslotOpens; + ULONG NumberOfDuplicateMasterAnnouncements; +} +alias BROWSER_STATISTICS_101* PBROWSER_STATISTICS_101; + +extern (Windows) { + NET_API_STATUS I_BrowserServerEnum(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, + PBYTE*, DWORD, PDWORD, PDWORD, DWORD, LPCWSTR, PDWORD); + NET_API_STATUS I_BrowserServerEnumEx(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, + PBYTE*, DWORD, PDWORD, PDWORD, DWORD, LPCWSTR, LPCWSTR); + NET_API_STATUS I_BrowserQueryEmulatedDomains(LPWSTR, PBYTE*, PDWORD); + NET_API_STATUS I_BrowserQueryOtherDomains(LPCWSTR, PBYTE*, PDWORD, PDWORD); + NET_API_STATUS I_BrowserResetNetlogonState(LPCWSTR); + NET_API_STATUS I_BrowserSetNetlogonState(LPWSTR, LPWSTR, LPWSTR, DWORD); + NET_API_STATUS I_BrowserQueryStatistics(LPCWSTR, LPBROWSER_STATISTICS*); + NET_API_STATUS I_BrowserResetStatistics(LPCWSTR); + WORD I_BrowserServerEnumForXactsrv(LPCWSTR, LPCWSTR, ULONG, USHORT, PVOID, + WORD, DWORD, PDWORD, PDWORD, DWORD, LPCWSTR, LPCWSTR, PWORD); + NET_API_STATUS I_BrowserDebugTrace(PWCHAR, PCHAR); +} ADDED src/win32/lmchdev.d Index: src/win32/lmchdev.d ================================================================== --- src/win32/lmchdev.d +++ src/win32/lmchdev.d @@ -0,0 +1,90 @@ +/***********************************************************************\ +* lmchdev.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmchdev; + +// COMMENT: This file might be deprecated. + +private import win32.lmcons, win32.windef; + +const CHARDEVQ_NO_REQUESTS = -1; +const CHARDEV_CLOSE = 0; +const CHARDEVQ_MAX_PRIORITY = 1; +const CHARDEVQ_DEV_PARMNUM = 1; + +const HANDLE_INFO_LEVEL_1 = 1; +const HANDLE_CHARTIME_PARMNUM = 1; +const HANDLE_CHARCOUNT_PARMNUM = 2; + +const CHARDEV_STAT_OPENED = 2; +const CHARDEVQ_PRIORITY_PARMNUM = 2; +const CHARDEVQ_DEVS_PARMNUM = 3; +const CHARDEV_STAT_ERROR = 4; +const CHARDEVQ_NUMUSERS_PARMNUM = 4; +const CHARDEVQ_NUMAHEAD_PARMNUM = 5; +const CHARDEVQ_DEF_PRIORITY = 5; +const CHARDEVQ_PRIORITY_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+CHARDEVQ_PRIORITY_PARMNUM; +const CHARDEVQ_DEVS_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+CHARDEVQ_DEVS_PARMNUM; +const CHARDEVQ_MIN_PRIORITY = 9; + +struct CHARDEV_INFO_0 { + LPWSTR ch0_dev; +} +alias CHARDEV_INFO_0* PCHARDEV_INFO_0, LPCHARDEV_INFO_0; + +struct CHARDEV_INFO_1{ + LPWSTR ch1_dev; + DWORD ch1_status; + LPWSTR ch1_username; + DWORD ch1_time; +} +alias CHARDEV_INFO_1* PCHARDEV_INFO_1, LPCHARDEV_INFO_1; + +struct CHARDEVQ_INFO_0 { + LPWSTR cq0_dev; +} +alias CHARDEVQ_INFO_0* PCHARDEVQ_INFO_0, LPCHARDEVQ_INFO_0; + +struct CHARDEVQ_INFO_1{ + LPWSTR cq1_dev; + DWORD cq1_priority; + LPWSTR cq1_devs; + DWORD cq1_numusers; + DWORD cq1_numahead; +} +alias CHARDEVQ_INFO_1* PCHARDEVQ_INFO_1, LPCHARDEVQ_INFO_1; + +struct CHARDEVQ_INFO_1002 { + DWORD cq1002_priority; +} +alias CHARDEVQ_INFO_1002* PCHARDEVQ_INFO_1002, LPCHARDEVQ_INFO_1002; + +struct CHARDEVQ_INFO_1003 { + LPWSTR cq1003_devs; +} +alias CHARDEVQ_INFO_1003* PCHARDEVQ_INFO_1003, LPCHARDEVQ_INFO_1003; + +struct HANDLE_INFO_1{ + DWORD hdli1_chartime; + DWORD hdli1_charcount; +} +alias HANDLE_INFO_1* PHANDLE_INFO_1, LPHANDLE_INFO_1; + +extern (Windows) { + NET_API_STATUS NetCharDevEnum(LPCWSTR, DWORD, PBYTE*, DWORD, PDWORD, PDWORD, PDWORD); + NET_API_STATUS NetCharDevGetInfo(LPCWSTR, LPCWSTR, DWORD, PBYTE*); + NET_API_STATUS NetCharDevControl(LPCWSTR, LPCWSTR, DWORD); + NET_API_STATUS NetCharDevQEnum(LPCWSTR, LPCWSTR, DWORD, PBYTE*, DWORD, PDWORD, PDWORD, PDWORD); + NET_API_STATUS NetCharDevQGetInfo(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, PBYTE*); + NET_API_STATUS NetCharDevQSetInfo(LPCWSTR, LPCWSTR, DWORD, PBYTE, PDWORD); + NET_API_STATUS NetCharDevQPurge(LPCWSTR, LPCWSTR); + NET_API_STATUS NetCharDevQPurgeSelf(LPCWSTR, LPCWSTR, LPCWSTR); + NET_API_STATUS NetHandleGetInfo(HANDLE, DWORD, PBYTE*); + NET_API_STATUS NetHandleSetInfo(HANDLE, DWORD, PBYTE, DWORD, PDWORD); +} ADDED src/win32/lmconfig.d Index: src/win32/lmconfig.d ================================================================== --- src/win32/lmconfig.d +++ src/win32/lmconfig.d @@ -0,0 +1,30 @@ +/***********************************************************************\ +* lmconfig.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmconfig; + +// All functions in this file are deprecated! + +private import win32.lmcons, win32.windef; + +deprecated { + struct CONFIG_INFO_0 { + LPWSTR cfgi0_key; + LPWSTR cfgi0_data; + } + + alias CONFIG_INFO_0* PCONFIG_INFO_0, LPCONFIG_INFO_0; + + extern (Windows) { + NET_API_STATUS NetConfigGet(LPCWSTR, LPCWSTR, LPCWSTR, PBYTE*); + NET_API_STATUS NetConfigGetAll(LPCWSTR, LPCWSTR, PBYTE*); + NET_API_STATUS NetConfigSet(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, DWORD, + PBYTE, DWORD); + } +} ADDED src/win32/lmcons.d Index: src/win32/lmcons.d ================================================================== --- src/win32/lmcons.d +++ src/win32/lmcons.d @@ -0,0 +1,86 @@ +/***********************************************************************\ +* lmcons.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmcons; + +private import win32.windef; +private import win32.lmerr; // for NERR_BASE + +const TCHAR[] + MESSAGE_FILENAME = "NETMSG", + OS2MSG_FILENAME = "BASE", + HELP_MSG_FILENAME = "NETH"; + +alias DWORD NET_API_STATUS, API_RET_TYPE; + +const MIN_LANMAN_MESSAGE_ID = NERR_BASE; +const MAX_LANMAN_MESSAGE_ID = 5799; + +const CNLEN = 15; /* also in nddeapi.h */ +const UNCLEN = CNLEN + 2; + +const DNLEN = 15; +const LM20_CNLEN = 15; +const LM20_DNLEN = 15; +const LM20_SNLEN = 15; +const LM20_STXTLEN = 63; +const LM20_UNCLEN = LM20_CNLEN + 2; +const LM20_NNLEN = 12; +const LM20_RMLEN = LM20_UNCLEN + 1 + LM20_NNLEN; +const NNLEN = 80; +const RMLEN = UNCLEN + 1 + NNLEN; +const SNLEN = 80; +const STXTLEN = 256; +const PATHLEN = 256; +const LM20_PATHLEN = 256; +const DEVLEN = 80; +const LM20_DEVLEN = 8; +const EVLEN = 16; +const UNLEN = 256; +const LM20_UNLEN = 20; +const GNLEN = UNLEN; +const LM20_GNLEN = LM20_UNLEN; +const PWLEN = 256; +const LM20_PWLEN = 14; +const SHPWLEN = 8; +const CLTYPE_LEN = 12; +const QNLEN = NNLEN; +const LM20_QNLEN = LM20_NNLEN; + +const MAXCOMMENTSZ = 256; +const LM20_MAXCOMMENTSZ = 48; +const ALERTSZ = 128; +const MAXDEVENTRIES = 32;// (sizeof(int)*8); +const NETBIOS_NAME_LEN = 16; +const DWORD MAX_PREFERRED_LENGTH = -1; +const CRYPT_KEY_LEN = 7; +const CRYPT_TXT_LEN = 8; +const ENCRYPTED_PWLEN = 16; +const SESSION_PWLEN = 24; +const SESSION_CRYPT_KLEN = 21; + +const PARMNUM_ALL = 0; +const DWORD PARM_ERROR_UNKNOWN = -1; +const PARM_ERROR_NONE = 0; +const PARMNUM_BASE_INFOLEVEL = 1000; + +const PLATFORM_ID_DOS = 300; +const PLATFORM_ID_OS2 = 400; +const PLATFORM_ID_NT = 500; +const PLATFORM_ID_OSF = 600; +const PLATFORM_ID_VMS = 700; + +// this is a new typedef in W2K, but it should be harmless for earlier Windows versions. +version (Unicode) { + alias LPWSTR LMSTR; + alias LPCWSTR LMCSTR; +} else { + alias LPSTR LMSTR; + alias LPCSTR LMCSTR; +} ADDED src/win32/lmerr.d Index: src/win32/lmerr.d ================================================================== --- src/win32/lmerr.d +++ src/win32/lmerr.d @@ -0,0 +1,313 @@ +/***********************************************************************\ +* lmerr.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmerr; + +import win32.winerror; + +enum { + NERR_Success = 0, + NERR_BASE = 2100, + NERR_NetNotStarted = NERR_BASE + 2, + NERR_UnknownServer, + NERR_ShareMem, + NERR_NoNetworkResource, + NERR_RemoteOnly, + NERR_DevNotRedirected, + NERR_ServerNotStarted = NERR_BASE + 14, + NERR_ItemNotFound, + NERR_UnknownDevDir, + NERR_RedirectedPath, + NERR_DuplicateShare, + NERR_NoRoom, + NERR_TooManyItems = NERR_BASE + 21, + NERR_InvalidMaxUsers, + NERR_BufTooSmall, + NERR_RemoteErr = NERR_BASE + 27, + NERR_LanmanIniError = NERR_BASE + 31, + NERR_NetworkError = NERR_BASE + 36, + NERR_WkstaInconsistentState, + NERR_WkstaNotStarted, + NERR_BrowserNotStarted, + NERR_InternalError, + NERR_BadTransactConfig, + NERR_InvalidAPI, + NERR_BadEventName, + NERR_DupNameReboot, + NERR_CfgCompNotFound = NERR_BASE + 46, + NERR_CfgParamNotFound, + NERR_LineTooLong = NERR_BASE + 49, + NERR_QNotFound, + NERR_JobNotFound, + NERR_DestNotFound, + NERR_DestExists, + NERR_QExists, + NERR_QNoRoom, + NERR_JobNoRoom, + NERR_DestNoRoom, + NERR_DestIdle, + NERR_DestInvalidOp, + NERR_ProcNoRespond, + NERR_SpoolerNotLoaded, + NERR_DestInvalidState, + NERR_QInvalidState, + NERR_JobInvalidState, + NERR_SpoolNoMemory, + NERR_DriverNotFound, + NERR_DataTypeInvalid, + NERR_ProcNotFound, + NERR_ServiceTableLocked = NERR_BASE + 80, + NERR_ServiceTableFull, + NERR_ServiceInstalled, + NERR_ServiceEntryLocked, + NERR_ServiceNotInstalled, + NERR_BadServiceName, + NERR_ServiceCtlTimeout, + NERR_ServiceCtlBusy, + NERR_BadServiceProgName, + NERR_ServiceNotCtrl, + NERR_ServiceKillProc, + NERR_ServiceCtlNotValid, + NERR_NotInDispatchTbl, + NERR_BadControlRecv, + NERR_ServiceNotStarting, + NERR_AlreadyLoggedOn = NERR_BASE + 100, + NERR_NotLoggedOn, + NERR_BadUsername, + NERR_BadPassword, + NERR_UnableToAddName_W, + NERR_UnableToAddName_F, + NERR_UnableToDelName_W, + NERR_UnableToDelName_F, + NERR_LogonsPaused = NERR_BASE + 109, + NERR_LogonServerConflict, + NERR_LogonNoUserPath, + NERR_LogonScriptError, + NERR_StandaloneLogon = NERR_BASE + 114, + NERR_LogonServerNotFound, + NERR_LogonDomainExists, + NERR_NonValidatedLogon, + NERR_ACFNotFound = NERR_BASE + 119, + NERR_GroupNotFound, + NERR_UserNotFound, + NERR_ResourceNotFound, + NERR_GroupExists, + NERR_UserExists, + NERR_ResourceExists, + NERR_NotPrimary, + NERR_ACFNotLoaded, + NERR_ACFNoRoom, + NERR_ACFFileIOFail, + NERR_ACFTooManyLists, + NERR_UserLogon, + NERR_ACFNoParent, + NERR_CanNotGrowSegment, + NERR_SpeGroupOp, + NERR_NotInCache, + NERR_UserInGroup, + NERR_UserNotInGroup, + NERR_AccountUndefined, + NERR_AccountExpired, + NERR_InvalidWorkstation, + NERR_InvalidLogonHours, + NERR_PasswordExpired, + NERR_PasswordCantChange, + NERR_PasswordHistConflict, + NERR_PasswordTooShort, + NERR_PasswordTooRecent, + NERR_InvalidDatabase, + NERR_DatabaseUpToDate, + NERR_SyncRequired, + NERR_UseNotFound, + NERR_BadAsgType, + NERR_DeviceIsShared, + NERR_NoComputerName = NERR_BASE + 170, + NERR_MsgAlreadyStarted, + NERR_MsgInitFailed, + NERR_NameNotFound, + NERR_AlreadyForwarded, + NERR_AddForwarded, + NERR_AlreadyExists, + NERR_TooManyNames, + NERR_DelComputerName, + NERR_LocalForward, + NERR_GrpMsgProcessor, + NERR_PausedRemote, + NERR_BadReceive, + NERR_NameInUse, + NERR_MsgNotStarted, + NERR_NotLocalName, + NERR_NoForwardName, + NERR_RemoteFull, + NERR_NameNotForwarded, + NERR_TruncatedBroadcast, + NERR_InvalidDevice = NERR_BASE + 194, + NERR_WriteFault, + NERR_DuplicateName = NERR_BASE + 197, + NERR_DeleteLater, + NERR_IncompleteDel, + NERR_MultipleNets, + NERR_NetNameNotFound = NERR_BASE + 210, + NERR_DeviceNotShared, + NERR_ClientNameNotFound, + NERR_FileIdNotFound = NERR_BASE + 214, + NERR_ExecFailure, + NERR_TmpFile, + NERR_TooMuchData, + NERR_DeviceShareConflict, + NERR_BrowserTableIncomplete, + NERR_NotLocalDomain, + NERR_DevInvalidOpCode = NERR_BASE + 231, + NERR_DevNotFound, + NERR_DevNotOpen, + NERR_BadQueueDevString, + NERR_BadQueuePriority, + NERR_NoCommDevs = NERR_BASE + 237, + NERR_QueueNotFound, + NERR_BadDevString = NERR_BASE + 240, + NERR_BadDev, + NERR_InUseBySpooler, + NERR_CommDevInUse, + NERR_InvalidComputer = NERR_BASE + 251, + NERR_MaxLenExceeded = NERR_BASE + 254, + NERR_BadComponent = NERR_BASE + 256, + NERR_CantType, + NERR_TooManyEntries = NERR_BASE + 262, + NERR_ProfileFileTooBig = NERR_BASE + 270, + NERR_ProfileOffset, + NERR_ProfileCleanup, + NERR_ProfileUnknownCmd, + NERR_ProfileLoadErr, + NERR_ProfileSaveErr, + NERR_LogOverflow = NERR_BASE + 277, + NERR_LogFileChanged, + NERR_LogFileCorrupt, + NERR_SourceIsDir, + NERR_BadSource, + NERR_BadDest, + NERR_DifferentServers, + NERR_RunSrvPaused = NERR_BASE + 285, + NERR_ErrCommRunSrv = NERR_BASE + 289, + NERR_ErrorExecingGhost = NERR_BASE + 291, + NERR_ShareNotFound, + NERR_InvalidLana = NERR_BASE + 300, + NERR_OpenFiles, + NERR_ActiveConns, + NERR_BadPasswordCore, + NERR_DevInUse, + NERR_LocalDrive, + NERR_AlertExists = NERR_BASE + 330, + NERR_TooManyAlerts, + NERR_NoSuchAlert, + NERR_BadRecipient, + NERR_AcctLimitExceeded, + NERR_InvalidLogSeek = NERR_BASE + 340, + NERR_BadUasConfig = NERR_BASE + 350, + NERR_InvalidUASOp, + NERR_LastAdmin, + NERR_DCNotFound, + NERR_LogonTrackingError, + NERR_NetlogonNotStarted, + NERR_CanNotGrowUASFile, + NERR_TimeDiffAtDC, + NERR_PasswordMismatch, + NERR_NoSuchServer = NERR_BASE + 360, + NERR_NoSuchSession, + NERR_NoSuchConnection, + NERR_TooManyServers, + NERR_TooManySessions, + NERR_TooManyConnections, + NERR_TooManyFiles, + NERR_NoAlternateServers, + NERR_TryDownLevel = NERR_BASE + 370, + NERR_UPSDriverNotStarted = NERR_BASE + 380, + NERR_UPSInvalidConfig, + NERR_UPSInvalidCommPort, + NERR_UPSSignalAsserted, + NERR_UPSShutdownFailed, + NERR_BadDosRetCode = NERR_BASE + 400, + NERR_ProgNeedsExtraMem, + NERR_BadDosFunction, + NERR_RemoteBootFailed, + NERR_BadFileCheckSum, + NERR_NoRplBootSystem, + NERR_RplLoadrNetBiosErr, + NERR_RplLoadrDiskErr, + NERR_ImageParamErr, + NERR_TooManyImageParams, + NERR_NonDosFloppyUsed, + NERR_RplBootRestart, + NERR_RplSrvrCallFailed, + NERR_CantConnectRplSrvr, + NERR_CantOpenImageFile, + NERR_CallingRplSrvr, + NERR_StartingRplBoot, + NERR_RplBootServiceTerm, + NERR_RplBootStartFailed, + NERR_RPL_CONNECTED, + NERR_BrowserConfiguredToNotRun = NERR_BASE + 450, + NERR_RplNoAdaptersStarted = NERR_BASE + 510, + NERR_RplBadRegistry, + NERR_RplBadDatabase, + NERR_RplRplfilesShare, + NERR_RplNotRplServer, + NERR_RplCannotEnum, + NERR_RplWkstaInfoCorrupted, + NERR_RplWkstaNotFound, + NERR_RplWkstaNameUnavailable, + NERR_RplProfileInfoCorrupted, + NERR_RplProfileNotFound, + NERR_RplProfileNameUnavailable, + NERR_RplProfileNotEmpty, + NERR_RplConfigInfoCorrupted, + NERR_RplConfigNotFound, + NERR_RplAdapterInfoCorrupted, + NERR_RplInternal, + NERR_RplVendorInfoCorrupted, + NERR_RplBootInfoCorrupted, + NERR_RplWkstaNeedsUserAcct, + NERR_RplNeedsRPLUSERAcct, + NERR_RplBootNotFound, + NERR_RplIncompatibleProfile, + NERR_RplAdapterNameUnavailable, + NERR_RplConfigNotEmpty, + NERR_RplBootInUse, + NERR_RplBackupDatabase, + NERR_RplAdapterNotFound, + NERR_RplVendorNotFound, + NERR_RplVendorNameUnavailable, + NERR_RplBootNameUnavailable, + NERR_RplConfigNameUnavailable, + NERR_DfsInternalCorruption = NERR_BASE + 560, + NERR_DfsVolumeDataCorrupt, + NERR_DfsNoSuchVolume, + NERR_DfsVolumeAlreadyExists, + NERR_DfsAlreadyShared, + NERR_DfsNoSuchShare, + NERR_DfsNotALeafVolume, + NERR_DfsLeafVolume, + NERR_DfsVolumeHasMultipleServers, + NERR_DfsCantCreateJunctionPoint, + NERR_DfsServerNotDfsAware, + NERR_DfsBadRenamePath, + NERR_DfsVolumeIsOffline, + NERR_DfsNoSuchServer, + NERR_DfsCyclicalName, + NERR_DfsNotSupportedInServerDfs, + NERR_DfsDuplicateService, + NERR_DfsCantRemoveLastServerShare, + NERR_DfsVolumeIsInterDfs, + NERR_DfsInconsistent, + NERR_DfsServerUpgraded, + NERR_DfsDataIsIdentical, + NERR_DfsCantRemoveDfsRoot, + NERR_DfsChildOrParentInDfs, + NERR_DfsInternalError = NERR_BASE + 590, + MAX_NERR = NERR_BASE + 899 +} ADDED src/win32/lmerrlog.d Index: src/win32/lmerrlog.d ================================================================== --- src/win32/lmerrlog.d +++ src/win32/lmerrlog.d @@ -0,0 +1,222 @@ +/***********************************************************************\ +* lmerrlog.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmerrlog; + +// COMMENT: This appears to be only for Win16. All functions are deprecated. + +private import win32.lmcons, win32.windef; +private import win32.lmaudit; // for LPHLOG + +const ERRLOG_BASE=3100; +const ERRLOG2_BASE=5700; +const LOGFLAGS_FORWARD=0; +const LOGFLAGS_BACKWARD=1; +const LOGFLAGS_SEEK=2; +const NELOG_Internal_Error=ERRLOG_BASE; +const NELOG_Resource_Shortage=(ERRLOG_BASE+1); +const NELOG_Unable_To_Lock_Segment=(ERRLOG_BASE+2); +const NELOG_Unable_To_Unlock_Segment=(ERRLOG_BASE+3); +const NELOG_Uninstall_Service=(ERRLOG_BASE+4); +const NELOG_Init_Exec_Fail=(ERRLOG_BASE+5); +const NELOG_Ncb_Error=(ERRLOG_BASE+6); +const NELOG_Net_Not_Started=(ERRLOG_BASE+7); +const NELOG_Ioctl_Error=(ERRLOG_BASE+8); +const NELOG_System_Semaphore=(ERRLOG_BASE+9); +const NELOG_Init_OpenCreate_Err=(ERRLOG_BASE+10); +const NELOG_NetBios=(ERRLOG_BASE+11); +const NELOG_SMB_Illegal=(ERRLOG_BASE+12); +const NELOG_Service_Fail=(ERRLOG_BASE+13); +const NELOG_Entries_Lost=(ERRLOG_BASE+14); +const NELOG_Init_Seg_Overflow=(ERRLOG_BASE+20); +const NELOG_Srv_No_Mem_Grow=(ERRLOG_BASE+21); +const NELOG_Access_File_Bad=(ERRLOG_BASE+22); +const NELOG_Srvnet_Not_Started=(ERRLOG_BASE+23); +const NELOG_Init_Chardev_Err=(ERRLOG_BASE+24); +const NELOG_Remote_API=(ERRLOG_BASE+25); +const NELOG_Ncb_TooManyErr=(ERRLOG_BASE+26); +const NELOG_Mailslot_err=(ERRLOG_BASE+27); +const NELOG_ReleaseMem_Alert=(ERRLOG_BASE+28); +const NELOG_AT_cannot_write=(ERRLOG_BASE+29); +const NELOG_Cant_Make_Msg_File=(ERRLOG_BASE+30); +const NELOG_Exec_Netservr_NoMem=(ERRLOG_BASE+31); +const NELOG_Server_Lock_Failure=(ERRLOG_BASE+32); +const NELOG_Msg_Shutdown=(ERRLOG_BASE+40); +const NELOG_Msg_Sem_Shutdown=(ERRLOG_BASE+41); +const NELOG_Msg_Log_Err=(ERRLOG_BASE+50); +const NELOG_VIO_POPUP_ERR=(ERRLOG_BASE+51); +const NELOG_Msg_Unexpected_SMB_Type=(ERRLOG_BASE+52); +const NELOG_Wksta_Infoseg=(ERRLOG_BASE+60); +const NELOG_Wksta_Compname=(ERRLOG_BASE+61); +const NELOG_Wksta_BiosThreadFailure=(ERRLOG_BASE+62); +const NELOG_Wksta_IniSeg=(ERRLOG_BASE+63); +const NELOG_Wksta_HostTab_Full=(ERRLOG_BASE+64); +const NELOG_Wksta_Bad_Mailslot_SMB=(ERRLOG_BASE+65); +const NELOG_Wksta_UASInit=(ERRLOG_BASE+66); +const NELOG_Wksta_SSIRelogon=(ERRLOG_BASE+67); +const NELOG_Build_Name=(ERRLOG_BASE+70); +const NELOG_Name_Expansion=(ERRLOG_BASE+71); +const NELOG_Message_Send=(ERRLOG_BASE+72); +const NELOG_Mail_Slt_Err=(ERRLOG_BASE+73); +const NELOG_AT_cannot_read=(ERRLOG_BASE+74); +const NELOG_AT_sched_err=(ERRLOG_BASE+75); +const NELOG_AT_schedule_file_created=(ERRLOG_BASE+76); +const NELOG_Srvnet_NB_Open=(ERRLOG_BASE+77); +const NELOG_AT_Exec_Err=(ERRLOG_BASE+78); +const NELOG_Lazy_Write_Err=(ERRLOG_BASE+80); +const NELOG_HotFix=(ERRLOG_BASE+81); +const NELOG_HardErr_From_Server=(ERRLOG_BASE+82); +const NELOG_LocalSecFail1=(ERRLOG_BASE+83); +const NELOG_LocalSecFail2=(ERRLOG_BASE+84); +const NELOG_LocalSecFail3=(ERRLOG_BASE+85); +const NELOG_LocalSecGeneralFail=(ERRLOG_BASE+86); +const NELOG_NetWkSta_Internal_Error=(ERRLOG_BASE+90); +const NELOG_NetWkSta_No_Resource=(ERRLOG_BASE+91); +const NELOG_NetWkSta_SMB_Err=(ERRLOG_BASE+92); +const NELOG_NetWkSta_VC_Err=(ERRLOG_BASE+93); +const NELOG_NetWkSta_Stuck_VC_Err=(ERRLOG_BASE+94); +const NELOG_NetWkSta_NCB_Err=(ERRLOG_BASE+95); +const NELOG_NetWkSta_Write_Behind_Err=(ERRLOG_BASE+96); +const NELOG_NetWkSta_Reset_Err=(ERRLOG_BASE+97); +const NELOG_NetWkSta_Too_Many=(ERRLOG_BASE+98); +const NELOG_Srv_Thread_Failure=(ERRLOG_BASE+104); +const NELOG_Srv_Close_Failure=(ERRLOG_BASE+105); +const NELOG_ReplUserCurDir=(ERRLOG_BASE+106); +const NELOG_ReplCannotMasterDir=(ERRLOG_BASE+107); +const NELOG_ReplUpdateError=(ERRLOG_BASE+108); +const NELOG_ReplLostMaster=(ERRLOG_BASE+109); +const NELOG_NetlogonAuthDCFail=(ERRLOG_BASE+110); +const NELOG_ReplLogonFailed=(ERRLOG_BASE+111); +const NELOG_ReplNetErr=(ERRLOG_BASE+112); +const NELOG_ReplMaxFiles=(ERRLOG_BASE+113); +const NELOG_ReplMaxTreeDepth=(ERRLOG_BASE+114); +const NELOG_ReplBadMsg=(ERRLOG_BASE+115); +const NELOG_ReplSysErr=(ERRLOG_BASE+116); +const NELOG_ReplUserLoged=(ERRLOG_BASE+117); +const NELOG_ReplBadImport=(ERRLOG_BASE+118); +const NELOG_ReplBadExport=(ERRLOG_BASE+119); +const NELOG_ReplSignalFileErr=(ERRLOG_BASE+120); +const NELOG_DiskFT=(ERRLOG_BASE+121); +const NELOG_ReplAccessDenied=(ERRLOG_BASE+122); +const NELOG_NetlogonFailedPrimary=(ERRLOG_BASE+123); +const NELOG_NetlogonPasswdSetFailed=(ERRLOG_BASE+124); +const NELOG_NetlogonTrackingError=(ERRLOG_BASE+125); +const NELOG_NetlogonSyncError=(ERRLOG_BASE+126); +const NELOG_UPS_PowerOut=(ERRLOG_BASE+130); +const NELOG_UPS_Shutdown=(ERRLOG_BASE+131); +const NELOG_UPS_CmdFileError=(ERRLOG_BASE+132); +const NELOG_UPS_CannotOpenDriver=(ERRLOG_BASE+133); +const NELOG_UPS_PowerBack=(ERRLOG_BASE+134); +const NELOG_UPS_CmdFileConfig=(ERRLOG_BASE+135); +const NELOG_UPS_CmdFileExec=(ERRLOG_BASE+136); +const NELOG_Missing_Parameter=(ERRLOG_BASE+150); +const NELOG_Invalid_Config_Line=(ERRLOG_BASE+151); +const NELOG_Invalid_Config_File=(ERRLOG_BASE+152); +const NELOG_File_Changed=(ERRLOG_BASE+153); +const NELOG_Files_Dont_Fit=(ERRLOG_BASE+154); +const NELOG_Wrong_DLL_Version=(ERRLOG_BASE+155); +const NELOG_Error_in_DLL=(ERRLOG_BASE+156); +const NELOG_System_Error=(ERRLOG_BASE+157); +const NELOG_FT_ErrLog_Too_Large=(ERRLOG_BASE+158); +const NELOG_FT_Update_In_Progress=(ERRLOG_BASE+159); +const NELOG_OEM_Code=(ERRLOG_BASE+199); +const NELOG_NetlogonSSIInitError=ERRLOG2_BASE; +const NELOG_NetlogonFailedToUpdateTrustList=(ERRLOG2_BASE+1); +const NELOG_NetlogonFailedToAddRpcInterface=(ERRLOG2_BASE+2); +const NELOG_NetlogonFailedToReadMailslot=(ERRLOG2_BASE+3); +const NELOG_NetlogonFailedToRegisterSC=(ERRLOG2_BASE+4); +const NELOG_NetlogonChangeLogCorrupt=(ERRLOG2_BASE+5); +const NELOG_NetlogonFailedToCreateShare=(ERRLOG2_BASE+6); +const NELOG_NetlogonDownLevelLogonFailed=(ERRLOG2_BASE+7); +const NELOG_NetlogonDownLevelLogoffFailed=(ERRLOG2_BASE+8); +const NELOG_NetlogonNTLogonFailed=(ERRLOG2_BASE+9); +const NELOG_NetlogonNTLogoffFailed=(ERRLOG2_BASE+10); +const NELOG_NetlogonPartialSyncCallSuccess=(ERRLOG2_BASE+11); +const NELOG_NetlogonPartialSyncCallFailed=(ERRLOG2_BASE+12); +const NELOG_NetlogonFullSyncCallSuccess=(ERRLOG2_BASE+13); +const NELOG_NetlogonFullSyncCallFailed=(ERRLOG2_BASE+14); +const NELOG_NetlogonPartialSyncSuccess=(ERRLOG2_BASE+15); +const NELOG_NetlogonPartialSyncFailed=(ERRLOG2_BASE+16); +const NELOG_NetlogonFullSyncSuccess=(ERRLOG2_BASE+17); +const NELOG_NetlogonFullSyncFailed=(ERRLOG2_BASE+18); +const NELOG_NetlogonAuthNoDomainController=(ERRLOG2_BASE+19); +const NELOG_NetlogonAuthNoTrustLsaSecret=(ERRLOG2_BASE+20); +const NELOG_NetlogonAuthNoTrustSamAccount=(ERRLOG2_BASE+21); +const NELOG_NetlogonServerAuthFailed=(ERRLOG2_BASE+22); +const NELOG_NetlogonServerAuthNoTrustSamAccount=(ERRLOG2_BASE+23); +const NELOG_FailedToRegisterSC=(ERRLOG2_BASE+24); +const NELOG_FailedToSetServiceStatus=(ERRLOG2_BASE+25); +const NELOG_FailedToGetComputerName=(ERRLOG2_BASE+26); +const NELOG_DriverNotLoaded=(ERRLOG2_BASE+27); +const NELOG_NoTranportLoaded=(ERRLOG2_BASE+28); +const NELOG_NetlogonFailedDomainDelta=(ERRLOG2_BASE+29); +const NELOG_NetlogonFailedGlobalGroupDelta=(ERRLOG2_BASE+30); +const NELOG_NetlogonFailedLocalGroupDelta=(ERRLOG2_BASE+31); +const NELOG_NetlogonFailedUserDelta=(ERRLOG2_BASE+32); +const NELOG_NetlogonFailedPolicyDelta=(ERRLOG2_BASE+33); +const NELOG_NetlogonFailedTrustedDomainDelta=(ERRLOG2_BASE+34); +const NELOG_NetlogonFailedAccountDelta=(ERRLOG2_BASE+35); +const NELOG_NetlogonFailedSecretDelta=(ERRLOG2_BASE+36); +const NELOG_NetlogonSystemError=(ERRLOG2_BASE+37); +const NELOG_NetlogonDuplicateMachineAccounts=(ERRLOG2_BASE+38); +const NELOG_NetlogonTooManyGlobalGroups=(ERRLOG2_BASE+39); +const NELOG_NetlogonBrowserDriver=(ERRLOG2_BASE+40); +const NELOG_NetlogonAddNameFailure=(ERRLOG2_BASE+41); +const NELOG_RplMessages=(ERRLOG2_BASE+42); +const NELOG_RplXnsBoot=(ERRLOG2_BASE+43); +const NELOG_RplSystem=(ERRLOG2_BASE+44); +const NELOG_RplWkstaTimeout=(ERRLOG2_BASE+45); +const NELOG_RplWkstaFileOpen=(ERRLOG2_BASE+46); +const NELOG_RplWkstaFileRead=(ERRLOG2_BASE+47); +const NELOG_RplWkstaMemory=(ERRLOG2_BASE+48); +const NELOG_RplWkstaFileChecksum=(ERRLOG2_BASE+49); +const NELOG_RplWkstaFileLineCount=(ERRLOG2_BASE+50); +const NELOG_RplWkstaBbcFile=(ERRLOG2_BASE+51); +const NELOG_RplWkstaFileSize=(ERRLOG2_BASE+52); +const NELOG_RplWkstaInternal=(ERRLOG2_BASE+53); +const NELOG_RplWkstaWrongVersion=(ERRLOG2_BASE+54); +const NELOG_RplWkstaNetwork=(ERRLOG2_BASE+55); +const NELOG_RplAdapterResource=(ERRLOG2_BASE+56); +const NELOG_RplFileCopy=(ERRLOG2_BASE+57); +const NELOG_RplFileDelete=(ERRLOG2_BASE+58); +const NELOG_RplFilePerms=(ERRLOG2_BASE+59); +const NELOG_RplCheckConfigs=(ERRLOG2_BASE+60); +const NELOG_RplCreateProfiles=(ERRLOG2_BASE+61); +const NELOG_RplRegistry=(ERRLOG2_BASE+62); +const NELOG_RplReplaceRPLDISK=(ERRLOG2_BASE+63); +const NELOG_RplCheckSecurity=(ERRLOG2_BASE+64); +const NELOG_RplBackupDatabase=(ERRLOG2_BASE+65); +const NELOG_RplInitDatabase=(ERRLOG2_BASE+66); +const NELOG_RplRestoreDatabaseFailure=(ERRLOG2_BASE+67); +const NELOG_RplRestoreDatabaseSuccess=(ERRLOG2_BASE+68); +const NELOG_RplInitRestoredDatabase=(ERRLOG2_BASE+69); +const NELOG_NetlogonSessionTypeWrong=(ERRLOG2_BASE+70); + +struct ERROR_LOG { + DWORD el_len; + DWORD el_reserved; + DWORD el_time; + DWORD el_error; + LPWSTR el_name; + LPWSTR el_text; + LPBYTE el_data; + DWORD el_data_size; + DWORD el_nstrings; +} +alias ERROR_LOG* PERROR_LOG, LPERROR_LOG; + +extern (Windows) { + deprecated { + NET_API_STATUS NetErrorLogClear(LPCWSTR, LPCWSTR, LPBYTE); + NET_API_STATUS NetErrorLogRead(LPCWSTR, LPWSTR, LPHLOG, DWORD, + LPDWORD, DWORD, DWORD, LPBYTE*, DWORD, LPDWORD, LPDWORD); + NET_API_STATUS NetErrorLogWrite(LPBYTE, DWORD, LPCWSTR, LPBYTE, + DWORD, LPBYTE, DWORD, LPBYTE); + } +} ADDED src/win32/lmmsg.d Index: src/win32/lmmsg.d ================================================================== --- src/win32/lmmsg.d +++ src/win32/lmmsg.d @@ -0,0 +1,43 @@ +/***********************************************************************\ +* lmmsg.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmmsg; +pragma(lib, "netapi32.lib"); + +private import win32.lmcons, win32.windef, win32.w32api; + +static assert (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x501, + "win32.lmmsg is available only if version WindowsXP, Windows2003 " + "or WindowsVista is set"); + +const MSGNAME_NOT_FORWARDED = 0; +const MSGNAME_FORWARDED_TO = 4; +const MSGNAME_FORWARDED_FROM = 16; + +struct MSG_INFO_0 { + LPWSTR msgi0_name; +} +alias MSG_INFO_0* PMSG_INFO_0, LPMSG_INFO_0; + +struct MSG_INFO_1 { + LPWSTR msgi1_name; + DWORD msgi1_forward_flag; + LPWSTR msgi1_forward; +} +alias MSG_INFO_1* PMSG_INFO_1, LPMSG_INFO_1; + +extern (Windows) { + NET_API_STATUS NetMessageBufferSend(LPCWSTR, LPCWSTR, LPCWSTR, PBYTE, + DWORD); + NET_API_STATUS NetMessageNameAdd(LPCWSTR, LPCWSTR); + NET_API_STATUS NetMessageNameDel(LPCWSTR, LPCWSTR); + NET_API_STATUS NetMessageNameEnum(LPCWSTR, DWORD, PBYTE*, DWORD, PDWORD, + PDWORD, PDWORD); + NET_API_STATUS NetMessageNameGetInfo(LPCWSTR, LPCWSTR, DWORD, PBYTE*); +} ADDED src/win32/lmremutl.d Index: src/win32/lmremutl.d ================================================================== --- src/win32/lmremutl.d +++ src/win32/lmremutl.d @@ -0,0 +1,60 @@ +/***********************************************************************\ +* lmremutl.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmremutl; +pragma(lib, "netapi32.lib"); + +// D Conversion Note: DESC_CHAR is defined as TCHAR. + +private import win32.lmcons, win32.windef; + +const SUPPORTS_REMOTE_ADMIN_PROTOCOL = 2; +const SUPPORTS_RPC = 4; +const SUPPORTS_SAM_PROTOCOL = 8; +const SUPPORTS_UNICODE = 16; +const SUPPORTS_LOCAL = 32; +const SUPPORTS_ANY = 0xFFFFFFFF; + +const NO_PERMISSION_REQUIRED = 1; +const ALLOCATE_RESPONSE = 2; +const USE_SPECIFIC_TRANSPORT = 0x80000000; + +//[Yes] #ifndef DESC_CHAR_UNICODE +//alias CHAR DESC_CHAR; +//} else { +//[No] #else +//[No] typedef WCHAR DESC_CHAR; +//[No] #endif +// FIXME (D): Is this OK? +alias TCHAR DESC_CHAR; + +alias DESC_CHAR* LPDESC; + +struct TIME_OF_DAY_INFO { + DWORD tod_elapsedt; + DWORD tod_msecs; + DWORD tod_hours; + DWORD tod_mins; + DWORD tod_secs; + DWORD tod_hunds; + LONG tod_timezone; + DWORD tod_tinterval; + DWORD tod_day; + DWORD tod_month; + DWORD tod_year; + DWORD tod_weekday; +} +alias TIME_OF_DAY_INFO* PTIME_OF_DAY_INFO, LPTIME_OF_DAY_INFO; + +extern (Windows) { + NET_API_STATUS NetRemoteTOD(LPCWSTR, PBYTE*); + NET_API_STATUS NetRemoteComputerSupports(LPCWSTR, DWORD, PDWORD); + NET_API_STATUS RxRemoteApi(DWORD, LPCWSTR, LPDESC, LPDESC, LPDESC, + LPDESC, LPDESC, LPDESC, LPDESC, DWORD, ...); +} ADDED src/win32/lmrepl.d Index: src/win32/lmrepl.d ================================================================== --- src/win32/lmrepl.d +++ src/win32/lmrepl.d @@ -0,0 +1,134 @@ +/***********************************************************************\ +* lmrepl.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmrepl; +pragma(lib, "netapi32.lib"); + +private import win32.lmcons, win32.windef; + +const REPL_ROLE_EXPORT=1; +const REPL_ROLE_IMPORT=2; +const REPL_ROLE_BOTH=3; + +const REPL_INTERVAL_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+0; +const REPL_PULSE_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+1; +const REPL_GUARDTIME_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+2; +const REPL_RANDOM_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+3; + +const REPL_UNLOCK_NOFORCE=0; +const REPL_UNLOCK_FORCE=1; +const REPL_STATE_OK=0; +const REPL_STATE_NO_MASTER=1; +const REPL_STATE_NO_SYNC=2; +const REPL_STATE_NEVER_REPLICATED=3; +const REPL_INTEGRITY_FILE=1; +const REPL_INTEGRITY_TREE=2; +const REPL_EXTENT_FILE=1; +const REPL_EXTENT_TREE=2; + +const REPL_EXPORT_INTEGRITY_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+0; +const REPL_EXPORT_EXTENT_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+1; + +struct REPL_INFO_0 { + DWORD rp0_role; + LPWSTR rp0_exportpath; + LPWSTR rp0_exportlist; + LPWSTR rp0_importpath; + LPWSTR rp0_importlist; + LPWSTR rp0_logonusername; + DWORD rp0_interval; + DWORD rp0_pulse; + DWORD rp0_guardtime; + DWORD rp0_random; +} +alias REPL_INFO_0* PREPL_INFO_0, LPREPL_INFO_0; + +struct REPL_INFO_1000 { + DWORD rp1000_interval; +} +alias REPL_INFO_1000* PREPL_INFO_1000, LPREPL_INFO_1000; + +struct REPL_INFO_1001 { + DWORD rp1001_pulse; +} +alias REPL_INFO_1001* PREPL_INFO_1001, LPREPL_INFO_1001; + +struct REPL_INFO_1002 { + DWORD rp1002_guardtime; +} +alias REPL_INFO_1002* PREPL_INFO_1002, LPREPL_INFO_1002; + +struct REPL_INFO_1003 { + DWORD rp1003_random; +} +alias REPL_INFO_1003* PREPL_INFO_1003, LPREPL_INFO_1003; + +struct REPL_EDIR_INFO_0 { + LPWSTR rped0_dirname; +} +alias REPL_EDIR_INFO_0* PREPL_EDIR_INFO_0, LPREPL_EDIR_INFO_0; + +struct REPL_EDIR_INFO_1 { + LPWSTR rped1_dirname; + DWORD rped1_integrity; + DWORD rped1_extent; +} +alias REPL_EDIR_INFO_1* PREPL_EDIR_INFO_1, LPREPL_EDIR_INFO_1; + +struct REPL_EDIR_INFO_2 { + LPWSTR rped2_dirname; + DWORD rped2_integrity; + DWORD rped2_extent; + DWORD rped2_lockcount; + DWORD rped2_locktime; +} +alias REPL_EDIR_INFO_2* PREPL_EDIR_INFO_2, LPREPL_EDIR_INFO_2; + +struct REPL_EDIR_INFO_1000 { + DWORD rped1000_integrity; +} +alias REPL_EDIR_INFO_1000* PREPL_EDIR_INFO_1000, LPREPL_EDIR_INFO_1000; + +struct REPL_EDIR_INFO_1001 { + DWORD rped1001_extent; +} +alias REPL_EDIR_INFO_1001* PREPL_EDIR_INFO_1001, LPREPL_EDIR_INFO_1001; + +struct REPL_IDIR_INFO_0 { + LPWSTR rpid0_dirname; +} +alias REPL_IDIR_INFO_0* PREPL_IDIR_INFO_0, LPREPL_IDIR_INFO_0; + +struct REPL_IDIR_INFO_1 { + LPWSTR rpid1_dirname; + DWORD rpid1_state; + LPWSTR rpid1_mastername; + DWORD rpid1_last_update_time; + DWORD rpid1_lockcount; + DWORD rpid1_locktime; +} +alias REPL_IDIR_INFO_1* PREPL_IDIR_INFO_1, LPREPL_IDIR_INFO_1; + +extern (Windows) { +NET_API_STATUS NetReplGetInfo(LPCWSTR,DWORD,PBYTE*); +NET_API_STATUS NetReplSetInfo(LPCWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetReplExportDirAdd(LPCWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetReplExportDirDel(LPCWSTR,LPCWSTR); +NET_API_STATUS NetReplExportDirEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); +NET_API_STATUS NetReplExportDirGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); +NET_API_STATUS NetReplExportDirSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetReplExportDirLock(LPCWSTR,LPCWSTR); +NET_API_STATUS NetReplExportDirUnlock(LPCWSTR,LPCWSTR,DWORD); +NET_API_STATUS NetReplImportDirAdd(LPCWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetReplImportDirDel(LPCWSTR,LPCWSTR); +NET_API_STATUS NetReplImportDirEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); +NET_API_STATUS NetReplImportDirGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); +NET_API_STATUS NetReplImportDirLock(LPCWSTR,LPCWSTR); +NET_API_STATUS NetReplImportDirUnlock(LPCWSTR,LPCWSTR,DWORD); +} ADDED src/win32/lmserver.d Index: src/win32/lmserver.d ================================================================== --- src/win32/lmserver.d +++ src/win32/lmserver.d @@ -0,0 +1,941 @@ +/***********************************************************************\ +* lmserver.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmserver; + +import win32.winsvc; +private import win32.lmcons, win32.windef; + +struct SERVER_INFO_100 { + DWORD sv100_platform_id; + LPWSTR sv100_name; +} +alias SERVER_INFO_100* PSERVER_INFO_100, LPSERVER_INFO_100; + +struct SERVER_INFO_101 { + DWORD sv101_platform_id; + LPWSTR sv101_name; + DWORD sv101_version_major; + DWORD sv101_version_minor; + DWORD sv101_type; + LPWSTR sv101_comment; +} +alias SERVER_INFO_101* PSERVER_INFO_101, LPSERVER_INFO_101; + +struct SERVER_INFO_102 { + DWORD sv102_platform_id; + LPWSTR sv102_name; + DWORD sv102_version_major; + DWORD sv102_version_minor; + DWORD sv102_type; + LPWSTR sv102_comment; + DWORD sv102_users; + LONG sv102_disc; + BOOL sv102_hidden; + DWORD sv102_announce; + DWORD sv102_anndelta; + DWORD sv102_licenses; + LPWSTR sv102_userpath; +} +alias SERVER_INFO_102* PSERVER_INFO_102, LPSERVER_INFO_102; + +struct SERVER_INFO_402 { + DWORD sv402_ulist_mtime; + DWORD sv402_glist_mtime; + DWORD sv402_alist_mtime; + LPWSTR sv402_alerts; + DWORD sv402_security; + DWORD sv402_numadmin; + DWORD sv402_lanmask; + LPWSTR sv402_guestacct; + DWORD sv402_chdevs; + DWORD sv402_chdevq; + DWORD sv402_chdevjobs; + DWORD sv402_connections; + DWORD sv402_shares; + DWORD sv402_openfiles; + DWORD sv402_sessopens; + DWORD sv402_sessvcs; + DWORD sv402_sessreqs; + DWORD sv402_opensearch; + DWORD sv402_activelocks; + DWORD sv402_numreqbuf; + DWORD sv402_sizreqbuf; + DWORD sv402_numbigbuf; + DWORD sv402_numfiletasks; + DWORD sv402_alertsched; + DWORD sv402_erroralert; + DWORD sv402_logonalert; + DWORD sv402_accessalert; + DWORD sv402_diskalert; + DWORD sv402_netioalert; + DWORD sv402_maxauditsz; + LPWSTR sv402_srvheuristics; +} +alias SERVER_INFO_402* PSERVER_INFO_402, LPSERVER_INFO_402; + +struct SERVER_INFO_403 { + DWORD sv403_ulist_mtime; + DWORD sv403_glist_mtime; + DWORD sv403_alist_mtime; + LPWSTR sv403_alerts; + DWORD sv403_security; + DWORD sv403_numadmin; + DWORD sv403_lanmask; + LPWSTR sv403_guestacct; + DWORD sv403_chdevs; + DWORD sv403_chdevq; + DWORD sv403_chdevjobs; + DWORD sv403_connections; + DWORD sv403_shares; + DWORD sv403_openfiles; + DWORD sv403_sessopens; + DWORD sv403_sessvcs; + DWORD sv403_sessreqs; + DWORD sv403_opensearch; + DWORD sv403_activelocks; + DWORD sv403_numreqbuf; + DWORD sv403_sizreqbuf; + DWORD sv403_numbigbuf; + DWORD sv403_numfiletasks; + DWORD sv403_alertsched; + DWORD sv403_erroralert; + DWORD sv403_logonalert; + DWORD sv403_accessalert; + DWORD sv403_diskalert; + DWORD sv403_netioalert; + DWORD sv403_maxauditsz; + LPWSTR sv403_srvheuristics; + DWORD sv403_auditedevents; + DWORD sv403_autoprofile; + LPWSTR sv403_autopath; +} +alias SERVER_INFO_403* PSERVER_INFO_403, LPSERVER_INFO_403; + +struct SERVER_INFO_502 { + DWORD sv502_sessopens; + DWORD sv502_sessvcs; + DWORD sv502_opensearch; + DWORD sv502_sizreqbuf; + DWORD sv502_initworkitems; + DWORD sv502_maxworkitems; + DWORD sv502_rawworkitems; + DWORD sv502_irpstacksize; + DWORD sv502_maxrawbuflen; + DWORD sv502_sessusers; + DWORD sv502_sessconns; + DWORD sv502_maxpagedmemoryusage; + DWORD sv502_maxnonpagedmemoryusage; + BOOL sv502_enablesoftcompat; + BOOL sv502_enableforcedlogoff; + BOOL sv502_timesource; + BOOL sv502_acceptdownlevelapis; + BOOL sv502_lmannounce; +} +alias SERVER_INFO_502* PSERVER_INFO_502, LPSERVER_INFO_502; + +struct SERVER_INFO_503 { + DWORD sv503_sessopens; + DWORD sv503_sessvcs; + DWORD sv503_opensearch; + DWORD sv503_sizreqbuf; + DWORD sv503_initworkitems; + DWORD sv503_maxworkitems; + DWORD sv503_rawworkitems; + DWORD sv503_irpstacksize; + DWORD sv503_maxrawbuflen; + DWORD sv503_sessusers; + DWORD sv503_sessconns; + DWORD sv503_maxpagedmemoryusage; + DWORD sv503_maxnonpagedmemoryusage; + BOOL sv503_enablesoftcompat; + BOOL sv503_enableforcedlogoff; + BOOL sv503_timesource; + BOOL sv503_acceptdownlevelapis; + BOOL sv503_lmannounce; + LPWSTR sv503_domain; + DWORD sv503_maxcopyreadlen; + DWORD sv503_maxcopywritelen; + DWORD sv503_minkeepsearch; + DWORD sv503_maxkeepsearch; + DWORD sv503_minkeepcomplsearch; + DWORD sv503_maxkeepcomplsearch; + DWORD sv503_threadcountadd; + DWORD sv503_numblockthreads; + DWORD sv503_scavtimeout; + DWORD sv503_minrcvqueue; + DWORD sv503_minfreeworkitems; + DWORD sv503_xactmemsize; + DWORD sv503_threadpriority; + DWORD sv503_maxmpxct; + DWORD sv503_oplockbreakwait; + DWORD sv503_oplockbreakresponsewait; + BOOL sv503_enableoplocks; + BOOL sv503_enableoplockforceclose; + BOOL sv503_enablefcbopens; + BOOL sv503_enableraw; + BOOL sv503_enablesharednetdrives; + DWORD sv503_minfreeconnections; + DWORD sv503_maxfreeconnections; +} +alias SERVER_INFO_503* PSERVER_INFO_503, LPSERVER_INFO_503; + +struct SERVER_INFO_599 { + DWORD sv599_sessopens; + DWORD sv599_sessvcs; + DWORD sv599_opensearch; + DWORD sv599_sizreqbuf; + DWORD sv599_initworkitems; + DWORD sv599_maxworkitems; + DWORD sv599_rawworkitems; + DWORD sv599_irpstacksize; + DWORD sv599_maxrawbuflen; + DWORD sv599_sessusers; + DWORD sv599_sessconns; + DWORD sv599_maxpagedmemoryusage; + DWORD sv599_maxnonpagedmemoryusage; + BOOL sv599_enablesoftcompat; + BOOL sv599_enableforcedlogoff; + BOOL sv599_timesource; + BOOL sv599_acceptdownlevelapis; + BOOL sv599_lmannounce; + LPWSTR sv599_domain; + DWORD sv599_maxcopyreadlen; + DWORD sv599_maxcopywritelen; + DWORD sv599_minkeepsearch; + DWORD sv599_maxkeepsearch; + DWORD sv599_minkeepcomplsearch; + DWORD sv599_maxkeepcomplsearch; + DWORD sv599_threadcountadd; + DWORD sv599_numblockthreads; + DWORD sv599_scavtimeout; + DWORD sv599_minrcvqueue; + DWORD sv599_minfreeworkitems; + DWORD sv599_xactmemsize; + DWORD sv599_threadpriority; + DWORD sv599_maxmpxct; + DWORD sv599_oplockbreakwait; + DWORD sv599_oplockbreakresponsewait; + BOOL sv599_enableoplocks; + BOOL sv599_enableoplockforceclose; + BOOL sv599_enablefcbopens; + BOOL sv599_enableraw; + BOOL sv599_enablesharednetdrives; + DWORD sv599_minfreeconnections; + DWORD sv599_maxfreeconnections; + DWORD sv599_initsesstable; + DWORD sv599_initconntable; + DWORD sv599_initfiletable; + DWORD sv599_initsearchtable; + DWORD sv599_alertschedule; + DWORD sv599_errorthreshold; + DWORD sv599_networkerrorthreshold; + DWORD sv599_diskspacethreshold; + DWORD sv599_reserved; + DWORD sv599_maxlinkdelay; + DWORD sv599_minlinkthroughput; + DWORD sv599_linkinfovalidtime; + DWORD sv599_scavqosinfoupdatetime; + DWORD sv599_maxworkitemidletime; +} +alias SERVER_INFO_599* PSERVER_INFO_599, LPSERVER_INFO_599; + +struct SERVER_INFO_598 { + DWORD sv598_maxrawworkitems; + DWORD sv598_maxthreadsperqueue; + DWORD sv598_producttype; + DWORD sv598_serversize; + DWORD sv598_connectionlessautodisc; + DWORD sv598_sharingviolationretries; + DWORD sv598_sharingviolationdelay; + DWORD sv598_maxglobalopensearch; + DWORD sv598_removeduplicatesearches; + DWORD sv598_lockviolationoffset; + DWORD sv598_lockviolationdelay; + DWORD sv598_mdlreadswitchover; + DWORD sv598_cachedopenlimit; + DWORD sv598_otherqueueaffinity; + BOOL sv598_restrictnullsessaccess; + BOOL sv598_enablewfw311directipx; + DWORD sv598_queuesamplesecs; + DWORD sv598_balancecount; + DWORD sv598_preferredaffinity; + DWORD sv598_maxfreerfcbs; + DWORD sv598_maxfreemfcbs; + DWORD sv598_maxfreelfcbs; + DWORD sv598_maxfreepagedpoolchunks; + DWORD sv598_minpagedpoolchunksize; + DWORD sv598_maxpagedpoolchunksize; + BOOL sv598_sendsfrompreferredprocessor; +} +alias SERVER_INFO_598* PSERVER_INFO_598, LPSERVER_INFO_598; + +struct SERVER_INFO_1005 { + LPWSTR sv1005_comment; +} +alias SERVER_INFO_1005* PSERVER_INFO_1005, LPSERVER_INFO_1005; + +struct SERVER_INFO_1107 { + DWORD sv1107_users; +} +alias SERVER_INFO_1107* PSERVER_INFO_1107, LPSERVER_INFO_1107; + +struct SERVER_INFO_1010 { + LONG sv1010_disc; +} +alias SERVER_INFO_1010* PSERVER_INFO_1010, LPSERVER_INFO_1010; + +struct SERVER_INFO_1016 { + BOOL sv1016_hidden; +} +alias SERVER_INFO_1016* PSERVER_INFO_1016, LPSERVER_INFO_1016; + +struct SERVER_INFO_1017 { + DWORD sv1017_announce; +} +alias SERVER_INFO_1017* PSERVER_INFO_1017, LPSERVER_INFO_1017; + +struct SERVER_INFO_1018 { + DWORD sv1018_anndelta; +} +alias SERVER_INFO_1018* PSERVER_INFO_1018, LPSERVER_INFO_1018; + +struct SERVER_INFO_1501 { + DWORD sv1501_sessopens; +} +alias SERVER_INFO_1501* PSERVER_INFO_1501, LPSERVER_INFO_1501; + +struct SERVER_INFO_1502 { + DWORD sv1502_sessvcs; +} +alias SERVER_INFO_1502* PSERVER_INFO_1502, LPSERVER_INFO_1502; + +struct SERVER_INFO_1503 { + DWORD sv1503_opensearch; +} +alias SERVER_INFO_1503* PSERVER_INFO_1503, LPSERVER_INFO_1503; + +struct SERVER_INFO_1506 { + DWORD sv1506_maxworkitems; +} +alias SERVER_INFO_1506* PSERVER_INFO_1506, LPSERVER_INFO_1506; + +struct SERVER_INFO_1509 { + DWORD sv1509_maxrawbuflen; +} +alias SERVER_INFO_1509* PSERVER_INFO_1509, LPSERVER_INFO_1509; + +struct SERVER_INFO_1510 { + DWORD sv1510_sessusers; +} +alias SERVER_INFO_1510* PSERVER_INFO_1510, LPSERVER_INFO_1510; + +struct SERVER_INFO_1511 { + DWORD sv1511_sessconns; +} alias SERVER_INFO_1511* PSERVER_INFO_1511, LPSERVER_INFO_1511; + +struct SERVER_INFO_1512 { + DWORD sv1512_maxnonpagedmemoryusage; +} +alias SERVER_INFO_1512* PSERVER_INFO_1512, LPSERVER_INFO_1512; + +struct SERVER_INFO_1513 { + DWORD sv1513_maxpagedmemoryusage; +} +alias SERVER_INFO_1513* PSERVER_INFO_1513, LPSERVER_INFO_1513; + +struct SERVER_INFO_1514 { + BOOL sv1514_enablesoftcompat; +} +alias SERVER_INFO_1514* PSERVER_INFO_1514, LPSERVER_INFO_1514; + +struct SERVER_INFO_1515 { + BOOL sv1515_enableforcedlogoff; +} +alias SERVER_INFO_1515* PSERVER_INFO_1515, LPSERVER_INFO_1515; + +struct SERVER_INFO_1516 { + BOOL sv1516_timesource; +} +alias SERVER_INFO_1516* PSERVER_INFO_1516, LPSERVER_INFO_1516; + +struct SERVER_INFO_1518 { + BOOL sv1518_lmannounce; +} +alias SERVER_INFO_1518* PSERVER_INFO_1518, LPSERVER_INFO_1518; + +struct SERVER_INFO_1520 { + DWORD sv1520_maxcopyreadlen; +} +alias SERVER_INFO_1520* PSERVER_INFO_1520, LPSERVER_INFO_1520; + +struct SERVER_INFO_1521 { + DWORD sv1521_maxcopywritelen; +} +alias SERVER_INFO_1521* PSERVER_INFO_1521, LPSERVER_INFO_1521; + +struct SERVER_INFO_1522 { + DWORD sv1522_minkeepsearch; +} +alias SERVER_INFO_1522* PSERVER_INFO_1522, LPSERVER_INFO_1522; + +struct SERVER_INFO_1523 { + DWORD sv1523_maxkeepsearch; +} +alias SERVER_INFO_1523* PSERVER_INFO_1523, LPSERVER_INFO_1523; + +struct SERVER_INFO_1524 { + DWORD sv1524_minkeepcomplsearch; +} +alias SERVER_INFO_1524* PSERVER_INFO_1524, LPSERVER_INFO_1524; + +struct SERVER_INFO_1525 { + DWORD sv1525_maxkeepcomplsearch; +} +alias SERVER_INFO_1525* PSERVER_INFO_1525, LPSERVER_INFO_1525; + +struct SERVER_INFO_1528 { + DWORD sv1528_scavtimeout; +} +alias SERVER_INFO_1528* PSERVER_INFO_1528, LPSERVER_INFO_1528; + +struct SERVER_INFO_1529 { + DWORD sv1529_minrcvqueue; +} +alias SERVER_INFO_1529* PSERVER_INFO_1529, LPSERVER_INFO_1529; + +struct SERVER_INFO_1530 { + DWORD sv1530_minfreeworkitems; +} +alias SERVER_INFO_1530* PSERVER_INFO_1530, LPSERVER_INFO_1530; + +struct SERVER_INFO_1533 { + DWORD sv1533_maxmpxct; +} +alias SERVER_INFO_1533* PSERVER_INFO_1533, LPSERVER_INFO_1533; + +struct SERVER_INFO_1534 { + DWORD sv1534_oplockbreakwait; +} +alias SERVER_INFO_1534* PSERVER_INFO_1534, LPSERVER_INFO_1534; + +struct SERVER_INFO_1535 { + DWORD sv1535_oplockbreakresponsewait; +} +alias SERVER_INFO_1535* PSERVER_INFO_1535, LPSERVER_INFO_1535; + +struct SERVER_INFO_1536 { + BOOL sv1536_enableoplocks; +} +alias SERVER_INFO_1536* PSERVER_INFO_1536, LPSERVER_INFO_1536; + +struct SERVER_INFO_1537 { + BOOL sv1537_enableoplockforceclose; +} +alias SERVER_INFO_1537* PSERVER_INFO_1537, LPSERVER_INFO_1537; + +struct SERVER_INFO_1538 { + BOOL sv1538_enablefcbopens; +} +alias SERVER_INFO_1538* PSERVER_INFO_1538, LPSERVER_INFO_1538; + +struct SERVER_INFO_1539 { + BOOL sv1539_enableraw; +} +alias SERVER_INFO_1539* PSERVER_INFO_1539, LPSERVER_INFO_1539; + +struct SERVER_INFO_1540 { + BOOL sv1540_enablesharednetdrives; +} +alias SERVER_INFO_1540* PSERVER_INFO_1540, LPSERVER_INFO_1540; + +struct SERVER_INFO_1541 { + BOOL sv1541_minfreeconnections; +} +alias SERVER_INFO_1541* PSERVER_INFO_1541, LPSERVER_INFO_1541; + +struct SERVER_INFO_1542 { + BOOL sv1542_maxfreeconnections; +} +alias SERVER_INFO_1542* PSERVER_INFO_1542, LPSERVER_INFO_1542; + +struct SERVER_INFO_1543 { + DWORD sv1543_initsesstable; +} +alias SERVER_INFO_1543* PSERVER_INFO_1543, LPSERVER_INFO_1543; + +struct SERVER_INFO_1544 { + DWORD sv1544_initconntable; +} +alias SERVER_INFO_1544* PSERVER_INFO_1544, LPSERVER_INFO_1544; + +struct SERVER_INFO_1545 { + DWORD sv1545_initfiletable; +} +alias SERVER_INFO_1545* PSERVER_INFO_1545, LPSERVER_INFO_1545; + +struct SERVER_INFO_1546 { + DWORD sv1546_initsearchtable; +} +alias SERVER_INFO_1546* PSERVER_INFO_1546, LPSERVER_INFO_1546; + +struct SERVER_INFO_1547 { + DWORD sv1547_alertschedule; +} +alias SERVER_INFO_1547* PSERVER_INFO_1547, LPSERVER_INFO_1547; + +struct SERVER_INFO_1548 { + DWORD sv1548_errorthreshold; +} +alias SERVER_INFO_1548* PSERVER_INFO_1548, LPSERVER_INFO_1548; + +struct SERVER_INFO_1549 { + DWORD sv1549_networkerrorthreshold; +} +alias SERVER_INFO_1549* PSERVER_INFO_1549, LPSERVER_INFO_1549; + +struct SERVER_INFO_1550 { + DWORD sv1550_diskspacethreshold; +} +alias SERVER_INFO_1550* PSERVER_INFO_1550, LPSERVER_INFO_1550; + +struct SERVER_INFO_1552 { + DWORD sv1552_maxlinkdelay; +} +alias SERVER_INFO_1552* PSERVER_INFO_1552, LPSERVER_INFO_1552; + +struct SERVER_INFO_1553 { + DWORD sv1553_minlinkthroughput; +} +alias SERVER_INFO_1553* PSERVER_INFO_1553, LPSERVER_INFO_1553; + +struct SERVER_INFO_1554 { + DWORD sv1554_linkinfovalidtime; +} +alias SERVER_INFO_1554* PSERVER_INFO_1554, LPSERVER_INFO_1554; + +struct SERVER_INFO_1555 { + DWORD sv1555_scavqosinfoupdatetime; +} +alias SERVER_INFO_1555* PSERVER_INFO_1555, LPSERVER_INFO_1555; + +struct SERVER_INFO_1556 { + DWORD sv1556_maxworkitemidletime; +} +alias SERVER_INFO_1556* PSERVER_INFO_1556, LPSERVER_INFO_1556; + +struct SERVER_INFO_1557 { + DWORD sv1557_maxrawworkitems; +} +alias SERVER_INFO_1557* PSERVER_INFO_1557, LPSERVER_INFO_1557; + +struct SERVER_INFO_1560 { + DWORD sv1560_producttype; +} +alias SERVER_INFO_1560* PSERVER_INFO_1560, LPSERVER_INFO_1560; + +struct SERVER_INFO_1561 { + DWORD sv1561_serversize; +} +alias SERVER_INFO_1561* PSERVER_INFO_1561, LPSERVER_INFO_1561; + +struct SERVER_INFO_1562 { + DWORD sv1562_connectionlessautodisc; +} +alias SERVER_INFO_1562* PSERVER_INFO_1562, LPSERVER_INFO_1562; + +struct SERVER_INFO_1563 { + DWORD sv1563_sharingviolationretries; +} +alias SERVER_INFO_1563* PSERVER_INFO_1563, LPSERVER_INFO_1563; + +struct SERVER_INFO_1564 { + DWORD sv1564_sharingviolationdelay; +} +alias SERVER_INFO_1564* PSERVER_INFO_1564, LPSERVER_INFO_1564; + +struct SERVER_INFO_1565 { + DWORD sv1565_maxglobalopensearch; +} +alias SERVER_INFO_1565* PSERVER_INFO_1565, LPSERVER_INFO_1565; + +struct SERVER_INFO_1566 { + BOOL sv1566_removeduplicatesearches; +} +alias SERVER_INFO_1566* PSERVER_INFO_1566, LPSERVER_INFO_1566; + +struct SERVER_INFO_1567 { + DWORD sv1567_lockviolationretries; +} +alias SERVER_INFO_1567* PSERVER_INFO_1567, LPSERVER_INFO_1567; + +struct SERVER_INFO_1568 { + DWORD sv1568_lockviolationoffset; +} +alias SERVER_INFO_1568* PSERVER_INFO_1568, LPSERVER_INFO_1568; + +struct SERVER_INFO_1569 { + DWORD sv1569_lockviolationdelay; +} +alias SERVER_INFO_1569* PSERVER_INFO_1569, LPSERVER_INFO_1569; + +struct SERVER_INFO_1570 { + DWORD sv1570_mdlreadswitchover; +} +alias SERVER_INFO_1570* PSERVER_INFO_1570, LPSERVER_INFO_1570; + +struct SERVER_INFO_1571 { + DWORD sv1571_cachedopenlimit; +} +alias SERVER_INFO_1571* PSERVER_INFO_1571, LPSERVER_INFO_1571; + +struct SERVER_INFO_1572 { + DWORD sv1572_criticalthreads; +} +alias SERVER_INFO_1572* PSERVER_INFO_1572, LPSERVER_INFO_1572; + +struct SERVER_INFO_1573 { + DWORD sv1573_restrictnullsessaccess; +} +alias SERVER_INFO_1573* PSERVER_INFO_1573, LPSERVER_INFO_1573; + +struct SERVER_INFO_1574 { + DWORD sv1574_enablewfw311directipx; +} +alias SERVER_INFO_1574* PSERVER_INFO_1574, LPSERVER_INFO_1574; + +struct SERVER_INFO_1575 { + DWORD sv1575_otherqueueaffinity; +} +alias SERVER_INFO_1575* PSERVER_INFO_1575, LPSERVER_INFO_1575; + +struct SERVER_INFO_1576 { + DWORD sv1576_queuesamplesecs; +} +alias SERVER_INFO_1576* PSERVER_INFO_1576, LPSERVER_INFO_1576; + +struct SERVER_INFO_1577 { + DWORD sv1577_balancecount; +} +alias SERVER_INFO_1577* PSERVER_INFO_1577, LPSERVER_INFO_1577; + +struct SERVER_INFO_1578 { + DWORD sv1578_preferredaffinity; +} +alias SERVER_INFO_1578* PSERVER_INFO_1578, LPSERVER_INFO_1578; + +struct SERVER_INFO_1579 { + DWORD sv1579_maxfreerfcbs; +} +alias SERVER_INFO_1579* PSERVER_INFO_1579, LPSERVER_INFO_1579; + +struct SERVER_INFO_1580 { + DWORD sv1580_maxfreemfcbs; +} +alias SERVER_INFO_1580* PSERVER_INFO_1580, LPSERVER_INFO_1580; + +struct SERVER_INFO_1581 { + DWORD sv1581_maxfreemlcbs; +} +alias SERVER_INFO_1581* PSERVER_INFO_1581, LPSERVER_INFO_1581; + +struct SERVER_INFO_1582 { + DWORD sv1582_maxfreepagedpoolchunks; +} +alias SERVER_INFO_1582* PSERVER_INFO_1582, LPSERVER_INFO_1582; + +struct SERVER_INFO_1583 { + DWORD sv1583_minpagedpoolchunksize; +} +alias SERVER_INFO_1583* PSERVER_INFO_1583, LPSERVER_INFO_1583; + +struct SERVER_INFO_1584 { + DWORD sv1584_maxpagedpoolchunksize; +} +alias SERVER_INFO_1584* PSERVER_INFO_1584, LPSERVER_INFO_1584; + +struct SERVER_INFO_1585 { + BOOL sv1585_sendsfrompreferredprocessor; +} +alias SERVER_INFO_1585* PSERVER_INFO_1585, LPSERVER_INFO_1585; + +struct SERVER_INFO_1586 { + BOOL sv1586_maxthreadsperqueue; +} +alias SERVER_INFO_1586* PSERVER_INFO_1586, LPSERVER_INFO_1586; + +struct SERVER_TRANSPORT_INFO_0 { + DWORD svti0_numberofvcs; + LPWSTR svti0_transportname; + PBYTE svti0_transportaddress; + DWORD svti0_transportaddresslength; + LPWSTR svti0_networkaddress; +} +alias SERVER_TRANSPORT_INFO_0* PSERVER_TRANSPORT_INFO_0, + LPSERVER_TRANSPORT_INFO_0; + +extern (Windows): +NET_API_STATUS NetServerEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,DWORD,LPCWSTR,PDWORD); +NET_API_STATUS NetServerEnumEx(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,DWORD,LPCWSTR,LPCWSTR); +NET_API_STATUS NetServerGetInfo(LPWSTR,DWORD,PBYTE*); +NET_API_STATUS NetServerSetInfo(LPWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetServerSetInfoCommandLine(WORD,LPWSTR*); +NET_API_STATUS NetServerDiskEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); +NET_API_STATUS NetServerComputerNameAdd(LPWSTR,LPWSTR,LPWSTR); +NET_API_STATUS NetServerComputerNameDel(LPWSTR,LPWSTR); +NET_API_STATUS NetServerTransportAdd(LPWSTR,DWORD,PBYTE); +NET_API_STATUS NetServerTransportAddEx(LPWSTR,DWORD,PBYTE); +NET_API_STATUS NetServerTransportDel(LPWSTR,DWORD,PBYTE); +NET_API_STATUS NetServerTransportEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); +BOOL SetServiceBits(SERVICE_STATUS_HANDLE,DWORD,BOOL,BOOL); + +const SVI1_NUM_ELEMENTS=5; +const SVI2_NUM_ELEMENTS=40; +const SVI3_NUM_ELEMENTS=44; +const SV_MAX_CMD_LEN=PATHLEN; +const SW_AUTOPROF_LOAD_MASK=1; +const SW_AUTOPROF_SAVE_MASK=2; +const SV_MAX_SRV_HEUR_LEN=32; +const SV_USERS_PER_LICENSE=5; +const SV_PLATFORM_ID_OS2=400; +const SV_PLATFORM_ID_NT=500; +const MAJOR_VERSION_MASK=15; +const SV_TYPE_WORKSTATION=1; +const SV_TYPE_SERVER=2; +const SV_TYPE_SQLSERVER=4; +const SV_TYPE_DOMAIN_CTRL=8; +const SV_TYPE_DOMAIN_BAKCTRL=16; +const SV_TYPE_TIME_SOURCE=32; +const SV_TYPE_AFP=64; +const SV_TYPE_NOVELL=128; +const SV_TYPE_DOMAIN_MEMBER=256; +const SV_TYPE_PRINTQ_SERVER=512; +const SV_TYPE_DIALIN_SERVER=1024; +const SV_TYPE_XENIX_SERVER=2048; +const SV_TYPE_SERVER_UNIX=SV_TYPE_XENIX_SERVER; +const SV_TYPE_NT=4096; +const SV_TYPE_WFW=8192; +const SV_TYPE_SERVER_MFPN=16384; +const SV_TYPE_SERVER_NT=32768; +const SV_TYPE_POTENTIAL_BROWSER=65536; +const SV_TYPE_BACKUP_BROWSER=0x20000; +const SV_TYPE_MASTER_BROWSER=0x40000; +const SV_TYPE_DOMAIN_MASTER=0x80000; +const SV_TYPE_SERVER_OSF=0x100000; +const SV_TYPE_SERVER_VMS=0x200000; +const SV_TYPE_WINDOWS=0x400000; +const SV_TYPE_ALTERNATE_XPORT=0x20000000; +const SV_TYPE_LOCAL_LIST_ONLY=0x40000000; +const SV_TYPE_DOMAIN_ENUM=0x80000000; +const SV_TYPE_ALL=0xFFFFFFFF; +const SV_NODISC=(-1); +const SV_USERSECURITY=1; +const SV_SHARESECURITY=0; +const SV_HIDDEN=1; +const SV_VISIBLE=0; +const SV_PLATFORM_ID_PARMNUM=101; +const SV_NAME_PARMNUM=102; +const SV_VERSION_MAJOR_PARMNUM=103; +const SV_VERSION_MINOR_PARMNUM=104; +const SV_TYPE_PARMNUM=105; +const SV_COMMENT_PARMNUM=5; +const SV_USERS_PARMNUM=107; +const SV_DISC_PARMNUM=10; +const SV_HIDDEN_PARMNUM=16; +const SV_ANNOUNCE_PARMNUM=17; +const SV_ANNDELTA_PARMNUM=18; +const SV_USERPATH_PARMNUM=112; +const SV_ULIST_MTIME_PARMNUM=401; +const SV_GLIST_MTIME_PARMNUM=402; +const SV_ALIST_MTIME_PARMNUM=403; +const SV_ALERTS_PARMNUM=11; +const SV_SECURITY_PARMNUM=405; +const SV_NUMADMIN_PARMNUM=406; +const SV_LANMASK_PARMNUM=407; +const SV_GUESTACC_PARMNUM=408; +const SV_CHDEVQ_PARMNUM=410; +const SV_CHDEVJOBS_PARMNUM=411; +const SV_CONNECTIONS_PARMNUM=412; +const SV_SHARES_PARMNUM=413; +const SV_OPENFILES_PARMNUM=414; +const SV_SESSREQS_PARMNUM=417; +const SV_ACTIVELOCKS_PARMNUM=419; +const SV_NUMREQBUF_PARMNUM=420; +const SV_NUMBIGBUF_PARMNUM=422; +const SV_NUMFILETASKS_PARMNUM=423; +const SV_ALERTSCHED_PARMNUM=37; +const SV_ERRORALERT_PARMNUM=38; +const SV_LOGONALERT_PARMNUM=39; +const SV_ACCESSALERT_PARMNUM=40; +const SV_DISKALERT_PARMNUM=41; +const SV_NETIOALERT_PARMNUM=42; +const SV_MAXAUDITSZ_PARMNUM=43; +const SV_SRVHEURISTICS_PARMNUM=431; +const SV_SESSOPENS_PARMNUM=501; +const SV_SESSVCS_PARMNUM=502; +const SV_OPENSEARCH_PARMNUM=503; +const SV_SIZREQBUF_PARMNUM=504; +const SV_INITWORKITEMS_PARMNUM=505; +const SV_MAXWORKITEMS_PARMNUM=506; +const SV_RAWWORKITEMS_PARMNUM=507; +const SV_IRPSTACKSIZE_PARMNUM=508; +const SV_MAXRAWBUFLEN_PARMNUM=509; +const SV_SESSUSERS_PARMNUM=510; +const SV_SESSCONNS_PARMNUM=511; +const SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM=512; +const SV_MAXPAGEDMEMORYUSAGE_PARMNUM=513; +const SV_ENABLESOFTCOMPAT_PARMNUM=514; +const SV_ENABLEFORCEDLOGOFF_PARMNUM=515; +const SV_TIMESOURCE_PARMNUM=516; +const SV_ACCEPTDOWNLEVELAPIS_PARMNUM=517; +const SV_LMANNOUNCE_PARMNUM=518; +const SV_DOMAIN_PARMNUM=519; +const SV_MAXCOPYREADLEN_PARMNUM=520; +const SV_MAXCOPYWRITELEN_PARMNUM=521; +const SV_MINKEEPSEARCH_PARMNUM=522; +const SV_MAXKEEPSEARCH_PARMNUM=523; +const SV_MINKEEPCOMPLSEARCH_PARMNUM=524; +const SV_MAXKEEPCOMPLSEARCH_PARMNUM=525; +const SV_THREADCOUNTADD_PARMNUM=526; +const SV_NUMBLOCKTHREADS_PARMNUM=527; +const SV_SCAVTIMEOUT_PARMNUM=528; +const SV_MINRCVQUEUE_PARMNUM=529; +const SV_MINFREEWORKITEMS_PARMNUM=530; +const SV_XACTMEMSIZE_PARMNUM=531; +const SV_THREADPRIORITY_PARMNUM=532; +const SV_MAXMPXCT_PARMNUM=533; +const SV_OPLOCKBREAKWAIT_PARMNUM=534; +const SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM=535; +const SV_ENABLEOPLOCKS_PARMNUM=536; +const SV_ENABLEOPLOCKFORCECLOSE_PARMNUM=537; +const SV_ENABLEFCBOPENS_PARMNUM=538; +const SV_ENABLERAW_PARMNUM=539; +const SV_ENABLESHAREDNETDRIVES_PARMNUM=540; +const SV_MINFREECONNECTIONS_PARMNUM=541; +const SV_MAXFREECONNECTIONS_PARMNUM=542; +const SV_INITSESSTABLE_PARMNUM=543; +const SV_INITCONNTABLE_PARMNUM=544; +const SV_INITFILETABLE_PARMNUM=545; +const SV_INITSEARCHTABLE_PARMNUM=546; +const SV_ALERTSCHEDULE_PARMNUM=547; +const SV_ERRORTHRESHOLD_PARMNUM=548; +const SV_NETWORKERRORTHRESHOLD_PARMNUM=549; +const SV_DISKSPACETHRESHOLD_PARMNUM=550; +const SV_MAXLINKDELAY_PARMNUM=552; +const SV_MINLINKTHROUGHPUT_PARMNUM=553; +const SV_LINKINFOVALIDTIME_PARMNUM=554; +const SV_SCAVQOSINFOUPDATETIME_PARMNUM=555; +const SV_MAXWORKITEMIDLETIME_PARMNUM=556; +const SV_MAXRAWWORKITEMS_PARMNUM=557; +const SV_PRODUCTTYPE_PARMNUM=560; +const SV_SERVERSIZE_PARMNUM=561; +const SV_CONNECTIONLESSAUTODISC_PARMNUM=562; +const SV_SHARINGVIOLATIONRETRIES_PARMNUM=563; +const SV_SHARINGVIOLATIONDELAY_PARMNUM=564; +const SV_MAXGLOBALOPENSEARCH_PARMNUM=565; +const SV_REMOVEDUPLICATESEARCHES_PARMNUM=566; +const SV_LOCKVIOLATIONRETRIES_PARMNUM=567; +const SV_LOCKVIOLATIONOFFSET_PARMNUM=568; +const SV_LOCKVIOLATIONDELAY_PARMNUM=569; +const SV_MDLREADSWITCHOVER_PARMNUM=570; +const SV_CACHEDOPENLIMIT_PARMNUM=571; +const SV_CRITICALTHREADS_PARMNUM=572; +const SV_RESTRICTNULLSESSACCESS_PARMNUM=573; +const SV_ENABLEWFW311DIRECTIPX_PARMNUM=574; +const SV_OTHERQUEUEAFFINITY_PARMNUM=575; +const SV_QUEUESAMPLESECS_PARMNUM=576; +const SV_BALANCECOUNT_PARMNUM=577; +const SV_PREFERREDAFFINITY_PARMNUM=578; +const SV_MAXFREERFCBS_PARMNUM=579; +const SV_MAXFREEMFCBS_PARMNUM=580; +const SV_MAXFREELFCBS_PARMNUM=581; +const SV_MAXFREEPAGEDPOOLCHUNKS_PARMNUM=582; +const SV_MINPAGEDPOOLCHUNKSIZE_PARMNUM=583; +const SV_MAXPAGEDPOOLCHUNKSIZE_PARMNUM=584; +const SV_SENDSFROMPREFERREDPROCESSOR_PARMNUM=585; +const SV_MAXTHREADSPERQUEUE_PARMNUM=586; +const SV_COMMENT_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_COMMENT_PARMNUM); +const SV_USERS_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_USERS_PARMNUM); +const SV_DISC_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_DISC_PARMNUM); +const SV_HIDDEN_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_HIDDEN_PARMNUM); +const SV_ANNOUNCE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_ANNOUNCE_PARMNUM); +const SV_ANNDELTA_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_ANNDELTA_PARMNUM); +const SV_SESSOPENS_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_SESSOPENS_PARMNUM); +const SV_SESSVCS_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_SESSVCS_PARMNUM); +const SV_OPENSEARCH_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_OPENSEARCH_PARMNUM); +const SV_MAXWORKITEMS_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXWORKITEMS_PARMNUM); +const SV_MAXRAWBUFLEN_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXRAWBUFLEN_PARMNUM); +const SV_SESSUSERS_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_SESSUSERS_PARMNUM); +const SV_SESSCONNS_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_SESSCONNS_PARMNUM); +const SV_MAXNONPAGEDMEMORYUSAGE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM); +const SV_MAXPAGEDMEMORYUSAGE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXPAGEDMEMORYUSAGE_PARMNUM); +const SV_ENABLESOFTCOMPAT_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_ENABLESOFTCOMPAT_PARMNUM); +const SV_ENABLEFORCEDLOGOFF_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_ENABLEFORCEDLOGOFF_PARMNUM); +const SV_TIMESOURCE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_TIMESOURCE_PARMNUM); +const SV_LMANNOUNCE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_LMANNOUNCE_PARMNUM); +const SV_MAXCOPYREADLEN_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXCOPYREADLEN_PARMNUM); +const SV_MAXCOPYWRITELEN_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXCOPYWRITELEN_PARMNUM); +const SV_MINKEEPSEARCH_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MINKEEPSEARCH_PARMNUM); +const SV_MAXKEEPSEARCH_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXKEEPSEARCH_PARMNUM); +const SV_MINKEEPCOMPLSEARCH_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MINKEEPCOMPLSEARCH_PARMNUM); +const SV_MAXKEEPCOMPLSEARCH_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXKEEPCOMPLSEARCH_PARMNUM); +const SV_SCAVTIMEOUT_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_SCAVTIMEOUT_PARMNUM); +const SV_MINRCVQUEUE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MINRCVQUEUE_PARMNUM); +const SV_MINFREEWORKITEMS_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MINFREEWORKITEMS_PARMNUM); +const SV_MAXMPXCT_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXMPXCT_PARMNUM); +const SV_OPLOCKBREAKWAIT_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_OPLOCKBREAKWAIT_PARMNUM); +const SV_OPLOCKBREAKRESPONSEWAIT_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM); +const SV_ENABLEOPLOCKS_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_ENABLEOPLOCKS_PARMNUM); +const SV_ENABLEOPLOCKFORCECLOSE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_ENABLEOPLOCKFORCECLOSE_PARMNUM); +const SV_ENABLEFCBOPENS_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_ENABLEFCBOPENS_PARMNUM); +const SV_ENABLERAW_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_ENABLERAW_PARMNUM); +const SV_ENABLESHAREDNETDRIVES_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_ENABLESHAREDNETDRIVES_PARMNUM); +const SV_MINFREECONNECTIONS_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MINFREECONNECTIONS_PARMNUM); +const SV_MAXFREECONNECTIONS_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXFREECONNECTIONS_PARMNUM); +const SV_INITSESSTABLE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_INITSESSTABLE_PARMNUM); +const SV_INITCONNTABLE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_INITCONNTABLE_PARMNUM); +const SV_INITFILETABLE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_INITFILETABLE_PARMNUM); +const SV_INITSEARCHTABLE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_INITSEARCHTABLE_PARMNUM); +const SV_ALERTSCHEDULE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_ALERTSCHEDULE_PARMNUM); +const SV_ERRORTHRESHOLD_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_ERRORTHRESHOLD_PARMNUM); +const SV_NETWORKERRORTHRESHOLD_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_NETWORKERRORTHRESHOLD_PARMNUM); +const SV_DISKSPACETHRESHOLD_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_DISKSPACETHRESHOLD_PARMNUM); +const SV_MAXLINKDELAY_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXLINKDELAY_PARMNUM); +const SV_MINLINKTHROUGHPUT_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MINLINKTHROUGHPUT_PARMNUM); +const SV_LINKINFOVALIDTIME_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_LINKINFOVALIDTIME_PARMNUM); +const SV_SCAVQOSINFOUPDATETIME_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_SCAVQOSINFOUPDATETIME_PARMNUM); +const SV_MAXWORKITEMIDLETIME_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXWORKITEMIDLETIME_PARMNUM); +const SV_MAXRAWWORKITEMS_INFOLOEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXRAWWORKITEMS_PARMNUM); +const SV_PRODUCTTYPE_INFOLOEVEL=(PARMNUM_BASE_INFOLEVEL+SV_PRODUCTTYPE_PARMNUM); +const SV_SERVERSIZE_INFOLOEVEL=(PARMNUM_BASE_INFOLEVEL+SV_SERVERSIZE_PARMNUM); +const SV_CONNECTIONLESSAUTODISC_INFOLOEVEL=(PARMNUM_BASE_INFOLEVEL+SV_CONNECTIONLESSAUTODISC_PARMNUM); +const SV_SHARINGVIOLATIONRETRIES_INFOLOEVEL=(PARMNUM_BASE_INFOLEVEL+SV_SHARINGVIOLATIONRETRIES_PARMNUM); +const SV_SHARINGVIOLATIONDELAY_INFOLOEVEL=(PARMNUM_BASE_INFOLEVEL+SV_SHARINGVIOLATIONDELAY_PARMNUM); +const SV_MAXGLOBALOPENSEARCH_INFOLOEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXGLOBALOPENSEARCH_PARMNUM); +const SV_REMOVEDUPLICATESEARCHES_INFOLOEVEL=(PARMNUM_BASE_INFOLEVEL+SV_REMOVEDUPLICATESEARCHES_PARMNUM); +const SV_LOCKVIOLATIONRETRIES_INFOLOEVEL=(PARMNUM_BASE_INFOLEVEL+SV_LOCKVIOLATIONRETRIES_PARMNUM); +const SV_LOCKVIOLATIONOFFSET_INFOLOEVEL=(PARMNUM_BASE_INFOLEVEL+SV_LOCKVIOLATIONOFFSET_PARMNUM); +const SV_LOCKVIOLATIONDELAY_INFOLOEVEL=(PARMNUM_BASE_INFOLEVEL+SV_LOCKVIOLATIONDELAY_PARMNUM); +const SV_MDLREADSWITCHOVER_INFOLOEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MDLREADSWITCHOVER_PARMNUM); +const SV_CACHEDOPENLIMIT_INFOLOEVEL=(PARMNUM_BASE_INFOLEVEL+SV_CACHEDOPENLIMIT_PARMNUM); +const SV_CRITICALTHREADS_INFOLOEVEL=(PARMNUM_BASE_INFOLEVEL+SV_CRITICALTHREADS_PARMNUM); +const SV_RESTRICTNULLSESSACCESS_INFOLOEVEL=(PARMNUM_BASE_INFOLEVEL+SV_RESTRICTNULLSESSACCESS_PARMNUM); +const SV_ENABLEWFW311DIRECTIPX_INFOLOEVEL=(PARMNUM_BASE_INFOLEVEL+SV_ENABLEWFW311DIRECTIPX_PARMNUM); +const SV_OTHERQUEUEAFFINITY_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_OTHERQUEUEAFFINITY_PARMNUM); +const SV_QUEUESAMPLESECS_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_QUEUESAMPLESECS_PARMNUM); +const SV_BALANCECOUNT_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_BALANCECOUNT_PARMNUM); +const SV_PREFERREDAFFINITY_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_PREFERREDAFFINITY_PARMNUM); +const SV_MAXFREERFCBS_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXFREERFCBS_PARMNUM); +const SV_MAXFREEMFCBS_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXFREEMFCBS_PARMNUM); +const SV_MAXFREELFCBS_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXFREELFCBS_PARMNUM); +const SV_MAXFREEPAGEDPOOLCHUNKS_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXFREEPAGEDPOOLCHUNKS_PARMNUM); +const SV_MINPAGEDPOOLCHUNKSIZE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MINPAGEDPOOLCHUNKSIZE_PARMNUM); +const SV_MAXPAGEDPOOLCHUNKSIZE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXPAGEDPOOLCHUNKSIZE_PARMNUM); +const SV_SENDSFROMPREFERREDPROCESSOR_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_SENDSFROMPREFERREDPROCESSOR_PARMNUM); +const SV_MAXTHREADSPERQUEUE_INFOLEVEL=(PARMNUM_BASE_INFOLEVEL+SV_MAXTHREADSPERQUEUE_PARMNUM); ADDED src/win32/lmshare.d Index: src/win32/lmshare.d ================================================================== --- src/win32/lmshare.d +++ src/win32/lmshare.d @@ -0,0 +1,204 @@ +/***********************************************************************\ +* lmshare.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmshare; + +import win32.lmcons; +private import win32.w32api, win32.windef; + +static if (_WIN32_WINNT_ONLY) { + pragma(lib, "netapi.lib"); +} +/* else { +// only for WinME, 98, 95. + pragma(lib, "svrapi.lib") +} +*/ + +const SHARE_NETNAME_PARMNUM = 1; +const SHARE_TYPE_PARMNUM = 3; +const SHARE_REMARK_PARMNUM = 4; +const SHARE_PERMISSIONS_PARMNUM = 5; +const SHARE_MAX_USES_PARMNUM = 6; +const SHARE_CURRENT_USES_PARMNUM = 7; +const SHARE_PATH_PARMNUM = 8; +const SHARE_PASSWD_PARMNUM = 9; +const SHARE_FILE_SD_PARMNUM = 501; +const SHARE_REMARK_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + SHARE_REMARK_PARMNUM; +const SHARE_MAX_USES_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + SHARE_MAX_USES_PARMNUM; +const SHARE_FILE_SD_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + SHARE_FILE_SD_PARMNUM; + +const SHI1_NUM_ELEMENTS = 4; +const SHI2_NUM_ELEMENTS = 10; + +const STYPE_DISKTREE = 0; +const STYPE_PRINTQ = 1; +const STYPE_DEVICE = 2; +const STYPE_IPC = 3; +const STYPE_DFS = 100; +const STYPE_SPECIAL = 0x80000000; + +const DWORD SHI_USES_UNLIMITED = -1; + +const SESS_GUEST = 1; +const SESS_NOENCRYPTION = 2; +const SESI1_NUM_ELEMENTS = 8; +const SESI2_NUM_ELEMENTS = 9; + +const PERM_FILE_READ = 1; +const PERM_FILE_WRITE = 2; +const PERM_FILE_CREATE = 4; + +struct FILE_INFO_2 { + DWORD fi2_id; +} +alias FILE_INFO_2* PFILE_INFO_2, LPFILE_INFO_2; + +struct FILE_INFO_3 { + DWORD fi3_id; + DWORD fi3_permissions; + DWORD fi3_num_locks; + LPTSTR fi3_pathname; + LPTSTR fi3_username; +} +alias FILE_INFO_3* PFILE_INFO_3, LPFILE_INFO_3; + +struct SHARE_INFO_0 { + LPTSTR shi0_netname; +} +alias SHARE_INFO_0* PSHARE_INFO_0, LPSHARE_INFO_0; + +struct SHARE_INFO_1 { + LPTSTR shi1_netname; + DWORD shi1_type; + LPTSTR shi1_remark; +} +alias SHARE_INFO_1* PSHARE_INFO_1, LPSHARE_INFO_1; + +struct SHARE_INFO_2 { + LPTSTR shi2_netname; + DWORD shi2_type; + LPTSTR shi2_remark; + DWORD shi2_permissions; + DWORD shi2_max_uses; + DWORD shi2_current_uses; + LPTSTR shi2_path; + LPTSTR shi2_passwd; +} +alias SHARE_INFO_2* PSHARE_INFO_2, LPSHARE_INFO_2; + +struct SHARE_INFO_502 { + LPTSTR shi502_netname; + DWORD shi502_type; + LPTSTR shi502_remark; + DWORD shi502_permissions; + DWORD shi502_max_uses; + DWORD shi502_current_uses; + LPTSTR shi502_path; + LPTSTR shi502_passwd; + DWORD shi502_reserved; + PSECURITY_DESCRIPTOR shi502_security_descriptor; +} +alias SHARE_INFO_502* PSHARE_INFO_502, LPSHARE_INFO_502; + +struct SHARE_INFO_1004 { + LPTSTR shi1004_remark; +} +alias SHARE_INFO_1004* PSHARE_INFO_1004, LPSHARE_INFO_1004; + +struct SHARE_INFO_1006 { + DWORD shi1006_max_uses; +} +alias SHARE_INFO_1006* PSHARE_INFO_1006, LPSHARE_INFO_1006; + +struct SHARE_INFO_1501 { + DWORD shi1501_reserved; + PSECURITY_DESCRIPTOR shi1501_security_descriptor; +} +alias SHARE_INFO_1501* PSHARE_INFO_1501, LPSHARE_INFO_1501; + +struct SESSION_INFO_0 { + LPWSTR sesi0_cname; +} +alias SESSION_INFO_0* PSESSION_INFO_0, LPSESSION_INFO_0; + +struct SESSION_INFO_1 { + LPTSTR sesi1_cname; + LPTSTR sesi1_username; + DWORD sesi1_num_opens; + DWORD sesi1_time; + DWORD sesi1_idle_time; + DWORD sesi1_user_flags; +} +alias SESSION_INFO_1* PSESSION_INFO_1, LPSESSION_INFO_1; + +struct SESSION_INFO_2 { + LPTSTR sesi2_cname; + LPTSTR sesi2_username; + DWORD sesi2_num_opens; + DWORD sesi2_time; + DWORD sesi2_idle_time; + DWORD sesi2_user_flags; + LPWSTR sesi2_cltype_name; +} +alias SESSION_INFO_2* PSESSION_INFO_2, LPSESSION_INFO_2; + +struct SESSION_INFO_10 { + LPWSTR sesi10_cname; + LPWSTR sesi10_username; + DWORD sesi10_time; + DWORD sesi10_idle_time; +} +alias SESSION_INFO_10* PSESSION_INFO_10, LPSESSION_INFO_10; + +struct SESSION_INFO_502 { + LPWSTR sesi502_cname; + LPWSTR sesi502_username; + DWORD sesi502_num_opens; + DWORD sesi502_time; + DWORD sesi502_idle_time; + DWORD sesi502_user_flags; + LPWSTR sesi502_cltype_name; + LPWSTR sesi502_transport; +} +alias SESSION_INFO_502* PSESSION_INFO_502, LPSESSION_INFO_502; + +struct CONNECTION_INFO_0 { + DWORD coni0_id; +} +alias CONNECTION_INFO_0* PCONNECTION_INFO_0, LPCONNECTION_INFO_0; + +struct CONNECTION_INFO_1 { + DWORD coni1_id; + DWORD coni1_type; + DWORD coni1_num_opens; + DWORD coni1_num_users; + DWORD coni1_time; + LPWSTR coni1_username; + LPWSTR coni1_netname; +} +alias CONNECTION_INFO_1* PCONNECTION_INFO_1, LPCONNECTION_INFO_1; + +extern (Windows) { +NET_API_STATUS NetShareAdd(LPWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetShareEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); +NET_API_STATUS NetShareEnumSticky(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD resume_handle); +NET_API_STATUS NetShareGetInfo(LPWSTR,LPWSTR,DWORD,PBYTE*); +NET_API_STATUS NetShareSetInfo(LPWSTR,LPWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetShareDel(LPWSTR,LPWSTR,DWORD); +NET_API_STATUS NetShareDelSticky(LPWSTR,LPWSTR,DWORD); +NET_API_STATUS NetShareCheck(LPWSTR,LPWSTR,PDWORD); +NET_API_STATUS NetSessionEnum(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); +NET_API_STATUS NetSessionDel(LPWSTR,LPWSTR,LPWSTR); +NET_API_STATUS NetSessionGetInfo(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*); +NET_API_STATUS NetConnectionEnum(LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); +NET_API_STATUS NetFileClose(LPWSTR,DWORD); +NET_API_STATUS NetFileEnum(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); +NET_API_STATUS NetFileGetInfo(LPWSTR,DWORD,DWORD,PBYTE*); +} ADDED src/win32/lmsname.d Index: src/win32/lmsname.d ================================================================== --- src/win32/lmsname.d +++ src/win32/lmsname.d @@ -0,0 +1,65 @@ +/***********************************************************************\ +* lmsname.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmsname; + +private import win32.windef; + +const TCHAR[] + SERVICE_WORKSTATION = "LanmanWorkstation", + SERVICE_LM20_WORKSTATION = "WORKSTATION", + WORKSTATION_DISPLAY_NAME = "Workstation", + SERVICE_SERVER = "LanmanServer", + SERVICE_LM20_SERVER = "SERVER", + SERVER_DISPLAY_NAME = "Server", + SERVICE_BROWSER = "BROWSER", + SERVICE_LM20_BROWSER = SERVICE_BROWSER, + SERVICE_MESSENGER = "MESSENGER", + SERVICE_LM20_MESSENGER = SERVICE_MESSENGER, + SERVICE_NETRUN = "NETRUN", + SERVICE_LM20_NETRUN = SERVICE_NETRUN, + SERVICE_SPOOLER = "SPOOLER", + SERVICE_LM20_SPOOLER = SERVICE_SPOOLER, + SERVICE_ALERTER = "ALERTER", + SERVICE_LM20_ALERTER = SERVICE_ALERTER, + SERVICE_NETLOGON = "NETLOGON", + SERVICE_LM20_NETLOGON = SERVICE_NETLOGON, + SERVICE_NETPOPUP = "NETPOPUP", + SERVICE_LM20_NETPOPUP = SERVICE_NETPOPUP, + SERVICE_SQLSERVER = "SQLSERVER", + SERVICE_LM20_SQLSERVER = SERVICE_SQLSERVER, + SERVICE_REPL = "REPLICATOR", + SERVICE_LM20_REPL = SERVICE_REPL, + SERVICE_RIPL = "REMOTEBOOT", + SERVICE_LM20_RIPL = SERVICE_RIPL, + SERVICE_TIMESOURCE = "TIMESOURCE", + SERVICE_LM20_TIMESOURCE = SERVICE_TIMESOURCE, + SERVICE_AFP = "AFP", + SERVICE_LM20_AFP = SERVICE_AFP, + SERVICE_UPS = "UPS", + SERVICE_LM20_UPS = SERVICE_UPS, + SERVICE_XACTSRV = "XACTSRV", + SERVICE_LM20_XACTSRV = SERVICE_XACTSRV, + SERVICE_TCPIP = "TCPIP", + SERVICE_LM20_TCPIP = SERVICE_TCPIP, + SERVICE_NBT = "NBT", + SERVICE_LM20_NBT = SERVICE_NBT, + SERVICE_LMHOSTS = "LMHOSTS", + SERVICE_LM20_LMHOSTS = SERVICE_LMHOSTS, + SERVICE_TELNET = "Telnet", + SERVICE_LM20_TELNET = SERVICE_TELNET, + SERVICE_SCHEDULE = "Schedule", + SERVICE_LM20_SCHEDULE = SERVICE_SCHEDULE, + SERVICE_NTLMSSP = "NtLmSsp", + SERVICE_DHCP = "DHCP", + SERVICE_LM20_DHCP = SERVICE_DHCP, + SERVICE_NWSAP = "NwSapAgent", + SERVICE_LM20_NWSAP = SERVICE_NWSAP, + NWSAP_DISPLAY_NAME = "NW Sap Agent", + SERVICE_NWCS = "NWCWorkstation"; ADDED src/win32/lmstats.d Index: src/win32/lmstats.d ================================================================== --- src/win32/lmstats.d +++ src/win32/lmstats.d @@ -0,0 +1,121 @@ +/***********************************************************************\ +* lmstats.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmstats; +pragma(lib, "netapi32.lib"); + +private import win32.lmcons, win32.windef; + +const ULONG + STATSOPT_CLR = 1, + STATS_NO_VALUE = -1, + STATS_OVERFLOW = -2; + +struct STAT_SERVER_0{ + DWORD sts0_start; + DWORD sts0_fopens; + DWORD sts0_devopens; + DWORD sts0_jobsqueued; + DWORD sts0_sopens; + DWORD sts0_stimedout; + DWORD sts0_serrorout; + DWORD sts0_pwerrors; + DWORD sts0_permerrors; + DWORD sts0_syserrors; + DWORD sts0_bytessent_low; + DWORD sts0_bytessent_high; + DWORD sts0_bytesrcvd_low; + DWORD sts0_bytesrcvd_high; + DWORD sts0_avresponse; + DWORD sts0_reqbufneed; + DWORD sts0_bigbufneed; +} +alias STAT_SERVER_0* PSTAT_SERVER_0, LPSTAT_SERVER_0; + +// #ifdef LM20_WORKSTATION_STATISTICS +// typedef struct _STAT_WORKSTATION_0 { +// DWORD stw0_start; +// DWORD stw0_numNCB_r; +// DWORD stw0_numNCB_s; +// DWORD stw0_numNCB_a; +// DWORD stw0_fiNCB_r; +// DWORD stw0_fiNCB_s; +// DWORD stw0_fiNCB_a; +// DWORD stw0_fcNCB_r; +// DWORD stw0_fcNCB_s; +// DWORD stw0_fcNCB_a; +// DWORD stw0_sesstart; +// DWORD stw0_sessfailcon; +// DWORD stw0_sessbroke; +// DWORD stw0_uses; +// DWORD stw0_usefail; +// DWORD stw0_autorec; +// DWORD stw0_bytessent_r_lo; +// DWORD stw0_bytessent_r_hi; +// DWORD stw0_bytesrcvd_r_lo; +// DWORD stw0_bytesrcvd_r_hi; +// DWORD stw0_bytessent_s_lo; +// DWORD stw0_bytessent_s_hi; +// DWORD stw0_bytesrcvd_s_lo; +// DWORD stw0_bytesrcvd_s_hi; +// DWORD stw0_bytessent_a_lo; +// DWORD stw0_bytessent_a_hi; +// DWORD stw0_bytesrcvd_a_lo; +// DWORD stw0_bytesrcvd_a_hi; +// DWORD stw0_reqbufneed; +// DWORD stw0_bigbufneed; +// } STAT_WORKSTATION_0,*PSTAT_WORKSTATION_0,*LPSTAT_WORKSTATION_0; +// #else + +struct STAT_WORKSTATION_0{ + LARGE_INTEGER StatisticsStartTime; + LARGE_INTEGER BytesReceived; + LARGE_INTEGER SmbsReceived; + LARGE_INTEGER PagingReadBytesRequested; + LARGE_INTEGER NonPagingReadBytesRequested; + LARGE_INTEGER CacheReadBytesRequested; + LARGE_INTEGER NetworkReadBytesRequested; + LARGE_INTEGER BytesTransmitted; + LARGE_INTEGER SmbsTransmitted; + LARGE_INTEGER PagingWriteBytesRequested; + LARGE_INTEGER NonPagingWriteBytesRequested; + LARGE_INTEGER CacheWriteBytesRequested; + LARGE_INTEGER NetworkWriteBytesRequested; + DWORD InitiallyFailedOperations; + DWORD FailedCompletionOperations; + DWORD ReadOperations; + DWORD RandomReadOperations; + DWORD ReadSmbs; + DWORD LargeReadSmbs; + DWORD SmallReadSmbs; + DWORD WriteOperations; + DWORD RandomWriteOperations; + DWORD WriteSmbs; + DWORD LargeWriteSmbs; + DWORD SmallWriteSmbs; + DWORD RawReadsDenied; + DWORD RawWritesDenied; + DWORD NetworkErrors; + DWORD Sessions; + DWORD FailedSessions; + DWORD Reconnects; + DWORD CoreConnects; + DWORD Lanman20Connects; + DWORD Lanman21Connects; + DWORD LanmanNtConnects; + DWORD ServerDisconnects; + DWORD HungSessions; + DWORD UseCount; + DWORD FailedUseCount; + DWORD CurrentCommands; +} +alias STAT_WORKSTATION_0* PSTAT_WORKSTATION_0, LPSTAT_WORKSTATION_0; + +extern (Windows): +NET_API_STATUS NetStatisticsGet(LPWSTR,LPWSTR,DWORD,DWORD,PBYTE*); ADDED src/win32/lmsvc.d Index: src/win32/lmsvc.d ================================================================== --- src/win32/lmsvc.d +++ src/win32/lmsvc.d @@ -0,0 +1,156 @@ +/***********************************************************************\ +* lmsvc.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmsvc; + +// FIXME: Is this file deprecated? All of the functions are only for Win16. +/** + Changes relative to MinGW: + lmsname is not imported publicly (instead, win32.lm imports it directly). +*/ +// TODO: 5 macros + +private import win32.lmcons, win32.lmsname, win32.windef; + +const TCHAR[] SERVICE_DOS_ENCRYPTION = "ENCRYPT"; + +const SERVICE_UNINSTALLED=0; +const SERVICE_INSTALL_PENDING=1; +const SERVICE_UNINSTALL_PENDING=2; +const SERVICE_INSTALLED=3; +const SERVICE_INSTALL_STATE=3; +const SERVICE_PAUSE_STATE=18; +const LM20_SERVICE_ACTIVE=0; +const LM20_SERVICE_CONTINUE_PENDING=4; +const LM20_SERVICE_PAUSE_PENDING=8; +const LM20_SERVICE_PAUSED=18; +const SERVICE_NOT_UNINSTALLABLE=0; +const SERVICE_UNINSTALLABLE=16; +const SERVICE_NOT_PAUSABLE=0; +const SERVICE_PAUSABLE=32; +const SERVICE_REDIR_PAUSED=0x700; +const SERVICE_REDIR_DISK_PAUSED=256; +const SERVICE_REDIR_PRINT_PAUSED=512; +const SERVICE_REDIR_COMM_PAUSED=1024; +const SERVICE_CTRL_INTERROGATE=0; +const SERVICE_CTRL_PAUSE=1; +const SERVICE_CTRL_CONTINUE=2; +const SERVICE_CTRL_UNINSTALL=3; +const SERVICE_CTRL_REDIR_DISK=1; +const SERVICE_CTRL_REDIR_PRINT=2; +const SERVICE_CTRL_REDIR_COMM=4; +const SERVICE_IP_NO_HINT=0; +const SERVICE_CCP_NO_HINT=0; +const SERVICE_IP_QUERY_HINT=0x10000; +const SERVICE_CCP_QUERY_HINT=0x10000; +const SERVICE_IP_CHKPT_NUM=255; +const SERVICE_CCP_CHKPT_NUM=255; +const SERVICE_IP_WAIT_TIME=0xFF00; +const SERVICE_CCP_WAIT_TIME=0xFF00; +const SERVICE_IP_WAITTIME_SHIFT=8; +const SERVICE_NTIP_WAITTIME_SHIFT=12; +const UPPER_HINT_MASK=0xFF00; +const LOWER_HINT_MASK=255; +const UPPER_GET_HINT_MASK=0xFF00000; +const LOWER_GET_HINT_MASK=0xFF00; +const SERVICE_NT_MAXTIME=0xFFFF; +const SERVICE_RESRV_MASK=0x1FFFF; +const SERVICE_MAXTIME=255; +const SERVICE_BASE=3050; +const SERVICE_UIC_NORMAL=0; + +const SERVICE_UIC_BADPARMVAL = SERVICE_BASE+1; +const SERVICE_UIC_MISSPARM = SERVICE_BASE+2; +const SERVICE_UIC_UNKPARM = SERVICE_BASE+3; +const SERVICE_UIC_RESOURCE = SERVICE_BASE+4; +const SERVICE_UIC_CONFIG = SERVICE_BASE+5; +const SERVICE_UIC_SYSTEM = SERVICE_BASE+6; +const SERVICE_UIC_INTERNAL = SERVICE_BASE+7; +const SERVICE_UIC_AMBIGPARM = SERVICE_BASE+8; +const SERVICE_UIC_DUPPARM = SERVICE_BASE+9; +const SERVICE_UIC_KILL = SERVICE_BASE+10; +const SERVICE_UIC_EXEC = SERVICE_BASE+11; +const SERVICE_UIC_SUBSERV = SERVICE_BASE+12; +const SERVICE_UIC_CONFLPARM = SERVICE_BASE+13; +const SERVICE_UIC_FILE = SERVICE_BASE+14; +const SERVICE_UIC_M_NULL=0; +const SERVICE_UIC_M_MEMORY = SERVICE_BASE+20; +const SERVICE_UIC_M_DISK = SERVICE_BASE+21; +const SERVICE_UIC_M_THREADS = SERVICE_BASE+22; +const SERVICE_UIC_M_PROCESSES = SERVICE_BASE+23; +const SERVICE_UIC_M_SECURITY = SERVICE_BASE+24; +const SERVICE_UIC_M_LANROOT = SERVICE_BASE+25; +const SERVICE_UIC_M_REDIR = SERVICE_BASE+26; +const SERVICE_UIC_M_SERVER = SERVICE_BASE+27; +const SERVICE_UIC_M_SEC_FILE_ERR = SERVICE_BASE+28; +const SERVICE_UIC_M_FILES = SERVICE_BASE+29; +const SERVICE_UIC_M_LOGS = SERVICE_BASE+30; +const SERVICE_UIC_M_LANGROUP = SERVICE_BASE+31; +const SERVICE_UIC_M_MSGNAME = SERVICE_BASE+32; +const SERVICE_UIC_M_ANNOUNCE = SERVICE_BASE+33; +const SERVICE_UIC_M_UAS = SERVICE_BASE+34; +const SERVICE_UIC_M_SERVER_SEC_ERR = SERVICE_BASE+35; +const SERVICE_UIC_M_WKSTA = SERVICE_BASE+37; +const SERVICE_UIC_M_ERRLOG = SERVICE_BASE+38; +const SERVICE_UIC_M_FILE_UW = SERVICE_BASE+39; +const SERVICE_UIC_M_ADDPAK = SERVICE_BASE+40; +const SERVICE_UIC_M_LAZY = SERVICE_BASE+41; +const SERVICE_UIC_M_UAS_MACHINE_ACCT = SERVICE_BASE+42; +const SERVICE_UIC_M_UAS_SERVERS_NMEMB = SERVICE_BASE+43; +const SERVICE_UIC_M_UAS_SERVERS_NOGRP = SERVICE_BASE+44; +const SERVICE_UIC_M_UAS_INVALID_ROLE = SERVICE_BASE+45; +const SERVICE_UIC_M_NETLOGON_NO_DC = SERVICE_BASE+46; +const SERVICE_UIC_M_NETLOGON_DC_CFLCT = SERVICE_BASE+47; +const SERVICE_UIC_M_NETLOGON_AUTH = SERVICE_BASE+48; +const SERVICE_UIC_M_UAS_PROLOG = SERVICE_BASE+49; +const SERVICE2_BASE=5600; +const SERVICE_UIC_M_NETLOGON_MPATH = SERVICE2_BASE+0; +const SERVICE_UIC_M_LSA_MACHINE_ACCT = SERVICE2_BASE+1; +const SERVICE_UIC_M_DATABASE_ERROR = SERVICE2_BASE+2; + +struct SERVICE_INFO_0 { + LPWSTR svci0_name; +} +alias SERVICE_INFO_0* PSERVICE_INFO_0, LPSERVICE_INFO_0; + +struct SERVICE_INFO_1 { + LPWSTR svci1_name; + DWORD svci1_status; + DWORD svci1_code; + DWORD svci1_pid; +} +alias SERVICE_INFO_1* PSERVICE_INFO_1, LPSERVICE_INFO_1; + +struct SERVICE_INFO_2 { + LPWSTR svci2_name; + DWORD svci2_status; + DWORD svci2_code; + DWORD svci2_pid; + LPWSTR svci2_text; + DWORD svci2_specific_error; + LPWSTR svci2_display_name; +} +alias SERVICE_INFO_2* PSERVICE_INFO_2, LPSERVICE_INFO_2; + +extern (Windows) { + deprecated { + NET_API_STATUS NetServiceControl(LPCWSTR, LPCWSTR, DWORD, DWORD, + PBYTE*); + NET_API_STATUS NetServiceEnum(LPCWSTR, DWORD, PBYTE*, DWORD, PDWORD, + PDWORD, PDWORD); + NET_API_STATUS NetServiceGetInfo(LPCWSTR, LPCWSTR, DWORD, PBYTE*); + NET_API_STATUS NetServiceInstall(LPCWSTR, LPCWSTR, DWORD, LPCWSTR*, + PBYTE*); + } +} +//MACRO #define SERVICE_IP_CODE(t, n) ((long)SERVICE_IP_QUERY_HINT|(long)(n|(t<>SERVICE_NTIP_WAITTIME_SHIFT)|(((c)&LOWER_GET_HINT_MASK)>>SERVICE_IP_WAITTIME_SHIFT)) ADDED src/win32/lmuse.d Index: src/win32/lmuse.d ================================================================== --- src/win32/lmuse.d +++ src/win32/lmuse.d @@ -0,0 +1,80 @@ +/***********************************************************************\ +* lmuse.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmuse; +pragma(lib, "netapi32.lib"); + +import win32.lmuseflg; +private import win32.lmcons, win32.windef; + +enum { + USE_LOCAL_PARMNUM = 1, + USE_REMOTE_PARMNUM, + USE_PASSWORD_PARMNUM, + USE_ASGTYPE_PARMNUM, + USE_USERNAME_PARMNUM, + USE_DOMAINNAME_PARMNUM +} + +enum { + USE_OK, + USE_PAUSED, + USE_SESSLOST, + USE_DISCONN = USE_SESSLOST, + USE_NETERR, + USE_CONN, + USE_RECONN +} + +const DWORD USE_WILDCARD = -1; + +enum { + USE_DISKDEV, + USE_SPOOLDEV, + USE_CHARDEV, + USE_IPC +} + +struct USE_INFO_0 { + LPWSTR ui0_local; + LPWSTR ui0_remote; +} +alias USE_INFO_0* PUSE_INFO_0, LPUSE_INFO_0; + +struct USE_INFO_1 { + LPWSTR ui1_local; + LPWSTR ui1_remote; + LPWSTR ui1_password; + DWORD ui1_status; + DWORD ui1_asg_type; + DWORD ui1_refcount; + DWORD ui1_usecount; +} +alias USE_INFO_1* PUSE_INFO_1, LPUSE_INFO_1; + +struct USE_INFO_2 { + LPWSTR ui2_local; + LPWSTR ui2_remote; + LPWSTR ui2_password; + DWORD ui2_status; + DWORD ui2_asg_type; + DWORD ui2_refcount; + DWORD ui2_usecount; + LPWSTR ui2_username; + LPWSTR ui2_domainname; +} +alias USE_INFO_2* PUSE_INFO_2, LPUSE_INFO_2; + +extern (Windows) { + NET_API_STATUS NetUseAdd(LPWSTR, DWORD, PBYTE, PDWORD); + NET_API_STATUS NetUseDel(LPWSTR, LPWSTR, DWORD); + NET_API_STATUS NetUseEnum(LPWSTR, DWORD, PBYTE*, DWORD, PDWORD, PDWORD, + PDWORD); + NET_API_STATUS NetUseGetInfo(LPWSTR, LPWSTR, DWORD, PBYTE*); +} ADDED src/win32/lmuseflg.d Index: src/win32/lmuseflg.d ================================================================== --- src/win32/lmuseflg.d +++ src/win32/lmuseflg.d @@ -0,0 +1,16 @@ +/***********************************************************************\ +* lmuseflg.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.10 * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmuseflg; + +enum : uint { + USE_NOFORCE = 0, + USE_FORCE, + USE_LOTS_OF_FORCE // = 2 +} ADDED src/win32/lmwksta.d Index: src/win32/lmwksta.d ================================================================== --- src/win32/lmwksta.d +++ src/win32/lmwksta.d @@ -0,0 +1,390 @@ +/***********************************************************************\ +* lmwksta.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lmwksta; +pragma(lib, "netapi32.lib"); + +import win32.lmuseflg; +private import win32.lmcons, win32.windef; + +pragma(lib, "Netapi32.lib"); + +enum { + WKSTA_COMPUTERNAME_PARMNUM = 1, + WKSTA_LANGROUP_PARMNUM, // = 2 + WKSTA_VER_MAJOR_PARMNUM = 4, + WKSTA_VER_MINOR_PARMNUM, + WKSTA_LOGGED_ON_USERS_PARMNUM, + WKSTA_LANROOT_PARMNUM, + WKSTA_LOGON_DOMAIN_PARMNUM, + WKSTA_LOGON_SERVER_PARMNUM, + WKSTA_CHARWAIT_PARMNUM, + WKSTA_CHARTIME_PARMNUM, + WKSTA_CHARCOUNT_PARMNUM, + WKSTA_KEEPCONN_PARMNUM, + WKSTA_KEEPSEARCH_PARMNUM, + WKSTA_MAXCMDS_PARMNUM, + WKSTA_NUMWORKBUF_PARMNUM, + WKSTA_MAXWRKCACHE_PARMNUM, + WKSTA_SESSTIMEOUT_PARMNUM, + WKSTA_SIZERROR_PARMNUM, + WKSTA_NUMALERTS_PARMNUM, + WKSTA_NUMSERVICES_PARMNUM, + WKSTA_NUMCHARBUF_PARMNUM, + WKSTA_SIZCHARBUF_PARMNUM, // = 23 + WKSTA_ERRLOGSZ_PARMNUM = 27, + WKSTA_PRINTBUFTIME_PARMNUM, + WKSTA_SIZWORKBUF_PARMNUM, + WKSTA_MAILSLOTS_PARMNUM, + WKSTA_NUMDGRAMBUF_PARMNUM, + WKSTA_WRKHEURISTICS_PARMNUM, + WKSTA_MAXTHREADS_PARMNUM, // = 33 + WKSTA_LOCKQUOTA_PARMNUM = 41, + WKSTA_LOCKINCREMENT_PARMNUM, + WKSTA_LOCKMAXIMUM_PARMNUM, + WKSTA_PIPEINCREMENT_PARMNUM, + WKSTA_PIPEMAXIMUM_PARMNUM, + WKSTA_DORMANTFILELIMIT_PARMNUM, + WKSTA_CACHEFILETIMEOUT_PARMNUM, + WKSTA_USEOPPORTUNISTICLOCKING_PARMNUM, + WKSTA_USEUNLOCKBEHIND_PARMNUM, + WKSTA_USECLOSEBEHIND_PARMNUM, + WKSTA_BUFFERNAMEDPIPES_PARMNUM, + WKSTA_USELOCKANDREADANDUNLOCK_PARMNUM, + WKSTA_UTILIZENTCACHING_PARMNUM, + WKSTA_USERAWREAD_PARMNUM, + WKSTA_USERAWWRITE_PARMNUM, + WKSTA_USEWRITERAWWITHDATA_PARMNUM, + WKSTA_USEENCRYPTION_PARMNUM, + WKSTA_BUFFILESWITHDENYWRITE_PARMNUM, + WKSTA_BUFFERREADONLYFILES_PARMNUM, + WKSTA_FORCECORECREATEMODE_PARMNUM, + WKSTA_USE512BYTESMAXTRANSFER_PARMNUM, + WKSTA_READAHEADTHRUPUT_PARMNUM, // = 62 + WKSTA_PLATFORM_ID_PARMNUM = 100, + WKSTA_OTH_DOMAINS_PARMNUM = 101, + TRANSPORT_QUALITYOFSERVICE_PARMNUM = 201, + TRANSPORT_NAME_PARMNUM = 202 +} + +struct WKSTA_INFO_100{ + DWORD wki100_platform_id; + LPWSTR wki100_computername; + LPWSTR wki100_langroup; + DWORD wki100_ver_major; + DWORD wki100_ver_minor; +} +alias WKSTA_INFO_100* PWKSTA_INFO_100, LPWKSTA_INFO_100; + +struct WKSTA_INFO_101{ + DWORD wki101_platform_id; + LPWSTR wki101_computername; + LPWSTR wki101_langroup; + DWORD wki101_ver_major; + DWORD wki101_ver_minor; + LPWSTR wki101_lanroot; +} +alias WKSTA_INFO_101* PWKSTA_INFO_101, LPWKSTA_INFO_101; + +struct WKSTA_INFO_102{ + DWORD wki102_platform_id; + LPWSTR wki102_computername; + LPWSTR wki102_langroup; + DWORD wki102_ver_major; + DWORD wki102_ver_minor; + LPWSTR wki102_lanroot; + DWORD wki102_logged_on_users; +} +alias WKSTA_INFO_102* PWKSTA_INFO_102, LPWKSTA_INFO_102; + +struct WKSTA_INFO_302{ + DWORD wki302_char_wait; + DWORD wki302_collection_time; + DWORD wki302_maximum_collection_count; + DWORD wki302_keep_conn; + DWORD wki302_keep_search; + DWORD wki302_max_cmds; + DWORD wki302_num_work_buf; + DWORD wki302_siz_work_buf; + DWORD wki302_max_wrk_cache; + DWORD wki302_sess_timeout; + DWORD wki302_siz_error; + DWORD wki302_num_alerts; + DWORD wki302_num_services; + DWORD wki302_errlog_sz; + DWORD wki302_print_buf_time; + DWORD wki302_num_char_buf; + DWORD wki302_siz_char_buf; + LPWSTR wki302_wrk_heuristics; + DWORD wki302_mailslots; + DWORD wki302_num_dgram_buf; +} +alias WKSTA_INFO_302* PWKSTA_INFO_302, LPWKSTA_INFO_302; + +struct WKSTA_INFO_402{ + DWORD wki402_char_wait; + DWORD wki402_collection_time; + DWORD wki402_maximum_collection_count; + DWORD wki402_keep_conn; + DWORD wki402_keep_search; + DWORD wki402_max_cmds; + DWORD wki402_num_work_buf; + DWORD wki402_siz_work_buf; + DWORD wki402_max_wrk_cache; + DWORD wki402_sess_timeout; + DWORD wki402_siz_error; + DWORD wki402_num_alerts; + DWORD wki402_num_services; + DWORD wki402_errlog_sz; + DWORD wki402_print_buf_time; + DWORD wki402_num_char_buf; + DWORD wki402_siz_char_buf; + LPWSTR wki402_wrk_heuristics; + DWORD wki402_mailslots; + DWORD wki402_num_dgram_buf; + DWORD wki402_max_threads; +} +alias WKSTA_INFO_402* PWKSTA_INFO_402, LPWKSTA_INFO_402; + +struct WKSTA_INFO_502{ + DWORD wki502_char_wait; + DWORD wki502_collection_time; + DWORD wki502_maximum_collection_count; + DWORD wki502_keep_conn; + DWORD wki502_max_cmds; + DWORD wki502_sess_timeout; + DWORD wki502_siz_char_buf; + DWORD wki502_max_threads; + DWORD wki502_lock_quota; + DWORD wki502_lock_increment; + DWORD wki502_lock_maximum; + DWORD wki502_pipe_increment; + DWORD wki502_pipe_maximum; + DWORD wki502_cache_file_timeout; + DWORD wki502_dormant_file_limit; + DWORD wki502_read_ahead_throughput; + DWORD wki502_num_mailslot_buffers; + DWORD wki502_num_srv_announce_buffers; + DWORD wki502_max_illegal_datagram_events; + DWORD wki502_illegal_datagram_event_reset_frequency; + BOOL wki502_log_election_packets; + BOOL wki502_use_opportunistic_locking; + BOOL wki502_use_unlock_behind; + BOOL wki502_use_close_behind; + BOOL wki502_buf_named_pipes; + BOOL wki502_use_lock_read_unlock; + BOOL wki502_utilize_nt_caching; + BOOL wki502_use_raw_read; + BOOL wki502_use_raw_write; + BOOL wki502_use_write_raw_data; + BOOL wki502_use_encryption; + BOOL wki502_buf_files_deny_write; + BOOL wki502_buf_read_only_files; + BOOL wki502_force_core_create_mode; + BOOL wki502_use_512_byte_max_transfer; +} +alias WKSTA_INFO_502* PWKSTA_INFO_502, LPWKSTA_INFO_502; + +struct WKSTA_INFO_1010 { + DWORD wki1010_char_wait; +} +alias WKSTA_INFO_1010* PWKSTA_INFO_1010, LPWKSTA_INFO_1010; + +struct WKSTA_INFO_1011 { + DWORD wki1011_collection_time; +} +alias WKSTA_INFO_1011* PWKSTA_INFO_1011, LPWKSTA_INFO_1011; + +struct WKSTA_INFO_1012 { + DWORD wki1012_maximum_collection_count; +} +alias WKSTA_INFO_1012* PWKSTA_INFO_1012, LPWKSTA_INFO_1012; + +struct WKSTA_INFO_1027 { + DWORD wki1027_errlog_sz; +} +alias WKSTA_INFO_1027* PWKSTA_INFO_1027, LPWKSTA_INFO_1027; + +struct WKSTA_INFO_1028 { + DWORD wki1028_print_buf_time; +} +alias WKSTA_INFO_1028* PWKSTA_INFO_1028, LPWKSTA_INFO_1028; + +struct WKSTA_INFO_1032 { + DWORD wki1032_wrk_heuristics; +} +alias WKSTA_INFO_1032* PWKSTA_INFO_1032, LPWKSTA_INFO_1032; + +struct WKSTA_INFO_1013 { + DWORD wki1013_keep_conn; +} +alias WKSTA_INFO_1013* PWKSTA_INFO_1013, LPWKSTA_INFO_1013; + +struct WKSTA_INFO_1018 { + DWORD wki1018_sess_timeout; +} +alias WKSTA_INFO_1018* PWKSTA_INFO_1018, LPWKSTA_INFO_1018; + +struct WKSTA_INFO_1023 { + DWORD wki1023_siz_char_buf; +} +alias WKSTA_INFO_1023* PWKSTA_INFO_1023, LPWKSTA_INFO_1023; + +struct WKSTA_INFO_1033 { + DWORD wki1033_max_threads; +} +alias WKSTA_INFO_1033* PWKSTA_INFO_1033, LPWKSTA_INFO_1033; + +struct WKSTA_INFO_1041 { + DWORD wki1041_lock_quota; +} +alias WKSTA_INFO_1041* PWKSTA_INFO_1041, LPWKSTA_INFO_1041; + +struct WKSTA_INFO_1042 { + DWORD wki1042_lock_increment; +} +alias WKSTA_INFO_1042* PWKSTA_INFO_1042, LPWKSTA_INFO_1042; + +struct WKSTA_INFO_1043 { + DWORD wki1043_lock_maximum; +} +alias WKSTA_INFO_1043* PWKSTA_INFO_1043, LPWKSTA_INFO_1043; + +struct WKSTA_INFO_1044 { + DWORD wki1044_pipe_increment; +} +alias WKSTA_INFO_1044* PWKSTA_INFO_1044, LPWKSTA_INFO_1044; + +struct WKSTA_INFO_1045 { + DWORD wki1045_pipe_maximum; +} +alias WKSTA_INFO_1045* PWKSTA_INFO_1045, LPWKSTA_INFO_1045; + +struct WKSTA_INFO_1046 { + DWORD wki1046_dormant_file_limit; +} +alias WKSTA_INFO_1046* PWKSTA_INFO_1046, LPWKSTA_INFO_1046; + +struct WKSTA_INFO_1047 { + DWORD wki1047_cache_file_timeout; +} +alias WKSTA_INFO_1047* PWKSTA_INFO_1047, LPWKSTA_INFO_1047; + +struct WKSTA_INFO_1048 { + BOOL wki1048_use_opportunistic_locking; +} +alias WKSTA_INFO_1048* PWKSTA_INFO_1048, LPWKSTA_INFO_1048; + +struct WKSTA_INFO_1049 { + BOOL wki1049_use_unlock_behind; +} +alias WKSTA_INFO_1049* PWKSTA_INFO_1049, LPWKSTA_INFO_1049; + +struct WKSTA_INFO_1050 { + BOOL wki1050_use_close_behind; +} +alias WKSTA_INFO_1050* PWKSTA_INFO_1050, LPWKSTA_INFO_1050; + +struct WKSTA_INFO_1051 { + BOOL wki1051_buf_named_pipes; +} +alias WKSTA_INFO_1051* PWKSTA_INFO_1051, LPWKSTA_INFO_1051; + +struct WKSTA_INFO_1052 { + BOOL wki1052_use_lock_read_unlock; +} +alias WKSTA_INFO_1052* PWKSTA_INFO_1052, LPWKSTA_INFO_1052; + +struct WKSTA_INFO_1053 { + BOOL wki1053_utilize_nt_caching; +} +alias WKSTA_INFO_1053* PWKSTA_INFO_1053, LPWKSTA_INFO_1053; + +struct WKSTA_INFO_1054 { + BOOL wki1054_use_raw_read; +} +alias WKSTA_INFO_1054* PWKSTA_INFO_1054, LPWKSTA_INFO_1054; + +struct WKSTA_INFO_1055 { + BOOL wki1055_use_raw_write; +} +alias WKSTA_INFO_1055* PWKSTA_INFO_1055, LPWKSTA_INFO_1055; + +struct WKSTA_INFO_1056 { + BOOL wki1056_use_write_raw_data; +} +alias WKSTA_INFO_1056* PWKSTA_INFO_1056, LPWKSTA_INFO_1056; + +struct WKSTA_INFO_1057 { + BOOL wki1057_use_encryption; +} +alias WKSTA_INFO_1057* PWKSTA_INFO_1057, LPWKSTA_INFO_1057; + +struct WKSTA_INFO_1058 { + BOOL wki1058_buf_files_deny_write; +} +alias WKSTA_INFO_1058* PWKSTA_INFO_1058, LPWKSTA_INFO_1058; + +struct WKSTA_INFO_1059 { + BOOL wki1059_buf_read_only_files; +} +alias WKSTA_INFO_1059* PWKSTA_INFO_1059, LPWKSTA_INFO_1059; + +struct WKSTA_INFO_1060 { + BOOL wki1060_force_core_create_mode; +} +alias WKSTA_INFO_1060* PWKSTA_INFO_1060, LPWKSTA_INFO_1060; + +struct WKSTA_INFO_1061 { + BOOL wki1061_use_512_byte_max_transfer; +} +alias WKSTA_INFO_1061* PWKSTA_INFO_1061, LPWKSTA_INFO_1061; + +struct WKSTA_INFO_1062 { + DWORD wki1062_read_ahead_throughput; +} +alias WKSTA_INFO_1062* PWKSTA_INFO_1062, LPWKSTA_INFO_1062; + +struct WKSTA_USER_INFO_0 { + LPWSTR wkui0_username; +} +alias WKSTA_USER_INFO_0* PWKSTA_USER_INFO_0, LPWKSTA_USER_INFO_0; + +struct WKSTA_USER_INFO_1{ + LPWSTR wkui1_username; + LPWSTR wkui1_logon_domain; + LPWSTR wkui1_oth_domains; + LPWSTR wkui1_logon_server; +} +alias WKSTA_USER_INFO_1* PWKSTA_USER_INFO_1, LPWKSTA_USER_INFO_1; + +struct WKSTA_USER_INFO_1101 { + LPWSTR wkui1101_oth_domains; +} +alias WKSTA_USER_INFO_1101* PWKSTA_USER_INFO_1101, LPWKSTA_USER_INFO_1101; + +struct WKSTA_TRANSPORT_INFO_0{ + DWORD wkti0_quality_of_service; + DWORD wkti0_number_of_vcs; + LPWSTR wkti0_transport_name; + LPWSTR wkti0_transport_address; + BOOL wkti0_wan_ish; +} +alias WKSTA_TRANSPORT_INFO_0* PWKSTA_TRANSPORT_INFO_0, LPWKSTA_TRANSPORT_INFO_0; + +extern (Windows) { +NET_API_STATUS NetWkstaGetInfo(LPWSTR,DWORD,PBYTE*); +NET_API_STATUS NetWkstaSetInfo(LPWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetWkstaUserGetInfo(LPWSTR,DWORD,PBYTE*); +NET_API_STATUS NetWkstaUserSetInfo(LPWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetWkstaUserEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); +NET_API_STATUS NetWkstaTransportAdd(LPWSTR,DWORD,PBYTE,PDWORD); +NET_API_STATUS NetWkstaTransportDel(LPWSTR,LPWSTR,DWORD); +NET_API_STATUS NetWkstaTransportEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); +} ADDED src/win32/lzexpand.d Index: src/win32/lzexpand.d ================================================================== --- src/win32/lzexpand.d +++ src/win32/lzexpand.d @@ -0,0 +1,48 @@ +/***********************************************************************\ +* lzexpand.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.lzexpand; +pragma(lib, "lz32.lib"); + +private import win32.winbase, win32.windef; + +enum : LONG { + LZERROR_BADINHANDLE = -1, + LZERROR_BADOUTHANDLE = -2, + LZERROR_READ = -3, + LZERROR_WRITE = -4, + LZERROR_GLOBALLOC = -5, + LZERROR_GLOBLOCK = -6, + LZERROR_BADVALUE = -7, + LZERROR_UNKNOWNALG = -8 +} + +extern (Windows): +deprecated { + LONG CopyLZFile(INT, INT); + void LZDone(); + INT LZStart(); +} +INT GetExpandedNameA(LPSTR, LPSTR); +INT GetExpandedNameW(LPWSTR, LPWSTR); +void LZClose(INT); +LONG LZCopy(INT, INT); +INT LZInit(INT); +INT LZOpenFileA(LPSTR, LPOFSTRUCT, WORD); +INT LZOpenFileW(LPWSTR, LPOFSTRUCT, WORD); +INT LZRead(INT, LPSTR, INT); +LONG LZSeek(INT, LONG, INT); + +version (Unicode) { + alias GetExpandedNameW GetExpandedName; + alias LZOpenFileW LZOpenFile; +} else { + alias GetExpandedNameA GetExpandedName; + alias LZOpenFileA LZOpenFile; +} ADDED src/win32/mapi.d Index: src/win32/mapi.d ================================================================== --- src/win32/mapi.d +++ src/win32/mapi.d @@ -0,0 +1,168 @@ +/***********************************************************************\ +* mapi.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.mapi; + +private import win32.windef; + +// FIXME: check types and grouping of constants + +enum { + SUCCESS_SUCCESS, + MAPI_USER_ABORT, + MAPI_E_USER_ABORT = MAPI_USER_ABORT, + MAPI_E_FAILURE, + MAPI_E_LOGIN_FAILURE, + MAPI_E_LOGON_FAILURE = MAPI_E_LOGIN_FAILURE, + MAPI_E_DISK_FULL = 4, + MAPI_E_INSUFFICIENT_MEMORY, + MAPI_E_ACCESS_DENIED, + MAPI_E_BLK_TOO_SMALL = MAPI_E_ACCESS_DENIED, // = 6 + MAPI_E_TOO_MANY_SESSIONS = 8, + MAPI_E_TOO_MANY_FILES, + MAPI_E_TOO_MANY_RECIPIENTS, + MAPI_E_ATTACHMENT_NOT_FOUND, + MAPI_E_ATTACHMENT_OPEN_FAILURE, + MAPI_E_ATTACHMENT_WRITE_FAILURE, + MAPI_E_UNKNOWN_RECIPIENT, + MAPI_E_BAD_RECIPTYPE, + MAPI_E_NO_MESSAGES, + MAPI_E_INVALID_MESSAGE, + MAPI_E_TEXT_TOO_LARGE, + MAPI_E_INVALID_SESSION, + MAPI_E_TYPE_NOT_SUPPORTED, + MAPI_E_AMBIGUOUS_RECIPIENT, + MAPI_E_AMBIGUOUS_RECIP = MAPI_E_AMBIGUOUS_RECIPIENT, + MAPI_E_MESSAGE_IN_USE, + MAPI_E_NETWORK_FAILURE, + MAPI_E_INVALID_EDITFIELDS, + MAPI_E_INVALID_RECIPS, + MAPI_E_NOT_SUPPORTED // = 26 +} + +enum { + MAPI_ORIG, + MAPI_TO, + MAPI_CC, + MAPI_BCC +} + +const MAPI_LOGON_UI = 0x0001; +const MAPI_NEW_SESSION = 0x0002; +const MAPI_FORCE_DOWNLOAD = 0x1000; +const MAPI_LOGOFF_SHARED = 0x0001; +const MAPI_LOGOFF_UI = 0x0002; +const MAPI_DIALOG = 0x0008; +const MAPI_UNREAD_ONLY = 0x0020; +const MAPI_LONG_MSGID = 0x4000; +const MAPI_GUARANTEE_FIFO = 0x0100; +const MAPI_ENVELOPE_ONLY = 0x0040; +const MAPI_PEEK = 0x0080; +const MAPI_BODY_AS_FILE = 0x0200; +const MAPI_SUPPRESS_ATTACH = 0x0800; +const MAPI_AB_NOMODIFY = 0x0400; +const MAPI_OLE = 0x0001; +const MAPI_OLE_STATIC = 0x0002; +const MAPI_UNREAD = 0x0001; +const MAPI_RECEIPT_REQUESTED = 0x0002; +const MAPI_SENT = 0x0004; + +alias uint FLAGS, LHANDLE; +alias uint* LPLHANDLE, LPULONG; + +struct MapiRecipDesc { + ULONG ulReserved; + ULONG ulRecipClass; + LPSTR lpszName; + LPSTR lpszAddress; + ULONG ulEIDSize; + LPVOID lpEntryID; +} +alias MapiRecipDesc* lpMapiRecipDesc; + +struct MapiFileDesc { + ULONG ulReserved; + ULONG flFlags; + ULONG nPosition; + LPSTR lpszPathName; + LPSTR lpszFileName; + LPVOID lpFileType; +} +alias MapiFileDesc* lpMapiFileDesc; + +struct MapiFileTagExt { + ULONG ulReserved; + ULONG cbTag; + LPBYTE lpTag; + ULONG cbEncoding; + LPBYTE lpEncoding; +} +alias MapiFileTagExt* lpMapiFileTagExt; + +struct MapiMessage { + ULONG ulReserved; + LPSTR lpszSubject; + LPSTR lpszNoteText; + LPSTR lpszMessageType; + LPSTR lpszDateReceived; + LPSTR lpszConversationID; + FLAGS flFlags; + lpMapiRecipDesc lpOriginator; + ULONG nRecipCount; + lpMapiRecipDesc lpRecips; + ULONG nFileCount; + lpMapiFileDesc lpFiles; +} +alias MapiMessage* lpMapiMessage; + +extern (Pascal) { + ULONG MAPILogon(ULONG, LPSTR, LPSTR, FLAGS, ULONG, LPLHANDLE); + ULONG MAPISendMail(LHANDLE, ULONG, lpMapiMessage, FLAGS, ULONG); + ULONG MAPISendDocuments(ULONG, LPSTR, LPSTR, LPSTR, ULONG); + ULONG MAPIReadMail(LHANDLE, ULONG, LPSTR, FLAGS, ULONG, lpMapiMessage*); + ULONG MAPIFindNext(LHANDLE, ULONG, LPSTR, LPSTR, FLAGS, ULONG, LPSTR); + ULONG MAPIResolveName(LHANDLE, ULONG, LPSTR, FLAGS, ULONG, + lpMapiRecipDesc*); + ULONG MAPIAddress(LHANDLE, ULONG, LPSTR, ULONG, LPSTR, ULONG, + lpMapiRecipDesc, FLAGS, ULONG, LPULONG, lpMapiRecipDesc*); + ULONG MAPIFreeBuffer(LPVOID); + ULONG MAPIDetails(LHANDLE, ULONG, lpMapiRecipDesc, FLAGS, ULONG); + ULONG MAPISaveMail(LHANDLE, ULONG, lpMapiMessage lpszMessage, FLAGS, + ULONG, LPSTR); + ULONG MAPIDeleteMail(LHANDLE lpSession, ULONG, LPSTR, FLAGS, ULONG); + ULONG MAPILogoff(LHANDLE, ULONG, FLAGS, ULONG); + // Netscape extensions + ULONG MAPIGetNetscapeVersion(); + ULONG MAPI_NSCP_SynchronizeClient(LHANDLE, ULONG); + + // Handles for use with GetProcAddress + alias ULONG function(ULONG, LPSTR, LPSTR, FLAGS, ULONG, LPLHANDLE) + LPMAPILOGON; + alias ULONG function(LHANDLE, ULONG, lpMapiMessage, FLAGS, ULONG) + LPMAPISENDMAIL; + alias ULONG function(ULONG, LPSTR, LPSTR, LPSTR, ULONG) + LPMAPISENDDOCUMENTS; + alias ULONG function(LHANDLE, ULONG, LPSTR, FLAGS, ULONG, lpMapiMessage*) + LPMAPIREADMAIL; + alias ULONG function(LHANDLE, ULONG, LPSTR, LPSTR, FLAGS, ULONG, LPSTR) + LPMAPIFINDNEXT; + alias ULONG function(LHANDLE, ULONG, LPSTR, FLAGS, ULONG, + lpMapiRecipDesc*) LPMAPIRESOLVENAME; + alias ULONG function(LHANDLE, ULONG, LPSTR, ULONG, LPSTR, ULONG, + lpMapiRecipDesc, FLAGS, ULONG, LPULONG, lpMapiRecipDesc*) LPMAPIADDRESS; + alias ULONG function(LPVOID lpv) LPMAPIFREEBUFFER; + alias ULONG function(LHANDLE, ULONG, lpMapiRecipDesc, FLAGS, ULONG) + LPMAPIDETAILS; + alias ULONG function(LHANDLE, ULONG, lpMapiMessage, FLAGS, ULONG, LPSTR) + LPMAPISAVEMAIL; + alias ULONG function(LHANDLE lpSession, ULONG, LPSTR, FLAGS, ULONG) + LPMAPIDELETEMAIL; + alias ULONG function(LHANDLE, ULONG, FLAGS, ULONG) LPMAPILOGOFF; +} ADDED src/win32/mciavi.d Index: src/win32/mciavi.d ================================================================== --- src/win32/mciavi.d +++ src/win32/mciavi.d @@ -0,0 +1,40 @@ +/***********************************************************************\ +* mciavi.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.mciavi; + +private import win32.mmsystem; + +// FIXME: check types and grouping of constants + +const MCI_MCIAVI_PLAY_WINDOW = 0x01000000; +const MCI_MCIAVI_PLAY_FULLSCREEN = 0x02000000; +const MCI_MCIAVI_PLAY_FULLBY2 = 0x04000000; + +enum { + MCI_AVI_STATUS_FRAMES_SKIPPED = 0x00008001, + MCI_AVI_STATUS_LAST_PLAY_SPEED = 0x00008002, + MCI_AVI_STATUS_AUDIO_BREAKS = 0x00008003, + MCI_AVI_SETVIDEO_DRAW_PROCEDURE = 0x00008000, + MCI_AVI_SETVIDEO_PALETTE_COLOR = 0x00008100, + MCI_AVI_SETVIDEO_PALETTE_HALFTONE = 0x0000FFFF +} + +enum { + MCIERR_AVI_OLDAVIFORMAT = MCIERR_CUSTOM_DRIVER_BASE + 100, + MCIERR_AVI_NOTINTERLEAVED, + MCIERR_AVI_NODISPDIB, + MCIERR_AVI_CANTPLAYFULLSCREEN, + MCIERR_AVI_TOOBIGFORVGA, + MCIERR_AVI_NOCOMPRESSOR, + MCIERR_AVI_DISPLAYERROR, + MCIERR_AVI_AUDIOERROR, + MCIERR_AVI_BADPALETTE // = MCIERR_CUSTOM_DRIVER_BASE + 108 +} ADDED src/win32/mcx.d Index: src/win32/mcx.d ================================================================== --- src/win32/mcx.d +++ src/win32/mcx.d @@ -0,0 +1,99 @@ +/***********************************************************************\ +* mcx.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.mcx; + +private import win32.windef; + +const DWORD + DIALOPTION_BILLING = 64, + DIALOPTION_QUIET = 128, + DIALOPTION_DIALTONE = 256; + +const DWORD + MDMVOLFLAG_LOW = 1, + MDMVOLFLAG_MEDIUM = 2, + MDMVOLFLAG_HIGH = 4; + +enum : DWORD { + MDMVOL_LOW = 0, + MDMVOL_MEDIUM = 1, + MDMVOL_HIGH = 2 +} + +const DWORD + MDMSPKRFLAG_OFF = 1, + MDMSPKRFLAG_DIAL = 2, + MDMSPKRFLAG_ON = 4, + MDMSPKRFLAG_CALLSETUP = 8; + +enum : DWORD { + MDMSPKR_OFF, + MDMSPKR_DIAL, + MDMSPKR_ON, + MDMSPKR_CALLSETUP +} + +const DWORD + MDM_COMPRESSION = 0x0001, + MDM_ERROR_CONTROL = 0x0002, + MDM_FORCED_EC = 0x0004, + MDM_CELLULAR = 0x0008, + MDM_FLOWCONTROL_HARD = 0x0010, + MDM_FLOWCONTROL_SOFT = 0x0020, + MDM_CCITT_OVERRIDE = 0x0040, + MDM_SPEED_ADJUST = 0x0080, + MDM_TONE_DIAL = 0x0100, + MDM_BLIND_DIAL = 0x0200, + MDM_V23_OVERRIDE = 0x0400; + +struct MODEMDEVCAPS { + DWORD dwActualSize; + DWORD dwRequiredSize; + DWORD dwDevSpecificOffset; + DWORD dwDevSpecificSize; + DWORD dwModemProviderVersion; + DWORD dwModemManufacturerOffset; + DWORD dwModemManufacturerSize; + DWORD dwModemModelOffset; + DWORD dwModemModelSize; + DWORD dwModemVersionOffset; + DWORD dwModemVersionSize; + DWORD dwDialOptions; + DWORD dwCallSetupFailTimer; + DWORD dwInactivityTimeout; + DWORD dwSpeakerVolume; + DWORD dwSpeakerMode; + DWORD dwModemOptions; + DWORD dwMaxDTERate; + DWORD dwMaxDCERate; + BYTE _abVariablePortion; + + BYTE* abVariablePortion() { return &_abVariablePortion; } +} +alias MODEMDEVCAPS* PMODEMDEVCAPS, LPMODEMDEVCAPS; + +struct MODEMSETTINGS { + DWORD dwActualSize; + DWORD dwRequiredSize; + DWORD dwDevSpecificOffset; + DWORD dwDevSpecificSize; + DWORD dwCallSetupFailTimer; + DWORD dwInactivityTimeout; + DWORD dwSpeakerVolume; + DWORD dwSpeakerMode; + DWORD dwPreferredModemOptions; + DWORD dwNegotiatedModemOptions; + DWORD dwNegotiatedDCERate; + BYTE _abVariablePortion; + + BYTE* abVariablePortion() { return &_abVariablePortion; } +} +alias MODEMSETTINGS* PMODEMSETTINGS, LPMODEMSETTINGS; ADDED src/win32/mgmtapi.d Index: src/win32/mgmtapi.d ================================================================== --- src/win32/mgmtapi.d +++ src/win32/mgmtapi.d @@ -0,0 +1,47 @@ +/***********************************************************************\ +* mgmtapi.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.mgmtapi; + +import win32.snmp; +private import win32.windef; + +enum { + SNMP_MGMTAPI_TIMEOUT = 40, + SNMP_MGMTAPI_SELECT_FDERRORS, + SNMP_MGMTAPI_TRAP_ERRORS, + SNMP_MGMTAPI_TRAP_DUPINIT, + SNMP_MGMTAPI_NOTRAPS, + SNMP_MGMTAPI_AGAIN, + SNMP_MGMTAPI_INVALID_CTL, + SNMP_MGMTAPI_INVALID_SESSION, + SNMP_MGMTAPI_INVALID_BUFFER // = 48 +} + +const MGMCTL_SETAGENTPORT = 1; + +alias PVOID LPSNMP_MGR_SESSION; + +extern (Windows) { + BOOL SnmpMgrClose(LPSNMP_MGR_SESSION); + BOOL SnmpMgrCtl(LPSNMP_MGR_SESSION, DWORD, LPVOID, DWORD, LPVOID, DWORD, + LPDWORD); + BOOL SnmpMgrGetTrap(AsnObjectIdentifier*, AsnNetworkAddress*, + AsnInteger*, AsnInteger*, AsnTimeticks*, SnmpVarBindList*); + BOOL SnmpMgrGetTrapEx(AsnObjectIdentifier*, AsnNetworkAddress*, + AsnNetworkAddress*, AsnInteger*, AsnInteger*, AsnOctetString*, + AsnTimeticks*, SnmpVarBindList*); + BOOL SnmpMgrOidToStr(AsnObjectIdentifier*, LPSTR*); + LPSNMP_MGR_SESSION SnmpMgrOpen(LPSTR, LPSTR, INT, INT); + INT SnmpMgrRequest(LPSNMP_MGR_SESSION, BYTE, SnmpVarBindList*, + AsnInteger*, AsnInteger*); + BOOL SnmpMgrStrToOid(LPSTR, AsnObjectIdentifier*); + BOOL SnmpMgrTrapListen(HANDLE*); +} Index: src/win32/mmsystem.d ================================================================== --- src/win32/mmsystem.d +++ src/win32/mmsystem.d @@ -1,3667 +1,2269 @@ -module win32.mmsystem; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.winbase; - -// #ifndef _INC_MMSYSTEM -// #define _INC_MMSYSTEM - -// #ifdef _WIN32 -align(1): -// #else -// #ifndef RC_INVOKED -// #... -// #endif -// #endif - -// #ifdef __cplusplus -// extern "C" { /* Assume C declarations for C++ */ -// #endif /* __cplusplus */ - -// #ifdef _WIN32 -// #ifndef _WINMM_ -// #define WINMMAPI DECLSPEC_IMPORT -// #else -// #... -// #endif -// #define _loadds -// #define _huge -// #else -// #... -// #endif - -// #ifdef _MAC -// #... -// #endif //_MAC - -enum : uint { MAXPNAMELEN = 32 } -enum : uint { MAXERRORLENGTH = 256 } -enum : uint { MAX_JOYSTICKOEMVXDNAME = 260 } - -// #if (WINVER <= 0x0400) -// #ifndef MM_MICROSOFT -// #... -// #endif - -// #ifndef MM_MIDI_MAPPER -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #endif -// #endif - -// #ifdef _WIN32 -alias UINT MMVERSION; -// #else -// ... -// #endif -alias UINT MMRESULT; - -// #define _MMRESULT_ - -alias UINT* LPUINT; - -struct mmtime_tag { - UINT wType; -union { - DWORD ms; - DWORD sample; - DWORD cb; - DWORD ticks; - -struct { - BYTE hour; - BYTE min; - BYTE sec; - BYTE frame; - BYTE fps; - BYTE dummy; -// #ifdef _WIN32 - BYTE pad[2]; -// #endif -} - -struct { - DWORD songptrpos; -} - -} - -} -alias mmtime_tag MMTIME; -alias mmtime_tag* PMMTIME; -alias mmtime_tag* NPMMTIME; -alias mmtime_tag* LPMMTIME; - -enum : uint { TIME_MS = 0x0001 } -enum : uint { TIME_SAMPLES = 0x0002 } -enum : uint { TIME_BYTES = 0x0004 } -enum : uint { TIME_SMPTE = 0x0008 } -enum : uint { TIME_MIDI = 0x0010 } -enum : uint { TIME_TICKS = 0x0020 } - -uint MAKEFOURCC(ubyte ch0, ubyte ch1, ubyte ch2, ubyte ch3){ return ch0 | (ch1 << 8) | (ch2 << 16) | (ch3 << 24); } - -enum : uint { MM_JOY1MOVE = 0x3A0 } -enum : uint { MM_JOY2MOVE = 0x3A1 } -enum : uint { MM_JOY1ZMOVE = 0x3A2 } -enum : uint { MM_JOY2ZMOVE = 0x3A3 } -enum : uint { MM_JOY1BUTTONDOWN = 0x3B5 } -enum : uint { MM_JOY2BUTTONDOWN = 0x3B6 } -enum : uint { MM_JOY1BUTTONUP = 0x3B7 } -enum : uint { MM_JOY2BUTTONUP = 0x3B8 } - -enum : uint { MM_MCINOTIFY = 0x3B9 } - -enum : uint { MM_WOM_OPEN = 0x3BB } -enum : uint { MM_WOM_CLOSE = 0x3BC } -enum : uint { MM_WOM_DONE = 0x3BD } - -enum : uint { MM_WIM_OPEN = 0x3BE } -enum : uint { MM_WIM_CLOSE = 0x3BF } -enum : uint { MM_WIM_DATA = 0x3C0 } - -enum : uint { MM_MIM_OPEN = 0x3C1 } -enum : uint { MM_MIM_CLOSE = 0x3C2 } -enum : uint { MM_MIM_DATA = 0x3C3 } -enum : uint { MM_MIM_LONGDATA = 0x3C4 } -enum : uint { MM_MIM_ERROR = 0x3C5 } -enum : uint { MM_MIM_LONGERROR = 0x3C6 } - -enum : uint { MM_MOM_OPEN = 0x3C7 } -enum : uint { MM_MOM_CLOSE = 0x3C8 } -enum : uint { MM_MOM_DONE = 0x3C9 } - -// #ifndef MM_DRVM_OPEN -enum : uint { MM_DRVM_OPEN = 0x3D0 } -enum : uint { MM_DRVM_CLOSE = 0x3D1 } -enum : uint { MM_DRVM_DATA = 0x3D2 } -enum : uint { MM_DRVM_ERROR = 0x3D3 } -// #endif - -enum : uint { MM_STREAM_OPEN = 0x3D4 } -enum : uint { MM_STREAM_CLOSE = 0x3D5 } -enum : uint { MM_STREAM_DONE = 0x3D6 } -enum : uint { MM_STREAM_ERROR = 0x3D7 } - -// #if(WINVER >= 0x0400) -enum : uint { MM_MOM_POSITIONCB = 0x3CA } - -// #ifndef MM_MCISIGNAL -enum : uint { MM_MCISIGNAL = 0x3CB } -// #endif - -enum : uint { MM_MIM_MOREDATA = 0x3CC } - -// #endif /* WINVER >= 0x0400 */ -enum : uint { MM_MIXM_LINE_CHANGE = 0x3D0 } -enum : uint { MM_MIXM_CONTROL_CHANGE = 0x3D1 } - -enum : uint { MMSYSERR_BASE = 0 } -enum : uint { WAVERR_BASE = 32 } -enum : uint { MIDIERR_BASE = 64 } -enum : uint { TIMERR_BASE = 96 } -enum : uint { JOYERR_BASE = 160 } -enum : uint { MCIERR_BASE = 256 } -enum : uint { MIXERR_BASE = 1024 } - -enum : uint { MCI_STRING_OFFSET = 512 } -enum : uint { MCI_VD_OFFSET = 1024 } -enum : uint { MCI_CD_OFFSET = 1088 } -enum : uint { MCI_WAVE_OFFSET = 1152 } -enum : uint { MCI_SEQ_OFFSET = 1216 } - -enum : uint { MMSYSERR_NOERROR = 0 } -enum : uint { MMSYSERR_ERROR = MMSYSERR_BASE + 1 } -enum : uint { MMSYSERR_BADDEVICEID = MMSYSERR_BASE + 2 } -enum : uint { MMSYSERR_NOTENABLED = MMSYSERR_BASE + 3 } -enum : uint { MMSYSERR_ALLOCATED = MMSYSERR_BASE + 4 } -enum : uint { MMSYSERR_INVALHANDLE = MMSYSERR_BASE + 5 } -enum : uint { MMSYSERR_NODRIVER = MMSYSERR_BASE + 6 } -enum : uint { MMSYSERR_NOMEM = MMSYSERR_BASE + 7 } -enum : uint { MMSYSERR_NOTSUPPORTED = MMSYSERR_BASE + 8 } -enum : uint { MMSYSERR_BADERRNUM = MMSYSERR_BASE + 9 } -enum : uint { MMSYSERR_INVALFLAG = MMSYSERR_BASE + 10 } -enum : uint { MMSYSERR_INVALPARAM = MMSYSERR_BASE + 11 } -enum : uint { MMSYSERR_HANDLEBUSY = MMSYSERR_BASE + 12 } - -enum : uint { MMSYSERR_INVALIDALIAS = MMSYSERR_BASE + 13 } -enum : uint { MMSYSERR_BADDB = MMSYSERR_BASE + 14 } -enum : uint { MMSYSERR_KEYNOTFOUND = MMSYSERR_BASE + 15 } -enum : uint { MMSYSERR_READERROR = MMSYSERR_BASE + 16 } -enum : uint { MMSYSERR_WRITEERROR = MMSYSERR_BASE + 17 } -enum : uint { MMSYSERR_DELETEERROR = MMSYSERR_BASE + 18 } -enum : uint { MMSYSERR_VALNOTFOUND = MMSYSERR_BASE + 19 } -enum : uint { MMSYSERR_NODRIVERCB = MMSYSERR_BASE + 20 } -enum : uint { MMSYSERR_MOREDATA = MMSYSERR_BASE + 21 } -enum : uint { MMSYSERR_LASTERROR = MMSYSERR_BASE + 21 } - -// #if (WINVER < 0x030a) || defined(_WIN32) -alias void* HDRVR; -// #endif /* ifdef WINVER < 0x030a */ - -// #ifndef MMNODRV - -// #ifdef _WIN32 -struct DRVCONFIGINFOEX { - DWORD dwDCISize; - LPCWSTR lpszDCISectionName; - LPCWSTR lpszDCIAliasName; - DWORD dnDevNode; -} -alias DRVCONFIGINFOEX* PDRVCONFIGINFOEX; -alias DRVCONFIGINFOEX* NPDRVCONFIGINFOEX; -alias DRVCONFIGINFOEX* LPDRVCONFIGINFOEX; - -// #else -// ... -// #endif - -// #if (WINVER < 0x030a) || defined(_WIN32) - -// #ifndef DRV_LOAD - -enum : uint { DRV_LOAD = 0x0001 } -enum : uint { DRV_ENABLE = 0x0002 } -enum : uint { DRV_OPEN = 0x0003 } -enum : uint { DRV_CLOSE = 0x0004 } -enum : uint { DRV_DISABLE = 0x0005 } -enum : uint { DRV_FREE = 0x0006 } -enum : uint { DRV_CONFIGURE = 0x0007 } -enum : uint { DRV_QUERYCONFIGURE = 0x0008 } -enum : uint { DRV_INSTALL = 0x0009 } -enum : uint { DRV_REMOVE = 0x000A } -enum : uint { DRV_EXITSESSION = 0x000B } -enum : uint { DRV_POWER = 0x000F } -enum : uint { DRV_RESERVED = 0x0800 } -enum : uint { DRV_USER = 0x4000 } - -// #ifdef _WIN32 -struct tagDRVCONFIGINFO { - DWORD dwDCISize; - LPCWSTR lpszDCISectionName; - LPCWSTR lpszDCIAliasName; -} -alias tagDRVCONFIGINFO DRVCONFIGINFO; -alias tagDRVCONFIGINFO* PDRVCONFIGINFO; -alias tagDRVCONFIGINFO* NPDRVCONFIGINFO; -alias tagDRVCONFIGINFO* LPDRVCONFIGINFO; - -// #else -// ... -// #endif - -enum : uint { DRVCNF_CANCEL = 0x0000 } -enum : uint { DRVCNF_OK = 0x0001 } -enum : uint { DRVCNF_RESTART = 0x0002 } - -// #ifdef _WIN32 - -extern(Windows) alias LRESULT function(DWORD_PTR, HDRVR, UINT, LPARAM, LPARAM) DRIVERPROC; - -extern(Windows) export LRESULT CloseDriver(HDRVR hDriver, LPARAM lParam1, LPARAM lParam2); -extern(Windows) export HDRVR OpenDriver(LPCWSTR szDriverName, LPCWSTR szSectionName, LPARAM lParam2); -extern(Windows) export LRESULT SendDriverMessage(HDRVR hDriver, UINT message, LPARAM lParam1, LPARAM lParam2); -extern(Windows) export HMODULE DrvGetModuleHandle(HDRVR hDriver); -extern(Windows) export HMODULE GetDriverModuleHandle(HDRVR hDriver); -extern(Windows) export LRESULT DefDriverProc(DWORD_PTR dwDriverIdentifier, HDRVR hdrvr, UINT uMsg, LPARAM lParam1, LPARAM lParam2); -// #else -// ... -// #... -// #endif /* ifdef _WIN32 */ -// #endif /* DRV_LOAD */ -// #endif /* ifdef (WINVER < 0x030a) || defined(_WIN32) */ - -// #if (WINVER >= 0x030a) - -alias DRVCNF_CANCEL DRV_CANCEL; -alias DRVCNF_OK DRV_OK; -alias DRVCNF_RESTART DRV_RESTART; - -// #endif /* ifdef WINVER >= 0x030a */ - -alias DRV_RESERVED DRV_MCI_FIRST; -enum : uint { DRV_MCI_LAST = DRV_RESERVED + 0xFFF } - -// #endif /* ifndef MMNODRV */ - -enum : uint { CALLBACK_TYPEMASK = 0x00070000 } -enum : uint { CALLBACK_NULL = 0x00000000 } -enum : uint { CALLBACK_WINDOW = 0x00010000 } -enum : uint { CALLBACK_TASK = 0x00020000 } -enum : uint { CALLBACK_FUNCTION = 0x00030000 } -// #ifdef _WIN32 -enum : uint { CALLBACK_THREAD = CALLBACK_TASK } -enum : uint { CALLBACK_EVENT = 0x00050000 } -// #endif -// typedef void (CALLBACK DRVCALLBACK)(HDRVR hdrvr, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2); - -extern(Windows) alias void function(HDRVR hdrvr, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2) LPDRVCALLBACK; -// #ifdef _WIN32 -alias LPDRVCALLBACK PDRVCALLBACK; -// #endif - -// #ifndef MMNOMMSYSTEM - -// #if (WINVER <= 0x030A) -// ... -// #endif -// #ifdef _WIN32 -alias OutputDebugString OutputDebugStr; -// #else -// ... -// #endif - -// #endif /* ifndef MMNOMMSYSTEM */ - -// #ifndef MMNOSOUND - -// #ifdef _WIN32 - -extern(Windows) export BOOL sndPlaySoundA(LPCSTR pszSound, UINT fuSound); -extern(Windows) export BOOL sndPlaySoundW(LPCWSTR pszSound, UINT fuSound); -// #ifdef UNICODE -alias sndPlaySoundW sndPlaySound; -// #else -// #... -// #endif // !UNICODE - -// #else -// ... -// #endif - -enum : uint { SND_SYNC = 0x0000 } -enum : uint { SND_ASYNC = 0x0001 } -enum : uint { SND_NODEFAULT = 0x0002 } -enum : uint { SND_MEMORY = 0x0004 } -enum : uint { SND_LOOP = 0x0008 } -enum : uint { SND_NOSTOP = 0x0010 } - -enum : uint { SND_NOWAIT = 0x00002000 } -enum : uint { SND_ALIAS = 0x00010000 } -enum : uint { SND_ALIAS_ID = 0x00110000 } -enum : uint { SND_FILENAME = 0x00020000 } -enum : uint { SND_RESOURCE = 0x00040004 } -// #if(WINVER >= 0x0400) -enum : uint { SND_PURGE = 0x0040 } -enum : uint { SND_APPLICATION = 0x0080 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { SND_ALIAS_START = 0 } - -// #ifdef _WIN32 -// #define sndAlias(ch0, ch1) (SND_ALIAS_START + (DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8)) - -// #define SND_ALIAS_SYSTEMASTERISK sndAlias('S', '*') -// #define SND_ALIAS_SYSTEMQUESTION sndAlias('S', '?') -// #define SND_ALIAS_SYSTEMHAND sndAlias('S', 'H') -// #define SND_ALIAS_SYSTEMEXIT sndAlias('S', 'E') -// #define SND_ALIAS_SYSTEMSTART sndAlias('S', 'S') -// #define SND_ALIAS_SYSTEMWELCOME sndAlias('S', 'W') -// #define SND_ALIAS_SYSTEMEXCLAMATION sndAlias('S', '!') -// #define SND_ALIAS_SYSTEMDEFAULT sndAlias('S', 'D') - -extern(Windows) export BOOL PlaySoundA(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound); -extern(Windows) export BOOL PlaySoundW(LPCWSTR pszSound, HMODULE hmod, DWORD fdwSound); -// #ifdef UNICODE -alias PlaySoundW PlaySound; -// #else -// #... -// #endif // !UNICODE - -// #else -// ... -// #endif - -// #endif /* ifndef MMNOSOUND */ - -// #ifndef MMNOWAVE - -enum : uint { WAVERR_BADFORMAT = WAVERR_BASE + 0 } -enum : uint { WAVERR_STILLPLAYING = WAVERR_BASE + 1 } -enum : uint { WAVERR_UNPREPARED = WAVERR_BASE + 2 } -enum : uint { WAVERR_SYNC = WAVERR_BASE + 3 } -enum : uint { WAVERR_LASTERROR = WAVERR_BASE + 3 } - -alias void* HWAVE; -alias void* HWAVEIN; -alias void* HWAVEOUT; -alias HWAVEIN* LPHWAVEIN; -alias HWAVEOUT* LPHWAVEOUT; -// typedef DRVCALLBACK WAVECALLBACK; -alias LPDRVCALLBACK LPWAVECALLBACK; - -alias MM_WOM_OPEN WOM_OPEN; -alias MM_WOM_CLOSE WOM_CLOSE; -alias MM_WOM_DONE WOM_DONE; -alias MM_WIM_OPEN WIM_OPEN; -alias MM_WIM_CLOSE WIM_CLOSE; -alias MM_WIM_DATA WIM_DATA; - -enum : uint { WAVE_MAPPER = cast(UINT)-1 } - -enum : uint { WAVE_FORMAT_QUERY = 0x0001 } -enum : uint { WAVE_ALLOWSYNC = 0x0002 } -// #if(WINVER >= 0x0400) -enum : uint { WAVE_MAPPED = 0x0004 } -enum : uint { WAVE_FORMAT_DIRECT = 0x0008 } -enum : uint { WAVE_FORMAT_DIRECT_QUERY = WAVE_FORMAT_QUERY | WAVE_FORMAT_DIRECT } -// #endif /* WINVER >= 0x0400 */ - -struct wavehdr_tag { - LPSTR lpData; - DWORD dwBufferLength; - DWORD dwBytesRecorded; - DWORD_PTR dwUser; - DWORD dwFlags; - DWORD dwLoops; - wavehdr_tag *lpNext; - DWORD_PTR reserved; -} -alias wavehdr_tag WAVEHDR; -alias wavehdr_tag* PWAVEHDR; -alias wavehdr_tag* NPWAVEHDR; -alias wavehdr_tag* LPWAVEHDR; - -enum : uint { WHDR_DONE = 0x00000001 } -enum : uint { WHDR_PREPARED = 0x00000002 } -enum : uint { WHDR_BEGINLOOP = 0x00000004 } -enum : uint { WHDR_ENDLOOP = 0x00000008 } -enum : uint { WHDR_INQUEUE = 0x00000010 } - -// #ifdef _WIN32 - -struct tagWAVEOUTCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; - DWORD dwSupport; -} -alias tagWAVEOUTCAPSA WAVEOUTCAPSA; -alias tagWAVEOUTCAPSA* PWAVEOUTCAPSA; -alias tagWAVEOUTCAPSA* NPWAVEOUTCAPSA; -alias tagWAVEOUTCAPSA* LPWAVEOUTCAPSA; - -struct tagWAVEOUTCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; - DWORD dwSupport; -} -alias tagWAVEOUTCAPSW WAVEOUTCAPSW; -alias tagWAVEOUTCAPSW* PWAVEOUTCAPSW; -alias tagWAVEOUTCAPSW* NPWAVEOUTCAPSW; -alias tagWAVEOUTCAPSW* LPWAVEOUTCAPSW; - -// #ifdef UNICODE -alias WAVEOUTCAPSW WAVEOUTCAPS; -alias PWAVEOUTCAPSW PWAVEOUTCAPS; -alias NPWAVEOUTCAPSW NPWAVEOUTCAPS; -alias LPWAVEOUTCAPSW LPWAVEOUTCAPS; -// #else -// ... -// #endif // UNICODE -struct tagWAVEOUTCAPS2A { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; - DWORD dwSupport; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagWAVEOUTCAPS2A WAVEOUTCAPS2A; -alias tagWAVEOUTCAPS2A* PWAVEOUTCAPS2A; -alias tagWAVEOUTCAPS2A* NPWAVEOUTCAPS2A; -alias tagWAVEOUTCAPS2A* LPWAVEOUTCAPS2A; - -struct tagWAVEOUTCAPS2W { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; - DWORD dwSupport; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagWAVEOUTCAPS2W WAVEOUTCAPS2W; -alias tagWAVEOUTCAPS2W* PWAVEOUTCAPS2W; -alias tagWAVEOUTCAPS2W* NPWAVEOUTCAPS2W; -alias tagWAVEOUTCAPS2W* LPWAVEOUTCAPS2W; - -// #ifdef UNICODE -alias WAVEOUTCAPS2W WAVEOUTCAPS2; -alias PWAVEOUTCAPS2W PWAVEOUTCAPS2; -alias NPWAVEOUTCAPS2W NPWAVEOUTCAPS2; -alias LPWAVEOUTCAPS2W LPWAVEOUTCAPS2; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -enum : uint { WAVECAPS_PITCH = 0x0001 } -enum : uint { WAVECAPS_PLAYBACKRATE = 0x0002 } -enum : uint { WAVECAPS_VOLUME = 0x0004 } -enum : uint { WAVECAPS_LRVOLUME = 0x0008 } -enum : uint { WAVECAPS_SYNC = 0x0010 } -enum : uint { WAVECAPS_SAMPLEACCURATE = 0x0020 } - -// #ifdef _WIN32 - -struct tagWAVEINCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; -} -alias tagWAVEINCAPSA WAVEINCAPSA; -alias tagWAVEINCAPSA* PWAVEINCAPSA; -alias tagWAVEINCAPSA* NPWAVEINCAPSA; -alias tagWAVEINCAPSA* LPWAVEINCAPSA; - -struct tagWAVEINCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; -} -alias tagWAVEINCAPSW WAVEINCAPSW; -alias tagWAVEINCAPSW* PWAVEINCAPSW; -alias tagWAVEINCAPSW* NPWAVEINCAPSW; -alias tagWAVEINCAPSW* LPWAVEINCAPSW; - -// #ifdef UNICODE -alias WAVEINCAPSW WAVEINCAPS; -alias PWAVEINCAPSW PWAVEINCAPS; -alias NPWAVEINCAPSW NPWAVEINCAPS; -alias LPWAVEINCAPSW LPWAVEINCAPS; -// #else -// ... -// #endif // UNICODE -struct tagWAVEINCAPS2A { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagWAVEINCAPS2A WAVEINCAPS2A; -alias tagWAVEINCAPS2A* PWAVEINCAPS2A; -alias tagWAVEINCAPS2A* NPWAVEINCAPS2A; -alias tagWAVEINCAPS2A* LPWAVEINCAPS2A; - -struct tagWAVEINCAPS2W { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagWAVEINCAPS2W WAVEINCAPS2W; -alias tagWAVEINCAPS2W* PWAVEINCAPS2W; -alias tagWAVEINCAPS2W* NPWAVEINCAPS2W; -alias tagWAVEINCAPS2W* LPWAVEINCAPS2W; - -// #ifdef UNICODE -alias WAVEINCAPS2W WAVEINCAPS2; -alias PWAVEINCAPS2W PWAVEINCAPS2; -alias NPWAVEINCAPS2W NPWAVEINCAPS2; -alias LPWAVEINCAPS2W LPWAVEINCAPS2; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -enum : uint { WAVE_INVALIDFORMAT = 0x00000000 } -enum : uint { WAVE_FORMAT_1M08 = 0x00000001 } -enum : uint { WAVE_FORMAT_1S08 = 0x00000002 } -enum : uint { WAVE_FORMAT_1M16 = 0x00000004 } -enum : uint { WAVE_FORMAT_1S16 = 0x00000008 } -enum : uint { WAVE_FORMAT_2M08 = 0x00000010 } -enum : uint { WAVE_FORMAT_2S08 = 0x00000020 } -enum : uint { WAVE_FORMAT_2M16 = 0x00000040 } -enum : uint { WAVE_FORMAT_2S16 = 0x00000080 } -enum : uint { WAVE_FORMAT_4M08 = 0x00000100 } -enum : uint { WAVE_FORMAT_4S08 = 0x00000200 } -enum : uint { WAVE_FORMAT_4M16 = 0x00000400 } -enum : uint { WAVE_FORMAT_4S16 = 0x00000800 } - -enum : uint { WAVE_FORMAT_44M08 = 0x00000100 } -enum : uint { WAVE_FORMAT_44S08 = 0x00000200 } -enum : uint { WAVE_FORMAT_44M16 = 0x00000400 } -enum : uint { WAVE_FORMAT_44S16 = 0x00000800 } -enum : uint { WAVE_FORMAT_48M08 = 0x00001000 } -enum : uint { WAVE_FORMAT_48S08 = 0x00002000 } -enum : uint { WAVE_FORMAT_48M16 = 0x00004000 } -enum : uint { WAVE_FORMAT_48S16 = 0x00008000 } -enum : uint { WAVE_FORMAT_96M08 = 0x00010000 } -enum : uint { WAVE_FORMAT_96S08 = 0x00020000 } -enum : uint { WAVE_FORMAT_96M16 = 0x00040000 } -enum : uint { WAVE_FORMAT_96S16 = 0x00080000 } - -// #ifndef WAVE_FORMAT_PCM - -struct waveformat_tag { - WORD wFormatTag; - WORD nChannels; - DWORD nSamplesPerSec; - DWORD nAvgBytesPerSec; - WORD nBlockAlign; -} -alias waveformat_tag WAVEFORMAT; -alias waveformat_tag* PWAVEFORMAT; -alias waveformat_tag* NPWAVEFORMAT; -alias waveformat_tag* LPWAVEFORMAT; - -enum : uint { WAVE_FORMAT_PCM = 1 } - -struct pcmwaveformat_tag { - WAVEFORMAT wf; - WORD wBitsPerSample; -} -alias pcmwaveformat_tag PCMWAVEFORMAT; -alias pcmwaveformat_tag* PPCMWAVEFORMAT; -alias pcmwaveformat_tag* NPPCMWAVEFORMAT; -alias pcmwaveformat_tag* LPPCMWAVEFORMAT; - -// #endif /* WAVE_FORMAT_PCM */ - -// #ifndef _WAVEFORMATEX_ -// #define _WAVEFORMATEX_ - -struct tWAVEFORMATEX { - WORD wFormatTag; - WORD nChannels; - DWORD nSamplesPerSec; - DWORD nAvgBytesPerSec; - WORD nBlockAlign; - WORD wBitsPerSample; - WORD cbSize; - -} -alias tWAVEFORMATEX WAVEFORMATEX; -alias tWAVEFORMATEX* PWAVEFORMATEX; -alias tWAVEFORMATEX* NPWAVEFORMATEX; -alias tWAVEFORMATEX* LPWAVEFORMATEX; - -// #endif /* _WAVEFORMATEX_ */ -alias WAVEFORMATEX* LPCWAVEFORMATEX; - -extern(Windows) export UINT waveOutGetNumDevs(); - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT waveOutGetDevCapsA(UINT_PTR uDeviceID, LPWAVEOUTCAPSA pwoc, UINT cbwoc); -extern(Windows) export MMRESULT waveOutGetDevCapsW(UINT_PTR uDeviceID, LPWAVEOUTCAPSW pwoc, UINT cbwoc); -// #ifdef UNICODE -alias waveOutGetDevCapsW waveOutGetDevCaps; -// #else -// #... -// #endif // !UNICODE - -// #else -// ... -// #endif - -// #if (WINVER >= 0x0400) -extern(Windows) export MMRESULT waveOutGetVolume(HWAVEOUT hwo, LPDWORD pdwVolume); -extern(Windows) export MMRESULT waveOutSetVolume(HWAVEOUT hwo, DWORD dwVolume); -// #else -// ... -// #endif - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT waveOutGetErrorTextA(MMRESULT mmrError, LPSTR pszText, UINT cchText); -extern(Windows) export MMRESULT waveOutGetErrorTextW(MMRESULT mmrError, LPWSTR pszText, UINT cchText); -// #ifdef UNICODE -alias waveOutGetErrorTextW waveOutGetErrorText; -// #else -// #... -// #endif // !UNICODE - -// #else -// ... -// #endif - -extern(Windows) export MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, - LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); - -extern(Windows) export MMRESULT waveOutClose(HWAVEOUT hwo); -extern(Windows) export MMRESULT waveOutPrepareHeader(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh); -extern(Windows) export MMRESULT waveOutUnprepareHeader(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh); -extern(Windows) export MMRESULT waveOutWrite(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh); -extern(Windows) export MMRESULT waveOutPause(HWAVEOUT hwo); -extern(Windows) export MMRESULT waveOutRestart(HWAVEOUT hwo); -extern(Windows) export MMRESULT waveOutReset(HWAVEOUT hwo); -extern(Windows) export MMRESULT waveOutBreakLoop(HWAVEOUT hwo); -extern(Windows) export MMRESULT waveOutGetPosition(HWAVEOUT hwo, LPMMTIME pmmt, UINT cbmmt); -extern(Windows) export MMRESULT waveOutGetPitch(HWAVEOUT hwo, LPDWORD pdwPitch); -extern(Windows) export MMRESULT waveOutSetPitch(HWAVEOUT hwo, DWORD dwPitch); -extern(Windows) export MMRESULT waveOutGetPlaybackRate(HWAVEOUT hwo, LPDWORD pdwRate); -extern(Windows) export MMRESULT waveOutSetPlaybackRate(HWAVEOUT hwo, DWORD dwRate); -extern(Windows) export MMRESULT waveOutGetID(HWAVEOUT hwo, LPUINT puDeviceID); - -// #if (WINVER >= 0x030a) -// #ifdef _WIN32 -extern(Windows) export MMRESULT waveOutMessage(HWAVEOUT hwo, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2); -// #else -// ... -// #endif -// #endif /* ifdef WINVER >= 0x030a */ - -extern(Windows) export UINT waveInGetNumDevs(); - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT waveInGetDevCapsA(UINT_PTR uDeviceID, LPWAVEINCAPSA pwic, UINT cbwic); -extern(Windows) export MMRESULT waveInGetDevCapsW(UINT_PTR uDeviceID, LPWAVEINCAPSW pwic, UINT cbwic); -// #ifdef UNICODE -alias waveInGetDevCapsW waveInGetDevCaps; -// #else -// #... -// #endif // !UNICODE - -// #else -// ... -// #endif - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT waveInGetErrorTextA(MMRESULT mmrError, LPSTR pszText, UINT cchText); -extern(Windows) export MMRESULT waveInGetErrorTextW(MMRESULT mmrError, LPWSTR pszText, UINT cchText); -// #ifdef UNICODE -alias waveInGetErrorTextW waveInGetErrorText; -// #else -// #... -// #endif // !UNICODE - -// #else -// ... -// #endif - -extern(Windows) export MMRESULT waveInOpen(LPHWAVEIN phwi, UINT uDeviceID, - LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); - -extern(Windows) export MMRESULT waveInClose(HWAVEIN hwi); -extern(Windows) export MMRESULT waveInPrepareHeader(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh); -extern(Windows) export MMRESULT waveInUnprepareHeader(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh); -extern(Windows) export MMRESULT waveInAddBuffer(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh); -extern(Windows) export MMRESULT waveInStart(HWAVEIN hwi); -extern(Windows) export MMRESULT waveInStop(HWAVEIN hwi); -extern(Windows) export MMRESULT waveInReset(HWAVEIN hwi); -extern(Windows) export MMRESULT waveInGetPosition(HWAVEIN hwi, LPMMTIME pmmt, UINT cbmmt); -extern(Windows) export MMRESULT waveInGetID(HWAVEIN hwi, LPUINT puDeviceID); - -// #if (WINVER >= 0x030a) -// #ifdef _WIN32 -extern(Windows) export MMRESULT waveInMessage(HWAVEIN hwi, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2); -// #else -// ... -// #endif -// #endif /* ifdef WINVER >= 0x030a */ - -// #endif /* ifndef MMNOWAVE */ - -// #ifndef MMNOMIDI - -enum : uint { MIDIERR_UNPREPARED = MIDIERR_BASE + 0 } -enum : uint { MIDIERR_STILLPLAYING = MIDIERR_BASE + 1 } -enum : uint { MIDIERR_NOMAP = MIDIERR_BASE + 2 } -enum : uint { MIDIERR_NOTREADY = MIDIERR_BASE + 3 } -enum : uint { MIDIERR_NODEVICE = MIDIERR_BASE + 4 } -enum : uint { MIDIERR_INVALIDSETUP = MIDIERR_BASE + 5 } -enum : uint { MIDIERR_BADOPENMODE = MIDIERR_BASE + 6 } -enum : uint { MIDIERR_DONT_CONTINUE = MIDIERR_BASE + 7 } -enum : uint { MIDIERR_LASTERROR = MIDIERR_BASE + 7 } - -alias void* HMIDI; -alias void* HMIDIIN; -alias void* HMIDIOUT; -alias void* HMIDISTRM; -alias HMIDI* LPHMIDI; -alias HMIDIIN* LPHMIDIIN; -alias HMIDIOUT* LPHMIDIOUT; -alias HMIDISTRM* LPHMIDISTRM; -// typedef DRVCALLBACK MIDICALLBACK; -alias LPDRVCALLBACK LPMIDICALLBACK; -enum : uint { MIDIPATCHSIZE = 128 } -alias WORD PATCHARRAY[MIDIPATCHSIZE]; -alias WORD* LPPATCHARRAY; -alias WORD KEYARRAY[MIDIPATCHSIZE]; -alias WORD* LPKEYARRAY; - -alias MM_MIM_OPEN MIM_OPEN; -alias MM_MIM_CLOSE MIM_CLOSE; -alias MM_MIM_DATA MIM_DATA; -alias MM_MIM_LONGDATA MIM_LONGDATA; -alias MM_MIM_ERROR MIM_ERROR; -alias MM_MIM_LONGERROR MIM_LONGERROR; -alias MM_MOM_OPEN MOM_OPEN; -alias MM_MOM_CLOSE MOM_CLOSE; -alias MM_MOM_DONE MOM_DONE; - -// #if(WINVER >= 0x0400) -alias MM_MIM_MOREDATA MIM_MOREDATA; -alias MM_MOM_POSITIONCB MOM_POSITIONCB; -// #endif /* WINVER >= 0x0400 */ - -enum : uint { MIDIMAPPER = cast(UINT)-1 } -enum : uint { MIDI_MAPPER = cast(UINT)-1 } - -// #if(WINVER >= 0x0400) - -enum : uint { MIDI_IO_STATUS = 0x00000020 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { MIDI_CACHE_ALL = 1 } -enum : uint { MIDI_CACHE_BESTFIT = 2 } -enum : uint { MIDI_CACHE_QUERY = 3 } -enum : uint { MIDI_UNCACHE = 4 } - -// #ifdef _WIN32 - -struct tagMIDIOUTCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wVoices; - WORD wNotes; - WORD wChannelMask; - DWORD dwSupport; -} -alias tagMIDIOUTCAPSA MIDIOUTCAPSA; -alias tagMIDIOUTCAPSA* PMIDIOUTCAPSA; -alias tagMIDIOUTCAPSA* NPMIDIOUTCAPSA; -alias tagMIDIOUTCAPSA* LPMIDIOUTCAPSA; - -struct tagMIDIOUTCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wVoices; - WORD wNotes; - WORD wChannelMask; - DWORD dwSupport; -} -alias tagMIDIOUTCAPSW MIDIOUTCAPSW; -alias tagMIDIOUTCAPSW* PMIDIOUTCAPSW; -alias tagMIDIOUTCAPSW* NPMIDIOUTCAPSW; -alias tagMIDIOUTCAPSW* LPMIDIOUTCAPSW; - -// #ifdef UNICODE -alias MIDIOUTCAPSW MIDIOUTCAPS; -alias PMIDIOUTCAPSW PMIDIOUTCAPS; -alias NPMIDIOUTCAPSW NPMIDIOUTCAPS; -alias LPMIDIOUTCAPSW LPMIDIOUTCAPS; -// #else -// ... -// #endif // UNICODE -struct tagMIDIOUTCAPS2A { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wVoices; - WORD wNotes; - WORD wChannelMask; - DWORD dwSupport; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagMIDIOUTCAPS2A MIDIOUTCAPS2A; -alias tagMIDIOUTCAPS2A* PMIDIOUTCAPS2A; -alias tagMIDIOUTCAPS2A* NPMIDIOUTCAPS2A; -alias tagMIDIOUTCAPS2A* LPMIDIOUTCAPS2A; - -struct tagMIDIOUTCAPS2W { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wVoices; - WORD wNotes; - WORD wChannelMask; - DWORD dwSupport; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagMIDIOUTCAPS2W MIDIOUTCAPS2W; -alias tagMIDIOUTCAPS2W* PMIDIOUTCAPS2W; -alias tagMIDIOUTCAPS2W* NPMIDIOUTCAPS2W; -alias tagMIDIOUTCAPS2W* LPMIDIOUTCAPS2W; - -// #ifdef UNICODE -alias MIDIOUTCAPS2W MIDIOUTCAPS2; -alias PMIDIOUTCAPS2W PMIDIOUTCAPS2; -alias NPMIDIOUTCAPS2W NPMIDIOUTCAPS2; -alias LPMIDIOUTCAPS2W LPMIDIOUTCAPS2; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -enum : uint { MOD_MIDIPORT = 1 } -enum : uint { MOD_SYNTH = 2 } -enum : uint { MOD_SQSYNTH = 3 } -enum : uint { MOD_FMSYNTH = 4 } -enum : uint { MOD_MAPPER = 5 } -enum : uint { MOD_WAVETABLE = 6 } -enum : uint { MOD_SWSYNTH = 7 } - -enum : uint { MIDICAPS_VOLUME = 0x0001 } -enum : uint { MIDICAPS_LRVOLUME = 0x0002 } -enum : uint { MIDICAPS_CACHE = 0x0004 } -// #if(WINVER >= 0x0400) -enum : uint { MIDICAPS_STREAM = 0x0008 } -// #endif /* WINVER >= 0x0400 */ - -// #ifdef _WIN32 - -struct tagMIDIINCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; -// #if (WINVER >= 0x0400) - DWORD dwSupport; -// #endif -} -alias tagMIDIINCAPSA MIDIINCAPSA; -alias tagMIDIINCAPSA* PMIDIINCAPSA; -alias tagMIDIINCAPSA* NPMIDIINCAPSA; -alias tagMIDIINCAPSA* LPMIDIINCAPSA; - -struct tagMIDIINCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; -// #if (WINVER >= 0x0400) - DWORD dwSupport; -// #endif -} -alias tagMIDIINCAPSW MIDIINCAPSW; -alias tagMIDIINCAPSW* PMIDIINCAPSW; -alias tagMIDIINCAPSW* NPMIDIINCAPSW; -alias tagMIDIINCAPSW* LPMIDIINCAPSW; - -// #ifdef UNICODE -alias MIDIINCAPSW MIDIINCAPS; -alias PMIDIINCAPSW PMIDIINCAPS; -alias NPMIDIINCAPSW NPMIDIINCAPS; -alias LPMIDIINCAPSW LPMIDIINCAPS; -// #else -// ... -// #endif // UNICODE -struct tagMIDIINCAPS2A { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; -// #if (WINVER >= 0x0400) - DWORD dwSupport; -// #endif - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagMIDIINCAPS2A MIDIINCAPS2A; -alias tagMIDIINCAPS2A* PMIDIINCAPS2A; -alias tagMIDIINCAPS2A* NPMIDIINCAPS2A; -alias tagMIDIINCAPS2A* LPMIDIINCAPS2A; - -struct tagMIDIINCAPS2W { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; -// #if (WINVER >= 0x0400) - DWORD dwSupport; -// #endif - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagMIDIINCAPS2W MIDIINCAPS2W; -alias tagMIDIINCAPS2W* PMIDIINCAPS2W; -alias tagMIDIINCAPS2W* NPMIDIINCAPS2W; -alias tagMIDIINCAPS2W* LPMIDIINCAPS2W; - -// #ifdef UNICODE -alias MIDIINCAPS2W MIDIINCAPS2; -alias PMIDIINCAPS2W PMIDIINCAPS2; -alias NPMIDIINCAPS2W NPMIDIINCAPS2; -alias LPMIDIINCAPS2W LPMIDIINCAPS2; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #if (WINVER >= 0x0400) -// ... -// #endif -// ... -// #endif - -struct midihdr_tag { - LPSTR lpData; - DWORD dwBufferLength; - DWORD dwBytesRecorded; - DWORD_PTR dwUser; - DWORD dwFlags; - midihdr_tag *lpNext; - DWORD_PTR reserved; -// #if (WINVER >= 0x0400) - DWORD dwOffset; - DWORD_PTR dwReserved[8]; -// #endif -} -alias midihdr_tag MIDIHDR; -alias midihdr_tag* PMIDIHDR; -alias midihdr_tag* NPMIDIHDR; -alias midihdr_tag* LPMIDIHDR; - -// #if(WINVER >= 0x0400) -struct midievent_tag { - DWORD dwDeltaTime; - DWORD dwStreamID; - DWORD dwEvent; - DWORD dwParms[1]; -} -alias midievent_tag MIDIEVENT; - -struct midistrmbuffver_tag { - DWORD dwVersion; - DWORD dwMid; - DWORD dwOEMVersion; -} -alias midistrmbuffver_tag MIDISTRMBUFFVER; - -// #endif /* WINVER >= 0x0400 */ - -enum : uint { MHDR_DONE = 0x00000001 } -enum : uint { MHDR_PREPARED = 0x00000002 } -enum : uint { MHDR_INQUEUE = 0x00000004 } -enum : uint { MHDR_ISSTRM = 0x00000008 } -// #if(WINVER >= 0x0400) - -enum : uint { MEVT_F_SHORT = 0x00000000 } -enum : uint { MEVT_F_LONG = 0x80000000 } -enum : uint { MEVT_F_CALLBACK = 0x40000000 } - -// #define MEVT_EVENTTYPE(x) ((BYTE)(((x)>>24)&0xFF)) -// #define MEVT_EVENTPARM(x) ((DWORD)((x)&0x00FFFFFFL)) - -enum : uint { MEVT_SHORTMSG = cast(BYTE)0x00 } -enum : uint { MEVT_TEMPO = cast(BYTE)0x01 } -enum : uint { MEVT_NOP = cast(BYTE)0x02 } - -enum : uint { MEVT_LONGMSG = cast(BYTE)0x80 } -enum : uint { MEVT_COMMENT = cast(BYTE)0x82 } -enum : uint { MEVT_VERSION = cast(BYTE)0x84 } - -enum { MIDISTRM_ERROR = -2 } - -enum : uint { MIDIPROP_SET = 0x80000000 } -enum : uint { MIDIPROP_GET = 0x40000000 } - -enum : uint { MIDIPROP_TIMEDIV = 0x00000001 } -enum : uint { MIDIPROP_TEMPO = 0x00000002 } - -struct midiproptimediv_tag { - DWORD cbStruct; - DWORD dwTimeDiv; -} -alias midiproptimediv_tag MIDIPROPTIMEDIV; -alias midiproptimediv_tag* LPMIDIPROPTIMEDIV; - -struct midiproptempo_tag { - DWORD cbStruct; - DWORD dwTempo; -} -alias midiproptempo_tag MIDIPROPTEMPO; -alias midiproptempo_tag* LPMIDIPROPTEMPO; - -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export UINT midiOutGetNumDevs(); -// #if(WINVER >= 0x0400) -extern(Windows) export MMRESULT midiStreamOpen(LPHMIDISTRM phms, LPUINT puDeviceID, DWORD cMidi, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); -extern(Windows) export MMRESULT midiStreamClose(HMIDISTRM hms); - -extern(Windows) export MMRESULT midiStreamProperty(HMIDISTRM hms, LPBYTE lppropdata, DWORD dwProperty); -extern(Windows) export MMRESULT midiStreamPosition(HMIDISTRM hms, LPMMTIME lpmmt, UINT cbmmt); - -extern(Windows) export MMRESULT midiStreamOut(HMIDISTRM hms, LPMIDIHDR pmh, UINT cbmh); -extern(Windows) export MMRESULT midiStreamPause(HMIDISTRM hms); -extern(Windows) export MMRESULT midiStreamRestart(HMIDISTRM hms); -extern(Windows) export MMRESULT midiStreamStop(HMIDISTRM hms); - -// #ifdef _WIN32 -extern(Windows) export MMRESULT midiConnect(HMIDI hmi, HMIDIOUT hmo, LPVOID pReserved); -extern(Windows) export MMRESULT midiDisconnect(HMIDI hmi, HMIDIOUT hmo, LPVOID pReserved); -// #endif -// #endif /* WINVER >= 0x0400 */ - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT midiOutGetDevCapsA(UINT_PTR uDeviceID, LPMIDIOUTCAPSA pmoc, UINT cbmoc); -extern(Windows) export MMRESULT midiOutGetDevCapsW(UINT_PTR uDeviceID, LPMIDIOUTCAPSW pmoc, UINT cbmoc); -// #ifdef UNICODE -alias midiOutGetDevCapsW midiOutGetDevCaps; -// #else -// #... -// #endif // !UNICODE - -// #else -// ... -// #endif - -// #if (WINVER >= 0x0400) -extern(Windows) export MMRESULT midiOutGetVolume(HMIDIOUT hmo, LPDWORD pdwVolume); -extern(Windows) export MMRESULT midiOutSetVolume(HMIDIOUT hmo, DWORD dwVolume); -// #else -// ... -// #endif - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT midiOutGetErrorTextA(MMRESULT mmrError, LPSTR pszText, UINT cchText); -extern(Windows) export MMRESULT midiOutGetErrorTextW(MMRESULT mmrError, LPWSTR pszText, UINT cchText); -// #ifdef UNICODE -alias midiOutGetErrorTextW midiOutGetErrorText; -// #else -// #... -// #endif // !UNICODE - -// #else -// ... -// #endif - -extern(Windows) export MMRESULT midiOutOpen(LPHMIDIOUT phmo, UINT uDeviceID, - DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); -extern(Windows) export MMRESULT midiOutClose(HMIDIOUT hmo); -extern(Windows) export MMRESULT midiOutPrepareHeader(HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh); -extern(Windows) export MMRESULT midiOutUnprepareHeader(HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh); -extern(Windows) export MMRESULT midiOutShortMsg(HMIDIOUT hmo, DWORD dwMsg); -extern(Windows) export MMRESULT midiOutLongMsg(HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh); -extern(Windows) export MMRESULT midiOutReset(HMIDIOUT hmo); -extern(Windows) export MMRESULT midiOutCachePatches(HMIDIOUT hmo, UINT uBank, LPWORD pwpa, UINT fuCache); -extern(Windows) export MMRESULT midiOutCacheDrumPatches(HMIDIOUT hmo, UINT uPatch, LPWORD pwkya, UINT fuCache); -extern(Windows) export MMRESULT midiOutGetID(HMIDIOUT hmo, LPUINT puDeviceID); - -// #if (WINVER >= 0x030a) -// #ifdef _WIN32 -extern(Windows) export MMRESULT midiOutMessage(HMIDIOUT hmo, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2); -// #else -// ... -// #endif -// #endif /* ifdef WINVER >= 0x030a */ - -extern(Windows) export UINT midiInGetNumDevs(); - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT midiInGetDevCapsA(UINT_PTR uDeviceID, LPMIDIINCAPSA pmic, UINT cbmic); -extern(Windows) export MMRESULT midiInGetDevCapsW(UINT_PTR uDeviceID, LPMIDIINCAPSW pmic, UINT cbmic); -// #ifdef UNICODE -alias midiInGetDevCapsW midiInGetDevCaps; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export MMRESULT midiInGetErrorTextA(MMRESULT mmrError, LPSTR pszText, UINT cchText); -extern(Windows) export MMRESULT midiInGetErrorTextW(MMRESULT mmrError, LPWSTR pszText, UINT cchText); -// #ifdef UNICODE -alias midiInGetErrorTextW midiInGetErrorText; -// #else -// #... -// #endif // !UNICODE - -// #else -// ... -// #endif - -extern(Windows) export MMRESULT midiInOpen(LPHMIDIIN phmi, UINT uDeviceID, - DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); -extern(Windows) export MMRESULT midiInClose(HMIDIIN hmi); -extern(Windows) export MMRESULT midiInPrepareHeader(HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh); -extern(Windows) export MMRESULT midiInUnprepareHeader(HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh); -extern(Windows) export MMRESULT midiInAddBuffer(HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh); -extern(Windows) export MMRESULT midiInStart(HMIDIIN hmi); -extern(Windows) export MMRESULT midiInStop(HMIDIIN hmi); -extern(Windows) export MMRESULT midiInReset(HMIDIIN hmi); -extern(Windows) export MMRESULT midiInGetID(HMIDIIN hmi, LPUINT puDeviceID); - -// #if (WINVER >= 0x030a) -// #ifdef _WIN32 -extern(Windows) export MMRESULT midiInMessage(HMIDIIN hmi, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2); -// #else -// ... -// #endif -// #endif /* ifdef WINVER >= 0x030a */ - -// #endif /* ifndef MMNOMIDI */ - -// #ifndef MMNOAUX - -enum : uint { AUX_MAPPER = cast(UINT)-1 } - -// #ifdef _WIN32 - -struct tagAUXCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wReserved1; - DWORD dwSupport; -} -alias tagAUXCAPSA AUXCAPSA; -alias tagAUXCAPSA* PAUXCAPSA; -alias tagAUXCAPSA* NPAUXCAPSA; -alias tagAUXCAPSA* LPAUXCAPSA; - -struct tagAUXCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wReserved1; - DWORD dwSupport; -} -alias tagAUXCAPSW AUXCAPSW; -alias tagAUXCAPSW* PAUXCAPSW; -alias tagAUXCAPSW* NPAUXCAPSW; -alias tagAUXCAPSW* LPAUXCAPSW; - -// #ifdef UNICODE -alias AUXCAPSW AUXCAPS; -alias PAUXCAPSW PAUXCAPS; -alias NPAUXCAPSW NPAUXCAPS; -alias LPAUXCAPSW LPAUXCAPS; -// #else -// ... -// #endif // UNICODE -struct tagAUXCAPS2A { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wReserved1; - DWORD dwSupport; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagAUXCAPS2A AUXCAPS2A; -alias tagAUXCAPS2A* PAUXCAPS2A; -alias tagAUXCAPS2A* NPAUXCAPS2A; -alias tagAUXCAPS2A* LPAUXCAPS2A; - -struct tagAUXCAPS2W { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wReserved1; - DWORD dwSupport; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagAUXCAPS2W AUXCAPS2W; -alias tagAUXCAPS2W* PAUXCAPS2W; -alias tagAUXCAPS2W* NPAUXCAPS2W; -alias tagAUXCAPS2W* LPAUXCAPS2W; - -// #ifdef UNICODE -alias AUXCAPS2W AUXCAPS2; -alias PAUXCAPS2W PAUXCAPS2; -alias NPAUXCAPS2W NPAUXCAPS2; -alias LPAUXCAPS2W LPAUXCAPS2; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -enum : uint { AUXCAPS_CDAUDIO = 1 } -enum : uint { AUXCAPS_AUXIN = 2 } - -enum : uint { AUXCAPS_VOLUME = 0x0001 } -enum : uint { AUXCAPS_LRVOLUME = 0x0002 } - -extern(Windows) export UINT auxGetNumDevs(); -// #ifdef _WIN32 - -extern(Windows) export MMRESULT auxGetDevCapsA(UINT_PTR uDeviceID, LPAUXCAPSA pac, UINT cbac); -extern(Windows) export MMRESULT auxGetDevCapsW(UINT_PTR uDeviceID, LPAUXCAPSW pac, UINT cbac); -// #ifdef UNICODE -alias auxGetDevCapsW auxGetDevCaps; -// #else -// #... -// #endif // !UNICODE - -// #else -// ... -// #endif -extern(Windows) export MMRESULT auxSetVolume(UINT uDeviceID, DWORD dwVolume); -extern(Windows) export MMRESULT auxGetVolume(UINT uDeviceID, LPDWORD pdwVolume); - -// #if (WINVER >= 0x030a) -// #ifdef _WIN32 -extern(Windows) export MMRESULT auxOutMessage(UINT uDeviceID, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2); -// #else -// ... -// #endif -// #endif /* ifdef WINVER >= 0x030a */ - -// #endif /* ifndef MMNOAUX */ - -// #ifndef MMNOMIXER - -alias void* HMIXEROBJ; -alias HMIXEROBJ* LPHMIXEROBJ; - -alias void* HMIXER; -alias HMIXER* LPHMIXER; - -enum : uint { MIXER_SHORT_NAME_CHARS = 16 } -enum : uint { MIXER_LONG_NAME_CHARS = 64 } - -enum : uint { MIXERR_INVALLINE = MIXERR_BASE + 0 } -enum : uint { MIXERR_INVALCONTROL = MIXERR_BASE + 1 } -enum : uint { MIXERR_INVALVALUE = MIXERR_BASE + 2 } -enum : uint { MIXERR_LASTERROR = MIXERR_BASE + 2 } - -enum : uint { MIXER_OBJECTF_HANDLE = 0x80000000 } -enum : uint { MIXER_OBJECTF_MIXER = 0x00000000 } -enum : uint { MIXER_OBJECTF_HMIXER = MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIXER } -enum : uint { MIXER_OBJECTF_WAVEOUT = 0x10000000 } -enum : uint { MIXER_OBJECTF_HWAVEOUT = MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEOUT } -enum : uint { MIXER_OBJECTF_WAVEIN = 0x20000000 } -enum : uint { MIXER_OBJECTF_HWAVEIN = MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEIN } -enum : uint { MIXER_OBJECTF_MIDIOUT = 0x30000000 } -enum : uint { MIXER_OBJECTF_HMIDIOUT = MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIOUT } -enum : uint { MIXER_OBJECTF_MIDIIN = 0x40000000 } -enum : uint { MIXER_OBJECTF_HMIDIIN = MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIIN } -enum : uint { MIXER_OBJECTF_AUX = 0x50000000 } - -extern(Windows) export UINT mixerGetNumDevs(); - -// #ifdef _WIN32 - -struct tagMIXERCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - DWORD fdwSupport; - DWORD cDestinations; -} -alias tagMIXERCAPSA MIXERCAPSA; -alias tagMIXERCAPSA* PMIXERCAPSA; -alias tagMIXERCAPSA* LPMIXERCAPSA; - -struct tagMIXERCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - DWORD fdwSupport; - DWORD cDestinations; -} -alias tagMIXERCAPSW MIXERCAPSW; -alias tagMIXERCAPSW* PMIXERCAPSW; -alias tagMIXERCAPSW* LPMIXERCAPSW; - -// #ifdef UNICODE -alias MIXERCAPSW MIXERCAPS; -alias PMIXERCAPSW PMIXERCAPS; -alias LPMIXERCAPSW LPMIXERCAPS; -// #else -// ... -// #endif // UNICODE -struct tagMIXERCAPS2A { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - DWORD fdwSupport; - DWORD cDestinations; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagMIXERCAPS2A MIXERCAPS2A; -alias tagMIXERCAPS2A* PMIXERCAPS2A; -alias tagMIXERCAPS2A* LPMIXERCAPS2A; - -struct tagMIXERCAPS2W { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - DWORD fdwSupport; - DWORD cDestinations; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagMIXERCAPS2W MIXERCAPS2W; -alias tagMIXERCAPS2W* PMIXERCAPS2W; -alias tagMIXERCAPS2W* LPMIXERCAPS2W; - -// #ifdef UNICODE -alias MIXERCAPS2W MIXERCAPS2; -alias PMIXERCAPS2W PMIXERCAPS2; -alias LPMIXERCAPS2W LPMIXERCAPS2; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT mixerGetDevCapsA(UINT_PTR uMxId, LPMIXERCAPSA pmxcaps, UINT cbmxcaps); -extern(Windows) export MMRESULT mixerGetDevCapsW(UINT_PTR uMxId, LPMIXERCAPSW pmxcaps, UINT cbmxcaps); -// #ifdef UNICODE -alias mixerGetDevCapsW mixerGetDevCaps; -// #else -// #... -// #endif // !UNICODE - -// #else -// ... -// #endif - -extern(Windows) export MMRESULT mixerOpen(LPHMIXER phmx, UINT uMxId, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); - -extern(Windows) export MMRESULT mixerClose(HMIXER hmx); - -extern(Windows) export DWORD mixerMessage(HMIXER hmx, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2); - -// #ifdef _WIN32 - -struct tagMIXERLINEA { - DWORD cbStruct; - DWORD dwDestination; - DWORD dwSource; - DWORD dwLineID; - DWORD fdwLine; - DWORD_PTR dwUser; - DWORD dwComponentType; - DWORD cChannels; - DWORD cConnections; - DWORD cControls; - CHAR szShortName[MIXER_SHORT_NAME_CHARS]; - CHAR szName[MIXER_LONG_NAME_CHARS]; -struct { - DWORD dwType; - DWORD dwDeviceID; - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; -} - -} -alias tagMIXERLINEA MIXERLINEA; -alias tagMIXERLINEA* PMIXERLINEA; -alias tagMIXERLINEA* LPMIXERLINEA; - -struct tagMIXERLINEW { - DWORD cbStruct; - DWORD dwDestination; - DWORD dwSource; - DWORD dwLineID; - DWORD fdwLine; - DWORD_PTR dwUser; - DWORD dwComponentType; - DWORD cChannels; - DWORD cConnections; - DWORD cControls; - WCHAR szShortName[MIXER_SHORT_NAME_CHARS]; - WCHAR szName[MIXER_LONG_NAME_CHARS]; -struct { - DWORD dwType; - DWORD dwDeviceID; - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; -} - -} -alias tagMIXERLINEW MIXERLINEW; -alias tagMIXERLINEW* PMIXERLINEW; -alias tagMIXERLINEW* LPMIXERLINEW; - -// #ifdef UNICODE -alias MIXERLINEW MIXERLINE; -alias PMIXERLINEW PMIXERLINE; -alias LPMIXERLINEW LPMIXERLINE; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -enum : uint { MIXERLINE_LINEF_ACTIVE = 0x00000001 } -enum : uint { MIXERLINE_LINEF_DISCONNECTED = 0x00008000 } -enum : uint { MIXERLINE_LINEF_SOURCE = 0x80000000 } - -enum : uint { MIXERLINE_COMPONENTTYPE_DST_FIRST = 0x00000000 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_UNDEFINED = MIXERLINE_COMPONENTTYPE_DST_FIRST + 0 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_DIGITAL = MIXERLINE_COMPONENTTYPE_DST_FIRST + 1 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_LINE = MIXERLINE_COMPONENTTYPE_DST_FIRST + 2 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_MONITOR = MIXERLINE_COMPONENTTYPE_DST_FIRST + 3 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = MIXERLINE_COMPONENTTYPE_DST_FIRST + 4 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_HEADPHONES = MIXERLINE_COMPONENTTYPE_DST_FIRST + 5 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_TELEPHONE = MIXERLINE_COMPONENTTYPE_DST_FIRST + 6 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_WAVEIN = MIXERLINE_COMPONENTTYPE_DST_FIRST + 7 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_VOICEIN = MIXERLINE_COMPONENTTYPE_DST_FIRST + 8 } -enum : uint { MIXERLINE_COMPONENTTYPE_DST_LAST = MIXERLINE_COMPONENTTYPE_DST_FIRST + 8 } - -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_FIRST = 0x00001000 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_DIGITAL = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_LINE = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_ANALOG = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10 } -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_LAST = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10 } - -enum : uint { MIXERLINE_TARGETTYPE_UNDEFINED = 0 } -enum : uint { MIXERLINE_TARGETTYPE_WAVEOUT = 1 } -enum : uint { MIXERLINE_TARGETTYPE_WAVEIN = 2 } -enum : uint { MIXERLINE_TARGETTYPE_MIDIOUT = 3 } -enum : uint { MIXERLINE_TARGETTYPE_MIDIIN = 4 } -enum : uint { MIXERLINE_TARGETTYPE_AUX = 5 } - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT mixerGetLineInfoA(HMIXEROBJ hmxobj, LPMIXERLINEA pmxl, DWORD fdwInfo); -extern(Windows) export MMRESULT mixerGetLineInfoW(HMIXEROBJ hmxobj, LPMIXERLINEW pmxl, DWORD fdwInfo); -// #ifdef UNICODE -alias mixerGetLineInfoW mixerGetLineInfo; -// #else -// #... -// #endif // !UNICODE - -// #else -// ... -// #endif - -enum : uint { MIXER_GETLINEINFOF_DESTINATION = 0x00000000 } -enum : uint { MIXER_GETLINEINFOF_SOURCE = 0x00000001 } -enum : uint { MIXER_GETLINEINFOF_LINEID = 0x00000002 } -enum : uint { MIXER_GETLINEINFOF_COMPONENTTYPE = 0x00000003 } -enum : uint { MIXER_GETLINEINFOF_TARGETTYPE = 0x00000004 } - -enum : uint { MIXER_GETLINEINFOF_QUERYMASK = 0x0000000F } - -extern(Windows) export MMRESULT mixerGetID(HMIXEROBJ hmxobj, UINT *puMxId, DWORD fdwId); - -// #ifdef _WIN32 - -struct tagMIXERCONTROLA { - DWORD cbStruct; - DWORD dwControlID; - DWORD dwControlType; - DWORD fdwControl; - DWORD cMultipleItems; - CHAR szShortName[MIXER_SHORT_NAME_CHARS]; - CHAR szName[MIXER_LONG_NAME_CHARS]; -union _0 { -struct { - LONG lMinimum; - LONG lMaximum; -} - -struct { - DWORD dwMinimum; - DWORD dwMaximum; -} - - DWORD dwReserved[6]; -} -_0 Bounds; - -union _1 { - DWORD cSteps; - DWORD cbCustomData; - DWORD dwReserved[6]; -} -_1 Metrics; - -} -alias tagMIXERCONTROLA MIXERCONTROLA; -alias tagMIXERCONTROLA* PMIXERCONTROLA; -alias tagMIXERCONTROLA* LPMIXERCONTROLA; - -struct tagMIXERCONTROLW { - DWORD cbStruct; - DWORD dwControlID; - DWORD dwControlType; - DWORD fdwControl; - DWORD cMultipleItems; - WCHAR szShortName[MIXER_SHORT_NAME_CHARS]; - WCHAR szName[MIXER_LONG_NAME_CHARS]; -union _2 { -struct { - LONG lMinimum; - LONG lMaximum; -} - -struct { - DWORD dwMinimum; - DWORD dwMaximum; -} - - DWORD dwReserved[6]; -} -_2 Bounds; - -union _3 { - DWORD cSteps; - DWORD cbCustomData; - DWORD dwReserved[6]; -} -_3 Metrics; - -} -alias tagMIXERCONTROLW MIXERCONTROLW; -alias tagMIXERCONTROLW* PMIXERCONTROLW; -alias tagMIXERCONTROLW* LPMIXERCONTROLW; - -// #ifdef UNICODE -alias MIXERCONTROLW MIXERCONTROL; -alias PMIXERCONTROLW PMIXERCONTROL; -alias LPMIXERCONTROLW LPMIXERCONTROL; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -enum : uint { MIXERCONTROL_CONTROLF_UNIFORM = 0x00000001 } -enum : uint { MIXERCONTROL_CONTROLF_MULTIPLE = 0x00000002 } -enum : uint { MIXERCONTROL_CONTROLF_DISABLED = 0x80000000 } - -enum : uint { MIXERCONTROL_CT_CLASS_MASK = 0xF0000000 } -enum : uint { MIXERCONTROL_CT_CLASS_CUSTOM = 0x00000000 } -enum : uint { MIXERCONTROL_CT_CLASS_METER = 0x10000000 } -enum : uint { MIXERCONTROL_CT_CLASS_SWITCH = 0x20000000 } -enum : uint { MIXERCONTROL_CT_CLASS_NUMBER = 0x30000000 } -enum : uint { MIXERCONTROL_CT_CLASS_SLIDER = 0x40000000 } -enum : uint { MIXERCONTROL_CT_CLASS_FADER = 0x50000000 } -enum : uint { MIXERCONTROL_CT_CLASS_TIME = 0x60000000 } -enum : uint { MIXERCONTROL_CT_CLASS_LIST = 0x70000000 } - -enum : uint { MIXERCONTROL_CT_SUBCLASS_MASK = 0x0F000000 } - -enum : uint { MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = 0x00000000 } -enum : uint { MIXERCONTROL_CT_SC_SWITCH_BUTTON = 0x01000000 } - -enum : uint { MIXERCONTROL_CT_SC_METER_POLLED = 0x00000000 } - -enum : uint { MIXERCONTROL_CT_SC_TIME_MICROSECS = 0x00000000 } -enum : uint { MIXERCONTROL_CT_SC_TIME_MILLISECS = 0x01000000 } - -enum : uint { MIXERCONTROL_CT_SC_LIST_SINGLE = 0x00000000 } -enum : uint { MIXERCONTROL_CT_SC_LIST_MULTIPLE = 0x01000000 } - -enum : uint { MIXERCONTROL_CT_UNITS_MASK = 0x00FF0000 } -enum : uint { MIXERCONTROL_CT_UNITS_CUSTOM = 0x00000000 } -enum : uint { MIXERCONTROL_CT_UNITS_BOOLEAN = 0x00010000 } -enum : uint { MIXERCONTROL_CT_UNITS_SIGNED = 0x00020000 } -enum : uint { MIXERCONTROL_CT_UNITS_UNSIGNED = 0x00030000 } -enum : uint { MIXERCONTROL_CT_UNITS_DECIBELS = 0x00040000 } -enum : uint { MIXERCONTROL_CT_UNITS_PERCENT = 0x00050000 } - -enum : uint { MIXERCONTROL_CONTROLTYPE_CUSTOM = MIXERCONTROL_CT_CLASS_CUSTOM | MIXERCONTROL_CT_UNITS_CUSTOM } -enum : uint { MIXERCONTROL_CONTROLTYPE_BOOLEANMETER = MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_BOOLEAN } -enum : uint { MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_SIGNED } -enum : uint { MIXERCONTROL_CONTROLTYPE_PEAKMETER = MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1 } -enum : uint { MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER = MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_UNSIGNED } -enum : uint { MIXERCONTROL_CONTROLTYPE_BOOLEAN = MIXERCONTROL_CT_CLASS_SWITCH | MIXERCONTROL_CT_SC_SWITCH_BOOLEAN | MIXERCONTROL_CT_UNITS_BOOLEAN } -enum : uint { MIXERCONTROL_CONTROLTYPE_ONOFF = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 1 } -enum : uint { MIXERCONTROL_CONTROLTYPE_MUTE = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2 } -enum : uint { MIXERCONTROL_CONTROLTYPE_MONO = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3 } -enum : uint { MIXERCONTROL_CONTROLTYPE_LOUDNESS = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4 } -enum : uint { MIXERCONTROL_CONTROLTYPE_STEREOENH = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5 } -enum : uint { MIXERCONTROL_CONTROLTYPE_BASS_BOOST = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 0x00002277 } -enum : uint { MIXERCONTROL_CONTROLTYPE_BUTTON = MIXERCONTROL_CT_CLASS_SWITCH | MIXERCONTROL_CT_SC_SWITCH_BUTTON | MIXERCONTROL_CT_UNITS_BOOLEAN } -enum : uint { MIXERCONTROL_CONTROLTYPE_DECIBELS = MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_DECIBELS } -enum : uint { MIXERCONTROL_CONTROLTYPE_SIGNED = MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_SIGNED } -enum : uint { MIXERCONTROL_CONTROLTYPE_UNSIGNED = MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_UNSIGNED } -enum : uint { MIXERCONTROL_CONTROLTYPE_PERCENT = MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_PERCENT } -enum : uint { MIXERCONTROL_CONTROLTYPE_SLIDER = MIXERCONTROL_CT_CLASS_SLIDER | MIXERCONTROL_CT_UNITS_SIGNED } -enum : uint { MIXERCONTROL_CONTROLTYPE_PAN = MIXERCONTROL_CONTROLTYPE_SLIDER + 1 } -enum : uint { MIXERCONTROL_CONTROLTYPE_QSOUNDPAN = MIXERCONTROL_CONTROLTYPE_SLIDER + 2 } -enum : uint { MIXERCONTROL_CONTROLTYPE_FADER = MIXERCONTROL_CT_CLASS_FADER | MIXERCONTROL_CT_UNITS_UNSIGNED } -enum : uint { MIXERCONTROL_CONTROLTYPE_VOLUME = MIXERCONTROL_CONTROLTYPE_FADER + 1 } -enum : uint { MIXERCONTROL_CONTROLTYPE_BASS = MIXERCONTROL_CONTROLTYPE_FADER + 2 } -enum : uint { MIXERCONTROL_CONTROLTYPE_TREBLE = MIXERCONTROL_CONTROLTYPE_FADER + 3 } -enum : uint { MIXERCONTROL_CONTROLTYPE_EQUALIZER = MIXERCONTROL_CONTROLTYPE_FADER + 4 } -enum : uint { MIXERCONTROL_CONTROLTYPE_SINGLESELECT = MIXERCONTROL_CT_CLASS_LIST | MIXERCONTROL_CT_SC_LIST_SINGLE | MIXERCONTROL_CT_UNITS_BOOLEAN } -enum : uint { MIXERCONTROL_CONTROLTYPE_MUX = MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1 } -enum : uint { MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT = MIXERCONTROL_CT_CLASS_LIST | MIXERCONTROL_CT_SC_LIST_MULTIPLE | MIXERCONTROL_CT_UNITS_BOOLEAN } -enum : uint { MIXERCONTROL_CONTROLTYPE_MIXER = MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1 } -enum : uint { MIXERCONTROL_CONTROLTYPE_MICROTIME = MIXERCONTROL_CT_CLASS_TIME | MIXERCONTROL_CT_SC_TIME_MICROSECS | MIXERCONTROL_CT_UNITS_UNSIGNED } -enum : uint { MIXERCONTROL_CONTROLTYPE_MILLITIME = MIXERCONTROL_CT_CLASS_TIME | MIXERCONTROL_CT_SC_TIME_MILLISECS | MIXERCONTROL_CT_UNITS_UNSIGNED } - -// #ifdef _WIN32 - -struct tagMIXERLINECONTROLSA { - DWORD cbStruct; - DWORD dwLineID; -union { - DWORD dwControlID; - DWORD dwControlType; -} - - DWORD cControls; - DWORD cbmxctrl; - LPMIXERCONTROLA pamxctrl; -} -alias tagMIXERLINECONTROLSA MIXERLINECONTROLSA; -alias tagMIXERLINECONTROLSA* PMIXERLINECONTROLSA; -alias tagMIXERLINECONTROLSA* LPMIXERLINECONTROLSA; - -struct tagMIXERLINECONTROLSW { - DWORD cbStruct; - DWORD dwLineID; -union { - DWORD dwControlID; - DWORD dwControlType; -} - - DWORD cControls; - DWORD cbmxctrl; - LPMIXERCONTROLW pamxctrl; -} -alias tagMIXERLINECONTROLSW MIXERLINECONTROLSW; -alias tagMIXERLINECONTROLSW* PMIXERLINECONTROLSW; -alias tagMIXERLINECONTROLSW* LPMIXERLINECONTROLSW; - -// #ifdef UNICODE -alias MIXERLINECONTROLSW MIXERLINECONTROLS; -alias PMIXERLINECONTROLSW PMIXERLINECONTROLS; -alias LPMIXERLINECONTROLSW LPMIXERLINECONTROLS; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT mixerGetLineControlsA(HMIXEROBJ hmxobj, LPMIXERLINECONTROLSA pmxlc, DWORD fdwControls); -extern(Windows) export MMRESULT mixerGetLineControlsW(HMIXEROBJ hmxobj, LPMIXERLINECONTROLSW pmxlc, DWORD fdwControls); -// #ifdef UNICODE -alias mixerGetLineControlsW mixerGetLineControls; -// #else -// #... -// #endif // !UNICODE - -// #else -// ... -// #endif - -enum : uint { MIXER_GETLINECONTROLSF_ALL = 0x00000000 } -enum : uint { MIXER_GETLINECONTROLSF_ONEBYID = 0x00000001 } -enum : uint { MIXER_GETLINECONTROLSF_ONEBYTYPE = 0x00000002 } - -enum : uint { MIXER_GETLINECONTROLSF_QUERYMASK = 0x0000000F } - -struct tMIXERCONTROLDETAILS { - DWORD cbStruct; - DWORD dwControlID; - DWORD cChannels; -union { - HWND hwndOwner; - DWORD cMultipleItems; -} - - DWORD cbDetails; - LPVOID paDetails; -} -alias tMIXERCONTROLDETAILS MIXERCONTROLDETAILS; -alias tMIXERCONTROLDETAILS* PMIXERCONTROLDETAILS; -alias tMIXERCONTROLDETAILS* LPMIXERCONTROLDETAILS; - -// #ifdef _WIN32 - -struct tagMIXERCONTROLDETAILS_LISTTEXTA { - DWORD dwParam1; - DWORD dwParam2; - CHAR szName[MIXER_LONG_NAME_CHARS]; -} -alias tagMIXERCONTROLDETAILS_LISTTEXTA MIXERCONTROLDETAILS_LISTTEXTA; -alias tagMIXERCONTROLDETAILS_LISTTEXTA* PMIXERCONTROLDETAILS_LISTTEXTA; -alias tagMIXERCONTROLDETAILS_LISTTEXTA* LPMIXERCONTROLDETAILS_LISTTEXTA; - -struct tagMIXERCONTROLDETAILS_LISTTEXTW { - DWORD dwParam1; - DWORD dwParam2; - WCHAR szName[MIXER_LONG_NAME_CHARS]; -} -alias tagMIXERCONTROLDETAILS_LISTTEXTW MIXERCONTROLDETAILS_LISTTEXTW; -alias tagMIXERCONTROLDETAILS_LISTTEXTW* PMIXERCONTROLDETAILS_LISTTEXTW; -alias tagMIXERCONTROLDETAILS_LISTTEXTW* LPMIXERCONTROLDETAILS_LISTTEXTW; - -// #ifdef UNICODE -alias MIXERCONTROLDETAILS_LISTTEXTW MIXERCONTROLDETAILS_LISTTEXT; -alias PMIXERCONTROLDETAILS_LISTTEXTW PMIXERCONTROLDETAILS_LISTTEXT; -alias LPMIXERCONTROLDETAILS_LISTTEXTW LPMIXERCONTROLDETAILS_LISTTEXT; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -struct tMIXERCONTROLDETAILS_BOOLEAN { - LONG fValue; -} -alias tMIXERCONTROLDETAILS_BOOLEAN MIXERCONTROLDETAILS_BOOLEAN; -alias tMIXERCONTROLDETAILS_BOOLEAN* PMIXERCONTROLDETAILS_BOOLEAN; -alias tMIXERCONTROLDETAILS_BOOLEAN* LPMIXERCONTROLDETAILS_BOOLEAN; - -struct tMIXERCONTROLDETAILS_SIGNED { - LONG lValue; -} -alias tMIXERCONTROLDETAILS_SIGNED MIXERCONTROLDETAILS_SIGNED; -alias tMIXERCONTROLDETAILS_SIGNED* PMIXERCONTROLDETAILS_SIGNED; -alias tMIXERCONTROLDETAILS_SIGNED* LPMIXERCONTROLDETAILS_SIGNED; - -struct tMIXERCONTROLDETAILS_UNSIGNED { - DWORD dwValue; -} -alias tMIXERCONTROLDETAILS_UNSIGNED MIXERCONTROLDETAILS_UNSIGNED; -alias tMIXERCONTROLDETAILS_UNSIGNED* PMIXERCONTROLDETAILS_UNSIGNED; -alias tMIXERCONTROLDETAILS_UNSIGNED* LPMIXERCONTROLDETAILS_UNSIGNED; - -// #ifdef _WIN32 - -extern(Windows) export MMRESULT mixerGetControlDetailsA(HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails); -extern(Windows) export MMRESULT mixerGetControlDetailsW(HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails); -// #ifdef UNICODE -alias mixerGetControlDetailsW mixerGetControlDetails; -// #else -// #... -// #endif // !UNICODE - -// #else -// ... -// #endif - -enum : uint { MIXER_GETCONTROLDETAILSF_VALUE = 0x00000000 } -enum : uint { MIXER_GETCONTROLDETAILSF_LISTTEXT = 0x00000001 } - -enum : uint { MIXER_GETCONTROLDETAILSF_QUERYMASK = 0x0000000F } - -extern(Windows) export MMRESULT mixerSetControlDetails(HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails); - -enum : uint { MIXER_SETCONTROLDETAILSF_VALUE = 0x00000000 } -enum : uint { MIXER_SETCONTROLDETAILSF_CUSTOM = 0x00000001 } - -enum : uint { MIXER_SETCONTROLDETAILSF_QUERYMASK = 0x0000000F } - -// #endif /* ifndef MMNOMIXER */ - -// #ifndef MMNOTIMER - -enum : uint { TIMERR_NOERROR = 0 } -enum : uint { TIMERR_NOCANDO = TIMERR_BASE+1 } -enum : uint { TIMERR_STRUCT = TIMERR_BASE+33 } - -// typedef void (CALLBACK TIMECALLBACK)(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2); - -extern(Windows) alias void function(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2) LPTIMECALLBACK; - -enum : uint { TIME_ONESHOT = 0x0000 } -enum : uint { TIME_PERIODIC = 0x0001 } - -// #ifdef _WIN32 -enum : uint { TIME_CALLBACK_FUNCTION = 0x0000 } -enum : uint { TIME_CALLBACK_EVENT_SET = 0x0010 } -enum : uint { TIME_CALLBACK_EVENT_PULSE = 0x0020 } -// #endif - -// #if WINVER >= 0x0501 -enum : uint { TIME_KILL_SYNCHRONOUS = 0x0100 } - -// #endif // WINVER >= 0x0501 - -struct timecaps_tag { - UINT wPeriodMin; - UINT wPeriodMax; -} -alias timecaps_tag TIMECAPS; -alias timecaps_tag* PTIMECAPS; -alias timecaps_tag* NPTIMECAPS; -alias timecaps_tag* LPTIMECAPS; - -extern(Windows) export MMRESULT timeGetSystemTime(LPMMTIME pmmt, UINT cbmmt); -extern(Windows) export DWORD timeGetTime(); -extern(Windows) export MMRESULT timeSetEvent(UINT uDelay, UINT uResolution, - LPTIMECALLBACK fptc, DWORD_PTR dwUser, UINT fuEvent); -extern(Windows) export MMRESULT timeKillEvent(UINT uTimerID); -extern(Windows) export MMRESULT timeGetDevCaps(LPTIMECAPS ptc, UINT cbtc); -extern(Windows) export MMRESULT timeBeginPeriod(UINT uPeriod); -extern(Windows) export MMRESULT timeEndPeriod(UINT uPeriod); - -// #endif /* ifndef MMNOTIMER */ - -// #ifndef MMNOJOY - -enum : uint { JOYERR_NOERROR = 0 } -enum : uint { JOYERR_PARMS = JOYERR_BASE+5 } -enum : uint { JOYERR_NOCANDO = JOYERR_BASE+6 } -enum : uint { JOYERR_UNPLUGGED = JOYERR_BASE+7 } - -enum : uint { JOY_BUTTON1 = 0x0001 } -enum : uint { JOY_BUTTON2 = 0x0002 } -enum : uint { JOY_BUTTON3 = 0x0004 } -enum : uint { JOY_BUTTON4 = 0x0008 } -enum : uint { JOY_BUTTON1CHG = 0x0100 } -enum : uint { JOY_BUTTON2CHG = 0x0200 } -enum : uint { JOY_BUTTON3CHG = 0x0400 } -enum : uint { JOY_BUTTON4CHG = 0x0800 } - -enum : uint { JOY_BUTTON5 = 0x00000010 } -enum : uint { JOY_BUTTON6 = 0x00000020 } -enum : uint { JOY_BUTTON7 = 0x00000040 } -enum : uint { JOY_BUTTON8 = 0x00000080 } -enum : uint { JOY_BUTTON9 = 0x00000100 } -enum : uint { JOY_BUTTON10 = 0x00000200 } -enum : uint { JOY_BUTTON11 = 0x00000400 } -enum : uint { JOY_BUTTON12 = 0x00000800 } -enum : uint { JOY_BUTTON13 = 0x00001000 } -enum : uint { JOY_BUTTON14 = 0x00002000 } -enum : uint { JOY_BUTTON15 = 0x00004000 } -enum : uint { JOY_BUTTON16 = 0x00008000 } -enum : uint { JOY_BUTTON17 = 0x00010000 } -enum : uint { JOY_BUTTON18 = 0x00020000 } -enum : uint { JOY_BUTTON19 = 0x00040000 } -enum : uint { JOY_BUTTON20 = 0x00080000 } -enum : uint { JOY_BUTTON21 = 0x00100000 } -enum : uint { JOY_BUTTON22 = 0x00200000 } -enum : uint { JOY_BUTTON23 = 0x00400000 } -enum : uint { JOY_BUTTON24 = 0x00800000 } -enum : uint { JOY_BUTTON25 = 0x01000000 } -enum : uint { JOY_BUTTON26 = 0x02000000 } -enum : uint { JOY_BUTTON27 = 0x04000000 } -enum : uint { JOY_BUTTON28 = 0x08000000 } -enum : uint { JOY_BUTTON29 = 0x10000000 } -enum : uint { JOY_BUTTON30 = 0x20000000 } -enum : uint { JOY_BUTTON31 = 0x40000000 } -enum : uint { JOY_BUTTON32 = 0x80000000 } - -enum : WORD { JOY_POVCENTERED = cast(WORD)-1 } -enum : uint { JOY_POVFORWARD = 0 } -enum : uint { JOY_POVRIGHT = 9000 } -enum : uint { JOY_POVBACKWARD = 18000 } -enum : uint { JOY_POVLEFT = 27000 } - -enum : uint { JOY_RETURNX = 0x00000001 } -enum : uint { JOY_RETURNY = 0x00000002 } -enum : uint { JOY_RETURNZ = 0x00000004 } -enum : uint { JOY_RETURNR = 0x00000008 } -enum : uint { JOY_RETURNU = 0x00000010 } -enum : uint { JOY_RETURNV = 0x00000020 } -enum : uint { JOY_RETURNPOV = 0x00000040 } -enum : uint { JOY_RETURNBUTTONS = 0x00000080 } -enum : uint { JOY_RETURNRAWDATA = 0x00000100 } -enum : uint { JOY_RETURNPOVCTS = 0x00000200 } -enum : uint { JOY_RETURNCENTERED = 0x00000400 } -enum : uint { JOY_USEDEADZONE = 0x00000800 } -enum : uint { JOY_RETURNALL = JOY_RETURNX | JOY_RETURNY | JOY_RETURNZ | JOY_RETURNR | JOY_RETURNU | JOY_RETURNV | JOY_RETURNPOV | JOY_RETURNBUTTONS } -enum : uint { JOY_CAL_READALWAYS = 0x00010000 } -enum : uint { JOY_CAL_READXYONLY = 0x00020000 } -enum : uint { JOY_CAL_READ3 = 0x00040000 } -enum : uint { JOY_CAL_READ4 = 0x00080000 } -enum : uint { JOY_CAL_READXONLY = 0x00100000 } -enum : uint { JOY_CAL_READYONLY = 0x00200000 } -enum : uint { JOY_CAL_READ5 = 0x00400000 } -enum : uint { JOY_CAL_READ6 = 0x00800000 } -enum : uint { JOY_CAL_READZONLY = 0x01000000 } -enum : uint { JOY_CAL_READRONLY = 0x02000000 } -enum : uint { JOY_CAL_READUONLY = 0x04000000 } -enum : uint { JOY_CAL_READVONLY = 0x08000000 } - -enum : uint { JOYSTICKID1 = 0 } -enum : uint { JOYSTICKID2 = 1 } - -enum : uint { JOYCAPS_HASZ = 0x0001 } -enum : uint { JOYCAPS_HASR = 0x0002 } -enum : uint { JOYCAPS_HASU = 0x0004 } -enum : uint { JOYCAPS_HASV = 0x0008 } -enum : uint { JOYCAPS_HASPOV = 0x0010 } -enum : uint { JOYCAPS_POV4DIR = 0x0020 } -enum : uint { JOYCAPS_POVCTS = 0x0040 } - -// #ifdef _WIN32 - -struct tagJOYCAPSA { - WORD wMid; - WORD wPid; - CHAR szPname[MAXPNAMELEN]; - UINT wXmin; - UINT wXmax; - UINT wYmin; - UINT wYmax; - UINT wZmin; - UINT wZmax; - UINT wNumButtons; - UINT wPeriodMin; - UINT wPeriodMax; -// #if (WINVER >= 0x0400) - UINT wRmin; - UINT wRmax; - UINT wUmin; - UINT wUmax; - UINT wVmin; - UINT wVmax; - UINT wCaps; - UINT wMaxAxes; - UINT wNumAxes; - UINT wMaxButtons; - CHAR szRegKey[MAXPNAMELEN]; - CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; -// #endif -} -alias tagJOYCAPSA JOYCAPSA; -alias tagJOYCAPSA* PJOYCAPSA; -alias tagJOYCAPSA* NPJOYCAPSA; -alias tagJOYCAPSA* LPJOYCAPSA; - -struct tagJOYCAPSW { - WORD wMid; - WORD wPid; - WCHAR szPname[MAXPNAMELEN]; - UINT wXmin; - UINT wXmax; - UINT wYmin; - UINT wYmax; - UINT wZmin; - UINT wZmax; - UINT wNumButtons; - UINT wPeriodMin; - UINT wPeriodMax; -// #if (WINVER >= 0x0400) - UINT wRmin; - UINT wRmax; - UINT wUmin; - UINT wUmax; - UINT wVmin; - UINT wVmax; - UINT wCaps; - UINT wMaxAxes; - UINT wNumAxes; - UINT wMaxButtons; - WCHAR szRegKey[MAXPNAMELEN]; - WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; -// #endif -} -alias tagJOYCAPSW JOYCAPSW; -alias tagJOYCAPSW* PJOYCAPSW; -alias tagJOYCAPSW* NPJOYCAPSW; -alias tagJOYCAPSW* LPJOYCAPSW; - -// #ifdef UNICODE -alias JOYCAPSW JOYCAPS; -alias PJOYCAPSW PJOYCAPS; -alias NPJOYCAPSW NPJOYCAPS; -alias LPJOYCAPSW LPJOYCAPS; -// #else -// ... -// #endif // UNICODE -struct tagJOYCAPS2A { - WORD wMid; - WORD wPid; - CHAR szPname[MAXPNAMELEN]; - UINT wXmin; - UINT wXmax; - UINT wYmin; - UINT wYmax; - UINT wZmin; - UINT wZmax; - UINT wNumButtons; - UINT wPeriodMin; - UINT wPeriodMax; - UINT wRmin; - UINT wRmax; - UINT wUmin; - UINT wUmax; - UINT wVmin; - UINT wVmax; - UINT wCaps; - UINT wMaxAxes; - UINT wNumAxes; - UINT wMaxButtons; - CHAR szRegKey[MAXPNAMELEN]; - CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagJOYCAPS2A JOYCAPS2A; -alias tagJOYCAPS2A* PJOYCAPS2A; -alias tagJOYCAPS2A* NPJOYCAPS2A; -alias tagJOYCAPS2A* LPJOYCAPS2A; - -struct tagJOYCAPS2W { - WORD wMid; - WORD wPid; - WCHAR szPname[MAXPNAMELEN]; - UINT wXmin; - UINT wXmax; - UINT wYmin; - UINT wYmax; - UINT wZmin; - UINT wZmax; - UINT wNumButtons; - UINT wPeriodMin; - UINT wPeriodMax; - UINT wRmin; - UINT wRmax; - UINT wUmin; - UINT wUmax; - UINT wVmin; - UINT wVmax; - UINT wCaps; - UINT wMaxAxes; - UINT wNumAxes; - UINT wMaxButtons; - WCHAR szRegKey[MAXPNAMELEN]; - WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; - GUID ManufacturerGuid; - GUID ProductGuid; - GUID NameGuid; -} -alias tagJOYCAPS2W JOYCAPS2W; -alias tagJOYCAPS2W* PJOYCAPS2W; -alias tagJOYCAPS2W* NPJOYCAPS2W; -alias tagJOYCAPS2W* LPJOYCAPS2W; - -// #ifdef UNICODE -alias JOYCAPS2W JOYCAPS2; -alias PJOYCAPS2W PJOYCAPS2; -alias NPJOYCAPS2W NPJOYCAPS2; -alias LPJOYCAPS2W LPJOYCAPS2; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #if (WINVER >= 0x0400) -// ... -// #endif -// ... -// #endif - -struct joyinfo_tag { - UINT wXpos; - UINT wYpos; - UINT wZpos; - UINT wButtons; -} -alias joyinfo_tag JOYINFO; -alias joyinfo_tag* PJOYINFO; -alias joyinfo_tag* NPJOYINFO; -alias joyinfo_tag* LPJOYINFO; - -// #if(WINVER >= 0x0400) -struct joyinfoex_tag { - DWORD dwSize; - DWORD dwFlags; - DWORD dwXpos; - DWORD dwYpos; - DWORD dwZpos; - DWORD dwRpos; - DWORD dwUpos; - DWORD dwVpos; - DWORD dwButtons; - DWORD dwButtonNumber; - DWORD dwPOV; - DWORD dwReserved1; - DWORD dwReserved2; -} -alias joyinfoex_tag JOYINFOEX; -alias joyinfoex_tag* PJOYINFOEX; -alias joyinfoex_tag* NPJOYINFOEX; -alias joyinfoex_tag* LPJOYINFOEX; - -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export UINT joyGetNumDevs(); -// #ifdef _WIN32 - -extern(Windows) export MMRESULT joyGetDevCapsA(UINT_PTR uJoyID, LPJOYCAPSA pjc, UINT cbjc); -extern(Windows) export MMRESULT joyGetDevCapsW(UINT_PTR uJoyID, LPJOYCAPSW pjc, UINT cbjc); -// #ifdef UNICODE -alias joyGetDevCapsW joyGetDevCaps; -// #else -// #... -// #endif // !UNICODE - -// #else -// ... -// #endif -extern(Windows) export MMRESULT joyGetPos(UINT uJoyID, LPJOYINFO pji); - -// #if(WINVER >= 0x0400) -extern(Windows) export MMRESULT joyGetPosEx(UINT uJoyID, LPJOYINFOEX pji); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export MMRESULT joyGetThreshold(UINT uJoyID, LPUINT puThreshold); -extern(Windows) export MMRESULT joyReleaseCapture(UINT uJoyID); -extern(Windows) export MMRESULT joySetCapture(HWND hwnd, UINT uJoyID, UINT uPeriod, - BOOL fChanged); -extern(Windows) export MMRESULT joySetThreshold(UINT uJoyID, UINT uThreshold); - -// #endif /* ifndef MMNOJOY */ - -// #ifndef MMNOMMIO - -enum : uint { MMIOERR_BASE = 256 } -enum : uint { MMIOERR_FILENOTFOUND = MMIOERR_BASE + 1 } -enum : uint { MMIOERR_OUTOFMEMORY = MMIOERR_BASE + 2 } -enum : uint { MMIOERR_CANNOTOPEN = MMIOERR_BASE + 3 } -enum : uint { MMIOERR_CANNOTCLOSE = MMIOERR_BASE + 4 } -enum : uint { MMIOERR_CANNOTREAD = MMIOERR_BASE + 5 } -enum : uint { MMIOERR_CANNOTWRITE = MMIOERR_BASE + 6 } -enum : uint { MMIOERR_CANNOTSEEK = MMIOERR_BASE + 7 } -enum : uint { MMIOERR_CANNOTEXPAND = MMIOERR_BASE + 8 } -enum : uint { MMIOERR_CHUNKNOTFOUND = MMIOERR_BASE + 9 } -enum : uint { MMIOERR_UNBUFFERED = MMIOERR_BASE + 10 } -enum : uint { MMIOERR_PATHNOTFOUND = MMIOERR_BASE + 11 } -enum : uint { MMIOERR_ACCESSDENIED = MMIOERR_BASE + 12 } -enum : uint { MMIOERR_SHARINGVIOLATION = MMIOERR_BASE + 13 } -enum : uint { MMIOERR_NETWORKERROR = MMIOERR_BASE + 14 } -enum : uint { MMIOERR_TOOMANYOPENFILES = MMIOERR_BASE + 15 } -enum : uint { MMIOERR_INVALIDFILE = MMIOERR_BASE + 16 } - -const char CFSEPCHAR = '+'; - -alias DWORD FOURCC; -alias char* HPSTR; -alias void* HMMIO; -// typedef LRESULT (CALLBACK MMIOPROC)(LPSTR lpmmioinfo, UINT uMsg, LPARAM lParam1, LPARAM lParam2); -extern(Windows) alias LRESULT function(LPSTR lpmmioinfo, UINT uMsg, LPARAM lParam1, LPARAM lParam2) LPMMIOPROC; - -struct _MMIOINFO { - - DWORD dwFlags; - FOURCC fccIOProc; - LPMMIOPROC pIOProc; - UINT wErrorRet; - HTASK htask; - - LONG cchBuffer; - HPSTR pchBuffer; - HPSTR pchNext; - HPSTR pchEndRead; - HPSTR pchEndWrite; - LONG lBufOffset; - - LONG lDiskOffset; - DWORD adwInfo[3]; - - DWORD dwReserved1; - DWORD dwReserved2; - HMMIO hmmio; -} -alias _MMIOINFO MMIOINFO; -alias _MMIOINFO* PMMIOINFO; -alias _MMIOINFO* NPMMIOINFO; -alias _MMIOINFO* LPMMIOINFO; - -alias MMIOINFO* LPCMMIOINFO; - -struct _MMCKINFO { - FOURCC ckid; - DWORD cksize; - FOURCC fccType; - DWORD dwDataOffset; - DWORD dwFlags; -} -alias _MMCKINFO MMCKINFO; -alias _MMCKINFO* PMMCKINFO; -alias _MMCKINFO* NPMMCKINFO; -alias _MMCKINFO* LPMMCKINFO; - -alias MMCKINFO* LPCMMCKINFO; - -enum : uint { MMIO_RWMODE = 0x00000003 } -enum : uint { MMIO_SHAREMODE = 0x00000070 } - -enum : uint { MMIO_CREATE = 0x00001000 } -enum : uint { MMIO_PARSE = 0x00000100 } -enum : uint { MMIO_DELETE = 0x00000200 } -enum : uint { MMIO_EXIST = 0x00004000 } -enum : uint { MMIO_ALLOCBUF = 0x00010000 } -enum : uint { MMIO_GETTEMP = 0x00020000 } - -enum : uint { MMIO_DIRTY = 0x10000000 } - -enum : uint { MMIO_READ = 0x00000000 } -enum : uint { MMIO_WRITE = 0x00000001 } -enum : uint { MMIO_READWRITE = 0x00000002 } - -enum : uint { MMIO_COMPAT = 0x00000000 } -enum : uint { MMIO_EXCLUSIVE = 0x00000010 } -enum : uint { MMIO_DENYWRITE = 0x00000020 } -enum : uint { MMIO_DENYREAD = 0x00000030 } -enum : uint { MMIO_DENYNONE = 0x00000040 } - -enum : uint { MMIO_FHOPEN = 0x0010 } -enum : uint { MMIO_EMPTYBUF = 0x0010 } -enum : uint { MMIO_TOUPPER = 0x0010 } -enum : uint { MMIO_INSTALLPROC = 0x00010000 } -enum : uint { MMIO_GLOBALPROC = 0x10000000 } -enum : uint { MMIO_REMOVEPROC = 0x00020000 } -enum : uint { MMIO_UNICODEPROC = 0x01000000 } -enum : uint { MMIO_FINDPROC = 0x00040000 } -enum : uint { MMIO_FINDCHUNK = 0x0010 } -enum : uint { MMIO_FINDRIFF = 0x0020 } -enum : uint { MMIO_FINDLIST = 0x0040 } -enum : uint { MMIO_CREATERIFF = 0x0020 } -enum : uint { MMIO_CREATELIST = 0x0040 } - -alias MMIO_READ MMIOM_READ; -alias MMIO_WRITE MMIOM_WRITE; -enum : uint { MMIOM_SEEK = 2 } -enum : uint { MMIOM_OPEN = 3 } -enum : uint { MMIOM_CLOSE = 4 } -enum : uint { MMIOM_WRITEFLUSH = 5 } - -// #if (WINVER >= 0x030a) -enum : uint { MMIOM_RENAME = 6 } -// #endif /* ifdef WINVER >= 0x030a */ - -enum : uint { MMIOM_USER = 0x8000 } - -// #define FOURCC_RIFF mmioFOURCC('R', 'I', 'F', 'F') -// #define FOURCC_LIST mmioFOURCC('L', 'I', 'S', 'T') - -// #define FOURCC_DOS mmioFOURCC('D', 'O', 'S', ' ') -// #define FOURCC_MEM mmioFOURCC('M', 'E', 'M', ' ') - -// #ifndef SEEK_SET -enum : uint { SEEK_SET = 0 } -enum : uint { SEEK_CUR = 1 } -enum : uint { SEEK_END = 2 } -// #endif /* ifndef SEEK_SET */ - -enum : uint { MMIO_DEFAULTBUFFER = 8192 } - -// #define mmioFOURCC(ch0, ch1, ch2, ch3) MAKEFOURCC(ch0, ch1, ch2, ch3) - -// #ifdef _WIN32 - -extern(Windows) export FOURCC mmioStringToFOURCCA(LPCSTR sz, UINT uFlags); -extern(Windows) export FOURCC mmioStringToFOURCCW(LPCWSTR sz, UINT uFlags); -// #ifdef UNICODE -alias mmioStringToFOURCCW mmioStringToFOURCC; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export LPMMIOPROC mmioInstallIOProcA(FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags); -extern(Windows) export LPMMIOPROC mmioInstallIOProcW(FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags); -// #ifdef UNICODE -alias mmioInstallIOProcW mmioInstallIOProc; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HMMIO mmioOpenA(LPSTR pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen); -extern(Windows) export HMMIO mmioOpenW(LPWSTR pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen); -// #ifdef UNICODE -alias mmioOpenW mmioOpen; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export MMRESULT mmioRenameA(LPCSTR pszFileName, LPCSTR pszNewFileName, LPCMMIOINFO pmmioinfo, DWORD fdwRename); -extern(Windows) export MMRESULT mmioRenameW(LPCWSTR pszFileName, LPCWSTR pszNewFileName, LPCMMIOINFO pmmioinfo, DWORD fdwRename); -// #ifdef UNICODE -alias mmioRenameW mmioRename; -// #else -// #... -// #endif // !UNICODE -// #else -// ... -// #if (WINVER >= 0x030a) -// ... -// #endif /* ifdef WINVER >= 0x030a */ -// #endif - -extern(Windows) export MMRESULT mmioClose(HMMIO hmmio, UINT fuClose); -extern(Windows) export LONG mmioRead(HMMIO hmmio, HPSTR pch, LONG cch); -extern(Windows) export LONG mmioWrite(HMMIO hmmio, char * pch, LONG cch); -extern(Windows) export LONG mmioSeek(HMMIO hmmio, LONG lOffset, int iOrigin); -extern(Windows) export MMRESULT mmioGetInfo(HMMIO hmmio, LPMMIOINFO pmmioinfo, UINT fuInfo); -extern(Windows) export MMRESULT mmioSetInfo(HMMIO hmmio, LPCMMIOINFO pmmioinfo, UINT fuInfo); -extern(Windows) export MMRESULT mmioSetBuffer(HMMIO hmmio, LPSTR pchBuffer, LONG cchBuffer, - UINT fuBuffer); -extern(Windows) export MMRESULT mmioFlush(HMMIO hmmio, UINT fuFlush); -extern(Windows) export MMRESULT mmioAdvance(HMMIO hmmio, LPMMIOINFO pmmioinfo, UINT fuAdvance); -extern(Windows) export LRESULT mmioSendMessage(HMMIO hmmio, UINT uMsg, - LPARAM lParam1, LPARAM lParam2); -extern(Windows) export MMRESULT mmioDescend(HMMIO hmmio, LPMMCKINFO pmmcki, - MMCKINFO * pmmckiParent, UINT fuDescend); -extern(Windows) export MMRESULT mmioAscend(HMMIO hmmio, LPMMCKINFO pmmcki, UINT fuAscend); -extern(Windows) export MMRESULT mmioCreateChunk(HMMIO hmmio, LPMMCKINFO pmmcki, UINT fuCreate); - -// #endif /* ifndef MMNOMMIO */ - -// #ifndef MMNOMCI - -// #ifndef _MCIERROR_ /* MCIERROR is defined in some post 3.1 apps */ -// #define _MCIERROR_ -alias DWORD MCIERROR; -// #endif - -// #ifndef _MCIDEVICEID_ /* Same with MCIDEVICEID */ -// #define _MCIDEVICEID_ -alias UINT MCIDEVICEID; -// #endif - -extern(Windows) alias UINT function(MCIDEVICEID mciId, DWORD dwYieldData) YIELDPROC; - -// #ifdef _WIN32 - -extern(Windows) export MCIERROR mciSendCommandA(MCIDEVICEID mciId, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2); -extern(Windows) export MCIERROR mciSendCommandW(MCIDEVICEID mciId, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2); -// #ifdef UNICODE -alias mciSendCommandW mciSendCommand; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export MCIERROR mciSendStringA(LPCSTR lpstrCommand, LPSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback); -extern(Windows) export MCIERROR mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback); -// #ifdef UNICODE -alias mciSendStringW mciSendString; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export MCIDEVICEID mciGetDeviceIDA(LPCSTR pszDevice); -extern(Windows) export MCIDEVICEID mciGetDeviceIDW(LPCWSTR pszDevice); -// #ifdef UNICODE -alias mciGetDeviceIDW mciGetDeviceID; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export MCIDEVICEID mciGetDeviceIDFromElementIDA(DWORD dwElementID, LPCSTR lpstrType ); -extern(Windows) export MCIDEVICEID mciGetDeviceIDFromElementIDW(DWORD dwElementID, LPCWSTR lpstrType ); -// #ifdef UNICODE -alias mciGetDeviceIDFromElementIDW mciGetDeviceIDFromElementID; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL mciGetErrorStringA(MCIERROR mcierr, LPSTR pszText, UINT cchText); -extern(Windows) export BOOL mciGetErrorStringW(MCIERROR mcierr, LPWSTR pszText, UINT cchText); -// #ifdef UNICODE -alias mciGetErrorStringW mciGetErrorString; -// #else -// #... -// #endif // !UNICODE - -// #else -// ... -// #endif - -extern(Windows) export BOOL mciSetYieldProc(MCIDEVICEID mciId, YIELDPROC fpYieldProc, - DWORD dwYieldData); - -// #if (WINVER >= 0x030a) -extern(Windows) export HTASK mciGetCreatorTask(MCIDEVICEID mciId); -extern(Windows) export YIELDPROC mciGetYieldProc(MCIDEVICEID mciId, LPDWORD pdwYieldData); -// #endif /* ifdef WINVER >= 0x030a */ - -// #if (WINVER < 0x030a) -// ... -// #endif /* ifdef WINVER < 0x030a */ - -enum : uint { MCIERR_INVALID_DEVICE_ID = MCIERR_BASE + 1 } -enum : uint { MCIERR_UNRECOGNIZED_KEYWORD = MCIERR_BASE + 3 } -enum : uint { MCIERR_UNRECOGNIZED_COMMAND = MCIERR_BASE + 5 } -enum : uint { MCIERR_HARDWARE = MCIERR_BASE + 6 } -enum : uint { MCIERR_INVALID_DEVICE_NAME = MCIERR_BASE + 7 } -enum : uint { MCIERR_OUT_OF_MEMORY = MCIERR_BASE + 8 } -enum : uint { MCIERR_DEVICE_OPEN = MCIERR_BASE + 9 } -enum : uint { MCIERR_CANNOT_LOAD_DRIVER = MCIERR_BASE + 10 } -enum : uint { MCIERR_MISSING_COMMAND_STRING = MCIERR_BASE + 11 } -enum : uint { MCIERR_PARAM_OVERFLOW = MCIERR_BASE + 12 } -enum : uint { MCIERR_MISSING_STRING_ARGUMENT = MCIERR_BASE + 13 } -enum : uint { MCIERR_BAD_INTEGER = MCIERR_BASE + 14 } -enum : uint { MCIERR_PARSER_INTERNAL = MCIERR_BASE + 15 } -enum : uint { MCIERR_DRIVER_INTERNAL = MCIERR_BASE + 16 } -enum : uint { MCIERR_MISSING_PARAMETER = MCIERR_BASE + 17 } -enum : uint { MCIERR_UNSUPPORTED_FUNCTION = MCIERR_BASE + 18 } -enum : uint { MCIERR_FILE_NOT_FOUND = MCIERR_BASE + 19 } -enum : uint { MCIERR_DEVICE_NOT_READY = MCIERR_BASE + 20 } -enum : uint { MCIERR_INTERNAL = MCIERR_BASE + 21 } -enum : uint { MCIERR_DRIVER = MCIERR_BASE + 22 } -enum : uint { MCIERR_CANNOT_USE_ALL = MCIERR_BASE + 23 } -enum : uint { MCIERR_MULTIPLE = MCIERR_BASE + 24 } -enum : uint { MCIERR_EXTENSION_NOT_FOUND = MCIERR_BASE + 25 } -enum : uint { MCIERR_OUTOFRANGE = MCIERR_BASE + 26 } -enum : uint { MCIERR_FLAGS_NOT_COMPATIBLE = MCIERR_BASE + 28 } -enum : uint { MCIERR_FILE_NOT_SAVED = MCIERR_BASE + 30 } -enum : uint { MCIERR_DEVICE_TYPE_REQUIRED = MCIERR_BASE + 31 } -enum : uint { MCIERR_DEVICE_LOCKED = MCIERR_BASE + 32 } -enum : uint { MCIERR_DUPLICATE_ALIAS = MCIERR_BASE + 33 } -enum : uint { MCIERR_BAD_CONSTANT = MCIERR_BASE + 34 } -enum : uint { MCIERR_MUST_USE_SHAREABLE = MCIERR_BASE + 35 } -enum : uint { MCIERR_MISSING_DEVICE_NAME = MCIERR_BASE + 36 } -enum : uint { MCIERR_BAD_TIME_FORMAT = MCIERR_BASE + 37 } -enum : uint { MCIERR_NO_CLOSING_QUOTE = MCIERR_BASE + 38 } -enum : uint { MCIERR_DUPLICATE_FLAGS = MCIERR_BASE + 39 } -enum : uint { MCIERR_INVALID_FILE = MCIERR_BASE + 40 } -enum : uint { MCIERR_NULL_PARAMETER_BLOCK = MCIERR_BASE + 41 } -enum : uint { MCIERR_UNNAMED_RESOURCE = MCIERR_BASE + 42 } -enum : uint { MCIERR_NEW_REQUIRES_ALIAS = MCIERR_BASE + 43 } -enum : uint { MCIERR_NOTIFY_ON_AUTO_OPEN = MCIERR_BASE + 44 } -enum : uint { MCIERR_NO_ELEMENT_ALLOWED = MCIERR_BASE + 45 } -enum : uint { MCIERR_NONAPPLICABLE_FUNCTION = MCIERR_BASE + 46 } -enum : uint { MCIERR_ILLEGAL_FOR_AUTO_OPEN = MCIERR_BASE + 47 } -enum : uint { MCIERR_FILENAME_REQUIRED = MCIERR_BASE + 48 } -enum : uint { MCIERR_EXTRA_CHARACTERS = MCIERR_BASE + 49 } -enum : uint { MCIERR_DEVICE_NOT_INSTALLED = MCIERR_BASE + 50 } -enum : uint { MCIERR_GET_CD = MCIERR_BASE + 51 } -enum : uint { MCIERR_SET_CD = MCIERR_BASE + 52 } -enum : uint { MCIERR_SET_DRIVE = MCIERR_BASE + 53 } -enum : uint { MCIERR_DEVICE_LENGTH = MCIERR_BASE + 54 } -enum : uint { MCIERR_DEVICE_ORD_LENGTH = MCIERR_BASE + 55 } -enum : uint { MCIERR_NO_INTEGER = MCIERR_BASE + 56 } - -enum : uint { MCIERR_WAVE_OUTPUTSINUSE = MCIERR_BASE + 64 } -enum : uint { MCIERR_WAVE_SETOUTPUTINUSE = MCIERR_BASE + 65 } -enum : uint { MCIERR_WAVE_INPUTSINUSE = MCIERR_BASE + 66 } -enum : uint { MCIERR_WAVE_SETINPUTINUSE = MCIERR_BASE + 67 } -enum : uint { MCIERR_WAVE_OUTPUTUNSPECIFIED = MCIERR_BASE + 68 } -enum : uint { MCIERR_WAVE_INPUTUNSPECIFIED = MCIERR_BASE + 69 } -enum : uint { MCIERR_WAVE_OUTPUTSUNSUITABLE = MCIERR_BASE + 70 } -enum : uint { MCIERR_WAVE_SETOUTPUTUNSUITABLE = MCIERR_BASE + 71 } -enum : uint { MCIERR_WAVE_INPUTSUNSUITABLE = MCIERR_BASE + 72 } -enum : uint { MCIERR_WAVE_SETINPUTUNSUITABLE = MCIERR_BASE + 73 } - -enum : uint { MCIERR_SEQ_DIV_INCOMPATIBLE = MCIERR_BASE + 80 } -enum : uint { MCIERR_SEQ_PORT_INUSE = MCIERR_BASE + 81 } -enum : uint { MCIERR_SEQ_PORT_NONEXISTENT = MCIERR_BASE + 82 } -enum : uint { MCIERR_SEQ_PORT_MAPNODEVICE = MCIERR_BASE + 83 } -enum : uint { MCIERR_SEQ_PORT_MISCERROR = MCIERR_BASE + 84 } -enum : uint { MCIERR_SEQ_TIMER = MCIERR_BASE + 85 } -enum : uint { MCIERR_SEQ_PORTUNSPECIFIED = MCIERR_BASE + 86 } -enum : uint { MCIERR_SEQ_NOMIDIPRESENT = MCIERR_BASE + 87 } - -enum : uint { MCIERR_NO_WINDOW = MCIERR_BASE + 90 } -enum : uint { MCIERR_CREATEWINDOW = MCIERR_BASE + 91 } -enum : uint { MCIERR_FILE_READ = MCIERR_BASE + 92 } -enum : uint { MCIERR_FILE_WRITE = MCIERR_BASE + 93 } - -enum : uint { MCIERR_NO_IDENTITY = MCIERR_BASE + 94 } - -enum : uint { MCIERR_CUSTOM_DRIVER_BASE = MCIERR_BASE + 256 } - -alias DRV_MCI_FIRST MCI_FIRST; - -enum : uint { MCI_OPEN = 0x0803 } -enum : uint { MCI_CLOSE = 0x0804 } -enum : uint { MCI_ESCAPE = 0x0805 } -enum : uint { MCI_PLAY = 0x0806 } -enum : uint { MCI_SEEK = 0x0807 } -enum : uint { MCI_STOP = 0x0808 } -enum : uint { MCI_PAUSE = 0x0809 } -enum : uint { MCI_INFO = 0x080A } -enum : uint { MCI_GETDEVCAPS = 0x080B } -enum : uint { MCI_SPIN = 0x080C } -enum : uint { MCI_SET = 0x080D } -enum : uint { MCI_STEP = 0x080E } -enum : uint { MCI_RECORD = 0x080F } -enum : uint { MCI_SYSINFO = 0x0810 } -enum : uint { MCI_BREAK = 0x0811 } -enum : uint { MCI_SAVE = 0x0813 } -enum : uint { MCI_STATUS = 0x0814 } -enum : uint { MCI_CUE = 0x0830 } -enum : uint { MCI_REALIZE = 0x0840 } -enum : uint { MCI_WINDOW = 0x0841 } -enum : uint { MCI_PUT = 0x0842 } -enum : uint { MCI_WHERE = 0x0843 } -enum : uint { MCI_FREEZE = 0x0844 } -enum : uint { MCI_UNFREEZE = 0x0845 } -enum : uint { MCI_LOAD = 0x0850 } -enum : uint { MCI_CUT = 0x0851 } -enum : uint { MCI_COPY = 0x0852 } -enum : uint { MCI_PASTE = 0x0853 } -enum : uint { MCI_UPDATE = 0x0854 } -enum : uint { MCI_RESUME = 0x0855 } -enum : uint { MCI_DELETE = 0x0856 } - -enum : uint { MCI_USER_MESSAGES = DRV_MCI_FIRST + 0x400 } -enum : uint { MCI_LAST = 0x0FFF } - -enum : uint { MCI_ALL_DEVICE_ID = cast(MCIDEVICEID)-1 } - -enum : uint { MCI_DEVTYPE_VCR = 513 } -enum : uint { MCI_DEVTYPE_VIDEODISC = 514 } -enum : uint { MCI_DEVTYPE_OVERLAY = 515 } -enum : uint { MCI_DEVTYPE_CD_AUDIO = 516 } -enum : uint { MCI_DEVTYPE_DAT = 517 } -enum : uint { MCI_DEVTYPE_SCANNER = 518 } -enum : uint { MCI_DEVTYPE_ANIMATION = 519 } -enum : uint { MCI_DEVTYPE_DIGITAL_VIDEO = 520 } -enum : uint { MCI_DEVTYPE_OTHER = 521 } -enum : uint { MCI_DEVTYPE_WAVEFORM_AUDIO = 522 } -enum : uint { MCI_DEVTYPE_SEQUENCER = 523 } - -alias MCI_DEVTYPE_VCR MCI_DEVTYPE_FIRST; -alias MCI_DEVTYPE_SEQUENCER MCI_DEVTYPE_LAST; - -enum : uint { MCI_DEVTYPE_FIRST_USER = 0x1000 } - -enum : uint { MCI_MODE_NOT_READY = MCI_STRING_OFFSET + 12 } -enum : uint { MCI_MODE_STOP = MCI_STRING_OFFSET + 13 } -enum : uint { MCI_MODE_PLAY = MCI_STRING_OFFSET + 14 } -enum : uint { MCI_MODE_RECORD = MCI_STRING_OFFSET + 15 } -enum : uint { MCI_MODE_SEEK = MCI_STRING_OFFSET + 16 } -enum : uint { MCI_MODE_PAUSE = MCI_STRING_OFFSET + 17 } -enum : uint { MCI_MODE_OPEN = MCI_STRING_OFFSET + 18 } - -enum : uint { MCI_FORMAT_MILLISECONDS = 0 } -enum : uint { MCI_FORMAT_HMS = 1 } -enum : uint { MCI_FORMAT_MSF = 2 } -enum : uint { MCI_FORMAT_FRAMES = 3 } -enum : uint { MCI_FORMAT_SMPTE_24 = 4 } -enum : uint { MCI_FORMAT_SMPTE_25 = 5 } -enum : uint { MCI_FORMAT_SMPTE_30 = 6 } -enum : uint { MCI_FORMAT_SMPTE_30DROP = 7 } -enum : uint { MCI_FORMAT_BYTES = 8 } -enum : uint { MCI_FORMAT_SAMPLES = 9 } -enum : uint { MCI_FORMAT_TMSF = 10 } - -// #define MCI_MSF_MINUTE(msf) ((BYTE)(msf)) -// #define MCI_MSF_SECOND(msf) ((BYTE)(((WORD)(msf)) >> 8)) -// #define MCI_MSF_FRAME(msf) ((BYTE)((msf)>>16)) - -// #define MCI_MAKE_MSF(m, s, f) ((DWORD)(((BYTE)(m) | ((WORD)(s)<<8)) | (((DWORD)(BYTE)(f))<<16))) - -// #define MCI_TMSF_TRACK(tmsf) ((BYTE)(tmsf)) -// #define MCI_TMSF_MINUTE(tmsf) ((BYTE)(((WORD)(tmsf)) >> 8)) -// #define MCI_TMSF_SECOND(tmsf) ((BYTE)((tmsf)>>16)) -// #define MCI_TMSF_FRAME(tmsf) ((BYTE)((tmsf)>>24)) - -// #define MCI_MAKE_TMSF(t, m, s, f) ((DWORD)(((BYTE)(t) | ((WORD)(m)<<8)) | (((DWORD)(BYTE)(s) | ((WORD)(f)<<8))<<16))) - -// #define MCI_HMS_HOUR(hms) ((BYTE)(hms)) -// #define MCI_HMS_MINUTE(hms) ((BYTE)(((WORD)(hms)) >> 8)) -// #define MCI_HMS_SECOND(hms) ((BYTE)((hms)>>16)) - -// #define MCI_MAKE_HMS(h, m, s) ((DWORD)(((BYTE)(h) | ((WORD)(m)<<8)) | (((DWORD)(BYTE)(s))<<16))) - -enum : uint { MCI_NOTIFY_SUCCESSFUL = 0x0001 } -enum : uint { MCI_NOTIFY_SUPERSEDED = 0x0002 } -enum : uint { MCI_NOTIFY_ABORTED = 0x0004 } -enum : uint { MCI_NOTIFY_FAILURE = 0x0008 } - -enum : uint { MCI_NOTIFY = 0x00000001 } -enum : uint { MCI_WAIT = 0x00000002 } -enum : uint { MCI_FROM = 0x00000004 } -enum : uint { MCI_TO = 0x00000008 } -enum : uint { MCI_TRACK = 0x00000010 } - -enum : uint { MCI_OPEN_SHAREABLE = 0x00000100 } -enum : uint { MCI_OPEN_ELEMENT = 0x00000200 } -enum : uint { MCI_OPEN_ALIAS = 0x00000400 } -enum : uint { MCI_OPEN_ELEMENT_ID = 0x00000800 } -enum : uint { MCI_OPEN_TYPE_ID = 0x00001000 } -enum : uint { MCI_OPEN_TYPE = 0x00002000 } - -enum : uint { MCI_SEEK_TO_START = 0x00000100 } -enum : uint { MCI_SEEK_TO_END = 0x00000200 } - -enum : uint { MCI_STATUS_ITEM = 0x00000100 } -enum : uint { MCI_STATUS_START = 0x00000200 } - -enum : uint { MCI_STATUS_LENGTH = 0x00000001 } -enum : uint { MCI_STATUS_POSITION = 0x00000002 } -enum : uint { MCI_STATUS_NUMBER_OF_TRACKS = 0x00000003 } -enum : uint { MCI_STATUS_MODE = 0x00000004 } -enum : uint { MCI_STATUS_MEDIA_PRESENT = 0x00000005 } -enum : uint { MCI_STATUS_TIME_FORMAT = 0x00000006 } -enum : uint { MCI_STATUS_READY = 0x00000007 } -enum : uint { MCI_STATUS_CURRENT_TRACK = 0x00000008 } - -enum : uint { MCI_INFO_PRODUCT = 0x00000100 } -enum : uint { MCI_INFO_FILE = 0x00000200 } -enum : uint { MCI_INFO_MEDIA_UPC = 0x00000400 } -enum : uint { MCI_INFO_MEDIA_IDENTITY = 0x00000800 } -enum : uint { MCI_INFO_NAME = 0x00001000 } -enum : uint { MCI_INFO_COPYRIGHT = 0x00002000 } - -enum : uint { MCI_GETDEVCAPS_ITEM = 0x00000100 } - -enum : uint { MCI_GETDEVCAPS_CAN_RECORD = 0x00000001 } -enum : uint { MCI_GETDEVCAPS_HAS_AUDIO = 0x00000002 } -enum : uint { MCI_GETDEVCAPS_HAS_VIDEO = 0x00000003 } -enum : uint { MCI_GETDEVCAPS_DEVICE_TYPE = 0x00000004 } -enum : uint { MCI_GETDEVCAPS_USES_FILES = 0x00000005 } -enum : uint { MCI_GETDEVCAPS_COMPOUND_DEVICE = 0x00000006 } -enum : uint { MCI_GETDEVCAPS_CAN_EJECT = 0x00000007 } -enum : uint { MCI_GETDEVCAPS_CAN_PLAY = 0x00000008 } -enum : uint { MCI_GETDEVCAPS_CAN_SAVE = 0x00000009 } - -enum : uint { MCI_SYSINFO_QUANTITY = 0x00000100 } -enum : uint { MCI_SYSINFO_OPEN = 0x00000200 } -enum : uint { MCI_SYSINFO_NAME = 0x00000400 } -enum : uint { MCI_SYSINFO_INSTALLNAME = 0x00000800 } - -enum : uint { MCI_SET_DOOR_OPEN = 0x00000100 } -enum : uint { MCI_SET_DOOR_CLOSED = 0x00000200 } -enum : uint { MCI_SET_TIME_FORMAT = 0x00000400 } -enum : uint { MCI_SET_AUDIO = 0x00000800 } -enum : uint { MCI_SET_VIDEO = 0x00001000 } -enum : uint { MCI_SET_ON = 0x00002000 } -enum : uint { MCI_SET_OFF = 0x00004000 } - -enum : uint { MCI_SET_AUDIO_ALL = 0x00000000 } -enum : uint { MCI_SET_AUDIO_LEFT = 0x00000001 } -enum : uint { MCI_SET_AUDIO_RIGHT = 0x00000002 } - -enum : uint { MCI_BREAK_KEY = 0x00000100 } -enum : uint { MCI_BREAK_HWND = 0x00000200 } -enum : uint { MCI_BREAK_OFF = 0x00000400 } - -enum : uint { MCI_RECORD_INSERT = 0x00000100 } -enum : uint { MCI_RECORD_OVERWRITE = 0x00000200 } - -enum : uint { MCI_SAVE_FILE = 0x00000100 } - -enum : uint { MCI_LOAD_FILE = 0x00000100 } - -struct tagMCI_GENERIC_PARMS { - DWORD_PTR dwCallback; -} -alias tagMCI_GENERIC_PARMS MCI_GENERIC_PARMS; -alias tagMCI_GENERIC_PARMS* PMCI_GENERIC_PARMS; -alias tagMCI_GENERIC_PARMS* LPMCI_GENERIC_PARMS; - -// #ifdef _WIN32 - -struct tagMCI_OPEN_PARMSA { - DWORD_PTR dwCallback; - MCIDEVICEID wDeviceID; - LPCSTR lpstrDeviceType; - LPCSTR lpstrElementName; - LPCSTR lpstrAlias; -} -alias tagMCI_OPEN_PARMSA MCI_OPEN_PARMSA; -alias tagMCI_OPEN_PARMSA* PMCI_OPEN_PARMSA; -alias tagMCI_OPEN_PARMSA* LPMCI_OPEN_PARMSA; - -struct tagMCI_OPEN_PARMSW { - DWORD_PTR dwCallback; - MCIDEVICEID wDeviceID; - LPCWSTR lpstrDeviceType; - LPCWSTR lpstrElementName; - LPCWSTR lpstrAlias; -} -alias tagMCI_OPEN_PARMSW MCI_OPEN_PARMSW; -alias tagMCI_OPEN_PARMSW* PMCI_OPEN_PARMSW; -alias tagMCI_OPEN_PARMSW* LPMCI_OPEN_PARMSW; - -// #ifdef UNICODE -alias MCI_OPEN_PARMSW MCI_OPEN_PARMS; -alias PMCI_OPEN_PARMSW PMCI_OPEN_PARMS; -alias LPMCI_OPEN_PARMSW LPMCI_OPEN_PARMS; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -struct tagMCI_PLAY_PARMS { - DWORD_PTR dwCallback; - DWORD dwFrom; - DWORD dwTo; -} -alias tagMCI_PLAY_PARMS MCI_PLAY_PARMS; -alias tagMCI_PLAY_PARMS* PMCI_PLAY_PARMS; -alias tagMCI_PLAY_PARMS* LPMCI_PLAY_PARMS; - -struct tagMCI_SEEK_PARMS { - DWORD_PTR dwCallback; - DWORD dwTo; -} -alias tagMCI_SEEK_PARMS MCI_SEEK_PARMS; -alias tagMCI_SEEK_PARMS* PMCI_SEEK_PARMS; -alias tagMCI_SEEK_PARMS* LPMCI_SEEK_PARMS; - -struct tagMCI_STATUS_PARMS { - DWORD_PTR dwCallback; - DWORD_PTR dwReturn; - DWORD dwItem; - DWORD dwTrack; -} -alias tagMCI_STATUS_PARMS MCI_STATUS_PARMS; -alias tagMCI_STATUS_PARMS* PMCI_STATUS_PARMS; -alias tagMCI_STATUS_PARMS* LPMCI_STATUS_PARMS; - -// #ifdef _WIN32 - -struct tagMCI_INFO_PARMSA { - DWORD_PTR dwCallback; - LPSTR lpstrReturn; - DWORD dwRetSize; -} -alias tagMCI_INFO_PARMSA MCI_INFO_PARMSA; -alias tagMCI_INFO_PARMSA* LPMCI_INFO_PARMSA; - -struct tagMCI_INFO_PARMSW { - DWORD_PTR dwCallback; - LPWSTR lpstrReturn; - DWORD dwRetSize; -} -alias tagMCI_INFO_PARMSW MCI_INFO_PARMSW; -alias tagMCI_INFO_PARMSW* LPMCI_INFO_PARMSW; - -// #ifdef UNICODE -alias MCI_INFO_PARMSW MCI_INFO_PARMS; -alias LPMCI_INFO_PARMSW LPMCI_INFO_PARMS; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -struct tagMCI_GETDEVCAPS_PARMS { - DWORD_PTR dwCallback; - DWORD dwReturn; - DWORD dwItem; -} -alias tagMCI_GETDEVCAPS_PARMS MCI_GETDEVCAPS_PARMS; -alias tagMCI_GETDEVCAPS_PARMS* PMCI_GETDEVCAPS_PARMS; -alias tagMCI_GETDEVCAPS_PARMS* LPMCI_GETDEVCAPS_PARMS; - -// #ifdef _WIN32 - -struct tagMCI_SYSINFO_PARMSA { - DWORD_PTR dwCallback; - LPSTR lpstrReturn; - DWORD dwRetSize; - DWORD dwNumber; - UINT wDeviceType; -} -alias tagMCI_SYSINFO_PARMSA MCI_SYSINFO_PARMSA; -alias tagMCI_SYSINFO_PARMSA* PMCI_SYSINFO_PARMSA; -alias tagMCI_SYSINFO_PARMSA* LPMCI_SYSINFO_PARMSA; - -struct tagMCI_SYSINFO_PARMSW { - DWORD_PTR dwCallback; - LPWSTR lpstrReturn; - DWORD dwRetSize; - DWORD dwNumber; - UINT wDeviceType; -} -alias tagMCI_SYSINFO_PARMSW MCI_SYSINFO_PARMSW; -alias tagMCI_SYSINFO_PARMSW* PMCI_SYSINFO_PARMSW; -alias tagMCI_SYSINFO_PARMSW* LPMCI_SYSINFO_PARMSW; - -// #ifdef UNICODE -alias MCI_SYSINFO_PARMSW MCI_SYSINFO_PARMS; -alias PMCI_SYSINFO_PARMSW PMCI_SYSINFO_PARMS; -alias LPMCI_SYSINFO_PARMSW LPMCI_SYSINFO_PARMS; -// #else -// ... -// #endif // UNICODE -// #else -// ... -// #endif - -struct tagMCI_SET_PARMS { - DWORD_PTR dwCallback; - DWORD dwTimeFormat; - DWORD dwAudio; -} -alias tagMCI_SET_PARMS MCI_SET_PARMS; -alias tagMCI_SET_PARMS* PMCI_SET_PARMS; -alias tagMCI_SET_PARMS* LPMCI_SET_PARMS; - -struct tagMCI_BREAK_PARMS { - DWORD_PTR dwCallback; -// #ifdef _WIN32 - int nVirtKey; - HWND hwndBreak; -// #else -// ... -// #endif -} -alias tagMCI_BREAK_PARMS MCI_BREAK_PARMS; -alias tagMCI_BREAK_PARMS* PMCI_BREAK_PARMS; -alias tagMCI_BREAK_PARMS* LPMCI_BREAK_PARMS; - -// #ifdef _WIN32 - -struct tagMCI_SAVE_PARMSA { - DWORD_PTR dwCallback; - LPCSTR lpfilename; -} -alias tagMCI_SAVE_PARMSA MCI_SAVE_PARMSA; -alias tagMCI_SAVE_PARMSA* PMCI_SAVE_PARMSA; -alias tagMCI_SAVE_PARMSA* LPMCI_SAVE_PARMSA; - -struct tagMCI_SAVE_PARMSW { - DWORD_PTR dwCallback; - LPCWSTR lpfilename; -} -alias tagMCI_SAVE_PARMSW MCI_SAVE_PARMSW; -alias tagMCI_SAVE_PARMSW* PMCI_SAVE_PARMSW; -alias tagMCI_SAVE_PARMSW* LPMCI_SAVE_PARMSW; - -// #ifdef UNICODE -alias MCI_SAVE_PARMSW MCI_SAVE_PARMS; -alias PMCI_SAVE_PARMSW PMCI_SAVE_PARMS; -alias LPMCI_SAVE_PARMSW LPMCI_SAVE_PARMS; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -// #ifdef _WIN32 - -struct tagMCI_LOAD_PARMSA { - DWORD_PTR dwCallback; - LPCSTR lpfilename; -} -alias tagMCI_LOAD_PARMSA MCI_LOAD_PARMSA; -alias tagMCI_LOAD_PARMSA* PMCI_LOAD_PARMSA; -alias tagMCI_LOAD_PARMSA* LPMCI_LOAD_PARMSA; - -struct tagMCI_LOAD_PARMSW { - DWORD_PTR dwCallback; - LPCWSTR lpfilename; -} -alias tagMCI_LOAD_PARMSW MCI_LOAD_PARMSW; -alias tagMCI_LOAD_PARMSW* PMCI_LOAD_PARMSW; -alias tagMCI_LOAD_PARMSW* LPMCI_LOAD_PARMSW; - -// #ifdef UNICODE -alias MCI_LOAD_PARMSW MCI_LOAD_PARMS; -alias PMCI_LOAD_PARMSW PMCI_LOAD_PARMS; -alias LPMCI_LOAD_PARMSW LPMCI_LOAD_PARMS; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -struct tagMCI_RECORD_PARMS { - DWORD_PTR dwCallback; - DWORD dwFrom; - DWORD dwTo; -} -alias tagMCI_RECORD_PARMS MCI_RECORD_PARMS; -alias tagMCI_RECORD_PARMS* LPMCI_RECORD_PARMS; - -enum : uint { MCI_VD_MODE_PARK = MCI_VD_OFFSET + 1 } - -enum : uint { MCI_VD_MEDIA_CLV = MCI_VD_OFFSET + 2 } -enum : uint { MCI_VD_MEDIA_CAV = MCI_VD_OFFSET + 3 } -enum : uint { MCI_VD_MEDIA_OTHER = MCI_VD_OFFSET + 4 } - -enum : uint { MCI_VD_FORMAT_TRACK = 0x4001 } - -enum : uint { MCI_VD_PLAY_REVERSE = 0x00010000 } -enum : uint { MCI_VD_PLAY_FAST = 0x00020000 } -enum : uint { MCI_VD_PLAY_SPEED = 0x00040000 } -enum : uint { MCI_VD_PLAY_SCAN = 0x00080000 } -enum : uint { MCI_VD_PLAY_SLOW = 0x00100000 } - -enum : uint { MCI_VD_SEEK_REVERSE = 0x00010000 } - -enum : uint { MCI_VD_STATUS_SPEED = 0x00004002 } -enum : uint { MCI_VD_STATUS_FORWARD = 0x00004003 } -enum : uint { MCI_VD_STATUS_MEDIA_TYPE = 0x00004004 } -enum : uint { MCI_VD_STATUS_SIDE = 0x00004005 } -enum : uint { MCI_VD_STATUS_DISC_SIZE = 0x00004006 } - -enum : uint { MCI_VD_GETDEVCAPS_CLV = 0x00010000 } -enum : uint { MCI_VD_GETDEVCAPS_CAV = 0x00020000 } - -enum : uint { MCI_VD_SPIN_UP = 0x00010000 } -enum : uint { MCI_VD_SPIN_DOWN = 0x00020000 } - -enum : uint { MCI_VD_GETDEVCAPS_CAN_REVERSE = 0x00004002 } -enum : uint { MCI_VD_GETDEVCAPS_FAST_RATE = 0x00004003 } -enum : uint { MCI_VD_GETDEVCAPS_SLOW_RATE = 0x00004004 } -enum : uint { MCI_VD_GETDEVCAPS_NORMAL_RATE = 0x00004005 } - -enum : uint { MCI_VD_STEP_FRAMES = 0x00010000 } -enum : uint { MCI_VD_STEP_REVERSE = 0x00020000 } - -enum : uint { MCI_VD_ESCAPE_STRING = 0x00000100 } - -struct tagMCI_VD_PLAY_PARMS { - DWORD_PTR dwCallback; - DWORD dwFrom; - DWORD dwTo; - DWORD dwSpeed; -} -alias tagMCI_VD_PLAY_PARMS MCI_VD_PLAY_PARMS; -alias tagMCI_VD_PLAY_PARMS* PMCI_VD_PLAY_PARMS; -alias tagMCI_VD_PLAY_PARMS* LPMCI_VD_PLAY_PARMS; - -struct tagMCI_VD_STEP_PARMS { - DWORD_PTR dwCallback; - DWORD dwFrames; -} -alias tagMCI_VD_STEP_PARMS MCI_VD_STEP_PARMS; -alias tagMCI_VD_STEP_PARMS* PMCI_VD_STEP_PARMS; -alias tagMCI_VD_STEP_PARMS* LPMCI_VD_STEP_PARMS; - -// #ifdef _WIN32 - -struct tagMCI_VD_ESCAPE_PARMSA { - DWORD_PTR dwCallback; - LPCSTR lpstrCommand; -} -alias tagMCI_VD_ESCAPE_PARMSA MCI_VD_ESCAPE_PARMSA; -alias tagMCI_VD_ESCAPE_PARMSA* PMCI_VD_ESCAPE_PARMSA; -alias tagMCI_VD_ESCAPE_PARMSA* LPMCI_VD_ESCAPE_PARMSA; - -struct tagMCI_VD_ESCAPE_PARMSW { - DWORD_PTR dwCallback; - LPCWSTR lpstrCommand; -} -alias tagMCI_VD_ESCAPE_PARMSW MCI_VD_ESCAPE_PARMSW; -alias tagMCI_VD_ESCAPE_PARMSW* PMCI_VD_ESCAPE_PARMSW; -alias tagMCI_VD_ESCAPE_PARMSW* LPMCI_VD_ESCAPE_PARMSW; - -// #ifdef UNICODE -alias MCI_VD_ESCAPE_PARMSW MCI_VD_ESCAPE_PARMS; -alias PMCI_VD_ESCAPE_PARMSW PMCI_VD_ESCAPE_PARMS; -alias LPMCI_VD_ESCAPE_PARMSW LPMCI_VD_ESCAPE_PARMS; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -enum : uint { MCI_CDA_STATUS_TYPE_TRACK = 0x00004001 } - -enum : uint { MCI_CDA_TRACK_AUDIO = MCI_CD_OFFSET + 0 } -enum : uint { MCI_CDA_TRACK_OTHER = MCI_CD_OFFSET + 1 } - -enum : uint { MCI_WAVE_PCM = MCI_WAVE_OFFSET + 0 } -enum : uint { MCI_WAVE_MAPPER = MCI_WAVE_OFFSET + 1 } - -enum : uint { MCI_WAVE_OPEN_BUFFER = 0x00010000 } - -enum : uint { MCI_WAVE_SET_FORMATTAG = 0x00010000 } -enum : uint { MCI_WAVE_SET_CHANNELS = 0x00020000 } -enum : uint { MCI_WAVE_SET_SAMPLESPERSEC = 0x00040000 } -enum : uint { MCI_WAVE_SET_AVGBYTESPERSEC = 0x00080000 } -enum : uint { MCI_WAVE_SET_BLOCKALIGN = 0x00100000 } -enum : uint { MCI_WAVE_SET_BITSPERSAMPLE = 0x00200000 } - -enum : uint { MCI_WAVE_INPUT = 0x00400000 } -enum : uint { MCI_WAVE_OUTPUT = 0x00800000 } - -enum : uint { MCI_WAVE_STATUS_FORMATTAG = 0x00004001 } -enum : uint { MCI_WAVE_STATUS_CHANNELS = 0x00004002 } -enum : uint { MCI_WAVE_STATUS_SAMPLESPERSEC = 0x00004003 } -enum : uint { MCI_WAVE_STATUS_AVGBYTESPERSEC = 0x00004004 } -enum : uint { MCI_WAVE_STATUS_BLOCKALIGN = 0x00004005 } -enum : uint { MCI_WAVE_STATUS_BITSPERSAMPLE = 0x00004006 } -enum : uint { MCI_WAVE_STATUS_LEVEL = 0x00004007 } - -enum : uint { MCI_WAVE_SET_ANYINPUT = 0x04000000 } -enum : uint { MCI_WAVE_SET_ANYOUTPUT = 0x08000000 } - -enum : uint { MCI_WAVE_GETDEVCAPS_INPUTS = 0x00004001 } -enum : uint { MCI_WAVE_GETDEVCAPS_OUTPUTS = 0x00004002 } - -// #ifdef _WIN32 - -struct tagMCI_WAVE_OPEN_PARMSA { - DWORD_PTR dwCallback; - MCIDEVICEID wDeviceID; - LPCSTR lpstrDeviceType; - LPCSTR lpstrElementName; - LPCSTR lpstrAlias; - DWORD dwBufferSeconds; -} -alias tagMCI_WAVE_OPEN_PARMSA MCI_WAVE_OPEN_PARMSA; -alias tagMCI_WAVE_OPEN_PARMSA* PMCI_WAVE_OPEN_PARMSA; -alias tagMCI_WAVE_OPEN_PARMSA* LPMCI_WAVE_OPEN_PARMSA; - -struct tagMCI_WAVE_OPEN_PARMSW { - DWORD_PTR dwCallback; - MCIDEVICEID wDeviceID; - LPCWSTR lpstrDeviceType; - LPCWSTR lpstrElementName; - LPCWSTR lpstrAlias; - DWORD dwBufferSeconds; -} -alias tagMCI_WAVE_OPEN_PARMSW MCI_WAVE_OPEN_PARMSW; -alias tagMCI_WAVE_OPEN_PARMSW* PMCI_WAVE_OPEN_PARMSW; -alias tagMCI_WAVE_OPEN_PARMSW* LPMCI_WAVE_OPEN_PARMSW; - -// #ifdef UNICODE -alias MCI_WAVE_OPEN_PARMSW MCI_WAVE_OPEN_PARMS; -alias PMCI_WAVE_OPEN_PARMSW PMCI_WAVE_OPEN_PARMS; -alias LPMCI_WAVE_OPEN_PARMSW LPMCI_WAVE_OPEN_PARMS; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -struct tagMCI_WAVE_DELETE_PARMS { - DWORD_PTR dwCallback; - DWORD dwFrom; - DWORD dwTo; -} -alias tagMCI_WAVE_DELETE_PARMS MCI_WAVE_DELETE_PARMS; -alias tagMCI_WAVE_DELETE_PARMS* PMCI_WAVE_DELETE_PARMS; -alias tagMCI_WAVE_DELETE_PARMS* LPMCI_WAVE_DELETE_PARMS; - -struct tagMCI_WAVE_SET_PARMS { - DWORD_PTR dwCallback; - DWORD dwTimeFormat; - DWORD dwAudio; -// #ifdef _WIN32 - UINT wInput; - UINT wOutput; -// #else -// ... -// #endif - WORD wFormatTag; - WORD wReserved2; - WORD nChannels; - WORD wReserved3; - DWORD nSamplesPerSec; - DWORD nAvgBytesPerSec; - WORD nBlockAlign; - WORD wReserved4; - WORD wBitsPerSample; - WORD wReserved5; -} -alias tagMCI_WAVE_SET_PARMS MCI_WAVE_SET_PARMS; -alias tagMCI_WAVE_SET_PARMS* PMCI_WAVE_SET_PARMS; -alias tagMCI_WAVE_SET_PARMS* LPMCI_WAVE_SET_PARMS; - -enum : uint { MCI_SEQ_DIV_PPQN = 0 + MCI_SEQ_OFFSET } -enum : uint { MCI_SEQ_DIV_SMPTE_24 = 1 + MCI_SEQ_OFFSET } -enum : uint { MCI_SEQ_DIV_SMPTE_25 = 2 + MCI_SEQ_OFFSET } -enum : uint { MCI_SEQ_DIV_SMPTE_30DROP = 3 + MCI_SEQ_OFFSET } -enum : uint { MCI_SEQ_DIV_SMPTE_30 = 4 + MCI_SEQ_OFFSET } - -enum : uint { MCI_SEQ_FORMAT_SONGPTR = 0x4001 } -enum : uint { MCI_SEQ_FILE = 0x4002 } -enum : uint { MCI_SEQ_MIDI = 0x4003 } -enum : uint { MCI_SEQ_SMPTE = 0x4004 } -enum : uint { MCI_SEQ_NONE = 65533 } -enum : uint { MCI_SEQ_MAPPER = 65535 } - -enum : uint { MCI_SEQ_STATUS_TEMPO = 0x00004002 } -enum : uint { MCI_SEQ_STATUS_PORT = 0x00004003 } -enum : uint { MCI_SEQ_STATUS_SLAVE = 0x00004007 } -enum : uint { MCI_SEQ_STATUS_MASTER = 0x00004008 } -enum : uint { MCI_SEQ_STATUS_OFFSET = 0x00004009 } -enum : uint { MCI_SEQ_STATUS_DIVTYPE = 0x0000400A } -enum : uint { MCI_SEQ_STATUS_NAME = 0x0000400B } -enum : uint { MCI_SEQ_STATUS_COPYRIGHT = 0x0000400C } - -enum : uint { MCI_SEQ_SET_TEMPO = 0x00010000 } -enum : uint { MCI_SEQ_SET_PORT = 0x00020000 } -enum : uint { MCI_SEQ_SET_SLAVE = 0x00040000 } -enum : uint { MCI_SEQ_SET_MASTER = 0x00080000 } -enum : uint { MCI_SEQ_SET_OFFSET = 0x01000000 } - -struct tagMCI_SEQ_SET_PARMS { - DWORD_PTR dwCallback; - DWORD dwTimeFormat; - DWORD dwAudio; - DWORD dwTempo; - DWORD dwPort; - DWORD dwSlave; - DWORD dwMaster; - DWORD dwOffset; -} -alias tagMCI_SEQ_SET_PARMS MCI_SEQ_SET_PARMS; -alias tagMCI_SEQ_SET_PARMS* PMCI_SEQ_SET_PARMS; -alias tagMCI_SEQ_SET_PARMS* LPMCI_SEQ_SET_PARMS; - -enum : uint { MCI_ANIM_OPEN_WS = 0x00010000 } -enum : uint { MCI_ANIM_OPEN_PARENT = 0x00020000 } -enum : uint { MCI_ANIM_OPEN_NOSTATIC = 0x00040000 } - -enum : uint { MCI_ANIM_PLAY_SPEED = 0x00010000 } -enum : uint { MCI_ANIM_PLAY_REVERSE = 0x00020000 } -enum : uint { MCI_ANIM_PLAY_FAST = 0x00040000 } -enum : uint { MCI_ANIM_PLAY_SLOW = 0x00080000 } -enum : uint { MCI_ANIM_PLAY_SCAN = 0x00100000 } - -enum : uint { MCI_ANIM_STEP_REVERSE = 0x00010000 } -enum : uint { MCI_ANIM_STEP_FRAMES = 0x00020000 } - -enum : uint { MCI_ANIM_STATUS_SPEED = 0x00004001 } -enum : uint { MCI_ANIM_STATUS_FORWARD = 0x00004002 } -enum : uint { MCI_ANIM_STATUS_HWND = 0x00004003 } -enum : uint { MCI_ANIM_STATUS_HPAL = 0x00004004 } -enum : uint { MCI_ANIM_STATUS_STRETCH = 0x00004005 } - -enum : uint { MCI_ANIM_INFO_TEXT = 0x00010000 } - -enum : uint { MCI_ANIM_GETDEVCAPS_CAN_REVERSE = 0x00004001 } -enum : uint { MCI_ANIM_GETDEVCAPS_FAST_RATE = 0x00004002 } -enum : uint { MCI_ANIM_GETDEVCAPS_SLOW_RATE = 0x00004003 } -enum : uint { MCI_ANIM_GETDEVCAPS_NORMAL_RATE = 0x00004004 } -enum : uint { MCI_ANIM_GETDEVCAPS_PALETTES = 0x00004006 } -enum : uint { MCI_ANIM_GETDEVCAPS_CAN_STRETCH = 0x00004007 } -enum : uint { MCI_ANIM_GETDEVCAPS_MAX_WINDOWS = 0x00004008 } - -enum : uint { MCI_ANIM_REALIZE_NORM = 0x00010000 } -enum : uint { MCI_ANIM_REALIZE_BKGD = 0x00020000 } - -enum : uint { MCI_ANIM_WINDOW_HWND = 0x00010000 } -enum : uint { MCI_ANIM_WINDOW_STATE = 0x00040000 } -enum : uint { MCI_ANIM_WINDOW_TEXT = 0x00080000 } -enum : uint { MCI_ANIM_WINDOW_ENABLE_STRETCH = 0x00100000 } -enum : uint { MCI_ANIM_WINDOW_DISABLE_STRETCH = 0x00200000 } - -enum : uint { MCI_ANIM_WINDOW_DEFAULT = 0x00000000 } - -enum : uint { MCI_ANIM_RECT = 0x00010000 } -enum : uint { MCI_ANIM_PUT_SOURCE = 0x00020000 } -enum : uint { MCI_ANIM_PUT_DESTINATION = 0x00040000 } - -enum : uint { MCI_ANIM_WHERE_SOURCE = 0x00020000 } -enum : uint { MCI_ANIM_WHERE_DESTINATION = 0x00040000 } - -enum : uint { MCI_ANIM_UPDATE_HDC = 0x00020000 } - -// #ifdef _WIN32 - -struct tagMCI_ANIM_OPEN_PARMSA { - DWORD_PTR dwCallback; - MCIDEVICEID wDeviceID; - LPCSTR lpstrDeviceType; - LPCSTR lpstrElementName; - LPCSTR lpstrAlias; - DWORD dwStyle; - HWND hWndParent; -} -alias tagMCI_ANIM_OPEN_PARMSA MCI_ANIM_OPEN_PARMSA; -alias tagMCI_ANIM_OPEN_PARMSA* PMCI_ANIM_OPEN_PARMSA; -alias tagMCI_ANIM_OPEN_PARMSA* LPMCI_ANIM_OPEN_PARMSA; - -struct tagMCI_ANIM_OPEN_PARMSW { - DWORD_PTR dwCallback; - MCIDEVICEID wDeviceID; - LPCWSTR lpstrDeviceType; - LPCWSTR lpstrElementName; - LPCWSTR lpstrAlias; - DWORD dwStyle; - HWND hWndParent; -} -alias tagMCI_ANIM_OPEN_PARMSW MCI_ANIM_OPEN_PARMSW; -alias tagMCI_ANIM_OPEN_PARMSW* PMCI_ANIM_OPEN_PARMSW; -alias tagMCI_ANIM_OPEN_PARMSW* LPMCI_ANIM_OPEN_PARMSW; - -// #ifdef UNICODE -alias MCI_ANIM_OPEN_PARMSW MCI_ANIM_OPEN_PARMS; -alias PMCI_ANIM_OPEN_PARMSW PMCI_ANIM_OPEN_PARMS; -alias LPMCI_ANIM_OPEN_PARMSW LPMCI_ANIM_OPEN_PARMS; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -struct tagMCI_ANIM_PLAY_PARMS { - DWORD_PTR dwCallback; - DWORD dwFrom; - DWORD dwTo; - DWORD dwSpeed; -} -alias tagMCI_ANIM_PLAY_PARMS MCI_ANIM_PLAY_PARMS; -alias tagMCI_ANIM_PLAY_PARMS* PMCI_ANIM_PLAY_PARMS; -alias tagMCI_ANIM_PLAY_PARMS* LPMCI_ANIM_PLAY_PARMS; - -struct tagMCI_ANIM_STEP_PARMS { - DWORD_PTR dwCallback; - DWORD dwFrames; -} -alias tagMCI_ANIM_STEP_PARMS MCI_ANIM_STEP_PARMS; -alias tagMCI_ANIM_STEP_PARMS* PMCI_ANIM_STEP_PARMS; -alias tagMCI_ANIM_STEP_PARMS* LPMCI_ANIM_STEP_PARMS; - -// #ifdef _WIN32 - -struct tagMCI_ANIM_WINDOW_PARMSA { - DWORD_PTR dwCallback; - HWND hWnd; - UINT nCmdShow; - LPCSTR lpstrText; -} -alias tagMCI_ANIM_WINDOW_PARMSA MCI_ANIM_WINDOW_PARMSA; -alias tagMCI_ANIM_WINDOW_PARMSA* PMCI_ANIM_WINDOW_PARMSA; -alias tagMCI_ANIM_WINDOW_PARMSA* LPMCI_ANIM_WINDOW_PARMSA; - -struct tagMCI_ANIM_WINDOW_PARMSW { - DWORD_PTR dwCallback; - HWND hWnd; - UINT nCmdShow; - LPCWSTR lpstrText; -} -alias tagMCI_ANIM_WINDOW_PARMSW MCI_ANIM_WINDOW_PARMSW; -alias tagMCI_ANIM_WINDOW_PARMSW* PMCI_ANIM_WINDOW_PARMSW; -alias tagMCI_ANIM_WINDOW_PARMSW* LPMCI_ANIM_WINDOW_PARMSW; - -// #ifdef UNICODE -alias MCI_ANIM_WINDOW_PARMSW MCI_ANIM_WINDOW_PARMS; -alias PMCI_ANIM_WINDOW_PARMSW PMCI_ANIM_WINDOW_PARMS; -alias LPMCI_ANIM_WINDOW_PARMSW LPMCI_ANIM_WINDOW_PARMS; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -struct tagMCI_ANIM_RECT_PARMS { - DWORD_PTR dwCallback; -// #ifdef MCI_USE_OFFEXT -// ... -// #else /* ifdef MCI_USE_OFFEXT */ - RECT rc; -// #endif /* ifdef MCI_USE_OFFEXT */ -} -alias tagMCI_ANIM_RECT_PARMS MCI_ANIM_RECT_PARMS; - -alias MCI_ANIM_RECT_PARMS* PMCI_ANIM_RECT_PARMS; -alias MCI_ANIM_RECT_PARMS* LPMCI_ANIM_RECT_PARMS; - -struct tagMCI_ANIM_UPDATE_PARMS { - DWORD_PTR dwCallback; - RECT rc; - HDC hDC; -} -alias tagMCI_ANIM_UPDATE_PARMS MCI_ANIM_UPDATE_PARMS; -alias tagMCI_ANIM_UPDATE_PARMS* PMCI_ANIM_UPDATE_PARMS; -alias tagMCI_ANIM_UPDATE_PARMS* LPMCI_ANIM_UPDATE_PARMS; - -enum : uint { MCI_OVLY_OPEN_WS = 0x00010000 } -enum : uint { MCI_OVLY_OPEN_PARENT = 0x00020000 } - -enum : uint { MCI_OVLY_STATUS_HWND = 0x00004001 } -enum : uint { MCI_OVLY_STATUS_STRETCH = 0x00004002 } - -enum : uint { MCI_OVLY_INFO_TEXT = 0x00010000 } - -enum : uint { MCI_OVLY_GETDEVCAPS_CAN_STRETCH = 0x00004001 } -enum : uint { MCI_OVLY_GETDEVCAPS_CAN_FREEZE = 0x00004002 } -enum : uint { MCI_OVLY_GETDEVCAPS_MAX_WINDOWS = 0x00004003 } - -enum : uint { MCI_OVLY_WINDOW_HWND = 0x00010000 } -enum : uint { MCI_OVLY_WINDOW_STATE = 0x00040000 } -enum : uint { MCI_OVLY_WINDOW_TEXT = 0x00080000 } -enum : uint { MCI_OVLY_WINDOW_ENABLE_STRETCH = 0x00100000 } -enum : uint { MCI_OVLY_WINDOW_DISABLE_STRETCH = 0x00200000 } - -enum : uint { MCI_OVLY_WINDOW_DEFAULT = 0x00000000 } - -enum : uint { MCI_OVLY_RECT = 0x00010000 } -enum : uint { MCI_OVLY_PUT_SOURCE = 0x00020000 } -enum : uint { MCI_OVLY_PUT_DESTINATION = 0x00040000 } -enum : uint { MCI_OVLY_PUT_FRAME = 0x00080000 } -enum : uint { MCI_OVLY_PUT_VIDEO = 0x00100000 } - -enum : uint { MCI_OVLY_WHERE_SOURCE = 0x00020000 } -enum : uint { MCI_OVLY_WHERE_DESTINATION = 0x00040000 } -enum : uint { MCI_OVLY_WHERE_FRAME = 0x00080000 } -enum : uint { MCI_OVLY_WHERE_VIDEO = 0x00100000 } - -// #ifdef _WIN32 - -struct tagMCI_OVLY_OPEN_PARMSA { - DWORD_PTR dwCallback; - MCIDEVICEID wDeviceID; - LPCSTR lpstrDeviceType; - LPCSTR lpstrElementName; - LPCSTR lpstrAlias; - DWORD dwStyle; - HWND hWndParent; -} -alias tagMCI_OVLY_OPEN_PARMSA MCI_OVLY_OPEN_PARMSA; -alias tagMCI_OVLY_OPEN_PARMSA* PMCI_OVLY_OPEN_PARMSA; -alias tagMCI_OVLY_OPEN_PARMSA* LPMCI_OVLY_OPEN_PARMSA; - -struct tagMCI_OVLY_OPEN_PARMSW { - DWORD_PTR dwCallback; - MCIDEVICEID wDeviceID; - LPCWSTR lpstrDeviceType; - LPCWSTR lpstrElementName; - LPCWSTR lpstrAlias; - DWORD dwStyle; - HWND hWndParent; -} -alias tagMCI_OVLY_OPEN_PARMSW MCI_OVLY_OPEN_PARMSW; -alias tagMCI_OVLY_OPEN_PARMSW* PMCI_OVLY_OPEN_PARMSW; -alias tagMCI_OVLY_OPEN_PARMSW* LPMCI_OVLY_OPEN_PARMSW; - -// #ifdef UNICODE -alias MCI_OVLY_OPEN_PARMSW MCI_OVLY_OPEN_PARMS; -alias PMCI_OVLY_OPEN_PARMSW PMCI_OVLY_OPEN_PARMS; -alias LPMCI_OVLY_OPEN_PARMSW LPMCI_OVLY_OPEN_PARMS; -// #else -// ... -// #endif // UNICODE - -// #else -// ... -// #endif - -// #ifdef _WIN32 - -struct tagMCI_OVLY_WINDOW_PARMSA { - DWORD_PTR dwCallback; - HWND hWnd; - UINT nCmdShow; - LPCSTR lpstrText; -} -alias tagMCI_OVLY_WINDOW_PARMSA MCI_OVLY_WINDOW_PARMSA; -alias tagMCI_OVLY_WINDOW_PARMSA* PMCI_OVLY_WINDOW_PARMSA; -alias tagMCI_OVLY_WINDOW_PARMSA* LPMCI_OVLY_WINDOW_PARMSA; - -struct tagMCI_OVLY_WINDOW_PARMSW { - DWORD_PTR dwCallback; - HWND hWnd; - UINT nCmdShow; - LPCWSTR lpstrText; -} -alias tagMCI_OVLY_WINDOW_PARMSW MCI_OVLY_WINDOW_PARMSW; -alias tagMCI_OVLY_WINDOW_PARMSW* PMCI_OVLY_WINDOW_PARMSW; -alias tagMCI_OVLY_WINDOW_PARMSW* LPMCI_OVLY_WINDOW_PARMSW; - -// #ifdef UNICODE -alias MCI_OVLY_WINDOW_PARMSW MCI_OVLY_WINDOW_PARMS; -alias PMCI_OVLY_WINDOW_PARMSW PMCI_OVLY_WINDOW_PARMS; -alias LPMCI_OVLY_WINDOW_PARMSW LPMCI_OVLY_WINDOW_PARMS; -// #else -// ... -// #endif // UNICODE -// #else -// ... -// #endif - -struct tagMCI_OVLY_RECT_PARMS { - DWORD_PTR dwCallback; -// #ifdef MCI_USE_OFFEXT -// ... -// #else /* ifdef MCI_USE_OFFEXT */ - RECT rc; -// #endif /* ifdef MCI_USE_OFFEXT */ -} -alias tagMCI_OVLY_RECT_PARMS MCI_OVLY_RECT_PARMS; -alias tagMCI_OVLY_RECT_PARMS* PMCI_OVLY_RECT_PARMS; -alias tagMCI_OVLY_RECT_PARMS* LPMCI_OVLY_RECT_PARMS; - -// #ifdef _WIN32 - -struct tagMCI_OVLY_SAVE_PARMSA { - DWORD_PTR dwCallback; - LPCSTR lpfilename; - RECT rc; -} -alias tagMCI_OVLY_SAVE_PARMSA MCI_OVLY_SAVE_PARMSA; -alias tagMCI_OVLY_SAVE_PARMSA* PMCI_OVLY_SAVE_PARMSA; -alias tagMCI_OVLY_SAVE_PARMSA* LPMCI_OVLY_SAVE_PARMSA; - -struct tagMCI_OVLY_SAVE_PARMSW { - DWORD_PTR dwCallback; - LPCWSTR lpfilename; - RECT rc; -} -alias tagMCI_OVLY_SAVE_PARMSW MCI_OVLY_SAVE_PARMSW; -alias tagMCI_OVLY_SAVE_PARMSW* PMCI_OVLY_SAVE_PARMSW; -alias tagMCI_OVLY_SAVE_PARMSW* LPMCI_OVLY_SAVE_PARMSW; - -// #ifdef UNICODE -alias MCI_OVLY_SAVE_PARMSW MCI_OVLY_SAVE_PARMS; -alias PMCI_OVLY_SAVE_PARMSW PMCI_OVLY_SAVE_PARMS; -alias LPMCI_OVLY_SAVE_PARMSW LPMCI_OVLY_SAVE_PARMS; -// #else -// ... -// #endif // UNICODE -// #else -// ... -// #endif - -// #ifdef _WIN32 - -struct tagMCI_OVLY_LOAD_PARMSA { - DWORD_PTR dwCallback; - LPCSTR lpfilename; - RECT rc; -} -alias tagMCI_OVLY_LOAD_PARMSA MCI_OVLY_LOAD_PARMSA; -alias tagMCI_OVLY_LOAD_PARMSA* PMCI_OVLY_LOAD_PARMSA; -alias tagMCI_OVLY_LOAD_PARMSA* LPMCI_OVLY_LOAD_PARMSA; - -struct tagMCI_OVLY_LOAD_PARMSW { - DWORD_PTR dwCallback; - LPCWSTR lpfilename; - RECT rc; -} -alias tagMCI_OVLY_LOAD_PARMSW MCI_OVLY_LOAD_PARMSW; -alias tagMCI_OVLY_LOAD_PARMSW* PMCI_OVLY_LOAD_PARMSW; -alias tagMCI_OVLY_LOAD_PARMSW* LPMCI_OVLY_LOAD_PARMSW; - -// #ifdef UNICODE -alias MCI_OVLY_LOAD_PARMSW MCI_OVLY_LOAD_PARMS; -alias PMCI_OVLY_LOAD_PARMSW PMCI_OVLY_LOAD_PARMS; -alias LPMCI_OVLY_LOAD_PARMSW LPMCI_OVLY_LOAD_PARMS; -// #else -// ... -// #endif // UNICODE -// #else -// ... -// #endif - -// #endif /* ifndef MMNOMCI */ - -// #ifndef NEWTRANSPARENT -enum : uint { NEWTRANSPARENT = 3 } - -enum : uint { QUERYROPSUPPORT = 40 } -// #endif /* ifndef NEWTRANSPARENT */ - -enum : uint { SELECTDIB = 41 } -// #define DIBINDEX(n) MAKELONG((n),0x10FF) - -// #ifndef SC_SCREENSAVE - -enum : uint { SC_SCREENSAVE = 0xF140 } - -// #endif /* ifndef SC_SCREENSAVE */ - -// #ifdef __cplusplus -// } -// #endif /* __cplusplus */ - -// #ifdef _WIN32 -align: -// #else -// #ifndef RC_INVOKED -// #... -// #endif -// #endif - -// #endif /* _INC_MMSYSTEM */ - +/***********************************************************************\ +* mmsystem.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.mmsystem; +pragma(lib, "winmm.lib"); + +/* The #defines MAKEFOURCC, mmioFOURCC, sndAlias are used to define + * compile-time constants, so they are implemented as templates. + */ + +private import win32.w32api, win32.windef, win32.winver; + +align(1): + +const MAXPNAMELEN = 32; +const MAXERRORLENGTH = 256; +const MAX_JOYSTICKOEMVXDNAME = 260; + +const TIME_MS = 1; +const TIME_SAMPLES = 2; +const TIME_BYTES = 4; +const TIME_SMPTE = 8; +const TIME_MIDI = 16; +const TIME_TICKS = 32; + +template MAKEFOURCC(char c0, char c1, char c2, char c3) +{ + const DWORD MAKEFOURCC = c0 | (c1<<8) | (c2<<16) | (cast(DWORD)c3 <<24); +} + +template mmioFOURCC(char c0, char c1, char c2, char c3) +{ + const DWORD mmioFOURCC = c0 | (c1<<8) | (c2<<16) | (cast(DWORD)c3 <<24); +} + +enum { + MM_JOY1MOVE = 0x3A0, + MM_JOY2MOVE, + MM_JOY1ZMOVE, + MM_JOY2ZMOVE, // = 0x3A3 + MM_JOY1BUTTONDOWN = 0x3B5, + MM_JOY2BUTTONDOWN, + MM_JOY1BUTTONUP, + MM_JOY2BUTTONUP, + MM_MCINOTIFY, // = 0x3B9 + MM_WOM_OPEN = 0x3BB, + MM_WOM_CLOSE, + MM_WOM_DONE, + MM_WIM_OPEN, + MM_WIM_CLOSE, + MM_WIM_DATA, + MM_MIM_OPEN, + MM_MIM_CLOSE, + MM_MIM_DATA, + MM_MIM_LONGDATA, + MM_MIM_ERROR, + MM_MIM_LONGERROR, + MM_MOM_OPEN, + MM_MOM_CLOSE, + MM_MOM_DONE, // = 0x3C9 + MM_DRVM_OPEN = 0x3D0, + MM_DRVM_CLOSE, + MM_DRVM_DATA, + MM_DRVM_ERROR, + MM_STREAM_OPEN, + MM_STREAM_CLOSE, + MM_STREAM_DONE, + MM_STREAM_ERROR, // = 0x3D7 + MM_MOM_POSITIONCB = 0x3CA, + MM_MCISIGNAL, + MM_MIM_MOREDATA, // = 0x3CC + MM_MIXM_LINE_CHANGE = 0x3D0, + MM_MIXM_CONTROL_CHANGE = 0x3D1 +} + +const MMSYSERR_BASE = 0; +const WAVERR_BASE = 32; +const MIDIERR_BASE = 64; +const TIMERR_BASE = 96; +const JOYERR_BASE = 160; +const MCIERR_BASE = 256; +const MIXERR_BASE = 1024; +const MCI_STRING_OFFSET = 512; +const MCI_VD_OFFSET = 1024; +const MCI_CD_OFFSET = 1088; +const MCI_WAVE_OFFSET = 1152; +const MCI_SEQ_OFFSET = 1216; + +enum { + MMSYSERR_NOERROR = 0, + MMSYSERR_ERROR = MMSYSERR_BASE+1, + MMSYSERR_BADDEVICEID, + MMSYSERR_NOTENABLED, + MMSYSERR_ALLOCATED, + MMSYSERR_INVALHANDLE, + MMSYSERR_NODRIVER, + MMSYSERR_NOMEM, + MMSYSERR_NOTSUPPORTED, + MMSYSERR_BADERRNUM, + MMSYSERR_INVALFLAG, + MMSYSERR_INVALPARAM, + MMSYSERR_HANDLEBUSY, + MMSYSERR_INVALIDALIAS, + MMSYSERR_BADDB, + MMSYSERR_KEYNOTFOUND, + MMSYSERR_READERROR, + MMSYSERR_WRITEERROR, + MMSYSERR_DELETEERROR, + MMSYSERR_VALNOTFOUND, + MMSYSERR_NODRIVERCB, // = MMSYSERR_BASE+20 + MMSYSERR_LASTERROR = MMSYSERR_NODRIVERCB +} + +enum { + DRV_LOAD = 1, + DRV_ENABLE, + DRV_OPEN, + DRV_CLOSE, + DRV_DISABLE, + DRV_FREE, + DRV_CONFIGURE, + DRV_QUERYCONFIGURE, + DRV_INSTALL, + DRV_REMOVE, + DRV_EXITSESSION, + DRV_POWER +} + +const DRV_RESERVED = 0x800; +const DRV_USER = 0x4000; + +const DRVCNF_CANCEL = 0; +const DRVCNF_OK = 1; +const DRVCNF_RESTART = 2; +const DRV_CANCEL = DRVCNF_CANCEL; +const DRV_OK = DRVCNF_OK; +const DRV_RESTART = DRVCNF_RESTART; +const DRV_MCI_FIRST = DRV_RESERVED; +const DRV_MCI_LAST = DRV_RESERVED + 0xFFF; + +const CALLBACK_TYPEMASK = 0x70000; +const CALLBACK_NULL = 0; +const CALLBACK_WINDOW = 0x10000; +const CALLBACK_TASK = 0x20000; +const CALLBACK_FUNCTION = 0x30000; +const CALLBACK_THREAD = CALLBACK_TASK; +const CALLBACK_EVENT = 0x50000; + +const SND_SYNC=0; +const SND_ASYNC=1; +const SND_NODEFAULT=2; +const SND_MEMORY=4; +const SND_LOOP=8; +const SND_NOSTOP=16; +const SND_NOWAIT=0x2000; +const SND_ALIAS=0x10000; +const SND_ALIAS_ID=0x110000; +const SND_FILENAME=0x20000; +const SND_RESOURCE=0x40004; +const SND_PURGE=0x40; +const SND_APPLICATION=0x80; +const SND_ALIAS_START=0; + +template sndAlias(char c0, char c1) +{ + const DWORD sndAlias = SND_ALIAS_START + c0 | (c1<<8); +} + +const SND_ALIAS_SYSTEMASTERISK = sndAlias!('S','*'); +const SND_ALIAS_SYSTEMQUESTION = sndAlias!('S','?'); +const SND_ALIAS_SYSTEMHAND = sndAlias!('S','H'); +const SND_ALIAS_SYSTEMEXIT = sndAlias!('S','E'); +const SND_ALIAS_SYSTEMSTART = sndAlias!('S','S'); +const SND_ALIAS_SYSTEMWELCOME = sndAlias!('S','W'); +const SND_ALIAS_SYSTEMEXCLAMATION = sndAlias!('S','!'); +const SND_ALIAS_SYSTEMDEFAULT = sndAlias!('S','D'); + +enum { + WAVERR_BADFORMAT = (WAVERR_BASE + 0), + WAVERR_STILLPLAYING, + WAVERR_UNPREPARED, + WAVERR_SYNC, // = WAVERR_BASE + 3; + WAVERR_LASTERROR = WAVERR_SYNC +} + +const WOM_OPEN = MM_WOM_OPEN; +const WOM_CLOSE = MM_WOM_CLOSE; +const WOM_DONE = MM_WOM_DONE; +const WIM_OPEN = MM_WIM_OPEN; +const WIM_CLOSE = MM_WIM_CLOSE; +const WIM_DATA = MM_WIM_DATA; + +const UINT WAVE_MAPPER= -1; // FIXME: This doesn't make sense! +const WAVE_FORMAT_QUERY=1; +const WAVE_ALLOWSYNC=2; +const WAVE_MAPPED=4; +const WAVE_FORMAT_DIRECT=8; +const WAVE_FORMAT_DIRECT_QUERY=(WAVE_FORMAT_QUERY|WAVE_FORMAT_DIRECT); +const WHDR_DONE=1; +const WHDR_PREPARED=2; +const WHDR_BEGINLOOP=4; +const WHDR_ENDLOOP=8; +const WHDR_INQUEUE=16; + +const WAVECAPS_PITCH=1; +const WAVECAPS_PLAYBACKRATE=2; +const WAVECAPS_VOLUME=4; +const WAVECAPS_LRVOLUME=8; +const WAVECAPS_SYNC=16; +const WAVECAPS_SAMPLEACCURATE=32; +const WAVECAPS_DIRECTSOUND=64; + +const WAVE_INVALIDFORMAT=0; +const WAVE_FORMAT_1M08=1; +const WAVE_FORMAT_1S08=2; +const WAVE_FORMAT_1M16=4; +const WAVE_FORMAT_1S16=8; +const WAVE_FORMAT_2M08=16; +const WAVE_FORMAT_2S08=32; +const WAVE_FORMAT_2M16=64; +const WAVE_FORMAT_2S16=128; +const WAVE_FORMAT_4M08=256; +const WAVE_FORMAT_4S08=512; +const WAVE_FORMAT_4M16=1024; +const WAVE_FORMAT_4S16=2048; +const WAVE_FORMAT_PCM=1; + +enum { + MIDIERR_UNPREPARED = MIDIERR_BASE, + MIDIERR_STILLPLAYING, + MIDIERR_NOMAP, + MIDIERR_NOTREADY, + MIDIERR_NODEVICE, + MIDIERR_INVALIDSETUP, + MIDIERR_BADOPENMODE, + MIDIERR_DONT_CONTINUE, // = MIDIERR_BASE+7 + MIDIERR_LASTERROR = MIDIERR_DONT_CONTINUE +} + +const MIDIPATCHSIZE=128; + +const MIM_OPEN=MM_MIM_OPEN; +const MIM_CLOSE=MM_MIM_CLOSE; +const MIM_DATA=MM_MIM_DATA; +const MIM_LONGDATA=MM_MIM_LONGDATA; +const MIM_ERROR=MM_MIM_ERROR; +const MIM_LONGERROR=MM_MIM_LONGERROR; +const MOM_OPEN=MM_MOM_OPEN; +const MOM_CLOSE=MM_MOM_CLOSE; +const MOM_DONE=MM_MOM_DONE; +const MIM_MOREDATA=MM_MIM_MOREDATA; +const MOM_POSITIONCB=MM_MOM_POSITIONCB; + +const UINT MIDIMAPPER= -1; // FIXME: uint is nonsense for this! +const UINT MIDI_MAPPER= -1; // FIXME: uint is nonsense for this! +const MIDI_IO_STATUS=32; +const MIDI_CACHE_ALL=1; +const MIDI_CACHE_BESTFIT=2; +const MIDI_CACHE_QUERY=3; +const MIDI_UNCACHE=4; +const MOD_MIDIPORT=1; +const MOD_SYNTH=2; +const MOD_SQSYNTH=3; +const MOD_FMSYNTH=4; +const MOD_MAPPER=5; +const MIDICAPS_VOLUME=1; +const MIDICAPS_LRVOLUME=2; +const MIDICAPS_CACHE=4; +const MIDICAPS_STREAM=8; +const MHDR_DONE=1; +const MHDR_PREPARED=2; +const MHDR_INQUEUE=4; +const MHDR_ISSTRM=8; +const MEVT_F_SHORT=0; +const MEVT_F_LONG=0x80000000; +const MEVT_F_CALLBACK=0x40000000; + +BYTE MEVT_EVENTTYPE(DWORD x) { return cast(BYTE)((x>>24) &0xFF); } +DWORD MEVT_EVENTPARM(DWORD x) { return x & 0xFFFFFF; } + +const MEVT_SHORTMSG=0; +const MEVT_TEMPO=1; +const MEVT_NOP=2; + +const BYTE MEVT_LONGMSG = 0x80; +const BYTE MEVT_COMMENT = 0x82; +const BYTE MEVT_VERSION = 0x84; + +const MIDISTRM_ERROR = -2; + +const MIDIPROP_SET = 0x80000000; +const MIDIPROP_GET = 0x40000000; +const MIDIPROP_TIMEDIV = 1; +const MIDIPROP_TEMPO = 2; + +const UINT AUX_MAPPER = -1; + +const AUXCAPS_CDAUDIO=1; +const AUXCAPS_AUXIN=2; +const AUXCAPS_VOLUME=1; +const AUXCAPS_LRVOLUME=2; +const MIXER_SHORT_NAME_CHARS=16; +const MIXER_LONG_NAME_CHARS=64; +const MIXERR_INVALLINE=MIXERR_BASE; +const MIXERR_INVALCONTROL=(MIXERR_BASE+1); +const MIXERR_INVALVALUE=(MIXERR_BASE+2); +const MIXERR_LASTERROR=(MIXERR_BASE+2); + +const MIXER_OBJECTF_HANDLE=0x80000000; +const MIXER_OBJECTF_MIXER=0; +const MIXER_OBJECTF_HMIXER=(MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIXER); +const MIXER_OBJECTF_WAVEOUT=0x10000000; +const MIXER_OBJECTF_HWAVEOUT=(MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEOUT); +const MIXER_OBJECTF_WAVEIN=0x20000000; +const MIXER_OBJECTF_HWAVEIN=(MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEIN); +const MIXER_OBJECTF_MIDIOUT=0x30000000; +const MIXER_OBJECTF_HMIDIOUT=(MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIOUT); +const MIXER_OBJECTF_MIDIIN=0x40000000; +const MIXER_OBJECTF_HMIDIIN=(MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIIN); +const MIXER_OBJECTF_AUX=0x50000000; + +const MIXERLINE_LINEF_ACTIVE=1; +const MIXERLINE_LINEF_DISCONNECTED=0x8000; +const MIXERLINE_LINEF_SOURCE=0x80000000; + +const MIXERLINE_COMPONENTTYPE_DST_FIRST=0; +const MIXERLINE_COMPONENTTYPE_DST_UNDEFINED=MIXERLINE_COMPONENTTYPE_DST_FIRST; +const MIXERLINE_COMPONENTTYPE_DST_DIGITAL=(MIXERLINE_COMPONENTTYPE_DST_FIRST+1); +const MIXERLINE_COMPONENTTYPE_DST_LINE=(MIXERLINE_COMPONENTTYPE_DST_FIRST+2); +const MIXERLINE_COMPONENTTYPE_DST_MONITOR=(MIXERLINE_COMPONENTTYPE_DST_FIRST+3); +const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS=(MIXERLINE_COMPONENTTYPE_DST_FIRST+4); +const MIXERLINE_COMPONENTTYPE_DST_HEADPHONES=(MIXERLINE_COMPONENTTYPE_DST_FIRST+5); +const MIXERLINE_COMPONENTTYPE_DST_TELEPHONE=(MIXERLINE_COMPONENTTYPE_DST_FIRST+6); +const MIXERLINE_COMPONENTTYPE_DST_WAVEIN=(MIXERLINE_COMPONENTTYPE_DST_FIRST+7); +const MIXERLINE_COMPONENTTYPE_DST_VOICEIN=(MIXERLINE_COMPONENTTYPE_DST_FIRST+8); +const MIXERLINE_COMPONENTTYPE_DST_LAST=(MIXERLINE_COMPONENTTYPE_DST_FIRST+8); +const MIXERLINE_COMPONENTTYPE_SRC_FIRST=0x1000; +const MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED=MIXERLINE_COMPONENTTYPE_SRC_FIRST; +const MIXERLINE_COMPONENTTYPE_SRC_DIGITAL=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+1); +const MIXERLINE_COMPONENTTYPE_SRC_LINE=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+2); +const MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+3); +const MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+4); +const MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+5); +const MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+6); +const MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+7); +const MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+8); +const MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+9); +const MIXERLINE_COMPONENTTYPE_SRC_ANALOG=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+10); +const MIXERLINE_COMPONENTTYPE_SRC_LAST=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+10); + +enum { + MIXERLINE_TARGETTYPE_UNDEFINED = 0, + MIXERLINE_TARGETTYPE_WAVEOUT, + MIXERLINE_TARGETTYPE_WAVEIN, + MIXERLINE_TARGETTYPE_MIDIOUT, + MIXERLINE_TARGETTYPE_MIDIIN, + MIXERLINE_TARGETTYPE_AUX // =5 +} + +const MIXER_GETLINEINFOF_DESTINATION=0; +const MIXER_GETLINEINFOF_SOURCE=1; +const MIXER_GETLINEINFOF_LINEID=2; +const MIXER_GETLINEINFOF_COMPONENTTYPE=3; +const MIXER_GETLINEINFOF_TARGETTYPE=4; +const MIXER_GETLINEINFOF_QUERYMASK=15; + +const MIXERCONTROL_CONTROLF_UNIFORM=1; +const MIXERCONTROL_CONTROLF_MULTIPLE=2; +const MIXERCONTROL_CONTROLF_DISABLED=0x80000000; +const MIXERCONTROL_CT_CLASS_MASK=0xF0000000; +const MIXERCONTROL_CT_CLASS_CUSTOM=0; +const MIXERCONTROL_CT_CLASS_METER=0x10000000; +const MIXERCONTROL_CT_CLASS_SWITCH=0x20000000; +const MIXERCONTROL_CT_CLASS_NUMBER=0x30000000; +const MIXERCONTROL_CT_CLASS_SLIDER=0x40000000; +const MIXERCONTROL_CT_CLASS_FADER=0x50000000; +const MIXERCONTROL_CT_CLASS_TIME=0x60000000; +const MIXERCONTROL_CT_CLASS_LIST=0x70000000; +const MIXERCONTROL_CT_SUBCLASS_MASK=0xF000000; +const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN=0; +const MIXERCONTROL_CT_SC_SWITCH_BUTTON=0x1000000; +const MIXERCONTROL_CT_SC_METER_POLLED=0; +const MIXERCONTROL_CT_SC_TIME_MICROSECS=0; +const MIXERCONTROL_CT_SC_TIME_MILLISECS=0x1000000; +const MIXERCONTROL_CT_SC_LIST_SINGLE=0; +const MIXERCONTROL_CT_SC_LIST_MULTIPLE=0x1000000; +const MIXERCONTROL_CT_UNITS_MASK=0xFF0000; +const MIXERCONTROL_CT_UNITS_CUSTOM=0; +const MIXERCONTROL_CT_UNITS_BOOLEAN=0x10000; +const MIXERCONTROL_CT_UNITS_SIGNED=0x20000; +const MIXERCONTROL_CT_UNITS_UNSIGNED=0x30000; +const MIXERCONTROL_CT_UNITS_DECIBELS=0x40000; +const MIXERCONTROL_CT_UNITS_PERCENT=0x50000; + +const MIXERCONTROL_CONTROLTYPE_CUSTOM=(MIXERCONTROL_CT_CLASS_CUSTOM|MIXERCONTROL_CT_UNITS_CUSTOM); +const MIXERCONTROL_CONTROLTYPE_BOOLEANMETER=(MIXERCONTROL_CT_CLASS_METER|MIXERCONTROL_CT_SC_METER_POLLED|MIXERCONTROL_CT_UNITS_BOOLEAN); +const MIXERCONTROL_CONTROLTYPE_SIGNEDMETER=(MIXERCONTROL_CT_CLASS_METER|MIXERCONTROL_CT_SC_METER_POLLED|MIXERCONTROL_CT_UNITS_SIGNED); +const MIXERCONTROL_CONTROLTYPE_PEAKMETER=(MIXERCONTROL_CONTROLTYPE_SIGNEDMETER+1); +const MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER=(MIXERCONTROL_CT_CLASS_METER|MIXERCONTROL_CT_SC_METER_POLLED|MIXERCONTROL_CT_UNITS_UNSIGNED); +const MIXERCONTROL_CONTROLTYPE_BOOLEAN=(MIXERCONTROL_CT_CLASS_SWITCH|MIXERCONTROL_CT_SC_SWITCH_BOOLEAN|MIXERCONTROL_CT_UNITS_BOOLEAN); +const MIXERCONTROL_CONTROLTYPE_ONOFF=(MIXERCONTROL_CONTROLTYPE_BOOLEAN+1); +const MIXERCONTROL_CONTROLTYPE_MUTE=(MIXERCONTROL_CONTROLTYPE_BOOLEAN+2); +const MIXERCONTROL_CONTROLTYPE_MONO=(MIXERCONTROL_CONTROLTYPE_BOOLEAN+3); +const MIXERCONTROL_CONTROLTYPE_LOUDNESS=(MIXERCONTROL_CONTROLTYPE_BOOLEAN+4); +const MIXERCONTROL_CONTROLTYPE_STEREOENH=(MIXERCONTROL_CONTROLTYPE_BOOLEAN+5); +const MIXERCONTROL_CONTROLTYPE_BUTTON=(MIXERCONTROL_CT_CLASS_SWITCH|MIXERCONTROL_CT_SC_SWITCH_BUTTON|MIXERCONTROL_CT_UNITS_BOOLEAN); +const MIXERCONTROL_CONTROLTYPE_DECIBELS=(MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_DECIBELS); +const MIXERCONTROL_CONTROLTYPE_SIGNED=(MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_SIGNED); +const MIXERCONTROL_CONTROLTYPE_UNSIGNED=(MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_UNSIGNED); +const MIXERCONTROL_CONTROLTYPE_PERCENT=(MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_PERCENT); +const MIXERCONTROL_CONTROLTYPE_SLIDER=(MIXERCONTROL_CT_CLASS_SLIDER|MIXERCONTROL_CT_UNITS_SIGNED); +const MIXERCONTROL_CONTROLTYPE_PAN=(MIXERCONTROL_CONTROLTYPE_SLIDER+1); +const MIXERCONTROL_CONTROLTYPE_QSOUNDPAN=(MIXERCONTROL_CONTROLTYPE_SLIDER+2); +const MIXERCONTROL_CONTROLTYPE_FADER=(MIXERCONTROL_CT_CLASS_FADER|MIXERCONTROL_CT_UNITS_UNSIGNED); +const MIXERCONTROL_CONTROLTYPE_VOLUME=(MIXERCONTROL_CONTROLTYPE_FADER+1); +const MIXERCONTROL_CONTROLTYPE_BASS=(MIXERCONTROL_CONTROLTYPE_FADER+2); +const MIXERCONTROL_CONTROLTYPE_TREBLE=(MIXERCONTROL_CONTROLTYPE_FADER+3); +const MIXERCONTROL_CONTROLTYPE_EQUALIZER=(MIXERCONTROL_CONTROLTYPE_FADER+4); +const MIXERCONTROL_CONTROLTYPE_SINGLESELECT=(MIXERCONTROL_CT_CLASS_LIST|MIXERCONTROL_CT_SC_LIST_SINGLE|MIXERCONTROL_CT_UNITS_BOOLEAN); +const MIXERCONTROL_CONTROLTYPE_MUX=(MIXERCONTROL_CONTROLTYPE_SINGLESELECT+1); +const MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT=(MIXERCONTROL_CT_CLASS_LIST|MIXERCONTROL_CT_SC_LIST_MULTIPLE|MIXERCONTROL_CT_UNITS_BOOLEAN); +const MIXERCONTROL_CONTROLTYPE_MIXER=(MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT+1); +const MIXERCONTROL_CONTROLTYPE_MICROTIME=(MIXERCONTROL_CT_CLASS_TIME|MIXERCONTROL_CT_SC_TIME_MICROSECS|MIXERCONTROL_CT_UNITS_UNSIGNED); +const MIXERCONTROL_CONTROLTYPE_MILLITIME=(MIXERCONTROL_CT_CLASS_TIME|MIXERCONTROL_CT_SC_TIME_MILLISECS|MIXERCONTROL_CT_UNITS_UNSIGNED); + +const MIXER_GETLINECONTROLSF_ALL=0; +const MIXER_GETLINECONTROLSF_ONEBYID=1; +const MIXER_GETLINECONTROLSF_ONEBYTYPE=2; +const MIXER_GETLINECONTROLSF_QUERYMASK=15; +const MIXER_GETCONTROLDETAILSF_VALUE=0; +const MIXER_GETCONTROLDETAILSF_LISTTEXT=1; +const MIXER_GETCONTROLDETAILSF_QUERYMASK=15; +const MIXER_SETCONTROLDETAILSF_VALUE=0; +const MIXER_SETCONTROLDETAILSF_CUSTOM=1; +const MIXER_SETCONTROLDETAILSF_QUERYMASK=15; + +const TIMERR_NOERROR=0; +const TIMERR_NOCANDO=(TIMERR_BASE+1); +const TIMERR_STRUCT=(TIMERR_BASE+33); +const TIME_ONESHOT=0; +const TIME_PERIODIC=1; +const TIME_CALLBACK_FUNCTION=0; +const TIME_CALLBACK_EVENT_SET=16; +const TIME_CALLBACK_EVENT_PULSE=32; + +static if (WINVER >= 0x0501) { + +const TIME_KILL_SYNCHRONOUS=0x0100; + +} + +const JOYERR_NOERROR = 0; +const JOYERR_PARMS=(JOYERR_BASE+5); +const JOYERR_NOCANDO=(JOYERR_BASE+6); +const JOYERR_UNPLUGGED=(JOYERR_BASE+7); + +const JOY_BUTTON1=1; +const JOY_BUTTON2=2; +const JOY_BUTTON3=4; +const JOY_BUTTON4=8; +const JOY_BUTTON1CHG=256; +const JOY_BUTTON2CHG=512; +const JOY_BUTTON3CHG=1024; +const JOY_BUTTON4CHG=2048; +const JOY_BUTTON5=257; +const JOY_BUTTON6=513; +const JOY_BUTTON7=1025; +const JOY_BUTTON8=2049; +const JOY_BUTTON9=256; +const JOY_BUTTON10=512; +const JOY_BUTTON11=1024; +const JOY_BUTTON12=2048; +const JOY_BUTTON13=4096; +const JOY_BUTTON14=8192; +const JOY_BUTTON15=16384; +const JOY_BUTTON16=32768; +const JOY_BUTTON17=65536; +const JOY_BUTTON18=0x20000; +const JOY_BUTTON19=0x40000; +const JOY_BUTTON20=0x80000; +const JOY_BUTTON21=0x100000; +const JOY_BUTTON22=0x200000; +const JOY_BUTTON23=0x400000; +const JOY_BUTTON24=0x800000; +const JOY_BUTTON25=0x1000000; +const JOY_BUTTON26=0x2000000; +const JOY_BUTTON27=0x4000000; +const JOY_BUTTON28=0x8000000; +const JOY_BUTTON29=0x10000000; +const JOY_BUTTON30=0x20000000; +const JOY_BUTTON31=0x40000000; +const JOY_BUTTON32=0x80000000; + +enum : DWORD { + JOY_POVCENTERED = -1, + JOY_POVFORWARD = 0, + JOY_POVBACKWARD = 18000, + JOY_POVLEFT = 27000, + JOY_POVRIGHT = 9000 +} + +const DWORD + JOY_RETURNX = 0x00000001, + JOY_RETURNY = 0x00000002, + JOY_RETURNZ = 0x00000004, + JOY_RETURNR = 0x00000008, + JOY_RETURNU = 0x00000010, + JOY_RETURNV = 0x00000020, + JOY_RETURNPOV = 0x00000040, + JOY_RETURNBUTTONS = 0x00000080, + JOY_RETURNRAWDATA = 0x00000100, + JOY_RETURNPOVCTS = 0x00000200, + JOY_RETURNCENTERED = 0x00000400, + JOY_USEDEADZONE = 0x00000800, + JOY_RETURNALL = JOY_RETURNX | JOY_RETURNY | JOY_RETURNZ | JOY_RETURNR + | JOY_RETURNU | JOY_RETURNV | JOY_RETURNPOV + | JOY_RETURNBUTTONS, + JOY_CAL_READALWAYS = 0x00010000, + JOY_CAL_READXYONLY = 0x00020000, + JOY_CAL_READ3 = 0x00040000, + JOY_CAL_READ4 = 0x00080000, + JOY_CAL_READXONLY = 0x00100000, + JOY_CAL_READYONLY = 0x00200000, + JOY_CAL_READ5 = 0x00400000, + JOY_CAL_READ6 = 0x00800000, + JOY_CAL_READZONLY = 0x01000000, + JOY_CAL_READRONLY = 0x02000000, + JOY_CAL_READUONLY = 0x04000000, + JOY_CAL_READVONLY = 0x08000000; + +const JOYSTICKID1=0; +const JOYSTICKID2=1; + +const JOYCAPS_HASZ=1; +const JOYCAPS_HASR=2; +const JOYCAPS_HASU=4; +const JOYCAPS_HASV=8; +const JOYCAPS_HASPOV=16; +const JOYCAPS_POV4DIR=32; +const JOYCAPS_POVCTS=64; + +const MMIOERR_BASE=256; +const MMIOERR_FILENOTFOUND=(MMIOERR_BASE+1); +const MMIOERR_OUTOFMEMORY=(MMIOERR_BASE+2); +const MMIOERR_CANNOTOPEN=(MMIOERR_BASE+3); +const MMIOERR_CANNOTCLOSE=(MMIOERR_BASE+4); +const MMIOERR_CANNOTREAD=(MMIOERR_BASE+5); +const MMIOERR_CANNOTWRITE=(MMIOERR_BASE+6); +const MMIOERR_CANNOTSEEK=(MMIOERR_BASE+7); +const MMIOERR_CANNOTEXPAND=(MMIOERR_BASE+8); +const MMIOERR_CHUNKNOTFOUND=(MMIOERR_BASE+9); +const MMIOERR_UNBUFFERED=(MMIOERR_BASE+10); +const MMIOERR_PATHNOTFOUND=(MMIOERR_BASE+11); +const MMIOERR_ACCESSDENIED=(MMIOERR_BASE+12); +const MMIOERR_SHARINGVIOLATION=(MMIOERR_BASE+13); +const MMIOERR_NETWORKERROR=(MMIOERR_BASE+14); +const MMIOERR_TOOMANYOPENFILES=(MMIOERR_BASE+15); +const MMIOERR_INVALIDFILE=(MMIOERR_BASE+16); + +const CFSEPCHAR='+'; + +const MMIO_RWMODE=3; +const MMIO_SHAREMODE=0x70; +const MMIO_CREATE=0x1000; +const MMIO_PARSE=256; +const MMIO_DELETE=512; +const MMIO_EXIST=0x4000; +const MMIO_ALLOCBUF=0x10000; +const MMIO_GETTEMP=0x20000; +const MMIO_DIRTY=0x10000000; +const MMIO_READ=0; +const MMIO_WRITE=1; +const MMIO_READWRITE=2; +const MMIO_COMPAT=0; +const MMIO_EXCLUSIVE=16; +const MMIO_DENYWRITE=32; +const MMIO_DENYREAD=0x30; +const MMIO_DENYNONE=64; +const MMIO_FHOPEN=16; +const MMIO_EMPTYBUF=16; +const MMIO_TOUPPER=16; +const MMIO_INSTALLPROC=0x10000; +const MMIO_GLOBALPROC=0x10000000; +const MMIO_REMOVEPROC=0x20000; +const MMIO_UNICODEPROC=0x1000000; +const MMIO_FINDPROC=0x40000; +const MMIO_FINDCHUNK=16; +const MMIO_FINDRIFF=32; +const MMIO_FINDLIST=64; +const MMIO_CREATERIFF=32; +const MMIO_CREATELIST=64; +const MMIOM_READ=MMIO_READ; +const MMIOM_WRITE=MMIO_WRITE; +const MMIOM_SEEK=2; +const MMIOM_OPEN=3; +const MMIOM_CLOSE=4; +const MMIOM_WRITEFLUSH=5; +const MMIOM_RENAME=6; +const MMIOM_USER=0x8000; + +const FOURCC_RIFF = mmioFOURCC!('R', 'I', 'F', 'F'); +const FOURCC_LIST = mmioFOURCC!('L', 'I', 'S', 'T'); +const FOURCC_DOS = mmioFOURCC!('D', 'O', 'S', ' '); +const FOURCC_MEM = mmioFOURCC!('M', 'E', 'M', ' '); + +const MMIO_DEFAULTBUFFER=8192; + +enum { + MCIERR_INVALID_DEVICE_ID = MCIERR_BASE + 1, + MCIERR_UNRECOGNIZED_KEYWORD = MCIERR_BASE + 3, + MCIERR_UNRECOGNIZED_COMMAND = MCIERR_BASE + 5, + MCIERR_HARDWARE, + MCIERR_INVALID_DEVICE_NAME, + MCIERR_OUT_OF_MEMORY, + MCIERR_DEVICE_OPEN, + MCIERR_CANNOT_LOAD_DRIVER, + MCIERR_MISSING_COMMAND_STRING, + MCIERR_PARAM_OVERFLOW, + MCIERR_MISSING_STRING_ARGUMENT, + MCIERR_BAD_INTEGER, + MCIERR_PARSER_INTERNAL, + MCIERR_DRIVER_INTERNAL, + MCIERR_MISSING_PARAMETER, + MCIERR_UNSUPPORTED_FUNCTION, + MCIERR_FILE_NOT_FOUND, + MCIERR_DEVICE_NOT_READY, + MCIERR_INTERNAL, + MCIERR_DRIVER, + MCIERR_CANNOT_USE_ALL, + MCIERR_MULTIPLE, + MCIERR_EXTENSION_NOT_FOUND, + MCIERR_OUTOFRANGE, // = MCIERR_BASE+26 + MCIERR_FLAGS_NOT_COMPATIBLE = MCIERR_BASE + 28, + MCIERR_FILE_NOT_SAVED = MCIERR_BASE + 30, + MCIERR_DEVICE_TYPE_REQUIRED, + MCIERR_DEVICE_LOCKED, + MCIERR_DUPLICATE_ALIAS, + MCIERR_BAD_CONSTANT, + MCIERR_MUST_USE_SHAREABLE, + MCIERR_MISSING_DEVICE_NAME, + MCIERR_BAD_TIME_FORMAT, + MCIERR_NO_CLOSING_QUOTE, + MCIERR_DUPLICATE_FLAGS, + MCIERR_INVALID_FILE, + MCIERR_NULL_PARAMETER_BLOCK, + MCIERR_UNNAMED_RESOURCE, + MCIERR_NEW_REQUIRES_ALIAS, + MCIERR_NOTIFY_ON_AUTO_OPEN, + MCIERR_NO_ELEMENT_ALLOWED, + MCIERR_NONAPPLICABLE_FUNCTION, + MCIERR_ILLEGAL_FOR_AUTO_OPEN, + MCIERR_FILENAME_REQUIRED, + MCIERR_EXTRA_CHARACTERS, + MCIERR_DEVICE_NOT_INSTALLED, + MCIERR_GET_CD, + MCIERR_SET_CD, + MCIERR_SET_DRIVE, + MCIERR_DEVICE_LENGTH, + MCIERR_DEVICE_ORD_LENGTH, + MCIERR_NO_INTEGER, // = MCIERR_BASE + 56 + MCIERR_WAVE_OUTPUTSINUSE = MCIERR_BASE + 64, + MCIERR_WAVE_SETOUTPUTINUSE, + MCIERR_WAVE_INPUTSINUSE, + MCIERR_WAVE_SETINPUTINUSE, + MCIERR_WAVE_OUTPUTUNSPECIFIED, + MCIERR_WAVE_INPUTUNSPECIFIED, + MCIERR_WAVE_OUTPUTSUNSUITABLE, + MCIERR_WAVE_SETOUTPUTUNSUITABLE, + MCIERR_WAVE_INPUTSUNSUITABLE, + MCIERR_WAVE_SETINPUTUNSUITABLE, // = MCIERR_BASE + 73 + MCIERR_SEQ_DIV_INCOMPATIBLE = MCIERR_BASE + 80, + MCIERR_SEQ_PORT_INUSE, + MCIERR_SEQ_PORT_NONEXISTENT, + MCIERR_SEQ_PORT_MAPNODEVICE, + MCIERR_SEQ_PORT_MISCERROR, + MCIERR_SEQ_TIMER, + MCIERR_SEQ_PORTUNSPECIFIED, + MCIERR_SEQ_NOMIDIPRESENT, // = MCIERR_BASE + 87 + MCIERR_NO_WINDOW = MCIERR_BASE + 90, + MCIERR_CREATEWINDOW, + MCIERR_FILE_READ, + MCIERR_FILE_WRITE, + MCIERR_NO_IDENTITY // = MCIERR_BASE + 94 +} +const MCIERR_CUSTOM_DRIVER_BASE = MCIERR_BASE + 256; + +const MCI_FIRST=DRV_MCI_FIRST; +const MCI_OPEN=0x803; +const MCI_CLOSE=0x804; +const MCI_ESCAPE=0x805; +const MCI_PLAY=0x806; +const MCI_SEEK=0x807; +const MCI_STOP=0x808; +const MCI_PAUSE=0x809; +const MCI_INFO=0x80A; +const MCI_GETDEVCAPS=0x80B; +const MCI_SPIN=0x80C; +const MCI_SET=0x80D; +const MCI_STEP=0x80E; +const MCI_RECORD=0x80F; +const MCI_SYSINFO=0x810; +const MCI_BREAK=0x811; +const MCI_SAVE=0x813; +const MCI_STATUS=0x814; +const MCI_CUE=0x830; +const MCI_REALIZE=0x840; +const MCI_WINDOW=0x841; +const MCI_PUT=0x842; +const MCI_WHERE=0x843; +const MCI_FREEZE=0x844; +const MCI_UNFREEZE=0x845; +const MCI_LOAD=0x850; +const MCI_CUT=0x851; +const MCI_COPY=0x852; +const MCI_PASTE=0x853; +const MCI_UPDATE=0x854; +const MCI_RESUME=0x855; +const MCI_DELETE=0x856; +const MCI_USER_MESSAGES=(DRV_MCI_FIRST+0x400); +const MCI_LAST=0xFFF; + +const MCIDEVICEID MCI_ALL_DEVICE_ID = -1; + +const MCI_DEVTYPE_VCR=513; +const MCI_DEVTYPE_VIDEODISC=514; +const MCI_DEVTYPE_OVERLAY=515; +const MCI_DEVTYPE_CD_AUDIO=516; +const MCI_DEVTYPE_DAT=517; +const MCI_DEVTYPE_SCANNER=518; +const MCI_DEVTYPE_ANIMATION=519; +const MCI_DEVTYPE_DIGITAL_VIDEO=520; +const MCI_DEVTYPE_OTHER=521; +const MCI_DEVTYPE_WAVEFORM_AUDIO=522; +const MCI_DEVTYPE_SEQUENCER=523; +const MCI_DEVTYPE_FIRST=MCI_DEVTYPE_VCR; +const MCI_DEVTYPE_LAST=MCI_DEVTYPE_SEQUENCER; +const MCI_DEVTYPE_FIRST_USER=0x1000; +const MCI_MODE_NOT_READY=(MCI_STRING_OFFSET+12); +const MCI_MODE_STOP=(MCI_STRING_OFFSET+13); +const MCI_MODE_PLAY=(MCI_STRING_OFFSET+14); +const MCI_MODE_RECORD=(MCI_STRING_OFFSET+15); +const MCI_MODE_SEEK=(MCI_STRING_OFFSET+16); +const MCI_MODE_PAUSE=(MCI_STRING_OFFSET+17); +const MCI_MODE_OPEN=(MCI_STRING_OFFSET+18); +const MCI_FORMAT_MILLISECONDS=0; +const MCI_FORMAT_HMS=1; +const MCI_FORMAT_MSF=2; +const MCI_FORMAT_FRAMES=3; +const MCI_FORMAT_SMPTE_24=4; +const MCI_FORMAT_SMPTE_25=5; +const MCI_FORMAT_SMPTE_30=6; +const MCI_FORMAT_SMPTE_30DROP=7; +const MCI_FORMAT_BYTES=8; +const MCI_FORMAT_SAMPLES=9; +const MCI_FORMAT_TMSF=10; + + + + +// Macros +BYTE MCI_HMS_HOUR(DWORD t) { return cast(BYTE)(t); } +BYTE MCI_HMS_MINUTE(DWORD t) { return cast(BYTE)(t>>>8); } +BYTE MCI_HMS_SECOND(DWORD t) { return cast(BYTE)( t>>>16); } +DWORD MCI_MAKE_HMS(BYTE h, BYTE m, BYTE s) { return h |(m<<8)|(cast(DWORD)(s)<<16); } +DWORD MCI_MAKE_MSF(BYTE m, BYTE s, BYTE f) { return m |(s<<8)|(cast(DWORD)(f)<<16); } +DWORD MCI_MAKE_TMSF(BYTE t, BYTE m, BYTE s, BYTE f) { + return t |(m<<8)|(s<<16)|(cast(DWORD)(f)<< 24); } + +BYTE MCI_MSF_MINUTE(DWORD t) { return cast(BYTE)(t); } +BYTE MCI_MSF_SECOND(DWORD t) { return cast(BYTE)(t >>> 8); } +BYTE MCI_MSF_FRAME(DWORD t) { return cast(BYTE)(t >>> 16); } + +BYTE MCI_TMSF_TRACK(DWORD t) { return cast(BYTE)(t); } +BYTE MCI_TMSF_MINUTE(DWORD t) { return cast(BYTE)(t>>8); } +BYTE MCI_TMSF_SECOND(DWORD t) { return cast(BYTE)(t>>16); } +BYTE MCI_TMSF_FRAME(DWORD t) { return cast(BYTE)(t>>24); } + + +const MCI_NOTIFY_SUCCESSFUL=1; +const MCI_NOTIFY_SUPERSEDED=2; +const MCI_NOTIFY_ABORTED=4; +const MCI_NOTIFY_FAILURE=8; +const MCI_NOTIFY=1; +const MCI_WAIT=2; +const MCI_FROM=4; +const MCI_TO=8; +const MCI_TRACK=16; +const MCI_OPEN_SHAREABLE=256; +const MCI_OPEN_ELEMENT=512; +const MCI_OPEN_ALIAS=1024; +const MCI_OPEN_ELEMENT_ID=2048; +const MCI_OPEN_TYPE_ID=0x1000; +const MCI_OPEN_TYPE=0x2000; +const MCI_SEEK_TO_START=256; +const MCI_SEEK_TO_END=512; +const MCI_STATUS_ITEM=256; +const MCI_STATUS_START=512; +const MCI_STATUS_LENGTH=1; +const MCI_STATUS_POSITION=2; +const MCI_STATUS_NUMBER_OF_TRACKS=3; +const MCI_STATUS_MODE=4; +const MCI_STATUS_MEDIA_PRESENT=5; +const MCI_STATUS_TIME_FORMAT=6; +const MCI_STATUS_READY=7; +const MCI_STATUS_CURRENT_TRACK=8; +const MCI_INFO_PRODUCT=256; +const MCI_INFO_FILE=512; +const MCI_INFO_MEDIA_UPC=1024; +const MCI_INFO_MEDIA_IDENTITY=2048; +const MCI_INFO_NAME=0x1000; +const MCI_INFO_COPYRIGHT=0x2000; + +const MCI_GETDEVCAPS_ITEM=256; +const MCI_GETDEVCAPS_CAN_RECORD=1; +const MCI_GETDEVCAPS_HAS_AUDIO=2; +const MCI_GETDEVCAPS_HAS_VIDEO=3; +const MCI_GETDEVCAPS_DEVICE_TYPE=4; +const MCI_GETDEVCAPS_USES_FILES=5; +const MCI_GETDEVCAPS_COMPOUND_DEVICE=6; +const MCI_GETDEVCAPS_CAN_EJECT=7; +const MCI_GETDEVCAPS_CAN_PLAY=8; +const MCI_GETDEVCAPS_CAN_SAVE=9; + +const MCI_SYSINFO_QUANTITY=256; +const MCI_SYSINFO_OPEN=512; +const MCI_SYSINFO_NAME=1024; +const MCI_SYSINFO_INSTALLNAME=2048; +const MCI_SET_DOOR_OPEN=256; +const MCI_SET_DOOR_CLOSED=512; +const MCI_SET_TIME_FORMAT=1024; +const MCI_SET_AUDIO=2048; +const MCI_SET_VIDEO=0x1000; +const MCI_SET_ON=0x2000; +const MCI_SET_OFF=0x4000; + +const MCI_SET_AUDIO_ALL=0; +const MCI_SET_AUDIO_LEFT=1; +const MCI_SET_AUDIO_RIGHT=2; + +const MCI_BREAK_KEY=256; +const MCI_BREAK_HWND=512; +const MCI_BREAK_OFF=1024; + +const MCI_RECORD_INSERT=256; +const MCI_RECORD_OVERWRITE=512; +const MCI_SAVE_FILE=256; +const MCI_LOAD_FILE=256; + +const MCI_VD_MODE_PARK=(MCI_VD_OFFSET+1); +const MCI_VD_MEDIA_CLV=(MCI_VD_OFFSET+2); +const MCI_VD_MEDIA_CAV=(MCI_VD_OFFSET+3); +const MCI_VD_MEDIA_OTHER=(MCI_VD_OFFSET+4); + +const MCI_VD_FORMAT_TRACK=0x4001; +const MCI_VD_PLAY_REVERSE=0x10000; +const MCI_VD_PLAY_FAST=0x20000; +const MCI_VD_PLAY_SPEED=0x40000; +const MCI_VD_PLAY_SCAN=0x80000; +const MCI_VD_PLAY_SLOW=0x100000; +const MCI_VD_SEEK_REVERSE=0x10000; +const MCI_VD_STATUS_SPEED=0x4002; +const MCI_VD_STATUS_FORWARD=0x4003; +const MCI_VD_STATUS_MEDIA_TYPE=0x4004; +const MCI_VD_STATUS_SIDE=0x4005; +const MCI_VD_STATUS_DISC_SIZE=0x4006; +const MCI_VD_GETDEVCAPS_CLV=0x10000; +const MCI_VD_GETDEVCAPS_CAV=0x20000; +const MCI_VD_SPIN_UP=0x10000; +const MCI_VD_SPIN_DOWN=0x20000; +const MCI_VD_GETDEVCAPS_CAN_REVERSE=0x4002; +const MCI_VD_GETDEVCAPS_FAST_RATE=0x4003; +const MCI_VD_GETDEVCAPS_SLOW_RATE=0x4004; +const MCI_VD_GETDEVCAPS_NORMAL_RATE=0x4005; +const MCI_VD_STEP_FRAMES=0x10000; +const MCI_VD_STEP_REVERSE=0x20000; +const MCI_VD_ESCAPE_STRING=256; + +const MCI_CDA_STATUS_TYPE_TRACK=0x4001; +const MCI_CDA_TRACK_AUDIO=MCI_CD_OFFSET; +const MCI_CDA_TRACK_OTHER=(MCI_CD_OFFSET+1); + +const MCI_WAVE_PCM=MCI_WAVE_OFFSET; +const MCI_WAVE_MAPPER=(MCI_WAVE_OFFSET+1); +const MCI_WAVE_OPEN_BUFFER=0x10000; +const MCI_WAVE_SET_FORMATTAG=0x10000; +const MCI_WAVE_SET_CHANNELS=0x20000; +const MCI_WAVE_SET_SAMPLESPERSEC=0x40000; +const MCI_WAVE_SET_AVGBYTESPERSEC=0x80000; +const MCI_WAVE_SET_BLOCKALIGN=0x100000; +const MCI_WAVE_SET_BITSPERSAMPLE=0x200000; +const MCI_WAVE_INPUT=0x400000; +const MCI_WAVE_OUTPUT=0x800000; +const MCI_WAVE_STATUS_FORMATTAG=0x4001; +const MCI_WAVE_STATUS_CHANNELS=0x4002; +const MCI_WAVE_STATUS_SAMPLESPERSEC=0x4003; +const MCI_WAVE_STATUS_AVGBYTESPERSEC=0x4004; +const MCI_WAVE_STATUS_BLOCKALIGN=0x4005; +const MCI_WAVE_STATUS_BITSPERSAMPLE=0x4006; +const MCI_WAVE_STATUS_LEVEL=0x4007; +const MCI_WAVE_SET_ANYINPUT=0x4000000; +const MCI_WAVE_SET_ANYOUTPUT=0x8000000; +const MCI_WAVE_GETDEVCAPS_INPUTS=0x4001; +const MCI_WAVE_GETDEVCAPS_OUTPUTS=0x4002; + +const MCI_SEQ_DIV_PPQN=MCI_SEQ_OFFSET; +const MCI_SEQ_DIV_SMPTE_24=(MCI_SEQ_OFFSET+1); +const MCI_SEQ_DIV_SMPTE_25=(MCI_SEQ_OFFSET+2); +const MCI_SEQ_DIV_SMPTE_30DROP=(MCI_SEQ_OFFSET+3); +const MCI_SEQ_DIV_SMPTE_30=(MCI_SEQ_OFFSET+4); +const MCI_SEQ_FORMAT_SONGPTR=0x4001; +const MCI_SEQ_FILE=0x4002; +const MCI_SEQ_MIDI=0x4003; +const MCI_SEQ_SMPTE=0x4004; +const MCI_SEQ_NONE=65533; +const MCI_SEQ_MAPPER=65535; + +const MCI_SEQ_STATUS_TEMPO=0x4002; +const MCI_SEQ_STATUS_PORT=0x4003; +const MCI_SEQ_STATUS_SLAVE=0x4007; +const MCI_SEQ_STATUS_MASTER=0x4008; +const MCI_SEQ_STATUS_OFFSET=0x4009; +const MCI_SEQ_STATUS_DIVTYPE=0x400A; +const MCI_SEQ_STATUS_NAME=0x400B; +const MCI_SEQ_STATUS_COPYRIGHT=0x400C; + +const MCI_SEQ_SET_TEMPO=0x10000; +const MCI_SEQ_SET_PORT=0x20000; +const MCI_SEQ_SET_SLAVE=0x40000; +const MCI_SEQ_SET_MASTER=0x80000; +const MCI_SEQ_SET_OFFSET=0x1000000; + +const MCI_ANIM_OPEN_WS=0x10000; +const MCI_ANIM_OPEN_PARENT=0x20000; +const MCI_ANIM_OPEN_NOSTATIC=0x40000; +const MCI_ANIM_PLAY_SPEED=0x10000; +const MCI_ANIM_PLAY_REVERSE=0x20000; +const MCI_ANIM_PLAY_FAST=0x40000; +const MCI_ANIM_PLAY_SLOW=0x80000; +const MCI_ANIM_PLAY_SCAN=0x100000; +const MCI_ANIM_STEP_REVERSE=0x10000; +const MCI_ANIM_STEP_FRAMES=0x20000; +const MCI_ANIM_STATUS_SPEED=0x4001; +const MCI_ANIM_STATUS_FORWARD=0x4002; +const MCI_ANIM_STATUS_HWND=0x4003; +const MCI_ANIM_STATUS_HPAL=0x4004; +const MCI_ANIM_STATUS_STRETCH=0x4005; +const MCI_ANIM_INFO_TEXT=0x10000; + +const MCI_ANIM_GETDEVCAPS_CAN_REVERSE=0x4001; +const MCI_ANIM_GETDEVCAPS_FAST_RATE=0x4002; +const MCI_ANIM_GETDEVCAPS_SLOW_RATE=0x4003; +const MCI_ANIM_GETDEVCAPS_NORMAL_RATE=0x4004; +const MCI_ANIM_GETDEVCAPS_PALETTES=0x4006; +const MCI_ANIM_GETDEVCAPS_CAN_STRETCH=0x4007; +const MCI_ANIM_GETDEVCAPS_MAX_WINDOWS=0x4008; + +const MCI_ANIM_REALIZE_NORM=0x10000; +const MCI_ANIM_REALIZE_BKGD=0x20000; + +const MCI_ANIM_WINDOW_HWND=0x10000; +const MCI_ANIM_WINDOW_STATE=0x40000; +const MCI_ANIM_WINDOW_TEXT=0x80000; +const MCI_ANIM_WINDOW_ENABLE_STRETCH=0x100000; +const MCI_ANIM_WINDOW_DISABLE_STRETCH=0x200000; +const MCI_ANIM_WINDOW_DEFAULT=0x0; + +const MCI_ANIM_RECT=0x10000; +const MCI_ANIM_PUT_SOURCE=0x20000; +const MCI_ANIM_PUT_DESTINATION=0x40000; +const MCI_ANIM_WHERE_SOURCE=0x20000; +const MCI_ANIM_WHERE_DESTINATION=0x40000; +const MCI_ANIM_UPDATE_HDC=0x20000; + +const MCI_OVLY_OPEN_WS=0x10000; +const MCI_OVLY_OPEN_PARENT=0x20000; +const MCI_OVLY_STATUS_HWND=0x4001; +const MCI_OVLY_STATUS_STRETCH=0x4002; +const MCI_OVLY_INFO_TEXT=0x10000; +const MCI_OVLY_GETDEVCAPS_CAN_STRETCH=0x4001; +const MCI_OVLY_GETDEVCAPS_CAN_FREEZE=0x4002; +const MCI_OVLY_GETDEVCAPS_MAX_WINDOWS=0x4003; +const MCI_OVLY_WINDOW_HWND=0x10000; +const MCI_OVLY_WINDOW_STATE=0x40000; +const MCI_OVLY_WINDOW_TEXT=0x80000; +const MCI_OVLY_WINDOW_ENABLE_STRETCH=0x100000; +const MCI_OVLY_WINDOW_DISABLE_STRETCH=0x200000; +const MCI_OVLY_WINDOW_DEFAULT=0x0; +const MCI_OVLY_RECT=0x10000; +const MCI_OVLY_PUT_SOURCE=0x20000; +const MCI_OVLY_PUT_DESTINATION=0x40000; +const MCI_OVLY_PUT_FRAME=0x80000; +const MCI_OVLY_PUT_VIDEO=0x100000; +const MCI_OVLY_WHERE_SOURCE=0x20000; +const MCI_OVLY_WHERE_DESTINATION=0x40000; +const MCI_OVLY_WHERE_FRAME=0x80000; +const MCI_OVLY_WHERE_VIDEO=0x100000; + +const NEWTRANSPARENT=3; +const QUERYROPSUPPORT=40; +const SELECTDIB=41; + +LONG DIBINDEX(WORD n) { + return MAKELONG(n,0x10FF); +} +const CAPS1=94; +const C1_TRANSPARENT=1; + +const SEEK_SET=0; +const SEEK_CUR=1; +const SEEK_END=2; + +alias DWORD MCIERROR; +alias UINT MCIDEVICEID; +alias UINT function (MCIDEVICEID,DWORD) YIELDPROC; +alias UINT MMVERSION; +alias UINT MMRESULT; + +struct MMTIME { + UINT wType; + union { + DWORD ms; + DWORD sample; + DWORD cb; + DWORD ticks; + struct smpte { + BYTE hour; + BYTE min; + BYTE sec; + BYTE frame; + BYTE fps; + BYTE dummy; + BYTE pad[2]; + }; + struct midi { + DWORD songptrpos; + } + } +} +alias MMTIME* PMMTIME, LPMMTIME; + +alias HANDLE HDRVR; + +struct DRVCONFIGINFO { + DWORD dwDCISize; + LPCWSTR lpszDCISectionName; + LPCWSTR lpszDCIAliasName; +} +alias DRVCONFIGINFO * PDRVCONFIGINFO, LPDRVCONFIGINFO; + +struct DRVCONFIGINFOEX { + DWORD dwDCISize; + LPCWSTR lpszDCISectionName; + LPCWSTR lpszDCIAliasName; + DWORD dnDevNode; +} +alias DRVCONFIGINFOEX* PDRVCONFIGINFOEX, LPDRVCONFIGINFOEX; + +extern(Windows): + +/+FIXME: I couldn't find these in MSDN. +alias void function (HDRVR,UINT,DWORD,DWORD,DWORD) DRVCALLBACK; +LRESULT DRIVERPROC (DWORD,HDRVR,UINT,LPARAM,LPARAM); +alias DRVCALLBACK* LPDRVCALLBACK, PDRVCALLBACK; + +alias DRVCALLBACK WAVECALLBACK; +alias WAVECALLBACK* LPWAVECALLBACK; + +alias DRVCALLBACK MIDICALLBACK; +alias MIDICALLBACK* LPMIDICALLBACK; + ++/ + +alias HANDLE HWAVE; +alias HANDLE HWAVEIN; +alias HANDLE HWAVEOUT; + +alias HWAVEIN* LPHWAVEIN; +alias HWAVEOUT* LPHWAVEOUT; + +struct WAVEHDR { + LPSTR lpData; + DWORD dwBufferLength; + DWORD dwBytesRecorded; + DWORD dwUser; + DWORD dwFlags; + DWORD dwLoops; + WAVEHDR *lpNext; + DWORD reserved; +} +alias WAVEHDR* PWAVEHDR, LPWAVEHDR; + +struct WAVEOUTCAPSA { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[MAXPNAMELEN]; + DWORD dwFormats; + WORD wChannels; + WORD wReserved1; + DWORD dwSupport; +} +alias WAVEOUTCAPSA* PWAVEOUTCAPSA, LPWAVEOUTCAPSA; + +struct WAVEOUTCAPSW { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[MAXPNAMELEN]; + DWORD dwFormats; + WORD wChannels; + WORD wReserved1; + DWORD dwSupport; +} +alias WAVEOUTCAPSW* PWAVEOUTCAPSW, LPWAVEOUTCAPSW; + +struct WAVEINCAPSA { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[MAXPNAMELEN]; + DWORD dwFormats; + WORD wChannels; + WORD wReserved1; +} +alias WAVEINCAPSA* PWAVEINCAPSA, LPWAVEINCAPSA; + +struct WAVEINCAPSW { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[MAXPNAMELEN]; + DWORD dwFormats; + WORD wChannels; + WORD wReserved1; +} +alias WAVEINCAPSW* PWAVEINCAPSW, LPWAVEINCAPSW; + +struct WAVEFORMAT { + WORD wFormatTag; + WORD nChannels; + DWORD nSamplesPerSec; + DWORD nAvgBytesPerSec; + WORD nBlockAlign; +} +alias WAVEFORMAT* PWAVEFORMAT, LPWAVEFORMAT; + +struct PCMWAVEFORMAT { + WAVEFORMAT wf; + WORD wBitsPerSample; +} +alias PCMWAVEFORMAT* PPCMWAVEFORMAT, LPPCMWAVEFORMAT; + +struct WAVEFORMATEX { + WORD wFormatTag; + WORD nChannels; + DWORD nSamplesPerSec; + DWORD nAvgBytesPerSec; + WORD nBlockAlign; + WORD wBitsPerSample; + WORD cbSize; +} +alias WAVEFORMATEX* PWAVEFORMATEX, LPWAVEFORMATEX; +alias CPtr!(WAVEFORMATEX) LPCWAVEFORMATEX; + +alias HANDLE HMIDI; +alias HANDLE HMIDIIN; +alias HANDLE HMIDIOUT; +alias HANDLE HMIDISTRM; + +alias HMIDI* LPHMIDI; +alias HMIDIIN* LPHMIDIIN; +alias HMIDIOUT* LPHMIDIOUT; +alias HMIDISTRM* LPHMIDISTRM; + +alias WORD PATCHARRAY[MIDIPATCHSIZE]; +alias WORD* LPPATCHARRAY; +alias WORD KEYARRAY[MIDIPATCHSIZE]; +alias WORD* LPKEYARRAY; + +struct MIDIOUTCAPSA { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[MAXPNAMELEN]; + WORD wTechnology; + WORD wVoices; + WORD wNotes; + WORD wChannelMask; + DWORD dwSupport; +} +alias MIDIOUTCAPSA* PMIDIOUTCAPSA, LPMIDIOUTCAPSA; + +struct MIDIOUTCAPSW { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[MAXPNAMELEN]; + WORD wTechnology; + WORD wVoices; + WORD wNotes; + WORD wChannelMask; + DWORD dwSupport; +} +alias MIDIOUTCAPSW* PMIDIOUTCAPSW, LPMIDIOUTCAPSW; + +struct MIDIINCAPSA { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[MAXPNAMELEN]; + DWORD dwSupport; +} +alias MIDIINCAPSA* PMIDIINCAPSA, LPMIDIINCAPSA; + +struct MIDIINCAPSW { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[MAXPNAMELEN]; + DWORD dwSupport; +} +alias MIDIINCAPSW* PMIDIINCAPSW, LPMIDIINCAPSW; + +struct MIDIHDR { + LPSTR lpData; + DWORD dwBufferLength; + DWORD dwBytesRecorded; + DWORD dwUser; + DWORD dwFlags; + MIDIHDR *lpNext; + DWORD reserved; + DWORD dwOffset; + DWORD dwReserved[8]; +} +alias MIDIHDR* PMIDIHDR, LPMIDIHDR; + +struct MIDIEVENT { + DWORD dwDeltaTime; + DWORD dwStreamID; + DWORD dwEvent; + DWORD dwParms[1]; +} + +struct MIDISTRMBUFFVER { + DWORD dwVersion; + DWORD dwMid; + DWORD dwOEMVersion; +} + +struct MIDIPROPTIMEDIV { + DWORD cbStruct; + DWORD dwTimeDiv; +} +alias MIDIPROPTIMEDIV* LPMIDIPROPTIMEDIV; + +struct MIDIPROPTEMPO { + DWORD cbStruct; + DWORD dwTempo; +} +alias MIDIPROPTEMPO* LPMIDIPROPTEMPO; + +struct AUXCAPSA { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[MAXPNAMELEN]; + WORD wTechnology; + WORD wReserved1; + DWORD dwSupport; +} +alias AUXCAPSA* PAUXCAPSA, LPAUXCAPSA; + +struct AUXCAPSW { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[MAXPNAMELEN]; + WORD wTechnology; + WORD wReserved1; + DWORD dwSupport; +} +alias AUXCAPSW* PAUXCAPSW, LPAUXCAPSW; + +alias HANDLE HMIXEROBJ; +alias HMIXEROBJ* LPHMIXEROBJ; + +alias HANDLE HMIXER; +alias HMIXER* LPHMIXER; + +struct MIXERCAPSA { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[MAXPNAMELEN]; + DWORD fdwSupport; + DWORD cDestinations; +} +alias MIXERCAPSA* PMIXERCAPSA, LPMIXERCAPSA; + +struct MIXERCAPSW { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[MAXPNAMELEN]; + DWORD fdwSupport; + DWORD cDestinations; +} +alias MIXERCAPSW* PMIXERCAPSW, LPMIXERCAPSW; + +struct MIXERLINEA { + DWORD cbStruct; + DWORD dwDestination; + DWORD dwSource; + DWORD dwLineID; + DWORD fdwLine; + DWORD dwUser; + DWORD dwComponentType; + DWORD cChannels; + DWORD cConnections; + DWORD cControls; + CHAR szShortName[MIXER_SHORT_NAME_CHARS]; + CHAR szName[MIXER_LONG_NAME_CHARS]; + struct Target { + DWORD dwType; + DWORD dwDeviceID; + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[MAXPNAMELEN]; + } +} +alias MIXERLINEA* PMIXERLINEA, LPMIXERLINEA; + +struct MIXERLINEW { + DWORD cbStruct; + DWORD dwDestination; + DWORD dwSource; + DWORD dwLineID; + DWORD fdwLine; + DWORD dwUser; + DWORD dwComponentType; + DWORD cChannels; + DWORD cConnections; + DWORD cControls; + WCHAR szShortName[MIXER_SHORT_NAME_CHARS]; + WCHAR szName[MIXER_LONG_NAME_CHARS]; + struct Target { + DWORD dwType; + DWORD dwDeviceID; + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[MAXPNAMELEN]; + } +} +alias MIXERLINEW* PMIXERLINEW, LPMIXERLINEW; + +struct MIXERCONTROLA { + DWORD cbStruct; + DWORD dwControlID; + DWORD dwControlType; + DWORD fdwControl; + DWORD cMultipleItems; + CHAR szShortName[MIXER_SHORT_NAME_CHARS]; + CHAR szName[MIXER_LONG_NAME_CHARS]; + union _Bounds { + struct { + LONG lMinimum; + LONG lMaximum; + } + struct { + DWORD dwMinimum; + DWORD dwMaximum; + } + DWORD dwReserved[6]; + } + _Bounds Bounds; + union _Metrics { + DWORD cSteps; + DWORD cbCustomData; + DWORD dwReserved[6]; + } + _Metrics Metrics; +} +alias MIXERCONTROLA* PMIXERCONTROLA, LPMIXERCONTROLA; + +struct MIXERCONTROLW { + DWORD cbStruct; + DWORD dwControlID; + DWORD dwControlType; + DWORD fdwControl; + DWORD cMultipleItems; + WCHAR szShortName[MIXER_SHORT_NAME_CHARS]; + WCHAR szName[MIXER_LONG_NAME_CHARS]; + union _Bounds { + struct { + LONG lMinimum; + LONG lMaximum; + } + struct { + DWORD dwMinimum; + DWORD dwMaximum; + } + DWORD dwReserved[6]; + } + _Bounds Bounds; + union _Metrics { + DWORD cSteps; + DWORD cbCustomData; + DWORD dwReserved[6]; + } + _Metrics Metrics; +} + +alias MIXERCONTROLW* PMIXERCONTROLW, LPMIXERCONTROLW; + +struct MIXERLINECONTROLSA { + DWORD cbStruct; + DWORD dwLineID; + union { + DWORD dwControlID; + DWORD dwControlType; + } + DWORD cControls; + DWORD cbmxctrl; + LPMIXERCONTROLA pamxctrl; +} +alias MIXERLINECONTROLSA* PMIXERLINECONTROLSA, LPMIXERLINECONTROLSA; + +struct MIXERLINECONTROLSW { + DWORD cbStruct; + DWORD dwLineID; + union { + DWORD dwControlID; + DWORD dwControlType; + } + DWORD cControls; + DWORD cbmxctrl; + LPMIXERCONTROLW pamxctrl; +} +alias MIXERLINECONTROLSW* PMIXERLINECONTROLSW, LPMIXERLINECONTROLSW; + +struct MIXERCONTROLDETAILS { + DWORD cbStruct; + DWORD dwControlID; + DWORD cChannels; + union { + HWND hwndOwner; + DWORD cMultipleItems; + } + DWORD cbDetails; + PVOID paDetails; +} +alias MIXERCONTROLDETAILS* PMIXERCONTROLDETAILS, LPMIXERCONTROLDETAILS; + +struct MIXERCONTROLDETAILS_LISTTEXTA { + DWORD dwParam1; + DWORD dwParam2; + CHAR szName[MIXER_LONG_NAME_CHARS]; +} +alias MIXERCONTROLDETAILS_LISTTEXTA* PMIXERCONTROLDETAILS_LISTTEXTA,LPMIXERCONTROLDETAILS_LISTTEXTA; + +struct MIXERCONTROLDETAILS_LISTTEXTW { + DWORD dwParam1; + DWORD dwParam2; + WCHAR szName[MIXER_LONG_NAME_CHARS]; +} +alias MIXERCONTROLDETAILS_LISTTEXTW* PMIXERCONTROLDETAILS_LISTTEXTW,LPMIXERCONTROLDETAILS_LISTTEXTW; + +struct MIXERCONTROLDETAILS_BOOLEAN { + LONG fValue; +} +alias MIXERCONTROLDETAILS_BOOLEAN* PMIXERCONTROLDETAILS_BOOLEAN, LPMIXERCONTROLDETAILS_BOOLEAN; + +struct MIXERCONTROLDETAILS_SIGNED { + LONG lValue; +} +alias MIXERCONTROLDETAILS_SIGNED* PMIXERCONTROLDETAILS_SIGNED, LPMIXERCONTROLDETAILS_SIGNED; + +struct MIXERCONTROLDETAILS_UNSIGNED { + DWORD dwValue; +} +alias MIXERCONTROLDETAILS_UNSIGNED* PMIXERCONTROLDETAILS_UNSIGNED, LPMIXERCONTROLDETAILS_UNSIGNED; + +alias void function (UINT,UINT,DWORD,DWORD,DWORD) LPTIMECALLBACK; + +struct TIMECAPS { + UINT wPeriodMin; + UINT wPeriodMax; +} +alias TIMECAPS* PTIMECAPS, LPTIMECAPS; + +struct JOYCAPSA { + WORD wMid; + WORD wPid; + CHAR szPname[MAXPNAMELEN]; + UINT wXmin; + UINT wXmax; + UINT wYmin; + UINT wYmax; + UINT wZmin; + UINT wZmax; + UINT wNumButtons; + UINT wPeriodMin; + UINT wPeriodMax; + UINT wRmin; + UINT wRmax; + UINT wUmin; + UINT wUmax; + UINT wVmin; + UINT wVmax; + UINT wCaps; + UINT wMaxAxes; + UINT wNumAxes; + UINT wMaxButtons; + CHAR szRegKey[MAXPNAMELEN]; + CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; +} +alias JOYCAPSA* PJOYCAPSA, LPJOYCAPSA; + +struct JOYCAPSW { + WORD wMid; + WORD wPid; + WCHAR szPname[MAXPNAMELEN]; + UINT wXmin; + UINT wXmax; + UINT wYmin; + UINT wYmax; + UINT wZmin; + UINT wZmax; + UINT wNumButtons; + UINT wPeriodMin; + UINT wPeriodMax; + UINT wRmin; + UINT wRmax; + UINT wUmin; + UINT wUmax; + UINT wVmin; + UINT wVmax; + UINT wCaps; + UINT wMaxAxes; + UINT wNumAxes; + UINT wMaxButtons; + WCHAR szRegKey[MAXPNAMELEN]; + WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; +} +alias JOYCAPSW* PJOYCAPSW, LPJOYCAPSW; + +struct JOYINFO { + UINT wXpos; + UINT wYpos; + UINT wZpos; + UINT wButtons; +} +alias JOYINFO* PJOYINFO, LPJOYINFO; + +struct JOYINFOEX { + DWORD dwSize; + DWORD dwFlags; + DWORD dwXpos; + DWORD dwYpos; + DWORD dwZpos; + DWORD dwRpos; + DWORD dwUpos; + DWORD dwVpos; + DWORD dwButtons; + DWORD dwButtonNumber; + DWORD dwPOV; + DWORD dwReserved1; + DWORD dwReserved2; +} +alias JOYINFOEX* PJOYINFOEX, LPJOYINFOEX; + +alias DWORD FOURCC; +alias char* HPSTR; + +alias HANDLE HMMIO; + +alias LRESULT function (LPSTR,UINT,LPARAM,LPARAM) LPMMIOPROC; + +struct MMIOINFO { + DWORD dwFlags; + FOURCC fccIOProc; + LPMMIOPROC pIOProc; + UINT wErrorRet; + HTASK htask; + LONG cchBuffer; + HPSTR pchBuffer; + HPSTR pchNext; + HPSTR pchEndRead; + HPSTR pchEndWrite; + LONG lBufOffset; + LONG lDiskOffset; + DWORD adwInfo[3]; + DWORD dwReserved1; + DWORD dwReserved2; + HMMIO hmmio; +} +alias MMIOINFO* PMMIOINFO, LPMMIOINFO; +alias CPtr!(MMIOINFO) LPCMMIOINFO; + +struct MMCKINFO { + FOURCC ckid; + DWORD cksize; + FOURCC fccType; + DWORD dwDataOffset; + DWORD dwFlags; +} +alias MMCKINFO* PMMCKINFO, LPMMCKINFO; +alias CPtr!(MMCKINFO) LPCMMCKINFO; + +struct MCI_GENERIC_PARMS { + DWORD dwCallback; +} +alias MCI_GENERIC_PARMS* PMCI_GENERIC_PARMS, LPMCI_GENERIC_PARMS; + +struct MCI_OPEN_PARMSA { + DWORD dwCallback; + MCIDEVICEID wDeviceID; + LPCSTR lpstrDeviceType; + LPCSTR lpstrElementName; + LPCSTR lpstrAlias; +} +alias MCI_OPEN_PARMSA* PMCI_OPEN_PARMSA, LPMCI_OPEN_PARMSA; + +struct MCI_OPEN_PARMSW { + DWORD dwCallback; + MCIDEVICEID wDeviceID; + LPCWSTR lpstrDeviceType; + LPCWSTR lpstrElementName; + LPCWSTR lpstrAlias; +} +alias MCI_OPEN_PARMSW* PMCI_OPEN_PARMSW, LPMCI_OPEN_PARMSW; + +struct MCI_PLAY_PARMS { + DWORD dwCallback; + DWORD dwFrom; + DWORD dwTo; +} +alias MCI_PLAY_PARMS* PMCI_PLAY_PARMS, LPMCI_PLAY_PARMS; + +struct MCI_SEEK_PARMS { + DWORD dwCallback; + DWORD dwTo; +} +alias MCI_SEEK_PARMS* PMCI_SEEK_PARMS, LPMCI_SEEK_PARMS; + +struct MCI_STATUS_PARMS { + DWORD dwCallback; + DWORD dwReturn; + DWORD dwItem; + DWORD dwTrack; +} +alias MCI_STATUS_PARMS* PMCI_STATUS_PARMS, LPMCI_STATUS_PARMS; + +struct MCI_INFO_PARMSA { + DWORD dwCallback; + LPSTR lpstrReturn; + DWORD dwRetSize; +} +alias MCI_INFO_PARMSA* LPMCI_INFO_PARMSA; + +struct MCI_INFO_PARMSW { + DWORD dwCallback; + LPWSTR lpstrReturn; + DWORD dwRetSize; +} +alias MCI_INFO_PARMSW* LPMCI_INFO_PARMSW; + +struct MCI_GETDEVCAPS_PARMS { + DWORD dwCallback; + DWORD dwReturn; + DWORD dwItem; +} +alias MCI_GETDEVCAPS_PARMS* PMCI_GETDEVCAPS_PARMS, LPMCI_GETDEVCAPS_PARMS; + +struct MCI_SYSINFO_PARMSA { + DWORD dwCallback; + LPSTR lpstrReturn; + DWORD dwRetSize; + DWORD dwNumber; + UINT wDeviceType; +} +alias MCI_SYSINFO_PARMSA* PMCI_SYSINFO_PARMSA, LPMCI_SYSINFO_PARMSA; + +struct MCI_SYSINFO_PARMSW { + DWORD dwCallback; + LPWSTR lpstrReturn; + DWORD dwRetSize; + DWORD dwNumber; + UINT wDeviceType; +} +alias MCI_SYSINFO_PARMSW* PMCI_SYSINFO_PARMSW, LPMCI_SYSINFO_PARMSW; + +struct MCI_SET_PARMS { + DWORD dwCallback; + DWORD dwTimeFormat; + DWORD dwAudio; +} +alias MCI_SET_PARMS* PMCI_SET_PARMS, LPMCI_SET_PARMS; + +struct MCI_BREAK_PARMS { + DWORD dwCallback; + int nVirtKey; + HWND hwndBreak; +} +alias MCI_BREAK_PARMS* PMCI_BREAK_PARMS, LPMCI_BREAK_PARMS; + +struct MCI_SAVE_PARMSA { + DWORD dwCallback; + LPCSTR lpfilename; +} +alias MCI_SAVE_PARMSA* PMCI_SAVE_PARMSA, LPMCI_SAVE_PARMSA; + +struct MCI_SAVE_PARMSW { + DWORD dwCallback; + LPCWSTR lpfilename; +} +alias MCI_SAVE_PARMSW* PMCI_SAVE_PARMSW, LPMCI_SAVE_PARMSW; + +struct MCI_LOAD_PARMSA { + DWORD dwCallback; + LPCSTR lpfilename; +} +alias MCI_LOAD_PARMSA* PMCI_LOAD_PARMSA, LPMCI_LOAD_PARMSA; + +struct MCI_LOAD_PARMSW { + DWORD dwCallback; + LPCWSTR lpfilename; +} +alias MCI_LOAD_PARMSW* PMCI_LOAD_PARMSW, LPMCI_LOAD_PARMSW; + +struct MCI_RECORD_PARMS { + DWORD dwCallback; + DWORD dwFrom; + DWORD dwTo; +} +alias MCI_RECORD_PARMS* LPMCI_RECORD_PARMS; + +struct MCI_VD_PLAY_PARMS { + DWORD dwCallback; + DWORD dwFrom; + DWORD dwTo; + DWORD dwSpeed; +} +alias MCI_VD_PLAY_PARMS* PMCI_VD_PLAY_PARMS, LPMCI_VD_PLAY_PARMS; + +struct MCI_VD_STEP_PARMS { + DWORD dwCallback; + DWORD dwFrames; +} +alias MCI_VD_STEP_PARMS* PMCI_VD_STEP_PARMS, LPMCI_VD_STEP_PARMS; + +struct MCI_VD_ESCAPE_PARMSA { + DWORD dwCallback; + LPCSTR lpstrCommand; +} +alias MCI_VD_ESCAPE_PARMSA* PMCI_VD_ESCAPE_PARMSA, LPMCI_VD_ESCAPE_PARMSA; + +struct MCI_VD_ESCAPE_PARMSW { + DWORD dwCallback; + LPCWSTR lpstrCommand; +} +alias MCI_VD_ESCAPE_PARMSW* PMCI_VD_ESCAPE_PARMSW, LPMCI_VD_ESCAPE_PARMSW; + +struct MCI_WAVE_OPEN_PARMSA { + DWORD dwCallback; + MCIDEVICEID wDeviceID; + LPCSTR lpstrDeviceType; + LPCSTR lpstrElementName; + LPCSTR lpstrAlias; + DWORD dwBufferSeconds; +} +alias MCI_WAVE_OPEN_PARMSA* PMCI_WAVE_OPEN_PARMSA, LPMCI_WAVE_OPEN_PARMSA; + +struct MCI_WAVE_OPEN_PARMSW { + DWORD dwCallback; + MCIDEVICEID wDeviceID; + LPCWSTR lpstrDeviceType; + LPCWSTR lpstrElementName; + LPCWSTR lpstrAlias; + DWORD dwBufferSeconds; +} +alias MCI_WAVE_OPEN_PARMSW* PMCI_WAVE_OPEN_PARMSW, LPMCI_WAVE_OPEN_PARMSW; + +struct MCI_WAVE_DELETE_PARMS { + DWORD dwCallback; + DWORD dwFrom; + DWORD dwTo; +} +alias MCI_WAVE_DELETE_PARMS* PMCI_WAVE_DELETE_PARMS, LPMCI_WAVE_DELETE_PARMS; + +struct MCI_WAVE_SET_PARMS { + DWORD dwCallback; + DWORD dwTimeFormat; + DWORD dwAudio; + UINT wInput; + UINT wOutput; + WORD wFormatTag; + WORD wReserved2; + WORD nChannels; + WORD wReserved3; + DWORD nSamplesPerSec; + DWORD nAvgBytesPerSec; + WORD nBlockAlign; + WORD wReserved4; + WORD wBitsPerSample; + WORD wReserved5; +} +alias MCI_WAVE_SET_PARMS* PMCI_WAVE_SET_PARMS, LPMCI_WAVE_SET_PARMS; + +extern (Windows): +LRESULT CloseDriver(HDRVR,LONG,LONG); +HDRVR OpenDriver(LPCWSTR,LPCWSTR,LONG); +LRESULT SendDriverMessage(HDRVR,UINT,LONG,LONG); +HMODULE DrvGetModuleHandle(HDRVR); +HMODULE GetDriverModuleHandle(HDRVR); +LRESULT DefDriverProc(DWORD,HDRVR,UINT,LPARAM,LPARAM); +UINT mmsystemGetVersion(); +// FIXME: I believe this next line is a mistake +//alias OutputDebugString OutputDebugStr; +BOOL sndPlaySoundA(LPCSTR,UINT); +BOOL sndPlaySoundW(LPCWSTR,UINT); +BOOL PlaySoundA(LPCSTR,HMODULE,DWORD); +BOOL PlaySoundW(LPCWSTR,HMODULE,DWORD); +UINT waveOutGetNumDevs(); +MMRESULT waveOutGetDevCapsA(UINT,LPWAVEOUTCAPSA,UINT); +MMRESULT waveOutGetDevCapsW(UINT,LPWAVEOUTCAPSW,UINT); +MMRESULT waveOutGetVolume(HWAVEOUT,PDWORD); +MMRESULT waveOutSetVolume(HWAVEOUT,DWORD); +MMRESULT waveOutGetErrorTextA(MMRESULT,LPSTR,UINT); +MMRESULT waveOutGetErrorTextW(MMRESULT,LPWSTR,UINT); +MMRESULT waveOutOpen(LPHWAVEOUT,UINT,LPCWAVEFORMATEX,DWORD,DWORD,DWORD); +MMRESULT waveOutClose(HWAVEOUT); +MMRESULT waveOutPrepareHeader(HWAVEOUT,LPWAVEHDR,UINT); +MMRESULT waveOutUnprepareHeader(HWAVEOUT,LPWAVEHDR,UINT); +MMRESULT waveOutWrite(HWAVEOUT,LPWAVEHDR,UINT); +MMRESULT waveOutPause(HWAVEOUT); +MMRESULT waveOutRestart(HWAVEOUT); +MMRESULT waveOutReset(HWAVEOUT); +MMRESULT waveOutBreakLoop(HWAVEOUT); +MMRESULT waveOutGetPosition(HWAVEOUT,LPMMTIME,UINT); +MMRESULT waveOutGetPitch(HWAVEOUT,PDWORD); +MMRESULT waveOutSetPitch(HWAVEOUT,DWORD); +MMRESULT waveOutGetPlaybackRate(HWAVEOUT,PDWORD); +MMRESULT waveOutSetPlaybackRate(HWAVEOUT,DWORD); +MMRESULT waveOutGetID(HWAVEOUT,LPUINT); +MMRESULT waveOutMessage(HWAVEOUT,UINT,DWORD,DWORD); +UINT waveInGetNumDevs(); +MMRESULT waveInGetDevCapsA(UINT,LPWAVEINCAPSA,UINT); +MMRESULT waveInGetDevCapsW(UINT,LPWAVEINCAPSW,UINT); +MMRESULT waveInGetErrorTextA(MMRESULT,LPSTR,UINT); +MMRESULT waveInGetErrorTextW(MMRESULT,LPWSTR,UINT); +MMRESULT waveInOpen(LPHWAVEIN,UINT,LPCWAVEFORMATEX,DWORD,DWORD,DWORD); +MMRESULT waveInClose(HWAVEIN); +MMRESULT waveInPrepareHeader(HWAVEIN,LPWAVEHDR,UINT); +MMRESULT waveInUnprepareHeader(HWAVEIN,LPWAVEHDR,UINT); +MMRESULT waveInAddBuffer(HWAVEIN,LPWAVEHDR,UINT); +MMRESULT waveInStart(HWAVEIN); +MMRESULT waveInStop(HWAVEIN); +MMRESULT waveInReset(HWAVEIN); +MMRESULT waveInGetPosition(HWAVEIN,LPMMTIME,UINT); +MMRESULT waveInGetID(HWAVEIN,LPUINT); +MMRESULT waveInMessage(HWAVEIN,UINT,DWORD,DWORD); +UINT midiOutGetNumDevs(); +MMRESULT midiStreamOpen(LPHMIDISTRM,LPUINT,DWORD,DWORD,DWORD,DWORD); +MMRESULT midiStreamClose(HMIDISTRM); +MMRESULT midiStreamProperty(HMIDISTRM,LPBYTE,DWORD); +MMRESULT midiStreamPosition(HMIDISTRM,LPMMTIME,UINT); +MMRESULT midiStreamOut(HMIDISTRM,LPMIDIHDR,UINT); +MMRESULT midiStreamPause(HMIDISTRM); +MMRESULT midiStreamRestart(HMIDISTRM); +MMRESULT midiStreamStop(HMIDISTRM); +MMRESULT midiConnect(HMIDI,HMIDIOUT,PVOID); +MMRESULT midiDisconnect(HMIDI,HMIDIOUT,PVOID); +MMRESULT midiOutGetDevCapsA(UINT,LPMIDIOUTCAPSA,UINT); +MMRESULT midiOutGetDevCapsW(UINT,LPMIDIOUTCAPSW,UINT); +MMRESULT midiOutGetVolume(HMIDIOUT,PDWORD); +MMRESULT midiOutSetVolume(HMIDIOUT,DWORD); +MMRESULT midiOutGetErrorTextA(MMRESULT,LPSTR,UINT); +MMRESULT midiOutGetErrorTextW(MMRESULT,LPWSTR,UINT); +MMRESULT midiOutOpen(LPHMIDIOUT,UINT,DWORD,DWORD,DWORD); +MMRESULT midiOutClose(HMIDIOUT); +MMRESULT midiOutPrepareHeader(HMIDIOUT,LPMIDIHDR,UINT); +MMRESULT midiOutUnprepareHeader(HMIDIOUT,LPMIDIHDR,UINT); +MMRESULT midiOutShortMsg(HMIDIOUT,DWORD); +MMRESULT midiOutLongMsg(HMIDIOUT,LPMIDIHDR,UINT); +MMRESULT midiOutReset(HMIDIOUT); +MMRESULT midiOutCachePatches(HMIDIOUT,UINT,LPWORD,UINT); +MMRESULT midiOutCacheDrumPatches(HMIDIOUT,UINT,LPWORD,UINT); +MMRESULT midiOutGetID(HMIDIOUT,LPUINT); +MMRESULT midiOutMessage(HMIDIOUT,UINT,DWORD,DWORD); +UINT midiInGetNumDevs(); +MMRESULT midiInGetDevCapsA(UINT,LPMIDIINCAPSA,UINT); +MMRESULT midiInGetDevCapsW(UINT,LPMIDIINCAPSW,UINT); +MMRESULT midiInGetErrorTextA(MMRESULT,LPSTR,UINT); +MMRESULT midiInGetErrorTextW(MMRESULT,LPWSTR,UINT); +MMRESULT midiInOpen(LPHMIDIIN,UINT,DWORD,DWORD,DWORD); +MMRESULT midiInClose(HMIDIIN); +MMRESULT midiInPrepareHeader(HMIDIIN,LPMIDIHDR,UINT); +MMRESULT midiInUnprepareHeader(HMIDIIN,LPMIDIHDR,UINT); +MMRESULT midiInAddBuffer(HMIDIIN,LPMIDIHDR,UINT); +MMRESULT midiInStart(HMIDIIN); +MMRESULT midiInStop(HMIDIIN); +MMRESULT midiInReset(HMIDIIN); +MMRESULT midiInGetID(HMIDIIN,LPUINT); +MMRESULT midiInMessage(HMIDIIN,UINT,DWORD,DWORD); +UINT auxGetNumDevs(); +MMRESULT auxGetDevCapsA(UINT,LPAUXCAPSA,UINT); +MMRESULT auxGetDevCapsW(UINT,LPAUXCAPSW,UINT); +MMRESULT auxSetVolume(UINT,DWORD); +MMRESULT auxGetVolume(UINT,PDWORD); +MMRESULT auxOutMessage(UINT,UINT,DWORD,DWORD); +UINT mixerGetNumDevs(); +MMRESULT mixerGetDevCapsA(UINT,LPMIXERCAPSA,UINT); +MMRESULT mixerGetDevCapsW(UINT,LPMIXERCAPSW,UINT); +MMRESULT mixerOpen(LPHMIXER,UINT,DWORD,DWORD,DWORD); +MMRESULT mixerClose(HMIXER); +DWORD mixerMessage(HMIXER,UINT,DWORD,DWORD); +MMRESULT mixerGetLineInfoA(HMIXEROBJ,LPMIXERLINEA,DWORD); +MMRESULT mixerGetLineInfoW(HMIXEROBJ,LPMIXERLINEW,DWORD); +MMRESULT mixerGetID(HMIXEROBJ,PUINT,DWORD); +MMRESULT mixerGetLineControlsA(HMIXEROBJ,LPMIXERLINECONTROLSA,DWORD); +MMRESULT mixerGetLineControlsW(HMIXEROBJ,LPMIXERLINECONTROLSW,DWORD); +MMRESULT mixerGetControlDetailsA(HMIXEROBJ,LPMIXERCONTROLDETAILS,DWORD); +MMRESULT mixerGetControlDetailsW(HMIXEROBJ,LPMIXERCONTROLDETAILS,DWORD); +MMRESULT mixerSetControlDetails(HMIXEROBJ,LPMIXERCONTROLDETAILS,DWORD); +MMRESULT timeGetSystemTime(LPMMTIME,UINT); +DWORD timeGetTime(); +MMRESULT timeSetEvent(UINT,UINT,LPTIMECALLBACK,DWORD,UINT); +MMRESULT timeKillEvent(UINT); +MMRESULT timeGetDevCaps(LPTIMECAPS,UINT); +MMRESULT timeBeginPeriod(UINT); +MMRESULT timeEndPeriod(UINT); +UINT joyGetNumDevs(); +MMRESULT joyGetDevCapsA(UINT,LPJOYCAPSA,UINT); +MMRESULT joyGetDevCapsW(UINT,LPJOYCAPSW,UINT); +MMRESULT joyGetPos(UINT,LPJOYINFO); +MMRESULT joyGetPosEx(UINT,LPJOYINFOEX); +MMRESULT joyGetThreshold(UINT,LPUINT); +MMRESULT joyReleaseCapture(UINT); +MMRESULT joySetCapture(HWND,UINT,UINT,BOOL); +MMRESULT joySetThreshold(UINT,UINT); +FOURCC mmioStringToFOURCCA(LPCSTR,UINT); +FOURCC mmioStringToFOURCCW(LPCWSTR,UINT); +LPMMIOPROC mmioInstallIOProcA(FOURCC,LPMMIOPROC,DWORD); +LPMMIOPROC mmioInstallIOProcW(FOURCC,LPMMIOPROC,DWORD); +HMMIO mmioOpenA(LPSTR,LPMMIOINFO,DWORD); +HMMIO mmioOpenW(LPWSTR,LPMMIOINFO,DWORD); +MMRESULT mmioRenameA(LPCSTR,LPCSTR,LPCMMIOINFO,DWORD); +MMRESULT mmioRenameW(LPCWSTR,LPCWSTR,LPCMMIOINFO,DWORD); +MMRESULT mmioClose(HMMIO,UINT); +LONG mmioRead(HMMIO,HPSTR,LONG); +LONG mmioWrite(HMMIO,LPCSTR,LONG); +LONG mmioSeek(HMMIO,LONG,int); +MMRESULT mmioGetInfo(HMMIO,LPMMIOINFO,UINT); +MMRESULT mmioSetInfo(HMMIO,LPCMMIOINFO,UINT); +MMRESULT mmioSetBuffer(HMMIO,LPSTR,LONG,UINT); +MMRESULT mmioFlush(HMMIO,UINT); +MMRESULT mmioAdvance(HMMIO,LPMMIOINFO,UINT); +LRESULT mmioSendMessage(HMMIO,UINT,LPARAM,LPARAM); +MMRESULT mmioDescend(HMMIO,LPMMCKINFO, CPtr!(MMCKINFO),UINT); +MMRESULT mmioAscend(HMMIO,LPMMCKINFO,UINT); +MMRESULT mmioCreateChunk(HMMIO,LPMMCKINFO,UINT); +MCIERROR mciSendCommandA(MCIDEVICEID,UINT,DWORD,DWORD); +MCIERROR mciSendCommandW(MCIDEVICEID,UINT,DWORD,DWORD); +MCIERROR mciSendStringA(LPCSTR,LPSTR,UINT,HWND); +MCIERROR mciSendStringW(LPCWSTR,LPWSTR,UINT,HWND); +MCIDEVICEID mciGetDeviceIDA(LPCSTR); +MCIDEVICEID mciGetDeviceIDW(LPCWSTR); +MCIDEVICEID mciGetDeviceIDFromElementIDA(DWORD,LPCSTR); +MCIDEVICEID mciGetDeviceIDFromElementIDW(DWORD,LPCWSTR); +BOOL mciGetErrorStringA(MCIERROR,LPSTR,UINT); +BOOL mciGetErrorStringW(MCIERROR,LPWSTR,UINT); +BOOL mciSetYieldProc(MCIDEVICEID,YIELDPROC,DWORD); +HTASK mciGetCreatorTask(MCIDEVICEID); +YIELDPROC mciGetYieldProc(MCIDEVICEID,PDWORD); + +struct MCI_SEQ_SET_PARMS { + DWORD dwCallback; + DWORD dwTimeFormat; + DWORD dwAudio; + DWORD dwTempo; + DWORD dwPort; + DWORD dwSlave; + DWORD dwMaster; + DWORD dwOffset; +} +alias MCI_SEQ_SET_PARMS* PMCI_SEQ_SET_PARMS, LPMCI_SEQ_SET_PARMS; + +struct MCI_ANIM_OPEN_PARMSA { + DWORD dwCallback; + MCIDEVICEID wDeviceID; + LPCSTR lpstrDeviceType; + LPCSTR lpstrElementName; + LPCSTR lpstrAlias; + DWORD dwStyle; + HWND hWndParent; +} +alias MCI_ANIM_OPEN_PARMSA* PMCI_ANIM_OPEN_PARMSA, LPMCI_ANIM_OPEN_PARMSA; + +struct MCI_ANIM_OPEN_PARMSW { + DWORD dwCallback; + MCIDEVICEID wDeviceID; + LPCWSTR lpstrDeviceType; + LPCWSTR lpstrElementName; + LPCWSTR lpstrAlias; + DWORD dwStyle; + HWND hWndParent; +} +alias MCI_ANIM_OPEN_PARMSW* PMCI_ANIM_OPEN_PARMSW, LPMCI_ANIM_OPEN_PARMSW; + +struct MCI_ANIM_PLAY_PARMS { + DWORD dwCallback; + DWORD dwFrom; + DWORD dwTo; + DWORD dwSpeed; +} +alias MCI_ANIM_PLAY_PARMS* PMCI_ANIM_PLAY_PARMS, LPMCI_ANIM_PLAY_PARMS; + +struct MCI_ANIM_STEP_PARMS { + DWORD dwCallback; + DWORD dwFrames; +} +alias MCI_ANIM_STEP_PARMS* PMCI_ANIM_STEP_PARMS, LPMCI_ANIM_STEP_PARMS; + +struct MCI_ANIM_WINDOW_PARMSA { + DWORD dwCallback; + HWND hWnd; + UINT nCmdShow; + LPCSTR lpstrText; +} +alias MCI_ANIM_WINDOW_PARMSA* PMCI_ANIM_WINDOW_PARMSA, LPMCI_ANIM_WINDOW_PARMSA; + +struct MCI_ANIM_WINDOW_PARMSW { + DWORD dwCallback; + HWND hWnd; + UINT nCmdShow; + LPCWSTR lpstrText; +} +alias MCI_ANIM_WINDOW_PARMSW* PMCI_ANIM_WINDOW_PARMSW, LPMCI_ANIM_WINDOW_PARMSW; + +struct MCI_ANIM_RECT_PARMS { + DWORD dwCallback; + //#ifdef MCI_USE_OFFEXT + // POINT ptOffset; + // POINT ptExtent; + //#else + RECT rc; + //#endif +} +alias MCI_ANIM_RECT_PARMS* PMCI_ANIM_RECT_PARMS, LPMCI_ANIM_RECT_PARMS; + +struct MCI_ANIM_UPDATE_PARMS { + DWORD dwCallback; + RECT rc; + HDC hDC; +} +alias MCI_ANIM_UPDATE_PARMS* PMCI_ANIM_UPDATE_PARMS, LPMCI_ANIM_UPDATE_PARMS; + +struct MCI_OVLY_OPEN_PARMSA { + DWORD dwCallback; + MCIDEVICEID wDeviceID; + LPCSTR lpstrDeviceType; + LPCSTR lpstrElementName; + LPCSTR lpstrAlias; + DWORD dwStyle; + HWND hWndParent; +} +alias MCI_OVLY_OPEN_PARMSA* PMCI_OVLY_OPEN_PARMSA, LPMCI_OVLY_OPEN_PARMSA; + +struct MCI_OVLY_OPEN_PARMSW { + DWORD dwCallback; + MCIDEVICEID wDeviceID; + LPCWSTR lpstrDeviceType; + LPCWSTR lpstrElementName; + LPCWSTR lpstrAlias; + DWORD dwStyle; + HWND hWndParent; +} +alias MCI_OVLY_OPEN_PARMSW* PMCI_OVLY_OPEN_PARMSW, LPMCI_OVLY_OPEN_PARMSW; + +struct MCI_OVLY_WINDOW_PARMSA { + DWORD dwCallback; + HWND hWnd; + UINT nCmdShow; + LPCSTR lpstrText; +} +alias MCI_OVLY_WINDOW_PARMSA* PMCI_OVLY_WINDOW_PARMSA, LPMCI_OVLY_WINDOW_PARMSA; + +struct MCI_OVLY_WINDOW_PARMSW { + DWORD dwCallback; + HWND hWnd; + UINT nCmdShow; + LPCWSTR lpstrText; +} +alias MCI_OVLY_WINDOW_PARMSW* PMCI_OVLY_WINDOW_PARMSW, LPMCI_OVLY_WINDOW_PARMSW; + +struct MCI_OVLY_RECT_PARMS { + DWORD dwCallback; + //#ifdef MCI_USE_OFFEXT + // POINT ptOffset; + // POINT ptExtent; + //#else + RECT rc; + //#endif +} +alias MCI_OVLY_RECT_PARMS* PMCI_OVLY_RECT_PARMS, LPMCI_OVLY_RECT_PARMS; + +struct MCI_OVLY_SAVE_PARMSA { + DWORD dwCallback; + LPCSTR lpfilename; + RECT rc; +} +alias MCI_OVLY_SAVE_PARMSA* PMCI_OVLY_SAVE_PARMSA, LPMCI_OVLY_SAVE_PARMSA; + +struct MCI_OVLY_SAVE_PARMSW { + DWORD dwCallback; + LPCWSTR lpfilename; + RECT rc; +} +alias MCI_OVLY_SAVE_PARMSW* PMCI_OVLY_SAVE_PARMSW, LPMCI_OVLY_SAVE_PARMSW; + +struct MCI_OVLY_LOAD_PARMSA { + DWORD dwCallback; + LPCSTR lpfilename; + RECT rc; +} +alias MCI_OVLY_LOAD_PARMSA* PMCI_OVLY_LOAD_PARMSA, LPMCI_OVLY_LOAD_PARMSA; + +struct MCI_OVLY_LOAD_PARMSW { + DWORD dwCallback; + LPCWSTR lpfilename; + RECT rc; +} +alias MCI_OVLY_LOAD_PARMSW* PMCI_OVLY_LOAD_PARMSW, LPMCI_OVLY_LOAD_PARMSW; + +version(Unicode) { + alias WAVEOUTCAPSW WAVEOUTCAPS; + alias WAVEINCAPSW WAVEINCAPS; + alias MIDIOUTCAPSW MIDIOUTCAPS; + alias MIDIINCAPSW MIDIINCAPS; + alias AUXCAPSW AUXCAPS; + alias MIXERCAPSW MIXERCAPS; + alias MIXERLINEW MIXERLINE; + alias MIXERCONTROLA MIXERCONTROL; + alias MIXERLINECONTROLSW MIXERLINECONTROLS; + alias MIXERCONTROLDETAILS_LISTTEXTW MIXERCONTROLDETAILS_LISTTEXT; + alias JOYCAPSW JOYCAPS; + alias MCI_OPEN_PARMSW MCI_OPEN_PARMS; + alias MCI_INFO_PARMSW MCI_INFO_PARMS; + alias MCI_SYSINFO_PARMSW MCI_SYSINFO_PARMS; + alias MCI_SAVE_PARMSW MCI_SAVE_PARMS; + alias MCI_LOAD_PARMSW MCI_LOAD_PARMS; + alias MCI_VD_ESCAPE_PARMSW MCI_VD_ESCAPE_PARMS; + alias MCI_WAVE_OPEN_PARMSW MCI_WAVE_OPEN_PARMS; + alias MCI_ANIM_OPEN_PARMSW MCI_ANIM_OPEN_PARMS; + alias MCI_ANIM_WINDOW_PARMSW MCI_ANIM_WINDOW_PARMS; + alias MCI_OVLY_OPEN_PARMSW MCI_OVLY_OPEN_PARMS; + alias MCI_OVLY_WINDOW_PARMSW MCI_OVLY_WINDOW_PARMS; + alias MCI_OVLY_SAVE_PARMSW MCI_OVLY_SAVE_PARMS; + + alias sndPlaySoundW sndPlaySound; + alias PlaySoundW PlaySound; + alias waveOutGetDevCapsW waveOutGetDevCaps; + alias waveOutGetErrorTextW waveOutGetErrorText; + alias waveInGetDevCapsW waveInGetDevCaps; + alias waveInGetErrorTextW waveInGetErrorText; + alias midiOutGetDevCapsW midiOutGetDevCaps; + alias midiOutGetErrorTextW midiOutGetErrorText; + alias midiInGetDevCapsW midiInGetDevCaps; + alias midiInGetErrorTextW midiInGetErrorText; + alias auxGetDevCapsW auxGetDevCaps; + alias mixerGetDevCapsW mixerGetDevCaps; + alias mixerGetLineInfoW mixerGetLineInfo; + alias mixerGetLineControlsW mixerGetLineControls; + alias mixerGetControlDetailsW mixerGetControlDetails; + alias joyGetDevCapsW joyGetDevCaps; + alias mmioInstallIOProcW mmioInstallIOProc; + alias mmioStringToFOURCCW mmioStringToFOURCC; + alias mmioOpenW mmioOpen; + alias mmioRenameW mmioRename; + alias mciSendCommandW mciSendCommand; + alias mciSendStringW mciSendString; + alias mciGetDeviceIDW mciGetDeviceID; + alias mciGetDeviceIDFromElementIDW mciGetDeviceIDFromElementID; + alias mciGetErrorStringW mciGetErrorString; + +} else { + alias WAVEOUTCAPSA WAVEOUTCAPS; + alias WAVEINCAPSA WAVEINCAPS; + alias MIDIOUTCAPSA MIDIOUTCAPS; + alias MIDIINCAPSA MIDIINCAPS; + alias AUXCAPSA AUXCAPS; + alias MIXERCAPSA MIXERCAPS; + alias MIXERLINEA MIXERLINE; + alias MIXERCONTROLA MIXERCONTROL; + alias MIXERLINECONTROLSA MIXERLINECONTROLS; + alias MIXERCONTROLDETAILS_LISTTEXTA MIXERCONTROLDETAILS_LISTTEXT; + alias JOYCAPSA JOYCAPS; + alias MCI_OPEN_PARMSA MCI_OPEN_PARMS; + alias MCI_INFO_PARMSA MCI_INFO_PARMS; + alias MCI_SYSINFO_PARMSA MCI_SYSINFO_PARMS; + alias MCI_SAVE_PARMSA MCI_SAVE_PARMS; + alias MCI_LOAD_PARMSA MCI_LOAD_PARMS; + alias MCI_VD_ESCAPE_PARMSA MCI_VD_ESCAPE_PARMS; + alias MCI_WAVE_OPEN_PARMSA MCI_WAVE_OPEN_PARMS; + alias MCI_ANIM_OPEN_PARMSA MCI_ANIM_OPEN_PARMS; + alias MCI_ANIM_WINDOW_PARMSA MCI_ANIM_WINDOW_PARMS; + alias MCI_OVLY_OPEN_PARMSA MCI_OVLY_OPEN_PARMS; + alias MCI_OVLY_WINDOW_PARMSA MCI_OVLY_WINDOW_PARMS; + alias MCI_OVLY_SAVE_PARMSA MCI_OVLY_SAVE_PARMS; + + alias sndPlaySoundA sndPlaySound; + alias PlaySoundA PlaySound; + alias waveOutGetDevCapsA waveOutGetDevCaps; + alias waveOutGetErrorTextA waveOutGetErrorText; + alias waveInGetDevCapsA waveInGetDevCaps; + alias waveInGetErrorTextA waveInGetErrorText; + alias midiOutGetDevCapsA midiOutGetDevCaps; + alias midiOutGetErrorTextA midiOutGetErrorText; + alias midiInGetDevCapsA midiInGetDevCaps; + alias midiInGetErrorTextA midiInGetErrorText; + alias auxGetDevCapsA auxGetDevCaps; + alias mixerGetDevCapsA mixerGetDevCaps; + alias mixerGetLineInfoA mixerGetLineInfo; + alias mixerGetLineControlsA mixerGetLineControls; + alias mixerGetControlDetailsA mixerGetControlDetails; + alias joyGetDevCapsA joyGetDevCaps; + alias mmioInstallIOProcA mmioInstallIOProc; + alias mmioStringToFOURCCA mmioStringToFOURCC; + alias mmioOpenA mmioOpen; + alias mmioRenameA mmioRename; + alias mciSendCommandA mciSendCommand; + alias mciSendStringA mciSendString; + alias mciGetDeviceIDA mciGetDeviceID; + alias mciGetDeviceIDFromElementIDA mciGetDeviceIDFromElementID; + alias mciGetErrorStringA mciGetErrorString; +} + +alias WAVEOUTCAPS* PWAVEOUTCAPS, LPWAVEOUTCAPS; +alias WAVEINCAPS* PWAVEINCAPS, LPWAVEINCAPS; +alias MIDIOUTCAPS* PMIDIOUTCAPS, LPMIDIOUTCAPS; +alias MIDIINCAPS* PMIDIINCAPS, LPMIDIINCAPS; +alias AUXCAPS* PAUXCAPS, LPAUXCAPS; +alias MIXERCAPS* PMIXERCAPS, LPMIXERCAPS; +alias MIXERLINE* PMIXERLINE, LPMIXERLINE; +alias MIXERCONTROL* PMIXERCONTROL, LPMIXERCONTROL; +alias MIXERLINECONTROLS* PMIXERLINECONTROLS, LPMIXERLINECONTROLS; +alias MIXERCONTROLDETAILS_LISTTEXT* PMIXERCONTROLDETAILS_LISTTEXT, LPMIXERCONTROLDETAILS_LISTTEXT; +alias JOYCAPS* PJOYCAPS, LPJOYCAPS; +alias MCI_OPEN_PARMS* PMCI_OPEN_PARMS, LPMCI_OPEN_PARMS; +alias MCI_INFO_PARMS* LPMCI_INFO_PARMS; +alias MCI_SYSINFO_PARMS* PMCI_SYSINFO_PARMS, LPMCI_SYSINFO_PARMS; +alias MCI_SAVE_PARMS* PMCI_SAVE_PARMS, LPMCI_SAVE_PARMS; +alias MCI_LOAD_PARMS* PMCI_LOAD_PARMS, LPMCI_LOAD_PARMS; +alias MCI_VD_ESCAPE_PARMS* PMCI_VD_ESCAPE_PARMS, LPMCI_VD_ESCAPE_PARMS; +alias MCI_WAVE_OPEN_PARMS* PMCI_WAVE_OPEN_PARMS, LPMCI_WAVE_OPEN_PARMS; +alias MCI_ANIM_OPEN_PARMS* PMCI_ANIM_OPEN_PARMS, LPMCI_ANIM_OPEN_PARMS; +alias MCI_ANIM_WINDOW_PARMS* PMCI_ANIM_WINDOW_PARMS, LPMCI_ANIM_WINDOW_PARMS; +alias MCI_OVLY_OPEN_PARMS* PMCI_OVLY_OPEN_PARMS, LPMCI_OVLY_OPEN_PARMS; +alias MCI_OVLY_WINDOW_PARMS* PMCI_OVLY_WINDOW_PARMS, LPMCI_OVLY_WINDOW_PARMS; +alias MCI_OVLY_SAVE_PARMS* PMCI_OVLY_SAVE_PARMS, LPMCI_OVLY_SAVE_PARMS; ADDED src/win32/msacm.d Index: src/win32/msacm.d ================================================================== --- src/win32/msacm.d +++ src/win32/msacm.d @@ -0,0 +1,172 @@ +/***********************************************************************\ +* msacm.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.msacm; + +private import win32.basetsd, win32.mmsystem, win32.windef; + +alias HANDLE HACMDRIVERID, HACMDRIVER; +alias HANDLE* LPHACMDRIVER; + +/* Comment from MinGW + found through experimentation + */ +const size_t + ACMDRIVERDETAILS_SHORTNAME_CHARS = 32, + ACMDRIVERDETAILS_LONGNAME_CHARS = 128, + ACMDRIVERDETAILS_COPYRIGHT_CHARS = 80, + ACMDRIVERDETAILS_LICENSING_CHARS = 128; + +/* Comment from MinGW + I don't know the right values for these macros + */ +const size_t + ACMFORMATDETAILS_FORMAT_CHARS = 256, + ACMFORMATTAGDETAILS_FORMATTAG_CHARS = 256, + ACMDRIVERDETAILS_FEATURES_CHARS = 256; + +struct ACMFORMATDETAILSA { + DWORD cbStruct = ACMFORMATDETAILSA.sizeof; // are they? + DWORD dwFormatIndex; + DWORD dwFormatTag; + DWORD fdwSupport; + LPWAVEFORMATEX pwfx; + DWORD cbwfx; + char[ACMFORMATDETAILS_FORMAT_CHARS] szFormat; +} +alias ACMFORMATDETAILSA* LPACMFORMATDETAILSA; + +struct ACMFORMATDETAILSW { + DWORD cbStruct = ACMFORMATDETAILSW.sizeof; + DWORD dwFormatIndex; + DWORD dwFormatTag; + DWORD fdwSupport; + LPWAVEFORMATEX pwfx; + DWORD cbwfx; + WCHAR[ACMFORMATDETAILS_FORMAT_CHARS] szFormat; +} +alias ACMFORMATDETAILSW* LPACMFORMATDETAILSW; + +struct ACMFORMATTAGDETAILSA { + DWORD cbStruct = ACMFORMATTAGDETAILSA.sizeof; + DWORD dwFormatTagIndex; + DWORD dwFormatTag; + DWORD cbFormatSize; + DWORD fdwSupport; + DWORD cStandardFormats; + char[ACMFORMATTAGDETAILS_FORMATTAG_CHARS] szFormatTag; +} +alias ACMFORMATTAGDETAILSA* LPACMFORMATTAGDETAILSA; + +struct ACMFORMATTAGDETAILSW { + DWORD cbStruct = ACMFORMATTAGDETAILSW.sizeof; + DWORD dwFormatTagIndex; + DWORD dwFormatTag; + DWORD cbFormatSize; + DWORD fdwSupport; + DWORD cStandardFormats; + WCHAR[ACMFORMATTAGDETAILS_FORMATTAG_CHARS] szFormatTag; +} +alias ACMFORMATTAGDETAILSW* LPACMFORMATTAGDETAILSW; + +struct ACMDRIVERDETAILSA { + DWORD cbStruct = ACMDRIVERDETAILSA.sizeof; + FOURCC fccType; + FOURCC fccComp; + WORD wMid; + WORD wPid; + DWORD vdwACM; + DWORD vdwDriver; + DWORD fdwSupport; + DWORD cFormatTags; + DWORD cFilterTags; + HICON hicon; + char[ACMDRIVERDETAILS_SHORTNAME_CHARS] szShortName; + char[ACMDRIVERDETAILS_LONGNAME_CHARS] szLongName; + char[ACMDRIVERDETAILS_COPYRIGHT_CHARS] szCopyright; + char[ACMDRIVERDETAILS_LICENSING_CHARS] szLicensing; + char[ACMDRIVERDETAILS_FEATURES_CHARS] szFeatures; +} +alias ACMDRIVERDETAILSA* LPACMDRIVERDETAILSA; + +struct ACMDRIVERDETAILSW { + DWORD cbStruct = ACMDRIVERDETAILSW.sizeof; + FOURCC fccType; + FOURCC fccComp; + WORD wMid; + WORD wPid; + DWORD vdwACM; + DWORD vdwDriver; + DWORD fdwSupport; + DWORD cFormatTags; + DWORD cFilterTags; + HICON hicon; + WCHAR[ACMDRIVERDETAILS_SHORTNAME_CHARS] szShortName; + WCHAR[ACMDRIVERDETAILS_LONGNAME_CHARS] szLongName; + WCHAR[ACMDRIVERDETAILS_COPYRIGHT_CHARS] szCopyright; + WCHAR[ACMDRIVERDETAILS_LICENSING_CHARS] szLicensing; + WCHAR[ACMDRIVERDETAILS_FEATURES_CHARS] szFeatures; +} +alias ACMDRIVERDETAILSW* LPACMDRIVERDETAILSW; + +extern (Windows) { + alias BOOL function(HACMDRIVERID hadid, LPACMFORMATDETAILSA pafd, + DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATENUMCBA; + alias BOOL function(HACMDRIVERID hadid, LPACMFORMATDETAILSW pafd, + DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATENUMCBW; + alias BOOL function(HACMDRIVERID hadid, LPACMFORMATTAGDETAILSA paftd, + DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATTAGENUMCBA; + alias BOOL function(HACMDRIVERID hadid, LPACMFORMATTAGDETAILSW paftd, + DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATTAGENUMCBW; + alias BOOL function(HACMDRIVERID hadid, DWORD_PTR dwInstance, + DWORD fdwSupport) ACMDRIVERENUMCB; + + MMRESULT acmDriverOpen(LPHACMDRIVER phad, HACMDRIVERID hadid, + DWORD fdwOpen); + MMRESULT acmDriverEnum(ACMDRIVERENUMCB fnCallback, DWORD_PTR dwInstance, + DWORD fdwEnum); + MMRESULT acmFormatEnumA(HACMDRIVER had, LPACMFORMATDETAILSA pafd, + ACMFORMATENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum); + MMRESULT acmFormatEnumW(HACMDRIVER had, LPACMFORMATDETAILSW pafd, + ACMFORMATENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum); + MMRESULT acmDriverClose(HACMDRIVER had, DWORD fdwClose); + MMRESULT acmDriverDetailsA(HACMDRIVERID hadid, LPACMDRIVERDETAILSA padd, + DWORD fdwDetails); + MMRESULT acmDriverDetailsW(HACMDRIVERID hadid, LPACMDRIVERDETAILSW padd, + DWORD fdwDetails); + MMRESULT acmFormatTagEnumA(HACMDRIVER had, LPACMFORMATTAGDETAILSA paftd, + ACMFORMATTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum); + MMRESULT acmFormatTagEnumW(HACMDRIVER had, LPACMFORMATTAGDETAILSW paftd, + ACMFORMATTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum); +} + +version (Unicode) { + alias ACMFORMATDETAILSW ACMFORMATDETAILS; + alias ACMFORMATTAGDETAILSW ACMFORMATTAGDETAILS; + alias ACMDRIVERDETAILSW ACMDRIVERDETAILS; + alias ACMFORMATENUMCBW ACMFORMATENUMCB; + alias ACMFORMATTAGENUMCBW ACMFORMATTAGENUMCB; + alias acmFormatEnumW acmFormatEnum; + alias acmDriverDetailsW acmDriverDetails; + alias acmFormatTagEnumW acmFormatTagEnum; +} else { + alias ACMFORMATDETAILSA ACMFORMATDETAILS; + alias ACMFORMATTAGDETAILSA ACMFORMATTAGDETAILS; + alias ACMDRIVERDETAILSA ACMDRIVERDETAILS; + alias ACMFORMATENUMCBA ACMFORMATENUMCB; + alias ACMFORMATTAGENUMCBA ACMFORMATTAGENUMCB; + alias acmFormatEnumA acmFormatEnum; + alias acmDriverDetailsA acmDriverDetails; + alias acmFormatTagEnumA acmFormatTagEnum; +} + +alias ACMFORMATDETAILS* LPACMFORMATDETAILS; +alias ACMFORMATTAGDETAILS* LPACMFORMATTAGDETAILS; +alias ACMDRIVERDETAILS* LPACMDRIVERDETAILS; ADDED src/win32/mshtml.d Index: src/win32/mshtml.d ================================================================== --- src/win32/mshtml.d +++ src/win32/mshtml.d @@ -0,0 +1,536 @@ +/***********************************************************************\ +* mshtml.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.mshtml; + +private import win32.basetyps, win32.oaidl, win32.unknwn, + win32.windef, win32.wtypes; + +// These are used in this file, but not defined in MinGW. +interface IHTMLStyleSheet {}; +alias IHTMLStyle LPHTMLSTYLE; +alias IHTMLStyleSheet LPHTMLSTYLESHEET; +interface IHTMLLocation {}; +alias IHTMLLocation LPHTMLLOCATION; +interface IHTMLFramesCollection {}; +alias IHTMLFramesCollection LPHTMLFRAMESCOLLECTION; +interface IHTMLStyleSheetsCollection {}; +alias IHTMLStyleSheetsCollection LPHTMLSTYLESHEETSCOLLECTION; +interface IHTMLStyle {}; +interface IHTMLFiltersCollection {}; +alias IHTMLFiltersCollection LPHTMLFILTERSCOLLECTION; +interface IOmHistory : IDispatch { + HRESULT get_length(short* p); + HRESULT back(VARIANT*); + HRESULT forward(VARIANT*); + HRESULT go(VARIANT*); +}; +alias IOmHistory LPOMHISTORY; +interface IOmNavigator {}; +alias IOmNavigator LPOMNAVIGATOR; +interface IHTMLImageElementFactory {}; +alias IHTMLImageElementFactory LPHTMLIMAGEELEMENTFACTORY; +interface IHTMLEventObj {}; +alias IHTMLEventObj LPHTMLEVENTOBJ; +interface IHTMLScreen {}; +alias IHTMLScreen LPHTMLSCREEN; +interface IHTMLOptionElementFactory {}; +alias IHTMLOptionElementFactory LPHTMLOPTIONELEMENTFACTORY; + +interface IHTMLLinkElement : IDispatch { + HRESULT put_href(BSTR); + HRESULT get_href(BSTR*); + HRESULT put_rel(BSTR); + HRESULT get_rel(BSTR*); + HRESULT put_rev(BSTR); + HRESULT get_rev(BSTR*); + HRESULT put_type(BSTR); + HRESULT get_type(BSTR*); + HRESULT get_readyState(BSTR*); + HRESULT put_onreadystatechange(VARIANT); + HRESULT get_onreadystatechange(VARIANT*); + HRESULT put_onload(VARIANT); + HRESULT get_onload(VARIANT*); + HRESULT put_onerror(VARIANT); + HRESULT get_onerror(VARIANT*); + HRESULT get_styleSheet(LPHTMLSTYLESHEET*); + HRESULT put_disabled(VARIANT_BOOL); + HRESULT get_disabled(VARIANT_BOOL*); + HRESULT put_media(BSTR); + HRESULT get_media(BSTR*); +} +alias IHTMLLinkElement LPHTMLLINKELEMENT; + +interface IHTMLImgElement : IDispatch { + HRESULT put_isMap(VARIANT_BOOL); + HRESULT get_isMap(VARIANT_BOOL*); + HRESULT put_useMap(BSTR); + HRESULT get_useMap(BSTR*); + HRESULT get_mimeType(BSTR*); + HRESULT get_fileSize(BSTR*); + HRESULT get_fileCreatedDate(BSTR*); + HRESULT get_fileModifiedDate(BSTR*); + HRESULT get_fileUpdatedDate(BSTR*); + HRESULT get_protocol(BSTR*); + HRESULT get_href(BSTR*); + HRESULT get_nameProp(BSTR*); + HRESULT put_border(VARIANT); + HRESULT get_border(VARIANT*); + HRESULT put_vspace(LONG); + HRESULT get_vspace(LONG*); + HRESULT put_hspace(LONG); + HRESULT get_hspace(LONG*); + HRESULT put_alt(BSTR); + HRESULT get_alt(BSTR*); + HRESULT put_src(BSTR); + HRESULT get_src(BSTR*); + HRESULT put_lowsrc(BSTR); + HRESULT get_lowsrc(BSTR*); + HRESULT put_vrml(BSTR); + HRESULT get_vrml(BSTR*); + HRESULT put_dynsrc(BSTR); + HRESULT get_dynsrc(BSTR*); + HRESULT get_readyState(BSTR*); + HRESULT get_complete(VARIANT_BOOL*); + HRESULT put_loop(VARIANT); + HRESULT get_loop(VARIANT*); + HRESULT put_align(BSTR); + HRESULT get_align(BSTR*); + HRESULT put_onload(VARIANT); + HRESULT get_onload(VARIANT*); + HRESULT put_onerror(VARIANT); + HRESULT get_onerror(VARIANT*); + HRESULT put_onabort(VARIANT); + HRESULT get_onabort(VARIANT*); + HRESULT put_name(BSTR); + HRESULT get_name(BSTR*); + HRESULT put_width(LONG); + HRESULT get_width(LONG*); + HRESULT put_height(LONG); + HRESULT get_height(LONG*); + HRESULT put_start(BSTR); + HRESULT get_start(BSTR*); +} +alias IHTMLImgElement LPHTMLIMGELEMENT; + +interface IHTMLElementCollection : IDispatch { + HRESULT toString(BSTR*); + HRESULT put_length(LONG); + HRESULT get_length(LONG*); + HRESULT get__newEnum(IUnknown*); + HRESULT item(VARIANT,VARIANT,IDispatch* pDisp); + HRESULT tags(VARIANT,IDispatch* pdisp); +} +alias IHTMLElementCollection LPHTMLELEMENTCOLLECTION; + +interface IHTMLDocument : IDispatch { + HRESULT get_Script(IDispatch*); +} + +interface IHTMLDocument2 : IHTMLDocument { + HRESULT get_all(LPHTMLELEMENTCOLLECTION*); + HRESULT get_body(LPHTMLELEMENT*); + HRESULT get_activeElement(LPHTMLELEMENT*); + HRESULT get_images(LPHTMLELEMENTCOLLECTION*); + HRESULT get_applets(LPHTMLELEMENTCOLLECTION*); + HRESULT get_links(LPHTMLELEMENTCOLLECTION*); + HRESULT get_forms(LPHTMLELEMENTCOLLECTION*); + HRESULT get_anchors(LPHTMLELEMENTCOLLECTION*); + HRESULT put_title(BSTR); + HRESULT get_title(BSTR*); + HRESULT get_scripts(LPHTMLELEMENTCOLLECTION*); + HRESULT put_designMode(BSTR); + HRESULT get_designMode(BSTR*); + HRESULT get_selection(LPHTMLSELECTIONOBJECT*); + HRESULT get_readyState(BSTR*); + HRESULT get_frames(IHTMLFramesCollection2*); + HRESULT get_embeds(LPHTMLELEMENTCOLLECTION*); + HRESULT get_plugins(LPHTMLELEMENTCOLLECTION*); + HRESULT put_alinkColor(VARIANT); + HRESULT get_alinkColor(VARIANT*); + HRESULT put_bgColor(VARIANT); + HRESULT get_bgColor(VARIANT*); + HRESULT put_fgColor(VARIANT); + HRESULT get_fgColor(VARIANT*); + HRESULT put_linkColor(VARIANT); + HRESULT get_linkColor(VARIANT*); + HRESULT put_vlinkColor(VARIANT); + HRESULT get_vlinkColor(VARIANT*); + HRESULT get_referrer(BSTR*); + HRESULT get_location(LPHTMLLOCATION*); + HRESULT get_lastModified(BSTR*); + HRESULT put_url(BSTR); + HRESULT get_url(BSTR*); + HRESULT put_domain(BSTR); + HRESULT get_domain(BSTR*); + HRESULT put_cookie(BSTR); + HRESULT get_cookie(BSTR*); + HRESULT put_expands(VARIANT_BOOL); + HRESULT get_expands(VARIANT_BOOL*); + HRESULT put_charset(BSTR); + HRESULT get_charset(BSTR*); + HRESULT put_defaultCharset(BSTR); + HRESULT get_defaultCharset(BSTR*); + HRESULT get_mimeType(BSTR*); + HRESULT get_fileSize(BSTR*); + HRESULT get_fileCreatedDate(BSTR*); + HRESULT get_fileModifiedDate(BSTR*); + HRESULT get_fileUpdatedDate(BSTR*); + HRESULT get_security(BSTR*); + HRESULT get_protocol(BSTR*); + HRESULT get_nameProp(BSTR*); + HRESULT write(SAFEARRAY*); + HRESULT writeln(SAFEARRAY*); + HRESULT open(BSTR,VARIANT,VARIANT,VARIANT,IDispatch*); + HRESULT close(); + HRESULT clear(); + HRESULT queryCommandSupported(BSTR,VARIANT_BOOL*); + HRESULT queryCommandEnabled(BSTR,VARIANT_BOOL*); + HRESULT queryCommandState(BSTR,VARIANT_BOOL*); + HRESULT queryCommandIndeterm(BSTR,VARIANT_BOOL*); + HRESULT queryCommandText(BSTR,BSTR*); + HRESULT queryCommandValue(BSTR,VARIANT*); + HRESULT execCommand(BSTR,VARIANT_BOOL,VARIANT,VARIANT_BOOL*); + HRESULT execCommandShowHelp(BSTR,VARIANT_BOOL*); + HRESULT createElement(BSTR,LPHTMLELEMENT*); + HRESULT put_onhelp(VARIANT); + HRESULT get_onhelp(VARIANT*); + HRESULT put_onclick(VARIANT); + HRESULT get_onclick(VARIANT*); + HRESULT put_ondblclick(VARIANT); + HRESULT get_ondblclick(VARIANT*); + HRESULT put_onkeyup(VARIANT); + HRESULT get_onkeyup(VARIANT*); + HRESULT put_onkeydown(VARIANT); + HRESULT get_onkeydown(VARIANT*); + HRESULT put_onkeypress(VARIANT); + HRESULT get_onkeypress(VARIANT*); + HRESULT put_onmouseup(VARIANT); + HRESULT get_onmouseup(VARIANT*); + HRESULT put_onmousedown(VARIANT); + HRESULT get_onmousedown(VARIANT*); + HRESULT put_onmousemove(VARIANT); + HRESULT get_onmousemove(VARIANT*); + HRESULT put_onmouseout(VARIANT); + HRESULT get_onmouseout(VARIANT*); + HRESULT put_onmouseover(VARIANT); + HRESULT get_onmouseover(VARIANT*); + HRESULT put_onreadystatechange(VARIANT); + HRESULT get_onreadystatechange(VARIANT*); + HRESULT put_onafterupdate(VARIANT); + HRESULT get_onafterupdate(VARIANT*); + HRESULT put_onrowexit(VARIANT); + HRESULT get_onrowexit(VARIANT*); + HRESULT put_onrowenter(VARIANT); + HRESULT get_onrowenter(VARIANT*); + HRESULT put_ondragstart(VARIANT); + HRESULT get_ondragstart(VARIANT*); + HRESULT put_onselectstart(VARIANT); + HRESULT get_onselectstart(VARIANT*); + HRESULT elementFromPoint(LONG,LONG,LPHTMLELEMENT*); + HRESULT get_parentWindow(LPHTMLWINDOW2*); + HRESULT get_styleSheets(LPHTMLSTYLESHEETSCOLLECTION*); + HRESULT put_onbeforeupdate(VARIANT); + HRESULT get_onbeforeupdate(VARIANT*); + HRESULT put_onerrorupdate(VARIANT); + HRESULT get_onerrorupdate(VARIANT*); + HRESULT toString(BSTR*); + HRESULT createStyleSheet(BSTR,LONG,LPHTMLSTYLESHEET*); +} + +interface IHTMLSelectionObject : IDispatch { + HRESULT createRange(IDispatch*); + HRESULT empty(); + HRESULT clear(); + HRESULT get_type(BSTR*); +} +alias IHTMLSelectionObject LPHTMLSELECTIONOBJECT; + +interface IHTMLTxtRange : IDispatch { + HRESULT get_htmlText(BSTR*); + HRESULT put_text(BSTR); + HRESULT get_text(BSTR*); + HRESULT parentElement(LPHTMLELEMENT*); + HRESULT duplicate(IHTMLTxtRange*); + HRESULT inRange(IHTMLTxtRange,VARIANT_BOOL*); + HRESULT isEqual(IHTMLTxtRange,VARIANT_BOOL*); + HRESULT scrollIntoView(VARIANT_BOOL); + HRESULT collapse(VARIANT_BOOL); + HRESULT expand(BSTR,VARIANT_BOOL*); + HRESULT move(BSTR,LONG,LONG*); + HRESULT moveStart(BSTR,LONG,LONG*); + HRESULT moveEnd(BSTR,LONG,LONG*); + HRESULT select(); + HRESULT pasteHTML(BSTR); + HRESULT moveToElementText(LPHTMLELEMENT); + HRESULT setEndPoint(BSTR,IHTMLTxtRange); + HRESULT compareEndPoints(BSTR,IHTMLTxtRange,LONG*); + HRESULT findText(BSTR,LONG,LONG,VARIANT_BOOL*); + HRESULT moveToPoint(LONG,LONG); + HRESULT getBookmark(BSTR*); + HRESULT moveToBookbark(BSTR,VARIANT_BOOL*); + HRESULT queryCommandSupported(BSTR,VARIANT_BOOL*); + HRESULT queryCommandEnabled(BSTR,VARIANT_BOOL*); + HRESULT queryCommandState(BSTR,VARIANT_BOOL*); + HRESULT queryCommandIndeterm(BSTR,VARIANT_BOOL*); + HRESULT queryCommandText(BSTR,BSTR*); + HRESULT queryCommandValue(BSTR,VARIANT*); + HRESULT execCommand(BSTR,VARIANT_BOOL,VARIANT,VARIANT_BOOL*); + HRESULT execCommandShowHelp(BSTR,VARIANT_BOOL*); +} + +interface IHTMLElement : IDispatch { + HRESULT setAttribute(BSTR,VARIANT,LONG); + HRESULT getAttribute(BSTR,LONG,VARIANT*); + HRESULT removeAttribute(BSTR,LONG,VARIANT_BOOL*); + HRESULT put_className(BSTR); + HRESULT get_className(ref BSTR); + HRESULT put_id(BSTR); + HRESULT get_id(ref BSTR); + HRESULT get_tagName(ref BSTR); + HRESULT get_parentElement(LPHTMLELEMENT*); + HRESULT get_style(LPHTMLSTYLE*); + HRESULT put_onhelp(VARIANT); + HRESULT get_onhelp(VARIANT*); + HRESULT put_onclick(VARIANT); + HRESULT get_onclick(VARIANT*); + HRESULT put_ondblclick(VARIANT); + HRESULT get_ondblclick(VARIANT*); + HRESULT put_onkeydown(VARIANT); + HRESULT get_onkeydown(VARIANT*); + HRESULT put_onkeyup(VARIANT); + HRESULT get_onkeyup(VARIANT*); + HRESULT put_onkeypress(VARIANT); + HRESULT get_onkeypress(VARIANT*); + HRESULT put_onmouseout(VARIANT); + HRESULT get_onmouseout(VARIANT*); + HRESULT put_onmouseover(VARIANT); + HRESULT get_onmouseover(VARIANT*); + HRESULT put_onmousemove(VARIANT); + HRESULT get_onmousemove(VARIANT*); + HRESULT put_onmousedown(VARIANT); + HRESULT get_onmousedown(VARIANT*); + HRESULT put_onmouseup(VARIANT); + HRESULT get_onmouseup(VARIANT*); + HRESULT get_document(IDispatch*); + HRESULT put_title(BSTR); + HRESULT get_title(ref BSTR); + HRESULT put_language(BSTR); + HRESULT get_language(ref BSTR); + HRESULT put_onselectstart(VARIANT); + HRESULT get_onselectstart(VARIANT*); + HRESULT scrollIntoView(VARIANT); + HRESULT contains(LPHTMLELEMENT,VARIANT_BOOL*); + HRESULT get_source3Index(LONG*); + HRESULT get_recordNumber(VARIANT*); + HRESULT put_lang(BSTR); + HRESULT get_lang(ref BSTR); + HRESULT get_offsetLeft(LONG*); + HRESULT get_offsetTop(LONG*); + HRESULT get_offsetWidth(LONG*); + HRESULT get_offsetHeight(LONG*); + HRESULT get_offsetParent(LPHTMLELEMENT*); + HRESULT put_innerHTML(BSTR); + HRESULT get_innerHTML(ref BSTR); + HRESULT put_innerText(BSTR); + HRESULT get_innerText(ref BSTR); + HRESULT put_outerHTML(BSTR); + HRESULT get_outerHTML(ref BSTR); + HRESULT put_outerText(BSTR); + HRESULT get_outerText(ref BSTR); + HRESULT insertAdjacentHTML(BSTR,BSTR); + HRESULT insertAdjacentText(BSTR,BSTR); + HRESULT get_parentTextEdit(LPHTMLELEMENT*); + HRESULT isTextEdit(VARIANT_BOOL*); + HRESULT click(); + HRESULT get_filters(LPHTMLFILTERSCOLLECTION*); + HRESULT put_ondragstart(VARIANT); + HRESULT get_ondragstart(VARIANT*); + HRESULT toString(BSTR*); + HRESULT put_onbeforeupdate(VARIANT); + HRESULT get_onbeforeupdate(VARIANT*); + HRESULT put_onafterupdate(VARIANT); + HRESULT get_onafterupdate(VARIANT*); + HRESULT put_onerrorupdate(VARIANT); + HRESULT get_onerrorupdate(VARIANT*); + HRESULT put_onrowexit(VARIANT); + HRESULT get_onrowexit(VARIANT*); + HRESULT put_onrowenter(VARIANT); + HRESULT get_onrowenter(VARIANT*); + HRESULT put_ondatasetchanged(VARIANT); + HRESULT get_ondatasetchanged(VARIANT*); + HRESULT put_ondataavailable(VARIANT); + HRESULT get_ondataavailable(VARIANT*); + HRESULT put_ondatasetcomplete(VARIANT); + HRESULT get_ondatasetcomplete(VARIANT*); + HRESULT put_onfilterchange(VARIANT); + HRESULT get_onfilterchange(VARIANT*); + HRESULT get_children(IDispatch*); + HRESULT get_all(IDispatch*); +} +alias IHTMLElement LPHTMLELEMENT; + +interface IHTMLFramesCollection2 : IDispatch { + HRESULT item(VARIANT*,VARIANT*); + HRESULT get_length(LONG*); +} + +interface IHTMLWindow2 : IHTMLFramesCollection2 { + HRESULT get_frames(IHTMLFramesCollection2*); + HRESULT put_defaultStatus(BSTR); + HRESULT get_defaultStatus(BSTR*); + HRESULT put_status(BSTR); + HRESULT get_status(BSTR*); + HRESULT setTimeout(BSTR,LONG,VARIANT*,LONG*); + HRESULT clearTimeout(LONG); + HRESULT alert(BSTR); + HRESULT confirm(BSTR,VARIANT_BOOL*); + HRESULT prompt(BSTR,BSTR,VARIANT*); + HRESULT get_Image(LPHTMLIMAGEELEMENTFACTORY*); + HRESULT get_location(LPHTMLLOCATION*); + HRESULT get_history(LPOMHISTORY*); + HRESULT close(); + HRESULT put_opener(VARIANT); + HRESULT get_opener(VARIANT*); + HRESULT get_navigator(LPOMNAVIGATOR*); + HRESULT put_name(BSTR); + HRESULT get_name(BSTR*); + HRESULT get_parent(LPHTMLWINDOW2*); + HRESULT open(BSTR,BSTR,BSTR,VARIANT_BOOL,LPHTMLWINDOW2*); + HRESULT get_self(LPHTMLWINDOW2*); + HRESULT get_top(LPHTMLWINDOW2*); + HRESULT get_window(LPHTMLWINDOW2*); + HRESULT navigate(BSTR); + HRESULT put_onfocus(VARIANT); + HRESULT get_onfocus(VARIANT*); + HRESULT put_onblur(VARIANT); + HRESULT get_onblur(VARIANT*); + HRESULT put_onload(VARIANT); + HRESULT get_onload(VARIANT*); + HRESULT put_onbeforeunload(VARIANT); + HRESULT get_onbeforeunload(VARIANT*); + HRESULT put_onunload(VARIANT); + HRESULT get_onunload(VARIANT*); + HRESULT put_onhelp(VARIANT); + HRESULT get_onhelp(VARIANT*); + HRESULT put_onerror(VARIANT); + HRESULT get_onerror(VARIANT*); + HRESULT put_onresize(VARIANT); + HRESULT get_onresize(VARIANT*); + HRESULT put_onscroll(VARIANT); + HRESULT get_onscroll(VARIANT*); + HRESULT get_document(IHTMLDocument2*); + HRESULT get_event(LPHTMLEVENTOBJ*); + HRESULT get__newEnum(IUnknown*); + HRESULT showModalDialog(BSTR,VARIANT*,VARIANT*,VARIANT*); + HRESULT showHelp(BSTR,VARIANT,BSTR); + HRESULT get_screen(LPHTMLSCREEN*); + HRESULT get_Option(LPHTMLOPTIONELEMENTFACTORY*); + HRESULT focus(); + HRESULT get_closed(VARIANT_BOOL*); + HRESULT blur(); + HRESULT scroll(long,long); + HRESULT get_clientInformation(LPOMNAVIGATOR*); + HRESULT setInterval(BSTR,long,VARIANT*,long*); + HRESULT clearInterval(long); + HRESULT put_offscreenBuffering(VARIANT); + HRESULT get_offscreenBuffering(VARIANT*); + HRESULT execScript(BSTR,BSTR,VARIANT*); + HRESULT toString(BSTR*); + HRESULT scrollBy(LONG,LONG); + HRESULT scrollTo(LONG,LONG); + HRESULT moveTo(LONG,LONG); + HRESULT moveBy(LONG,LONG); + HRESULT resizeTo(LONG,LONG); + HRESULT resizeBy(LONG,LONG); + HRESULT get_external(IDispatch*); +} +alias IHTMLWindow2 LPHTMLWINDOW2; + +interface IHTMLFrameBase : IDispatch { + HRESULT put_src(BSTR); + HRESULT get_src(BSTR*); + HRESULT put_name(BSTR); + HRESULT get_name(BSTR*); + HRESULT put_border(VARIANT); + HRESULT get_border(VARIANT*); + HRESULT put_frameBorder(BSTR); + HRESULT get_frameBorder(BSTR*); + HRESULT put_frameSpacing(VARIANT); + HRESULT get_frameSpacing(VARIANT*); + HRESULT put_marginWidth(VARIANT); + HRESULT get_marginWidth(VARIANT*); + HRESULT put_marginHeight(VARIANT); + HRESULT get_marginHeight(VARIANT*); + HRESULT put_noResize(VARIANT_BOOL); + HRESULT get_noResize(VARIANT_BOOL*); + HRESULT put_scrolling(BSTR); + HRESULT get_scrolling(BSTR*); +} + +interface IHTMLFrameBase2 : IDispatch { + HRESULT get_contentWindow(IHTMLWindow2 *); + HRESULT put_onload(VARIANT); + HRESULT get_onload(VARIANT*); + HRESULT put_onreadystatechange(VARIANT); + HRESULT get_onreadystatechange(VARIANT*); + HRESULT get_readyState(BSTR*); + HRESULT put_allowTransparency(VARIANT_BOOL); + HRESULT get_allowTransparency(VARIANT_BOOL*); +} + +interface IHTMLFrameBase3 : IDispatch { + HRESULT put_longDesc(BSTR); + HRESULT get_longDesc(BSTR*); +} + +interface IHTMLBodyElement : IDispatch { + HRESULT put_background(BSTR); + HRESULT get_background(BSTR*); + HRESULT put_bgProperties(BSTR); + HRESULT get_bgProperties(BSTR*); + HRESULT put_leftMargin(VARIANT); + HRESULT get_leftMargin(VARIANT*); + HRESULT put_topMargin(VARIANT); + HRESULT get_topMargin(VARIANT*); + HRESULT put_rightMargin(VARIANT); + HRESULT get_rightMargin(VARIANT*); + HRESULT put_bottomMargin(VARIANT); + HRESULT get_bottomMargin(VARIANT*); + HRESULT put_noWrap(VARIANT_BOOL); + HRESULT get_noWrap(VARIANT_BOOL*); + HRESULT put_bgColor(VARIANT); + HRESULT get_bgColor(VARIANT*); + HRESULT put_text(VARIANT); + HRESULT get_text(VARIANT*); + HRESULT put_link(VARIANT); + HRESULT get_link(VARIANT*); + HRESULT put_vLink(VARIANT); + HRESULT get_vLink(VARIANT*); + HRESULT put_aLink(VARIANT); + HRESULT get_aLink(VARIANT*); + HRESULT put_onload(VARIANT); + HRESULT get_onload(VARIANT*); + HRESULT put_onunload(VARIANT); + HRESULT get_onunload(VARIANT*); + HRESULT put_scroll(BSTR); + HRESULT get_scroll(BSTR*); + HRESULT put_onselect(VARIANT); + HRESULT get_onselect(VARIANT*); + HRESULT put_onbeforeunload(VARIANT); + HRESULT get_onbeforeunload(VARIANT*); + HRESULT createTextRange(IHTMLTxtRange*); +} + +interface IHTMLBodyElement2 : IDispatch { + HRESULT put_onbeforeprint(VARIANT); + HRESULT get_onbeforeprint(VARIANT*); + HRESULT put_onafterprint(VARIANT); + HRESULT get_onafterprint(VARIANT*); +} ADDED src/win32/mswsock.d Index: src/win32/mswsock.d ================================================================== --- src/win32/mswsock.d +++ src/win32/mswsock.d @@ -0,0 +1,203 @@ +/***********************************************************************\ +* mswsock.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Daniel Keep * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.mswsock; + +import win32.winbase, win32.windef; +private import win32.basetyps, win32.w32api; + +// FIXME: clean up Windows version support + +version (Win32_Winsock2) pragma(msg, + "Version Win32_Winsock2 is deprecated; Winsock2 is now imported by default"); + +// Pull in Winsock1 if the user has put "Win32_Winsock1" on the compile +// line; otherwise, default to Winsock2. +version (Win32_Winsock1) { + import win32.winsock; +} else { + import win32.winsock2; +} + +static if (_WIN32_WINNT_ONLY) { + static if (_WIN32_WINNT >= 0x500) { + enum { + /* WinNT5+: + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/socket_options.htm */ + SO_MAXDG = 0x7009, + SO_MAXPATHDG = 0x700A, + } + } + + enum { + /* WinNT4+: + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/socket_options_for_windows_nt_4_0_2.htm */ + SO_CONNDATA = 0x7000, + SO_CONNOPT = 0x7001, + SO_DISCDATA = 0x7002, + SO_DISCOPT = 0x7003, + SO_CONNDATALEN = 0x7004, + SO_CONNOPTLEN = 0x7005, + SO_DISCDATALEN = 0x7006, + SO_DISCOPTLEN = 0x7007, + + /* WinNT4: + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/socket_options.htm */ + SO_UPDATE_ACCEPT_CONTENT = 0x700B, + } +} + +enum { + /* Win95+, WinNT4+ but apparently shouldn't used: mark as deprecated? + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/socket_options.htm */ + SO_OPENTYPE = 0x7008, + + /* Win95+; these two are passed to the SO_OPENTYPE option as arguments, + so would they be deprecated as well? + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/socket_options.htm */ + SO_SYNCHRONOUS_ALERT = 0x0010, + SO_SYNCHRONOUS_NONALERT = 0x0020, + + /* Win95: + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/socket_options.htm */ + SO_CONNECT_TIME = 0x700C, +} + + +static if (_WIN32_WINNT_ONLY) { + enum { + TCP_BSDURGENT = 0x7000, + } + + /* These *appear* to be constants for passing to the TransmitFile / + TransmitPackets functions, which are available in WinNT3.51+ + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/transmitfile_2.htm */ + enum { + TF_DISCONNECT = 1, + TF_REUSE_SOCKET = 2, + TF_WRITE_BEHIND = 4, + TF_USE_DEFAULT_WORKER = 0, + TF_USE_SYSTEM_THREAD = 16, + TF_USE_KERNEL_APC = 32 + } +} + +/* Win95+, WinNT3.51+ + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/transmit_file_buffers_2.htm */ +struct TRANSMIT_FILE_BUFFERS { + PVOID Head; + DWORD HeadLength; + PVOID Tail; + DWORD TailLength; +} +alias TRANSMIT_FILE_BUFFERS* PTRANSMIT_FILE_BUFFERS, LPTRANSMIT_FILE_BUFFERS; + +extern(Windows) { + /* Win95+, WinNT3.51+ + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/wsarecvex_2.htm */ + int WSARecvEx(SOCKET, char*, int, int*); + + /* Win95+, WinNT3.51+ + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/getacceptexSOCKADDRs_2.htm */ + VOID GetAcceptExSockaddrs(PVOID, DWORD, DWORD, DWORD, SOCKADDR**, LPINT, SOCKADDR**, LPINT); + + static if (_WIN32_WINNT_ONLY) { + /* WinNT3.51+ + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/transmitfile_2.htm */ + BOOL TransmitFile(SOCKET, HANDLE, DWORD, DWORD, LPOVERLAPPED, LPTRANSMIT_FILE_BUFFERS, DWORD); + + /* WinNT3.51+ + ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/acceptex_2.htm */ + alias BOOL function(SOCKET, SOCKET, PVOID, DWORD, DWORD, DWORD, LPDWORD, LPOVERLAPPED) LPFN_ACCEPTEX; + const GUID WSAID_ACCEPTEX = {0xb5367df1,0xcbac,0x11cf,[0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92]}; + + alias BOOL function(SOCKET, SOCKADDR*, int, PVOID, DWORD, LPDWORD, LPOVERLAPPED) LPFN_CONNECTEX; + const GUID WSAID_CONNECTEX = {0x25a207b9,0xddf3,0x4660,[0x8e,0xe9,0x76,0xe5,0x8c,0x74,0x06,0x3e]}; + } +} + +version(Win32_Winsock1) { +} else { + static if (WINVER > 0x501) { + /* These appear to be constants for the TRANSMIT_PACKETS_ELEMENT + * structure below, so I've given them the same minimum version + */ + enum { + TP_ELEMENT_FILE = 1, + TP_ELEMENT_MEMORY = 2, + TP_ELEMENT_EOP = 4 + } + + /* WinXP+, Srv2k3+ + * ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/transmit_packets_element_2.htm + */ + struct TRANSMIT_PACKETS_ELEMENT { + ULONG dwElFlags; + ULONG cLength; + union { + struct { + LARGE_INTEGER nFileOffset; + HANDLE hFile; + } + PVOID pBuffer; + } + } + + /* WinXP+, Server2003+: + * ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/wsamsg_2.htm + */ + struct WSAMSG { + LPSOCKADDR name; + INT namelen; + LPWSABUF lpBuffers; + DWORD dwBufferCount; + WSABUF Control; + DWORD dwFlags; + } + + alias WSAMSG* PWSAMSG, LPWSAMSG; + + /* According to MSDN docs, the WSAMSG.Control buffer starts with a + cmsghdr header of the following form. See also RFC 2292. */ + /* DK: Confirmed. So I suppose these should get the same version as + WSAMSG... */ + struct WSACMSGHDR { + UINT cmsg_len; + INT cmsg_level; + INT cmsg_type; + // followed by UCHAR cmsg_data[]; + } + + /* TODO: Standard Posix.1g macros as per RFC 2292, with WSA_uglification. */ + /* DK: MinGW doesn't define these, and neither does the MSDN docs. Might have + to actually look up RFC 2292... */ + /+ + #if 0 + #define WSA_CMSG_FIRSTHDR(mhdr) + #define WSA_CMSG_NXTHDR(mhdr, cmsg) + #define WSA_CMSG_SPACE(length) + #define WSA_CMSG_LEN(length) + #endif + +/ + + extern(Windows) + { + /* WinXP+, Srv2k3+ + * ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/disconnectex_2.htm + */ + BOOL DisconnectEx(SOCKET, LPOVERLAPPED, DWORD, DWORD); + + /* WinXP+, Srv2k3+ + * ms-help://MS.MSDNQTR.2003FEB.1033/winsock/winsock/wsarecvmsg_2.htm + */ + int WSARecvMsg(SOCKET, LPWSAMSG, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); + } + } +} ADDED src/win32/nb30.d Index: src/win32/nb30.d ================================================================== --- src/win32/nb30.d +++ src/win32/nb30.d @@ -0,0 +1,237 @@ +/***********************************************************************\ +* nb30.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.nb30; + +private import win32.windef; + +const size_t + NCBNAMSZ = 16, + MAX_LANA = 254; + +// FIXME: are these really two sets of constants? +enum : UCHAR { + REGISTERING = 0, + REGISTERED = 4, + DEREGISTERED, + DUPLICATE, + DUPLICATE_DEREG, // = 7 + UNIQUE_NAME = 0, + GROUP_NAME = 0x80, + NAME_FLAGS_MASK = 0x87 +} + +enum : UCHAR { + LISTEN_OUTSTANDING = 1, + CALL_PENDING, + SESSION_ESTABLISHED, + HANGUP_PENDING, + HANGUP_COMPLETE, + SESSION_ABORTED // = 6 +} + +const char[4] + ALL_TRANSPORTS = "M\0\0\0", + MS_NBF = "MNBF"; + +enum : UCHAR { + NCBCALL = 0x10, + NCBLISTEN, + NCBHANGUP, // = 0x12 + NCBSEND = 0x14, + NCBRECV, + NCBRECVANY, + NCBCHAINSEND, // = 0x17 + NCBDGSEND = 0x20, + NCBDGRECV, + NCBDGSENDBC, + NCBDGRECVBC, // = 0x23, + NCBADDNAME = 0x30, + NCBDELNAME, + NCBRESET, + NCBASTAT, + NCBSSTAT, + NCBCANCEL, + NCBADDGRNAME, + NCBENUM, // = 0x37 + NCBUNLINK = 0x70, + NCBSENDNA, + NCBCHAINSENDNA, + NCBLANSTALERT, // = 0x73 + NCBACTION = 0x77, + NCBFINDNAME, + NCBTRACE // = 0x79 +} + +const UCHAR ASYNCH = 0x80; + +enum : UCHAR { + NRC_GOODRET = 0x00, + NRC_BUFLEN = 0x01, + NRC_ILLCMD = 0x03, + NRC_CMDTMO = 0x05, + NRC_INCOMP, + NRC_BADDR, + NRC_SNUMOUT, + NRC_NORES, + NRC_SCLOSED, + NRC_CMDCAN, // = 0x0b + NRC_DUPNAME = 0x0d, + NRC_NAMTFUL, + NRC_ACTSES, // = 0x0f, + NRC_LOCTFUL = 0x11, + NRC_REMTFUL, + NRC_ILLNN, + NRC_NOCALL, + NRC_NOWILD, + NRC_INUSE, + NRC_NAMERR, + NRC_SABORT, + NRC_NAMCONF, // = 0x19 + NRC_IFBUSY = 0x21, + NRC_TOOMANY, + NRC_BRIDGE, + NRC_CANOCCR, // = 0x24 + NRC_CANCEL = 0x26, + NRC_DUPENV = 0x30, + NRC_ENVNOTDEF = 0x34, + NRC_OSRESNOTAV, + NRC_MAXAPPS, + NRC_NOSAPS, + NRC_NORESOURCES, + NRC_INVADDRESS, // = 0x39 + NRC_INVDDID = 0x3B, + NRC_LOCKFAIL = 0x3C, + NRC_OPENERR = 0x3f, + NRC_SYSTEM = 0x40, + NRC_PENDING = 0xff +} + +struct ACTION_HEADER { + union { + /* transport_id is defined as a ULONG, but both the above constants + * and the documented description suggest it should be a char[4] + */ + ULONG transport_id; + char[4] c_transport_id; + } + USHORT action_code; + USHORT reserved; +} +alias ACTION_HEADER* PACTION_HEADER; + +struct ADAPTER_STATUS { + UCHAR[6] adapter_address; + UCHAR rev_major; + UCHAR reserved0; + UCHAR adapter_type; + UCHAR rev_minor; + WORD duration; + WORD frmr_recv; + WORD frmr_xmit; + WORD iframe_recv_err; + WORD xmit_aborts; + DWORD xmit_success; + DWORD recv_success; + WORD iframe_xmit_err; + WORD recv_buff_unavail; + WORD t1_timeouts; + WORD ti_timeouts; + DWORD reserved1; + WORD free_ncbs; + WORD max_cfg_ncbs; + WORD max_ncbs; + WORD xmit_buf_unavail; + WORD max_dgram_size; + WORD pending_sess; + WORD max_cfg_sess; + WORD max_sess; + WORD max_sess_pkt_size; + WORD name_count; +} +alias ADAPTER_STATUS* PADAPTER_STATUS; + +struct FIND_NAME_BUFFER { + /* From Win32 API docs + * + * length + * Specifies the length, in bytes, of the FIND_NAME_BUFFER + * structure. Although this structure always occupies 33 bytes, + * not all of the structure is necessarily valid. + * + * On this basis, should length be initialised? + */ + UCHAR length; + UCHAR access_control; + UCHAR frame_control; + UCHAR[6] destination_addr; + UCHAR[6] source_addr; + UCHAR[18] routing_info; +} +alias FIND_NAME_BUFFER* PFIND_NAME_BUFFER; + +struct FIND_NAME_HEADER { + WORD node_count; + UCHAR reserved; + UCHAR unique_group; +} +alias FIND_NAME_HEADER* PFIND_NAME_HEADER; + +struct LANA_ENUM { + UCHAR length; + UCHAR[MAX_LANA+1] lana; +} +alias LANA_ENUM* PLANA_ENUM; + +struct NAME_BUFFER { + UCHAR[NCBNAMSZ] name; + UCHAR name_num; + UCHAR name_flags; +} +alias NAME_BUFFER* PNAME_BUFFER; + +struct NCB { + UCHAR ncb_command; + UCHAR ncb_retcode; + UCHAR ncb_lsn; + UCHAR ncb_num; + PUCHAR ncb_buffer; + WORD ncb_length; + UCHAR[NCBNAMSZ] ncb_callname; + UCHAR[NCBNAMSZ] ncb_name; + UCHAR ncb_rto; + UCHAR ncb_sto; + extern (Windows) void function(NCB*) ncb_post; + UCHAR ncb_lana_num; + UCHAR ncb_cmd_cplt; + UCHAR ncb_reserve[10]; + HANDLE ncb_event; +} +alias NCB* PNCB; + +struct SESSION_BUFFER { + UCHAR lsn; + UCHAR state; + UCHAR[NCBNAMSZ] local_name; + UCHAR[NCBNAMSZ] remote_name; + UCHAR rcvs_outstanding; + UCHAR sends_outstanding; +} +alias SESSION_BUFFER* PSESSION_BUFFER; + +struct SESSION_HEADER { + UCHAR sess_name; + UCHAR num_sess; + UCHAR rcv_dg_outstanding; + UCHAR rcv_any_outstanding; +} +alias SESSION_HEADER* PSESSION_HEADER; + +extern (Windows) UCHAR Netbios(PNCB); ADDED src/win32/nddeapi.d Index: src/win32/nddeapi.d ================================================================== --- src/win32/nddeapi.d +++ src/win32/nddeapi.d @@ -0,0 +1,162 @@ +/***********************************************************************\ +* nddeapi.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.nddeapi; + +private import win32.windef; + +// FIXME: check types and grouping of constants + +/+ +#ifndef CNLEN /* also in lmcons.h */ +#define CNLEN 15 +#define UNCLEN (CNLEN + 2) +#endif ++/ + +const char SEP_CHAR = ','; +const char[] BAR_CHAR = "|"; +const wchar SEP_WCHAR = ','; +const wchar[] BAR_WCHAR = "|"; + +enum { + NDDE_NO_ERROR, + NDDE_ACCESS_DENIED, + NDDE_BUF_TOO_SMALL, + NDDE_ERROR_MORE_DATA, + NDDE_INVALID_SERVER, + NDDE_INVALID_SHARE, + NDDE_INVALID_PARAMETER, + NDDE_INVALID_LEVEL, + NDDE_INVALID_PASSWORD, + NDDE_INVALID_ITEMNAME, + NDDE_INVALID_TOPIC, + NDDE_INTERNAL_ERROR, + NDDE_OUT_OF_MEMORY, + NDDE_INVALID_APPNAME, + NDDE_NOT_IMPLEMENTED, + NDDE_SHARE_ALREADY_EXIST, + NDDE_SHARE_NOT_EXIST, + NDDE_INVALID_FILENAME, + NDDE_NOT_RUNNING, + NDDE_INVALID_WINDOW, + NDDE_INVALID_SESSION, + NDDE_INVALID_ITEM_LIST, + NDDE_SHARE_DATA_CORRUPTED, + NDDE_REGISTRY_ERROR, + NDDE_CANT_ACCESS_SERVER, + NDDE_INVALID_SPECIAL_COMMAND, + NDDE_INVALID_SECURITY_DESC, + NDDE_TRUST_SHARE_FAIL +} + +const size_t + MAX_NDDESHARENAME = 256, + MAX_DOMAINNAME = 15, + MAX_USERNAME = 15, + MAX_APPNAME = 255, + MAX_TOPICNAME = 255, + MAX_ITEMNAME = 255; + +const NDDEF_NOPASSWORDPROMPT = 1; +const NDDEF_NOCACHELOOKUP = 2; +const NDDEF_STRIP_NDDE = 4; + +const SHARE_TYPE_OLD = 1; +const SHARE_TYPE_NEW = 2; +const SHARE_TYPE_STATIC = 4; + +const uint + NDDE_CMD_SHOW_MASK = 0x0000FFFF, + NDDE_TRUST_CMD_SHOW = 0x10000000, + NDDE_TRUST_SHARE_DEL = 0x20000000, + NDDE_TRUST_SHARE_INIT = 0x40000000, + NDDE_TRUST_SHARE_START = 0x80000000; + +struct NDdeShareInfo_tag { + LONG lRevision; + LPTSTR lpszShareName; + LONG lShareType; + LPTSTR lpszAppTopicList; + LONG fSharedFlag; + LONG fService; + LONG fStartAppFlag; + LONG nCmdShow; + LONG[2] qModifyId; + LONG cNumItems; + LPTSTR lpszItemList; +} +extern (C) { // huh? + NDdeShareInfo_tag NDDESHAREINFO; + NDdeShareInfo_tag* PNDDESHAREINFO; +} + +extern (Windows) { + UINT NDdeGetErrorStringA(UINT, LPSTR, DWORD); + UINT NDdeGetErrorStringW(UINT, LPWSTR, DWORD); + UINT NDdeGetShareSecurityA(LPSTR, LPSTR, SECURITY_INFORMATION, + PSECURITY_DESCRIPTOR, DWORD, PDWORD); + UINT NDdeGetShareSecurityW(LPWSTR, LPWSTR, SECURITY_INFORMATION, + PSECURITY_DESCRIPTOR, DWORD, PDWORD); + UINT NDdeGetTrustedShareA(LPSTR, LPSTR, PDWORD, PDWORD, PDWORD); + UINT NDdeGetTrustedShareW(LPWSTR, LPWSTR, PDWORD, PDWORD, PDWORD); + BOOL NDdeIsValidShareNameA(LPSTR); + BOOL NDdeIsValidShareNameW(LPWSTR); + BOOL NDdeIsValidAppTopicListA(LPSTR); + BOOL NDdeIsValidAppTopicListW(LPWSTR); + UINT NDdeSetShareSecurityA(LPSTR, LPSTR, SECURITY_INFORMATION, + PSECURITY_DESCRIPTOR); + UINT NDdeSetShareSecurityW(LPWSTR, LPWSTR, SECURITY_INFORMATION, + PSECURITY_DESCRIPTOR); + UINT NDdeSetTrustedShareA(LPSTR, LPSTR, DWORD); + UINT NDdeSetTrustedShareW(LPWSTR, LPWSTR, DWORD); + UINT NDdeShareAddA(LPSTR, UINT, PSECURITY_DESCRIPTOR, PBYTE, DWORD); + UINT NDdeShareAddW(LPWSTR, UINT, PSECURITY_DESCRIPTOR, PBYTE, DWORD); + UINT NDdeShareDelA(LPSTR, LPSTR, UINT); + UINT NDdeShareDelW(LPWSTR, LPWSTR, UINT); + UINT NDdeShareEnumA(LPSTR, UINT, PBYTE, DWORD, PDWORD, PDWORD); + UINT NDdeShareEnumW(LPWSTR, UINT, PBYTE, DWORD, PDWORD, PDWORD); + UINT NDdeShareGetInfoA(LPSTR, LPSTR, UINT, PBYTE, DWORD, PDWORD, PWORD); + UINT NDdeShareGetInfoW(LPWSTR, LPWSTR, UINT, PBYTE, DWORD, PDWORD, PWORD); + UINT NDdeShareSetInfoA(LPSTR, LPSTR, UINT, PBYTE, DWORD, WORD); + UINT NDdeShareSetInfoW(LPWSTR, LPWSTR, UINT, PBYTE, DWORD, WORD); + UINT NDdeTrustedShareEnumA(LPSTR, UINT, PBYTE, DWORD, PDWORD, PDWORD); + UINT NDdeTrustedShareEnumW(LPWSTR, UINT, PBYTE, DWORD, PDWORD, PDWORD); +} + +version (Unicode) { + alias NDdeShareAddW NDdeShareAdd; + alias NDdeShareDelW NDdeShareDel; + alias NDdeSetShareSecurityW NDdeSetShareSecurity; + alias NDdeGetShareSecurityW NDdeGetShareSecurity; + alias NDdeShareEnumW NDdeShareEnum; + alias NDdeShareGetInfoW NDdeShareGetInfo; + alias NDdeShareSetInfoW NDdeShareSetInfo; + alias NDdeGetErrorStringW NDdeGetErrorString; + alias NDdeIsValidShareNameW NDdeIsValidShareName; + alias NDdeIsValidAppTopicListW NDdeIsValidAppTopicList; + alias NDdeSetTrustedShareW NDdeSetTrustedShare; + alias NDdeGetTrustedShareW NDdeGetTrustedShare; + alias NDdeTrustedShareEnumW NDdeTrustedShareEnum; +} else { + alias NDdeShareAddA NDdeShareAdd; + alias NDdeShareDelA NDdeShareDel; + alias NDdeSetShareSecurityA NDdeSetShareSecurity; + alias NDdeGetShareSecurityA NDdeGetShareSecurity; + alias NDdeShareEnumA NDdeShareEnum; + alias NDdeShareGetInfoA NDdeShareGetInfo; + alias NDdeShareSetInfoA NDdeShareSetInfo; + alias NDdeGetErrorStringA NDdeGetErrorString; + alias NDdeIsValidShareNameA NDdeIsValidShareName; + alias NDdeIsValidAppTopicListA NDdeIsValidAppTopicList; + alias NDdeSetTrustedShareA NDdeSetTrustedShare; + alias NDdeGetTrustedShareA NDdeGetTrustedShare; + alias NDdeTrustedShareEnumA NDdeTrustedShareEnum; +} ADDED src/win32/nspapi.d Index: src/win32/nspapi.d ================================================================== --- src/win32/nspapi.d +++ src/win32/nspapi.d @@ -0,0 +1,148 @@ +/***********************************************************************\ +* nspapi.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.nspapi; + +private import win32.basetyps, win32.windef; + +// FIXME: check types of constants + +enum { + NS_ALL = 0, + + NS_SAP, + NS_NDS, + NS_PEER_BROWSE, + + NS_TCPIP_LOCAL = 10, + NS_TCPIP_HOSTS, + NS_DNS, + NS_NETBT, + NS_WINS, + + NS_NBP = 20, + + NS_MS = 30, + NS_STDA, + NS_NTDS, + + NS_X500 = 40, + NS_NIS, + NS_NISPLUS, + + NS_WRQ = 50 +} + +enum { + SERVICE_REGISTER = 1, + SERVICE_DEREGISTER = 2, + SERVICE_FLUSH = 3, + SERVICE_FLAG_HARD = 2 +} + +/* MinGW makes the next section conditional on winsock.h or winsock2.h + * being included. But that doesn't translate well into D. + */ +version (Win32_Winsock1) { + import win32.winsock; +} else { + import win32.winsock2; +} + +struct SOCKET_ADDRESS { + LPSOCKADDR lpSockaddr; + INT iSockaddrLength; +} +alias SOCKET_ADDRESS* PSOCKET_ADDRESS, LPSOCKET_ADDRESS; + +struct CSADDR_INFO { + SOCKET_ADDRESS LocalAddr; + SOCKET_ADDRESS RemoteAddr; + INT iSocketType; + INT iProtocol; +} +alias CSADDR_INFO* PCSADDR_INFO, LPCSADDR_INFO; + +struct BLOB { + ULONG cbSize; + BYTE* pBlobData; +} +alias BLOB* PBLOB, LPBLOB; + +struct SERVICE_ADDRESS { + DWORD dwAddressType; + DWORD dwAddressFlags; + DWORD dwAddressLength; + DWORD dwPrincipalLength; + BYTE* lpAddress; + BYTE* lpPrincipal; +} + +struct SERVICE_ADDRESSES { + DWORD dwAddressCount; + SERVICE_ADDRESS _Addresses; + + SERVICE_ADDRESS* Addresses() { return &_Addresses; } +} +alias SERVICE_ADDRESSES* PSERVICE_ADDRESSES, LPSERVICE_ADDRESSES; + +struct SERVICE_INFOA { + LPGUID lpServiceType; + LPSTR lpServiceName; + LPSTR lpComment; + LPSTR lpLocale; + DWORD dwDisplayHint; + DWORD dwVersion; + DWORD dwTime; + LPSTR lpMachineName; + LPSERVICE_ADDRESSES lpServiceAddress; + BLOB ServiceSpecificInfo; +} +alias SERVICE_INFOA* LPSERVICE_INFOA; + +struct SERVICE_INFOW { + LPGUID lpServiceType; + LPWSTR lpServiceName; + LPWSTR lpComment; + LPWSTR lpLocale; + DWORD dwDisplayHint; + DWORD dwVersion; + DWORD dwTime; + LPWSTR lpMachineName; + LPSERVICE_ADDRESSES lpServiceAddress; + BLOB ServiceSpecificInfo; +} +alias SERVICE_INFOW* LPSERVICE_INFOW; + +alias void* LPSERVICE_ASYNC_INFO; + +extern (Windows) { + INT SetServiceA(DWORD, DWORD, DWORD, LPSERVICE_INFOA, + LPSERVICE_ASYNC_INFO, LPDWORD); + INT SetServiceW(DWORD, DWORD, DWORD, LPSERVICE_INFOW, + LPSERVICE_ASYNC_INFO, LPDWORD); + INT GetAddressByNameA(DWORD, LPGUID, LPSTR, LPINT, DWORD, + LPSERVICE_ASYNC_INFO, LPVOID, LPDWORD, LPSTR, LPDWORD); + INT GetAddressByNameW(DWORD, LPGUID, LPWSTR, LPINT, DWORD, + LPSERVICE_ASYNC_INFO, LPVOID, LPDWORD, LPWSTR, LPDWORD); +} + +version (Unicode) { + alias SERVICE_INFOW SERVICE_INFO; + alias SetServiceW SetService; + alias GetAddressByNameW GetAddressByName; +} else { + alias SERVICE_INFOA SERVICE_INFO; + alias SetServiceA SetService; + alias GetAddressByNameA GetAddressByName; +} + +alias SERVICE_INFO _SERVICE_INFO; +alias SERVICE_INFO* LPSERVICE_INFO; ADDED src/win32/ntdef.d Index: src/win32/ntdef.d ================================================================== --- src/win32/ntdef.d +++ src/win32/ntdef.d @@ -0,0 +1,80 @@ +/***********************************************************************\ +* ntdef.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.ntdef; + +private import win32.basetsd, win32.subauth, win32.windef, win32.winnt; + +const uint + OBJ_INHERIT = 0x0002, + OBJ_PERMANENT = 0x0010, + OBJ_EXCLUSIVE = 0x0020, + OBJ_CASE_INSENSITIVE = 0x0040, + OBJ_OPENIF = 0x0080, + OBJ_OPENLINK = 0x0100, + OBJ_VALID_ATTRIBUTES = 0x01F2; + +void InitializeObjectAttributes(OBJECT_ATTRIBUTES* p, UNICODE_STRING* n, + uint a, HANDLE r, void* s) { + with (*p) { + Length = OBJECT_ATTRIBUTES.sizeof; + RootDirectory = r; + Attributes = a; + ObjectName = n; + SecurityDescriptor = s; + SecurityQualityOfService = null; + } +} + +bool NT_SUCCESS(int x) { return x >= 0; } + +/* In MinGW, NTSTATUS, UNICODE_STRING, STRING and their associated pointer + * type aliases are defined in ntdef.h, ntsecapi.h and subauth.h, each of + * which checks that none of the others is already included. + */ +alias int NTSTATUS; +alias int* PNTSTATUS; + +struct UNICODE_STRING { + USHORT Length; + USHORT MaximumLength; + PWSTR Buffer; +} +alias UNICODE_STRING* PUNICODE_STRING; +alias CPtr!(UNICODE_STRING) PCUNICODE_STRING; + +struct STRING { + USHORT Length; + USHORT MaximumLength; + PCHAR Buffer; +} +alias STRING ANSI_STRING, OEM_STRING; +alias STRING* PSTRING, PANSI_STRING, POEM_STRING; + +alias LARGE_INTEGER PHYSICAL_ADDRESS; +alias LARGE_INTEGER* PPHYSICAL_ADDRESS; + +enum SECTION_INHERIT { + ViewShare = 1, + ViewUnmap +} + +/* In MinGW, this is defined in ntdef.h and ntsecapi.h, each of which checks + * that the other isn't already included. + */ +struct OBJECT_ATTRIBUTES { + ULONG Length = OBJECT_ATTRIBUTES.sizeof; + HANDLE RootDirectory; + PUNICODE_STRING ObjectName; + ULONG Attributes; + PVOID SecurityDescriptor; + PVOID SecurityQualityOfService; +} +alias OBJECT_ATTRIBUTES* POBJECT_ATTRIBUTES; ADDED src/win32/ntdll.d Index: src/win32/ntdll.d ================================================================== --- src/win32/ntdll.d +++ src/win32/ntdll.d @@ -0,0 +1,27 @@ +/***********************************************************************\ +* ntdll.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.10 * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.ntdll; + +private import win32.w32api; + +// http://www.matcode.com/undocwin.h.txt +static assert (_WIN32_WINNT_ONLY, + "win32.ntdll is available only if version WindowsNTonly, WindowsXP, " + "Windows2003 or WindowsVista is set"); + + +enum SHUTDOWN_ACTION { + ShutdownNoReboot, + ShutdownReboot, + ShutdownPowerOff +} + +extern (Windows) uint NtShutdownSystem(SHUTDOWN_ACTION Action); ADDED src/win32/ntldap.d Index: src/win32/ntldap.d ================================================================== --- src/win32/ntldap.d +++ src/win32/ntldap.d @@ -0,0 +1,58 @@ +/***********************************************************************\ +* ntldap.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.ntldap; + +/* TOTHINKABOUT: These constants don't have ANSI/Unicode versioned + * aliases. Should we merge them anyway? + */ + +const char[] + LDAP_SERVER_ASQ_OID = "1.2.840.113556.1.4.1504", + LDAP_SERVER_DIRSYNC_OID = "1.2.840.113556.1.4.841", + LDAP_SERVER_SD_FLAGS_OID = "1.2.840.113556.1.4.801", + LDAP_SERVER_FAST_BIND_OID = "1.2.840.113556.1.4.1781", + LDAP_MATCHING_RULE_BIT_OR = "1.2.840.113556.1.4.804", + LDAP_MATCHING_RULE_BIT_AND = "1.2.840.113556.1.4.803", + LDAP_SERVER_EXTENDED_DN_OID = "1.2.840.113556.1.4.529", + LDAP_SERVER_LAZY_COMMIT_OID = "1.2.840.113556.1.4.619", + LDAP_SERVER_TREE_DELETE_OID = "1.2.840.113556.1.4.805", + LDAP_SERVER_VERIFY_NAME_OID = "1.2.840.113556.1.4.1338", + LDAP_SERVER_SHOW_DELETED_OID = "1.2.840.113556.1.4.417", + LDAP_SERVER_NOTIFICATION_OID = "1.2.840.113556.1.4.528", + LDAP_SERVER_DOMAIN_SCOPE_OID = "1.2.840.113556.1.4.1339", + LDAP_CAP_ACTIVE_DIRECTORY_OID = "1.2.840.113556.1.4.800", + LDAP_SERVER_SEARCH_OPTIONS_OID = "1.2.840.113556.1.4.1340", + LDAP_CAP_ACTIVE_DIRECTORY_V51_OID = "1.2.840.113556.1.4.1670", + LDAP_SERVER_PERMISSIVE_MODIFY_OID = "1.2.840.113556.1.4.1413", + LDAP_SERVER_CROSSDOM_MOVE_TARGET_OID = "1.2.840.113556.1.4.521"; + +const wchar[] + LDAP_SERVER_ASQ_OID_W = "1.2.840.113556.1.4.1504", + LDAP_SERVER_DIRSYNC_OID_W = "1.2.840.113556.1.4.841", + LDAP_SERVER_SD_FLAGS_OID_W = "1.2.840.113556.1.4.801", + LDAP_SERVER_FAST_BIND_OID_W = "1.2.840.113556.1.4.1781", + LDAP_MATCHING_RULE_BIT_OR_W = "1.2.840.113556.1.4.804", + LDAP_MATCHING_RULE_BIT_AND_W = "1.2.840.113556.1.4.803", + LDAP_SERVER_EXTENDED_DN_OID_W = "1.2.840.113556.1.4.529", + LDAP_SERVER_LAZY_COMMIT_OID_W = "1.2.840.113556.1.4.619", + LDAP_SERVER_TREE_DELETE_OID_W = "1.2.840.113556.1.4.805", + LDAP_SERVER_VERIFY_NAME_OID_W = "1.2.840.113556.1.4.1338", + LDAP_SERVER_SHOW_DELETED_OID_W = "1.2.840.113556.1.4.417", + LDAP_SERVER_NOTIFICATION_OID_W = "1.2.840.113556.1.4.528", + LDAP_SERVER_DOMAIN_SCOPE_OID_W = "1.2.840.113556.1.4.1339", + LDAP_CAP_ACTIVE_DIRECTORY_OID_W = "1.2.840.113556.1.4.800", + LDAP_SERVER_SEARCH_OPTIONS_OID_W = "1.2.840.113556.1.4.1340", + LDAP_CAP_ACTIVE_DIRECTORY_V51_OID_W = "1.2.840.113556.1.4.1670", + LDAP_SERVER_PERMISSIVE_MODIFY_OID_W = "1.2.840.113556.1.4.1413", + LDAP_SERVER_CROSSDOM_MOVE_TARGET_OID_W = "1.2.840.113556.1.4.521"; + +const SERVER_SEARCH_FLAG_DOMAIN_SCOPE = 1; +const SERVER_SEARCH_FLAG_PHANTOM_ROOT = 2; ADDED src/win32/ntsecapi.d Index: src/win32/ntsecapi.d ================================================================== --- src/win32/ntsecapi.d +++ src/win32/ntsecapi.d @@ -0,0 +1,793 @@ +/***********************************************************************\ +* ntsecapi.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.ntsecapi; + +private import + win32.basetyps, win32.ntdef, win32.windef, win32.winnt, win32.w32api; + +// FIXME: check types and grouping of constants +// FIXME: check Windows version support + +const KERB_WRAP_NO_ENCRYPT = 0x80000001; + +const LOGON_GUEST = 0x00000001; +const LOGON_NOENCRYPTION = 0x00000002; +const LOGON_CACHED_ACCOUNT = 0x00000004; +const LOGON_USED_LM_PASSWORD = 0x00000008; +const LOGON_EXTRA_SIDS = 0x00000020; +const LOGON_SUBAUTH_SESSION_KEY = 0x00000040; +const LOGON_SERVER_TRUST_ACCOUNT = 0x00000080; +const LOGON_NTLMV2_ENABLED = 0x00000100; +const LOGON_RESOURCE_GROUPS = 0x00000200; +const LOGON_PROFILE_PATH_RETURNED = 0x00000400; +const LOGON_GRACE_LOGON = 0x01000000; + +enum { + LSA_MODE_PASSWORD_PROTECTED = 1, + LSA_MODE_INDIVIDUAL_ACCOUNTS, + LSA_MODE_MANDATORY_ACCESS, + LSA_MODE_LOG_FULL +} + +bool LSA_SUCCESS(int x) { return x >= 0; } + +/* TOTHINKABOUT: These constants don't have ANSI/Unicode versioned + * aliases. Should we merge them anyway? + */ +const char[] MICROSOFT_KERBEROS_NAME_A = "Kerberos"; +const wchar[] MICROSOFT_KERBEROS_NAME_W = "Kerberos"; +const char[] MSV1_0_PACKAGE_NAME = "MICROSOFT_AUTHENTICATION_PACKAGE_V1_0"; +const wchar[] MSV1_0_PACKAGE_NAMEW = "MICROSOFT_AUTHENTICATION_PACKAGE_V1_0"; + +const MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT = 32; +const MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT = 2048; +const MSV1_0_CLEARTEXT_PASSWORD_ALLOWED = 2; +const MSV1_0_CRED_LM_PRESENT = 1; +const MSV1_0_CRED_NT_PRESENT = 2; +const MSV1_0_CRED_VERSION = 0; +const MSV1_0_DONT_TRY_GUEST_ACCOUNT = 16; +const MSV1_0_MAX_NTLM3_LIFE = 1800; +const MSV1_0_MAX_AVL_SIZE = 64000; +const MSV1_0_MNS_LOGON = 16777216; + +const size_t + MSV1_0_CHALLENGE_LENGTH = 8, + MSV1_0_LANMAN_SESSION_KEY_LENGTH = 8, + MSV1_0_NTLM3_RESPONSE_LENGTH = 16, + MSV1_0_NTLM3_OWF_LENGTH = 16, + MSV1_0_NTLM3_INPUT_LENGTH = MSV1_0_NTLM3_RESPONSE.sizeof + - MSV1_0_NTLM3_RESPONSE_LENGTH, + MSV1_0_OWF_PASSWORD_LENGTH = 16, + MSV1_0_PACKAGE_NAMEW_LENGTH = MSV1_0_PACKAGE_NAMEW.sizeof + - WCHAR.sizeof; + +const MSV1_0_RETURN_USER_PARAMETERS = 8; +const MSV1_0_RETURN_PASSWORD_EXPIRY = 64; +const MSV1_0_RETURN_PROFILE_PATH = 512; +const MSV1_0_SUBAUTHENTICATION_DLL_EX = 1048576; +const MSV1_0_SUBAUTHENTICATION_DLL = 0xff000000; +const MSV1_0_SUBAUTHENTICATION_DLL_SHIFT = 24; +const MSV1_0_SUBAUTHENTICATION_DLL_RAS = 2; +const MSV1_0_SUBAUTHENTICATION_DLL_IIS = 132; +const MSV1_0_SUBAUTHENTICATION_FLAGS = 0xff000000; +const MSV1_0_TRY_GUEST_ACCOUNT_ONLY = 256; +const MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY = 1024; +const MSV1_0_UPDATE_LOGON_STATISTICS = 4; +const MSV1_0_USE_CLIENT_CHALLENGE = 128; +const MSV1_0_USER_SESSION_KEY_LENGTH = 16; + +const char[] + MSV1_0_SUBAUTHENTICATION_KEY + = `System\CurrentControlSet\Control\Lsa\MSV1_0`, + MSV1_0_SUBAUTHENTICATION_VALUE = "Auth"; + +const ACCESS_MASK + POLICY_VIEW_LOCAL_INFORMATION = 0x0001, + POLICY_VIEW_AUDIT_INFORMATION = 0x0002, + POLICY_GET_PRIVATE_INFORMATION = 0x0004, + POLICY_TRUST_ADMIN = 0x0008, + POLICY_CREATE_ACCOUNT = 0x0010, + POLICY_CREATE_SECRET = 0x0020, + POLICY_CREATE_PRIVILEGE = 0x0040, + POLICY_SET_DEFAULT_QUOTA_LIMITS = 0x0080, + POLICY_SET_AUDIT_REQUIREMENTS = 0x0100, + POLICY_AUDIT_LOG_ADMIN = 0x0200, + POLICY_SERVER_ADMIN = 0x0400, + POLICY_LOOKUP_NAMES = 0x0800, + + POLICY_READ = STANDARD_RIGHTS_READ | 0x0006, + POLICY_WRITE = STANDARD_RIGHTS_WRITE | 0x07F8, + POLICY_EXECUTE = STANDARD_RIGHTS_EXECUTE | 0x0801, + POLICY_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | 0x0FFF; + +const POLICY_AUDIT_EVENT_UNCHANGED = 0; +const POLICY_AUDIT_EVENT_SUCCESS = 1; +const POLICY_AUDIT_EVENT_FAILURE = 2; +const POLICY_AUDIT_EVENT_NONE = 4; +const POLICY_AUDIT_EVENT_MASK = 7; + +enum { + POLICY_LOCATION_LOCAL = 1, + POLICY_LOCATION_DS +} + +enum : uint { + POLICY_MACHINE_POLICY_LOCAL = 0, + POLICY_MACHINE_POLICY_DEFAULTED, + POLICY_MACHINE_POLICY_EXPLICIT, + POLICY_MACHINE_POLICY_UNKNOWN = 0xFFFFFFFF +} + + +const POLICY_QOS_SCHANEL_REQUIRED = 0x0001; +const POLICY_QOS_OUTBOUND_INTEGRITY = 0x0002; +const POLICY_QOS_OUTBOUND_CONFIDENTIALITY = 0x0004; +const POLICY_QOS_INBOUND_INTEGREITY = 0x0008; +const POLICY_QOS_INBOUND_CONFIDENTIALITY = 0x0010; +const POLICY_QOS_ALLOW_LOCAL_ROOT_CERT_STORE = 0x0020; +const POLICY_QOS_RAS_SERVER_ALLOWED = 0x0040; +const POLICY_QOS_DHCP_SERVER_ALLOWD = 0x0080; + +const POLICY_KERBEROS_FORWARDABLE = 1; +const POLICY_KERBEROS_PROXYABLE = 2; +const POLICY_KERBEROS_RENEWABLE = 4; +const POLICY_KERBEROS_POSTDATEABLE = 8; + +const char[] + SAM_PASSWORD_CHANGE_NOTIFY_ROUTINE = "PasswordChangeNotify", + SAM_INIT_NOTIFICATION_ROUTINE = "InitializeChangeNotify", + SAM_PASSWORD_FILTER_ROUTINE = "PasswordFilter"; + +const TCHAR[] + SE_INTERACTIVE_LOGON_NAME = "SeInteractiveLogonRight", + SE_NETWORK_LOGON_NAME = "SeNetworkLogonRight", + SE_BATCH_LOGON_NAME = "SeBatchLogonRight", + SE_SERVICE_LOGON_NAME = "SeServiceLogonRight"; + +enum { + TRUST_ATTRIBUTE_NON_TRANSITIVE = 1, + TRUST_ATTRIBUTE_UPLEVEL_ONLY = 2, + TRUST_ATTRIBUTE_TREE_PARENT = 4194304, + TRUST_ATTRIBUTES_VALID = -16580609 +} + +enum { + TRUST_AUTH_TYPE_NONE, + TRUST_AUTH_TYPE_NT4OWF, + TRUST_AUTH_TYPE_CLEAR +} + +enum { + TRUST_DIRECTION_DISABLED, + TRUST_DIRECTION_INBOUND, + TRUST_DIRECTION_OUTBOUND, + TRUST_DIRECTION_BIDIRECTIONAL +} + +enum { + TRUST_TYPE_DOWNLEVEL = 1, + TRUST_TYPE_UPLEVEL, + TRUST_TYPE_MIT, + TRUST_TYPE_DCE +} + +alias UNICODE_STRING LSA_UNICODE_STRING; +alias UNICODE_STRING* PLSA_UNICODE_STRING; +alias STRING LSA_STRING; +alias STRING* PLSA_STRING; + +enum MSV1_0_LOGON_SUBMIT_TYPE { + MsV1_0InteractiveLogon = 2, + MsV1_0Lm20Logon, + MsV1_0NetworkLogon, + MsV1_0SubAuthLogon, + MsV1_0WorkstationUnlockLogon = 7 +} +alias MSV1_0_LOGON_SUBMIT_TYPE* PMSV1_0_LOGON_SUBMIT_TYPE; + +enum MSV1_0_PROFILE_BUFFER_TYPE { + MsV1_0InteractiveProfile = 2, + MsV1_0Lm20LogonProfile, + MsV1_0SmartCardProfile +} +alias MSV1_0_PROFILE_BUFFER_TYPE* PMSV1_0_PROFILE_BUFFER_TYPE; + + +enum MSV1_0_AVID { + MsvAvEOL, + MsvAvNbComputerName, + MsvAvNbDomainName, + MsvAvDnsComputerName, + MsvAvDnsDomainName +} + +enum MSV1_0_PROTOCOL_MESSAGE_TYPE { + MsV1_0Lm20ChallengeRequest = 0, + MsV1_0Lm20GetChallengeResponse, + MsV1_0EnumerateUsers, + MsV1_0GetUserInfo, + MsV1_0ReLogonUsers, + MsV1_0ChangePassword, + MsV1_0ChangeCachedPassword, + MsV1_0GenericPassthrough, + MsV1_0CacheLogon, + MsV1_0SubAuth, + MsV1_0DeriveCredential, + MsV1_0CacheLookup +} +alias MSV1_0_PROTOCOL_MESSAGE_TYPE* PMSV1_0_PROTOCOL_MESSAGE_TYPE; + +enum POLICY_LSA_SERVER_ROLE { + PolicyServerRoleBackup = 2, + PolicyServerRolePrimary +} +alias POLICY_LSA_SERVER_ROLE* PPOLICY_LSA_SERVER_ROLE; + +enum POLICY_SERVER_ENABLE_STATE { + PolicyServerEnabled = 2, + PolicyServerDisabled +} +alias POLICY_SERVER_ENABLE_STATE* PPOLICY_SERVER_ENABLE_STATE; + +enum POLICY_INFORMATION_CLASS { + PolicyAuditLogInformation = 1, + PolicyAuditEventsInformation, + PolicyPrimaryDomainInformation, + PolicyPdAccountInformation, + PolicyAccountDomainInformation, + PolicyLsaServerRoleInformation, + PolicyReplicaSourceInformation, + PolicyDefaultQuotaInformation, + PolicyModificationInformation, + PolicyAuditFullSetInformation, + PolicyAuditFullQueryInformation, + PolicyDnsDomainInformation, + PolicyEfsInformation +} +alias POLICY_INFORMATION_CLASS* PPOLICY_INFORMATION_CLASS; + +enum POLICY_AUDIT_EVENT_TYPE { + AuditCategorySystem, + AuditCategoryLogon, + AuditCategoryObjectAccess, + AuditCategoryPrivilegeUse, + AuditCategoryDetailedTracking, + AuditCategoryPolicyChange, + AuditCategoryAccountManagement, + AuditCategoryDirectoryServiceAccess, + AuditCategoryAccountLogon +} +alias POLICY_AUDIT_EVENT_TYPE* PPOLICY_AUDIT_EVENT_TYPE; + +enum POLICY_LOCAL_INFORMATION_CLASS { + PolicyLocalAuditEventsInformation = 1, + PolicyLocalPdAccountInformation, + PolicyLocalAccountDomainInformation, + PolicyLocalLsaServerRoleInformation, + PolicyLocalReplicaSourceInformation, + PolicyLocalModificationInformation, + PolicyLocalAuditFullSetInformation, + PolicyLocalAuditFullQueryInformation, + PolicyLocalDnsDomainInformation, + PolicyLocalIPSecReferenceInformation, + PolicyLocalMachinePasswordInformation, + PolicyLocalQualityOfServiceInformation, + PolicyLocalPolicyLocationInformation +} +alias POLICY_LOCAL_INFORMATION_CLASS* PPOLICY_LOCAL_INFORMATION_CLASS; + +enum POLICY_DOMAIN_INFORMATION_CLASS { + PolicyDomainIPSecReferenceInformation = 1, + PolicyDomainQualityOfServiceInformation, + PolicyDomainEfsInformation, + PolicyDomainPublicKeyInformation, + PolicyDomainPasswordPolicyInformation, + PolicyDomainLockoutInformation, + PolicyDomainKerberosTicketInformation +} +alias POLICY_DOMAIN_INFORMATION_CLASS* PPOLICY_DOMAIN_INFORMATION_CLASS; + +enum SECURITY_LOGON_TYPE { + Interactive = 2, + Network, + Batch, + Service, + Proxy, + Unlock +} +alias SECURITY_LOGON_TYPE* PSECURITY_LOGON_TYPE; + +enum TRUSTED_INFORMATION_CLASS { + TrustedDomainNameInformation = 1, + TrustedControllersInformation, + TrustedPosixOffsetInformation, + TrustedPasswordInformation, + TrustedDomainInformationBasic, + TrustedDomainInformationEx, + TrustedDomainAuthInformation, + TrustedDomainFullInformation +} +alias TRUSTED_INFORMATION_CLASS* PTRUSTED_INFORMATION_CLASS; + +struct DOMAIN_PASSWORD_INFORMATION { + USHORT MinPasswordLength; + USHORT PasswordHistoryLength; + ULONG PasswordProperties; + LARGE_INTEGER MaxPasswordAge; + LARGE_INTEGER MinPasswordAge; +} +alias DOMAIN_PASSWORD_INFORMATION* PDOMAIN_PASSWORD_INFORMATION; + +struct LSA_ENUMERATION_INFORMATION { + PSID Sid; +} +alias LSA_ENUMERATION_INFORMATION* PLSA_ENUMERATION_INFORMATION; + +alias OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES; +alias OBJECT_ATTRIBUTES* PLSA_OBJECT_ATTRIBUTES; + +struct LSA_TRUST_INFORMATION { + LSA_UNICODE_STRING Name; + PSID Sid; +} +alias LSA_TRUST_INFORMATION TRUSTED_DOMAIN_INFORMATION_BASIC; +alias LSA_TRUST_INFORMATION* PLSA_TRUST_INFORMATION; +/* in MinGW (further down the code): + * typedef PLSA_TRUST_INFORMATION *PTRUSTED_DOMAIN_INFORMATION_BASIC; + * but it doesn't look right.... + */ +alias LSA_TRUST_INFORMATION** PTRUSTED_DOMAIN_INFORMATION_BASIC; + +struct LSA_REFERENCED_DOMAIN_LIST { + ULONG Entries; + PLSA_TRUST_INFORMATION Domains; +} +alias LSA_REFERENCED_DOMAIN_LIST* PLSA_REFERENCED_DOMAIN_LIST; + +struct LSA_TRANSLATED_SID { + SID_NAME_USE Use; + ULONG RelativeId; + LONG DomainIndex; +} +alias LSA_TRANSLATED_SID* PLSA_TRANSLATED_SID; + +struct LSA_TRANSLATED_NAME { + SID_NAME_USE Use; + LSA_UNICODE_STRING Name; + LONG DomainIndex; +} +alias LSA_TRANSLATED_NAME* PLSA_TRANSLATED_NAME; + +struct MSV1_0_INTERACTIVE_LOGON { + MSV1_0_LOGON_SUBMIT_TYPE MessageType; + UNICODE_STRING LogonDomainName; + UNICODE_STRING UserName; + UNICODE_STRING Password; +} +alias MSV1_0_INTERACTIVE_LOGON* PMSV1_0_INTERACTIVE_LOGON; + +struct MSV1_0_INTERACTIVE_PROFILE { + MSV1_0_PROFILE_BUFFER_TYPE MessageType; + USHORT LogonCount; + USHORT BadPasswordCount; + LARGE_INTEGER LogonTime; + LARGE_INTEGER LogoffTime; + LARGE_INTEGER KickOffTime; + LARGE_INTEGER PasswordLastSet; + LARGE_INTEGER PasswordCanChange; + LARGE_INTEGER PasswordMustChange; + UNICODE_STRING LogonScript; + UNICODE_STRING HomeDirectory; + UNICODE_STRING FullName; + UNICODE_STRING ProfilePath; + UNICODE_STRING HomeDirectoryDrive; + UNICODE_STRING LogonServer; + ULONG UserFlags; +} +alias MSV1_0_INTERACTIVE_PROFILE* PMSV1_0_INTERACTIVE_PROFILE; + +struct MSV1_0_LM20_LOGON { + MSV1_0_LOGON_SUBMIT_TYPE MessageType; + UNICODE_STRING LogonDomainName; + UNICODE_STRING UserName; + UNICODE_STRING Workstation; + UCHAR[MSV1_0_CHALLENGE_LENGTH] ChallengeToClient; + STRING CaseSensitiveChallengeResponse; + STRING CaseInsensitiveChallengeResponse; + ULONG ParameterControl; +} +alias MSV1_0_LM20_LOGON* PMSV1_0_LM20_LOGON; + +static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { + struct MSV1_0_SUBAUTH_LOGON { + MSV1_0_LOGON_SUBMIT_TYPE MessageType; + UNICODE_STRING LogonDomainName; + UNICODE_STRING UserName; + UNICODE_STRING Workstation; + UCHAR[MSV1_0_CHALLENGE_LENGTH] ChallengeToClient; + STRING AuthenticationInfo1; + STRING AuthenticationInfo2; + ULONG ParameterControl; + ULONG SubAuthPackageId; + } + alias MSV1_0_SUBAUTH_LOGON* PMSV1_0_SUBAUTH_LOGON; +} + +struct MSV1_0_LM20_LOGON_PROFILE { + MSV1_0_PROFILE_BUFFER_TYPE MessageType; + LARGE_INTEGER KickOffTime; + LARGE_INTEGER LogoffTime; + ULONG UserFlags; + UCHAR[MSV1_0_USER_SESSION_KEY_LENGTH] UserSessionKey; + UNICODE_STRING LogonDomainName; + UCHAR[MSV1_0_LANMAN_SESSION_KEY_LENGTH] LanmanSessionKey; + UNICODE_STRING LogonServer; + UNICODE_STRING UserParameters; +} +alias MSV1_0_LM20_LOGON_PROFILE* PMSV1_0_LM20_LOGON_PROFILE; + +struct MSV1_0_SUPPLEMENTAL_CREDENTIAL { + ULONG Version; + ULONG Flags; + UCHAR[MSV1_0_OWF_PASSWORD_LENGTH] LmPassword; + UCHAR[MSV1_0_OWF_PASSWORD_LENGTH] NtPassword; +} +alias MSV1_0_SUPPLEMENTAL_CREDENTIAL* PMSV1_0_SUPPLEMENTAL_CREDENTIAL; + +struct MSV1_0_NTLM3_RESPONSE { + UCHAR[MSV1_0_NTLM3_RESPONSE_LENGTH] Response; + UCHAR RespType; + UCHAR HiRespType; + USHORT Flags; + ULONG MsgWord; + ULONGLONG TimeStamp; + UCHAR[MSV1_0_CHALLENGE_LENGTH] ChallengeFromClient; + ULONG AvPairsOff; + UCHAR _Buffer; + UCHAR* Buffer() { return &_Buffer; } +} +alias MSV1_0_NTLM3_RESPONSE* PMSV1_0_NTLM3_RESPONSE; + +struct MSV1_0_AV_PAIR { + USHORT AvId; + USHORT AvLen; +} +alias MSV1_0_AV_PAIR* PMSV1_0_AV_PAIR; + +struct MSV1_0_CHANGEPASSWORD_REQUEST { + MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; + UNICODE_STRING DomainName; + UNICODE_STRING AccountName; + UNICODE_STRING OldPassword; + UNICODE_STRING NewPassword; + BOOLEAN Impersonating; +} +alias MSV1_0_CHANGEPASSWORD_REQUEST* PMSV1_0_CHANGEPASSWORD_REQUEST; + +struct MSV1_0_CHANGEPASSWORD_RESPONSE { + MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; + BOOLEAN PasswordInfoValid; + DOMAIN_PASSWORD_INFORMATION DomainPasswordInfo; +} +alias MSV1_0_CHANGEPASSWORD_RESPONSE* PMSV1_0_CHANGEPASSWORD_RESPONSE; + +struct MSV1_0_SUBAUTH_REQUEST { + MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; + ULONG SubAuthPackageId; + ULONG SubAuthInfoLength; + PUCHAR SubAuthSubmitBuffer; +} +alias MSV1_0_SUBAUTH_REQUEST* PMSV1_0_SUBAUTH_REQUEST; + +struct MSV1_0_SUBAUTH_RESPONSE { + MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; + ULONG SubAuthInfoLength; + PUCHAR SubAuthReturnBuffer; +} +alias MSV1_0_SUBAUTH_RESPONSE* PMSV1_0_SUBAUTH_RESPONSE; + +const MSV1_0_DERIVECRED_TYPE_SHA1 = 0; + +struct MSV1_0_DERIVECRED_REQUEST { + MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; + LUID LogonId; + ULONG DeriveCredType; + ULONG DeriveCredInfoLength; + UCHAR _DeriveCredSubmitBuffer; + UCHAR* DeriveCredSubmitBuffer() { return &_DeriveCredSubmitBuffer; } +} +alias MSV1_0_DERIVECRED_REQUEST* PMSV1_0_DERIVECRED_REQUEST; + +struct MSV1_0_DERIVECRED_RESPONSE { + MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; + ULONG DeriveCredInfoLength; + UCHAR _DeriveCredReturnBuffer; + UCHAR* DeriveCredReturnBuffer() { return &_DeriveCredReturnBuffer; } +} +alias MSV1_0_DERIVECRED_RESPONSE* PMSV1_0_DERIVECRED_RESPONSE; + +alias uint LSA_ENUMERATION_HANDLE, LSA_OPERATIONAL_MODE, + POLICY_AUDIT_EVENT_OPTIONS; +alias uint* PLSA_ENUMERATION_HANDLE, PLSA_OPERATIONAL_MODE, + PPOLICY_AUDIT_EVENT_OPTIONS; + +struct POLICY_PRIVILEGE_DEFINITION { + LSA_UNICODE_STRING Name; + LUID LocalValue; +} +alias POLICY_PRIVILEGE_DEFINITION* PPOLICY_PRIVILEGE_DEFINITION; + +struct POLICY_AUDIT_LOG_INFO { + ULONG AuditLogPercentFull; + ULONG MaximumLogSize; + LARGE_INTEGER AuditRetentionPeriod; + BOOLEAN AuditLogFullShutdownInProgress; + LARGE_INTEGER TimeToShutdown; + ULONG NextAuditRecordId; +} +alias POLICY_AUDIT_LOG_INFO* PPOLICY_AUDIT_LOG_INFO; + +struct POLICY_AUDIT_EVENTS_INFO { + BOOLEAN AuditingMode; + PPOLICY_AUDIT_EVENT_OPTIONS EventAuditingOptions; + ULONG MaximumAuditEventCount; +} +alias POLICY_AUDIT_EVENTS_INFO* PPOLICY_AUDIT_EVENTS_INFO; + +struct POLICY_ACCOUNT_DOMAIN_INFO { + LSA_UNICODE_STRING DomainName; + PSID DomainSid; +} +alias POLICY_ACCOUNT_DOMAIN_INFO* PPOLICY_ACCOUNT_DOMAIN_INFO; + +struct POLICY_PRIMARY_DOMAIN_INFO { + LSA_UNICODE_STRING Name; + PSID Sid; +} +alias POLICY_PRIMARY_DOMAIN_INFO* PPOLICY_PRIMARY_DOMAIN_INFO; + +struct POLICY_DNS_DOMAIN_INFO { + LSA_UNICODE_STRING Name; + LSA_UNICODE_STRING DnsDomainName; + LSA_UNICODE_STRING DnsTreeName; + GUID DomainGuid; + PSID Sid; +} +alias POLICY_DNS_DOMAIN_INFO* PPOLICY_DNS_DOMAIN_INFO; + +struct POLICY_PD_ACCOUNT_INFO { + LSA_UNICODE_STRING Name; +} +alias POLICY_PD_ACCOUNT_INFO* PPOLICY_PD_ACCOUNT_INFO; + +struct POLICY_LSA_SERVER_ROLE_INFO { + POLICY_LSA_SERVER_ROLE LsaServerRole; +} +alias POLICY_LSA_SERVER_ROLE_INFO* PPOLICY_LSA_SERVER_ROLE_INFO; + +struct POLICY_REPLICA_SOURCE_INFO { + LSA_UNICODE_STRING ReplicaSource; + LSA_UNICODE_STRING ReplicaAccountName; +} +alias POLICY_REPLICA_SOURCE_INFO* PPOLICY_REPLICA_SOURCE_INFO; + +struct POLICY_DEFAULT_QUOTA_INFO { + QUOTA_LIMITS QuotaLimits; +} +alias POLICY_DEFAULT_QUOTA_INFO* PPOLICY_DEFAULT_QUOTA_INFO; + +struct POLICY_MODIFICATION_INFO { + LARGE_INTEGER ModifiedId; + LARGE_INTEGER DatabaseCreationTime; +} +alias POLICY_MODIFICATION_INFO* PPOLICY_MODIFICATION_INFO; + +struct POLICY_AUDIT_FULL_SET_INFO { + BOOLEAN ShutDownOnFull; +} +alias POLICY_AUDIT_FULL_SET_INFO* PPOLICY_AUDIT_FULL_SET_INFO; + +struct POLICY_AUDIT_FULL_QUERY_INFO { + BOOLEAN ShutDownOnFull; + BOOLEAN LogIsFull; +} +alias POLICY_AUDIT_FULL_QUERY_INFO* PPOLICY_AUDIT_FULL_QUERY_INFO; + +struct POLICY_EFS_INFO { + ULONG InfoLength; + PUCHAR EfsBlob; +} +alias POLICY_EFS_INFO* PPOLICY_EFS_INFO; + +struct POLICY_LOCAL_IPSEC_REFERENCE_INFO { + LSA_UNICODE_STRING ObjectPath; +} +alias POLICY_LOCAL_IPSEC_REFERENCE_INFO* PPOLICY_LOCAL_IPSEC_REFERENCE_INFO; + +struct POLICY_LOCAL_MACHINE_PASSWORD_INFO { + LARGE_INTEGER PasswordChangeInterval; +} +alias POLICY_LOCAL_MACHINE_PASSWORD_INFO* PPOLICY_LOCAL_MACHINE_PASSWORD_INFO; + +struct POLICY_LOCAL_POLICY_LOCATION_INFO { + ULONG PolicyLocation; +} +alias POLICY_LOCAL_POLICY_LOCATION_INFO* PPOLICY_LOCAL_POLICY_LOCATION_INFO; + +struct POLICY_LOCAL_QUALITY_OF_SERVICE_INFO{ + ULONG QualityOfService; +} +alias POLICY_LOCAL_QUALITY_OF_SERVICE_INFO + POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO; +alias POLICY_LOCAL_QUALITY_OF_SERVICE_INFO* + PPOLICY_LOCAL_QUALITY_OF_SERVICE_INFO, + PPOLICY_DOMAIN_QUALITY_OF_SERVICE_INFO; + +struct POLICY_DOMAIN_PUBLIC_KEY_INFO { + ULONG InfoLength; + PUCHAR PublicKeyInfo; +} +alias POLICY_DOMAIN_PUBLIC_KEY_INFO* PPOLICY_DOMAIN_PUBLIC_KEY_INFO; + +struct POLICY_DOMAIN_LOCKOUT_INFO { + LARGE_INTEGER LockoutDuration; + LARGE_INTEGER LockoutObservationWindow; + USHORT LockoutThreshold; +} +alias POLICY_DOMAIN_LOCKOUT_INFO* PPOLICY_DOMAIN_LOCKOUT_INFO; + +struct POLICY_DOMAIN_PASSWORD_INFO { + USHORT MinPasswordLength; + USHORT PasswordHistoryLength; + ULONG PasswordProperties; + LARGE_INTEGER MaxPasswordAge; + LARGE_INTEGER MinPasswordAge; +} +alias POLICY_DOMAIN_PASSWORD_INFO* PPOLICY_DOMAIN_PASSWORD_INFO; + +struct POLICY_DOMAIN_KERBEROS_TICKET_INFO { + ULONG AuthenticationOptions; + LARGE_INTEGER MinTicketAge; + LARGE_INTEGER MaxTicketAge; + LARGE_INTEGER MaxRenewAge; + LARGE_INTEGER ProxyLifetime; + LARGE_INTEGER ForceLogoff; +} +alias POLICY_DOMAIN_KERBEROS_TICKET_INFO* PPOLICY_DOMAIN_KERBEROS_TICKET_INFO; + +alias HANDLE LSA_HANDLE; +alias HANDLE* PLSA_HANDLE; + +struct TRUSTED_DOMAIN_NAME_INFO { + LSA_UNICODE_STRING Name; +} +alias TRUSTED_DOMAIN_NAME_INFO* PTRUSTED_DOMAIN_NAME_INFO; + +struct TRUSTED_CONTROLLERS_INFO { + ULONG Entries; + PLSA_UNICODE_STRING Names; +} +alias TRUSTED_CONTROLLERS_INFO* PTRUSTED_CONTROLLERS_INFO; + +struct TRUSTED_POSIX_OFFSET_INFO { + ULONG Offset; +} +alias TRUSTED_POSIX_OFFSET_INFO* PTRUSTED_POSIX_OFFSET_INFO; + +struct TRUSTED_PASSWORD_INFO { + LSA_UNICODE_STRING Password; + LSA_UNICODE_STRING OldPassword; +} +alias TRUSTED_PASSWORD_INFO* PTRUSTED_PASSWORD_INFO; + +struct TRUSTED_DOMAIN_INFORMATION_EX { + LSA_UNICODE_STRING Name; + LSA_UNICODE_STRING FlatName; + PSID Sid; + ULONG TrustDirection; + ULONG TrustType; + ULONG TrustAttributes; +} +alias TRUSTED_DOMAIN_INFORMATION_EX* PTRUSTED_DOMAIN_INFORMATION_EX; + +struct LSA_AUTH_INFORMATION { + LARGE_INTEGER LastUpdateTime; + ULONG AuthType; + ULONG AuthInfoLength; + PUCHAR AuthInfo; +} +alias LSA_AUTH_INFORMATION* PLSA_AUTH_INFORMATION; + +struct TRUSTED_DOMAIN_AUTH_INFORMATION { + ULONG IncomingAuthInfos; + PLSA_AUTH_INFORMATION IncomingAuthenticationInformation; + PLSA_AUTH_INFORMATION IncomingPreviousAuthenticationInformation; + ULONG OutgoingAuthInfos; + PLSA_AUTH_INFORMATION OutgoingAuthenticationInformation; + PLSA_AUTH_INFORMATION OutgoingPreviousAuthenticationInformation; +} +alias TRUSTED_DOMAIN_AUTH_INFORMATION* PTRUSTED_DOMAIN_AUTH_INFORMATION; + +struct TRUSTED_DOMAIN_FULL_INFORMATION { + TRUSTED_DOMAIN_INFORMATION_EX Information; + TRUSTED_POSIX_OFFSET_INFO PosixOffset; + TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation; +} +alias TRUSTED_DOMAIN_FULL_INFORMATION* PTRUSTED_DOMAIN_FULL_INFORMATION; + +extern (Windows) { + NTSTATUS LsaAddAccountRights(LSA_HANDLE, PSID, PLSA_UNICODE_STRING, + ULONG); + NTSTATUS LsaCallAuthenticationPackage(HANDLE, ULONG, PVOID, ULONG, + PVOID*, PULONG, PNTSTATUS); + NTSTATUS LsaClose(LSA_HANDLE); + NTSTATUS LsaConnectUntrusted(PHANDLE); + NTSTATUS LsaCreateTrustedDomainEx(LSA_HANDLE, + PTRUSTED_DOMAIN_INFORMATION_EX, PTRUSTED_DOMAIN_AUTH_INFORMATION, + ACCESS_MASK, PLSA_HANDLE); + NTSTATUS LsaDeleteTrustedDomain(LSA_HANDLE, PSID); + NTSTATUS LsaDeregisterLogonProcess(HANDLE); + NTSTATUS LsaEnumerateAccountRights(LSA_HANDLE, PSID, PLSA_UNICODE_STRING*, + PULONG); + NTSTATUS LsaEnumerateAccountsWithUserRight(LSA_HANDLE, + PLSA_UNICODE_STRING, PVOID*, PULONG); + NTSTATUS LsaEnumerateTrustedDomains(LSA_HANDLE, PLSA_ENUMERATION_HANDLE, + PVOID*, ULONG, PULONG); + NTSTATUS LsaEnumerateTrustedDomainsEx(LSA_HANDLE, PLSA_ENUMERATION_HANDLE, + TRUSTED_INFORMATION_CLASS, PVOID*, ULONG, PULONG); + NTSTATUS LsaFreeMemory(PVOID); + NTSTATUS LsaFreeReturnBuffer(PVOID); + NTSTATUS LsaLogonUser(HANDLE, PLSA_STRING, SECURITY_LOGON_TYPE, ULONG, + PVOID, ULONG, PTOKEN_GROUPS, PTOKEN_SOURCE, PVOID*, PULONG, PLUID, + PHANDLE, PQUOTA_LIMITS, PNTSTATUS); + NTSTATUS LsaLookupAuthenticationPackage(HANDLE, PLSA_STRING, PULONG); + NTSTATUS LsaLookupNames(LSA_HANDLE, ULONG, PLSA_UNICODE_STRING, + PLSA_REFERENCED_DOMAIN_LIST*, PLSA_TRANSLATED_SID*); + NTSTATUS LsaLookupSids(LSA_HANDLE, ULONG, PSID*, + PLSA_REFERENCED_DOMAIN_LIST*, PLSA_TRANSLATED_NAME*); + ULONG LsaNtStatusToWinError(NTSTATUS); + NTSTATUS LsaOpenPolicy(PLSA_UNICODE_STRING, PLSA_OBJECT_ATTRIBUTES, + ACCESS_MASK, PLSA_HANDLE); + NTSTATUS LsaQueryDomainInformationPolicy(LSA_HANDLE, + POLICY_DOMAIN_INFORMATION_CLASS, PVOID*); + NTSTATUS LsaQueryInformationPolicy(LSA_HANDLE, POLICY_INFORMATION_CLASS, + PVOID*); + NTSTATUS LsaQueryLocalInformationPolicy(LSA_HANDLE, + POLICY_LOCAL_INFORMATION_CLASS, PVOID*); + NTSTATUS LsaQueryTrustedDomainInfo(LSA_HANDLE, PSID, + TRUSTED_INFORMATION_CLASS, PVOID*); + NTSTATUS LsaQueryTrustedDomainInfoByName(LSA_HANDLE, PLSA_UNICODE_STRING, + TRUSTED_INFORMATION_CLASS, PVOID*); + NTSTATUS LsaRegisterLogonProcess(PLSA_STRING, PHANDLE, + PLSA_OPERATIONAL_MODE); + NTSTATUS LsaRemoveAccountRights(LSA_HANDLE, PSID, BOOLEAN, + PLSA_UNICODE_STRING, ULONG); + NTSTATUS LsaRetrievePrivateData(LSA_HANDLE, PLSA_UNICODE_STRING, + PLSA_UNICODE_STRING*); + NTSTATUS LsaSetDomainInformationPolicy(LSA_HANDLE, + POLICY_DOMAIN_INFORMATION_CLASS, PVOID); + NTSTATUS LsaSetInformationPolicy(LSA_HANDLE, POLICY_INFORMATION_CLASS, + PVOID); + NTSTATUS LsaSetLocalInformationPolicy(LSA_HANDLE, + POLICY_LOCAL_INFORMATION_CLASS, PVOID); + NTSTATUS LsaSetTrustedDomainInformation(LSA_HANDLE, PSID, + TRUSTED_INFORMATION_CLASS, PVOID); + NTSTATUS LsaSetTrustedDomainInfoByName(LSA_HANDLE, PLSA_UNICODE_STRING, + TRUSTED_INFORMATION_CLASS, PVOID); + NTSTATUS LsaStorePrivateData(LSA_HANDLE, PLSA_UNICODE_STRING, + PLSA_UNICODE_STRING); +} + +alias NTSTATUS function(PUNICODE_STRING, ULONG, PUNICODE_STRING) + PSAM_PASSWORD_NOTIFICATION_ROUTINE; +alias BOOLEAN function() PSAM_INIT_NOTIFICATION_ROUTINE; +alias BOOLEAN function(PUNICODE_STRING, PUNICODE_STRING, + PUNICODE_STRING, BOOLEAN) PSAM_PASSWORD_FILTER_ROUTINE; ADDED src/win32/oaidl.d Index: src/win32/oaidl.d ================================================================== --- src/win32/oaidl.d +++ src/win32/oaidl.d @@ -0,0 +1,672 @@ +/***********************************************************************\ +* oaidl.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.oaidl; + +private import win32.basetyps, win32.unknwn, win32.windef, win32.wtypes; + +const DISPID_UNKNOWN = -1; +const DISPID_VALUE = 0; +const DISPID_PROPERTYPUT = -3; +const DISPID_NEWENUM = -4; +const DISPID_EVALUATE = -5; +const DISPID_CONSTRUCTOR = -6; +const DISPID_DESTRUCTOR = -7; +const DISPID_COLLECT = -8; + +const FADF_AUTO = 1; +const FADF_STATIC = 2; +const FADF_EMBEDDED = 4; +const FADF_FIXEDSIZE = 16; +const FADF_RECORD = 32; +const FADF_HAVEIID = 64; +const FADF_HAVEVARTYPE = 128; +const FADF_BSTR = 256; +const FADF_UNKNOWN = 512; +const FADF_DISPATCH = 1024; +const FADF_VARIANT = 2048; +const FADF_RESERVED = 0xf0e8; +const FADF_DATADELETED = 0x1000; +const FADF_CREATEVECTOR = 0x2000; + +const PARAMFLAG_NONE = 0; +const PARAMFLAG_FIN = 1; +const PARAMFLAG_FOUT = 2; +const PARAMFLAG_FLCID = 4; +const PARAMFLAG_FRETVAL = 8; +const PARAMFLAG_FOPT = 16; +const PARAMFLAG_FHASDEFAULT = 32; + +const IDLFLAG_NONE = PARAMFLAG_NONE; +const IDLFLAG_FIN = PARAMFLAG_FIN; +const IDLFLAG_FOUT = PARAMFLAG_FOUT; +const IDLFLAG_FLCID = PARAMFLAG_FLCID; +const IDLFLAG_FRETVAL = PARAMFLAG_FRETVAL; + +const IMPLTYPEFLAG_FDEFAULT = 1; +const IMPLTYPEFLAG_FSOURCE = 2; +const IMPLTYPEFLAG_FRESTRICTED = 4; +const IMPLTYPEFLAG_FDEFAULTVTABLE = 8; + + +enum SYSKIND { + SYS_WIN16, + SYS_WIN32, + SYS_MAC +} + +enum LIBFLAGS { + LIBFLAG_FRESTRICTED = 1, + LIBFLAG_FCONTROL = 2, + LIBFLAG_FHIDDEN = 4, + LIBFLAG_FHASDISKIMAGE = 8 +} + +struct TLIBATTR { + GUID guid; + LCID lcid; + SYSKIND syskind; + WORD wMajorVerNum; + WORD wMinorVerNum; + WORD wLibFlags; +} +alias TLIBATTR* LPTLIBATTR; + +alias CY CURRENCY; + +struct SAFEARRAYBOUND { + ULONG cElements; + LONG lLbound; +} +alias SAFEARRAYBOUND* LPSAFEARRAYBOUND; + +struct SAFEARR_BSTR { + ULONG Size; + wireBSTR* aBstr; +} + +struct SAFEARR_UNKNOWN { + ULONG Size; + IUnknown** apUnknown; +} + +struct SAFEARR_DISPATCH { + ULONG Size; + LPDISPATCH* apDispatch; +} + +struct SAFEARR_VARIANT { + ULONG Size; + _wireVARIANT* aVariant; +} + +enum SF_TYPE { + SF_ERROR=VARENUM.VT_ERROR, + SF_I1=VARENUM.VT_I1, + SF_I2=VARENUM.VT_I2, + SF_I4=VARENUM.VT_I4, + SF_I8=VARENUM.VT_I8, + SF_BSTR=VARENUM.VT_BSTR, + SF_UNKNOWN=VARENUM.VT_UNKNOWN, + SF_DISPATCH=VARENUM.VT_DISPATCH, + SF_VARIANT=VARENUM.VT_VARIANT +} + +struct _wireBRECORD { + ULONG fFlags; + ULONG clSize; + LPRECORDINFO* pRecInfo; + byte* pRecord; +} +alias _wireBRECORD* wireBRECORD; + +struct SAFEARR_BRECORD { + ULONG Size; + wireBRECORD* aRecord; +} + +struct SAFEARR_HAVEIID { + ULONG Size; + IUnknown** apUnknown; + IID iid; +} + +struct SAFEARRAYUNION { + ULONG sfType; + union _u { + SAFEARR_BSTR BstrStr; + SAFEARR_UNKNOWN UnknownStr; + SAFEARR_DISPATCH DispatchStr; + SAFEARR_VARIANT VariantStr; + SAFEARR_BRECORD RecordStr; + SAFEARR_HAVEIID HaveIidStr; + BYTE_SIZEDARR ByteStr; + WORD_SIZEDARR WordStr; + DWORD_SIZEDARR LongStr; + HYPER_SIZEDARR HyperStr; + } + _u u; +} + +struct _wireSAFEARRAY { + USHORT cDims; + USHORT fFeatures; + ULONG cbElements; + ULONG cLocks; + SAFEARRAYUNION uArrayStructs; + SAFEARRAYBOUND rgsabound[1]; +} +alias _wireSAFEARRAY* wireSAFEARRAY; + +alias wireSAFEARRAY* wirePSAFEARRAY; + +struct SAFEARRAY { + USHORT cDims; + USHORT fFeatures; + ULONG cbElements; + ULONG cLocks; + PVOID pvData; + SAFEARRAYBOUND rgsabound[1]; +} +alias SAFEARRAY* LPSAFEARRAY; + +struct VARIANT { + union { + struct { + VARTYPE vt; + WORD wReserved1; + WORD wReserved2; + WORD wReserved3; + union { + int lVal; + LONGLONG llVal; + ubyte bVal; + short iVal; + float fltVal; + double dblVal; + VARIANT_BOOL boolVal; + SCODE scode; + CY cyVal; + DATE date; + BSTR bstrVal; + IUnknown punkVal; + IDispatch pdispVal; + SAFEARRAY* parray; + ubyte* pbVal; + short* piVal; + int* plVal; + float* pfltVal; + double* pdblVal; + VARIANT_BOOL* pboolVal; + _VARIANT_BOOL* pbool; + SCODE* pscode; + CY* pcyVal; + DATE* pdate; + BSTR* pbstrVal; + IUnknown* ppunkVal; + IDispatch* ppdispVal; + SAFEARRAY** pparray; + VARIANT* pvarVal; + void* byref; + CHAR cVal; + USHORT uiVal; + ULONG ulVal; + ULONGLONG ullVal; + INT intVal; + UINT uintVal; + DECIMAL* pdecVal; + CHAR* pcVal; + USHORT* puiVal; + ULONG* pulVal; + INT* pintVal; + UINT* puintVal; + struct { + PVOID pvRecord; + IRecordInfo pRecInfo; + } + } + } + DECIMAL decVal; + } +} +alias VARIANT* LPVARIANT; + +alias VARIANT VARIANTARG; +alias VARIANT* LPVARIANTARG; + +struct _wireVARIANT { + DWORD clSize; + DWORD rpcReserved; + USHORT vt; + USHORT wReserved1; + USHORT wReserved2; + USHORT wReserved3; + union { + LONG lVal; + LONGLONG llVal; + BYTE bVal; + SHORT iVal; + FLOAT fltVal; + DOUBLE dblVal; + VARIANT_BOOL boolVal; + SCODE scode; + CY cyVal; + DATE date; + wireBSTR bstrVal; + IUnknown* punkVal; + LPDISPATCH pdispVal; + wirePSAFEARRAY parray; + wireBRECORD brecVal; + BYTE* pbVal; + SHORT* piVal; + LONG* plVal; + FLOAT* pfltVal; + DOUBLE* pdblVal; + VARIANT_BOOL* pboolVal; + SCODE* pscode; + CY* pcyVal; + DATE* pdate; + wireBSTR* pbstrVal; + IUnknown** ppunkVal; + LPDISPATCH* ppdispVal; + wirePSAFEARRAY* pparray; + wireVARIANT* pvarVal; + CHAR cVal; + USHORT uiVal; + ULONG ulVal; + ULONGLONG ullVal; + INT intVal; + UINT uintVal; + DECIMAL decVal; + DECIMAL* pdecVal; + CHAR* pcVal; + USHORT* puiVal; + ULONG* pulVal; + INT* pintVal; + UINT* puintVal; + } +} +alias _wireVARIANT* wireVARIANT; + +alias LONG DISPID; +alias DISPID MEMBERID; +alias DWORD HREFTYPE; + +enum TYPEKIND { + TKIND_ENUM, TKIND_RECORD, TKIND_MODULE, TKIND_INTERFACE, TKIND_DISPATCH, + TKIND_COCLASS, TKIND_ALIAS, TKIND_UNION, TKIND_MAX +} + +struct TYPEDESC { + union { + TYPEDESC* lptdesc; + ARRAYDESC* lpadesc; + HREFTYPE hreftype; + } + VARTYPE vt; +} + +struct ARRAYDESC { + TYPEDESC tdescElem; + USHORT cDims; + SAFEARRAYBOUND rgbounds[1]; +} + +struct PARAMDESCEX { + ULONG cBytes; + VARIANTARG varDefaultValue; +} +alias PARAMDESCEX* LPPARAMDESCEX; + +struct PARAMDESC { + LPPARAMDESCEX pparamdescex; + USHORT wParamFlags; +} +alias PARAMDESC* LPPARAMDESC; + +struct IDLDESC { + ULONG dwReserved; + USHORT wIDLFlags; +} +alias IDLDESC* LPIDLDESC; + +struct ELEMDESC { + TYPEDESC tdesc; + union { + IDLDESC idldesc; + PARAMDESC paramdesc; + } +} +alias ELEMDESC* LPELEMDESC; + +struct TYPEATTR { + GUID guid; + LCID lcid; + DWORD dwReserved; + MEMBERID memidConstructor; + MEMBERID memidDestructor; + LPOLESTR lpstrSchema; + ULONG cbSizeInstance; + TYPEKIND typekind; + WORD cFuncs; + WORD cVars; + WORD cImplTypes; + WORD cbSizeVft; + WORD cbAlignment; + WORD wTypeFlags; + WORD wMajorVerNum; + WORD wMinorVerNum; + TYPEDESC tdescAlias; + IDLDESC idldescType; +} +alias TYPEATTR* LPTYPEATTR; + +struct DISPPARAMS { + VARIANTARG* rgvarg; + DISPID* rgdispidNamedArgs; + UINT cArgs; + UINT cNamedArgs; +} + +struct EXCEPINFO { + WORD wCode; + WORD wReserved; + BSTR bstrSource; + BSTR bstrDescription; + BSTR bstrHelpFile; + DWORD dwHelpContext; + PVOID pvReserved; + extern (Windows) { + HRESULT function (EXCEPINFO* ) pfnDeferredFillIn; + } + SCODE scode; +} +alias EXCEPINFO* LPEXCEPINFO; + +enum CALLCONV { + CC_FASTCALL, + CC_CDECL, + CC_MSCPASCAL, + CC_PASCAL=CC_MSCPASCAL, + CC_MACPASCAL, + CC_STDCALL, + CC_FPFASTCALL, + CC_SYSCALL, + CC_MPWCDECL, + CC_MPWPASCAL, + CC_MAX=CC_MPWPASCAL +} + +enum FUNCKIND { + FUNC_VIRTUAL, + FUNC_PUREVIRTUAL, + FUNC_NONVIRTUAL, + FUNC_STATIC, + FUNC_DISPATCH +} + +enum INVOKEKIND { + INVOKE_FUNC = 1, + INVOKE_PROPERTYGET = 2, + INVOKE_PROPERTYPUT = 4, + INVOKE_PROPERTYPUTREF = 8 +} + +struct FUNCDESC { + MEMBERID memid; + SCODE* lprgscode; + ELEMDESC* lprgelemdescParam; + FUNCKIND funckind; + INVOKEKIND invkind; + CALLCONV callconv; + SHORT cParams; + SHORT cParamsOpt; + SHORT oVft; + SHORT cScodes; + ELEMDESC elemdescFunc; + WORD wFuncFlags; +} +alias FUNCDESC* LPFUNCDESC; + +enum VARKIND { + VAR_PERINSTANCE, VAR_STATIC, VAR_CONST, VAR_DISPATCH +} + +struct VARDESC { + MEMBERID memid; + LPOLESTR lpstrSchema; + union { + ULONG oInst; + VARIANT* lpvarValue; + } + ELEMDESC elemdescVar; + WORD wVarFlags; + VARKIND varkind; +} +alias VARDESC* LPVARDESC; + +enum TYPEFLAGS { + TYPEFLAG_FAPPOBJECT = 1, + TYPEFLAG_FCANCREATE = 2, + TYPEFLAG_FLICENSED = 4, + TYPEFLAG_FPREDECLID = 8, + TYPEFLAG_FHIDDEN = 16, + TYPEFLAG_FCONTROL = 32, + TYPEFLAG_FDUAL = 64, + TYPEFLAG_FNONEXTENSIBLE = 128, + TYPEFLAG_FOLEAUTOMATION = 256, + TYPEFLAG_FRESTRICTED = 512, + TYPEFLAG_FAGGREGATABLE = 1024, + TYPEFLAG_FREPLACEABLE = 2048, + TYPEFLAG_FDISPATCHABLE = 4096, + TYPEFLAG_FREVERSEBIND = 8192 +} + +enum FUNCFLAGS { + FUNCFLAG_FRESTRICTED = 1, + FUNCFLAG_FSOURCE = 2, + FUNCFLAG_FBINDABLE = 4, + FUNCFLAG_FREQUESTEDIT = 8, + FUNCFLAG_FDISPLAYBIND = 16, + FUNCFLAG_FDEFAULTBIND = 32, + FUNCFLAG_FHIDDEN = 64, + FUNCFLAG_FUSESGETLASTERROR = 128, + FUNCFLAG_FDEFAULTCOLLELEM = 256, + FUNCFLAG_FUIDEFAULT = 512, + FUNCFLAG_FNONBROWSABLE = 1024, + FUNCFLAG_FREPLACEABLE = 2048, + FUNCFLAG_FIMMEDIATEBIND = 4096 +} + +enum VARFLAGS { + VARFLAG_FREADONLY = 1, + VARFLAG_FSOURCE = 2, + VARFLAG_FBINDABLE = 4, + VARFLAG_FREQUESTEDIT = 8, + VARFLAG_FDISPLAYBIND = 16, + VARFLAG_FDEFAULTBIND = 32, + VARFLAG_FHIDDEN = 64, + VARFLAG_FRESTRICTED = 128, + VARFLAG_FDEFAULTCOLLELEM = 256, + VARFLAG_FUIDEFAULT = 512, + VARFLAG_FNONBROWSABLE = 1024, + VARFLAG_FREPLACEABLE = 2048, + VARFLAG_FIMMEDIATEBIND = 4096 +} + +struct CLEANLOCALSTORAGE { + IUnknown* pInterface; + PVOID pStorage; + DWORD flags; +} + +struct CUSTDATAITEM { + GUID guid; + VARIANTARG varValue; +} +alias CUSTDATAITEM* LPCUSTDATAITEM; + +struct CUSTDATA { + DWORD cCustData; + LPCUSTDATAITEM prgCustData; +} +alias CUSTDATA* LPCUSTDATA; + +enum DESCKIND { + DESCKIND_NONE = 0, + DESCKIND_FUNCDESC = DESCKIND_NONE+1, + DESCKIND_VARDESC = DESCKIND_FUNCDESC+1, + DESCKIND_TYPECOMP = DESCKIND_VARDESC+1, + DESCKIND_IMPLICITAPPOBJ = DESCKIND_TYPECOMP+1, + DESCKIND_MAX = DESCKIND_IMPLICITAPPOBJ+1 +} + +union BINDPTR { + LPFUNCDESC lpfuncdesc; + LPVARDESC lpvardesc; + LPTYPECOMP lptcomp; +} +alias BINDPTR* LPBINDPTR; + +interface IDispatch : IUnknown { + HRESULT GetTypeInfoCount(UINT*); + HRESULT GetTypeInfo(UINT, LCID, LPTYPEINFO*); + HRESULT GetIDsOfNames(REFIID, LPOLESTR*, UINT, LCID, DISPID*); + HRESULT Invoke(DISPID, REFIID, LCID, WORD, DISPPARAMS*, VARIANT*, EXCEPINFO*, UINT*); +} +alias IDispatch LPDISPATCH; + +interface IEnumVARIANT : IUnknown { + HRESULT Next(ULONG, VARIANT*, ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(IEnumVARIANT**); +} +alias IEnumVARIANT LPENUMVARIANT; + +interface ITypeComp : IUnknown { + HRESULT Bind(LPOLESTR, ULONG, WORD, LPTYPEINFO*, DESCKIND*, LPBINDPTR); + HRESULT BindType(LPOLESTR, ULONG, LPTYPEINFO*, LPTYPECOMP*); +} +alias ITypeComp LPTYPECOMP; + +interface ITypeInfo : IUnknown { + HRESULT GetTypeAttr(LPTYPEATTR*); + HRESULT GetTypeComp(LPTYPECOMP*); + HRESULT GetFuncDesc(UINT, LPFUNCDESC*); + HRESULT GetVarDesc(UINT, LPVARDESC*); + HRESULT GetNames(MEMBERID, BSTR*, UINT, UINT*); + HRESULT GetRefTypeOfImplType(UINT, HREFTYPE*); + HRESULT GetImplTypeFlags(UINT, INT*); + HRESULT GetIDsOfNames(LPOLESTR*, UINT, MEMBERID*); + HRESULT Invoke(PVOID, MEMBERID, WORD, DISPPARAMS*, VARIANT*, EXCEPINFO*, + UINT*); + HRESULT GetDocumentation(MEMBERID, BSTR*, BSTR*, DWORD*, BSTR*); + HRESULT GetDllEntry(MEMBERID, INVOKEKIND, BSTR*, BSTR*, WORD*); + HRESULT GetRefTypeInfo(HREFTYPE, LPTYPEINFO*); + HRESULT AddressOfMember(MEMBERID, INVOKEKIND, PVOID*); + HRESULT CreateInstance(LPUNKNOWN, REFIID, PVOID*); + HRESULT GetMops(MEMBERID, BSTR*); + HRESULT GetContainingTypeLib(LPTYPELIB*, UINT*); + void ReleaseTypeAttr(LPTYPEATTR); + void ReleaseFuncDesc(LPFUNCDESC); + void ReleaseVarDesc(LPVARDESC); +} +alias ITypeInfo LPTYPEINFO; + +interface ITypeInfo2 : ITypeInfo { + HRESULT GetTypeKind(TYPEKIND*); + HRESULT GetTypeFlags(ULONG*); + HRESULT GetFuncIndexOfMemId(MEMBERID, INVOKEKIND, UINT*); + HRESULT GetVarIndexOfMemId(MEMBERID, UINT*); + HRESULT GetCustData(REFGUID, VARIANT*); + HRESULT GetFuncCustData(UINT, REFGUID, VARIANT*); + HRESULT GetParamCustData(UINT, UINT, REFGUID, VARIANT*); + HRESULT GetVarCustData(UINT, REFGUID, VARIANT*); + HRESULT GetImplTypeCustData(UINT, REFGUID, VARIANT*); + HRESULT GetDocumentation2(MEMBERID, LCID, BSTR*, DWORD*, BSTR*); + HRESULT GetAllCustData(CUSTDATA*); + HRESULT GetAllFuncCustData(UINT, CUSTDATA*); + HRESULT GetAllParamCustData(UINT, UINT, CUSTDATA*); + HRESULT GetAllVarCustData(UINT, CUSTDATA*); + HRESULT GetAllImplTypeCustData(UINT, CUSTDATA*); +} +alias ITypeInfo2 LPTYPEINFO2; + +interface ITypeLib : IUnknown { + UINT GetTypeInfoCount(); + HRESULT GetTypeInfo(UINT, ITypeInfo**); + HRESULT GetTypeInfoType(UINT, TYPEKIND*); + HRESULT GetTypeInfoOfGuid(REFGUID, ITypeInfo**); + HRESULT GetLibAttr(TLIBATTR**); + HRESULT GetTypeComp(ITypeComp*); + HRESULT GetDocumentation(INT, BSTR*, BSTR*, DWORD*, BSTR*); + HRESULT IsName(LPOLESTR, ULONG, BOOL*); + HRESULT FindName(LPOLESTR, ULONG, ITypeInfo**, MEMBERID*, USHORT*); + void ReleaseTLibAttr(TLIBATTR*); +} +alias ITypeLib LPTYPELIB; + +interface ITypeLib2 : ITypeLib { + HRESULT GetCustData(REFGUID, VARIANT*); + HRESULT GetLibStatistics(ULONG*, ULONG*); + HRESULT GetDocumentation2(INT, LCID, BSTR*, DWORD*, BSTR*); + HRESULT GetAllCustData(CUSTDATA*); +} +alias ITypeLib2 LPTYPELIB2; + +interface IErrorInfo : IUnknown { + HRESULT GetGUID(GUID*); + HRESULT GetSource(BSTR*); + HRESULT GetDescription(BSTR*); + HRESULT GetHelpFile(BSTR*); + HRESULT GetHelpContext(DWORD*); +} +alias IErrorInfo LPERRORINFO; + +interface ICreateErrorInfo : IUnknown { + HRESULT SetGUID(REFGUID); + HRESULT SetSource(LPOLESTR); + HRESULT SetDescription(LPOLESTR); + HRESULT SetHelpFile(LPOLESTR); + HRESULT SetHelpContext(DWORD); +} +alias ICreateErrorInfo* LPCREATEERRORINFO; + +interface ISupportErrorInfo : IUnknown { + HRESULT InterfaceSupportsErrorInfo(REFIID); +} +alias ISupportErrorInfo LPSUPPORTERRORINFO; + +interface IRecordInfo : IUnknown { + HRESULT RecordInit(PVOID); + HRESULT RecordClear(PVOID); + HRESULT RecordCopy(PVOID, PVOID); + HRESULT GetGuid(GUID*); + HRESULT GetName(BSTR*); + HRESULT GetSize(ULONG*); + HRESULT GetTypeInfo(ITypeInfo**); + HRESULT GetField(PVOID, LPCOLESTR, VARIANT*); + HRESULT GetFieldNoCopy(PVOID, LPCOLESTR, VARIANT*, PVOID*); + HRESULT PutField (ULONG, PVOID, LPCOLESTR, VARIANT*); + HRESULT PutFieldNoCopy(ULONG, PVOID, LPCOLESTR, VARIANT*); + HRESULT GetFieldNames(ULONG*, BSTR*); + BOOL IsMatchingType(); + PVOID RecordCreate(); + HRESULT RecordCreateCopy(PVOID, PVOID*); + HRESULT RecordDestroy (PVOID); +} +alias IRecordInfo LPRECORDINFO; + +interface ITypeMarshal : IUnknown { + HRESULT Size(PVOID, DWORD, PVOID, ULONG*); + HRESULT Marshal(PVOID, DWORD, PVOID, ULONG, BYTE*, ULONG*); + HRESULT Unmarshal(PVOID, DWORD, ULONG, BYTE*, ULONG*); + HRESULT Free(PVOID); +} ADDED src/win32/objbase.d Index: src/win32/objbase.d ================================================================== --- src/win32/objbase.d +++ src/win32/objbase.d @@ -0,0 +1,207 @@ +/***********************************************************************\ +* objbase.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.objbase; +pragma(lib, "ole32.lib"); + +import win32.cguid, win32.objidl, win32.unknwn, win32.wtypes; +private import win32.basetyps, win32.objfwd, win32.rpcdce, win32.winbase, + win32.windef; + +// DAC: Not needed for D? +//MACRO #define LISet32(li, v) ((li).HighPart=(v)<0?-1:0, (li).LowPart=(v)) +//MACRO #define ULISet32(li, v) ((li).HighPart=0, (li).LowPart=(v)) + +const CLSCTX_ALL = CLSCTX.CLSCTX_INPROC_SERVER|CLSCTX.CLSCTX_INPROC_HANDLER|CLSCTX.CLSCTX_LOCAL_SERVER; +const CLSCTX_INPROC = CLSCTX.CLSCTX_INPROC_SERVER|CLSCTX.CLSCTX_INPROC_HANDLER; +const CLSCTX_SERVER = CLSCTX.CLSCTX_INPROC_SERVER|CLSCTX.CLSCTX_LOCAL_SERVER|CLSCTX.CLSCTX_REMOTE_SERVER; +const MARSHALINTERFACE_MIN=500; +const CWCSTORAGENAME=32; + +const STGM_DIRECT = 0; +const STGM_TRANSACTED = 0x10000L; +const STGM_SIMPLE = 0x8000000L; +const STGM_READ = 0; +const STGM_WRITE = 1; +const STGM_READWRITE = 2; +const STGM_SHARE_DENY_NONE = 0x40; +const STGM_SHARE_DENY_READ = 0x30; +const STGM_SHARE_DENY_WRITE = 0x20; +const STGM_SHARE_EXCLUSIVE = 0x10; +const STGM_PRIORITY = 0x40000L; +const STGM_DELETEONRELEASE = 0x4000000; +const STGM_NOSCRATCH = 0x100000; +const STGM_CREATE = 0x1000; +const STGM_CONVERT = 0x20000; +const STGM_NOSNAPSHOT = 0x200000; +const STGM_FAILIFTHERE = 0; + +const ASYNC_MODE_COMPATIBILITY = 1; +const ASYNC_MODE_DEFAULT = 0; + +const STGTY_REPEAT = 256; +const STG_TOEND = 0xFFFFFFFF; +const STG_LAYOUT_SEQUENTIAL = 0; +const STG_LAYOUT_INTERLEAVED = 1; + +const COM_RIGHTS_EXECUTE = 1; +const COM_RIGHTS_SAFE_FOR_SCRIPTING = 2; + +const STGOPTIONS_VERSION = 2; + +enum STGFMT { + STGFMT_STORAGE = 0, + STGFMT_FILE = 3, + STGFMT_ANY = 4, + STGFMT_DOCFILE = 5 +} + +struct STGOPTIONS { + USHORT usVersion; + USHORT reserved; + ULONG ulSectorSize; + CPtr!(WCHAR) pwcsTemplateFile; +} + +enum REGCLS { + REGCLS_SINGLEUSE = 0, + REGCLS_MULTIPLEUSE = 1, + REGCLS_MULTI_SEPARATE = 2 +} + +/* +BOOL IsEqualGUID(GUID rguid1, GUID rguid2) { + return rguid1 == rguid2; +} +*/ + +extern (Windows) BOOL IsEqualGUID( + REFGUID rguid1, + REFGUID rguid2 +); + +alias IsEqualGUID IsEqualIID; +alias IsEqualGUID IsEqualCLSID; + +enum COINIT { + COINIT_APARTMENTTHREADED = 2, + COINIT_MULTITHREADED = 0, + COINIT_DISABLE_OLE1DDE = 4, + COINIT_SPEED_OVER_MEMORY = 8 +} + +enum STDMSHLFLAGS { + SMEXF_SERVER = 1, + SMEXF_HANDLER +} + +extern(Windows) { + alias HRESULT function(REFCLSID, REFIID, PVOID*) LPFNGETCLASSOBJECT; + alias HRESULT function() LPFNCANUNLOADNOW; + + DWORD CoBuildVersion(); + HRESULT CoInitialize(PVOID); + HRESULT CoInitializeEx(LPVOID, DWORD); + void CoUninitialize(); + HRESULT CoGetMalloc(DWORD, LPMALLOC*); + DWORD CoGetCurrentProcess(); + HRESULT CoRegisterMallocSpy(LPMALLOCSPY); + HRESULT CoRevokeMallocSpy(); + HRESULT CoCreateStandardMalloc(DWORD, IMalloc**); + //#ifdef DBG + ULONG DebugCoGetRpcFault(); + void DebugCoSetRpcFault(ULONG); + //#endif + HRESULT CoGetClassObject(REFCLSID, DWORD, COSERVERINFO*, REFIID, PVOID*); + HRESULT CoRegisterClassObject(REFCLSID, LPUNKNOWN, DWORD, DWORD, PDWORD); + HRESULT CoRevokeClassObject(DWORD); + HRESULT CoGetMarshalSizeMax(ULONG*, REFIID, LPUNKNOWN, DWORD, PVOID, DWORD); + HRESULT CoMarshalInterface(LPSTREAM, REFIID, LPUNKNOWN, DWORD, PVOID, DWORD); + HRESULT CoUnmarshalInterface(LPSTREAM, REFIID, PVOID*); + HRESULT CoMarshalHresult(LPSTREAM, HRESULT); + HRESULT CoUnmarshalHresult(LPSTREAM, HRESULT*); + HRESULT CoReleaseMarshalData(LPSTREAM); + HRESULT CoDisconnectObject(LPUNKNOWN, DWORD); + HRESULT CoLockObjectExternal(LPUNKNOWN, BOOL, BOOL); + HRESULT CoGetStandardMarshal(REFIID, LPUNKNOWN, DWORD, PVOID, DWORD, LPMARSHAL*); + HRESULT CoGetStdMarshalEx(LPUNKNOWN, DWORD, LPUNKNOWN*); + BOOL CoIsHandlerConnected(LPUNKNOWN); + BOOL CoHasStrongExternalConnections(LPUNKNOWN); + HRESULT CoMarshalInterThreadInterfaceInStream(REFIID, LPUNKNOWN, LPSTREAM*); + HRESULT CoGetInterfaceAndReleaseStream(LPSTREAM, REFIID, PVOID*); + HRESULT CoCreateFreeThreadedMarshaler(LPUNKNOWN, LPUNKNOWN*); + HINSTANCE CoLoadLibrary(LPOLESTR, BOOL); + void CoFreeLibrary(HINSTANCE); + void CoFreeAllLibraries(); + void CoFreeUnusedLibraries(); + HRESULT CoCreateInstance(REFCLSID, LPUNKNOWN, DWORD, REFIID, PVOID*); + HRESULT CoCreateInstanceEx(REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*); + HRESULT StringFromCLSID(REFCLSID, LPOLESTR*); + HRESULT CLSIDFromString(LPOLESTR, LPCLSID); + HRESULT StringFromIID(REFIID, LPOLESTR*); + HRESULT IIDFromString(LPOLESTR, LPIID); + BOOL CoIsOle1Class(REFCLSID); + HRESULT ProgIDFromCLSID(REFCLSID, LPOLESTR*); + HRESULT CLSIDFromProgID(LPCOLESTR, LPCLSID); + int StringFromGUID2(REFGUID, LPOLESTR, int); + HRESULT CoCreateGuid(GUID*); + BOOL CoFileTimeToDosDateTime(FILETIME*, LPWORD, LPWORD); + BOOL CoDosDateTimeToFileTime(WORD, WORD, FILETIME*); + HRESULT CoFileTimeNow(FILETIME*); + HRESULT CoRegisterMessageFilter(LPMESSAGEFILTER, LPMESSAGEFILTER*); + HRESULT CoGetTreatAsClass(REFCLSID, LPCLSID); + HRESULT CoTreatAsClass(REFCLSID, REFCLSID); + HRESULT DllGetClassObject(REFCLSID, REFIID, PVOID*); + HRESULT DllCanUnloadNow(); + PVOID CoTaskMemAlloc(ULONG); + PVOID CoTaskMemRealloc(PVOID, ULONG); + void CoTaskMemFree(PVOID); + HRESULT CreateDataAdviseHolder(LPDATAADVISEHOLDER*); + HRESULT CreateDataCache(LPUNKNOWN, REFCLSID, REFIID, PVOID*); + HRESULT StgCreateDocfile(CPtr!(OLECHAR), DWORD, DWORD, IStorage**); + HRESULT StgCreateDocfileOnILockBytes(ILockBytes*, DWORD, DWORD, IStorage**); + HRESULT StgOpenStorage(CPtr!(OLECHAR), IStorage, DWORD, SNB, DWORD, IStorage*); + HRESULT StgOpenStorageOnILockBytes(ILockBytes*, IStorage*, DWORD, SNB, DWORD, IStorage**); + HRESULT StgIsStorageFile(CPtr!(OLECHAR)); + HRESULT StgIsStorageILockBytes(ILockBytes*); + HRESULT StgSetTimes(OLECHAR *, FILETIME *, FILETIME *, FILETIME *); + HRESULT StgCreateStorageEx(CPtr!(WCHAR), DWORD, DWORD, DWORD, STGOPTIONS*, void*, REFIID, void**); + HRESULT StgOpenStorageEx(CPtr!(WCHAR), DWORD, DWORD, DWORD, STGOPTIONS*, void*, REFIID, void**); + HRESULT BindMoniker(LPMONIKER, DWORD, REFIID, PVOID*); + HRESULT CoGetObject(LPCWSTR, BIND_OPTS*, REFIID, void**); + HRESULT MkParseDisplayName(LPBC, LPCOLESTR, ULONG*, LPMONIKER*); + HRESULT MonikerRelativePathTo(LPMONIKER, LPMONIKER, LPMONIKER*, BOOL); + HRESULT MonikerCommonPrefixWith(LPMONIKER, LPMONIKER, LPMONIKER*); + HRESULT CreateBindCtx(DWORD, LPBC*); + HRESULT CreateGenericComposite(LPMONIKER, LPMONIKER, LPMONIKER*); + HRESULT GetClassFile (LPCOLESTR, CLSID*); + HRESULT CreateFileMoniker(LPCOLESTR, LPMONIKER*); + HRESULT CreateItemMoniker(LPCOLESTR, LPCOLESTR, LPMONIKER*); + HRESULT CreateAntiMoniker(LPMONIKER*); + HRESULT CreatePointerMoniker(LPUNKNOWN, LPMONIKER*); + HRESULT GetRunningObjectTable(DWORD, LPRUNNINGOBJECTTABLE*); + HRESULT CoInitializeSecurity(PSECURITY_DESCRIPTOR, LONG, SOLE_AUTHENTICATION_SERVICE*, void*, DWORD, DWORD, void*, DWORD, void*); + HRESULT CoGetCallContext(REFIID, void**); + HRESULT CoQueryProxyBlanket(IUnknown*, DWORD*, DWORD*, OLECHAR**, DWORD*, DWORD*, RPC_AUTH_IDENTITY_HANDLE*, DWORD*); + HRESULT CoSetProxyBlanket(IUnknown*, DWORD, DWORD, OLECHAR*, DWORD, DWORD, RPC_AUTH_IDENTITY_HANDLE, DWORD); + HRESULT CoCopyProxy(IUnknown*, IUnknown**); + HRESULT CoQueryClientBlanket(DWORD*, DWORD*, OLECHAR**, DWORD*, DWORD*, RPC_AUTHZ_HANDLE*, DWORD*); + HRESULT CoImpersonateClient(); + HRESULT CoRevertToSelf(); + HRESULT CoQueryAuthenticationServices(DWORD*, SOLE_AUTHENTICATION_SERVICE**); + HRESULT CoSwitchCallContext(IUnknown*, IUnknown**); + HRESULT CoGetInstanceFromFile(COSERVERINFO*, CLSID*, IUnknown*, DWORD, DWORD, OLECHAR*, DWORD, MULTI_QI*); + HRESULT CoGetInstanceFromIStorage(COSERVERINFO*, CLSID*, IUnknown*, DWORD, IStorage*, DWORD, MULTI_QI*); + ULONG CoAddRefServerProcess(); + ULONG CoReleaseServerProcess(); + HRESULT CoResumeClassObjects(); + HRESULT CoSuspendClassObjects(); + HRESULT CoGetPSClsid(REFIID, CLSID*); + HRESULT CoRegisterPSClsid(REFIID, REFCLSID); +} ADDED src/win32/objfwd.d Index: src/win32/objfwd.d ================================================================== --- src/win32/objfwd.d +++ src/win32/objfwd.d @@ -0,0 +1,103 @@ +/***********************************************************************\ +* objfwd.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.objfwd; + +private import win32.objidl; + +/+ +// Forward declararions are not necessary in D. +extern(Windows) { + interface IMoniker; + interface IStream; + interface IMarshal; + interface IMalloc; + interface IMallocSpy; + interface IMessageFilter; + interface IPersist; + interface IPersistStream; + interface IRunningObjectTable; + interface IBindCtx; + interface IAdviseSink; + interface IAdviseSink2; + interface IDataObject; + interface IDataAdviseHolder; + + interface IEnumMoniker; + interface IEnumFORMATETC; + interface IEnumSTATDATA; + interface IEnumSTATSTG; + interface IEnumSTATPROPSTG; + interface IEnumString; + interface IEnumUnknown; + interface IStorage; + interface IPersistStorage; + interface ILockBytes; + interface IStdMarshalInfo; + interface IExternalConnection; + interface IRunnableObject; + interface IROTData; + interface IPersistFile; + interface IRootStorage; + interface IPropertyStorage; + interface IEnumSTATPROPSETSTG; + interface IPropertySetStorage; + interface IClientSecurity; + interface IServerSecurity; + interface IClassActivator; + interface IFillLockBytes; + interface IProgressNotify; + interface ILayoutStorage; + interface IRpcProxyBuffer; + interface IRpcChannelBuffer; + interface IRpcStubBuffer; +} ++/ +alias IMoniker LPMONIKER; +alias IStream LPSTREAM; +alias IMarshal LPMARSHAL; +alias IMalloc LPMALLOC; +alias IMallocSpy LPMALLOCSPY; +alias IMessageFilter LPMESSAGEFILTER; +alias IPersist LPPERSIST; +alias IPersistStream LPPERSISTSTREAM; +alias IRunningObjectTable LPRUNNINGOBJECTTABLE; +alias IBindCtx LPBINDCTX, LPBC; +alias IAdviseSink LPADVISESINK; +alias IAdviseSink2 LPADVISESINK2; +alias IDataObject LPDATAOBJECT; +alias IDataAdviseHolder LPDATAADVISEHOLDER; +alias IEnumMoniker LPENUMMONIKER; +alias IEnumFORMATETC LPENUMFORMATETC; +alias IEnumSTATDATA LPENUMSTATDATA; +alias IEnumSTATSTG LPENUMSTATSTG; +alias IEnumSTATPROPSTG LPENUMSTATPROPSTG; +alias IEnumString LPENUMSTRING; +alias IEnumUnknown LPENUMUNKNOWN; +alias IStorage LPSTORAGE; +alias IPersistStorage LPPERSISTSTORAGE; +alias ILockBytes LPLOCKBYTES; +alias IStdMarshalInfo LPSTDMARSHALINFO; +alias IExternalConnection LPEXTERNALCONNECTION; +alias IRunnableObject LPRUNNABLEOBJECT; +alias IROTData LPROTDATA; +alias IPersistFile LPPERSISTFILE; +alias IRootStorage LPROOTSTORAGE; +alias IRpcChannelBuffer LPRPCCHANNELBUFFER; +alias IRpcProxyBuffer LPRPCPROXYBUFFER; +alias IRpcStubBuffer LPRPCSTUBBUFFER; +alias IPropertyStorage LPPROPERTYSTORAGE; +alias IEnumSTATPROPSETSTG LPENUMSTATPROPSETSTG; +alias IPropertySetStorage LPPROPERTYSETSTORAGE; +alias IClientSecurity LPCLIENTSECURITY; +alias IServerSecurity LPSERVERSECURITY; +alias IClassActivator LPCLASSACTIVATOR; +alias IFillLockBytes LPFILLLOCKBYTES; +alias IProgressNotify LPPROGRESSNOTIFY; +alias ILayoutStorage LPLAYOUTSTORAGE; ADDED src/win32/objidl.d Index: src/win32/objidl.d ================================================================== --- src/win32/objidl.d +++ src/win32/objidl.d @@ -0,0 +1,1307 @@ +/***********************************************************************\ +* objidl.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +// TODO (Don): +// # why is "alias IPSFactoryBuffer* LPPSFACTORYBUFFER;" in this file, +// rather than in objfwd ? +// # do we need the proxies that are defined in this file? +module win32.objidl; + +import win32.unknwn; +import win32.objfwd; +private import win32.windef; +private import win32.basetyps; +private import win32.oleidl; +private import win32.wtypes; +private import win32.winbase; // for FILETIME +private import win32.rpcdce; + +struct STATSTG { + LPOLESTR pwcsName; + DWORD type; + ULARGE_INTEGER cbSize; + FILETIME mtime; + FILETIME ctime; + FILETIME atime; + DWORD grfMode; + DWORD grfLocksSupported; + CLSID clsid; + DWORD grfStateBits; + DWORD reserved; +} + +enum STGTY { + STGTY_STORAGE = 1, + STGTY_STREAM, + STGTY_LOCKBYTES, + STGTY_PROPERTY +} + +enum STREAM_SEEK { + STREAM_SEEK_SET, + STREAM_SEEK_CUR, + STREAM_SEEK_END +} + +struct INTERFACEINFO { + LPUNKNOWN pUnk; + IID iid; + WORD wMethod; +} +alias INTERFACEINFO* LPINTERFACEINFO; + +enum CALLTYPE { + CALLTYPE_TOPLEVEL = 1, + CALLTYPE_NESTED, + CALLTYPE_ASYNC, + CALLTYPE_TOPLEVEL_CALLPENDING, + CALLTYPE_ASYNC_CALLPENDING +} + +enum PENDINGTYPE { + PENDINGTYPE_TOPLEVEL = 1, + PENDINGTYPE_NESTED +} + +enum PENDINGMSG { + PENDINGMSG_CANCELCALL = 0, + PENDINGMSG_WAITNOPROCESS, + PENDINGMSG_WAITDEFPROCESS +} + +alias OLECHAR** SNB; + +enum DATADIR { + DATADIR_GET = 1, + DATADIR_SET +} +alias WORD CLIPFORMAT; +alias CLIPFORMAT* LPCLIPFORMAT; + +struct DVTARGETDEVICE { + DWORD tdSize; + WORD tdDriverNameOffset; + WORD tdDeviceNameOffset; + WORD tdPortNameOffset; + WORD tdExtDevmodeOffset; + BYTE tdData[1]; +} + +struct FORMATETC { + CLIPFORMAT cfFormat; + DVTARGETDEVICE* ptd; + DWORD dwAspect; + LONG lindex; + DWORD tymed; +} +alias FORMATETC* LPFORMATETC; + +struct RemSTGMEDIUM { + DWORD tymed; + DWORD dwHandleType; + ULONG pData; + uint pUnkForRelease; + uint cbData; + BYTE data[1]; +} + +struct HLITEM { + ULONG uHLID; + LPWSTR pwzFriendlyName; +} + +struct STATDATA { + FORMATETC formatetc; + DWORD grfAdvf; + IAdviseSink* pAdvSink; + DWORD dwConnection; +} + +struct STATPROPSETSTG { + FMTID fmtid; + CLSID clsid; + DWORD grfFlags; + FILETIME mtime; + FILETIME ctime; + FILETIME atime; +} + +enum EXTCONN { + EXTCONN_STRONG = 1, + EXTCONN_WEAK = 2, + EXTCONN_CALLABLE = 4 +} + +struct MULTI_QI { + CPtr!(IID) pIID; + IUnknown pItf; + HRESULT hr; +} + +struct AUTH_IDENTITY { + USHORT* User; + ULONG UserLength; + USHORT* Domain; + ULONG DomainLength; + USHORT* Password; + ULONG PasswordLength; + ULONG Flags; +} + +struct COAUTHINFO { + DWORD dwAuthnSvc; + DWORD dwAuthzSvc; + LPWSTR pwszServerPrincName; + DWORD dwAuthnLevel; + DWORD dwImpersonationLevel; + AUTH_IDENTITY* pAuthIdentityData; + DWORD dwCapabilities; +} + +struct COSERVERINFO { + DWORD dwReserved1; + LPWSTR pwszName; + COAUTHINFO* pAuthInfo; + DWORD dwReserved2; +} + +struct BIND_OPTS { + DWORD cbStruct; + DWORD grfFlags; + DWORD grfMode; + DWORD dwTickCountDeadline; +} +alias BIND_OPTS* LPBIND_OPTS; + +struct BIND_OPTS2 { + DWORD cbStruct; + DWORD grfFlags; + DWORD grfMode; + DWORD dwTickCountDeadline; + DWORD dwTrackFlags; + DWORD dwClassContext; + LCID locale; + COSERVERINFO* pServerInfo; +} +alias BIND_OPTS2* LPBIND_OPTS2; + +enum BIND_FLAGS { + BIND_MAYBOTHERUSER = 1, + BIND_JUSTTESTEXISTENCE +} + +struct STGMEDIUM { + DWORD tymed; + union { + HBITMAP hBitmap; + PVOID hMetaFilePict; + HENHMETAFILE hEnhMetaFile; + HGLOBAL hGlobal; + LPWSTR lpszFileName; + LPSTREAM pstm; + LPSTORAGE pstg; + } + LPUNKNOWN pUnkForRelease; +} +alias STGMEDIUM* LPSTGMEDIUM; + +enum LOCKTYPE { + LOCK_WRITE = 1, + LOCK_EXCLUSIVE = 2, + LOCK_ONLYONCE = 4 +} + +alias uint RPCOLEDATAREP; + +struct RPCOLEMESSAGE { + PVOID reserved1; + RPCOLEDATAREP dataRepresentation; + PVOID Buffer; + ULONG cbBuffer; + ULONG iMethod; + PVOID reserved2[5]; + ULONG rpcFlags; +} +alias RPCOLEMESSAGE* PRPCOLEMESSAGE; + +enum MKSYS { + MKSYS_NONE, + MKSYS_GENERICCOMPOSITE, + MKSYS_FILEMONIKER, + MKSYS_ANTIMONIKER, + MKSYS_ITEMMONIKER, + MKSYS_POINTERMONIKER +} + +enum MKREDUCE { + MKRREDUCE_ALL, + MKRREDUCE_ONE = 196608, + MKRREDUCE_TOUSER = 131072, + MKRREDUCE_THROUGHUSER = 65536 +} + +struct RemSNB { + uint ulCntStr; + uint ulCntChar; + OLECHAR rgString[1]; +} + +enum ADVF { + ADVF_NODATA = 1, + ADVF_PRIMEFIRST = 2, + ADVF_ONLYONCE = 4, + ADVFCACHE_NOHANDLER = 8, + ADVFCACHE_FORCEBUILTIN = 16, + ADVFCACHE_ONSAVE = 32, + ADVF_DATAONSTOP = 64 +} + +enum TYMED { + TYMED_HGLOBAL = 1, + TYMED_FILE = 2, + TYMED_ISTREAM = 4, + TYMED_ISTORAGE = 8, + TYMED_GDI = 16, + TYMED_MFPICT = 32, + TYMED_ENHMF = 64, + TYMED_NULL = 0 +} + +enum SERVERCALL { + SERVERCALL_ISHANDLED, + SERVERCALL_REJECTED, + SERVERCALL_RETRYLATER +} + +struct CAUB { + ULONG cElems; + ubyte* pElems; +} + +struct CAI { + ULONG cElems; + short* pElems; +} + +struct CAUI { + ULONG cElems; + USHORT* pElems; +} + +struct CAL { + ULONG cElems; + int* pElems; +} + +struct CAUL { + ULONG cElems; + ULONG* pElems; +} + +struct CAFLT { + ULONG cElems; + float* pElems; +} + +struct CADBL { + ULONG cElems; + double* pElems; +} + +struct CACY { + ULONG cElems; + CY* pElems; +} + +struct CADATE { + ULONG cElems; + DATE* pElems; +} + +struct CABSTR { + ULONG cElems; + BSTR* pElems; +} + +struct CABSTRBLOB { + ULONG cElems; + BSTRBLOB* pElems; +} + +struct CABOOL { + ULONG cElems; + VARIANT_BOOL* pElems; +} + +struct CASCODE { + ULONG cElems; + SCODE* pElems; +} + +struct CAH { + ULONG cElems; + LARGE_INTEGER* pElems; +} + +struct CAUH { + ULONG cElems; + ULARGE_INTEGER* pElems; +} + +struct CALPSTR { + ULONG cElems; + LPSTR* pElems; +} + +struct CALPWSTR { + ULONG cElems; + LPWSTR* pElems; +} + +struct CAFILETIME { + ULONG cElems; + FILETIME* pElems; +} + +struct CACLIPDATA { + ULONG cElems; + CLIPDATA* pElems; +} + +struct CACLSID { + ULONG cElems; + CLSID* pElems; +} +alias PROPVARIANT* LPPROPVARIANT; + +struct CAPROPVARIANT { + ULONG cElems; + LPPROPVARIANT pElems; +} + +struct PROPVARIANT { + VARTYPE vt; + WORD wReserved1; + WORD wReserved2; + WORD wReserved3; + union { + CHAR cVal; + UCHAR bVal; + short iVal; + USHORT uiVal; + VARIANT_BOOL boolVal; + int lVal; + ULONG ulVal; + float fltVal; + SCODE scode; + LARGE_INTEGER hVal; + ULARGE_INTEGER uhVal; + double dblVal; + CY cyVal; + DATE date; + FILETIME filetime; + CLSID* puuid; + BLOB blob; + CLIPDATA* pclipdata; + LPSTREAM pStream; + LPSTORAGE pStorage; + BSTR bstrVal; + BSTRBLOB bstrblobVal; + LPSTR pszVal; + LPWSTR pwszVal; + CAUB caub; + CAI cai; + CAUI caui; + CABOOL cabool; + CAL cal; + CAUL caul; + CAFLT caflt; + CASCODE cascode; + CAH cah; + CAUH cauh; + CADBL cadbl; + CACY cacy; + CADATE cadate; + CAFILETIME cafiletime; + CACLSID cauuid; + CACLIPDATA caclipdata; + CABSTR cabstr; + CABSTRBLOB cabstrblob; + CALPSTR calpstr; + CALPWSTR calpwstr; + CAPROPVARIANT capropvar; + } +} + +struct PROPSPEC { + ULONG ulKind; + union { + PROPID propid; + LPOLESTR lpwstr; + } +} + +struct STATPROPSTG { + LPOLESTR lpwstrName; + PROPID propid; + VARTYPE vt; +} + +enum PROPSETFLAG { + PROPSETFLAG_DEFAULT, + PROPSETFLAG_NONSIMPLE, + PROPSETFLAG_ANSI, + PROPSETFLAG_UNBUFFERED = 4 +} + +struct STORAGELAYOUT { + DWORD LayoutType; + OLECHAR* pwcsElementName; + LARGE_INTEGER cOffset; + LARGE_INTEGER cBytes; +} + +struct SOLE_AUTHENTICATION_SERVICE { + DWORD dwAuthnSvc; + DWORD dwAuthzSvc; + OLECHAR* pPrincipalName; + HRESULT hr; +} + +const OLECHAR* COLE_DEFAULT_PRINCIPAL = cast ( OLECHAR* )(-1); + +enum EOLE_AUTHENTICATION_CAPABILITIES { + EOAC_NONE = 0, + EOAC_MUTUAL_AUTH = 0x1, + EOAC_SECURE_REFS = 0x2, + EOAC_ACCESS_CONTROL = 0x4, + EOAC_APPID = 0x8, + EOAC_DYNAMIC = 0x10, + EOAC_STATIC_CLOAKING = 0x20, + EOAC_DYNAMIC_CLOAKING = 0x40, + EOAC_ANY_AUTHORITY = 0x80, + EOAC_MAKE_FULLSIC = 0x100, + EOAC_REQUIRE_FULLSIC = 0x200, + EOAC_AUTO_IMPERSONATE = 0x400, + EOAC_DEFAULT = 0x800, + EOAC_DISABLE_AAA = 0x1000, + EOAC_NO_CUSTOM_MARSHAL = 0x2000 +} + +struct SOLE_AUTHENTICATION_INFO { + DWORD dwAuthnSvc; + DWORD dwAuthzSvc; + void* pAuthInfo; +} + +const void* COLE_DEFAULT_AUTHINFO = cast( void* )(-1 ); + +struct SOLE_AUTHENTICATION_LIST { + DWORD cAuthInfo; + SOLE_AUTHENTICATION_INFO* aAuthInfo; +} + +interface IEnumFORMATETC : IUnknown { + HRESULT Next(ULONG, FORMATETC*, ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(IEnumFORMATETC**); +} + +interface IEnumHLITEM : IUnknown { + HRESULT Next(ULONG, HLITEM*, ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(IEnumHLITEM**); +} + +interface IEnumSTATDATA : IUnknown { + HRESULT Next(ULONG, STATDATA*, ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(IEnumSTATDATA**); +} + +interface IEnumSTATPROPSETSTG : IUnknown { + HRESULT Next(ULONG, STATPROPSETSTG*, ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(IEnumSTATPROPSETSTG**); +} + +interface IEnumSTATPROPSTG : IUnknown { + HRESULT Next(ULONG, STATPROPSTG*, ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(IEnumSTATPROPSTG**); +} + +interface IEnumSTATSTG : IUnknown { + HRESULT Next(ULONG, STATSTG*, ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(IEnumSTATSTG**); +} + +interface IEnumString : IUnknown { + HRESULT Next(ULONG, LPOLESTR*, ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(IEnumString**); +} + +interface IEnumMoniker : IUnknown { + HRESULT Next(ULONG, IMoniker*, ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(IEnumMoniker**); +} + + +interface IEnumUnknown : IUnknown { + HRESULT Next(ULONG, IUnknown*, ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(IEnumUnknown**); +} + +interface ISequentialStream : IUnknown { + HRESULT Read(void*, ULONG, ULONG*); + HRESULT Write(void* , ULONG, ULONG*); +} + +interface IStream : ISequentialStream { + HRESULT Seek(LARGE_INTEGER, DWORD, ULARGE_INTEGER*); + HRESULT SetSize(ULARGE_INTEGER); + HRESULT CopyTo(IStream, ULARGE_INTEGER, ULARGE_INTEGER*, ULARGE_INTEGER*); + HRESULT Commit(DWORD); + HRESULT Revert(); + HRESULT LockRegion(ULARGE_INTEGER, ULARGE_INTEGER, DWORD); + HRESULT UnlockRegion(ULARGE_INTEGER, ULARGE_INTEGER, DWORD); + HRESULT Stat(STATSTG*, DWORD); + HRESULT Clone(LPSTREAM*); +} + +interface IMarshal : IUnknown { + HRESULT GetUnmarshalClass(REFIID, PVOID, DWORD, PVOID, DWORD, CLSID*); + HRESULT GetMarshalSizeMax(REFIID, PVOID, DWORD, PVOID, PDWORD, ULONG*); + HRESULT MarshalInterface(IStream, REFIID, PVOID, DWORD, PVOID, DWORD); + HRESULT UnmarshalInterface(IStream, REFIID, void**); + HRESULT ReleaseMarshalData(IStream); + HRESULT DisconnectObject(DWORD); +} + +interface IStdMarshalInfo : IUnknown { + HRESULT GetClassForHandler(DWORD, PVOID, CLSID*); +} + +interface IMalloc : IUnknown { + void* Alloc(ULONG); + void* Realloc(void*, ULONG); + void Free(void*); + ULONG GetSize(void*); + int DidAlloc(void*); + void HeapMinimize(); +} + +interface IMallocSpy : IUnknown { + ULONG PreAlloc(ULONG); + void* PostAlloc(void*); + void* PreFree(void*, BOOL); + void PostFree(BOOL); + ULONG PreRealloc(void*, ULONG, void**, BOOL); + void* PostRealloc(void*, BOOL); + void* PreGetSize(void*, BOOL); + ULONG PostGetSize(ULONG, BOOL); + void* PreDidAlloc(void*, BOOL); + int PostDidAlloc(void*, BOOL, int); + void PreHeapMinimize(); + void PostHeapMinimize(); +} + +interface IMessageFilter : IUnknown { + DWORD HandleInComingCall(DWORD, HTASK, DWORD, LPINTERFACEINFO); + DWORD RetryRejectedCall(HTASK, DWORD, DWORD); + DWORD MessagePending(HTASK, DWORD, DWORD); +} + + +interface IPersist : IUnknown { + HRESULT GetClassID(CLSID*); +} + +interface IPersistStream : IPersist { + HRESULT IsDirty(); + HRESULT Load(IStream*); + HRESULT Save(IStream*, BOOL); + HRESULT GetSizeMax(PULARGE_INTEGER); +} + +interface IRunningObjectTable : IUnknown { + HRESULT Register(DWORD, LPUNKNOWN, LPMONIKER, PDWORD); + HRESULT Revoke(DWORD); + HRESULT IsRunning(LPMONIKER); + HRESULT GetObject(LPMONIKER, LPUNKNOWN*); + HRESULT NoteChangeTime(DWORD, LPFILETIME); + HRESULT GetTimeOfLastChange(LPMONIKER, LPFILETIME); + HRESULT EnumRunning(IEnumMoniker**); +} + +interface IBindCtx : IUnknown { + HRESULT RegisterObjectBound(LPUNKNOWN); + HRESULT RevokeObjectBound(LPUNKNOWN); + HRESULT ReleaseBoundObjects(); + HRESULT SetBindOptions(LPBIND_OPTS); + HRESULT GetBindOptions(LPBIND_OPTS); + HRESULT GetRunningObjectTable(IRunningObjectTable**); + HRESULT RegisterObjectParam(LPOLESTR, IUnknown*); + HRESULT GetObjectParam(LPOLESTR, IUnknown**); + HRESULT EnumObjectParam(IEnumString**); + HRESULT RevokeObjectParam(LPOLESTR); +} + +interface IMoniker: IPersistStream { + HRESULT BindToObject(IBindCtx*, IMoniker*, REFIID, PVOID*); + HRESULT BindToStorage(IBindCtx*, IMoniker*, REFIID, PVOID*); + HRESULT Reduce(IBindCtx*, DWORD, IMoniker**, IMoniker**); + HRESULT ComposeWith(IMoniker*, BOOL, IMoniker**); + HRESULT Enum(BOOL, IEnumMoniker**); + HRESULT IsEqual(IMoniker*); + HRESULT Hash(PDWORD); + HRESULT IsRunning(IBindCtx*, IMoniker*, IMoniker*); + HRESULT GetTimeOfLastChange(IBindCtx*, IMoniker*, LPFILETIME); + HRESULT Inverse(IMoniker**); + HRESULT CommonPrefixWith(IMoniker*, IMoniker**); + HRESULT RelativePathTo(IMoniker*, IMoniker**); + HRESULT GetDisplayName(IBindCtx*, IMoniker*, LPOLESTR*); + HRESULT ParseDisplayName(IBindCtx*, IMoniker*, LPOLESTR, ULONG*, IMoniker**); + HRESULT IsSystemMoniker(PDWORD); +} + +interface IPersistStorage : IPersist +{ + HRESULT IsDirty(); + HRESULT InitNew(LPSTORAGE); + HRESULT Load(LPSTORAGE); + HRESULT Save(LPSTORAGE, BOOL); + HRESULT SaveCompleted(LPSTORAGE); + HRESULT HandsOffStorage(); +} + +interface IPersistFile : IPersist +{ + HRESULT IsDirty(); + HRESULT Load(LPCOLESTR, DWORD); + HRESULT Save(LPCOLESTR, BOOL); + HRESULT SaveCompleted(LPCOLESTR); + HRESULT GetCurFile(LPOLESTR*); +} + +interface IAdviseSink : IUnknown { + HRESULT QueryInterface(REFIID, PVOID*); + ULONG AddRef(); + ULONG Release(); + void OnDataChange(FORMATETC*, STGMEDIUM*); + void OnViewChange(DWORD, LONG); + void OnRename(IMoniker*); + void OnSave(); + void OnClose(); +} + +interface IAdviseSink2 : IAdviseSink +{ + void OnLinkSrcChange(IMoniker*); +} + +interface IDataObject : IUnknown { + HRESULT GetData(FORMATETC*, STGMEDIUM*); + HRESULT GetDataHere(FORMATETC*, STGMEDIUM*); + HRESULT QueryGetData(FORMATETC*); + HRESULT GetCanonicalFormatEtc(FORMATETC*, FORMATETC*); + HRESULT SetData(FORMATETC*, STGMEDIUM*, BOOL); + HRESULT EnumFormatEtc(DWORD, IEnumFORMATETC**); + HRESULT DAdvise(FORMATETC*, DWORD, IAdviseSink*, PDWORD); + HRESULT DUnadvise(DWORD); + HRESULT EnumDAdvise(IEnumSTATDATA**); +} + +interface IDataAdviseHolder : IUnknown { + HRESULT Advise(IDataObject*, FORMATETC*, DWORD, IAdviseSink*, PDWORD); + HRESULT Unadvise(DWORD); + HRESULT EnumAdvise(IEnumSTATDATA**); + HRESULT SendOnDataChange(IDataObject*, DWORD, DWORD); +} + +interface IStorage : IUnknown { + HRESULT CreateStream(LPCWSTR, DWORD, DWORD, DWORD, IStream*); + HRESULT OpenStream(LPCWSTR, PVOID, DWORD, DWORD, IStream*); + HRESULT CreateStorage(LPCWSTR, DWORD, DWORD, DWORD, IStorage*); + HRESULT OpenStorage(LPCWSTR, IStorage, DWORD, SNB, DWORD, IStorage*); + HRESULT CopyTo(DWORD, IID* , SNB, IStorage); + HRESULT MoveElementTo(LPCWSTR, IStorage, LPCWSTR, DWORD); + HRESULT Commit(DWORD); + HRESULT Revert(); + HRESULT EnumElements(DWORD, PVOID, DWORD, IEnumSTATSTG*); + HRESULT DestroyElement(LPCWSTR); + HRESULT RenameElement(LPCWSTR, LPCWSTR); + HRESULT SetElementTimes(LPCWSTR, FILETIME* , FILETIME* , FILETIME* ); + HRESULT SetClass(REFCLSID); + HRESULT SetStateBits(DWORD, DWORD); + HRESULT Stat(STATSTG*, DWORD); +} + +// FIXME: GetClassID from IPersist not there - what to do about it? +interface IRootStorage : IPersist { + HRESULT QueryInterface(REFIID, PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT SwitchToFile(LPOLESTR); +} + +interface IRpcChannelBuffer : IUnknown { + HRESULT GetBuffer(RPCOLEMESSAGE*, REFIID); + HRESULT SendReceive(RPCOLEMESSAGE*, PULONG); + HRESULT FreeBuffer(RPCOLEMESSAGE*); + HRESULT GetDestCtx(PDWORD, PVOID*); + HRESULT IsConnected(); +} + +interface IRpcProxyBuffer : IUnknown { + HRESULT Connect(IRpcChannelBuffer*); + void Disconnect(); +} + +interface IRpcStubBuffer : IUnknown { + HRESULT Connect(LPUNKNOWN); + void Disconnect(); + HRESULT Invoke(RPCOLEMESSAGE*, LPRPCSTUBBUFFER); + LPRPCSTUBBUFFER IsIIDSupported(REFIID); + ULONG CountRefs(); + HRESULT DebugServerQueryInterface(PVOID*); + HRESULT DebugServerRelease(PVOID); +} + +interface IPSFactoryBuffer : IUnknown { + HRESULT CreateProxy(LPUNKNOWN, REFIID, LPRPCPROXYBUFFER*, PVOID*); + HRESULT CreateStub(REFIID, LPUNKNOWN, LPRPCSTUBBUFFER*); +} +alias IPSFactoryBuffer* LPPSFACTORYBUFFER; + +interface ILockBytes : IUnknown { + HRESULT ReadAt(ULARGE_INTEGER, PVOID, ULONG, ULONG*); + HRESULT WriteAt(ULARGE_INTEGER, PCVOID, ULONG, ULONG*); + HRESULT Flush(); + HRESULT SetSize(ULARGE_INTEGER); + HRESULT LockRegion(ULARGE_INTEGER, ULARGE_INTEGER, DWORD); + HRESULT UnlockRegion(ULARGE_INTEGER, ULARGE_INTEGER, DWORD); + HRESULT Stat(STATSTG*, DWORD); +} + +interface IExternalConnection : IUnknown { + HRESULT AddConnection(DWORD, DWORD); + HRESULT ReleaseConnection(DWORD, DWORD, BOOL); +} + +interface IRunnableObject : IUnknown { + HRESULT GetRunningClass(LPCLSID); + HRESULT Run(LPBC); + BOOL IsRunning(); + HRESULT LockRunning(BOOL, BOOL); + HRESULT SetContainedObject(BOOL); +} + +interface IROTData : IUnknown { + HRESULT GetComparisonData(PVOID, ULONG, PULONG); +} + +interface IChannelHook : IUnknown { + void ClientGetSize(REFGUID, REFIID, PULONG); + void ClientFillBuffer(REFGUID, REFIID, PULONG, PVOID); + void ClientNotify(REFGUID, REFIID, ULONG, PVOID, DWORD, HRESULT); + void ServerNotify(REFGUID, REFIID, ULONG, PVOID, DWORD); + void ServerGetSize(REFGUID, REFIID, HRESULT, PULONG); + void ServerFillBuffer(REFGUID, REFIID, PULONG, PVOID, HRESULT); +} + +interface IPropertyStorage : IUnknown { + HRESULT ReadMultiple(ULONG, PROPSPEC* , PROPVARIANT*); + HRESULT WriteMultiple(ULONG, PROPSPEC* , PROPVARIANT*, PROPID); + HRESULT DeleteMultiple(ULONG, PROPSPEC* ); + HRESULT ReadPropertyNames(ULONG, PROPID* , LPWSTR*); + HRESULT WritePropertyNames(ULONG, PROPID* , LPWSTR* ); + HRESULT DeletePropertyNames(ULONG, PROPID* ); + HRESULT SetClass(REFCLSID); + HRESULT Commit(DWORD); + HRESULT Revert(); + HRESULT Enum(IEnumSTATPROPSTG**); + HRESULT Stat(STATPROPSTG*); + HRESULT SetTimes(FILETIME* , FILETIME* , FILETIME* ); +} + +interface IPropertySetStorage : IUnknown { + HRESULT Create(REFFMTID, CLSID*, DWORD, DWORD, LPPROPERTYSTORAGE*); + HRESULT Open(REFFMTID, DWORD, LPPROPERTYSTORAGE*); + HRESULT Delete(REFFMTID); + HRESULT Enum(IEnumSTATPROPSETSTG**); +} + +interface IClientSecurity : IUnknown { + HRESULT QueryBlanket(PVOID, PDWORD, PDWORD, OLECHAR**, PDWORD, PDWORD, RPC_AUTH_IDENTITY_HANDLE**, PDWORD*); + HRESULT SetBlanket(PVOID, DWORD, DWORD, LPWSTR, DWORD, DWORD, RPC_AUTH_IDENTITY_HANDLE*, DWORD); + HRESULT CopyProxy(LPUNKNOWN, LPUNKNOWN*); +} + +interface IServerSecurity : IUnknown { + HRESULT QueryBlanket(PDWORD, PDWORD, OLECHAR**, PDWORD, PDWORD, RPC_AUTHZ_HANDLE*, PDWORD*); + HRESULT ImpersonateClient(); + HRESULT RevertToSelf(); + HRESULT IsImpersonating(); +} + +interface IClassActivator : IUnknown { + HRESULT GetClassObject(REFCLSID, DWORD, LCID, REFIID, PVOID*); +} + +interface IFillLockBytes : IUnknown { + HRESULT FillAppend(void* , ULONG, PULONG); + HRESULT FillAt(ULARGE_INTEGER, void* , ULONG, PULONG); + HRESULT SetFillSize(ULARGE_INTEGER); + HRESULT Terminate(BOOL); +} + +interface IProgressNotify : IUnknown { + HRESULT OnProgress(DWORD, DWORD, BOOL, BOOL); +} + +interface ILayoutStorage : IUnknown { + HRESULT LayoutScript(STORAGELAYOUT*, DWORD, DWORD); + HRESULT BeginMonitor(); + HRESULT EndMonitor(); + HRESULT ReLayoutDocfile(OLECHAR*); +} + +interface IGlobalInterfaceTable : IUnknown { + HRESULT RegisterInterfaceInGlobal(IUnknown*, REFIID, DWORD*); + HRESULT RevokeInterfaceFromGlobal(DWORD); + HRESULT GetInterfaceFromGlobal(DWORD, REFIID, void**); +} + +/+ +// These are probably unnecessary for D. +extern (Windows) { +HRESULT IMarshal_GetUnmarshalClass_Proxy(IMarshal*, REFIID, void*, DWORD, void*, DWORD, CLSID*); +void IMarshal_GetUnmarshalClass_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMarshal_GetMarshalSizeMax_Proxy(IMarshal*, REFIID, void*, DWORD, void*, DWORD, DWORD*); +void IMarshal_GetMarshalSizeMax_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMarshal_MarshalInterface_Proxy(IMarshal*, IStream*, REFIID, void*, DWORD, void*, DWORD); +void IMarshal_MarshalInterface_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMarshal_UnmarshalInterface_Proxy(IMarshal*, IStream*, REFIID, void**); +void IMarshal_UnmarshalInterface_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMarshal_ReleaseMarshalData_Proxy(IMarshal*, IStream*); +void IMarshal_ReleaseMarshalData_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMarshal_DisconnectObject_Proxy(IMarshal*, DWORD); +void IMarshal_DisconnectObject_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void* IMalloc_Alloc_Proxy(IMalloc*, ULONG); +void IMalloc_Alloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void* IMalloc_Realloc_Proxy(IMalloc*, void*, ULONG); +void IMalloc_Realloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void IMalloc_Free_Proxy(IMalloc*, void*); +void IMalloc_Free_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +ULONG IMalloc_GetSize_Proxy(IMalloc*, void*); +void IMalloc_GetSize_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +int IMalloc_DidAlloc_Proxy(IMalloc*, void*); +void IMalloc_DidAlloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void IMalloc_HeapMinimize_Proxy(IMalloc*); +void IMalloc_HeapMinimize_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +ULONG IMallocSpy_PreAlloc_Proxy(IMallocSpy*, ULONG cbRequest); +void IMallocSpy_PreAlloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void* IMallocSpy_PostAlloc_Proxy(IMallocSpy*, void*); +void IMallocSpy_PostAlloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void* IMallocSpy_PreFree_Proxy(IMallocSpy*, void*, BOOL); +void IMallocSpy_PreFree_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void IMallocSpy_PostFree_Proxy(IMallocSpy*, BOOL); +void IMallocSpy_PostFree_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +ULONG IMallocSpy_PreRealloc_Proxy(IMallocSpy*, void*, ULONG, void**, BOOL); +void IMallocSpy_PreRealloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void* IMallocSpy_PostRealloc_Proxy(IMallocSpy*, void*, BOOL); +void IMallocSpy_PostRealloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void* IMallocSpy_PreGetSize_Proxy(IMallocSpy*, void*, BOOL); +void IMallocSpy_PreGetSize_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +ULONG IMallocSpy_PostGetSize_Proxy(IMallocSpy*, ULONG, BOOL); +void IMallocSpy_PostGetSize_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void* IMallocSpy_PreDidAlloc_Proxy(IMallocSpy*, void*, BOOL); +void IMallocSpy_PreDidAlloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +int IMallocSpy_PostDidAlloc_Proxy(IMallocSpy*, void*, BOOL, int); +void IMallocSpy_PostDidAlloc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void IMallocSpy_PreHeapMinimize_Proxy(IMallocSpy* ); +void IMallocSpy_PreHeapMinimize_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void IMallocSpy_PostHeapMinimize_Proxy(IMallocSpy*); +void IMallocSpy_PostHeapMinimize_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStdMarshalInfo_GetClassForHandler_Proxy(IStdMarshalInfo*, DWORD, void*, CLSID*); +void IStdMarshalInfo_GetClassForHandler_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +DWORD IExternalConnection_AddConnection_Proxy(IExternalConnection*, DWORD, DWORD); +void IExternalConnection_AddConnection_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +DWORD IExternalConnection_ReleaseConnection_Proxy(IExternalConnection*, DWORD, DWORD, BOOL); +void IExternalConnection_ReleaseConnection_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumUnknown_RemoteNext_Proxy(IEnumUnknown*, ULONG, IUnknown**, ULONG*); +void IEnumUnknown_RemoteNext_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumUnknown_Skip_Proxy(IEnumUnknown*, ULONG); +void IEnumUnknown_Skip_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumUnknown_Reset_Proxy(IEnumUnknown* ); +void IEnumUnknown_Reset_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumUnknown_Clone_Proxy(IEnumUnknown*, IEnumUnknown**); +void IEnumUnknown_Clone_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IBindCtx_RegisterObjectBound_Proxy(IBindCtx*, IUnknown*punk); +void IBindCtx_RegisterObjectBound_Stub(IRpcStubBuffer*, IRpcChannelBuffer*_pRpcChannelBuffer, PRPC_MESSAGE, PDWORD); +HRESULT IBindCtx_RevokeObjectBound_Proxy(IBindCtx*, IUnknown*punk); +void IBindCtx_RevokeObjectBound_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IBindCtx_ReleaseBoundObjects_Proxy(IBindCtx*); +void IBindCtx_ReleaseBoundObjects_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IBindCtx_SetBindOptions_Proxy(IBindCtx*, BIND_OPTS*); +void IBindCtx_SetBindOptions_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IBindCtx_GetBindOptions_Proxy(IBindCtx*, BIND_OPTS*pbindopts); +void IBindCtx_GetBindOptions_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IBindCtx_GetRunningObjectTable_Proxy(IBindCtx*, IRunningObjectTable**); +void IBindCtx_GetRunningObjectTable_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IBindCtx_RegisterObjectParam_Proxy(IBindCtx*, LPCSTR, IUnknown*); +void IBindCtx_RegisterObjectParam_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IBindCtx_GetObjectParam_Proxy(IBindCtx*, LPCSTR, IUnknown**); +void IBindCtx_GetObjectParam_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IBindCtx_EnumObjectParam_Proxy(IBindCtx*, IEnumString**); +void IBindCtx_EnumObjectParam_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IBindCtx_RevokeObjectParam_Proxy(IBindCtx*, LPCSTR); +void IBindCtx_RevokeObjectParam_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumMoniker_RemoteNext_Proxy(IEnumMoniker*, ULONG, IMoniker**, ULONG*); +void IEnumMoniker_RemoteNext_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumMoniker_Skip_Proxy(IEnumMoniker*, ULONG); +void IEnumMoniker_Skip_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumMoniker_Reset_Proxy(IEnumMoniker*); +void IEnumMoniker_Reset_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumMoniker_Clone_Proxy(IEnumMoniker*, IEnumMoniker**); +void IEnumMoniker_Clone_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRunnableObject_GetRunningClass_Proxy(IRunnableObject*, LPCLSID); +void IRunnableObject_GetRunningClass_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRunnableObject_Run_Proxy(IRunnableObject*, LPBINDCTX); +void IRunnableObject_Run_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +BOOL IRunnableObject_IsRunning_Proxy(IRunnableObject*); +void IRunnableObject_IsRunning_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRunnableObject_LockRunning_Proxy(IRunnableObject*, BOOL, BOOL); +void IRunnableObject_LockRunning_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRunnableObject_SetContainedObject_Proxy(IRunnableObject*, BOOL); +void IRunnableObject_SetContainedObject_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRunningObjectTable_Register_Proxy(IRunningObjectTable*, DWORD, IUnknown*, IMoniker*, DWORD*); +void IRunningObjectTable_Register_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRunningObjectTable_Revoke_Proxy(IRunningObjectTable*, DWORD); +void IRunningObjectTable_Revoke_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRunningObjectTable_IsRunning_Proxy(IRunningObjectTable*, IMoniker*); +void IRunningObjectTable_IsRunning_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRunningObjectTable_GetObject_Proxy(IRunningObjectTable*, IMoniker*, IUnknown**); +void IRunningObjectTable_GetObject_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRunningObjectTable_NoteChangeTime_Proxy(IRunningObjectTable*, DWORD, FILETIME*); +void IRunningObjectTable_NoteChangeTime_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRunningObjectTable_GetTimeOfLastChange_Proxy(IRunningObjectTable*, IMoniker*, FILETIME*); +void IRunningObjectTable_GetTimeOfLastChange_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRunningObjectTable_EnumRunning_Proxy(IRunningObjectTable*, IEnumMoniker**); +void IRunningObjectTable_EnumRunning_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPersist_GetClassID_Proxy(IPersist*, CLSID*); +void IPersist_GetClassID_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPersistStream_IsDirty_Proxy(IPersistStream*); +void IPersistStream_IsDirty_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPersistStream_Load_Proxy(IPersistStream*, IStream*); +void IPersistStream_Load_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPersistStream_Save_Proxy(IPersistStream*, IStream*, BOOL); +void IPersistStream_Save_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPersistStream_GetSizeMax_Proxy(IPersistStream*, ULARGE_INTEGER*); +void IPersistStream_GetSizeMax_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMoniker_RemoteBindToObject_Proxy(IMoniker*, IBindCtx*, IMoniker*, REFIID, IUnknown**); +void IMoniker_RemoteBindToObject_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMoniker_RemoteBindToStorage_Proxy(IMoniker*, IBindCtx*, IMoniker*, REFIID, IUnknown**); +void IMoniker_RemoteBindToStorage_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMoniker_Reduce_Proxy(IMoniker*, IBindCtx*, DWORD, IMoniker**, IMoniker**); +void IMoniker_Reduce_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMoniker_ComposeWith_Proxy(IMoniker*, IMoniker*, BOOL, IMoniker**); +void IMoniker_ComposeWith_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMoniker_Enum_Proxy(IMoniker*, BOOL, IEnumMoniker**); +void IMoniker_Enum_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMoniker_IsEqual_Proxy(IMoniker*, IMoniker*); +void IMoniker_IsEqual_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMoniker_Hash_Proxy(IMoniker*, DWORD*); +void IMoniker_Hash_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMoniker_IsRunning_Proxy(IMoniker*, IBindCtx*, IMoniker*, IMoniker*); +void IMoniker_IsRunning_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMoniker_GetTimeOfLastChange_Proxy(IMoniker*, IBindCtx*, IMoniker*, FILETIME*); +void IMoniker_GetTimeOfLastChange_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMoniker_Inverse_Proxy(IMoniker*, IMoniker**); +void IMoniker_Inverse_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMoniker_CommonPrefixWith_Proxy(IMoniker*, IMoniker*, IMoniker**); +void IMoniker_CommonPrefixWith_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMoniker_RelativePathTo_Proxy(IMoniker*, IMoniker*, IMoniker**); +void IMoniker_RelativePathTo_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMoniker_GetDisplayName_Proxy(IMoniker*, IBindCtx*, IMoniker*, LPCSTR*); +void IMoniker_GetDisplayName_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMoniker_ParseDisplayName_Proxy(IMoniker*, IBindCtx*, IMoniker*, LPCSTR, ULONG*, IMoniker**); +void IMoniker_ParseDisplayName_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IMoniker_IsSystemMoniker_Proxy(IMoniker*, DWORD*); +void IMoniker_IsSystemMoniker_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IROTData_GetComparisonData_Proxy(IROTData*, BYTE*, ULONG cbMax, ULONG*); +void IROTData_GetComparisonData_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumString_RemoteNext_Proxy(IEnumString*, ULONG, LPCSTR*rgelt, ULONG*); +void IEnumString_RemoteNext_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumString_Skip_Proxy(IEnumString*, ULONG); +void IEnumString_Skip_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumString_Reset_Proxy(IEnumString*); +void IEnumString_Reset_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumString_Clone_Proxy(IEnumString*, IEnumString**); +void IEnumString_Clone_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStream_RemoteRead_Proxy(IStream*, BYTE*, ULONG, ULONG*); +void IStream_RemoteRead_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStream_RemoteWrite_Proxy(IStream*, BYTE*pv, ULONG, ULONG*); +void IStream_RemoteWrite_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStream_RemoteSeek_Proxy(IStream*, LARGE_INTEGER, DWORD, ULARGE_INTEGER*); +void IStream_RemoteSeek_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStream_SetSize_Proxy(IStream*, ULARGE_INTEGER); +void IStream_SetSize_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStream_RemoteCopyTo_Proxy(IStream*, IStream*, ULARGE_INTEGER, ULARGE_INTEGER*, ULARGE_INTEGER*); +void IStream_RemoteCopyTo_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStream_Commit_Proxy(IStream*, DWORD); +void IStream_Commit_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStream_Revert_Proxy(IStream*); +void IStream_Revert_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStream_LockRegion_Proxy(IStream*, ULARGE_INTEGER, ULARGE_INTEGER, DWORD); +void IStream_LockRegion_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStream_UnlockRegion_Proxy(IStream*, ULARGE_INTEGER, ULARGE_INTEGER, DWORD); +void IStream_UnlockRegion_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStream_Stat_Proxy(IStream*, STATSTG*, DWORD); +void IStream_Stat_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStream_Clone_Proxy(IStream*, IStream**); +void IStream_Clone_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumSTATSTG_RemoteNext_Proxy(IEnumSTATSTG*, ULONG, STATSTG*, ULONG*); +void IEnumSTATSTG_RemoteNext_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumSTATSTG_Skip_Proxy(IEnumSTATSTG*, ULONG celt); +void IEnumSTATSTG_Skip_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumSTATSTG_Reset_Proxy(IEnumSTATSTG*); +void IEnumSTATSTG_Reset_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumSTATSTG_Clone_Proxy(IEnumSTATSTG*, IEnumSTATSTG**); +void IEnumSTATSTG_Clone_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStorage_CreateStream_Proxy(IStorage*, OLECHAR*, DWORD, DWORD, DWORD, IStream**); +void IStorage_CreateStream_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStorage_RemoteOpenStream_Proxy(IStorage*, CPtr!(OLECHAR), uint, BYTE*, DWORD, DWORD, IStream**); +void IStorage_RemoteOpenStream_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStorage_CreateStorage_Proxy(IStorage*, OLECHAR*, DWORD, DWORD, DWORD, IStorage**); +void IStorage_CreateStorage_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStorage_OpenStorage_Proxy(IStorage*, OLECHAR*, IStorage*, DWORD, SNB, DWORD, IStorage**); +void IStorage_OpenStorage_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStorage_CopyTo_Proxy(IStorage*, DWORD, CPtr!(IID), SNB, IStorage*); +void IStorage_CopyTo_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStorage_MoveElementTo_Proxy(IStorage*, CPtr!(OLECHAR), IStorage*, CPtr!(OLECHAR), DWORD); +void IStorage_MoveElementTo_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStorage_Commit_Proxy(IStorage*, DWORD); +void IStorage_Commit_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStorage_Revert_Proxy(IStorage*); +void IStorage_Revert_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStorage_RemoteEnumElements_Proxy(IStorage*, DWORD, uint, BYTE*, DWORD, IEnumSTATSTG**); +void IStorage_RemoteEnumElements_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStorage_DestroyElement_Proxy(IStorage*, OLECHAR*); +void IStorage_DestroyElement_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStorage_RenameElement_Proxy(IStorage*, CPtr!(OLECHAR), CPtr!(OLECHAR)); +void IStorage_RenameElement_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStorage_SetElementTimes_Proxy(IStorage*, CPtr!(OLECHAR), CPtr!(FILETIME), CPtr!(FILETIME), CPtr!(FILETIME)); +void IStorage_SetElementTimes_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStorage_SetClass_Proxy(IStorage*, REFCLSID); +void IStorage_SetClass_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStorage_SetStateBits_Proxy(IStorage*, DWORD, DWORD); +void IStorage_SetStateBits_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IStorage_Stat_Proxy(IStorage*, STATSTG*, DWORD); +void IStorage_Stat_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPersistFile_IsDirty_Proxy(IPersistFile*); +void IPersistFile_IsDirty_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPersistFile_Load_Proxy(IPersistFile*, LPCOLESTR, DWORD); +void IPersistFile_Load_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPersistFile_Save_Proxy(IPersistFile*, LPCOLESTR pszFileName, BOOL); +void IPersistFile_Save_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPersistFile_SaveCompleted_Proxy(IPersistFile*, LPCOLESTR); +void IPersistFile_SaveCompleted_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPersistFile_GetCurFile_Proxy(IPersistFile*, LPCSTR*); +void IPersistFile_GetCurFile_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPersistStorage_IsDirty_Proxy(IPersistStorage*); +void IPersistStorage_IsDirty_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPersistStorage_InitNew_Proxy(IPersistStorage*, IStorage*); +void IPersistStorage_InitNew_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPersistStorage_Load_Proxy(IPersistStorage*, IStorage*); +void IPersistStorage_Load_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPersistStorage_Save_Proxy(IPersistStorage*, IStorage*, BOOL); +void IPersistStorage_Save_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPersistStorage_SaveCompleted_Proxy(IPersistStorage*, IStorage*); +void IPersistStorage_SaveCompleted_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPersistStorage_HandsOffStorage_Proxy(IPersistStorage*); +void IPersistStorage_HandsOffStorage_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT ILockBytes_RemoteReadAt_Proxy(ILockBytes*, ULARGE_INTEGER, BYTE*, ULONG, ULONG*); +void ILockBytes_RemoteReadAt_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT ILockBytes_RemoteWriteAt_Proxy(ILockBytes*, ULARGE_INTEGER, BYTE*pv, ULONG, ULONG*); +void ILockBytes_RemoteWriteAt_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT ILockBytes_Flush_Proxy(ILockBytes*); +void ILockBytes_Flush_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT ILockBytes_SetSize_Proxy(ILockBytes*, ULARGE_INTEGER); +void ILockBytes_SetSize_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT ILockBytes_LockRegion_Proxy(ILockBytes*, ULARGE_INTEGER, ULARGE_INTEGER, DWORD); +void ILockBytes_LockRegion_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT ILockBytes_UnlockRegion_Proxy(ILockBytes*, ULARGE_INTEGER, ULARGE_INTEGER, DWORD); +void ILockBytes_UnlockRegion_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT ILockBytes_Stat_Proxy(ILockBytes*, STATSTG*, DWORD); +void ILockBytes_Stat_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumFORMATETC_RemoteNext_Proxy(IEnumFORMATETC*, ULONG, FORMATETC*, ULONG*); +void IEnumFORMATETC_RemoteNext_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumFORMATETC_Skip_Proxy(IEnumFORMATETC*, ULONG); +void IEnumFORMATETC_Skip_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumFORMATETC_Reset_Proxy(IEnumFORMATETC*); +void IEnumFORMATETC_Reset_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumFORMATETC_Clone_Proxy(IEnumFORMATETC*, IEnumFORMATETC**); +void IEnumFORMATETC_Clone_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumFORMATETC_Next_Proxy(IEnumFORMATETC*, ULONG, FORMATETC*, ULONG*); +HRESULT IEnumFORMATETC_Next_Stub(IEnumFORMATETC*, ULONG, FORMATETC*, ULONG*); +HRESULT IEnumSTATDATA_RemoteNext_Proxy(IEnumSTATDATA*, ULONG, STATDATA*, ULONG*); +void IEnumSTATDATA_RemoteNext_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumSTATDATA_Skip_Proxy(IEnumSTATDATA*, ULONG); +void IEnumSTATDATA_Skip_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumSTATDATA_Reset_Proxy(IEnumSTATDATA*); +void IEnumSTATDATA_Reset_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumSTATDATA_Clone_Proxy(IEnumSTATDATA*, IEnumSTATDATA**); +void IEnumSTATDATA_Clone_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IEnumSTATDATA_Next_Proxy(IEnumSTATDATA*, ULONG, STATDATA*, ULONG*); +HRESULT IEnumSTATDATA_Next_Stub(IEnumSTATDATA*, ULONG, STATDATA*, ULONG*); +HRESULT IRootStorage_SwitchToFile_Proxy(IRootStorage*, LPCSTR); +void IRootStorage_SwitchToFile_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void IAdviseSink_RemoteOnDataChange_Proxy(IAdviseSink*, FORMATETC*, RemSTGMEDIUM*); +void IAdviseSink_RemoteOnDataChange_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void IAdviseSink_RemoteOnViewChange_Proxy(IAdviseSink*, DWORD, LONG); +void IAdviseSink_RemoteOnViewChange_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void IAdviseSink_RemoteOnRename_Proxy(IAdviseSink*, IMoniker*); +void IAdviseSink_RemoteOnRename_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void IAdviseSink_RemoteOnSave_Proxy(IAdviseSink*); +void IAdviseSink_RemoteOnSave_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IAdviseSink_RemoteOnClose_Proxy(IAdviseSink*); +void IAdviseSink_RemoteOnClose_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void IAdviseSink_OnDataChange_Proxy(IAdviseSink*, FORMATETC*, STGMEDIUM*); +void IAdviseSink_OnDataChange_Stub(IAdviseSink*, FORMATETC*, RemSTGMEDIUM*); +void IAdviseSink_OnViewChange_Proxy(IAdviseSink*, DWORD, LONG); +void IAdviseSink_OnViewChange_Stub(IAdviseSink*, DWORD, LONG); +void IAdviseSink_OnRename_Proxy(IAdviseSink*, IMoniker*); +void IAdviseSink_OnRename_Stub(IAdviseSink*, IMoniker*); +void IAdviseSink_OnSave_Proxy(IAdviseSink*); +void IAdviseSink_OnSave_Stub(IAdviseSink*); +void IAdviseSink_OnClose_Proxy(IAdviseSink*); +HRESULT IAdviseSink_OnClose_Stub(IAdviseSink*); +void IAdviseSink2_RemoteOnLinkSrcChange_Proxy(IAdviseSink2*, IMoniker*); +void IAdviseSink2_RemoteOnLinkSrcChange_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void IAdviseSink2_OnLinkSrcChange_Proxy(IAdviseSink2*, IMoniker*); +void IAdviseSink2_OnLinkSrcChange_Stub(IAdviseSink2*, IMoniker*); +HRESULT IDataObject_RemoteGetData_Proxy(IDataObject*, FORMATETC*, RemSTGMEDIUM**); +void IDataObject_RemoteGetData_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IDataObject_RemoteGetDataHere_Proxy(IDataObject*, FORMATETC*, RemSTGMEDIUM**); +void IDataObject_RemoteGetDataHere_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IDataObject_QueryGetData_Proxy(IDataObject*, FORMATETC*); +void IDataObject_QueryGetData_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IDataObject_GetCanonicalFormatEtc_Proxy(IDataObject*, FORMATETC*, FORMATETC*); +void IDataObject_GetCanonicalFormatEtc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IDataObject_RemoteSetData_Proxy(IDataObject*, FORMATETC*, RemSTGMEDIUM*, BOOL); +void IDataObject_RemoteSetData_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IDataObject_EnumFormatEtc_Proxy(IDataObject*, DWORD, IEnumFORMATETC**); +void IDataObject_EnumFormatEtc_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IDataObject_DAdvise_Proxy(IDataObject*, FORMATETC*, DWORD, IAdviseSink*, DWORD*); +void IDataObject_DAdvise_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IDataObject_DUnadvise_Proxy(IDataObject*, DWORD); +void IDataObject_DUnadvise_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IDataObject_EnumDAdvise_Proxy(IDataObject*, IEnumSTATDATA**); +void IDataObject_EnumDAdvise_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IDataObject_GetData_Proxy(IDataObject*, FORMATETC*, STGMEDIUM*); +HRESULT IDataObject_GetData_Stub(IDataObject*, FORMATETC*, RemSTGMEDIUM**); +HRESULT IDataObject_GetDataHere_Proxy(IDataObject*, FORMATETC*, STGMEDIUM*); +HRESULT IDataObject_GetDataHere_Stub(IDataObject*, FORMATETC*, RemSTGMEDIUM**); +HRESULT IDataObject_SetData_Proxy(IDataObject*, FORMATETC*, STGMEDIUM*, BOOL); +HRESULT IDataObject_SetData_Stub(IDataObject*, FORMATETC*, RemSTGMEDIUM*, BOOL); +HRESULT IDataAdviseHolder_Advise_Proxy(IDataAdviseHolder*, IDataObject*, FORMATETC*, DWORD, IAdviseSink*, DWORD*); +void IDataAdviseHolder_Advise_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IDataAdviseHolder_Unadvise_Proxy(IDataAdviseHolder*, DWORD); +void IDataAdviseHolder_Unadvise_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IDataAdviseHolder_EnumAdvise_Proxy(IDataAdviseHolder*, IEnumSTATDATA**); +void IDataAdviseHolder_EnumAdvise_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IDataAdviseHolder_SendOnDataChange_Proxy(IDataAdviseHolder*, IDataObject*, DWORD, DWORD); +void IDataAdviseHolder_SendOnDataChange_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +DWORD IMessageFilter_HandleInComingCall_Proxy(IMessageFilter*, DWORD, HTASK, DWORD, LPINTERFACEINFO); +void IMessageFilter_HandleInComingCall_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +DWORD IMessageFilter_RetryRejectedCall_Proxy(IMessageFilter*, HTASK, DWORD, DWORD); +void IMessageFilter_RetryRejectedCall_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +DWORD IMessageFilter_MessagePending_Proxy(IMessageFilter*, HTASK, DWORD, DWORD); +void IMessageFilter_MessagePending_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRpcChannelBuffer_GetBuffer_Proxy(IRpcChannelBuffer*, RPCOLEMESSAGE*, REFIID); +void IRpcChannelBuffer_GetBuffer_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRpcChannelBuffer_SendReceive_Proxy(IRpcChannelBuffer*, RPCOLEMESSAGE*, ULONG*); +void IRpcChannelBuffer_SendReceive_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRpcChannelBuffer_FreeBuffer_Proxy(IRpcChannelBuffer*, RPCOLEMESSAGE*); +void IRpcChannelBuffer_FreeBuffer_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRpcChannelBuffer_GetDestCtx_Proxy(IRpcChannelBuffer*, DWORD*, void**); +void IRpcChannelBuffer_GetDestCtx_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRpcChannelBuffer_IsConnected_Proxy(IRpcChannelBuffer*); +void IRpcChannelBuffer_IsConnected_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRpcProxyBuffer_Connect_Proxy(IRpcProxyBuffer*, IRpcChannelBuffer*pRpcChannelBuffer); +void IRpcProxyBuffer_Connect_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void IRpcProxyBuffer_Disconnect_Proxy(IRpcProxyBuffer*); +void IRpcProxyBuffer_Disconnect_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRpcStubBuffer_Connect_Proxy(IRpcStubBuffer*, IUnknown*); +void IRpcStubBuffer_Connect_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void IRpcStubBuffer_Disconnect_Proxy(IRpcStubBuffer*); +void IRpcStubBuffer_Disconnect_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRpcStubBuffer_Invoke_Proxy(IRpcStubBuffer*, RPCOLEMESSAGE*, IRpcChannelBuffer*); +void IRpcStubBuffer_Invoke_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +IRpcStubBuffer*IRpcStubBuffer_IsIIDSupported_Proxy(IRpcStubBuffer*, REFIID); +void IRpcStubBuffer_IsIIDSupported_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +ULONG IRpcStubBuffer_CountRefs_Proxy(IRpcStubBuffer*); +void IRpcStubBuffer_CountRefs_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IRpcStubBuffer_DebugServerQueryInterface_Proxy(IRpcStubBuffer*, void**); +void IRpcStubBuffer_DebugServerQueryInterface_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void IRpcStubBuffer_DebugServerRelease_Proxy(IRpcStubBuffer*, void*); +void IRpcStubBuffer_DebugServerRelease_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPSFactoryBuffer_CreateProxy_Proxy(IPSFactoryBuffer*, IUnknown*, REFIID, IRpcProxyBuffer**, void**); +void IPSFactoryBuffer_CreateProxy_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +HRESULT IPSFactoryBuffer_CreateStub_Proxy(IPSFactoryBuffer*, REFIID, IUnknown*, IRpcStubBuffer**); +void IPSFactoryBuffer_CreateStub_Stub(IRpcStubBuffer*, IRpcChannelBuffer*, PRPC_MESSAGE, PDWORD); +void SNB_to_xmit(SNB*, RemSNB**); +void SNB_from_xmit(RemSNB*, SNB*); +void SNB_free_inst(SNB*); +void SNB_free_xmit(RemSNB*); +HRESULT IEnumUnknown_Next_Proxy(IEnumUnknown*, ULONG, IUnknown**, ULONG*); +HRESULT IEnumUnknown_Next_Stub(IEnumUnknown*, ULONG, IUnknown**, ULONG*); +HRESULT IEnumMoniker_Next_Proxy(IEnumMoniker*, ULONG, IMoniker**, ULONG*); +HRESULT IEnumMoniker_Next_Stub(IEnumMoniker*, ULONG, IMoniker**, ULONG*); +HRESULT IMoniker_BindToObject_Proxy(IMoniker*, IBindCtx*, IMoniker*, REFIID, void**); +HRESULT IMoniker_BindToObject_Stub(IMoniker*, IBindCtx*, IMoniker*, REFIID, IUnknown**); +HRESULT IMoniker_BindToStorage_Proxy(IMoniker*, IBindCtx*, IMoniker*, REFIID, void**); +HRESULT IMoniker_BindToStorage_Stub(IMoniker*, IBindCtx*, IMoniker*, REFIID, IUnknown**); +HRESULT IEnumString_Next_Proxy(IEnumString*, ULONG, LPCSTR*, ULONG*); +HRESULT IEnumString_Next_Stub(IEnumString*, ULONG, LPCSTR*, ULONG*); +HRESULT IStream_Read_Proxy(IStream*, void*, ULONG, ULONG*); +HRESULT IStream_Read_Stub(IStream*, BYTE*, ULONG, ULONG*); +HRESULT IStream_Write_Proxy(IStream*, void*, ULONG, ULONG*); +HRESULT IStream_Write_Stub(IStream*, BYTE*, ULONG, ULONG*); +HRESULT IStream_Seek_Proxy(IStream*, LARGE_INTEGER, DWORD, ULARGE_INTEGER*); +HRESULT IStream_Seek_Stub(IStream*, LARGE_INTEGER, DWORD, ULARGE_INTEGER*); +HRESULT IStream_CopyTo_Proxy(IStream*, IStream*, ULARGE_INTEGER, ULARGE_INTEGER*, ULARGE_INTEGER*); +HRESULT IStream_CopyTo_Stub(IStream*, IStream*, ULARGE_INTEGER, ULARGE_INTEGER*, ULARGE_INTEGER*); +HRESULT IEnumSTATSTG_Next_Proxy(IEnumSTATSTG*, ULONG, STATSTG*, ULONG*); +HRESULT IEnumSTATSTG_Next_Stub(IEnumSTATSTG*, ULONG, STATSTG*, ULONG*); +HRESULT IStorage_OpenStream_Proxy(IStorage*, OLECHAR*, void*, DWORD, DWORD, IStream**); +HRESULT IStorage_OpenStream_Stub(IStorage*, OLECHAR*, uint, BYTE*, DWORD, DWORD, IStream** ); +HRESULT IStorage_EnumElements_Proxy(IStorage*, DWORD, void*, DWORD, IEnumSTATSTG**); +HRESULT IStorage_EnumElements_Stub(IStorage*, DWORD, uint, BYTE*, DWORD, IEnumSTATSTG**); +HRESULT ILockBytes_ReadAt_Proxy(ILockBytes*, ULARGE_INTEGER, void*, ULONG, ULONG*); +HRESULT ILockBytes_ReadAt_Stub(ILockBytes*, ULARGE_INTEGER, BYTE*, ULONG, ULONG*); +HRESULT ILockBytes_WriteAt_Proxy(ILockBytes*, ULARGE_INTEGER, CPtr!(void), ULONG, ULONG*); +HRESULT ILockBytes_WriteAt_Stub(ILockBytes*, ULARGE_INTEGER, BYTE*, ULONG, ULONG*); +} ++/ ADDED src/win32/objsafe.d Index: src/win32/objsafe.d ================================================================== --- src/win32/objsafe.d +++ src/win32/objsafe.d @@ -0,0 +1,23 @@ +/***********************************************************************\ +* objsafe.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.objsafe; + +private import win32.basetyps, win32.unknwn, win32.windef; + +enum { + INTERFACESAFE_FOR_UNTRUSTED_CALLER = 1, + INTERFACESAFE_FOR_UNTRUSTED_DATA +} + +interface IObjectSafety : IUnknown { + HRESULT GetInterfaceSafetyOptions(REFIID, DWORD*, DWORD*); + HRESULT SetInterfaceSafetyOptions(REFIID, DWORD, DWORD); +} ADDED src/win32/ocidl.d Index: src/win32/ocidl.d ================================================================== --- src/win32/ocidl.d +++ src/win32/ocidl.d @@ -0,0 +1,471 @@ +/***********************************************************************\ +* ocidl.d * +* * +* Windows API header module * +* Part of the Internet Development SDK * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.ocidl; + +private import win32.ole2, win32.oleidl, win32.oaidl, win32.objfwd, + win32.windef, win32.wtypes; +private import win32.objidl; // for CLIPFORMAT +private import win32.wingdi; // for TEXTMETRICW +private import win32.winuser; // for LPMSG + +interface IBindHost : IUnknown {} + +interface IServiceProvider : IUnknown{ + HRESULT QueryService(REFGUID,REFIID,void**); +} + +/* +// TODO: +//private import win32.servprov; // for IServiceProvider +// private import win32.urlmon; // for IBindHost. This is not included in MinGW. + +// win32.urlmon should contain: +interface IBindHost : IUnknown +{ + HRESULT CreateMoniker(LPOLESTR szName, IBindCtx* pBC, IMoniker** ppmk, DWORD); + HRESULT MonikerBindToObject(IMoniker* pMk, IBindCtx* pBC, IBindStatusCallback* pBSC, REFIID, void** ); + HRESULT MonikerBindToStorage(IMoniker* pMk, IBindCtx* pBC, IBindStatusCallback* pBSC, REFIID, void** ); +} +*/ + + + + +//[Yes] #ifndef OLE2ANSI +alias TEXTMETRICW TEXTMETRICOLE; +//} else { +//alias TEXTMETRIC TEXTMETRICOLE; +//} +alias TEXTMETRICOLE* LPTEXTMETRICOLE; + +alias DWORD OLE_COLOR; +alias UINT OLE_HANDLE; +alias int OLE_XPOS_HIMETRIC; +alias int OLE_YPOS_HIMETRIC; +alias int OLE_XSIZE_HIMETRIC; +alias int OLE_YSIZE_HIMETRIC; + +enum READYSTATE { + READYSTATE_UNINITIALIZED = 0, + READYSTATE_LOADING = 1, + READYSTATE_LOADED = 2, + READYSTATE_INTERACTIVE = 3, + READYSTATE_COMPLETE = 4 +} + +enum PROPBAG2_TYPE { + PROPBAG2_TYPE_UNDEFINED, + PROPBAG2_TYPE_DATA, + PROPBAG2_TYPE_URL, + PROPBAG2_TYPE_OBJECT, + PROPBAG2_TYPE_STREAM, + PROPBAG2_TYPE_STORAGE, + PROPBAG2_TYPE_MONIKER // = 6 +} + +struct PROPBAG2 { + DWORD dwType; + VARTYPE vt; + CLIPFORMAT cfType; + DWORD dwHint; + LPOLESTR pstrName; + CLSID clsid; +} + +enum QACONTAINERFLAGS { + QACONTAINER_SHOWHATCHING = 1, + QACONTAINER_SHOWGRABHANDLES = 2, + QACONTAINER_USERMODE = 4, + QACONTAINER_DISPLAYASDEFAULT = 8, + QACONTAINER_UIDEAD = 16, + QACONTAINER_AUTOCLIP = 32, + QACONTAINER_MESSAGEREFLECT = 64, + QACONTAINER_SUPPORTSMNEMONICS = 128 +} + +struct QACONTAINER { + ULONG cbSize = this.sizeof; + IOleClientSite* pClientSite; + IAdviseSinkEx* pAdviseSink; + IPropertyNotifySink* pPropertyNotifySink; + IUnknown* pUnkEventSink; + DWORD dwAmbientFlags; + OLE_COLOR colorFore; + OLE_COLOR colorBack; + IFont* pFont; + IOleUndoManager* pUndoMgr; + DWORD dwAppearance; + LONG lcid; + HPALETTE hpal; + IBindHost* pBindHost; + IOleControlSite* pOleControlSite; + IServiceProvider* pServiceProvider; +} + +struct QACONTROL { + ULONG cbSize = this.sizeof; + DWORD dwMiscStatus; + DWORD dwViewStatus; + DWORD dwEventCookie; + DWORD dwPropNotifyCookie; + DWORD dwPointerActivationPolicy; +} + +struct POINTF { + float x; + float y; +} +alias POINTF* LPPOINTF; + +struct CONTROLINFO { + ULONG cb; + HACCEL hAccel; + USHORT cAccel; + DWORD dwFlags; +} +alias CONTROLINFO* LPCONTROLINFO; + +struct CONNECTDATA { + LPUNKNOWN pUnk; + DWORD dwCookie; +} +alias CONNECTDATA* LPCONNECTDATA; + +struct LICINFO { + int cbLicInfo; + BOOL fRuntimeKeyAvail; + BOOL fLicVerified; +} +alias LICINFO* LPLICINFO; + +struct CAUUID { + ULONG cElems; + GUID* pElems; +} +alias CAUUID* LPCAUUID; + +struct CALPOLESTR { + ULONG cElems; + LPOLESTR* pElems; +} +alias CALPOLESTR* LPCALPOLESTR; + +struct CADWORD { + ULONG cElems; + DWORD* pElems; +} +alias CADWORD* LPCADWORD; + +struct PROPPAGEINFO { + ULONG cb; + LPOLESTR pszTitle; + SIZE size; + LPOLESTR pszDocString; + LPOLESTR pszHelpFile; + DWORD dwHelpContext; +} +alias PROPPAGEINFO* LPPROPPAGEINFO; + +interface IOleControl : IUnknown { + HRESULT GetControlInfo(LPCONTROLINFO); + HRESULT OnMnemonic(LPMSG); + HRESULT OnAmbientPropertyChange(DISPID); + HRESULT FreezeEvents(BOOL); +} + +interface IOleControlSite : IUnknown { + HRESULT OnControlInfoChanged(); + HRESULT LockInPlaceActive(BOOL); + HRESULT GetExtendedControl(LPDISPATCH*); + HRESULT TransformCoords(POINTL*, POINTF*, DWORD); + HRESULT TranslateAccelerator(LPMSG, DWORD); + HRESULT OnFocus(BOOL); + HRESULT ShowPropertyFrame(); +} + +interface ISimpleFrameSite : IUnknown { + HRESULT PreMessageFilter(HWND, UINT, WPARAM, LPARAM, LRESULT*, PDWORD); + HRESULT PostMessageFilter(HWND, UINT, WPARAM, LPARAM, LRESULT*, DWORD); +} + +interface IErrorLog : IUnknown { + HRESULT AddError(LPCOLESTR, LPEXCEPINFO); +} +alias IErrorLog LPERRORLOG; + +interface IPropertyBag : IUnknown { + HRESULT Read(LPCOLESTR, LPVARIANT, LPERRORLOG); + HRESULT Write(LPCOLESTR, LPVARIANT); +} +alias IPropertyBag LPPROPERTYBAG; + +interface IPropertyBag2 : IUnknown { + HRESULT Read(ULONG, PROPBAG2*, LPERRORLOG, VARIANT*, HRESULT*); + HRESULT Write(ULONG, PROPBAG2*, VARIANT*); + HRESULT CountProperties(ULONG*); + HRESULT GetPropertyInfo(ULONG, ULONG, PROPBAG2*, ULONG*); + HRESULT LoadObject(LPCOLESTR, DWORD, IUnknown*, LPERRORLOG); +} +alias IPropertyBag2 LPPROPERTYBAG2; + +interface IPersistPropertyBag : IPersist { + HRESULT InitNew(); + HRESULT Load(LPPROPERTYBAG, LPERRORLOG); + HRESULT Save(LPPROPERTYBAG, BOOL, BOOL); +} + +interface IPersistPropertyBag2 : IPersist { + HRESULT InitNew(); + HRESULT Load(LPPROPERTYBAG2, LPERRORLOG); + HRESULT Save(LPPROPERTYBAG2, BOOL, BOOL); + HRESULT IsDirty(); +} + +interface IPersistStreamInit : IPersist { + HRESULT IsDirty(); + HRESULT Load(LPSTREAM); + HRESULT Save(LPSTREAM, BOOL); + HRESULT GetSizeMax(PULARGE_INTEGER); + HRESULT InitNew(); +} + +interface IPersistMemory : IPersist { + HRESULT IsDirty(); + HRESULT Load(PVOID, ULONG); + HRESULT Save(PVOID, BOOL, ULONG); + HRESULT GetSizeMax(PULONG); + HRESULT InitNew(); +} + +interface IPropertyNotifySink : IUnknown { + HRESULT OnChanged(DISPID); + HRESULT OnRequestEdit(DISPID); +} + +interface IProvideClassInfo : IUnknown { + HRESULT GetClassInfo(LPTYPEINFO*); +} + +interface IProvideClassInfo2 : IProvideClassInfo { + HRESULT GetGUID(DWORD, GUID*); +} + +interface IConnectionPointContainer : IUnknown { + HRESULT EnumConnectionPoints(LPENUMCONNECTIONPOINTS*); + HRESULT FindConnectionPoint(REFIID, LPCONNECTIONPOINT*); +} + +interface IEnumConnectionPoints : IUnknown { + HRESULT Next(ULONG, LPCONNECTIONPOINT*, ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(LPENUMCONNECTIONPOINTS*); +} +alias IEnumConnectionPoints LPENUMCONNECTIONPOINTS; + +interface IConnectionPoint : IUnknown { + HRESULT GetConnectionInterface(IID*); + HRESULT GetConnectionPointContainer(IConnectionPointContainer**); + HRESULT Advise(LPUNKNOWN, PDWORD); + HRESULT Unadvise(DWORD); + HRESULT EnumConnections(LPENUMCONNECTIONS*); +} +alias IConnectionPoint LPCONNECTIONPOINT; + +interface IEnumConnections : IUnknown { + HRESULT Next(ULONG, LPCONNECTDATA, PULONG); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(LPENUMCONNECTIONS*); +} +alias IEnumConnections LPENUMCONNECTIONS; + +interface IClassFactory2 : IClassFactory { + HRESULT GetLicInfo(LPLICINFO); + HRESULT RequestLicKey(DWORD, BSTR*); + HRESULT CreateInstanceLic(LPUNKNOWN, LPUNKNOWN, REFIID, BSTR, PVOID*); +} + +interface ISpecifyPropertyPages : IUnknown { + HRESULT GetPages(CAUUID*); +} + +interface IPerPropertyBrowsing : IUnknown { + HRESULT GetDisplayString(DISPID, BSTR*); + HRESULT MapPropertyToPage(DISPID, LPCLSID); + HRESULT GetPredefinedStrings(DISPID, CALPOLESTR*, CADWORD*); + HRESULT GetPredefinedValue(DISPID, DWORD, VARIANT*); +} + +interface IPropertyPageSite : IUnknown { + HRESULT OnStatusChange(DWORD); + HRESULT GetLocaleID(LCID*); + HRESULT GetPageContainer(LPUNKNOWN*); + HRESULT TranslateAccelerator(LPMSG); +} +alias IPropertyPageSite LPPROPERTYPAGESITE; + +interface IPropertyPage : IUnknown { + HRESULT SetPageSite(LPPROPERTYPAGESITE); + HRESULT Activate(HWND, LPCRECT, BOOL); + HRESULT Deactivate(); + HRESULT GetPageInfo(LPPROPPAGEINFO); + HRESULT SetObjects(ULONG, LPUNKNOWN*); + HRESULT Show(UINT); + HRESULT Move(LPCRECT); + HRESULT IsPageDirty(); + HRESULT Apply(); + HRESULT Help(LPCOLESTR); + HRESULT TranslateAccelerator(LPMSG); +} + + +interface IPropertyPage2 : IPropertyPage +{ HRESULT EditProperty(DISPID); +} + +interface IFont : IUnknown { + HRESULT get_Name(BSTR*); + HRESULT put_Name(BSTR); + HRESULT get_Size(CY*); + HRESULT put_Size(CY); + HRESULT get_Bold(BOOL*); + HRESULT put_Bold(BOOL); + HRESULT get_Italic(BOOL*); + HRESULT put_Italic(BOOL); + HRESULT get_Underline(BOOL*); + HRESULT put_Underline(BOOL); + HRESULT get_Strikethrough(BOOL*); + HRESULT put_Strikethrough(BOOL); + HRESULT get_Weight(short*); + HRESULT put_Weight(short); + HRESULT get_Charset(short*); + HRESULT put_Charset(short); + HRESULT get_hFont(HFONT*); + HRESULT Clone(IFont**); + HRESULT IsEqual(IFont*); + HRESULT SetRatio(int, int); + HRESULT QueryTextMetrics(LPTEXTMETRICOLE); + HRESULT AddRefHfont(HFONT); + HRESULT ReleaseHfont(HFONT); + HRESULT SetHdc(HDC); +} +alias IFont LPFONT; + +interface IFontDisp : IDispatch { +} +alias IFontDisp LPFONTDISP; + +interface IPicture : IUnknown { + HRESULT get_Handle(OLE_HANDLE*); + HRESULT get_hPal(OLE_HANDLE*); + HRESULT get_Type(short*); + HRESULT get_Width(OLE_XSIZE_HIMETRIC*); + HRESULT get_Height(OLE_YSIZE_HIMETRIC*); + HRESULT Render(HDC, int, int, int, int, OLE_XPOS_HIMETRIC, + OLE_YPOS_HIMETRIC, OLE_XSIZE_HIMETRIC, OLE_YSIZE_HIMETRIC, LPCRECT); + HRESULT set_hPal(OLE_HANDLE); + HRESULT get_CurDC(HDC*); + HRESULT SelectPicture(HDC, HDC*, OLE_HANDLE*); + HRESULT get_KeepOriginalFormat(BOOL*); + HRESULT put_KeepOriginalFormat(BOOL); + HRESULT PictureChanged(); + HRESULT SaveAsFile(LPSTREAM, BOOL, LONG*); + HRESULT get_Attributes(PDWORD); +} + +interface IPictureDisp : IDispatch { +} + +interface IOleInPlaceSiteEx : IOleInPlaceSite { + HRESULT OnInPlaceActivateEx(BOOL*, DWORD); + HRESULT OnInPlaceDeactivateEx(BOOL); + HRESULT RequestUIActivate(); +} + +interface IObjectWithSite : IUnknown { + HRESULT SetSite(IUnknown*); + HRESULT GetSite(REFIID, void**); +} + +interface IOleInPlaceSiteWindowless : IOleInPlaceSiteEx { + HRESULT CanWindowlessActivate(); + HRESULT GetCapture(); + HRESULT SetCapture(BOOL); + HRESULT GetFocus(); + HRESULT SetFocus(BOOL); + HRESULT GetDC(LPCRECT, DWORD, HDC*); + HRESULT ReleaseDC(HDC); + HRESULT InvalidateRect(LPCRECT, BOOL); + HRESULT InvalidateRgn(HRGN, BOOL); + HRESULT ScrollRect(INT, INT, LPCRECT, LPCRECT); + HRESULT AdjustRect(LPCRECT); + HRESULT OnDefWindowMessage(UINT, WPARAM, LPARAM, LRESULT*); +} + +interface IAdviseSinkEx : IUnknown { + void OnDataChange(FORMATETC*, STGMEDIUM*); + void OnViewChange(DWORD, LONG); + void OnRename(IMoniker*); + void OnSave(); + void OnClose(); + HRESULT OnViewStatusChange(DWORD); +} + +interface IPointerInactive : IUnknown { + HRESULT GetActivationPolicy(DWORD*); + HRESULT OnInactiveMouseMove(LPCRECT, LONG, LONG, DWORD); + HRESULT OnInactiveSetCursor(LPCRECT, LONG, LONG, DWORD, BOOL); +} + +interface IOleUndoUnit : IUnknown { + HRESULT Do(LPOLEUNDOMANAGER); + HRESULT GetDescription(BSTR*); + HRESULT GetUnitType(CLSID*, LONG*); + HRESULT OnNextAdd(); +} + +interface IOleParentUndoUnit : IOleUndoUnit { + HRESULT Open(IOleParentUndoUnit*); + HRESULT Close(IOleParentUndoUnit*, BOOL); + HRESULT Add(IOleUndoUnit*); + HRESULT FindUnit(IOleUndoUnit*); + HRESULT GetParentState(DWORD*); +} + +interface IEnumOleUndoUnits : IUnknown { + HRESULT Next(ULONG, IOleUndoUnit**, ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(IEnumOleUndoUnits**); +} + +interface IOleUndoManager : IUnknown { + HRESULT Open(IOleParentUndoUnit*); + HRESULT Close(IOleParentUndoUnit*, BOOL); + HRESULT Add(IOleUndoUnit*); + HRESULT GetOpenParentState(DWORD*); + HRESULT DiscardFrom(IOleUndoUnit*); + HRESULT UndoTo(IOleUndoUnit*); + HRESULT RedoTo(IOleUndoUnit*); + HRESULT EnumUndoable(IEnumOleUndoUnits**); + HRESULT EnumRedoable(IEnumOleUndoUnits**); + HRESULT GetLastUndoDescription(BSTR*); + HRESULT GetLastRedoDescription(BSTR*); + HRESULT Enable(BOOL); +} +alias IOleUndoManager LPOLEUNDOMANAGER; + +interface IQuickActivate : IUnknown { + HRESULT QuickActivate(QACONTAINER*, QACONTROL*); + HRESULT SetContentExtent(LPSIZEL); + HRESULT GetContentExtent(LPSIZEL); +} ADDED src/win32/odbcinst.d Index: src/win32/odbcinst.d ================================================================== --- src/win32/odbcinst.d +++ src/win32/odbcinst.d @@ -0,0 +1,166 @@ +/***********************************************************************\ +* odbcinst.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.odbcinst; + +import win32.sql; +private import win32.windef; + +/* FIXME: The Unicode/Ansi functions situation is a mess. How do the xxxA + * versions of these functions fit into the scheme? + */ + +// SQLConfigDataSource() +enum : WORD { + ODBC_ADD_DSN = 1, + ODBC_CONFIG_DSN = 2, + ODBC_REMOVE_DSN = 3, + ODBC_ADD_SYS_DSN = 4, + ODBC_CONFIG_SYS_DSN = 5, + ODBC_REMOVE_SYS_DSN = 6, + ODBC_REMOVE_DEFAULT_DSN = 7 +} + +// ODBC 3.0+ +enum : WORD { + ODBC_INSTALL_INQUIRY = 1, + ODBC_INSTALL_COMPLETE = 2 +} + +// ODBC 2.5+ +enum : WORD { + ODBC_INSTALL_DRIVER = 1, + ODBC_REMOVE_DRIVER = 2, + ODBC_CONFIG_DRIVER = 3, + ODBC_CONFIG_DRIVER_MAX = 100 +} + +// ODBC 3.0+ +// SQLSetConfigMode() +enum : UWORD { + ODBC_BOTH_DSN = 0, + ODBC_USER_DSN = 1, + ODBC_SYSTEM_DSN = 2 +} + +enum : DWORD { + ODBC_ERROR_GENERAL_ERR = 1, + ODBC_ERROR_INVALID_BUFF_LEN = 2, + ODBC_ERROR_INVALID_HWND = 3, + ODBC_ERROR_INVALID_STR = 4, + ODBC_ERROR_INVALID_REQUEST_TYPE = 5, + ODBC_ERROR_COMPONENT_NOT_FOUND = 6, + ODBC_ERROR_INVALID_NAME = 7, + ODBC_ERROR_INVALID_KEYWORD_VALUE = 8, + ODBC_ERROR_INVALID_DSN = 9, + ODBC_ERROR_INVALID_INF = 10, + ODBC_ERROR_REQUEST_FAILED = 11, + ODBC_ERROR_INVALID_PATH = 12, + ODBC_ERROR_LOAD_LIB_FAILED = 13, + ODBC_ERROR_INVALID_PARAM_SEQUENCE = 14, + ODBC_ERROR_INVALID_LOG_FILE = 15, + ODBC_ERROR_USER_CANCELED = 16, + ODBC_ERROR_USAGE_UPDATE_FAILED = 17, + ODBC_ERROR_CREATE_DSN_FAILED = 18, + ODBC_ERROR_WRITING_SYSINFO_FAILED = 19, + ODBC_ERROR_REMOVE_DSN_FAILED = 20, + ODBC_ERROR_OUT_OF_MEM = 21, + ODBC_ERROR_OUTPUT_STRING_TRUNCATED = 22 +} + +extern (Windows): +BOOL ConfigDSN(HWND,WORD,LPCSTR,LPCSTR); +BOOL ConfigDSNW(HWND,WORD,LPCWSTR,LPCWSTR); +BOOL ConfigTranslator(HWND,DWORD*); +BOOL SQLConfigDataSource(HWND,WORD,LPCSTR,LPCSTR); +BOOL SQLConfigDataSourceW(HWND,WORD,LPCWSTR,LPCWSTR); +BOOL SQLCreateDataSource(HWND,LPCSTR); +BOOL SQLCreateDataSourceW(HWND,LPCWSTR); +BOOL SQLGetAvailableDrivers(LPCSTR,LPSTR,WORD,WORD*); +BOOL SQLGetAvailableDriversW(LPCWSTR,LPWSTR,WORD,WORD*); +BOOL SQLGetInstalledDrivers(LPSTR,WORD,WORD*); +BOOL SQLGetInstalledDriversW(LPWSTR,WORD,WORD*); +int SQLGetPrivateProfileString(LPCSTR,LPCSTR,LPCSTR,LPSTR,int,LPCSTR); +int SQLGetPrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,int,LPCWSTR); +BOOL SQLGetTranslator(HWND,LPSTR,WORD,WORD*,LPSTR,WORD,WORD*,DWORD*); +BOOL SQLGetTranslatorW(HWND,LPWSTR,WORD,WORD*,LPWSTR,WORD,WORD*,DWORD*); +BOOL SQLInstallDriver(LPCSTR,LPCSTR,LPSTR,WORD,WORD*); +BOOL SQLInstallDriverManager(LPSTR,WORD,WORD*); +BOOL SQLInstallDriverManagerW(LPWSTR,WORD,WORD*); +BOOL SQLInstallDriverW(LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*); +BOOL SQLInstallODBC(HWND,LPCSTR,LPCSTR,LPCSTR); +BOOL SQLInstallODBCW(HWND,LPCWSTR,LPCWSTR,LPCWSTR); +BOOL SQLManageDataSources(HWND); +BOOL SQLRemoveDefaultDataSource(); +BOOL SQLRemoveDSNFromIni(LPCSTR); +BOOL SQLRemoveDSNFromIniW(LPCWSTR); +BOOL SQLValidDSN(LPCSTR); +BOOL SQLValidDSNW(LPCWSTR); +BOOL SQLWriteDSNToIni(LPCSTR,LPCSTR); +BOOL SQLWriteDSNToIniW(LPCWSTR,LPCWSTR); +BOOL SQLWritePrivateProfileString(LPCSTR,LPCSTR,LPCSTR,LPCSTR); +BOOL SQLWritePrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR); + +static if (ODBCVER >= 0x0250) { + BOOL ConfigDriver(HWND,WORD,LPCSTR,LPCSTR,LPSTR,WORD,WORD*); + BOOL ConfigDriverW(HWND,WORD,LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*); + BOOL SQLConfigDriver(HWND,WORD,LPCSTR,LPCSTR,LPSTR,WORD,WORD*); + BOOL SQLConfigDriverW(HWND,WORD,LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*); + deprecated { + BOOL SQLInstallTranslator(LPCSTR,LPCSTR,LPCSTR,LPSTR,WORD,WORD*,WORD,LPDWORD); + BOOL SQLInstallTranslatorW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*,WORD,LPDWORD); + } + BOOL SQLRemoveDriver(LPCSTR,BOOL,LPDWORD); + BOOL SQLRemoveDriverManager(LPDWORD); + BOOL SQLRemoveDriverW(LPCWSTR,BOOL,LPDWORD); + BOOL SQLRemoveTranslator(LPCSTR,LPDWORD); + BOOL SQLRemoveTranslatorW(LPCWSTR,LPDWORD); +} +static if (ODBCVER >= 0x0300) { + BOOL SQLGetConfigMode(UWORD*); + BOOL SQLInstallDriverEx(LPCSTR,LPCSTR,LPSTR,WORD,WORD*,WORD,LPDWORD); + BOOL SQLInstallDriverExW(LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*,WORD,LPDWORD); + SQLRETURN SQLInstallerError(WORD,DWORD*,LPSTR,WORD,WORD*); + SQLRETURN SQLInstallerErrorW(WORD,DWORD*,LPWSTR,WORD,WORD*); + BOOL SQLInstallTranslatorEx(LPCSTR,LPCSTR,LPSTR,WORD,WORD*,WORD,LPDWORD); + BOOL SQLInstallTranslatorExW(LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*,WORD,LPDWORD); + SQLRETURN SQLPostInstallerError(DWORD,LPCSTR); + SQLRETURN SQLPostInstallerErrorW(DWORD,LPCWSTR); + BOOL SQLReadFileDSN(LPCSTR,LPCSTR,LPCSTR,LPSTR,WORD,WORD*); + BOOL SQLReadFileDSNW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*); + BOOL SQLSetConfigMode(UWORD); + BOOL SQLWriteFileDSN(LPCSTR,LPCSTR,LPCSTR,LPCSTR); + BOOL SQLWriteFileDSNW(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR); +} + +version (Unicode) { + alias SQLConfigDataSourceW SQLConfigDataSource; + alias SQLConfigDriverW SQLConfigDriver; + alias SQLCreateDataSourceW SQLCreateDataSource; + alias SQLGetAvailableDriversW SQLGetAvailableDrivers; + alias SQLGetInstalledDriversW SQLGetInstalledDrivers; + alias SQLGetPrivateProfileStringW SQLGetPrivateProfileString; + alias SQLGetTranslatorW SQLGetTranslator; + alias SQLInstallDriverW SQLInstallDriver; + alias SQLInstallDriverExW SQLInstallDriverEx; + alias SQLInstallDriverManagerW SQLInstallDriverManager; + alias SQLInstallerErrorW SQLInstallerError; + alias SQLInstallODBCW SQLInstallODBC; + deprecated alias SQLInstallTranslatorW SQLInstallTranslator; + alias SQLInstallTranslatorExW SQLInstallTranslatorEx; + alias SQLPostInstallerErrorW SQLPostInstallerError; + alias SQLReadFileDSNW SQLReadFileDSN; + alias SQLRemoveDriverW SQLRemoveDriver; + alias SQLRemoveDSNFromIniW SQLRemoveDSNFromIni; + alias SQLRemoveTranslatorW SQLRemoveTranslator; + alias SQLValidDSNW SQLValidDSN; + alias SQLWriteDSNToIniW SQLWriteDSNToIni; + alias SQLWriteFileDSNW SQLWriteFileDSN; + alias SQLWritePrivateProfileStringW SQLWritePrivateProfileString; +} ADDED src/win32/ole.d Index: src/win32/ole.d ================================================================== --- src/win32/ole.d +++ src/win32/ole.d @@ -0,0 +1,362 @@ +/***********************************************************************\ +* ole.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.ole; + +private import win32.windef, win32.wingdi, win32.uuid; + +alias LPCSTR OLE_LPCSTR; + +/+#define LRESULT LONG +#define HGLOBAL HANDLE+/ + +enum { + OT_LINK = 1, + OT_EMBEDDED, + OT_STATIC +} + +const OLEVERB_PRIMARY = 0; +const OF_SET = 1; +const OF_GET = 2; +const OF_HANDLER = 4; + +struct OLETARGETDEVICE { + USHORT otdDeviceNameOffset; + USHORT otdDriverNameOffset; + USHORT otdPortNameOffset; + USHORT otdExtDevmodeOffset; + USHORT otdExtDevmodeSize; + USHORT otdEnvironmentOffset; + USHORT otdEnvironmentSize; + BYTE _otdData; + BYTE* otdData() { return &_otdData; } +} +alias OLETARGETDEVICE* LPOLETARGETDEVICE; + +enum OLESTATUS { + OLE_OK, + OLE_WAIT_FOR_RELEASE, + OLE_BUSY, + OLE_ERROR_PROTECT_ONLY, + OLE_ERROR_MEMORY, + OLE_ERROR_STREAM, + OLE_ERROR_STATIC, + OLE_ERROR_BLANK, + OLE_ERROR_DRAW, + OLE_ERROR_METAFILE, + OLE_ERROR_ABORT, + OLE_ERROR_CLIPBOARD, + OLE_ERROR_FORMAT, + OLE_ERROR_OBJECT, + OLE_ERROR_OPTION, + OLE_ERROR_PROTOCOL, + OLE_ERROR_ADDRESS, + OLE_ERROR_NOT_EQUAL, + OLE_ERROR_HANDLE, + OLE_ERROR_GENERIC, + OLE_ERROR_CLASS, + OLE_ERROR_SYNTAX, + OLE_ERROR_DATATYPE, + OLE_ERROR_PALETTE, + OLE_ERROR_NOT_LINK, + OLE_ERROR_NOT_EMPTY, + OLE_ERROR_SIZE, + OLE_ERROR_DRIVE, + OLE_ERROR_NETWORK, + OLE_ERROR_NAME, + OLE_ERROR_TEMPLATE, + OLE_ERROR_NEW, + OLE_ERROR_EDIT, + OLE_ERROR_OPEN, + OLE_ERROR_NOT_OPEN, + OLE_ERROR_LAUNCH, + OLE_ERROR_COMM, + OLE_ERROR_TERMINATE, + OLE_ERROR_COMMAND, + OLE_ERROR_SHOW, + OLE_ERROR_DOVERB, + OLE_ERROR_ADVISE_NATIVE, + OLE_ERROR_ADVISE_PICT, + OLE_ERROR_ADVISE_RENAME, + OLE_ERROR_POKE_NATIVE, + OLE_ERROR_REQUEST_NATIVE, + OLE_ERROR_REQUEST_PICT, + OLE_ERROR_SERVER_BLOCKED, + OLE_ERROR_REGISTRATION, + OLE_ERROR_ALREADY_REGISTERED, + OLE_ERROR_TASK, + OLE_ERROR_OUTOFDATE, + OLE_ERROR_CANT_UPDATE_CLIENT, + OLE_ERROR_UPDATE, + OLE_ERROR_SETDATA_FORMAT, + OLE_ERROR_STATIC_FROM_OTHER_OS, + OLE_ERROR_FILE_VER, + OLE_WARN_DELETE_DATA = 1000 +} + +enum OLE_NOTIFICATION { + OLE_CHANGED, + OLE_SAVED, + OLE_CLOSED, + OLE_RENAMED, + OLE_QUERY_PAINT, + OLE_RELEASE, + OLE_QUERY_RETRY +} + +enum OLE_RELEASE_METHOD { + OLE_NONE, + OLE_DELETE, + OLE_LNKPASTE, + OLE_EMBPASTE, + OLE_SHOW, + OLE_RUN, + OLE_ACTIVATE, + OLE_UPDATE, + OLE_CLOSE, + OLE_RECONNECT, + OLE_SETUPDATEOPTIONS, + OLE_SERVERUNLAUNCH, + OLE_LOADFROMSTREAM, + OLE_SETDATA, + OLE_REQUESTDATA, + OLE_OTHER, + OLE_CREATE, + OLE_CREATEFROMTEMPLATE, + OLE_CREATELINKFROMFILE, + OLE_COPYFROMLNK, + OLE_CREATEFROMFILE, + OLE_CREATEINVISIBLE +} + +enum OLEOPT_RENDER { + olerender_none, + olerender_draw, + olerender_format +} + +alias WORD OLECLIPFORMAT; + +enum OLEOPT_UPDATE { + oleupdate_always, + oleupdate_onsave, + oleupdate_oncall, +// #ifdef OLE_INTERNAL + oleupdate_onclose +// #endif +} + +alias HANDLE HOBJECT; +alias LONG LHSERVER, LHCLIENTDOC, LHSERVERDOC; + +struct OLEOBJECTVTBL { + extern (Windows) { + void* function(LPOLEOBJECT, OLE_LPCSTR) QueryProtocol; + OLESTATUS function(LPOLEOBJECT) Release; + OLESTATUS function(LPOLEOBJECT, BOOL) Show; + OLESTATUS function(LPOLEOBJECT, UINT, BOOL, BOOL) DoVerb; + OLESTATUS function(LPOLEOBJECT, OLECLIPFORMAT, HANDLE*) GetData; + OLESTATUS function(LPOLEOBJECT, OLECLIPFORMAT, HANDLE) SetData; + OLESTATUS function(LPOLEOBJECT, HGLOBAL) SetTargetDevice; + OLESTATUS function(LPOLEOBJECT, RECT*) SetBounds; + OLECLIPFORMAT function(LPOLEOBJECT, OLECLIPFORMAT) EnumFormats; + OLESTATUS function(LPOLEOBJECT, LOGPALETTE*) SetColorScheme; +//#ifndef SERVERONLY + OLESTATUS function(LPOLEOBJECT) Delete; + OLESTATUS function(LPOLEOBJECT, OLE_LPCSTR, OLE_LPCSTR) SetHostNames; + OLESTATUS function(LPOLEOBJECT, LPOLESTREAM) SaveToStream; + OLESTATUS function(LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, OLE_LPCSTR, + LPOLEOBJECT*) Clone; + OLESTATUS function(LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, OLE_LPCSTR, + LPOLEOBJECT*) CopyFromLink; + OLESTATUS function(LPOLEOBJECT, LPOLEOBJECT) Equal; + OLESTATUS function(LPOLEOBJECT) CopyToClipboard; + OLESTATUS function(LPOLEOBJECT, HDC, RECT*, RECT*, HDC) Draw; + OLESTATUS function(LPOLEOBJECT, UINT, BOOL, BOOL, HWND, RECT*) + Activate; + OLESTATUS function(LPOLEOBJECT, HGLOBAL, UINT) Execute; + OLESTATUS function(LPOLEOBJECT) Close; + OLESTATUS function(LPOLEOBJECT) Update; + OLESTATUS function(LPOLEOBJECT) Reconnect; + OLESTATUS function(LPOLEOBJECT, OLE_LPCSTR, LPOLECLIENT, LHCLIENTDOC, + OLE_LPCSTR, LPOLEOBJECT*) ObjectConvert; + OLESTATUS function(LPOLEOBJECT, OLEOPT_UPDATE*) GetLinkUpdateOptions; + OLESTATUS function(LPOLEOBJECT, OLEOPT_UPDATE) SetLinkUpdateOptions; + OLESTATUS function(LPOLEOBJECT, OLE_LPCSTR) Rename; + OLESTATUS function(LPOLEOBJECT, LPSTR, UINT*) QueryName; + OLESTATUS function(LPOLEOBJECT, LONG*) QueryType; + OLESTATUS function(LPOLEOBJECT, RECT*) QueryBounds; + OLESTATUS function(LPOLEOBJECT, DWORD*) QuerySize; + OLESTATUS function(LPOLEOBJECT) QueryOpen; + OLESTATUS function(LPOLEOBJECT) QueryOutOfDate; + OLESTATUS function(LPOLEOBJECT) QueryReleaseStatus; + OLESTATUS function(LPOLEOBJECT) QueryReleaseError; + OLE_RELEASE_METHOD function(LPOLEOBJECT) QueryReleaseMethod; + OLESTATUS function(LPOLEOBJECT, OLECLIPFORMAT) RequestData; + OLESTATUS function(LPOLEOBJECT, UINT, LONG*) ObjectLong; + OLESTATUS function(LPOLEOBJECT, HANDLE, LPOLECLIENT, BOOL) ChangeData; +//#endif + } +} +alias OLEOBJECTVTBL* LPOLEOBJECTVTBL; + +//#ifndef OLE_INTERNAL +struct OLEOBJECT { + LPOLEOBJECTVTBL lpvtbl; +} +alias OLEOBJECT* LPOLEOBJECT; +//#endif + +struct OLECLIENTVTBL { + int function(LPOLECLIENT, OLE_NOTIFICATION, LPOLEOBJECT) CallBack; +} +alias OLECLIENTVTBL* LPOLECLIENTVTBL; + +struct OLECLIENT { + LPOLECLIENTVTBL lpvtbl; +} +alias OLECLIENT* LPOLECLIENT; + +struct OLESTREAMVTBL { + DWORD function(LPOLESTREAM, void*, DWORD) Get; + DWORD function(LPOLESTREAM, void*, DWORD) Put; +} +alias OLESTREAMVTBL* LPOLESTREAMVTBL; + +struct OLESTREAM { + LPOLESTREAMVTBL lpstbl; +} +alias OLESTREAM* LPOLESTREAM; + +enum OLE_SERVER_USE { + OLE_SERVER_MULTI, + OLE_SERVER_SINGLE +} + +struct OLESERVERVTBL { + OLESTATUS function(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, LPOLESERVERDOC*) + Open; + OLESTATUS function(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR, + LPOLESERVERDOC*) Create; + OLESTATUS function(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR, + OLE_LPCSTR, LPOLESERVERDOC*) CreateFromTemplate; + OLESTATUS function(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR, + LPOLESERVERDOC*) Edit; + OLESTATUS function(LPOLESERVER) Exit; + OLESTATUS function(LPOLESERVER) Release; + OLESTATUS function(LPOLESERVER, HGLOBAL) Execute; +} +alias OLESERVERVTBL* LPOLESERVERVTBL; + +struct OLESERVER { + LPOLESERVERVTBL lpvtbl; +} +alias OLESERVER* LPOLESERVER; + +struct OLESERVERDOCVTBL { + OLESTATUS function(LPOLESERVERDOC) Save; + OLESTATUS function(LPOLESERVERDOC) Close; + OLESTATUS function(LPOLESERVERDOC, OLE_LPCSTR, OLE_LPCSTR) SetHostNames; + OLESTATUS function(LPOLESERVERDOC, RECT*) SetDocDimensions; + OLESTATUS function(LPOLESERVERDOC, OLE_LPCSTR, LPOLEOBJECT*, LPOLECLIENT) + GetObject; + OLESTATUS function(LPOLESERVERDOC) Release; + OLESTATUS function(LPOLESERVERDOC, LOGPALETTE*) SetColorScheme; + OLESTATUS function(LPOLESERVERDOC, HGLOBAL) Execute; +} +alias OLESERVERDOCVTBL* LPOLESERVERDOCVTBL; + +struct OLESERVERDOC { + LPOLESERVERDOCVTBL lpvtbl; +} +alias OLESERVERDOC* LPOLESERVERDOC; + +extern (Windows) { + OLESTATUS OleDelete(LPOLEOBJECT); + OLESTATUS OleRelease(LPOLEOBJECT); + OLESTATUS OleSaveToStream(LPOLEOBJECT, LPOLESTREAM); + OLESTATUS OleEqual(LPOLEOBJECT, LPOLEOBJECT); + OLESTATUS OleCopyToClipboard(LPOLEOBJECT); + OLESTATUS OleSetHostNames(LPOLEOBJECT, LPCSTR, LPCSTR); + OLESTATUS OleSetTargetDevice(LPOLEOBJECT, HGLOBAL); + OLESTATUS OleSetBounds(LPOLEOBJECT, LPCRECT); + OLESTATUS OleSetColorScheme(LPOLEOBJECT, CPtr!(LOGPALETTE)); + OLESTATUS OleQueryBounds(LPOLEOBJECT, RECT*); + OLESTATUS OleQuerySize(LPOLEOBJECT, DWORD*); + OLESTATUS OleDraw(LPOLEOBJECT, HDC, LPCRECT, LPCRECT, HDC); + OLESTATUS OleQueryOpen(LPOLEOBJECT); + OLESTATUS OleActivate(LPOLEOBJECT, UINT, BOOL, BOOL, HWND, LPCRECT); + OLESTATUS OleExecute(LPOLEOBJECT, HGLOBAL, UINT); + OLESTATUS OleClose(LPOLEOBJECT); + OLESTATUS OleUpdate(LPOLEOBJECT); + OLESTATUS OleReconnect(LPOLEOBJECT); + OLESTATUS OleGetLinkUpdateOptions(LPOLEOBJECT, OLEOPT_UPDATE*); + OLESTATUS OleSetLinkUpdateOptions(LPOLEOBJECT, OLEOPT_UPDATE); + void* OleQueryProtocol(LPOLEOBJECT, LPCSTR); + OLESTATUS OleQueryReleaseStatus(LPOLEOBJECT); + OLESTATUS OleQueryReleaseError(LPOLEOBJECT); + OLE_RELEASE_METHOD OleQueryReleaseMethod(LPOLEOBJECT); + OLESTATUS OleQueryType(LPOLEOBJECT, LONG*); + DWORD OleQueryClientVersion(); + DWORD OleQueryServerVersion(); + OLECLIPFORMAT OleEnumFormats(LPOLEOBJECT, OLECLIPFORMAT); + OLESTATUS OleGetData(LPOLEOBJECT, OLECLIPFORMAT, HANDLE*); + OLESTATUS OleSetData(LPOLEOBJECT, OLECLIPFORMAT, HANDLE); + OLESTATUS OleQueryOutOfDate(LPOLEOBJECT); + OLESTATUS OleRequestData(LPOLEOBJECT, OLECLIPFORMAT); + OLESTATUS OleQueryLinkFromClip(LPCSTR, OLEOPT_RENDER, OLECLIPFORMAT); + OLESTATUS OleQueryCreateFromClip(LPCSTR, OLEOPT_RENDER, OLECLIPFORMAT); + OLESTATUS OleCreateFromClip(LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, + LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT); + OLESTATUS OleCreateLinkFromClip(LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, + LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT); + OLESTATUS OleCreateFromFile(LPCSTR, LPOLECLIENT, LPCSTR, LPCSTR, + LHCLIENTDOC, LPCSTR, LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT); + OLESTATUS OleCreateLinkFromFile(LPCSTR, LPOLECLIENT, LPCSTR, LPCSTR, + LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT); + OLESTATUS OleLoadFromStream(LPOLESTREAM, LPCSTR, LPOLECLIENT, LHCLIENTDOC, + LPCSTR, LPOLEOBJECT*); + OLESTATUS OleCreate(LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC, LPCSTR, + LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT); + OLESTATUS OleCreateInvisible(LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC, + LPCSTR, LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT, BOOL); + OLESTATUS OleCreateFromTemplate(LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC, + LPCSTR, LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT); + OLESTATUS OleClone(LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, LPCSTR, + LPOLEOBJECT*); + OLESTATUS OleCopyFromLink(LPOLEOBJECT, LPCSTR, LPOLECLIENT, LHCLIENTDOC, + LPCSTR, LPOLEOBJECT*); + OLESTATUS OleObjectConvert(LPOLEOBJECT, LPCSTR, LPOLECLIENT, LHCLIENTDOC, + LPCSTR, LPOLEOBJECT*); + OLESTATUS OleRename(LPOLEOBJECT, LPCSTR); + OLESTATUS OleQueryName(LPOLEOBJECT, LPSTR, UINT*); + OLESTATUS OleRevokeObject(LPOLECLIENT); + BOOL OleIsDcMeta(HDC); + OLESTATUS OleRegisterClientDoc(LPCSTR, LPCSTR, LONG, LHCLIENTDOC*); + OLESTATUS OleRevokeClientDoc(LHCLIENTDOC); + OLESTATUS OleRenameClientDoc(LHCLIENTDOC, LPCSTR); + OLESTATUS OleRevertClientDoc(LHCLIENTDOC); + OLESTATUS OleSavedClientDoc(LHCLIENTDOC); + OLESTATUS OleEnumObjects(LHCLIENTDOC, LPOLEOBJECT*); + OLESTATUS OleRegisterServer(LPCSTR, LPOLESERVER, LHSERVER*, HINSTANCE, + OLE_SERVER_USE); + OLESTATUS OleRevokeServer(LHSERVER); + OLESTATUS OleBlockServer(LHSERVER); + OLESTATUS OleUnblockServer(LHSERVER, BOOL*); + OLESTATUS OleLockServer(LPOLEOBJECT, LHSERVER*); + OLESTATUS OleUnlockServer(LHSERVER); + OLESTATUS OleRegisterServerDoc(LHSERVER, LPCSTR, LPOLESERVERDOC, + LHSERVERDOC*); + OLESTATUS OleRevokeServerDoc(LHSERVERDOC); + OLESTATUS OleRenameServerDoc(LHSERVERDOC, LPCSTR); + OLESTATUS OleRevertServerDoc(LHSERVERDOC); + OLESTATUS OleSavedServerDoc(LHSERVERDOC); +} ADDED src/win32/ole2.d Index: src/win32/ole2.d ================================================================== --- src/win32/ole2.d +++ src/win32/ole2.d @@ -0,0 +1,118 @@ +/***********************************************************************\ +* ole2.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.ole2; +pragma(lib, "ole32.lib"); + +public import win32.basetyps, win32.objbase, win32.oleauto, win32.olectlid, + win32.oleidl, win32.unknwn, win32.winerror, win32.uuid; +private import win32.objfwd, win32.objidl, win32.windef, win32.wtypes; +private import win32.winuser; // for LPMSG + +const E_DRAW = VIEW_E_DRAW; + +const DATA_E_FORMATETC = DV_E_FORMATETC; + +enum { + OLEIVERB_PRIMARY = 0, + OLEIVERB_SHOW = -1, + OLEIVERB_OPEN = -2, + OLEIVERB_HIDE = -3, + OLEIVERB_UIACTIVATE = -4, + OLEIVERB_INPLACEACTIVATE = -5, + OLEIVERB_DISCARDUNDOSTATE = -6 +} + +const EMBDHLP_INPROC_HANDLER = 0x0000L; +const EMBDHLP_INPROC_SERVER = 0x0001L; +const EMBDHLP_CREATENOW = 0x00000000L; +const EMBDHLP_DELAYCREATE = 0x00010000L; + +align(8): +struct OLESTREAM { + LPOLESTREAMVTBL lpstbl; +} +alias OLESTREAM* LPOLESTREAM; + +extern (Windows) { + struct OLESTREAMVTBL { + DWORD function (LPOLESTREAM, void*, DWORD) Get; + DWORD function (LPOLESTREAM, CPtr!(void), DWORD) Put; + } +} +alias OLESTREAMVTBL* LPOLESTREAMVTBL; + +extern (Windows) { + HRESULT CreateDataAdviseHolder(LPDATAADVISEHOLDER*); + DWORD OleBuildVersion(); + HRESULT ReadClassStg(LPSTORAGE, CLSID*); + HRESULT WriteClassStg(LPSTORAGE, REFCLSID); + HRESULT ReadClassStm(LPSTREAM, CLSID*); + HRESULT WriteClassStm(LPSTREAM, REFCLSID); + HRESULT WriteFmtUserTypeStg(LPSTORAGE, CLIPFORMAT, LPOLESTR); + HRESULT ReadFmtUserTypeStg(LPSTORAGE, CLIPFORMAT*, LPOLESTR*); + HRESULT OleInitialize(PVOID); + void OleUninitialize(); + HRESULT OleQueryLinkFromData(LPDATAOBJECT); + HRESULT OleQueryCreateFromData(LPDATAOBJECT); + HRESULT OleCreate(REFCLSID, REFIID, DWORD, LPFORMATETC, LPOLECLIENTSITE, LPSTORAGE, PVOID*); + HRESULT OleCreateFromData(LPDATAOBJECT, REFIID, DWORD, LPFORMATETC, LPOLECLIENTSITE, LPSTORAGE, PVOID*); + HRESULT OleCreateLinkFromData(LPDATAOBJECT, REFIID, DWORD, LPFORMATETC, LPOLECLIENTSITE, LPSTORAGE, PVOID*); + HRESULT OleCreateStaticFromData(LPDATAOBJECT, REFIID, DWORD, LPFORMATETC, LPOLECLIENTSITE, LPSTORAGE, PVOID*); + HRESULT OleCreateLink(LPMONIKER, REFIID, DWORD, LPFORMATETC, LPOLECLIENTSITE, LPSTORAGE, PVOID*); + HRESULT OleCreateLinkToFile(LPCOLESTR, REFIID, DWORD, LPFORMATETC, LPOLECLIENTSITE, LPSTORAGE, PVOID*); + HRESULT OleCreateFromFile(REFCLSID, LPCOLESTR, REFIID, DWORD, LPFORMATETC, LPOLECLIENTSITE, LPSTORAGE, PVOID*); + HRESULT OleLoad(LPSTORAGE, REFIID, LPOLECLIENTSITE, PVOID*); + HRESULT OleSave(LPPERSISTSTORAGE, LPSTORAGE, BOOL); + HRESULT OleLoadFromStream(LPSTREAM, REFIID, PVOID*); + HRESULT OleSaveToStream(LPPERSISTSTREAM, LPSTREAM); + HRESULT OleSetContainedObject(LPUNKNOWN, BOOL); + HRESULT OleNoteObjectVisible(LPUNKNOWN, BOOL); + HRESULT RegisterDragDrop(HWND, LPDROPTARGET); + HRESULT RevokeDragDrop(HWND); + HRESULT DoDragDrop(LPDATAOBJECT, LPDROPSOURCE, DWORD, PDWORD); + HRESULT OleSetClipboard(LPDATAOBJECT); + HRESULT OleGetClipboard(LPDATAOBJECT*); + HRESULT OleFlushClipboard(); + HRESULT OleIsCurrentClipboard(LPDATAOBJECT); + HOLEMENU OleCreateMenuDescriptor(HMENU, LPOLEMENUGROUPWIDTHS); + HRESULT OleSetMenuDescriptor(HOLEMENU, HWND, HWND, LPOLEINPLACEFRAME, LPOLEINPLACEACTIVEOBJECT); + HRESULT OleDestroyMenuDescriptor(HOLEMENU); + HRESULT OleTranslateAccelerator(LPOLEINPLACEFRAME, LPOLEINPLACEFRAMEINFO, LPMSG); + HANDLE OleDuplicateData(HANDLE, CLIPFORMAT, UINT); + HRESULT OleDraw(LPUNKNOWN, DWORD, HDC, LPCRECT); + HRESULT OleRun(LPUNKNOWN); + BOOL OleIsRunning(LPOLEOBJECT); + HRESULT OleLockRunning(LPUNKNOWN, BOOL, BOOL); + void ReleaseStgMedium(LPSTGMEDIUM); + HRESULT CreateOleAdviseHolder(LPOLEADVISEHOLDER*); + HRESULT OleCreateDefaultHandler(REFCLSID, LPUNKNOWN, REFIID, PVOID*); + HRESULT OleCreateEmbeddingHelper(REFCLSID, LPUNKNOWN, DWORD, LPCLASSFACTORY, REFIID, PVOID*); + BOOL IsAccelerator(HACCEL, int, LPMSG, WORD*); + HGLOBAL OleGetIconOfFile(LPOLESTR, BOOL); + HGLOBAL OleGetIconOfClass(REFCLSID, LPOLESTR, BOOL); + HGLOBAL OleMetafilePictFromIconAndLabel(HICON, LPOLESTR, LPOLESTR, UINT); + HRESULT OleRegGetUserType(REFCLSID, DWORD, LPOLESTR*); + HRESULT OleRegGetMiscStatus(REFCLSID, DWORD, DWORD*); + HRESULT OleRegEnumFormatEtc (REFCLSID, DWORD, LPENUMFORMATETC*); + HRESULT OleRegEnumVerbs (REFCLSID, LPENUMOLEVERB*); + HRESULT OleConvertOLESTREAMToIStorage(LPOLESTREAM, LPSTORAGE, CPtr!(DVTARGETDEVICE)); + HRESULT OleConvertIStorageToOLESTREAM(LPSTORAGE, LPOLESTREAM); + HRESULT GetHGlobalFromILockBytes(LPLOCKBYTES, HGLOBAL*); + HRESULT CreateILockBytesOnHGlobal(HGLOBAL, BOOL, LPLOCKBYTES*); + HRESULT GetHGlobalFromStream(LPSTREAM, HGLOBAL*); + HRESULT CreateStreamOnHGlobal(HGLOBAL, BOOL, LPSTREAM*); + HRESULT OleDoAutoConvert(LPSTORAGE, LPCLSID); + HRESULT OleGetAutoConvert(REFCLSID, LPCLSID); + HRESULT OleSetAutoConvert(REFCLSID, REFCLSID); + HRESULT GetConvertStg(LPSTORAGE); + HRESULT SetConvertStg(LPSTORAGE, BOOL); + HRESULT OleConvertIStorageToOLESTREAMEx(LPSTORAGE, CLIPFORMAT, LONG, LONG, DWORD, LPSTGMEDIUM, LPOLESTREAM); + HRESULT OleConvertOLESTREAMToIStorageEx(LPOLESTREAM, LPSTORAGE, CLIPFORMAT*, LONG*, LONG*, DWORD*, LPSTGMEDIUM); +} ADDED src/win32/ole2ver.d Index: src/win32/ole2ver.d ================================================================== --- src/win32/ole2ver.d +++ src/win32/ole2ver.d @@ -0,0 +1,14 @@ +/***********************************************************************\ +* ole2ver.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.10 * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.ole2ver; + +// These are apparently not documented on the MSDN site +const rmm = 23; +const rup = 639; ADDED src/win32/oleacc.d Index: src/win32/oleacc.d ================================================================== --- src/win32/oleacc.d +++ src/win32/oleacc.d @@ -0,0 +1,214 @@ +/***********************************************************************\ +* oleacc.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.oleacc; +pragma(lib, "oleacc.lib"); + +private import win32.basetyps, win32.oaidl, win32.unknwn, win32.wtypes, + win32.windef; + +enum { + DISPID_ACC_PARENT = -5000, + DISPID_ACC_CHILDCOUNT = -5001, + DISPID_ACC_CHILD = -5002, + DISPID_ACC_NAME = -5003, + DISPID_ACC_VALUE = -5004, + DISPID_ACC_DESCRIPTION = -5005, + DISPID_ACC_ROLE = -5006, + DISPID_ACC_STATE = -5007, + DISPID_ACC_HELP = -5008, + DISPID_ACC_HELPTOPIC = -5009, + DISPID_ACC_KEYBOARDSHORTCUT = -5010, + DISPID_ACC_FOCUS = -5011, + DISPID_ACC_SELECTION = -5012, + DISPID_ACC_DEFAULTACTION = -5013, + DISPID_ACC_SELECT = -5014, + DISPID_ACC_LOCATION = -5015, + DISPID_ACC_NAVIGATE = -5016, + DISPID_ACC_HITTEST = -5017, + DISPID_ACC_DODEFAULTACTION = -5018 +} + +enum { + NAVDIR_UP = 1, + NAVDIR_DOWN, + NAVDIR_LEFT, + NAVDIR_RIGHT, + NAVDIR_NEXT, + NAVDIR_PREVIOUS, + NAVDIR_FIRSTCHILD, + NAVDIR_LASTCHILD // = 8 +} + +enum { + ROLE_SYSTEM_TITLEBAR = 1, + ROLE_SYSTEM_MENUBAR, + ROLE_SYSTEM_SCROLLBAR, + ROLE_SYSTEM_GRIP, + ROLE_SYSTEM_SOUND, + ROLE_SYSTEM_CURSOR, + ROLE_SYSTEM_CARET, + ROLE_SYSTEM_ALERT, + ROLE_SYSTEM_WINDOW, + ROLE_SYSTEM_CLIENT, + ROLE_SYSTEM_MENUPOPUP, + ROLE_SYSTEM_MENUITEM, + ROLE_SYSTEM_TOOLTIP, + ROLE_SYSTEM_APPLICATION, + ROLE_SYSTEM_DOCUMENT, + ROLE_SYSTEM_PANE, + ROLE_SYSTEM_CHART, + ROLE_SYSTEM_DIALOG, + ROLE_SYSTEM_BORDER, + ROLE_SYSTEM_GROUPING, + ROLE_SYSTEM_SEPARATOR, + ROLE_SYSTEM_TOOLBAR, + ROLE_SYSTEM_STATUSBAR, + ROLE_SYSTEM_TABLE, + ROLE_SYSTEM_COLUMNHEADER, + ROLE_SYSTEM_ROWHEADER, + ROLE_SYSTEM_COLUMN, + ROLE_SYSTEM_ROW, + ROLE_SYSTEM_CELL, + ROLE_SYSTEM_LINK, + ROLE_SYSTEM_HELPBALLOON, + ROLE_SYSTEM_CHARACTER, + ROLE_SYSTEM_LIST, + ROLE_SYSTEM_LISTITEM, + ROLE_SYSTEM_OUTLINE, + ROLE_SYSTEM_OUTLINEITEM, + ROLE_SYSTEM_PAGETAB, + ROLE_SYSTEM_PROPERTYPAGE, + ROLE_SYSTEM_INDICATOR, + ROLE_SYSTEM_GRAPHIC, + ROLE_SYSTEM_STATICTEXT, + ROLE_SYSTEM_TEXT, + ROLE_SYSTEM_PUSHBUTTON, + ROLE_SYSTEM_CHECKBUTTON, + ROLE_SYSTEM_RADIOBUTTON, + ROLE_SYSTEM_COMBOBOX, + ROLE_SYSTEM_DROPLIST, + ROLE_SYSTEM_PROGRESSBAR, + ROLE_SYSTEM_DIAL, + ROLE_SYSTEM_HOTKEYFIELD, + ROLE_SYSTEM_SLIDER, + ROLE_SYSTEM_SPINBUTTON, + ROLE_SYSTEM_DIAGRAM, + ROLE_SYSTEM_ANIMATION, + ROLE_SYSTEM_EQUATION, + ROLE_SYSTEM_BUTTONDROPDOWN, + ROLE_SYSTEM_BUTTONMENU, + ROLE_SYSTEM_BUTTONDROPDOWNGRID, + ROLE_SYSTEM_WHITESPACE, + ROLE_SYSTEM_PAGETABLIST, + ROLE_SYSTEM_CLOCK // = 61 +} + +enum { + STATE_SYSTEM_UNAVAILABLE = 0x00000001, + STATE_SYSTEM_SELECTED = 0x00000002, + STATE_SYSTEM_FOCUSED = 0x00000004, + STATE_SYSTEM_PRESSED = 0x00000008, + STATE_SYSTEM_CHECKED = 0x00000010, + STATE_SYSTEM_MIXED = 0x00000020, + STATE_SYSTEM_READONLY = 0x00000040, + STATE_SYSTEM_HOTTRACKED = 0x00000080, + STATE_SYSTEM_DEFAULT = 0x00000100, + STATE_SYSTEM_EXPANDED = 0x00000200, + STATE_SYSTEM_COLLAPSED = 0x00000400, + STATE_SYSTEM_BUSY = 0x00000800, + STATE_SYSTEM_FLOATING = 0x00001000, + STATE_SYSTEM_MARQUEED = 0x00002000, + STATE_SYSTEM_ANIMATED = 0x00004000, + STATE_SYSTEM_INVISIBLE = 0x00008000, + STATE_SYSTEM_OFFSCREEN = 0x00010000, + STATE_SYSTEM_SIZEABLE = 0x00020000, + STATE_SYSTEM_MOVEABLE = 0x00040000, + STATE_SYSTEM_SELFVOICING = 0x00080000, + STATE_SYSTEM_FOCUSABLE = 0x00100000, + STATE_SYSTEM_SELECTABLE = 0x00200000, + STATE_SYSTEM_LINKED = 0x00400000, + STATE_SYSTEM_TRAVERSED = 0x00800000, + STATE_SYSTEM_MULTISELECTABLE = 0x01000000, + STATE_SYSTEM_EXTSELECTABLE = 0x02000000, + STATE_SYSTEM_ALERT_LOW = 0x04000000, + STATE_SYSTEM_ALERT_MEDIUM = 0x08000000, + STATE_SYSTEM_ALERT_HIGH = 0x10000000, + STATE_SYSTEM_VALID = 0x1fffffff +} + +enum SELFLAG +{ + SELFLAG_NONE = 0, + SELFLAG_TAKEFOCUS = 1, + SELFLAG_TAKESELECTION = 2, + SELFLAG_EXTENDSELECTION = 4, + SELFLAG_ADDSELECTION = 8, + SELFLAG_REMOVESELECTION = 16 +} + +const SELFLAG_VALID = 0x0000001F; + + +interface IAccessible : IDispatch { + HRESULT get_accParent(IDispatch**); + HRESULT get_accChildCount(int*); + HRESULT get_accChild(VARIANT, IDispatch **); + HRESULT get_accName(VARIANT, BSTR*); + HRESULT get_accValue(VARIANT, BSTR*); + HRESULT get_accDescription(VARIANT, BSTR*); + HRESULT get_accRole(VARIANT, VARIANT*); + HRESULT get_accState(VARIANT, VARIANT*); + HRESULT get_accHelp(VARIANT, BSTR*); + HRESULT get_accHelpTopic(BSTR*, VARIANT, int*); + HRESULT get_accKeyboardShortcut(VARIANT, BSTR*); + HRESULT get_accFocus(VARIANT*); + HRESULT get_accSelection(VARIANT*); + HRESULT get_accDefaultAction(VARIANT, BSTR*); + + HRESULT accSelect(int, VARIANT); + HRESULT accLocation(int*, int*, int*, int*, VARIANT); + HRESULT accNavigate(int, VARIANT, VARIANT*); + HRESULT accHitTest(int, int, VARIANT*); + HRESULT accDoDefaultAction(VARIANT); + + HRESULT put_accName(VARIANT, BSTR); + HRESULT put_accValue(VARIANT, BSTR); +} + +alias IAccessible* LPACCESSIBLE; + +extern (Windows) { + HRESULT AccessibleChildren(IAccessible*, LONG, LONG, VARIANT*, LONG*); + HRESULT AccessibleObjectFromEvent(HWND, DWORD, DWORD, IAccessible*, VARIANT*); + HRESULT AccessibleObjectFromPoint(POINT, IAccessible**, VARIANT*); + HRESULT AccessibleObjectFromWindow(HWND, DWORD, REFIID, void**); + HRESULT CreateStdAccessibleObject(HWND, LONG, REFIID, void**); + HRESULT CreateStdAccessibleProxyA(HWND, LPCSTR, LONG, REFIID, void**); + HRESULT CreateStdAccessibleProxyW(HWND, LPCWSTR, LONG, REFIID, void**); + + void GetOleaccVersionInfo(DWORD*, DWORD*); + UINT GetRoleTextA(DWORD, LPSTR, UINT); + UINT GetRoleTextW(DWORD, LPWSTR, UINT); + UINT GetStateTextA(DWORD, LPSTR, UINT); + UINT GetStateTextW(DWORD, LPWSTR, UINT); + LRESULT LresultFromObject(REFIID, WPARAM, LPUNKNOWN); + HRESULT ObjectFromLresult(LRESULT, REFIID, WPARAM, void**); + HRESULT WindowFromAccessibleObject(IAccessible*, HWND*); +} + +version(Unicode) { + alias CreateStdAccessibleProxyW CreateStdAccessibleProxy; + alias GetRoleTextW GetRoleText; + alias GetStateTextW GetStateText; +} else { + alias CreateStdAccessibleProxyA CreateStdAccessibleProxy; + alias GetRoleTextA GetRoleText; + alias GetStateTextA GetStateText; +} ADDED src/win32/oleauto.d Index: src/win32/oleauto.d ================================================================== --- src/win32/oleauto.d +++ src/win32/oleauto.d @@ -0,0 +1,684 @@ +/***********************************************************************\ +* oleauto.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.oleauto; +pragma(lib, "oleaut32.lib"); + +import win32.oaidl; +private import win32.basetyps, win32.unknwn, win32.windef, win32.wtypes; +private import win32.winbase; // for SYSTEMTIME + +align(8): +const STDOLE_MAJORVERNUM = 1; +const STDOLE_MINORVERNUM = 0; +const STDOLE_LCID = 0; + +const VARIANT_NOVALUEPROP = 0x01; +const VARIANT_ALPHABOOL = 0x02; +const VARIANT_NOUSEOVERRIDE = 0x04; +const VARIANT_LOCALBOOL = 0x08; + +const VAR_TIMEVALUEONLY = 0x0001; +const VAR_DATEVALUEONLY = 0x0002; +const VAR_VALIDDATE = 0x0004; +const VAR_CALENDAR_HIJRI = 0x0008; +const VAR_LOCALBOOL = 0x0010; +const VAR_FORMAT_NOSUBSTITUTE = 0x0020; +const VAR_FOURDIGITYEARS = 0x0040; +const VAR_CALENDAR_THAI = 0x0080; +const VAR_CALENDAR_GREGORIAN = 0x0100; + +const MEMBERID_NIL = DISPID_UNKNOWN; +const ID_DEFAULTINST = -2; +const DISPATCH_METHOD = 1; +const DISPATCH_PROPERTYGET = 2; +const DISPATCH_PROPERTYPUT = 4; +const DISPATCH_PROPERTYPUTREF = 8; + +//ULONG LHashValOfName(LCID l, OLECHAR* n) { return LHashValOfNameSys(SYSKIND.SYS_WIN32, l, n); } + +// DAC: These aren't in the 2003 SDK. +//MACRO #define WHashValOfLHashVal(h) ((unsigned short)(0x0000ffff&(h))) +//MACRO #define IsHashValCompatible(h1, h2) ((BOOL)((0x00ff0000&(h1))==(0x00ff0000&(h2)))) + +enum { + ACTIVEOBJECT_STRONG = 0, + ACTIVEOBJECT_WEAK = 1 +} + +// DAC: These seem to be irrelevant for D. +//#define V_UNION(X, Y) ((X)->Y) +//#define V_VT(X) ((X)->vt) +//#define V_BOOL(X) V_UNION(X, boolVal) +//#define V_ISBYREF(X) (V_VT(X)&VT_BYREF) +//#define V_ISARRAY(X) (V_VT(X)&VT_ARRAY) +//#define V_ISVECTOR(X) (V_VT(X)&VT_VECTOR) +//#define V_NONE(X) V_I2(X) +//#define V_UI1(X) V_UNION(X, bVal) +//#define V_UI1REF(X) V_UNION(X, pbVal) +//#define V_I2(X) V_UNION(X, iVal) +//#define V_UI2(X) V_UNION(X, uiVal) +//#define V_I2REF(X) V_UNION(X, piVal) +//#define V_I4(X) V_UNION(X, lVal) +//#define V_UI4(X) V_UNION(X, ulVal) +//#define V_I4REF(X) V_UNION(X, plVal) +//#define V_UI4REF(X) V_UNION(X, pulVal) +//#define V_I8(X) V_UNION(X, llVal) +//#define V_UI8(X) V_UNION(X, ullVal) +//#define V_I8REF(X) V_UNION(X, pllVal) +//#define V_UI8REF(X) V_UNION(X, pullVal) +//#define V_R4(X) V_UNION(X, fltVal) +//#define V_R4REF(X) V_UNION(X, pfltVal) +//#define V_R8(X) V_UNION(X, dblVal) +//#define V_R8REF(X) V_UNION(X, pdblVal) +//#define V_CY(X) V_UNION(X, cyVal) +//#define V_CYREF(X) V_UNION(X, pcyVal) +//#define V_DATE(X) V_UNION(X, date) +//#define V_DATEREF(X) V_UNION(X, pdate) +//#define V_BSTR(X) V_UNION(X, bstrVal) +//#define V_BSTRREF(X) V_UNION(X, pbstrVal) +//#define V_DISPATCH(X) V_UNION(X, pdispVal) +//#define V_DISPATCHREF(X) V_UNION(X, ppdispVal) +//#define V_ERROR(X) V_UNION(X, scode) +//#define V_ERRORREF(X) V_UNION(X, pscode) +//#define V_BOOLREF(X) V_UNION(X, pboolVal) +//#define V_UNKNOWN(X) V_UNION(X, punkVal) +//#define V_UNKNOWNREF(X) V_UNION(X, ppunkVal) +//#define V_VARIANTREF(X) V_UNION(X, pvarVal) +//#define V_LPSTR(X) V_UNION(X, pszVal) +//#define V_LPSTRREF(X) V_UNION(X, ppszVal) +//#define V_LPWSTR(X) V_UNION(X, pwszVal) +//#define V_LPWSTRREF(X) V_UNION(X, ppwszVal) +//#define V_FILETIME(X) V_UNION(X, filetime) +//#define V_FILETIMEREF(X) V_UNION(X, pfiletime) +//#define V_BLOB(X) V_UNION(X, blob) +//#define V_UUID(X) V_UNION(X, puuid) +//#define V_CLSID(X) V_UNION(X, puuid) +//#define V_ARRAY(X) V_UNION(X, parray) +//#define V_ARRAYREF(X) V_UNION(X, pparray) +//#define V_BYREF(X) V_UNION(X, byref) +//#define V_DECIMAL(X) ((X)->decVal) +//#define V_DECIMALREF(X) V_UNION(X, pdecVal) +//#define V_I1(X) V_UNION(X, cVal) + +//#ifdef _WIN64 +//#define V_INT_PTR(X) V_I8(X) +//#define V_UINT_PTR(X) V_UI8(X) +//#define V_INT_PTRREF(X) V_I8REF(X) +//#define V_UINT_PTRREF(X) V_UI8REF(X) +//#else +//#define V_INT_PTR(X) V_I4(X) +//#define V_UINT_PTR(X) V_UI4(X) +//#define V_INT_PTRREF(X) V_I4REF(X) +//#define V_UINT_PTRREF(X) V_UI4REF(X) +//#endif + +enum { + VARCMP_LT = 0, + VARCMP_EQ, + VARCMP_GT, + VARCMP_NULL // = 3 +} + +const LOCALE_USE_NLS = 0x10000000; + +const VARIANT_NOUSEROVERRIDE = 0x04; +const VARIANT_CALENDAR_HIJRI = 0x08; +const VARIANT_CALENDAR_THAI = 0x20; +const VARIANT_CALENDAR_GREGORIAN = 0x40; +const VARIANT_USE_NLS = 0x80; + +const NUMPRS_LEADING_WHITE = 0x00001; +const NUMPRS_TRAILING_WHITE = 0x00002; +const NUMPRS_LEADING_PLUS = 0x00004; +const NUMPRS_TRAILING_PLUS = 0x00008; +const NUMPRS_LEADING_MINUS = 0x00010; +const NUMPRS_TRAILING_MINUS = 0x00020; +const NUMPRS_HEX_OCT = 0x00040; +const NUMPRS_PARENS = 0x00080; +const NUMPRS_DECIMAL = 0x00100; +const NUMPRS_THOUSANDS = 0x00200; +const NUMPRS_CURRENCY = 0x00400; +const NUMPRS_EXPONENT = 0x00800; +const NUMPRS_USE_ALL = 0x01000; +const NUMPRS_STD = 0x01FFF; +const NUMPRS_NEG = 0x10000; +const NUMPRS_INEXACT = 0x20000; + +const VTBIT_I1 = 1 << VARENUM.VT_I1; +const VTBIT_UI1 = 1 << VARENUM.VT_UI1; +const VTBIT_I2 = 1 << VARENUM.VT_I2; +const VTBIT_UI2 = 1 << VARENUM.VT_UI2; +const VTBIT_I4 = 1 << VARENUM.VT_I4; +const VTBIT_UI4 = 1 << VARENUM.VT_UI4; +const VTBIT_I8 = 1 << VARENUM.VT_I8; +const VTBIT_UI8 = 1 << VARENUM.VT_UI8; +const VTBIT_R4 = 1 << VARENUM.VT_R4; +const VTBIT_R8 = 1 << VARENUM.VT_R8; +const VTBIT_CY = 1 << VARENUM.VT_CY; +const VTBIT_DECIMAL = 1 << VARENUM.VT_DECIMAL; + + +enum REGKIND{ + REGKIND_DEFAULT, + REGKIND_REGISTER, + REGKIND_NONE +} + +struct PARAMDATA{ + OLECHAR* szName; + VARTYPE vt; +} +alias PARAMDATA* LPPARAMDATA; + +struct METHODDATA{ + OLECHAR* szName; + PARAMDATA* ppdata; + DISPID dispid; + UINT iMeth; + CALLCONV cc; + UINT cArgs; + WORD wFlags; + VARTYPE vtReturn; +} +alias METHODDATA* LPMETHODDATA; + +struct INTERFACEDATA{ + METHODDATA* pmethdata; + UINT cMembers; +} +alias INTERFACEDATA* LPINTERFACEDATA; + +struct UDATE { + SYSTEMTIME st; + USHORT wDayOfYear; +} + +struct NUMPARSE { + int cDig; + uint dwInFlags; + uint dwOutFlags; + int cchUsed; + int nBaseShift; + int nPwr10; +} + + +// DAC: In MinGW, these were declared but not defined in oaidl. +// The SDK docs suggest they belong in this file instead. + +deprecated { // not actually deprecated, but they aren't converted yet. + // (will need to reinstate CreateTypeLib as well) + interface ICreateTypeInfo {}; + interface ICreateTypeInfo2 {}; + interface ICreateTypeLib {}; + interface ICreateTypeLib2 {}; + + alias ICreateTypeInfo* LPCREATETYPEINFO; + alias ICreateTypeInfo2* LPCREATETYPEINFO2; + alias ICreateTypeLib* LPCREATETYPELIB; + alias ICreateTypeLib2* LPCREATETYPELIB2; +} + +extern (Windows) { + BSTR SysAllocString(CPtr!(OLECHAR)); + int SysReAllocString(BSTR*, CPtr!(OLECHAR)); + BSTR SysAllocStringLen(CPtr!(OLECHAR), uint); + int SysReAllocStringLen(BSTR*, CPtr!(OLECHAR), uint); + void SysFreeString(BSTR); + uint SysStringLen(BSTR); + uint SysStringByteLen(BSTR); + BSTR SysAllocStringByteLen(CPtr!(char), uint); + int DosDateTimeToVariantTime(ushort, ushort, double*); + int VariantTimeToDosDateTime(double, ushort*, ushort*); + int VariantTimeToSystemTime(double, LPSYSTEMTIME); + int SystemTimeToVariantTime(LPSYSTEMTIME, double*); + HRESULT VarDateFromUdate(UDATE*, ULONG, DATE*); + HRESULT VarDateFromUdateEx(UDATE*, LCID, ULONG, DATE*); + HRESULT VarUdateFromDate(DATE, ULONG, UDATE*); + HRESULT SafeArrayAllocDescriptor(uint, SAFEARRAY**); + HRESULT SafeArrayAllocData(SAFEARRAY*); + SAFEARRAY* SafeArrayCreate(VARTYPE, uint, SAFEARRAYBOUND*); + HRESULT SafeArrayDestroyDescriptor(SAFEARRAY*); + HRESULT SafeArrayDestroyData(SAFEARRAY*); + HRESULT SafeArrayDestroy(SAFEARRAY*); + HRESULT SafeArrayRedim(SAFEARRAY*, SAFEARRAYBOUND*); + uint SafeArrayGetDim(SAFEARRAY*); + uint SafeArrayGetElemsize(SAFEARRAY*); + HRESULT SafeArrayGetUBound(SAFEARRAY*, uint, int*); + HRESULT SafeArrayGetLBound(SAFEARRAY*, uint, int*); + HRESULT SafeArrayLock(SAFEARRAY*); + HRESULT SafeArrayUnlock(SAFEARRAY*); + HRESULT SafeArrayAccessData(SAFEARRAY*, void**); + HRESULT SafeArrayUnaccessData(SAFEARRAY*); + HRESULT SafeArrayGetElement(SAFEARRAY*, int*, void*); + HRESULT SafeArrayPutElement(SAFEARRAY*, int*, void*); + HRESULT SafeArrayCopy(SAFEARRAY*, SAFEARRAY**); + HRESULT SafeArrayPtrOfIndex(SAFEARRAY*, int*, void**); + SAFEARRAY* SafeArrayCreateVector(VARTYPE, LONG, ULONG); + SAFEARRAY* SafeArrayCreateVectorEx(VARTYPE, LONG, ULONG, LPVOID); + HRESULT SafeArrayAllocDescriptorEx(VARTYPE, UINT, SAFEARRAY**); + HRESULT SafeArrayGetVartype(SAFEARRAY*, VARTYPE*); + HRESULT SafeArraySetRecordInfo(SAFEARRAY*, IRecordInfo*); + HRESULT SafeArrayGetRecordInfo(SAFEARRAY*, IRecordInfo**); + HRESULT SafeArraySetIID(SAFEARRAY*, REFGUID); + HRESULT SafeArrayGetIID(SAFEARRAY*, GUID*); + void VariantInit(VARIANTARG*); + HRESULT VariantClear(VARIANTARG*); + HRESULT VariantCopy(VARIANTARG*, VARIANTARG*); + HRESULT VariantCopyInd(VARIANT*, VARIANTARG*); + HRESULT VariantChangeType(VARIANTARG*, VARIANTARG*, ushort, VARTYPE); + HRESULT VariantChangeTypeEx(VARIANTARG*, VARIANTARG*, LCID, ushort, VARTYPE); + HRESULT VarUI1FromI2(short, ubyte*); + HRESULT VarUI1FromI4(int, ubyte*); + HRESULT VarUI1FromR4(float, ubyte*); + HRESULT VarUI1FromR8(double, ubyte*); + HRESULT VarUI1FromCy(CY, ubyte*); + HRESULT VarUI1FromDate(DATE, ubyte*); + HRESULT VarUI1FromStr(OLECHAR*, LCID, uint, ubyte*); + HRESULT VarUI1FromDisp(LPDISPATCH, LCID, ubyte*); + HRESULT VarUI1FromBool(VARIANT_BOOL, ubyte*); + HRESULT VarI2FromUI1(ubyte, short*); + HRESULT VarI2FromI4(int, short*); + HRESULT VarI2FromR4(float, short*); + HRESULT VarI2FromR8(double, short*); + HRESULT VarI2FromCy(CY cyIn, short*); + HRESULT VarI2FromDate(DATE, short*); + HRESULT VarI2FromStr(OLECHAR*, LCID, uint, short*); + HRESULT VarI2FromDisp(LPDISPATCH, LCID, short*); + HRESULT VarI2FromBool(VARIANT_BOOL, short*); + HRESULT VarI4FromUI1(ubyte, int*); + HRESULT VarI4FromI2(short, int*); + HRESULT VarI4FromR4(float, int*); + HRESULT VarI4FromR8(double, int*); + HRESULT VarI4FromCy(CY, int*); + HRESULT VarI4FromDate(DATE, int*); + HRESULT VarI4FromStr(OLECHAR*, LCID, uint, int*); + HRESULT VarI4FromDisp(LPDISPATCH, LCID, int*); + HRESULT VarI4FromBool(VARIANT_BOOL, int*); + HRESULT VarR4FromUI1(ubyte, float*); + HRESULT VarR4FromI2(short, float*); + HRESULT VarR4FromI4(int, float*); + HRESULT VarR4FromR8(double, float*); + HRESULT VarR4FromCy(CY, float*); + HRESULT VarR4FromDate(DATE, float*); + HRESULT VarR4FromStr(OLECHAR*, LCID, uint, float*); + HRESULT VarR4FromDisp(LPDISPATCH, LCID, float*); + HRESULT VarR4FromBool(VARIANT_BOOL, float*); + HRESULT VarR8FromUI1(ubyte, double*); + HRESULT VarR8FromI2(short, double*); + HRESULT VarR8FromI4(int, double*); + HRESULT VarR8FromR4(float, double*); + HRESULT VarR8FromCy(CY, double*); + HRESULT VarR8FromDate(DATE, double*); + HRESULT VarR8FromStr(OLECHAR*, LCID, uint, double*); + HRESULT VarR8FromDisp(LPDISPATCH, LCID, double*); + HRESULT VarR8FromBool(VARIANT_BOOL, double*); + HRESULT VarR8FromDec(DECIMAL*, double*); + HRESULT VarDateFromUI1(ubyte, DATE*); + HRESULT VarDateFromI2(short, DATE*); + HRESULT VarDateFromI4(int, DATE*); + HRESULT VarDateFromR4(float, DATE*); + HRESULT VarDateFromR8(double, DATE*); + HRESULT VarDateFromCy(CY, DATE*); + HRESULT VarDateFromStr(OLECHAR*, LCID, uint, DATE*); + HRESULT VarDateFromDisp(LPDISPATCH, LCID, DATE*); + HRESULT VarDateFromBool(VARIANT_BOOL, DATE*); + HRESULT VarCyFromUI1(ubyte, CY*); + HRESULT VarCyFromI2(short, CY*); + HRESULT VarCyFromI4(int, CY*); + HRESULT VarCyFromR4(float, CY*); + HRESULT VarCyFromR8(double, CY*); + HRESULT VarCyFromDate(DATE, CY*); + HRESULT VarCyFromStr(OLECHAR*, LCID, uint, CY*); + HRESULT VarCyFromDisp(LPDISPATCH, LCID, CY*); + HRESULT VarCyFromBool(VARIANT_BOOL, CY*); + HRESULT VarBstrFromUI1(ubyte, LCID, uint, BSTR*); + HRESULT VarBstrFromI2(short, LCID, uint, BSTR*); + HRESULT VarBstrFromI4(int, LCID, uint, BSTR*); + HRESULT VarBstrFromR4(float, LCID, uint, BSTR*); + HRESULT VarBstrFromR8(double, LCID, uint, BSTR*); + HRESULT VarBstrFromCy(CY, LCID, uint, BSTR*); + HRESULT VarBstrFromDate(DATE, LCID, uint, BSTR*); + HRESULT VarBstrFromDisp(LPDISPATCH, LCID, uint, BSTR*); + HRESULT VarBstrFromBool(VARIANT_BOOL, LCID, uint, BSTR*); + HRESULT VarBoolFromUI1(ubyte, VARIANT_BOOL*); + HRESULT VarBoolFromI2(short, VARIANT_BOOL*); + HRESULT VarBoolFromI4(int, VARIANT_BOOL*); + HRESULT VarBoolFromR4(float, VARIANT_BOOL*); + HRESULT VarBoolFromR8(double, VARIANT_BOOL*); + HRESULT VarBoolFromDate(DATE, VARIANT_BOOL*); + HRESULT VarBoolFromCy(CY, VARIANT_BOOL*); + HRESULT VarBoolFromStr(OLECHAR*, LCID, uint, VARIANT_BOOL*); + HRESULT VarBoolFromDisp(LPDISPATCH, LCID, VARIANT_BOOL*); + HRESULT VarDecFromR8(double, DECIMAL*); + ULONG LHashValOfNameSysA(SYSKIND, LCID, CPtr!(char)); + ULONG LHashValOfNameSys(SYSKIND, LCID, CPtr!(OLECHAR)); + HRESULT LoadTypeLib(CPtr!(OLECHAR), LPTYPELIB*); + HRESULT LoadTypeLibEx(LPCOLESTR, REGKIND, LPTYPELIB*); + HRESULT LoadRegTypeLib(REFGUID, WORD, WORD, LCID, LPTYPELIB*); + HRESULT QueryPathOfRegTypeLib(REFGUID, ushort, ushort, LCID, LPBSTR); + HRESULT RegisterTypeLib(LPTYPELIB, OLECHAR*, OLECHAR*); + HRESULT UnRegisterTypeLib(REFGUID, WORD, WORD, LCID, SYSKIND); + // not actually deprecated, but depends on unconverted ICreateTypeLib + deprecated HRESULT CreateTypeLib(SYSKIND, CPtr!(OLECHAR), LPCREATETYPELIB*); + HRESULT DispGetParam(DISPPARAMS*, UINT, VARTYPE, VARIANT*, UINT*); + HRESULT DispGetIDsOfNames(LPTYPEINFO, OLECHAR**, UINT, DISPID*); + HRESULT DispInvoke(void*, LPTYPEINFO, DISPID, WORD, DISPPARAMS*, VARIANT*, EXCEPINFO*, UINT*); + HRESULT CreateDispTypeInfo(INTERFACEDATA*, LCID, LPTYPEINFO*); + HRESULT CreateStdDispatch(IUnknown*, void*, LPTYPEINFO, IUnknown**); + HRESULT RegisterActiveObject(IUnknown*, REFCLSID, DWORD, DWORD*); + HRESULT RevokeActiveObject(DWORD, void*); + HRESULT GetActiveObject(REFCLSID, void*, IUnknown**); + HRESULT SetErrorInfo(uint, LPERRORINFO); + HRESULT GetErrorInfo(uint, LPERRORINFO*); + HRESULT CreateErrorInfo(LPCREATEERRORINFO*); + uint OaBuildVersion(); + HRESULT VectorFromBstr (BSTR, SAFEARRAY**); + HRESULT BstrFromVector (SAFEARRAY*, BSTR*); + HRESULT VarParseNumFromStr(OLECHAR*, LCID, ULONG, NUMPARSE*, BYTE*); + HRESULT VarNumFromParseNum(NUMPARSE*, BYTE*, ULONG, VARIANT*); + + HRESULT VarAdd(LPVARIANT, LPVARIANT, LPVARIANT); + HRESULT VarSub(LPVARIANT, LPVARIANT, LPVARIANT); + HRESULT VarMul(LPVARIANT, LPVARIANT, LPVARIANT); + HRESULT VarDiv(LPVARIANT, LPVARIANT, LPVARIANT); + + HRESULT VarUI1FromI2(SHORT, BYTE*); + HRESULT VarUI1FromI4(LONG, BYTE*); + HRESULT VarUI1FromI8(LONG64, BYTE*); + HRESULT VarUI1FromR4(FLOAT, BYTE*); + HRESULT VarUI1FromR8(DOUBLE, BYTE*); + HRESULT VarUI1FromDate(DATE, BYTE*); + HRESULT VarUI1FromBool(VARIANT_BOOL, BYTE*); + HRESULT VarUI1FromI1(byte, BYTE*); + HRESULT VarUI1FromUI2(USHORT, BYTE*); + HRESULT VarUI1FromUI4(ULONG, BYTE*); + HRESULT VarUI1FromUI8(ULONG64, BYTE*); + HRESULT VarUI1FromStr(OLECHAR*, LCID, ULONG, BYTE*); + HRESULT VarUI1FromCy(CY, BYTE*); + HRESULT VarUI1FromDec(DECIMAL*, BYTE*); + HRESULT VarUI1FromDisp(IDispatch*, LCID, BYTE*); + + HRESULT VarI2FromUI1(BYTE, SHORT*); + HRESULT VarI2FromI4(LONG, SHORT*); + HRESULT VarI2FromI8(LONG64, SHORT*); + HRESULT VarI2FromR4(FLOAT, SHORT*); + HRESULT VarI2FromR8(DOUBLE, SHORT*); + HRESULT VarI2FromDate(DATE, SHORT*); + HRESULT VarI2FromBool(VARIANT_BOOL, SHORT*); + HRESULT VarI2FromI1(byte, SHORT*); + HRESULT VarI2FromUI2(USHORT, SHORT*); + HRESULT VarI2FromUI4(ULONG, SHORT*); + HRESULT VarI2FromUI8(ULONG64, SHORT*); + HRESULT VarI2FromStr(OLECHAR*, LCID, ULONG, SHORT*); + HRESULT VarI2FromCy(CY, SHORT*); + HRESULT VarI2FromDec(DECIMAL*, SHORT*); + HRESULT VarI2FromDisp(IDispatch*, LCID, SHORT*); + + HRESULT VarI4FromUI1(BYTE, LONG*); + HRESULT VarI4FromI2(SHORT, LONG*); + HRESULT VarI4FromI8(LONG64, LONG*); + HRESULT VarI4FromR4(FLOAT, LONG*); + HRESULT VarI4FromR8(DOUBLE, LONG*); + HRESULT VarI4FromDate(DATE, LONG*); + HRESULT VarI4FromBool(VARIANT_BOOL, LONG*); + HRESULT VarI4FromI1(byte, LONG*); + HRESULT VarI4FromUI2(USHORT, LONG*); + HRESULT VarI4FromUI4(ULONG, LONG*); + HRESULT VarI4FromUI8(ULONG64, LONG*); + HRESULT VarI4FromStr(OLECHAR*, LCID, ULONG, LONG*); + HRESULT VarI4FromCy(CY, LONG*); + HRESULT VarI4FromDec(DECIMAL*, LONG*); + HRESULT VarI4FromDisp(IDispatch*, LCID, LONG*); + + HRESULT VarI8FromUI1(BYTE, LONG64*); + HRESULT VarI8FromI2(SHORT, LONG64*); + HRESULT VarI8FromI4(LONG, LONG64*); + HRESULT VarI8FromR4(FLOAT, LONG64*); + HRESULT VarI8FromR8(DOUBLE, LONG64*); + HRESULT VarI8FromDate(DATE, LONG64*); + HRESULT VarI8FromStr(OLECHAR*, LCID, ULONG, LONG64*); + HRESULT VarI8FromBool(VARIANT_BOOL, LONG64*); + HRESULT VarI8FromI1(byte, LONG64*); + HRESULT VarI8FromUI2(USHORT, LONG64*); + HRESULT VarI8FromUI4(ULONG, LONG64*); + HRESULT VarI8FromUI8(ULONG64, LONG64*); + HRESULT VarI8FromDec(DECIMAL* pdecIn, LONG64*); + HRESULT VarI8FromInt(INT intIn, LONG64*); + HRESULT VarI8FromCy(CY, LONG64*); + HRESULT VarI8FromDisp(IDispatch*, LCID, LONG64*); + + HRESULT VarR4FromUI1(BYTE, FLOAT*); + HRESULT VarR4FromI2(SHORT, FLOAT*); + HRESULT VarR4FromI4(LONG, FLOAT*); + HRESULT VarR4FromI8(LONG64, FLOAT*); + HRESULT VarR4FromR8(DOUBLE, FLOAT*); + HRESULT VarR4FromDate(DATE, FLOAT*); + HRESULT VarR4FromBool(VARIANT_BOOL, FLOAT*); + HRESULT VarR4FromI1(byte, FLOAT*); + HRESULT VarR4FromUI2(USHORT, FLOAT*); + HRESULT VarR4FromUI4(ULONG, FLOAT*); + HRESULT VarR4FromUI8(ULONG64, FLOAT*); + HRESULT VarR4FromStr(OLECHAR*, LCID, ULONG, FLOAT*); + HRESULT VarR4FromCy(CY, FLOAT*); + HRESULT VarR4FromDec(DECIMAL*, FLOAT*); + HRESULT VarR4FromDisp(IDispatch*, LCID, FLOAT*); + + HRESULT VarR8FromUI1(BYTE, double*); + HRESULT VarR8FromI2(SHORT, double*); + HRESULT VarR8FromI4(LONG, double*); + HRESULT VarR8FromI8(LONG64, double*); + HRESULT VarR8FromR4(FLOAT, double*); + HRESULT VarR8FromDate(DATE, double*); + HRESULT VarR8FromBool(VARIANT_BOOL, double*); + HRESULT VarR8FromI1(byte, double*); + HRESULT VarR8FromUI2(USHORT, double*); + HRESULT VarR8FromUI4(ULONG, double*); + HRESULT VarR8FromUI8(ULONG64, double*); + HRESULT VarR8FromStr(OLECHAR*, LCID, ULONG, double*); + HRESULT VarR8FromCy(CY, double*); + HRESULT VarR8FromDec(DECIMAL*, double*); + HRESULT VarR8FromDisp(IDispatch*, LCID, double*); + + HRESULT VarDateFromUI1(BYTE, DATE*); + HRESULT VarDateFromI2(SHORT, DATE*); + HRESULT VarDateFromI4(LONG, DATE*); + HRESULT VarDateFromI8(LONG64, DATE*); + HRESULT VarDateFromR4(FLOAT, DATE*); + HRESULT VarDateFromR8(DOUBLE, DATE*); + HRESULT VarDateFromStr(OLECHAR*, LCID, ULONG, DATE*); + HRESULT VarDateFromI1(byte, DATE*); + HRESULT VarDateFromUI2(USHORT, DATE*); + HRESULT VarDateFromUI4(ULONG, DATE*); + HRESULT VarDateFromUI8(ULONG64, DATE*); + HRESULT VarDateFromBool(VARIANT_BOOL, DATE*); + HRESULT VarDateFromCy(CY, DATE*); + HRESULT VarDateFromDec(DECIMAL*, DATE*); + HRESULT VarDateFromDisp(IDispatch*, LCID, DATE*); + + HRESULT VarCyFromUI1(BYTE, CY*); + HRESULT VarCyFromI2(SHORT sIn, CY*); + HRESULT VarCyFromI4(LONG, CY*); + HRESULT VarCyFromI8(LONG64, CY*); + HRESULT VarCyFromR4(FLOAT, CY*); + HRESULT VarCyFromR8(DOUBLE, CY*); + HRESULT VarCyFromDate(DATE, CY*); + HRESULT VarCyFromStr(OLECHAR*, LCID, ULONG, CY*); + HRESULT VarCyFromBool(VARIANT_BOOL, CY*); + HRESULT VarCyFromI1(byte, CY*); + HRESULT VarCyFromUI2(USHORT, CY*); + HRESULT VarCyFromUI4(ULONG, CY*); + HRESULT VarCyFromUI8(ULONG64, CY*); + HRESULT VarCyFromDec(DECIMAL*, CY*); + HRESULT VarCyFromStr(OLECHAR*, LCID, ULONG, CY*); + HRESULT VarCyFromDisp(IDispatch*, LCID, CY*); + + HRESULT VarBstrFromUI1(BYTE, LCID, ULONG, BSTR*); + HRESULT VarBstrFromI2(SHORT, LCID, ULONG, BSTR*); + HRESULT VarBstrFromI4(LONG, LCID, ULONG, BSTR*); + HRESULT VarBstrFromI8(LONG64, LCID, ULONG, BSTR*); + HRESULT VarBstrFromR4(FLOAT, LCID, ULONG, BSTR*); + HRESULT VarBstrFromR8(DOUBLE, LCID, ULONG, BSTR*); + HRESULT VarBstrFromDate(DATE, LCID, ULONG, BSTR*); + HRESULT VarBstrFromBool(VARIANT_BOOL, LCID, ULONG, BSTR*); + HRESULT VarBstrFromI1(byte, LCID, ULONG, BSTR*); + HRESULT VarBstrFromUI2(USHORT, LCID, ULONG, BSTR*); + HRESULT VarBstrFromUI8(ULONG64, LCID, ULONG, BSTR*); + HRESULT VarBstrFromUI4(ULONG, LCID, ULONG, BSTR*); + HRESULT VarBstrFromCy(CY, LCID, ULONG, BSTR*); + HRESULT VarBstrFromDec(DECIMAL*, LCID, ULONG, BSTR*); + HRESULT VarBstrFromDisp(IDispatch*, LCID, ULONG, BSTR*); + + HRESULT VarBoolFromUI1(BYTE, VARIANT_BOOL*); + HRESULT VarBoolFromI2(SHORT, VARIANT_BOOL*); + HRESULT VarBoolFromI4(LONG, VARIANT_BOOL*); + HRESULT VarBoolFromI8(LONG64, VARIANT_BOOL*); + HRESULT VarBoolFromR4(FLOAT, VARIANT_BOOL*); + HRESULT VarBoolFromR8(DOUBLE, VARIANT_BOOL*); + HRESULT VarBoolFromDate(DATE, VARIANT_BOOL*); + HRESULT VarBoolFromStr(OLECHAR*, LCID, ULONG, VARIANT_BOOL*); + HRESULT VarBoolFromI1(byte, VARIANT_BOOL*); + HRESULT VarBoolFromUI2(USHORT, VARIANT_BOOL*); + HRESULT VarBoolFromUI4(ULONG, VARIANT_BOOL*); + HRESULT VarBoolFromUI8(ULONG64, VARIANT_BOOL*); + HRESULT VarBoolFromCy(CY, VARIANT_BOOL*); + HRESULT VarBoolFromDec(DECIMAL*, VARIANT_BOOL*); + HRESULT VarBoolFromDisp(IDispatch*, LCID, VARIANT_BOOL*); + + HRESULT VarI1FromUI1(BYTE, byte*); + HRESULT VarI1FromI2(SHORT, byte*); + HRESULT VarI1FromI4(LONG, byte*); + HRESULT VarI1FromI8(LONG64, byte*); + HRESULT VarI1FromR4(FLOAT, byte*); + HRESULT VarI1FromR8(DOUBLE, byte*); + HRESULT VarI1FromDate(DATE, byte*); + HRESULT VarI1FromStr(OLECHAR*, LCID, ULONG, byte*); + HRESULT VarI1FromBool(VARIANT_BOOL, byte*); + HRESULT VarI1FromUI2(USHORT, byte*); + HRESULT VarI1FromUI4(ULONG, byte*); + HRESULT VarI1FromUI8(ULONG64, byte*); + HRESULT VarI1FromCy(CY, byte*); + HRESULT VarI1FromDec(DECIMAL*, byte*); + HRESULT VarI1FromDisp(IDispatch*, LCID, byte*); + + HRESULT VarUI2FromUI1(BYTE, USHORT*); + HRESULT VarUI2FromI2(SHORT, USHORT*); + HRESULT VarUI2FromI4(LONG, USHORT*); + HRESULT VarUI2FromI8(LONG64, USHORT*); + HRESULT VarUI2FromR4(FLOAT, USHORT*); + HRESULT VarUI2FromR8(DOUBLE, USHORT*); + HRESULT VarUI2FromDate(DATE, USHORT*); + HRESULT VarUI2FromStr(OLECHAR*, LCID, ULONG, USHORT*); + HRESULT VarUI2FromBool(VARIANT_BOOL, USHORT*); + HRESULT VarUI2FromI1(byte, USHORT*); + HRESULT VarUI2FromUI4(ULONG, USHORT*); + HRESULT VarUI2FromUI8(ULONG64, USHORT*); + HRESULT VarUI2FromCy(CY, USHORT*); + HRESULT VarUI2FromDec(DECIMAL*, USHORT*); + HRESULT VarUI2FromDisp(IDispatch*, LCID, USHORT*); + + HRESULT VarUI4FromStr(OLECHAR*, LCID, ULONG, ULONG*); + HRESULT VarUI4FromUI1(BYTE, ULONG*); + HRESULT VarUI4FromI2(SHORT, ULONG*); + HRESULT VarUI4FromI4(LONG, ULONG*); + HRESULT VarUI4FromI8(LONG64, ULONG*); + HRESULT VarUI4FromR4(FLOAT, ULONG*); + HRESULT VarUI4FromR8(DOUBLE, ULONG*); + HRESULT VarUI4FromDate(DATE, ULONG*); + HRESULT VarUI4FromBool(VARIANT_BOOL, ULONG*); + HRESULT VarUI4FromI1(byte, ULONG*); + HRESULT VarUI4FromUI2(USHORT, ULONG*); + HRESULT VarUI4FromUI8(ULONG64, ULONG*); + HRESULT VarUI4FromCy(CY, ULONG*); + HRESULT VarUI4FromDec(DECIMAL*, ULONG*); + HRESULT VarUI4FromDisp(IDispatch*, LCID, ULONG*); + + HRESULT VarUI8FromUI1(BYTE, ULONG64*); + HRESULT VarUI8FromI2(SHORT, ULONG64*); + HRESULT VarUI8FromI4(LONG, ULONG64*); + HRESULT VarUI8FromI8(LONG64, ULONG64*); + HRESULT VarUI8FromR4(FLOAT, ULONG64*); + HRESULT VarUI8FromR8(DOUBLE, ULONG64*); + HRESULT VarUI8FromDate(DATE, ULONG64*); + HRESULT VarUI8FromStr(OLECHAR*, LCID, ULONG, ULONG64*); + HRESULT VarUI8FromBool(VARIANT_BOOL, ULONG64*); + HRESULT VarUI8FromI1(byte, ULONG64*); + HRESULT VarUI8FromUI2(USHORT, ULONG64*); + HRESULT VarUI8FromUI4(ULONG, ULONG64*); + HRESULT VarUI8FromDec(DECIMAL*, ULONG64*); + HRESULT VarUI8FromInt(INT, ULONG64*); + HRESULT VarUI8FromCy(CY, ULONG64*); + HRESULT VarUI8FromDisp(IDispatch*, LCID, ULONG64*); + + HRESULT VarDecFromUI1(BYTE, DECIMAL*); + HRESULT VarDecFromI2(SHORT, DECIMAL*); + HRESULT VarDecFromI4(LONG, DECIMAL*); + HRESULT VarDecFromI8(LONG64, DECIMAL*); + HRESULT VarDecFromR4(FLOAT, DECIMAL*); + HRESULT VarDecFromR8(DOUBLE, DECIMAL*); + HRESULT VarDecFromDate(DATE, DECIMAL*); + HRESULT VarDecFromStr(OLECHAR*, LCID, ULONG, DECIMAL*); + HRESULT VarDecFromBool(VARIANT_BOOL, DECIMAL*); + HRESULT VarDecFromI1(byte, DECIMAL*); + HRESULT VarDecFromUI2(USHORT, DECIMAL*); + HRESULT VarDecFromUI4(ULONG, DECIMAL*); + HRESULT VarDecFromUI8(ULONG64, DECIMAL*); + HRESULT VarDecFromCy(CY, DECIMAL*); + HRESULT VarDecFromDisp(IDispatch*, LCID, DECIMAL*); + + HRESULT VarDecNeg(CPtr!(DECIMAL), DECIMAL*); + HRESULT VarR4CmpR8(float, double); + HRESULT VarR8Pow(double, double, double*); + HRESULT VarR8Round(double, int, double*); + HRESULT VarDecAbs(CPtr!(DECIMAL), DECIMAL*); + HRESULT VarDecAdd(CPtr!(DECIMAL), CPtr!(DECIMAL), DECIMAL*); + HRESULT VarDecCmp(CPtr!(DECIMAL), CPtr!(DECIMAL)); + HRESULT VarDecCmpR8(CPtr!(DECIMAL), DOUBLE); + HRESULT VarDecDiv(CPtr!(DECIMAL), CPtr!(DECIMAL), DECIMAL*); + HRESULT VarDecFix(CPtr!(DECIMAL), DECIMAL*); + HRESULT VarDecInt(CPtr!(DECIMAL), DECIMAL*); + HRESULT VarDecMul(CPtr!(DECIMAL), CPtr!(DECIMAL), DECIMAL*); + HRESULT VarDecRound(CPtr!(DECIMAL), int, DECIMAL*); + HRESULT VarDecSub(CPtr!(DECIMAL), CPtr!(DECIMAL), DECIMAL*); + HRESULT VarCyAbs(CY, CY*); + HRESULT VarCyAdd(CY, CY, CY*); + HRESULT VarCyCmp(CY, CY); + HRESULT VarCyCmpR8(CY, DOUBLE); + HRESULT VarCyFix(CY, CY*); + HRESULT VarCyInt(CY, CY*); + HRESULT VarCyMul(CY, CY, CY*); + HRESULT VarCyMulI4(CY, LONG, CY*); + HRESULT VarCyMulI8(CY, LONG64, CY*); + HRESULT VarCyNeg(CY, CY*); + HRESULT VarCyRound(CY, INT, CY*); + HRESULT VarCySub(CY, CY, CY*); + HRESULT VarAdd(LPVARIANT, LPVARIANT, LPVARIANT); + HRESULT VarAnd(LPVARIANT, LPVARIANT, LPVARIANT); + HRESULT VarCat(LPVARIANT, LPVARIANT, LPVARIANT); + HRESULT VarDiv(LPVARIANT, LPVARIANT, LPVARIANT); + HRESULT VarEqv(LPVARIANT, LPVARIANT, LPVARIANT); + HRESULT VarIdiv(LPVARIANT, LPVARIANT, LPVARIANT); + HRESULT VarImp(LPVARIANT, LPVARIANT, LPVARIANT); + HRESULT VarMod(LPVARIANT, LPVARIANT, LPVARIANT); + HRESULT VarMul(LPVARIANT, LPVARIANT, LPVARIANT); + HRESULT VarOr(LPVARIANT, LPVARIANT, LPVARIANT); + HRESULT VarPow(LPVARIANT, LPVARIANT, LPVARIANT); + HRESULT VarSub(LPVARIANT, LPVARIANT, LPVARIANT); + HRESULT VarXor(LPVARIANT, LPVARIANT, LPVARIANT); + HRESULT VarAbs(LPVARIANT, LPVARIANT); + HRESULT VarFix(LPVARIANT, LPVARIANT); + HRESULT VarInt(LPVARIANT, LPVARIANT); + HRESULT VarNeg(LPVARIANT, LPVARIANT); + HRESULT VarNot(LPVARIANT, LPVARIANT); + HRESULT VarRound(LPVARIANT, int, LPVARIANT); + HRESULT VarCmp(LPVARIANT, LPVARIANT, LCID, ULONG); + HRESULT VarBstrCmp(BSTR, BSTR, LCID, ULONG); + HRESULT VarBstrCat(BSTR, BSTR, BSTR*); +} ADDED src/win32/olectl.d Index: src/win32/olectl.d ================================================================== --- src/win32/olectl.d +++ src/win32/olectl.d @@ -0,0 +1,398 @@ +/***********************************************************************\ +* olectl.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.olectl; + +// In conversion from MinGW, the following was deleted: +//#define FONTSIZE(n) {n##0000, 0} + +import win32.ocidl, win32.olectlid; +private import win32.basetyps, win32.oaidl, win32.oleauto, win32.unknwn, + win32.windef, win32.wingdi, win32.winuser, win32.wtypes; +private import win32.ntdef; // for NTSTATUS +private import win32.objfwd; // for LPSTREAM +private import win32.winerror; // for SCODE + + +private { + // These replace C macros. + template ITF_ERROR_SCODE_FOR_D(int c) + { + const SCODE ITF_ERROR_SCODE_FOR_D + = (SEVERITY_ERROR << 31) | (FACILITY_ITF << 16) | c; + } + + template ITF_SUCCESS_SCODE_FOR_D(int c) + { + const SCODE ITF_SUCCESS_SCODE_FOR_D + = (SEVERITY_SUCCESS << 31) | (FACILITY_ITF << 16) | c; + } + + template STD_CTL_SCODE(int c) + { + const SCODE STD_CTL_SCODE + = (SEVERITY_ERROR << 31) | (FACILITY_CONTROL << 16) | c; + } +} + +enum : SCODE { + CTL_E_ILLEGALFUNCTIONCALL = STD_CTL_SCODE!(5), + CTL_E_OVERFLOW = STD_CTL_SCODE!(6), + CTL_E_OUTOFMEMORY = STD_CTL_SCODE!(7), + CTL_E_DIVISIONBYZERO = STD_CTL_SCODE!(11), + CTL_E_OUTOFSTRINGSPACE = STD_CTL_SCODE!(14), + CTL_E_OUTOFSTACKSPACE = STD_CTL_SCODE!(28), + CTL_E_BADFILENAMEORNUMBER = STD_CTL_SCODE!(52), + CTL_E_FILENOTFOUND = STD_CTL_SCODE!(53), + CTL_E_BADFILEMODE = STD_CTL_SCODE!(54), + CTL_E_FILEALREADYOPEN = STD_CTL_SCODE!(55), + CTL_E_DEVICEIOERROR = STD_CTL_SCODE!(57), + CTL_E_FILEALREADYEXISTS = STD_CTL_SCODE!(58), + CTL_E_BADRECORDLENGTH = STD_CTL_SCODE!(59), + CTL_E_DISKFULL = STD_CTL_SCODE!(61), + CTL_E_BADRECORDNUMBER = STD_CTL_SCODE!(63), + CTL_E_BADFILENAME = STD_CTL_SCODE!(64), + CTL_E_TOOMANYFILES = STD_CTL_SCODE!(67), + CTL_E_DEVICEUNAVAILABLE = STD_CTL_SCODE!(68), + CTL_E_PERMISSIONDENIED = STD_CTL_SCODE!(70), + CTL_E_DISKNOTREADY = STD_CTL_SCODE!(71), + CTL_E_PATHFILEACCESSERROR = STD_CTL_SCODE!(75), + CTL_E_PATHNOTFOUND = STD_CTL_SCODE!(76), + CTL_E_INVALIDPATTERNSTRING = STD_CTL_SCODE!(93), + CTL_E_INVALIDUSEOFNULL = STD_CTL_SCODE!(94), + CTL_E_INVALIDFILEFORMAT = STD_CTL_SCODE!(321), + CTL_E_INVALIDPROPERTYVALUE = STD_CTL_SCODE!(380), + CTL_E_INVALIDPROPERTYARRAYINDEX = STD_CTL_SCODE!(381), + CTL_E_SETNOTSUPPORTEDATRUNTIME = STD_CTL_SCODE!(382), + CTL_E_SETNOTSUPPORTED = STD_CTL_SCODE!(383), + CTL_E_NEEDPROPERTYARRAYINDEX = STD_CTL_SCODE!(385), + CTL_E_SETNOTPERMITTED = STD_CTL_SCODE!(387), + CTL_E_GETNOTSUPPORTEDATRUNTIME = STD_CTL_SCODE!(393), + CTL_E_GETNOTSUPPORTED = STD_CTL_SCODE!(394), + CTL_E_PROPERTYNOTFOUND = STD_CTL_SCODE!(422), + CTL_E_INVALIDCLIPBOARDFORMAT = STD_CTL_SCODE!(460), + CTL_E_INVALIDPICTURE = STD_CTL_SCODE!(481), + CTL_E_PRINTERERROR = STD_CTL_SCODE!(482), + CTL_E_CANTSAVEFILETOTEMP = STD_CTL_SCODE!(735), + CTL_E_SEARCHTEXTNOTFOUND = STD_CTL_SCODE!(744), + CTL_E_REPLACEMENTSTOOLONG = STD_CTL_SCODE!(746), + CTL_E_CUSTOM_FIRST = STD_CTL_SCODE!(600) +} + +const SCODE CLASS_E_NOTLICENSED = CLASSFACTORY_E_FIRST+2; + +enum : SCODE { + CONNECT_E_FIRST = ITF_ERROR_SCODE_FOR_D!(0x200), + CONNECT_E_LAST = ITF_ERROR_SCODE_FOR_D!(0x20F), + CONNECT_S_FIRST = ITF_SUCCESS_SCODE_FOR_D!(0x200), + CONNECT_S_LAST = ITF_SUCCESS_SCODE_FOR_D!(0x20F), + CONNECT_E_NOCONNECTION = CONNECT_E_FIRST + 0, + CONNECT_E_ADVISELIMIT = CONNECT_E_FIRST + 1, + CONNECT_E_CANNOTCONNECT = CONNECT_E_FIRST + 2, + CONNECT_E_OVERRIDDEN = CONNECT_E_FIRST + 3, + + SELFREG_E_FIRST = ITF_ERROR_SCODE_FOR_D!(0x200), + SELFREG_E_LAST = ITF_ERROR_SCODE_FOR_D!(0x20F), + SELFREG_S_FIRST = ITF_SUCCESS_SCODE_FOR_D!(0x200), + SELFREG_S_LAST = ITF_SUCCESS_SCODE_FOR_D!(0x20F), + SELFREG_E_TYPELIB = SELFREG_E_FIRST + 0, + SELFREG_E_CLASS = SELFREG_E_FIRST + 1, + + PERPROP_E_FIRST = ITF_ERROR_SCODE_FOR_D!(0x200), + PERPROP_E_LAST = ITF_ERROR_SCODE_FOR_D!(0x20F), + PERPROP_S_FIRST = ITF_SUCCESS_SCODE_FOR_D!(0x200), + PERPROP_S_LAST = ITF_SUCCESS_SCODE_FOR_D!(0x20F), + PERPROP_E_NOPAGEAVAILABLE = PERPROP_E_FIRST +} + +enum { + OLEMISC_RECOMPOSEONRESIZE = 0x1, + OLEMISC_ONLYICONIC = 0x2, + OLEMISC_INSERTNOTREPLACE = 0x4, + OLEMISC_STATIC = 0x8, + OLEMISC_CANTLINKINSIDE = 0x10, + OLEMISC_CANLINKBYOLE1 = 0x20, + OLEMISC_ISLINKOBJECT = 0x40, + OLEMISC_INSIDEOUT = 0x80, + OLEMISC_ACTIVATEWHENVISIBLE = 0x100, + OLEMISC_RENDERINGISDEVICEINDEPENDENT = 0x200, + OLEMISC_INVISIBLEATRUNTIME = 0x400, + OLEMISC_ALWAYSRUN = 0x800, + OLEMISC_ACTSLIKEBUTTON = 0x1000, + OLEMISC_ACTSLIKELABEL = 0x2000, + OLEMISC_NOUIACTIVATE = 0x4000, + OLEMISC_ALIGNABLE = 0x8000, + OLEMISC_SIMPLEFRAME = 0x10000, + OLEMISC_SETCLIENTSITEFIRST = 0x20000, + OLEMISC_IMEMODE = 0x40000, + OLEMISC_IGNOREACTIVATEWHENVISIBLE = 0x80000, + OLEMISC_WANTSTOMENUMERGE = 0x100000, + OLEMISC_SUPPORTSMULTILEVELUNDO = 0x200000 +} +const OLEIVERB_PROPERTIES = -7; + +const VT_STREAMED_PROPSET = 73; +const VT_STORED_PROPSET = 74; +const VT_BLOB_PROPSET = 75; +const VT_VERBOSE_ENUM = 76; +const VT_COLOR = VARENUM.VT_I4; +const VT_XPOS_PIXELS = VARENUM.VT_I4; +const VT_YPOS_PIXELS = VARENUM.VT_I4; +const VT_XSIZE_PIXELS = VARENUM.VT_I4; +const VT_YSIZE_PIXELS = VARENUM.VT_I4; +const VT_XPOS_HIMETRIC = VARENUM.VT_I4; +const VT_YPOS_HIMETRIC = VARENUM.VT_I4; +const VT_XSIZE_HIMETRIC = VARENUM.VT_I4; +const VT_YSIZE_HIMETRIC = VARENUM.VT_I4; +const VT_TRISTATE = VARENUM.VT_I2; +const VT_OPTEXCLUSIVE = VARENUM.VT_BOOL; +const VT_FONT = VARENUM.VT_DISPATCH; +const VT_PICTURE = VARENUM.VT_DISPATCH; +const VT_HANDLE = VARENUM.VT_I4; + +enum { + OCM__BASE = WM_USER + 0x1c00, + OCM_COMMAND = OCM__BASE + WM_COMMAND, + OCM_CTLCOLORBTN = OCM__BASE + WM_CTLCOLORBTN, + OCM_CTLCOLOREDIT = OCM__BASE + WM_CTLCOLOREDIT, + OCM_CTLCOLORDLG = OCM__BASE + WM_CTLCOLORDLG, + OCM_CTLCOLORLISTBOX = OCM__BASE + WM_CTLCOLORLISTBOX, + OCM_CTLCOLORMSGBOX = OCM__BASE + WM_CTLCOLORMSGBOX, + OCM_CTLCOLORSCROLLBAR = OCM__BASE + WM_CTLCOLORSCROLLBAR, + OCM_CTLCOLORSTATIC = OCM__BASE + WM_CTLCOLORSTATIC, + OCM_DRAWITEM = OCM__BASE + WM_DRAWITEM, + OCM_MEASUREITEM = OCM__BASE + WM_MEASUREITEM, + OCM_DELETEITEM = OCM__BASE + WM_DELETEITEM, + OCM_VKEYTOITEM = OCM__BASE + WM_VKEYTOITEM, + OCM_CHARTOITEM = OCM__BASE + WM_CHARTOITEM, + OCM_COMPAREITEM = OCM__BASE + WM_COMPAREITEM, + OCM_HSCROLL = OCM__BASE + WM_HSCROLL, + OCM_VSCROLL = OCM__BASE + WM_VSCROLL, + OCM_PARENTNOTIFY = OCM__BASE + WM_PARENTNOTIFY, + OCM_NOTIFY = OCM__BASE + WM_NOTIFY +} + +enum { + CTRLINFO_EATS_RETURN = 1, + CTRLINFO_EATS_ESCAPE +} + +enum { + XFORMCOORDS_POSITION = 1, + XFORMCOORDS_SIZE = 2, + XFORMCOORDS_HIMETRICTOCONTAINER = 4, + XFORMCOORDS_CONTAINERTOHIMETRIC = 8 +} + +const GUIDKIND_DEFAULT_SOURCE_DISP_IID = 1; + +enum { + PROPPAGESTATUS_DIRTY = 1, + PROPPAGESTATUS_VALIDATE = 2 +} + +enum { + PICTURE_SCALABLE = 1, + PICTURE_TRANSPARENT = 2 +} + +enum { + PICTYPE_UNINITIALIZED = -1, + PICTYPE_NONE, // = 0 + PICTYPE_BITMAP, + PICTYPE_METAFILE, + PICTYPE_ICON, + PICTYPE_ENHMETAFILE // = 4 +} + +enum { + DISPID_AUTOSIZE = -500, + DISPID_BACKCOLOR = -501, + DISPID_BACKSTYLE = -502, + DISPID_BORDERCOLOR = -503, + DISPID_BORDERSTYLE = -504, + DISPID_BORDERWIDTH = -505, + DISPID_DRAWMODE = -507, + DISPID_DRAWSTYLE = -508, + DISPID_DRAWWIDTH = -509, + DISPID_FILLCOLOR = -510, + DISPID_FILLSTYLE = -511, + DISPID_FONT = -512, + DISPID_FORECOLOR = -513, + DISPID_ENABLED = -514, + DISPID_HWND = -515, + DISPID_TABSTOP = -516, + DISPID_TEXT = -517, + DISPID_CAPTION = -518, + DISPID_BORDERVISIBLE = -519, + DISPID_APPEARANCE = -520, + DISPID_MOUSEPOINTER = -521, + DISPID_MOUSEICON = -522, + DISPID_PICTURE = -523, + DISPID_VALID = -524, + DISPID_REFRESH = -550, + DISPID_DOCLICK = -551, + DISPID_ABOUTBOX = -552, + DISPID_CLICK = -600, + DISPID_DBLCLICK = -601, + DISPID_KEYDOWN = -602, + DISPID_KEYPRESS = -603, + DISPID_KEYUP = -604, + DISPID_MOUSEDOWN = -605, + DISPID_MOUSEMOVE = -606, + DISPID_MOUSEUP = -607, + DISPID_ERROREVENT = -608, + DISPID_AMBIENT_BACKCOLOR = -701, + DISPID_AMBIENT_DISPLAYNAME = -702, + DISPID_AMBIENT_FONT = -703, + DISPID_AMBIENT_FORECOLOR = -704, + DISPID_AMBIENT_LOCALEID = -705, + DISPID_AMBIENT_MESSAGEREFLECT = -706, + DISPID_AMBIENT_SCALEUNITS = -707, + DISPID_AMBIENT_TEXTALIGN = -708, + DISPID_AMBIENT_USERMODE = -709, + DISPID_AMBIENT_UIDEAD = -710, + DISPID_AMBIENT_SHOWGRABHANDLES = -711, + DISPID_AMBIENT_SHOWHATCHING = -712, + DISPID_AMBIENT_DISPLAYASDEFAULT = -713, + DISPID_AMBIENT_SUPPORTSMNEMONICS = -714, + DISPID_AMBIENT_AUTOCLIP = -715, + DISPID_AMBIENT_APPEARANCE = -716, + DISPID_AMBIENT_CODEPAGE = -725, + DISPID_AMBIENT_PALETTE = -726, + DISPID_AMBIENT_CHARSET = -727, + DISPID_AMBIENT_RIGHTTOLEFT = -732, + DISPID_AMBIENT_TOPTOBOTTOM = -733 +} + +enum { + DISPID_FONT_NAME = 0, + DISPID_FONT_SIZE = 2, + DISPID_FONT_BOLD, + DISPID_FONT_ITALIC, + DISPID_FONT_UNDER, + DISPID_FONT_STRIKE, + DISPID_FONT_WEIGHT, + DISPID_FONT_CHARSET // = 8 +} + +enum { + DISPID_PICT_HANDLE = 0, + DISPID_PICT_HPAL = 2, + DISPID_PICT_TYPE, + DISPID_PICT_WIDTH, + DISPID_PICT_HEIGHT, + DISPID_PICT_RENDER // = 6 +} + +alias IOleControl *LPOLECONTROL; +alias IOleControlSite *LPOLECONTROLSITE; +alias ISimpleFrameSite *LPSIMPLEFRAMESITE; +alias IPersistPropertyBag *LPPERSISTPROPERTYBAG; +alias IPersistStreamInit *LPPERSISTSTREAMINIT; +alias IPersistMemory *LPPERSISTMEMORY; +alias IPropertyNotifySink* LPPROPERTYNOTIFYSINK; +alias IProvideClassInfo *LPPROVIDECLASSINFO; +alias IProvideClassInfo2 *LPPROVIDECLASSINFO2; +alias IConnectionPointContainer *LPCONNECTIONPOINTCONTAINER; +alias IClassFactory2 *LPCLASSFACTORY2; +alias ISpecifyPropertyPages *LPSPECIFYPROPERTYPAGES; +alias IPerPropertyBrowsing *LPPERPROPERTYBROWSING; +alias IPropertyPage *LPPROPERTYPAGE; +alias IPropertyPage2 *LPPROPERTYPAGE2; + +alias IPicture *LPPICTURE; +alias IPictureDisp *LPPICTUREDISP; +alias int OLE_XPOS_PIXELS; +alias int OLE_YPOS_PIXELS; +alias int OLE_XSIZE_PIXELS; +alias int OLE_YSIZE_PIXELS; +alias float OLE_XPOS_CONTAINER; +alias float OLE_YPOS_CONTAINER; +alias float OLE_XSIZE_CONTAINER; + +alias VARIANT_BOOL OLE_OPTEXCLUSIVE; +alias VARIANT_BOOL OLE_CANCELBOOL; +alias VARIANT_BOOL OLE_ENABLEDEFAULTBOOL; + +align(8): + +enum OLE_TRISTATE { + triUnchecked, + triChecked1, + triGray +} + +struct OCPFIPARAMS { + ULONG cbStructSize; + HWND hWndOwner; + int x; + int y; + LPCOLESTR lpszCaption; + ULONG cObjects; + LPUNKNOWN *lplpUnk; + ULONG cPages; + CLSID *lpPages; + LCID lcid; + DISPID dispidInitialProperty; +} +alias OCPFIPARAMS* LPOCPFIPARAMS; + +struct FONTDESC { + UINT cbSizeofstruct; + LPOLESTR lpstrName; + CY cySize; + SHORT sWeight; + SHORT sCharset; + BOOL fItalic; + BOOL fUnderline; + BOOL fStrikethrough; +} +alias FONTDESC* LPFONTDESC; + +struct PICTDESC +{ + UINT cbSizeofstruct; + UINT picType; + union { + struct bmp { + HBITMAP hbitmap; + HPALETTE hpal; + } + struct wmf { + HMETAFILE hmeta; + int xExt; + int yExt; + } + struct icon { + HICON hicon; + } + struct emf { + HENHMETAFILE hemf; + } + } +} +alias PICTDESC* LPPICTDESC; + +extern(Windows) { + HRESULT DllRegisterServer(); + HRESULT DllUnregisterServer(); + HRESULT OleCreateFontIndirect(LPFONTDESC, REFIID, PVOID*); + HRESULT OleCreatePictureIndirect(LPPICTDESC, REFIID, BOOL, PVOID*); + HRESULT OleCreatePropertyFrame(HWND, UINT, UINT, LPCOLESTR, ULONG, LPUNKNOWN*, ULONG, LPCLSID, LCID, DWORD, PVOID); + HRESULT OleCreatePropertyFrameIndirect(LPOCPFIPARAMS); + HCURSOR OleIconToCursor(HINSTANCE, HICON); + HRESULT OleLoadPicture(LPSTREAM, LONG, BOOL, REFIID, PVOID*); + HRESULT OleLoadPictureEx(LPSTREAM, LONG, BOOL, REFIID, DWORD, DWORD, DWORD, LPVOID*); + HRESULT OleLoadPicturePath(LPOLESTR, LPUNKNOWN, DWORD, OLE_COLOR, REFIID, LPVOID*); + HRESULT OleLoadPictureFile(VARIANT, LPDISPATCH*); + HRESULT OleLoadPictureFileEx(VARIANT, DWORD, DWORD, DWORD, LPDISPATCH*); + HRESULT OleSavePictureFile(LPDISPATCH, BSTR); + HRESULT OleTranslateColor(OLE_COLOR, HPALETTE, COLORREF*); +} ADDED src/win32/olectlid.d Index: src/win32/olectlid.d ================================================================== --- src/win32/olectlid.d +++ src/win32/olectlid.d @@ -0,0 +1,13 @@ +/***********************************************************************\ +* olectlid.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.olectlid; + +private import win32.basetyps; + ADDED src/win32/oledlg.d Index: src/win32/oledlg.d ================================================================== --- src/win32/oledlg.d +++ src/win32/oledlg.d @@ -0,0 +1,990 @@ +/***********************************************************************\ +* oledlg.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.oledlg; + +import win32.commdlg, win32.dlgs, win32.ole2, win32.prsht, win32.shellapi, + win32.windows; +private import win32.winbase, win32.objidl, win32.objfwd, win32.winnt; + +// FIXME: remove inherited methods from interface definitions + +const PS_MAXLINKTYPES=8; + +const TCHAR[] OLESTDDELIM = "\\"; +const TCHAR[] SZOLEUI_MSG_HELP = "OLEUI_MSG_HELP"; +const TCHAR[] SZOLEUI_MSG_ENDDIALOG = "OLEUI_MSG_ENDDIALOG"; +const TCHAR[] SZOLEUI_MSG_BROWSE = "OLEUI_MSG_BROWSE"; +const TCHAR[] SZOLEUI_MSG_CHANGEICON = "OLEUI_MSG_CHANGEICON"; +const TCHAR[] SZOLEUI_MSG_CLOSEBUSYDIALOG = "OLEUI_MSG_CLOSEBUSYDIALOG"; +const TCHAR[] SZOLEUI_MSG_CONVERT = "OLEUI_MSG_CONVERT"; +const TCHAR[] SZOLEUI_MSG_CHANGESOURCE = "OLEUI_MSG_CHANGESOURCE"; +const TCHAR[] SZOLEUI_MSG_ADDCONTROL = "OLEUI_MSG_ADDCONTROL"; +const TCHAR[] SZOLEUI_MSG_BROWSE_OFN = "OLEUI_MSG_BROWSE_OFN"; + +const TCHAR[] PROP_HWND_CHGICONDLG = "HWND_CIDLG"; + +const IDC_OLEUIHELP=99; + +enum { + IDC_IO_CREATENEW = 2100, + IDC_IO_CREATEFROMFILE, + IDC_IO_LINKFILE, + IDC_IO_OBJECTTYPELIST, + IDC_IO_DISPLAYASICON, + IDC_IO_CHANGEICON, + IDC_IO_FILE, + IDC_IO_FILEDISPLAY, + IDC_IO_RESULTIMAGE, + IDC_IO_RESULTTEXT, + IDC_IO_ICONDISPLAY, + IDC_IO_OBJECTTYPETEXT, + IDC_IO_FILETEXT, + IDC_IO_FILETYPE, + IDC_IO_INSERTCONTROL, + IDC_IO_ADDCONTROL, + IDC_IO_CONTROLTYPELIST // = 2116 +} + +const IDC_PS_PASTE=500; +const IDC_PS_PASTELINK=501; +const IDC_PS_SOURCETEXT=502; +const IDC_PS_PASTELIST=503; +const IDC_PS_PASTELINKLIST=504; +const IDC_PS_DISPLAYLIST=505; +const IDC_PS_DISPLAYASICON=506; +const IDC_PS_ICONDISPLAY=507; +const IDC_PS_CHANGEICON=508; +const IDC_PS_RESULTIMAGE=509; +const IDC_PS_RESULTTEXT=510; + +const IDC_CI_GROUP=120; +const IDC_CI_CURRENT=121; +const IDC_CI_CURRENTICON=122; +const IDC_CI_DEFAULT=123; +const IDC_CI_DEFAULTICON=124; +const IDC_CI_FROMFILE=125; +const IDC_CI_FROMFILEEDIT=126; +const IDC_CI_ICONLIST=127; +const IDC_CI_LABEL=128; +const IDC_CI_LABELEDIT=129; +const IDC_CI_BROWSE=130; +const IDC_CI_ICONDISPLAY=131; + +const IDC_CV_OBJECTTYPE=150; +const IDC_CV_DISPLAYASICON=152; +const IDC_CV_CHANGEICON=153; +const IDC_CV_ACTIVATELIST=154; +const IDC_CV_CONVERTTO=155; +const IDC_CV_ACTIVATEAS=156; +const IDC_CV_RESULTTEXT=157; +const IDC_CV_CONVERTLIST=158; +const IDC_CV_ICONDISPLAY=165; + +const IDC_EL_CHANGESOURCE=201; +const IDC_EL_AUTOMATIC=202; +const IDC_EL_CANCELLINK=209; +const IDC_EL_UPDATENOW=210; +const IDC_EL_OPENSOURCE=211; +const IDC_EL_MANUAL=212; +const IDC_EL_LINKSOURCE=216; +const IDC_EL_LINKTYPE=217; +const IDC_EL_LINKSLISTBOX=206; +const IDC_EL_COL1=220; +const IDC_EL_COL2=221; +const IDC_EL_COL3=222; + +const IDC_BZ_RETRY=600; +const IDC_BZ_ICON=601; +const IDC_BZ_MESSAGE1=602; +const IDC_BZ_SWITCHTO=604; + +const IDC_UL_METER=1029; +const IDC_UL_STOP=1030; +const IDC_UL_PERCENT=1031; +const IDC_UL_PROGRESS=1032; + +const IDC_PU_LINKS=900; +const IDC_PU_TEXT=901; +const IDC_PU_CONVERT=902; +const IDC_PU_ICON=908; + +const IDC_GP_OBJECTNAME=1009; +const IDC_GP_OBJECTTYPE=1010; +const IDC_GP_OBJECTSIZE=1011; +const IDC_GP_CONVERT=1013; +const IDC_GP_OBJECTICON=1014; +const IDC_GP_OBJECTLOCATION=1022; + +const IDC_VP_PERCENT=1000; +const IDC_VP_CHANGEICON=1001; +const IDC_VP_EDITABLE=1002; +const IDC_VP_ASICON=1003; +const IDC_VP_RELATIVE=1005; +const IDC_VP_SPIN=1006; +const IDC_VP_SCALETXT=1034; +const IDC_VP_ICONDISPLAY=1021; +const IDC_VP_RESULTIMAGE=1033; + +const IDC_LP_OPENSOURCE=1006; +const IDC_LP_UPDATENOW=1007; +const IDC_LP_BREAKLINK=1008; +const IDC_LP_LINKSOURCE=1012; +const IDC_LP_CHANGESOURCE=1015; +const IDC_LP_AUTOMATIC=1016; +const IDC_LP_MANUAL=1017; +const IDC_LP_DATE=1018; +const IDC_LP_TIME=1019; + +const IDD_INSERTOBJECT=1000; +const IDD_CHANGEICON=1001; +const IDD_CONVERT=1002; +const IDD_PASTESPECIAL=1003; +const IDD_EDITLINKS=1004; +const IDD_BUSY=1006; +const IDD_UPDATELINKS=1007; +const IDD_CHANGESOURCE=1009; +const IDD_INSERTFILEBROWSE=1010; +const IDD_CHANGEICONBROWSE=1011; +const IDD_CONVERTONLY=1012; +const IDD_CHANGESOURCE4=1013; +const IDD_GNRLPROPS=1100; +const IDD_VIEWPROPS=1101; +const IDD_LINKPROPS=1102; +const IDD_CANNOTUPDATELINK=1008; +const IDD_LINKSOURCEUNAVAILABLE=1020; +const IDD_SERVERNOTFOUND=1023; +const IDD_OUTOFMEMORY=1024; +const IDD_SERVERNOTREGW=1021; +const IDD_LINKTYPECHANGEDW=1022; +const IDD_SERVERNOTREGA=1025; +const IDD_LINKTYPECHANGEDA=1026; + +const ID_BROWSE_CHANGEICON=1; +const ID_BROWSE_INSERTFILE=2; +const ID_BROWSE_ADDCONTROL=3; +const ID_BROWSE_CHANGESOURCE=4; + +const OLEUI_FALSE=0; +const OLEUI_SUCCESS=1; +const OLEUI_OK=1; +const OLEUI_CANCEL=2; + +const OLEUI_ERR_STANDARDMIN=100; +const OLEUI_ERR_STRUCTURENULL=101; +const OLEUI_ERR_STRUCTUREINVALID=102; +const OLEUI_ERR_CBSTRUCTINCORRECT=103; +const OLEUI_ERR_HWNDOWNERINVALID=104; +const OLEUI_ERR_LPSZCAPTIONINVALID=105; +const OLEUI_ERR_LPFNHOOKINVALID=106; +const OLEUI_ERR_HINSTANCEINVALID=107; +const OLEUI_ERR_LPSZTEMPLATEINVALID=108; +const OLEUI_ERR_HRESOURCEINVALID=109; +const OLEUI_ERR_FINDTEMPLATEFAILURE=110; +const OLEUI_ERR_LOADTEMPLATEFAILURE=111; +const OLEUI_ERR_DIALOGFAILURE=112; +const OLEUI_ERR_LOCALMEMALLOC=113; +const OLEUI_ERR_GLOBALMEMALLOC=114; +const OLEUI_ERR_LOADSTRING=115; +const OLEUI_ERR_OLEMEMALLOC=116; +const OLEUI_ERR_STANDARDMAX=116; + +const OPF_OBJECTISLINK=1; +const OPF_NOFILLDEFAULT=2; +const OPF_SHOWHELP=4; +const OPF_DISABLECONVERT=8; + +const OLEUI_OPERR_SUBPROPNULL=OLEUI_ERR_STANDARDMAX; +const OLEUI_OPERR_SUBPROPINVALID=(OLEUI_ERR_STANDARDMAX+1); +const OLEUI_OPERR_PROPSHEETNULL=(OLEUI_ERR_STANDARDMAX+2); +const OLEUI_OPERR_PROPSHEETINVALID=(OLEUI_ERR_STANDARDMAX+3); +const OLEUI_OPERR_SUPPROP=(OLEUI_ERR_STANDARDMAX+4); +const OLEUI_OPERR_PROPSINVALID=(OLEUI_ERR_STANDARDMAX+5); +const OLEUI_OPERR_PAGESINCORRECT=(OLEUI_ERR_STANDARDMAX+6); +const OLEUI_OPERR_INVALIDPAGES=(OLEUI_ERR_STANDARDMAX+7); +const OLEUI_OPERR_NOTSUPPORTED=(OLEUI_ERR_STANDARDMAX+8); +const OLEUI_OPERR_DLGPROCNOTNULL=(OLEUI_ERR_STANDARDMAX+9); +const OLEUI_OPERR_LPARAMNOTZERO=(OLEUI_ERR_STANDARDMAX+10); +const OLEUI_GPERR_STRINGINVALID=(OLEUI_ERR_STANDARDMAX+11); +const OLEUI_GPERR_CLASSIDINVALID=(OLEUI_ERR_STANDARDMAX+12); +const OLEUI_GPERR_LPCLSIDEXCLUDEINVALID=(OLEUI_ERR_STANDARDMAX+13); +const OLEUI_GPERR_CBFORMATINVALID=(OLEUI_ERR_STANDARDMAX+14); +const OLEUI_VPERR_METAPICTINVALID=(OLEUI_ERR_STANDARDMAX+15); +const OLEUI_VPERR_DVASPECTINVALID=(OLEUI_ERR_STANDARDMAX+16); +const OLEUI_LPERR_LINKCNTRNULL=(OLEUI_ERR_STANDARDMAX+17); +const OLEUI_LPERR_LINKCNTRINVALID=(OLEUI_ERR_STANDARDMAX+18); +const OLEUI_OPERR_PROPERTYSHEET=(OLEUI_ERR_STANDARDMAX+19); +const OLEUI_OPERR_OBJINFOINVALID=(OLEUI_ERR_STANDARDMAX+20); +const OLEUI_OPERR_LINKINFOINVALID=(OLEUI_ERR_STANDARDMAX+21); + +const OLEUI_QUERY_GETCLASSID=65280; +const OLEUI_QUERY_LINKBROKEN=65281; + +const IOF_SHOWHELP=1; +const IOF_SELECTCREATENEW=2; +const IOF_SELECTCREATEFROMFILE=4; +const IOF_CHECKLINK=8; +const IOF_CHECKDISPLAYASICON=16; +const IOF_CREATENEWOBJECT=32; +const IOF_CREATEFILEOBJECT=64; +const IOF_CREATELINKOBJECT=128; +const IOF_DISABLELINK=256; +const IOF_VERIFYSERVERSEXIST=512; +const IOF_DISABLEDISPLAYASICON=1024; +const IOF_HIDECHANGEICON=2048; +const IOF_SHOWINSERTCONTROL=4096; +const IOF_SELECTCREATECONTROL=8192; + +const OLEUI_IOERR_LPSZFILEINVALID=OLEUI_ERR_STANDARDMAX; +const OLEUI_IOERR_LPSZLABELINVALID=(OLEUI_ERR_STANDARDMAX+1); +const OLEUI_IOERR_HICONINVALID=(OLEUI_ERR_STANDARDMAX+2); +const OLEUI_IOERR_LPFORMATETCINVALID=(OLEUI_ERR_STANDARDMAX+3); +const OLEUI_IOERR_PPVOBJINVALID=(OLEUI_ERR_STANDARDMAX+4); +const OLEUI_IOERR_LPIOLECLIENTSITEINVALID=(OLEUI_ERR_STANDARDMAX+5); +const OLEUI_IOERR_LPISTORAGEINVALID=(OLEUI_ERR_STANDARDMAX+6); +const OLEUI_IOERR_SCODEHASERROR=(OLEUI_ERR_STANDARDMAX+7); +const OLEUI_IOERR_LPCLSIDEXCLUDEINVALID=(OLEUI_ERR_STANDARDMAX+8); +const OLEUI_IOERR_CCHFILEINVALID=(OLEUI_ERR_STANDARDMAX+9); + +const PSF_SHOWHELP=1; +const PSF_SELECTPASTE=2; +const PSF_SELECTPASTELINK=4; +const PSF_CHECKDISPLAYASICON=8; +const PSF_DISABLEDISPLAYASICON=16; +const PSF_HIDECHANGEICON=32; +const PSF_STAYONCLIPBOARDCHANGE=64; +const PSF_NOREFRESHDATAOBJECT=128; + +const OLEUI_IOERR_SRCDATAOBJECTINVALID=OLEUI_ERR_STANDARDMAX; +const OLEUI_IOERR_ARRPASTEENTRIESINVALID=(OLEUI_ERR_STANDARDMAX+1); +const OLEUI_IOERR_ARRLINKTYPESINVALID=(OLEUI_ERR_STANDARDMAX+2); +const OLEUI_PSERR_CLIPBOARDCHANGED=(OLEUI_ERR_STANDARDMAX+3); +const OLEUI_PSERR_GETCLIPBOARDFAILED=(OLEUI_ERR_STANDARDMAX+4); +const OLEUI_ELERR_LINKCNTRNULL=OLEUI_ERR_STANDARDMAX; +const OLEUI_ELERR_LINKCNTRINVALID=(OLEUI_ERR_STANDARDMAX+1); + +const ELF_SHOWHELP=1; +const ELF_DISABLEUPDATENOW=2; +const ELF_DISABLEOPENSOURCE=4; +const ELF_DISABLECHANGESOURCE=8; +const ELF_DISABLECANCELLINK=16; + +const CIF_SHOWHELP=1; +const CIF_SELECTCURRENT=2; +const CIF_SELECTDEFAULT=4; +const CIF_SELECTFROMFILE=8; +const CIF_USEICONEXE=16; + +const OLEUI_CIERR_MUSTHAVECLSID=OLEUI_ERR_STANDARDMAX; +const OLEUI_CIERR_MUSTHAVECURRENTMETAFILE=OLEUI_ERR_STANDARDMAX+1; +const OLEUI_CIERR_SZICONEXEINVALID=OLEUI_ERR_STANDARDMAX+2; + +const CF_SHOWHELPBUTTON=1; +const CF_SETCONVERTDEFAULT=2; +const CF_SETACTIVATEDEFAULT=4; +const CF_SELECTCONVERTTO=8; +const CF_SELECTACTIVATEAS=16; +const CF_DISABLEDISPLAYASICON=32; +const CF_DISABLEACTIVATEAS=64; +const CF_HIDECHANGEICON=128; +const CF_CONVERTONLY=256; + +const OLEUI_CTERR_CLASSIDINVALID = OLEUI_ERR_STANDARDMAX+1; +const OLEUI_CTERR_DVASPECTINVALID = OLEUI_ERR_STANDARDMAX+2; +const OLEUI_CTERR_CBFORMATINVALID = OLEUI_ERR_STANDARDMAX+3; +const OLEUI_CTERR_HMETAPICTINVALID = OLEUI_ERR_STANDARDMAX+4; +const OLEUI_CTERR_STRINGINVALID = OLEUI_ERR_STANDARDMAX+5; + +const BZ_DISABLECANCELBUTTON = 1; +const BZ_DISABLESWITCHTOBUTTON = 2; +const BZ_DISABLERETRYBUTTON = 4; +const BZ_NOTRESPONDINGDIALOG = 8; + +const OLEUI_BZERR_HTASKINVALID = OLEUI_ERR_STANDARDMAX; +const OLEUI_BZ_SWITCHTOSELECTED = OLEUI_ERR_STANDARDMAX+1; +const OLEUI_BZ_RETRYSELECTED = OLEUI_ERR_STANDARDMAX+2; +const OLEUI_BZ_CALLUNBLOCKED = OLEUI_ERR_STANDARDMAX+3; + +const CSF_SHOWHELP = 1; +const CSF_VALIDSOURCE = 2; +const CSF_ONLYGETSOURCE = 4; +const CSF_EXPLORER = 8; + +const OLEUI_CSERR_LINKCNTRNULL = OLEUI_ERR_STANDARDMAX; +const OLEUI_CSERR_LINKCNTRINVALID = OLEUI_ERR_STANDARDMAX+1; +const OLEUI_CSERR_FROMNOTNULL = OLEUI_ERR_STANDARDMAX+2; +const OLEUI_CSERR_TONOTNULL = OLEUI_ERR_STANDARDMAX+3; +const OLEUI_CSERR_SOURCENULL = OLEUI_ERR_STANDARDMAX+4; +const OLEUI_CSERR_SOURCEINVALID = OLEUI_ERR_STANDARDMAX+5; +const OLEUI_CSERR_SOURCEPARSERROR = OLEUI_ERR_STANDARDMAX+6; +const OLEUI_CSERR_SOURCEPARSEERROR = OLEUI_ERR_STANDARDMAX+7; + +const VPF_SELECTRELATIVE=1; +const VPF_DISABLERELATIVE=2; +const VPF_DISABLESCALE=4; + +align(8): +extern (Windows) { + alias UINT function(HWND, UINT, WPARAM, LPARAM) LPFNOLEUIHOOK; +} + +struct OLEUIINSERTOBJECTW { + DWORD cbStruct; + DWORD dwFlags; + HWND hWndOwner; + LPCWSTR lpszCaption; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + HINSTANCE hInstance; + LPCWSTR lpszTemplate; + HRSRC hResource; + CLSID clsid; + LPWSTR lpszFile; + UINT cchFile; + UINT cClsidExclude; + LPCLSID lpClsidExclude; + IID iid; + DWORD oleRender; + LPFORMATETC lpFormatEtc; + LPOLECLIENTSITE lpIOleClientSite; + LPSTORAGE lpIStorage; + PVOID *ppvObj; + SCODE sc; + HGLOBAL hMetaPict; +} +alias OLEUIINSERTOBJECTW* POLEUIINSERTOBJECTW, LPOLEUIINSERTOBJECTW; + +struct OLEUIINSERTOBJECTA { + DWORD cbStruct; + DWORD dwFlags; + HWND hWndOwner; + LPCSTR lpszCaption; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + HINSTANCE hInstance; + LPCSTR lpszTemplate; + HRSRC hResource; + CLSID clsid; + LPSTR lpszFile; + UINT cchFile; + UINT cClsidExclude; + LPCLSID lpClsidExclude; + IID iid; + DWORD oleRender; + LPFORMATETC lpFormatEtc; + LPOLECLIENTSITE lpIOleClientSite; + LPSTORAGE lpIStorage; + PVOID *ppvObj; + SCODE sc; + HGLOBAL hMetaPict; +} +alias OLEUIINSERTOBJECTA* POLEUIINSERTOBJECTA, LPOLEUIINSERTOBJECTA; + +UINT OleUIInsertObjectW(LPOLEUIINSERTOBJECTW); +UINT OleUIInsertObjectA(LPOLEUIINSERTOBJECTA); + +enum OLEUIPASTEFLAG { + OLEUIPASTE_PASTEONLY, + OLEUIPASTE_LINKTYPE1, + OLEUIPASTE_LINKTYPE2, + OLEUIPASTE_LINKTYPE3 = 4, + OLEUIPASTE_LINKTYPE4 = 8, + OLEUIPASTE_LINKTYPE5 = 16, + OLEUIPASTE_LINKTYPE6 = 32, + OLEUIPASTE_LINKTYPE7 = 64, + OLEUIPASTE_LINKTYPE8 = 128, + OLEUIPASTE_PASTE = 512, + OLEUIPASTE_LINKANYTYPE = 1024, + OLEUIPASTE_ENABLEICON = 2048 +} + +struct OLEUIPASTEENTRYW { + FORMATETC fmtetc; + LPCWSTR lpstrFormatName; + LPCWSTR lpstrResultText; + DWORD dwFlags; + DWORD dwScratchSpace; +} +alias OLEUIPASTEENTRYW* POLEUIPASTEENTRYW, LPOLEUIPASTEENTRYW; + +struct OLEUIPASTEENTRYA { + FORMATETC fmtetc; + LPCSTR lpstrFormatName; + LPCSTR lpstrResultText; + DWORD dwFlags; + DWORD dwScratchSpace; +} +alias OLEUIPASTEENTRYA* POLEUIPASTEENTRYA, LPOLEUIPASTEENTRYA; + +struct OLEUIPASTESPECIALW { + DWORD cbStruct; + DWORD dwFlags; + HWND hWndOwner; + LPCWSTR lpszCaption; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + HINSTANCE hInstance; + LPCWSTR lpszTemplate; + HRSRC hResource; + LPDATAOBJECT lpSrcDataObj; + LPOLEUIPASTEENTRYW arrPasteEntries; + int cPasteEntries; + UINT *arrLinkTypes; + int cLinkTypes; + UINT cClsidExclude; + LPCLSID lpClsidExclude; + int nSelectedIndex; + BOOL fLink; + HGLOBAL hMetaPict; + SIZEL sizel; +} +alias OLEUIPASTESPECIALW* POLEUIPASTESPECIALW, LPOLEUIPASTESPECIALW; + +struct OLEUIPASTESPECIALA { + DWORD cbStruct; + DWORD dwFlags; + HWND hWndOwner; + LPCSTR lpszCaption; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + HINSTANCE hInstance; + LPCSTR lpszTemplate; + HRSRC hResource; + LPDATAOBJECT lpSrcDataObj; + LPOLEUIPASTEENTRYA arrPasteEntries; + int cPasteEntries; + UINT* arrLinkTypes; + int cLinkTypes; + UINT cClsidExclude; + LPCLSID lpClsidExclude; + int nSelectedIndex; + BOOL fLink; + HGLOBAL hMetaPict; + SIZEL sizel; +} +alias OLEUIPASTESPECIALA* POLEUIPASTESPECIALA, LPOLEUIPASTESPECIALA; + +interface IOleUILinkContainerW : IUnknown +{ + HRESULT QueryInterface(REFIID, PVOID*); + ULONG AddRef(); + ULONG Release(); + DWORD GetNextLink(DWORD dwLink); + HRESULT SetLinkUpdateOptions(DWORD, DWORD); + HRESULT GetLinkUpdateOptions(DWORD, PDWORD); + HRESULT SetLinkSource(DWORD, LPWSTR, ULONG, PULONG, BOOL); + HRESULT GetLinkSource(DWORD, LPWSTR*, PULONG, LPWSTR*, LPWSTR*, BOOL*, BOOL*); + HRESULT OpenLinkSource(DWORD); + HRESULT UpdateLink(DWORD, BOOL, BOOL); + HRESULT CancelLink(DWORD); +} +alias IOleUILinkContainerW* LPOLEUILINKCONTAINERW; + +interface IOleUILinkContainerA : IUnknown +{ + HRESULT QueryInterface(REFIID, PVOID*); + ULONG AddRef(); + ULONG Release(); + DWORD GetNextLink(DWORD); + HRESULT SetLinkUpdateOptions(DWORD, DWORD); + HRESULT GetLinkUpdateOptions(DWORD, PDWORD); + HRESULT SetLinkSource(DWORD, LPSTR, ULONG, PULONG, BOOL); + HRESULT GetLinkSource(DWORD, LPSTR*, PULONG, LPSTR*, LPSTR*, BOOL*, BOOL*); + HRESULT OpenLinkSource(DWORD); + HRESULT UpdateLink(DWORD, BOOL, BOOL); + HRESULT CancelLink(DWORD); +} +alias IOleUILinkContainerA* LPOLEUILINKCONTAINERA; + +struct OLEUIEDITLINKSW { + DWORD cbStruct; + DWORD dwFlags; + HWND hWndOwner; + LPCWSTR lpszCaption; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + HINSTANCE hInstance; + LPCWSTR lpszTemplate; + HRSRC hResource; + LPOLEUILINKCONTAINERW lpOleUILinkContainer; +} +alias OLEUIEDITLINKSW* POLEUIEDITLINKSW, LPOLEUIEDITLINKSW; + +struct OLEUIEDITLINKSA { + DWORD cbStruct; + DWORD dwFlags; + HWND hWndOwner; + LPCSTR lpszCaption; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + HINSTANCE hInstance; + LPCSTR lpszTemplate; + HRSRC hResource; + LPOLEUILINKCONTAINERA lpOleUILinkContainer; +} +alias OLEUIEDITLINKSA* POLEUIEDITLINKSA, LPOLEUIEDITLINKSA; + +struct OLEUICHANGEICONW { + DWORD cbStruct; + DWORD dwFlags; + HWND hWndOwner; + LPCWSTR lpszCaption; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + HINSTANCE hInstance; + LPCWSTR lpszTemplate; + HRSRC hResource; + HGLOBAL hMetaPict; + CLSID clsid; + WCHAR szIconExe[MAX_PATH]; + int cchIconExe; +} +alias OLEUICHANGEICONW* POLEUICHANGEICONW, LPOLEUICHANGEICONW; + +struct OLEUICHANGEICONA { + DWORD cbStruct; + DWORD dwFlags; + HWND hWndOwner; + LPCSTR lpszCaption; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + HINSTANCE hInstance; + LPCSTR lpszTemplate; + HRSRC hResource; + HGLOBAL hMetaPict; + CLSID clsid; + CHAR szIconExe[MAX_PATH]; + int cchIconExe; +} +alias OLEUICHANGEICONA* POLEUICHANGEICONA, LPOLEUICHANGEICONA; + +struct OLEUICONVERTW { + DWORD cbStruct; + DWORD dwFlags; + HWND hWndOwner; + LPCWSTR lpszCaption; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + HINSTANCE hInstance; + LPCWSTR lpszTemplate; + HRSRC hResource; + CLSID clsid; + CLSID clsidConvertDefault; + CLSID clsidActivateDefault; + CLSID clsidNew; + DWORD dvAspect; + WORD wFormat; + BOOL fIsLinkedObject; + HGLOBAL hMetaPict; + LPWSTR lpszUserType; + BOOL fObjectsIconChanged; + LPWSTR lpszDefLabel; + UINT cClsidExclude; + LPCLSID lpClsidExclude; +} +alias OLEUICONVERTW* POLEUICONVERTW, LPOLEUICONVERTW; + +struct OLEUICONVERTA { + DWORD cbStruct; + DWORD dwFlags; + HWND hWndOwner; + LPCSTR lpszCaption; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + HINSTANCE hInstance; + LPCSTR lpszTemplate; + HRSRC hResource; + CLSID clsid; + CLSID clsidConvertDefault; + CLSID clsidActivateDefault; + CLSID clsidNew; + DWORD dvAspect; + WORD wFormat; + BOOL fIsLinkedObject; + HGLOBAL hMetaPict; + LPSTR lpszUserType; + BOOL fObjectsIconChanged; + LPSTR lpszDefLabel; + UINT cClsidExclude; + LPCLSID lpClsidExclude; +} +alias OLEUICONVERTA* POLEUICONVERTA, LPOLEUICONVERTA; + +struct OLEUIBUSYW { + DWORD cbStruct; + DWORD dwFlags; + HWND hWndOwner; + LPCWSTR lpszCaption; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + HINSTANCE hInstance; + LPCWSTR lpszTemplate; + HRSRC hResource; + HTASK hTask; + HWND *lphWndDialog; +} +alias OLEUIBUSYW* POLEUIBUSYW, LPOLEUIBUSYW; + +struct OLEUIBUSYA { + DWORD cbStruct; + DWORD dwFlags; + HWND hWndOwner; + LPCSTR lpszCaption; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + HINSTANCE hInstance; + LPCSTR lpszTemplate; + HRSRC hResource; + HTASK hTask; + HWND *lphWndDialog; +} +alias OLEUIBUSYA* POLEUIBUSYA, LPOLEUIBUSYA; + +struct OLEUICHANGESOURCEW { + DWORD cbStruct; + DWORD dwFlags; + HWND hWndOwner; + LPCWSTR lpszCaption; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + HINSTANCE hInstance; + LPCWSTR lpszTemplate; + HRSRC hResource; + OPENFILENAMEW* lpOFN; + DWORD dwReserved1[4]; + LPOLEUILINKCONTAINERW lpOleUILinkContainer; + DWORD dwLink; + LPWSTR lpszDisplayName; + ULONG nFileLength; + LPWSTR lpszFrom; + LPWSTR lpszTo; +} +alias OLEUICHANGESOURCEW* POLEUICHANGESOURCEW, LPOLEUICHANGESOURCEW; + +struct OLEUICHANGESOURCEA { + DWORD cbStruct; + DWORD dwFlags; + HWND hWndOwner; + LPCSTR lpszCaption; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + HINSTANCE hInstance; + LPCSTR lpszTemplate; + HRSRC hResource; + OPENFILENAMEA *lpOFN; + DWORD dwReserved1[4]; + LPOLEUILINKCONTAINERA lpOleUILinkContainer; + DWORD dwLink; + LPSTR lpszDisplayName; + ULONG nFileLength; + LPSTR lpszFrom; + LPSTR lpszTo; +} +alias OLEUICHANGESOURCEA* POLEUICHANGESOURCEA, LPOLEUICHANGESOURCEA; + +interface IOleUIObjInfoW : IUnknown +{ + HRESULT QueryInterface(REFIID, PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT GetObjectInfo(DWORD, PDWORD, LPWSTR*, LPWSTR*, LPWSTR*, LPWSTR*); + HRESULT GetConvertInfo(DWORD, CLSID*, PWORD, CLSID*, LPCLSID*, UINT*); + HRESULT ConvertObject(DWORD, REFCLSID); + HRESULT GetViewInfo(DWORD, HGLOBAL*, PDWORD, int*); + HRESULT SetViewInfo(DWORD, HGLOBAL, DWORD, int, BOOL); +} +alias IOleUIObjInfoW *LPOLEUIOBJINFOW; + +interface IOleUIObjInfoA : IUnknown +{ + HRESULT QueryInterface(REFIID, PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT GetObjectInfo(DWORD, PDWORD, LPSTR*, LPSTR*, LPSTR*, LPSTR*); + HRESULT GetConvertInfo(DWORD, CLSID*, PWORD, CLSID*, LPCLSID*, UINT*); + HRESULT ConvertObject(DWORD, REFCLSID); + HRESULT GetViewInfo(DWORD, HGLOBAL*, PDWORD, int*); + HRESULT SetViewInfo(DWORD, HGLOBAL, DWORD, int, BOOL); +} +alias IOleUIObjInfoA *LPOLEUIOBJINFOA; + +interface IOleUILinkInfoW : IOleUILinkContainerW +{ + HRESULT QueryInterface(REFIID, PVOID*); + ULONG AddRef(); + ULONG Release(); + DWORD GetNextLink(DWORD); + HRESULT SetLinkUpdateOptions(DWORD, DWORD); + HRESULT GetLinkUpdateOptions(DWORD, DWORD*); + HRESULT SetLinkSource(DWORD, LPWSTR, ULONG, PULONG, BOOL); + HRESULT GetLinkSource(DWORD, LPWSTR*, PULONG, LPWSTR*, LPWSTR*, BOOL*, BOOL*); + HRESULT OpenLinkSource(DWORD); + HRESULT UpdateLink(DWORD, BOOL, BOOL); + HRESULT CancelLink(DWORD); + HRESULT GetLastUpdate(DWORD, FILETIME*); +} +alias IOleUILinkInfoW *LPOLEUILINKINFOW; + +interface IOleUILinkInfoA : IOleUILinkContainerA +{ + HRESULT QueryInterface(REFIID, PVOID*); + ULONG AddRef(); + ULONG Release(); + DWORD GetNextLink(DWORD); + HRESULT SetLinkUpdateOptions(DWORD, DWORD); + HRESULT GetLinkUpdateOptions(DWORD, DWORD*); + HRESULT SetLinkSource(DWORD, LPSTR, ULONG, PULONG, BOOL); + HRESULT GetLinkSource(DWORD, LPSTR*, PULONG, LPSTR*, LPSTR*, BOOL*, BOOL*); + HRESULT OpenLinkSource(DWORD); + HRESULT UpdateLink(DWORD, BOOL, BOOL); + HRESULT CancelLink(DWORD); + HRESULT GetLastUpdate(DWORD, FILETIME*); +} +alias IOleUILinkInfoA* LPOLEUILINKINFOA; + +struct OLEUIGNRLPROPSW { + DWORD cbStruct; + DWORD dwFlags; + DWORD dwReserved1[2]; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + DWORD dwReserved2[3]; + OLEUIOBJECTPROPSW* lpOP; +} +alias OLEUIGNRLPROPSW* POLEUIGNRLPROPSW, LPOLEUIGNRLPROPSW; + +struct OLEUIGNRLPROPSA { + DWORD cbStruct; + DWORD dwFlags; + DWORD dwReserved1[2]; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + DWORD dwReserved2[3]; + OLEUIOBJECTPROPSA* lpOP; +} +alias OLEUIGNRLPROPSA* POLEUIGNRLPROPSA, LPOLEUIGNRLPROPSA; + +struct OLEUIVIEWPROPSW { + DWORD cbStruct; + DWORD dwFlags; + DWORD dwReserved1[2]; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + DWORD dwReserved2[3]; + OLEUIOBJECTPROPSW* lpOP; + int nScaleMin; + int nScaleMax; +} +alias OLEUIVIEWPROPSW* POLEUIVIEWPROPSW, LPOLEUIVIEWPROPSW; + +struct OLEUIVIEWPROPSA { + DWORD cbStruct; + DWORD dwFlags; + DWORD dwReserved1[2]; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + DWORD dwReserved2[3]; + OLEUIOBJECTPROPSA *lpOP; + int nScaleMin; + int nScaleMax; +} +alias OLEUIVIEWPROPSA* POLEUIVIEWPROPSA, LPOLEUIVIEWPROPSA; + +struct OLEUILINKPROPSW { + DWORD cbStruct; + DWORD dwFlags; + DWORD dwReserved1[2]; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + DWORD dwReserved2[3]; + OLEUIOBJECTPROPSW *lpOP; +} +alias OLEUILINKPROPSW* POLEUILINKPROPSW, LPOLEUILINKPROPSW; + +struct OLEUILINKPROPSA { + DWORD cbStruct; + DWORD dwFlags; + DWORD dwReserved1[2]; + LPFNOLEUIHOOK lpfnHook; + LPARAM lCustData; + DWORD dwReserved2[3]; + OLEUIOBJECTPROPSA* lpOP; +} +alias OLEUILINKPROPSA* POLEUILINKPROPSA, LPOLEUILINKPROPSA; + +struct OLEUIOBJECTPROPSW { + DWORD cbStruct; + DWORD dwFlags; + LPPROPSHEETHEADERW lpPS; + DWORD dwObject; + LPOLEUIOBJINFOW lpObjInfo; + DWORD dwLink; + LPOLEUILINKINFOW lpLinkInfo; + LPOLEUIGNRLPROPSW lpGP; + LPOLEUIVIEWPROPSW lpVP; + LPOLEUILINKPROPSW lpLP; +} +alias OLEUIOBJECTPROPSW* POLEUIOBJECTPROPSW, LPOLEUIOBJECTPROPSW; + +struct OLEUIOBJECTPROPSA { + DWORD cbStruct; + DWORD dwFlags; + LPPROPSHEETHEADERA lpPS; + DWORD dwObject; + LPOLEUIOBJINFOA lpObjInfo; + DWORD dwLink; + LPOLEUILINKINFOA lpLinkInfo; + LPOLEUIGNRLPROPSA lpGP; + LPOLEUIVIEWPROPSA lpVP; + LPOLEUILINKPROPSA lpLP; +} +alias OLEUIOBJECTPROPSA* POLEUIOBJECTPROPSA, LPOLEUIOBJECTPROPSA; + +extern (Windows) { + BOOL OleUIAddVerbMenuW(LPOLEOBJECT, LPCWSTR, HMENU, UINT, UINT, UINT, BOOL, UINT, HMENU*); + BOOL OleUIAddVerbMenuA(LPOLEOBJECT, LPCSTR, HMENU, UINT, UINT, UINT, BOOL, UINT, HMENU*); + UINT OleUIBusyW(LPOLEUIBUSYW); + UINT OleUIBusyA(LPOLEUIBUSYA); + BOOL OleUICanConvertOrActivateAs(REFCLSID, BOOL, WORD); + UINT OleUIChangeIconW(LPOLEUICHANGEICONW); + UINT OleUIChangeIconA(LPOLEUICHANGEICONA); + UINT OleUIChangeSourceW(LPOLEUICHANGESOURCEW); + UINT OleUIChangeSourceA(LPOLEUICHANGESOURCEA); + UINT OleUIConvertW(LPOLEUICONVERTW); + UINT OleUIConvertA(LPOLEUICONVERTA); + UINT OleUIEditLinksW(LPOLEUIEDITLINKSW); + UINT OleUIEditLinksA(LPOLEUIEDITLINKSA); + UINT OleUIObjectPropertiesW(LPOLEUIOBJECTPROPSW); + UINT OleUIObjectPropertiesA(LPOLEUIOBJECTPROPSA); + UINT OleUIPasteSpecialW(LPOLEUIPASTESPECIALW); + UINT OleUIPasteSpecialA(LPOLEUIPASTESPECIALA); + BOOL OleUIUpdateLinksW(LPOLEUILINKCONTAINERW, HWND, LPWSTR, int); + BOOL OleUIUpdateLinksA(LPOLEUILINKCONTAINERA, HWND, LPSTR, int); +} + +extern (C) { + int OleUIPromptUserW(int, HWND, ...); + int OleUIPromptUserA(int, HWND, ...); +} + +version(Unicode) { + alias IDD_SERVERNOTREGW IDD_SERVERNOTREG; + alias IDD_LINKTYPECHANGEDW IDD_LINKTYPECHANGED; + alias OleUIUpdateLinksW OleUIUpdateLinks; + alias OleUIAddVerbMenuW OleUIAddVerbMenu; + alias OLEUIOBJECTPROPSW OLEUIOBJECTPROPS; + alias POLEUIOBJECTPROPSW POLEUIOBJECTPROPS; + alias LPOLEUIOBJECTPROPSW LPOLEUIOBJECTPROPS; + alias OleUIObjectPropertiesW OleUIObjectProperties; + alias OLEUIINSERTOBJECTW OLEUIINSERTOBJECT; + alias POLEUIINSERTOBJECTW POLEUIINSERTOBJECT; + alias LPOLEUIINSERTOBJECTW LPOLEUIINSERTOBJECT; + alias OleUIInsertObjectW OleUIInsertObject; + alias OleUIPromptUserW OleUIPromptUser; + alias OLEUIPASTEENTRYW OLEUIPASTEENTRY; + alias POLEUIPASTEENTRYW POLEUIPASTEENTRY; + alias LPOLEUIPASTEENTRYW LPOLEUIPASTEENTRY; + alias OLEUIPASTESPECIALW OLEUIPASTESPECIAL; + alias POLEUIPASTESPECIALW POLEUIPASTESPECIAL; + alias LPOLEUIPASTESPECIALW LPOLEUIPASTESPECIAL; + alias OleUIPasteSpecialW OleUIPasteSpecial; + alias IOleUILinkContainerW IOleUILinkContainer; + alias LPOLEUILINKCONTAINERW LPOLEUILINKCONTAINER; + alias OLEUIEDITLINKSW OLEUIEDITLINKS; + alias POLEUIEDITLINKSW POLEUIEDITLINKS; + alias LPOLEUIEDITLINKSW LPOLEUIEDITLINKS; + alias OleUIEditLinksW OleUIEditLinks; + alias OLEUICHANGEICONW OLEUICHANGEICON; + alias POLEUICHANGEICONW POLEUICHANGEICON; + alias LPOLEUICHANGEICONW LPOLEUICHANGEICON; + alias OleUIChangeIconW OleUIChangeIcon; + alias OLEUICONVERTW OLEUICONVERT; + alias POLEUICONVERTW POLEUICONVERT; + alias LPOLEUICONVERTW LPOLEUICONVERT; + alias OleUIConvertW OleUIConvert; + alias OLEUIBUSYW OLEUIBUSY; + alias POLEUIBUSYW POLEUIBUSY; + alias LPOLEUIBUSYW LPOLEUIBUSY; + alias OleUIBusyW OleUIBusy; + alias OLEUICHANGESOURCEW OLEUICHANGESOURCE; + alias POLEUICHANGESOURCEW POLEUICHANGESOURCE; + alias LPOLEUICHANGESOURCEW LPOLEUICHANGESOURCE; + alias OleUIChangeSourceW OleUIChangeSource; + alias IOleUIObjInfoW IOleUIObjInfo; + alias LPOLEUIOBJINFOW LPOLEUIOBJINFO; + alias IOleUILinkInfoW IOleUILinkInfo; + //alias IOleUILinkInfoWVtbl IOleUILinkInfoVtbl; + alias LPOLEUILINKINFOW LPOLEUILINKINFO; + alias OLEUIGNRLPROPSW OLEUIGNRLPROPS; + alias POLEUIGNRLPROPSW POLEUIGNRLPROPS; + alias LPOLEUIGNRLPROPSW LPOLEUIGNRLPROPS; + alias OLEUIVIEWPROPSW OLEUIVIEWPROPS; + alias POLEUIVIEWPROPSW POLEUIVIEWPROPS; + alias LPOLEUIVIEWPROPSW LPOLEUIVIEWPROPS; + alias OLEUILINKPROPSW OLEUILINKPROPS; + alias POLEUILINKPROPSW POLEUILINKPROPS; + alias LPOLEUILINKPROPSW LPOLEUILINKPROPS; +} else { + alias IDD_SERVERNOTREGA IDD_SERVERNOTREG; + alias IDD_LINKTYPECHANGEDA IDD_LINKTYPECHANGED; + alias OleUIUpdateLinksA OleUIUpdateLinks; + alias OleUIAddVerbMenuA OleUIAddVerbMenu; + alias OLEUIOBJECTPROPSA OLEUIOBJECTPROPS; + alias POLEUIOBJECTPROPSA POLEUIOBJECTPROPS; + alias LPOLEUIOBJECTPROPSA LPOLEUIOBJECTPROPS; + alias OleUIObjectPropertiesA OleUIObjectProperties; + alias OLEUIINSERTOBJECTA OLEUIINSERTOBJECT; + alias POLEUIINSERTOBJECTA POLEUIINSERTOBJECT; + alias LPOLEUIINSERTOBJECTA LPOLEUIINSERTOBJECT; + alias OleUIInsertObjectA OleUIInsertObject; + alias OleUIPromptUserA OleUIPromptUser; + alias OLEUIPASTEENTRYA OLEUIPASTEENTRY; + alias POLEUIPASTEENTRYA POLEUIPASTEENTRY; + alias LPOLEUIPASTEENTRYA LPOLEUIPASTEENTRY; + alias OLEUIPASTESPECIALA OLEUIPASTESPECIAL; + alias POLEUIPASTESPECIALA POLEUIPASTESPECIAL; + alias LPOLEUIPASTESPECIALA LPOLEUIPASTESPECIAL; + alias OleUIPasteSpecialA OleUIPasteSpecial; + alias IOleUILinkContainerA IOleUILinkContainer; + alias LPOLEUILINKCONTAINERA LPOLEUILINKCONTAINER; + alias OLEUIEDITLINKSA OLEUIEDITLINKS; + alias POLEUIEDITLINKSA POLEUIEDITLINKS; + alias LPOLEUIEDITLINKSA LPOLEUIEDITLINKS; + alias OleUIEditLinksA OleUIEditLinks; + alias OLEUICHANGEICONA OLEUICHANGEICON; + alias POLEUICHANGEICONA POLEUICHANGEICON; + alias LPOLEUICHANGEICONA LPOLEUICHANGEICON; + alias OleUIChangeIconA OleUIChangeIcon; + alias OLEUICONVERTA OLEUICONVERT; + alias POLEUICONVERTA POLEUICONVERT; + alias LPOLEUICONVERTA LPOLEUICONVERT; + alias OleUIConvertA OleUIConvert; + alias OLEUIBUSYA OLEUIBUSY; + alias POLEUIBUSYA POLEUIBUSY; + alias LPOLEUIBUSYA LPOLEUIBUSY; + alias OleUIBusyA OleUIBusy; + alias OLEUICHANGESOURCEA OLEUICHANGESOURCE; + alias POLEUICHANGESOURCEA POLEUICHANGESOURCE; + alias LPOLEUICHANGESOURCEA LPOLEUICHANGESOURCE; + alias OleUIChangeSourceA OleUIChangeSource; + alias IOleUIObjInfoA IOleUIObjInfo; + alias LPOLEUIOBJINFOA LPOLEUIOBJINFO; + alias IOleUILinkInfoA IOleUILinkInfo; + //alias IOleUILinkInfoAVtbl IOleUILinkInfoVtbl; + alias LPOLEUILINKINFOA LPOLEUILINKINFO; + alias OLEUIGNRLPROPSA OLEUIGNRLPROPS; + alias POLEUIGNRLPROPSA POLEUIGNRLPROPS; + alias LPOLEUIGNRLPROPSA LPOLEUIGNRLPROPS; + alias OLEUIVIEWPROPSA OLEUIVIEWPROPS; + alias POLEUIVIEWPROPSA POLEUIVIEWPROPS; + alias LPOLEUIVIEWPROPSA LPOLEUIVIEWPROPS; + alias OLEUILINKPROPSA OLEUILINKPROPS; + alias POLEUILINKPROPSA POLEUILINKPROPS; + alias LPOLEUILINKPROPSA LPOLEUILINKPROPS; +} ADDED src/win32/oleidl.d Index: src/win32/oleidl.d ================================================================== --- src/win32/oleidl.d +++ src/win32/oleidl.d @@ -0,0 +1,270 @@ +/***********************************************************************\ +* oleidl.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.oleidl; + +// DAC: This is defined in ocidl !! +// what is it doing in here? +//alias IEnumOleUndoUnits* LPENUMOLEUNDOUNITS; + +private import win32.basetyps, win32.objidl, win32.unknwn, win32.windef, + win32.winuser, win32.wtypes; +private import win32.objfwd; // for LPMONIKER +private import win32.wingdi; // for LPLOGPALETTE + +const MK_ALT = 32; + +enum BINDSPEED { + BINDSPEED_INDEFINITE = 1, + BINDSPEED_MODERATE, + BINDSPEED_IMMEDIATE +} + +enum OLEWHICHMK { + OLEWHICHMK_CONTAINER = 1, + OLEWHICHMK_OBJREL, + OLEWHICHMK_OBJFULL +} + +enum OLEGETMONIKER { + OLEGETMONIKER_ONLYIFTHERE = 1, + OLEGETMONIKER_FORCEASSIGN, + OLEGETMONIKER_UNASSIGN, + OLEGETMONIKER_TEMPFORUSER +} + +enum USERCLASSTYPE { + USERCLASSTYPE_FULL = 1, + USERCLASSTYPE_SHORT, + USERCLASSTYPE_APPNAME +} + +enum DROPEFFECT { + DROPEFFECT_NONE = 0, + DROPEFFECT_COPY = 1, + DROPEFFECT_MOVE = 2, + DROPEFFECT_LINK = 4, + DROPEFFECT_SCROLL = 0x80000000 +} + +struct OLEMENUGROUPWIDTHS { + LONG width[6]; +} +alias OLEMENUGROUPWIDTHS* LPOLEMENUGROUPWIDTHS; + +alias HGLOBAL HOLEMENU; + +enum OLECLOSE { + OLECLOSE_SAVEIFDIRTY, + OLECLOSE_NOSAVE, + OLECLOSE_PROMPTSAVE +} + +struct OLEVERB { + LONG lVerb; + LPWSTR lpszVerbName; + DWORD fuFlags; + DWORD grfAttribs; +} +alias OLEVERB* LPOLEVERB; + +alias RECT BORDERWIDTHS; +alias LPRECT LPBORDERWIDTHS; +alias LPCRECT LPCBORDERWIDTHS; + +struct OLEINPLACEFRAMEINFO { + UINT cb; + BOOL fMDIApp; + HWND hwndFrame; + HACCEL haccel; + UINT cAccelEntries; +} +alias OLEINPLACEFRAMEINFO* LPOLEINPLACEFRAMEINFO; + +interface IEnumOLEVERB : IUnknown +{ + HRESULT Next(ULONG,OLEVERB*,ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(IEnumOLEVERB**); +} +//alias IEnumOLEVERB IEnumOleVerb; +alias IEnumOLEVERB LPENUMOLEVERB; + + +interface IParseDisplayName : IUnknown { + HRESULT ParseDisplayName(IBindCtx*,LPOLESTR,ULONG*,IMoniker**); +} +alias IParseDisplayName LPPARSEDISPLAYNAME; + +interface IOleContainer : IParseDisplayName { + HRESULT EnumObjects(DWORD,IEnumUnknown**); + HRESULT LockContainer(BOOL); +} +alias IOleContainer LPOLECONTAINER; + +interface IOleItemContainer : IOleContainer { + HRESULT GetObject(LPOLESTR,DWORD,IBindCtx*,REFIID,void**); + HRESULT GetObjectStorage(LPOLESTR,IBindCtx*,REFIID,void**); + HRESULT IsRunning(LPOLESTR); +} + + +interface IOleClientSite : IUnknown { + HRESULT SaveObject(); + HRESULT GetMoniker(DWORD,DWORD,LPMONIKER*); + HRESULT GetContainer(LPOLECONTAINER*); + HRESULT ShowObject(); + HRESULT OnShowWindow(BOOL); + HRESULT RequestNewObjectLayout(); +} +alias IOleClientSite LPOLECLIENTSITE; + +interface IOleObject : IUnknown { + HRESULT SetClientSite(LPOLECLIENTSITE); + HRESULT GetClientSite(LPOLECLIENTSITE*); + HRESULT SetHostNames(LPCOLESTR,LPCOLESTR); + HRESULT Close(DWORD); + HRESULT SetMoniker(DWORD,LPMONIKER); + HRESULT GetMoniker(DWORD,DWORD,LPMONIKER*); + HRESULT InitFromData(LPDATAOBJECT,BOOL,DWORD); + HRESULT GetClipboardData(DWORD,LPDATAOBJECT*); + HRESULT DoVerb(LONG,LPMSG,LPOLECLIENTSITE,LONG,HWND,LPCRECT); + HRESULT EnumVerbs(LPENUMOLEVERB*); + HRESULT Update(); + HRESULT IsUpToDate(); + HRESULT GetUserClassID(LPCLSID); + HRESULT GetUserType(DWORD,LPOLESTR*); + HRESULT SetExtent(DWORD,SIZEL*); + HRESULT GetExtent(DWORD,SIZEL*); + HRESULT Advise(LPADVISESINK,PDWORD); + HRESULT Unadvise(DWORD); + HRESULT EnumAdvise(LPENUMSTATDATA*); + HRESULT GetMiscStatus(DWORD,PDWORD); + HRESULT SetColorScheme(LPLOGPALETTE); +} +alias IOleObject LPOLEOBJECT; + +interface IOleWindow : IUnknown { + HRESULT GetWindow(HWND*); + HRESULT ContextSensitiveHelp(BOOL); +} +alias IOleWindow LPOLEWINDOW; + +interface IOleInPlaceUIWindow : IOleWindow { + HRESULT GetBorder(LPRECT); + HRESULT RequestBorderSpace(LPCBORDERWIDTHS); + HRESULT SetBorderSpace(LPCBORDERWIDTHS); + HRESULT SetActiveObject(LPOLEINPLACEACTIVEOBJECT,LPCOLESTR); +} +alias IOleInPlaceUIWindow LPOLEINPLACEUIWINDOW; + +interface IOleInPlaceObject : IOleWindow { + HRESULT InPlaceDeactivate(); + HRESULT UIDeactivate(); + HRESULT SetObjectRects(LPCRECT,LPCRECT); + HRESULT ReactivateAndUndo(); +} + + +interface IOleInPlaceActiveObject : IOleWindow { + HRESULT TranslateAccelerator(LPMSG); + HRESULT OnFrameWindowActivate(BOOL); + HRESULT OnDocWindowActivate(BOOL); + HRESULT ResizeBorder(LPCRECT,LPOLEINPLACEUIWINDOW,BOOL); + HRESULT EnableModeless(BOOL); +} +alias IOleInPlaceActiveObject LPOLEINPLACEACTIVEOBJECT; + +interface IOleInPlaceFrame : IOleInPlaceUIWindow { + HRESULT InsertMenus(HMENU,LPOLEMENUGROUPWIDTHS); + HRESULT SetMenu(HMENU,HOLEMENU,HWND); + HRESULT RemoveMenus(HMENU); + HRESULT SetStatusText(LPCOLESTR); + HRESULT EnableModeless(BOOL); + HRESULT TranslateAccelerator(LPMSG,WORD); +} +alias IOleInPlaceFrame LPOLEINPLACEFRAME; + +interface IOleInPlaceSite : IOleWindow { + HRESULT CanInPlaceActivate(); + HRESULT OnInPlaceActivate(); + HRESULT OnUIActivate(); + HRESULT GetWindowContext(IOleInPlaceFrame*,IOleInPlaceUIWindow*,LPRECT,LPRECT,LPOLEINPLACEFRAMEINFO); + HRESULT Scroll(SIZE); + HRESULT OnUIDeactivate(BOOL); + HRESULT OnInPlaceDeactivate(); + HRESULT DiscardUndoState(); + HRESULT DeactivateAndUndo(); + HRESULT OnPosRectChange(LPCRECT); +} + +interface IOleAdviseHolder : IUnknown { + HRESULT Advise(LPADVISESINK,PDWORD); + HRESULT Unadvise(DWORD); + HRESULT EnumAdvise(LPENUMSTATDATA*); + HRESULT SendOnRename(LPMONIKER); + HRESULT SendOnSave(); + HRESULT SendOnClose(); +} +alias IOleAdviseHolder LPOLEADVISEHOLDER; + +interface IDropSource : IUnknown { + HRESULT QueryContinueDrag(BOOL,DWORD); + HRESULT GiveFeedback(DWORD); +} +alias IDropSource LPDROPSOURCE; + +interface IDropTarget : IUnknown { + HRESULT DragEnter(LPDATAOBJECT,DWORD,POINTL,PDWORD); + HRESULT DragOver(DWORD,POINTL,PDWORD); + HRESULT DragLeave(); + HRESULT Drop(LPDATAOBJECT,DWORD,POINTL,PDWORD); +} +alias IDropTarget LPDROPTARGET; + +extern (Windows) { + alias BOOL function(DWORD) __IView_pfncont; +} + +interface IViewObject : IUnknown { + HRESULT Draw(DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,HDC,LPCRECTL,LPCRECTL,__IView_pfncont pfnContinue,DWORD); + HRESULT GetColorSet(DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,LPLOGPALETTE*); + HRESULT Freeze(DWORD,LONG,PVOID,PDWORD); + HRESULT Unfreeze(DWORD); + HRESULT SetAdvise(DWORD,DWORD,IAdviseSink*); + HRESULT GetAdvise(PDWORD,PDWORD,IAdviseSink**); +} +alias IViewObject LPVIEWOBJECT; + +interface IViewObject2 : IViewObject { + HRESULT GetExtent(DWORD,LONG,DVTARGETDEVICE*,LPSIZEL); +} +alias IViewObject2 LPVIEWOBJECT2; + +interface IOleCache : IUnknown { + HRESULT Cache(FORMATETC*,DWORD,DWORD*); + HRESULT Uncache(DWORD); + HRESULT EnumCache(IEnumSTATDATA**); + HRESULT InitCache(LPDATAOBJECT); + HRESULT SetData(FORMATETC*,STGMEDIUM*,BOOL); +} +alias IOleCache LPOLECACHE; + +interface IOleCache2 : IOleCache { + HRESULT UpdateCache(LPDATAOBJECT,DWORD,LPVOID); + HRESULT DiscardCache(DWORD); +} +alias IOleCache2 LPOLECACHE2; + +interface IOleCacheControl : IUnknown { + HRESULT OnRun(LPDATAOBJECT); + HRESULT OnStop(); +} +alias IOleCacheControl LPOLECACHECONTROL; ADDED src/win32/pbt.d Index: src/win32/pbt.d ================================================================== --- src/win32/pbt.d +++ src/win32/pbt.d @@ -0,0 +1,30 @@ +/***********************************************************************\ +* pbt.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.pbt; + +private import win32.windef; + +enum : WPARAM { + PBT_APMQUERYSUSPEND, + PBT_APMQUERYSTANDBY, + PBT_APMQUERYSUSPENDFAILED, + PBT_APMQUERYSTANDBYFAILED, + PBT_APMSUSPEND, + PBT_APMSTANDBY, + PBT_APMRESUMECRITICAL, + PBT_APMRESUMESUSPEND, + PBT_APMRESUMESTANDBY, + PBT_APMBATTERYLOW, + PBT_APMPOWERSTATUSCHANGE, + PBT_APMOEMEVENT // = 11 +} + +const LPARAM PBTF_APMRESUMEFROMFAILURE = 1; ADDED src/win32/powrprof.d Index: src/win32/powrprof.d ================================================================== --- src/win32/powrprof.d +++ src/win32/powrprof.d @@ -0,0 +1,140 @@ +/***********************************************************************\ +* powrprof.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.powrprof; +pragma(lib, "powrprof.lib"); + +private import win32.windef; +private import win32.ntdef; + +// FIXME: look up Windows version support + +const ULONG + EnableSysTrayBatteryMeter = 1, + EnableMultiBatteryDisplay = 2, + EnablePasswordLogon = 4, + EnableWakeOnRing = 8, + EnableVideoDimDisplay = 16; + +const UINT NEWSCHEME = -1; + +struct GLOBAL_MACHINE_POWER_POLICY { + ULONG Revision; + SYSTEM_POWER_STATE LidOpenWakeAc; + SYSTEM_POWER_STATE LidOpenWakeDc; + ULONG BroadcastCapacityResolution; +} +alias GLOBAL_MACHINE_POWER_POLICY* PGLOBAL_MACHINE_POWER_POLICY; + +struct GLOBAL_USER_POWER_POLICY { + ULONG Revision; + POWER_ACTION_POLICY PowerButtonAc; + POWER_ACTION_POLICY PowerButtonDc; + POWER_ACTION_POLICY SleepButtonAc; + POWER_ACTION_POLICY SleepButtonDc; + POWER_ACTION_POLICY LidCloseAc; + POWER_ACTION_POLICY LidCloseDc; + SYSTEM_POWER_LEVEL[NUM_DISCHARGE_POLICIES] DischargePolicy; + ULONG GlobalFlags; +} +alias GLOBAL_USER_POWER_POLICY* PGLOBAL_USER_POWER_POLICY; + +struct GLOBAL_POWER_POLICY { + GLOBAL_USER_POWER_POLICY user; + GLOBAL_MACHINE_POWER_POLICY mach; +} +alias GLOBAL_POWER_POLICY* PGLOBAL_POWER_POLICY; + +struct MACHINE_POWER_POLICY { + ULONG Revision; + SYSTEM_POWER_STATE MinSleepAc; + SYSTEM_POWER_STATE MinSleepDc; + SYSTEM_POWER_STATE ReducedLatencySleepAc; + SYSTEM_POWER_STATE ReducedLatencySleepDc; + ULONG DozeTimeoutAc; + ULONG DozeTimeoutDc; + ULONG DozeS4TimeoutAc; + ULONG DozeS4TimeoutDc; + UCHAR MinThrottleAc; + UCHAR MinThrottleDc; + UCHAR[2] pad1; + POWER_ACTION_POLICY OverThrottledAc; + POWER_ACTION_POLICY OverThrottledDc; +} +alias MACHINE_POWER_POLICY* PMACHINE_POWER_POLICY; + +struct MACHINE_PROCESSOR_POWER_POLICY { + ULONG Revision; + PROCESSOR_POWER_POLICY ProcessorPolicyAc; + PROCESSOR_POWER_POLICY ProcessorPolicyDc; +} +alias MACHINE_PROCESSOR_POWER_POLICY* PMACHINE_PROCESSOR_POWER_POLICY; + +struct USER_POWER_POLICY { + ULONG Revision; + POWER_ACTION_POLICY IdleAc; + POWER_ACTION_POLICY IdleDc; + ULONG IdleTimeoutAc; + ULONG IdleTimeoutDc; + UCHAR IdleSensitivityAc; + UCHAR IdleSensitivityDc; + UCHAR ThrottlePolicyAc; + UCHAR ThrottlePolicyDc; + SYSTEM_POWER_STATE MaxSleepAc; + SYSTEM_POWER_STATE MaxSleepDc; + ULONG[2] Reserved; + ULONG VideoTimeoutAc; + ULONG VideoTimeoutDc; + ULONG SpindownTimeoutAc; + ULONG SpindownTimeoutDc; + BOOLEAN OptimizeForPowerAc; + BOOLEAN OptimizeForPowerDc; + UCHAR FanThrottleToleranceAc; + UCHAR FanThrottleToleranceDc; + UCHAR ForcedThrottleAc; + UCHAR ForcedThrottleDc; +} +alias USER_POWER_POLICY* PUSER_POWER_POLICY; + +struct POWER_POLICY { + USER_POWER_POLICY user; + MACHINE_POWER_POLICY mach; +} +alias POWER_POLICY* PPOWER_POLICY; + +extern (Windows) { + alias BOOLEAN function(UINT, DWORD, LPTSTR, DWORD, LPTSTR, PPOWER_POLICY, + LPARAM) PWRSCHEMESENUMPROC; + alias BOOLEAN function(POWER_ACTION, SYSTEM_POWER_STATE, ULONG, BOOLEAN) + PFNNTINITIATEPWRACTION; + + NTSTATUS CallNtPowerInformation(POWER_INFORMATION_LEVEL, PVOID, ULONG, + PVOID, ULONG); + BOOLEAN CanUserWritePwrScheme(); + BOOLEAN DeletePwrScheme(UINT); + BOOLEAN EnumPwrSchemes(PWRSCHEMESENUMPROC, LPARAM); + BOOLEAN GetActivePwrScheme(PUINT); + BOOLEAN GetCurrentPowerPolicies(PGLOBAL_POWER_POLICY, PPOWER_POLICY); + BOOLEAN GetPwrCapabilities(PSYSTEM_POWER_CAPABILITIES); + BOOLEAN GetPwrDiskSpindownRange(PUINT, PUINT); + BOOLEAN IsAdminOverrideActive(PADMINISTRATOR_POWER_POLICY); + BOOLEAN IsPwrHibernateAllowed(); + BOOLEAN IsPwrShutdownAllowed(); + BOOLEAN IsPwrSuspendAllowed(); + BOOLEAN ReadGlobalPwrPolicy(PGLOBAL_POWER_POLICY); + BOOLEAN ReadProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY); + BOOLEAN ReadPwrScheme(UINT, PPOWER_POLICY); + BOOLEAN SetActivePwrScheme(UINT, PGLOBAL_POWER_POLICY, PPOWER_POLICY); + BOOLEAN SetSuspendState(BOOLEAN, BOOLEAN, BOOLEAN); + BOOLEAN WriteGlobalPwrPolicy(PGLOBAL_POWER_POLICY); + BOOLEAN WriteProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY); + BOOLEAN ValidatePowerPolicies(PGLOBAL_POWER_POLICY, PPOWER_POLICY); + BOOLEAN WritePwrScheme(PUINT, LPTSTR, LPTSTR, PPOWER_POLICY); +} ADDED src/win32/prsht.d Index: src/win32/prsht.d ================================================================== --- src/win32/prsht.d +++ src/win32/prsht.d @@ -0,0 +1,442 @@ +/***********************************************************************\ +* prsht.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Vladimir Vlasov * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.prsht; +pragma(lib, "comctl32.lib"); + +private import win32.w32api, win32.windef, win32.winuser; + +const MAXPROPPAGES = 100; + +enum { + PSP_DEFAULT = 0x00000000, + PSP_DLGINDIRECT = 0x00000001, + PSP_USEHICON = 0x00000002, + PSP_USEICONID = 0x00000004, + PSP_USETITLE = 0x00000008, + PSP_RTLREADING = 0x00000010, + PSP_HASHELP = 0x00000020, + PSP_USEREFPARENT = 0x00000040, + PSP_USECALLBACK = 0x00000080, + PSP_PREMATURE = 0x00000400 +} + +static if (_WIN32_IE >= 0x0400) { + enum { + PSP_HIDEHEADER = 0x00000800, + PSP_USEHEADERTITLE = 0x00001000, + PSP_USEHEADERSUBTITLE = 0x00002000 + } +} + +enum { + PSPCB_RELEASE = 1, + PSPCB_CREATE +} + +enum { + PSH_DEFAULT = 0x00000000, + PSH_PROPTITLE = 0x00000001, + PSH_USEHICON = 0x00000002, + PSH_USEICONID = 0x00000004, + PSH_PROPSHEETPAGE = 0x00000008, + PSH_WIZARDHASFINISH = 0x00000010, + PSH_WIZARD = 0x00000020, + PSH_USEPSTARTPAGE = 0x00000040, + PSH_NOAPPLYNOW = 0x00000080, + PSH_USECALLBACK = 0x00000100, + PSH_HASHELP = 0x00000200, + PSH_MODELESS = 0x00000400, + PSH_RTLREADING = 0x00000800, + PSH_WIZARDCONTEXTHELP = 0x00001000 +} + +static if (_WIN32_IE >= 0x0400) { + enum { + PSH_WATERMARK = 0x00008000, + PSH_USEHBMWATERMARK = 0x00010000, + PSH_USEHPLWATERMARK = 0x00020000, + PSH_STRETCHWATERMARK = 0x00040000, + PSH_HEADER = 0x00080000, + PSH_USEHBMHEADER = 0x00100000, + PSH_USEPAGELANG = 0x00200000 + } + static if (_WIN32_IE < 0x0500) { + enum { + PSH_WIZARD97 = 0x00002000 + } + } else { + enum { + PSH_WIZARD97 = 0x01000000 + } + } +} + +static if (_WIN32_IE >= 0x0500) { + enum { + PSH_WIZARD_LITE = 0x00400000, + PSH_NOCONTEXTHELP = 0x02000000 + } +} + +enum { + PSCB_INITIALIZED = 1, + PSCB_PRECREATE +} + +enum { + PSN_FIRST = (-200), + PSN_LAST = (-299), + PSN_SETACTIVE = (-200), + PSN_KILLACTIVE = (-201), + PSN_APPLY = (-202), + PSN_RESET = (-203), + PSN_HELP = (-205), + PSN_WIZBACK = (-206), + PSN_WIZNEXT = (-207), + PSN_WIZFINISH = (-208), + PSN_QUERYCANCEL = (-209) +} +static if (_WIN32_IE >= 0x0400) { + enum { + PSN_GETOBJECT = (-210) + } +} +static if (_WIN32_IE >= 0x0500) { + enum { + PSN_TRANSLATEACCELERATOR = (-212), + PSN_QUERYINITIALFOCUS = (-213) + } +} + +enum { + PSNRET_NOERROR, + PSNRET_INVALID, + PSNRET_INVALID_NOCHANGEPAGE, + PSNRET_MESSAGEHANDLED +} + +enum { + ID_PSRESTARTWINDOWS = 0x2, + ID_PSREBOOTSYSTEM = ID_PSRESTARTWINDOWS | 0x1 +} + +enum { + WIZ_CXDLG = 276, + WIZ_CYDLG = 140, + WIZ_CXBMP = 80, + WIZ_BODYX = 92, + WIZ_BODYCX = 184 +} + +enum { + PROP_SM_CXDLG = 212, + PROP_SM_CYDLG = 188, + PROP_MED_CXDLG = 227, + PROP_MED_CYDLG = 215, + PROP_LG_CXDLG = 252, + PROP_LG_CYDLG = 218 +} + +enum { + PSBTN_BACK, + PSBTN_NEXT, + PSBTN_FINISH, + PSBTN_OK, + PSBTN_APPLYNOW, + PSBTN_CANCEL, + PSBTN_HELP, + PSBTN_MAX = 6 +} + +enum { + PSWIZB_BACK = 1, + PSWIZB_NEXT = 2, + PSWIZB_FINISH = 4, + PSWIZB_DISABLEDFINISH = 8 +} + +enum { + PSM_SETCURSEL = WM_USER + 101, + PSM_REMOVEPAGE, + PSM_ADDPAGE, + PSM_CHANGED, + PSM_RESTARTWINDOWS, + PSM_REBOOTSYSTEM, + PSM_CANCELTOCLOSE, + PSM_QUERYSIBLINGS, + PSM_UNCHANGED, + PSM_APPLY, + PSM_SETTITLEA, + PSM_SETWIZBUTTONS, + PSM_PRESSBUTTON, + PSM_SETCURSELID, + PSM_SETFINISHTEXTA, + PSM_GETTABCONTROL, + PSM_ISDIALOGMESSAGE, + PSM_GETCURRENTPAGEHWND, + PSM_INSERTPAGE, + PSM_SETTITLEW, + PSM_SETFINISHTEXTW // = WM_USER + 121, +} + +alias UINT function(HWND, UINT, LPPROPSHEETPAGEA) LPFNPSPCALLBACKA; +alias UINT function(HWND, UINT, LPPROPSHEETPAGEW) LPFNPSPCALLBACKW; +alias int function(HWND, UINT, LPARAM) PFNPROPSHEETCALLBACK; + +align(4): + +struct PROPSHEETPAGEA { + DWORD dwSize = PROPSHEETPAGEA.sizeof; + DWORD dwFlags; + HINSTANCE hInstance; + union { + LPCSTR pszTemplate; + LPCDLGTEMPLATE pResource; + } + union { + HICON hIcon; + LPCSTR pszIcon; + } + LPCSTR pszTitle; + DLGPROC pfnDlgProc; + LPARAM lParam; + LPFNPSPCALLBACKA pfnCallback; + UINT* pcRefParent; + static if (_WIN32_IE >= 0x0400) { + LPCSTR pszHeaderTitle; + LPCSTR pszHeaderSubTitle; + } +} +alias PROPSHEETPAGEA* LPPROPSHEETPAGEA; +alias CPtr!(PROPSHEETPAGEA) LPCPROPSHEETPAGEA; + +struct PROPSHEETPAGEW { + DWORD dwSize = PROPSHEETPAGEW.sizeof; + DWORD dwFlags; + HINSTANCE hInstance; + union { + LPCWSTR pszTemplate; + LPCDLGTEMPLATE pResource; + } + union { + HICON hIcon; + LPCWSTR pszIcon; + } + LPCWSTR pszTitle; + DLGPROC pfnDlgProc; + LPARAM lParam; + LPFNPSPCALLBACKW pfnCallback; + UINT* pcRefParent; + static if (_WIN32_IE >= 0x0400) { + LPCWSTR pszHeaderTitle; + LPCWSTR pszHeaderSubTitle; + } +} +alias PROPSHEETPAGEW* LPPROPSHEETPAGEW; +alias CPtr!(PROPSHEETPAGEW) LPCPROPSHEETPAGEW; + +alias HANDLE HPROPSHEETPAGE; + +struct PROPSHEETHEADERA { + DWORD dwSize = PROPSHEETHEADERA.sizeof; + DWORD dwFlags; + HWND hwndParent; + HINSTANCE hInstance; + union { + HICON hIcon; + LPCSTR pszIcon; + } + LPCSTR pszCaption; + UINT nPages; + union { + UINT nStartPage; + LPCSTR pStartPage; + } + union { + LPCPROPSHEETPAGEA ppsp; + HPROPSHEETPAGE* phpage; + } + PFNPROPSHEETCALLBACK pfnCallback; + static if (_WIN32_IE >= 0x0400) { + union { + HBITMAP hbmWatermark; + LPCSTR pszbmWatermark; + } + HPALETTE hplWatermark; + union { + HBITMAP hbmHeader; + LPCSTR pszbmHeader; + } + } +} +alias PROPSHEETHEADERA* LPPROPSHEETHEADERA; +alias CPtr!(PROPSHEETHEADERA) LPCPROPSHEETHEADERA; + +struct PROPSHEETHEADERW { + DWORD dwSize = PROPSHEETHEADERW.sizeof; + DWORD dwFlags; + HWND hwndParent; + HINSTANCE hInstance; + union { + HICON hIcon; + LPCWSTR pszIcon; + } + LPCWSTR pszCaption; + UINT nPages; + union { + UINT nStartPage; + LPCWSTR pStartPage; + } + union { + LPCPROPSHEETPAGEW ppsp; + HPROPSHEETPAGE* phpage; + } + PFNPROPSHEETCALLBACK pfnCallback; + static if (_WIN32_IE >= 0x0400) { + union { + HBITMAP hbmWatermark; + LPCWSTR pszbmWatermark; + } + HPALETTE hplWatermark; + union { + HBITMAP hbmHeader; + LPCWSTR pszbmHeader; + } + } +} +alias PROPSHEETHEADERW* LPPROPSHEETHEADERW; +alias CPtr!(PROPSHEETHEADERW) LPCPROPSHEETHEADERW; + +alias BOOL function(HPROPSHEETPAGE, LPARAM) LPFNADDPROPSHEETPAGE; +alias BOOL function(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM) + LPFNADDPROPSHEETPAGES; + +struct PSHNOTIFY { + NMHDR hdr; + LPARAM lParam; +} +alias PSHNOTIFY* LPPSHNOTIFY; + +extern (Windows) { + HPROPSHEETPAGE CreatePropertySheetPageA(LPCPROPSHEETPAGEA); + HPROPSHEETPAGE CreatePropertySheetPageW(LPCPROPSHEETPAGEW); + BOOL DestroyPropertySheetPage(HPROPSHEETPAGE); + int PropertySheetA(LPCPROPSHEETHEADERA); + int PropertySheetW(LPCPROPSHEETHEADERW); +} + +version (Unicode) { + alias LPFNPSPCALLBACKW LPFNPSPCALLBACK; + alias PROPSHEETPAGEW PROPSHEETPAGE; + alias LPPROPSHEETPAGEW LPPROPSHEETPAGE; + alias LPCPROPSHEETPAGEW LPCPROPSHEETPAGE; + alias PROPSHEETHEADERW PROPSHEETHEADER; + alias LPPROPSHEETHEADERW LPPROPSHEETHEADER; + alias LPCPROPSHEETHEADERW LPCPROPSHEETHEADER; + alias PSM_SETTITLEW PSM_SETTITLE; + alias PSM_SETFINISHTEXTW PSM_SETFINISHTEXT; + alias CreatePropertySheetPageW CreatePropertySheetPage; + alias PropertySheetW PropertySheet; +} else { + alias LPFNPSPCALLBACKA LPFNPSPCALLBACK; + alias PROPSHEETPAGEA PROPSHEETPAGE; + alias LPPROPSHEETPAGEA LPPROPSHEETPAGE; + alias LPCPROPSHEETPAGEA LPCPROPSHEETPAGE; + alias PROPSHEETHEADERA PROPSHEETHEADER; + alias LPPROPSHEETHEADERA LPPROPSHEETHEADER; + alias LPCPROPSHEETHEADERA LPCPROPSHEETHEADER; + alias PSM_SETTITLEA PSM_SETTITLE; + alias PSM_SETFINISHTEXTA PSM_SETFINISHTEXT; + alias CreatePropertySheetPageA CreatePropertySheetPage; + alias PropertySheetA PropertySheet; +} + +BOOL PropSheet_SetCurSel(HWND hPropSheetDlg, HPROPSHEETPAGE hpage, + HPROPSHEETPAGE index) { + return cast(BOOL) SendMessage(hPropSheetDlg, PSM_SETCURSEL, + cast(WPARAM) index, cast(LPARAM) hpage); +} + +VOID PropSheet_RemovePage(HWND hPropSheetDlg, int index, HPROPSHEETPAGE hpage) { + SendMessage(hPropSheetDlg, PSM_REMOVEPAGE, index, cast(LPARAM) hpage); +} + +BOOL PropSheet_AddPage(HWND hPropSheetDlg, HPROPSHEETPAGE hpage) { + return cast(BOOL) SendMessage(hPropSheetDlg, PSM_ADDPAGE, + 0, cast(LPARAM) hpage); +} + +VOID PropSheet_Changed(HWND hPropSheetDlg, HWND hwndPage) { + SendMessage(hPropSheetDlg, PSM_CHANGED, cast(WPARAM) hwndPage, 0); +} + +VOID PropSheet_RestartWindows(HWND hPropSheetDlg) { + SendMessage(hPropSheetDlg, PSM_RESTARTWINDOWS, 0, 0); +} + +VOID PropSheet_RebootSystem(HWND hPropSheetDlg) { + SendMessage(hPropSheetDlg, PSM_REBOOTSYSTEM, 0, 0); +} + +VOID PropSheet_CancelToClose(HWND hPropSheetDlg) { + SendMessage(hPropSheetDlg, PSM_CANCELTOCLOSE, 0, 0); +} + +int PropSheet_QuerySiblings(HWND hPropSheetDlg, WPARAM param1, LPARAM param2) { + return SendMessage(hPropSheetDlg, PSM_QUERYSIBLINGS, param1, param2); +} + +VOID PropSheet_UnChanged(HWND hPropSheetDlg, HWND hwndPage) { + SendMessage(hPropSheetDlg, PSM_UNCHANGED, cast(WPARAM) hwndPage, 0); +} + +BOOL PropSheet_Apply(HWND hPropSheetDlg) { + return cast(BOOL) SendMessage(hPropSheetDlg, PSM_APPLY, 0, 0); +} + +VOID PropSheet_SetTitle(HWND hPropSheetDlg, DWORD wStyle, LPTSTR lpszText) { + SendMessage(hPropSheetDlg, PSM_SETTITLE, wStyle, cast(LPARAM) lpszText); +} + +VOID PropSheet_SetWizButtons(HWND hPropSheetDlg, DWORD dwFlags) { + PostMessage(hPropSheetDlg, PSM_SETWIZBUTTONS, 0, cast(LPARAM) dwFlags); +} + +BOOL PropSheet_PressButton(HWND hPropSheetDlg, int iButton) { + return cast(BOOL) SendMessage(hPropSheetDlg, PSM_PRESSBUTTON, iButton, 0); +} + +BOOL PropSheet_SetCurSelByID(HWND hPropSheetDlg, int id) { + return cast(BOOL) SendMessage(hPropSheetDlg, PSM_SETCURSELID, 0, id); +} + +VOID PropSheet_SetFinishText(HWND hPropSheetDlg, LPTSTR lpszText) { + SendMessage(hPropSheetDlg, PSM_SETFINISHTEXT, 0, cast(LPARAM) lpszText); +} + +HWND PropSheet_GetTabControl(HWND hPropSheetDlg) { + return cast(HWND) SendMessage(hPropSheetDlg, PSM_GETTABCONTROL, 0, 0); +} + +BOOL PropSheet_IsDialogMessage(HWND hDlg, LPMSG pMsg) { + return cast(BOOL) SendMessage(hDlg, PSM_ISDIALOGMESSAGE, + 0, cast(LPARAM) pMsg); +} + +HWND PropSheet_GetCurrentPageHwnd(HWND hDlg) { + return cast(HWND) SendMessage(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0); +} + +BOOL PropSheet_InsertPage(HWND hPropSheetDlg, WPARAM wInsertAfter, + HPROPSHEETPAGE hpage) { + return cast(BOOL) SendMessage(hPropSheetDlg, PSM_INSERTPAGE, + wInsertAfter, cast(LPARAM) hpage); +} ADDED src/win32/psapi.d Index: src/win32/psapi.d ================================================================== --- src/win32/psapi.d +++ src/win32/psapi.d @@ -0,0 +1,158 @@ +/***********************************************************************\ +* psapi.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +/* Comment from MinGW + * Process status API (PSAPI) + * http://windowssdk.msdn.microsoft.com/library/ms684884.aspx + */ + +module win32.psapi; + +private import win32.w32api; +private import win32.winbase; +private import win32.windef; + +struct MODULEINFO { + LPVOID lpBaseOfDll; + DWORD SizeOfImage; + LPVOID EntryPoint; +} +alias MODULEINFO* LPMODULEINFO; + +struct PSAPI_WS_WATCH_INFORMATION { + LPVOID FaultingPc; + LPVOID FaultingVa; +} +alias PSAPI_WS_WATCH_INFORMATION* PPSAPI_WS_WATCH_INFORMATION; + +struct PSAPI_WS_WATCH_INFORMATION_EX { + PSAPI_WS_WATCH_INFORMATION BasicInfo; + ULONG_PTR FaultingThreadId; + ULONG_PTR Flags; +} +alias PSAPI_WS_WATCH_INFORMATION_EX* PPSAPI_WS_WATCH_INFORMATION_EX; + +struct PROCESS_MEMORY_COUNTERS { + DWORD cb; + DWORD PageFaultCount; + DWORD PeakWorkingSetSize; + DWORD WorkingSetSize; + DWORD QuotaPeakPagedPoolUsage; + DWORD QuotaPagedPoolUsage; + DWORD QuotaPeakNonPagedPoolUsage; + DWORD QuotaNonPagedPoolUsage; + DWORD PagefileUsage; + DWORD PeakPagefileUsage; +} +alias PROCESS_MEMORY_COUNTERS* PPROCESS_MEMORY_COUNTERS; + +struct PERFORMANCE_INFORMATION { + DWORD cb; + SIZE_T CommitTotal; + SIZE_T CommitLimit; + SIZE_T CommitPeak; + SIZE_T PhysicalTotal; + SIZE_T PhysicalAvailable; + SIZE_T SystemCache; + SIZE_T KernelTotal; + SIZE_T KernelPaged; + SIZE_T KernelNonpaged; + SIZE_T PageSize; + DWORD HandleCount; + DWORD ProcessCount; + DWORD ThreadCount; +} +alias PERFORMANCE_INFORMATION* PPERFORMANCE_INFORMATION; + +struct ENUM_PAGE_FILE_INFORMATION { + DWORD cb; + DWORD Reserved; + SIZE_T TotalSize; + SIZE_T TotalInUse; + SIZE_T PeakUsage; +} +alias ENUM_PAGE_FILE_INFORMATION* PENUM_PAGE_FILE_INFORMATION; + +/* application-defined callback function used with the EnumPageFiles() + * http://windowssdk.msdn.microsoft.com/library/ms682627.aspx */ +version (Unicode) { + alias BOOL function(LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCWSTR) + PENUM_PAGE_FILE_CALLBACK; +} else { + alias BOOL function(LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCSTR) + PENUM_PAGE_FILE_CALLBACK; +} + +// Grouped by application, not in alphabetical order. +extern (Windows) { + /* Process Information + * http://windowssdk.msdn.microsoft.com/library/ms684870.aspx */ + BOOL EnumProcesses(DWORD*, DWORD, DWORD*); /* NT/2000/XP/Server2003/Vista/Longhorn */ + DWORD GetProcessImageFileNameA(HANDLE, LPSTR, DWORD); /* XP/Server2003/Vista/Longhorn */ + DWORD GetProcessImageFileNameW(HANDLE, LPWSTR, DWORD); /* XP/Server2003/Vista/Longhorn */ + + /* Module Information + * http://windowssdk.msdn.microsoft.com/library/ms684232.aspx */ + BOOL EnumProcessModules(HANDLE, HMODULE*, DWORD, LPDWORD); + BOOL EnumProcessModulesEx(HANDLE, HMODULE*, DWORD, LPDWORD, DWORD); /* Vista/Longhorn */ + DWORD GetModuleBaseNameA(HANDLE, HMODULE, LPSTR, DWORD); + DWORD GetModuleBaseNameW(HANDLE, HMODULE, LPWSTR, DWORD); + DWORD GetModuleFileNameExA(HANDLE, HMODULE, LPSTR, DWORD); + DWORD GetModuleFileNameExW(HANDLE, HMODULE, LPWSTR, DWORD); + BOOL GetModuleInformation(HANDLE, HMODULE, LPMODULEINFO, DWORD); + + /* Device Driver Information + * http://windowssdk.msdn.microsoft.com/library/ms682578.aspx */ + BOOL EnumDeviceDrivers(LPVOID*, DWORD, LPDWORD); + DWORD GetDeviceDriverBaseNameA(LPVOID, LPSTR, DWORD); + DWORD GetDeviceDriverBaseNameW(LPVOID, LPWSTR, DWORD); + DWORD GetDeviceDriverFileNameA(LPVOID, LPSTR, DWORD); + DWORD GetDeviceDriverFileNameW(LPVOID, LPWSTR, DWORD); + + /* Process Memory Usage Information + * http://windowssdk.msdn.microsoft.com/library/ms684879.aspx */ + BOOL GetProcessMemoryInfo(HANDLE, PPROCESS_MEMORY_COUNTERS, DWORD); + + /* Working Set Information + * http://windowssdk.msdn.microsoft.com/library/ms687398.aspx */ + BOOL EmptyWorkingSet(HANDLE); + BOOL GetWsChanges(HANDLE, PPSAPI_WS_WATCH_INFORMATION, DWORD); + BOOL GetWsChangesEx(HANDLE, PPSAPI_WS_WATCH_INFORMATION_EX, DWORD); /* Vista/Longhorn */ + BOOL InitializeProcessForWsWatch(HANDLE); + BOOL QueryWorkingSet(HANDLE, PVOID, DWORD); + BOOL QueryWorkingSetEx(HANDLE, PVOID, DWORD); + + /* Memory-Mapped File Information + * http://windowssdk.msdn.microsoft.com/library/ms684212.aspx */ + DWORD GetMappedFileNameW(HANDLE, LPVOID, LPWSTR, DWORD); + DWORD GetMappedFileNameA(HANDLE, LPVOID, LPSTR, DWORD); + + /* Resources Information */ + BOOL GetPerformanceInfo(PPERFORMANCE_INFORMATION, DWORD); /* XP/Server2003/Vista/Longhorn */ + BOOL EnumPageFilesW(PENUM_PAGE_FILE_CALLBACK, LPVOID); /* 2000/XP/Server2003/Vista/Longhorn */ + BOOL EnumPageFilesA(PENUM_PAGE_FILE_CALLBACK, LPVOID); /* 2000/XP/Server2003/Vista/Longhorn */ +} + +version (Unicode) { + alias GetModuleBaseNameW GetModuleBaseName; + alias GetModuleFileNameExW GetModuleFileNameEx; + alias GetMappedFileNameW GetMappedFileName; + alias GetDeviceDriverBaseNameW GetDeviceDriverBaseName; + alias GetDeviceDriverFileNameW GetDeviceDriverFileName; + alias EnumPageFilesW EnumPageFiles; + alias GetProcessImageFileNameW GetProcessImageFileName; +} else { + alias GetModuleBaseNameA GetModuleBaseName; + alias GetModuleFileNameExA GetModuleFileNameEx; + alias GetMappedFileNameA GetMappedFileName; + alias GetDeviceDriverBaseNameA GetDeviceDriverBaseName; + alias GetDeviceDriverFileNameA GetDeviceDriverFileName; + alias EnumPageFilesA EnumPageFiles; + alias GetProcessImageFileNameA GetProcessImageFileName; +} ADDED src/win32/rapi.d Index: src/win32/rapi.d ================================================================== --- src/win32/rapi.d +++ src/win32/rapi.d @@ -0,0 +1,61 @@ +/***********************************************************************\ +* rapi.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.rapi; + +/* Comment from MinGW + NOTE: This strictly does not belong in the Win32 API since it's + really part of Platform SDK. + */ + +private import win32.winbase, win32.windef; + +struct IRAPIStream { + IRAPIStreamVtbl* lpVtbl; +} + +enum RAPISTREAMFLAG { + STREAM_TIMEOUT_READ +} + +extern (Windows) { + alias HRESULT function(IRAPIStream*, RAPISTREAMFLAG, DWORD) _SetRapiStat; + alias HRESULT function(IRAPIStream*, RAPISTREAMFLAG, DWORD*) _GetRapiStat; +} + +struct IRAPIStreamVtbl { + _SetRapiStat SetRapiStat; + _GetRapiStat GetRapiStat; +} + +// FIXME: what's this? +//typedef HRESULT(STDAPICALLTYPE RAPIEXT)(DWORD, BYTE, DWORD, BYTE, IRAPIStream*); + +struct RAPIINIT { + DWORD cbSize = this.sizeof; + HANDLE heRapiInit; + HRESULT hrRapiInit; +} + +extern (Windows) { + HRESULT CeRapiInit(); + HRESULT CeRapiInitEx(RAPIINIT*); + BOOL CeCreateProcess(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES, + LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPWSTR, LPSTARTUPINFO, + LPPROCESS_INFORMATION); + HRESULT CeRapiUninit(); + BOOL CeWriteFile(HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED); + HANDLE CeCreateFile(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, + DWORD, HANDLE); + BOOL CeCreateDirectory(LPCWSTR, LPSECURITY_ATTRIBUTES); + DWORD CeGetLastError(); + BOOL CeGetFileTime(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME); + BOOL CeCloseHandle(HANDLE); +} ADDED src/win32/ras.d Index: src/win32/ras.d ================================================================== --- src/win32/ras.d +++ src/win32/ras.d @@ -0,0 +1,1029 @@ +/***********************************************************************\ +* ras.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.ras; +pragma(lib, "rasapi32.lib"); + +private import win32.basetyps, win32.lmcons, win32.w32api, win32.windef; + +align(4): + +const RAS_MaxDeviceType = 16; +const RAS_MaxPhoneNumber = 128; +const RAS_MaxIpAddress = 15; +const RAS_MaxIpxAddress = 21; +const RAS_MaxEntryName = 256; +const RAS_MaxDeviceName = 128; +const RAS_MaxCallbackNumber = RAS_MaxPhoneNumber; +const RAS_MaxAreaCode = 10; +const RAS_MaxPadType = 32; +const RAS_MaxX25Address = 200; +const RAS_MaxFacilities = 200; +const RAS_MaxUserData = 200; +const RAS_MaxReplyMessage = 1024; + +const RDEOPT_UsePrefixSuffix = 0x00000001; +const RDEOPT_PausedStates = 0x00000002; +const RDEOPT_IgnoreModemSpeaker = 0x00000004; +const RDEOPT_SetModemSpeaker = 0x00000008; +const RDEOPT_IgnoreSoftwareCompression = 0x00000010; +const RDEOPT_SetSoftwareCompression = 0x00000020; +const RDEOPT_DisableConnectedUI = 0x00000040; +const RDEOPT_DisableReconnectUI = 0x00000080; +const RDEOPT_DisableReconnect = 0x00000100; +const RDEOPT_NoUser = 0x00000200; +const RDEOPT_PauseOnScript = 0x00000400; +const RDEOPT_Router = 0x00000800; + +const REN_User = 0x00000000; +const REN_AllUsers = 0x00000001; +const VS_Default = 0; +const VS_PptpOnly = 1; +const VS_PptpFirst = 2; +const VS_L2tpOnly = 3; +const VS_L2tpFirst = 4; + +const RASDIALEVENT = "RasDialEvent"; +const WM_RASDIALEVENT = 0xCCCD; + +const RASEO_UseCountryAndAreaCodes = 0x00000001; +const RASEO_SpecificIpAddr = 0x00000002; +const RASEO_SpecificNameServers = 0x00000004; +const RASEO_IpHeaderCompression = 0x00000008; +const RASEO_RemoteDefaultGateway = 0x00000010; +const RASEO_DisableLcpExtensions = 0x00000020; +const RASEO_TerminalBeforeDial = 0x00000040; +const RASEO_TerminalAfterDial = 0x00000080; +const RASEO_ModemLights = 0x00000100; +const RASEO_SwCompression = 0x00000200; +const RASEO_RequireEncryptedPw = 0x00000400; +const RASEO_RequireMsEncryptedPw = 0x00000800; +const RASEO_RequireDataEncryption = 0x00001000; +const RASEO_NetworkLogon = 0x00002000; +const RASEO_UseLogonCredentials = 0x00004000; +const RASEO_PromoteAlternates = 0x00008000; +const RASNP_NetBEUI = 0x00000001; +const RASNP_Ipx = 0x00000002; +const RASNP_Ip = 0x00000004; +const RASFP_Ppp = 0x00000001; +const RASFP_Slip = 0x00000002; +const RASFP_Ras = 0x00000004; + +const TCHAR[] + RASDT_Modem = "modem", + RASDT_Isdn = "isdn", + RASDT_X25 = "x25", + RASDT_Vpn = "vpn", + RASDT_Pad = "pad", + RASDT_Generic = "GENERIC", + RASDT_Serial = "SERIAL", + RASDT_FrameRelay = "FRAMERELAY", + RASDT_Atm = "ATM", + RASDT_Sonet = "SONET", + RASDT_SW56 = "SW56", + RASDT_Irda = "IRDA", + RASDT_Parallel = "PARALLEL"; + +const RASET_Phone = 1; +const RASET_Vpn = 2; +const RASET_Direct = 3; +const RASET_Internet = 4; + +static if (WINVER >= 0x0401) { + const RASEO_SecureLocalFiles = 0x00010000; + const RASCN_Connection = 0x00000001; + const RASCN_Disconnection = 0x00000002; + const RASCN_BandwidthAdded = 0x00000004; + const RASCN_BandwidthRemoved = 0x00000008; + const RASEDM_DialAll = 1; + const RASEDM_DialAsNeeded = 2; + const RASIDS_Disabled = 0xffffffff; + const RASIDS_UseGlobalValue = 0; + const RASADFLG_PositionDlg = 0x00000001; + const RASCM_UserName = 0x00000001; + const RASCM_Password = 0x00000002; + const RASCM_Domain = 0x00000004; + const RASADP_DisableConnectionQuery = 0; + const RASADP_LoginSessionDisable = 1; + const RASADP_SavedAddressesLimit = 2; + const RASADP_FailedConnectionTimeout = 3; + const RASADP_ConnectionQueryTimeout = 4; +} +static if (WINVER >= 0x0500) { + const RDEOPT_CustomDial = 0x00001000; + const RASLCPAP_PAP = 0xC023; + const RASLCPAP_SPAP = 0xC027; + const RASLCPAP_CHAP = 0xC223; + const RASLCPAP_EAP = 0xC227; + const RASLCPAD_CHAP_MD5 = 0x05; + const RASLCPAD_CHAP_MS = 0x80; + const RASLCPAD_CHAP_MSV2 = 0x81; + const RASLCPO_PFC = 0x00000001; + const RASLCPO_ACFC = 0x00000002; + const RASLCPO_SSHF = 0x00000004; + const RASLCPO_DES_56 = 0x00000008; + const RASLCPO_3_DES = 0x00000010; + + const RASCCPCA_MPPC = 0x00000006; + const RASCCPCA_STAC = 0x00000005; + + const RASCCPO_Compression = 0x00000001; + const RASCCPO_HistoryLess = 0x00000002; + const RASCCPO_Encryption56bit = 0x00000010; + const RASCCPO_Encryption40bit = 0x00000020; + const RASCCPO_Encryption128bit = 0x00000040; + + const RASEO_RequireEAP = 0x00020000; + const RASEO_RequirePAP = 0x00040000; + const RASEO_RequireSPAP = 0x00080000; + const RASEO_Custom = 0x00100000; + const RASEO_PreviewPhoneNumber = 0x00200000; + const RASEO_SharedPhoneNumbers = 0x00800000; + const RASEO_PreviewUserPw = 0x01000000; + const RASEO_PreviewDomain = 0x02000000; + const RASEO_ShowDialingProgress = 0x04000000; + const RASEO_RequireCHAP = 0x08000000; + const RASEO_RequireMsCHAP = 0x10000000; + const RASEO_RequireMsCHAP2 = 0x20000000; + const RASEO_RequireW95MSCHAP = 0x40000000; + const RASEO_CustomScript = 0x80000000; + + const RASIPO_VJ = 0x00000001; + const RCD_SingleUser = 0; + const RCD_AllUsers = 0x00000001; + const RCD_Eap = 0x00000002; + const RASEAPF_NonInteractive = 0x00000002; + const RASEAPF_Logon = 0x00000004; + const RASEAPF_Preview = 0x00000008; + const ET_40Bit = 1; + const ET_128Bit = 2; + const ET_None = 0; + const ET_Require = 1; + const ET_RequireMax = 2; + const ET_Optional = 3; +} + +const RASCS_PAUSED = 0x1000; +const RASCS_DONE = 0x2000; +enum RASCONNSTATE { + RASCS_OpenPort = 0, + RASCS_PortOpened, + RASCS_ConnectDevice, + RASCS_DeviceConnected, + RASCS_AllDevicesConnected, + RASCS_Authenticate, + RASCS_AuthNotify, + RASCS_AuthRetry, + RASCS_AuthCallback, + RASCS_AuthChangePassword, + RASCS_AuthProject, + RASCS_AuthLinkSpeed, + RASCS_AuthAck, + RASCS_ReAuthenticate, + RASCS_Authenticated, + RASCS_PrepareForCallback, + RASCS_WaitForModemReset, + RASCS_WaitForCallback, + RASCS_Projected, + RASCS_StartAuthentication, + RASCS_CallbackComplete, + RASCS_LogonNetwork, + RASCS_SubEntryConnected, + RASCS_SubEntryDisconnected, + RASCS_Interactive = RASCS_PAUSED, + RASCS_RetryAuthentication, + RASCS_CallbackSetByCaller, + RASCS_PasswordExpired, +// static if (WINVER >= 0x0500) { + RASCS_InvokeEapUI, +// } + RASCS_Connected = RASCS_DONE, + RASCS_Disconnected +} +alias RASCONNSTATE* LPRASCONNSTATE; + +enum RASPROJECTION { + RASP_Amb = 0x10000, + RASP_PppNbf = 0x803F, + RASP_PppIpx = 0x802B, + RASP_PppIp = 0x8021, +// static if (WINVER >= 0x0500) { + RASP_PppCcp = 0x80FD, +// } + RASP_PppLcp = 0xC021, + RASP_Slip = 0x20000 +} +alias RASPROJECTION* LPRASPROJECTION; + +alias HANDLE HRASCONN; +alias HRASCONN* LPHRASCONN; + +struct RASCONNW { + DWORD dwSize; + HRASCONN hrasconn; + WCHAR szEntryName[RAS_MaxEntryName + 1]; + static if (WINVER >= 0x0400) { + WCHAR szDeviceType[RAS_MaxDeviceType + 1]; + WCHAR szDeviceName[RAS_MaxDeviceName + 1]; + } + static if (WINVER >= 0x0401) { + WCHAR szPhonebook[MAX_PATH]; + DWORD dwSubEntry; + } + static if (WINVER >= 0x0500) { + GUID guidEntry; + } + static if (WINVER >= 0x0501) { + DWORD dwFlags; + LUID luid; + } +} +alias RASCONNW* LPRASCONNW; + +struct RASCONNA { + DWORD dwSize; + HRASCONN hrasconn; + CHAR szEntryName[RAS_MaxEntryName + 1]; + static if (WINVER >= 0x0400) { + CHAR szDeviceType[RAS_MaxDeviceType + 1]; + CHAR szDeviceName[RAS_MaxDeviceName + 1]; + } + static if (WINVER >= 0x0401) { + CHAR szPhonebook[MAX_PATH]; + DWORD dwSubEntry; + } + static if (WINVER >= 0x0500) { + GUID guidEntry; + } + static if (WINVER >= 0x0501) { + DWORD dwFlags; + LUID luid; + } +} +alias RASCONNA* LPRASCONNA; + +struct RASCONNSTATUSW { + DWORD dwSize; + RASCONNSTATE rasconnstate; + DWORD dwError; + WCHAR szDeviceType[RAS_MaxDeviceType + 1]; + WCHAR szDeviceName[RAS_MaxDeviceName + 1]; + static if (WINVER >= 0x0401) { + WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; + } +} +alias RASCONNSTATUSW* LPRASCONNSTATUSW; + +struct RASCONNSTATUSA { + DWORD dwSize; + RASCONNSTATE rasconnstate; + DWORD dwError; + CHAR szDeviceType[RAS_MaxDeviceType + 1]; + CHAR szDeviceName[RAS_MaxDeviceName + 1]; + static if (WINVER >= 0x0401) { + CHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; + } +} +alias RASCONNSTATUSA* LPRASCONNSTATUSA; + +struct RASDIALPARAMSW { + DWORD dwSize; + WCHAR szEntryName[RAS_MaxEntryName + 1]; + WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; + WCHAR szCallbackNumber[RAS_MaxCallbackNumber + 1]; + WCHAR szUserName[UNLEN + 1]; + WCHAR szPassword[PWLEN + 1]; + WCHAR szDomain[DNLEN + 1]; + static if (WINVER >= 0x0401) { + DWORD dwSubEntry; + ULONG_PTR dwCallbackId; + } +} +alias RASDIALPARAMSW* LPRASDIALPARAMSW; + +struct RASDIALPARAMSA{ + DWORD dwSize; + CHAR szEntryName[RAS_MaxEntryName + 1]; + CHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; + CHAR szCallbackNumber[RAS_MaxCallbackNumber + 1]; + CHAR szUserName[UNLEN + 1]; + CHAR szPassword[PWLEN + 1]; + CHAR szDomain[DNLEN + 1]; + static if (WINVER >= 0x0401) { + DWORD dwSubEntry; + ULONG_PTR dwCallbackId; + } +} +alias RASDIALPARAMSA* LPRASDIALPARAMSA; + +static if (WINVER >= 0x0500) { + struct RASEAPINFO { + DWORD dwSizeofEapInfo; + BYTE *pbEapInfo; + } +} + +struct RASDIALEXTENSIONS { + DWORD dwSize; + DWORD dwfOptions; + HWND hwndParent; + ULONG_PTR reserved; + static if (WINVER >= 0x0500) { + ULONG_PTR reserved1; + RASEAPINFO RasEapInfo; + } +} +alias RASDIALEXTENSIONS* LPRASDIALEXTENSIONS; + +struct RASENTRYNAMEW { + DWORD dwSize; + WCHAR szEntryName[RAS_MaxEntryName + 1]; + static if (WINVER >= 0x0500) { + DWORD dwFlags; + WCHAR szPhonebookPath[MAX_PATH + 1]; + } +} +alias RASENTRYNAMEW* LPRASENTRYNAMEW; + +struct RASENTRYNAMEA{ + DWORD dwSize; + CHAR szEntryName[RAS_MaxEntryName + 1]; + static if (WINVER >= 0x0500) { + DWORD dwFlags; + CHAR szPhonebookPath[MAX_PATH + 1]; + } +} +alias RASENTRYNAMEA* LPRASENTRYNAMEA; + +struct RASAMBW{ + DWORD dwSize; + DWORD dwError; + WCHAR szNetBiosError[NETBIOS_NAME_LEN + 1]; + BYTE bLana; +} +alias RASAMBW* LPRASAMBW; + +struct RASAMBA{ + DWORD dwSize; + DWORD dwError; + CHAR szNetBiosError[NETBIOS_NAME_LEN + 1]; + BYTE bLana; +} +alias RASAMBA* LPRASAMBA; + +struct RASPPPNBFW{ + DWORD dwSize; + DWORD dwError; + DWORD dwNetBiosError; + WCHAR szNetBiosError[NETBIOS_NAME_LEN + 1]; + WCHAR szWorkstationName[NETBIOS_NAME_LEN + 1]; + BYTE bLana; +} +alias RASPPPNBFW* LPRASPPPNBFW; + +struct RASPPPNBFA{ + DWORD dwSize; + DWORD dwError; + DWORD dwNetBiosError; + CHAR szNetBiosError[NETBIOS_NAME_LEN + 1]; + CHAR szWorkstationName[NETBIOS_NAME_LEN + 1]; + BYTE bLana; +} +alias RASPPPNBFA* LPRASPPPNBFA; + +struct RASPPPIPXW { + DWORD dwSize; + DWORD dwError; + WCHAR szIpxAddress[RAS_MaxIpxAddress + 1]; +} +alias RASPPPIPXW* LPRASPPPIPXW; + +struct RASPPPIPXA { + DWORD dwSize; + DWORD dwError; + CHAR szIpxAddress[RAS_MaxIpxAddress + 1]; +} +alias RASPPPIPXA* LPRASPPPIPXA; + +struct RASPPPIPW{ + DWORD dwSize; + DWORD dwError; + WCHAR szIpAddress[RAS_MaxIpAddress + 1]; + //#ifndef WINNT35COMPATIBLE + WCHAR szServerIpAddress[RAS_MaxIpAddress + 1]; + //#endif + static if (WINVER >= 0x0500) { + DWORD dwOptions; + DWORD dwServerOptions; + } +} +alias RASPPPIPW* LPRASPPPIPW; + +struct RASPPPIPA{ + DWORD dwSize; + DWORD dwError; + CHAR szIpAddress[RAS_MaxIpAddress + 1]; + //#ifndef WINNT35COMPATIBLE + CHAR szServerIpAddress[RAS_MaxIpAddress + 1]; + //#endif + static if (WINVER >= 0x0500) { + DWORD dwOptions; + DWORD dwServerOptions; + } +} +alias RASPPPIPA* LPRASPPPIPA; + +struct RASPPPLCPW{ + DWORD dwSize; + BOOL fBundled; + static if (WINVER >= 0x0500) { + DWORD dwError; + DWORD dwAuthenticationProtocol; + DWORD dwAuthenticationData; + DWORD dwEapTypeId; + DWORD dwServerAuthenticationProtocol; + DWORD dwServerAuthenticationData; + DWORD dwServerEapTypeId; + BOOL fMultilink; + DWORD dwTerminateReason; + DWORD dwServerTerminateReason; + WCHAR szReplyMessage[RAS_MaxReplyMessage]; + DWORD dwOptions; + DWORD dwServerOptions; + } +} +alias RASPPPLCPW* LPRASPPPLCPW; + +struct RASPPPLCPA{ + DWORD dwSize; + BOOL fBundled; + static if (WINVER >= 0x0500) { + DWORD dwError; + DWORD dwAuthenticationProtocol; + DWORD dwAuthenticationData; + DWORD dwEapTypeId; + DWORD dwServerAuthenticationProtocol; + DWORD dwServerAuthenticationData; + DWORD dwServerEapTypeId; + BOOL fMultilink; + DWORD dwTerminateReason; + DWORD dwServerTerminateReason; + CHAR szReplyMessage[RAS_MaxReplyMessage]; + DWORD dwOptions; + DWORD dwServerOptions; + } +} +alias RASPPPLCPA* LPRASPPPLCPA; + +struct RASSLIPW{ + DWORD dwSize; + DWORD dwError; + WCHAR szIpAddress[RAS_MaxIpAddress + 1]; +} +alias RASSLIPW* LPRASSLIPW; + +struct RASSLIPA{ + DWORD dwSize; + DWORD dwError; + CHAR szIpAddress[RAS_MaxIpAddress + 1]; +} +alias RASSLIPA* LPRASSLIPA; + +struct RASDEVINFOW{ + DWORD dwSize; + WCHAR szDeviceType[RAS_MaxDeviceType + 1]; + WCHAR szDeviceName[RAS_MaxDeviceName + 1]; +} +alias RASDEVINFOW* LPRASDEVINFOW; + +struct RASDEVINFOA{ + DWORD dwSize; + CHAR szDeviceType[RAS_MaxDeviceType + 1]; + CHAR szDeviceName[RAS_MaxDeviceName + 1]; +} +alias RASDEVINFOA* LPRASDEVINFOA; + +struct RASCTRYINFO { + DWORD dwSize; + DWORD dwCountryID; + DWORD dwNextCountryID; + DWORD dwCountryCode; + DWORD dwCountryNameOffset; +} +alias RASCTRYINFO* LPRASCTRYINFO; +alias RASCTRYINFO RASCTRYINFOW, RASCTRYINFOA; +alias RASCTRYINFOW* LPRASCTRYINFOW; +alias RASCTRYINFOA* LPRASCTRYINFOA; + +struct RASIPADDR { + BYTE a; + BYTE b; + BYTE c; + BYTE d; +} + +struct RASENTRYW { + DWORD dwSize; + DWORD dwfOptions; + DWORD dwCountryID; + DWORD dwCountryCode; + WCHAR szAreaCode[RAS_MaxAreaCode + 1]; + WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; + DWORD dwAlternateOffset; + RASIPADDR ipaddr; + RASIPADDR ipaddrDns; + RASIPADDR ipaddrDnsAlt; + RASIPADDR ipaddrWins; + RASIPADDR ipaddrWinsAlt; + DWORD dwFrameSize; + DWORD dwfNetProtocols; + DWORD dwFramingProtocol; + WCHAR szScript[MAX_PATH]; + WCHAR szAutodialDll[MAX_PATH]; + WCHAR szAutodialFunc[MAX_PATH]; + WCHAR szDeviceType[RAS_MaxDeviceType + 1]; + WCHAR szDeviceName[RAS_MaxDeviceName + 1]; + WCHAR szX25PadType[RAS_MaxPadType + 1]; + WCHAR szX25Address[RAS_MaxX25Address + 1]; + WCHAR szX25Facilities[RAS_MaxFacilities + 1]; + WCHAR szX25UserData[RAS_MaxUserData + 1]; + DWORD dwChannels; + DWORD dwReserved1; + DWORD dwReserved2; + static if (WINVER >= 0x0401) { + DWORD dwSubEntries; + DWORD dwDialMode; + DWORD dwDialExtraPercent; + DWORD dwDialExtraSampleSeconds; + DWORD dwHangUpExtraPercent; + DWORD dwHangUpExtraSampleSeconds; + DWORD dwIdleDisconnectSeconds; + } + static if (WINVER >= 0x0500) { + DWORD dwType; + DWORD dwEncryptionType; + DWORD dwCustomAuthKey; + GUID guidId; + WCHAR szCustomDialDll[MAX_PATH]; + DWORD dwVpnStrategy; + } +} +alias RASENTRYW* LPRASENTRYW; + +struct RASENTRYA { + DWORD dwSize; + DWORD dwfOptions; + DWORD dwCountryID; + DWORD dwCountryCode; + CHAR szAreaCode[RAS_MaxAreaCode + 1]; + CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; + DWORD dwAlternateOffset; + RASIPADDR ipaddr; + RASIPADDR ipaddrDns; + RASIPADDR ipaddrDnsAlt; + RASIPADDR ipaddrWins; + RASIPADDR ipaddrWinsAlt; + DWORD dwFrameSize; + DWORD dwfNetProtocols; + DWORD dwFramingProtocol; + CHAR szScript[MAX_PATH]; + CHAR szAutodialDll[MAX_PATH]; + CHAR szAutodialFunc[MAX_PATH]; + CHAR szDeviceType[RAS_MaxDeviceType + 1]; + CHAR szDeviceName[RAS_MaxDeviceName + 1]; + CHAR szX25PadType[RAS_MaxPadType + 1]; + CHAR szX25Address[RAS_MaxX25Address + 1]; + CHAR szX25Facilities[RAS_MaxFacilities + 1]; + CHAR szX25UserData[RAS_MaxUserData + 1]; + DWORD dwChannels; + DWORD dwReserved1; + DWORD dwReserved2; + static if (WINVER >= 0x0401) { + DWORD dwSubEntries; + DWORD dwDialMode; + DWORD dwDialExtraPercent; + DWORD dwDialExtraSampleSeconds; + DWORD dwHangUpExtraPercent; + DWORD dwHangUpExtraSampleSeconds; + DWORD dwIdleDisconnectSeconds; + } + static if (WINVER >= 0x0500) { + DWORD dwType; + DWORD dwEncryptionType; + DWORD dwCustomAuthKey; + GUID guidId; + CHAR szCustomDialDll[MAX_PATH]; + DWORD dwVpnStrategy; + } +} +alias RASENTRYA* LPRASENTRYA; + + +static if (WINVER >= 0x0401) { + struct RASADPARAMS { + DWORD dwSize; + HWND hwndOwner; + DWORD dwFlags; + LONG xDlg; + LONG yDlg; + } + alias RASADPARAMS* LPRASADPARAMS; + + struct RASSUBENTRYW{ + DWORD dwSize; + DWORD dwfFlags; + WCHAR szDeviceType[RAS_MaxDeviceType + 1]; + WCHAR szDeviceName[RAS_MaxDeviceName + 1]; + WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; + DWORD dwAlternateOffset; + } + alias RASSUBENTRYW* LPRASSUBENTRYW; + + struct RASSUBENTRYA{ + DWORD dwSize; + DWORD dwfFlags; + CHAR szDeviceType[RAS_MaxDeviceType + 1]; + CHAR szDeviceName[RAS_MaxDeviceName + 1]; + CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; + DWORD dwAlternateOffset; + } + alias RASSUBENTRYA* LPRASSUBENTRYA; + + struct RASCREDENTIALSW{ + DWORD dwSize; + DWORD dwMask; + WCHAR szUserName[UNLEN + 1]; + WCHAR szPassword[PWLEN + 1]; + WCHAR szDomain[DNLEN + 1]; + } + alias RASCREDENTIALSW* LPRASCREDENTIALSW; + + struct RASCREDENTIALSA{ + DWORD dwSize; + DWORD dwMask; + CHAR szUserName[UNLEN + 1]; + CHAR szPassword[PWLEN + 1]; + CHAR szDomain[DNLEN + 1]; + } + alias RASCREDENTIALSA* LPRASCREDENTIALSA; + + struct RASAUTODIALENTRYW{ + DWORD dwSize; + DWORD dwFlags; + DWORD dwDialingLocation; + WCHAR szEntry[RAS_MaxEntryName + 1]; + } + alias RASAUTODIALENTRYW* LPRASAUTODIALENTRYW; + + struct RASAUTODIALENTRYA{ + DWORD dwSize; + DWORD dwFlags; + DWORD dwDialingLocation; + CHAR szEntry[RAS_MaxEntryName + 1]; + } + alias RASAUTODIALENTRYA* LPRASAUTODIALENTRYA; +} + +static if (WINVER >= 0x0500) { + struct RASPPPCCP{ + DWORD dwSize; + DWORD dwError; + DWORD dwCompressionAlgorithm; + DWORD dwOptions; + DWORD dwServerCompressionAlgorithm; + DWORD dwServerOptions; + } + alias RASPPPCCP* LPRASPPPCCP; + + struct RASEAPUSERIDENTITYW{ + WCHAR szUserName[UNLEN + 1]; + DWORD dwSizeofEapInfo; + BYTE pbEapInfo[1]; + } + alias RASEAPUSERIDENTITYW* LPRASEAPUSERIDENTITYW; + + struct RASEAPUSERIDENTITYA{ + CHAR szUserName[UNLEN + 1]; + DWORD dwSizeofEapInfo; + BYTE pbEapInfo[1]; + } + alias RASEAPUSERIDENTITYA* LPRASEAPUSERIDENTITYA; + + struct RAS_STATS{ + DWORD dwSize; + DWORD dwBytesXmited; + DWORD dwBytesRcved; + DWORD dwFramesXmited; + DWORD dwFramesRcved; + DWORD dwCrcErr; + DWORD dwTimeoutErr; + DWORD dwAlignmentErr; + DWORD dwHardwareOverrunErr; + DWORD dwFramingErr; + DWORD dwBufferOverrunErr; + DWORD dwCompressionRatioIn; + DWORD dwCompressionRatioOut; + DWORD dwBps; + DWORD dwConnectDuration; + } + alias RAS_STATS* PRAS_STATS; +} + + +/* UNICODE typedefs for structures*/ +version (Unicode) { + alias RASCONNW RASCONN; + alias RASENTRYW RASENTRY; + alias RASCONNSTATUSW RASCONNSTATUS; + alias RASDIALPARAMSW RASDIALPARAMS; + alias RASAMBW RASAMB; + alias RASPPPNBFW RASPPPNBF; + alias RASPPPIPXW RASPPPIPX; + alias RASPPPIPW RASPPPIP; + alias RASPPPLCPW RASPPPLCP; + alias RASSLIPW RASSLIP; + alias RASDEVINFOW RASDEVINFO; + alias RASENTRYNAMEW RASENTRYNAME; + + static if (WINVER >= 0x0401) { + alias RASSUBENTRYW RASSUBENTRY; + alias RASCREDENTIALSW RASCREDENTIALS; + alias RASAUTODIALENTRYW RASAUTODIALENTRY; + } + + static if (WINVER >= 0x0500) { + alias RASEAPUSERIDENTITYW RASEAPUSERIDENTITY; + } + +} else { // ! defined UNICODE + + alias RASCONNA RASCONN; + alias RASENTRYA RASENTRY; + alias RASCONNSTATUSA RASCONNSTATUS; + alias RASDIALPARAMSA RASDIALPARAMS; + alias RASAMBA RASAMB; + alias RASPPPNBFA RASPPPNBF; + alias RASPPPIPXA RASPPPIPX; + alias RASPPPIPA RASPPPIP; + alias RASPPPLCPA RASPPPLCP; + alias RASSLIPA RASSLIP; + alias RASDEVINFOA RASDEVINFO; + alias RASENTRYNAMEA RASENTRYNAME; + + static if (WINVER >= 0x0401) { + alias RASSUBENTRYA RASSUBENTRY; + alias RASCREDENTIALSA RASCREDENTIALS; + alias RASAUTODIALENTRYA RASAUTODIALENTRY; + } + static if (WINVER >= 0x0500) { + alias RASEAPUSERIDENTITYA RASEAPUSERIDENTITY; + } +}// ! UNICODE + + +alias RASCONN* LPRASCONN; +alias RASENTRY* LPRASENTRY; +alias RASCONNSTATUS* LPRASCONNSTATUS; +alias RASDIALPARAMS* LPRASDIALPARAMS; +alias RASAMB* LPRASAM; +alias RASPPPNBF* LPRASPPPNBF; +alias RASPPPIPX* LPRASPPPIPX; +alias RASPPPIP* LPRASPPPIP; +alias RASPPPLCP* LPRASPPPLCP; +alias RASSLIP* LPRASSLIP; +alias RASDEVINFO* LPRASDEVINFO; +alias RASENTRYNAME* LPRASENTRYNAME; + +static if (WINVER >= 0x0401) { + alias RASSUBENTRY* LPRASSUBENTRY; + alias RASCREDENTIALS* LPRASCREDENTIALS; + alias RASAUTODIALENTRY* LPRASAUTODIALENTRY; +} +static if (WINVER >= 0x0500) { + alias RASEAPUSERIDENTITY* LPRASEAPUSERIDENTITY; +} + +/* Callback prototypes */ +deprecated { + alias BOOL function (HWND, LPSTR, DWORD, LPDWORD) ORASADFUNC; +} + +alias void function (UINT, RASCONNSTATE, DWORD) RASDIALFUNC; +alias void function(HRASCONN, UINT, RASCONNSTATE, DWORD, +DWORD) RASDIALFUNC1; +alias DWORD function (ULONG_PTR, DWORD, HRASCONN, UINT, +RASCONNSTATE, DWORD, DWORD) RASDIALFUNC2; + +/* External functions */ +DWORD RasDialA (LPRASDIALEXTENSIONS, LPCSTR, LPRASDIALPARAMSA, +DWORD, LPVOID, LPHRASCONN); +DWORD RasDialW (LPRASDIALEXTENSIONS, LPCWSTR, LPRASDIALPARAMSW, +DWORD, LPVOID, LPHRASCONN); +DWORD RasEnumConnectionsA (LPRASCONNA, LPDWORD, LPDWORD); +DWORD RasEnumConnectionsW (LPRASCONNW, LPDWORD, LPDWORD); +DWORD RasEnumEntriesA (LPCSTR, LPCSTR, LPRASENTRYNAMEA, LPDWORD, +LPDWORD); +DWORD RasEnumEntriesW (LPCWSTR, LPCWSTR, LPRASENTRYNAMEW, LPDWORD, +LPDWORD); +DWORD RasGetConnectStatusA (HRASCONN, LPRASCONNSTATUSA); +DWORD RasGetConnectStatusW (HRASCONN, LPRASCONNSTATUSW); +DWORD RasGetErrorStringA (UINT, LPSTR, DWORD); +DWORD RasGetErrorStringW (UINT, LPWSTR, DWORD); +DWORD RasHangUpA (HRASCONN); +DWORD RasHangUpW (HRASCONN); +DWORD RasGetProjectionInfoA (HRASCONN, RASPROJECTION, LPVOID, +LPDWORD); +DWORD RasGetProjectionInfoW (HRASCONN, RASPROJECTION, LPVOID, +LPDWORD); +DWORD RasCreatePhonebookEntryA (HWND, LPCSTR); +DWORD RasCreatePhonebookEntryW (HWND, LPCWSTR); +DWORD RasEditPhonebookEntryA (HWND, LPCSTR, LPCSTR); +DWORD RasEditPhonebookEntryW (HWND, LPCWSTR, LPCWSTR); +DWORD RasSetEntryDialParamsA (LPCSTR, LPRASDIALPARAMSA, BOOL); +DWORD RasSetEntryDialParamsW (LPCWSTR, LPRASDIALPARAMSW, BOOL); +DWORD RasGetEntryDialParamsA (LPCSTR, LPRASDIALPARAMSA, LPBOOL); +DWORD RasGetEntryDialParamsW (LPCWSTR, LPRASDIALPARAMSW, LPBOOL); +DWORD RasEnumDevicesA (LPRASDEVINFOA, LPDWORD, LPDWORD); +DWORD RasEnumDevicesW (LPRASDEVINFOW, LPDWORD, LPDWORD); +DWORD RasGetCountryInfoA (LPRASCTRYINFOA, LPDWORD); +DWORD RasGetCountryInfoW (LPRASCTRYINFOW, LPDWORD); +DWORD RasGetEntryPropertiesA (LPCSTR, LPCSTR, LPRASENTRYA, LPDWORD, +LPBYTE, LPDWORD); +DWORD RasGetEntryPropertiesW (LPCWSTR, LPCWSTR, LPRASENTRYW, +LPDWORD, LPBYTE, LPDWORD); +DWORD RasSetEntryPropertiesA (LPCSTR, LPCSTR, LPRASENTRYA, DWORD, +LPBYTE, DWORD); +DWORD RasSetEntryPropertiesW (LPCWSTR, LPCWSTR, LPRASENTRYW, DWORD, +LPBYTE, DWORD); +DWORD RasRenameEntryA (LPCSTR, LPCSTR, LPCSTR); +DWORD RasRenameEntryW (LPCWSTR, LPCWSTR, LPCWSTR); +DWORD RasDeleteEntryA (LPCSTR, LPCSTR); +DWORD RasDeleteEntryW (LPCWSTR, LPCWSTR); +DWORD RasValidateEntryNameA (LPCSTR, LPCSTR); +DWORD RasValidateEntryNameW (LPCWSTR, LPCWSTR); + +static if (WINVER >= 0x0401) { + alias BOOL function (LPSTR, LPSTR, LPRASADPARAMS, LPDWORD) RASADFUNCA; + alias BOOL function (LPWSTR, LPWSTR, LPRASADPARAMS, LPDWORD) RASADFUNCW; + + DWORD RasGetSubEntryHandleA (HRASCONN, DWORD, LPHRASCONN); + DWORD RasGetSubEntryHandleW (HRASCONN, DWORD, LPHRASCONN); + DWORD RasGetCredentialsA (LPCSTR, LPCSTR, LPRASCREDENTIALSA); + DWORD RasGetCredentialsW (LPCWSTR, LPCWSTR, LPRASCREDENTIALSW); + DWORD RasSetCredentialsA (LPCSTR, LPCSTR, LPRASCREDENTIALSA, BOOL); + DWORD RasSetCredentialsW (LPCWSTR, LPCWSTR, LPRASCREDENTIALSW, BOOL); + DWORD RasConnectionNotificationA (HRASCONN, HANDLE, DWORD); + DWORD RasConnectionNotificationW (HRASCONN, HANDLE, DWORD); + DWORD RasGetSubEntryPropertiesA (LPCSTR, LPCSTR, DWORD, + LPRASSUBENTRYA, LPDWORD, LPBYTE, LPDWORD); + DWORD RasGetSubEntryPropertiesW (LPCWSTR, LPCWSTR, DWORD, + LPRASSUBENTRYW, LPDWORD, LPBYTE, LPDWORD); + DWORD RasSetSubEntryPropertiesA (LPCSTR, LPCSTR, DWORD, + LPRASSUBENTRYA, DWORD, LPBYTE, DWORD); + DWORD RasSetSubEntryPropertiesW (LPCWSTR, LPCWSTR, DWORD, + LPRASSUBENTRYW, DWORD, LPBYTE, DWORD); + DWORD RasGetAutodialAddressA (LPCSTR, LPDWORD, LPRASAUTODIALENTRYA, + LPDWORD, LPDWORD); + DWORD RasGetAutodialAddressW (LPCWSTR, LPDWORD, + LPRASAUTODIALENTRYW, LPDWORD, LPDWORD); + DWORD RasSetAutodialAddressA (LPCSTR, DWORD, LPRASAUTODIALENTRYA, + DWORD, DWORD); + DWORD RasSetAutodialAddressW (LPCWSTR, DWORD, LPRASAUTODIALENTRYW, + DWORD, DWORD); + DWORD RasEnumAutodialAddressesA (LPSTR *, LPDWORD, LPDWORD); + DWORD RasEnumAutodialAddressesW (LPWSTR *, LPDWORD, LPDWORD); + DWORD RasGetAutodialEnableA (DWORD, LPBOOL); + DWORD RasGetAutodialEnableW (DWORD, LPBOOL); + DWORD RasSetAutodialEnableA (DWORD, BOOL); + DWORD RasSetAutodialEnableW (DWORD, BOOL); + DWORD RasGetAutodialParamA (DWORD, LPVOID, LPDWORD); + DWORD RasGetAutodialParamW (DWORD, LPVOID, LPDWORD); + DWORD RasSetAutodialParamA (DWORD, LPVOID, DWORD); + DWORD RasSetAutodialParamW (DWORD, LPVOID, DWORD); +} + +static if (WINVER >= 0x0500) { + alias DWORD function (HRASCONN) RasCustomHangUpFn; + alias DWORD function (LPCTSTR, LPCTSTR, DWORD) RasCustomDeleteEntryNotifyFn; + alias DWORD function (HINSTANCE, LPRASDIALEXTENSIONS, + LPCTSTR, LPRASDIALPARAMS, DWORD, LPVOID, LPHRASCONN, DWORD) RasCustomDialFn; + + DWORD RasInvokeEapUI (HRASCONN, DWORD, LPRASDIALEXTENSIONS, HWND); + DWORD RasGetLinkStatistics (HRASCONN, DWORD, RAS_STATS*); + DWORD RasGetConnectionStatistics (HRASCONN, RAS_STATS*); + DWORD RasClearLinkStatistics (HRASCONN, DWORD); + DWORD RasClearConnectionStatistics (HRASCONN); + DWORD RasGetEapUserDataA (HANDLE, LPCSTR, LPCSTR, BYTE*, DWORD*); + DWORD RasGetEapUserDataW (HANDLE, LPCWSTR, LPCWSTR, BYTE*, DWORD*); + DWORD RasSetEapUserDataA (HANDLE, LPCSTR, LPCSTR, BYTE*, DWORD); + DWORD RasSetEapUserDataW (HANDLE, LPCWSTR, LPCWSTR, BYTE*, DWORD); + DWORD RasGetCustomAuthDataA (LPCSTR, LPCSTR, BYTE*, DWORD*); + DWORD RasGetCustomAuthDataW (LPCWSTR, LPCWSTR, BYTE*, DWORD*); + DWORD RasSetCustomAuthDataA (LPCSTR, LPCSTR, BYTE*, DWORD); + DWORD RasSetCustomAuthDataW (LPCWSTR, LPCWSTR, BYTE*, DWORD); + DWORD RasGetEapUserIdentityW (LPCWSTR, LPCWSTR, DWORD, HWND, LPRASEAPUSERIDENTITYW*); + DWORD RasGetEapUserIdentityA (LPCSTR, LPCSTR, DWORD, HWND, LPRASEAPUSERIDENTITYA*); + void RasFreeEapUserIdentityW (LPRASEAPUSERIDENTITYW); + void RasFreeEapUserIdentityA (LPRASEAPUSERIDENTITYA); +} + + +/* UNICODE defines for functions */ +version(Unicode) { + alias RasDialW RasDial; + alias RasEnumConnectionsW RasEnumConnections; + alias RasEnumEntriesW RasEnumEntries; + alias RasGetConnectStatusW RasGetConnectStatus; + alias RasGetErrorStringW RasGetErrorString; + alias RasHangUpW RasHangUp; + alias RasGetProjectionInfoW RasGetProjectionInfo; + alias RasCreatePhonebookEntryW RasCreatePhonebookEntry; + alias RasEditPhonebookEntryW RasEditPhonebookEntry; + alias RasSetEntryDialParamsW RasSetEntryDialParams; + alias RasGetEntryDialParamsW RasGetEntryDialParams; + alias RasEnumDevicesW RasEnumDevices; + alias RasGetCountryInfoW RasGetCountryInfo; + alias RasGetEntryPropertiesW RasGetEntryProperties; + alias RasSetEntryPropertiesW RasSetEntryProperties; + alias RasRenameEntryW RasRenameEntry; + alias RasDeleteEntryW RasDeleteEntry; + alias RasValidateEntryNameW RasValidateEntryName; + + static if (WINVER >= 0x0401) { + alias RASADFUNCW RASADFUNC; + alias RasGetSubEntryHandleW RasGetSubEntryHandle; + alias RasConnectionNotificationW RasConnectionNotification; + alias RasGetSubEntryPropertiesW RasGetSubEntryProperties; + alias RasSetSubEntryPropertiesW RasSetSubEntryProperties; + alias RasGetCredentialsW RasGetCredentials; + alias RasSetCredentialsW RasSetCredentials; + alias RasGetAutodialAddressW RasGetAutodialAddress; + alias RasSetAutodialAddressW RasSetAutodialAddress; + alias RasEnumAutodialAddressesW RasEnumAutodialAddresses; + alias RasGetAutodialEnableW RasGetAutodialEnable; + alias RasSetAutodialEnableW RasSetAutodialEnable; + alias RasGetAutodialParamW RasGetAutodialParam; + alias RasSetAutodialParamW RasSetAutodialParam; + } + + static if (WINVER >= 0x0500) { + alias RasGetEapUserDataW RasGetEapUserData; + alias RasSetEapUserDataW RasSetEapUserData; + alias RasGetCustomAuthDataW RasGetCustomAuthData; + alias RasSetCustomAuthDataW RasSetCustomAuthData; + alias RasGetEapUserIdentityW RasGetEapUserIdentity; + alias RasFreeEapUserIdentityW RasFreeEapUserIdentity; + } + +} else { // ! defined UNICODE + alias RasDialA RasDial; + alias RasEnumConnectionsA RasEnumConnections; + alias RasEnumEntriesA RasEnumEntries; + alias RasGetConnectStatusA RasGetConnectStatus; + alias RasGetErrorStringA RasGetErrorString; + alias RasHangUpA RasHangUp; + alias RasGetProjectionInfoA RasGetProjectionInfo; + alias RasCreatePhonebookEntryA RasCreatePhonebookEntry; + alias RasEditPhonebookEntryA RasEditPhonebookEntry; + alias RasSetEntryDialParamsA RasSetEntryDialParams; + alias RasGetEntryDialParamsA RasGetEntryDialParams; + alias RasEnumDevicesA RasEnumDevices; + alias RasGetCountryInfoA RasGetCountryInfo; + alias RasGetEntryPropertiesA RasGetEntryProperties; + alias RasSetEntryPropertiesA RasSetEntryProperties; + alias RasRenameEntryA RasRenameEntry; + alias RasDeleteEntryA RasDeleteEntry; + alias RasValidateEntryNameA RasValidateEntryName; + + static if (WINVER >= 0x0401) { + alias RASADFUNCA RASADFUNC; + alias RasGetSubEntryHandleA RasGetSubEntryHandle; + alias RasConnectionNotificationA RasConnectionNotification; + alias RasGetSubEntryPropertiesA RasGetSubEntryProperties; + alias RasSetSubEntryPropertiesA RasSetSubEntryProperties; + alias RasGetCredentialsA RasGetCredentials; + alias RasSetCredentialsA RasSetCredentials; + alias RasGetAutodialAddressA RasGetAutodialAddress; + alias RasSetAutodialAddressA RasSetAutodialAddress; + alias RasEnumAutodialAddressesA RasEnumAutodialAddresses; + alias RasGetAutodialEnableA RasGetAutodialEnable; + alias RasSetAutodialEnableA RasSetAutodialEnable; + alias RasGetAutodialParamA RasGetAutodialParam; + alias RasSetAutodialParamA RasSetAutodialParam; + } + + static if (WINVER >= 0x0500) { + alias RasGetEapUserDataA RasGetEapUserData; + alias RasSetEapUserDataA RasSetEapUserData; + alias RasGetCustomAuthDataA RasGetCustomAuthData; + alias RasSetCustomAuthDataA RasSetCustomAuthData; + alias RasGetEapUserIdentityA RasGetEapUserIdentity; + alias RasFreeEapUserIdentityA RasFreeEapUserIdentity; + } +} //#endif // ! UNICODE ADDED src/win32/rasdlg.d Index: src/win32/rasdlg.d ================================================================== --- src/win32/rasdlg.d +++ src/win32/rasdlg.d @@ -0,0 +1,159 @@ +/***********************************************************************\ +* rasdlg.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.rasdlg; + +import win32.ras; +private import win32.lmcons, win32.windef; + +enum { + RASPBDEVENT_AddEntry = 1, + RASPBDEVENT_EditEntry, + RASPBDEVENT_RemoveEntry, + RASPBDEVENT_DialEntry, + RASPBDEVENT_EditGlobals, + RASPBDEVENT_NoUser, + RASPBDEVENT_NoUserEdit +} + +const RASPBDFLAG_PositionDlg = 1; +const RASPBDFLAG_ForceCloseOnDial = 2; +const RASPBDFLAG_NoUser = 16; + +const RASEDFLAG_PositionDlg = 1; +const RASEDFLAG_NewEntry = 2; +const RASEDFLAG_CloneEntry = 4; + +const RASDDFLAG_PositionDlg = 1; + +align(4): + +struct RASENTRYDLGA { + DWORD dwSize = RASENTRYDLGA.sizeof; + HWND hwndOwner; + DWORD dwFlags; + LONG xDlg; + LONG yDlg; + CHAR[RAS_MaxEntryName + 1] szEntry; + DWORD dwError; + ULONG_PTR reserved; + ULONG_PTR reserved2; +} +alias RASENTRYDLGA* LPRASENTRYDLGA; + +struct RASENTRYDLGW { + DWORD dwSize = RASENTRYDLGW.sizeof; + HWND hwndOwner; + DWORD dwFlags; + LONG xDlg; + LONG yDlg; + WCHAR[RAS_MaxEntryName + 1] szEntry; + DWORD dwError; + ULONG_PTR reserved; + ULONG_PTR reserved2; +} +alias RASENTRYDLGW* LPRASENTRYDLGW; + +struct RASDIALDLG { + DWORD dwSize; + HWND hwndOwner; + DWORD dwFlags; + LONG xDlg; + LONG yDlg; + DWORD dwSubEntry; + DWORD dwError; + ULONG_PTR reserved; + ULONG_PTR reserved2; +} +alias RASDIALDLG* LPRASDIALDLG; + +// Application-defined callback functions +extern (Windows) { + alias VOID function(DWORD, DWORD, LPWSTR, LPVOID) RASPBDLGFUNCW; + alias VOID function(DWORD, DWORD, LPSTR, LPVOID) RASPBDLGFUNCA; +} + +struct RASPBDLGA { + DWORD dwSize = RASPBDLGA.sizeof; + HWND hwndOwner; + DWORD dwFlags; + LONG xDlg; + LONG yDlg; + ULONG_PTR dwCallbackId; + RASPBDLGFUNCA pCallback; + DWORD dwError; + ULONG_PTR reserved; + ULONG_PTR reserved2; +} +alias RASPBDLGA* LPRASPBDLGA; + +struct RASPBDLGW { + DWORD dwSize = RASPBDLGW.sizeof; + HWND hwndOwner; + DWORD dwFlags; + LONG xDlg; + LONG yDlg; + ULONG_PTR dwCallbackId; + RASPBDLGFUNCW pCallback; + DWORD dwError; + ULONG_PTR reserved; + ULONG_PTR reserved2; +} +alias RASPBDLGW* LPRASPBDLGW; + +struct RASNOUSERA +{ + DWORD dwSize = RASNOUSERA.sizeof; + DWORD dwFlags; + DWORD dwTimeoutMs; + CHAR[UNLEN + 1] szUserName; + CHAR[PWLEN + 1] szPassword; + CHAR[DNLEN + 1] szDomain; +} +alias RASNOUSERA* LPRASNOUSERA; + +struct RASNOUSERW { + DWORD dwSize = RASNOUSERW.sizeof; + DWORD dwFlags; + DWORD dwTimeoutMs; + WCHAR[UNLEN + 1] szUserName; + WCHAR[PWLEN + 1] szPassword; + WCHAR[DNLEN + 1] szDomain; +} +alias RASNOUSERW* LPRASNOUSERW; + +extern (Windows) { + BOOL RasDialDlgA(LPSTR, LPSTR, LPSTR, LPRASDIALDLG); + BOOL RasDialDlgW(LPWSTR, LPWSTR, LPWSTR, LPRASDIALDLG); + BOOL RasEntryDlgA(LPSTR, LPSTR, LPRASENTRYDLGA); + BOOL RasEntryDlgW(LPWSTR, LPWSTR, LPRASENTRYDLGW); + BOOL RasPhonebookDlgA(LPSTR, LPSTR, LPRASPBDLGA); + BOOL RasPhonebookDlgW(LPWSTR, LPWSTR, LPRASPBDLGW); +} + +version (Unicode) { + alias RASENTRYDLGW RASENTRYDLG; + alias RASPBDLGW RASPBDLG; + alias RASNOUSERW RASNOUSER; + alias RasDialDlgW RasDialDlg; + alias RasEntryDlgW RasEntryDlg; + alias RasPhonebookDlgW RasPhonebookDlg; +} else { + alias RASENTRYDLGA RASENTRYDLG; + alias RASPBDLGA RASPBDLG; + alias RASNOUSERA RASNOUSER; + alias RasDialDlgA RasDialDlg; + alias RasEntryDlgA RasEntryDlg; + alias RasPhonebookDlgA RasPhonebookDlg; +} + +alias RASENTRYDLG* LPRASENTRYDLG; +alias RASPBDLG* LPRASPBDLG; +alias RASNOUSER* LPRASNOUSER; ADDED src/win32/raserror.d Index: src/win32/raserror.d ================================================================== --- src/win32/raserror.d +++ src/win32/raserror.d @@ -0,0 +1,215 @@ +/***********************************************************************\ +* raserror.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.raserror; + +enum { + SUCCESS = 0, + RASBASE = 600, + PENDING = RASBASE, + ERROR_INVALID_PORT_HANDLE, + ERROR_PORT_ALREADY_OPEN, + ERROR_BUFFER_TOO_SMALL, + ERROR_WRONG_INFO_SPECIFIED, + ERROR_CANNOT_SET_PORT_INFO, + ERROR_PORT_NOT_CONNECTED, + ERROR_EVENT_INVALID, + ERROR_DEVICE_DOES_NOT_EXIST, + ERROR_DEVICETYPE_DOES_NOT_EXIST, + ERROR_BUFFER_INVALID, + ERROR_ROUTE_NOT_AVAILABLE, + ERROR_ROUTE_NOT_ALLOCATED, + ERROR_INVALID_COMPRESSION_SPECIFIED, + ERROR_OUT_OF_BUFFERS, + ERROR_PORT_NOT_FOUND, + ERROR_ASYNC_REQUEST_PENDING, + ERROR_ALREADY_DISCONNECTING, + ERROR_PORT_NOT_OPEN, + ERROR_PORT_DISCONNECTED, + ERROR_NO_ENDPOINTS, + ERROR_CANNOT_OPEN_PHONEBOOK, + ERROR_CANNOT_LOAD_PHONEBOOK, + ERROR_CANNOT_FIND_PHONEBOOK_ENTRY, + ERROR_CANNOT_WRITE_PHONEBOOK, + ERROR_CORRUPT_PHONEBOOK, + ERROR_CANNOT_LOAD_STRING, + ERROR_KEY_NOT_FOUND, + ERROR_DISCONNECTION, + ERROR_REMOTE_DISCONNECTION, + ERROR_HARDWARE_FAILURE, + ERROR_USER_DISCONNECTION, + ERROR_INVALID_SIZE, + ERROR_PORT_NOT_AVAILABLE, + ERROR_CANNOT_PROJECT_CLIENT, + ERROR_UNKNOWN, + ERROR_WRONG_DEVICE_ATTACHED, + ERROR_BAD_STRING, + ERROR_REQUEST_TIMEOUT, + ERROR_CANNOT_GET_LANA, + ERROR_NETBIOS_ERROR, + ERROR_SERVER_OUT_OF_RESOURCES, + ERROR_NAME_EXISTS_ON_NET, + ERROR_SERVER_GENERAL_NET_FAILURE, + WARNING_MSG_ALIAS_NOT_ADDED, + ERROR_AUTH_INTERNAL, + ERROR_RESTRICTED_LOGON_HOURS, + ERROR_ACCT_DISABLED, + ERROR_PASSWD_EXPIRED, + ERROR_NO_DIALIN_PERMISSION, + ERROR_SERVER_NOT_RESPONDING, + ERROR_FROM_DEVICE, + ERROR_UNRECOGNIZED_RESPONSE, + ERROR_MACRO_NOT_FOUND, + ERROR_MACRO_NOT_DEFINED, + ERROR_MESSAGE_MACRO_NOT_FOUND, + ERROR_DEFAULTOFF_MACRO_NOT_FOUND, + ERROR_FILE_COULD_NOT_BE_OPENED, + ERROR_DEVICENAME_TOO_LONG, + ERROR_DEVICENAME_NOT_FOUND, + ERROR_NO_RESPONSES, + ERROR_NO_COMMAND_FOUND, + ERROR_WRONG_KEY_SPECIFIED, + ERROR_UNKNOWN_DEVICE_TYPE, + ERROR_ALLOCATING_MEMORY, + ERROR_PORT_NOT_CONFIGURED, + ERROR_DEVICE_NOT_READY, + ERROR_READING_INI_FILE, + ERROR_NO_CONNECTION, + ERROR_BAD_USAGE_IN_INI_FILE, + ERROR_READING_SECTIONNAME, + ERROR_READING_DEVICETYPE, + ERROR_READING_DEVICENAME, + ERROR_READING_USAGE, + ERROR_READING_MAXCONNECTBPS, + ERROR_READING_MAXCARRIERBPS, + ERROR_LINE_BUSY, + ERROR_VOICE_ANSWER, + ERROR_NO_ANSWER, + ERROR_NO_CARRIER, + ERROR_NO_DIALTONE, + ERROR_IN_COMMAND, + ERROR_WRITING_SECTIONNAME, + ERROR_WRITING_DEVICETYPE, + ERROR_WRITING_DEVICENAME, + ERROR_WRITING_MAXCONNECTBPS, + ERROR_WRITING_MAXCARRIERBPS, + ERROR_WRITING_USAGE, + ERROR_WRITING_DEFAULTOFF, + ERROR_READING_DEFAULTOFF, + ERROR_EMPTY_INI_FILE, + ERROR_AUTHENTICATION_FAILURE, + ERROR_PORT_OR_DEVICE, + ERROR_NOT_BINARY_MACRO, + ERROR_DCB_NOT_FOUND, + ERROR_STATE_MACHINES_NOT_STARTED, + ERROR_STATE_MACHINES_ALREADY_STARTED, + ERROR_PARTIAL_RESPONSE_LOOPING, + ERROR_UNKNOWN_RESPONSE_KEY, + ERROR_RECV_BUF_FULL, + ERROR_CMD_TOO_LONG, + ERROR_UNSUPPORTED_BPS, + ERROR_UNEXPECTED_RESPONSE, + ERROR_INTERACTIVE_MODE, + ERROR_BAD_CALLBACK_NUMBER, + ERROR_INVALID_AUTH_STATE, + ERROR_WRITING_INITBPS, + ERROR_X25_DIAGNOSTIC, + ERROR_ACCT_EXPIRED, + ERROR_CHANGING_PASSWORD, + ERROR_OVERRUN, + ERROR_RASMAN_CANNOT_INITIALIZE, + ERROR_BIPLEX_PORT_NOT_AVAILABLE, + ERROR_NO_ACTIVE_ISDN_LINES, + ERROR_NO_ISDN_CHANNELS_AVAILABLE, + ERROR_TOO_MANY_LINE_ERRORS, + ERROR_IP_CONFIGURATION, + ERROR_NO_IP_ADDRESSES, + ERROR_PPP_TIMEOUT, + ERROR_PPP_REMOTE_TERMINATED, + ERROR_PPP_NO_PROTOCOLS_CONFIGURED, + ERROR_PPP_NO_RESPONSE, + ERROR_PPP_INVALID_PACKET, + ERROR_PHONE_NUMBER_TOO_LONG, + ERROR_IPXCP_NO_DIALOUT_CONFIGURED, + ERROR_IPXCP_NO_DIALIN_CONFIGURED, + ERROR_IPXCP_DIALOUT_ALREADY_ACTIVE, + ERROR_ACCESSING_TCPCFGDLL, + ERROR_NO_IP_RAS_ADAPTER, + ERROR_SLIP_REQUIRES_IP, + ERROR_PROJECTION_NOT_COMPLETE, + ERROR_PROTOCOL_NOT_CONFIGURED, + ERROR_PPP_NOT_CONVERGING, + ERROR_PPP_CP_REJECTED, + ERROR_PPP_LCP_TERMINATED, + ERROR_PPP_REQUIRED_ADDRESS_REJECTED, + ERROR_PPP_NCP_TERMINATED, + ERROR_PPP_LOOPBACK_DETECTED, + ERROR_PPP_NO_ADDRESS_ASSIGNED, + ERROR_CANNOT_USE_LOGON_CREDENTIALS, + ERROR_TAPI_CONFIGURATION, + ERROR_NO_LOCAL_ENCRYPTION, + ERROR_NO_REMOTE_ENCRYPTION, + ERROR_REMOTE_REQUIRES_ENCRYPTION, + ERROR_IPXCP_NET_NUMBER_CONFLICT, + ERROR_INVALID_SMM, + ERROR_SMM_UNINITIALIZED, + ERROR_NO_MAC_FOR_PORT, + ERROR_SMM_TIMEOUT, + ERROR_BAD_PHONE_NUMBER, + ERROR_WRONG_MODULE, + ERROR_INVALID_CALLBACK_NUMBER, + ERROR_SCRIPT_SYNTAX, + ERROR_HANGUP_FAILED, + ERROR_BUNDLE_NOT_FOUND, + ERROR_CANNOT_DO_CUSTOMDIAL, + ERROR_DIAL_ALREADY_IN_PROGRESS, + ERROR_RASAUTO_CANNOT_INITIALIZE, + ERROR_CONNECTION_ALREADY_SHARED, + ERROR_SHARING_CHANGE_FAILED, + ERROR_SHARING_ROUTER_INSTALL, + ERROR_SHARE_CONNECTION_FAILED, + ERROR_SHARING_PRIVATE_INSTALL, + ERROR_CANNOT_SHARE_CONNECTION, + ERROR_NO_SMART_CARD_READER, + ERROR_SHARING_ADDRESS_EXISTS, + ERROR_NO_CERTIFICATE, + ERROR_SHARING_MULTIPLE_ADDRESSES, + ERROR_FAILED_TO_ENCRYPT, + ERROR_BAD_ADDRESS_SPECIFIED, + ERROR_CONNECTION_REJECT, + ERROR_CONGESTION, + ERROR_INCOMPATIBLE, + ERROR_NUMBERCHANGED, + ERROR_TEMPFAILURE, + ERROR_BLOCKED, + ERROR_DONOTDISTURB, + ERROR_OUTOFORDER, + ERROR_UNABLE_TO_AUTHENTICATE_SERVER, + ERROR_SMART_CARD_REQUIRED, + ERROR_INVALID_FUNCTION_FOR_ENTRY, + ERROR_CERT_FOR_ENCRYPTION_NOT_FOUND, + ERROR_SHARING_RRAS_CONFLICT, + ERROR_SHARING_NO_PRIVATE_LAN, + ERROR_NO_DIFF_USER_AT_LOGON, + ERROR_NO_REG_CERT_AT_LOGON, + ERROR_OAKLEY_NO_CERT, + ERROR_OAKLEY_AUTH_FAIL, + ERROR_OAKLEY_ATTRIB_FAIL, + ERROR_OAKLEY_GENERAL_PROCESSING, + ERROR_OAKLEY_NO_PEER_CERT, + ERROR_OAKLEY_NO_POLICY, + ERROR_OAKLEY_TIMED_OUT, + ERROR_OAKLEY_ERROR, + ERROR_UNKNOWN_FRAMED_PROTOCOL, + ERROR_WRONG_TUNNEL_TYPE, + ERROR_UNKNOWN_SERVICE_TYPE, + ERROR_CONNECTING_DEVICE_NOT_FOUND, + ERROR_NO_EAPTLS_CERTIFICATE, // = RASBASE+198 + RASBASEEND = ERROR_NO_EAPTLS_CERTIFICATE +} ADDED src/win32/rassapi.d Index: src/win32/rassapi.d ================================================================== --- src/win32/rassapi.d +++ src/win32/rassapi.d @@ -0,0 +1,220 @@ +/***********************************************************************\ +* rassapi.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.rassapi; + +private import win32.lmcons, win32.windef; + +// FIXME: check types of constants + +const size_t + RASSAPI_MAX_PHONENUMBER_SIZE = 128, + RASSAPI_MAX_MEDIA_NAME = 16, + RASSAPI_MAX_PORT_NAME = 16, + RASSAPI_MAX_DEVICE_NAME = 128, + RASSAPI_MAX_DEVICETYPE_NAME = 16, + RASSAPI_MAX_PARAM_KEY_SIZE = 32; + +const RASPRIV_NoCallback = 0x01; +const RASPRIV_AdminSetCallback = 0x02; +const RASPRIV_CallerSetCallback = 0x04; +const RASPRIV_DialinPrivilege = 0x08; +const RASPRIV_CallbackType = 0x07; + +enum { + RAS_MODEM_OPERATIONAL = 1, + RAS_MODEM_NOT_RESPONDING, + RAS_MODEM_HARDWARE_FAILURE, + RAS_MODEM_INCORRECT_RESPONSE, + RAS_MODEM_UNKNOWN // = 5 +} + +enum { + RAS_PORT_NON_OPERATIONAL = 1, + RAS_PORT_DISCONNECTED, + RAS_PORT_CALLING_BACK, + RAS_PORT_LISTENING, + RAS_PORT_AUTHENTICATING, + RAS_PORT_AUTHENTICATED, + RAS_PORT_INITIALIZING // = 7 +} + +enum { + MEDIA_UNKNOWN, + MEDIA_SERIAL, + MEDIA_RAS10_SERIAL, + MEDIA_X25, + MEDIA_ISDN +} + +const USER_AUTHENTICATED = 0x0001; +const MESSENGER_PRESENT = 0x0002; +const PPP_CLIENT = 0x0004; +const GATEWAY_ACTIVE = 0x0008; +const REMOTE_LISTEN = 0x0010; +const PORT_MULTILINKED = 0x0020; + +const size_t + RAS_IPADDRESSLEN = 15, + RAS_IPXADDRESSLEN = 22, + RAS_ATADDRESSLEN = 32; + +// FIXME: should these be grouped together? +enum { + RASDOWNLEVEL = 10, + RASADMIN_35 = 35, + RASADMIN_CURRENT = 40 +} + +alias ULONG IPADDR; + +enum RAS_PARAMS_FORMAT { + ParamNumber = 0, + ParamString +} + +union RAS_PARAMS_VALUE { + DWORD Number; + struct _String { + DWORD Length; + PCHAR Data; + } + _String String; +} + +struct RAS_PARAMETERS { + CHAR[RASSAPI_MAX_PARAM_KEY_SIZE] P_Key; + RAS_PARAMS_FORMAT P_Type; + BYTE P_Attributes; + RAS_PARAMS_VALUE P_Value; +} + +struct RAS_USER_0 { + BYTE bfPrivilege; + WCHAR[RASSAPI_MAX_PHONENUMBER_SIZE + 1] szPhoneNumber; +} +alias RAS_USER_0* PRAS_USER_0; + +struct RAS_PORT_0 { + WCHAR[RASSAPI_MAX_PORT_NAME] wszPortName; + WCHAR[RASSAPI_MAX_DEVICETYPE_NAME] wszDeviceType; + WCHAR[RASSAPI_MAX_DEVICE_NAME] wszDeviceName; + WCHAR[RASSAPI_MAX_MEDIA_NAME] wszMediaName; + DWORD reserved; + DWORD Flags; + WCHAR[UNLEN + 1] wszUserName; + WCHAR[NETBIOS_NAME_LEN] wszComputer; + DWORD dwStartSessionTime; // seconds from 1/1/1970 + WCHAR[DNLEN + 1] wszLogonDomain; + BOOL fAdvancedServer; +} +alias RAS_PORT_0* PRAS_PORT_0; + +struct RAS_PPP_NBFCP_RESULT { + DWORD dwError; + DWORD dwNetBiosError; + CHAR[NETBIOS_NAME_LEN + 1] szName; + WCHAR[NETBIOS_NAME_LEN + 1] wszWksta; +} + +struct RAS_PPP_IPCP_RESULT { + DWORD dwError; + WCHAR[RAS_IPADDRESSLEN + 1] wszAddress; +} + +struct RAS_PPP_IPXCP_RESULT { + DWORD dwError; + WCHAR[RAS_IPXADDRESSLEN + 1] wszAddress; +} + +struct RAS_PPP_ATCP_RESULT { + DWORD dwError; + WCHAR[RAS_ATADDRESSLEN + 1] wszAddress; +} + +struct RAS_PPP_PROJECTION_RESULT { + RAS_PPP_NBFCP_RESULT nbf; + RAS_PPP_IPCP_RESULT ip; + RAS_PPP_IPXCP_RESULT ipx; + RAS_PPP_ATCP_RESULT at; +} + +struct RAS_PORT_1 { + RAS_PORT_0 rasport0; + DWORD LineCondition; + DWORD HardwareCondition; + DWORD LineSpeed; + WORD NumStatistics; + WORD NumMediaParms; + DWORD SizeMediaParms; + RAS_PPP_PROJECTION_RESULT ProjResult; +} +alias RAS_PORT_1* PRAS_PORT_1; + +struct RAS_PORT_STATISTICS { + DWORD dwBytesXmited; + DWORD dwBytesRcved; + DWORD dwFramesXmited; + DWORD dwFramesRcved; + DWORD dwCrcErr; + DWORD dwTimeoutErr; + DWORD dwAlignmentErr; + DWORD dwHardwareOverrunErr; + DWORD dwFramingErr; + DWORD dwBufferOverrunErr; + DWORD dwBytesXmitedUncompressed; + DWORD dwBytesRcvedUncompressed; + DWORD dwBytesXmitedCompressed; + DWORD dwBytesRcvedCompressed; + DWORD dwPortBytesXmited; + DWORD dwPortBytesRcved; + DWORD dwPortFramesXmited; + DWORD dwPortFramesRcved; + DWORD dwPortCrcErr; + DWORD dwPortTimeoutErr; + DWORD dwPortAlignmentErr; + DWORD dwPortHardwareOverrunErr; + DWORD dwPortFramingErr; + DWORD dwPortBufferOverrunErr; + DWORD dwPortBytesXmitedUncompressed; + DWORD dwPortBytesRcvedUncompressed; + DWORD dwPortBytesXmitedCompressed; + DWORD dwPortBytesRcvedCompressed; +} +alias RAS_PORT_STATISTICS* PRAS_PORT_STATISTICS; + +struct RAS_SERVER_0 { + WORD TotalPorts; + WORD PortsInUse; + DWORD RasVersion; +} +alias RAS_SERVER_0* PRAS_SERVER_0; + +extern (Windows) { + DWORD RasAdminServerGetInfo(CPtr!(WCHAR), PRAS_SERVER_0); + DWORD RasAdminGetUserAccountServer(CPtr!(WCHAR), CPtr!(WCHAR), LPWSTR); + DWORD RasAdminUserGetInfo(CPtr!(WCHAR), CPtr!(WCHAR), PRAS_USER_0); + DWORD RasAdminUserSetInfo(CPtr!(WCHAR), CPtr!(WCHAR), PRAS_USER_0); + DWORD RasAdminPortEnum(WCHAR*, PRAS_PORT_0*, WORD*); + DWORD RasAdminPortGetInfo(CPtr!(WCHAR), CPtr!(WCHAR), RAS_PORT_1*, + RAS_PORT_STATISTICS*, RAS_PARAMETERS**); + DWORD RasAdminPortClearStatistics(CPtr!(WCHAR), CPtr!(WCHAR)); + DWORD RasAdminPortDisconnect(CPtr!(WCHAR), CPtr!(WCHAR)); + DWORD RasAdminFreeBuffer(PVOID); + DWORD RasAdminGetErrorString(UINT, WCHAR*, DWORD); + BOOL RasAdminAcceptNewConnection(RAS_PORT_1*, RAS_PORT_STATISTICS*, + RAS_PARAMETERS*); + VOID RasAdminConnectionHangupNotification(RAS_PORT_1*, + RAS_PORT_STATISTICS*, RAS_PARAMETERS*); + DWORD RasAdminGetIpAddressForUser (WCHAR*, WCHAR*, IPADDR*, BOOL*); + VOID RasAdminReleaseIpAddress (WCHAR*, WCHAR*,IPADDR*); + DWORD RasAdminGetUserParms(WCHAR*, PRAS_USER_0); + DWORD RasAdminSetUserParms(WCHAR*, DWORD, PRAS_USER_0); +} ADDED src/win32/reason.d Index: src/win32/reason.d ================================================================== --- src/win32/reason.d +++ src/win32/reason.d @@ -0,0 +1,63 @@ +/***********************************************************************\ +* reason.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.reason; + +private import win32.w32api, win32.windef; + +static assert (_WIN32_WINNT >= 0x501, + "win32.reason is only available on WindowsXP and later"); + + +enum : DWORD { + SHTDN_REASON_MAJOR_OTHER = 0x00000000, + SHTDN_REASON_MAJOR_HARDWARE = 0x00010000, + SHTDN_REASON_MAJOR_OPERATINGSYSTEM = 0x00020000, + SHTDN_REASON_MAJOR_SOFTWARE = 0x00030000, + SHTDN_REASON_MAJOR_APPLICATION = 0x00040000, + SHTDN_REASON_MAJOR_SYSTEM = 0x00050000, + SHTDN_REASON_MAJOR_POWER = 0x00060000, + SHTDN_REASON_MAJOR_LEGACY_API = 0x00070000 +} + +enum : DWORD { + SHTDN_REASON_MINOR_OTHER, + SHTDN_REASON_MINOR_MAINTENANCE, + SHTDN_REASON_MINOR_INSTALLATION, + SHTDN_REASON_MINOR_UPGRADE, + SHTDN_REASON_MINOR_RECONFIG, + SHTDN_REASON_MINOR_HUNG, + SHTDN_REASON_MINOR_UNSTABLE, + SHTDN_REASON_MINOR_DISK, + SHTDN_REASON_MINOR_PROCESSOR, + SHTDN_REASON_MINOR_NETWORKCARD, + SHTDN_REASON_MINOR_POWER_SUPPLY, + SHTDN_REASON_MINOR_CORDUNPLUGGED, + SHTDN_REASON_MINOR_ENVIRONMENT, + SHTDN_REASON_MINOR_HARDWARE_DRIVER, + SHTDN_REASON_MINOR_OTHERDRIVER, + SHTDN_REASON_MINOR_BLUESCREEN, + SHTDN_REASON_MINOR_SERVICEPACK, + SHTDN_REASON_MINOR_HOTFIX, + SHTDN_REASON_MINOR_SECURITYFIX, + SHTDN_REASON_MINOR_SECURITY, + SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY, + SHTDN_REASON_MINOR_WMI, + SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL, + SHTDN_REASON_MINOR_HOTFIX_UNINSTALL, + SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL, + SHTDN_REASON_MINOR_MMC, // = 0x00000019 + SHTDN_REASON_MINOR_TERMSRV = 0x00000020 +} + +enum : DWORD { + SHTDN_REASON_FLAG_USER_DEFINED = 0x40000000, + SHTDN_REASON_FLAG_PLANNED = 0x80000000 +} ADDED src/win32/regstr.d Index: src/win32/regstr.d ================================================================== --- src/win32/regstr.d +++ src/win32/regstr.d @@ -0,0 +1,816 @@ +/***********************************************************************\ +* regstr.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.regstr; + +// TODO: fix possible conflict with shloj. Sort out NEC_98 issue. + +private import win32.windef; + +const REGSTR_MAX_VALUE_LENGTH = 256; + +enum { + IT_COMPACT = 0, + IT_TYPICAL, + IT_PORTABLE, + IT_CUSTOM // = 3 +} + +const DOSOPTGF_DEFCLEAN = 1; + +const DOSOPTF_DEFAULT = 0x01; +const DOSOPTF_SUPPORTED = 0x02; +const DOSOPTF_ALWAYSUSE = 0x04; +const DOSOPTF_USESPMODE = 0x08; +const DOSOPTF_PROVIDESUMB = 0x10; +const DOSOPTF_NEEDSETUP = 0x20; +const DOSOPTF_INDOSSTART = 0x40; +const DOSOPTF_MULTIPLE = 0x80; + +const SUF_FIRSTTIME = 0x0001; +const SUF_EXPRESS = 0x0002; +const SUF_BATCHINF = 0x0004; +const SUF_CLEAN = 0x0008; +const SUF_INSETUP = 0x0010; +const SUF_NETSETUP = 0x0020; +const SUF_NETHDBOOT = 0x0040; +const SUF_NETRPLBOOT = 0x0080; +const SUF_SBSCOPYOK = 0x0100; + +const VPDF_DISABLEPWRMGMT = 1; +const VPDF_FORCEAPM10MODE = 2; +const VPDF_SKIPINTELSLCHECK = 4; +const VPDF_DISABLEPWRSTATUSPOLL = 8; + +const PCMCIA_OPT_HAVE_SOCKET = 0x01; +const PCMCIA_OPT_AUTOMEM = 0x04; +const PCMCIA_OPT_NO_SOUND = 0x08; +const PCMCIA_OPT_NO_AUDIO = 0x10; +const PCMCIA_OPT_NO_APMREMOVE = 0x20; + +const PCMCIA_DEF_MEMBEGIN = 0x0C0000; +const PCMCIA_DEF_MEMEND = 0xFFFFFF; +const PCMCIA_DEF_MEMLEN = 0x001000; +const PCMCIA_DEF_MIN_REGION = 0x010000; + +enum { + PCI_OPTIONS_USE_BIOS = 1, + PCI_OPTIONS_USE_IRQ_STEERING = 2 +} + +const PCI_FLAG_NO_VIDEO_IRQ = 0x0001; +const PCI_FLAG_PCMCIA_WANT_IRQ = 0x0002; +const PCI_FLAG_DUAL_IDE = 0x0004; +const PCI_FLAG_NO_ENUM_AT_ALL = 0x0008; +const PCI_FLAG_ENUM_NO_RESOURCE = 0x0010; +const PCI_FLAG_NEED_DWORD_ACCESS = 0x0020; +const PCI_FLAG_SINGLE_FUNCTION = 0x0040; +const PCI_FLAG_ALWAYS_ENABLED = 0x0080; +const PCI_FLAG_IS_IDE = 0x0100; +const PCI_FLAG_IS_VIDEO = 0x0200; +const PCI_FLAG_FAIL_START = 0x0400; + +const size_t REGSTR_VAL_MAX_HCID_LEN = 1024; + +const REGDF_NOTDETIO = 0x00000001; +const REGDF_NOTDETMEM = 0x00000002; +const REGDF_NOTDETIRQ = 0x00000004; +const REGDF_NOTDETDMA = 0x00000008; +const REGDF_NOTDETALL = REGDF_NOTDETIO | REGDF_NOTDETMEM | REGDF_NOTDETIRQ | REGDF_NOTDETDMA; +const REGDF_NEEDFULLCONFIG = 0x00000010; +const REGDF_GENFORCEDCONFIG = 0x00000020; +const REGDF_NODETCONFIG = 0x00008000; +const REGDF_CONFLICTIO = 0x00010000; +const REGDF_CONFLICTMEM = 0x00020000; +const REGDF_CONFLICTIRQ = 0x00040000; +const REGDF_CONFLICTDMA = 0x00080000; +const REGDF_CONFLICTALL = REGDF_CONFLICTIO | REGDF_CONFLICTMEM | REGDF_CONFLICTIRQ | REGDF_CONFLICTDMA; +const REGDF_MAPIRQ2TO9 = 0x00100000; +const REGDF_NOTVERIFIED = 0x80000000; + +const CONFIGFLAG_DISABLED = 0x0001; +const CONFIGFLAG_REMOVED = 0x0002; +const CONFIGFLAG_MANUAL_INSTALL = 0x0004; +const CONFIGFLAG_IGNORE_BOOT_LC = 0x0008; +const CONFIGFLAG_NET_BOOT = 0x0010; +const CONFIGFLAG_REINSTALL = 0x0020; +const CONFIGFLAG_FAILEDINSTALL = 0x0040; +const CONFIGFLAG_CANTSTOPACHILD = 0x0080; +const CONFIGFLAG_OKREMOVEROM = 0x0100; +const CONFIGFLAG_NOREMOVEEXIT = 0x0200; + +const CSCONFIGFLAG_DISABLED = 1; +const CSCONFIGFLAG_DO_NOT_CREATE = 2; +const CSCONFIGFLAG_DO_NOT_START = 4; +const CSCONFIGFLAG_BITS = 7; + +const DMSTATEFLAG_APPLYTOALL = 1; + +const NUM_RESOURCE_MAP = 256; + +const MF_FLAGS_EVEN_IF_NO_RESOURCE = 1; +const MF_FLAGS_NO_CREATE_IF_NO_RESOURCE = 2; +const MF_FLAGS_FILL_IN_UNKNOWN_RESOURCE = 4; +const MF_FLAGS_CREATE_BUT_NO_SHOW_DISABLED = 8; + +const EISAFLAG_NO_IO_MERGE = 1; +const EISAFLAG_SLOT_IO_FIRST = 2; + +const EISA_NO_MAX_FUNCTION = 0xFF; + +const NUM_EISA_RANGES = 4; + +const APMMENUSUSPEND_DISABLED = 0; +const APMMENUSUSPEND_ENABLED = 1; +const APMMENUSUSPEND_UNDOCKED = 2; +const APMMENUSUSPEND_NOCHANGE = 128; + +//#ifndef NEC_98 +const TCHAR[] + REGSTR_KEY_ISAENUM = "ISAPnP", + REGSTR_KEY_EISAENUM = "EISA", + REGSTR_VAL_EISA_RANGES = "EISARanges", + REGSTR_VAL_EISA_FUNCTIONS = "EISAFunctions", + REGSTR_VAL_EISA_FUNCTIONS_MASK = "EISAFunctionsMask", + REGSTR_VAL_EISA_FLAGS = "EISAFlags", + REGSTR_VAL_EISA_SIMULATE_INT15 = "EISASimulateInt15"; +// #else +// #define REGSTR_KEY_ISAENUM TEXT("C98PnP") +// #define REGSTR_KEY_EISAENUM TEXT("NESA") +// #define REGSTR_VAL_EISA_RANGES TEXT("NESARanges") +// #define REGSTR_VAL_EISA_FUNCTIONS TEXT("NESAFunctions") +// #define REGSTR_VAL_EISA_FUNCTIONS_MASK TEXT("NESAFunctionsMask") +// #define REGSTR_VAL_EISA_FLAGS TEXT("NESAFlags") +// #define REGSTR_VAL_EISA_SIMULATE_INT15 TEXT("NESASimulateInt15") +// #endif + +const TCHAR[] + REGSTR_KEY_CLASS = `Class`, + REGSTR_KEY_CONFIG = `Config`, + REGSTR_KEY_ENUM = `Enum`, + REGSTR_KEY_ROOTENUM = `Root`, + REGSTR_KEY_BIOSENUM = `BIOS`, + REGSTR_KEY_PCMCIAENUM = `PCMCIA`, + REGSTR_KEY_PCIENUM = `PCI`, + REGSTR_KEY_LOGCONFIG = `LogConfig`, + REGSTR_KEY_SYSTEMBOARD = `*PNP0C01`, + REGSTR_KEY_APM = `*PNP0C05`, + REGSTR_KEY_INIUPDATE = `IniUpdate`, + REG_KEY_INSTDEV = `Installed`, + REGSTR_KEY_DOSOPTCDROM = `CD-ROM`, + REGSTR_KEY_DOSOPTMOUSE = `MOUSE`, + REGSTR_DEFAULT_INSTANCE = `0000`, + REGSTR_PATH_MOTHERBOARD = REGSTR_KEY_SYSTEMBOARD ~ `\` ~ REGSTR_DEFAULT_INSTANCE, + REGSTR_PATH_SETUP = `Software\Microsoft\Windows\CurrentVersion`, + REGSTR_PATH_PIFCONVERT = `Software\Microsoft\Windows\CurrentVersion\PIFConvert`, + REGSTR_PATH_MSDOSOPTS = `Software\Microsoft\Windows\CurrentVersion\MS-DOSOptions`, + REGSTR_PATH_MSDOSEMU = `Software\Microsoft\Windows\CurrentVersion\MS-DOS Emulation`, + REGSTR_PATH_NEWDOSBOX = `Software\Microsoft\Windows\CurrentVersion\MS-DOS Emulation\AppCompat`, + REGSTR_PATH_RUNONCE = `Software\Microsoft\Windows\CurrentVersion\RunOnce`, + REGSTR_PATH_RUN = `Software\Microsoft\Windows\CurrentVersion\Run`, + REGSTR_PATH_RUNSERVICESONCE = `Software\Microsoft\Windows\CurrentVersion\RunServicesOnce`, + REGSTR_PATH_RUNSERVICES = `Software\Microsoft\Windows\CurrentVersion\RunServices`, + +//#ifndef REGSTR_PATH_EXPLORER /* also in shlobj.h */ + REGSTR_PATH_EXPLORER = `Software\Microsoft\Windows\CurrentVersion\Explorer`, +//#endif + + REGSTR_PATH_DETECT = `Software\Microsoft\Windows\CurrentVersion\Detect`, + REGSTR_PATH_APPPATHS = `Software\Microsoft\Windows\CurrentVersion\App Paths`, + REGSTR_PATH_UNINSTALL = `Software\Microsoft\Windows\CurrentVersion\Uninstall`, + REGSTR_PATH_REALMODENET = `Software\Microsoft\Windows\CurrentVersion\Network\Real Mode Net`, + REGSTR_PATH_NETEQUIV = `Software\Microsoft\Windows\CurrentVersion\Network\Equivalent`, + REGSTR_PATH_CVNETWORK = `Software\Microsoft\Windows\CurrentVersion\Network`, + REGSTR_PATH_IDCONFIGDB = `System\CurrentControlSet\Control\IDConfigDB`, + REGSTR_PATH_CLASS = `System\CurrentControlSet\Services\Class`, + REGSTR_PATH_DISPLAYSETTINGS = `Display\Settings`, + REGSTR_PATH_FONTS = `Display\Fonts`, + REGSTR_PATH_ENUM = `Enum`, + REGSTR_PATH_ROOT = `Enum\Root`, + REGSTR_PATH_SERVICES = `System\CurrentControlSet\Services`, + REGSTR_PATH_VXD = `System\CurrentControlSet\Services\VxD`, + REGSTR_PATH_IOS = `System\CurrentControlSet\Services\VxD\IOS`, + REGSTR_PATH_VMM = `System\CurrentControlSet\Services\VxD\VMM`, + REGSTR_PATH_VPOWERD = `System\CurrentControlSet\Services\VxD\VPOWERD`, + REGSTR_PATH_VNETSUP = `System\CurrentControlSet\Services\VxD\VNETSUP`, + REGSTR_PATH_NWREDIR = `System\CurrentControlSet\Services\VxD\NWREDIR`, + REGSTR_PATH_NCPSERVER = `System\CurrentControlSet\Services\NcpServer\Parameters`, + REGSTR_PATH_IOARB = `System\CurrentControlSet\Services\Arbitrators\IOArb`, + REGSTR_PATH_ADDRARB = `System\CurrentControlSet\Services\Arbitrators\AddrArb`, + REGSTR_PATH_DMAARB = `System\CurrentControlSet\Services\Arbitrators\DMAArb`, + REGSTR_PATH_IRQARB = `System\CurrentControlSet\Services\Arbitrators\IRQArb`, + REGSTR_PATH_CODEPAGE = `System\CurrentControlSet\Control\Nls\Codepage`, + REGSTR_PATH_FILESYSTEM = `System\CurrentControlSet\Control\FileSystem`, + REGSTR_PATH_FILESYSTEM_NOVOLTRACK = `System\CurrentControlSet\Control\FileSystem\NoVolTrack`, + REGSTR_PATH_CDFS = `System\CurrentControlSet\Control\FileSystem\CDFS`, + REGSTR_PATH_WINBOOT = `System\CurrentControlSet\Control\WinBoot`, + REGSTR_PATH_INSTALLEDFILES = `System\CurrentControlSet\Control\InstalledFiles`, + REGSTR_PATH_VMM32FILES = `System\CurrentControlSet\Control\VMM32Files`, + + REGSTR_VAL_BITSPERPIXEL = `BitsPerPixel`, + REGSTR_VAL_RESOLUTION = `Resolution`, + REGSTR_VAL_DPILOGICALX = `DPILogicalX`, + REGSTR_VAL_DPILOGICALY = `DPILogicalY`, + REGSTR_VAL_DPIPHYSICALX = `DPIPhysicalX`, + REGSTR_VAL_DPIPHYSICALY = `DPIPhysicalY`, + REGSTR_VAL_REFRESHRATE = `RefreshRate`, + REGSTR_VAL_DISPLAYFLAGS = `DisplayFlags`, + REGSTR_PATH_CONTROLPANEL = `Control Panel`, + REGSTR_PATH_CONTROLSFOLDER = `Software\Microsoft\Windows\CurrentVersion\Controls Folder`, + REGSTR_VAL_DOSCP = `OEMCP`, + REGSTR_VAL_WINCP = `ACP`, + REGSTR_PATH_DYNA_ENUM = `Config Manager\Enum`, + REGSTR_VAL_HARDWARE_KEY = `HardWareKey`, + REGSTR_VAL_ALLOCATION = `Allocation`, + REGSTR_VAL_PROBLEM = `Problem`, + REGSTR_VAL_STATUS = `Status`, + REGSTR_VAL_DONTUSEMEM = `DontAllocLastMem`, + REGSTR_VAL_SYSTEMROOT = `SystemRoot`, + REGSTR_VAL_BOOTCOUNT = `BootCount`, + REGSTR_VAL_REALNETSTART = `RealNetStart`, + REGSTR_VAL_MEDIA = `MediaPath`, + REGSTR_VAL_CONFIG = `ConfigPath`, + REGSTR_VAL_DEVICEPATH = `DevicePath`, + REGSTR_VAL_SRCPATH = `SourcePath`, + REGSTR_VAL_OLDWINDIR = `OldWinDir`, + REGSTR_VAL_SETUPFLAGS = `SetupFlags`, + REGSTR_VAL_REGOWNER = `RegisteredOwner`, + REGSTR_VAL_REGORGANIZATION = `RegisteredOrganization`, + REGSTR_VAL_LICENSINGINFO = `LicensingInfo`, + REGSTR_VAL_OLDMSDOSVER = `OldMSDOSVer`, + REGSTR_VAL_FIRSTINSTALLDATETIME = `FirstInstallDateTime`, + REGSTR_VAL_INSTALLTYPE = `InstallType`, + REGSTR_VAL_WRAPPER = `Wrapper`, + + REGSTR_KEY_SETUP = `\Setup`, + REGSTR_VAL_BOOTDIR = `BootDir`, + REGSTR_VAL_WINBOOTDIR = `WinbootDir`, + REGSTR_VAL_WINDIR = `WinDir`, + REGSTR_VAL_APPINSTPATH = `AppInstallPath`, + REGSTR_PATH_EBD = REGSTR_PATH_SETUP ~ REGSTR_KEY_SETUP ~ `\EBD`, + REGSTR_KEY_EBDFILESLOCAL = `EBDFilesLocale`, + REGSTR_KEY_EBDFILESKEYBOARD = `EBDFilesKeyboard`, + REGSTR_KEY_EBDAUTOEXECBATLOCAL = `EBDAutoexecBatLocale`, + REGSTR_KEY_EBDAUTOEXECBATKEYBOARD = `EBDAutoexecBatKeyboard`, + REGSTR_KEY_EBDCONFIGSYSLOCAL = `EBDConfigSysLocale`, + REGSTR_KEY_EBDCONFIGSYSKEYBOARD = `EBDConfigSysKeyboard`, + REGSTR_VAL_MSDOSMODE = `MSDOSMode`, + REGSTR_VAL_MSDOSMODEDISCARD = `Discard`, + REGSTR_VAL_DOSOPTGLOBALFLAGS = `GlobalFlags`, + REGSTR_VAL_DOSOPTFLAGS = `Flags`, + REGSTR_VAL_OPTORDER = `Order`, + REGSTR_VAL_CONFIGSYS = `Config.Sys`, + REGSTR_VAL_AUTOEXEC = `Autoexec.Bat`, + REGSTR_VAL_STDDOSOPTION = `StdOption`, + REGSTR_VAL_DOSOPTTIP = `TipText`, + + REGSTR_VAL_DOSPAGER = `DOSPager`, + REGSTR_VAL_VXDGROUPS = `VXDGroups`, + REGSTR_VAL_VPOWERDFLAGS = `Flags`, + + REGSTR_VAL_WORKGROUP = `Workgroup`, + REGSTR_VAL_DIRECTHOST = `DirectHost`, + REGSTR_VAL_FILESHARING = `FileSharing`, + REGSTR_VAL_PRINTSHARING = `PrintSharing`, + REGSTR_VAL_FIRSTNETDRIVE = `FirstNetworkDrive`, + REGSTR_VAL_MAXCONNECTIONS = `MaxConnections`, + REGSTR_VAL_APISUPPORT = `APISupport`, + REGSTR_VAL_MAXRETRY = `MaxRetry`, + REGSTR_VAL_MINRETRY = `MinRetry`, + REGSTR_VAL_SUPPORTLFN = `SupportLFN`, + REGSTR_VAL_SUPPORTBURST = `SupportBurst`, + REGSTR_VAL_SUPPORTTUNNELLING = `SupportTunnelling`, + REGSTR_VAL_FULLTRACE = `FullTrace`, + REGSTR_VAL_READCACHING = `ReadCaching`, + REGSTR_VAL_SHOWDOTS = `ShowDots`, + REGSTR_VAL_GAPTIME = `GapTime`, + REGSTR_VAL_SEARCHMODE = `SearchMode`, + REGSTR_VAL_SHELLVERSION = `ShellVersion`, + REGSTR_VAL_MAXLIP = `MaxLIP`, + REGSTR_VAL_PRESERVECASE = `PreserveCase`, + REGSTR_VAL_OPTIMIZESFN = `OptimizeSFN`, + REGSTR_VAL_NCP_BROWSEMASTER = `BrowseMaster`, + REGSTR_VAL_NCP_USEPEERBROWSING = `Use_PeerBrowsing`, + REGSTR_VAL_NCP_USESAP = `Use_Sap`, + REGSTR_VAL_WIN31FILESYSTEM = `Win31FileSystem`, + REGSTR_VAL_PRESERVELONGNAMES = `PreserveLongNames`, + REGSTR_VAL_DRIVEWRITEBEHIND = `DriveWriteBehind`, + REGSTR_VAL_ASYNCFILECOMMIT = `AsyncFileCommit`, + REGSTR_VAL_PATHCACHECOUNT = `PathCache`, + REGSTR_VAL_NAMECACHECOUNT = `NameCache`, + REGSTR_VAL_CONTIGFILEALLOC = `ContigFileAllocSize`, + REGSTR_VAL_VOLIDLETIMEOUT = `VolumeIdleTimeout`, + REGSTR_VAL_BUFFIDLETIMEOUT = `BufferIdleTimeout`, + REGSTR_VAL_BUFFAGETIMEOUT = `BufferAgeTimeout`, + REGSTR_VAL_NAMENUMERICTAIL = `NameNumericTail`, + REGSTR_VAL_READAHEADTHRESHOLD = `ReadAheadThreshold`, + REGSTR_VAL_DOUBLEBUFFER = `DoubleBuffer`, + REGSTR_VAL_SOFTCOMPATMODE = `SoftCompatMode`, + REGSTR_VAL_DRIVESPINDOWN = `DriveSpinDown`, + REGSTR_VAL_FORCEPMIO = `ForcePMIO`, + REGSTR_VAL_FORCERMIO = `ForceRMIO`, + REGSTR_VAL_LASTBOOTPMDRVS = `LastBootPMDrvs`, + REGSTR_VAL_VIRTUALHDIRQ = `VirtualHDIRQ`, + REGSTR_VAL_SRVNAMECACHECOUNT = `ServerNameCacheMax`, + REGSTR_VAL_SRVNAMECACHE = `ServerNameCache`, + REGSTR_VAL_SRVNAMECACHENETPROV = `ServerNameCacheNumNets`, + REGSTR_VAL_AUTOMOUNT = `AutoMountDrives`, + REGSTR_VAL_COMPRESSIONMETHOD = `CompressionAlgorithm`, + REGSTR_VAL_COMPRESSIONTHRESHOLD = `CompressionThreshold`, + REGSTR_VAL_CDCACHESIZE = `CacheSize`, + REGSTR_VAL_CDPREFETCH = `Prefetch`, + REGSTR_VAL_CDPREFETCHTAIL = `PrefetchTail`, + REGSTR_VAL_CDRAWCACHE = `RawCache`, + REGSTR_VAL_CDEXTERRORS = `ExtendedErrors`, + REGSTR_VAL_CDSVDSENSE = `SVDSense`, + REGSTR_VAL_CDSHOWVERSIONS = `ShowVersions`, + REGSTR_VAL_CDCOMPATNAMES = `MSCDEXCompatNames`, + REGSTR_VAL_CDNOREADAHEAD = `NoReadAhead`, + REGSTR_VAL_SCSI = `SCSI\`, + REGSTR_VAL_ESDI = `ESDI\`, + REGSTR_VAL_FLOP = `FLOP\`, + REGSTR_VAL_DISK = `GenDisk`, + REGSTR_VAL_CDROM = `GenCD`, + REGSTR_VAL_TAPE = `TAPE`, + REGSTR_VAL_SCANNER = `SCANNER`, + REGSTR_VAL_FLOPPY = `FLOPPY`, + REGSTR_VAL_SCSITID = `SCSITargetID`, + REGSTR_VAL_SCSILUN = `SCSILUN`, + REGSTR_VAL_REVLEVEL = `RevisionLevel`, + REGSTR_VAL_PRODUCTID = `ProductId`, + REGSTR_VAL_PRODUCTTYPE = `ProductType`, + REGSTR_VAL_DEVTYPE = `DeviceType`, + REGSTR_VAL_REMOVABLE = `Removable`, + REGSTR_VAL_CURDRVLET = `CurrentDriveLetterAssignment`, + REGSTR_VAL_USRDRVLET = `UserDriveLetterAssignment`, + REGSTR_VAL_SYNCDATAXFER = `SyncDataXfer`, + REGSTR_VAL_AUTOINSNOTE = `AutoInsertNotification`, + REGSTR_VAL_DISCONNECT = `Disconnect`, + REGSTR_VAL_INT13 = `Int13`, + REGSTR_VAL_PMODE_INT13 = `PModeInt13`, + REGSTR_VAL_USERSETTINGS = `AdapterSettings`, + REGSTR_VAL_NOIDE = `NoIDE`, + REGSTR_VAL_DISKCLASSNAME = `DiskDrive`, + REGSTR_VAL_CDROMCLASSNAME = `CDROM`, + REGSTR_VAL_FORCELOAD = `ForceLoadPD`, + REGSTR_VAL_FORCEFIFO = `ForceFIFO`, + REGSTR_VAL_FORCECL = `ForceChangeLine`, + REGSTR_VAL_NOUSECLASS = `NoUseClass`, + REGSTR_VAL_NOINSTALLCLASS = `NoInstallClass`, + REGSTR_VAL_NODISPLAYCLASS = `NoDisplayClass`, + REGSTR_VAL_SILENTINSTALL = `SilentInstall`, + REGSTR_KEY_PCMCIA_CLASS = `PCMCIA`, + REGSTR_KEY_SCSI_CLASS = `SCSIAdapter`, + REGSTR_KEY_PORTS_CLASS = `ports`, + REGSTR_KEY_MEDIA_CLASS = `MEDIA`, + REGSTR_KEY_DISPLAY_CLASS = `Display`, + REGSTR_KEY_KEYBOARD_CLASS = `Keyboard`, + REGSTR_KEY_MOUSE_CLASS = `Mouse`, + REGSTR_KEY_MONITOR_CLASS = `Monitor`, + REGSTR_VAL_PCMCIA_OPT = `Options`, + REGSTR_VAL_PCMCIA_MEM = `Memory`, + REGSTR_VAL_PCMCIA_ALLOC = `AllocMemWin`, + REGSTR_VAL_PCMCIA_ATAD = `ATADelay`, + REGSTR_VAL_PCMCIA_SIZ = `MinRegionSize`, + REGSTR_VAL_P1284MDL = `Model`, + REGSTR_VAL_P1284MFG = `Manufacturer`, + REGSTR_VAL_ISAPNP = `ISAPNP`, + REGSTR_VAL_ISAPNP_RDP_OVERRIDE = `RDPOverRide`, + REGSTR_VAL_PCI = `PCI`, + REGSTR_PCI_OPTIONS = `Options`, + REGSTR_PCI_DUAL_IDE = `PCIDualIDE`, + + REGSTR_KEY_CRASHES = `Crashes`, + REGSTR_KEY_DANGERS = `Dangers`, + REGSTR_KEY_DETMODVARS = `DetModVars`, + REGSTR_KEY_NDISINFO = `NDISInfo`, + REGSTR_VAL_PROTINIPATH = `ProtIniPath`, + REGSTR_VAL_RESOURCES = `Resources`, + REGSTR_VAL_CRASHFUNCS = `CrashFuncs`, + REGSTR_VAL_CLASS = `Class`, + REGSTR_VAL_DEVDESC = `DeviceDesc`, + REGSTR_VAL_BOOTCONFIG = `BootConfig`, + REGSTR_VAL_DETFUNC = `DetFunc`, + REGSTR_VAL_DETFLAGS = `DetFlags`, + REGSTR_VAL_COMPATIBLEIDS = `CompatibleIDs`, + REGSTR_VAL_DETCONFIG = `DetConfig`, + REGSTR_VAL_VERIFYKEY = `VerifyKey`, + REGSTR_VAL_COMINFO = `ComInfo`, + REGSTR_VAL_INFNAME = `InfName`, + REGSTR_VAL_CARDSPECIFIC = `CardSpecific`, + REGSTR_VAL_NETOSTYPE = `NetOSType`, + REGSTR_DATA_NETOS_NDIS = `NDIS`, + REGSTR_DATA_NETOS_ODI = `ODI`, + REGSTR_DATA_NETOS_IPX = `IPX`, + REGSTR_VAL_MFG = `Mfg`, + REGSTR_VAL_SCAN_ONLY_FIRST = `ScanOnlyFirstDrive`, + REGSTR_VAL_SHARE_IRQ = `ForceIRQSharing`, + REGSTR_VAL_NONSTANDARD_ATAPI = `NonStandardATAPI`, + REGSTR_VAL_IDE_FORCE_SERIALIZE = `ForceSerialization`, + REGSTR_VAL_HWREV = `HWRevision`, + REGSTR_VAL_ENABLEINTS = `EnableInts`, + + REGSTR_VAL_APMBIOSVER = `APMBiosVer`, + REGSTR_VAL_APMFLAGS = `APMFlags`, + REGSTR_VAL_SLSUPPORT = `SLSupport`, + REGSTR_VAL_MACHINETYPE = `MachineType`, + REGSTR_VAL_SETUPMACHINETYPE = `SetupMachineType`, + REGSTR_MACHTYPE_UNKNOWN = `Unknown`, + REGSTR_MACHTYPE_IBMPC = `IBM PC`, + REGSTR_MACHTYPE_IBMPCJR = `IBM PCjr`, + REGSTR_MACHTYPE_IBMPCCONV = `IBM PC Convertible`, + REGSTR_MACHTYPE_IBMPCXT = `IBM PC/XT`, + REGSTR_MACHTYPE_IBMPCXT_286 = `IBM PC/XT 286`, + REGSTR_MACHTYPE_IBMPCAT = `IBM PC/AT`, + REGSTR_MACHTYPE_IBMPS2_25 = `IBM PS/2-25`, + REGSTR_MACHTYPE_IBMPS2_30_286 = `IBM PS/2-30 286`, + REGSTR_MACHTYPE_IBMPS2_30 = `IBM PS/2-30`, + REGSTR_MACHTYPE_IBMPS2_50 = `IBM PS/2-50`, + REGSTR_MACHTYPE_IBMPS2_50Z = `IBM PS/2-50Z`, + REGSTR_MACHTYPE_IBMPS2_55SX = `IBM PS/2-55SX`, + REGSTR_MACHTYPE_IBMPS2_60 = `IBM PS/2-60`, + REGSTR_MACHTYPE_IBMPS2_65SX = `IBM PS/2-65SX`, + REGSTR_MACHTYPE_IBMPS2_70 = `IBM PS/2-70`, + REGSTR_MACHTYPE_IBMPS2_P70 = `IBM PS/2-P70`, + REGSTR_MACHTYPE_IBMPS2_70_80 = `IBM PS/2-70/80`, + REGSTR_MACHTYPE_IBMPS2_80 = `IBM PS/2-80`, + REGSTR_MACHTYPE_IBMPS2_90 = `IBM PS/2-90`, + REGSTR_MACHTYPE_IBMPS1 = `IBM PS/1`, + REGSTR_MACHTYPE_PHOENIX_PCAT = `Phoenix PC/AT Compatible`, + REGSTR_MACHTYPE_HP_VECTRA = `HP Vectra`, + REGSTR_MACHTYPE_ATT_PC = `AT&T PC`, + REGSTR_MACHTYPE_ZENITH_PC = `Zenith PC`, + REGSTR_VAL_APMMENUSUSPEND = `APMMenuSuspend`, + + REGSTR_VAL_BUSTYPE = `BusType`, + REGSTR_VAL_CPU = `CPU`, + REGSTR_VAL_NDP = `NDP`, + REGSTR_VAL_PNPBIOSVER = `PnPBIOSVer`, + REGSTR_VAL_PNPSTRUCOFFSET = `PnPStrucOffset`, + REGSTR_VAL_PCIBIOSVER = `PCIBIOSVer`, + REGSTR_VAL_HWMECHANISM = `HWMechanism`, + REGSTR_VAL_LASTPCIBUSNUM = `LastPCIBusNum`, + REGSTR_VAL_CONVMEM = `ConvMem`, + REGSTR_VAL_EXTMEM = `ExtMem`, + REGSTR_VAL_COMPUTERNAME = `ComputerName`, + REGSTR_VAL_BIOSNAME = `BIOSName`, + REGSTR_VAL_BIOSVERSION = `BIOSVersion`, + REGSTR_VAL_BIOSDATE = `BIOSDate`, + REGSTR_VAL_MODEL = `Model`, + REGSTR_VAL_SUBMODEL = `Submodel`, + REGSTR_VAL_REVISION = `Revision`, + REGSTR_VAL_FIFODEPTH = `FIFODepth`, + REGSTR_VAL_RDINTTHRESHOLD = `RDIntThreshold`, + REGSTR_VAL_WRINTTHRESHOLD = `WRIntThreshold`, + REGSTR_VAL_PRIORITY = `Priority`, + REGSTR_VAL_DRIVER = `Driver`, + REGSTR_VAL_FUNCDESC = `FunctionDesc`, + REGSTR_VAL_FORCEDCONFIG = `ForcedConfig`, + REGSTR_VAL_CONFIGFLAGS = `ConfigFlags`, + REGSTR_VAL_CSCONFIGFLAGS = `CSConfigFlags`, + + REGSTR_VAL_ROOT_DEVNODE = `HTREE\ROOT\0`, + REGSTR_VAL_RESERVED_DEVNODE = `HTREE\RESERVED\0`, + REGSTR_PATH_READDATAPORT = REGSTR_KEY_ISAENUM ~ `\ReadDataPort\0`, + REGSTR_PATH_MULTI_FUNCTION = `MF`, + REGSTR_VAL_RESOURCE_MAP = `ResourceMap`, + REGSTR_PATH_CHILD_PREFIX = `Child`, + REGSTR_VAL_MF_FLAGS = `MFFlags`, + REGSTR_VAL_DRVDESC = `DriverDesc`, + REGSTR_VAL_DEVLOADER = `DevLoader`, + REGSTR_VAL_STATICVXD = `StaticVxD`, + REGSTR_VAL_PROPERTIES = `Properties`, + REGSTR_VAL_MANUFACTURER = `Manufacturer`, + REGSTR_VAL_EXISTS = `Exists`, + REGSTR_VAL_CMENUMFLAGS = `CMEnumFlags`, + REGSTR_VAL_CMDRIVFLAGS = `CMDrivFlags`, + REGSTR_VAL_ENUMERATOR = `Enumerator`, + REGSTR_VAL_DEVICEDRIVER = `DeviceDriver`, + REGSTR_VAL_PORTNAME = `PortName`, + REGSTR_VAL_INFPATH = `InfPath`, + REGSTR_VAL_INFSECTION = `InfSection`, + REGSTR_VAL_POLLING = `Polling`, + REGSTR_VAL_DONTLOADIFCONFLICT = `DontLoadIfConflict`, + REGSTR_VAL_PORTSUBCLASS = `PortSubClass`, + REGSTR_VAL_NETCLEAN = `NetClean`, + REGSTR_VAL_IDE_NO_SERIALIZE = `IDENoSerialize`, + REGSTR_VAL_NOCMOSORFDPT = `NoCMOSorFDPT`, + REGSTR_VAL_COMVERIFYBASE = `COMVerifyBase`, + REGSTR_KEY_OVERRIDE = `Override`, + REGSTR_VAL_CONFIGMG = `CONFIGMG`, + REGSTR_VAL_SYSDM = `SysDM`, + REGSTR_VAL_SYSDMFUNC = `SysDMFunc`, + REGSTR_VAL_PRIVATE = `Private`, + REGSTR_VAL_PRIVATEFUNC = `PrivateFunc`, + REGSTR_VAL_DETECT = `Detect`, + REGSTR_VAL_DETECTFUNC = `DetectFunc`, + REGSTR_VAL_ASKFORCONFIG = `AskForConfig`, + REGSTR_VAL_ASKFORCONFIGFUNC = `AskForConfigFunc`, + REGSTR_VAL_WAITFORUNDOCK = `WaitForUndock`, + REGSTR_VAL_WAITFORUNDOCKFUNC = `WaitForUndockFunc`, + REGSTR_VAL_REMOVEROMOKAY = `RemoveRomOkay`, + REGSTR_VAL_REMOVEROMOKAYFUNC = `RemoveRomOkayFunc`, + REGSTR_VAL_CURCONFIG = `CurrentConfig`, + REGSTR_VAL_FRIENDLYNAME = `FriendlyName`, + REGSTR_VAL_CURRENTCONFIG = `CurrentConfig`, + REGSTR_VAL_MAP = `Map`, + REGSTR_VAL_ID = `CurrentID`, + REGSTR_VAL_DOCKED = `CurrentDockedState`, + REGSTR_VAL_CHECKSUM = `CurrentChecksum`, + REGSTR_VAL_HWDETECT = `HardwareDetect`, + REGSTR_VAL_INHIBITRESULTS = `InhibitResults`, + REGSTR_VAL_PROFILEFLAGS = `ProfileFlags`, + REGSTR_KEY_PCMCIA = `PCMCIA\`, + REGSTR_KEY_PCUNKNOWN = `UNKNOWN_MANUFACTURER`, + REGSTR_VAL_PCSSDRIVER = `Driver`, + REGSTR_KEY_PCMTD = `MTD-`, + REGSTR_VAL_PCMTDRIVER = `MTD`, + REGSTR_VAL_HARDWAREID = `HardwareID`, + REGSTR_VAL_INSTALLER = `Installer`, + REGSTR_VAL_INSICON = `Icon`, + REGSTR_VAL_ENUMPROPPAGES = `EnumPropPages`, + REGSTR_VAL_BASICPROPERTIES = `BasicProperties`, + REGSTR_VAL_PRIVATEPROBLEM = `PrivateProblem`, + REGSTR_KEY_CURRENT = `Current`, + REGSTR_KEY_DEFAULT = `Default`, + REGSTR_KEY_MODES = `Modes`, + REGSTR_VAL_MODE = `Mode`, + REGSTR_VAL_BPP = `BPP`, + REGSTR_VAL_HRES = `HRes`, + REGSTR_VAL_VRES = `VRes`, + REGSTR_VAL_FONTSIZE = `FontSize`, + REGSTR_VAL_DRV = `drv`, + REGSTR_VAL_GRB = `grb`, + REGSTR_VAL_VDD = `vdd`, + REGSTR_VAL_VER = `Ver`, + REGSTR_VAL_MAXRES = `MaxResolution`, + REGSTR_VAL_DPMS = `DPMS`, + REGSTR_VAL_RESUMERESET = `ResumeReset`, + REGSTR_VAL_DESCRIPTION = `Description`, + REGSTR_KEY_SYSTEM = `System`, + REGSTR_KEY_USER = `User`, + REGSTR_VAL_DPI = `dpi`, + REGSTR_VAL_PCICOPTIONS = `PCICOptions`, + + REGSTR_VAL_PCICIRQMAP = `PCICIRQMap`, + REGSTR_PATH_APPEARANCE = `Control Panel\Appearance`, + REGSTR_PATH_LOOKSCHEMES = `Control Panel\Appearance\Schemes`, + REGSTR_VAL_CUSTOMCOLORS = `CustomColors`, + REGSTR_PATH_SCREENSAVE = `Control Panel\Desktop`, + REGSTR_VALUE_USESCRPASSWORD = `ScreenSaveUsePassword`, + REGSTR_VALUE_SCRPASSWORD = `ScreenSave_Data`, + REGSTR_VALUE_LOWPOWERTIMEOUT = `ScreenSaveLowPowerTimeout`, + REGSTR_VALUE_POWEROFFTIMEOUT = `ScreenSavePowerOffTimeout`, + REGSTR_VALUE_LOWPOWERACTIVE = `ScreenSaveLowPowerActive`, + REGSTR_VALUE_POWEROFFACTIVE = `ScreenSavePowerOffActive`, + REGSTR_PATH_WINDOWSAPPLETS = `Software\Microsoft\Windows\CurrentVersion\Applets`, + REGSTR_PATH_SYSTRAY = `Software\Microsoft\Windows\CurrentVersion\Applets\SysTray`, + REGSTR_VAL_SYSTRAYSVCS = `Services`, + REGSTR_VAL_SYSTRAYBATFLAGS = `PowerFlags`, + REGSTR_VAL_SYSTRAYPCCARDFLAGS = `PCMCIAFlags`, + REGSTR_PATH_NETWORK_USERSETTINGS = `Network`, + REGSTR_KEY_NETWORK_PERSISTENT = `\Persistent`, + REGSTR_KEY_NETWORK_RECENT = `\Recent`, + REGSTR_VAL_REMOTE_PATH = `RemotePath`, + REGSTR_VAL_USER_NAME = `UserName`, + REGSTR_VAL_PROVIDER_NAME = `ProviderName`, + REGSTR_VAL_CONNECTION_TYPE = `ConnectionType`, + REGSTR_VAL_UPGRADE = `Upgrade`, + REGSTR_KEY_LOGON = `\Logon`, + REGSTR_VAL_MUSTBEVALIDATED = `MustBeValidated`, + REGSTR_VAL_RUNLOGINSCRIPT = `ProcessLoginScript`, + REGSTR_KEY_NETWORKPROVIDER = `\NetworkProvider`, + REGSTR_PATH_NW32NETPROVIDER =REGSTR_PATH_SERVICES ~ `\NWNP32` ~ REGSTR_KEY_NETWORKPROVIDER, + REGSTR_PATH_MS32NETPROVIDER =REGSTR_PATH_SERVICES ~ `\MSNP32` ~ REGSTR_KEY_NETWORKPROVIDER, + REGSTR_VAL_AUTHENT_AGENT = `AuthenticatingAgent`, + REGSTR_VAL_PREFREDIR = `PreferredRedir`, + REGSTR_VAL_AUTOSTART = `AutoStart`, + REGSTR_VAL_AUTOLOGON = `AutoLogon`, + REGSTR_VAL_NETCARD = `Netcard`, + REGSTR_VAL_TRANSPORT = `Transport`, + REGSTR_VAL_DYNAMIC = `Dynamic`, + REGSTR_VAL_TRANSITION = `Transition`, + REGSTR_VAL_STATICDRIVE = `StaticDrive`, + REGSTR_VAL_LOADHI = `LoadHi`, + REGSTR_VAL_LOADRMDRIVERS = `LoadRMDrivers`, + REGSTR_VAL_SETUPN = `SetupN`, + REGSTR_VAL_SETUPNPATH = `SetupNPath`, + REGSTR_VAL_WRKGRP_FORCEMAPPING = `WrkgrpForceMapping`, + REGSTR_VAL_WRKGRP_REQUIRED = `WrkgrpRequired`, + REGSTR_PATH_CURRENT_CONTROL_SET = `System\CurrentControlSet\Control`, + REGSTR_VAL_CURRENT_USER = `Current User`, + REGSTR_PATH_PWDPROVIDER = `System\CurrentControlSet\Control\PwdProvider`, + REGSTR_VAL_PWDPROVIDER_PATH = `ProviderPath`, + REGSTR_VAL_PWDPROVIDER_DESC = `Description`, + REGSTR_VAL_PWDPROVIDER_CHANGEPWD = `ChangePassword`, + REGSTR_VAL_PWDPROVIDER_CHANGEPWDHWND = `ChangePasswordHwnd`, + REGSTR_VAL_PWDPROVIDER_GETPWDSTATUS = `GetPasswordStatus`, + REGSTR_VAL_PWDPROVIDER_ISNP = `NetworkProvider`, + REGSTR_VAL_PWDPROVIDER_CHANGEORDER = `ChangeOrder`, + REGSTR_PATH_POLICIES = `Software\Microsoft\Windows\CurrentVersion\Policies`, + REGSTR_PATH_UPDATE = `System\CurrentControlSet\Control\Update`, + REGSTR_VALUE_ENABLE = `Enable`, + REGSTR_VALUE_VERBOSE = `Verbose`, + REGSTR_VALUE_NETPATH = `NetworkPath`, + REGSTR_VALUE_DEFAULTLOC = `UseDefaultNetLocation`, + REGSTR_KEY_NETWORK = `Network`, +// [Redefined] REGSTR_KEY_SYSTEM = `System`) + REGSTR_KEY_PRINTERS = `Printers`, + REGSTR_KEY_WINOLDAPP = `WinOldApp`, + REGSTR_VAL_NOFILESHARING = `NoFileSharing`, + REGSTR_VAL_NOPRINTSHARING = `NoPrintSharing`, + REGSTR_VAL_NOFILESHARINGCTRL = `NoFileSharingControl`, + REGSTR_VAL_NOPRINTSHARINGCTRL = `NoPrintSharingControl`, + REGSTR_VAL_HIDESHAREPWDS = `HideSharePwds`, + REGSTR_VAL_DISABLEPWDCACHING = `DisablePwdCaching`, + REGSTR_VAL_ALPHANUMPWDS = `AlphanumPwds`, + REGSTR_VAL_NETSETUP_DISABLE = `NoNetSetup`, + REGSTR_VAL_NETSETUP_NOCONFIGPAGE = `NoNetSetupConfigPage`, + REGSTR_VAL_NETSETUP_NOIDPAGE = `NoNetSetupIDPage`, + REGSTR_VAL_NETSETUP_NOSECURITYPAGE = `NoNetSetupSecurityPage`, + REGSTR_VAL_SYSTEMCPL_NOVIRTMEMPAGE = `NoVirtMemPage`, + REGSTR_VAL_SYSTEMCPL_NODEVMGRPAGE = `NoDevMgrPage`, + REGSTR_VAL_SYSTEMCPL_NOCONFIGPAGE = `NoConfigPage`, + REGSTR_VAL_SYSTEMCPL_NOFILESYSPAGE = `NoFileSysPage`, + REGSTR_VAL_DISPCPL_NODISPCPL = `NoDispCPL`, + REGSTR_VAL_DISPCPL_NOBACKGROUNDPAGE = `NoDispBackgroundPage`, + REGSTR_VAL_DISPCPL_NOSCRSAVPAGE = `NoDispScrSavPage`, + REGSTR_VAL_DISPCPL_NOAPPEARANCEPAGE = `NoDispAppearancePage`, + REGSTR_VAL_DISPCPL_NOSETTINGSPAGE = `NoDispSettingsPage`, + REGSTR_VAL_SECCPL_NOSECCPL = `NoSecCPL`, + REGSTR_VAL_SECCPL_NOPWDPAGE = `NoPwdPage`, + REGSTR_VAL_SECCPL_NOADMINPAGE = `NoAdminPage`, + REGSTR_VAL_SECCPL_NOPROFILEPAGE = `NoProfilePage`, + REGSTR_VAL_PRINTERS_HIDETABS = `NoPrinterTabs`, + REGSTR_VAL_PRINTERS_NODELETE = `NoDeletePrinter`, + REGSTR_VAL_PRINTERS_NOADD = `NoAddPrinter`, + REGSTR_VAL_WINOLDAPP_DISABLED = `Disabled`, + REGSTR_VAL_WINOLDAPP_NOREALMODE = `NoRealMode`, + REGSTR_VAL_NOENTIRENETWORK = `NoEntireNetwork`, + REGSTR_VAL_NOWORKGROUPCONTENTS = `NoWorkgroupContents`, + REGSTR_VAL_MINPWDLEN = `MinPwdLen`, + REGSTR_VAL_PWDEXPIRATION = `PwdExpiration`, + REGSTR_VAL_WIN31PROVIDER = `Win31Provider`, + REGSTR_VAL_DISABLEREGTOOLS = `DisableRegistryTools`, + REGSTR_PATH_WINLOGON = `Software\Microsoft\Windows\CurrentVersion\Winlogon`, + REGSTR_VAL_LEGALNOTICECAPTION = `LegalNoticeCaption`, + REGSTR_VAL_LEGALNOTICETEXT = `LegalNoticeText`, + REGSTR_VAL_RESTRICTRUN = `RestrictRun`, + REGSTR_KEY_POL_USERS = `Users`, + REGSTR_KEY_POL_COMPUTERS = `Computers`, + REGSTR_KEY_POL_USERGROUPS = `UserGroups`, + REGSTR_KEY_POL_DEFAULT = `.default`, + REGSTR_KEY_POL_USERGROUPDATA = `GroupData\UserGroups\Priority`, + REGSTR_PATH_TIMEZONE = `System\CurrentControlSet\Control\TimeZoneInformation`, + REGSTR_VAL_TZBIAS = `Bias`, + REGSTR_VAL_TZDLTBIAS = `DaylightBias`, + REGSTR_VAL_TZSTDBIAS = `StandardBias`, + REGSTR_VAL_TZACTBIAS = `ActiveTimeBias`, + REGSTR_VAL_TZDLTFLAG = `DaylightFlag`, + REGSTR_VAL_TZSTDSTART = `StandardStart`, + REGSTR_VAL_TZDLTSTART = `DaylightStart`, + REGSTR_VAL_TZDLTNAME = `DaylightName`, + REGSTR_VAL_TZSTDNAME = `StandardName`, + REGSTR_VAL_TZNOCHANGESTART = `NoChangeStart`, + REGSTR_VAL_TZNOCHANGEEND = `NoChangeEnd`, + REGSTR_VAL_TZNOAUTOTIME = `DisableAutoDaylightTimeSet`, + REGSTR_PATH_FLOATINGPOINTPROCESSOR = `HARDWARE\DESCRIPTION\System\FloatingPointProcessor`, + REGSTR_PATH_FLOATINGPOINTPROCESSOR0 = `HARDWARE\DESCRIPTION\System\FloatingPointProcessor\0`, + REGSTR_PATH_COMPUTRNAME = `System\CurrentControlSet\Control\ComputerName\ComputerName`, + REGSTR_VAL_COMPUTRNAME = `ComputerName`, + REGSTR_PATH_SHUTDOWN = `System\CurrentControlSet\Control\Shutdown`, + REGSTR_VAL_FORCEREBOOT = `ForceReboot`, + REGSTR_VAL_SETUPPROGRAMRAN = `SetupProgramRan`, + REGSTR_VAL_DOES_POLLING = `PollingSupportNeeded`, + REGSTR_PATH_KNOWNDLLS = `System\CurrentControlSet\Control\SessionManager\KnownDLLs`, + REGSTR_PATH_KNOWN16DLLS = `System\CurrentControlSet\Control\SessionManager\Known16DLLs`, + REGSTR_PATH_CHECKVERDLLS = `System\CurrentControlSet\Control\SessionManager\CheckVerDLLs`, + REGSTR_PATH_WARNVERDLLS = `System\CurrentControlSet\Control\SessionManager\WarnVerDLLs`, + REGSTR_PATH_HACKINIFILE = `System\CurrentControlSet\Control\SessionManager\HackIniFiles`, + REGSTR_PATH_CHECKBADAPPS = `System\CurrentControlSet\Control\SessionManager\CheckBadApps`, + REGSTR_PATH_APPPATCH = `System\CurrentControlSet\Control\SessionManager\AppPatches`, + REGSTR_PATH_KNOWNVXDS = `System\CurrentControlSet\Control\SessionManager\KnownVxDs`, + REGSTR_VAL_UNINSTALLER_DISPLAYNAME = `DisplayName`, + REGSTR_VAL_UNINSTALLER_COMMANDLINE = `UninstallString`, + REGSTR_PATH_DESKTOP = REGSTR_PATH_SCREENSAVE, + REGSTR_PATH_MOUSE = `Control Panel\Mouse`, + REGSTR_PATH_KEYBOARD = `Control Panel\Keyboard`, + REGSTR_PATH_COLORS = `Control Panel\Colors`, + REGSTR_PATH_SOUND = `Control Panel\Sound`, + REGSTR_PATH_METRICS = `Control Panel\Desktop\WindowMetrics`, + REGSTR_PATH_ICONS = `Control Panel\Icons`, + REGSTR_PATH_CURSORS = `Control Panel\Cursors`, + REGSTR_PATH_CHECKDISK = `Software\Microsoft\Windows\CurrentVersion\Applets\Check Drive`, + REGSTR_PATH_CHECKDISKSET = `Settings`, + REGSTR_PATH_CHECKDISKUDRVS = `NoUnknownDDErrDrvs`, + REGSTR_PATH_FAULT = `Software\Microsoft\Windows\CurrentVersion\Fault`, + REGSTR_VAL_FAULT_LOGFILE = `LogFile`, + REGSTR_PATH_AEDEBUG = `Software\Microsoft\Windows NT\CurrentVersion\AeDebug`, + REGSTR_VAL_AEDEBUG_DEBUGGER = `Debugger`, + REGSTR_VAL_AEDEBUG_AUTO = `Auto`, + REGSTR_PATH_GRPCONV = `Software\Microsoft\Windows\CurrentVersion\GrpConv`, + REGSTR_VAL_REGITEMDELETEMESSAGE = `Removal Message`, + REGSTR_PATH_LASTCHECK = `Software\Microsoft\Windows\CurrentVersion\Explorer\LastCheck`, + REGSTR_PATH_LASTOPTIMIZE = `Software\Microsoft\Windows\CurrentVersion\Explorer\LastOptimize`, + REGSTR_PATH_LASTBACKUP = `Software\Microsoft\Windows\CurrentVersion\Explorer\LastBackup`, + REGSTR_PATH_CHKLASTCHECK = `Software\Microsoft\Windows\CurrentVersion\Applets\Check Drive\LastCheck`, + REGSTR_PATH_CHKLASTSURFAN = `Software\Microsoft\Windows\CurrentVersion\Applets\Check Drive\LastSurfaceAnalysis`, + REGSTR_KEY_SHARES = `Software\Microsoft\Windows\CurrentVersion\Network\LanMan`, + REGSTR_VAL_SHARES_FLAGS = `Flags`, + REGSTR_VAL_SHARES_TYPE = `Type`, + REGSTR_VAL_SHARES_PATH = `Path`, + REGSTR_VAL_SHARES_REMARK = `Remark`, + REGSTR_VAL_SHARES_RW_PASS = `Parm1`, + REGSTR_VAL_SHARES_RO_PASS = `Parm2`, + REGSTR_PATH_PRINT = `System\CurrentControlSet\Control\Print`, + REGSTR_PATH_PRINTERS = `System\CurrentControlSet\Control\Print\Printers`, + REGSTR_PATH_PROVIDERS = `System\CurrentControlSet\Control\Print\Providers`, + REGSTR_PATH_MONITORS = `System\CurrentControlSet\Control\Print\Monitors`, + REGSTR_PATH_ENVIRONMENTS = `System\CurrentControlSet\Control\Print\Environments`, + REGSTR_VAL_START_ON_BOOT = `StartOnBoot`, + REGSTR_VAL_PRINTERS_MASK = `PrintersMask`, + REGSTR_VAL_DOS_SPOOL_MASK = `DOSSpoolMask`, + REGSTR_KEY_CURRENT_ENV = `\Windows 4.0`, + REGSTR_KEY_DRIVERS = `\Drivers`, + REGSTR_KEY_PRINT_PROC = `\Print Processors`, + REGSTR_PATH_EVENTLABELS = `AppEvents\EventLabels`, + REGSTR_PATH_SCHEMES = `AppEvents\Schemes`, + REGSTR_PATH_APPS = REGSTR_PATH_SCHEMES ~ `\Apps`, + REGSTR_PATH_APPS_DEFAULT = REGSTR_PATH_SCHEMES ~ `\Apps\.Default`, + REGSTR_PATH_NAMES = REGSTR_PATH_SCHEMES ~ `\Names`, + REGSTR_PATH_MULTIMEDIA = REGSTR_PATH_SETUP ~ `\Multimedia`, + REGSTR_PATH_MULTIMEDIA_AUDIO = `Software\Microsoft\Multimedia\Audio`, + REGSTR_PATH_MEDIARESOURCES = REGSTR_PATH_CURRENT_CONTROL_SET ~ `\MediaResources`, + REGSTR_PATH_MEDIAPROPERTIES = REGSTR_PATH_CURRENT_CONTROL_SET ~ `\MediaProperties`, + REGSTR_PATH_PRIVATEPROPERTIES = REGSTR_PATH_MEDIAPROPERTIES ~ `\PrivateProperties`, + REGSTR_PATH_PUBLICPROPERTIES = REGSTR_PATH_MEDIAPROPERTIES ~ `\PublicProperties`, + REGSTR_PATH_JOYOEM = REGSTR_PATH_PRIVATEPROPERTIES ~ `\Joystick\OEM`, + REGSTR_PATH_JOYCONFIG = REGSTR_PATH_MEDIARESOURCES ~ `\Joystick`, + REGSTR_KEY_JOYCURR = `CurrentJoystickSettings`, + REGSTR_KEY_JOYSETTINGS = `JoystickSettings`, + REGSTR_VAL_JOYUSERVALUES = `JoystickUserValues`, + REGSTR_VAL_JOYCALLOUT = `JoystickCallout`, + REGSTR_VAL_JOYNCONFIG = `Joystick%dConfiguration`, + REGSTR_VAL_JOYNOEMNAME = `Joystick%dOEMName`, + REGSTR_VAL_JOYNOEMCALLOUT = `Joystick%dOEMCallout`, + REGSTR_VAL_JOYOEMCALLOUT = `OEMCallout`, + REGSTR_VAL_JOYOEMNAME = `OEMName`, + REGSTR_VAL_JOYOEMDATA = `OEMData`, + REGSTR_VAL_JOYOEMXYLABEL = `OEMXYLabel`, + REGSTR_VAL_JOYOEMZLABEL = `OEMZLabel`, + REGSTR_VAL_JOYOEMRLABEL = `OEMRLabel`, + REGSTR_VAL_JOYOEMPOVLABEL = `OEMPOVLabel`, + REGSTR_VAL_JOYOEMULABEL = `OEMULabel`, + REGSTR_VAL_JOYOEMVLABEL = `OEMVLabel`, + REGSTR_VAL_JOYOEMTESTMOVEDESC = `OEMTestMoveDesc`, + REGSTR_VAL_JOYOEMTESTBUTTONDESC = `OEMTestButtonDesc`, + REGSTR_VAL_JOYOEMTESTMOVECAP = `OEMTestMoveCap`, + REGSTR_VAL_JOYOEMTESTBUTTONCAP = `OEMTestButtonCap`, + REGSTR_VAL_JOYOEMTESTWINCAP = `OEMTestWinCap`, + REGSTR_VAL_JOYOEMCALCAP = `OEMCalCap`, + REGSTR_VAL_JOYOEMCALWINCAP = `OEMCalWinCap`, + REGSTR_VAL_JOYOEMCAL1 = `OEMCal1`, + REGSTR_VAL_JOYOEMCAL2 = `OEMCal2`, + REGSTR_VAL_JOYOEMCAL3 = `OEMCal3`, + REGSTR_VAL_JOYOEMCAL4 = `OEMCal4`, + REGSTR_VAL_JOYOEMCAL5 = `OEMCal5`, + REGSTR_VAL_JOYOEMCAL6 = `OEMCal6`, + REGSTR_VAL_JOYOEMCAL7 = `OEMCal7`, + REGSTR_VAL_JOYOEMCAL8 = `OEMCal8`, + REGSTR_VAL_JOYOEMCAL9 = `OEMCal9`, + REGSTR_VAL_JOYOEMCAL10 = `OEMCal10`, + REGSTR_VAL_JOYOEMCAL11 = `OEMCal11`, + REGSTR_VAL_JOYOEMCAL12 = `OEMCal12`; + +enum { + DTRESULTOK, + DTRESULTFIX, + DTRESULTPROB, + DTRESULTPART +} + +//#ifndef NEC_98 +const PCIC_DEFAULT_IRQMASK = 0x4EB8; +//#else +//#define PCIC_DEFAULT_IRQMASK 0x1468 +//#endif +const PCIC_DEFAULT_NUMSOCKETS = 0; + +struct DSKTLSYSTEMTIME { + WORD wYear; + WORD wMonth; + WORD wDayOfWeek; + WORD wDay; + WORD wHour; + WORD wMinute; + WORD wSecond; + WORD wMilliseconds; + WORD wResult; +} +alias DSKTLSYSTEMTIME* PDSKTLSYSTEMTIME, LPDSKTLSYSTEMTIME; ADDED src/win32/richedit.d Index: src/win32/richedit.d ================================================================== --- src/win32/richedit.d +++ src/win32/richedit.d @@ -0,0 +1,581 @@ +/***********************************************************************\ +* richedit.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.richedit; + +private import win32.windef, win32.winuser; +private import win32.wingdi; // for LF_FACESIZE + +align(4): + +version(Unicode) { + const wchar[] RICHEDIT_CLASS = "RichEdit20W"; +} else { + const char[] RICHEDIT_CLASS = "RichEdit20A"; +} + +const RICHEDIT_CLASS10A = "RICHEDIT"; + +const TCHAR[] + CF_RTF = "Rich Text Format", + CF_RTFNOOBJS = "Rich Text Format Without Objects", + CF_RETEXTOBJ = "RichEdit Text and Objects"; + +const DWORD + CFM_BOLD = 1, + CFM_ITALIC = 2, + CFM_UNDERLINE = 4, + CFM_STRIKEOUT = 8, + CFM_PROTECTED = 16, + CFM_LINK = 32, + CFM_SIZE = 0x80000000, + CFM_COLOR = 0x40000000, + CFM_FACE = 0x20000000, + CFM_OFFSET = 0x10000000, + CFM_CHARSET = 0x08000000, + CFM_SUBSCRIPT = 0x00030000, + CFM_SUPERSCRIPT = 0x00030000; + +const DWORD + CFE_BOLD = 1, + CFE_ITALIC = 2, + CFE_UNDERLINE = 4, + CFE_STRIKEOUT = 8, + CFE_PROTECTED = 16, + CFE_SUBSCRIPT = 0x00010000, + CFE_SUPERSCRIPT = 0x00020000, + CFE_AUTOCOLOR = 0x40000000; + +const CFM_EFFECTS = CFM_BOLD | CFM_ITALIC | CFM_UNDERLINE | CFM_COLOR + | CFM_STRIKEOUT | CFE_PROTECTED | CFM_LINK; + +// flags for EM_SETIMEOPTIONS +const LPARAM + IMF_FORCENONE = 1, + IMF_FORCEENABLE = 2, + IMF_FORCEDISABLE = 4, + IMF_CLOSESTATUSWINDOW = 8, + IMF_VERTICAL = 32, + IMF_FORCEACTIVE = 64, + IMF_FORCEINACTIVE = 128, + IMF_FORCEREMEMBER = 256; + +const SEL_EMPTY=0; +const SEL_TEXT=1; +const SEL_OBJECT=2; +const SEL_MULTICHAR=4; +const SEL_MULTIOBJECT=8; + +const MAX_TAB_STOPS=32; + +const PFM_ALIGNMENT=8; +const PFM_NUMBERING=32; +const PFM_OFFSET=4; +const PFM_OFFSETINDENT=0x80000000; +const PFM_RIGHTINDENT=2; +const PFM_STARTINDENT=1; +const PFM_TABSTOPS=16; +const PFM_BORDER=2048; +const PFM_LINESPACING=256; +const PFM_NUMBERINGSTART=32768; +const PFM_NUMBERINGSTYLE=8192; +const PFM_NUMBERINGTAB=16384; +const PFM_SHADING=4096; +const PFM_SPACEAFTER=128; +const PFM_SPACEBEFORE=64; +const PFM_STYLE=1024; +const PFM_DONOTHYPHEN=4194304; +const PFM_KEEP=131072; +const PFM_KEEPNEXT=262144; +const PFM_NOLINENUMBER=1048576; +const PFM_NOWIDOWCONTROL=2097152; +const PFM_PAGEBREAKBEFORE=524288; +const PFM_RTLPARA=65536; +const PFM_SIDEBYSIDE=8388608; +const PFM_TABLE=1073741824; +const PFN_BULLET=1; + +const PFE_DONOTHYPHEN=64; +const PFE_KEEP=2; +const PFE_KEEPNEXT=4; +const PFE_NOLINENUMBER=16; +const PFE_NOWIDOWCONTROL=32; +const PFE_PAGEBREAKBEFORE=8; +const PFE_RTLPARA=1; +const PFE_SIDEBYSIDE=128; +const PFE_TABLE=16384; +const PFA_LEFT=1; +const PFA_RIGHT=2; +const PFA_CENTER=3; +const PFA_JUSTIFY=4; +const PFA_FULL_INTERWORD=4; + +const SF_TEXT=1; +const SF_RTF=2; +const SF_RTFNOOBJS=3; +const SF_TEXTIZED=4; +const SF_UNICODE=16; +const SF_USECODEPAGE=32; +const SF_NCRFORNONASCII=64; +const SF_RTFVAL=0x0700; + +const SFF_PWD=0x0800; +const SFF_KEEPDOCINFO=0x1000; +const SFF_PERSISTVIEWSCALE=0x2000; +const SFF_PLAINRTF=0x4000; +const SFF_SELECTION=0x8000; + +const WB_CLASSIFY = 3; +const WB_MOVEWORDLEFT = 4; +const WB_MOVEWORDRIGHT = 5; +const WB_LEFTBREAK = 6; +const WB_RIGHTBREAK = 7; +const WB_MOVEWORDPREV = 4; +const WB_MOVEWORDNEXT = 5; +const WB_PREVBREAK = 6; +const WB_NEXTBREAK = 7; + +const WBF_WORDWRAP = 16; +const WBF_WORDBREAK = 32; +const WBF_OVERFLOW = 64; +const WBF_LEVEL1 = 128; +const WBF_LEVEL2 = 256; +const WBF_CUSTOM = 512; + +const ES_DISABLENOSCROLL = 8192; +const ES_SUNKEN = 16384; +const ES_SAVESEL = 32768; +const ES_EX_NOCALLOLEINIT = 16777216; +const ES_NOIME = 524288; +const ES_NOOLEDRAGDROP = 8; +const ES_SELECTIONBAR = 16777216; +const ES_SELFIME = 262144; +const ES_VERTICAL = 4194304; + +const EM_CANPASTE = WM_USER+50; +const EM_DISPLAYBAND = WM_USER+51; +const EM_EXGETSEL = WM_USER+52; +const EM_EXLIMITTEXT = WM_USER+53; +const EM_EXLINEFROMCHAR = WM_USER+54; +const EM_EXSETSEL = WM_USER+55; +const EM_FINDTEXT = WM_USER+56; +const EM_FORMATRANGE = WM_USER+57; +const EM_GETCHARFORMAT = WM_USER+58; +const EM_GETEVENTMASK = WM_USER+59; +const EM_GETOLEINTERFACE = WM_USER+60; +const EM_GETPARAFORMAT = WM_USER+61; +const EM_GETSELTEXT = WM_USER+62; +const EM_HIDESELECTION = WM_USER+63; +const EM_PASTESPECIAL = WM_USER+64; +const EM_REQUESTRESIZE = WM_USER+65; +const EM_SELECTIONTYPE = WM_USER+66; +const EM_SETBKGNDCOLOR = WM_USER+67; +const EM_SETCHARFORMAT = WM_USER+68; +const EM_SETEVENTMASK = WM_USER+69; +const EM_SETOLECALLBACK = WM_USER+70; +const EM_SETPARAFORMAT = WM_USER+71; +const EM_SETTARGETDEVICE = WM_USER+72; +const EM_STREAMIN = WM_USER+73; +const EM_STREAMOUT = WM_USER+74; +const EM_GETTEXTRANGE = WM_USER+75; +const EM_FINDWORDBREAK = WM_USER+76; +const EM_SETOPTIONS = WM_USER+77; +const EM_GETOPTIONS = WM_USER+78; +const EM_FINDTEXTEX = WM_USER+79; +const EM_GETWORDBREAKPROCEX = WM_USER+80; +const EM_SETWORDBREAKPROCEX = WM_USER+81; +/* RichEdit 2.0 messages */ +const EM_SETUNDOLIMIT = WM_USER+82; +const EM_REDO = WM_USER+84; +const EM_CANREDO = WM_USER+85; +const EM_GETUNDONAME = WM_USER+86; +const EM_GETREDONAME = WM_USER+87; +const EM_STOPGROUPTYPING = WM_USER+88; +const EM_SETTEXTMODE = WM_USER+89; +const EM_GETTEXTMODE = WM_USER+90; +const EM_AUTOURLDETECT = WM_USER+91; +const EM_GETAUTOURLDETECT = WM_USER + 92; +const EM_SETPALETTE = WM_USER + 93; +const EM_GETTEXTEX = WM_USER+94; +const EM_GETTEXTLENGTHEX = WM_USER+95; +const EM_SHOWSCROLLBAR = WM_USER+96; +const EM_SETTEXTEX = WM_USER + 97; +const EM_SETPUNCTUATION = WM_USER + 100; +const EM_GETPUNCTUATION = WM_USER + 101; +const EM_SETWORDWRAPMODE = WM_USER + 102; +const EM_GETWORDWRAPMODE = WM_USER + 103; +const EM_SETIMECOLOR = WM_USER + 104; +const EM_GETIMECOLOR = WM_USER + 105; +const EM_SETIMEOPTIONS = WM_USER + 106; +const EM_GETIMEOPTIONS = WM_USER + 107; +const EM_SETLANGOPTIONS = WM_USER+120; +const EM_GETLANGOPTIONS = WM_USER+121; +const EM_GETIMECOMPMODE = WM_USER+122; +const EM_FINDTEXTW = WM_USER + 123; +const EM_FINDTEXTEXW = WM_USER + 124; +const EM_RECONVERSION = WM_USER + 125; +const EM_SETBIDIOPTIONS = WM_USER + 200; +const EM_GETBIDIOPTIONS = WM_USER + 201; +const EM_SETTYPOGRAPHYOPTIONS = WM_USER+202; +const EM_GETTYPOGRAPHYOPTIONS = WM_USER+203; +const EM_SETEDITSTYLE = WM_USER + 204; +const EM_GETEDITSTYLE = WM_USER + 205; +const EM_GETSCROLLPOS = WM_USER+221; +const EM_SETSCROLLPOS = WM_USER+222; +const EM_SETFONTSIZE = WM_USER+223; +const EM_GETZOOM = WM_USER+224; +const EM_SETZOOM = WM_USER+225; + +const EN_MSGFILTER = 1792; +const EN_REQUESTRESIZE = 1793; +const EN_SELCHANGE = 1794; +const EN_DROPFILES = 1795; +const EN_PROTECTED = 1796; +const EN_CORRECTTEXT = 1797; +const EN_STOPNOUNDO = 1798; +const EN_IMECHANGE = 1799; +const EN_SAVECLIPBOARD = 1800; +const EN_OLEOPFAILED = 1801; +const EN_LINK = 1803; + +const ENM_NONE = 0; +const ENM_CHANGE = 1; +const ENM_UPDATE = 2; +const ENM_SCROLL = 4; +const ENM_SCROLLEVENTS = 8; +const ENM_DRAGDROPDONE = 16; +const ENM_KEYEVENTS = 65536; +const ENM_MOUSEEVENTS = 131072; +const ENM_REQUESTRESIZE = 262144; +const ENM_SELCHANGE = 524288; +const ENM_DROPFILES = 1048576; +const ENM_PROTECTED = 2097152; +const ENM_CORRECTTEXT = 4194304; +const ENM_IMECHANGE = 8388608; +const ENM_LANGCHANGE = 16777216; +const ENM_OBJECTPOSITIONS = 33554432; +const ENM_LINK = 67108864; + +const ECO_AUTOWORDSELECTION=1; +const ECO_AUTOVSCROLL=64; +const ECO_AUTOHSCROLL=128; +const ECO_NOHIDESEL=256; +const ECO_READONLY=2048; +const ECO_WANTRETURN=4096; +const ECO_SAVESEL=0x8000; +const ECO_SELECTIONBAR=0x1000000; +const ECO_VERTICAL=0x400000; + +enum { + ECOOP_SET = 1, + ECOOP_OR, + ECOOP_AND, + ECOOP_XOR +} + +const SCF_DEFAULT = 0; +const SCF_SELECTION = 1; +const SCF_WORD = 2; +const SCF_ALL = 4; +const SCF_USEUIRULES = 8; + +const TM_PLAINTEXT=1; +const TM_RICHTEXT=2; +const TM_SINGLELEVELUNDO=4; +const TM_MULTILEVELUNDO=8; +const TM_SINGLECODEPAGE=16; +const TM_MULTICODEPAGE=32; + +const GT_DEFAULT=0; +const GT_USECRLF=1; + +const yHeightCharPtsMost=1638; +const lDefaultTab=720; + +struct CHARFORMATA { + UINT cbSize = this.sizeof; + DWORD dwMask; + DWORD dwEffects; + LONG yHeight; + LONG yOffset; + COLORREF crTextColor; + BYTE bCharSet; + BYTE bPitchAndFamily; + char szFaceName[LF_FACESIZE]; +} +struct CHARFORMATW { + UINT cbSize = this.sizeof; + DWORD dwMask; + DWORD dwEffects; + LONG yHeight; + LONG yOffset; + COLORREF crTextColor; + BYTE bCharSet; + BYTE bPitchAndFamily; + WCHAR szFaceName[LF_FACESIZE]; +} + +struct CHARFORMAT2A { + UINT cbSize = this.sizeof; + DWORD dwMask; + DWORD dwEffects; + LONG yHeight; + LONG yOffset; + COLORREF crTextColor; + BYTE bCharSet; + BYTE bPitchAndFamily; + char szFaceName[LF_FACESIZE]; + WORD wWeight; + SHORT sSpacing; + COLORREF crBackColor; + LCID lcid; + DWORD dwReserved; + SHORT sStyle; + WORD wKerning; + BYTE bUnderlineType; + BYTE bAnimation; + BYTE bRevAuthor; +} + +struct CHARFORMAT2W { + UINT cbSize = this.sizeof; + DWORD dwMask; + DWORD dwEffects; + LONG yHeight; + LONG yOffset; + COLORREF crTextColor; + BYTE bCharSet; + BYTE bPitchAndFamily; + WCHAR szFaceName[LF_FACESIZE]; + WORD wWeight; + SHORT sSpacing; + COLORREF crBackColor; + LCID lcid; + DWORD dwReserved; + SHORT sStyle; + WORD wKerning; + BYTE bUnderlineType; + BYTE bAnimation; + BYTE bRevAuthor; +} + +struct CHARRANGE { + LONG cpMin; + LONG cpMax; +} + +struct COMPCOLOR { + COLORREF crText; + COLORREF crBackground; + DWORD dwEffects; +} + +extern (Windows) { + alias DWORD function(DWORD,PBYTE,LONG,LONG*) EDITSTREAMCALLBACK; +} + +struct EDITSTREAM { + DWORD dwCookie; + DWORD dwError; + EDITSTREAMCALLBACK pfnCallback; +} + +struct ENCORRECTTEXT { + NMHDR nmhdr; + CHARRANGE chrg; + WORD seltyp; +} + +struct ENDROPFILES { + NMHDR nmhdr; + HANDLE hDrop; + LONG cp; + BOOL fProtected; +} + +struct ENLINK { + NMHDR nmhdr; + UINT msg; + WPARAM wParam; + LPARAM lParam; + CHARRANGE chrg; +} + +struct ENOLEOPFAILED { + NMHDR nmhdr; + LONG iob; + LONG lOper; + HRESULT hr; +} + +struct ENPROTECTED { + NMHDR nmhdr; + UINT msg; + WPARAM wParam; + LPARAM lParam; + CHARRANGE chrg; +} +alias ENPROTECTED* LPENPROTECTED; + +struct ENSAVECLIPBOARD { + NMHDR nmhdr; + LONG cObjectCount; + LONG cch; +} + +struct FINDTEXTA { + CHARRANGE chrg; + LPSTR lpstrText; +} + +struct FINDTEXTW { + CHARRANGE chrg; + LPWSTR lpstrText; +} + +struct FINDTEXTEXA { + CHARRANGE chrg; + LPSTR lpstrText; + CHARRANGE chrgText; +} + +struct FINDTEXTEXW { + CHARRANGE chrg; + LPWSTR lpstrText; + CHARRANGE chrgText; +} + +struct FORMATRANGE { + HDC hdc; + HDC hdcTarget; + RECT rc; + RECT rcPage; + CHARRANGE chrg; +} + +struct MSGFILTER { + NMHDR nmhdr; + UINT msg; + WPARAM wParam; + LPARAM lParam; +} + +struct PARAFORMAT { + UINT cbSize = this.sizeof; + DWORD dwMask; + WORD wNumbering; + WORD wReserved; + LONG dxStartIndent; + LONG dxRightIndent; + LONG dxOffset; + WORD wAlignment; + SHORT cTabCount; + LONG rgxTabs[MAX_TAB_STOPS]; +} + +struct PARAFORMAT2 { + UINT cbSize = this.sizeof; + DWORD dwMask; + WORD wNumbering; + WORD wEffects; + LONG dxStartIndent; + LONG dxRightIndent; + LONG dxOffset; + WORD wAlignment; + SHORT cTabCount; + LONG rgxTabs[MAX_TAB_STOPS]; + LONG dySpaceBefore; + LONG dySpaceAfter; + LONG dyLineSpacing; + SHORT sStype; + BYTE bLineSpacingRule; + BYTE bOutlineLevel; + WORD wShadingWeight; + WORD wShadingStyle; + WORD wNumberingStart; + WORD wNumberingStyle; + WORD wNumberingTab; + WORD wBorderSpace; + WORD wBorderWidth; + WORD wBorders; +} + +struct SELCHANGE { + NMHDR nmhdr; + CHARRANGE chrg; + WORD seltyp; +} + +struct TEXTRANGEA { + CHARRANGE chrg; + LPSTR lpstrText; +} + +struct TEXTRANGEW { + CHARRANGE chrg; + LPWSTR lpstrText; +} + +struct REQRESIZE { + NMHDR nmhdr; + RECT rc; +} + +struct REPASTESPECIAL { + DWORD dwAspect; + DWORD dwParam; +} + +struct PUNCTUATION { + UINT iSize; + LPSTR szPunctuation; +} + +struct GETTEXTEX { + DWORD cb; + DWORD flags; + UINT codepage; + LPCSTR lpDefaultChar; + LPBOOL lpUsedDefaultChar; +} + +extern (Windows) { +alias LONG function(char*,LONG,BYTE,INT) EDITWORDBREAKPROCEX; +} + +/* Defines for EM_SETTYPOGRAPHYOPTIONS */ +const TO_ADVANCEDTYPOGRAPHY = 1; +const TO_SIMPLELINEBREAK = 2; + +/* Defines for GETTEXTLENGTHEX */ +const GTL_DEFAULT = 0; +const GTL_USECRLF = 1; +const GTL_PRECISE = 2; +const GTL_CLOSE = 4; +const GTL_NUMCHARS = 8; +const GTL_NUMBYTES = 16; + +struct GETTEXTLENGTHEX { + DWORD flags; + UINT codepage; +} + +version(Unicode) { + alias CHARFORMATW CHARFORMAT; + alias CHARFORMAT2W CHARFORMAT2; + alias FINDTEXTW FINDTEXT; + alias FINDTEXTEXW FINDTEXTEX; + alias TEXTRANGEW TEXTRANGE; +} else { + alias CHARFORMATA CHARFORMAT; + alias CHARFORMAT2A CHARFORMAT2; + alias FINDTEXTA FINDTEXT; + alias FINDTEXTEXA FINDTEXTEX; + alias TEXTRANGEA TEXTRANGE; +} ADDED src/win32/richole.d Index: src/win32/richole.d ================================================================== --- src/win32/richole.d +++ src/win32/richole.d @@ -0,0 +1,101 @@ +/***********************************************************************\ +* richole.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.richole; + +private import win32.objfwd, win32.objidl, win32.ole2, win32.unknwn, + win32.windef; +private import win32.richedit; // for CHARRANGE + +align(4): + +const ULONG + REO_GETOBJ_NO_INTERFACES = 0, + REO_GETOBJ_POLEOBJ = 1, + REO_GETOBJ_PSTG = 2, + REO_GETOBJ_POLESITE = 4, + REO_GETOBJ_ALL_INTERFACES = 7, + REO_CP_SELECTION = -1, + REO_IOB_SELECTION = -1, + REO_IOB_USE_CP = -2, + REO_NULL = 0, + REO_READWRITEMASK = 0x3F, + REO_DONTNEEDPALETTE = 32, + REO_BLANK = 16, + REO_DYNAMICSIZE = 8, + REO_INVERTEDSELECT = 4, + REO_BELOWBASELINE = 2, + REO_RESIZABLE = 1, + REO_LINK = 0x80000000, + REO_STATIC = 0x40000000, + REO_SELECTED = 0x08000000, + REO_OPEN = 0x4000000, + REO_INPLACEACTIVE = 0x2000000, + REO_HILITED = 0x1000000, + REO_LINKAVAILABLE = 0x800000, + REO_GETMETAFILE = 0x400000; + +enum { + RECO_PASTE = 0, + RECO_DROP, + RECO_COPY, + RECO_CUT, + RECO_DRAG // = 4 +} + +extern (C) extern const GUID + IID_IRichEditOle, + IID_IRichEditOleCallback; + +struct REOBJECT { + DWORD cbStruct = REOBJECT.sizeof; + LONG cp; + CLSID clsid; + LPOLEOBJECT poleobj; + LPSTORAGE pstg; + LPOLECLIENTSITE polesite; + SIZEL sizel; + DWORD dvaspect; + DWORD dwFlags; + DWORD dwUser; +} + +interface IRichEditOle : IUnknown { + HRESULT GetClientSite(LPOLECLIENTSITE*); + LONG GetObjectCount(); + LONG GetLinkCount(); + HRESULT GetObject(LONG, REOBJECT*, DWORD); + HRESULT InsertObject(REOBJECT*); + HRESULT ConvertObject(LONG, REFCLSID, LPCSTR); + HRESULT ActivateAs(REFCLSID, REFCLSID); + HRESULT SetHostNames(LPCSTR, LPCSTR); + HRESULT SetLinkAvailable(LONG, BOOL); + HRESULT SetDvaspect(LONG, DWORD); + HRESULT HandsOffStorage(LONG); + HRESULT SaveCompleted(LONG, LPSTORAGE); + HRESULT InPlaceDeactivate(); + HRESULT ContextSensitiveHelp(BOOL); + HRESULT GetClipboardData(CHARRANGE*, DWORD, LPDATAOBJECT*); + HRESULT ImportDataObject(LPDATAOBJECT, CLIPFORMAT, HGLOBAL); +}; +alias IRichEditOle* LPRICHEDITOLE; + +interface IRichEditOleCallback : IUnknown { + HRESULT GetNewStorage(LPSTORAGE*); + HRESULT GetInPlaceContext(LPOLEINPLACEFRAME*, LPOLEINPLACEUIWINDOW*, LPOLEINPLACEFRAMEINFO); + HRESULT ShowContainerUI(BOOL); + HRESULT QueryInsertObject(LPCLSID, LPSTORAGE, LONG); + HRESULT DeleteObject(LPOLEOBJECT); + HRESULT QueryAcceptData(LPDATAOBJECT, CLIPFORMAT*, DWORD, BOOL, HGLOBAL); + HRESULT ContextSensitiveHelp(BOOL); + HRESULT GetClipboardData(CHARRANGE*, DWORD, LPDATAOBJECT*); + HRESULT GetDragDropEffect(BOOL, DWORD, PDWORD); + HRESULT GetContextMenu(WORD, LPOLEOBJECT, CHARRANGE*, HMENU*); +}; +alias IRichEditOleCallback* LPRICHEDITOLECALLBACK; ADDED src/win32/rpc.d Index: src/win32/rpc.d ================================================================== --- src/win32/rpc.d +++ src/win32/rpc.d @@ -0,0 +1,31 @@ +/***********************************************************************\ +* rpc.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.rpc; + +/* Moved to rpcdecp (duplicate definition). + typedef void *I_RPC_HANDLE; + alias long RPC_STATUS; + // Moved to rpcdce: + RpcImpersonateClient + RpcRevertToSelf +*/ + +public import win32.unknwn; +public import win32.rpcdce; // also pulls in rpcdcep +public import win32.rpcnsi; +public import win32.rpcnterr; +public import win32.winerror; + +alias MIDL_user_allocate midl_user_allocate; +alias MIDL_user_free midl_user_free; + +extern (Windows) { + int I_RpcMapWin32Status(RPC_STATUS); +} ADDED src/win32/rpcdce.d Index: src/win32/rpcdce.d ================================================================== --- src/win32/rpcdce.d +++ src/win32/rpcdce.d @@ -0,0 +1,449 @@ +/***********************************************************************\ +* rpcdce.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.rpcdce; +pragma(lib, "Rpcrt4.lib"); + +// TODO: I think MinGW got this wrong. RPC_UNICODE_SUPPORTED should be +// replaced aliases for version(Unicode) + +public import win32.rpcdcep; +private import win32.basetyps, win32.w32api, win32.windef; + +// FIXME: clean up Windows version support + +alias UUID uuid_t; +alias UUID_VECTOR uuid_vector_t; +alias void RPC_MGR_EPV; + +// for RpcMgmtSetComTimeout() +enum : uint { + RPC_C_BINDING_MIN_TIMEOUT = 0, + RPC_C_BINDING_DEFAULT_TIMEOUT = 5, + RPC_C_BINDING_MAX_TIMEOUT = 9, + RPC_C_BINDING_INFINITE_TIMEOUT = 10 +} + +const RPC_C_CANCEL_INFINITE_TIMEOUT= -1; +const RPC_C_LISTEN_MAX_CALLS_DEFAULT=1234; +const RPC_C_PROTSEQ_MAX_REQS_DEFAULT=10; +const RPC_C_BIND_TO_ALL_NICS=1; +const RPC_C_USE_INTERNET_PORT=1; +const RPC_C_USE_INTRANET_PORT=2; + +// for RPC_STATS_VECTOR, used by RpcMgmyInqStats +enum : uint { + RPC_C_STATS_CALLS_IN = 0, + RPC_C_STATS_CALLS_OUT, + RPC_C_STATS_PKTS_IN, + RPC_C_STATS_PKTS_OUT +} + +const RPC_IF_AUTOLISTEN=0x0001; +const RPC_IF_OLE=2; +const RPC_C_MGMT_INQ_IF_IDS=0; +const RPC_C_MGMT_INQ_PRINC_NAME=1; +const RPC_C_MGMT_INQ_STATS=2; +const RPC_C_MGMT_IS_SERVER_LISTEN=3; +const RPC_C_MGMT_STOP_SERVER_LISTEN=4; + +// Inquiry Type for RpcMgmtEpEltInqBegin() +enum : uint { + RPC_C_EP_ALL_ELTS = 0, + RPC_C_EP_MATCH_BY_IF, + RPC_C_EP_MATCH_BY_OBJ, + RPC_C_EP_MATCH_BY_BOTH +} + +// for RpcMgmtEpEltInqNext() +enum : uint { + RPC_C_VERS_ALL = 1, + RPC_C_VERS_COMPATIBLE, + RPC_C_VERS_EXACT, + RPC_C_VERS_MAJOR_ONLY, + RPC_C_VERS_UPTO +} + +const DCE_C_ERROR_STRING_LEN=256; +const RPC_C_PARM_MAX_PACKET_LENGTH=1; +const RPC_C_PARM_BUFFER_LENGTH=2; +const RPC_C_AUTHN_LEVEL_DEFAULT=0; +const RPC_C_AUTHN_LEVEL_NONE=1; +const RPC_C_AUTHN_LEVEL_CONNECT=2; +const RPC_C_AUTHN_LEVEL_CALL=3; +const RPC_C_AUTHN_LEVEL_PKT=4; +const RPC_C_AUTHN_LEVEL_PKT_INTEGRITY=5; +const RPC_C_AUTHN_LEVEL_PKT_PRIVACY=6; +const RPC_C_IMP_LEVEL_ANONYMOUS=1; +const RPC_C_IMP_LEVEL_IDENTIFY=2; +const RPC_C_IMP_LEVEL_IMPERSONATE=3; +const RPC_C_IMP_LEVEL_DELEGATE=4; +const RPC_C_QOS_IDENTITY_STATIC=0; +const RPC_C_QOS_IDENTITY_DYNAMIC=1; +const RPC_C_QOS_CAPABILITIES_DEFAULT=0; +const RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH=1; + +// These enums were buggy in MinGW ! +const RPC_C_PROTECT_LEVEL_DEFAULT = RPC_C_AUTHN_LEVEL_DEFAULT; +const RPC_C_PROTECT_LEVEL_NONE = RPC_C_AUTHN_LEVEL_NONE; +const RPC_C_PROTECT_LEVEL_CONNECT = RPC_C_AUTHN_LEVEL_CONNECT; +const RPC_C_PROTECT_LEVEL_CALL = RPC_C_AUTHN_LEVEL_CALL; +const RPC_C_PROTECT_LEVEL_PKT = RPC_C_AUTHN_LEVEL_PKT; +const RPC_C_PROTECT_LEVEL_PKT_INTEGRITY = RPC_C_AUTHN_LEVEL_PKT_INTEGRITY; +const RPC_C_PROTECT_LEVEL_PKT_PRIVACY = RPC_C_AUTHN_LEVEL_PKT_PRIVACY; + +const RPC_C_AUTHN_NONE=0; +const RPC_C_AUTHN_DCE_PRIVATE=1; +const RPC_C_AUTHN_DCE_PUBLIC=2; +const RPC_C_AUTHN_DEC_PUBLIC=4; +const RPC_C_AUTHN_WINNT=10; +const RPC_C_AUTHN_DEFAULT=0xFFFFFFFF; +//const RPC_C_SECURITY_QOS_VERSION=L; // FIXME(MinGW): This is nonsense! +const SEC_WINNT_AUTH_IDENTITY_ANSI=0x1; +const SEC_WINNT_AUTH_IDENTITY_UNICODE=0x2; +const RPC_C_AUTHZ_NONE=0; +const RPC_C_AUTHZ_NAME=1; +const RPC_C_AUTHZ_DCE=2; +const RPC_C_AUTHZ_DEFAULT=0xFFFFFFFF; + +alias I_RPC_HANDLE RPC_BINDING_HANDLE; +alias RPC_BINDING_HANDLE handle_t; + +struct RPC_BINDING_VECTOR { + uint Count; + RPC_BINDING_HANDLE BindingH[1]; +} + +alias RPC_BINDING_HANDLE rpc_binding_handle_t; +alias RPC_BINDING_VECTOR rpc_binding_vector_t; + + +struct UUID_VECTOR { + uint Count; + UUID* Uuid[1]; +} + +alias void* RPC_IF_HANDLE; + +struct RPC_IF_ID { + UUID Uuid; + ushort VersMajor; + ushort VersMinor; +} + +struct RPC_POLICY { + uint Length; + uint EndpointFlags; + uint NICFlags; +} +alias RPC_POLICY* PRPC_POLICY; + +extern (Windows) { + alias void function(UUID*, UUID*, RPC_STATUS*) RPC_OBJECT_INQ_FN; + alias RPC_STATUS function(RPC_IF_HANDLE, void*) RPC_IF_CALLBACK_FN; +} + +struct RPC_STATS_VECTOR { + uint Count; + uint[1] Stats; +} + +struct RPC_IF_ID_VECTOR { + uint Count; + RPC_IF_ID*[1] IfId; +} +alias HANDLE RPC_AUTH_IDENTITY_HANDLE, RPC_AUTHZ_HANDLE; + +struct RPC_SECURITY_QOS { + uint Version; + uint Capabilities; + uint IdentityTracking; + uint ImpersonationType; +} +alias RPC_SECURITY_QOS* PRPC_SECURITY_QOS; + +struct SEC_WINNT_AUTH_IDENTITY_W { + ushort* User; + uint UserLength; + ushort* Domain; + uint DomainLength; + ushort* Password; + uint PasswordLength; + uint Flags; +} +alias SEC_WINNT_AUTH_IDENTITY_W* PSEC_WINNT_AUTH_IDENTITY_W; + +struct SEC_WINNT_AUTH_IDENTITY_A { + ubyte* User; + uint UserLength; + ubyte* Domain; + uint DomainLength; + ubyte* Password; + uint PasswordLength; + uint Flags; +} +alias SEC_WINNT_AUTH_IDENTITY_A* PSEC_WINNT_AUTH_IDENTITY_A; + +struct RPC_CLIENT_INFORMATION1 { + ubyte* UserName; + ubyte* ComputerName; + ushort Privilege; + uint AuthFlags; +} +alias RPC_CLIENT_INFORMATION1* PRPC_CLIENT_INFORMATION1; +alias I_RPC_HANDLE* RPC_EP_INQ_HANDLE; +extern (Windows) { + alias int function(RPC_BINDING_HANDLE, uint, RPC_STATUS*) RPC_MGMT_AUTHORIZATION_FN; +} + +static if(_WIN32_WINNT_ONLY) { + + struct RPC_PROTSEQ_VECTORA { + uint Count; + ubyte*[1] Protseq; + } + + struct RPC_PROTSEQ_VECTORW { + uint Count; + ushort*[1] Protseq; + } + + extern (Windows) { + RPC_STATUS RpcBindingFromStringBindingA(char*, RPC_BINDING_HANDLE*); + RPC_STATUS RpcBindingFromStringBindingW(wchar*, RPC_BINDING_HANDLE*); + RPC_STATUS RpcBindingToStringBindingA(RPC_BINDING_HANDLE, char**); + RPC_STATUS RpcBindingToStringBindingW(RPC_BINDING_HANDLE, wchar**); + RPC_STATUS RpcStringBindingComposeA(char*, char*, char*, char*, char*, char**); + RPC_STATUS RpcStringBindingComposeW(wchar*, wchar*, wchar*, wchar*, wchar*, wchar**); + RPC_STATUS RpcStringBindingParseA(char*, char**, char**, char**, char**, char**); + RPC_STATUS RpcStringBindingParseW(wchar*, wchar**, wchar**, wchar**, wchar**, wchar**); + RPC_STATUS RpcStringFreeA(char**); + RPC_STATUS RpcStringFreeW(wchar**); + RPC_STATUS RpcNetworkIsProtseqValidA(char*); + RPC_STATUS RpcNetworkIsProtseqValidW(wchar*); + RPC_STATUS RpcNetworkInqProtseqsA(RPC_PROTSEQ_VECTORA**); + RPC_STATUS RpcNetworkInqProtseqsW(RPC_PROTSEQ_VECTORW**); + RPC_STATUS RpcProtseqVectorFreeA(RPC_PROTSEQ_VECTORA**); + RPC_STATUS RpcProtseqVectorFreeW(RPC_PROTSEQ_VECTORW**); + RPC_STATUS RpcServerUseProtseqA(char*, uint, void*); + RPC_STATUS RpcServerUseProtseqW(wchar*, uint, void*); + RPC_STATUS RpcServerUseProtseqExA(char*, uint MaxCalls, void*, PRPC_POLICY); + RPC_STATUS RpcServerUseProtseqExW(wchar*, uint, void*, PRPC_POLICY); + RPC_STATUS RpcServerUseProtseqEpA(char*, uint, char*, void*); + RPC_STATUS RpcServerUseProtseqEpExA(char*, uint, char*, void*, PRPC_POLICY); + RPC_STATUS RpcServerUseProtseqEpW(wchar*, uint, wchar*, void*); + RPC_STATUS RpcServerUseProtseqEpExW(wchar*, uint, wchar*, void*, PRPC_POLICY); + RPC_STATUS RpcServerUseProtseqIfA(char*, uint, RPC_IF_HANDLE, void*); + RPC_STATUS RpcServerUseProtseqIfExA(char*, uint, RPC_IF_HANDLE, void*, PRPC_POLICY); + RPC_STATUS RpcServerUseProtseqIfW(wchar*, uint, RPC_IF_HANDLE, void*); + RPC_STATUS RpcServerUseProtseqIfExW(wchar*, uint, RPC_IF_HANDLE, void*, PRPC_POLICY); + RPC_STATUS RpcMgmtInqServerPrincNameA(RPC_BINDING_HANDLE, uint, char**); + RPC_STATUS RpcMgmtInqServerPrincNameW(RPC_BINDING_HANDLE, uint, wchar**); + RPC_STATUS RpcServerInqDefaultPrincNameA(uint, char**); + RPC_STATUS RpcServerInqDefaultPrincNameW(uint, wchar**); + RPC_STATUS RpcNsBindingInqEntryNameA(RPC_BINDING_HANDLE, uint, char**); + RPC_STATUS RpcNsBindingInqEntryNameW(RPC_BINDING_HANDLE, uint, wchar**); + RPC_STATUS RpcBindingInqAuthClientA(RPC_BINDING_HANDLE, RPC_AUTHZ_HANDLE*, char**, uint*, uint*, uint*); + RPC_STATUS RpcBindingInqAuthClientW(RPC_BINDING_HANDLE, RPC_AUTHZ_HANDLE*, wchar**, uint*, uint*, uint*); + RPC_STATUS RpcBindingInqAuthInfoA(RPC_BINDING_HANDLE, char**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*); + RPC_STATUS RpcBindingInqAuthInfoW(RPC_BINDING_HANDLE, wchar**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*); + RPC_STATUS RpcBindingSetAuthInfoA(RPC_BINDING_HANDLE, char*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint); + RPC_STATUS RpcBindingSetAuthInfoExA(RPC_BINDING_HANDLE, char*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint, RPC_SECURITY_QOS*); + RPC_STATUS RpcBindingSetAuthInfoW(RPC_BINDING_HANDLE, wchar*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint); + RPC_STATUS RpcBindingSetAuthInfoExW(RPC_BINDING_HANDLE, wchar*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint, RPC_SECURITY_QOS*); + RPC_STATUS RpcBindingInqAuthInfoExA(RPC_BINDING_HANDLE, char**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*, uint, RPC_SECURITY_QOS*); + RPC_STATUS RpcBindingInqAuthInfoExW(RPC_BINDING_HANDLE, wchar**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*, uint, RPC_SECURITY_QOS*); + alias void function(void*, wchar*, uint, void**, RPC_STATUS*) RPC_AUTH_KEY_RETRIEVAL_FN; + RPC_STATUS RpcServerRegisterAuthInfoA(char*, uint, RPC_AUTH_KEY_RETRIEVAL_FN, void*); + RPC_STATUS RpcServerRegisterAuthInfoW(wchar*, uint, RPC_AUTH_KEY_RETRIEVAL_FN, void*); + RPC_STATUS UuidToStringA(UUID*, char**); + RPC_STATUS UuidFromStringA(char*, UUID*); + RPC_STATUS UuidToStringW(UUID*, wchar**); + RPC_STATUS UuidFromStringW(wchar*, UUID*); + RPC_STATUS RpcEpRegisterNoReplaceA(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, char*); + RPC_STATUS RpcEpRegisterNoReplaceW(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, wchar*); + RPC_STATUS RpcEpRegisterA(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, char*); + RPC_STATUS RpcEpRegisterW(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, wchar*); + RPC_STATUS DceErrorInqTextA(RPC_STATUS, char*); + RPC_STATUS DceErrorInqTextW(RPC_STATUS, wchar*); + RPC_STATUS RpcMgmtEpEltInqNextA(RPC_EP_INQ_HANDLE, RPC_IF_ID*, RPC_BINDING_HANDLE*, UUID*, char**); + RPC_STATUS RpcMgmtEpEltInqNextW(RPC_EP_INQ_HANDLE, RPC_IF_ID*, RPC_BINDING_HANDLE*, UUID*, wchar**); + + // MinGW erroneously had these in rpc.h + RPC_STATUS RpcImpersonateClient(RPC_BINDING_HANDLE); + RPC_STATUS RpcRevertToSelf(); + } + + version(Unicode) { + alias RPC_PROTSEQ_VECTORW RPC_PROTSEQ_VECTOR; + alias SEC_WINNT_AUTH_IDENTITY_W SEC_WINNT_AUTH_IDENTITY; + alias PSEC_WINNT_AUTH_IDENTITY_W PSEC_WINNT_AUTH_IDENTITY; + alias RpcMgmtEpEltInqNextW RpcMgmtEpEltInqNext; + alias RpcBindingFromStringBindingW RpcBindingFromStringBinding; + alias RpcBindingToStringBindingW RpcBindingToStringBinding; + alias RpcStringBindingComposeW RpcStringBindingCompose; + alias RpcStringBindingParseW RpcStringBindingParse; + alias RpcStringFreeW RpcStringFree; + alias RpcNetworkIsProtseqValidW RpcNetworkIsProtseqValid; + alias RpcNetworkInqProtseqsW RpcNetworkInqProtseqs; + alias RpcProtseqVectorFreeW RpcProtseqVectorFree; + alias RpcServerUseProtseqW RpcServerUseProtseq; + alias RpcServerUseProtseqExW RpcServerUseProtseqEx; + alias RpcServerUseProtseqEpW RpcServerUseProtseqEp; + alias RpcServerUseProtseqEpExW RpcServerUseProtseqEpEx; + alias RpcServerUseProtseqIfW RpcServerUseProtseqIf; + alias RpcServerUseProtseqIfExW RpcServerUseProtseqIfEx; + alias RpcMgmtInqServerPrincNameW RpcMgmtInqServerPrincName; + alias RpcServerInqDefaultPrincNameW RpcServerInqDefaultPrincName; + alias RpcNsBindingInqEntryNameW RpcNsBindingInqEntryName; + alias RpcBindingInqAuthClientW RpcBindingInqAuthClient; + alias RpcBindingInqAuthInfoW RpcBindingInqAuthInfo; + alias RpcBindingSetAuthInfoW RpcBindingSetAuthInfo; + alias RpcServerRegisterAuthInfoW RpcServerRegisterAuthInfo; + alias RpcBindingInqAuthInfoExW RpcBindingInqAuthInfoEx; + alias RpcBindingSetAuthInfoExW RpcBindingSetAuthInfoEx; + alias UuidFromStringW UuidFromString; + alias UuidToStringW UuidToString; + alias RpcEpRegisterNoReplaceW RpcEpRegisterNoReplace; + alias RpcEpRegisterW RpcEpRegister; + alias DceErrorInqTextW DceErrorInqText; + } else { // Ansi + alias RPC_PROTSEQ_VECTORA RPC_PROTSEQ_VECTOR; + alias SEC_WINNT_AUTH_IDENTITY_A SEC_WINNT_AUTH_IDENTITY; + alias PSEC_WINNT_AUTH_IDENTITY_A PSEC_WINNT_AUTH_IDENTITY; + alias RpcMgmtEpEltInqNextA RpcMgmtEpEltInqNext; + alias RpcBindingFromStringBindingA RpcBindingFromStringBinding; + alias RpcBindingToStringBindingA RpcBindingToStringBinding; + alias RpcStringBindingComposeA RpcStringBindingCompose; + alias RpcStringBindingParseA RpcStringBindingParse; + alias RpcStringFreeA RpcStringFree; + alias RpcNetworkIsProtseqValidA RpcNetworkIsProtseqValid; + alias RpcNetworkInqProtseqsA RpcNetworkInqProtseqs; + alias RpcProtseqVectorFreeA RpcProtseqVectorFree; + alias RpcServerUseProtseqA RpcServerUseProtseq; + alias RpcServerUseProtseqExA RpcServerUseProtseqEx; + alias RpcServerUseProtseqEpA RpcServerUseProtseqEp; + alias RpcServerUseProtseqEpExA RpcServerUseProtseqEpEx; + alias RpcServerUseProtseqIfA RpcServerUseProtseqIf; + alias RpcServerUseProtseqIfExA RpcServerUseProtseqIfEx; + alias RpcMgmtInqServerPrincNameA RpcMgmtInqServerPrincName; + alias RpcServerInqDefaultPrincNameA RpcServerInqDefaultPrincName; + alias RpcNsBindingInqEntryNameA RpcNsBindingInqEntryName; + alias RpcBindingInqAuthClientA RpcBindingInqAuthClient; + alias RpcBindingInqAuthInfoA RpcBindingInqAuthInfo; + alias RpcBindingSetAuthInfoA RpcBindingSetAuthInfo; + alias RpcServerRegisterAuthInfoA RpcServerRegisterAuthInfo; + alias RpcBindingInqAuthInfoExA RpcBindingInqAuthInfoEx; + alias RpcBindingSetAuthInfoExA RpcBindingSetAuthInfoEx; + alias UuidFromStringA UuidFromString; + alias UuidToStringA UuidToString; + alias RpcEpRegisterNoReplaceA RpcEpRegisterNoReplace; + alias RpcEpRegisterA RpcEpRegister; + alias DceErrorInqTextA DceErrorInqText; + } //#endif // UNICODE + +} else { // _WIN32_WINNT_ONLY + + struct RPC_PROTSEQ_VECTOR { + uint Count; + ubyte* Protseq[1]; + } + // versions without Unicode. + RPC_STATUS RpcBindingFromStringBinding(char*, RPC_BINDING_HANDLE*); + RPC_STATUS RpcBindingToStringBinding(RPC_BINDING_HANDLE, char**); + RPC_STATUS RpcStringBindingCompose(char*, char*, char*, char*, char*, char**); + RPC_STATUS RpcStringBindingParse(char*, char**, char**, char**, char**, char**); + RPC_STATUS RpcStringFree(char**); + RPC_STATUS RpcNetworkIsProtseqValid(char*); + RPC_STATUS RpcNetworkInqProtseqs(RPC_PROTSEQ_VECTOR**); + RPC_STATUS RpcServerInqBindings(RPC_BINDING_VECTOR**); + RPC_STATUS RpcServerUseProtseq(char*, uint, void*); + RPC_STATUS RpcServerUseProtseqEx(char*, uint, void*, PRPC_POLICY); + RPC_STATUS RpcServerUseProtseqEp(char*, uint, char*, void*); + RPC_STATUS RpcServerUseProtseqEpEx(char*, uint, char*, void*, PRPC_POLICY); + RPC_STATUS RpcServerUseProtseqIf(char*, uint, RPC_IF_HANDLE, void*); + RPC_STATUS RpcServerUseProtseqIfEx(char*, uint, RPC_IF_HANDLE, void*, PRPC_POLICY); + RPC_STATUS RpcMgmtInqServerPrincName(RPC_BINDING_HANDLE, uint, char**); + RPC_STATUS RpcServerInqDefaultPrincName(uint, char**); + RPC_STATUS RpcNsBindingInqEntryName(RPC_BINDING_HANDLE, uint, char**); + RPC_STATUS RpcBindingInqAuthClient(RPC_BINDING_HANDLE, RPC_AUTHZ_HANDLE*, char**, uint*, uint*, uint*); + RPC_STATUS RpcBindingInqAuthInfo(RPC_BINDING_HANDLE, char**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*); + RPC_STATUS RpcBindingSetAuthInfo(RPC_BINDING_HANDLE, char*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint); + alias void function(void*, char*, uint, void**, RPC_STATUS*) RPC_AUTH_KEY_RETRIEVAL_FN; + RPC_STATUS RpcServerRegisterAuthInfo(char*, uint, RPC_AUTH_KEY_RETRIEVAL_FN, void*); + RPC_STATUS UuidToString(UUID*, char**); + RPC_STATUS UuidFromString(char*, UUID*); + RPC_STATUS RpcEpRegisterNoReplace(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, char*); + RPC_STATUS RpcEpRegister(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, char*); + RPC_STATUS DceErrorInqText(RPC_STATUS, char*); + RPC_STATUS RpcMgmtEpEltInqNext(RPC_EP_INQ_HANDLE, RPC_IF_ID*, RPC_BINDING_HANDLE*, char**); +}// _WIN32_WINNT_ONLY + + +RPC_STATUS RpcBindingCopy(RPC_BINDING_HANDLE, RPC_BINDING_HANDLE*); +RPC_STATUS RpcBindingFree(RPC_BINDING_HANDLE*); +RPC_STATUS RpcBindingInqObject(RPC_BINDING_HANDLE, UUID*); +RPC_STATUS RpcBindingReset(RPC_BINDING_HANDLE); +RPC_STATUS RpcBindingSetObject(RPC_BINDING_HANDLE, UUID*); +RPC_STATUS RpcMgmtInqDefaultProtectLevel(uint, uint*); +RPC_STATUS RpcBindingVectorFree(RPC_BINDING_VECTOR**); +RPC_STATUS RpcIfInqId(RPC_IF_HANDLE, RPC_IF_ID*); +RPC_STATUS RpcMgmtInqComTimeout(RPC_BINDING_HANDLE, uint*); +RPC_STATUS RpcMgmtSetComTimeout(RPC_BINDING_HANDLE, uint); +RPC_STATUS RpcMgmtSetCancelTimeout(int Timeout); +RPC_STATUS RpcObjectInqType(UUID*, UUID*); +RPC_STATUS RpcObjectSetInqFn(RPC_OBJECT_INQ_FN*); +RPC_STATUS RpcObjectSetType(UUID*, UUID*); +RPC_STATUS RpcProtseqVectorFree(RPC_PROTSEQ_VECTOR**); +RPC_STATUS RpcServerInqIf(RPC_IF_HANDLE, UUID*, RPC_MGR_EPV**); +RPC_STATUS RpcServerListen(uint, uint, uint); +RPC_STATUS RpcServerRegisterIf(RPC_IF_HANDLE, UUID*, RPC_MGR_EPV*); +RPC_STATUS RpcServerRegisterIfEx(RPC_IF_HANDLE, UUID*, RPC_MGR_EPV*, uint, uint, RPC_IF_CALLBACK_FN*); +RPC_STATUS RpcServerRegisterIf2(RPC_IF_HANDLE, UUID*, RPC_MGR_EPV*, uint, uint, uint, RPC_IF_CALLBACK_FN*); +RPC_STATUS RpcServerUnregisterIf(RPC_IF_HANDLE, UUID*, uint); +RPC_STATUS RpcServerUseAllProtseqs(uint, void*); +RPC_STATUS RpcServerUseAllProtseqsEx(uint, void*, PRPC_POLICY); +RPC_STATUS RpcServerUseAllProtseqsIf(uint, RPC_IF_HANDLE, void*); +RPC_STATUS RpcServerUseAllProtseqsIfEx(uint, RPC_IF_HANDLE, void*, PRPC_POLICY); +RPC_STATUS RpcMgmtStatsVectorFree(RPC_STATS_VECTOR**); +RPC_STATUS RpcMgmtInqStats(RPC_BINDING_HANDLE, RPC_STATS_VECTOR**); +RPC_STATUS RpcMgmtIsServerListening(RPC_BINDING_HANDLE); +RPC_STATUS RpcMgmtStopServerListening(RPC_BINDING_HANDLE); +RPC_STATUS RpcMgmtWaitServerListen(); +RPC_STATUS RpcMgmtSetServerStackSize(uint); +void RpcSsDontSerializeContext(); +RPC_STATUS RpcMgmtEnableIdleCleanup(); +RPC_STATUS RpcMgmtInqIfIds(RPC_BINDING_HANDLE, RPC_IF_ID_VECTOR**); +RPC_STATUS RpcIfIdVectorFree(RPC_IF_ID_VECTOR**); +RPC_STATUS RpcEpResolveBinding(RPC_BINDING_HANDLE, RPC_IF_HANDLE); +RPC_STATUS RpcBindingServerFromClient(RPC_BINDING_HANDLE, RPC_BINDING_HANDLE*); + +// never returns +void RpcRaiseException(RPC_STATUS); +RPC_STATUS RpcTestCancel(); +RPC_STATUS RpcCancelThread(void*); +RPC_STATUS UuidCreate(UUID*); +int UuidCompare(UUID*, UUID*, RPC_STATUS*); +RPC_STATUS UuidCreateNil(UUID*); +int UuidEqual(UUID*, UUID*, RPC_STATUS*); +ushort UuidHash(UUID*, RPC_STATUS*); +int UuidIsNil(UUID*, RPC_STATUS*); +RPC_STATUS RpcEpUnregister(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*); +RPC_STATUS RpcMgmtEpEltInqBegin(RPC_BINDING_HANDLE, uint, RPC_IF_ID*, uint, UUID*, RPC_EP_INQ_HANDLE*); +RPC_STATUS RpcMgmtEpEltInqDone(RPC_EP_INQ_HANDLE*); +RPC_STATUS RpcMgmtEpUnregister(RPC_BINDING_HANDLE, RPC_IF_ID*, RPC_BINDING_HANDLE, UUID*); +RPC_STATUS RpcMgmtSetAuthorizationFn(RPC_MGMT_AUTHORIZATION_FN); +RPC_STATUS RpcMgmtInqParameter(uint, uint*); +RPC_STATUS RpcMgmtSetParameter(uint, uint); +RPC_STATUS RpcMgmtBindingInqParameter(RPC_BINDING_HANDLE, uint, uint*); +RPC_STATUS RpcMgmtBindingSetParameter(RPC_BINDING_HANDLE, uint, uint); + +static if (_WIN32_WINNT >= 0x0500) { + RPC_STATUS UuidCreateSequential(UUID*); +} ADDED src/win32/rpcdce2.d Index: src/win32/rpcdce2.d ================================================================== --- src/win32/rpcdce2.d +++ src/win32/rpcdce2.d @@ -0,0 +1,78 @@ +/***********************************************************************\ +* rpcdce2.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.rpcdce2; + +import win32.rpcdce; +private import win32.basetyps; + +// FIXME: deal with RPC_UNICODE_SUPPORTED +// FIXME: check types of constants + +enum { + RPC_C_EP_ALL_ELTS, + RPC_C_EP_MATCH_BY_IF, + RPC_C_EP_MATCH_BY_OBJ, + RPC_C_EP_MATCH_BY_BOTH +} + +enum { + RPC_C_VERS_ALL = 1, + RPC_C_VERS_COMPATIBLE, + RPC_C_VERS_EXACT, + RPC_C_VERS_MAJOR_ONLY, + RPC_C_VERS_UPTO +} + +const size_t DCE_C_ERROR_STRING_LEN = 256; + +enum { + RPC_C_MGMT_INQ_IF_IDS, + RPC_C_MGMT_INQ_PRINC_NAME, + RPC_C_MGMT_INQ_STATS, + RPC_C_MGMT_IS_SERVER_LISTEN, + RPC_C_MGMT_STOP_SERVER_LISTEN +} + +extern (Windows) { + int UuidCompare(UUID*, UUID*, RPC_STATUS*); + RPC_STATUS UuidCreateNil(UUID*); + int UuidEqual(UUID*, UUID*, RPC_STATUS*); + ushort UuidHash(UUID*, RPC_STATUS*); + int UuidIsNil(UUID*, RPC_STATUS*); + + RPC_STATUS RpcMgmtEpEltInqBegin(RPC_BINDING_HANDLE, uint, RPC_IF_ID*, + uint, UUID*, RPC_EP_INQ_HANDLE*); + RPC_STATUS RpcMgmtEpEltInqDone(RPC_EP_INQ_HANDLE*); + RPC_STATUS RpcMgmtEpUnregister(RPC_BINDING_HANDLE, RPC_IF_ID*, + RPC_BINDING_HANDLE, UUID*); + RPC_STATUS RpcMgmtSetAuthorizationFn(RPC_MGMT_AUTHORIZATION_FN); +} + + +//#ifdef RPC_UNICODE_SUPPORTED +RPC_STATUS DceErrorInqTextA(RPC_STATUS, char*); +RPC_STATUS DceErrorInqTextW(RPC_STATUS, wchar*); +RPC_STATUS RpcMgmtEpEltInqNextA(RPC_EP_INQ_HANDLE, RPC_IF_ID*, + RPC_BINDING_HANDLE*, UUID*, char**); +RPC_STATUS RpcMgmtEpEltInqNextW(RPC_EP_INQ_HANDLE, RPC_IF_ID*, + RPC_BINDING_HANDLE*, UUID*, wchar**); +version (Unicode) { + alias RpcMgmtEpEltInqNextW RpcMgmtEpEltInqNext; + alias DceErrorInqTextW DceErrorInqText; +} else { + alias RpcMgmtEpEltInqNextA RpcMgmtEpEltInqNext; + alias DceErrorInqTextA DceErrorInqText; +} +/+ +#else /* RPC_UNICODE_SUPPORTED */ + RPC_STATUS RPC_ENTRY DceErrorInqText(RPC_STATUS,unsigned char*); + RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNext(RPC_EP_INQ_HANDLE,RPC_IF_ID*,RPC_BINDING_HANDLE*,UUID*,unsigned char**); +#endif ++/ ADDED src/win32/rpcdcep.d Index: src/win32/rpcdcep.d ================================================================== --- src/win32/rpcdcep.d +++ src/win32/rpcdcep.d @@ -0,0 +1,158 @@ +/***********************************************************************\ +* rpcdcep.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.rpcdcep; + +private import win32.basetyps; +private import win32.w32api; +private import win32.windef; + +alias HANDLE I_RPC_HANDLE; +alias long RPC_STATUS; + +const RPC_NCA_FLAGS_DEFAULT=0; +const RPC_NCA_FLAGS_IDEMPOTENT=1; +const RPC_NCA_FLAGS_BROADCAST=2; +const RPC_NCA_FLAGS_MAYBE=4; +const RPCFLG_ASYNCHRONOUS=0x40000000; +const RPCFLG_INPUT_SYNCHRONOUS=0x20000000; +const RPC_FLAGS_VALID_BIT=0x8000; + +const TRANSPORT_TYPE_CN=1; +const TRANSPORT_TYPE_DG=2; +const TRANSPORT_TYPE_LPC=4; +const TRANSPORT_TYPE_WMSG=8; + +struct RPC_VERSION { + ushort MajorVersion; + ushort MinorVersion; +} +struct RPC_SYNTAX_IDENTIFIER { + GUID SyntaxGUID; + RPC_VERSION SyntaxVersion; +} +alias RPC_SYNTAX_IDENTIFIER* PRPC_SYNTAX_IDENTIFIER; + +struct RPC_MESSAGE { + HANDLE Handle; + uint DataRepresentation; + void* Buffer; + uint BufferLength; + uint ProcNum; + PRPC_SYNTAX_IDENTIFIER TransferSyntax; + void* RpcInterfaceInformation; + void* ReservedForRuntime; + void* ManagerEpv; + void* ImportContext; + uint RpcFlags; +} +alias RPC_MESSAGE* PRPC_MESSAGE; + +extern (Windows) { +alias void function (PRPC_MESSAGE Message) RPC_DISPATCH_FUNCTION; +} + +struct RPC_DISPATCH_TABLE { + uint DispatchTableCount; + RPC_DISPATCH_FUNCTION* DispatchTable; + int Reserved; +} +alias RPC_DISPATCH_TABLE* PRPC_DISPATCH_TABLE; + +struct RPC_PROTSEQ_ENDPOINT { + ubyte* RpcProtocolSequence; + ubyte* Endpoint; +} +alias RPC_PROTSEQ_ENDPOINT* PRPC_PROTSEQ_ENDPOINT; + +struct RPC_SERVER_INTERFACE { + uint Length; + RPC_SYNTAX_IDENTIFIER InterfaceId; + RPC_SYNTAX_IDENTIFIER TransferSyntax; + PRPC_DISPATCH_TABLE DispatchTable; + uint RpcProtseqEndpointCount; + PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; + void* DefaultManagerEpv; + CPtr!(void) InterpreterInfo; +} +alias RPC_SERVER_INTERFACE* PRPC_SERVER_INTERFACE; + +struct RPC_CLIENT_INTERFACE { + uint Length; + RPC_SYNTAX_IDENTIFIER InterfaceId; + RPC_SYNTAX_IDENTIFIER TransferSyntax; + PRPC_DISPATCH_TABLE DispatchTable; + uint RpcProtseqEndpointCount; + PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; + uint Reserved; + CPtr!(void) InterpreterInfo; +} +alias RPC_CLIENT_INTERFACE* PRPC_CLIENT_INTERFACE; + +alias void* I_RPC_MUTEX; + +struct RPC_TRANSFER_SYNTAX { + GUID Uuid; + ushort VersMajor; + ushort VersMinor; +} +alias RPC_STATUS function(void*, void*, void*) RPC_BLOCKING_FN; + +extern (Windows) { + alias void function(void*) PRPC_RUNDOWN; + + int I_RpcGetBuffer(RPC_MESSAGE*); + int I_RpcSendReceive(RPC_MESSAGE*); + int I_RpcSend(RPC_MESSAGE*); + int I_RpcFreeBuffer(RPC_MESSAGE*); + void I_RpcRequestMutex(I_RPC_MUTEX*); + void I_RpcClearMutex(I_RPC_MUTEX); + void I_RpcDeleteMutex(I_RPC_MUTEX); + void* I_RpcAllocate(uint); + void I_RpcFree(void*); + void I_RpcPauseExecution(uint); + int I_RpcMonitorAssociation(HANDLE, PRPC_RUNDOWN, void*); + int I_RpcStopMonitorAssociation(HANDLE); + HANDLE I_RpcGetCurrentCallHandle(); + int I_RpcGetAssociationContext(void**); + int I_RpcSetAssociationContext(void*); + + static if (_WIN32_WINNT_ONLY) { + int I_RpcNsBindingSetEntryName(HANDLE, uint, wchar*); + int I_RpcBindingInqDynamicEndpoint(HANDLE, wchar**); + } else { + int I_RpcNsBindingSetEntryName(HANDLE, uint, char*); + int I_RpcBindingInqDynamicEndpoint(HANDLE, char**); + } + + int I_RpcBindingInqTransportType(HANDLE, uint*); + int I_RpcIfInqTransferSyntaxes(HANDLE, RPC_TRANSFER_SYNTAX*, uint, + uint*); + int I_UuidCreate(GUID*); + int I_RpcBindingCopy(HANDLE, HANDLE*); + int I_RpcBindingIsClientLocal(HANDLE, uint*); + void I_RpcSsDontSerializeContext(); + int I_RpcServerRegisterForwardFunction(int function (GUID*, + RPC_VERSION*, GUID*, ubyte*, void**)); + int I_RpcConnectionInqSockBuffSize(uint*, uint*); + int I_RpcConnectionSetSockBuffSize(uint, uint); + int I_RpcBindingSetAsync(HANDLE, RPC_BLOCKING_FN); + int I_RpcAsyncSendReceive(RPC_MESSAGE*, void*); + int I_RpcGetThreadWindowHandle(void**); + int I_RpcServerThreadPauseListening(); + int I_RpcServerThreadContinueListening(); + int I_RpcServerUnregisterEndpointA(ubyte*, ubyte*); + int I_RpcServerUnregisterEndpointW(ushort*, ushort*); +} + +version(Unicode) { + alias I_RpcServerUnregisterEndpointW I_RpcServerUnregisterEndpoint; +} else { + alias I_RpcServerUnregisterEndpointA I_RpcServerUnregisterEndpoint; +} ADDED src/win32/rpcndr.d Index: src/win32/rpcndr.d ================================================================== --- src/win32/rpcndr.d +++ src/win32/rpcndr.d @@ -0,0 +1,573 @@ +/***********************************************************************\ +* rpcndr.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.rpcndr; +pragma(lib, "rpcrt4.lib"); + +/* Translation notes: + RPC_CLIENT_ALLOC*, RPC_CLIENT_FREE* were replaced with PRPC_CLIENT_ALLOC, PRPC_CLIENT_FREE +*/ + +// TODO: Bitfields in MIDL_STUB_MESSAGE. +// Macros need to be converted. +const __RPCNDR_H_VERSION__= 450; + +import win32.rpcnsip; +private import win32.rpc, win32.rpcdce, win32.unknwn, win32.windef; +private import win32.objidl; // for IRpcChannelBuffer, IRpcStubBuffer +private import win32.basetyps; + +extern (Windows): + +const uint NDR_CHAR_REP_MASK = 0xF, + NDR_INT_REP_MASK = 0xF0, + NDR_FLOAT_REP_MASK = 0xFF00, + NDR_LITTLE_ENDIAN = 0x10, + NDR_BIG_ENDIAN = 0, + NDR_IEEE_FLOAT = 0, + NDR_VAX_FLOAT = 0x100, + NDR_ASCII_CHAR = 0, + NDR_EBCDIC_CHAR = 1, + NDR_LOCAL_DATA_REPRESENTATION = 0x10, + NDR_LOCAL_ENDIAN = NDR_LITTLE_ENDIAN; + +alias MIDL_user_allocate midl_user_allocate; +alias MIDL_user_free midl_user_free; + +alias long hyper; +alias ulong MIDL_uhyper; +alias char small; + +const cbNDRContext=20; +//MACRO #define NDRSContextValue(hContext) (&(hContext)->userContext) +//MACRO #define byte_from_ndr(source, target) { *(target) = *(*(char**)&(source)->Buffer)++; } + +//MACRO #define byte_array_from_ndr(Source, LowerIndex, UpperIndex, Target) { NDRcopy ((((char *)(Target))+(LowerIndex)), (Source)->Buffer, (unsigned int)((UpperIndex)-(LowerIndex))); *(unsigned long *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); } + +//MACRO #define boolean_from_ndr(source, target) { *(target) = *(*(char**)&(source)->Buffer)++; } + +//MACRO #define boolean_array_from_ndr(Source, LowerIndex, UpperIndex, Target) { NDRcopy ((((char *)(Target))+(LowerIndex)), (Source)->Buffer, (unsigned int)((UpperIndex)-(LowerIndex))); *(unsigned long *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); } + +//MACRO #define small_from_ndr(source, target) { *(target) = *(*(char**)&(source)->Buffer)++; } + +//MACRO #define small_from_ndr_temp(source, target, format) { *(target) = *(*(char**)(source))++; } + +//MACRO #define small_array_from_ndr(Source, LowerIndex, UpperIndex, Target) { NDRcopy ((((char *)(Target))+(LowerIndex)), (Source)->Buffer, (unsigned int)((UpperIndex)-(LowerIndex))); *(unsigned long *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); } + +//MACRO #define MIDL_ascii_strlen(string) strlen(string) + +//MACRO #define MIDL_ascii_strcpy(target,source) strcpy(target,source) + +//MACRO #define MIDL_memset(s,c,n) memset(s,c,n) + +//MACRO #define _midl_ma1( p, cast ) *(*( cast **)&p)++ +//MACRO #define _midl_ma2( p, cast ) *(*( cast **)&p)++ +//MACRO #define _midl_ma4( p, cast ) *(*( cast **)&p)++ +//MACRO #define _midl_ma8( p, cast ) *(*( cast **)&p)++ +//MACRO #define _midl_unma1( p, cast ) *(( cast *)p)++ +//MACRO #define _midl_unma2( p, cast ) *(( cast *)p)++ +//MACRO #define _midl_unma3( p, cast ) *(( cast *)p)++ +//MACRO #define _midl_unma4( p, cast ) *(( cast *)p)++ +//MACRO #define _midl_fa2( p ) (p = (RPC_BUFPTR )((unsigned long)(p+1) & 0xfffffffe)) +//MACRO #define _midl_fa4( p ) (p = (RPC_BUFPTR )((unsigned long)(p+3) & 0xfffffffc)) +//MACRO #define _midl_fa8( p ) (p = (RPC_BUFPTR )((unsigned long)(p+7) & 0xfffffff8)) +//MACRO #define _midl_addp( p, n ) (p += n) +//MACRO #define _midl_marsh_lhs( p, cast ) *(*( cast **)&p)++ +//MACRO #define _midl_marsh_up( mp, p ) *(*(unsigned long **)&mp)++ = (unsigned long)p +//MACRO #define _midl_advmp( mp ) *(*(unsigned long **)&mp)++ +//MACRO #define _midl_unmarsh_up( p ) (*(*(unsigned long **)&p)++) + +//MACRO #define NdrMarshConfStringHdr( p, s, l ) (_midl_ma4( p, unsigned long) = s, _midl_ma4( p, unsigned long) = 0, _midl_ma4( p, unsigned long) = l) + +//MACRO #define NdrUnMarshConfStringHdr(p, s, l) ((s=_midl_unma4(p,unsigned long), (_midl_addp(p,4)), (l=_midl_unma4(p,unsigned long)) + +//MACRO #define NdrMarshCCtxtHdl(pc,p) (NDRCContextMarshall( (NDR_CCONTEXT)pc, p ),p+20) +//MACRO #define NdrUnMarshCCtxtHdl(pc,p,h,drep) (NDRCContextUnmarshall((NDR_CONTEXT)pc,h,p,drep), p+20) +//MACRO #define NdrUnMarshSCtxtHdl(pc, p,drep) (pc = NdrSContextUnMarshall(p,drep )) +//MACRO #define NdrMarshSCtxtHdl(pc,p,rd) (NdrSContextMarshall((NDR_SCONTEXT)pc,p, (NDR_RUNDOWN)rd) + +//MACRO #define NdrFieldOffset(s,f) (long)(& (((s *)0)->f)) +//MACRO #define NdrFieldPad(s,f,p,t) (NdrFieldOffset(s,f) - NdrFieldOffset(s,p) - sizeof(t)) +//MACRO #define NdrFcShort(s) (unsigned char)(s & 0xff), (unsigned char)(s >> 8) +//MACRO #define NdrFcLong(s) (unsigned char)(s & 0xff), (unsigned char)((s & 0x0000ff00) >> 8), (unsigned char)((s & 0x00ff0000) >> 16), (unsigned char)(s >> 24) + +alias void * NDR_CCONTEXT; +struct tagNDR_SCONTEXT { + void *pad[2]; + void *userContext; +} +alias tagNDR_SCONTEXT * NDR_SCONTEXT; + +struct SCONTEXT_QUEUE { + uint NumberOfObjects; + NDR_SCONTEXT *ArrayOfObjects; +} +alias SCONTEXT_QUEUE * PSCONTEXT_QUEUE; + +struct _MIDL_STUB_MESSAGE; +struct _MIDL_STUB_DESC; +struct _FULL_PTR_XLAT_TABLES; + +alias ubyte *RPC_BUFPTR; +alias uint RPC_LENGTH; + +alias CPtr!(char) PFORMAT_STRING; + +struct ARRAY_INFO { + int Dimension; + uint *BufferConformanceMark; + uint *BufferVarianceMark; + uint *MaxCountArray; + uint *OffsetArray; + uint *ActualCountArray; +} +alias ARRAY_INFO * PARRAY_INFO; + +RPC_BINDING_HANDLE NDRCContextBinding(NDR_CCONTEXT); +void NDRCContextMarshall(NDR_CCONTEXT,void*); +void NDRCContextUnmarshall(NDR_CCONTEXT*,RPC_BINDING_HANDLE,void*,uint); +void NDRSContextMarshall(NDR_SCONTEXT,void*,NDR_RUNDOWN); +NDR_SCONTEXT NDRSContextUnmarshall(void*pBuff,uint); +void RpcSsDestroyClientContext(void**); +void NDRcopy(void*,void*,uint); +uint MIDL_wchar_strlen(wchar *); +void MIDL_wchar_strcpy(void*,wchar *); +void char_from_ndr(PRPC_MESSAGE,ubyte*); +void char_array_from_ndr(PRPC_MESSAGE,uint,uint,ubyte*); +void short_from_ndr(PRPC_MESSAGE,ushort*); +void short_array_from_ndr(PRPC_MESSAGE,uint,uint,ushort*); +void short_from_ndr_temp(ubyte**,ushort*,uint); +void int_from_ndr(PRPC_MESSAGE,uint*); +void int_array_from_ndr(PRPC_MESSAGE,uint,uint,uint*); +void int_from_ndr_temp(ubyte**,uint*,uint); +void enum_from_ndr(PRPC_MESSAGE,uint*); +void float_from_ndr(PRPC_MESSAGE,void*); +void float_array_from_ndr(PRPC_MESSAGE,uint,uint,void*); +void double_from_ndr(PRPC_MESSAGE,void*); +void double_array_from_ndr(PRPC_MESSAGE,uint,uint,void*); +void hyper_from_ndr(PRPC_MESSAGE,hyper*); +void hyper_array_from_ndr(PRPC_MESSAGE,uint,uint,hyper*); +void hyper_from_ndr_temp(ubyte**,hyper*,uint); +void data_from_ndr(PRPC_MESSAGE,void*,char*,ubyte); +void data_into_ndr(void*,PRPC_MESSAGE,char*,ubyte); +void tree_into_ndr(void*,PRPC_MESSAGE,char*,ubyte); +void data_size_ndr(void*,PRPC_MESSAGE,char*,ubyte); +void tree_size_ndr(void*,PRPC_MESSAGE,char*,ubyte); +void tree_peek_ndr(PRPC_MESSAGE,ubyte**,char*,ubyte); +void * midl_allocate(int); + +align(4): +struct MIDL_STUB_MESSAGE { + PRPC_MESSAGE RpcMsg; + ubyte *Buffer; + ubyte *BufferStart; + ubyte *BufferEnd; + ubyte *BufferMark; + uint BufferLength; + uint MemorySize; + ubyte *Memory; + int IsClient; + int ReuseBuffer; + ubyte *AllocAllNodesMemory; + ubyte *AllocAllNodesMemoryEnd; + int IgnoreEmbeddedPointers; + ubyte *PointerBufferMark; + ubyte fBufferValid; + ubyte Unused; + uint MaxCount; + uint Offset; + uint ActualCount; + void* function (uint) pfnAllocate; + void function (void*) pfnFree; + ubyte * StackTop; + ubyte * pPresentedType; + ubyte * pTransmitType; + handle_t SavedHandle; + CPtr!(_MIDL_STUB_DESC) StubDesc; + _FULL_PTR_XLAT_TABLES *FullPtrXlatTables; + uint FullPtrRefId; + int fCheckBounds; + // FIXME: + byte bit_fields_for_D; // FIXME: Bitfields +// int fInDontFree :1; +// int fDontCallFreeInst :1; +// int fInOnlyParam :1; +// int fHasReturn :1; + uint dwDestContext; + void* pvDestContext; + NDR_SCONTEXT * SavedContextHandles; + int ParamNumber; + IRpcChannelBuffer * pRpcChannelBuffer; + PARRAY_INFO pArrayInfo; + uint * SizePtrCountArray; + uint * SizePtrOffsetArray; + uint * SizePtrLengthArray; + void* pArgQueue; + uint dwStubPhase; + uint w2kReserved[5]; +} +alias MIDL_STUB_MESSAGE * PMIDL_STUB_MESSAGE; + +extern (Windows) { + alias void* function (void*) GENERIC_BINDING_ROUTINE; + alias void function (void*,ubyte*) GENERIC_UNBIND_ROUTINE; + alias uint function (uint *,uint,void *) USER_MARSHAL_SIZING_ROUTINE; + alias ubyte * function (uint *,ubyte *,void *) USER_MARSHAL_MARSHALLING_ROUTINE; + alias ubyte * function (uint *,ubyte *,void *) USER_MARSHAL_UNMARSHALLING_ROUTINE; + alias void function (uint *,void *) USER_MARSHAL_FREEING_ROUTINE; + alias void function () NDR_NOTIFY_ROUTINE; +} + +align: +struct GENERIC_BINDING_ROUTINE_PAIR { + GENERIC_BINDING_ROUTINE pfnBind; + GENERIC_UNBIND_ROUTINE pfnUnbind; +} +alias GENERIC_BINDING_ROUTINE_PAIR * PGENERIC_BINDING_ROUTINE_PAIR; + +struct GENERIC_BINDING_INFO { + void *pObj; + uint Size; + GENERIC_BINDING_ROUTINE pfnBind; + GENERIC_UNBIND_ROUTINE pfnUnbind; +} +alias GENERIC_BINDING_INFO * PGENERIC_BINDING_INFO; + + +struct XMIT_ROUTINE_QUINTUPLE { + XMIT_HELPER_ROUTINE pfnTranslateToXmit; + XMIT_HELPER_ROUTINE pfnTranslateFromXmit; + XMIT_HELPER_ROUTINE pfnFreeXmit; + XMIT_HELPER_ROUTINE pfnFreeInst; +} +alias XMIT_ROUTINE_QUINTUPLE * PXMIT_ROUTINE_QUINTUPLE; + +struct MALLOC_FREE_STRUCT { + void* function (uint) pfnAllocate; + void function (void*) pfnFree; +} + +struct COMM_FAULT_OFFSETS { + short CommOffset; + short FaultOffset; +} + +struct USER_MARSHAL_ROUTINE_QUADRUPLE { + USER_MARSHAL_SIZING_ROUTINE pfnBufferSize; + USER_MARSHAL_MARSHALLING_ROUTINE pfnMarshall; + USER_MARSHAL_UNMARSHALLING_ROUTINE pfnUnmarshall; + USER_MARSHAL_FREEING_ROUTINE pfnFree; +} + +enum IDL_CS_CONVERT { + IDL_CS_NO_CONVERT, + IDL_CS_IN_PLACE_CONVERT, + IDL_CS_NEW_BUFFER_CONVERT +} + +struct NDR_CS_SIZE_CONVERT_ROUTINES { + CS_TYPE_NET_SIZE_ROUTINE pfnNetSize; + CS_TYPE_TO_NETCS_ROUTINE pfnToNetCs; + CS_TYPE_LOCAL_SIZE_ROUTINE pfnLocalSize; + CS_TYPE_FROM_NETCS_ROUTINE pfnFromNetCs; +} + +struct NDR_CS_ROUTINES { + NDR_CS_SIZE_CONVERT_ROUTINES *pSizeConvertRoutines; + CS_TAG_GETTING_ROUTINE *pTagGettingRoutines; +} + +struct MIDL_STUB_DESC { + void* RpcInterfaceInformation; + void* function(uint) pfnAllocate; + void function (void*) pfnFree; + union _IMPLICIT_HANDLE_INFO { + handle_t *pAutoHandle; + handle_t *pPrimitiveHandle; + PGENERIC_BINDING_INFO pGenericBindingInfo; + } + _IMPLICIT_HANDLE_INFO IMPLICIT_HANDLE_INFO; + CPtr!(NDR_RUNDOWN) apfnNdrRundownRoutines; + CPtr!(GENERIC_BINDING_ROUTINE_PAIR) aGenericBindingRoutinePairs; + CPtr!(EXPR_EVAL) apfnExprEval; + CPtr!(XMIT_ROUTINE_QUINTUPLE) aXmitQuintuple; + CPtr!(char) *pFormatTypes; + int fCheckBounds; + uint Version; + MALLOC_FREE_STRUCT *pMallocFreeStruct; + int MIDLVersion; + CPtr!(COMM_FAULT_OFFSETS) CommFaultOffsets; + CPtr!(USER_MARSHAL_ROUTINE_QUADRUPLE) aUserMarshalQuadruple; + CPtr!(NDR_NOTIFY_ROUTINE) NotifyRoutineTable; + ULONG_PTR mFlags; + CPtr!(NDR_CS_ROUTINES) CsRoutineTables; + void *Reserved4; + ULONG_PTR Reserved5; +} +alias CPtr!(MIDL_STUB_DESC) PMIDL_STUB_DESC; + +alias void * PMIDL_XMIT_TYPE; + +struct MIDL_FORMAT_STRING { + short Pad; + ubyte Format[1]; +} + +struct MIDL_SERVER_INFO { + PMIDL_STUB_DESC pStubDesc; + CPtr!(SERVER_ROUTINE) DispatchTable; + PFORMAT_STRING ProcString; + CPtr!(ushort) FmtStringOffset; + CPtr!(STUB_THUNK) ThunkTable; +} +alias MIDL_SERVER_INFO * PMIDL_SERVER_INFO; + +struct MIDL_STUBLESS_PROXY_INFO { + PMIDL_STUB_DESC pStubDesc; + PFORMAT_STRING ProcFormatString; + CPtr!(ushort) FormatStringOffset; +} +alias MIDL_STUBLESS_PROXY_INFO *PMIDL_STUBLESS_PROXY_INFO; + +union CLIENT_CALL_RETURN { + void *Pointer; + int Simple; +} + +enum XLAT_SIDE { + XLAT_SERVER = 1, + XLAT_CLIENT +} +struct FULL_PTR_TO_REFID_ELEMENT { + FULL_PTR_TO_REFID_ELEMENT * Next; + void* Pointer; + uint RefId; + ubyte State; +} +alias FULL_PTR_TO_REFID_ELEMENT * PFULL_PTR_TO_REFID_ELEMENT; + +struct FULL_PTR_XLAT_TABLES { + struct RefIdToPointer { + void **XlatTable; + ubyte *StateTable; + uint NumberOfEntries; + } + struct PointerToRefId { + PFULL_PTR_TO_REFID_ELEMENT *XlatTable; + uint NumberOfBuckets; + uint HashMask; + } + uint NextRefId; + XLAT_SIDE XlatSide; +} +alias FULL_PTR_XLAT_TABLES * PFULL_PTR_XLAT_TABLES; + + +enum STUB_PHASE { + STUB_UNMARSHAL, + STUB_CALL_SERVER, + STUB_MARSHAL, + STUB_CALL_SERVER_NO_HRESULT +} + +enum PROXY_PHASE { + PROXY_CALCSIZE, + PROXY_GETBUFFER, + PROXY_MARSHAL, + PROXY_SENDRECEIVE, + PROXY_UNMARSHAL +} + +alias void * RPC_SS_THREAD_HANDLE; + +extern (Windows) { +alias void function (void*) NDR_RUNDOWN; +alias void function (_MIDL_STUB_MESSAGE*) EXPR_EVAL; +alias void function(PMIDL_STUB_MESSAGE) XMIT_HELPER_ROUTINE; +alias void function (RPC_BINDING_HANDLE,uint,uint,IDL_CS_CONVERT*,uint*,error_status_t*) CS_TYPE_NET_SIZE_ROUTINE; +alias void function (RPC_BINDING_HANDLE,uint,uint,IDL_CS_CONVERT*,uint*,error_status_t*) CS_TYPE_LOCAL_SIZE_ROUTINE; +alias void function (RPC_BINDING_HANDLE,uint,void*,uint,byte*,uint*,error_status_t*) CS_TYPE_TO_NETCS_ROUTINE; +alias void function (RPC_BINDING_HANDLE,uint,byte*,uint,uint,void*,uint*,error_status_t*) CS_TYPE_FROM_NETCS_ROUTINE; +alias void function (RPC_BINDING_HANDLE,int,uint*,uint*,uint*,error_status_t*) CS_TAG_GETTING_ROUTINE; + +//alias void* RPC_CLIENT_ALLOC(uint); +//alias void RPC_CLIENT_FREE(void*); +alias void* function(uint) PRPC_CLIENT_ALLOC; +alias void function(void*) PRPC_CLIENT_FREE; + + alias void function (PMIDL_STUB_MESSAGE) STUB_THUNK; + alias int function() SERVER_ROUTINE; +} + +void NdrSimpleTypeMarshall(PMIDL_STUB_MESSAGE,ubyte*,ubyte); +ubyte * NdrPointerMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING pFormat); +ubyte * NdrSimpleStructMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte * NdrConformantStructMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte * NdrConformantVaryingStructMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte * NdrHardStructMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte * NdrComplexStructMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte * NdrFixedArrayMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte * NdrConformantArrayMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte * NdrConformantVaryingArrayMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte * NdrVaryingArrayMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte * NdrComplexArrayMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte * NdrNonConformantStringMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte * NdrConformantStringMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte * NdrEncapsulatedUnionMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte * NdrNonEncapsulatedUnionMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte * NdrByteCountPointerMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte * NdrXmitOrRepAsMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte * NdrInterfacePointerMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrClientContextMarshall(PMIDL_STUB_MESSAGE,NDR_CCONTEXT,int); +void NdrServerContextMarshall(PMIDL_STUB_MESSAGE,NDR_SCONTEXT,NDR_RUNDOWN); +void NdrSimpleTypeUnmarshall(PMIDL_STUB_MESSAGE,ubyte*,ubyte); +ubyte * NdrPointerUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrSimpleStructUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrConformantStructUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrConformantVaryingStructUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrHardStructUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrComplexStructUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrFixedArrayUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrConformantArrayUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrConformantVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrComplexArrayUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrNonConformantStringUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrConformantStringUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrEncapsulatedUnionUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrNonEncapsulatedUnionUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrByteCountPointerUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrXmitOrRepAsUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +ubyte * NdrInterfacePointerUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +void NdrClientContextUnmarshall(PMIDL_STUB_MESSAGE,NDR_CCONTEXT*,RPC_BINDING_HANDLE); +NDR_SCONTEXT NdrServerContextUnmarshall(PMIDL_STUB_MESSAGE); +void NdrPointerBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrSimpleStructBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrConformantStructBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrConformantVaryingStructBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrHardStructBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrComplexStructBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrFixedArrayBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrConformantArrayBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrConformantVaryingArrayBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrVaryingArrayBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrComplexArrayBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrConformantStringBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrNonConformantStringBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrEncapsulatedUnionBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrNonEncapsulatedUnionBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrByteCountPointerBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrXmitOrRepAsBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrInterfacePointerBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrContextHandleSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +uint NdrPointerMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +uint NdrSimpleStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +uint NdrConformantStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +uint NdrConformantVaryingStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +uint NdrHardStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +uint NdrComplexStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +uint NdrFixedArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +uint NdrConformantArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +uint NdrConformantVaryingArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +uint NdrVaryingArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +uint NdrComplexArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +uint NdrConformantStringMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +uint NdrNonConformantStringMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +uint NdrEncapsulatedUnionMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +uint NdrNonEncapsulatedUnionMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +uint NdrXmitOrRepAsMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +uint NdrInterfacePointerMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +void NdrPointerFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrSimpleStructFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrConformantStructFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrConformantVaryingStructFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrHardStructFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrComplexStructFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrFixedArrayFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrConformantArrayFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrConformantVaryingArrayFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrVaryingArrayFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrComplexArrayFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrEncapsulatedUnionFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrNonEncapsulatedUnionFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrByteCountPointerFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrXmitOrRepAsFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrInterfacePointerFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +void NdrConvert(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +void NdrClientInitializeNew(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,uint); +ubyte * NdrServerInitializeNew(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC); +void NdrClientInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,uint); +ubyte * NdrServerInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC); +ubyte * NdrServerInitializeUnmarshall(PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,PRPC_MESSAGE); +void NdrServerInitializeMarshall(PRPC_MESSAGE,PMIDL_STUB_MESSAGE); +ubyte * NdrGetBuffer(PMIDL_STUB_MESSAGE,uint,RPC_BINDING_HANDLE); +ubyte * NdrNsGetBuffer(PMIDL_STUB_MESSAGE,uint,RPC_BINDING_HANDLE); +ubyte * NdrSendReceive(PMIDL_STUB_MESSAGE,ubyte*); +ubyte * NdrNsSendReceive(PMIDL_STUB_MESSAGE,ubyte*,RPC_BINDING_HANDLE*); +void NdrFreeBuffer(PMIDL_STUB_MESSAGE); + +CLIENT_CALL_RETURN NdrClientCall(PMIDL_STUB_DESC,PFORMAT_STRING,...); + +int NdrStubCall(IRpcStubBuffer*, IRpcChannelBuffer*,PRPC_MESSAGE,uint*); +void NdrServerCall(PRPC_MESSAGE); +int NdrServerUnmarshall(IRpcChannelBuffer*, PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,PFORMAT_STRING,void*); +void NdrServerMarshall(IRpcStubBuffer*, IRpcChannelBuffer*,PMIDL_STUB_MESSAGE,PFORMAT_STRING); +RPC_STATUS NdrMapCommAndFaultStatus(PMIDL_STUB_MESSAGE,uint*,uint*,RPC_STATUS); +int NdrSH_UPDecision(PMIDL_STUB_MESSAGE,ubyte**,RPC_BUFPTR); +int NdrSH_TLUPDecision(PMIDL_STUB_MESSAGE,ubyte**); +int NdrSH_TLUPDecisionBuffer(PMIDL_STUB_MESSAGE,ubyte**); +int NdrSH_IfAlloc(PMIDL_STUB_MESSAGE,ubyte**,uint); +int NdrSH_IfAllocRef(PMIDL_STUB_MESSAGE,ubyte**,uint); +int NdrSH_IfAllocSet(PMIDL_STUB_MESSAGE,ubyte**,uint); +RPC_BUFPTR NdrSH_IfCopy(PMIDL_STUB_MESSAGE,ubyte**,uint); +RPC_BUFPTR NdrSH_IfAllocCopy(PMIDL_STUB_MESSAGE,ubyte**,uint); +uint NdrSH_Copy(ubyte*,ubyte*,uint); +void NdrSH_IfFree(PMIDL_STUB_MESSAGE,ubyte*); +RPC_BUFPTR NdrSH_StringMarshall(PMIDL_STUB_MESSAGE,ubyte*,uint,int); +RPC_BUFPTR NdrSH_StringUnMarshall(PMIDL_STUB_MESSAGE,ubyte**,int); +void* RpcSsAllocate(uint); +void RpcSsDisableAllocate(); +void RpcSsEnableAllocate(); +void RpcSsFree(void*); +RPC_SS_THREAD_HANDLE RpcSsGetThreadHandle(); +void RpcSsSetClientAllocFree(PRPC_CLIENT_ALLOC,PRPC_CLIENT_FREE); +void RpcSsSetThreadHandle(RPC_SS_THREAD_HANDLE); +void RpcSsSwapClientAllocFree(PRPC_CLIENT_ALLOC,PRPC_CLIENT_FREE,PRPC_CLIENT_ALLOC*,PRPC_CLIENT_FREE*); +void* RpcSmAllocate(uint,RPC_STATUS*); +RPC_STATUS RpcSmClientFree(void*); +RPC_STATUS RpcSmDestroyClientContext(void**); +RPC_STATUS RpcSmDisableAllocate(); +RPC_STATUS RpcSmEnableAllocate(); +RPC_STATUS RpcSmFree(void*); +RPC_SS_THREAD_HANDLE RpcSmGetThreadHandle(RPC_STATUS*); +RPC_STATUS RpcSmSetClientAllocFree(PRPC_CLIENT_ALLOC,PRPC_CLIENT_FREE); +RPC_STATUS RpcSmSetThreadHandle(RPC_SS_THREAD_HANDLE); +RPC_STATUS RpcSmSwapClientAllocFree(PRPC_CLIENT_ALLOC,PRPC_CLIENT_FREE,PRPC_CLIENT_ALLOC*,PRPC_CLIENT_FREE*); +void NdrRpcSsEnableAllocate(PMIDL_STUB_MESSAGE); +void NdrRpcSsDisableAllocate(PMIDL_STUB_MESSAGE); +void NdrRpcSmSetClientToOsf(PMIDL_STUB_MESSAGE); +void* NdrRpcSmClientAllocate(uint); +void NdrRpcSmClientFree(void*); +void* NdrRpcSsDefaultAllocate(uint); +void NdrRpcSsDefaultFree(void*); +PFULL_PTR_XLAT_TABLES NdrFullPointerXlatInit(uint,XLAT_SIDE); +void NdrFullPointerXlatFree(PFULL_PTR_XLAT_TABLES); +int NdrFullPointerQueryPointer(PFULL_PTR_XLAT_TABLES,void*,ubyte,uint*); +int NdrFullPointerQueryRefId(PFULL_PTR_XLAT_TABLES,uint,ubyte,void**); +void NdrFullPointerInsertRefId(PFULL_PTR_XLAT_TABLES,uint,void*); +int NdrFullPointerFree(PFULL_PTR_XLAT_TABLES,void*); +void* NdrAllocate(PMIDL_STUB_MESSAGE,uint); +void NdrClearOutParameters(PMIDL_STUB_MESSAGE,PFORMAT_STRING,void*); +void* NdrOleAllocate(uint); +void NdrOleFree(void*); +ubyte* NdrUserMarshalMarshall(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +ubyte* NdrUserMarshalUnmarshall(PMIDL_STUB_MESSAGE,ubyte**,PFORMAT_STRING,ubyte); +void NdrUserMarshalBufferSize(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); +uint NdrUserMarshalMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); +void NdrUserMarshalFree(PMIDL_STUB_MESSAGE,ubyte*,PFORMAT_STRING); ADDED src/win32/rpcnsi.d Index: src/win32/rpcnsi.d ================================================================== --- src/win32/rpcnsi.d +++ src/win32/rpcnsi.d @@ -0,0 +1,162 @@ +/***********************************************************************\ +* rpcnsi.d * +* * +* Windows API header module * +* RPC Name Service (RpcNs APIs) * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.rpcnsi; +pragma(lib, "rpcns4.lib"); + +private import win32.basetyps, win32.rpcdcep, win32.rpcnsi, win32.rpcdce, + win32.w32api; +private import win32.windef; // for HANDLE + +alias HANDLE RPC_NS_HANDLE; + +const RPC_C_NS_SYNTAX_DEFAULT=0; +const RPC_C_NS_SYNTAX_DCE=3; +const RPC_C_PROFILE_DEFAULT_ELT=0; +const RPC_C_PROFILE_ALL_ELT=1; +const RPC_C_PROFILE_MATCH_BY_IF=2; +const RPC_C_PROFILE_MATCH_BY_MBR=3; +const RPC_C_PROFILE_MATCH_BY_BOTH=4; +const RPC_C_NS_DEFAULT_EXP_AGE=-1; + +extern (Windows) { + RPC_STATUS RpcNsBindingExportA(uint, ubyte*, RPC_IF_HANDLE, + RPC_BINDING_VECTOR*, UUID_VECTOR*); + RPC_STATUS RpcNsBindingUnexportA(uint, ubyte*, RPC_IF_HANDLE, + UUID_VECTOR*); + RPC_STATUS RpcNsBindingLookupBeginA(uint, ubyte*, RPC_IF_HANDLE, UUID*, + uint, RPC_NS_HANDLE*); + RPC_STATUS RpcNsBindingLookupNext(RPC_NS_HANDLE, RPC_BINDING_VECTOR**); + RPC_STATUS RpcNsBindingLookupDone(RPC_NS_HANDLE*); + RPC_STATUS RpcNsGroupDeleteA(uint, ubyte*); + RPC_STATUS RpcNsGroupMbrAddA(uint, ubyte*, uint, ubyte*); + RPC_STATUS RpcNsGroupMbrRemoveA(uint, ubyte*, uint, ubyte*); + RPC_STATUS RpcNsGroupMbrInqBeginA(uint, ubyte*, uint, RPC_NS_HANDLE*); + RPC_STATUS RpcNsGroupMbrInqNextA(RPC_NS_HANDLE, ubyte**); + RPC_STATUS RpcNsGroupMbrInqDone(RPC_NS_HANDLE*); + RPC_STATUS RpcNsProfileDeleteA(uint, ubyte*); + RPC_STATUS RpcNsProfileEltAddA(uint, ubyte*, RPC_IF_ID*, uint, ubyte*, + uint, ubyte*); + RPC_STATUS RpcNsProfileEltRemoveA(uint, ubyte*, RPC_IF_ID*, uint, ubyte*); + RPC_STATUS RpcNsProfileEltInqBeginA(uint, ubyte*, uint, RPC_IF_ID*, uint, + uint, ubyte*, RPC_NS_HANDLE*); + RPC_STATUS RpcNsProfileEltInqNextA(RPC_NS_HANDLE, RPC_IF_ID*, ubyte**, + uint*, ubyte**); + RPC_STATUS RpcNsProfileEltInqDone(RPC_NS_HANDLE*); + RPC_STATUS RpcNsEntryObjectInqNext(in RPC_NS_HANDLE, out UUID*); + RPC_STATUS RpcNsEntryObjectInqDone(ref RPC_NS_HANDLE*); + RPC_STATUS RpcNsEntryExpandNameA(uint, ubyte*, ubyte**); + RPC_STATUS RpcNsMgmtBindingUnexportA(uint, ubyte*, RPC_IF_ID*, uint, + UUID_VECTOR*); + RPC_STATUS RpcNsMgmtEntryCreateA(uint, ubyte*); + RPC_STATUS RpcNsMgmtEntryDeleteA(uint, ubyte*); + RPC_STATUS RpcNsMgmtEntryInqIfIdsA(uint, ubyte*, RPC_IF_ID_VECTOR**); + RPC_STATUS RpcNsMgmtHandleSetExpAge(RPC_NS_HANDLE, uint); + RPC_STATUS RpcNsMgmtInqExpAge(uint*); + RPC_STATUS RpcNsMgmtSetExpAge(uint); + RPC_STATUS RpcNsBindingImportNext(RPC_NS_HANDLE, RPC_BINDING_HANDLE*); + RPC_STATUS RpcNsBindingImportDone(RPC_NS_HANDLE*); + RPC_STATUS RpcNsBindingSelect(RPC_BINDING_VECTOR*, RPC_BINDING_HANDLE*); +} + +// For the cases where Win95, 98, ME have no _W versions, and we must alias to +// _A even for version(Unicode). + +version (Unicode) { + static if (_WIN32_WINNT_ONLY) { + const bool _WIN32_USE_UNICODE = true; + } else { + const bool _WIN32_USE_UNICODE = false; + } +} else { + const bool _WIN32_USE_UNICODE = false; +} + +static if (!_WIN32_USE_UNICODE) { + RPC_STATUS RpcNsEntryObjectInqBeginA(uint, ubyte*, RPC_NS_HANDLE*); + RPC_STATUS RpcNsBindingImportBeginA(uint, ubyte*, RPC_IF_HANDLE, UUID*, + RPC_NS_HANDLE*); +} + +static if (_WIN32_WINNT_ONLY) { + RPC_STATUS RpcNsBindingExportW(uint, ushort*, RPC_IF_HANDLE, + RPC_BINDING_VECTOR*, UUID_VECTOR*); + RPC_STATUS RpcNsBindingUnexportW(uint, ushort*, RPC_IF_HANDLE, + UUID_VECTOR*); + RPC_STATUS RpcNsBindingLookupBeginW(uint, ushort*, RPC_IF_HANDLE, UUID*, + uint, RPC_NS_HANDLE*); + RPC_STATUS RpcNsGroupDeleteW(uint, ushort*); + RPC_STATUS RpcNsGroupMbrAddW(uint, ushort*, uint, ushort*); + RPC_STATUS RpcNsGroupMbrRemoveW(uint, ushort*, uint, ushort*); + RPC_STATUS RpcNsGroupMbrInqBeginW(uint, ushort*, uint, RPC_NS_HANDLE*); + RPC_STATUS RpcNsGroupMbrInqNextW(RPC_NS_HANDLE, ushort**); + RPC_STATUS RpcNsProfileDeleteW(uint, ushort*); + RPC_STATUS RpcNsProfileEltAddW(uint, ushort*, RPC_IF_ID*, uint, ushort*, + uint, ushort*); + RPC_STATUS RpcNsProfileEltRemoveW(uint, ushort*, RPC_IF_ID*, uint, + ushort*); + RPC_STATUS RpcNsProfileEltInqBeginW(uint, ushort*, uint, RPC_IF_ID*, + uint, uint, ushort*, RPC_NS_HANDLE*); + RPC_STATUS RpcNsProfileEltInqNextW(RPC_NS_HANDLE, RPC_IF_ID*, ushort**, + uint*, ushort**); + RPC_STATUS RpcNsEntryObjectInqBeginW(uint, ushort*, RPC_NS_HANDLE*); + RPC_STATUS RpcNsEntryExpandNameW(uint, ushort*, ushort**); + RPC_STATUS RpcNsMgmtBindingUnexportW(uint, ushort*, RPC_IF_ID*, uint, + UUID_VECTOR*); + RPC_STATUS RpcNsMgmtEntryCreateW(uint, ushort*); + RPC_STATUS RpcNsMgmtEntryDeleteW(uint, ushort*); + RPC_STATUS RpcNsMgmtEntryInqIfIdsW(uint, ushort , RPC_IF_ID_VECTOR**); + RPC_STATUS RpcNsBindingImportBeginW(uint, ushort*, RPC_IF_HANDLE, UUID*, + RPC_NS_HANDLE*); +} // _WIN32_WINNT_ONLY + +static if (_WIN32_USE_UNICODE) { + alias RpcNsBindingLookupBeginW RpcNsBindingLookupBegin; + alias RpcNsBindingImportBeginW RpcNsBindingImportBegin; + alias RpcNsBindingExportW RpcNsBindingExport; + alias RpcNsBindingUnexportW RpcNsBindingUnexport; + alias RpcNsGroupDeleteW RpcNsGroupDelete; + alias RpcNsGroupMbrAddW RpcNsGroupMbrAdd; + alias RpcNsGroupMbrRemoveW RpcNsGroupMbrRemove; + alias RpcNsGroupMbrInqBeginW RpcNsGroupMbrInqBegin; + alias RpcNsGroupMbrInqNextW RpcNsGroupMbrInqNext; + alias RpcNsEntryExpandNameW RpcNsEntryExpandName; + alias RpcNsEntryObjectInqBeginW RpcNsEntryObjectInqBegin; + alias RpcNsMgmtBindingUnexportW RpcNsMgmtBindingUnexport; + alias RpcNsMgmtEntryCreateW RpcNsMgmtEntryCreate; + alias RpcNsMgmtEntryDeleteW RpcNsMgmtEntryDelete; + alias RpcNsMgmtEntryInqIfIdsW RpcNsMgmtEntryInqIfIds; + alias RpcNsProfileDeleteW RpcNsProfileDelete; + alias RpcNsProfileEltAddW RpcNsProfileEltAdd; + alias RpcNsProfileEltRemoveW RpcNsProfileEltRemove; + alias RpcNsProfileEltInqBeginW RpcNsProfileEltInqBegin; + alias RpcNsProfileEltInqNextW RpcNsProfileEltInqNext; +} else { + alias RpcNsBindingLookupBeginA RpcNsBindingLookupBegin; + alias RpcNsBindingImportBeginA RpcNsBindingImportBegin; + alias RpcNsBindingExportA RpcNsBindingExport; + alias RpcNsBindingUnexportA RpcNsBindingUnexport; + alias RpcNsGroupDeleteA RpcNsGroupDelete; + alias RpcNsGroupMbrAddA RpcNsGroupMbrAdd; + alias RpcNsGroupMbrRemoveA RpcNsGroupMbrRemove; + alias RpcNsGroupMbrInqBeginA RpcNsGroupMbrInqBegin; + alias RpcNsGroupMbrInqNextA RpcNsGroupMbrInqNext; + alias RpcNsEntryExpandNameA RpcNsEntryExpandName; + alias RpcNsEntryObjectInqBeginA RpcNsEntryObjectInqBegin; + alias RpcNsMgmtBindingUnexportA RpcNsMgmtBindingUnexport; + alias RpcNsMgmtEntryCreateA RpcNsMgmtEntryCreate; + alias RpcNsMgmtEntryDeleteA RpcNsMgmtEntryDelete; + alias RpcNsMgmtEntryInqIfIdsA RpcNsMgmtEntryInqIfIds; + alias RpcNsProfileDeleteA RpcNsProfileDelete; + alias RpcNsProfileEltAddA RpcNsProfileEltAdd; + alias RpcNsProfileEltRemoveA RpcNsProfileEltRemove; + alias RpcNsProfileEltInqBeginA RpcNsProfileEltInqBegin; + alias RpcNsProfileEltInqNextA RpcNsProfileEltInqNext; +} ADDED src/win32/rpcnsip.d Index: src/win32/rpcnsip.d ================================================================== --- src/win32/rpcnsip.d +++ src/win32/rpcnsip.d @@ -0,0 +1,29 @@ +/***********************************************************************\ +* rpcnsip.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.rpcnsip; + +private import win32.rpcdce, win32.rpcdcep, win32.rpcnsi; + +struct RPC_IMPORT_CONTEXT_P { + RPC_NS_HANDLE LookupContext; + RPC_BINDING_HANDLE ProposedHandle; + RPC_BINDING_VECTOR* Bindings; +} +alias RPC_IMPORT_CONTEXT_P* PRPC_IMPORT_CONTEXT_P; + +extern(Windows) { + RPC_STATUS I_RpcNsGetBuffer(PRPC_MESSAGE); + RPC_STATUS I_RpcNsSendReceive(PRPC_MESSAGE, RPC_BINDING_HANDLE*); + void I_RpcNsRaiseException(PRPC_MESSAGE, RPC_STATUS); + RPC_STATUS I_RpcReBindBuffer(PRPC_MESSAGE); + RPC_STATUS I_NsServerBindSearch(); + RPC_STATUS I_NsClientBindSearch(); + void I_NsClientBindDone(); +} ADDED src/win32/rpcnterr.d Index: src/win32/rpcnterr.d ================================================================== --- src/win32/rpcnterr.d +++ src/win32/rpcnterr.d @@ -0,0 +1,31 @@ +/***********************************************************************\ +* rpcnterr.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.rpcnterr; + +import win32.winerror; + +enum : uint { + RPC_S_OK = ERROR_SUCCESS, + RPC_S_INVALID_ARG = ERROR_INVALID_PARAMETER, + RPC_S_OUT_OF_MEMORY = ERROR_OUTOFMEMORY, + RPC_S_OUT_OF_THREADS = ERROR_MAX_THRDS_REACHED, + RPC_S_INVALID_LEVEL = ERROR_INVALID_PARAMETER, + RPC_S_BUFFER_TOO_SMALL = ERROR_INSUFFICIENT_BUFFER, + RPC_S_INVALID_SECURITY_DESC = ERROR_INVALID_SECURITY_DESCR, + RPC_S_ACCESS_DENIED = ERROR_ACCESS_DENIED, + RPC_S_SERVER_OUT_OF_MEMORY = ERROR_NOT_ENOUGH_SERVER_MEMORY, + RPC_X_NO_MEMORY = RPC_S_OUT_OF_MEMORY, + RPC_X_INVALID_BOUND = RPC_S_INVALID_BOUND, + RPC_X_INVALID_TAG = RPC_S_INVALID_TAG, + RPC_X_ENUM_VALUE_TOO_LARGE = RPC_X_ENUM_VALUE_OUT_OF_RANGE, + RPC_X_SS_CONTEXT_MISMATCH = ERROR_INVALID_HANDLE, + RPC_X_INVALID_BUFFER = ERROR_INVALID_USER_BUFFER, + RPC_X_INVALID_PIPE_OPERATION = RPC_X_WRONG_PIPE_ORDER +} ADDED src/win32/schannel.d Index: src/win32/schannel.d ================================================================== --- src/win32/schannel.d +++ src/win32/schannel.d @@ -0,0 +1,106 @@ +/***********************************************************************\ +* schannel.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.schannel; + +import win32.wincrypt; +private import win32.windef; + +const DWORD SCHANNEL_CRED_VERSION = 4; +const SCHANNEL_SHUTDOWN = 1; +/* Comment from MinGW + ? Do these belong here or in wincrypt.h + */ +enum : DWORD { + AUTHTYPE_CLIENT = 1, + AUTHTYPE_SERVER = 2 +} + +const DWORD + SP_PROT_PCT1_SERVER = 0x01, + SP_PROT_PCT1_CLIENT = 0x02, + SP_PROT_SSL2_SERVER = 0x04, + SP_PROT_SSL2_CLIENT = 0x08, + SP_PROT_SSL3_SERVER = 0x10, + SP_PROT_SSL3_CLIENT = 0x20, + SP_PROT_TLS1_SERVER = 0x40, + SP_PROT_TLS1_CLIENT = 0x80, + SP_PROT_PCT1 = SP_PROT_PCT1_CLIENT | SP_PROT_PCT1_SERVER, + SP_PROT_TLS1 = SP_PROT_TLS1_CLIENT | SP_PROT_TLS1_SERVER, + SP_PROT_SSL2 = SP_PROT_SSL2_CLIENT | SP_PROT_SSL2_SERVER, + SP_PROT_SSL3 = SP_PROT_SSL3_CLIENT | SP_PROT_SSL3_SERVER; + +const DWORD + SCH_CRED_NO_SYSTEM_MAPPER = 0x0002, + SCH_CRED_NO_SERVERNAME_CHECK = 0x0004, + SCH_CRED_MANUAL_CRED_VALIDATION = 0x0008, + SCH_CRED_NO_DEFAULT_CREDS = 0x0010, + SCH_CRED_AUTO_CRED_VALIDATION = 0x0020, + SCH_CRED_USE_DEFAULT_CREDS = 0x0040, + SCH_CRED_REVOCATION_CHECK_END_CERT = 0x0100, + SCH_CRED_REVOCATION_CHECK_CHAIN = 0x0200, + SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = 0x0400, + SCH_CRED_IGNORE_NO_REVOCATION_CHECK = 0x0800, + SCH_CRED_IGNORE_REVOCATION_OFFLINE = 0x1000; + +// No definition - presumably an opaque structure +struct _HMAPPER; + +struct SCHANNEL_CRED { + DWORD dwVersion = SCHANNEL_CRED_VERSION; + DWORD cCreds; + PCCERT_CONTEXT* paCred; + HCERTSTORE hRootStore; + DWORD cMappers; + _HMAPPER** aphMappers; + DWORD cSupportedAlgs; + ALG_ID* palgSupportedAlgs; + DWORD grbitEnabledProtocols; + DWORD dwMinimumCypherStrength; + DWORD dwMaximumCypherStrength; + DWORD dwSessionLifespan; + DWORD dwFlags; + DWORD reserved; +} +alias SCHANNEL_CRED* PSCHANNEL_CRED; + +struct SecPkgCred_SupportedAlgs { + DWORD cSupportedAlgs; + ALG_ID* palgSupportedAlgs; +} +alias SecPkgCred_SupportedAlgs* PSecPkgCred_SupportedAlgs; + +struct SecPkgCred_CypherStrengths { + DWORD dwMinimumCypherStrength; + DWORD dwMaximumCypherStrength; +} +alias SecPkgCred_CypherStrengths* PSecPkgCred_CypherStrengths; + +struct SecPkgCred_SupportedProtocols { + DWORD grbitProtocol; +} +alias SecPkgCred_SupportedProtocols* PSecPkgCred_SupportedProtocols; + +struct SecPkgContext_IssuerListInfoEx { + PCERT_NAME_BLOB aIssuers; + DWORD cIssuers; +} +alias SecPkgContext_IssuerListInfoEx* PSecPkgContext_IssuerListInfoEx; + +struct SecPkgContext_ConnectionInfo { + DWORD dwProtocol; + ALG_ID aiCipher; + DWORD dwCipherStrength; + ALG_ID aiHash; + DWORD dwHashStrength; + ALG_ID aiExch; + DWORD dwExchStrength; +} +alias SecPkgContext_ConnectionInfo* PSecPkgContext_ConnectionInfo; ADDED src/win32/secext.d Index: src/win32/secext.d ================================================================== --- src/win32/secext.d +++ src/win32/secext.d @@ -0,0 +1,52 @@ +/***********************************************************************\ +* secext.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +// Don't include this file directly, use win32.security instead. +module win32.secext; +pragma(lib, "secur32.lib"); + +private import win32.w32api, win32.windef; + +static assert (_WIN32_WINNT >= 0x0501, + "SecExt is only available on WindowsXP and later"); + +enum EXTENDED_NAME_FORMAT { + NameUnknown, + NameFullyQualifiedDN, + NameSamCompatible, + NameDisplay, // = 3 + NameUniqueId = 6, + NameCanonical, + NameUserPrincipal, + NameCanonicalEx, + NameServicePrincipal, // = 10 + NameDnsDomain = 12 +} +alias EXTENDED_NAME_FORMAT* PEXTENDED_NAME_FORMAT; + +extern (Windows) { + BOOLEAN GetComputerObjectNameA(EXTENDED_NAME_FORMAT, LPSTR, PULONG); + BOOLEAN GetComputerObjectNameW(EXTENDED_NAME_FORMAT, LPWSTR, PULONG); + BOOLEAN GetUserNameExA(EXTENDED_NAME_FORMAT, LPSTR, PULONG); + BOOLEAN GetUserNameExW(EXTENDED_NAME_FORMAT, LPWSTR, PULONG); + BOOLEAN TranslateNameA(LPCSTR, EXTENDED_NAME_FORMAT, + EXTENDED_NAME_FORMAT, LPSTR, PULONG); + BOOLEAN TranslateNameW(LPCWSTR, EXTENDED_NAME_FORMAT, + EXTENDED_NAME_FORMAT, LPWSTR, PULONG); +} + +version (Unicode) { + alias GetComputerObjectNameW GetComputerObjectName; + alias GetUserNameExW GetUserNameEx; + alias TranslateNameW TranslateName; +} else { + alias GetComputerObjectNameA GetComputerObjectName; + alias GetUserNameExA GetUserNameEx; + alias TranslateNameA TranslateName; +} ADDED src/win32/servprov.d Index: src/win32/servprov.d ================================================================== --- src/win32/servprov.d +++ src/win32/servprov.d @@ -0,0 +1,16 @@ +/***********************************************************************\ +* servprov.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.10 * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.servprov; + +private import win32.basetyps, win32.unknwn, win32.windef, win32.wtypes; + +interface IServiceProvider : IUnknown { + HRESULT QueryService(REFGUID, REFIID, void**); +} ADDED src/win32/setupapi.d Index: src/win32/setupapi.d ================================================================== --- src/win32/setupapi.d +++ src/win32/setupapi.d @@ -0,0 +1,1979 @@ +/***********************************************************************\ +* setupapi.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Vladimir Vlasov * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.setupapi; +pragma(lib, "setupapi.lib"); + +private import win32.basetyps, win32.commctrl, win32.prsht, win32.w32api, + win32.winreg, win32.windef; +private import win32.winbase; // for SYSTEMTIME + +/*static if(_WIN32_WINNT < _WIN32_WINDOWS) { + const UINT _SETUPAPI_VER = _WIN32_WINNT; // SetupAPI version follows Windows NT version +} else static if(_WIN32_WINDOWS) { + static if(_WIN32_WINDOWS >= 0x0490) { + const UINT _SETUPAPI_VER = 0x0500; // WinME uses same version of SetupAPI as Win2k + } else static if(_WIN32_WINDOWS >= 0x0410) { + const UINT _SETUPAPI_VER = 0x0410; // Indicates version of SetupAPI shipped with Win98 + } else { + const UINT _SETUPAPI_VER = 0x0400; // Earliest SetupAPI version + } +} else { + const UINT _SETUPAPI_VER = 0x0501; +} + +version (WindowsNTonly) { + static if (_WIN32_WINNT >= 0x500) { + const UINT USE_SP_DRVINFO_DATA_V1 = 0; + } else { + const UINT USE_SP_DRVINFO_DATA_V1 = 1; + } +} else { + const UINT USE_SP_DRVINFO_DATA_V1 = 1; +}*/ +/+ +const UINT _SETUPAPI_VER = 0x0400; // Earliest SetupAPI version +const UINT USE_SP_DRVINFO_DATA_V1 = 1; ++/ +const UINT _SETUPAPI_VER = WINVER; +const bool USE_SP_DRVINFO_DATA_V1 = !_WIN32_WINNT_ONLY || _WIN32_WINNT < 0x500; + +enum : uint { + LINE_LEN = 256, + MAX_INF_STRING_LENGTH = 4096, + MAX_TITLE_LEN = 60, + MAX_INSTRUCTION_LEN = 256, + MAX_LABEL_LEN = 30, + MAX_SERVICE_NAME_LEN = 256, + MAX_SUBTITLE_LEN = 256, + SP_MAX_MACHINENAME_LENGTH = MAX_PATH + 3 +} + +enum : DWORD { + COPYFLG_WARN_IF_SKIP = 0x00000001, + COPYFLG_NOSKIP = 0x00000002, + COPYFLG_NOVERSIONCHECK = 0x00000004, + COPYFLG_FORCE_FILE_IN_USE = 0x00000008, + COPYFLG_NO_OVERWRITE = 0x00000010, + COPYFLG_NO_VERSION_DIALOG = 0x00000020, + COPYFLG_OVERWRITE_OLDER_ONLY = 0x00000040, + COPYFLG_REPLACEONLY = 0x00000400, + COPYFLG_NODECOMP = 0x00000800, + COPYFLG_REPLACE_BOOT_FILE = 0x00001000, + COPYFLG_NOPRUNE = 0x00002000 +} + +enum : DWORD { + DELFLG_IN_USE = 0x00000001, + DELFLG_IN_USE1 = 0x00010000 +} + +enum : DWORD { + DI_REMOVEDEVICE_GLOBAL = 0x00000001, + DI_REMOVEDEVICE_CONFIGSPECIFIC = 0x00000002, + DI_UNREMOVEDEVICE_CONFIGSPECIFIC = 0x00000002, + DI_SHOWOEM = 0x00000001, + DI_SHOWCOMPAT = 0x00000002, + DI_SHOWCLASS = 0x00000004, + DI_SHOWALL = 0x00000007, + DI_NOVCP = 0x00000008, + DI_DIDCOMPAT = 0x00000010, + DI_DIDCLASS = 0x00000020, + DI_AUTOASSIGNRES = 0x00000040, + DI_NEEDRESTART = 0x00000080, + DI_NEEDREBOOT = 0x00000100, + DI_NOBROWSE = 0x00000200, + DI_MULTMFGS = 0x00000400, + DI_DISABLED = 0x00000800, + DI_GENERALPAGE_ADDED = 0x00001000, + DI_RESOURCEPAGE_ADDED = 0x00002000, + DI_PROPERTIES_CHANGE = 0x00004000, + DI_INF_IS_SORTED = 0x00008000, + DI_ENUMSINGLEINF = 0x00010000, + DI_DONOTCALLCONFIGMG = 0x00020000, + DI_INSTALLDISABLED = 0x00040000, + DI_COMPAT_FROM_CLASS = 0x00080000, + DI_CLASSINSTALLPARAMS = 0x00100000, + DI_NODI_DEFAULTACTION = 0x00200000, + DI_QUIETINSTALL = 0x00800000, + DI_NOFILECOPY = 0x01000000, + DI_FORCECOPY = 0x02000000, + DI_DRIVERPAGE_ADDED = 0x04000000, + DI_USECI_SELECTSTRINGS = 0x08000000, + DI_OVERRIDE_INFFLAGS = 0x10000000, + DI_PROPS_NOCHANGEUSAGE = 0x20000000, + DI_NOSELECTICONS = 0x40000000, + DI_NOWRITE_IDS = 0x80000000, + DI_FLAGSEX_USEOLDINFSEARCH = 0x00000001, + DI_FLAGSEX_AUTOSELECTRANK0 = 0x00000002, + DI_FLAGSEX_CI_FAILED = 0x00000004, + DI_FLAGSEX_DIDINFOLIST = 0x00000010, + DI_FLAGSEX_DIDCOMPATINFO = 0x00000020, + DI_FLAGSEX_FILTERCLASSES = 0x00000040, + DI_FLAGSEX_SETFAILEDINSTALL = 0x00000080, + DI_FLAGSEX_DEVICECHANGE = 0x00000100, + DI_FLAGSEX_ALWAYSWRITEIDS = 0x00000200, + DI_FLAGSEX_PROPCHANGE_PENDING = 0x00000400, + DI_FLAGSEX_ALLOWEXCLUDEDDRVS = 0x00000800, + DI_FLAGSEX_NOUIONQUERYREMOVE = 0x00001000, + DI_FLAGSEX_USECLASSFORCOMPAT = 0x00002000, + DI_FLAGSEX_OLDINF_IN_CLASSLIST = 0x00004000, + DI_FLAGSEX_NO_DRVREG_MODIFY = 0x00008000, + DI_FLAGSEX_IN_SYSTEM_SETUP = 0x00010000, + DI_FLAGSEX_INET_DRIVER = 0x00020000, + DI_FLAGSEX_APPENDDRIVERLIST = 0x00040000, + DI_FLAGSEX_PREINSTALLBACKUP = 0x00080000, + DI_FLAGSEX_BACKUPONREPLACE = 0x00100000, + DI_FLAGSEX_DRIVERLIST_FROM_URL = 0x00200000, + DI_FLAGSEX_RESERVED1 = 0x00400000, + DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS = 0x00800000, + DI_FLAGSEX_POWERPAGE_ADDED = 0x01000000 +} + +enum : DWORD { + DIBCI_NOINSTALLCLASS = 0x00000001, + DIBCI_NODISPLAYCLASS = 0x00000002 +} + +enum : DWORD { + DICD_GENERATE_ID = 0x00000001, + DICD_INHERIT_CLASSDRVS = 0x00000002 +} + +enum : DWORD { + DICS_ENABLE = 1, + DICS_DISABLE, + DICS_PROPCHANGE, + DICS_START, + DICS_STOP // = 5 +} + +enum : DWORD { + DICS_FLAG_GLOBAL = 1, + DICS_FLAG_CONFIGSPECIFIC = 2, + DICS_FLAG_CONFIGGENERAL = 4 +} + +alias UINT DI_FUNCTION; + +enum : DI_FUNCTION { + DIF_SELECTDEVICE = 1, + DIF_INSTALLDEVICE, + DIF_ASSIGNRESOURCES, + DIF_PROPERTIES, + DIF_REMOVE, + DIF_FIRSTTIMESETUP, + DIF_FOUNDDEVICE, + DIF_SELECTCLASSDRIVERS, + DIF_VALIDATECLASSDRIVERS, + DIF_INSTALLCLASSDRIVERS, + DIF_CALCDISKSPACE, + DIF_DESTROYPRIVATEDATA, + DIF_VALIDATEDRIVER, + DIF_MOVEDEVICE, + DIF_DETECT, + DIF_INSTALLWIZARD, + DIF_DESTROYWIZARDDATA, + DIF_PROPERTYCHANGE, + DIF_ENABLECLASS, + DIF_DETECTVERIFY, + DIF_INSTALLDEVICEFILES, + DIF_UNREMOVE, + DIF_SELECTBESTCOMPATDRV, + DIF_ALLOW_INSTALL, + DIF_REGISTERDEVICE, + DIF_NEWDEVICEWIZARD_PRESELECT, + DIF_NEWDEVICEWIZARD_SELECT, + DIF_NEWDEVICEWIZARD_PREANALYZE, + DIF_NEWDEVICEWIZARD_POSTANALYZE, + DIF_NEWDEVICEWIZARD_FINISHINSTALL, + DIF_UNUSED1, + DIF_INSTALLINTERFACES, + DIF_DETECTCANCEL, + DIF_REGISTER_COINSTALLERS, + DIF_ADDPROPERTYPAGE_ADVANCED, + DIF_ADDPROPERTYPAGE_BASIC, + DIF_RESERVED1, + DIF_TROUBLESHOOTER, + DIF_POWERMESSAGEWAKE // = 39 +} + +enum : DWORD { + DIGCF_DEFAULT = 0x00000001, + DIGCF_PRESENT = 0x00000002, + DIGCF_ALLCLASSES = 0x00000004, + DIGCF_PROFILE = 0x00000008, + DIGCF_DEVICEINTERFACE = 0x00000010 +} + +deprecated enum : DWORD { + DIGCF_INTERFACEDEVICE = DIGCF_DEVICEINTERFACE +} + +enum : DWORD { + DIGCDP_FLAG_BASIC = 0x00000001, + DIGCDP_FLAG_ADVANCED = 0x00000002 +} + +enum : DWORD { + DIOCR_INSTALLER = 0x00000001, + DIOCR_INTERFACE = 0x00000002 +} + +enum : DWORD { + DIODI_NO_ADD = 0x00000001 +} + +enum : DWORD { + DIOD_INHERIT_CLASSDRVS = 0x00000002, + DIOD_CANCEL_REMOVE = 0x00000004 +} + +enum : DWORD { + DIREG_DEV = 0x00000001, + DIREG_DRV = 0x00000002, + DIREG_BOTH = 0x00000004 +} + +enum : int { + DIRID_ABSOLUTE = -1, + DIRID_NULL = 0, + DIRID_SRCPATH = 1, + DIRID_WINDOWS = 10, + DIRID_SYSTEM = 11, + DIRID_DRIVERS = 12, + DIRID_IOSUBSYS = DIRID_DRIVERS, + DIRID_INF = 17, + DIRID_HELP = 18, + DIRID_FONTS = 20, + DIRID_VIEWERS = 21, + DIRID_COLOR = 23, + DIRID_APPS = 24, + DIRID_SHARED = 25, + DIRID_BOOT = 30, + DIRID_SYSTEM16 = 50, + DIRID_SPOOL = 51, + DIRID_SPOOLDRIVERS = 52, + DIRID_USERPROFILE = 53, + DIRID_LOADER = 54, + DIRID_PRINTPROCESSOR = 55, + DIRID_DEFAULT = DIRID_SYSTEM +} + +enum : int { + DIRID_COMMON_STARTMENU = 16406, + DIRID_COMMON_PROGRAMS = 16407, + DIRID_COMMON_STARTUP = 16408, + DIRID_COMMON_DESKTOPDIRECTORY = 16409, + DIRID_COMMON_FAVORITES = 16415, + DIRID_COMMON_APPDATA = 16419, + DIRID_PROGRAM_FILES = 16422, + DIRID_SYSTEM_X86 = 16425, + DIRID_PROGRAM_FILES_X86 = 16426, + DIRID_PROGRAM_FILES_COMMON = 16427, + DIRID_PROGRAM_FILES_COMMONX86 = 16428, + DIRID_COMMON_TEMPLATES = 16429, + DIRID_COMMON_DOCUMENTS = 16430, + DIRID_USER = 0x8000, + DIRID_ABSOLUTE_16BIT = 0xffff +} + +enum : DWORD { + DMI_MASK = 0x00000001, + DMI_BKCOLOR = 0x00000002, + DMI_USERECT = 0x00000004 +} + +enum : DWORD { + DNF_DUPDESC = 0x00000001, + DNF_OLDDRIVER = 0x00000002, + DNF_EXCLUDEFROMLIST = 0x00000004, + DNF_NODRIVER = 0x00000008, + DNF_LEGACYINF = 0x00000010, + DNF_CLASS_DRIVER = 0x00000020, + DNF_COMPATIBLE_DRIVER = 0x00000040, + DNF_INET_DRIVER = 0x00000080, + DNF_UNUSED1 = 0x00000100, + DNF_INDEXED_DRIVER = 0x00000200, + DNF_OLD_INET_DRIVER = 0x00000400, + DNF_BAD_DRIVER = 0x00000800, + DNF_DUPPROVIDER = 0x00001000 +} + +enum : UINT { + DPROMPT_SUCCESS, + DPROMPT_CANCEL, + DPROMPT_SKIPFILE, + DPROMPT_BUFFERTOOSMALL, + DPROMPT_OUTOFMEMORY // = 4 +} + +enum : DWORD { + DRIVER_HARDWAREID_RANK = 0x00000FFF, + DRIVER_COMPATID_RANK = 0x00003FFF, + DRIVER_UNTRUSTED_RANK = 0x00008000, + DRIVER_UNTRUSTED_HARDWAREID_RANK = 0x00008FFF, + DRIVER_UNTRUSTED_COMPATID_RANK = 0x0000BFFF, + DRIVER_W9X_SUSPECT_RANK = 0x0000C000, + DRIVER_W9X_SUSPECT_HARDWAREID_RANK = 0x0000CFFF, + DRIVER_W9X_SUSPECT_COMPATID_RANK = 0x0000FFFF +} + +enum : DWORD { + DYNAWIZ_FLAG_PAGESADDED = 0x00000001, + DYNAWIZ_FLAG_INSTALLDET_NEXT = 0x00000002, + DYNAWIZ_FLAG_INSTALLDET_PREV = 0x00000004, + DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT = 0x00000008 +} + +enum : WORD { + ENABLECLASS_QUERY, + ENABLECLASS_SUCCESS, + ENABLECLASS_FAILURE // = 2 +} + +enum : DWORD { + ERROR_EXPECTED_SECTION_NAME = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0, + ERROR_BAD_SECTION_NAME_LINE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 1, + ERROR_SECTION_NAME_TOO_LONG = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 2, + ERROR_GENERAL_SYNTAX = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 3, + ERROR_WRONG_INF_STYLE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x100, + ERROR_NOT_INSTALLED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x1000, + ERROR_SECTION_NOT_FOUND = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x101, + ERROR_LINE_NOT_FOUND = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x102, + ERROR_NO_BACKUP = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x103, + ERROR_NO_ASSOCIATED_CLASS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x200, + ERROR_CLASS_MISMATCH = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x201, + ERROR_DUPLICATE_FOUND = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x202, + ERROR_NO_DRIVER_SELECTED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x203, + ERROR_KEY_DOES_NOT_EXIST = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x204, + ERROR_INVALID_DEVINST_NAME = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x205, + ERROR_INVALID_CLASS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x206, + ERROR_DEVINST_ALREADY_EXISTS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x207, + ERROR_DEVINFO_NOT_REGISTERED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x208, + ERROR_INVALID_REG_PROPERTY = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x209, + ERROR_NO_INF = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20A, + ERROR_NO_SUCH_DEVINST = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20B, + ERROR_CANT_LOAD_CLASS_ICON = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20C, + ERROR_INVALID_CLASS_INSTALLER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20D, + ERROR_DI_DO_DEFAULT = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20E, + ERROR_DI_NOFILECOPY = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20F, + ERROR_INVALID_HWPROFILE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x210, + ERROR_NO_DEVICE_SELECTED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x211, + ERROR_DEVINFO_LIST_LOCKED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x212, + ERROR_DEVINFO_DATA_LOCKED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x213, + ERROR_DI_BAD_PATH = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x214, + ERROR_NO_CLASSINSTALL_PARAMS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x215, + ERROR_FILEQUEUE_LOCKED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x216, + ERROR_BAD_SERVICE_INSTALLSECT = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x217, + ERROR_NO_CLASS_DRIVER_LIST = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x218, + ERROR_NO_ASSOCIATED_SERVICE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x219, + ERROR_NO_DEFAULT_DEVICE_INTERFACE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21A, + ERROR_DEVICE_INTERFACE_ACTIVE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21B, + ERROR_DEVICE_INTERFACE_REMOVED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21C, + ERROR_BAD_INTERFACE_INSTALLSECT = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21D, + ERROR_NO_SUCH_INTERFACE_CLASS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21E, + ERROR_INVALID_REFERENCE_STRING = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21F, + ERROR_INVALID_MACHINENAME = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x220, + ERROR_REMOTE_COMM_FAILURE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x221, + ERROR_MACHINE_UNAVAILABLE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x222, + ERROR_NO_CONFIGMGR_SERVICES = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x223, + ERROR_INVALID_PROPPAGE_PROVIDER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x224, + ERROR_NO_SUCH_DEVICE_INTERFACE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x225, + ERROR_DI_POSTPROCESSING_REQUIRED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x226, + ERROR_INVALID_COINSTALLER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x227, + ERROR_NO_COMPAT_DRIVERS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x228, + ERROR_NO_DEVICE_ICON = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x229, + ERROR_INVALID_INF_LOGCONFIG = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22A, + ERROR_DI_DONT_INSTALL = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22B, + ERROR_INVALID_FILTER_DRIVER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22C, + ERROR_NON_WINDOWS_NT_DRIVER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22D, + ERROR_NON_WINDOWS_DRIVER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22E, + ERROR_NO_CATALOG_FOR_OEM_INF = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22F, + ERROR_DEVINSTALL_QUEUE_NONNATIVE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x230, + ERROR_NOT_DISABLEABLE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x231, + ERROR_CANT_REMOVE_DEVINST = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x232 +} + +deprecated enum : DWORD { + ERROR_NO_DEFAULT_INTERFACE_DEVICE = ERROR_NO_DEFAULT_DEVICE_INTERFACE, + ERROR_INTERFACE_DEVICE_ACTIVE = ERROR_DEVICE_INTERFACE_ACTIVE, + ERROR_INTERFACE_DEVICE_REMOVED = ERROR_DEVICE_INTERFACE_REMOVED, + ERROR_NO_SUCH_INTERFACE_DEVICE = ERROR_NO_SUCH_DEVICE_INTERFACE, +} + +enum : UINT { + FILEOP_COPY, + FILEOP_RENAME, + FILEOP_DELETE, + FILEOP_BACKUP, + FILEOP_NEWPATH, // = 4 + FILEOP_ABORT = 0, + FILEOP_DOIT, + FILEOP_SKIP, // = 2 + FILEOP_RETRY = FILEOP_DOIT +} + +enum : UINT { + FILE_COMPRESSION_NONE, + FILE_COMPRESSION_WINLZA, + FILE_COMPRESSION_MSZIP, + FILE_COMPRESSION_NTCAB // = 3 +} + +enum : DWORD { + FLG_ADDREG_TYPE_SZ = 0x00000000, + FLG_ADDREG_BINVALUETYPE = 0x00000001, + FLG_ADDREG_NOCLOBBER = 0x00000002, + FLG_ADDREG_DELVAL = 0x00000004, + FLG_ADDREG_APPEND = 0x00000008, + FLG_ADDREG_KEYONLY = 0x00000010, + FLG_ADDREG_OVERWRITEONLY = 0x00000020, + FLG_ADDREG_TYPE_MULTI_SZ = 0x00010000, + FLG_ADDREG_TYPE_EXPAND_SZ = 0x00020000, + FLG_ADDREG_TYPE_BINARY = 0x00000000 | FLG_ADDREG_BINVALUETYPE, + FLG_ADDREG_TYPE_DWORD = 0x00010000 | FLG_ADDREG_BINVALUETYPE, + FLG_ADDREG_TYPE_NONE = 0x00020000 | FLG_ADDREG_BINVALUETYPE, + FLG_ADDREG_TYPE_MASK = 0xFFFF0000 | FLG_ADDREG_BINVALUETYPE +} + +static if(_SETUPAPI_VER >= 0x0501) { + enum : DWORD { + FLG_ADDREG_64BITKEY = 0x00001000, + FLG_ADDREG_KEYONLY_COMMON = 0x00002000, + FLG_ADDREG_32BITKEY = 0x00004000, + FLG_ADDREG_DELREG_BIT = 0x00008000 + } +} + +enum : DWORD { + FLG_DELREG_VALUE = 0x00000000 +} + +static if(_SETUPAPI_VER >= 0x0501) { + enum : DWORD { + FLG_DELREG_TYPE_MASK = FLG_ADDREG_TYPE_MASK, + FLG_DELREG_TYPE_SZ = FLG_ADDREG_TYPE_SZ, + FLG_DELREG_TYPE_MULTI_SZ = FLG_ADDREG_TYPE_MULTI_SZ, + FLG_DELREG_TYPE_EXPAND_SZ = FLG_ADDREG_TYPE_EXPAND_SZ, + FLG_DELREG_TYPE_BINARY = FLG_ADDREG_TYPE_BINARY, + FLG_DELREG_TYPE_DWORD = FLG_ADDREG_TYPE_DWORD, + FLG_DELREG_TYPE_NONE = FLG_ADDREG_TYPE_NONE, + FLG_DELREG_64BITKEY = FLG_ADDREG_64BITKEY, + FLG_DELREG_KEYONLY_COMMON = FLG_ADDREG_KEYONLY_COMMON, + FLG_DELREG_32BITKEY = FLG_ADDREG_32BITKEY, + FLG_DELREG_OPERATION_MASK = 0x000000FE, + FLG_DELREG_MULTI_SZ_DELSTRING = 0x00000002 | FLG_DELREG_TYPE_MULTI_SZ | FLG_ADDREG_DELREG_BIT + } +} + +enum : DWORD { + FLG_BITREG_CLEARBITS = 0x00000000, + FLG_BITREG_SETBITS = 0x00000001 +} + +static if(_SETUPAPI_VER >= 0x0501) { + enum : DWORD { + FLG_BITREG_64BITKEY = 0x00001000, + FLG_BITREG_32BITKEY = 0x00004000 + } +} + +enum : DWORD { + FLG_PROFITEM_CURRENTUSER = 0x00000001, + FLG_PROFITEM_DELETE = 0x00000002, + FLG_PROFITEM_GROUP = 0x00000004, + FLG_PROFITEM_CSIDL = 0x00000008 +} + +enum : DWORD { + FLG_REGSVR_DLLREGISTER = 0x00000001, + FLG_REGSVR_DLLINSTALL = 0x00000002 +} + +enum { + IDD_DYNAWIZ_FIRSTPAGE = 10000, + IDD_DYNAWIZ_SELECT_PREVPAGE, + IDD_DYNAWIZ_SELECT_NEXTPAGE, + IDD_DYNAWIZ_ANALYZE_PREVPAGE, + IDD_DYNAWIZ_ANALYZE_NEXTPAGE, // = 1004 + IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE = 10006, + IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE, + IDD_DYNAWIZ_INSTALLDETECTED_NODEVS, + IDD_DYNAWIZ_SELECTDEV_PAGE, + IDD_DYNAWIZ_ANALYZEDEV_PAGE, + IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE, + IDD_DYNAWIZ_SELECTCLASS_PAGE, // = 10012 + MIN_IDD_DYNAWIZ_RESOURCE_ID = 10000, + MAX_IDD_DYNAWIZ_RESOURCE_ID = 11000 +} + +enum : DWORD { + IDF_NOBROWSE = 0x00000001, + IDF_NOSKIP = 0x00000002, + IDF_NODETAILS = 0x00000004, + IDF_NOCOMPRESSED = 0x00000008, + IDF_CHECKFIRST = 0x00000100, + IDF_NOBEEP = 0x00000200, + IDF_NOFOREGROUND = 0x00000400, + IDF_WARNIFSKIP = 0x00000800 +} + +static if(_SETUPAPI_VER >= 0x0501) { + enum : DWORD { + IDF_NOREMOVABLEMEDIAPROMPT = 0x00001000, + IDF_USEDISKNAMEASPROMPT = 0x00002000, + IDF_OEMDISK = 0x80000000 + } +} + +enum { + IDI_RESOURCEFIRST = 159, + IDI_RESOURCE = 159, + IDI_RESOURCELAST = 161, + IDI_RESOURCEOVERLAYFIRST = 161, + IDI_RESOURCEOVERLAYLAST = 161, + IDI_CONFLICT = 161, + IDI_PROBLEM_OVL = 500, + IDI_DISABLED_OVL = 501, + IDI_FORCED_OVL = 502, + IDI_CLASSICON_OVERLAYFIRST = 500, + IDI_CLASSICON_OVERLAYLAST = 502 +} + +enum : DWORD { + INF_STYLE_NONE = 0x00000000, + INF_STYLE_OLDNT = 0x00000001, + INF_STYLE_WIN4 = 0x00000002, + INF_STYLE_CACHE_ENABLE = 0x00000010, + INF_STYLE_CACHE_DISABLE = 0x00000020 +} + +enum : DWORD { + INFINFO_INF_SPEC_IS_HINF = 1, + INFINFO_INF_NAME_IS_ABSOLUTE, + INFINFO_DEFAULT_SEARCH, + INFINFO_REVERSE_DEFAULT_SEARCH, + INFINFO_INF_PATH_LIST_SEARCH // = 5 +} + +alias DWORD LogSeverity; +enum : LogSeverity { + LogSevInformation, + LogSevWarning, + LogSevError, + LogSevFatalError, + LogSevMaximum // = 4 +} + +const MAX_INSTALLWIZARD_DYNAPAGES = 20; + +enum : DWORD { + NDW_INSTALLFLAG_DIDFACTDEFS = 0x00000001, + NDW_INSTALLFLAG_HARDWAREALLREADYIN = 0x00000002, + NDW_INSTALLFLAG_NEEDSHUTDOWN = 0x00000200, + NDW_INSTALLFLAG_EXPRESSINTRO = 0x00000400, + NDW_INSTALLFLAG_SKIPISDEVINSTALLED = 0x00000800, + NDW_INSTALLFLAG_NODETECTEDDEVS = 0x00001000, + NDW_INSTALLFLAG_INSTALLSPECIFIC = 0x00002000, + NDW_INSTALLFLAG_SKIPCLASSLIST = 0x00004000, + NDW_INSTALLFLAG_CI_PICKED_OEM = 0x00008000, + NDW_INSTALLFLAG_PCMCIAMODE = 0x00010000, + NDW_INSTALLFLAG_PCMCIADEVICE = 0x00020000, + NDW_INSTALLFLAG_USERCANCEL = 0x00040000, + NDW_INSTALLFLAG_KNOWNCLASS = 0x00080000, + NDW_INSTALLFLAG_NEEDRESTART = 0x00000080, + NDW_INSTALLFLAG_NEEDREBOOT = 0x00000100 +} + +enum : DWORD { + SETDIRID_NOT_FULL_PATH = 0x00000001 +} + +enum : DWORD { + SP_COPY_DELETESOURCE = 0x0000001, + SP_COPY_REPLACEONLY = 0x0000002, + SP_COPY_NEWER = 0x0000004, + SP_COPY_NEWER_OR_SAME = 0x0000004, + SP_COPY_NOOVERWRITE = 0x0000008, + SP_COPY_NODECOMP = 0x0000010, + SP_COPY_LANGUAGEAWARE = 0x0000020, + SP_COPY_SOURCE_ABSOLUTE = 0x0000040, + SP_COPY_SOURCEPATH_ABSOLUTE = 0x0000080, + SP_COPY_IN_USE_NEEDS_REBOOT = 0x0000100, + SP_COPY_FORCE_IN_USE = 0x0000200, + SP_COPY_NOSKIP = 0x0000400, + SP_FLAG_CABINETCONTINUATION = 0x0000800, + SP_COPY_FORCE_NOOVERWRITE = 0x0001000, + SP_COPY_FORCE_NEWER = 0x0002000, + SP_COPY_WARNIFSKIP = 0x0004000, + SP_COPY_NOBROWSE = 0x0008000, + SP_COPY_NEWER_ONLY = 0x0010000, + SP_COPY_SOURCE_SIS_MASTER = 0x0020000, + SP_COPY_OEMINF_CATALOG_ONLY = 0x0040000, + SP_COPY_REPLACE_BOOT_FILE = 0x0080000, + SP_COPY_NOPRUNE = 0x0100000 +} + +static if(_SETUPAPI_VER >= 0x0501) { + enum : DWORD { + SP_COPY_OEM_F6_INF = 0x0200000 + } +} + +enum : DWORD { + SPCRP_SECURITY = 23, + SPCRP_SECURITY_SDS, + SPCRP_DEVTYPE, + SPCRP_EXCLUSIVE, + SPCRP_CHARACTERISTICS, + SPCRP_MAXIMUM_PROPERTY // = 28 +} + +enum : DWORD { + SPDIT_NODRIVER, + SPDIT_CLASSDRIVER, + SPDIT_COMPATDRIVER // = 2 +} + +enum : DWORD { + SPDRP_DEVICEDESC, + SPDRP_HARDWAREID, + SPDRP_COMPATIBLEIDS, + SPDRP_UNUSED0, + SPDRP_SERVICE, + SPDRP_UNUSED1, + SPDRP_UNUSED2, + SPDRP_CLASS, + SPDRP_CLASSGUID, + SPDRP_DRIVER, + SPDRP_CONFIGFLAGS, + SPDRP_MFG, + SPDRP_FRIENDLYNAME, + SPDRP_LOCATION_INFORMATION, + SPDRP_PHYSICAL_DEVICE_OBJECT_NAME, + SPDRP_CAPABILITIES, + SPDRP_UI_NUMBER, + SPDRP_UPPERFILTERS, + SPDRP_LOWERFILTERS, + SPDRP_BUSTYPEGUID, + SPDRP_LEGACYBUSTYPE, + SPDRP_BUSNUMBER, + SPDRP_ENUMERATOR_NAME, + SPDRP_SECURITY, + SPDRP_SECURITY_SDS, + SPDRP_DEVTYPE, + SPDRP_EXCLUSIVE, + SPDRP_CHARACTERISTICS, + SPDRP_ADDRESS, // = 28 + SPDRP_UI_NUMBER_DESC_FORMAT = 30, + SPDRP_MAXIMUM_PROPERTY = 31 +} + +enum : UINT { + SPDSL_IGNORE_DISK = 1, + SPDSL_DISALLOW_NEGATIVE_ADJUST +} + +enum : UINT { + SPFILENOTIFY_STARTQUEUE = 1, + SPFILENOTIFY_ENDQUEUE, + SPFILENOTIFY_STARTSUBQUEUE, + SPFILENOTIFY_ENDSUBQUEUE, + SPFILENOTIFY_STARTDELETE, + SPFILENOTIFY_ENDDELETE, + SPFILENOTIFY_DELETEERROR, + SPFILENOTIFY_STARTRENAME, + SPFILENOTIFY_ENDRENAME, + SPFILENOTIFY_RENAMEERROR, + SPFILENOTIFY_STARTCOPY, + SPFILENOTIFY_ENDCOPY, + SPFILENOTIFY_COPYERROR, + SPFILENOTIFY_NEEDMEDIA, + SPFILENOTIFY_QUEUESCAN, + SPFILENOTIFY_CABINETINFO, + SPFILENOTIFY_FILEINCABINET, + SPFILENOTIFY_NEEDNEWCABINET, + SPFILENOTIFY_FILEEXTRACTED, + SPFILENOTIFY_FILEOPDELAYED, + SPFILENOTIFY_STARTBACKUP, + SPFILENOTIFY_BACKUPERROR, + SPFILENOTIFY_ENDBACKUP, + SPFILENOTIFY_QUEUESCAN_EX, + SPFILENOTIFY_STARTREGISTRATION, // = 25 + SPFILENOTIFY_ENDREGISTRATION = 32, + SPFILENOTIFY_LANGMISMATCH = 0x00010000, + SPFILENOTIFY_TARGETEXISTS = 0x00020000, + SPFILENOTIFY_TARGETNEWER = 0x00040000 +} + +static if(_SETUPAPI_VER >= 0x0501) { + enum : UINT { + SPFILENOTIFY_QUEUESCAN_SIGNERINFO = 0x00000040 + } +} + +enum : DWORD { + SPFILELOG_SYSTEMLOG = 0x00000001, + SPFILELOG_OEMFILE = 0x00000001, + SPFILELOG_FORCENEW = 0x00000002, + SPFILELOG_QUERYONLY = 0x00000004 +} + +enum : INT { + SPFILEQ_FILE_IN_USE = 0x00000001, + SPFILEQ_REBOOT_RECOMMENDED = 0x00000002, + SPFILEQ_REBOOT_IN_PROGRESS = 0x00000004 +} + +enum : DWORD { + SPINT_ACTIVE = 0x00000001, + SPINT_DEFAULT = 0x00000002, + SPINT_REMOVED = 0x00000004 +} + +deprecated enum : DWORD { + SPID_ACTIVE = SPINT_ACTIVE, + SPID_DEFAULT = SPINT_DEFAULT, + SPID_REMOVED = SPINT_REMOVED +} + +enum : UINT { + SPINST_LOGCONFIG = 0x00000001, + SPINST_INIFILES = 0x00000002, + SPINST_REGISTRY = 0x00000004, + SPINST_INI2REG = 0x00000008, + SPINST_FILES = 0x00000010, + SPINST_BITREG = 0x00000020, + SPINST_REGSVR = 0x00000040, + SPINST_UNREGSVR = 0x00000080, + SPINST_PROFILEITEMS = 0x00000100, + SPINST_SINGLESECTION = 0x00010000, + SPINST_LOGCONFIG_IS_FORCED = 0x00020000, + SPINST_LOGCONFIGS_ARE_OVERRIDES = 0x00040000 +} + +static if(_SETUPAPI_VER >= 0x0501) { + enum : UINT { + SPINST_COPYINF = 0x00000200, + SPINST_ALL = 0x000003ff, + SPINST_REGISTERCALLBACKAWARE = 0x00080000 + } +} else { + enum : UINT { + SPINST_ALL = 0x000001ff + } +} + +enum : DWORD { + SPOST_NONE, + SPOST_PATH, + SPOST_URL, + SPOST_MAX // = 3 +} + +enum : DWORD { + SPPSR_SELECT_DEVICE_RESOURCES = 1, + SPPSR_ENUM_BASIC_DEVICE_PROPERTIES, + SPPSR_ENUM_ADV_DEVICE_PROPERTIES +} + +enum : DWORD { + SPQ_SCAN_FILE_PRESENCE = 0x00000001, + SPQ_SCAN_FILE_VALIDITY = 0x00000002, + SPQ_SCAN_USE_CALLBACK = 0x00000004, + SPQ_SCAN_USE_CALLBACKEX = 0x00000008, + SPQ_SCAN_INFORM_USER = 0x00000010, + SPQ_SCAN_PRUNE_COPY_QUEUE = 0x00000020 +} + +static if(_SETUPAPI_VER >= 0x0501) { + enum : DWORD { + SPQ_SCAN_USE_CALLBACK_SIGNERINFO = 0x00000040, + SPQ_SCAN_PRUNE_DELREN = 0x00000080 + } +} + +enum : UINT_PTR { + SPQ_DELAYED_COPY = 0x00000001 +} + +enum : DWORD { + SPRDI_FIND_DUPS = 0x00000001, +} + +enum : DWORD { + SPSVCINST_TAGTOFRONT = 0x00000001, + SPSVCINST_ASSOCSERVICE = 0x00000002, + SPSVCINST_DELETEEVENTLOGENTRY = 0x00000004, + SPSVCINST_NOCLOBBER_DISPLAYNAME = 0x00000008, + SPSVCINST_NOCLOBBER_STARTTYPE = 0x00000010, + SPSVCINST_NOCLOBBER_ERRORCONTROL = 0x00000020, + SPSVCINST_NOCLOBBER_LOADORDERGROUP = 0x00000040, + SPSVCINST_NOCLOBBER_DEPENDENCIES = 0x00000080, + SPSVCINST_NOCLOBBER_DESCRIPTION = 0x00000100, + SPSVCINST_STOPSERVICE = 0x00000200 +} + +static if(_SETUPAPI_VER >= 0x0501) { + enum : DWORD { + SPSVCINST_CLOBBER_SECURITY = 0x00000400 + } +} + +enum : DWORD { + SPWPT_SELECTDEVICE = 0x00000001 +} + +enum : DWORD { + SPWP_USE_DEVINFO_DATA = 0x00000001 +} + +enum : UINT { + SRCINFO_PATH = 1, + SRCINFO_TAGFILE, + SRCINFO_DESCRIPTION, + SRCINFO_FLAGS // = 4 +} + +enum : DWORD { + SRCLIST_TEMPORARY = 0x00000001, + SRCLIST_NOBROWSE = 0x00000002, + SRCLIST_SYSTEM = 0x00000010, + SRCLIST_USER = 0x00000020, + SRCLIST_SYSIFADMIN = 0x00000040, + SRCLIST_SUBDIRS = 0x00000100, + SRCLIST_APPEND = 0x00000200, + SRCLIST_NOSTRIPPLATFORM = 0x00000400 +} + +alias PVOID HINF; +alias PVOID HDSKSPC; +alias HANDLE HDEVINFO; +alias PVOID HSPFILEQ; +alias PVOID HSPFILELOG; + +enum SetupFileLogInfo { + SetupFileLogSourceFilename, + SetupFileLogChecksum, + SetupFileLogDiskTagfile, + SetupFileLogDiskDescription, + SetupFileLogOtherInfo, + SetupFileLogMax +} + +align(1): + +struct INFCONTEXT { + PVOID Inf; + PVOID CurrentInf; + UINT Section; + UINT Line; +} +alias INFCONTEXT* PINFCONTEXT; + +struct SP_INF_INFORMATION { + DWORD InfStyle; + DWORD InfCount; + BYTE _VersionData[1]; + BYTE* VersionData() { return _VersionData.ptr; } +} +alias SP_INF_INFORMATION* PSP_INF_INFORMATION; + +struct SP_ALTPLATFORM_INFO { + DWORD cbSize = SP_ALTPLATFORM_INFO.sizeof; + DWORD Platform; + DWORD MajorVersion; + DWORD MinorVersion; + WORD ProcessorArchitecture; + WORD Reserved; +} +alias SP_ALTPLATFORM_INFO* PSP_ALTPLATFORM_INFO; + +struct SP_ORIGINAL_FILE_INFO_A { + DWORD cbSize = SP_ORIGINAL_FILE_INFO_A.sizeof; + CHAR OriginalInfName[MAX_PATH]; + CHAR OriginalCatalogName[MAX_PATH]; +} +alias SP_ORIGINAL_FILE_INFO_A* PSP_ORIGINAL_FILE_INFO_A; + +struct SP_ORIGINAL_FILE_INFO_W { + DWORD cbSize = SP_ORIGINAL_FILE_INFO_W.sizeof; + WCHAR OriginalInfName[MAX_PATH]; + WCHAR OriginalCatalogName[MAX_PATH]; +} +alias SP_ORIGINAL_FILE_INFO_W* PSP_ORIGINAL_FILE_INFO_W; + +struct FILEPATHS_A { + PCSTR Target; + PCSTR Source; + UINT Win32Error; + DWORD Flags; +} +alias FILEPATHS_A* PFILEPATHS_A; + +struct FILEPATHS_W { + PCWSTR Target; + PCWSTR Source; + UINT Win32Error; + DWORD Flags; +} +alias FILEPATHS_W* PFILEPATHS_W; + +struct SOURCE_MEDIA_A { + PCSTR Reserved; + PCSTR Tagfile; + PCSTR Description; + PCSTR SourcePath; + PCSTR SourceFile; + DWORD Flags; +} +alias SOURCE_MEDIA_A* PSOURCE_MEDIA_A; + +struct SOURCE_MEDIA_W { + PCWSTR Reserved; + PCWSTR Tagfile; + PCWSTR Description; + PCWSTR SourcePath; + PCWSTR SourceFile; + DWORD Flags; +} +alias SOURCE_MEDIA_W* PSOURCE_MEDIA_W; + +struct CABINET_INFO_A { + PCSTR CabinetPath; + PCSTR CabinetFile; + PCSTR DiskName; + USHORT SetId; + USHORT CabinetNumber; +} +alias CABINET_INFO_A* PCABINET_INFO_A; + +struct CABINET_INFO_W { + PCWSTR CabinetPath; + PCWSTR CabinetFile; + PCWSTR DiskName; + USHORT SetId; + USHORT CabinetNumber; +} +alias CABINET_INFO_W* PCABINET_INFO_W; + +struct FILE_IN_CABINET_INFO_A { + PCSTR NameInCabinet; + DWORD FileSize; + DWORD Win32Error; + WORD DosDate; + WORD DosTime; + WORD DosAttribs; + CHAR FullTargetName[MAX_PATH]; +} +alias FILE_IN_CABINET_INFO_A* PFILE_IN_CABINET_INFO_A; + +struct FILE_IN_CABINET_INFO_W { + PCWSTR NameInCabinet; + DWORD FileSize; + DWORD Win32Error; + WORD DosDate; + WORD DosTime; + WORD DosAttribs; + WCHAR FullTargetName[MAX_PATH]; +} +alias FILE_IN_CABINET_INFO_W* PFILE_IN_CABINET_INFO_W; + +struct SP_FILE_COPY_PARAMS_A { + DWORD cbSize = SP_FILE_COPY_PARAMS_A.sizeof; + HSPFILEQ QueueHandle; + PCSTR SourceRootPath; + PCSTR SourcePath; + PCSTR SourceFilename; + PCSTR SourceDescription; + PCSTR SourceTagfile; + PCSTR TargetDirectory; + PCSTR TargetFilename; + DWORD CopyStyle; + HINF LayoutInf; + PCSTR SecurityDescriptor; +} +alias SP_FILE_COPY_PARAMS_A* PSP_FILE_COPY_PARAMS_A; + +struct SP_FILE_COPY_PARAMS_W { + DWORD cbSize = SP_FILE_COPY_PARAMS_W.sizeof; + HSPFILEQ QueueHandle; + PCWSTR SourceRootPath; + PCWSTR SourcePath; + PCWSTR SourceFilename; + PCWSTR SourceDescription; + PCWSTR SourceTagfile; + PCWSTR TargetDirectory; + PCWSTR TargetFilename; + DWORD CopyStyle; + HINF LayoutInf; + PCWSTR SecurityDescriptor; +} +alias SP_FILE_COPY_PARAMS_W* PSP_FILE_COPY_PARAMS_W; + +struct SP_DEVINFO_DATA { + DWORD cbSize = SP_DEVINFO_DATA.sizeof; + GUID ClassGuid; + DWORD DevInst; + ULONG_PTR Reserved; +} +alias SP_DEVINFO_DATA* PSP_DEVINFO_DATA; + +struct SP_DEVICE_INTERFACE_DATA { + DWORD cbSize = SP_DEVICE_INTERFACE_DATA.sizeof; + GUID InterfaceClassGuid; + DWORD Flags; + ULONG_PTR Reserved; +} +alias SP_DEVICE_INTERFACE_DATA* PSP_DEVICE_INTERFACE_DATA; +deprecated alias SP_DEVICE_INTERFACE_DATA SP_INTERFACE_DEVICE_DATA; +deprecated alias SP_DEVICE_INTERFACE_DATA* PSP_INTERFACE_DEVICE_DATA; + +struct SP_DEVICE_INTERFACE_DETAIL_DATA_A { + DWORD cbSize = SP_DEVICE_INTERFACE_DETAIL_DATA_A.sizeof; + CHAR _DevicePath[1]; + CHAR* DevicePath() { return _DevicePath.ptr; } +} +alias SP_DEVICE_INTERFACE_DETAIL_DATA_A* PSP_DEVICE_INTERFACE_DETAIL_DATA_A; + +struct SP_DEVICE_INTERFACE_DETAIL_DATA_W { + DWORD cbSize = SP_DEVICE_INTERFACE_DETAIL_DATA_W.sizeof; + WCHAR _DevicePath[1]; + WCHAR* DevicePath() { return _DevicePath.ptr; } +} +alias SP_DEVICE_INTERFACE_DETAIL_DATA_W* PSP_DEVICE_INTERFACE_DETAIL_DATA_W; + +deprecated alias SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA_A; +deprecated alias SP_DEVICE_INTERFACE_DETAIL_DATA_A* PSP_INTERFACE_DEVICE_DETAIL_DATA_A; +deprecated alias SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA_W; +deprecated alias SP_DEVICE_INTERFACE_DETAIL_DATA_W* PSP_INTERFACE_DEVICE_DETAIL_DATA_W; + +struct SP_DEVINFO_LIST_DETAIL_DATA_A { + DWORD cbSize = SP_DEVINFO_LIST_DETAIL_DATA_A.sizeof; + GUID ClassGuid; + HANDLE RemoteMachineHandle; + CHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH]; +} +alias SP_DEVINFO_LIST_DETAIL_DATA_A* PSP_DEVINFO_LIST_DETAIL_DATA_A; + +struct SP_DEVINFO_LIST_DETAIL_DATA_W { + DWORD cbSize = SP_DEVINFO_LIST_DETAIL_DATA_W.sizeof; + GUID ClassGuid; + HANDLE RemoteMachineHandle; + WCHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH]; +} +alias SP_DEVINFO_LIST_DETAIL_DATA_W* PSP_DEVINFO_LIST_DETAIL_DATA_W; + +extern(Windows) alias UINT function(PVOID,UINT,UINT_PTR,UINT_PTR) PSP_FILE_CALLBACK_A; +extern(Windows) alias UINT function(PVOID,UINT,UINT_PTR,UINT_PTR) PSP_FILE_CALLBACK_W; + +struct SP_DEVINSTALL_PARAMS_A { + DWORD cbSize = SP_DEVINSTALL_PARAMS_A.sizeof; + DWORD Flags; + DWORD FlagsEx; + HWND hwndParent; + PSP_FILE_CALLBACK_A InstallMsgHandler; + PVOID InstallMsgHandlerContext; + HSPFILEQ FileQueue; + ULONG_PTR ClassInstallReserved; + DWORD Reserved; + CHAR DriverPath[MAX_PATH]; +} +alias SP_DEVINSTALL_PARAMS_A* PSP_DEVINSTALL_PARAMS_A; + +struct SP_DEVINSTALL_PARAMS_W { + DWORD cbSize = SP_DEVINSTALL_PARAMS_W.sizeof; + DWORD Flags; + DWORD FlagsEx; + HWND hwndParent; + PSP_FILE_CALLBACK_W InstallMsgHandler; + PVOID InstallMsgHandlerContext; + HSPFILEQ FileQueue; + ULONG_PTR ClassInstallReserved; + DWORD Reserved; + WCHAR DriverPath[MAX_PATH]; +} +alias SP_DEVINSTALL_PARAMS_W* PSP_DEVINSTALL_PARAMS_W; + +struct SP_CLASSINSTALL_HEADER { + DWORD cbSize = SP_CLASSINSTALL_HEADER.sizeof; + DI_FUNCTION InstallFunction; +} +alias SP_CLASSINSTALL_HEADER* PSP_CLASSINSTALL_HEADER; + +struct SP_ENABLECLASS_PARAMS { + SP_CLASSINSTALL_HEADER ClassInstallHeader; + GUID ClassGuid; + DWORD EnableMessage; +} +alias SP_ENABLECLASS_PARAMS* PSP_ENABLECLASS_PARAMS; + +struct SP_MOVEDEV_PARAMS { + SP_CLASSINSTALL_HEADER ClassInstallHeader; + SP_DEVINFO_DATA SourceDeviceInfoData; +} +alias SP_MOVEDEV_PARAMS* PSP_MOVEDEV_PARAMS; + +struct SP_PROPCHANGE_PARAMS { + SP_CLASSINSTALL_HEADER ClassInstallHeader; + DWORD StateChange; + DWORD Scope; + DWORD HwProfile; +} +alias SP_PROPCHANGE_PARAMS* PSP_PROPCHANGE_PARAMS; + +struct SP_REMOVEDEVICE_PARAMS { + SP_CLASSINSTALL_HEADER ClassInstallHeader; + DWORD Scope; + DWORD HwProfile; +} +alias SP_REMOVEDEVICE_PARAMS* PSP_REMOVEDEVICE_PARAMS; + +struct SP_UNREMOVEDEVICE_PARAMS { + SP_CLASSINSTALL_HEADER ClassInstallHeader; + DWORD Scope; + DWORD HwProfile; +} +alias SP_UNREMOVEDEVICE_PARAMS* PSP_UNREMOVEDEVICE_PARAMS; + +struct SP_SELECTDEVICE_PARAMS_A { + SP_CLASSINSTALL_HEADER ClassInstallHeader; + CHAR Title[MAX_TITLE_LEN]; + CHAR Instructions[MAX_INSTRUCTION_LEN]; + CHAR ListLabel[MAX_LABEL_LEN]; + CHAR SubTitle[MAX_SUBTITLE_LEN]; + BYTE Reserved[2]; +} +alias SP_SELECTDEVICE_PARAMS_A* PSP_SELECTDEVICE_PARAMS_A; + +struct SP_SELECTDEVICE_PARAMS_W { + SP_CLASSINSTALL_HEADER ClassInstallHeader; + WCHAR Title[MAX_TITLE_LEN]; + WCHAR Instructions[MAX_INSTRUCTION_LEN]; + WCHAR ListLabel[MAX_LABEL_LEN]; + WCHAR SubTitle[MAX_SUBTITLE_LEN]; +} +alias SP_SELECTDEVICE_PARAMS_W* PSP_SELECTDEVICE_PARAMS_W; + +extern(Windows) alias BOOL function(PVOID,DWORD) PDETECT_PROGRESS_NOTIFY; + +struct SP_DETECTDEVICE_PARAMS { + SP_CLASSINSTALL_HEADER ClassInstallHeader; + PDETECT_PROGRESS_NOTIFY DetectProgressNotify; + PVOID ProgressNotifyParam; +} +alias SP_DETECTDEVICE_PARAMS* PSP_DETECTDEVICE_PARAMS; + +struct SP_INSTALLWIZARD_DATA { + SP_CLASSINSTALL_HEADER ClassInstallHeader; + DWORD Flags; + HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES]; + DWORD NumDynamicPages; + DWORD DynamicPageFlags; + DWORD PrivateFlags; + LPARAM PrivateData; + HWND hwndWizardDlg; +} +alias SP_INSTALLWIZARD_DATA* PSP_INSTALLWIZARD_DATA; + +struct SP_NEWDEVICEWIZARD_DATA { + SP_CLASSINSTALL_HEADER ClassInstallHeader; + DWORD Flags; + HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES]; + DWORD NumDynamicPages; + HWND hwndWizardDlg; +} +alias SP_NEWDEVICEWIZARD_DATA* PSP_NEWDEVICEWIZARD_DATA; +alias SP_NEWDEVICEWIZARD_DATA SP_ADDPROPERTYPAGE_DATA; +alias SP_NEWDEVICEWIZARD_DATA* PSP_ADDPROPERTYPAGE_DATA; + +struct SP_TROUBLESHOOTER_PARAMS_A { + SP_CLASSINSTALL_HEADER ClassInstallHeader; + CHAR ChmFile[MAX_PATH]; + CHAR HtmlTroubleShooter[MAX_PATH]; +} +alias SP_TROUBLESHOOTER_PARAMS_A* PSP_TROUBLESHOOTER_PARAMS_A; + +struct SP_TROUBLESHOOTER_PARAMS_W { + SP_CLASSINSTALL_HEADER ClassInstallHeader; + WCHAR ChmFile[MAX_PATH]; + WCHAR HtmlTroubleShooter[MAX_PATH]; +} +alias SP_TROUBLESHOOTER_PARAMS_W* PSP_TROUBLESHOOTER_PARAMS_W; + +struct SP_POWERMESSAGEWAKE_PARAMS_A { + SP_CLASSINSTALL_HEADER ClassInstallHeader; + CHAR PowerMessageWake[LINE_LEN*2]; +} +alias SP_POWERMESSAGEWAKE_PARAMS_A* PSP_POWERMESSAGEWAKE_PARAMS_A; + +struct SP_POWERMESSAGEWAKE_PARAMS_W { + SP_CLASSINSTALL_HEADER ClassInstallHeader; + WCHAR PowerMessageWake[LINE_LEN*2]; +} +alias SP_POWERMESSAGEWAKE_PARAMS_W* PSP_POWERMESSAGEWAKE_PARAMS_W; + +struct SP_DRVINFO_DATA_V2_A { + DWORD cbSize = SP_DRVINFO_DATA_V2_A.sizeof; + DWORD DriverType; + ULONG_PTR Reserved; + CHAR Description[LINE_LEN]; + CHAR MfgName[LINE_LEN]; + CHAR ProviderName[LINE_LEN]; + FILETIME DriverDate; + DWORDLONG DriverVersion; +} +alias SP_DRVINFO_DATA_V2_A* PSP_DRVINFO_DATA_V2_A; + +struct SP_DRVINFO_DATA_V2_W { + DWORD cbSize = SP_DRVINFO_DATA_V2_A.sizeof; + DWORD DriverType; + ULONG_PTR Reserved; + WCHAR Description[LINE_LEN]; + WCHAR MfgName[LINE_LEN]; + WCHAR ProviderName[LINE_LEN]; + FILETIME DriverDate; + DWORDLONG DriverVersion; +} +alias SP_DRVINFO_DATA_V2_W* PSP_DRVINFO_DATA_V2_W; + +struct SP_DRVINFO_DATA_V1_A { + DWORD cbSize = SP_DRVINFO_DATA_V1_A.sizeof; + DWORD DriverType; + ULONG_PTR Reserved; + CHAR Description[LINE_LEN]; + CHAR MfgName[LINE_LEN]; + CHAR ProviderName[LINE_LEN]; +} +alias SP_DRVINFO_DATA_V1_A* PSP_DRVINFO_DATA_V1_A; + +struct SP_DRVINFO_DATA_V1_W { + DWORD cbSize = SP_DRVINFO_DATA_V1_W.sizeof; + DWORD DriverType; + ULONG_PTR Reserved; + WCHAR Description[LINE_LEN]; + WCHAR MfgName[LINE_LEN]; + WCHAR ProviderName[LINE_LEN]; +} +alias SP_DRVINFO_DATA_V1_W* PSP_DRVINFO_DATA_V1_W; + +version (Unicode) { + alias SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_V1; + alias SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_V2; +} else { + alias SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_V1; + alias SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_V2; +} +alias SP_DRVINFO_DATA_V1* PSP_DRVINFO_DATA_V1; +alias SP_DRVINFO_DATA_V2* PSP_DRVINFO_DATA_V2; + +static if(USE_SP_DRVINFO_DATA_V1) { + alias SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_A; + alias SP_DRVINFO_DATA_V1_A* PSP_DRVINFO_DATA_A; + alias SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_W; + alias SP_DRVINFO_DATA_V1_W* PSP_DRVINFO_DATA_W; + alias SP_DRVINFO_DATA_V1 SP_DRVINFO_DATA; + alias SP_DRVINFO_DATA_V1* PSP_DRVINFO_DATA; +} else { + alias SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_A; + alias SP_DRVINFO_DATA_V2_A* PSP_DRVINFO_DATA_A; + alias SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_W; + alias SP_DRVINFO_DATA_V2_W* PSP_DRVINFO_DATA_W; + alias SP_DRVINFO_DATA_V2 SP_DRVINFO_DATA; + alias SP_DRVINFO_DATA_V2* PSP_DRVINFO_DATA; +} + +extern(Windows) alias DWORD function(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINFO_DATA,PVOID) PSP_DETSIG_CMPPROC; + +struct SP_DRVINFO_DETAIL_DATA_A { + DWORD cbSize = SP_DRVINFO_DETAIL_DATA_A.sizeof; + FILETIME InfDate; + DWORD CompatIDsOffset; + DWORD CompatIDsLength; + ULONG_PTR Reserved; + CHAR SectionName[LINE_LEN]; + CHAR InfFileName[MAX_PATH]; + CHAR DrvDescription[LINE_LEN]; + CHAR _HardwareID[1]; + CHAR* HardwareID() { return _HardwareID.ptr; } +} +alias SP_DRVINFO_DETAIL_DATA_A* PSP_DRVINFO_DETAIL_DATA_A; + +struct SP_DRVINFO_DETAIL_DATA_W { + DWORD cbSize = SP_DRVINFO_DETAIL_DATA_W.sizeof; + FILETIME InfDate; + DWORD CompatIDsOffset; + DWORD CompatIDsLength; + ULONG_PTR Reserved; + WCHAR SectionName[LINE_LEN]; + WCHAR InfFileName[MAX_PATH]; + WCHAR DrvDescription[LINE_LEN]; + WCHAR _HardwareID[1]; + WCHAR* HardwareID() { return _HardwareID.ptr; } +} +alias SP_DRVINFO_DETAIL_DATA_W* PSP_DRVINFO_DETAIL_DATA_W; + +struct SP_DRVINSTALL_PARAMS { + DWORD cbSize = SP_DRVINSTALL_PARAMS.sizeof; + DWORD Rank; + DWORD Flags; + DWORD_PTR PrivateData; + DWORD Reserved; +} +alias SP_DRVINSTALL_PARAMS* PSP_DRVINSTALL_PARAMS; + +struct COINSTALLER_CONTEXT_DATA { + BOOL PostProcessing; + DWORD InstallResult; + PVOID PrivateData; +} +alias COINSTALLER_CONTEXT_DATA* PCOINSTALLER_CONTEXT_DATA; + +struct SP_CLASSIMAGELIST_DATA { + DWORD cbSize = SP_CLASSIMAGELIST_DATA.sizeof; + HIMAGELIST ImageList; + ULONG_PTR Reserved; +} +alias SP_CLASSIMAGELIST_DATA* PSP_CLASSIMAGELIST_DATA; + +struct SP_PROPSHEETPAGE_REQUEST { + DWORD cbSize = SP_PROPSHEETPAGE_REQUEST.sizeof; + DWORD PageRequested; + HDEVINFO DeviceInfoSet; + PSP_DEVINFO_DATA DeviceInfoData; +} +alias SP_PROPSHEETPAGE_REQUEST* PSP_PROPSHEETPAGE_REQUEST; + +struct SP_BACKUP_QUEUE_PARAMS_A { + DWORD cbSize = SP_BACKUP_QUEUE_PARAMS_A.sizeof; + CHAR FullInfPath[MAX_PATH]; + INT FilenameOffset; +} +alias SP_BACKUP_QUEUE_PARAMS_A* PSP_BACKUP_QUEUE_PARAMS_A; + +struct SP_BACKUP_QUEUE_PARAMS_W { + DWORD cbSize = SP_BACKUP_QUEUE_PARAMS_W.sizeof; + WCHAR FullInfPath[MAX_PATH]; + INT FilenameOffset; +} +alias SP_BACKUP_QUEUE_PARAMS_W* PSP_BACKUP_QUEUE_PARAMS_W; + +version (Unicode) { + alias SP_ORIGINAL_FILE_INFO_W SP_ORIGINAL_FILE_INFO; + alias SP_ORIGINAL_FILE_INFO_W* PSP_ORIGINAL_FILE_INFO; + alias FILEPATHS_W FILEPATHS; + alias FILEPATHS_W* PFILEPATHS; + alias SOURCE_MEDIA_W SOURCE_MEDIA; + alias SOURCE_MEDIA_W* PSOURCE_MEDIA; + alias CABINET_INFO_W CABINET_INFO; + alias CABINET_INFO_W* PCABINET_INFO; + alias FILE_IN_CABINET_INFO_W FILE_IN_CABINET_INFO; + alias FILE_IN_CABINET_INFO_W* PFILE_IN_CABINET_INFO; + alias SP_FILE_COPY_PARAMS_W SP_FILE_COPY_PARAMS; + alias SP_FILE_COPY_PARAMS_W* PSP_FILE_COPY_PARAMS; + alias SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_DEVICE_INTERFACE_DETAIL_DATA; + alias SP_DEVICE_INTERFACE_DETAIL_DATA_W* PSP_DEVICE_INTERFACE_DETAIL_DATA; + deprecated { + alias SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA; + alias SP_DEVICE_INTERFACE_DETAIL_DATA_W* PSP_INTERFACE_DEVICE_DETAIL_DATA; + } + alias SP_DEVINFO_LIST_DETAIL_DATA_W SP_DEVINFO_LIST_DETAIL_DATA; + alias SP_DEVINFO_LIST_DETAIL_DATA_W *PSP_DEVINFO_LIST_DETAIL_DATA; + alias SP_DEVINSTALL_PARAMS_W SP_DEVINSTALL_PARAMS; + alias SP_DEVINSTALL_PARAMS_W* PSP_DEVINSTALL_PARAMS; + alias SP_SELECTDEVICE_PARAMS_W SP_SELECTDEVICE_PARAMS; + alias SP_SELECTDEVICE_PARAMS_W* PSP_SELECTDEVICE_PARAMS; + alias SP_TROUBLESHOOTER_PARAMS_W SP_TROUBLESHOOTER_PARAMS; + alias SP_TROUBLESHOOTER_PARAMS_W* PSP_TROUBLESHOOTER_PARAMS; + alias SP_POWERMESSAGEWAKE_PARAMS_W SP_POWERMESSAGEWAKE_PARAMS; + alias SP_POWERMESSAGEWAKE_PARAMS_W* PSP_POWERMESSAGEWAKE_PARAMS; + alias SP_DRVINFO_DETAIL_DATA_W SP_DRVINFO_DETAIL_DATA; + alias SP_DRVINFO_DETAIL_DATA_W* PSP_DRVINFO_DETAIL_DATA; + alias SP_BACKUP_QUEUE_PARAMS_W SP_BACKUP_QUEUE_PARAMS; + alias SP_BACKUP_QUEUE_PARAMS_W* PSP_BACKUP_QUEUE_PARAMS; +} else { + alias SP_ORIGINAL_FILE_INFO_A SP_ORIGINAL_FILE_INFO; + alias SP_ORIGINAL_FILE_INFO_A* PSP_ORIGINAL_FILE_INFO; + alias FILEPATHS_A FILEPATHS; + alias FILEPATHS_A* PFILEPATHS; + alias SOURCE_MEDIA_A SOURCE_MEDIA; + alias SOURCE_MEDIA_A* PSOURCE_MEDIA; + alias CABINET_INFO_A CABINET_INFO; + alias CABINET_INFO_A* PCABINET_INFO; + alias FILE_IN_CABINET_INFO_A FILE_IN_CABINET_INFO; + alias FILE_IN_CABINET_INFO_A* PFILE_IN_CABINET_INFO; + alias SP_FILE_COPY_PARAMS_A SP_FILE_COPY_PARAMS; + alias SP_FILE_COPY_PARAMS_A* PSP_FILE_COPY_PARAMS; + alias SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_DEVICE_INTERFACE_DETAIL_DATA; + alias SP_DEVICE_INTERFACE_DETAIL_DATA_A* PSP_DEVICE_INTERFACE_DETAIL_DATA; + deprecated { + alias SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA; + alias SP_DEVICE_INTERFACE_DETAIL_DATA_A* PSP_INTERFACE_DEVICE_DETAIL_DATA; + } + alias SP_DEVINFO_LIST_DETAIL_DATA_A SP_DEVINFO_LIST_DETAIL_DATA; + alias SP_DEVINFO_LIST_DETAIL_DATA_A* PSP_DEVINFO_LIST_DETAIL_DATA; + alias SP_DEVINSTALL_PARAMS_A SP_DEVINSTALL_PARAMS; + alias SP_DEVINSTALL_PARAMS_A* PSP_DEVINSTALL_PARAMS; + alias SP_SELECTDEVICE_PARAMS_A SP_SELECTDEVICE_PARAMS; + alias SP_SELECTDEVICE_PARAMS_A* PSP_SELECTDEVICE_PARAMS; + alias SP_TROUBLESHOOTER_PARAMS_A SP_TROUBLESHOOTER_PARAMS; + alias SP_TROUBLESHOOTER_PARAMS_A* PSP_TROUBLESHOOTER_PARAMS; + alias SP_POWERMESSAGEWAKE_PARAMS_A SP_POWERMESSAGEWAKE_PARAMS; + alias SP_POWERMESSAGEWAKE_PARAMS_A* PSP_POWERMESSAGEWAKE_PARAMS; + alias SP_DRVINFO_DETAIL_DATA_A SP_DRVINFO_DETAIL_DATA; + alias SP_DRVINFO_DETAIL_DATA_A* PSP_DRVINFO_DETAIL_DATA; + alias SP_BACKUP_QUEUE_PARAMS_A SP_BACKUP_QUEUE_PARAMS; + alias SP_BACKUP_QUEUE_PARAMS_A* PSP_BACKUP_QUEUE_PARAMS; +} + +extern (Windows) { + BOOL SetupAddInstallSectionToDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,PVOID,UINT); + BOOL SetupAddInstallSectionToDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,PVOID,UINT); + BOOL SetupAddSectionToDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,UINT,PVOID,UINT); + BOOL SetupAddSectionToDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,UINT,PVOID,UINT); + BOOL SetupAddToDiskSpaceListA(HDSKSPC,PCSTR,LONGLONG,UINT,PVOID,UINT); + BOOL SetupAddToDiskSpaceListW(HDSKSPC,PCWSTR,LONGLONG,UINT,PVOID,UINT); + BOOL SetupAddToSourceListA(DWORD,PCSTR); + BOOL SetupAddToSourceListW(DWORD,PCWSTR); + BOOL SetupQuerySourceListA(DWORD,PCSTR**List,PUINT); + BOOL SetupQuerySourceListW(DWORD,PCWSTR**List,PUINT); + BOOL SetupFreeSourceListA(PCSTR**List,UINT); + BOOL SetupFreeSourceListW(PCWSTR**List,UINT); + BOOL SetupAdjustDiskSpaceListA(HDSKSPC,LPCSTR,LONGLONG,PVOID,UINT); + BOOL SetupAdjustDiskSpaceListW(HDSKSPC,LPCWSTR,LONGLONG,PVOID,UINT); + UINT SetupBackupErrorA(HWND,PCSTR,PCSTR,PCSTR,UINT,DWORD); + UINT SetupBackupErrorW(HWND,PCWSTR,PCWSTR,PCWSTR,UINT,DWORD); + BOOL SetupCancelTemporary(); + BOOL SetupCloseFileQueue(HSPFILEQ); + VOID SetupCloseInfFile(HINF); + VOID SetupCloseLog(); + BOOL SetupCommitFileQueueA(HWND,HSPFILEQ,PSP_FILE_CALLBACK_A,PVOID); + BOOL SetupCommitFileQueueW(HWND,HSPFILEQ,PSP_FILE_CALLBACK_W,PVOID); + UINT SetupCopyErrorA(HWND,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,UINT,DWORD,PSTR,DWORD,PDWORD); + UINT SetupCopyErrorW(HWND,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,UINT,DWORD,PWSTR,DWORD,PDWORD); + BOOL SetupCopyOEMInfA(PCSTR,PCSTR,DWORD,DWORD,PSTR,DWORD,PDWORD,PSTR*); + BOOL SetupCopyOEMInfW(PCWSTR,PCWSTR,DWORD,DWORD,PWSTR,DWORD,PDWORD,PWSTR*); + HDSKSPC SetupCreateDiskSpaceListA(PVOID,DWORD,UINT); + HDSKSPC SetupCreateDiskSpaceListW(PVOID,DWORD,UINT); + DWORD SetupDecompressOrCopyFileA(PCSTR,PCSTR,PUINT); + DWORD SetupDecompressOrCopyFileW(PCWSTR,PCWSTR,PUINT); + UINT SetupDefaultQueueCallbackA(PVOID,UINT,UINT_PTR,UINT_PTR); + UINT SetupDefaultQueueCallbackW(PVOID,UINT,UINT_PTR,UINT_PTR); + UINT SetupDeleteErrorA(HWND,PCSTR,PCSTR,UINT,DWORD); + UINT SetupDeleteErrorW(HWND,PCWSTR,PCWSTR,UINT,DWORD); + BOOL SetupDestroyDiskSpaceList(HDSKSPC); + BOOL SetupDiAskForOEMDisk(HDEVINFO,PSP_DEVINFO_DATA); + BOOL SetupDiBuildClassInfoList(DWORD,LPGUID,DWORD,PDWORD); + BOOL SetupDiBuildClassInfoListExA(DWORD,LPGUID,DWORD,PDWORD,PCSTR,PVOID); + BOOL SetupDiBuildClassInfoListExW(DWORD,LPGUID,DWORD,PDWORD,PCWSTR,PVOID); + BOOL SetupDiBuildDriverInfoList(HDEVINFO,PSP_DEVINFO_DATA,DWORD); + BOOL SetupDiCallClassInstaller(DI_FUNCTION,HDEVINFO,PSP_DEVINFO_DATA); + BOOL SetupDiCancelDriverInfoSearch(HDEVINFO); + BOOL SetupDiChangeState(HDEVINFO,PSP_DEVINFO_DATA); + BOOL SetupDiClassGuidsFromNameA(PCSTR,LPGUID,DWORD,PDWORD); + BOOL SetupDiClassGuidsFromNameW(PCWSTR,LPGUID,DWORD,PDWORD); + BOOL SetupDiClassGuidsFromNameExA(PCSTR,LPGUID,DWORD,PDWORD,PCSTR,PVOID); + BOOL SetupDiClassGuidsFromNameExW(PCWSTR,LPGUID,DWORD,PDWORD,PCWSTR,PVOID); + BOOL SetupDiClassNameFromGuidA(CPtr!(GUID),PSTR,DWORD,PDWORD); + BOOL SetupDiClassNameFromGuidW(CPtr!(GUID),PWSTR,DWORD,PDWORD); + BOOL SetupDiClassNameFromGuidExA(CPtr!(GUID),PSTR,DWORD,PDWORD,PCSTR,PVOID); + BOOL SetupDiClassNameFromGuidExW(CPtr!(GUID),PWSTR,DWORD,PDWORD,PCWSTR,PVOID); + BOOL SetupDiCreateDeviceInfoA(HDEVINFO,PCSTR,CPtr!(GUID),PCSTR,HWND,DWORD,PSP_DEVINFO_DATA); + BOOL SetupDiCreateDeviceInfoW(HDEVINFO,PCWSTR,CPtr!(GUID),PCWSTR,HWND,DWORD,PSP_DEVINFO_DATA); + HDEVINFO SetupDiCreateDeviceInfoList(CPtr!(GUID),HWND); + HDEVINFO SetupDiCreateDeviceInfoListExA(CPtr!(GUID),HWND,PCSTR,PVOID); + HDEVINFO SetupDiCreateDeviceInfoListExW(CPtr!(GUID),HWND,PCWSTR,PVOID); + BOOL SetupDiCreateDeviceInterfaceA(HDEVINFO,PSP_DEVINFO_DATA,CPtr!(GUID),PCSTR,DWORD,PSP_DEVICE_INTERFACE_DATA); + BOOL SetupDiCreateDeviceInterfaceW(HDEVINFO,PSP_DEVINFO_DATA,CPtr!(GUID),PCWSTR,DWORD,PSP_DEVICE_INTERFACE_DATA); + HKEY SetupDiCreateDeviceInterfaceRegKeyA(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,DWORD,REGSAM,HINF,PCSTR); + HKEY SetupDiCreateDeviceInterfaceRegKeyW(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,DWORD,REGSAM,HINF,PCWSTR); + HKEY SetupDiCreateDevRegKeyA(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,DWORD,HINF,PCSTR); + HKEY SetupDiCreateDevRegKeyW(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,DWORD,HINF,PCWSTR); + BOOL SetupDiDeleteDeviceInfo(HDEVINFO,PSP_DEVINFO_DATA); + BOOL SetupDiDeleteDeviceInterfaceData(HDEVINFO,PSP_DEVICE_INTERFACE_DATA); + BOOL SetupDiDeleteDeviceInterfaceRegKey(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,DWORD); + BOOL SetupDiDeleteDevRegKey(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,DWORD); + BOOL SetupDiDestroyClassImageList(PSP_CLASSIMAGELIST_DATA); + BOOL SetupDiDestroyDeviceInfoList(HDEVINFO); + BOOL SetupDiDestroyDriverInfoList(HDEVINFO,PSP_DEVINFO_DATA,DWORD); + INT SetupDiDrawMiniIcon(HDC,RECT,INT,DWORD); + BOOL SetupDiEnumDeviceInfo(HDEVINFO,DWORD,PSP_DEVINFO_DATA); + BOOL SetupDiEnumDeviceInterfaces(HDEVINFO,PSP_DEVINFO_DATA,CPtr!(GUID),DWORD,PSP_DEVICE_INTERFACE_DATA); + BOOL SetupDiEnumDriverInfoA(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,PSP_DRVINFO_DATA_A); + BOOL SetupDiEnumDriverInfoW(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,PSP_DRVINFO_DATA_W); + BOOL SetupDiGetActualSectionToInstallA(HINF,PCSTR,PSTR,DWORD,PDWORD,PSTR*); + BOOL SetupDiGetActualSectionToInstallW(HINF,PCWSTR,PWSTR,DWORD,PDWORD,PWSTR*); + BOOL SetupDiGetClassBitmapIndex(CPtr!(GUID),PINT); + BOOL SetupDiGetClassDescriptionA(CPtr!(GUID),PSTR,DWORD,PDWORD); + BOOL SetupDiGetClassDescriptionW(CPtr!(GUID),PWSTR,DWORD,PDWORD); + BOOL SetupDiGetClassDescriptionExA(CPtr!(GUID),PSTR,DWORD,PDWORD,PCSTR,PVOID); + BOOL SetupDiGetClassDescriptionExW(CPtr!(GUID),PWSTR,DWORD,PDWORD,PCWSTR,PVOID); + BOOL SetupDiGetClassDevPropertySheetsA(HDEVINFO,PSP_DEVINFO_DATA,LPPROPSHEETHEADERA,DWORD,PDWORD,DWORD); + BOOL SetupDiGetClassDevPropertySheetsW(HDEVINFO,PSP_DEVINFO_DATA,LPPROPSHEETHEADERW,DWORD,PDWORD,DWORD); + HDEVINFO SetupDiGetClassDevsA(CPtr!(GUID),PCSTR,HWND,DWORD); + HDEVINFO SetupDiGetClassDevsW(CPtr!(GUID),PCWSTR,HWND,DWORD); + HDEVINFO SetupDiGetClassDevsExA(CPtr!(GUID),PCSTR,HWND,DWORD,HDEVINFO,PCSTR,PVOID); + HDEVINFO SetupDiGetClassDevsExW(CPtr!(GUID),PCWSTR,HWND,DWORD,HDEVINFO,PCWSTR,PVOID); + BOOL SetupDiGetClassImageIndex(PSP_CLASSIMAGELIST_DATA,CPtr!(GUID),PINT); + BOOL SetupDiGetClassImageList(PSP_CLASSIMAGELIST_DATA); + BOOL SetupDiGetClassImageListExA(PSP_CLASSIMAGELIST_DATA,PCSTR,PVOID); + BOOL SetupDiGetClassImageListExW(PSP_CLASSIMAGELIST_DATA,PCWSTR,PVOID); + BOOL SetupDiGetClassInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_CLASSINSTALL_HEADER,DWORD,PDWORD); + BOOL SetupDiGetClassInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_CLASSINSTALL_HEADER,DWORD,PDWORD); + BOOL SetupDiGetClassRegistryPropertyA(LPGUID,DWORD,PDWORD,PBYTE,DWORD,PDWORD,PCSTR,PVOID); + BOOL SetupDiGetClassRegistryPropertyW(LPGUID,DWORD,PDWORD,PBYTE,DWORD,PDWORD,PCWSTR,PVOID); + BOOL SetupDiGetDeviceInfoListClass(HDEVINFO,LPGUID); + BOOL SetupDiGetDeviceInfoListDetailA(HDEVINFO,PSP_DEVINFO_LIST_DETAIL_DATA_A); + BOOL SetupDiGetDeviceInfoListDetailW(HDEVINFO,PSP_DEVINFO_LIST_DETAIL_DATA_W); + BOOL SetupDiGetDeviceInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINSTALL_PARAMS_A); + BOOL SetupDiGetDeviceInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINSTALL_PARAMS_W); + BOOL SetupDiGetDeviceInstanceIdA(HDEVINFO,PSP_DEVINFO_DATA,PSTR,DWORD,PDWORD); + BOOL SetupDiGetDeviceInstanceIdW(HDEVINFO,PSP_DEVINFO_DATA,PWSTR,DWORD,PDWORD); + BOOL SetupDiGetDeviceInterfaceAlias(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,CPtr!(GUID),PSP_DEVICE_INTERFACE_DATA); + BOOL SetupDiGetDeviceInterfaceDetailA(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,PSP_DEVICE_INTERFACE_DETAIL_DATA_A,DWORD,PDWORD,PSP_DEVINFO_DATA); + BOOL SetupDiGetDeviceInterfaceDetailW(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,PSP_DEVICE_INTERFACE_DETAIL_DATA_W,DWORD,PDWORD,PSP_DEVINFO_DATA); + BOOL SetupDiGetDeviceRegistryPropertyA(HDEVINFO,PSP_DEVINFO_DATA,DWORD,PDWORD,PBYTE,DWORD,PDWORD); + BOOL SetupDiGetDeviceRegistryPropertyW(HDEVINFO,PSP_DEVINFO_DATA,DWORD,PDWORD,PBYTE,DWORD,PDWORD); + BOOL SetupDiGetDriverInfoDetailA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A,PSP_DRVINFO_DETAIL_DATA_A,DWORD,PDWORD); + BOOL SetupDiGetDriverInfoDetailW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W,PSP_DRVINFO_DETAIL_DATA_W,DWORD,PDWORD); + BOOL SetupDiGetDriverInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A,PSP_DRVINSTALL_PARAMS); + BOOL SetupDiGetDriverInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W,PSP_DRVINSTALL_PARAMS); + BOOL SetupDiGetHwProfileFriendlyNameA(DWORD,PSTR,DWORD,PDWORD); + BOOL SetupDiGetHwProfileFriendlyNameExA(DWORD,PSTR,DWORD,PDWORD,PCSTR,PVOID); + BOOL SetupDiGetHwProfileFriendlyNameExW(DWORD,PWSTR,DWORD,PDWORD,PCWSTR,PVOID); + BOOL SetupDiGetHwProfileFriendlyNameW(DWORD,PWSTR,DWORD,PDWORD); + BOOL SetupDiGetHwProfileList(PDWORD,DWORD,PDWORD,PDWORD); + BOOL SetupDiGetHwProfileListExA(PDWORD,DWORD,PDWORD,PDWORD,PCSTR,PVOID); + BOOL SetupDiGetHwProfileListExW(PDWORD,DWORD,PDWORD,PDWORD,PCWSTR,PVOID); + BOOL SetupDiGetINFClassA(PCSTR,LPGUID,PSTR,DWORD,PDWORD); + BOOL SetupDiGetINFClassW(PCWSTR,LPGUID,PWSTR,DWORD,PDWORD); + BOOL SetupDiGetSelectedDevice(HDEVINFO,PSP_DEVINFO_DATA); + BOOL SetupDiGetSelectedDriverA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A); + BOOL SetupDiGetSelectedDriverW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W); + HPROPSHEETPAGE SetupDiGetWizardage(HDEVINFO,PSP_DEVINFO_DATA,PSP_INSTALLWIZARD_DATA,DWORD,DWORD); + BOOL SetupDiInstallClassA(HWND,PCSTR,DWORD,HSPFILEQ); + BOOL SetupDiInstallClassW(HWND,PCWSTR,DWORD,HSPFILEQ); + BOOL SetupDiInstallClassExA(HWND,PCSTR,DWORD,HSPFILEQ,CPtr!(GUID),PVOID,PVOID); + BOOL SetupDiInstallClassExW(HWND,PCWSTR,DWORD,HSPFILEQ,CPtr!(GUID),PVOID,PVOID); + BOOL SetupDiInstallDevice(HDEVINFO,PSP_DEVINFO_DATA); + BOOL SetupDiInstallDeviceInterfaces(HDEVINFO,PSP_DEVINFO_DATA); + BOOL SetupDiInstallDriverFiles(HDEVINFO,PSP_DEVINFO_DATA); + BOOL SetupDiLoadClassIcon(CPtr!(GUID),HICON*,PINT); + BOOL SetupDiMoveDuplicateDevice(HDEVINFO,PSP_DEVINFO_DATA); + HKEY SetupDiOpenClassRegKey(CPtr!(GUID),REGSAM); + HKEY SetupDiOpenClassRegKeyExA(CPtr!(GUID),REGSAM,DWORD,PCSTR,PVOID); + HKEY SetupDiOpenClassRegKeyExW(CPtr!(GUID),REGSAM,DWORD,PCWSTR,PVOID); + BOOL SetupDiOpenDeviceInfoA(HDEVINFO,PCSTR,HWND,DWORD,PSP_DEVINFO_DATA); + BOOL SetupDiOpenDeviceInfoW(HDEVINFO,PCWSTR,HWND,DWORD,PSP_DEVINFO_DATA); + BOOL SetupDiOpenDeviceInterfaceA(HDEVINFO,PCSTR,DWORD,PSP_DEVICE_INTERFACE_DATA); + BOOL SetupDiOpenDeviceInterfaceW(HDEVINFO,PCWSTR,DWORD,PSP_DEVICE_INTERFACE_DATA); + HKEY SetupDiOpenDeviceInterfaceRegKey(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,DWORD,REGSAM); + HKEY SetupDiOpenDevRegKey(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,DWORD,REGSAM); + BOOL SetupDiRegisterCoDeviceInstallers(HDEVINFO,PSP_DEVINFO_DATA); + BOOL SetupDiRegisterDeviceInfo(HDEVINFO,PSP_DEVINFO_DATA,DWORD,PSP_DETSIG_CMPPROC,PVOID,PSP_DEVINFO_DATA); + BOOL SetupDiRemoveDevice(HDEVINFO,PSP_DEVINFO_DATA); + BOOL SetupDiRemoveDeviceInterface(HDEVINFO,PSP_DEVICE_INTERFACE_DATA); + BOOL SetupDiSelectBestCompatDrv(HDEVINFO,PSP_DEVINFO_DATA); + BOOL SetupDiSelectDevice(HDEVINFO,PSP_DEVINFO_DATA); + BOOL SetupDiSelectOEMDrv(HWND,HDEVINFO,PSP_DEVINFO_DATA); + BOOL SetupDiSetClassInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_CLASSINSTALL_HEADER,DWORD); + BOOL SetupDiSetClassInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_CLASSINSTALL_HEADER,DWORD); + BOOL SetupDiSetClassRegistryPropertyA(LPGUID,DWORD,CPtr!(BYTE),DWORD,PCSTR,PVOID); + BOOL SetupDiSetClassRegistryPropertyW(LPGUID,DWORD,CPtr!(BYTE),DWORD,PCWSTR,PVOID); + BOOL SetupDiSetDeviceInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINSTALL_PARAMS_A); + BOOL SetupDiSetDeviceInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINSTALL_PARAMS_W); + BOOL SetupDiSetDeviceRegistryPropertyA(HDEVINFO,PSP_DEVINFO_DATA,DWORD,CPtr!(BYTE),DWORD); + BOOL SetupDiSetDeviceRegistryPropertyW(HDEVINFO,PSP_DEVINFO_DATA,DWORD,CPtr!(BYTE),DWORD); + BOOL SetupDiSetDriverInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A,PSP_DRVINSTALL_PARAMS); + BOOL SetupDiSetDriverInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W,PSP_DRVINSTALL_PARAMS); + BOOL SetupDiSetSelectedDevice(HDEVINFO,PSP_DEVINFO_DATA); + BOOL SetupDiSetSelectedDriverA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A); + BOOL SetupDiSetSelectedDriverW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W); + BOOL SetupDiUnremoveDevice(HDEVINFO,PSP_DEVINFO_DATA); + HDSKSPC SetupDuplicateDiskSpaceListA(HDSKSPC,PVOID,DWORD,UINT); + HDSKSPC SetupDuplicateDiskSpaceListW(HDSKSPC,PVOID,DWORD,UINT); + BOOL SetupFindFirstLineA(HINF,PCSTR,PCSTR,PINFCONTEXT); + BOOL SetupFindFirstLineW(HINF,PCWSTR,PCWSTR,PINFCONTEXT); + BOOL SetupFindNextLine(PINFCONTEXT,PINFCONTEXT); + BOOL SetupFindNextMatchLineA(PINFCONTEXT,PCSTR,PINFCONTEXT); + BOOL SetupFindNextMatchLineW(PINFCONTEXT,PCWSTR,PINFCONTEXT); + BOOL SetupFreeA(PCSTR**,UINT); + BOOL SetupFreeW(PCWSTR**,UINT); + BOOL SetupGetBackupInformationA(HSPFILEQ,PSP_BACKUP_QUEUE_PARAMS_A); + BOOL SetupGetBackupInformationW(HSPFILEQ,PSP_BACKUP_QUEUE_PARAMS_W); + BOOL SetupGetBinaryField(PINFCONTEXT,DWORD,PBYTE,DWORD,LPDWORD); + DWORD SetupGetFieldCount(PINFCONTEXT); + DWORD SetupGetFileCompressionInfoA(PCSTR,PSTR*,PDWORD,PDWORD,PUINT); + DWORD SetupGetFileCompressionInfoW(PCWSTR,PWSTR*,PDWORD,PDWORD,PUINT); + BOOL SetupGetInfFileListA(PCSTR,DWORD,PSTR,DWORD,PDWORD); + BOOL SetupGetInfFileListW(PCWSTR,DWORD,PWSTR,DWORD,PDWORD); + BOOL SetupGetInfInformationA(LPCVOID,DWORD,PSP_INF_INFORMATION,DWORD,PDWORD); + BOOL SetupGetInfInformationW(LPCVOID,DWORD,PSP_INF_INFORMATION,DWORD,PDWORD); + BOOL SetupGetIntField(PINFCONTEXT,DWORD,PINT); + BOOL SetupGetLineByIndexA(HINF,PCSTR,DWORD,PINFCONTEXT); + BOOL SetupGetLineByIndexW(HINF,PCWSTR,DWORD,PINFCONTEXT); + LONG SetupGetLineCountA(HINF,PCSTR); + LONG SetupGetLineCountW(HINF,PCWSTR); + BOOL SetupGetLineTextA(PINFCONTEXT,HINF,PCSTR,PCSTR,PSTR,DWORD,PDWORD); + BOOL SetupGetLineTextW(PINFCONTEXT,HINF,PCWSTR,PCWSTR,PWSTR,DWORD,PDWORD); + BOOL SetupGetMultiSzFieldA(PINFCONTEXT,DWORD,PSTR,DWORD,LPDWORD); + BOOL SetupGetMultiSzFieldW(PINFCONTEXT,DWORD,PWSTR,DWORD,LPDWORD); + BOOL SetupGetSourceFileLocationA(HINF,PINFCONTEXT,PCSTR,PUINT,PSTR,DWORD,PDWORD); + BOOL SetupGetSourceFileLocationW(HINF,PINFCONTEXT,PCWSTR,PUINT,PWSTR,DWORD,PDWORD); + BOOL SetupGetSourceFileSizeA(HINF,PINFCONTEXT,PCSTR,PCSTR,PDWORD,UINT); + BOOL SetupGetSourceFileSizeW(HINF,PINFCONTEXT,PCWSTR,PCWSTR,PDWORD,UINT); + BOOL SetupGetSourceInfoA(HINF,UINT,UINT,PSTR,DWORD,PDWORD); + BOOL SetupGetSourceInfoW(HINF,UINT,UINT,PWSTR,DWORD,PDWORD); + BOOL SetupGetStringFieldA(PINFCONTEXT,DWORD,PSTR,DWORD,PDWORD); + BOOL SetupGetStringFieldW(PINFCONTEXT,DWORD,PWSTR,DWORD,PDWORD); + BOOL SetupGetTargetPathA(HINF,PINFCONTEXT,PCSTR,PSTR,DWORD,PDWORD); + BOOL SetupGetTargetPathW(HINF,PINFCONTEXT,PCWSTR,PWSTR,DWORD,PDWORD); + PVOID SetupInitDefaultQueueCallback(HWND); + PVOID SetupInitDefaultQueueCallbackEx(HWND,HWND,UINT,DWORD,PVOID); + HSPFILELOG SetupInitializeFileLogA(PCSTR,DWORD); + HSPFILELOG SetupInitializeFileLogW(PCWSTR,DWORD); + BOOL SetupInstallFileA(HINF,PINFCONTEXT,PCSTR,PCSTR,PCSTR,DWORD,PSP_FILE_CALLBACK_A,PVOID); + BOOL SetupInstallFileW(HINF,PINFCONTEXT,PCWSTR,PCWSTR,PCWSTR,DWORD,PSP_FILE_CALLBACK_W,PVOID); + BOOL SetupInstallFileExA(HINF,PINFCONTEXT,PCSTR,PCSTR,PCSTR,DWORD,PSP_FILE_CALLBACK_A,PVOID,PBOOL); + BOOL SetupInstallFileExW(HINF,PINFCONTEXT,PCWSTR,PCWSTR,PCWSTR,DWORD,PSP_FILE_CALLBACK_W,PVOID,PBOOL); + BOOL SetupInstallFilesFromInfSectionA(HINF,HINF,HSPFILEQ,PCSTR,PCSTR,UINT); + BOOL SetupInstallFilesFromInfSectionW(HINF,HINF,HSPFILEQ,PCWSTR,PCWSTR,UINT); + BOOL SetupInstallFromInfSectionA(HWND,HINF,PCSTR,UINT,HKEY,PCSTR,UINT,PSP_FILE_CALLBACK_A,PVOID,HDEVINFO,PSP_DEVINFO_DATA); + BOOL SetupInstallFromInfSectionW(HWND,HINF,PCWSTR,UINT,HKEY,PCWSTR,UINT,PSP_FILE_CALLBACK_W,PVOID,HDEVINFO,PSP_DEVINFO_DATA); + BOOL SetupInstallServicesFromInfSectionA(HINF,PCSTR,DWORD); + BOOL SetupInstallServicesFromInfSectionW(HINF,PCWSTR,DWORD); + BOOL SetupInstallServicesFromInfSectionExA(HINF,PCSTR,DWORD,HDEVINFO,PSP_DEVINFO_DATA,PVOID,PVOID); + BOOL SetupInstallServicesFromInfSectionExW(HINF,PCWSTR,DWORD,HDEVINFO,PSP_DEVINFO_DATA,PVOID,PVOID); + BOOL SetupIterateCabinetA(PCSTR,DWORD,PSP_FILE_CALLBACK_A,PVOID); + BOOL SetupIterateCabinetW(PCWSTR,DWORD,PSP_FILE_CALLBACK_W,PVOID); + BOOL SetupLogErrorA(LPCSTR,LogSeverity); + BOOL SetupLogErrorW(LPCWSTR,LogSeverity); + BOOL SetupLogFileA(HSPFILELOG,PCSTR,PCSTR,PCSTR,DWORD,PCSTR,PCSTR,PCSTR,DWORD); + BOOL SetupLogFileW(HSPFILELOG,PCWSTR,PCWSTR,PCWSTR,DWORD,PCWSTR,PCWSTR,PCWSTR,DWORD); + BOOL SetupOpenAppendInfFileA(PCSTR,HINF,PUINT); + BOOL SetupOpenAppendInfFileW(PCWSTR,HINF,PUINT); + HSPFILEQ SetupOpenFileQueue(); + HINF SetupOpenInfFileA(PCSTR,PCSTR,DWORD,PUINT); + HINF SetupOpenInfFileW(PCWSTR,PCWSTR,DWORD,PUINT); + BOOL SetupOpenLog(BOOL); + HINF SetupOpenMasterInf(); + UINT SetupPromptForDiskA(HWND,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,DWORD,PSTR,DWORD,PDWORD); + UINT SetupPromptForDiskW(HWND,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,DWORD,PWSTR,DWORD,PDWORD); + INT SetupPromptReboot(HSPFILEQ,HWND,BOOL); + BOOL SetupQueryA(DWORD,PCSTR**,PUINT); + BOOL SetupQueryW(DWORD,PCWSTR**,PUINT); + BOOL SetupQueryDrivesInDiskSpaceListA(HDSKSPC,PSTR,DWORD,PDWORD); + BOOL SetupQueryDrivesInDiskSpaceListW(HDSKSPC,PWSTR,DWORD,PDWORD); + BOOL SetupQueryFileLogA(HSPFILELOG,PCSTR,PCSTR,SetupFileLogInfo,PSTR,DWORD,PDWORD); + BOOL SetupQueryFileLogW(HSPFILELOG,PCWSTR,PCWSTR,SetupFileLogInfo,PWSTR,DWORD,PDWORD); + BOOL SetupQueryInfFileInformationA(PSP_INF_INFORMATION,UINT,PSTR,DWORD,PDWORD); + BOOL SetupQueryInfFileInformationW(PSP_INF_INFORMATION,UINT,PWSTR,DWORD,PDWORD); + BOOL SetupQueryInfOriginalFileInformationA(PSP_INF_INFORMATION,UINT,PSP_ALTPLATFORM_INFO,PSP_ORIGINAL_FILE_INFO_A); + BOOL SetupQueryInfOriginalFileInformationW(PSP_INF_INFORMATION,UINT,PSP_ALTPLATFORM_INFO,PSP_ORIGINAL_FILE_INFO_W); + BOOL SetupQueryInfVersionInformationA(PSP_INF_INFORMATION,UINT,PSTR,PSTR,DWORD,PDWORD); + BOOL SetupQueryInfVersionInformationW(PSP_INF_INFORMATION,UINT,PCWSTR,PWSTR,DWORD,PDWORD); + BOOL SetupQuerySpaceRequiredOnDriveA(HDSKSPC,PCSTR,LONGLONG*,PVOID,UINT); + BOOL SetupQuerySpaceRequiredOnDriveW(HDSKSPC,PCWSTR,LONGLONG*,PVOID,UINT); + BOOL SetupQueueCopyA(HSPFILEQ,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,DWORD); + BOOL SetupQueueCopyW(HSPFILEQ,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,DWORD); + BOOL SetupQueueCopyIndirectA(PSP_FILE_COPY_PARAMS_A); + BOOL SetupQueueCopyIndirectW(PSP_FILE_COPY_PARAMS_W); + BOOL SetupQueueCopySectionA(HSPFILEQ,PCSTR,HINF,HINF,PCSTR,DWORD); + BOOL SetupQueueCopySectionW(HSPFILEQ,PCWSTR,HINF,HINF,PCWSTR,DWORD); + BOOL SetupQueueDefaultCopyA(HSPFILEQ,HINF,PCSTR,PCSTR,PCSTR,DWORD); + BOOL SetupQueueDefaultCopyW(HSPFILEQ,HINF,PCWSTR,PCWSTR,PCWSTR,DWORD); + BOOL SetupQueueDeleteA(HSPFILEQ,PCSTR,PCSTR); + BOOL SetupQueueDeleteW(HSPFILEQ,PCWSTR,PCWSTR); + BOOL SetupQueueDeleteSectionA(HSPFILEQ,HINF,HINF,PCSTR); + BOOL SetupQueueDeleteSectionW(HSPFILEQ,HINF,HINF,PCWSTR); + BOOL SetupQueueRenameA(HSPFILEQ,PCSTR,PCSTR,PCSTR,PCSTR); + BOOL SetupQueueRenameW(HSPFILEQ,PCWSTR,PCWSTR,PCWSTR,PCWSTR); + BOOL SetupQueueRenameSectionA(HSPFILEQ,HINF,HINF,PCSTR); + BOOL SetupQueueRenameSectionW(HSPFILEQ,HINF,HINF,PCWSTR); + BOOL SetupRemoveFileLogEntryA(HSPFILELOG,PCSTR,PCSTR); + BOOL SetupRemoveFileLogEntryW(HSPFILELOG,PCWSTR,PCWSTR); + BOOL SetupRemoveFromDiskSpaceListA(HDSKSPC,PCSTR,UINT,PVOID,UINT); + BOOL SetupRemoveFromDiskSpaceListW(HDSKSPC,PCWSTR,UINT,PVOID,UINT); + BOOL SetupRemoveFromSourceListA(DWORD,PCSTR); + BOOL SetupRemoveFromSourceListW(DWORD,PCWSTR); + BOOL SetupRemoveInstallSectionFromDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,PVOID,UINT); + BOOL SetupRemoveInstallSectionFromDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,PVOID,UINT); + BOOL SetupRemoveSectionFromDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,UINT,PVOID,UINT); + BOOL SetupRemoveSectionFromDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,UINT,PVOID,UINT); + UINT SetupRenameErrorA(HWND,PCSTR,PCSTR,PCSTR,UINT,DWORD); + UINT SetupRenameErrorW(HWND,PCWSTR,PCWSTR,PCWSTR,UINT,DWORD); + BOOL SetupScanFileQueueA(HSPFILEQ,DWORD,HWND,PSP_FILE_CALLBACK_A,PVOID,PDWORD); + BOOL SetupScanFileQueueW(HSPFILEQ,DWORD,HWND,PSP_FILE_CALLBACK_W,PVOID,PDWORD); + BOOL SetupSetDirectoryIdA(HINF,DWORD,PCSTR); + BOOL SetupSetDirectoryIdW(HINF,DWORD,PCWSTR); + BOOL SetupSetDirectoryIdExA(HINF,DWORD,PCSTR,DWORD,DWORD,PVOID); + BOOL SetupSetDirectoryIdExW(HINF,DWORD,PCWSTR,DWORD,DWORD,PVOID); + BOOL SetupSetFileQueueAlternatePlatformA(HSPFILEQ,PSP_ALTPLATFORM_INFO,PCSTR); + BOOL SetupSetFileQueueAlternatePlatformW(HSPFILEQ,PSP_ALTPLATFORM_INFO,PCWSTR); + BOOL SetupSetPlatformPathOverrideA(PCSTR); + BOOL SetupSetPlatformPathOverrideW(PCWSTR); + BOOL SetupSetSourceListA(DWORD,PCSTR*,UINT); + BOOL SetupSetSourceListW(DWORD,PCWSTR*,UINT); + VOID SetupTermDefaultQueueCallback(PVOID); + BOOL SetupTerminateFileLog(HSPFILELOG); +} + +deprecated { + alias SetupDiCreateDeviceInterfaceW SetupDiCreateInterfaceDeviceW; + alias SetupDiCreateDeviceInterfaceRegKeyW SetupDiCreateInterfaceDeviceRegKeyW; + alias SetupDiOpenDeviceInterfaceW SetupDiOpenInterfaceDeviceW; + alias SetupDiGetDeviceInterfaceDetailW SetupDiGetInterfaceDeviceDetailW; + alias SetupDiCreateDeviceInterfaceA SetupDiCreateInterfaceDeviceA; + alias SetupDiCreateDeviceInterfaceRegKeyA SetupDiCreateInterfaceDeviceRegKeyA; + alias SetupDiOpenDeviceInterfaceA SetupDiOpenInterfaceDeviceA; + alias SetupDiGetDeviceInterfaceDetailA SetupDiGetInterfaceDeviceDetailA; +} + +version (Unicode) { + alias PSP_FILE_CALLBACK_W PSP_FILE_CALLBACK; + alias SetupAddInstallSectionToDiskSpaceListW SetupAddInstallSectionToDiskSpaceList; + alias SetupAddSectionToDiskSpaceListW SetupAddSectionToDiskSpaceList; + alias SetupAddToDiskSpaceListW SetupAddToDiskSpaceList; + alias SetupAddToSourceListW SetupAddToSourceList; + alias SetupAdjustDiskSpaceListW SetupAdjustDiskSpaceList; + alias SetupBackupErrorW SetupBackupError; + alias SetupCommitFileQueueW SetupCommitFileQueue; + alias SetupCopyErrorW SetupCopyError; + alias SetupCopyOEMInfW SetupCopyOEMInf; + alias SetupCreateDiskSpaceListW SetupCreateDiskSpaceList; + alias SetupDecompressOrCopyFileW SetupDecompressOrCopyFile; + alias SetupDefaultQueueCallbackW SetupDefaultQueueCallback; + alias SetupDeleteErrorW SetupDeleteError; + alias SetupDiBuildClassInfoListExW SetupDiBuildClassInfoListEx; + alias SetupDiClassGuidsFromNameExW SetupDiClassGuidsFromNameEx; + alias SetupDiClassGuidsFromNameW SetupDiClassGuidsFromName; + alias SetupDiClassNameFromGuidExW SetupDiClassNameFromGuidEx; + alias SetupDiClassNameFromGuidW SetupDiClassNameFromGuid; + alias SetupDiCreateDeviceInfoListExW SetupDiCreateDeviceInfoListEx; + alias SetupDiCreateDeviceInfoW SetupDiCreateDeviceInfo; + alias SetupDiCreateDeviceInterfaceRegKeyW SetupDiCreateDeviceInterfaceRegKey; + deprecated alias SetupDiCreateDeviceInterfaceRegKeyW SetupDiCreateInterfaceDeviceRegKey; + alias SetupDiCreateDeviceInterfaceW SetupDiCreateDeviceInterface; + deprecated alias SetupDiCreateDeviceInterfaceW SetupDiCreateInterfaceDevice; + alias SetupDiCreateDevRegKeyW SetupDiCreateDevRegKey; + alias SetupDiEnumDriverInfoW SetupDiEnumDriverInfo; + alias SetupDiGetActualSectionToInstallW SetupDiGetActualSectionToInstall; + alias SetupDiGetClassDescriptionExW SetupDiGetClassDescriptionEx; + alias SetupDiGetClassDescriptionW SetupDiGetClassDescription; + alias SetupDiGetClassDevPropertySheetsW SetupDiGetClassDevPropertySheets; + alias SetupDiGetClassDevsExW SetupDiGetClassDevsEx; + alias SetupDiGetClassDevsW SetupDiGetClassDevs; + alias SetupDiGetClassImageListExW SetupDiGetClassImageListEx; + alias SetupDiGetClassInstallParamsW SetupDiGetClassInstallParams; + alias SetupDiGetClassRegistryPropertyW SetupDiGetClassRegistryProperty; + alias SetupDiGetDeviceInfoListDetailW SetupDiGetDeviceInfoListDetail; + alias SetupDiGetDeviceInstallParamsW SetupDiGetDeviceInstallParams; + alias SetupDiGetDeviceInstanceIdW SetupDiGetDeviceInstanceId; + alias SetupDiGetDeviceInterfaceDetailW SetupDiGetDeviceInterfaceDetail; + deprecated alias SetupDiGetDeviceInterfaceDetailW SetupDiGetInterfaceDeviceDetail; + alias SetupDiGetDeviceRegistryPropertyW SetupDiGetDeviceRegistryProperty; + alias SetupDiGetDriverInfoDetailW SetupDiGetDriverInfoDetail; + alias SetupDiGetDriverInstallParamsW SetupDiGetDriverInstallParams; + alias SetupDiGetHwProfileFriendlyNameExW SetupDiGetHwProfileFriendlyNameEx; + alias SetupDiGetHwProfileFriendlyNameW SetupDiGetHwProfileFriendlyName; + alias SetupDiGetHwProfileListExW SetupDiGetHwProfileListEx; + alias SetupDiGetINFClassW SetupDiGetINFClass; + alias SetupDiGetSelectedDriverW SetupDiGetSelectedDriver; + alias SetupDiInstallClassExW SetupDiInstallClassEx; + alias SetupDiInstallClassW SetupDiInstallClass; + alias SetupDiOpenClassRegKeyExW SetupDiOpenClassRegKeyEx; + alias SetupDiOpenDeviceInfoW SetupDiOpenDeviceInfo; + alias SetupDiOpenDeviceInterfaceW SetupDiOpenDeviceInterface; + deprecated alias SetupDiOpenDeviceInterfaceW SetupDiOpenInterfaceDevice; + alias SetupDiSetClassInstallParamsW SetupDiSetClassInstallParams; + alias SetupDiSetClassRegistryPropertyW SetupDiSetClassRegistryProperty; + alias SetupDiSetDeviceInstallParamsW SetupDiSetDeviceInstallParams; + alias SetupDiSetDeviceRegistryPropertyW SetupDiSetDeviceRegistryProperty; + alias SetupDiSetDriverInstallParamsW SetupDiSetDriverInstallParams; + alias SetupDiSetSelectedDriverW SetupDiSetSelectedDriver; + alias SetupDuplicateDiskSpaceListW SetupDuplicateDiskSpaceList; + alias SetupFindFirstLineW SetupFindFirstLine; + alias SetupFindNextMatchLineW SetupFindNextMatchLine; + alias SetupFreeSourceListW SetupFreeSourceList; + alias SetupGetBackupInformationW SetupGetBackupInformation; + alias SetupGetFileCompressionInfoW SetupGetFileCompressionInfo; + alias SetupGetInfFileListW SetupGetInfFileList; + alias SetupGetInfInformationW SetupGetInfInformation; + alias SetupGetLineByIndexW SetupGetLineByIndex; + alias SetupGetLineCountW SetupGetLineCount; + alias SetupGetLineTextW SetupGetLineText; + alias SetupGetMultiSzFieldW SetupGetMultiSzField; + alias SetupGetSourceFileLocationW SetupGetSourceFileLocation; + alias SetupGetSourceFileSizeW SetupGetSourceFileSize; + alias SetupGetSourceInfoW SetupGetSourceInfo; + alias SetupGetStringFieldW SetupGetStringField; + alias SetupGetTargetPathW SetupGetTargetPath; + alias SetupInitializeFileLogW SetupInitializeFileLog; + alias SetupInstallFileExW SetupInstallFileEx; + alias SetupInstallFilesFromInfSectionW SetupInstallFilesFromInfSection; + alias SetupInstallFileW SetupInstallFile; + alias SetupInstallFromInfSectionW SetupInstallFromInfSection; + alias SetupInstallServicesFromInfSectionExW SetupInstallServicesFromInfSectionEx; + alias SetupInstallServicesFromInfSectionW SetupInstallServicesFromInfSection; + alias SetupIterateCabinetW SetupIterateCabinet; + alias SetupLogErrorW SetupLogError; + alias SetupLogFileW SetupLogFile; + alias SetupOpenAppendInfFileW SetupOpenAppendInfFile; + alias SetupOpenInfFileW SetupOpenInfFile; + alias SetupPromptForDiskW SetupPromptForDisk; + alias SetupQueryDrivesInDiskSpaceListW SetupQueryDrivesInDiskSpaceList; + alias SetupQueryFileLogW SetupQueryFileLog; + alias SetupQueryInfFileInformationW SetupQueryInfFileInformation; + alias SetupQueryInfOriginalFileInformationW SetupQueryInfOriginalFileInformation; + alias SetupQueryInfVersionInformationW SetupQueryInfVersionInformation; + alias SetupQuerySourceListW SetupQuerySourceList; + alias SetupQuerySpaceRequiredOnDriveW SetupQuerySpaceRequiredOnDrive; + alias SetupQueueCopyIndirectW SetupQueueCopyIndirect; + alias SetupQueueCopySectionW SetupQueueCopySection; + alias SetupQueueCopyW SetupQueueCopy; + alias SetupQueueDefaultCopyW SetupQueueDefaultCopy; + alias SetupQueueDeleteSectionW SetupQueueDeleteSection; + alias SetupQueueDeleteW SetupQueueDelete; + alias SetupQueueRenameSectionW SetupQueueRenameSection; + alias SetupQueueRenameW SetupQueueRename; + alias SetupRemoveFileLogEntryW SetupRemoveFileLogEntry; + alias SetupRemoveFromDiskSpaceListW SetupRemoveFromDiskSpaceList; + alias SetupRemoveFromSourceListW SetupRemoveFromSourceList; + alias SetupRemoveInstallSectionFromDiskSpaceListW SetupRemoveInstallSectionFromDiskSpaceList; + alias SetupRemoveSectionFromDiskSpaceListW SetupRemoveSectionFromDiskSpaceList; + alias SetupRenameErrorW SetupRenameError; + alias SetupScanFileQueueW SetupScanFileQueue; + alias SetupSetDirectoryIdExW SetupSetDirectoryIdEx; + alias SetupSetDirectoryIdW SetupSetDirectoryId; + alias SetupSetFileQueueAlternatePlatformW SetupSetFileQueueAlternatePlatform; + alias SetupSetPlatformPathOverrideW SetupSetPlatformPathOverride; + alias SetupSetSourceListW SetupSetSourceList; +} else { + alias PSP_FILE_CALLBACK_A PSP_FILE_CALLBACK; + alias SetupAddInstallSectionToDiskSpaceListA SetupAddInstallSectionToDiskSpaceList; + alias SetupAddSectionToDiskSpaceListA SetupAddSectionToDiskSpaceList; + alias SetupAddToDiskSpaceListA SetupAddToDiskSpaceList; + alias SetupAddToSourceListA SetupAddToSourceList; + alias SetupAdjustDiskSpaceListA SetupAdjustDiskSpaceList; + alias SetupBackupErrorA SetupBackupError; + alias SetupCommitFileQueueA SetupCommitFileQueue; + alias SetupCopyErrorA SetupCopyError; + alias SetupCopyOEMInfA SetupCopyOEMInf; + alias SetupCreateDiskSpaceListA SetupCreateDiskSpaceList; + alias SetupDecompressOrCopyFileA SetupDecompressOrCopyFile; + alias SetupDefaultQueueCallbackA SetupDefaultQueueCallback; + alias SetupDeleteErrorA SetupDeleteError; + alias SetupDiBuildClassInfoListExA SetupDiBuildClassInfoListEx; + alias SetupDiClassGuidsFromNameA SetupDiClassGuidsFromName; + alias SetupDiClassGuidsFromNameExA SetupDiClassGuidsFromNameEx; + alias SetupDiClassNameFromGuidA SetupDiClassNameFromGuid; + alias SetupDiClassNameFromGuidExA SetupDiClassNameFromGuidEx; + alias SetupDiCreateDeviceInfoA SetupDiCreateDeviceInfo; + alias SetupDiCreateDeviceInfoListExA SetupDiCreateDeviceInfoListEx; + alias SetupDiCreateDeviceInterfaceA SetupDiCreateDeviceInterface; + deprecated alias SetupDiCreateDeviceInterfaceA SetupDiCreateInterfaceDevice; + alias SetupDiCreateDeviceInterfaceRegKeyA SetupDiCreateDeviceInterfaceRegKey; + deprecated alias SetupDiCreateDeviceInterfaceRegKeyA SetupDiCreateInterfaceDeviceRegKey; + alias SetupDiCreateDevRegKeyA SetupDiCreateDevRegKey; + alias SetupDiDeleteDeviceInterfaceData SetupDiDeleteInterfaceDeviceData; + alias SetupDiEnumDriverInfoA SetupDiEnumDriverInfo; + alias SetupDiGetActualSectionToInstallA SetupDiGetActualSectionToInstall; + alias SetupDiGetClassDescriptionA SetupDiGetClassDescription; + alias SetupDiGetClassDescriptionExA SetupDiGetClassDescriptionEx; + alias SetupDiGetClassDevPropertySheetsA SetupDiGetClassDevPropertySheets; + alias SetupDiGetClassDevsA SetupDiGetClassDevs; + alias SetupDiGetClassDevsExA SetupDiGetClassDevsEx; + alias SetupDiGetClassImageListExA SetupDiGetClassImageListEx; + alias SetupDiGetClassInstallParamsA SetupDiGetClassInstallParams; + alias SetupDiGetClassRegistryPropertyA SetupDiGetClassRegistryProperty; + alias SetupDiGetDeviceInfoListDetailA SetupDiGetDeviceInfoListDetail; + alias SetupDiGetDeviceInstallParamsA SetupDiGetDeviceInstallParams; + alias SetupDiGetDeviceInstanceIdA SetupDiGetDeviceInstanceId; + alias SetupDiGetDeviceInterfaceDetailA SetupDiGetDeviceInterfaceDetail; + deprecated alias SetupDiGetDeviceInterfaceDetailA SetupDiGetInterfaceDeviceDetail; + alias SetupDiGetDeviceRegistryPropertyA SetupDiGetDeviceRegistryProperty; + alias SetupDiGetDriverInfoDetailA SetupDiGetDriverInfoDetail; + alias SetupDiGetDriverInstallParamsA SetupDiGetDriverInstallParams; + alias SetupDiGetHwProfileFriendlyNameA SetupDiGetHwProfileFriendlyName; + alias SetupDiGetHwProfileFriendlyNameExA SetupDiGetHwProfileFriendlyNameEx; + alias SetupDiGetHwProfileListExA SetupDiGetHwProfileListEx; + alias SetupDiGetINFClassA SetupDiGetINFClass; + alias SetupDiGetSelectedDriverA SetupDiGetSelectedDriver; + alias SetupDiInstallClassA SetupDiInstallClass; + alias SetupDiInstallClassExA SetupDiInstallClassEx; + alias SetupDiOpenClassRegKeyExA SetupDiOpenClassRegKeyEx; + alias SetupDiOpenDeviceInfoA SetupDiOpenDeviceInfo; + alias SetupDiOpenDeviceInterfaceA SetupDiOpenDeviceInterface; + deprecated alias SetupDiOpenDeviceInterfaceA SetupDiOpenInterfaceDevice; + alias SetupDiSetClassInstallParamsA SetupDiSetClassInstallParams; + alias SetupDiSetClassRegistryPropertyA SetupDiSetClassRegistryProperty; + alias SetupDiSetDeviceInstallParamsA SetupDiSetDeviceInstallParams; + alias SetupDiSetDeviceRegistryPropertyA SetupDiSetDeviceRegistryProperty; + alias SetupDiSetDriverInstallParamsA SetupDiSetDriverInstallParams; + alias SetupDiSetSelectedDriverA SetupDiSetSelectedDriver; + alias SetupDuplicateDiskSpaceListA SetupDuplicateDiskSpaceList; + alias SetupFindFirstLineA SetupFindFirstLine; + alias SetupFindNextMatchLineA SetupFindNextMatchLine; + alias SetupFreeSourceListA SetupFreeSourceList; + alias SetupGetBackupInformationA SetupGetBackupInformation; + alias SetupGetFileCompressionInfoA SetupGetFileCompressionInfo; + alias SetupGetInfFileListA SetupGetInfFileList; + alias SetupGetInfInformationA SetupGetInfInformation; + alias SetupGetLineByIndexA SetupGetLineByIndex; + alias SetupGetLineCountA SetupGetLineCount; + alias SetupGetLineTextA SetupGetLineText; + alias SetupGetMultiSzFieldA SetupGetMultiSzField; + alias SetupGetSourceFileLocationA SetupGetSourceFileLocation; + alias SetupGetSourceFileSizeA SetupGetSourceFileSize; + alias SetupGetSourceInfoA SetupGetSourceInfo; + alias SetupGetStringFieldA SetupGetStringField; + alias SetupGetTargetPathA SetupGetTargetPath; + alias SetupInitializeFileLogA SetupInitializeFileLog; + alias SetupInstallFileA SetupInstallFile; + alias SetupInstallFileExA SetupInstallFileEx; + alias SetupInstallFilesFromInfSectionA SetupInstallFilesFromInfSection; + alias SetupInstallFromInfSectionA SetupInstallFromInfSection; + alias SetupInstallServicesFromInfSectionA SetupInstallServicesFromInfSection; + alias SetupInstallServicesFromInfSectionExA SetupInstallServicesFromInfSectionEx; + alias SetupIterateCabinetA SetupIterateCabinet; + alias SetupLogErrorA SetupLogError; + alias SetupLogFileA SetupLogFile; + alias SetupOpenAppendInfFileA SetupOpenAppendInfFile; + alias SetupOpenInfFileA SetupOpenInfFile; + alias SetupPromptForDiskA SetupPromptForDisk; + alias SetupQueryDrivesInDiskSpaceListA SetupQueryDrivesInDiskSpaceList; + alias SetupQueryFileLogA SetupQueryFileLog; + alias SetupQueryInfFileInformationA SetupQueryInfFileInformation; + alias SetupQueryInfOriginalFileInformationA SetupQueryInfOriginalFileInformation; + alias SetupQueryInfVersionInformationA SetupQueryInfVersionInformation; + alias SetupQuerySourceListA SetupQuerySourceList; + alias SetupQuerySpaceRequiredOnDriveA SetupQuerySpaceRequiredOnDrive; + alias SetupQueueCopyA SetupQueueCopy; + alias SetupQueueCopyIndirectA SetupQueueCopyIndirect; + alias SetupQueueCopySectionA SetupQueueCopySection; + alias SetupQueueDefaultCopyA SetupQueueDefaultCopy; + alias SetupQueueDeleteA SetupQueueDelete; + alias SetupQueueDeleteSectionA SetupQueueDeleteSection; + alias SetupQueueRenameA SetupQueueRename; + alias SetupQueueRenameSectionA SetupQueueRenameSection; + alias SetupRemoveFileLogEntryA SetupRemoveFileLogEntry; + alias SetupRemoveFromDiskSpaceListA SetupRemoveFromDiskSpaceList; + alias SetupRemoveFromSourceListA SetupRemoveFromSourceList; + alias SetupRemoveInstallSectionFromDiskSpaceListA SetupRemoveInstallSectionFromDiskSpaceList; + alias SetupRemoveSectionFromDiskSpaceListA SetupRemoveSectionFromDiskSpaceList; + alias SetupRenameErrorA SetupRenameError; + alias SetupScanFileQueueA SetupScanFileQueue; + alias SetupSetDirectoryIdA SetupSetDirectoryId; + alias SetupSetDirectoryIdExA SetupSetDirectoryIdEx; + alias SetupSetFileQueueAlternatePlatformA SetupSetFileQueueAlternatePlatform; + alias SetupSetPlatformPathOverrideA SetupSetPlatformPathOverride; + alias SetupSetSourceListA SetupSetSourceList; +} Index: src/win32/shellapi.d ================================================================== --- src/win32/shellapi.d +++ src/win32/shellapi.d @@ -1,784 +1,412 @@ -module win32.shellapi; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino - -import win32.windef; -import win32.winbase; -import win32.winuser; - -// #ifndef _INC_SHELLAPI -// #define _INC_SHELLAPI - -// #ifndef WINSHELLAPI -// #if !defined(_SHELL32_) -// #define WINSHELLAPI DECLSPEC_IMPORT -// #else -// #... -// #endif -// #endif // WINSHELLAPI - -// #ifndef SHSTDAPI -// #if !defined(_SHELL32_) -// #define SHSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE -// #define SHSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE -// #else -// #... -// #... -// #endif -// #endif // SHSTDAPI - -// #ifndef SHDOCAPI -// #if !defined(_SHDOCVW_) -// #define SHDOCAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE -// #define SHDOCAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE -// #else -// #... -// #... -// #endif -// #endif // SHDOCAPI - -// #if !defined(_WIN64) -align(1): -// #endif - -// #ifdef __cplusplus -// extern "C" { /* Assume C declarations for C++ */ -// #endif /* __cplusplus */ - -alias void* HDROP; - -extern(Windows) export UINT DragQueryFileA(HDROP,UINT,LPSTR,UINT); -extern(Windows) export UINT DragQueryFileW(HDROP,UINT,LPWSTR,UINT); -// #ifdef UNICODE -alias DragQueryFileW DragQueryFile; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL DragQueryPoint(HDROP,LPPOINT); -extern(Windows) export void DragFinish(HDROP); -extern(Windows) export void DragAcceptFiles(HWND,BOOL); - -extern(Windows) export HINSTANCE ShellExecuteA(HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd); -extern(Windows) export HINSTANCE ShellExecuteW(HWND hwnd, LPCWSTR lpOperation, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd); -// #ifdef UNICODE -alias ShellExecuteW ShellExecute; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HINSTANCE FindExecutableA(LPCSTR lpFile, LPCSTR lpDirectory, LPSTR lpResult); -extern(Windows) export HINSTANCE FindExecutableW(LPCWSTR lpFile, LPCWSTR lpDirectory, LPWSTR lpResult); -// #ifdef UNICODE -alias FindExecutableW FindExecutable; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export LPWSTR * CommandLineToArgvW(LPCWSTR lpCmdLine, int*pNumArgs); - -extern(Windows) export INT ShellAboutA(HWND hWnd, LPCSTR szApp, LPCSTR szOtherStuff, HICON hIcon); -extern(Windows) export INT ShellAboutW(HWND hWnd, LPCWSTR szApp, LPCWSTR szOtherStuff, HICON hIcon); -// #ifdef UNICODE -alias ShellAboutW ShellAbout; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HICON DuplicateIcon(HINSTANCE hInst, HICON hIcon); -extern(Windows) export HICON ExtractAssociatedIconA(HINSTANCE hInst, LPSTR lpIconPath, LPWORD lpiIcon); -extern(Windows) export HICON ExtractAssociatedIconW(HINSTANCE hInst, LPWSTR lpIconPath, LPWORD lpiIcon); -// #ifdef UNICODE -alias ExtractAssociatedIconW ExtractAssociatedIcon; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HICON ExtractIconA(HINSTANCE hInst, LPCSTR lpszExeFileName, UINT nIconIndex); -extern(Windows) export HICON ExtractIconW(HINSTANCE hInst, LPCWSTR lpszExeFileName, UINT nIconIndex); -// #ifdef UNICODE -alias ExtractIconW ExtractIcon; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -struct _DRAGINFOA { - UINT uSize; - POINT pt; - BOOL fNC; - LPSTR lpFileList; - DWORD grfKeyState; -} -alias _DRAGINFOA DRAGINFOA; -alias _DRAGINFOA* LPDRAGINFOA; - -struct _DRAGINFOW { - UINT uSize; - POINT pt; - BOOL fNC; - LPWSTR lpFileList; - DWORD grfKeyState; -} -alias _DRAGINFOW DRAGINFOW; -alias _DRAGINFOW* LPDRAGINFOW; - -// #ifdef UNICODE -alias DRAGINFOW DRAGINFO; -alias LPDRAGINFOW LPDRAGINFO; -// #else -// ... -// #endif // UNICODE - -enum : uint { ABM_NEW = 0x00000000 } -enum : uint { ABM_REMOVE = 0x00000001 } -enum : uint { ABM_QUERYPOS = 0x00000002 } -enum : uint { ABM_SETPOS = 0x00000003 } -enum : uint { ABM_GETSTATE = 0x00000004 } -enum : uint { ABM_GETTASKBARPOS = 0x00000005 } -enum : uint { ABM_ACTIVATE = 0x00000006 } -enum : uint { ABM_GETAUTOHIDEBAR = 0x00000007 } -enum : uint { ABM_SETAUTOHIDEBAR = 0x00000008 } - -enum : uint { ABM_WINDOWPOSCHANGED = 0x0000009 } -enum : uint { ABM_SETSTATE = 0x0000000a } - -enum : uint { ABN_STATECHANGE = 0x0000000 } -enum : uint { ABN_POSCHANGED = 0x0000001 } -enum : uint { ABN_FULLSCREENAPP = 0x0000002 } -enum : uint { ABN_WINDOWARRANGE = 0x0000003 } - -enum : uint { ABS_AUTOHIDE = 0x0000001 } -enum : uint { ABS_ALWAYSONTOP = 0x0000002 } - -enum : uint { ABE_LEFT = 0 } -enum : uint { ABE_TOP = 1 } -enum : uint { ABE_RIGHT = 2 } -enum : uint { ABE_BOTTOM = 3 } - -struct _AppBarData { - DWORD cbSize; - HWND hWnd; - UINT uCallbackMessage; - UINT uEdge; - RECT rc; - LPARAM lParam; -} -alias _AppBarData APPBARDATA; -alias _AppBarData* PAPPBARDATA; - -extern(Windows) export UINT_PTR SHAppBarMessage(DWORD dwMessage, PAPPBARDATA pData); - -extern(Windows) export DWORD DoEnvironmentSubstA(LPSTR szString, UINT cchString); -extern(Windows) export DWORD DoEnvironmentSubstW(LPWSTR szString, UINT cchString); -// #ifdef UNICODE -alias DoEnvironmentSubstW DoEnvironmentSubst; -// #else -// #... -// #endif // !UNICODE - -// #define EIRESID(x) (-1 * (int)(x)) -extern(Windows) export UINT ExtractIconExA(LPCSTR lpszFile, int nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIcons); -extern(Windows) export UINT ExtractIconExW(LPCWSTR lpszFile, int nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIcons); -// #ifdef UNICODE -alias ExtractIconExW ExtractIconEx; -// #else -// #... -// #endif // !UNICODE - -// #ifndef FO_MOVE //these need to be kept in sync with the ones in shlobj.h - -enum : uint { FO_MOVE = 0x0001 } -enum : uint { FO_COPY = 0x0002 } -enum : uint { FO_DELETE = 0x0003 } -enum : uint { FO_RENAME = 0x0004 } - -enum : uint { FOF_MULTIDESTFILES = 0x0001 } -enum : uint { FOF_CONFIRMMOUSE = 0x0002 } -enum : uint { FOF_SILENT = 0x0004 } -enum : uint { FOF_RENAMEONCOLLISION = 0x0008 } -enum : uint { FOF_NOCONFIRMATION = 0x0010 } -enum : uint { FOF_WANTMAPPINGHANDLE = 0x0020 } - -enum : uint { FOF_ALLOWUNDO = 0x0040 } -enum : uint { FOF_FILESONLY = 0x0080 } -enum : uint { FOF_SIMPLEPROGRESS = 0x0100 } -enum : uint { FOF_NOCONFIRMMKDIR = 0x0200 } -enum : uint { FOF_NOERRORUI = 0x0400 } -enum : uint { FOF_NOCOPYSECURITYATTRIBS = 0x0800 } -enum : uint { FOF_NORECURSION = 0x1000 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { FOF_NO_CONNECTED_ELEMENTS = 0x2000 } -enum : uint { FOF_WANTNUKEWARNING = 0x4000 } -// #endif // (_WIN32_IE >= 0x500) -// #if (_WIN32_WINNT >= 0x0501) -enum : uint { FOF_NORECURSEREPARSE = 0x8000 } -// #endif // (_WIN32_WINNT >= 0x501) - -alias WORD FILEOP_FLAGS; - -enum : uint { PO_DELETE = 0x0013 } -enum : uint { PO_RENAME = 0x0014 } -enum : uint { PO_PORTCHANGE = 0x0020 } - -enum : uint { PO_REN_PORT = 0x0034 } - -alias WORD PRINTEROP_FLAGS; - -// #endif // FO_MOVE - -struct _SHFILEOPSTRUCTA { - HWND hwnd; - UINT wFunc; - LPCSTR pFrom; - LPCSTR pTo; - FILEOP_FLAGS fFlags; - BOOL fAnyOperationsAborted; - LPVOID hNameMappings; - LPCSTR lpszProgressTitle; -} -alias _SHFILEOPSTRUCTA SHFILEOPSTRUCTA; -alias _SHFILEOPSTRUCTA* LPSHFILEOPSTRUCTA; - -struct _SHFILEOPSTRUCTW { - HWND hwnd; - UINT wFunc; - LPCWSTR pFrom; - LPCWSTR pTo; - FILEOP_FLAGS fFlags; - BOOL fAnyOperationsAborted; - LPVOID hNameMappings; - LPCWSTR lpszProgressTitle; -} -alias _SHFILEOPSTRUCTW SHFILEOPSTRUCTW; -alias _SHFILEOPSTRUCTW* LPSHFILEOPSTRUCTW; - -// #ifdef UNICODE -alias SHFILEOPSTRUCTW SHFILEOPSTRUCT; -alias LPSHFILEOPSTRUCTW LPSHFILEOPSTRUCT; -// #else -// ... -// #endif // UNICODE - -extern(Windows) export int SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp); -extern(Windows) export int SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp); -// #ifdef UNICODE -alias SHFileOperationW SHFileOperation; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export void SHFreeNameMappings(HANDLE hNameMappings); - -struct _SHNAMEMAPPINGA { - LPSTR pszOldPath; - LPSTR pszNewPath; - int cchOldPath; - int cchNewPath; -} -alias _SHNAMEMAPPINGA SHNAMEMAPPINGA; -alias _SHNAMEMAPPINGA* LPSHNAMEMAPPINGA; - -struct _SHNAMEMAPPINGW { - LPWSTR pszOldPath; - LPWSTR pszNewPath; - int cchOldPath; - int cchNewPath; -} -alias _SHNAMEMAPPINGW SHNAMEMAPPINGW; -alias _SHNAMEMAPPINGW* LPSHNAMEMAPPINGW; - -// #ifdef UNICODE -alias SHNAMEMAPPINGW SHNAMEMAPPING; -alias LPSHNAMEMAPPINGW LPSHNAMEMAPPING; -// #else -// ... -// #endif // UNICODE - -enum : uint { SE_ERR_FNF = 2 } -enum : uint { SE_ERR_PNF = 3 } -enum : uint { SE_ERR_ACCESSDENIED = 5 } -enum : uint { SE_ERR_OOM = 8 } -enum : uint { SE_ERR_DLLNOTFOUND = 32 } - -// #endif /* WINVER >= 0x0400 */ - -enum : uint { SE_ERR_SHARE = 26 } -enum : uint { SE_ERR_ASSOCINCOMPLETE = 27 } -enum : uint { SE_ERR_DDETIMEOUT = 28 } -enum : uint { SE_ERR_DDEFAIL = 29 } -enum : uint { SE_ERR_DDEBUSY = 30 } -enum : uint { SE_ERR_NOASSOC = 31 } - -// #if(WINVER >= 0x0400) - -enum : uint { SEE_MASK_CLASSNAME = 0x00000001 } -enum : uint { SEE_MASK_CLASSKEY = 0x00000003 } - -enum : uint { SEE_MASK_IDLIST = 0x00000004 } -enum : uint { SEE_MASK_INVOKEIDLIST = 0x0000000c } -enum : uint { SEE_MASK_ICON = 0x00000010 } -enum : uint { SEE_MASK_HOTKEY = 0x00000020 } -enum : uint { SEE_MASK_NOCLOSEPROCESS = 0x00000040 } -enum : uint { SEE_MASK_CONNECTNETDRV = 0x00000080 } -enum : uint { SEE_MASK_FLAG_DDEWAIT = 0x00000100 } -enum : uint { SEE_MASK_DOENVSUBST = 0x00000200 } -enum : uint { SEE_MASK_FLAG_NO_UI = 0x00000400 } -enum : uint { SEE_MASK_UNICODE = 0x00004000 } -enum : uint { SEE_MASK_NO_CONSOLE = 0x00008000 } -enum : uint { SEE_MASK_ASYNCOK = 0x00100000 } -enum : uint { SEE_MASK_HMONITOR = 0x00200000 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { SEE_MASK_NOQUERYCLASSSTORE = 0x01000000 } -enum : uint { SEE_MASK_WAITFORINPUTIDLE = 0x02000000 } -// #endif // (_WIN32_IE >= 0x500) -// #if (_WIN32_IE >= 0x0560) -enum : uint { SEE_MASK_FLAG_LOG_USAGE = 0x04000000 } -// #endif // (_WIN32_IE >= 0x560) - -// #ifndef DUMMYUNIONNAME -// #ifdef NONAMELESSUNION -// #... -// #... -// #... -// #... -// #... -// #else -// #define DUMMYUNIONNAME -// #define DUMMYUNIONNAME2 -// #define DUMMYUNIONNAME3 -// #define DUMMYUNIONNAME4 -// #define DUMMYUNIONNAME5 -// #endif -// #endif // DUMMYUNIONNAME - -struct _SHELLEXECUTEINFOA { - DWORD cbSize; - ULONG fMask; - HWND hwnd; - LPCSTR lpVerb; - LPCSTR lpFile; - LPCSTR lpParameters; - LPCSTR lpDirectory; - int nShow; - HINSTANCE hInstApp; - - LPVOID lpIDList; - LPCSTR lpClass; - HKEY hkeyClass; - DWORD dwHotKey; -union { - HANDLE hIcon; - HANDLE hMonitor; -} - - HANDLE hProcess; -} -alias _SHELLEXECUTEINFOA SHELLEXECUTEINFOA; -alias _SHELLEXECUTEINFOA* LPSHELLEXECUTEINFOA; - -struct _SHELLEXECUTEINFOW { - DWORD cbSize; - ULONG fMask; - HWND hwnd; - LPCWSTR lpVerb; - LPCWSTR lpFile; - LPCWSTR lpParameters; - LPCWSTR lpDirectory; - int nShow; - HINSTANCE hInstApp; - - LPVOID lpIDList; - LPCWSTR lpClass; - HKEY hkeyClass; - DWORD dwHotKey; -union { - HANDLE hIcon; - HANDLE hMonitor; -} - - HANDLE hProcess; -} -alias _SHELLEXECUTEINFOW SHELLEXECUTEINFOW; -alias _SHELLEXECUTEINFOW* LPSHELLEXECUTEINFOW; - -// #ifdef UNICODE -alias SHELLEXECUTEINFOW SHELLEXECUTEINFO; -alias LPSHELLEXECUTEINFOW LPSHELLEXECUTEINFO; -// #else -// ... -// #endif // UNICODE - -extern(Windows) export BOOL ShellExecuteExA(LPSHELLEXECUTEINFOA lpExecInfo); -extern(Windows) export BOOL ShellExecuteExW(LPSHELLEXECUTEINFOW lpExecInfo); -// #ifdef UNICODE -alias ShellExecuteExW ShellExecuteEx; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export void WinExecErrorA(HWND hwnd, int error, LPCSTR lpstrFileName, LPCSTR lpstrTitle); -extern(Windows) export void WinExecErrorW(HWND hwnd, int error, LPCWSTR lpstrFileName, LPCWSTR lpstrTitle); -// #ifdef UNICODE -alias WinExecErrorW WinExecError; -// #else -// #... -// #endif // !UNICODE - -struct _SHCREATEPROCESSINFOW { - DWORD cbSize; - ULONG fMask; - HWND hwnd; - LPCWSTR pszFile; - LPCWSTR pszParameters; - LPCWSTR pszCurrentDirectory; - HANDLE hUserToken; - LPSECURITY_ATTRIBUTES lpProcessAttributes; - LPSECURITY_ATTRIBUTES lpThreadAttributes; - BOOL bInheritHandles; - DWORD dwCreationFlags; - LPSTARTUPINFOW lpStartupInfo; - LPPROCESS_INFORMATION lpProcessInformation; -} -alias _SHCREATEPROCESSINFOW SHCREATEPROCESSINFOW; -alias _SHCREATEPROCESSINFOW* PSHCREATEPROCESSINFOW; - -extern(Windows) export BOOL SHCreateProcessAsUserW(PSHCREATEPROCESSINFOW pscpi); - -struct _SHQUERYRBINFO { - DWORD cbSize; -// #if !defined(_MAC) || defined(_MAC_INT_64) - __int64 i64Size; - __int64 i64NumItems; -// #else -// ... -// #endif -} -alias _SHQUERYRBINFO SHQUERYRBINFO; -alias _SHQUERYRBINFO* LPSHQUERYRBINFO; - -enum : uint { SHERB_NOCONFIRMATION = 0x00000001 } -enum : uint { SHERB_NOPROGRESSUI = 0x00000002 } -enum : uint { SHERB_NOSOUND = 0x00000004 } - -extern(Windows) export HRESULT SHQueryRecycleBinA(LPCSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo); -extern(Windows) export HRESULT SHQueryRecycleBinW(LPCWSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo); -// #ifdef UNICODE -alias SHQueryRecycleBinW SHQueryRecycleBin; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HRESULT SHEmptyRecycleBinA(HWND hwnd, LPCSTR pszRootPath, DWORD dwFlags); -extern(Windows) export HRESULT SHEmptyRecycleBinW(HWND hwnd, LPCWSTR pszRootPath, DWORD dwFlags); -// #ifdef UNICODE -alias SHEmptyRecycleBinW SHEmptyRecycleBin; -// #else -// #... -// #endif // !UNICODE - -struct _NOTIFYICONDATAA { - DWORD cbSize; - HWND hWnd; - UINT uID; - UINT uFlags; - UINT uCallbackMessage; - HICON hIcon; -// #if (_WIN32_IE < 0x0500) -// ... -// #else - CHAR szTip[128]; -// #endif -// #if (_WIN32_IE >= 0x0500) - DWORD dwState; - DWORD dwStateMask; - CHAR szInfo[256]; -union { - UINT uTimeout; - UINT uVersion; -} - - CHAR szInfoTitle[64]; - DWORD dwInfoFlags; -// #endif -// #if (_WIN32_IE >= 0x600) - GUID guidItem; -// #endif -} -alias _NOTIFYICONDATAA NOTIFYICONDATAA; -alias _NOTIFYICONDATAA* PNOTIFYICONDATAA; - -struct _NOTIFYICONDATAW { - DWORD cbSize; - HWND hWnd; - UINT uID; - UINT uFlags; - UINT uCallbackMessage; - HICON hIcon; -// #if (_WIN32_IE < 0x0500) -// ... -// #else - WCHAR szTip[128]; -// #endif -// #if (_WIN32_IE >= 0x0500) - DWORD dwState; - DWORD dwStateMask; - WCHAR szInfo[256]; -union { - UINT uTimeout; - UINT uVersion; -} - - WCHAR szInfoTitle[64]; - DWORD dwInfoFlags; -// #endif -// #if (_WIN32_IE >= 0x600) - GUID guidItem; -// #endif -} -alias _NOTIFYICONDATAW NOTIFYICONDATAW; -alias _NOTIFYICONDATAW* PNOTIFYICONDATAW; - -// #ifdef UNICODE -alias NOTIFYICONDATAW NOTIFYICONDATA; -alias PNOTIFYICONDATAW PNOTIFYICONDATA; -// #else -// ... -// #endif // UNICODE - -// #define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAA, szTip[64]) -// #define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64]) -// #ifdef UNICODE -// #define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAW_V1_SIZE -// #else -// #... -// #endif - -// #define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem) -// #define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem) -// #ifdef UNICODE -// #define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAW_V2_SIZE -// #else -// #... -// #endif - -// #if (_WIN32_IE >= 0x0500) -const uint NIN_SELECT = WM_USER + 0; -enum : uint { NINF_KEY = 0x1 } -const uint NIN_KEYSELECT = NIN_SELECT | NINF_KEY; -// #endif - -// #if (_WIN32_IE >= 0x0501) -const uint NIN_BALLOONSHOW = WM_USER + 2; -const uint NIN_BALLOONHIDE = WM_USER + 3; -const uint NIN_BALLOONTIMEOUT = WM_USER + 4; -const uint NIN_BALLOONUSERCLICK = WM_USER + 5; -// #endif - -enum : uint { NIM_ADD = 0x00000000 } -enum : uint { NIM_MODIFY = 0x00000001 } -enum : uint { NIM_DELETE = 0x00000002 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { NIM_SETFOCUS = 0x00000003 } -enum : uint { NIM_SETVERSION = 0x00000004 } -enum : uint { NOTIFYICON_VERSION = 3 } -// #endif - -enum : uint { NIF_MESSAGE = 0x00000001 } -enum : uint { NIF_ICON = 0x00000002 } -enum : uint { NIF_TIP = 0x00000004 } -// #if (_WIN32_IE >= 0x0500) -enum : uint { NIF_STATE = 0x00000008 } -enum : uint { NIF_INFO = 0x00000010 } -// #endif -// #if (_WIN32_IE >= 0x600) -enum : uint { NIF_GUID = 0x00000020 } -// #endif - -// #if (_WIN32_IE >= 0x0500) -enum : uint { NIS_HIDDEN = 0x00000001 } -enum : uint { NIS_SHAREDICON = 0x00000002 } - -enum : uint { NIIF_NONE = 0x00000000 } - -enum : uint { NIIF_INFO = 0x00000001 } -enum : uint { NIIF_WARNING = 0x00000002 } -enum : uint { NIIF_ERROR = 0x00000003 } -enum : uint { NIIF_ICON_MASK = 0x0000000F } -// #if (_WIN32_IE >= 0x0501) -enum : uint { NIIF_NOSOUND = 0x00000010 } -// #endif -// #endif - -extern(Windows) export BOOL Shell_NotifyIconA(DWORD dwMessage, PNOTIFYICONDATAA lpData); -extern(Windows) export BOOL Shell_NotifyIconW(DWORD dwMessage, PNOTIFYICONDATAW lpData); -// #ifdef UNICODE -alias Shell_NotifyIconW Shell_NotifyIcon; -// #else -// #... -// #endif // !UNICODE - -// #ifndef SHFILEINFO_DEFINED -// #define SHFILEINFO_DEFINED - -struct _SHFILEINFOA { - HICON hIcon; - int iIcon; - DWORD dwAttributes; - CHAR szDisplayName[MAX_PATH]; - CHAR szTypeName[80]; -} -alias _SHFILEINFOA SHFILEINFOA; - -struct _SHFILEINFOW { - HICON hIcon; - int iIcon; - DWORD dwAttributes; - WCHAR szDisplayName[MAX_PATH]; - WCHAR szTypeName[80]; -} -alias _SHFILEINFOW SHFILEINFOW; - -// #ifdef UNICODE -alias SHFILEINFOW SHFILEINFO; -// #else -// ... -// #endif // UNICODE - -// #endif // !SHFILEINFO_DEFINED - -enum : uint { SHGFI_ICON = 0x000000100 } -enum : uint { SHGFI_DISPLAYNAME = 0x000000200 } -enum : uint { SHGFI_TYPENAME = 0x000000400 } -enum : uint { SHGFI_ATTRIBUTES = 0x000000800 } -enum : uint { SHGFI_ICONLOCATION = 0x000001000 } -enum : uint { SHGFI_EXETYPE = 0x000002000 } -enum : uint { SHGFI_SYSICONINDEX = 0x000004000 } -enum : uint { SHGFI_LINKOVERLAY = 0x000008000 } -enum : uint { SHGFI_SELECTED = 0x000010000 } -enum : uint { SHGFI_ATTR_SPECIFIED = 0x000020000 } -enum : uint { SHGFI_LARGEICON = 0x000000000 } -enum : uint { SHGFI_SMALLICON = 0x000000001 } -enum : uint { SHGFI_OPENICON = 0x000000002 } -enum : uint { SHGFI_SHELLICONSIZE = 0x000000004 } -enum : uint { SHGFI_PIDL = 0x000000008 } -enum : uint { SHGFI_USEFILEATTRIBUTES = 0x000000010 } - -// #if (_WIN32_IE >= 0x0500) -enum : uint { SHGFI_ADDOVERLAYS = 0x000000020 } -enum : uint { SHGFI_OVERLAYINDEX = 0x000000040 } - -// #endif - -extern(Windows) export DWORD_PTR SHGetFileInfoA(LPCSTR pszPath, DWORD dwFileAttributes, SHFILEINFOA *psfi, UINT cbFileInfo, UINT uFlags); -extern(Windows) export DWORD_PTR SHGetFileInfoW(LPCWSTR pszPath, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT cbFileInfo, UINT uFlags); -// #ifdef UNICODE -alias SHGetFileInfoW SHGetFileInfo; -// #else -// #... -// #endif // !UNICODE - -alias SHGetDiskFreeSpaceEx SHGetDiskFreeSpace; - -extern(Windows) export BOOL SHGetDiskFreeSpaceExA(LPCSTR pszDirectoryName, ULARGE_INTEGER* pulFreeBytesAvailableToCaller, ULARGE_INTEGER* pulTotalNumberOfBytes, ULARGE_INTEGER* pulTotalNumberOfFreeBytes); -extern(Windows) export BOOL SHGetDiskFreeSpaceExW(LPCWSTR pszDirectoryName, ULARGE_INTEGER* pulFreeBytesAvailableToCaller, ULARGE_INTEGER* pulTotalNumberOfBytes, ULARGE_INTEGER* pulTotalNumberOfFreeBytes); -// #ifdef UNICODE -alias SHGetDiskFreeSpaceExW SHGetDiskFreeSpaceEx; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL SHGetNewLinkInfoA(LPCSTR pszLinkTo, LPCSTR pszDir, LPSTR pszName, BOOL *pfMustCopy, UINT uFlags); -extern(Windows) export BOOL SHGetNewLinkInfoW(LPCWSTR pszLinkTo, LPCWSTR pszDir, LPWSTR pszName, BOOL *pfMustCopy, UINT uFlags); -// #ifdef UNICODE -alias SHGetNewLinkInfoW SHGetNewLinkInfo; -// #else -// #... -// #endif // !UNICODE - -enum : uint { SHGNLI_PIDL = 0x000000001 } -enum : uint { SHGNLI_PREFIXNAME = 0x000000002 } -enum : uint { SHGNLI_NOUNIQUE = 0x000000004 } -// #if (_WIN32_IE >= 0x0501) -enum : uint { SHGNLI_NOLNK = 0x000000008 } -// #endif // _WIN2_IE >= 0x0501 - -enum : uint { PRINTACTION_OPEN = 0 } -enum : uint { PRINTACTION_PROPERTIES = 1 } -enum : uint { PRINTACTION_NETINSTALL = 2 } -enum : uint { PRINTACTION_NETINSTALLLINK = 3 } -enum : uint { PRINTACTION_TESTPAGE = 4 } -enum : uint { PRINTACTION_OPENNETPRN = 5 } -// #ifdef WINNT -// #... -// #... -// #endif - -extern(Windows) export BOOL SHInvokePrinterCommandA(HWND hwnd, UINT uAction, LPCSTR lpBuf1, LPCSTR lpBuf2, BOOL fModal); -extern(Windows) export BOOL SHInvokePrinterCommandW(HWND hwnd, UINT uAction, LPCWSTR lpBuf1, LPCWSTR lpBuf2, BOOL fModal); -// #ifdef UNICODE -alias SHInvokePrinterCommandW SHInvokePrinterCommand; -// #else -// #... -// #endif // !UNICODE - -// #endif /* WINVER >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0500) - -extern(Windows) export HRESULT SHLoadNonloadedIconOverlayIdentifiers(); - -extern(Windows) export HRESULT SHIsFileAvailableOffline(LPCWSTR pwszPath, LPDWORD pdwStatus); - -enum : uint { OFFLINE_STATUS_LOCAL = 0x0001 } -enum : uint { OFFLINE_STATUS_REMOTE = 0x0002 } -enum : uint { OFFLINE_STATUS_INCOMPLETE = 0x0004 } - -// #endif - -extern(Windows) export HRESULT SHSetLocalizedName(LPWSTR pszPath, LPCWSTR pszResModule, int idsRes); - -// #if _WIN32_IE >= 0x0600 - -extern(Windows) export HRESULT SHEnumerateUnreadMailAccountsA(HKEY hKeyUser, DWORD dwIndex, LPSTR pszMailAddress, int cchMailAddress); -extern(Windows) export HRESULT SHEnumerateUnreadMailAccountsW(HKEY hKeyUser, DWORD dwIndex, LPWSTR pszMailAddress, int cchMailAddress); -// #ifdef UNICODE -alias SHEnumerateUnreadMailAccountsW SHEnumerateUnreadMailAccounts; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HRESULT SHGetUnreadMailCountA(HKEY hKeyUser, LPCSTR pszMailAddress, DWORD *pdwCount, FILETIME *pFileTime, LPSTR pszShellExecuteCommand, int cchShellExecuteCommand); -extern(Windows) export HRESULT SHGetUnreadMailCountW(HKEY hKeyUser, LPCWSTR pszMailAddress, DWORD *pdwCount, FILETIME *pFileTime, LPWSTR pszShellExecuteCommand, int cchShellExecuteCommand); -// #ifdef UNICODE -alias SHGetUnreadMailCountW SHGetUnreadMailCount; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HRESULT SHSetUnreadMailCountA(LPCSTR pszMailAddress, DWORD dwCount, LPCSTR pszShellExecuteCommand); -extern(Windows) export HRESULT SHSetUnreadMailCountW(LPCWSTR pszMailAddress, DWORD dwCount, LPCWSTR pszShellExecuteCommand); -// #ifdef UNICODE -alias SHSetUnreadMailCountW SHSetUnreadMailCount; -// #else -// #... -// #endif // !UNICODE - -// #endif /* _WIN32_IE >= 0x0600 */ - -// #if _WIN32_IE >= 0x0600 - -extern(Windows) export HRESULT SHGetImageList(int iImageList, REFIID riid, void **ppvObj); - -enum : uint { SHIL_LARGE = 0 } -enum : uint { SHIL_SMALL = 1 } -enum : uint { SHIL_EXTRALARGE = 2 } -enum : uint { SHIL_SYSSMALL = 3 } - -alias SHIL_SYSSMALL SHIL_LAST; - -extern(Windows) alias HRESULT function( LPCWSTR pszPath) PFNCANSHAREFOLDERW; -extern(Windows) alias HRESULT function( HWND hwndParent, LPCWSTR pszPath) PFNSHOWSHAREFOLDERUIW; - -// #endif /* _WIN32_IE >= 0x0600 */ - -// #ifdef __cplusplus -// } -// #endif /* __cplusplus */ - -// #if !defined(_WIN64) -align: -// #endif - -// #endif /* _INC_SHELLAPI */ - +/***********************************************************************\ +* shellapi.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.shellapi; +pragma(lib, "shell32.lib"); + +private import win32.w32api, win32.windef, win32.basetyps; + +enum : UINT { + ABE_LEFT, + ABE_TOP, + ABE_RIGHT, + ABE_BOTTOM // = 3 +} + +enum : UINT { + ABS_AUTOHIDE = 1, + ABS_ALWAYSONTOP +} + +const ULONG + SEE_MASK_CLASSNAME = 1, + SEE_MASK_CLASSKEY = 3, + SEE_MASK_IDLIST = 4, + SEE_MASK_INVOKEIDLIST = 12, + SEE_MASK_ICON = 0x000010, + SEE_MASK_HOTKEY = 0x000020, + SEE_MASK_NOCLOSEPROCESS = 0x000040, + SEE_MASK_CONNECTNETDRV = 0x000080, + SEE_MASK_FLAG_DDEWAIT = 0x000100, + SEE_MASK_DOENVSUBST = 0x000200, + SEE_MASK_FLAG_NO_UI = 0x000400, + SEE_MASK_NO_CONSOLE = 0x008000, + SEE_MASK_UNICODE = 0x010000, + SEE_MASK_ASYNCOK = 0x100000, + SEE_MASK_HMONITOR = 0x200000; + +enum : DWORD { + ABM_NEW, + ABM_REMOVE, + ABM_QUERYPOS, + ABM_SETPOS, + ABM_GETSTATE, + ABM_GETTASKBARPOS, + ABM_ACTIVATE, + ABM_GETAUTOHIDEBAR, + ABM_SETAUTOHIDEBAR, + ABM_WINDOWPOSCHANGED // = 9 +} + +static if (WINVER >= 0x501) { + const DWORD ABM_SETSTATE = 10; +} + +enum : UINT { + ABN_STATECHANGE, + ABN_POSCHANGED, + ABN_FULLSCREENAPP, + ABN_WINDOWARRANGE +} + +enum : DWORD { + NIM_ADD, + NIM_MODIFY, + NIM_DELETE +} + +static if (_WIN32_IE >= 0x500) { + const NOTIFYICON_VERSION = 3; + + enum : DWORD { + NIM_SETFOCUS = 3, + NIM_SETVERSION + } +} + +const UINT + NIF_MESSAGE = 1, + NIF_ICON = 2, + NIF_TIP = 4, + NIF_STATE = 8; + +static if (_WIN32_IE >= 0x500) { + const UINT NIF_INFO = 0x00000010; +} + +static if (_WIN32_IE >= 0x600) { + const UINT NIF_GUID = 0x00000020; +} + +static if (_WIN32_IE >= 0x500) { + enum : DWORD { + NIIF_NONE, + NIIF_INFO, + NIIF_WARNING, + NIIF_ERROR + } +} + +static if (_WIN32_IE >= 0x600) { + enum : DWORD { + NIIF_ICON_MASK = 15, + NIIF_NOSOUND + } +} + +const DWORD + NIS_HIDDEN = 1, + NIS_SHAREDICON = 2; + +const HINSTANCE + SE_ERR_FNF = cast(HANDLE) 2, + SE_ERR_PNF = cast(HANDLE) 3, + SE_ERR_ACCESSDENIED = cast(HANDLE) 5, + SE_ERR_OOM = cast(HANDLE) 8, + SE_ERR_DLLNOTFOUND = cast(HANDLE) 32, + SE_ERR_SHARE = cast(HANDLE) 26, + SE_ERR_ASSOCINCOMPLETE = cast(HANDLE) 27, + SE_ERR_DDETIMEOUT = cast(HANDLE) 28, + SE_ERR_DDEFAIL = cast(HANDLE) 29, + SE_ERR_DDEBUSY = cast(HANDLE) 30, + SE_ERR_NOASSOC = cast(HANDLE) 31; + +enum : UINT { + FO_MOVE = 1, + FO_COPY, + FO_DELETE, + FO_RENAME +} + +const FILEOP_FLAGS + FOF_MULTIDESTFILES = 0x0001, + FOF_CONFIRMMOUSE = 0x0002, + FOF_SILENT = 0x0004, + FOF_RENAMEONCOLLISION = 0x0008, + FOF_NOCONFIRMATION = 0x0010, + FOF_WANTMAPPINGHANDLE = 0x0020, + FOF_ALLOWUNDO = 0x0040, + FOF_FILESONLY = 0x0080, + FOF_SIMPLEPROGRESS = 0x0100, + FOF_NOCONFIRMMKDIR = 0x0200, + FOF_NOERRORUI = 0x0400, + FOF_NOCOPYSECURITYATTRIBS = 0x0800; + +// these are not documented on the MSDN site +enum { + PO_DELETE = 19, + PO_RENAME = 20, + PO_PORTCHANGE = 32, + PO_REN_PORT = 52 +} + +const UINT + SHGFI_LARGEICON = 0x000000, + SHGFI_SMALLICON = 0x000001, + SHGFI_OPENICON = 0x000002, + SHGFI_SHELLICONSIZE = 0x000004, + SHGFI_PIDL = 0x000008, + SHGFI_USEFILEATTRIBUTES = 0x000010, + SHGFI_ICON = 0x000100, + SHGFI_DISPLAYNAME = 0x000200, + SHGFI_TYPENAME = 0x000400, + SHGFI_ATTRIBUTES = 0x000800, + SHGFI_ICONLOCATION = 0x001000, + SHGFI_EXETYPE = 0x002000, + SHGFI_SYSICONINDEX = 0x004000, + SHGFI_LINKOVERLAY = 0x008000, + SHGFI_SELECTED = 0x010000, + SHGFI_ATTR_SPECIFIED = 0x020000; + +const SHERB_NOCONFIRMATION = 1; +const SHERB_NOPROGRESSUI = 2; +const SHERB_NOSOUND = 4; + +alias WORD FILEOP_FLAGS, PRINTEROP_FLAGS; +alias HANDLE HDROP; + +align(2): + +struct APPBARDATA { + DWORD cbSize = APPBARDATA.sizeof; + HWND hWnd; + UINT uCallbackMessage; + UINT uEdge; + RECT rc; + LPARAM lParam; +} +alias APPBARDATA* PAPPBARDATA; + +struct NOTIFYICONDATAA { + DWORD cbSize = NOTIFYICONDATAA.sizeof; + HWND hWnd; + UINT uID; + UINT uFlags; + UINT uCallbackMessage; + HICON hIcon; + static if (_WIN32_IE >= 0x500) { + CHAR[128] szTip; + DWORD dwState; + DWORD dwStateMask; + CHAR[256] szInfo; + union { + UINT uTimeout; + UINT uVersion; + } + CHAR[64] szInfoTitle; + DWORD dwInfoFlags; + } else { + CHAR[64] szTip; + } + static if (_WIN32_IE >= 0x600) { + GUID guidItem; + } +} +alias NOTIFYICONDATAA* PNOTIFYICONDATAA; + +struct NOTIFYICONDATAW { + DWORD cbSize = NOTIFYICONDATAW.sizeof; + HWND hWnd; + UINT uID; + UINT uFlags; + UINT uCallbackMessage; + HICON hIcon; + static if (_WIN32_IE >= 0x500) { + WCHAR[128] szTip; + DWORD dwState; + DWORD dwStateMask; + WCHAR[256] szInfo; + union { + UINT uTimeout; + UINT uVersion; + } + WCHAR[64] szInfoTitle; + DWORD dwInfoFlags; + } else { + WCHAR[64] szTip; + } + static if (_WIN32_IE >= 0x600) { + GUID guidItem; + } +} +alias NOTIFYICONDATAW* PNOTIFYICONDATAW; + +struct SHELLEXECUTEINFOA { + DWORD cbSize = SHELLEXECUTEINFOA.sizeof; + ULONG fMask; + HWND hwnd; + LPCSTR lpVerb; + LPCSTR lpFile; + LPCSTR lpParameters; + LPCSTR lpDirectory; + int nShow; + HINSTANCE hInstApp; + PVOID lpIDList; + LPCSTR lpClass; + HKEY hkeyClass; + DWORD dwHotKey; + HANDLE hIcon; + HANDLE hProcess; +} +alias SHELLEXECUTEINFOA* LPSHELLEXECUTEINFOA; + +struct SHELLEXECUTEINFOW { + DWORD cbSize = SHELLEXECUTEINFOW.sizeof; + ULONG fMask; + HWND hwnd; + LPCWSTR lpVerb; + LPCWSTR lpFile; + LPCWSTR lpParameters; + LPCWSTR lpDirectory; + int nShow; + HINSTANCE hInstApp; + PVOID lpIDList; + LPCWSTR lpClass; + HKEY hkeyClass; + DWORD dwHotKey; + HANDLE hIcon; + HANDLE hProcess; +} +alias SHELLEXECUTEINFOW* LPSHELLEXECUTEINFOW; + +struct SHFILEOPSTRUCTA { + HWND hwnd; + UINT wFunc; + LPCSTR pFrom; + LPCSTR pTo; + FILEOP_FLAGS fFlags; + BOOL fAnyOperationsAborted; + PVOID hNameMappings; + LPCSTR lpszProgressTitle; +} +alias SHFILEOPSTRUCTA* LPSHFILEOPSTRUCTA; + +struct SHFILEOPSTRUCTW { + HWND hwnd; + UINT wFunc; + LPCWSTR pFrom; + LPCWSTR pTo; + FILEOP_FLAGS fFlags; + BOOL fAnyOperationsAborted; + PVOID hNameMappings; + LPCWSTR lpszProgressTitle; +} +alias SHFILEOPSTRUCTW* LPSHFILEOPSTRUCTW; + +struct SHFILEINFOA { + HICON hIcon; + int iIcon; + DWORD dwAttributes; + CHAR[MAX_PATH] szDisplayName; + CHAR[80] szTypeName; +} + +struct SHFILEINFOW { + HICON hIcon; + int iIcon; + DWORD dwAttributes; + WCHAR[MAX_PATH] szDisplayName; + WCHAR[80] szTypeName; +} + +struct SHQUERYRBINFO { + DWORD cbSize = SHQUERYRBINFO.sizeof; + long i64Size; + long i64NumItems; +} +alias SHQUERYRBINFO* LPSHQUERYRBINFO; + +extern (Windows) { + LPWSTR* CommandLineToArgvW(LPCWSTR, int*); + void DragAcceptFiles(HWND, BOOL); + void DragFinish(HDROP); + UINT DragQueryFileA(HDROP, UINT, LPSTR, UINT); + UINT DragQueryFileW(HDROP, UINT, LPWSTR, UINT); + BOOL DragQueryPoint(HDROP, LPPOINT); + HICON DuplicateIcon(HINSTANCE, HICON); + HICON ExtractAssociatedIconA(HINSTANCE, LPCSTR, PWORD); + HICON ExtractAssociatedIconW(HINSTANCE, LPCWSTR, PWORD); + HICON ExtractIconA(HINSTANCE, LPCSTR, UINT); + HICON ExtractIconW(HINSTANCE, LPCWSTR, UINT); + UINT ExtractIconExA(LPCSTR, int, HICON*, HICON*, UINT); + UINT ExtractIconExW(LPCWSTR, int, HICON*, HICON*, UINT); + HINSTANCE FindExecutableA(LPCSTR, LPCSTR, LPSTR); + HINSTANCE FindExecutableW(LPCWSTR, LPCWSTR, LPWSTR); + UINT SHAppBarMessage(DWORD, PAPPBARDATA); + BOOL Shell_NotifyIconA(DWORD, PNOTIFYICONDATAA); + BOOL Shell_NotifyIconW(DWORD, PNOTIFYICONDATAW); + int ShellAboutA(HWND, LPCSTR, LPCSTR, HICON); + int ShellAboutW(HWND, LPCWSTR, LPCWSTR, HICON); + HINSTANCE ShellExecuteA(HWND, LPCSTR, LPCSTR, LPCSTR, LPCSTR, INT); + HINSTANCE ShellExecuteW(HWND, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, INT); + BOOL ShellExecuteExA(LPSHELLEXECUTEINFOA); + BOOL ShellExecuteExW(LPSHELLEXECUTEINFOW); + int SHFileOperationA(LPSHFILEOPSTRUCTA); + int SHFileOperationW(LPSHFILEOPSTRUCTW); + void SHFreeNameMappings(HANDLE); + DWORD SHGetFileInfoA(LPCSTR, DWORD, SHFILEINFOA*, UINT, UINT); + DWORD SHGetFileInfoW(LPCWSTR, DWORD, SHFILEINFOW*, UINT, UINT); + HRESULT SHQueryRecycleBinA(LPCSTR, LPSHQUERYRBINFO); + HRESULT SHQueryRecycleBinW(LPCWSTR, LPSHQUERYRBINFO); + HRESULT SHEmptyRecycleBinA(HWND, LPCSTR, DWORD); + HRESULT SHEmptyRecycleBinW(HWND, LPCWSTR, DWORD); +} + +version (Unicode) { + alias NOTIFYICONDATAW NOTIFYICONDATA; + alias SHELLEXECUTEINFOW SHELLEXECUTEINFO; + alias SHFILEOPSTRUCTW SHFILEOPSTRUCT; + alias SHFILEINFOW SHFILEINFO; + alias DragQueryFileW DragQueryFile; + alias ExtractAssociatedIconW ExtractAssociatedIcon; + alias ExtractIconW ExtractIcon; + alias ExtractIconExW ExtractIconEx; + alias FindExecutableW FindExecutable; + alias Shell_NotifyIconW Shell_NotifyIcon; + alias ShellAboutW ShellAbout; + alias ShellExecuteW ShellExecute; + alias ShellExecuteExW ShellExecuteEx; + alias SHFileOperationW SHFileOperation; + alias SHGetFileInfoW SHGetFileInfo; + alias SHQueryRecycleBinW SHQueryRecycleBin; + alias SHEmptyRecycleBinW SHEmptyRecycleBin; +} else { + alias NOTIFYICONDATAA NOTIFYICONDATA; + alias SHELLEXECUTEINFOA SHELLEXECUTEINFO; + alias SHFILEOPSTRUCTA SHFILEOPSTRUCT; + alias SHFILEINFOA SHFILEINFO; + alias DragQueryFileA DragQueryFile; + alias ExtractAssociatedIconA ExtractAssociatedIcon; + alias ExtractIconA ExtractIcon; + alias ExtractIconExA ExtractIconEx; + alias FindExecutableA FindExecutable; + alias Shell_NotifyIconA Shell_NotifyIcon; + alias ShellAboutA ShellAbout; + alias ShellExecuteA ShellExecute; + alias ShellExecuteExA ShellExecuteEx; + alias SHFileOperationA SHFileOperation; + alias SHGetFileInfoA SHGetFileInfo; + alias SHQueryRecycleBinA SHQueryRecycleBin; + alias SHEmptyRecycleBinA SHEmptyRecycleBin; +} + +alias NOTIFYICONDATA* PNOTIFYICONDATA; +alias SHELLEXECUTEINFO* LPSHELLEXECUTEINFO; +alias SHFILEOPSTRUCT* LPSHFILEOPSTRUCT; ADDED src/win32/shldisp.d Index: src/win32/shldisp.d ================================================================== --- src/win32/shldisp.d +++ src/win32/shldisp.d @@ -0,0 +1,27 @@ +/***********************************************************************\ +* shldisp.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.shldisp; + +private import win32.unknwn, win32.windef, win32.wtypes; + +// options for IAutoComplete2 +const DWORD ACO_AUTOSUGGEST = 0x01; + +interface IAutoComplete : IUnknown { + HRESULT Init(HWND, IUnknown*, LPCOLESTR, LPCOLESTR); + HRESULT Enable(BOOL); +} +alias IAutoComplete* LPAUTOCOMPLETE; + +interface IAutoComplete2 : IAutoComplete { + HRESULT SetOptions(DWORD); + HRESULT GetOptions(DWORD*); +} +alias IAutoComplete2* LPAUTOCOMPLETE2; ADDED src/win32/shlguid.d Index: src/win32/shlguid.d ================================================================== --- src/win32/shlguid.d +++ src/win32/shlguid.d @@ -0,0 +1,18 @@ +/***********************************************************************\ +* shlguid.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.shlguid; + +private import win32.basetyps, win32.w32api; + +// FIXME: clean up Windows version support + +// I think this is just a helper macro for other win32 headers? +//MACRO #define DEFINE_SHLGUID(n,l,w1,w2) DEFINE_GUID(n,l,w1,w2,0xC0,0,0,0,0,0,0,0x46) + ADDED src/win32/shlobj.d Index: src/win32/shlobj.d ================================================================== --- src/win32/shlobj.d +++ src/win32/shlobj.d @@ -0,0 +1,1358 @@ +/***********************************************************************\ +* shlobj.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.shlobj; +pragma(lib, "shell32.lib"); + +// TODO: fix bitfields +// TODO: CMIC_VALID_SEE_FLAGS +// SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K + +import win32.commctrl, win32.ole2, win32.shlguid, win32.shellapi; +private import win32.prsht, win32.unknwn, win32.w32api, win32.winbase, + win32.winnt, win32.winuser, win32.wtypes, win32.objfwd, win32.objidl; +private import win32.winnetwk; // for NETRESOURCE + + +// FIXME: clean up Windows version support + +align(1): + +const BIF_RETURNONLYFSDIRS = 1; +const BIF_DONTGOBELOWDOMAIN = 2; +const BIF_STATUSTEXT = 4; +const BIF_RETURNFSANCESTORS = 8; +const BIF_EDITBOX = 16; +const BIF_VALIDATE = 32; +const BIF_NEWDIALOGSTYLE = 64; +const BIF_BROWSEINCLUDEURLS = 128; +const BIF_USENEWUI = BIF_EDITBOX | BIF_NEWDIALOGSTYLE; +const BIF_BROWSEFORCOMPUTER = 0x1000; +const BIF_BROWSEFORPRINTER = 0x2000; +const BIF_BROWSEINCLUDEFILES = 0x4000; +const BIF_SHAREABLE = 0x8000; +const BFFM_INITIALIZED = 1; +const BFFM_SELCHANGED = 2; +const BFFM_VALIDATEFAILEDA = 3; +const BFFM_VALIDATEFAILEDW = 4; +const BFFM_SETSTATUSTEXTA = WM_USER + 100; +const BFFM_ENABLEOK = WM_USER + 101; +const BFFM_SETSELECTIONA = WM_USER + 102; +const BFFM_SETSELECTIONW = WM_USER + 103; +const BFFM_SETSTATUSTEXTW = WM_USER + 104; +const BFFM_SETOKTEXT = WM_USER + 105; +const BFFM_SETEXPANDED = WM_USER + 106; + +version(Unicode) { + alias BFFM_SETSTATUSTEXTW BFFM_SETSTATUSTEXT; + alias BFFM_SETSELECTIONW BFFM_SETSELECTION; + alias BFFM_VALIDATEFAILEDW BFFM_VALIDATEFAILED; +} else { + alias BFFM_SETSTATUSTEXTA BFFM_SETSTATUSTEXT; + alias BFFM_SETSELECTIONA BFFM_SETSELECTION; + alias BFFM_VALIDATEFAILEDA BFFM_VALIDATEFAILED; +} + +const DVASPECT_SHORTNAME = 2; + +const SHARD_PIDL = 1; +const SHARD_PATH = 2; + +const SHCNE_RENAMEITEM = 1; +const SHCNE_CREATE = 2; +const SHCNE_DELETE = 4; +const SHCNE_MKDIR = 8; +const SHCNE_RMDIR = 16; +const SHCNE_MEDIAINSERTED = 32; +const SHCNE_MEDIAREMOVED = 64; +const SHCNE_DRIVEREMOVED = 128; +const SHCNE_DRIVEADD = 256; +const SHCNE_NETSHARE = 512; +const SHCNE_NETUNSHARE = 1024; +const SHCNE_ATTRIBUTES = 2048; +const SHCNE_UPDATEDIR = 4096; +const SHCNE_UPDATEITEM = 8192; +const SHCNE_SERVERDISCONNECT = 16384; +const SHCNE_UPDATEIMAGE = 32768; +const SHCNE_DRIVEADDGUI = 65536; +const SHCNE_RENAMEFOLDER = 0x20000; +const SHCNE_FREESPACE = 0x40000; +const SHCNE_ASSOCCHANGED = 0x8000000; +const SHCNE_DISKEVENTS = 0x2381F; +const SHCNE_GLOBALEVENTS = 0xC0581E0; +const SHCNE_ALLEVENTS = 0x7FFFFFFF; +const SHCNE_INTERRUPT = 0x80000000; + +const SHCNF_IDLIST = 0; +const SHCNF_PATHA = 1; +const SHCNF_PRINTERA = 2; +const SHCNF_DWORD = 3; +const SHCNF_PATHW = 5; +const SHCNF_PRINTERW = 6; +const SHCNF_TYPE = 0xFF; +const SHCNF_FLUSH = 0x1000; +const SHCNF_FLUSHNOWAIT = 0x2000; + +version(Unicode) { + alias SHCNF_PATHW SHCNF_PATH; + alias SHCNF_PRINTERW SHCNF_PRINTER; +} else { + alias SHCNF_PATHA SHCNF_PATH; + alias SHCNF_PRINTERA SHCNF_PRINTER; +} + +const SFGAO_CANCOPY = DROPEFFECT.DROPEFFECT_COPY; +const SFGAO_CANMOVE = DROPEFFECT.DROPEFFECT_MOVE; +const SFGAO_CANLINK = DROPEFFECT.DROPEFFECT_LINK; +const SFGAO_CANRENAME = 0x00000010L; +const SFGAO_CANDELETE = 0x00000020L; +const SFGAO_HASPROPSHEET = 0x00000040L; +const SFGAO_DROPTARGET = 0x00000100L; +const SFGAO_CAPABILITYMASK = 0x00000177L; +const SFGAO_GHOSTED = 0x00008000L; +const SFGAO_LINK = 0x00010000L; +const SFGAO_SHARE = 0x00020000L; +const SFGAO_READONLY = 0x00040000L; +const SFGAO_HIDDEN = 0x00080000L; +const SFGAO_DISPLAYATTRMASK = 0x000F0000L; +const SFGAO_FILESYSANCESTOR = 0x10000000L; +const SFGAO_FOLDER = 0x20000000L; +const SFGAO_FILESYSTEM = 0x40000000L; +const SFGAO_HASSUBFOLDER = 0x80000000L; +const SFGAO_CONTENTSMASK = 0x80000000L; +const SFGAO_VALIDATE = 0x01000000L; +const SFGAO_REMOVABLE = 0x02000000L; +const SFGAO_COMPRESSED = 0x04000000L; +const STRRET_WSTR = 0; +const STRRET_OFFSET = 1; +const STRRET_CSTR = 2; + +enum { + SHGDFIL_FINDDATA = 1, + SHGDFIL_NETRESOURCE, + SHGDFIL_DESCRIPTIONID +} + +enum { + SHDID_ROOT_REGITEM = 1, + SHDID_FS_FILE, + SHDID_FS_DIRECTORY, + SHDID_FS_OTHER, + SHDID_COMPUTER_DRIVE35, + SHDID_COMPUTER_DRIVE525, + SHDID_COMPUTER_REMOVABLE, + SHDID_COMPUTER_FIXED, + SHDID_COMPUTER_NETDRIVE, + SHDID_COMPUTER_CDROM, + SHDID_COMPUTER_RAMDISK, + SHDID_COMPUTER_OTHER, + SHDID_NET_DOMAIN, + SHDID_NET_SERVER, + SHDID_NET_SHARE, + SHDID_NET_RESTOFNET, + SHDID_NET_OTHER +} + +const TCHAR[] REGSTR_PATH_EXPLORER = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer"; +const TCHAR[] REGSTR_PATH_SPECIAL_FOLDERS=REGSTR_PATH_EXPLORER ~ "\\Shell Folders"; + +enum { + CSIDL_DESKTOP = 0, + CSIDL_INTERNET, + CSIDL_PROGRAMS, + CSIDL_CONTROLS, + CSIDL_PRINTERS, + CSIDL_PERSONAL, + CSIDL_FAVORITES, + CSIDL_STARTUP, + CSIDL_RECENT, + CSIDL_SENDTO, + CSIDL_BITBUCKET, + CSIDL_STARTMENU, // = 11 + CSIDL_DESKTOPDIRECTORY = 16, + CSIDL_DRIVES, + CSIDL_NETWORK, + CSIDL_NETHOOD, + CSIDL_FONTS, + CSIDL_TEMPLATES, + CSIDL_COMMON_STARTMENU, + CSIDL_COMMON_PROGRAMS, + CSIDL_COMMON_STARTUP, + CSIDL_COMMON_DESKTOPDIRECTORY, + CSIDL_APPDATA, + CSIDL_PRINTHOOD, + CSIDL_LOCAL_APPDATA, + CSIDL_ALTSTARTUP, + CSIDL_COMMON_ALTSTARTUP, + CSIDL_COMMON_FAVORITES, + CSIDL_INTERNET_CACHE, + CSIDL_COOKIES, + CSIDL_HISTORY, + CSIDL_COMMON_APPDATA, + CSIDL_WINDOWS, + CSIDL_SYSTEM, + CSIDL_PROGRAM_FILES, + CSIDL_MYPICTURES, + CSIDL_PROFILE, + CSIDL_SYSTEMX86, + CSIDL_PROGRAM_FILESX86, + CSIDL_PROGRAM_FILES_COMMON, + CSIDL_PROGRAM_FILES_COMMONX86, + CSIDL_COMMON_TEMPLATES, + CSIDL_COMMON_DOCUMENTS, + CSIDL_COMMON_ADMINTOOLS, + CSIDL_ADMINTOOLS, + CSIDL_CONNECTIONS, // =49 + CSIDL_COMMON_MUSIC = 53, + CSIDL_COMMON_PICTURES, + CSIDL_COMMON_VIDEO, + CSIDL_RESOURCES, + CSIDL_RESOURCES_LOCALIZED, + CSIDL_COMMON_OEM_LINKS, + CSIDL_CDBURN_AREA, // = 59 + CSIDL_COMPUTERSNEARME = 61, + CSIDL_FLAG_DONT_VERIFY = 0x4000, + CSIDL_FLAG_CREATE = 0x8000, + CSIDL_FLAG_MASK = 0xFF00 +} + +const TCHAR[] + CFSTR_SHELLIDLIST = "Shell IDList Array", + CFSTR_SHELLIDLISTOFFSET = "Shell Object Offsets", + CFSTR_NETRESOURCES = "Net Resource", + CFSTR_FILECONTENTS = "FileContents", + CFSTR_FILENAMEA = "FileName", + CFSTR_FILENAMEMAPA = "FileNameMap", + CFSTR_FILEDESCRIPTORA = "FileGroupDescriptor", + CFSTR_INETURLA = "UniformResourceLocator", + CFSTR_SHELLURL = CFSTR_INETURLA, + CFSTR_FILENAMEW = "FileNameW", + CFSTR_FILENAMEMAPW = "FileNameMapW", + CFSTR_FILEDESCRIPTORW = "FileGroupDescriptorW", + CFSTR_INETURLW = "UniformResourceLocatorW"; + +version(Unicode) { + alias CFSTR_FILENAMEW CFSTR_FILENAME; + alias CFSTR_FILENAMEMAPW CFSTR_FILENAMEMAP; + alias CFSTR_FILEDESCRIPTORW CFSTR_FILEDESCRIPTOR; + alias CFSTR_INETURLW CFSTR_INETURL; +} else { + alias CFSTR_FILENAMEA CFSTR_FILENAME; + alias CFSTR_FILENAMEMAPA CFSTR_FILENAMEMAP; + alias CFSTR_FILEDESCRIPTORA CFSTR_FILEDESCRIPTOR; + alias CFSTR_INETURLA CFSTR_INETURL; +} +const TCHAR[] + CFSTR_PRINTERGROUP = "PrinterFriendlyName", + CFSTR_INDRAGLOOP = "InShellDragLoop", + CFSTR_PASTESUCCEEDED = "Paste Succeeded", + CFSTR_PERFORMEDDROPEFFECT = "Performed DropEffect", + CFSTR_PREFERREDDROPEFFECT = "Preferred DropEffect"; + +const CMF_NORMAL=0; +const CMF_DEFAULTONLY=1; +const CMF_VERBSONLY=2; +const CMF_EXPLORE=4; +const CMF_NOVERBS=8; +const CMF_CANRENAME=16; +const CMF_NODEFAULT=32; +const CMF_INCLUDESTATIC=64; +const CMF_RESERVED=0xffff0000; +const GCS_VERBA=0; +const GCS_HELPTEXTA=1; +const GCS_VALIDATEA=2; +const GCS_VERBW=4; +const GCS_HELPTEXTW=5; +const GCS_VALIDATEW=6; +const GCS_UNICODE=4; + +version(Unicode) { + alias GCS_VERBW GCS_VERB; + alias GCS_HELPTEXTW GCS_HELPTEXT; + alias GCS_VALIDATEW GCS_VALIDATE; +} else { + alias GCS_VERBA GCS_VERB; + alias GCS_HELPTEXTA GCS_HELPTEXT; + alias GCS_VALIDATEA GCS_VALIDATE; +} + +const TCHAR[] + CMDSTR_NEWFOLDER = "NewFolder", + CMDSTR_VIEWLIST = "ViewList", + CMDSTR_VIEWDETAILS = "ViewDetails"; + +const CMIC_MASK_HOTKEY = SEE_MASK_HOTKEY; +const CMIC_MASK_ICON = SEE_MASK_ICON; +const CMIC_MASK_FLAG_NO_UI = SEE_MASK_FLAG_NO_UI; +const CMIC_MASK_MODAL = 0x80000000; +// TODO: This isn't defined anywhere in MinGW. +//const CMIC_VALID_SEE_FLAGS=SEE_VALID_CMIC_FLAGS; + +const GIL_OPENICON = 1; +const GIL_FORSHELL = 2; +const GIL_SIMULATEDOC = 1; +const GIL_PERINSTANCE = 2; +const GIL_PERCLASS = 4; +const GIL_NOTFILENAME = 8; +const GIL_DONTCACHE = 16; + +const FVSIF_RECT = 1; +const FVSIF_PINNED = 2; +const FVSIF_NEWFAILED = 0x8000000; +const FVSIF_NEWFILE = 0x80000000; +const FVSIF_CANVIEWIT = 0x40000000; + +const CDBOSC_SETFOCUS = 0; +const CDBOSC_KILLFOCUS = 1; +const CDBOSC_SELCHANGE = 2; +const CDBOSC_RENAME = 3; + +const FCIDM_SHVIEWFIRST = 0; +const FCIDM_SHVIEWLAST = 0x7fff; +const FCIDM_BROWSERFIRST = 0xa000; +const FCIDM_BROWSERLAST = 0xbf00; +const FCIDM_GLOBALFIRST = 0x8000; +const FCIDM_GLOBALLAST = 0x9fff; +const FCIDM_MENU_FILE = FCIDM_GLOBALFIRST; +const FCIDM_MENU_EDIT = FCIDM_GLOBALFIRST+0x0040; +const FCIDM_MENU_VIEW = FCIDM_GLOBALFIRST+0x0080; +const FCIDM_MENU_VIEW_SEP_OPTIONS = FCIDM_GLOBALFIRST+0x0081; +const FCIDM_MENU_TOOLS = FCIDM_GLOBALFIRST+0x00c0; +const FCIDM_MENU_TOOLS_SEP_GOTO = FCIDM_GLOBALFIRST+0x00c1; +const FCIDM_MENU_HELP = FCIDM_GLOBALFIRST+0x0100; +const FCIDM_MENU_FIND = FCIDM_GLOBALFIRST+0x0140; +const FCIDM_MENU_EXPLORE = FCIDM_GLOBALFIRST+0x0150; +const FCIDM_MENU_FAVORITES = FCIDM_GLOBALFIRST+0x0170; +const FCIDM_TOOLBAR = FCIDM_BROWSERFIRST; +const FCIDM_STATUS = FCIDM_BROWSERFIRST+1; + +const SBSP_DEFBROWSER = 0; +const SBSP_SAMEBROWSER = 1; +const SBSP_NEWBROWSER = 2; +const SBSP_DEFMODE = 0; +const SBSP_OPENMODE = 16; +const SBSP_EXPLOREMODE = 32; +const SBSP_ABSOLUTE = 0; +const SBSP_RELATIVE = 0x1000; +const SBSP_PARENT = 0x2000; +const SBSP_INITIATEDBYHLINKFRAME = 0x80000000; +const SBSP_REDIRECT = 0x40000000; + +enum { + FCW_STATUS=1, + FCW_TOOLBAR, + FCW_TREE +} + +const FCT_MERGE=1; +const FCT_CONFIGABLE=2; +const FCT_ADDTOEND=4; + +const SVSI_DESELECT=0; +const SVSI_SELECT=1; +const SVSI_EDIT=3; +const SVSI_DESELECTOTHERS=4; +const SVSI_ENSUREVISIBLE=8; +const SVSI_FOCUSED=16; + +const SVGIO_BACKGROUND=0; +const SVGIO_SELECTION=1; +const SVGIO_ALLVIEW=2; + +const UINT SV2GV_CURRENTVIEW=-1; +const UINT SV2GV_DEFAULTVIEW=-2; + +alias ULONG SFGAOF; +alias DWORD SHGDNF; + +struct CIDA { + UINT cidl; + UINT[1] aoffset; +} +alias CIDA* LPIDA; + +struct SHITEMID { + USHORT cb; + BYTE[1] abID; +} +alias SHITEMID* LPSHITEMID; +alias CPtr!(SHITEMID) LPCSHITEMID; + +struct ITEMIDLIST { + SHITEMID mkid; +} +alias ITEMIDLIST* LPITEMIDLIST; +alias CPtr!(ITEMIDLIST) LPCITEMIDLIST; + +alias int function(HWND,UINT,LPARAM,LPARAM) BFFCALLBACK; + +struct BROWSEINFOA { + HWND hwndOwner; + LPCITEMIDLIST pidlRoot; + LPSTR pszDisplayName; + LPCSTR lpszTitle; + UINT ulFlags; + BFFCALLBACK lpfn; + LPARAM lParam; + int iImage; +} +alias BROWSEINFOA* PBROWSEINFOA, LPBROWSEINFOA; + +struct BROWSEINFOW { + HWND hwndOwner; + LPCITEMIDLIST pidlRoot; + LPWSTR pszDisplayName; + LPCWSTR lpszTitle; + UINT ulFlags; + BFFCALLBACK lpfn; + LPARAM lParam; + int iImage; +} +alias BROWSEINFOW* PBROWSEINFOW, LPBROWSEINFOW; + +struct CMINVOKECOMMANDINFO { + DWORD cbSize = this.sizeof; + DWORD fMask; + HWND hwnd; + LPCSTR lpVerb; + LPCSTR lpParameters; + LPCSTR lpDirectory; + int nShow; + DWORD dwHotKey; + HANDLE hIcon; +} +alias CMINVOKECOMMANDINFO* LPCMINVOKECOMMANDINFO; + +struct DROPFILES { + DWORD pFiles; + POINT pt; + BOOL fNC; + BOOL fWide; +} +alias DROPFILES* LPDROPFILES; + +enum SHGNO { + SHGDN_NORMAL = 0, + SHGDN_INFOLDER, + SHGDN_FOREDITING = 0x1000, + SHGDN_INCLUDE_NONFILESYS = 0x2000, + SHGDN_FORADDRESSBAR = 0x4000, + SHGDN_FORPARSING = 0x8000 +} + +enum SHCONTF { + SHCONTF_FOLDERS = 32, + SHCONTF_NONFOLDERS = 64, + SHCONTF_INCLUDEHIDDEN = 128, + SHCONTF_INIT_ON_FIRST_NEXT = 256, + SHCONTF_NETPRINTERSRCH = 512, + SHCONTF_SHAREABLE = 1024, + SHCONTF_STORAGE = 2048 +} + +struct STRRET { + UINT uType; + union { + LPWSTR pOleStr; + UINT uOffset; + char cStr[MAX_PATH]; + } +} +alias STRRET* LPSTRRET; + +enum FD_FLAGS { + FD_CLSID = 1, + FD_SIZEPOINT = 2, + FD_ATTRIBUTES = 4, + FD_CREATETIME = 8, + FD_ACCESSTIME = 16, + FD_WRITESTIME = 32, + FD_FILESIZE = 64, + FD_LINKUI = 0x8000 +} + +struct FILEDESCRIPTORA { + DWORD dwFlags; + CLSID clsid; + SIZEL sizel; + POINTL pointl; + DWORD dwFileAttributes; + FILETIME ftCreationTime; + FILETIME ftLastAccessTime; + FILETIME ftLastWriteTime; + DWORD nFileSizeHigh; + DWORD nFileSizeLow; + CHAR cFileName[MAX_PATH]; +} +alias FILEDESCRIPTORA* LPFILEDESCRIPTORA; + +struct FILEDESCRIPTORW { + DWORD dwFlags; + CLSID clsid; + SIZEL sizel; + POINTL pointl; + DWORD dwFileAttributes; + FILETIME ftCreationTime; + FILETIME ftLastAccessTime; + FILETIME ftLastWriteTime; + DWORD nFileSizeHigh; + DWORD nFileSizeLow; + WCHAR cFileName[MAX_PATH]; +} +alias FILEDESCRIPTORW* LPFILEDESCRIPTORW; + +struct FILEGROUPDESCRIPTORA { + UINT cItems; + FILEDESCRIPTORA fgd[1]; +} +alias FILEGROUPDESCRIPTORA* LPFILEGROUPDESCRIPTORA; + +struct FILEGROUPDESCRIPTORW { + UINT cItems; + FILEDESCRIPTORW fgd[1]; +} +alias FILEGROUPDESCRIPTORW* LPFILEGROUPDESCRIPTORW; + +enum SLR_FLAGS { + SLR_NO_UI = 1, + SLR_ANY_MATCH = 2, + SLR_UPDATE = 4, + SLR_NOUPDATE = 8, + SLR_NOSEARCH = 16, + SLR_NOTRACK = 32, + SLR_NOLINKINFO = 64, + SLR_INVOKE_MSI = 128 +} + +enum SLGP_FLAGS { + SLGP_SHORTPATH=1, + SLGP_UNCPRIORITY=2, + SLGP_RAWPATH=4 +} + +alias PBYTE LPVIEWSETTINGS; + +enum FOLDERFLAGS { + FWF_AUTOARRANGE = 1, + FWF_ABBREVIATEDNAMES = 2, + FWF_SNAPTOGRID = 4, + FWF_OWNERDATA = 8, + FWF_BESTFITWINDOW = 16, + FWF_DESKTOP = 32, + FWF_SINGLESEL = 64, + FWF_NOSUBFOLDERS = 128, + FWF_TRANSPARENT = 256, + FWF_NOCLIENTEDGE = 512, + FWF_NOSCROLL = 0x400, + FWF_ALIGNLEFT = 0x800, + FWF_SINGLECLICKACTIVATE = 0x8000 +} + +enum FOLDERVIEWMODE { + FVM_ICON = 1, + FVM_SMALLICON, + FVM_LIST, + FVM_DETAILS +} + +struct FOLDERSETTINGS { + UINT ViewMode; + UINT fFlags; +} +alias FOLDERSETTINGS* LPFOLDERSETTINGS; +alias CPtr!(FOLDERSETTINGS) LPCFOLDERSETTINGS; + +struct FVSHOWINFO { + DWORD cbSize = this.sizeof; + HWND hwndOwner; + int iShow; + DWORD dwFlags; + RECT rect; + LPUNKNOWN punkRel; + OLECHAR strNewFile[MAX_PATH]; +} +alias FVSHOWINFO* LPFVSHOWINFO; + +struct NRESARRAY { + UINT cItems; + NETRESOURCE nr[1]; +} +alias NRESARRAY* LPNRESARRAY; + +enum { + SBSC_HIDE, + SBSC_SHOW, + SBSC_TOGGLE, + SBSC_QUERY +} + +enum { + SBCMDID_ENABLESHOWTREE, + SBCMDID_SHOWCONTROL, + SBCMDID_CANCELNAVIGATION, + SBCMDID_MAYSAVECHANGES, + SBCMDID_SETHLINKFRAME, + SBCMDID_ENABLESTOP, + SBCMDID_OPTIONS +} +enum SVUIA_STATUS { + SVUIA_DEACTIVATE, + SVUIA_ACTIVATE_NOFOCUS, + SVUIA_ACTIVATE_FOCUS, + SVUIA_INPLACEACTIVATE +} + +static if (_WIN32_IE >= 0x0500) { + + struct EXTRASEARCH + { + GUID guidSearch; + WCHAR wszFriendlyName[80]; + WCHAR wszUrl[2084]; + } + alias EXTRASEARCH* LPEXTRASEARCH; + + alias DWORD SHCOLSTATEF; + + struct SHCOLUMNID { + GUID fmtid; + DWORD pid; + } + alias SHCOLUMNID* LPSHCOLUMNID; + alias CPtr!(SHCOLUMNID) LPCSHCOLUMNID; + + struct SHELLDETAILS { + int fmt; + int cxChar; + STRRET str; + } + alias SHELLDETAILS* LPSHELLDETAILS; + + struct PERSIST_FOLDER_TARGET_INFO + { + LPITEMIDLIST pidlTargetFolder; + WCHAR szTargetParsingName[MAX_PATH]; + WCHAR szNetworkProvider[MAX_PATH]; + DWORD dwAttributes; + int csidl; + } + + enum SHGFP_TYPE { + SHGFP_TYPE_CURRENT = 0, + SHGFP_TYPE_DEFAULT = 1, + } + +} + +interface IEnumIDList: IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT Next(ULONG,LPITEMIDLIST*,ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(IEnumIDList**); +} +alias IEnumIDList *LPENUMIDLIST; + +interface IObjMgr : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT Append(IUnknown*); + HRESULT Remove(IUnknown*); +} + +interface IContextMenu : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT QueryContextMenu(HMENU,UINT,UINT,UINT,UINT); + HRESULT InvokeCommand(LPCMINVOKECOMMANDINFO); + HRESULT GetCommandString(UINT,UINT,PUINT,LPSTR,UINT); +} +alias IContextMenu* LPCONTEXTMENU; + +interface IContextMenu2 : IContextMenu +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT QueryContextMenu(HMENU,UINT,UINT,UINT,UINT); + HRESULT InvokeCommand(LPCMINVOKECOMMANDINFO); + HRESULT GetCommandString(UINT,UINT,PUINT,LPSTR,UINT); + HRESULT HandleMenuMsg(UINT,WPARAM,LPARAM); +}; +alias IContextMenu2* LPCONTEXTMENU2; + +static if (_WIN32_IE >= 0x0500) { + + align(8): + struct SHCOLUMNINIT { + ULONG dwFlags; + ULONG dwReserved; + WCHAR wszFolder[MAX_PATH]; + } + alias SHCOLUMNINIT* LPSHCOLUMNINIT; + alias CPtr!(SHCOLUMNINIT) LPCSHCOLUMNINIT; + + struct SHCOLUMNDATA { + ULONG dwFlags; + DWORD dwFileAttributes; + ULONG dwReserved; + WCHAR *pwszExt; + WCHAR wszFile[MAX_PATH]; + } + alias SHCOLUMNDATA* LPSHCOLUMNDATA; + alias CPtr!(SHCOLUMNDATA) LPCSHCOLUMNDATA; + align: + + const MAX_COLUMN_NAME_LEN = 80; + const MAX_COLUMN_DESC_LEN = 128; + + align(1): + struct SHCOLUMNINFO { + SHCOLUMNID scid; + VARTYPE vt; + DWORD fmt; + UINT cChars; + DWORD csFlags; + WCHAR wszTitle[MAX_COLUMN_NAME_LEN]; + WCHAR wszDescription[MAX_COLUMN_DESC_LEN]; + } + alias SHCOLUMNINFO* LPSHCOLUMNINFO; + alias CPtr!(SHCOLUMNINFO) LPCSHCOLUMNINFO; + align: + + enum SHCOLSTATE { + SHCOLSTATE_TYPE_STR = 0x00000001, + SHCOLSTATE_TYPE_INT = 0x00000002, + SHCOLSTATE_TYPE_DATE = 0x00000003, + SHCOLSTATE_TYPEMASK = 0x0000000f, + SHCOLSTATE_ONBYDEFAULT = 0x00000010, + SHCOLSTATE_SLOW = 0x00000020, + SHCOLSTATE_EXTENDED = 0x00000040, + SHCOLSTATE_SECONDARYUI = 0x00000080, + SHCOLSTATE_HIDDEN = 0x00000100, + SHCOLSTATE_PREFER_VARCMP = 0x00000200 + } + + interface IColumnProvider : IUnknown + { + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT Initialize(LPCSHCOLUMNINIT); + HRESULT GetColumnInfo(DWORD,SHCOLUMNINFO*); + HRESULT GetItemData(LPCSHCOLUMNID,LPCSHCOLUMNDATA,VARIANT*); + } +}/* _WIN32_IE >= 0x0500 */ + +interface IQueryInfo : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT GetInfoTip(DWORD,WCHAR**); + HRESULT GetInfoFlags(DWORD*); +} + +interface IShellExtInit : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT Initialize(LPCITEMIDLIST,LPDATAOBJECT,HKEY); +} +alias IShellExtInit *LPSHELLEXTINIT; + +interface IShellPropSheetExt : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT AddPages(LPFNADDPROPSHEETPAGE,LPARAM); + HRESULT ReplacePage(UINT,LPFNADDPROPSHEETPAGE,LPARAM); +} +alias IShellPropSheetExt *LPSHELLPROPSHEETEXT; + +interface IExtractIconA : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT GetIconLocation(UINT,LPSTR,UINT,int*,PUINT); + HRESULT Extract(LPCSTR,UINT,HICON*,HICON*,UINT); +}; +alias IExtractIconA *LPEXTRACTICONA; + +interface IExtractIconW : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT GetIconLocation(UINT,LPWSTR,UINT,int*,PUINT); + HRESULT Extract(LPCWSTR,UINT,HICON*,HICON*,UINT); +} +alias IExtractIconW *LPEXTRACTICONW; + +version(Unicode) { + alias IExtractIconW IExtractIcon; + alias LPEXTRACTICONW LPEXTRACTICON; +} else { + alias IExtractIconA IExtractIcon; + alias LPEXTRACTICONA LPEXTRACTICON; +} + +interface IShellLinkA : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT GetPath(LPSTR,int,WIN32_FIND_DATAA*,DWORD); + HRESULT GetIDList(LPITEMIDLIST*); + HRESULT SetIDList(LPCITEMIDLIST); + HRESULT GetDescription(LPSTR,int); + HRESULT SetDescription(LPCSTR); + HRESULT GetWorkingDirectory(LPSTR,int); + HRESULT SetWorkingDirectory(LPCSTR); + HRESULT GetArguments(LPSTR,int); + HRESULT SetArguments(LPCSTR); + HRESULT GetHotkey(PWORD); + HRESULT SetHotkey(WORD); + HRESULT GetShowCmd(int*); + HRESULT SetShowCmd(int); + HRESULT GetIconLocation(LPSTR,int,int*); + HRESULT SetIconLocation(LPCSTR,int); + HRESULT SetRelativePath(LPCSTR ,DWORD); + HRESULT Resolve(HWND,DWORD); + HRESULT SetPath(LPCSTR); +} + +interface IShellLinkW : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT GetPath(LPWSTR,int,WIN32_FIND_DATAW*,DWORD); + HRESULT GetIDList(LPITEMIDLIST*); + HRESULT SetIDList(LPCITEMIDLIST); + HRESULT GetDescription(LPWSTR,int); + HRESULT SetDescription(LPCWSTR); + HRESULT GetWorkingDirectory(LPWSTR,int); + HRESULT SetWorkingDirectory(LPCWSTR); + HRESULT GetArguments(LPWSTR,int); + HRESULT SetArguments(LPCWSTR); + HRESULT GetHotkey(PWORD); + HRESULT SetHotkey(WORD); + HRESULT GetShowCmd(int*); + HRESULT SetShowCmd(int); + HRESULT GetIconLocation(LPWSTR,int,int*); + HRESULT SetIconLocation(LPCWSTR,int); + HRESULT SetRelativePath(LPCWSTR ,DWORD); + HRESULT Resolve(HWND,DWORD); + HRESULT SetPath(LPCWSTR); +} + + +interface IShellFolder : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT ParseDisplayName(HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG); + HRESULT EnumObjects(HWND,DWORD,LPENUMIDLIST*); + HRESULT BindToObject(LPCITEMIDLIST,LPBC,REFIID,PVOID*); + HRESULT BindToStorage(LPCITEMIDLIST,LPBC,REFIID,PVOID*); + HRESULT CompareIDs(LPARAM,LPCITEMIDLIST,LPCITEMIDLIST); + HRESULT CreateViewObject(HWND,REFIID,PVOID*); + HRESULT GetAttributesOf(UINT,LPCITEMIDLIST*,PULONG); + HRESULT GetUIObjectOf(HWND,UINT,LPCITEMIDLIST*,REFIID,PUINT,PVOID*); + HRESULT GetDisplayNameOf(LPCITEMIDLIST,DWORD,LPSTRRET); + HRESULT SetNameOf(HWND,LPCITEMIDLIST,LPCOLESTR,DWORD,LPITEMIDLIST*); +} +alias IShellFolder *LPSHELLFOLDER; + +static if (_WIN32_IE >= 0x0500) { + +interface IEnumExtraSearch: IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT Next(ULONG,LPEXTRASEARCH*,ULONG*); + HRESULT Skip(ULONG); + HRESULT Reset(); + HRESULT Clone(IEnumExtraSearch**); +} +alias IEnumExtraSearch *LPENUMEXTRASEARCH; + +interface IShellFolder2 : IShellFolder +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT ParseDisplayName(HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG); + HRESULT EnumObjects(HWND,DWORD,LPENUMIDLIST*); + HRESULT BindToObject(LPCITEMIDLIST,LPBC,REFIID,PVOID*); + HRESULT BindToStorage(LPCITEMIDLIST,LPBC,REFIID,PVOID*); + HRESULT CompareIDs(LPARAM,LPCITEMIDLIST,LPCITEMIDLIST); + HRESULT CreateViewObject(HWND,REFIID,PVOID*); + HRESULT GetAttributesOf(UINT,LPCITEMIDLIST*,PULONG); + HRESULT GetUIObjectOf(HWND,UINT,LPCITEMIDLIST*,REFIID,PUINT,PVOID*); + HRESULT GetDisplayNameOf(LPCITEMIDLIST,DWORD,LPSTRRET); + HRESULT SetNameOf(HWND,LPCITEMIDLIST,LPCOLESTR,DWORD,LPITEMIDLIST*); + HRESULT GetDefaultSearchGUID(GUID*); + HRESULT EnumSearches(IEnumExtraSearch**); + HRESULT GetDefaultColumn(DWORD,ULONG*,ULONG*); + HRESULT GetDefaultColumnState(UINT,SHCOLSTATEF*); + HRESULT GetDetailsEx(LPCITEMIDLIST, CPtr!(SHCOLUMNID),VARIANT*); + HRESULT GetDetailsOf(LPCITEMIDLIST,UINT,SHELLDETAILS*); + HRESULT MapColumnToSCID(UINT,SHCOLUMNID*); +} +alias IShellFolder2 *LPSHELLFOLDER2; + +} /* _WIN32_IE >= 0x0500 */ + +interface ICopyHook : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + UINT CopyCallback(HWND,UINT,UINT,LPCSTR,DWORD,LPCSTR,DWORD); +} +alias ICopyHook *LPCOPYHOOK; + +interface IFileViewerSite : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT SetPinnedWindow(HWND); + HRESULT GetPinnedWindow(HWND*); +} +alias IFileViewerSite *LPFILEVIEWERSITE; + +interface IFileViewer : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT ShowInitialize(LPFILEVIEWERSITE); + HRESULT Show(LPFVSHOWINFO); + HRESULT PrintTo(LPSTR,BOOL); +} +alias IFileViewer *LPFILEVIEWER; + +interface IFileSystemBindData : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT SetFindData(CPtr!(WIN32_FIND_DATAW)); + HRESULT GetFindData(WIN32_FIND_DATAW*); +} + +interface IPersistFolder : IPersist +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT GetClassID(CLSID*); + HRESULT Initialize(LPCITEMIDLIST); +} +alias IPersistFolder *LPPERSISTFOLDER; + +static if (_WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500) { + +interface IPersistFolder2 : IPersistFolder +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT GetClassID(CLSID*); + HRESULT Initialize(LPCITEMIDLIST); + HRESULT GetCurFolder(LPITEMIDLIST*); +} +alias IPersistFolder2 *LPPERSISTFOLDER2; + +}/* _WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500 */ + +static if (_WIN32_IE >= 0x0500) { + +interface IPersistFolder3 : IPersistFolder2 +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT GetClassID(CLSID*); + HRESULT Initialize(LPCITEMIDLIST); + HRESULT GetCurFolder(LPITEMIDLIST*); + HRESULT InitializeEx(IBindCtx*,LPCITEMIDLIST, CPtr!(PERSIST_FOLDER_TARGET_INFO)); + HRESULT GetFolderTargetInfo(PERSIST_FOLDER_TARGET_INFO*); +} +alias IPersistFolder3 *LPPERSISTFOLDER3; + +} /* _WIN32_IE >= 0x0500 */ + +alias IShellBrowser* LPSHELLBROWSER; +alias IShellView* LPSHELLVIEW; + +interface IShellBrowser : IOleWindow +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT GetWindow(HWND*); + HRESULT ContextSensitiveHelp(BOOL); + HRESULT InsertMenusSB(HMENU,LPOLEMENUGROUPWIDTHS); + HRESULT SetMenuSB(HMENU,HOLEMENU,HWND); + HRESULT RemoveMenusSB(HMENU); + HRESULT SetStatusTextSB(LPCOLESTR); + HRESULT EnableModelessSB(BOOL); + HRESULT TranslateAcceleratorSB(LPMSG,WORD); + HRESULT BrowseObject(LPCITEMIDLIST,UINT); + HRESULT GetViewStateStream(DWORD,LPSTREAM*); + HRESULT GetControlWindow(UINT,HWND*); + HRESULT SendControlMsg(UINT,UINT,WPARAM,LPARAM,LRESULT*); + HRESULT QueryActiveShellView(LPSHELLVIEW*); + HRESULT OnViewWindowActive(LPSHELLVIEW); + HRESULT SetToolbarItems(LPTBBUTTON,UINT,UINT); +} + +interface IShellView : IOleWindow +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT GetWindow(HWND*); + HRESULT ContextSensitiveHelp(BOOL); + HRESULT TranslateAccelerator(LPMSG); +//[No] #ifdef _FIX_ENABLEMODELESS_CONFLICT +//[No] STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE; +//[Yes] #else + HRESULT EnableModeless(BOOL); +//[Yes] #endif + HRESULT UIActivate(UINT); + HRESULT Refresh(); + HRESULT CreateViewWindow(IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RECT*,HWND*); + HRESULT DestroyViewWindow(); + HRESULT GetCurrentInfo(LPFOLDERSETTINGS); + HRESULT AddPropertySheetPages(DWORD,LPFNADDPROPSHEETPAGE,LPARAM); + HRESULT SaveViewState(); + HRESULT SelectItem(LPCITEMIDLIST,UINT); + HRESULT GetItemObject(UINT,REFIID,PVOID*); +} + +interface ICommDlgBrowser : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT OnDefaultCommand(IShellView*); + HRESULT OnStateChange(IShellView*,ULONG); + HRESULT IncludeObject(IShellView*,LPCITEMIDLIST); +} +alias ICommDlgBrowser *LPCOMMDLGBROWSER; + +alias GUID SHELLVIEWID; + +struct SV2CVW2_PARAMS { + DWORD cbSize = this.sizeof; + IShellView *psvPrev; + FOLDERSETTINGS *pfs; + IShellBrowser *psbOwner; + RECT *prcView; + CPtr!(SHELLVIEWID) pvid; + HWND hwndView; +} +alias SV2CVW2_PARAMS* LPSV2CVW2_PARAMS; + +interface IShellView2 : IShellView +{ + + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT GetWindow(HWND*); + HRESULT ContextSensitiveHelp(BOOL); + HRESULT TranslateAccelerator(LPMSG); +//[No] #ifdef _FIX_ENABLEMODELESS_CONFLICT +//[No] STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE; +//[Yes] #else + HRESULT EnableModeless(BOOL); +//[Yes] #endif + HRESULT UIActivate(UINT); + HRESULT Refresh(); + HRESULT CreateViewWindow(IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RECT*,HWND*); + HRESULT DestroyViewWindow(); + HRESULT GetCurrentInfo(LPFOLDERSETTINGS); + HRESULT AddPropertySheetPages(DWORD,LPFNADDPROPSHEETPAGE,LPARAM); + HRESULT SaveViewState(); + HRESULT SelectItem(LPCITEMIDLIST,UINT); + HRESULT GetItemObject(UINT,REFIID,PVOID*); + HRESULT GetView(SHELLVIEWID*,ULONG); + HRESULT CreateViewWindow2(LPSV2CVW2_PARAMS); +} + +interface IShellExecuteHookA : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT Execute(LPSHELLEXECUTEINFOA); +} + +interface IShellExecuteHookW : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT Execute(LPSHELLEXECUTEINFOW); +} + +interface IShellIcon : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT GetIconOf(LPCITEMIDLIST,UINT,PINT); +} +alias IShellIcon* LPSHELLICON; + +struct SHELLFLAGSTATE { +// TODO + short bitflags_; // for D. + /* + BOOL fShowAllObjects : 1; + BOOL fShowExtensions : 1; + BOOL fNoConfirmRecycle : 1; + BOOL fShowSysFiles : 1; + BOOL fShowCompColor : 1; + BOOL fDoubleClickInWebView : 1; + BOOL fDesktopHTML : 1; + BOOL fWin95Classic : 1; + BOOL fDontPrettyPath : 1; + BOOL fShowAttribCol : 1; + BOOL fMapNetDrvBtn : 1; + BOOL fShowInfoTip : 1; + BOOL fHideIcons : 1; + UINT fRestFlags : 3; +*/ +} +alias SHELLFLAGSTATE* LPSHELLFLAGSTATE; + +const SSF_SHOWALLOBJECTS = 0x1; +const SSF_SHOWEXTENSIONS = 0x2; +const SSF_SHOWCOMPCOLOR = 0x8; +const SSF_SHOWSYSFILES = 0x20; +const SSF_DOUBLECLICKINWEBVIEW = 0x80; +const SSF_SHOWATTRIBCOL = 0x100; +const SSF_DESKTOPHTML = 0x200; +const SSF_WIN95CLASSIC = 0x400; +const SSF_DONTPRETTYPATH = 0x800; +const SSF_MAPNETDRVBUTTON = 0x1000; +const SSF_SHOWINFOTIP = 0x2000; +const SSF_HIDEICONS = 0x4000; +const SSF_NOCONFIRMRECYCLE = 0x8000; + +interface IShellIconOverlayIdentifier : IUnknown +{ + HRESULT QueryInterface(REFIID,PVOID*); + ULONG AddRef(); + ULONG Release(); + HRESULT IsMemberOf(LPCWSTR,DWORD); + HRESULT GetOverlayInfo(LPWSTR,int,int*,DWORD*); + HRESULT GetPriority(int*); +} + +const ISIOI_ICONFILE = 0x00000001; +const ISIOI_ICONINDEX = 0x00000002; + +static if (_WIN32_WINNT >= 0x0500) {/* W2K */ + struct SHELLSTATE { + //TODO: + /* + BOOL fShowAllObjects : 1; + BOOL fShowExtensions : 1; + BOOL fNoConfirmRecycle : 1; + BOOL fShowSysFiles : 1; + BOOL fShowCompColor : 1; + BOOL fDoubleClickInWebView : 1; + BOOL fDesktopHTML : 1; + BOOL fWin95Classic : 1; + BOOL fDontPrettyPath : 1; + BOOL fShowAttribCol : 1; + BOOL fMapNetDrvBtn : 1; + BOOL fShowInfoTip : 1; + BOOL fHideIcons : 1; + BOOL fWebView : 1; + BOOL fFilter : 1; + BOOL fShowSuperHidden : 1; + BOOL fNoNetCrawling : 1; + DWORD dwWin95Unused; + UINT uWin95Unused; + LONG lParamSort; + int iSortDirection; + UINT version; + UINT uNotUsed; + BOOL fSepProcess : 1; + BOOL fStartPanelOn : 1; + BOOL fShowStartPage : 1; + UINT fSpareFlags : 13; +*/ + } + alias SHELLSTATE* LPSHELLSTATE; +} + +static if (_WIN32_IE >= 0x0500) { + align(8): + struct SHDRAGIMAGE { + SIZE sizeDragImage; + POINT ptOffset; + HBITMAP hbmpDragImage; + COLORREF crColorKey; + } + alias SHDRAGIMAGE* LPSHDRAGIMAGE; + align: + + interface IDragSourceHelper : IUnknown + { + HRESULT QueryInterface(REFIID riid, void **ppv); + ULONG AddRef(); + ULONG Release(); + HRESULT InitializeFromBitmap(LPSHDRAGIMAGE pshdi, IDataObject* pDataObject); + HRESULT InitializeFromWindow(HWND hwnd, POINT* ppt, IDataObject* pDataObject); + } + + interface IDropTargetHelper : IUnknown + { + HRESULT QueryInterface(REFIID riid, void** ppv); + ULONG AddRef(); + ULONG Release(); + HRESULT DragEnter(HWND hwndTarget, IDataObject* pDataObject, POINT* ppt, DWORD dwEffect); + HRESULT DragLeave(); + HRESULT DragOver(POINT* ppt, DWORD dwEffect); + HRESULT Drop(IDataObject* pDataObject, POINT* ppt, DWORD dwEffect); + HRESULT Show(BOOL fShow); + } +} + +extern (Windows): +void SHAddToRecentDocs(UINT,PCVOID); +LPITEMIDLIST SHBrowseForFolderA(PBROWSEINFOA); +LPITEMIDLIST SHBrowseForFolderW(PBROWSEINFOW); +void SHChangeNotify(LONG,UINT,PCVOID,PCVOID); +HRESULT SHGetDataFromIDListA(LPSHELLFOLDER,LPCITEMIDLIST,int,PVOID,int); +HRESULT SHGetDataFromIDListW(LPSHELLFOLDER,LPCITEMIDLIST,int,PVOID,int); +HRESULT SHGetDesktopFolder(LPSHELLFOLDER*); +HRESULT SHGetInstanceExplorer(IUnknown **); +HRESULT SHGetMalloc(LPMALLOC*); +BOOL SHGetPathFromIDListA(LPCITEMIDLIST,LPSTR); +BOOL SHGetPathFromIDListW(LPCITEMIDLIST,LPWSTR); +HRESULT SHGetSpecialFolderLocation(HWND,int,LPITEMIDLIST*); +HRESULT SHLoadInProc(REFCLSID); + +static if (_WIN32_IE >= 0x0400) { + BOOL SHGetSpecialFolderPathA(HWND,LPSTR,int,BOOL); + BOOL SHGetSpecialFolderPathW(HWND,LPWSTR,int,BOOL); +} + +/* SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K */ +HRESULT SHGetFolderPathA(HWND,int,HANDLE,DWORD,LPSTR); +HRESULT SHGetFolderPathW(HWND,int,HANDLE,DWORD,LPWSTR); + +static if ((_WIN32_WINDOWS >= 0x0490) || (_WIN32_WINNT >= 0x0500)) {/* ME or W2K */ + HRESULT SHGetFolderLocation(HWND,int,HANDLE,DWORD,LPITEMIDLIST*); +} + +static if (_WIN32_WINNT >= 0x0500) { + INT SHCreateDirectoryExA(HWND,LPCSTR,LPSECURITY_ATTRIBUTES); + INT SHCreateDirectoryExW(HWND,LPCWSTR,LPSECURITY_ATTRIBUTES); + HRESULT SHBindToParent(LPCITEMIDLIST,REFIID,VOID**,LPCITEMIDLIST*); +} + +static if (_WIN32_WINNT >= 0x0501) {/* XP */ + HRESULT SHGetFolderPathAndSubDirA(HWND,int,HANDLE,DWORD,LPCSTR,LPSTR); + HRESULT SHGetFolderPathAndSubDirW(HWND,int,HANDLE,DWORD,LPCWSTR,LPWSTR); +} + +void SHGetSettings(LPSHELLFLAGSTATE,DWORD); + +static if (_WIN32_WINNT >= 0x0500) {/* W2K */ + void SHGetSetSettings(LPSHELLSTATE,DWORD,BOOL); +} + +static if (_WIN32_WINNT >= 0x0500) {/* W2K */ + BOOL ILIsEqual(LPCITEMIDLIST, LPCITEMIDLIST); + BOOL ILIsParent(LPCITEMIDLIST, LPCITEMIDLIST, BOOL); + BOOL ILRemoveLastID(LPITEMIDLIST); + HRESULT ILLoadFromStream(IStream*, LPITEMIDLIST*); + HRESULT ILSaveToStream(IStream*, LPCITEMIDLIST); + LPITEMIDLIST ILAppendID(LPITEMIDLIST, LPCSHITEMID, BOOL); + LPITEMIDLIST ILClone(LPCITEMIDLIST); + LPITEMIDLIST ILCloneFirst(LPCITEMIDLIST); + LPITEMIDLIST ILCombine(LPCITEMIDLIST, LPCITEMIDLIST); + LPITEMIDLIST ILFindChild(LPCITEMIDLIST, LPCITEMIDLIST); + LPITEMIDLIST ILFindLastID(LPCITEMIDLIST); + LPITEMIDLIST ILGetNext(LPCITEMIDLIST); + UINT ILGetSize(LPCITEMIDLIST); + void ILFree(LPITEMIDLIST); + + HRESULT SHCoCreateInstance(LPCWSTR,REFCLSID,IUnknown*,REFIID,void**); +} + +version(Unicode) { + alias IShellExecuteHookW IShellExecuteHook; + alias IShellLinkW IShellLink; + alias BROWSEINFOW BROWSEINFO; + alias SHBrowseForFolderW SHBrowseForFolder; + alias SHGetDataFromIDListW SHGetDataFromIDList; + alias SHGetPathFromIDListW SHGetPathFromIDList; + static if (_WIN32_IE >= 0x0400) { + alias SHGetSpecialFolderPathW SHGetSpecialFolderPath; + } + alias SHGetFolderPathW SHGetFolderPath; + static if (_WIN32_WINNT >= 0x0500) { + alias SHCreateDirectoryExW SHCreateDirectoryEx; + } + static if (_WIN32_WINNT >= 0x0501) { + alias SHGetFolderPathAndSubDirW SHGetFolderPathAndSubDir; + } + alias FILEDESCRIPTORW FILEDESCRIPTOR; + alias LPFILEDESCRIPTORW LPFILEDESCRIPTOR; + alias FILEGROUPDESCRIPTORW FILEGROUPDESCRIPTOR; + alias LPFILEGROUPDESCRIPTORW LPFILEGROUPDESCRIPTOR; + +} else { + alias IShellExecuteHookA IShellExecuteHook; + alias IShellLinkA IShellLink; + alias BROWSEINFOA BROWSEINFO; + alias SHBrowseForFolderA SHBrowseForFolder; + alias SHGetDataFromIDListA SHGetDataFromIDList; + alias SHGetPathFromIDListA SHGetPathFromIDList; + static if (_WIN32_IE >= 0x0400) { + alias SHGetSpecialFolderPathA SHGetSpecialFolderPath; + } + alias SHGetFolderPathA SHGetFolderPath; + static if (_WIN32_WINNT >= 0x0500) { + alias SHCreateDirectoryExA SHCreateDirectoryEx; + } + static if (_WIN32_WINNT >= 0x0501) { + alias SHGetFolderPathAndSubDirA SHGetFolderPathAndSubDir; + } + alias FILEDESCRIPTORA FILEDESCRIPTOR; + alias LPFILEDESCRIPTORA LPFILEDESCRIPTOR; + alias FILEGROUPDESCRIPTORA FILEGROUPDESCRIPTOR; + alias LPFILEGROUPDESCRIPTORA LPFILEGROUPDESCRIPTOR; +} +alias BROWSEINFO* PBROWSEINFO, LPBROWSEINFO; ADDED src/win32/shlwapi.d Index: src/win32/shlwapi.d ================================================================== --- src/win32/shlwapi.d +++ src/win32/shlwapi.d @@ -0,0 +1,730 @@ +/***********************************************************************\ +* shlwapi.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.shlwapi; +pragma(lib, "shlwapi.lib"); + +/* Changes compared to MinGW: +wnsprintf functions are not included. +// Macros unneeded for D +#define StrCmpIA lstrcmpiA; +#define StrCmpA lstrcmpA; +#define StrCpyA lstrcpyA; +#define StrCpyNA lstrcpynA; +#define MAKEDLLVERULL(major, minor, build, qfe) \ + (((ULONGLONG)(major) << 48) | \ + ((ULONGLONG)(minor) << 32) | \ + ((ULONGLONG)(build) << 16) | \ + ((ULONGLONG)( qfe) << 0)) +*/ + +import win32.objbase, win32.shlobj; +private import win32.basetyps, win32.objidl, win32.unknwn, win32.windef, + win32.winbase, win32.winreg; + +const DLLVER_PLATFORM_WINDOWS = 0x00000001; +const DLLVER_PLATFORM_NT = 0x00000002; + +const URL_DONT_ESCAPE_EXTRA_INFO = 0x02000000; +const URL_DONT_SIMPLIFY = 0x08000000; +const URL_ESCAPE_PERCENT = 0x00001000; +const URL_ESCAPE_SEGMENT_ONLY = 0x00002000; +const URL_ESCAPE_SPACES_ONLY = 0x04000000; +const URL_ESCAPE_UNSAFE = 0x20000000; +const URL_INTERNAL_PATH = 0x00800000; +const URL_PARTFLAG_KEEPSCHEME = 0x00000001; +const URL_PLUGGABLE_PROTOCOL = 0x40000000; +const URL_UNESCAPE = 0x10000000; +const URL_UNESCAPE_HIGH_ANSI_ONLY = 0x00400000; +const URL_UNESCAPE_INPLACE = 0x00100000; + +align(1): +struct DLLVERSIONINFO +{ + DWORD cbSize = this.sizeof; + DWORD dwMajorVersion; + DWORD dwMinorVersion; + DWORD dwBuildNumber; + DWORD dwPlatformID; +} + +struct DLLVERSIONINFO2 +{ + DLLVERSIONINFO info1; + DWORD dwFlags; + ULONGLONG ullVersion; +} + +enum ASSOCSTR { + ASSOCSTR_COMMAND, + ASSOCSTR_EXECUTABLE, + ASSOCSTR_FRIENDLYDOCNAME, + ASSOCSTR_FRIENDLYAPPNAME, + ASSOCSTR_NOOPEN, + ASSOCSTR_SHELLNEWVALUE, + ASSOCSTR_DDECOMMAND, + ASSOCSTR_DDEIFEXEC, + ASSOCSTR_DDEAPPLICATION, + ASSOCSTR_DDETOPIC +} + +enum ASSOCKEY +{ + ASSOCKEY_SHELLEXECCLASS = 1, + ASSOCKEY_APP, + ASSOCKEY_CLASS, + ASSOCKEY_BASECLASS +} + +enum ASSOCDATA +{ + ASSOCDATA_MSIDESCRIPTOR = 1, + ASSOCDATA_NOACTIVATEHANDLER, + ASSOCDATA_QUERYCLASSSTORE +} + +alias DWORD ASSOCF; + +enum SHREGDEL_FLAGS +{ + SHREGDEL_DEFAULT = 0x00000000, + SHREGDEL_HKCU = 0x00000001, + SHREGDEL_HKLM = 0x00000010, + SHREGDEL_BOTH = 0x00000011 +} + +enum SHREGENUM_FLAGS +{ + SHREGENUM_DEFAULT = 0x00000000, + SHREGENUM_HKCU = 0x00000001, + SHREGENUM_HKLM = 0x00000010, + SHREGENUM_BOTH = 0x00000011 +} + +enum URLIS +{ + URLIS_URL, + URLIS_OPAQUE, + URLIS_NOHISTORY, + URLIS_FILEURL, + URLIS_APPLIABLE, + URLIS_DIRECTORY, + URLIS_HASQUERY +} + +alias HANDLE HUSKEY; +alias HUSKEY* PHUSKEY; + +extern (Windows) +{ + alias HRESULT function (DLLVERSIONINFO *) DLLGETVERSIONPROC; +} + + +BOOL IntlStrEqNA(LPCSTR pStr1, LPCSTR pStr2, int nChar) +{ + return IntlStrEqWorkerA(TRUE, pStr1, pStr2, nChar); +} + +BOOL IntlStrEqNW(LPCWSTR pStr1, LPCWSTR pStr2, int nChar) +{ + return IntlStrEqWorkerW(TRUE, pStr1, pStr2, nChar); +} + +BOOL IntlStrEqNIA(LPCSTR pStr1, LPCSTR pStr2, int nChar) +{ + return IntlStrEqWorkerA(FALSE, pStr1, pStr2, nChar); +} + +BOOL IntlStrEqNIW(LPCWSTR pStr1, LPCWSTR pStr2, int nChar) +{ + return IntlStrEqWorkerW(FALSE, pStr1, pStr2, nChar); +} + +BOOL UrlIsFileUrlA(LPCSTR pszURL) +{ + return UrlIsA(pszURL, URLIS.URLIS_FILEURL); +} + +BOOL UrlIsFileUrlW(LPCWSTR pszURL) +{ + return UrlIsW(pszURL, URLIS.URLIS_FILEURL); +} + +HRESULT UrlUnescapeInPlaceA(LPSTR pszUrl,DWORD dwFlags) +{ + return UrlUnescapeA(pszUrl, null, null, dwFlags | URL_UNESCAPE_INPLACE); +} +HRESULT UrlUnescapeInPlaceW(LPWSTR pszUrl,DWORD dwFlags) +{ + return UrlUnescapeW(pszUrl, null, null, dwFlags | URL_UNESCAPE_INPLACE); +} + +extern (Windows): +BOOL ChrCmpIA(WORD,WORD); +BOOL ChrCmpIW(WCHAR,WCHAR); +BOOL IntlStrEqWorkerA(BOOL,LPCSTR,LPCSTR,int); +BOOL IntlStrEqWorkerW(BOOL,LPCWSTR,LPCWSTR,int); +HRESULT SHStrDupA(LPCSTR,LPWSTR*); +HRESULT SHStrDupW(LPCWSTR,LPWSTR*); +LPSTR StrCatA(LPSTR,LPCSTR); +LPWSTR StrCatW(LPWSTR,LPCWSTR); +LPSTR StrCatBuffA(LPSTR,LPCSTR,int); +LPWSTR StrCatBuffW(LPWSTR,LPCWSTR,int); +DWORD StrCatChainW(LPWSTR,DWORD,DWORD,LPCWSTR); +LPSTR StrChrA(LPCSTR,WORD); +LPWSTR StrChrW(LPCWSTR,WCHAR); +LPSTR StrChrIA(LPCSTR,WORD); +LPWSTR StrChrIW(LPCWSTR,WCHAR); +int StrCmpIW(LPCWSTR,LPCWSTR); +int StrCmpW(LPCWSTR,LPCWSTR); +LPWSTR StrCpyW(LPWSTR,LPCWSTR); +LPWSTR StrCpyNW(LPWSTR,LPCWSTR,int); +int StrCmpNA(LPCSTR,LPCSTR,int); +int StrCmpNW(LPCWSTR,LPCWSTR,int); +int StrCmpNIA(LPCSTR,LPCSTR,int); +int StrCmpNIW(LPCWSTR,LPCWSTR,int); +int StrCSpnA(LPCSTR,LPCSTR); +int StrCSpnW(LPCWSTR,LPCWSTR); +int StrCSpnIA(LPCSTR,LPCSTR); +int StrCSpnIW(LPCWSTR,LPCWSTR); +LPSTR StrDupA(LPCSTR); +LPWSTR StrDupW(LPCWSTR); +LPSTR StrFormatByteSize64A(LONGLONG,LPSTR,UINT); +LPSTR StrFormatByteSizeA(DWORD,LPSTR,UINT); +LPWSTR StrFormatByteSizeW(LONGLONG,LPWSTR,UINT); +LPSTR StrFormatKBSizeA(LONGLONG,LPSTR,UINT); +LPWSTR StrFormatKBSizeW(LONGLONG,LPWSTR,UINT); +int StrFromTimeIntervalA(LPSTR,UINT,DWORD,int); +int StrFromTimeIntervalW(LPWSTR,UINT,DWORD,int); +BOOL StrIsIntlEqualA(BOOL,LPCSTR,LPCSTR,int); +BOOL StrIsIntlEqualW(BOOL,LPCWSTR,LPCWSTR,int); +LPSTR StrNCatA(LPSTR,LPCSTR,int); +LPWSTR StrNCatW(LPWSTR,LPCWSTR,int); +LPSTR StrPBrkA(LPCSTR,LPCSTR); +LPWSTR StrPBrkW(LPCWSTR,LPCWSTR); +LPSTR StrRChrA(LPCSTR,LPCSTR,WORD); +LPWSTR StrRChrW(LPCWSTR,LPCWSTR,WCHAR); +LPSTR StrRChrIA(LPCSTR,LPCSTR,WORD); +LPWSTR StrRChrIW(LPCWSTR,LPCWSTR,WCHAR); +LPSTR StrRStrIA(LPCSTR,LPCSTR,LPCSTR); +LPWSTR StrRStrIW(LPCWSTR,LPCWSTR,LPCWSTR); +int StrSpnA(LPCSTR,LPCSTR); +int StrSpnW(LPCWSTR,LPCWSTR); +LPSTR StrStrA(LPCSTR, LPCSTR); +LPSTR StrStrIA(LPCSTR,LPCSTR); +LPWSTR StrStrIW(LPCWSTR,LPCWSTR); +LPWSTR StrStrW(LPCWSTR,LPCWSTR); +int StrToIntA(LPCSTR); +int StrToIntW(LPCWSTR); +BOOL StrToIntExA(LPCSTR,DWORD,int*); +BOOL StrToIntExW(LPCWSTR,DWORD,int*); +BOOL StrTrimA(LPSTR,LPCSTR); +BOOL StrTrimW(LPWSTR,LPCWSTR); +LPSTR PathAddBackslashA(LPSTR); +LPWSTR PathAddBackslashW(LPWSTR); +BOOL PathAddExtensionA(LPSTR,LPCSTR); +BOOL PathAddExtensionW(LPWSTR,LPCWSTR); +BOOL PathAppendA(LPSTR,LPCSTR); +BOOL PathAppendW(LPWSTR,LPCWSTR); +LPSTR PathBuildRootA(LPSTR,int); +LPWSTR PathBuildRootW(LPWSTR,int); +BOOL PathCanonicalizeA(LPSTR,LPCSTR); +BOOL PathCanonicalizeW(LPWSTR,LPCWSTR); +LPSTR PathCombineA(LPSTR,LPCSTR,LPCSTR); +LPWSTR PathCombineW(LPWSTR,LPCWSTR,LPCWSTR); +int PathCommonPrefixA(LPCSTR,LPCSTR,LPSTR); +int PathCommonPrefixW(LPCWSTR,LPCWSTR,LPWSTR); +BOOL PathCompactPathA(HDC,LPSTR,UINT); +BOOL PathCompactPathW(HDC,LPWSTR,UINT); +BOOL PathCompactPathExA(LPSTR,LPCSTR,UINT,DWORD); +BOOL PathCompactPathExW(LPWSTR,LPCWSTR,UINT,DWORD); +HRESULT PathCreateFromUrlA(LPCSTR,LPSTR,LPDWORD,DWORD); +HRESULT PathCreateFromUrlW(LPCWSTR,LPWSTR,LPDWORD,DWORD); +BOOL PathFileExistsA(LPCSTR); +BOOL PathFileExistsW(LPCWSTR); +LPSTR PathFindExtensionA(LPCSTR); +LPWSTR PathFindExtensionW(LPCWSTR); +LPSTR PathFindFileNameA(LPCSTR); +LPWSTR PathFindFileNameW(LPCWSTR); +LPSTR PathFindNextComponentA(LPCSTR); +LPWSTR PathFindNextComponentW(LPCWSTR); +BOOL PathFindOnPathA(LPSTR,LPCSTR*); +BOOL PathFindOnPathW(LPWSTR,LPCWSTR*); +LPCSTR PathFindSuffixArrayA(LPCSTR,LPCSTR*,int); +LPCWSTR PathFindSuffixArrayW(LPCWSTR,LPCWSTR*,int); +LPSTR PathGetArgsA(LPCSTR); +LPWSTR PathGetArgsW(LPCWSTR); +UINT PathGetCharTypeA(UCHAR); +UINT PathGetCharTypeW(WCHAR); +int PathGetDriveNumberA(LPCSTR); +int PathGetDriveNumberW(LPCWSTR); +BOOL PathIsContentTypeA(LPCSTR,LPCSTR); +BOOL PathIsContentTypeW(LPCWSTR,LPCWSTR); +BOOL PathIsDirectoryA(LPCSTR); +BOOL PathIsDirectoryEmptyA(LPCSTR); +BOOL PathIsDirectoryEmptyW(LPCWSTR); +BOOL PathIsDirectoryW(LPCWSTR); +BOOL PathIsFileSpecA(LPCSTR); +BOOL PathIsFileSpecW(LPCWSTR); +BOOL PathIsLFNFileSpecA(LPCSTR); +BOOL PathIsLFNFileSpecW(LPCWSTR); +BOOL PathIsNetworkPathA(LPCSTR); +BOOL PathIsNetworkPathW(LPCWSTR); +BOOL PathIsPrefixA(LPCSTR,LPCSTR); +BOOL PathIsPrefixW(LPCWSTR,LPCWSTR); +BOOL PathIsRelativeA(LPCSTR); +BOOL PathIsRelativeW(LPCWSTR); +BOOL PathIsRootA(LPCSTR); +BOOL PathIsRootW(LPCWSTR); +BOOL PathIsSameRootA(LPCSTR,LPCSTR); +BOOL PathIsSameRootW(LPCWSTR,LPCWSTR); +BOOL PathIsSystemFolderA(LPCSTR,DWORD); +BOOL PathIsSystemFolderW(LPCWSTR,DWORD); +BOOL PathIsUNCA(LPCSTR); +BOOL PathIsUNCServerA(LPCSTR); +BOOL PathIsUNCServerShareA(LPCSTR); +BOOL PathIsUNCServerShareW(LPCWSTR); +BOOL PathIsUNCServerW(LPCWSTR); +BOOL PathIsUNCW(LPCWSTR); +BOOL PathIsURLA(LPCSTR); +BOOL PathIsURLW(LPCWSTR); +BOOL PathMakePrettyA(LPSTR); +BOOL PathMakePrettyW(LPWSTR); +BOOL PathMakeSystemFolderA(LPSTR); +BOOL PathMakeSystemFolderW(LPWSTR); +BOOL PathMatchSpecA(LPCSTR,LPCSTR); +BOOL PathMatchSpecW(LPCWSTR,LPCWSTR); +int PathParseIconLocationA(LPSTR); +int PathParseIconLocationW(LPWSTR); +void PathQuoteSpacesA(LPSTR); +void PathQuoteSpacesW(LPWSTR); +BOOL PathRelativePathToA(LPSTR,LPCSTR,DWORD,LPCSTR,DWORD); +BOOL PathRelativePathToW(LPWSTR,LPCWSTR,DWORD,LPCWSTR,DWORD); +void PathRemoveArgsA(LPSTR); +void PathRemoveArgsW(LPWSTR); +LPSTR PathRemoveBackslashA(LPSTR); +LPWSTR PathRemoveBackslashW(LPWSTR); +void PathRemoveBlanksA(LPSTR); +void PathRemoveBlanksW(LPWSTR); +void PathRemoveExtensionA(LPSTR); +void PathRemoveExtensionW(LPWSTR); +BOOL PathRemoveFileSpecA(LPSTR); +BOOL PathRemoveFileSpecW(LPWSTR); +BOOL PathRenameExtensionA(LPSTR,LPCSTR); +BOOL PathRenameExtensionW(LPWSTR,LPCWSTR); +BOOL PathSearchAndQualifyA(LPCSTR,LPSTR,UINT); +BOOL PathSearchAndQualifyW(LPCWSTR,LPWSTR,UINT); +void PathSetDlgItemPathA(HWND,int,LPCSTR); +void PathSetDlgItemPathW(HWND,int,LPCWSTR); +LPSTR PathSkipRootA(LPCSTR); +LPWSTR PathSkipRootW(LPCWSTR); +void PathStripPathA(LPSTR); +void PathStripPathW(LPWSTR); +BOOL PathStripToRootA(LPSTR); +BOOL PathStripToRootW(LPWSTR); +void PathUndecorateA(LPSTR); +void PathUndecorateW(LPWSTR); +BOOL PathUnExpandEnvStringsA(LPCSTR,LPSTR,UINT); +BOOL PathUnExpandEnvStringsW(LPCWSTR,LPWSTR,UINT); +BOOL PathUnmakeSystemFolderA(LPSTR); +BOOL PathUnmakeSystemFolderW(LPWSTR); +void PathUnquoteSpacesA(LPSTR); +void PathUnquoteSpacesW(LPWSTR); +HRESULT SHAutoComplete(HWND,DWORD); +BOOL SHCreateThread(LPTHREAD_START_ROUTINE,void*,DWORD,LPTHREAD_START_ROUTINE); +DWORD SHCopyKeyA(HKEY,LPCSTR,HKEY,DWORD); +DWORD SHCopyKeyW(HKEY,LPCWSTR,HKEY,DWORD); +DWORD SHDeleteEmptyKeyA(HKEY,LPCSTR); +DWORD SHDeleteEmptyKeyW(HKEY,LPCWSTR); +DWORD SHDeleteKeyA(HKEY,LPCSTR); +DWORD SHDeleteKeyW(HKEY,LPCWSTR); +DWORD SHEnumKeyExA(HKEY,DWORD,LPSTR,LPDWORD); +DWORD SHEnumKeyExW(HKEY,DWORD,LPWSTR,LPDWORD); +DWORD SHQueryInfoKeyA(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD); +DWORD SHQueryInfoKeyW(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD); +DWORD SHQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD); +DWORD SHQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD); +HRESULT SHGetThreadRef(IUnknown**); +HRESULT SHSetThreadRef(IUnknown*); +BOOL SHSkipJunction(IBindCtx*, CPtr!(CLSID)); +DWORD SHEnumValueA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD); +DWORD SHEnumValueW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD); +DWORD SHGetValueA(HKEY,LPCSTR,LPCSTR,LPDWORD,LPVOID,LPDWORD); +DWORD SHGetValueW(HKEY,LPCWSTR,LPCWSTR,LPDWORD,LPVOID,LPDWORD); +DWORD SHSetValueA(HKEY,LPCSTR,LPCSTR,DWORD,LPCVOID,DWORD); +DWORD SHSetValueW(HKEY,LPCWSTR,LPCWSTR,DWORD,LPCVOID,DWORD); +DWORD SHDeleteValueA(HKEY,LPCSTR,LPCSTR); +DWORD SHDeleteValueW(HKEY,LPCWSTR,LPCWSTR); +HRESULT AssocCreate(CLSID, CPtr!(IID) ,CPtr!(LPVOID)); +HRESULT AssocQueryKeyA(ASSOCF,ASSOCKEY,LPCSTR,LPCSTR,HKEY*); +HRESULT AssocQueryKeyW(ASSOCF,ASSOCKEY,LPCWSTR,LPCWSTR,HKEY*); +HRESULT AssocQueryStringA(ASSOCF,ASSOCSTR,LPCSTR,LPCSTR,LPSTR,DWORD*); +HRESULT AssocQueryStringByKeyA(ASSOCF,ASSOCSTR,HKEY,LPCSTR,LPSTR,DWORD*); +HRESULT AssocQueryStringByKeyW(ASSOCF,ASSOCSTR,HKEY,LPCWSTR,LPWSTR,DWORD*); +HRESULT AssocQueryStringW(ASSOCF,ASSOCSTR,LPCWSTR,LPCWSTR,LPWSTR,DWORD*); +HRESULT UrlApplySchemeA(LPCSTR,LPSTR,LPDWORD,DWORD); +HRESULT UrlApplySchemeW(LPCWSTR,LPWSTR,LPDWORD,DWORD); +HRESULT UrlCanonicalizeA(LPCSTR,LPSTR,LPDWORD,DWORD); +HRESULT UrlCanonicalizeW(LPCWSTR,LPWSTR,LPDWORD,DWORD); +HRESULT UrlCombineA(LPCSTR,LPCSTR,LPSTR,LPDWORD,DWORD); +HRESULT UrlCombineW(LPCWSTR,LPCWSTR,LPWSTR,LPDWORD,DWORD); +int UrlCompareA(LPCSTR,LPCSTR,BOOL); +int UrlCompareW(LPCWSTR,LPCWSTR,BOOL); +HRESULT UrlCreateFromPathA(LPCSTR,LPSTR,LPDWORD,DWORD); +HRESULT UrlCreateFromPathW(LPCWSTR,LPWSTR,LPDWORD,DWORD); +HRESULT UrlEscapeA(LPCSTR,LPSTR,LPDWORD,DWORD); +HRESULT UrlEscapeW(LPCWSTR,LPWSTR,LPDWORD,DWORD); +LPCSTR UrlGetLocationA(LPCSTR); +LPCWSTR UrlGetLocationW(LPCWSTR); +HRESULT UrlGetPartA(LPCSTR,LPSTR,LPDWORD,DWORD,DWORD); +HRESULT UrlGetPartW(LPCWSTR,LPWSTR,LPDWORD,DWORD,DWORD); +HRESULT UrlHashA(LPCSTR,LPBYTE,DWORD); +HRESULT UrlHashW(LPCWSTR,LPBYTE,DWORD); +BOOL UrlIsA(LPCSTR,URLIS); +BOOL UrlIsW(LPCWSTR,URLIS); +BOOL UrlIsNoHistoryA(LPCSTR); +BOOL UrlIsNoHistoryW(LPCWSTR); +BOOL UrlIsOpaqueA(LPCSTR); +BOOL UrlIsOpaqueW(LPCWSTR); +HRESULT UrlUnescapeA(LPSTR,LPSTR,LPDWORD,DWORD); +HRESULT UrlUnescapeW(LPWSTR,LPWSTR,LPDWORD,DWORD); +DWORD SHRegCloseUSKey(HUSKEY); +LONG SHRegCreateUSKeyA(LPCSTR,REGSAM,HUSKEY,PHUSKEY,DWORD); +LONG SHRegCreateUSKeyW(LPCWSTR,REGSAM,HUSKEY,PHUSKEY,DWORD); +LONG SHRegDeleteEmptyUSKeyA(HUSKEY,LPCSTR,SHREGDEL_FLAGS); +LONG SHRegDeleteEmptyUSKeyW(HUSKEY,LPCWSTR,SHREGDEL_FLAGS); +LONG SHRegDeleteUSValueA(HUSKEY,LPCSTR,SHREGDEL_FLAGS); +LONG SHRegDeleteUSValueW(HUSKEY,LPCWSTR,SHREGDEL_FLAGS); +HKEY SHRegDuplicateHKey(HKEY); +DWORD SHRegEnumUSKeyA(HUSKEY,DWORD,LPSTR,LPDWORD,SHREGENUM_FLAGS); +DWORD SHRegEnumUSKeyW(HUSKEY,DWORD,LPWSTR,LPDWORD,SHREGENUM_FLAGS); +DWORD SHRegEnumUSValueA(HUSKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD,SHREGENUM_FLAGS); +DWORD SHRegEnumUSValueW(HUSKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD,SHREGENUM_FLAGS); +BOOL SHRegGetBoolUSValueA(LPCSTR,LPCSTR,BOOL,BOOL); +BOOL SHRegGetBoolUSValueW(LPCWSTR,LPCWSTR,BOOL,BOOL); +DWORD SHRegGetPathA(HKEY,LPCSTR,LPCSTR,LPSTR,DWORD); +DWORD SHRegGetPathW(HKEY,LPCWSTR,LPCWSTR,LPWSTR,DWORD); +LONG SHRegGetUSValueA(LPCSTR,LPCSTR,LPDWORD,LPVOID,LPDWORD,BOOL,LPVOID,DWORD); +LONG SHRegGetUSValueW(LPCWSTR,LPCWSTR,LPDWORD,LPVOID,LPDWORD,BOOL,LPVOID,DWORD); +LONG SHRegOpenUSKeyA(LPCSTR,REGSAM,HUSKEY,PHUSKEY,BOOL); +LONG SHRegOpenUSKeyW(LPCWSTR,REGSAM,HUSKEY,PHUSKEY,BOOL); +DWORD SHRegQueryInfoUSKeyA(HUSKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD,SHREGENUM_FLAGS); +DWORD SHRegQueryInfoUSKeyW(HUSKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD,SHREGENUM_FLAGS); +LONG SHRegQueryUSValueA(HUSKEY,LPCSTR,LPDWORD,LPVOID,LPDWORD,BOOL,LPVOID,DWORD); +LONG SHRegQueryUSValueW(HUSKEY,LPCWSTR,LPDWORD,LPVOID,LPDWORD,BOOL,LPVOID,DWORD); +DWORD SHRegSetPathA(HKEY,LPCSTR,LPCSTR,LPCSTR,DWORD); +DWORD SHRegSetPathW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR,DWORD); +LONG SHRegSetUSValueA(LPCSTR,LPCSTR,DWORD,LPVOID,DWORD,DWORD); +LONG SHRegSetUSValueW(LPCWSTR,LPCWSTR,DWORD,LPVOID,DWORD,DWORD); +LONG SHRegWriteUSValueA(HUSKEY,LPCSTR,DWORD,LPVOID,DWORD,DWORD); +LONG SHRegWriteUSValueW(HUSKEY,LPCWSTR,DWORD,LPVOID,DWORD,DWORD); +HRESULT HashData(LPBYTE,DWORD,LPBYTE,DWORD); +HPALETTE SHCreateShellPalette(HDC); +COLORREF ColorHLSToRGB(WORD,WORD,WORD); +COLORREF ColorAdjustLuma(COLORREF,int,BOOL); +void ColorRGBToHLS(COLORREF,WORD*,WORD*,WORD*); +/** Should not be necessary for D? +extern (C): +int wnsprintfA(LPSTR,int,LPCSTR,...); +int wnsprintfW(LPWSTR,int,LPCWSTR,...); +extern (Windows): +int wvnsprintfA(LPSTR,int,LPCSTR,va_list); +int wvnsprintfW(LPWSTR,int,LPCWSTR,va_list); +*/ + +HINSTANCE MLLoadLibraryA(LPCSTR,HANDLE,DWORD,LPCSTR,BOOL); +HINSTANCE MLLoadLibraryW(LPCWSTR,HANDLE,DWORD,LPCWSTR,BOOL); + +HRESULT DllInstall(BOOL,LPCWSTR); + +HRESULT StrRetToBufA(LPSTRRET,LPCITEMIDLIST,LPSTR,UINT); +HRESULT StrRetToBufW(LPSTRRET,LPCITEMIDLIST,LPWSTR,UINT); +HRESULT StrRetToStrA(LPSTRRET,LPCITEMIDLIST,LPSTR*); +HRESULT StrRetToStrW(LPSTRRET,LPCITEMIDLIST,LPWSTR*); +HRESULT SHCreateStreamOnFileA(LPCSTR,DWORD,IStream**); +HRESULT SHCreateStreamOnFileW(LPCWSTR,DWORD,IStream**); +IStream* SHOpenRegStream2A(HKEY,LPCSTR,LPCSTR,DWORD); +IStream* SHOpenRegStream2W(HKEY,LPCWSTR,LPCWSTR,DWORD); +IStream* SHOpenRegStreamA(HKEY,LPCSTR,LPCSTR,DWORD); +IStream* SHOpenRegStreamW(HKEY,LPCWSTR,LPCWSTR,DWORD); + +version(Unicode) { +alias ChrCmpIW ChrCmpI; +alias IntlStrEqNW IntlStrEqN; +alias IntlStrEqNIW IntlStrEqNI; +alias IntlStrEqWorkerW IntlStrEqWorker; +alias SHStrDupW SHStrDup; +alias StrCatW StrCat; +alias StrCatBuffW StrCatBuff; +alias StrChrW StrChr; +alias StrChrIW StrChrI; +alias StrCmpW StrCmp; +alias StrCmpIW StrCmpI; +alias StrCmpNIW StrCmpNI; +alias StrCmpNW StrCmpN; +alias StrCpyNW StrCpyN; +alias StrCpyW StrCpy; +alias StrCSpnIW StrCSpnI; +alias StrCSpnW StrCSpn; +alias StrDupW StrDup; +alias StrFormatByteSizeW StrFormatByteSize; +alias StrFormatKBSizeW StrFormatKBSize; +alias StrFromTimeIntervalW StrFromTimeInterval; +alias StrIsIntlEqualW StrIsIntlEqual; +alias StrNCatW StrNCat; +alias StrPBrkW StrPBrk; +alias StrRChrW StrRChr; +alias StrRChrIW StrRChrI; +alias StrRetToBufW StrRetToBuf; +alias StrRetToStrW StrRetToStr; +alias StrRStrIW StrRStrI; +alias StrSpnW StrSpn; +alias StrStrIW StrStrI; +alias StrStrW StrStr; +alias StrToIntW StrToInt; +alias StrToIntExW StrToIntEx; +alias StrTrimW StrTrim; +alias PathAddBackslashW PathAddBackslash; +alias PathAddExtensionW PathAddExtension; +alias PathAppendW PathAppend; +alias PathBuildRootW PathBuildRoot; +alias PathCanonicalizeW PathCanonicalize; +alias PathCombineW PathCombine; +alias PathCommonPrefixW PathCommonPrefix; +alias PathCompactPathW PathCompactPath; +alias PathCompactPathExW PathCompactPathEx; +alias PathCreateFromUrlW PathCreateFromUrl; +alias PathFileExistsW PathFileExists; +alias PathFindExtensionW PathFindExtension; +alias PathFindFileNameW PathFindFileName; +alias PathFindNextComponentW PathFindNextComponent; +alias PathFindOnPathW PathFindOnPath; +alias PathFindSuffixArrayW PathFindSuffixArray; +alias PathGetArgsW PathGetArgs; +alias PathGetCharTypeW PathGetCharType; +alias PathGetDriveNumberW PathGetDriveNumber; +alias PathIsContentTypeW PathIsContentType; +alias PathIsDirectoryEmptyW PathIsDirectoryEmpty; +alias PathIsDirectoryW PathIsDirectory; +alias PathIsFileSpecW PathIsFileSpec; +alias PathIsLFNFileSpecW PathIsLFNFileSpec; +alias PathIsNetworkPathW PathIsNetworkPath; +alias PathIsPrefixW PathIsPrefix; +alias PathIsRelativeW PathIsRelative; +alias PathIsRootW PathIsRoot; +alias PathIsSameRootW PathIsSameRoot; +alias PathIsSystemFolderW PathIsSystemFolder; +alias PathIsUNCServerShareW PathIsUNCServerShare; +alias PathIsUNCServerW PathIsUNCServer; +alias PathIsUNCW PathIsUNC; +alias PathIsURLW PathIsURL; +alias PathMakePrettyW PathMakePretty; +alias PathMakeSystemFolderW PathMakeSystemFolder; +alias PathMatchSpecW PathMatchSpec; +alias PathParseIconLocationW PathParseIconLocation; +alias PathQuoteSpacesW PathQuoteSpaces; +alias PathRelativePathToW PathRelativePathTo; +alias PathRemoveArgsW PathRemoveArgs; +alias PathRemoveBackslashW PathRemoveBackslash; +alias PathRemoveBlanksW PathRemoveBlanks; +alias PathRemoveExtensionW PathRemoveExtension; +alias PathRemoveFileSpecW PathRemoveFileSpec; +alias PathRenameExtensionW PathRenameExtension; +alias PathSearchAndQualifyW PathSearchAndQualify; +alias PathSetDlgItemPathW PathSetDlgItemPath; +alias PathSkipRootW PathSkipRoot; +alias PathStripPathW PathStripPath; +alias PathStripToRootW PathStripToRoot; +alias PathUndecorateW PathUndecorate; +alias PathUnExpandEnvStringsW PathUnExpandEnvStrings; +alias PathUnmakeSystemFolderW PathUnmakeSystemFolder; +alias PathUnquoteSpacesW PathUnquoteSpaces; +alias SHCreateStreamOnFileW SHCreateStreamOnFile; +alias SHOpenRegStreamW SHOpenRegStream; +alias SHOpenRegStream2W SHOpenRegStream2; +alias SHCopyKeyW SHCopyKey; +alias SHDeleteEmptyKeyW SHDeleteEmptyKey; +alias SHDeleteKeyW SHDeleteKey; +alias SHEnumKeyExW SHEnumKeyEx; +alias SHQueryInfoKeyW SHQueryInfoKey; +alias SHQueryValueExW SHQueryValueEx; +alias SHEnumValueW SHEnumValue; +alias SHGetValueW SHGetValue; +alias SHSetValueW SHSetValue; +alias SHDeleteValueW SHDeleteValue; +alias AssocQueryKeyW AssocQueryKey; +alias AssocQueryStringByKeyW AssocQueryStringByKey; +alias AssocQueryStringW AssocQueryString; +alias UrlApplySchemeW UrlApplyScheme; +alias UrlCanonicalizeW UrlCanonicalize; +alias UrlCombineW UrlCombine; +alias UrlCompareW UrlCompare; +alias UrlCreateFromPathW UrlCreateFromPath; +alias UrlEscapeW UrlEscape; +alias UrlGetLocationW UrlGetLocation; +alias UrlGetPartW UrlGetPart; +alias UrlHashW UrlHash; +alias UrlIsW UrlIs; +alias UrlIsFileUrlW UrlIsFileUrl; +alias UrlIsNoHistoryW UrlIsNoHistory; +alias UrlIsOpaqueW UrlIsOpaque; +alias UrlUnescapeW UrlUnescape; +alias UrlUnescapeInPlaceW UrlUnescapeInPlace; +alias SHRegCreateUSKeyW SHRegCreateUSKey; +alias SHRegDeleteEmptyUSKeyW SHRegDeleteEmptyUSKey; +alias SHRegDeleteUSValueW SHRegDeleteUSValue; +alias SHRegEnumUSKeyW SHRegEnumUSKey; +alias SHRegEnumUSValueW SHRegEnumUSValue; +alias SHRegGetBoolUSValueW SHRegGetBoolUSValue; +alias SHRegGetPathW SHRegGetPath; +alias SHRegGetUSValueW SHRegGetUSValue; +alias SHRegOpenUSKeyW SHRegOpenUSKey; +alias SHRegQueryInfoUSKeyW SHRegQueryInfoUSKey; +alias SHRegQueryUSValueW SHRegQueryUSValue; +alias SHRegSetPathW SHRegSetPath; +alias SHRegSetUSValueW SHRegSetUSValue; +alias SHRegWriteUSValueW SHRegWriteUSValue; +//alias wnsprintfW wnsprintf; +//alias wvnsprintfW wvnsprintf; +} else { +alias ChrCmpIA ChrCmpI; +alias IntlStrEqNA IntlStrEqN; +alias IntlStrEqNIA IntlStrEqNI; +alias IntlStrEqWorkerA IntlStrEqWorker; +alias SHStrDupA SHStrDup; +alias StrCatBuffA StrCatBuff; +alias StrChrA StrChr; +alias StrChrIA StrChrI; +alias StrCmpNIA StrCmpNI; +alias StrCmpNA StrCmpN; +alias StrCSpnIA StrCSpnI; +alias StrCSpnA StrCSpn; +alias StrDupA StrDup; +alias StrFormatByteSizeA StrFormatByteSize; +alias StrFormatKBSizeA StrFormatKBSize; +alias StrFromTimeIntervalA StrFromTimeInterval; +alias StrIsIntlEqualA StrIsIntlEqual; +alias StrNCatA StrNCat; +alias StrPBrkA StrPBrk; +alias StrRChrA StrRChr; +alias StrRChrIA StrRChrI; +alias StrRetToBufA StrRetToBuf; +alias StrRetToStrA StrRetToStr; +alias StrRStrIA StrRStrI; +alias StrSpnA StrSpn; +alias StrStrIA StrStrI; +alias StrStrA StrStr; +alias StrToIntA StrToInt; +alias StrToIntExA StrToIntEx; +alias StrTrimA StrTrim; +alias PathAddBackslashA PathAddBackslash; +alias PathAddExtensionA PathAddExtension; +alias PathAppendA PathAppend; +alias PathBuildRootA PathBuildRoot; +alias PathCanonicalizeA PathCanonicalize; +alias PathCombineA PathCombine; +alias PathCommonPrefixA PathCommonPrefix; +alias PathCompactPathA PathCompactPath; +alias PathCompactPathExA PathCompactPathEx; +alias PathCreateFromUrlA PathCreateFromUrl; +alias PathFileExistsA PathFileExists; +alias PathFindExtensionA PathFindExtension; +alias PathFindFileNameA PathFindFileName; +alias PathFindNextComponentA PathFindNextComponent; +alias PathFindOnPathA PathFindOnPath; +alias PathFindSuffixArrayA PathFindSuffixArray; +alias PathGetArgsA PathGetArgs; +alias PathGetCharTypeA PathGetCharType; +alias PathGetDriveNumberA PathGetDriveNumber; +alias PathIsContentTypeA PathIsContentType; +alias PathIsDirectoryEmptyA PathIsDirectoryEmpty; +alias PathIsDirectoryA PathIsDirectory; +alias PathIsFileSpecA PathIsFileSpec; +alias PathIsLFNFileSpecA PathIsLFNFileSpec; +alias PathIsNetworkPathA PathIsNetworkPath; +alias PathIsPrefixA PathIsPrefix; +alias PathIsRelativeA PathIsRelative; +alias PathIsRootA PathIsRoot; +alias PathIsSameRootA PathIsSameRoot; +alias PathIsSystemFolderA PathIsSystemFolder; +alias PathIsUNCServerShareA PathIsUNCServerShare; +alias PathIsUNCServerA PathIsUNCServer; +alias PathIsUNCA PathIsUNC; +alias PathIsURLA PathIsURL; +alias PathMakePrettyA PathMakePretty; +alias PathMakeSystemFolderA PathMakeSystemFolder; +alias PathMatchSpecA PathMatchSpec; +alias PathParseIconLocationA PathParseIconLocation; +alias PathQuoteSpacesA PathQuoteSpaces; +alias PathRelativePathToA PathRelativePathTo; +alias PathRemoveArgsA PathRemoveArgs; +alias PathRemoveBackslashA PathRemoveBackslash; +alias PathRemoveBlanksA PathRemoveBlanks; +alias PathRemoveExtensionA PathRemoveExtension; +alias PathRemoveFileSpecA PathRemoveFileSpec; +alias PathRenameExtensionA PathRenameExtension; +alias PathSearchAndQualifyA PathSearchAndQualify; +alias PathSetDlgItemPathA PathSetDlgItemPath; +alias PathSkipRootA PathSkipRoot; +alias PathStripPathA PathStripPath; +alias PathStripToRootA PathStripToRoot; +alias PathUndecorateA PathUndecorate; +alias PathUnExpandEnvStringsA PathUnExpandEnvStrings; +alias PathUnmakeSystemFolderA PathUnmakeSystemFolder; +alias PathUnquoteSpacesA PathUnquoteSpaces; +alias SHCreateStreamOnFileA SHCreateStreamOnFile; +alias SHOpenRegStreamA SHOpenRegStream; +alias SHOpenRegStream2A SHOpenRegStream2; +alias SHCopyKeyA SHCopyKey; +alias SHDeleteEmptyKeyA SHDeleteEmptyKey; +alias SHDeleteKeyA SHDeleteKey; +alias SHEnumKeyExA SHEnumKeyEx; +alias SHQueryInfoKeyA SHQueryInfoKey; +alias SHQueryValueExA SHQueryValueEx; +alias SHEnumValueA SHEnumValue; +alias SHGetValueA SHGetValue; +alias SHSetValueA SHSetValue; +alias SHDeleteValueA SHDeleteValue; +alias AssocQueryKeyA AssocQueryKey; +alias AssocQueryStringByKeyA AssocQueryStringByKey; +alias AssocQueryStringA AssocQueryString; +alias UrlApplySchemeA UrlApplyScheme; +alias UrlCanonicalizeA UrlCanonicalize; +alias UrlCombineA UrlCombine; +alias UrlCompareA UrlCompare; +alias UrlCreateFromPathA UrlCreateFromPath; +alias UrlEscapeA UrlEscape; +alias UrlGetLocationA UrlGetLocation; +alias UrlGetPartA UrlGetPart; +alias UrlHashA UrlHash; +alias UrlIsA UrlIs; +alias UrlIsNoHistoryA UrlIsNoHistory; +alias UrlIsOpaqueA UrlIsOpaque; +alias UrlUnescapeA UrlUnescape; +alias UrlUnescapeInPlaceA UrlUnescapeInPlace; +alias SHRegCreateUSKeyA SHRegCreateUSKey; +alias SHRegDeleteEmptyUSKeyA SHRegDeleteEmptyUSKey; +alias SHRegDeleteUSValueA SHRegDeleteUSValue; +alias SHRegEnumUSKeyA SHRegEnumUSKey; +alias SHRegEnumUSValueA SHRegEnumUSValue; +alias SHRegGetBoolUSValueA SHRegGetBoolUSValue; +alias SHRegGetPathA SHRegGetPath; +alias SHRegGetUSValueA SHRegGetUSValue; +alias SHRegOpenUSKeyA SHRegOpenUSKey; +alias SHRegQueryInfoUSKeyA SHRegQueryInfoUSKey; +alias SHRegQueryUSValueA SHRegQueryUSValue; +alias SHRegSetPathA SHRegSetPath; +alias SHRegSetUSValueA SHRegSetUSValue; +alias SHRegWriteUSValueA SHRegWriteUSValue; +//alias wnsprintfA wnsprintf; +//alias wvnsprintfA wvnsprintf; +} + +alias StrToInt StrToLong; ADDED src/win32/snmp.d Index: src/win32/snmp.d ================================================================== --- src/win32/snmp.d +++ src/win32/snmp.d @@ -0,0 +1,269 @@ +/***********************************************************************\ +* snmp.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.snmp; + +private import win32.windows; + +// These are not documented on MSDN +enum { + DEFAULT_SNMP_PORT_UDP = 161, + DEFAULT_SNMP_PORT_IPX = 36879, + DEFAULT_SNMPTRAP_PORT_UDP = 162, + DEFAULT_SNMPTRAP_PORT_IPX = 36880 +} + +enum : BYTE { + ASN_UNIVERSAL = 0x00, + ASN_PRIMITIVE = 0x00, + ASN_CONSTRUCTOR = 0x20, + ASN_APPLICATION = 0x40, + ASN_CONTEXT = 0x80, + ASN_PRIVATE = 0xC0, + + SNMP_PDU_GET = ASN_CONTEXT | ASN_CONSTRUCTOR, + SNMP_PDU_GETNEXT, + SNMP_PDU_RESPONSE, + SNMP_PDU_SET, + SNMP_PDU_GETBULK, // = ASN_CONTEXT | ASN_CONSTRUCTOR | 4 + SNMP_PDU_V1TRAP = ASN_CONTEXT | ASN_CONSTRUCTOR | 4, + SNMP_PDU_INFORM = ASN_CONTEXT | ASN_CONSTRUCTOR | 6, + SNMP_PDU_TRAP, + SNMP_PDU_REPORT, + ASN_INTEGER = ASN_UNIVERSAL | ASN_PRIMITIVE | 2, + ASN_BITS, + ASN_OCTETSTRING, + ASN_NULL, + ASN_OBJECTIDENTIFIER, // = ASN_UNIVERSAL | ASN_PRIMITIVE | 6 + ASN_INTEGER32 = ASN_INTEGER, + ASN_SEQUENCE = ASN_UNIVERSAL | ASN_CONSTRUCTOR | 0x10, + ASN_SEQUENCEOF = ASN_SEQUENCE, + ASN_IPADDRESS = ASN_APPLICATION | ASN_PRIMITIVE, + ASN_COUNTER32, + ASN_GAUGE32, + ASN_TIMETICKS, + ASN_OPAQUE, // = ASN_APPLICATION | ASN_PRIMITIVE | 4 + ASN_COUNTER64 = ASN_APPLICATION | ASN_PRIMITIVE | 6, + ASN_UNSIGNED32, // = ASN_APPLICATION | ASN_PRIMITIVE | 7 + SNMP_EXCEPTION_NOSUCHOBJECT = ASN_CONTEXT | ASN_PRIMITIVE, + SNMP_EXCEPTION_NOSUCHINSTANCE, + SNMP_EXCEPTION_ENDOFMIBVIEW, + SNMP_EXTENSION_GET = SNMP_PDU_GET, + SNMP_EXTENSION_GET_NEXT = SNMP_PDU_GETNEXT, + SNMP_EXTENSION_GET_BULK = SNMP_PDU_GETBULK, + SNMP_EXTENSION_SET_TEST = ASN_PRIVATE | ASN_CONSTRUCTOR, + SNMP_EXTENSION_SET_COMMIT = SNMP_PDU_SET, + SNMP_EXTENSION_SET_UNDO = ASN_PRIVATE | ASN_CONSTRUCTOR | 1, + SNMP_EXTENSION_SET_CLEANUP +} + + +enum : AsnInteger { + SNMP_ERRORSTATUS_NOERROR, + SNMP_ERRORSTATUS_TOOBIG, + SNMP_ERRORSTATUS_NOSUCHNAME, + SNMP_ERRORSTATUS_BADVALUE, + SNMP_ERRORSTATUS_READONLY, + SNMP_ERRORSTATUS_GENERR, + SNMP_ERRORSTATUS_NOACCESS, + SNMP_ERRORSTATUS_WRONGTYPE, + SNMP_ERRORSTATUS_WRONGLENGTH, + SNMP_ERRORSTATUS_WRONGENCODING, + SNMP_ERRORSTATUS_WRONGVALUE, + SNMP_ERRORSTATUS_NOCREATION, + SNMP_ERRORSTATUS_INCONSISTENTVALUE, + SNMP_ERRORSTATUS_RESOURCEUNAVAILABLE, + SNMP_ERRORSTATUS_COMMITFAILED, + SNMP_ERRORSTATUS_UNDOFAILED, + SNMP_ERRORSTATUS_AUTHORIZATIONERROR, + SNMP_ERRORSTATUS_NOTWRITABLE, + SNMP_ERRORSTATUS_INCONSISTENTNAME +} + +enum : AsnInteger { + SNMP_GENERICTRAP_COLDSTART, + SNMP_GENERICTRAP_WARMSTART, + SNMP_GENERICTRAP_LINKDOWN, + SNMP_GENERICTRAP_LINKUP, + SNMP_GENERICTRAP_AUTHFAILURE, + SNMP_GENERICTRAP_EGPNEIGHLOSS, + SNMP_GENERICTRAP_ENTERSPECIFIC +} + +// These are not documented on MSDN +enum { + SNMP_ACCESS_NONE, + SNMP_ACCESS_NOTIFY, + SNMP_ACCESS_READ_ONLY, + SNMP_ACCESS_READ_WRITE, + SNMP_ACCESS_READ_CREATE +} + +enum : BOOL { + SNMPAPI_ERROR = false, + SNMPAPI_NOERROR = true +} + +enum : INT { + SNMP_LOG_SILENT, + SNMP_LOG_FATAL, + SNMP_LOG_ERROR, + SNMP_LOG_WARNING, + SNMP_LOG_TRACE, + SNMP_LOG_VERBOSE +} + +const INT + SNMP_OUTPUT_TO_CONSOLE = 1, + SNMP_OUTPUT_TO_LOGFILE = 2, + SNMP_OUTPUT_TO_EVENTLOG = 4, + SNMP_OUTPUT_TO_DEBUGGER = 8; + +const size_t SNMP_MAX_OID_LEN = 128; + +enum : DWORD { + SNMP_MEM_ALLOC_ERROR = 1, + SNMP_BERAPI_INVALID_LENGTH = 10, + SNMP_BERAPI_INVALID_TAG, + SNMP_BERAPI_OVERFLOW, + SNMP_BERAPI_SHORT_BUFFER, + SNMP_BERAPI_INVALID_OBJELEM, + SNMP_PDUAPI_UNRECOGNIZED_PDU = 20, + SNMP_PDUAPI_INVALID_ES, + SNMP_PDUAPI_INVALID_GT, + SNMP_AUTHAPI_INVALID_VERSION = 30, + SNMP_AUTHAPI_INVALID_MSG_TYPE, + SNMP_AUTHAPI_TRIV_AUTH_FAILED, +} + +alias INT SNMPAPI; +alias LONG AsnInteger32; +alias ULONG AsnUnsigned32, AsnCounter32, AsnGauge32, AsnTimeticks; +alias ULARGE_INTEGER AsnCounter64; + +align (4): + +struct AsnOctetString { + BYTE* stream; + UINT length; + BOOL dynamic; +} +alias AsnOctetString AsnBits, AsnSequence, AsnImplicitSequence, + AsnIPAddress, AsnNetworkAddress, AsnDisplayString, AsnOpaque; + +struct AsnObjectIdentifier { + UINT idLength; + UINT* ids; +} +alias AsnObjectIdentifier AsnObjectName; + +struct AsnAny { + BYTE asnType; + union _asnValue { + AsnInteger32 number; + AsnUnsigned32 unsigned32; + AsnCounter64 counter64; + AsnOctetString string; + AsnBits bits; + AsnObjectIdentifier object; + AsnSequence sequence; + AsnIPAddress address; + AsnCounter32 counter; + AsnGauge32 gauge; + AsnTimeticks ticks; + AsnOpaque arbitrary; + } + _asnValue asnValue; +} +alias AsnAny AsnObjectSyntax; + +struct SnmpVarBind { + AsnObjectName name; + AsnObjectSyntax value; +} + +struct SnmpVarBindList { + SnmpVarBind* list; + UINT len; +} + +extern (Windows) { + VOID SnmpExtensionClose(); + BOOL SnmpExtensionInit(DWORD, HANDLE*, AsnObjectIdentifier*); + BOOL SnmpExtensionInitEx(AsnObjectIdentifier*); + BOOL SnmpExtensionMonitor(LPVOID); + BOOL SnmpExtensionQuery(BYTE, SnmpVarBindList*, AsnInteger32*, + AsnInteger32*); + BOOL SnmpExtensionQueryEx(DWORD, DWORD, SnmpVarBindList*, AsnOctetString*, + AsnInteger32*, AsnInteger32*); + BOOL SnmpExtensionTrap(AsnObjectIdentifier*, AsnInteger32*, AsnInteger32*, + AsnTimeticks*, SnmpVarBindList*); + DWORD SnmpSvcGetUptime(); + VOID SnmpSvcSetLogLevel(INT); + VOID SnmpSvcSetLogType(INT); + SNMPAPI SnmpUtilAsnAnyCpy(AsnAny*, AsnAny*); + VOID SnmpUtilAsnAnyFree(AsnAny*); + VOID SnmpUtilDbgPrint(INT, LPSTR, ...); + LPSTR SnmpUtilIdsToA(UINT*, UINT); + LPVOID SnmpUtilMemAlloc(UINT); + VOID SnmpUtilMemFree(LPVOID); + LPVOID SnmpUtilMemReAlloc(LPVOID, UINT); + SNMPAPI SnmpUtilOctetsCmp(AsnOctetString*, AsnOctetString*); + SNMPAPI SnmpUtilOctetsCpy(AsnOctetString*, AsnOctetString*); + VOID SnmpUtilOctetsFree(AsnOctetString*); + SNMPAPI SnmpUtilOctetsNCmp(AsnOctetString*, AsnOctetString*, UINT); + SNMPAPI SnmpUtilOidAppend(AsnObjectIdentifier*, AsnObjectIdentifier*); + SNMPAPI SnmpUtilOidCmp(AsnObjectIdentifier*, AsnObjectIdentifier*); + SNMPAPI SnmpUtilOidCpy(AsnObjectIdentifier*, AsnObjectIdentifier*); + VOID SnmpUtilOidFree(AsnObjectIdentifier*); + SNMPAPI SnmpUtilOidNCmp(AsnObjectIdentifier*, AsnObjectIdentifier*, UINT); + LPSTR SnmpUtilOidToA(AsnObjectIdentifier*); + VOID SnmpUtilPrintAsnAny(AsnAny*); + VOID SnmpUtilPrintOid(AsnObjectIdentifier*); + SNMPAPI SnmpUtilVarBindCpy(SnmpVarBind*, SnmpVarBind*); + SNMPAPI SnmpUtilVarBindListCpy(SnmpVarBindList*, SnmpVarBindList*); + VOID SnmpUtilVarBindFree(SnmpVarBind*); + VOID SnmpUtilVarBindListFree(SnmpVarBindList*); +} + +alias SnmpUtilMemAlloc SNMP_malloc; +alias SnmpUtilMemFree SNMP_free; +alias SnmpUtilMemReAlloc SNMP_realloc; +alias SnmpUtilMemAlloc SNMP_DBG_malloc; +alias SnmpUtilMemFree SNMP_DBG_free; +alias SnmpUtilMemReAlloc SNMP_DBG_realloc; +alias SnmpUtilOidAppend SNMP_oidappend; +alias SnmpUtilOidCmp SNMP_oidcmp; +alias SnmpUtilOidCpy SNMP_oidcpy; +alias SnmpUtilOidFree SNMP_oidfree; +alias SnmpUtilOidNCmp SNMP_oidncmp; +alias SnmpUtilPrintAsnAny SNMP_printany; +alias SnmpUtilVarBindCpy SNMP_CopyVarBind; +alias SnmpUtilVarBindListCpy SNMP_CopyVarBindList; +alias SnmpUtilVarBindFree SNMP_FreeVarBind; +alias SnmpUtilVarBindListFree SNMP_FreeVarBindList; +alias ASN_IPADDRESS ASN_RFC1155_IPADDRESS; +alias ASN_COUNTER32 ASN_RFC1155_COUNTER; +alias ASN_GAUGE32 ASN_RFC1155_GAUGE; +alias ASN_TIMETICKS ASN_RFC1155_TIMETICKS; +alias ASN_OPAQUE ASN_RFC1155_OPAQUE; +alias ASN_OCTETSTRING ASN_RFC1213_DISPSTRING; +alias SNMP_PDU_GET ASN_RFC1157_GETREQUEST; +alias SNMP_PDU_GETNEXT ASN_RFC1157_GETNEXTREQUEST; +alias SNMP_PDU_RESPONSE ASN_RFC1157_GETRESPONSE; +alias SNMP_PDU_SET ASN_RFC1157_SETREQUEST; +alias SNMP_PDU_V1TRAP ASN_RFC1157_TRAP; +alias ASN_CONTEXT ASN_CONTEXTSPECIFIC; +alias ASN_PRIMITIVE ASN_PRIMATIVE; +alias SnmpVarBindList RFC1157VarBindList; +alias SnmpVarBind RFC1157VarBind; +alias AsnInteger32 AsnInteger; +alias AsnCounter32 AsnCounter; +alias AsnGauge32 AsnGauge; ADDED src/win32/sql.d Index: src/win32/sql.d ================================================================== --- src/win32/sql.d +++ src/win32/sql.d @@ -0,0 +1,434 @@ +/***********************************************************************\ +* sql.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.sql; + +public import win32.sqltypes; +private import win32.windef; + +const ODBCVER = 0x0351; + +const SQL_ACCESSIBLE_PROCEDURES=20; +const SQL_ACCESSIBLE_TABLES=19; +const SQL_ALL_TYPES=0; +const SQL_ALTER_TABLE=86; +const SQL_API_SQLALLOCCONNECT=1; +const SQL_API_SQLALLOCENV=2; +const SQL_API_SQLALLOCSTMT=3; +const SQL_API_SQLBINDCOL=4; +const SQL_API_SQLCANCEL=5; +const SQL_API_SQLCOLUMNS=40; +const SQL_API_SQLCONNECT=7; +const SQL_API_SQLDATASOURCES=57; +const SQL_API_SQLDESCRIBECOL=8; +const SQL_API_SQLDISCONNECT=9; +const SQL_API_SQLERROR=10; +const SQL_API_SQLEXECDIRECT=11; +const SQL_API_SQLEXECUTE=12; +const SQL_API_SQLFETCH=13; +const SQL_API_SQLFREECONNECT=14; +const SQL_API_SQLFREEENV=15; +const SQL_API_SQLFREESTMT=16; +const SQL_API_SQLGETCONNECTOPTION=42; +const SQL_API_SQLGETCURSORNAME=17; +const SQL_API_SQLGETDATA=43; +const SQL_API_SQLGETFUNCTIONS=44; +const SQL_API_SQLGETINFO=45; +const SQL_API_SQLGETSTMTOPTION=46; +const SQL_API_SQLGETTYPEINFO=47; +const SQL_API_SQLNUMRESULTCOLS=18; +const SQL_API_SQLPARAMDATA=48; +const SQL_API_SQLPREPARE=19; +const SQL_API_SQLPUTDATA=49; +const SQL_API_SQLROWCOUNT=20; +const SQL_API_SQLSETCONNECTOPTION=50; +const SQL_API_SQLSETCURSORNAME=21; +const SQL_API_SQLSETPARAM=22; +const SQL_API_SQLSETSTMTOPTION=51; +const SQL_API_SQLSPECIALCOLUMNS=52; +const SQL_API_SQLSTATISTICS=53; +const SQL_API_SQLTABLES=54; +const SQL_API_SQLTRANSACT=23; + +const SQL_CB_DELETE=0; +const SQL_CB_CLOSE=1; +const SQL_CB_PRESERVE=2; + +const SQL_CHAR=1; +const SQL_CLOSE=0; +const SQL_COMMIT=0; +const SQL_CURSOR_COMMIT_BEHAVIOR=23; +const SQL_DATA_AT_EXEC=-2; +const SQL_DATA_SOURCE_NAME=2; +const SQL_DATA_SOURCE_READ_ONLY=25; +const SQL_DBMS_NAME=17; +const SQL_DBMS_VER=18; +const SQL_DECIMAL=3; +const SQL_DEFAULT_TXN_ISOLATION=26; +const SQL_DOUBLE=8; +const SQL_DROP=1; +const SQL_ERROR=-1; + +const SQL_FD_FETCH_NEXT=1; +const SQL_FD_FETCH_FIRST=2; +const SQL_FD_FETCH_LAST=4; +const SQL_FD_FETCH_PRIOR=8; +const SQL_FD_FETCH_ABSOLUTE=16; +const SQL_FD_FETCH_RELATIVE=32; + +const SQL_FETCH_ABSOLUTE=5; +const SQL_FETCH_DIRECTION=8; +const SQL_FETCH_FIRST=2; +const SQL_FETCH_LAST=3; +const SQL_FETCH_NEXT=1; +const SQL_FETCH_PRIOR=4; +const SQL_FETCH_RELATIVE=6; +const SQL_FLOAT=6; +const SQL_GD_ANY_COLUMN=1; +const SQL_GD_ANY_ORDER=2; +const SQL_GETDATA_EXTENSIONS=81; +const SQL_IC_LOWER=2; +const SQL_IC_MIXED=4; +const SQL_IC_SENSITIVE=3; +const SQL_IC_UPPER=1; +const SQL_IDENTIFIER_CASE=28; +const SQL_IDENTIFIER_QUOTE_CHAR=29; + +const SQL_INDEX_ALL=1; +const SQL_INDEX_CLUSTERED=1; +const SQL_INDEX_HASHED=2; +const SQL_INDEX_OTHER=3; +const SQL_INDEX_UNIQUE=0; + +const SQL_INTEGER=4; +const SQL_INTEGRITY=73; +const SQL_INVALID_HANDLE=-2; + +const SQL_MAX_CATALOG_NAME_LEN=34; +const SQL_MAX_COLUMN_NAME_LEN=30; +const SQL_MAX_COLUMNS_IN_GROUP_BY=97; +const SQL_MAX_COLUMNS_IN_INDEX=98; +const SQL_MAX_COLUMNS_IN_ORDER_BY=99; +const SQL_MAX_COLUMNS_IN_SELECT=100; +const SQL_MAX_COLUMNS_IN_TABLE=101; +const SQL_MAX_CURSOR_NAME_LEN=31; +const SQL_MAX_INDEX_SIZE=102; +const SQL_MAX_MESSAGE_LENGTH=512; +const SQL_MAX_ROW_SIZE=104; +const SQL_MAX_SCHEMA_NAME_LEN=32; +const SQL_MAX_STATEMENT_LEN=105; +const SQL_MAX_TABLE_NAME_LEN=35; +const SQL_MAX_TABLES_IN_SELECT=106; +const SQL_MAX_USER_NAME_LEN=107; + +const SQL_MAXIMUM_CATALOG_NAME_LENGTH=SQL_MAX_CATALOG_NAME_LEN; +const SQL_MAXIMUM_COLUMN_NAME_LENGTH=SQL_MAX_COLUMN_NAME_LEN; +const SQL_MAXIMUM_COLUMNS_IN_GROUP_BY=SQL_MAX_COLUMNS_IN_GROUP_BY; +const SQL_MAXIMUM_COLUMNS_IN_INDEX=SQL_MAX_COLUMNS_IN_INDEX; +const SQL_MAXIMUM_COLUMNS_IN_ORDER_BY=SQL_MAX_COLUMNS_IN_ORDER_BY; +const SQL_MAXIMUM_COLUMNS_IN_SELECT=SQL_MAX_COLUMNS_IN_SELECT; +const SQL_MAXIMUM_CURSOR_NAME_LENGTH=SQL_MAX_CURSOR_NAME_LEN; +const SQL_MAXIMUM_INDEX_SIZE=SQL_MAX_INDEX_SIZE; +const SQL_MAXIMUM_ROW_SIZE=SQL_MAX_ROW_SIZE; +const SQL_MAXIMUM_SCHEMA_NAME_LENGTH=SQL_MAX_SCHEMA_NAME_LEN; +const SQL_MAXIMUM_STATEMENT_LENGTH=SQL_MAX_STATEMENT_LEN; +const SQL_MAXIMUM_TABLES_IN_SELECT=SQL_MAX_TABLES_IN_SELECT; +const SQL_MAXIMUM_USER_NAME_LENGTH=SQL_MAX_USER_NAME_LEN; + +const SQL_NC_HIGH=0; +const SQL_NC_LOW=1; +const SQL_NEED_DATA=99; +const SQL_NO_NULLS=0; +const SQL_NTS=-3; +const LONG SQL_NTSL=-3; +const SQL_NULL_COLLATION=85; +const SQL_NULL_DATA=-1; +const SQL_NULL_HDBC=0; +const SQL_NULL_HENV=0; +const SQL_NULL_HSTMT=0; +const SQL_NULLABLE=1; +const SQL_NULLABLE_UNKNOWN=2; +const SQL_NUMERIC=2; +const SQL_ORDER_BY_COLUMNS_IN_SELECT=90; +const SQL_PC_PSEUDO=2; +const SQL_PC_UNKNOWN=0; +const SQL_REAL=7; +const SQL_RESET_PARAMS=3; +const SQL_ROLLBACK=1; +const SQL_SCCO_LOCK=2; +const SQL_SCCO_OPT_ROWVER=4; +const SQL_SCCO_OPT_VALUES=8; +const SQL_SCCO_READ_ONLY=1; +const SQL_SCOPE_CURROW=0; +const SQL_SCOPE_SESSION=2; +const SQL_SCOPE_TRANSACTION=1; +const SQL_SCROLL_CONCURRENCY=43; +const SQL_SEARCH_PATTERN_ESCAPE=14; +const SQL_SERVER_NAME=13; +const SQL_SMALLINT=5; +const SQL_SPECIAL_CHARACTERS=94; +const SQL_STILL_EXECUTING=2; +//MACRO #define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) + +const SQL_SUCCESS=0; +const SQL_SUCCESS_WITH_INFO=1; + +const SQL_TC_ALL=2; +const SQL_TC_DDL_COMMIT=3; +const SQL_TC_DDL_IGNORE=4; +const SQL_TC_DML=1; +const SQL_TC_NONE=0; + + +const SQL_TXN_CAPABLE=46; +const SQL_TXN_ISOLATION_OPTION=72; +const SQL_TXN_READ_COMMITTED=2; +const SQL_TXN_READ_UNCOMMITTED=1; +const SQL_TXN_REPEATABLE_READ=4; +const SQL_TXN_SERIALIZABLE=8; + +const SQL_TRANSACTION_CAPABLE=SQL_TXN_CAPABLE; +const SQL_TRANSACTION_ISOLATION_OPTION=SQL_TXN_ISOLATION_OPTION; +const SQL_TRANSACTION_READ_COMMITTED=SQL_TXN_READ_COMMITTED; +const SQL_TRANSACTION_READ_UNCOMMITTED=SQL_TXN_READ_UNCOMMITTED; +const SQL_TRANSACTION_REPEATABLE_READ=SQL_TXN_REPEATABLE_READ; +const SQL_TRANSACTION_SERIALIZABLE=SQL_TXN_SERIALIZABLE; + +const SQL_UNBIND=2; +const SQL_UNKNOWN_TYPE=0; +const SQL_USER_NAME=47; +const SQL_VARCHAR=12; + +static if (ODBCVER >= 0x0200) { + const SQL_AT_ADD_COLUMN = 1; + const SQL_AT_DROP_COLUMN = 2; +} + +static if (ODBCVER >= 0x0201) { + const SQL_OJ_LEFT = 1; + const SQL_OJ_RIGHT = 2; + const SQL_OJ_FULL = 4; + const SQL_OJ_NESTED = 8; + const SQL_OJ_NOT_ORDERED = 16; + const SQL_OJ_INNER = 32; + const SQL_OJ_ALL_COMPARISON_OPS = 64; +} + +static if (ODBCVER >= 0x0300) { + const SQL_AM_CONNECTION=1; + const SQL_AM_NONE=0; + const SQL_AM_STATEMENT=2; + const SQL_API_SQLALLOCHANDLE=1001; + const SQL_API_SQLBINDPARAM=1002; + const SQL_API_SQLCLOSECURSOR=1003; + const SQL_API_SQLCOLATTRIBUTE=6; + const SQL_API_SQLCOPYDESC=1004; + const SQL_API_SQLENDTRAN=1005; + const SQL_API_SQLFETCHSCROLL=1021; + const SQL_API_SQLFREEHANDLE=1006; + const SQL_API_SQLGETCONNECTATTR=1007; + const SQL_API_SQLGETDESCFIELD=1008; + const SQL_API_SQLGETDESCREC=1009; + const SQL_API_SQLGETDIAGFIELD=1010; + const SQL_API_SQLGETDIAGREC=1011; + const SQL_API_SQLGETENVATTR=1012; + const SQL_API_SQLGETSTMTATTR=1014; + const SQL_API_SQLSETCONNECTATTR=1016; + const SQL_API_SQLSETDESCFIELD=1017; + const SQL_API_SQLSETDESCREC=1018; + const SQL_API_SQLSETENVATTR=1019; + const SQL_API_SQLSETSTMTATTR=1020; + const SQL_ARD_TYPE=-99; + const SQL_AT_ADD_CONSTRAINT=8; + const SQL_ATTR_APP_PARAM_DESC=10011; + const SQL_ATTR_APP_ROW_DESC=10010; + const SQL_ATTR_AUTO_IPD=10001; + const SQL_ATTR_CURSOR_SCROLLABLE=-1; + const SQL_ATTR_CURSOR_SENSITIVITY=-2; + const SQL_ATTR_IMP_PARAM_DESC=10013; + const SQL_ATTR_IMP_ROW_DESC=10012; + const SQL_ATTR_METADATA_ID=10014; + const SQL_ATTR_OUTPUT_NTS=10001; + const SQL_CATALOG_NAME=10003; + const SQL_CODE_DATE=1; + const SQL_CODE_TIME=2; + const SQL_CODE_TIMESTAMP=3; + const SQL_COLLATION_SEQ=10004; + const SQL_CURSOR_SENSITIVITY=10001; + const SQL_DATE_LEN=10; + const SQL_DATETIME=9; + const SQL_DEFAULT=99; + + const SQL_DESC_ALLOC_AUTO=1; + const SQL_DESC_ALLOC_USER=2; + const SQL_DESC_ALLOC_TYPE=1099; + const SQL_DESC_COUNT=1001; + const SQL_DESC_TYPE=1002; + const SQL_DESC_LENGTH=1003; + const SQL_DESC_OCTET_LENGTH_PTR=1004; + const SQL_DESC_PRECISION=1005; + const SQL_DESC_SCALE=1006; + const SQL_DESC_DATETIME_INTERVAL_CODE=1007; + const SQL_DESC_NULLABLE=1008; + const SQL_DESC_INDICATOR_PTR=1009; + const SQL_DESC_DATA_PTR=1010; + const SQL_DESC_NAME=1011; + const SQL_DESC_UNNAMED=1012; + const SQL_DESC_OCTET_LENGTH=1013; + + const SQL_DESCRIBE_PARAMETER=10002; + + const SQL_DIAG_ALTER_DOMAIN=3; + const SQL_DIAG_ALTER_TABLE=4; + const SQL_DIAG_CALL=7; + const SQL_DIAG_CLASS_ORIGIN=8; + const SQL_DIAG_CONNECTION_NAME=10; + const SQL_DIAG_CREATE_ASSERTION=6; + const SQL_DIAG_CREATE_CHARACTER_SET=8; + const SQL_DIAG_CREATE_COLLATION=10; + const SQL_DIAG_CREATE_DOMAIN=23; + const SQL_DIAG_CREATE_INDEX=-1; + const SQL_DIAG_CREATE_SCHEMA=64; + const SQL_DIAG_CREATE_TABLE=77; + const SQL_DIAG_CREATE_TRANSLATION=79; + const SQL_DIAG_CREATE_VIEW=84; + const SQL_DIAG_DELETE_WHERE=19; + const SQL_DIAG_DROP_ASSERTION=24; + const SQL_DIAG_DROP_CHARACTER_SET=25; + const SQL_DIAG_DROP_COLLATION=26; + const SQL_DIAG_DROP_DOMAIN=27; + const SQL_DIAG_DROP_INDEX=(-2); + const SQL_DIAG_DROP_SCHEMA=31; + const SQL_DIAG_DROP_TABLE=32; + const SQL_DIAG_DROP_TRANSLATION=33; + const SQL_DIAG_DROP_VIEW=36; + const SQL_DIAG_DYNAMIC_DELETE_CURSOR=38; + const SQL_DIAG_DYNAMIC_FUNCTION=7; + const SQL_DIAG_DYNAMIC_FUNCTION_CODE=12; + const SQL_DIAG_DYNAMIC_UPDATE_CURSOR=81; + const SQL_DIAG_GRANT=48; + const SQL_DIAG_INSERT=50; + const SQL_DIAG_MESSAGE_TEXT=6; + const SQL_DIAG_NATIVE=5; + const SQL_DIAG_NUMBER=2; + const SQL_DIAG_RETURNCODE=1; + const SQL_DIAG_REVOKE=59; + const SQL_DIAG_ROW_COUNT=3; + const SQL_DIAG_SELECT_CURSOR=85; + const SQL_DIAG_SERVER_NAME=11; + const SQL_DIAG_SQLSTATE=4; + const SQL_DIAG_SUBCLASS_ORIGIN=9; + const SQL_DIAG_UNKNOWN_STATEMENT=0; + const SQL_DIAG_UPDATE_WHERE=82; + + const SQL_FALSE=0; + const SQL_HANDLE_DBC=2; + const SQL_HANDLE_DESC=4; + const SQL_HANDLE_ENV=1; + const SQL_HANDLE_STMT=3; + const SQL_INSENSITIVE=1; + const SQL_MAX_CONCURRENT_ACTIVITIES=1; + const SQL_MAX_DRIVER_CONNECTIONS=0; + const SQL_MAX_IDENTIFIER_LEN=10005; + const SQL_MAXIMUM_CONCURRENT_ACTIVITIES=SQL_MAX_CONCURRENT_ACTIVITIES; + const SQL_MAXIMUM_DRIVER_CONNECTIONS=SQL_MAX_DRIVER_CONNECTIONS; + const SQL_MAXIMUM_IDENTIFIER_LENGTH=SQL_MAX_IDENTIFIER_LEN; + const SQL_NAMED=0; + const SQL_NO_DATA=100; + const SQL_NONSCROLLABLE=0; + const SQL_NULL_HANDLE=0L; + const SQL_NULL_HDESC=0; + const SQL_OJ_CAPABILITIES=115; + const SQL_OUTER_JOIN_CAPABILITIES=SQL_OJ_CAPABILITIES; + const SQL_PC_NON_PSEUDO=1; + + const SQL_PRED_NONE=0; + const SQL_PRED_CHAR=1; + const SQL_PRED_BASIC=2; + + const SQL_ROW_IDENTIFIER=1; + const SQL_SCROLLABLE=1; + const SQL_SENSITIVE=2; + const SQL_TIME_LEN=8; + const SQL_TIMESTAMP_LEN=19; + const SQL_TRUE=1; + const SQL_TYPE_DATE=91; + const SQL_TYPE_TIME=92; + const SQL_TYPE_TIMESTAMP=93; + const SQL_UNNAMED=1; + const SQL_UNSPECIFIED=0; + const SQL_XOPEN_CLI_YEAR=10000; +}//#endif /* ODBCVER >= 0x0300 */ + +extern (Windows) { + deprecated { + SQLRETURN SQLAllocConnect(SQLHENV, SQLHDBC*); + SQLRETURN SQLAllocEnv(SQLHENV*); + SQLRETURN SQLAllocStmt(SQLHDBC, SQLHSTMT*); + SQLRETURN SQLError(SQLHENV, SQLHDBC, SQLHSTMT, SQLCHAR*, SQLINTEGER*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLFreeConnect(SQLHDBC); + SQLRETURN SQLFreeEnv(SQLHENV); + SQLRETURN SQLSetParam(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLSMALLINT, SQLULEN, SQLSMALLINT, SQLPOINTER, SQLLEN*); + SQLRETURN SQLGetConnectOption(SQLHDBC, SQLUSMALLINT, SQLPOINTER); + SQLRETURN SQLGetStmtOption(SQLHSTMT, SQLUSMALLINT, SQLPOINTER); + SQLRETURN SQLSetConnectOption(SQLHDBC, SQLUSMALLINT, SQLULEN); + SQLRETURN SQLSetStmtOption(SQLHSTMT, SQLUSMALLINT, SQLROWCOUNT); + } + SQLRETURN SQLBindCol(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLPOINTER, SQLLEN, SQLLEN*); + SQLRETURN SQLCancel(SQLHSTMT); + SQLRETURN SQLConnect(SQLHDBC, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLDescribeCol(SQLHSTMT, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLSMALLINT*, SQLULEN*, SQLSMALLINT*, SQLSMALLINT*); + SQLRETURN SQLDisconnect(SQLHDBC); + SQLRETURN SQLExecDirect(SQLHSTMT, SQLCHAR*, SQLINTEGER); + SQLRETURN SQLExecute(SQLHSTMT); + SQLRETURN SQLFetch(SQLHSTMT); + SQLRETURN SQLFreeStmt(SQLHSTMT, SQLUSMALLINT); + SQLRETURN SQLGetCursorName(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLNumResultCols(SQLHSTMT, SQLSMALLINT*); + SQLRETURN SQLPrepare(SQLHSTMT, SQLCHAR*, SQLINTEGER); + SQLRETURN SQLRowCount(SQLHSTMT, SQLLEN*); + SQLRETURN SQLSetCursorName(SQLHSTMT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLTransact(SQLHENV, SQLHDBC, SQLUSMALLINT); + SQLRETURN SQLColumns(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLGetData(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLPOINTER, SQLLEN, SQLLEN*); + SQLRETURN SQLGetFunctions(SQLHDBC, SQLUSMALLINT, SQLUSMALLINT*); + SQLRETURN SQLGetInfo(SQLHDBC, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetTypeInfo(SQLHSTMT, SQLSMALLINT); + SQLRETURN SQLParamData(SQLHSTMT, SQLPOINTER*); + SQLRETURN SQLPutData(SQLHSTMT, SQLPOINTER, SQLLEN); + SQLRETURN SQLSpecialColumns(SQLHSTMT, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLUSMALLINT, SQLUSMALLINT); + SQLRETURN SQLStatistics(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLUSMALLINT, SQLUSMALLINT); + SQLRETURN SQLTables(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLDataSources(SQLHENV, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + + static if (ODBCVER >= 0x0300) { + SQLRETURN SQLAllocHandle(SQLSMALLINT, SQLHANDLE, SQLHANDLE*); + SQLRETURN SQLBindParam(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLSMALLINT, SQLULEN, SQLSMALLINT, SQLPOINTER, SQLLEN*); + SQLRETURN SQLCloseCursor(SQLHSTMT); + SQLRETURN SQLColAttribute(SQLHSTMT, SQLUSMALLINT, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*, SQLPOINTER); + SQLRETURN SQLCopyDesc(SQLHDESC, SQLHDESC); + SQLRETURN SQLEndTran(SQLSMALLINT, SQLHANDLE, SQLSMALLINT); + SQLRETURN SQLFetchScroll(SQLHSTMT, SQLSMALLINT, SQLROWOFFSET); + SQLRETURN SQLFreeHandle(SQLSMALLINT, SQLHANDLE); + SQLRETURN SQLGetConnectAttr(SQLHDBC, SQLINTEGER, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLGetDescField(SQLHDESC, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLGetDescRec(SQLHDESC, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, + SQLSMALLINT*, SQLSMALLINT*, SQLLEN*, SQLSMALLINT*, SQLSMALLINT*, SQLSMALLINT*); + SQLRETURN SQLGetDiagField(SQLSMALLINT, SQLHANDLE, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetDiagRec(SQLSMALLINT, SQLHANDLE, SQLSMALLINT, SQLCHAR*, SQLINTEGER*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetEnvAttr(SQLHENV, SQLINTEGER, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLGetStmtAttr(SQLHSTMT, SQLINTEGER, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLSetConnectAttr(SQLHDBC, SQLINTEGER, SQLPOINTER, SQLINTEGER); + SQLRETURN SQLSetDescField(SQLHDESC, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLINTEGER); + SQLRETURN SQLSetDescRec(SQLHDESC, SQLSMALLINT, SQLSMALLINT, SQLSMALLINT, SQLLEN, SQLSMALLINT, + SQLSMALLINT, SQLPOINTER, SQLLEN*, SQLLEN*); + SQLRETURN SQLSetEnvAttr(SQLHENV, SQLINTEGER, SQLPOINTER, SQLINTEGER); + SQLRETURN SQLSetStmtAttr(SQLHSTMT, SQLINTEGER, SQLPOINTER, SQLINTEGER); + }/* (ODBCVER >= 0x0300) */ +} ADDED src/win32/sqlext.d Index: src/win32/sqlext.d ================================================================== --- src/win32/sqlext.d +++ src/win32/sqlext.d @@ -0,0 +1,1295 @@ +/***********************************************************************\ +* sqlext.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.sqlext; + +/* Conversion notes: + The MinGW file was a horrible mess. All of the #defines were sorted alphabetically, + which is crazy. This file needs a lot of work. + In MinGW, sqlext #includes sqlucode, but sqlucode #includes sqlext, + creating a circular dependency! +*/ + +public import win32.sql; +private import win32.windef; + +const SQL_SPEC_MAJOR = 3; +const SQL_SPEC_MINOR = 51; +const char[] SQL_SPEC_STRING = "03.51"; +const SQL_ACCESS_MODE = 101; +const SQL_ACTIVE_CONNECTIONS = 0; +const SQL_ACTIVE_STATEMENTS = 1; + +const SQL_DATE = 9; +const SQL_TIME = 10; +const SQL_SIGNED_OFFSET = -20; +const SQL_TINYINT = -6; +const SQL_TIMESTAMP = 11; +const SQL_UNSIGNED_OFFSET = -22; + +const SQL_ADD = 4; +const SQL_ALL_EXCEPT_LIKE = 2; + +const SQL_API_ALL_FUNCTIONS = 0; +const SQL_API_SQLCOLATTRIBUTES = 6; +const SQL_API_SQLDRIVERCONNECT = 41; +const SQL_API_SQLBROWSECONNECT = 55; +const SQL_API_SQLCOLUMNPRIVILEGES = 56; +const SQL_API_SQLDESCRIBEPARAM = 58; +const SQL_API_SQLEXTENDEDFETCH = 59; +const SQL_API_SQLFOREIGNKEYS = 60; +const SQL_API_SQLMORERESULTS = 61; +const SQL_API_SQLNATIVESQL = 62; +const SQL_API_SQLNUMPARAMS = 63; +const SQL_API_SQLPARAMOPTIONS = 64; +const SQL_API_SQLPRIMARYKEYS = 65; +const SQL_API_SQLPROCEDURECOLUMNS = 66; +const SQL_API_SQLPROCEDURES = 67; +const SQL_API_SQLSETPOS = 68; +const SQL_API_SQLSETSCROLLOPTIONS = 69; +const SQL_API_SQLTABLEPRIVILEGES = 70; +const SQL_API_SQLDRIVERS = 71; +const SQL_API_SQLBINDPARAMETER = 72; +const SQL_API_LOADBYORDINAL = 199; + +const SQL_ASYNC_ENABLE = 4; +const SQL_ASYNC_ENABLE_OFF = 0UL; +const SQL_ASYNC_ENABLE_ON = 1UL; +const SQL_ASYNC_ENABLE_DEFAULT = SQL_ASYNC_ENABLE_OFF; + +const SQL_ATTR_CONNECTION_DEAD = 1209; +const SQL_ATTR_READONLY = 0; +const SQL_ATTR_READWRITE_UNKNOWN = 2; +const SQL_ATTR_WRITE = 1; + +const SQL_AUTOCOMMIT = 102; +const SQL_AUTOCOMMIT_OFF = 0UL; +const SQL_AUTOCOMMIT_ON = 1UL; +const SQL_AUTOCOMMIT_DEFAULT = SQL_AUTOCOMMIT_ON; +const SQL_BEST_ROWID = 1; +const SQL_BIGINT = -5; +const SQL_BINARY = -2; +const SQL_BIND_BY_COLUMN = 0UL; +const SQL_BIND_TYPE = 5; +const SQL_BIND_TYPE_DEFAULT = SQL_BIND_BY_COLUMN; +const SQL_BIT = -7; + +const SQL_BOOKMARK_PERSISTENCE = 82; + +// for BOOKMARK_PERSISTENCE +const SQL_BP_CLOSE = 1; +const SQL_BP_DELETE = 2; +const SQL_BP_DROP = 4; +const SQL_BP_TRANSACTION = 8; +const SQL_BP_UPDATE = 16; +const SQL_BP_OTHER_HSTMT = 32; +const SQL_BP_SCROLL = 64; + +const SQL_C_BINARY = SQL_BINARY; +const SQL_C_BIT = SQL_BIT; +const SQL_C_CHAR = SQL_CHAR; +const SQL_C_DATE = SQL_DATE; +const SQL_C_DOUBLE = SQL_DOUBLE; +const SQL_C_FLOAT = SQL_REAL; +const SQL_C_LONG = SQL_INTEGER; +const SQL_C_SHORT = SQL_SMALLINT; +const SQL_C_SLONG = SQL_C_LONG+SQL_SIGNED_OFFSET; +const SQL_C_SSHORT = SQL_C_SHORT+SQL_SIGNED_OFFSET; +const SQL_C_STINYINT = SQL_TINYINT+SQL_SIGNED_OFFSET; +const SQL_C_TIME = SQL_TIME; +const SQL_C_TIMESTAMP = SQL_TIMESTAMP; +const SQL_C_TINYINT = SQL_TINYINT; +const SQL_C_ULONG = SQL_C_LONG+SQL_UNSIGNED_OFFSET; +const SQL_C_USHORT = SQL_C_SHORT+SQL_UNSIGNED_OFFSET; +const SQL_C_UTINYINT = SQL_TINYINT+SQL_UNSIGNED_OFFSET; +const SQL_C_BOOKMARK = SQL_C_ULONG; +const SQL_C_DEFAULT = 99; + +const SQL_CASCADE = 0; +const SQL_CB_NON_NULL = 1; +const SQL_CB_NULL = 0; +deprecated { +const SQL_CC_CLOSE = SQL_CB_CLOSE;/* deprecated */ +const SQL_CC_DELETE = SQL_CB_DELETE;/* deprecated */ +const SQL_CC_PRESERVE = SQL_CB_PRESERVE;/* deprecated */ +} +const SQL_CD_FALSE = 0L; +const SQL_CD_TRUE = 1L; + +const SQL_CN_ANY = 2; +const SQL_CN_DIFFERENT = 1; +const SQL_CN_NONE = 0; + +const SQL_COLUMN_ALIAS = 87; + +const SQL_COLUMN_COUNT = 0; +const SQL_COLUMN_NAME = 1; +const SQL_COLUMN_DISPLAY_SIZE = 6; +const SQL_COLUMN_LABEL = 18; +const SQL_COLUMN_LENGTH = 3; +const SQL_COLUMN_MONEY = 9; +const SQL_COLUMN_NULLABLE = 7; +const SQL_COLUMN_OWNER_NAME = 16; +const SQL_COLUMN_PRECISION = 4; +const SQL_COLUMN_QUALIFIER_NAME = 17; +const SQL_COLUMN_SCALE = 5; +const SQL_COLUMN_UNSIGNED = 8; +const SQL_COLUMN_UPDATABLE = 10; +const SQL_COLUMN_AUTO_INCREMENT = 11; +const SQL_COLUMN_CASE_SENSITIVE = 12; +const SQL_COLUMN_SEARCHABLE = 13; +const SQL_COLUMN_TYPE = 2; +const SQL_COLUMN_TYPE_NAME = 14; +const SQL_COLUMN_TABLE_NAME = 15; + +const SQL_CONCAT_NULL_BEHAVIOR = 22; + +const SQL_CONCUR_READ_ONLY = 1; +const SQL_CONCUR_DEFAULT = SQL_CONCUR_READ_ONLY; +const SQL_CONCUR_LOCK = 2; +const SQL_CONCUR_ROWVER = 3; +const SQL_CONCUR_TIMESTAMP = SQL_CONCUR_ROWVER;/* deprecated */ +const SQL_CONCUR_VALUES = 4; + +const SQL_CONCURRENCY = 7; +const SQL_CONVERT_BIGINT = 53; +const SQL_CONVERT_BINARY = 54; +const SQL_CONVERT_BIT = 55; +const SQL_CONVERT_CHAR = 56; +const SQL_CONVERT_DATE = 57; +const SQL_CONVERT_DECIMAL = 58; +const SQL_CONVERT_DOUBLE = 59; +const SQL_CONVERT_FLOAT = 60; +const SQL_CONVERT_FUNCTIONS = 48; +const SQL_CONVERT_INTEGER = 61; +const SQL_CONVERT_LONGVARBINARY = 71; +const SQL_CONVERT_LONGVARCHAR = 62; +const SQL_CONVERT_NUMERIC = 63; +const SQL_CONVERT_REAL = 64; +const SQL_CONVERT_SMALLINT = 65; +const SQL_CONVERT_TIME = 66; +const SQL_CONVERT_TIMESTAMP = 67; +const SQL_CONVERT_TINYINT = 68; +const SQL_CONVERT_VARBINARY = 69; +const SQL_CONVERT_VARCHAR = 70; +const SQL_CORRELATION_NAME = 74; +const SQL_CR_CLOSE = SQL_CB_CLOSE;/* deprecated */ +const SQL_CR_DELETE = SQL_CB_DELETE;/* deprecated */ +const SQL_CR_PRESERVE = SQL_CB_PRESERVE;/* deprecated */ + +enum : ULONG { + SQL_CUR_USE_IF_NEEDED = 0, + SQL_CUR_USE_ODBC, + SQL_CUR_USE_DRIVER, + SQL_CUR_DEFAULT = SQL_CUR_USE_DRIVER +} + +const SQL_CURRENT_QUALIFIER = 109; +const SQL_CURSOR_DYNAMIC = 2UL; +const SQL_CURSOR_FORWARD_ONLY = 0UL; +const SQL_CURSOR_KEYSET_DRIVEN = 1UL; +const SQL_CURSOR_ROLLBACK_BEHAVIOR = 24; +const SQL_CURSOR_STATIC = 3UL; +const SQL_CURSOR_TYPE = 6; +const SQL_CURSOR_TYPE_DEFAULT = SQL_CURSOR_FORWARD_ONLY; + +const SQL_CV_CASCADED = 0x00000004L; +const SQL_CV_CHECK_OPTION = 0x00000002L; +const SQL_CV_CREATE_VIEW = 0x00000001L; +const SQL_CV_LOCAL = 0x00000008L; +const SQL_CVT_BIGINT = 0x00004000L; +const SQL_CVT_BINARY = 0x00000400L; +const SQL_CVT_BIT = 0x00001000L; +const SQL_CVT_CHAR = 0x00000001L; +const SQL_CVT_DATE = 0x00008000L; +const SQL_CVT_DECIMAL = 0x00000004L; +const SQL_CVT_DOUBLE = 0x00000080L; +const SQL_CVT_FLOAT = 0x00000020L; +const SQL_CVT_INTEGER = 0x00000008L; +const SQL_CVT_LONGVARBINARY = 0x00040000L; +const SQL_CVT_LONGVARCHAR = 0x00000200L; +const SQL_CVT_NUMERIC = 0x00000002L; +const SQL_CVT_REAL = 0x00000040L; +const SQL_CVT_SMALLINT = 0x00000010L; +const SQL_CVT_TIME = 0x00010000L; +const SQL_CVT_TIMESTAMP = 0x00020000L; +const SQL_CVT_TINYINT = 0x00002000L; +const SQL_CVT_VARBINARY = 0x00000800L; +const SQL_CVT_VARCHAR = 0x00000100L; +const SQL_DATABASE_NAME = 16;/* deprecated */ + +const SQL_DEFAULT_PARAM = -5; +const SQL_DELETE = 3; + +const SQL_DRIVER_COMPLETE = 1; +const SQL_DRIVER_COMPLETE_REQUIRED = 3; +const SQL_DRIVER_HDBC = 3; +const SQL_DRIVER_HENV = 4; +const SQL_DRIVER_HLIB = 76; +const SQL_DRIVER_HSTMT = 5; +const SQL_DRIVER_NAME = 6; +const SQL_DRIVER_NOPROMPT = 0; +const SQL_DRIVER_ODBC_VER = 77; +const SQL_DRIVER_PROMPT = 2; +const SQL_DRIVER_VER = 7; + +const SQL_DTC_ENLIST_EXPENSIVE = 1; +const SQL_DTC_UNENLIST_EXPENSIVE = 2; +const SQL_DTC_TRANSITION_COST = 1750; +const SQL_ENSURE = 1; +const SQL_ENTIRE_ROWSET = 0; +const SQL_EXPRESSIONS_IN_ORDERBY = 27; +const SQL_FD_FETCH_BOOKMARK = 128; +const SQL_FD_FETCH_PREV = SQL_FD_FETCH_PRIOR;/* deprecated */ +const SQL_FD_FETCH_RESUME = 64; +const SQL_FETCH_BOOKMARK = 8; +const SQL_FETCH_PREV = SQL_FETCH_PRIOR;/* deprecated */ +const SQL_FETCH_RESUME = 7;/* deprecated */ + +const SQL_FILE_NOT_SUPPORTED = 0x0000; +const SQL_FILE_TABLE = 0x0001; +const SQL_FILE_QUALIFIER = 0x0002; +const SQL_FILE_CATALOG = SQL_FILE_QUALIFIER; +const SQL_FILE_USAGE = 84; + +const SQL_FN_CVT_CONVERT = 0x00000001L; +const SQL_FN_NUM_ABS = 0x00000001L; +const SQL_FN_NUM_ACOS = 0x00000002L; +const SQL_FN_NUM_ASIN = 0x00000004L; +const SQL_FN_NUM_ATAN = 0x00000008L; +const SQL_FN_NUM_ATAN2 = 0x00000010L; +const SQL_FN_NUM_CEILING = 0x00000020L; +const SQL_FN_NUM_COS = 0x00000040L; +const SQL_FN_NUM_COT = 0x00000080L; +const SQL_FN_NUM_DEGREES = 0x00040000L; +const SQL_FN_NUM_EXP = 0x00000100L; +const SQL_FN_NUM_FLOOR = 0x00000200L; +const SQL_FN_NUM_LOG = 0x00000400L; +const SQL_FN_NUM_LOG10 = 0x00080000L; +const SQL_FN_NUM_MOD = 0x00000800L; +const SQL_FN_NUM_PI = 0x00010000L; +const SQL_FN_NUM_POWER = 0x00100000L; +const SQL_FN_NUM_RADIANS = 0x00200000L; +const SQL_FN_NUM_RAND = 0x00020000L; +const SQL_FN_NUM_ROUND = 0x00400000L; +const SQL_FN_NUM_SIGN = 0x00001000L; +const SQL_FN_NUM_SIN = 0x00002000L; +const SQL_FN_NUM_SQRT = 0x00004000L; +const SQL_FN_NUM_TAN = 0x00008000L; +const SQL_FN_NUM_TRUNCATE = 0x00800000L; +const SQL_FN_STR_ASCII = 0x00002000L; +const SQL_FN_STR_CHAR = 0x00004000L; +const SQL_FN_STR_CONCAT = 0x00000001L; +const SQL_FN_STR_DIFFERENCE = 0x00008000L; +const SQL_FN_STR_INSERT = 0x00000002L; +const SQL_FN_STR_LCASE = 0x00000040L; +const SQL_FN_STR_LEFT = 0x00000004L; +const SQL_FN_STR_LENGTH = 0x00000010L; +const SQL_FN_STR_LOCATE = 0x00000020L; +const SQL_FN_STR_LOCATE_2 = 0x00010000L; +const SQL_FN_STR_LTRIM = 0x00000008L; +const SQL_FN_STR_REPEAT = 0x00000080L; +const SQL_FN_STR_REPLACE = 0x00000100L; +const SQL_FN_STR_RIGHT = 0x00000200L; +const SQL_FN_STR_RTRIM = 0x00000400L; +const SQL_FN_STR_SOUNDEX = 0x00020000L; +const SQL_FN_STR_SPACE = 0x00040000L; +const SQL_FN_STR_SUBSTRING = 0x00000800L; +const SQL_FN_STR_UCASE = 0x00001000L; +const SQL_FN_SYS_DBNAME = 0x00000002L; +const SQL_FN_SYS_IFNULL = 0x00000004L; +const SQL_FN_SYS_USERNAME = 0x00000001L; +const SQL_FN_TD_CURDATE = 0x00000002L; +const SQL_FN_TD_CURTIME = 0x00000200L; +const SQL_FN_TD_DAYNAME = 0x00008000L; +const SQL_FN_TD_DAYOFMONTH = 0x00000004L; +const SQL_FN_TD_DAYOFWEEK = 0x00000008L; +const SQL_FN_TD_DAYOFYEAR = 0x00000010L; +const SQL_FN_TD_HOUR = 0x00000400L; +const SQL_FN_TD_MINUTE = 0x00000800L; +const SQL_FN_TD_MONTH = 0x00000020L; +const SQL_FN_TD_MONTHNAME = 0x00010000L; +const SQL_FN_TD_NOW = 0x00000001L; +const SQL_FN_TD_QUARTER = 0x00000040L; +const SQL_FN_TD_SECOND = 0x00001000L; +const SQL_FN_TD_TIMESTAMPADD = 0x00002000L; +const SQL_FN_TD_TIMESTAMPDIFF = 0x00004000L; +const SQL_FN_TD_WEEK = 0x00000080L; +const SQL_FN_TD_YEAR = 0x00000100L; +const SQL_FN_TSI_DAY = 0x00000010L; +const SQL_FN_TSI_FRAC_SECOND = 0x00000001L; +const SQL_FN_TSI_HOUR = 0x00000008L; +const SQL_FN_TSI_MINUTE = 0x00000004L; +const SQL_FN_TSI_MONTH = 0x00000040L; +const SQL_FN_TSI_QUARTER = 0x00000080L; +const SQL_FN_TSI_SECOND = 0x00000002L; +const SQL_FN_TSI_WEEK = 0x00000020L; +const SQL_FN_TSI_YEAR = 0x00000100L; +const SQL_GB_GROUP_BY_CONTAINS_SELECT = 2; +const SQL_GB_GROUP_BY_EQUALS_SELECT = 1; +const SQL_GB_NO_RELATION = 3; +const SQL_GB_NOT_SUPPORTED = 0; +const SQL_GD_BLOCK = 4; +const SQL_GD_BOUND = 8; +const SQL_GET_BOOKMARK = 13; +const SQL_GROUP_BY = 88; +const SQL_IGNORE = -6; +const SQL_INFO_FIRST = 0; +const SQL_KEYSET_SIZE = 8; +const SQL_KEYSET_SIZE_DEFAULT = 0UL; +const SQL_KEYWORDS = 89; +const SQL_LCK_EXCLUSIVE = 2; +const SQL_LCK_NO_CHANGE = 1; +const SQL_LCK_UNLOCK = 4; + +const SQL_LEN_BINARY_ATTR_OFFSET = -100; +const SQL_LEN_DATA_AT_EXEC_OFFSET = -100; +//MACRO #define SQL_LEN_BINARY_ATTR(length) (-(length)+SQL_LEN_BINARY_ATTR_OFFSET) +//MACRO #define SQL_LEN_DATA_AT_EXEC(length) (-(length)+SQL_LEN_DATA_AT_EXEC_OFFSET) + +const SQL_LIKE_ESCAPE_CLAUSE = 113; +const SQL_LIKE_ONLY = 1; +const SQL_LOCK_EXCLUSIVE = 1; +const SQL_LOCK_NO_CHANGE = 0; +const SQL_LOCK_TYPES = 78; +const SQL_LOCK_UNLOCK = 2; +const SQL_LOGIN_TIMEOUT = 103; +const SQL_LOGIN_TIMEOUT_DEFAULT = 15UL; +const SQL_LONGVARBINARY = -4; +const SQL_LONGVARCHAR = -1; +const SQL_MAX_BINARY_LITERAL_LEN = 112; +const SQL_MAX_CHAR_LITERAL_LEN = 108; +const SQL_MAX_DSN_LENGTH = 32; +const SQL_MAX_LENGTH = 3; +const SQL_MAX_LENGTH_DEFAULT = 0UL; +const SQL_MAX_OPTION_STRING_LENGTH = 256; +const SQL_MAX_OWNER_NAME_LEN = 32; +const SQL_MAX_PROCEDURE_NAME_LEN = 33; +const SQL_MAX_QUALIFIER_NAME_LEN = 34; +const SQL_MAX_ROW_SIZE_INCLUDES_LONG = 103; +const SQL_MAX_ROWS = 1; +const SQL_MAX_ROWS_DEFAULT = 0UL; + +const SQL_MODE_READ_WRITE = 0UL; +const SQL_MODE_READ_ONLY = 1UL; +const SQL_MODE_DEFAULT = SQL_MODE_READ_WRITE; + +const SQL_MULT_RESULT_SETS = 36; +const SQL_MULTIPLE_ACTIVE_TXN = 37; +const SQL_NC_END = 0x0004; +const SQL_NC_START = 0x0002; +const SQL_NEED_LONG_DATA_LEN = 111; +const SQL_NNC_NON_NULL = 0x0001; +const SQL_NNC_NULL = 0x0000; +const SQL_NO_TOTAL = -4; +const SQL_NON_NULLABLE_COLUMNS = 75; + +const SQL_NOSCAN_OFF = 0UL; +const SQL_NOSCAN_ON = 1UL; +const SQL_NOSCAN = 2; +const SQL_NOSCAN_DEFAULT = SQL_NOSCAN_OFF; + +const SQL_NUMERIC_FUNCTIONS = 49; +const SQL_OAC_LEVEL1 = 0x0001; +const SQL_OAC_LEVEL2 = 0x0002; +const SQL_OAC_NONE = 0x0000; +const SQL_ODBC_API_CONFORMANCE = 9; +const SQL_ODBC_CURSORS = 110; +const SQL_ODBC_SAG_CLI_CONFORMANCE = 12; +const SQL_ODBC_SQL_CONFORMANCE = 15; +const SQL_ODBC_SQL_OPT_IEF = 73; +const SQL_ODBC_VER = 10; +const SQL_OPT_TRACE = 104; + +const SQL_OPT_TRACE_FILE_DEFAULT = "\\SQL.LOG"; +const SQL_OPT_TRACE_OFF = 0UL; +const SQL_OPT_TRACE_DEFAULT = SQL_OPT_TRACE_OFF; +const SQL_OPT_TRACE_ON = 1UL; + +const SQL_OPT_TRACEFILE = 105; +const SQL_OSC_CORE = 1; +const SQL_OSC_EXTENDED = 2; +const SQL_OSC_MINIMUM = 0; +const SQL_OSCC_COMPLIANT = 1; +const SQL_OSCC_NOT_COMPLIANT = 0; +const SQL_OU_DML_STATEMENTS = 1; +const SQL_OU_INDEX_DEFINITION = 8; +const SQL_OU_PRIVILEGE_DEFINITION = 16; +const SQL_OU_PROCEDURE_INVOCATION = 2; +const SQL_OU_TABLE_DEFINITION = 4; +const SQL_OUTER_JOINS = 38; +const SQL_OWNER_TERM = 39; +const SQL_OWNER_USAGE = 91; +const SQL_PACKET_SIZE = 112; +const SQL_PARAM_INPUT = 1; +const SQL_PARAM_INPUT_OUTPUT = 2; +const SQL_PARAM_OUTPUT = 4; +const SQL_PARAM_TYPE_DEFAULT = SQL_PARAM_INPUT_OUTPUT; +const SQL_PARAM_TYPE_UNKNOWN = 0; +const SQL_PC_NOT_PSEUDO = 1; +const SQL_POS_ADD = 16; +const SQL_POS_DELETE = 8; +const SQL_POS_OPERATIONS = 79; +const SQL_POS_POSITION = 1; +const SQL_POS_REFRESH = 2; +const SQL_POS_UPDATE = 4; +const SQL_POSITION = 0; +const SQL_POSITIONED_STATEMENTS = 80; +const SQL_PROCEDURE_TERM = 40; +const SQL_PROCEDURES = 21; +const SQL_PS_POSITIONED_DELETE = 1; +const SQL_PS_POSITIONED_UPDATE = 2; +const SQL_PS_SELECT_FOR_UPDATE = 4; +const SQL_PT_FUNCTION = 2; +const SQL_PT_PROCEDURE = 1; +const SQL_PT_UNKNOWN = 0; +const SQL_QL_END = 0x0002; +const SQL_QL_START = 0x0001; +const SQL_QU_DML_STATEMENTS = 1; +const SQL_QU_INDEX_DEFINITION = 8; +const SQL_QU_PRIVILEGE_DEFINITION = 16; +const SQL_QU_PROCEDURE_INVOCATION = 2; +const SQL_QU_TABLE_DEFINITION = 4; +const SQL_QUALIFIER_LOCATION = 114; +const SQL_QUALIFIER_NAME_SEPARATOR = 41; +const SQL_QUALIFIER_TERM = 42; +const SQL_QUALIFIER_USAGE = 92; +const SQL_QUERY_TIMEOUT = 0; +const SQL_QUERY_TIMEOUT_DEFAULT = 0UL; +const SQL_QUICK = 0; +const SQL_QUIET_MODE = 111; +const SQL_QUOTED_IDENTIFIER_CASE = 93; + +const SQL_RD_OFF = 0UL; +const SQL_RD_ON = 1UL; +const SQL_RD_DEFAULT = SQL_RD_ON; + +const SQL_REFRESH = 1; +const SQL_RESTRICT = 1; +const SQL_RESULT_COL = 3; +const SQL_RETRIEVE_DATA = 11; +const SQL_RETURN_VALUE = 5; +const SQL_ROW_ADDED = 4; +const SQL_ROW_DELETED = 1; +const SQL_ROW_ERROR = 5; +const SQL_ROW_NOROW = 3; +const SQL_ROW_NUMBER = 14; +const SQL_ROW_SUCCESS = 0; +const SQL_ROW_UPDATED = 2; +const SQL_ROW_UPDATES = 11; +const SQL_ROWSET_SIZE = 9; +const SQL_ROWSET_SIZE_DEFAULT = 1UL; +const SQL_ROWVER = 2; +const SQL_SC_NON_UNIQUE = 0UL; +const SQL_SC_TRY_UNIQUE = 1UL; +const SQL_SC_UNIQUE = 2UL; +const SQL_SCCO_OPT_TIMESTAMP = SQL_SCCO_OPT_ROWVER;/* deprecated */ +const SQL_SCROLL_DYNAMIC = -2L;/* deprecated */ +const SQL_SCROLL_FORWARD_ONLY = 0L;/* deprecated */ +const SQL_SCROLL_KEYSET_DRIVEN = -1L;/* deprecated */ +const SQL_SCROLL_OPTIONS = 44; +const SQL_SCROLL_STATIC = -3L;/* deprecated */ +const SQL_SEARCHABLE = 3; +const SQL_SET_NULL = 2; +const SQL_SETPARAM_VALUE_MAX = -1L; +const SQL_SETPOS_MAX_LOCK_VALUE = SQL_LOCK_UNLOCK; +const SQL_SETPOS_MAX_OPTION_VALUE = SQL_ADD; +const SQL_SIMULATE_CURSOR = 10; +const SQL_SO_DYNAMIC = 4; +const SQL_SO_FORWARD_ONLY = 1; +const SQL_SO_KEYSET_DRIVEN = 2; +const SQL_SO_MIXED = 8; +const SQL_SO_STATIC = 16; +const SQL_SQ_COMPARISON = 1; +const SQL_SQ_CORRELATED_SUBQUERIES = 16; +const SQL_SQ_EXISTS = 2; +const SQL_SQ_IN = 4; +const SQL_SQ_QUANTIFIED = 8; +const SQL_SQLSTATE_SIZE = 5; +const SQL_SS_ADDITIONS = 1; +const SQL_SS_DELETIONS = 2; +const SQL_SS_UPDATES = 4; +const SQL_STATIC_SENSITIVITY = 83; +const SQL_STRING_FUNCTIONS = 50; +const SQL_SUBQUERIES = 95; +const SQL_SYSTEM_FUNCTIONS = 51; +const SQL_TABLE_STAT = 0; +const SQL_TABLE_TERM = 45; +const SQL_TIMEDATE_ADD_INTERVALS = 109; +const SQL_TIMEDATE_DIFF_INTERVALS = 110; +const SQL_TIMEDATE_FUNCTIONS = 52; +const SQL_TRANSLATE_DLL = 106; +const SQL_TRANSLATE_OPTION = 107; +const SQL_TXN_ISOLATION = 108; +const SQL_TXN_VERSIONING = 16; +const SQL_TYPE_NULL = 0; +const SQL_U_UNION = 1; +const SQL_U_UNION_ALL = 2; + +const SQL_UB_OFF = 0UL; +const SQL_UB_DEFAULT = SQL_UB_OFF; +const SQL_UB_ON = 01UL; + +const SQL_UNION = 96; +const SQL_UNSEARCHABLE = 0; +const SQL_UPDATE = 2; +const SQL_USE_BOOKMARKS = 12; +const SQL_VARBINARY = -3; + +const SQL_COLATT_OPT_MAX = SQL_COLUMN_LABEL; +const SQL_COLATT_OPT_MIN = SQL_COLUMN_COUNT; +const SQL_PRED_SEARCHABLE = SQL_SEARCHABLE; + +//MACRO #define SQL_POSITION_TO(s, r) SQLSetPos(s, r, SQL_POSITION, SQL_LOCK_NO_CHANGE) + +//MACRO #define SQL_LOCK_RECORD(s, r, l) SQLSetPos(s, r, SQL_POSITION, l) + +//MACRO #define SQL_REFRESH_RECORD(s, r, l) SQLSetPos(s, r, SQL_REFRESH, l) + +//MACRO #define SQL_UPDATE_RECORD(s, r) SQLSetPos(s, r, SQL_UPDATE, SQL_LOCK_NO_CHANGE) + +//MACRO #define SQL_DELETE_RECORD(s, r) SQLSetPos(s, r, SQL_DELETE, SQL_LOCK_NO_CHANGE) + +//MACRO #define SQL_ADD_RECORD(s, r) SQLSetPos(s, r, SQL_ADD, SQL_LOCK_NO_CHANGE) + + +static if (ODBCVER < 0x0300) { + const SQL_CONNECT_OPT_DRVR_START = 1000; + const SQL_CONN_OPT_MAX = SQL_PACKET_SIZE; + const SQL_CONN_OPT_MIN = SQL_ACCESS_MODE; + const SQL_STMT_OPT_MAX = SQL_ROW_NUMBER; + const SQL_STMT_OPT_MIN = SQL_QUERY_TIMEOUT; + const SQL_TYPE_DRIVER_START = SQL_INTERVAL_YEAR; + const SQL_TYPE_DRIVER_END = SQL_UNICODE_LONGVARCHAR; + const SQL_TYPE_MIN = SQL_BIT; + const SQL_TYPE_MAX = SQL_VARCHAR; +} + +static if (ODBCVER < 0x0300) { + const SQL_NO_DATA_FOUND = 100; + const SQL_INTERVAL_YEAR = -80; + const SQL_INTERVAL_MONTH = -81; + const SQL_INTERVAL_YEAR_TO_MONTH = -82; + const SQL_INTERVAL_DAY = -83; + const SQL_INTERVAL_HOUR = -84; + const SQL_INTERVAL_MINUTE = -85; + const SQL_INTERVAL_SECOND = -86; + const SQL_INTERVAL_DAY_TO_HOUR = -87; + const SQL_INTERVAL_DAY_TO_MINUTE = -88; + const SQL_INTERVAL_DAY_TO_SECOND = -89; + const SQL_INTERVAL_HOUR_TO_MINUTE = -90; + const SQL_INTERVAL_HOUR_TO_SECOND = -91; + const SQL_INTERVAL_MINUTE_TO_SECOND = -92; +} else { + const SQL_NO_DATA_FOUND = SQL_NO_DATA; + const SQL_CODE_YEAR = 1; + const SQL_CODE_MONTH = 2; + const SQL_CODE_DAY = 3; + const SQL_CODE_HOUR = 4; + const SQL_CODE_MINUTE = 5; + const SQL_CODE_SECOND = 6; + const SQL_CODE_YEAR_TO_MONTH = 7; + const SQL_CODE_DAY_TO_HOUR = 8; + const SQL_CODE_DAY_TO_MINUTE = 9; + const SQL_CODE_DAY_TO_SECOND = 10; + const SQL_CODE_HOUR_TO_MINUTE = 11; + const SQL_CODE_HOUR_TO_SECOND = 12; + const SQL_CODE_MINUTE_TO_SECOND = 13; + const SQL_INTERVAL_YEAR = 100 + SQL_CODE_YEAR; + const SQL_INTERVAL_MONTH = 100 + SQL_CODE_MONTH; + const SQL_INTERVAL_DAY = 100 + SQL_CODE_DAY; + const SQL_INTERVAL_HOUR = 100 + SQL_CODE_HOUR; + const SQL_INTERVAL_MINUTE = 100 + SQL_CODE_MINUTE; + const SQL_INTERVAL_SECOND = 100 + SQL_CODE_SECOND; + const SQL_INTERVAL_YEAR_TO_MONTH = 100 + SQL_CODE_YEAR_TO_MONTH; + const SQL_INTERVAL_DAY_TO_HOUR = 100 + SQL_CODE_DAY_TO_HOUR; + const SQL_INTERVAL_DAY_TO_MINUTE = 100 + SQL_CODE_DAY_TO_MINUTE; + const SQL_INTERVAL_DAY_TO_SECOND = 100 + SQL_CODE_DAY_TO_SECOND; + const SQL_INTERVAL_HOUR_TO_MINUTE = 100 + SQL_CODE_HOUR_TO_MINUTE; + const SQL_INTERVAL_HOUR_TO_SECOND = 100 + SQL_CODE_HOUR_TO_SECOND; + const SQL_INTERVAL_MINUTE_TO_SECOND = 100 + SQL_CODE_MINUTE_TO_SECOND; +}//[Yes] #endif + + +static if ((ODBCVER >= 0x0201) && (ODBCVER < 0x0300)) { + const SQL_OJ_CAPABILITIES = 65003; +} + +static if (ODBCVER >= 0x0250) { + const SQL_NO_ACTION = 3; + const SQL_SET_DEFAULT = 4; +} + +static if (ODBCVER >= 0x0300) { + const SQL_ACTIVE_ENVIRONMENTS = 116; + const SQL_AD_ADD_CONSTRAINT_DEFERRABLE = 0x00000080L; + const SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED = 0x00000020L; + const SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE = 0x00000040L; + const SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE = 0x00000100L; + const SQL_AD_ADD_DOMAIN_CONSTRAINT = 0x00000002L; + const SQL_AD_ADD_DOMAIN_DEFAULT = 0x00000008L; + const SQL_AD_CONSTRAINT_NAME_DEFINITION = 0x00000001L; + const SQL_AD_DROP_DOMAIN_CONSTRAINT = 0x00000004L; + const SQL_AD_DROP_DOMAIN_DEFAULT = 0x00000010L; + const SQL_AF_ALL = 0x00000040L; + const SQL_AF_AVG = 0x00000001L; + const SQL_AF_COUNT = 0x00000002L; + const SQL_AF_DISTINCT = 0x00000020L; + const SQL_AF_MAX = 0x00000004L; + const SQL_AF_MIN = 0x00000008L; + const SQL_AF_SUM = 0x00000010L; + const SQL_AGGREGATE_FUNCTIONS = 169; + const SQL_ALL_CATALOGS = "%"; + const SQL_ALL_SCHEMAS = "%"; + const SQL_ALL_TABLE_TYPES = "%"; + const SQL_ALTER_DOMAIN = 117; + const SQL_AM_CONNECTION = 1; + const SQL_AM_NONE = 0; + const SQL_AM_STATEMENT = 2; + const SQL_API_ODBC3_ALL_FUNCTIONS = 999; + const SQL_API_ODBC3_ALL_FUNCTIONS_SIZE = 250; + const SQL_API_SQLALLOCHANDLESTD = 73; + const SQL_API_SQLBULKOPERATIONS = 24; + const SQL_ASYNC_MODE = 10021; + const SQL_AT_ADD_COLUMN_COLLATION = 0x00000080L; + const SQL_AT_ADD_COLUMN_DEFAULT = 0x00000040L; + const SQL_AT_ADD_COLUMN_SINGLE = 0x00000020L; + const SQL_AT_ADD_TABLE_CONSTRAINT = 0x00001000L; + const SQL_AT_CONSTRAINT_DEFERRABLE = 0x00040000L; + const SQL_AT_CONSTRAINT_INITIALLY_DEFERRED = 0x00010000L; + const SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE = 0x00020000L; + const SQL_AT_CONSTRAINT_NAME_DEFINITION = 0x00008000L; + const SQL_AT_CONSTRAINT_NON_DEFERRABLE = 0x00080000L; + const SQL_AT_DROP_COLUMN_CASCADE = 0x00000400L; + const SQL_AT_DROP_COLUMN_DEFAULT = 0x00000200L; + const SQL_AT_DROP_COLUMN_RESTRICT = 0x00000800L; + const SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE = 0x00002000L; + const SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT = 0x00004000L; + const SQL_AT_SET_COLUMN_DEFAULT = 0x00000100L; + const SQL_ATTR_ACCESS_MODE = SQL_ACCESS_MODE; + const SQL_ATTR_ASYNC_ENABLE = 4; + const SQL_ATTR_AUTOCOMMIT = SQL_AUTOCOMMIT; + const SQL_ATTR_CONCURRENCY = SQL_CONCURRENCY; + const SQL_ATTR_CONNECTION_POOLING = 201; + const SQL_ATTR_CONNECTION_TIMEOUT = 113; + const SQL_ATTR_CP_MATCH = 202; + const SQL_ATTR_CURRENT_CATALOG = SQL_CURRENT_QUALIFIER; + const SQL_ATTR_CURSOR_TYPE = SQL_CURSOR_TYPE; + const SQL_ATTR_DISCONNECT_BEHAVIOR = 114; + const SQL_ATTR_ENABLE_AUTO_IPD = 15; + const SQL_ATTR_ENLIST_IN_DTC = 1207; + const SQL_ATTR_ENLIST_IN_XA = 1208; + const SQL_ATTR_FETCH_BOOKMARK_PTR = 16; + const SQL_ATTR_KEYSET_SIZE = SQL_KEYSET_SIZE; + const SQL_ATTR_LOGIN_TIMEOUT = SQL_LOGIN_TIMEOUT; + const SQL_ATTR_MAX_LENGTH = SQL_MAX_LENGTH; + const SQL_ATTR_MAX_ROWS = SQL_MAX_ROWS; + const SQL_ATTR_NOSCAN = SQL_NOSCAN; + const SQL_ATTR_ODBC_CURSORS = SQL_ODBC_CURSORS; + const SQL_ATTR_ODBC_VERSION = 200; + const SQL_ATTR_PACKET_SIZE = SQL_PACKET_SIZE; + const SQL_ATTR_PARAM_BIND_OFFSET_PTR = 17; + const SQL_ATTR_PARAM_BIND_TYPE = 18; + const SQL_ATTR_PARAM_OPERATION_PTR = 19; + const SQL_ATTR_PARAM_STATUS_PTR = 20; + const SQL_ATTR_PARAMS_PROCESSED_PTR = 21; + const SQL_ATTR_PARAMSET_SIZE = 22; + const SQL_ATTR_QUERY_TIMEOUT = SQL_QUERY_TIMEOUT; + const SQL_ATTR_QUIET_MODE = SQL_QUIET_MODE; + const SQL_ATTR_RETRIEVE_DATA = SQL_RETRIEVE_DATA; + const SQL_ATTR_ROW_ARRAY_SIZE = 27; + const SQL_ATTR_ROW_BIND_OFFSET_PTR = 23; + const SQL_ATTR_ROW_BIND_TYPE = SQL_BIND_TYPE; + const SQL_ATTR_ROW_NUMBER = SQL_ROW_NUMBER; + const SQL_ATTR_ROW_OPERATION_PTR = 24; + const SQL_ATTR_ROW_STATUS_PTR = 25; + const SQL_ATTR_ROWS_FETCHED_PTR = 26; + const SQL_ATTR_SIMULATE_CURSOR = SQL_SIMULATE_CURSOR; + const SQL_ATTR_TRACE = SQL_OPT_TRACE; + const SQL_ATTR_TRACEFILE = SQL_OPT_TRACEFILE; + const SQL_ATTR_TRANSLATE_LIB = SQL_TRANSLATE_DLL; + const SQL_ATTR_TRANSLATE_OPTION = SQL_TRANSLATE_OPTION; + const SQL_ATTR_TXN_ISOLATION = SQL_TXN_ISOLATION; + const SQL_ATTR_USE_BOOKMARKS = SQL_USE_BOOKMARKS; + const SQL_BATCH_ROW_COUNT = 120; + const SQL_BATCH_SUPPORT = 121; + const SQL_BRC_EXPLICIT = 0x0000002; + const SQL_BRC_PROCEDURES = 0x0000001; + const SQL_BRC_ROLLED_UP = 0x0000004; + const SQL_BS_ROW_COUNT_EXPLICIT = 0x00000002L; + const SQL_BS_ROW_COUNT_PROC = 0x00000008L; + const SQL_BS_SELECT_EXPLICIT = 0x00000001L; + const SQL_BS_SELECT_PROC = 0x00000004L; + const SQL_C_INTERVAL_DAY = SQL_INTERVAL_DAY; + const SQL_C_INTERVAL_DAY_TO_HOUR = SQL_INTERVAL_DAY_TO_HOUR; + const SQL_C_INTERVAL_DAY_TO_MINUTE = SQL_INTERVAL_DAY_TO_MINUTE; + const SQL_C_INTERVAL_DAY_TO_SECOND = SQL_INTERVAL_DAY_TO_SECOND; + const SQL_C_INTERVAL_HOUR = SQL_INTERVAL_HOUR; + const SQL_C_INTERVAL_HOUR_TO_MINUTE = SQL_INTERVAL_HOUR_TO_MINUTE; + const SQL_C_INTERVAL_HOUR_TO_SECOND = SQL_INTERVAL_HOUR_TO_SECOND; + const SQL_C_INTERVAL_MINUTE = SQL_INTERVAL_MINUTE; + const SQL_C_INTERVAL_MINUTE_TO_SECOND = SQL_INTERVAL_MINUTE_TO_SECOND; + const SQL_C_INTERVAL_MONTH = SQL_INTERVAL_MONTH; + const SQL_C_INTERVAL_SECOND = SQL_INTERVAL_SECOND; + const SQL_C_INTERVAL_YEAR = SQL_INTERVAL_YEAR; + const SQL_C_INTERVAL_YEAR_TO_MONTH = SQL_INTERVAL_YEAR_TO_MONTH; + const SQL_C_NUMERIC = SQL_NUMERIC; + const SQL_C_SBIGINT = SQL_BIGINT+SQL_SIGNED_OFFSET; + const SQL_C_TYPE_DATE = SQL_TYPE_DATE; + const SQL_C_TYPE_TIME = SQL_TYPE_TIME; + const SQL_C_TYPE_TIMESTAMP = SQL_TYPE_TIMESTAMP; + const SQL_C_UBIGINT = SQL_BIGINT+SQL_UNSIGNED_OFFSET; + const SQL_C_VARBOOKMARK = SQL_C_BINARY; + const SQL_CA_CONSTRAINT_DEFERRABLE = 0x00000040L; + const SQL_CA_CONSTRAINT_INITIALLY_DEFERRED = 0x00000010L; + const SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE = 0x00000020L; + const SQL_CA_CONSTRAINT_NON_DEFERRABLE = 0x00000080L; + const SQL_CA_CREATE_ASSERTION = 0x00000001L; + const SQL_CA1_ABSOLUTE = 0x00000002L; + const SQL_CA1_BOOKMARK = 0x00000008L; + const SQL_CA1_BULK_ADD = 0x00010000L; + const SQL_CA1_BULK_DELETE_BY_BOOKMARK = 0x00040000L; + const SQL_CA1_BULK_FETCH_BY_BOOKMARK = 0x00080000L; + const SQL_CA1_BULK_UPDATE_BY_BOOKMARK = 0x00020000L; + const SQL_CA1_LOCK_EXCLUSIVE = 0x00000080L; + const SQL_CA1_LOCK_NO_CHANGE = 0x00000040L; + const SQL_CA1_LOCK_UNLOCK = 0x00000100L; + const SQL_CA1_NEXT = 0x00000001L; + const SQL_CA1_POS_DELETE = 0x00000800L; + const SQL_CA1_POS_POSITION = 0x00000200L; + const SQL_CA1_POS_REFRESH = 0x00001000L; + const SQL_CA1_POS_UPDATE = 0x00000400L; + const SQL_CA1_POSITIONED_DELETE = 0x00004000L; + const SQL_CA1_POSITIONED_UPDATE = 0x00002000L; + const SQL_CA1_RELATIVE = 0x00000004L; + const SQL_CA1_SELECT_FOR_UPDATE = 0x00008000L; + const SQL_CA2_CRC_APPROXIMATE = 0x00002000L; + const SQL_CA2_CRC_EXACT = 0x00001000L; + const SQL_CA2_LOCK_CONCURRENCY = 0x00000002L; + + const SQL_CA2_MAX_ROWS_CATALOG = 0x00000800L; + const SQL_CA2_MAX_ROWS_DELETE = 0x00000200L; + const SQL_CA2_MAX_ROWS_INSERT = 0x00000100L; + const SQL_CA2_MAX_ROWS_SELECT = 0x00000080L; + const SQL_CA2_MAX_ROWS_UPDATE = 0x00000400L; + const SQL_CA2_MAX_ROWS_AFFECTS_ALL = SQL_CA2_MAX_ROWS_SELECT | SQL_CA2_MAX_ROWS_INSERT | + SQL_CA2_MAX_ROWS_DELETE | SQL_CA2_MAX_ROWS_UPDATE | SQL_CA2_MAX_ROWS_CATALOG; + + const SQL_CA2_OPT_ROWVER_CONCURRENCY = 0x00000004L; + const SQL_CA2_OPT_VALUES_CONCURRENCY = 0x00000008L; + const SQL_CA2_READ_ONLY_CONCURRENCY = 0x00000001L; + const SQL_CA2_SENSITIVITY_ADDITIONS = 0x00000010L; + const SQL_CA2_SENSITIVITY_DELETIONS = 0x00000020L; + const SQL_CA2_SENSITIVITY_UPDATES = 0x00000040L; + const SQL_CA2_SIMULATE_NON_UNIQUE = 0x00004000L; + const SQL_CA2_SIMULATE_TRY_UNIQUE = 0x00008000L; + const SQL_CA2_SIMULATE_UNIQUE = 0x00010000L; + const SQL_CATALOG_LOCATION = SQL_QUALIFIER_LOCATION; + const SQL_CATALOG_NAME_SEPARATOR = SQL_QUALIFIER_NAME_SEPARATOR; + const SQL_CATALOG_TERM = SQL_QUALIFIER_TERM; + const SQL_CATALOG_USAGE = SQL_QUALIFIER_USAGE; + const SQL_CCOL_CREATE_COLLATION = 0x00000001L; + const SQL_CCS_COLLATE_CLAUSE = 0x00000002L; + const SQL_CCS_CREATE_CHARACTER_SET = 0x00000001L; + const SQL_CCS_LIMITED_COLLATION = 0x00000004L; + const SQL_CDO_COLLATION = 0x00000008L; + const SQL_CDO_CONSTRAINT = 0x00000004L; + const SQL_CDO_CONSTRAINT_DEFERRABLE = 0x00000080L; + const SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED = 0x00000020L; + const SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE = 0x00000040L; + const SQL_CDO_CONSTRAINT_NAME_DEFINITION = 0x00000010L; + const SQL_CDO_CONSTRAINT_NON_DEFERRABLE = 0x00000100L; + const SQL_CDO_CREATE_DOMAIN = 0x00000001L; + const SQL_CDO_DEFAULT = 0x00000002L; + const SQL_CL_END = SQL_QL_END; + const SQL_CL_START = SQL_QL_START; + const SQL_COL_PRED_BASIC = SQL_ALL_EXCEPT_LIKE; + const SQL_COL_PRED_CHAR = SQL_LIKE_ONLY; + const SQL_COLUMN_DRIVER_START = 1000; + const SQL_COLUMN_IGNORE = SQL_IGNORE; + const SQL_COLUMN_NUMBER_UNKNOWN = -2; + const SQL_CONVERT_GUID = 173; + + const SQL_CONVERT_WCHAR = 122; + const SQL_CONVERT_INTERVAL_DAY_TIME = 123; + const SQL_CONVERT_INTERVAL_YEAR_MONTH = 124; + const SQL_CONVERT_WLONGVARCHAR = 125; + const SQL_CONVERT_WVARCHAR = 126; + + const SQL_CREATE_ASSERTION = 127; + const SQL_CREATE_CHARACTER_SET = 128; + const SQL_CREATE_COLLATION = 129; + const SQL_CREATE_DOMAIN = 130; + const SQL_CREATE_SCHEMA = 131; + const SQL_CREATE_TABLE = 132; + const SQL_CREATE_TRANSLATION = 133; + const SQL_CREATE_VIEW = 134; + + + const SQL_CP_OFF = 0UL; + const SQL_CP_DEFAULT = SQL_CP_OFF; + const SQL_CP_ONE_PER_DRIVER = 1UL; + const SQL_CP_ONE_PER_HENV = 2UL; + + const SQL_CP_STRICT_MATCH = 0UL; + const SQL_CP_MATCH_DEFAULT = SQL_CP_STRICT_MATCH; + const SQL_CP_RELAXED_MATCH = 1UL; + + const SQL_CS_CREATE_SCHEMA = 0x00000001L; + const SQL_CS_AUTHORIZATION = 0x00000002L; + const SQL_CS_DEFAULT_CHARACTER_SET = 0x00000004L; + + const SQL_CT_COLUMN_COLLATION = 0x00000800L; + const SQL_CT_COLUMN_CONSTRAINT = 0x00000200L; + const SQL_CT_COLUMN_DEFAULT = 0x00000400L; + const SQL_CT_COMMIT_DELETE = 0x00000004L; + const SQL_CT_COMMIT_PRESERVE = 0x00000002L; + const SQL_CT_CONSTRAINT_DEFERRABLE = 0x00000080L; + const SQL_CT_CONSTRAINT_INITIALLY_DEFERRED = 0x00000020L; + const SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE = 0x00000040L; + const SQL_CT_CONSTRAINT_NAME_DEFINITION = 0x00002000L; + const SQL_CT_CONSTRAINT_NON_DEFERRABLE = 0x00000100L; + const SQL_CT_CREATE_TABLE = 0x00000001L; + const SQL_CT_GLOBAL_TEMPORARY = 0x00000008L; + const SQL_CT_LOCAL_TEMPORARY = 0x00000010L; + const SQL_CT_TABLE_CONSTRAINT = 0x00001000L; + + const SQL_CTR_CREATE_TRANSLATION = 0x00000001L; + + const SQL_CU_DML_STATEMENTS = SQL_QU_DML_STATEMENTS; + const SQL_CU_INDEX_DEFINITION = SQL_QU_INDEX_DEFINITION; + const SQL_CU_PRIVILEGE_DEFINITION = SQL_QU_PRIVILEGE_DEFINITION; + const SQL_CU_PROCEDURE_INVOCATION = SQL_QU_PROCEDURE_INVOCATION; + const SQL_CU_TABLE_DEFINITION = SQL_QU_TABLE_DEFINITION; + + const SQL_CVT_INTERVAL_YEAR_MONTH = 0x00080000L; + const SQL_CVT_INTERVAL_DAY_TIME = 0x00100000L; + const SQL_CVT_WCHAR = 0x00200000L; + const SQL_CVT_WLONGVARCHAR = 0x00400000L; + const SQL_CVT_WVARCHAR = 0x00800000L; + const SQL_CVT_GUID = 0x01000000L; + + const SQL_DA_DROP_ASSERTION = 0x00000001L; + const SQL_DATETIME_LITERALS = 119; + + const SQL_DB_DISCONNECT = 1UL; + const SQL_DB_RETURN_TO_POOL = 0UL; + const SQL_DB_DEFAULT = SQL_DB_RETURN_TO_POOL; + + const SQL_DC_DROP_COLLATION = 0x00000001L; + const SQL_DCS_DROP_CHARACTER_SET = 0x00000001L; + const SQL_DD_CASCADE = 0x00000004L; + const SQL_DD_DROP_DOMAIN = 0x00000001L; + const SQL_DD_RESTRICT = 0x00000002L; + const SQL_DDL_INDEX = 170; + const SQL_DELETE_BY_BOOKMARK = 6; + const SQL_DESC_ARRAY_SIZE = 20; + const SQL_DESC_ARRAY_STATUS_PTR = 21; + const SQL_DESC_AUTO_UNIQUE_VALUE = SQL_COLUMN_AUTO_INCREMENT; + const SQL_DESC_BASE_COLUMN_NAME = 22; + const SQL_DESC_BASE_TABLE_NAME = 23; + const SQL_DESC_BIND_OFFSET_PTR = 24; + const SQL_DESC_BIND_TYPE = 25; + const SQL_DESC_CASE_SENSITIVE = SQL_COLUMN_CASE_SENSITIVE; + const SQL_DESC_CATALOG_NAME = SQL_COLUMN_QUALIFIER_NAME; + const SQL_DESC_CONCISE_TYPE = SQL_COLUMN_TYPE; + const SQL_DESC_DATETIME_INTERVAL_PRECISION = 26; + const SQL_DESC_DISPLAY_SIZE = SQL_COLUMN_DISPLAY_SIZE; + const SQL_DESC_FIXED_PREC_SCALE = SQL_COLUMN_MONEY; + const SQL_DESC_LABEL = SQL_COLUMN_LABEL; + const SQL_DESC_LITERAL_PREFIX = 27; + const SQL_DESC_LITERAL_SUFFIX = 28; + const SQL_DESC_LOCAL_TYPE_NAME = 29; + const SQL_DESC_MAXIMUM_SCALE = 30; + const SQL_DESC_MINIMUM_SCALE = 31; + const SQL_DESC_NUM_PREC_RADIX = 32; + const SQL_DESC_PARAMETER_TYPE = 33; + const SQL_DESC_ROWS_PROCESSED_PTR = 34; + const SQL_DESC_SCHEMA_NAME = SQL_COLUMN_OWNER_NAME; + const SQL_DESC_SEARCHABLE = SQL_COLUMN_SEARCHABLE; + const SQL_DESC_TABLE_NAME = SQL_COLUMN_TABLE_NAME; + const SQL_DESC_TYPE_NAME = SQL_COLUMN_TYPE_NAME; + const SQL_DESC_UNSIGNED = SQL_COLUMN_UNSIGNED; + const SQL_DESC_UPDATABLE = SQL_COLUMN_UPDATABLE; + const SQL_DI_CREATE_INDEX = 0x00000001L; + const SQL_DI_DROP_INDEX = 0x00000002L; + + const SQL_DIAG_COLUMN_NUMBER = -1247; + const SQL_DIAG_ROW_NUMBER = -1248; + const SQL_DIAG_CURSOR_ROW_COUNT = -1249; + + const SQL_DL_SQL92_DATE = 0x00000001L; + const SQL_DL_SQL92_INTERVAL_DAY = 0x00000020L; + const SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR = 0x00000400L; + const SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE = 0x00000800L; + const SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND = 0x00001000L; + const SQL_DL_SQL92_INTERVAL_HOUR = 0x00000040L; + const SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE = 0x00002000L; + const SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND = 0x00004000L; + const SQL_DL_SQL92_INTERVAL_MINUTE = 0x00000080L; + const SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND = 0x00008000L; + const SQL_DL_SQL92_INTERVAL_MONTH = 0x00000010L; + const SQL_DL_SQL92_INTERVAL_SECOND = 0x00000100L; + const SQL_DL_SQL92_INTERVAL_YEAR = 0x00000008L; + const SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH = 0x00000200L; + const SQL_DL_SQL92_TIME = 0x00000002L; + const SQL_DL_SQL92_TIMESTAMP = 0x00000004L; + const SQL_DM_VER = 171; + const SQL_DRIVER_HDESC = 135; + const SQL_DROP_ASSERTION = 136; + const SQL_DROP_CHARACTER_SET = 137; + const SQL_DROP_COLLATION = 138; + const SQL_DROP_DOMAIN = 139; + const SQL_DROP_SCHEMA = 140; + const SQL_DROP_TABLE = 141; + const SQL_DROP_TRANSLATION = 142; + const SQL_DROP_VIEW = 143; + const SQL_DS_CASCADE = 0x00000004L; + const SQL_DS_DROP_SCHEMA = 0x00000001L; + const SQL_DS_RESTRICT = 0x00000002L; + const SQL_DT_CASCADE = 0x00000004L; + const SQL_DT_DROP_TABLE = 0x00000001L; + const SQL_DT_RESTRICT = 0x00000002L; + const SQL_DTC_DONE = 0L; + const SQL_DTR_DROP_TRANSLATION = 0x00000001L; + const SQL_DV_CASCADE = 0x00000004L; + const SQL_DV_DROP_VIEW = 0x00000001L; + const SQL_DV_RESTRICT = 0x00000002L; + const SQL_DYNAMIC_CURSOR_ATTRIBUTES1 = 144; + const SQL_DYNAMIC_CURSOR_ATTRIBUTES2 = 145; + const SQL_EXT_API_LAST = SQL_API_SQLBINDPARAMETER; + const SQL_EXT_API_START = 40; + const SQL_FETCH_BY_BOOKMARK = 7; + const SQL_FETCH_FIRST_SYSTEM = 32; + const SQL_FETCH_FIRST_USER = 31; + const SQL_FN_CVT_CAST = 0x00000002L; + const SQL_FN_STR_BIT_LENGTH = 0x00080000L; + const SQL_FN_STR_CHAR_LENGTH = 0x00100000L; + const SQL_FN_STR_CHARACTER_LENGTH = 0x00200000L; + const SQL_FN_STR_OCTET_LENGTH = 0x00400000L; + const SQL_FN_STR_POSITION = 0x00800000L; + const SQL_FN_TD_CURRENT_DATE = 0x00020000L; + const SQL_FN_TD_CURRENT_TIME = 0x00040000L; + const SQL_FN_TD_CURRENT_TIMESTAMP = 0x00080000L; + const SQL_FN_TD_EXTRACT = 0x00100000L; + const SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 = 146; + const SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 = 147; + /* #define SQL_FUNC_EXISTS(exists, api) + ((*(((UWORD*) (exists)) + ((api) >> 4)) & (1 << ((api) & 15)) ) ? + SQL_TRUE : SQL_FALSE ) + */ + const SQL_GB_COLLATE = 0x0004; + const SQL_HANDLE_SENV = 5; + + const SQL_IK_NONE = 0; + const SQL_IK_ASC = 1; + const SQL_IK_DESC = 2; + const SQL_IK_ALL = SQL_IK_ASC | SQL_IK_DESC; + + const SQL_INDEX_KEYWORDS = 148; + const SQL_INFO_DRIVER_START = 1000; + const SQL_INFO_LAST = SQL_QUALIFIER_LOCATION; + const SQL_INFO_SCHEMA_VIEWS = 149; + const SQL_INITIALLY_DEFERRED = 5; + const SQL_INITIALLY_IMMEDIATE = 6; + const SQL_INSERT_STATEMENT = 172; + const SQL_INTERVAL = 10; + const SQL_IS_INSERT_LITERALS = 0x00000001L; + const SQL_IS_INSERT_SEARCHED = 0x00000002L; + const SQL_IS_INTEGER = -6; + const SQL_IS_POINTER = -4; + const SQL_IS_SELECT_INTO = 0x00000004L; + const SQL_IS_SMALLINT = -8; + const SQL_IS_UINTEGER = -5; + const SQL_IS_USMALLINT = -7; + const SQL_ISV_ASSERTIONS = 0x00000001L; + const SQL_ISV_CHARACTER_SETS = 0x00000002L; + const SQL_ISV_CHECK_CONSTRAINTS = 0x00000004L; + const SQL_ISV_COLLATIONS = 0x00000008L; + const SQL_ISV_COLUMN_DOMAIN_USAGE = 0x00000010L; + const SQL_ISV_COLUMN_PRIVILEGES = 0x00000020L; + const SQL_ISV_COLUMNS = 0x00000040L; + const SQL_ISV_CONSTRAINT_COLUMN_USAGE = 0x00000080L; + const SQL_ISV_CONSTRAINT_TABLE_USAGE = 0x00000100L; + const SQL_ISV_DOMAIN_CONSTRAINTS = 0x00000200L; + const SQL_ISV_DOMAINS = 0x00000400L; + const SQL_ISV_KEY_COLUMN_USAGE = 0x00000800L; + const SQL_ISV_REFERENTIAL_CONSTRAINTS = 0x00001000L; + const SQL_ISV_SCHEMATA = 0x00002000L; + const SQL_ISV_SQL_LANGUAGES = 0x00004000L; + const SQL_ISV_TABLE_CONSTRAINTS = 0x00008000L; + const SQL_ISV_TABLE_PRIVILEGES = 0x00010000L; + const SQL_ISV_TABLES = 0x00020000L; + const SQL_ISV_TRANSLATIONS = 0x00040000L; + const SQL_ISV_USAGE_PRIVILEGES = 0x00080000L; + const SQL_ISV_VIEW_COLUMN_USAGE = 0x00100000L; + const SQL_ISV_VIEW_TABLE_USAGE = 0x00200000L; + const SQL_ISV_VIEWS = 0x00400000L; + const SQL_KEYSET_CURSOR_ATTRIBUTES1 = 150; + const SQL_KEYSET_CURSOR_ATTRIBUTES2 = 151; + const SQL_MAX_ASYNC_CONCURRENT_STATEMENTS = 10022; + const SQL_NO_COLUMN_NUMBER = -1; + const SQL_NO_ROW_NUMBER = -1; + const SQL_NOT_DEFERRABLE = 7; + const SQL_NUM_EXTENSIONS = SQL_EXT_API_LAST-SQL_EXT_API_START+1; + const SQL_NUM_FUNCTIONS = 23; + const SQL_ODBC_INTERFACE_CONFORMANCE = 152; + + enum : ULONG { + SQL_OIC_CORE = 1, + SQL_OIC_LEVEL1, + SQL_OIC_LEVEL2 + } + enum : ULONG { + SQL_OV_ODBC2 = 2, + SQL_OV_ODBC3 = 3 + } + + const ULONG + SQL_PARAM_BIND_BY_COLUMN = 0, + SQL_PARAM_BIND_TYPE_DEFAULT = SQL_PARAM_BIND_BY_COLUMN; + + const SQL_PARAM_ARRAY_ROW_COUNTS = 153; + const SQL_PARAM_ARRAY_SELECTS = 154; + const SQL_PARAM_DIAG_UNAVAILABLE = 1; + const SQL_PARAM_ERROR = 5; + const SQL_PARAM_IGNORE = 1; + const SQL_PARAM_PROCEED = 0; + const SQL_PARAM_SUCCESS = 0; + const SQL_PARAM_SUCCESS_WITH_INFO = 6; + const SQL_PARAM_UNUSED = 7; + + const SQL_PARC_BATCH = 1; + const SQL_PARC_NO_BATCH = 2; + const SQL_PAS_BATCH = 1; + const SQL_PAS_NO_BATCH = 2; + const SQL_PAS_NO_SELECT = 3; + + const SQL_ROW_IGNORE = 1; + const SQL_ROW_NUMBER_UNKNOWN = -2; + const SQL_ROW_PROCEED = 0; + const SQL_ROW_SUCCESS_WITH_INFO = 6; + + const SQL_SC_FIPS127_2_TRANSITIONAL = 0x00000002L; + const SQL_SC_SQL92_ENTRY = 0x00000001L; + const SQL_SC_SQL92_FULL = 0x00000008L; + const SQL_SC_SQL92_INTERMEDIATE = 0x00000004L; + + const SQL_SCC_ISO92_CLI = 0x00000002L; + const SQL_SCC_XOPEN_CLI_VERSION1 = 0x00000001L; + + const SQL_SCHEMA_TERM = SQL_OWNER_TERM; + const SQL_SCHEMA_USAGE = SQL_OWNER_USAGE; + const SQL_SDF_CURRENT_DATE = 0x00000001L; + const SQL_SDF_CURRENT_TIME = 0x00000002L; + const SQL_SDF_CURRENT_TIMESTAMP = 0x00000004L; + const SQL_SFKD_CASCADE = 0x00000001L; + const SQL_SFKD_NO_ACTION = 0x00000002L; + const SQL_SFKD_SET_DEFAULT = 0x00000004L; + const SQL_SFKD_SET_NULL = 0x00000008L; + const SQL_SFKU_CASCADE = 0x00000001L; + const SQL_SFKU_NO_ACTION = 0x00000002L; + const SQL_SFKU_SET_DEFAULT = 0x00000004L; + const SQL_SFKU_SET_NULL = 0x00000008L; + const SQL_SG_DELETE_TABLE = 0x00000020L; + const SQL_SG_INSERT_COLUMN = 0x00000080L; + const SQL_SG_INSERT_TABLE = 0x00000040L; + const SQL_SG_REFERENCES_COLUMN = 0x00000200L; + const SQL_SG_REFERENCES_TABLE = 0x00000100L; + const SQL_SG_SELECT_TABLE = 0x00000400L; + const SQL_SG_UPDATE_COLUMN = 0x00001000L; + const SQL_SG_UPDATE_TABLE = 0x00000800L; + const SQL_SG_USAGE_ON_CHARACTER_SET = 0x00000002L; + const SQL_SG_USAGE_ON_COLLATION = 0x00000004L; + const SQL_SG_USAGE_ON_DOMAIN = 0x00000001L; + const SQL_SG_USAGE_ON_TRANSLATION = 0x00000008L; + const SQL_SG_WITH_GRANT_OPTION = 0x00000010L; + const SQL_SNVF_BIT_LENGTH = 0x00000001L; + const SQL_SNVF_CHAR_LENGTH = 0x00000002L; + const SQL_SNVF_CHARACTER_LENGTH = 0x00000004L; + const SQL_SNVF_EXTRACT = 0x00000008L; + const SQL_SNVF_OCTET_LENGTH = 0x00000010L; + const SQL_SNVF_POSITION = 0x00000020L; + const SQL_SP_BETWEEN = 0x00000800L; + const SQL_SP_COMPARISON = 0x00001000L; + const SQL_SP_EXISTS = 0x00000001L; + const SQL_SP_IN = 0x00000400L; + const SQL_SP_ISNOTNULL = 0x00000002L; + const SQL_SP_ISNULL = 0x00000004L; + const SQL_SP_LIKE = 0x00000200L; + const SQL_SP_MATCH_FULL = 0x00000008L; + const SQL_SP_MATCH_PARTIAL = 0x00000010L; + const SQL_SP_MATCH_UNIQUE_FULL = 0x00000020L; + const SQL_SP_MATCH_UNIQUE_PARTIAL = 0x00000040L; + const SQL_SP_OVERLAPS = 0x00000080L; + const SQL_SP_QUANTIFIED_COMPARISON = 0x00002000L; + const SQL_SP_UNIQUE = 0x00000100L; + const SQL_SQL_CONFORMANCE = 118; + const SQL_SQL92_DATETIME_FUNCTIONS = 155; + const SQL_SQL92_FOREIGN_KEY_DELETE_RULE = 156; + const SQL_SQL92_FOREIGN_KEY_UPDATE_RULE = 157; + const SQL_SQL92_GRANT = 158; + const SQL_SQL92_NUMERIC_VALUE_FUNCTIONS = 159; + const SQL_SQL92_PREDICATES = 160; + const SQL_SQL92_RELATIONAL_JOIN_OPERATORS = 161; + const SQL_SQL92_REVOKE = 162; + const SQL_SQL92_ROW_VALUE_CONSTRUCTOR = 163; + const SQL_SQL92_STRING_FUNCTIONS = 164; + const SQL_SQL92_VALUE_EXPRESSIONS = 165; + const SQL_SR_CASCADE = 0x00000020L; + const SQL_SR_DELETE_TABLE = 0x00000080L; + const SQL_SR_GRANT_OPTION_FOR = 0x00000010L; + const SQL_SR_INSERT_COLUMN = 0x00000200L; + const SQL_SR_INSERT_TABLE = 0x00000100L; + const SQL_SR_REFERENCES_COLUMN = 0x00000800L; + const SQL_SR_REFERENCES_TABLE = 0x00000400L; + const SQL_SR_RESTRICT = 0x00000040L; + const SQL_SR_SELECT_TABLE = 0x00001000L; + const SQL_SR_UPDATE_COLUMN = 0x00004000L; + const SQL_SR_UPDATE_TABLE = 0x00002000L; + const SQL_SR_USAGE_ON_CHARACTER_SET = 0x00000002L; + const SQL_SR_USAGE_ON_COLLATION = 0x00000004L; + const SQL_SR_USAGE_ON_DOMAIN = 0x00000001L; + const SQL_SR_USAGE_ON_TRANSLATION = 0x00000008L; + const SQL_SRJO_CORRESPONDING_CLAUSE = 0x00000001L; + const SQL_SRJO_CROSS_JOIN = 0x00000002L; + const SQL_SRJO_EXCEPT_JOIN = 0x00000004L; + const SQL_SRJO_FULL_OUTER_JOIN = 0x00000008L; + const SQL_SRJO_INNER_JOIN = 0x00000010L; + const SQL_SRJO_INTERSECT_JOIN = 0x00000020L; + const SQL_SRJO_LEFT_OUTER_JOIN = 0x00000040L; + const SQL_SRJO_NATURAL_JOIN = 0x00000080L; + const SQL_SRJO_RIGHT_OUTER_JOIN = 0x00000100L; + const SQL_SRJO_UNION_JOIN = 0x00000200L; + const SQL_SRVC_DEFAULT = 0x00000004L; + const SQL_SRVC_NULL = 0x00000002L; + const SQL_SRVC_ROW_SUBQUERY = 0x00000008L; + const SQL_SRVC_VALUE_EXPRESSION = 0x00000001L; + const SQL_SSF_CONVERT = 0x00000001L; + const SQL_SSF_LOWER = 0x00000002L; + const SQL_SSF_SUBSTRING = 0x00000008L; + const SQL_SSF_TRANSLATE = 0x00000010L; + const SQL_SSF_TRIM_BOTH = 0x00000020L; + const SQL_SSF_TRIM_LEADING = 0x00000040L; + const SQL_SSF_TRIM_TRAILING = 0x00000080L; + const SQL_SSF_UPPER = 0x00000004L; + const SQL_STANDARD_CLI_CONFORMANCE = 166; + const SQL_STATIC_CURSOR_ATTRIBUTES1 = 167; + const SQL_STATIC_CURSOR_ATTRIBUTES2 = 168; + const SQL_SU_DML_STATEMENTS = SQL_OU_DML_STATEMENTS; + const SQL_SU_INDEX_DEFINITION = SQL_OU_INDEX_DEFINITION; + const SQL_SU_PRIVILEGE_DEFINITION = SQL_OU_PRIVILEGE_DEFINITION; + const SQL_SU_PROCEDURE_INVOCATION = SQL_OU_PROCEDURE_INVOCATION; + const SQL_SU_TABLE_DEFINITION = SQL_OU_TABLE_DEFINITION; + const SQL_SVE_CASE = 0x00000001L; + const SQL_SVE_CAST = 0x00000002L; + const SQL_SVE_COALESCE = 0x00000004L; + const SQL_SVE_NULLIF = 0x00000008L; + const SQL_UB_FIXED = SQL_UB_ON; + const SQL_UB_VARIABLE = 2UL; + const SQL_UNION_STATEMENT = SQL_UNION; + const SQL_UPDATE_BY_BOOKMARK = 5; + const SQL_US_UNION = SQL_U_UNION; + const SQL_US_UNION_ALL = SQL_U_UNION_ALL; +}//[Yes] #endif /* ODBCVER >= 0x300 */ +static if (ODBCVER >= 0x0350) { + const SQL_DESC_ROWVER = 35; + const SQL_GUID = -11; + const SQL_C_GUID = SQL_GUID; + //#ifdef ODBC_STD + //#define SQLAllocHandle SQLAllocHandleStd + //#define SQLAllocEnv(p) SQLAllocHandleStd(SQL_HANDLE_ENV, SQL_NULL_HANDLE, p) + //#define SQL_YEAR SQL_CODE_YEAR + //#define SQL_MONTH SQL_CODE_MONTH + //#define SQL_DAY SQL_CODE_DAY + //#define SQL_HOUR SQL_CODE_HOUR + //#define SQL_MINUTE SQL_CODE_MINUTE + //#define SQL_SECOND SQL_CODE_SECOND + //#define SQL_YEAR_TO_MONTH SQL_CODE_YEAR_TO_MONTH + //#define SQL_DAY_TO_HOUR SQL_CODE_DAY_TO_HOUR + //#define SQL_DAY_TO_MINUTE SQL_CODE_DAY_TO_MINUTE + //#define SQL_DAY_TO_SECOND SQL_CODE_DAY_TO_SECOND + //#define SQL_HOUR_TO_MINUTE SQL_CODE_HOUR_TO_MINUTE + //#define SQL_HOUR_TO_SECOND SQL_CODE_HOUR_TO_SECOND + //#define SQL_MINUTE_TO_SECOND SQL_CODE_MINUTE_TO_SECOND + //#endif /* ODBC_STD */ +}//#endif /* ODBCVER >= 0x0350 */ + +//static if (ODBCVER >= 0x0351) { +const SQL_ATTR_ANSI_APP=115; +const SQL_AA_TRUE=1L; +const SQL_AA_FALSE=0L; +//}//[Yes] #endif + +const TRACE_VERSION=1000; +const TRACE_ON=1; + +const char [] SQL_ODBC_KEYWORDS = + "ABSOLUTE, ACTION, ADA, ADD, ALL, ALLOCATE, ALTER, AND, ANY, ARE, AS, " + ~ "ASC, ASSERTION, AT, AUTHORIZATION, AVG, " + ~ "BEGIN, BETWEEN, BIT, BIT_LENGTH, BOTH, BY, CASCADE, CASCADED, CASE, CAST, CATALOG, " + ~ "CHAR, CHAR_LENGTH, CHARACTER, CHARACTER_LENGTH, CHECK, CLOSE, COALESCE, " + ~ "COLLATE, COLLATION, COLUMN, COMMIT, CONNECT, CONNECTION, CONSTRAINT, " + ~ "CONSTRAINTS, CONTINUE, CONVERT, CORRESPONDING, COUNT, CREATE, CROSS, CURRENT, " + ~ "CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_USER, CURSOR, " + ~ "DATE, DAY, DEALLOCATE, DEC, DECIMAL, DECLARE, DEFAULT, DEFERRABLE, " + ~ "DEFERRED, DELETE, DESC, DESCRIBE, DESCRIPTOR, DIAGNOSTICS, DISCONNECT, " + ~ "DISTINCT, DOMAIN, DOUBLE, DROP, " + ~ "ELSE, END, END-EXEC, ESCAPE, EXCEPT, EXCEPTION, EXEC, EXECUTE, " + ~ "EXISTS, EXTERNAL, EXTRACT, " + ~ "FALSE, FETCH, FIRST, FLOAT, FOR, FOREIGN, FORTRAN, FOUND, FROM, FULL, " + ~ "GET, GLOBAL, GO, GOTO, GRANT, GROUP, HAVING, HOUR, " + ~ "IDENTITY, IMMEDIATE, IN, INCLUDE, INDEX, INDICATOR, INITIALLY, INNER, " + ~ "INPUT, INSENSITIVE, INSERT, INT, INTEGER, INTERSECT, INTERVAL, INTO, IS, ISOLATION, " + ~ "JOIN, KEY, LANGUAGE, LAST, LEADING, LEFT, LEVEL, LIKE, LOCAL, LOWER, " + ~ "MATCH, MAX, MIN, MINUTE, MODULE, MONTH, " + ~ "NAMES, NATIONAL, NATURAL, NCHAR, NEXT, NO, NONE, NOT, NULL, NULLIF, NUMERIC, " + ~ "OCTET_LENGTH, OF, ON, ONLY, OPEN, OPTION, OR, ORDER, OUTER, OUTPUT, OVERLAPS, " + ~ "PAD, PARTIAL, PASCAL, PLI, POSITION, PRECISION, PREPARE, PRESERVE, " + ~ "PRIMARY, PRIOR, PRIVILEGES, PROCEDURE, PUBLIC, " + ~ "READ, REAL, REFERENCES, RELATIVE, RESTRICT, REVOKE, RIGHT, ROLLBACK, ROWS" + ~ "SCHEMA, SCROLL, SECOND, SECTION, SELECT, SESSION, SESSION_USER, SET, SIZE, " + ~ "SMALLINT, SOME, SPACE, SQL, SQLCA, SQLCODE, SQLERROR, SQLSTATE, SQLWARNING, " + ~ "SUBSTRING, SUM, SYSTEM_USER, " + ~ "TABLE, TEMPORARY, THEN, TIME, TIMESTAMP, TIMEZONE_HOUR, TIMEZONE_MINUTE, " + ~ "TO, TRAILING, TRANSACTION, TRANSLATE, TRANSLATION, TRIM, TRUE, " + ~ "UNION, UNIQUE, UNKNOWN, UPDATE, UPPER, USAGE, USER, USING, " + ~ "VALUE, VALUES, VARCHAR, VARYING, VIEW, WHEN, WHENEVER, WHERE, WITH, WORK, WRITE, " + ~ "YEAR, ZONE"; +extern (Windows) { + SQLRETURN SQLDriverConnect(SQLHDBC, SQLHWND, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLUSMALLINT); + SQLRETURN SQLBrowseConnect(SQLHDBC, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLColumnPrivileges(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLColAttributes(SQLHSTMT, SQLUSMALLINT, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*, SQLLEN*); + SQLRETURN SQLDescribeParam(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT*, SQLULEN*, SQLSMALLINT*, SQLSMALLINT*); + SQLRETURN SQLExtendedFetch(SQLHSTMT, SQLUSMALLINT, SQLINTEGER, SQLUINTEGER*, SQLUSMALLINT*); + SQLRETURN SQLForeignKeys(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLMoreResults(SQLHSTMT); + SQLRETURN SQLNativeSql(SQLHDBC, SQLCHAR*, SQLINTEGER, SQLCHAR*, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLNumParams(SQLHSTMT, SQLSMALLINT*); + SQLRETURN SQLParamOptions(SQLHSTMT, SQLUINTEGER, SQLUINTEGER*); + SQLRETURN SQLPrimaryKeys(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLProcedureColumns(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLProcedures(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLSetPos(SQLHSTMT, SQLUSMALLINT, SQLUSMALLINT, SQLUSMALLINT); + SQLRETURN SQLTablePrivileges(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLDrivers(SQLHENV, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLBindParameter(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLSMALLINT, SQLSMALLINT, SQLULEN, SQLSMALLINT, SQLPOINTER, SQLLEN, SQLLEN*); + SQLRETURN SQLSetScrollOptions(SQLHSTMT, SQLUSMALLINT, SQLLEN, SQLUSMALLINT);/* deprecated */ + DWORD ODBCGetTryWaitValue(); + BOOL ODBCSetTryWaitValue(DWORD); + RETCODE TraceOpenLogFile(LPWSTR, LPWSTR, DWORD); + RETCODE TraceCloseLogFile(); + VOID TraceReturn(RETCODE, RETCODE); + DWORD TraceVersion(); + //static if (ODBCVER >= 0x0300) { + SQLRETURN SQLBulkOperations(SQLHSTMT, SQLSMALLINT); + SQLRETURN SQLAllocHandleStd( SQLSMALLINT, SQLHANDLE, SQLHANDLE*); + //} +} ADDED src/win32/sqltypes.d Index: src/win32/sqltypes.d ================================================================== --- src/win32/sqltypes.d +++ src/win32/sqltypes.d @@ -0,0 +1,142 @@ +/***********************************************************************\ +* sqltypes.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.sqltypes; + +/* Conversion notes: + It's assumed that ODBC >= 0x0300. +*/ + +private import win32.windef; +private import win32.basetyps; // for GUID + +alias byte SCHAR, SQLSCHAR; +alias int SDWORD, SLONG, SQLINTEGER; +alias short SWORD, SSHORT, RETCODE, SQLSMALLINT; +alias ULONG UDWORD; +alias USHORT UWORD, SQLUSMALLINT; +alias double SDOUBLE, LDOUBLE; +alias float SFLOAT; +alias PVOID PTR, HENV, HDBC, HSTMT, SQLPOINTER; +alias UCHAR SQLCHAR; +// #ifndef _WIN64 +alias UDWORD SQLUINTEGER; +// #endif + +//static if (ODBCVER >= 0x0300) { +alias HANDLE SQLHANDLE; +alias SQLHANDLE SQLHENV, SQLHDBC, SQLHSTMT, SQLHDESC; +/* +} else { +alias void* SQLHENV; +alias void* SQLHDBC; +alias void* SQLHSTMT; +} +*/ +alias SQLSMALLINT SQLRETURN; +alias HWND SQLHWND; +alias ULONG BOOKMARK; + +alias SQLINTEGER SQLLEN, SQLROWOFFSET; +alias SQLUINTEGER SQLROWCOUNT, SQLULEN; +alias DWORD SQLTRANSID; +alias SQLUSMALLINT SQLSETPOSIROW; +alias wchar SQLWCHAR; + +version(Unicode) { + alias SQLWCHAR SQLTCHAR; +} else { + alias SQLCHAR SQLTCHAR; +} +//static if (ODBCVER >= 0x0300) { +alias ubyte SQLDATE, SQLDECIMAL; +alias double SQLDOUBLE, SQLFLOAT; +alias ubyte SQLNUMERIC; +alias float SQLREAL; +alias ubyte SQLTIME, SQLTIMESTAMP, SQLVARCHAR; +alias long ODBCINT64, SQLBIGINT; +alias ulong SQLUBIGINT; +//} + +struct DATE_STRUCT { + SQLSMALLINT year; + SQLUSMALLINT month; + SQLUSMALLINT day; +} + +struct TIME_STRUCT { + SQLUSMALLINT hour; + SQLUSMALLINT minute; + SQLUSMALLINT second; +} + +struct TIMESTAMP_STRUCT { + SQLSMALLINT year; + SQLUSMALLINT month; + SQLUSMALLINT day; + SQLUSMALLINT hour; + SQLUSMALLINT minute; + SQLUSMALLINT second; + SQLUINTEGER fraction; +} + +//static if (ODBCVER >= 0x0300) { +alias DATE_STRUCT SQL_DATE_STRUCT; +alias TIME_STRUCT SQL_TIME_STRUCT; +alias TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT; + +enum SQLINTERVAL { + SQL_IS_YEAR = 1, + SQL_IS_MONTH, + SQL_IS_DAY, + SQL_IS_HOUR, + SQL_IS_MINUTE, + SQL_IS_SECOND, + SQL_IS_YEAR_TO_MONTH, + SQL_IS_DAY_TO_HOUR, + SQL_IS_DAY_TO_MINUTE, + SQL_IS_DAY_TO_SECOND, + SQL_IS_HOUR_TO_MINUTE, + SQL_IS_HOUR_TO_SECOND, + SQL_IS_MINUTE_TO_SECOND +} + +struct SQL_YEAR_MONTH_STRUCT { + SQLUINTEGER year; + SQLUINTEGER month; +} + +struct SQL_DAY_SECOND_STRUCT { + SQLUINTEGER day; + SQLUINTEGER hour; + SQLUINTEGER minute; + SQLUINTEGER second; + SQLUINTEGER fraction; +} + +struct SQL_INTERVAL_STRUCT { + SQLINTERVAL interval_type; + SQLSMALLINT interval_sign; + union _intval { + SQL_YEAR_MONTH_STRUCT year_month; + SQL_DAY_SECOND_STRUCT day_second; + } + _intval intval; +} + +const SQL_MAX_NUMERIC_LEN = 16; + +struct SQL_NUMERIC_STRUCT { + SQLCHAR precision; + SQLSCHAR scale; + SQLCHAR sign; + SQLCHAR val[SQL_MAX_NUMERIC_LEN]; +} +// } ODBCVER >= 0x0300 +alias GUID SQLGUID; ADDED src/win32/sqlucode.d Index: src/win32/sqlucode.d ================================================================== --- src/win32/sqlucode.d +++ src/win32/sqlucode.d @@ -0,0 +1,156 @@ +/***********************************************************************\ +* sqlucode.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.sqlucode; + +private import win32.sqlext; + +const SQL_WCHAR = -8; +const SQL_WVARCHAR = -9; +const SQL_WLONGVARCHAR = -10; +const SQL_C_WCHAR = SQL_WCHAR; + +const SQL_SQLSTATE_SIZEW = 10; +version(Unicode) { + const SQL_C_TCHAR = SQL_C_WCHAR; +} else { + const SQL_C_TCHAR = SQL_C_CHAR; +} + +// Moved from sqlext +static if (ODBCVER <= 0x0300) { + const SQL_UNICODE = -95; + const SQL_UNICODE_VARCHAR = -96; + const SQL_UNICODE_LONGVARCHAR = -97; + const SQL_UNICODE_CHAR = SQL_UNICODE; +} else { + const SQL_UNICODE = SQL_WCHAR; + const SQL_UNICODE_VARCHAR = SQL_WVARCHAR; + const SQL_UNICODE_LONGVARCHAR = SQL_WLONGVARCHAR; + const SQL_UNICODE_CHAR = SQL_WCHAR; +} + +extern (Windows) { + SQLRETURN SQLBrowseConnectA(SQLHDBC, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLBrowseConnectW(SQLHDBC, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLColAttributeA(SQLHSTMT, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*, SQLPOINTER); + SQLRETURN SQLColAttributeW(SQLHSTMT, SQLUSMALLINT, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*, SQLPOINTER); + SQLRETURN SQLColAttributesA(SQLHSTMT, SQLUSMALLINT, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*, SQLLEN*); + SQLRETURN SQLColAttributesW(SQLHSTMT, SQLUSMALLINT, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*, SQLLEN*); + SQLRETURN SQLColumnPrivilegesA( SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT , SQLCHAR*, SQLSMALLINT ); + SQLRETURN SQLColumnPrivilegesW( SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT ); + SQLRETURN SQLColumnsA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT , SQLCHAR*, SQLSMALLINT ); + SQLRETURN SQLColumnsW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT , SQLWCHAR*, SQLSMALLINT ); + SQLRETURN SQLConnectA(SQLHDBC, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLConnectW(SQLHDBC, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT); + SQLRETURN SQLDataSourcesA(SQLHENV, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLDataSourcesW(SQLHENV, SQLUSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLDescribeColA(SQLHSTMT, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLSMALLINT*, SQLULEN*, SQLSMALLINT*, SQLSMALLINT*); + SQLRETURN SQLDescribeColW(SQLHSTMT, SQLUSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLSMALLINT*, SQLULEN*, SQLSMALLINT*, SQLSMALLINT*); + SQLRETURN SQLDriverConnectA(SQLHDBC, SQLHWND, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLUSMALLINT); + SQLRETURN SQLDriverConnectW(SQLHDBC, SQLHWND, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLUSMALLINT); + SQLRETURN SQLDriversA(SQLHENV, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLDriversW(SQLHENV, SQLUSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLErrorA(SQLHENV, SQLHDBC, SQLHSTMT, SQLCHAR*, SQLINTEGER*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLErrorW(SQLHENV, SQLHDBC, SQLHSTMT, SQLWCHAR*, SQLINTEGER*, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLExecDirectA(SQLHSTMT, SQLCHAR*, SQLINTEGER); + SQLRETURN SQLExecDirectW(SQLHSTMT, SQLWCHAR*, SQLINTEGER); + SQLRETURN SQLForeignKeysA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLForeignKeysW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT); + SQLRETURN SQLGetConnectAttrA(SQLHDBC, SQLINTEGER, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLGetConnectAttrW(SQLHDBC, SQLINTEGER, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLGetConnectOptionA(SQLHDBC, SQLUSMALLINT, SQLPOINTER); + SQLRETURN SQLGetConnectOptionW(SQLHDBC, SQLUSMALLINT, SQLPOINTER); + SQLRETURN SQLGetCursorNameA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetCursorNameW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetInfoA(SQLHDBC, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetInfoW(SQLHDBC, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetTypeInfoA(SQLHSTMT, SQLSMALLINT); + SQLRETURN SQLGetTypeInfoW(SQLHSTMT, SQLSMALLINT); + SQLRETURN SQLNativeSqlA(SQLHDBC, SQLCHAR*, SQLINTEGER, SQLCHAR*, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLNativeSqlW(SQLHDBC, SQLWCHAR*, SQLINTEGER, SQLWCHAR*, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLPrepareA(SQLHSTMT, SQLCHAR*, SQLINTEGER); + SQLRETURN SQLPrepareW(SQLHSTMT, SQLWCHAR*, SQLINTEGER); + SQLRETURN SQLPrimaryKeysA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT ); + SQLRETURN SQLPrimaryKeysW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT); + SQLRETURN SQLProcedureColumnsA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLProcedureColumnsW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT); + SQLRETURN SQLProceduresA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLProceduresW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT); + SQLRETURN SQLSetConnectAttrA(SQLHDBC, SQLINTEGER, SQLPOINTER, SQLINTEGER); + SQLRETURN SQLSetConnectAttrW(SQLHDBC, SQLINTEGER, SQLPOINTER, SQLINTEGER); + SQLRETURN SQLSetConnectOptionA(SQLHDBC, SQLUSMALLINT, SQLULEN); + SQLRETURN SQLSetConnectOptionW(SQLHDBC, SQLUSMALLINT, SQLULEN); + SQLRETURN SQLSetCursorNameA(SQLHSTMT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLSetCursorNameW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT); + SQLRETURN SQLSpecialColumnsA(SQLHSTMT, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT , SQLUSMALLINT, SQLUSMALLINT); + SQLRETURN SQLSpecialColumnsW(SQLHSTMT, SQLUSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT , SQLUSMALLINT, SQLUSMALLINT); + SQLRETURN SQLStatisticsA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT , SQLUSMALLINT, SQLUSMALLINT); + SQLRETURN SQLStatisticsW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT , SQLUSMALLINT, SQLUSMALLINT); + SQLRETURN SQLTablePrivilegesA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLTablePrivilegesW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT ); + SQLRETURN SQLTablesA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLTablesW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT); + static if (ODBCVER >= 0x0300) { + SQLRETURN SQLGetDescFieldA(SQLHDESC, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLGetDescFieldW(SQLHDESC, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLSetDescFieldA(SQLHDESC, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLINTEGER); + SQLRETURN SQLSetDescFieldW(SQLHDESC, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLINTEGER); + SQLRETURN SQLGetDescRecA(SQLHDESC, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLSMALLINT*, SQLSMALLINT*, SQLLEN*, SQLSMALLINT*, SQLSMALLINT*, SQLSMALLINT*); + SQLRETURN SQLGetDescRecW(SQLHDESC, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLSMALLINT*, SQLSMALLINT*, SQLLEN*, SQLSMALLINT*, SQLSMALLINT*, SQLSMALLINT*); + SQLRETURN SQLGetDiagFieldA(SQLSMALLINT, SQLHANDLE, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetDiagFieldW(SQLSMALLINT, SQLHANDLE, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetDiagRecA(SQLSMALLINT, SQLHANDLE, SQLSMALLINT, SQLCHAR*, SQLINTEGER*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetDiagRecW(SQLSMALLINT, SQLHANDLE, SQLSMALLINT, SQLWCHAR*, SQLINTEGER*, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetStmtAttrA(SQLHSTMT, SQLINTEGER, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLGetStmtAttrW(SQLHSTMT, SQLINTEGER, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLSetStmtAttrA(SQLHSTMT, SQLINTEGER, SQLPOINTER, SQLINTEGER); + SQLRETURN SQLSetStmtAttrW(SQLHSTMT, SQLINTEGER, SQLPOINTER, SQLINTEGER); + } // #endif /* (ODBCVER >= 0x0300) */ +} + +version (Unicode) { + alias SQLBrowseConnectW SQLBrowseConnect; + alias SQLColAttributeW SQLColAttribute; + alias SQLColAttributesW SQLColAttributes; + alias SQLColumnPrivilegesW SQLColumnPrivileges; + alias SQLColumnsW SQLColumns; + alias SQLConnectW SQLConnect; + alias SQLDataSourcesW SQLDataSources; + alias SQLDescribeColW SQLDescribeCol; + alias SQLDriverConnectW SQLDriverConnect; + alias SQLDriversW SQLDrivers; + alias SQLErrorW SQLError; + alias SQLExecDirectW SQLExecDirect; + alias SQLForeignKeysW SQLForeignKeys; + alias SQLGetConnectAttrW SQLGetConnectAttr; + alias SQLGetConnectOptionW SQLGetConnectOption; + alias SQLGetCursorNameW SQLGetCursorName; + alias SQLGetDescFieldW SQLGetDescField; + alias SQLGetDescRecW SQLGetDescRec; + alias SQLGetDiagFieldW SQLGetDiagField; + alias SQLGetDiagRecW SQLGetDiagRec; + alias SQLGetInfoW SQLGetInfo; + alias SQLGetStmtAttrW SQLGetStmtAttr; + alias SQLGetTypeInfoW SQLGetTypeInfo; + alias SQLNativeSqlW SQLNativeSql; + alias SQLPrepareW SQLPrepare; + alias SQLPrimaryKeysW SQLPrimaryKeys; + alias SQLProcedureColumnsW SQLProcedureColumns; + alias SQLProceduresW SQLProcedures; + alias SQLSetConnectAttrW SQLSetConnectAttr; + alias SQLSetConnectOptionW SQLSetConnectOption; + alias SQLSetCursorNameW SQLSetCursorName; + alias SQLSetDescFieldW SQLSetDescField; + alias SQLSetStmtAttrW SQLSetStmtAttr; + alias SQLSpecialColumnsW SQLSpecialColumns; + alias SQLStatisticsW SQLStatistics; + alias SQLTablePrivilegesW SQLTablePrivileges; + alias SQLTablesW SQLTables; +} ADDED src/win32/subauth.d Index: src/win32/subauth.d ================================================================== --- src/win32/subauth.d +++ src/win32/subauth.d @@ -0,0 +1,275 @@ +/***********************************************************************\ +* subauth.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.subauth; + +private import win32.ntdef, win32.windef; + +/+ +alias LONG NTSTATUS; +alias NTSTATUS* PNTSTATUS; ++/ + +enum : ULONG { + MSV1_0_PASSTHRU = 1, + MSV1_0_GUEST_LOGON = 2 +} + +// USER_ALL_INFORMATION.WhichFields (Undocumented) +const ULONG + MSV1_0_VALIDATION_LOGOFF_TIME = 1, + MSV1_0_VALIDATION_KICKOFF_TIME = 2, + MSV1_0_VALIDATION_LOGON_SERVER = 4, + MSV1_0_VALIDATION_LOGON_DOMAIN = 8, + MSV1_0_VALIDATION_SESSION_KEY = 16, + MSV1_0_VALIDATION_USER_FLAGS = 32, + MSV1_0_VALIDATION_USER_ID = 64; + +// ?ActionsPerformed? (Undocumented) +const MSV1_0_SUBAUTH_ACCOUNT_DISABLED = 1; +const MSV1_0_SUBAUTH_PASSWORD = 2; +const MSV1_0_SUBAUTH_WORKSTATIONS = 4; +const MSV1_0_SUBAUTH_LOGON_HOURS = 8; +const MSV1_0_SUBAUTH_ACCOUNT_EXPIRY = 16; +const MSV1_0_SUBAUTH_PASSWORD_EXPIRY = 32; +const MSV1_0_SUBAUTH_ACCOUNT_TYPE = 64; +const MSV1_0_SUBAUTH_LOCKOUT = 128; + +const NEXT_FREE_ACCOUNT_CONTROL_BIT = 131072; + +const SAM_DAYS_PER_WEEK = 7; +const SAM_HOURS_PER_WEEK = 168; +const SAM_MINUTES_PER_WEEK = 10080; + +enum : NTSTATUS { + STATUS_SUCCESS = 0, + STATUS_INVALID_INFO_CLASS = 0xC0000003, + STATUS_NO_SUCH_USER = 0xC0000064, + STATUS_WRONG_PASSWORD = 0xC000006A, + STATUS_PASSWORD_RESTRICTION = 0xC000006C, + STATUS_LOGON_FAILURE = 0xC000006D, + STATUS_ACCOUNT_RESTRICTION = 0xC000006E, + STATUS_INVALID_LOGON_HOURS = 0xC000006F, + STATUS_INVALID_WORKSTATION = 0xC0000070, + STATUS_PASSWORD_EXPIRED = 0xC0000071, + STATUS_ACCOUNT_DISABLED = 0xC0000072, + STATUS_INSUFFICIENT_RESOURCES = 0xC000009A, + STATUS_ACCOUNT_EXPIRED = 0xC0000193, + STATUS_PASSWORD_MUST_CHANGE = 0xC0000224, + STATUS_ACCOUNT_LOCKED_OUT = 0xC0000234 +} + +// Note: undocumented in MSDN +// USER_ALL_INFORMATION.UserAccountControl +const ULONG + USER_ACCOUNT_DISABLED = 1, + USER_HOME_DIRECTORY_REQUIRED = 2, + USER_PASSWORD_NOT_REQUIRED = 4, + USER_TEMP_DUPLICATE_ACCOUNT = 8, + USER_NORMAL_ACCOUNT = 16, + USER_MNS_LOGON_ACCOUNT = 32, + USER_INTERDOMAIN_TRUST_ACCOUNT = 64, + USER_WORKSTATION_TRUST_ACCOUNT = 128, + USER_SERVER_TRUST_ACCOUNT = 256, + USER_DONT_EXPIRE_PASSWORD = 512, + USER_ACCOUNT_AUTO_LOCKED = 1024, + USER_ENCRYPTED_TEXT_PASSWORD_ALLOWED = 2048, + USER_SMARTCARD_REQUIRED = 4096, + USER_TRUSTED_FOR_DELEGATION = 8192, + USER_NOT_DELEGATED = 16384, + USER_USE_DES_KEY_ONLY = 32768, + USER_DONT_REQUIRE_PREAUTH = 65536, + + USER_MACHINE_ACCOUNT_MASK = 448, + USER_ACCOUNT_TYPE_MASK = 472, + USER_ALL_PARAMETERS = 2097152; + +/+ +struct UNICODE_STRING { + USHORT Length; + USHORT MaximumLength; + PWSTR Buffer; +} +alias UNICODE_STRING* PUNICODE_STRING; + +struct STRING { + USHORT Length; + USHORT MaximumLength; + PCHAR Buffer; +} +alias STRING* PSTRING; ++/ + +alias HANDLE SAM_HANDLE; +alias HANDLE* PSAM_HANDLE; + +struct OLD_LARGE_INTEGER { + ULONG LowPart; + LONG HighPart; +} +alias OLD_LARGE_INTEGER* POLD_LARGE_INTEGER; + +enum NETLOGON_LOGON_INFO_CLASS { + NetlogonInteractiveInformation = 1, + NetlogonNetworkInformation, + NetlogonServiceInformation, + NetlogonGenericInformation, + NetlogonInteractiveTransitiveInformation, + NetlogonNetworkTransitiveInformation, + NetlogonServiceTransitiveInformation +} + + +const CYPHER_BLOCK_LENGTH = 8; +const USER_SESSION_KEY_LENGTH = CYPHER_BLOCK_LENGTH * 2; +const CLEAR_BLOCK_LENGTH = 8; + +struct CYPHER_BLOCK { + CHAR data[CYPHER_BLOCK_LENGTH]; +} +alias CYPHER_BLOCK* PCYPHER_BLOCK; + +struct CLEAR_BLOCK { + CHAR data[CLEAR_BLOCK_LENGTH]; +} +alias CLEAR_BLOCK* PCLEAR_BLOCK; + +struct LM_OWF_PASSWORD { + CYPHER_BLOCK data[2]; +} +alias LM_OWF_PASSWORD* PLM_OWF_PASSWORD; + +struct USER_SESSION_KEY { + CYPHER_BLOCK data[2]; +} +alias USER_SESSION_KEY* PUSER_SESSION_KEY; + +alias CLEAR_BLOCK LM_CHALLENGE; +alias LM_CHALLENGE* PLM_CHALLENGE; + +alias LM_OWF_PASSWORD NT_OWF_PASSWORD; +alias NT_OWF_PASSWORD* PNT_OWF_PASSWORD; +alias LM_CHALLENGE NT_CHALLENGE; +alias NT_CHALLENGE* PNT_CHALLENGE; + +struct LOGON_HOURS { + USHORT UnitsPerWeek; + PUCHAR LogonHours; +} +alias LOGON_HOURS* PLOGON_HOURS; + +struct SR_SECURITY_DESCRIPTOR { + ULONG Length; + PUCHAR SecurityDescriptor; +} +alias SR_SECURITY_DESCRIPTOR* PSR_SECURITY_DESCRIPTOR; + +align(4): +struct USER_ALL_INFORMATION { + LARGE_INTEGER LastLogon; + LARGE_INTEGER LastLogoff; + LARGE_INTEGER PasswordLastSet; + LARGE_INTEGER AccountExpires; + LARGE_INTEGER PasswordCanChange; + LARGE_INTEGER PasswordMustChange; + UNICODE_STRING UserName; + UNICODE_STRING FullName; + UNICODE_STRING HomeDirectory; + UNICODE_STRING HomeDirectoryDrive; + UNICODE_STRING ScriptPath; + UNICODE_STRING ProfilePath; + UNICODE_STRING AdminComment; + UNICODE_STRING WorkStations; + UNICODE_STRING UserComment; + UNICODE_STRING Parameters; + UNICODE_STRING LmPassword; + UNICODE_STRING NtPassword; + UNICODE_STRING PrivateData; + SR_SECURITY_DESCRIPTOR SecurityDescriptor; + ULONG UserId; + ULONG PrimaryGroupId; + ULONG UserAccountControl; + ULONG WhichFields; + LOGON_HOURS LogonHours; + USHORT BadPasswordCount; + USHORT LogonCount; + USHORT CountryCode; + USHORT CodePage; + BOOLEAN LmPasswordPresent; + BOOLEAN NtPasswordPresent; + BOOLEAN PasswordExpired; + BOOLEAN PrivateDataSensitive; +} +alias USER_ALL_INFORMATION* PUSER_ALL_INFORMATION; +align: + +struct MSV1_0_VALIDATION_INFO { + LARGE_INTEGER LogoffTime; + LARGE_INTEGER KickoffTime; + UNICODE_STRING LogonServer; + UNICODE_STRING LogonDomainName; + USER_SESSION_KEY SessionKey; + BOOLEAN Authoritative; + ULONG UserFlags; + ULONG WhichFields; + ULONG UserId; +} +alias MSV1_0_VALIDATION_INFO* PMSV1_0_VALIDATION_INFO; + +struct NETLOGON_LOGON_IDENTITY_INFO { + UNICODE_STRING LogonDomainName; + ULONG ParameterControl; + OLD_LARGE_INTEGER LogonId; + UNICODE_STRING UserName; + UNICODE_STRING Workstation; +} +alias NETLOGON_LOGON_IDENTITY_INFO* PNETLOGON_LOGON_IDENTITY_INFO; + +struct NETLOGON_INTERACTIVE_INFO { + NETLOGON_LOGON_IDENTITY_INFO Identity; + LM_OWF_PASSWORD LmOwfPassword; + NT_OWF_PASSWORD NtOwfPassword; +} +alias NETLOGON_INTERACTIVE_INFO* PNETLOGON_INTERACTIVE_INFO; + +struct NETLOGON_GENERIC_INFO { + NETLOGON_LOGON_IDENTITY_INFO Identity; + UNICODE_STRING PackageName; + ULONG DataLength; + PUCHAR LogonData; +} +alias NETLOGON_GENERIC_INFO* PNETLOGON_GENERIC_INFO; + +struct NETLOGON_NETWORK_INFO { + NETLOGON_LOGON_IDENTITY_INFO Identity; + LM_CHALLENGE LmChallenge; + STRING NtChallengeResponse; + STRING LmChallengeResponse; +} +alias NETLOGON_NETWORK_INFO* PNETLOGON_NETWORK_INFO; + +struct NETLOGON_SERVICE_INFO { + NETLOGON_LOGON_IDENTITY_INFO Identity; + LM_OWF_PASSWORD LmOwfPassword; + NT_OWF_PASSWORD NtOwfPassword; +} +alias NETLOGON_SERVICE_INFO* PNETLOGON_SERVICE_INFO; + +extern (Windows) { +NTSTATUS Msv1_0SubAuthenticationRoutine(NETLOGON_LOGON_INFO_CLASS,PVOID, + ULONG,PUSER_ALL_INFORMATION,PULONG,PULONG, + PBOOLEAN,PLARGE_INTEGER,PLARGE_INTEGER); +NTSTATUS Msv1_0SubAuthenticationFilter(NETLOGON_LOGON_INFO_CLASS,PVOID, + ULONG,PUSER_ALL_INFORMATION,PULONG,PULONG, + PBOOLEAN,PLARGE_INTEGER,PLARGE_INTEGER); +NTSTATUS Msv1_0SubAuthenticationRoutineGeneric(PVOID,ULONG,PULONG,PVOID*); +NTSTATUS Msv1_0SubAuthenticationRoutineEx(NETLOGON_LOGON_INFO_CLASS,PVOID, + ULONG,PUSER_ALL_INFORMATION,SAM_HANDLE, + PMSV1_0_VALIDATION_INFO,PULONG); +} ADDED src/win32/tlhelp32.d Index: src/win32/tlhelp32.d ================================================================== --- src/win32/tlhelp32.d +++ src/win32/tlhelp32.d @@ -0,0 +1,169 @@ +/***********************************************************************\ +* tlhelp32.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.tlhelp32; + +private import win32.windef; + +enum : uint { + HF32_DEFAULT = 1, + HF32_SHARED +} + +enum : uint { + LF32_FIXED = 0x1, + LF32_FREE = 0x2, + LF32_MOVEABLE = 0x4 +} + +const MAX_MODULE_NAME32 = 255; + +enum : uint { + TH32CS_SNAPHEAPLIST = 0x1, + TH32CS_SNAPPROCESS = 0x2, + TH32CS_SNAPTHREAD = 0x4, + TH32CS_SNAPMODULE = 0x8, + TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST|TH32CS_SNAPPROCESS|TH32CS_SNAPTHREAD|TH32CS_SNAPMODULE), + TH32CS_INHERIT = 0x80000000 +} + +struct HEAPLIST32 { + DWORD dwSize; + DWORD th32ProcessID; + DWORD th32HeapID; + DWORD dwFlags; +} +alias HEAPLIST32* PHEAPLIST32; +alias HEAPLIST32* LPHEAPLIST32; + +struct HEAPENTRY32 { + DWORD dwSize; + HANDLE hHandle; + DWORD dwAddress; + DWORD dwBlockSize; + DWORD dwFlags; + DWORD dwLockCount; + DWORD dwResvd; + DWORD th32ProcessID; + DWORD th32HeapID; +} +alias HEAPENTRY32* PHEAPENTRY32; +alias HEAPENTRY32* LPHEAPENTRY32; + +struct PROCESSENTRY32W { + DWORD dwSize; + DWORD cntUsage; + DWORD th32ProcessID; + DWORD th32DefaultHeapID; + DWORD th32ModuleID; + DWORD cntThreads; + DWORD th32ParentProcessID; + LONG pcPriClassBase; + DWORD dwFlags; + WCHAR szExeFile[MAX_PATH]; +} +alias PROCESSENTRY32W* PPROCESSENTRY32W; +alias PROCESSENTRY32W* LPPROCESSENTRY32W; + +struct THREADENTRY32 { + DWORD dwSize; + DWORD cntUsage; + DWORD th32ThreadID; + DWORD th32OwnerProcessID; + LONG tpBasePri; + LONG tpDeltaPri; + DWORD dwFlags; +} +alias THREADENTRY32* PTHREADENTRY32; +alias THREADENTRY32* LPTHREADENTRY32; + +struct MODULEENTRY32W { + DWORD dwSize; + DWORD th32ModuleID; + DWORD th32ProcessID; + DWORD GlblcntUsage; + DWORD ProccntUsage; + BYTE *modBaseAddr; + DWORD modBaseSize; + HMODULE hModule; + WCHAR szModule[MAX_MODULE_NAME32 + 1]; + WCHAR szExePath[MAX_PATH]; +} +alias MODULEENTRY32W* PMODULEENTRY32W; +alias MODULEENTRY32W* LPMODULEENTRY32W; + +version(Unicode) { + alias PROCESSENTRY32W PROCESSENTRY32; + alias PPROCESSENTRY32W PPROCESSENTRY32; + alias LPPROCESSENTRY32W LPPROCESSENTRY32; + + alias MODULEENTRY32W MODULEENTRY32; + alias PMODULEENTRY32W PMODULEENTRY32; + alias LPMODULEENTRY32W LPMODULEENTRY32; +} else { + struct PROCESSENTRY32 { + DWORD dwSize; + DWORD cntUsage; + DWORD th32ProcessID; + DWORD th32DefaultHeapID; + DWORD th32ModuleID; + DWORD cntThreads; + DWORD th32ParentProcessID; + LONG pcPriClassBase; + DWORD dwFlags; + CHAR szExeFile[MAX_PATH]; + } + alias PROCESSENTRY32* PPROCESSENTRY32; + alias PROCESSENTRY32* LPPROCESSENTRY32; + + struct MODULEENTRY32 { + DWORD dwSize; + DWORD th32ModuleID; + DWORD th32ProcessID; + DWORD GlblcntUsage; + DWORD ProccntUsage; + BYTE *modBaseAddr; + DWORD modBaseSize; + HMODULE hModule; + char szModule[MAX_MODULE_NAME32 + 1]; + char szExePath[MAX_PATH]; + } + alias MODULEENTRY32* PMODULEENTRY32; + alias MODULEENTRY32* LPMODULEENTRY32; +} + + +extern(Windows) { + BOOL Heap32First(LPHEAPENTRY32,DWORD,DWORD); + BOOL Heap32ListFirst(HANDLE,LPHEAPLIST32); + BOOL Heap32ListNext(HANDLE,LPHEAPLIST32); + BOOL Heap32Next(LPHEAPENTRY32); + BOOL Thread32First(HANDLE,LPTHREADENTRY32); + BOOL Thread32Next(HANDLE,LPTHREADENTRY32); + BOOL Toolhelp32ReadProcessMemory(DWORD,LPCVOID,LPVOID,DWORD,LPDWORD); + HANDLE CreateToolhelp32Snapshot(DWORD,DWORD); + BOOL Module32FirstW(HANDLE,LPMODULEENTRY32W); + BOOL Module32NextW(HANDLE,LPMODULEENTRY32W); + BOOL Process32FirstW(HANDLE,LPPROCESSENTRY32W); + BOOL Process32NextW(HANDLE,LPPROCESSENTRY32W); +} + +version(Unicode) { + alias Module32FirstW Module32First; + alias Module32NextW Module32Next; + alias Process32FirstW Process32First; + alias Process32NextW Process32Next; +} else { + extern(Windows) { + BOOL Module32First(HANDLE,LPMODULEENTRY32); + BOOL Module32Next(HANDLE,LPMODULEENTRY32); + BOOL Process32First(HANDLE,LPPROCESSENTRY32); + BOOL Process32Next(HANDLE,LPPROCESSENTRY32); + } +} ADDED src/win32/tmschema.d Index: src/win32/tmschema.d ================================================================== --- src/win32/tmschema.d +++ src/win32/tmschema.d @@ -0,0 +1,758 @@ +/***********************************************************************\ +* tmschema.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.tmschema; + +/* BUTTON parts */ +enum { + BP_PUSHBUTTON = 1, + BP_RADIOBUTTON = 2, + BP_CHECKBOX = 3, + BP_GROUPBOX = 4, + BP_USERBUTTON = 5 +} + +enum { + CBS_UNCHECKEDNORMAL = 1, + CBS_UNCHECKEDHOT = 2, + CBS_UNCHECKEDPRESSED = 3, + CBS_UNCHECKEDDISABLED = 4, + CBS_CHECKEDNORMAL = 5, + CBS_CHECKEDHOT = 6, + CBS_CHECKEDPRESSED = 7, + CBS_CHECKEDDISABLED = 8, + CBS_MIXEDNORMAL = 9, + CBS_MIXEDHOT = 10, + CBS_MIXEDPRESSED = 11, + CBS_MIXEDDISABLED = 12 +} + +enum { + GBS_NORMAL = 1, + GBS_DISABLED = 2 +} + +enum { + PBS_NORMAL = 1, + PBS_HOT = 2, + PBS_PRESSED = 3, + PBS_DISABLED = 4, + PBS_DEFAULTED = 5 +} + +enum { + RBS_UNCHECKEDNORMAL = 1, + RBS_UNCHECKEDHOT = 2, + RBS_UNCHECKEDPRESSED = 3, + RBS_UNCHECKEDDISABLED = 4, + RBS_CHECKEDNORMAL = 5, + RBS_CHECKEDHOT = 6, + RBS_CHECKEDPRESSED = 7, + RBS_CHECKEDDISABLED = 8 +} + +/* CLOCK parts */ +enum { + CLP_TIME = 1 +} + +enum { + CLS_NORMAL = 1 +} + +/* COMBOBOX parts */ +enum { + CP_DROPDOWNBUTTON = 1 +} + +enum { + CBXS_NORMAL = 1, + CBXS_HOT = 2, + CBXS_PRESSED = 3, + CBXS_DISABLED = 4 +} + +/* EDIT parts */ +enum { + EP_EDITTEXT = 1, + EP_CARET = 2 +} + +enum { + ETS_NORMAL = 1, + ETS_HOT = 2, + ETS_SELECTED = 3, + ETS_DISABLED = 4, + ETS_FOCUSED = 5, + ETS_READONLY = 6, + ETS_ASSIST = 7 +} +/* EXPLORERBAR parts */ +enum { + EBP_HEADERBACKGROUND = 1, + EBP_HEADERCLOSE = 2, + EBP_HEADERPIN = 3, + EBP_IEBARMENU = 4, + EBP_NORMALGROUPBACKGROUND = 5, + EBP_NORMALGROUPCOLLAPSE = 6, + EBP_NORMALGROUPEXPAND = 7, + EBP_NORMALGROUPHEAD = 8, + EBP_SPECIALGROUPBACKGROUND = 9, + EBP_SPECIALGROUPCOLLAPSE = 10, + EBP_SPECIALGROUPEXPAND = 11, + EBP_SPECIALGROUPHEAD = 12 +} + +enum { + EBHC_NORMAL = 1, + EBHC_HOT = 2, + EBHC_PRESSED = 3 +} + +enum { + EBHP_NORMAL = 1, + EBHP_HOT = 2, + EBHP_PRESSED = 3, + EBHP_SELECTEDNORMAL = 4, + EBHP_SELECTEDHOT = 5, + EBHP_SELECTEDPRESSED = 6 +} + +enum { + EBM_NORMAL = 1, + EBM_HOT = 2, + EBM_PRESSED = 3 +} + +enum { + EBNGC_NORMAL = 1, + EBNGC_HOT = 2, + EBNGC_PRESSED = 3 +} + +enum { + EBNGE_NORMAL = 1, + EBNGE_HOT = 2, + EBNGE_PRESSED = 3 +} + +enum { + EBSGC_NORMAL = 1, + EBSGC_HOT = 2, + EBSGC_PRESSED = 3 +} + +enum { + EBSGE_NORMAL = 1, + EBSGE_HOT = 2, + EBSGE_PRESSED = 3 +} + +/* HEADER parts */ +enum { + HP_HEADERITEM = 1, + HP_HEADERITEMLEFT = 2, + HP_HEADERITEMRIGHT = 3, + HP_HEADERSORTARROW = 4 +} + +enum { + HIS_NORMAL = 1, + HIS_HOT = 2, + HIS_PRESSED = 3 +} + +enum { + HILS_NORMAL = 1, + HILS_HOT = 2, + HILS_PRESSED = 3 +} + +enum { + HIRS_NORMAL = 1, + HIRS_HOT = 2, + HIRS_PRESSED = 3 +} + +enum { + HSAS_SORTEDUP = 1, + HSAS_SORTEDDOWN = 2 +} + +/* LISTVIEW parts */ +enum { + LVP_LISTITEM = 1, + LVP_LISTGROUP = 2, + LVP_LISTDETAIL = 3, + LVP_LISTSORTEDDETAIL = 4, + LVP_EMPTYTEXT = 5 +} + +enum { + LIS_NORMAL = 1, + LIS_HOT = 2, + LIS_SELECTED = 3, + LIS_DISABLED = 4, + LIS_SELECTEDNOTFOCUS = 5 +} + +/* MENU parts */ +enum { + MP_MENUITEM = 1, + MP_MENUDROPDOWN = 2, + MP_MENUBARITEM = 3, + MP_MENUBARDROPDOWN = 4, + MP_CHEVRON = 5, + MP_SEPARATOR = 6 +} + +enum { + MS_NORMAL = 1, + MS_SELECTED = 2, + MS_DEMOTED = 3 +} +/* MENUBAND parts */ +enum { + MDP_NEWAPPBUTTON = 1, + MDP_SEPERATOR = 2 +} + +enum { + MDS_NORMAL = 1, + MDS_HOT = 2, + MDS_PRESSED = 3, + MDS_DISABLED = 4, + MDS_CHECKED = 5, + MDS_HOTCHECKED = 6 +} + +/* PAGE parts */ +enum { + PGRP_UP = 1, + PGRP_DOWN = 2, + PGRP_UPHORZ = 3, + PGRP_DOWNHORZ = 4 +} + +enum { + DNS_NORMAL = 1, + DNS_HOT = 2, + DNS_PRESSED = 3, + DNS_DISABLED = 4 +} + +enum { + DNHZS_NORMAL = 1, + DNHZS_HOT = 2, + DNHZS_PRESSED = 3, + DNHZS_DISABLED = 4 +} + +enum { + UPS_NORMAL = 1, + UPS_HOT = 2, + UPS_PRESSED = 3, + UPS_DISABLED = 4 +} + +enum { + UPHZS_NORMAL = 1, + UPHZS_HOT = 2, + UPHZS_PRESSED = 3, + UPHZS_DISABLED = 4 +} + +/* PROGRESS parts */ +enum { + PP_BAR = 1, + PP_BARVERT = 2, + PP_CHUNK = 3, + PP_CHUNKVERT = 4 +} + +/* REBAR parts */ +enum { + RP_GRIPPER = 1, + RP_GRIPPERVERT = 2, + RP_BAND = 3, + RP_CHEVRON = 4, + RP_CHEVRONVERT = 5 +} + +enum { + CHEVS_NORMAL = 1, + CHEVS_HOT = 2, + CHEVS_PRESSED = 3 +} + +/* SCROLLBAR parts */ +enum { + SBP_ARROWBTN = 1, + SBP_THUMBBTNHORZ = 2, + SBP_THUMBBTNVERT = 3, + SBP_LOWERTRACKHORZ = 4, + SBP_UPPERTRACKHORZ = 5, + SBP_LOWERTRACKVERT = 6, + SBP_UPPERTRACKVERT = 7, + SBP_GRIPPERHORZ = 8, + SBP_GRIPPERVERT = 9, + SBP_SIZEBOX = 10 +} + +enum { + ABS_UPNORMAL = 1, + ABS_UPHOT = 2, + ABS_UPPRESSED = 3, + ABS_UPDISABLED = 4, + ABS_DOWNNORMAL = 5, + ABS_DOWNHOT = 6, + ABS_DOWNPRESSED = 7, + ABS_DOWNDISABLED = 8, + ABS_LEFTNORMAL = 9, + ABS_LEFTHOT = 10, + ABS_LEFTPRESSED = 11, + ABS_LEFTDISABLED = 12, + ABS_RIGHTNORMAL = 13, + ABS_RIGHTHOT = 14, + ABS_RIGHTPRESSED = 15, + ABS_RIGHTDISABLED = 16 +} + +enum { + SCRBS_NORMAL = 1, + SCRBS_HOT = 2, + SCRBS_PRESSED = 3, + SCRBS_DISABLED = 4 +} + +enum { + SZB_RIGHTALIGN = 1, + SZB_LEFTALIGN = 2 +} + +/* SPIN parts */ +enum { + SPNP_UP = 1, + SPNP_DOWN = 2, + SPNP_UPHORZ = 3, + SPNP_DOWNHORZ = 4 +} + +/* STARTPANEL parts */ +enum { + SPP_USERPANE = 1, + SPP_MOREPROGRAMS = 2, + SPP_MOREPROGRAMSARROW = 3, + SPP_PROGLIST = 4, + SPP_PROGLISTSEPARATOR = 5, + SPP_PLACESLIST = 6, + SPP_PLACESLISTSEPARATOR = 7, + SPP_LOGOFF = 8, + SPP_LOGOFFBUTTONS = 9, + SPP_USERPICTURE = 10, + SPP_PREVIEW = 11 +} + +enum { + SPLS_NORMAL = 1, + SPLS_HOT = 2, + SPLS_PRESSED = 3 +} + +enum { + SPS_NORMAL = 1, + SPS_HOT = 2, + SPS_PRESSED = 3 +} + +/* STATUS parts */ +enum { + SP_PANE = 1, + SP_GRIPPERPANE = 2, + SP_GRIPPER = 3 +} + +/* TAB parts */ +enum { + TABP_TABITEM = 1, + TABP_TABITEMLEFTEDGE = 2, + TABP_TABITEMRIGHTEDGE = 3, + TABP_TABITEMBOTHEDGE = 4, + TABP_TOPTABITEM = 5, + TABP_TOPTABITEMLEFTEDGE = 6, + TABP_TOPTABITEMRIGHTEDGE = 7, + TABP_TOPTABITEMBOTHEDGE = 8, + TABP_PANE = 9, + TABP_BODY = 10 +} + +enum { + TIS_NORMAL = 1, + TIS_HOT = 2, + TIS_SELECTED = 3, + TIS_DISABLED = 4, + TIS_FOCUSED = 5 +} + +enum { + TIBES_NORMAL = 1, + TIBES_HOT = 2, + TIBES_SELECTED = 3, + TIBES_DISABLED = 4, + TIBES_FOCUSED = 5 +} + +enum { + TILES_NORMAL = 1, + TILES_HOT = 2, + TILES_SELECTED = 3, + TILES_DISABLED = 4, + TILES_FOCUSED = 5 +} + +enum { + TIRES_NORMAL = 1, + TIRES_HOT = 2, + TIRES_SELECTED = 3, + TIRES_DISABLED = 4, + TIRES_FOCUSED = 5 +} + +enum { + TTIS_NORMAL = 1, + TTIS_HOT = 2, + TTIS_SELECTED = 3, + TTIS_DISABLED = 4, + TTIS_FOCUSED = 5 +} + +enum { + TTIBES_NORMAL = 1, + TTIBES_HOT = 2, + TTIBES_SELECTED = 3, + TTIBES_DISABLED = 4, + TTIBES_FOCUSED = 5 +} + +enum { + TTILES_NORMAL = 1, + TTILES_HOT = 2, + TTILES_SELECTED = 3, + TTILES_DISABLED = 4, + TTILES_FOCUSED = 5 +} + +enum { + TTIRES_NORMAL = 1, + TTIRES_HOT = 2, + TTIRES_SELECTED = 3, + TTIRES_DISABLED = 4, + TTIRES_FOCUSED = 5 +} + +/* TASKBAND parts */ +enum { + TDP_GROUPCOUNT = 1, + TDP_FLASHBUTTON = 2, + TDP_FLASHBUTTONGROUPMENU = 3 +} + +/* TASKBAR parts */ +enum { + TBP_BACKGROUNDBOTTOM = 1, + TBP_BACKGROUNDRIGHT = 2, + TBP_BACKGROUNDTOP = 3, + TBP_BACKGROUNDLEFT = 4, + TBP_SIZINGBARBOTTOM = 5, + TBP_SIZINGBARRIGHT = 6, + TBP_SIZINGBARTOP = 7, + TBP_SIZINGBARLEFT = 8 +} + +/* TOOLBAR parts */ +enum { + TP_BUTTON = 1, + TP_DROPDOWNBUTTON = 2, + TP_SPLITBUTTON = 3, + TP_SPLITBUTTONDROPDOWN = 4, + TP_SEPARATOR = 5, + TP_SEPARATORVERT = 6 +} + +enum { + TS_NORMAL = 1, + TS_HOT = 2, + TS_PRESSED = 3, + TS_DISABLED = 4, + TS_CHECKED = 5, + TS_HOTCHECKED = 6 +} + +/* TOOLTIP parts */ +enum { + TTP_STANDARD = 1, + TTP_STANDARDTITLE = 2, + TTP_BALLOON = 3, + TTP_BALLOONTITLE = 4, + TTP_CLOSE = 5 +} + +enum { + TTBS_NORMAL = 1, + TTBS_LINK = 2 +} + +enum { + TTCS_NORMAL = 1, + TTCS_HOT = 2, + TTCS_PRESSED = 3 +} + +enum { + TTSS_NORMAL = 1, + TTSS_LINK = 2 +} + +/* TRACKBAR parts */ +enum { + TKP_TRACK = 1, + TKP_TRACKVERT = 2, + TKP_THUMB = 3, + TKP_THUMBBOTTOM = 4, + TKP_THUMBTOP = 5, + TKP_THUMBVERT = 6, + TKP_THUMBLEFT = 7, + TKP_THUMBRIGHT = 8, + TKP_TICS = 9, + TKP_TICSVERT = 10 +} + +enum { + TUS_NORMAL = 1, + TUS_HOT = 2, + TUS_PRESSED = 3, + TUS_FOCUSED = 4, + TUS_DISABLED = 5 +} + +enum { + TUBS_NORMAL = 1, + TUBS_HOT = 2, + TUBS_PRESSED = 3, + TUBS_FOCUSED = 4, + TUBS_DISABLED = 5 +} + +enum { + TUVLS_NORMAL = 1, + TUVLS_HOT = 2, + TUVLS_PRESSED = 3, + TUVLS_FOCUSED = 4, + TUVLS_DISABLED = 5 +} + +enum { + TUVRS_NORMAL = 1, + TUVRS_HOT = 2, + TUVRS_PRESSED = 3, + TUVRS_FOCUSED = 4, + TUVRS_DISABLED = 5 +} + +enum { + TUTS_NORMAL = 1, + TUTS_HOT = 2, + TUTS_PRESSED = 3, + TUTS_FOCUSED = 4, + TUTS_DISABLED = 5 +} + +enum { + TUVS_NORMAL = 1, + TUVS_HOT = 2, + TUVS_PRESSED = 3, + TUVS_FOCUSED = 4, + TUVS_DISABLED = 5 +} + +enum { + TSS_NORMAL = 1 +} + +enum { + TSVS_NORMAL = 1 +} + +enum { + TRS_NORMAL = 1 +} + +enum { + TRVS_NORMAL = 1 +} + +/* TRAYNOTIFY parts */ +enum { + TNP_BACKGROUND = 1, + TNP_ANIMBACKGROUND = 2 +} + +/* TREEVIEW parts */ +enum { + TVP_TREEITEM = 1, + TVP_GLYPH = 2, + TVP_BRANCH = 3 +} + +enum { + GLPS_CLOSED = 1, + GLPS_OPENED = 2 +} + +enum { + TREIS_NORMAL = 1, + TREIS_HOT = 2, + TREIS_SELECTED = 3, + TREIS_DISABLED = 4, + TREIS_SELECTEDNOTFOCUS = 5 +} + +/* WINDOW parts */ +enum { + WP_CAPTION = 1, + WP_SMALLCAPTION = 2, + WP_MINCAPTION = 3, + WP_SMALLMINCAPTION = 4, + WP_MAXCAPTION = 5, + WP_SMALLMAXCAPTION = 6, + WP_FRAMELEFT = 7, + WP_FRAMERIGHT = 8, + WP_FRAMEBOTTOM = 9, + WP_SMALLFRAMELEFT = 10, + WP_SMALLFRAMERIGHT = 11, + WP_SMALLFRAMEBOTTOM = 12, + WP_SYSBUTTON = 13, + WP_MDISYSBUTTON = 14, + WP_MINBUTTON = 15, + WP_MDIMINBUTTON = 16, + WP_MAXBUTTON = 17, + WP_CLOSEBUTTON = 18, + WP_SMALLCLOSEBUTTON = 19, + WP_MDICLOSEBUTTON = 20, + WP_RESTOREBUTTON = 21, + WP_MDIRESTOREBUTTON = 22, + WP_HELPBUTTON = 23, + WP_MDIHELPBUTTON = 24, + WP_HORZSCROLL = 25, + WP_HORZTHUMB = 26, + WP_VERTSCROLL = 27, + WP_VERTTHUMB = 28, + WP_DIALOG = 29, + WP_CAPTIONSIZINGTEMPLATE = 30, + WP_SMALLCAPTIONSIZINGTEMPLATE = 31, + WP_FRAMELEFTSIZINGTEMPLATE = 32, + WP_SMALLFRAMELEFTSIZINGTEMPLATE = 33, + WP_FRAMERIGHTSIZINGTEMPLATE = 34, + WP_SMALLFRAMERIGHTSIZINGTEMPLATE = 35, + WP_FRAMEBOTTOMSIZINGTEMPLATE = 36, + WP_SMALLFRAMEBOTTOMSIZINGTEMPLATE = 37 +} + +enum { + CS_ACTIVE = 1, + CS_INACTIVE = 2, + CS_DISABLED = 3 +} + +enum { + CBS_NORMAL = 1, + CBS_HOT = 2, + CBS_PUSHED = 3, + CBS_DISABLED = 4 +} + +enum { + FS_ACTIVE = 1, + FS_INACTIVE = 2 +} + +enum { + HBS_NORMAL = 1, + HBS_HOT = 2, + HBS_PUSHED = 3, + HBS_DISABLED = 4 +} + +enum { + HSS_NORMAL = 1, + HSS_HOT = 2, + HSS_PUSHED = 3, + HSS_DISABLED = 4 +} + +enum { + HTS_NORMAL = 1, + HTS_HOT = 2, + HTS_PUSHED = 3, + HTS_DISABLED = 4 +} + +enum { + MAXBS_NORMAL = 1, + MAXBS_HOT = 2, + MAXBS_PUSHED = 3, + MAXBS_DISABLED = 4 +} + +enum { + MXCS_ACTIVE = 1, + MXCS_INACTIVE = 2, + MXCS_DISABLED = 3 +} + +enum { + MINBS_NORMAL = 1, + MINBS_HOT = 2, + MINBS_PUSHED = 3, + MINBS_DISABLED = 4 +} + +enum { + RBS_NORMAL = 1, + RBS_HOT = 2, + RBS_PUSHED = 3, + RBS_DISABLED = 4 +} + +enum { + SBS_NORMAL = 1, + SBS_HOT = 2, + SBS_PUSHED = 3, + SBS_DISABLED = 4 +} + +enum { + MNCS_ACTIVE = 1, + MNCS_INACTIVE = 2, + MNCS_DISABLED = 3 +} + +enum { + VSS_NORMAL = 1, + VSS_HOT = 2, + VSS_PUSHED = 3, + VSS_DISABLED = 4 +} + +enum { + VTS_NORMAL = 1, + VTS_HOT = 2, + VTS_PUSHED = 3, + VTS_DISABLED = 4 +} ADDED src/win32/unknwn.d Index: src/win32/unknwn.d ================================================================== --- src/win32/unknwn.d +++ src/win32/unknwn.d @@ -0,0 +1,55 @@ +/***********************************************************************\ +* unknwn.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.unknwn; + +import win32.objfwd, win32.windef, win32.wtypes; +private import win32.basetyps; + +extern (Windows) { + void* MIDL_user_allocate(size_t); + void MIDL_user_free(void*); +} + + +extern (Windows) { + + interface IUnknown { + HRESULT QueryInterface(IID* riid, void** pvObject); + ULONG AddRef(); + ULONG Release(); + } + + alias IUnknown LPUNKNOWN; + + interface IClassFactory : IUnknown { + HRESULT CreateInstance(IUnknown UnkOuter, IID* riid, void** pvObject); + HRESULT LockServer(BOOL fLock); + } + alias IClassFactory LPCLASSFACTORY; + + /+ + // These do not seem to be necessary (or desirable) for D. + HRESULT IUnknown_QueryInterface_Proxy(IUnknown*,REFIID,void**); + ULONG IUnknown_AddRef_Proxy(IUnknown*); + ULONG IUnknown_Release_Proxy(IUnknown*); + HRESULT IClassFactory_RemoteCreateInstance_Proxy(IClassFactory*,REFIID,IUnknown**); + HRESULT IClassFactory_RemoteLockServer_Proxy(IClassFactory*,BOOL); + HRESULT IClassFactory_CreateInstance_Proxy(IClassFactory*,IUnknown*,REFIID,void**); + HRESULT IClassFactory_CreateInstance_Stub(IClassFactory*,REFIID,IUnknown**); + HRESULT IClassFactory_LockServer_Proxy(IClassFactory*,BOOL); + HRESULT IClassFactory_LockServer_Stub(IClassFactory*,BOOL); + + void IUnknown_QueryInterface_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD); + void IUnknown_AddRef_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD); + void IUnknown_Release_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD); + void IClassFactory_RemoteCreateInstance_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD); + void IClassFactory_RemoteLockServer_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD); + +/ +} ADDED src/win32/usp10.d Index: src/win32/usp10.d ================================================================== --- src/win32/usp10.d +++ src/win32/usp10.d @@ -0,0 +1,334 @@ +/* USP - Unicode Complex Script processor + * http://msdn2.microsoft.com/library/ms776488 */ + + +module win32.usp10; +import win32.windows; + + + +/* Uniscribe Enumeration Types + * http://msdn2.microsoft.com/library/ms776518 */ + +enum : WORD { + SCRIPT_UNDEFINED = 0, +} + +enum : DWORD { + SGCM_RTL = 0x00000001, +} + +enum : DWORD { + SSA_PASSWORD = 0x00000001, + SSA_TAB = 0x00000002, + SSA_CLIP = 0x00000004, + SSA_FIT = 0x00000008, + SSA_DZWG = 0x00000010, + SSA_FALLBACK = 0x00000020, + SSA_BREAK = 0x00000040, + SSA_GLYPHS = 0x00000080, + SSA_RTL = 0x00000100, + SSA_GCP = 0x00000200, + SSA_HOTKEY = 0x00000400, + SSA_METAFILE = 0x00000800, + SSA_LINK = 0x00001000, + SSA_HIDEHOTKEY = 0x00002000, + SSA_HOTKEYONLY = 0x00002400, + SSA_FULLMEASURE = 0x04000000, + SSA_LPKANSIFALLBACK = 0x08000000, + SSA_PIDX = 0x10000000, + SSA_LAYOUTRTL = 0x20000000, + SSA_DONTGLYPH = 0x40000000, + SSA_NOKASHIDA = 0x80000000, +} + +enum : DWORD { + SIC_COMPLEX = 1, + SIC_ASCIIDIGIT = 2, + SIC_NEUTRAL = 4, +} + +enum : DWORD { + SCRIPT_DIGITSUBSTITUTE_CONTEXT, + SCRIPT_DIGITSUBSTITUTE_NONE, + SCRIPT_DIGITSUBSTITUTE_NATIONAL, + SCRIPT_DIGITSUBSTITUTE_TRADITIONAL, +} + +enum SCRIPT_JUSTIFY : WORD { + SCRIPT_JUSTIFY_NONE, + SCRIPT_JUSTIFY_ARABIC_BLANK, + SCRIPT_JUSTIFY_CHARACTER, + SCRIPT_JUSTIFY_RESERVED1, + SCRIPT_JUSTIFY_BLANK, + SCRIPT_JUSTIFY_RESERVED2, + SCRIPT_JUSTIFY_RESERVED3, + SCRIPT_JUSTIFY_ARABIC_NORMAL, + SCRIPT_JUSTIFY_ARABIC_KASHIDA, + SCRIPT_JUSTIFY_ARABIC_ALEF, + SCRIPT_JUSTIFY_ARABIC_HA, + SCRIPT_JUSTIFY_ARABIC_RA, + SCRIPT_JUSTIFY_ARABIC_BA, + SCRIPT_JUSTIFY_ARABIC_BARA, + SCRIPT_JUSTIFY_ARABIC_SEEN, + SCRIPT_JUSTIFY_ARABIC_SEEN_M, +} + + + +/* Uniscribe Structures + * http://msdn2.microsoft.com/library/ms776479 */ + +alias void* SCRIPT_CACHE; +alias void* SCRIPT_STRING_ANALYSIS; + +extern (C) +{ + struct SCRIPT_CONTROL + { + private DWORD _bitfield; + DWORD uDefaultLanguage() { return (_bitfield >> 0) & 0xFFFF; } + DWORD uDefaultLanguage(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFFFF0000) | (val << 0)); return val; } + DWORD fContextDigits() { return (_bitfield >> 16) & 0x1; } + DWORD fContextDigits(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFFFEFFFF) | (val << 16)); return val; } + DWORD fInvertPreBoundDir() { return (_bitfield >> 17) & 0x1; } + DWORD fInvertPreBoundDir(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFFFDFFFF) | (val << 17)); return val; } + DWORD fInvertPostBoundDir() { return (_bitfield >> 18) & 0x1; } + DWORD fInvertPostBoundDir(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFFFBFFFF) | (val << 18)); return val; } + DWORD fLinkStringBefore() { return (_bitfield >> 19) & 0x1; } + DWORD fLinkStringBefore(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFFF7FFFF) | (val << 19)); return val; } + DWORD fLinkStringAfter() { return (_bitfield >> 20) & 0x1; } + DWORD fLinkStringAfter(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFFEFFFFF) | (val << 20)); return val; } + DWORD fNeutralOverride() { return (_bitfield >> 21) & 0x1; } + DWORD fNeutralOverride(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFFDFFFFF) | (val << 21)); return val; } + DWORD fNumericOverride() { return (_bitfield >> 22) & 0x1; } + DWORD fNumericOverride(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFFBFFFFF) | (val << 22)); return val; } + DWORD fLegacyBidiClass() { return (_bitfield >> 23) & 0x1; } + DWORD fLegacyBidiClass(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFFFF7FFFFF) | (val << 23)); return val; } + DWORD fReserved() { return (_bitfield >> 24) & 0xFF; } + DWORD fReserved(DWORD val) { _bitfield = cast(DWORD)((_bitfield & 0xFFFFFFFF00FFFFFF) | (val << 24)); return val; } + } + + struct SCRIPT_STATE + { + private WORD _bitfield; + WORD uBidiLevel() { return cast(WORD)((_bitfield >> 0) & 0x1F); } + WORD uBidiLevel(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFFE0) | (val << 0)); return val; } + WORD fOverrideDirection() { return cast(WORD)((_bitfield >> 5) & 0x1); } + WORD fOverrideDirection(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFFDF) | (val << 5)); return val; } + WORD fInhibitSymSwap() { return cast(WORD)((_bitfield >> 6) & 0x1); } + WORD fInhibitSymSwap(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFFBF) | (val << 6)); return val; } + WORD fCharShape() { return cast(WORD)((_bitfield >> 7) & 0x1); } + WORD fCharShape(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFF7F) | (val << 7)); return val; } + WORD fDigitSubstitute() { return cast(WORD)((_bitfield >> 8) & 0x1); } + WORD fDigitSubstitute(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFEFF) | (val << 8)); return val; } + WORD fInhibitLigate() { return cast(WORD)((_bitfield >> 9) & 0x1); } + WORD fInhibitLigate(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFDFF) | (val << 9)); return val; } + WORD fDisplayZWG() { return cast(WORD)((_bitfield >> 10) & 0x1); } + WORD fDisplayZWG(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFBFF) | (val << 10)); return val; } + WORD fArabicNumContext() { return cast(WORD)((_bitfield >> 11) & 0x1); } + WORD fArabicNumContext(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFF7FF) | (val << 11)); return val; } + WORD fGcpClusters() { return cast(WORD)((_bitfield >> 12) & 0x1); } + WORD fGcpClusters(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFEFFF) | (val << 12)); return val; } + WORD fReserved() { return cast(WORD)((_bitfield >> 13) & 0x1); } + WORD fReserved(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFDFFF) | (val << 13)); return val; } + WORD fEngineReserved() { return cast(WORD)((_bitfield >> 14) & 0x3); } + WORD fEngineReserved(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFF3FFF) | (val << 14)); return val; } + } + + + struct SCRIPT_ANALYSIS + { + private WORD _bitfield; + WORD eScript() { return cast(WORD)((_bitfield >> 0) & 0x3FF); } + WORD eScript(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFC00) | (val << 0)); return val; } + WORD fRTL() { return cast(WORD)((_bitfield >> 10) & 0x1); } + WORD fRTL(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFBFF) | (val << 10)); return val; } + WORD fLayoutRTL() { return cast(WORD)((_bitfield >> 11) & 0x1); } + WORD fLayoutRTL(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFF7FF) | (val << 11)); return val; } + WORD fLinkBefore() { return cast(WORD)((_bitfield >> 12) & 0x1); } + WORD fLinkBefore(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFEFFF) | (val << 12)); return val; } + WORD fLinkAfter() { return cast(WORD)((_bitfield >> 13) & 0x1); } + WORD fLinkAfter(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFDFFF) | (val << 13)); return val; } + WORD fLogicalOrder() { return cast(WORD)((_bitfield >> 14) & 0x1); } + WORD fLogicalOrder(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFBFFF) | (val << 14)); return val; } + WORD fNoGlyphIndex() { return cast(WORD)((_bitfield >> 15) & 0x1); } + WORD fNoGlyphIndex(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFF7FFF) | (val << 15)); return val; } + SCRIPT_STATE s; + } + + + struct SCRIPT_ITEM + { + int iCharPos; + SCRIPT_ANALYSIS a; + } + + struct SCRIPT_VISATTR + { + private WORD _bitfield; + WORD uJustification() { return cast(WORD)((_bitfield >> 0) & 0xF); } + WORD uJustification(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFFF0) | (val << 0)); return val; } + WORD fClusterStart() { return cast(WORD)((_bitfield >> 4) & 0x1); } + WORD fClusterStart(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFFEF) | (val << 4)); return val; } + WORD fDiacritic() { return cast(WORD)((_bitfield >> 5) & 0x1); } + WORD fDiacritic(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFFDF) | (val << 5)); return val; } + WORD fZeroWidth() { return cast(WORD)((_bitfield >> 6) & 0x1); } + WORD fZeroWidth(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFFBF) | (val << 6)); return val; } + WORD fReserved() { return cast(WORD)((_bitfield >> 7) & 0x1); } + WORD fReserved(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFFFF7F) | (val << 7)); return val; } + WORD fShapeReserved() { return cast(WORD)((_bitfield >> 8) & 0xFF); } + WORD fShapeReserved(WORD val) { _bitfield = cast(WORD)((_bitfield & 0xFFFFFFFFFFFF00FF) | (val << 8)); return val; } + } + + struct GOFFSET + { + LONG du; + LONG dv; + } + + struct SCRIPT_LOGATTR + { + BYTE _bitfield; + BYTE fSoftBreak() { return cast(BYTE)((_bitfield >> 0) & 0x1); } + BYTE fSoftBreak(BYTE val) { _bitfield = cast(BYTE)((_bitfield & 0xFFFFFFFFFFFFFFFE) | (val << 0)); return val; } + BYTE fWhiteSpace() { return cast(BYTE)((_bitfield >> 1) & 0x1); } + BYTE fWhiteSpace(BYTE val) { _bitfield = cast(BYTE)((_bitfield & 0xFFFFFFFFFFFFFFFD) | (val << 1)); return val; } + BYTE fCharStop() { return cast(BYTE)((_bitfield >> 2) & 0x1); } + BYTE fCharStop(BYTE val) { _bitfield = cast(BYTE)((_bitfield & 0xFFFFFFFFFFFFFFFB) | (val << 2)); return val; } + BYTE fWordStop() { return cast(BYTE)((_bitfield >> 3) & 0x1); } + BYTE fWordStop(BYTE val) { _bitfield = cast(BYTE)((_bitfield & 0xFFFFFFFFFFFFFFF7) | (val << 3)); return val; } + BYTE fInvalid() { return cast(BYTE)((_bitfield >> 4) & 0x1); } + BYTE fInvalid(BYTE val) { _bitfield = cast(BYTE)((_bitfield & 0xFFFFFFFFFFFFFFEF) | (val << 4)); return val; } + BYTE fReserved() { return cast(BYTE)((_bitfield >> 5) & 0x7); } + BYTE fReserved(BYTE val) { _bitfield = cast(BYTE)((_bitfield & 0xFFFFFFFFFFFFFF1F) | (val << 5)); return val; } + } + + struct SCRIPT_PROPERTIES + { + private DWORD _bitfield1; + DWORD langid() { return (_bitfield1 >> 0) & 0xFFFF; } + DWORD langid(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFFFFF0000) | (val << 0)); return val; } + DWORD fNumeric() { return (_bitfield1 >> 16) & 0x1; } + DWORD fNumeric(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFFFFEFFFF) | (val << 16)); return val; } + DWORD fComplex() { return (_bitfield1 >> 17) & 0x1; } + DWORD fComplex(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFFFFDFFFF) | (val << 17)); return val; } + DWORD fNeedsWordBreaking() { return (_bitfield1 >> 18) & 0x1; } + DWORD fNeedsWordBreaking(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFFFFBFFFF) | (val << 18)); return val; } + DWORD fNeedsCaretInfo() { return (_bitfield1 >> 19) & 0x1; } + DWORD fNeedsCaretInfo(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFFFF7FFFF) | (val << 19)); return val; } + DWORD bCharSet() { return (_bitfield1 >> 20) & 0xFF; } + DWORD bCharSet(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFF00FFFFF) | (val << 20)); return val; } + DWORD fControl() { return (_bitfield1 >> 28) & 0x1; } + DWORD fControl(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFEFFFFFFF) | (val << 28)); return val; } + DWORD fPrivateUseArea() { return (_bitfield1 >> 29) & 0x1; } + DWORD fPrivateUseArea(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFDFFFFFFF) | (val << 29)); return val; } + DWORD fNeedsCharacterJustify() { return (_bitfield1 >> 30) & 0x1; } + DWORD fNeedsCharacterJustify(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFBFFFFFFF) | (val << 30)); return val; } + DWORD fInvalidGlyph() { return (_bitfield1 >> 31) & 0x1; } + DWORD fInvalidGlyph(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFF7FFFFFFF) | (val << 31)); return val; } + private DWORD _bitfield2; + DWORD fInvalidLogAttr() { return (_bitfield2 >> 0) & 0x1; } + DWORD fInvalidLogAttr(DWORD val) { _bitfield2 = cast(DWORD)((_bitfield2 & 0xFFFFFFFFFFFFFFFE) | (val << 0)); return val; } + DWORD fCDM() { return (_bitfield2 >> 1) & 0x1; } + DWORD fCDM(DWORD val) { _bitfield2 = cast(DWORD)((_bitfield2 & 0xFFFFFFFFFFFFFFFD) | (val << 1)); return val; } + DWORD fAmbiguousCharSet() { return (_bitfield2 >> 2) & 0x1; } + DWORD fAmbiguousCharSet(DWORD val) { _bitfield2 = cast(DWORD)((_bitfield2 & 0xFFFFFFFFFFFFFFFB) | (val << 2)); return val; } + DWORD fClusterSizeVaries() { return (_bitfield2 >> 3) & 0x1; } + DWORD fClusterSizeVaries(DWORD val) { _bitfield2 = cast(DWORD)((_bitfield2 & 0xFFFFFFFFFFFFFFF7) | (val << 3)); return val; } + DWORD fRejectInvalid() { return (_bitfield2 >> 4) & 0x1; } + DWORD fRejectInvalid(DWORD val) { _bitfield2 = cast(DWORD)((_bitfield2 & 0xFFFFFFFFFFFFFFEF) | (val << 4)); return val; } + } + + struct SCRIPT_FONTPROPERTIES + { + int cBytes = SCRIPT_FONTPROPERTIES.sizeof; + WORD wgBlank; + WORD wgDefault; + WORD wgInvalid; + WORD wgKashida; + int iKashidaWidth; + } + + struct SCRIPT_TABDEF + { + int cTabStops; + int iScale; + int* pTabStops; + int iTabOrigin; + } + + struct SCRIPT_DIGITSUBSTITUTE + { + private DWORD _bitfield1; + DWORD NationalDigitLanguage() { return (_bitfield1 >> 0) & 0xFFFF; } + DWORD NationalDigitLanguage(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFFFFFF0000) | (val << 0)); return val; } + DWORD TraditionalDigitLanguage() { return (_bitfield1 >> 16) & 0xFFFF; } + DWORD TraditionalDigitLanguage(DWORD val) { _bitfield1 = cast(DWORD)((_bitfield1 & 0xFFFFFFFF0000FFFF) | (val << 16)); return val; } + private DWORD _bitfield2; + DWORD DigitSubstitute() { return (_bitfield2 >> 0) & 0xFF; } + DWORD DigitSubstitute(DWORD val) { _bitfield2 = cast(DWORD)((_bitfield2 & 0xFFFFFFFFFFFFFF00) | (val << 0)); return val; } + DWORD dwReserved; + } + + /* TODO: Windows Vista fearured structs + OPENTYPE_FEATURE_RECORD + OPENTYPE_TAG + SCRIPT_CHARPROP + SCRIPT_GLYPHPROP + TEXTRANGE_PROPERTIES + */ +} + + +/* Uniscribe Functions + * http://msdn2.microsoft.com/library/ms776469 */ +extern (Windows) +{ + HRESULT ScriptFreeCache(SCRIPT_CACHE*); + HRESULT ScriptItemize(CPtr!(WCHAR), int, int, CPtr!(SCRIPT_CONTROL), CPtr!(SCRIPT_STATE), SCRIPT_ITEM*, int*); + HRESULT ScriptLayout(int, CPtr!(BYTE), int*, int*); + HRESULT ScriptShape(HDC, SCRIPT_CACHE*, CPtr!(WCHAR), int, int, SCRIPT_ANALYSIS*, WORD*, WORD*, SCRIPT_VISATTR*, int*); + HRESULT ScriptPlace(HDC, SCRIPT_CACHE*, CPtr!(WORD), int, CPtr!(SCRIPT_VISATTR), SCRIPT_ANALYSIS*, int*, GOFFSET*, ABC*); + HRESULT ScriptTextOut(HDC, SCRIPT_CACHE*, int, int, UINT, CPtr!(RECT), CPtr!(SCRIPT_ANALYSIS), CPtr!(WCHAR), int, CPtr!(WORD), int, CPtr!(int), int*, CPtr!(GOFFSET)); + HRESULT ScriptJustify(CPtr!(SCRIPT_VISATTR), CPtr!(int), int, int, int, int*); + HRESULT ScriptBreak(CPtr!(WCHAR), int, CPtr!(SCRIPT_ANALYSIS), CPtr!(SCRIPT_LOGATTR)); + HRESULT ScriptCPtoX(int, BOOL, int, int, CPtr!(WORD), CPtr!(SCRIPT_VISATTR), CPtr!(int), CPtr!(SCRIPT_ANALYSIS), int*); + HRESULT ScriptXtoCP(int, int, int, CPtr!(WORD), CPtr!(SCRIPT_VISATTR), CPtr!(int), CPtr!(SCRIPT_ANALYSIS), int*, int*); + HRESULT ScriptGetLogicalWidths(CPtr!(SCRIPT_ANALYSIS), int, int, CPtr!(int), CPtr!(WORD), CPtr!(SCRIPT_VISATTR), int*); + HRESULT ScriptApplyLogicalWidth(CPtr!(int), int, int, CPtr!(WORD), CPtr!(SCRIPT_VISATTR), CPtr!(int), CPtr!(SCRIPT_ANALYSIS), ABC*, int*); + HRESULT ScriptGetCMap(HDC, SCRIPT_CACHE*, CPtr!(WCHAR), int, DWORD, WORD*); + HRESULT ScriptGetGlyphABCWidth(HDC, SCRIPT_CACHE*, WORD, ABC*); + HRESULT ScriptGetProperties(CPtr!(SCRIPT_PROPERTIES**), int*); + HRESULT ScriptGetFontProperties(HDC, SCRIPT_CACHE*, SCRIPT_FONTPROPERTIES*); + HRESULT ScriptCacheGetHeight(HDC, SCRIPT_CACHE*, int*); + HRESULT ScriptIsComplex(CPtr!(WCHAR), int, DWORD); + HRESULT ScriptRecordDigitSubstitution(LCID, SCRIPT_DIGITSUBSTITUTE*); + HRESULT ScriptApplyDigitSubstitution(CPtr!(SCRIPT_DIGITSUBSTITUTE), SCRIPT_CONTROL*, SCRIPT_STATE*); + + /* ScriptString Functions + * http://msdn2.microsoft.com/library/ms776485 */ + HRESULT ScriptStringAnalyse(HDC, CPtr!(void), int, int, int, DWORD, int, SCRIPT_CONTROL*, SCRIPT_STATE*, CPtr!(int), SCRIPT_TABDEF*, CPtr!(BYTE), SCRIPT_STRING_ANALYSIS*); + HRESULT ScriptStringFree(SCRIPT_STRING_ANALYSIS*); + CPtr!(SIZE) ScriptString_pSize(SCRIPT_STRING_ANALYSIS); + CPtr!(int) ScriptString_pcOutChars(SCRIPT_STRING_ANALYSIS); + CPtr!(SCRIPT_LOGATTR) ScriptString_pLogAttr(SCRIPT_STRING_ANALYSIS); + HRESULT ScriptStringGetOrder(SCRIPT_STRING_ANALYSIS, UINT*); + HRESULT ScriptStringCPtoX(SCRIPT_STRING_ANALYSIS, int, BOOL, int*); + HRESULT ScriptStringXtoCP(SCRIPT_STRING_ANALYSIS, int, int*, int*); + HRESULT ScriptStringGetLogicalWidths(SCRIPT_STRING_ANALYSIS, int*); + HRESULT ScriptStringValidate(SCRIPT_STRING_ANALYSIS); + HRESULT ScriptStringOut(SCRIPT_STRING_ANALYSIS, int, int, UINT, CPtr!(RECT), int, int, BOOL); + + /* TODO: Windows Vista fearured functions + ScriptGetFontAlternateGlyphs() + ScriptGetFontFeatureTags() + ScriptGetFontLanguageTags() + ScriptGetFontScriptTags() + ScriptItemizeOpenType() + ScriptPlaceOpenType() + ScriptPositionSingleGlyph() + ScriptShapeOpenType() + ScriptSubstituteSingleGlyph() + */ +} ADDED src/win32/uuid.d Index: src/win32/uuid.d ================================================================== --- src/win32/uuid.d +++ src/win32/uuid.d @@ -0,0 +1,4068 @@ +module win32.uuid; + +import win32.basetyps; + +extern(C) { + const IID _DBBMKGUID = {0xF6304BB0, 0xD188, 0x11CD, [0xAD, 0x48, 0x00, 0xAA, 0x00, 0x3C, 0x9C, 0xB6]}; + const IID _DBCIDGUID = {0xFE284700, 0xD188, 0x11CD, [0xAD, 0x48, 0x00, 0xAA, 0x00, 0x3C, 0x9C, 0xB6]}; + const IID _GUID_NAMEONLY = {0xE8BF1170, 0xD188, 0x11CD, [0xAD, 0x48, 0x00, 0xAA, 0x00, 0x3C, 0x9C, 0xB6]}; + const IID ARRAYID_PathProperties = {0x7ECBBA04, 0x2D97, 0x11CF, [0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52]}; + const IID BFID_GRAY_16 = {0xF9D6BC00, 0x449C, 0x11D0, [0x91, 0x8C, 0x00, 0xAA, 0x00, 0x6C, 0x1A, 0x01]}; + const IID BFID_GRAY_8 = {0xD93DE910, 0x449C, 0x11D0, [0x91, 0x8C, 0x00, 0xAA, 0x00, 0x6C, 0x1A, 0x01]}; + const IID BFID_MONOCHROME = {0xE436EB78, 0x524F, 0x11CE, [0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70]}; + const IID BFID_RGB_24 = {0xE436EB7D, 0x524F, 0x11CE, [0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70]}; + const IID BFID_RGB_32 = {0xE436EB7E, 0x524F, 0x11CE, [0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70]}; + const IID BFID_RGB_4 = {0xE436EB79, 0x524F, 0x11CE, [0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70]}; + const IID BFID_RGB_555 = {0xE436EB7C, 0x524F, 0x11CE, [0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70]}; + const IID BFID_RGB_565 = {0xE436EB7B, 0x524F, 0x11CE, [0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70]}; + const IID BFID_RGB_8 = {0xE436EB7A, 0x524F, 0x11CE, [0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70]}; + const IID BFID_RGBA_32 = {0x773C9AC0, 0x3274, 0x11D0, [0xB7, 0x24, 0x00, 0xAA, 0x00, 0x6C, 0x1A, 0x01]}; + const IID BHID_LinkTargetItem = {0x3981E228, 0xF559, 0x11D3, [0x8E, 0x3A, 0x00, 0xC0, 0x4F, 0x68, 0x37, 0xD5]}; + const IID BHID_SFObject = {0x3981E224, 0xF559, 0x11D3, [0x8E, 0x3A, 0x00, 0xC0, 0x4F, 0x68, 0x37, 0xD5]}; + const IID BHID_SFUIObject = {0x3981E225, 0xF559, 0x11D3, [0x8E, 0x3A, 0x00, 0xC0, 0x4F, 0x68, 0x37, 0xD5]}; + const IID BHID_SFViewObject = {0x3981E226, 0xF559, 0x11D3, [0x8E, 0x3A, 0x00, 0xC0, 0x4F, 0x68, 0x37, 0xD5]}; + const IID BHID_Storage = {0x3981E227, 0xF559, 0x11D3, [0x8E, 0x3A, 0x00, 0xC0, 0x4F, 0x68, 0x37, 0xD5]}; + const IID BHID_StorageEnum = {0x4621A4E3, 0xF0D6, 0x4773, [0x8A, 0x9C, 0x46, 0xE7, 0x7B, 0x17, 0x48, 0x40]}; + const IID BHID_Stream = {0x1CEBB3AB, 0x7C10, 0x499A, [0xA4, 0x17, 0x92, 0xCA, 0x16, 0xC4, 0xCB, 0x83]}; + const IID CATID_BrowsableShellExt = {0x00021490, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CATID_BrowseInPlace = {0x00021491, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CATID_ClusCfgCapabilities = {0x4653EEC4, 0x2788, 0x4EBD, [0xA8, 0x31, 0x7E, 0x0D, 0x9F, 0x82, 0xD6, 0xE7]}; + const IID CATID_ClusCfgMemberSetChangeListener = {0x8A43EAD4, 0x10F1, 0x440D, [0x8D, 0xAA, 0x1F, 0xE3, 0x8D, 0x16, 0x98, 0xCD]}; + const IID CATID_ClusCfgResourceTypes = {0x7C4CAE52, 0xCAC9, 0x499D, [0x82, 0xC6, 0xBC, 0x6A, 0x21, 0x77, 0xE5, 0x56]}; + const IID CATID_ClusCfgStartupListeners = {0xDF406DB4, 0x7872, 0x4A99, [0xBB, 0x3C, 0x14, 0xA9, 0xC3, 0x39, 0x33, 0xD1]}; + const IID CATID_CommBand = {0x00021494, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CATID_Control = {0x40FC6ED4, 0x2438, 0x11CF, [0xA3, 0xDB, 0x08, 0x00, 0x36, 0xF1, 0x25, 0x02]}; + const IID CATID_DesignTimeUIActivatableControl = {0xF2BB56D1, 0xDB07, 0x11D1, [0xAA, 0x6B, 0x00, 0x60, 0x97, 0xDB, 0x95, 0x39]}; + const IID CATID_DeskBand = {0x00021492, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CATID_DocObject = {0x40FC6ED8, 0x2438, 0x11CF, [0xA3, 0xDB, 0x08, 0x00, 0x36, 0xF1, 0x25, 0x02]}; + const IID CATID_EnumClusCfgManagedResources = {0x02A34F88, 0xD31A, 0x4688, [0xBD, 0xDD, 0x38, 0xA7, 0x39, 0xE4, 0xF8, 0x9B]}; + const IID CATID_InfoBand = {0x00021493, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CATID_Insertable = {0x40FC6ED3, 0x2438, 0x11CF, [0xA3, 0xDB, 0x08, 0x00, 0x36, 0xF1, 0x25, 0x02]}; + const IID CATID_InternetAware = {0x0DE86A58, 0x2BAA, 0x11CF, [0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52]}; + const IID CATID_IsShortcut = {0x40FC6ED6, 0x2438, 0x11CF, [0xA3, 0xDB, 0x08, 0x00, 0x36, 0xF1, 0x25, 0x02]}; + const IID CATID_MARSHALER = {0x00000003, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CATID_NeverShowExt = {0x40FC6ED7, 0x2438, 0x11CF, [0xA3, 0xDB, 0x08, 0x00, 0x36, 0xF1, 0x25, 0x02]}; + const IID CATID_PersistsToFile = {0x0DE86A56, 0x2BAA, 0x11CF, [0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52]}; + const IID CATID_PersistsToMemory = {0x0DE86A55, 0x2BAA, 0x11CF, [0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52]}; + const IID CATID_PersistsToMoniker = {0x0DE86A51, 0x2BAA, 0x11CF, [0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52]}; + const IID CATID_PersistsToPropertyBag = {0x0DE86A57, 0x2BAA, 0x11CF, [0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52]}; + const IID CATID_PersistsToStorage = {0x0DE86A52, 0x2BAA, 0x11CF, [0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52]}; + const IID CATID_PersistsToStream = {0x0DE86A54, 0x2BAA, 0x11CF, [0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52]}; + const IID CATID_PersistsToStreamInit = {0x0DE86A53, 0x2BAA, 0x11CF, [0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52]}; + const IID CATID_Printable = {0x40FC6ED9, 0x2438, 0x11CF, [0xA3, 0xDB, 0x08, 0x00, 0x36, 0xF1, 0x25, 0x02]}; + const IID CATID_Programmable = {0x40FC6ED5, 0x2438, 0x11CF, [0xA3, 0xDB, 0x08, 0x00, 0x36, 0xF1, 0x25, 0x02]}; + const IID CATID_RequiresDataPathHost = {0x0DE86A50, 0x2BAA, 0x11CF, [0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52]}; + const IID CATID_SafeForInitializing = {0x7DD95802, 0x9882, 0x11CF, [0x9F, 0xA9, 0x00, 0xAA, 0x00, 0x6C, 0x42, 0xC4]}; + const IID CATID_SafeForScripting = {0x7DD95801, 0x9882, 0x11CF, [0x9F, 0xA9, 0x00, 0xAA, 0x00, 0x6C, 0x42, 0xC4]}; + const IID CGID_DocHostCommandHandler = {0xF38BC242, 0xB950, 0x11D1, [0x89, 0x18, 0x00, 0xC0, 0x4F, 0xC2, 0xC8, 0x36]}; + const IID CGID_DownloadHost = {0xE0608728, 0xAE4C, 0x11D1, [0xBA, 0x40, 0x00, 0xC0, 0x4F, 0xB9, 0x2D, 0x79]}; + const IID CGID_Explorer = {0x000214D0, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CGID_ExplorerBarDoc = {0x000214D3, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CGID_InternetExplorer = {0xEB7EED00, 0xF74D, 0x11D2, [0xBB, 0x7F, 0x00, 0x10, 0x4B, 0x35, 0xE7, 0xF9]}; + const IID CGID_MSHTML = {0xDE4BA900, 0x59CA, 0x11CF, [0x95, 0x92, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID CGID_ShellDocView = {0x000214D1, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CGID_ShellServiceObject = {0x000214D2, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CGID_ShortCut = {0x93A68750, 0x951A, 0x11D1, [0x94, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]}; + const IID CLSID_1 = {0xD34F1813, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_2 = {0xD34F1814, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_3 = {0xD34F1815, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_4 = {0xD34F1816, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_5 = {0xD34F1817, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_6 = {0xD34F1818, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_7 = {0xD34F1819, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_8 = {0xD34F181A, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_9 = {0xD34F181B, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_a = {0xD34F181C, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_AboutProtocol = {0x3050F406, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_AccessControlEntry = {0xB75AC000, 0x9BDD, 0x11D0, [0x85, 0x2C, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID CLSID_AccessControlList = {0xB85EA052, 0x9BDD, 0x11D0, [0x85, 0x2C, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID CLSID_AccountDiscovery = {0x3DAB30ED, 0x8132, 0x40BF, [0xA8, 0xBA, 0x7B, 0x50, 0x57, 0xF0, 0xCD, 0x10]}; + const IID CLSID_ACLCustomMRU = {0x6935DB93, 0x21E8, 0x4CCC, [0xBE, 0xB9, 0x9F, 0xE3, 0xC7, 0x7A, 0x29, 0x7A]}; + const IID CLSID_ACLHistory = {0x00BB2764, 0x6A77, 0x11D0, [0xA5, 0x35, 0x00, 0xC0, 0x4F, 0xD7, 0xD0, 0x62]}; + const IID CLSID_ACListISF = {0x03C036F1, 0xA186, 0x11D0, [0x82, 0x4A, 0x00, 0xAA, 0x00, 0x5B, 0x43, 0x83]}; + const IID CLSID_ACLMRU = {0x6756A641, 0xDE71, 0x11D0, [0x83, 0x1B, 0x00, 0xAA, 0x00, 0x5B, 0x43, 0x83]}; + const IID CLSID_ACLMulti = {0x00BB2765, 0x6A77, 0x11D0, [0xA5, 0x35, 0x00, 0xC0, 0x4F, 0xD7, 0xD0, 0x62]}; + const IID CLSID_ActiveDesktop = {0x75048700, 0xEF1F, 0x11D0, [0x98, 0x88, 0x00, 0x60, 0x97, 0xDE, 0xAC, 0xF9]}; + const IID CLSID_AdapterInfo = {0x6F9942C9, 0xC1B1, 0x4AB5, [0x93, 0xDA, 0x60, 0x58, 0x99, 0x1D, 0xC8, 0xF3]}; + const IID CLSID_AddrControl = {0x00000348, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_AddressBarParser = {0xE0E11A09, 0x5CB8, 0x4B6C, [0x83, 0x32, 0xE0, 0x07, 0x20, 0xA1, 0x68, 0xF2]}; + const IID CLSID_ADsDSOObject = {0x549365D0, 0xEC26, 0x11CF, [0x83, 0x10, 0x00, 0xAA, 0x00, 0xB5, 0x05, 0xDB]}; + const IID CLSID_ADsSecurityUtility = {0xF270C64A, 0xFFB8, 0x4AE4, [0x85, 0xFE, 0x3A, 0x75, 0xE5, 0x34, 0x79, 0x66]}; + const IID CLSID_ADSystemInfo = {0x50B6327F, 0xAFD1, 0x11D2, [0x9C, 0xB9, 0x00, 0x00, 0xF8, 0x7A, 0x36, 0x9E]}; + const IID CLSID_AlgSetup = {0x27D0BCCC, 0x344D, 0x4287, [0xAF, 0x37, 0x0C, 0x72, 0xC1, 0x61, 0xC1, 0x4C]}; + const IID CLSID_AllClasses = {0x00000330, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_AlphabeticalCategorizer = {0x3C2654C6, 0x7372, 0x4F6B, [0xB3, 0x10, 0x55, 0xD6, 0x12, 0x8F, 0x49, 0xD2]}; + const IID CLSID_AnchorClick = {0x13D5413C, 0x33B9, 0x11D2, [0x95, 0xA7, 0x00, 0xC0, 0x4F, 0x8E, 0xCB, 0x02]}; + const IID CLSID_AnimationComposerFactory = {0x332B2A56, 0xF86C, 0x47E7, [0x86, 0x02, 0xFC, 0x42, 0xAC, 0x8B, 0x99, 0x20]}; + const IID CLSID_AnimationComposerSiteFactory = {0x16911A65, 0xD41D, 0x4431, [0x87, 0xF7, 0xE7, 0x57, 0xF4, 0xD0, 0x3B, 0xD8]}; + const IID CLSID_ApplicationGatewayServices = {0xF8ADE1D3, 0x49DF, 0x4B75, [0x90, 0x05, 0xEF, 0x95, 0x08, 0xE6, 0xA3, 0x37]}; + const IID CLSID_AutoComplete = {0x00BB2763, 0x6A77, 0x11D0, [0xA5, 0x35, 0x00, 0xC0, 0x4F, 0xD7, 0xD0, 0x62]}; + const IID CLSID_AutoDiscoveryProvider = {0xC4F3D5BF, 0x4809, 0x44E3, [0x84, 0xA4, 0x36, 0x8B, 0x6B, 0x33, 0xB0, 0xB4]}; + const IID CLSID_AutoplayForSlideShow = {0x00E7B358, 0xF65B, 0x4DCF, [0x83, 0xDF, 0xCD, 0x02, 0x6B, 0x94, 0xBF, 0xD4]}; + const IID CLSID_b = {0xD34F181D, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_BackgroundCopyManager = {0x4991D34B, 0x80A1, 0x4291, [0x83, 0xB6, 0x33, 0x28, 0x36, 0x6B, 0x90, 0x97]}; + const IID CLSID_BackgroundCopyManager1_5 = {0xF087771F, 0xD74F, 0x4C1A, [0xBB, 0x8A, 0xE1, 0x6A, 0xCA, 0x91, 0x24, 0xEA]}; + const IID CLSID_BackgroundCopyQMgr = {0x69AD4AEE, 0x51BE, 0x439B, [0xA9, 0x2C, 0x86, 0xAE, 0x49, 0x0E, 0x8B, 0x30]}; + const IID CLSID_BackLink = {0xFCBF906F, 0x4080, 0x11D1, [0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID CLSID_BasicImageEffects = {0x16B280C8, 0xEE70, 0x11D1, [0x90, 0x66, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID CLSID_BasicImageEffectsPP = {0x16B280C9, 0xEE70, 0x11D1, [0x90, 0x66, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID CLSID_BlockFormats = {0x3050F831, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_BridgeTerminal = {0x8EBAE7A3, 0x8943, 0x11D1, [0x96, 0xB8, 0x00, 0xC0, 0x4F, 0xB6, 0xE8, 0x66]}; + const IID CLSID_c = {0xD34F181E, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_CAccPropServices = {0xB5F8350B, 0x0548, 0x48B1, [0xA6, 0xEE, 0x88, 0xBD, 0x00, 0xB4, 0xA5, 0xE7]}; + const IID CLSID_CActiveIMM = {0x4955DD33, 0xB159, 0x11D0, [0x8F, 0xCF, 0x00, 0xAA, 0x00, 0x6B, 0xCC, 0x59]}; + const IID CLSID_CAnchorBrowsePropertyPage = {0x3050F3BB, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CaseIgnoreList = {0x15F88A55, 0x4680, 0x11D1, [0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID CLSID_CCheckBox = {0x3050F686, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CColorPropPage = {0x0BE35201, 0x8F91, 0x11CE, [0x9D, 0xE3, 0x00, 0xAA, 0x00, 0x4B, 0xB8, 0x51]}; + const IID CLSID_CCombobox = {0x3050F678, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CDBurn = {0xFBEB8A05, 0xBEEE, 0x4442, [0x80, 0x4E, 0x40, 0x9D, 0x6C, 0x45, 0x15, 0xE9]}; + const IID CLSID_CDebugDocumentHelper = {0x83B8BCA6, 0x687C, 0x11D0, [0xA4, 0x05, 0x00, 0xAA, 0x00, 0x60, 0x27, 0x5C]}; + const IID CLSID_CDeviceRect = {0x3050F6D4, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CDirect3DRM = {0x4516EC41, 0x8F20, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID CLSID_CDirect3DRMAnimation = {0x4FA35698, 0x623F, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID CLSID_CDirect3DRMAnimationSet = {0x4FA35699, 0x623F, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID CLSID_CDirect3DRMClippedVisual = {0x5434E72D, 0x6D66, 0x11D1, [0xBB, 0x0B, 0x00, 0x00, 0xF8, 0x75, 0x86, 0x5A]}; + const IID CLSID_CDirect3DRMDevice = {0x4FA3568E, 0x623F, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID CLSID_CDirect3DRMFace = {0x4FA35693, 0x623F, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID CLSID_CDirect3DRMFrame = {0x4FA35690, 0x623F, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID CLSID_CDirect3DRMFrameInterpolator = {0x0DE9EAA2, 0x3B84, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID CLSID_CDirect3DRMLight = {0x4FA35694, 0x623F, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID CLSID_CDirect3DRMLightInterpolator = {0x0DE9EAA6, 0x3B84, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID CLSID_CDirect3DRMMaterial = {0x4FA35697, 0x623F, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID CLSID_CDirect3DRMMaterialInterpolato = {0x0DE9EAA7, 0x3B84, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID CLSID_CDirect3DRMMesh = {0x4FA35691, 0x623F, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID CLSID_CDirect3DRMMeshBuilder = {0x4FA35692, 0x623F, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID CLSID_CDirect3DRMMeshInterpolator = {0x0DE9EAA3, 0x3B84, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID CLSID_CDirect3DRMProgressiveMesh = {0x4516EC40, 0x8F20, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID CLSID_CDirect3DRMShadow = {0x4FA3569B, 0x623F, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID CLSID_CDirect3DRMTexture = {0x4FA35695, 0x623F, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID CLSID_CDirect3DRMTextureInterpolator = {0x0DE9EAA8, 0x3B84, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID CLSID_CDirect3DRMUserVisual = {0x4FA3569A, 0x623F, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID CLSID_CDirect3DRMViewport = {0x4FA3568F, 0x623F, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID CLSID_CDirect3DRMViewportInterpolato = {0x0DE9EAA1, 0x3B84, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID CLSID_CDirect3DRMWrap = {0x4FA35696, 0x623F, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID CLSID_CDirectXFile = {0x4516EC43, 0x8F20, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID CLSID_CDLAgent = {0x7D559C10, 0x9FE9, 0x11D0, [0x93, 0xF7, 0x00, 0xAA, 0x00, 0x59, 0xCE, 0x02]}; + const IID CLSID_CdlProtocol = {0x3DD53D40, 0x7B8B, 0x11D0, [0xB0, 0x13, 0x00, 0xAA, 0x00, 0x59, 0xCE, 0x02]}; + const IID CLSID_CDocBrowsePropertyPage = {0x3050F3B4, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CDownloadBehavior = {0x3050F5BE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CEnroll = {0x43F8F289, 0x7A20, 0x11D0, [0x8F, 0x06, 0x00, 0xC0, 0x4F, 0xC2, 0x95, 0xE1]}; + const IID CLSID_CEventObj = {0x3050F48A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CFontPropPage = {0x0BE35200, 0x8F91, 0x11CE, [0x9D, 0xE3, 0x00, 0xAA, 0x00, 0x4B, 0xB8, 0x51]}; + const IID CLSID_CFSIconOverlayManager = {0x63B51F81, 0xC868, 0x11D0, [0x99, 0x9C, 0x00, 0xC0, 0x4F, 0xD6, 0x55, 0xE1]}; + const IID CLSID_ChannelAgent = {0xE3A8BDE6, 0xABCE, 0x11D0, [0xBC, 0x4B, 0x00, 0xC0, 0x4F, 0xD9, 0x29, 0xDB]}; + const IID CLSID_ChannelMgr = {0xB3CDAE90, 0xD170, 0x11D0, [0x80, 0x2B, 0x00, 0xC0, 0x4F, 0xD7, 0x5D, 0x13]}; + const IID CLSID_CHeaderFooter = {0x3050F6CD, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CHtmlArea = {0x3050F64F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CIEOptionElement = {0x3050F698, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CIESelectElement = {0x3050F688, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CImageBrowsePropertyPage = {0x3050F3B3, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_ClassInstallFilter = {0x32B533BB, 0xEDAE, 0x11D0, [0xBD, 0x5A, 0x00, 0xAA, 0x00, 0xB9, 0x2A, 0xF1]}; + const IID CLSID_CLayoutRect = {0x3050F664, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_ClientCaps = {0x7E8BC44E, 0xAEFF, 0x11D1, [0x89, 0xC2, 0x00, 0xC0, 0x4F, 0xB6, 0xBF, 0xC4]}; + const IID CLSID_ClusAppWiz = {0x24F97150, 0x6689, 0x11D1, [0x9A, 0xA7, 0x00, 0xC0, 0x4F, 0xB9, 0x3A, 0x80]}; + const IID CLSID_ClusCfgAsyncEvictCleanup = {0x08F35A72, 0xD7C4, 0x42F4, [0xBC, 0x81, 0x51, 0x88, 0xE1, 0x9D, 0xFA, 0x39]}; + const IID CLSID_ClusCfgEvictCleanup = {0x32152BE9, 0xDE8C, 0x4D0F, [0x81, 0xB0, 0xBC, 0xE5, 0xD1, 0x1E, 0xCB, 0x00]}; + const IID CLSID_ClusCfgResTypeGenScript = {0xD513C4F4, 0x1D34, 0x44A3, [0x83, 0xD4, 0x81, 0x26, 0x51, 0xDB, 0x89, 0x18]}; + const IID CLSID_ClusCfgResTypeMajorityNodeSet = {0xB6870B44, 0x0BDF, 0x4B46, [0xAC, 0x1F, 0x6C, 0x69, 0x1B, 0x62, 0x2E, 0xDF]}; + const IID CLSID_ClusCfgResTypeServices = {0x6A370489, 0xBB52, 0x4727, [0xB7, 0x40, 0x08, 0xF4, 0x94, 0x16, 0x34, 0x78]}; + const IID CLSID_ClusCfgStartupNotify = {0x105EEEB6, 0x32FD, 0x4EA9, [0x89, 0x12, 0x84, 0x3A, 0x7F, 0xF3, 0xCA, 0x2D]}; + const IID CLSID_ClusCfgWizard = {0x1919C4FE, 0x6F46, 0x4027, [0x97, 0x7D, 0x0E, 0xF1, 0xC8, 0xF2, 0x63, 0x72]}; + const IID CLSID_ClusterConfigurationType = {0xBF3768C2, 0xE0E5, 0x448F, [0x95, 0x2B, 0x25, 0xD4, 0x33, 0x2D, 0xEF, 0xA3]}; + const IID CLSID_CMimeTypes = {0x3050F3FE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CMLangConvertCharset = {0xD66D6F99, 0xCDAA, 0x11D0, [0xB8, 0x22, 0x00, 0xC0, 0x4F, 0xC9, 0xB3, 0x1F]}; + const IID CLSID_CMLangString = {0xC04D65CF, 0xB70D, 0x11D0, [0xB1, 0x88, 0x00, 0xAA, 0x00, 0x38, 0xC9, 0x69]}; + const IID CLSID_CMultiLanguage = {0x275C23E2, 0x3747, 0x11D0, [0x9F, 0xEA, 0x00, 0xAA, 0x00, 0x3F, 0x86, 0x46]}; + const IID CLSID_CNetCfg = {0x5B035261, 0x40F9, 0x11D1, [0xAA, 0xEC, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID CLSID_CoDitherToRGB8 = {0xA860CE50, 0x3910, 0x11D0, [0x86, 0xFC, 0x00, 0xA0, 0xC9, 0x13, 0xF7, 0x50]}; + const IID CLSID_CoMapMIMEToCLSID = {0x30C3B080, 0x30FB, 0x11D0, [0xB7, 0x24, 0x00, 0xAA, 0x00, 0x6C, 0x1A, 0x01]}; + const IID CLSID_ComBinding = {0x00000328, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_CommonQuery = {0x83BC5EC0, 0x6F2A, 0x11D0, [0xA1, 0xC4, 0x00, 0xAA, 0x00, 0xC1, 0x6E, 0x65]}; + const IID CLSID_CompositePP = {0x25B33660, 0xFD83, 0x11D1, [0x8A, 0xDE, 0x44, 0x45, 0x53, 0x54, 0x00, 0x01]}; + const IID CLSID_ConnectionCommonUi = {0x7007ACD1, 0x3202, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID CLSID_ConnectionManager = {0xBA126AD1, 0x2166, 0x11D1, [0xB1, 0xD0, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID CLSID_ConnectionManager2 = {0xBA126AE5, 0x2166, 0x11D1, [0xB1, 0xD0, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID CLSID_ControlPanel = {0x21EC2020, 0x3AEA, 0x1069, [0xA2, 0xDD, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D]}; + const IID CLSID_ConvertVBX = {0xFB8F0822, 0x0164, 0x101B, [0x84, 0xED, 0x08, 0x00, 0x2B, 0x2E, 0xC7, 0x13]}; + const IID CLSID_ConvolvePP = {0x25B33661, 0xFD83, 0x11D1, [0x8A, 0xDE, 0x44, 0x45, 0x53, 0x54, 0x00, 0x01]}; + const IID CLSID_COpsProfile = {0x3050F402, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CoSniffStream = {0x6A01FDA0, 0x30DF, 0x11D0, [0xB7, 0x24, 0x00, 0xAA, 0x00, 0x6C, 0x1A, 0x01]}; + const IID CLSID_CPersistDataPeer = {0x3050F487, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CPersistHistory = {0x3050F4C8, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CPersistShortcut = {0x3050F4C6, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CPersistSnapshot = {0x3050F4C9, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CPersistUserData = {0x3050F48E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CPicturePropPage = {0x0BE35202, 0x8F91, 0x11CE, [0x9D, 0xE3, 0x00, 0xAA, 0x00, 0x4B, 0xB8, 0x51]}; + const IID CLSID_CPlugins = {0x3050F3FF, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CRadioButton = {0x3050F69C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CrBarn = {0xC3BDF740, 0x0B58, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID CLSID_CrBarnPP = {0xFCAD7436, 0xF151, 0x4110, [0xB9, 0x7E, 0x32, 0xBD, 0x60, 0x7F, 0xBD, 0xB8]}; + const IID CLSID_CrBlindPP = {0x213052C1, 0x100D, 0x11D2, [0x8B, 0x82, 0x00, 0xA0, 0xC9, 0x3C, 0x09, 0xB2]}; + const IID CLSID_CrBlinds = {0x00C429C0, 0x0BA9, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID CLSID_CrBlur = {0x7312498D, 0xE87A, 0x11D1, [0x81, 0xE0, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID CLSID_CrBlurPP = {0x623E287E, 0xFC0E, 0x11D1, [0x9A, 0x77, 0x00, 0x00, 0xF8, 0x75, 0x6A, 0x10]}; + const IID CLSID_CrEmboss = {0xF515306D, 0x0156, 0x11D2, [0x81, 0xEA, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID CLSID_CrEngrave = {0xF515306E, 0x0156, 0x11D2, [0x81, 0xEA, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID CLSID_CrInset = {0x93073C40, 0x0BA5, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID CLSID_CrIris = {0x3F69F351, 0x0379, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID CLSID_CrIrisPP = {0x80DE22C4, 0x0F44, 0x11D2, [0x8B, 0x82, 0x00, 0xA0, 0xC9, 0x3C, 0x09, 0xB2]}; + const IID CLSID_CrRadialWipe = {0x424B71AF, 0x0695, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID CLSID_CrRadialWipePP = {0x33D932E0, 0x0F48, 0x11D2, [0x8B, 0x82, 0x00, 0xA0, 0xC9, 0x3C, 0x09, 0xB2]}; + const IID CLSID_CrSlide = {0x810E402F, 0x056B, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID CLSID_CrSlidePP = {0xCC8CEDE1, 0x1003, 0x11D2, [0x8B, 0x82, 0x00, 0xA0, 0xC9, 0x3C, 0x09, 0xB2]}; + const IID CLSID_CrSpiral = {0xACA97E00, 0x0C7D, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID CLSID_CrSpiralPP = {0xC6A4FE81, 0x1022, 0x11D2, [0x8B, 0x82, 0x00, 0xA0, 0xC9, 0x3C, 0x09, 0xB2]}; + const IID CLSID_CrStretch = {0x7658F2A2, 0x0A83, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID CLSID_CrStretchPP = {0x15FB95E0, 0x0F77, 0x11D2, [0x8B, 0x82, 0x00, 0xA0, 0xC9, 0x3C, 0x09, 0xB2]}; + const IID CLSID_CrWheel = {0x5AE1DAE0, 0x1461, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID CLSID_CrWheelPP = {0xFA9F6180, 0x1464, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID CLSID_CrZigzag = {0xE6E73D20, 0x0C8A, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID CLSID_CrZigzagPP = {0x1559A3C1, 0x102B, 0x11D2, [0x8B, 0x82, 0x00, 0xA0, 0xC9, 0x3C, 0x09, 0xB2]}; + const IID CLSID_CScriptErrorList = {0xEFD01300, 0x160F, 0x11D2, [0xBB, 0x2E, 0x00, 0x80, 0x5F, 0xF7, 0xEF, 0xCA]}; + const IID CLSID_CScrollBar = {0x3050F68A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CSliderBar = {0x3050F68E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CSpinButton = {0x3050F68C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CTemplatePrinter = {0x3050F6B3, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_CUrlHistory = {0x3C374A40, 0xBAE4, 0x11CF, [0xBF, 0x7D, 0x00, 0xAA, 0x00, 0x69, 0x46, 0xEE]}; + const IID CLSID_CURLSearchHook = {0xCFBFAE00, 0x17A6, 0x11D0, [0x99, 0xCB, 0x00, 0xC0, 0x4F, 0xD6, 0x44, 0x97]}; + const IID CLSID_CurrentUserClasses = {0x00000332, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_CUtilityButton = {0x3050F6B0, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_d = {0xD34F181F, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_DAArray = {0x9CDE7340, 0x3C20, 0x11D0, [0xA3, 0x30, 0x00, 0xAA, 0x00, 0xB9, 0x2C, 0x03]}; + const IID CLSID_DABbox2 = {0x50B4791E, 0x4731, 0x11D0, [0x89, 0x12, 0x00, 0xC0, 0x4F, 0xC2, 0xA0, 0xCA]}; + const IID CLSID_DABbox3 = {0x4A933703, 0xE36F, 0x11D0, [0x9B, 0x99, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x1D]}; + const IID CLSID_DABehavior = {0xC46C1BF2, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DABoolean = {0x25B0F91D, 0xD23D, 0x11D0, [0x9B, 0x85, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x1D]}; + const IID CLSID_DACamera = {0xC46C1BD9, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DAColor = {0xC46C1BC9, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DADashStyle = {0x9CADDC0C, 0xAD56, 0x11D1, [0x9F, 0xF8, 0x00, 0xC0, 0x4F, 0xA3, 0x21, 0x95]}; + const IID CLSID_DAEndStyle = {0xFC54BEAB, 0x5B12, 0x11D1, [0x8E, 0x7B, 0x00, 0xC0, 0x4F, 0xC2, 0x9D, 0x46]}; + const IID CLSID_DAEvent = {0x3E2487C4, 0x8709, 0x11D0, [0xB1, 0x77, 0x00, 0xC0, 0x4F, 0xC2, 0xA0, 0xCA]}; + const IID CLSID_DAFontStyle = {0x3F3DA01A, 0x4705, 0x11D0, [0x87, 0x10, 0x00, 0xC0, 0x4F, 0xC2, 0x9D, 0x46]}; + const IID CLSID_DAGeometry = {0xC46C1BDB, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DAImage = {0xC46C1BCB, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DAImportationResult = {0x283807B3, 0x2C60, 0x11D0, [0xA3, 0x1D, 0x00, 0xAA, 0x00, 0xB9, 0x2C, 0x03]}; + const IID CLSID_DAJoinStyle = {0xFC54BEAA, 0x5B12, 0x11D1, [0x8E, 0x7B, 0x00, 0xC0, 0x4F, 0xC2, 0x9D, 0x46]}; + const IID CLSID_DALineStyle = {0x283807B8, 0x2C60, 0x11D0, [0xA3, 0x1D, 0x00, 0xAA, 0x00, 0xB9, 0x2C, 0x03]}; + const IID CLSID_DAMatte = {0xC46C1BC3, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DAMicrophone = {0xC46C1BE3, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DAMontage = {0xC46C1BD7, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DANumber = {0xC46C1BC7, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DAPair = {0xBC0BFD34, 0xD21D, 0x11D0, [0x93, 0x85, 0x00, 0xC0, 0x4F, 0xB6, 0xBD, 0x36]}; + const IID CLSID_DAPath2 = {0xC46C1BCF, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DAPickableResult = {0x34F681D0, 0x3640, 0x11CF, [0x92, 0x94, 0x00, 0xAA, 0x00, 0xB8, 0xA7, 0x33]}; + const IID CLSID_DAPoint2 = {0xC46C1BD5, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DAPoint3 = {0xC46C1BE5, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DarwinAppPublisher = {0xCFCCC7A0, 0xA282, 0x11D1, [0x90, 0x82, 0x00, 0x60, 0x08, 0x05, 0x93, 0x82]}; + const IID CLSID_DASound = {0xC46C1BD1, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DAStatics = {0xC46C1BF3, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DAString = {0xC46C1BD3, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DataChannel = {0xBBB36F15, 0x408D, 0x4056, [0x8C, 0x27, 0x92, 0x08, 0x43, 0xD4, 0x0B, 0xE5]}; + const IID CLSID_DATransform2 = {0xC46C1BDF, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DATransform3 = {0xC46C1BC5, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DATuple = {0x283807B7, 0x2C60, 0x11D0, [0xA3, 0x1D, 0x00, 0xAA, 0x00, 0xB9, 0x2C, 0x03]}; + const IID CLSID_DAUserData = {0x283807B4, 0x2C60, 0x11D0, [0xA3, 0x1D, 0x00, 0xAA, 0x00, 0xB9, 0x2C, 0x03]}; + const IID CLSID_DAVector2 = {0xC46C1BE1, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DAVector3 = {0xC46C1BC0, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DAView = {0x960D8EFF, 0xE494, 0x11D1, [0xAB, 0x75, 0x00, 0xC0, 0x4F, 0xD9, 0x2B, 0x6B]}; + const IID CLSID_DAViewerControl = {0xC46C1BEB, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DAViewerControlWindowed = {0xC46C1BF1, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID CLSID_DCOMAccessControl = {0x0000031D, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_DebugHelper = {0x0BFCC060, 0x8C1D, 0x11D0, [0xAC, 0xCD, 0x00, 0xAA, 0x00, 0x60, 0x27, 0x5C]}; + const IID CLSID_DeCompMimeFilter = {0x8F6B0360, 0xB80D, 0x11D0, [0xA9, 0xB3, 0x00, 0x60, 0x97, 0x94, 0x23, 0x11]}; + const IID CLSID_DefaultDebugSessionProvider = {0x834128A2, 0x51F4, 0x11D0, [0x8F, 0x20, 0x00, 0x80, 0x5F, 0x2C, 0xD0, 0x64]}; + const IID CLSID_DirectDraw = {0xD7B70EE0, 0x4340, 0x11CF, [0xB0, 0x63, 0x00, 0x20, 0xAF, 0xC2, 0xCD, 0x35]}; + const IID CLSID_DirectDrawClipper = {0x593817A0, 0x7DB3, 0x11CF, [0xA2, 0xDE, 0x00, 0xAA, 0x00, 0xB9, 0x33, 0x56]}; + const IID CLSID_DirectDrawFactory2 = {0xB9DC4790, 0x4AF1, 0x11D1, [0x8C, 0x4C, 0x00, 0xC0, 0x4F, 0xD9, 0x30, 0xC5]}; + const IID CLSID_DirectInput = {0x25E609E0, 0xB259, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID CLSID_DirectInputDevice = {0x25E609E1, 0xB259, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID CLSID_DirectMusic = {0x636B9F10, 0x0C7D, 0x11D1, [0x95, 0xB2, 0x00, 0x20, 0xAF, 0xDC, 0x74, 0x21]}; + const IID CLSID_DirectMusicBand = {0x79BA9E00, 0xB6EE, 0x11D1, [0x86, 0xBE, 0x00, 0xC0, 0x4F, 0xBF, 0x8F, 0xEF]}; + const IID CLSID_DirectMusicBandTrack = {0xD2AC2894, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicChordMap = {0xD2AC288F, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicChordMapTrack = {0xD2AC2896, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicChordTrack = {0xD2AC288B, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicCollection = {0x480FF4B0, 0x28B2, 0x11D1, [0xBE, 0xF7, 0x00, 0xC0, 0x4F, 0xBF, 0x8F, 0xEF]}; + const IID CLSID_DirectMusicCommandTrack = {0xD2AC288C, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicComposer = {0xD2AC2890, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicGraph = {0xD2AC2884, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicLoader = {0xD2AC2892, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicMotifTrack = {0xD2AC288E, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicMuteTrack = {0xD2AC2898, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicPerformance = {0xD2AC2881, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicSegment = {0xD2AC2882, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicSegmentState = {0xD2AC2883, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicSeqTrack = {0xD2AC2886, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicSignPostTrack = {0xF17E8672, 0xC3B4, 0x11D1, [0x87, 0x0B, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicStyle = {0xD2AC288A, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicStyleTrack = {0xD2AC288D, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicSynth = {0x58C2B4D0, 0x46E7, 0x11D1, [0x89, 0xAC, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29]}; + const IID CLSID_DirectMusicSysExTrack = {0xD2AC2887, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicTempoTrack = {0xD2AC2885, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectMusicTimeSigTrack = {0xD2AC2888, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID CLSID_DirectPlay = {0xD1EB6D20, 0x8923, 0x11D0, [0x9D, 0x97, 0x00, 0xA0, 0xC9, 0x0A, 0x43, 0xCB]}; + const IID CLSID_DirectPlayLobby = {0x2FE8F810, 0xB2A5, 0x11D0, [0xA7, 0x87, 0x00, 0x00, 0xF8, 0x03, 0xAB, 0xFC]}; + const IID CLSID_DirectSound = {0x47D4D946, 0x62E8, 0x11CF, [0x93, 0xBC, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID CLSID_DirectSoundCapture = {0xB0210780, 0x89CD, 0x11D0, [0xAF, 0x08, 0x00, 0xA0, 0xC9, 0x25, 0xCD, 0x16]}; + const IID CLSID_DispatchMapper = {0xE9225296, 0xC759, 0x11D1, [0xA0, 0x2B, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID CLSID_DNWithBinary = {0x7E99C0A3, 0xF935, 0x11D2, [0xBA, 0x96, 0x00, 0xC0, 0x4F, 0xB6, 0xD0, 0xD1]}; + const IID CLSID_DNWithString = {0x334857CC, 0xF934, 0x11D2, [0xBA, 0x96, 0x00, 0xC0, 0x4F, 0xB6, 0xD0, 0xD1]}; + const IID CLSID_DocFileColumnProvider = {0x24F14F01, 0x7B1C, 0x11D1, [0x83, 0x8F, 0x00, 0x00, 0xF8, 0x04, 0x61, 0xCF]}; + const IID CLSID_DocHostUIHandler = {0x7057E952, 0xBD1B, 0x11D1, [0x89, 0x19, 0x00, 0xC0, 0x4F, 0xC2, 0xC8, 0x36]}; + const IID CLSID_DOMChildrenCollection = {0x3050F5AA, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_DOMDocument = {0x2933BF90, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID CLSID_DOMFreeThreadedDocument = {0x2933BF91, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID CLSID_DragDropHelper = {0x4657278A, 0x411B, 0x11D2, [0x83, 0x9A, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0xD0]}; + const IID CLSID_DriveSizeCategorizer = {0x94357B53, 0xCA29, 0x4B78, [0x83, 0xAE, 0xE8, 0xFE, 0x74, 0x09, 0x13, 0x4F]}; + const IID CLSID_DriveTypeCategorizer = {0xB0A8F3CF, 0x4333, 0x4BAB, [0x88, 0x73, 0x1C, 0xCB, 0x1C, 0xAD, 0xA4, 0x8B]}; + const IID CLSID_DsDisplaySpecifier = {0x1AB4A8C0, 0x6A0B, 0x11D2, [0xAD, 0x49, 0x00, 0xC0, 0x4F, 0xA3, 0x1A, 0x86]}; + const IID CLSID_DsDomainTreeBrowser = {0x1698790A, 0xE2B4, 0x11D0, [0xB0, 0xB1, 0x00, 0xC0, 0x4F, 0xD8, 0xDC, 0xA6]}; + const IID CLSID_DsFindAdvanced = {0x83EE3FE3, 0x57D9, 0x11D0, [0xB9, 0x32, 0x00, 0xA0, 0x24, 0xAB, 0x2D, 0xBB]}; + const IID CLSID_DsFindComputer = {0x16006700, 0x87AD, 0x11D0, [0x91, 0x40, 0x00, 0xAA, 0x00, 0xC1, 0x6E, 0x65]}; + const IID CLSID_DsFindContainer = {0xC1B3CBF2, 0x886A, 0x11D0, [0x91, 0x40, 0x00, 0xAA, 0x00, 0xC1, 0x6E, 0x65]}; + const IID CLSID_DsFindDomainController = {0x538C7B7E, 0xD25E, 0x11D0, [0x97, 0x42, 0x00, 0xA0, 0xC9, 0x06, 0xAF, 0x45]}; + const IID CLSID_DsFindFrsMembers = {0x94CE4B18, 0xB3D3, 0x11D1, [0xB9, 0xB4, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0xB0]}; + const IID CLSID_DsFindObjects = {0x83EE3FE1, 0x57D9, 0x11D0, [0xB9, 0x32, 0x00, 0xA0, 0x24, 0xAB, 0x2D, 0xBB]}; + const IID CLSID_DsFindPeople = {0x83EE3FE2, 0x57D9, 0x11D0, [0xB9, 0x32, 0x00, 0xA0, 0x24, 0xAB, 0x2D, 0xBB]}; + const IID CLSID_DsFindPrinter = {0xB577F070, 0x7EE2, 0x11D0, [0x91, 0x3F, 0x00, 0xAA, 0x00, 0xC1, 0x6E, 0x65]}; + const IID CLSID_DsFindVolume = {0xC1B3CBF1, 0x886A, 0x11D0, [0x91, 0x40, 0x00, 0xAA, 0x00, 0xC1, 0x6E, 0x65]}; + const IID CLSID_DsFolderProperties = {0x9E51E0D0, 0x6E0F, 0x11D2, [0x96, 0x01, 0x00, 0xC0, 0x4F, 0xA3, 0x1A, 0x86]}; + const IID CLSID_DsPropertyPages = {0x0D45D530, 0x764B, 0x11D0, [0xA1, 0xCA, 0x00, 0xAA, 0x00, 0xC1, 0x6E, 0x65]}; + const IID CLSID_DsQuery = {0x8A23E65E, 0x31C2, 0x11D0, [0x89, 0x1C, 0x00, 0xA0, 0x24, 0xAB, 0x2D, 0xBB]}; + const IID CLSID_DWbemClassObject = {0x64AB3751, 0x12BC, 0x11D1, [0x9E, 0x61, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8]}; + const IID CLSID_DWbemContext = {0x752FF212, 0xF7B7, 0x11D0, [0x9E, 0x4D, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8]}; + const IID CLSID_DWbemLocator = {0xCB7CA032, 0xF729, 0x11D0, [0x9E, 0x4D, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8]}; + const IID CLSID_DX2D = {0x473AA80B, 0x4577, 0x11D1, [0x81, 0xA8, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID CLSID_DXFade = {0x16B280C5, 0xEE70, 0x11D1, [0x90, 0x66, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID CLSID_DXGradient = {0xC6365470, 0xF667, 0x11D1, [0x90, 0x67, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID CLSID_DXLUTBuilder = {0x1E54333B, 0x2A00, 0x11D1, [0x81, 0x98, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID CLSID_DXRasterizer = {0x8652CE55, 0x9E80, 0x11D1, [0x90, 0x53, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID CLSID_DXSurface = {0x0E890F83, 0x5F79, 0x11D1, [0x90, 0x43, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID CLSID_DXSurfaceModifier = {0x3E669F1D, 0x9C23, 0x11D1, [0x90, 0x53, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID CLSID_DXTAlpha = {0xADC6CB82, 0x424C, 0x11D2, [0x95, 0x2A, 0x00, 0xC0, 0x4F, 0xA3, 0x4F, 0x05]}; + const IID CLSID_DXTAlphaImageLoader = {0x0C7EFBDE, 0x0303, 0x4C6F, [0xA4, 0xF7, 0x31, 0xFA, 0x2B, 0xE5, 0xE3, 0x97]}; + const IID CLSID_DXTAlphaImageLoaderPP = {0x8C80CE2D, 0x850D, 0x47DA, [0x8E, 0xCD, 0x55, 0x02, 0x35, 0x62, 0xD1, 0x67]}; + const IID CLSID_DXTAlphaPP = {0xD687A7E0, 0x4BA4, 0x11D2, [0x8A, 0xDE, 0x00, 0xA0, 0xC9, 0x8E, 0x65, 0x27]}; + const IID CLSID_DXTaskManager = {0x4CB26C03, 0xFF93, 0x11D0, [0x81, 0x7E, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID CLSID_DXTBarn = {0xEC9BA17D, 0x60B5, 0x462B, [0xA6, 0xD8, 0x14, 0xB8, 0x90, 0x57, 0xE2, 0x2A]}; + const IID CLSID_DXTBlinds = {0x9A4A4A51, 0xFB3A, 0x4F4B, [0x9B, 0x57, 0xA2, 0x91, 0x2A, 0x28, 0x97, 0x69]}; + const IID CLSID_DXTCheckerBoard = {0xB3EE7802, 0x8224, 0x4787, [0xA1, 0xEA, 0xF0, 0xDE, 0x16, 0xDE, 0xAB, 0xD3]}; + const IID CLSID_DXTCheckerBoardPP = {0xCBF47525, 0x98D2, 0x45EA, [0xB8, 0x43, 0xFD, 0x21, 0x3D, 0x93, 0x2B, 0x10]}; + const IID CLSID_DXTChroma = {0x421516C1, 0x3CF8, 0x11D2, [0x95, 0x2A, 0x00, 0xC0, 0x4F, 0xA3, 0x4F, 0x05]}; + const IID CLSID_DXTChromaPP = {0xEC7E0760, 0x4C76, 0x11D2, [0x8A, 0xDE, 0x00, 0xA0, 0xC9, 0x8E, 0x65, 0x27]}; + const IID CLSID_DXTComposite = {0x9A43A844, 0x0831, 0x11D1, [0x81, 0x7F, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID CLSID_DXTConvolution = {0x2BC0EF29, 0xE6BA, 0x11D1, [0x81, 0xDD, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID CLSID_DXTDropShadow = {0xADC6CB86, 0x424C, 0x11D2, [0x95, 0x2A, 0x00, 0xC0, 0x4F, 0xA3, 0x4F, 0x05]}; + const IID CLSID_DXTDropShadowPP = {0xEC7E0761, 0x4C76, 0x11D2, [0x8A, 0xDE, 0x00, 0xA0, 0xC9, 0x8E, 0x65, 0x27]}; + const IID CLSID_DXTFilter = {0x385A91BC, 0x1E8A, 0x4E4A, [0xA7, 0xA6, 0xF4, 0xFC, 0x1E, 0x6C, 0xA1, 0xBD]}; + const IID CLSID_DXTFilterBehavior = {0x649EEC1E, 0xB579, 0x4E8C, [0xBB, 0x3B, 0x49, 0x97, 0xF8, 0x42, 0x65, 0x36]}; + const IID CLSID_DXTFilterCollection = {0xA7EE7F34, 0x3BD1, 0x427F, [0x92, 0x31, 0xF9, 0x41, 0xE9, 0xB7, 0xE1, 0xFE]}; + const IID CLSID_DXTFilterFactory = {0x81397204, 0xF51A, 0x4571, [0x8D, 0x7B, 0xDC, 0x03, 0x05, 0x21, 0xAA, 0xBD]}; + const IID CLSID_DXTGlow = {0x9F8E6421, 0x3D9B, 0x11D2, [0x95, 0x2A, 0x00, 0xC0, 0x4F, 0xA3, 0x4F, 0x05]}; + const IID CLSID_DXTGlowPP = {0xEC7E0764, 0x4C76, 0x11D2, [0x8A, 0xDE, 0x00, 0xA0, 0xC9, 0x8E, 0x65, 0x27]}; + const IID CLSID_DXTGradientD = {0x623E2882, 0xFC0E, 0x11D1, [0x9A, 0x77, 0x00, 0x00, 0xF8, 0x75, 0x6A, 0x10]}; + const IID CLSID_DXTGradientWipe = {0xB96F67A2, 0x30C2, 0x47E8, [0xBD, 0x85, 0x70, 0xA2, 0xC9, 0x48, 0xB5, 0x0F]}; + const IID CLSID_DXTICMFilter = {0xA1BFB370, 0x5A9F, 0x4429, [0xBB, 0x72, 0xB1, 0x3E, 0x2F, 0xEA, 0xED, 0xEF]}; + const IID CLSID_DXTICMFilterPP = {0x1958FB12, 0x31E6, 0x47E5, [0xAA, 0x49, 0xB2, 0x3D, 0x12, 0xC8, 0x53, 0xE6]}; + const IID CLSID_DXTInset = {0x76F363F2, 0x7E9F, 0x4ED7, [0xA6, 0xA7, 0xEE, 0x30, 0x35, 0x1B, 0x66, 0x28]}; + const IID CLSID_DXTIris = {0x049F2CE6, 0xD996, 0x4721, [0x89, 0x7A, 0xDB, 0x15, 0xCE, 0x9E, 0xB7, 0x3D]}; + const IID CLSID_DXTLabel = {0x54702535, 0x2606, 0x11D1, [0x99, 0x9C, 0x00, 0x00, 0xF8, 0x75, 0x6A, 0x10]}; + const IID CLSID_DXTLight = {0xF9EFBEC2, 0x4302, 0x11D2, [0x95, 0x2A, 0x00, 0xC0, 0x4F, 0xA3, 0x4F, 0x05]}; + const IID CLSID_DXTLightPP = {0x694AF25F, 0x124D, 0x11D3, [0x91, 0xD5, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID CLSID_DXTMaskFilter = {0x3A04D93B, 0x1EDD, 0x4F3F, [0xA3, 0x75, 0xA0, 0x3E, 0xC1, 0x95, 0x72, 0xC4]}; + const IID CLSID_DXTMatrix = {0x4ABF5A06, 0x5568, 0x4834, [0xBE, 0xE3, 0x32, 0x7A, 0x6D, 0x95, 0xA6, 0x85]}; + const IID CLSID_DXTMatrixPP = {0xC591103A, 0xB3A8, 0x4D47, [0xA3, 0xF7, 0x2A, 0xEE, 0xE4, 0xB8, 0x01, 0x3F]}; + const IID CLSID_DXTMetaBurnFilm = {0x107045D1, 0x06E0, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID CLSID_DXTMetaCenterPeel = {0xAA0D4D0C, 0x06A3, 0x11D2, [0x8F, 0x98, 0x00, 0xC0, 0x4F, 0xB9, 0x2E, 0xB7]}; + const IID CLSID_DXTMetaColorFade = {0x2A54C908, 0x07AA, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID CLSID_DXTMetaFlowMotion = {0x2A54C90B, 0x07AA, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID CLSID_DXTMetaGriddler = {0x2A54C911, 0x07AA, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID CLSID_DXTMetaGriddler2 = {0x2A54C913, 0x07AA, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID CLSID_DXTMetaJaws = {0x2A54C904, 0x07AA, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID CLSID_DXTMetaLightWipe = {0x107045C8, 0x06E0, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID CLSID_DXTMetaLiquid = {0xAA0D4D0A, 0x06A3, 0x11D2, [0x8F, 0x98, 0x00, 0xC0, 0x4F, 0xB9, 0x2E, 0xB7]}; + const IID CLSID_DXTMetaPageTurn = {0xAA0D4D08, 0x06A3, 0x11D2, [0x8F, 0x98, 0x00, 0xC0, 0x4F, 0xB9, 0x2E, 0xB7]}; + const IID CLSID_DXTMetaPeelPiece = {0xAA0D4D10, 0x06A3, 0x11D2, [0x8F, 0x98, 0x00, 0xC0, 0x4F, 0xB9, 0x2E, 0xB7]}; + const IID CLSID_DXTMetaPeelSmall = {0xAA0D4D0E, 0x06A3, 0x11D2, [0x8F, 0x98, 0x00, 0xC0, 0x4F, 0xB9, 0x2E, 0xB7]}; + const IID CLSID_DXTMetaPeelSplit = {0xAA0D4D12, 0x06A3, 0x11D2, [0x8F, 0x98, 0x00, 0xC0, 0x4F, 0xB9, 0x2E, 0xB7]}; + const IID CLSID_DXTMetaRadialScaleWipe = {0x107045CA, 0x06E0, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID CLSID_DXTMetaRipple = {0xAA0D4D03, 0x06A3, 0x11D2, [0x8F, 0x98, 0x00, 0xC0, 0x4F, 0xB9, 0x2E, 0xB7]}; + const IID CLSID_DXTMetaRoll = {0x9C61F46E, 0x0530, 0x11D2, [0x8F, 0x98, 0x00, 0xC0, 0x4F, 0xB9, 0x2E, 0xB7]}; + const IID CLSID_DXTMetaThreshold = {0x2A54C915, 0x07AA, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID CLSID_DXTMetaTwister = {0x107045CF, 0x06E0, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID CLSID_DXTMetaVacuum = {0x2A54C90D, 0x07AA, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID CLSID_DXTMetaWater = {0x107045C5, 0x06E0, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID CLSID_DXTMetaWhiteOut = {0x107045CC, 0x06E0, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID CLSID_DXTMetaWormHole = {0x0E6AE022, 0x0C83, 0x11D2, [0x8C, 0xD4, 0x00, 0x10, 0x4B, 0xC7, 0x5D, 0x9A]}; + const IID CLSID_DXTMotionBlur = {0xDD13DE77, 0xD3BA, 0x42D4, [0xB5, 0xC6, 0x77, 0x45, 0xFA, 0x4E, 0x2D, 0x4B]}; + const IID CLSID_DXTMotionBlurPP = {0x926433E1, 0x7F8F, 0x4BC6, [0xBE, 0xC4, 0x8C, 0x12, 0x6C, 0x6B, 0x7D, 0xC4]}; + const IID CLSID_DXTRadialWipe = {0x164484A9, 0x35D9, 0x4FB7, [0x9F, 0xAB, 0x48, 0x27, 0x3B, 0x96, 0xAA, 0x1D]}; + const IID CLSID_DXTRandomBars = {0x2E7700B7, 0x27C4, 0x437F, [0x9F, 0xBF, 0x1E, 0x8B, 0xE2, 0x81, 0x75, 0x66]}; + const IID CLSID_DXTRandomBarsPP = {0xE3E6AE11, 0x7FDC, 0x40C4, [0xAF, 0xBF, 0x1D, 0xCE, 0xA8, 0x28, 0x62, 0xCC]}; + const IID CLSID_DXTRandomDissolve = {0xF7F4A1B6, 0x8E87, 0x452F, [0xA2, 0xD7, 0x30, 0x77, 0xF5, 0x08, 0xDB, 0xC0]}; + const IID CLSID_DXTransformFactory = {0xD1FE6762, 0xFC48, 0x11D0, [0x88, 0x3A, 0x3C, 0x8B, 0x00, 0xC1, 0x00, 0x00]}; + const IID CLSID_DXTRedirect = {0x42B07B28, 0x2280, 0x4937, [0xB0, 0x35, 0x02, 0x93, 0xFB, 0x81, 0x27, 0x81]}; + const IID CLSID_DXTRevealTrans = {0xE31E87C4, 0x86EA, 0x4940, [0x9B, 0x8A, 0x5B, 0xD5, 0xD1, 0x79, 0xA7, 0x37]}; + const IID CLSID_DXTScale = {0x555278E2, 0x05DB, 0x11D1, [0x88, 0x3A, 0x3C, 0x8B, 0x00, 0xC1, 0x00, 0x00]}; + const IID CLSID_DXTShadow = {0xE71B4063, 0x3E59, 0x11D2, [0x95, 0x2A, 0x00, 0xC0, 0x4F, 0xA3, 0x4F, 0x05]}; + const IID CLSID_DXTShadowPP = {0xEC7E0765, 0x4C76, 0x11D2, [0x8A, 0xDE, 0x00, 0xA0, 0xC9, 0x8E, 0x65, 0x27]}; + const IID CLSID_DXTSlide = {0xD1C5A1E7, 0xCC47, 0x4E32, [0xBD, 0xD2, 0x4B, 0x3C, 0x5F, 0xC5, 0x0A, 0xF5]}; + const IID CLSID_DXTSpiral = {0x4A03DCB9, 0x6E17, 0x4A39, [0x88, 0x45, 0x4E, 0xE7, 0xDC, 0x53, 0x31, 0xA5]}; + const IID CLSID_DXTStretch = {0xF088DE73, 0xBDD0, 0x4E3C, [0x81, 0xF8, 0x6D, 0x32, 0xF4, 0xFE, 0x9D, 0x28]}; + const IID CLSID_DXTStrips = {0x63A4B1FC, 0x259A, 0x4A5B, [0x81, 0x29, 0xA8, 0x3B, 0x8C, 0x9E, 0x6F, 0x4F]}; + const IID CLSID_DXTStripsPP = {0xFEC0B7EE, 0x7AEC, 0x4067, [0x9E, 0xE1, 0xFA, 0xCF, 0xB7, 0xCE, 0x9A, 0xF9]}; + const IID CLSID_DXTWave = {0xADC6CB88, 0x424C, 0x11D2, [0x95, 0x2A, 0x00, 0xC0, 0x4F, 0xA3, 0x4F, 0x05]}; + const IID CLSID_DXTWavePP = {0xF12456C0, 0x4C9E, 0x11D2, [0x8A, 0xDE, 0x00, 0xA0, 0xC9, 0x8E, 0x65, 0x27]}; + const IID CLSID_DXTWipe = {0xAF279B30, 0x86EB, 0x11D1, [0x81, 0xBF, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID CLSID_DXTWipePP = {0x7FFE4D08, 0xFBFD, 0x11D1, [0x9A, 0x77, 0x00, 0x00, 0xF8, 0x75, 0x6A, 0x10]}; + const IID CLSID_DXTZigzag = {0x23E26328, 0x3928, 0x40F2, [0x95, 0xE5, 0x93, 0xCA, 0xD6, 0x90, 0x16, 0xEB]}; + const IID CLSID_EAPOLManager = {0xBA126AE4, 0x2166, 0x11D1, [0xB1, 0xD0, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID CLSID_Email = {0x8F92A857, 0x478E, 0x11D1, [0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID CLSID_EnumAdapterInfo = {0x6F9942CA, 0xC1B1, 0x4AB5, [0x93, 0xDA, 0x60, 0x58, 0x99, 0x1D, 0xC8, 0xF3]}; + const IID CLSID_EVENTQUEUE = {0x6E0FF466, 0x339E, 0x11D1, [0xBE, 0x5B, 0x00, 0xC0, 0x4F, 0xC9, 0xE2, 0xBB]}; + const IID CLSID_EXTENDEDERRORINFO = {0xC8B522CF, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID CLSID_FadePP = {0x16B280C6, 0xEE70, 0x11D1, [0x90, 0x66, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID CLSID_FaxNumber = {0xA5062215, 0x4681, 0x11D1, [0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID CLSID_FilePlaybackTerminal = {0x0CB9914C, 0x79CD, 0x47DC, [0xAD, 0xB0, 0x32, 0x7F, 0x47, 0xCE, 0xFB, 0x20]}; + const IID CLSID_FileProtocol = {0x79EAC9E7, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID CLSID_FileRecordingTerminal = {0x521F3D06, 0xC3D0, 0x4511, [0x86, 0x17, 0x86, 0xB9, 0xA7, 0x83, 0xDA, 0x77]}; + const IID CLSID_FileRecordingTrack = {0xBF14A2E4, 0xE88B, 0x4EF5, [0x97, 0x40, 0x5A, 0xC5, 0xD0, 0x22, 0xF8, 0xC9]}; + const IID CLSID_FileSearchBand = {0xC4EE31F3, 0x4768, 0x11D2, [0xBE, 0x5C, 0x00, 0xA0, 0xC9, 0xA8, 0x3D, 0xA1]}; + const IID CLSID_FileSysColumnProvider = {0x0D2E74C4, 0x3C34, 0x11D2, [0xA2, 0x7E, 0x00, 0xC0, 0x4F, 0xC3, 0x08, 0x71]}; + const IID CLSID_FileTerminal = {0xAAF578F1, 0xDC70, 0x11D0, [0x8E, 0xD3, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID CLSID_FolderShortcut = {0x0AFACED1, 0xE828, 0x11D1, [0x91, 0x87, 0xB5, 0x32, 0xF1, 0xE9, 0x57, 0x5D]}; + const IID CLSID_FolderViewHost = {0x20B1CB23, 0x6968, 0x4EB9, [0xB7, 0xD4, 0xA6, 0x6D, 0x00, 0xD0, 0x7C, 0xEE]}; + const IID CLSID_FontNames = {0x3050F83A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_FramesCollection = {0x3050F7F6, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_FreeSpaceCategorizer = {0xB5607793, 0x24AC, 0x44C7, [0x82, 0xE2, 0x83, 0x17, 0x26, 0xAA, 0x6C, 0xB7]}; + const IID CLSID_FtpProtocol = {0x79EAC9E3, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID CLSID_GblComponentCategoriesMgr = {0x0002E006, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_GLOBAL_BROADCAST = {0xD34F1810, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_GopherProtocol = {0x79EAC9E4, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID CLSID_GradientPP = {0x623E2880, 0xFC0E, 0x11D1, [0x9A, 0x77, 0x00, 0x00, 0xF8, 0x75, 0x6A, 0x10]}; + const IID CLSID_HandsetTerminal = {0xAAF578EB, 0xDC70, 0x11D0, [0x8E, 0xD3, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID CLSID_HeadsetTerminal = {0xAAF578ED, 0xDC70, 0x11D0, [0x8E, 0xD3, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID CLSID_HNetCfgMgr = {0x46C166AA, 0x3108, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID CLSID_Hold = {0xB3AD3E13, 0x4080, 0x11D1, [0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID CLSID_HomeNetAutoConfigService = {0x9A8EA3B5, 0x572E, 0x4CB3, [0x9E, 0xB9, 0xEC, 0x68, 0x9A, 0xC5, 0x75, 0xAE]}; + const IID CLSID_HomePage = {0x766BF2AE, 0xD650, 0x11D1, [0x98, 0x11, 0x00, 0xC0, 0x4F, 0xC3, 0x1D, 0x2E]}; + const IID CLSID_HostDialogHelper = {0x429AF92C, 0xA51F, 0x11D2, [0x86, 0x1E, 0x00, 0xC0, 0x4F, 0xA3, 0x5C, 0x89]}; + const IID CLSID_HTADocument = {0x3050F5C8, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTCAttachBehavior = {0x3050F5F5, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTCDefaultDispatch = {0x3050F4FC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTCDescBehavior = {0x3050F5DD, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTCEventBehavior = {0x3050F4FE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTCMethodBehavior = {0x3050F630, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTCPropertyBehavior = {0x3050F5DE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLAnchorElement = {0x3050F248, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLAppBehavior = {0x3050F5CB, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLApplication = {0x3050F4D8, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLAreaElement = {0x3050F283, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLAreasCollection = {0x3050F4CA, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLAttributeCollection = {0x3050F4CC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLBaseElement = {0x3050F276, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLBaseFontElement = {0x3050F282, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLBGsound = {0x3050F370, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLBlockElement = {0x3050F281, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLBody = {0x3050F24A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLBRElement = {0x3050F280, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLButtonElement = {0x3050F2C6, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLCommentElement = {0x3050F317, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLCurrentStyle = {0x3050F3DC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLDDElement = {0x3050F27F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLDefaults = {0x3050F6C8, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLDialog = {0x3050F28A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLDivElement = {0x3050F27E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLDivPosition = {0x3050F249, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HtmlDlgSafeHelper = {0x3050F819, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLDListElement = {0x3050F27D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLDocument = {0x25336920, 0x03F9, 0x11CF, [0x8F, 0xD0, 0x00, 0xAA, 0x00, 0x68, 0x6F, 0x13]}; + const IID CLSID_HTMLDOMAttribute = {0x3050F4B2, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLDOMImplementation = {0x3050F80E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLDOMTextNode = {0x3050F4BA, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLDTElement = {0x3050F27C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLElementCollection = {0x3050F4CB, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLEmbed = {0x3050F25D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLFieldSetElement = {0x3050F3E8, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLFontElement = {0x3050F27B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLFormElement = {0x3050F251, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLFrameBase = {0x3050F312, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLFrameElement = {0x3050F314, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLFrameSetSite = {0x3050F31A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLGenericElement = {0x3050F4B8, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLHeadElement = {0x3050F493, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLHeaderElement = {0x3050F27A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLHistory = {0xFECEAAA3, 0x8405, 0x11CF, [0x8B, 0xA1, 0x00, 0xAA, 0x00, 0x47, 0x6D, 0xA6]}; + const IID CLSID_HTMLHRElement = {0x3050F252, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLHtmlElement = {0x3050F491, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLIFrame = {0x3050F316, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLImageElementFactory = {0x3050F38F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLImg = {0x3050F241, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLInputButtonElement = {0x3050F2B4, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLInputElement = {0x3050F5D8, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLInputFileElement = {0x3050F2AE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLInputImage = {0x3050F2C4, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLInputTextElement = {0x3050F2AB, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLIsIndexElement = {0x3050F278, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLLabelElement = {0x3050F32B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLLegendElement = {0x3050F3E9, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLLIElement = {0x3050F273, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLLinkElement = {0x3050F277, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLListElement = {0x3050F272, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLLoadOptions = {0x18845040, 0x0FA5, 0x11D1, [0xBA, 0x19, 0x00, 0xC0, 0x4F, 0xD9, 0x12, 0xD0]}; + const IID CLSID_HTMLLocation = {0x163BB1E1, 0x6E00, 0x11CF, [0x83, 0x7A, 0x48, 0xDC, 0x04, 0xC1, 0x00, 0x00]}; + const IID CLSID_HTMLMapElement = {0x3050F271, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLMarqueeElement = {0x3050F2B9, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLMetaElement = {0x3050F275, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLNamespace = {0x3050F6BC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLNamespaceCollection = {0x3050F6B9, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLNavigator = {0xFECEAAA6, 0x8405, 0x11CF, [0x8B, 0xA1, 0x00, 0xAA, 0x00, 0x47, 0x6D, 0xA6]}; + const IID CLSID_HTMLNextIdElement = {0x3050F279, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLNoShowElement = {0x3050F38B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLObjectElement = {0x3050F24E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLOListElement = {0x3050F270, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLOptionButtonElement = {0x3050F2BE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLOptionElement = {0x3050F24D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLOptionElementFactory = {0x3050F38D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLParaElement = {0x3050F26F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLParamElement = {0x3050F83E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLPhraseElement = {0x3050F26E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLPluginDocument = {0x25336921, 0x03F9, 0x11CF, [0x8F, 0xD0, 0x00, 0xAA, 0x00, 0x68, 0x6F, 0x13]}; + const IID CLSID_HTMLPopup = {0x3050F667, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLRenderStyle = {0x3050F6AA, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLRichtextElement = {0x3050F2DF, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLRuleStyle = {0x3050F3D0, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLScreen = {0x3050F35D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLScriptElement = {0x3050F28C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLSelectElement = {0x3050F245, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLSpanElement = {0x3050F3F5, 0x98B4, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLSpanFlow = {0x3050F3E6, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLStyle = {0x3050F285, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLStyleElement = {0x3050F37D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLStyleFontFace = {0x3050F3D4, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLStyleSheet = {0x3050F2E4, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLStyleSheetPage = {0x3050F7EF, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLStyleSheetPagesCollection = {0x3050F7F1, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLStyleSheetRule = {0x3050F3CE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLStyleSheetRulesCollection = {0x3050F3CD, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLStyleSheetsCollection = {0x3050F37F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLTable = {0x3050F26B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLTableCaption = {0x3050F2EC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLTableCell = {0x3050F246, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLTableCol = {0x3050F26C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLTableRow = {0x3050F26D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLTableSection = {0x3050F2E9, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLTextAreaElement = {0x3050F2AC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLTextElement = {0x3050F26A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLTitleElement = {0x3050F284, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLUListElement = {0x3050F269, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLUnknownElement = {0x3050F268, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLUrnCollection = {0x3050F580, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HTMLWindow2 = {0xD48A6EC6, 0x6A4A, 0x11CF, [0x94, 0xA7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID CLSID_HTMLWindowProxy = {0x3050F391, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_HttpProtocol = {0x79EAC9E2, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID CLSID_HttpSProtocol = {0x79EAC9E5, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID CLSID_HWShellExecute = {0xFFB8655F, 0x81B9, 0x4FCE, [0xB8, 0x9C, 0x9A, 0x6B, 0xA7, 0x6D, 0x13, 0xE7]}; + const IID CLSID_IActiveXSafetyProvider = {0xAAF8C6CE, 0xF972, 0x11D0, [0x97, 0xEB, 0x00, 0xAA, 0x00, 0x61, 0x53, 0x33]}; + const IID CLSID_IImageDecodeFilter = {0x607FD4E8, 0x0A03, 0x11D1, [0xAB, 0x1D, 0x00, 0xC0, 0x4F, 0xC9, 0xB3, 0x04]}; + const IID CLSID_IImgCtx = {0x3050F3D6, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_ImageList = {0x7C476BA2, 0x02B1, 0x48F4, [0x80, 0x48, 0xB2, 0x46, 0x19, 0xDD, 0xC0, 0x58]}; + const IID CLSID_ImageProperties = {0x7AB770C7, 0x0E23, 0x4D7A, [0x8A, 0xA2, 0x19, 0xBF, 0xAD, 0x47, 0x98, 0x29]}; + const IID CLSID_InProcFreeMarshaler = {0x0000033A, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_IntDitherer = {0x05F6FE1A, 0xECEF, 0x11D0, [0xAA, 0xE7, 0x00, 0xC0, 0x4F, 0xC9, 0xB3, 0x04]}; + const IID CLSID_IntelliForms = {0x613AB92E, 0x16BF, 0x11D2, [0xBC, 0xA5, 0x00, 0xC0, 0x4F, 0xD9, 0x29, 0xDB]}; + const IID CLSID_Internet = {0x871C5380, 0x42A0, 0x1069, [0xA2, 0xEA, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D]}; + const IID CLSID_InternetButtons = {0x1E796980, 0x9CC5, 0x11D1, [0xA8, 0x3F, 0x00, 0xC0, 0x4F, 0xC9, 0x9D, 0x61]}; + const IID CLSID_InternetConnectionBeaconServic = {0x04DF613A, 0x5610, 0x11D4, [0x9E, 0xC8, 0x00, 0xB0, 0xD0, 0x22, 0xDD, 0x1F]}; + const IID CLSID_InternetExplorer = {0x0002DF01, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_InternetPrintOrdering = {0xADD36AA8, 0x751A, 0x4579, [0xA2, 0x66, 0xD6, 0x6F, 0x52, 0x02, 0xCC, 0xBB]}; + const IID CLSID_InternetSecurityManager = {0x7B8A2D94, 0x0AC9, 0x11D1, [0x89, 0x6C, 0x00, 0xC0, 0x4F, 0xB6, 0xBF, 0xC4]}; + const IID CLSID_InternetShortcut = {0xFBF23B40, 0xE3F0, 0x101B, [0x84, 0x88, 0x00, 0xAA, 0x00, 0x3E, 0x56, 0xF8]}; + const IID CLSID_InternetZoneManager = {0x7B8A2D95, 0x0AC9, 0x11D1, [0x89, 0x6C, 0x00, 0xC0, 0x4F, 0xB6, 0xBF, 0xC4]}; + const IID CLSID_LanConnectionManager = {0xBA126AD3, 0x2166, 0x11D1, [0xB1, 0xD0, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID CLSID_LargeInteger = {0x927971F5, 0x0939, 0x11D1, [0x8B, 0xE1, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID CLSID_LDAPConnectionObject = {0x7DA2A9C4, 0x0C46, 0x43BD, [0xB0, 0x4E, 0xD9, 0x2B, 0x1B, 0xE2, 0x7C, 0x45]}; + const IID CLSID_LDAPObject = {0x05709878, 0x5195, 0x466C, [0x9E, 0x64, 0x48, 0x7C, 0xE3, 0xCA, 0x20, 0xBF]}; + const IID CLSID_LinkColumnProvider = {0x24F14F02, 0x7B1C, 0x11D1, [0x83, 0x8F, 0x00, 0x00, 0xF8, 0x04, 0x61, 0xCF]}; + const IID CLSID_LocalMachineClasses = {0x00000331, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_LogManager = {0x8FDA8FA4, 0x8763, 0x479F, [0xB9, 0xB1, 0x22, 0x02, 0xB2, 0x80, 0xD2, 0x93]}; + const IID CLSID_LUTBuilderPP = {0x25B33662, 0xFD83, 0x11D1, [0x8A, 0xDE, 0x44, 0x45, 0x53, 0x54, 0x00, 0x01]}; + const IID CLSID_MachineDebugManager = {0x0C0A3666, 0x30C9, 0x11D0, [0x8F, 0x20, 0x00, 0x80, 0x5F, 0x2C, 0xD0, 0x64]}; + const IID CLSID_MailAutoDiscovery = {0x008FD5DD, 0x6DBB, 0x48E3, [0x99, 0x1B, 0x2D, 0x3E, 0xD6, 0x58, 0x51, 0x6A]}; + const IID CLSID_MailProtocolADEntry = {0x61A5D6F3, 0xC131, 0x4C35, [0xBF, 0x40, 0x90, 0xA5, 0x0F, 0x21, 0x41, 0x22]}; + const IID CLSID_ManualResetEvent = {0x0000032C, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_McastAddressAllocation = {0xDF0DAEF2, 0xA289, 0x11D1, [0x86, 0x97, 0x00, 0x60, 0x08, 0xB0, 0xE5, 0xD2]}; + const IID CLSID_MediaStreamTerminal = {0xE2F7AEF7, 0x4971, 0x11D1, [0xA6, 0x71, 0x00, 0x60, 0x97, 0xC9, 0xA2, 0xE8]}; + const IID CLSID_MergedCategorizer = {0x8E827C11, 0x33E7, 0x4BC1, [0xB2, 0x42, 0x8C, 0xD9, 0xA1, 0xC2, 0xB3, 0x04]}; + const IID CLSID_MHTMLDocument = {0x3050F3D9, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_MicrophoneTerminal = {0xAAF578EF, 0xDC70, 0x11D0, [0x8E, 0xD3, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID CLSID_MicrosoftDS = {0xFE1290F0, 0xCFBD, 0x11CF, [0xA3, 0x30, 0x00, 0xAA, 0x00, 0xC1, 0x6E, 0x65]}; + const IID CLSID_MigrationWizardAuto = {0x67331D85, 0xBE17, 0x42F6, [0x8D, 0x3F, 0x47, 0xB8, 0xE8, 0xB2, 0x66, 0x37]}; + const IID CLSID_MkProtocol = {0x79EAC9E6, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID CLSID_MofCompiler = {0x6DAF9757, 0x2E37, 0x11D2, [0xAE, 0xC9, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20]}; + const IID CLSID_MountedVolume = {0x12518493, 0x00B2, 0x11D2, [0x9F, 0xA5, 0x9E, 0x34, 0x20, 0x52, 0x41, 0x53]}; + const IID CLSID_MSBurnEngineObj = {0x520CCA67, 0x51A5, 0x11D3, [0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E]}; + const IID CLSID_MSDATT = {0xC8B522CE, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID CLSID_MSDAVTM = {0x0C733A8E, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID CLSID_MSDiscMasterObj = {0x520CCA63, 0x51A5, 0x11D3, [0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E]}; + const IID CLSID_MSDiscRecorderObj = {0x520CCA61, 0x51A5, 0x11D3, [0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E]}; + const IID CLSID_MSDiscStashObj = {0x520CCA65, 0x51A5, 0x11D3, [0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E]}; + const IID CLSID_MSEnumDiscRecordersObj = {0x8A03567A, 0x63CB, 0x4BA8, [0xBA, 0xF6, 0x52, 0x11, 0x98, 0x16, 0xD1, 0xEF]}; + const IID CLSID_MSOButtons = {0x178F34B8, 0xA282, 0x11D2, [0x86, 0xC5, 0x00, 0xC0, 0x4F, 0x8E, 0xEA, 0x99]}; + const IID CLSID_MyComputer = {0x20D04FE0, 0x3AEA, 0x1069, [0xA2, 0xD8, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D]}; + const IID CLSID_MyDocuments = {0x450D8FBA, 0xAD25, 0x11D0, [0x98, 0xA8, 0x08, 0x00, 0x36, 0x1B, 0x11, 0x03]}; + const IID CLSID_NameTranslate = {0x274FAE1F, 0x3626, 0x11D1, [0xA3, 0xA4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID CLSID_NetAddress = {0xB0B71247, 0x4080, 0x11D1, [0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID CLSID_NetConnectionHNetUtil = {0xBA126AE3, 0x2166, 0x11D1, [0xB1, 0xD0, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID CLSID_NetConnectionUiUtilities = {0x7007ACD3, 0x3202, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID CLSID_NetCrawler = {0x601AC3DC, 0x786A, 0x4EB0, [0xBF, 0x40, 0xEE, 0x35, 0x21, 0xE7, 0x0B, 0xFB]}; + const IID CLSID_NetSharingManager = {0x5C63C1AD, 0x3956, 0x4FF8, [0x84, 0x86, 0x40, 0x03, 0x47, 0x58, 0x31, 0x5B]}; + const IID CLSID_NetworkDomain = {0x46E06680, 0x4BF0, 0x11D1, [0x83, 0xEE, 0x00, 0xA0, 0xC9, 0x0D, 0xC8, 0x49]}; + const IID CLSID_NetworkPlaces = {0x208D2C60, 0x3AEA, 0x1069, [0xA2, 0xD7, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D]}; + const IID CLSID_NetworkServer = {0xC0542A90, 0x4BF0, 0x11D1, [0x83, 0xEE, 0x00, 0xA0, 0xC9, 0x0D, 0xC8, 0x49]}; + const IID CLSID_NetworkShare = {0x54A754C0, 0x4BF0, 0x11D1, [0x83, 0xEE, 0x00, 0xA0, 0xC9, 0x0D, 0xC8, 0x49]}; + const IID CLSID_NetworkType = {0xD4F3D51B, 0x1755, 0x4953, [0x9C, 0x8B, 0x24, 0x95, 0xAB, 0xE5, 0xE0, 0x7E]}; + const IID CLSID_NodeType = {0x1AAA3D11, 0x4792, 0x44E4, [0x9D, 0x49, 0x78, 0xFE, 0xD3, 0x69, 0x1A, 0x14]}; + const IID CLSID_NotificaitonTest1 = {0xC733E501, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_NotificaitonTest2 = {0xC733E502, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_NotificaitonTest3 = {0xC733E503, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_NotificaitonTest4 = {0xC733E504, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_NotificationManager = {0xE1813DD0, 0xAADA, 0x4738, [0xB5, 0xFF, 0x96, 0xB4, 0x18, 0x9C, 0x50, 0x19]}; + const IID CLSID_ObjectManager = {0x955661BD, 0xCCA2, 0x4EAC, [0x91, 0xD0, 0xA0, 0x39, 0x6A, 0x28, 0xAE, 0xFD]}; + const IID CLSID_OctetList = {0x1241400F, 0x4680, 0x11D1, [0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID CLSID_OldHTMLDocument = {0xD48A6EC9, 0x6A4A, 0x11CF, [0x94, 0xA7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID CLSID_OldHTMLFormElement = {0x0D04D285, 0x6BEC, 0x11CF, [0x8B, 0x97, 0x00, 0xAA, 0x00, 0x47, 0x6D, 0xA6]}; + const IID CLSID_OLEDB_CONVERSIONLIBRARY = {0xC8B522D1, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID CLSID_OLEDB_ENUMERATOR = {0xC8B522D0, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID CLSID_OLEDB_ROWPOSITIONLIBRARY = {0x2048EEE6, 0x7FA2, 0x11D0, [0x9E, 0x6A, 0x00, 0xA0, 0xC9, 0x13, 0x8C, 0x29]}; + const IID CLSID_PassportClientServices = {0x2D2307C8, 0x7DB4, 0x40D6, [0x91, 0x00, 0xD5, 0x2A, 0xF4, 0xF9, 0x7A, 0x5B]}; + const IID CLSID_Path = {0xB2538919, 0x4080, 0x11D1, [0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID CLSID_Pathname = {0x080D0D78, 0xF421, 0x11D0, [0xA3, 0x6E, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID CLSID_PeerFactory = {0x3050F4CF, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_PendingProxyConnection = {0xD8A68E5E, 0x2B37, 0x426C, [0xA3, 0x29, 0xC1, 0x17, 0xC1, 0x4C, 0x42, 0x9E]}; + const IID CLSID_PersistentDataChannel = {0xBC9B54AB, 0x7883, 0x4C13, [0x90, 0x9F, 0x03, 0x3D, 0x03, 0x26, 0x79, 0x90]}; + const IID CLSID_PersistPropset = {0xFB8F0821, 0x0164, 0x101B, [0x84, 0xED, 0x08, 0x00, 0x2B, 0x2E, 0xC7, 0x13]}; + const IID CLSID_Picture_Dib = {0x00000316, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_Picture_EnhMetafile = {0x00000319, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_Picture_Metafile = {0x00000315, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_Pixelate = {0x4CCEA634, 0xFBE0, 0x11D1, [0x90, 0x6A, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID CLSID_PixelatePP = {0x4CCEA635, 0xFBE0, 0x11D1, [0x90, 0x6A, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID CLSID_PluggableSuperclassRegistratio = {0xBB918E32, 0x2A5C, 0x4986, [0xAB, 0x40, 0x16, 0x86, 0xA0, 0x34, 0x39, 0x0A]}; + const IID CLSID_PluggableTerminalRegistration = {0x45234E3E, 0x61CC, 0x4311, [0xA3, 0xAB, 0x24, 0x80, 0x82, 0x55, 0x44, 0x82]}; + const IID CLSID_PostAgent = {0xD8BD2030, 0x6FC9, 0x11D0, [0x86, 0x4F, 0x00, 0xAA, 0x00, 0x68, 0x09, 0xD9]}; + const IID CLSID_PostalAddress = {0x0A75AFCD, 0x4680, 0x11D1, [0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID CLSID_PrimaryControlChannel = {0x3CEB5509, 0xC1CD, 0x432F, [0x9D, 0x8F, 0x65, 0xD1, 0xE2, 0x86, 0xAA, 0x80]}; + const IID CLSID_Printers = {0x2227A280, 0x3AEA, 0x1069, [0xA2, 0xDE, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D]}; + const IID CLSID_PROCESS_BROADCAST = {0xD34F1811, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_ProcessDebugManager = {0x78A51822, 0x51F4, 0x11D0, [0x8F, 0x20, 0x00, 0x80, 0x5F, 0x2C, 0xD0, 0x64]}; + const IID CLSID_ProgressDialog = {0xF8383852, 0xFCD3, 0x11D1, [0xA6, 0xB9, 0x00, 0x60, 0x97, 0xDF, 0x5B, 0xD4]}; + const IID CLSID_PropertiesUI = {0xD912F8CF, 0x0396, 0x4915, [0x88, 0x4E, 0xFB, 0x42, 0x5D, 0x32, 0x94, 0x3B]}; + const IID CLSID_PropertyEntry = {0x72D3EDC2, 0xA4C4, 0x11D0, [0x85, 0x33, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID CLSID_PropertyValue = {0x7B9E38B0, 0xA97C, 0x11D0, [0x85, 0x34, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID CLSID_PSBindCtx = {0x00000312, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_PSClassObject = {0x0000030E, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_PSClientSite = {0x0000030D, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_PSDragDrop = {0x00000311, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_PSEnumerators = {0x00000313, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_PseudoSink = {0xE002E4F0, 0xE6EA, 0x11D2, [0x9C, 0xB3, 0x00, 0x10, 0x5A, 0x1F, 0x48, 0x01]}; + const IID CLSID_PSGenObject = {0x0000030C, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_PSInPlaceActive = {0x0000030F, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_PSInPlaceFrame = {0x00000310, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_PSUrlMonProxy = {0x79EAC9F1, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID CLSID_PublishDropTarget = {0xCC6EEFFB, 0x43F6, 0x46C5, [0x96, 0x19, 0x51, 0xD5, 0x71, 0x96, 0x7F, 0x7D]}; + const IID CLSID_PublishingWizard = {0x6B33163C, 0x76A5, 0x4B6C, [0xBF, 0x21, 0x45, 0xDE, 0x9C, 0xD5, 0x03, 0xA1]}; + const IID CLSID_QueryAssociations = {0xA07034FD, 0x6CAA, 0x4954, [0xAC, 0x3F, 0x97, 0xA2, 0x72, 0x16, 0xF9, 0x8A]}; + const IID CLSID_QueryCancelAutoPlay = {0x331F1768, 0x05A9, 0x4DDD, [0xB8, 0x6E, 0xDA, 0xE3, 0x4D, 0xDC, 0x99, 0x8A]}; + const IID CLSID_RecycleBin = {0x645FF040, 0x5081, 0x101B, [0x9F, 0x08, 0x00, 0xAA, 0x00, 0x2F, 0x95, 0x4E]}; + const IID CLSID_RemoteUnknownPSFactory = {0x00000340, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_Rendezvous = {0xF1029E5B, 0xCB5B, 0x11D0, [0x8D, 0x59, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID CLSID_ReplicaPointer = {0xF5D1BADF, 0x4080, 0x11D1, [0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID CLSID_Request = {0x6BC096B1, 0x0CE6, 0x11D1, [0xBA, 0xAE, 0x00, 0xC0, 0x4F, 0xC2, 0xE2, 0x0D]}; + const IID CLSID_RequestMakeCall = {0xAC48FFE0, 0xF8C4, 0x11D1, [0xA0, 0x30, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID CLSID_ResProtocol = {0x3050F3BC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_RTCClient = {0x7A42EA29, 0xA2B7, 0x40C4, [0xB0, 0x91, 0xF6, 0xF0, 0x24, 0xAA, 0x89, 0xBE]}; + const IID CLSID_Scriptlet = {0xAE24FDAE, 0x03C6, 0x11D1, [0x8B, 0x76, 0x00, 0x80, 0xC7, 0x44, 0xF3, 0x89]}; + const IID CLSID_SdoMachine = {0xE9218AE7, 0x9E91, 0x11D1, [0xBF, 0x60, 0x00, 0x80, 0xC7, 0x84, 0x6B, 0xC0]}; + const IID CLSID_SdpConferenceBlob = {0x9B2719DD, 0xB696, 0x11D0, [0xA4, 0x89, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID CLSID_SearchAssistantOC = {0xB45FF030, 0x4447, 0x11D2, [0x85, 0xDE, 0x00, 0xC0, 0x4F, 0xA3, 0x5C, 0x89]}; + const IID CLSID_SearchCommand = {0xB005E690, 0x678D, 0x11D1, [0xB7, 0x58, 0x00, 0xA0, 0xC9, 0x05, 0x64, 0xFE]}; + const IID CLSID_SecondaryControlChannel = {0x7B3181A0, 0xC92F, 0x4567, [0xB0, 0xFA, 0xCD, 0x9A, 0x10, 0xEC, 0xD7, 0xD1]}; + const IID CLSID_SecurityDescriptor = {0xB958F73C, 0x9BDD, 0x11D0, [0x85, 0x2C, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID CLSID_SENS = {0xD597CAFE, 0x5B9F, 0x11D1, [0x8D, 0xD2, 0x00, 0xAA, 0x00, 0x4A, 0xBD, 0x5E]}; + const IID CLSID_ServiceManager = {0xABD0388A, 0xDEC1, 0x44F3, [0x98, 0xE1, 0x8D, 0x5C, 0xC8, 0x0B, 0x97, 0xEB]}; + const IID CLSID_SharingApplicationDefinition = {0x46C166B0, 0x3108, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID CLSID_SharingConfiguration = {0x46C166B1, 0x3108, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID CLSID_SharingManagerEnumApplicationDe = {0x46C166AE, 0x3108, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID CLSID_SharingManagerEnumPortMapping = {0x46C166AF, 0x3108, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID CLSID_SharingManagerEnumPrivateConnec = {0x46C166AD, 0x3108, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID CLSID_SharingManagerEnumPublicConnect = {0x46C166AC, 0x3108, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID CLSID_Shell = {0x13709620, 0xC279, 0x11CE, [0xA4, 0x9E, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID CLSID_ShellBrowserWindow = {0xC08AFD90, 0xF2A1, 0x11D1, [0x84, 0x55, 0x00, 0xA0, 0xC9, 0x1F, 0x38, 0x80]}; + const IID CLSID_ShellDesktop = {0x00021400, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_ShellDispatchInproc = {0x0A89A860, 0xD7B1, 0x11CE, [0x83, 0x50, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID CLSID_ShellFolderItem = {0x2FE352EA, 0xFD1F, 0x11D2, [0xB1, 0xF4, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x3E]}; + const IID CLSID_ShellFolderView = {0x62112AA1, 0xEBE4, 0x11CF, [0xA5, 0xFB, 0x00, 0x20, 0xAF, 0xE7, 0x29, 0x2D]}; + const IID CLSID_ShellFolderViewOC = {0x9BA05971, 0xF6A8, 0x11CF, [0xA4, 0x42, 0x00, 0xA0, 0xC9, 0x0A, 0x8F, 0x39]}; + const IID CLSID_ShellFSFolder = {0xF3364BA0, 0x65B9, 0x11CE, [0xA9, 0xBA, 0x00, 0xAA, 0x00, 0x4A, 0xE8, 0x37]}; + const IID CLSID_ShellImageDataFactory = {0x66E4E4FB, 0xF385, 0x4DD0, [0x8D, 0x74, 0xA2, 0xEF, 0xD1, 0xBC, 0x61, 0x78]}; + const IID CLSID_ShellLink = {0x00021401, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_ShellLinkObject = {0x11219420, 0x1768, 0x11D1, [0x95, 0xBE, 0x00, 0x60, 0x97, 0x97, 0xEA, 0x4F]}; + const IID CLSID_ShellLocalMachine = {0x60664CAF, 0xAF0D, 0x0005, [0xA3, 0x00, 0x5C, 0x7D, 0x25, 0xFF, 0x22, 0xA0]}; + const IID CLSID_ShellLogonEnumUsers = {0x60664CAF, 0xAF0D, 0x0004, [0xA3, 0x00, 0x5C, 0x7D, 0x25, 0xFF, 0x22, 0xA0]}; + const IID CLSID_ShellLogonStatusHost = {0x60664CAF, 0xAF0D, 0x0007, [0xA3, 0x00, 0x5C, 0x7D, 0x25, 0xFF, 0x22, 0xA0]}; + const IID CLSID_ShellLogonUser = {0x60664CAF, 0xAF0D, 0x0003, [0xA3, 0x00, 0x5C, 0x7D, 0x25, 0xFF, 0x22, 0xA0]}; + const IID CLSID_ShellNameSpace = {0x55136805, 0xB2DE, 0x11D1, [0xB9, 0xF2, 0x00, 0xA0, 0xC9, 0x8B, 0xC5, 0x47]}; + const IID CLSID_ShellUIHelper = {0x64AB4BB7, 0x111E, 0x11D1, [0x8F, 0x79, 0x00, 0xC0, 0x4F, 0xC2, 0xFB, 0xE1]}; + const IID CLSID_ShellWindows = {0x9BA05972, 0xF6A8, 0x11CF, [0xA4, 0x42, 0x00, 0xA0, 0xC9, 0x0A, 0x8F, 0x39]}; + const IID CLSID_SizeCategorizer = {0x55D7B852, 0xF6D1, 0x42F2, [0xAA, 0x75, 0x87, 0x28, 0xA1, 0xB2, 0xD2, 0x64]}; + const IID CLSID_SoftDistExt = {0xB15B8DC0, 0xC7E1, 0x11D0, [0x86, 0x80, 0x00, 0xAA, 0x00, 0xBD, 0xCB, 0x71]}; + const IID CLSID_SpeakerphoneTerminal = {0xAAF578EE, 0xDC70, 0x11D0, [0x8E, 0xD3, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID CLSID_SpeakersTerminal = {0xAAF578F0, 0xDC70, 0x11D0, [0x8E, 0xD3, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID CLSID_SpeechUIServer = {0x1443904B, 0x34E4, 0x40F6, [0xB3, 0x0F, 0x6B, 0xEB, 0x81, 0x26, 0x7B, 0x80]}; + const IID CLSID_StaticDib = {0x00000316, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_StaticMetafile = {0x00000315, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_StdAsyncActManager = {0x00000329, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_StdComponentCategoriesMgr = {0x0002E005, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_StdEncodingFilterFac = {0x54C37CD0, 0xD944, 0x11D0, [0xA9, 0xF4, 0x00, 0x60, 0x97, 0x94, 0x23, 0x11]}; + const IID CLSID_StdEvent = {0x0000032B, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_StdFont = {0x0BE35203, 0x8F91, 0x11CE, [0x9D, 0xE3, 0x00, 0xAA, 0x00, 0x4B, 0xB8, 0x51]}; + const IID CLSID_StdGlobalInterfaceTable = {0x00000323, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_StdHlink = {0x79EAC9D0, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID CLSID_StdHlinkBrowseContext = {0x79EAC9D1, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID CLSID_StdMarshal = {0x00000017, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_StdNotificationMgr = {0xC733E4AF, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_StdPicture = {0x0BE35204, 0x8F91, 0x11CE, [0x9D, 0xE3, 0x00, 0xAA, 0x00, 0x4B, 0xB8, 0x51]}; + const IID CLSID_StdURLMoniker = {0x79EAC9E0, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID CLSID_StdURLProtocol = {0x79EAC9E1, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID CLSID_StgFolder = {0xE773F1AF, 0x3A65, 0x4866, [0x85, 0x7D, 0x84, 0x6F, 0xC9, 0xC4, 0x59, 0x8A]}; + const IID CLSID_StockColorPage = {0x7EBDAAE1, 0x8120, 0x11CF, [0x89, 0x9F, 0x00, 0xAA, 0x00, 0x68, 0x8B, 0x10]}; + const IID CLSID_StockFontPage = {0x7EBDAAE0, 0x8120, 0x11CF, [0x89, 0x9F, 0x00, 0xAA, 0x00, 0x68, 0x8B, 0x10]}; + const IID CLSID_StockPicturePage = {0x7EBDAAE2, 0x8120, 0x11CF, [0x89, 0x9F, 0x00, 0xAA, 0x00, 0x68, 0x8B, 0x10]}; + const IID CLSID_SubscriptionMgr = {0xABBE31D0, 0x6DAE, 0x11D0, [0xBE, 0xCA, 0x00, 0xC0, 0x4F, 0xD9, 0x40, 0xBE]}; + const IID CLSID_SubscriptionThrottler = {0x1E9B00E5, 0x9846, 0x11D1, [0xA1, 0xEE, 0x00, 0xC0, 0x4F, 0xC2, 0xFB, 0xE1]}; + const IID CLSID_SWbemDateTime = {0x47DFBE54, 0xCF76, 0x11D3, [0xB3, 0x8F, 0x00, 0x10, 0x5A, 0x1F, 0x47, 0x3A]}; + const IID CLSID_SWbemEventSource = {0x04B83D58, 0x21AE, 0x11D2, [0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemLastError = {0xC2FEEEAC, 0xCFCD, 0x11D1, [0x8B, 0x05, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemLocator = {0x76A64158, 0xCB41, 0x11D1, [0x8B, 0x02, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemMethod = {0x04B83D5B, 0x21AE, 0x11D2, [0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemMethodSet = {0x04B83D5A, 0x21AE, 0x11D2, [0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemNamedValue = {0x04B83D60, 0x21AE, 0x11D2, [0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemNamedValueSet = {0x9AED384E, 0xCE8B, 0x11D1, [0x8B, 0x05, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemObject = {0x04B83D62, 0x21AE, 0x11D2, [0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemObjectEx = {0xD6BDAFB2, 0x9435, 0x491F, [0xBB, 0x87, 0x6A, 0xA0, 0xF0, 0xBC, 0x31, 0xA2]}; + const IID CLSID_SWbemObjectPath = {0x5791BC26, 0xCE9C, 0x11D1, [0x97, 0xBF, 0x00, 0x00, 0xF8, 0x1E, 0x84, 0x9C]}; + const IID CLSID_SWbemObjectSet = {0x04B83D61, 0x21AE, 0x11D2, [0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemPrivilege = {0x26EE67BC, 0x5804, 0x11D2, [0x8B, 0x4A, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemPrivilegeSet = {0x26EE67BE, 0x5804, 0x11D2, [0x8B, 0x4A, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemProperty = {0x04B83D5D, 0x21AE, 0x11D2, [0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemPropertySet = {0x04B83D5C, 0x21AE, 0x11D2, [0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemQualifier = {0x04B83D5F, 0x21AE, 0x11D2, [0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemQualifierSet = {0x04B83D5E, 0x21AE, 0x11D2, [0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemRefreshableItem = {0x8C6854BC, 0xDE4B, 0x11D3, [0xB3, 0x90, 0x00, 0x10, 0x5A, 0x1F, 0x47, 0x3A]}; + const IID CLSID_SWbemRefresher = {0xD269BF5C, 0xD9C1, 0x11D3, [0xB3, 0x8F, 0x00, 0x10, 0x5A, 0x1F, 0x47, 0x3A]}; + const IID CLSID_SWbemSecurity = {0xB54D66E9, 0x2287, 0x11D2, [0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemServices = {0x04B83D63, 0x21AE, 0x11D2, [0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID CLSID_SWbemServicesEx = {0x62E522DC, 0x8CF3, 0x40A8, [0x8B, 0x2E, 0x37, 0xD5, 0x95, 0x65, 0x1E, 0x40]}; + const IID CLSID_SWbemSink = {0x75718C9A, 0xF029, 0x11D1, [0xA1, 0xAC, 0x00, 0xC0, 0x4F, 0xB6, 0xC2, 0x23]}; + const IID CLSID_SynchronizeContainer = {0x0000032D, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID CLSID_SyncMgr = {0x6295DF27, 0x35EE, 0x11D1, [0x87, 0x07, 0x00, 0xC0, 0x4F, 0xD9, 0x33, 0x27]}; + const IID CLSID_TAPI = {0x21D6D48E, 0xA88B, 0x11D0, [0x83, 0xDD, 0x00, 0xAA, 0x00, 0x3C, 0xCA, 0xBD]}; + const IID CLSID_TaskbarList = {0x56FDF344, 0xFD6D, 0x11D0, [0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90]}; + const IID CLSID_TaskManager = {0xC0F615A7, 0xF874, 0x4521, [0x87, 0x91, 0xED, 0x3B, 0x84, 0x01, 0x7E, 0xF7]}; + const IID CLSID_TerminalManager = {0x7170F2E0, 0x9BE3, 0x11D0, [0xA0, 0x09, 0x00, 0xAA, 0x00, 0xB6, 0x05, 0xA4]}; + const IID CLSID_THREAD_BROADCAST = {0xD34F1812, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_ThreadDialogProcParam = {0x3050F5EB, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID CLSID_ThumbnailFCNHandler = {0xCEFC65D8, 0x66D8, 0x11D1, [0x8D, 0x8C, 0x00, 0x00, 0xF8, 0x04, 0xB0, 0x57]}; + const IID CLSID_ThumbnailUpdater = {0xA3C63918, 0x889D, 0x11D1, [0x83, 0xE9, 0x00, 0xC0, 0x4F, 0xC2, 0xC6, 0xD4]}; + const IID CLSID_TIME = {0xE32EF57B, 0x7FDE, 0x4765, [0x9B, 0xC5, 0xA1, 0xBA, 0x97, 0x05, 0xC4, 0x4E]}; + const IID CLSID_TIMEAnimation = {0xF99D135A, 0xC07C, 0x449E, [0x96, 0x5C, 0x7D, 0xBB, 0x7C, 0x55, 0x4A, 0x51]}; + const IID CLSID_TimeCategorizer = {0x3BB4118F, 0xDDFD, 0x4D30, [0xA3, 0x48, 0x9F, 0xB5, 0xD6, 0xBF, 0x1A, 0xFE]}; + const IID CLSID_TIMEColorAnimation = {0x62F75052, 0xF3EC, 0x4A64, [0x84, 0xFB, 0xAB, 0x18, 0xE0, 0x74, 0x6E, 0xD8]}; + const IID CLSID_TIMEFactory = {0x17237A20, 0x3ADB, 0x48EC, [0xB1, 0x82, 0x35, 0x29, 0x1F, 0x11, 0x57, 0x90]}; + const IID CLSID_TIMEFilterAnimation = {0xC54515D0, 0xF2E5, 0x4BDD, [0xAA, 0x86, 0x1E, 0x4F, 0x23, 0xE4, 0x80, 0xE7]}; + const IID CLSID_TIMEMotionAnimation = {0x0019A09D, 0x1A81, 0x41C5, [0x89, 0xEC, 0xD9, 0xE7, 0x37, 0x81, 0x13, 0x03]}; + const IID CLSID_TIMESetAnimation = {0xBA91CE53, 0xBAEB, 0x4F05, [0x86, 0x1C, 0x0A, 0x2A, 0x09, 0x34, 0xF8, 0x2E]}; + const IID CLSID_Timestamp = {0xB2BED2EB, 0x4080, 0x11D1, [0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID CLSID_ToolbarExtButtons = {0x2CE4B5D8, 0xA28F, 0x11D2, [0x86, 0xC5, 0x00, 0xC0, 0x4F, 0x8E, 0xEA, 0x99]}; + const IID CLSID_TrackFile = {0x8790C947, 0xA30B, 0x11D0, [0x8C, 0xAB, 0x00, 0xC0, 0x4F, 0xD9, 0x0F, 0x85]}; + const IID CLSID_TrkForceOwnership = {0xA2531F45, 0xC67D, 0x11D0, [0x8C, 0xB1, 0x00, 0xC0, 0x4F, 0xD9, 0x0F, 0x85]}; + const IID CLSID_TrkRestoreNotify = {0xD0056F6C, 0xE2A0, 0x11D0, [0xB1, 0xC2, 0x00, 0xC0, 0x4F, 0xB9, 0x38, 0x6D]}; + const IID CLSID_TrkRestoreParser = {0x755939E4, 0xE381, 0x11D0, [0xB1, 0xC5, 0x00, 0xC0, 0x4F, 0xB9, 0x38, 0x6D]}; + const IID CLSID_TypedName = {0xB33143CB, 0x4080, 0x11D1, [0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID CLSID_UmiLDAPQueryObject = {0xCD5D4D76, 0xA818, 0x4F95, [0xB9, 0x58, 0x79, 0x70, 0xFD, 0x94, 0x12, 0xCA]}; + const IID CLSID_UnsecuredApartment = {0x49BD2028, 0x1523, 0x11D1, [0xAD, 0x79, 0x00, 0xC0, 0x4F, 0xD8, 0xFD, 0xFF]}; + const IID CLSID_UPnPDescriptionDocument = {0x1D8A9B47, 0x3A28, 0x4CE2, [0x8A, 0x4B, 0xBD, 0x34, 0xE4, 0x5B, 0xCE, 0xEB]}; + const IID CLSID_UPnPDevice = {0xA32552C5, 0xBA61, 0x457A, [0xB5, 0x9A, 0xA2, 0x56, 0x1E, 0x12, 0x5E, 0x33]}; + const IID CLSID_UPnPDeviceFinder = {0xE2085F28, 0xFEB7, 0x404A, [0xB8, 0xE7, 0xE6, 0x59, 0xBD, 0xEA, 0xAA, 0x02]}; + const IID CLSID_UPnPDeviceHostICSSupport = {0x797A9BB1, 0x9E49, 0x4E63, [0xAF, 0xE1, 0x1B, 0x45, 0xB9, 0xDC, 0x81, 0x62]}; + const IID CLSID_UPnPDeviceHostSetup = {0xB4609411, 0xC81C, 0x4CCE, [0x8C, 0x76, 0xC6, 0xB5, 0x0C, 0x94, 0x02, 0xC6]}; + const IID CLSID_UPnPDevices = {0xB9E84FFD, 0xAD3C, 0x40A4, [0xB8, 0x35, 0x08, 0x82, 0xEB, 0xCB, 0xAA, 0xA8]}; + const IID CLSID_UPnPNAT = {0xAE1E00AA, 0x3FD5, 0x403C, [0x8A, 0x27, 0x2B, 0xBD, 0xC3, 0x0C, 0xD0, 0xE1]}; + const IID CLSID_UPnPRegistrar = {0x204810B9, 0x73B2, 0x11D4, [0xBF, 0x42, 0x00, 0xB0, 0xD0, 0x11, 0x8B, 0x56]}; + const IID CLSID_UPnPService = {0xC624BA95, 0xFBCB, 0x4409, [0x8C, 0x03, 0x8C, 0xCE, 0xEC, 0x53, 0x3E, 0xF1]}; + const IID CLSID_UPnPServices = {0xC0BC4B4A, 0xA406, 0x4EFC, [0x93, 0x2F, 0xB8, 0x54, 0x6B, 0x81, 0x00, 0xCC]}; + const IID CLSID_UrlMkBindCtx = {0x79EAC9F2, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID CLSID_UserEventTimer = {0x864A1288, 0x354C, 0x4D19, [0x9D, 0x68, 0xC2, 0x74, 0x2B, 0xB1, 0x49, 0x97]}; + const IID CLSID_UserEventTimerCallback = {0x15FFFD13, 0x5140, 0x41B8, [0xB8, 0x9A, 0xC8, 0xD5, 0x75, 0x9C, 0xD2, 0xB2]}; + const IID CLSID_UserNotification = {0x0010890E, 0x8789, 0x413C, [0xAD, 0xBC, 0x48, 0xF5, 0xB5, 0x11, 0xB3, 0xAF]}; + const IID CLSID_VideoInputTerminal = {0xAAF578EC, 0xDC70, 0x11D0, [0x8E, 0xD3, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID CLSID_VideoWindowTerm = {0xF7438990, 0xD6EB, 0x11D0, [0x82, 0xA6, 0x00, 0xAA, 0x00, 0xB5, 0xCA, 0x1B]}; + const IID CLSID_VirusScan = {0xE88E5DE0, 0xBD3E, 0x11CF, [0xAA, 0xFA, 0x00, 0xAA, 0x00, 0xB6, 0x01, 0x5C]}; + const IID CLSID_WbemAdministrativeLocator = {0xCB8555CC, 0x9128, 0x11D1, [0xAD, 0x9B, 0x00, 0xC0, 0x4F, 0xD8, 0xFD, 0xFF]}; + const IID CLSID_WbemAuthenticatedLocator = {0xCD184336, 0x9128, 0x11D1, [0xAD, 0x9B, 0x00, 0xC0, 0x4F, 0xD8, 0xFD, 0xFF]}; + const IID CLSID_WbemBackupRestore = {0xC49E32C6, 0xBC8B, 0x11D2, [0x85, 0xD4, 0x00, 0x10, 0x5A, 0x1F, 0x83, 0x04]}; + const IID CLSID_WbemClassObject = {0x9A653086, 0x174F, 0x11D2, [0xB5, 0xF9, 0x00, 0x10, 0x4B, 0x70, 0x3E, 0xFD]}; + const IID CLSID_WbemContext = {0x674B6698, 0xEE92, 0x11D0, [0xAD, 0x71, 0x00, 0xC0, 0x4F, 0xD8, 0xFD, 0xFF]}; + const IID CLSID_WbemDCOMTransport = {0xF7CE2E13, 0x8C90, 0x11D1, [0x9E, 0x7B, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8]}; + const IID CLSID_WbemDecoupledBasicEventProvide = {0xF5F75737, 0x2843, 0x4F22, [0x93, 0x3D, 0xC7, 0x6A, 0x97, 0xCD, 0xA6, 0x2F]}; + const IID CLSID_WbemDecoupledRegistrar = {0x4CFC7932, 0x0F9D, 0x4BEF, [0x9C, 0x32, 0x8E, 0xA2, 0xA6, 0xB5, 0x6F, 0xCB]}; + const IID CLSID_WbemDefPath = {0xCF4CC405, 0xE2C5, 0x4DDD, [0xB3, 0xCE, 0x5E, 0x75, 0x82, 0xD8, 0xC9, 0xFA]}; + const IID CLSID_WbemLevel1Login = {0x8BC3F05E, 0xD86B, 0x11D0, [0xA0, 0x75, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20]}; + const IID CLSID_WbemLocalAddrRes = {0xA1044801, 0x8F7E, 0x11D1, [0x9E, 0x7C, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8]}; + const IID CLSID_WbemLocator = {0x4590F811, 0x1D3A, 0x11D0, [0x89, 0x1F, 0x00, 0xAA, 0x00, 0x4B, 0x2E, 0x24]}; + const IID CLSID_WbemObjectTextSrc = {0x8D1C559D, 0x84F0, 0x4BB3, [0xA7, 0xD5, 0x56, 0xA7, 0x43, 0x5A, 0x9B, 0xA6]}; + const IID CLSID_WbemQuery = {0xEAC8A024, 0x21E2, 0x4523, [0xAD, 0x73, 0xA7, 0x1A, 0x0A, 0xA2, 0xF5, 0x6A]}; + const IID CLSID_WbemRefresher = {0xC71566F2, 0x561E, 0x11D1, [0xAD, 0x87, 0x00, 0xC0, 0x4F, 0xD8, 0xFD, 0xFF]}; + const IID CLSID_WbemStatusCodeText = {0xEB87E1BD, 0x3233, 0x11D2, [0xAE, 0xC9, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20]}; + const IID CLSID_WbemUnauthenticatedLocator = {0x443E7B79, 0xDE31, 0x11D2, [0xB3, 0x40, 0x00, 0x10, 0x4B, 0xCC, 0x4B, 0x4A]}; + const IID CLSID_WbemUninitializedClassObject = {0x7A0227F6, 0x7108, 0x11D1, [0xAD, 0x90, 0x00, 0xC0, 0x4F, 0xD8, 0xFD, 0xFF]}; + const IID CLSID_WebBrowser = {0x8856F961, 0x340A, 0x11D0, [0xA9, 0x6B, 0x00, 0xC0, 0x4F, 0xD7, 0x05, 0xA2]}; + const IID CLSID_WebBrowser_V1 = {0xEAB22AC3, 0x30C1, 0x11CF, [0xA7, 0xEB, 0x00, 0x00, 0xC0, 0x5B, 0xAE, 0x0B]}; + const IID CLSID_WebCheck = {0xE6FB5E20, 0xDE35, 0x11CF, [0x9C, 0x87, 0x00, 0xAA, 0x00, 0x51, 0x27, 0xED]}; + const IID CLSID_WebCheckDefaultProcess = {0xC733E4B0, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID CLSID_WebCheckOfflineSync = {0x7FC0B86E, 0x5FA7, 0x11D1, [0xBC, 0x7C, 0x00, 0xC0, 0x4F, 0xD9, 0x29, 0xDB]}; + const IID CLSID_WebCrawlerAgent = {0x08165EA0, 0xE946, 0x11CF, [0x9C, 0x87, 0x00, 0xAA, 0x00, 0x51, 0x27, 0xED]}; + const IID CLSID_WebViewFolderContents = {0x1820FED0, 0x473E, 0x11D0, [0xA9, 0x6C, 0x00, 0xC0, 0x4F, 0xD7, 0x05, 0xA2]}; + const IID CLSID_WebWizardHost = {0xC827F149, 0x55C1, 0x4D28, [0x93, 0x5E, 0x57, 0xE4, 0x7C, 0xAE, 0xD9, 0x73]}; + const IID CLSID_wfolders = {0xBAE31F9A, 0x1B81, 0x11D2, [0xA9, 0x7A, 0x00, 0xC0, 0x4F, 0x8E, 0xCB, 0x02]}; + const IID CLSID_WinNTConnectionObject = {0x7992C6EB, 0xD142, 0x4332, [0x83, 0x1E, 0x31, 0x54, 0xC5, 0x0A, 0x83, 0x16]}; + const IID CLSID_WinNTObject = {0xB8324185, 0x4050, 0x4220, [0x98, 0x0A, 0xAB, 0x14, 0x62, 0x3E, 0x06, 0x3A]}; + const IID CLSID_WinNTSystemInfo = {0x66182EC4, 0xAFD1, 0x11D2, [0x9C, 0xB9, 0x00, 0x00, 0xF8, 0x7A, 0x36, 0x9E]}; + const IID CLSID_WMIExtension = {0xF0975AFE, 0x5C7F, 0x11D2, [0x8B, 0x74, 0x00, 0x10, 0x4B, 0x2A, 0xFB, 0x41]}; + const IID CLSID_XMLDocument = {0xCFC399AF, 0xD876, 0x11D0, [0x9C, 0x10, 0x00, 0xC0, 0x4F, 0xC9, 0x9C, 0x8E]}; + const IID CLSID_XMLDSOControl = {0x550DDA30, 0x0541, 0x11D2, [0x9C, 0xA9, 0x00, 0x60, 0xB0, 0xEC, 0x3D, 0x39]}; + const IID CLSID_XMLHTTPRequest = {0xED8C108E, 0x4349, 0x11D2, [0x91, 0xA4, 0x00, 0xC0, 0x4F, 0x79, 0x69, 0xE8]}; + const IID CLSID_XMLParser = {0xD2423620, 0x51A0, 0x11D2, [0x9C, 0xAF, 0x00, 0x60, 0xB0, 0xEC, 0x3D, 0x39]}; + const IID DB_PROPERTY_AUTOMATICUPDATE = {0xC8B52209, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_BTREE = {0xC8B52201, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_CHECK_OPTION = {0xC8B5220B, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_CLUSTERED = {0xC8B521FF, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_CONSTRAINT_CHECK_DEFERRE = {0xC8B521F0, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_DISALLOWNULL = {0xC8B52205, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_DROP_CASCADE = {0xC8B521F3, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_EXPLICITUPDATE = {0xC8B5220A, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_FILLFACTOR = {0xC8B52203, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_HASH = {0xC8B52202, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_IGNOREANYNULL = {0xC8B52207, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_IGNORENULL = {0xC8B52206, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_INITIALSIZE = {0xC8B52204, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_NONCLUSTERED = {0xC8B52200, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_ON_COMMIT_PRESERVE_ROWS = {0xC8B52230, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_PRIMARY = {0xC8B521FC, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_SORTBOOKMARKS = {0xC8B52208, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DB_PROPERTY_UNIQUE = {0xC8B521F5, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBCOL_SELFCOLUMNS = {0xC8B52231, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBCOL_SPECIALCOL = {0xC8B52232, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBGUID_COMMAND = {0xC8B522F8, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBGUID_CONTAINEROBJECT = {0xC8B522FB, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBGUID_DBSQL = {0xC8B521FB, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBGUID_DEFAULT = {0xC8B521FB, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBGUID_DSO = {0xC8B522F4, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBGUID_HISTOGRAM_ROWSET = {0xC8B52300, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBGUID_LDAPDialect = {0xEFF65380, 0x9C98, 0x11CF, [0xB9, 0x63, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBGUID_LIKE_DOS = {0xC8B521F7, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBGUID_LIKE_MAPI = {0xC8B521F9, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBGUID_LIKE_OFS = {0xC8B521F8, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBGUID_LIKE_SQL = {0xC8B521F6, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBGUID_MDX = {0xA07CCCD0, 0x8148, 0x11D0, [0x87, 0xBB, 0x00, 0xC0, 0x4F, 0xC3, 0x39, 0x42]}; + const IID DBGUID_ROW = {0xC8B522F7, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBGUID_ROWSET = {0xC8B522F6, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBGUID_SESSION = {0xC8B522F5, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBGUID_SQL = {0xC8B522D7, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBGUID_STREAM = {0xC8B522F9, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBOBJECT_CHARACTERSET = {0xC8B522ED, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBOBJECT_COLLATION = {0xC8B522EA, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBOBJECT_COLUMN = {0xC8B522E4, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBOBJECT_DATABASE = {0xC8B522E5, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBOBJECT_DOMAIN = {0xC8B522E9, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBOBJECT_PROCEDURE = {0xC8B522E6, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBOBJECT_SCHEMA = {0xC8B522E8, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBOBJECT_SCHEMAROWSET = {0xC8B522EC, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBOBJECT_TABLE = {0xC8B522E2, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBOBJECT_TRANSLATION = {0xC8B522EE, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBOBJECT_TRUSTEE = {0xC8B522EB, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBOBJECT_VIEW = {0xC8B522E7, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_ADSIBIND = {0x6DA66DC8, 0xB7E8, 0x11D2, [0x9D, 0x60, 0x00, 0xC0, 0x4F, 0x68, 0x93, 0x45]}; + const IID DBPROPSET_ADSISEARCH = {0xCFCFC928, 0x9AA2, 0x11D0, [0xA7, 0x9A, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0xA8]}; + const IID DBPROPSET_COLUMN = {0xC8B522B9, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_COLUMNALL = {0xC8B522F0, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_CONSTRAINTALL = {0xC8B522FA, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_DATASOURCE = {0xC8B522BA, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_DATASOURCEALL = {0xC8B522C0, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_DATASOURCEINFO = {0xC8B522BB, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_DATASOURCEINFOALL = {0xC8B522C1, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_DBINIT = {0xC8B522BC, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_DBINITALL = {0xC8B522CA, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_INDEX = {0xC8B522BD, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_INDEXALL = {0xC8B522F1, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_PROPERTIESINERROR = {0xC8B522D4, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_ROWSET = {0xC8B522BE, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_ROWSETALL = {0xC8B522C2, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_SESSION = {0xC8B522C6, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_SESSIONALL = {0xC8B522C7, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_STREAM = {0xC8B522FD, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_STREAMALL = {0xC8B522FE, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_TABLE = {0xC8B522BF, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_TABLEALL = {0xC8B522F2, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_TRUSTEE = {0xC8B522E1, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_TRUSTEEALL = {0xC8B522F3, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_VIEW = {0xC8B522DF, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBPROPSET_VIEWALL = {0xC8B522FC, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_ASSERTIONS = {0xC8B52210, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_CATALOGS = {0xC8B52211, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_CHARACTER_SETS = {0xC8B52212, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_CHECK_CONSTRAINTS = {0xC8B52215, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_CHECK_CONSTRAINTS_BY_TABLE = {0xC8B52301, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_COLLATIONS = {0xC8B52213, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_COLUMN_DOMAIN_USAGE = {0xC8B5221B, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_COLUMN_PRIVILEGES = {0xC8B52221, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_COLUMNS = {0xC8B52214, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_CONSTRAINT_COLUMN_USAGE = {0xC8B52216, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_CONSTRAINT_TABLE_USAGE = {0xC8B52217, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_FOREIGN_KEYS = {0xC8B522C4, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_INDEXES = {0xC8B5221E, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_KEY_COLUMN_USAGE = {0xC8B52218, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_PRIMARY_KEYS = {0xC8B522C5, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_PROCEDURE_COLUMNS = {0xC8B522C9, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_PROCEDURE_PARAMETERS = {0xC8B522B8, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_PROCEDURES = {0xC8B52224, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_PROVIDER_TYPES = {0xC8B5222C, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_REFERENTIAL_CONSTRAINTS = {0xC8B52219, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_SCHEMATA = {0xC8B52225, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_SQL_LANGUAGES = {0xC8B52226, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_STATISTICS = {0xC8B52227, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_TABLE_CONSTRAINTS = {0xC8B5221A, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_TABLE_PRIVILEGES = {0xC8B52222, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_TABLE_STATISTICS = {0xC8B522FF, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_TABLES = {0xC8B52229, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_TABLES_INFO = {0xC8B522E0, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_TRANSLATIONS = {0xC8B5222A, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_TRUSTEE = {0xC8B522EF, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_USAGE_PRIVILEGES = {0xC8B52223, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_VIEW_COLUMN_USAGE = {0xC8B5222E, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_VIEW_TABLE_USAGE = {0xC8B5222F, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DBSCHEMA_VIEWS = {0xC8B5222D, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID DDVPTYPE_BROOKTREE = {0x1352A560, 0xDA61, 0x11CF, [0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8]}; + const IID DDVPTYPE_CCIR656 = {0xFCA326A0, 0xDA60, 0x11CF, [0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8]}; + const IID DDVPTYPE_E_HREFH_VREFL = {0x92783220, 0xDA60, 0x11CF, [0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8]}; + const IID DDVPTYPE_E_HREFL_VREFL = {0xE09C77E0, 0xDA60, 0x11CF, [0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8]}; + const IID DDVPTYPE_PHILIPS = {0x332CF160, 0xDA61, 0x11CF, [0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8]}; + const IID DIID__SearchAssistantEvents = {0x1611FDDA, 0x445B, 0x11D2, [0x85, 0xDE, 0x00, 0xC0, 0x4F, 0xA3, 0x5C, 0x89]}; + const IID DIID_DispCEventObj = {0x3050F558, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispDOMChildrenCollection = {0x3050F577, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTCAttachBehavior = {0x3050F583, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTCDefaultDispatch = {0x3050F573, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTCDescBehavior = {0x3050F57E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTCEventBehavior = {0x3050F574, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTCMethodBehavior = {0x3050F587, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTCPropertyBehavior = {0x3050F57F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLAnchorElement = {0x3050F502, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLAppBehavior = {0x3050F57C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLAreaElement = {0x3050F503, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLAreasCollection = {0x3050F56A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLAttributeCollection = {0x3050F56C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLBaseElement = {0x3050F518, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLBaseFontElement = {0x3050F504, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLBGsound = {0x3050F53C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLBlockElement = {0x3050F506, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLBody = {0x3050F507, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLBRElement = {0x3050F53A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLButtonElement = {0x3050F51F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLCommentElement = {0x3050F50A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLCurrentStyle = {0x3050F557, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLDDElement = {0x3050F50B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLDefaults = {0x3050F58C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLDivElement = {0x3050F50C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLDivPosition = {0x3050F50F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLDListElement = {0x3050F53B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLDocument = {0x3050F55F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLDOMAttribute = {0x3050F564, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLDOMImplementation = {0x3050F58F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLDOMTextNode = {0x3050F565, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLDTElement = {0x3050F50D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLElementCollection = {0x3050F56B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLEmbed = {0x3050F52E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLFieldSetElement = {0x3050F545, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLFontElement = {0x3050F512, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLFormElement = {0x3050F510, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLFrameBase = {0x3050F541, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLFrameElement = {0x3050F513, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLFrameSetSite = {0x3050F514, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLGenericElement = {0x3050F563, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLHeadElement = {0x3050F561, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLHeaderElement = {0x3050F515, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLHRElement = {0x3050F53D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLHtmlElement = {0x3050F560, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLIFrame = {0x3050F51B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLImg = {0x3050F51C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLInputElement = {0x3050F57D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLIsIndexElement = {0x3050F519, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLLabelElement = {0x3050F522, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLLegendElement = {0x3050F546, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLLIElement = {0x3050F523, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLLinkElement = {0x3050F524, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLListElement = {0x3050F525, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLMapElement = {0x3050F526, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLMarqueeElement = {0x3050F527, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLMetaElement = {0x3050F517, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLNextIdElement = {0x3050F51A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLNoShowElement = {0x3050F528, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLObjectElement = {0x3050F529, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLOListElement = {0x3050F52A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLOptionElement = {0x3050F52B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLParaElement = {0x3050F52C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLParamElement = {0x3050F590, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLPhraseElement = {0x3050F52D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLPopup = {0x3050F589, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLRenderStyle = {0x3050F58B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLRichtextElement = {0x3050F54D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLRuleStyle = {0x3050F55C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLScreen = {0x3050F591, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLScriptElement = {0x3050F530, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLSelectElement = {0x3050F531, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLSpanElement = {0x3050F548, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLSpanFlow = {0x3050F544, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLStyle = {0x3050F55A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLStyleElement = {0x3050F511, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLStyleSheet = {0x3050F58D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLTable = {0x3050F532, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLTableCaption = {0x3050F508, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLTableCell = {0x3050F536, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLTableCol = {0x3050F533, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLTableRow = {0x3050F535, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLTableSection = {0x3050F534, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLTextAreaElement = {0x3050F521, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLTextElement = {0x3050F537, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLTitleElement = {0x3050F516, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLUListElement = {0x3050F538, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLUnknownElement = {0x3050F539, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLWindow2 = {0x3050F55D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispHTMLWindowProxy = {0x3050F55E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispIHTMLInputButtonElement = {0x3050F51E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispIHTMLInputFileElement = {0x3050F542, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispIHTMLInputImage = {0x3050F51D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispIHTMLInputTextElement = {0x3050F520, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DispIHTMLOptionButtonElement = {0x3050F509, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_DMigrationWizardAutoEvents = {0xD2AC137D, 0xA6D8, 0x43B6, [0x98, 0x79, 0xEA, 0x34, 0xB6, 0x7E, 0x18, 0x80]}; + const IID DIID_DSearchCommandEvents = {0x60890160, 0x69F0, 0x11D1, [0xB7, 0x58, 0x00, 0xA0, 0xC9, 0x05, 0x64, 0xFE]}; + const IID DIID_DShellFolderViewEvents = {0x62112AA2, 0xEBE4, 0x11CF, [0xA5, 0xFB, 0x00, 0x20, 0xAF, 0xE7, 0x29, 0x2D]}; + const IID DIID_DShellNameSpaceEvents = {0x55136806, 0xB2DE, 0x11D1, [0xB9, 0xF2, 0x00, 0xA0, 0xC9, 0x8B, 0xC5, 0x47]}; + const IID DIID_DShellWindowsEvents = {0xFE4106E0, 0x399A, 0x11D0, [0xA4, 0x8C, 0x00, 0xA0, 0xC9, 0x0A, 0x8F, 0x39]}; + const IID DIID_DWebBridgeEvents = {0xA6D897FF, 0x0A95, 0x11D1, [0xB0, 0xBA, 0x00, 0x60, 0x08, 0x16, 0x6E, 0x11]}; + const IID DIID_DWebBrowserEvents = {0xEAB22AC2, 0x30C1, 0x11CF, [0xA7, 0xEB, 0x00, 0x00, 0xC0, 0x5B, 0xAE, 0x0B]}; + const IID DIID_DWebBrowserEvents2 = {0x34A715A0, 0x6587, 0x11D0, [0x92, 0x4A, 0x00, 0x20, 0xAF, 0xC7, 0xAC, 0x4D]}; + const IID DIID_HTMLAnchorEvents = {0x3050F29D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLAnchorEvents2 = {0x3050F610, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLAreaEvents = {0x3050F366, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLAreaEvents2 = {0x3050F611, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLButtonElementEvents = {0x3050F2B3, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLButtonElementEvents2 = {0x3050F617, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLControlElementEvents = {0x3050F4EA, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLControlElementEvents2 = {0x3050F612, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLDocumentEvents = {0x3050F260, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLDocumentEvents2 = {0x3050F613, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLElementEvents = {0x3050F33C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLElementEvents2 = {0x3050F60F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLFormElementEvents = {0x3050F364, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLFormElementEvents2 = {0x3050F614, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLFrameSiteEvents = {0x3050F800, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLFrameSiteEvents2 = {0x3050F7FF, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLImgEvents = {0x3050F25B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLImgEvents2 = {0x3050F616, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLInputFileElementEvents = {0x3050F2AF, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLInputFileElementEvents2 = {0x3050F61A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLInputImageEvents = {0x3050F2C3, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLInputImageEvents2 = {0x3050F61B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLInputTextElementEvents = {0x3050F2A7, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLInputTextElementEvents2 = {0x3050F618, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLLabelEvents = {0x3050F329, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLLabelEvents2 = {0x3050F61C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLLinkElementEvents = {0x3050F3CC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLLinkElementEvents2 = {0x3050F61D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLMapEvents = {0x3050F3BA, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLMapEvents2 = {0x3050F61E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLMarqueeElementEvents = {0x3050F2B8, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLMarqueeElementEvents2 = {0x3050F61F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLNamespaceEvents = {0x3050F6BD, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLObjectElementEvents = {0x3050F3C4, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLObjectElementEvents2 = {0x3050F620, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLOptionButtonElementEvents = {0x3050F2BD, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLOptionButtonElementEvents2 = {0x3050F619, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLPersistEvents = {0x3050F4C7, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLScriptEvents = {0x3050F3E2, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLScriptEvents2 = {0x3050F621, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLSelectElementEvents = {0x3050F302, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLSelectElementEvents2 = {0x3050F622, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLStyleElementEvents = {0x3050F3CB, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLStyleElementEvents2 = {0x3050F615, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLTableEvents = {0x3050F407, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLTableEvents2 = {0x3050F623, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLTextContainerEvents = {0x1FF6AA72, 0x5842, 0x11CF, [0xA7, 0x07, 0x00, 0xAA, 0x00, 0xC0, 0x09, 0x8D]}; + const IID DIID_HTMLTextContainerEvents2 = {0x3050F624, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_HTMLWindowEvents = {0x96A0A4E0, 0xD062, 0x11CF, [0x94, 0xB6, 0x00, 0xAA, 0x00, 0x60, 0x27, 0x5C]}; + const IID DIID_HTMLWindowEvents2 = {0x3050F625, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_IRTCDispatchEventNotification = {0x176DDFBE, 0xFEC0, 0x4D55, [0xBC, 0x87, 0x84, 0xCF, 0xF1, 0xEF, 0x7F, 0x91]}; + const IID DIID_ISWbemSinkEvents = {0x75718CA0, 0xF029, 0x11D1, [0xA1, 0xAC, 0x00, 0xC0, 0x4F, 0xB6, 0xC2, 0x23]}; + const IID DIID_ITTAPIDispatchEventNotification = {0x9F34325B, 0x7E62, 0x11D2, [0x94, 0x57, 0x00, 0xC0, 0x4F, 0x8E, 0xC8, 0x88]}; + const IID DIID_LayoutRectEvents = {0x3050F674, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID DIID_XMLDOMDocumentEvents = {0x3EFAA427, 0x272F, 0x11D2, [0x83, 0x6F, 0x00, 0x00, 0xF8, 0x7A, 0x77, 0x82]}; + const IID DPAID_ComPort = {0xF2F0CE00, 0xE0AF, 0x11CF, [0x9C, 0x4E, 0x00, 0xA0, 0xC9, 0x05, 0x42, 0x5E]}; + const IID DPAID_INet = {0xC4A54DA0, 0xE0AF, 0x11CF, [0x9C, 0x4E, 0x00, 0xA0, 0xC9, 0x05, 0x42, 0x5E]}; + const IID DPAID_INetPort = {0xE4524541, 0x8EA5, 0x11D1, [0x8A, 0x96, 0x00, 0x60, 0x97, 0xB0, 0x14, 0x11]}; + const IID DPAID_INetW = {0xE63232A0, 0x9DBF, 0x11D0, [0x9C, 0xC1, 0x00, 0xA0, 0xC9, 0x05, 0x42, 0x5E]}; + const IID DPAID_LobbyProvider = {0x59B95640, 0x9667, 0x11D0, [0xA7, 0x7D, 0x00, 0x00, 0xF8, 0x03, 0xAB, 0xFC]}; + const IID DPAID_Modem = {0xF6DCC200, 0xA2FE, 0x11D0, [0x9C, 0x4F, 0x00, 0xA0, 0xC9, 0x05, 0x42, 0x5E]}; + const IID DPAID_ModemW = {0x01FD92E0, 0xA2FF, 0x11D0, [0x9C, 0x4F, 0x00, 0xA0, 0xC9, 0x05, 0x42, 0x5E]}; + const IID DPAID_Phone = {0x78EC89A0, 0xE0AF, 0x11CF, [0x9C, 0x4E, 0x00, 0xA0, 0xC9, 0x05, 0x42, 0x5E]}; + const IID DPAID_PhoneW = {0xBA5A7A70, 0x9DBF, 0x11D0, [0x9C, 0xC1, 0x00, 0xA0, 0xC9, 0x05, 0x42, 0x5E]}; + const IID DPAID_ServiceProvider = {0x07D916C0, 0xE0AF, 0x11CF, [0x9C, 0x4E, 0x00, 0xA0, 0xC9, 0x05, 0x42, 0x5E]}; + const IID DPAID_TotalSize = {0x1318F560, 0x912C, 0x11D0, [0x9D, 0xAA, 0x00, 0xA0, 0xC9, 0x0A, 0x43, 0xCB]}; + const IID DPLPROPERTY_LobbyGuid = {0xF56920A0, 0xD218, 0x11D0, [0xBA, 0x39, 0x00, 0xC0, 0x4F, 0xD7, 0xED, 0x67]}; + const IID DPLPROPERTY_MessagesSupported = {0x762CCDA1, 0xD916, 0x11D0, [0xBA, 0x39, 0x00, 0xC0, 0x4F, 0xD7, 0xED, 0x67]}; + const IID DPLPROPERTY_PlayerGuid = {0xB4319322, 0xD20D, 0x11D0, [0xBA, 0x39, 0x00, 0xC0, 0x4F, 0xD7, 0xED, 0x67]}; + const IID DPLPROPERTY_PlayerScore = {0x48784000, 0xD219, 0x11D0, [0xBA, 0x39, 0x00, 0xC0, 0x4F, 0xD7, 0xED, 0x67]}; + const IID DPSPGUID_IPX = {0x685BC400, 0x9D2C, 0x11CF, [0xA9, 0xCD, 0x00, 0xAA, 0x00, 0x68, 0x86, 0xE3]}; + const IID DPSPGUID_MODEM = {0x44EAA760, 0xCB68, 0x11CF, [0x9C, 0x4E, 0x00, 0xA0, 0xC9, 0x05, 0x42, 0x5E]}; + const IID DPSPGUID_SERIAL = {0x0F1D6860, 0x88D9, 0x11CF, [0x9C, 0x4E, 0x00, 0xA0, 0xC9, 0x05, 0x42, 0x5E]}; + const IID DPSPGUID_TCPIP = {0x36E95EE0, 0x8577, 0x11CF, [0x96, 0x0C, 0x00, 0x80, 0xC7, 0x53, 0x4E, 0x82]}; + const IID DS3DALG_HRTF_FULL = {0xC2413340, 0x1C1B, 0x11D2, [0x94, 0xF5, 0x00, 0xC0, 0x4F, 0xC2, 0x8A, 0xCA]}; + const IID DS3DALG_HRTF_LIGHT = {0xC2413342, 0x1C1B, 0x11D2, [0x94, 0xF5, 0x00, 0xC0, 0x4F, 0xC2, 0x8A, 0xCA]}; + const IID DS3DALG_NO_VIRTUALIZATION = {0xC241333F, 0x1C1B, 0x11D2, [0x94, 0xF5, 0x00, 0xC0, 0x4F, 0xC2, 0x8A, 0xCA]}; + const IID FLAGID_Internet = {0x96300DA0, 0x2BAB, 0x11CF, [0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52]}; + const IID FMTID_AudioSummaryInformation = {0x64440490, 0x4C8B, 0x11D1, [0x8B, 0x70, 0x08, 0x00, 0x36, 0xB1, 0x1A, 0x03]}; + const IID FMTID_Briefcase = {0x328D8B21, 0x7729, 0x4BFC, [0x95, 0x4C, 0x90, 0x2B, 0x32, 0x9D, 0x56, 0xB0]}; + const IID FMTID_DiscardableInformation = {0xD725EBB0, 0xC9B8, 0x11D1, [0x89, 0xBC, 0x00, 0x00, 0xF8, 0x04, 0xB0, 0x57]}; + const IID FMTID_Displaced = {0x9B174B33, 0x40FF, 0x11D2, [0xA2, 0x7E, 0x00, 0xC0, 0x4F, 0xC3, 0x08, 0x71]}; + const IID FMTID_DocSummaryInformation = {0xD5CDD502, 0x2E9C, 0x101B, [0x93, 0x97, 0x08, 0x00, 0x2B, 0x2C, 0xF9, 0xAE]}; + const IID FMTID_DRM = {0xAEAC19E4, 0x89AE, 0x4508, [0xB9, 0xB7, 0xBB, 0x86, 0x7A, 0xBE, 0xE2, 0xED]}; + const IID FMTID_ImageProperties = {0x14B81DA1, 0x0135, 0x4D31, [0x96, 0xD9, 0x6C, 0xBF, 0xC9, 0x67, 0x1A, 0x99]}; + const IID FMTID_ImageSummaryInformation = {0x6444048F, 0x4C8B, 0x11D1, [0x8B, 0x70, 0x08, 0x00, 0x36, 0xB1, 0x1A, 0x03]}; + const IID FMTID_InternetSite = {0x000214A1, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID FMTID_Intshcut = {0x000214A0, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID FMTID_MediaFileSummaryInformation = {0x64440492, 0x4C8B, 0x11D1, [0x8B, 0x70, 0x08, 0x00, 0x36, 0xB1, 0x1A, 0x03]}; + const IID FMTID_Misc = {0x9B174B34, 0x40FF, 0x11D2, [0xA2, 0x7E, 0x00, 0xC0, 0x4F, 0xC3, 0x08, 0x71]}; + const IID FMTID_MUSIC = {0x56A3372E, 0xCE9C, 0x11D2, [0x9F, 0x0E, 0x00, 0x60, 0x97, 0xC6, 0x86, 0xF6]}; + const IID FMTID_PropertyBag = {0x20001801, 0x5DE6, 0x11D1, [0x8E, 0x38, 0x00, 0xC0, 0x4F, 0xB9, 0x38, 0x6D]}; + const IID FMTID_Query = {0x49691C90, 0x7E17, 0x101A, [0xA9, 0x1C, 0x08, 0x00, 0x2B, 0x2E, 0xCD, 0xA9]}; + const IID FMTID_ShellDetails = {0x28636AA6, 0x953D, 0x11D2, [0xB5, 0xD6, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0xD0]}; + const IID FMTID_Storage = {0xB725F130, 0x47EF, 0x101A, [0xA5, 0xF1, 0x02, 0x60, 0x8C, 0x9E, 0xEB, 0xAC]}; + const IID FMTID_SummaryInformation = {0xF29F85E0, 0x4FF9, 0x1068, [0xAB, 0x91, 0x08, 0x00, 0x2B, 0x27, 0xB3, 0xD9]}; + const IID FMTID_UserDefinedProperties = {0xD5CDD505, 0x2E9C, 0x101B, [0x93, 0x97, 0x08, 0x00, 0x2B, 0x2C, 0xF9, 0xAE]}; + const IID FMTID_VideoSummaryInformation = {0x64440491, 0x4C8B, 0x11D1, [0x8B, 0x70, 0x08, 0x00, 0x36, 0xB1, 0x1A, 0x03]}; + const IID FMTID_Volume = {0x9B174B35, 0x40FF, 0x11D2, [0xA2, 0x7E, 0x00, 0xC0, 0x4F, 0xC3, 0x08, 0x71]}; + const IID FMTID_WebView = {0xF2275480, 0xF782, 0x4291, [0xBD, 0x94, 0xF1, 0x36, 0x93, 0x51, 0x3A, 0xEC]}; + const IID GUID_ACPI_CMOS_INTERFACE_STANDARD = {0x3A8D0384, 0x6505, 0x40CA, [0xBC, 0x39, 0x56, 0xC1, 0x5F, 0x8C, 0x5F, 0xED]}; + const IID GUID_ACPI_INTERFACE_STANDARD = {0xB091A08A, 0xBA97, 0x11D0, [0xBD, 0x14, 0x00, 0xAA, 0x00, 0xB7, 0xB3, 0x2A]}; + const IID GUID_ACPI_PORT_RANGES_INTERFACE_STAND = {0xF14F609B, 0xCBBD, 0x4957, [0xA6, 0x74, 0xBC, 0x00, 0x21, 0x3F, 0x1C, 0x97]}; + const IID GUID_ACPI_REGS_INTERFACE_STANDARD = {0x06141966, 0x7245, 0x6369, [0x46, 0x2E, 0x4E, 0x65, 0x6C, 0x73, 0x6F, 0x6E]}; + const IID GUID_ARBITER_INTERFACE_STANDARD = {0xE644F185, 0x8C0E, 0x11D0, [0xBE, 0xCF, 0x08, 0x00, 0x2B, 0xE2, 0x09, 0x2F]}; + const IID GUID_BUS_INTERFACE_STANDARD = {0x496B8280, 0x6F25, 0x11D0, [0xBE, 0xAF, 0x08, 0x00, 0x2B, 0xE2, 0x09, 0x2F]}; + const IID GUID_BUS_TYPE_1394 = {0xF74E73EB, 0x9AC5, 0x45EB, [0xBE, 0x4D, 0x77, 0x2C, 0xC7, 0x1D, 0xDF, 0xB3]}; + const IID GUID_BUS_TYPE_AVC = {0xC06FF265, 0xAE09, 0x48F0, [0x81, 0x2C, 0x16, 0x75, 0x3D, 0x7C, 0xBA, 0x83]}; + const IID GUID_BUS_TYPE_DOT4PRT = {0x441EE001, 0x4342, 0x11D5, [0xA1, 0x84, 0x00, 0xC0, 0x4F, 0x60, 0x52, 0x4D]}; + const IID GUID_BUS_TYPE_EISA = {0xDDC35509, 0xF3FC, 0x11D0, [0xA5, 0x37, 0x00, 0x00, 0xF8, 0x75, 0x3E, 0xD1]}; + const IID GUID_BUS_TYPE_HID = {0xEEAF37D0, 0x1963, 0x47C4, [0xAA, 0x48, 0x72, 0x47, 0x6D, 0xB7, 0xCF, 0x49]}; + const IID GUID_BUS_TYPE_INTERNAL = {0x1530EA73, 0x086B, 0x11D1, [0xA0, 0x9F, 0x00, 0xC0, 0x4F, 0xC3, 0x40, 0xB1]}; + const IID GUID_BUS_TYPE_IRDA = {0x7AE17DC1, 0xC944, 0x44D6, [0x88, 0x1F, 0x4C, 0x2E, 0x61, 0x05, 0x3B, 0xC1]}; + const IID GUID_BUS_TYPE_ISAPNP = {0xE676F854, 0xD87D, 0x11D0, [0x92, 0xB2, 0x00, 0xA0, 0xC9, 0x05, 0x5F, 0xC5]}; + const IID GUID_BUS_TYPE_LPTENUM = {0xC4CA1000, 0x2DDC, 0x11D5, [0xA1, 0x7A, 0x00, 0xC0, 0x4F, 0x60, 0x52, 0x4D]}; + const IID GUID_BUS_TYPE_MCA = {0x1C75997A, 0xDC33, 0x11D0, [0x92, 0xB2, 0x00, 0xA0, 0xC9, 0x05, 0x5F, 0xC5]}; + const IID GUID_BUS_TYPE_PCI = {0xC8EBDFB0, 0xB510, 0x11D0, [0x80, 0xE5, 0x00, 0xA0, 0xC9, 0x25, 0x42, 0xE3]}; + const IID GUID_BUS_TYPE_PCMCIA = {0x09343630, 0xAF9F, 0x11D0, [0x92, 0xE9, 0x00, 0x00, 0xF8, 0x1E, 0x1B, 0x30]}; + const IID GUID_BUS_TYPE_SERENUM = {0x77114A87, 0x8944, 0x11D1, [0xBD, 0x90, 0x00, 0xA0, 0xC9, 0x06, 0xBE, 0x2D]}; + const IID GUID_BUS_TYPE_USB = {0x9D7DEBBC, 0xC85D, 0x11D1, [0x9E, 0xB4, 0x00, 0x60, 0x08, 0xC3, 0xA1, 0x9A]}; + const IID GUID_BUS_TYPE_USBPRINT = {0x441EE000, 0x4342, 0x11D5, [0xA1, 0x84, 0x00, 0xC0, 0x4F, 0x60, 0x52, 0x4D]}; + const IID GUID_Button = {0xA36D02F0, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_CHECKVALUEEXCLUSIVE = {0x6650430C, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_ChordParam = {0xD2AC289E, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_Clear_All_Bands = {0xD2AC28AB, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_COLOR = {0x66504301, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_ColorControlCallbacks = {0xEFD60CC2, 0x49E7, 0x11D0, [0x88, 0x9D, 0x00, 0xAA, 0x00, 0xBB, 0xB7, 0x6A]}; + const IID GUID_CommandParam = {0xD2AC289D, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_CommandParam2 = {0x28F97EF7, 0x9538, 0x11D2, [0x97, 0xA9, 0x00, 0xC0, 0x4F, 0xA3, 0x6E, 0x58]}; + const IID GUID_ConnectToDLSCollection = {0x1DB1AE6B, 0xE92E, 0x11D1, [0xA8, 0xC5, 0x00, 0xC0, 0x4F, 0xA3, 0x72, 0x6E]}; + const IID GUID_ConstantForce = {0x13541C20, 0x8E33, 0x11D0, [0x9A, 0xD0, 0x00, 0xA0, 0xC9, 0xA0, 0x6E, 0x35]}; + const IID GUID_CustomForce = {0x13541C2B, 0x8E33, 0x11D0, [0x9A, 0xD0, 0x00, 0xA0, 0xC9, 0xA0, 0x6E, 0x35]}; + const IID GUID_D3DCallbacks2 = {0x0BA584E1, 0x70B6, 0x11D0, [0x88, 0x9D, 0x00, 0xAA, 0x00, 0xBB, 0xB7, 0x6A]}; + const IID GUID_D3DCallbacks3 = {0xDDF41230, 0xEC0A, 0x11D0, [0xA9, 0xB6, 0x00, 0xAA, 0x00, 0xC0, 0x99, 0x3E]}; + const IID GUID_D3DExtendedCaps = {0x7DE41F80, 0x9D93, 0x11D0, [0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29]}; + const IID GUID_D3DParseUnknownCommandCallback = {0x2E04FFA0, 0x98E4, 0x11D1, [0x8C, 0xE1, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8]}; + const IID GUID_Damper = {0x13541C28, 0x8E33, 0x11D0, [0x9A, 0xD0, 0x00, 0xA0, 0xC9, 0xA0, 0x6E, 0x35]}; + const IID GUID_DDMoreCaps = {0x880BAF30, 0xB030, 0x11D0, [0x8E, 0xA7, 0x00, 0x60, 0x97, 0x97, 0xEA, 0x5B]}; + const IID GUID_DDMoreSurfaceCaps = {0x3B8A0466, 0xF269, 0x11D1, [0x88, 0x0B, 0x00, 0xC0, 0x4F, 0xD9, 0x30, 0xC5]}; + const IID GUID_DDStereoMode = {0xF828169C, 0xA8E8, 0x11D2, [0xA1, 0xF2, 0x00, 0xA0, 0xC9, 0x83, 0xEA, 0xF6]}; + const IID GUID_DefaultGMCollection = {0xF17E8673, 0xC3B4, 0x11D1, [0x87, 0x0B, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_DEVCLASS_1394 = {0x6BDD1FC1, 0x810F, 0x11D0, [0xBE, 0xC7, 0x08, 0x00, 0x2B, 0xE2, 0x09, 0x2F]}; + const IID GUID_DEVCLASS_1394DEBUG = {0x66F250D6, 0x7801, 0x4A64, [0xB1, 0x39, 0xEE, 0xA8, 0x0A, 0x45, 0x0B, 0x24]}; + const IID GUID_DEVCLASS_61883 = {0x7EBEFBC0, 0x3200, 0x11D2, [0xB4, 0xC2, 0x00, 0xA0, 0xC9, 0x69, 0x7D, 0x07]}; + const IID GUID_DEVCLASS_ADAPTER = {0x4D36E964, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_APMSUPPORT = {0xD45B1C18, 0xC8FA, 0x11D1, [0x9F, 0x77, 0x00, 0x00, 0xF8, 0x05, 0xF5, 0x30]}; + const IID GUID_DEVCLASS_AVC = {0xC06FF265, 0xAE09, 0x48F0, [0x81, 0x2C, 0x16, 0x75, 0x3D, 0x7C, 0xBA, 0x83]}; + const IID GUID_DEVCLASS_BATTERY = {0x72631E54, 0x78A4, 0x11D0, [0xBC, 0xF7, 0x00, 0xAA, 0x00, 0xB7, 0xB3, 0x2A]}; + const IID GUID_DEVCLASS_BLUETOOTH = {0xE0CBF06C, 0xCD8B, 0x4647, [0xBB, 0x8A, 0x26, 0x3B, 0x43, 0xF0, 0xF9, 0x74]}; + const IID GUID_DEVCLASS_CDROM = {0x4D36E965, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_COMPUTER = {0x4D36E966, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_DECODER = {0x6BDD1FC2, 0x810F, 0x11D0, [0xBE, 0xC7, 0x08, 0x00, 0x2B, 0xE2, 0x09, 0x2F]}; + const IID GUID_DEVCLASS_DISKDRIVE = {0x4D36E967, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_DISPLAY = {0x4D36E968, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_DOT4 = {0x48721B56, 0x6795, 0x11D2, [0xB1, 0xA8, 0x00, 0x80, 0xC7, 0x2E, 0x74, 0xA2]}; + const IID GUID_DEVCLASS_DOT4PRINT = {0x49CE6AC8, 0x6F86, 0x11D2, [0xB1, 0xE5, 0x00, 0x80, 0xC7, 0x2E, 0x74, 0xA2]}; + const IID GUID_DEVCLASS_ENUM1394 = {0xC459DF55, 0xDB08, 0x11D1, [0xB0, 0x09, 0x00, 0xA0, 0xC9, 0x08, 0x1F, 0xF6]}; + const IID GUID_DEVCLASS_FDC = {0x4D36E969, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_FLOPPYDISK = {0x4D36E980, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_FSFILTER_ACTIVITYMONIT = {0xB86DFF51, 0xA31E, 0x4BAC, [0xB3, 0xCF, 0xE8, 0xCF, 0xE7, 0x5C, 0x9F, 0xC2]}; + const IID GUID_DEVCLASS_FSFILTER_ANTIVIRUS = {0xB1D1A169, 0xC54F, 0x4379, [0x81, 0xDB, 0xBE, 0xE7, 0xD8, 0x8D, 0x74, 0x54]}; + const IID GUID_DEVCLASS_FSFILTER_CFSMETADATASER = {0xCDCF0939, 0xB75B, 0x4630, [0xBF, 0x76, 0x80, 0xF7, 0xBA, 0x65, 0x58, 0x84]}; + const IID GUID_DEVCLASS_FSFILTER_COMPRESSION = {0xF3586BAF, 0xB5AA, 0x49B5, [0x8D, 0x6C, 0x05, 0x69, 0x28, 0x4C, 0x63, 0x9F]}; + const IID GUID_DEVCLASS_FSFILTER_CONTENTSCREEN = {0x3E3F0674, 0xC83C, 0x4558, [0xBB, 0x26, 0x98, 0x20, 0xE1, 0xEB, 0xA5, 0xC5]}; + const IID GUID_DEVCLASS_FSFILTER_CONTINUOUSBACK = {0x71AA14F8, 0x6FAD, 0x4622, [0xAD, 0x77, 0x92, 0xBB, 0x9D, 0x7E, 0x69, 0x47]}; + const IID GUID_DEVCLASS_FSFILTER_COPYPROTECTIO = {0x89786FF1, 0x9C12, 0x402F, [0x9C, 0x9E, 0x17, 0x75, 0x3C, 0x7F, 0x43, 0x75]}; + const IID GUID_DEVCLASS_FSFILTER_ENCRYPTION = {0xA0A701C0, 0xA511, 0x42FF, [0xAA, 0x6C, 0x06, 0xDC, 0x03, 0x95, 0x57, 0x6F]}; + const IID GUID_DEVCLASS_FSFILTER_HSM = {0xD546500A, 0x2AEB, 0x45F6, [0x94, 0x82, 0xF4, 0xB1, 0x79, 0x9C, 0x31, 0x77]}; + const IID GUID_DEVCLASS_FSFILTER_INFRASTRUCTUR = {0xE55FA6F9, 0x128C, 0x4D04, [0xAB, 0xAB, 0x63, 0x0C, 0x74, 0xB1, 0x45, 0x3A]}; + const IID GUID_DEVCLASS_FSFILTER_OPENFILEBACKU = {0xF8ECAFA6, 0x66D1, 0x41A5, [0x89, 0x9B, 0x66, 0x58, 0x5D, 0x72, 0x16, 0xB7]}; + const IID GUID_DEVCLASS_FSFILTER_PHYSICALQUOTAM = {0x6A0A8E78, 0xBBA6, 0x4FC4, [0xA7, 0x09, 0x1E, 0x33, 0xCD, 0x09, 0xD6, 0x7E]}; + const IID GUID_DEVCLASS_FSFILTER_QUOTAMANAGEME = {0x8503C911, 0xA6C7, 0x4919, [0x8F, 0x79, 0x50, 0x28, 0xF5, 0x86, 0x6B, 0x0C]}; + const IID GUID_DEVCLASS_FSFILTER_REPLICATION = {0x48D3EBC4, 0x4CF8, 0x48FF, [0xB8, 0x69, 0x9C, 0x68, 0xAD, 0x42, 0xEB, 0x9F]}; + const IID GUID_DEVCLASS_FSFILTER_SECURITYENHANC = {0xD02BC3DA, 0x0C8E, 0x4945, [0x9B, 0xD5, 0xF1, 0x88, 0x3C, 0x22, 0x6C, 0x8C]}; + const IID GUID_DEVCLASS_FSFILTER_SYSTEM = {0x5D1B9AAA, 0x01E2, 0x46AF, [0x84, 0x9F, 0x27, 0x2B, 0x3F, 0x32, 0x4C, 0x46]}; + const IID GUID_DEVCLASS_FSFILTER_SYSTEMRECOVER = {0x2DB15374, 0x706E, 0x4131, [0xA0, 0xC7, 0xD7, 0xC7, 0x8E, 0xB0, 0x28, 0x9A]}; + const IID GUID_DEVCLASS_FSFILTER_UNDELETE = {0xFE8F1572, 0xC67A, 0x48C0, [0xBB, 0xAC, 0x0B, 0x5C, 0x6D, 0x66, 0xCA, 0xFB]}; + const IID GUID_DEVCLASS_GPS = {0x6BDD1FC3, 0x810F, 0x11D0, [0xBE, 0xC7, 0x08, 0x00, 0x2B, 0xE2, 0x09, 0x2F]}; + const IID GUID_DEVCLASS_HDC = {0x4D36E96A, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_HIDCLASS = {0x745A17A0, 0x74D3, 0x11D0, [0xB6, 0xFE, 0x00, 0xA0, 0xC9, 0x0F, 0x57, 0xDA]}; + const IID GUID_DEVCLASS_IMAGE = {0x6BDD1FC6, 0x810F, 0x11D0, [0xBE, 0xC7, 0x08, 0x00, 0x2B, 0xE2, 0x09, 0x2F]}; + const IID GUID_DEVCLASS_INFRARED = {0x6BDD1FC5, 0x810F, 0x11D0, [0xBE, 0xC7, 0x08, 0x00, 0x2B, 0xE2, 0x09, 0x2F]}; + const IID GUID_DEVCLASS_KEYBOARD = {0x4D36E96B, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_LEGACYDRIVER = {0x8ECC055D, 0x047F, 0x11D1, [0xA5, 0x37, 0x00, 0x00, 0xF8, 0x75, 0x3E, 0xD1]}; + const IID GUID_DEVCLASS_MEDIA = {0x4D36E96C, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_MEDIUM_CHANGER = {0xCE5939AE, 0xEBDE, 0x11D0, [0xB1, 0x81, 0x00, 0x00, 0xF8, 0x75, 0x3E, 0xC4]}; + const IID GUID_DEVCLASS_MODEM = {0x4D36E96D, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_MONITOR = {0x4D36E96E, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_MOUSE = {0x4D36E96F, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_MTD = {0x4D36E970, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_MULTIFUNCTION = {0x4D36E971, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_MULTIPORTSERIAL = {0x50906CB8, 0xBA12, 0x11D1, [0xBF, 0x5D, 0x00, 0x00, 0xF8, 0x05, 0xF5, 0x30]}; + const IID GUID_DEVCLASS_NET = {0x4D36E972, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_NETCLIENT = {0x4D36E973, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_NETSERVICE = {0x4D36E974, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_NETTRANS = {0x4D36E975, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_NODRIVER = {0x4D36E976, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_PCMCIA = {0x4D36E977, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_PNPPRINTERS = {0x4658EE7E, 0xF050, 0x11D1, [0xB6, 0xBD, 0x00, 0xC0, 0x4F, 0xA3, 0x72, 0xA7]}; + const IID GUID_DEVCLASS_PORTS = {0x4D36E978, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_PRINTER = {0x4D36E979, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_PRINTERUPGRADE = {0x4D36E97A, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_PROCESSOR = {0x50127DC3, 0x0F36, 0x415E, [0xA6, 0xCC, 0x4C, 0xB3, 0xBE, 0x91, 0x0B, 0x65]}; + const IID GUID_DEVCLASS_SBP2 = {0xD48179BE, 0xEC20, 0x11D1, [0xB6, 0xB8, 0x00, 0xC0, 0x4F, 0xA3, 0x72, 0xA7]}; + const IID GUID_DEVCLASS_SCSIADAPTER = {0x4D36E97B, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_SMARTCARDREADER = {0x50DD5230, 0xBA8A, 0x11D1, [0xBF, 0x5D, 0x00, 0x00, 0xF8, 0x05, 0xF5, 0x30]}; + const IID GUID_DEVCLASS_SOUND = {0x4D36E97C, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_SYSTEM = {0x4D36E97D, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_TAPEDRIVE = {0x6D807884, 0x7D21, 0x11CF, [0x80, 0x1C, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_UNKNOWN = {0x4D36E97E, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVCLASS_USB = {0x36FC9E60, 0xC465, 0x11CF, [0x80, 0x56, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_DEVCLASS_VOLUME = {0x71A27CDD, 0x812A, 0x11D0, [0xBE, 0xC7, 0x08, 0x00, 0x2B, 0xE2, 0x09, 0x2F]}; + const IID GUID_DEVCLASS_VOLUMESNAPSHOT = {0x533C5B84, 0xEC70, 0x11D2, [0x95, 0x05, 0x00, 0xC0, 0x4F, 0x79, 0xDE, 0xAF]}; + const IID GUID_DEVCLASS_WCEUSBS = {0x25DBCE51, 0x6C8F, 0x4A72, [0x8A, 0x6D, 0xB5, 0x4C, 0x2B, 0x4F, 0xC8, 0x35]}; + const IID GUID_DEVICE_INTERFACE_ARRIVAL = {0xCB3A4004, 0x46F0, 0x11D0, [0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05, 0x3F]}; + const IID GUID_DEVICE_INTERFACE_REMOVAL = {0xCB3A4005, 0x46F0, 0x11D0, [0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05, 0x3F]}; + const IID GUID_DEVINTERFACE_CDCHANGER = {0x53F56312, 0xB6BF, 0x11D0, [0x94, 0xF2, 0x00, 0xA0, 0xC9, 0x1E, 0xFB, 0x8B]}; + const IID GUID_DEVINTERFACE_CDROM = {0x53F56308, 0xB6BF, 0x11D0, [0x94, 0xF2, 0x00, 0xA0, 0xC9, 0x1E, 0xFB, 0x8B]}; + const IID GUID_DEVINTERFACE_COMPORT = {0x86E0D1E0, 0x8089, 0x11D0, [0x9C, 0xE4, 0x08, 0x00, 0x3E, 0x30, 0x1F, 0x73]}; + const IID GUID_DEVINTERFACE_DISK = {0x53F56307, 0xB6BF, 0x11D0, [0x94, 0xF2, 0x00, 0xA0, 0xC9, 0x1E, 0xFB, 0x8B]}; + const IID GUID_DEVINTERFACE_FLOPPY = {0x53F56311, 0xB6BF, 0x11D0, [0x94, 0xF2, 0x00, 0xA0, 0xC9, 0x1E, 0xFB, 0x8B]}; + const IID GUID_DEVINTERFACE_MEDIUMCHANGER = {0x53F56310, 0xB6BF, 0x11D0, [0x94, 0xF2, 0x00, 0xA0, 0xC9, 0x1E, 0xFB, 0x8B]}; + const IID GUID_DEVINTERFACE_PARTITION = {0x53F5630A, 0xB6BF, 0x11D0, [0x94, 0xF2, 0x00, 0xA0, 0xC9, 0x1E, 0xFB, 0x8B]}; + const IID GUID_DEVINTERFACE_SERENUM_BUS_ENUMERA = {0x4D36E978, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_DEVINTERFACE_STORAGEPORT = {0x2ACCFE60, 0xC130, 0x11D2, [0xB0, 0x82, 0x00, 0xA0, 0xC9, 0x1E, 0xFB, 0x8B]}; + const IID GUID_DEVINTERFACE_TAPE = {0x53F5630B, 0xB6BF, 0x11D0, [0x94, 0xF2, 0x00, 0xA0, 0xC9, 0x1E, 0xFB, 0x8B]}; + const IID GUID_DEVINTERFACE_VOLUME = {0x53F5630D, 0xB6BF, 0x11D0, [0x94, 0xF2, 0x00, 0xA0, 0xC9, 0x1E, 0xFB, 0x8B]}; + const IID GUID_DEVINTERFACE_WRITEONCEDISK = {0x53F5630C, 0xB6BF, 0x11D0, [0x94, 0xF2, 0x00, 0xA0, 0xC9, 0x1E, 0xFB, 0x8B]}; + const IID GUID_DirectDrawPaletteStream = {0x730C7FFC, 0x5347, 0x11D1, [0x8C, 0x4D, 0x00, 0xC0, 0x4F, 0xD9, 0x30, 0xC5]}; + const IID GUID_DirectDrawSurfaceStream = {0xE043BC46, 0x5317, 0x11D1, [0x8C, 0x4D, 0x00, 0xC0, 0x4F, 0xD9, 0x30, 0xC5]}; + const IID GUID_DirectMusicAllTypes = {0xD2AC2893, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_Disable_Auto_Download = {0xD2AC28AA, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_DisableTempo = {0x45FC707D, 0x1DB4, 0x11D2, [0xBC, 0xAC, 0x00, 0xA0, 0xC9, 0x22, 0xE6, 0xEB]}; + const IID GUID_DisableTimeSig = {0x45FC707B, 0x1DB4, 0x11D2, [0xBC, 0xAC, 0x00, 0xA0, 0xC9, 0x22, 0xE6, 0xEB]}; + const IID GUID_DMUS_PROP_DLS1 = {0x178F2F27, 0xC364, 0x11D1, [0xA7, 0x60, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12]}; + const IID GUID_DMUS_PROP_DLS2 = {0xF14599E5, 0x4689, 0x11D2, [0xAF, 0xA6, 0x00, 0xAA, 0x00, 0x24, 0xD8, 0xB6]}; + const IID GUID_DMUS_PROP_Effects = {0xCDA8D611, 0x684A, 0x11D2, [0x87, 0x1E, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_DMUS_PROP_GM_Hardware = {0x178F2F24, 0xC364, 0x11D1, [0xA7, 0x60, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12]}; + const IID GUID_DMUS_PROP_GS_Capable = {0x6496ABA2, 0x61B0, 0x11D2, [0xAF, 0xA6, 0x00, 0xAA, 0x00, 0x24, 0xD8, 0xB6]}; + const IID GUID_DMUS_PROP_GS_Hardware = {0x178F2F25, 0xC364, 0x11D1, [0xA7, 0x60, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12]}; + const IID GUID_DMUS_PROP_INSTRUMENT2 = {0x865FD372, 0x9F67, 0x11D2, [0x87, 0x2A, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_DMUS_PROP_LegacyCaps = {0xCFA7CDC2, 0x00A1, 0x11D2, [0xAA, 0xD5, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12]}; + const IID GUID_DMUS_PROP_MemorySize = {0x178F2F28, 0xC364, 0x11D1, [0xA7, 0x60, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12]}; + const IID GUID_DMUS_PROP_SampleMemorySize = {0x178F2F28, 0xC364, 0x11D1, [0xA7, 0x60, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12]}; + const IID GUID_DMUS_PROP_SamplePlaybackRate = {0x2A91F713, 0xA4BF, 0x11D2, [0xBB, 0xDF, 0x00, 0x60, 0x08, 0x33, 0xDB, 0xD8]}; + const IID GUID_DMUS_PROP_SynthSink_DSOUND = {0x0AA97844, 0xC877, 0x11D1, [0x87, 0x0C, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_DMUS_PROP_SynthSink_WAVE = {0x0AA97845, 0xC877, 0x11D1, [0x87, 0x0C, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_DMUS_PROP_Volume = {0xFEDFAE25, 0xE46E, 0x11D1, [0xAA, 0xCE, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12]}; + const IID GUID_DMUS_PROP_WavesReverb = {0x04CB5622, 0x32E5, 0x11D2, [0xAF, 0xA6, 0x00, 0xAA, 0x00, 0x24, 0xD8, 0xB6]}; + const IID GUID_DMUS_PROP_WriteLatency = {0x268A0FA0, 0x60F2, 0x11D2, [0xAF, 0xA6, 0x00, 0xAA, 0x00, 0x24, 0xD8, 0xB6]}; + const IID GUID_DMUS_PROP_WritePeriod = {0x268A0FA1, 0x60F2, 0x11D2, [0xAF, 0xA6, 0x00, 0xAA, 0x00, 0x24, 0xD8, 0xB6]}; + const IID GUID_DMUS_PROP_XG_Capable = {0x6496ABA1, 0x61B0, 0x11D2, [0xAF, 0xA6, 0x00, 0xAA, 0x00, 0x24, 0xD8, 0xB6]}; + const IID GUID_DMUS_PROP_XG_Hardware = {0x178F2F26, 0xC364, 0x11D1, [0xA7, 0x60, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12]}; + const IID GUID_Download = {0xD2AC28A7, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_Enable_Auto_Download = {0xD2AC28A9, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_EnableTempo = {0x45FC707E, 0x1DB4, 0x11D2, [0xBC, 0xAC, 0x00, 0xA0, 0xC9, 0x22, 0xE6, 0xEB]}; + const IID GUID_EnableTimeSig = {0x45FC707C, 0x1DB4, 0x11D2, [0xBC, 0xAC, 0x00, 0xA0, 0xC9, 0x22, 0xE6, 0xEB]}; + const IID GUID_FONTBOLD = {0x6650430F, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_FONTITALIC = {0x66504310, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_FONTNAME = {0x6650430D, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_FONTSIZE = {0x6650430E, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_FONTSTRIKETHROUGH = {0x66504312, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_FONTUNDERSCORE = {0x66504311, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_Friction = {0x13541C2A, 0x8E33, 0x11D0, [0x9A, 0xD0, 0x00, 0xA0, 0xC9, 0xA0, 0x6E, 0x35]}; + const IID GUID_HANDLE = {0x66504313, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_HasPathProperties = {0x0002DE81, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID GUID_HIDClass = {0x745A17A0, 0x74D3, 0x11D0, [0xB6, 0xFE, 0x00, 0xA0, 0xC9, 0x0F, 0x57, 0xDA]}; + const IID GUID_HIMETRIC = {0x66504300, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_HWPROFILE_CHANGE_CANCELLED = {0xCB3A4002, 0x46F0, 0x11D0, [0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05, 0x3F]}; + const IID GUID_HWPROFILE_CHANGE_COMPLETE = {0xCB3A4003, 0x46F0, 0x11D0, [0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05, 0x3F]}; + const IID GUID_HWPROFILE_QUERY_CHANGE = {0xCB3A4001, 0x46F0, 0x11D0, [0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05, 0x3F]}; + const IID GUID_IDirectMusicBand = {0xD2AC28AC, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_IDirectMusicChordMap = {0xD2AC28AD, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_IDirectMusicStyle = {0xD2AC28A1, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_Inertia = {0x13541C29, 0x8E33, 0x11D0, [0x9A, 0xD0, 0x00, 0xA0, 0xC9, 0xA0, 0x6E, 0x35]}; + const IID GUID_INT_ROUTE_INTERFACE_STANDARD = {0x70941BF4, 0x0073, 0x11D1, [0xA0, 0x9E, 0x00, 0xC0, 0x4F, 0xC3, 0x40, 0xB1]}; + const IID GUID_Joystick = {0x6F1D2B70, 0xD5A0, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_KernelCallbacks = {0x80863800, 0x6B06, 0x11D0, [0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8]}; + const IID GUID_KernelCaps = {0xFFAA7540, 0x7AA8, 0x11D0, [0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8]}; + const IID GUID_Key = {0x55728220, 0xD33C, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_KeyboardClass = {0x4D36E96B, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_LEGACY_DEVICE_DETECTION_STANDAR = {0x50FEB0DE, 0x596A, 0x11D2, [0xA5, 0xB8, 0x00, 0x00, 0xF8, 0x1A, 0x46, 0x19]}; + const IID GUID_MediaClass = {0x4D36E96C, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_MF_ENUMERATION_INTERFACE = {0xAEB895F0, 0x5586, 0x11D1, [0x8D, 0x84, 0x00, 0xA0, 0xC9, 0x06, 0xB2, 0x44]}; + const IID GUID_Miscellaneous2Callbacks = {0x406B2F00, 0x3E5A, 0x11D1, [0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A]}; + const IID GUID_MiscellaneousCallbacks = {0xEFD60CC0, 0x49E7, 0x11D0, [0x88, 0x9D, 0x00, 0xAA, 0x00, 0xBB, 0xB7, 0x6A]}; + const IID GUID_MotionCompCallbacks = {0xB1122B40, 0x5DA5, 0x11D1, [0x8F, 0xCF, 0x00, 0xC0, 0x4F, 0xC2, 0x9B, 0x4E]}; + const IID GUID_MouseClass = {0x4D36E96F, 0xE325, 0x11CE, [0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18]}; + const IID GUID_MuteParam = {0xD2AC28AF, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_NDIS_802_11_ADD_WEP = {0x4307BFF0, 0x2129, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_AUTHENTICATION_MODE = {0x43920A24, 0x2129, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_BASIC_RATES = {0x4A198516, 0x2068, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_BSSID = {0x2504B6C2, 0x1FA5, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_BSSID_LIST = {0x69526F9A, 0x2062, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_BSSID_LIST_SCAN = {0x0D9E01E1, 0xBA70, 0x11D4, [0xB6, 0x75, 0x00, 0x20, 0x48, 0x57, 0x03, 0x37]}; + const IID GUID_NDIS_802_11_CONFIGURATION = {0x4A4DF982, 0x2068, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_DESIRED_RATES = {0x452EE08E, 0x2536, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_DISASSOCIATE = {0x43671F40, 0x2129, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_FRAGMENTATION_THRESH = {0x69AAA7C4, 0x2062, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_INFRASTRUCTURE_MODE = {0x697D5A7E, 0x2062, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_NETWORK_TYPE_IN_USE = {0x857E2326, 0x2041, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_NETWORK_TYPES_SUPPOR = {0x8531D6E6, 0x2041, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_NUMBER_OF_ANTENNAS = {0x01779336, 0x2064, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_POWER_MODE = {0x85BE837C, 0x2041, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_PRIVACY_FILTER = {0x6733C4E9, 0x4792, 0x11D4, [0x97, 0xF1, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_REMOVE_WEP = {0x433C345C, 0x2129, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_RSSI = {0x1507DB16, 0x2053, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_RSSI_TRIGGER = {0x155689B8, 0x2053, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_RTS_THRESHOLD = {0x0134D07E, 0x2064, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_RX_ANTENNA_SELECTED = {0x01AC07A2, 0x2064, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_SSID = {0x7D2A90EA, 0x2041, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_STATISTICS = {0x42BB73B0, 0x2129, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_SUPPORTED_RATES = {0x49DB8722, 0x2068, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_TX_ANTENNA_SELECTED = {0x01DBB74A, 0x2064, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_TX_POWER_LEVEL = {0x11E6BA76, 0x2053, 0x11D4, [0x97, 0xEB, 0x00, 0xC0, 0x4F, 0x79, 0xC4, 0x03]}; + const IID GUID_NDIS_802_11_WEP_STATUS = {0xB027A21F, 0x3CFA, 0x4125, [0x80, 0x0B, 0x3F, 0x7A, 0x18, 0xFD, 0xDC, 0xDC]}; + const IID GUID_NDIS_802_3_CURRENT_ADDRESS = {0x44795700, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_802_3_MAC_OPTIONS = {0x44795703, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_802_3_MAXIMUM_LIST_SIZE = {0x44795702, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_802_3_MULTICAST_LIST = {0x44795701, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_802_3_PERMANENT_ADDRESS = {0x447956FF, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_802_3_RCV_ERROR_ALIGNMENT = {0x44795704, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_802_3_XMIT_MORE_COLLISIONS = {0x44795706, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_802_3_XMIT_ONE_COLLISION = {0x44795705, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_802_5_CURRENT_ADDRESS = {0x44795708, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_802_5_CURRENT_FUNCTIONAL = {0x44795709, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_802_5_CURRENT_GROUP = {0x4479570A, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_802_5_CURRENT_RING_STATE = {0xACF14032, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_802_5_CURRENT_RING_STATUS = {0x890A36EC, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_802_5_LAST_OPEN_STATUS = {0x4479570B, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_802_5_LINE_ERRORS = {0xACF14033, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_802_5_LOST_FRAMES = {0xACF14034, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_802_5_PERMANENT_ADDRESS = {0x44795707, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_ATM_HW_CURRENT_ADDRESS = {0x791AD1A1, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_ATM_MAX_AAL0_PACKET_SIZE = {0x791AD1A5, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_ATM_MAX_AAL1_PACKET_SIZE = {0x791AD1A6, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_ATM_MAX_AAL34_PACKET_SIZE = {0x791AD1A7, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_ATM_MAX_AAL5_PACKET_SIZE = {0x791AD191, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_ATM_MAX_ACTIVE_VCI_BITS = {0x791AD1A3, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_ATM_MAX_ACTIVE_VCS = {0x791AD1A2, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_ATM_MAX_ACTIVE_VPI_BITS = {0x791AD1A4, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_ATM_RCV_CELLS_DROPPED = {0x0A21480C, 0xE35F, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_ATM_RCV_CELLS_OK = {0x0A21480A, 0xE35F, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_ATM_SUPPORTED_AAL_TYPES = {0x791AD1A0, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_ATM_SUPPORTED_SERVICE_CATEG = {0x791AD19F, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_ATM_SUPPORTED_VC_RATES = {0x791AD19E, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_ATM_XMIT_CELLS_OK = {0x0A21480B, 0xE35F, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_ENUMERATE_ADAPTER = {0x981F2D7F, 0xB1F3, 0x11D0, [0x8D, 0xD7, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_ENUMERATE_VC = {0x981F2D82, 0xB1F3, 0x11D0, [0x8D, 0xD7, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_ATTACHMENT_TYPE = {0xACF1403D, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_DOWNSTREAM_NODE_LONG = {0xACF1403F, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_FRAME_ERRORS = {0xACF14040, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_FRAMES_LOST = {0xACF14041, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_LCONNECTION_STATE = {0xACF14045, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_LCT_FAILURES = {0xACF14043, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_LEM_REJECTS = {0xACF14044, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_LONG_CURRENT_ADDR = {0xACF14036, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_LONG_MAX_LIST_SIZE = {0xACF14038, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_LONG_MULTICAST_LIST = {0xACF14037, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_LONG_PERMANENT_ADDR = {0xACF14035, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_RING_MGT_STATE = {0xACF14042, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_SHORT_CURRENT_ADDR = {0xACF1403A, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_SHORT_MAX_LIST_SIZE = {0xACF1403C, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_SHORT_MULTICAST_LIST = {0xACF1403B, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_SHORT_PERMANENT_ADDR = {0xACF14039, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_FDDI_UPSTREAM_NODE_LONG = {0xACF1403E, 0xA61C, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CO_DRIVER_VERSION = {0x791AD198, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CO_HARDWARE_STATUS = {0x791AD192, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CO_LINK_SPEED = {0x791AD195, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CO_MAC_OPTIONS = {0x791AD19A, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CO_MEDIA_CONNECT_STATU = {0x791AD19B, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CO_MEDIA_IN_USE = {0x791AD194, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CO_MEDIA_SUPPORTED = {0x791AD193, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CO_MINIMUM_LINK_SPEED = {0x791AD19D, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CO_RCV_PDUS_ERROR = {0x0A214808, 0xE35F, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CO_RCV_PDUS_NO_BUFFER = {0x0A214809, 0xE35F, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CO_RCV_PDUS_OK = {0x0A214806, 0xE35F, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CO_VENDOR_DESCRIPTION = {0x791AD197, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CO_VENDOR_DRIVER_VERSI = {0x791AD19C, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CO_VENDOR_ID = {0x791AD196, 0xE35C, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CO_XMIT_PDUS_ERROR = {0x0A214807, 0xE35F, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CO_XMIT_PDUS_OK = {0x0A214805, 0xE35F, 0x11D0, [0x96, 0x92, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CURRENT_LOOKAHEAD = {0x5EC10361, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_CURRENT_PACKET_FILTER = {0x5EC10360, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_DRIVER_VERSION = {0x5EC10362, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_HARDWARE_STATUS = {0x5EC10354, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_LINK_SPEED = {0x5EC10359, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_MAC_OPTIONS = {0x5EC10365, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_MAXIMUM_FRAME_SIZE = {0x5EC10358, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_MAXIMUM_LOOKAHEAD = {0x5EC10357, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_MAXIMUM_SEND_PACKETS = {0x5EC10367, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_MAXIMUM_TOTAL_SIZE = {0x5EC10363, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_MEDIA_CONNECT_STATUS = {0x5EC10366, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_MEDIA_IN_USE = {0x5EC10356, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_MEDIA_SUPPORTED = {0x5EC10355, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_PHYSICAL_MEDIUM = {0x418CA16D, 0x3937, 0x4208, [0x94, 0x0A, 0xEC, 0x61, 0x96, 0x27, 0x80, 0x85]}; + const IID GUID_NDIS_GEN_RCV_ERROR = {0x447956FD, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_RCV_NO_BUFFER = {0x447956FE, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_RCV_OK = {0x447956FB, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_RECEIVE_BLOCK_SIZE = {0x5EC1035D, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_RECEIVE_BUFFER_SPACE = {0x5EC1035B, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_TRANSMIT_BLOCK_SIZE = {0x5EC1035C, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_TRANSMIT_BUFFER_SPACE = {0x5EC1035A, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_VENDOR_DESCRIPTION = {0x5EC1035F, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_VENDOR_DRIVER_VERSION = {0x447956F9, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_VENDOR_ID = {0x5EC1035E, 0xA61A, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_VLAN_ID = {0x765DC702, 0xC5E8, 0x4B67, [0x84, 0x3B, 0x3F, 0x5A, 0x4F, 0xF2, 0x64, 0x8B]}; + const IID GUID_NDIS_GEN_XMIT_ERROR = {0x447956FC, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_GEN_XMIT_OK = {0x447956FA, 0xA61B, 0x11D0, [0x8D, 0xD4, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_LAN_CLASS = {0xAD498944, 0x762F, 0x11D0, [0x8D, 0xCB, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_NOTIFY_ADAPTER_ARRIVAL = {0x981F2D81, 0xB1F3, 0x11D0, [0x8D, 0xD7, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_NOTIFY_ADAPTER_REMOVAL = {0x981F2D80, 0xB1F3, 0x11D0, [0x8D, 0xD7, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_NOTIFY_BIND = {0x5413531C, 0xB1F3, 0x11D0, [0x8D, 0xD7, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_NOTIFY_UNBIND = {0x6E3CE1EC, 0xB1F3, 0x11D0, [0x8D, 0xD7, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_NOTIFY_VC_ARRIVAL = {0x182F9E0C, 0xB1F3, 0x11D0, [0x8D, 0xD7, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_NOTIFY_VC_REMOVAL = {0x981F2D79, 0xB1F3, 0x11D0, [0x8D, 0xD7, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_STATUS_LINK_SPEED_CHANGE = {0x981F2D85, 0xB1F3, 0x11D0, [0x8D, 0xD7, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_STATUS_MEDIA_CONNECT = {0x981F2D7D, 0xB1F3, 0x11D0, [0x8D, 0xD7, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_STATUS_MEDIA_DISCONNECT = {0x981F2D7E, 0xB1F3, 0x11D0, [0x8D, 0xD7, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_STATUS_MEDIA_SPECIFIC_INDIC = {0x981F2D84, 0xB1F3, 0x11D0, [0x8D, 0xD7, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_STATUS_RESET_END = {0x981F2D77, 0xB1F3, 0x11D0, [0x8D, 0xD7, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_STATUS_RESET_START = {0x981F2D76, 0xB1F3, 0x11D0, [0x8D, 0xD7, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C]}; + const IID GUID_NDIS_WAKE_ON_MAGIC_PACKET_ONLY = {0xA14F1C97, 0x8839, 0x4F8A, [0x99, 0x96, 0xA2, 0x89, 0x96, 0xEB, 0xBF, 0x1D]}; + const IID GUID_NETSHELL_PROPS = {0x2D15A9A1, 0xA556, 0x4189, [0x91, 0xAD, 0x02, 0x74, 0x58, 0xF1, 0x1A, 0x07]}; + const IID GUID_NonLocalVidMemCaps = {0x86C4FA80, 0x8D84, 0x11D0, [0x94, 0xE8, 0x00, 0xC0, 0x4F, 0xC3, 0x41, 0x37]}; + const IID GUID_NOTIFICATION_CHORD = {0xD2AC289B, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_NOTIFICATION_COMMAND = {0xD2AC289C, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_NOTIFICATION_MEASUREANDBEAT = {0xD2AC289A, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_NOTIFICATION_PERFORMANCE = {0x81F75BC5, 0x4E5D, 0x11D2, [0xBC, 0xC7, 0x00, 0xA0, 0xC9, 0x22, 0xE6, 0xEB]}; + const IID GUID_NOTIFICATION_SEGMENT = {0xD2AC2899, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_NULL = {0x00000000, 0x0000, 0x0000, [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]}; + const IID GUID_OPTIONVALUEEXCLUSIVE = {0x6650430B, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_OptSurfaceKmodeInfo = {0xE05C8472, 0x51D4, 0x11D1, [0x8C, 0xCE, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8]}; + const IID GUID_OptSurfaceUmodeInfo = {0x9D792804, 0x5FA8, 0x11D1, [0x8C, 0xD0, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8]}; + const IID GUID_PathProperty = {0x0002DE80, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID GUID_PCI_BUS_INTERFACE_STANDARD = {0x496B8281, 0x6F25, 0x11D0, [0xBE, 0xAF, 0x08, 0x00, 0x2B, 0xE2, 0x09, 0x2F]}; + const IID GUID_PCI_DEVICE_PRESENT_INTERFACE = {0xD1B82C26, 0xBF49, 0x45EF, [0xB2, 0x16, 0x71, 0xCB, 0xD7, 0x88, 0x9B, 0x57]}; + const IID GUID_PCMCIA_BUS_INTERFACE_STANDARD = {0x76173AF0, 0xC504, 0x11D1, [0x94, 0x7F, 0x00, 0xC0, 0x4F, 0xB9, 0x60, 0xEE]}; + const IID GUID_PerfAutoDownload = {0xFB09565B, 0x3631, 0x11D2, [0xBC, 0xB8, 0x00, 0xA0, 0xC9, 0x22, 0xE6, 0xEB]}; + const IID GUID_PerfMasterGrooveLevel = {0xD2AC28B2, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_PerfMasterTempo = {0xD2AC28B0, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_PerfMasterVolume = {0xD2AC28B1, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_PNP_CUSTOM_NOTIFICATION = {0xACA73F8E, 0x8D23, 0x11D1, [0xAC, 0x7D, 0x00, 0x00, 0xF8, 0x75, 0x71, 0xD0]}; + const IID GUID_PNP_POWER_NOTIFICATION = {0xC2CF0660, 0xEB7A, 0x11D1, [0xBD, 0x7F, 0x00, 0x00, 0xF8, 0x75, 0x71, 0xD0]}; + const IID GUID_POV = {0xA36D02F2, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_POWER_DEVICE_ENABLE = {0x827C0A6F, 0xFEB0, 0x11D0, [0xBD, 0x26, 0x00, 0xAA, 0x00, 0xB7, 0xB3, 0x2A]}; + const IID GUID_POWER_DEVICE_TIMEOUTS = {0xA45DA735, 0xFEB0, 0x11D0, [0xBD, 0x26, 0x00, 0xAA, 0x00, 0xB7, 0xB3, 0x2A]}; + const IID GUID_POWER_DEVICE_WAKE_ENABLE = {0xA9546A82, 0xFEB0, 0x11D0, [0xBD, 0x26, 0x00, 0xAA, 0x00, 0xB7, 0xB3, 0x2A]}; + const IID GUID_QOS_BESTEFFORT_BANDWIDTH = {0xED885290, 0x40EC, 0x11D1, [0x2C, 0x91, 0x00, 0xAA, 0x00, 0x57, 0x49, 0x15]}; + const IID GUID_QOS_ENABLE_AVG_STATS = {0xBAFB6D11, 0x27C4, 0x4801, [0xA4, 0x6F, 0xEF, 0x80, 0x80, 0xC1, 0x88, 0xC8]}; + const IID GUID_QOS_ENABLE_WINDOW_ADJUSTMENT = {0xAA966725, 0xD3E9, 0x4C55, [0xB3, 0x35, 0x2A, 0x00, 0x27, 0x9A, 0x1E, 0x64]}; + const IID GUID_QOS_FLOW_8021P_CONFORMING = {0x08C1E013, 0xFCD2, 0x11D2, [0xBE, 0x1E, 0x00, 0xA0, 0xC9, 0x9E, 0xE6, 0x3B]}; + const IID GUID_QOS_FLOW_8021P_NONCONFORMING = {0x09023F91, 0xFCD2, 0x11D2, [0xBE, 0x1E, 0x00, 0xA0, 0xC9, 0x9E, 0xE6, 0x3B]}; + const IID GUID_QOS_FLOW_COUNT = {0x1147F880, 0x40ED, 0x11D1, [0x2C, 0x91, 0x00, 0xAA, 0x00, 0x57, 0x49, 0x15]}; + const IID GUID_QOS_FLOW_IP_CONFORMING = {0x07F99A8B, 0xFCD2, 0x11D2, [0xBE, 0x1E, 0x00, 0xA0, 0xC9, 0x9E, 0xE6, 0x3B]}; + const IID GUID_QOS_FLOW_IP_NONCONFORMING = {0x087A5987, 0xFCD2, 0x11D2, [0xBE, 0x1E, 0x00, 0xA0, 0xC9, 0x9E, 0xE6, 0x3B]}; + const IID GUID_QOS_FLOW_MODE = {0x5C82290A, 0x515A, 0x11D2, [0x8E, 0x58, 0x00, 0xC0, 0x4F, 0xC9, 0xBF, 0xCB]}; + const IID GUID_QOS_ISSLOW_FLOW = {0xABF273A4, 0xEE07, 0x11D2, [0xBE, 0x1B, 0x00, 0xA0, 0xC9, 0x9E, 0xE6, 0x3B]}; + const IID GUID_QOS_LATENCY = {0xFC408EF0, 0x40EC, 0x11D1, [0x2C, 0x91, 0x00, 0xAA, 0x00, 0x57, 0x49, 0x15]}; + const IID GUID_QOS_MAX_OUTSTANDING_SENDS = {0x161FFA86, 0x6120, 0x11D1, [0x2C, 0x91, 0x00, 0xAA, 0x00, 0x57, 0x49, 0x15]}; + const IID GUID_QOS_NON_BESTEFFORT_LIMIT = {0x185C44E0, 0x40ED, 0x11D1, [0x2C, 0x91, 0x00, 0xAA, 0x00, 0x57, 0x49, 0x15]}; + const IID GUID_QOS_REMAINING_BANDWIDTH = {0xC4C51720, 0x40EC, 0x11D1, [0x2C, 0x91, 0x00, 0xAA, 0x00, 0x57, 0x49, 0x15]}; + const IID GUID_QOS_STATISTICS_BUFFER = {0xBB2C0980, 0xE900, 0x11D1, [0xB0, 0x7E, 0x00, 0x80, 0xC7, 0x13, 0x82, 0xBF]}; + const IID GUID_QOS_TIMER_RESOLUTION = {0xBA10CC88, 0xF13E, 0x11D2, [0xBE, 0x1B, 0x00, 0xA0, 0xC9, 0x9E, 0xE6, 0x3B]}; + const IID GUID_RampForce = {0x13541C21, 0x8E33, 0x11D0, [0x9A, 0xD0, 0x00, 0xA0, 0xC9, 0xA0, 0x6E, 0x35]}; + const IID GUID_RhythmParam = {0xD2AC289F, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_RxAxis = {0xA36D02F4, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_RyAxis = {0xA36D02F5, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_RzAxis = {0xA36D02E3, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_SawtoothDown = {0x13541C26, 0x8E33, 0x11D0, [0x9A, 0xD0, 0x00, 0xA0, 0xC9, 0xA0, 0x6E, 0x35]}; + const IID GUID_SawtoothUp = {0x13541C25, 0x8E33, 0x11D0, [0x9A, 0xD0, 0x00, 0xA0, 0xC9, 0xA0, 0x6E, 0x35]}; + const IID GUID_SeedVariations = {0x65B76FA5, 0xFF37, 0x11D2, [0x81, 0x4E, 0x00, 0xC0, 0x4F, 0xA3, 0x6E, 0x58]}; + const IID GUID_Sine = {0x13541C23, 0x8E33, 0x11D0, [0x9A, 0xD0, 0x00, 0xA0, 0xC9, 0xA0, 0x6E, 0x35]}; + const IID GUID_Slider = {0xA36D02E4, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_Spring = {0x13541C27, 0x8E33, 0x11D0, [0x9A, 0xD0, 0x00, 0xA0, 0xC9, 0xA0, 0x6E, 0x35]}; + const IID GUID_Square = {0x13541C22, 0x8E33, 0x11D0, [0x9A, 0xD0, 0x00, 0xA0, 0xC9, 0xA0, 0x6E, 0x35]}; + const IID GUID_StandardMIDIFile = {0x06621075, 0xE92E, 0x11D1, [0xA8, 0xC5, 0x00, 0xC0, 0x4F, 0xA3, 0x72, 0x6E]}; + const IID GUID_SysKeyboard = {0x6F1D2B61, 0xD5A0, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_SysKeyboardEm = {0x6F1D2B82, 0xD5A0, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_SysKeyboardEm2 = {0x6F1D2B83, 0xD5A0, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_SysMouse = {0x6F1D2B60, 0xD5A0, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_SysMouseEm = {0x6F1D2B80, 0xD5A0, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_SysMouseEm2 = {0x6F1D2B81, 0xD5A0, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_TARGET_DEVICE_QUERY_REMOVE = {0xCB3A4006, 0x46F0, 0x11D0, [0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05, 0x3F]}; + const IID GUID_TARGET_DEVICE_REMOVE_CANCELLED = {0xCB3A4007, 0x46F0, 0x11D0, [0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05, 0x3F]}; + const IID GUID_TARGET_DEVICE_REMOVE_COMPLETE = {0xCB3A4008, 0x46F0, 0x11D0, [0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05, 0x3F]}; + const IID GUID_TempoParam = {0xD2AC28A5, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_TimeSignature = {0xD2AC28A4, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_TRANSLATOR_INTERFACE_STANDARD = {0x6C154A92, 0xAACF, 0x11D0, [0x8D, 0x2A, 0x00, 0xA0, 0xC9, 0x06, 0xB2, 0x44]}; + const IID GUID_Triangle = {0x13541C24, 0x8E33, 0x11D0, [0x9A, 0xD0, 0x00, 0xA0, 0xC9, 0xA0, 0x6E, 0x35]}; + const IID GUID_TRISTATE = {0x6650430A, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_Unknown = {0xA36D02F3, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_Unload = {0xD2AC28A8, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID GUID_UserModeDriverInfo = {0xF0B0E8E2, 0x5F97, 0x11D1, [0x8C, 0xD0, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8]}; + const IID GUID_UserModeDriverPassword = {0x97F861B6, 0x60A1, 0x11D1, [0x8C, 0xD0, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8]}; + const IID GUID_VideoPortCallbacks = {0xEFD60CC1, 0x49E7, 0x11D0, [0x88, 0x9D, 0x00, 0xAA, 0x00, 0xBB, 0xB7, 0x6A]}; + const IID GUID_VideoPortCaps = {0xEFD60CC3, 0x49E7, 0x11D0, [0x88, 0x9D, 0x00, 0xAA, 0x00, 0xBB, 0xB7, 0x6A]}; + const IID GUID_XAxis = {0xA36D02E0, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_XPOS = {0x66504306, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_XPOSPIXEL = {0x66504302, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_XSIZE = {0x66504308, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_XSIZEPIXEL = {0x66504304, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_YAxis = {0xA36D02E1, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_YPOS = {0x66504307, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_YPOSPIXEL = {0x66504303, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_YSIZE = {0x66504309, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_YSIZEPIXEL = {0x66504305, 0xBE0F, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID GUID_ZAxis = {0xA36D02E2, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID GUID_ZPixelFormats = {0x93869880, 0x36CF, 0x11D1, [0x9B, 0x1B, 0x00, 0xAA, 0x00, 0xBB, 0xB8, 0xAE]}; + const IID IID_AsyncIAdviseSink = {0x00000150, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_AsyncIAdviseSink2 = {0x00000151, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_AsyncIBackgroundCopyCallback = {0xCA29D251, 0xB4BB, 0x4679, [0xA3, 0xD9, 0xAE, 0x80, 0x06, 0x11, 0x9D, 0x54]}; + const IID IID_AsyncIClusCfgBaseCluster = {0xA8A5C614, 0x2518, 0x47F5, [0x96, 0xCA, 0xCA, 0xFA, 0x7F, 0xFB, 0xAF, 0x68]}; + const IID IID_AsyncIClusCfgCallback = {0xEBCE8945, 0xAC69, 0x4B3A, [0x86, 0x5D, 0xE2, 0xD4, 0xEB, 0x33, 0xE4, 0x1B]}; + const IID IID_AsyncIClusCfgClusterInfo = {0x8BDBA247, 0x04F5, 0x4114, [0x83, 0x7E, 0xB2, 0x63, 0x41, 0x2A, 0x4B, 0x64]}; + const IID IID_AsyncIClusCfgCredentials = {0x54AA9406, 0xA409, 0x4B49, [0xB3, 0x14, 0x5F, 0x0A, 0x0C, 0xE4, 0xC8, 0x8F]}; + const IID IID_AsyncIClusCfgEvictCleanup = {0x6FE3E362, 0xD373, 0x4C5F, [0xA0, 0xAF, 0x1D, 0xFE, 0x84, 0x93, 0xC6, 0x55]}; + const IID IID_AsyncIClusCfgInitialize = {0x2A0EB82E, 0xF878, 0x492A, [0x95, 0x1E, 0xAE, 0x00, 0x09, 0x18, 0xC4, 0xA6]}; + const IID IID_AsyncIClusCfgIPAddressInfo = {0xAAEAF0A5, 0xE310, 0x4604, [0xA5, 0x5E, 0x2F, 0x9D, 0xDC, 0x41, 0x57, 0xA9]}; + const IID IID_AsyncIClusCfgManagedResourceInfo = {0x73616028, 0x1243, 0x4749, [0xAD, 0x84, 0x0B, 0x5E, 0xB3, 0x58, 0xFF, 0xA0]}; + const IID IID_AsyncIClusCfgMemberSetChangeListe = {0x2B645350, 0x2643, 0x4ABC, [0xA4, 0xE5, 0x82, 0x4D, 0x88, 0x1B, 0x75, 0x82]}; + const IID IID_AsyncIClusCfgNetworkInfo = {0xED71FD2D, 0xAD02, 0x4DFC, [0xB3, 0x76, 0x5F, 0xFA, 0x5F, 0x5A, 0x7C, 0x2C]}; + const IID IID_AsyncIClusCfgNodeInfo = {0x4F3BB40B, 0xDF27, 0x40A0, [0xB3, 0x1A, 0xBA, 0x18, 0x32, 0x4C, 0xEB, 0x9D]}; + const IID IID_AsyncIClusCfgPartitionInfo = {0xEC1EBD9F, 0x5866, 0x4846, [0x89, 0x52, 0xEC, 0x36, 0xC3, 0x96, 0x1E, 0xEF]}; + const IID IID_AsyncIClusCfgResourceTypeCreate = {0x3AFCE3B9, 0x5F3E, 0x4DDF, [0xA8, 0xF4, 0x4B, 0x4F, 0xCB, 0xF2, 0x8F, 0x8F]}; + const IID IID_AsyncIClusCfgResourceTypeInfo = {0xC649A282, 0xC847, 0x4F5C, [0x98, 0x41, 0xD2, 0xF7, 0x3B, 0x5A, 0xA7, 0x1D]}; + const IID IID_AsyncIClusCfgServer = {0x2A1640AA, 0x4561, 0x4A08, [0xB5, 0xD9, 0x0A, 0xA3, 0x8C, 0x6B, 0xE6, 0x28]}; + const IID IID_AsyncIClusCfgStartupListener = {0xD282CAF0, 0x2EDE, 0x4AB9, [0xA5, 0xD5, 0xF7, 0xBD, 0xE3, 0xD2, 0x3F, 0x10]}; + const IID IID_AsyncIClusCfgStartupNotify = {0xC2B0D06A, 0x6353, 0x4EE1, [0xB2, 0x53, 0x6B, 0x0D, 0x75, 0xDB, 0x2C, 0xD3]}; + const IID IID_AsyncIEnumClusCfgIPAddresses = {0xBD5F35BA, 0x0BC0, 0x455F, [0x92, 0x6D, 0xC3, 0xD3, 0x56, 0x41, 0x94, 0x87]}; + const IID IID_AsyncIEnumClusCfgManagedResource = {0xB138483F, 0x9695, 0x4FA6, [0xA9, 0x8F, 0x0D, 0xE2, 0xFB, 0x35, 0x54, 0x49]}; + const IID IID_AsyncIEnumClusCfgNetworks = {0xF56B9B0D, 0xE7B8, 0x49EC, [0xA8, 0x43, 0x54, 0x75, 0x07, 0x6B, 0x94, 0x7D]}; + const IID IID_AsyncIEnumClusCfgPartitions = {0x4440BB6A, 0xB0AC, 0x479D, [0xB5, 0x34, 0x72, 0x65, 0xA3, 0x1D, 0x6C, 0x56]}; + const IID IID_AsyncIMultiQI = {0x000E0020, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_AsyncIPipeByte = {0xDB2F3ACB, 0x2F86, 0x11D1, [0x8E, 0x04, 0x00, 0xC0, 0x4F, 0xB9, 0x98, 0x9A]}; + const IID IID_AsyncIPipeDouble = {0xDB2F3ACF, 0x2F86, 0x11D1, [0x8E, 0x04, 0x00, 0xC0, 0x4F, 0xB9, 0x98, 0x9A]}; + const IID IID_AsyncIPipeLong = {0xDB2F3ACD, 0x2F86, 0x11D1, [0x8E, 0x04, 0x00, 0xC0, 0x4F, 0xB9, 0x98, 0x9A]}; + const IID IID_AsyncIUnknown = {0x000E0000, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_DFConstraint = {0x4A3DF050, 0x23BD, 0x11D2, [0x93, 0x9F, 0x00, 0xA0, 0xC9, 0x1E, 0xED, 0xBA]}; + const IID IID_DIEnumWbemClassObject = {0xCB7CA037, 0xF729, 0x11D0, [0x9E, 0x4D, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8]}; + const IID IID_DIWbemCallResult = {0xCB7CA039, 0xF729, 0x11D0, [0x9E, 0x4D, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8]}; + const IID IID_DIWbemClassObject = {0xCB7CA033, 0xF729, 0x11D0, [0x9E, 0x4D, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8]}; + const IID IID_DIWbemContext = {0xCB7CA038, 0xF729, 0x11D0, [0x9E, 0x4D, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8]}; + const IID IID_DIWbemLocator = {0xCB7CA035, 0xF729, 0x11D0, [0x9E, 0x4D, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8]}; + const IID IID_DIWbemObjectSink = {0xCB7CA036, 0xF729, 0x11D0, [0x9E, 0x4D, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8]}; + const IID IID_DIWbemQualifierSet = {0xCB7CA034, 0xF729, 0x11D0, [0x9E, 0x4D, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8]}; + const IID IID_DIWbemServices = {0xCB7CA03A, 0xF729, 0x11D0, [0x9E, 0x4D, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8]}; + const IID IID_Folder = {0xBBCBDE60, 0xC3FF, 0x11CE, [0x83, 0x50, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_Folder2 = {0xF0D2D8EF, 0x3890, 0x11D2, [0xBF, 0x8B, 0x00, 0xC0, 0x4F, 0xB9, 0x36, 0x61]}; + const IID IID_Folder3 = {0xA7AE5F64, 0xC4D7, 0x4D7F, [0x93, 0x07, 0x4D, 0x24, 0xEE, 0x54, 0xB8, 0x41]}; + const IID IID_FolderItem = {0xFAC32C80, 0xCBE4, 0x11CE, [0x83, 0x50, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_FolderItem2 = {0xEDC817AA, 0x92B8, 0x11D1, [0xB0, 0x75, 0x00, 0xC0, 0x4F, 0xC3, 0x3A, 0xA5]}; + const IID IID_FolderItems = {0x744129E0, 0xCBE5, 0x11CE, [0x83, 0x50, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_FolderItems2 = {0xC94F0AD0, 0xF363, 0x11D2, [0xA3, 0x27, 0x00, 0xC0, 0x4F, 0x8E, 0xEC, 0x7F]}; + const IID IID_FolderItems3 = {0xEAA7C309, 0xBBEC, 0x49D5, [0x82, 0x1D, 0x64, 0xD9, 0x66, 0xCB, 0x66, 0x7F]}; + const IID IID_FolderItemVerb = {0x08EC3E00, 0x50B0, 0x11CF, [0x96, 0x0C, 0x00, 0x80, 0xC7, 0xF4, 0xEE, 0x85]}; + const IID IID_FolderItemVerbs = {0x1F8352C0, 0x50B0, 0x11CF, [0x96, 0x0C, 0x00, 0x80, 0xC7, 0xF4, 0xEE, 0x85]}; + const IID IID_IAccessControl = {0xEEDD23E0, 0x8410, 0x11CE, [0xA1, 0xC3, 0x08, 0x00, 0x2B, 0x2B, 0x8D, 0x8F]}; + const IID IID_IAccessible = {0x618736E0, 0x3C3D, 0x11CF, [0x81, 0x0C, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71]}; + const IID IID_IAccessibleHandler = {0x03022430, 0xABC4, 0x11D0, [0xBD, 0xE2, 0x00, 0xAA, 0x00, 0x1A, 0x19, 0x53]}; + const IID IID_IAccessor = {0x0C733A8C, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IAccIdentity = {0x7852B78D, 0x1CFD, 0x41C1, [0xA6, 0x15, 0x9C, 0x0C, 0x85, 0x96, 0x0B, 0x5F]}; + const IID IID_IAccountDiscovery = {0xFA202BBC, 0x6ABE, 0x4C17, [0xB1, 0x84, 0x57, 0x0B, 0x6C, 0xF2, 0x56, 0xA6]}; + const IID IID_IAccPropServer = {0x76C0DBBB, 0x15E0, 0x4E7B, [0xB6, 0x1B, 0x20, 0xEE, 0xEA, 0x20, 0x01, 0xE0]}; + const IID IID_IAccPropServices = {0x6E26E776, 0x04F0, 0x495D, [0x80, 0xE4, 0x33, 0x30, 0x35, 0x2E, 0x31, 0x69]}; + const IID IID_IACList = {0x77A130B0, 0x94FD, 0x11D0, [0xA5, 0x44, 0x00, 0xC0, 0x4F, 0xD7, 0xD0, 0x62]}; + const IID IID_IACList2 = {0x470141A0, 0x5186, 0x11D2, [0xBB, 0xB6, 0x00, 0x60, 0x97, 0x7B, 0x46, 0x4C]}; + const IID IID_IActionProgress = {0x49FF1173, 0xEADC, 0x446D, [0x92, 0x85, 0x15, 0x64, 0x53, 0xA6, 0x43, 0x1C]}; + const IID IID_IActionProgressDialog = {0x49FF1172, 0xEADC, 0x446D, [0x92, 0x85, 0x15, 0x64, 0x53, 0xA6, 0x43, 0x1C]}; + const IID IID_IActiveDesktop = {0xF490EB00, 0x1240, 0x11D1, [0x98, 0x88, 0x00, 0x60, 0x97, 0xDE, 0xAC, 0xF9]}; + const IID IID_IActiveIME = {0x6FE20962, 0xD077, 0x11D0, [0x8F, 0xE7, 0x00, 0xAA, 0x00, 0x6B, 0xCC, 0x59]}; + const IID IID_IActiveIME2 = {0xE1C4BF0E, 0x2D53, 0x11D2, [0x93, 0xE1, 0x00, 0x60, 0xB0, 0x67, 0xB8, 0x6E]}; + const IID IID_IActiveIMMApp = {0x08C0E040, 0x62D1, 0x11D1, [0x93, 0x26, 0x00, 0x60, 0xB0, 0x67, 0xB8, 0x6E]}; + const IID IID_IActiveIMMIME = {0x08C03411, 0xF96B, 0x11D0, [0xA4, 0x75, 0x00, 0xAA, 0x00, 0x6B, 0xCC, 0x59]}; + const IID IID_IActiveIMMMessagePumpOwner = {0xB5CF2CFA, 0x8AEB, 0x11D1, [0x93, 0x64, 0x00, 0x60, 0xB0, 0x67, 0xB8, 0x6E]}; + const IID IID_IActiveIMMRegistrar = {0xB3458082, 0xBD00, 0x11D1, [0x93, 0x9B, 0x00, 0x60, 0xB0, 0x67, 0xB8, 0x6E]}; + const IID IID_IActiveScript = {0xBB1A2AE1, 0xA4F9, 0x11CF, [0x8F, 0x20, 0x00, 0x80, 0x5F, 0x2C, 0xD0, 0x64]}; + const IID IID_IActiveScriptAuthor = {0x9C109DA0, 0x7006, 0x11D1, [0xB3, 0x6C, 0x00, 0xA0, 0xC9, 0x11, 0xE8, 0xB2]}; + const IID IID_IActiveScriptAuthorProcedure = {0x7E2D4B70, 0xBD9A, 0x11D0, [0x93, 0x36, 0x00, 0xA0, 0xC9, 0x0D, 0xCA, 0xA9]}; + const IID IID_IActiveScriptDebug = {0x51973C10, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IActiveScriptDebug32 = {0x51973C10, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IActiveScriptDebug64 = {0xBC437E23, 0xF5B8, 0x47F4, [0xBB, 0x79, 0x7D, 0x1C, 0xE5, 0x48, 0x3B, 0x86]}; + const IID IID_IActiveScriptEncode = {0xBB1A2AE3, 0xA4F9, 0x11CF, [0x8F, 0x20, 0x00, 0x80, 0x5F, 0x2C, 0xD0, 0x64]}; + const IID IID_IActiveScriptError = {0xEAE1BA61, 0xA4ED, 0x11CF, [0x8F, 0x20, 0x00, 0x80, 0x5F, 0x2C, 0xD0, 0x64]}; + const IID IID_IActiveScriptError64 = {0xB21FB2A1, 0x5B8F, 0x4963, [0x8C, 0x21, 0x21, 0x45, 0x0F, 0x84, 0xED, 0x7F]}; + const IID IID_IActiveScriptErrorDebug = {0x51973C12, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IActiveScriptGarbageCollector = {0x6AA2C4A0, 0x2B53, 0x11D4, [0xA2, 0xA0, 0x00, 0x10, 0x4B, 0xD3, 0x50, 0x90]}; + const IID IID_IActiveScriptHostEncode = {0xBEE9B76E, 0xCFE3, 0x11D1, [0xB7, 0x47, 0x00, 0xC0, 0x4F, 0xC2, 0xB0, 0x85]}; + const IID IID_IActiveScriptParse = {0xBB1A2AE2, 0xA4F9, 0x11CF, [0x8F, 0x20, 0x00, 0x80, 0x5F, 0x2C, 0xD0, 0x64]}; + const IID IID_IActiveScriptParse32 = {0xBB1A2AE2, 0xA4F9, 0x11CF, [0x8F, 0x20, 0x00, 0x80, 0x5F, 0x2C, 0xD0, 0x64]}; + const IID IID_IActiveScriptParse64 = {0xC7EF7658, 0xE1EE, 0x480E, [0x97, 0xEA, 0xD5, 0x2C, 0xB4, 0xD7, 0x6D, 0x17]}; + const IID IID_IActiveScriptParseProcedure = {0xAA5B6A80, 0xB834, 0x11D0, [0x93, 0x2F, 0x00, 0xA0, 0xC9, 0x0D, 0xCA, 0xA9]}; + const IID IID_IActiveScriptParseProcedure2_32 = {0x71EE5B20, 0xFB04, 0x11D1, [0xB3, 0xA8, 0x00, 0xA0, 0xC9, 0x11, 0xE8, 0xB2]}; + const IID IID_IActiveScriptParseProcedure2_64 = {0xFE7C4271, 0x210C, 0x448D, [0x9F, 0x54, 0x76, 0xDA, 0xB7, 0x04, 0x7B, 0x28]}; + const IID IID_IActiveScriptParseProcedure32 = {0xAA5B6A80, 0xB834, 0x11D0, [0x93, 0x2F, 0x00, 0xA0, 0xC9, 0x0D, 0xCA, 0xA9]}; + const IID IID_IActiveScriptParseProcedure64 = {0xC64713B6, 0xE029, 0x4CC5, [0x92, 0x00, 0x43, 0x8B, 0x72, 0x89, 0x0B, 0x6A]}; + const IID IID_IActiveScriptParseProcedureOld = {0x1CFF0050, 0x6FDD, 0x11D0, [0x93, 0x28, 0x00, 0xA0, 0xC9, 0x0D, 0xCA, 0xA9]}; + const IID IID_IActiveScriptParseProcedureOld32 = {0x1CFF0050, 0x6FDD, 0x11D0, [0x93, 0x28, 0x00, 0xA0, 0xC9, 0x0D, 0xCA, 0xA9]}; + const IID IID_IActiveScriptParseProcedureOld64 = {0x21F57128, 0x08C9, 0x4638, [0xBA, 0x12, 0x22, 0xD1, 0x5D, 0x88, 0xDC, 0x5C]}; + const IID IID_IActiveScriptProperty = {0x4954E0D0, 0xFBC7, 0x11D1, [0x84, 0x10, 0x00, 0x60, 0x08, 0xC3, 0xFB, 0xFC]}; + const IID IID_IActiveScriptSIPInfo = {0x764651D0, 0x38DE, 0x11D4, [0xA2, 0xA3, 0x00, 0x10, 0x4B, 0xD3, 0x50, 0x90]}; + const IID IID_IActiveScriptSite = {0xDB01A1E3, 0xA42B, 0x11CF, [0x8F, 0x20, 0x00, 0x80, 0x5F, 0x2C, 0xD0, 0x64]}; + const IID IID_IActiveScriptSiteDebug32 = {0x51973C11, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IActiveScriptSiteDebug64 = {0xD6B96B0A, 0x7463, 0x402C, [0x92, 0xAC, 0x89, 0x98, 0x42, 0x26, 0x94, 0x2F]}; + const IID IID_IActiveScriptSiteInterruptPoll = {0x539698A0, 0xCDCA, 0x11CF, [0xA5, 0xEB, 0x00, 0xAA, 0x00, 0x47, 0xA0, 0x63]}; + const IID IID_IActiveScriptSiteWindow = {0xD10F6761, 0x83E9, 0x11CF, [0x8F, 0x20, 0x00, 0x80, 0x5F, 0x2C, 0xD0, 0x64]}; + const IID IID_IActiveScriptStats = {0xB8DA6310, 0xE19B, 0x11D0, [0x93, 0x3C, 0x00, 0xA0, 0xC9, 0x0D, 0xCA, 0xA9]}; + const IID IID_IActiveXSafetyProvider = {0x69FF5101, 0xFC63, 0x11D0, [0x97, 0xEB, 0x00, 0xAA, 0x00, 0x61, 0x53, 0x33]}; + const IID IID_IAdapterInfo = {0x480BF94A, 0x09FD, 0x4F8A, [0xA3, 0xE0, 0xB0, 0x70, 0x02, 0x82, 0xD8, 0x4D]}; + const IID IID_IAdapterNotificationSink = {0x44AB2DC3, 0x23B2, 0x47DE, [0x82, 0x28, 0x2E, 0x1C, 0xCE, 0xEB, 0x99, 0x11]}; + const IID IID_IAddEvents = {0xD710A6AE, 0x3371, 0x11D1, [0xBE, 0x5B, 0x00, 0xC0, 0x4F, 0xC9, 0xE2, 0xBB]}; + const IID IID_IAddressBarParser = {0xC9D81948, 0x443A, 0x40C7, [0x94, 0x5C, 0x5E, 0x17, 0x1B, 0x8C, 0x66, 0xB4]}; + const IID IID_IAddrExclusionControl = {0x00000148, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IAddrTrackingControl = {0x00000147, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IADs = {0xFD8256D0, 0xFD15, 0x11CE, [0xAB, 0xC4, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53]}; + const IID IID_IADsAccessControlEntry = {0xB4F3A14C, 0x9BDD, 0x11D0, [0x85, 0x2C, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID IID_IADsAccessControlList = {0xB7EE91CC, 0x9BDD, 0x11D0, [0x85, 0x2C, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID IID_IADsAcePrivate = {0xFD145DF2, 0xFD96, 0x4135, [0x9B, 0x22, 0x68, 0xFF, 0x0F, 0x6B, 0xF5, 0xBB]}; + const IID IID_IADsAcl = {0x8452D3AB, 0x0869, 0x11D1, [0xA3, 0x77, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID IID_IADsADSystemInfo = {0x5BB11929, 0xAFD1, 0x11D2, [0x9C, 0xB9, 0x00, 0x00, 0xF8, 0x7A, 0x36, 0x9E]}; + const IID IID_IADsBackLink = {0xFD1302BD, 0x4080, 0x11D1, [0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID IID_IADsCaseIgnoreList = {0x7B66B533, 0x4680, 0x11D1, [0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID IID_IADsClass = {0xC8F93DD0, 0x4AE0, 0x11CF, [0x9E, 0x73, 0x00, 0xAA, 0x00, 0x4A, 0x56, 0x91]}; + const IID IID_IADsCollection = {0x72B945E0, 0x253B, 0x11CF, [0xA9, 0x88, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49]}; + const IID IID_IADsComputer = {0xEFE3CC70, 0x1D9F, 0x11CF, [0xB1, 0xF3, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53]}; + const IID IID_IADsComputerOperations = {0xEF497680, 0x1D9F, 0x11CF, [0xB1, 0xF3, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53]}; + const IID IID_IADsContainer = {0x001677D0, 0xFD16, 0x11CE, [0xAB, 0xC4, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53]}; + const IID IID_IADsDeleteOps = {0xB2BD0902, 0x8878, 0x11D1, [0x8C, 0x21, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID IID_IADsDNWithBinary = {0x7E99C0A2, 0xF935, 0x11D2, [0xBA, 0x96, 0x00, 0xC0, 0x4F, 0xB6, 0xD0, 0xD1]}; + const IID IID_IADsDNWithString = {0x370DF02E, 0xF934, 0x11D2, [0xBA, 0x96, 0x00, 0xC0, 0x4F, 0xB6, 0xD0, 0xD1]}; + const IID IID_IADsDomain = {0x00E4C220, 0xFD16, 0x11CE, [0xAB, 0xC4, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53]}; + const IID IID_IADsEmail = {0x97AF011A, 0x478E, 0x11D1, [0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID IID_IADsExtension = {0x3D35553C, 0xD2B0, 0x11D1, [0xB1, 0x7B, 0x00, 0x00, 0xF8, 0x75, 0x93, 0xA0]}; + const IID IID_IADsFaxNumber = {0xA910DEA9, 0x4680, 0x11D1, [0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID IID_IADsFileService = {0xA89D1900, 0x31CA, 0x11CF, [0xA9, 0x8A, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49]}; + const IID IID_IADsFileServiceOperations = {0xA02DED10, 0x31CA, 0x11CF, [0xA9, 0x8A, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49]}; + const IID IID_IADsFileShare = {0xEB6DCAF0, 0x4B83, 0x11CF, [0xA9, 0x95, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49]}; + const IID IID_IADsGroup = {0x27636B00, 0x410F, 0x11CF, [0xB1, 0xFF, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53]}; + const IID IID_IADsHold = {0xB3EB3B37, 0x4080, 0x11D1, [0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID IID_IADsLargeInteger = {0x9068270B, 0x0939, 0x11D1, [0x8B, 0xE1, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID IID_IADsLocality = {0xA05E03A2, 0xEFFE, 0x11CF, [0x8A, 0xBC, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID IID_IADsMembers = {0x451A0030, 0x72EC, 0x11CF, [0xB0, 0x3B, 0x00, 0xAA, 0x00, 0x6E, 0x09, 0x75]}; + const IID IID_IADsNamespaces = {0x28B96BA0, 0xB330, 0x11CF, [0xA9, 0xAD, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49]}; + const IID IID_IADsNameTranslate = {0xB1B272A3, 0x3625, 0x11D1, [0xA3, 0xA4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID IID_IADsNetAddress = {0xB21A50A9, 0x4080, 0x11D1, [0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID IID_IADsO = {0xA1CD2DC6, 0xEFFE, 0x11CF, [0x8A, 0xBC, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID IID_IADsObjectOptions = {0x46F14FDA, 0x232B, 0x11D1, [0xA8, 0x08, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0xA8]}; + const IID IID_IADsObjOptPrivate = {0x81CBB829, 0x1867, 0x11D2, [0x92, 0x20, 0x00, 0xC0, 0x4F, 0xB6, 0xD0, 0xD1]}; + const IID IID_IADsOctetList = {0x7B28B80F, 0x4680, 0x11D1, [0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID IID_IADsOpenDSObject = {0xDDF2891E, 0x0F9C, 0x11D0, [0x8A, 0xD4, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID IID_IADsOU = {0xA2F733B8, 0xEFFE, 0x11CF, [0x8A, 0xBC, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID IID_IADsPath = {0xB287FCD5, 0x4080, 0x11D1, [0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID IID_IADsPathname = {0xD592AED4, 0xF420, 0x11D0, [0xA3, 0x6E, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID IID_IADsPathnameProvider = {0xAACD1D30, 0x8BD0, 0x11D2, [0x92, 0xA9, 0x00, 0xC0, 0x4F, 0x79, 0xF8, 0x34]}; + const IID IID_IADsPostalAddress = {0x7ADECF29, 0x4680, 0x11D1, [0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID IID_IADsPrintJob = {0x32FB6780, 0x1ED0, 0x11CF, [0xA9, 0x88, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49]}; + const IID IID_IADsPrintJobOperations = {0x9A52DB30, 0x1ECF, 0x11CF, [0xA9, 0x88, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49]}; + const IID IID_IADsPrintQueue = {0xB15160D0, 0x1226, 0x11CF, [0xA9, 0x85, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49]}; + const IID IID_IADsPrintQueueOperations = {0x124BE5C0, 0x156E, 0x11CF, [0xA9, 0x86, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49]}; + const IID IID_IADsProperty = {0xC8F93DD3, 0x4AE0, 0x11CF, [0x9E, 0x73, 0x00, 0xAA, 0x00, 0x4A, 0x56, 0x91]}; + const IID IID_IADsPropertyEntry = {0x05792C8E, 0x941F, 0x11D0, [0x85, 0x29, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID IID_IADsPropertyList = {0xC6F602B6, 0x8F69, 0x11D0, [0x85, 0x28, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID IID_IADsPropertyValue = {0x79FA9AD0, 0xA97C, 0x11D0, [0x85, 0x34, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID IID_IADsPropertyValue2 = {0x306E831C, 0x5BC7, 0x11D1, [0xA3, 0xB8, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID IID_IADsReplicaPointer = {0xF60FB803, 0x4080, 0x11D1, [0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID IID_IADsResource = {0x34A05B20, 0x4AAB, 0x11CF, [0xAE, 0x2C, 0x00, 0xAA, 0x00, 0x6E, 0xBF, 0xB9]}; + const IID IID_IADsSearch = {0xC69F7780, 0x4008, 0x11D0, [0xB9, 0x4C, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0xA8]}; + const IID IID_IADsSecurityDescriptor = {0xB8C787CA, 0x9BDD, 0x11D0, [0x85, 0x2C, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID IID_IADsSecurityUtility = {0xA63251B2, 0x5F21, 0x474B, [0xAB, 0x52, 0x4A, 0x8E, 0xFA, 0xD1, 0x08, 0x95]}; + const IID IID_IADsService = {0x68AF66E0, 0x31CA, 0x11CF, [0xA9, 0x8A, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49]}; + const IID IID_IADsServiceOperations = {0x5D7B33F0, 0x31CA, 0x11CF, [0xA9, 0x8A, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49]}; + const IID IID_IADsSession = {0x398B7DA0, 0x4AAB, 0x11CF, [0xAE, 0x2C, 0x00, 0xAA, 0x00, 0x6E, 0xBF, 0xB9]}; + const IID IID_IADsSyntax = {0xC8F93DD2, 0x4AE0, 0x11CF, [0x9E, 0x73, 0x00, 0xAA, 0x00, 0x4A, 0x56, 0x91]}; + const IID IID_IADsTimestamp = {0xB2F5A901, 0x4080, 0x11D1, [0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID IID_IADsTypedName = {0xB371A349, 0x4080, 0x11D1, [0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC]}; + const IID IID_IADsUmiHelperPrivate = {0x4FE243F0, 0xAD89, 0x4CBC, [0x9B, 0x14, 0x48, 0x61, 0x26, 0x44, 0x6A, 0xE0]}; + const IID IID_IADsUser = {0x3E37E320, 0x17E2, 0x11CF, [0xAB, 0xC4, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53]}; + const IID IID_IADsValue = {0x1E3EF0AA, 0xAEF5, 0x11D0, [0x85, 0x37, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID IID_IADsWinNTSystemInfo = {0x6C6D65DC, 0xAFD1, 0x11D2, [0x9C, 0xB9, 0x00, 0x00, 0xF8, 0x7A, 0x36, 0x9E]}; + const IID IID_IAdviseSink = {0x0000010F, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IAdviseSink2 = {0x00000125, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IAdviseSinkEx = {0x3AF24290, 0x0C96, 0x11CE, [0xA0, 0xCF, 0x00, 0xAA, 0x00, 0x60, 0x0A, 0xB8]}; + const IID IID_IAlertReport = {0x4E81DFE8, 0x4CA0, 0x101A, [0x82, 0x06, 0x08, 0x00, 0x2B, 0x2F, 0xC0, 0x9B]}; + const IID IID_IAlertTarget = {0x589B61C0, 0x54E6, 0x11CE, [0x94, 0xDD, 0x00, 0xAA, 0x00, 0x51, 0xE4, 0x0F]}; + const IID IID_IAlgSetup = {0xA779AF1A, 0x009A, 0x4C44, [0xB9, 0xF0, 0x8F, 0x0F, 0x4C, 0xF2, 0xAE, 0x49]}; + const IID IID_IAlterIndex = {0x0C733AA6, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IAlterTable = {0x0C733AA5, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IAnchorClick = {0x13D5413B, 0x33B9, 0x11D2, [0x95, 0xA7, 0x00, 0xC0, 0x4F, 0x8E, 0xCB, 0x02]}; + const IID IID_IAnimationComposer = {0x5459C83D, 0x322B, 0x44B3, [0x8D, 0xAA, 0x24, 0xC9, 0x47, 0xE7, 0xB2, 0x75]}; + const IID IID_IAnimationComposer2 = {0x1A4F0E79, 0x09CD, 0x47F3, [0xAF, 0xF1, 0x48, 0x3B, 0xF3, 0xA2, 0x22, 0xDC]}; + const IID IID_IAnimationComposerFactory = {0xBEEB3233, 0xF71F, 0x4683, [0x8B, 0x05, 0x9A, 0x53, 0x14, 0xC9, 0x7D, 0xBC]}; + const IID IID_IAnimationComposerSite = {0x488FCB56, 0x8FD6, 0x4CDA, [0xA0, 0x6A, 0x5B, 0xB2, 0x32, 0x93, 0x0E, 0xCA]}; + const IID IID_IAnimationComposerSiteFactory = {0xB4EA5681, 0xED72, 0x4EFE, [0xBB, 0xD7, 0x7C, 0x47, 0xD1, 0x32, 0x56, 0x96]}; + const IID IID_IAnimationComposerSiteSink = {0x8EF76C64, 0x71CD, 0x480F, [0x96, 0xFC, 0xBA, 0x26, 0x96, 0xE6, 0x59, 0xBE]}; + const IID IID_IAnimationFragment = {0x319DFD88, 0x0AC6, 0x4AB1, [0xA1, 0x9F, 0x90, 0x22, 0x3B, 0xA2, 0xDA, 0x16]}; + const IID IID_IAnimationRoot = {0x29DF6387, 0x30B4, 0x4A62, [0x89, 0x1B, 0xA9, 0xC5, 0xBE, 0x37, 0xBE, 0x88]}; + const IID IID_IApplicationDebugger = {0x51973C2A, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IApplicationDebuggerUI = {0x51973C2B, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IApplicationGateway = {0x5134842B, 0xFDCE, 0x485D, [0x93, 0xCD, 0xDE, 0x16, 0x40, 0x64, 0x3B, 0xBE]}; + const IID IID_IApplicationGatewayServices = {0x5134842A, 0xFDCE, 0x485D, [0x93, 0xCD, 0xDE, 0x16, 0x40, 0x64, 0x3B, 0xBE]}; + const IID IID_IAppPublisher = {0x07250A10, 0x9CF9, 0x11D1, [0x90, 0x76, 0x00, 0x60, 0x08, 0x05, 0x93, 0x82]}; + const IID IID_IAsyncBindCtx = {0x79EAC9D4, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IAsyncManager = {0x0000002A, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IAsyncMoniker = {0x79EAC9D3, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IAsyncOperation = {0x3D8B0590, 0xF691, 0x11D2, [0x8E, 0xA9, 0x00, 0x60, 0x97, 0xDF, 0x5B, 0xD4]}; + const IID IID_IAsyncRpcChannelBuffer = {0xA5029FB6, 0x3C34, 0x11D1, [0x9C, 0x99, 0x00, 0xC0, 0x4F, 0xB9, 0x98, 0xAA]}; + const IID IID_IAttributesRaw = {0x6BC096A8, 0x0CE6, 0x11D1, [0xBA, 0xAE, 0x00, 0xC0, 0x4F, 0xC2, 0xE2, 0x0D]}; + const IID IID_IAuditControl = {0x1DA6292F, 0xBC66, 0x11CE, [0xAA, 0xE3, 0x00, 0xAA, 0x00, 0x4C, 0x27, 0x37]}; + const IID IID_IAuthenticate = {0x79EAC9D0, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IAutoComplete = {0x00BB2762, 0x6A77, 0x11D0, [0xA5, 0x35, 0x00, 0xC0, 0x4F, 0xD7, 0xD0, 0x62]}; + const IID IID_IAutoComplete2 = {0xEAC04BC0, 0x3791, 0x11D2, [0xBB, 0x95, 0x00, 0x60, 0x97, 0x7B, 0x46, 0x4C]}; + const IID IID_IAutoCompleteDropDown = {0x3CD141F4, 0x3C6A, 0x11D2, [0xBC, 0xAA, 0x00, 0xC0, 0x4F, 0xD9, 0x29, 0xDB]}; + const IID IID_IAutoCompList = {0x00BB2760, 0x6A77, 0x11D0, [0xA5, 0x35, 0x00, 0xC0, 0x4F, 0xD7, 0xD0, 0x62]}; + const IID IID_IAutoDiscoveryProvider = {0x9DCF4A37, 0x01DE, 0x4549, [0xA9, 0xCB, 0x3A, 0xC3, 0x1E, 0xC2, 0x3C, 0x4F]}; + const IID IID_IBackgroundCopyCallback = {0x97EA99C7, 0x0186, 0x4AD4, [0x8D, 0xF9, 0xC5, 0xB4, 0xE0, 0xED, 0x6B, 0x22]}; + const IID IID_IBackgroundCopyCallback1 = {0x084F6593, 0x3800, 0x4E08, [0x9B, 0x59, 0x99, 0xFA, 0x59, 0xAD, 0xDF, 0x82]}; + const IID IID_IBackgroundCopyError = {0x19C613A0, 0xFCB8, 0x4F28, [0x81, 0xAE, 0x89, 0x7C, 0x3D, 0x07, 0x8F, 0x81]}; + const IID IID_IBackgroundCopyFile = {0x01B7BD23, 0xFB88, 0x4A77, [0x84, 0x90, 0x58, 0x91, 0xD3, 0xE4, 0x65, 0x3A]}; + const IID IID_IBackgroundCopyGroup = {0x1DED80A7, 0x53EA, 0x424F, [0x8A, 0x04, 0x17, 0xFE, 0xA9, 0xAD, 0xC4, 0xF5]}; + const IID IID_IBackgroundCopyJob = {0x37668D37, 0x507E, 0x4160, [0x93, 0x16, 0x26, 0x30, 0x6D, 0x15, 0x0B, 0x12]}; + const IID IID_IBackgroundCopyJob1 = {0x59F5553C, 0x2031, 0x4629, [0xBB, 0x18, 0x26, 0x45, 0xA6, 0x97, 0x09, 0x47]}; + const IID IID_IBackgroundCopyJob2 = {0x54B50739, 0x686F, 0x45EB, [0x9D, 0xFF, 0xD6, 0xA9, 0xA0, 0xFA, 0xA9, 0xAF]}; + const IID IID_IBackgroundCopyManager = {0x5CE34C0D, 0x0DC9, 0x4C1F, [0x89, 0x7C, 0xDA, 0xA1, 0xB7, 0x8C, 0xEE, 0x7C]}; + const IID IID_IBackgroundCopyQMgr = {0x16F41C69, 0x09F5, 0x41D2, [0x8C, 0xD8, 0x3C, 0x08, 0xC4, 0x7B, 0xC8, 0xA8]}; + const IID IID_IBidiRequestSpl = {0x9C007000, 0xFFA8, 0x44FF, [0xB2, 0xB3, 0xAE, 0x91, 0x02, 0xC7, 0x4D, 0x4C]}; + const IID IID_IBindCtx = {0x0000000E, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IBindEventHandler = {0x63CDBCB0, 0xC1B1, 0x11D0, [0x93, 0x36, 0x00, 0xA0, 0xC9, 0x0D, 0xCA, 0xA9]}; + const IID IID_IBindHost = {0xFC4801A1, 0x2BA9, 0x11CF, [0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52]}; + const IID IID_IBinding = {0x79EAC9C0, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IBindProtocol = {0x79EAC9CD, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IBindResource = {0x0C733AB1, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IBindStatusCallback = {0x79EAC9C1, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IBindStatusCallbackHolder = {0x79EAC9CC, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IBindStatusCallbackMsg = {0x79EAC9D5, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IBitsTest1 = {0x51A183DB, 0x67E0, 0x4472, [0x86, 0x02, 0x3D, 0xBC, 0x73, 0x0B, 0x7E, 0xF5]}; + const IID IID_IBlockFormats = {0x3050F830, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IBlockingLock = {0x30F3D47A, 0x6447, 0x11D1, [0x8E, 0x3C, 0x00, 0xC0, 0x4F, 0xB9, 0x38, 0x6D]}; + const IID IID_IBoundObject = {0x9BFBBC00, 0xEFF1, 0x101A, [0x84, 0xED, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07]}; + const IID IID_IBoundObjectSite = {0x9BFBBC01, 0xEFF1, 0x101A, [0x84, 0xED, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07]}; + const IID IID_IBriefcaseStg = {0x8BCE1FA1, 0x0921, 0x101B, [0xB1, 0xFF, 0x00, 0xDD, 0x01, 0x0C, 0xCC, 0x48]}; + const IID IID_IBurnEngine = {0x520CCA66, 0x51A5, 0x11D3, [0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E]}; + const IID IID_ICallFactory = {0x1C733A30, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ICallFrame = {0xD573B4B0, 0x894E, 0x11D2, [0xB8, 0xB6, 0x00, 0xC0, 0x4F, 0xB9, 0x61, 0x8A]}; + const IID IID_ICallFrameEvents = {0xFD5E0843, 0xFC91, 0x11D0, [0x97, 0xD7, 0x00, 0xC0, 0x4F, 0xB9, 0x61, 0x8A]}; + const IID IID_ICallFrameWalker = {0x08B23919, 0x392D, 0x11D2, [0xB8, 0xA4, 0x00, 0xC0, 0x4F, 0xB9, 0x61, 0x8A]}; + const IID IID_ICallIndirect = {0xD573B4B1, 0x894E, 0x11D2, [0xB8, 0xB6, 0x00, 0xC0, 0x4F, 0xB9, 0x61, 0x8A]}; + const IID IID_ICallInterceptor = {0x60C7CA75, 0x896D, 0x11D2, [0xB8, 0xB6, 0x00, 0xC0, 0x4F, 0xB9, 0x61, 0x8A]}; + const IID IID_ICallUnmarshal = {0x5333B003, 0x2E42, 0x11D2, [0xB8, 0x9D, 0x00, 0xC0, 0x4F, 0xB9, 0x61, 0x8A]}; + const IID IID_ICancelMethodCalls = {0x00000029, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ICatalogFileInfo = {0x711C7600, 0x6B48, 0x11D1, [0xB4, 0x03, 0x00, 0xAA, 0x00, 0xB9, 0x2A, 0xF1]}; + const IID IID_ICategorizer = {0xA3B14589, 0x9174, 0x49A8, [0x89, 0xA3, 0x06, 0xA1, 0xAE, 0x2B, 0x9B, 0xA7]}; + const IID IID_ICategoryProvider = {0x9AF64809, 0x5864, 0x4C26, [0xA7, 0x20, 0xC1, 0xF7, 0x8C, 0x08, 0x6E, 0xE3]}; + const IID IID_ICatInformation = {0x0002E013, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ICatRegister = {0x0002E012, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ICDBurn = {0x3D73A659, 0xE5D0, 0x4D42, [0xAF, 0xC0, 0x51, 0x21, 0xBA, 0x42, 0x5C, 0x8D]}; + const IID IID_ICEnroll = {0x43F8F288, 0x7A20, 0x11D0, [0x8F, 0x06, 0x00, 0xC0, 0x4F, 0xC2, 0x95, 0xE1]}; + const IID IID_ICEnroll2 = {0x704CA730, 0xC90B, 0x11D1, [0x9B, 0xEC, 0x00, 0xC0, 0x4F, 0xC2, 0x95, 0xE1]}; + const IID IID_ICEnroll3 = {0xC28C2D95, 0xB7DE, 0x11D2, [0xA4, 0x21, 0x00, 0xC0, 0x4F, 0x79, 0xFE, 0x8E]}; + const IID IID_ICEnroll4 = {0xC1F1188A, 0x2EB5, 0x4A80, [0x84, 0x1B, 0x7E, 0x72, 0x9A, 0x35, 0x6D, 0x90]}; + const IID IID_IChannelHook = {0x1008C4A0, 0x7613, 0x11CF, [0x9A, 0xF1, 0x00, 0x20, 0xAF, 0x6E, 0x72, 0xF4]}; + const IID IID_IChannelMgr = {0x85BD8E82, 0x0FBA, 0x11D1, [0x90, 0xC3, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x68]}; + const IID IID_IChapteredRowset = {0x0C733A93, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ICheckBox = {0x3050F685, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ICiAdmin = {0xAE67C7D8, 0x85D3, 0x11D0, [0x8C, 0x45, 0x00, 0xC0, 0x4F, 0xC2, 0xDB, 0x8D]}; + const IID IID_ICiAdminParams = {0xA82D48C6, 0x3F0F, 0x11D0, [0x8C, 0x91, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCAdviseStatus = {0xCA05734A, 0x1218, 0x11D3, [0xAE, 0x7A, 0x00, 0xC0, 0x4F, 0x72, 0xF8, 0x31]}; + const IID IID_ICiCDeferredPropRetriever = {0xC273AF70, 0x6D72, 0x11D0, [0x8D, 0x64, 0x00, 0xA0, 0xC9, 0x08, 0xDB, 0xF1]}; + const IID IID_ICiCDocName = {0x76615076, 0x3C2B, 0x11D0, [0x8C, 0x90, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCDocNameToWorkidTranslator = {0x25FC3F54, 0x3CB4, 0x11D0, [0x8C, 0x90, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCDocNameToWorkidTranslatorEx = {0x7BBA76E6, 0xA0E3, 0x11D2, [0xBC, 0x5D, 0x00, 0xC0, 0x4F, 0xA3, 0x54, 0xBA]}; + const IID IID_ICiCDocStore = {0x46625468, 0x3C32, 0x11D0, [0x8C, 0x90, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCDocStoreEx = {0xF98282A7, 0xFA72, 0x11D1, [0x97, 0x98, 0x00, 0xC0, 0x4F, 0xC2, 0xF4, 0x10]}; + const IID IID_ICiCDocStoreLocator = {0x97EE7C06, 0x5908, 0x11D0, [0x8C, 0x9B, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCEventLogItem = {0x44CC886A, 0x4314, 0x11D0, [0x8C, 0x91, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCFilterClient = {0xA1E0BCB6, 0x3C24, 0x11D0, [0x8C, 0x90, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCFilterStatus = {0xBC5F3D60, 0x8BBC, 0x11D1, [0x8F, 0x73, 0x00, 0xA0, 0xC9, 0x19, 0x17, 0xF5]}; + const IID IID_ICiCIndexNotificationStatus = {0x5FFF3840, 0x8E76, 0x11D0, [0x8D, 0x69, 0x00, 0xA0, 0xC9, 0x08, 0xDB, 0xF1]}; + const IID IID_ICiCLangRes = {0x914C2E6C, 0x43FE, 0x11D0, [0x8C, 0x91, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiControl = {0x63DEB7F4, 0x3CCB, 0x11D0, [0x8C, 0x90, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCOpenedDoc = {0x151EDFBE, 0x3C2F, 0x11D0, [0x8C, 0x90, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCPropertyStorage = {0x4C46225A, 0x3CB5, 0x11D0, [0x8C, 0x90, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCPropRetriever = {0x77D9B2DA, 0x4401, 0x11D0, [0x8C, 0x91, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCQueryNotification = {0x0A9E9F6C, 0x3CE2, 0x11D0, [0x8C, 0x90, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCQuerySession = {0xAE461FD6, 0x4E1D, 0x11D0, [0x8C, 0x94, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCResourceMonitor = {0xF700FF8E, 0x20EE, 0x11D2, [0x80, 0xF7, 0x00, 0xC0, 0x4F, 0xA3, 0x54, 0xBA]}; + const IID IID_ICiCScope = {0x1021C882, 0x3CC0, 0x11D0, [0x8C, 0x90, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCScopeChecker = {0x7D820C9C, 0x3CBC, 0x11D0, [0x8C, 0x90, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCScopeEnumerator = {0xCF8505EA, 0x3CCA, 0x11D0, [0x8C, 0x90, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCSecurityChecker = {0xCA130CF4, 0x3CC2, 0x11D0, [0x8C, 0x90, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiCUserSecurity = {0x5D01D9CE, 0x3CC2, 0x11D0, [0x8C, 0x90, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiDocChangeNotifySink = {0x8BFA1386, 0x3CE5, 0x11D0, [0x8C, 0x90, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiEnumWorkids = {0x77900150, 0xA09C, 0x11D0, [0xA8, 0x0D, 0x00, 0xA0, 0xC9, 0x06, 0x24, 0x1A]}; + const IID IID_ICiFrameworkQuery = {0xAE67C7D9, 0x85D3, 0x11D0, [0x8C, 0x45, 0x00, 0xC0, 0x4F, 0xC2, 0xDB, 0x8D]}; + const IID IID_ICiIndexNotification = {0x4F2CD6E0, 0x8E74, 0x11D0, [0x8D, 0x69, 0x00, 0xA0, 0xC9, 0x08, 0xDB, 0xF1]}; + const IID IID_ICiIndexNotificationEntry = {0x210769D0, 0x8E75, 0x11D0, [0x8D, 0x69, 0x00, 0xA0, 0xC9, 0x08, 0xDB, 0xF1]}; + const IID IID_ICiISearchCreator = {0x7DC07FA0, 0x902E, 0x11D0, [0xA8, 0x0C, 0x00, 0xA0, 0xC9, 0x06, 0x24, 0x1A]}; + const IID IID_ICiManager = {0xCF0FCF56, 0x3CCE, 0x11D0, [0x8C, 0x90, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiPersistIncrFile = {0x31B311E2, 0x4498, 0x11D0, [0x8C, 0x91, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_ICiQueryPropertyMapper = {0xD2333EB0, 0x756B, 0x11D0, [0x8D, 0x66, 0x00, 0xA0, 0xC9, 0x08, 0xDB, 0xF1]}; + const IID IID_ICiStartup = {0x68232CB8, 0x3CCC, 0x11D0, [0x8C, 0x90, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_IClassActivator = {0x00000140, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IClassFactory = {0x00000001, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IClassFactory2 = {0xB196B28F, 0xBAB4, 0x101A, [0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07]}; + const IID IID_IClassFactoryEx = {0x342D1EA0, 0xAE25, 0x11D1, [0x89, 0xC5, 0x00, 0x60, 0x08, 0xC3, 0xFB, 0xFC]}; + const IID IID_IClientCaps = {0x7E8BC44D, 0xAEFF, 0x11D1, [0x89, 0xC2, 0x00, 0xC0, 0x4F, 0xB6, 0xBF, 0xC4]}; + const IID IID_IClientSecurity = {0x0000013D, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IClusCfgAsyncEvictCleanup = {0x52C80B95, 0xC1AD, 0x4240, [0x8D, 0x89, 0x72, 0xE9, 0xFA, 0x84, 0x02, 0x5E]}; + const IID IID_IClusCfgBaseCluster = {0xA8A5C613, 0x2518, 0x47F5, [0x96, 0xCA, 0xCA, 0xFA, 0x7F, 0xFB, 0xAF, 0x68]}; + const IID IID_IClusCfgCallback = {0x238DCA63, 0xE2EF, 0x4F32, [0xA2, 0x4D, 0xAC, 0xBF, 0x97, 0x5B, 0xE8, 0x42]}; + const IID IID_IClusCfgCapabilities = {0xD94AB253, 0x36C7, 0x41C1, [0xB5, 0x2E, 0x26, 0xB4, 0x51, 0x97, 0x5C, 0x8D]}; + const IID IID_IClusCfgClusterConnection = {0xCE6EF90C, 0x3602, 0x41E7, [0x95, 0xBD, 0xAA, 0xFD, 0x37, 0xA6, 0x76, 0xDF]}; + const IID IID_IClusCfgClusterInfo = {0x85B4BBC0, 0xDDC4, 0x4AE7, [0x82, 0x68, 0xF4, 0x85, 0x0B, 0xB2, 0xA6, 0xEE]}; + const IID IID_IClusCfgCredentials = {0x54AA9406, 0xA409, 0x4B49, [0xB3, 0x14, 0x5F, 0x0A, 0x0C, 0xE4, 0xC8, 0x8E]}; + const IID IID_IClusCfgEvictCleanup = {0x6FE3E361, 0xD373, 0x4C5F, [0xA0, 0xAF, 0x1D, 0xFE, 0x84, 0x93, 0xC6, 0x55]}; + const IID IID_IClusCfgGroupCfg = {0xDCB6D3D2, 0xA55F, 0x49E5, [0xA6, 0x4A, 0x0C, 0xCF, 0xEB, 0x01, 0xED, 0x3A]}; + const IID IID_IClusCfgInitialize = {0x2A0EB82D, 0xF878, 0x492A, [0x95, 0x1E, 0xAE, 0x00, 0x09, 0x18, 0xC4, 0xA6]}; + const IID IID_IClusCfgIPAddressInfo = {0xAAEAF0A5, 0xE310, 0x4604, [0xA5, 0x5E, 0x2F, 0x9D, 0xDC, 0x41, 0x57, 0xA8]}; + const IID IID_IClusCfgManagedResourceCfg = {0x60300A0F, 0x77E1, 0x440C, [0xBD, 0x94, 0x6B, 0xFB, 0x0D, 0xBF, 0xDB, 0x3A]}; + const IID IID_IClusCfgManagedResourceInfo = {0xE0324847, 0x1520, 0x41B0, [0xB9, 0x60, 0x54, 0x19, 0x8D, 0xA5, 0xF8, 0xAF]}; + const IID IID_IClusCfgMemberSetChangeListener = {0x2B64534F, 0x2643, 0x4ABC, [0xA4, 0xE5, 0x82, 0x4D, 0x88, 0x1B, 0x75, 0x82]}; + const IID IID_IClusCfgNetworkInfo = {0x19FC7580, 0x950A, 0x44A6, [0x96, 0x6E, 0x74, 0xB1, 0x4B, 0x20, 0x91, 0x8F]}; + const IID IID_IClusCfgNodeInfo = {0xE4B5FA15, 0xDD07, 0x439E, [0xA6, 0x23, 0x88, 0x23, 0x52, 0x4E, 0x3D, 0x19]}; + const IID IID_IClusCfgPartitionInfo = {0xEC1EBD9F, 0x5866, 0x4846, [0x89, 0x52, 0xEC, 0x36, 0xC3, 0x96, 0x1E, 0xEE]}; + const IID IID_IClusCfgPollingCallback = {0xC72DB1FD, 0x51A2, 0x43E6, [0xB7, 0x08, 0xD9, 0xDB, 0x7D, 0xA7, 0x96, 0x30]}; + const IID IID_IClusCfgPollingCallbackInfo = {0x2AF55DA7, 0xCB6F, 0x40DE, [0xBB, 0x11, 0x66, 0x73, 0x46, 0x4B, 0x2C, 0x54]}; + const IID IID_IClusCfgResourceCreate = {0x0647B41A, 0xC777, 0x443C, [0x94, 0x32, 0x02, 0xCC, 0xCF, 0x4F, 0xF4, 0x43]}; + const IID IID_IClusCfgResourcePostCreate = {0x72A9BF54, 0x13B6, 0x451F, [0x91, 0x0D, 0x69, 0x13, 0xEB, 0xF0, 0x25, 0xAB]}; + const IID IID_IClusCfgResourcePreCreate = {0x4240F6A1, 0x9D49, 0x427E, [0x8F, 0x3D, 0x09, 0x38, 0x4E, 0x1F, 0x59, 0xE4]}; + const IID IID_IClusCfgResourceTypeCreate = {0x3AFCE3B8, 0x5F3E, 0x4DDF, [0xA8, 0xF4, 0x4B, 0x4F, 0xCB, 0xF2, 0x8F, 0x8F]}; + const IID IID_IClusCfgResourceTypeInfo = {0xC649A281, 0xC847, 0x4F5C, [0x98, 0x41, 0xD2, 0xF7, 0x3B, 0x5A, 0xA7, 0x1D]}; + const IID IID_IClusCfgResTypeServicesInitializ = {0x6E109698, 0xDFC4, 0x4471, [0xAC, 0xE1, 0x04, 0x14, 0x93, 0x1B, 0x3B, 0xB3]}; + const IID IID_IClusCfgServer = {0x4C06EAE6, 0x990E, 0x4051, [0x8A, 0xA1, 0xAD, 0x4B, 0x4E, 0xAE, 0x9C, 0xAF]}; + const IID IID_IClusCfgSetCredentials = {0x58E6E5B9, 0x4788, 0x4D9A, [0x82, 0x55, 0x1E, 0x27, 0x4E, 0x5D, 0xCC, 0xB0]}; + const IID IID_IClusCfgStartupListener = {0xD282CAEF, 0x2EDE, 0x4AB9, [0xA5, 0xD5, 0xF7, 0xBD, 0xE3, 0xD2, 0x3F, 0x0F]}; + const IID IID_IClusCfgStartupNotify = {0xC2B0D069, 0x6353, 0x4EE1, [0xB2, 0x53, 0x6B, 0x0D, 0x75, 0xDB, 0x2C, 0xD3]}; + const IID IID_IClusCfgVerify = {0xD47BBEEC, 0x2286, 0x4514, [0xAA, 0x90, 0x7E, 0x88, 0xBD, 0x0F, 0xE5, 0x43]}; + const IID IID_IClusCfgWizard = {0x2EB57A3B, 0xDA8D, 0x4B56, [0x97, 0xCF, 0xA3, 0x19, 0x1B, 0xF8, 0xFD, 0x5B]}; + const IID IID_IClusterApplicationWizard = {0x24F97151, 0x6689, 0x11D1, [0x9A, 0xA7, 0x00, 0xC0, 0x4F, 0xB9, 0x3A, 0x80]}; + const IID IID_ICodeInstall = {0x79EAC9D1, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IColumnMapper = {0x0B63E37A, 0x9CCC, 0x11D0, [0xBC, 0xDB, 0x00, 0x80, 0x5F, 0xCC, 0xCE, 0x04]}; + const IID IID_IColumnMapperCreator = {0x0B63E37B, 0x9CCC, 0x11D0, [0xBC, 0xDB, 0x00, 0x80, 0x5F, 0xCC, 0xCE, 0x04]}; + const IID IID_IColumnProvider = {0xE8025004, 0x1C42, 0x11D2, [0xBE, 0x2C, 0x00, 0xA0, 0xC9, 0xA8, 0x3D, 0xA1]}; + const IID IID_IColumnsInfo = {0x0C733A11, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IColumnsInfo2 = {0x0C733AB8, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IColumnsRowset = {0x0C733A10, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ICombobox = {0x3050F677, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ICommand = {0x0C733A63, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ICommandCost = {0x0C733A4E, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ICommandPersist = {0x0C733AA7, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ICommandPrepare = {0x0C733A26, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ICommandProperties = {0x0C733A79, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ICommandStream = {0x0C733ABF, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ICommandText = {0x0C733A27, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ICommandTree = {0x0C733A87, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ICommandValidate = {0x0C733A18, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ICommandWithParameters = {0x0C733A64, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ICommDlgBrowser = {0x000214F1, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ICommDlgBrowser2 = {0x10339516, 0x2894, 0x11D2, [0x90, 0x39, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x3E]}; + const IID IID_ICommonQuery = {0xAB50DEC0, 0x6F1D, 0x11D0, [0xA1, 0xC4, 0x00, 0xAA, 0x00, 0xC1, 0x6E, 0x65]}; + const IID IID_IComThreadingInfo = {0x000001CE, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IConfigurationConnection = {0xDDAD8191, 0x66C5, 0x4A30, [0xA4, 0xDF, 0xCB, 0x6C, 0x21, 0x67, 0x04, 0xCA]}; + const IID IID_IConnectionInfo = {0x15182CE3, 0x82D7, 0x473F, [0x92, 0xDE, 0x70, 0x6E, 0x2B, 0xCE, 0xA9, 0x02]}; + const IID IID_IConnectionManager = {0xC0017768, 0x1BF3, 0x4352, [0x8D, 0x6C, 0x3A, 0x8C, 0x1D, 0x0F, 0xB4, 0x77]}; + const IID IID_IConnectionPoint = {0xB196B286, 0xBAB4, 0x101A, [0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07]}; + const IID IID_IConnectionPointContainer = {0xB196B284, 0xBAB4, 0x101A, [0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07]}; + const IID IID_IContextCallback = {0x000001DA, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IContextMenu = {0x000214E4, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IContextMenu2 = {0x000214F4, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IContextMenu3 = {0xBCFCE0A0, 0xEC17, 0x11D0, [0x8D, 0x10, 0x00, 0xA0, 0xC9, 0x0F, 0x27, 0x19]}; + const IID IID_IContinue = {0x0000012A, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IContinueCallback = {0xB722BCCA, 0x4E68, 0x101B, [0xA2, 0xBC, 0x00, 0xAA, 0x00, 0x40, 0x47, 0x70]}; + const IID IID_IConvertType = {0x0C733A88, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ICrBarn = {0x276A2EE0, 0x0B5D, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID IID_ICrBarn2 = {0xB66A7A1B, 0x8FC6, 0x448C, [0xA2, 0xEB, 0x3C, 0x55, 0x95, 0x74, 0x78, 0xA1]}; + const IID IID_ICrBlinds = {0x5AF5C340, 0x0BA9, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID IID_ICrBlinds2 = {0x7059D403, 0x599A, 0x4264, [0x81, 0x40, 0x64, 0x1E, 0xB8, 0xAE, 0x1F, 0x64]}; + const IID IID_ICrBlur = {0x9F7C7827, 0xE87A, 0x11D1, [0x81, 0xE0, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID IID_ICreateErrorInfo = {0x22F03340, 0x547D, 0x101B, [0x8E, 0x65, 0x08, 0x00, 0x2B, 0x2B, 0xD1, 0x19]}; + const IID IID_ICreateRow = {0x0C733AB2, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ICreateTypeInfo = {0x00020405, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ICreateTypeInfo2 = {0x0002040E, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ICreateTypeLib = {0x00020406, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ICreateTypeLib2 = {0x0002040F, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ICrEmboss = {0xE4ACFB80, 0x053E, 0x11D2, [0x81, 0xEA, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID IID_ICrEngrave = {0xE4ACFB7F, 0x053E, 0x11D2, [0x81, 0xEA, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID IID_ICrInset = {0x05C5EE20, 0x0BA6, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID IID_ICrIris = {0x3F69F350, 0x0379, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID IID_ICrIris2 = {0xF7B06961, 0xBA8C, 0x4970, [0x91, 0x8B, 0x1C, 0x60, 0xCB, 0x9F, 0xF1, 0x80]}; + const IID IID_ICrRadialWipe = {0x424B71AE, 0x0695, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID IID_ICrSlide = {0x810E402E, 0x056B, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID IID_ICrSpiral = {0x0DE527A0, 0x0C7E, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID IID_ICrStretch = {0x6684AF00, 0x0A87, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID IID_ICrWheel = {0x3943DE80, 0x1464, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID IID_ICrZigzag = {0x4E5A64A0, 0x0C8B, 0x11D2, [0xA4, 0x84, 0x00, 0xC0, 0x4F, 0x8E, 0xFB, 0x69]}; + const IID IID_ICSSFilter = {0x3050F3EC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ICSSFilterDispatch = {0x9519152B, 0x9484, 0x4A6C, [0xB6, 0xA7, 0x4F, 0x25, 0xE9, 0x2D, 0x6C, 0x6B]}; + const IID IID_ICSSFilterSite = {0x3050F3ED, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ICurrentWorkingDirectory = {0x91956D21, 0x9276, 0x11D1, [0x92, 0x1A, 0x00, 0x60, 0x97, 0xDF, 0x5B, 0xD4]}; + const IID IID_ICursor = {0x9F6AA700, 0xD188, 0x11CD, [0xAD, 0x48, 0x00, 0xAA, 0x00, 0x3C, 0x9C, 0xB6]}; + const IID IID_ICursorFind = {0xE01D7850, 0xD188, 0x11CD, [0xAD, 0x48, 0x00, 0xAA, 0x00, 0x3C, 0x9C, 0xB6]}; + const IID IID_ICursorMove = {0xACFF0690, 0xD188, 0x11CD, [0xAD, 0x48, 0x00, 0xAA, 0x00, 0x3C, 0x9C, 0xB6]}; + const IID IID_ICursorScroll = {0xBB87E420, 0xD188, 0x11CD, [0xAD, 0x48, 0x00, 0xAA, 0x00, 0x3C, 0x9C, 0xB6]}; + const IID IID_ICursorUpdateARow = {0xD14216A0, 0xD188, 0x11CD, [0xAD, 0x48, 0x00, 0xAA, 0x00, 0x3C, 0x9C, 0xB6]}; + const IID IID_ICustomDoc = {0x3050F3F0, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ICustomRatingHelper = {0xD0D9842D, 0xE211, 0x4B2C, [0x88, 0xDC, 0xBC, 0x72, 0x93, 0x42, 0xDF, 0xCB]}; + const IID IID_IDA2Array = {0x2A8F0B06, 0xBE2B, 0x11D1, [0xB2, 0x19, 0x00, 0xC0, 0x4F, 0xC2, 0xA0, 0xCA]}; + const IID IID_IDA2Behavior = {0xC46C1BF0, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDA2Event = {0x69B5BC70, 0x9B19, 0x11D0, [0x9B, 0x60, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x1D]}; + const IID IID_IDA2FontStyle = {0x283807B5, 0x2C60, 0x11D0, [0xA3, 0x1D, 0x00, 0xAA, 0x00, 0xB9, 0x2C, 0x03]}; + const IID IID_IDA2Geometry = {0x4A933702, 0xE36F, 0x11D0, [0x9B, 0x99, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x1D]}; + const IID IID_IDA2Image = {0x45393DF0, 0x54B9, 0x11CF, [0x92, 0xA2, 0x00, 0xAA, 0x00, 0xB8, 0xA7, 0x33]}; + const IID IID_IDA2LineStyle = {0x2AE71568, 0x4B34, 0x11D1, [0xB1, 0xE3, 0x00, 0xC0, 0x4F, 0xC2, 0xA0, 0xCA]}; + const IID IID_IDA2Statics = {0xD17506C2, 0x6B26, 0x11D0, [0x89, 0x14, 0x00, 0xC0, 0x4F, 0xC2, 0xA0, 0xCA]}; + const IID IID_IDA2View = {0x5F00F545, 0xDF18, 0x11D1, [0xAB, 0x6F, 0x00, 0xC0, 0x4F, 0xD9, 0x2B, 0x6B]}; + const IID IID_IDA2ViewerControl = {0xC46C1BEF, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDA2ViewerControlWindowed = {0xC46C1BED, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAArray = {0xFA261CF0, 0xC44E, 0x11D1, [0x9B, 0xE4, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x1D]}; + const IID IID_IDABbox2 = {0xBA8B033E, 0x1E91, 0x11D1, [0x88, 0x09, 0x00, 0xC0, 0x4F, 0xC2, 0x9D, 0x46]}; + const IID IID_IDABbox3 = {0x0E41257B, 0x812D, 0x11D0, [0x9B, 0x4A, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x1D]}; + const IID IID_IDABehavior = {0x5DFB2651, 0x9668, 0x11D0, [0xB1, 0x7B, 0x00, 0xC0, 0x4F, 0xC2, 0xA0, 0xCA]}; + const IID IID_IDABoolean = {0xC46C1BDA, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDABvrHook = {0x50B4791F, 0x4731, 0x11D0, [0x89, 0x12, 0x00, 0xC0, 0x4F, 0xC2, 0xA0, 0xCA]}; + const IID IID_IDACamera = {0xC46C1BCA, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAColor = {0xC46C1BDC, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDADashStyle = {0xF3E1B522, 0xD8A6, 0x11D1, [0x9B, 0xE5, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x1D]}; + const IID IID_IDADrawingSurface = {0xC46C1BF4, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDADXTransformResult = {0xAF868305, 0xAB0B, 0x11D0, [0x87, 0x6A, 0x00, 0xC0, 0x4F, 0xC2, 0x9D, 0x46]}; + const IID IID_IDAEndStyle = {0xB6FFC24C, 0x7E13, 0x11D0, [0x9B, 0x47, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x1D]}; + const IID IID_IDAEvent = {0xC46C1BCE, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAFontStyle = {0xC46C1BC1, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAGeometry = {0xC46C1BCC, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAImage = {0xC46C1BC4, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAImport = {0xC46C1BEE, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAImportationResult = {0xB90E5258, 0x574A, 0x11D1, [0x8E, 0x7B, 0x00, 0xC0, 0x4F, 0xC2, 0x9D, 0x46]}; + const IID IID_IDAJoinStyle = {0xA3034056, 0xEC1C, 0x11D1, [0x9B, 0xE8, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x1D]}; + const IID IID_IDALineStyle = {0x69AD90EF, 0x1C20, 0x11D1, [0x88, 0x01, 0x00, 0xC0, 0x4F, 0xC2, 0x9D, 0x46]}; + const IID IID_IDAMatte = {0xC46C1BE4, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAMicrophone = {0xC46C1BD8, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAModifiableBehavior = {0xC46C1BEC, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAMontage = {0xC46C1BC8, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDANumber = {0xD17506C3, 0x6B26, 0x11D0, [0x89, 0x14, 0x00, 0xC0, 0x4F, 0xC2, 0xA0, 0xCA]}; + const IID IID_IDAPair = {0x542FB453, 0x5003, 0x11CF, [0x92, 0xA2, 0x00, 0xAA, 0x00, 0xB8, 0xA7, 0x33]}; + const IID IID_IDAPath2 = {0xC46C1BD0, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAPickableResult = {0xC46C1BDE, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAPoint2 = {0x9CDE7341, 0x3C20, 0x11D0, [0xA3, 0x30, 0x00, 0xAA, 0x00, 0xB9, 0x2C, 0x03]}; + const IID IID_IDAPoint3 = {0xC46C1BD6, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAPreferences = {0xB90E525A, 0x574A, 0x11D1, [0x8E, 0x7B, 0x00, 0xC0, 0x4F, 0xC2, 0x9D, 0x46]}; + const IID IID_IDASite = {0xB90E5259, 0x574A, 0x11D1, [0x8E, 0x7B, 0x00, 0xC0, 0x4F, 0xC2, 0x9D, 0x46]}; + const IID IID_IDASound = {0xC46C1BE6, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAStatics = {0x5DFB2650, 0x9668, 0x11D0, [0xB1, 0x7B, 0x00, 0xC0, 0x4F, 0xC2, 0xA0, 0xCA]}; + const IID IID_IDAString = {0xC46C1BD2, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDataAdviseHolder = {0x00000110, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IDataChannel = {0xAD42D12A, 0x4AD0, 0x4856, [0x91, 0x9E, 0xE8, 0x54, 0xC9, 0x1D, 0x18, 0x56]}; + const IID IID_IDataConvert = {0x0C733A8D, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IDataFilter = {0x69D14C80, 0xC18E, 0x11D0, [0xA9, 0xCE, 0x00, 0x60, 0x97, 0x94, 0x23, 0x11]}; + const IID IID_IDataObject = {0x0000010E, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IDATransform2 = {0xC46C1BD4, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDATransform3 = {0xC46C1BE0, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDATuple = {0x542FB452, 0x5003, 0x11CF, [0x92, 0xA2, 0x00, 0xAA, 0x00, 0xB8, 0xA7, 0x33]}; + const IID IID_IDAUntilNotifier = {0x25B0F91C, 0xD23D, 0x11D0, [0x9B, 0x85, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x1D]}; + const IID IID_IDAUserData = {0xBACD4D86, 0x4A4F, 0x11D1, [0x9B, 0xC8, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x1D]}; + const IID IID_IDAVector2 = {0xC46C1BC6, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAVector3 = {0xC46C1BE2, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAView = {0xAF868304, 0xAB0B, 0x11D0, [0x87, 0x6A, 0x00, 0xC0, 0x4F, 0xC2, 0x9D, 0x46]}; + const IID IID_IDAViewerControl = {0xC46C1BDD, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAViewerControlWindowed = {0xC46C1BCD, 0x3C52, 0x11D0, [0x92, 0x00, 0x84, 0x8C, 0x1D, 0x00, 0x00, 0x00]}; + const IID IID_IDAViewSite = {0xBCBB1F75, 0xE384, 0x11D0, [0x9B, 0x99, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x1D]}; + const IID IID_IDBAsynchNotify = {0x0C733A96, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IDBAsynchStatus = {0x0C733A95, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IDBBinderProperties = {0x0C733AB3, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IDBCreateCommand = {0x0C733A1D, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IDBCreateSession = {0x0C733A5D, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IDBDataSourceAdmin = {0x0C733A7A, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IDBInfo = {0x0C733A89, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IDBInitialize = {0x0C733A8B, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IDBProperties = {0x0C733A8A, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IDBSchemaCommand = {0x0C733A50, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IDBSchemaRowset = {0x0C733A7B, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IDCInfo = {0x0C733A9C, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IDDVideoAcceleratorContainer = {0xACA12120, 0x3356, 0x11D1, [0x8F, 0xCF, 0x00, 0xC0, 0x4F, 0xC2, 0x9B, 0x4E]}; + const IID IID_IDDVideoPortContainer = {0x6C142760, 0xA733, 0x11CE, [0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60]}; + const IID IID_IDebug = {0x00000123, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IDebugApplication = {0x51973C32, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugApplication32 = {0x51973C32, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugApplication64 = {0x4DEDC754, 0x04C7, 0x4F10, [0x9E, 0x60, 0x16, 0xA3, 0x90, 0xFE, 0x6E, 0x62]}; + const IID IID_IDebugApplicationEx = {0x51973C00, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugApplicationNode = {0x51973C34, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugApplicationNodeEvents = {0x51973C35, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugApplicationThread = {0x51973C38, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugApplicationThread64 = {0x9DAC5886, 0xDBAD, 0x456D, [0x9D, 0xEE, 0x5D, 0xEC, 0x39, 0xAB, 0x3D, 0xDA]}; + const IID IID_IDebugAsyncOperation = {0x51973C1B, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugAsyncOperationCallBack = {0x51973C1C, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugCodeContext = {0x51973C13, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugCookie = {0x51973C39, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugDocument = {0x51973C21, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugDocumentContext = {0x51973C28, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugDocumentHelper32 = {0x51973C26, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugDocumentHelper64 = {0xC4C7363C, 0x20FD, 0x47F9, [0xBD, 0x82, 0x48, 0x55, 0xE0, 0x15, 0x08, 0x71]}; + const IID IID_IDebugDocumentHelperEx = {0x51973C02, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugDocumentHost = {0x51973C27, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugDocumentInfo = {0x51973C1F, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugDocumentProvider = {0x51973C20, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugDocumentText = {0x51973C22, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugDocumentTextAuthor = {0x51973C24, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugDocumentTextEvents = {0x51973C23, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugDocumentTextExternalAuthor = {0x51973C25, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugExpression = {0x51973C14, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugExpressionCallBack = {0x51973C16, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugExpressionContext = {0x51973C15, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugExtendedProperty = {0x51973C52, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugFormatter = {0x51973C05, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugHelper = {0x51973C3F, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugHelperEx = {0x51973C08, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugOut = {0xC733E4F1, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID IID_IDebugProperty = {0x51973C50, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugPropertyEnumType_All = {0x51973C55, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugPropertyEnumType_Arguments = {0x51973C57, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugPropertyEnumType_Locals = {0x51973C56, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugPropertyEnumType_LocalsPlus = {0x51973C58, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugPropertyEnumType_Registers = {0x51973C59, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugRegister = {0xC733E4F0, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID IID_IDebugSessionProvider = {0x51973C29, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugSessionProviderEx = {0x51973C09, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugSetValueCallback = {0x51973C06, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugStackFrame = {0x51973C17, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugStackFrameSniffer = {0x51973C18, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugStackFrameSnifferEx = {0x51973C19, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugStackFrameSnifferEx32 = {0x51973C19, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugStackFrameSnifferEx64 = {0x8CD12AF4, 0x49C1, 0x4D52, [0x8D, 0x8A, 0xC1, 0x46, 0xF4, 0x75, 0x81, 0xAA]}; + const IID IID_IDebugStream = {0x00000124, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IDebugSyncOperation = {0x51973C1A, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugThreadCall = {0x51973C36, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugThreadCall32 = {0x51973C36, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IDebugThreadCall64 = {0xCB3FA335, 0xE979, 0x42FD, [0x9F, 0xCF, 0xA7, 0x54, 0x6A, 0x0F, 0x39, 0x05]}; + const IID IID_IDelaydC = {0xBFF9C030, 0xB58F, 0x11CE, [0xB5, 0xB0, 0x00, 0xAA, 0x00, 0x6C, 0xB3, 0x7D]}; + const IID IID_IDelayedRelease = {0x000214ED, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IDelegateFolder = {0xADD8BA80, 0x002B, 0x11D0, [0x8F, 0x0F, 0x00, 0xC0, 0x4F, 0xD7, 0xD0, 0x62]}; + const IID IID_IDeskBand = {0xEB0FE172, 0x1A3A, 0x11D0, [0x89, 0xB3, 0x00, 0xA0, 0xC9, 0x0A, 0x90, 0xAC]}; + const IID IID_IDeviceRect = {0x3050F6D5, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IDfReserved1 = {0x00000013, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IDfReserved2 = {0x00000014, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IDfReserved3 = {0x00000015, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IDialBranding = {0x8AECAFA9, 0x4306, 0x43CC, [0x8C, 0x5A, 0x76, 0x5F, 0x29, 0x79, 0xCC, 0x16]}; + const IID IID_IDialEngine = {0x39FD782B, 0x7905, 0x40D5, [0x91, 0x48, 0x3C, 0x9B, 0x19, 0x04, 0x23, 0xD5]}; + const IID IID_IDialEventSink = {0x2D86F4FF, 0x6E2D, 0x4488, [0xB2, 0xE9, 0x69, 0x34, 0xAF, 0xD4, 0x1B, 0xEA]}; + const IID IID_IDifferencing = {0x994F0AF0, 0x2977, 0x11CE, [0xBB, 0x80, 0x08, 0x00, 0x2B, 0x36, 0xB2, 0xB0]}; + const IID IID_IDirect3D = {0x3BBA0080, 0x2421, 0x11CF, [0xA3, 0x1A, 0x00, 0xAA, 0x00, 0xB9, 0x33, 0x56]}; + const IID IID_IDirect3D2 = {0x6AAE1EC1, 0x662A, 0x11D0, [0x88, 0x9D, 0x00, 0xAA, 0x00, 0xBB, 0xB7, 0x6A]}; + const IID IID_IDirect3D3 = {0xBB223240, 0xE72B, 0x11D0, [0xA9, 0xB4, 0x00, 0xAA, 0x00, 0xC0, 0x99, 0x3E]}; + const IID IID_IDirect3D7 = {0xF5049E77, 0x4861, 0x11D2, [0xA4, 0x07, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8]}; + const IID IID_IDirect3DDevice = {0x64108800, 0x957D, 0x11D0, [0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29]}; + const IID IID_IDirect3DDevice2 = {0x93281501, 0x8CF8, 0x11D0, [0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29]}; + const IID IID_IDirect3DDevice3 = {0xB0AB3B60, 0x33D7, 0x11D1, [0xA9, 0x81, 0x00, 0xC0, 0x4F, 0xD7, 0xB1, 0x74]}; + const IID IID_IDirect3DDevice7 = {0xF5049E79, 0x4861, 0x11D2, [0xA4, 0x07, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8]}; + const IID IID_IDirect3DExecuteBuffer = {0x4417C145, 0x33AD, 0x11CF, [0x81, 0x6F, 0x00, 0x00, 0xC0, 0x20, 0x15, 0x6E]}; + const IID IID_IDirect3DHALDevice = {0x84E63DE0, 0x46AA, 0x11CF, [0x81, 0x6F, 0x00, 0x00, 0xC0, 0x20, 0x15, 0x6E]}; + const IID IID_IDirect3DLight = {0x4417C142, 0x33AD, 0x11CF, [0x81, 0x6F, 0x00, 0x00, 0xC0, 0x20, 0x15, 0x6E]}; + const IID IID_IDirect3DMaterial = {0x4417C144, 0x33AD, 0x11CF, [0x81, 0x6F, 0x00, 0x00, 0xC0, 0x20, 0x15, 0x6E]}; + const IID IID_IDirect3DMaterial2 = {0x93281503, 0x8CF8, 0x11D0, [0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29]}; + const IID IID_IDirect3DMaterial3 = {0xCA9C46F4, 0xD3C5, 0x11D1, [0xB7, 0x5A, 0x00, 0x60, 0x08, 0x52, 0xB3, 0x12]}; + const IID IID_IDirect3DMMXDevice = {0x881949A1, 0xD6F3, 0x11D0, [0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29]}; + const IID IID_IDirect3DNullDevice = {0x8767DF22, 0xBACC, 0x11D1, [0x89, 0x69, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8]}; + const IID IID_IDirect3DRampDevice = {0xF2086B20, 0x259F, 0x11CF, [0xA3, 0x1A, 0x00, 0xAA, 0x00, 0xB9, 0x33, 0x56]}; + const IID IID_IDirect3DRefDevice = {0x50936643, 0x13E9, 0x11D1, [0x89, 0xAA, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29]}; + const IID IID_IDirect3DRGBDevice = {0xA4665C60, 0x2673, 0x11CF, [0xA3, 0x1A, 0x00, 0xAA, 0x00, 0xB9, 0x33, 0x56]}; + const IID IID_IDirect3DRM = {0x2BC49361, 0x8327, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRM2 = {0x4516ECC8, 0x8F20, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID IID_IDirect3DRM3 = {0x4516EC83, 0x8F20, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID IID_IDirect3DRMAnimation = {0xEB16CB0D, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMAnimation2 = {0xFF6B7F77, 0xA40E, 0x11D1, [0x91, 0xF9, 0x00, 0x00, 0xF8, 0x75, 0x8E, 0x66]}; + const IID IID_IDirect3DRMAnimationArray = {0xD5F1CAE0, 0x4BD7, 0x11D1, [0xB9, 0x74, 0x00, 0x60, 0x08, 0x3E, 0x45, 0xF3]}; + const IID IID_IDirect3DRMAnimationSet = {0xEB16CB0E, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMAnimationSet2 = {0xFF6B7F79, 0xA40E, 0x11D1, [0x91, 0xF9, 0x00, 0x00, 0xF8, 0x75, 0x8E, 0x66]}; + const IID IID_IDirect3DRMClippedVisual = {0x5434E733, 0x6D66, 0x11D1, [0xBB, 0x0B, 0x00, 0x00, 0xF8, 0x75, 0x86, 0x5A]}; + const IID IID_IDirect3DRMDevice = {0xE9E19280, 0x6E05, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMDevice2 = {0x4516EC78, 0x8F20, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID IID_IDirect3DRMDevice3 = {0x549F498B, 0xBFEB, 0x11D1, [0x8E, 0xD8, 0x00, 0xA0, 0xC9, 0x67, 0xA4, 0x82]}; + const IID IID_IDirect3DRMDeviceArray = {0xEB16CB10, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMFace = {0xEB16CB07, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMFace2 = {0x4516EC81, 0x8F20, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID IID_IDirect3DRMFaceArray = {0xEB16CB17, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMFrame = {0xEB16CB03, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMFrame2 = {0xC3DFBD60, 0x3988, 0x11D0, [0x9E, 0xC2, 0x00, 0x00, 0xC0, 0x29, 0x1A, 0xC3]}; + const IID IID_IDirect3DRMFrame3 = {0xFF6B7F70, 0xA40E, 0x11D1, [0x91, 0xF9, 0x00, 0x00, 0xF8, 0x75, 0x8E, 0x66]}; + const IID IID_IDirect3DRMFrameArray = {0xEB16CB12, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMInterpolator = {0x242F6BC1, 0x3849, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID IID_IDirect3DRMLight = {0xEB16CB08, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMLightArray = {0xEB16CB14, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMMaterial = {0xEB16CB0B, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMMaterial2 = {0xFF6B7F75, 0xA40E, 0x11D1, [0x91, 0xF9, 0x00, 0x00, 0xF8, 0x75, 0x8E, 0x66]}; + const IID IID_IDirect3DRMMesh = {0xA3A80D01, 0x6E12, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMMeshBuilder = {0xA3A80D02, 0x6E12, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMMeshBuilder2 = {0x4516EC77, 0x8F20, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID IID_IDirect3DRMMeshBuilder3 = {0x4516EC82, 0x8F20, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID IID_IDirect3DRMObject = {0xEB16CB00, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMObject2 = {0x4516EC7C, 0x8F20, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID IID_IDirect3DRMObjectArray = {0x242F6BC2, 0x3849, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID IID_IDirect3DRMPicked2Array = {0x4516EC7B, 0x8F20, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID IID_IDirect3DRMPickedArray = {0xEB16CB16, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMProgressiveMesh = {0x4516EC79, 0x8F20, 0x11D0, [0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3]}; + const IID IID_IDirect3DRMShadow = {0xAF359780, 0x6BA3, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMShadow2 = {0x86B44E25, 0x9C82, 0x11D1, [0xBB, 0x0B, 0x00, 0xA0, 0xC9, 0x81, 0xA0, 0xA6]}; + const IID IID_IDirect3DRMTexture = {0xEB16CB09, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMTexture2 = {0x120F30C0, 0x1629, 0x11D0, [0x94, 0x1C, 0x00, 0x80, 0xC8, 0x0C, 0xFA, 0x7B]}; + const IID IID_IDirect3DRMTexture3 = {0xFF6B7F73, 0xA40E, 0x11D1, [0x91, 0xF9, 0x00, 0x00, 0xF8, 0x75, 0x8E, 0x66]}; + const IID IID_IDirect3DRMUserVisual = {0x59163DE0, 0x6D43, 0x11CF, [0xAC, 0x4A, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMViewport = {0xEB16CB02, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMViewport2 = {0x4A1B1BE6, 0xBFED, 0x11D1, [0x8E, 0xD8, 0x00, 0xA0, 0xC9, 0x67, 0xA4, 0x82]}; + const IID IID_IDirect3DRMViewportArray = {0xEB16CB11, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMVisual = {0xEB16CB04, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMVisualArray = {0xEB16CB13, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMWinDevice = {0xC5016CC0, 0xD273, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DRMWrap = {0xEB16CB0A, 0xD271, 0x11CE, [0xAC, 0x48, 0x00, 0x00, 0xC0, 0x38, 0x25, 0xA1]}; + const IID IID_IDirect3DTexture = {0x2CDCD9E0, 0x25A0, 0x11CF, [0xA3, 0x1A, 0x00, 0xAA, 0x00, 0xB9, 0x33, 0x56]}; + const IID IID_IDirect3DTexture2 = {0x93281502, 0x8CF8, 0x11D0, [0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29]}; + const IID IID_IDirect3DTnLHalDevice = {0xF5049E78, 0x4861, 0x11D2, [0xA4, 0x07, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8]}; + const IID IID_IDirect3DVertexBuffer = {0x7A503555, 0x4A83, 0x11D1, [0xA5, 0xDB, 0x00, 0xA0, 0xC9, 0x03, 0x67, 0xF8]}; + const IID IID_IDirect3DVertexBuffer7 = {0xF5049E7D, 0x4861, 0x11D2, [0xA4, 0x07, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8]}; + const IID IID_IDirect3DViewport = {0x4417C146, 0x33AD, 0x11CF, [0x81, 0x6F, 0x00, 0x00, 0xC0, 0x20, 0x15, 0x6E]}; + const IID IID_IDirect3DViewport2 = {0x93281500, 0x8CF8, 0x11D0, [0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29]}; + const IID IID_IDirect3DViewport3 = {0xB0AB3B61, 0x33D7, 0x11D1, [0xA9, 0x81, 0x00, 0xC0, 0x4F, 0xD7, 0xB1, 0x74]}; + const IID IID_IDirectDraw = {0x6C14DB80, 0xA733, 0x11CE, [0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60]}; + const IID IID_IDirectDraw2 = {0xB3A6F3E0, 0x2B43, 0x11CF, [0xA2, 0xDE, 0x00, 0xAA, 0x00, 0xB9, 0x33, 0x56]}; + const IID IID_IDirectDraw4 = {0x9C59509A, 0x39BD, 0x11D1, [0x8C, 0x4A, 0x00, 0xC0, 0x4F, 0xD9, 0x30, 0xC5]}; + const IID IID_IDirectDraw7 = {0x15E65EC0, 0x3B9C, 0x11D2, [0xB9, 0x2F, 0x00, 0x60, 0x97, 0x97, 0xEA, 0x5B]}; + const IID IID_IDirectDrawClipper = {0x6C14DB85, 0xA733, 0x11CE, [0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60]}; + const IID IID_IDirectDrawColorControl = {0x4B9F0EE0, 0x0D7E, 0x11D0, [0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8]}; + const IID IID_IDirectDrawFactory2 = {0x89B2C488, 0x4AF4, 0x11D1, [0x8C, 0x4C, 0x00, 0xC0, 0x4F, 0xD9, 0x30, 0xC5]}; + const IID IID_IDirectDrawGammaControl = {0x69C11C3E, 0xB46B, 0x11D1, [0xAD, 0x7A, 0x00, 0xC0, 0x4F, 0xC2, 0x9B, 0x4E]}; + const IID IID_IDirectDrawKernel = {0x8D56C120, 0x6A08, 0x11D0, [0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8]}; + const IID IID_IDirectDrawOptSurface = {0x51191F1E, 0x4F2B, 0x11D1, [0x8C, 0xC3, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8]}; + const IID IID_IDirectDrawPalette = {0x6C14DB84, 0xA733, 0x11CE, [0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60]}; + const IID IID_IDirectDrawPalette2 = {0xC03C477E, 0x6519, 0x11D1, [0x8C, 0x52, 0x00, 0xC0, 0x4F, 0xD9, 0x30, 0xC5]}; + const IID IID_IDirectDrawSurface = {0x6C14DB81, 0xA733, 0x11CE, [0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60]}; + const IID IID_IDirectDrawSurface2 = {0x57805885, 0x6EEC, 0x11CF, [0x94, 0x41, 0xA8, 0x23, 0x03, 0xC1, 0x0E, 0x27]}; + const IID IID_IDirectDrawSurface3 = {0xDA044E00, 0x69B2, 0x11D0, [0xA1, 0xD5, 0x00, 0xAA, 0x00, 0xB8, 0xDF, 0xBB]}; + const IID IID_IDirectDrawSurface4 = {0x0B2B8630, 0xAD35, 0x11D0, [0x8E, 0xA6, 0x00, 0x60, 0x97, 0x97, 0xEA, 0x5B]}; + const IID IID_IDirectDrawSurface7 = {0x06675A80, 0x3B9B, 0x11D2, [0xB9, 0x2F, 0x00, 0x60, 0x97, 0x97, 0xEA, 0x5B]}; + const IID IID_IDirectDrawSurfaceKernel = {0x60755DA0, 0x6A40, 0x11D0, [0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8]}; + const IID IID_IDirectDrawVideoAccelerator = {0xC9B2D740, 0x3356, 0x11D1, [0x8F, 0xCF, 0x00, 0xC0, 0x4F, 0xC2, 0x9B, 0x4E]}; + const IID IID_IDirectDrawVideoPort = {0xB36D93E0, 0x2B43, 0x11CF, [0xA2, 0xDE, 0x00, 0xAA, 0x00, 0xB9, 0x33, 0x56]}; + const IID IID_IDirectInput2A = {0x5944E662, 0xAA8A, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_IDirectInput2W = {0x5944E663, 0xAA8A, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_IDirectInput7A = {0x9A4CB684, 0x236D, 0x11D3, [0x8E, 0x9D, 0x00, 0xC0, 0x4F, 0x68, 0x44, 0xAE]}; + const IID IID_IDirectInput7W = {0x9A4CB685, 0x236D, 0x11D3, [0x8E, 0x9D, 0x00, 0xC0, 0x4F, 0x68, 0x44, 0xAE]}; + const IID IID_IDirectInputA = {0x89521360, 0xAA8A, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_IDirectInputDevice2A = {0x5944E682, 0xC92E, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_IDirectInputDevice2W = {0x5944E683, 0xC92E, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_IDirectInputDevice7A = {0x57D7C6BC, 0x2356, 0x11D3, [0x8E, 0x9D, 0x00, 0xC0, 0x4F, 0x68, 0x44, 0xAE]}; + const IID IID_IDirectInputDevice7W = {0x57D7C6BD, 0x2356, 0x11D3, [0x8E, 0x9D, 0x00, 0xC0, 0x4F, 0x68, 0x44, 0xAE]}; + const IID IID_IDirectInputDeviceA = {0x5944E680, 0xC92E, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_IDirectInputDeviceW = {0x5944E681, 0xC92E, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_IDirectInputEffect = {0xE7E1F7C0, 0x88D2, 0x11D0, [0x9A, 0xD0, 0x00, 0xA0, 0xC9, 0xA0, 0x6E, 0x35]}; + const IID IID_IDirectInputEffectDriver = {0x02538130, 0x898F, 0x11D0, [0x9A, 0xD0, 0x00, 0xA0, 0xC9, 0xA0, 0x6E, 0x35]}; + const IID IID_IDirectInputJoyConfig = {0x1DE12AB1, 0xC9F5, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_IDirectInputPIDDriver = {0xEEC6993A, 0xB3FD, 0x11D2, [0xA9, 0x16, 0x00, 0xC0, 0x4F, 0xB9, 0x86, 0x38]}; + const IID IID_IDirectInputW = {0x89521361, 0xAA8A, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_IDirectMusic = {0x6536115A, 0x7B2D, 0x11D2, [0xBA, 0x18, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12]}; + const IID IID_IDirectMusic2 = {0x6FC2CAE1, 0xBC78, 0x11D2, [0xAF, 0xA6, 0x00, 0xAA, 0x00, 0x24, 0xD8, 0xB6]}; + const IID IID_IDirectMusicBand = {0xD2AC28C0, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID IID_IDirectMusicBuffer = {0xD2AC2878, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID IID_IDirectMusicChordMap = {0xD2AC28BE, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID IID_IDirectMusicCollection = {0xD2AC287C, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID IID_IDirectMusicComposer = {0xD2AC28BF, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID IID_IDirectMusicDownload = {0xD2AC287B, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID IID_IDirectMusicDownloadedInstrument = {0xD2AC287E, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID IID_IDirectMusicGetLoader = {0x68A04844, 0xD13D, 0x11D1, [0xAF, 0xA6, 0x00, 0xAA, 0x00, 0x24, 0xD8, 0xB6]}; + const IID IID_IDirectMusicGraph = {0x2BEFC277, 0x5497, 0x11D2, [0xBC, 0xCB, 0x00, 0xA0, 0xC9, 0x22, 0xE6, 0xEB]}; + const IID IID_IDirectMusicInstrument = {0xD2AC287D, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID IID_IDirectMusicLoader = {0x2FFAACA2, 0x5DCA, 0x11D2, [0xAF, 0xA6, 0x00, 0xAA, 0x00, 0x24, 0xD8, 0xB6]}; + const IID IID_IDirectMusicObject = {0xD2AC28B5, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID IID_IDirectMusicPerformance = {0x07D43D03, 0x6523, 0x11D2, [0x87, 0x1D, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID IID_IDirectMusicPerformance2 = {0x6FC2CAE0, 0xBC78, 0x11D2, [0xAF, 0xA6, 0x00, 0xAA, 0x00, 0x24, 0xD8, 0xB6]}; + const IID IID_IDirectMusicPort = {0x08F2D8C9, 0x37C2, 0x11D2, [0xB9, 0xF9, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12]}; + const IID IID_IDirectMusicPortDownload = {0xD2AC287A, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID IID_IDirectMusicSegment = {0xF96029A2, 0x4282, 0x11D2, [0x87, 0x17, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID IID_IDirectMusicSegment2 = {0xD38894D1, 0xC052, 0x11D2, [0x87, 0x2F, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID IID_IDirectMusicSegmentState = {0xA3AFDCC7, 0xD3EE, 0x11D1, [0xBC, 0x8D, 0x00, 0xA0, 0xC9, 0x22, 0xE6, 0xEB]}; + const IID IID_IDirectMusicStyle = {0xD2AC28BD, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID IID_IDirectMusicThru = {0xCED153E7, 0x3606, 0x11D2, [0xB9, 0xF9, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12]}; + const IID IID_IDirectMusicTool = {0xD2AC28BA, 0xB39B, 0x11D1, [0x87, 0x04, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID IID_IDirectMusicTrack = {0xF96029A1, 0x4282, 0x11D2, [0x87, 0x17, 0x00, 0x60, 0x08, 0x93, 0xB1, 0xBD]}; + const IID IID_IDirectoryObject = {0xE798DE2C, 0x22E4, 0x11D0, [0x84, 0xFE, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID IID_IDirectorySchemaMgmt = {0x75DB3B9C, 0xA4D8, 0x11D0, [0xA7, 0x9C, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0xA8]}; + const IID IID_IDirectorySearch = {0x109BA8EC, 0x92F0, 0x11D0, [0xA7, 0x90, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0xA8]}; + const IID IID_IDirectPlay = {0x5454E9A0, 0xDB65, 0x11CE, [0x92, 0x1C, 0x00, 0xAA, 0x00, 0x6C, 0x49, 0x72]}; + const IID IID_IDirectPlay2 = {0x2B74F7C0, 0x9154, 0x11CF, [0xA9, 0xCD, 0x00, 0xAA, 0x00, 0x68, 0x86, 0xE3]}; + const IID IID_IDirectPlay2A = {0x9D460580, 0xA822, 0x11CF, [0x96, 0x0C, 0x00, 0x80, 0xC7, 0x53, 0x4E, 0x82]}; + const IID IID_IDirectPlay3 = {0x133EFE40, 0x32DC, 0x11D0, [0x9C, 0xFB, 0x00, 0xA0, 0xC9, 0x0A, 0x43, 0xCB]}; + const IID IID_IDirectPlay3A = {0x133EFE41, 0x32DC, 0x11D0, [0x9C, 0xFB, 0x00, 0xA0, 0xC9, 0x0A, 0x43, 0xCB]}; + const IID IID_IDirectPlay4 = {0x0AB1C530, 0x4745, 0x11D1, [0xA7, 0xA1, 0x00, 0x00, 0xF8, 0x03, 0xAB, 0xFC]}; + const IID IID_IDirectPlay4A = {0x0AB1C531, 0x4745, 0x11D1, [0xA7, 0xA1, 0x00, 0x00, 0xF8, 0x03, 0xAB, 0xFC]}; + const IID IID_IDirectPlayLobby = {0xAF465C71, 0x9588, 0x11CF, [0xA0, 0x20, 0x00, 0xAA, 0x00, 0x61, 0x57, 0xAC]}; + const IID IID_IDirectPlayLobby2 = {0x0194C220, 0xA303, 0x11D0, [0x9C, 0x4F, 0x00, 0xA0, 0xC9, 0x05, 0x42, 0x5E]}; + const IID IID_IDirectPlayLobby2A = {0x1BB4AF80, 0xA303, 0x11D0, [0x9C, 0x4F, 0x00, 0xA0, 0xC9, 0x05, 0x42, 0x5E]}; + const IID IID_IDirectPlayLobby3 = {0x2DB72490, 0x652C, 0x11D1, [0xA7, 0xA8, 0x00, 0x00, 0xF8, 0x03, 0xAB, 0xFC]}; + const IID IID_IDirectPlayLobby3A = {0x2DB72491, 0x652C, 0x11D1, [0xA7, 0xA8, 0x00, 0x00, 0xF8, 0x03, 0xAB, 0xFC]}; + const IID IID_IDirectPlayLobbyA = {0x26C66A70, 0xB367, 0x11CF, [0xA0, 0x24, 0x00, 0xAA, 0x00, 0x61, 0x57, 0xAC]}; + const IID IID_IDirectSound = {0x279AFA83, 0x4981, 0x11CE, [0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60]}; + const IID IID_IDirectSound3DBuffer = {0x279AFA86, 0x4981, 0x11CE, [0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60]}; + const IID IID_IDirectSound3DListener = {0x279AFA84, 0x4981, 0x11CE, [0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60]}; + const IID IID_IDirectSoundBuffer = {0x279AFA85, 0x4981, 0x11CE, [0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60]}; + const IID IID_IDirectSoundCapture = {0xB0210781, 0x89CD, 0x11D0, [0xAF, 0x08, 0x00, 0xA0, 0xC9, 0x25, 0xCD, 0x16]}; + const IID IID_IDirectSoundCaptureBuffer = {0xB0210782, 0x89CD, 0x11D0, [0xAF, 0x08, 0x00, 0xA0, 0xC9, 0x25, 0xCD, 0x16]}; + const IID IID_IDirectSoundNotify = {0xB0210783, 0x89CD, 0x11D0, [0xAF, 0x08, 0x00, 0xA0, 0xC9, 0x25, 0xCD, 0x16]}; + const IID IID_IDirectWriterLock = {0x0E6D4D92, 0x6738, 0x11CF, [0x96, 0x08, 0x00, 0xAA, 0x00, 0x68, 0x0D, 0xB4]}; + const IID IID_IDirectXFile = {0x3D82AB40, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID IID_IDirectXFileBinary = {0x3D82AB46, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID IID_IDirectXFileData = {0x3D82AB44, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID IID_IDirectXFileDataReference = {0x3D82AB45, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID IID_IDirectXFileEnumObject = {0x3D82AB41, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID IID_IDirectXFileObject = {0x3D82AB43, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID IID_IDirectXFileSaveObject = {0x3D82AB42, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID IID_IDiscardableBrowserProperty = {0x49C3DE7C, 0xD329, 0x11D0, [0xAB, 0x73, 0x00, 0xC0, 0x4F, 0xC3, 0x3E, 0x80]}; + const IID IID_IDiscMaster = {0x520CCA62, 0x51A5, 0x11D3, [0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E]}; + const IID IID_IDiscMasterProgressEvents = {0xEC9E51C1, 0x4E5D, 0x11D3, [0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E]}; + const IID IID_IDiscRecorder = {0x85AC9776, 0xCA88, 0x4CF2, [0x89, 0x4E, 0x09, 0x59, 0x8C, 0x07, 0x8A, 0x41]}; + const IID IID_IDiscStash = {0x520CCA64, 0x51A5, 0x11D3, [0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E]}; + const IID IID_IDispatch = {0x00020400, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IDispatchEx = {0xA6EF9860, 0xC720, 0x11D0, [0x93, 0x37, 0x00, 0xA0, 0xC9, 0x0D, 0xCA, 0xA9]}; + const IID IID_IDispError = {0xA6EF9861, 0xC720, 0x11D0, [0x93, 0x37, 0x00, 0xA0, 0xC9, 0x0D, 0xCA, 0xA9]}; + const IID IID_IDisplayPointer = {0x3050F69E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IDisplayServices = {0x3050F69D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IDithererImpl = {0x7C48E840, 0x3910, 0x11D0, [0x86, 0xFC, 0x00, 0xA0, 0xC9, 0x13, 0xF7, 0x50]}; + const IID IID_IDocHostShowUI = {0xC4D244B0, 0xD43E, 0x11CF, [0x89, 0x3B, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x1A]}; + const IID IID_IDocHostUIHandler = {0xBD3F23C0, 0xD43E, 0x11CF, [0x89, 0x3B, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x1A]}; + const IID IID_IDocHostUIHandler2 = {0x3050F6D0, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IDockingWindow = {0x012DD920, 0x7B26, 0x11D0, [0x8C, 0xA9, 0x00, 0xA0, 0xC9, 0x2D, 0xBF, 0xE8]}; + const IID IID_IDockingWindowFrame = {0x47D2657A, 0x7B27, 0x11D0, [0x8C, 0xA9, 0x00, 0xA0, 0xC9, 0x2D, 0xBF, 0xE8]}; + const IID IID_IDockingWindowSite = {0x2A342FC2, 0x7B26, 0x11D0, [0x8C, 0xA9, 0x00, 0xA0, 0xC9, 0x2D, 0xBF, 0xE8]}; + const IID IID_IDoTask = {0x0230C9F8, 0xEE7F, 0x4307, [0x98, 0xDB, 0x72, 0x6E, 0xBC, 0xAE, 0x55, 0xD6]}; + const IID IID_IDownloadBehavior = {0x3050F5BD, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IDownloadManager = {0x988934A4, 0x064B, 0x11D3, [0xBB, 0x80, 0x00, 0x10, 0x4B, 0x35, 0xE7, 0xF9]}; + const IID IID_IDownloadNotify = {0xCAEB5D28, 0xAE4C, 0x11D1, [0xBA, 0x40, 0x00, 0xC0, 0x4F, 0xB9, 0x2D, 0x79]}; + const IID IID_IDragSourceHelper = {0xDE5BF786, 0x477A, 0x11D2, [0x83, 0x9D, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0xD0]}; + const IID IID_IDropSource = {0x00000121, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IDropTarget = {0x00000122, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IDropTargetHelper = {0x4657278B, 0x411B, 0x11D2, [0x83, 0x9A, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0xD0]}; + const IID IID_IDsBrowseDomainTree = {0x7CABCF1E, 0x78F5, 0x11D2, [0x96, 0x0C, 0x00, 0xC0, 0x4F, 0xA3, 0x1A, 0x86]}; + const IID IID_IDsQueryColumnHandler = {0xC072999E, 0xFA49, 0x11D1, [0xA0, 0xAF, 0x00, 0xC0, 0x4F, 0xA3, 0x1A, 0x86]}; + const IID IID_IDummy = {0x0D7CA54A, 0xD252, 0x4FCB, [0x91, 0x04, 0xF6, 0xDD, 0xD3, 0x10, 0xB3, 0xF9]}; + const IID IID_IDummyHICONIncluder = {0x947990DE, 0xCC28, 0x11D2, [0xA0, 0xF7, 0x00, 0x80, 0x5F, 0x85, 0x8F, 0xB1]}; + const IID IID_IDX2D = {0x9EFD02A9, 0xA996, 0x11D1, [0x81, 0xC9, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID IID_IDX2DDebug = {0x03BB2457, 0xA279, 0x11D1, [0x81, 0xC6, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID IID_IDXARGBReadPtr = {0xEAAAC2D6, 0xC290, 0x11D1, [0x90, 0x5D, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXARGBReadWritePtr = {0xEAAAC2D7, 0xC290, 0x11D1, [0x90, 0x5D, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXARGBSurfaceInit = {0x9EA3B63A, 0xC37D, 0x11D1, [0x90, 0x5E, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXBaseObject = {0x17B59B2B, 0x9CC8, 0x11D1, [0x90, 0x53, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXBasicImage = {0x16B280C7, 0xEE70, 0x11D1, [0x90, 0x66, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXDCLock = {0x0F619456, 0xCF39, 0x11D1, [0x90, 0x5E, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXDLUTBuilder = {0x73068231, 0x35EE, 0x11D1, [0x81, 0xA1, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID IID_IDXDMapper = {0x7FD9088B, 0x35ED, 0x11D1, [0x81, 0xA1, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID IID_IDXEffect = {0xE31FB81B, 0x1335, 0x11D1, [0x81, 0x89, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID IID_IDXGradient = {0xB2024B51, 0xEE77, 0x11D1, [0x90, 0x66, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXGradient2 = {0xD0EF2A80, 0x61DC, 0x11D2, [0xB2, 0xEB, 0x00, 0xA0, 0xC9, 0x36, 0xB2, 0x12]}; + const IID IID_IDXLookupTable = {0x01BAFC7F, 0x9E63, 0x11D1, [0x90, 0x53, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXLUTBuilder = {0xF4370FC1, 0xCADB, 0x11D0, [0xB5, 0x2C, 0x00, 0xA0, 0xC9, 0x05, 0x43, 0x73]}; + const IID IID_IDXMapper = {0x555278E5, 0x05DB, 0x11D1, [0x88, 0x3A, 0x3C, 0x8B, 0x00, 0xC1, 0x00, 0x00]}; + const IID IID_IDXPixelate = {0xD33E180F, 0xFBE9, 0x11D1, [0x90, 0x6A, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXRasterizer = {0x9EA3B635, 0xC37D, 0x11D1, [0x90, 0x5E, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXRawSurface = {0x09756C8A, 0xD96A, 0x11D1, [0x90, 0x62, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXSurface = {0xB39FD73F, 0xE139, 0x11D1, [0x90, 0x65, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXSurfaceFactory = {0x144946F5, 0xC4D4, 0x11D1, [0x81, 0xD1, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID IID_IDXSurfaceInit = {0x9EA3B639, 0xC37D, 0x11D1, [0x90, 0x5E, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXSurfaceModifier = {0x9EA3B637, 0xC37D, 0x11D1, [0x90, 0x5E, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXSurfacePick = {0x30A5FB79, 0xE11F, 0x11D1, [0x90, 0x64, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXTAlpha = {0x1D4637E0, 0x383C, 0x11D2, [0x95, 0x2A, 0x00, 0xC0, 0x4F, 0xA3, 0x4F, 0x05]}; + const IID IID_IDXTAlphaImageLoader = {0xA5F2D3E8, 0x7A7E, 0x48E5, [0xBC, 0x75, 0x40, 0x79, 0x0B, 0xE4, 0xA9, 0x41]}; + const IID IID_IDXTaskManager = {0x254DBBC1, 0xF922, 0x11D0, [0x88, 0x3A, 0x3C, 0x8B, 0x00, 0xC1, 0x00, 0x00]}; + const IID IID_IDXTBindHost = {0xD26BCE55, 0xE9DC, 0x11D1, [0x90, 0x66, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXTCheckerBoard = {0xAD3C2576, 0x117C, 0x4510, [0x84, 0xDD, 0xB6, 0x68, 0x97, 0x1D, 0xCF, 0xD1]}; + const IID IID_IDXTChroma = {0x1D4637E2, 0x383C, 0x11D2, [0x95, 0x2A, 0x00, 0xC0, 0x4F, 0xA3, 0x4F, 0x05]}; + const IID IID_IDXTClipOrigin = {0xEE1663D8, 0x0988, 0x4C48, [0x9F, 0xD6, 0xDB, 0x44, 0x50, 0x88, 0x56, 0x68]}; + const IID IID_IDXTComposite = {0x9A43A843, 0x0831, 0x11D1, [0x81, 0x7F, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID IID_IDXTConvolution = {0x7BA7F8AF, 0xE5EA, 0x11D1, [0x81, 0xDD, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID IID_IDXTDropShadow = {0x1D4637E3, 0x383C, 0x11D2, [0x95, 0x2A, 0x00, 0xC0, 0x4F, 0xA3, 0x4F, 0x05]}; + const IID IID_IDXTFade = {0x16B280C4, 0xEE70, 0x11D1, [0x90, 0x66, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXTFilter = {0x6187E5A2, 0xA445, 0x4608, [0x8F, 0xC0, 0xBE, 0x7A, 0x6C, 0x8D, 0xB3, 0x86]}; + const IID IID_IDXTFilterBehavior = {0x14D7DDDD, 0xACA2, 0x4E45, [0x95, 0x04, 0x38, 0x08, 0xAB, 0xEB, 0x4F, 0x92]}; + const IID IID_IDXTFilterBehaviorSite = {0x909B23C2, 0x9018, 0x499F, [0xA8, 0x6D, 0x4E, 0x7D, 0xA9, 0x37, 0xE9, 0x31]}; + const IID IID_IDXTFilterCollection = {0x22B07B33, 0x8BFB, 0x49D4, [0x9B, 0x90, 0x09, 0x38, 0x37, 0x0C, 0x90, 0x19]}; + const IID IID_IDXTFilterController = {0x5CF315F2, 0x273D, 0x47B6, [0xB9, 0xED, 0xF7, 0x5D, 0xC3, 0xB0, 0x15, 0x0B]}; + const IID IID_IDXTGlow = {0x1D4637E4, 0x383C, 0x11D2, [0x95, 0x2A, 0x00, 0xC0, 0x4F, 0xA3, 0x4F, 0x05]}; + const IID IID_IDXTGradientD = {0x623E2881, 0xFC0E, 0x11D1, [0x9A, 0x77, 0x00, 0x00, 0xF8, 0x75, 0x6A, 0x10]}; + const IID IID_IDXTGridSize = {0xD6BBE91E, 0xFF60, 0x11D2, [0x8F, 0x6E, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x74]}; + const IID IID_IDXTICMFilter = {0x734321ED, 0x1E7B, 0x4E1C, [0xBB, 0xFA, 0x89, 0xC8, 0x19, 0x80, 0x0E, 0x2F]}; + const IID IID_IDXTLabel = {0xC0C17F0E, 0xAE41, 0x11D1, [0x9A, 0x3B, 0x00, 0x00, 0xF8, 0x75, 0x6A, 0x10]}; + const IID IID_IDXTLight = {0xF9EFBEC1, 0x4302, 0x11D2, [0x95, 0x2A, 0x00, 0xC0, 0x4F, 0xA3, 0x4F, 0x05]}; + const IID IID_IDXTMask = {0xA1067146, 0xB063, 0x47D7, [0xA5, 0x4A, 0x2C, 0x23, 0x09, 0xE9, 0x88, 0x9D]}; + const IID IID_IDXTMatrix = {0xAC66A493, 0x0F0C, 0x4C76, [0x82, 0x5C, 0x9D, 0x68, 0xBE, 0xDE, 0x91, 0x88]}; + const IID IID_IDXTMetaBurnFilm = {0x107045D0, 0x06E0, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID IID_IDXTMetaCenterPeel = {0xAA0D4D0B, 0x06A3, 0x11D2, [0x8F, 0x98, 0x00, 0xC0, 0x4F, 0xB9, 0x2E, 0xB7]}; + const IID IID_IDXTMetaColorFade = {0x2A54C907, 0x07AA, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID IID_IDXTMetaFlowMotion = {0x2A54C90A, 0x07AA, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID IID_IDXTMetaGriddler = {0x2A54C910, 0x07AA, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID IID_IDXTMetaGriddler2 = {0x2A54C912, 0x07AA, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID IID_IDXTMetaJaws = {0x2A54C903, 0x07AA, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID IID_IDXTMetaLightWipe = {0x107045C7, 0x06E0, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID IID_IDXTMetaLiquid = {0xAA0D4D09, 0x06A3, 0x11D2, [0x8F, 0x98, 0x00, 0xC0, 0x4F, 0xB9, 0x2E, 0xB7]}; + const IID IID_IDXTMetaPageTurn = {0xAA0D4D07, 0x06A3, 0x11D2, [0x8F, 0x98, 0x00, 0xC0, 0x4F, 0xB9, 0x2E, 0xB7]}; + const IID IID_IDXTMetaPeelPiece = {0xAA0D4D0F, 0x06A3, 0x11D2, [0x8F, 0x98, 0x00, 0xC0, 0x4F, 0xB9, 0x2E, 0xB7]}; + const IID IID_IDXTMetaPeelSmall = {0xAA0D4D0D, 0x06A3, 0x11D2, [0x8F, 0x98, 0x00, 0xC0, 0x4F, 0xB9, 0x2E, 0xB7]}; + const IID IID_IDXTMetaPeelSplit = {0xAA0D4D11, 0x06A3, 0x11D2, [0x8F, 0x98, 0x00, 0xC0, 0x4F, 0xB9, 0x2E, 0xB7]}; + const IID IID_IDXTMetaRadialScaleWipe = {0x107045C9, 0x06E0, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID IID_IDXTMetaRipple = {0xAA0D4D02, 0x06A3, 0x11D2, [0x8F, 0x98, 0x00, 0xC0, 0x4F, 0xB9, 0x2E, 0xB7]}; + const IID IID_IDXTMetaRoll = {0x9C61F46D, 0x0530, 0x11D2, [0x8F, 0x98, 0x00, 0xC0, 0x4F, 0xB9, 0x2E, 0xB7]}; + const IID IID_IDXTMetaThreshold = {0x2A54C914, 0x07AA, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID IID_IDXTMetaTwister = {0x107045CE, 0x06E0, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID IID_IDXTMetaVacuum = {0x2A54C90C, 0x07AA, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID IID_IDXTMetaWater = {0x107045C4, 0x06E0, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID IID_IDXTMetaWhiteOut = {0x107045CB, 0x06E0, 0x11D2, [0x8D, 0x6D, 0x00, 0xC0, 0x4F, 0x8E, 0xF8, 0xE0]}; + const IID IID_IDXTMetaWormHole = {0x0E6AE021, 0x0C83, 0x11D2, [0x8C, 0xD4, 0x00, 0x10, 0x4B, 0xC7, 0x5D, 0x9A]}; + const IID IID_IDXTMotionBlur = {0x089057BE, 0xD3F5, 0x4A2C, [0xB1, 0x0A, 0xA5, 0x13, 0x01, 0x84, 0xA0, 0xF7]}; + const IID IID_IDXTRandomBars = {0x8A6D2022, 0x4A8F, 0x4EB9, [0xBB, 0x25, 0xAA, 0x05, 0x20, 0x1F, 0x9C, 0x84]}; + const IID IID_IDXTransform = {0x30A5FB78, 0xE11F, 0x11D1, [0x90, 0x64, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXTransformFactory = {0x6A950B2B, 0xA971, 0x11D1, [0x81, 0xC8, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID IID_IDXTRedirect = {0x02F5140B, 0x626F, 0x4019, [0x9C, 0x9E, 0x2D, 0xAA, 0x1E, 0x93, 0xE8, 0xFC]}; + const IID IID_IDXTRedirectFilterInit = {0xD1A57094, 0x21F7, 0x4E6C, [0x93, 0xE5, 0xF5, 0xF7, 0x7F, 0x74, 0x82, 0x93]}; + const IID IID_IDXTRevealTrans = {0xB8095006, 0xA128, 0x464B, [0x8B, 0x2D, 0x90, 0x58, 0x0A, 0xEE, 0x2B, 0x05]}; + const IID IID_IDXTScale = {0xB39FD742, 0xE139, 0x11D1, [0x90, 0x65, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXTScaleOutput = {0xB2024B50, 0xEE77, 0x11D1, [0x90, 0x66, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D]}; + const IID IID_IDXTShadow = {0x1D4637E6, 0x383C, 0x11D2, [0x95, 0x2A, 0x00, 0xC0, 0x4F, 0xA3, 0x4F, 0x05]}; + const IID IID_IDXTStrips = {0xA83C9B5C, 0xFB11, 0x4AF5, [0x8F, 0x65, 0xD0, 0x3F, 0x15, 0x1D, 0x3E, 0xD5]}; + const IID IID_IDXTWave = {0x1D4637E7, 0x383C, 0x11D2, [0x95, 0x2A, 0x00, 0xC0, 0x4F, 0xA3, 0x4F, 0x05]}; + const IID IID_IDXTWipe = {0xAF279B2F, 0x86EB, 0x11D1, [0x81, 0xBF, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID IID_IDXTWipe2 = {0xE1FF8091, 0x442B, 0x4801, [0x88, 0xB6, 0x2B, 0x47, 0xB1, 0x61, 0x1F, 0xD2]}; + const IID IID_IDynamicPortMapping = {0x4FC80282, 0x23B6, 0x4378, [0x9A, 0x27, 0xCD, 0x8F, 0x17, 0xC9, 0x40, 0x0C]}; + const IID IID_IDynamicPortMappingCollection = {0xB60DE00F, 0x156E, 0x4E8D, [0x9E, 0xC1, 0x3A, 0x23, 0x42, 0xC1, 0x08, 0x99]}; + const IID IID_IEditDebugServices = {0x3050F60B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementAdorner = {0x3050F607, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementBehavior = {0x3050F425, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementBehaviorCategory = {0x3050F4ED, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementBehaviorFactory = {0x3050F429, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementBehaviorFocus = {0x3050F6B6, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementBehaviorLayout = {0x3050F6BA, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementBehaviorLayout2 = {0x3050F846, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementBehaviorRender = {0x3050F4AA, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementBehaviorSite = {0x3050F427, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementBehaviorSiteCategory = {0x3050F4EE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementBehaviorSiteLayout = {0x3050F6B7, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementBehaviorSiteLayout2 = {0x3050F847, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementBehaviorSiteOM = {0x3050F489, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementBehaviorSiteOM2 = {0x3050F659, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementBehaviorSiteRender = {0x3050F4A7, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementBehaviorSubmit = {0x3050F646, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementBehaviorUI = {0x3050F4BF, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementNamespace = {0x3050F671, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementNamespaceFactory = {0x3050F672, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementNamespaceFactory2 = {0x3050F805, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementNamespaceFactoryCallback = {0x3050F7FD, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementNamespacePrivate = {0x3050F7FF, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementNamespaceTable = {0x3050F670, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IElementSegment = {0x3050F68F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IEmptyVolumeCache = {0x8FCE5227, 0x04DA, 0x11D1, [0xA0, 0x04, 0x00, 0x80, 0x5F, 0x8A, 0xBE, 0x06]}; + const IID IID_IEmptyVolumeCache2 = {0x02B7E3BA, 0x4DB3, 0x11D2, [0xB2, 0xD9, 0x00, 0xC0, 0x4F, 0x8E, 0xEC, 0x8C]}; + const IID IID_IEmptyVolumeCacheCallBack = {0x6E793361, 0x73C6, 0x11D0, [0x84, 0x69, 0x00, 0xAA, 0x00, 0x44, 0x29, 0x01]}; + const IID IID_IEncodingFilterFactory = {0x70BDDE00, 0xC18E, 0x11D0, [0xA9, 0xCE, 0x00, 0x60, 0x97, 0x94, 0x23, 0x11]}; + const IID IID_IEnroll = {0xACAA7838, 0x4585, 0x11D1, [0xAB, 0x57, 0x00, 0xC0, 0x4F, 0xC2, 0x95, 0xE1]}; + const IID IID_IEnroll2 = {0xC080E199, 0xB7DF, 0x11D2, [0xA4, 0x21, 0x00, 0xC0, 0x4F, 0x79, 0xFE, 0x8E]}; + const IID IID_IEnroll4 = {0xF8053FE5, 0x78F4, 0x448F, [0xA0, 0xDB, 0x41, 0xD6, 0x1B, 0x73, 0x44, 0x6B]}; + const IID IID_IEntryID = {0xE4D19810, 0xD188, 0x11CD, [0xAD, 0x48, 0x00, 0xAA, 0x00, 0x3C, 0x9C, 0xB6]}; + const IID IID_IEnumACDGroup = {0x5AFC3157, 0x4BCC, 0x11D1, [0xBF, 0x80, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_IEnumACString = {0x8E74C210, 0xCF9D, 0x4EAF, [0xA4, 0x03, 0x73, 0x56, 0x42, 0x8F, 0x0A, 0x5A]}; + const IID IID_IEnumAdapterInfo = {0xA23F9D11, 0x714C, 0x41FE, [0x84, 0x71, 0xFF, 0xB1, 0x9B, 0xC2, 0x84, 0x54]}; + const IID IID_IEnumAddress = {0x1666FCA1, 0x9363, 0x11D0, [0x83, 0x5C, 0x00, 0xAA, 0x00, 0x3C, 0xCA, 0xBD]}; + const IID IID_IEnumAgent = {0x5AFC314D, 0x4BCC, 0x11D1, [0xBF, 0x80, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_IEnumAgentHandler = {0x587E8C28, 0x9802, 0x11D1, [0xA0, 0xA4, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_IEnumAgentSession = {0x5AFC314E, 0x4BCC, 0x11D1, [0xBF, 0x80, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_IEnumBackgroundCopyFiles = {0xCA51E165, 0xC365, 0x424C, [0x8D, 0x41, 0x24, 0xAA, 0xA4, 0xFF, 0x3C, 0x40]}; + const IID IID_IEnumBackgroundCopyGroups = {0xD993E603, 0x4AA4, 0x47C5, [0x86, 0x65, 0xC2, 0x0D, 0x39, 0xC2, 0xBA, 0x4F]}; + const IID IID_IEnumBackgroundCopyJobs = {0x1AF4F612, 0x3B71, 0x466F, [0x8F, 0x58, 0x7B, 0x6F, 0x73, 0xAC, 0x57, 0xAD]}; + const IID IID_IEnumBackgroundCopyJobs1 = {0x8BAEBA9D, 0x8F1C, 0x42C4, [0xB8, 0x2C, 0x09, 0xAE, 0x79, 0x98, 0x0D, 0x25]}; + const IID IID_IEnumBstr = {0x35372049, 0x0BC6, 0x11D2, [0xA0, 0x33, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_IEnumCall = {0xAE269CF6, 0x935E, 0x11D0, [0x83, 0x5C, 0x00, 0xAA, 0x00, 0x3C, 0xCA, 0xBD]}; + const IID IID_IEnumCallback = {0x00000108, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IEnumCallHub = {0xA3C15450, 0x5B92, 0x11D1, [0x8F, 0x4E, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_IEnumCallingCard = {0x0C4D8F02, 0x8DDB, 0x11D1, [0xA0, 0x9E, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_IEnumCATEGORYINFO = {0x0002E011, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IEnumChannels = {0xA4C65425, 0x0F82, 0x11D1, [0x90, 0xC3, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x68]}; + const IID IID_IEnumClusCfgIPAddresses = {0xBD5F35BA, 0x0BC0, 0x455F, [0x92, 0x6D, 0xC3, 0xD3, 0x56, 0x41, 0x94, 0x86]}; + const IID IID_IEnumClusCfgManagedResources = {0x7DBE11EB, 0xA5DF, 0x4534, [0xAB, 0xF6, 0x8B, 0xAC, 0x7B, 0x53, 0xFC, 0x95]}; + const IID IID_IEnumClusCfgNetworks = {0xCF3FAED8, 0x1322, 0x4BCB, [0x99, 0x23, 0xB5, 0xB7, 0x45, 0xA6, 0x9E, 0x36]}; + const IID IID_IEnumClusCfgPartitions = {0x4440BB6A, 0xB0AC, 0x479D, [0xB5, 0x34, 0x72, 0x65, 0xA3, 0x1D, 0x6C, 0x55]}; + const IID IID_IEnumCodePage = {0x275C23E3, 0x3747, 0x11D0, [0x9F, 0xEA, 0x00, 0xAA, 0x00, 0x3F, 0x86, 0x46]}; + const IID IID_IEnumConnectionPoints = {0xB196B285, 0xBAB4, 0x101A, [0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07]}; + const IID IID_IEnumConnections = {0xB196B287, 0xBAB4, 0x101A, [0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07]}; + const IID IID_IEnumCookies = {0x5E3E482E, 0x3C22, 0x482C, [0xB6, 0x64, 0x69, 0x30, 0x51, 0xAD, 0x0A, 0x5D]}; + const IID IID_IEnumDebugApplicationNodes = {0x51973C3A, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IEnumDebugCodeContexts = {0x51973C1D, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IEnumDebugExpressionContexts = {0x51973C40, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IEnumDebugExtendedPropertyInfo = {0x51973C53, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IEnumDebugPropertyInfo = {0x51973C51, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IEnumDebugStackFrames = {0x51973C1E, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IEnumDebugStackFrames64 = {0x0DC38853, 0xC1B0, 0x4176, [0xA9, 0x84, 0xB2, 0x98, 0x36, 0x10, 0x27, 0xAF]}; + const IID IID_IEnumDialableAddrs = {0x34621D70, 0x6CFF, 0x11D1, [0xAF, 0xF7, 0x00, 0xC0, 0x4F, 0xC3, 0x1F, 0xEE]}; + const IID IID_IEnumDirectory = {0x34621D6D, 0x6CFF, 0x11D1, [0xAF, 0xF7, 0x00, 0xC0, 0x4F, 0xC3, 0x1F, 0xEE]}; + const IID IID_IEnumDirectoryObject = {0x06C9B64A, 0x306D, 0x11D1, [0x97, 0x74, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID IID_IEnumDiscMasterFormats = {0xDDF445E1, 0x54BA, 0x11D3, [0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E]}; + const IID IID_IEnumDiscRecorders = {0x9B1921E1, 0x54AC, 0x11D3, [0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E]}; + const IID IID_IEnumExtraSearch = {0x0E700BE1, 0x9DB6, 0x11D1, [0xA1, 0xCE, 0x00, 0xC0, 0x4F, 0xD7, 0x5D, 0x13]}; + const IID IID_IEnumFORMATETC = {0x00000103, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IEnumGeneric = {0x00000106, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IEnumGUID = {0x0002E000, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IEnumHLITEM = {0x79EAC9C6, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IEnumHNetApplicationProtocols = {0x85D18B7B, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IEnumHNetBridgedConnections = {0x85D18B7D, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IEnumHNetBridges = {0x85D18B77, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IEnumHNetFirewalledConnections = {0x85D18B78, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IEnumHNetIcsPrivateConnections = {0x85D18B7A, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IEnumHNetIcsPublicConnections = {0x85D18B79, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IEnumHNetPortMappingBindings = {0x85D18B81, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IEnumHNetPortMappingProtocols = {0x85D18B7C, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IEnumHolder = {0x00000107, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IEnumIDList = {0x000214F2, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IEnumInputContext = {0x09B5EAB0, 0xF997, 0x11D1, [0x93, 0xD4, 0x00, 0x60, 0xB0, 0x67, 0xB8, 0x6E]}; + const IID IID_IEnumItemProperties = {0xF72C8D96, 0x6DBD, 0x11D1, [0xA1, 0xE8, 0x00, 0xC0, 0x4F, 0xC2, 0xFB, 0xE1]}; + const IID IID_IEnumLocation = {0x0C4D8F01, 0x8DDB, 0x11D1, [0xA0, 0x9E, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_IEnumMcastScope = {0xDF0DAF09, 0xA289, 0x11D1, [0x86, 0x97, 0x00, 0x60, 0x08, 0xB0, 0xE5, 0xD2]}; + const IID IID_IEnumMedia = {0xCA8397BE, 0x2FA4, 0x11D1, [0x97, 0x74, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID IID_IEnumMoniker = {0x00000102, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IEnumNetCfgBindingInterface = {0xC0E8AE90, 0x306E, 0x11D1, [0xAA, 0xCF, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_IEnumNetCfgBindingPath = {0xC0E8AE91, 0x306E, 0x11D1, [0xAA, 0xCF, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_IEnumNetCfgComponent = {0xC0E8AE92, 0x306E, 0x11D1, [0xAA, 0xCF, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_IEnumNetConnection = {0xC08956A0, 0x1CD3, 0x11D1, [0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_IEnumNetSharingEveryConnection = {0xC08956B8, 0x1CD3, 0x11D1, [0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_IEnumNetSharingPortMapping = {0xC08956B0, 0x1CD3, 0x11D1, [0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_IEnumNetSharingPrivateConnection = {0xC08956B5, 0x1CD3, 0x11D1, [0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_IEnumNetSharingPublicConnection = {0xC08956B4, 0x1CD3, 0x11D1, [0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_IEnumNodes = {0xC477E363, 0xAF0A, 0x4203, [0xA6, 0x04, 0x45, 0xCD, 0x60, 0x7D, 0xD7, 0x10]}; + const IID IID_IEnumNotification = {0xC733E4A8, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID IID_IEnumNotificationSinkItem = {0xC733E4AA, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID IID_IEnumOleDocumentViews = {0xB722BCC8, 0x4E68, 0x101B, [0xA2, 0xBC, 0x00, 0xAA, 0x00, 0x40, 0x47, 0x70]}; + const IID IID_IEnumOleUndoUnits = {0xB3E7C340, 0xEF97, 0x11CE, [0x9B, 0xC9, 0x00, 0xAA, 0x00, 0x60, 0x8E, 0x01]}; + const IID IID_IEnumOLEVERB = {0x00000104, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IEnumParticipant = {0x0A91B56C, 0x5A35, 0x11D2, [0x95, 0xA0, 0x00, 0xA0, 0x24, 0x4D, 0x22, 0x98]}; + const IID IID_IEnumPhone = {0xF15B7669, 0x4780, 0x4595, [0x8C, 0x89, 0xFB, 0x36, 0x9C, 0x8C, 0xF7, 0xAA]}; + const IID IID_IEnumPluggableSuperclassInfo = {0xE9586A80, 0x89E6, 0x4CFF, [0x93, 0x1D, 0x47, 0x8D, 0x57, 0x51, 0xF4, 0xC0]}; + const IID IID_IEnumPluggableTerminalClassInfo = {0x4567450C, 0xDBEE, 0x4E3F, [0xAA, 0xF5, 0x37, 0xBF, 0x9E, 0xBF, 0x5E, 0x29]}; + const IID IID_IEnumPrivacyRecords = {0x3050F844, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IEnumPropertyMap = {0xC733E4A1, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID IID_IEnumPublishedApps = {0x0B124F8C, 0x91F0, 0x11D1, [0xB8, 0xB5, 0x00, 0x60, 0x08, 0x05, 0x93, 0x82]}; + const IID IID_IEnumQueue = {0x5AFC3158, 0x4BCC, 0x11D1, [0xBF, 0x80, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_IEnumRegisterWordA = {0x08C03412, 0xF96B, 0x11D0, [0xA4, 0x75, 0x00, 0xAA, 0x00, 0x6B, 0xCC, 0x59]}; + const IID IID_IEnumRegisterWordW = {0x4955DD31, 0xB159, 0x11D0, [0x8F, 0xCF, 0x00, 0xAA, 0x00, 0x6B, 0xCC, 0x59]}; + const IID IID_IEnumRemoteDebugApplications = {0x51973C3B, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IEnumRemoteDebugApplicationThrea = {0x51973C3C, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IEnumRfc1766 = {0x3DC39D1D, 0xC030, 0x11D0, [0xB8, 0x1B, 0x00, 0xC0, 0x4F, 0xC9, 0xB3, 0x1F]}; + const IID IID_IEnumScheduleGroup = {0xC733E4A9, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID IID_IEnumScript = {0xAE5F1430, 0x388B, 0x11D2, [0x83, 0x80, 0x00, 0xC0, 0x4F, 0x8F, 0x5D, 0xA1]}; + const IID IID_IEnumSTATDATA = {0x00000105, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IEnumSTATPROPBAG = {0x20021801, 0x5DE6, 0x11D1, [0x8E, 0x38, 0x00, 0xC0, 0x4F, 0xB9, 0x38, 0x6D]}; + const IID IID_IEnumSTATPROPSETSTG = {0x0000013B, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IEnumSTATPROPSTG = {0x00000139, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IEnumSTATSTG = {0x0000000D, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IEnumSTATURL = {0x3C374A42, 0xBAE4, 0x11CF, [0xBF, 0x7D, 0x00, 0xAA, 0x00, 0x69, 0x46, 0xEE]}; + const IID IID_IEnumStream = {0xEE3BD606, 0x3868, 0x11D2, [0xA0, 0x45, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_IEnumString = {0x00000101, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IEnumSubscription = {0xF72C8D97, 0x6DBD, 0x11D1, [0xA1, 0xE8, 0x00, 0xC0, 0x4F, 0xC2, 0xFB, 0xE1]}; + const IID IID_IEnumSubStream = {0xEE3BD609, 0x3868, 0x11D2, [0xA0, 0x45, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_IEnumSyncItems = {0xF0E1589A, 0xA700, 0x11D1, [0x98, 0x31, 0x00, 0xC0, 0x4F, 0xD9, 0x10, 0xDD]}; + const IID IID_IEnumSyncSchedules = {0xF0E15898, 0xA700, 0x11D1, [0x98, 0x31, 0x00, 0xC0, 0x4F, 0xD9, 0x10, 0xDD]}; + const IID IID_IEnumTerminal = {0xAE269CF4, 0x935E, 0x11D0, [0x83, 0x5C, 0x00, 0xAA, 0x00, 0x3C, 0xCA, 0xBD]}; + const IID IID_IEnumTerminalClass = {0xAE269CF5, 0x935E, 0x11D0, [0x83, 0x5C, 0x00, 0xAA, 0x00, 0x3C, 0xCA, 0xBD]}; + const IID IID_IEnumTime = {0x9055322E, 0x2FA8, 0x11D1, [0x97, 0x74, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID IID_IEnumTravelLogEntry = {0x7EBFDD85, 0xAD18, 0x11D3, [0xA4, 0xC5, 0x00, 0xC0, 0x4F, 0x72, 0xD6, 0xB8]}; + const IID IID_IEnumUnknown = {0x00000100, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IEnumVARIANT = {0x00020404, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IEnumWbemClassObject = {0x027947E1, 0xD731, 0x11CE, [0xA3, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01]}; + const IID IID_IErrorInfo = {0x1CF2B120, 0x547D, 0x101B, [0x8E, 0x65, 0x08, 0x00, 0x2B, 0x2B, 0xD1, 0x19]}; + const IID IID_IErrorLog = {0x3127CA40, 0x446E, 0x11CE, [0x81, 0x35, 0x00, 0xAA, 0x00, 0x4B, 0xB8, 0x51]}; + const IID IID_IErrorLookup = {0x0C733A66, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IErrorRecords = {0x0C733A67, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IESP = {0xE99A04AA, 0xAB95, 0x11D0, [0xBE, 0x96, 0x00, 0xA0, 0xC9, 0x49, 0x89, 0xDE]}; + const IID IID_IExtendObjectManager = {0xCA7BB0B9, 0x700C, 0x4DC5, [0x99, 0x1E, 0x75, 0xF9, 0xE6, 0x5E, 0xE9, 0x75]}; + const IID IID_IExtensionServices = {0x79EAC9CB, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IExternalConnection = {0x00000019, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IExtractIconA = {0x000214EB, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IExtractIconW = {0x000214FA, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IExtractImage = {0xBB2E617C, 0x0920, 0x11D1, [0x9A, 0x0B, 0x00, 0xC0, 0x4F, 0xC2, 0xD6, 0xC1]}; + const IID IID_IExtractImage2 = {0x953BB1EE, 0x93B4, 0x11D1, [0x98, 0xA3, 0x00, 0xC0, 0x4F, 0xB6, 0x87, 0xDA]}; + const IID IID_IFileSearchBand = {0x2D91EEA1, 0x9932, 0x11D2, [0xBE, 0x86, 0x00, 0xA0, 0xC9, 0xA8, 0x3D, 0xA1]}; + const IID IID_IFileSystemBindData = {0x01E18D10, 0x4D8B, 0x11D2, [0x85, 0x5D, 0x00, 0x60, 0x08, 0x05, 0x93, 0x67]}; + const IID IID_IFileViewerA = {0x000214F0, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IFileViewerSite = {0x000214F3, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IFileViewerW = {0x000214F8, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IFillLockBytes = {0x99CAF010, 0x415E, 0x11CF, [0x88, 0x14, 0x00, 0xAA, 0x00, 0xB5, 0x69, 0xF5]}; + const IID IID_IFilter = {0x89BCB740, 0x6119, 0x101A, [0xBC, 0xB7, 0x00, 0xDD, 0x01, 0x06, 0x55, 0xAF]}; + const IID IID_IFilterAnimationInfo = {0x02E29300, 0xC758, 0x49B4, [0x9E, 0x11, 0xC5, 0x8B, 0xFE, 0x90, 0x55, 0x8B]}; + const IID IID_IFilterStatus = {0xF4EB8260, 0x8DDA, 0x11D1, [0xB3, 0xAA, 0x00, 0xA0, 0xC9, 0x06, 0x37, 0x96]}; + const IID IID_IFolderFilter = {0x9CC22886, 0xDC8E, 0x11D2, [0xB1, 0xD0, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x3E]}; + const IID IID_IFolderFilterSite = {0xC0A651F5, 0xB48B, 0x11D2, [0xB5, 0xED, 0x00, 0x60, 0x97, 0xC6, 0x86, 0xF6]}; + const IID IID_IFolderView = {0xCDE725B0, 0xCCC9, 0x4519, [0x91, 0x7E, 0x32, 0x5D, 0x72, 0xFA, 0xB4, 0xCE]}; + const IID IID_IFolderViewHost = {0x1EA58F02, 0xD55A, 0x411D, [0xB0, 0x9E, 0x9E, 0x65, 0xAC, 0x21, 0x60, 0x5B]}; + const IID IID_IFolderViewOC = {0x9BA05970, 0xF6A8, 0x11CF, [0xA4, 0x42, 0x00, 0xA0, 0xC9, 0x0A, 0x8F, 0x39]}; + const IID IID_IFont = {0xBEF6E002, 0xA874, 0x101A, [0x8B, 0xBA, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID IID_IFontDisp = {0xBEF6E003, 0xA874, 0x101A, [0x8B, 0xBA, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID IID_IFontEventsDisp = {0x4EF6100A, 0xAF88, 0x11D0, [0x98, 0x46, 0x00, 0xC0, 0x4F, 0xC2, 0x99, 0x93]}; + const IID IID_IFontNames = {0x3050F839, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IForegroundTransfer = {0x00000145, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IFsCiAdmin = {0x75398C30, 0x7A26, 0x11D0, [0xA8, 0x0A, 0x00, 0xA0, 0xC9, 0x06, 0x24, 0x1A]}; + const IID IID_IGatherData = {0x65318F4A, 0xB63C, 0x4E21, [0xAD, 0xDC, 0xBD, 0xCF, 0xB9, 0x69, 0xE1, 0x81]}; + const IID IID_IGetClusterDataInfo = {0x97DEDE51, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_IGetClusterGroupInfo = {0x97DEDE54, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_IGetClusterNetInterfaceInfo = {0x97DEDE57, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_IGetClusterNetworkInfo = {0x97DEDE56, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_IGetClusterNodeInfo = {0x97DEDE53, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_IGetClusterObjectInfo = {0x97DEDE52, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_IGetClusterResourceInfo = {0x97DEDE55, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_IGetClusterUIInfo = {0x97DEDE50, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_IGetDataSource = {0x0C733A75, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IGetRow = {0x0C733AAF, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IGetSession = {0x0C733ABA, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IGetSourceRow = {0x0C733ABB, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IGlobalInterfaceTable = {0x00000146, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IH26XEncodeOptions = {0x65698D40, 0x282D, 0x11D0, [0x88, 0x00, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_IH26XEncoderControl = {0xF9B78AA1, 0xEA12, 0x11CF, [0x9F, 0xEC, 0x00, 0xAA, 0x00, 0xA5, 0x9F, 0x69]}; + const IID IID_IH26XRTPControl = {0x1FC3F2C0, 0x2BFD, 0x11D0, [0x88, 0x00, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_IH26XSnapshot = {0x3CB194A0, 0x10AA, 0x11D0, [0x88, 0x00, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_IH26XVideoEffects = {0x21555140, 0x9C2B, 0x11CF, [0x90, 0xFA, 0x00, 0xAA, 0x00, 0xA7, 0x29, 0xEA]}; + const IID IID_IH323LineEx = {0x44CF6A9D, 0xCB40, 0x4BBC, [0xB2, 0xD3, 0xB6, 0xAA, 0x93, 0x32, 0x2C, 0x71]}; + const IID IID_IHeaderFooter = {0x3050F6CE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHighlightRenderingServices = {0x3050F606, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHighlightSegment = {0x3050F690, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHlink = {0x79EAC9C3, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IHlinkBrowseContext = {0x79EAC9C7, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IHlinkFrame = {0x79EAC9C5, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IHlinkSite = {0x79EAC9C2, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IHlinkTarget = {0x79EAC9C4, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IHNetApplicationProtocol = {0x85D18B7F, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IHNetBridge = {0x85D18B75, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IHNetBridgedConnection = {0x85D18B76, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IHNetBridgeSettings = {0x85D18B6D, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IHNetCfgMgr = {0x85D18B6C, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IHNetConnection = {0x85D18B71, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IHNetFirewalledConnection = {0x85D18B72, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IHNetFirewallSettings = {0x85D18B6E, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IHNetIcsPrivateConnection = {0x85D18B74, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IHNetIcsPublicConnection = {0x85D18B73, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IHNetIcsSettings = {0x85D18B6F, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IHNetPortMappingBinding = {0x85D18B80, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IHNetPortMappingProtocol = {0x85D18B7E, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IHNetProtocolSettings = {0x85D18B70, 0x3032, 0x11D4, [0x93, 0x48, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x71]}; + const IID IID_IHomePage = {0x766BF2AF, 0xD650, 0x11D1, [0x98, 0x11, 0x00, 0xC0, 0x4F, 0xC3, 0x1D, 0x2E]}; + const IID IID_IHostBehaviorInit = {0x3050F842, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHostDialogHelper = {0x53DEC138, 0xA51E, 0x11D2, [0x86, 0x1E, 0x00, 0xC0, 0x4F, 0xA3, 0x5C, 0x89]}; + const IID IID_IHTCAttachBehavior = {0x3050F5F4, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTCAttachBehavior2 = {0x3050F7EB, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTCDefaultDispatch = {0x3050F4FD, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTCDescBehavior = {0x3050F5DC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTCEventBehavior = {0x3050F4FF, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTCMethodBehavior = {0x3050F631, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTCPropertyBehavior = {0x3050F5DF, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLAnchorElement = {0x3050F1DA, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLAnchorElement2 = {0x3050F825, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLAppBehavior = {0x3050F5CA, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLAppBehavior2 = {0x3050F5C9, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLAppBehavior3 = {0x3050F5CD, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHtmlArea = {0x3050F64E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLAreaElement = {0x3050F265, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLAreasCollection = {0x3050F383, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLAreasCollection2 = {0x3050F5EC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLAreasCollection3 = {0x3050F837, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLAttributeCollection = {0x3050F4C3, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLAttributeCollection2 = {0x3050F80A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLBaseElement = {0x3050F204, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLBaseFontElement = {0x3050F202, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLBGsound = {0x3050F369, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLBlockElement = {0x3050F208, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLBlockElement2 = {0x3050F823, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLBodyElement = {0x3050F1D8, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLBodyElement2 = {0x3050F5C5, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLBookmarkCollection = {0x3050F4CE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLBRElement = {0x3050F1F0, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLButtonElement = {0x3050F2BB, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLCaret = {0x3050F604, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLChangeLog = {0x3050F649, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLChangePlayback = {0x3050F6E0, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLChangeSink = {0x3050F64A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLCommentElement = {0x3050F20C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLCommentElement2 = {0x3050F813, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLComputedStyle = {0x3050F6C3, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLControlElement = {0x3050F4E9, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLControlRange = {0x3050F29C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLControlRange2 = {0x3050F65E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLCurrentStyle = {0x3050F3DB, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLCurrentStyle2 = {0x3050F658, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLCurrentStyle3 = {0x3050F818, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDatabinding = {0x3050F3F2, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDataTransfer = {0x3050F4B3, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDDElement = {0x3050F1F2, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDialog = {0x3050F216, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDialog2 = {0x3050F5E0, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDialog3 = {0x3050F388, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDivElement = {0x3050F200, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDivPosition = {0x3050F212, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHtmlDlgSafeHelper = {0x3050F81A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDListElement = {0x3050F1F1, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDocument = {0x626FC520, 0xA41E, 0x11CF, [0xA7, 0x31, 0x00, 0xA0, 0xC9, 0x08, 0x26, 0x37]}; + const IID IID_IHTMLDocument2 = {0x332C4425, 0x26CB, 0x11D0, [0xB4, 0x83, 0x00, 0xC0, 0x4F, 0xD9, 0x01, 0x19]}; + const IID IID_IHTMLDocument3 = {0x3050F485, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDocument4 = {0x3050F69A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDocument5 = {0x3050F80C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDOMAttribute = {0x3050F4B0, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDOMAttribute2 = {0x3050F810, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDOMChildrenCollection = {0x3050F5AB, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDOMImplementation = {0x3050F80D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDOMNode = {0x3050F5DA, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDOMNode2 = {0x3050F80B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDOMTextNode = {0x3050F4B1, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDOMTextNode2 = {0x3050F809, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDTElement = {0x3050F1F3, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLDXTransform = {0x30E2AB7D, 0x4FDD, 0x4159, [0xB7, 0xEA, 0xDC, 0x72, 0x2B, 0xF4, 0xAD, 0xE5]}; + const IID IID_IHTMLEditDesigner = {0x3050F662, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLEditHost = {0x3050F6A0, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLEditHost2 = {0x3050F848, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0D]}; + const IID IID_IHTMLEditingServices = {0x3050F7FB, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLEditor = {0x3050F7FA, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLEditServices = {0x3050F663, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLEditServices2 = {0x3050F812, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLElement = {0x3050F1FF, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLElement2 = {0x3050F434, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLElement3 = {0x3050F673, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLElement4 = {0x3050F80F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLElementCollection = {0x3050F21F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLElementCollection2 = {0x3050F5EE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLElementCollection3 = {0x3050F835, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLElementDefaults = {0x3050F6C9, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLElementRender = {0x3050F669, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLEmbedElement = {0x3050F25F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLEventObj = {0x3050F32D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLEventObj2 = {0x3050F48B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLEventObj3 = {0x3050F680, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLEventObj4 = {0x3050F814, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFieldSetElement = {0x3050F3E7, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFieldSetElement2 = {0x3050F833, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFilterPainter = {0x3050F6DE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFilterPaintSite = {0x3050F6D3, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFiltersCollection = {0x3050F3EE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFontElement = {0x3050F1D9, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFontNamesCollection = {0x3050F376, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFontSizesCollection = {0x3050F377, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFormElement = {0x3050F1F7, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFormElement2 = {0x3050F4F6, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFormElement3 = {0x3050F836, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFrameBase = {0x3050F311, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFrameBase2 = {0x3050F6DB, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFrameBase3 = {0x3050F82E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFrameElement = {0x3050F313, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFrameElement2 = {0x3050F7F5, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFramesCollection2 = {0x332C4426, 0x26CB, 0x11D0, [0xB4, 0x83, 0x00, 0xC0, 0x4F, 0xD9, 0x01, 0x19]}; + const IID IID_IHTMLFrameSetElement = {0x3050F319, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLFrameSetElement2 = {0x3050F5C6, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLGenericElement = {0x3050F4B7, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLHeadElement = {0x3050F81D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLHeaderElement = {0x3050F1F6, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLHRElement = {0x3050F1F4, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLHtmlElement = {0x3050F81C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLIFrameElement = {0x3050F315, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLIFrameElement2 = {0x3050F4E6, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLImageElementFactory = {0x3050F38E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLImgElement = {0x3050F240, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLImgElement2 = {0x3050F826, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLInputButtonElement = {0x3050F2B2, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLInputElement = {0x3050F5D2, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLInputElement2 = {0x3050F821, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLInputFileElement = {0x3050F2AD, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLInputHiddenElement = {0x3050F2A4, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLInputImage = {0x3050F2C2, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLInputTextElement = {0x3050F2A6, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLIPrintCollection = {0x3050F6B5, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLIsIndexElement = {0x3050F206, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLIsIndexElement2 = {0x3050F82F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLLabelElement = {0x3050F32A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLLabelElement2 = {0x3050F832, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLLegendElement = {0x3050F3EA, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLLegendElement2 = {0x3050F834, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLLIElement = {0x3050F1E0, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLLinkElement = {0x3050F205, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLLinkElement2 = {0x3050F4E5, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLLinkElement3 = {0x3050F81E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLListElement = {0x3050F20E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLListElement2 = {0x3050F822, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHtmlLoadOptions = {0xA71A0808, 0x0F88, 0x11D1, [0xBA, 0x19, 0x00, 0xC0, 0x4F, 0xD9, 0x12, 0xD0]}; + const IID IID_IHTMLLocation = {0x163BB1E0, 0x6E00, 0x11CF, [0x83, 0x7A, 0x48, 0xDC, 0x04, 0xC1, 0x00, 0x00]}; + const IID IID_IHTMLMapElement = {0x3050F266, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLMarqueeElement = {0x3050F2B5, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLMetaElement = {0x3050F203, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLMetaElement2 = {0x3050F81F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLMimeTypesCollection = {0x3050F3FC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLModelessInit = {0x3050F5E4, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLNamespace = {0x3050F6BB, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLNamespaceCollection = {0x3050F6B8, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLNextIdElement = {0x3050F207, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLNoShowElement = {0x3050F38A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLObjectElement = {0x3050F24F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLObjectElement2 = {0x3050F4CD, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLObjectElement3 = {0x3050F827, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLOListElement = {0x3050F1DE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLOMWindowServices = {0x3050F5FC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLOpsProfile = {0x3050F401, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLOptionButtonElement = {0x3050F2BC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLOptionElement = {0x3050F211, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLOptionElement2 = {0x3050F697, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLOptionElement3 = {0x3050F820, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLOptionElementFactory = {0x3050F38C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLOptionsHolder = {0x3050F378, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLPainter = {0x3050F6A6, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLPainterEventInfo = {0x3050F6DF, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLPainterOverlay = {0x3050F7E3, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLPaintSite = {0x3050F6A7, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLParaElement = {0x3050F1F5, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLParamElement = {0x3050F83D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLPersistData = {0x3050F4C5, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLPersistDataOM = {0x3050F4C0, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLPhraseElement = {0x3050F20A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLPhraseElement2 = {0x3050F824, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLPluginsCollection = {0x3050F3FD, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLPopup = {0x3050F666, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLPrivateWindow = {0x3050F6DC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLPrivateWindow2 = {0x3050F7E5, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLPrivateWindow3 = {0x3050F840, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLRect = {0x3050F4A3, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLRectCollection = {0x3050F4A4, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLRenderStyle = {0x3050F6AE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLRuleStyle = {0x3050F3CF, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLRuleStyle2 = {0x3050F4AC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLRuleStyle3 = {0x3050F657, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLRuleStyle4 = {0x3050F817, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLScreen = {0x3050F35C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLScreen2 = {0x3050F84A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLScriptElement = {0x3050F28B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLScriptElement2 = {0x3050F828, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLSelectElement = {0x3050F244, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLSelectElement2 = {0x3050F5ED, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLSelectElement3 = {0x3050F687, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLSelectElement4 = {0x3050F838, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLSelectionObject = {0x3050F25A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLSelectionObject2 = {0x3050F7EC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLSpanElement = {0x3050F3F3, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLSpanFlow = {0x3050F3E5, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLStyle = {0x3050F25E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLStyle2 = {0x3050F4A2, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLStyle3 = {0x3050F656, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLStyle4 = {0x3050F816, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLStyleElement = {0x3050F375, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLStyleFontFace = {0x3050F3D5, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLStyleSheet = {0x3050F2E3, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLStyleSheet2 = {0x3050F3D1, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLStyleSheetPage = {0x3050F7EE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLStyleSheetPagesCollection = {0x3050F7F0, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLStyleSheetRule = {0x3050F357, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLStyleSheetRulesCollection = {0x3050F2E5, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLStyleSheetsCollection = {0x3050F37E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLSubmitData = {0x3050F645, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTable = {0x3050F21E, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTable2 = {0x3050F4AD, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTable3 = {0x3050F829, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTableCaption = {0x3050F2EB, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTableCell = {0x3050F23D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTableCell2 = {0x3050F82D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTableCol = {0x3050F23A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTableCol2 = {0x3050F82A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTableRow = {0x3050F23C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTableRow2 = {0x3050F4A1, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTableRow3 = {0x3050F82C, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTableRowMetrics = {0x3050F413, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTableSection = {0x3050F23B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTableSection2 = {0x3050F5C7, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTableSection3 = {0x3050F82B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTextAreaElement = {0x3050F2AA, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTextContainer = {0x3050F230, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTextElement = {0x3050F218, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTextRangeMetrics = {0x3050F40B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTextRangeMetrics2 = {0x3050F4A6, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTitleElement = {0x3050F322, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTxtRange = {0x3050F220, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLTxtRangeCollection = {0x3050F7ED, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLUListElement = {0x3050F1DD, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLUniqueName = {0x3050F4D0, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLUnknownElement = {0x3050F209, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLUrnCollection = {0x3050F5E2, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLUserDataOM = {0x3050F48F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLViewFilter = {0x3050F2F1, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLViewFilterSite = {0x3050F2F4, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLWindow2 = {0x332C4427, 0x26CB, 0x11D0, [0xB4, 0x83, 0x00, 0xC0, 0x4F, 0xD9, 0x01, 0x19]}; + const IID IID_IHTMLWindow3 = {0x3050F4AE, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHTMLWindow4 = {0x3050F6CF, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IHttpNegotiate = {0x79EAC9D2, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IHttpNegotiate2 = {0x4F9F9FCB, 0xE0F4, 0x48EB, [0xB7, 0xAB, 0xFA, 0x2E, 0xA9, 0x36, 0x5C, 0xB4]}; + const IID IID_IHttpSecurity = {0x79EAC9D7, 0xBAFA, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IHWEventHandler = {0xC1FB73D0, 0xEC3A, 0x4BA2, [0xB5, 0x12, 0x8C, 0xDB, 0x91, 0x87, 0xB6, 0xD1]}; + const IID IID_IImageDecodeEventSink = {0xBAA342A0, 0x2DED, 0x11D0, [0x86, 0xF4, 0x00, 0xA0, 0xC9, 0x13, 0xF7, 0x50]}; + const IID IID_IImageDecodeFilter = {0xA3CCEDF3, 0x2DE2, 0x11D0, [0x86, 0xF4, 0x00, 0xA0, 0xC9, 0x13, 0xF7, 0x50]}; + const IID IID_IImageList = {0x46EB5926, 0x582E, 0x4017, [0x9F, 0xDF, 0xE8, 0x99, 0x8D, 0xAA, 0x09, 0x50]}; + const IID IID_IIMEServices = {0x3050F6CA, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IImgCtx = {0x3050F3D7, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IIndexDefinition = {0x0C733A68, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IInputObject = {0x68284FAA, 0x6A48, 0x11D0, [0x8C, 0x78, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0xB4]}; + const IID IID_IInputObjectSite = {0xF1DB8392, 0x7331, 0x11D0, [0x8C, 0x99, 0x00, 0xA0, 0xC9, 0x2D, 0xBF, 0xE8]}; + const IID IID_IIntDitherer = {0x06670CA0, 0xECEF, 0x11D0, [0xAA, 0xE7, 0x00, 0xC0, 0x4F, 0xC9, 0xB3, 0x04]}; + const IID IID_IIntelliForms = {0x9B9F68E6, 0x1AAA, 0x11D2, [0xBC, 0xA5, 0x00, 0xC0, 0x4F, 0xD9, 0x29, 0xDB]}; + const IID IID_IInterfaceRelated = {0xD1FB5A79, 0x7706, 0x11D1, [0xAD, 0xBA, 0x00, 0xC0, 0x4F, 0xC2, 0xAD, 0xC0]}; + const IID IID_IInternalMoniker = {0x00000011, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IInternalUnknown = {0x00000021, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IInternet = {0x79EAC9E0, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IInternetBindInfo = {0x79EAC9E1, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IInternetConnectionDevice = {0x04DF6137, 0x5610, 0x11D4, [0x9E, 0xC8, 0x00, 0xB0, 0xD0, 0x22, 0xDD, 0x1F]}; + const IID IID_IInternetConnectionDeviceClient = {0x04DF6139, 0x5610, 0x11D4, [0x9E, 0xC8, 0x00, 0xB0, 0xD0, 0x22, 0xDD, 0x1F]}; + const IID IID_IInternetConnectionDeviceSharedCo = {0x04DF6138, 0x5610, 0x11D4, [0x9E, 0xC8, 0x00, 0xB0, 0xD0, 0x22, 0xDD, 0x1F]}; + const IID IID_IInternetHostSecurityManager = {0x3AF280B6, 0xCB3F, 0x11D0, [0x89, 0x1E, 0x00, 0xC0, 0x4F, 0xB6, 0xBF, 0xC4]}; + const IID IID_IInternetPriority = {0x79EAC9EB, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IInternetProtocol = {0x79EAC9E4, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IInternetProtocolInfo = {0x79EAC9EC, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IInternetProtocolRoot = {0x79EAC9E3, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IInternetProtocolSink = {0x79EAC9E5, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IInternetProtocolSinkStackable = {0x79EAC9F0, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IInternetSecurityManager = {0x79EAC9EE, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IInternetSecurityMgrSite = {0x79EAC9ED, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IInternetSession = {0x79EAC9E7, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IInternetThreadSwitch = {0x79EAC9E8, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IInternetZoneManager = {0x79EAC9EF, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IIpxAdapterInfo = {0x98133270, 0x4B20, 0x11D1, [0xAB, 0x01, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_IItemNameLimits = {0x1DF0D7F1, 0xB267, 0x4D28, [0x8B, 0x10, 0x12, 0xE2, 0x32, 0x02, 0xA5, 0xC4]}; + const IID IID_IJolietDiscMaster = {0xE3BC42CE, 0x4E5C, 0x11D3, [0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E]}; + const IID IID_IKeyFrameControl = {0xC3341386, 0xAF91, 0x4EF9, [0x83, 0xB6, 0xBE, 0x37, 0x62, 0xE4, 0x2E, 0xCB]}; + const IID IID_IKsControl = {0x28F54685, 0x06FD, 0x11D2, [0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96]}; + const IID IID_IKsPropertySet = {0x31EFAC30, 0x515C, 0x11D0, [0xA9, 0xAA, 0x00, 0xAA, 0x00, 0x61, 0xBE, 0x93]}; + const IID IID_ILayoutRect = {0x3050F665, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ILayoutStorage = {0x0E6D4D90, 0x6738, 0x11CF, [0x96, 0x08, 0x00, 0xAA, 0x00, 0x68, 0x0D, 0xB4]}; + const IID IID_ILineInfo = {0x3050F7E2, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ILocalMachine = {0x60664CAF, 0xAF0D, 0x1005, [0xA3, 0x00, 0x5C, 0x7D, 0x25, 0xFF, 0x22, 0xA0]}; + const IID IID_ILockBytes = {0x0000000A, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ILogger = {0xD9598418, 0x304E, 0x4F94, [0xB6, 0xA1, 0xE6, 0x42, 0xFE, 0x95, 0xED, 0x57]}; + const IID IID_ILogManager = {0x4759DC11, 0x8DA0, 0x4261, [0xBB, 0xFB, 0xEC, 0x32, 0x19, 0x11, 0xD1, 0xC9]}; + const IID IID_ILogonEnumUsers = {0x60664CAF, 0xAF0D, 0x1004, [0xA3, 0x00, 0x5C, 0x7D, 0x25, 0xFF, 0x22, 0xA0]}; + const IID IID_ILogonStatusHost = {0x60664CAF, 0xAF0D, 0x1007, [0xA3, 0x00, 0x5C, 0x7D, 0x25, 0xFF, 0x22, 0xA0]}; + const IID IID_ILogonUser = {0x60664CAF, 0xAF0D, 0x1003, [0xA3, 0x00, 0x5C, 0x7D, 0x25, 0xFF, 0x22, 0xA0]}; + const IID IID_IMachineDebugManager = {0x51973C2C, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IMachineDebugManagerCookie = {0x51973C2D, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IMachineDebugManagerEvents = {0x51973C2E, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IMailAutoDiscovery = {0x80402DEE, 0xB114, 0x4D32, [0xB4, 0x4E, 0x82, 0xFD, 0x82, 0x34, 0xC9, 0x2A]}; + const IID IID_IMailProtocolADEntry = {0x40EF8C68, 0xD554, 0x47ED, [0xAA, 0x37, 0xE5, 0xFB, 0x6B, 0xC9, 0x10, 0x75]}; + const IID IID_IMalloc = {0x00000002, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IMallocSpy = {0x0000001D, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IMapMIMEToCLSID = {0xD9E89500, 0x30FA, 0x11D0, [0xB7, 0x24, 0x00, 0xAA, 0x00, 0x6C, 0x1A, 0x01]}; + const IID IID_IMarkupContainer = {0x3050F5F9, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IMarkupContainer2 = {0x3050F648, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IMarkupPointer = {0x3050F49F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IMarkupPointer2 = {0x3050F675, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IMarkupServices = {0x3050F4A0, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IMarkupServices2 = {0x3050F682, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IMarkupTextFrags = {0x3050F5FA, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IMarshal = {0x00000003, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IMarshal2 = {0x000001CF, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IMcastAddressAllocation = {0xDF0DAEF1, 0xA289, 0x11D1, [0x86, 0x97, 0x00, 0x60, 0x08, 0xB0, 0xE5, 0xD2]}; + const IID IID_IMcastLeaseInfo = {0xDF0DAEFD, 0xA289, 0x11D1, [0x86, 0x97, 0x00, 0x60, 0x08, 0xB0, 0xE5, 0xD2]}; + const IID IID_IMcastScope = {0xDF0DAEF4, 0xA289, 0x11D1, [0x86, 0x97, 0x00, 0x60, 0x08, 0xB0, 0xE5, 0xD2]}; + const IID IID_IMDDataset = {0xA07CCCD1, 0x8148, 0x11D0, [0x87, 0xBB, 0x00, 0xC0, 0x4F, 0xC3, 0x39, 0x42]}; + const IID IID_IMDFind = {0xA07CCCD2, 0x8148, 0x11D0, [0x87, 0xBB, 0x00, 0xC0, 0x4F, 0xC3, 0x39, 0x42]}; + const IID IID_IMDRangeRowset = {0x0C733AA0, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IMessageFilter = {0x00000016, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IMigrationWizardAuto = {0xCE20DAB9, 0xB353, 0x469B, [0x8B, 0x4D, 0x6D, 0xBB, 0x3A, 0x7B, 0xA0, 0x16]}; + const IID IID_IMimeInfo = {0xF77459A0, 0xBF9A, 0x11CF, [0xBA, 0x4E, 0x00, 0xC0, 0x4F, 0xD7, 0x08, 0x16]}; + const IID IID_IMLangCodePages = {0x359F3443, 0xBD4A, 0x11D0, [0xB1, 0x88, 0x00, 0xAA, 0x00, 0x38, 0xC9, 0x69]}; + const IID IID_IMLangConvertCharset = {0xD66D6F98, 0xCDAA, 0x11D0, [0xB8, 0x22, 0x00, 0xC0, 0x4F, 0xC9, 0xB3, 0x1F]}; + const IID IID_IMLangFontLink = {0x359F3441, 0xBD4A, 0x11D0, [0xB1, 0x88, 0x00, 0xAA, 0x00, 0x38, 0xC9, 0x69]}; + const IID IID_IMLangFontLink2 = {0xDCCFC162, 0x2B38, 0x11D2, [0xB7, 0xEC, 0x00, 0xC0, 0x4F, 0x8F, 0x5D, 0x9A]}; + const IID IID_IMLangLineBreakConsole = {0xF5BE2EE1, 0xBFD7, 0x11D0, [0xB1, 0x88, 0x00, 0xAA, 0x00, 0x38, 0xC9, 0x69]}; + const IID IID_IMLangString = {0xC04D65CE, 0xB70D, 0x11D0, [0xB1, 0x88, 0x00, 0xAA, 0x00, 0x38, 0xC9, 0x69]}; + const IID IID_IMLangStringAStr = {0xC04D65D2, 0xB70D, 0x11D0, [0xB1, 0x88, 0x00, 0xAA, 0x00, 0x38, 0xC9, 0x69]}; + const IID IID_IMLangStringBufA = {0xD24ACD23, 0xBA72, 0x11D0, [0xB1, 0x88, 0x00, 0xAA, 0x00, 0x38, 0xC9, 0x69]}; + const IID IID_IMLangStringBufW = {0xD24ACD21, 0xBA72, 0x11D0, [0xB1, 0x88, 0x00, 0xAA, 0x00, 0x38, 0xC9, 0x69]}; + const IID IID_IMLangStringWStr = {0xC04D65D0, 0xB70D, 0x11D0, [0xB1, 0x88, 0x00, 0xAA, 0x00, 0x38, 0xC9, 0x69]}; + const IID IID_IMofCompiler = {0x6DAF974E, 0x2E37, 0x11D2, [0xAE, 0xC9, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20]}; + const IID IID_IMoniker = {0x0000000F, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IMonikerProp = {0xA5CA5F7F, 0x1847, 0x4D87, [0x9C, 0x5B, 0x91, 0x85, 0x09, 0xF7, 0x51, 0x1D]}; + const IID IID_IMountedVolume = {0x12518492, 0x00B2, 0x11D2, [0x9F, 0xA5, 0x9E, 0x34, 0x20, 0x52, 0x41, 0x53]}; + const IID IID_IMulticastControl = {0x410FA507, 0x4DC6, 0x415A, [0x90, 0x14, 0x63, 0x38, 0x75, 0xD5, 0x40, 0x6E]}; + const IID IID_IMultiLanguage = {0x275C23E1, 0x3747, 0x11D0, [0x9F, 0xEA, 0x00, 0xAA, 0x00, 0x3F, 0x86, 0x46]}; + const IID IID_IMultiLanguage2 = {0xDCCFC164, 0x2B38, 0x11D2, [0xB7, 0xEC, 0x00, 0xC0, 0x4F, 0x8F, 0x5D, 0x9A]}; + const IID IID_IMultiLanguage3 = {0x4E5868AB, 0xB157, 0x4623, [0x9A, 0xCC, 0x6A, 0x1D, 0x9C, 0xAE, 0xBE, 0x04]}; + const IID IID_IMultiplePropertyAccess = {0xEC81FEDE, 0xD432, 0x11CE, [0x92, 0x44, 0x00, 0x20, 0xAF, 0x6E, 0x72, 0xDB]}; + const IID IID_IMultipleResults = {0x0C733A90, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IMultiQI = {0x00000020, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_INamedPropertyBag = {0xFB700430, 0x952C, 0x11D1, [0x94, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]}; + const IID IID_INATEventManager = {0x624BD588, 0x9060, 0x4109, [0xB0, 0xB0, 0x1A, 0xDB, 0xBC, 0xAC, 0x32, 0xDF]}; + const IID IID_INATExternalIPAddressCallback = {0x9C416740, 0xA34E, 0x446F, [0xBA, 0x06, 0xAB, 0xD0, 0x4C, 0x31, 0x49, 0xAE]}; + const IID IID_INATNumberOfEntriesCallback = {0xC83A0A74, 0x91EE, 0x41B6, [0xB6, 0x7A, 0x67, 0xE0, 0xF0, 0x0B, 0xBD, 0x78]}; + const IID IID_INetCfg = {0xC0E8AE93, 0x306E, 0x11D1, [0xAA, 0xCF, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetCfgBindingInterface = {0xC0E8AE94, 0x306E, 0x11D1, [0xAA, 0xCF, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetCfgBindingPath = {0xC0E8AE96, 0x306E, 0x11D1, [0xAA, 0xCF, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetCfgClass = {0xC0E8AE97, 0x306E, 0x11D1, [0xAA, 0xCF, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetCfgClassSetup = {0xC0E8AE9D, 0x306E, 0x11D1, [0xAA, 0xCF, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetCfgComponent = {0xC0E8AE99, 0x306E, 0x11D1, [0xAA, 0xCF, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetCfgComponentBindings = {0xC0E8AE9E, 0x306E, 0x11D1, [0xAA, 0xCF, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetCfgComponentControl = {0x932238DF, 0xBEA1, 0x11D0, [0x92, 0x98, 0x00, 0xC0, 0x4F, 0xC9, 0x9D, 0xCF]}; + const IID IID_INetCfgComponentNotifyBinding = {0x932238E1, 0xBEA1, 0x11D0, [0x92, 0x98, 0x00, 0xC0, 0x4F, 0xC9, 0x9D, 0xCF]}; + const IID IID_INetCfgComponentNotifyGlobal = {0x932238E2, 0xBEA1, 0x11D0, [0x92, 0x98, 0x00, 0xC0, 0x4F, 0xC9, 0x9D, 0xCF]}; + const IID IID_INetCfgComponentPrivate = {0x98133273, 0x4B20, 0x11D1, [0xAB, 0x01, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetCfgComponentPropertyUi = {0x932238E0, 0xBEA1, 0x11D0, [0x92, 0x98, 0x00, 0xC0, 0x4F, 0xC9, 0x9D, 0xCF]}; + const IID IID_INetCfgComponentSetup = {0x932238E3, 0xBEA1, 0x11D0, [0x92, 0x98, 0x00, 0xC0, 0x4F, 0xC9, 0x9D, 0xCF]}; + const IID IID_INetCfgComponentSysPrep = {0xC0E8AE9A, 0x306E, 0x11D1, [0xAA, 0xCF, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetCfgComponentUpperEdge = {0x932238E4, 0xBEA1, 0x11D0, [0x92, 0x98, 0x00, 0xC0, 0x4F, 0xC9, 0x9D, 0xCF]}; + const IID IID_INetCfgInternalSetup = {0x98133276, 0x4B20, 0x11D1, [0xAB, 0x01, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetCfgLock = {0xC0E8AE9F, 0x306E, 0x11D1, [0xAA, 0xCF, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetCfgPnpReconfigCallback = {0x8D84BD35, 0xE227, 0x11D2, [0xB7, 0x00, 0x00, 0xA0, 0xC9, 0x8A, 0x6A, 0x85]}; + const IID IID_INetCfgSpecialCase = {0xC0E8AE95, 0x306E, 0x11D1, [0xAA, 0xCF, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetCfgSysPrep = {0xC0E8AE98, 0x306E, 0x11D1, [0xAA, 0xCF, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnection = {0xC08956A1, 0x1CD3, 0x11D1, [0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnection2 = {0xFAEDCF6A, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionBrandingInfo = {0xFAEDCF5B, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionCMUtil = {0xFAEDCF60, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionCommonUi = {0xC08956A5, 0x1CD3, 0x11D1, [0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionConnectUi = {0xC08956A3, 0x1CD3, 0x11D1, [0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionHNetUtil = {0xFAEDCF64, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionManager = {0xC08956A2, 0x1CD3, 0x11D1, [0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionManager2 = {0xFAEDCF69, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionManagerDebug = {0xFAEDCF5D, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionManagerEvents = {0xC08956BA, 0x1CD3, 0x11D1, [0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionNotifySink = {0xFAEDCF5C, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionPropertyUi = {0xC08956A4, 0x1CD3, 0x11D1, [0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionPropertyUi2 = {0xC08956B9, 0x1CD3, 0x11D1, [0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionProps = {0xF4277C95, 0xCE5B, 0x463D, [0x81, 0x67, 0x56, 0x62, 0xD9, 0xBC, 0xAA, 0x72]}; + const IID IID_INetConnectionRefresh = {0xFAEDCF5F, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionSysTray = {0xFAEDCF65, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionUiLock = {0xFAEDCF50, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionUiUtilities = {0xFAEDCF5E, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionWizardUi = {0xFAEDCF51, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetConnectionWizardUiContext = {0xFAEDCF52, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetCrawler = {0x49C929EE, 0xA1B7, 0x4C58, [0xB5, 0x39, 0xE6, 0x3B, 0xE3, 0x92, 0xB6, 0xF3]}; + const IID IID_INetDefaultConnection = {0xFAEDCF66, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetInboundConnection = {0xFAEDCF53, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetInstallQueue = {0x98133274, 0x4B20, 0x11D1, [0xAB, 0x01, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetLanConnection = {0xFAEDCF54, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetLanConnectionUiInfo = {0xC08956A6, 0x1CD3, 0x11D1, [0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetLanConnectionWizardUi = {0xFAEDCF56, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetMachinePolicies = {0xFAEDCF68, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetRasConnection = {0xFAEDCF57, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetRasConnectionIpUiInfo = {0xFAEDCF58, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetSharedAccessConnection = {0xFAEDCF55, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetSharingConfiguration = {0xC08956B6, 0x1CD3, 0x11D1, [0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetSharingEveryConnectionCollect = {0x33C4643C, 0x7811, 0x46FA, [0xA8, 0x9A, 0x76, 0x85, 0x97, 0xBD, 0x72, 0x23]}; + const IID IID_INetSharingManager = {0xC08956B7, 0x1CD3, 0x11D1, [0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetSharingPortMapping = {0xC08956B1, 0x1CD3, 0x11D1, [0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_INetSharingPortMappingCollection = {0x02E4A2DE, 0xDA20, 0x4E34, [0x89, 0xC8, 0xAC, 0x22, 0x27, 0x5A, 0x01, 0x0B]}; + const IID IID_INetSharingPortMappingProps = {0x24B7E9B5, 0xE38F, 0x4685, [0x85, 0x1B, 0x00, 0x89, 0x2C, 0xF5, 0xF9, 0x40]}; + const IID IID_INetSharingPrivateConnectionColle = {0x38AE69E0, 0x4409, 0x402A, [0xA2, 0xCB, 0xE9, 0x65, 0xC7, 0x27, 0xF8, 0x40]}; + const IID IID_INetSharingPublicConnectionCollec = {0x7D7A6355, 0xF372, 0x4971, [0xA1, 0x49, 0xBF, 0xC9, 0x27, 0xBE, 0x76, 0x2A]}; + const IID IID_INewShortcutHookA = {0x000214E1, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_INewShortcutHookW = {0x000214F7, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_INewWDEvents = {0x0751C551, 0x7568, 0x41C9, [0x8E, 0x5B, 0xE2, 0x2E, 0x38, 0x91, 0x92, 0x36]}; + const IID IID_INotification = {0xC733E4A3, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID IID_INotificationHelper = {0xC733E4AB, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID IID_INotificationManager = {0x95531501, 0x8782, 0x4845, [0x90, 0x1D, 0x31, 0x2F, 0x36, 0xBA, 0x6C, 0x6E]}; + const IID IID_INotificationMgr = {0xC733E4A4, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID IID_INotificationPing = {0xC733E4AC, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID IID_INotificationProcessMgr0 = {0xC733E4AE, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID IID_INotificationReport = {0xC733E4A7, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID IID_INotificationRunning = {0xC733E4AD, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID IID_INotificationSink = {0xC733E4A5, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID IID_INotifyDBEvents = {0xDB526CC0, 0xD188, 0x11CD, [0xAD, 0x48, 0x00, 0xAA, 0x00, 0x3C, 0x9C, 0xB6]}; + const IID IID_INotifyReplica = {0x99180163, 0xDA16, 0x101A, [0x93, 0x5C, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_INotifyUI = {0xE5E8D401, 0x1A37, 0x4FBF, [0x88, 0x0C, 0x82, 0x6C, 0xC8, 0x95, 0x16, 0xFD]}; + const IID IID_IObjectAccessControl = {0x0C733AA3, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IObjectIdentity = {0xCA04B7E6, 0x0D21, 0x11D1, [0x8C, 0xC5, 0x00, 0xC0, 0x4F, 0xC2, 0xB0, 0x85]}; + const IID IID_IObjectManager = {0xD51351DF, 0x6394, 0x4236, [0x97, 0x83, 0x65, 0xED, 0x05, 0x63, 0x10, 0x68]}; + const IID IID_IObjectSafety = {0xCB5BDC81, 0x93C1, 0x11CF, [0x8F, 0x20, 0x00, 0x80, 0x5F, 0x2C, 0xD0, 0x64]}; + const IID IID_IObjectWithSite = {0xFC4801A3, 0x2BA9, 0x11CF, [0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52]}; + const IID IID_IObjMgr = {0x00BB2761, 0x6A77, 0x11D0, [0xA5, 0x35, 0x00, 0xC0, 0x4F, 0xD7, 0xD0, 0x62]}; + const IID IID_IOInet = {0x79EAC9E0, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IOInetBindClient = {0x79EAC9E2, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IOInetBindInfo = {0x79EAC9E1, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IOInetCache = {0x79EAC9EA, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IOInetPriority = {0x79EAC9EB, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IOInetProtocol = {0x79EAC9E4, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IOInetProtocolInfo = {0x79EAC9EC, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IOInetProtocolRoot = {0x79EAC9E3, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IOInetProtocolSink = {0x79EAC9E5, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IOInetSession = {0x79EAC967, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IOInetThreadSwitch = {0x79EAC968, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IOldSyncMgrRegister = {0x894D8C55, 0xBDDF, 0x11D1, [0xB8, 0x5D, 0x00, 0xC0, 0x4F, 0xB9, 0x39, 0x81]}; + const IID IID_IOldSyncMgrSynchronize = {0x6295DF28, 0x35EE, 0x11D1, [0x87, 0x07, 0x00, 0xC0, 0x4F, 0xD9, 0x33, 0x27]}; + const IID IID_IOldSyncMgrSynchronizeCallback = {0x6295DF29, 0x35EE, 0x11D1, [0x87, 0x07, 0x00, 0xC0, 0x4F, 0xD9, 0x33, 0x27]}; + const IID IID_IOleAdviseHolder = {0x00000111, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOleCache = {0x0000011E, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOleCache2 = {0x00000128, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOleCacheControl = {0x00000129, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOleClientSite = {0x00000118, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOleCommandTarget = {0xB722BCCB, 0x4E68, 0x101B, [0xA2, 0xBC, 0x00, 0xAA, 0x00, 0x40, 0x47, 0x70]}; + const IID IID_IOleContainer = {0x0000011B, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOleControl = {0xB196B288, 0xBAB4, 0x101A, [0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07]}; + const IID IID_IOleControlSite = {0xB196B289, 0xBAB4, 0x101A, [0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07]}; + const IID IID_IOleDocument = {0xB722BCC5, 0x4E68, 0x101B, [0xA2, 0xBC, 0x00, 0xAA, 0x00, 0x40, 0x47, 0x70]}; + const IID IID_IOleDocumentSite = {0xB722BCC7, 0x4E68, 0x101B, [0xA2, 0xBC, 0x00, 0xAA, 0x00, 0x40, 0x47, 0x70]}; + const IID IID_IOleDocumentView = {0xB722BCC6, 0x4E68, 0x101B, [0xA2, 0xBC, 0x00, 0xAA, 0x00, 0x40, 0x47, 0x70]}; + const IID IID_IOleInPlaceActiveObject = {0x00000117, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOleInPlaceFrame = {0x00000116, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOleInPlaceObject = {0x00000113, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOleInPlaceObjectWindowless = {0x1C2056CC, 0x5EF4, 0x101B, [0x8B, 0xC8, 0x00, 0xAA, 0x00, 0x3E, 0x3B, 0x29]}; + const IID IID_IOleInPlaceSite = {0x00000119, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOleInPlaceSiteEx = {0x9C2CAD80, 0x3424, 0x11CF, [0xB6, 0x70, 0x00, 0xAA, 0x00, 0x4C, 0xD6, 0xD8]}; + const IID IID_IOleInPlaceSiteWindowless = {0x922EADA0, 0x3424, 0x11CF, [0xB6, 0x70, 0x00, 0xAA, 0x00, 0x4C, 0xD6, 0xD8]}; + const IID IID_IOleInPlaceUIWindow = {0x00000115, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOleItemContainer = {0x0000011C, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOleLink = {0x0000011D, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOleManager = {0x0000011F, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOleObject = {0x00000112, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOleParentUndoUnit = {0xA1FAF330, 0xEF97, 0x11CE, [0x9B, 0xC9, 0x00, 0xAA, 0x00, 0x60, 0x8E, 0x01]}; + const IID IID_IOlePresObj = {0x00000120, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOleUndoManager = {0xD001F200, 0xEF97, 0x11CE, [0x9B, 0xC9, 0x00, 0xAA, 0x00, 0x60, 0x8E, 0x01]}; + const IID IID_IOleUndoUnit = {0x894AD3B0, 0xEF97, 0x11CE, [0x9B, 0xC9, 0x00, 0xAA, 0x00, 0x60, 0x8E, 0x01]}; + const IID IID_IOleWindow = {0x00000114, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOmHistory = {0xFECEAAA2, 0x8405, 0x11CF, [0x8B, 0xA1, 0x00, 0xAA, 0x00, 0x47, 0x6D, 0xA6]}; + const IID IID_IOmNavigator = {0xFECEAAA5, 0x8405, 0x11CF, [0x8B, 0xA1, 0x00, 0xAA, 0x00, 0x47, 0x6D, 0xA6]}; + const IID IID_IOpaqueDataInfo = {0x000001A9, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IOpenRowset = {0x0C733A69, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IOplockStorage = {0x8D19C834, 0x8879, 0x11D1, [0x83, 0xE9, 0x00, 0xC0, 0x4F, 0xC2, 0xC6, 0xD4]}; + const IID IID_IOpsProfileSimple = {0x7DD1362C, 0x28B6, 0x11D2, [0xBC, 0xA7, 0x00, 0xC0, 0x4F, 0xD9, 0x29, 0xDB]}; + const IID IID_IOptionArray = {0x22B6D492, 0x0F88, 0x11D1, [0xBA, 0x19, 0x00, 0xC0, 0x4F, 0xD9, 0x12, 0xD0]}; + const IID IID_IOverlappedCompletion = {0x521A28F0, 0xE40B, 0x11CE, [0xB2, 0xC9, 0x00, 0xAA, 0x00, 0x68, 0x09, 0x37]}; + const IID IID_IOverlappedStream = {0x49384070, 0xE40A, 0x11CE, [0xB2, 0xC9, 0x00, 0xAA, 0x00, 0x68, 0x09, 0x37]}; + const IID IID_IParentRowset = {0x0C733AAA, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IParseDisplayName = {0x0000011A, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IParser = {0x186442B0, 0x472E, 0x11D1, [0x89, 0x52, 0x00, 0xC0, 0x4F, 0xD6, 0x11, 0xD7]}; + const IID IID_IParserSession = {0x186442B1, 0x472E, 0x11D1, [0x89, 0x52, 0x00, 0xC0, 0x4F, 0xD6, 0x11, 0xD7]}; + const IID IID_IParserTreeProperties = {0x186442B2, 0x472E, 0x11D1, [0x89, 0x52, 0x00, 0xC0, 0x4F, 0xD6, 0x11, 0xD7]}; + const IID IID_IParserVerify = {0x186442B3, 0x472E, 0x11D1, [0x89, 0x52, 0x00, 0xC0, 0x4F, 0xD6, 0x11, 0xD7]}; + const IID IID_IPassportClientServices = {0xB30F7305, 0x5967, 0x45D1, [0xB7, 0xBC, 0xD6, 0xEB, 0x71, 0x63, 0xD7, 0x70]}; + const IID IID_IPeerFactory = {0x6663F9D3, 0xB482, 0x11D1, [0x89, 0xC6, 0x00, 0xC0, 0x4F, 0xB6, 0xBF, 0xC4]}; + const IID IID_IPendingProxyConnection = {0xB68E5043, 0x3E3D, 0x4CC2, [0xB9, 0xC1, 0x5F, 0x8F, 0x88, 0xFE, 0xE8, 0x1C]}; + const IID IID_IPerPropertyBrowsing = {0x376BD3AA, 0x3845, 0x101B, [0x84, 0xED, 0x08, 0x00, 0x2B, 0x2E, 0xC7, 0x13]}; + const IID IID_IPerPropertyBrowsing2 = {0x51973C54, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IPersist = {0x0000010C, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IPersistentDataChannel = {0xA180E934, 0xD92A, 0x415D, [0x91, 0x44, 0x75, 0x9F, 0x80, 0x54, 0xE8, 0xF6]}; + const IID IID_IPersistFile = {0x0000010B, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IPersistFolder = {0x000214EA, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IPersistFolder2 = {0x1AC3D9F0, 0x175C, 0x11D1, [0x95, 0xBE, 0x00, 0x60, 0x97, 0x97, 0xEA, 0x4F]}; + const IID IID_IPersistFolder3 = {0xCEF04FDF, 0xFE72, 0x11D2, [0x87, 0xA5, 0x00, 0xC0, 0x4F, 0x68, 0x37, 0xCF]}; + const IID IID_IPersistHistory = {0x91A565C1, 0xE38F, 0x11D0, [0x94, 0xBF, 0x00, 0xA0, 0xC9, 0x05, 0x5C, 0xBF]}; + const IID IID_IPersistIDList = {0x1079ACFC, 0x29BD, 0x11D3, [0x8E, 0x0D, 0x00, 0xC0, 0x4F, 0x68, 0x37, 0xD5]}; + const IID IID_IPersistMemory = {0xBD1AE5E0, 0xA6AE, 0x11CE, [0xBD, 0x37, 0x50, 0x42, 0x00, 0xC1, 0x00, 0x00]}; + const IID IID_IPersistMoniker = {0x79EAC9C9, 0xBAF9, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IPersistNetConnection = {0xFAEDCF59, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_IPersistPropertyBag = {0x37D84F60, 0x42CB, 0x11CE, [0x81, 0x35, 0x00, 0xAA, 0x00, 0x4B, 0xB8, 0x51]}; + const IID IID_IPersistPropertyBag2 = {0x22F55881, 0x280B, 0x11D0, [0xA8, 0xA9, 0x00, 0xA0, 0xC9, 0x0C, 0x20, 0x04]}; + const IID IID_IPersistQuery = {0x1A3114B8, 0xA62E, 0x11D0, [0xA6, 0xC5, 0x00, 0xA0, 0xC9, 0x06, 0xAF, 0x45]}; + const IID IID_IPersistStorage = {0x0000010A, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IPersistStream = {0x00000109, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IPersistStreamInit = {0x7FD52380, 0x4E07, 0x101B, [0xAE, 0x2D, 0x08, 0x00, 0x2B, 0x2E, 0xC7, 0x13]}; + const IID IID_IPhraseSink = {0xCC906FF0, 0xC058, 0x101A, [0xB5, 0x54, 0x08, 0x00, 0x2B, 0x33, 0xB0, 0xE6]}; + const IID IID_IPicture = {0x7BF80980, 0xBF32, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID IID_IPictureDisp = {0x7BF80981, 0xBF32, 0x101A, [0x8B, 0xBB, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID IID_IPipeByte = {0xDB2F3ACA, 0x2F86, 0x11D1, [0x8E, 0x04, 0x00, 0xC0, 0x4F, 0xB9, 0x98, 0x9A]}; + const IID IID_IPipeDouble = {0xDB2F3ACE, 0x2F86, 0x11D1, [0x8E, 0x04, 0x00, 0xC0, 0x4F, 0xB9, 0x98, 0x9A]}; + const IID IID_IPipeLong = {0xDB2F3ACC, 0x2F86, 0x11D1, [0x8E, 0x04, 0x00, 0xC0, 0x4F, 0xB9, 0x98, 0x9A]}; + const IID IID_IPointerInactive = {0x55980BA0, 0x35AA, 0x11CF, [0xB6, 0x71, 0x00, 0xAA, 0x00, 0x4C, 0xD6, 0xD8]}; + const IID IID_IPrimaryControlChannel = {0x1A2E8B62, 0x9012, 0x4BE6, [0x84, 0xAE, 0x32, 0xBD, 0x66, 0xBA, 0x65, 0x7A]}; + const IID IID_IPrint = {0xB722BCC9, 0x4E68, 0x101B, [0xA2, 0xBC, 0x00, 0xAA, 0x00, 0x40, 0x47, 0x70]}; + const IID IID_IPrintDialogCallback = {0x5852A2C3, 0x6530, 0x11D1, [0xB6, 0xA3, 0x00, 0x00, 0xF8, 0x75, 0x7B, 0xF9]}; + const IID IID_IPrintDialogServices = {0x509AAEDA, 0x5639, 0x11D1, [0xB6, 0xA1, 0x00, 0x00, 0xF8, 0x75, 0x7B, 0xF9]}; + const IID IID_IPrivacyServices = {0x3050F84B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IPrivateDispatch = {0x86AB4BBE, 0x65F6, 0x11D1, [0x8C, 0x13, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID IID_IPrivateUnknown = {0x89126BAB, 0x6EAD, 0x11D1, [0x8C, 0x18, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03]}; + const IID IID_IPrivSyncMgrSynchronizeInvoke = {0x6295DF2E, 0x35EE, 0x11D1, [0x87, 0x07, 0x00, 0xC0, 0x4F, 0xD9, 0x33, 0x27]}; + const IID IID_IProcessDebugManager = {0x51973C2F, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IProcessDebugManager32 = {0x51973C2F, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IProcessDebugManager64 = {0x56B9FC1C, 0x63A9, 0x4CC1, [0xAC, 0x21, 0x08, 0x7D, 0x69, 0xA1, 0x7F, 0xAB]}; + const IID IID_IProcessInitControl = {0x72380D55, 0x8D2B, 0x43A3, [0x85, 0x13, 0x2B, 0x6E, 0xF3, 0x14, 0x34, 0xE9]}; + const IID IID_IProfferService = {0xCB728B20, 0xF786, 0x11CE, [0x92, 0xAD, 0x00, 0xAA, 0x00, 0xA7, 0x4C, 0xD0]}; + const IID IID_IProgressDialog = {0xEBBC7C04, 0x315E, 0x11D2, [0xB6, 0x2F, 0x00, 0x60, 0x97, 0xDF, 0x5B, 0xD4]}; + const IID IID_IProgressNotify = {0xA9D758A0, 0x4617, 0x11CF, [0x95, 0xFC, 0x00, 0xAA, 0x00, 0x68, 0x0D, 0xB4]}; + const IID IID_IProgSink = {0x3050F371, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IPropertyBag = {0x55272A00, 0x42CB, 0x11CE, [0x81, 0x35, 0x00, 0xAA, 0x00, 0x4B, 0xB8, 0x51]}; + const IID IID_IPropertyBag2 = {0x22F55882, 0x280B, 0x11D0, [0xA8, 0xA9, 0x00, 0xA0, 0xC9, 0x0C, 0x20, 0x04]}; + const IID IID_IPropertyBagEx = {0x20011801, 0x5DE6, 0x11D1, [0x8E, 0x38, 0x00, 0xC0, 0x4F, 0xB9, 0x38, 0x6D]}; + const IID IID_IPropertyFrame = {0xB196B28A, 0xBAB4, 0x101A, [0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07]}; + const IID IID_IPropertyMap = {0xC733E4A2, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID IID_IPropertyMapper = {0xB324B226, 0x41A0, 0x11D0, [0x8C, 0x91, 0x00, 0x20, 0xAF, 0x1D, 0x74, 0x0E]}; + const IID IID_IPropertyNotifySink = {0x9BFBBC02, 0xEFF1, 0x101A, [0x84, 0xED, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07]}; + const IID IID_IPropertyPage = {0xB196B28D, 0xBAB4, 0x101A, [0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07]}; + const IID IID_IPropertyPage2 = {0x01E44665, 0x24AC, 0x101B, [0x84, 0xED, 0x08, 0x00, 0x2B, 0x2E, 0xC7, 0x13]}; + const IID IID_IPropertyPageSite = {0xB196B28C, 0xBAB4, 0x101A, [0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07]}; + const IID IID_IPropertySetContainer = {0xB4FFAE60, 0xA7CA, 0x11CD, [0xB5, 0x8B, 0x00, 0x00, 0x6B, 0x82, 0x91, 0x56]}; + const IID IID_IPropertySetStorage = {0x0000013A, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IPropertyStorage = {0x00000138, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IPropertyUI = {0x757A7D9F, 0x919A, 0x4118, [0x99, 0xD7, 0xDB, 0xB2, 0x08, 0xC8, 0xCC, 0x66]}; + const IID IID_IPropSheetPage = {0x000214F6, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IProvideClassInfo = {0xB196B283, 0xBAB4, 0x101A, [0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07]}; + const IID IID_IProvideClassInfo2 = {0xA6BC3AC0, 0xDBAA, 0x11CE, [0x9D, 0xE3, 0x00, 0xAA, 0x00, 0x4B, 0xB8, 0x51]}; + const IID IID_IProvideExpressionContexts = {0x51973C41, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IProvideMoniker = {0x0C733A4D, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IProvideMultipleClassInfo = {0xA7ABA9C1, 0x8983, 0x11CF, [0x8F, 0x20, 0x00, 0x80, 0x5F, 0x2C, 0xD0, 0x64]}; + const IID IID_IProxy = {0x00000027, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IProxyManager = {0x00000008, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IPSFactory = {0x00000009, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IPSFactoryBuffer = {0xD5F569D0, 0x593B, 0x101A, [0xB5, 0x69, 0x08, 0x00, 0x2B, 0x2D, 0xBF, 0x7A]}; + const IID IID_IPublishedApp = {0x1BC752E0, 0x9046, 0x11D1, [0xB8, 0xB3, 0x00, 0x60, 0x08, 0x05, 0x93, 0x82]}; + const IID IID_IPublishingWizard = {0xAA9198BB, 0xCCEC, 0x472D, [0xBE, 0xED, 0x19, 0xA4, 0xF6, 0x73, 0x3F, 0x7A]}; + const IID IID_IQualityControl = {0x6BC096AB, 0x0CE6, 0x11D1, [0xBA, 0xAE, 0x00, 0xC0, 0x4F, 0xC2, 0xE2, 0x0D]}; + const IID IID_IQuery = {0x0C733A51, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IQueryAssociations = {0xC46CA590, 0x3C3F, 0x11D2, [0xBE, 0xE6, 0x00, 0x00, 0xF8, 0x05, 0xCA, 0x57]}; + const IID IID_IQueryCancelAutoPlay = {0xDDEFE873, 0x6997, 0x4E68, [0xBE, 0x26, 0x39, 0xB6, 0x33, 0xAD, 0xBE, 0x12]}; + const IID IID_IQueryContinue = {0x7307055C, 0xB24A, 0x486B, [0x9F, 0x25, 0x16, 0x3E, 0x59, 0x7A, 0x28, 0xA9]}; + const IID IID_IQueryForm = {0x8CFCEE30, 0x39BD, 0x11D0, [0xB8, 0xD1, 0x00, 0xA0, 0x24, 0xAB, 0x2D, 0xBB]}; + const IID IID_IQueryFrame = {0x7E8C7C20, 0x7C9D, 0x11D0, [0x91, 0x3F, 0x00, 0xAA, 0x00, 0xC1, 0x6E, 0x65]}; + const IID IID_IQueryHandler = {0xA60CC73F, 0xE0FC, 0x11D0, [0x97, 0x50, 0x00, 0xA0, 0xC9, 0x06, 0xAF, 0x45]}; + const IID IID_IQueryInfo = {0x00021500, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IQuickActivate = {0xCF51ED10, 0x62FE, 0x11CF, [0xBF, 0x86, 0x00, 0xA0, 0xC9, 0x03, 0x48, 0x36]}; + const IID IID_IRadioButton = {0x3050F69B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IRatingNotification = {0x639447BD, 0xB2D3, 0x44B9, [0x9F, 0xB0, 0x51, 0x0F, 0x23, 0xCB, 0x45, 0xE4]}; + const IID IID_IReadData = {0x0C733A6A, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IReadEvents = {0xF64AEFDE, 0x3376, 0x11D1, [0xBE, 0x5B, 0x00, 0xC0, 0x4F, 0xC9, 0xE2, 0xBB]}; + const IID IID_IRecalcEngine = {0x3050F496, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IRecalcHost = {0x3050F497, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IRecalcHostDebug = {0x3050F5F7, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IRecalcProperty = {0x3050F5D6, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IReconcilableObject = {0x99180162, 0xDA16, 0x101A, [0x93, 0x5C, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_IReconcileInitiator = {0x99180161, 0xDA16, 0x101A, [0x93, 0x5C, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_IRecordInfo = {0x0000002F, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IRedbookDiscMaster = {0xE3BC42CD, 0x4E5C, 0x11D3, [0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E]}; + const IID IID_IReferenceClock = {0x56A86897, 0x0AD4, 0x11CE, [0xB0, 0x3A, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70]}; + const IID IID_IRegisterProvider = {0x0C733AB9, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRegisterVirusScanEngine = {0x0825E060, 0xB961, 0x11CF, [0xAA, 0xFA, 0x00, 0xAA, 0x00, 0xB6, 0x01, 0x5C]}; + const IID IID_IReleaseMarshalBuffers = {0xEB0CB9E8, 0x7996, 0x11D2, [0x87, 0x2E, 0x00, 0x00, 0xF8, 0x08, 0x08, 0x59]}; + const IID IID_IRemoteCallBack = {0x8947C648, 0x3833, 0x11D1, [0x86, 0x82, 0x00, 0xC0, 0x4F, 0xBF, 0xE1, 0x71]}; + const IID IID_IRemoteComputer = {0x000214FE, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IRemoteDebugApplication = {0x51973C30, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IRemoteDebugApplicationEvents = {0x51973C33, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IRemoteDebugApplicationEx = {0x51973C01, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IRemoteDebugApplicationThread = {0x51973C37, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_IRemoteDebugApplicationThreadEx = {0xB9B32B0C, 0x9147, 0x11D1, [0x94, 0xEA, 0x00, 0xC0, 0x4F, 0xA3, 0x02, 0xA1]}; + const IID IID_IRemoteDelaydC = {0x394540A0, 0x6FCF, 0x11D0, [0xAC, 0xE0, 0x00, 0x00, 0xF8, 0x01, 0x14, 0xD3]}; + const IID IID_IRemoteESP = {0xE99A04AB, 0xAB95, 0x11D0, [0xBE, 0x96, 0x00, 0xA0, 0xC9, 0x49, 0x89, 0xDE]}; + const IID IID_IRemoteFinder = {0x944AD532, 0xB09D, 0x11CE, [0xB5, 0x9C, 0x00, 0xAA, 0x00, 0x6C, 0xB3, 0x7D]}; + const IID IID_IRemoteStats = {0x944AD531, 0xB09D, 0x11CE, [0xB5, 0x9C, 0x00, 0xAA, 0x00, 0x6C, 0xB3, 0x7D]}; + const IID IID_IRequest = {0x6BC096A7, 0x0CE6, 0x11D1, [0xBA, 0xAE, 0x00, 0xC0, 0x4F, 0xC2, 0xE2, 0x0D]}; + const IID IID_IRequestHandler = {0x6BC096AA, 0x0CE6, 0x11D1, [0xBA, 0xAE, 0x00, 0xC0, 0x4F, 0xC2, 0xE2, 0x0D]}; + const IID IID_IRequestSource = {0x6BC096A9, 0x0CE6, 0x11D1, [0xBA, 0xAE, 0x00, 0xC0, 0x4F, 0xC2, 0xE2, 0x0D]}; + const IID IID_IRequestState = {0x6BC096BA, 0x0CE6, 0x11D1, [0xBA, 0xAE, 0x00, 0xC0, 0x4F, 0xC2, 0xE2, 0x0D]}; + const IID IID_IResolveShellLink = {0x5CD52983, 0x9449, 0x11D2, [0x96, 0x3A, 0x00, 0xC0, 0x4F, 0x79, 0xAD, 0xF0]}; + const IID IID_IRichEditOle = {0x00020D00, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IRichEditOleCallback = {0x00020D03, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IRootStorage = {0x00000012, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IROTData = {0xF29F6BC0, 0x5021, 0x11CE, [0xAA, 0x15, 0x00, 0x00, 0x69, 0x01, 0x29, 0x3F]}; + const IID IID_IRow = {0x0C733AB4, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowChange = {0x0C733AB5, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowInfo = {0x0C733AC1, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowPosition = {0x0C733A94, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowPositionChange = {0x0997A571, 0x126E, 0x11D0, [0x9F, 0x8A, 0x00, 0xA0, 0xC9, 0xA0, 0x63, 0x1E]}; + const IID IID_IRowSchemaChange = {0x0C733AAE, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowset = {0x0C733A7C, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetAsynch = {0x0C733A0F, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetBookmark = {0x0C733AC2, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetChange = {0x0C733A05, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetChapterMember = {0x0C733AA8, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetCopyRows = {0x0C733A6B, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetCurrentIndex = {0x0C733ABD, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetExactScroll = {0x0C733A7F, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetFind = {0x0C733A9D, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetIdentity = {0x0C733A09, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetIndex = {0x0C733A82, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetInfo = {0x0C733A55, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetKeys = {0x0C733A12, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetLocate = {0x0C733A7D, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetNewRowAfter = {0x0C733A71, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetNextRowset = {0x0C733A72, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetNotify = {0x0C733A83, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetQueryStatus = {0xA7AC77ED, 0xF8D7, 0x11CE, [0xA7, 0x98, 0x00, 0x20, 0xF8, 0x00, 0x80, 0x24]}; + const IID IID_IRowsetRefresh = {0x0C733AA9, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetResynch = {0x0C733A84, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetScroll = {0x0C733A7E, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetUpdate = {0x0C733A6D, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetView = {0x0C733A99, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetWatchAll = {0x0C733A73, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetWatchNotify = {0x0C733A44, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetWatchRegion = {0x0C733A45, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRowsetWithParameters = {0x0C733A6E, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IRpcChannel = {0x00000004, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IRpcChannelBuffer = {0xD5F56B60, 0x593B, 0x101A, [0xB5, 0x69, 0x08, 0x00, 0x2B, 0x2D, 0xBF, 0x7A]}; + const IID IID_IRpcChannelBuffer2 = {0x594F31D0, 0x7F19, 0x11D0, [0xB1, 0x94, 0x00, 0xA0, 0xC9, 0x0D, 0xC8, 0xBF]}; + const IID IID_IRpcChannelBuffer3 = {0x25B15600, 0x0115, 0x11D0, [0xBF, 0x0D, 0x00, 0xAA, 0x00, 0xB8, 0xDF, 0xD2]}; + const IID IID_IRpcHelper = {0x00000149, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IRpcOptions = {0x00000144, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IRpcProxy = {0x00000007, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IRpcProxyBuffer = {0xD5F56A34, 0x593B, 0x101A, [0xB5, 0x69, 0x08, 0x00, 0x2B, 0x2D, 0xBF, 0x7A]}; + const IID IID_IRpcStub = {0x00000005, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IRpcStubBuffer = {0xD5F56AFC, 0x593B, 0x101A, [0xB5, 0x69, 0x08, 0x00, 0x2B, 0x2D, 0xBF, 0x7A]}; + const IID IID_IRpcSyntaxNegotiate = {0x58A08519, 0x24C8, 0x4935, [0xB4, 0x82, 0x3F, 0xD8, 0x23, 0x33, 0x3A, 0x4F]}; + const IID IID_IRTC = {0x4811EA40, 0xB582, 0x11CE, [0xB5, 0xAF, 0x00, 0xAA, 0x00, 0x6C, 0xB3, 0x7D]}; + const IID IID_IRTCBuddy = {0xFCB136C8, 0x7B90, 0x4E0C, [0xBE, 0xFE, 0x56, 0xED, 0xF0, 0xBA, 0x6F, 0x1C]}; + const IID IID_IRTCBuddyEvent = {0xF36D755D, 0x17E6, 0x404E, [0x95, 0x4F, 0x0F, 0xC0, 0x75, 0x74, 0xC7, 0x8D]}; + const IID IID_IRTCClient = {0x07829E45, 0x9A34, 0x408E, [0xA0, 0x11, 0xBD, 0xDF, 0x13, 0x48, 0x7C, 0xD1]}; + const IID IID_IRTCClientEvent = {0x2B493B7A, 0x3CBA, 0x4170, [0x9C, 0x8B, 0x76, 0xA9, 0xDA, 0xCD, 0xD6, 0x44]}; + const IID IID_IRTCClientPresence = {0x11C3CBCC, 0x0744, 0x42D1, [0x96, 0x8A, 0x51, 0xAA, 0x1B, 0xB2, 0x74, 0xC6]}; + const IID IID_IRTCClientProvisioning = {0xB9F5CF06, 0x65B9, 0x4A80, [0xA0, 0xE6, 0x73, 0xCA, 0xE3, 0xEF, 0x38, 0x22]}; + const IID IID_IRTCCollection = {0xEC7C8096, 0xB918, 0x4044, [0x94, 0xF1, 0xE4, 0xFB, 0xA0, 0x36, 0x1D, 0x5C]}; + const IID IID_IRTCEnumBuddies = {0xF7296917, 0x5569, 0x4B3B, [0xB3, 0xAF, 0x98, 0xD1, 0x14, 0x4B, 0x2B, 0x87]}; + const IID IID_IRTCEnumParticipants = {0xFCD56F29, 0x4A4F, 0x41B2, [0xBA, 0x5C, 0xF5, 0xBC, 0xCC, 0x06, 0x0B, 0xF6]}; + const IID IID_IRTCEnumProfiles = {0x29B7C41C, 0xED82, 0x4BCA, [0x84, 0xAD, 0x39, 0xD5, 0x10, 0x1B, 0x58, 0xE3]}; + const IID IID_IRTCEnumWatchers = {0xA87D55D7, 0xDB74, 0x4ED1, [0x9C, 0xA4, 0x77, 0xA0, 0xE4, 0x1B, 0x41, 0x3E]}; + const IID IID_IRTCEventNotification = {0x13FA24C7, 0x5748, 0x4B21, [0x91, 0xF5, 0x73, 0x97, 0x60, 0x9C, 0xE7, 0x47]}; + const IID IID_IRTCIntensityEvent = {0x4C23BF51, 0x390C, 0x4992, [0xA4, 0x1D, 0x41, 0xEE, 0xC0, 0x5B, 0x2A, 0x4B]}; + const IID IID_IRTCMediaEvent = {0x099944FB, 0xBCDA, 0x453E, [0x8C, 0x41, 0xE1, 0x3D, 0xA2, 0xAD, 0xF7, 0xF3]}; + const IID IID_IRTCMessagingEvent = {0xD3609541, 0x1B29, 0x4DE5, [0xA4, 0xAD, 0x5A, 0xEB, 0xAF, 0x31, 0x95, 0x12]}; + const IID IID_IRTCParticipant = {0xAE86ADD5, 0x26B1, 0x4414, [0xAF, 0x1D, 0xB9, 0x4C, 0xD9, 0x38, 0xD7, 0x39]}; + const IID IID_IRTCParticipantStateChangeEvent = {0x09BCB597, 0xF0FA, 0x48F9, [0xB4, 0x20, 0x46, 0x8C, 0xEA, 0x7F, 0xDE, 0x04]}; + const IID IID_IRTCPresenceContact = {0x8B22F92C, 0xCD90, 0x42DB, [0xA7, 0x33, 0x21, 0x22, 0x05, 0xC3, 0xE3, 0xDF]}; + const IID IID_IRTCProfile = {0xD07ECA9E, 0x4062, 0x4DD4, [0x9E, 0x7D, 0x72, 0x2A, 0x49, 0xBA, 0x73, 0x03]}; + const IID IID_IRTCProfileEvent = {0xD6D5AB3B, 0x770E, 0x43E8, [0x80, 0x0A, 0x79, 0xB0, 0x62, 0x39, 0x5F, 0xCA]}; + const IID IID_IRTCRegistrationStateChangeEvent = {0x62D0991B, 0x50AB, 0x4F02, [0xB9, 0x48, 0xCA, 0x94, 0xF2, 0x6F, 0x8F, 0x95]}; + const IID IID_IRTCSession = {0x387C8086, 0x99BE, 0x42FB, [0x99, 0x73, 0x7C, 0x0F, 0xC0, 0xCA, 0x9F, 0xA8]}; + const IID IID_IRTCSessionOperationCompleteEven = {0xA6BFF4C0, 0xF7C8, 0x4D3C, [0x9A, 0x41, 0x35, 0x50, 0xF7, 0x8A, 0x95, 0xB0]}; + const IID IID_IRTCSessionStateChangeEvent = {0xB5BAD703, 0x5952, 0x48B3, [0x93, 0x21, 0x7F, 0x45, 0x00, 0x52, 0x15, 0x06]}; + const IID IID_IRTCWatcher = {0xC7CEDAD8, 0x346B, 0x4D1B, [0xAC, 0x02, 0xA2, 0x08, 0x8D, 0xF9, 0xBE, 0x4F]}; + const IID IID_IRTCWatcherEvent = {0xF30D7261, 0x587A, 0x424F, [0x82, 0x2C, 0x31, 0x27, 0x88, 0xF4, 0x35, 0x48]}; + const IID IID_IRunnableObject = {0x00000126, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IRunnableTask = {0x85788D00, 0x6807, 0x11D0, [0xB8, 0x10, 0x00, 0xC0, 0x4F, 0xD7, 0x06, 0xEC]}; + const IID IID_IRunningObjectTable = {0x00000010, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IScheduleGroup = {0xC733E4A6, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID IID_IScopedOperations = {0x0C733AB0, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IScriptEntry = {0x0AEE2A95, 0xBCBB, 0x11D0, [0x8C, 0x72, 0x00, 0xC0, 0x4F, 0xC2, 0xB0, 0x85]}; + const IID IID_IScriptErrorList = {0xF3470F24, 0x15FD, 0x11D2, [0xBB, 0x2E, 0x00, 0x80, 0x5F, 0xF7, 0xEF, 0xCA]}; + const IID IID_IScriptNode = {0x0AEE2A94, 0xBCBB, 0x11D0, [0x8C, 0x72, 0x00, 0xC0, 0x4F, 0xC2, 0xB0, 0x85]}; + const IID IID_IScriptScriptlet = {0x0AEE2A96, 0xBCBB, 0x11D0, [0x8C, 0x72, 0x00, 0xC0, 0x4F, 0xC2, 0xB0, 0x85]}; + const IID IID_IScrollBar = {0x3050F689, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ISdo = {0x56BC53DE, 0x96DB, 0x11D1, [0xBF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]}; + const IID IID_ISdoCollection = {0x56BC53E2, 0x96DB, 0x11D1, [0xBF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]}; + const IID IID_ISdoDictionaryOld = {0xD432E5F4, 0x53D8, 0x11D2, [0x9A, 0x3A, 0x00, 0xC0, 0x4F, 0xB9, 0x98, 0xAC]}; + const IID IID_ISdoMachine = {0x479F6E75, 0x49A2, 0x11D2, [0x8E, 0xCA, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x19]}; + const IID IID_ISdoServiceControl = {0x479F6E74, 0x49A2, 0x11D2, [0x8E, 0xCA, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x19]}; + const IID IID_ISearch = {0xBA9239A4, 0x3DD5, 0x11D2, [0xBF, 0x8B, 0x00, 0xC0, 0x4F, 0xB9, 0x36, 0x61]}; + const IID IID_ISearchAssistantOC = {0x72423E8F, 0x8011, 0x11D2, [0xBE, 0x79, 0x00, 0xA0, 0xC9, 0xA8, 0x3D, 0xA1]}; + const IID IID_ISearchAssistantOC2 = {0x72423E8F, 0x8011, 0x11D2, [0xBE, 0x79, 0x00, 0xA0, 0xC9, 0xA8, 0x3D, 0xA2]}; + const IID IID_ISearchAssistantOC3 = {0x72423E8F, 0x8011, 0x11D2, [0xBE, 0x79, 0x00, 0xA0, 0xC9, 0xA8, 0x3D, 0xA3]}; + const IID IID_ISearchCommandExt = {0x1D2EFD50, 0x75CE, 0x11D1, [0xB7, 0x5A, 0x00, 0xA0, 0xC9, 0x05, 0x64, 0xFE]}; + const IID IID_ISearchContext = {0x09F656A2, 0x41AF, 0x480C, [0x88, 0xF7, 0x16, 0xCC, 0x0D, 0x16, 0x46, 0x15]}; + const IID IID_ISearches = {0x47C922A2, 0x3DD5, 0x11D2, [0xBF, 0x8B, 0x00, 0xC0, 0x4F, 0xB9, 0x36, 0x61]}; + const IID IID_ISearchQueryHits = {0xED8CE7E0, 0x106C, 0x11CE, [0x84, 0xE2, 0x00, 0xAA, 0x00, 0x4B, 0x99, 0x86]}; + const IID IID_ISecondaryControlChannel = {0xA23F9D10, 0x714C, 0x41FE, [0x84, 0x71, 0xFF, 0xB1, 0x9B, 0xC2, 0x84, 0x54]}; + const IID IID_ISecureUrlHost = {0xC81984C4, 0x74C8, 0x11D2, [0xBA, 0xA9, 0x00, 0xC0, 0x4F, 0xC2, 0x04, 0x0E]}; + const IID IID_ISecurityInfo = {0x0C733AA4, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ISegment = {0x3050F683, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ISegmentList = {0x3050F605, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ISegmentListIterator = {0x3050F692, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ISelectionObject2 = {0x3050F7FC, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ISelectionServices = {0x3050F684, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ISelectionServicesListener = {0x3050F699, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ISensLogon = {0xD597BAB3, 0x5B9F, 0x11D1, [0x8D, 0xD2, 0x00, 0xAA, 0x00, 0x4A, 0xBD, 0x5E]}; + const IID IID_ISensLogon2 = {0xD597BAB4, 0x5B9F, 0x11D1, [0x8D, 0xD2, 0x00, 0xAA, 0x00, 0x4A, 0xBD, 0x5E]}; + const IID IID_ISensNetwork = {0xD597BAB1, 0x5B9F, 0x11D1, [0x8D, 0xD2, 0x00, 0xAA, 0x00, 0x4A, 0xBD, 0x5E]}; + const IID IID_ISensOnNow = {0xD597BAB2, 0x5B9F, 0x11D1, [0x8D, 0xD2, 0x00, 0xAA, 0x00, 0x4A, 0xBD, 0x5E]}; + const IID IID_ISequenceNumber = {0x3050F6C1, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ISequentialStream = {0x0C733A30, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IServerSecurity = {0x0000013E, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IServiceProvider = {0x6D5140C1, 0x7436, 0x11CE, [0x80, 0x34, 0x00, 0xAA, 0x00, 0x60, 0x09, 0xFA]}; + const IID IID_ISessionProperties = {0x0C733A85, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ISetNextStatement = {0x51973C03, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_ISharedAccessBeacon = {0xFAEDCF6B, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_ISharedAccessBeaconFinder = {0xFAEDCF67, 0x31FE, 0x11D1, [0xAA, 0xD2, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_IShellApp = {0xA3E14960, 0x935F, 0x11D1, [0xB8, 0xB8, 0x00, 0x60, 0x08, 0x05, 0x93, 0x82]}; + const IID IID_IShellBrowser = {0x000214E2, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IShellChangeNotify = {0xD82BE2B1, 0x5764, 0x11D0, [0xA9, 0x6E, 0x00, 0xC0, 0x4F, 0xD7, 0x05, 0xA2]}; + const IID IID_IShellCopyHookA = {0x000214EF, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IShellCopyHookW = {0x000214FC, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IShellDetails = {0x000214EC, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IShellDetails3 = {0xD2A105C0, 0x87D5, 0x11D1, [0x83, 0x91, 0x00, 0x00, 0xF8, 0x04, 0x61, 0xCF]}; + const IID IID_IShellDispatch = {0xD8F015C0, 0xC278, 0x11CE, [0xA4, 0x9E, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_IShellDispatch2 = {0xA4C6892C, 0x3BA9, 0x11D2, [0x9D, 0xEA, 0x00, 0xC0, 0x4F, 0xB1, 0x61, 0x62]}; + const IID IID_IShellDispatch3 = {0x177160CA, 0xBB5A, 0x411C, [0x84, 0x1D, 0xBD, 0x38, 0xFA, 0xCD, 0xEA, 0xA0]}; + const IID IID_IShellDispatch4 = {0xEFD84B2D, 0x4BCF, 0x4298, [0xBE, 0x25, 0xEB, 0x54, 0x2A, 0x59, 0xFB, 0xDA]}; + const IID IID_IShellExecuteHookA = {0x000214F5, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IShellExecuteHookW = {0x000214FB, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IShellExtInit = {0x000214E8, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IShellFavoritesNameSpace = {0x55136804, 0xB2DE, 0x11D1, [0xB9, 0xF2, 0x00, 0xA0, 0xC9, 0x8B, 0xC5, 0x47]}; + const IID IID_IShellFolder = {0x000214E6, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IShellFolder2 = {0x93F2F68C, 0x1D1B, 0x11D3, [0xA3, 0x0E, 0x00, 0xC0, 0x4F, 0x79, 0xAB, 0xD1]}; + const IID IID_IShellFolderViewCB = {0x2047E320, 0xF2A9, 0x11CE, [0xAE, 0x65, 0x08, 0x00, 0x2B, 0x2E, 0x12, 0x62]}; + const IID IID_IShellFolderViewDual = {0xE7A1AF80, 0x4D96, 0x11CF, [0x96, 0x0C, 0x00, 0x80, 0xC7, 0xF4, 0xEE, 0x85]}; + const IID IID_IShellFolderViewDual2 = {0x31C147B6, 0x0ADE, 0x4A3C, [0xB5, 0x14, 0xDD, 0xF9, 0x32, 0xEF, 0x6D, 0x17]}; + const IID IID_IShellIcon = {0x000214E5, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IShellIconOverlay = {0x7D688A70, 0xC613, 0x11D0, [0x99, 0x9B, 0x00, 0xC0, 0x4F, 0xD6, 0x55, 0xE1]}; + const IID IID_IShellIconOverlayIdentifier = {0x0C6C4200, 0xC589, 0x11D0, [0x99, 0x9A, 0x00, 0xC0, 0x4F, 0xD6, 0x55, 0xE1]}; + const IID IID_IShellImageData = {0xBFDEEC12, 0x8040, 0x4403, [0xA5, 0xEA, 0x9E, 0x07, 0xDA, 0xFC, 0xF5, 0x30]}; + const IID IID_IShellImageDataAbort = {0x53FB8E58, 0x50C0, 0x4003, [0xB4, 0xAA, 0x0C, 0x8D, 0xF2, 0x8E, 0x7F, 0x3A]}; + const IID IID_IShellImageDataFactory = {0x9BE8ED5C, 0xEDAB, 0x4D75, [0x90, 0xF3, 0xBD, 0x5B, 0xDB, 0xB2, 0x1C, 0x82]}; + const IID IID_IShellLinkA = {0x000214EE, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IShellLinkDataList = {0x45E2B4AE, 0xB1C3, 0x11D0, [0xB9, 0x2F, 0x00, 0xA0, 0xC9, 0x03, 0x12, 0xE1]}; + const IID IID_IShellLinkDual = {0x88A05C00, 0xF000, 0x11CE, [0x83, 0x50, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; + const IID IID_IShellLinkDual2 = {0x317EE249, 0xF12E, 0x11D2, [0xB1, 0xE4, 0x00, 0xC0, 0x4F, 0x8E, 0xEB, 0x3E]}; + const IID IID_IShellLinkW = {0x000214F9, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IShellNameSpace = {0xE572D3C9, 0x37BE, 0x4AE2, [0x82, 0x5D, 0xD5, 0x21, 0x76, 0x3E, 0x31, 0x08]}; + const IID IID_IShellPropSheetExt = {0x000214E9, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IShellUIHelper = {0x729FE2F8, 0x1EA8, 0x11D1, [0x8F, 0x85, 0x00, 0xC0, 0x4F, 0xC2, 0xFB, 0xE1]}; + const IID IID_IShellView = {0x000214E3, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IShellView2 = {0x88E39E80, 0x3578, 0x11CF, [0xAE, 0x69, 0x08, 0x00, 0x2B, 0x2E, 0x12, 0x62]}; + const IID IID_IShellWindows = {0x85CB6900, 0x4D95, 0x11CF, [0x96, 0x0C, 0x00, 0x80, 0xC7, 0xF4, 0xEE, 0x85]}; + const IID IID_ISimpleCommandCreator = {0x5E341AB7, 0x02D0, 0x11D1, [0x90, 0x0C, 0x00, 0xA0, 0xC9, 0x06, 0x37, 0x96]}; + const IID IID_ISimpleConnectionPoint = {0x51973C3E, 0xCB0C, 0x11D0, [0xB5, 0xC9, 0x00, 0xA0, 0x24, 0x4A, 0x0E, 0x7A]}; + const IID IID_ISimpleFrameSite = {0x742B0E01, 0x14E6, 0x101B, [0x91, 0x4E, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB]}; + const IID IID_ISliderBar = {0x3050F68D, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ISniffStream = {0x4EF17940, 0x30E0, 0x11D0, [0xB7, 0x24, 0x00, 0xAA, 0x00, 0x6C, 0x1A, 0x01]}; + const IID IID_ISOAPRequest = {0xAD194525, 0x6E01, 0x4BCA, [0x92, 0x9C, 0x23, 0xC7, 0x38, 0x33, 0x36, 0xAF]}; + const IID IID_ISoftDistExt = {0xB15B8DC1, 0xC7E1, 0x11D0, [0x86, 0x80, 0x00, 0xAA, 0x00, 0xBD, 0xCB, 0x71]}; + const IID IID_ISourcesRowset = {0x0C733A1E, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ISpecialSystemProperties = {0x000001B9, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ISpecifyPropertyPages = {0xB196B28B, 0xBAB4, 0x101A, [0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07]}; + const IID IID_ISpinButton = {0x3050F68B, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ISQLErrorInfo = {0x0C733A74, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IStandardActivator = {0x000001B8, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IStandardInfo = {0xF1D9C1A5, 0x9589, 0x40DD, [0xB6, 0x3D, 0x9B, 0xB0, 0xB3, 0x8A, 0x10, 0x22]}; + const IID IID_IStaticPortMapping = {0x6F10711F, 0x729B, 0x41E5, [0x93, 0xB8, 0xF2, 0x1D, 0x0F, 0x81, 0x8D, 0xF1]}; + const IID IID_IStaticPortMappingCollection = {0xCD1F3E77, 0x66D6, 0x4664, [0x82, 0xC7, 0x36, 0xDB, 0xB6, 0x41, 0xD0, 0xF1]}; + const IID IID_IStats = {0x944AD530, 0xB09D, 0x11CE, [0xB5, 0x9C, 0x00, 0xAA, 0x00, 0x6C, 0xB3, 0x7D]}; + const IID IID_IStdMarshalInfo = {0x00000018, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IStemmer = {0xEFBAF140, 0x7F42, 0x11CE, [0xBE, 0x57, 0x00, 0xAA, 0x00, 0x51, 0xFE, 0x20]}; + const IID IID_IStemSink = {0xFE77C330, 0x7F42, 0x11CE, [0xBE, 0x57, 0x00, 0xAA, 0x00, 0x51, 0xFE, 0x20]}; + const IID IID_IStorage = {0x0000000B, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IStream = {0x0000000C, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IStub = {0x00000026, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IStubManager = {0x00000006, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ISubDivisionProvider = {0x3050F4D2, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ISubscriptionAgentControl = {0xA89E8FF0, 0x70F4, 0x11D1, [0xBC, 0x7F, 0x00, 0xC0, 0x4F, 0xD9, 0x29, 0xDB]}; + const IID IID_ISubscriptionAgentEvents = {0xA89E8FF1, 0x70F4, 0x11D1, [0xBC, 0x7F, 0x00, 0xC0, 0x4F, 0xD9, 0x29, 0xDB]}; + const IID IID_ISubscriptionAgentShellExt = {0x81B184BA, 0xB302, 0x11D1, [0x85, 0x52, 0x00, 0xC0, 0x4F, 0xA3, 0x5C, 0x89]}; + const IID IID_ISubscriptionItem = {0xA97559F8, 0x6C4A, 0x11D1, [0xA1, 0xE8, 0x00, 0xC0, 0x4F, 0xC2, 0xFB, 0xE1]}; + const IID IID_ISubscriptionMgr = {0x085FB2C0, 0x0DF8, 0x11D1, [0x8F, 0x4B, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x3F]}; + const IID IID_ISubscriptionMgr2 = {0x614BC270, 0xAEDF, 0x11D1, [0xA1, 0xF9, 0x00, 0xC0, 0x4F, 0xC2, 0xFB, 0xE1]}; + const IID IID_ISubscriptionMgrPriv = {0xD66B399E, 0xAF1D, 0x11D1, [0xA1, 0xF9, 0x00, 0xC0, 0x4F, 0xC2, 0xFB, 0xE1]}; + const IID IID_ISubscriptionThrottler = {0x1E9B00E4, 0x9846, 0x11D1, [0xA1, 0xEE, 0x00, 0xC0, 0x4F, 0xC2, 0xFB, 0xE1]}; + const IID IID_ISupportErrorInfo = {0xDF0B3D60, 0x548F, 0x101B, [0x8E, 0x65, 0x08, 0x00, 0x2B, 0x2B, 0xD1, 0x19]}; + const IID IID_ISurrogate = {0x00000022, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ISWbemDateTime = {0x5E97458A, 0xCF77, 0x11D3, [0xB3, 0x8F, 0x00, 0x10, 0x5A, 0x1F, 0x47, 0x3A]}; + const IID IID_ISWbemEventSource = {0x27D54D92, 0x0EBE, 0x11D2, [0x8B, 0x22, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemLastError = {0xD962DB84, 0xD4BB, 0x11D1, [0x8B, 0x09, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemLocator = {0x76A6415B, 0xCB41, 0x11D1, [0x8B, 0x02, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemMethod = {0x422E8E90, 0xD955, 0x11D1, [0x8B, 0x09, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemMethodSet = {0xC93BA292, 0xD955, 0x11D1, [0x8B, 0x09, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemNamedValue = {0x76A64164, 0xCB41, 0x11D1, [0x8B, 0x02, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemNamedValueSet = {0xCF2376EA, 0xCE8C, 0x11D1, [0x8B, 0x05, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemObject = {0x76A6415A, 0xCB41, 0x11D1, [0x8B, 0x02, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemObjectEx = {0x269AD56A, 0x8A67, 0x4129, [0xBC, 0x8C, 0x05, 0x06, 0xDC, 0xFE, 0x98, 0x80]}; + const IID IID_ISWbemObjectPath = {0x5791BC27, 0xCE9C, 0x11D1, [0x97, 0xBF, 0x00, 0x00, 0xF8, 0x1E, 0x84, 0x9C]}; + const IID IID_ISWbemObjectSet = {0x76A6415F, 0xCB41, 0x11D1, [0x8B, 0x02, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemPrivilege = {0x26EE67BD, 0x5804, 0x11D2, [0x8B, 0x4A, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemPrivilegeSet = {0x26EE67BF, 0x5804, 0x11D2, [0x8B, 0x4A, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemProperty = {0x1A388F98, 0xD4BA, 0x11D1, [0x8B, 0x09, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemPropertySet = {0xDEA0A7B2, 0xD4BA, 0x11D1, [0x8B, 0x09, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemQualifier = {0x79B05932, 0xD3B7, 0x11D1, [0x8B, 0x06, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemQualifierSet = {0x9B16ED16, 0xD3DF, 0x11D1, [0x8B, 0x08, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemRefreshableItem = {0x5AD4BF92, 0xDAAB, 0x11D3, [0xB3, 0x8F, 0x00, 0x10, 0x5A, 0x1F, 0x47, 0x3A]}; + const IID IID_ISWbemRefresher = {0x14D8250E, 0xD9C2, 0x11D3, [0xB3, 0x8F, 0x00, 0x10, 0x5A, 0x1F, 0x47, 0x3A]}; + const IID IID_ISWbemSecurity = {0xB54D66E6, 0x2287, 0x11D2, [0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemServices = {0x76A6415C, 0xCB41, 0x11D1, [0x8B, 0x02, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID IID_ISWbemServicesEx = {0xD2F68443, 0x85DC, 0x427E, [0x91, 0xD8, 0x36, 0x65, 0x54, 0xCC, 0x75, 0x4C]}; + const IID IID_ISWbemSink = {0x75718C9F, 0xF029, 0x11D1, [0xA1, 0xAC, 0x00, 0xC0, 0x4F, 0xB6, 0xC2, 0x23]}; + const IID IID_ISynchronize = {0x00000030, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ISynchronizeContainer = {0x00000033, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ISynchronizedCallBack = {0x74C26041, 0x70D1, 0x11D1, [0xB7, 0x5A, 0x00, 0xA0, 0xC9, 0x05, 0x64, 0xFE]}; + const IID IID_ISynchronizeEvent = {0x00000032, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ISynchronizeHandle = {0x00000031, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ISynchronizeMutex = {0x00000025, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ISyncMgrEnumItems = {0x6295DF2A, 0x35EE, 0x11D1, [0x87, 0x07, 0x00, 0xC0, 0x4F, 0xD9, 0x33, 0x27]}; + const IID IID_ISyncMgrRegisterCSC = {0x47681A61, 0xBC74, 0x11D2, [0xB5, 0xC5, 0x00, 0xC0, 0x4F, 0xB9, 0x39, 0x81]}; + const IID IID_ISyncMgrSynchronizeInvoke = {0x6295DF2C, 0x35EE, 0x11D1, [0x87, 0x07, 0x00, 0xC0, 0x4F, 0xD9, 0x33, 0x27]}; + const IID IID_ISyncSchedule = {0xF0E15899, 0xA700, 0x11D1, [0x98, 0x31, 0x00, 0xC0, 0x4F, 0xD9, 0x10, 0xDD]}; + const IID IID_ISyncScheduleMgr = {0xF0E15897, 0xA700, 0x11D1, [0x98, 0x31, 0x00, 0xC0, 0x4F, 0xD9, 0x10, 0xDD]}; + const IID IID_ISyncSchedulep = {0xF0E1589B, 0xA700, 0x11D1, [0x98, 0x31, 0x00, 0xC0, 0x4F, 0xD9, 0x10, 0xDD]}; + const IID IID_ITableCreation = {0x0C733ABC, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ITableDefinition = {0x0C733A86, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ITableDefinitionWithConstraints = {0x0C733AAB, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ITableRename = {0x0C733A77, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ITACDGroup = {0x5AFC3148, 0x4BCC, 0x11D1, [0xBF, 0x80, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_ITACDGroupEvent = {0x297F3032, 0xBD11, 0x11D1, [0xA0, 0xA7, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_ITAddress = {0xB1EFC386, 0x9355, 0x11D0, [0x83, 0x5C, 0x00, 0xAA, 0x00, 0x3C, 0xCA, 0xBD]}; + const IID IID_ITAddress2 = {0xB0AE5D9B, 0xBE51, 0x46C9, [0xB0, 0xF7, 0xDF, 0xA8, 0xA2, 0x2A, 0x8B, 0xC4]}; + const IID IID_ITAddressCapabilities = {0x8DF232F5, 0x821B, 0x11D1, [0xBB, 0x5C, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITAddressDeviceSpecificEvent = {0x3ACB216B, 0x40BD, 0x487A, [0x86, 0x72, 0x5C, 0xE7, 0x7B, 0xD7, 0xE3, 0xA3]}; + const IID IID_ITAddressEvent = {0x831CE2D1, 0x83B5, 0x11D1, [0xBB, 0x5C, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITAddressTranslation = {0x0C4D8F03, 0x8DDB, 0x11D1, [0xA0, 0x9E, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_ITAddressTranslationInfo = {0xAFC15945, 0x8D40, 0x11D1, [0xA0, 0x9E, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_ITAgent = {0x5770ECE5, 0x4B27, 0x11D1, [0xBF, 0x80, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_ITAgentEvent = {0x5AFC314A, 0x4BCC, 0x11D1, [0xBF, 0x80, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_ITAgentHandler = {0x587E8C22, 0x9802, 0x11D1, [0xA0, 0xA4, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_ITAgentHandlerEvent = {0x297F3034, 0xBD11, 0x11D1, [0xA0, 0xA7, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_ITAgentSession = {0x5AFC3147, 0x4BCC, 0x11D1, [0xBF, 0x80, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_ITAgentSessionEvent = {0x5AFC314B, 0x4BCC, 0x11D1, [0xBF, 0x80, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_ITAllocatorProperties = {0xC1BC3C90, 0xBCFE, 0x11D1, [0x97, 0x45, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID IID_ITAMMediaFormat = {0x0364EB00, 0x4A77, 0x11D1, [0xA6, 0x71, 0x00, 0x60, 0x97, 0xC9, 0xA2, 0xE8]}; + const IID IID_ITargetContainer = {0x7847EC01, 0x2BEC, 0x11D0, [0x82, 0xB4, 0x00, 0xA0, 0xC9, 0x0C, 0x29, 0xC5]}; + const IID IID_ITargetEmbedding = {0x548793C0, 0x9E74, 0x11CF, [0x96, 0x55, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0x23]}; + const IID IID_ITargetFrame = {0xD5F78C80, 0x5252, 0x11CF, [0x90, 0xFA, 0x00, 0xAA, 0x00, 0x42, 0x10, 0x6E]}; + const IID IID_ITargetFrame2 = {0x86D52E11, 0x94A8, 0x11D0, [0x82, 0xAF, 0x00, 0xC0, 0x4F, 0xD5, 0xAE, 0x38]}; + const IID IID_ITargetFramePriv = {0x9216E421, 0x2BF5, 0x11D0, [0x82, 0xB4, 0x00, 0xA0, 0xC9, 0x0C, 0x29, 0xC5]}; + const IID IID_ITargetNotify = {0x863A99A0, 0x21BC, 0x11D0, [0x82, 0xB4, 0x00, 0xA0, 0xC9, 0x0C, 0x29, 0xC5]}; + const IID IID_ITargetNotify2 = {0x3050F6B1, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ITaskAnalyzeCluster = {0x795737A1, 0xE13A, 0x45EB, [0x8D, 0xFD, 0x81, 0x85, 0xC4, 0xB7, 0xAD, 0x4E]}; + const IID IID_ITaskbarList = {0x56FDF342, 0xFD6D, 0x11D0, [0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90]}; + const IID IID_ITaskbarList2 = {0x602D4995, 0xB13A, 0x429B, [0xA6, 0x6E, 0x19, 0x35, 0xE4, 0x4F, 0x43, 0x17]}; + const IID IID_ITaskCommitClusterChanges = {0x1BF12DDE, 0xF8B0, 0x49B1, [0xA4, 0x58, 0x67, 0x47, 0xDB, 0x78, 0x8A, 0x47]}; + const IID IID_ITaskCompareAndPushInformation = {0xD4F1C2AF, 0xB370, 0x49DE, [0x87, 0x68, 0x40, 0x10, 0xB5, 0x68, 0x63, 0x6C]}; + const IID IID_ITaskGatherClusterInfo = {0xE167965C, 0xC5D6, 0x493C, [0xA3, 0x43, 0x4C, 0x10, 0x5C, 0x01, 0xDD, 0xE7]}; + const IID IID_ITaskGatherInformation = {0xB9AAF3F8, 0x238E, 0x4993, [0xBA, 0x31, 0x14, 0x85, 0x98, 0x04, 0xF9, 0x2C]}; + const IID IID_ITaskGatherNodeInfo = {0xF19A2E01, 0x2CB3, 0x47B4, [0x8F, 0x5D, 0xB9, 0x77, 0x17, 0x6B, 0x45, 0xC8]}; + const IID IID_ITaskGetDomains = {0xDFCB4ACD, 0xC4DB, 0x4DB4, [0x8E, 0xBB, 0x1D, 0xD0, 0x7A, 0x9D, 0x5B, 0x82]}; + const IID IID_ITaskGetDomainsCallback = {0x85402E44, 0x6834, 0x41DF, [0x85, 0x90, 0x01, 0x82, 0x7D, 0x12, 0x4E, 0x1B]}; + const IID IID_ITaskLoginDomain = {0x76AD8E51, 0x53C3, 0x4347, [0x89, 0x5D, 0x6C, 0x30, 0xF4, 0x13, 0x93, 0x74]}; + const IID IID_ITaskLoginDomainCallback = {0xEFAF3C43, 0x7A8F, 0x469B, [0xB8, 0xBB, 0xC8, 0x0C, 0x57, 0x47, 0xCE, 0x05]}; + const IID IID_ITaskManager = {0x16116694, 0xDFC5, 0x470B, [0xAC, 0x12, 0x46, 0xFB, 0xB0, 0x1C, 0xEF, 0x10]}; + const IID IID_ITaskPollingCallback = {0x49E92395, 0x66AF, 0x4ADD, [0xA4, 0x1E, 0x43, 0x51, 0x2C, 0xB5, 0x19, 0xB3]}; + const IID IID_ITaskVerifyIPAddress = {0x0C95E1B1, 0x0CFF, 0x4740, [0x8A, 0xBD, 0x69, 0x91, 0x2D, 0x10, 0x5B, 0xD1]}; + const IID IID_ITASRTerminalEvent = {0xEE016A02, 0x4FA9, 0x467C, [0x93, 0x3F, 0x5A, 0x15, 0xB1, 0x23, 0x77, 0xD7]}; + const IID IID_ITAttributeList = {0x5037FB82, 0xCAE9, 0x11D0, [0x8D, 0x58, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID IID_ITAudioDeviceControl = {0x6C0AB6C5, 0x21E3, 0x11D3, [0xA5, 0x77, 0x00, 0xC0, 0x4F, 0x8E, 0xF6, 0xE3]}; + const IID IID_ITAudioSettings = {0x6C0AB6C6, 0x21E3, 0x11D3, [0xA5, 0x77, 0x00, 0xC0, 0x4F, 0x8E, 0xF6, 0xE3]}; + const IID IID_ITAutomatedPhoneControl = {0x1EE1AF0E, 0x6159, 0x4A61, [0xB7, 0x9B, 0x6A, 0x4B, 0xA3, 0xFC, 0x9D, 0xFC]}; + const IID IID_ITBasicAudioTerminal = {0xB1EFC38D, 0x9355, 0x11D0, [0x83, 0x5C, 0x00, 0xAA, 0x00, 0x3C, 0xCA, 0xBD]}; + const IID IID_ITBasicCallControl = {0xB1EFC389, 0x9355, 0x11D0, [0x83, 0x5C, 0x00, 0xAA, 0x00, 0x3C, 0xCA, 0xBD]}; + const IID IID_ITBasicCallControl2 = {0x161A4A56, 0x1E99, 0x4B3F, [0xA4, 0x6A, 0x16, 0x8F, 0x38, 0xA5, 0xEE, 0x4C]}; + const IID IID_ITCallHub = {0xA3C1544E, 0x5B92, 0x11D1, [0x8F, 0x4E, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITCallHubEvent = {0xA3C15451, 0x5B92, 0x11D1, [0x8F, 0x4E, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITCallInfo = {0x350F85D1, 0x1227, 0x11D3, [0x83, 0xD4, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITCallInfo2 = {0x94D70CA6, 0x7AB0, 0x4DAA, [0x81, 0xCA, 0xB8, 0xF8, 0x64, 0x3F, 0xAE, 0xC1]}; + const IID IID_ITCallInfoChangeEvent = {0x5D4B65F9, 0xE51C, 0x11D1, [0xA0, 0x2F, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITCallingCard = {0x0C4D8F00, 0x8DDB, 0x11D1, [0xA0, 0x9E, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_ITCallMediaEvent = {0xFF36B87F, 0xEC3A, 0x11D0, [0x8E, 0xE4, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITCallNotificationEvent = {0x895801DF, 0x3DD6, 0x11D1, [0x8F, 0x30, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITCallQualityControl = {0xFE1D8AE0, 0xEDC4, 0x49B5, [0x8F, 0x8C, 0x4D, 0xE4, 0x0F, 0x9C, 0xDF, 0xAF]}; + const IID IID_ITCallStateEvent = {0x62F47097, 0x95C9, 0x11D0, [0x83, 0x5D, 0x00, 0xAA, 0x00, 0x3C, 0xCA, 0xBD]}; + const IID IID_ITCollection = {0x5EC5ACF2, 0x9C02, 0x11D0, [0x83, 0x62, 0x00, 0xAA, 0x00, 0x3C, 0xCA, 0xBD]}; + const IID IID_ITCollection2 = {0xE6DDDDA5, 0xA6D3, 0x48FF, [0x87, 0x37, 0xD3, 0x2F, 0xC4, 0xD9, 0x54, 0x77]}; + const IID IID_ITConferenceBlob = {0xC259D7AA, 0xC8AB, 0x11D0, [0x8D, 0x58, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID IID_ITConnection = {0x8FA381D4, 0xC8C2, 0x11D0, [0x8D, 0x58, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID IID_ITcpipProperties = {0x98133271, 0x4B20, 0x11D1, [0xAB, 0x01, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E]}; + const IID IID_ITCustomTone = {0x357AD764, 0xB3C6, 0x4B2A, [0x8F, 0xA5, 0x07, 0x22, 0x82, 0x7A, 0x92, 0x54]}; + const IID IID_ITDetectTone = {0x961F79BD, 0x3097, 0x49DF, [0xA1, 0xD6, 0x90, 0x9B, 0x77, 0xE8, 0x9C, 0xA0]}; + const IID IID_ITDigitDetectionEvent = {0x80D3BFAC, 0x57D9, 0x11D2, [0xA0, 0x4A, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITDigitGenerationEvent = {0x80D3BFAD, 0x57D9, 0x11D2, [0xA0, 0x4A, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITDigitsGatheredEvent = {0xE52EC4C1, 0xCBA3, 0x441A, [0x9E, 0x6A, 0x93, 0xCB, 0x90, 0x9E, 0x97, 0x24]}; + const IID IID_ITDirectory = {0x34621D6C, 0x6CFF, 0x11D1, [0xAF, 0xF7, 0x00, 0xC0, 0x4F, 0xC3, 0x1F, 0xEE]}; + const IID IID_ITDirectoryObject = {0x34621D6E, 0x6CFF, 0x11D1, [0xAF, 0xF7, 0x00, 0xC0, 0x4F, 0xC3, 0x1F, 0xEE]}; + const IID IID_ITDirectoryObjectConference = {0xF1029E5D, 0xCB5B, 0x11D0, [0x8D, 0x59, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID IID_ITDirectoryObjectUser = {0x34621D6F, 0x6CFF, 0x11D1, [0xAF, 0xF7, 0x00, 0xC0, 0x4F, 0xC3, 0x1F, 0xEE]}; + const IID IID_ITDispatchMapper = {0xE9225295, 0xC759, 0x11D1, [0xA0, 0x2B, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITemplatePrinter = {0x3050F6B4, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ITemplatePrinter2 = {0x3050F83F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ITFileTerminalEvent = {0xE4A7FBAC, 0x8C17, 0x4427, [0x9F, 0x55, 0x9F, 0x58, 0x9A, 0xC8, 0xAF, 0x00]}; + const IID IID_ITFileTrack = {0x31CA6EA9, 0xC08A, 0x4BEA, [0x88, 0x11, 0x8E, 0x9C, 0x1B, 0xA3, 0xEA, 0x3A]}; + const IID IID_ITfLangBarAddIn = {0xC9ADDAC3, 0x15CB, 0x4957, [0xB9, 0x3C, 0xDB, 0x08, 0x73, 0xFF, 0x98, 0xBB]}; + const IID IID_ITFormatControl = {0x6C0AB6C1, 0x21E3, 0x11D3, [0xA5, 0x77, 0x00, 0xC0, 0x4F, 0x8E, 0xF6, 0xE3]}; + const IID IID_ITForwardInformation = {0x449F659E, 0x88A3, 0x11D1, [0xBB, 0x5D, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITForwardInformation2 = {0x5229B4ED, 0xB260, 0x4382, [0x8E, 0x1A, 0x5D, 0xF3, 0xA8, 0xA4, 0xCC, 0xC0]}; + const IID IID_ITfSpeechUIServer = {0x90E9A944, 0x9244, 0x489F, [0xA7, 0x8F, 0xDE, 0x67, 0xAF, 0xC0, 0x13, 0xA7]}; + const IID IID_IThumbnailCapture = {0x4EA39266, 0x7211, 0x409F, [0xB6, 0x22, 0xF6, 0x3D, 0xBD, 0x16, 0xC5, 0x33]}; + const IID IID_IThumbnailExtractor = {0x969DC708, 0x5C76, 0x11D1, [0x8D, 0x86, 0x00, 0x00, 0xF8, 0x04, 0xB0, 0x57]}; + const IID IID_ITILSConfig = {0x34621D72, 0x6CFF, 0x11D1, [0xAF, 0xF7, 0x00, 0xC0, 0x4F, 0xC3, 0x1F, 0xEE]}; + const IID IID_ITIMEActiveElementCollection = {0x403E2540, 0x4520, 0x11D3, [0x93, 0xAB, 0x00, 0xA0, 0xC9, 0x67, 0xA4, 0x38]}; + const IID IID_ITimeAndNoticeControl = {0xBC0BF6AE, 0x8878, 0x11D1, [0x83, 0xE9, 0x00, 0xC0, 0x4F, 0xC2, 0xC6, 0xD4]}; + const IID IID_ITIMEAnimationElement = {0xA74F14B1, 0xB6A2, 0x430A, [0xA5, 0xE8, 0x1F, 0x4E, 0x53, 0xF7, 0x10, 0xFE]}; + const IID IID_ITIMEAnimationElement2 = {0x29CE8661, 0xBD43, 0x421A, [0xB6, 0x16, 0xE9, 0xB3, 0x1F, 0x33, 0xA5, 0x72]}; + const IID IID_ITIMEBodyElement = {0x8C90E348, 0xEC0A, 0x4229, [0x90, 0xB0, 0xE5, 0x7D, 0x2C, 0xA4, 0x5C, 0xCB]}; + const IID IID_ITIMEDMusicPlayerObject = {0x407954F5, 0x2BAB, 0x4CFA, [0x95, 0x4D, 0x24, 0x9F, 0x9F, 0xCE, 0x43, 0xA1]}; + const IID IID_ITIMEDVDPlayerObject = {0x3AF7AB68, 0x4F29, 0x462C, [0xAA, 0x6E, 0x58, 0x72, 0x44, 0x88, 0x99, 0xE3]}; + const IID IID_ITIMEElement = {0x1C2EF64E, 0xF07D, 0x4338, [0x97, 0x71, 0x91, 0x54, 0x49, 0x1C, 0xD8, 0xB9]}; + const IID IID_ITIMEElementCollection = {0x50ABC224, 0x6D53, 0x4F83, [0x91, 0x35, 0x24, 0x40, 0xA4, 0x1B, 0x7B, 0xC8]}; + const IID IID_ITIMEFactory = {0xCD51E446, 0x3006, 0x434F, [0x90, 0xE2, 0xE3, 0x7E, 0x8F, 0xB8, 0xCA, 0x8F]}; + const IID IID_ITIMEMediaElement = {0x47A6972F, 0xAE65, 0x4A6B, [0xAE, 0x63, 0xD0, 0xC1, 0xD5, 0x30, 0x7B, 0x58]}; + const IID IID_ITIMEMediaElement2 = {0x9EE29400, 0x7EE6, 0x453A, [0x85, 0xB3, 0x4E, 0xC2, 0x8E, 0x03, 0x05, 0xB4]}; + const IID IID_ITIMEMediaPlayer = {0xEA4A95BE, 0xACC9, 0x4BF0, [0x85, 0xA4, 0x1B, 0xF3, 0xC5, 0x1E, 0x43, 0x1C]}; + const IID IID_ITIMEMediaPlayerAudio = {0xFFAACFDA, 0xB374, 0x4F22, [0xAC, 0x9A, 0xC5, 0xBB, 0x94, 0x37, 0xCB, 0x56]}; + const IID IID_ITIMEMediaPlayerControl = {0x897A99E7, 0xF386, 0x45C8, [0xB5, 0x1B, 0x3A, 0x25, 0xBB, 0xCB, 0xBA, 0x69]}; + const IID IID_ITIMEMediaPlayerNetwork = {0xB9987FCA, 0x7FBB, 0x4015, [0xBD, 0x3D, 0x74, 0x18, 0x60, 0x55, 0x14, 0xDA]}; + const IID IID_ITIMEMediaPlayerSite = {0xBF0571ED, 0x344F, 0x4F58, [0x82, 0xC7, 0x74, 0x31, 0xED, 0x0F, 0xD8, 0x34]}; + const IID IID_ITIMEPlayItem = {0x2A6096D9, 0x2CE0, 0x47DC, [0xA8, 0x13, 0x90, 0x99, 0xA2, 0x46, 0x63, 0x09]}; + const IID IID_ITIMEPlayItem2 = {0x4262CD38, 0x6BDC, 0x40A4, [0xBC, 0x50, 0x4C, 0xC5, 0x03, 0x66, 0xE7, 0x02]}; + const IID IID_ITIMEPlayList = {0xE9B75B62, 0xDD97, 0x4B19, [0x8F, 0xD9, 0x96, 0x46, 0x29, 0x29, 0x52, 0xE0]}; + const IID IID_ITimer = {0x3050F360, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ITimerService = {0x3050F35F, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ITimerSink = {0x3050F361, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ITIMEState = {0xDD5EC62A, 0x9D77, 0x4573, [0x80, 0xA8, 0x75, 0x85, 0x94, 0xE6, 0x9C, 0xEA]}; + const IID IID_ITIMETransitionElement = {0xF383D66F, 0x5E68, 0x4FC2, [0xB6, 0x41, 0x03, 0x67, 0x2B, 0x54, 0x3A, 0x49]}; + const IID IID_ITLegacyAddressMediaControl = {0xAB493640, 0x4C0B, 0x11D2, [0xA0, 0x46, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITLegacyAddressMediaControl2 = {0xB0EE512B, 0xA531, 0x409E, [0x9D, 0xD9, 0x40, 0x99, 0xFE, 0x86, 0xC7, 0x38]}; + const IID IID_ITLegacyCallMediaControl = {0xD624582F, 0xCC23, 0x4436, [0xB8, 0xA5, 0x47, 0xC6, 0x25, 0xC8, 0x04, 0x5D]}; + const IID IID_ITLegacyCallMediaControl2 = {0x57CA332D, 0x7BC2, 0x44F1, [0xA6, 0x0C, 0x93, 0x6F, 0xE8, 0xD7, 0xCE, 0x73]}; + const IID IID_ITLegacyWaveSupport = {0x207823EA, 0xE252, 0x11D2, [0xB7, 0x7E, 0x00, 0x80, 0xC7, 0x13, 0x53, 0x81]}; + const IID IID_ITLocalParticipant = {0x39CBF055, 0xF77A, 0x11D2, [0xA8, 0x24, 0x00, 0xC0, 0x4F, 0x8E, 0xF6, 0xE3]}; + const IID IID_ITLocationInfo = {0x0C4D8EFF, 0x8DDB, 0x11D1, [0xA0, 0x9E, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_ITMedia = {0x0CC1F053, 0xCAEB, 0x11D0, [0x8D, 0x58, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID IID_ITMediaCollection = {0x6A8E16A2, 0x0ABC, 0x11D1, [0x97, 0x6D, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID IID_ITMediaControl = {0xC445DDE8, 0x5199, 0x4BC7, [0x98, 0x07, 0x5F, 0xFB, 0x92, 0xE4, 0x2E, 0x09]}; + const IID IID_ITMediaPlayback = {0x627E8AE6, 0xAE4C, 0x4A69, [0xBB, 0x63, 0x2A, 0xD6, 0x25, 0x40, 0x4B, 0x77]}; + const IID IID_ITMediaRecord = {0xF5DD4592, 0x5476, 0x4CC1, [0x9D, 0x4D, 0xFA, 0xD3, 0xEE, 0xFE, 0x7D, 0xB2]}; + const IID IID_ITMediaSupport = {0xB1EFC384, 0x9355, 0x11D0, [0x83, 0x5C, 0x00, 0xAA, 0x00, 0x3C, 0xCA, 0xBD]}; + const IID IID_ITMSPAddress = {0xEE3BD600, 0x3868, 0x11D2, [0xA0, 0x45, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITMultiTrackTerminal = {0xFE040091, 0xADE8, 0x4072, [0x95, 0xC9, 0xBF, 0x7D, 0xE8, 0xC5, 0x4B, 0x44]}; + const IID IID_ITParticipant = {0x5899B820, 0x5A34, 0x11D2, [0x95, 0xA0, 0x00, 0xA0, 0x24, 0x4D, 0x22, 0x98]}; + const IID IID_ITParticipantControl = {0xD2EE6684, 0x5A34, 0x11D2, [0x95, 0xA0, 0x00, 0xA0, 0x24, 0x4D, 0x22, 0x98]}; + const IID IID_ITParticipantEvent = {0x8BB35070, 0x2DAD, 0x11D3, [0xA5, 0x80, 0x00, 0xC0, 0x4F, 0x8E, 0xF6, 0xE3]}; + const IID IID_ITParticipantSubStreamControl = {0x2C679108, 0x5A35, 0x11D2, [0x95, 0xA0, 0x00, 0xA0, 0x24, 0x4D, 0x22, 0x98]}; + const IID IID_ITPhone = {0x09D48DB4, 0x10CC, 0x4388, [0x9D, 0xE7, 0xA8, 0x46, 0x56, 0x18, 0x97, 0x5A]}; + const IID IID_ITPhoneDeviceSpecificEvent = {0x63FFB2A6, 0x872B, 0x4CD3, [0xA5, 0x01, 0x32, 0x6E, 0x8F, 0xB4, 0x0A, 0xF7]}; + const IID IID_ITPhoneEvent = {0x8F942DD8, 0x64ED, 0x4AAF, [0xA7, 0x7D, 0xB2, 0x3D, 0xB0, 0x83, 0x7E, 0xAD]}; + const IID IID_ITPluggableTerminalClassInfo = {0x41757F4A, 0xCF09, 0x4B34, [0xBC, 0x96, 0x0A, 0x79, 0xD2, 0x39, 0x00, 0x76]}; + const IID IID_ITPluggableTerminalClassRegistrat = {0x924A3723, 0xA00B, 0x4F5F, [0x9F, 0xEE, 0x8E, 0x9A, 0xEB, 0x9E, 0x82, 0xAA]}; + const IID IID_ITPluggableTerminalEventSink = {0x6E0887BE, 0xBA1A, 0x492E, [0xBD, 0x10, 0x40, 0x20, 0xEC, 0x5E, 0x33, 0xE0]}; + const IID IID_ITPluggableTerminalEventSinkRegis = {0xF7115709, 0xA216, 0x4957, [0xA7, 0x59, 0x06, 0x0A, 0xB3, 0x2A, 0x90, 0xD1]}; + const IID IID_ITPluggableTerminalInitializatio = {0xAED6483C, 0x3304, 0x11D2, [0x86, 0xF1, 0x00, 0x60, 0x08, 0xB0, 0xE5, 0xD2]}; + const IID IID_ITPluggableTerminalSuperclassInf = {0x6D54E42C, 0x4625, 0x4359, [0xA6, 0xF7, 0x63, 0x19, 0x99, 0x10, 0x7E, 0x05]}; + const IID IID_ITPluggableTerminalSuperclassRegi = {0x60D3C08A, 0xC13E, 0x4195, [0x9A, 0xB0, 0x8D, 0xE7, 0x68, 0x09, 0x0F, 0x25]}; + const IID IID_ITPrivateEvent = {0x0E269CD0, 0x10D4, 0x4121, [0x9C, 0x22, 0x9C, 0x85, 0xD6, 0x25, 0x65, 0x0D]}; + const IID IID_ITQOSApplicationID = {0xE8C89D27, 0xA3BD, 0x47D5, [0xA6, 0xFC, 0xD2, 0xAE, 0x40, 0xCD, 0xBC, 0x6E]}; + const IID IID_ITQOSEvent = {0xCFA3357C, 0xAD77, 0x11D1, [0xBB, 0x68, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITQueue = {0x5AFC3149, 0x4BCC, 0x11D1, [0xBF, 0x80, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_ITQueueEvent = {0x297F3033, 0xBD11, 0x11D1, [0xA0, 0xA7, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_ITrackFile = {0x8790C948, 0xA30B, 0x11D0, [0x8C, 0xAB, 0x00, 0xC0, 0x4F, 0xD9, 0x0F, 0x85]}; + const IID IID_ITransaction = {0x0FB15084, 0xAF41, 0x11CE, [0xBD, 0x2B, 0x20, 0x4C, 0x4F, 0x4F, 0x50, 0x20]}; + const IID IID_ITransaction2 = {0x34021548, 0x0065, 0x11D3, [0xBA, 0xC1, 0x00, 0xC0, 0x4F, 0x79, 0x7B, 0xE2]}; + const IID IID_ITransactionCloner = {0x02656950, 0x2152, 0x11D0, [0x94, 0x4C, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x6E]}; + const IID IID_ITransactionDispenser = {0x3A6AD9E1, 0x23B9, 0x11CF, [0xAD, 0x60, 0x00, 0xAA, 0x00, 0xA7, 0x4C, 0xCD]}; + const IID IID_ITransactionJoin = {0x0C733A5E, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ITransactionLocal = {0x0C733A5F, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ITransactionObject = {0x0C733A60, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ITransactionOptions = {0x3A6AD9E0, 0x23B9, 0x11CF, [0xAD, 0x60, 0x00, 0xAA, 0x00, 0xA7, 0x4C, 0xCD]}; + const IID IID_ITransactionOutcomeEvents = {0x3A6AD9E2, 0x23B9, 0x11CF, [0xAD, 0x60, 0x00, 0xAA, 0x00, 0xA7, 0x4C, 0xCD]}; + const IID IID_ITransmt = {0xB3C9F150, 0xB593, 0x11CE, [0xB5, 0xB0, 0x00, 0xAA, 0x00, 0x6C, 0xB3, 0x7D]}; + const IID IID_ITravelEntry = {0xF46EDB3B, 0xBC2F, 0x11D0, [0x94, 0x12, 0x00, 0xAA, 0x00, 0xA3, 0xEB, 0xD3]}; + const IID IID_ITravelLog = {0x66A9CB08, 0x4802, 0x11D2, [0xA5, 0x61, 0x00, 0xA0, 0xC9, 0x2D, 0xBF, 0xE8]}; + const IID IID_ITravelLogClient = {0x3050F67A, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ITravelLogClient2 = {0x0AD364CE, 0xADCB, 0x11D3, [0x82, 0x69, 0x00, 0x80, 0x5F, 0xC7, 0x32, 0xC0]}; + const IID IID_ITravelLogEntry = {0x7EBFDD87, 0xAD18, 0x11D3, [0xA4, 0xC5, 0x00, 0xC0, 0x4F, 0x72, 0xD6, 0xB8]}; + const IID IID_ITravelLogEx = {0x3050F679, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_ITravelLogStg = {0x7EBFDD80, 0xAD18, 0x11D3, [0xA4, 0xC5, 0x00, 0xC0, 0x4F, 0x72, 0xD6, 0xB8]}; + const IID IID_ITRendezvous = {0x34621D6B, 0x6CFF, 0x11D1, [0xAF, 0xF7, 0x00, 0xC0, 0x4F, 0xC3, 0x1F, 0xEE]}; + const IID IID_ITRequest = {0xAC48FFDF, 0xF8C4, 0x11D1, [0xA0, 0x30, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITRequestEvent = {0xAC48FFDE, 0xF8C4, 0x11D1, [0xA0, 0x30, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITridentEventSink = {0x1DC9CA50, 0x06EF, 0x11D2, [0x84, 0x15, 0x00, 0x60, 0x08, 0xC3, 0xFB, 0xFC]}; + const IID IID_ITrkForceOwnership = {0xA2531F44, 0xC67D, 0x11D0, [0x8C, 0xB1, 0x00, 0xC0, 0x4F, 0xD9, 0x0F, 0x85]}; + const IID IID_ITrkRestoreNotify = {0xD0056F6B, 0xE2A0, 0x11D0, [0xB1, 0xC2, 0x00, 0xC0, 0x4F, 0xB9, 0x38, 0x6D]}; + const IID IID_ITrkRestoreParser = {0x755939E3, 0xE381, 0x11D0, [0xB1, 0xC5, 0x00, 0xC0, 0x4F, 0xB9, 0x38, 0x6D]}; + const IID IID_ITrusteeAdmin = {0x0C733AA1, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ITrusteeGroupAdmin = {0x0C733AA2, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_ITScriptableAudioFormat = {0xB87658BD, 0x3C59, 0x4F64, [0xBE, 0x74, 0xAE, 0xDE, 0x3E, 0x86, 0xA8, 0x1E]}; + const IID IID_ITSdp = {0x9B2719D8, 0xB696, 0x11D0, [0xA4, 0x89, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID IID_ITStaticAudioTerminal = {0xA86B7871, 0xD14C, 0x48E6, [0x92, 0x2E, 0xA8, 0xD1, 0x5F, 0x98, 0x48, 0x00]}; + const IID IID_ITStream = {0xEE3BD605, 0x3868, 0x11D2, [0xA0, 0x45, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITStreamControl = {0xEE3BD604, 0x3868, 0x11D2, [0xA0, 0x45, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITStreamQualityControl = {0x6C0AB6C2, 0x21E3, 0x11D3, [0xA5, 0x77, 0x00, 0xC0, 0x4F, 0x8E, 0xF6, 0xE3]}; + const IID IID_ITSubStream = {0xEE3BD608, 0x3868, 0x11D2, [0xA0, 0x45, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITSubStreamControl = {0xEE3BD607, 0x3868, 0x11D2, [0xA0, 0x45, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITTAPI = {0xB1EFC382, 0x9355, 0x11D0, [0x83, 0x5C, 0x00, 0xAA, 0x00, 0x3C, 0xCA, 0xBD]}; + const IID IID_ITTAPI2 = {0x54FBDC8C, 0xD90F, 0x4DAD, [0x96, 0x95, 0xB3, 0x73, 0x09, 0x7F, 0x09, 0x4B]}; + const IID IID_ITTAPICallCenter = {0x5AFC3154, 0x4BCC, 0x11D1, [0xBF, 0x80, 0x00, 0x80, 0x5F, 0xC1, 0x47, 0xD3]}; + const IID IID_ITTAPIEventNotification = {0xEDDB9426, 0x3B91, 0x11D1, [0x8F, 0x30, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITTAPIObjectEvent = {0xF4854D48, 0x937A, 0x11D1, [0xBB, 0x58, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID IID_ITTAPIObjectEvent2 = {0x359DDA6E, 0x68CE, 0x4383, [0xBF, 0x0B, 0x16, 0x91, 0x33, 0xC4, 0x1B, 0x46]}; + const IID IID_ITTerminal = {0xB1EFC38A, 0x9355, 0x11D0, [0x83, 0x5C, 0x00, 0xAA, 0x00, 0x3C, 0xCA, 0xBD]}; + const IID IID_ITTerminalControl = {0xAED6483B, 0x3304, 0x11D2, [0x86, 0xF1, 0x00, 0x60, 0x08, 0xB0, 0xE5, 0xD2]}; + const IID IID_ITTerminalManager = {0x7170F2DE, 0x9BE3, 0x11D0, [0xA0, 0x09, 0x00, 0xAA, 0x00, 0xB6, 0x05, 0xA4]}; + const IID IID_ITTerminalManager2 = {0xBB33DEC6, 0xB2C7, 0x46E6, [0x9E, 0xD1, 0x49, 0x8B, 0x91, 0xFA, 0x85, 0xAC]}; + const IID IID_ITTerminalSupport = {0xB1EFC385, 0x9355, 0x11D0, [0x83, 0x5C, 0x00, 0xAA, 0x00, 0x3C, 0xCA, 0xBD]}; + const IID IID_ITTerminalSupport2 = {0xF3EB39BC, 0x1B1F, 0x4E99, [0xA0, 0xC0, 0x56, 0x30, 0x5C, 0x4D, 0xD5, 0x91]}; + const IID IID_ITTime = {0x2652BB78, 0x1516, 0x11D1, [0x97, 0x71, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID IID_ITTimeCollection = {0x0CC1F04F, 0xCAEB, 0x11D0, [0x8D, 0x58, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID IID_ITToneDetectionEvent = {0x407E0FAF, 0xD047, 0x4753, [0xB0, 0xC6, 0x8E, 0x06, 0x03, 0x73, 0xFE, 0xCD]}; + const IID IID_ITToneTerminalEvent = {0xE6F56009, 0x611F, 0x4945, [0xBB, 0xD2, 0x2D, 0x0C, 0xE5, 0x61, 0x20, 0x56]}; + const IID IID_ITTTSTerminalEvent = {0xD964788F, 0x95A5, 0x461D, [0xAB, 0x0C, 0xB9, 0x90, 0x0A, 0x6C, 0x27, 0x13]}; + const IID IID_ITypeChangeEvents = {0x00020410, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ITypeComp = {0x00020403, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ITypeFactory = {0x0000002E, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ITypeInfo = {0x00020401, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ITypeInfo2 = {0x00020412, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ITypeLib = {0x00020402, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ITypeLib2 = {0x00020411, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_ITypeMarshal = {0x0000002D, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IUmiADSIPrivate = {0xCFCECB01, 0x3123, 0x4926, [0xB5, 0xE3, 0x62, 0x78, 0x08, 0x27, 0x26, 0x43]}; + const IID IID_IUniformResourceLocatorA = {0xFBF23B80, 0xE3F0, 0x101B, [0x84, 0x88, 0x00, 0xAA, 0x00, 0x3E, 0x56, 0xF8]}; + const IID IID_IUniformResourceLocatorW = {0xCABB0DA0, 0xDA57, 0x11CF, [0x99, 0x74, 0x00, 0x20, 0xAF, 0xD7, 0x97, 0x62]}; + const IID IID_IUnknown = {0x00000000, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IUnsecuredApartment = {0x1CFABA8C, 0x1523, 0x11D1, [0xAD, 0x79, 0x00, 0xC0, 0x4F, 0xD8, 0xFD, 0xFF]}; + const IID IID_IUPnPDescriptionDocument = {0x11D1C1B2, 0x7DAA, 0x4C9E, [0x95, 0x95, 0x7F, 0x82, 0xED, 0x20, 0x6D, 0x1E]}; + const IID IID_IUPnPDescriptionDocumentCallback = {0x77394C69, 0x5486, 0x40D6, [0x9B, 0xC3, 0x49, 0x91, 0x98, 0x3E, 0x02, 0xDA]}; + const IID IID_IUPnPDevice = {0x3D44D0D1, 0x98C9, 0x4889, [0xAC, 0xD1, 0xF9, 0xD6, 0x74, 0xBF, 0x22, 0x21]}; + const IID IID_IUPnPDeviceControl = {0x204810BA, 0x73B2, 0x11D4, [0xBF, 0x42, 0x00, 0xB0, 0xD0, 0x11, 0x8B, 0x56]}; + const IID IID_IUPnPDeviceDocumentAccess = {0xE7772804, 0x3287, 0x418E, [0x90, 0x72, 0xCF, 0x2B, 0x47, 0x23, 0x89, 0x81]}; + const IID IID_IUPnPDeviceFinder = {0xADDA3D55, 0x6F72, 0x4319, [0xBF, 0xF9, 0x18, 0x60, 0x0A, 0x53, 0x9B, 0x10]}; + const IID IID_IUPnPDeviceFinderAddCallbackWithI = {0x983DFC0B, 0x1796, 0x44DF, [0x89, 0x75, 0xCA, 0x54, 0x5B, 0x62, 0x0E, 0xE5]}; + const IID IID_IUPnPDeviceFinderCallback = {0x415A984A, 0x88B3, 0x49F3, [0x92, 0xAF, 0x05, 0x08, 0xBE, 0xDF, 0x0D, 0x6C]}; + const IID IID_IUPnPDeviceHostICSSupport = {0x3FFC5AE5, 0xA66B, 0x499C, [0xA1, 0x80, 0xC7, 0x39, 0x3D, 0xB6, 0xBA, 0x8D]}; + const IID IID_IUPnPDeviceHostSetup = {0x6BD34909, 0x54E7, 0x4FBF, [0x85, 0x62, 0x7B, 0x89, 0x70, 0x9A, 0x58, 0x9A]}; + const IID IID_IUPnPDeviceProvider = {0x204810B8, 0x73B2, 0x11D4, [0xBF, 0x42, 0x00, 0xB0, 0xD0, 0x11, 0x8B, 0x56]}; + const IID IID_IUPnPDevices = {0xFDBC0C73, 0xBDA3, 0x4C66, [0xAC, 0x4F, 0xF2, 0xD9, 0x6F, 0xDA, 0xD6, 0x8C]}; + const IID IID_IUPnPEventSink = {0x204810B4, 0x73B2, 0x11D4, [0xBF, 0x42, 0x00, 0xB0, 0xD0, 0x11, 0x8B, 0x56]}; + const IID IID_IUPnPEventSource = {0x204810B5, 0x73B2, 0x11D4, [0xBF, 0x42, 0x00, 0xB0, 0xD0, 0x11, 0x8B, 0x56]}; + const IID IID_IUPnPNAT = {0xB171C812, 0xCC76, 0x485A, [0x94, 0xD8, 0xB6, 0xB3, 0xA2, 0x79, 0x4E, 0x99]}; + const IID IID_IUPnPPrivateCallbackHelper = {0x8DCC8327, 0xDBE9, 0x48E6, [0x84, 0x6C, 0x33, 0x72, 0x58, 0x65, 0xD5, 0x0C]}; + const IID IID_IUPnPPrivateDocumentCallbackHelp = {0x19432A8E, 0x4A32, 0x4860, [0xB8, 0xFB, 0x95, 0xB1, 0x11, 0x7C, 0xD4, 0xE5]}; + const IID IID_IUPnPPrivateServiceHelper2 = {0x340F4076, 0x6856, 0x48F9, [0xB3, 0xC4, 0x97, 0xB9, 0x1B, 0x68, 0xD7, 0x7E]}; + const IID IID_IUPnPRegistrar = {0x204810B6, 0x73B2, 0x11D4, [0xBF, 0x42, 0x00, 0xB0, 0xD0, 0x11, 0x8B, 0x56]}; + const IID IID_IUPnPReregistrar = {0x204810B7, 0x73B2, 0x11D4, [0xBF, 0x42, 0x00, 0xB0, 0xD0, 0x11, 0x8B, 0x56]}; + const IID IID_IUPnPService = {0xA295019C, 0xDC65, 0x47DD, [0x90, 0xDC, 0x7F, 0xE9, 0x18, 0xA1, 0xAB, 0x44]}; + const IID IID_IUPnPServiceCallback = {0x31FADCA9, 0xAB73, 0x464B, [0xB6, 0x7D, 0x5C, 0x1D, 0x0F, 0x83, 0xC8, 0xB8]}; + const IID IID_IUPnPServiceCallbackPrivate = {0x24EA2515, 0xF612, 0x4528, [0xBA, 0x82, 0x7B, 0xD3, 0xDB, 0xBA, 0xD3, 0x03]}; + const IID IID_IUPnPServices = {0x3F8C8E9E, 0x9A7A, 0x4DC8, [0xBC, 0x41, 0xFF, 0x31, 0xFA, 0x37, 0x49, 0x56]}; + const IID IID_IUrlHistoryNotify = {0xBC40BEC1, 0xC493, 0x11D0, [0x83, 0x1B, 0x00, 0xC0, 0x4F, 0xD5, 0xAE, 0x38]}; + const IID IID_IUrlHistoryStg = {0x3C374A41, 0xBAE4, 0x11CF, [0xBF, 0x7D, 0x00, 0xAA, 0x00, 0x69, 0x46, 0xEE]}; + const IID IID_IUrlHistoryStg2 = {0xAFA0DC11, 0xC313, 0x11D0, [0x83, 0x1A, 0x00, 0xC0, 0x4F, 0xD5, 0xAE, 0x38]}; + const IID IID_IUrlMon = {0x00000026, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IURLSearchHook = {0xAC60F6A0, 0x0FD9, 0x11D0, [0x99, 0xCB, 0x00, 0xC0, 0x4F, 0xD6, 0x44, 0x97]}; + const IID IID_IURLSearchHook2 = {0x5EE44DA4, 0x6D32, 0x46E3, [0x86, 0xBC, 0x07, 0x54, 0x0D, 0xED, 0xD0, 0xE0]}; + const IID IID_IUrlTrackingStg = {0xF2F8CBB3, 0xB040, 0x11D0, [0xBB, 0x16, 0x00, 0xC0, 0x4F, 0xB6, 0x6F, 0x63]}; + const IID IID_IUserEventTimer = {0x0F504B94, 0x6E42, 0x42E6, [0x99, 0xE0, 0xE2, 0x0F, 0xAF, 0xE5, 0x2A, 0xB4]}; + const IID IID_IUserEventTimerCallback = {0xE9EAD8E6, 0x2A25, 0x410E, [0x9B, 0x58, 0xA9, 0xFB, 0xEF, 0x1D, 0xD1, 0xA2]}; + const IID IID_IUserNotification = {0xBA9711BA, 0x5893, 0x4787, [0xA7, 0xE1, 0x41, 0x27, 0x71, 0x51, 0x55, 0x0B]}; + const IID IID_IUtilityButton = {0x3050F6AF, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID IID_IVariantChangeType = {0xA6EF9862, 0xC720, 0x11D0, [0x93, 0x37, 0x00, 0xA0, 0xC9, 0x0D, 0xCA, 0xA9]}; + const IID IID_IVersionHost = {0x667115AC, 0xDC02, 0x11D1, [0xBA, 0x57, 0x00, 0xC0, 0x4F, 0xC2, 0x04, 0x0E]}; + const IID IID_IVersionVector = {0x4EB01410, 0xDB1A, 0x11D1, [0xBA, 0x53, 0x00, 0xC0, 0x4F, 0xC2, 0x04, 0x0E]}; + const IID IID_IViewChapter = {0x0C733A98, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IViewFilter = {0x0C733A9B, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IViewObject = {0x0000010D, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IViewObject2 = {0x00000127, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IViewObjectEx = {0x3AF24292, 0x0C96, 0x11CE, [0xA0, 0xCF, 0x00, 0xAA, 0x00, 0x60, 0x0A, 0xB8]}; + const IID IID_IViewRowset = {0x0C733A97, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IViewSort = {0x0C733A9A, 0x2A1C, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID IID_IVirusScanEngine = {0x083DB180, 0xB4A8, 0x11CF, [0xAA, 0xFA, 0x00, 0xAA, 0x00, 0xB6, 0x01, 0x5C]}; + const IID IID_IVirusScanner = {0x4589BEE0, 0xB4B1, 0x11CF, [0xAA, 0xFA, 0x00, 0xAA, 0x00, 0xB6, 0x01, 0x5C]}; + const IID IID_IWaitMultiple = {0x0000002B, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IWbemAddressResolution = {0xF7CE2E12, 0x8C90, 0x11D1, [0x9E, 0x7B, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8]}; + const IID IID_IWbemBackupRestore = {0xC49E32C7, 0xBC8B, 0x11D2, [0x85, 0xD4, 0x00, 0x10, 0x5A, 0x1F, 0x83, 0x04]}; + const IID IID_IWbemBackupRestoreEx = {0xA359DEC5, 0xE813, 0x4834, [0x8A, 0x2A, 0xBA, 0x7F, 0x1D, 0x77, 0x7D, 0x76]}; + const IID IID_IWbemCallResult = {0x44ACA675, 0xE8FC, 0x11D0, [0xA0, 0x7C, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20]}; + const IID IID_IWbemCallStatus = {0x4212DC47, 0x142E, 0x4C6C, [0xBC, 0x49, 0x6C, 0xA2, 0x32, 0xDD, 0x09, 0x59]}; + const IID IID_IWbemClassObject = {0xDC12A681, 0x737F, 0x11CF, [0x88, 0x4D, 0x00, 0xAA, 0x00, 0x4B, 0x2E, 0x24]}; + const IID IID_IWbemClientConnectionTransport = {0xA889C72A, 0xFCC1, 0x4A9E, [0xAF, 0x61, 0xED, 0x07, 0x13, 0x33, 0xFB, 0x5B]}; + const IID IID_IWbemClientTransport = {0xF7CE2E11, 0x8C90, 0x11D1, [0x9E, 0x7B, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8]}; + const IID IID_IWbemConfigure = {0x9A368276, 0x26CF, 0x11D0, [0xAD, 0x3C, 0x00, 0xC0, 0x4F, 0xD8, 0xFD, 0xFF]}; + const IID IID_IWbemConfigureRefresher = {0x49353C92, 0x516B, 0x11D1, [0xAE, 0xA6, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20]}; + const IID IID_IWbemConnectorLogin = {0xD8EC9CB1, 0xB135, 0x4F10, [0x8B, 0x1B, 0xC7, 0x18, 0x8B, 0xB0, 0xD1, 0x86]}; + const IID IID_IWbemConstructClassObject = {0x9EF76194, 0x70D5, 0x11D1, [0xAD, 0x90, 0x00, 0xC0, 0x4F, 0xD8, 0xFD, 0xFF]}; + const IID IID_IWbemContext = {0x44ACA674, 0xE8FC, 0x11D0, [0xA0, 0x7C, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20]}; + const IID IID_IWbemDecoupledBasicEventProvider = {0x86336D20, 0xCA11, 0x4786, [0x9E, 0xF1, 0xBC, 0x8A, 0x94, 0x6B, 0x42, 0xFC]}; + const IID IID_IWbemDecoupledEventSink = {0xCD94EBF2, 0xE622, 0x11D2, [0x9C, 0xB3, 0x00, 0x10, 0x5A, 0x1F, 0x48, 0x01]}; + const IID IID_IWbemDecoupledRegistrar = {0x1005CBCF, 0xE64F, 0x4646, [0xBC, 0xD3, 0x3A, 0x08, 0x9D, 0x8A, 0x84, 0xB4]}; + const IID IID_IWbemEventConsumerProvider = {0xE246107A, 0xB06E, 0x11D0, [0xAD, 0x61, 0x00, 0xC0, 0x4F, 0xD8, 0xFD, 0xFF]}; + const IID IID_IWbemEventConsumerProviderEx = {0x17CF534A, 0xD8A3, 0x4AD0, [0xAC, 0x92, 0x5E, 0x3D, 0x01, 0x71, 0x71, 0x51]}; + const IID IID_IWbemEventProvider = {0xE245105B, 0xB06E, 0x11D0, [0xAD, 0x61, 0x00, 0xC0, 0x4F, 0xD8, 0xFD, 0xFF]}; + const IID IID_IWbemEventProviderQuerySink = {0x580ACAF8, 0xFA1C, 0x11D0, [0xAD, 0x72, 0x00, 0xC0, 0x4F, 0xD8, 0xFD, 0xFF]}; + const IID IID_IWbemEventProviderSecurity = {0x631F7D96, 0xD993, 0x11D2, [0xB3, 0x39, 0x00, 0x10, 0x5A, 0x1F, 0x4A, 0xAF]}; + const IID IID_IWbemEventSink = {0x3AE0080A, 0x7E3A, 0x4366, [0xBF, 0x89, 0x0F, 0xEE, 0xDC, 0x93, 0x16, 0x59]}; + const IID IID_IWbemHiPerfEnum = {0x2705C288, 0x79AE, 0x11D2, [0xB3, 0x48, 0x00, 0x10, 0x5A, 0x1F, 0x81, 0x77]}; + const IID IID_IWbemHiPerfProvider = {0x49353C93, 0x516B, 0x11D1, [0xAE, 0xA6, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20]}; + const IID IID_IWbemLevel1Login = {0xF309AD18, 0xD86A, 0x11D0, [0xA0, 0x75, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20]}; + const IID IID_IWbemLocator = {0xDC12A687, 0x737F, 0x11CF, [0x88, 0x4D, 0x00, 0xAA, 0x00, 0x4B, 0x2E, 0x24]}; + const IID IID_IWbemObjectAccess = {0x49353C9A, 0x516B, 0x11D1, [0xAE, 0xA6, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20]}; + const IID IID_IWbemObjectSink = {0x7C857801, 0x7381, 0x11CF, [0x88, 0x4D, 0x00, 0xAA, 0x00, 0x4B, 0x2E, 0x24]}; + const IID IID_IWbemObjectTextSrc = {0xBFBF883A, 0xCAD7, 0x11D3, [0xA1, 0x1B, 0x00, 0x10, 0x5A, 0x1F, 0x51, 0x5A]}; + const IID IID_IWbemPath = {0x3BC15AF2, 0x736C, 0x477E, [0x9E, 0x51, 0x23, 0x8A, 0xF8, 0x66, 0x7D, 0xCC]}; + const IID IID_IWbemPathKeyList = {0x9AE62877, 0x7544, 0x4BB0, [0xAA, 0x26, 0xA1, 0x38, 0x24, 0x65, 0x9E, 0xD6]}; + const IID IID_IWbemPropertyProvider = {0xCE61E841, 0x65BC, 0x11D0, [0xB6, 0xBD, 0x00, 0xAA, 0x00, 0x32, 0x40, 0xC7]}; + const IID IID_IWbemProviderIdentity = {0x631F7D97, 0xD993, 0x11D2, [0xB3, 0x39, 0x00, 0x10, 0x5A, 0x1F, 0x4A, 0xAF]}; + const IID IID_IWbemProviderInit = {0x1BE41572, 0x91DD, 0x11D1, [0xAE, 0xB2, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20]}; + const IID IID_IWbemProviderInitSink = {0x1BE41571, 0x91DD, 0x11D1, [0xAE, 0xB2, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20]}; + const IID IID_IWbemQualifierSet = {0xDC12A680, 0x737F, 0x11CF, [0x88, 0x4D, 0x00, 0xAA, 0x00, 0x4B, 0x2E, 0x24]}; + const IID IID_IWbemQuery = {0x81166F58, 0xDD98, 0x11D3, [0xA1, 0x20, 0x00, 0x10, 0x5A, 0x1F, 0x51, 0x5A]}; + const IID IID_IWbemRawSdAccessor = {0xC1E2D759, 0xCABD, 0x11D3, [0xA1, 0x1B, 0x00, 0x10, 0x5A, 0x1F, 0x51, 0x5A]}; + const IID IID_IWbemRefresher = {0x49353C99, 0x516B, 0x11D1, [0xAE, 0xA6, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20]}; + const IID IID_IWbemServices = {0x9556DC99, 0x828C, 0x11CF, [0xA3, 0x7E, 0x00, 0xAA, 0x00, 0x32, 0x40, 0xC7]}; + const IID IID_IWbemShutdown = {0xB7B31DF9, 0xD515, 0x11D3, [0xA1, 0x1C, 0x00, 0x10, 0x5A, 0x1F, 0x51, 0x5A]}; + const IID IID_IWbemStatusCodeText = {0xEB87E1BC, 0x3233, 0x11D2, [0xAE, 0xC9, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20]}; + const IID IID_IWbemTransport = {0x553FE584, 0x2156, 0x11D0, [0xB6, 0xAE, 0x00, 0xAA, 0x00, 0x32, 0x40, 0xC7]}; + const IID IID_IWbemUnboundObjectSink = {0xE246107B, 0xB06E, 0x11D0, [0xAD, 0x61, 0x00, 0xC0, 0x4F, 0xD8, 0xFD, 0xFF]}; + const IID IID_IWBScriptControl = {0xA5170870, 0x0CF8, 0x11D1, [0x8B, 0x91, 0x00, 0x80, 0xC7, 0x44, 0xF3, 0x89]}; + const IID IID_IWCContextMenuCallback = {0x97DEDE64, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_IWCPropertySheetCallback = {0x97DEDE60, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_IWCWizard97Callback = {0x97DEDE67, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_IWCWizardCallback = {0x97DEDE62, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_IWebBridge = {0xAE24FDAD, 0x03C6, 0x11D1, [0x8B, 0x76, 0x00, 0x80, 0xC7, 0x44, 0xF3, 0x89]}; + const IID IID_IWebBrowser = {0xEAB22AC1, 0x30C1, 0x11CF, [0xA7, 0xEB, 0x00, 0x00, 0xC0, 0x5B, 0xAE, 0x0B]}; + const IID IID_IWebBrowser2 = {0xD30C1661, 0xCDAF, 0x11D0, [0x8A, 0x3E, 0x00, 0xC0, 0x4F, 0xC9, 0xE2, 0x6E]}; + const IID IID_IWebBrowserApp = {0x0002DF05, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID IID_IWebWizardExtension = {0x0E6B3F66, 0x98D1, 0x48C0, [0xA2, 0x22, 0xFB, 0xDE, 0x74, 0xE2, 0xFB, 0xC5]}; + const IID IID_IWebWizardHost = {0x18BCC359, 0x4990, 0x4BFB, [0xB9, 0x51, 0x3C, 0x83, 0x70, 0x2B, 0xE5, 0xF9]}; + const IID IID_IWEExtendContextMenu = {0x97DEDE65, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_IWEExtendPropertySheet = {0x97DEDE61, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_IWEExtendWizard = {0x97DEDE63, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_IWEExtendWizard97 = {0x97DEDE68, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_IWEInvokeCommand = {0x97DEDE66, 0xFC6B, 0x11CF, [0xB5, 0xF5, 0x00, 0xA0, 0xC9, 0x0A, 0xB5, 0x05]}; + const IID IID_Iwfolders = {0xBAE31F98, 0x1B81, 0x11D2, [0xA9, 0x7A, 0x00, 0xC0, 0x4F, 0x8E, 0xCB, 0x02]}; + const IID IID_IWindowForBindingUI = {0x79EAC9D5, 0xBAFA, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IWinInetHttpInfo = {0x79EAC9D8, 0xBAFA, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IWinInetInfo = {0x79EAC9D6, 0xBAFA, 0x11CE, [0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B]}; + const IID IID_IWizardExtension = {0xC02EA696, 0x86CC, 0x491E, [0x9B, 0x23, 0x74, 0x39, 0x4A, 0x04, 0x44, 0xA8]}; + const IID IID_IWizardSite = {0x88960F5B, 0x422F, 0x4E7B, [0x80, 0x13, 0x73, 0x41, 0x53, 0x81, 0xC3, 0xC3]}; + const IID IID_IWMIExtension = {0xADC1F06E, 0x5C7E, 0x11D2, [0x8B, 0x74, 0x00, 0x10, 0x4B, 0x2A, 0xFB, 0x41]}; + const IID IID_IWordBreaker = {0xD53552C8, 0x77E3, 0x101A, [0xB5, 0x52, 0x08, 0x00, 0x2B, 0x33, 0xB0, 0xE6]}; + const IID IID_IWordSink = {0xCC907054, 0xC058, 0x101A, [0xB5, 0x54, 0x08, 0x00, 0x2B, 0x33, 0xB0, 0xE6]}; + const IID IID_IWrappedProtocol = {0x53C84785, 0x8425, 0x4DC5, [0x97, 0x1B, 0xE5, 0x8D, 0x9C, 0x19, 0xF9, 0xB6]}; + const IID IID_IXMLAttribute = {0xD4D4A0FC, 0x3B73, 0x11D1, [0xB2, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0x96]}; + const IID IID_IXMLDocument = {0xF52E2B61, 0x18A1, 0x11D1, [0xB1, 0x05, 0x00, 0x80, 0x5F, 0x49, 0x91, 0x6B]}; + const IID IID_IXMLDocument2 = {0x2B8DE2FE, 0x8D2D, 0x11D1, [0xB2, 0xFC, 0x00, 0xC0, 0x4F, 0xD9, 0x15, 0xA9]}; + const IID IID_IXMLDOMAttribute = {0x2933BF85, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID IID_IXMLDOMCDATASection = {0x2933BF8A, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID IID_IXMLDOMCharacterData = {0x2933BF84, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID IID_IXMLDOMComment = {0x2933BF88, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID IID_IXMLDOMDocument = {0x2933BF81, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID IID_IXMLDOMDocumentFragment = {0x3EFAA413, 0x272F, 0x11D2, [0x83, 0x6F, 0x00, 0x00, 0xF8, 0x7A, 0x77, 0x82]}; + const IID IID_IXMLDOMDocumentType = {0x2933BF8B, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID IID_IXMLDOMElement = {0x2933BF86, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID IID_IXMLDOMEntity = {0x2933BF8D, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID IID_IXMLDOMEntityReference = {0x2933BF8E, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID IID_IXMLDOMImplementation = {0x2933BF8F, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID IID_IXMLDOMNamedNodeMap = {0x2933BF83, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID IID_IXMLDOMNode = {0x2933BF80, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID IID_IXMLDOMNodeList = {0x2933BF82, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID IID_IXMLDOMNotation = {0x2933BF8C, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID IID_IXMLDOMParseError = {0x3EFAA426, 0x272F, 0x11D2, [0x83, 0x6F, 0x00, 0x00, 0xF8, 0x7A, 0x77, 0x82]}; + const IID IID_IXMLDOMProcessingInstruction = {0x2933BF89, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID IID_IXMLDOMText = {0x2933BF87, 0x7B36, 0x11D2, [0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60]}; + const IID IID_IXMLDSOControl = {0x310AFA62, 0x0575, 0x11D2, [0x9C, 0xA9, 0x00, 0x60, 0xB0, 0xEC, 0x3D, 0x39]}; + const IID IID_IXMLElement = {0x3F7F31AC, 0xE15F, 0x11D0, [0x9C, 0x25, 0x00, 0xC0, 0x4F, 0xC9, 0x9C, 0x8E]}; + const IID IID_IXMLElement2 = {0x2B8DE2FF, 0x8D2D, 0x11D1, [0xB2, 0xFC, 0x00, 0xC0, 0x4F, 0xD9, 0x15, 0xA9]}; + const IID IID_IXMLElementCollection = {0x65725580, 0x9B5D, 0x11D0, [0x9B, 0xFE, 0x00, 0xC0, 0x4F, 0xC9, 0x9C, 0x8E]}; + const IID IID_IXMLError = {0x948C5AD3, 0xC58D, 0x11D0, [0x9C, 0x0B, 0x00, 0xC0, 0x4F, 0xC9, 0x9C, 0x8E]}; + const IID IID_IXMLGenericParse = {0xE4E23071, 0x4D07, 0x11D2, [0xAE, 0x76, 0x00, 0x80, 0xC7, 0x3B, 0xC1, 0x99]}; + const IID IID_IXMLHttpRequest = {0xED8C108D, 0x4349, 0x11D2, [0x91, 0xA4, 0x00, 0xC0, 0x4F, 0x79, 0x69, 0xE8]}; + const IID IID_IXMLNodeFactory = {0xD242361F, 0x51A0, 0x11D2, [0x9C, 0xAF, 0x00, 0x60, 0xB0, 0xEC, 0x3D, 0x39]}; + const IID IID_IXMLNodeSource = {0xD242361D, 0x51A0, 0x11D2, [0x9C, 0xAF, 0x00, 0x60, 0xB0, 0xEC, 0x3D, 0x39]}; + const IID IID_IXMLParser = {0xD242361E, 0x51A0, 0x11D2, [0x9C, 0xAF, 0x00, 0x60, 0xB0, 0xEC, 0x3D, 0x39]}; + const IID IID_IXTLRuntime = {0x3EFAA425, 0x272F, 0x11D2, [0x83, 0x6F, 0x00, 0x00, 0xF8, 0x7A, 0x77, 0x82]}; + const IID IID_StdOle = {0x00020430, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID KSDATAFORMAT_SUBTYPE_DIRECTMUSIC = {0x1A82F8BC, 0x3F8B, 0x11D2, [0xB7, 0x74, 0x00, 0x60, 0x08, 0x33, 0x16, 0xC1]}; + const IID KSDATAFORMAT_SUBTYPE_MIDI = {0x1D262760, 0xE957, 0x11CF, [0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00]}; + const IID LIBID_Accessibility = {0x1EA4DBF0, 0x3C3B, 0x11CF, [0x81, 0x0C, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71]}; + const IID LIBID_ActiveIMM = {0x4955DD30, 0xB159, 0x11D0, [0x8F, 0xCF, 0x00, 0xAA, 0x00, 0x6B, 0xCC, 0x59]}; + const IID LIBID_ADs = {0x97D25DB0, 0x0363, 0x11CF, [0xAB, 0xC4, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53]}; + const IID LIBID_ALGLib = {0xB6D1D098, 0xE235, 0x4B99, [0xBA, 0x98, 0x7C, 0x62, 0x4F, 0xD8, 0x75, 0xDB]}; + const IID LIBID_AutoDiscovery = {0x4EAFB888, 0x81CB, 0x4EBA, [0xBA, 0xC9, 0xDA, 0x25, 0x4E, 0x57, 0x21, 0xF1]}; + const IID LIBID_BackgroundCopyManager = {0x1DEEB74F, 0x7915, 0x4560, [0xB5, 0x58, 0x91, 0x8C, 0x83, 0xF1, 0x76, 0xA6]}; + const IID LIBID_BackgroundCopyManager1_5 = {0xEA9319EA, 0xC628, 0x480F, [0x83, 0x31, 0x76, 0x8F, 0xAC, 0x39, 0x7E, 0x4E]}; + const IID LIBID_BackgroundCopyQMgr = {0xF5B26DCB, 0xB37E, 0x4D7C, [0xAE, 0x7A, 0x1C, 0xB3, 0xFB, 0xEB, 0x18, 0x3E]}; + const IID LIBID_CHANNELMGR = {0x4804F2E0, 0xD16E, 0x11D0, [0x80, 0x2B, 0x00, 0xC0, 0x4F, 0xD7, 0x5D, 0x13]}; + const IID LIBID_CLADMWIZLib = {0x24F97140, 0x6689, 0x11D1, [0x9A, 0xA7, 0x00, 0xC0, 0x4F, 0xB9, 0x3A, 0x80]}; + const IID LIBID_ClusCfgWizard = {0x6D01FEDC, 0x8D34, 0x4728, [0xAD, 0x0B, 0xB3, 0xA2, 0x1A, 0x10, 0x3B, 0x42]}; + const IID LIBID_CommonControlObjects = {0xBCADA15B, 0xB428, 0x420C, [0x8D, 0x28, 0x02, 0x35, 0x90, 0x92, 0x4C, 0x9F]}; + const IID LIBID_DirectAnimation = {0xBCBB1F74, 0xE384, 0x11D0, [0x9B, 0x99, 0x00, 0xC0, 0x4F, 0xC2, 0xF5, 0x1D]}; + const IID LIBID_DWbemServices_v3 = {0xCB7CA031, 0xF729, 0x11D0, [0x9E, 0x4D, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8]}; + const IID LIBID_DXTMSFTLib = {0x5E77EB03, 0x937C, 0x11D1, [0xB0, 0x47, 0x00, 0xAA, 0x00, 0x3B, 0x60, 0x61]}; + const IID LIBID_DXTRANSLib = {0x54314D1D, 0x35FE, 0x11D1, [0x81, 0xA1, 0x00, 0x00, 0xF8, 0x75, 0x57, 0xDB]}; + const IID LIBID_DXTRANSPLib = {0x527A4DA4, 0x7F2C, 0x11D2, [0xB1, 0x2D, 0x00, 0x00, 0xF8, 0x1F, 0x59, 0x95]}; + const IID LIBID_EventQLib = {0xA70080F2, 0x403B, 0x11D1, [0x88, 0x36, 0x00, 0xA0, 0xC9, 0x49, 0xAC, 0x67]}; + const IID LIBID_IASPolicyLib = {0x6BC096A5, 0x0CE6, 0x11D1, [0xBA, 0xAE, 0x00, 0xC0, 0x4F, 0xC2, 0xE2, 0x0D]}; + const IID LIBID_IEXTagLib = {0x7E8BC440, 0xAEFF, 0x11D1, [0x89, 0xC2, 0x00, 0xC0, 0x4F, 0xB6, 0xBF, 0xC4]}; + const IID LIBID_IMAPILib = {0xC49F2184, 0x50A7, 0x11D3, [0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E]}; + const IID LIBID_ImgUtilLib = {0xCF790840, 0x2DC4, 0x11D0, [0xB7, 0x24, 0x00, 0xAA, 0x00, 0x6C, 0x1A, 0x01]}; + const IID LIBID_ITRKADMNLib = {0xA2531F35, 0xC67D, 0x11D0, [0x8C, 0xB1, 0x00, 0xC0, 0x4F, 0xD9, 0x0F, 0x85]}; + const IID LIBID_McastLib = {0x64217CC0, 0xA285, 0x11D1, [0x86, 0x97, 0x00, 0x60, 0x08, 0xB0, 0xE5, 0xD2]}; + const IID LIBID_MSHTML = {0x3050F1C5, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID LIBID_MSHTMLINTERNAL = {0x3050F7E1, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID LIBID_MSTIME = {0x87C96271, 0xADDB, 0x4745, [0xB2, 0xE8, 0xDF, 0x88, 0xA8, 0x47, 0x2F, 0xD1]}; + const IID LIBID_MSXML = {0xD63E0CE2, 0xA0A2, 0x11D0, [0x9C, 0x02, 0x00, 0xC0, 0x4F, 0xC9, 0x9C, 0x8E]}; + const IID LIBID_MultiLanguage = {0x275C23E0, 0x3747, 0x11D0, [0x9F, 0xEA, 0x00, 0xAA, 0x00, 0x3F, 0x86, 0x46]}; + const IID LIBID_NATUPNPLib = {0x1C565858, 0xF302, 0x471E, [0xB4, 0x09, 0xF1, 0x80, 0xAA, 0x4A, 0xBE, 0xC6]}; + const IID LIBID_NETCONLib = {0x43E734CA, 0x043D, 0x4A70, [0x9A, 0x2C, 0xA8, 0xF2, 0x54, 0x06, 0x3D, 0x91]}; + const IID LIBID_PassiveSink = {0xE002EEEF, 0xE6EA, 0x11D2, [0x9C, 0xB3, 0x00, 0x10, 0x5A, 0x1F, 0x48, 0x01]}; + const IID LIBID_ProcessDebugManagerLib = {0x78A51821, 0x51F4, 0x11D0, [0x8F, 0x20, 0x00, 0x80, 0x5F, 0x2C, 0xD0, 0x64]}; + const IID LIBID_RENDLib = {0xF1029E4D, 0xCB5B, 0x11D0, [0x8D, 0x59, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID LIBID_RTCCORELib = {0xCD260094, 0xDE10, 0x4AEE, [0xAC, 0x73, 0xEF, 0x87, 0xF6, 0xE1, 0x26, 0x83]}; + const IID LIBID_SDOIASLib = {0x81DDF732, 0x4AA8, 0x4A35, [0xBD, 0xFF, 0x8B, 0x42, 0xEF, 0xE7, 0xC6, 0x24]}; + const IID LIBID_SDPBLBLib = {0xC259D79A, 0xC8AB, 0x11D0, [0x8D, 0x58, 0x00, 0xC0, 0x4F, 0xD9, 0x1A, 0xC0]}; + const IID LIBID_SensEvents = {0xD597DEED, 0x5B9F, 0x11D1, [0x8D, 0xD2, 0x00, 0xAA, 0x00, 0x4A, 0xBD, 0x5E]}; + const IID LIBID_SHDocVw = {0xEAB22AC0, 0x30C1, 0x11CF, [0xA7, 0xEB, 0x00, 0x00, 0xC0, 0x5B, 0xAE, 0x0B]}; + const IID LIBID_Shell32 = {0x50A7E9B0, 0x70EF, 0x11D1, [0xB7, 0x5A, 0x00, 0xA0, 0xC9, 0x05, 0x64, 0xFE]}; + const IID LIBID_ShellImageData = {0x0B8AFF06, 0x8DF0, 0x4F13, [0x8E, 0x25, 0x25, 0xB2, 0x31, 0x9C, 0x43, 0x6A]}; + const IID LIBID_ShellObjects = {0x50A7E9B1, 0x70EF, 0x11D1, [0xB7, 0x5A, 0x00, 0xA0, 0xC9, 0x05, 0x64, 0xFE]}; + const IID LIBID_SHGINALib = {0x0A055C02, 0xBABE, 0x4480, [0xBB, 0x7B, 0xA8, 0xEC, 0x72, 0x3C, 0xE9, 0xC0]}; + const IID LIBID_SubscriptionMgr = {0xC54FD88A, 0xFFA1, 0x11D0, [0xBC, 0x5E, 0x00, 0xC0, 0x4F, 0xD9, 0x29, 0xDB]}; + const IID LIBID_TAPI3Lib = {0x21D6D480, 0xA88B, 0x11D0, [0x83, 0xDD, 0x00, 0xAA, 0x00, 0x3C, 0xCA, 0xBD]}; + const IID LIBID_TERMMGRLib = {0x28DCD85B, 0xACA4, 0x11D0, [0xA0, 0x28, 0x00, 0xAA, 0x00, 0xB6, 0x05, 0xA4]}; + const IID LIBID_UPnPHostLib = {0x204810B3, 0x73B2, 0x11D4, [0xBF, 0x42, 0x00, 0xB0, 0xD0, 0x11, 0x8B, 0x56]}; + const IID LIBID_UPNPLib = {0xDB3442A7, 0xA2E9, 0x4A59, [0x9C, 0xB5, 0xF5, 0xC1, 0xA5, 0xD9, 0x01, 0xE5]}; + const IID LIBID_VIRUSSCAN = {0x5F47DB70, 0xD9FE, 0x11D0, [0x95, 0x64, 0x00, 0x60, 0x97, 0x97, 0xEA, 0x4F]}; + const IID LIBID_WbemClient_v1 = {0x7EC196FE, 0x7005, 0x11D1, [0xAD, 0x90, 0x00, 0xC0, 0x4F, 0xD8, 0xFD, 0xFF]}; + const IID LIBID_WbemProviders_v1 = {0x092DF710, 0x7010, 0x11D1, [0xAD, 0x90, 0x00, 0xC0, 0x4F, 0xD8, 0xFD, 0xFF]}; + const IID LIBID_WbemScripting = {0x565783C6, 0xCB41, 0x11D1, [0x8B, 0x02, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6]}; + const IID LIBID_WbemTransports_v1 = {0x027947F3, 0xD731, 0x11CE, [0xA3, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01]}; + const IID LIBID_WbemUtilities_v1 = {0x226C9290, 0xDD96, 0x11D3, [0xA1, 0x20, 0x00, 0x10, 0x5A, 0x1F, 0x51, 0x5A]}; + const IID LIBID_WebCheck = {0x10BD2E25, 0xF235, 0x11CF, [0xB5, 0xDD, 0x00, 0xA0, 0xC9, 0x03, 0x48, 0xEC]}; + const IID LIBID_WMIEXTENSIONLib = {0xE503D000, 0x5C7F, 0x11D2, [0x8B, 0x74, 0x00, 0x10, 0x4B, 0x2A, 0xFB, 0x41]}; + const IID LIBID_XENROLLLib = {0x43F8F27B, 0x7A20, 0x11D0, [0x8F, 0x06, 0x00, 0xC0, 0x4F, 0xC2, 0x95, 0xE1]}; + const IID LIBID_XMLPSR = {0xD242361C, 0x51A0, 0x11D2, [0x9C, 0xAF, 0x00, 0x60, 0xB0, 0xEC, 0x3D, 0x39]}; + const IID MDGUID_MDX = {0xA07CCCD0, 0x8148, 0x11D0, [0x87, 0xBB, 0x00, 0xC0, 0x4F, 0xC3, 0x39, 0x42]}; + const IID MDSCHEMA_ACTIONS = {0xA07CCD08, 0x8148, 0x11D0, [0x87, 0xBB, 0x00, 0xC0, 0x4F, 0xC3, 0x39, 0x42]}; + const IID MDSCHEMA_COMMANDS = {0xA07CCD09, 0x8148, 0x11D0, [0x87, 0xBB, 0x00, 0xC0, 0x4F, 0xC3, 0x39, 0x42]}; + const IID MDSCHEMA_CUBES = {0xC8B522D8, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID MDSCHEMA_DIMENSIONS = {0xC8B522D9, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID MDSCHEMA_FUNCTIONS = {0xA07CCD07, 0x8148, 0x11D0, [0x87, 0xBB, 0x00, 0xC0, 0x4F, 0xC3, 0x39, 0x42]}; + const IID MDSCHEMA_HIERARCHIES = {0xC8B522DA, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID MDSCHEMA_LEVELS = {0xC8B522DB, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID MDSCHEMA_MEASURES = {0xC8B522DC, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID MDSCHEMA_MEMBERS = {0xC8B522DE, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID MDSCHEMA_PROPERTIES = {0xC8B522DD, 0x5CF3, 0x11CE, [0xAD, 0xE5, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D]}; + const IID MDSCHEMA_SETS = {0xA07CCD0B, 0x8148, 0x11D0, [0x87, 0xBB, 0x00, 0xC0, 0x4F, 0xC3, 0x39, 0x42]}; + const IID NAMEDTIMER_DRAW = {0x3050F362, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID NOTFCOOKIE_SCHEDULE_GROUP_DAILY = {0xD34F18B0, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTFCOOKIE_SCHEDULE_GROUP_MANUAL = {0xD34F18B3, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTFCOOKIE_SCHEDULE_GROUP_MONTHLY = {0xD34F18B2, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTFCOOKIE_SCHEDULE_GROUP_WEEKLY = {0xD34F18B1, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_11 = {0xD34F17FB, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_12 = {0xD34F17FC, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_13 = {0xD34F17FD, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_14 = {0xD34F17FE, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_15 = {0xD34F17FF, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_AGENT_INIT = {0x1E4A7390, 0xC70B, 0x11D0, [0x95, 0xF8, 0x00, 0xA0, 0xC9, 0x03, 0x48, 0xEC]}; + const IID NOTIFICATIONTYPE_AGENT_START = {0xD34F17EC, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_ALERT = {0xD34F17E3, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_ANOUNCMENT = {0xD34F17E1, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_BEGIN_REPORT = {0xD34F17EE, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_CONFIG_CHANGED = {0xD34F17F2, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_CONNECT_TO_INTERNET = {0xD34F17F0, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_d = {0xD34F17F8, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_DISCONNECT_FROM_INTE = {0xD34F17F1, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_e = {0xD34F17F9, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_END_REPORT = {0xD34F17EF, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_f = {0xD34F17FA, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_GROUP_DONE = {0xD34F1885, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_GROUP_RESTART = {0xD34F1884, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_GROUP_START = {0xD34F1883, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_i6 = {0xD34F1886, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_i7 = {0xD34F1887, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_i8 = {0xD34F1888, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_i9 = {0xD34F1889, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_iA = {0xD34F188A, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_iB = {0xD34F188B, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_iC = {0xD34F188C, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_iD = {0xD34F188D, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_iE = {0xD34F188E, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_iF = {0xD34F188F, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_INET_IDLE = {0xD34F17E4, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_INET_OFFLINE = {0xD34F17E5, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_INET_ONLINE = {0xD34F17E6, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_ITEM_DONE = {0xD34F1882, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_ITEM_RESTART = {0xD34F1881, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_ITEM_START = {0xD34F1880, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_NULL = {0xD34F17E0, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_PROGRESS_REPORT = {0xD34F17F3, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_START_0 = {0xD34F1800, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_START_1 = {0xD34F1801, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_START_2 = {0xD34F1802, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_START_3 = {0xD34F1803, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_START_4 = {0xD34F1804, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_START_5 = {0xD34F1805, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_START_6 = {0xD34F1806, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_START_7 = {0xD34F1807, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_START_8 = {0xD34F1808, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_START_9 = {0xD34F1809, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_START_A = {0xD34F180A, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_START_B = {0xD34F180B, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_START_C = {0xD34F180C, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_START_D = {0xD34F180D, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_START_E = {0xD34F180E, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_START_F = {0xD34F180F, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_TASK = {0xD34F17E2, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_TASKS_ABORT = {0xD34F17E9, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_TASKS_COMPLETED = {0xD34F17EA, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_TASKS_ERROR = {0xD34F17F7, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_TASKS_PROGRESS = {0xD34F17EB, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_TASKS_RESUME = {0xD34F17E8, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_TASKS_STARTED = {0xD34F17F6, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_TASKS_SUSPEND = {0xD34F17E7, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_USER_IDLE_BEGIN = {0xD34F17F4, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID NOTIFICATIONTYPE_USER_IDLE_END = {0xD34F17F5, 0x576E, 0x11D0, [0xB2, 0x8C, 0x00, 0xC0, 0x4F, 0xD7, 0xCD, 0x22]}; + const IID OLE_DATAPATH_ALLIMAGE = {0x0002DE0E, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_ALLMM = {0x0002DE18, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_ALLTEXT = {0x0002DE1E, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_ANSITEXT = {0x0002DE19, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_AVI = {0x0002DE0F, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_BASICAUDIO = {0x0002DE12, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_BIFF = {0x0002DE21, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_BMP = {0x0002DE01, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_CGM = {0x0002DE0B, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_COMMONIMAGE = {0x0002DE0D, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_DIB = {0x0002DE02, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_DIF = {0x0002DE1F, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_ENHMF = {0x0002DE04, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_EPS = {0x0002DE0C, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_GIF = {0x0002DE05, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_HTML = {0x0002DE1C, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_JPEG = {0x0002DE06, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_MIDI = {0x0002DE13, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_MPEG = {0x0002DE10, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_PALETTE = {0x0002DE22, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_PCX = {0x0002DE09, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_PENDATA = {0x0002DE23, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_PICT = {0x0002DE0A, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_POSTSCRIPT = {0x0002DE1D, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_QUICKTIME = {0x0002DE11, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_RIFF = {0x0002DE15, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_RTF = {0x0002DE1B, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_SOUND = {0x0002DE16, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_SYLK = {0x0002DE20, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_TIFF = {0x0002DE07, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_UNICODE = {0x0002DE1A, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_VIDEO = {0x0002DE17, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_WAV = {0x0002DE14, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_WMF = {0x0002DE03, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLE_DATAPATH_XBM = {0x0002DE08, 0x0000, 0x0000, [0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]}; + const IID OLEDB_SVC_DSLPropertyPages = {0x51740C02, 0x7E8E, 0x11D2, [0xA0, 0x2D, 0x00, 0xC0, 0x4F, 0xA3, 0x73, 0x48]}; + const IID PSGUID_QUERY = {0x49691C90, 0x7E17, 0x101A, [0xA9, 0x1C, 0x08, 0x00, 0x2B, 0x2E, 0xCD, 0xA9]}; + const IID RESCLASSTYPE_IPAddress = {0x57A80E0F, 0x6F18, 0x458B, [0xA7, 0x2A, 0xD1, 0x17, 0x0C, 0x47, 0x93, 0x90]}; + const IID RESCLASSTYPE_NetworkName = {0xBBA69EB9, 0xF5D0, 0x487B, [0x92, 0xAE, 0x1B, 0xA1, 0x0F, 0x39, 0x21, 0x58]}; + const IID RESCLASSTYPE_StorageDevice = {0x12453A47, 0x8C5E, 0x4837, [0xBA, 0xC6, 0xB2, 0x54, 0xB8, 0xF2, 0x64, 0xCC]}; + const IID RESTYPE_ClusterIPAddress = {0xE50DF832, 0x477C, 0x440C, [0xB7, 0xA3, 0x38, 0x23, 0xA6, 0xEF, 0x6C, 0xCB]}; + const IID RESTYPE_ClusterNetName = {0xB2897CCF, 0x8D2C, 0x4BC1, [0xB4, 0x96, 0x6E, 0x2B, 0xC7, 0xA0, 0xBB, 0x38]}; + const IID RESTYPE_ClusterQuorumDisk = {0xD9DDFB80, 0x0BDC, 0x40D4, [0xB3, 0x96, 0x1A, 0xFD, 0x77, 0xDD, 0xD1, 0x9C]}; + const IID RESTYPE_GenericScript = {0xF372184D, 0xDFDB, 0x4370, [0xA0, 0x05, 0xE1, 0xEF, 0x30, 0x1B, 0x23, 0xA4]}; + const IID RESTYPE_IPAddress = {0xE61ADE71, 0xC79A, 0x4FDA, [0xB1, 0xDB, 0xA9, 0xB8, 0xD2, 0x0C, 0x8B, 0x14]}; + const IID RESTYPE_LocalQuorum = {0xF004656D, 0x5B48, 0x4580, [0xA1, 0xF4, 0xC3, 0xEC, 0x14, 0x98, 0x3D, 0x1E]}; + const IID RESTYPE_MajorityNodeSet = {0x56BFAE11, 0xD2F7, 0x4F4F, [0x99, 0x52, 0x55, 0xAF, 0x19, 0xBA, 0xC3, 0xE9]}; + const IID RESTYPE_NetworkName = {0xC1D2FE1E, 0xD332, 0x445F, [0x8D, 0xA1, 0x12, 0xE5, 0xE2, 0xD3, 0x7C, 0xBF]}; + const IID RESTYPE_PhysicalDisk = {0xCC558763, 0x3386, 0x42EF, [0xB1, 0x50, 0xBE, 0x79, 0x33, 0x44, 0xD4, 0x5F]}; + const IID SID_CtxQueryAssociations = {0xFAADFC40, 0xB777, 0x4B69, [0xAA, 0x81, 0x77, 0x03, 0x5E, 0xF0, 0xE6, 0xE8]}; + const IID SID_SContainerDispatch = {0xB722BE00, 0x4E68, 0x101B, [0xA2, 0xBC, 0x00, 0xAA, 0x00, 0x40, 0x47, 0x70]}; + const IID SID_SDataPathBrowser = {0xFC4801A5, 0x2BA9, 0x11CF, [0xA2, 0x29, 0x00, 0xAA, 0x00, 0x3D, 0x73, 0x52]}; + const IID SID_SGetViewFromViewDual = {0x889A935D, 0x971E, 0x4B12, [0xB9, 0x0C, 0x24, 0xDF, 0xC9, 0xE1, 0xE5, 0xE8]}; + const IID SID_SHTMLEditServices = {0x3050F7F9, 0x98B5, 0x11CF, [0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B]}; + const IID SID_STopLevelBrowser = {0x4C96BE40, 0x915C, 0x11CF, [0x99, 0xD3, 0x00, 0xAA, 0x00, 0x4A, 0xE8, 0x37]}; + const IID SID_STopWindow = {0x49E1B500, 0x4636, 0x11D3, [0x97, 0xF7, 0x00, 0xC0, 0x4F, 0x45, 0xD0, 0xB3]}; + const IID SID_SVersionHost = {0x371EA634, 0xDC5C, 0x11D1, [0xBA, 0x57, 0x00, 0xC0, 0x4F, 0xC2, 0x04, 0x0E]}; + const IID TAPIMEDIATYPE_Audio = {0x028ED8C2, 0xDC7A, 0x11D0, [0x8E, 0xD3, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID TAPIMEDIATYPE_DataModem = {0x028ED8C6, 0xDC7A, 0x11D0, [0x8E, 0xD3, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID TAPIMEDIATYPE_G3Fax = {0x028ED8C7, 0xDC7A, 0x11D0, [0x8E, 0xD3, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID TAPIMEDIATYPE_Video = {0x028ED8C4, 0xDC7A, 0x11D0, [0x8E, 0xD3, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID TAPIPROTOCOL_H323 = {0x831CE2D7, 0x83B5, 0x11D1, [0xBB, 0x5C, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID TAPIPROTOCOL_Multicast = {0x831CE2D8, 0x83B5, 0x11D1, [0xBB, 0x5C, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID TAPIPROTOCOL_PSTN = {0x831CE2D6, 0x83B5, 0x11D1, [0xBB, 0x5C, 0x00, 0xC0, 0x4F, 0xB6, 0x80, 0x9F]}; + const IID TASK_AnalyzeCluster = {0x3140B5A6, 0x9AFA, 0x4588, [0x8C, 0xA0, 0x9B, 0xE8, 0xF8, 0xB6, 0x15, 0x06]}; + const IID TASK_CommitClusterChanges = {0x2D03030B, 0xF084, 0x4807, [0xBB, 0xAC, 0x94, 0x26, 0x9E, 0x50, 0xB5, 0x6F]}; + const IID TASKID_Major_Check_Cluster_Feasibili = {0xEBC8AEFF, 0x10C3, 0x4D5B, [0xAC, 0x17, 0xFC, 0x0F, 0x4C, 0x38, 0x71, 0xB7]}; + const IID TASKID_Major_Check_Node_Feasibility = {0xCC5E57B1, 0x4520, 0x4672, [0xB4, 0xBA, 0xA2, 0x88, 0xEC, 0x42, 0x94, 0x6E]}; + const IID TASKID_Major_Checking_For_Existing_Cl = {0xB8453B8F, 0x92FD, 0x4350, [0xA6, 0xD9, 0x55, 0x1F, 0xD0, 0x18, 0xB7, 0x91]}; + const IID TASKID_Major_Client_And_Server_Log = {0xCD36919C, 0x9F31, 0x46B4, [0xA2, 0x9D, 0xAC, 0x87, 0xF4, 0xE6, 0xCC, 0x93]}; + const IID TASKID_Major_Client_Log = {0x64ECA0EA, 0x9CB6, 0x4324, [0x97, 0x02, 0xDF, 0x15, 0xC6, 0x96, 0xC3, 0x0A]}; + const IID TASKID_Major_Configure_Cluster_Servic = {0x7C5F0774, 0x1611, 0x42B5, [0xAF, 0x3C, 0x6E, 0x12, 0x4A, 0xC4, 0xD3, 0x6B]}; + const IID TASKID_Major_Configure_Resource_Type = {0x6D47AF1F, 0x7F17, 0x4B80, [0x8F, 0xAB, 0x3A, 0x2D, 0x19, 0xB1, 0x23, 0x3D]}; + const IID TASKID_Major_Configure_Resources = {0x411BCDEC, 0x69D3, 0x4485, [0x8D, 0x5D, 0xE1, 0x9E, 0xE7, 0x7A, 0x6D, 0xD4]}; + const IID TASKID_Major_Establish_Connection = {0x93C32F99, 0x39CA, 0x4D38, [0x9D, 0x7F, 0x27, 0x07, 0xCA, 0x0E, 0xAF, 0x46]}; + const IID TASKID_Major_Find_Devices = {0x036BF567, 0x2377, 0x4BB3, [0x8A, 0xE1, 0xE4, 0x10, 0x4E, 0x2E, 0xB3, 0xC5]}; + const IID TASKID_Major_Reanalyze = {0xE25968DA, 0x9C7B, 0x42DB, [0xAD, 0xA9, 0xBC, 0x4E, 0x34, 0xF1, 0x7E, 0x6E]}; + const IID TASKID_Major_Server_Log = {0x05AA0768, 0x5F49, 0x49CD, [0xAF, 0xDC, 0x96, 0xF9, 0xD5, 0x18, 0x02, 0xD4]}; + const IID TASKID_Minor_Update_Progress = {0x2362D3DA, 0xA6A4, 0x4551, [0xB8, 0x46, 0x7B, 0xB3, 0xA1, 0x36, 0x5F, 0x56]}; + const IID TID_D3DRMAnimation = {0x3D82AB4F, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID TID_D3DRMAnimationKey = {0x10DD46A8, 0x775B, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMAnimationOptions = {0xE2BF56C0, 0x840F, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMAnimationSet = {0x3D82AB50, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID TID_D3DRMAppData = {0xE5745280, 0xB24F, 0x11CF, [0x9D, 0xD5, 0x00, 0xAA, 0x00, 0xA7, 0x1A, 0x2F]}; + const IID TID_D3DRMBoolean = {0x537DA6A0, 0xCA37, 0x11D0, [0x94, 0x1C, 0x00, 0x80, 0xC8, 0x0C, 0xFA, 0x7B]}; + const IID TID_D3DRMBoolean2d = {0x4885AE63, 0x78E8, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMCamera = {0x3D82AB51, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID TID_D3DRMColorRGB = {0xD3E16E81, 0x7835, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMColorRGBA = {0x35FF44E0, 0x6C7C, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMCoords2d = {0xF6F23F44, 0x7686, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMExternalVisual = {0x98116AA0, 0xBDBA, 0x11D1, [0x82, 0xC0, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x71]}; + const IID TID_D3DRMFloatKeys = {0x10DD46A9, 0x775B, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMFrame = {0x3D82AB46, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID TID_D3DRMFramePosition = {0xE2BF56C1, 0x840F, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMFrameRotation = {0xE2BF56C3, 0x840F, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMFrameTransformMatrix = {0xF6F23F41, 0x7686, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMFrameVelocity = {0xE2BF56C2, 0x840F, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMGuid = {0xA42790E0, 0x7810, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMIndexedColor = {0x1630B820, 0x7842, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMInfo = {0x2B957100, 0x9E9A, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID TID_D3DRMInlineData = {0x3A23EEA0, 0x94B1, 0x11D0, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID TID_D3DRMLight = {0x3D82AB4A, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID TID_D3DRMLightAttenuation = {0xA8A98BA0, 0xC5E5, 0x11CF, [0xB9, 0x41, 0x00, 0x80, 0xC8, 0x0C, 0xFA, 0x7B]}; + const IID TID_D3DRMLightPenumbra = {0xAED22741, 0xB31F, 0x11CF, [0x9D, 0xD5, 0x00, 0xAA, 0x00, 0xA7, 0x1A, 0x2F]}; + const IID TID_D3DRMLightRange = {0xAED22742, 0xB31F, 0x11CF, [0x9D, 0xD5, 0x00, 0xAA, 0x00, 0xA7, 0x1A, 0x2F]}; + const IID TID_D3DRMLightUmbra = {0xAED22740, 0xB31F, 0x11CF, [0x9D, 0xD5, 0x00, 0xAA, 0x00, 0xA7, 0x1A, 0x2F]}; + const IID TID_D3DRMMaterial = {0x3D82AB4D, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID TID_D3DRMMaterialAmbientColor = {0x01411840, 0x7786, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMMaterialArray = {0x35FF44E1, 0x6C7C, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMMaterialDiffuseColor = {0x01411841, 0x7786, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMMaterialEmissiveColor = {0xD3E16E80, 0x7835, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMMaterialPower = {0x01411843, 0x7786, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMMaterialSpecularColor = {0x01411842, 0x7786, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMMaterialWrap = {0x4885AE60, 0x78E8, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMMatrix4x4 = {0xF6F23F45, 0x7686, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMMesh = {0x3D82AB44, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID TID_D3DRMMeshFace = {0x3D82AB5F, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID TID_D3DRMMeshFaceWraps = {0xED1EC5C0, 0xC0A8, 0x11D0, [0x94, 0x1C, 0x00, 0x80, 0xC8, 0x0C, 0xFA, 0x7B]}; + const IID TID_D3DRMMeshMaterialList = {0xF6F23F42, 0x7686, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMMeshNormals = {0xF6F23F43, 0x7686, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMMeshTextureCoords = {0xF6F23F40, 0x7686, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMMeshVertexColors = {0x1630B821, 0x7842, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMProgressiveMesh = {0x8A63C360, 0x997D, 0x11D0, [0x94, 0x1C, 0x00, 0x80, 0xC8, 0x0C, 0xFA, 0x7B]}; + const IID TID_D3DRMPropertyBag = {0x7F0F21E1, 0xBFE1, 0x11D1, [0x82, 0xC0, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x71]}; + const IID TID_D3DRMRightHanded = {0x7F5D5EA0, 0xD53A, 0x11D1, [0x82, 0xC0, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x71]}; + const IID TID_D3DRMStringProperty = {0x7F0F21E0, 0xBFE1, 0x11D1, [0x82, 0xC0, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x71]}; + const IID TID_D3DRMTextureFilename = {0xA42790E1, 0x7810, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMTextureReference = {0xA42790E2, 0x7810, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMTimedFloatKeys = {0xF406B180, 0x7B3B, 0x11CF, [0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3]}; + const IID TID_D3DRMUrl = {0x3A23EEA1, 0x94B1, 0x11D0, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID TID_D3DRMVector = {0x3D82AB5E, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; + const IID TID_DXFILEHeader = {0x3D82AB43, 0x62DA, 0x11CF, [0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33]}; +} ADDED src/win32/vfw.d Index: src/win32/vfw.d ================================================================== --- src/win32/vfw.d +++ src/win32/vfw.d @@ -0,0 +1,2394 @@ +/***********************************************************************\ +* vfw.d * +* * +* Windows API header module * +* written in the D programming language * +* * +* Placed into public domain * +\***********************************************************************/ + +module win32.vfw; +pragma(lib, "vfw32.lib"); + +private import + win32.commdlg, + win32.wingdi, + win32.mmsystem, + win32.unknwn, + win32.w32api, + win32.windef, + win32.winuser; + +extern(Windows) { + DWORD VideoForWindowsVersion(); + LONG InitVFW(); + LONG TermVFW(); +} + +DWORD MKFOURCC(char ch0, char ch1, char ch2, char ch3) { + return (cast(DWORD)ch0) | ((cast(DWORD)ch1) << 8) | ((cast(DWORD)ch2) << 16) | ((cast(DWORD)ch3) << 24); +} + +/** + * COMPMAN - Installable Compression Manager. + */ + +const ICVERSION = 0x0104; + +alias HANDLE HIC; + +const BI_1632 = 0x32333631; + +template aviTWOCC(char c0, char c1) { + const WORD aviTWOCC = c0 | (c1 << 8); +} + +const ICTYPE_VIDEO = mmioFOURCC!('v', 'i', 'd', 'c'); +const ICTYPE_AUDIO = mmioFOURCC!('a', 'u', 'd', 'c'); + +enum { + ICERR_OK = 0, + ICERR_DONTDRAW = 1, + ICERR_NEWPALETTE = 2, + ICERR_GOTOKEYFRAME = 3, + ICERR_STOPDRAWING = 4, +} + +const ICERR_UNSUPPORTED = -1; +const ICERR_BADFORMAT = -2; +const ICERR_MEMORY = -3; +const ICERR_INTERNAL = -4; +const ICERR_BADFLAGS = -5; +const ICERR_BADPARAM = -6; +const ICERR_BADSIZE = -7; +const ICERR_BADHANDLE = -8; +const ICERR_CANTUPDATE = -9; +const ICERR_ABORT = -10; +const ICERR_ERROR = -100; +const ICERR_BADBITDEPTH = -200; +const ICERR_BADIMAGESIZE = -201; + +const ICERR_CUSTOM = -400; + +enum { + ICMODE_COMPRESS = 1, + ICMODE_DECOMPRESS, + ICMODE_FASTDECOMPRESS, + ICMODE_QUERY, + ICMODE_FASTCOMPRESS, + ICMODE_DRAW = 8, +} + +const ICMODE_INTERNALF_FUNCTION32 = 0x8000; +const ICMODE_INTERNALF_MASK = 0x8000; + +enum { + AVIIF_LIST = 0x00000001, + AVIIF_TWOCC = 0x00000002, + AVIIF_KEYFRAME = 0x00000010, +} + +const ICQUALITY_LOW = 0; +const ICQUALITY_HIGH = 10000; +const ICQUALITY_DEFAULT = -1; + +enum { + ICM_USER = DRV_USER + 0x0000, + ICM_RESERVED_LOW = DRV_USER + 0x1000, + ICM_RESERVED_HIGH = DRV_USER + 0x2000, + ICM_RESERVED = ICM_RESERVED_LOW, +} + +// messages + +enum { + ICM_GETSTATE = ICM_RESERVED + 0, + ICM_SETSTATE = ICM_RESERVED + 1, + ICM_GETINFO = ICM_RESERVED + 2, + ICM_CONFIGURE = ICM_RESERVED + 10, + ICM_ABOUT = ICM_RESERVED + 11, + ICM_GETERRORTEXT = ICM_RESERVED + 12, + ICM_GETFORMATNAME = ICM_RESERVED + 20, + ICM_ENUMFORMATS = ICM_RESERVED + 21, + ICM_GETDEFAULTQUALITY = ICM_RESERVED + 30, + ICM_GETQUALITY = ICM_RESERVED + 31, + ICM_SETQUALITY = ICM_RESERVED + 32, + ICM_SET = ICM_RESERVED + 40, + ICM_GET = ICM_RESERVED + 41, +} + +const ICM_FRAMERATE = mmioFOURCC!('F','r','m','R'); +const ICM_KEYFRAMERATE = mmioFOURCC!('K','e','y','R'); + +// ICM specific messages. + +enum { + ICM_COMPRESS_GET_FORMAT = ICM_USER + 4, + ICM_COMPRESS_GET_SIZE = ICM_USER + 5, + ICM_COMPRESS_QUERY = ICM_USER + 6, + ICM_COMPRESS_BEGIN = ICM_USER + 7, + ICM_COMPRESS = ICM_USER + 8, + ICM_COMPRESS_END = ICM_USER + 9, + ICM_DECOMPRESS_GET_FORMAT = ICM_USER + 10, + ICM_DECOMPRESS_QUERY = ICM_USER + 11, + ICM_DECOMPRESS_BEGIN = ICM_USER + 12, + ICM_DECOMPRESS = ICM_USER + 13, + ICM_DECOMPRESS_END = ICM_USER + 14, + ICM_DECOMPRESS_SET_PALETTE = ICM_USER + 29, + ICM_DECOMPRESS_GET_PALETTE = ICM_USER + 30, + ICM_DRAW_QUERY = ICM_USER + 31, + ICM_DRAW_BEGIN = ICM_USER + 15, + ICM_DRAW_GET_PALETTE = ICM_USER + 16, + ICM_DRAW_UPDATE = ICM_USER + 17, + ICM_DRAW_START = ICM_USER + 18, + ICM_DRAW_STOP = ICM_USER + 19, + ICM_DRAW_BITS = ICM_USER + 20, + ICM_DRAW_END = ICM_USER + 21, + ICM_DRAW_GETTIME = ICM_USER + 32, + ICM_DRAW = ICM_USER + 33, + ICM_DRAW_WINDOW = ICM_USER + 34, + ICM_DRAW_SETTIME = ICM_USER + 35, + ICM_DRAW_REALIZE = ICM_USER + 36, + ICM_DRAW_FLUSH = ICM_USER + 37, + ICM_DRAW_RENDERBUFFER = ICM_USER + 38, + ICM_DRAW_START_PLAY = ICM_USER + 39, + ICM_DRAW_STOP_PLAY = ICM_USER + 40, + ICM_DRAW_SUGGESTFORMAT = ICM_USER + 50, + ICM_DRAW_CHANGEPALETTE = ICM_USER + 51, + ICM_DRAW_IDLE = ICM_USER + 52, + ICM_GETBUFFERSWANTED = ICM_USER + 41, + ICM_GETDEFAULTKEYFRAMERATE = ICM_USER + 42, + ICM_DECOMPRESSEX_BEGIN = ICM_USER + 60, + ICM_DECOMPRESSEX_QUERY = ICM_USER + 61, + ICM_DECOMPRESSEX = ICM_USER + 62, + ICM_DECOMPRESSEX_END = ICM_USER + 63, + ICM_COMPRESS_FRAMES_INFO = ICM_USER + 70, + ICM_COMPRESS_FRAMES = ICM_USER + 71, + ICM_SET_STATUS_PROC = ICM_USER + 72, +} + +struct ICOPEN { + DWORD dwSize; + DWORD fccType; + DWORD fccHandler; + DWORD dwVersion; + DWORD dwFlags; + LRESULT dwError; + LPVOID pV1Reserved; + LPVOID pV2Reserved; + DWORD dnDevNode; +} + +struct ICINFO { + DWORD dwSize; + DWORD fccType; + DWORD fccHandler; + DWORD dwFlags; + DWORD dwVersion; + DWORD dwVersionICM; + WCHAR szName[16]; + WCHAR szDescription[128]; + WCHAR szDriver[128]; +} + +enum { + VIDCF_QUALITY = 0x0001, + VIDCF_CRUNCH = 0x0002, + VIDCF_TEMPORAL = 0x0004, + VIDCF_COMPRESSFRAMES = 0x0008, + VIDCF_DRAW = 0x0010, + VIDCF_FASTTEMPORALC = 0x0020, + VIDCF_FASTTEMPORALD = 0x0080, +} + +const ICCOMPRESS_KEYFRAME = 0x00000001L; + +struct ICCOMPRESS { + DWORD dwFlags; + LPBITMAPINFOHEADER lpbiOutput; + LPVOID lpOutput; + LPBITMAPINFOHEADER lpbiInput; + LPVOID lpInput; + LPDWORD lpckid; + LPDWORD lpdwFlags; + LONG lFrameNum; + DWORD dwFrameSize; + DWORD dwQuality; + LPBITMAPINFOHEADER lpbiPrev; + LPVOID lpPrev; +} + +const ICCOMPRESSFRAMES_PADDING = 0x00000001; + +struct ICCOMPRESSFRAMES { + DWORD dwFlags; + LPBITMAPINFOHEADER lpbiOutput; + LPARAM lOutput; + LPBITMAPINFOHEADER lpbiInput; + LPARAM lInput; + LONG lStartFrame; + LONG lFrameCount; + LONG lQuality; + LONG lDataRate; + LONG lKeyRate; + DWORD dwRate; + DWORD dwScale; DWORD dwOverheadPerFrame; + DWORD dwReserved2; + + LONG function(LPARAM lInput, LONG lFrame, LPVOID lpBits, LONG len) GetData; + LONG function(LPARAM lOutput, LONG lFrame, LPVOID lpBits, LONG len) PutData; +} + +enum { + ICSTATUS_START = 0, + ICSTATUS_STATUS = 1, + ICSTATUS_END = 2, + ICSTATUS_ERROR = 3, + ICSTATUS_YIELD = 4, +} + +struct ICSETSTATUSPROC { + DWORD dwFlags; + LPARAM lParam; + LONG function(LPARAM lParam, UINT message, LONG l) Status; +} + +enum { + ICDECOMPRESS_NOTKEYFRAME = 0x08000000, + ICDECOMPRESS_NULLFRAME = 0x10000000, + ICDECOMPRESS_PREROLL = 0x20000000, + ICDECOMPRESS_UPDATE = 0x40000000, + ICDECOMPRESS_HURRYUP = 0x80000000, +} + +struct ICDECOMPRESS { + DWORD dwFlags; + LPBITMAPINFOHEADER lpbiInput; + LPVOID lpInput; + LPBITMAPINFOHEADER lpbiOutput; + LPVOID lpOutput; + DWORD ckid; +} + +struct ICDECOMPRESSEX { + DWORD dwFlags; + LPBITMAPINFOHEADER lpbiSrc; + LPVOID lpSrc; + LPBITMAPINFOHEADER lpbiDst; + LPVOID lpDst; + int xDst; + int yDst; + int dxDst; + int dyDst; + int xSrc; + int ySrc; + int dxSrc; + int dySrc; +} + +enum { + ICDRAW_QUERY = 0x00000001, + ICDRAW_FULLSCREEN = 0x00000002, + ICDRAW_HDC = 0x00000004, + ICDRAW_ANIMATE = 0x00000008, + ICDRAW_CONTINUE = 0x00000010, + ICDRAW_MEMORYDC = 0x00000020, + ICDRAW_UPDATING = 0x00000040, + ICDRAW_RENDER = 0x00000080, + ICDRAW_BUFFER = 0x00000100, +} + +struct ICDRAWBEGIN { + DWORD dwFlags; + HPALETTE hpal; + HWND hwnd; + HDC hdc; + int xDst; + int yDst; + int dxDst; + int dyDst; + LPBITMAPINFOHEADER lpbi; + int xSrc; + int ySrc; + int dxSrc; + int dySrc; + DWORD dwRate; + DWORD dwScale; +} + +enum { + ICDRAW_NOTKEYFRAME = 0x08000000, + ICDRAW_NULLFRAME = 0x10000000, + ICDRAW_PREROLL = 0x20000000, + ICDRAW_UPDATE = 0x40000000, + ICDRAW_HURRYUP = 0x80000000, +} + +struct ICDRAW { + DWORD dwFlags; + LPVOID lpFormat; + LPVOID lpData; + DWORD cbData; + LONG lTime; +} + +struct ICDRAWSUGGEST { + LPBITMAPINFOHEADER lpbiIn; + LPBITMAPINFOHEADER lpbiSuggest; + int dxSrc; + int dySrc; + int dxDst; + int dyDst; + HIC hicDecompressor; +} + +struct ICPALETTE { + DWORD dwFlags; + int iStart; + int iLen; + LPPALETTEENTRY lppe; +} + + +/** + * ICM function declarations + */ + +extern (Windows) { + BOOL ICInfo(DWORD fccType, DWORD fccHandler, ICINFO *lpicinfo); + BOOL ICInstall(DWORD fccType, DWORD fccHandler, LPARAM lParam, LPSTR szDesc, UINT wFlags); + BOOL ICRemove(DWORD fccType, DWORD fccHandler, UINT wFlags); + LRESULT ICGetInfo(HIC hic, ICINFO *picinfo, DWORD cb); + HIC ICOpen(DWORD fccType, DWORD fccHandler, UINT wMode); + HIC ICOpenFunction(DWORD fccType, DWORD fccHandler, UINT wMode, FARPROC lpfnHandler); + LRESULT ICClose(HIC hic); + LRESULT ICSendMessage(HIC hic, UINT msg, DWORD_PTR dw1, DWORD_PTR dw2); +} + +enum { + ICINSTALL_FUNCTION = 0x0001, + ICINSTALL_DRIVER = 0x0002, + ICINSTALL_HDRV = 0x0004, + ICINSTALL_UNICODE = 0x8000, + ICINSTALL_DRIVERW = 0x8002, +} + +// query macros + +const ICMF_CONFIGURE_QUERY = 0x00000001; +const ICMF_ABOUT_QUERY = 0x00000001; + +DWORD ICQueryAbout(HIC hic) { + return ICSendMessage(hic, ICM_ABOUT, -1, ICMF_ABOUT_QUERY) == ICERR_OK; +} + +DWORD ICAbout(HIC hic, HWND hwnd) { + return ICSendMessage(hic, ICM_ABOUT, cast(UINT)hwnd, 0); +} + +DWORD ICQueryConfigure(HIC hic) { + return (ICSendMessage(hic, ICM_CONFIGURE, -1, ICMF_CONFIGURE_QUERY) == ICERR_OK); +} + +DWORD ICConfigure(HIC hic, HWND hwnd) { + return ICSendMessage(hic, ICM_CONFIGURE, cast(UINT)hwnd, 0); +} + +DWORD ICGetState(HIC hic, LPVOID pv, DWORD_PTR cb) { + return ICSendMessage(hic, ICM_GETSTATE, cast(DWORD)pv, cast(DWORD)cb); +} + +DWORD ICSetState(HIC hic, LPVOID pv, DWORD_PTR cb) { + return ICSendMessage(hic, ICM_SETSTATE, cast(DWORD)pv, cast(DWORD)cb); +} + +DWORD ICGetStateSize(HIC hic) { + return ICGetState(hic, null, 0); +} + +DWORD dwICValue; + +DWORD ICGetDefaultQuality(HIC hic) { + ICSendMessage(hic, ICM_GETDEFAULTQUALITY, cast(DWORD_PTR)&dwICValue, DWORD.sizeof); + return dwICValue; +} + +DWORD ICGetDefaultKeyFrameRate(HIC hic) { + ICSendMessage(hic, ICM_GETDEFAULTKEYFRAMERATE, cast(DWORD_PTR)&dwICValue, DWORD.sizeof); + return dwICValue; +} + +DWORD ICDrawWindow(HIC hic, LPVOID prc) { + return ICSendMessage(hic, ICM_DRAW_WINDOW, cast(DWORD)prc, RECT.sizeof); +} + +extern (Windows) { + DWORD ICCompress(HIC hic, DWORD dwFlags, LPBITMAPINFOHEADER lpbiOutput, LPVOID lpData, + LPBITMAPINFOHEADER lpbiInput, LPVOID lpBits, LPDWORD lpckid, LPDWORD lpdwFlags, + LONG lFrameNum, DWORD dwFrameSize, DWORD dwQuality, LPBITMAPINFOHEADER lpbiPrev, LPVOID lpPrev); +} + +LRESULT ICCompressBegin(HIC hic, LPVOID lpbiInput, LPVOID lpbiOutput) { + return ICSendMessage(hic, ICM_COMPRESS_BEGIN, cast(DWORD_PTR)lpbiInput, cast(DWORD_PTR)lpbiOutput); +} +LRESULT ICCompressQuery(HIC hic, LPVOID lpbiInput, LPVOID lpbiOutput) { + return ICSendMessage(hic, ICM_COMPRESS_QUERY, cast(DWORD_PTR)lpbiInput, cast(DWORD_PTR)lpbiOutput); +} +LRESULT ICCompressGetFormat(HIC hic, LPVOID lpbiInput, LPVOID lpbiOutput) { + return ICSendMessage(hic, ICM_COMPRESS_GET_FORMAT, cast(DWORD_PTR)lpbiInput, cast(DWORD_PTR)lpbiOutput); +} +DWORD ICCompressGetFormatSize(HIC hic, LPVOID lpbi) { + return cast(DWORD)ICCompressGetFormat(hic, lpbi, null); +} +DWORD ICCompressGetSize(HIC hic, LPVOID lpbiInput, LPVOID lpbiOutput) { + return cast(DWORD)ICSendMessage(hic, ICM_COMPRESS_GET_SIZE, cast(DWORD_PTR)lpbiInput, cast(DWORD_PTR)lpbiOutput); +} +LRESULT ICCompressEnd(HIC hic) { + return ICSendMessage(hic, ICM_COMPRESS_END, 0, 0); +} + +extern (Windows) { + DWORD ICDecompress(HIC hic, DWORD dwFlags, LPBITMAPINFOHEADER lpbiFormat, LPVOID lpData, LPBITMAPINFOHEADER lpbi, LPVOID lpBits); +} + +LRESULT ICDecompressBegin(HIC hic, LPVOID lpbiInput, LPVOID lpbiOutput) { + return ICSendMessage(hic, ICM_DECOMPRESS_BEGIN, cast(DWORD_PTR)lpbiInput, cast(DWORD_PTR)lpbiOutput); +} +LRESULT ICDecompressQuery(HIC hic, LPVOID lpbiInput, LPVOID lpbiOutput) { + return ICSendMessage(hic, ICM_DECOMPRESS_QUERY, cast(DWORD_PTR)lpbiInput, cast(DWORD_PTR)lpbiOutput); +} +LONG ICDecompressGetFormat(HIC hic, LPVOID lpbiInput, LPVOID lpbiOutput) { + return cast(LONG)ICSendMessage(hic, ICM_DECOMPRESS_GET_FORMAT, cast(DWORD_PTR)lpbiInput, cast(DWORD_PTR)lpbiOutput); +} +LONG ICDecompressGetFormatSize(HIC hic, LPVOID lpbi) { + return ICDecompressGetFormat(hic, lpbi, null); +} +LRESULT ICDecompressGetPalette(HIC hic, LPVOID lpbiInput, LPVOID lpbiOutput) { + return ICSendMessage(hic, ICM_DECOMPRESS_GET_PALETTE, cast(DWORD_PTR)lpbiInput, cast(DWORD_PTR)lpbiOutput); +} +LRESULT ICDecompressSetPalette(HIC hic, LPVOID lpbiPalette) { + return ICSendMessage(hic, ICM_DECOMPRESS_SET_PALETTE, cast(DWORD_PTR)lpbiPalette, 0); +} +LRESULT ICDecompressEnd(HIC hic) { + return ICSendMessage(hic, ICM_DECOMPRESS_END, 0, 0); +} + +LRESULT ICDecompressEx(HIC hic, DWORD dwFlags, LPBITMAPINFOHEADER lpbiSrc, + LPVOID lpSrc, int xSrc, int ySrc, int dxSrc, int dySrc, LPBITMAPINFOHEADER lpbiDst, + LPVOID lpDst, int xDst, int yDst, int dxDst, int dyDst) { + ICDECOMPRESSEX ic; + + ic.dwFlags = dwFlags; + ic.lpbiSrc = lpbiSrc; + ic.lpSrc = lpSrc; + ic.xSrc = xSrc; + ic.ySrc = ySrc; + ic.dxSrc = dxSrc; + ic.dySrc = dySrc; + ic.lpbiDst = lpbiDst; + ic.lpDst = lpDst; + ic.xDst = xDst; + ic.yDst = yDst; + ic.dxDst = dxDst; + ic.dyDst = dyDst; + + return ICSendMessage(hic, ICM_DECOMPRESSEX, cast(DWORD_PTR)&ic, ic.sizeof); +} + +LRESULT ICDecompressExBegin(HIC hic, DWORD dwFlags, LPBITMAPINFOHEADER lpbiSrc, + LPVOID lpSrc, int xSrc, int ySrc, int dxSrc, int dySrc, LPBITMAPINFOHEADER lpbiDst, + LPVOID lpDst, int xDst, int yDst, int dxDst, int dyDst) { + ICDECOMPRESSEX ic; + + ic.dwFlags = dwFlags; + ic.lpbiSrc = lpbiSrc; + ic.lpSrc = lpSrc; + ic.xSrc = xSrc; + ic.ySrc = ySrc; + ic.dxSrc = dxSrc; + ic.dySrc = dySrc; + ic.lpbiDst = lpbiDst; + ic.lpDst = lpDst; + ic.xDst = xDst; + ic.yDst = yDst; + ic.dxDst = dxDst; + ic.dyDst = dyDst; + + return ICSendMessage(hic, ICM_DECOMPRESSEX_BEGIN, cast(DWORD_PTR)&ic, ic.sizeof); +} + +LRESULT ICDecompressExQuery(HIC hic, DWORD dwFlags, LPBITMAPINFOHEADER lpbiSrc, + LPVOID lpSrc, int xSrc, int ySrc, int dxSrc, int dySrc, LPBITMAPINFOHEADER lpbiDst, + LPVOID lpDst, int xDst, int yDst, int dxDst, int dyDst) { + ICDECOMPRESSEX ic; + + ic.dwFlags = dwFlags; + ic.lpbiSrc = lpbiSrc; + ic.lpSrc = lpSrc; + ic.xSrc = xSrc; + ic.ySrc = ySrc; + ic.dxSrc = dxSrc; + ic.dySrc = dySrc; + ic.lpbiDst = lpbiDst; + ic.lpDst = lpDst; + ic.xDst = xDst; + ic.yDst = yDst; + ic.dxDst = dxDst; + ic.dyDst = dyDst; + + return ICSendMessage(hic, ICM_DECOMPRESSEX_QUERY, cast(DWORD_PTR)&ic, ic.sizeof); +} + +LRESULT ICDecompressExEnd(HIC hic) { + return ICSendMessage(hic, ICM_DECOMPRESSEX_END, 0, 0); +} + +extern (Windows) { + DWORD ICDrawBegin(HIC hic, DWORD dwFlags, HPALETTE hpal, HWND hwnd, HDC hdc, + int xDst, int yDst, int dxDst, int dyDst, LPBITMAPINFOHEADER lpbi, + int xSrc, int ySrc, int dxSrc, int dySrc, DWORD dwRate, DWORD dwScale); +} + +extern (Windows) { + DWORD ICDraw(HIC hic, DWORD dwFlags, LPVOID lpFormat, LPVOID lpData, DWORD cbData, LONG lTime); +} + +LRESULT ICDrawSuggestFormat(HIC hic, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, + int dxSrc, int dySrc, int dxDst, int dyDst, HIC hicDecomp) { + ICDRAWSUGGEST ic; + + ic.lpbiIn = lpbiIn; + ic.lpbiSuggest = lpbiOut; + ic.dxSrc = dxSrc; + ic.dySrc = dySrc; + ic.dxDst = dxDst; + ic.dyDst = dyDst; + ic.hicDecompressor = hicDecomp; + + return ICSendMessage(hic, ICM_DRAW_SUGGESTFORMAT, cast(DWORD_PTR)&ic, ic.sizeof); +} + +LRESULT ICDrawQuery(HIC hic, LPVOID lpbiInput) { + return ICSendMessage(hic, ICM_DRAW_QUERY, cast(DWORD_PTR)lpbiInput, 0L); +} +LRESULT ICDrawChangePalette(HIC hic, LPVOID lpbiInput) { + return ICSendMessage(hic, ICM_DRAW_CHANGEPALETTE, cast(DWORD_PTR)lpbiInput, 0L); +} +LRESULT ICGetBuffersWanted(HIC hic, LPVOID lpdwBuffers) { + return ICSendMessage(hic, ICM_GETBUFFERSWANTED, cast(DWORD_PTR)lpdwBuffers, 0); +} +LRESULT ICDrawEnd(HIC hic) { + return ICSendMessage(hic, ICM_DRAW_END, 0, 0); +} +LRESULT ICDrawStart(HIC hic) { + return ICSendMessage(hic, ICM_DRAW_START, 0, 0); +} +LRESULT ICDrawStartPlay(HIC hic, DWORD lFrom, DWORD lTo) { + return ICSendMessage(hic, ICM_DRAW_START_PLAY, cast(DWORD_PTR)lFrom, cast(DWORD_PTR)lTo); +} +LRESULT ICDrawStop(HIC hic) { + return ICSendMessage(hic, ICM_DRAW_STOP, 0, 0); +} +LRESULT ICDrawStopPlay(HIC hic) { + return ICSendMessage(hic, ICM_DRAW_STOP_PLAY, 0, 0); +} +LRESULT ICDrawGetTime(HIC hic, LPVOID lplTime) { + return ICSendMessage(hic, ICM_DRAW_GETTIME, cast(DWORD_PTR)lplTime, 0); +} +LRESULT ICDrawSetTime(HIC hic, DWORD lTime) { + return ICSendMessage(hic, ICM_DRAW_SETTIME, cast(DWORD_PTR)lTime, 0); +} +LRESULT ICDrawRealize(HIC hic, HDC hdc, BOOL fBackground) { + return ICSendMessage(hic, ICM_DRAW_REALIZE, cast(DWORD_PTR)hdc, cast(DWORD_PTR)fBackground); +} +LRESULT ICDrawFlush(HIC hic) { + return ICSendMessage(hic, ICM_DRAW_FLUSH, 0, 0); +} +LRESULT ICDrawRenderBuffer(HIC hic) { + return ICSendMessage(hic, ICM_DRAW_RENDERBUFFER, 0, 0); +} + +LRESULT ICSetStatusProc(HIC hic, DWORD dwFlags, LRESULT lParam, LONG function(LPARAM, UINT, LONG) fpfnStatus) { + ICSETSTATUSPROC ic; + + ic.dwFlags = dwFlags; + ic.lParam = lParam; + ic.Status = fpfnStatus; + + return ICSendMessage(hic, ICM_SET_STATUS_PROC, cast(DWORD_PTR)&ic, ic.sizeof); +} + +HIC ICDecompressOpen(DWORD fccType, DWORD fccHandler, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut) { + return ICLocate(fccType, fccHandler, lpbiIn, lpbiOut, ICMODE_DECOMPRESS); +} + +HIC ICDrawOpen(DWORD fccType, DWORD fccHandler, LPBITMAPINFOHEADER lpbiIn) { + return ICLocate(fccType, fccHandler, lpbiIn, null, ICMODE_DRAW); +} + +extern (Windows) { + HIC ICLocate(DWORD fccType, DWORD fccHandler, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, WORD wFlags); + HIC ICGetDisplayFormat(HIC hic, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, int BitDepth, int dx, int dy); + HANDLE ICImageCompress(HIC hic, UINT uiFlags, LPBITMAPINFO lpbiIn, LPVOID lpBits, LPBITMAPINFO lpbiOut, LONG lQuality, LONG* plSize); + HANDLE ICImageDecompress(HIC hic, UINT uiFlags, LPBITMAPINFO lpbiIn, LPVOID lpBits, LPBITMAPINFO lpbiOut); +} + +struct COMPVARS { + LONG cbSize = this.sizeof; + DWORD dwFlags; + HIC hic; + DWORD fccType; + DWORD fccHandler; + LPBITMAPINFO lpbiIn; + LPBITMAPINFO lpbiOut; + LPVOID lpBitsOut; + LPVOID lpBitsPrev; + LONG lFrame; + LONG lKey; + LONG lDataRate; + LONG lQ; + LONG lKeyCount; + LPVOID lpState; + LONG cbState; +} +alias COMPVARS* PCOMPVARS; + +const ICMF_COMPVARS_VALID = 0x00000001; + +extern (Windows) { + BOOL ICCompressorChoose(HWND hwnd, UINT uiFlags, LPVOID pvIn, LPVOID lpData, PCOMPVARS pc, LPSTR lpszTitle); +} + +enum { + ICMF_CHOOSE_KEYFRAME = 0x0001, + ICMF_CHOOSE_DATARATE = 0x0002, + ICMF_CHOOSE_PREVIEW = 0x0004, + ICMF_CHOOSE_ALLCOMPRESSORS = 0x0008, +} + +extern (Windows) { + BOOL ICSeqCompressFrameStart(PCOMPVARS pc, LPBITMAPINFO lpbiIn); + void ICSeqCompressFrameEnd(PCOMPVARS pc); + LPVOID ICSeqCompressFrame(PCOMPVARS pc, UINT uiFlags, LPVOID lpBits, BOOL* pfKey, LONG* plSize); + void ICCompressorFree(PCOMPVARS pc); +} + +alias HANDLE HDRAWDIB; + +enum { + DDF_0001 = 0x0001, + DDF_UPDATE = 0x0002, + DDF_SAME_HDC = 0x0004, + DDF_SAME_DRAW = 0x0008, + DDF_DONTDRAW = 0x0010, + DDF_ANIMATE = 0x0020, + DDF_BUFFER = 0x0040, + DDF_JUSTDRAWIT = 0x0080, + DDF_FULLSCREEN = 0x0100, + DDF_BACKGROUNDPAL = 0x0200, + DDF_NOTKEYFRAME = 0x0400, + DDF_HURRYUP = 0x0800, + DDF_HALFTONE = 0x1000, + DDF_2000 = 0x2000, + DDF_PREROLL = DDF_DONTDRAW, + DDF_SAME_DIB = DDF_SAME_DRAW, + DDF_SAME_SIZE = DDF_SAME_DRAW, +} + +extern (Windows) { + BOOL DrawDibInit(); + HDRAWDIB DrawDibOpen(); + BOOL DrawDibClose(HDRAWDIB hdd); + LPVOID DrawDibGetBuffer(HDRAWDIB hdd, LPBITMAPINFOHEADER lpbi, DWORD dwSize, DWORD dwFlags); + UINT DrawDibError(HDRAWDIB hdd); + HPALETTE DrawDibGetPalette(HDRAWDIB hdd); + BOOL DrawDibSetPalette(HDRAWDIB hdd, HPALETTE hpal); + BOOL DrawDibChangePalette(HDRAWDIB hdd, int iStart, int iLen, LPPALETTEENTRY lppe); + UINT DrawDibRealize(HDRAWDIB hdd, HDC hdc, BOOL fBackground); + BOOL DrawDibStart(HDRAWDIB hdd, DWORD rate); + BOOL DrawDibStop(HDRAWDIB hdd); + BOOL DrawDibBegin(HDRAWDIB hdd, HDC hdc, int dxDst, int dyDst, LPBITMAPINFOHEADER lpbi, int dxSrc, int dySrc, UINT wFlags); + BOOL DrawDibDraw(HDRAWDIB hdd, HDC hdc, int xDst, int yDst, int dxDst, int dyDst, LPBITMAPINFOHEADER lpbi, + LPVOID lpBits, int xSrc, int ySrc, int dxSrc, int dySrc, UINT wFlags); +} + +BOOL DrawDibUpdate(HDRAWDIB hdd, HDC hdc, int x, int y) { + return DrawDibDraw(hdd, hdc, x, y, 0, 0, null, null, 0, 0, 0, 0, DDF_UPDATE); +} + +extern (Windows) { + BOOL DrawDibEnd(HDRAWDIB hdd); +} + +struct DRAWDIBTIME { + LONG timeCount; + LONG timeDraw; + LONG timeDecompress; + LONG timeDither; + LONG timeStretch; + LONG timeBlt; + LONG timeSetDIBits; +} +alias DRAWDIBTIME* LPDRAWDIBTIME; + +extern (Windows) { + BOOL DrawDibTime(HDRAWDIB hdd, LPDRAWDIBTIME lpddtime); +} + +enum { + PD_CAN_DRAW_DIB = 0x0001, + PD_CAN_STRETCHDIB = 0x0002, + PD_STRETCHDIB_1_1_OK = 0x0004, + PD_STRETCHDIB_1_2_OK = 0x0008, + PD_STRETCHDIB_1_N_OK = 0x0010, +} + +extern (Windows) { + LRESULT DrawDibProfileDisplay(LPBITMAPINFOHEADER lpbi); + void StretchDIB(LPBITMAPINFOHEADER biDst, LPVOID lpDst, int DstX, int DstY, + int DstXE, int DstYE, LPBITMAPINFOHEADER biSrc, LPVOID lpSrc, + int SrcX, int SrcY, int SrcXE, int SrcYE); +} + +alias DWORD FOURCC; + +alias WORD TWOCC; + +const formtypeAVI = mmioFOURCC!('A', 'V', 'I', ' '); +const listtypeAVIHEADER = mmioFOURCC!('h', 'd', 'r', 'l'); +const ckidAVIMAINHDR = mmioFOURCC!('a', 'v', 'i', 'h'); +const listtypeSTREAMHEADER = mmioFOURCC!('s', 't', 'r', 'l'); +const ckidSTREAMHEADER = mmioFOURCC!('s', 't', 'r', 'h'); +const ckidSTREAMFORMAT = mmioFOURCC!('s', 't', 'r', 'f'); +const ckidSTREAMHANDLERDATA = mmioFOURCC!('s', 't', 'r', 'd'); +const ckidSTREAMNAME = mmioFOURCC!('s', 't', 'r', 'n'); +const listtypeAVIMOVIE = mmioFOURCC!('m', 'o', 'v', 'i'); +const listtypeAVIRECORD = mmioFOURCC!('r', 'e', 'c', ' '); +const ckidAVINEWINDEX = mmioFOURCC!('i', 'd', 'x', '1'); +const streamtypeVIDEO = mmioFOURCC!('v', 'i', 'd', 's'); +const streamtypeAUDIO = mmioFOURCC!('a', 'u', 'd', 's'); +const streamtypeMIDI = mmioFOURCC!('m', 'i', 'd', 's'); +const streamtypeTEXT = mmioFOURCC!('t', 'x', 't', 's'); + +const cktypeDIBbits = aviTWOCC!('d', 'b'); +const cktypeDIBcompressed = aviTWOCC!('d', 'c'); +const cktypePALchange = aviTWOCC!('p', 'c'); +const cktypeWAVEbytes = aviTWOCC!('w', 'b'); + +const ckidAVIPADDING = mmioFOURCC!('J', 'U', 'N', 'K'); + +DWORD FromHex(char n) { + return (n >= 'A') ? n + 10 - 'A' : n - '0'; +} + +WORD StreamFromFOURCC(DWORD fcc) { + return cast(WORD)((FromHex(LOBYTE(LOWORD(fcc))) << 4) + (FromHex(HIBYTE(LOWORD(fcc))))); +} + +WORD TWOCCFromFOURCC(DWORD fcc) { + return HIWORD(fcc); +} + +BYTE ToHex(DWORD n) { + return cast(BYTE)((n > 9) ? n - 10 + 'A' : n + '0'); +} + +DWORD MAKEAVICKID(WORD tcc, WORD stream) { + return MAKELONG(cast(WORD)((ToHex(stream & 0x0f) << 8) | (ToHex((stream & 0xf0) >> 4))), tcc); +} + +enum { + AVIF_HASINDEX = 0x00000010, + AVIF_MUSTUSEINDEX = 0x00000020, + AVIF_ISINTERLEAVED = 0x00000100, + AVIF_WASCAPTUREFILE = 0x00010000, + AVIF_COPYRIGHTED = 0x00020000, +} + +const AVI_HEADERSIZE = 2048; + +struct MainAVIHeader { + DWORD dwMicroSecPerFrame; + DWORD dwMaxBytesPerSec; + DWORD dwPaddingGranularity; + DWORD dwFlags; + DWORD dwTotalFrames; + DWORD dwInitialFrames; + DWORD dwStreams; + DWORD dwSuggestedBufferSize; + DWORD dwWidth; + DWORD dwHeight; + DWORD dwReserved[4]; +} + +const AVISF_DISABLED = 0x00000001; + +const AVISF_VIDEO_PALCHANGES = 0x00010000; + +struct AVIStreamHeader { + FOURCC fccType; + FOURCC fccHandler; + DWORD dwFlags; + WORD wPriority; + WORD wLanguage; + DWORD dwInitialFrames; + DWORD dwScale; + DWORD dwRate; + DWORD dwStart; + DWORD dwLength; + DWORD dwSuggestedBufferSize; + DWORD dwQuality; + DWORD dwSampleSize; + RECT rcFrame; +} + +enum { + AVIIF_FIRSTPART = 0x00000020L, + AVIIF_LASTPART = 0x00000040L, + AVIIF_MIDPART = (AVIIF_LASTPART|AVIIF_FIRSTPART), + AVIIF_NOTIME = 0x00000100L, + AVIIF_COMPUSE = 0x0FFF0000L, +} + +struct AVIINDEXENTRY { + DWORD ckid; + DWORD dwFlags; + DWORD dwChunkOffset; + DWORD dwChunkLength; +} + +struct AVIPALCHANGE { + BYTE bFirstEntry; + BYTE bNumEntries; + WORD wFlags; + PALETTEENTRY peNew[]; +} + +const AVIGETFRAMEF_BESTDISPLAYFMT = 1; + +struct AVISTREAMINFOW { + DWORD fccType; + DWORD fccHandler; + DWORD dwFlags; + DWORD dwCaps; + WORD wPriority; + WORD wLanguage; + DWORD dwScale; + DWORD dwRate; + DWORD dwStart; + DWORD dwLength; + DWORD dwInitialFrames; + DWORD dwSuggestedBufferSize; + DWORD dwQuality; + DWORD dwSampleSize; + RECT rcFrame; + DWORD dwEditCount; + DWORD dwFormatChangeCount; + WCHAR szName[64]; +} +alias AVISTREAMINFOW* LPAVISTREAMINFOW; + +struct AVISTREAMINFOA { + DWORD fccType; + DWORD fccHandler; + DWORD dwFlags; + DWORD dwCaps; + WORD wPriority; + WORD wLanguage; + DWORD dwScale; + DWORD dwRate; + DWORD dwStart; + DWORD dwLength; + DWORD dwInitialFrames; + DWORD dwSuggestedBufferSize; + DWORD dwQuality; + DWORD dwSampleSize; + RECT rcFrame; + DWORD dwEditCount; + DWORD dwFormatChangeCount; + char szName[64]; +} +alias AVISTREAMINFOA* LPAVISTREAMINFOA; + +version(Unicode) { + alias AVISTREAMINFOW AVISTREAMINFO; + alias LPAVISTREAMINFOW LPAVISTREAMINFO; +} else { // Unicode + alias AVISTREAMINFOA AVISTREAMINFO; + alias LPAVISTREAMINFOA LPAVISTREAMINFO; +} + +const AVISTREAMINFO_DISABLED = 0x00000001; +const AVISTREAMINFO_FORMATCHANGES = 0x00010000; + +struct AVIFILEINFOW { + DWORD dwMaxBytesPerSec; + DWORD dwFlags; + DWORD dwCaps; + DWORD dwStreams; + DWORD dwSuggestedBufferSize; + DWORD dwWidth; + DWORD dwHeight; + DWORD dwScale; + DWORD dwRate; + DWORD dwLength; + DWORD dwEditCount; + WCHAR szFileType[64]; +} +alias AVIFILEINFOW* LPAVIFILEINFOW; + +struct AVIFILEINFOA { + DWORD dwMaxBytesPerSec; + DWORD dwFlags; + DWORD dwCaps; + DWORD dwStreams; + DWORD dwSuggestedBufferSize; + DWORD dwWidth; + DWORD dwHeight; + DWORD dwScale; + DWORD dwRate; + DWORD dwLength; + DWORD dwEditCount; + char szFileType[64]; +} +alias AVIFILEINFOA* LPAVIFILEINFOA; + +version(Unicode) { + alias AVIFILEINFOW AVIFILEINFO; + alias LPAVIFILEINFOW LPAVIFILEINFO; +} else { // Unicode + alias AVIFILEINFOA AVIFILEINFO; + alias LPAVIFILEINFOA LPAVIFILEINFO; +} + +enum { + AVIFILEINFO_HASINDEX = 0x00000010, + AVIFILEINFO_MUSTUSEINDEX = 0x00000020, + AVIFILEINFO_ISINTERLEAVED = 0x00000100, + AVIFILEINFO_WASCAPTUREFILE = 0x00010000, + AVIFILEINFO_COPYRIGHTED = 0x00020000, +} + +enum { + AVIFILECAPS_CANREAD = 0x00000001, + AVIFILECAPS_CANWRITE = 0x00000002, + AVIFILECAPS_ALLKEYFRAMES = 0x00000010, + AVIFILECAPS_NOCOMPRESSION = 0x00000020, +} + +extern (Windows) { + alias BOOL function(int) AVISAVECALLBACK; +} + +struct AVICOMPRESSOPTIONS { + DWORD fccType; + DWORD fccHandler; + DWORD dwKeyFrameEvery; + DWORD dwQuality; + DWORD dwBytesPerSecond; + DWORD dwFlags; + LPVOID lpFormat; + DWORD cbFormat; + LPVOID lpParms; + DWORD cbParms; + DWORD dwInterleaveEvery; +} +alias AVICOMPRESSOPTIONS* LPAVICOMPRESSOPTIONS; + +enum { + AVICOMPRESSF_INTERLEAVE = 0x00000001, + AVICOMPRESSF_DATARATE = 0x00000002, + AVICOMPRESSF_KEYFRAMES = 0x00000004, + AVICOMPRESSF_VALID = 0x00000008, +} + +/+ TODO: +DECLARE_INTERFACE_(IAVIStream, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG,AddRef) (THIS) PURE; + STDMETHOD_(ULONG,Release) (THIS) PURE; + + STDMETHOD(Create) (THIS_ LPARAM lParam1, LPARAM lParam2) PURE ; + STDMETHOD(Info) (THIS_ AVISTREAMINFOW FAR * psi, LONG lSize) PURE ; + STDMETHOD_(LONG, FindSample)(THIS_ LONG lPos, LONG lFlags) PURE ; + STDMETHOD(ReadFormat) (THIS_ LONG lPos, + LPVOID lpFormat, LONG FAR *lpcbFormat) PURE ; + STDMETHOD(SetFormat) (THIS_ LONG lPos, + LPVOID lpFormat, LONG cbFormat) PURE ; + STDMETHOD(Read) (THIS_ LONG lStart, LONG lSamples, + LPVOID lpBuffer, LONG cbBuffer, + LONG FAR * plBytes, LONG FAR * plSamples) PURE ; + STDMETHOD(Write) (THIS_ LONG lStart, LONG lSamples, + LPVOID lpBuffer, LONG cbBuffer, + DWORD dwFlags, + LONG FAR *plSampWritten, + LONG FAR *plBytesWritten) PURE ; + STDMETHOD(Delete) (THIS_ LONG lStart, LONG lSamples) PURE; + STDMETHOD(ReadData) (THIS_ DWORD fcc, LPVOID lp, LONG FAR *lpcb) PURE ; + STDMETHOD(WriteData) (THIS_ DWORD fcc, LPVOID lp, LONG cb) PURE ; +#ifdef _WIN32 + STDMETHOD(SetInfo) (THIS_ AVISTREAMINFOW FAR * lpInfo, + LONG cbInfo) PURE; +#else + STDMETHOD(Reserved1) (THIS) PURE; + STDMETHOD(Reserved2) (THIS) PURE; + STDMETHOD(Reserved3) (THIS) PURE; + STDMETHOD(Reserved4) (THIS) PURE; + STDMETHOD(Reserved5) (THIS) PURE; +#endif +}; + +typedef IAVIStream FAR* PAVISTREAM; + +#undef INTERFACE +#define INTERFACE IAVIStreaming + +DECLARE_INTERFACE_(IAVIStreaming, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG,AddRef) (THIS) PURE; + STDMETHOD_(ULONG,Release) (THIS) PURE; + + STDMETHOD(Begin) (THIS_ + LONG lStart, + LONG lEnd, + LONG lRate) PURE; + STDMETHOD(End) (THIS) PURE; +}; + +typedef IAVIStreaming FAR* PAVISTREAMING; + + +#undef INTERFACE +#define INTERFACE IAVIEditStream + +DECLARE_INTERFACE_(IAVIEditStream, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG,AddRef) (THIS) PURE; + STDMETHOD_(ULONG,Release) (THIS) PURE; + + STDMETHOD(Cut) (THIS_ LONG FAR *plStart, + LONG FAR *plLength, + PAVISTREAM FAR * ppResult) PURE; + STDMETHOD(Copy) (THIS_ LONG FAR *plStart, + LONG FAR *plLength, + PAVISTREAM FAR * ppResult) PURE; + STDMETHOD(Paste) (THIS_ LONG FAR *plPos, + LONG FAR *plLength, + PAVISTREAM pstream, + LONG lStart, + LONG lEnd) PURE; + STDMETHOD(Clone) (THIS_ PAVISTREAM FAR *ppResult) PURE; + STDMETHOD(SetInfo) (THIS_ AVISTREAMINFOW FAR * lpInfo, + LONG cbInfo) PURE; +}; + +typedef IAVIEditStream FAR* PAVIEDITSTREAM; + +#undef INTERFACE +#define INTERFACE IAVIPersistFile + +DECLARE_INTERFACE_(IAVIPersistFile, IPersistFile) +{ + STDMETHOD(Reserved1)(THIS) PURE; +}; + +typedef IAVIPersistFile FAR* PAVIPERSISTFILE; + +#undef INTERFACE +#define INTERFACE IAVIFile +#define PAVIFILE IAVIFile FAR* + +DECLARE_INTERFACE_(IAVIFile, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG,AddRef) (THIS) PURE; + STDMETHOD_(ULONG,Release) (THIS) PURE; + + STDMETHOD(Info) (THIS_ + AVIFILEINFOW FAR * pfi, + LONG lSize) PURE; + STDMETHOD(GetStream) (THIS_ + PAVISTREAM FAR * ppStream, + DWORD fccType, + LONG lParam) PURE; + STDMETHOD(CreateStream) (THIS_ + PAVISTREAM FAR * ppStream, + AVISTREAMINFOW FAR * psi) PURE; + STDMETHOD(WriteData) (THIS_ + DWORD ckid, + LPVOID lpData, + LONG cbData) PURE; + STDMETHOD(ReadData) (THIS_ + DWORD ckid, + LPVOID lpData, + LONG FAR *lpcbData) PURE; + STDMETHOD(EndRecord) (THIS) PURE; + STDMETHOD(DeleteStream) (THIS_ + DWORD fccType, + LONG lParam) PURE; +}; + +#undef PAVIFILE +typedef IAVIFile FAR* PAVIFILE; + +#undef INTERFACE +#define INTERFACE IGetFrame +#define PGETFRAME IGetFrame FAR* + +DECLARE_INTERFACE_(IGetFrame, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG,AddRef) (THIS) PURE; + STDMETHOD_(ULONG,Release) (THIS) PURE; + + STDMETHOD_(LPVOID,GetFrame) (THIS_ LONG lPos) PURE; + + STDMETHOD(Begin) (THIS_ LONG lStart, LONG lEnd, LONG lRate) PURE; + STDMETHOD(End) (THIS) PURE; + + STDMETHOD(SetFormat) (THIS_ LPBITMAPINFOHEADER lpbi, LPVOID lpBits, int x, int y, int dx, int dy) PURE; +}; + +#undef PGETFRAME +typedef IGetFrame FAR* PGETFRAME; + +#define DEFINE_AVIGUID(name, l, w1, w2) DEFINE_GUID(name, l, w1, w2, 0xC0,0,0,0,0,0,0,0x46) + +DEFINE_AVIGUID(IID_IAVIFile, 0x00020020, 0, 0); +DEFINE_AVIGUID(IID_IAVIStream, 0x00020021, 0, 0); +DEFINE_AVIGUID(IID_IAVIStreaming, 0x00020022, 0, 0); +DEFINE_AVIGUID(IID_IGetFrame, 0x00020023, 0, 0); +DEFINE_AVIGUID(IID_IAVIEditStream, 0x00020024, 0, 0); +DEFINE_AVIGUID(IID_IAVIPersistFile, 0x00020025, 0, 0); +#ifndef UNICODE +DEFINE_AVIGUID(CLSID_AVISimpleUnMarshal, 0x00020009, 0, 0); +#endif + +DEFINE_AVIGUID(CLSID_AVIFile, 0x00020000, 0, 0); + +#define AVIFILEHANDLER_CANREAD 0x0001 +#define AVIFILEHANDLER_CANWRITE 0x0002 +#define AVIFILEHANDLER_CANACCEPTNONRGB 0x0004 + +STDAPI_(void) AVIFileInit(void); +STDAPI_(void) AVIFileExit(void); + +STDAPI_(ULONG) AVIFileAddRef (PAVIFILE pfile); +STDAPI_(ULONG) AVIFileRelease (PAVIFILE pfile); + +#ifdef _WIN32 +STDAPI AVIFileOpenA (PAVIFILE FAR * ppfile, LPCSTR szFile, + UINT uMode, LPCLSID lpHandler); +STDAPI AVIFileOpenW (PAVIFILE FAR * ppfile, LPCWSTR szFile, + UINT uMode, LPCLSID lpHandler); +#ifdef UNICODE +#define AVIFileOpen AVIFileOpenW +#else +#define AVIFileOpen AVIFileOpenA +#endif +#else +STDAPI AVIFileOpen (PAVIFILE FAR * ppfile, LPCSTR szFile, + UINT uMode, LPCLSID lpHandler); +#define AVIFileOpenW AVIFileOpen +#endif + +#ifdef _WIN32 +STDAPI AVIFileInfoW (PAVIFILE pfile, LPAVIFILEINFOW pfi, LONG lSize); +STDAPI AVIFileInfoA (PAVIFILE pfile, LPAVIFILEINFOA pfi, LONG lSize); +#ifdef UNICODE +#define AVIFileInfo AVIFileInfoW +#else +#define AVIFileInfo AVIFileInfoA +#endif +#else +STDAPI AVIFileInfo (PAVIFILE pfile, LPAVIFILEINFO pfi, LONG lSize); +#define AVIFileInfoW AVIFileInfo +#endif + + +STDAPI AVIFileGetStream (PAVIFILE pfile, PAVISTREAM FAR * ppavi, DWORD fccType, LONG lParam); + + +#ifdef _WIN32 +STDAPI AVIFileCreateStreamW (PAVIFILE pfile, PAVISTREAM FAR *ppavi, AVISTREAMINFOW FAR * psi); +STDAPI AVIFileCreateStreamA (PAVIFILE pfile, PAVISTREAM FAR *ppavi, AVISTREAMINFOA FAR * psi); +#ifdef UNICODE +#define AVIFileCreateStream AVIFileCreateStreamW +#else +#define AVIFileCreateStream AVIFileCreateStreamA +#endif +#else +STDAPI AVIFileCreateStream(PAVIFILE pfile, PAVISTREAM FAR *ppavi, AVISTREAMINFO FAR * psi); +#define AVIFileCreateStreamW AVIFileCreateStream +#endif + +STDAPI AVIFileWriteData (PAVIFILE pfile, + DWORD ckid, + LPVOID lpData, + LONG cbData); +STDAPI AVIFileReadData (PAVIFILE pfile, + DWORD ckid, + LPVOID lpData, + LONG FAR *lpcbData); +STDAPI AVIFileEndRecord (PAVIFILE pfile); + +STDAPI_(ULONG) AVIStreamAddRef (PAVISTREAM pavi); +STDAPI_(ULONG) AVIStreamRelease (PAVISTREAM pavi); + +STDAPI AVIStreamInfoW (PAVISTREAM pavi, LPAVISTREAMINFOW psi, LONG lSize); +STDAPI AVIStreamInfoA (PAVISTREAM pavi, LPAVISTREAMINFOA psi, LONG lSize); +#ifdef UNICODE +#define AVIStreamInfo AVIStreamInfoW +#else +#define AVIStreamInfo AVIStreamInfoA +#endif + +STDAPI_(LONG) AVIStreamFindSample(PAVISTREAM pavi, LONG lPos, LONG lFlags); +STDAPI AVIStreamReadFormat (PAVISTREAM pavi, LONG lPos,LPVOID lpFormat,LONG FAR *lpcbFormat); +STDAPI AVIStreamSetFormat (PAVISTREAM pavi, LONG lPos,LPVOID lpFormat,LONG cbFormat); +STDAPI AVIStreamReadData (PAVISTREAM pavi, DWORD fcc, LPVOID lp, LONG FAR *lpcb); +STDAPI AVIStreamWriteData (PAVISTREAM pavi, DWORD fcc, LPVOID lp, LONG cb); + +STDAPI AVIStreamRead (PAVISTREAM pavi, + LONG lStart, + LONG lSamples, + LPVOID lpBuffer, + LONG cbBuffer, + LONG FAR * plBytes, + LONG FAR * plSamples); +#define AVISTREAMREAD_CONVENIENT (-1L) + +STDAPI AVIStreamWrite (PAVISTREAM pavi, + LONG lStart, LONG lSamples, + LPVOID lpBuffer, LONG cbBuffer, DWORD dwFlags, + LONG FAR *plSampWritten, + LONG FAR *plBytesWritten); + +STDAPI_(LONG) AVIStreamStart (PAVISTREAM pavi); +STDAPI_(LONG) AVIStreamLength (PAVISTREAM pavi); +STDAPI_(LONG) AVIStreamTimeToSample (PAVISTREAM pavi, LONG lTime); +STDAPI_(LONG) AVIStreamSampleToTime (PAVISTREAM pavi, LONG lSample); + + +STDAPI AVIStreamBeginStreaming(PAVISTREAM pavi, LONG lStart, LONG lEnd, LONG lRate); +STDAPI AVIStreamEndStreaming(PAVISTREAM pavi); + +STDAPI_(PGETFRAME) AVIStreamGetFrameOpen(PAVISTREAM pavi, + LPBITMAPINFOHEADER lpbiWanted); +STDAPI_(LPVOID) AVIStreamGetFrame(PGETFRAME pg, LONG lPos); +STDAPI AVIStreamGetFrameClose(PGETFRAME pg); + +STDAPI AVIStreamOpenFromFileA(PAVISTREAM FAR *ppavi, LPCSTR szFile, + DWORD fccType, LONG lParam, + UINT mode, CLSID FAR *pclsidHandler); +STDAPI AVIStreamOpenFromFileW(PAVISTREAM FAR *ppavi, LPCWSTR szFile, + DWORD fccType, LONG lParam, + UINT mode, CLSID FAR *pclsidHandler); +#ifdef UNICODE +#define AVIStreamOpenFromFile AVIStreamOpenFromFileW +#else +#define AVIStreamOpenFromFile AVIStreamOpenFromFileA +#endif + +STDAPI AVIStreamCreate(PAVISTREAM FAR *ppavi, LONG lParam1, LONG lParam2, + CLSID FAR *pclsidHandler); + + + +#define FIND_DIR 0x0000000FL +#define FIND_NEXT 0x00000001L +#define FIND_PREV 0x00000004L +#define FIND_FROM_START 0x00000008L + +#define FIND_TYPE 0x000000F0L +#define FIND_KEY 0x00000010L +#define FIND_ANY 0x00000020L +#define FIND_FORMAT 0x00000040L + +#define FIND_RET 0x0000F000L +#define FIND_POS 0x00000000L +#define FIND_LENGTH 0x00001000L +#define FIND_OFFSET 0x00002000L +#define FIND_SIZE 0x00003000L +#define FIND_INDEX 0x00004000L + +#define AVIStreamFindKeyFrame AVIStreamFindSample +#define FindKeyFrame FindSample + +#define AVIStreamClose AVIStreamRelease +#define AVIFileClose AVIFileRelease +#define AVIStreamInit AVIFileInit +#define AVIStreamExit AVIFileExit + +#define SEARCH_NEAREST FIND_PREV +#define SEARCH_BACKWARD FIND_PREV +#define SEARCH_FORWARD FIND_NEXT +#define SEARCH_KEY FIND_KEY +#define SEARCH_ANY FIND_ANY + +#define AVIStreamSampleToSample(pavi1, pavi2, l) AVIStreamTimeToSample(pavi1,AVIStreamSampleToTime(pavi2, l)) + +#define AVIStreamNextSample(pavi, l) AVIStreamFindSample(pavi,l+1,FIND_NEXT|FIND_ANY) + +#define AVIStreamPrevSample(pavi, l) AVIStreamFindSample(pavi,l-1,FIND_PREV|FIND_ANY) + +#define AVIStreamNearestSample(pavi, l) AVIStreamFindSample(pavi,l,FIND_PREV|FIND_ANY) + +#define AVIStreamNextKeyFrame(pavi,l) AVIStreamFindSample(pavi,l+1,FIND_NEXT|FIND_KEY) + +#define AVIStreamPrevKeyFrame(pavi, l) AVIStreamFindSample(pavi,l-1,FIND_PREV|FIND_KEY) + +#define AVIStreamNearestKeyFrame(pavi, l) AVIStreamFindSample(pavi,l,FIND_PREV|FIND_KEY) + +#define AVIStreamIsKeyFrame(pavi, l) (AVIStreamNearestKeyFrame(pavi,l) == l) + +#define AVIStreamPrevSampleTime(pavi, t) AVIStreamSampleToTime(pavi, AVIStreamPrevSample(pavi,AVIStreamTimeToSample(pavi,t))) + +#define AVIStreamNextSampleTime(pavi, t) AVIStreamSampleToTime(pavi, AVIStreamNextSample(pavi,AVIStreamTimeToSample(pavi,t))) + +#define AVIStreamNearestSampleTime(pavi, t) AVIStreamSampleToTime(pavi, AVIStreamNearestSample(pavi,AVIStreamTimeToSample(pavi,t))) + +#define AVIStreamNextKeyFrameTime(pavi, t) AVIStreamSampleToTime(pavi, AVIStreamNextKeyFrame(pavi,AVIStreamTimeToSample(pavi, t))) + +#define AVIStreamPrevKeyFrameTime(pavi, t) AVIStreamSampleToTime(pavi, AVIStreamPrevKeyFrame(pavi,AVIStreamTimeToSample(pavi, t))) + +#define AVIStreamNearestKeyFrameTime(pavi, t) AVIStreamSampleToTime(pavi, AVIStreamNearestKeyFrame(pavi,AVIStreamTimeToSample(pavi, t))) + +#define AVIStreamStartTime(pavi) AVIStreamSampleToTime(pavi, AVIStreamStart(pavi)) + +#define AVIStreamLengthTime(pavi) AVIStreamSampleToTime(pavi, AVIStreamLength(pavi)) + +#define AVIStreamEnd(pavi) (AVIStreamStart(pavi) + AVIStreamLength(pavi)) + +#define AVIStreamEndTime(pavi) AVIStreamSampleToTime(pavi, AVIStreamEnd(pavi)) + +#define AVIStreamSampleSize(pavi, lPos, plSize) AVIStreamRead(pavi,lPos,1,NULL,0,plSize,NULL) + +#define AVIStreamFormatSize(pavi, lPos, plSize) AVIStreamReadFormat(pavi,lPos,NULL,plSize) + +#define AVIStreamDataSize(pavi, fcc, plSize) AVIStreamReadData(pavi,fcc,NULL,plSize) + +#ifndef comptypeDIB +#define comptypeDIB mmioFOURCC('D', 'I', 'B', ' ') +#endif + +STDAPI AVIMakeCompressedStream( + PAVISTREAM FAR * ppsCompressed, + PAVISTREAM ppsSource, + AVICOMPRESSOPTIONS FAR * lpOptions, + CLSID FAR *pclsidHandler); + +EXTERN_C HRESULT CDECL AVISaveA (LPCSTR szFile, + CLSID FAR *pclsidHandler, + AVISAVECALLBACK lpfnCallback, + int nStreams, + PAVISTREAM pfile, + LPAVICOMPRESSOPTIONS lpOptions, + ...); + +STDAPI AVISaveVA(LPCSTR szFile, + CLSID FAR *pclsidHandler, + AVISAVECALLBACK lpfnCallback, + int nStreams, + PAVISTREAM FAR * ppavi, + LPAVICOMPRESSOPTIONS FAR *plpOptions); +EXTERN_C HRESULT CDECL AVISaveW (LPCWSTR szFile, + CLSID FAR *pclsidHandler, + AVISAVECALLBACK lpfnCallback, + int nStreams, + PAVISTREAM pfile, + LPAVICOMPRESSOPTIONS lpOptions, + ...); + +STDAPI AVISaveVW(LPCWSTR szFile, + CLSID FAR *pclsidHandler, + AVISAVECALLBACK lpfnCallback, + int nStreams, + PAVISTREAM FAR * ppavi, + LPAVICOMPRESSOPTIONS FAR *plpOptions); +#ifdef UNICODE +#define AVISave AVISaveW +#define AVISaveV AVISaveVW +#else +#define AVISave AVISaveA +#define AVISaveV AVISaveVA +#endif + + + +STDAPI_(INT_PTR) AVISaveOptions(HWND hwnd, + UINT uiFlags, + int nStreams, + PAVISTREAM FAR *ppavi, + LPAVICOMPRESSOPTIONS FAR *plpOptions); + +STDAPI AVISaveOptionsFree(int nStreams, + LPAVICOMPRESSOPTIONS FAR *plpOptions); + +STDAPI AVIBuildFilterW(LPWSTR lpszFilter, LONG cbFilter, BOOL fSaving); +STDAPI AVIBuildFilterA(LPSTR lpszFilter, LONG cbFilter, BOOL fSaving); +#ifdef UNICODE +#define AVIBuildFilter AVIBuildFilterW +#else +#define AVIBuildFilter AVIBuildFilterA +#endif +STDAPI AVIMakeFileFromStreams(PAVIFILE FAR * ppfile, + int nStreams, + PAVISTREAM FAR * papStreams); + +STDAPI AVIMakeStreamFromClipboard(UINT cfFormat, HANDLE hGlobal, PAVISTREAM FAR *ppstream); + +STDAPI AVIPutFileOnClipboard(PAVIFILE pf); + +STDAPI AVIGetFromClipboard(PAVIFILE FAR * lppf); + +STDAPI AVIClearClipboard(void); + +STDAPI CreateEditableStream( + PAVISTREAM FAR * ppsEditable, + PAVISTREAM psSource); + +STDAPI EditStreamCut(PAVISTREAM pavi, LONG FAR *plStart, LONG FAR *plLength, PAVISTREAM FAR * ppResult); + +STDAPI EditStreamCopy(PAVISTREAM pavi, LONG FAR *plStart, LONG FAR *plLength, PAVISTREAM FAR * ppResult); + +STDAPI EditStreamPaste(PAVISTREAM pavi, LONG FAR *plPos, LONG FAR *plLength, PAVISTREAM pstream, LONG lStart, LONG lEnd); + +STDAPI EditStreamClone(PAVISTREAM pavi, PAVISTREAM FAR *ppResult); + + +STDAPI EditStreamSetNameA(PAVISTREAM pavi, LPCSTR lpszName); +STDAPI EditStreamSetNameW(PAVISTREAM pavi, LPCWSTR lpszName); +STDAPI EditStreamSetInfoW(PAVISTREAM pavi, LPAVISTREAMINFOW lpInfo, LONG cbInfo); +STDAPI EditStreamSetInfoA(PAVISTREAM pavi, LPAVISTREAMINFOA lpInfo, LONG cbInfo); +#ifdef UNICODE +#define EditStreamSetInfo EditStreamSetInfoW +#define EditStreamSetName EditStreamSetNameW +#else +#define EditStreamSetInfo EditStreamSetInfoA +#define EditStreamSetName EditStreamSetNameA +#endif ++/ +const AVIERR_OK = 0L; + +SCODE MAKE_AVIERR(DWORD error) { + return MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x4000 + error); +} + +const AVIERR_UNSUPPORTED = MAKE_AVIERR(101); +const AVIERR_BADFORMAT = MAKE_AVIERR(102); +const AVIERR_MEMORY = MAKE_AVIERR(103); +const AVIERR_INTERNAL = MAKE_AVIERR(104); +const AVIERR_BADFLAGS = MAKE_AVIERR(105); +const AVIERR_BADPARAM = MAKE_AVIERR(106); +const AVIERR_BADSIZE = MAKE_AVIERR(107); +const AVIERR_BADHANDLE = MAKE_AVIERR(108); +const AVIERR_FILEREAD = MAKE_AVIERR(109); +const AVIERR_FILEWRITE = MAKE_AVIERR(110); +const AVIERR_FILEOPEN = MAKE_AVIERR(111); +const AVIERR_COMPRESSOR = MAKE_AVIERR(112); +const AVIERR_NOCOMPRESSOR = MAKE_AVIERR(113); +const AVIERR_READONLY = MAKE_AVIERR(114); +const AVIERR_NODATA = MAKE_AVIERR(115); +const AVIERR_BUFFERTOOSMALL = MAKE_AVIERR(116); +const AVIERR_CANTCOMPRESS = MAKE_AVIERR(117); +const AVIERR_USERABORT = MAKE_AVIERR(198); +const AVIERR_ERROR = MAKE_AVIERR(199); + +const TCHAR[] MCIWND_WINDOW_CLASS = "MCIWndClass"; + +extern (Windows) { + HWND MCIWndCreateA(HWND hwndParent, HINSTANCE hInstance, DWORD dwStyle, LPCSTR szFile); + HWND MCIWndCreateW(HWND hwndParent, HINSTANCE hInstance, DWORD dwStyle, LPCWSTR szFile); +} + +version(Unicode) { + alias MCIWndCreateW MCIWndCreate; +} else { // Unicode + alias MCIWndCreateA MCIWndCreate; +} + +extern(Windows) { + BOOL MCIWndRegisterClass(); +} + +enum { + MCIWNDOPENF_NEW = 0x0001, + MCIWNDF_NOAUTOSIZEWINDOW = 0x0001, + MCIWNDF_NOPLAYBAR = 0x0002, + MCIWNDF_NOAUTOSIZEMOVIE = 0x0004, + MCIWNDF_NOMENU = 0x0008, + MCIWNDF_SHOWNAME = 0x0010, + MCIWNDF_SHOWPOS = 0x0020, + MCIWNDF_SHOWMODE = 0x0040, + MCIWNDF_SHOWALL = 0x0070, + MCIWNDF_NOTIFYMODE = 0x0100, + MCIWNDF_NOTIFYPOS = 0x0200, + MCIWNDF_NOTIFYSIZE = 0x0400, + MCIWNDF_NOTIFYERROR = 0x1000, + MCIWNDF_NOTIFYALL = 0x1F00, + MCIWNDF_NOTIFYANSI = 0x0080, + MCIWNDF_NOTIFYMEDIAA = 0x0880, + MCIWNDF_NOTIFYMEDIAW = 0x0800, +} + +version(Unicode) { + alias MCIWNDF_NOTIFYMEDIAW MCIWNDF_NOTIFYMEDIA; +} else { // Unicode + alias MCIWNDF_NOTIFYMEDIAA MCIWNDF_NOTIFYMEDIA; +} + +enum { + MCIWNDF_RECORD = 0x2000, + MCIWNDF_NOERRORDLG = 0x4000, + MCIWNDF_NOOPEN = 0x8000, +} + +// can macros + +BOOL MCIWndCanPlay(HWND hwnd) + { return cast(BOOL)SendMessage(hwnd, MCIWNDM_CAN_PLAY, 0, 0); } +BOOL MCIWndCanRecord(HWND hwnd) + { return cast(BOOL)SendMessage(hwnd, MCIWNDM_CAN_RECORD, 0, 0); } +BOOL MCIWndCanSave(HWND hwnd) + { return cast(BOOL)SendMessage(hwnd, MCIWNDM_CAN_SAVE, 0, 0); } +BOOL MCIWndCanWindow(HWND hwnd) + { return cast(BOOL)SendMessage(hwnd, MCIWNDM_CAN_WINDOW, 0, 0); } +BOOL MCIWndCanEject(HWND hwnd) + { return cast(BOOL)SendMessage(hwnd, MCIWNDM_CAN_EJECT, 0, 0); } +BOOL MCIWndCanConfig(HWND hwnd) + { return cast(BOOL)SendMessage(hwnd, MCIWNDM_CAN_CONFIG, 0, 0); } +BOOL MCIWndPaletteKick(HWND hwnd) + { return cast(BOOL)SendMessage(hwnd, MCIWNDM_PALETTEKICK, 0, 0); } +LONG MCIWndSave(HWND hwnd, LPVOID szFile) + { return cast(LONG)SendMessage(hwnd, MCI_SAVE, 0, cast(LPARAM)szFile); } +LONG MCIWndSaveDialog(HWND hwnd) + { return MCIWndSave(hwnd, cast(LPVOID)-1); } +LONG MCIWndNew(HWND hwnd, LPVOID lp) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_NEW, 0, cast(LPARAM)lp); } +LONG MCIWndRecord(HWND hwnd) + { return cast(LONG)SendMessage(hwnd, MCI_RECORD, 0, 0); } +LONG MCIWndOpen(HWND hwnd, LPVOID sz, UINT f) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_OPEN, cast(WPARAM)f, cast(LPARAM)sz); } +LONG MCIWndOpenDialog(HWND hwnd) + { return MCIWndOpen(hwnd, cast(LPVOID)-1, 0); } +LONG MCIWndClose(HWND hwnd) + { return cast(LONG)SendMessage(hwnd, MCI_CLOSE, 0, 0); } +LONG MCIWndPlay(HWND hwnd) + { return cast(LONG)SendMessage(hwnd, MCI_PLAY, 0, 0); } +LONG MCIWndStop(HWND hwnd) + { return cast(LONG)SendMessage(hwnd, MCI_STOP, 0, 0); } +LONG MCIWndPause(HWND hwnd) + { return cast(LONG)SendMessage(hwnd, MCI_PAUSE, 0, 0); } +LONG MCIWndResume(HWND hwnd) + { return cast(LONG)SendMessage(hwnd, MCI_RESUME, 0, 0); } +LONG MCIWndSeek(HWND hwnd, LONG lPos) + { return cast(LONG)SendMessage(hwnd, MCI_SEEK, 0, cast(LPARAM)lPos); } +LONG MCIWndHome(HWND hwnd) + { return MCIWndSeek(hwnd, MCIWND_START); } +LONG MCIWndEnd(HWND hwnd) + { return MCIWndSeek(hwnd, MCIWND_END); } +LONG MCIWndEject(HWND hwnd) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_EJECT, 0, 0); } +LONG MCIWndGetSource(HWND hwnd, LPRECT prc) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_GET_SOURCE, 0, cast(LPARAM)prc); } +LONG MCIWndPutSource(HWND hwnd, LPRECT prc) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_PUT_SOURCE, 0, cast(LPARAM)prc); } +LONG MCIWndGetDest(HWND hwnd, LPRECT prc) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_GET_DEST, 0, cast(LPARAM)prc); } +LONG MCIWndPutDest(HWND hwnd, LPRECT prc) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_PUT_DEST, 0, cast(LPARAM)prc); } +LONG MCIWndPlayReverse(HWND hwnd) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_PLAYREVERSE, 0, 0); } +LONG MCIWndPlayFrom(HWND hwnd, LONG lPos) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_PLAYFROM, 0, cast(LPARAM)lPos); } +LONG MCIWndPlayTo(HWND hwnd, LONG lPos) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_PLAYTO, 0, cast(LPARAM)lPos); } +LONG MCIWndPlayFromTo(HWND hwnd, LONG lStart, LONG lEnd) + { MCIWndSeek(hwnd, lStart); return MCIWndPlayTo(hwnd, lEnd); } +UINT MCIWndGetDeviceID(HWND hwnd) + { return cast(UINT)SendMessage(hwnd, MCIWNDM_GETDEVICEID, 0, 0); } +UINT MCIWndGetAlias(HWND hwnd) + { return cast(UINT)SendMessage(hwnd, MCIWNDM_GETALIAS, 0, 0); } +LONG MCIWndGetMode(HWND hwnd, LPTSTR lp, UINT len) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETMODE, cast(WPARAM)len, cast(LPARAM)lp); } +LONG MCIWndGetPosition(HWND hwnd) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETPOSITION, 0, 0); } +LONG MCIWndGetPositionString(HWND hwnd, LPTSTR lp, UINT len) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETPOSITION, cast(WPARAM)len, cast(LPARAM)lp); } +LONG MCIWndGetStart(HWND hwnd) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETSTART, 0, 0); } +LONG MCIWndGetLength(HWND hwnd) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETLENGTH, 0, 0); } +LONG MCIWndGetEnd(HWND hwnd) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETEND, 0, 0); } +LONG MCIWndStep(HWND hwnd, LONG n) + { return cast(LONG)SendMessage(hwnd, MCI_STEP, 0, cast(LPARAM)n); } +void MCIWndDestroy(HWND hwnd) + { SendMessage(hwnd, WM_CLOSE, 0, 0); } +void MCIWndSetZoom(HWND hwnd, UINT iZoom) + { SendMessage(hwnd, MCIWNDM_SETZOOM, 0, cast(LPARAM)iZoom); } +UINT MCIWndGetZoom(HWND hwnd) + { return cast(UINT)SendMessage(hwnd, MCIWNDM_GETZOOM, 0, 0); } +LONG MCIWndSetVolume(HWND hwnd, UINT iVol) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_SETVOLUME, 0, cast(LPARAM)iVol); } +LONG MCIWndGetVolume(HWND hwnd) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETVOLUME, 0, 0); } +LONG MCIWndSetSpeed(HWND hwnd, UINT iSpeed) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_SETSPEED, 0, cast(LPARAM)iSpeed); } +LONG MCIWndGetSpeed(HWND hwnd) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETSPEED, 0, 0); } +LONG MCIWndSetTimeFormat(HWND hwnd, LPTSTR lp) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_SETTIMEFORMAT, 0, cast(LPARAM)lp); } +LONG MCIWndUseFrames(HWND hwnd) + { return MCIWndSetTimeFormat(hwnd, (cast(TCHAR[])"frames").ptr); } +LONG MCIWndUseTime(HWND hwnd) + { return MCIWndSetTimeFormat(hwnd, (cast(TCHAR[])"ms").ptr); } +LONG MCIWndGetTimeFormat(HWND hwnd, LPTSTR lp, UINT len) + { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETTIMEFORMAT, cast(WPARAM)len, cast(LPARAM)lp); } +void MCIWndValidateMedia(HWND hwnd) + { SendMessage(hwnd, MCIWNDM_VALIDATEMEDIA, 0, 0); } +void MCIWndSetRepeat(HWND hwnd, BOOL f) + { SendMessage(hwnd, MCIWNDM_SETREPEAT, 0, cast(LPARAM)f); } +BOOL MCIWndGetRepeat(HWND hwnd) + { return cast(BOOL)SendMessage(hwnd, MCIWNDM_GETREPEAT, 0, 0); } +void MCIWndSetActiveTimer(HWND hwnd, UINT active) + { SendMessage(hwnd, MCIWNDM_SETACTIVETIMER, cast(WPARAM)active, 0); } +void MCIWndSetInactiveTimer(HWND hwnd, UINT inactive) + { SendMessage(hwnd, MCIWNDM_SETINACTIVETIMER, cast(WPARAM)inactive, 0); } +void MCIWndSetTimers(HWND hwnd, UINT active, UINT inactive) + { SendMessage(hwnd, MCIWNDM_SETTIMERS, cast(WPARAM)active, cast(LPARAM)inactive); } +UINT MCIWndGetActiveTimer(HWND hwnd) + { return cast(UINT)SendMessage(hwnd, MCIWNDM_GETACTIVETIMER, 0, 0); } +UINT MCIWndGetInactiveTimer(HWND hwnd) + { return cast(UINT)SendMessage(hwnd, MCIWNDM_GETINACTIVETIMER, 0, 0); } +LONG MCIWndRealize(HWND hwnd, BOOL fBkgnd) + { return SendMessage(hwnd, MCIWNDM_REALIZE, cast(WPARAM)fBkgnd, 0); } +LONG MCIWndSendString(HWND hwnd, LPTSTR sz) + { return SendMessage(hwnd, MCIWNDM_SENDSTRING, 0, cast(LPARAM)sz); } +LONG MCIWndReturnString(HWND hwnd, LPVOID lp, UINT len) + { return SendMessage(hwnd, MCIWNDM_RETURNSTRING, cast(WPARAM)len, cast(LPARAM)lp); } +LONG MCIWndGetError(HWND hwnd, LPVOID lp, UINT len) + { return SendMessage(hwnd, MCIWNDM_GETERROR, cast(WPARAM)len, cast(LPARAM)lp); } +HPALETTE MCIWndGetPalette(HWND hwnd) + { return cast(HPALETTE)SendMessage(hwnd, MCIWNDM_GETPALETTE, 0, 0); } +LONG MCIWndSetPalette(HWND hwnd, HPALETTE hpal) + { return SendMessage(hwnd, MCIWNDM_SETPALETTE, cast(WPARAM)hpal, 0); } +LONG MCIWndGetFileName(HWND hwnd, LPVOID lp, UINT len) + { return SendMessage(hwnd, MCIWNDM_GETFILENAME, cast(WPARAM)len, cast(LPARAM)lp); } +LONG MCIWndGetDevice(HWND hwnd, LPVOID lp, UINT len) + { return SendMessage(hwnd, MCIWNDM_GETDEVICE, cast(WPARAM)len, cast(LPARAM)lp); } +UINT MCIWndGetStyles(HWND hwnd) + { return SendMessage(hwnd, MCIWNDM_GETSTYLES, 0, 0); } +LONG MCIWndChangeStyles(HWND hwnd, UINT mask, LONG value) + { return SendMessage(hwnd, MCIWNDM_CHANGESTYLES, cast(WPARAM)mask, cast(LPARAM)value); } +LONG MCIWndOpenInterface(HWND hwnd, LPUNKNOWN pUnk) + { return SendMessage(hwnd, MCIWNDM_OPENINTERFACE, 0, cast(LPARAM)cast(void*)pUnk); } +LONG MCIWndSetOwner(HWND hwnd, HWND hwndP) + { return SendMessage(hwnd, MCIWNDM_SETOWNER, cast(WPARAM)hwndP, 0); } + +enum { + MCIWNDM_GETDEVICEID = WM_USER + 100, + MCIWNDM_SENDSTRINGA = WM_USER + 101, + MCIWNDM_GETPOSITIONA = WM_USER + 102, + MCIWNDM_GETSTART = WM_USER + 103, + MCIWNDM_GETLENGTH = WM_USER + 104, + MCIWNDM_GETEND = WM_USER + 105, + MCIWNDM_GETMODEA = WM_USER + 106, + MCIWNDM_EJECT = WM_USER + 107, + MCIWNDM_SETZOOM = WM_USER + 108, + MCIWNDM_GETZOOM = WM_USER + 109, + MCIWNDM_SETVOLUME = WM_USER + 110, + MCIWNDM_GETVOLUME = WM_USER + 111, + MCIWNDM_SETSPEED = WM_USER + 112, + MCIWNDM_GETSPEED = WM_USER + 113, + MCIWNDM_SETREPEAT = WM_USER + 114, + MCIWNDM_GETREPEAT = WM_USER + 115, + MCIWNDM_REALIZE = WM_USER + 118, + MCIWNDM_SETTIMEFORMATA = WM_USER + 119, + MCIWNDM_GETTIMEFORMATA = WM_USER + 120, + MCIWNDM_VALIDATEMEDIA = WM_USER + 121, + MCIWNDM_PLAYFROM = WM_USER + 122, + MCIWNDM_PLAYTO = WM_USER + 123, + MCIWNDM_GETFILENAMEA = WM_USER + 124, + MCIWNDM_GETDEVICEA = WM_USER + 125, + MCIWNDM_GETPALETTE = WM_USER + 126, + MCIWNDM_SETPALETTE = WM_USER + 127, + MCIWNDM_GETERRORA = WM_USER + 128, + MCIWNDM_SETTIMERS = WM_USER + 129, + MCIWNDM_SETACTIVETIMER = WM_USER + 130, + MCIWNDM_SETINACTIVETIMER = WM_USER + 131, + MCIWNDM_GETACTIVETIMER = WM_USER + 132, + MCIWNDM_GETINACTIVETIMER = WM_USER + 133, + MCIWNDM_NEWA = WM_USER + 134, + MCIWNDM_CHANGESTYLES = WM_USER + 135, + MCIWNDM_GETSTYLES = WM_USER + 136, + MCIWNDM_GETALIAS = WM_USER + 137, + MCIWNDM_RETURNSTRINGA = WM_USER + 138, + MCIWNDM_PLAYREVERSE = WM_USER + 139, + MCIWNDM_GET_SOURCE = WM_USER + 140, + MCIWNDM_PUT_SOURCE = WM_USER + 141, + MCIWNDM_GET_DEST = WM_USER + 142, + MCIWNDM_PUT_DEST = WM_USER + 143, + MCIWNDM_CAN_PLAY = WM_USER + 144, + MCIWNDM_CAN_WINDOW = WM_USER + 145, + MCIWNDM_CAN_RECORD = WM_USER + 146, + MCIWNDM_CAN_SAVE = WM_USER + 147, + MCIWNDM_CAN_EJECT = WM_USER + 148, + MCIWNDM_CAN_CONFIG = WM_USER + 149, + MCIWNDM_PALETTEKICK = WM_USER + 150, + MCIWNDM_OPENINTERFACE = WM_USER + 151, + MCIWNDM_SETOWNER = WM_USER + 152, + MCIWNDM_OPENA = WM_USER + 153, + MCIWNDM_SENDSTRINGW = WM_USER + 201, + MCIWNDM_GETPOSITIONW = WM_USER + 202, + MCIWNDM_GETMODEW = WM_USER + 206, + MCIWNDM_SETTIMEFORMATW = WM_USER + 219, + MCIWNDM_GETTIMEFORMATW = WM_USER + 220, + MCIWNDM_GETFILENAMEW = WM_USER + 224, + MCIWNDM_GETDEVICEW = WM_USER + 225, + MCIWNDM_GETERRORW = WM_USER + 228, + MCIWNDM_NEWW = WM_USER + 234, + MCIWNDM_RETURNSTRINGW = WM_USER + 238, + MCIWNDM_OPENW = WM_USER + 252, +} + +version(Unicode) { + alias MCIWNDM_SENDSTRINGW MCIWNDM_SENDSTRING; + alias MCIWNDM_GETPOSITIONW MCIWNDM_GETPOSITION; + alias MCIWNDM_GETMODEW MCIWNDM_GETMODE; + alias MCIWNDM_SETTIMEFORMATW MCIWNDM_SETTIMEFORMAT; + alias MCIWNDM_GETTIMEFORMATW MCIWNDM_GETTIMEFORMAT; + alias MCIWNDM_GETFILENAMEW MCIWNDM_GETFILENAME; + alias MCIWNDM_GETDEVICEW MCIWNDM_GETDEVICE; + alias MCIWNDM_GETERRORW MCIWNDM_GETERROR; + alias MCIWNDM_NEWW MCIWNDM_NEW; + alias MCIWNDM_RETURNSTRINGW MCIWNDM_RETURNSTRING; + alias MCIWNDM_OPENW MCIWNDM_OPEN; +} else { // Unicode + alias MCIWNDM_SENDSTRINGA MCIWNDM_SENDSTRING; + alias MCIWNDM_GETPOSITIONA MCIWNDM_GETPOSITION; + alias MCIWNDM_GETMODEA MCIWNDM_GETMODE; + alias MCIWNDM_SETTIMEFORMATA MCIWNDM_SETTIMEFORMAT; + alias MCIWNDM_GETTIMEFORMATA MCIWNDM_GETTIMEFORMAT; + alias MCIWNDM_GETFILENAMEA MCIWNDM_GETFILENAME; + alias MCIWNDM_GETDEVICEA MCIWNDM_GETDEVICE; + alias MCIWNDM_GETERRORA MCIWNDM_GETERROR; + alias MCIWNDM_NEWA MCIWNDM_NEW; + alias MCIWNDM_RETURNSTRINGA MCIWNDM_RETURNSTRING; + alias MCIWNDM_OPENA MCIWNDM_OPEN; +} + +enum { + MCIWNDM_NOTIFYMODE = WM_USER + 200, + MCIWNDM_NOTIFYPOS = WM_USER + 201, + MCIWNDM_NOTIFYSIZE = WM_USER + 202, + MCIWNDM_NOTIFYMEDIA = WM_USER + 203, + MCIWNDM_NOTIFYERROR = WM_USER + 205, +} + +const MCIWND_START = -1; +const MCIWND_END = -2; + +enum { + MCI_CLOSE = 0x0804, + MCI_PLAY = 0x0806, + MCI_SEEK = 0x0807, + MCI_STOP = 0x0808, + MCI_PAUSE = 0x0809, + MCI_STEP = 0x080E, + MCI_RECORD = 0x080F, + MCI_SAVE = 0x0813, + MCI_CUT = 0x0851, + MCI_COPY = 0x0852, + MCI_PASTE = 0x0853, + MCI_RESUME = 0x0855, + MCI_DELETE = 0x0856, +} + +enum { + MCI_MODE_NOT_READY = 524, + MCI_MODE_STOP, + MCI_MODE_PLAY, + MCI_MODE_RECORD, + MCI_MODE_SEEK, + MCI_MODE_PAUSE, + MCI_MODE_OPEN, +} + +alias HANDLE HVIDEO; +alias HVIDEO* LPHVIDEO; + +// Error Return Values + +enum { + DV_ERR_OK = 0, + DV_ERR_BASE = 1, + DV_ERR_NONSPECIFIC = DV_ERR_BASE, + DV_ERR_BADFORMAT = DV_ERR_BASE + 1, + DV_ERR_STILLPLAYING = DV_ERR_BASE + 2, + DV_ERR_UNPREPARED = DV_ERR_BASE + 3, + DV_ERR_SYNC = DV_ERR_BASE + 4, + DV_ERR_TOOMANYCHANNELS = DV_ERR_BASE + 5, + DV_ERR_NOTDETECTED = DV_ERR_BASE + 6, + DV_ERR_BADINSTALL = DV_ERR_BASE + 7, + DV_ERR_CREATEPALETTE = DV_ERR_BASE + 8, + DV_ERR_SIZEFIELD = DV_ERR_BASE + 9, + DV_ERR_PARAM1 = DV_ERR_BASE + 10, + DV_ERR_PARAM2 = DV_ERR_BASE + 11, + DV_ERR_CONFIG1 = DV_ERR_BASE + 12, + DV_ERR_CONFIG2 = DV_ERR_BASE + 13, + DV_ERR_FLAGS = DV_ERR_BASE + 14, + DV_ERR_13 = DV_ERR_BASE + 15, + DV_ERR_NOTSUPPORTED = DV_ERR_BASE + 16, + DV_ERR_NOMEM = DV_ERR_BASE + 17, + DV_ERR_ALLOCATED = DV_ERR_BASE + 18, + DV_ERR_BADDEVICEID = DV_ERR_BASE + 19, + DV_ERR_INVALHANDLE = DV_ERR_BASE + 20, + DV_ERR_BADERRNUM = DV_ERR_BASE + 21, + DV_ERR_NO_BUFFERS = DV_ERR_BASE + 22, + DV_ERR_MEM_CONFLICT = DV_ERR_BASE + 23, + DV_ERR_IO_CONFLICT = DV_ERR_BASE + 24, + DV_ERR_DMA_CONFLICT = DV_ERR_BASE + 25, + DV_ERR_INT_CONFLICT = DV_ERR_BASE + 26, + DV_ERR_PROTECT_ONLY = DV_ERR_BASE + 27, + DV_ERR_LASTERROR = DV_ERR_BASE + 27, + DV_ERR_USER_MSG = DV_ERR_BASE + 1000, +} + +// Callback Messages + +enum { + MM_DRVM_OPEN = 0x3D0, + MM_DRVM_CLOSE, + MM_DRVM_DATA, + MM_DRVM_ERROR, +} + +enum { + DV_VM_OPEN = MM_DRVM_OPEN, + DV_VM_CLOSE = MM_DRVM_CLOSE, + DV_VM_DATA = MM_DRVM_DATA, + DV_VM_ERROR = MM_DRVM_ERROR, +} + +/** + * Structures + */ + +struct VIDEOHDR { + LPBYTE lpData; + DWORD dwBufferLength; + DWORD dwBytesUsed; + DWORD dwTimeCaptured; + DWORD_PTR dwUser; + DWORD dwFlags; + DWORD_PTR dwReserved[4]; +} +alias VIDEOHDR* PVIDEOHDR, LPVIDEOHDR; + +enum { + VHDR_DONE = 0x00000001, + VHDR_PREPARED = 0x00000002, + VHDR_INQUEUE = 0x00000004, + VHDR_KEYFRAME = 0x00000008, + VHDR_VALID = 0x0000000F, +} + +struct CHANNEL_CAPS { + DWORD dwFlags; + DWORD dwSrcRectXMod; + DWORD dwSrcRectYMod; + DWORD dwSrcRectWidthMod; + DWORD dwSrcRectHeightMod; + DWORD dwDstRectXMod; + DWORD dwDstRectYMod; + DWORD dwDstRectWidthMod; + DWORD dwDstRectHeightMod; +} +alias CHANNEL_CAPS* PCHANNEL_CAPS, LPCHANNEL_CAPS; + +enum { + VCAPS_OVERLAY = 0x00000001, + VCAPS_SRC_CAN_CLIP = 0x00000002, + VCAPS_DST_CAN_CLIP = 0x00000004, + VCAPS_CAN_SCALE = 0x00000008, +} + +/** + * API Flags + */ + +enum { + VIDEO_EXTERNALIN = 0x0001, + VIDEO_EXTERNALOUT = 0x0002, + VIDEO_IN = 0x0004, + VIDEO_OUT = 0x0008, + VIDEO_DLG_QUERY = 0x0010, +} + +enum { + VIDEO_CONFIGURE_QUERYSIZE = 0x0001, + VIDEO_CONFIGURE_CURRENT = 0x0010, + VIDEO_CONFIGURE_NOMINAL = 0x0020, + VIDEO_CONFIGURE_MIN = 0x0040, + VIDEO_CONFIGURE_MAX = 0x0080, + VIDEO_CONFIGURE_SET = 0x1000, + VIDEO_CONFIGURE_GET = 0x2000, + VIDEO_CONFIGURE_QUERY = 0x8000, +} + +/** + * CONFIGURE MESSAGES + */ + +enum { + DVM_USER = 0x4000, + DVM_CONFIGURE_START = 0x1000, + DVM_CONFIGURE_END = 0x1FFF, + DVM_PALETTE = DVM_CONFIGURE_START + 1, + DVM_FORMAT = DVM_CONFIGURE_START + 2, + DVM_PALETTERGB555 = DVM_CONFIGURE_START + 3, + DVM_SRC_RECT = DVM_CONFIGURE_START + 4, + DVM_DST_RECT = DVM_CONFIGURE_START + 5, +} + +/** + * AVICap window class + */ + +LRESULT AVICapSM(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { + if (IsWindow(hWnd)) { + return SendMessage(hWnd, msg, wParam, lParam); + } + return 0; +} + +enum { + WM_CAP_START = WM_USER, + WM_CAP_UNICODE_START = WM_USER + 100, + + WM_CAP_GET_CAPSTREAMPTR = WM_CAP_START + 1, + WM_CAP_SET_CALLBACK_ERRORA = WM_CAP_START + 2, + WM_CAP_SET_CALLBACK_STATUSA = WM_CAP_START + 3, + + WM_CAP_SET_CALLBACK_ERRORW = WM_CAP_UNICODE_START + 2, + WM_CAP_SET_CALLBACK_STATUSW = WM_CAP_UNICODE_START + 3, +} + +version(Unicode) { + alias WM_CAP_SET_CALLBACK_ERRORW WM_CAP_SET_CALLBACK_ERROR; + alias WM_CAP_SET_CALLBACK_STATUSW WM_CAP_SET_CALLBACK_STATUS; +} else { // Unicode + alias WM_CAP_SET_CALLBACK_ERRORA WM_CAP_SET_CALLBACK_ERROR; + alias WM_CAP_SET_CALLBACK_STATUSA WM_CAP_SET_CALLBACK_STATUS; +} + +enum { + WM_CAP_SET_CALLBACK_YIELD = WM_CAP_START + 4, + WM_CAP_SET_CALLBACK_FRAME = WM_CAP_START + 5, + WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START + 6, + WM_CAP_SET_CALLBACK_WAVESTREAM = WM_CAP_START + 7, + WM_CAP_GET_USER_DATA = WM_CAP_START + 8, + WM_CAP_SET_USER_DATA = WM_CAP_START + 9, + WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10, + WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11, + WM_CAP_DRIVER_GET_NAMEA = WM_CAP_START + 12, + WM_CAP_DRIVER_GET_VERSIONA = WM_CAP_START + 13, + + WM_CAP_DRIVER_GET_NAMEW = WM_CAP_UNICODE_START + 12, + WM_CAP_DRIVER_GET_VERSIONW = WM_CAP_UNICODE_START + 13, +} + +version(Unicode) { + alias WM_CAP_DRIVER_GET_NAMEW WM_CAP_DRIVER_GET_NAME; + alias WM_CAP_DRIVER_GET_VERSIONW WM_CAP_DRIVER_GET_VERSION; +} else { // Unicode + alias WM_CAP_DRIVER_GET_NAMEA WM_CAP_DRIVER_GET_NAME; + alias WM_CAP_DRIVER_GET_VERSIONA WM_CAP_DRIVER_GET_VERSION; +} + +enum { + WM_CAP_DRIVER_GET_CAPS = WM_CAP_START + 14, + WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20, + WM_CAP_FILE_GET_CAPTURE_FILEA = WM_CAP_START + 21, + WM_CAP_FILE_SAVEASA = WM_CAP_START + 23, + WM_CAP_FILE_SAVEDIBA = WM_CAP_START + 25, + + WM_CAP_FILE_SET_CAPTURE_FILEW = WM_CAP_UNICODE_START + 20, + WM_CAP_FILE_GET_CAPTURE_FILEW = WM_CAP_UNICODE_START + 21, + WM_CAP_FILE_SAVEASW = WM_CAP_UNICODE_START + 23, + WM_CAP_FILE_SAVEDIBW = WM_CAP_UNICODE_START + 25, +} + +version(Unicode) { + alias WM_CAP_FILE_SET_CAPTURE_FILEW WM_CAP_FILE_SET_CAPTURE_FILE; + alias WM_CAP_FILE_GET_CAPTURE_FILEW WM_CAP_FILE_GET_CAPTURE_FILE; + alias WM_CAP_FILE_SAVEASW WM_CAP_FILE_SAVEAS; + alias WM_CAP_FILE_SAVEDIBW WM_CAP_FILE_SAVEDIB; +} else { // Unicode + alias WM_CAP_FILE_SET_CAPTURE_FILEA WM_CAP_FILE_SET_CAPTURE_FILE; + alias WM_CAP_FILE_GET_CAPTURE_FILEA WM_CAP_FILE_GET_CAPTURE_FILE; + alias WM_CAP_FILE_SAVEASA WM_CAP_FILE_SAVEAS; + alias WM_CAP_FILE_SAVEDIBA WM_CAP_FILE_SAVEDIB; +} + +enum { + WM_CAP_FILE_ALLOCATE = WM_CAP_START + 22, + WM_CAP_FILE_SET_INFOCHUNK = WM_CAP_START + 24, + WM_CAP_EDIT_COPY = WM_CAP_START + 30, + WM_CAP_SET_AUDIOFORMAT = WM_CAP_START + 35, + WM_CAP_GET_AUDIOFORMAT = WM_CAP_START + 36, + WM_CAP_DLG_VIDEOFORMAT = WM_CAP_START + 41, + WM_CAP_DLG_VIDEOSOURCE = WM_CAP_START + 42, + WM_CAP_DLG_VIDEODISPLAY = WM_CAP_START + 43, + WM_CAP_GET_VIDEOFORMAT = WM_CAP_START + 44, + WM_CAP_SET_VIDEOFORMAT = WM_CAP_START + 45, + WM_CAP_DLG_VIDEOCOMPRESSION = WM_CAP_START + 46, + WM_CAP_SET_PREVIEW = WM_CAP_START + 50, + WM_CAP_SET_OVERLAY = WM_CAP_START + 51, + WM_CAP_SET_PREVIEWRATE = WM_CAP_START + 52, + WM_CAP_SET_SCALE = WM_CAP_START + 53, + WM_CAP_GET_STATUS = WM_CAP_START + 54, + WM_CAP_SET_SCROLL = WM_CAP_START + 55, + WM_CAP_GRAB_FRAME = WM_CAP_START + 60, + WM_CAP_GRAB_FRAME_NOSTOP = WM_CAP_START + 61, + WM_CAP_SEQUENCE = WM_CAP_START + 62, + WM_CAP_SEQUENCE_NOFILE = WM_CAP_START + 63, + WM_CAP_SET_SEQUENCE_SETUP = WM_CAP_START + 64, + WM_CAP_GET_SEQUENCE_SETUP = WM_CAP_START + 65, + WM_CAP_SET_MCI_DEVICEA = WM_CAP_START + 66, + WM_CAP_GET_MCI_DEVICEA = WM_CAP_START + 67, + + WM_CAP_SET_MCI_DEVICEW = WM_CAP_UNICODE_START + 66, + WM_CAP_GET_MCI_DEVICEW = WM_CAP_UNICODE_START + 67, +} + +version(Unicode) { + alias WM_CAP_SET_MCI_DEVICEW WM_CAP_SET_MCI_DEVICE; + alias WM_CAP_GET_MCI_DEVICEW WM_CAP_GET_MCI_DEVICE; +} else { // Unicode + alias WM_CAP_SET_MCI_DEVICEA WM_CAP_SET_MCI_DEVICE; + alias WM_CAP_GET_MCI_DEVICEA WM_CAP_GET_MCI_DEVICE; +} + +enum { + WM_CAP_STOP = WM_CAP_START + 68, + WM_CAP_ABORT = WM_CAP_START + 69, + WM_CAP_SINGLE_FRAME_OPEN = WM_CAP_START + 70, + WM_CAP_SINGLE_FRAME_CLOSE = WM_CAP_START + 71, + WM_CAP_SINGLE_FRAME = WM_CAP_START + 72, + WM_CAP_PAL_OPENA = WM_CAP_START + 80, + WM_CAP_PAL_SAVEA = WM_CAP_START + 81, + + WM_CAP_PAL_OPENW = WM_CAP_UNICODE_START + 80, + WM_CAP_PAL_SAVEW = WM_CAP_UNICODE_START + 81, +} + +version(Unicode) { + alias WM_CAP_PAL_OPENW WM_CAP_PAL_OPEN; + alias WM_CAP_PAL_SAVEW WM_CAP_PAL_SAVE; +} else { // Unicode + alias WM_CAP_PAL_OPENA WM_CAP_PAL_OPEN; + alias WM_CAP_PAL_SAVEA WM_CAP_PAL_SAVE; +} + +enum { + WM_CAP_PAL_PASTE = WM_CAP_START + 82, + WM_CAP_PAL_AUTOCREATE = WM_CAP_START + 83, + WM_CAP_PAL_MANUALCREATE = WM_CAP_START + 84, + WM_CAP_SET_CALLBACK_CAPCONTROL = WM_CAP_START + 85, + WM_CAP_UNICODE_END = WM_CAP_PAL_SAVEW, + WM_CAP_END = WM_CAP_UNICODE_END, +} + +/** + * message wrapper + */ + +BOOL capSetCallbackOnError(HWND hWnd, LPVOID fpProc) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_CALLBACK_ERROR, 0, cast(LPARAM)fpProc); } +BOOL capSetCallbackOnStatus(HWND hWnd, LPVOID fpProc) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_CALLBACK_STATUS, 0, cast(LPARAM)fpProc); } +BOOL capSetCallbackOnYield(HWND hWnd, LPVOID fpProc) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_CALLBACK_YIELD, 0, cast(LPARAM)fpProc); } +BOOL capSetCallbackOnFrame(HWND hWnd, LPVOID fpProc) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_CALLBACK_FRAME, 0, cast(LPARAM)fpProc); } +BOOL capSetCallbackOnVideoStream(HWND hWnd, LPVOID fpProc) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, cast(LPARAM)fpProc); } +BOOL capSetCallbackOnWaveStream(HWND hWnd, LPVOID fpProc) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_CALLBACK_WAVESTREAM, 0, cast(LPARAM)fpProc); } +BOOL capSetCallbackOnCapControl(HWND hWnd, LPVOID fpProc) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_CALLBACK_CAPCONTROL, 0, cast(LPARAM)fpProc); } + +BOOL capSetUserData(HWND hWnd, LPARAM lUser) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_USER_DATA, 0, lUser); } +BOOL capGetUserData(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_GET_USER_DATA, 0, 0); } + +BOOL capDriverConnect(HWND hWnd, WPARAM i) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DRIVER_CONNECT, i, 0); } +BOOL capDriverDisconnect(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DRIVER_DISCONNECT, 0, 0); } +BOOL capDriverGetName(HWND hWnd, LPTSTR szName, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DRIVER_GET_NAME, wSize, cast(LPARAM)szName); } +BOOL capDriverGetVersion(HWND hWnd, LPTSTR szVer, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DRIVER_GET_VERSION, wSize, cast(LPARAM)szVer); } +BOOL capDriverGetCaps(HWND hWnd, LPCAPDRIVERCAPS s, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DRIVER_GET_CAPS, wSize, cast(LPARAM)s); } + +BOOL capFileSetCaptureFile(HWND hWnd, LPTSTR szName) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_FILE_SET_CAPTURE_FILE, 0, cast(LPARAM)szName); } +BOOL capFileGetCaptureFile(HWND hWnd, LPTSTR szName, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_FILE_GET_CAPTURE_FILE, wSize, cast(LPARAM)szName); } +BOOL capFileAlloc(HWND hWnd, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_FILE_ALLOCATE, wSize, 0); } +BOOL capFileSaveAs(HWND hWnd, LPTSTR szName) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_FILE_SAVEAS, 0, cast(LPARAM)szName); } +BOOL capFileSetInfoChunk(HWND hWnd, LPCAPINFOCHUNK lpInfoChunk) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_FILE_SET_INFOCHUNK, 0, cast(LPARAM)lpInfoChunk); } +BOOL capFileSaveDIB(HWND hWnd, LPTSTR szName) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_FILE_SAVEDIB, 0, cast(LPARAM)szName); } + +BOOL capEditCopy(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_EDIT_COPY, 0, 0); } + +BOOL capSetAudioFormat(HWND hWnd, LPWAVEFORMATEX s, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_AUDIOFORMAT, wSize, cast(LPARAM)s); } +DWORD capGetAudioFormat(HWND hWnd, LPWAVEFORMATEX s, WPARAM wSize) { return cast(DWORD)AVICapSM(hWnd, WM_CAP_GET_AUDIOFORMAT, wSize, cast(LPARAM)s); } +DWORD capGetAudioFormatSize(HWND hWnd) { return cast(DWORD)AVICapSM(hWnd, WM_CAP_GET_AUDIOFORMAT, 0, 0); } + +BOOL capDlgVideoFormat(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DLG_VIDEOFORMAT, 0, 0); } +BOOL capDlgVideoSource(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DLG_VIDEOSOURCE, 0, 0); } +BOOL capDlgVideoDisplay(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DLG_VIDEODISPLAY, 0, 0); } +BOOL capDlgVideoCompression(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DLG_VIDEOCOMPRESSION, 0, 0); } + +DWORD capGetVideoFormat(HWND hWnd, void* s, WPARAM wSize) { return cast(DWORD)AVICapSM(hWnd, WM_CAP_GET_VIDEOFORMAT, wSize, cast(LPARAM)s); } +DWORD capGetVideoFormatSize(HWND hWnd) { return cast(DWORD)AVICapSM(hWnd, WM_CAP_GET_VIDEOFORMAT, 0, 0); } +BOOL capSetVideoFormat(HWND hWnd, void* s, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_VIDEOFORMAT, wSize, cast(LPARAM)s); } + +BOOL capPreview(HWND hWnd, BOOL f) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_PREVIEW, cast(WPARAM)f, 0); } +BOOL capPreviewRate(HWND hWnd, WPARAM wMS) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_PREVIEWRATE, wMS, 0); } +BOOL capOverlay(HWND hWnd, BOOL f) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_OVERLAY, cast(WPARAM)f, 0); } +BOOL capPreviewScale(HWND hWnd, BOOL f) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_SCALE, cast(WPARAM)f, 0); } +BOOL capGetStatus(HWND hWnd, LPCAPSTATUS s, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_GET_STATUS, wSize, cast(LPARAM)s); } +BOOL capSetScrollPos(HWND hWnd, LPPOINT lpP) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_SCROLL, 0, cast(LPARAM)lpP); } + +BOOL capGrabFrame(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_GRAB_FRAME, 0, 0); } +BOOL capGrabFrameNoStop(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_GRAB_FRAME_NOSTOP, 0, 0); } + +BOOL capCaptureSequence(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SEQUENCE, 0, 0); } +BOOL capCaptureSequenceNoFile(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SEQUENCE_NOFILE, 0, 0); } +BOOL capCaptureStop(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_STOP, 0, 0); } +BOOL capCaptureAbort(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_ABORT, 0, 0); } + +BOOL capCaptureSingleFrameOpen(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SINGLE_FRAME_OPEN, 0, 0); } +BOOL capCaptureSingleFrameClose(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SINGLE_FRAME_CLOSE, 0, 0); } +BOOL capCaptureSingleFrame(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SINGLE_FRAME, 0, 0); } + +BOOL capCaptureGetSetup(HWND hWnd, LPCAPTUREPARMS s, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_GET_SEQUENCE_SETUP, wSize, cast(LPARAM)s); } +BOOL capCaptureSetSetup(HWND hWnd, LPCAPTUREPARMS s, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_SEQUENCE_SETUP, wSize, cast(LPARAM)s); } + +BOOL capSetMCIDeviceName(HWND hWnd, LPTSTR szName) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_MCI_DEVICE, 0, cast(LPARAM)szName); } +BOOL capGetMCIDeviceName(HWND hWnd, LPTSTR szName, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_GET_MCI_DEVICE, wSize, cast(LPARAM)szName); } + +BOOL capPaletteOpen(HWND hWnd, LPTSTR szName) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_PAL_OPEN, 0, cast(LPARAM)szName); } +BOOL capPaletteSave(HWND hWnd, LPTSTR szName) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_PAL_SAVE, 0, cast(LPARAM)szName); } +BOOL capPalettePaste(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_PAL_PASTE, 0, 0); } +BOOL capPaletteAuto(HWND hWnd, WPARAM iFrames, LPARAM iColors) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_PAL_AUTOCREATE, iFrames, iColors); } +BOOL capPaletteManual(HWND hWnd, WPARAM fGrab, LPARAM iColors) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_PAL_MANUALCREATE, fGrab, iColors); } + +/** + * structs + */ + +struct CAPDRIVERCAPS { + UINT wDeviceIndex; + BOOL fHasOverlay; + BOOL fHasDlgVideoSource; + BOOL fHasDlgVideoFormat; + BOOL fHasDlgVideoDisplay; + BOOL fCaptureInitialized; + BOOL fDriverSuppliesPalettes; + HANDLE hVideoIn; + HANDLE hVideoOut; + HANDLE hVideoExtIn; + HANDLE hVideoExtOut; +} +alias CAPDRIVERCAPS* PCAPDRIVERCAPS, LPCAPDRIVERCAPS; + +struct CAPSTATUS { + UINT uiImageWidth; + UINT uiImageHeight; + BOOL fLiveWindow; + BOOL fOverlayWindow; + BOOL fScale; + POINT ptScroll; + BOOL fUsingDefaultPalette; + BOOL fAudioHardware; + BOOL fCapFileExists; + DWORD dwCurrentVideoFrame; + DWORD dwCurrentVideoFramesDropped; + DWORD dwCurrentWaveSamples; + DWORD dwCurrentTimeElapsedMS; + HPALETTE hPalCurrent; + BOOL fCapturingNow; + DWORD dwReturn; + UINT wNumVideoAllocated; + UINT wNumAudioAllocated; +} +alias CAPSTATUS* PCAPSTATUS, LPCAPSTATUS; + +struct CAPTUREPARMS { + DWORD dwRequestMicroSecPerFrame; + BOOL fMakeUserHitOKToCapture; + UINT wPercentDropForError; + BOOL fYield; + DWORD dwIndexSize; + UINT wChunkGranularity; + BOOL fUsingDOSMemory; + UINT wNumVideoRequested; + BOOL fCaptureAudio; + UINT wNumAudioRequested; + UINT vKeyAbort; + BOOL fAbortLeftMouse; + BOOL fAbortRightMouse; + BOOL fLimitEnabled; + UINT wTimeLimit; + BOOL fMCIControl; + BOOL fStepMCIDevice; + DWORD dwMCIStartTime; + DWORD dwMCIStopTime; + BOOL fStepCaptureAt2x; + UINT wStepCaptureAverageFrames; + DWORD dwAudioBufferSize; + BOOL fDisableWriteCache; + UINT AVStreamMaster; +} +alias CAPTUREPARMS* PCAPTUREPARMS, LPCAPTUREPARMS; + +const AVSTREAMMASTER_AUDIO = 0; +const AVSTREAMMASTER_NONE = 1; + +struct CAPINFOCHUNK { + FOURCC fccInfoID; + LPVOID lpData; + LONG cbData; +} +alias CAPINFOCHUNK* PCAPINFOCHUNK, LPCAPINFOCHUNK; + +// Callback Definitions + +extern (Windows) { + alias LRESULT function(HWND hWnd) CAPYIELDCALLBACK; + alias LRESULT function(HWND hWnd, int nID, LPCWSTR lpsz) CAPSTATUSCALLBACKW; + alias LRESULT function(HWND hWnd, int nID, LPCWSTR lpsz) CAPERRORCALLBACKW; + alias LRESULT function(HWND hWnd, int nID, LPCSTR lpsz) CAPSTATUSCALLBACKA; + alias LRESULT function(HWND hWnd, int nID, LPCSTR lpsz) CAPERRORCALLBACKA; +} + +version(Unicode) { + alias CAPSTATUSCALLBACKW CAPSTATUSCALLBACK; + alias CAPERRORCALLBACKW CAPERRORCALLBACK; +} else { // Unicode + alias CAPSTATUSCALLBACKA CAPSTATUSCALLBACK; + alias CAPERRORCALLBACKA CAPERRORCALLBACK; +} + +extern (Windows) { + alias LRESULT function(HWND hWnd, LPVIDEOHDR lpVHdr) CAPVIDEOCALLBACK; + alias LRESULT function(HWND hWnd, LPWAVEHDR lpWHdr) CAPWAVECALLBACK; + alias LRESULT function(HWND hWnd, int nState) CAPCONTROLCALLBACK; +} + +// CapControlCallback states +const CONTROLCALLBACK_PREROLL = 1; +const CONTROLCALLBACK_CAPTURING = 2; + +extern (Windows) { + HWND capCreateCaptureWindowA(LPCSTR lpszWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hwndParent, int nID); + BOOL capGetDriverDescriptionA(UINT wDriverIndex, LPSTR lpszName, int cbName, LPSTR lpszVer, int cbVer); + HWND capCreateCaptureWindowW(LPCWSTR lpszWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hwndParent, int nID); + BOOL capGetDriverDescriptionW(UINT wDriverIndex, LPWSTR lpszName, int cbName, LPWSTR lpszVer, int cbVer); +} + +version(Unicode) { + alias capCreateCaptureWindowW capCreateCaptureWindow; + alias capGetDriverDescriptionW capGetDriverDescription; +} else { // Unicode + alias capCreateCaptureWindowA capCreateCaptureWindow; + alias capGetDriverDescriptionA capGetDriverDescription; +} + +// New Information chunk IDs +const infotypeDIGITIZATION_TIME = mmioFOURCC!('I', 'D', 'I', 'T'); +const infotypeSMPTE_TIME = mmioFOURCC!('I', 'S', 'M', 'P'); + +// status and error callbacks +enum { + IDS_CAP_BEGIN = 300, + IDS_CAP_END = 301, + + IDS_CAP_INFO = 401, + IDS_CAP_OUTOFMEM = 402, + IDS_CAP_FILEEXISTS = 403, + IDS_CAP_ERRORPALOPEN = 404, + IDS_CAP_ERRORPALSAVE = 405, + IDS_CAP_ERRORDIBSAVE = 406, + IDS_CAP_DEFAVIEXT = 407, + IDS_CAP_DEFPALEXT = 408, + IDS_CAP_CANTOPEN = 409, + IDS_CAP_SEQ_MSGSTART = 410, + IDS_CAP_SEQ_MSGSTOP = 411, + + IDS_CAP_VIDEDITERR = 412, + IDS_CAP_READONLYFILE = 413, + IDS_CAP_WRITEERROR = 414, + IDS_CAP_NODISKSPACE = 415, + IDS_CAP_SETFILESIZE = 416, + IDS_CAP_SAVEASPERCENT = 417, + + IDS_CAP_DRIVER_ERROR = 418, + + IDS_CAP_WAVE_OPEN_ERROR = 419, + IDS_CAP_WAVE_ALLOC_ERROR = 420, + IDS_CAP_WAVE_PREPARE_ERROR = 421, + IDS_CAP_WAVE_ADD_ERROR = 422, + IDS_CAP_WAVE_SIZE_ERROR = 423, + + IDS_CAP_VIDEO_OPEN_ERROR = 424, + IDS_CAP_VIDEO_ALLOC_ERROR = 425, + IDS_CAP_VIDEO_PREPARE_ERROR = 426, + IDS_CAP_VIDEO_ADD_ERROR = 427, + IDS_CAP_VIDEO_SIZE_ERROR = 428, + + IDS_CAP_FILE_OPEN_ERROR = 429, + IDS_CAP_FILE_WRITE_ERROR = 430, + IDS_CAP_RECORDING_ERROR = 431, + IDS_CAP_RECORDING_ERROR2 = 432, + IDS_CAP_AVI_INIT_ERROR = 433, + IDS_CAP_NO_FRAME_CAP_ERROR = 434, + IDS_CAP_NO_PALETTE_WARN = 435, + IDS_CAP_MCI_CONTROL_ERROR = 436, + IDS_CAP_MCI_CANT_STEP_ERROR = 437, + IDS_CAP_NO_AUDIO_CAP_ERROR = 438, + IDS_CAP_AVI_DRAWDIB_ERROR = 439, + IDS_CAP_COMPRESSOR_ERROR = 440, + IDS_CAP_AUDIO_DROP_ERROR = 441, + IDS_CAP_AUDIO_DROP_COMPERROR = 442, + + IDS_CAP_STAT_LIVE_MODE = 500, + IDS_CAP_STAT_OVERLAY_MODE = 501, + IDS_CAP_STAT_CAP_INIT = 502, + IDS_CAP_STAT_CAP_FINI = 503, + IDS_CAP_STAT_PALETTE_BUILD = 504, + IDS_CAP_STAT_OPTPAL_BUILD = 505, + IDS_CAP_STAT_I_FRAMES = 506, + IDS_CAP_STAT_L_FRAMES = 507, + IDS_CAP_STAT_CAP_L_FRAMES = 508, + IDS_CAP_STAT_CAP_AUDIO = 509, + IDS_CAP_STAT_VIDEOCURRENT = 510, + IDS_CAP_STAT_VIDEOAUDIO = 511, + IDS_CAP_STAT_VIDEOONLY = 512, + IDS_CAP_STAT_FRAMESDROPPED = 513, +} + +/** + * FilePreview dialog. + */ + +extern (Windows) { + BOOL GetOpenFileNamePreviewA(LPOPENFILENAMEA lpofn); + BOOL GetSaveFileNamePreviewA(LPOPENFILENAMEA lpofn); + BOOL GetOpenFileNamePreviewW(LPOPENFILENAMEW lpofn); + BOOL GetSaveFileNamePreviewW(LPOPENFILENAMEW lpofn); +} + +version(Unicode) { + alias GetOpenFileNamePreviewW GetOpenFileNamePreview; + alias GetSaveFileNamePreviewW GetSaveFileNamePreview; +} else { // Unicode + alias GetOpenFileNamePreviewA GetOpenFileNamePreview; + alias GetSaveFileNamePreviewA GetSaveFileNamePreview; +} ADDED src/win32/w32api.d Index: src/win32/w32api.d ================================================================== --- src/win32/w32api.d +++ src/win32/w32api.d @@ -0,0 +1,106 @@ +/***********************************************************************\ +* w32api.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.12 * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.w32api; + +const __W32API_VERSION = 3.12; +const __W32API_MAJOR_VERSION = 3; +const __W32API_MINOR_VERSION = 12; + +/* These version identifiers are used to specify the minimum version of + * Windows that an application will support. + * + * The programmer should set two version identifiers: one for the + * minimum Windows NT version and one for the minimum Windows 9x + * version. If no Windows NT version is specified, Windows NT 4 is + * assumed. If no Windows 9x version is specified, Windows 95 is + * assumed, unless WindowsNTonly, WindowsXP, Windows2003 or WindowsVista + * is specified, implying that the application supports only the NT line of + * versions. + */ + +/* For Windows XP and later, assume no Windows 9x support. + * API features new to Windows Vista are not yet included in this + * translation or in MinGW, but this is here ready to start adding them. + */ +version (WindowsVista) { + const uint + _WIN32_WINNT = 0x600, + _WIN32_WINDOWS = uint.max; + +} else version (Windows2003) { + const uint + _WIN32_WINNT = 0x502, + _WIN32_WINDOWS = uint.max; + +} else version (WindowsXP) { + const uint + _WIN32_WINNT = 0x501, + _WIN32_WINDOWS = uint.max; + +} else { + /* for earlier Windows versions, separate version identifiers into + * the NT and 9x lines + */ + version (Windows2000) { + const uint _WIN32_WINNT = 0x500; + } else { + const uint _WIN32_WINNT = 0x400; + } + + version (WindowsNTonly) { + const uint _WIN32_WINDOWS = uint.max; + } else version (WindowsME) { + const uint _WIN32_WINDOWS = 0x500; + } else version (Windows98) { + const uint _WIN32_WINDOWS = 0x410; + } else { + const uint _WIN32_WINDOWS = 0x400; + } +} + +// Just a bit of syntactic sugar for the static ifs +const uint WINVER = _WIN32_WINDOWS < _WIN32_WINNT ? + _WIN32_WINDOWS : _WIN32_WINNT; +const bool _WIN32_WINNT_ONLY = _WIN32_WINDOWS == uint.max; + +version (IE7) { + const uint _WIN32_IE = 0x700; +} else version (IE602) { + const uint _WIN32_IE = 0x603; +} else version (IE601) { + const uint _WIN32_IE = 0x601; +} else version (IE6) { + const uint _WIN32_IE = 0x600; +} else version (IE56) { + const uint _WIN32_IE = 0x560; +} else version (IE501) { + const uint _WIN32_IE = 0x501; +} else version (IE5) { + const uint _WIN32_IE = 0x500; +} else version (IE401) { + const uint _WIN32_IE = 0x401; +} else version (IE4) { + const uint _WIN32_IE = 0x400; +} else version (IE3) { + const uint _WIN32_IE = 0x300; +} else static if (WINVER >= 0x410) { + const uint _WIN32_IE = 0x400; +} else { + const uint _WIN32_IE = 0; +} + +debug (WindowsUnitTest) { + unittest { + printf("Windows NT version: %03x\n", _WIN32_WINNT); + printf("Windows 9x version: %03x\n", _WIN32_WINDOWS); + printf("IE version: %03x\n", _WIN32_IE); + } +} Index: src/win32/winbase.d ================================================================== --- src/win32/winbase.d +++ src/win32/winbase.d @@ -1,6453 +1,2820 @@ -module win32.winbase; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.windef; - -// #ifndef _WINBASE_ -// #define _WINBASE_ - -// #if _MSC_VER > 1000 -// #pragma once -// #endif - -// #ifdef _MAC -// #... -// #endif //_MAC - -// #if !defined(_ADVAPI32_) -// #define WINADVAPI DECLSPEC_IMPORT -// #else -// #... -// #endif - -// #if !defined(_KERNEL32_) -// #define WINBASEAPI DECLSPEC_IMPORT -// #else -// #... -// #endif - -// #if !defined(_ZAWPROXY_) -// #define ZAWPROXYAPI DECLSPEC_IMPORT -// #else -// #... -// #endif - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #define DefineHandleTable(w) ((w),TRUE) -// #define LimitEmsPages(dw) -// #define SetSwapAreaSize(w) (w) -// #define LockSegment(w) GlobalFix((HANDLE)(w)) -// #define UnlockSegment(w) GlobalUnfix((HANDLE)(w)) -alias GetTickCount GetCurrentTime; - -// #define Yield() - -HANDLE INVALID_HANDLE_VALUE = cast(HANDLE)-1; -enum : uint { INVALID_FILE_SIZE = cast(DWORD)0xFFFFFFFF } -enum : uint { INVALID_SET_FILE_POINTER = cast(DWORD)-1 } -enum : uint { INVALID_FILE_ATTRIBUTES = cast(DWORD)-1 } - -enum : uint { FILE_BEGIN = 0 } -enum : uint { FILE_CURRENT = 1 } -enum : uint { FILE_END = 2 } - -enum : uint { TIME_ZONE_ID_INVALID = cast(DWORD)0xFFFFFFFF } - -enum : uint { WAIT_FAILED = cast(DWORD)0xFFFFFFFF } -alias STATUS_WAIT_0 WAIT_OBJECT_0; - -alias STATUS_ABANDONED_WAIT_0 WAIT_ABANDONED; -alias STATUS_ABANDONED_WAIT_0 WAIT_ABANDONED_0; - -alias STATUS_USER_APC WAIT_IO_COMPLETION; -alias STATUS_PENDING STILL_ACTIVE; -alias STATUS_ACCESS_VIOLATION EXCEPTION_ACCESS_VIOLATION; -alias STATUS_DATATYPE_MISALIGNMENT EXCEPTION_DATATYPE_MISALIGNMENT; -alias STATUS_BREAKPOINT EXCEPTION_BREAKPOINT; -alias STATUS_SINGLE_STEP EXCEPTION_SINGLE_STEP; -alias STATUS_ARRAY_BOUNDS_EXCEEDED EXCEPTION_ARRAY_BOUNDS_EXCEEDED; -alias STATUS_FLOAT_DENORMAL_OPERAND EXCEPTION_FLT_DENORMAL_OPERAND; -alias STATUS_FLOAT_DIVIDE_BY_ZERO EXCEPTION_FLT_DIVIDE_BY_ZERO; -alias STATUS_FLOAT_INEXACT_RESULT EXCEPTION_FLT_INEXACT_RESULT; -alias STATUS_FLOAT_INVALID_OPERATION EXCEPTION_FLT_INVALID_OPERATION; -alias STATUS_FLOAT_OVERFLOW EXCEPTION_FLT_OVERFLOW; -alias STATUS_FLOAT_STACK_CHECK EXCEPTION_FLT_STACK_CHECK; -alias STATUS_FLOAT_UNDERFLOW EXCEPTION_FLT_UNDERFLOW; -alias STATUS_INTEGER_DIVIDE_BY_ZERO EXCEPTION_INT_DIVIDE_BY_ZERO; -alias STATUS_INTEGER_OVERFLOW EXCEPTION_INT_OVERFLOW; -alias STATUS_PRIVILEGED_INSTRUCTION EXCEPTION_PRIV_INSTRUCTION; -alias STATUS_IN_PAGE_ERROR EXCEPTION_IN_PAGE_ERROR; -alias STATUS_ILLEGAL_INSTRUCTION EXCEPTION_ILLEGAL_INSTRUCTION; -alias STATUS_NONCONTINUABLE_EXCEPTION EXCEPTION_NONCONTINUABLE_EXCEPTION; -alias STATUS_STACK_OVERFLOW EXCEPTION_STACK_OVERFLOW; -alias STATUS_INVALID_DISPOSITION EXCEPTION_INVALID_DISPOSITION; -alias STATUS_GUARD_PAGE_VIOLATION EXCEPTION_GUARD_PAGE; -alias STATUS_INVALID_HANDLE EXCEPTION_INVALID_HANDLE; -alias STATUS_CONTROL_C_EXIT CONTROL_C_EXIT; -alias RtlMoveMemory MoveMemory; -alias RtlCopyMemory CopyMemory; -alias RtlFillMemory FillMemory; -alias RtlZeroMemory ZeroMemory; - -enum : uint { FILE_FLAG_WRITE_THROUGH = 0x80000000 } -enum : uint { FILE_FLAG_OVERLAPPED = 0x40000000 } -enum : uint { FILE_FLAG_NO_BUFFERING = 0x20000000 } -enum : uint { FILE_FLAG_RANDOM_ACCESS = 0x10000000 } -enum : uint { FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000 } -enum : uint { FILE_FLAG_DELETE_ON_CLOSE = 0x04000000 } -enum : uint { FILE_FLAG_BACKUP_SEMANTICS = 0x02000000 } -enum : uint { FILE_FLAG_POSIX_SEMANTICS = 0x01000000 } -enum : uint { FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000 } -enum : uint { FILE_FLAG_OPEN_NO_RECALL = 0x00100000 } -enum : uint { FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000 } - -enum : uint { CREATE_NEW = 1 } -enum : uint { CREATE_ALWAYS = 2 } -enum : uint { OPEN_EXISTING = 3 } -enum : uint { OPEN_ALWAYS = 4 } -enum : uint { TRUNCATE_EXISTING = 5 } - -// #if(_WIN32_WINNT >= 0x0400) - -enum : uint { PROGRESS_CONTINUE = 0 } -enum : uint { PROGRESS_CANCEL = 1 } -enum : uint { PROGRESS_STOP = 2 } -enum : uint { PROGRESS_QUIET = 3 } - -enum : uint { CALLBACK_CHUNK_FINISHED = 0x00000000 } -enum : uint { CALLBACK_STREAM_SWITCH = 0x00000001 } - -enum : uint { COPY_FILE_FAIL_IF_EXISTS = 0x00000001 } -enum : uint { COPY_FILE_RESTARTABLE = 0x00000002 } -enum : uint { COPY_FILE_OPEN_SOURCE_FOR_WRITE = 0x00000004 } -enum : uint { COPY_FILE_ALLOW_DECRYPTED_DESTINATION = 0x00000008 } -// #endif /* _WIN32_WINNT >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0500) - -enum : uint { REPLACEFILE_WRITE_THROUGH = 0x00000001 } -enum : uint { REPLACEFILE_IGNORE_MERGE_ERRORS = 0x00000002 } - -// #endif // #if (_WIN32_WINNT >= 0x0500) - -enum : uint { PIPE_ACCESS_INBOUND = 0x00000001 } -enum : uint { PIPE_ACCESS_OUTBOUND = 0x00000002 } -enum : uint { PIPE_ACCESS_DUPLEX = 0x00000003 } - -enum : uint { PIPE_CLIENT_END = 0x00000000 } -enum : uint { PIPE_SERVER_END = 0x00000001 } - -enum : uint { PIPE_WAIT = 0x00000000 } -enum : uint { PIPE_NOWAIT = 0x00000001 } -enum : uint { PIPE_READMODE_BYTE = 0x00000000 } -enum : uint { PIPE_READMODE_MESSAGE = 0x00000002 } -enum : uint { PIPE_TYPE_BYTE = 0x00000000 } -enum : uint { PIPE_TYPE_MESSAGE = 0x00000004 } - -enum : uint { PIPE_UNLIMITED_INSTANCES = 255 } - -enum : uint { SECURITY_ANONYMOUS = SecurityAnonymous << 16 } -enum : uint { SECURITY_IDENTIFICATION = SecurityIdentification << 16 } -enum : uint { SECURITY_IMPERSONATION = SecurityImpersonation << 16 } -enum : uint { SECURITY_DELEGATION = SecurityDelegation << 16 } - -enum : uint { SECURITY_CONTEXT_TRACKING = 0x00040000 } -enum : uint { SECURITY_EFFECTIVE_ONLY = 0x00080000 } - -enum : uint { SECURITY_SQOS_PRESENT = 0x00100000 } -enum : uint { SECURITY_VALID_SQOS_FLAGS = 0x001F0000 } - -struct _OVERLAPPED { - ULONG_PTR Internal; - ULONG_PTR InternalHigh; -union { -struct { - DWORD Offset; - DWORD OffsetHigh; -} - - PVOID Pointer; -} - - HANDLE hEvent; -} -alias _OVERLAPPED OVERLAPPED; -alias _OVERLAPPED* LPOVERLAPPED; - -struct _SECURITY_ATTRIBUTES { - DWORD nLength; - LPVOID lpSecurityDescriptor; - BOOL bInheritHandle; -} -alias _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES; -alias _SECURITY_ATTRIBUTES* PSECURITY_ATTRIBUTES; -alias _SECURITY_ATTRIBUTES* LPSECURITY_ATTRIBUTES; - -struct _PROCESS_INFORMATION { - HANDLE hProcess; - HANDLE hThread; - DWORD dwProcessId; - DWORD dwThreadId; -} -alias _PROCESS_INFORMATION PROCESS_INFORMATION; -alias _PROCESS_INFORMATION* PPROCESS_INFORMATION; -alias _PROCESS_INFORMATION* LPPROCESS_INFORMATION; - -struct _FILETIME { - DWORD dwLowDateTime; - DWORD dwHighDateTime; -} -alias _FILETIME FILETIME; -alias _FILETIME* PFILETIME; -alias _FILETIME* LPFILETIME; - -struct _SYSTEMTIME { - WORD wYear; - WORD wMonth; - WORD wDayOfWeek; - WORD wDay; - WORD wHour; - WORD wMinute; - WORD wSecond; - WORD wMilliseconds; -} -alias _SYSTEMTIME SYSTEMTIME; -alias _SYSTEMTIME* PSYSTEMTIME; -alias _SYSTEMTIME* LPSYSTEMTIME; - -extern(Windows) alias DWORD function( LPVOID lpThreadParameter ) PTHREAD_START_ROUTINE; -alias PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE; - -// #if(_WIN32_WINNT >= 0x0400) -extern(Windows) alias VOID function( LPVOID lpFiberParameter ) PFIBER_START_ROUTINE; -alias PFIBER_START_ROUTINE LPFIBER_START_ROUTINE; -// #endif /* _WIN32_WINNT >= 0x0400 */ - -alias RTL_CRITICAL_SECTION CRITICAL_SECTION; -alias PRTL_CRITICAL_SECTION PCRITICAL_SECTION; -alias PRTL_CRITICAL_SECTION LPCRITICAL_SECTION; - -alias RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG; -alias PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG; -alias PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG; - -// #if defined(_X86_) -alias PLDT_ENTRY LPLDT_ENTRY; -// #else -// ... -// #endif - -alias MUTANT_QUERY_STATE MUTEX_MODIFY_STATE; -alias MUTANT_ALL_ACCESS MUTEX_ALL_ACCESS; - -enum : uint { SP_SERIALCOMM = cast(DWORD)0x00000001 } - -enum : uint { PST_UNSPECIFIED = cast(DWORD)0x00000000 } -enum : uint { PST_RS232 = cast(DWORD)0x00000001 } -enum : uint { PST_PARALLELPORT = cast(DWORD)0x00000002 } -enum : uint { PST_RS422 = cast(DWORD)0x00000003 } -enum : uint { PST_RS423 = cast(DWORD)0x00000004 } -enum : uint { PST_RS449 = cast(DWORD)0x00000005 } -enum : uint { PST_MODEM = cast(DWORD)0x00000006 } -enum : uint { PST_FAX = cast(DWORD)0x00000021 } -enum : uint { PST_SCANNER = cast(DWORD)0x00000022 } -enum : uint { PST_NETWORK_BRIDGE = cast(DWORD)0x00000100 } -enum : uint { PST_LAT = cast(DWORD)0x00000101 } -enum : uint { PST_TCPIP_TELNET = cast(DWORD)0x00000102 } -enum : uint { PST_X25 = cast(DWORD)0x00000103 } - -enum : uint { PCF_DTRDSR = cast(DWORD)0x0001 } -enum : uint { PCF_RTSCTS = cast(DWORD)0x0002 } -enum : uint { PCF_RLSD = cast(DWORD)0x0004 } -enum : uint { PCF_PARITY_CHECK = cast(DWORD)0x0008 } -enum : uint { PCF_XONXOFF = cast(DWORD)0x0010 } -enum : uint { PCF_SETXCHAR = cast(DWORD)0x0020 } -enum : uint { PCF_TOTALTIMEOUTS = cast(DWORD)0x0040 } -enum : uint { PCF_INTTIMEOUTS = cast(DWORD)0x0080 } -enum : uint { PCF_SPECIALCHARS = cast(DWORD)0x0100 } -enum : uint { PCF_16BITMODE = cast(DWORD)0x0200 } - -enum : uint { SP_PARITY = cast(DWORD)0x0001 } -enum : uint { SP_BAUD = cast(DWORD)0x0002 } -enum : uint { SP_DATABITS = cast(DWORD)0x0004 } -enum : uint { SP_STOPBITS = cast(DWORD)0x0008 } -enum : uint { SP_HANDSHAKING = cast(DWORD)0x0010 } -enum : uint { SP_PARITY_CHECK = cast(DWORD)0x0020 } -enum : uint { SP_RLSD = cast(DWORD)0x0040 } - -enum : uint { BAUD_075 = cast(DWORD)0x00000001 } -enum : uint { BAUD_110 = cast(DWORD)0x00000002 } -enum : uint { BAUD_134_5 = cast(DWORD)0x00000004 } -enum : uint { BAUD_150 = cast(DWORD)0x00000008 } -enum : uint { BAUD_300 = cast(DWORD)0x00000010 } -enum : uint { BAUD_600 = cast(DWORD)0x00000020 } -enum : uint { BAUD_1200 = cast(DWORD)0x00000040 } -enum : uint { BAUD_1800 = cast(DWORD)0x00000080 } -enum : uint { BAUD_2400 = cast(DWORD)0x00000100 } -enum : uint { BAUD_4800 = cast(DWORD)0x00000200 } -enum : uint { BAUD_7200 = cast(DWORD)0x00000400 } -enum : uint { BAUD_9600 = cast(DWORD)0x00000800 } -enum : uint { BAUD_14400 = cast(DWORD)0x00001000 } -enum : uint { BAUD_19200 = cast(DWORD)0x00002000 } -enum : uint { BAUD_38400 = cast(DWORD)0x00004000 } -enum : uint { BAUD_56K = cast(DWORD)0x00008000 } -enum : uint { BAUD_128K = cast(DWORD)0x00010000 } -enum : uint { BAUD_115200 = cast(DWORD)0x00020000 } -enum : uint { BAUD_57600 = cast(DWORD)0x00040000 } -enum : uint { BAUD_USER = cast(DWORD)0x10000000 } - -enum : uint { DATABITS_5 = cast(WORD)0x0001 } -enum : uint { DATABITS_6 = cast(WORD)0x0002 } -enum : uint { DATABITS_7 = cast(WORD)0x0004 } -enum : uint { DATABITS_8 = cast(WORD)0x0008 } -enum : uint { DATABITS_16 = cast(WORD)0x0010 } -enum : uint { DATABITS_16X = cast(WORD)0x0020 } - -enum : uint { STOPBITS_10 = cast(WORD)0x0001 } -enum : uint { STOPBITS_15 = cast(WORD)0x0002 } -enum : uint { STOPBITS_20 = cast(WORD)0x0004 } -enum : uint { PARITY_NONE = cast(WORD)0x0100 } -enum : uint { PARITY_ODD = cast(WORD)0x0200 } -enum : uint { PARITY_EVEN = cast(WORD)0x0400 } -enum : uint { PARITY_MARK = cast(WORD)0x0800 } -enum : uint { PARITY_SPACE = cast(WORD)0x1000 } - -struct _COMMPROP { - WORD wPacketLength; - WORD wPacketVersion; - DWORD dwServiceMask; - DWORD dwReserved1; - DWORD dwMaxTxQueue; - DWORD dwMaxRxQueue; - DWORD dwMaxBaud; - DWORD dwProvSubType; - DWORD dwProvCapabilities; - DWORD dwSettableParams; - DWORD dwSettableBaud; - WORD wSettableData; - WORD wSettableStopParity; - DWORD dwCurrentTxQueue; - DWORD dwCurrentRxQueue; - DWORD dwProvSpec1; - DWORD dwProvSpec2; - WCHAR wcProvChar[1]; -} -alias _COMMPROP COMMPROP; -alias _COMMPROP* LPCOMMPROP; - -enum : uint { COMMPROP_INITIALIZED = cast(DWORD)0xE73CF52E } - -struct _COMSTAT { -// DWORD fCtsHold : 1; -// DWORD fDsrHold : 1; -// DWORD fRlsdHold : 1; -// DWORD fXoffHold : 1; -// DWORD fXoffSent : 1; -// DWORD fEof : 1; -// DWORD fTxim : 1; -// DWORD fReserved : 25; - DWORD cbInQue; - DWORD cbOutQue; -} -alias _COMSTAT COMSTAT; -alias _COMSTAT* LPCOMSTAT; - -enum : uint { DTR_CONTROL_DISABLE = 0x00 } -enum : uint { DTR_CONTROL_ENABLE = 0x01 } -enum : uint { DTR_CONTROL_HANDSHAKE = 0x02 } - -enum : uint { RTS_CONTROL_DISABLE = 0x00 } -enum : uint { RTS_CONTROL_ENABLE = 0x01 } -enum : uint { RTS_CONTROL_HANDSHAKE = 0x02 } -enum : uint { RTS_CONTROL_TOGGLE = 0x03 } - -struct _DCB { - DWORD DCBlength; - DWORD BaudRate; -// DWORD fBinary: 1; -// DWORD fParity: 1; -// DWORD fOutxCtsFlow:1; -// DWORD fOutxDsrFlow:1; -// DWORD fDtrControl:2; -// DWORD fDsrSensitivity:1; -// DWORD fTXContinueOnXoff: 1; -// DWORD fOutX: 1; -// DWORD fInX: 1; -// DWORD fErrorChar: 1; -// DWORD fNull: 1; -// DWORD fRtsControl:2; -// DWORD fAbortOnError:1; -// DWORD fDummy2:17; - WORD wReserved; - WORD XonLim; - WORD XoffLim; - BYTE ByteSize; - BYTE Parity; - BYTE StopBits; - char XonChar; - char XoffChar; - char ErrorChar; - char EofChar; - char EvtChar; - WORD wReserved1; -} -alias _DCB DCB; -alias _DCB* LPDCB; - -struct _COMMTIMEOUTS { - DWORD ReadIntervalTimeout; - DWORD ReadTotalTimeoutMultiplier; - DWORD ReadTotalTimeoutConstant; - DWORD WriteTotalTimeoutMultiplier; - DWORD WriteTotalTimeoutConstant; -} -alias _COMMTIMEOUTS COMMTIMEOUTS; -alias _COMMTIMEOUTS* LPCOMMTIMEOUTS; - -struct _COMMCONFIG { - DWORD dwSize; - WORD wVersion; - WORD wReserved; - DCB dcb; - DWORD dwProviderSubType; - DWORD dwProviderOffset; - DWORD dwProviderSize; - WCHAR wcProviderData[1]; -} -alias _COMMCONFIG COMMCONFIG; -alias _COMMCONFIG* LPCOMMCONFIG; - -struct _SYSTEM_INFO { -union { - DWORD dwOemId; -struct { - WORD wProcessorArchitecture; - WORD wReserved; -} - -} - - DWORD dwPageSize; - LPVOID lpMinimumApplicationAddress; - LPVOID lpMaximumApplicationAddress; - DWORD_PTR dwActiveProcessorMask; - DWORD dwNumberOfProcessors; - DWORD dwProcessorType; - DWORD dwAllocationGranularity; - WORD wProcessorLevel; - WORD wProcessorRevision; -} -alias _SYSTEM_INFO SYSTEM_INFO; -alias _SYSTEM_INFO* LPSYSTEM_INFO; - -alias FreeLibrary FreeModule; -// #define MakeProcInstance(lpProc,hInstance) (lpProc) -// #define FreeProcInstance(lpProc) (lpProc) - -enum : uint { GMEM_FIXED = 0x0000 } -enum : uint { GMEM_MOVEABLE = 0x0002 } -enum : uint { GMEM_NOCOMPACT = 0x0010 } -enum : uint { GMEM_NODISCARD = 0x0020 } -enum : uint { GMEM_ZEROINIT = 0x0040 } -enum : uint { GMEM_MODIFY = 0x0080 } -enum : uint { GMEM_DISCARDABLE = 0x0100 } -enum : uint { GMEM_NOT_BANKED = 0x1000 } -enum : uint { GMEM_SHARE = 0x2000 } -enum : uint { GMEM_DDESHARE = 0x2000 } -enum : uint { GMEM_NOTIFY = 0x4000 } -alias GMEM_NOT_BANKED GMEM_LOWER; -enum : uint { GMEM_VALID_FLAGS = 0x7F72 } -enum : uint { GMEM_INVALID_HANDLE = 0x8000 } - -enum : uint { GHND = GMEM_MOVEABLE | GMEM_ZEROINIT } -enum : uint { GPTR = GMEM_FIXED | GMEM_ZEROINIT } - -// #define GlobalLRUNewest( h ) ((HANDLE)(h)) -// #define GlobalLRUOldest( h ) ((HANDLE)(h)) -// #define GlobalDiscard( h ) GlobalReAlloc( (h), 0, GMEM_MOVEABLE ) - -enum : uint { GMEM_DISCARDED = 0x4000 } -enum : uint { GMEM_LOCKCOUNT = 0x00FF } - -struct _MEMORYSTATUS { - DWORD dwLength; - DWORD dwMemoryLoad; - SIZE_T dwTotalPhys; - SIZE_T dwAvailPhys; - SIZE_T dwTotalPageFile; - SIZE_T dwAvailPageFile; - SIZE_T dwTotalVirtual; - SIZE_T dwAvailVirtual; -} -alias _MEMORYSTATUS MEMORYSTATUS; -alias _MEMORYSTATUS* LPMEMORYSTATUS; - -enum : uint { LMEM_FIXED = 0x0000 } -enum : uint { LMEM_MOVEABLE = 0x0002 } -enum : uint { LMEM_NOCOMPACT = 0x0010 } -enum : uint { LMEM_NODISCARD = 0x0020 } -enum : uint { LMEM_ZEROINIT = 0x0040 } -enum : uint { LMEM_MODIFY = 0x0080 } -enum : uint { LMEM_DISCARDABLE = 0x0F00 } -enum : uint { LMEM_VALID_FLAGS = 0x0F72 } -enum : uint { LMEM_INVALID_HANDLE = 0x8000 } - -enum : uint { LHND = LMEM_MOVEABLE | LMEM_ZEROINIT } -enum : uint { LPTR = LMEM_FIXED | LMEM_ZEROINIT } - -enum : uint { NONZEROLHND = LMEM_MOVEABLE } -enum : uint { NONZEROLPTR = LMEM_FIXED } - -// #define LocalDiscard( h ) LocalReAlloc( (h), 0, LMEM_MOVEABLE ) - -enum : uint { LMEM_DISCARDED = 0x4000 } -enum : uint { LMEM_LOCKCOUNT = 0x00FF } - -enum : uint { DEBUG_PROCESS = 0x00000001 } -enum : uint { DEBUG_ONLY_THIS_PROCESS = 0x00000002 } - -enum : uint { CREATE_SUSPENDED = 0x00000004 } - -enum : uint { DETACHED_PROCESS = 0x00000008 } - -enum : uint { CREATE_NEW_CONSOLE = 0x00000010 } - -enum : uint { NORMAL_PRIORITY_CLASS = 0x00000020 } -enum : uint { IDLE_PRIORITY_CLASS = 0x00000040 } -enum : uint { HIGH_PRIORITY_CLASS = 0x00000080 } -enum : uint { REALTIME_PRIORITY_CLASS = 0x00000100 } - -enum : uint { CREATE_NEW_PROCESS_GROUP = 0x00000200 } -enum : uint { CREATE_UNICODE_ENVIRONMENT = 0x00000400 } - -enum : uint { CREATE_SEPARATE_WOW_VDM = 0x00000800 } -enum : uint { CREATE_SHARED_WOW_VDM = 0x00001000 } -enum : uint { CREATE_FORCEDOS = 0x00002000 } - -enum : uint { BELOW_NORMAL_PRIORITY_CLASS = 0x00004000 } -enum : uint { ABOVE_NORMAL_PRIORITY_CLASS = 0x00008000 } -enum : uint { STACK_SIZE_PARAM_IS_A_RESERVATION = 0x00010000 } - -enum : uint { CREATE_BREAKAWAY_FROM_JOB = 0x01000000 } -enum : uint { CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000 } - -enum : uint { CREATE_DEFAULT_ERROR_MODE = 0x04000000 } -enum : uint { CREATE_NO_WINDOW = 0x08000000 } - -enum : uint { PROFILE_USER = 0x10000000 } -enum : uint { PROFILE_KERNEL = 0x20000000 } -enum : uint { PROFILE_SERVER = 0x40000000 } - -enum : uint { CREATE_IGNORE_SYSTEM_DEFAULT = 0x80000000 } - -alias THREAD_BASE_PRIORITY_MIN THREAD_PRIORITY_LOWEST; -enum : uint { THREAD_PRIORITY_BELOW_NORMAL = THREAD_PRIORITY_LOWEST+1 } -enum : uint { THREAD_PRIORITY_NORMAL = 0 } -alias THREAD_BASE_PRIORITY_MAX THREAD_PRIORITY_HIGHEST; -enum : uint { THREAD_PRIORITY_ABOVE_NORMAL = THREAD_PRIORITY_HIGHEST-1 } -enum : uint { THREAD_PRIORITY_ERROR_RETURN = MAXLONG } - -alias THREAD_BASE_PRIORITY_LOWRT THREAD_PRIORITY_TIME_CRITICAL; -alias THREAD_BASE_PRIORITY_IDLE THREAD_PRIORITY_IDLE; - -enum : uint { EXCEPTION_DEBUG_EVENT = 1 } -enum : uint { CREATE_THREAD_DEBUG_EVENT = 2 } -enum : uint { CREATE_PROCESS_DEBUG_EVENT = 3 } -enum : uint { EXIT_THREAD_DEBUG_EVENT = 4 } -enum : uint { EXIT_PROCESS_DEBUG_EVENT = 5 } -enum : uint { LOAD_DLL_DEBUG_EVENT = 6 } -enum : uint { UNLOAD_DLL_DEBUG_EVENT = 7 } -enum : uint { OUTPUT_DEBUG_STRING_EVENT = 8 } -enum : uint { RIP_EVENT = 9 } - -struct _EXCEPTION_DEBUG_INFO { - EXCEPTION_RECORD ExceptionRecord; - DWORD dwFirstChance; -} -alias _EXCEPTION_DEBUG_INFO EXCEPTION_DEBUG_INFO; -alias _EXCEPTION_DEBUG_INFO* LPEXCEPTION_DEBUG_INFO; - -struct _CREATE_THREAD_DEBUG_INFO { - HANDLE hThread; - LPVOID lpThreadLocalBase; - LPTHREAD_START_ROUTINE lpStartAddress; -} -alias _CREATE_THREAD_DEBUG_INFO CREATE_THREAD_DEBUG_INFO; -alias _CREATE_THREAD_DEBUG_INFO* LPCREATE_THREAD_DEBUG_INFO; - -struct _CREATE_PROCESS_DEBUG_INFO { - HANDLE hFile; - HANDLE hProcess; - HANDLE hThread; - LPVOID lpBaseOfImage; - DWORD dwDebugInfoFileOffset; - DWORD nDebugInfoSize; - LPVOID lpThreadLocalBase; - LPTHREAD_START_ROUTINE lpStartAddress; - LPVOID lpImageName; - WORD fUnicode; -} -alias _CREATE_PROCESS_DEBUG_INFO CREATE_PROCESS_DEBUG_INFO; -alias _CREATE_PROCESS_DEBUG_INFO* LPCREATE_PROCESS_DEBUG_INFO; - -struct _EXIT_THREAD_DEBUG_INFO { - DWORD dwExitCode; -} -alias _EXIT_THREAD_DEBUG_INFO EXIT_THREAD_DEBUG_INFO; -alias _EXIT_THREAD_DEBUG_INFO* LPEXIT_THREAD_DEBUG_INFO; - -struct _EXIT_PROCESS_DEBUG_INFO { - DWORD dwExitCode; -} -alias _EXIT_PROCESS_DEBUG_INFO EXIT_PROCESS_DEBUG_INFO; -alias _EXIT_PROCESS_DEBUG_INFO* LPEXIT_PROCESS_DEBUG_INFO; - -struct _LOAD_DLL_DEBUG_INFO { - HANDLE hFile; - LPVOID lpBaseOfDll; - DWORD dwDebugInfoFileOffset; - DWORD nDebugInfoSize; - LPVOID lpImageName; - WORD fUnicode; -} -alias _LOAD_DLL_DEBUG_INFO LOAD_DLL_DEBUG_INFO; -alias _LOAD_DLL_DEBUG_INFO* LPLOAD_DLL_DEBUG_INFO; - -struct _UNLOAD_DLL_DEBUG_INFO { - LPVOID lpBaseOfDll; -} -alias _UNLOAD_DLL_DEBUG_INFO UNLOAD_DLL_DEBUG_INFO; -alias _UNLOAD_DLL_DEBUG_INFO* LPUNLOAD_DLL_DEBUG_INFO; - -struct _OUTPUT_DEBUG_STRING_INFO { - LPSTR lpDebugStringData; - WORD fUnicode; - WORD nDebugStringLength; -} -alias _OUTPUT_DEBUG_STRING_INFO OUTPUT_DEBUG_STRING_INFO; -alias _OUTPUT_DEBUG_STRING_INFO* LPOUTPUT_DEBUG_STRING_INFO; - -struct _RIP_INFO { - DWORD dwError; - DWORD dwType; -} -alias _RIP_INFO RIP_INFO; -alias _RIP_INFO* LPRIP_INFO; - -struct _DEBUG_EVENT { - DWORD dwDebugEventCode; - DWORD dwProcessId; - DWORD dwThreadId; -union { - EXCEPTION_DEBUG_INFO Exception; - CREATE_THREAD_DEBUG_INFO CreateThread; - CREATE_PROCESS_DEBUG_INFO CreateProcessInfo; - EXIT_THREAD_DEBUG_INFO ExitThread; - EXIT_PROCESS_DEBUG_INFO ExitProcess; - LOAD_DLL_DEBUG_INFO LoadDll; - UNLOAD_DLL_DEBUG_INFO UnloadDll; - OUTPUT_DEBUG_STRING_INFO DebugString; - RIP_INFO RipInfo; -} - -} -alias _DEBUG_EVENT DEBUG_EVENT; -alias _DEBUG_EVENT* LPDEBUG_EVENT; - -// #if !defined(MIDL_PASS) -alias PCONTEXT LPCONTEXT; -alias PEXCEPTION_RECORD LPEXCEPTION_RECORD; -alias PEXCEPTION_POINTERS LPEXCEPTION_POINTERS; -// #endif - -enum : uint { DRIVE_UNKNOWN = 0 } -enum : uint { DRIVE_NO_ROOT_DIR = 1 } -enum : uint { DRIVE_REMOVABLE = 2 } -enum : uint { DRIVE_FIXED = 3 } -enum : uint { DRIVE_REMOTE = 4 } -enum : uint { DRIVE_CDROM = 5 } -enum : uint { DRIVE_RAMDISK = 6 } - -// #ifndef _MAC -// #define GetFreeSpace(w) (0x100000L) -// #else -// ... -// #endif - -enum : uint { FILE_TYPE_UNKNOWN = 0x0000 } -enum : uint { FILE_TYPE_DISK = 0x0001 } -enum : uint { FILE_TYPE_CHAR = 0x0002 } -enum : uint { FILE_TYPE_PIPE = 0x0003 } -enum : uint { FILE_TYPE_REMOTE = 0x8000 } - -enum : uint { STD_INPUT_HANDLE = cast(DWORD)-10 } -enum : uint { STD_OUTPUT_HANDLE = cast(DWORD)-11 } -enum : uint { STD_ERROR_HANDLE = cast(DWORD)-12 } - -enum : uint { NOPARITY = 0 } -enum : uint { ODDPARITY = 1 } -enum : uint { EVENPARITY = 2 } -enum : uint { MARKPARITY = 3 } -enum : uint { SPACEPARITY = 4 } - -enum : uint { ONESTOPBIT = 0 } -enum : uint { ONE5STOPBITS = 1 } -enum : uint { TWOSTOPBITS = 2 } - -enum : uint { IGNORE = 0 } -enum : uint { INFINITE = 0xFFFFFFFF } - -enum : uint { CBR_110 = 110 } -enum : uint { CBR_300 = 300 } -enum : uint { CBR_600 = 600 } -enum : uint { CBR_1200 = 1200 } -enum : uint { CBR_2400 = 2400 } -enum : uint { CBR_4800 = 4800 } -enum : uint { CBR_9600 = 9600 } -enum : uint { CBR_14400 = 14400 } -enum : uint { CBR_19200 = 19200 } -enum : uint { CBR_38400 = 38400 } -enum : uint { CBR_56000 = 56000 } -enum : uint { CBR_57600 = 57600 } -enum : uint { CBR_115200 = 115200 } -enum : uint { CBR_128000 = 128000 } -enum : uint { CBR_256000 = 256000 } - -enum : uint { CE_RXOVER = 0x0001 } -enum : uint { CE_OVERRUN = 0x0002 } -enum : uint { CE_RXPARITY = 0x0004 } -enum : uint { CE_FRAME = 0x0008 } -enum : uint { CE_BREAK = 0x0010 } -enum : uint { CE_TXFULL = 0x0100 } -enum : uint { CE_PTO = 0x0200 } -enum : uint { CE_IOE = 0x0400 } -enum : uint { CE_DNS = 0x0800 } -enum : uint { CE_OOP = 0x1000 } -enum : uint { CE_MODE = 0x8000 } - -enum { IE_BADID = -1 } -enum { IE_OPEN = -2 } -enum { IE_NOPEN = -3 } -enum { IE_MEMORY = -4 } -enum { IE_DEFAULT = -5 } -enum { IE_HARDWARE = -10 } -enum { IE_BYTESIZE = -11 } -enum { IE_BAUDRATE = -12 } - -enum : uint { EV_RXCHAR = 0x0001 } -enum : uint { EV_RXFLAG = 0x0002 } -enum : uint { EV_TXEMPTY = 0x0004 } -enum : uint { EV_CTS = 0x0008 } -enum : uint { EV_DSR = 0x0010 } -enum : uint { EV_RLSD = 0x0020 } -enum : uint { EV_BREAK = 0x0040 } -enum : uint { EV_ERR = 0x0080 } -enum : uint { EV_RING = 0x0100 } -enum : uint { EV_PERR = 0x0200 } -enum : uint { EV_RX80FULL = 0x0400 } -enum : uint { EV_EVENT1 = 0x0800 } -enum : uint { EV_EVENT2 = 0x1000 } - -enum : uint { SETXOFF = 1 } -enum : uint { SETXON = 2 } -enum : uint { SETRTS = 3 } -enum : uint { CLRRTS = 4 } -enum : uint { SETDTR = 5 } -enum : uint { CLRDTR = 6 } -enum : uint { RESETDEV = 7 } -enum : uint { SETBREAK = 8 } -enum : uint { CLRBREAK = 9 } - -enum : uint { PURGE_TXABORT = 0x0001 } -enum : uint { PURGE_RXABORT = 0x0002 } -enum : uint { PURGE_TXCLEAR = 0x0004 } -enum : uint { PURGE_RXCLEAR = 0x0008 } - -enum : uint { LPTx = 0x80 } - -enum : uint { MS_CTS_ON = cast(DWORD)0x0010 } -enum : uint { MS_DSR_ON = cast(DWORD)0x0020 } -enum : uint { MS_RING_ON = cast(DWORD)0x0040 } -enum : uint { MS_RLSD_ON = cast(DWORD)0x0080 } - -enum : uint { S_QUEUEEMPTY = 0 } -enum : uint { S_THRESHOLD = 1 } -enum : uint { S_ALLTHRESHOLD = 2 } - -enum : uint { S_NORMAL = 0 } -enum : uint { S_LEGATO = 1 } -enum : uint { S_STACCATO = 2 } - -enum : uint { S_PERIOD512 = 0 } -enum : uint { S_PERIOD1024 = 1 } -enum : uint { S_PERIOD2048 = 2 } -enum : uint { S_PERIODVOICE = 3 } -enum : uint { S_WHITE512 = 4 } -enum : uint { S_WHITE1024 = 5 } -enum : uint { S_WHITE2048 = 6 } -enum : uint { S_WHITEVOICE = 7 } - -enum { S_SERDVNA = -1 } -enum { S_SEROFM = -2 } -enum { S_SERMACT = -3 } -enum { S_SERQFUL = -4 } -enum { S_SERBDNT = -5 } -enum { S_SERDLN = -6 } -enum { S_SERDCC = -7 } -enum { S_SERDTP = -8 } -enum { S_SERDVL = -9 } -enum { S_SERDMD = -10 } -enum { S_SERDSH = -11 } -enum { S_SERDPT = -12 } -enum { S_SERDFQ = -13 } -enum { S_SERDDR = -14 } -enum { S_SERDSR = -15 } -enum { S_SERDST = -16 } - -enum : uint { NMPWAIT_WAIT_FOREVER = 0xffffffff } -enum : uint { NMPWAIT_NOWAIT = 0x00000001 } -enum : uint { NMPWAIT_USE_DEFAULT_WAIT = 0x00000000 } - -alias FILE_CASE_PRESERVED_NAMES FS_CASE_IS_PRESERVED; -alias FILE_CASE_SENSITIVE_SEARCH FS_CASE_SENSITIVE; -alias FILE_UNICODE_ON_DISK FS_UNICODE_STORED_ON_DISK; -alias FILE_PERSISTENT_ACLS FS_PERSISTENT_ACLS; -alias FILE_VOLUME_IS_COMPRESSED FS_VOL_IS_COMPRESSED; -alias FILE_FILE_COMPRESSION FS_FILE_COMPRESSION; -alias FILE_SUPPORTS_ENCRYPTION FS_FILE_ENCRYPTION; - -alias SECTION_QUERY FILE_MAP_COPY; -alias SECTION_MAP_WRITE FILE_MAP_WRITE; -alias SECTION_MAP_READ FILE_MAP_READ; -alias SECTION_ALL_ACCESS FILE_MAP_ALL_ACCESS; - -enum : uint { OF_READ = 0x00000000 } -enum : uint { OF_WRITE = 0x00000001 } -enum : uint { OF_READWRITE = 0x00000002 } -enum : uint { OF_SHARE_COMPAT = 0x00000000 } -enum : uint { OF_SHARE_EXCLUSIVE = 0x00000010 } -enum : uint { OF_SHARE_DENY_WRITE = 0x00000020 } -enum : uint { OF_SHARE_DENY_READ = 0x00000030 } -enum : uint { OF_SHARE_DENY_NONE = 0x00000040 } -enum : uint { OF_PARSE = 0x00000100 } -enum : uint { OF_DELETE = 0x00000200 } -enum : uint { OF_VERIFY = 0x00000400 } -enum : uint { OF_CANCEL = 0x00000800 } -enum : uint { OF_CREATE = 0x00001000 } -enum : uint { OF_PROMPT = 0x00002000 } -enum : uint { OF_EXIST = 0x00004000 } -enum : uint { OF_REOPEN = 0x00008000 } - -enum : uint { OFS_MAXPATHNAME = 128 } -struct _OFSTRUCT { - BYTE cBytes; - BYTE fFixedDisk; - WORD nErrCode; - WORD Reserved1; - WORD Reserved2; - CHAR szPathName[OFS_MAXPATHNAME]; -} -alias _OFSTRUCT OFSTRUCT; -alias _OFSTRUCT* LPOFSTRUCT; -alias _OFSTRUCT* POFSTRUCT; - -// #ifndef NOWINBASEINTERLOCK - -// #ifndef _NTOS_ - -// #if defined(_M_IA64) && !defined(RC_INVOKED) - -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #elif defined(_M_AMD64) && !defined(RC_INVOKED) - -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #else // X86 interlocked definitions - -extern(Windows) export LONG InterlockedIncrement( - LONG *lpAddend); - -extern(Windows) export LONG InterlockedDecrement( - LONG *lpAddend); - -extern(Windows) export LONG InterlockedExchange( - LONG *Target, - LONG Value); - -void* InterlockedExchangePointer(void** t, void* v){ return cast(void*)InterlockedExchange(cast(PLONG)t, cast(LONG)v); } - -extern(Windows) export LONG InterlockedExchangeAdd( - LONG *Addend, - LONG Value); - -extern(Windows) export LONG InterlockedCompareExchange( - LONG *Destination, - LONG Exchange, - LONG Comperand); - -// #ifdef __cplusplus - -PVOID __InlineInterlockedCompareExchangePointer(PVOID* Destination, PVOID ExChange, PVOID Comperand){ return(cast(PVOID)cast(LONG_PTR)InterlockedCompareExchange(cast(LONG*)Destination, cast(LONG)cast(LONG_PTR)ExChange, cast(LONG)cast(LONG_PTR)Comperand)); } -alias __InlineInterlockedCompareExchangePointer InterlockedCompareExchangePointer; - -// #else - -// #... -// ... - -// #endif /* __cplusplus */ - -// #endif /* X86 | IA64 */ - -// #if defined(_SLIST_HEADER_) && !defined(_NTOSP_) - -// ... - -// ... - -// ... - -// ... - -// ... - -// #endif /* _SLIST_HEADER_ */ -// #endif /* _NTOS_ */ - -// #endif /* NOWINBASEINTERLOCK */ - -extern(Windows) export BOOL FreeResource( - HGLOBAL hResData); - -extern(Windows) export LPVOID LockResource( - HGLOBAL hResData); - -// #define UnlockResource(hResData) ((hResData), 0) -enum : uint { MAXINTATOM = 0xC000 } -// #define MAKEINTATOM(i) (LPTSTR)((ULONG_PTR)((WORD)(i))) -enum : ATOM { INVALID_ATOM = 0 } - -// #ifndef _MAC -// ??? -// ??? -// #else -// ... -// #endif -// WinMain - -extern(Windows) export BOOL FreeLibrary( - HMODULE hLibModule); - -extern(Windows) export VOID FreeLibraryAndExitThread( - HMODULE hLibModule, - DWORD dwExitCode); - -extern(Windows) export BOOL DisableThreadLibraryCalls( - HMODULE hLibModule); - -extern(Windows) export FARPROC GetProcAddress( - HMODULE hModule, - LPCSTR lpProcName); - -extern(Windows) export DWORD GetVersion(); - -extern(Windows) export HGLOBAL GlobalAlloc( - UINT uFlags, - SIZE_T dwBytes); - -extern(Windows) export HGLOBAL GlobalReAlloc( - HGLOBAL hMem, - SIZE_T dwBytes, - UINT uFlags); - -extern(Windows) export SIZE_T GlobalSize( - HGLOBAL hMem); - -extern(Windows) export UINT GlobalFlags( - HGLOBAL hMem); - -extern(Windows) export LPVOID GlobalLock( - HGLOBAL hMem); - -extern(Windows) export HGLOBAL GlobalHandle( - LPCVOID pMem); - -extern(Windows) export BOOL GlobalUnlock( - HGLOBAL hMem); - -extern(Windows) export HGLOBAL GlobalFree( - HGLOBAL hMem); - -extern(Windows) export SIZE_T GlobalCompact( - DWORD dwMinFree); - -extern(Windows) export VOID GlobalFix( - HGLOBAL hMem); - -extern(Windows) export VOID GlobalUnfix( - HGLOBAL hMem); - -extern(Windows) export LPVOID GlobalWire( - HGLOBAL hMem); - -extern(Windows) export BOOL GlobalUnWire( - HGLOBAL hMem); - -extern(Windows) export VOID GlobalMemoryStatus( - LPMEMORYSTATUS lpBuffer); - -struct _MEMORYSTATUSEX { - DWORD dwLength; - DWORD dwMemoryLoad; - DWORDLONG ullTotalPhys; - DWORDLONG ullAvailPhys; - DWORDLONG ullTotalPageFile; - DWORDLONG ullAvailPageFile; - DWORDLONG ullTotalVirtual; - DWORDLONG ullAvailVirtual; - DWORDLONG ullAvailExtendedVirtual; -} -alias _MEMORYSTATUSEX MEMORYSTATUSEX; -alias _MEMORYSTATUSEX* LPMEMORYSTATUSEX; - -extern(Windows) export BOOL GlobalMemoryStatusEx( - LPMEMORYSTATUSEX lpBuffer); - -extern(Windows) export HLOCAL LocalAlloc( - UINT uFlags, - SIZE_T uBytes); - -extern(Windows) export HLOCAL LocalReAlloc( - HLOCAL hMem, - SIZE_T uBytes, - UINT uFlags); - -extern(Windows) export LPVOID LocalLock( - HLOCAL hMem); - -extern(Windows) export HLOCAL LocalHandle( - LPCVOID pMem); - -extern(Windows) export BOOL LocalUnlock( - HLOCAL hMem); - -extern(Windows) export SIZE_T LocalSize( - HLOCAL hMem); - -extern(Windows) export UINT LocalFlags( - HLOCAL hMem); - -extern(Windows) export HLOCAL LocalFree( - HLOCAL hMem); - -extern(Windows) export SIZE_T LocalShrink( - HLOCAL hMem, - UINT cbNewSize); - -extern(Windows) export SIZE_T LocalCompact( - UINT uMinFree); - -extern(Windows) export BOOL FlushInstructionCache( - HANDLE hProcess, - LPCVOID lpBaseAddress, - SIZE_T dwSize); - -extern(Windows) export LPVOID VirtualAlloc( - LPVOID lpAddress, - SIZE_T dwSize, - DWORD flAllocationType, - DWORD flProtect); - -extern(Windows) export BOOL VirtualFree( - LPVOID lpAddress, - SIZE_T dwSize, - DWORD dwFreeType); - -extern(Windows) export BOOL VirtualProtect( - LPVOID lpAddress, - SIZE_T dwSize, - DWORD flNewProtect, - PDWORD lpflOldProtect); - -extern(Windows) export SIZE_T VirtualQuery( - LPCVOID lpAddress, - PMEMORY_BASIC_INFORMATION lpBuffer, - SIZE_T dwLength); - -extern(Windows) export LPVOID VirtualAllocEx( - HANDLE hProcess, - LPVOID lpAddress, - SIZE_T dwSize, - DWORD flAllocationType, - DWORD flProtect); - -extern(Windows) export UINT GetWriteWatch( - DWORD dwFlags, - PVOID lpBaseAddress, - SIZE_T dwRegionSize, - PVOID *lpAddresses, - PULONG_PTR lpdwCount, - PULONG lpdwGranularity); - -extern(Windows) export UINT ResetWriteWatch( - LPVOID lpBaseAddress, - SIZE_T dwRegionSize); - -extern(Windows) export BOOL VirtualFreeEx( - HANDLE hProcess, - LPVOID lpAddress, - SIZE_T dwSize, - DWORD dwFreeType); - -extern(Windows) export BOOL VirtualProtectEx( - HANDLE hProcess, - LPVOID lpAddress, - SIZE_T dwSize, - DWORD flNewProtect, - PDWORD lpflOldProtect); - -extern(Windows) export SIZE_T VirtualQueryEx( - HANDLE hProcess, - LPCVOID lpAddress, - PMEMORY_BASIC_INFORMATION lpBuffer, - SIZE_T dwLength); - -extern(Windows) export HANDLE HeapCreate( - DWORD flOptions, - SIZE_T dwInitialSize, - SIZE_T dwMaximumSize); - -extern(Windows) export BOOL HeapDestroy( - HANDLE hHeap); - -extern(Windows) export LPVOID HeapAlloc( - HANDLE hHeap, - DWORD dwFlags, - SIZE_T dwBytes); - -extern(Windows) export LPVOID HeapReAlloc( - HANDLE hHeap, - DWORD dwFlags, - LPVOID lpMem, - SIZE_T dwBytes); - -extern(Windows) export BOOL HeapFree( - HANDLE hHeap, - DWORD dwFlags, - LPVOID lpMem); - -extern(Windows) export SIZE_T HeapSize( - HANDLE hHeap, - DWORD dwFlags, - LPCVOID lpMem); - -extern(Windows) export BOOL HeapValidate( - HANDLE hHeap, - DWORD dwFlags, - LPCVOID lpMem); - -extern(Windows) export SIZE_T HeapCompact( - HANDLE hHeap, - DWORD dwFlags); - -extern(Windows) export HANDLE GetProcessHeap(); - -extern(Windows) export DWORD GetProcessHeaps( - DWORD NumberOfHeaps, - PHANDLE ProcessHeaps); - -struct _PROCESS_HEAP_ENTRY { - PVOID lpData; - DWORD cbData; - BYTE cbOverhead; - BYTE iRegionIndex; - WORD wFlags; -union { -struct { - HANDLE hMem; - DWORD dwReserved[ 3 ]; -} - -struct { - DWORD dwCommittedSize; - DWORD dwUnCommittedSize; - LPVOID lpFirstBlock; - LPVOID lpLastBlock; -} - -} - -} -alias _PROCESS_HEAP_ENTRY PROCESS_HEAP_ENTRY; -alias _PROCESS_HEAP_ENTRY* LPPROCESS_HEAP_ENTRY; -alias _PROCESS_HEAP_ENTRY* PPROCESS_HEAP_ENTRY; - -enum : uint { PROCESS_HEAP_REGION = 0x0001 } -enum : uint { PROCESS_HEAP_UNCOMMITTED_RANGE = 0x0002 } -enum : uint { PROCESS_HEAP_ENTRY_BUSY = 0x0004 } -enum : uint { PROCESS_HEAP_ENTRY_MOVEABLE = 0x0010 } -enum : uint { PROCESS_HEAP_ENTRY_DDESHARE = 0x0020 } - -extern(Windows) export BOOL HeapLock( - HANDLE hHeap); - -extern(Windows) export BOOL HeapUnlock( - HANDLE hHeap); - -extern(Windows) export BOOL HeapWalk( - HANDLE hHeap, - LPPROCESS_HEAP_ENTRY lpEntry); - -extern(Windows) export BOOL HeapSetInformation( - PVOID HeapHandle, - HEAP_INFORMATION_CLASS HeapInformationClass, - PVOID HeapInformation , - SIZE_T HeapInformationLength ); - -extern(Windows) export BOOL HeapQueryInformation( - PVOID HeapHandle, - HEAP_INFORMATION_CLASS HeapInformationClass, - PVOID HeapInformation , - SIZE_T HeapInformationLength , - PSIZE_T ReturnLength ); - -enum : uint { SCS_32BIT_BINARY = 0 } -enum : uint { SCS_DOS_BINARY = 1 } -enum : uint { SCS_WOW_BINARY = 2 } -enum : uint { SCS_PIF_BINARY = 3 } -enum : uint { SCS_POSIX_BINARY = 4 } -enum : uint { SCS_OS216_BINARY = 5 } -enum : uint { SCS_64BIT_BINARY = 6 } - -// #if defined(_WIN64) -// #... -// #else -alias SCS_32BIT_BINARY SCS_THIS_PLATFORM_BINARY; -// #endif - -extern(Windows) export BOOL GetBinaryTypeA( - LPCSTR lpApplicationName, - LPDWORD lpBinaryType); -extern(Windows) export BOOL GetBinaryTypeW( - LPCWSTR lpApplicationName, - LPDWORD lpBinaryType); -// #ifdef UNICODE -alias GetBinaryTypeW GetBinaryType; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetShortPathNameA( - LPCSTR lpszLongPath, - LPSTR lpszShortPath, - DWORD cchBuffer); -extern(Windows) export DWORD GetShortPathNameW( - LPCWSTR lpszLongPath, - LPWSTR lpszShortPath, - DWORD cchBuffer); -// #ifdef UNICODE -alias GetShortPathNameW GetShortPathName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetLongPathNameA( - LPCSTR lpszShortPath, - LPSTR lpszLongPath, - DWORD cchBuffer); -extern(Windows) export DWORD GetLongPathNameW( - LPCWSTR lpszShortPath, - LPWSTR lpszLongPath, - DWORD cchBuffer); -// #ifdef UNICODE -alias GetLongPathNameW GetLongPathName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetProcessAffinityMask( - HANDLE hProcess, - PDWORD_PTR lpProcessAffinityMask, - PDWORD_PTR lpSystemAffinityMask); - -extern(Windows) export BOOL SetProcessAffinityMask( - HANDLE hProcess, - DWORD_PTR dwProcessAffinityMask); - -extern(Windows) export BOOL GetProcessTimes( - HANDLE hProcess, - LPFILETIME lpCreationTime, - LPFILETIME lpExitTime, - LPFILETIME lpKernelTime, - LPFILETIME lpUserTime); - -extern(Windows) export BOOL GetProcessIoCounters( - HANDLE hProcess, - PIO_COUNTERS lpIoCounters); - -extern(Windows) export BOOL GetProcessWorkingSetSize( - HANDLE hProcess, - PSIZE_T lpMinimumWorkingSetSize, - PSIZE_T lpMaximumWorkingSetSize); - -extern(Windows) export BOOL SetProcessWorkingSetSize( - HANDLE hProcess, - SIZE_T dwMinimumWorkingSetSize, - SIZE_T dwMaximumWorkingSetSize); - -extern(Windows) export HANDLE OpenProcess( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - DWORD dwProcessId); - -extern(Windows) export HANDLE GetCurrentProcess(); - -extern(Windows) export DWORD GetCurrentProcessId(); - -extern(Windows) export VOID ExitProcess( - UINT uExitCode); - -extern(Windows) export BOOL TerminateProcess( - HANDLE hProcess, - UINT uExitCode); - -extern(Windows) export BOOL GetExitCodeProcess( - HANDLE hProcess, - LPDWORD lpExitCode); - -extern(Windows) export VOID FatalExit( - int ExitCode); - -extern(Windows) export LPSTR GetEnvironmentStrings(); - -extern(Windows) export LPWSTR GetEnvironmentStringsW(); - -// #ifdef UNICODE -alias GetEnvironmentStringsW GetEnvironmentStrings; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL FreeEnvironmentStringsA( - LPSTR); -extern(Windows) export BOOL FreeEnvironmentStringsW( - LPWSTR); -// #ifdef UNICODE -alias FreeEnvironmentStringsW FreeEnvironmentStrings; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export VOID RaiseException( - DWORD dwExceptionCode, - DWORD dwExceptionFlags, - DWORD nNumberOfArguments, - ULONG_PTR *lpArguments); - -extern(Windows) export LONG UnhandledExceptionFilter( - _EXCEPTION_POINTERS *ExceptionInfo); - -extern(Windows) alias LONG function( _EXCEPTION_POINTERS *ExceptionInfo ) PTOP_LEVEL_EXCEPTION_FILTER; -alias PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER; - -extern(Windows) export LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter( - LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter); - -// #if(_WIN32_WINNT >= 0x0400) - -extern(Windows) export LPVOID CreateFiber( - SIZE_T dwStackSize, - LPFIBER_START_ROUTINE lpStartAddress, - LPVOID lpParameter); - -extern(Windows) export LPVOID CreateFiberEx( - SIZE_T dwStackCommitSize, - SIZE_T dwStackReserveSize, - DWORD dwFlags, - LPFIBER_START_ROUTINE lpStartAddress, - LPVOID lpParameter); - -extern(Windows) export VOID DeleteFiber( - LPVOID lpFiber); - -extern(Windows) export LPVOID ConvertThreadToFiber( - LPVOID lpParameter); - -extern(Windows) export BOOL ConvertFiberToThread(); - -extern(Windows) export VOID SwitchToFiber( - LPVOID lpFiber); - -extern(Windows) export BOOL SwitchToThread(); -// #endif /* _WIN32_WINNT >= 0x0400 */ - -extern(Windows) export HANDLE CreateThread( - LPSECURITY_ATTRIBUTES lpThreadAttributes, - SIZE_T dwStackSize, - LPTHREAD_START_ROUTINE lpStartAddress, - LPVOID lpParameter, - DWORD dwCreationFlags, - LPDWORD lpThreadId); - -extern(Windows) export HANDLE CreateRemoteThread( - HANDLE hProcess, - LPSECURITY_ATTRIBUTES lpThreadAttributes, - SIZE_T dwStackSize, - LPTHREAD_START_ROUTINE lpStartAddress, - LPVOID lpParameter, - DWORD dwCreationFlags, - LPDWORD lpThreadId); - -extern(Windows) export HANDLE GetCurrentThread(); - -extern(Windows) export DWORD GetCurrentThreadId(); - -extern(Windows) export DWORD_PTR SetThreadAffinityMask( - HANDLE hThread, - DWORD_PTR dwThreadAffinityMask); - -// #if(_WIN32_WINNT >= 0x0400) -extern(Windows) export DWORD SetThreadIdealProcessor( - HANDLE hThread, - DWORD dwIdealProcessor); -// #endif /* _WIN32_WINNT >= 0x0400 */ - -extern(Windows) export BOOL SetProcessPriorityBoost( - HANDLE hProcess, - BOOL bDisablePriorityBoost); - -extern(Windows) export BOOL GetProcessPriorityBoost( - HANDLE hProcess, - PBOOL pDisablePriorityBoost); - -extern(Windows) export BOOL RequestWakeupLatency( - LATENCY_TIME latency); - -extern(Windows) export BOOL IsSystemResumeAutomatic(); - -extern(Windows) export HANDLE OpenThread( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - DWORD dwThreadId); - -extern(Windows) export BOOL SetThreadPriority( - HANDLE hThread, - int nPriority); - -extern(Windows) export BOOL SetThreadPriorityBoost( - HANDLE hThread, - BOOL bDisablePriorityBoost); - -extern(Windows) export BOOL GetThreadPriorityBoost( - HANDLE hThread, - PBOOL pDisablePriorityBoost); - -extern(Windows) export int GetThreadPriority( - HANDLE hThread); - -extern(Windows) export BOOL GetThreadTimes( - HANDLE hThread, - LPFILETIME lpCreationTime, - LPFILETIME lpExitTime, - LPFILETIME lpKernelTime, - LPFILETIME lpUserTime); - -extern(Windows) export VOID ExitThread( - DWORD dwExitCode); - -extern(Windows) export BOOL TerminateThread( - HANDLE hThread, - DWORD dwExitCode); - -extern(Windows) export BOOL GetExitCodeThread( - HANDLE hThread, - LPDWORD lpExitCode); - -extern(Windows) export BOOL GetThreadSelectorEntry( - HANDLE hThread, - DWORD dwSelector, - LPLDT_ENTRY lpSelectorEntry); - -extern(Windows) export EXECUTION_STATE SetThreadExecutionState( - EXECUTION_STATE esFlags); - -extern(Windows) export DWORD GetLastError(); - -extern(Windows) export VOID SetLastError( - DWORD dwErrCode); - -// #if !defined(RC_INVOKED) // RC warns because "WINBASE_DECLARE_RESTORE_LAST_ERROR" is a bit long. - -// #if defined(WINBASE_DECLARE_RESTORE_LAST_ERROR) - -// ... - -// ... -// #... -// #... -// #... - -// #endif -// #endif - -bit HasOverlappedIoCompleted(LPOVERLAPPED lpOverlapped){ return (*lpOverlapped).Internal != STATUS_PENDING; } - -extern(Windows) export BOOL GetOverlappedResult( - HANDLE hFile, - LPOVERLAPPED lpOverlapped, - LPDWORD lpNumberOfBytesTransferred, - BOOL bWait); - -extern(Windows) export HANDLE CreateIoCompletionPort( - HANDLE FileHandle, - HANDLE ExistingCompletionPort, - ULONG_PTR CompletionKey, - DWORD NumberOfConcurrentThreads); - -extern(Windows) export BOOL GetQueuedCompletionStatus( - HANDLE CompletionPort, - LPDWORD lpNumberOfBytesTransferred, - PULONG_PTR lpCompletionKey, - LPOVERLAPPED *lpOverlapped, - DWORD dwMilliseconds); - -extern(Windows) export BOOL PostQueuedCompletionStatus( - HANDLE CompletionPort, - DWORD dwNumberOfBytesTransferred, - ULONG_PTR dwCompletionKey, - LPOVERLAPPED lpOverlapped); - -enum : uint { SEM_FAILCRITICALERRORS = 0x0001 } -enum : uint { SEM_NOGPFAULTERRORBOX = 0x0002 } -enum : uint { SEM_NOALIGNMENTFAULTEXCEPT = 0x0004 } -enum : uint { SEM_NOOPENFILEERRORBOX = 0x8000 } - -extern(Windows) export UINT SetErrorMode( - UINT uMode); - -extern(Windows) export BOOL ReadProcessMemory( - HANDLE hProcess, - LPCVOID lpBaseAddress, - LPVOID lpBuffer, - SIZE_T nSize, - SIZE_T * lpNumberOfBytesRead); - -extern(Windows) export BOOL WriteProcessMemory( - HANDLE hProcess, - LPVOID lpBaseAddress, - LPCVOID lpBuffer, - SIZE_T nSize, - SIZE_T * lpNumberOfBytesWritten); - -// #if !defined(MIDL_PASS) -extern(Windows) export BOOL GetThreadContext( - HANDLE hThread, - LPCONTEXT lpContext); - -extern(Windows) export BOOL SetThreadContext( - HANDLE hThread, - CONTEXT *lpContext); -// #endif - -extern(Windows) export DWORD SuspendThread( - HANDLE hThread); - -extern(Windows) export DWORD ResumeThread( - HANDLE hThread); - -// #if(_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) - -// ... - -// ... - -// #endif /* _WIN32_WINNT >= 0x0400 || _WIN32_WINDOWS > 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) -extern(Windows) export BOOL IsDebuggerPresent(); -// #endif - -extern(Windows) export VOID DebugBreak(); - -extern(Windows) export BOOL WaitForDebugEvent( - LPDEBUG_EVENT lpDebugEvent, - DWORD dwMilliseconds); - -extern(Windows) export BOOL ContinueDebugEvent( - DWORD dwProcessId, - DWORD dwThreadId, - DWORD dwContinueStatus); - -extern(Windows) export BOOL DebugActiveProcess( - DWORD dwProcessId); - -extern(Windows) export BOOL DebugActiveProcessStop( - DWORD dwProcessId); - -extern(Windows) export BOOL DebugSetProcessKillOnExit( - BOOL KillOnExit); - -extern(Windows) export BOOL DebugBreakProcess( - HANDLE Process); - -extern(Windows) export VOID InitializeCriticalSection( - LPCRITICAL_SECTION lpCriticalSection); - -extern(Windows) export VOID EnterCriticalSection( - LPCRITICAL_SECTION lpCriticalSection); - -extern(Windows) export VOID LeaveCriticalSection( - LPCRITICAL_SECTION lpCriticalSection); - -// #if (_WIN32_WINNT >= 0x0403) -extern(Windows) export BOOL InitializeCriticalSectionAndSpinCount( - LPCRITICAL_SECTION lpCriticalSection, - DWORD dwSpinCount); - -extern(Windows) export DWORD SetCriticalSectionSpinCount( - LPCRITICAL_SECTION lpCriticalSection, - DWORD dwSpinCount); -// #endif - -// #if(_WIN32_WINNT >= 0x0400) -extern(Windows) export BOOL TryEnterCriticalSection( - LPCRITICAL_SECTION lpCriticalSection); -// #endif /* _WIN32_WINNT >= 0x0400 */ - -extern(Windows) export VOID DeleteCriticalSection( - LPCRITICAL_SECTION lpCriticalSection); - -extern(Windows) export BOOL SetEvent( - HANDLE hEvent); - -extern(Windows) export BOOL ResetEvent( - HANDLE hEvent); - -extern(Windows) export BOOL PulseEvent( - HANDLE hEvent); - -extern(Windows) export BOOL ReleaseSemaphore( - HANDLE hSemaphore, - LONG lReleaseCount, - LPLONG lpPreviousCount); - -extern(Windows) export BOOL ReleaseMutex( - HANDLE hMutex); - -extern(Windows) export DWORD WaitForSingleObject( - HANDLE hHandle, - DWORD dwMilliseconds); - -extern(Windows) export DWORD WaitForMultipleObjects( - DWORD nCount, - HANDLE *lpHandles, - BOOL bWaitAll, - DWORD dwMilliseconds); - -extern(Windows) export VOID Sleep( - DWORD dwMilliseconds); - -extern(Windows) export HGLOBAL LoadResource( - HMODULE hModule, - HRSRC hResInfo); - -extern(Windows) export DWORD SizeofResource( - HMODULE hModule, - HRSRC hResInfo); - -extern(Windows) export ATOM GlobalDeleteAtom( - ATOM nAtom); - -extern(Windows) export BOOL InitAtomTable( - DWORD nSize); - -extern(Windows) export ATOM DeleteAtom( - ATOM nAtom); - -extern(Windows) export UINT SetHandleCount( - UINT uNumber); - -extern(Windows) export DWORD GetLogicalDrives(); - -extern(Windows) export BOOL LockFile( - HANDLE hFile, - DWORD dwFileOffsetLow, - DWORD dwFileOffsetHigh, - DWORD nNumberOfBytesToLockLow, - DWORD nNumberOfBytesToLockHigh); - -extern(Windows) export BOOL UnlockFile( - HANDLE hFile, - DWORD dwFileOffsetLow, - DWORD dwFileOffsetHigh, - DWORD nNumberOfBytesToUnlockLow, - DWORD nNumberOfBytesToUnlockHigh); - -extern(Windows) export BOOL LockFileEx( - HANDLE hFile, - DWORD dwFlags, - DWORD dwReserved, - DWORD nNumberOfBytesToLockLow, - DWORD nNumberOfBytesToLockHigh, - LPOVERLAPPED lpOverlapped); - -enum : uint { LOCKFILE_FAIL_IMMEDIATELY = 0x00000001 } -enum : uint { LOCKFILE_EXCLUSIVE_LOCK = 0x00000002 } - -extern(Windows) export BOOL UnlockFileEx( - HANDLE hFile, - DWORD dwReserved, - DWORD nNumberOfBytesToUnlockLow, - DWORD nNumberOfBytesToUnlockHigh, - LPOVERLAPPED lpOverlapped); - -struct _BY_HANDLE_FILE_INFORMATION { - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD dwVolumeSerialNumber; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; - DWORD nNumberOfLinks; - DWORD nFileIndexHigh; - DWORD nFileIndexLow; -} -alias _BY_HANDLE_FILE_INFORMATION BY_HANDLE_FILE_INFORMATION; -alias _BY_HANDLE_FILE_INFORMATION* PBY_HANDLE_FILE_INFORMATION; -alias _BY_HANDLE_FILE_INFORMATION* LPBY_HANDLE_FILE_INFORMATION; - -extern(Windows) export BOOL GetFileInformationByHandle( - HANDLE hFile, - LPBY_HANDLE_FILE_INFORMATION lpFileInformation); - -extern(Windows) export DWORD GetFileType( - HANDLE hFile); - -extern(Windows) export DWORD GetFileSize( - HANDLE hFile, - LPDWORD lpFileSizeHigh); - -extern(Windows) export BOOL GetFileSizeEx( - HANDLE hFile, - PLARGE_INTEGER lpFileSize); - -extern(Windows) export HANDLE GetStdHandle( - DWORD nStdHandle); - -extern(Windows) export BOOL SetStdHandle( - DWORD nStdHandle, - HANDLE hHandle); - -extern(Windows) export BOOL WriteFile( - HANDLE hFile, - LPCVOID lpBuffer, - DWORD nNumberOfBytesToWrite, - LPDWORD lpNumberOfBytesWritten, - LPOVERLAPPED lpOverlapped); - -extern(Windows) export BOOL ReadFile( - HANDLE hFile, - LPVOID lpBuffer, - DWORD nNumberOfBytesToRead, - LPDWORD lpNumberOfBytesRead, - LPOVERLAPPED lpOverlapped); - -extern(Windows) export BOOL FlushFileBuffers( - HANDLE hFile); - -extern(Windows) export BOOL DeviceIoControl( - HANDLE hDevice, - DWORD dwIoControlCode, - LPVOID lpInBuffer, - DWORD nInBufferSize, - LPVOID lpOutBuffer, - DWORD nOutBufferSize, - LPDWORD lpBytesReturned, - LPOVERLAPPED lpOverlapped); - -extern(Windows) export BOOL RequestDeviceWakeup( - HANDLE hDevice); - -extern(Windows) export BOOL CancelDeviceWakeupRequest( - HANDLE hDevice); - -extern(Windows) export BOOL GetDevicePowerState( - HANDLE hDevice, - BOOL *pfOn); - -extern(Windows) export BOOL SetMessageWaitingIndicator( - HANDLE hMsgIndicator, - ULONG ulMsgCount); - -extern(Windows) export BOOL SetEndOfFile( - HANDLE hFile); - -extern(Windows) export DWORD SetFilePointer( - HANDLE hFile, - LONG lDistanceToMove, - PLONG lpDistanceToMoveHigh, - DWORD dwMoveMethod); - -extern(Windows) export BOOL SetFilePointerEx( - HANDLE hFile, - LARGE_INTEGER liDistanceToMove, - PLARGE_INTEGER lpNewFilePointer, - DWORD dwMoveMethod); - -extern(Windows) export BOOL FindClose( - HANDLE hFindFile); - -extern(Windows) export BOOL GetFileTime( - HANDLE hFile, - LPFILETIME lpCreationTime, - LPFILETIME lpLastAccessTime, - LPFILETIME lpLastWriteTime); - -extern(Windows) export BOOL SetFileTime( - HANDLE hFile, - FILETIME *lpCreationTime, - FILETIME *lpLastAccessTime, - FILETIME *lpLastWriteTime); - -extern(Windows) export BOOL SetFileValidData( - HANDLE hFile, - LONGLONG ValidDataLength); - -extern(Windows) export BOOL SetFileShortNameA( - HANDLE hFile, - LPCSTR lpShortName); -extern(Windows) export BOOL SetFileShortNameW( - HANDLE hFile, - LPCWSTR lpShortName); -// #ifdef UNICODE -alias SetFileShortNameW SetFileShortName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL CloseHandle( - HANDLE hObject); - -extern(Windows) export BOOL DuplicateHandle( - HANDLE hSourceProcessHandle, - HANDLE hSourceHandle, - HANDLE hTargetProcessHandle, - LPHANDLE lpTargetHandle, - DWORD dwDesiredAccess, - BOOL bInheritHandle, - DWORD dwOptions); - -extern(Windows) export BOOL GetHandleInformation( - HANDLE hObject, - LPDWORD lpdwFlags); - -extern(Windows) export BOOL SetHandleInformation( - HANDLE hObject, - DWORD dwMask, - DWORD dwFlags); - -enum : uint { HANDLE_FLAG_INHERIT = 0x00000001 } -enum : uint { HANDLE_FLAG_PROTECT_FROM_CLOSE = 0x00000002 } - -enum : uint { HINSTANCE_ERROR = 32 } - -extern(Windows) export DWORD LoadModule( - LPCSTR lpModuleName, - LPVOID lpParameterBlock); - -extern(Windows) export UINT WinExec( - LPCSTR lpCmdLine, - UINT uCmdShow); - -extern(Windows) export BOOL ClearCommBreak( - HANDLE hFile); - -extern(Windows) export BOOL ClearCommError( - HANDLE hFile, - LPDWORD lpErrors, - LPCOMSTAT lpStat); - -extern(Windows) export BOOL SetupComm( - HANDLE hFile, - DWORD dwInQueue, - DWORD dwOutQueue); - -extern(Windows) export BOOL EscapeCommFunction( - HANDLE hFile, - DWORD dwFunc); - -extern(Windows) export BOOL GetCommConfig( - HANDLE hCommDev, - LPCOMMCONFIG lpCC, - LPDWORD lpdwSize); - -extern(Windows) export BOOL GetCommMask( - HANDLE hFile, - LPDWORD lpEvtMask); - -extern(Windows) export BOOL GetCommProperties( - HANDLE hFile, - LPCOMMPROP lpCommProp); - -extern(Windows) export BOOL GetCommModemStatus( - HANDLE hFile, - LPDWORD lpModemStat); - -extern(Windows) export BOOL GetCommState( - HANDLE hFile, - LPDCB lpDCB); - -extern(Windows) export BOOL GetCommTimeouts( - HANDLE hFile, - LPCOMMTIMEOUTS lpCommTimeouts); - -extern(Windows) export BOOL PurgeComm( - HANDLE hFile, - DWORD dwFlags); - -extern(Windows) export BOOL SetCommBreak( - HANDLE hFile); - -extern(Windows) export BOOL SetCommConfig( - HANDLE hCommDev, - LPCOMMCONFIG lpCC, - DWORD dwSize); - -extern(Windows) export BOOL SetCommMask( - HANDLE hFile, - DWORD dwEvtMask); - -extern(Windows) export BOOL SetCommState( - HANDLE hFile, - LPDCB lpDCB); - -extern(Windows) export BOOL SetCommTimeouts( - HANDLE hFile, - LPCOMMTIMEOUTS lpCommTimeouts); - -extern(Windows) export BOOL TransmitCommChar( - HANDLE hFile, - char cChar); - -extern(Windows) export BOOL WaitCommEvent( - HANDLE hFile, - LPDWORD lpEvtMask, - LPOVERLAPPED lpOverlapped); - -extern(Windows) export DWORD SetTapePosition( - HANDLE hDevice, - DWORD dwPositionMethod, - DWORD dwPartition, - DWORD dwOffsetLow, - DWORD dwOffsetHigh, - BOOL bImmediate); - -extern(Windows) export DWORD GetTapePosition( - HANDLE hDevice, - DWORD dwPositionType, - LPDWORD lpdwPartition, - LPDWORD lpdwOffsetLow, - LPDWORD lpdwOffsetHigh); - -extern(Windows) export DWORD PrepareTape( - HANDLE hDevice, - DWORD dwOperation, - BOOL bImmediate); - -extern(Windows) export DWORD EraseTape( - HANDLE hDevice, - DWORD dwEraseType, - BOOL bImmediate); - -extern(Windows) export DWORD CreateTapePartition( - HANDLE hDevice, - DWORD dwPartitionMethod, - DWORD dwCount, - DWORD dwSize); - -extern(Windows) export DWORD WriteTapemark( - HANDLE hDevice, - DWORD dwTapemarkType, - DWORD dwTapemarkCount, - BOOL bImmediate); - -extern(Windows) export DWORD GetTapeStatus( - HANDLE hDevice); - -extern(Windows) export DWORD GetTapeParameters( - HANDLE hDevice, - DWORD dwOperation, - LPDWORD lpdwSize, - LPVOID lpTapeInformation); - -enum : uint { GET_TAPE_MEDIA_INFORMATION = 0 } -enum : uint { GET_TAPE_DRIVE_INFORMATION = 1 } - -extern(Windows) export DWORD SetTapeParameters( - HANDLE hDevice, - DWORD dwOperation, - LPVOID lpTapeInformation); - -enum : uint { SET_TAPE_MEDIA_INFORMATION = 0 } -enum : uint { SET_TAPE_DRIVE_INFORMATION = 1 } - -extern(Windows) export BOOL Beep( - DWORD dwFreq, - DWORD dwDuration); - -extern(Windows) export int MulDiv( - int nNumber, - int nNumerator, - int nDenominator); - -extern(Windows) export VOID GetSystemTime( - LPSYSTEMTIME lpSystemTime); - -extern(Windows) export VOID GetSystemTimeAsFileTime( - LPFILETIME lpSystemTimeAsFileTime); - -extern(Windows) export BOOL SetSystemTime( - SYSTEMTIME *lpSystemTime); - -extern(Windows) export VOID GetLocalTime( - LPSYSTEMTIME lpSystemTime); - -extern(Windows) export BOOL SetLocalTime( - SYSTEMTIME *lpSystemTime); - -extern(Windows) export VOID GetSystemInfo( - LPSYSTEM_INFO lpSystemInfo); - -// #if _WIN32_WINNT >= 0x0501 -extern(Windows) export VOID GetNativeSystemInfo( - LPSYSTEM_INFO lpSystemInfo); -// #endif - -extern(Windows) export BOOL IsProcessorFeaturePresent( - DWORD ProcessorFeature); - -struct _TIME_ZONE_INFORMATION { - LONG Bias; - WCHAR StandardName[ 32 ]; - SYSTEMTIME StandardDate; - LONG StandardBias; - WCHAR DaylightName[ 32 ]; - SYSTEMTIME DaylightDate; - LONG DaylightBias; -} -alias _TIME_ZONE_INFORMATION TIME_ZONE_INFORMATION; -alias _TIME_ZONE_INFORMATION* PTIME_ZONE_INFORMATION; -alias _TIME_ZONE_INFORMATION* LPTIME_ZONE_INFORMATION; - -extern(Windows) export BOOL SystemTimeToTzSpecificLocalTime( - LPTIME_ZONE_INFORMATION lpTimeZoneInformation, - LPSYSTEMTIME lpUniversalTime, - LPSYSTEMTIME lpLocalTime); - -extern(Windows) export BOOL TzSpecificLocalTimeToSystemTime( - LPTIME_ZONE_INFORMATION lpTimeZoneInformation, - LPSYSTEMTIME lpLocalTime, - LPSYSTEMTIME lpUniversalTime); - -extern(Windows) export DWORD GetTimeZoneInformation( - LPTIME_ZONE_INFORMATION lpTimeZoneInformation); - -extern(Windows) export BOOL SetTimeZoneInformation( - TIME_ZONE_INFORMATION *lpTimeZoneInformation); - -extern(Windows) export BOOL SystemTimeToFileTime( - SYSTEMTIME *lpSystemTime, - LPFILETIME lpFileTime); - -extern(Windows) export BOOL FileTimeToLocalFileTime( - FILETIME *lpFileTime, - LPFILETIME lpLocalFileTime); - -extern(Windows) export BOOL LocalFileTimeToFileTime( - FILETIME *lpLocalFileTime, - LPFILETIME lpFileTime); - -extern(Windows) export BOOL FileTimeToSystemTime( - FILETIME *lpFileTime, - LPSYSTEMTIME lpSystemTime); - -extern(Windows) export LONG CompareFileTime( - FILETIME *lpFileTime1, - FILETIME *lpFileTime2); - -extern(Windows) export BOOL FileTimeToDosDateTime( - FILETIME *lpFileTime, - LPWORD lpFatDate, - LPWORD lpFatTime); - -extern(Windows) export BOOL DosDateTimeToFileTime( - WORD wFatDate, - WORD wFatTime, - LPFILETIME lpFileTime); - -extern(Windows) export DWORD GetTickCount(); - -extern(Windows) export BOOL SetSystemTimeAdjustment( - DWORD dwTimeAdjustment, - BOOL bTimeAdjustmentDisabled); - -extern(Windows) export BOOL GetSystemTimeAdjustment( - PDWORD lpTimeAdjustment, - PDWORD lpTimeIncrement, - PBOOL lpTimeAdjustmentDisabled); - -// #if !defined(MIDL_PASS) -extern(Windows) export DWORD FormatMessageA( - DWORD dwFlags, - LPCVOID lpSource, - DWORD dwMessageId, - DWORD dwLanguageId, - LPSTR lpBuffer, - DWORD nSize, - va_list *Arguments); -extern(Windows) export DWORD FormatMessageW( - DWORD dwFlags, - LPCVOID lpSource, - DWORD dwMessageId, - DWORD dwLanguageId, - LPWSTR lpBuffer, - DWORD nSize, - va_list *Arguments); -// #ifdef UNICODE -alias FormatMessageW FormatMessage; -// #else -// #... -// #endif // !UNICODE -// #endif - -enum : uint { FORMAT_MESSAGE_ALLOCATE_BUFFER = 0x00000100 } -enum : uint { FORMAT_MESSAGE_IGNORE_INSERTS = 0x00000200 } -enum : uint { FORMAT_MESSAGE_FROM_STRING = 0x00000400 } -enum : uint { FORMAT_MESSAGE_FROM_HMODULE = 0x00000800 } -enum : uint { FORMAT_MESSAGE_FROM_SYSTEM = 0x00001000 } -enum : uint { FORMAT_MESSAGE_ARGUMENT_ARRAY = 0x00002000 } -enum : uint { FORMAT_MESSAGE_MAX_WIDTH_MASK = 0x000000FF } - -extern(Windows) export BOOL CreatePipe( - PHANDLE hReadPipe, - PHANDLE hWritePipe, - LPSECURITY_ATTRIBUTES lpPipeAttributes, - DWORD nSize); - -extern(Windows) export BOOL ConnectNamedPipe( - HANDLE hNamedPipe, - LPOVERLAPPED lpOverlapped); - -extern(Windows) export BOOL DisconnectNamedPipe( - HANDLE hNamedPipe); - -extern(Windows) export BOOL SetNamedPipeHandleState( - HANDLE hNamedPipe, - LPDWORD lpMode, - LPDWORD lpMaxCollectionCount, - LPDWORD lpCollectDataTimeout); - -extern(Windows) export BOOL GetNamedPipeInfo( - HANDLE hNamedPipe, - LPDWORD lpFlags, - LPDWORD lpOutBufferSize, - LPDWORD lpInBufferSize, - LPDWORD lpMaxInstances); - -extern(Windows) export BOOL PeekNamedPipe( - HANDLE hNamedPipe, - LPVOID lpBuffer, - DWORD nBufferSize, - LPDWORD lpBytesRead, - LPDWORD lpTotalBytesAvail, - LPDWORD lpBytesLeftThisMessage); - -extern(Windows) export BOOL TransactNamedPipe( - HANDLE hNamedPipe, - LPVOID lpInBuffer, - DWORD nInBufferSize, - LPVOID lpOutBuffer, - DWORD nOutBufferSize, - LPDWORD lpBytesRead, - LPOVERLAPPED lpOverlapped); - -extern(Windows) export HANDLE CreateMailslotA( - LPCSTR lpName, - DWORD nMaxMessageSize, - DWORD lReadTimeout, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -extern(Windows) export HANDLE CreateMailslotW( - LPCWSTR lpName, - DWORD nMaxMessageSize, - DWORD lReadTimeout, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -// #ifdef UNICODE -alias CreateMailslotW CreateMailslot; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetMailslotInfo( - HANDLE hMailslot, - LPDWORD lpMaxMessageSize, - LPDWORD lpNextSize, - LPDWORD lpMessageCount, - LPDWORD lpReadTimeout); - -extern(Windows) export BOOL SetMailslotInfo( - HANDLE hMailslot, - DWORD lReadTimeout); - -extern(Windows) export LPVOID MapViewOfFile( - HANDLE hFileMappingObject, - DWORD dwDesiredAccess, - DWORD dwFileOffsetHigh, - DWORD dwFileOffsetLow, - SIZE_T dwNumberOfBytesToMap); - -extern(Windows) export BOOL FlushViewOfFile( - LPCVOID lpBaseAddress, - SIZE_T dwNumberOfBytesToFlush); - -extern(Windows) export BOOL UnmapViewOfFile( - LPCVOID lpBaseAddress); - -extern(Windows) export BOOL EncryptFileA( - LPCSTR lpFileName); -extern(Windows) export BOOL EncryptFileW( - LPCWSTR lpFileName); -// #ifdef UNICODE -alias EncryptFileW EncryptFile; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL DecryptFileA( - LPCSTR lpFileName, - DWORD dwReserved); -extern(Windows) export BOOL DecryptFileW( - LPCWSTR lpFileName, - DWORD dwReserved); -// #ifdef UNICODE -alias DecryptFileW DecryptFile; -// #else -// #... -// #endif // !UNICODE - -enum : uint { FILE_ENCRYPTABLE = 0 } -enum : uint { FILE_IS_ENCRYPTED = 1 } -enum : uint { FILE_SYSTEM_ATTR = 2 } -enum : uint { FILE_ROOT_DIR = 3 } -enum : uint { FILE_SYSTEM_DIR = 4 } -enum : uint { FILE_UNKNOWN = 5 } -enum : uint { FILE_SYSTEM_NOT_SUPPORT = 6 } -enum : uint { FILE_USER_DISALLOWED = 7 } -enum : uint { FILE_READ_ONLY = 8 } -enum : uint { FILE_DIR_DISALLOWED = 9 } - -extern(Windows) export BOOL FileEncryptionStatusA( - LPCSTR lpFileName, - LPDWORD lpStatus); -extern(Windows) export BOOL FileEncryptionStatusW( - LPCWSTR lpFileName, - LPDWORD lpStatus); -// #ifdef UNICODE -alias FileEncryptionStatusW FileEncryptionStatus; -// #else -// #... -// #endif // !UNICODE - -enum : uint { EFS_USE_RECOVERY_KEYS = 0x1 } - -extern(Windows) alias DWORD function( PBYTE pbData, PVOID pvCallbackContext, ULONG ulLength ) PFE_EXPORT_FUNC; - -extern(Windows) alias DWORD function( PBYTE pbData, PVOID pvCallbackContext, PULONG ulLength ) PFE_IMPORT_FUNC; - -enum : uint { CREATE_FOR_IMPORT = 1 } -enum : uint { CREATE_FOR_DIR = 2 } -enum : uint { OVERWRITE_HIDDEN = 4 } - -extern(Windows) export DWORD OpenEncryptedFileRawA( - LPCSTR lpFileName, - ULONG ulFlags, - PVOID * pvContext); -extern(Windows) export DWORD OpenEncryptedFileRawW( - LPCWSTR lpFileName, - ULONG ulFlags, - PVOID * pvContext); -// #ifdef UNICODE -alias OpenEncryptedFileRawW OpenEncryptedFileRaw; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD ReadEncryptedFileRaw( - PFE_EXPORT_FUNC pfExportCallback, - PVOID pvCallbackContext, - PVOID pvContext); - -extern(Windows) export DWORD WriteEncryptedFileRaw( - PFE_IMPORT_FUNC pfImportCallback, - PVOID pvCallbackContext, - PVOID pvContext); - -extern(Windows) export VOID CloseEncryptedFileRaw( - PVOID pvContext); - -extern(Windows) export int lstrcmpA( - LPCSTR lpString1, - LPCSTR lpString2); -extern(Windows) export int lstrcmpW( - LPCWSTR lpString1, - LPCWSTR lpString2); -// #ifdef UNICODE -alias lstrcmpW lstrcmp; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int lstrcmpiA( - LPCSTR lpString1, - LPCSTR lpString2); -extern(Windows) export int lstrcmpiW( - LPCWSTR lpString1, - LPCWSTR lpString2); -// #ifdef UNICODE -alias lstrcmpiW lstrcmpi; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LPSTR lstrcpynA( - LPSTR lpString1, - LPCSTR lpString2, - int iMaxLength); -extern(Windows) export LPWSTR lstrcpynW( - LPWSTR lpString1, - LPCWSTR lpString2, - int iMaxLength); -// #ifdef UNICODE -alias lstrcpynW lstrcpyn; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LPSTR lstrcpyA( - LPSTR lpString1, - LPCSTR lpString2); -extern(Windows) export LPWSTR lstrcpyW( - LPWSTR lpString1, - LPCWSTR lpString2); -// #ifdef UNICODE -alias lstrcpyW lstrcpy; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LPSTR lstrcatA( - LPSTR lpString1, - LPCSTR lpString2); -extern(Windows) export LPWSTR lstrcatW( - LPWSTR lpString1, - LPCWSTR lpString2); -// #ifdef UNICODE -alias lstrcatW lstrcat; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int lstrlenA( - LPCSTR lpString); -extern(Windows) export int lstrlenW( - LPCWSTR lpString); -// #ifdef UNICODE -alias lstrlenW lstrlen; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HFILE OpenFile( - LPCSTR lpFileName, - LPOFSTRUCT lpReOpenBuff, - UINT uStyle); - -extern(Windows) export HFILE _lopen( - LPCSTR lpPathName, - int iReadWrite); - -extern(Windows) export HFILE _lcreat( - LPCSTR lpPathName, - int iAttribute); - -extern(Windows) export UINT _lread( - HFILE hFile, - LPVOID lpBuffer, - UINT uBytes); - -extern(Windows) export UINT _lwrite( - HFILE hFile, - LPCSTR lpBuffer, - UINT uBytes); - -extern(Windows) export int _hread( - HFILE hFile, - LPVOID lpBuffer, - int lBytes); - -extern(Windows) export int _hwrite( - HFILE hFile, - LPCSTR lpBuffer, - int lBytes); - -extern(Windows) export HFILE _lclose( - HFILE hFile); - -extern(Windows) export LONG _llseek( - HFILE hFile, - LONG lOffset, - int iOrigin); - -extern(Windows) export BOOL IsTextUnicode( - VOID* lpBuffer, - int cb, - LPINT lpi); - -extern(Windows) export DWORD TlsAlloc(); - -enum : uint { TLS_OUT_OF_INDEXES = cast(DWORD)0xFFFFFFFF } - -extern(Windows) export LPVOID TlsGetValue( - DWORD dwTlsIndex); - -extern(Windows) export BOOL TlsSetValue( - DWORD dwTlsIndex, - LPVOID lpTlsValue); - -extern(Windows) export BOOL TlsFree( - DWORD dwTlsIndex); - -extern(Windows) alias VOID function( DWORD dwErrorCode, DWORD dwNumberOfBytesTransfered, LPOVERLAPPED lpOverlapped ) LPOVERLAPPED_COMPLETION_ROUTINE; - -extern(Windows) export DWORD SleepEx( - DWORD dwMilliseconds, - BOOL bAlertable); - -extern(Windows) export DWORD WaitForSingleObjectEx( - HANDLE hHandle, - DWORD dwMilliseconds, - BOOL bAlertable); - -extern(Windows) export DWORD WaitForMultipleObjectsEx( - DWORD nCount, - HANDLE *lpHandles, - BOOL bWaitAll, - DWORD dwMilliseconds, - BOOL bAlertable); - -// #if(_WIN32_WINNT >= 0x0400) -extern(Windows) export DWORD SignalObjectAndWait( - HANDLE hObjectToSignal, - HANDLE hObjectToWaitOn, - DWORD dwMilliseconds, - BOOL bAlertable); -// #endif /* _WIN32_WINNT >= 0x0400 */ - -extern(Windows) export BOOL ReadFileEx( - HANDLE hFile, - LPVOID lpBuffer, - DWORD nNumberOfBytesToRead, - LPOVERLAPPED lpOverlapped, - LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); - -extern(Windows) export BOOL WriteFileEx( - HANDLE hFile, - LPCVOID lpBuffer, - DWORD nNumberOfBytesToWrite, - LPOVERLAPPED lpOverlapped, - LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); - -extern(Windows) export BOOL BackupRead( - HANDLE hFile, - LPBYTE lpBuffer, - DWORD nNumberOfBytesToRead, - LPDWORD lpNumberOfBytesRead, - BOOL bAbort, - BOOL bProcessSecurity, - LPVOID *lpContext); - -extern(Windows) export BOOL BackupSeek( - HANDLE hFile, - DWORD dwLowBytesToSeek, - DWORD dwHighBytesToSeek, - LPDWORD lpdwLowByteSeeked, - LPDWORD lpdwHighByteSeeked, - LPVOID *lpContext); - -extern(Windows) export BOOL BackupWrite( - HANDLE hFile, - LPBYTE lpBuffer, - DWORD nNumberOfBytesToWrite, - LPDWORD lpNumberOfBytesWritten, - BOOL bAbort, - BOOL bProcessSecurity, - LPVOID *lpContext); - -struct _WIN32_STREAM_ID { - DWORD dwStreamId ; - DWORD dwStreamAttributes ; - LARGE_INTEGER Size ; - DWORD dwStreamNameSize ; - WCHAR cStreamName[ ANYSIZE_ARRAY ] ; -} -alias _WIN32_STREAM_ID WIN32_STREAM_ID; -alias _WIN32_STREAM_ID* LPWIN32_STREAM_ID; - -enum : uint { BACKUP_INVALID = 0x00000000 } -enum : uint { BACKUP_DATA = 0x00000001 } -enum : uint { BACKUP_EA_DATA = 0x00000002 } -enum : uint { BACKUP_SECURITY_DATA = 0x00000003 } -enum : uint { BACKUP_ALTERNATE_DATA = 0x00000004 } -enum : uint { BACKUP_LINK = 0x00000005 } -enum : uint { BACKUP_PROPERTY_DATA = 0x00000006 } -enum : uint { BACKUP_OBJECT_ID = 0x00000007 } -enum : uint { BACKUP_REPARSE_DATA = 0x00000008 } -enum : uint { BACKUP_SPARSE_BLOCK = 0x00000009 } - -enum : uint { STREAM_NORMAL_ATTRIBUTE = 0x00000000 } -enum : uint { STREAM_MODIFIED_WHEN_READ = 0x00000001 } -enum : uint { STREAM_CONTAINS_SECURITY = 0x00000002 } -enum : uint { STREAM_CONTAINS_PROPERTIES = 0x00000004 } -enum : uint { STREAM_SPARSE_ATTRIBUTE = 0x00000008 } - -extern(Windows) export BOOL ReadFileScatter( - HANDLE hFile, - FILE_SEGMENT_ELEMENT aSegmentArray[], - DWORD nNumberOfBytesToRead, - LPDWORD lpReserved, - LPOVERLAPPED lpOverlapped); - -extern(Windows) export BOOL WriteFileGather( - HANDLE hFile, - FILE_SEGMENT_ELEMENT aSegmentArray[], - DWORD nNumberOfBytesToWrite, - LPDWORD lpReserved, - LPOVERLAPPED lpOverlapped); - -enum : uint { STARTF_USESHOWWINDOW = 0x00000001 } -enum : uint { STARTF_USESIZE = 0x00000002 } -enum : uint { STARTF_USEPOSITION = 0x00000004 } -enum : uint { STARTF_USECOUNTCHARS = 0x00000008 } -enum : uint { STARTF_USEFILLATTRIBUTE = 0x00000010 } -enum : uint { STARTF_RUNFULLSCREEN = 0x00000020 } -enum : uint { STARTF_FORCEONFEEDBACK = 0x00000040 } -enum : uint { STARTF_FORCEOFFFEEDBACK = 0x00000080 } -enum : uint { STARTF_USESTDHANDLES = 0x00000100 } - -// #if(WINVER >= 0x0400) - -enum : uint { STARTF_USEHOTKEY = 0x00000200 } -// #endif /* WINVER >= 0x0400 */ - -struct _STARTUPINFOA { - DWORD cb; - LPSTR lpReserved; - LPSTR lpDesktop; - LPSTR lpTitle; - DWORD dwX; - DWORD dwY; - DWORD dwXSize; - DWORD dwYSize; - DWORD dwXCountChars; - DWORD dwYCountChars; - DWORD dwFillAttribute; - DWORD dwFlags; - WORD wShowWindow; - WORD cbReserved2; - LPBYTE lpReserved2; - HANDLE hStdInput; - HANDLE hStdOutput; - HANDLE hStdError; -} -alias _STARTUPINFOA STARTUPINFOA; -alias _STARTUPINFOA* LPSTARTUPINFOA; - -struct _STARTUPINFOW { - DWORD cb; - LPWSTR lpReserved; - LPWSTR lpDesktop; - LPWSTR lpTitle; - DWORD dwX; - DWORD dwY; - DWORD dwXSize; - DWORD dwYSize; - DWORD dwXCountChars; - DWORD dwYCountChars; - DWORD dwFillAttribute; - DWORD dwFlags; - WORD wShowWindow; - WORD cbReserved2; - LPBYTE lpReserved2; - HANDLE hStdInput; - HANDLE hStdOutput; - HANDLE hStdError; -} -alias _STARTUPINFOW STARTUPINFOW; -alias _STARTUPINFOW* LPSTARTUPINFOW; - -// #ifdef UNICODE -alias STARTUPINFOW STARTUPINFO; -alias LPSTARTUPINFOW LPSTARTUPINFO; -// #else -// ... -// #endif // UNICODE - -enum : uint { SHUTDOWN_NORETRY = 0x00000001 } - -struct _WIN32_FIND_DATAA { - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; - DWORD dwReserved0; - DWORD dwReserved1; - CHAR cFileName[ MAX_PATH ]; - CHAR cAlternateFileName[ 14 ]; -// #ifdef _MAC -// ... -// #endif -} -alias _WIN32_FIND_DATAA WIN32_FIND_DATAA; -alias _WIN32_FIND_DATAA* PWIN32_FIND_DATAA; -alias _WIN32_FIND_DATAA* LPWIN32_FIND_DATAA; - -struct _WIN32_FIND_DATAW { - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; - DWORD dwReserved0; - DWORD dwReserved1; - WCHAR cFileName[ MAX_PATH ]; - WCHAR cAlternateFileName[ 14 ]; -// #ifdef _MAC -// ... -// #endif -} -alias _WIN32_FIND_DATAW WIN32_FIND_DATAW; -alias _WIN32_FIND_DATAW* PWIN32_FIND_DATAW; -alias _WIN32_FIND_DATAW* LPWIN32_FIND_DATAW; - -// #ifdef UNICODE -alias WIN32_FIND_DATAW WIN32_FIND_DATA; -alias PWIN32_FIND_DATAW PWIN32_FIND_DATA; -alias LPWIN32_FIND_DATAW LPWIN32_FIND_DATA; -// #else -// ... -// #endif // UNICODE - -struct _WIN32_FILE_ATTRIBUTE_DATA { - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; -} -alias _WIN32_FILE_ATTRIBUTE_DATA WIN32_FILE_ATTRIBUTE_DATA; -alias _WIN32_FILE_ATTRIBUTE_DATA* LPWIN32_FILE_ATTRIBUTE_DATA; - -extern(Windows) export HANDLE CreateMutexA( - LPSECURITY_ATTRIBUTES lpMutexAttributes, - BOOL bInitialOwner, - LPCSTR lpName); -extern(Windows) export HANDLE CreateMutexW( - LPSECURITY_ATTRIBUTES lpMutexAttributes, - BOOL bInitialOwner, - LPCWSTR lpName); -// #ifdef UNICODE -alias CreateMutexW CreateMutex; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HANDLE OpenMutexA( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCSTR lpName); -extern(Windows) export HANDLE OpenMutexW( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCWSTR lpName); -// #ifdef UNICODE -alias OpenMutexW OpenMutex; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HANDLE CreateEventA( - LPSECURITY_ATTRIBUTES lpEventAttributes, - BOOL bManualReset, - BOOL bInitialState, - LPCSTR lpName); -extern(Windows) export HANDLE CreateEventW( - LPSECURITY_ATTRIBUTES lpEventAttributes, - BOOL bManualReset, - BOOL bInitialState, - LPCWSTR lpName); -// #ifdef UNICODE -alias CreateEventW CreateEvent; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HANDLE OpenEventA( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCSTR lpName); -extern(Windows) export HANDLE OpenEventW( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCWSTR lpName); -// #ifdef UNICODE -alias OpenEventW OpenEvent; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HANDLE CreateSemaphoreA( - LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, - LONG lInitialCount, - LONG lMaximumCount, - LPCSTR lpName); -extern(Windows) export HANDLE CreateSemaphoreW( - LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, - LONG lInitialCount, - LONG lMaximumCount, - LPCWSTR lpName); -// #ifdef UNICODE -alias CreateSemaphoreW CreateSemaphore; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HANDLE OpenSemaphoreA( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCSTR lpName); -extern(Windows) export HANDLE OpenSemaphoreW( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCWSTR lpName); -// #ifdef UNICODE -alias OpenSemaphoreW OpenSemaphore; -// #else -// #... -// #endif // !UNICODE - -// #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) -extern(Windows) alias VOID function( LPVOID lpArgToCompletionRoutine, DWORD dwTimerLowValue, DWORD dwTimerHighValue ) PTIMERAPCROUTINE; - -extern(Windows) export HANDLE CreateWaitableTimerA( - LPSECURITY_ATTRIBUTES lpTimerAttributes, - BOOL bManualReset, - LPCSTR lpTimerName); -extern(Windows) export HANDLE CreateWaitableTimerW( - LPSECURITY_ATTRIBUTES lpTimerAttributes, - BOOL bManualReset, - LPCWSTR lpTimerName); -// #ifdef UNICODE -alias CreateWaitableTimerW CreateWaitableTimer; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HANDLE OpenWaitableTimerA( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCSTR lpTimerName); -extern(Windows) export HANDLE OpenWaitableTimerW( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCWSTR lpTimerName); -// #ifdef UNICODE -alias OpenWaitableTimerW OpenWaitableTimer; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetWaitableTimer( - HANDLE hTimer, - LARGE_INTEGER *lpDueTime, - LONG lPeriod, - PTIMERAPCROUTINE pfnCompletionRoutine, - LPVOID lpArgToCompletionRoutine, - BOOL fResume); - -extern(Windows) export BOOL CancelWaitableTimer( - HANDLE hTimer); -// #endif /* (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) */ - -extern(Windows) export HANDLE CreateFileMappingA( - HANDLE hFile, - LPSECURITY_ATTRIBUTES lpFileMappingAttributes, - DWORD flProtect, - DWORD dwMaximumSizeHigh, - DWORD dwMaximumSizeLow, - LPCSTR lpName); -extern(Windows) export HANDLE CreateFileMappingW( - HANDLE hFile, - LPSECURITY_ATTRIBUTES lpFileMappingAttributes, - DWORD flProtect, - DWORD dwMaximumSizeHigh, - DWORD dwMaximumSizeLow, - LPCWSTR lpName); -// #ifdef UNICODE -alias CreateFileMappingW CreateFileMapping; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HANDLE OpenFileMappingA( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCSTR lpName); -extern(Windows) export HANDLE OpenFileMappingW( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCWSTR lpName); -// #ifdef UNICODE -alias OpenFileMappingW OpenFileMapping; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetLogicalDriveStringsA( - DWORD nBufferLength, - LPSTR lpBuffer); -extern(Windows) export DWORD GetLogicalDriveStringsW( - DWORD nBufferLength, - LPWSTR lpBuffer); -// #ifdef UNICODE -alias GetLogicalDriveStringsW GetLogicalDriveStrings; -// #else -// #... -// #endif // !UNICODE - -// #if _WIN32_WINNT >= 0x0501 - -alias int _MEMORY_RESOURCE_NOTIFICATION_TYPE; -enum { - LowMemoryResourceNotification, - HighMemoryResourceNotification, -} -alias _MEMORY_RESOURCE_NOTIFICATION_TYPE MEMORY_RESOURCE_NOTIFICATION_TYPE; - -extern(Windows) export HANDLE CreateMemoryResourceNotification( - MEMORY_RESOURCE_NOTIFICATION_TYPE NotificationType); - -extern(Windows) export BOOL QueryMemoryResourceNotification( - HANDLE ResourceNotificationHandle, - PBOOL ResourceState); - -// #endif // _WIN32_WINNT >= 0x0501 - -extern(Windows) export HMODULE LoadLibraryA( - LPCSTR lpLibFileName); -extern(Windows) export HMODULE LoadLibraryW( - LPCWSTR lpLibFileName); -// #ifdef UNICODE -alias LoadLibraryW LoadLibrary; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HMODULE LoadLibraryExA( - LPCSTR lpLibFileName, - HANDLE hFile, - DWORD dwFlags); -extern(Windows) export HMODULE LoadLibraryExW( - LPCWSTR lpLibFileName, - HANDLE hFile, - DWORD dwFlags); -// #ifdef UNICODE -alias LoadLibraryExW LoadLibraryEx; -// #else -// #... -// #endif // !UNICODE - -enum : uint { DONT_RESOLVE_DLL_REFERENCES = 0x00000001 } -enum : uint { LOAD_LIBRARY_AS_DATAFILE = 0x00000002 } -enum : uint { LOAD_WITH_ALTERED_SEARCH_PATH = 0x00000008 } -enum : uint { LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x00000010 } - -extern(Windows) export DWORD GetModuleFileNameA( - HMODULE hModule, - LPSTR lpFilename, - DWORD nSize); -extern(Windows) export DWORD GetModuleFileNameW( - HMODULE hModule, - LPWSTR lpFilename, - DWORD nSize); -// #ifdef UNICODE -alias GetModuleFileNameW GetModuleFileName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HMODULE GetModuleHandleA( - LPCSTR lpModuleName); -extern(Windows) export HMODULE GetModuleHandleW( - LPCWSTR lpModuleName); -// #ifdef UNICODE -alias GetModuleHandleW GetModuleHandle; -// #else -// #... -// #endif // !UNICODE - -// #if !defined(RC_INVOKED) -// #if _WIN32_WINNT > 0x0500 || defined(WINBASE_DECLARE_GET_MODULE_HANDLE_EX) || ISOLATION_AWARE_ENABLED - -enum : uint { GET_MODULE_HANDLE_EX_FLAG_PIN = 0x00000001 } -enum : uint { GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 0x00000002 } -enum : uint { GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 0x00000004 } - -extern(Windows) alias BOOL function( DWORD dwFlags, LPCSTR lpModuleName, HMODULE* phModule ) PGET_MODULE_HANDLE_EXA; -extern(Windows) alias BOOL function( DWORD dwFlags, LPCWSTR lpModuleName, HMODULE* phModule ) PGET_MODULE_HANDLE_EXW; -// #ifdef UNICODE -alias PGET_MODULE_HANDLE_EXW PGET_MODULE_HANDLE_EX; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetModuleHandleExA( - DWORD dwFlags, - LPCSTR lpModuleName, - HMODULE* phModule); -extern(Windows) export BOOL GetModuleHandleExW( - DWORD dwFlags, - LPCWSTR lpModuleName, - HMODULE* phModule); -// #ifdef UNICODE -alias GetModuleHandleExW GetModuleHandleEx; -// #else -// #... -// #endif // !UNICODE - -// #endif -// #endif - -extern(Windows) export BOOL CreateProcessA( - LPCSTR lpApplicationName, - LPSTR lpCommandLine, - LPSECURITY_ATTRIBUTES lpProcessAttributes, - LPSECURITY_ATTRIBUTES lpThreadAttributes, - BOOL bInheritHandles, - DWORD dwCreationFlags, - LPVOID lpEnvironment, - LPCSTR lpCurrentDirectory, - LPSTARTUPINFOA lpStartupInfo, - LPPROCESS_INFORMATION lpProcessInformation); -extern(Windows) export BOOL CreateProcessW( - LPCWSTR lpApplicationName, - LPWSTR lpCommandLine, - LPSECURITY_ATTRIBUTES lpProcessAttributes, - LPSECURITY_ATTRIBUTES lpThreadAttributes, - BOOL bInheritHandles, - DWORD dwCreationFlags, - LPVOID lpEnvironment, - LPCWSTR lpCurrentDirectory, - LPSTARTUPINFOW lpStartupInfo, - LPPROCESS_INFORMATION lpProcessInformation); -// #ifdef UNICODE -alias CreateProcessW CreateProcess; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetProcessShutdownParameters( - DWORD dwLevel, - DWORD dwFlags); - -extern(Windows) export BOOL GetProcessShutdownParameters( - LPDWORD lpdwLevel, - LPDWORD lpdwFlags); - -extern(Windows) export DWORD GetProcessVersion( - DWORD ProcessId); - -extern(Windows) export VOID FatalAppExitA( - UINT uAction, - LPCSTR lpMessageText); -extern(Windows) export VOID FatalAppExitW( - UINT uAction, - LPCWSTR lpMessageText); -// #ifdef UNICODE -alias FatalAppExitW FatalAppExit; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export VOID GetStartupInfoA( - LPSTARTUPINFOA lpStartupInfo); -extern(Windows) export VOID GetStartupInfoW( - LPSTARTUPINFOW lpStartupInfo); -// #ifdef UNICODE -alias GetStartupInfoW GetStartupInfo; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LPSTR GetCommandLineA(); -extern(Windows) export LPWSTR GetCommandLineW(); -// #ifdef UNICODE -alias GetCommandLineW GetCommandLine; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetEnvironmentVariableA( - LPCSTR lpName, - LPSTR lpBuffer, - DWORD nSize); -extern(Windows) export DWORD GetEnvironmentVariableW( - LPCWSTR lpName, - LPWSTR lpBuffer, - DWORD nSize); -// #ifdef UNICODE -alias GetEnvironmentVariableW GetEnvironmentVariable; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetEnvironmentVariableA( - LPCSTR lpName, - LPCSTR lpValue); -extern(Windows) export BOOL SetEnvironmentVariableW( - LPCWSTR lpName, - LPCWSTR lpValue); -// #ifdef UNICODE -alias SetEnvironmentVariableW SetEnvironmentVariable; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD ExpandEnvironmentStringsA( - LPCSTR lpSrc, - LPSTR lpDst, - DWORD nSize); -extern(Windows) export DWORD ExpandEnvironmentStringsW( - LPCWSTR lpSrc, - LPWSTR lpDst, - DWORD nSize); -// #ifdef UNICODE -alias ExpandEnvironmentStringsW ExpandEnvironmentStrings; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetFirmwareEnvironmentVariableA( - LPCSTR lpName, - LPCSTR lpGuid, - PVOID pBuffer, - DWORD nSize); -extern(Windows) export DWORD GetFirmwareEnvironmentVariableW( - LPCWSTR lpName, - LPCWSTR lpGuid, - PVOID pBuffer, - DWORD nSize); -// #ifdef UNICODE -alias GetFirmwareEnvironmentVariableW GetFirmwareEnvironmentVariable; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetFirmwareEnvironmentVariableA( - LPCSTR lpName, - LPCSTR lpGuid, - PVOID pValue, - DWORD nSize); -extern(Windows) export BOOL SetFirmwareEnvironmentVariableW( - LPCWSTR lpName, - LPCWSTR lpGuid, - PVOID pValue, - DWORD nSize); -// #ifdef UNICODE -alias SetFirmwareEnvironmentVariableW SetFirmwareEnvironmentVariable; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export VOID OutputDebugStringA( - LPCSTR lpOutputString); -extern(Windows) export VOID OutputDebugStringW( - LPCWSTR lpOutputString); -// #ifdef UNICODE -alias OutputDebugStringW OutputDebugString; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HRSRC FindResourceA( - HMODULE hModule, - LPCSTR lpName, - LPCSTR lpType); -extern(Windows) export HRSRC FindResourceW( - HMODULE hModule, - LPCWSTR lpName, - LPCWSTR lpType); -// #ifdef UNICODE -alias FindResourceW FindResource; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HRSRC FindResourceExA( - HMODULE hModule, - LPCSTR lpType, - LPCSTR lpName, - WORD wLanguage); -extern(Windows) export HRSRC FindResourceExW( - HMODULE hModule, - LPCWSTR lpType, - LPCWSTR lpName, - WORD wLanguage); -// #ifdef UNICODE -alias FindResourceExW FindResourceEx; -// #else -// #... -// #endif // !UNICODE - -// #ifdef STRICT -extern(Windows) alias BOOL function(HMODULE hModule, LPSTR lpType, LONG_PTR lParam) ENUMRESTYPEPROCA; -extern(Windows) alias BOOL function(HMODULE hModule, LPWSTR lpType, LONG_PTR lParam) ENUMRESTYPEPROCW; -// #ifdef UNICODE -alias ENUMRESTYPEPROCW ENUMRESTYPEPROC; -// #else -// #... -// #endif // !UNICODE -extern(Windows) alias BOOL function(HMODULE hModule, LPCSTR lpType, LPSTR lpName, LONG_PTR lParam) ENUMRESNAMEPROCA; -extern(Windows) alias BOOL function(HMODULE hModule, LPCWSTR lpType, LPWSTR lpName, LONG_PTR lParam) ENUMRESNAMEPROCW; -// #ifdef UNICODE -alias ENUMRESNAMEPROCW ENUMRESNAMEPROC; -// #else -// #... -// #endif // !UNICODE -extern(Windows) alias BOOL function(HMODULE hModule, LPCSTR lpType, LPCSTR lpName, WORD wLanguage, LONG_PTR lParam) ENUMRESLANGPROCA; -extern(Windows) alias BOOL function(HMODULE hModule, LPCWSTR lpType, LPCWSTR lpName, WORD wLanguage, LONG_PTR lParam) ENUMRESLANGPROCW; -// #ifdef UNICODE -alias ENUMRESLANGPROCW ENUMRESLANGPROC; -// #else -// #... -// #endif // !UNICODE -// #else -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE -// #endif - -extern(Windows) export BOOL EnumResourceTypesA( - HMODULE hModule, - ENUMRESTYPEPROCA lpEnumFunc, - LONG_PTR lParam); -extern(Windows) export BOOL EnumResourceTypesW( - HMODULE hModule, - ENUMRESTYPEPROCW lpEnumFunc, - LONG_PTR lParam); -// #ifdef UNICODE -alias EnumResourceTypesW EnumResourceTypes; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumResourceNamesA( - HMODULE hModule, - LPCSTR lpType, - ENUMRESNAMEPROCA lpEnumFunc, - LONG_PTR lParam); -extern(Windows) export BOOL EnumResourceNamesW( - HMODULE hModule, - LPCWSTR lpType, - ENUMRESNAMEPROCW lpEnumFunc, - LONG_PTR lParam); -// #ifdef UNICODE -alias EnumResourceNamesW EnumResourceNames; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumResourceLanguagesA( - HMODULE hModule, - LPCSTR lpType, - LPCSTR lpName, - ENUMRESLANGPROCA lpEnumFunc, - LONG_PTR lParam); -extern(Windows) export BOOL EnumResourceLanguagesW( - HMODULE hModule, - LPCWSTR lpType, - LPCWSTR lpName, - ENUMRESLANGPROCW lpEnumFunc, - LONG_PTR lParam); -// #ifdef UNICODE -alias EnumResourceLanguagesW EnumResourceLanguages; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HANDLE BeginUpdateResourceA( - LPCSTR pFileName, - BOOL bDeleteExistingResources); -extern(Windows) export HANDLE BeginUpdateResourceW( - LPCWSTR pFileName, - BOOL bDeleteExistingResources); -// #ifdef UNICODE -alias BeginUpdateResourceW BeginUpdateResource; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL UpdateResourceA( - HANDLE hUpdate, - LPCSTR lpType, - LPCSTR lpName, - WORD wLanguage, - LPVOID lpData, - DWORD cbData); -extern(Windows) export BOOL UpdateResourceW( - HANDLE hUpdate, - LPCWSTR lpType, - LPCWSTR lpName, - WORD wLanguage, - LPVOID lpData, - DWORD cbData); -// #ifdef UNICODE -alias UpdateResourceW UpdateResource; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EndUpdateResourceA( - HANDLE hUpdate, - BOOL fDiscard); -extern(Windows) export BOOL EndUpdateResourceW( - HANDLE hUpdate, - BOOL fDiscard); -// #ifdef UNICODE -alias EndUpdateResourceW EndUpdateResource; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export ATOM GlobalAddAtomA( - LPCSTR lpString); -extern(Windows) export ATOM GlobalAddAtomW( - LPCWSTR lpString); -// #ifdef UNICODE -alias GlobalAddAtomW GlobalAddAtom; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export ATOM GlobalFindAtomA( - LPCSTR lpString); -extern(Windows) export ATOM GlobalFindAtomW( - LPCWSTR lpString); -// #ifdef UNICODE -alias GlobalFindAtomW GlobalFindAtom; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export UINT GlobalGetAtomNameA( - ATOM nAtom, - LPSTR lpBuffer, - int nSize); -extern(Windows) export UINT GlobalGetAtomNameW( - ATOM nAtom, - LPWSTR lpBuffer, - int nSize); -// #ifdef UNICODE -alias GlobalGetAtomNameW GlobalGetAtomName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export ATOM AddAtomA( - LPCSTR lpString); -extern(Windows) export ATOM AddAtomW( - LPCWSTR lpString); -// #ifdef UNICODE -alias AddAtomW AddAtom; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export ATOM FindAtomA( - LPCSTR lpString); -extern(Windows) export ATOM FindAtomW( - LPCWSTR lpString); -// #ifdef UNICODE -alias FindAtomW FindAtom; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export UINT GetAtomNameA( - ATOM nAtom, - LPSTR lpBuffer, - int nSize); -extern(Windows) export UINT GetAtomNameW( - ATOM nAtom, - LPWSTR lpBuffer, - int nSize); -// #ifdef UNICODE -alias GetAtomNameW GetAtomName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export UINT GetProfileIntA( - LPCSTR lpAppName, - LPCSTR lpKeyName, - INT nDefault); -extern(Windows) export UINT GetProfileIntW( - LPCWSTR lpAppName, - LPCWSTR lpKeyName, - INT nDefault); -// #ifdef UNICODE -alias GetProfileIntW GetProfileInt; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetProfileStringA( - LPCSTR lpAppName, - LPCSTR lpKeyName, - LPCSTR lpDefault, - LPSTR lpReturnedString, - DWORD nSize); -extern(Windows) export DWORD GetProfileStringW( - LPCWSTR lpAppName, - LPCWSTR lpKeyName, - LPCWSTR lpDefault, - LPWSTR lpReturnedString, - DWORD nSize); -// #ifdef UNICODE -alias GetProfileStringW GetProfileString; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL WriteProfileStringA( - LPCSTR lpAppName, - LPCSTR lpKeyName, - LPCSTR lpString); -extern(Windows) export BOOL WriteProfileStringW( - LPCWSTR lpAppName, - LPCWSTR lpKeyName, - LPCWSTR lpString); -// #ifdef UNICODE -alias WriteProfileStringW WriteProfileString; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetProfileSectionA( - LPCSTR lpAppName, - LPSTR lpReturnedString, - DWORD nSize); -extern(Windows) export DWORD GetProfileSectionW( - LPCWSTR lpAppName, - LPWSTR lpReturnedString, - DWORD nSize); -// #ifdef UNICODE -alias GetProfileSectionW GetProfileSection; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL WriteProfileSectionA( - LPCSTR lpAppName, - LPCSTR lpString); -extern(Windows) export BOOL WriteProfileSectionW( - LPCWSTR lpAppName, - LPCWSTR lpString); -// #ifdef UNICODE -alias WriteProfileSectionW WriteProfileSection; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export UINT GetPrivateProfileIntA( - LPCSTR lpAppName, - LPCSTR lpKeyName, - INT nDefault, - LPCSTR lpFileName); -extern(Windows) export UINT GetPrivateProfileIntW( - LPCWSTR lpAppName, - LPCWSTR lpKeyName, - INT nDefault, - LPCWSTR lpFileName); -// #ifdef UNICODE -alias GetPrivateProfileIntW GetPrivateProfileInt; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetPrivateProfileStringA( - LPCSTR lpAppName, - LPCSTR lpKeyName, - LPCSTR lpDefault, - LPSTR lpReturnedString, - DWORD nSize, - LPCSTR lpFileName); -extern(Windows) export DWORD GetPrivateProfileStringW( - LPCWSTR lpAppName, - LPCWSTR lpKeyName, - LPCWSTR lpDefault, - LPWSTR lpReturnedString, - DWORD nSize, - LPCWSTR lpFileName); -// #ifdef UNICODE -alias GetPrivateProfileStringW GetPrivateProfileString; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL WritePrivateProfileStringA( - LPCSTR lpAppName, - LPCSTR lpKeyName, - LPCSTR lpString, - LPCSTR lpFileName); -extern(Windows) export BOOL WritePrivateProfileStringW( - LPCWSTR lpAppName, - LPCWSTR lpKeyName, - LPCWSTR lpString, - LPCWSTR lpFileName); -// #ifdef UNICODE -alias WritePrivateProfileStringW WritePrivateProfileString; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetPrivateProfileSectionA( - LPCSTR lpAppName, - LPSTR lpReturnedString, - DWORD nSize, - LPCSTR lpFileName); -extern(Windows) export DWORD GetPrivateProfileSectionW( - LPCWSTR lpAppName, - LPWSTR lpReturnedString, - DWORD nSize, - LPCWSTR lpFileName); -// #ifdef UNICODE -alias GetPrivateProfileSectionW GetPrivateProfileSection; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL WritePrivateProfileSectionA( - LPCSTR lpAppName, - LPCSTR lpString, - LPCSTR lpFileName); -extern(Windows) export BOOL WritePrivateProfileSectionW( - LPCWSTR lpAppName, - LPCWSTR lpString, - LPCWSTR lpFileName); -// #ifdef UNICODE -alias WritePrivateProfileSectionW WritePrivateProfileSection; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetPrivateProfileSectionNamesA( - LPSTR lpszReturnBuffer, - DWORD nSize, - LPCSTR lpFileName); -extern(Windows) export DWORD GetPrivateProfileSectionNamesW( - LPWSTR lpszReturnBuffer, - DWORD nSize, - LPCWSTR lpFileName); -// #ifdef UNICODE -alias GetPrivateProfileSectionNamesW GetPrivateProfileSectionNames; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetPrivateProfileStructA( - LPCSTR lpszSection, - LPCSTR lpszKey, - LPVOID lpStruct, - UINT uSizeStruct, - LPCSTR szFile); -extern(Windows) export BOOL GetPrivateProfileStructW( - LPCWSTR lpszSection, - LPCWSTR lpszKey, - LPVOID lpStruct, - UINT uSizeStruct, - LPCWSTR szFile); -// #ifdef UNICODE -alias GetPrivateProfileStructW GetPrivateProfileStruct; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL WritePrivateProfileStructA( - LPCSTR lpszSection, - LPCSTR lpszKey, - LPVOID lpStruct, - UINT uSizeStruct, - LPCSTR szFile); -extern(Windows) export BOOL WritePrivateProfileStructW( - LPCWSTR lpszSection, - LPCWSTR lpszKey, - LPVOID lpStruct, - UINT uSizeStruct, - LPCWSTR szFile); -// #ifdef UNICODE -alias WritePrivateProfileStructW WritePrivateProfileStruct; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export UINT GetDriveTypeA( - LPCSTR lpRootPathName); -extern(Windows) export UINT GetDriveTypeW( - LPCWSTR lpRootPathName); -// #ifdef UNICODE -alias GetDriveTypeW GetDriveType; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export UINT GetSystemDirectoryA( - LPSTR lpBuffer, - UINT uSize); -extern(Windows) export UINT GetSystemDirectoryW( - LPWSTR lpBuffer, - UINT uSize); -// #ifdef UNICODE -alias GetSystemDirectoryW GetSystemDirectory; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetTempPathA( - DWORD nBufferLength, - LPSTR lpBuffer); -extern(Windows) export DWORD GetTempPathW( - DWORD nBufferLength, - LPWSTR lpBuffer); -// #ifdef UNICODE -alias GetTempPathW GetTempPath; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export UINT GetTempFileNameA( - LPCSTR lpPathName, - LPCSTR lpPrefixString, - UINT uUnique, - LPSTR lpTempFileName); -extern(Windows) export UINT GetTempFileNameW( - LPCWSTR lpPathName, - LPCWSTR lpPrefixString, - UINT uUnique, - LPWSTR lpTempFileName); -// #ifdef UNICODE -alias GetTempFileNameW GetTempFileName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export UINT GetWindowsDirectoryA( - LPSTR lpBuffer, - UINT uSize); -extern(Windows) export UINT GetWindowsDirectoryW( - LPWSTR lpBuffer, - UINT uSize); -// #ifdef UNICODE -alias GetWindowsDirectoryW GetWindowsDirectory; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export UINT GetSystemWindowsDirectoryA( - LPSTR lpBuffer, - UINT uSize); -extern(Windows) export UINT GetSystemWindowsDirectoryW( - LPWSTR lpBuffer, - UINT uSize); -// #ifdef UNICODE -alias GetSystemWindowsDirectoryW GetSystemWindowsDirectory; -// #else -// #... -// #endif // !UNICODE - -// #if !defined(RC_INVOKED) // RC warns because "WINBASE_DECLARE_GET_SYSTEM_WOW64_DIRECTORY" is a bit long. -// #if _WIN32_WINNT >= 0x0501 || defined(WINBASE_DECLARE_GET_SYSTEM_WOW64_DIRECTORY) - -extern(Windows) export UINT GetSystemWow64DirectoryA( - LPSTR lpBuffer, - UINT uSize); -extern(Windows) export UINT GetSystemWow64DirectoryW( - LPWSTR lpBuffer, - UINT uSize); -// #ifdef UNICODE -alias GetSystemWow64DirectoryW GetSystemWow64Directory; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) alias UINT function( LPSTR lpBuffer, UINT uSize) PGET_SYSTEM_WOW64_DIRECTORY_A; -extern(Windows) alias UINT function( LPWSTR lpBuffer, UINT uSize) PGET_SYSTEM_WOW64_DIRECTORY_W; - -const char[] GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A = "GetSystemWow64DirectoryA"; -const wchar[] GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W = "GetSystemWow64DirectoryA"; -const TCHAR[] GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T = "GetSystemWow64DirectoryA"; -const char[] GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A = "GetSystemWow64DirectoryW"; -const wchar[] GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W = "GetSystemWow64DirectoryW"; -const TCHAR[] GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T = "GetSystemWow64DirectoryW"; - -// #ifdef UNICODE -alias GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A; -alias GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W; -alias GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T; -// #else -// #... -// #... -// #... -// #endif - -// #endif // _WIN32_WINNT >= 0x0501 -// #endif - -extern(Windows) export BOOL SetCurrentDirectoryA( - LPCSTR lpPathName); -extern(Windows) export BOOL SetCurrentDirectoryW( - LPCWSTR lpPathName); -// #ifdef UNICODE -alias SetCurrentDirectoryW SetCurrentDirectory; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetCurrentDirectoryA( - DWORD nBufferLength, - LPSTR lpBuffer); -extern(Windows) export DWORD GetCurrentDirectoryW( - DWORD nBufferLength, - LPWSTR lpBuffer); -// #ifdef UNICODE -alias GetCurrentDirectoryW GetCurrentDirectory; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetDiskFreeSpaceA( - LPCSTR lpRootPathName, - LPDWORD lpSectorsPerCluster, - LPDWORD lpBytesPerSector, - LPDWORD lpNumberOfFreeClusters, - LPDWORD lpTotalNumberOfClusters); -extern(Windows) export BOOL GetDiskFreeSpaceW( - LPCWSTR lpRootPathName, - LPDWORD lpSectorsPerCluster, - LPDWORD lpBytesPerSector, - LPDWORD lpNumberOfFreeClusters, - LPDWORD lpTotalNumberOfClusters); -// #ifdef UNICODE -alias GetDiskFreeSpaceW GetDiskFreeSpace; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetDiskFreeSpaceExA( - LPCSTR lpDirectoryName, - PULARGE_INTEGER lpFreeBytesAvailableToCaller, - PULARGE_INTEGER lpTotalNumberOfBytes, - PULARGE_INTEGER lpTotalNumberOfFreeBytes); -extern(Windows) export BOOL GetDiskFreeSpaceExW( - LPCWSTR lpDirectoryName, - PULARGE_INTEGER lpFreeBytesAvailableToCaller, - PULARGE_INTEGER lpTotalNumberOfBytes, - PULARGE_INTEGER lpTotalNumberOfFreeBytes); -// #ifdef UNICODE -alias GetDiskFreeSpaceExW GetDiskFreeSpaceEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL CreateDirectoryA( - LPCSTR lpPathName, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -extern(Windows) export BOOL CreateDirectoryW( - LPCWSTR lpPathName, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -// #ifdef UNICODE -alias CreateDirectoryW CreateDirectory; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL CreateDirectoryExA( - LPCSTR lpTemplateDirectory, - LPCSTR lpNewDirectory, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -extern(Windows) export BOOL CreateDirectoryExW( - LPCWSTR lpTemplateDirectory, - LPCWSTR lpNewDirectory, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -// #ifdef UNICODE -alias CreateDirectoryExW CreateDirectoryEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL RemoveDirectoryA( - LPCSTR lpPathName); -extern(Windows) export BOOL RemoveDirectoryW( - LPCWSTR lpPathName); -// #ifdef UNICODE -alias RemoveDirectoryW RemoveDirectory; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetFullPathNameA( - LPCSTR lpFileName, - DWORD nBufferLength, - LPSTR lpBuffer, - LPSTR *lpFilePart); -extern(Windows) export DWORD GetFullPathNameW( - LPCWSTR lpFileName, - DWORD nBufferLength, - LPWSTR lpBuffer, - LPWSTR *lpFilePart); -// #ifdef UNICODE -alias GetFullPathNameW GetFullPathName; -// #else -// #... -// #endif // !UNICODE - -enum : uint { DDD_RAW_TARGET_PATH = 0x00000001 } -enum : uint { DDD_REMOVE_DEFINITION = 0x00000002 } -enum : uint { DDD_EXACT_MATCH_ON_REMOVE = 0x00000004 } -enum : uint { DDD_NO_BROADCAST_SYSTEM = 0x00000008 } -enum : uint { DDD_LUID_BROADCAST_DRIVE = 0x00000010 } - -extern(Windows) export BOOL DefineDosDeviceA( - DWORD dwFlags, - LPCSTR lpDeviceName, - LPCSTR lpTargetPath); -extern(Windows) export BOOL DefineDosDeviceW( - DWORD dwFlags, - LPCWSTR lpDeviceName, - LPCWSTR lpTargetPath); -// #ifdef UNICODE -alias DefineDosDeviceW DefineDosDevice; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD QueryDosDeviceA( - LPCSTR lpDeviceName, - LPSTR lpTargetPath, - DWORD ucchMax); -extern(Windows) export DWORD QueryDosDeviceW( - LPCWSTR lpDeviceName, - LPWSTR lpTargetPath, - DWORD ucchMax); -// #ifdef UNICODE -alias QueryDosDeviceW QueryDosDevice; -// #else -// #... -// #endif // !UNICODE - -// #define EXPAND_LOCAL_DRIVES - -extern(Windows) export HANDLE CreateFileA( - LPCSTR lpFileName, - DWORD dwDesiredAccess, - DWORD dwShareMode, - LPSECURITY_ATTRIBUTES lpSecurityAttributes, - DWORD dwCreationDisposition, - DWORD dwFlagsAndAttributes, - HANDLE hTemplateFile); -extern(Windows) export HANDLE CreateFileW( - LPCWSTR lpFileName, - DWORD dwDesiredAccess, - DWORD dwShareMode, - LPSECURITY_ATTRIBUTES lpSecurityAttributes, - DWORD dwCreationDisposition, - DWORD dwFlagsAndAttributes, - HANDLE hTemplateFile); -// #ifdef UNICODE -alias CreateFileW CreateFile; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetFileAttributesA( - LPCSTR lpFileName, - DWORD dwFileAttributes); -extern(Windows) export BOOL SetFileAttributesW( - LPCWSTR lpFileName, - DWORD dwFileAttributes); -// #ifdef UNICODE -alias SetFileAttributesW SetFileAttributes; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetFileAttributesA( - LPCSTR lpFileName); -extern(Windows) export DWORD GetFileAttributesW( - LPCWSTR lpFileName); -// #ifdef UNICODE -alias GetFileAttributesW GetFileAttributes; -// #else -// #... -// #endif // !UNICODE - -alias int _GET_FILEEX_INFO_LEVELS; -enum { - GetFileExInfoStandard, - GetFileExMaxInfoLevel, -} -alias _GET_FILEEX_INFO_LEVELS GET_FILEEX_INFO_LEVELS; - -extern(Windows) export BOOL GetFileAttributesExA( - LPCSTR lpFileName, - GET_FILEEX_INFO_LEVELS fInfoLevelId, - LPVOID lpFileInformation); -extern(Windows) export BOOL GetFileAttributesExW( - LPCWSTR lpFileName, - GET_FILEEX_INFO_LEVELS fInfoLevelId, - LPVOID lpFileInformation); -// #ifdef UNICODE -alias GetFileAttributesExW GetFileAttributesEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetCompressedFileSizeA( - LPCSTR lpFileName, - LPDWORD lpFileSizeHigh); -extern(Windows) export DWORD GetCompressedFileSizeW( - LPCWSTR lpFileName, - LPDWORD lpFileSizeHigh); -// #ifdef UNICODE -alias GetCompressedFileSizeW GetCompressedFileSize; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL DeleteFileA( - LPCSTR lpFileName); -extern(Windows) export BOOL DeleteFileW( - LPCWSTR lpFileName); -// #ifdef UNICODE -alias DeleteFileW DeleteFile; -// #else -// #... -// #endif // !UNICODE - -// #if(_WIN32_WINNT >= 0x0400) -alias int _FINDEX_INFO_LEVELS; -enum { - FindExInfoStandard, - FindExInfoMaxInfoLevel, -} -alias _FINDEX_INFO_LEVELS FINDEX_INFO_LEVELS; - -alias int _FINDEX_SEARCH_OPS; -enum { - FindExSearchNameMatch, - FindExSearchLimitToDirectories, - FindExSearchLimitToDevices, - FindExSearchMaxSearchOp, -} -alias _FINDEX_SEARCH_OPS FINDEX_SEARCH_OPS; - -enum : uint { FIND_FIRST_EX_CASE_SENSITIVE = 0x00000001 } - -extern(Windows) export HANDLE FindFirstFileExA( - LPCSTR lpFileName, - FINDEX_INFO_LEVELS fInfoLevelId, - LPVOID lpFindFileData, - FINDEX_SEARCH_OPS fSearchOp, - LPVOID lpSearchFilter, - DWORD dwAdditionalFlags); -extern(Windows) export HANDLE FindFirstFileExW( - LPCWSTR lpFileName, - FINDEX_INFO_LEVELS fInfoLevelId, - LPVOID lpFindFileData, - FINDEX_SEARCH_OPS fSearchOp, - LPVOID lpSearchFilter, - DWORD dwAdditionalFlags); -// #ifdef UNICODE -alias FindFirstFileExW FindFirstFileEx; -// #else -// #... -// #endif // !UNICODE -// #endif /* _WIN32_WINNT >= 0x0400 */ - -extern(Windows) export HANDLE FindFirstFileA( - LPCSTR lpFileName, - LPWIN32_FIND_DATAA lpFindFileData); -extern(Windows) export HANDLE FindFirstFileW( - LPCWSTR lpFileName, - LPWIN32_FIND_DATAW lpFindFileData); -// #ifdef UNICODE -alias FindFirstFileW FindFirstFile; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL FindNextFileA( - HANDLE hFindFile, - LPWIN32_FIND_DATAA lpFindFileData); -extern(Windows) export BOOL FindNextFileW( - HANDLE hFindFile, - LPWIN32_FIND_DATAW lpFindFileData); -// #ifdef UNICODE -alias FindNextFileW FindNextFile; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD SearchPathA( - LPCSTR lpPath, - LPCSTR lpFileName, - LPCSTR lpExtension, - DWORD nBufferLength, - LPSTR lpBuffer, - LPSTR *lpFilePart); -extern(Windows) export DWORD SearchPathW( - LPCWSTR lpPath, - LPCWSTR lpFileName, - LPCWSTR lpExtension, - DWORD nBufferLength, - LPWSTR lpBuffer, - LPWSTR *lpFilePart); -// #ifdef UNICODE -alias SearchPathW SearchPath; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL CopyFileA( - LPCSTR lpExistingFileName, - LPCSTR lpNewFileName, - BOOL bFailIfExists); -extern(Windows) export BOOL CopyFileW( - LPCWSTR lpExistingFileName, - LPCWSTR lpNewFileName, - BOOL bFailIfExists); -// #ifdef UNICODE -alias CopyFileW CopyFile; -// #else -// #... -// #endif // !UNICODE - -// #if(_WIN32_WINNT >= 0x0400) -extern(Windows) alias DWORD function( LARGE_INTEGER TotalFileSize, LARGE_INTEGER TotalBytesTransferred, LARGE_INTEGER StreamSize, LARGE_INTEGER StreamBytesTransferred, DWORD dwStreamNumber, DWORD dwCallbackReason, HANDLE hSourceFile, HANDLE hDestinationFile, LPVOID lpData ) LPPROGRESS_ROUTINE; - -extern(Windows) export BOOL CopyFileExA( - LPCSTR lpExistingFileName, - LPCSTR lpNewFileName, - LPPROGRESS_ROUTINE lpProgressRoutine , - LPVOID lpData , - LPBOOL pbCancel , - DWORD dwCopyFlags); -extern(Windows) export BOOL CopyFileExW( - LPCWSTR lpExistingFileName, - LPCWSTR lpNewFileName, - LPPROGRESS_ROUTINE lpProgressRoutine , - LPVOID lpData , - LPBOOL pbCancel , - DWORD dwCopyFlags); -// #ifdef UNICODE -alias CopyFileExW CopyFileEx; -// #else -// #... -// #endif // !UNICODE -// #endif /* _WIN32_WINNT >= 0x0400 */ - -extern(Windows) export BOOL MoveFileA( - LPCSTR lpExistingFileName, - LPCSTR lpNewFileName); -extern(Windows) export BOOL MoveFileW( - LPCWSTR lpExistingFileName, - LPCWSTR lpNewFileName); -// #ifdef UNICODE -alias MoveFileW MoveFile; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL MoveFileExA( - LPCSTR lpExistingFileName, - LPCSTR lpNewFileName, - DWORD dwFlags); -extern(Windows) export BOOL MoveFileExW( - LPCWSTR lpExistingFileName, - LPCWSTR lpNewFileName, - DWORD dwFlags); -// #ifdef UNICODE -alias MoveFileExW MoveFileEx; -// #else -// #... -// #endif // !UNICODE - -// #if (_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL MoveFileWithProgressA( - LPCSTR lpExistingFileName, - LPCSTR lpNewFileName, - LPPROGRESS_ROUTINE lpProgressRoutine , - LPVOID lpData , - DWORD dwFlags); -extern(Windows) export BOOL MoveFileWithProgressW( - LPCWSTR lpExistingFileName, - LPCWSTR lpNewFileName, - LPPROGRESS_ROUTINE lpProgressRoutine , - LPVOID lpData , - DWORD dwFlags); -// #ifdef UNICODE -alias MoveFileWithProgressW MoveFileWithProgress; -// #else -// #... -// #endif // !UNICODE -// #endif // (_WIN32_WINNT >= 0x0500) - -enum : uint { MOVEFILE_REPLACE_EXISTING = 0x00000001 } -enum : uint { MOVEFILE_COPY_ALLOWED = 0x00000002 } -enum : uint { MOVEFILE_DELAY_UNTIL_REBOOT = 0x00000004 } -enum : uint { MOVEFILE_WRITE_THROUGH = 0x00000008 } -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { MOVEFILE_CREATE_HARDLINK = 0x00000010 } -enum : uint { MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x00000020 } -// #endif // (_WIN32_WINNT >= 0x0500) - -// #if (_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL ReplaceFileA( - LPCSTR lpReplacedFileName, - LPCSTR lpReplacementFileName, - LPCSTR lpBackupFileName, - DWORD dwReplaceFlags, - LPVOID lpExclude, - LPVOID lpReserved); -extern(Windows) export BOOL ReplaceFileW( - LPCWSTR lpReplacedFileName, - LPCWSTR lpReplacementFileName, - LPCWSTR lpBackupFileName, - DWORD dwReplaceFlags, - LPVOID lpExclude, - LPVOID lpReserved); -// #ifdef UNICODE -alias ReplaceFileW ReplaceFile; -// #else -// #... -// #endif // !UNICODE -// #endif // (_WIN32_WINNT >= 0x0500) - -// #if (_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL CreateHardLinkA( - LPCSTR lpFileName, - LPCSTR lpExistingFileName, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -extern(Windows) export BOOL CreateHardLinkW( - LPCWSTR lpFileName, - LPCWSTR lpExistingFileName, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -// #ifdef UNICODE -alias CreateHardLinkW CreateHardLink; -// #else -// #... -// #endif // !UNICODE - -// #endif // (_WIN32_WINNT >= 0x0500) - -extern(Windows) export HANDLE CreateNamedPipeA( - LPCSTR lpName, - DWORD dwOpenMode, - DWORD dwPipeMode, - DWORD nMaxInstances, - DWORD nOutBufferSize, - DWORD nInBufferSize, - DWORD nDefaultTimeOut, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -extern(Windows) export HANDLE CreateNamedPipeW( - LPCWSTR lpName, - DWORD dwOpenMode, - DWORD dwPipeMode, - DWORD nMaxInstances, - DWORD nOutBufferSize, - DWORD nInBufferSize, - DWORD nDefaultTimeOut, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -// #ifdef UNICODE -alias CreateNamedPipeW CreateNamedPipe; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetNamedPipeHandleStateA( - HANDLE hNamedPipe, - LPDWORD lpState, - LPDWORD lpCurInstances, - LPDWORD lpMaxCollectionCount, - LPDWORD lpCollectDataTimeout, - LPSTR lpUserName, - DWORD nMaxUserNameSize); -extern(Windows) export BOOL GetNamedPipeHandleStateW( - HANDLE hNamedPipe, - LPDWORD lpState, - LPDWORD lpCurInstances, - LPDWORD lpMaxCollectionCount, - LPDWORD lpCollectDataTimeout, - LPWSTR lpUserName, - DWORD nMaxUserNameSize); -// #ifdef UNICODE -alias GetNamedPipeHandleStateW GetNamedPipeHandleState; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL CallNamedPipeA( - LPCSTR lpNamedPipeName, - LPVOID lpInBuffer, - DWORD nInBufferSize, - LPVOID lpOutBuffer, - DWORD nOutBufferSize, - LPDWORD lpBytesRead, - DWORD nTimeOut); -extern(Windows) export BOOL CallNamedPipeW( - LPCWSTR lpNamedPipeName, - LPVOID lpInBuffer, - DWORD nInBufferSize, - LPVOID lpOutBuffer, - DWORD nOutBufferSize, - LPDWORD lpBytesRead, - DWORD nTimeOut); -// #ifdef UNICODE -alias CallNamedPipeW CallNamedPipe; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL WaitNamedPipeA( - LPCSTR lpNamedPipeName, - DWORD nTimeOut); -extern(Windows) export BOOL WaitNamedPipeW( - LPCWSTR lpNamedPipeName, - DWORD nTimeOut); -// #ifdef UNICODE -alias WaitNamedPipeW WaitNamedPipe; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetVolumeLabelA( - LPCSTR lpRootPathName, - LPCSTR lpVolumeName); -extern(Windows) export BOOL SetVolumeLabelW( - LPCWSTR lpRootPathName, - LPCWSTR lpVolumeName); -// #ifdef UNICODE -alias SetVolumeLabelW SetVolumeLabel; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export VOID SetFileApisToOEM(); - -extern(Windows) export VOID SetFileApisToANSI(); - -extern(Windows) export BOOL AreFileApisANSI(); - -extern(Windows) export BOOL GetVolumeInformationA( - LPCSTR lpRootPathName, - LPSTR lpVolumeNameBuffer, - DWORD nVolumeNameSize, - LPDWORD lpVolumeSerialNumber, - LPDWORD lpMaximumComponentLength, - LPDWORD lpFileSystemFlags, - LPSTR lpFileSystemNameBuffer, - DWORD nFileSystemNameSize); -extern(Windows) export BOOL GetVolumeInformationW( - LPCWSTR lpRootPathName, - LPWSTR lpVolumeNameBuffer, - DWORD nVolumeNameSize, - LPDWORD lpVolumeSerialNumber, - LPDWORD lpMaximumComponentLength, - LPDWORD lpFileSystemFlags, - LPWSTR lpFileSystemNameBuffer, - DWORD nFileSystemNameSize); -// #ifdef UNICODE -alias GetVolumeInformationW GetVolumeInformation; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL CancelIo( - HANDLE hFile); - -extern(Windows) export BOOL ClearEventLogA( - HANDLE hEventLog, - LPCSTR lpBackupFileName); -extern(Windows) export BOOL ClearEventLogW( - HANDLE hEventLog, - LPCWSTR lpBackupFileName); -// #ifdef UNICODE -alias ClearEventLogW ClearEventLog; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL BackupEventLogA( - HANDLE hEventLog, - LPCSTR lpBackupFileName); -extern(Windows) export BOOL BackupEventLogW( - HANDLE hEventLog, - LPCWSTR lpBackupFileName); -// #ifdef UNICODE -alias BackupEventLogW BackupEventLog; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL CloseEventLog( - HANDLE hEventLog); - -extern(Windows) export BOOL DeregisterEventSource( - HANDLE hEventLog); - -extern(Windows) export BOOL NotifyChangeEventLog( - HANDLE hEventLog, - HANDLE hEvent); - -extern(Windows) export BOOL GetNumberOfEventLogRecords( - HANDLE hEventLog, - PDWORD NumberOfRecords); - -extern(Windows) export BOOL GetOldestEventLogRecord( - HANDLE hEventLog, - PDWORD OldestRecord); - -extern(Windows) export HANDLE OpenEventLogA( - LPCSTR lpUNCServerName, - LPCSTR lpSourceName); -extern(Windows) export HANDLE OpenEventLogW( - LPCWSTR lpUNCServerName, - LPCWSTR lpSourceName); -// #ifdef UNICODE -alias OpenEventLogW OpenEventLog; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HANDLE RegisterEventSourceA( - LPCSTR lpUNCServerName, - LPCSTR lpSourceName); -extern(Windows) export HANDLE RegisterEventSourceW( - LPCWSTR lpUNCServerName, - LPCWSTR lpSourceName); -// #ifdef UNICODE -alias RegisterEventSourceW RegisterEventSource; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HANDLE OpenBackupEventLogA( - LPCSTR lpUNCServerName, - LPCSTR lpFileName); -extern(Windows) export HANDLE OpenBackupEventLogW( - LPCWSTR lpUNCServerName, - LPCWSTR lpFileName); -// #ifdef UNICODE -alias OpenBackupEventLogW OpenBackupEventLog; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ReadEventLogA( - HANDLE hEventLog, - DWORD dwReadFlags, - DWORD dwRecordOffset, - LPVOID lpBuffer, - DWORD nNumberOfBytesToRead, - DWORD *pnBytesRead, - DWORD *pnMinNumberOfBytesNeeded); -extern(Windows) export BOOL ReadEventLogW( - HANDLE hEventLog, - DWORD dwReadFlags, - DWORD dwRecordOffset, - LPVOID lpBuffer, - DWORD nNumberOfBytesToRead, - DWORD *pnBytesRead, - DWORD *pnMinNumberOfBytesNeeded); -// #ifdef UNICODE -alias ReadEventLogW ReadEventLog; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ReportEventA( - HANDLE hEventLog, - WORD wType, - WORD wCategory, - DWORD dwEventID, - PSID lpUserSid, - WORD wNumStrings, - DWORD dwDataSize, - LPCSTR *lpStrings, - LPVOID lpRawData); -extern(Windows) export BOOL ReportEventW( - HANDLE hEventLog, - WORD wType, - WORD wCategory, - DWORD dwEventID, - PSID lpUserSid, - WORD wNumStrings, - DWORD dwDataSize, - LPCWSTR *lpStrings, - LPVOID lpRawData); -// #ifdef UNICODE -alias ReportEventW ReportEvent; -// #else -// #... -// #endif // !UNICODE - -enum : uint { EVENTLOG_FULL_INFO = 0 } - -struct _EVENTLOG_FULL_INFORMATION { - DWORD dwFull; -} -alias _EVENTLOG_FULL_INFORMATION EVENTLOG_FULL_INFORMATION; -alias _EVENTLOG_FULL_INFORMATION* LPEVENTLOG_FULL_INFORMATION; - -extern(Windows) export BOOL GetEventLogInformation( - HANDLE hEventLog, - DWORD dwInfoLevel, - LPVOID lpBuffer, - DWORD cbBufSize, - LPDWORD pcbBytesNeeded); - -extern(Windows) export BOOL DuplicateToken( - HANDLE ExistingTokenHandle, - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, - PHANDLE DuplicateTokenHandle); - -extern(Windows) export BOOL GetKernelObjectSecurity( - HANDLE Handle, - SECURITY_INFORMATION RequestedInformation, - PSECURITY_DESCRIPTOR pSecurityDescriptor, - DWORD nLength, - LPDWORD lpnLengthNeeded); - -extern(Windows) export BOOL ImpersonateNamedPipeClient( - HANDLE hNamedPipe); - -extern(Windows) export BOOL ImpersonateSelf( - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel); - -extern(Windows) export BOOL RevertToSelf(); - -extern(Windows) export BOOL SetThreadToken( - PHANDLE Thread, - HANDLE Token); - -extern(Windows) export BOOL AccessCheck( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - HANDLE ClientToken, - DWORD DesiredAccess, - PGENERIC_MAPPING GenericMapping, - PPRIVILEGE_SET PrivilegeSet, - LPDWORD PrivilegeSetLength, - LPDWORD GrantedAccess, - LPBOOL AccessStatus); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL AccessCheckByType( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - PSID PrincipalSelfSid, - HANDLE ClientToken, - DWORD DesiredAccess, - POBJECT_TYPE_LIST ObjectTypeList, - DWORD ObjectTypeListLength, - PGENERIC_MAPPING GenericMapping, - PPRIVILEGE_SET PrivilegeSet, - LPDWORD PrivilegeSetLength, - LPDWORD GrantedAccess, - LPBOOL AccessStatus); - -extern(Windows) export BOOL AccessCheckByTypeResultList( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - PSID PrincipalSelfSid, - HANDLE ClientToken, - DWORD DesiredAccess, - POBJECT_TYPE_LIST ObjectTypeList, - DWORD ObjectTypeListLength, - PGENERIC_MAPPING GenericMapping, - PPRIVILEGE_SET PrivilegeSet, - LPDWORD PrivilegeSetLength, - LPDWORD GrantedAccessList, - LPDWORD AccessStatusList); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export BOOL OpenProcessToken( - HANDLE ProcessHandle, - DWORD DesiredAccess, - PHANDLE TokenHandle); - -extern(Windows) export BOOL OpenThreadToken( - HANDLE ThreadHandle, - DWORD DesiredAccess, - BOOL OpenAsSelf, - PHANDLE TokenHandle); - -extern(Windows) export BOOL GetTokenInformation( - HANDLE TokenHandle, - TOKEN_INFORMATION_CLASS TokenInformationClass, - LPVOID TokenInformation, - DWORD TokenInformationLength, - PDWORD ReturnLength); - -extern(Windows) export BOOL SetTokenInformation( - HANDLE TokenHandle, - TOKEN_INFORMATION_CLASS TokenInformationClass, - LPVOID TokenInformation, - DWORD TokenInformationLength); - -extern(Windows) export BOOL AdjustTokenPrivileges( - HANDLE TokenHandle, - BOOL DisableAllPrivileges, - PTOKEN_PRIVILEGES NewState, - DWORD BufferLength, - PTOKEN_PRIVILEGES PreviousState, - PDWORD ReturnLength); - -extern(Windows) export BOOL AdjustTokenGroups( - HANDLE TokenHandle, - BOOL ResetToDefault, - PTOKEN_GROUPS NewState, - DWORD BufferLength, - PTOKEN_GROUPS PreviousState, - PDWORD ReturnLength); - -extern(Windows) export BOOL PrivilegeCheck( - HANDLE ClientToken, - PPRIVILEGE_SET RequiredPrivileges, - LPBOOL pfResult); - -extern(Windows) export BOOL AccessCheckAndAuditAlarmA( - LPCSTR SubsystemName, - LPVOID HandleId, - LPSTR ObjectTypeName, - LPSTR ObjectName, - PSECURITY_DESCRIPTOR SecurityDescriptor, - DWORD DesiredAccess, - PGENERIC_MAPPING GenericMapping, - BOOL ObjectCreation, - LPDWORD GrantedAccess, - LPBOOL AccessStatus, - LPBOOL pfGenerateOnClose); -extern(Windows) export BOOL AccessCheckAndAuditAlarmW( - LPCWSTR SubsystemName, - LPVOID HandleId, - LPWSTR ObjectTypeName, - LPWSTR ObjectName, - PSECURITY_DESCRIPTOR SecurityDescriptor, - DWORD DesiredAccess, - PGENERIC_MAPPING GenericMapping, - BOOL ObjectCreation, - LPDWORD GrantedAccess, - LPBOOL AccessStatus, - LPBOOL pfGenerateOnClose); -// #ifdef UNICODE -alias AccessCheckAndAuditAlarmW AccessCheckAndAuditAlarm; -// #else -// #... -// #endif // !UNICODE - -// #if(_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL AccessCheckByTypeAndAuditAlarmA( - LPCSTR SubsystemName, - LPVOID HandleId, - LPCSTR ObjectTypeName, - LPCSTR ObjectName, - PSECURITY_DESCRIPTOR SecurityDescriptor, - PSID PrincipalSelfSid, - DWORD DesiredAccess, - AUDIT_EVENT_TYPE AuditType, - DWORD Flags, - POBJECT_TYPE_LIST ObjectTypeList, - DWORD ObjectTypeListLength, - PGENERIC_MAPPING GenericMapping, - BOOL ObjectCreation, - LPDWORD GrantedAccess, - LPBOOL AccessStatus, - LPBOOL pfGenerateOnClose); -extern(Windows) export BOOL AccessCheckByTypeAndAuditAlarmW( - LPCWSTR SubsystemName, - LPVOID HandleId, - LPCWSTR ObjectTypeName, - LPCWSTR ObjectName, - PSECURITY_DESCRIPTOR SecurityDescriptor, - PSID PrincipalSelfSid, - DWORD DesiredAccess, - AUDIT_EVENT_TYPE AuditType, - DWORD Flags, - POBJECT_TYPE_LIST ObjectTypeList, - DWORD ObjectTypeListLength, - PGENERIC_MAPPING GenericMapping, - BOOL ObjectCreation, - LPDWORD GrantedAccess, - LPBOOL AccessStatus, - LPBOOL pfGenerateOnClose); -// #ifdef UNICODE -alias AccessCheckByTypeAndAuditAlarmW AccessCheckByTypeAndAuditAlarm; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL AccessCheckByTypeResultListAndAuditAlarmA( - LPCSTR SubsystemName, - LPVOID HandleId, - LPCSTR ObjectTypeName, - LPCSTR ObjectName, - PSECURITY_DESCRIPTOR SecurityDescriptor, - PSID PrincipalSelfSid, - DWORD DesiredAccess, - AUDIT_EVENT_TYPE AuditType, - DWORD Flags, - POBJECT_TYPE_LIST ObjectTypeList, - DWORD ObjectTypeListLength, - PGENERIC_MAPPING GenericMapping, - BOOL ObjectCreation, - LPDWORD GrantedAccess, - LPDWORD AccessStatusList, - LPBOOL pfGenerateOnClose); -extern(Windows) export BOOL AccessCheckByTypeResultListAndAuditAlarmW( - LPCWSTR SubsystemName, - LPVOID HandleId, - LPCWSTR ObjectTypeName, - LPCWSTR ObjectName, - PSECURITY_DESCRIPTOR SecurityDescriptor, - PSID PrincipalSelfSid, - DWORD DesiredAccess, - AUDIT_EVENT_TYPE AuditType, - DWORD Flags, - POBJECT_TYPE_LIST ObjectTypeList, - DWORD ObjectTypeListLength, - PGENERIC_MAPPING GenericMapping, - BOOL ObjectCreation, - LPDWORD GrantedAccess, - LPDWORD AccessStatusList, - LPBOOL pfGenerateOnClose); -// #ifdef UNICODE -alias AccessCheckByTypeResultListAndAuditAlarmW AccessCheckByTypeResultListAndAuditAlarm; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL AccessCheckByTypeResultListAndAuditAlarmByHandleA( - LPCSTR SubsystemName, - LPVOID HandleId, - HANDLE ClientToken, - LPCSTR ObjectTypeName, - LPCSTR ObjectName, - PSECURITY_DESCRIPTOR SecurityDescriptor, - PSID PrincipalSelfSid, - DWORD DesiredAccess, - AUDIT_EVENT_TYPE AuditType, - DWORD Flags, - POBJECT_TYPE_LIST ObjectTypeList, - DWORD ObjectTypeListLength, - PGENERIC_MAPPING GenericMapping, - BOOL ObjectCreation, - LPDWORD GrantedAccess, - LPDWORD AccessStatusList, - LPBOOL pfGenerateOnClose); -extern(Windows) export BOOL AccessCheckByTypeResultListAndAuditAlarmByHandleW( - LPCWSTR SubsystemName, - LPVOID HandleId, - HANDLE ClientToken, - LPCWSTR ObjectTypeName, - LPCWSTR ObjectName, - PSECURITY_DESCRIPTOR SecurityDescriptor, - PSID PrincipalSelfSid, - DWORD DesiredAccess, - AUDIT_EVENT_TYPE AuditType, - DWORD Flags, - POBJECT_TYPE_LIST ObjectTypeList, - DWORD ObjectTypeListLength, - PGENERIC_MAPPING GenericMapping, - BOOL ObjectCreation, - LPDWORD GrantedAccess, - LPDWORD AccessStatusList, - LPBOOL pfGenerateOnClose); -// #ifdef UNICODE -alias AccessCheckByTypeResultListAndAuditAlarmByHandleW AccessCheckByTypeResultListAndAuditAlarmByHandle; -// #else -// #... -// #endif // !UNICODE - -// #endif //(_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL ObjectOpenAuditAlarmA( - LPCSTR SubsystemName, - LPVOID HandleId, - LPSTR ObjectTypeName, - LPSTR ObjectName, - PSECURITY_DESCRIPTOR pSecurityDescriptor, - HANDLE ClientToken, - DWORD DesiredAccess, - DWORD GrantedAccess, - PPRIVILEGE_SET Privileges, - BOOL ObjectCreation, - BOOL AccessGranted, - LPBOOL GenerateOnClose); -extern(Windows) export BOOL ObjectOpenAuditAlarmW( - LPCWSTR SubsystemName, - LPVOID HandleId, - LPWSTR ObjectTypeName, - LPWSTR ObjectName, - PSECURITY_DESCRIPTOR pSecurityDescriptor, - HANDLE ClientToken, - DWORD DesiredAccess, - DWORD GrantedAccess, - PPRIVILEGE_SET Privileges, - BOOL ObjectCreation, - BOOL AccessGranted, - LPBOOL GenerateOnClose); -// #ifdef UNICODE -alias ObjectOpenAuditAlarmW ObjectOpenAuditAlarm; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ObjectPrivilegeAuditAlarmA( - LPCSTR SubsystemName, - LPVOID HandleId, - HANDLE ClientToken, - DWORD DesiredAccess, - PPRIVILEGE_SET Privileges, - BOOL AccessGranted); -extern(Windows) export BOOL ObjectPrivilegeAuditAlarmW( - LPCWSTR SubsystemName, - LPVOID HandleId, - HANDLE ClientToken, - DWORD DesiredAccess, - PPRIVILEGE_SET Privileges, - BOOL AccessGranted); -// #ifdef UNICODE -alias ObjectPrivilegeAuditAlarmW ObjectPrivilegeAuditAlarm; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ObjectCloseAuditAlarmA( - LPCSTR SubsystemName, - LPVOID HandleId, - BOOL GenerateOnClose); -extern(Windows) export BOOL ObjectCloseAuditAlarmW( - LPCWSTR SubsystemName, - LPVOID HandleId, - BOOL GenerateOnClose); -// #ifdef UNICODE -alias ObjectCloseAuditAlarmW ObjectCloseAuditAlarm; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ObjectDeleteAuditAlarmA( - LPCSTR SubsystemName, - LPVOID HandleId, - BOOL GenerateOnClose); -extern(Windows) export BOOL ObjectDeleteAuditAlarmW( - LPCWSTR SubsystemName, - LPVOID HandleId, - BOOL GenerateOnClose); -// #ifdef UNICODE -alias ObjectDeleteAuditAlarmW ObjectDeleteAuditAlarm; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL PrivilegedServiceAuditAlarmA( - LPCSTR SubsystemName, - LPCSTR ServiceName, - HANDLE ClientToken, - PPRIVILEGE_SET Privileges, - BOOL AccessGranted); -extern(Windows) export BOOL PrivilegedServiceAuditAlarmW( - LPCWSTR SubsystemName, - LPCWSTR ServiceName, - HANDLE ClientToken, - PPRIVILEGE_SET Privileges, - BOOL AccessGranted); -// #ifdef UNICODE -alias PrivilegedServiceAuditAlarmW PrivilegedServiceAuditAlarm; -// #else -// #... -// #endif // !UNICODE - -// #if(_WIN32_WINNT >= 0x0501) - -enum _0 { - - WinNullSid = 0, - WinWorldSid = 1, - WinLocalSid = 2, - WinCreatorOwnerSid = 3, - WinCreatorGroupSid = 4, - WinCreatorOwnerServerSid = 5, - WinCreatorGroupServerSid = 6, - WinNtAuthoritySid = 7, - WinDialupSid = 8, - WinNetworkSid = 9, - WinBatchSid = 10, - WinInteractiveSid = 11, - WinServiceSid = 12, - WinAnonymousSid = 13, - WinProxySid = 14, - WinEnterpriseControllersSid = 15, - WinSelfSid = 16, - WinAuthenticatedUserSid = 17, - WinRestrictedCodeSid = 18, - WinTerminalServerSid = 19, - WinRemoteLogonIdSid = 20, - WinLogonIdsSid = 21, - WinLocalSystemSid = 22, - WinLocalServiceSid = 23, - WinNetworkServiceSid = 24, - WinBuiltinDomainSid = 25, - WinBuiltinAdministratorsSid = 26, - WinBuiltinUsersSid = 27, - WinBuiltinGuestsSid = 28, - WinBuiltinPowerUsersSid = 29, - WinBuiltinAccountOperatorsSid = 30, - WinBuiltinSystemOperatorsSid = 31, - WinBuiltinPrintOperatorsSid = 32, - WinBuiltinBackupOperatorsSid = 33, - WinBuiltinReplicatorSid = 34, - WinBuiltinPreWindows2000CompatibleAccessSid = 35, - WinBuiltinRemoteDesktopUsersSid = 36, - WinBuiltinNetworkConfigurationOperatorsSid = 37, - WinAccountAdministratorSid = 38, - WinAccountGuestSid = 39, - WinAccountKrbtgtSid = 40, - WinAccountDomainAdminsSid = 41, - WinAccountDomainUsersSid = 42, - WinAccountDomainGuestsSid = 43, - WinAccountComputersSid = 44, - WinAccountControllersSid = 45, - WinAccountCertAdminsSid = 46, - WinAccountSchemaAdminsSid = 47, - WinAccountEnterpriseAdminsSid = 48, - WinAccountPolicyAdminsSid = 49, - WinAccountRasAndIasServersSid = 50, - -} -alias _0 WELL_KNOWN_SID_TYPE; - -extern(Windows) export BOOL IsWellKnownSid( - PSID pSid, - WELL_KNOWN_SID_TYPE WellKnownSidType); - -extern(Windows) export BOOL CreateWellKnownSid( - WELL_KNOWN_SID_TYPE WellKnownSidType, - PSID DomainSid , - PSID pSid, - DWORD *cbSid); - -extern(Windows) export BOOL EqualDomainSid( - PSID pSid1, - PSID pSid2, - BOOL *pfEqual); - -extern(Windows) export BOOL GetWindowsAccountDomainSid( - PSID pSid, - PSID ppDomainSid , - DWORD *cbSid); - -// #endif //(_WIN32_WINNT >= 0x0501) - -extern(Windows) export BOOL IsValidSid( - PSID pSid); - -extern(Windows) export BOOL EqualSid( - PSID pSid1, - PSID pSid2); - -extern(Windows) export BOOL EqualPrefixSid( - PSID pSid1, - PSID pSid2); - -extern(Windows) export DWORD GetSidLengthRequired( - UCHAR nSubAuthorityCount); - -extern(Windows) export BOOL AllocateAndInitializeSid( - PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, - BYTE nSubAuthorityCount, - DWORD nSubAuthority0, - DWORD nSubAuthority1, - DWORD nSubAuthority2, - DWORD nSubAuthority3, - DWORD nSubAuthority4, - DWORD nSubAuthority5, - DWORD nSubAuthority6, - DWORD nSubAuthority7, - PSID *pSid); - -extern(Windows) export PVOID FreeSid( - PSID pSid); - -extern(Windows) export BOOL InitializeSid( - PSID Sid, - PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, - BYTE nSubAuthorityCount); - -extern(Windows) export PSID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority( - PSID pSid); - -extern(Windows) export PDWORD GetSidSubAuthority( - PSID pSid, - DWORD nSubAuthority); - -extern(Windows) export PUCHAR GetSidSubAuthorityCount( - PSID pSid); - -extern(Windows) export DWORD GetLengthSid( - PSID pSid); - -extern(Windows) export BOOL CopySid( - DWORD nDestinationSidLength, - PSID pDestinationSid, - PSID pSourceSid); - -extern(Windows) export BOOL AreAllAccessesGranted( - DWORD GrantedAccess, - DWORD DesiredAccess); - -extern(Windows) export BOOL AreAnyAccessesGranted( - DWORD GrantedAccess, - DWORD DesiredAccess); - -extern(Windows) export VOID MapGenericMask( - PDWORD AccessMask, - PGENERIC_MAPPING GenericMapping); - -extern(Windows) export BOOL IsValidAcl( - PACL pAcl); - -extern(Windows) export BOOL InitializeAcl( - PACL pAcl, - DWORD nAclLength, - DWORD dwAclRevision); - -extern(Windows) export BOOL GetAclInformation( - PACL pAcl, - LPVOID pAclInformation, - DWORD nAclInformationLength, - ACL_INFORMATION_CLASS dwAclInformationClass); - -extern(Windows) export BOOL SetAclInformation( - PACL pAcl, - LPVOID pAclInformation, - DWORD nAclInformationLength, - ACL_INFORMATION_CLASS dwAclInformationClass); - -extern(Windows) export BOOL AddAce( - PACL pAcl, - DWORD dwAceRevision, - DWORD dwStartingAceIndex, - LPVOID pAceList, - DWORD nAceListLength); - -extern(Windows) export BOOL DeleteAce( - PACL pAcl, - DWORD dwAceIndex); - -extern(Windows) export BOOL GetAce( - PACL pAcl, - DWORD dwAceIndex, - LPVOID *pAce); - -extern(Windows) export BOOL AddAccessAllowedAce( - PACL pAcl, - DWORD dwAceRevision, - DWORD AccessMask, - PSID pSid); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL AddAccessAllowedAceEx( - PACL pAcl, - DWORD dwAceRevision, - DWORD AceFlags, - DWORD AccessMask, - PSID pSid); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export BOOL AddAccessDeniedAce( - PACL pAcl, - DWORD dwAceRevision, - DWORD AccessMask, - PSID pSid); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL AddAccessDeniedAceEx( - PACL pAcl, - DWORD dwAceRevision, - DWORD AceFlags, - DWORD AccessMask, - PSID pSid); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export BOOL AddAuditAccessAce( - PACL pAcl, - DWORD dwAceRevision, - DWORD dwAccessMask, - PSID pSid, - BOOL bAuditSuccess, - BOOL bAuditFailure); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL AddAuditAccessAceEx( - PACL pAcl, - DWORD dwAceRevision, - DWORD AceFlags, - DWORD dwAccessMask, - PSID pSid, - BOOL bAuditSuccess, - BOOL bAuditFailure); - -extern(Windows) export BOOL AddAccessAllowedObjectAce( - PACL pAcl, - DWORD dwAceRevision, - DWORD AceFlags, - DWORD AccessMask, - GUID *ObjectTypeGuid, - GUID *InheritedObjectTypeGuid, - PSID pSid); - -extern(Windows) export BOOL AddAccessDeniedObjectAce( - PACL pAcl, - DWORD dwAceRevision, - DWORD AceFlags, - DWORD AccessMask, - GUID *ObjectTypeGuid, - GUID *InheritedObjectTypeGuid, - PSID pSid); - -extern(Windows) export BOOL AddAuditAccessObjectAce( - PACL pAcl, - DWORD dwAceRevision, - DWORD AceFlags, - DWORD AccessMask, - GUID *ObjectTypeGuid, - GUID *InheritedObjectTypeGuid, - PSID pSid, - BOOL bAuditSuccess, - BOOL bAuditFailure); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export BOOL FindFirstFreeAce( - PACL pAcl, - LPVOID *pAce); - -extern(Windows) export BOOL InitializeSecurityDescriptor( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - DWORD dwRevision); - -extern(Windows) export BOOL IsValidSecurityDescriptor( - PSECURITY_DESCRIPTOR pSecurityDescriptor); - -extern(Windows) export DWORD GetSecurityDescriptorLength( - PSECURITY_DESCRIPTOR pSecurityDescriptor); - -extern(Windows) export BOOL GetSecurityDescriptorControl( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - PSECURITY_DESCRIPTOR_CONTROL pControl, - LPDWORD lpdwRevision); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL SetSecurityDescriptorControl( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest, - SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export BOOL SetSecurityDescriptorDacl( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - BOOL bDaclPresent, - PACL pDacl, - BOOL bDaclDefaulted); - -extern(Windows) export BOOL GetSecurityDescriptorDacl( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - LPBOOL lpbDaclPresent, - PACL *pDacl, - LPBOOL lpbDaclDefaulted); - -extern(Windows) export BOOL SetSecurityDescriptorSacl( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - BOOL bSaclPresent, - PACL pSacl, - BOOL bSaclDefaulted); - -extern(Windows) export BOOL GetSecurityDescriptorSacl( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - LPBOOL lpbSaclPresent, - PACL *pSacl, - LPBOOL lpbSaclDefaulted); - -extern(Windows) export BOOL SetSecurityDescriptorOwner( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - PSID pOwner, - BOOL bOwnerDefaulted); - -extern(Windows) export BOOL GetSecurityDescriptorOwner( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - PSID *pOwner, - LPBOOL lpbOwnerDefaulted); - -extern(Windows) export BOOL SetSecurityDescriptorGroup( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - PSID pGroup, - BOOL bGroupDefaulted); - -extern(Windows) export BOOL GetSecurityDescriptorGroup( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - PSID *pGroup, - LPBOOL lpbGroupDefaulted); - -extern(Windows) export DWORD SetSecurityDescriptorRMControl( - PSECURITY_DESCRIPTOR SecurityDescriptor, - PUCHAR RMControl ); - -extern(Windows) export DWORD GetSecurityDescriptorRMControl( - PSECURITY_DESCRIPTOR SecurityDescriptor, - PUCHAR RMControl); - -extern(Windows) export BOOL CreatePrivateObjectSecurity( - PSECURITY_DESCRIPTOR ParentDescriptor, - PSECURITY_DESCRIPTOR CreatorDescriptor, - PSECURITY_DESCRIPTOR * NewDescriptor, - BOOL IsDirectoryObject, - HANDLE Token, - PGENERIC_MAPPING GenericMapping); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL ConvertToAutoInheritPrivateObjectSecurity( - PSECURITY_DESCRIPTOR ParentDescriptor, - PSECURITY_DESCRIPTOR CurrentSecurityDescriptor, - PSECURITY_DESCRIPTOR *NewSecurityDescriptor, - GUID *ObjectType, - BOOLEAN IsDirectoryObject, - PGENERIC_MAPPING GenericMapping); - -extern(Windows) export BOOL CreatePrivateObjectSecurityEx( - PSECURITY_DESCRIPTOR ParentDescriptor, - PSECURITY_DESCRIPTOR CreatorDescriptor, - PSECURITY_DESCRIPTOR * NewDescriptor, - GUID *ObjectType , - BOOL IsContainerObject, - ULONG AutoInheritFlags, - HANDLE Token, - PGENERIC_MAPPING GenericMapping); - -extern(Windows) export BOOL CreatePrivateObjectSecurityWithMultipleInheritance( - PSECURITY_DESCRIPTOR ParentDescriptor, - PSECURITY_DESCRIPTOR CreatorDescriptor, - PSECURITY_DESCRIPTOR * NewDescriptor, - GUID **ObjectTypes , - ULONG GuidCount, - BOOL IsContainerObject, - ULONG AutoInheritFlags, - HANDLE Token, - PGENERIC_MAPPING GenericMapping); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export BOOL SetPrivateObjectSecurity( - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR ModificationDescriptor, - PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor, - PGENERIC_MAPPING GenericMapping, - HANDLE Token); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL SetPrivateObjectSecurityEx( - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR ModificationDescriptor, - PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor, - ULONG AutoInheritFlags, - PGENERIC_MAPPING GenericMapping, - HANDLE Token ); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export BOOL GetPrivateObjectSecurity( - PSECURITY_DESCRIPTOR ObjectDescriptor, - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR ResultantDescriptor, - DWORD DescriptorLength, - PDWORD ReturnLength); - -extern(Windows) export BOOL DestroyPrivateObjectSecurity( - PSECURITY_DESCRIPTOR * ObjectDescriptor); - -extern(Windows) export BOOL MakeSelfRelativeSD( - PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, - PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, - LPDWORD lpdwBufferLength); - -extern(Windows) export BOOL MakeAbsoluteSD( - PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, - PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, - LPDWORD lpdwAbsoluteSecurityDescriptorSize, - PACL pDacl, - LPDWORD lpdwDaclSize, - PACL pSacl, - LPDWORD lpdwSaclSize, - PSID pOwner, - LPDWORD lpdwOwnerSize, - PSID pPrimaryGroup, - LPDWORD lpdwPrimaryGroupSize); - -extern(Windows) export BOOL MakeAbsoluteSD2( - PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, - LPDWORD lpdwBufferSize); - -extern(Windows) export BOOL SetFileSecurityA( - LPCSTR lpFileName, - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR pSecurityDescriptor); -extern(Windows) export BOOL SetFileSecurityW( - LPCWSTR lpFileName, - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR pSecurityDescriptor); -// #ifdef UNICODE -alias SetFileSecurityW SetFileSecurity; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetFileSecurityA( - LPCSTR lpFileName, - SECURITY_INFORMATION RequestedInformation, - PSECURITY_DESCRIPTOR pSecurityDescriptor, - DWORD nLength, - LPDWORD lpnLengthNeeded); -extern(Windows) export BOOL GetFileSecurityW( - LPCWSTR lpFileName, - SECURITY_INFORMATION RequestedInformation, - PSECURITY_DESCRIPTOR pSecurityDescriptor, - DWORD nLength, - LPDWORD lpnLengthNeeded); -// #ifdef UNICODE -alias GetFileSecurityW GetFileSecurity; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetKernelObjectSecurity( - HANDLE Handle, - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR SecurityDescriptor); - -extern(Windows) export HANDLE FindFirstChangeNotificationA( - LPCSTR lpPathName, - BOOL bWatchSubtree, - DWORD dwNotifyFilter); -extern(Windows) export HANDLE FindFirstChangeNotificationW( - LPCWSTR lpPathName, - BOOL bWatchSubtree, - DWORD dwNotifyFilter); -// #ifdef UNICODE -alias FindFirstChangeNotificationW FindFirstChangeNotification; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL FindNextChangeNotification( - HANDLE hChangeHandle); - -extern(Windows) export BOOL FindCloseChangeNotification( - HANDLE hChangeHandle); - -// #if(_WIN32_WINNT >= 0x0400) -extern(Windows) export BOOL ReadDirectoryChangesW( - HANDLE hDirectory, - LPVOID lpBuffer, - DWORD nBufferLength, - BOOL bWatchSubtree, - DWORD dwNotifyFilter, - LPDWORD lpBytesReturned, - LPOVERLAPPED lpOverlapped, - LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); -// #endif /* _WIN32_WINNT >= 0x0400 */ - -extern(Windows) export BOOL VirtualLock( - LPVOID lpAddress, - SIZE_T dwSize); - -extern(Windows) export BOOL VirtualUnlock( - LPVOID lpAddress, - SIZE_T dwSize); - -extern(Windows) export LPVOID MapViewOfFileEx( - HANDLE hFileMappingObject, - DWORD dwDesiredAccess, - DWORD dwFileOffsetHigh, - DWORD dwFileOffsetLow, - SIZE_T dwNumberOfBytesToMap, - LPVOID lpBaseAddress); - -extern(Windows) export BOOL SetPriorityClass( - HANDLE hProcess, - DWORD dwPriorityClass); - -extern(Windows) export DWORD GetPriorityClass( - HANDLE hProcess); - -extern(Windows) export BOOL IsBadReadPtr( - VOID *lp, - UINT_PTR ucb); - -extern(Windows) export BOOL IsBadWritePtr( - LPVOID lp, - UINT_PTR ucb); - -extern(Windows) export BOOL IsBadHugeReadPtr( - VOID *lp, - UINT_PTR ucb); - -extern(Windows) export BOOL IsBadHugeWritePtr( - LPVOID lp, - UINT_PTR ucb); - -extern(Windows) export BOOL IsBadCodePtr( - FARPROC lpfn); - -extern(Windows) export BOOL IsBadStringPtrA( - LPCSTR lpsz, - UINT_PTR ucchMax); -extern(Windows) export BOOL IsBadStringPtrW( - LPCWSTR lpsz, - UINT_PTR ucchMax); -// #ifdef UNICODE -alias IsBadStringPtrW IsBadStringPtr; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL LookupAccountSidA( - LPCSTR lpSystemName, - PSID Sid, - LPSTR Name, - LPDWORD cbName, - LPSTR ReferencedDomainName, - LPDWORD cbReferencedDomainName, - PSID_NAME_USE peUse); -extern(Windows) export BOOL LookupAccountSidW( - LPCWSTR lpSystemName, - PSID Sid, - LPWSTR Name, - LPDWORD cbName, - LPWSTR ReferencedDomainName, - LPDWORD cbReferencedDomainName, - PSID_NAME_USE peUse); -// #ifdef UNICODE -alias LookupAccountSidW LookupAccountSid; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL LookupAccountNameA( - LPCSTR lpSystemName, - LPCSTR lpAccountName, - PSID Sid, - LPDWORD cbSid, - LPSTR ReferencedDomainName, - LPDWORD cbReferencedDomainName, - PSID_NAME_USE peUse); -extern(Windows) export BOOL LookupAccountNameW( - LPCWSTR lpSystemName, - LPCWSTR lpAccountName, - PSID Sid, - LPDWORD cbSid, - LPWSTR ReferencedDomainName, - LPDWORD cbReferencedDomainName, - PSID_NAME_USE peUse); -// #ifdef UNICODE -alias LookupAccountNameW LookupAccountName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL LookupPrivilegeValueA( - LPCSTR lpSystemName, - LPCSTR lpName, - PLUID lpLuid); -extern(Windows) export BOOL LookupPrivilegeValueW( - LPCWSTR lpSystemName, - LPCWSTR lpName, - PLUID lpLuid); -// #ifdef UNICODE -alias LookupPrivilegeValueW LookupPrivilegeValue; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL LookupPrivilegeNameA( - LPCSTR lpSystemName, - PLUID lpLuid, - LPSTR lpName, - LPDWORD cbName); -extern(Windows) export BOOL LookupPrivilegeNameW( - LPCWSTR lpSystemName, - PLUID lpLuid, - LPWSTR lpName, - LPDWORD cbName); -// #ifdef UNICODE -alias LookupPrivilegeNameW LookupPrivilegeName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL LookupPrivilegeDisplayNameA( - LPCSTR lpSystemName, - LPCSTR lpName, - LPSTR lpDisplayName, - LPDWORD cbDisplayName, - LPDWORD lpLanguageId); -extern(Windows) export BOOL LookupPrivilegeDisplayNameW( - LPCWSTR lpSystemName, - LPCWSTR lpName, - LPWSTR lpDisplayName, - LPDWORD cbDisplayName, - LPDWORD lpLanguageId); -// #ifdef UNICODE -alias LookupPrivilegeDisplayNameW LookupPrivilegeDisplayName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL AllocateLocallyUniqueId( - PLUID Luid); - -extern(Windows) export BOOL BuildCommDCBA( - LPCSTR lpDef, - LPDCB lpDCB); -extern(Windows) export BOOL BuildCommDCBW( - LPCWSTR lpDef, - LPDCB lpDCB); -// #ifdef UNICODE -alias BuildCommDCBW BuildCommDCB; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL BuildCommDCBAndTimeoutsA( - LPCSTR lpDef, - LPDCB lpDCB, - LPCOMMTIMEOUTS lpCommTimeouts); -extern(Windows) export BOOL BuildCommDCBAndTimeoutsW( - LPCWSTR lpDef, - LPDCB lpDCB, - LPCOMMTIMEOUTS lpCommTimeouts); -// #ifdef UNICODE -alias BuildCommDCBAndTimeoutsW BuildCommDCBAndTimeouts; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL CommConfigDialogA( - LPCSTR lpszName, - HWND hWnd, - LPCOMMCONFIG lpCC); -extern(Windows) export BOOL CommConfigDialogW( - LPCWSTR lpszName, - HWND hWnd, - LPCOMMCONFIG lpCC); -// #ifdef UNICODE -alias CommConfigDialogW CommConfigDialog; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetDefaultCommConfigA( - LPCSTR lpszName, - LPCOMMCONFIG lpCC, - LPDWORD lpdwSize); -extern(Windows) export BOOL GetDefaultCommConfigW( - LPCWSTR lpszName, - LPCOMMCONFIG lpCC, - LPDWORD lpdwSize); -// #ifdef UNICODE -alias GetDefaultCommConfigW GetDefaultCommConfig; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetDefaultCommConfigA( - LPCSTR lpszName, - LPCOMMCONFIG lpCC, - DWORD dwSize); -extern(Windows) export BOOL SetDefaultCommConfigW( - LPCWSTR lpszName, - LPCOMMCONFIG lpCC, - DWORD dwSize); -// #ifdef UNICODE -alias SetDefaultCommConfigW SetDefaultCommConfig; -// #else -// #... -// #endif // !UNICODE - -// #ifndef _MAC -enum : uint { MAX_COMPUTERNAME_LENGTH = 15 } -// #else -// #... -// #endif - -extern(Windows) export BOOL GetComputerNameA( - LPSTR lpBuffer, - LPDWORD nSize); -extern(Windows) export BOOL GetComputerNameW( - LPWSTR lpBuffer, - LPDWORD nSize); -// #ifdef UNICODE -alias GetComputerNameW GetComputerName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetComputerNameA( - LPCSTR lpComputerName); -extern(Windows) export BOOL SetComputerNameW( - LPCWSTR lpComputerName); -// #ifdef UNICODE -alias SetComputerNameW SetComputerName; -// #else -// #... -// #endif // !UNICODE - -// #if (_WIN32_WINNT >= 0x0500) - -alias int _COMPUTER_NAME_FORMAT; -enum { - ComputerNameNetBIOS, - ComputerNameDnsHostname, - ComputerNameDnsDomain, - ComputerNameDnsFullyQualified, - ComputerNamePhysicalNetBIOS, - ComputerNamePhysicalDnsHostname, - ComputerNamePhysicalDnsDomain, - ComputerNamePhysicalDnsFullyQualified, - ComputerNameMax, -} -alias _COMPUTER_NAME_FORMAT COMPUTER_NAME_FORMAT; - -extern(Windows) export BOOL GetComputerNameExA( - COMPUTER_NAME_FORMAT NameType, - LPSTR lpBuffer, - LPDWORD nSize); -extern(Windows) export BOOL GetComputerNameExW( - COMPUTER_NAME_FORMAT NameType, - LPWSTR lpBuffer, - LPDWORD nSize); -// #ifdef UNICODE -alias GetComputerNameExW GetComputerNameEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetComputerNameExA( - COMPUTER_NAME_FORMAT NameType, - LPCSTR lpBuffer); -extern(Windows) export BOOL SetComputerNameExW( - COMPUTER_NAME_FORMAT NameType, - LPCWSTR lpBuffer); -// #ifdef UNICODE -alias SetComputerNameExW SetComputerNameEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD AddLocalAlternateComputerNameA( - LPCSTR lpDnsFQHostname, - ULONG ulFlags); -extern(Windows) export DWORD AddLocalAlternateComputerNameW( - LPCWSTR lpDnsFQHostname, - ULONG ulFlags); -// #ifdef UNICODE -alias AddLocalAlternateComputerNameW AddLocalAlternateComputerName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD RemoveLocalAlternateComputerNameA( - LPCSTR lpAltDnsFQHostname, - ULONG ulFlags); -extern(Windows) export DWORD RemoveLocalAlternateComputerNameW( - LPCWSTR lpAltDnsFQHostname, - ULONG ulFlags); -// #ifdef UNICODE -alias RemoveLocalAlternateComputerNameW RemoveLocalAlternateComputerName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD SetLocalPrimaryComputerNameA( - LPCSTR lpAltDnsFQHostname, - ULONG ulFlags); -extern(Windows) export DWORD SetLocalPrimaryComputerNameW( - LPCWSTR lpAltDnsFQHostname, - ULONG ulFlags); -// #ifdef UNICODE -alias SetLocalPrimaryComputerNameW SetLocalPrimaryComputerName; -// #else -// #... -// #endif // !UNICODE - -alias int _COMPUTER_NAME_TYPE; -enum { - PrimaryComputerName, - AlternateComputerNames, - AllComputerNames, - ComputerNameTypeMax, -} -alias _COMPUTER_NAME_TYPE COMPUTER_NAME_TYPE; - -extern(Windows) export DWORD EnumerateLocalComputerNamesA( - COMPUTER_NAME_TYPE NameType, - ULONG ulFlags, - LPSTR lpDnsFQHostname, - LPDWORD nSize); -extern(Windows) export DWORD EnumerateLocalComputerNamesW( - COMPUTER_NAME_TYPE NameType, - ULONG ulFlags, - LPWSTR lpDnsFQHostname, - LPDWORD nSize); -// #ifdef UNICODE -alias EnumerateLocalComputerNamesW EnumerateLocalComputerNames; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL DnsHostnameToComputerNameA( - LPCSTR Hostname, - LPSTR ComputerName, - LPDWORD nSize); -extern(Windows) export BOOL DnsHostnameToComputerNameW( - LPCWSTR Hostname, - LPWSTR ComputerName, - LPDWORD nSize); -// #ifdef UNICODE -alias DnsHostnameToComputerNameW DnsHostnameToComputerName; -// #else -// #... -// #endif // !UNICODE - -// #endif // _WIN32_WINNT - -extern(Windows) export BOOL GetUserNameA( - LPSTR lpBuffer, - LPDWORD nSize); -extern(Windows) export BOOL GetUserNameW( - LPWSTR lpBuffer, - LPDWORD nSize); -// #ifdef UNICODE -alias GetUserNameW GetUserName; -// #else -// #... -// #endif // !UNICODE - -enum : uint { LOGON32_LOGON_INTERACTIVE = 2 } -enum : uint { LOGON32_LOGON_NETWORK = 3 } -enum : uint { LOGON32_LOGON_BATCH = 4 } -enum : uint { LOGON32_LOGON_SERVICE = 5 } -enum : uint { LOGON32_LOGON_UNLOCK = 7 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { LOGON32_LOGON_NETWORK_CLEARTEXT = 8 } -enum : uint { LOGON32_LOGON_NEW_CREDENTIALS = 9 } -// #endif // (_WIN32_WINNT >= 0x0500) - -enum : uint { LOGON32_PROVIDER_DEFAULT = 0 } -enum : uint { LOGON32_PROVIDER_WINNT35 = 1 } -// #if(_WIN32_WINNT >= 0x0400) -enum : uint { LOGON32_PROVIDER_WINNT40 = 2 } -// #endif /* _WIN32_WINNT >= 0x0400 */ -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { LOGON32_PROVIDER_WINNT50 = 3 } -// #endif // (_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL LogonUserA( - LPSTR lpszUsername, - LPSTR lpszDomain, - LPSTR lpszPassword, - DWORD dwLogonType, - DWORD dwLogonProvider, - PHANDLE phToken); -extern(Windows) export BOOL LogonUserW( - LPWSTR lpszUsername, - LPWSTR lpszDomain, - LPWSTR lpszPassword, - DWORD dwLogonType, - DWORD dwLogonProvider, - PHANDLE phToken); -// #ifdef UNICODE -alias LogonUserW LogonUser; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL LogonUserExA( - LPSTR lpszUsername, - LPSTR lpszDomain, - LPSTR lpszPassword, - DWORD dwLogonType, - DWORD dwLogonProvider, - PHANDLE phToken , - PSID *ppLogonSid , - PVOID *ppProfileBuffer , - LPDWORD pdwProfileLength , - PQUOTA_LIMITS pQuotaLimits ); -extern(Windows) export BOOL LogonUserExW( - LPWSTR lpszUsername, - LPWSTR lpszDomain, - LPWSTR lpszPassword, - DWORD dwLogonType, - DWORD dwLogonProvider, - PHANDLE phToken , - PSID *ppLogonSid , - PVOID *ppProfileBuffer , - LPDWORD pdwProfileLength , - PQUOTA_LIMITS pQuotaLimits ); -// #ifdef UNICODE -alias LogonUserExW LogonUserEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ImpersonateLoggedOnUser( - HANDLE hToken); - -extern(Windows) export BOOL CreateProcessAsUserA( - HANDLE hToken, - LPCSTR lpApplicationName, - LPSTR lpCommandLine, - LPSECURITY_ATTRIBUTES lpProcessAttributes, - LPSECURITY_ATTRIBUTES lpThreadAttributes, - BOOL bInheritHandles, - DWORD dwCreationFlags, - LPVOID lpEnvironment, - LPCSTR lpCurrentDirectory, - LPSTARTUPINFOA lpStartupInfo, - LPPROCESS_INFORMATION lpProcessInformation); -extern(Windows) export BOOL CreateProcessAsUserW( - HANDLE hToken, - LPCWSTR lpApplicationName, - LPWSTR lpCommandLine, - LPSECURITY_ATTRIBUTES lpProcessAttributes, - LPSECURITY_ATTRIBUTES lpThreadAttributes, - BOOL bInheritHandles, - DWORD dwCreationFlags, - LPVOID lpEnvironment, - LPCWSTR lpCurrentDirectory, - LPSTARTUPINFOW lpStartupInfo, - LPPROCESS_INFORMATION lpProcessInformation); -// #ifdef UNICODE -alias CreateProcessAsUserW CreateProcessAsUser; -// #else -// #... -// #endif // !UNICODE - -// #if(_WIN32_WINNT >= 0x0500) - -enum : uint { LOGON_WITH_PROFILE = 0x00000001 } -enum : uint { LOGON_NETCREDENTIALS_ONLY = 0x00000002 } - -extern(Windows) export BOOL CreateProcessWithLogonW( - LPCWSTR lpUsername, - LPCWSTR lpDomain, - LPCWSTR lpPassword, - DWORD dwLogonFlags, - LPCWSTR lpApplicationName, - LPWSTR lpCommandLine, - DWORD dwCreationFlags, - LPVOID lpEnvironment, - LPCWSTR lpCurrentDirectory, - LPSTARTUPINFOW lpStartupInfo, - LPPROCESS_INFORMATION lpProcessInformation); - -// #endif // (_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL ImpersonateAnonymousToken( - HANDLE ThreadHandle); - -extern(Windows) export BOOL DuplicateTokenEx( - HANDLE hExistingToken, - DWORD dwDesiredAccess, - LPSECURITY_ATTRIBUTES lpTokenAttributes, - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, - TOKEN_TYPE TokenType, - PHANDLE phNewToken); - -extern(Windows) export BOOL CreateRestrictedToken( - HANDLE ExistingTokenHandle, - DWORD Flags, - DWORD DisableSidCount, - PSID_AND_ATTRIBUTES SidsToDisable , - DWORD DeletePrivilegeCount, - PLUID_AND_ATTRIBUTES PrivilegesToDelete , - DWORD RestrictedSidCount, - PSID_AND_ATTRIBUTES SidsToRestrict , - PHANDLE NewTokenHandle); - -extern(Windows) export BOOL IsTokenRestricted( - HANDLE TokenHandle); - -extern(Windows) export BOOL IsTokenUntrusted( - HANDLE TokenHandle); - -extern(Windows) export BOOL CheckTokenMembership( - HANDLE TokenHandle , - PSID SidToCheck, - PBOOL IsMember); - -// #if (_WIN32_WINNT >= 0x0500) - -alias WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK; - -extern(Windows) export BOOL RegisterWaitForSingleObject( - PHANDLE phNewWaitObject, - HANDLE hObject, - WAITORTIMERCALLBACK Callback, - PVOID Context, - ULONG dwMilliseconds, - ULONG dwFlags); - -extern(Windows) export HANDLE RegisterWaitForSingleObjectEx( - HANDLE hObject, - WAITORTIMERCALLBACK Callback, - PVOID Context, - ULONG dwMilliseconds, - ULONG dwFlags); - -extern(Windows) export BOOL UnregisterWait( - HANDLE WaitHandle); - -extern(Windows) export BOOL UnregisterWaitEx( - HANDLE WaitHandle, - HANDLE CompletionEvent); - -extern(Windows) export BOOL QueueUserWorkItem( - LPTHREAD_START_ROUTINE Function, - PVOID Context, - ULONG Flags); - -extern(Windows) export BOOL BindIoCompletionCallback( - HANDLE FileHandle, - LPOVERLAPPED_COMPLETION_ROUTINE Function, - ULONG Flags); - -extern(Windows) export HANDLE CreateTimerQueue(); - -extern(Windows) export BOOL CreateTimerQueueTimer( - PHANDLE phNewTimer, - HANDLE TimerQueue, - WAITORTIMERCALLBACK Callback, - PVOID Parameter, - DWORD DueTime, - DWORD Period, - ULONG Flags); - -extern(Windows) export BOOL ChangeTimerQueueTimer( - HANDLE TimerQueue, - HANDLE Timer, - ULONG DueTime, - ULONG Period); - -extern(Windows) export BOOL DeleteTimerQueueTimer( - HANDLE TimerQueue, - HANDLE Timer, - HANDLE CompletionEvent); - -extern(Windows) export BOOL DeleteTimerQueueEx( - HANDLE TimerQueue, - HANDLE CompletionEvent); - -extern(Windows) export HANDLE SetTimerQueueTimer( - HANDLE TimerQueue, - WAITORTIMERCALLBACK Callback, - PVOID Parameter, - DWORD DueTime, - DWORD Period, - BOOL PreferIo); - -extern(Windows) export BOOL CancelTimerQueueTimer( - HANDLE TimerQueue, - HANDLE Timer); - -extern(Windows) export BOOL DeleteTimerQueue( - HANDLE TimerQueue); - -// #endif // _WIN32_WINNT - -// #if(_WIN32_WINNT >= 0x0400) - -enum : uint { HW_PROFILE_GUIDLEN = 39 } -enum : uint { MAX_PROFILE_LEN = 80 } - -enum : uint { DOCKINFO_UNDOCKED = 0x1 } -enum : uint { DOCKINFO_DOCKED = 0x2 } -enum : uint { DOCKINFO_USER_SUPPLIED = 0x4 } -enum : uint { DOCKINFO_USER_UNDOCKED = DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKED } -enum : uint { DOCKINFO_USER_DOCKED = DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED } - -struct tagHW_PROFILE_INFOA { - DWORD dwDockInfo; - CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN]; - CHAR szHwProfileName[MAX_PROFILE_LEN]; -} -alias tagHW_PROFILE_INFOA HW_PROFILE_INFOA; -alias tagHW_PROFILE_INFOA* LPHW_PROFILE_INFOA; - -struct tagHW_PROFILE_INFOW { - DWORD dwDockInfo; - WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN]; - WCHAR szHwProfileName[MAX_PROFILE_LEN]; -} -alias tagHW_PROFILE_INFOW HW_PROFILE_INFOW; -alias tagHW_PROFILE_INFOW* LPHW_PROFILE_INFOW; - -// #ifdef UNICODE -alias HW_PROFILE_INFOW HW_PROFILE_INFO; -alias LPHW_PROFILE_INFOW LPHW_PROFILE_INFO; -// #else -// ... -// #endif // UNICODE - -extern(Windows) export BOOL GetCurrentHwProfileA( - LPHW_PROFILE_INFOA lpHwProfileInfo); -extern(Windows) export BOOL GetCurrentHwProfileW( - LPHW_PROFILE_INFOW lpHwProfileInfo); -// #ifdef UNICODE -alias GetCurrentHwProfileW GetCurrentHwProfile; -// #else -// #... -// #endif // !UNICODE -// #endif /* _WIN32_WINNT >= 0x0400 */ - -extern(Windows) export BOOL QueryPerformanceCounter( - LARGE_INTEGER *lpPerformanceCount); - -extern(Windows) export BOOL QueryPerformanceFrequency( - LARGE_INTEGER *lpFrequency); - -extern(Windows) export BOOL GetVersionExA( - LPOSVERSIONINFOA lpVersionInformation); -extern(Windows) export BOOL GetVersionExW( - LPOSVERSIONINFOW lpVersionInformation); -// #ifdef UNICODE -alias GetVersionExW GetVersionEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL VerifyVersionInfoA( - LPOSVERSIONINFOEXA lpVersionInformation, - DWORD dwTypeMask, - DWORDLONG dwlConditionMask); -extern(Windows) export BOOL VerifyVersionInfoW( - LPOSVERSIONINFOEXW lpVersionInformation, - DWORD dwTypeMask, - DWORDLONG dwlConditionMask); -// #ifdef UNICODE -alias VerifyVersionInfoW VerifyVersionInfo; -// #else -// #... -// #endif // !UNICODE - -import win32.winerror; - -enum : uint { TC_NORMAL = 0 } -enum : uint { TC_HARDERR = 1 } -enum : uint { TC_GP_TRAP = 2 } -enum : uint { TC_SIGNAL = 3 } - -// #if(WINVER >= 0x0400) - -enum : uint { AC_LINE_OFFLINE = 0x00 } -enum : uint { AC_LINE_ONLINE = 0x01 } -enum : uint { AC_LINE_BACKUP_POWER = 0x02 } -enum : uint { AC_LINE_UNKNOWN = 0xFF } - -enum : uint { BATTERY_FLAG_HIGH = 0x01 } -enum : uint { BATTERY_FLAG_LOW = 0x02 } -enum : uint { BATTERY_FLAG_CRITICAL = 0x04 } -enum : uint { BATTERY_FLAG_CHARGING = 0x08 } -enum : uint { BATTERY_FLAG_NO_BATTERY = 0x80 } -enum : uint { BATTERY_FLAG_UNKNOWN = 0xFF } - -enum : uint { BATTERY_PERCENTAGE_UNKNOWN = 0xFF } - -enum : uint { BATTERY_LIFE_UNKNOWN = 0xFFFFFFFF } - -struct _SYSTEM_POWER_STATUS { - BYTE ACLineStatus; - BYTE BatteryFlag; - BYTE BatteryLifePercent; - BYTE Reserved1; - DWORD BatteryLifeTime; - DWORD BatteryFullLifeTime; -} -alias _SYSTEM_POWER_STATUS SYSTEM_POWER_STATUS; -alias _SYSTEM_POWER_STATUS* LPSYSTEM_POWER_STATUS; - -extern(Windows) export BOOL GetSystemPowerStatus( - LPSYSTEM_POWER_STATUS lpSystemPowerStatus); - -extern(Windows) export BOOL SetSystemPowerState( - BOOL fSuspend, - BOOL fForce); - -// #endif /* WINVER >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL AllocateUserPhysicalPages( - HANDLE hProcess, - PULONG_PTR NumberOfPages, - PULONG_PTR PageArray); - -extern(Windows) export BOOL FreeUserPhysicalPages( - HANDLE hProcess, - PULONG_PTR NumberOfPages, - PULONG_PTR PageArray); - -extern(Windows) export BOOL MapUserPhysicalPages( - PVOID VirtualAddress, - ULONG_PTR NumberOfPages, - PULONG_PTR PageArray ); - -extern(Windows) export BOOL MapUserPhysicalPagesScatter( - PVOID *VirtualAddresses, - ULONG_PTR NumberOfPages, - PULONG_PTR PageArray ); - -extern(Windows) export HANDLE CreateJobObjectA( - LPSECURITY_ATTRIBUTES lpJobAttributes, - LPCSTR lpName); -extern(Windows) export HANDLE CreateJobObjectW( - LPSECURITY_ATTRIBUTES lpJobAttributes, - LPCWSTR lpName); -// #ifdef UNICODE -alias CreateJobObjectW CreateJobObject; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HANDLE OpenJobObjectA( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCSTR lpName); -extern(Windows) export HANDLE OpenJobObjectW( - DWORD dwDesiredAccess, - BOOL bInheritHandle, - LPCWSTR lpName); -// #ifdef UNICODE -alias OpenJobObjectW OpenJobObject; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL AssignProcessToJobObject( - HANDLE hJob, - HANDLE hProcess); - -extern(Windows) export BOOL TerminateJobObject( - HANDLE hJob, - UINT uExitCode); - -extern(Windows) export BOOL QueryInformationJobObject( - HANDLE hJob, - JOBOBJECTINFOCLASS JobObjectInformationClass, - LPVOID lpJobObjectInformation, - DWORD cbJobObjectInformationLength, - LPDWORD lpReturnLength); - -extern(Windows) export BOOL SetInformationJobObject( - HANDLE hJob, - JOBOBJECTINFOCLASS JobObjectInformationClass, - LPVOID lpJobObjectInformation, - DWORD cbJobObjectInformationLength); - -extern(Windows) export BOOL IsProcessInJob( - HANDLE ProcessHandle, - HANDLE JobHandle, - PBOOL Result); - -extern(Windows) export BOOL CreateJobSet( - ULONG NumJob, - PJOB_SET_ARRAY UserJobSet, - ULONG Flags); - -extern(Windows) export PVOID AddVectoredExceptionHandler( - ULONG FirstHandler, - PVECTORED_EXCEPTION_HANDLER VectoredHandler); - -extern(Windows) export ULONG RemoveVectoredExceptionHandler( - PVOID VectoredHandlerHandle); - -extern(Windows) export HANDLE FindFirstVolumeA( - LPSTR lpszVolumeName, - DWORD cchBufferLength); -extern(Windows) export HANDLE FindFirstVolumeW( - LPWSTR lpszVolumeName, - DWORD cchBufferLength); -// #ifdef UNICODE -alias FindFirstVolumeW FindFirstVolume; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL FindNextVolumeA( - HANDLE hFindVolume, - LPSTR lpszVolumeName, - DWORD cchBufferLength); -extern(Windows) export BOOL FindNextVolumeW( - HANDLE hFindVolume, - LPWSTR lpszVolumeName, - DWORD cchBufferLength); -// #ifdef UNICODE -alias FindNextVolumeW FindNextVolume; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL FindVolumeClose( - HANDLE hFindVolume); - -extern(Windows) export HANDLE FindFirstVolumeMountPointA( - LPCSTR lpszRootPathName, - LPSTR lpszVolumeMountPoint, - DWORD cchBufferLength); -extern(Windows) export HANDLE FindFirstVolumeMountPointW( - LPCWSTR lpszRootPathName, - LPWSTR lpszVolumeMountPoint, - DWORD cchBufferLength); -// #ifdef UNICODE -alias FindFirstVolumeMountPointW FindFirstVolumeMountPoint; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL FindNextVolumeMountPointA( - HANDLE hFindVolumeMountPoint, - LPSTR lpszVolumeMountPoint, - DWORD cchBufferLength); -extern(Windows) export BOOL FindNextVolumeMountPointW( - HANDLE hFindVolumeMountPoint, - LPWSTR lpszVolumeMountPoint, - DWORD cchBufferLength); -// #ifdef UNICODE -alias FindNextVolumeMountPointW FindNextVolumeMountPoint; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL FindVolumeMountPointClose( - HANDLE hFindVolumeMountPoint); - -extern(Windows) export BOOL SetVolumeMountPointA( - LPCSTR lpszVolumeMountPoint, - LPCSTR lpszVolumeName); -extern(Windows) export BOOL SetVolumeMountPointW( - LPCWSTR lpszVolumeMountPoint, - LPCWSTR lpszVolumeName); -// #ifdef UNICODE -alias SetVolumeMountPointW SetVolumeMountPoint; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL DeleteVolumeMountPointA( - LPCSTR lpszVolumeMountPoint); -extern(Windows) export BOOL DeleteVolumeMountPointW( - LPCWSTR lpszVolumeMountPoint); -// #ifdef UNICODE -alias DeleteVolumeMountPointW DeleteVolumeMountPoint; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetVolumeNameForVolumeMountPointA( - LPCSTR lpszVolumeMountPoint, - LPSTR lpszVolumeName, - DWORD cchBufferLength); -extern(Windows) export BOOL GetVolumeNameForVolumeMountPointW( - LPCWSTR lpszVolumeMountPoint, - LPWSTR lpszVolumeName, - DWORD cchBufferLength); -// #ifdef UNICODE -alias GetVolumeNameForVolumeMountPointW GetVolumeNameForVolumeMountPoint; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetVolumePathNameA( - LPCSTR lpszFileName, - LPSTR lpszVolumePathName, - DWORD cchBufferLength); -extern(Windows) export BOOL GetVolumePathNameW( - LPCWSTR lpszFileName, - LPWSTR lpszVolumePathName, - DWORD cchBufferLength); -// #ifdef UNICODE -alias GetVolumePathNameW GetVolumePathName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetVolumePathNamesForVolumeNameA( - LPCSTR lpszVolumeName, - LPSTR lpszVolumePathNames, - DWORD cchBufferLength, - PDWORD lpcchReturnLength); -extern(Windows) export BOOL GetVolumePathNamesForVolumeNameW( - LPCWSTR lpszVolumeName, - LPWSTR lpszVolumePathNames, - DWORD cchBufferLength, - PDWORD lpcchReturnLength); -// #ifdef UNICODE -alias GetVolumePathNamesForVolumeNameW GetVolumePathNamesForVolumeName; -// #else -// #... -// #endif // !UNICODE - -// #endif - -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED - -enum : uint { ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID = 0x00000001 } -enum : uint { ACTCTX_FLAG_LANGID_VALID = 0x00000002 } -enum : uint { ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID = 0x00000004 } -enum : uint { ACTCTX_FLAG_RESOURCE_NAME_VALID = 0x00000008 } -enum : uint { ACTCTX_FLAG_SET_PROCESS_DEFAULT = 0x00000010 } -enum : uint { ACTCTX_FLAG_APPLICATION_NAME_VALID = 0x00000020 } -enum : uint { ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF = 0x00000040 } -enum : uint { ACTCTX_FLAG_HMODULE_VALID = 0x00000080 } - -struct tagACTCTXA { - ULONG cbSize; - DWORD dwFlags; - LPCSTR lpSource; - USHORT wProcessorArchitecture; - LANGID wLangId; - LPCSTR lpAssemblyDirectory; - LPCSTR lpResourceName; - LPCSTR lpApplicationName; - HMODULE hModule; -} -alias tagACTCTXA ACTCTXA; -alias tagACTCTXA* PACTCTXA; - -struct tagACTCTXW { - ULONG cbSize; - DWORD dwFlags; - LPCWSTR lpSource; - USHORT wProcessorArchitecture; - LANGID wLangId; - LPCWSTR lpAssemblyDirectory; - LPCWSTR lpResourceName; - LPCWSTR lpApplicationName; - HMODULE hModule; -} -alias tagACTCTXW ACTCTXW; -alias tagACTCTXW* PACTCTXW; - -// #ifdef UNICODE -// skip typedef ACTCTXW ACTCTX; -alias PACTCTXW PACTCTX; -// #else -// ... -// #endif // UNICODE - -alias ACTCTXA* PCACTCTXA; -alias ACTCTXW* PCACTCTXW; -// #ifdef UNICODE -// skip typedef ACTCTXW ACTCTX; -alias PCACTCTXW PCACTCTX; -// #else -// ... -// #endif // UNICODE - -// #endif - -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) - -extern(Windows) export HANDLE CreateActCtxA( - PCACTCTXA pActCtx); -extern(Windows) export HANDLE CreateActCtxW( - PCACTCTXW pActCtx); -// #ifdef UNICODE -alias CreateActCtxW CreateActCtx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export VOID AddRefActCtx( - HANDLE hActCtx); - -extern(Windows) export VOID ReleaseActCtx( - HANDLE hActCtx); - -extern(Windows) export BOOL ZombifyActCtx( - HANDLE hActCtx); - -extern(Windows) export BOOL ActivateActCtx( - HANDLE hActCtx, - ULONG_PTR *lpCookie); - -enum : uint { DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION = 0x00000001 } - -extern(Windows) export BOOL DeactivateActCtx( - DWORD dwFlags, - ULONG_PTR ulCookie); - -extern(Windows) export BOOL GetCurrentActCtx( - HANDLE *lphActCtx); - -// #endif - -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED - -struct tagACTCTX_SECTION_KEYED_DATA { - ULONG cbSize; - ULONG ulDataFormatVersion; - PVOID lpData; - ULONG ulLength; - PVOID lpSectionGlobalData; - ULONG ulSectionGlobalDataLength; - PVOID lpSectionBase; - ULONG ulSectionTotalLength; - HANDLE hActCtx; - ULONG ulAssemblyRosterIndex; -} -alias tagACTCTX_SECTION_KEYED_DATA ACTCTX_SECTION_KEYED_DATA; -alias tagACTCTX_SECTION_KEYED_DATA* PACTCTX_SECTION_KEYED_DATA; - -enum : uint { FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX = 0x00000001 } - -// #endif - -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) - -extern(Windows) export BOOL FindActCtxSectionStringA( - DWORD dwFlags, - GUID *lpExtensionGuid, - ULONG ulSectionId, - LPCSTR lpStringToFind, - PACTCTX_SECTION_KEYED_DATA ReturnedData); -extern(Windows) export BOOL FindActCtxSectionStringW( - DWORD dwFlags, - GUID *lpExtensionGuid, - ULONG ulSectionId, - LPCWSTR lpStringToFind, - PACTCTX_SECTION_KEYED_DATA ReturnedData); -// #ifdef UNICODE -alias FindActCtxSectionStringW FindActCtxSectionString; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL FindActCtxSectionGuid( - DWORD dwFlags, - GUID *lpExtensionGuid, - ULONG ulSectionId, - GUID *lpGuidToFind, - PACTCTX_SECTION_KEYED_DATA ReturnedData); - -// #endif - -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED - -// #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */ -// #if !defined(ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED) - -// ... - -// ... - -// #... - -// #endif // !defined(ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED) -// #endif - -enum : uint { QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX = 0x00000004 } -enum : uint { QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE = 0x00000008 } -enum : uint { QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS = 0x00000010 } -enum : uint { QUERY_ACTCTX_FLAG_NO_ADDREF = 0x80000000 } - -// #endif - -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) - -extern(Windows) export BOOL QueryActCtxW( - DWORD dwFlags, - HANDLE hActCtx, - PVOID pvSubInstance, - ULONG ulInfoClass, - PVOID pvBuffer, - SIZE_T cbBuffer , - SIZE_T *pcbWrittenOrRequired ); - -extern(Windows) alias BOOL function( DWORD dwFlags, HANDLE hActCtx, PVOID pvSubInstance, ULONG ulInfoClass, PVOID pvBuffer, SIZE_T cbBuffer , SIZE_T *pcbWrittenOrRequired ) PQUERYACTCTXW_FUNC; - -// #endif // (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) - -extern(Windows) export BOOL ProcessIdToSessionId( - DWORD dwProcessId, - DWORD *pSessionId); - -// #if _WIN32_WINNT >= 0x0501 - -extern(Windows) export DWORD WTSGetActiveConsoleSessionId(); - -extern(Windows) export BOOL IsWow64Process( - HANDLE hProcess, - PBOOL Wow64Process); - -// #endif // (_WIN32_WINNT >= 0x0501) - -extern(Windows) export BOOL GetNumaHighestNodeNumber( - PULONG HighestNodeNumber); - -extern(Windows) export BOOL GetNumaProcessorNode( - UCHAR Processor, - PUCHAR NodeNumber); - -extern(Windows) export BOOL GetNumaNodeProcessorMask( - UCHAR Node, - PULONGLONG ProcessorMask); - -extern(Windows) export BOOL GetNumaProcessorMap( - PSYSTEM_NUMA_INFORMATION Map, - ULONG Length, - PULONG ReturnedLength); - -extern(Windows) export BOOL GetNumaAvailableMemory( - PSYSTEM_NUMA_INFORMATION Memory, - ULONG Length, - PULONG ReturnedLength); - -extern(Windows) export BOOL GetNumaAvailableMemoryNode( - UCHAR Node, - PULONGLONG AvailableBytes); - -extern(Windows) export ULONGLONG NumaVirtualQueryNode( - ULONG NumberOfRanges, - PULONG_PTR RangeList, - PULONG_PTR VirtualPageAndNode, - SIZE_T MaximumOutputLength); - -// #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */ -// #if ISOLATION_AWARE_ENABLED -// #... -// #endif /* ISOLATION_AWARE_ENABLED */ -// #endif /* RC */ - -// #ifdef __cplusplus -// } -// #endif - -// #endif // _WINBASE_ - +/***********************************************************************\ +* winbase.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.10 * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.winbase; +pragma(lib, "kernel32.lib"); + +/** +Translation Notes: +The following macros are obsolete, and have no effect. + +LockSegment(w), MakeProcInstance(p, i), UnlockResource(h), UnlockSegment(w) +FreeModule(m), FreeProcInstance(p), GetFreeSpace(w), DefineHandleTable(w) +SetSwapAreaSize(w), LimitEmsPages(n), Yield() + +// The following Win16 functions are obselete in Win32. + + int _hread(HFILE, LPVOID, int); + int _hwrite(HFILE, LPCSTR, int); + HFILE _lclose(HFILE); + HFILE _lcreat(LPCSTR, int); + LONG _llseek(HFILE, LONG, int); + HFILE _lopen(LPCSTR, int); + UINT _lread(HFILE, LPVOID, UINT); + UINT _lwrite(HFILE, LPCSTR, UINT); + SIZE_T GlobalCompact(DWORD); + VOID GlobalFix(HGLOBAL); +* MSDN contradicts itself on GlobalFlags: +* "This function is provided only for compatibility with 16-bit versions of Windows." +* but also requires Windows 2000 or above + UINT GlobalFlags(HGLOBAL); + VOID GlobalUnfix(HGLOBAL); + BOOL GlobalUnWire(HGLOBAL); + PVOID GlobalWire(HGLOBAL); + SIZE_T LocalCompact(UINT); + UINT LocalFlags(HLOCAL); + SIZE_T LocalShrink(HLOCAL, UINT); + +// These are not required for DMD. + +//FIXME: +// #ifndef UNDER_CE + int WinMain(HINSTANCE, HINSTANCE, LPSTR, int); +#else + int WinMain(HINSTANCE, HINSTANCE, LPWSTR, int); +#endif +int wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int); + +*/ + +import win32.windef, win32.winver; +private import win32.basetyps, win32.w32api, win32.winnt; + +// FIXME: +alias void va_list; + + +/+ +//-------------------------------------- +// These functions are problematic + +version(UseNtoSKernel) {}else { + /* CAREFUL: These are exported from ntoskrnl.exe and declared in winddk.h + as __fastcall functions, but are exported from kernel32.dll as __stdcall */ + static if (_WIN32_WINNT >= 0x0501) { + VOID InitializeSListHead(PSLIST_HEADER); + } + LONG InterlockedCompareExchange(LPLONG, LONG, LONG); + // PVOID WINAPI InterlockedCompareExchangePointer(PVOID*, PVOID, PVOID); + (PVOID)InterlockedCompareExchange((LPLONG)(d) (PVOID)InterlockedCompareExchange((LPLONG)(d), (LONG)(e), (LONG)(c)) + LONG InterlockedDecrement(LPLONG); + LONG InterlockedExchange(LPLONG, LONG); + // PVOID WINAPI InterlockedExchangePointer(PVOID*, PVOID); + (PVOID)InterlockedExchange((LPLONG)((PVOID)InterlockedExchange((LPLONG)(t), (LONG)(v)) + LONG InterlockedExchangeAdd(LPLONG, LONG); + + static if (_WIN32_WINNT >= 0x0501) { + PSLIST_ENTRY InterlockedFlushSList(PSLIST_HEADER); + } + LONG InterlockedIncrement(LPLONG); + static if (_WIN32_WINNT >= 0x0501) { + PSLIST_ENTRY InterlockedPopEntrySList(PSLIST_HEADER); + PSLIST_ENTRY InterlockedPushEntrySList(PSLIST_HEADER, PSLIST_ENTRY); + } +} // #endif // __USE_NTOSKRNL__ +//-------------------------------------- ++/ + +// COMMPROP structure, used by GetCommProperties() +// ----------------------------------------------- + +// Communications provider type +enum : DWORD { + PST_UNSPECIFIED, + PST_RS232, + PST_PARALLELPORT, + PST_RS422, + PST_RS423, + PST_RS449, + PST_MODEM, // = 6 + PST_FAX = 0x0021, + PST_SCANNER = 0x0022, + PST_NETWORK_BRIDGE = 0x0100, + PST_LAT = 0x0101, + PST_TCPIP_TELNET = 0x0102, + PST_X25 = 0x0103 +} + +// Max baud rate +enum : DWORD { + BAUD_075 = 0x00000001, + BAUD_110 = 0x00000002, + BAUD_134_5 = 0x00000004, + BAUD_150 = 0x00000008, + BAUD_300 = 0x00000010, + BAUD_600 = 0x00000020, + BAUD_1200 = 0x00000040, + BAUD_1800 = 0x00000080, + BAUD_2400 = 0x00000100, + BAUD_4800 = 0x00000200, + BAUD_7200 = 0x00000400, + BAUD_9600 = 0x00000800, + BAUD_14400 = 0x00001000, + BAUD_19200 = 0x00002000, + BAUD_38400 = 0x00004000, + BAUD_56K = 0x00008000, + BAUD_128K = 0x00010000, + BAUD_115200 = 0x00020000, + BAUD_57600 = 0x00040000, + BAUD_USER = 0x10000000 +} + +// Comm capabilities +enum : DWORD { + PCF_DTRDSR = 0x0001, + PCF_RTSCTS = 0x0002, + PCF_RLSD = 0x0004, + PCF_PARITY_CHECK = 0x0008, + PCF_XONXOFF = 0x0010, + PCF_SETXCHAR = 0x0020, + PCF_TOTALTIMEOUTS = 0x0040, + PCF_INTTIMEOUTS = 0x0080, + PCF_SPECIALCHARS = 0x0100, + PCF_16BITMODE = 0x0200 +} + +enum : DWORD { + SP_PARITY = 1, + SP_BAUD = 2, + SP_DATABITS = 4, + SP_STOPBITS = 8, + SP_HANDSHAKING = 16, + SP_PARITY_CHECK = 32, + SP_RLSD = 64 +} + +enum : DWORD { + DATABITS_5 = 1, + DATABITS_6 = 2, + DATABITS_7 = 4, + DATABITS_8 = 8, + DATABITS_16 = 16, + DATABITS_16X = 32 +} + +enum : WORD { + STOPBITS_10 = 0x0001, + STOPBITS_15 = 0x0002, + STOPBITS_20 = 0x0004, + PARITY_NONE = 0x0100, + PARITY_ODD = 0x0200, + PARITY_EVEN = 0x0400, + PARITY_MARK = 0x0800, + PARITY_SPACE = 0x1000 +} + +// used by dwServiceMask +const SP_SERIALCOMM = 1; + +struct COMMPROP { + WORD wPacketLength; + WORD wPacketVersion; + DWORD dwServiceMask; + DWORD dwReserved1; + DWORD dwMaxTxQueue; + DWORD dwMaxRxQueue; + DWORD dwMaxBaud; + DWORD dwProvSubType; + DWORD dwProvCapabilities; + DWORD dwSettableParams; + DWORD dwSettableBaud; + WORD wSettableData; + WORD wSettableStopParity; + DWORD dwCurrentTxQueue; + DWORD dwCurrentRxQueue; + DWORD dwProvSpec1; + DWORD dwProvSpec2; + WCHAR _wcProvChar; + + WCHAR* wcProvChar() { return &_wcProvChar; } +} +alias COMMPROP* LPCOMMPROP; + +// ---------- + +// for DEBUG_EVENT +enum : DWORD { + EXCEPTION_DEBUG_EVENT = 1, + CREATE_THREAD_DEBUG_EVENT, + CREATE_PROCESS_DEBUG_EVENT, + EXIT_THREAD_DEBUG_EVENT, + EXIT_PROCESS_DEBUG_EVENT, + LOAD_DLL_DEBUG_EVENT, + UNLOAD_DLL_DEBUG_EVENT, + OUTPUT_DEBUG_STRING_EVENT, + RIP_EVENT +} + +const HFILE HFILE_ERROR = cast(HFILE) (-1); + +// for SetFilePointer() +enum : DWORD { + FILE_BEGIN = 0, + FILE_CURRENT = 1, + FILE_END = 2 +} +const DWORD INVALID_SET_FILE_POINTER = -1; + + +// for OpenFile() +deprecated enum : UINT { + OF_READ = 0, + OF_WRITE = 0x0001, + OF_READWRITE = 0x0002, + OF_SHARE_COMPAT = 0, + OF_SHARE_EXCLUSIVE = 0x0010, + OF_SHARE_DENY_WRITE = 0x0020, + OF_SHARE_DENY_READ = 0x0030, + OF_SHARE_DENY_NONE = 0x0040, + OF_PARSE = 0x0100, + OF_DELETE = 0x0200, + OF_VERIFY = 0x0400, + OF_CANCEL = 0x0800, + OF_CREATE = 0x1000, + OF_PROMPT = 0x2000, + OF_EXIST = 0x4000, + OF_REOPEN = 0x8000 +} + +enum : DWORD { + NMPWAIT_NOWAIT = 1, + NMPWAIT_WAIT_FOREVER = -1, + NMPWAIT_USE_DEFAULT_WAIT = 0 +} + +// for ClearCommError() +const DWORD + CE_RXOVER = 0x0001, + CE_OVERRUN = 0x0002, + CE_RXPARITY = 0x0004, + CE_FRAME = 0x0008, + CE_BREAK = 0x0010, + CE_TXFULL = 0x0100, + CE_PTO = 0x0200, + CE_IOE = 0x0400, + CE_DNS = 0x0800, + CE_OOP = 0x1000, + CE_MODE = 0x8000; + +// for CopyProgressRoutine callback. +enum : DWORD { + PROGRESS_CONTINUE = 0, + PROGRESS_CANCEL = 1, + PROGRESS_STOP = 2, + PROGRESS_QUIET = 3 +} + +enum : DWORD { + CALLBACK_CHUNK_FINISHED = 0, + CALLBACK_STREAM_SWITCH = 1 +} + +// CopyFileEx() +enum : DWORD { + COPY_FILE_FAIL_IF_EXISTS = 1, + COPY_FILE_RESTARTABLE = 2 +} + +enum : DWORD { + FILE_MAP_COPY = 1, + FILE_MAP_WRITE = 2, + FILE_MAP_READ = 4, + FILE_MAP_ALL_ACCESS = 0x000F001F +} + +enum : DWORD { + MUTEX_ALL_ACCESS = 0x001f0001, + MUTEX_MODIFY_STATE = 0x00000001, + SEMAPHORE_ALL_ACCESS = 0x001f0003, + SEMAPHORE_MODIFY_STATE = 0x00000002, + EVENT_ALL_ACCESS = 0x001f0003, + EVENT_MODIFY_STATE = 0x00000002 +} + +// CreateNamedPipe() +enum : DWORD { + PIPE_ACCESS_INBOUND = 1, + PIPE_ACCESS_OUTBOUND = 2, + PIPE_ACCESS_DUPLEX = 3 +} + +const DWORD + PIPE_TYPE_BYTE = 0, + PIPE_TYPE_MESSAGE = 4, + PIPE_READMODE_BYTE = 0, + PIPE_READMODE_MESSAGE = 2, + PIPE_WAIT = 0, + PIPE_NOWAIT = 1; + +// GetNamedPipeInfo() +const DWORD + PIPE_CLIENT_END = 0, + PIPE_SERVER_END = 1; + +const DWORD PIPE_UNLIMITED_INSTANCES = 255; + +// dwCreationFlags for CreateProcess() and CreateProcessAsUser() +enum : DWORD { + DEBUG_PROCESS = 0x00000001, + DEBUG_ONLY_THIS_PROCESS = 0x00000002, + CREATE_SUSPENDED = 0x00000004, + DETACHED_PROCESS = 0x00000008, + CREATE_NEW_CONSOLE = 0x00000010, + NORMAL_PRIORITY_CLASS = 0x00000020, + IDLE_PRIORITY_CLASS = 0x00000040, + HIGH_PRIORITY_CLASS = 0x00000080, + REALTIME_PRIORITY_CLASS = 0x00000100, + CREATE_NEW_PROCESS_GROUP = 0x00000200, + CREATE_UNICODE_ENVIRONMENT = 0x00000400, + CREATE_SEPARATE_WOW_VDM = 0x00000800, + CREATE_SHARED_WOW_VDM = 0x00001000, + CREATE_FORCEDOS = 0x00002000, + BELOW_NORMAL_PRIORITY_CLASS = 0x00004000, + ABOVE_NORMAL_PRIORITY_CLASS = 0x00008000, + CREATE_BREAKAWAY_FROM_JOB = 0x01000000, + CREATE_WITH_USERPROFILE = 0x02000000, + CREATE_DEFAULT_ERROR_MODE = 0x04000000, + CREATE_NO_WINDOW = 0x08000000, + PROFILE_USER = 0x10000000, + PROFILE_KERNEL = 0x20000000, + PROFILE_SERVER = 0x40000000 +} + +const DWORD CONSOLE_TEXTMODE_BUFFER = 1; + +// CreateFile() +enum : DWORD { + CREATE_NEW = 1, + CREATE_ALWAYS, + OPEN_EXISTING, + OPEN_ALWAYS, + TRUNCATE_EXISTING +} + +// CreateFile() +const DWORD + FILE_FLAG_WRITE_THROUGH = 0x80000000, + FILE_FLAG_OVERLAPPED = 0x40000000, + FILE_FLAG_NO_BUFFERING = 0x20000000, + FILE_FLAG_RANDOM_ACCESS = 0x10000000, + FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000, + FILE_FLAG_DELETE_ON_CLOSE = 0x04000000, + FILE_FLAG_BACKUP_SEMANTICS = 0x02000000, + FILE_FLAG_POSIX_SEMANTICS = 0x01000000, + FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000, + FILE_FLAG_OPEN_NO_RECALL = 0x00100000; + +static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { + const DWORD FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000; +} + +// for CreateFile() +const DWORD + SECURITY_ANONYMOUS = SECURITY_IMPERSONATION_LEVEL.SecurityAnonymous<<16, + SECURITY_IDENTIFICATION = SECURITY_IMPERSONATION_LEVEL.SecurityIdentification<<16, + SECURITY_IMPERSONATION = SECURITY_IMPERSONATION_LEVEL.SecurityImpersonation<<16, + SECURITY_DELEGATION = SECURITY_IMPERSONATION_LEVEL.SecurityDelegation<<16, + SECURITY_CONTEXT_TRACKING = 0x00040000, + SECURITY_EFFECTIVE_ONLY = 0x00080000, + SECURITY_SQOS_PRESENT = 0x00100000, + SECURITY_VALID_SQOS_FLAGS = 0x001F0000; + + +// Thread exit code +const DWORD STILL_ACTIVE = 0x103; + +/* ??? The only documentation of this seems to be about Windows CE and to + * state what _doesn't_ support it. + */ +const DWORD FIND_FIRST_EX_CASE_SENSITIVE = 1; + +// GetBinaryType() +enum : DWORD { + SCS_32BIT_BINARY = 0, + SCS_DOS_BINARY, + SCS_WOW_BINARY, + SCS_PIF_BINARY, + SCS_POSIX_BINARY, + SCS_OS216_BINARY +} + +const size_t + MAX_COMPUTERNAME_LENGTH = 15, + HW_PROFILE_GUIDLEN = 39, + MAX_PROFILE_LEN = 80; + +// HW_PROFILE_INFO +const DWORD + DOCKINFO_UNDOCKED = 1, + DOCKINFO_DOCKED = 2, + DOCKINFO_USER_SUPPLIED = 4, + DOCKINFO_USER_UNDOCKED = DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKED, + DOCKINFO_USER_DOCKED = DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED; + +// DriveType(), RealDriveType() +enum : int { + DRIVE_UNKNOWN = 0, + DRIVE_NO_ROOT_DIR, + DRIVE_REMOVABLE, + DRIVE_FIXED, + DRIVE_REMOTE, + DRIVE_CDROM, + DRIVE_RAMDISK +} + +// GetFileType() +enum : DWORD { + FILE_TYPE_UNKNOWN = 0, + FILE_TYPE_DISK, + FILE_TYPE_CHAR, + FILE_TYPE_PIPE, + FILE_TYPE_REMOTE = 0x8000 +} + +// Get/SetHandleInformation() +const DWORD + HANDLE_FLAG_INHERIT = 0x01, + HANDLE_FLAG_PROTECT_FROM_CLOSE = 0x02; + +enum : DWORD { + STD_INPUT_HANDLE = 0xFFFFFFF6, + STD_OUTPUT_HANDLE = 0xFFFFFFF5, + STD_ERROR_HANDLE = 0xFFFFFFF4 +} + +const HANDLE INVALID_HANDLE_VALUE = cast(HANDLE) (-1); + +enum : DWORD { + GET_TAPE_MEDIA_INFORMATION = 0, + GET_TAPE_DRIVE_INFORMATION = 1 +} + +enum : DWORD { + SET_TAPE_MEDIA_INFORMATION = 0, + SET_TAPE_DRIVE_INFORMATION = 1 +} + +// SetThreadPriority()/GetThreadPriority() +enum : int { + THREAD_PRIORITY_IDLE = -15, + THREAD_PRIORITY_LOWEST = -2, + THREAD_PRIORITY_BELOW_NORMAL = -1, + THREAD_PRIORITY_NORMAL = 0, + THREAD_PRIORITY_ABOVE_NORMAL = 1, + THREAD_PRIORITY_HIGHEST = 2, + THREAD_PRIORITY_TIME_CRITICAL = 15, + THREAD_PRIORITY_ERROR_RETURN = 2147483647 +} + +enum : DWORD { + TIME_ZONE_ID_UNKNOWN, + TIME_ZONE_ID_STANDARD, + TIME_ZONE_ID_DAYLIGHT, + TIME_ZONE_ID_INVALID = 0xFFFFFFFF +} + +const DWORD + FS_CASE_SENSITIVE = 1, + FS_CASE_IS_PRESERVED = 2, + FS_UNICODE_STORED_ON_DISK = 4, + FS_PERSISTENT_ACLS = 8, + FS_FILE_COMPRESSION = 16, + FS_VOL_IS_COMPRESSED = 32768; + +// Flags for GlobalAlloc +const UINT + GMEM_FIXED = 0, + GMEM_MOVEABLE = 0x0002, + GMEM_ZEROINIT = 0x0040, + GPTR = 0x0040, + GHND = 0x0042, + GMEM_MODIFY = 0x0080, // used only for GlobalRealloc + GMEM_VALID_FLAGS = 0x7F72; + +/+ // Obselete flags (Win16 only) + GMEM_NOCOMPACT=16; + GMEM_NODISCARD=32; + GMEM_DISCARDABLE=256; + GMEM_NOT_BANKED=4096; + GMEM_LOWER=4096; + GMEM_SHARE=8192; + GMEM_DDESHARE=8192; + + GMEM_LOCKCOUNT=255; + +// for GlobalFlags() + GMEM_DISCARDED = 16384; + GMEM_INVALID_HANDLE = 32768; + + GMEM_NOTIFY = 16384; ++/ + +const UINT + LMEM_FIXED = 0, + LMEM_MOVEABLE = 0x0002, + LMEM_NONZEROLPTR = 0, + NONZEROLPTR = 0, + LMEM_NONZEROLHND = 0x0002, + NONZEROLHND = 0x0002, + LMEM_DISCARDABLE = 0x0F00, + LMEM_NOCOMPACT = 0x0010, + LMEM_NODISCARD = 0x0020, + LMEM_ZEROINIT = 0x0040, + LPTR = 0x0040, + LHND = 0x0042, + LMEM_MODIFY = 0x0080, + LMEM_LOCKCOUNT = 0x00FF, + LMEM_DISCARDED = 0x4000, + LMEM_INVALID_HANDLE = 0x8000; + + + +// used in EXCEPTION_RECORD +enum : DWORD { + STATUS_WAIT_0 = 0, + STATUS_ABANDONED_WAIT_0 = 0x00000080, + STATUS_USER_APC = 0x000000C0, + STATUS_TIMEOUT = 0x00000102, + STATUS_PENDING = 0x00000103, + + STATUS_SEGMENT_NOTIFICATION = 0x40000005, + STATUS_GUARD_PAGE_VIOLATION = 0x80000001, + STATUS_DATATYPE_MISALIGNMENT = 0x80000002, + STATUS_BREAKPOINT = 0x80000003, + STATUS_SINGLE_STEP = 0x80000004, + + STATUS_ACCESS_VIOLATION = 0xC0000005, + STATUS_IN_PAGE_ERROR = 0xC0000006, + STATUS_INVALID_HANDLE = 0xC0000008, + + STATUS_NO_MEMORY = 0xC0000017, + STATUS_ILLEGAL_INSTRUCTION = 0xC000001D, + STATUS_NONCONTINUABLE_EXCEPTION = 0xC0000025, + STATUS_INVALID_DISPOSITION = 0xC0000026, + STATUS_ARRAY_BOUNDS_EXCEEDED = 0xC000008C, + STATUS_FLOAT_DENORMAL_OPERAND = 0xC000008D, + STATUS_FLOAT_DIVIDE_BY_ZERO = 0xC000008E, + STATUS_FLOAT_INEXACT_RESULT = 0xC000008F, + STATUS_FLOAT_INVALID_OPERATION = 0xC0000090, + STATUS_FLOAT_OVERFLOW = 0xC0000091, + STATUS_FLOAT_STACK_CHECK = 0xC0000092, + STATUS_FLOAT_UNDERFLOW = 0xC0000093, + STATUS_INTEGER_DIVIDE_BY_ZERO = 0xC0000094, + STATUS_INTEGER_OVERFLOW = 0xC0000095, + STATUS_PRIVILEGED_INSTRUCTION = 0xC0000096, + STATUS_STACK_OVERFLOW = 0xC00000FD, + STATUS_CONTROL_C_EXIT = 0xC000013A, + STATUS_DLL_INIT_FAILED = 0xC0000142, + STATUS_DLL_INIT_FAILED_LOGOFF = 0xC000026B, + + CONTROL_C_EXIT = STATUS_CONTROL_C_EXIT, + + EXCEPTION_ACCESS_VIOLATION = STATUS_ACCESS_VIOLATION, + EXCEPTION_DATATYPE_MISALIGNMENT = STATUS_DATATYPE_MISALIGNMENT, + EXCEPTION_BREAKPOINT = STATUS_BREAKPOINT, + EXCEPTION_SINGLE_STEP = STATUS_SINGLE_STEP, + EXCEPTION_ARRAY_BOUNDS_EXCEEDED = STATUS_ARRAY_BOUNDS_EXCEEDED, + EXCEPTION_FLT_DENORMAL_OPERAND = STATUS_FLOAT_DENORMAL_OPERAND, + EXCEPTION_FLT_DIVIDE_BY_ZERO = STATUS_FLOAT_DIVIDE_BY_ZERO, + EXCEPTION_FLT_INEXACT_RESULT = STATUS_FLOAT_INEXACT_RESULT, + EXCEPTION_FLT_INVALID_OPERATION = STATUS_FLOAT_INVALID_OPERATION, + EXCEPTION_FLT_OVERFLOW = STATUS_FLOAT_OVERFLOW, + EXCEPTION_FLT_STACK_CHECK = STATUS_FLOAT_STACK_CHECK, + EXCEPTION_FLT_UNDERFLOW = STATUS_FLOAT_UNDERFLOW, + EXCEPTION_INT_DIVIDE_BY_ZERO = STATUS_INTEGER_DIVIDE_BY_ZERO, + EXCEPTION_INT_OVERFLOW = STATUS_INTEGER_OVERFLOW, + EXCEPTION_PRIV_INSTRUCTION = STATUS_PRIVILEGED_INSTRUCTION, + EXCEPTION_IN_PAGE_ERROR = STATUS_IN_PAGE_ERROR, + EXCEPTION_ILLEGAL_INSTRUCTION = STATUS_ILLEGAL_INSTRUCTION, + EXCEPTION_NONCONTINUABLE_EXCEPTION = STATUS_NONCONTINUABLE_EXCEPTION, + EXCEPTION_STACK_OVERFLOW = STATUS_STACK_OVERFLOW, + EXCEPTION_INVALID_DISPOSITION = STATUS_INVALID_DISPOSITION, + EXCEPTION_GUARD_PAGE = STATUS_GUARD_PAGE_VIOLATION, + EXCEPTION_INVALID_HANDLE = STATUS_INVALID_HANDLE +} + +// for PROCESS_HEAP_ENTRY +const WORD + PROCESS_HEAP_REGION = 1, + PROCESS_HEAP_UNCOMMITTED_RANGE = 2, + PROCESS_HEAP_ENTRY_BUSY = 4, + PROCESS_HEAP_ENTRY_MOVEABLE = 16, + PROCESS_HEAP_ENTRY_DDESHARE = 32; + +// for LoadLibraryEx() +const DWORD + DONT_RESOLVE_DLL_REFERENCES = 0x01, // not for WinME and earlier + LOAD_LIBRARY_AS_DATAFILE = 0x02, + LOAD_WITH_ALTERED_SEARCH_PATH = 0x08, + LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x10; // only for XP and later + +// for LockFile() +const DWORD + LOCKFILE_FAIL_IMMEDIATELY = 1, + LOCKFILE_EXCLUSIVE_LOCK = 2; + +const MAXIMUM_WAIT_OBJECTS = 64; +const MAXIMUM_SUSPEND_COUNT = 0x7F; + +const WAIT_OBJECT_0 = 0; +const WAIT_ABANDONED_0 = 128; + +//const WAIT_TIMEOUT=258; // also in winerror.h + +enum : DWORD { + WAIT_IO_COMPLETION = 0x000000C0, + WAIT_ABANDONED = 0x00000080, + WAIT_FAILED = 0xFFFFFFFF +} + +// PurgeComm() +const DWORD + PURGE_TXABORT = 1, + PURGE_RXABORT = 2, + PURGE_TXCLEAR = 4, + PURGE_RXCLEAR = 8; + +// ReadEventLog() +const DWORD + EVENTLOG_SEQUENTIAL_READ = 1, + EVENTLOG_SEEK_READ = 2, + EVENTLOG_FORWARDS_READ = 4, + EVENTLOG_BACKWARDS_READ = 8; + +// ReportEvent() +enum : WORD { + EVENTLOG_SUCCESS = 0, + EVENTLOG_ERROR_TYPE = 1, + EVENTLOG_WARNING_TYPE = 2, + EVENTLOG_INFORMATION_TYPE = 4, + EVENTLOG_AUDIT_SUCCESS = 8, + EVENTLOG_AUDIT_FAILURE = 16 +} + +// FormatMessage() +const DWORD + FORMAT_MESSAGE_ALLOCATE_BUFFER = 0x0100, + FORMAT_MESSAGE_IGNORE_INSERTS = 0x0200, + FORMAT_MESSAGE_FROM_STRING = 0x0400, + FORMAT_MESSAGE_FROM_HMODULE = 0x0800, + FORMAT_MESSAGE_FROM_SYSTEM = 0x1000, + FORMAT_MESSAGE_ARGUMENT_ARRAY = 0x2000; + +const DWORD FORMAT_MESSAGE_MAX_WIDTH_MASK = 255; + +// also in ddk/ntapi.h +// To restore default error mode, call SetErrorMode(0) +enum { + SEM_FAILCRITICALERRORS = 0x0001, + SEM_NOGPFAULTERRORBOX = 0x0002, + SEM_NOALIGNMENTFAULTEXCEPT = 0x0004, + SEM_NOOPENFILEERRORBOX = 0x8000 +} +// end ntapi.h + +enum { + SLE_ERROR = 1, + SLE_MINORERROR, + SLE_WARNING +} + +const SHUTDOWN_NORETRY = 1; + +// Return type for exception filters. +enum : LONG { + EXCEPTION_EXECUTE_HANDLER = 1, + EXCEPTION_CONTINUE_EXECUTION = -1, + EXCEPTION_CONTINUE_SEARCH = 0 +} + +enum : ATOM { + MAXINTATOM = 0xC000, + INVALID_ATOM = 0 +} + +const IGNORE = 0; +const INFINITE = 0xFFFFFFFF; + +// EscapeCommFunction() +enum { + SETXOFF = 1, + SETXON, + SETRTS, + CLRRTS, + SETDTR, + CLRDTR, // = 6 + SETBREAK = 8, + CLRBREAK = 9 +} + + +// for SetCommMask() +const DWORD + EV_RXCHAR = 0x0001, + EV_RXFLAG = 0x0002, + EV_TXEMPTY = 0x0004, + EV_CTS = 0x0008, + EV_DSR = 0x0010, + EV_RLSD = 0x0020, + EV_BREAK = 0x0040, + EV_ERR = 0x0080, + EV_RING = 0x0100, + EV_PERR = 0x0200, + EV_RX80FULL = 0x0400, + EV_EVENT1 = 0x0800, + EV_EVENT2 = 0x1000; + +// GetCommModemStatus() +const DWORD + MS_CTS_ON = 0x0010, + MS_DSR_ON = 0x0020, + MS_RING_ON = 0x0040, + MS_RLSD_ON = 0x0080; + + +// DCB +enum : BYTE { + NOPARITY = 0, + ODDPARITY, + EVENPARITY, + MARKPARITY, + SPACEPARITY +} +// DCB +enum : BYTE { + ONESTOPBIT = 0, + ONE5STOPBITS, + TWOSTOPBITS +} +// DCB +enum : DWORD { + CBR_110 = 110, + CBR_300 = 300, + CBR_600 = 600, + CBR_1200 = 1200, + CBR_2400 = 2400, + CBR_4800 = 4800, + CBR_9600 = 9600, + CBR_14400 = 14400, + CBR_19200 = 19200, + CBR_38400 = 38400, + CBR_56000 = 56000, + CBR_57600 = 57600, + CBR_115200 = 115200, + CBR_128000 = 128000, + CBR_256000 = 256000 +} +// DCB, 2-bit bitfield +enum { + DTR_CONTROL_DISABLE = 0, + DTR_CONTROL_ENABLE, + DTR_CONTROL_HANDSHAKE +} + +// DCB, 2-bit bitfield +enum { + RTS_CONTROL_DISABLE = 0, + RTS_CONTROL_ENABLE, + RTS_CONTROL_HANDSHAKE, + RTS_CONTROL_TOGGLE, +} + +// WIN32_STREAM_ID +enum : DWORD { + BACKUP_INVALID = 0, + BACKUP_DATA, + BACKUP_EA_DATA, + BACKUP_SECURITY_DATA, + BACKUP_ALTERNATE_DATA, + BACKUP_LINK, + BACKUP_PROPERTY_DATA, + BACKUP_OBJECT_ID, + BACKUP_REPARSE_DATA, + BACKUP_SPARSE_BLOCK +} + +// WIN32_STREAM_ID +enum : DWORD { + STREAM_NORMAL_ATTRIBUTE = 0, + STREAM_MODIFIED_WHEN_READ = 1, + STREAM_CONTAINS_SECURITY = 2, + STREAM_CONTAINS_PROPERTIES = 4 +} + +// STARTUPINFO +const DWORD + STARTF_USESHOWWINDOW = 0x0001, + STARTF_USESIZE = 0x0002, + STARTF_USEPOSITION = 0x0004, + STARTF_USECOUNTCHARS = 0x0008, + STARTF_USEFILLATTRIBUTE = 0x0010, + STARTF_RUNFULLSCREEN = 0x0020, + STARTF_FORCEONFEEDBACK = 0x0040, + STARTF_FORCEOFFFEEDBACK = 0x0080, + STARTF_USESTDHANDLES = 0x0100, + STARTF_USEHOTKEY = 0x0200; + +// ??? +enum { + TC_NORMAL = 0, + TC_HARDERR = 1, + TC_GP_TRAP = 2, + TC_SIGNAL = 3 +} + +/+ These seem to be Windows CE-specific +enum { + AC_LINE_OFFLINE = 0, + AC_LINE_ONLINE = 1, + AC_LINE_BACKUP_POWER = 2, + AC_LINE_UNKNOWN = 255 +} + +enum { + BATTERY_FLAG_HIGH = 1, + BATTERY_FLAG_LOW = 2, + BATTERY_FLAG_CRITICAL = 4, + BATTERY_FLAG_CHARGING = 8, + BATTERY_FLAG_NO_BATTERY = 128, + BATTERY_FLAG_UNKNOWN = 255, + BATTERY_PERCENTAGE_UNKNOWN = 255, + BATTERY_LIFE_UNKNOWN = 0xFFFFFFFF +} ++/ + +// ??? +const HINSTANCE_ERROR = 32; + +// returned from GetFileSize() +const DWORD INVALID_FILE_SIZE = 0xFFFFFFFF; + +const DWORD TLS_OUT_OF_INDEXES = 0xFFFFFFFF; + +// GetWriteWatch() +const DWORD WRITE_WATCH_FLAG_RESET = 1; + +static if (_WIN32_WINNT_ONLY) { + // for LogonUser() + enum : DWORD { + LOGON32_LOGON_INTERACTIVE = 2, + LOGON32_LOGON_NETWORK = 3, + LOGON32_LOGON_BATCH = 4, + LOGON32_LOGON_SERVICE = 5, + LOGON32_LOGON_UNLOCK = 7 + } + + // for LogonUser() + enum : DWORD { + LOGON32_PROVIDER_DEFAULT, + LOGON32_PROVIDER_WINNT35, + LOGON32_PROVIDER_WINNT40, + LOGON32_PROVIDER_WINNT50 + } + + // for MoveFileEx() + const DWORD + MOVEFILE_REPLACE_EXISTING = 1, + MOVEFILE_COPY_ALLOWED = 2, + MOVEFILE_DELAY_UNTIL_REBOOT = 4, + MOVEFILE_WRITE_THROUGH = 8; + + // DefineDosDevice() + const DWORD + DDD_RAW_TARGET_PATH = 1, + DDD_REMOVE_DEFINITION = 2, + DDD_EXACT_MATCH_ON_REMOVE = 4; + + static if (_WIN32_WINNT >= 0x500) { + enum : DWORD { + LOGON32_LOGON_NETWORK_CLEARTEXT = 8, + LOGON32_LOGON_NEW_CREDENTIALS = 9 + } + + // ReplaceFile() + const DWORD + REPLACEFILE_WRITE_THROUGH = 1, + REPLACEFILE_IGNORE_MERGE_ERRORS = 2; + } + + static if (_WIN32_WINNT >= 0x501) { + const DWORD + GET_MODULE_HANDLE_EX_FLAG_PIN = 1, + GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2, + GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 4; + + // for ACTCTX + const DWORD + ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID = 0x01, + ACTCTX_FLAG_LANGID_VALID = 0x02, + ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID = 0x04, + ACTCTX_FLAG_RESOURCE_NAME_VALID = 0x08, + ACTCTX_FLAG_SET_PROCESS_DEFAULT = 0x10, + ACTCTX_FLAG_APPLICATION_NAME_VALID = 0x20, + ACTCTX_FLAG_HMODULE_VALID = 0x80; + + // DeactivateActCtx() + const DWORD DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION = 1; + // FindActCtxSectionString() + const DWORD FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX = 1; + // QueryActCtxW() + const DWORD + QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX = 0x04, + QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE = 0x08, + QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS = 0x10; + + enum { + LOGON_WITH_PROFILE = 1, + LOGON_NETCREDENTIALS_ONLY + } + } +} + +// ---- + +struct FILETIME { + DWORD dwLowDateTime; + DWORD dwHighDateTime; +} +alias FILETIME* PFILETIME, LPFILETIME; + +struct BY_HANDLE_FILE_INFORMATION { + DWORD dwFileAttributes; + FILETIME ftCreationTime; + FILETIME ftLastAccessTime; + FILETIME ftLastWriteTime; + DWORD dwVolumeSerialNumber; + DWORD nFileSizeHigh; + DWORD nFileSizeLow; + DWORD nNumberOfLinks; + DWORD nFileIndexHigh; + DWORD nFileIndexLow; +} +alias BY_HANDLE_FILE_INFORMATION* LPBY_HANDLE_FILE_INFORMATION; + +struct DCB { + DWORD DCBlength = DCB.sizeof; + DWORD BaudRate; +/+ + DWORD fBinary:1; // Binary Mode (skip EOF check) + DWORD fParity:1; // Enable parity checking + DWORD fOutxCtsFlow:1; // CTS handshaking on output + DWORD fOutxDsrFlow:1; // DSR handshaking on output + DWORD fDtrControl:2; // DTR Flow control + DWORD fDsrSensitivity:1; // DSR Sensitivity + DWORD fTXContinueOnXoff:1; // Continue TX when Xoff sent + DWORD fOutX:1; // Enable output X-ON/X-OFF + DWORD fInX:1; // Enable input X-ON/X-OFF + DWORD fErrorChar:1; // Enable Err Replacement + DWORD fNull:1; // Enable Null stripping + DWORD fRtsControl:2; // Rts Flow control + DWORD fAbortOnError:1; // Abort all reads and writes on Error + DWORD fDummy2:17; // Reserved ++/ + uint _bf; + bool fBinary(bool f) { _bf = (_bf & ~0x0001) | f; return f; } + bool fParity(bool f) { _bf = (_bf & ~0x0002) | (f<<1); return f; } + bool fOutxCtsFlow(bool f) { _bf = (_bf & ~0x0004) | (f<<2); return f; } + bool fOutxDsrFlow(bool f) { _bf = (_bf & ~0x0008) | (f<<3); return f; } + byte fDtrControl(byte x) { _bf = (_bf & ~0x0030) | (x<<4); return cast(byte)(x & 3); } + bool fDsrSensitivity(bool f) { _bf = (_bf & ~0x0040) | (f<<6); return f; } + bool fTXContinueOnXoff(bool f) { _bf = (_bf & ~0x0080) | (f<<7); return f; } + bool fOutX(bool f) { _bf = (_bf & ~0x0100) | (f<<8); return f; } + bool fInX(bool f) { _bf = (_bf & ~0x0200) | (f<<9); return f; } + bool fErrorChar(bool f) { _bf = (_bf & ~0x0400) | (f<<10); return f; } + bool fNull(bool f) { _bf = (_bf & ~0x0800) | (f<<11); return f; } + byte fRtsControl(byte x) { _bf = (_bf & ~0x3000) | (x<<12); return cast(byte)(x & 3); } + bool fAbortOnError(bool f) { _bf = (_bf & ~0x4000) | (f<<14); return f; } + + bool fBinary() { return cast(bool) (_bf & 1); } + bool fParity() { return cast(bool) (_bf & 2); } + bool fOutxCtsFlow() { return cast(bool) (_bf & 4); } + bool fOutxDsrFlow() { return cast(bool) (_bf & 8); } + byte fDtrControl() { return cast(byte) ((_bf & (32+16))>>4); } + bool fDsrSensitivity() { return cast(bool) (_bf & 64); } + bool fTXContinueOnXoff() { return cast(bool) (_bf & 128); } + bool fOutX() { return cast(bool) (_bf & 256); } + bool fInX() { return cast(bool) (_bf & 512); } + bool fErrorChar() { return cast(bool) (_bf & 1024); } + bool fNull() { return cast(bool) (_bf & 2048); } + byte fRtsControl() { return cast(byte) ((_bf & (4096+8192))>>12); } + bool fAbortOnError() { return cast(bool) (_bf & 16384); } + + WORD wReserved; + WORD XonLim; + WORD XoffLim; + BYTE ByteSize; + BYTE Parity; + BYTE StopBits; + char XonChar; + char XoffChar; + char ErrorChar; + char EofChar; + char EvtChar; + WORD wReserved1; +} +alias DCB* LPDCB; + +struct COMMCONFIG { + DWORD dwSize = COMMCONFIG.sizeof; + WORD wVersion; + WORD wReserved; + DCB dcb; + DWORD dwProviderSubType; + DWORD dwProviderOffset; + DWORD dwProviderSize; + WCHAR _wcProviderData; + + WCHAR* wcProviderData() { return &_wcProviderData; } +} +alias COMMCONFIG* LPCOMMCONFIG; + +struct COMMTIMEOUTS { + DWORD ReadIntervalTimeout; + DWORD ReadTotalTimeoutMultiplier; + DWORD ReadTotalTimeoutConstant; + DWORD WriteTotalTimeoutMultiplier; + DWORD WriteTotalTimeoutConstant; +} +alias COMMTIMEOUTS* LPCOMMTIMEOUTS; + +struct COMSTAT { +/+ + DWORD fCtsHold:1; + DWORD fDsrHold:1; + DWORD fRlsdHold:1; + DWORD fXoffHold:1; + DWORD fXoffSent:1; + DWORD fEof:1; + DWORD fTxim:1; + DWORD fReserved:25; ++/ + DWORD _bf; + bool fCtsHold(bool f) { _bf = (_bf & ~1) | f; return f; } + bool fDsrHold(bool f) { _bf = (_bf & ~2) | (f<<1); return f; } + bool fRlsdHold(bool f) { _bf = (_bf & ~4) | (f<<2); return f; } + bool fXoffHold(bool f) { _bf = (_bf & ~8) | (f<<3); return f; } + bool fXoffSent(bool f) { _bf = (_bf & ~16) | (f<<4); return f; } + bool fEof(bool f) { _bf = (_bf & ~32) | (f<<5); return f; } + bool fTxim(bool f) { _bf = (_bf & ~64) | (f<<6); return f; } + + bool fCtsHold() { return cast(bool) (_bf & 1); } + bool fDsrHold() { return cast(bool) (_bf & 2); } + bool fRlsdHold() { return cast(bool) (_bf & 4); } + bool fXoffHold() { return cast(bool) (_bf & 8); } + bool fXoffSent() { return cast(bool) (_bf & 16); } + bool fEof() { return cast(bool) (_bf & 32); } + bool fTxim() { return cast(bool) (_bf & 64); } + + DWORD cbInQue; + DWORD cbOutQue; +} +alias COMSTAT* LPCOMSTAT; + +struct CREATE_PROCESS_DEBUG_INFO { + HANDLE hFile; + HANDLE hProcess; + HANDLE hThread; + LPVOID lpBaseOfImage; + DWORD dwDebugInfoFileOffset; + DWORD nDebugInfoSize; + LPVOID lpThreadLocalBase; + LPTHREAD_START_ROUTINE lpStartAddress; + LPVOID lpImageName; + WORD fUnicode; +} +alias CREATE_PROCESS_DEBUG_INFO* LPCREATE_PROCESS_DEBUG_INFO; + +struct CREATE_THREAD_DEBUG_INFO { + HANDLE hThread; + LPVOID lpThreadLocalBase; + LPTHREAD_START_ROUTINE lpStartAddress; +} +alias CREATE_THREAD_DEBUG_INFO* LPCREATE_THREAD_DEBUG_INFO; + +struct EXCEPTION_DEBUG_INFO { + EXCEPTION_RECORD ExceptionRecord; + DWORD dwFirstChance; +} +alias EXCEPTION_DEBUG_INFO* LPEXCEPTION_DEBUG_INFO; + +struct EXIT_THREAD_DEBUG_INFO { + DWORD dwExitCode; +} +alias EXIT_THREAD_DEBUG_INFO* LPEXIT_THREAD_DEBUG_INFO; + +struct EXIT_PROCESS_DEBUG_INFO { + DWORD dwExitCode; +} +alias EXIT_PROCESS_DEBUG_INFO* LPEXIT_PROCESS_DEBUG_INFO; + +struct LOAD_DLL_DEBUG_INFO { + HANDLE hFile; + LPVOID lpBaseOfDll; + DWORD dwDebugInfoFileOffset; + DWORD nDebugInfoSize; + LPVOID lpImageName; + WORD fUnicode; +} +alias LOAD_DLL_DEBUG_INFO* LPLOAD_DLL_DEBUG_INFO; + +struct UNLOAD_DLL_DEBUG_INFO { + LPVOID lpBaseOfDll; +} +alias UNLOAD_DLL_DEBUG_INFO* LPUNLOAD_DLL_DEBUG_INFO; + +struct OUTPUT_DEBUG_STRING_INFO { + LPSTR lpDebugStringData; + WORD fUnicode; + WORD nDebugStringLength; +} +alias OUTPUT_DEBUG_STRING_INFO* LPOUTPUT_DEBUG_STRING_INFO; + +struct RIP_INFO { + DWORD dwError; + DWORD dwType; +} +alias RIP_INFO* LPRIP_INFO; + +struct DEBUG_EVENT { + DWORD dwDebugEventCode; + DWORD dwProcessId; + DWORD dwThreadId; + union { + EXCEPTION_DEBUG_INFO Exception; + CREATE_THREAD_DEBUG_INFO CreateThread; + CREATE_PROCESS_DEBUG_INFO CreateProcessInfo; + EXIT_THREAD_DEBUG_INFO ExitThread; + EXIT_PROCESS_DEBUG_INFO ExitProcess; + LOAD_DLL_DEBUG_INFO LoadDll; + UNLOAD_DLL_DEBUG_INFO UnloadDll; + OUTPUT_DEBUG_STRING_INFO DebugString; + RIP_INFO RipInfo; + } +} +alias DEBUG_EVENT* LPDEBUG_EVENT; + +struct OVERLAPPED { + ULONG_PTR Internal; + ULONG_PTR InternalHigh; + union { + struct { + DWORD Offset; + DWORD OffsetHigh; + } + PVOID Pointer; + } + HANDLE hEvent; +} +alias OVERLAPPED* POVERLAPPED, LPOVERLAPPED; + +struct STARTUPINFOA { + DWORD cb = STARTUPINFOA.sizeof; + LPSTR lpReserved; + LPSTR lpDesktop; + LPSTR lpTitle; + DWORD dwX; + DWORD dwY; + DWORD dwXSize; + DWORD dwYSize; + DWORD dwXCountChars; + DWORD dwYCountChars; + DWORD dwFillAttribute; + DWORD dwFlags; + WORD wShowWindow; + WORD cbReserved2; + PBYTE lpReserved2; + HANDLE hStdInput; + HANDLE hStdOutput; + HANDLE hStdError; +} +alias STARTUPINFOA* LPSTARTUPINFOA; + +struct STARTUPINFOW { + DWORD cb = STARTUPINFOW.sizeof; + LPWSTR lpReserved; + LPWSTR lpDesktop; + LPWSTR lpTitle; + DWORD dwX; + DWORD dwY; + DWORD dwXSize; + DWORD dwYSize; + DWORD dwXCountChars; + DWORD dwYCountChars; + DWORD dwFillAttribute; + DWORD dwFlags; + WORD wShowWindow; + WORD cbReserved2; + PBYTE lpReserved2; + HANDLE hStdInput; + HANDLE hStdOutput; + HANDLE hStdError; +} +alias STARTUPINFOW* LPSTARTUPINFOW; + +struct PROCESS_INFORMATION { + HANDLE hProcess; + HANDLE hThread; + DWORD dwProcessId; + DWORD dwThreadId; +} +alias PROCESS_INFORMATION* PPROCESS_INFORMATION, LPPROCESS_INFORMATION; + +struct CRITICAL_SECTION_DEBUG { + WORD Type; + WORD CreatorBackTraceIndex; + CRITICAL_SECTION* CriticalSection; + LIST_ENTRY ProcessLocksList; + DWORD EntryCount; + DWORD ContentionCount; + DWORD[2] Spare; +} +alias CRITICAL_SECTION_DEBUG* PCRITICAL_SECTION_DEBUG; + +struct CRITICAL_SECTION { + PCRITICAL_SECTION_DEBUG DebugInfo; + LONG LockCount; + LONG RecursionCount; + HANDLE OwningThread; + HANDLE LockSemaphore; + DWORD SpinCount; +} +alias CRITICAL_SECTION* PCRITICAL_SECTION, LPCRITICAL_SECTION; + +struct SYSTEMTIME { + WORD wYear; + WORD wMonth; + WORD wDayOfWeek; + WORD wDay; + WORD wHour; + WORD wMinute; + WORD wSecond; + WORD wMilliseconds; +} +alias SYSTEMTIME* LPSYSTEMTIME; + +static if (_WIN32_WINDOWS >= 0x410) { + struct WIN32_FILE_ATTRIBUTE_DATA { + DWORD dwFileAttributes; + FILETIME ftCreationTime; + FILETIME ftLastAccessTime; + FILETIME ftLastWriteTime; + DWORD nFileSizeHigh; + DWORD nFileSizeLow; + } + alias WIN32_FILE_ATTRIBUTE_DATA* LPWIN32_FILE_ATTRIBUTE_DATA; +} + +struct WIN32_FIND_DATAA { + DWORD dwFileAttributes; + FILETIME ftCreationTime; + FILETIME ftLastAccessTime; + FILETIME ftLastWriteTime; + DWORD nFileSizeHigh; + DWORD nFileSizeLow; +// #ifdef _WIN32_WCE +// DWORD dwOID; +// #else + DWORD dwReserved0; + DWORD dwReserved1; +// #endif + CHAR[MAX_PATH] cFileName; +// #ifndef _WIN32_WCE + CHAR[14] cAlternateFileName; +// #endif +} +alias WIN32_FIND_DATAA* PWIN32_FIND_DATAA, LPWIN32_FIND_DATAA; + +struct WIN32_FIND_DATAW { + DWORD dwFileAttributes; + FILETIME ftCreationTime; + FILETIME ftLastAccessTime; + FILETIME ftLastWriteTime; + DWORD nFileSizeHigh; + DWORD nFileSizeLow; +// #ifdef _WIN32_WCE +// DWORD dwOID; +// #else + DWORD dwReserved0; + DWORD dwReserved1; +// #endif + WCHAR[MAX_PATH] cFileName; +// #ifndef _WIN32_WCE + WCHAR[14] cAlternateFileName; +// #endif +} +alias WIN32_FIND_DATAW* PWIN32_FIND_DATAW, LPWIN32_FIND_DATAW; + +static if (_WIN32_WINNT_ONLY) { + struct WIN32_STREAM_ID { + DWORD dwStreamId; + DWORD dwStreamAttributes; + LARGE_INTEGER Size; + DWORD dwStreamNameSize; + WCHAR _cStreamName; + + WCHAR* cStreamName() { return &_cStreamName; } + } + alias WIN32_STREAM_ID* LPWIN32_STREAM_ID; + + enum FINDEX_INFO_LEVELS { + FindExInfoStandard, + FindExInfoMaxInfoLevel + } + + enum FINDEX_SEARCH_OPS { + FindExSearchNameMatch, + FindExSearchLimitToDirectories, + FindExSearchLimitToDevices, + FindExSearchMaxSearchOp + } + + enum ACL_INFORMATION_CLASS { + AclRevisionInformation = 1, + AclSizeInformation + } + + struct HW_PROFILE_INFOA { + DWORD dwDockInfo; + CHAR[HW_PROFILE_GUIDLEN] szHwProfileGuid; + CHAR[MAX_PROFILE_LEN] szHwProfileName; + } + alias HW_PROFILE_INFOA* LPHW_PROFILE_INFOA; + + struct HW_PROFILE_INFOW { + DWORD dwDockInfo; + WCHAR[HW_PROFILE_GUIDLEN] szHwProfileGuid; + WCHAR[MAX_PROFILE_LEN] szHwProfileName; + } + alias HW_PROFILE_INFOW* LPHW_PROFILE_INFOW; +} + +/* ??? MSDN documents this only for Windows CE/Mobile, but it's used by + * GetFileAttributesEx, which is in desktop Windows. + */ +enum GET_FILEEX_INFO_LEVELS { + GetFileExInfoStandard, + GetFileExMaxInfoLevel +} + +struct SYSTEM_INFO { + union { + DWORD dwOemId; + struct { + WORD wProcessorArchitecture; + WORD wReserved; + } + } + DWORD dwPageSize; + PVOID lpMinimumApplicationAddress; + PVOID lpMaximumApplicationAddress; + DWORD dwActiveProcessorMask; + DWORD dwNumberOfProcessors; + DWORD dwProcessorType; + DWORD dwAllocationGranularity; + WORD wProcessorLevel; + WORD wProcessorRevision; +} +alias SYSTEM_INFO* LPSYSTEM_INFO; + +static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { + struct SYSTEM_POWER_STATUS { + BYTE ACLineStatus; + BYTE BatteryFlag; + BYTE BatteryLifePercent; + BYTE Reserved1; + DWORD BatteryLifeTime; + DWORD BatteryFullLifeTime; + } + alias SYSTEM_POWER_STATUS* LPSYSTEM_POWER_STATUS; +} + +struct TIME_ZONE_INFORMATION { + LONG Bias; + WCHAR[32] StandardName; + SYSTEMTIME StandardDate; + LONG StandardBias; + WCHAR[32] DaylightName; + SYSTEMTIME DaylightDate; + LONG DaylightBias; +} +alias TIME_ZONE_INFORMATION* LPTIME_ZONE_INFORMATION; + +// MSDN documents this, possibly erroneously, as Win2000+. +struct MEMORYSTATUS { + DWORD dwLength; + DWORD dwMemoryLoad; + DWORD dwTotalPhys; + DWORD dwAvailPhys; + DWORD dwTotalPageFile; + DWORD dwAvailPageFile; + DWORD dwTotalVirtual; + DWORD dwAvailVirtual; +} +alias MEMORYSTATUS* LPMEMORYSTATUS; + +static if (_WIN32_WINNT >= 0x500) { + struct MEMORYSTATUSEX { + DWORD dwLength; + DWORD dwMemoryLoad; + DWORDLONG ullTotalPhys; + DWORDLONG ullAvailPhys; + DWORDLONG ullTotalPageFile; + DWORDLONG ullAvailPageFile; + DWORDLONG ullTotalVirtual; + DWORDLONG ullAvailVirtual; + DWORDLONG ullAvailExtendedVirtual; + } + alias MEMORYSTATUSEX* LPMEMORYSTATUSEX; +} + +struct LDT_ENTRY { + WORD LimitLow; + WORD BaseLow; + struct { + BYTE BaseMid; + BYTE Flags1; + BYTE Flags2; + BYTE BaseHi; + + byte Type(byte f) { Flags1 = cast(BYTE) ((Flags1 & 0xE0) | f); return cast(byte)(f & 0x1F); } + byte Dpl(byte f) { Flags1 = cast(BYTE) ((Flags1 & 0x9F) | (f<<5)); return cast(byte)(f & 3); } + bool Pres(bool f) { Flags1 = cast(BYTE) ((Flags1 & 0x7F) | (f<<7)); return f; } + + byte LimitHi(byte f) { Flags2 = cast(BYTE) ((Flags2 & 0xF0) | (f&0x0F)); return cast(byte)(f & 0x0F); } + bool Sys(bool f) { Flags2 = cast(BYTE) ((Flags2 & 0xEF) | (f<<4)); return f; } + // Next bit is reserved + bool Default_Big(bool f) { Flags2 = cast(BYTE) ((Flags2 & 0xBF) | (f<<6)); return f; } + bool Granularity(bool f) { Flags2 = cast(BYTE) ((Flags2 & 0x7F) | (f<<7)); return f; } + + byte Type() { return cast(byte) (Flags1 & 0x1F); } + byte Dpl() { return cast(byte) ((Flags1 & 0x60)>>5); } + bool Pres() { return cast(bool) (Flags1 & 0x80); } + + byte LimitHi() { return cast(byte) (Flags2 & 0x0F); } + bool Sys() { return cast(bool) (Flags2 & 0x10); } + bool Default_Big() { return cast(bool) (Flags2 & 0x40); } + bool Granularity() { return cast(bool) (Flags2 & 0x80); } + } +/+ + union HighWord { + struct Bytes { + BYTE BaseMid; + BYTE Flags1; + BYTE Flags2; + BYTE BaseHi; + } + struct Bits { + DWORD BaseMid:8; + DWORD Type:5; + DWORD Dpl:2; + DWORD Pres:1; + DWORD LimitHi:4; + DWORD Sys:1; + DWORD Reserved_0:1; + DWORD Default_Big:1; + DWORD Granularity:1; + DWORD BaseHi:8; + } + } ++/ +} +alias LDT_ENTRY* PLDT_ENTRY, LPLDT_ENTRY; + +/* As with the other memory management functions and structures, MSDN's + * Windows version info shall be taken with a cup of salt. + */ +struct PROCESS_HEAP_ENTRY { + PVOID lpData; + DWORD cbData; + BYTE cbOverhead; + BYTE iRegionIndex; + WORD wFlags; + union { + struct Block { + HANDLE hMem; + DWORD[3] dwReserved; + } + struct Region { + DWORD dwCommittedSize; + DWORD dwUnCommittedSize; + LPVOID lpFirstBlock; + LPVOID lpLastBlock; + } + } +} +alias PROCESS_HEAP_ENTRY* LPPROCESS_HEAP_ENTRY; + +struct OFSTRUCT { + BYTE cBytes = OFSTRUCT.sizeof; + BYTE fFixedDisk; + WORD nErrCode; + WORD Reserved1; + WORD Reserved2; + CHAR[128] szPathName; // const OFS_MAXPATHNAME = 128; +} +alias OFSTRUCT* LPOFSTRUCT, POFSTRUCT; + +/* ??? MSDN documents this only for Windows CE, but it's used by + * ImageGetCertificateData, which is in desktop Windows. + */ +struct WIN_CERTIFICATE { + DWORD dwLength; + WORD wRevision; + WORD wCertificateType; + BYTE _bCertificate; + + BYTE* bCertificate() { return &_bCertificate; } +} +alias WIN_CERTIFICATE* LPWIN_CERTIFICATE; + +static if (_WIN32_WINNT >= 0x500) { + enum COMPUTER_NAME_FORMAT { + ComputerNameNetBIOS, + ComputerNameDnsHostname, + ComputerNameDnsDomain, + ComputerNameDnsFullyQualified, + ComputerNamePhysicalNetBIOS, + ComputerNamePhysicalDnsHostname, + ComputerNamePhysicalDnsDomain, + ComputerNamePhysicalDnsFullyQualified, + ComputerNameMax + } +} + +static if (_WIN32_WINNT >= 0x501) { + struct ACTCTXA { + ULONG cbSize = this.sizeof; + DWORD dwFlags; + LPCSTR lpSource; + USHORT wProcessorArchitecture; + LANGID wLangId; + LPCSTR lpAssemblyDirectory; + LPCSTR lpResourceName; + LPCSTR lpApplicationName; + HMODULE hModule; + } + alias ACTCTXA* PACTCTXA; + alias CPtr!(ACTCTXA) PCACTCTXA; + + struct ACTCTXW { + ULONG cbSize = this.sizeof; + DWORD dwFlags; + LPCWSTR lpSource; + USHORT wProcessorArchitecture; + LANGID wLangId; + LPCWSTR lpAssemblyDirectory; + LPCWSTR lpResourceName; + LPCWSTR lpApplicationName; + HMODULE hModule; + } + alias ACTCTXW* PACTCTXW; + alias CPtr!(ACTCTXW) PCACTCTXW; + + struct ACTCTX_SECTION_KEYED_DATA { + ULONG cbSize = this.sizeof; + ULONG ulDataFormatVersion; + PVOID lpData; + ULONG ulLength; + PVOID lpSectionGlobalData; + ULONG ulSectionGlobalDataLength; + PVOID lpSectionBase; + ULONG ulSectionTotalLength; + HANDLE hActCtx; + HANDLE ulAssemblyRosterIndex; + } + alias ACTCTX_SECTION_KEYED_DATA* PACTCTX_SECTION_KEYED_DATA; + alias CPtr!(ACTCTX_SECTION_KEYED_DATA) PCACTCTX_SECTION_KEYED_DATA; + + enum MEMORY_RESOURCE_NOTIFICATION_TYPE { + LowMemoryResourceNotification, + HighMemoryResourceNotification + } + +} // (_WIN32_WINNT >= 0x0501) + +static if (WINVER >= 0x410) { + /* apparently used only by SetThreadExecutionState (Win2000+) + * and DDK functions (version compatibility not established) + */ + alias DWORD EXECUTION_STATE; +} + +// Callbacks +extern (Windows) { + alias DWORD function(LPVOID) LPTHREAD_START_ROUTINE; + alias DWORD function(LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER, + DWORD, DWORD, HANDLE, HANDLE, LPVOID) LPPROGRESS_ROUTINE; + alias void function(PVOID) LPFIBER_START_ROUTINE; + + alias BOOL function(HMODULE, LPCSTR, LPCSTR, WORD, LONG) ENUMRESLANGPROCA; + alias BOOL function(HMODULE, LPCWSTR, LPCWSTR, WORD, LONG) ENUMRESLANGPROCW; + alias BOOL function(HMODULE, LPCSTR, LPSTR, LONG) ENUMRESNAMEPROCA; + alias BOOL function(HMODULE, LPCWSTR, LPWSTR, LONG) ENUMRESNAMEPROCW; + alias BOOL function(HMODULE, LPSTR, LONG) ENUMRESTYPEPROCA; + alias BOOL function(HMODULE, LPWSTR, LONG) ENUMRESTYPEPROCW; + alias void function(DWORD, DWORD, LPOVERLAPPED) LPOVERLAPPED_COMPLETION_ROUTINE; + alias LONG function(LPEXCEPTION_POINTERS) PTOP_LEVEL_EXCEPTION_FILTER; + alias PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER; + + alias void function(ULONG_PTR) PAPCFUNC; + alias void function(PVOID, DWORD, DWORD) PTIMERAPCROUTINE; + + static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { + alias void function(PVOID, BOOLEAN) WAITORTIMERCALLBACK; + } +} + +LPTSTR MAKEINTATOM(short i) { + return cast(LPTSTR) i; +} + +extern (Windows) { + ATOM AddAtomA(LPCSTR); + ATOM AddAtomW(LPCWSTR); + BOOL AreFileApisANSI(); + BOOL Beep(DWORD, DWORD); + HANDLE BeginUpdateResourceA(LPCSTR, BOOL); + HANDLE BeginUpdateResourceW(LPCWSTR, BOOL); + BOOL BuildCommDCBA(LPCSTR, LPDCB); + BOOL BuildCommDCBW(LPCWSTR, LPDCB); + BOOL BuildCommDCBAndTimeoutsA(LPCSTR, LPDCB, LPCOMMTIMEOUTS); + BOOL BuildCommDCBAndTimeoutsW(LPCWSTR, LPDCB, LPCOMMTIMEOUTS); + BOOL CallNamedPipeA(LPCSTR, PVOID, DWORD, PVOID, DWORD, PDWORD, DWORD); + BOOL CallNamedPipeW(LPCWSTR, PVOID, DWORD, PVOID, DWORD, PDWORD, DWORD); + BOOL CancelDeviceWakeupRequest(HANDLE); + BOOL CheckTokenMembership(HANDLE, PSID, PBOOL); + BOOL ClearCommBreak(HANDLE); + BOOL ClearCommError(HANDLE, PDWORD, LPCOMSTAT); + BOOL CloseHandle(HANDLE); + BOOL CommConfigDialogA(LPCSTR, HWND, LPCOMMCONFIG); + BOOL CommConfigDialogW(LPCWSTR, HWND, LPCOMMCONFIG); + LONG CompareFileTime(CPtr!(FILETIME), CPtr!(FILETIME)); + BOOL ContinueDebugEvent(DWORD, DWORD, DWORD); + BOOL CopyFileA(LPCSTR, LPCSTR, BOOL); + BOOL CopyFileW(LPCWSTR, LPCWSTR, BOOL); + BOOL CopyFileExA(LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD); + BOOL CopyFileExW(LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD); + + /+ FIXME + alias memmove RtlMoveMemory; + alias memcpy RtlCopyMemory; + + void RtlFillMemory(PVOID dest, SIZE_T len, BYTE fill) { + memset(dest, fill, len); + } + + void RtlZeroMemory(PVOID dest, SIZE_T len) { + RtlFillMemory(dest, len , 0); + } + + alias RtlMoveMemory MoveMemory; + alias RtlCopyMemory CopyMemory; + alias RtlFillMemory FillMemory; + alias RtlZeroMemory ZeroMemory; + +/ + BOOL CreateDirectoryA(LPCSTR, LPSECURITY_ATTRIBUTES); + BOOL CreateDirectoryW(LPCWSTR, LPSECURITY_ATTRIBUTES); + BOOL CreateDirectoryExA(LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES); + BOOL CreateDirectoryExW(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES); + HANDLE CreateEventA(LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCSTR); + HANDLE CreateEventW(LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCWSTR); + HANDLE CreateFileA(LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE); + HANDLE CreateFileW(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE); + HANDLE CreateIoCompletionPort(HANDLE, HANDLE, ULONG_PTR, DWORD); + HANDLE CreateMailslotA(LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES); + HANDLE CreateMailslotW(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES); + HANDLE CreateMutexA(LPSECURITY_ATTRIBUTES, BOOL, LPCSTR); + HANDLE CreateMutexW(LPSECURITY_ATTRIBUTES, BOOL, LPCWSTR); + BOOL CreatePipe(PHANDLE, PHANDLE, LPSECURITY_ATTRIBUTES, DWORD); + BOOL CreateProcessA(LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCSTR, LPSTARTUPINFOA, LPPROCESS_INFORMATION); + BOOL CreateProcessW(LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION); + HANDLE CreateSemaphoreA(LPSECURITY_ATTRIBUTES, LONG, LONG, LPCSTR); + HANDLE CreateSemaphoreW(LPSECURITY_ATTRIBUTES, LONG, LONG, LPCWSTR); + HANDLE CreateThread(LPSECURITY_ATTRIBUTES, DWORD, LPTHREAD_START_ROUTINE, PVOID, DWORD, PDWORD); + BOOL DebugActiveProcess(DWORD); + void DebugBreak(); + ATOM DeleteAtom(ATOM); + void DeleteCriticalSection(PCRITICAL_SECTION); + BOOL DeleteFileA(LPCSTR); + BOOL DeleteFileW(LPCWSTR); + BOOL DisableThreadLibraryCalls(HMODULE); + BOOL DosDateTimeToFileTime(WORD, WORD, LPFILETIME); + BOOL DuplicateHandle(HANDLE, HANDLE, HANDLE, PHANDLE, DWORD, BOOL, DWORD); + BOOL EndUpdateResourceA(HANDLE, BOOL); + BOOL EndUpdateResourceW(HANDLE, BOOL); + void EnterCriticalSection(LPCRITICAL_SECTION); + BOOL EnumResourceLanguagesA(HMODULE, LPCSTR, LPCSTR, ENUMRESLANGPROC, LONG_PTR); + BOOL EnumResourceLanguagesW(HMODULE, LPCWSTR, LPCWSTR, ENUMRESLANGPROC, LONG_PTR); + BOOL EnumResourceNamesA(HMODULE, LPCSTR, ENUMRESNAMEPROC, LONG_PTR); + BOOL EnumResourceNamesW(HMODULE, LPCWSTR, ENUMRESNAMEPROC, LONG_PTR); + BOOL EnumResourceTypesA(HMODULE, ENUMRESTYPEPROC, LONG_PTR); + BOOL EnumResourceTypesW(HMODULE, ENUMRESTYPEPROC, LONG_PTR); + BOOL EscapeCommFunction(HANDLE, DWORD); + void ExitProcess(UINT); // Never returns + void ExitThread(DWORD); // Never returns + DWORD ExpandEnvironmentStringsA(LPCSTR, LPSTR, DWORD); + DWORD ExpandEnvironmentStringsW(LPCWSTR, LPWSTR, DWORD); + void FatalAppExitA(UINT, LPCSTR); + void FatalAppExitW(UINT, LPCWSTR); + void FatalExit(int); + BOOL FileTimeToDosDateTime(CPtr!(FILETIME) , LPWORD, LPWORD); + BOOL FileTimeToLocalFileTime(CPtr!(FILETIME) , LPFILETIME); + BOOL FileTimeToSystemTime(CPtr!(FILETIME) , LPSYSTEMTIME); + ATOM FindAtomA(LPCSTR); + ATOM FindAtomW(LPCWSTR); + BOOL FindClose(HANDLE); + BOOL FindCloseChangeNotification(HANDLE); + HANDLE FindFirstChangeNotificationA(LPCSTR, BOOL, DWORD); + HANDLE FindFirstChangeNotificationW(LPCWSTR, BOOL, DWORD); + HANDLE FindFirstFileA(LPCSTR, LPWIN32_FIND_DATAA); + HANDLE FindFirstFileW(LPCWSTR, LPWIN32_FIND_DATAW); + BOOL FindNextChangeNotification(HANDLE); + BOOL FindNextFileA(HANDLE, LPWIN32_FIND_DATAA); + BOOL FindNextFileW(HANDLE, LPWIN32_FIND_DATAW); + HRSRC FindResourceA(HMODULE, LPCSTR, LPCSTR); + HRSRC FindResourceW(HINSTANCE, LPCWSTR, LPCWSTR); + HRSRC FindResourceExA(HINSTANCE, LPCSTR, LPCSTR, WORD); + HRSRC FindResourceExW(HINSTANCE, LPCWSTR, LPCWSTR, WORD); + BOOL FlushFileBuffers(HANDLE); + BOOL FlushInstructionCache(HANDLE, PCVOID, DWORD); + DWORD FormatMessageA(DWORD, PCVOID, DWORD, DWORD, LPSTR, DWORD, va_list*); + DWORD FormatMessageW(DWORD, PCVOID, DWORD, DWORD, LPWSTR, DWORD, va_list*); + BOOL FreeEnvironmentStringsA(LPSTR); + BOOL FreeEnvironmentStringsW(LPWSTR); + BOOL FreeLibrary(HMODULE); + void FreeLibraryAndExitThread(HMODULE, DWORD); // never returns + BOOL FreeResource(HGLOBAL); + UINT GetAtomNameA(ATOM, LPSTR, int); + UINT GetAtomNameW(ATOM, LPWSTR, int); + LPSTR GetCommandLineA(); + LPWSTR GetCommandLineW(); + BOOL GetCommConfig(HANDLE, LPCOMMCONFIG, PDWORD); + BOOL GetCommMask(HANDLE, PDWORD); + BOOL GetCommModemStatus(HANDLE, PDWORD); + BOOL GetCommProperties(HANDLE, LPCOMMPROP); + BOOL GetCommState(HANDLE, LPDCB); + BOOL GetCommTimeouts(HANDLE, LPCOMMTIMEOUTS); + BOOL GetComputerNameA(LPSTR, PDWORD); + BOOL GetComputerNameW(LPWSTR, PDWORD); + DWORD GetCurrentDirectoryA(DWORD, LPSTR); + DWORD GetCurrentDirectoryW(DWORD, LPWSTR); + HANDLE GetCurrentProcess(); + DWORD GetCurrentProcessId(); + HANDLE GetCurrentThread(); +/* In MinGW: +#ifdef _WIN32_WCE +extern DWORD GetCurrentThreadId(void); +#else +WINBASEAPI DWORD WINAPI GetCurrentThreadId(void); +#endif +*/ + DWORD GetCurrentThreadId(); + + alias GetTickCount GetCurrentTime; + + BOOL GetDefaultCommConfigA(LPCSTR, LPCOMMCONFIG, PDWORD); + BOOL GetDefaultCommConfigW(LPCWSTR, LPCOMMCONFIG, PDWORD); + BOOL GetDiskFreeSpaceA(LPCSTR, PDWORD, PDWORD, PDWORD, PDWORD); + BOOL GetDiskFreeSpaceW(LPCWSTR, PDWORD, PDWORD, PDWORD, PDWORD); + BOOL GetDiskFreeSpaceExA(LPCSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER); + BOOL GetDiskFreeSpaceExW(LPCWSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER); + UINT GetDriveTypeA(LPCSTR); + UINT GetDriveTypeW(LPCWSTR); + LPSTR GetEnvironmentStrings(); // ??? + LPSTR GetEnvironmentStringsA(); + LPWSTR GetEnvironmentStringsW(); + DWORD GetEnvironmentVariableA(LPCSTR, LPSTR, DWORD); + DWORD GetEnvironmentVariableW(LPCWSTR, LPWSTR, DWORD); + BOOL GetExitCodeProcess(HANDLE, PDWORD); + BOOL GetExitCodeThread(HANDLE, PDWORD); + DWORD GetFileAttributesA(LPCSTR); + DWORD GetFileAttributesW(LPCWSTR); + BOOL GetFileInformationByHandle(HANDLE, LPBY_HANDLE_FILE_INFORMATION); + DWORD GetFileSize(HANDLE, PDWORD); + BOOL GetFileTime(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME); + DWORD GetFileType(HANDLE); + DWORD GetFullPathNameA(LPCSTR, DWORD, LPSTR, LPSTR*); + DWORD GetFullPathNameW(LPCWSTR, DWORD, LPWSTR, LPWSTR*); + DWORD GetLastError(); + void GetLocalTime(LPSYSTEMTIME); + DWORD GetLogicalDrives(); + DWORD GetLogicalDriveStringsA(DWORD, LPSTR); + DWORD GetLogicalDriveStringsW(DWORD, LPWSTR); + BOOL GetMailslotInfo(HANDLE, PDWORD, PDWORD, PDWORD, PDWORD); + DWORD GetModuleFileNameA(HINSTANCE, LPSTR, DWORD); + DWORD GetModuleFileNameW(HINSTANCE, LPWSTR, DWORD); + HMODULE GetModuleHandleA(LPCSTR); + HMODULE GetModuleHandleW(LPCWSTR); + BOOL GetNamedPipeHandleStateA(HANDLE, PDWORD, PDWORD, PDWORD, PDWORD, LPSTR, DWORD); + BOOL GetNamedPipeHandleStateW(HANDLE, PDWORD, PDWORD, PDWORD, PDWORD, LPWSTR, DWORD); + BOOL GetNamedPipeInfo(HANDLE, PDWORD, PDWORD, PDWORD, PDWORD); + BOOL GetOverlappedResult(HANDLE, LPOVERLAPPED, PDWORD, BOOL); + DWORD GetPriorityClass(HANDLE); + UINT GetPrivateProfileIntA(LPCSTR, LPCSTR, INT, LPCSTR); + UINT GetPrivateProfileIntW(LPCWSTR, LPCWSTR, INT, LPCWSTR); + DWORD GetPrivateProfileSectionA(LPCSTR, LPSTR, DWORD, LPCSTR); + DWORD GetPrivateProfileSectionW(LPCWSTR, LPWSTR, DWORD, LPCWSTR); + DWORD GetPrivateProfileSectionNamesA(LPSTR, DWORD, LPCSTR); + DWORD GetPrivateProfileSectionNamesW(LPWSTR, DWORD, LPCWSTR); + DWORD GetPrivateProfileStringA(LPCSTR, LPCSTR, LPCSTR, LPSTR, DWORD, LPCSTR); + DWORD GetPrivateProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD, LPCWSTR); + BOOL GetPrivateProfileStructA(LPCSTR, LPCSTR, LPVOID, UINT, LPCSTR); + BOOL GetPrivateProfileStructW(LPCWSTR, LPCWSTR, LPVOID, UINT, LPCWSTR); + FARPROC GetProcAddress(HINSTANCE, LPCSTR); + BOOL GetProcessAffinityMask(HANDLE, PDWORD, PDWORD); + DWORD GetProcessVersion(DWORD); + UINT GetProfileIntA(LPCSTR, LPCSTR, INT); + UINT GetProfileIntW(LPCWSTR, LPCWSTR, INT); + DWORD GetProfileSectionA(LPCSTR, LPSTR, DWORD); + DWORD GetProfileSectionW(LPCWSTR, LPWSTR, DWORD); + DWORD GetProfileStringA(LPCSTR, LPCSTR, LPCSTR, LPSTR, DWORD); + DWORD GetProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD); + DWORD GetShortPathNameA(LPCSTR, LPSTR, DWORD); + DWORD GetShortPathNameW(LPCWSTR, LPWSTR, DWORD); + VOID GetStartupInfoA(LPSTARTUPINFOA); + VOID GetStartupInfoW(LPSTARTUPINFOW); + HANDLE GetStdHandle(DWORD); + UINT GetSystemDirectoryA(LPSTR, UINT); + UINT GetSystemDirectoryW(LPWSTR, UINT); + VOID GetSystemInfo(LPSYSTEM_INFO); + VOID GetSystemTime(LPSYSTEMTIME); + BOOL GetSystemTimeAdjustment(PDWORD, PDWORD, PBOOL); + void GetSystemTimeAsFileTime(LPFILETIME); + UINT GetTempFileNameA(LPCSTR, LPCSTR, UINT, LPSTR); + UINT GetTempFileNameW(LPCWSTR, LPCWSTR, UINT, LPWSTR); + DWORD GetTempPathA(DWORD, LPSTR); + DWORD GetTempPathW(DWORD, LPWSTR); + BOOL GetThreadContext(HANDLE, LPCONTEXT); + int GetThreadPriority(HANDLE); + BOOL GetThreadSelectorEntry(HANDLE, DWORD, LPLDT_ENTRY); + DWORD GetTickCount(); + DWORD GetTimeZoneInformation(LPTIME_ZONE_INFORMATION); + BOOL GetUserNameA (LPSTR, PDWORD); + BOOL GetUserNameW(LPWSTR, PDWORD); + DWORD GetVersion(); + BOOL GetVersionExA(LPOSVERSIONINFOA); + BOOL GetVersionExW(LPOSVERSIONINFOW); + BOOL GetVolumeInformationA(LPCSTR, LPSTR, DWORD, PDWORD, PDWORD, PDWORD, LPSTR, DWORD); + BOOL GetVolumeInformationW(LPCWSTR, LPWSTR, DWORD, PDWORD, PDWORD, PDWORD, LPWSTR, DWORD); + UINT GetWindowsDirectoryA(LPSTR, UINT); + UINT GetWindowsDirectoryW(LPWSTR, UINT); + DWORD GetWindowThreadProcessId(HWND, PDWORD); + ATOM GlobalAddAtomA(LPCSTR); + ATOM GlobalAddAtomW(LPCWSTR); + ATOM GlobalDeleteAtom(ATOM); + ATOM GlobalFindAtomA(LPCSTR); + ATOM GlobalFindAtomW(LPCWSTR); + UINT GlobalGetAtomNameA(ATOM, LPSTR, int); + UINT GlobalGetAtomNameW(ATOM, LPWSTR, int); + + bool HasOverlappedIoCompleted(LPOVERLAPPED lpOverlapped) { + return lpOverlapped.Internal != STATUS_PENDING; + } + + BOOL InitAtomTable(DWORD); + VOID InitializeCriticalSection(LPCRITICAL_SECTION); + /* ??? The next two are allegedly obsolete and "supported only for + * backward compatibility with the 16-bit Windows API". Yet the + * replacements IsBadReadPtr and IsBadWritePtr are apparently Win2000+ + * only. Where's the mistake? + */ + BOOL IsBadHugeReadPtr(PCVOID, UINT); + BOOL IsBadHugeWritePtr(PVOID, UINT); + BOOL IsBadReadPtr(PCVOID, UINT); + BOOL IsBadStringPtrA(LPCSTR, UINT); + BOOL IsBadStringPtrW(LPCWSTR, UINT); + BOOL IsBadWritePtr(PVOID, UINT); + void LeaveCriticalSection(LPCRITICAL_SECTION); + HINSTANCE LoadLibraryA(LPCSTR); + HINSTANCE LoadLibraryW(LPCWSTR); + HINSTANCE LoadLibraryExA(LPCSTR, HANDLE, DWORD); + HINSTANCE LoadLibraryExW(LPCWSTR, HANDLE, DWORD); + DWORD LoadModule(LPCSTR, PVOID); + HGLOBAL LoadResource(HINSTANCE, HRSRC); + BOOL LocalFileTimeToFileTime(CPtr!(FILETIME) , LPFILETIME); + BOOL LockFile(HANDLE, DWORD, DWORD, DWORD, DWORD); + PVOID LockResource(HGLOBAL); + + LPSTR lstrcatA(LPSTR, LPCSTR); + LPWSTR lstrcatW(LPWSTR, LPCWSTR); + int lstrcmpA(LPCSTR, LPCSTR); + int lstrcmpiA(LPCSTR, LPCSTR); + int lstrcmpiW(LPCWSTR, LPCWSTR); + int lstrcmpW(LPCWSTR, LPCWSTR); + LPSTR lstrcpyA(LPSTR, LPCSTR); + LPSTR lstrcpynA(LPSTR, LPCSTR, int); + LPWSTR lstrcpynW(LPWSTR, LPCWSTR, int); + LPWSTR lstrcpyW(LPWSTR, LPCWSTR); + int lstrlenA(LPCSTR); + int lstrlenW(LPCWSTR); + + BOOL MoveFileA(LPCSTR, LPCSTR); + BOOL MoveFileW(LPCWSTR, LPCWSTR); + int MulDiv(int, int, int); + HANDLE OpenEventA(DWORD, BOOL, LPCSTR); + HANDLE OpenEventW(DWORD, BOOL, LPCWSTR); + deprecated HFILE OpenFile(LPCSTR, LPOFSTRUCT, UINT); + HANDLE OpenMutexA(DWORD, BOOL, LPCSTR); + HANDLE OpenMutexW(DWORD, BOOL, LPCWSTR); + HANDLE OpenProcess(DWORD, BOOL, DWORD); + HANDLE OpenSemaphoreA(DWORD, BOOL, LPCSTR); + HANDLE OpenSemaphoreW(DWORD, BOOL, LPCWSTR); + void OutputDebugStringA(LPCSTR); + void OutputDebugStringW(LPCWSTR); + BOOL PeekNamedPipe(HANDLE, PVOID, DWORD, PDWORD, PDWORD, PDWORD); + BOOL PulseEvent(HANDLE); + BOOL PurgeComm(HANDLE, DWORD); + BOOL QueryPerformanceCounter(PLARGE_INTEGER); + BOOL QueryPerformanceFrequency(PLARGE_INTEGER); + DWORD QueueUserAPC(PAPCFUNC, HANDLE, ULONG_PTR); + void RaiseException(DWORD, DWORD, DWORD, CPtr!(DWORD)); + BOOL ReadFile(HANDLE, PVOID, DWORD, PDWORD, LPOVERLAPPED); + BOOL ReadFileEx(HANDLE, PVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE); + BOOL ReadProcessMemory(HANDLE, PCVOID, PVOID, DWORD, PDWORD); + BOOL ReleaseMutex(HANDLE); + BOOL ReleaseSemaphore(HANDLE, LONG, LPLONG); + BOOL RemoveDirectoryA(LPCSTR); + BOOL RemoveDirectoryW(LPCWSTR); +/* In MinGW: +#ifdef _WIN32_WCE +extern BOOL ResetEvent(HANDLE); +#else +WINBASEAPI BOOL WINAPI ResetEvent(HANDLE); +#endif +*/ + BOOL ResetEvent(HANDLE); + DWORD ResumeThread(HANDLE); + DWORD SearchPathA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPSTR, LPSTR*); + DWORD SearchPathW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPWSTR*); + BOOL SetCommBreak(HANDLE); + BOOL SetCommConfig(HANDLE, LPCOMMCONFIG, DWORD); + BOOL SetCommMask(HANDLE, DWORD); + BOOL SetCommState(HANDLE, LPDCB); + BOOL SetCommTimeouts(HANDLE, LPCOMMTIMEOUTS); + BOOL SetComputerNameA(LPCSTR); + BOOL SetComputerNameW(LPCWSTR); + BOOL SetCurrentDirectoryA(LPCSTR); + BOOL SetCurrentDirectoryW(LPCWSTR); + BOOL SetDefaultCommConfigA(LPCSTR, LPCOMMCONFIG, DWORD); + BOOL SetDefaultCommConfigW(LPCWSTR, LPCOMMCONFIG, DWORD); + BOOL SetEndOfFile(HANDLE); + BOOL SetEnvironmentVariableA(LPCSTR, LPCSTR); + BOOL SetEnvironmentVariableW(LPCWSTR, LPCWSTR); + UINT SetErrorMode(UINT); +/* In MinGW: +#ifdef _WIN32_WCE +extern BOOL SetEvent(HANDLE); +#else +WINBASEAPI BOOL WINAPI SetEvent(HANDLE); +#endif +*/ + BOOL SetEvent(HANDLE); + VOID SetFileApisToANSI(); + VOID SetFileApisToOEM(); + BOOL SetFileAttributesA(LPCSTR, DWORD); + BOOL SetFileAttributesW(LPCWSTR, DWORD); + DWORD SetFilePointer(HANDLE, LONG, PLONG, DWORD); + BOOL SetFileTime(HANDLE, CPtr!(FILETIME), CPtr!(FILETIME), CPtr!(FILETIME)); + deprecated UINT SetHandleCount(UINT); + void SetLastError(DWORD); + void SetLastErrorEx(DWORD, DWORD); + BOOL SetLocalTime(CPtr!(SYSTEMTIME)); + BOOL SetMailslotInfo(HANDLE, DWORD); + BOOL SetNamedPipeHandleState(HANDLE, PDWORD, PDWORD, PDWORD); + BOOL SetPriorityClass(HANDLE, DWORD); + BOOL SetStdHandle(DWORD, HANDLE); + BOOL SetSystemTime(CPtr!(SYSTEMTIME)); + DWORD SetThreadAffinityMask(HANDLE, DWORD); + BOOL SetThreadContext(HANDLE, CPtr!(CONTEXT)); + BOOL SetThreadPriority(HANDLE, int); + BOOL SetTimeZoneInformation(CPtr!(TIME_ZONE_INFORMATION)); + LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER); + BOOL SetupComm(HANDLE, DWORD, DWORD); + BOOL SetVolumeLabelA(LPCSTR, LPCSTR); + BOOL SetVolumeLabelW(LPCWSTR, LPCWSTR); + + DWORD SizeofResource(HINSTANCE, HRSRC); + void Sleep(DWORD); + DWORD SleepEx(DWORD, BOOL); + DWORD SuspendThread(HANDLE); + BOOL SystemTimeToFileTime(CPtr!(SYSTEMTIME), LPFILETIME); + BOOL TerminateProcess(HANDLE, UINT); + BOOL TerminateThread(HANDLE, DWORD); + DWORD TlsAlloc(); + BOOL TlsFree(DWORD); + PVOID TlsGetValue(DWORD); + BOOL TlsSetValue(DWORD, PVOID); + BOOL TransactNamedPipe(HANDLE, PVOID, DWORD, PVOID, DWORD, PDWORD, LPOVERLAPPED); + BOOL TransmitCommChar(HANDLE, char); + LONG UnhandledExceptionFilter(LPEXCEPTION_POINTERS); + BOOL UnlockFile(HANDLE, DWORD, DWORD, DWORD, DWORD); + BOOL WaitCommEvent(HANDLE, PDWORD, LPOVERLAPPED); + BOOL WaitForDebugEvent(LPDEBUG_EVENT, DWORD); + DWORD WaitForMultipleObjects(DWORD, CPtr!(HANDLE), BOOL, DWORD); + DWORD WaitForMultipleObjectsEx(DWORD, CPtr!(HANDLE), BOOL, DWORD, BOOL); + DWORD WaitForSingleObject(HANDLE, DWORD); + DWORD WaitForSingleObjectEx(HANDLE, DWORD, BOOL); + BOOL WaitNamedPipeA(LPCSTR, DWORD); + BOOL WaitNamedPipeW(LPCWSTR, DWORD); + // undocumented on MSDN + BOOL WinLoadTrustProvider(GUID*); + BOOL WriteFile(HANDLE, PCVOID, DWORD, PDWORD, LPOVERLAPPED); + BOOL WriteFileEx(HANDLE, PCVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE); + BOOL WritePrivateProfileSectionA(LPCSTR, LPCSTR, LPCSTR); + BOOL WritePrivateProfileSectionW(LPCWSTR, LPCWSTR, LPCWSTR); + BOOL WritePrivateProfileStringA(LPCSTR, LPCSTR, LPCSTR, LPCSTR); + BOOL WritePrivateProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR); + BOOL WritePrivateProfileStructA(LPCSTR, LPCSTR, LPVOID, UINT, LPCSTR); + BOOL WritePrivateProfileStructW(LPCWSTR, LPCWSTR, LPVOID, UINT, LPCWSTR); + BOOL WriteProcessMemory(HANDLE, LPVOID, LPCVOID, SIZE_T, SIZE_T*); + BOOL WriteProfileSectionA(LPCSTR, LPCSTR); + BOOL WriteProfileSectionW(LPCWSTR, LPCWSTR); + BOOL WriteProfileStringA(LPCSTR, LPCSTR, LPCSTR); + BOOL WriteProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR); + + /* Memory allocation functions. + * MSDN documents these erroneously as Win2000+; thus it is uncertain what + * version compatibility they really have. + */ + HGLOBAL GlobalAlloc(UINT, DWORD); + HGLOBAL GlobalDiscard(HGLOBAL); + HGLOBAL GlobalFree(HGLOBAL); + HGLOBAL GlobalHandle(PCVOID); + LPVOID GlobalLock(HGLOBAL); + VOID GlobalMemoryStatus(LPMEMORYSTATUS); + HGLOBAL GlobalReAlloc(HGLOBAL, DWORD, UINT); + DWORD GlobalSize(HGLOBAL); + BOOL GlobalUnlock(HGLOBAL); + PVOID HeapAlloc(HANDLE, DWORD, DWORD); + SIZE_T HeapCompact(HANDLE, DWORD); + HANDLE HeapCreate(DWORD, DWORD, DWORD); + BOOL HeapDestroy(HANDLE); + BOOL HeapFree(HANDLE, DWORD, PVOID); + BOOL HeapLock(HANDLE); + PVOID HeapReAlloc(HANDLE, DWORD, PVOID, DWORD); + DWORD HeapSize(HANDLE, DWORD, PCVOID); + BOOL HeapUnlock(HANDLE); + BOOL HeapValidate(HANDLE, DWORD, PCVOID); + BOOL HeapWalk(HANDLE, LPPROCESS_HEAP_ENTRY); + HLOCAL LocalAlloc(UINT, SIZE_T); + HLOCAL LocalDiscard(HLOCAL); + HLOCAL LocalFree(HLOCAL); + HLOCAL LocalHandle(LPCVOID); + PVOID LocalLock(HLOCAL); + HLOCAL LocalReAlloc(HLOCAL, SIZE_T, UINT); + UINT LocalSize(HLOCAL); + BOOL LocalUnlock(HLOCAL); + PVOID VirtualAlloc(PVOID, DWORD, DWORD, DWORD); + PVOID VirtualAllocEx(HANDLE, PVOID, DWORD, DWORD, DWORD); + BOOL VirtualFree(PVOID, DWORD, DWORD); + BOOL VirtualFreeEx(HANDLE, PVOID, DWORD, DWORD); + BOOL VirtualLock(PVOID, DWORD); + BOOL VirtualProtect(PVOID, DWORD, DWORD, PDWORD); + BOOL VirtualProtectEx(HANDLE, PVOID, DWORD, DWORD, PDWORD); + DWORD VirtualQuery(LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD); + DWORD VirtualQueryEx(HANDLE, LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD); + BOOL VirtualUnlock(PVOID, DWORD); + + static if (_WIN32_WINDOWS >= 0x600) { + BOOL CancelIoEx(HANDLE, LPOVERLAPPED); + } + + static if (_WIN32_WINDOWS >= 0x410) { + BOOL CancelIo(HANDLE); + BOOL CancelWaitableTimer(HANDLE); + PVOID ConvertThreadToFiber(PVOID); + LPVOID CreateFiber(SIZE_T, LPFIBER_START_ROUTINE, LPVOID); + HANDLE CreateWaitableTimerA(LPSECURITY_ATTRIBUTES, BOOL, LPCSTR); + HANDLE CreateWaitableTimerW(LPSECURITY_ATTRIBUTES, BOOL, LPCWSTR); + void DeleteFiber(PVOID); + BOOL GetFileAttributesExA(LPCSTR, GET_FILEEX_INFO_LEVELS, PVOID); + BOOL GetFileAttributesExW(LPCWSTR, GET_FILEEX_INFO_LEVELS, PVOID); + DWORD GetLongPathNameA(LPCSTR, LPSTR, DWORD); + DWORD GetLongPathNameW(LPCWSTR, LPWSTR, DWORD); + BOOL InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION, DWORD); + BOOL IsDebuggerPresent(); + HANDLE OpenWaitableTimerA(DWORD, BOOL, LPCSTR); + HANDLE OpenWaitableTimerW(DWORD, BOOL, LPCWSTR); + DWORD QueryDosDeviceA(LPCSTR, LPSTR, DWORD); + DWORD QueryDosDeviceW(LPCWSTR, LPWSTR, DWORD); + BOOL SetWaitableTimer(HANDLE, CPtr!(LARGE_INTEGER), LONG, PTIMERAPCROUTINE, PVOID, BOOL); + void SwitchToFiber(PVOID); + } + + static if (WINVER >= 0x500) { + HANDLE OpenThread(DWORD, BOOL, DWORD); + } + + static if (_WIN32_WINNT_ONLY) { + BOOL AccessCheck(PSECURITY_DESCRIPTOR, HANDLE, DWORD, PGENERIC_MAPPING, PPRIVILEGE_SET, PDWORD, PDWORD, PBOOL); + BOOL AccessCheckAndAuditAlarmA(LPCSTR, LPVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING, BOOL, PDWORD, PBOOL, PBOOL); + BOOL AccessCheckAndAuditAlarmW(LPCWSTR, LPVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING, BOOL, PDWORD, PBOOL, PBOOL); + BOOL AddAccessAllowedAce(PACL, DWORD, DWORD, PSID); + BOOL AddAccessDeniedAce(PACL, DWORD, DWORD, PSID); + BOOL AddAce(PACL, DWORD, DWORD, PVOID, DWORD); + BOOL AddAuditAccessAce(PACL, DWORD, DWORD, PSID, BOOL, BOOL); + BOOL AdjustTokenGroups(HANDLE, BOOL, PTOKEN_GROUPS, DWORD, PTOKEN_GROUPS, PDWORD); + BOOL AdjustTokenPrivileges(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD); + BOOL AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY, BYTE, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, PSID*); + BOOL AllocateLocallyUniqueId(PLUID); + BOOL AreAllAccessesGranted(DWORD, DWORD); + BOOL AreAnyAccessesGranted(DWORD, DWORD); + BOOL BackupEventLogA(HANDLE, LPCSTR); + BOOL BackupEventLogW(HANDLE, LPCWSTR); + BOOL BackupRead(HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVOID*); + BOOL BackupSeek(HANDLE, DWORD, DWORD, LPDWORD, LPDWORD, LPVOID*); + BOOL BackupWrite(HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVOID*); + BOOL ClearEventLogA(HANDLE, LPCSTR); + BOOL ClearEventLogW(HANDLE, LPCWSTR); + BOOL CloseEventLog(HANDLE); + BOOL ConnectNamedPipe(HANDLE, LPOVERLAPPED); + BOOL CopySid(DWORD, PSID, PSID); + HANDLE CreateNamedPipeA(LPCSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES); + HANDLE CreateNamedPipeW(LPCWSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES); + BOOL CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR*, BOOL, HANDLE, PGENERIC_MAPPING); + BOOL CreateProcessAsUserA(HANDLE, LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCSTR, LPSTARTUPINFOA, LPPROCESS_INFORMATION); + BOOL CreateProcessAsUserW(HANDLE, LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION); + HANDLE CreateRemoteThread(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD); + DWORD CreateTapePartition(HANDLE, DWORD, DWORD, DWORD); + BOOL DefineDosDeviceA(DWORD, LPCSTR, LPCSTR); + BOOL DefineDosDeviceW(DWORD, LPCWSTR, LPCWSTR); + BOOL DeleteAce(PACL, DWORD); + BOOL DeregisterEventSource(HANDLE); + BOOL DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*); + BOOL DeviceIoControl(HANDLE, DWORD, PVOID, DWORD, PVOID, DWORD, PDWORD, POVERLAPPED); + BOOL DisconnectNamedPipe(HANDLE); + BOOL DuplicateToken(HANDLE, SECURITY_IMPERSONATION_LEVEL, PHANDLE); + BOOL DuplicateTokenEx(HANDLE, DWORD, LPSECURITY_ATTRIBUTES, SECURITY_IMPERSONATION_LEVEL, TOKEN_TYPE, PHANDLE); + BOOL EqualPrefixSid(PSID, PSID); + BOOL EqualSid(PSID, PSID); + DWORD EraseTape(HANDLE, DWORD, BOOL); + HANDLE FindFirstFileExA(LPCSTR, FINDEX_INFO_LEVELS, PVOID, FINDEX_SEARCH_OPS, PVOID, DWORD); + HANDLE FindFirstFileExW(LPCWSTR, FINDEX_INFO_LEVELS, PVOID, FINDEX_SEARCH_OPS, PVOID, DWORD); + BOOL FindFirstFreeAce(PACL, PVOID*); + PVOID FreeSid(PSID); + BOOL GetAce(PACL, DWORD, LPVOID*); + BOOL GetAclInformation(PACL, PVOID, DWORD, ACL_INFORMATION_CLASS); + BOOL GetBinaryTypeA(LPCSTR, PDWORD); + BOOL GetBinaryTypeW(LPCWSTR, PDWORD); + DWORD GetCompressedFileSizeA(LPCSTR, PDWORD); + DWORD GetCompressedFileSizeW(LPCWSTR, PDWORD); + BOOL GetCurrentHwProfileA(LPHW_PROFILE_INFOA); + BOOL GetCurrentHwProfileW(LPHW_PROFILE_INFOW); + BOOL GetFileSecurityA(LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); + BOOL GetFileSecurityW(LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); + BOOL GetHandleInformation(HANDLE, PDWORD); + BOOL GetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); + DWORD GetLengthSid(PSID); + BOOL GetNumberOfEventLogRecords(HANDLE, PDWORD); + BOOL GetOldestEventLogRecord(HANDLE, PDWORD); + BOOL GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); + BOOL GetProcessPriorityBoost(HANDLE, PBOOL); + BOOL GetProcessShutdownParameters(PDWORD, PDWORD); + BOOL GetProcessTimes(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME); + HWINSTA GetProcessWindowStation(); + BOOL GetProcessWorkingSetSize(HANDLE, PSIZE_T, PSIZE_T); + BOOL GetQueuedCompletionStatus(HANDLE, PDWORD, PULONG_PTR, LPOVERLAPPED*, DWORD); + BOOL GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR_CONTROL, PDWORD); + BOOL GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, LPBOOL, PACL*, LPBOOL); + BOOL GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID*, LPBOOL); + DWORD GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR); + BOOL GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID*, LPBOOL); + BOOL GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, LPBOOL, PACL*, LPBOOL); + PSID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority(PSID); + DWORD GetSidLengthRequired(UCHAR); + PDWORD GetSidSubAuthority(PSID, DWORD); + PUCHAR GetSidSubAuthorityCount(PSID); + DWORD GetTapeParameters(HANDLE, DWORD, PDWORD, PVOID); + DWORD GetTapePosition(HANDLE, DWORD, PDWORD, PDWORD, PDWORD); + DWORD GetTapeStatus(HANDLE); + BOOL GetThreadPriorityBoost(HANDLE, PBOOL); + BOOL GetThreadTimes(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME); + BOOL GetTokenInformation(HANDLE, TOKEN_INFORMATION_CLASS, PVOID, DWORD, PDWORD); + BOOL ImpersonateLoggedOnUser(HANDLE); + BOOL ImpersonateNamedPipeClient(HANDLE); + BOOL ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL); + BOOL InitializeAcl(PACL, DWORD, DWORD); + DWORD SetCriticalSectionSpinCount(LPCRITICAL_SECTION, DWORD); + BOOL InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR, DWORD); + BOOL InitializeSid(PSID, PSID_IDENTIFIER_AUTHORITY, BYTE); + BOOL IsProcessorFeaturePresent(DWORD); + BOOL IsTextUnicode(PCVOID, int, LPINT); + BOOL IsValidAcl(PACL); + BOOL IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR); + BOOL IsValidSid(PSID); + BOOL LockFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED); + BOOL LogonUserA(LPSTR, LPSTR, LPSTR, DWORD, DWORD, PHANDLE); + BOOL LogonUserW(LPWSTR, LPWSTR, LPWSTR, DWORD, DWORD, PHANDLE); + BOOL LookupAccountNameA(LPCSTR, LPCSTR, PSID, PDWORD, LPSTR, PDWORD, PSID_NAME_USE); + BOOL LookupAccountNameW(LPCWSTR, LPCWSTR, PSID, PDWORD, LPWSTR, PDWORD, PSID_NAME_USE); + BOOL LookupAccountSidA(LPCSTR, PSID, LPSTR, PDWORD, LPSTR, PDWORD, PSID_NAME_USE); + BOOL LookupAccountSidW(LPCWSTR, PSID, LPWSTR, PDWORD, LPWSTR, PDWORD, PSID_NAME_USE); + BOOL LookupPrivilegeDisplayNameA(LPCSTR, LPCSTR, LPSTR, PDWORD, PDWORD); + BOOL LookupPrivilegeDisplayNameW(LPCWSTR, LPCWSTR, LPWSTR, PDWORD, PDWORD); + BOOL LookupPrivilegeNameA(LPCSTR, PLUID, LPSTR, PDWORD); + BOOL LookupPrivilegeNameW(LPCWSTR, PLUID, LPWSTR, PDWORD); + BOOL LookupPrivilegeValueA(LPCSTR, LPCSTR, PLUID); + BOOL LookupPrivilegeValueW(LPCWSTR, LPCWSTR, PLUID); + BOOL MakeAbsoluteSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD, PACL, PDWORD, PACL, PDWORD, PSID, PDWORD, PSID, PDWORD); + BOOL MakeSelfRelativeSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD); + VOID MapGenericMask(PDWORD, PGENERIC_MAPPING); + BOOL MoveFileExA(LPCSTR, LPCSTR, DWORD); + BOOL MoveFileExW(LPCWSTR, LPCWSTR, DWORD); + BOOL NotifyChangeEventLog(HANDLE, HANDLE); + BOOL ObjectCloseAuditAlarmA(LPCSTR, PVOID, BOOL); + BOOL ObjectCloseAuditAlarmW(LPCWSTR, PVOID, BOOL); + BOOL ObjectDeleteAuditAlarmA(LPCSTR, PVOID, BOOL); + BOOL ObjectDeleteAuditAlarmW(LPCWSTR, PVOID, BOOL); + BOOL ObjectOpenAuditAlarmA(LPCSTR, PVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD, PPRIVILEGE_SET, BOOL, BOOL, PBOOL); + BOOL ObjectOpenAuditAlarmW(LPCWSTR, PVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD, PPRIVILEGE_SET, BOOL, BOOL, PBOOL); + BOOL ObjectPrivilegeAuditAlarmA(LPCSTR, PVOID, HANDLE, DWORD, PPRIVILEGE_SET, BOOL); + BOOL ObjectPrivilegeAuditAlarmW(LPCWSTR, PVOID, HANDLE, DWORD, PPRIVILEGE_SET, BOOL); + HANDLE OpenBackupEventLogA(LPCSTR, LPCSTR); + HANDLE OpenBackupEventLogW(LPCWSTR, LPCWSTR); + HANDLE OpenEventLogA(LPCSTR, LPCSTR); + HANDLE OpenEventLogW(LPCWSTR, LPCWSTR); + BOOL OpenProcessToken(HANDLE, DWORD, PHANDLE); + BOOL OpenThreadToken(HANDLE, DWORD, BOOL, PHANDLE); + BOOL PostQueuedCompletionStatus(HANDLE, DWORD, ULONG_PTR, LPOVERLAPPED); + DWORD PrepareTape(HANDLE, DWORD, BOOL); + BOOL PrivilegeCheck(HANDLE, PPRIVILEGE_SET, PBOOL); + BOOL PrivilegedServiceAuditAlarmA(LPCSTR, LPCSTR, HANDLE, PPRIVILEGE_SET, BOOL); + BOOL PrivilegedServiceAuditAlarmW(LPCWSTR, LPCWSTR, HANDLE, PPRIVILEGE_SET, BOOL); + BOOL ReadDirectoryChangesW(HANDLE, PVOID, DWORD, BOOL, DWORD, PDWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE); + BOOL ReadEventLogA(HANDLE, DWORD, DWORD, PVOID, DWORD, DWORD*, DWORD*); + BOOL ReadEventLogW(HANDLE, DWORD, DWORD, PVOID, DWORD, DWORD*, DWORD*); + BOOL ReadFileScatter(HANDLE, FILE_SEGMENT_ELEMENT*, DWORD, LPDWORD, LPOVERLAPPED); + HANDLE RegisterEventSourceA (LPCSTR, LPCSTR); + HANDLE RegisterEventSourceW(LPCWSTR, LPCWSTR); + BOOL ReportEventA(HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, LPCSTR*, PVOID); + BOOL ReportEventW(HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, LPCWSTR*, PVOID); + BOOL RevertToSelf(); + BOOL SetAclInformation(PACL, PVOID, DWORD, ACL_INFORMATION_CLASS); + BOOL SetFileSecurityA(LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); + BOOL SetFileSecurityW(LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); + BOOL SetHandleInformation(HANDLE, DWORD, DWORD); + BOOL SetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); + BOOL SetPrivateObjectSecurity(SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR* , PGENERIC_MAPPING, HANDLE); + BOOL SetProcessAffinityMask(HANDLE, DWORD); + BOOL SetProcessPriorityBoost(HANDLE, BOOL); + BOOL SetProcessShutdownParameters(DWORD, DWORD); + BOOL SetProcessWorkingSetSize(HANDLE, SIZE_T, SIZE_T); + BOOL SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL); + BOOL SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID, BOOL); + BOOL SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID, BOOL); + BOOL SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL); + BOOL SetSystemTimeAdjustment(DWORD, BOOL); + DWORD SetTapeParameters(HANDLE, DWORD, PVOID); + DWORD SetTapePosition(HANDLE, DWORD, DWORD, DWORD, DWORD, BOOL); + BOOL SetThreadPriorityBoost(HANDLE, BOOL); + BOOL SetThreadToken(PHANDLE, HANDLE); + BOOL SetTokenInformation(HANDLE, TOKEN_INFORMATION_CLASS, PVOID, DWORD); + DWORD SignalObjectAndWait(HANDLE, HANDLE, DWORD, BOOL); + BOOL SwitchToThread(); + BOOL SystemTimeToTzSpecificLocalTime(LPTIME_ZONE_INFORMATION, LPSYSTEMTIME, LPSYSTEMTIME); + BOOL TryEnterCriticalSection(LPCRITICAL_SECTION); + BOOL UnlockFileEx(HANDLE, DWORD, DWORD, DWORD, LPOVERLAPPED); + BOOL UpdateResourceA(HANDLE, LPCSTR, LPCSTR, WORD, PVOID, DWORD); + BOOL UpdateResourceW(HANDLE, LPCWSTR, LPCWSTR, WORD, PVOID, DWORD); + BOOL WriteFileGather(HANDLE, FILE_SEGMENT_ELEMENT*, DWORD, LPDWORD, LPOVERLAPPED); + DWORD WriteTapemark(HANDLE, DWORD, DWORD, BOOL); + + static if (_WIN32_WINNT >= 0x500) { + BOOL AddAccessAllowedAceEx(PACL, DWORD, DWORD, DWORD, PSID); + BOOL AddAccessDeniedAceEx(PACL, DWORD, DWORD, DWORD, PSID); + PVOID AddVectoredExceptionHandler(ULONG, PVECTORED_EXCEPTION_HANDLER); + BOOL AllocateUserPhysicalPages(HANDLE, PULONG_PTR, PULONG_PTR); + BOOL AssignProcessToJobObject(HANDLE, HANDLE); + BOOL ChangeTimerQueueTimer(HANDLE,HANDLE,ULONG,ULONG); + LPVOID CreateFiberEx(SIZE_T, SIZE_T, DWORD, LPFIBER_START_ROUTINE, LPVOID); + HANDLE CreateFileMappingA(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCSTR); + HANDLE CreateFileMappingW(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCWSTR); + BOOL CreateHardLinkA(LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES); + BOOL CreateHardLinkW(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES); + HANDLE CreateJobObjectA(LPSECURITY_ATTRIBUTES, LPCSTR); + HANDLE CreateJobObjectW(LPSECURITY_ATTRIBUTES, LPCWSTR); + BOOL CreateProcessWithLogonW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPCWSTR, LPWSTR, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION); + HANDLE CreateTimerQueue(); + BOOL CreateTimerQueueTimer(PHANDLE, HANDLE, WAITORTIMERCALLBACK, PVOID, DWORD, DWORD, ULONG); + BOOL DeleteTimerQueue(HANDLE); + BOOL DeleteTimerQueueEx(HANDLE, HANDLE); + BOOL DeleteTimerQueueTimer(HANDLE, HANDLE, HANDLE); + BOOL DeleteVolumeMountPointA(LPCSTR); + BOOL DeleteVolumeMountPointW(LPCWSTR); + BOOL DnsHostnameToComputerNameA(LPCSTR, LPSTR, LPDWORD); + BOOL DnsHostnameToComputerNameW(LPCWSTR, LPWSTR, LPDWORD); + BOOL EncryptFileA(LPCSTR); + BOOL EncryptFileW(LPCWSTR); + BOOL FileEncryptionStatusA(LPCSTR, LPDWORD); + BOOL FileEncryptionStatusW(LPCWSTR, LPDWORD); + HANDLE FindFirstVolumeA(LPCSTR, DWORD); + HANDLE FindFirstVolumeMountPointA(LPSTR, LPSTR, DWORD); + HANDLE FindFirstVolumeMountPointW(LPWSTR, LPWSTR, DWORD); + HANDLE FindFirstVolumeW(LPCWSTR, DWORD); + BOOL FindNextVolumeA(HANDLE, LPCSTR, DWORD); + BOOL FindNextVolumeW(HANDLE, LPWSTR, DWORD); + BOOL FindNextVolumeMountPointA(HANDLE, LPSTR, DWORD); + BOOL FindNextVolumeMountPointW(HANDLE, LPWSTR, DWORD); + BOOL FindVolumeClose(HANDLE); + BOOL FindVolumeMountPointClose(HANDLE); + BOOL FlushViewOfFile(PCVOID, DWORD); + BOOL FreeUserPhysicalPages(HANDLE, PULONG_PTR, PULONG_PTR); + BOOL GetComputerNameExA(COMPUTER_NAME_FORMAT, LPSTR, LPDWORD); + BOOL GetComputerNameExW(COMPUTER_NAME_FORMAT, LPWSTR, LPDWORD); + BOOL GetFileSizeEx(HANDLE, PLARGE_INTEGER); + BOOL GetModuleHandleExA(DWORD, LPCSTR, HMODULE*); + BOOL GetModuleHandleExW(DWORD, LPCWSTR, HMODULE*); + HANDLE GetProcessHeap(); + DWORD GetProcessHeaps(DWORD, PHANDLE); + BOOL GetProcessIoCounters(HANDLE, PIO_COUNTERS); + BOOL GetSystemPowerStatus(LPSYSTEM_POWER_STATUS); + UINT GetSystemWindowsDirectoryA(LPSTR, UINT); + UINT GetSystemWindowsDirectoryW(LPWSTR, UINT); + BOOL GetVolumeNameForVolumeMountPointA(LPCSTR, LPSTR, DWORD); + BOOL GetVolumeNameForVolumeMountPointW(LPCWSTR, LPWSTR, DWORD); + BOOL GetVolumePathNameA(LPCSTR, LPSTR, DWORD); + BOOL GetVolumePathNameW(LPCWSTR, LPWSTR, DWORD); + BOOL GlobalMemoryStatusEx(LPMEMORYSTATUSEX); + BOOL IsBadCodePtr(FARPROC); + BOOL IsSystemResumeAutomatic(); + BOOL MapUserPhysicalPages(PVOID, ULONG_PTR, PULONG_PTR); + BOOL MapUserPhysicalPagesScatter(PVOID*, ULONG_PTR, PULONG_PTR); + PVOID MapViewOfFile(HANDLE, DWORD, DWORD, DWORD, DWORD); + PVOID MapViewOfFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, PVOID); + HANDLE OpenFileMappingA(DWORD, BOOL, LPCSTR); + HANDLE OpenFileMappingW(DWORD, BOOL, LPCWSTR); + BOOL ProcessIdToSessionId(DWORD, DWORD*); + BOOL QueryInformationJobObject(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD, LPDWORD); + ULONG RemoveVectoredExceptionHandler(PVOID); + BOOL ReplaceFileA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPVOID, LPVOID); + BOOL ReplaceFileW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPVOID, LPVOID); + BOOL SetComputerNameExA(COMPUTER_NAME_FORMAT, LPCSTR); + BOOL SetComputerNameExW(COMPUTER_NAME_FORMAT, LPCWSTR); + BOOL SetFilePointerEx(HANDLE, LARGE_INTEGER, PLARGE_INTEGER, DWORD); + BOOL SetInformationJobObject(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD); + BOOL SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, SECURITY_DESCRIPTOR_CONTROL, SECURITY_DESCRIPTOR_CONTROL); + BOOL SetSystemPowerState(BOOL, BOOL); + EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE); + DWORD SetThreadIdealProcessor(HANDLE, DWORD); + BOOL SetVolumeMountPointA(LPCSTR, LPCSTR); + BOOL SetVolumeMountPointW(LPCWSTR, LPCWSTR); + BOOL TerminateJobObject(HANDLE, UINT); + BOOL UnmapViewOfFile(PVOID); + BOOL UnregisterWait(HANDLE); + BOOL UnregisterWaitEx(HANDLE, HANDLE); + BOOL VerifyVersionInfoA(LPOSVERSIONINFOEXA, DWORD, DWORDLONG); + BOOL VerifyVersionInfoW(LPOSVERSIONINFOEXW, DWORD, DWORDLONG); + } + + static if (_WIN32_WINNT >= 0x501) { + BOOL ActivateActCtx(HANDLE, ULONG_PTR*); + void AddRefActCtx(HANDLE); + BOOL CheckNameLegalDOS8Dot3A(LPCSTR, LPSTR, DWORD, PBOOL, PBOOL); + BOOL CheckNameLegalDOS8Dot3W(LPCWSTR, LPSTR, DWORD, PBOOL, PBOOL); + BOOL CheckRemoteDebuggerPresent(HANDLE, PBOOL); + BOOL ConvertFiberToThread(); + HANDLE CreateActCtxA(PCACTCTXA); + HANDLE CreateActCtxW(PCACTCTXW); + HANDLE CreateMemoryResourceNotification(MEMORY_RESOURCE_NOTIFICATION_TYPE); + BOOL DeactivateActCtx(DWORD, ULONG_PTR); + BOOL DebugActiveProcessStop(DWORD); + BOOL DebugBreakProcess(HANDLE); + BOOL DebugSetProcessKillOnExit(BOOL); + BOOL FindActCtxSectionGuid(DWORD, CPtr!(GUID), ULONG, CPtr!(GUID), + PACTCTX_SECTION_KEYED_DATA); + BOOL FindActCtxSectionStringA(DWORD, CPtr!(GUID), ULONG, LPCSTR, + PACTCTX_SECTION_KEYED_DATA); + BOOL FindActCtxSectionStringW(DWORD, CPtr!(GUID), ULONG, LPCWSTR, + PACTCTX_SECTION_KEYED_DATA); + BOOL GetCurrentActCtx(HANDLE*); + VOID GetNativeSystemInfo(LPSYSTEM_INFO); + BOOL GetProcessHandleCount(HANDLE, PDWORD); + BOOL GetSystemRegistryQuota(PDWORD, PDWORD); + BOOL GetSystemTimes(LPFILETIME, LPFILETIME, LPFILETIME); + UINT GetSystemWow64DirectoryA(LPSTR, UINT); + UINT GetSystemWow64DirectoryW(LPWSTR, UINT); + BOOL GetThreadIOPendingFlag(HANDLE, PBOOL); + BOOL GetVolumePathNamesForVolumeNameA(LPCSTR, LPSTR, DWORD, PDWORD); + BOOL GetVolumePathNamesForVolumeNameW(LPCWSTR, LPWSTR, DWORD, PDWORD); + UINT GetWriteWatch(DWORD, PVOID, SIZE_T, PVOID*, PULONG_PTR, PULONG); + BOOL HeapQueryInformation(HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T, PSIZE_T); + BOOL HeapSetInformation(HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T); + BOOL IsProcessInJob(HANDLE, HANDLE, PBOOL); + BOOL IsWow64Process(HANDLE, PBOOL); + BOOL QueryActCtxW(DWORD, HANDLE, PVOID, ULONG, PVOID, SIZE_T, SIZE_T*); + BOOL QueryMemoryResourceNotification(HANDLE, PBOOL); + void ReleaseActCtx(HANDLE); + UINT ResetWriteWatch(LPVOID, SIZE_T); + BOOL SetFileShortNameA(HANDLE, LPCSTR); + BOOL SetFileShortNameW(HANDLE, LPCWSTR); + BOOL SetFileValidData(HANDLE, LONGLONG); + BOOL ZombifyActCtx(HANDLE); + } + + static if (_WIN32_WINNT >= 0x502) { + DWORD GetFirmwareEnvironmentVariableA(LPCSTR, LPCSTR, PVOID, DWORD); + DWORD GetFirmwareEnvironmentVariableW(LPCWSTR, LPCWSTR, PVOID, DWORD); + DWORD GetDllDirectoryA(DWORD, LPSTR); + DWORD GetDllDirectoryW(DWORD, LPWSTR); + DWORD GetProcessId(HANDLE); + HANDLE ReOpenFile(HANDLE, DWORD, DWORD, DWORD); + BOOL SetDllDirectoryA(LPCSTR); + BOOL SetDllDirectoryW(LPCWSTR); + BOOL SetFirmwareEnvironmentVariableA(LPCSTR, LPCSTR, PVOID, DWORD); + BOOL SetFirmwareEnvironmentVariableW(LPCWSTR, LPCWSTR, PVOID, DWORD); + } + } + + // ??? + static if (_WIN32_WINNT >= 0x510) { + VOID RestoreLastError(DWORD); + } +} + + +version (Unicode) { + alias STARTUPINFOW STARTUPINFO; + alias WIN32_FIND_DATAW WIN32_FIND_DATA; + alias ENUMRESLANGPROCW ENUMRESLANGPROC; + alias ENUMRESNAMEPROCW ENUMRESNAMEPROC; + alias ENUMRESTYPEPROCW ENUMRESTYPEPROC; + alias AddAtomW AddAtom; + alias BeginUpdateResourceW BeginUpdateResource; + alias BuildCommDCBW BuildCommDCB; + alias BuildCommDCBAndTimeoutsW BuildCommDCBAndTimeouts; + alias CallNamedPipeW CallNamedPipe; + alias CommConfigDialogW CommConfigDialog; + alias CopyFileW CopyFile; + alias CopyFileExW CopyFileEx; + alias CreateDirectoryW CreateDirectory; + alias CreateDirectoryExW CreateDirectoryEx; + alias CreateEventW CreateEvent; + alias CreateFileW CreateFile; + alias CreateMailslotW CreateMailslot; + alias CreateMutexW CreateMutex; + alias CreateProcessW CreateProcess; + alias CreateSemaphoreW CreateSemaphore; + alias DeleteFileW DeleteFile; + alias EndUpdateResourceW EndUpdateResource; + alias EnumResourceLanguagesW EnumResourceLanguages; + alias EnumResourceNamesW EnumResourceNames; + alias EnumResourceTypesW EnumResourceTypes; + alias ExpandEnvironmentStringsW ExpandEnvironmentStrings; + alias FatalAppExitW FatalAppExit; + alias FindAtomW FindAtom; + alias FindFirstChangeNotificationW FindFirstChangeNotification; + alias FindFirstFileW FindFirstFile; + alias FindNextFileW FindNextFile; + alias FindResourceW FindResource; + alias FindResourceExW FindResourceEx; + alias FormatMessageW FormatMessage; + alias FreeEnvironmentStringsW FreeEnvironmentStrings; + alias GetAtomNameW GetAtomName; + alias GetCommandLineW GetCommandLine; + alias GetComputerNameW GetComputerName; + alias GetCurrentDirectoryW GetCurrentDirectory; + alias GetDefaultCommConfigW GetDefaultCommConfig; + alias GetDiskFreeSpaceW GetDiskFreeSpace; + alias GetDiskFreeSpaceExW GetDiskFreeSpaceEx; + alias GetDriveTypeW GetDriveType; + alias GetEnvironmentStringsW GetEnvironmentStrings; + alias GetEnvironmentVariableW GetEnvironmentVariable; + alias GetFileAttributesW GetFileAttributes; + alias GetFullPathNameW GetFullPathName; + alias GetLogicalDriveStringsW GetLogicalDriveStrings; + alias GetModuleFileNameW GetModuleFileName; + alias GetModuleHandleW GetModuleHandle; + alias GetNamedPipeHandleStateW GetNamedPipeHandleState; + alias GetPrivateProfileIntW GetPrivateProfileInt; + alias GetPrivateProfileSectionW GetPrivateProfileSection; + alias GetPrivateProfileSectionNamesW GetPrivateProfileSectionNames; + alias GetPrivateProfileStringW GetPrivateProfileString; + alias GetPrivateProfileStructW GetPrivateProfileStruct; + alias GetProfileIntW GetProfileInt; + alias GetProfileSectionW GetProfileSection; + alias GetProfileStringW GetProfileString; + alias GetShortPathNameW GetShortPathName; + alias GetStartupInfoW GetStartupInfo; + alias GetSystemDirectoryW GetSystemDirectory; + alias GetTempFileNameW GetTempFileName; + alias GetTempPathW GetTempPath; + alias GetUserNameW GetUserName; + alias GetVersionExW GetVersionEx; + alias GetVolumeInformationW GetVolumeInformation; + alias GetWindowsDirectoryW GetWindowsDirectory; + alias GlobalAddAtomW GlobalAddAtom; + alias GlobalFindAtomW GlobalFindAtom; + alias GlobalGetAtomNameW GlobalGetAtomName; + alias IsBadStringPtrW IsBadStringPtr; + alias LoadLibraryW LoadLibrary; + alias LoadLibraryExW LoadLibraryEx; + alias lstrcatW lstrcat; + alias lstrcmpW lstrcmp; + alias lstrcmpiW lstrcmpi; + alias lstrcpyW lstrcpy; + alias lstrcpynW lstrcpyn; + alias lstrlenW lstrlen; + alias MoveFileW MoveFile; + alias OpenEventW OpenEvent; + alias OpenMutexW OpenMutex; + alias OpenSemaphoreW OpenSemaphore; + alias OutputDebugStringW OutputDebugString; + alias RemoveDirectoryW RemoveDirectory; + alias SearchPathW SearchPath; + alias SetComputerNameW SetComputerName; + alias SetCurrentDirectoryW SetCurrentDirectory; + alias SetDefaultCommConfigW SetDefaultCommConfig; + alias SetEnvironmentVariableW SetEnvironmentVariable; + alias SetFileAttributesW SetFileAttributes; + alias SetVolumeLabelW SetVolumeLabel; + alias WaitNamedPipeW WaitNamedPipe; + alias WritePrivateProfileSectionW WritePrivateProfileSection; + alias WritePrivateProfileStringW WritePrivateProfileString; + alias WritePrivateProfileStructW WritePrivateProfileStruct; + alias WriteProfileSectionW WriteProfileSection; + alias WriteProfileStringW WriteProfileString; + + static if (_WIN32_WINDOWS >= 0x410) { + alias CreateWaitableTimerW CreateWaitableTimer; + alias GetFileAttributesExW GetFileAttributesEx; + alias GetLongPathNameW GetLongPathName; + alias QueryDosDeviceW QueryDosDevice; + } + + static if (_WIN32_WINNT_ONLY) { + alias HW_PROFILE_INFOW HW_PROFILE_INFO; + alias AccessCheckAndAuditAlarmW AccessCheckAndAuditAlarm; + alias BackupEventLogW BackupEventLog; + alias ClearEventLogW ClearEventLog; + alias CreateNamedPipeW CreateNamedPipe; + alias CreateProcessAsUserW CreateProcessAsUser; + alias DefineDosDeviceW DefineDosDevice; + alias FindFirstFileExW FindFirstFileEx; + alias GetBinaryTypeW GetBinaryType; + alias GetCompressedFileSizeW GetCompressedFileSize; + alias GetFileSecurityW GetFileSecurity; + alias LogonUserW LogonUser; + alias LookupAccountNameW LookupAccountName; + alias LookupAccountSidW LookupAccountSid; + alias LookupPrivilegeDisplayNameW LookupPrivilegeDisplayName; + alias LookupPrivilegeNameW LookupPrivilegeName; + alias LookupPrivilegeValueW LookupPrivilegeValue; + alias MoveFileExW MoveFileEx; + alias ObjectCloseAuditAlarmW ObjectCloseAuditAlarm; + alias ObjectDeleteAuditAlarmW ObjectDeleteAuditAlarm; + alias ObjectOpenAuditAlarmW ObjectOpenAuditAlarm; + alias ObjectPrivilegeAuditAlarmW ObjectPrivilegeAuditAlarm; + alias OpenBackupEventLogW OpenBackupEventLog; + alias OpenEventLogW OpenEventLog; + alias PrivilegedServiceAuditAlarmW PrivilegedServiceAuditAlarm; + alias ReadEventLogW ReadEventLog; + alias RegisterEventSourceW RegisterEventSource; + alias ReportEventW ReportEvent; + alias SetFileSecurityW SetFileSecurity; + alias UpdateResourceW UpdateResource; + + static if (_WIN32_WINNT >= 0x500) { + alias CreateFileMappingW CreateFileMapping; + alias CreateHardLinkW CreateHardLink; + alias CreateJobObjectW CreateJobObject; + alias DeleteVolumeMountPointW DeleteVolumeMountPoint; + alias DnsHostnameToComputerNameW DnsHostnameToComputerName; + alias EncryptFileW EncryptFile; + alias FileEncryptionStatusW FileEncryptionStatus; + alias FindFirstVolumeW FindFirstVolume; + alias FindFirstVolumeMountPointW FindFirstVolumeMountPoint; + alias FindNextVolumeW FindNextVolume; + alias FindNextVolumeMountPointW FindNextVolumeMountPoint; + alias GetModuleHandleExW GetModuleHandleEx; + alias GetSystemWindowsDirectoryW GetSystemWindowsDirectory; + alias GetVolumeNameForVolumeMountPointW GetVolumeNameForVolumeMountPoint; + alias GetVolumePathNameW GetVolumePathName; + alias OpenFileMappingW OpenFileMapping; + alias ReplaceFileW ReplaceFile; + alias SetVolumeMountPointW SetVolumeMountPoint; + alias VerifyVersionInfoW VerifyVersionInfo; + } + + static if (_WIN32_WINNT >= 0x501) { + alias ACTCTXW ACTCTX; + alias CheckNameLegalDOS8Dot3W CheckNameLegalDOS8Dot3; + alias CreateActCtxW CreateActCtx; + alias FindActCtxSectionStringW FindActCtxSectionString; + alias GetSystemWow64DirectoryW GetSystemWow64Directory; + alias GetVolumePathNamesForVolumeNameW GetVolumePathNamesForVolumeName; + alias SetFileShortNameW SetFileShortName; + } + + static if (_WIN32_WINNT >= 0x502) { + alias SetFirmwareEnvironmentVariableW SetFirmwareEnvironmentVariable; + alias SetDllDirectoryW SetDllDirectory; + alias GetDllDirectoryW GetDllDirectory; + } + } + +} else { + alias STARTUPINFOA STARTUPINFO; + alias WIN32_FIND_DATAA WIN32_FIND_DATA; + alias ENUMRESLANGPROCW ENUMRESLANGPROC; + alias ENUMRESNAMEPROCW ENUMRESNAMEPROC; + alias ENUMRESTYPEPROCW ENUMRESTYPEPROC; + alias AddAtomA AddAtom; + alias BeginUpdateResourceA BeginUpdateResource; + alias BuildCommDCBA BuildCommDCB; + alias BuildCommDCBAndTimeoutsA BuildCommDCBAndTimeouts; + alias CallNamedPipeA CallNamedPipe; + alias CommConfigDialogA CommConfigDialog; + alias CopyFileA CopyFile; + alias CopyFileExA CopyFileEx; + alias CreateDirectoryA CreateDirectory; + alias CreateDirectoryExA CreateDirectoryEx; + alias CreateEventA CreateEvent; + alias CreateFileA CreateFile; + alias CreateMailslotA CreateMailslot; + alias CreateMutexA CreateMutex; + alias CreateProcessA CreateProcess; + alias CreateSemaphoreA CreateSemaphore; + alias DeleteFileA DeleteFile; + alias EndUpdateResourceA EndUpdateResource; + alias EnumResourceLanguagesA EnumResourceLanguages; + alias EnumResourceNamesA EnumResourceNames; + alias EnumResourceTypesA EnumResourceTypes; + alias ExpandEnvironmentStringsA ExpandEnvironmentStrings; + alias FatalAppExitA FatalAppExit; + alias FindAtomA FindAtom; + alias FindFirstChangeNotificationA FindFirstChangeNotification; + alias FindFirstFileA FindFirstFile; + alias FindNextFileA FindNextFile; + alias FindResourceA FindResource; + alias FindResourceExA FindResourceEx; + alias FormatMessageA FormatMessage; + alias FreeEnvironmentStringsA FreeEnvironmentStrings; + alias GetAtomNameA GetAtomName; + alias GetCommandLineA GetCommandLine; + alias GetComputerNameA GetComputerName; + alias GetCurrentDirectoryA GetCurrentDirectory; + alias GetDefaultCommConfigA GetDefaultCommConfig; + alias GetDiskFreeSpaceA GetDiskFreeSpace; + alias GetDiskFreeSpaceExA GetDiskFreeSpaceEx; + alias GetDriveTypeA GetDriveType; + alias GetEnvironmentVariableA GetEnvironmentVariable; + alias GetFileAttributesA GetFileAttributes; + alias GetFullPathNameA GetFullPathName; + alias GetLogicalDriveStringsA GetLogicalDriveStrings; + alias GetNamedPipeHandleStateA GetNamedPipeHandleState; + alias GetModuleHandleA GetModuleHandle; + alias GetModuleFileNameA GetModuleFileName; + alias GetPrivateProfileIntA GetPrivateProfileInt; + alias GetPrivateProfileSectionA GetPrivateProfileSection; + alias GetPrivateProfileSectionNamesA GetPrivateProfileSectionNames; + alias GetPrivateProfileStringA GetPrivateProfileString; + alias GetPrivateProfileStructA GetPrivateProfileStruct; + alias GetProfileIntA GetProfileInt; + alias GetProfileSectionA GetProfileSection; + alias GetProfileStringA GetProfileString; + alias GetShortPathNameA GetShortPathName; + alias GetStartupInfoA GetStartupInfo; + alias GetSystemDirectoryA GetSystemDirectory; + alias GetTempFileNameA GetTempFileName; + alias GetTempPathA GetTempPath; + alias GetUserNameA GetUserName; + alias GetVersionExA GetVersionEx; + alias GetVolumeInformationA GetVolumeInformation; + alias GetWindowsDirectoryA GetWindowsDirectory; + alias GlobalAddAtomA GlobalAddAtom; + alias GlobalFindAtomA GlobalFindAtom; + alias GlobalGetAtomNameA GlobalGetAtomName; + alias IsBadStringPtrA IsBadStringPtr; + alias LoadLibraryA LoadLibrary; + alias LoadLibraryExA LoadLibraryEx; + alias lstrcatA lstrcat; + alias lstrcmpA lstrcmp; + alias lstrcmpiA lstrcmpi; + alias lstrcpyA lstrcpy; + alias lstrcpynA lstrcpyn; + alias lstrlenA lstrlen; + alias MoveFileA MoveFile; + alias OpenEventA OpenEvent; + alias OpenMutexA OpenMutex; + alias OpenSemaphoreA OpenSemaphore; + alias OutputDebugStringA OutputDebugString; + alias RemoveDirectoryA RemoveDirectory; + alias SearchPathA SearchPath; + alias SetComputerNameA SetComputerName; + alias SetCurrentDirectoryA SetCurrentDirectory; + alias SetDefaultCommConfigA SetDefaultCommConfig; + alias SetEnvironmentVariableA SetEnvironmentVariable; + alias SetFileAttributesA SetFileAttributes; + alias SetVolumeLabelA SetVolumeLabel; + alias WaitNamedPipeA WaitNamedPipe; + alias WritePrivateProfileSectionA WritePrivateProfileSection; + alias WritePrivateProfileStringA WritePrivateProfileString; + alias WritePrivateProfileStructA WritePrivateProfileStruct; + alias WriteProfileSectionA WriteProfileSection; + alias WriteProfileStringA WriteProfileString; + + static if (_WIN32_WINDOWS >= 0x410) { + alias CreateWaitableTimerA CreateWaitableTimer; + alias GetFileAttributesExA GetFileAttributesEx; + alias GetLongPathNameA GetLongPathName; + alias QueryDosDeviceA QueryDosDevice; + } + + static if (_WIN32_WINNT_ONLY) { + alias HW_PROFILE_INFOA HW_PROFILE_INFO; + alias AccessCheckAndAuditAlarmA AccessCheckAndAuditAlarm; + alias BackupEventLogA BackupEventLog; + alias ClearEventLogA ClearEventLog; + alias CreateNamedPipeA CreateNamedPipe; + alias CreateProcessAsUserA CreateProcessAsUser; + alias DefineDosDeviceA DefineDosDevice; + alias FindFirstFileExA FindFirstFileEx; + alias GetBinaryTypeA GetBinaryType; + alias GetCompressedFileSizeA GetCompressedFileSize; + alias GetFileSecurityA GetFileSecurity; + alias LogonUserA LogonUser; + alias LookupAccountNameA LookupAccountName; + alias LookupAccountSidA LookupAccountSid; + alias LookupPrivilegeDisplayNameA LookupPrivilegeDisplayName; + alias LookupPrivilegeNameA LookupPrivilegeName; + alias LookupPrivilegeValueA LookupPrivilegeValue; + alias MoveFileExA MoveFileEx; + alias ObjectCloseAuditAlarmA ObjectCloseAuditAlarm; + alias ObjectDeleteAuditAlarmA ObjectDeleteAuditAlarm; + alias ObjectOpenAuditAlarmA ObjectOpenAuditAlarm; + alias ObjectPrivilegeAuditAlarmA ObjectPrivilegeAuditAlarm; + alias OpenBackupEventLogA OpenBackupEventLog; + alias OpenEventLogA OpenEventLog; + alias PrivilegedServiceAuditAlarmA PrivilegedServiceAuditAlarm; + alias ReadEventLogA ReadEventLog; + alias RegisterEventSourceA RegisterEventSource; + alias ReportEventA ReportEvent; + alias SetFileSecurityA SetFileSecurity; + alias UpdateResourceA UpdateResource; + + static if (_WIN32_WINNT >= 0x500) { + alias CreateFileMappingA CreateFileMapping; + alias CreateHardLinkA CreateHardLink; + alias CreateJobObjectA CreateJobObject; + alias DeleteVolumeMountPointA DeleteVolumeMountPoint; + alias DnsHostnameToComputerNameA DnsHostnameToComputerName; + alias EncryptFileA EncryptFile; + alias FileEncryptionStatusA FileEncryptionStatus; + alias FindFirstVolumeA FindFirstVolume; + alias FindFirstVolumeMountPointA FindFirstVolumeMountPoint; + alias FindNextVolumeA FindNextVolume; + alias FindNextVolumeMountPointA FindNextVolumeMountPoint; + alias GetModuleHandleExA GetModuleHandleEx; + alias GetSystemWindowsDirectoryA GetSystemWindowsDirectory; + alias GetVolumeNameForVolumeMountPointA GetVolumeNameForVolumeMountPoint; + alias GetVolumePathNameA GetVolumePathName; + alias OpenFileMappingA OpenFileMapping; + alias ReplaceFileA ReplaceFile; + alias SetVolumeMountPointA SetVolumeMountPoint; + alias VerifyVersionInfoA VerifyVersionInfo; + } + + static if (_WIN32_WINNT >= 0x501) { + alias ACTCTXA ACTCTX; + alias CheckNameLegalDOS8Dot3A CheckNameLegalDOS8Dot3; + alias CreateActCtxA CreateActCtx; + alias FindActCtxSectionStringA FindActCtxSectionString; + alias GetSystemWow64DirectoryA GetSystemWow64Directory; + alias GetVolumePathNamesForVolumeNameA GetVolumePathNamesForVolumeName; + alias SetFileShortNameA SetFileShortName; + } + + static if (_WIN32_WINNT >= 0x502) { + alias GetDllDirectoryA GetDllDirectory; + alias SetDllDirectoryA SetDllDirectory; + alias SetFirmwareEnvironmentVariableA SetFirmwareEnvironmentVariable; + } + } +} + +alias STARTUPINFO* LPSTARTUPINFO; +alias WIN32_FIND_DATA* LPWIN32_FIND_DATA; + +static if (_WIN32_WINNT_ONLY) { + alias HW_PROFILE_INFO* LPHW_PROFILE_INFO; + + static if (_WIN32_WINNT >= 0x501) { + alias ACTCTX* PACTCTX, PCACTCTX; + } +} ADDED src/win32/winber.d Index: src/win32/winber.d ================================================================== --- src/win32/winber.d +++ src/win32/winber.d @@ -0,0 +1,70 @@ +/***********************************************************************\ +* winber.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.winber; + +/* Comment from MinGW + winber.h - Header file for the Windows LDAP Basic Encoding Rules API + + Written by Filip Navara + + References: + The C LDAP Application Program Interface + http://www.watersprings.org/pub/id/draft-ietf-ldapext-ldap-c-api-05.txt + + Lightweight Directory Access Protocol Reference + http://msdn.microsoft.com/library/en-us/netdir/ldap/ldap_reference.asp + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + */ + + import win32.basetsd; + +/* Opaque structure + * http://msdn.microsoft.com/library/en-us/ldap/ldap/berelement.asp + */ +struct BerElement; + +alias int ber_int_t, ber_slen_t; +alias uint ber_uint_t, ber_len_t, ber_tag_t; + +align(4): +struct BerValue { + ber_len_t bv_len; + char* bv_val; +} +alias BerValue LDAP_BERVAL, BERVAL; +alias BerValue* PLDAP_BERVAL, PBERVAL; + +const ber_tag_t + LBER_ERROR = -1, + LBER_DEFAULT = -1, + LBER_USE_DER = 1; + +/* FIXME: In MinGW, these are WINBERAPI == DECLSPEC_IMPORT. Linkage + * attribute? + */ +extern (C) { + BerElement* ber_init(CPtr!(BerValue)); + int ber_printf(BerElement*, CPtr!(char), ...); + int ber_flatten(BerElement*, BerValue**); + ber_tag_t ber_scanf(BerElement*, CPtr!(char), ...); + ber_tag_t ber_peek_tag(BerElement*, ber_len_t*); + ber_tag_t ber_skip_tag(BerElement*, ber_len_t*); + ber_tag_t ber_first_element(BerElement*, ber_len_t*, char**); + ber_tag_t ber_next_element(BerElement*, ber_len_t*, char*); + void ber_bvfree(BerValue*); + void ber_bvecfree(BerValue**); + void ber_free(BerElement*, int); + BerValue* ber_bvdup(BerValue*); + BerElement* ber_alloc_t(int); +} Index: src/win32/wincon.d ================================================================== --- src/win32/wincon.d +++ src/win32/wincon.d @@ -1,625 +1,277 @@ -module win32.wincon; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino - -import win32.windef; -import win32.winbase; - -// #ifndef _WINCON_ -// #define _WINCON_ - -// #ifdef __cplusplus -// extern "C" { -// #endif - -struct _COORD { - SHORT X; - SHORT Y; -} -alias _COORD COORD; -alias _COORD* PCOORD; - -struct _SMALL_RECT { - SHORT Left; - SHORT Top; - SHORT Right; - SHORT Bottom; -} -alias _SMALL_RECT SMALL_RECT; -alias _SMALL_RECT* PSMALL_RECT; - -struct _KEY_EVENT_RECORD { - BOOL bKeyDown; - WORD wRepeatCount; - WORD wVirtualKeyCode; - WORD wVirtualScanCode; -union { - WCHAR UnicodeChar; - CHAR AsciiChar; -} - - DWORD dwControlKeyState; -} -alias _KEY_EVENT_RECORD KEY_EVENT_RECORD; -alias _KEY_EVENT_RECORD* PKEY_EVENT_RECORD; - -enum : uint { RIGHT_ALT_PRESSED = 0x0001 } -enum : uint { LEFT_ALT_PRESSED = 0x0002 } -enum : uint { RIGHT_CTRL_PRESSED = 0x0004 } -enum : uint { LEFT_CTRL_PRESSED = 0x0008 } -enum : uint { SHIFT_PRESSED = 0x0010 } -enum : uint { NUMLOCK_ON = 0x0020 } -enum : uint { SCROLLLOCK_ON = 0x0040 } -enum : uint { CAPSLOCK_ON = 0x0080 } -enum : uint { ENHANCED_KEY = 0x0100 } -enum : uint { NLS_DBCSCHAR = 0x00010000 } -enum : uint { NLS_ALPHANUMERIC = 0x00000000 } -enum : uint { NLS_KATAKANA = 0x00020000 } -enum : uint { NLS_HIRAGANA = 0x00040000 } -enum : uint { NLS_ROMAN = 0x00400000 } -enum : uint { NLS_IME_CONVERSION = 0x00800000 } -enum : uint { NLS_IME_DISABLE = 0x20000000 } - -struct _MOUSE_EVENT_RECORD { - COORD dwMousePosition; - DWORD dwButtonState; - DWORD dwControlKeyState; - DWORD dwEventFlags; -} -alias _MOUSE_EVENT_RECORD MOUSE_EVENT_RECORD; -alias _MOUSE_EVENT_RECORD* PMOUSE_EVENT_RECORD; - -enum : uint { FROM_LEFT_1ST_BUTTON_PRESSED = 0x0001 } -enum : uint { RIGHTMOST_BUTTON_PRESSED = 0x0002 } -enum : uint { FROM_LEFT_2ND_BUTTON_PRESSED = 0x0004 } -enum : uint { FROM_LEFT_3RD_BUTTON_PRESSED = 0x0008 } -enum : uint { FROM_LEFT_4TH_BUTTON_PRESSED = 0x0010 } - -enum : uint { MOUSE_MOVED = 0x0001 } -enum : uint { DOUBLE_CLICK = 0x0002 } -enum : uint { MOUSE_WHEELED = 0x0004 } - -struct _WINDOW_BUFFER_SIZE_RECORD { - COORD dwSize; -} -alias _WINDOW_BUFFER_SIZE_RECORD WINDOW_BUFFER_SIZE_RECORD; -alias _WINDOW_BUFFER_SIZE_RECORD* PWINDOW_BUFFER_SIZE_RECORD; - -struct _MENU_EVENT_RECORD { - UINT dwCommandId; -} -alias _MENU_EVENT_RECORD MENU_EVENT_RECORD; -alias _MENU_EVENT_RECORD* PMENU_EVENT_RECORD; - -struct _FOCUS_EVENT_RECORD { - BOOL bSetFocus; -} -alias _FOCUS_EVENT_RECORD FOCUS_EVENT_RECORD; -alias _FOCUS_EVENT_RECORD* PFOCUS_EVENT_RECORD; - -struct _INPUT_RECORD { - WORD EventType; -union { - KEY_EVENT_RECORD KeyEvent; - MOUSE_EVENT_RECORD MouseEvent; - WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; - MENU_EVENT_RECORD MenuEvent; - FOCUS_EVENT_RECORD FocusEvent; -} - -} -alias _INPUT_RECORD INPUT_RECORD; -alias _INPUT_RECORD* PINPUT_RECORD; - -enum : uint { KEY_EVENT = 0x0001 } -enum : uint { MOUSE_EVENT = 0x0002 } -enum : uint { WINDOW_BUFFER_SIZE_EVENT = 0x0004 } -enum : uint { MENU_EVENT = 0x0008 } -enum : uint { FOCUS_EVENT = 0x0010 } - -struct _CHAR_INFO { -union { - WCHAR UnicodeChar; - CHAR AsciiChar; -} - - WORD Attributes; -} -alias _CHAR_INFO CHAR_INFO; -alias _CHAR_INFO* PCHAR_INFO; - -enum : uint { FOREGROUND_BLUE = 0x0001 } -enum : uint { FOREGROUND_GREEN = 0x0002 } -enum : uint { FOREGROUND_RED = 0x0004 } -enum : uint { FOREGROUND_INTENSITY = 0x0008 } -enum : uint { BACKGROUND_BLUE = 0x0010 } -enum : uint { BACKGROUND_GREEN = 0x0020 } -enum : uint { BACKGROUND_RED = 0x0040 } -enum : uint { BACKGROUND_INTENSITY = 0x0080 } -enum : uint { COMMON_LVB_LEADING_BYTE = 0x0100 } -enum : uint { COMMON_LVB_TRAILING_BYTE = 0x0200 } -enum : uint { COMMON_LVB_GRID_HORIZONTAL = 0x0400 } -enum : uint { COMMON_LVB_GRID_LVERTICAL = 0x0800 } -enum : uint { COMMON_LVB_GRID_RVERTICAL = 0x1000 } -enum : uint { COMMON_LVB_REVERSE_VIDEO = 0x4000 } -enum : uint { COMMON_LVB_UNDERSCORE = 0x8000 } - -enum : uint { COMMON_LVB_SBCSDBCS = 0x0300 } - -struct _CONSOLE_SCREEN_BUFFER_INFO { - COORD dwSize; - COORD dwCursorPosition; - WORD wAttributes; - SMALL_RECT srWindow; - COORD dwMaximumWindowSize; -} -alias _CONSOLE_SCREEN_BUFFER_INFO CONSOLE_SCREEN_BUFFER_INFO; -alias _CONSOLE_SCREEN_BUFFER_INFO* PCONSOLE_SCREEN_BUFFER_INFO; - -struct _CONSOLE_CURSOR_INFO { - DWORD dwSize; - BOOL bVisible; -} -alias _CONSOLE_CURSOR_INFO CONSOLE_CURSOR_INFO; -alias _CONSOLE_CURSOR_INFO* PCONSOLE_CURSOR_INFO; - -struct _CONSOLE_FONT_INFO { - DWORD nFont; - COORD dwFontSize; -} -alias _CONSOLE_FONT_INFO CONSOLE_FONT_INFO; -alias _CONSOLE_FONT_INFO* PCONSOLE_FONT_INFO; - -// #if(_WIN32_WINNT >= 0x0500) -struct _CONSOLE_SELECTION_INFO { - DWORD dwFlags; - COORD dwSelectionAnchor; - SMALL_RECT srSelection; -} -alias _CONSOLE_SELECTION_INFO CONSOLE_SELECTION_INFO; -alias _CONSOLE_SELECTION_INFO* PCONSOLE_SELECTION_INFO; - -enum : uint { CONSOLE_NO_SELECTION = 0x0000 } -enum : uint { CONSOLE_SELECTION_IN_PROGRESS = 0x0001 } -enum : uint { CONSOLE_SELECTION_NOT_EMPTY = 0x0002 } -enum : uint { CONSOLE_MOUSE_SELECTION = 0x0004 } -enum : uint { CONSOLE_MOUSE_DOWN = 0x0008 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) alias BOOL function( DWORD CtrlType ) PHANDLER_ROUTINE; - -enum : uint { CTRL_C_EVENT = 0 } -enum : uint { CTRL_BREAK_EVENT = 1 } -enum : uint { CTRL_CLOSE_EVENT = 2 } - -enum : uint { CTRL_LOGOFF_EVENT = 5 } -enum : uint { CTRL_SHUTDOWN_EVENT = 6 } - -enum : uint { ENABLE_PROCESSED_INPUT = 0x0001 } -enum : uint { ENABLE_LINE_INPUT = 0x0002 } -enum : uint { ENABLE_ECHO_INPUT = 0x0004 } -enum : uint { ENABLE_WINDOW_INPUT = 0x0008 } -enum : uint { ENABLE_MOUSE_INPUT = 0x0010 } - -enum : uint { ENABLE_PROCESSED_OUTPUT = 0x0001 } -enum : uint { ENABLE_WRAP_AT_EOL_OUTPUT = 0x0002 } - -extern(Windows) export BOOL PeekConsoleInputA( - HANDLE hConsoleInput, - PINPUT_RECORD lpBuffer, - DWORD nLength, - LPDWORD lpNumberOfEventsRead - ); -extern(Windows) export BOOL PeekConsoleInputW( - HANDLE hConsoleInput, - PINPUT_RECORD lpBuffer, - DWORD nLength, - LPDWORD lpNumberOfEventsRead - ); -// #ifdef UNICODE -alias PeekConsoleInputW PeekConsoleInput; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ReadConsoleInputA( - HANDLE hConsoleInput, - PINPUT_RECORD lpBuffer, - DWORD nLength, - LPDWORD lpNumberOfEventsRead - ); -extern(Windows) export BOOL ReadConsoleInputW( - HANDLE hConsoleInput, - PINPUT_RECORD lpBuffer, - DWORD nLength, - LPDWORD lpNumberOfEventsRead - ); -// #ifdef UNICODE -alias ReadConsoleInputW ReadConsoleInput; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL WriteConsoleInputA( - HANDLE hConsoleInput, - INPUT_RECORD *lpBuffer, - DWORD nLength, - LPDWORD lpNumberOfEventsWritten - ); -extern(Windows) export BOOL WriteConsoleInputW( - HANDLE hConsoleInput, - INPUT_RECORD *lpBuffer, - DWORD nLength, - LPDWORD lpNumberOfEventsWritten - ); -// #ifdef UNICODE -alias WriteConsoleInputW WriteConsoleInput; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ReadConsoleOutputA( - HANDLE hConsoleOutput, - PCHAR_INFO lpBuffer, - COORD dwBufferSize, - COORD dwBufferCoord, - PSMALL_RECT lpReadRegion - ); -extern(Windows) export BOOL ReadConsoleOutputW( - HANDLE hConsoleOutput, - PCHAR_INFO lpBuffer, - COORD dwBufferSize, - COORD dwBufferCoord, - PSMALL_RECT lpReadRegion - ); -// #ifdef UNICODE -alias ReadConsoleOutputW ReadConsoleOutput; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL WriteConsoleOutputA( - HANDLE hConsoleOutput, - CHAR_INFO *lpBuffer, - COORD dwBufferSize, - COORD dwBufferCoord, - PSMALL_RECT lpWriteRegion - ); -extern(Windows) export BOOL WriteConsoleOutputW( - HANDLE hConsoleOutput, - CHAR_INFO *lpBuffer, - COORD dwBufferSize, - COORD dwBufferCoord, - PSMALL_RECT lpWriteRegion - ); -// #ifdef UNICODE -alias WriteConsoleOutputW WriteConsoleOutput; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ReadConsoleOutputCharacterA( - HANDLE hConsoleOutput, - LPSTR lpCharacter, - DWORD nLength, - COORD dwReadCoord, - LPDWORD lpNumberOfCharsRead - ); -extern(Windows) export BOOL ReadConsoleOutputCharacterW( - HANDLE hConsoleOutput, - LPWSTR lpCharacter, - DWORD nLength, - COORD dwReadCoord, - LPDWORD lpNumberOfCharsRead - ); -// #ifdef UNICODE -alias ReadConsoleOutputCharacterW ReadConsoleOutputCharacter; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ReadConsoleOutputAttribute( - HANDLE hConsoleOutput, - LPWORD lpAttribute, - DWORD nLength, - COORD dwReadCoord, - LPDWORD lpNumberOfAttrsRead - ); - -extern(Windows) export BOOL WriteConsoleOutputCharacterA( - HANDLE hConsoleOutput, - LPCSTR lpCharacter, - DWORD nLength, - COORD dwWriteCoord, - LPDWORD lpNumberOfCharsWritten - ); -extern(Windows) export BOOL WriteConsoleOutputCharacterW( - HANDLE hConsoleOutput, - LPCWSTR lpCharacter, - DWORD nLength, - COORD dwWriteCoord, - LPDWORD lpNumberOfCharsWritten - ); -// #ifdef UNICODE -alias WriteConsoleOutputCharacterW WriteConsoleOutputCharacter; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL WriteConsoleOutputAttribute( - HANDLE hConsoleOutput, - WORD *lpAttribute, - DWORD nLength, - COORD dwWriteCoord, - LPDWORD lpNumberOfAttrsWritten - ); - -extern(Windows) export BOOL FillConsoleOutputCharacterA( - HANDLE hConsoleOutput, - CHAR cCharacter, - DWORD nLength, - COORD dwWriteCoord, - LPDWORD lpNumberOfCharsWritten - ); -extern(Windows) export BOOL FillConsoleOutputCharacterW( - HANDLE hConsoleOutput, - WCHAR cCharacter, - DWORD nLength, - COORD dwWriteCoord, - LPDWORD lpNumberOfCharsWritten - ); -// #ifdef UNICODE -alias FillConsoleOutputCharacterW FillConsoleOutputCharacter; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL FillConsoleOutputAttribute( - HANDLE hConsoleOutput, - WORD wAttribute, - DWORD nLength, - COORD dwWriteCoord, - LPDWORD lpNumberOfAttrsWritten - ); - -extern(Windows) export BOOL GetConsoleMode( - HANDLE hConsoleHandle, - LPDWORD lpMode - ); - -extern(Windows) export BOOL GetNumberOfConsoleInputEvents( - HANDLE hConsoleInput, - LPDWORD lpNumberOfEvents - ); - -extern(Windows) export BOOL GetConsoleScreenBufferInfo( - HANDLE hConsoleOutput, - PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo - ); - -extern(Windows) export COORD GetLargestConsoleWindowSize( - HANDLE hConsoleOutput - ); - -extern(Windows) export BOOL GetConsoleCursorInfo( - HANDLE hConsoleOutput, - PCONSOLE_CURSOR_INFO lpConsoleCursorInfo - ); - -// #if(_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL GetCurrentConsoleFont( - HANDLE hConsoleOutput, - BOOL bMaximumWindow, - PCONSOLE_FONT_INFO lpConsoleCurrentFont - ); - -extern(Windows) export COORD GetConsoleFontSize( - HANDLE hConsoleOutput, - DWORD nFont - ); - -extern(Windows) export BOOL GetConsoleSelectionInfo( - PCONSOLE_SELECTION_INFO lpConsoleSelectionInfo - ); - -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export BOOL GetNumberOfConsoleMouseButtons( - LPDWORD lpNumberOfMouseButtons - ); - -extern(Windows) export BOOL SetConsoleMode( - HANDLE hConsoleHandle, - DWORD dwMode - ); - -extern(Windows) export BOOL SetConsoleActiveScreenBuffer( - HANDLE hConsoleOutput - ); - -extern(Windows) export BOOL FlushConsoleInputBuffer( - HANDLE hConsoleInput - ); - -extern(Windows) export BOOL SetConsoleScreenBufferSize( - HANDLE hConsoleOutput, - COORD dwSize - ); - -extern(Windows) export BOOL SetConsoleCursorPosition( - HANDLE hConsoleOutput, - COORD dwCursorPosition - ); - -extern(Windows) export BOOL SetConsoleCursorInfo( - HANDLE hConsoleOutput, - CONSOLE_CURSOR_INFO *lpConsoleCursorInfo - ); - -extern(Windows) export BOOL ScrollConsoleScreenBufferA( - HANDLE hConsoleOutput, - SMALL_RECT *lpScrollRectangle, - SMALL_RECT *lpClipRectangle, - COORD dwDestinationOrigin, - CHAR_INFO *lpFill - ); -extern(Windows) export BOOL ScrollConsoleScreenBufferW( - HANDLE hConsoleOutput, - SMALL_RECT *lpScrollRectangle, - SMALL_RECT *lpClipRectangle, - COORD dwDestinationOrigin, - CHAR_INFO *lpFill - ); -// #ifdef UNICODE -alias ScrollConsoleScreenBufferW ScrollConsoleScreenBuffer; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetConsoleWindowInfo( - HANDLE hConsoleOutput, - BOOL bAbsolute, - SMALL_RECT *lpConsoleWindow - ); - -extern(Windows) export BOOL SetConsoleTextAttribute( - HANDLE hConsoleOutput, - WORD wAttributes - ); - -extern(Windows) export BOOL SetConsoleCtrlHandler( - PHANDLER_ROUTINE HandlerRoutine, - BOOL Add - ); - -extern(Windows) export BOOL GenerateConsoleCtrlEvent( - DWORD dwCtrlEvent, - DWORD dwProcessGroupId - ); - -extern(Windows) export BOOL AllocConsole(); - -extern(Windows) export BOOL FreeConsole(); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL AttachConsole( - DWORD dwProcessId - ); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export DWORD GetConsoleTitleA( - LPSTR lpConsoleTitle, - DWORD nSize - ); -extern(Windows) export DWORD GetConsoleTitleW( - LPWSTR lpConsoleTitle, - DWORD nSize - ); -// #ifdef UNICODE -alias GetConsoleTitleW GetConsoleTitle; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetConsoleTitleA( - LPCSTR lpConsoleTitle - ); -extern(Windows) export BOOL SetConsoleTitleW( - LPCWSTR lpConsoleTitle - ); -// #ifdef UNICODE -alias SetConsoleTitleW SetConsoleTitle; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ReadConsoleA( - HANDLE hConsoleInput, - LPVOID lpBuffer, - DWORD nNumberOfCharsToRead, - LPDWORD lpNumberOfCharsRead, - LPVOID lpReserved - ); -extern(Windows) export BOOL ReadConsoleW( - HANDLE hConsoleInput, - LPVOID lpBuffer, - DWORD nNumberOfCharsToRead, - LPDWORD lpNumberOfCharsRead, - LPVOID lpReserved - ); -// #ifdef UNICODE -alias ReadConsoleW ReadConsole; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL WriteConsoleA( - HANDLE hConsoleOutput, - VOID *lpBuffer, - DWORD nNumberOfCharsToWrite, - LPDWORD lpNumberOfCharsWritten, - LPVOID lpReserved - ); -extern(Windows) export BOOL WriteConsoleW( - HANDLE hConsoleOutput, - VOID *lpBuffer, - DWORD nNumberOfCharsToWrite, - LPDWORD lpNumberOfCharsWritten, - LPVOID lpReserved - ); -// #ifdef UNICODE -alias WriteConsoleW WriteConsole; -// #else -// #... -// #endif // !UNICODE - -enum : uint { CONSOLE_TEXTMODE_BUFFER = 1 } - -extern(Windows) export HANDLE CreateConsoleScreenBuffer( - DWORD dwDesiredAccess, - DWORD dwShareMode, - SECURITY_ATTRIBUTES *lpSecurityAttributes, - DWORD dwFlags, - LPVOID lpScreenBufferData - ); - -extern(Windows) export UINT GetConsoleCP(); - -extern(Windows) export BOOL SetConsoleCP( - UINT wCodePageID - ); - -extern(Windows) export UINT GetConsoleOutputCP(); - -extern(Windows) export BOOL SetConsoleOutputCP( - UINT wCodePageID - ); - -// #if(_WIN32_WINNT >= 0x0500) - -enum : uint { CONSOLE_FULLSCREEN = 1 } -enum : uint { CONSOLE_FULLSCREEN_HARDWARE = 2 } - -extern(Windows) export BOOL GetConsoleDisplayMode( - LPDWORD lpModeFlags - ); - -extern(Windows) export HWND GetConsoleWindow(); - -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0501) - -extern(Windows) export DWORD GetConsoleProcessList( - LPDWORD lpdwProcessList, - DWORD dwProcessCount); -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #ifdef __cplusplus -// } -// #endif - -// #endif // _WINCON_ - +/***********************************************************************\ +* wincon.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.wincon; +pragma(lib, "kernel32.lib"); + +private import win32.w32api, win32.windef; + +// FIXME: clean up Windows version support + +enum { + FOREGROUND_BLUE = 1, + FOREGROUND_GREEN = 2, + FOREGROUND_RED = 4, + FOREGROUND_INTENSITY = 8, + BACKGROUND_BLUE = 16, + BACKGROUND_GREEN = 32, + BACKGROUND_RED = 64, + BACKGROUND_INTENSITY = 128 +} + +static if (_WIN32_WINNT >= 0x0501) { + enum { + CONSOLE_FULLSCREEN_MODE = 1, + CONSOLE_WINDOWED_MODE = 0 + } +} + +enum { + CTRL_C_EVENT = 0, + CTRL_BREAK_EVENT = 1, + CTRL_CLOSE_EVENT = 2, + CTRL_LOGOFF_EVENT = 5, + CTRL_SHUTDOWN_EVENT = 6 +} + +enum { + ENABLE_PROCESSED_INPUT = 1, + ENABLE_LINE_INPUT = 2, + ENABLE_ECHO_INPUT = 4, + ENABLE_WINDOW_INPUT = 8, + ENABLE_MOUSE_INPUT = 16 +} + +enum { + ENABLE_PROCESSED_OUTPUT = 1, + ENABLE_WRAP_AT_EOL_OUTPUT = 2 +} + +enum { + KEY_EVENT = 1, + MOUSE_EVENT = 2, + WINDOW_BUFFER_SIZE_EVENT = 4, + MENU_EVENT = 8, + FOCUS_EVENT = 16 +} +enum { + RIGHT_ALT_PRESSED = 1, + LEFT_ALT_PRESSED = 2, + RIGHT_CTRL_PRESSED = 4, + LEFT_CTRL_PRESSED = 8, + SHIFT_PRESSED = 16, + NUMLOCK_ON = 32, + SCROLLLOCK_ON = 64, + CAPSLOCK_ON = 128, + ENHANCED_KEY = 256 +} +enum { + FROM_LEFT_1ST_BUTTON_PRESSED = 1, + RIGHTMOST_BUTTON_PRESSED = 2, + FROM_LEFT_2ND_BUTTON_PRESSED = 4, + FROM_LEFT_3RD_BUTTON_PRESSED = 8, + FROM_LEFT_4TH_BUTTON_PRESSED = 16 +} + +enum { + MOUSE_MOVED = 1, + DOUBLE_CLICK = 2, + MOUSE_WHEELED = 4 +} + +struct CHAR_INFO { + union _Char { + WCHAR UnicodeChar; + CHAR AsciiChar; + } + _Char Char; + WORD Attributes; +} +alias CHAR_INFO* PCHAR_INFO; + +struct SMALL_RECT { + SHORT Left; + SHORT Top; + SHORT Right; + SHORT Bottom; +} +alias SMALL_RECT* PSMALL_RECT; + +struct CONSOLE_CURSOR_INFO { + DWORD dwSize; + BOOL bVisible; +} +alias CONSOLE_CURSOR_INFO* PCONSOLE_CURSOR_INFO; + +struct COORD { + SHORT X; + SHORT Y; +} +alias COORD* PCOORD; + +struct CONSOLE_FONT_INFO { + DWORD nFont; + COORD dwFontSize; +} +alias CONSOLE_FONT_INFO* PCONSOLE_FONT_INFO; + +struct CONSOLE_SCREEN_BUFFER_INFO { + COORD dwSize; + COORD dwCursorPosition; + WORD wAttributes; + SMALL_RECT srWindow; + COORD dwMaximumWindowSize; +} +alias CONSOLE_SCREEN_BUFFER_INFO* PCONSOLE_SCREEN_BUFFER_INFO; + +alias BOOL function(DWORD) PHANDLER_ROUTINE; + +struct KEY_EVENT_RECORD { + BOOL bKeyDown; + WORD wRepeatCount; + WORD wVirtualKeyCode; + WORD wVirtualScanCode; + union _uChar { + WCHAR UnicodeChar; + CHAR AsciiChar; + } + _uChar uChar; + DWORD dwControlKeyState; +} + +struct MOUSE_EVENT_RECORD { + COORD dwMousePosition; + DWORD dwButtonState; + DWORD dwControlKeyState; + DWORD dwEventFlags; +} + +struct WINDOW_BUFFER_SIZE_RECORD { + COORD dwSize; +} + +struct MENU_EVENT_RECORD { + UINT dwCommandId; +} +alias MENU_EVENT_RECORD* PMENU_EVENT_RECORD; + +struct FOCUS_EVENT_RECORD { + BOOL bSetFocus; +} + +struct INPUT_RECORD { + WORD EventType; + union _Event { + KEY_EVENT_RECORD KeyEvent; + MOUSE_EVENT_RECORD MouseEvent; + WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; + MENU_EVENT_RECORD MenuEvent; + FOCUS_EVENT_RECORD FocusEvent; + } + _Event Event; +} +alias INPUT_RECORD* PINPUT_RECORD; + +extern (Windows): + +BOOL AllocConsole(); +HANDLE CreateConsoleScreenBuffer(DWORD, DWORD, SECURITY_ATTRIBUTES*, DWORD, LPVOID); +BOOL FillConsoleOutputAttribute(HANDLE, WORD, DWORD, COORD, PDWORD); +BOOL FillConsoleOutputCharacterA(HANDLE, CHAR, DWORD, COORD, PDWORD); +BOOL FillConsoleOutputCharacterW(HANDLE, WCHAR, DWORD, COORD, PDWORD); +BOOL FlushConsoleInputBuffer(HANDLE); +BOOL FreeConsole(); +BOOL GenerateConsoleCtrlEvent(DWORD, DWORD); +UINT GetConsoleCP(); +BOOL GetConsoleCursorInfo(HANDLE, PCONSOLE_CURSOR_INFO); +BOOL GetConsoleMode(HANDLE,PDWORD); +UINT GetConsoleOutputCP(); +BOOL GetConsoleScreenBufferInfo(HANDLE, PCONSOLE_SCREEN_BUFFER_INFO); +DWORD GetConsoleTitleA(LPSTR, DWORD); +DWORD GetConsoleTitleW(LPWSTR, DWORD); +COORD GetLargestConsoleWindowSize(HANDLE); +BOOL GetNumberOfConsoleInputEvents(HANDLE, PDWORD); +BOOL GetNumberOfConsoleMouseButtons(PDWORD); +BOOL PeekConsoleInputA(HANDLE, PINPUT_RECORD, DWORD, PDWORD); +BOOL PeekConsoleInputW(HANDLE, PINPUT_RECORD, DWORD, PDWORD); +BOOL ReadConsoleA(HANDLE, PVOID, DWORD, PDWORD, PVOID); +BOOL ReadConsoleW(HANDLE, PVOID, DWORD, PDWORD, PVOID); +BOOL ReadConsoleInputA(HANDLE, PINPUT_RECORD, DWORD, PDWORD); +BOOL ReadConsoleInputW(HANDLE, PINPUT_RECORD, DWORD, PDWORD); +BOOL ReadConsoleOutputAttribute(HANDLE, LPWORD, DWORD, COORD, LPDWORD); +BOOL ReadConsoleOutputCharacterA(HANDLE, LPSTR, DWORD, COORD, PDWORD); +BOOL ReadConsoleOutputCharacterW(HANDLE, LPWSTR, DWORD, COORD, PDWORD); +BOOL ReadConsoleOutputA(HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT); +BOOL ReadConsoleOutputW(HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT); +BOOL ScrollConsoleScreenBufferA(HANDLE, CPtr!(SMALL_RECT), CPtr!(SMALL_RECT), COORD, CPtr!(CHAR_INFO)); +BOOL ScrollConsoleScreenBufferW(HANDLE, CPtr!(SMALL_RECT), CPtr!(SMALL_RECT), COORD, CPtr!(CHAR_INFO)); +BOOL SetConsoleActiveScreenBuffer(HANDLE); +BOOL SetConsoleCP(UINT); +BOOL SetConsoleCtrlHandler(PHANDLER_ROUTINE, BOOL); +BOOL SetConsoleCursorInfo(HANDLE, CPtr!(CONSOLE_CURSOR_INFO)); +BOOL SetConsoleCursorPosition(HANDLE, COORD); + + +static if (_WIN32_WINNT >= 0x0500) { +BOOL GetConsoleDisplayMode(LPDWORD); +HWND GetConsoleWindow(); +} + +static if (_WIN32_WINNT >= 0x0501) { +BOOL AttachConsole(DWORD); +BOOL SetConsoleDisplayMode(HANDLE, DWORD, PCOORD); +const DWORD ATTACH_PARENT_PROCESS = cast(DWORD)-1; +} + +BOOL SetConsoleMode(HANDLE, DWORD); +BOOL SetConsoleOutputCP(UINT); +BOOL SetConsoleScreenBufferSize(HANDLE, COORD); +BOOL SetConsoleTextAttribute(HANDLE, WORD); +BOOL SetConsoleTitleA(LPCSTR); +BOOL SetConsoleTitleW(LPCWSTR); +BOOL SetConsoleWindowInfo(HANDLE, BOOL, CPtr!(SMALL_RECT)); +BOOL WriteConsoleA(HANDLE, PCVOID, DWORD, PDWORD, PVOID); +BOOL WriteConsoleW(HANDLE, PCVOID, DWORD, PDWORD, PVOID); +BOOL WriteConsoleInputA(HANDLE, CPtr!(INPUT_RECORD), DWORD, PDWORD); +BOOL WriteConsoleInputW(HANDLE, CPtr!(INPUT_RECORD), DWORD, PDWORD); +BOOL WriteConsoleOutputA(HANDLE, CPtr!(CHAR_INFO), COORD, COORD, PSMALL_RECT); +BOOL WriteConsoleOutputW(HANDLE, CPtr!(CHAR_INFO), COORD, COORD, PSMALL_RECT); +BOOL WriteConsoleOutputAttribute(HANDLE, CPtr!(WORD), DWORD, COORD, PDWORD); +BOOL WriteConsoleOutputCharacterA(HANDLE, LPCSTR, DWORD, COORD, PDWORD); +BOOL WriteConsoleOutputCharacterW(HANDLE, LPCWSTR, DWORD, COORD, PDWORD); + +version (Unicode) { + alias FillConsoleOutputCharacterW FillConsoleOutputCharacter; + alias GetConsoleTitleW GetConsoleTitle; + alias PeekConsoleInputW PeekConsoleInput; + alias ReadConsoleW ReadConsole; + alias ReadConsoleInputW ReadConsoleInput; + alias ReadConsoleOutputW ReadConsoleOutput; + alias ReadConsoleOutputCharacterW ReadConsoleOutputCharacter; + alias ScrollConsoleScreenBufferW ScrollConsoleScreenBuffer; + alias SetConsoleTitleW SetConsoleTitle; + alias WriteConsoleW WriteConsole; + alias WriteConsoleInputW WriteConsoleInput; + alias WriteConsoleOutputW WriteConsoleOutput; + alias WriteConsoleOutputCharacterW WriteConsoleOutputCharacter; +} else { + alias FillConsoleOutputCharacterA FillConsoleOutputCharacter; + alias GetConsoleTitleA GetConsoleTitle; + alias PeekConsoleInputA PeekConsoleInput; + alias ReadConsoleA ReadConsole; + alias ReadConsoleInputA ReadConsoleInput; + alias ReadConsoleOutputA ReadConsoleOutput; + alias ReadConsoleOutputCharacterA ReadConsoleOutputCharacter; + alias ScrollConsoleScreenBufferA ScrollConsoleScreenBuffer; + alias SetConsoleTitleA SetConsoleTitle; + alias WriteConsoleA WriteConsole; + alias WriteConsoleInputA WriteConsoleInput; + alias WriteConsoleOutputA WriteConsoleOutput; + alias WriteConsoleOutputCharacterA WriteConsoleOutputCharacter; +} ADDED src/win32/wincrypt.d Index: src/win32/wincrypt.d ================================================================== --- src/win32/wincrypt.d +++ src/win32/wincrypt.d @@ -0,0 +1,790 @@ +/***********************************************************************\ +* wincrypt.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.wincrypt; + +private import win32.w32api, win32.winbase, win32.windef; + +/* FIXME: + * Types of some constants + * Types of macros + * Inits of various "size" and "version" members + * Why are some #ifdefs commented out? + */ + +const TCHAR[] + MS_DEF_PROV = "Microsoft Base Cryptographic Provider v1.0", + MS_ENHANCED_PROV = "Microsoft Enhanced Cryptographic Provider v1.0", + MS_STRONG_PROV = "Microsoft Strong Cryptographic Provider", + MS_DEF_RSA_SIG_PROV = "Microsoft RSA Signature Cryptographic Provider", + MS_DEF_RSA_SCHANNEL_PROV = "Microsoft RSA SChannel Cryptographic Provider", + MS_DEF_DSS_PROV = "Microsoft Base DSS Cryptographic Provider", + MS_DEF_DSS_DH_PROV + = "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider", + MS_ENH_DSS_DH_PROV + = "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider", + MS_DEF_DH_SCHANNEL_PROV = "Microsoft DH SChannel Cryptographic Provider", + MS_SCARD_PROV = "Microsoft Base Smart Card Crypto Provider"; + +static if (WINVER > 0x501) { + const TCHAR[] MS_ENH_RSA_AES_PROV + = "Microsoft Enhanced RSA and AES Cryptographic Provider"; +} else static if (WINVER == 0x501) { + const TCHAR[] MS_ENH_RSA_AES_PROV + = "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"; +} + +ALG_ID GET_ALG_CLASS(ALG_ID x) { return x & 0xE000; } +ALG_ID GET_ALG_TYPE (ALG_ID x) { return x & 0x1E00; } +ALG_ID GET_ALG_SID (ALG_ID x) { return x & 0x01FF; } + +enum : ALG_ID { + ALG_CLASS_ANY = 0, + ALG_CLASS_SIGNATURE = 0x2000, + ALG_CLASS_MSG_ENCRYPT = 0x4000, + ALG_CLASS_DATA_ENCRYPT = 0x6000, + ALG_CLASS_HASH = 0x8000, + ALG_CLASS_KEY_EXCHANGE = 0xA000, + ALG_CLASS_ALL = 0xE000 +} + +enum : ALG_ID { + ALG_TYPE_ANY = 0, + ALG_TYPE_DSS = 0x0200, + ALG_TYPE_RSA = 0x0400, + ALG_TYPE_BLOCK = 0x0600, + ALG_TYPE_STREAM = 0x0800, + ALG_TYPE_DH = 0x0A00, + ALG_TYPE_SECURECHANNEL = 0x0C00 +} + +enum : ALG_ID { + ALG_SID_ANY = 0, + ALG_SID_RSA_ANY = 0, + ALG_SID_RSA_PKCS, + ALG_SID_RSA_MSATWORK, + ALG_SID_RSA_ENTRUST, + ALG_SID_RSA_PGP, // = 4 + ALG_SID_DSS_ANY = 0, + ALG_SID_DSS_PKCS, + ALG_SID_DSS_DMS, // = 2 + ALG_SID_DES = 1, + ALG_SID_3DES = 3, + ALG_SID_DESX, + ALG_SID_IDEA, + ALG_SID_CAST, + ALG_SID_SAFERSK64, + ALG_SID_SAFERSK128, + ALG_SID_3DES_112, + ALG_SID_SKIPJACK, + ALG_SID_TEK, + ALG_SID_CYLINK_MEK, + ALG_SID_RC5, // = 13 + ALG_SID_RC2 = 2, + ALG_SID_RC4 = 1, + ALG_SID_SEAL = 2, + ALG_SID_MD2 = 1, + ALG_SID_MD4, + ALG_SID_MD5, + ALG_SID_SHA, + ALG_SID_MAC, + ALG_SID_RIPEMD, + ALG_SID_RIPEMD160, + ALG_SID_SSL3SHAMD5, + ALG_SID_HMAC, + ALG_SID_TLS1PRF, // = 10 + ALG_SID_AES_128 = 14, + ALG_SID_AES_192, + ALG_SID_AES_256, + ALG_SID_AES, // = 17 + ALG_SID_EXAMPLE = 80 +} + +enum : ALG_ID { + CALG_MD2 = ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD2, + CALG_MD4 = ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD4, + CALG_MD5 = ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD5, + CALG_SHA = ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA, + CALG_SHA1 = CALG_SHA, + CALG_MAC = ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MAC, + CALG_3DES = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | 3, + CALG_CYLINK_MEK = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | 12, + CALG_SKIPJACK = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | 10, + CALG_KEA_KEYX = ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_STREAM | ALG_TYPE_DSS | 4, + CALG_RSA_SIGN = ALG_CLASS_SIGNATURE | ALG_TYPE_RSA | ALG_SID_RSA_ANY, + CALG_DSS_SIGN = ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_DSS_ANY, + CALG_RSA_KEYX = ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_RSA | ALG_SID_RSA_ANY, + CALG_DES = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_DES, + CALG_RC2 = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_RC2, + CALG_RC4 = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_RC4, + CALG_SEAL = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_SEAL, + CALG_DH_EPHEM = ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_STREAM | ALG_TYPE_DSS + | ALG_SID_DSS_DMS, + CALG_DESX = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_DESX, +// is undefined ALG_CLASS_DHASH in MinGW - presuming typo + CALG_TLS1PRF = ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_TLS1PRF, + CALG_AES_128 = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_128, + CALG_AES_192 = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_192, + CALG_AES_256 = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_256, + CALG_AES = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES, +} + +/+ +#define CRYPT_VERIFYCONTEXT 0xF0000000 +#define CRYPT_NEWKEYSET 8 +#define CRYPT_DELETEKEYSET 16 +#define CRYPT_MACHINE_KEYSET 32 +#define CRYPT_SILENT 64 +#define CRYPT_EXPORTABLE 1 +#define CRYPT_USER_PROTECTED 2 +#define CRYPT_CREATE_SALT 4 +#define CRYPT_UPDATE_KEY 8 +#define SIMPLEBLOB 1 +#define PUBLICKEYBLOB 6 +#define PRIVATEKEYBLOB 7 +#define PLAINTEXTKEYBLOB 8 +#define OPAQUEKEYBLOB 9 +#define PUBLICKEYBLOBEX 10 +#define SYMMETRICWRAPKEYBLOB 11 +#define AT_KEYEXCHANGE 1 +#define AT_SIGNATURE 2 +#define CRYPT_USERDATA 1 +#define PKCS5_PADDING 1 +#define CRYPT_MODE_CBC 1 +#define CRYPT_MODE_ECB 2 +#define CRYPT_MODE_OFB 3 +#define CRYPT_MODE_CFB 4 +#define CRYPT_MODE_CTS 5 +#define CRYPT_MODE_CBCI 6 +#define CRYPT_MODE_CFBP 7 +#define CRYPT_MODE_OFBP 8 +#define CRYPT_MODE_CBCOFM 9 +#define CRYPT_MODE_CBCOFMI 10 +#define CRYPT_ENCRYPT 1 +#define CRYPT_DECRYPT 2 +#define CRYPT_EXPORT 4 +#define CRYPT_READ 8 +#define CRYPT_WRITE 16 +#define CRYPT_MAC 32 +#define HP_ALGID 1 +#define HP_HASHVAL 2 +#define HP_HASHSIZE 4 +#define HP_HMAC_INFO 5 +#define CRYPT_FAILED FALSE +#define CRYPT_SUCCEED TRUE +#define RCRYPT_SUCCEEDED(r) ((r)==CRYPT_SUCCEED) +#define RCRYPT_FAILED(r) ((r)==CRYPT_FAILED) +#define PP_ENUMALGS 1 +#define PP_ENUMCONTAINERS 2 +#define PP_IMPTYPE 3 +#define PP_NAME 4 +#define PP_VERSION 5 +#define PP_CONTAINER 6 +#define PP_CHANGE_PASSWORD 7 +#define PP_KEYSET_SEC_DESCR 8 +#define PP_CERTCHAIN 9 +#define PP_KEY_TYPE_SUBTYPE 10 +#define PP_PROVTYPE 16 +#define PP_KEYSTORAGE 17 +#define PP_APPLI_CERT 18 +#define PP_SYM_KEYSIZE 19 +#define PP_SESSION_KEYSIZE 20 +#define PP_UI_PROMPT 21 +#define PP_ENUMALGS_EX 22 +#define PP_ENUMMANDROOTS 25 +#define PP_ENUMELECTROOTS 26 +#define PP_KEYSET_TYPE 27 +#define PP_ADMIN_PIN 31 +#define PP_KEYEXCHANGE_PIN 32 +#define PP_SIGNATURE_PIN 33 +#define PP_SIG_KEYSIZE_INC 34 +#define PP_KEYX_KEYSIZE_INC 35 +#define PP_UNIQUE_CONTAINER 36 +#define PP_SGC_INFO 37 +#define PP_USE_HARDWARE_RNG 38 +#define PP_KEYSPEC 39 +#define PP_ENUMEX_SIGNING_PROT 40 +#define CRYPT_FIRST 1 +#define CRYPT_NEXT 2 +#define CRYPT_IMPL_HARDWARE 1 +#define CRYPT_IMPL_SOFTWARE 2 +#define CRYPT_IMPL_MIXED 3 +#define CRYPT_IMPL_UNKNOWN 4 +#define PROV_RSA_FULL 1 +#define PROV_RSA_SIG 2 +#define PROV_DSS 3 +#define PROV_FORTEZZA 4 +#define PROV_MS_MAIL 5 +#define PROV_SSL 6 +#define PROV_STT_MER 7 +#define PROV_STT_ACQ 8 +#define PROV_STT_BRND 9 +#define PROV_STT_ROOT 10 +#define PROV_STT_ISS 11 +#define PROV_RSA_SCHANNEL 12 +#define PROV_DSS_DH 13 +#define PROV_EC_ECDSA_SIG 14 +#define PROV_EC_ECNRA_SIG 15 +#define PROV_EC_ECDSA_FULL 16 +#define PROV_EC_ECNRA_FULL 17 +#define PROV_DH_SCHANNEL 18 +#define PROV_SPYRUS_LYNKS 20 +#define PROV_RNG 21 +#define PROV_INTEL_SEC 22 +#define PROV_RSA_AES 24 +#define MAXUIDLEN 64 +#define CUR_BLOB_VERSION 2 +#define X509_ASN_ENCODING 1 +#define PKCS_7_ASN_ENCODING 65536 +#define CERT_V1 0 +#define CERT_V2 1 +#define CERT_V3 2 +#define CERT_E_CHAINING (-2146762486) +#define CERT_E_CN_NO_MATCH (-2146762481) +#define CERT_E_EXPIRED (-2146762495) +#define CERT_E_PURPOSE (-2146762490) +#define CERT_E_REVOCATION_FAILURE (-2146762482) +#define CERT_E_REVOKED (-2146762484) +#define CERT_E_ROLE (-2146762493) +#define CERT_E_UNTRUSTEDROOT (-2146762487) +#define CERT_E_UNTRUSTEDTESTROOT (-2146762483) +#define CERT_E_VALIDITYPERIODNESTING (-2146762494) +#define CERT_E_WRONG_USAGE (-2146762480) +#define CERT_E_PATHLENCONST (-2146762492) +#define CERT_E_CRITICAL (-2146762491) +#define CERT_E_ISSUERCHAINING (-2146762489) +#define CERT_E_MALFORMED (-2146762488) +#define CRYPT_E_REVOCATION_OFFLINE (-2146885613) +#define CRYPT_E_REVOKED (-2146885616) +#define TRUST_E_BASIC_CONSTRAINTS (-2146869223) +#define TRUST_E_CERT_SIGNATURE (-2146869244) +#define TRUST_E_FAIL (-2146762485) +#define CERT_TRUST_NO_ERROR 0 +#define CERT_TRUST_IS_NOT_TIME_VALID 1 +#define CERT_TRUST_IS_NOT_TIME_NESTED 2 +#define CERT_TRUST_IS_REVOKED 4 +#define CERT_TRUST_IS_NOT_SIGNATURE_VALID 8 +#define CERT_TRUST_IS_NOT_VALID_FOR_USAGE 16 +#define CERT_TRUST_IS_UNTRUSTED_ROOT 32 +#define CERT_TRUST_REVOCATION_STATUS_UNKNOWN 64 +#define CERT_TRUST_IS_CYCLIC 128 +#define CERT_TRUST_IS_PARTIAL_CHAIN 65536 +#define CERT_TRUST_CTL_IS_NOT_TIME_VALID 131072 +#define CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID 262144 +#define CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE 524288 +#define CERT_TRUST_HAS_EXACT_MATCH_ISSUER 1 +#define CERT_TRUST_HAS_KEY_MATCH_ISSUER 2 +#define CERT_TRUST_HAS_NAME_MATCH_ISSUER 4 +#define CERT_TRUST_IS_SELF_SIGNED 8 +#define CERT_TRUST_IS_COMPLEX_CHAIN 65536 +#define CERT_CHAIN_POLICY_BASE ((LPCSTR) 1) +#define CERT_CHAIN_POLICY_AUTHENTICODE ((LPCSTR) 2) +#define CERT_CHAIN_POLICY_AUTHENTICODE_TS ((LPCSTR) 3) +#define CERT_CHAIN_POLICY_SSL ((LPCSTR) 4) +#define CERT_CHAIN_POLICY_BASIC_CONSTRAINTS ((LPCSTR) 5) +#define CERT_CHAIN_POLICY_NT_AUTH ((LPCSTR) 6) +#define USAGE_MATCH_TYPE_AND 0 +#define USAGE_MATCH_TYPE_OR 1 +#define CERT_SIMPLE_NAME_STR 1 +#define CERT_OID_NAME_STR 2 +#define CERT_X500_NAME_STR 3 +#define CERT_NAME_STR_SEMICOLON_FLAG 1073741824 +#define CERT_NAME_STR_CRLF_FLAG 134217728 +#define CERT_NAME_STR_NO_PLUS_FLAG 536870912 +#define CERT_NAME_STR_NO_QUOTING_FLAG 268435456 +#define CERT_NAME_STR_REVERSE_FLAG 33554432 +#define CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG 131072 +#define CERT_FIND_ANY 0 +#define CERT_FIND_CERT_ID 1048576 +#define CERT_FIND_CTL_USAGE 655360 +#define CERT_FIND_ENHKEY_USAGE 655360 +#define CERT_FIND_EXISTING 851968 +#define CERT_FIND_HASH 65536 +#define CERT_FIND_ISSUER_ATTR 196612 +#define CERT_FIND_ISSUER_NAME 131076 +#define CERT_FIND_ISSUER_OF 786432 +#define CERT_FIND_KEY_IDENTIFIER 983040 +#define CERT_FIND_KEY_SPEC 589824 +#define CERT_FIND_MD5_HASH 262144 +#define CERT_FIND_PROPERTY 327680 +#define CERT_FIND_PUBLIC_KEY 393216 +#define CERT_FIND_SHA1_HASH 65536 +#define CERT_FIND_SIGNATURE_HASH 917504 +#define CERT_FIND_SUBJECT_ATTR 196615 +#define CERT_FIND_SUBJECT_CERT 720896 +#define CERT_FIND_SUBJECT_NAME 131079 +#define CERT_FIND_SUBJECT_STR_A 458759 +#define CERT_FIND_SUBJECT_STR_W 524295 +#define CERT_FIND_ISSUER_STR_A 458756 +#define CERT_FIND_ISSUER_STR_W 524292 +#define CERT_FIND_OR_ENHKEY_USAGE_FLAG 16 +#define CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG 1 +#define CERT_FIND_NO_ENHKEY_USAGE_FLAG 8 +#define CERT_FIND_VALID_ENHKEY_USAGE_FLAG 32 +#define CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG 2 +#define CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG 2 +#define CERT_UNICODE_IS_RDN_ATTRS_FLAG 1 +#define CERT_CHAIN_FIND_BY_ISSUER 1 +#define CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG 1 +#define CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG 2 +#define CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG 32768 +#define CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG 4 +#define CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG 8 +#define CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG 16384 +#define CERT_STORE_PROV_SYSTEM 10 +#define CERT_SYSTEM_STORE_LOCAL_MACHINE 131072 +#define szOID_PKIX_KP_SERVER_AUTH "4235600" +#define szOID_SERVER_GATED_CRYPTO "4235658" +#define szOID_SGC_NETSCAPE "2.16.840.1.113730.4.1" +#define szOID_PKIX_KP_CLIENT_AUTH "1.3.6.1.5.5.7.3.2" +#define CRYPT_NOHASHOID 0x00000001 +#define CRYPT_NO_SALT 0x10 +#define CRYPT_PREGEN 0x40 +#define CRYPT_RECIPIENT 0x10 +#define CRYPT_INITIATOR 0x40 +#define CRYPT_ONLINE 0x80 +#define CRYPT_SF 0x100 +#define CRYPT_CREATE_IV 0x200 +#define CRYPT_KEK 0x400 +#define CRYPT_DATA_KEY 0x800 +#define CRYPT_VOLATILE 0x1000 +#define CRYPT_SGCKEY 0x2000 +#define KP_IV 0x00000001 +#define KP_SALT 0x00000002 +#define KP_PADDING 0x00000003 +#define KP_MODE 0x00000004 +#define KP_MODE_BITS 0x00000005 +#define KP_PERMISSIONS 0x00000006 +#define KP_ALGID 0x00000007 +#define KP_BLOCKLEN 0x00000008 +#define KP_KEYLEN 0x00000009 +#define KP_SALT_EX 0x0000000a +#define KP_P 0x0000000b +#define KP_G 0x0000000c +#define KP_Q 0x0000000d +#define KP_X 0x0000000e +#define KP_Y 0x0000000f +#define KP_RA 0x00000010 +#define KP_RB 0x00000011 +#define KP_INFO 0x00000012 +#define KP_EFFECTIVE_KEYLEN 0x00000013 +#define KP_SCHANNEL_ALG 0x00000014 +#define KP_PUB_PARAMS 0x00000027 +#define CRYPT_FLAG_PCT1 0x0001 +#define CRYPT_FLAG_SSL2 0x0002 +#define CRYPT_FLAG_SSL3 0x0004 +#define CRYPT_FLAG_TLS1 0x0008 +#define CRYPT_FLAG_IPSEC 0x0010 +#define CRYPT_FLAG_SIGNING 0x0020 +#define SCHANNEL_MAC_KEY 0x00000000 +#define SCHANNEL_ENC_KEY 0x00000001 +#define INTERNATIONAL_USAGE 0x00000001 ++/ + +alias UINT ALG_ID; +alias ULONG HCRYPTPROV, HCRYPTKEY, HCRYPTHASH; +alias PVOID HCERTSTORE, HCRYPTMSG, HCERTCHAINENGINE; + +struct VTableProvStruc { + FARPROC FuncVerifyImage; +} +alias VTableProvStruc* PVTableProvStruc; + +struct _CRYPTOAPI_BLOB { + DWORD cbData; + BYTE* pbData; +} +alias _CRYPTOAPI_BLOB CRYPT_INTEGER_BLOB, CRYPT_UINT_BLOB, + CRYPT_OBJID_BLOB, CERT_NAME_BLOB, CERT_RDN_VALUE_BLOB, CERT_BLOB, + CRL_BLOB, DATA_BLOB, CRYPT_DATA_BLOB, CRYPT_HASH_BLOB, + CRYPT_DIGEST_BLOB, CRYPT_DER_BLOB, CRYPT_ATTR_BLOB; +alias _CRYPTOAPI_BLOB* PCRYPT_INTEGER_BLOB, PCRYPT_UINT_BLOB, + PCRYPT_OBJID_BLOB, PCERT_NAME_BLOB, PCERT_RDN_VALUE_BLOB, PCERT_BLOB, + PCRL_BLOB, PDATA_BLOB, PCRYPT_DATA_BLOB, PCRYPT_HASH_BLOB, + PCRYPT_DIGEST_BLOB, PCRYPT_DER_BLOB, PCRYPT_ATTR_BLOB; + +// not described in SDK; has the same layout as HTTPSPolicyCallbackData +struct SSL_EXTRA_CERT_CHAIN_POLICY_PARA { + DWORD cbStruct; + DWORD dwAuthType; + DWORD fdwChecks; + LPWSTR pwszServerName; +} +alias SSL_EXTRA_CERT_CHAIN_POLICY_PARA HTTPSPolicyCallbackData; +alias SSL_EXTRA_CERT_CHAIN_POLICY_PARA* PSSL_EXTRA_CERT_CHAIN_POLICY_PARA, + PHTTPSPolicyCallbackData; + +/* #if (_WIN32_WINNT>=0x500) */ +struct CERT_CHAIN_POLICY_PARA { + DWORD cbSize = CERT_CHAIN_POLICY_PARA.sizeof; + DWORD dwFlags; + void* pvExtraPolicyPara; +} +alias CERT_CHAIN_POLICY_PARA* PCERT_CHAIN_POLICY_PARA; + +struct CERT_CHAIN_POLICY_STATUS { + DWORD cbSize = CERT_CHAIN_POLICY_STATUS.sizeof; + DWORD dwError; + LONG lChainIndex; + LONG lElementIndex; + void* pvExtraPolicyStatus; +} +alias CERT_CHAIN_POLICY_STATUS* PCERT_CHAIN_POLICY_STATUS; +/* #endif */ + +struct CRYPT_ALGORITHM_IDENTIFIER { + LPSTR pszObjId; + CRYPT_OBJID_BLOB Parameters; +} +alias CRYPT_ALGORITHM_IDENTIFIER* PCRYPT_ALGORITHM_IDENTIFIER; + +struct CRYPT_BIT_BLOB { + DWORD cbData; + BYTE* pbData; + DWORD cUnusedBits; +} +alias CRYPT_BIT_BLOB* PCRYPT_BIT_BLOB; + +struct CERT_PUBLIC_KEY_INFO { + CRYPT_ALGORITHM_IDENTIFIER Algorithm; + CRYPT_BIT_BLOB PublicKey; +} +alias CERT_PUBLIC_KEY_INFO* PCERT_PUBLIC_KEY_INFO; + +struct CERT_EXTENSION { + LPSTR pszObjId; + BOOL fCritical; + CRYPT_OBJID_BLOB Value; +} +alias CERT_EXTENSION* PCERT_EXTENSION; + +struct CERT_INFO { + DWORD dwVersion; + CRYPT_INTEGER_BLOB SerialNumber; + CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm; + CERT_NAME_BLOB Issuer; + FILETIME NotBefore; + FILETIME NotAfter; + CERT_NAME_BLOB Subject; + CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo; + CRYPT_BIT_BLOB IssuerUniqueId; + CRYPT_BIT_BLOB SubjectUniqueId; + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} +alias CERT_INFO* PCERT_INFO; + +struct CERT_CONTEXT { + DWORD dwCertEncodingType; + BYTE* pbCertEncoded; + DWORD cbCertEncoded; + PCERT_INFO pCertInfo; + HCERTSTORE hCertStore; +} +alias CERT_CONTEXT* PCERT_CONTEXT; +alias CPtr!(CERT_CONTEXT) PCCERT_CONTEXT; + +struct CTL_USAGE { + DWORD cUsageIdentifier; + LPSTR* rgpszUsageIdentifier; +} +alias CTL_USAGE CERT_ENHKEY_USAGE; +alias CTL_USAGE* PCTRL_USAGE, PCERT_ENHKEY_USAGE; + +struct CERT_USAGE_MATCH { + DWORD dwType; + CERT_ENHKEY_USAGE Usage; +} +alias CERT_USAGE_MATCH* PCERT_USAGE_MATCH; +/* #if (_WIN32_WINNT>=0x500) */ + +struct CERT_CHAIN_PARA { + DWORD cbSize = CERT_CHAIN_PARA.sizeof; + CERT_USAGE_MATCH RequestedUsage; +//#if CERT_CHAIN_PARA_HAS_EXTRA_FIELDS + CERT_USAGE_MATCH RequestedIssuancePolicy; + DWORD dwUrlRetrievalTimeout; + BOOL fCheckRevocationFreshnessTime; + DWORD dwRevocationFreshnessTime; +//#endif +} +alias CERT_CHAIN_PARA* PCERT_CHAIN_PARA; + +extern (Windows) alias BOOL function(PCCERT_CONTEXT, void*) + PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK; + +struct CERT_CHAIN_FIND_BY_ISSUER_PARA { + DWORD cbSize = CERT_CHAIN_FIND_BY_ISSUER_PARA.sizeof; + LPCSTR pszUsageIdentifier; + DWORD dwKeySpec; + DWORD dwAcquirePrivateKeyFlags; + DWORD cIssuer; + CERT_NAME_BLOB* rgIssuer; + PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK pfnFIndCallback; + void* pvFindArg; + DWORD* pdwIssuerChainIndex; + DWORD* pdwIssuerElementIndex; +} +alias CERT_CHAIN_FIND_BY_ISSUER_PARA* PCERT_CHAIN_FIND_BY_ISSUER_PARA; +/* #endif */ + +struct CERT_TRUST_STATUS { + DWORD dwErrorStatus; + DWORD dwInfoStatus; +} +alias CERT_TRUST_STATUS* PCERT_TRUST_STATUS; + +struct CRL_ENTRY { + CRYPT_INTEGER_BLOB SerialNumber; + FILETIME RevocationDate; + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} +alias CRL_ENTRY* PCRL_ENTRY; + +struct CRL_INFO { + DWORD dwVersion; + CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm; + CERT_NAME_BLOB Issuer; + FILETIME ThisUpdate; + FILETIME NextUpdate; + DWORD cCRLEntry; + PCRL_ENTRY rgCRLEntry; + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} +alias CRL_INFO* PCRL_INFO; + +struct CRL_CONTEXT { + DWORD dwCertEncodingType; + BYTE* pbCrlEncoded; + DWORD cbCrlEncoded; + PCRL_INFO pCrlInfo; + HCERTSTORE hCertStore; +} +alias CRL_CONTEXT* PCRL_CONTEXT; +alias CPtr!(CRL_CONTEXT) PCCRL_CONTEXT; + +struct CERT_REVOCATION_CRL_INFO { + DWORD cbSize = CERT_REVOCATION_CRL_INFO.sizeof; + PCCRL_CONTEXT pBaseCRLContext; + PCCRL_CONTEXT pDeltaCRLContext; + PCRL_ENTRY pCrlEntry; + BOOL fDeltaCrlEntry; +} +alias CERT_REVOCATION_CRL_INFO* PCERT_REVOCATION_CRL_INFO; + +struct CERT_REVOCATION_INFO { + DWORD cbSize = CERT_REVOCATION_INFO.sizeof; + DWORD dwRevocationResult; + LPCSTR pszRevocationOid; + LPVOID pvOidSpecificInfo; + BOOL fHasFreshnessTime; + DWORD dwFreshnessTime; + PCERT_REVOCATION_CRL_INFO pCrlInfo; +} +alias CERT_REVOCATION_INFO* PCERT_REVOCATION_INFO; + +/* #if (_WIN32_WINNT>=0x500) */ +struct CERT_CHAIN_ELEMENT { + DWORD cbSize = CERT_CHAIN_ELEMENT.sizeof; + PCCERT_CONTEXT pCertContext; + CERT_TRUST_STATUS TrustStatus; + PCERT_REVOCATION_INFO pRevocationInfo; + PCERT_ENHKEY_USAGE pIssuanceUsage; + PCERT_ENHKEY_USAGE pApplicationUsage; +} +alias CERT_CHAIN_ELEMENT* PCERT_CHAIN_ELEMENT; +/* #endif */ + +struct CRYPT_ATTRIBUTE { + LPSTR pszObjId; + DWORD cValue; + PCRYPT_ATTR_BLOB rgValue; +} +alias CRYPT_ATTRIBUTE* PCRYPT_ATTRIBUTE; + +struct CTL_ENTRY { + CRYPT_DATA_BLOB SubjectIdentifier; + DWORD cAttribute; + PCRYPT_ATTRIBUTE rgAttribute; +} +alias CTL_ENTRY* PCTL_ENTRY; + +struct CTL_INFO { + DWORD dwVersion; + CTL_USAGE SubjectUsage; + CRYPT_DATA_BLOB ListIdentifier; + CRYPT_INTEGER_BLOB SequenceNumber; + FILETIME ThisUpdate; + FILETIME NextUpdate; + CRYPT_ALGORITHM_IDENTIFIER SubjectAlgorithm; + DWORD cCTLEntry; + PCTL_ENTRY rgCTLEntry; + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} +alias CTL_INFO* PCTL_INFO; + +struct CTL_CONTEXT { + DWORD dwMsgAndCertEncodingType; + BYTE* pbCtlEncoded; + DWORD cbCtlEncoded; + PCTL_INFO pCtlInfo; + HCERTSTORE hCertStore; + HCRYPTMSG hCryptMsg; + BYTE* pbCtlContent; + DWORD cbCtlContent; +} +alias CTL_CONTEXT* PCTL_CONTEXT; +alias CPtr!(CTL_CONTEXT) PCCTL_CONTEXT; + +struct CERT_TRUST_LIST_INFO { + DWORD cbSize = CERT_TRUST_LIST_INFO.sizeof; + PCTL_ENTRY pCtlEntry; + PCCTL_CONTEXT pCtlContext; +} +alias CERT_TRUST_LIST_INFO* PCERT_TRUST_LIST_INFO; + +struct CERT_SIMPLE_CHAIN { + DWORD cbSize = CERT_SIMPLE_CHAIN.sizeof; + CERT_TRUST_STATUS TrustStatus; + DWORD cElement; + PCERT_CHAIN_ELEMENT* rgpElement; + PCERT_TRUST_LIST_INFO pTrustListInfo; + BOOL fHasRevocationFreshnessTime; + DWORD dwRevocationFreshnessTime; +} +alias CERT_SIMPLE_CHAIN* PCERT_SIMPLE_CHAIN; + +/* #if (_WIN32_WINNT>=0x500) */ +alias CPtr!(CERT_CHAIN_CONTEXT) PCCERT_CHAIN_CONTEXT; +struct CERT_CHAIN_CONTEXT { + DWORD cbSize = CERT_CHAIN_CONTEXT.sizeof; + CERT_TRUST_STATUS TrustStatus; + DWORD cChain; + PCERT_SIMPLE_CHAIN* rgpChain; + DWORD cLowerQualityChainContext; + PCCERT_CHAIN_CONTEXT* rgpLowerQualityChainContext; + BOOL fHasRevocationFreshnessTime; + DWORD dwRevocationFreshnessTime; +} +alias CERT_CHAIN_CONTEXT* PCERT_CHAIN_CONTEXT; +/* #endif */ + +struct PROV_ENUMALGS { + ALG_ID aiAlgid; + DWORD dwBitLen; + DWORD dwNameLen; + CHAR[20] szName; +} + +struct PUBLICKEYSTRUC { + BYTE bType; + BYTE bVersion; + WORD reserved; + ALG_ID aiKeyAlg; +} +alias PUBLICKEYSTRUC BLOBHEADER; + +struct RSAPUBKEY { + DWORD magic; + DWORD bitlen; + DWORD pubexp; +} + +struct HMAC_INFO { + ALG_ID HashAlgid; + BYTE* pbInnerString; + DWORD cbInnerString; + BYTE* pbOuterString; + DWORD cbOuterString; +} +alias HMAC_INFO* PHMAC_INFO; + +extern (Windows) { + BOOL CertCloseStore(HCERTSTORE, DWORD); + BOOL CertGetCertificateChain(HCERTCHAINENGINE, PCCERT_CONTEXT, LPFILETIME, + HCERTSTORE, PCERT_CHAIN_PARA, DWORD, LPVOID, PCCERT_CHAIN_CONTEXT*); + BOOL CertVerifyCertificateChainPolicy(LPCSTR, PCCERT_CHAIN_CONTEXT, + PCERT_CHAIN_POLICY_PARA, PCERT_CHAIN_POLICY_STATUS); + void CertFreeCertificateChain(PCCERT_CHAIN_CONTEXT); + DWORD CertNameToStrA(DWORD, PCERT_NAME_BLOB, DWORD, LPSTR, DWORD); + DWORD CertNameToStrW(DWORD, PCERT_NAME_BLOB, DWORD, LPWSTR, DWORD); + HCERTSTORE CertOpenSystemStoreA(HCRYPTPROV, LPCSTR); + HCERTSTORE CertOpenSystemStoreW(HCRYPTPROV, LPCWSTR); + HCERTSTORE CertOpenStore(LPCSTR, DWORD, HCRYPTPROV, DWORD, CPtr!(void)); + PCCERT_CONTEXT CertFindCertificateInStore(HCERTSTORE, DWORD, DWORD, DWORD, + CPtr!(void), PCCERT_CONTEXT); + BOOL CertFreeCertificateContext(PCCERT_CONTEXT); + PCCERT_CONTEXT CertGetIssuerCertificateFromStore(HCERTSTORE, + PCCERT_CONTEXT, PCCERT_CONTEXT, DWORD*); + PCCERT_CHAIN_CONTEXT CertFindChainInStore(HCERTSTORE, DWORD, DWORD, DWORD, + CPtr!(void), PCCERT_CHAIN_CONTEXT); + + BOOL CryptAcquireContextA(HCRYPTPROV*, LPCSTR, LPCSTR, DWORD, DWORD); + BOOL CryptAcquireContextW(HCRYPTPROV*, LPCWSTR, LPCWSTR, DWORD, DWORD); + BOOL CryptContextAddRef(HCRYPTPROV, DWORD*, DWORD); + BOOL CryptReleaseContext(HCRYPTPROV, DWORD); + BOOL CryptGenKey(HCRYPTPROV, ALG_ID, DWORD, HCRYPTKEY*); + BOOL CryptDeriveKey(HCRYPTPROV, ALG_ID, HCRYPTHASH, DWORD, HCRYPTKEY*); + BOOL CryptDestroyKey(HCRYPTKEY); + static if (WINVER >= 0x0500) { + BOOL CryptDuplicateHash(HCRYPTHASH, DWORD*, DWORD, HCRYPTHASH*); + BOOL CryptDuplicateKey(HCRYPTKEY, DWORD*, DWORD, HCRYPTKEY*); + } + BOOL CryptSetKeyParam(HCRYPTKEY, DWORD, PBYTE, DWORD); + BOOL CryptGetKeyParam(HCRYPTKEY, DWORD, PBYTE, PDWORD, DWORD); + BOOL CryptSetHashParam(HCRYPTHASH, DWORD, PBYTE, DWORD); + BOOL CryptGetHashParam(HCRYPTHASH, DWORD, PBYTE, PDWORD, DWORD); + BOOL CryptSetProvParam(HCRYPTPROV, DWORD, PBYTE, DWORD); + BOOL CryptGetProvParam(HCRYPTPROV, DWORD, PBYTE, PDWORD, DWORD); + BOOL CryptGenRandom(HCRYPTPROV, DWORD, PBYTE); + BOOL CryptGetUserKey(HCRYPTPROV, DWORD, HCRYPTKEY*); + BOOL CryptExportKey(HCRYPTKEY, HCRYPTKEY, DWORD, DWORD, PBYTE, PDWORD); + BOOL CryptImportKey(HCRYPTPROV, PBYTE, DWORD, HCRYPTKEY, DWORD, + HCRYPTKEY*); + BOOL CryptEncrypt(HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, PBYTE, PDWORD, + DWORD); + BOOL CryptDecrypt(HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, PBYTE, PDWORD); + BOOL CryptCreateHash(HCRYPTPROV, ALG_ID, HCRYPTKEY, DWORD, HCRYPTHASH*); + BOOL CryptHashData(HCRYPTHASH, PBYTE, DWORD, DWORD); + BOOL CryptHashSessionKey(HCRYPTHASH, HCRYPTKEY, DWORD); + BOOL CryptGetHashValue(HCRYPTHASH, DWORD, PBYTE, PDWORD); + BOOL CryptDestroyHash(HCRYPTHASH); + BOOL CryptSignHashA(HCRYPTHASH, DWORD, LPCSTR, DWORD, PBYTE, PDWORD); + BOOL CryptSignHashW(HCRYPTHASH, DWORD, LPCWSTR, DWORD, PBYTE, PDWORD); + BOOL CryptVerifySignatureA(HCRYPTHASH, PBYTE, DWORD, HCRYPTKEY, LPCSTR, + DWORD); + BOOL CryptVerifySignatureW(HCRYPTHASH, PBYTE, DWORD, HCRYPTKEY, LPCWSTR, + DWORD); + BOOL CryptSetProviderA(LPCSTR, DWORD); + BOOL CryptSetProviderW(LPCWSTR, DWORD); +} + +version (Unicode) { + alias CertNameToStrW CertNameToStr; + alias CryptAcquireContextW CryptAcquireContext; + alias CryptSignHashW CryptSignHash; + alias CryptVerifySignatureW CryptVerifySignature; + alias CryptSetProviderW CryptSetProvider; + alias CertOpenSystemStoreW CertOpenSystemStore; + /+alias CERT_FIND_SUBJECT_STR_W CERT_FIND_SUBJECT_STR; + alias CERT_FIND_ISSUER_STR_W CERT_FIND_ISSUER_STR;+/ +} else { + alias CertNameToStrA CertNameToStr; + alias CryptAcquireContextA CryptAcquireContext; + alias CryptSignHashA CryptSignHash; + alias CryptVerifySignatureA CryptVerifySignature; + alias CryptSetProviderA CryptSetProvider; + alias CertOpenSystemStoreA CertOpenSystemStore; + /+alias CERT_FIND_SUBJECT_STR_A CERT_FIND_SUBJECT_STR; + alias CERT_FIND_ISSUER_STR_A CERT_FIND_ISSUER_STR;+/ +} Index: src/win32/windef.d ================================================================== --- src/win32/windef.d +++ src/win32/windef.d @@ -1,394 +1,141 @@ -module win32.windef; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -alias void* va_list; -alias long __int64; -alias ulong DWORD64; -alias uint SIZE_T; -alias SIZE_T* PSIZE_T; -alias int INT_PTR; -alias uint UINT_PTR; -alias uint LONG_PTR; -alias uint ULONG_PTR; -alias uint DWORD_PTR; -alias DWORD_PTR* PDWORD_PTR; -alias UINT_PTR* PUINT_PTR; -alias ULONG_PTR* PULONG_PTR; -enum : UINT { UINT_MAX = UINT.max } - -// #ifndef _WINDEF_ -// #define _WINDEF_ - -// #ifndef NO_STRICT -// #ifndef STRICT -// #... -// #endif -// #endif /* NO_STRICT */ - -// #ifdef _MAC -// #ifndef _WIN32 -// #... -// #endif -// #endif //_MAC - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #ifndef WINVER -// #... -// #endif /* WINVER */ - -// #ifndef BASETYPES -// #define BASETYPES -alias uint ULONG; -alias ULONG* PULONG; -alias ushort USHORT; -alias USHORT* PUSHORT; -alias ubyte UCHAR; -alias UCHAR* PUCHAR; -alias char* PSZ; -// #endif /* !BASETYPES */ - -enum : uint { MAX_PATH = 260 } - -// #ifndef NULL -// #ifdef __cplusplus -const void* NULL = null; -// #else -// #... -// #endif -// #endif - -// #ifndef FALSE -enum : uint { FALSE = 0 } -// #endif - -// #ifndef TRUE -enum : uint { TRUE = 1 } -// #endif - -// #ifndef IN -// #define IN -// #endif - -// #ifndef OUT -// #define OUT -// #endif - -// #ifndef OPTIONAL -// #define OPTIONAL -// #endif - -// #undef far -// #undef near -// #undef pascal - -// #define far -// #define near -// #if (!defined(_MAC)) && ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)) -// #define pascal __stdcall -// #else -// #... -// #endif - -// #if defined(DOSWIN32) || defined(_MAC) -// #... -// #ifndef CDECL -// #... -// #endif -// #else -// #define cdecl -// #ifndef CDECL -// #define CDECL -// #endif -// #endif - -// #ifdef _MAC -// #... -// #... -// #... -// #... -// #... -// #ifdef _68K_ -// #... -// #else -// #... -// #endif -// #elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) -// #define CALLBACK __stdcall -// #define WINAPI __stdcall -// #define WINAPIV __cdecl -// #define APIENTRY WINAPI -// #define APIPRIVATE __stdcall -// #define PASCAL __stdcall -// #else -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -// #undef FAR -// #undef NEAR -// #define FAR far -// #define NEAR near -// #ifndef CONST -// #define CONST const -// #endif - -alias uint DWORD; -alias int BOOL; -alias ubyte BYTE; -alias ushort WORD; -alias float FLOAT; -alias FLOAT* PFLOAT; -alias BOOL* PBOOL; -alias BOOL* LPBOOL; -alias BYTE* PBYTE; -alias BYTE* LPBYTE; -alias int* PINT; -alias int* LPINT; -alias WORD* PWORD; -alias WORD* LPWORD; -alias int* LPLONG; -alias DWORD* PDWORD; -alias DWORD* LPDWORD; -alias void* LPVOID; -alias void* LPCVOID; - -alias int INT; -alias uint UINT; -alias uint* PUINT; - -// #ifndef NT_INCLUDED -import win32.winnt; -// #endif /* NT_INCLUDED */ - -alias UINT_PTR WPARAM; -alias LONG_PTR LPARAM; -alias LONG_PTR LRESULT; - -// #ifndef NOMINMAX - -// #ifndef max -int max(int a, int b){ return (a > b)? a : b; } -uint max(uint a, uint b){ return (a > b)? a : b; } -real max(real a, real b){ return (a > b)? a : b; } -// #endif - -// #ifndef min -int min(int a, int b){ return (a < b)? a : b; } -uint min(uint a, uint b){ return (a < b)? a : b; } -real min(real a, real b){ return (a < b)? a : b; } -// #endif - -// #endif /* NOMINMAX */ - -ushort MAKEWORD(byte a, byte b){ return (a & 0xff) | ((b & 0xff) << 8); } -uint MAKELONG(ushort a, ushort b){ return (a & 0xffff) | ((b & 0xffff) << 16); } -ushort LOWORD(uint l){ return l & 0xffff; } -ushort HIWORD(uint l){ return l >>> 16; } -ubyte LOBYTE(ushort l){ return l & 0xff; } -ubyte HIBYTE(ushort l){ return l >>> 8; } - -// #ifndef WIN_INTERNAL -alias void* HWND; -alias void* HHOOK; -// #ifdef WINABLE -// ... -// #endif -// #endif - -alias WORD ATOM; - -alias HANDLE* SPHANDLE; -alias HANDLE* LPHANDLE; -alias HANDLE HGLOBAL; -alias HANDLE HLOCAL; -alias HANDLE GLOBALHANDLE; -alias HANDLE LOCALHANDLE; -// #ifndef _MAC -// #ifdef _WIN64 -// ... -// #else -extern(Windows) alias int function() FARPROC; -extern(Windows) alias int function() NEARPROC; -extern(Windows) alias int function() PROC; -// #endif // _WIN64 -// #else -// ... -// #endif - -// #if !defined(_MAC) || !defined(GDI_INTERNAL) -// #ifdef STRICT -alias void* HGDIOBJ; -// #else -// ... -// #endif -// #endif - -alias void* HKEY; -alias HKEY* PHKEY; - -// #if !defined(_MAC) || !defined(WIN_INTERNAL) -alias void* HACCEL; -// #endif -// #if !defined(_MAC) || !defined(GDI_INTERNAL) -alias void* HBITMAP; -alias void* HBRUSH; -// #endif -// #if(WINVER >= 0x0400) -alias void* HCOLORSPACE; -// #endif /* WINVER >= 0x0400 */ -// #if !defined(_MAC) || !defined(GDI_INTERNAL) -alias void* HDC; -// #endif -alias void* HGLRC; -alias void* HDESK; -alias void* HENHMETAFILE; -// #if !defined(_MAC) || !defined(GDI_INTERNAL) -alias void* HFONT; -// #endif -alias void* HICON; -// #if !defined(_MAC) || !defined(WIN_INTERNAL) -alias void* HMENU; -// #endif -alias void* HMETAFILE; -alias void* HINSTANCE; -alias HINSTANCE HMODULE; -// #if !defined(_MAC) || !defined(GDI_INTERNAL) -alias void* HPALETTE; -alias void* HPEN; -// #endif -alias void* HRGN; -alias void* HRSRC; -alias void* HSTR; -alias void* HTASK; -alias void* HWINSTA; -alias void* HKL; - -// #if(WINVER >= 0x0500) -// #ifndef _MAC -alias void* HMONITOR; -alias void* HWINEVENTHOOK; -// #endif -alias void* HUMPD; -// #endif /* WINVER >= 0x0500 */ - -// #ifndef _MAC -alias int HFILE; -alias HICON HCURSOR; -// #else -// ... -// #endif - -alias DWORD COLORREF; -alias DWORD* LPCOLORREF; - -const HFILE HFILE_ERROR = -1; - -struct tagRECT { - LONG left; - LONG top; - LONG right; - LONG bottom; -} -alias tagRECT RECT; -alias tagRECT* PRECT; -alias tagRECT* NPRECT; -alias tagRECT* LPRECT; - -alias RECT* LPCRECT; - -struct _RECTL { - LONG left; - LONG top; - LONG right; - LONG bottom; -} -alias _RECTL RECTL; -alias _RECTL* PRECTL; -alias _RECTL* LPRECTL; - -alias RECTL* LPCRECTL; - -struct tagPOINT { - LONG x; - LONG y; -} -alias tagPOINT POINT; -alias tagPOINT* PPOINT; -alias tagPOINT* NPPOINT; -alias tagPOINT* LPPOINT; - -struct _POINTL { - LONG x; - LONG y; -} -alias _POINTL POINTL; -alias _POINTL* PPOINTL; - -struct tagSIZE { - LONG cx; - LONG cy; -} -alias tagSIZE SIZE; -alias tagSIZE* PSIZE; -alias tagSIZE* LPSIZE; - -alias SIZE SIZEL; -alias SIZE* PSIZEL; -alias SIZE* LPSIZEL; - -struct tagPOINTS { -// #ifndef _MAC - SHORT x; - SHORT y; -// #else -// ... -// #endif -} -alias tagPOINTS POINTS; -alias tagPOINTS* PPOINTS; -alias tagPOINTS* LPPOINTS; - -enum : uint { DM_UPDATE = 1 } -enum : uint { DM_COPY = 2 } -enum : uint { DM_PROMPT = 4 } -enum : uint { DM_MODIFY = 8 } - -alias DM_MODIFY DM_IN_BUFFER; -alias DM_PROMPT DM_IN_PROMPT; -alias DM_COPY DM_OUT_BUFFER; -alias DM_UPDATE DM_OUT_DEFAULT; - -enum : uint { DC_FIELDS = 1 } -enum : uint { DC_PAPERS = 2 } -enum : uint { DC_PAPERSIZE = 3 } -enum : uint { DC_MINEXTENT = 4 } -enum : uint { DC_MAXEXTENT = 5 } -enum : uint { DC_BINS = 6 } -enum : uint { DC_DUPLEX = 7 } -enum : uint { DC_SIZE = 8 } -enum : uint { DC_EXTRA = 9 } -enum : uint { DC_VERSION = 10 } -enum : uint { DC_DRIVER = 11 } -enum : uint { DC_BINNAMES = 12 } -enum : uint { DC_ENUMRESOLUTIONS = 13 } -enum : uint { DC_FILEDEPENDENCIES = 14 } -enum : uint { DC_TRUETYPE = 15 } -enum : uint { DC_PAPERNAMES = 16 } -enum : uint { DC_ORIENTATION = 17 } -enum : uint { DC_COPIES = 18 } - -// #ifdef __cplusplus -// } -// #endif - -// #endif /* _WINDEF_ */ - + +/***********************************************************************\ +* windef.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.windef; + +public import win32.winnt; +private import win32.w32api; + +const size_t MAX_PATH = 260; + +ushort MAKEWORD(ubyte a, ubyte b) +{ + return cast(ushort) ((b << 8) | a); +} + + +uint MAKELONG(ushort a, ushort b) +{ + return cast(uint) ((b << 16) | a); +} + + +ushort LOWORD(uint l) +{ + return cast(ushort) l; +} + + +ushort HIWORD(uint l) +{ + return cast(ushort) (l >>> 16); +} + + +ubyte LOBYTE(ushort w) +{ + return cast(ubyte) w; +} + + +ubyte HIBYTE(ushort w) +{ + return cast(ubyte) (w >>> 8); +} + + +/+ template max(T) { + T max(T a, T b) + { + return a > b ? a : b; + } +} + +template min(T) { + T min(T a, T b) + { + return a < b ? a : b; + } +} +/ + +enum NULL = null; +//~ alias null NULL; +//~ const void *NULL = null; +alias ubyte BYTE; +alias ubyte *PBYTE, LPBYTE; +alias ushort USHORT, WORD, ATOM; +alias ushort*PUSHORT, PWORD, LPWORD; +alias uint ULONG, DWORD, UINT, COLORREF; +alias uint *PULONG, PDWORD, LPDWORD, PUINT, LPUINT; +alias int WINBOOL, BOOL, INT, LONG, HFILE, HRESULT; +alias int*PWINBOOL, LPWINBOOL, PBOOL, LPBOOL, PINT, LPINT, LPLONG; +alias float FLOAT; +alias float*PFLOAT; +alias CPtr!(void) PCVOID, LPCVOID; + +alias UINT_PTR WPARAM; +alias LONG_PTR LPARAM, LRESULT; + +alias HANDLE HGLOBAL, HLOCAL, GLOBALHANDLE, LOCALHANDLE, HGDIOBJ, HACCEL, + HBITMAP, HBRUSH, HCOLORSPACE, HDC, HGLRC, HDESK, HENHMETAFILE, HFONT, + HICON, HINSTANCE, HKEY, HMENU, HMETAFILE, HMODULE, HMONITOR, HPALETTE, HPEN, + HRGN, HRSRC, HSTR, HTASK, HWND, HWINSTA, HKL, HCURSOR; +alias HANDLE*PHKEY; + +static + +if (WINVER >= 0x500) +{ + alias HANDLE HTERMINAL, HWINEVENTHOOK; +} + +alias extern (Windows) int function() FARPROC, NEARPROC, PROC; + +struct RECT +{ + LONG left; + LONG top; + LONG right; + LONG bottom; +} +alias RECT RECTL; +alias RECT*PRECT, LPRECT, PRECTL, LPRECTL; +alias CPtr!(RECT) LPCRECT, LPCRECTL; + +struct POINT +{ + LONG x; + LONG y; + alias x e1; + alias y e2; +} +alias POINT POINTL; +alias POINT*PPOINT, LPPOINT, PPOINTL, LPPOINTL; + +struct SIZE +{ + LONG cx; + LONG cy; +} +alias SIZE SIZEL; +alias SIZE*PSIZE, LPSIZE, PSIZEL, LPSIZEL; + +struct POINTS +{ + SHORT x; + SHORT y; +} +alias POINTS*PPOINTS, LPPOINTS; + +enum : BOOL { + FALSE = 0, + TRUE = 1 +} Index: src/win32/windows.d ================================================================== --- src/win32/windows.d +++ src/win32/windows.d @@ -1,202 +1,77 @@ -module win32.windows; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - - -// #ifndef _WINDOWS_ -// #define _WINDOWS_ - -// #ifndef WINVER -// #... -// #else -// #if defined(_WIN32_WINNT) && (WINVER < 0x0400) && (_WIN32_WINNT > 0x0400) -// #... -// #endif -// #endif - -// #ifndef _INC_WINDOWS -// #define _INC_WINDOWS - -// #if defined (_MSC_VER) && (_MSC_VER >= 1020) -// #pragma once -// #endif - -// #if defined(RC_INVOKED) && !defined(NOWINRES) - -// #... - -// #else - -// #if defined(RC_INVOKED) - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -// #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && defined(_M_IX86) -// #... -// #endif - -// #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && defined(_M_AMD64) -// #... -// #endif - -// #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && defined(_M_M68K) -// #... -// #endif - -// #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && defined(_M_MPPC) -// #... -// #endif - -// #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_M_IX86) && !defined(_AMD64_) && defined(_M_IA64) -// #if !defined(_IA64_) -// #... -// #endif // !_IA64_ -// #endif - -// #ifndef _MAC -// #if defined(_68K_) || defined(_MPPC_) -// #... -// #endif -// #endif - -// #if defined (_MSC_VER) -// #if ( _MSC_VER >= 800 ) -// #ifndef __cplusplus -// #... - -// #endif -// #endif -// #endif - -// #ifndef RC_INVOKED -// #if ( _MSC_VER >= 800 ) -// #pragma warning(disable:4514) -// #ifndef __WINDOWS_DONT_DISABLE_PRAGMA_PACK_WARNING__ -// #pragma warning(disable:4103) -// #endif -// #if _MSC_VER >= 1200 -// #pragma warning(push) -// #endif -// #pragma warning(disable:4001) -// #pragma warning(disable:4201) -// #pragma warning(disable:4214) -// #endif -// #include -// #include -// #endif /* RC_INVOKED */ - -import win32.windef; -import win32.winbase; -import win32.wingdi; -import win32.winuser; -// #if !defined(_MAC) || defined(_WIN32NLS) -import win32.winnls; -// #endif -// #ifndef _MAC -import win32.wincon; -import win32.winver; -// #endif -// #if !defined(_MAC) || defined(_WIN32REG) -import win32.winreg; -// #endif -// #ifndef _MAC -// #include -// #endif - -// #ifndef WIN32_LEAN_AND_MEAN -// #include -import win32.dde; -import win32.ddeml; -import win32.dlgs; -// #ifndef _MAC -// #include -import win32.mmsystem; -// #include -// #include -// #endif -import win32.shellapi; -// #ifndef _MAC -// #include -// #include -// #endif -// #ifndef NOCRYPT -// #... -// #... -// #... -// #endif - -// #ifndef NOGDI -// #ifndef _MAC -import win32.winspool; -// #ifdef INC_OLE1 -// #... -// #else -// #include -// #endif /* !INC_OLE1 */ -// #endif /* !MAC */ -import win32.commdlg; -// #endif /* !NOGDI */ -// #endif /* WIN32_LEAN_AND_MEAN */ - -// #include - -// #ifdef _MAC -// #... -// #endif - -// #ifdef INC_OLE2 -// #... -// #endif /* INC_OLE2 */ - -// #ifndef _MAC -// #ifndef NOSERVICE -// #... -// #endif - -// #if(WINVER >= 0x0400) -// #ifndef NOMCX -// #... -// #endif /* NOMCX */ - -// #ifndef NOIME -import win32.imm; -// #endif -// #endif /* WINVER >= 0x0400 */ -// #endif - -// #ifndef RC_INVOKED -// #if ( _MSC_VER >= 800 ) -// #if _MSC_VER >= 1200 -// #pragma warning(pop) -// #else -// #... -// #... -// #... - -// #endif -// #endif -// #endif /* RC_INVOKED */ - -// #endif /* RC_INVOKED */ - -// #endif /* _INC_WINDOWS */ -// #endif /* _WINDOWS_ */ - +/***********************************************************************\ +* windows.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.10 * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.windows; + +/* + windows.h - main header file for the Win32 API + + Written by Anders Norlander + + This file is part of a free library for the Win32 API. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +public import win32.w32api; +public import win32.core; + +// We can't use static if for imports, build gets confused. +version (WindowsVista) { + public import win32.winsvc; +} else version (Windows2003) { + public import win32.winsvc; +} else version (WindowsXP) { + public import win32.winsvc; +} else version (WindowsNTonly) { + public import win32.winsvc; +} + +public import win32.cderr; +public import win32.dde; +public import win32.ddeml; +public import win32.dlgs; +public import win32.imm; +public import win32.lzexpand; +public import win32.mmsystem; +public import win32.nb30; + + + +public import win32.rpc; +public import win32.shellapi; +public import win32.winperf; +public import win32.commdlg; +public import win32.winspool; +public import win32.ole2; + +// Select correct version of winsock. Importing the incorrect +// module will cause a static assert to prevent problems later on. +version (Win32_Winsock1) { + public import win32.winsock; +} else { + public import win32.winsock2; + public import win32.ws2tcpip; +} + +/+ +#if (_WIN32_WINNT >= 0x0400) +#include +/* + * MS likes to include mswsock.h here as well, + * but that can cause undefined symbols if + * winsock2.h is included before windows.h + */ +#else +#include +#endif /* (_WIN32_WINNT >= 0x0400) */ ++/ Index: src/win32/winerror.d ================================================================== --- src/win32/winerror.d +++ src/win32/winerror.d @@ -1,5953 +1,2310 @@ -module win32.winerror; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.winnt; - -// #ifndef _WINERROR_ -// #define _WINERROR_ - -// #if defined (_MSC_VER) && (_MSC_VER >= 1020) && !defined(__midl) -// #pragma once -// #endif - -enum : uint { FACILITY_WINDOWS_CE = 24 } -enum : uint { FACILITY_WINDOWS = 8 } -enum : uint { FACILITY_URT = 19 } -enum : uint { FACILITY_UMI = 22 } -enum : uint { FACILITY_SXS = 23 } -enum : uint { FACILITY_STORAGE = 3 } -enum : uint { FACILITY_SSPI = 9 } -enum : uint { FACILITY_SCARD = 16 } -enum : uint { FACILITY_SETUPAPI = 15 } -enum : uint { FACILITY_SECURITY = 9 } -enum : uint { FACILITY_RPC = 1 } -enum : uint { FACILITY_WIN32 = 7 } -enum : uint { FACILITY_CONTROL = 10 } -enum : uint { FACILITY_NULL = 0 } -enum : uint { FACILITY_MSMQ = 14 } -enum : uint { FACILITY_MEDIASERVER = 13 } -enum : uint { FACILITY_INTERNET = 12 } -enum : uint { FACILITY_ITF = 4 } -enum : uint { FACILITY_HTTP = 25 } -enum : uint { FACILITY_DPLAY = 21 } -enum : uint { FACILITY_DISPATCH = 2 } -enum : uint { FACILITY_CONFIGURATION = 33 } -enum : uint { FACILITY_COMPLUS = 17 } -enum : uint { FACILITY_CERT = 11 } -enum : uint { FACILITY_BACKGROUNDCOPY = 32 } -enum : uint { FACILITY_ACS = 20 } -enum : uint { FACILITY_AAF = 18 } - -enum : uint { ERROR_SUCCESS = 0 } - -enum : uint { NO_ERROR = 0 } -enum : HRESULT { SEC_E_OK = cast(HRESULT)0x00000000 } - -enum : uint { ERROR_INVALID_FUNCTION = 1 } - -enum : uint { ERROR_FILE_NOT_FOUND = 2 } - -enum : uint { ERROR_PATH_NOT_FOUND = 3 } - -enum : uint { ERROR_TOO_MANY_OPEN_FILES = 4 } - -enum : uint { ERROR_ACCESS_DENIED = 5 } - -enum : uint { ERROR_INVALID_HANDLE = 6 } - -enum : uint { ERROR_ARENA_TRASHED = 7 } - -enum : uint { ERROR_NOT_ENOUGH_MEMORY = 8 } - -enum : uint { ERROR_INVALID_BLOCK = 9 } - -enum : uint { ERROR_BAD_ENVIRONMENT = 10 } - -enum : uint { ERROR_BAD_FORMAT = 11 } - -enum : uint { ERROR_INVALID_ACCESS = 12 } - -enum : uint { ERROR_INVALID_DATA = 13 } - -enum : uint { ERROR_OUTOFMEMORY = 14 } - -enum : uint { ERROR_INVALID_DRIVE = 15 } - -enum : uint { ERROR_CURRENT_DIRECTORY = 16 } - -enum : uint { ERROR_NOT_SAME_DEVICE = 17 } - -enum : uint { ERROR_NO_MORE_FILES = 18 } - -enum : uint { ERROR_WRITE_PROTECT = 19 } - -enum : uint { ERROR_BAD_UNIT = 20 } - -enum : uint { ERROR_NOT_READY = 21 } - -enum : uint { ERROR_BAD_COMMAND = 22 } - -enum : uint { ERROR_CRC = 23 } - -enum : uint { ERROR_BAD_LENGTH = 24 } - -enum : uint { ERROR_SEEK = 25 } - -enum : uint { ERROR_NOT_DOS_DISK = 26 } - -enum : uint { ERROR_SECTOR_NOT_FOUND = 27 } - -enum : uint { ERROR_OUT_OF_PAPER = 28 } - -enum : uint { ERROR_WRITE_FAULT = 29 } - -enum : uint { ERROR_READ_FAULT = 30 } - -enum : uint { ERROR_GEN_FAILURE = 31 } - -enum : uint { ERROR_SHARING_VIOLATION = 32 } - -enum : uint { ERROR_LOCK_VIOLATION = 33 } - -enum : uint { ERROR_WRONG_DISK = 34 } - -enum : uint { ERROR_SHARING_BUFFER_EXCEEDED = 36 } - -enum : uint { ERROR_HANDLE_EOF = 38 } - -enum : uint { ERROR_HANDLE_DISK_FULL = 39 } - -enum : uint { ERROR_NOT_SUPPORTED = 50 } - -enum : uint { ERROR_REM_NOT_LIST = 51 } - -enum : uint { ERROR_DUP_NAME = 52 } - -enum : uint { ERROR_BAD_NETPATH = 53 } - -enum : uint { ERROR_NETWORK_BUSY = 54 } - -enum : uint { ERROR_DEV_NOT_EXIST = 55 } - -enum : uint { ERROR_TOO_MANY_CMDS = 56 } - -enum : uint { ERROR_ADAP_HDW_ERR = 57 } - -enum : uint { ERROR_BAD_NET_RESP = 58 } - -enum : uint { ERROR_UNEXP_NET_ERR = 59 } - -enum : uint { ERROR_BAD_REM_ADAP = 60 } - -enum : uint { ERROR_PRINTQ_FULL = 61 } - -enum : uint { ERROR_NO_SPOOL_SPACE = 62 } - -enum : uint { ERROR_PRINT_CANCELLED = 63 } - -enum : uint { ERROR_NETNAME_DELETED = 64 } - -enum : uint { ERROR_NETWORK_ACCESS_DENIED = 65 } - -enum : uint { ERROR_BAD_DEV_TYPE = 66 } - -enum : uint { ERROR_BAD_NET_NAME = 67 } - -enum : uint { ERROR_TOO_MANY_NAMES = 68 } - -enum : uint { ERROR_TOO_MANY_SESS = 69 } - -enum : uint { ERROR_SHARING_PAUSED = 70 } - -enum : uint { ERROR_REQ_NOT_ACCEP = 71 } - -enum : uint { ERROR_REDIR_PAUSED = 72 } - -enum : uint { ERROR_FILE_EXISTS = 80 } - -enum : uint { ERROR_CANNOT_MAKE = 82 } - -enum : uint { ERROR_FAIL_I24 = 83 } - -enum : uint { ERROR_OUT_OF_STRUCTURES = 84 } - -enum : uint { ERROR_ALREADY_ASSIGNED = 85 } - -enum : uint { ERROR_INVALID_PASSWORD = 86 } - -enum : uint { ERROR_INVALID_PARAMETER = 87 } - -enum : uint { ERROR_NET_WRITE_FAULT = 88 } - -enum : uint { ERROR_NO_PROC_SLOTS = 89 } - -enum : uint { ERROR_TOO_MANY_SEMAPHORES = 100 } - -enum : uint { ERROR_EXCL_SEM_ALREADY_OWNED = 101 } - -enum : uint { ERROR_SEM_IS_SET = 102 } - -enum : uint { ERROR_TOO_MANY_SEM_REQUESTS = 103 } - -enum : uint { ERROR_INVALID_AT_INTERRUPT_TIME = 104 } - -enum : uint { ERROR_SEM_OWNER_DIED = 105 } - -enum : uint { ERROR_SEM_USER_LIMIT = 106 } - -enum : uint { ERROR_DISK_CHANGE = 107 } - -enum : uint { ERROR_DRIVE_LOCKED = 108 } - -enum : uint { ERROR_BROKEN_PIPE = 109 } - -enum : uint { ERROR_OPEN_FAILED = 110 } - -enum : uint { ERROR_BUFFER_OVERFLOW = 111 } - -enum : uint { ERROR_DISK_FULL = 112 } - -enum : uint { ERROR_NO_MORE_SEARCH_HANDLES = 113 } - -enum : uint { ERROR_INVALID_TARGET_HANDLE = 114 } - -enum : uint { ERROR_INVALID_CATEGORY = 117 } - -enum : uint { ERROR_INVALID_VERIFY_SWITCH = 118 } - -enum : uint { ERROR_BAD_DRIVER_LEVEL = 119 } - -enum : uint { ERROR_CALL_NOT_IMPLEMENTED = 120 } - -enum : uint { ERROR_SEM_TIMEOUT = 121 } - -enum : uint { ERROR_INSUFFICIENT_BUFFER = 122 } - -enum : uint { ERROR_INVALID_NAME = 123 } - -enum : uint { ERROR_INVALID_LEVEL = 124 } - -enum : uint { ERROR_NO_VOLUME_LABEL = 125 } - -enum : uint { ERROR_MOD_NOT_FOUND = 126 } - -enum : uint { ERROR_PROC_NOT_FOUND = 127 } - -enum : uint { ERROR_WAIT_NO_CHILDREN = 128 } - -enum : uint { ERROR_CHILD_NOT_COMPLETE = 129 } - -enum : uint { ERROR_DIRECT_ACCESS_HANDLE = 130 } - -enum : uint { ERROR_NEGATIVE_SEEK = 131 } - -enum : uint { ERROR_SEEK_ON_DEVICE = 132 } - -enum : uint { ERROR_IS_JOIN_TARGET = 133 } - -enum : uint { ERROR_IS_JOINED = 134 } - -enum : uint { ERROR_IS_SUBSTED = 135 } - -enum : uint { ERROR_NOT_JOINED = 136 } - -enum : uint { ERROR_NOT_SUBSTED = 137 } - -enum : uint { ERROR_JOIN_TO_JOIN = 138 } - -enum : uint { ERROR_SUBST_TO_SUBST = 139 } - -enum : uint { ERROR_JOIN_TO_SUBST = 140 } - -enum : uint { ERROR_SUBST_TO_JOIN = 141 } - -enum : uint { ERROR_BUSY_DRIVE = 142 } - -enum : uint { ERROR_SAME_DRIVE = 143 } - -enum : uint { ERROR_DIR_NOT_ROOT = 144 } - -enum : uint { ERROR_DIR_NOT_EMPTY = 145 } - -enum : uint { ERROR_IS_SUBST_PATH = 146 } - -enum : uint { ERROR_IS_JOIN_PATH = 147 } - -enum : uint { ERROR_PATH_BUSY = 148 } - -enum : uint { ERROR_IS_SUBST_TARGET = 149 } - -enum : uint { ERROR_SYSTEM_TRACE = 150 } - -enum : uint { ERROR_INVALID_EVENT_COUNT = 151 } - -enum : uint { ERROR_TOO_MANY_MUXWAITERS = 152 } - -enum : uint { ERROR_INVALID_LIST_FORMAT = 153 } - -enum : uint { ERROR_LABEL_TOO_LONG = 154 } - -enum : uint { ERROR_TOO_MANY_TCBS = 155 } - -enum : uint { ERROR_SIGNAL_REFUSED = 156 } - -enum : uint { ERROR_DISCARDED = 157 } - -enum : uint { ERROR_NOT_LOCKED = 158 } - -enum : uint { ERROR_BAD_THREADID_ADDR = 159 } - -enum : uint { ERROR_BAD_ARGUMENTS = 160 } - -enum : uint { ERROR_BAD_PATHNAME = 161 } - -enum : uint { ERROR_SIGNAL_PENDING = 162 } - -enum : uint { ERROR_MAX_THRDS_REACHED = 164 } - -enum : uint { ERROR_LOCK_FAILED = 167 } - -enum : uint { ERROR_BUSY = 170 } - -enum : uint { ERROR_CANCEL_VIOLATION = 173 } - -enum : uint { ERROR_ATOMIC_LOCKS_NOT_SUPPORTED = 174 } - -enum : uint { ERROR_INVALID_SEGMENT_NUMBER = 180 } - -enum : uint { ERROR_INVALID_ORDINAL = 182 } - -enum : uint { ERROR_ALREADY_EXISTS = 183 } - -enum : uint { ERROR_INVALID_FLAG_NUMBER = 186 } - -enum : uint { ERROR_SEM_NOT_FOUND = 187 } - -enum : uint { ERROR_INVALID_STARTING_CODESEG = 188 } - -enum : uint { ERROR_INVALID_STACKSEG = 189 } - -enum : uint { ERROR_INVALID_MODULETYPE = 190 } - -enum : uint { ERROR_INVALID_EXE_SIGNATURE = 191 } - -enum : uint { ERROR_EXE_MARKED_INVALID = 192 } - -enum : uint { ERROR_BAD_EXE_FORMAT = 193 } - -enum : uint { ERROR_ITERATED_DATA_EXCEEDS_64k = 194 } - -enum : uint { ERROR_INVALID_MINALLOCSIZE = 195 } - -enum : uint { ERROR_DYNLINK_FROM_INVALID_RING = 196 } - -enum : uint { ERROR_IOPL_NOT_ENABLED = 197 } - -enum : uint { ERROR_INVALID_SEGDPL = 198 } - -enum : uint { ERROR_AUTODATASEG_EXCEEDS_64k = 199 } - -enum : uint { ERROR_RING2SEG_MUST_BE_MOVABLE = 200 } - -enum : uint { ERROR_RELOC_CHAIN_XEEDS_SEGLIM = 201 } - -enum : uint { ERROR_INFLOOP_IN_RELOC_CHAIN = 202 } - -enum : uint { ERROR_ENVVAR_NOT_FOUND = 203 } - -enum : uint { ERROR_NO_SIGNAL_SENT = 205 } - -enum : uint { ERROR_FILENAME_EXCED_RANGE = 206 } - -enum : uint { ERROR_RING2_STACK_IN_USE = 207 } - -enum : uint { ERROR_META_EXPANSION_TOO_LONG = 208 } - -enum : uint { ERROR_INVALID_SIGNAL_NUMBER = 209 } - -enum : uint { ERROR_THREAD_1_INACTIVE = 210 } - -enum : uint { ERROR_LOCKED = 212 } - -enum : uint { ERROR_TOO_MANY_MODULES = 214 } - -enum : uint { ERROR_NESTING_NOT_ALLOWED = 215 } - -enum : uint { ERROR_EXE_MACHINE_TYPE_MISMATCH = 216 } - -enum : uint { ERROR_BAD_PIPE = 230 } - -enum : uint { ERROR_PIPE_BUSY = 231 } - -enum : uint { ERROR_NO_DATA = 232 } - -enum : uint { ERROR_PIPE_NOT_CONNECTED = 233 } - -enum : uint { ERROR_MORE_DATA = 234 } - -enum : uint { ERROR_VC_DISCONNECTED = 240 } - -enum : uint { ERROR_INVALID_EA_NAME = 254 } - -enum : uint { ERROR_EA_LIST_INCONSISTENT = 255 } - -enum : uint { WAIT_TIMEOUT = 258 } - -enum : uint { ERROR_NO_MORE_ITEMS = 259 } - -enum : uint { ERROR_CANNOT_COPY = 266 } - -enum : uint { ERROR_DIRECTORY = 267 } - -enum : uint { ERROR_EAS_DIDNT_FIT = 275 } - -enum : uint { ERROR_EA_FILE_CORRUPT = 276 } - -enum : uint { ERROR_EA_TABLE_FULL = 277 } - -enum : uint { ERROR_INVALID_EA_HANDLE = 278 } - -enum : uint { ERROR_EAS_NOT_SUPPORTED = 282 } - -enum : uint { ERROR_NOT_OWNER = 288 } - -enum : uint { ERROR_TOO_MANY_POSTS = 298 } - -enum : uint { ERROR_PARTIAL_COPY = 299 } - -enum : uint { ERROR_OPLOCK_NOT_GRANTED = 300 } - -enum : uint { ERROR_INVALID_OPLOCK_PROTOCOL = 301 } - -enum : uint { ERROR_DISK_TOO_FRAGMENTED = 302 } - -enum : uint { ERROR_DELETE_PENDING = 303 } - -enum : uint { ERROR_MR_MID_NOT_FOUND = 317 } - -enum : uint { ERROR_INVALID_ADDRESS = 487 } - -enum : uint { ERROR_ARITHMETIC_OVERFLOW = 534 } - -enum : uint { ERROR_PIPE_CONNECTED = 535 } - -enum : uint { ERROR_PIPE_LISTENING = 536 } - -enum : uint { ERROR_EA_ACCESS_DENIED = 994 } - -enum : uint { ERROR_OPERATION_ABORTED = 995 } - -enum : uint { ERROR_IO_INCOMPLETE = 996 } - -enum : uint { ERROR_IO_PENDING = 997 } - -enum : uint { ERROR_NOACCESS = 998 } - -enum : uint { ERROR_SWAPERROR = 999 } - -enum : uint { ERROR_STACK_OVERFLOW = 1001 } - -enum : uint { ERROR_INVALID_MESSAGE = 1002 } - -enum : uint { ERROR_CAN_NOT_COMPLETE = 1003 } - -enum : uint { ERROR_INVALID_FLAGS = 1004 } - -enum : uint { ERROR_UNRECOGNIZED_VOLUME = 1005 } - -enum : uint { ERROR_FILE_INVALID = 1006 } - -enum : uint { ERROR_FULLSCREEN_MODE = 1007 } - -enum : uint { ERROR_NO_TOKEN = 1008 } - -enum : uint { ERROR_BADDB = 1009 } - -enum : uint { ERROR_BADKEY = 1010 } - -enum : uint { ERROR_CANTOPEN = 1011 } - -enum : uint { ERROR_CANTREAD = 1012 } - -enum : uint { ERROR_CANTWRITE = 1013 } - -enum : uint { ERROR_REGISTRY_RECOVERED = 1014 } - -enum : uint { ERROR_REGISTRY_CORRUPT = 1015 } - -enum : uint { ERROR_REGISTRY_IO_FAILED = 1016 } - -enum : uint { ERROR_NOT_REGISTRY_FILE = 1017 } - -enum : uint { ERROR_KEY_DELETED = 1018 } - -enum : uint { ERROR_NO_LOG_SPACE = 1019 } - -enum : uint { ERROR_KEY_HAS_CHILDREN = 1020 } - -enum : uint { ERROR_CHILD_MUST_BE_VOLATILE = 1021 } - -enum : uint { ERROR_NOTIFY_ENUM_DIR = 1022 } - -enum : uint { ERROR_DEPENDENT_SERVICES_RUNNING = 1051 } - -enum : uint { ERROR_INVALID_SERVICE_CONTROL = 1052 } - -enum : uint { ERROR_SERVICE_REQUEST_TIMEOUT = 1053 } - -enum : uint { ERROR_SERVICE_NO_THREAD = 1054 } - -enum : uint { ERROR_SERVICE_DATABASE_LOCKED = 1055 } - -enum : uint { ERROR_SERVICE_ALREADY_RUNNING = 1056 } - -enum : uint { ERROR_INVALID_SERVICE_ACCOUNT = 1057 } - -enum : uint { ERROR_SERVICE_DISABLED = 1058 } - -enum : uint { ERROR_CIRCULAR_DEPENDENCY = 1059 } - -enum : uint { ERROR_SERVICE_DOES_NOT_EXIST = 1060 } - -enum : uint { ERROR_SERVICE_CANNOT_ACCEPT_CTRL = 1061 } - -enum : uint { ERROR_SERVICE_NOT_ACTIVE = 1062 } - -enum : uint { ERROR_FAILED_SERVICE_CONTROLLER_CONNECT = 1063 } - -enum : uint { ERROR_EXCEPTION_IN_SERVICE = 1064 } - -enum : uint { ERROR_DATABASE_DOES_NOT_EXIST = 1065 } - -enum : uint { ERROR_SERVICE_SPECIFIC_ERROR = 1066 } - -enum : uint { ERROR_PROCESS_ABORTED = 1067 } - -enum : uint { ERROR_SERVICE_DEPENDENCY_FAIL = 1068 } - -enum : uint { ERROR_SERVICE_LOGON_FAILED = 1069 } - -enum : uint { ERROR_SERVICE_START_HANG = 1070 } - -enum : uint { ERROR_INVALID_SERVICE_LOCK = 1071 } - -enum : uint { ERROR_SERVICE_MARKED_FOR_DELETE = 1072 } - -enum : uint { ERROR_SERVICE_EXISTS = 1073 } - -enum : uint { ERROR_ALREADY_RUNNING_LKG = 1074 } - -enum : uint { ERROR_SERVICE_DEPENDENCY_DELETED = 1075 } - -enum : uint { ERROR_BOOT_ALREADY_ACCEPTED = 1076 } - -enum : uint { ERROR_SERVICE_NEVER_STARTED = 1077 } - -enum : uint { ERROR_DUPLICATE_SERVICE_NAME = 1078 } - -enum : uint { ERROR_DIFFERENT_SERVICE_ACCOUNT = 1079 } - -enum : uint { ERROR_CANNOT_DETECT_DRIVER_FAILURE = 1080 } - -enum : uint { ERROR_CANNOT_DETECT_PROCESS_ABORT = 1081 } - -enum : uint { ERROR_NO_RECOVERY_PROGRAM = 1082 } - -enum : uint { ERROR_SERVICE_NOT_IN_EXE = 1083 } - -enum : uint { ERROR_NOT_SAFEBOOT_SERVICE = 1084 } - -enum : uint { ERROR_END_OF_MEDIA = 1100 } - -enum : uint { ERROR_FILEMARK_DETECTED = 1101 } - -enum : uint { ERROR_BEGINNING_OF_MEDIA = 1102 } - -enum : uint { ERROR_SETMARK_DETECTED = 1103 } - -enum : uint { ERROR_NO_DATA_DETECTED = 1104 } - -enum : uint { ERROR_PARTITION_FAILURE = 1105 } - -enum : uint { ERROR_INVALID_BLOCK_LENGTH = 1106 } - -enum : uint { ERROR_DEVICE_NOT_PARTITIONED = 1107 } - -enum : uint { ERROR_UNABLE_TO_LOCK_MEDIA = 1108 } - -enum : uint { ERROR_UNABLE_TO_UNLOAD_MEDIA = 1109 } - -enum : uint { ERROR_MEDIA_CHANGED = 1110 } - -enum : uint { ERROR_BUS_RESET = 1111 } - -enum : uint { ERROR_NO_MEDIA_IN_DRIVE = 1112 } - -enum : uint { ERROR_NO_UNICODE_TRANSLATION = 1113 } - -enum : uint { ERROR_DLL_INIT_FAILED = 1114 } - -enum : uint { ERROR_SHUTDOWN_IN_PROGRESS = 1115 } - -enum : uint { ERROR_NO_SHUTDOWN_IN_PROGRESS = 1116 } - -enum : uint { ERROR_IO_DEVICE = 1117 } - -enum : uint { ERROR_SERIAL_NO_DEVICE = 1118 } - -enum : uint { ERROR_IRQ_BUSY = 1119 } - -enum : uint { ERROR_MORE_WRITES = 1120 } - -enum : uint { ERROR_COUNTER_TIMEOUT = 1121 } - -enum : uint { ERROR_FLOPPY_ID_MARK_NOT_FOUND = 1122 } - -enum : uint { ERROR_FLOPPY_WRONG_CYLINDER = 1123 } - -enum : uint { ERROR_FLOPPY_UNKNOWN_ERROR = 1124 } - -enum : uint { ERROR_FLOPPY_BAD_REGISTERS = 1125 } - -enum : uint { ERROR_DISK_RECALIBRATE_FAILED = 1126 } - -enum : uint { ERROR_DISK_OPERATION_FAILED = 1127 } - -enum : uint { ERROR_DISK_RESET_FAILED = 1128 } - -enum : uint { ERROR_EOM_OVERFLOW = 1129 } - -enum : uint { ERROR_NOT_ENOUGH_SERVER_MEMORY = 1130 } - -enum : uint { ERROR_POSSIBLE_DEADLOCK = 1131 } - -enum : uint { ERROR_MAPPED_ALIGNMENT = 1132 } - -enum : uint { ERROR_SET_POWER_STATE_VETOED = 1140 } - -enum : uint { ERROR_SET_POWER_STATE_FAILED = 1141 } - -enum : uint { ERROR_TOO_MANY_LINKS = 1142 } - -enum : uint { ERROR_OLD_WIN_VERSION = 1150 } - -enum : uint { ERROR_APP_WRONG_OS = 1151 } - -enum : uint { ERROR_SINGLE_INSTANCE_APP = 1152 } - -enum : uint { ERROR_RMODE_APP = 1153 } - -enum : uint { ERROR_INVALID_DLL = 1154 } - -enum : uint { ERROR_NO_ASSOCIATION = 1155 } - -enum : uint { ERROR_DDE_FAIL = 1156 } - -enum : uint { ERROR_DLL_NOT_FOUND = 1157 } - -enum : uint { ERROR_NO_MORE_USER_HANDLES = 1158 } - -enum : uint { ERROR_MESSAGE_SYNC_ONLY = 1159 } - -enum : uint { ERROR_SOURCE_ELEMENT_EMPTY = 1160 } - -enum : uint { ERROR_DESTINATION_ELEMENT_FULL = 1161 } - -enum : uint { ERROR_ILLEGAL_ELEMENT_ADDRESS = 1162 } - -enum : uint { ERROR_MAGAZINE_NOT_PRESENT = 1163 } - -enum : uint { ERROR_DEVICE_REINITIALIZATION_NEEDED = 1164 } - -enum : uint { ERROR_DEVICE_REQUIRES_CLEANING = 1165 } - -enum : uint { ERROR_DEVICE_DOOR_OPEN = 1166 } - -enum : uint { ERROR_DEVICE_NOT_CONNECTED = 1167 } - -enum : uint { ERROR_NOT_FOUND = 1168 } - -enum : uint { ERROR_NO_MATCH = 1169 } - -enum : uint { ERROR_SET_NOT_FOUND = 1170 } - -enum : uint { ERROR_POINT_NOT_FOUND = 1171 } - -enum : uint { ERROR_NO_TRACKING_SERVICE = 1172 } - -enum : uint { ERROR_NO_VOLUME_ID = 1173 } - -enum : uint { ERROR_UNABLE_TO_REMOVE_REPLACED = 1175 } - -enum : uint { ERROR_UNABLE_TO_MOVE_REPLACEMENT = 1176 } - -enum : uint { ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 = 1177 } - -enum : uint { ERROR_JOURNAL_DELETE_IN_PROGRESS = 1178 } - -enum : uint { ERROR_JOURNAL_NOT_ACTIVE = 1179 } - -enum : uint { ERROR_POTENTIAL_FILE_FOUND = 1180 } - -enum : uint { ERROR_JOURNAL_ENTRY_DELETED = 1181 } - -enum : uint { ERROR_BAD_DEVICE = 1200 } - -enum : uint { ERROR_CONNECTION_UNAVAIL = 1201 } - -enum : uint { ERROR_DEVICE_ALREADY_REMEMBERED = 1202 } - -enum : uint { ERROR_NO_NET_OR_BAD_PATH = 1203 } - -enum : uint { ERROR_BAD_PROVIDER = 1204 } - -enum : uint { ERROR_CANNOT_OPEN_PROFILE = 1205 } - -enum : uint { ERROR_BAD_PROFILE = 1206 } - -enum : uint { ERROR_NOT_CONTAINER = 1207 } - -enum : uint { ERROR_EXTENDED_ERROR = 1208 } - -enum : uint { ERROR_INVALID_GROUPNAME = 1209 } - -enum : uint { ERROR_INVALID_COMPUTERNAME = 1210 } - -enum : uint { ERROR_INVALID_EVENTNAME = 1211 } - -enum : uint { ERROR_INVALID_DOMAINNAME = 1212 } - -enum : uint { ERROR_INVALID_SERVICENAME = 1213 } - -enum : uint { ERROR_INVALID_NETNAME = 1214 } - -enum : uint { ERROR_INVALID_SHARENAME = 1215 } - -enum : uint { ERROR_INVALID_PASSWORDNAME = 1216 } - -enum : uint { ERROR_INVALID_MESSAGENAME = 1217 } - -enum : uint { ERROR_INVALID_MESSAGEDEST = 1218 } - -enum : uint { ERROR_SESSION_CREDENTIAL_CONFLICT = 1219 } - -enum : uint { ERROR_REMOTE_SESSION_LIMIT_EXCEEDED = 1220 } - -enum : uint { ERROR_DUP_DOMAINNAME = 1221 } - -enum : uint { ERROR_NO_NETWORK = 1222 } - -enum : uint { ERROR_CANCELLED = 1223 } - -enum : uint { ERROR_USER_MAPPED_FILE = 1224 } - -enum : uint { ERROR_CONNECTION_REFUSED = 1225 } - -enum : uint { ERROR_GRACEFUL_DISCONNECT = 1226 } - -enum : uint { ERROR_ADDRESS_ALREADY_ASSOCIATED = 1227 } - -enum : uint { ERROR_ADDRESS_NOT_ASSOCIATED = 1228 } - -enum : uint { ERROR_CONNECTION_INVALID = 1229 } - -enum : uint { ERROR_CONNECTION_ACTIVE = 1230 } - -enum : uint { ERROR_NETWORK_UNREACHABLE = 1231 } - -enum : uint { ERROR_HOST_UNREACHABLE = 1232 } - -enum : uint { ERROR_PROTOCOL_UNREACHABLE = 1233 } - -enum : uint { ERROR_PORT_UNREACHABLE = 1234 } - -enum : uint { ERROR_REQUEST_ABORTED = 1235 } - -enum : uint { ERROR_CONNECTION_ABORTED = 1236 } - -enum : uint { ERROR_RETRY = 1237 } - -enum : uint { ERROR_CONNECTION_COUNT_LIMIT = 1238 } - -enum : uint { ERROR_LOGIN_TIME_RESTRICTION = 1239 } - -enum : uint { ERROR_LOGIN_WKSTA_RESTRICTION = 1240 } - -enum : uint { ERROR_INCORRECT_ADDRESS = 1241 } - -enum : uint { ERROR_ALREADY_REGISTERED = 1242 } - -enum : uint { ERROR_SERVICE_NOT_FOUND = 1243 } - -enum : uint { ERROR_NOT_AUTHENTICATED = 1244 } - -enum : uint { ERROR_NOT_LOGGED_ON = 1245 } - -enum : uint { ERROR_CONTINUE = 1246 } - -enum : uint { ERROR_ALREADY_INITIALIZED = 1247 } - -enum : uint { ERROR_NO_MORE_DEVICES = 1248 } - -enum : uint { ERROR_NO_SUCH_SITE = 1249 } - -enum : uint { ERROR_DOMAIN_CONTROLLER_EXISTS = 1250 } - -enum : uint { ERROR_ONLY_IF_CONNECTED = 1251 } - -enum : uint { ERROR_OVERRIDE_NOCHANGES = 1252 } - -enum : uint { ERROR_BAD_USER_PROFILE = 1253 } - -enum : uint { ERROR_NOT_SUPPORTED_ON_SBS = 1254 } - -enum : uint { ERROR_SERVER_SHUTDOWN_IN_PROGRESS = 1255 } - -enum : uint { ERROR_HOST_DOWN = 1256 } - -enum : uint { ERROR_NON_ACCOUNT_SID = 1257 } - -enum : uint { ERROR_NON_DOMAIN_SID = 1258 } - -enum : uint { ERROR_APPHELP_BLOCK = 1259 } - -enum : uint { ERROR_ACCESS_DISABLED_BY_POLICY = 1260 } - -enum : uint { ERROR_REG_NAT_CONSUMPTION = 1261 } - -enum : uint { ERROR_CSCSHARE_OFFLINE = 1262 } - -enum : uint { ERROR_PKINIT_FAILURE = 1263 } - -enum : uint { ERROR_SMARTCARD_SUBSYSTEM_FAILURE = 1264 } - -enum : uint { ERROR_DOWNGRADE_DETECTED = 1265 } - -enum : uint { SEC_E_SMARTCARD_CERT_REVOKED = 1266 } - -enum : uint { SEC_E_ISSUING_CA_UNTRUSTED = 1267 } - -enum : uint { SEC_E_REVOCATION_OFFLINE_C = 1268 } - -enum : uint { SEC_E_PKINIT_CLIENT_FAILURE = 1269 } - -enum : uint { SEC_E_SMARTCARD_CERT_EXPIRED = 1270 } - -enum : uint { ERROR_MACHINE_LOCKED = 1271 } - -enum : uint { ERROR_CALLBACK_SUPPLIED_INVALID_DATA = 1273 } - -enum : uint { ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED = 1274 } - -enum : uint { ERROR_DRIVER_BLOCKED = 1275 } - -enum : uint { ERROR_INVALID_IMPORT_OF_NON_DLL = 1276 } - -enum : uint { ERROR_NOT_ALL_ASSIGNED = 1300 } - -enum : uint { ERROR_SOME_NOT_MAPPED = 1301 } - -enum : uint { ERROR_NO_QUOTAS_FOR_ACCOUNT = 1302 } - -enum : uint { ERROR_LOCAL_USER_SESSION_KEY = 1303 } - -enum : uint { ERROR_NULL_LM_PASSWORD = 1304 } - -enum : uint { ERROR_UNKNOWN_REVISION = 1305 } - -enum : uint { ERROR_REVISION_MISMATCH = 1306 } - -enum : uint { ERROR_INVALID_OWNER = 1307 } - -enum : uint { ERROR_INVALID_PRIMARY_GROUP = 1308 } - -enum : uint { ERROR_NO_IMPERSONATION_TOKEN = 1309 } - -enum : uint { ERROR_CANT_DISABLE_MANDATORY = 1310 } - -enum : uint { ERROR_NO_LOGON_SERVERS = 1311 } - -enum : uint { ERROR_NO_SUCH_LOGON_SESSION = 1312 } - -enum : uint { ERROR_NO_SUCH_PRIVILEGE = 1313 } - -enum : uint { ERROR_PRIVILEGE_NOT_HELD = 1314 } - -enum : uint { ERROR_INVALID_ACCOUNT_NAME = 1315 } - -enum : uint { ERROR_USER_EXISTS = 1316 } - -enum : uint { ERROR_NO_SUCH_USER = 1317 } - -enum : uint { ERROR_GROUP_EXISTS = 1318 } - -enum : uint { ERROR_NO_SUCH_GROUP = 1319 } - -enum : uint { ERROR_MEMBER_IN_GROUP = 1320 } - -enum : uint { ERROR_MEMBER_NOT_IN_GROUP = 1321 } - -enum : uint { ERROR_LAST_ADMIN = 1322 } - -enum : uint { ERROR_WRONG_PASSWORD = 1323 } - -enum : uint { ERROR_ILL_FORMED_PASSWORD = 1324 } - -enum : uint { ERROR_PASSWORD_RESTRICTION = 1325 } - -enum : uint { ERROR_LOGON_FAILURE = 1326 } - -enum : uint { ERROR_ACCOUNT_RESTRICTION = 1327 } - -enum : uint { ERROR_INVALID_LOGON_HOURS = 1328 } - -enum : uint { ERROR_INVALID_WORKSTATION = 1329 } - -enum : uint { ERROR_PASSWORD_EXPIRED = 1330 } - -enum : uint { ERROR_ACCOUNT_DISABLED = 1331 } - -enum : uint { ERROR_NONE_MAPPED = 1332 } - -enum : uint { ERROR_TOO_MANY_LUIDS_REQUESTED = 1333 } - -enum : uint { ERROR_LUIDS_EXHAUSTED = 1334 } - -enum : uint { ERROR_INVALID_SUB_AUTHORITY = 1335 } - -enum : uint { ERROR_INVALID_ACL = 1336 } - -enum : uint { ERROR_INVALID_SID = 1337 } - -enum : uint { ERROR_INVALID_SECURITY_DESCR = 1338 } - -enum : uint { ERROR_BAD_INHERITANCE_ACL = 1340 } - -enum : uint { ERROR_SERVER_DISABLED = 1341 } - -enum : uint { ERROR_SERVER_NOT_DISABLED = 1342 } - -enum : uint { ERROR_INVALID_ID_AUTHORITY = 1343 } - -enum : uint { ERROR_ALLOTTED_SPACE_EXCEEDED = 1344 } - -enum : uint { ERROR_INVALID_GROUP_ATTRIBUTES = 1345 } - -enum : uint { ERROR_BAD_IMPERSONATION_LEVEL = 1346 } - -enum : uint { ERROR_CANT_OPEN_ANONYMOUS = 1347 } - -enum : uint { ERROR_BAD_VALIDATION_CLASS = 1348 } - -enum : uint { ERROR_BAD_TOKEN_TYPE = 1349 } - -enum : uint { ERROR_NO_SECURITY_ON_OBJECT = 1350 } - -enum : uint { ERROR_CANT_ACCESS_DOMAIN_INFO = 1351 } - -enum : uint { ERROR_INVALID_SERVER_STATE = 1352 } - -enum : uint { ERROR_INVALID_DOMAIN_STATE = 1353 } - -enum : uint { ERROR_INVALID_DOMAIN_ROLE = 1354 } - -enum : uint { ERROR_NO_SUCH_DOMAIN = 1355 } - -enum : uint { ERROR_DOMAIN_EXISTS = 1356 } - -enum : uint { ERROR_DOMAIN_LIMIT_EXCEEDED = 1357 } - -enum : uint { ERROR_INTERNAL_DB_CORRUPTION = 1358 } - -enum : uint { ERROR_INTERNAL_ERROR = 1359 } - -enum : uint { ERROR_GENERIC_NOT_MAPPED = 1360 } - -enum : uint { ERROR_BAD_DESCRIPTOR_FORMAT = 1361 } - -enum : uint { ERROR_NOT_LOGON_PROCESS = 1362 } - -enum : uint { ERROR_LOGON_SESSION_EXISTS = 1363 } - -enum : uint { ERROR_NO_SUCH_PACKAGE = 1364 } - -enum : uint { ERROR_BAD_LOGON_SESSION_STATE = 1365 } - -enum : uint { ERROR_LOGON_SESSION_COLLISION = 1366 } - -enum : uint { ERROR_INVALID_LOGON_TYPE = 1367 } - -enum : uint { ERROR_CANNOT_IMPERSONATE = 1368 } - -enum : uint { ERROR_RXACT_INVALID_STATE = 1369 } - -enum : uint { ERROR_RXACT_COMMIT_FAILURE = 1370 } - -enum : uint { ERROR_SPECIAL_ACCOUNT = 1371 } - -enum : uint { ERROR_SPECIAL_GROUP = 1372 } - -enum : uint { ERROR_SPECIAL_USER = 1373 } - -enum : uint { ERROR_MEMBERS_PRIMARY_GROUP = 1374 } - -enum : uint { ERROR_TOKEN_ALREADY_IN_USE = 1375 } - -enum : uint { ERROR_NO_SUCH_ALIAS = 1376 } - -enum : uint { ERROR_MEMBER_NOT_IN_ALIAS = 1377 } - -enum : uint { ERROR_MEMBER_IN_ALIAS = 1378 } - -enum : uint { ERROR_ALIAS_EXISTS = 1379 } - -enum : uint { ERROR_LOGON_NOT_GRANTED = 1380 } - -enum : uint { ERROR_TOO_MANY_SECRETS = 1381 } - -enum : uint { ERROR_SECRET_TOO_LONG = 1382 } - -enum : uint { ERROR_INTERNAL_DB_ERROR = 1383 } - -enum : uint { ERROR_TOO_MANY_CONTEXT_IDS = 1384 } - -enum : uint { ERROR_LOGON_TYPE_NOT_GRANTED = 1385 } - -enum : uint { ERROR_NT_CROSS_ENCRYPTION_REQUIRED = 1386 } - -enum : uint { ERROR_NO_SUCH_MEMBER = 1387 } - -enum : uint { ERROR_INVALID_MEMBER = 1388 } - -enum : uint { ERROR_TOO_MANY_SIDS = 1389 } - -enum : uint { ERROR_LM_CROSS_ENCRYPTION_REQUIRED = 1390 } - -enum : uint { ERROR_NO_INHERITANCE = 1391 } - -enum : uint { ERROR_FILE_CORRUPT = 1392 } - -enum : uint { ERROR_DISK_CORRUPT = 1393 } - -enum : uint { ERROR_NO_USER_SESSION_KEY = 1394 } - -enum : uint { ERROR_LICENSE_QUOTA_EXCEEDED = 1395 } - -enum : uint { ERROR_WRONG_TARGET_NAME = 1396 } - -enum : uint { ERROR_MUTUAL_AUTH_FAILED = 1397 } - -enum : uint { ERROR_TIME_SKEW = 1398 } - -enum : uint { ERROR_CURRENT_DOMAIN_NOT_ALLOWED = 1399 } - -enum : uint { ERROR_INVALID_WINDOW_HANDLE = 1400 } - -enum : uint { ERROR_INVALID_MENU_HANDLE = 1401 } - -enum : uint { ERROR_INVALID_CURSOR_HANDLE = 1402 } - -enum : uint { ERROR_INVALID_ACCEL_HANDLE = 1403 } - -enum : uint { ERROR_INVALID_HOOK_HANDLE = 1404 } - -enum : uint { ERROR_INVALID_DWP_HANDLE = 1405 } - -enum : uint { ERROR_TLW_WITH_WSCHILD = 1406 } - -enum : uint { ERROR_CANNOT_FIND_WND_CLASS = 1407 } - -enum : uint { ERROR_WINDOW_OF_OTHER_THREAD = 1408 } - -enum : uint { ERROR_HOTKEY_ALREADY_REGISTERED = 1409 } - -enum : uint { ERROR_CLASS_ALREADY_EXISTS = 1410 } - -enum : uint { ERROR_CLASS_DOES_NOT_EXIST = 1411 } - -enum : uint { ERROR_CLASS_HAS_WINDOWS = 1412 } - -enum : uint { ERROR_INVALID_INDEX = 1413 } - -enum : uint { ERROR_INVALID_ICON_HANDLE = 1414 } - -enum : uint { ERROR_PRIVATE_DIALOG_INDEX = 1415 } - -enum : uint { ERROR_LISTBOX_ID_NOT_FOUND = 1416 } - -enum : uint { ERROR_NO_WILDCARD_CHARACTERS = 1417 } - -enum : uint { ERROR_CLIPBOARD_NOT_OPEN = 1418 } - -enum : uint { ERROR_HOTKEY_NOT_REGISTERED = 1419 } - -enum : uint { ERROR_WINDOW_NOT_DIALOG = 1420 } - -enum : uint { ERROR_CONTROL_ID_NOT_FOUND = 1421 } - -enum : uint { ERROR_INVALID_COMBOBOX_MESSAGE = 1422 } - -enum : uint { ERROR_WINDOW_NOT_COMBOBOX = 1423 } - -enum : uint { ERROR_INVALID_EDIT_HEIGHT = 1424 } - -enum : uint { ERROR_DC_NOT_FOUND = 1425 } - -enum : uint { ERROR_INVALID_HOOK_FILTER = 1426 } - -enum : uint { ERROR_INVALID_FILTER_PROC = 1427 } - -enum : uint { ERROR_HOOK_NEEDS_HMOD = 1428 } - -enum : uint { ERROR_GLOBAL_ONLY_HOOK = 1429 } - -enum : uint { ERROR_JOURNAL_HOOK_SET = 1430 } - -enum : uint { ERROR_HOOK_NOT_INSTALLED = 1431 } - -enum : uint { ERROR_INVALID_LB_MESSAGE = 1432 } - -enum : uint { ERROR_SETCOUNT_ON_BAD_LB = 1433 } - -enum : uint { ERROR_LB_WITHOUT_TABSTOPS = 1434 } - -enum : uint { ERROR_DESTROY_OBJECT_OF_OTHER_THREAD = 1435 } - -enum : uint { ERROR_CHILD_WINDOW_MENU = 1436 } - -enum : uint { ERROR_NO_SYSTEM_MENU = 1437 } - -enum : uint { ERROR_INVALID_MSGBOX_STYLE = 1438 } - -enum : uint { ERROR_INVALID_SPI_VALUE = 1439 } - -enum : uint { ERROR_SCREEN_ALREADY_LOCKED = 1440 } - -enum : uint { ERROR_HWNDS_HAVE_DIFF_PARENT = 1441 } - -enum : uint { ERROR_NOT_CHILD_WINDOW = 1442 } - -enum : uint { ERROR_INVALID_GW_COMMAND = 1443 } - -enum : uint { ERROR_INVALID_THREAD_ID = 1444 } - -enum : uint { ERROR_NON_MDICHILD_WINDOW = 1445 } - -enum : uint { ERROR_POPUP_ALREADY_ACTIVE = 1446 } - -enum : uint { ERROR_NO_SCROLLBARS = 1447 } - -enum : uint { ERROR_INVALID_SCROLLBAR_RANGE = 1448 } - -enum : uint { ERROR_INVALID_SHOWWIN_COMMAND = 1449 } - -enum : uint { ERROR_NO_SYSTEM_RESOURCES = 1450 } - -enum : uint { ERROR_NONPAGED_SYSTEM_RESOURCES = 1451 } - -enum : uint { ERROR_PAGED_SYSTEM_RESOURCES = 1452 } - -enum : uint { ERROR_WORKING_SET_QUOTA = 1453 } - -enum : uint { ERROR_PAGEFILE_QUOTA = 1454 } - -enum : uint { ERROR_COMMITMENT_LIMIT = 1455 } - -enum : uint { ERROR_MENU_ITEM_NOT_FOUND = 1456 } - -enum : uint { ERROR_INVALID_KEYBOARD_HANDLE = 1457 } - -enum : uint { ERROR_HOOK_TYPE_NOT_ALLOWED = 1458 } - -enum : uint { ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION = 1459 } - -enum : uint { ERROR_TIMEOUT = 1460 } - -enum : uint { ERROR_INVALID_MONITOR_HANDLE = 1461 } - -enum : uint { ERROR_EVENTLOG_FILE_CORRUPT = 1500 } - -enum : uint { ERROR_EVENTLOG_CANT_START = 1501 } - -enum : uint { ERROR_LOG_FILE_FULL = 1502 } - -enum : uint { ERROR_EVENTLOG_FILE_CHANGED = 1503 } - -enum : uint { ERROR_INSTALL_SERVICE_FAILURE = 1601 } - -enum : uint { ERROR_INSTALL_USEREXIT = 1602 } - -enum : uint { ERROR_INSTALL_FAILURE = 1603 } - -enum : uint { ERROR_INSTALL_SUSPEND = 1604 } - -enum : uint { ERROR_UNKNOWN_PRODUCT = 1605 } - -enum : uint { ERROR_UNKNOWN_FEATURE = 1606 } - -enum : uint { ERROR_UNKNOWN_COMPONENT = 1607 } - -enum : uint { ERROR_UNKNOWN_PROPERTY = 1608 } - -enum : uint { ERROR_INVALID_HANDLE_STATE = 1609 } - -enum : uint { ERROR_BAD_CONFIGURATION = 1610 } - -enum : uint { ERROR_INDEX_ABSENT = 1611 } - -enum : uint { ERROR_INSTALL_SOURCE_ABSENT = 1612 } - -enum : uint { ERROR_INSTALL_PACKAGE_VERSION = 1613 } - -enum : uint { ERROR_PRODUCT_UNINSTALLED = 1614 } - -enum : uint { ERROR_BAD_QUERY_SYNTAX = 1615 } - -enum : uint { ERROR_INVALID_FIELD = 1616 } - -enum : uint { ERROR_DEVICE_REMOVED = 1617 } - -enum : uint { ERROR_INSTALL_ALREADY_RUNNING = 1618 } - -enum : uint { ERROR_INSTALL_PACKAGE_OPEN_FAILED = 1619 } - -enum : uint { ERROR_INSTALL_PACKAGE_INVALID = 1620 } - -enum : uint { ERROR_INSTALL_UI_FAILURE = 1621 } - -enum : uint { ERROR_INSTALL_LOG_FAILURE = 1622 } - -enum : uint { ERROR_INSTALL_LANGUAGE_UNSUPPORTED = 1623 } - -enum : uint { ERROR_INSTALL_TRANSFORM_FAILURE = 1624 } - -enum : uint { ERROR_INSTALL_PACKAGE_REJECTED = 1625 } - -enum : uint { ERROR_FUNCTION_NOT_CALLED = 1626 } - -enum : uint { ERROR_FUNCTION_FAILED = 1627 } - -enum : uint { ERROR_INVALID_TABLE = 1628 } - -enum : uint { ERROR_DATATYPE_MISMATCH = 1629 } - -enum : uint { ERROR_UNSUPPORTED_TYPE = 1630 } - -enum : uint { ERROR_CREATE_FAILED = 1631 } - -enum : uint { ERROR_INSTALL_TEMP_UNWRITABLE = 1632 } - -enum : uint { ERROR_INSTALL_PLATFORM_UNSUPPORTED = 1633 } - -enum : uint { ERROR_INSTALL_NOTUSED = 1634 } - -enum : uint { ERROR_PATCH_PACKAGE_OPEN_FAILED = 1635 } - -enum : uint { ERROR_PATCH_PACKAGE_INVALID = 1636 } - -enum : uint { ERROR_PATCH_PACKAGE_UNSUPPORTED = 1637 } - -enum : uint { ERROR_PRODUCT_VERSION = 1638 } - -enum : uint { ERROR_INVALID_COMMAND_LINE = 1639 } - -enum : uint { ERROR_INSTALL_REMOTE_DISALLOWED = 1640 } - -enum : uint { ERROR_SUCCESS_REBOOT_INITIATED = 1641 } - -enum : uint { ERROR_PATCH_TARGET_NOT_FOUND = 1642 } - -enum : uint { ERROR_PATCH_PACKAGE_REJECTED = 1643 } - -enum : uint { ERROR_INSTALL_TRANSFORM_REJECTED = 1644 } - -enum : uint { RPC_S_INVALID_STRING_BINDING = 1700 } - -enum : uint { RPC_S_WRONG_KIND_OF_BINDING = 1701 } - -enum : uint { RPC_S_INVALID_BINDING = 1702 } - -enum : uint { RPC_S_PROTSEQ_NOT_SUPPORTED = 1703 } - -enum : uint { RPC_S_INVALID_RPC_PROTSEQ = 1704 } - -enum : uint { RPC_S_INVALID_STRING_UUID = 1705 } - -enum : uint { RPC_S_INVALID_ENDPOINT_FORMAT = 1706 } - -enum : uint { RPC_S_INVALID_NET_ADDR = 1707 } - -enum : uint { RPC_S_NO_ENDPOINT_FOUND = 1708 } - -enum : uint { RPC_S_INVALID_TIMEOUT = 1709 } - -enum : uint { RPC_S_OBJECT_NOT_FOUND = 1710 } - -enum : uint { RPC_S_ALREADY_REGISTERED = 1711 } - -enum : uint { RPC_S_TYPE_ALREADY_REGISTERED = 1712 } - -enum : uint { RPC_S_ALREADY_LISTENING = 1713 } - -enum : uint { RPC_S_NO_PROTSEQS_REGISTERED = 1714 } - -enum : uint { RPC_S_NOT_LISTENING = 1715 } - -enum : uint { RPC_S_UNKNOWN_MGR_TYPE = 1716 } - -enum : uint { RPC_S_UNKNOWN_IF = 1717 } - -enum : uint { RPC_S_NO_BINDINGS = 1718 } - -enum : uint { RPC_S_NO_PROTSEQS = 1719 } - -enum : uint { RPC_S_CANT_CREATE_ENDPOINT = 1720 } - -enum : uint { RPC_S_OUT_OF_RESOURCES = 1721 } - -enum : uint { RPC_S_SERVER_UNAVAILABLE = 1722 } - -enum : uint { RPC_S_SERVER_TOO_BUSY = 1723 } - -enum : uint { RPC_S_INVALID_NETWORK_OPTIONS = 1724 } - -enum : uint { RPC_S_NO_CALL_ACTIVE = 1725 } - -enum : uint { RPC_S_CALL_FAILED = 1726 } - -enum : uint { RPC_S_CALL_FAILED_DNE = 1727 } - -enum : uint { RPC_S_PROTOCOL_ERROR = 1728 } - -enum : uint { RPC_S_UNSUPPORTED_TRANS_SYN = 1730 } - -enum : uint { RPC_S_UNSUPPORTED_TYPE = 1732 } - -enum : uint { RPC_S_INVALID_TAG = 1733 } - -enum : uint { RPC_S_INVALID_BOUND = 1734 } - -enum : uint { RPC_S_NO_ENTRY_NAME = 1735 } - -enum : uint { RPC_S_INVALID_NAME_SYNTAX = 1736 } - -enum : uint { RPC_S_UNSUPPORTED_NAME_SYNTAX = 1737 } - -enum : uint { RPC_S_UUID_NO_ADDRESS = 1739 } - -enum : uint { RPC_S_DUPLICATE_ENDPOINT = 1740 } - -enum : uint { RPC_S_UNKNOWN_AUTHN_TYPE = 1741 } - -enum : uint { RPC_S_MAX_CALLS_TOO_SMALL = 1742 } - -enum : uint { RPC_S_STRING_TOO_LONG = 1743 } - -enum : uint { RPC_S_PROTSEQ_NOT_FOUND = 1744 } - -enum : uint { RPC_S_PROCNUM_OUT_OF_RANGE = 1745 } - -enum : uint { RPC_S_BINDING_HAS_NO_AUTH = 1746 } - -enum : uint { RPC_S_UNKNOWN_AUTHN_SERVICE = 1747 } - -enum : uint { RPC_S_UNKNOWN_AUTHN_LEVEL = 1748 } - -enum : uint { RPC_S_INVALID_AUTH_IDENTITY = 1749 } - -enum : uint { RPC_S_UNKNOWN_AUTHZ_SERVICE = 1750 } - -enum : uint { EPT_S_INVALID_ENTRY = 1751 } - -enum : uint { EPT_S_CANT_PERFORM_OP = 1752 } - -enum : uint { EPT_S_NOT_REGISTERED = 1753 } - -enum : uint { RPC_S_NOTHING_TO_EXPORT = 1754 } - -enum : uint { RPC_S_INCOMPLETE_NAME = 1755 } - -enum : uint { RPC_S_INVALID_VERS_OPTION = 1756 } - -enum : uint { RPC_S_NO_MORE_MEMBERS = 1757 } - -enum : uint { RPC_S_NOT_ALL_OBJS_UNEXPORTED = 1758 } - -enum : uint { RPC_S_INTERFACE_NOT_FOUND = 1759 } - -enum : uint { RPC_S_ENTRY_ALREADY_EXISTS = 1760 } - -enum : uint { RPC_S_ENTRY_NOT_FOUND = 1761 } - -enum : uint { RPC_S_NAME_SERVICE_UNAVAILABLE = 1762 } - -enum : uint { RPC_S_INVALID_NAF_ID = 1763 } - -enum : uint { RPC_S_CANNOT_SUPPORT = 1764 } - -enum : uint { RPC_S_NO_CONTEXT_AVAILABLE = 1765 } - -enum : uint { RPC_S_INTERNAL_ERROR = 1766 } - -enum : uint { RPC_S_ZERO_DIVIDE = 1767 } - -enum : uint { RPC_S_ADDRESS_ERROR = 1768 } - -enum : uint { RPC_S_FP_DIV_ZERO = 1769 } - -enum : uint { RPC_S_FP_UNDERFLOW = 1770 } - -enum : uint { RPC_S_FP_OVERFLOW = 1771 } - -enum : uint { RPC_X_NO_MORE_ENTRIES = 1772 } - -enum : uint { RPC_X_SS_CHAR_TRANS_OPEN_FAIL = 1773 } - -enum : uint { RPC_X_SS_CHAR_TRANS_SHORT_FILE = 1774 } - -enum : uint { RPC_X_SS_IN_NULL_CONTEXT = 1775 } - -enum : uint { RPC_X_SS_CONTEXT_DAMAGED = 1777 } - -enum : uint { RPC_X_SS_HANDLES_MISMATCH = 1778 } - -enum : uint { RPC_X_SS_CANNOT_GET_CALL_HANDLE = 1779 } - -enum : uint { RPC_X_NULL_REF_POINTER = 1780 } - -enum : uint { RPC_X_ENUM_VALUE_OUT_OF_RANGE = 1781 } - -enum : uint { RPC_X_BYTE_COUNT_TOO_SMALL = 1782 } - -enum : uint { RPC_X_BAD_STUB_DATA = 1783 } - -enum : uint { ERROR_INVALID_USER_BUFFER = 1784 } - -enum : uint { ERROR_UNRECOGNIZED_MEDIA = 1785 } - -enum : uint { ERROR_NO_TRUST_LSA_SECRET = 1786 } - -enum : uint { ERROR_NO_TRUST_SAM_ACCOUNT = 1787 } - -enum : uint { ERROR_TRUSTED_DOMAIN_FAILURE = 1788 } - -enum : uint { ERROR_TRUSTED_RELATIONSHIP_FAILURE = 1789 } - -enum : uint { ERROR_TRUST_FAILURE = 1790 } - -enum : uint { RPC_S_CALL_IN_PROGRESS = 1791 } - -enum : uint { ERROR_NETLOGON_NOT_STARTED = 1792 } - -enum : uint { ERROR_ACCOUNT_EXPIRED = 1793 } - -enum : uint { ERROR_REDIRECTOR_HAS_OPEN_HANDLES = 1794 } - -enum : uint { ERROR_PRINTER_DRIVER_ALREADY_INSTALLED = 1795 } - -enum : uint { ERROR_UNKNOWN_PORT = 1796 } - -enum : uint { ERROR_UNKNOWN_PRINTER_DRIVER = 1797 } - -enum : uint { ERROR_UNKNOWN_PRINTPROCESSOR = 1798 } - -enum : uint { ERROR_INVALID_SEPARATOR_FILE = 1799 } - -enum : uint { ERROR_INVALID_PRIORITY = 1800 } - -enum : uint { ERROR_INVALID_PRINTER_NAME = 1801 } - -enum : uint { ERROR_PRINTER_ALREADY_EXISTS = 1802 } - -enum : uint { ERROR_INVALID_PRINTER_COMMAND = 1803 } - -enum : uint { ERROR_INVALID_DATATYPE = 1804 } - -enum : uint { ERROR_INVALID_ENVIRONMENT = 1805 } - -enum : uint { RPC_S_NO_MORE_BINDINGS = 1806 } - -enum : uint { ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = 1807 } - -enum : uint { ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT = 1808 } - -enum : uint { ERROR_NOLOGON_SERVER_TRUST_ACCOUNT = 1809 } - -enum : uint { ERROR_DOMAIN_TRUST_INCONSISTENT = 1810 } - -enum : uint { ERROR_SERVER_HAS_OPEN_HANDLES = 1811 } - -enum : uint { ERROR_RESOURCE_DATA_NOT_FOUND = 1812 } - -enum : uint { ERROR_RESOURCE_TYPE_NOT_FOUND = 1813 } - -enum : uint { ERROR_RESOURCE_NAME_NOT_FOUND = 1814 } - -enum : uint { ERROR_RESOURCE_LANG_NOT_FOUND = 1815 } - -enum : uint { ERROR_NOT_ENOUGH_QUOTA = 1816 } - -enum : uint { RPC_S_NO_INTERFACES = 1817 } - -enum : uint { RPC_S_CALL_CANCELLED = 1818 } - -enum : uint { RPC_S_BINDING_INCOMPLETE = 1819 } - -enum : uint { RPC_S_COMM_FAILURE = 1820 } - -enum : uint { RPC_S_UNSUPPORTED_AUTHN_LEVEL = 1821 } - -enum : uint { RPC_S_NO_PRINC_NAME = 1822 } - -enum : uint { RPC_S_NOT_RPC_ERROR = 1823 } - -enum : uint { RPC_S_UUID_LOCAL_ONLY = 1824 } - -enum : uint { RPC_S_SEC_PKG_ERROR = 1825 } - -enum : uint { RPC_S_NOT_CANCELLED = 1826 } - -enum : uint { RPC_X_INVALID_ES_ACTION = 1827 } - -enum : uint { RPC_X_WRONG_ES_VERSION = 1828 } - -enum : uint { RPC_X_WRONG_STUB_VERSION = 1829 } - -enum : uint { RPC_X_INVALID_PIPE_OBJECT = 1830 } - -enum : uint { RPC_X_WRONG_PIPE_ORDER = 1831 } - -enum : uint { RPC_X_WRONG_PIPE_VERSION = 1832 } - -enum : uint { RPC_S_GROUP_MEMBER_NOT_FOUND = 1898 } - -enum : uint { EPT_S_CANT_CREATE = 1899 } - -enum : uint { RPC_S_INVALID_OBJECT = 1900 } - -enum : uint { ERROR_INVALID_TIME = 1901 } - -enum : uint { ERROR_INVALID_FORM_NAME = 1902 } - -enum : uint { ERROR_INVALID_FORM_SIZE = 1903 } - -enum : uint { ERROR_ALREADY_WAITING = 1904 } - -enum : uint { ERROR_PRINTER_DELETED = 1905 } - -enum : uint { ERROR_INVALID_PRINTER_STATE = 1906 } - -enum : uint { ERROR_PASSWORD_MUST_CHANGE = 1907 } - -enum : uint { ERROR_DOMAIN_CONTROLLER_NOT_FOUND = 1908 } - -enum : uint { ERROR_ACCOUNT_LOCKED_OUT = 1909 } - -enum : uint { OR_INVALID_OXID = 1910 } - -enum : uint { OR_INVALID_OID = 1911 } - -enum : uint { OR_INVALID_SET = 1912 } - -enum : uint { RPC_S_SEND_INCOMPLETE = 1913 } - -enum : uint { RPC_S_INVALID_ASYNC_HANDLE = 1914 } - -enum : uint { RPC_S_INVALID_ASYNC_CALL = 1915 } - -enum : uint { RPC_X_PIPE_CLOSED = 1916 } - -enum : uint { RPC_X_PIPE_DISCIPLINE_ERROR = 1917 } - -enum : uint { RPC_X_PIPE_EMPTY = 1918 } - -enum : uint { ERROR_NO_SITENAME = 1919 } - -enum : uint { ERROR_CANT_ACCESS_FILE = 1920 } - -enum : uint { ERROR_CANT_RESOLVE_FILENAME = 1921 } - -enum : uint { RPC_S_ENTRY_TYPE_MISMATCH = 1922 } - -enum : uint { RPC_S_NOT_ALL_OBJS_EXPORTED = 1923 } - -enum : uint { RPC_S_INTERFACE_NOT_EXPORTED = 1924 } - -enum : uint { RPC_S_PROFILE_NOT_ADDED = 1925 } - -enum : uint { RPC_S_PRF_ELT_NOT_ADDED = 1926 } - -enum : uint { RPC_S_PRF_ELT_NOT_REMOVED = 1927 } - -enum : uint { RPC_S_GRP_ELT_NOT_ADDED = 1928 } - -enum : uint { RPC_S_GRP_ELT_NOT_REMOVED = 1929 } - -enum : uint { ERROR_KM_DRIVER_BLOCKED = 1930 } - -enum : uint { ERROR_CONTEXT_EXPIRED = 1931 } - -enum : uint { ERROR_INVALID_PIXEL_FORMAT = 2000 } - -enum : uint { ERROR_BAD_DRIVER = 2001 } - -enum : uint { ERROR_INVALID_WINDOW_STYLE = 2002 } - -enum : uint { ERROR_METAFILE_NOT_SUPPORTED = 2003 } - -enum : uint { ERROR_TRANSFORM_NOT_SUPPORTED = 2004 } - -enum : uint { ERROR_CLIPPING_NOT_SUPPORTED = 2005 } - -enum : uint { ERROR_INVALID_CMM = 2010 } - -enum : uint { ERROR_INVALID_PROFILE = 2011 } - -enum : uint { ERROR_TAG_NOT_FOUND = 2012 } - -enum : uint { ERROR_TAG_NOT_PRESENT = 2013 } - -enum : uint { ERROR_DUPLICATE_TAG = 2014 } - -enum : uint { ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE = 2015 } - -enum : uint { ERROR_PROFILE_NOT_FOUND = 2016 } - -enum : uint { ERROR_INVALID_COLORSPACE = 2017 } - -enum : uint { ERROR_ICM_NOT_ENABLED = 2018 } - -enum : uint { ERROR_DELETING_ICM_XFORM = 2019 } - -enum : uint { ERROR_INVALID_TRANSFORM = 2020 } - -enum : uint { ERROR_COLORSPACE_MISMATCH = 2021 } - -enum : uint { ERROR_INVALID_COLORINDEX = 2022 } - -enum : uint { ERROR_CONNECTED_OTHER_PASSWORD = 2108 } - -enum : uint { ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT = 2109 } - -enum : uint { ERROR_BAD_USERNAME = 2202 } - -enum : uint { ERROR_NOT_CONNECTED = 2250 } - -enum : uint { ERROR_OPEN_FILES = 2401 } - -enum : uint { ERROR_ACTIVE_CONNECTIONS = 2402 } - -enum : uint { ERROR_DEVICE_IN_USE = 2404 } - -enum : uint { ERROR_UNKNOWN_PRINT_MONITOR = 3000 } - -enum : uint { ERROR_PRINTER_DRIVER_IN_USE = 3001 } - -enum : uint { ERROR_SPOOL_FILE_NOT_FOUND = 3002 } - -enum : uint { ERROR_SPL_NO_STARTDOC = 3003 } - -enum : uint { ERROR_SPL_NO_ADDJOB = 3004 } - -enum : uint { ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED = 3005 } - -enum : uint { ERROR_PRINT_MONITOR_ALREADY_INSTALLED = 3006 } - -enum : uint { ERROR_INVALID_PRINT_MONITOR = 3007 } - -enum : uint { ERROR_PRINT_MONITOR_IN_USE = 3008 } - -enum : uint { ERROR_PRINTER_HAS_JOBS_QUEUED = 3009 } - -enum : uint { ERROR_SUCCESS_REBOOT_REQUIRED = 3010 } - -enum : uint { ERROR_SUCCESS_RESTART_REQUIRED = 3011 } - -enum : uint { ERROR_PRINTER_NOT_FOUND = 3012 } - -enum : uint { ERROR_PRINTER_DRIVER_WARNED = 3013 } - -enum : uint { ERROR_PRINTER_DRIVER_BLOCKED = 3014 } - -enum : uint { ERROR_WINS_INTERNAL = 4000 } - -enum : uint { ERROR_CAN_NOT_DEL_LOCAL_WINS = 4001 } - -enum : uint { ERROR_STATIC_INIT = 4002 } - -enum : uint { ERROR_INC_BACKUP = 4003 } - -enum : uint { ERROR_FULL_BACKUP = 4004 } - -enum : uint { ERROR_REC_NON_EXISTENT = 4005 } - -enum : uint { ERROR_RPL_NOT_ALLOWED = 4006 } - -enum : uint { ERROR_DHCP_ADDRESS_CONFLICT = 4100 } - -enum : uint { ERROR_WMI_GUID_NOT_FOUND = 4200 } - -enum : uint { ERROR_WMI_INSTANCE_NOT_FOUND = 4201 } - -enum : uint { ERROR_WMI_ITEMID_NOT_FOUND = 4202 } - -enum : uint { ERROR_WMI_TRY_AGAIN = 4203 } - -enum : uint { ERROR_WMI_DP_NOT_FOUND = 4204 } - -enum : uint { ERROR_WMI_UNRESOLVED_INSTANCE_REF = 4205 } - -enum : uint { ERROR_WMI_ALREADY_ENABLED = 4206 } - -enum : uint { ERROR_WMI_GUID_DISCONNECTED = 4207 } - -enum : uint { ERROR_WMI_SERVER_UNAVAILABLE = 4208 } - -enum : uint { ERROR_WMI_DP_FAILED = 4209 } - -enum : uint { ERROR_WMI_INVALID_MOF = 4210 } - -enum : uint { ERROR_WMI_INVALID_REGINFO = 4211 } - -enum : uint { ERROR_WMI_ALREADY_DISABLED = 4212 } - -enum : uint { ERROR_WMI_READ_ONLY = 4213 } - -enum : uint { ERROR_WMI_SET_FAILURE = 4214 } - -enum : uint { ERROR_INVALID_MEDIA = 4300 } - -enum : uint { ERROR_INVALID_LIBRARY = 4301 } - -enum : uint { ERROR_INVALID_MEDIA_POOL = 4302 } - -enum : uint { ERROR_DRIVE_MEDIA_MISMATCH = 4303 } - -enum : uint { ERROR_MEDIA_OFFLINE = 4304 } - -enum : uint { ERROR_LIBRARY_OFFLINE = 4305 } - -enum : uint { ERROR_EMPTY = 4306 } - -enum : uint { ERROR_NOT_EMPTY = 4307 } - -enum : uint { ERROR_MEDIA_UNAVAILABLE = 4308 } - -enum : uint { ERROR_RESOURCE_DISABLED = 4309 } - -enum : uint { ERROR_INVALID_CLEANER = 4310 } - -enum : uint { ERROR_UNABLE_TO_CLEAN = 4311 } - -enum : uint { ERROR_OBJECT_NOT_FOUND = 4312 } - -enum : uint { ERROR_DATABASE_FAILURE = 4313 } - -enum : uint { ERROR_DATABASE_FULL = 4314 } - -enum : uint { ERROR_MEDIA_INCOMPATIBLE = 4315 } - -enum : uint { ERROR_RESOURCE_NOT_PRESENT = 4316 } - -enum : uint { ERROR_INVALID_OPERATION = 4317 } - -enum : uint { ERROR_MEDIA_NOT_AVAILABLE = 4318 } - -enum : uint { ERROR_DEVICE_NOT_AVAILABLE = 4319 } - -enum : uint { ERROR_REQUEST_REFUSED = 4320 } - -enum : uint { ERROR_INVALID_DRIVE_OBJECT = 4321 } - -enum : uint { ERROR_LIBRARY_FULL = 4322 } - -enum : uint { ERROR_MEDIUM_NOT_ACCESSIBLE = 4323 } - -enum : uint { ERROR_UNABLE_TO_LOAD_MEDIUM = 4324 } - -enum : uint { ERROR_UNABLE_TO_INVENTORY_DRIVE = 4325 } - -enum : uint { ERROR_UNABLE_TO_INVENTORY_SLOT = 4326 } - -enum : uint { ERROR_UNABLE_TO_INVENTORY_TRANSPORT = 4327 } - -enum : uint { ERROR_TRANSPORT_FULL = 4328 } - -enum : uint { ERROR_CONTROLLING_IEPORT = 4329 } - -enum : uint { ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA = 4330 } - -enum : uint { ERROR_CLEANER_SLOT_SET = 4331 } - -enum : uint { ERROR_CLEANER_SLOT_NOT_SET = 4332 } - -enum : uint { ERROR_CLEANER_CARTRIDGE_SPENT = 4333 } - -enum : uint { ERROR_UNEXPECTED_OMID = 4334 } - -enum : uint { ERROR_CANT_DELETE_LAST_ITEM = 4335 } - -enum : uint { ERROR_MESSAGE_EXCEEDS_MAX_SIZE = 4336 } - -enum : uint { ERROR_VOLUME_CONTAINS_SYS_FILES = 4337 } - -enum : uint { ERROR_INDIGENOUS_TYPE = 4338 } - -enum : uint { ERROR_NO_SUPPORTING_DRIVES = 4339 } - -enum : uint { ERROR_CLEANER_CARTRIDGE_INSTALLED = 4340 } - -enum : uint { ERROR_FILE_OFFLINE = 4350 } - -enum : uint { ERROR_REMOTE_STORAGE_NOT_ACTIVE = 4351 } - -enum : uint { ERROR_REMOTE_STORAGE_MEDIA_ERROR = 4352 } - -enum : uint { ERROR_NOT_A_REPARSE_POINT = 4390 } - -enum : uint { ERROR_REPARSE_ATTRIBUTE_CONFLICT = 4391 } - -enum : uint { ERROR_INVALID_REPARSE_DATA = 4392 } - -enum : uint { ERROR_REPARSE_TAG_INVALID = 4393 } - -enum : uint { ERROR_REPARSE_TAG_MISMATCH = 4394 } - -enum : uint { ERROR_VOLUME_NOT_SIS_ENABLED = 4500 } - -enum : uint { ERROR_DEPENDENT_RESOURCE_EXISTS = 5001 } - -enum : uint { ERROR_DEPENDENCY_NOT_FOUND = 5002 } - -enum : uint { ERROR_DEPENDENCY_ALREADY_EXISTS = 5003 } - -enum : uint { ERROR_RESOURCE_NOT_ONLINE = 5004 } - -enum : uint { ERROR_HOST_NODE_NOT_AVAILABLE = 5005 } - -enum : uint { ERROR_RESOURCE_NOT_AVAILABLE = 5006 } - -enum : uint { ERROR_RESOURCE_NOT_FOUND = 5007 } - -enum : uint { ERROR_SHUTDOWN_CLUSTER = 5008 } - -enum : uint { ERROR_CANT_EVICT_ACTIVE_NODE = 5009 } - -enum : uint { ERROR_OBJECT_ALREADY_EXISTS = 5010 } - -enum : uint { ERROR_OBJECT_IN_LIST = 5011 } - -enum : uint { ERROR_GROUP_NOT_AVAILABLE = 5012 } - -enum : uint { ERROR_GROUP_NOT_FOUND = 5013 } - -enum : uint { ERROR_GROUP_NOT_ONLINE = 5014 } - -enum : uint { ERROR_HOST_NODE_NOT_RESOURCE_OWNER = 5015 } - -enum : uint { ERROR_HOST_NODE_NOT_GROUP_OWNER = 5016 } - -enum : uint { ERROR_RESMON_CREATE_FAILED = 5017 } - -enum : uint { ERROR_RESMON_ONLINE_FAILED = 5018 } - -enum : uint { ERROR_RESOURCE_ONLINE = 5019 } - -enum : uint { ERROR_QUORUM_RESOURCE = 5020 } - -enum : uint { ERROR_NOT_QUORUM_CAPABLE = 5021 } - -enum : uint { ERROR_CLUSTER_SHUTTING_DOWN = 5022 } - -enum : uint { ERROR_INVALID_STATE = 5023 } - -enum : uint { ERROR_RESOURCE_PROPERTIES_STORED = 5024 } - -enum : uint { ERROR_NOT_QUORUM_CLASS = 5025 } - -enum : uint { ERROR_CORE_RESOURCE = 5026 } - -enum : uint { ERROR_QUORUM_RESOURCE_ONLINE_FAILED = 5027 } - -enum : uint { ERROR_QUORUMLOG_OPEN_FAILED = 5028 } - -enum : uint { ERROR_CLUSTERLOG_CORRUPT = 5029 } - -enum : uint { ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE = 5030 } - -enum : uint { ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE = 5031 } - -enum : uint { ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND = 5032 } - -enum : uint { ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE = 5033 } - -enum : uint { ERROR_QUORUM_OWNER_ALIVE = 5034 } - -enum : uint { ERROR_NETWORK_NOT_AVAILABLE = 5035 } - -enum : uint { ERROR_NODE_NOT_AVAILABLE = 5036 } - -enum : uint { ERROR_ALL_NODES_NOT_AVAILABLE = 5037 } - -enum : uint { ERROR_RESOURCE_FAILED = 5038 } - -enum : uint { ERROR_CLUSTER_INVALID_NODE = 5039 } - -enum : uint { ERROR_CLUSTER_NODE_EXISTS = 5040 } - -enum : uint { ERROR_CLUSTER_JOIN_IN_PROGRESS = 5041 } - -enum : uint { ERROR_CLUSTER_NODE_NOT_FOUND = 5042 } - -enum : uint { ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND = 5043 } - -enum : uint { ERROR_CLUSTER_NETWORK_EXISTS = 5044 } - -enum : uint { ERROR_CLUSTER_NETWORK_NOT_FOUND = 5045 } - -enum : uint { ERROR_CLUSTER_NETINTERFACE_EXISTS = 5046 } - -enum : uint { ERROR_CLUSTER_NETINTERFACE_NOT_FOUND = 5047 } - -enum : uint { ERROR_CLUSTER_INVALID_REQUEST = 5048 } - -enum : uint { ERROR_CLUSTER_INVALID_NETWORK_PROVIDER = 5049 } - -enum : uint { ERROR_CLUSTER_NODE_DOWN = 5050 } - -enum : uint { ERROR_CLUSTER_NODE_UNREACHABLE = 5051 } - -enum : uint { ERROR_CLUSTER_NODE_NOT_MEMBER = 5052 } - -enum : uint { ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS = 5053 } - -enum : uint { ERROR_CLUSTER_INVALID_NETWORK = 5054 } - -enum : uint { ERROR_CLUSTER_NODE_UP = 5056 } - -enum : uint { ERROR_CLUSTER_IPADDR_IN_USE = 5057 } - -enum : uint { ERROR_CLUSTER_NODE_NOT_PAUSED = 5058 } - -enum : uint { ERROR_CLUSTER_NO_SECURITY_CONTEXT = 5059 } - -enum : uint { ERROR_CLUSTER_NETWORK_NOT_INTERNAL = 5060 } - -enum : uint { ERROR_CLUSTER_NODE_ALREADY_UP = 5061 } - -enum : uint { ERROR_CLUSTER_NODE_ALREADY_DOWN = 5062 } - -enum : uint { ERROR_CLUSTER_NETWORK_ALREADY_ONLINE = 5063 } - -enum : uint { ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE = 5064 } - -enum : uint { ERROR_CLUSTER_NODE_ALREADY_MEMBER = 5065 } - -enum : uint { ERROR_CLUSTER_LAST_INTERNAL_NETWORK = 5066 } - -enum : uint { ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS = 5067 } - -enum : uint { ERROR_INVALID_OPERATION_ON_QUORUM = 5068 } - -enum : uint { ERROR_DEPENDENCY_NOT_ALLOWED = 5069 } - -enum : uint { ERROR_CLUSTER_NODE_PAUSED = 5070 } - -enum : uint { ERROR_NODE_CANT_HOST_RESOURCE = 5071 } - -enum : uint { ERROR_CLUSTER_NODE_NOT_READY = 5072 } - -enum : uint { ERROR_CLUSTER_NODE_SHUTTING_DOWN = 5073 } - -enum : uint { ERROR_CLUSTER_JOIN_ABORTED = 5074 } - -enum : uint { ERROR_CLUSTER_INCOMPATIBLE_VERSIONS = 5075 } - -enum : uint { ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED = 5076 } - -enum : uint { ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED = 5077 } - -enum : uint { ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND = 5078 } - -enum : uint { ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED = 5079 } - -enum : uint { ERROR_CLUSTER_RESNAME_NOT_FOUND = 5080 } - -enum : uint { ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED = 5081 } - -enum : uint { ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST = 5082 } - -enum : uint { ERROR_CLUSTER_DATABASE_SEQMISMATCH = 5083 } - -enum : uint { ERROR_RESMON_INVALID_STATE = 5084 } - -enum : uint { ERROR_CLUSTER_GUM_NOT_LOCKER = 5085 } - -enum : uint { ERROR_QUORUM_DISK_NOT_FOUND = 5086 } - -enum : uint { ERROR_DATABASE_BACKUP_CORRUPT = 5087 } - -enum : uint { ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT = 5088 } - -enum : uint { ERROR_RESOURCE_PROPERTY_UNCHANGEABLE = 5089 } - -enum : uint { ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE = 5890 } - -enum : uint { ERROR_CLUSTER_QUORUMLOG_NOT_FOUND = 5891 } - -enum : uint { ERROR_CLUSTER_MEMBERSHIP_HALT = 5892 } - -enum : uint { ERROR_CLUSTER_INSTANCE_ID_MISMATCH = 5893 } - -enum : uint { ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP = 5894 } - -enum : uint { ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH = 5895 } - -enum : uint { ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP = 5896 } - -enum : uint { ERROR_CLUSTER_PARAMETER_MISMATCH = 5897 } - -enum : uint { ERROR_NODE_CANNOT_BE_CLUSTERED = 5898 } - -enum : uint { ERROR_CLUSTER_WRONG_OS_VERSION = 5899 } - -enum : uint { ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME = 5900 } - -enum : uint { ERROR_ENCRYPTION_FAILED = 6000 } - -enum : uint { ERROR_DECRYPTION_FAILED = 6001 } - -enum : uint { ERROR_FILE_ENCRYPTED = 6002 } - -enum : uint { ERROR_NO_RECOVERY_POLICY = 6003 } - -enum : uint { ERROR_NO_EFS = 6004 } - -enum : uint { ERROR_WRONG_EFS = 6005 } - -enum : uint { ERROR_NO_USER_KEYS = 6006 } - -enum : uint { ERROR_FILE_NOT_ENCRYPTED = 6007 } - -enum : uint { ERROR_NOT_EXPORT_FORMAT = 6008 } - -enum : uint { ERROR_FILE_READ_ONLY = 6009 } - -enum : uint { ERROR_DIR_EFS_DISALLOWED = 6010 } - -enum : uint { ERROR_EFS_SERVER_NOT_TRUSTED = 6011 } - -enum : uint { ERROR_BAD_RECOVERY_POLICY = 6012 } - -enum : uint { ERROR_EFS_ALG_BLOB_TOO_BIG = 6013 } - -enum : uint { ERROR_VOLUME_NOT_SUPPORT_EFS = 6014 } - -enum : uint { ERROR_EFS_DISABLED = 6015 } - -enum : uint { ERROR_EFS_VERSION_NOT_SUPPORT = 6016 } - -enum : uint { ERROR_NO_BROWSER_SERVERS_FOUND = 6118 } - -enum : uint { SCHED_E_SERVICE_NOT_LOCALSYSTEM = 6200 } - -enum : uint { ERROR_CTX_WINSTATION_NAME_INVALID = 7001 } - -enum : uint { ERROR_CTX_INVALID_PD = 7002 } - -enum : uint { ERROR_CTX_PD_NOT_FOUND = 7003 } - -enum : uint { ERROR_CTX_WD_NOT_FOUND = 7004 } - -enum : uint { ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY = 7005 } - -enum : uint { ERROR_CTX_SERVICE_NAME_COLLISION = 7006 } - -enum : uint { ERROR_CTX_CLOSE_PENDING = 7007 } - -enum : uint { ERROR_CTX_NO_OUTBUF = 7008 } - -enum : uint { ERROR_CTX_MODEM_INF_NOT_FOUND = 7009 } - -enum : uint { ERROR_CTX_INVALID_MODEMNAME = 7010 } - -enum : uint { ERROR_CTX_MODEM_RESPONSE_ERROR = 7011 } - -enum : uint { ERROR_CTX_MODEM_RESPONSE_TIMEOUT = 7012 } - -enum : uint { ERROR_CTX_MODEM_RESPONSE_NO_CARRIER = 7013 } - -enum : uint { ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE = 7014 } - -enum : uint { ERROR_CTX_MODEM_RESPONSE_BUSY = 7015 } - -enum : uint { ERROR_CTX_MODEM_RESPONSE_VOICE = 7016 } - -enum : uint { ERROR_CTX_TD_ERROR = 7017 } - -enum : uint { ERROR_CTX_WINSTATION_NOT_FOUND = 7022 } - -enum : uint { ERROR_CTX_WINSTATION_ALREADY_EXISTS = 7023 } - -enum : uint { ERROR_CTX_WINSTATION_BUSY = 7024 } - -enum : uint { ERROR_CTX_BAD_VIDEO_MODE = 7025 } - -enum : uint { ERROR_CTX_GRAPHICS_INVALID = 7035 } - -enum : uint { ERROR_CTX_LOGON_DISABLED = 7037 } - -enum : uint { ERROR_CTX_NOT_CONSOLE = 7038 } - -enum : uint { ERROR_CTX_CLIENT_QUERY_TIMEOUT = 7040 } - -enum : uint { ERROR_CTX_CONSOLE_DISCONNECT = 7041 } - -enum : uint { ERROR_CTX_CONSOLE_CONNECT = 7042 } - -enum : uint { ERROR_CTX_SHADOW_DENIED = 7044 } - -enum : uint { ERROR_CTX_WINSTATION_ACCESS_DENIED = 7045 } - -enum : uint { ERROR_CTX_INVALID_WD = 7049 } - -enum : uint { ERROR_CTX_SHADOW_INVALID = 7050 } - -enum : uint { ERROR_CTX_SHADOW_DISABLED = 7051 } - -enum : uint { ERROR_CTX_CLIENT_LICENSE_IN_USE = 7052 } - -enum : uint { ERROR_CTX_CLIENT_LICENSE_NOT_SET = 7053 } - -enum : uint { ERROR_CTX_LICENSE_NOT_AVAILABLE = 7054 } - -enum : uint { ERROR_CTX_LICENSE_CLIENT_INVALID = 7055 } - -enum : uint { ERROR_CTX_LICENSE_EXPIRED = 7056 } - -enum : uint { ERROR_CTX_SHADOW_NOT_RUNNING = 7057 } - -enum : uint { ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE = 7058 } - -enum : uint { FRS_ERR_INVALID_API_SEQUENCE = 8001 } - -enum : uint { FRS_ERR_STARTING_SERVICE = 8002 } - -enum : uint { FRS_ERR_STOPPING_SERVICE = 8003 } - -enum : uint { FRS_ERR_INTERNAL_API = 8004 } - -enum : uint { FRS_ERR_INTERNAL = 8005 } - -enum : uint { FRS_ERR_SERVICE_COMM = 8006 } - -enum : uint { FRS_ERR_INSUFFICIENT_PRIV = 8007 } - -enum : uint { FRS_ERR_AUTHENTICATION = 8008 } - -enum : uint { FRS_ERR_PARENT_INSUFFICIENT_PRIV = 8009 } - -enum : uint { FRS_ERR_PARENT_AUTHENTICATION = 8010 } - -enum : uint { FRS_ERR_CHILD_TO_PARENT_COMM = 8011 } - -enum : uint { FRS_ERR_PARENT_TO_CHILD_COMM = 8012 } - -enum : uint { FRS_ERR_SYSVOL_POPULATE = 8013 } - -enum : uint { FRS_ERR_SYSVOL_POPULATE_TIMEOUT = 8014 } - -enum : uint { FRS_ERR_SYSVOL_IS_BUSY = 8015 } - -enum : uint { FRS_ERR_SYSVOL_DEMOTE = 8016 } - -enum : uint { FRS_ERR_INVALID_SERVICE_PARAMETER = 8017 } - -alias NO_ERROR DS_S_SUCCESS; - -enum : uint { ERROR_DS_NOT_INSTALLED = 8200 } - -enum : uint { ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY = 8201 } - -enum : uint { ERROR_DS_NO_ATTRIBUTE_OR_VALUE = 8202 } - -enum : uint { ERROR_DS_INVALID_ATTRIBUTE_SYNTAX = 8203 } - -enum : uint { ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED = 8204 } - -enum : uint { ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS = 8205 } - -enum : uint { ERROR_DS_BUSY = 8206 } - -enum : uint { ERROR_DS_UNAVAILABLE = 8207 } - -enum : uint { ERROR_DS_NO_RIDS_ALLOCATED = 8208 } - -enum : uint { ERROR_DS_NO_MORE_RIDS = 8209 } - -enum : uint { ERROR_DS_INCORRECT_ROLE_OWNER = 8210 } - -enum : uint { ERROR_DS_RIDMGR_INIT_ERROR = 8211 } - -enum : uint { ERROR_DS_OBJ_CLASS_VIOLATION = 8212 } - -enum : uint { ERROR_DS_CANT_ON_NON_LEAF = 8213 } - -enum : uint { ERROR_DS_CANT_ON_RDN = 8214 } - -enum : uint { ERROR_DS_CANT_MOD_OBJ_CLASS = 8215 } - -enum : uint { ERROR_DS_CROSS_DOM_MOVE_ERROR = 8216 } - -enum : uint { ERROR_DS_GC_NOT_AVAILABLE = 8217 } - -enum : uint { ERROR_SHARED_POLICY = 8218 } - -enum : uint { ERROR_POLICY_OBJECT_NOT_FOUND = 8219 } - -enum : uint { ERROR_POLICY_ONLY_IN_DS = 8220 } - -enum : uint { ERROR_PROMOTION_ACTIVE = 8221 } - -enum : uint { ERROR_NO_PROMOTION_ACTIVE = 8222 } - -enum : uint { ERROR_DS_OPERATIONS_ERROR = 8224 } - -enum : uint { ERROR_DS_PROTOCOL_ERROR = 8225 } - -enum : uint { ERROR_DS_TIMELIMIT_EXCEEDED = 8226 } - -enum : uint { ERROR_DS_SIZELIMIT_EXCEEDED = 8227 } - -enum : uint { ERROR_DS_ADMIN_LIMIT_EXCEEDED = 8228 } - -enum : uint { ERROR_DS_COMPARE_FALSE = 8229 } - -enum : uint { ERROR_DS_COMPARE_TRUE = 8230 } - -enum : uint { ERROR_DS_AUTH_METHOD_NOT_SUPPORTED = 8231 } - -enum : uint { ERROR_DS_STRONG_AUTH_REQUIRED = 8232 } - -enum : uint { ERROR_DS_INAPPROPRIATE_AUTH = 8233 } - -enum : uint { ERROR_DS_AUTH_UNKNOWN = 8234 } - -enum : uint { ERROR_DS_REFERRAL = 8235 } - -enum : uint { ERROR_DS_UNAVAILABLE_CRIT_EXTENSION = 8236 } - -enum : uint { ERROR_DS_CONFIDENTIALITY_REQUIRED = 8237 } - -enum : uint { ERROR_DS_INAPPROPRIATE_MATCHING = 8238 } - -enum : uint { ERROR_DS_CONSTRAINT_VIOLATION = 8239 } - -enum : uint { ERROR_DS_NO_SUCH_OBJECT = 8240 } - -enum : uint { ERROR_DS_ALIAS_PROBLEM = 8241 } - -enum : uint { ERROR_DS_INVALID_DN_SYNTAX = 8242 } - -enum : uint { ERROR_DS_IS_LEAF = 8243 } - -enum : uint { ERROR_DS_ALIAS_DEREF_PROBLEM = 8244 } - -enum : uint { ERROR_DS_UNWILLING_TO_PERFORM = 8245 } - -enum : uint { ERROR_DS_LOOP_DETECT = 8246 } - -enum : uint { ERROR_DS_NAMING_VIOLATION = 8247 } - -enum : uint { ERROR_DS_OBJECT_RESULTS_TOO_LARGE = 8248 } - -enum : uint { ERROR_DS_AFFECTS_MULTIPLE_DSAS = 8249 } - -enum : uint { ERROR_DS_SERVER_DOWN = 8250 } - -enum : uint { ERROR_DS_LOCAL_ERROR = 8251 } - -enum : uint { ERROR_DS_ENCODING_ERROR = 8252 } - -enum : uint { ERROR_DS_DECODING_ERROR = 8253 } - -enum : uint { ERROR_DS_FILTER_UNKNOWN = 8254 } - -enum : uint { ERROR_DS_PARAM_ERROR = 8255 } - -enum : uint { ERROR_DS_NOT_SUPPORTED = 8256 } - -enum : uint { ERROR_DS_NO_RESULTS_RETURNED = 8257 } - -enum : uint { ERROR_DS_CONTROL_NOT_FOUND = 8258 } - -enum : uint { ERROR_DS_CLIENT_LOOP = 8259 } - -enum : uint { ERROR_DS_REFERRAL_LIMIT_EXCEEDED = 8260 } - -enum : uint { ERROR_DS_SORT_CONTROL_MISSING = 8261 } - -enum : uint { ERROR_DS_OFFSET_RANGE_ERROR = 8262 } - -enum : uint { ERROR_DS_ROOT_MUST_BE_NC = 8301 } - -enum : uint { ERROR_DS_ADD_REPLICA_INHIBITED = 8302 } - -enum : uint { ERROR_DS_ATT_NOT_DEF_IN_SCHEMA = 8303 } - -enum : uint { ERROR_DS_MAX_OBJ_SIZE_EXCEEDED = 8304 } - -enum : uint { ERROR_DS_OBJ_STRING_NAME_EXISTS = 8305 } - -enum : uint { ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA = 8306 } - -enum : uint { ERROR_DS_RDN_DOESNT_MATCH_SCHEMA = 8307 } - -enum : uint { ERROR_DS_NO_REQUESTED_ATTS_FOUND = 8308 } - -enum : uint { ERROR_DS_USER_BUFFER_TO_SMALL = 8309 } - -enum : uint { ERROR_DS_ATT_IS_NOT_ON_OBJ = 8310 } - -enum : uint { ERROR_DS_ILLEGAL_MOD_OPERATION = 8311 } - -enum : uint { ERROR_DS_OBJ_TOO_LARGE = 8312 } - -enum : uint { ERROR_DS_BAD_INSTANCE_TYPE = 8313 } - -enum : uint { ERROR_DS_MASTERDSA_REQUIRED = 8314 } - -enum : uint { ERROR_DS_OBJECT_CLASS_REQUIRED = 8315 } - -enum : uint { ERROR_DS_MISSING_REQUIRED_ATT = 8316 } - -enum : uint { ERROR_DS_ATT_NOT_DEF_FOR_CLASS = 8317 } - -enum : uint { ERROR_DS_ATT_ALREADY_EXISTS = 8318 } - -enum : uint { ERROR_DS_CANT_ADD_ATT_VALUES = 8320 } - -enum : uint { ERROR_DS_SINGLE_VALUE_CONSTRAINT = 8321 } - -enum : uint { ERROR_DS_RANGE_CONSTRAINT = 8322 } - -enum : uint { ERROR_DS_ATT_VAL_ALREADY_EXISTS = 8323 } - -enum : uint { ERROR_DS_CANT_REM_MISSING_ATT = 8324 } - -enum : uint { ERROR_DS_CANT_REM_MISSING_ATT_VAL = 8325 } - -enum : uint { ERROR_DS_ROOT_CANT_BE_SUBREF = 8326 } - -enum : uint { ERROR_DS_NO_CHAINING = 8327 } - -enum : uint { ERROR_DS_NO_CHAINED_EVAL = 8328 } - -enum : uint { ERROR_DS_NO_PARENT_OBJECT = 8329 } - -enum : uint { ERROR_DS_PARENT_IS_AN_ALIAS = 8330 } - -enum : uint { ERROR_DS_CANT_MIX_MASTER_AND_REPS = 8331 } - -enum : uint { ERROR_DS_CHILDREN_EXIST = 8332 } - -enum : uint { ERROR_DS_OBJ_NOT_FOUND = 8333 } - -enum : uint { ERROR_DS_ALIASED_OBJ_MISSING = 8334 } - -enum : uint { ERROR_DS_BAD_NAME_SYNTAX = 8335 } - -enum : uint { ERROR_DS_ALIAS_POINTS_TO_ALIAS = 8336 } - -enum : uint { ERROR_DS_CANT_DEREF_ALIAS = 8337 } - -enum : uint { ERROR_DS_OUT_OF_SCOPE = 8338 } - -enum : uint { ERROR_DS_OBJECT_BEING_REMOVED = 8339 } - -enum : uint { ERROR_DS_CANT_DELETE_DSA_OBJ = 8340 } - -enum : uint { ERROR_DS_GENERIC_ERROR = 8341 } - -enum : uint { ERROR_DS_DSA_MUST_BE_INT_MASTER = 8342 } - -enum : uint { ERROR_DS_CLASS_NOT_DSA = 8343 } - -enum : uint { ERROR_DS_INSUFF_ACCESS_RIGHTS = 8344 } - -enum : uint { ERROR_DS_ILLEGAL_SUPERIOR = 8345 } - -enum : uint { ERROR_DS_ATTRIBUTE_OWNED_BY_SAM = 8346 } - -enum : uint { ERROR_DS_NAME_TOO_MANY_PARTS = 8347 } - -enum : uint { ERROR_DS_NAME_TOO_LONG = 8348 } - -enum : uint { ERROR_DS_NAME_VALUE_TOO_LONG = 8349 } - -enum : uint { ERROR_DS_NAME_UNPARSEABLE = 8350 } - -enum : uint { ERROR_DS_NAME_TYPE_UNKNOWN = 8351 } - -enum : uint { ERROR_DS_NOT_AN_OBJECT = 8352 } - -enum : uint { ERROR_DS_SEC_DESC_TOO_SHORT = 8353 } - -enum : uint { ERROR_DS_SEC_DESC_INVALID = 8354 } - -enum : uint { ERROR_DS_NO_DELETED_NAME = 8355 } - -enum : uint { ERROR_DS_SUBREF_MUST_HAVE_PARENT = 8356 } - -enum : uint { ERROR_DS_NCNAME_MUST_BE_NC = 8357 } - -enum : uint { ERROR_DS_CANT_ADD_SYSTEM_ONLY = 8358 } - -enum : uint { ERROR_DS_CLASS_MUST_BE_CONCRETE = 8359 } - -enum : uint { ERROR_DS_INVALID_DMD = 8360 } - -enum : uint { ERROR_DS_OBJ_GUID_EXISTS = 8361 } - -enum : uint { ERROR_DS_NOT_ON_BACKLINK = 8362 } - -enum : uint { ERROR_DS_NO_CROSSREF_FOR_NC = 8363 } - -enum : uint { ERROR_DS_SHUTTING_DOWN = 8364 } - -enum : uint { ERROR_DS_UNKNOWN_OPERATION = 8365 } - -enum : uint { ERROR_DS_INVALID_ROLE_OWNER = 8366 } - -enum : uint { ERROR_DS_COULDNT_CONTACT_FSMO = 8367 } - -enum : uint { ERROR_DS_CROSS_NC_DN_RENAME = 8368 } - -enum : uint { ERROR_DS_CANT_MOD_SYSTEM_ONLY = 8369 } - -enum : uint { ERROR_DS_REPLICATOR_ONLY = 8370 } - -enum : uint { ERROR_DS_OBJ_CLASS_NOT_DEFINED = 8371 } - -enum : uint { ERROR_DS_OBJ_CLASS_NOT_SUBCLASS = 8372 } - -enum : uint { ERROR_DS_NAME_REFERENCE_INVALID = 8373 } - -enum : uint { ERROR_DS_CROSS_REF_EXISTS = 8374 } - -enum : uint { ERROR_DS_CANT_DEL_MASTER_CROSSREF = 8375 } - -enum : uint { ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD = 8376 } - -enum : uint { ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX = 8377 } - -enum : uint { ERROR_DS_DUP_RDN = 8378 } - -enum : uint { ERROR_DS_DUP_OID = 8379 } - -enum : uint { ERROR_DS_DUP_MAPI_ID = 8380 } - -enum : uint { ERROR_DS_DUP_SCHEMA_ID_GUID = 8381 } - -enum : uint { ERROR_DS_DUP_LDAP_DISPLAY_NAME = 8382 } - -enum : uint { ERROR_DS_SEMANTIC_ATT_TEST = 8383 } - -enum : uint { ERROR_DS_SYNTAX_MISMATCH = 8384 } - -enum : uint { ERROR_DS_EXISTS_IN_MUST_HAVE = 8385 } - -enum : uint { ERROR_DS_EXISTS_IN_MAY_HAVE = 8386 } - -enum : uint { ERROR_DS_NONEXISTENT_MAY_HAVE = 8387 } - -enum : uint { ERROR_DS_NONEXISTENT_MUST_HAVE = 8388 } - -enum : uint { ERROR_DS_AUX_CLS_TEST_FAIL = 8389 } - -enum : uint { ERROR_DS_NONEXISTENT_POSS_SUP = 8390 } - -enum : uint { ERROR_DS_SUB_CLS_TEST_FAIL = 8391 } - -enum : uint { ERROR_DS_BAD_RDN_ATT_ID_SYNTAX = 8392 } - -enum : uint { ERROR_DS_EXISTS_IN_AUX_CLS = 8393 } - -enum : uint { ERROR_DS_EXISTS_IN_SUB_CLS = 8394 } - -enum : uint { ERROR_DS_EXISTS_IN_POSS_SUP = 8395 } - -enum : uint { ERROR_DS_RECALCSCHEMA_FAILED = 8396 } - -enum : uint { ERROR_DS_TREE_DELETE_NOT_FINISHED = 8397 } - -enum : uint { ERROR_DS_CANT_DELETE = 8398 } - -enum : uint { ERROR_DS_ATT_SCHEMA_REQ_ID = 8399 } - -enum : uint { ERROR_DS_BAD_ATT_SCHEMA_SYNTAX = 8400 } - -enum : uint { ERROR_DS_CANT_CACHE_ATT = 8401 } - -enum : uint { ERROR_DS_CANT_CACHE_CLASS = 8402 } - -enum : uint { ERROR_DS_CANT_REMOVE_ATT_CACHE = 8403 } - -enum : uint { ERROR_DS_CANT_REMOVE_CLASS_CACHE = 8404 } - -enum : uint { ERROR_DS_CANT_RETRIEVE_DN = 8405 } - -enum : uint { ERROR_DS_MISSING_SUPREF = 8406 } - -enum : uint { ERROR_DS_CANT_RETRIEVE_INSTANCE = 8407 } - -enum : uint { ERROR_DS_CODE_INCONSISTENCY = 8408 } - -enum : uint { ERROR_DS_DATABASE_ERROR = 8409 } - -enum : uint { ERROR_DS_GOVERNSID_MISSING = 8410 } - -enum : uint { ERROR_DS_MISSING_EXPECTED_ATT = 8411 } - -enum : uint { ERROR_DS_NCNAME_MISSING_CR_REF = 8412 } - -enum : uint { ERROR_DS_SECURITY_CHECKING_ERROR = 8413 } - -enum : uint { ERROR_DS_SCHEMA_NOT_LOADED = 8414 } - -enum : uint { ERROR_DS_SCHEMA_ALLOC_FAILED = 8415 } - -enum : uint { ERROR_DS_ATT_SCHEMA_REQ_SYNTAX = 8416 } - -enum : uint { ERROR_DS_GCVERIFY_ERROR = 8417 } - -enum : uint { ERROR_DS_DRA_SCHEMA_MISMATCH = 8418 } - -enum : uint { ERROR_DS_CANT_FIND_DSA_OBJ = 8419 } - -enum : uint { ERROR_DS_CANT_FIND_EXPECTED_NC = 8420 } - -enum : uint { ERROR_DS_CANT_FIND_NC_IN_CACHE = 8421 } - -enum : uint { ERROR_DS_CANT_RETRIEVE_CHILD = 8422 } - -enum : uint { ERROR_DS_SECURITY_ILLEGAL_MODIFY = 8423 } - -enum : uint { ERROR_DS_CANT_REPLACE_HIDDEN_REC = 8424 } - -enum : uint { ERROR_DS_BAD_HIERARCHY_FILE = 8425 } - -enum : uint { ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED = 8426 } - -enum : uint { ERROR_DS_CONFIG_PARAM_MISSING = 8427 } - -enum : uint { ERROR_DS_COUNTING_AB_INDICES_FAILED = 8428 } - -enum : uint { ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED = 8429 } - -enum : uint { ERROR_DS_INTERNAL_FAILURE = 8430 } - -enum : uint { ERROR_DS_UNKNOWN_ERROR = 8431 } - -enum : uint { ERROR_DS_ROOT_REQUIRES_CLASS_TOP = 8432 } - -enum : uint { ERROR_DS_REFUSING_FSMO_ROLES = 8433 } - -enum : uint { ERROR_DS_MISSING_FSMO_SETTINGS = 8434 } - -enum : uint { ERROR_DS_UNABLE_TO_SURRENDER_ROLES = 8435 } - -enum : uint { ERROR_DS_DRA_GENERIC = 8436 } - -enum : uint { ERROR_DS_DRA_INVALID_PARAMETER = 8437 } - -enum : uint { ERROR_DS_DRA_BUSY = 8438 } - -enum : uint { ERROR_DS_DRA_BAD_DN = 8439 } - -enum : uint { ERROR_DS_DRA_BAD_NC = 8440 } - -enum : uint { ERROR_DS_DRA_DN_EXISTS = 8441 } - -enum : uint { ERROR_DS_DRA_INTERNAL_ERROR = 8442 } - -enum : uint { ERROR_DS_DRA_INCONSISTENT_DIT = 8443 } - -enum : uint { ERROR_DS_DRA_CONNECTION_FAILED = 8444 } - -enum : uint { ERROR_DS_DRA_BAD_INSTANCE_TYPE = 8445 } - -enum : uint { ERROR_DS_DRA_OUT_OF_MEM = 8446 } - -enum : uint { ERROR_DS_DRA_MAIL_PROBLEM = 8447 } - -enum : uint { ERROR_DS_DRA_REF_ALREADY_EXISTS = 8448 } - -enum : uint { ERROR_DS_DRA_REF_NOT_FOUND = 8449 } - -enum : uint { ERROR_DS_DRA_OBJ_IS_REP_SOURCE = 8450 } - -enum : uint { ERROR_DS_DRA_DB_ERROR = 8451 } - -enum : uint { ERROR_DS_DRA_NO_REPLICA = 8452 } - -enum : uint { ERROR_DS_DRA_ACCESS_DENIED = 8453 } - -enum : uint { ERROR_DS_DRA_NOT_SUPPORTED = 8454 } - -enum : uint { ERROR_DS_DRA_RPC_CANCELLED = 8455 } - -enum : uint { ERROR_DS_DRA_SOURCE_DISABLED = 8456 } - -enum : uint { ERROR_DS_DRA_SINK_DISABLED = 8457 } - -enum : uint { ERROR_DS_DRA_NAME_COLLISION = 8458 } - -enum : uint { ERROR_DS_DRA_SOURCE_REINSTALLED = 8459 } - -enum : uint { ERROR_DS_DRA_MISSING_PARENT = 8460 } - -enum : uint { ERROR_DS_DRA_PREEMPTED = 8461 } - -enum : uint { ERROR_DS_DRA_ABANDON_SYNC = 8462 } - -enum : uint { ERROR_DS_DRA_SHUTDOWN = 8463 } - -enum : uint { ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET = 8464 } - -enum : uint { ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA = 8465 } - -enum : uint { ERROR_DS_DRA_EXTN_CONNECTION_FAILED = 8466 } - -enum : uint { ERROR_DS_INSTALL_SCHEMA_MISMATCH = 8467 } - -enum : uint { ERROR_DS_DUP_LINK_ID = 8468 } - -enum : uint { ERROR_DS_NAME_ERROR_RESOLVING = 8469 } - -enum : uint { ERROR_DS_NAME_ERROR_NOT_FOUND = 8470 } - -enum : uint { ERROR_DS_NAME_ERROR_NOT_UNIQUE = 8471 } - -enum : uint { ERROR_DS_NAME_ERROR_NO_MAPPING = 8472 } - -enum : uint { ERROR_DS_NAME_ERROR_DOMAIN_ONLY = 8473 } - -enum : uint { ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING = 8474 } - -enum : uint { ERROR_DS_CONSTRUCTED_ATT_MOD = 8475 } - -enum : uint { ERROR_DS_WRONG_OM_OBJ_CLASS = 8476 } - -enum : uint { ERROR_DS_DRA_REPL_PENDING = 8477 } - -enum : uint { ERROR_DS_DS_REQUIRED = 8478 } - -enum : uint { ERROR_DS_INVALID_LDAP_DISPLAY_NAME = 8479 } - -enum : uint { ERROR_DS_NON_BASE_SEARCH = 8480 } - -enum : uint { ERROR_DS_CANT_RETRIEVE_ATTS = 8481 } - -enum : uint { ERROR_DS_BACKLINK_WITHOUT_LINK = 8482 } - -enum : uint { ERROR_DS_EPOCH_MISMATCH = 8483 } - -enum : uint { ERROR_DS_SRC_NAME_MISMATCH = 8484 } - -enum : uint { ERROR_DS_SRC_AND_DST_NC_IDENTICAL = 8485 } - -enum : uint { ERROR_DS_DST_NC_MISMATCH = 8486 } - -enum : uint { ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC = 8487 } - -enum : uint { ERROR_DS_SRC_GUID_MISMATCH = 8488 } - -enum : uint { ERROR_DS_CANT_MOVE_DELETED_OBJECT = 8489 } - -enum : uint { ERROR_DS_PDC_OPERATION_IN_PROGRESS = 8490 } - -enum : uint { ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD = 8491 } - -enum : uint { ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION = 8492 } - -enum : uint { ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS = 8493 } - -enum : uint { ERROR_DS_NC_MUST_HAVE_NC_PARENT = 8494 } - -enum : uint { ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE = 8495 } - -enum : uint { ERROR_DS_DST_DOMAIN_NOT_NATIVE = 8496 } - -enum : uint { ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER = 8497 } - -enum : uint { ERROR_DS_CANT_MOVE_ACCOUNT_GROUP = 8498 } - -enum : uint { ERROR_DS_CANT_MOVE_RESOURCE_GROUP = 8499 } - -enum : uint { ERROR_DS_INVALID_SEARCH_FLAG = 8500 } - -enum : uint { ERROR_DS_NO_TREE_DELETE_ABOVE_NC = 8501 } - -enum : uint { ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE = 8502 } - -enum : uint { ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE = 8503 } - -enum : uint { ERROR_DS_SAM_INIT_FAILURE = 8504 } - -enum : uint { ERROR_DS_SENSITIVE_GROUP_VIOLATION = 8505 } - -enum : uint { ERROR_DS_CANT_MOD_PRIMARYGROUPID = 8506 } - -enum : uint { ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD = 8507 } - -enum : uint { ERROR_DS_NONSAFE_SCHEMA_CHANGE = 8508 } - -enum : uint { ERROR_DS_SCHEMA_UPDATE_DISALLOWED = 8509 } - -enum : uint { ERROR_DS_CANT_CREATE_UNDER_SCHEMA = 8510 } - -enum : uint { ERROR_DS_INSTALL_NO_SRC_SCH_VERSION = 8511 } - -enum : uint { ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE = 8512 } - -enum : uint { ERROR_DS_INVALID_GROUP_TYPE = 8513 } - -enum : uint { ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN = 8514 } - -enum : uint { ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN = 8515 } - -enum : uint { ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER = 8516 } - -enum : uint { ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER = 8517 } - -enum : uint { ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER = 8518 } - -enum : uint { ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER = 8519 } - -enum : uint { ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER = 8520 } - -enum : uint { ERROR_DS_HAVE_PRIMARY_MEMBERS = 8521 } - -enum : uint { ERROR_DS_STRING_SD_CONVERSION_FAILED = 8522 } - -enum : uint { ERROR_DS_NAMING_MASTER_GC = 8523 } - -enum : uint { ERROR_DS_DNS_LOOKUP_FAILURE = 8524 } - -enum : uint { ERROR_DS_COULDNT_UPDATE_SPNS = 8525 } - -enum : uint { ERROR_DS_CANT_RETRIEVE_SD = 8526 } - -enum : uint { ERROR_DS_KEY_NOT_UNIQUE = 8527 } - -enum : uint { ERROR_DS_WRONG_LINKED_ATT_SYNTAX = 8528 } - -enum : uint { ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD = 8529 } - -enum : uint { ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY = 8530 } - -enum : uint { ERROR_DS_CANT_START = 8531 } - -enum : uint { ERROR_DS_INIT_FAILURE = 8532 } - -enum : uint { ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION = 8533 } - -enum : uint { ERROR_DS_SOURCE_DOMAIN_IN_FOREST = 8534 } - -enum : uint { ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST = 8535 } - -enum : uint { ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED = 8536 } - -enum : uint { ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN = 8537 } - -enum : uint { ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER = 8538 } - -enum : uint { ERROR_DS_SRC_SID_EXISTS_IN_FOREST = 8539 } - -enum : uint { ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH = 8540 } - -enum : uint { ERROR_SAM_INIT_FAILURE = 8541 } - -enum : uint { ERROR_DS_DRA_SCHEMA_INFO_SHIP = 8542 } - -enum : uint { ERROR_DS_DRA_SCHEMA_CONFLICT = 8543 } - -enum : uint { ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT = 8544 } - -enum : uint { ERROR_DS_DRA_OBJ_NC_MISMATCH = 8545 } - -enum : uint { ERROR_DS_NC_STILL_HAS_DSAS = 8546 } - -enum : uint { ERROR_DS_GC_REQUIRED = 8547 } - -enum : uint { ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY = 8548 } - -enum : uint { ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS = 8549 } - -enum : uint { ERROR_DS_CANT_ADD_TO_GC = 8550 } - -enum : uint { ERROR_DS_NO_CHECKPOINT_WITH_PDC = 8551 } - -enum : uint { ERROR_DS_SOURCE_AUDITING_NOT_ENABLED = 8552 } - -enum : uint { ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC = 8553 } - -enum : uint { ERROR_DS_INVALID_NAME_FOR_SPN = 8554 } - -enum : uint { ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS = 8555 } - -enum : uint { ERROR_DS_UNICODEPWD_NOT_IN_QUOTES = 8556 } - -enum : uint { ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED = 8557 } - -enum : uint { ERROR_DS_MUST_BE_RUN_ON_DST_DC = 8558 } - -enum : uint { ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER = 8559 } - -enum : uint { ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ = 8560 } - -enum : uint { ERROR_DS_INIT_FAILURE_CONSOLE = 8561 } - -enum : uint { ERROR_DS_SAM_INIT_FAILURE_CONSOLE = 8562 } - -enum : uint { ERROR_DS_FOREST_VERSION_TOO_HIGH = 8563 } - -enum : uint { ERROR_DS_DOMAIN_VERSION_TOO_HIGH = 8564 } - -enum : uint { ERROR_DS_FOREST_VERSION_TOO_LOW = 8565 } - -enum : uint { ERROR_DS_DOMAIN_VERSION_TOO_LOW = 8566 } - -enum : uint { ERROR_DS_INCOMPATIBLE_VERSION = 8567 } - -enum : uint { ERROR_DS_LOW_DSA_VERSION = 8568 } - -enum : uint { ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN = 8569 } - -enum : uint { ERROR_DS_NOT_SUPPORTED_SORT_ORDER = 8570 } - -enum : uint { ERROR_DS_NAME_NOT_UNIQUE = 8571 } - -enum : uint { ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4 = 8572 } - -enum : uint { ERROR_DS_OUT_OF_VERSION_STORE = 8573 } - -enum : uint { ERROR_DS_INCOMPATIBLE_CONTROLS_USED = 8574 } - -enum : uint { ERROR_DS_NO_REF_DOMAIN = 8575 } - -enum : uint { ERROR_DS_RESERVED_LINK_ID = 8576 } - -enum : uint { ERROR_DS_LINK_ID_NOT_AVAILABLE = 8577 } - -enum : uint { ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER = 8578 } - -enum : uint { ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE = 8579 } - -enum : uint { ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC = 8580 } - -enum : uint { ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG = 8581 } - -enum : uint { ERROR_DS_MODIFYDN_WRONG_GRANDPARENT = 8582 } - -enum : uint { ERROR_DS_NAME_ERROR_TRUST_REFERRAL = 8583 } - -enum : uint { ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER = 8584 } - -enum : uint { ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD = 8585 } - -enum : uint { ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2 = 8586 } - -enum : uint { ERROR_DS_THREAD_LIMIT_EXCEEDED = 8587 } - -enum : uint { ERROR_DS_NOT_CLOSEST = 8588 } - -enum : uint { ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF = 8589 } - -enum : uint { ERROR_DS_SINGLE_USER_MODE_FAILED = 8590 } - -enum : uint { ERROR_DS_NTDSCRIPT_SYNTAX_ERROR = 8591 } - -enum : uint { ERROR_DS_NTDSCRIPT_PROCESS_ERROR = 8592 } - -enum : uint { ERROR_DS_DIFFERENT_REPL_EPOCHS = 8593 } - -enum : uint { ERROR_DS_DRS_EXTENSIONS_CHANGED = 8594 } - -enum : uint { ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR = 8595 } - -enum : uint { ERROR_DS_NO_MSDS_INTID = 8596 } - -enum : uint { ERROR_DS_DUP_MSDS_INTID = 8597 } - -enum : uint { ERROR_DS_EXISTS_IN_RDNATTID = 8598 } - -enum : uint { ERROR_DS_AUTHORIZATION_FAILED = 8599 } - -enum : uint { ERROR_DS_INVALID_SCRIPT = 8600 } - -enum : uint { ERROR_DS_REMOTE_CROSSREF_OP_FAILED = 8601 } - -enum : uint { DNS_ERROR_RESPONSE_CODES_BASE = 9000 } - -alias NO_ERROR DNS_ERROR_RCODE_NO_ERROR; - -enum : uint { DNS_ERROR_MASK = 0x00002328 } - -enum : uint { DNS_ERROR_RCODE_FORMAT_ERROR = 9001 } - -enum : uint { DNS_ERROR_RCODE_SERVER_FAILURE = 9002 } - -enum : uint { DNS_ERROR_RCODE_NAME_ERROR = 9003 } - -enum : uint { DNS_ERROR_RCODE_NOT_IMPLEMENTED = 9004 } - -enum : uint { DNS_ERROR_RCODE_REFUSED = 9005 } - -enum : uint { DNS_ERROR_RCODE_YXDOMAIN = 9006 } - -enum : uint { DNS_ERROR_RCODE_YXRRSET = 9007 } - -enum : uint { DNS_ERROR_RCODE_NXRRSET = 9008 } - -enum : uint { DNS_ERROR_RCODE_NOTAUTH = 9009 } - -enum : uint { DNS_ERROR_RCODE_NOTZONE = 9010 } - -enum : uint { DNS_ERROR_RCODE_BADSIG = 9016 } - -enum : uint { DNS_ERROR_RCODE_BADKEY = 9017 } - -enum : uint { DNS_ERROR_RCODE_BADTIME = 9018 } - -alias DNS_ERROR_RCODE_BADTIME DNS_ERROR_RCODE_LAST; - -enum : uint { DNS_ERROR_PACKET_FMT_BASE = 9500 } - -enum : uint { DNS_INFO_NO_RECORDS = 9501 } - -enum : uint { DNS_ERROR_BAD_PACKET = 9502 } - -enum : uint { DNS_ERROR_NO_PACKET = 9503 } - -enum : uint { DNS_ERROR_RCODE = 9504 } - -enum : uint { DNS_ERROR_UNSECURE_PACKET = 9505 } - -alias DNS_ERROR_UNSECURE_PACKET DNS_STATUS_PACKET_UNSECURE; - -alias ERROR_OUTOFMEMORY DNS_ERROR_NO_MEMORY; -alias ERROR_INVALID_NAME DNS_ERROR_INVALID_NAME; -alias ERROR_INVALID_DATA DNS_ERROR_INVALID_DATA; - -enum : uint { DNS_ERROR_GENERAL_API_BASE = 9550 } - -enum : uint { DNS_ERROR_INVALID_TYPE = 9551 } - -enum : uint { DNS_ERROR_INVALID_IP_ADDRESS = 9552 } - -enum : uint { DNS_ERROR_INVALID_PROPERTY = 9553 } - -enum : uint { DNS_ERROR_TRY_AGAIN_LATER = 9554 } - -enum : uint { DNS_ERROR_NOT_UNIQUE = 9555 } - -enum : uint { DNS_ERROR_NON_RFC_NAME = 9556 } - -enum : uint { DNS_STATUS_FQDN = 9557 } - -enum : uint { DNS_STATUS_DOTTED_NAME = 9558 } - -enum : uint { DNS_STATUS_SINGLE_PART_NAME = 9559 } - -enum : uint { DNS_ERROR_INVALID_NAME_CHAR = 9560 } - -enum : uint { DNS_ERROR_NUMERIC_NAME = 9561 } - -enum : uint { DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER = 9562 } - -enum : uint { DNS_ERROR_ZONE_BASE = 9600 } - -enum : uint { DNS_ERROR_ZONE_DOES_NOT_EXIST = 9601 } - -enum : uint { DNS_ERROR_NO_ZONE_INFO = 9602 } - -enum : uint { DNS_ERROR_INVALID_ZONE_OPERATION = 9603 } - -enum : uint { DNS_ERROR_ZONE_CONFIGURATION_ERROR = 9604 } - -enum : uint { DNS_ERROR_ZONE_HAS_NO_SOA_RECORD = 9605 } - -enum : uint { DNS_ERROR_ZONE_HAS_NO_NS_RECORDS = 9606 } - -enum : uint { DNS_ERROR_ZONE_LOCKED = 9607 } - -enum : uint { DNS_ERROR_ZONE_CREATION_FAILED = 9608 } - -enum : uint { DNS_ERROR_ZONE_ALREADY_EXISTS = 9609 } - -enum : uint { DNS_ERROR_AUTOZONE_ALREADY_EXISTS = 9610 } - -enum : uint { DNS_ERROR_INVALID_ZONE_TYPE = 9611 } - -enum : uint { DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP = 9612 } - -enum : uint { DNS_ERROR_ZONE_NOT_SECONDARY = 9613 } - -enum : uint { DNS_ERROR_NEED_SECONDARY_ADDRESSES = 9614 } - -enum : uint { DNS_ERROR_WINS_INIT_FAILED = 9615 } - -enum : uint { DNS_ERROR_NEED_WINS_SERVERS = 9616 } - -enum : uint { DNS_ERROR_NBSTAT_INIT_FAILED = 9617 } - -enum : uint { DNS_ERROR_SOA_DELETE_INVALID = 9618 } - -enum : uint { DNS_ERROR_FORWARDER_ALREADY_EXISTS = 9619 } - -enum : uint { DNS_ERROR_ZONE_REQUIRES_MASTER_IP = 9620 } - -enum : uint { DNS_ERROR_ZONE_IS_SHUTDOWN = 9621 } - -enum : uint { DNS_ERROR_DATAFILE_BASE = 9650 } - -enum : uint { DNS_ERROR_PRIMARY_REQUIRES_DATAFILE = 9651 } - -enum : uint { DNS_ERROR_INVALID_DATAFILE_NAME = 9652 } - -enum : uint { DNS_ERROR_DATAFILE_OPEN_FAILURE = 9653 } - -enum : uint { DNS_ERROR_FILE_WRITEBACK_FAILED = 9654 } - -enum : uint { DNS_ERROR_DATAFILE_PARSING = 9655 } - -enum : uint { DNS_ERROR_DATABASE_BASE = 9700 } - -enum : uint { DNS_ERROR_RECORD_DOES_NOT_EXIST = 9701 } - -enum : uint { DNS_ERROR_RECORD_FORMAT = 9702 } - -enum : uint { DNS_ERROR_NODE_CREATION_FAILED = 9703 } - -enum : uint { DNS_ERROR_UNKNOWN_RECORD_TYPE = 9704 } - -enum : uint { DNS_ERROR_RECORD_TIMED_OUT = 9705 } - -enum : uint { DNS_ERROR_NAME_NOT_IN_ZONE = 9706 } - -enum : uint { DNS_ERROR_CNAME_LOOP = 9707 } - -enum : uint { DNS_ERROR_NODE_IS_CNAME = 9708 } - -enum : uint { DNS_ERROR_CNAME_COLLISION = 9709 } - -enum : uint { DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT = 9710 } - -enum : uint { DNS_ERROR_RECORD_ALREADY_EXISTS = 9711 } - -enum : uint { DNS_ERROR_SECONDARY_DATA = 9712 } - -enum : uint { DNS_ERROR_NO_CREATE_CACHE_DATA = 9713 } - -enum : uint { DNS_ERROR_NAME_DOES_NOT_EXIST = 9714 } - -enum : uint { DNS_WARNING_PTR_CREATE_FAILED = 9715 } - -enum : uint { DNS_WARNING_DOMAIN_UNDELETED = 9716 } - -enum : uint { DNS_ERROR_DS_UNAVAILABLE = 9717 } - -enum : uint { DNS_ERROR_DS_ZONE_ALREADY_EXISTS = 9718 } - -enum : uint { DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE = 9719 } - -enum : uint { DNS_ERROR_OPERATION_BASE = 9750 } - -enum : uint { DNS_INFO_AXFR_COMPLETE = 9751 } - -enum : uint { DNS_ERROR_AXFR = 9752 } - -enum : uint { DNS_INFO_ADDED_LOCAL_WINS = 9753 } - -enum : uint { DNS_ERROR_SECURE_BASE = 9800 } - -enum : uint { DNS_STATUS_CONTINUE_NEEDED = 9801 } - -enum : uint { DNS_ERROR_SETUP_BASE = 9850 } - -enum : uint { DNS_ERROR_NO_TCPIP = 9851 } - -enum : uint { DNS_ERROR_NO_DNS_SERVERS = 9852 } - -enum : uint { DNS_ERROR_DP_BASE = 9900 } - -enum : uint { DNS_ERROR_DP_DOES_NOT_EXIST = 9901 } - -enum : uint { DNS_ERROR_DP_ALREADY_EXISTS = 9902 } - -enum : uint { DNS_ERROR_DP_NOT_ENLISTED = 9903 } - -enum : uint { DNS_ERROR_DP_ALREADY_ENLISTED = 9904 } - -// #ifndef WSABASEERR -enum : uint { WSABASEERR = 10000 } - -enum : uint { WSAEINTR = 10004 } - -enum : uint { WSAEBADF = 10009 } - -enum : uint { WSAEACCES = 10013 } - -enum : uint { WSAEFAULT = 10014 } - -enum : uint { WSAEINVAL = 10022 } - -enum : uint { WSAEMFILE = 10024 } - -enum : uint { WSAEWOULDBLOCK = 10035 } - -enum : uint { WSAEINPROGRESS = 10036 } - -enum : uint { WSAEALREADY = 10037 } - -enum : uint { WSAENOTSOCK = 10038 } - -enum : uint { WSAEDESTADDRREQ = 10039 } - -enum : uint { WSAEMSGSIZE = 10040 } - -enum : uint { WSAEPROTOTYPE = 10041 } - -enum : uint { WSAENOPROTOOPT = 10042 } - -enum : uint { WSAEPROTONOSUPPORT = 10043 } - -enum : uint { WSAESOCKTNOSUPPORT = 10044 } - -enum : uint { WSAEOPNOTSUPP = 10045 } - -enum : uint { WSAEPFNOSUPPORT = 10046 } - -enum : uint { WSAEAFNOSUPPORT = 10047 } - -enum : uint { WSAEADDRINUSE = 10048 } - -enum : uint { WSAEADDRNOTAVAIL = 10049 } - -enum : uint { WSAENETDOWN = 10050 } - -enum : uint { WSAENETUNREACH = 10051 } - -enum : uint { WSAENETRESET = 10052 } - -enum : uint { WSAECONNABORTED = 10053 } - -enum : uint { WSAECONNRESET = 10054 } - -enum : uint { WSAENOBUFS = 10055 } - -enum : uint { WSAEISCONN = 10056 } - -enum : uint { WSAENOTCONN = 10057 } - -enum : uint { WSAESHUTDOWN = 10058 } - -enum : uint { WSAETOOMANYREFS = 10059 } - -enum : uint { WSAETIMEDOUT = 10060 } - -enum : uint { WSAECONNREFUSED = 10061 } - -enum : uint { WSAELOOP = 10062 } - -enum : uint { WSAENAMETOOLONG = 10063 } - -enum : uint { WSAEHOSTDOWN = 10064 } - -enum : uint { WSAEHOSTUNREACH = 10065 } - -enum : uint { WSAENOTEMPTY = 10066 } - -enum : uint { WSAEPROCLIM = 10067 } - -enum : uint { WSAEUSERS = 10068 } - -enum : uint { WSAEDQUOT = 10069 } - -enum : uint { WSAESTALE = 10070 } - -enum : uint { WSAEREMOTE = 10071 } - -enum : uint { WSASYSNOTREADY = 10091 } - -enum : uint { WSAVERNOTSUPPORTED = 10092 } - -enum : uint { WSANOTINITIALISED = 10093 } - -enum : uint { WSAEDISCON = 10101 } - -enum : uint { WSAENOMORE = 10102 } - -enum : uint { WSAECANCELLED = 10103 } - -enum : uint { WSAEINVALIDPROCTABLE = 10104 } - -enum : uint { WSAEINVALIDPROVIDER = 10105 } - -enum : uint { WSAEPROVIDERFAILEDINIT = 10106 } - -enum : uint { WSASYSCALLFAILURE = 10107 } - -enum : uint { WSASERVICE_NOT_FOUND = 10108 } - -enum : uint { WSATYPE_NOT_FOUND = 10109 } - -enum : uint { WSA_E_NO_MORE = 10110 } - -enum : uint { WSA_E_CANCELLED = 10111 } - -enum : uint { WSAEREFUSED = 10112 } - -enum : uint { WSAHOST_NOT_FOUND = 11001 } - -enum : uint { WSATRY_AGAIN = 11002 } - -enum : uint { WSANO_RECOVERY = 11003 } - -enum : uint { WSANO_DATA = 11004 } - -enum : uint { WSA_QOS_RECEIVERS = 11005 } - -enum : uint { WSA_QOS_SENDERS = 11006 } - -enum : uint { WSA_QOS_NO_SENDERS = 11007 } - -enum : uint { WSA_QOS_NO_RECEIVERS = 11008 } - -enum : uint { WSA_QOS_REQUEST_CONFIRMED = 11009 } - -enum : uint { WSA_QOS_ADMISSION_FAILURE = 11010 } - -enum : uint { WSA_QOS_POLICY_FAILURE = 11011 } - -enum : uint { WSA_QOS_BAD_STYLE = 11012 } - -enum : uint { WSA_QOS_BAD_OBJECT = 11013 } - -enum : uint { WSA_QOS_TRAFFIC_CTRL_ERROR = 11014 } - -enum : uint { WSA_QOS_GENERIC_ERROR = 11015 } - -enum : uint { WSA_QOS_ESERVICETYPE = 11016 } - -enum : uint { WSA_QOS_EFLOWSPEC = 11017 } - -enum : uint { WSA_QOS_EPROVSPECBUF = 11018 } - -enum : uint { WSA_QOS_EFILTERSTYLE = 11019 } - -enum : uint { WSA_QOS_EFILTERTYPE = 11020 } - -enum : uint { WSA_QOS_EFILTERCOUNT = 11021 } - -enum : uint { WSA_QOS_EOBJLENGTH = 11022 } - -enum : uint { WSA_QOS_EFLOWCOUNT = 11023 } - -enum : uint { WSA_QOS_EUNKOWNPSOBJ = 11024 } - -enum : uint { WSA_QOS_EPOLICYOBJ = 11025 } - -enum : uint { WSA_QOS_EFLOWDESC = 11026 } - -enum : uint { WSA_QOS_EPSFLOWSPEC = 11027 } - -enum : uint { WSA_QOS_EPSFILTERSPEC = 11028 } - -enum : uint { WSA_QOS_ESDMODEOBJ = 11029 } - -enum : uint { WSA_QOS_ESHAPERATEOBJ = 11030 } - -enum : uint { WSA_QOS_RESERVED_PETYPE = 11031 } - -// #endif // defined(WSABASEERR) - -enum : uint { ERROR_SXS_SECTION_NOT_FOUND = 14000 } - -enum : uint { ERROR_SXS_CANT_GEN_ACTCTX = 14001 } - -enum : uint { ERROR_SXS_INVALID_ACTCTXDATA_FORMAT = 14002 } - -enum : uint { ERROR_SXS_ASSEMBLY_NOT_FOUND = 14003 } - -enum : uint { ERROR_SXS_MANIFEST_FORMAT_ERROR = 14004 } - -enum : uint { ERROR_SXS_MANIFEST_PARSE_ERROR = 14005 } - -enum : uint { ERROR_SXS_ACTIVATION_CONTEXT_DISABLED = 14006 } - -enum : uint { ERROR_SXS_KEY_NOT_FOUND = 14007 } - -enum : uint { ERROR_SXS_VERSION_CONFLICT = 14008 } - -enum : uint { ERROR_SXS_WRONG_SECTION_TYPE = 14009 } - -enum : uint { ERROR_SXS_THREAD_QUERIES_DISABLED = 14010 } - -enum : uint { ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET = 14011 } - -enum : uint { ERROR_SXS_UNKNOWN_ENCODING_GROUP = 14012 } - -enum : uint { ERROR_SXS_UNKNOWN_ENCODING = 14013 } - -enum : uint { ERROR_SXS_INVALID_XML_NAMESPACE_URI = 14014 } - -enum : uint { ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED = 14015 } - -enum : uint { ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED = 14016 } - -enum : uint { ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE = 14017 } - -enum : uint { ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE = 14018 } - -enum : uint { ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE = 14019 } - -enum : uint { ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT = 14020 } - -enum : uint { ERROR_SXS_DUPLICATE_DLL_NAME = 14021 } - -enum : uint { ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME = 14022 } - -enum : uint { ERROR_SXS_DUPLICATE_CLSID = 14023 } - -enum : uint { ERROR_SXS_DUPLICATE_IID = 14024 } - -enum : uint { ERROR_SXS_DUPLICATE_TLBID = 14025 } - -enum : uint { ERROR_SXS_DUPLICATE_PROGID = 14026 } - -enum : uint { ERROR_SXS_DUPLICATE_ASSEMBLY_NAME = 14027 } - -enum : uint { ERROR_SXS_FILE_HASH_MISMATCH = 14028 } - -enum : uint { ERROR_SXS_POLICY_PARSE_ERROR = 14029 } - -enum : uint { ERROR_SXS_XML_E_MISSINGQUOTE = 14030 } - -enum : uint { ERROR_SXS_XML_E_COMMENTSYNTAX = 14031 } - -enum : uint { ERROR_SXS_XML_E_BADSTARTNAMECHAR = 14032 } - -enum : uint { ERROR_SXS_XML_E_BADNAMECHAR = 14033 } - -enum : uint { ERROR_SXS_XML_E_BADCHARINSTRING = 14034 } - -enum : uint { ERROR_SXS_XML_E_XMLDECLSYNTAX = 14035 } - -enum : uint { ERROR_SXS_XML_E_BADCHARDATA = 14036 } - -enum : uint { ERROR_SXS_XML_E_MISSINGWHITESPACE = 14037 } - -enum : uint { ERROR_SXS_XML_E_EXPECTINGTAGEND = 14038 } - -enum : uint { ERROR_SXS_XML_E_MISSINGSEMICOLON = 14039 } - -enum : uint { ERROR_SXS_XML_E_UNBALANCEDPAREN = 14040 } - -enum : uint { ERROR_SXS_XML_E_INTERNALERROR = 14041 } - -enum : uint { ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE = 14042 } - -enum : uint { ERROR_SXS_XML_E_INCOMPLETE_ENCODING = 14043 } - -enum : uint { ERROR_SXS_XML_E_MISSING_PAREN = 14044 } - -enum : uint { ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE = 14045 } - -enum : uint { ERROR_SXS_XML_E_MULTIPLE_COLONS = 14046 } - -enum : uint { ERROR_SXS_XML_E_INVALID_DECIMAL = 14047 } - -enum : uint { ERROR_SXS_XML_E_INVALID_HEXIDECIMAL = 14048 } - -enum : uint { ERROR_SXS_XML_E_INVALID_UNICODE = 14049 } - -enum : uint { ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK = 14050 } - -enum : uint { ERROR_SXS_XML_E_UNEXPECTEDENDTAG = 14051 } - -enum : uint { ERROR_SXS_XML_E_UNCLOSEDTAG = 14052 } - -enum : uint { ERROR_SXS_XML_E_DUPLICATEATTRIBUTE = 14053 } - -enum : uint { ERROR_SXS_XML_E_MULTIPLEROOTS = 14054 } - -enum : uint { ERROR_SXS_XML_E_INVALIDATROOTLEVEL = 14055 } - -enum : uint { ERROR_SXS_XML_E_BADXMLDECL = 14056 } - -enum : uint { ERROR_SXS_XML_E_MISSINGROOT = 14057 } - -enum : uint { ERROR_SXS_XML_E_UNEXPECTEDEOF = 14058 } - -enum : uint { ERROR_SXS_XML_E_BADPEREFINSUBSET = 14059 } - -enum : uint { ERROR_SXS_XML_E_UNCLOSEDSTARTTAG = 14060 } - -enum : uint { ERROR_SXS_XML_E_UNCLOSEDENDTAG = 14061 } - -enum : uint { ERROR_SXS_XML_E_UNCLOSEDSTRING = 14062 } - -enum : uint { ERROR_SXS_XML_E_UNCLOSEDCOMMENT = 14063 } - -enum : uint { ERROR_SXS_XML_E_UNCLOSEDDECL = 14064 } - -enum : uint { ERROR_SXS_XML_E_UNCLOSEDCDATA = 14065 } - -enum : uint { ERROR_SXS_XML_E_RESERVEDNAMESPACE = 14066 } - -enum : uint { ERROR_SXS_XML_E_INVALIDENCODING = 14067 } - -enum : uint { ERROR_SXS_XML_E_INVALIDSWITCH = 14068 } - -enum : uint { ERROR_SXS_XML_E_BADXMLCASE = 14069 } - -enum : uint { ERROR_SXS_XML_E_INVALID_STANDALONE = 14070 } - -enum : uint { ERROR_SXS_XML_E_UNEXPECTED_STANDALONE = 14071 } - -enum : uint { ERROR_SXS_XML_E_INVALID_VERSION = 14072 } - -enum : uint { ERROR_SXS_XML_E_MISSINGEQUALS = 14073 } - -enum : uint { ERROR_SXS_PROTECTION_RECOVERY_FAILED = 14074 } - -enum : uint { ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT = 14075 } - -enum : uint { ERROR_SXS_PROTECTION_CATALOG_NOT_VALID = 14076 } - -enum : uint { ERROR_SXS_UNTRANSLATABLE_HRESULT = 14077 } - -enum : uint { ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING = 14078 } - -enum : uint { ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE = 14079 } - -enum : uint { ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME = 14080 } - -enum : uint { ERROR_IPSEC_QM_POLICY_EXISTS = 13000 } - -enum : uint { ERROR_IPSEC_QM_POLICY_NOT_FOUND = 13001 } - -enum : uint { ERROR_IPSEC_QM_POLICY_IN_USE = 13002 } - -enum : uint { ERROR_IPSEC_MM_POLICY_EXISTS = 13003 } - -enum : uint { ERROR_IPSEC_MM_POLICY_NOT_FOUND = 13004 } - -enum : uint { ERROR_IPSEC_MM_POLICY_IN_USE = 13005 } - -enum : uint { ERROR_IPSEC_MM_FILTER_EXISTS = 13006 } - -enum : uint { ERROR_IPSEC_MM_FILTER_NOT_FOUND = 13007 } - -enum : uint { ERROR_IPSEC_TRANSPORT_FILTER_EXISTS = 13008 } - -enum : uint { ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND = 13009 } - -enum : uint { ERROR_IPSEC_MM_AUTH_EXISTS = 13010 } - -enum : uint { ERROR_IPSEC_MM_AUTH_NOT_FOUND = 13011 } - -enum : uint { ERROR_IPSEC_MM_AUTH_IN_USE = 13012 } - -enum : uint { ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND = 13013 } - -enum : uint { ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND = 13014 } - -enum : uint { ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND = 13015 } - -enum : uint { ERROR_IPSEC_TUNNEL_FILTER_EXISTS = 13016 } - -enum : uint { ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND = 13017 } - -enum : uint { ERROR_IPSEC_MM_FILTER_PENDING_DELETION = 13018 } - -enum : uint { ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION = 13019 } - -enum : uint { ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION = 13020 } - -enum : uint { ERROR_IPSEC_MM_POLICY_PENDING_DELETION = 13021 } - -enum : uint { ERROR_IPSEC_MM_AUTH_PENDING_DELETION = 13022 } - -enum : uint { ERROR_IPSEC_QM_POLICY_PENDING_DELETION = 13023 } - -enum : uint { ERROR_IPSEC_IKE_NEG_STATUS_BEGIN = 13800 } - -enum : uint { ERROR_IPSEC_IKE_AUTH_FAIL = 13801 } - -enum : uint { ERROR_IPSEC_IKE_ATTRIB_FAIL = 13802 } - -enum : uint { ERROR_IPSEC_IKE_NEGOTIATION_PENDING = 13803 } - -enum : uint { ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR = 13804 } - -enum : uint { ERROR_IPSEC_IKE_TIMED_OUT = 13805 } - -enum : uint { ERROR_IPSEC_IKE_NO_CERT = 13806 } - -enum : uint { ERROR_IPSEC_IKE_SA_DELETED = 13807 } - -enum : uint { ERROR_IPSEC_IKE_SA_REAPED = 13808 } - -enum : uint { ERROR_IPSEC_IKE_MM_ACQUIRE_DROP = 13809 } - -enum : uint { ERROR_IPSEC_IKE_QM_ACQUIRE_DROP = 13810 } - -enum : uint { ERROR_IPSEC_IKE_QUEUE_DROP_MM = 13811 } - -enum : uint { ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM = 13812 } - -enum : uint { ERROR_IPSEC_IKE_DROP_NO_RESPONSE = 13813 } - -enum : uint { ERROR_IPSEC_IKE_MM_DELAY_DROP = 13814 } - -enum : uint { ERROR_IPSEC_IKE_QM_DELAY_DROP = 13815 } - -enum : uint { ERROR_IPSEC_IKE_ERROR = 13816 } - -enum : uint { ERROR_IPSEC_IKE_CRL_FAILED = 13817 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_KEY_USAGE = 13818 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_CERT_TYPE = 13819 } - -enum : uint { ERROR_IPSEC_IKE_NO_PRIVATE_KEY = 13820 } - -enum : uint { ERROR_IPSEC_IKE_DH_FAIL = 13822 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_HEADER = 13824 } - -enum : uint { ERROR_IPSEC_IKE_NO_POLICY = 13825 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_SIGNATURE = 13826 } - -enum : uint { ERROR_IPSEC_IKE_KERBEROS_ERROR = 13827 } - -enum : uint { ERROR_IPSEC_IKE_NO_PUBLIC_KEY = 13828 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR = 13829 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_SA = 13830 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_PROP = 13831 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_TRANS = 13832 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_KE = 13833 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_ID = 13834 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_CERT = 13835 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ = 13836 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_HASH = 13837 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_SIG = 13838 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_NONCE = 13839 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY = 13840 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_DELETE = 13841 } - -enum : uint { ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR = 13842 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_PAYLOAD = 13843 } - -enum : uint { ERROR_IPSEC_IKE_LOAD_SOFT_SA = 13844 } - -enum : uint { ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN = 13845 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_COOKIE = 13846 } - -enum : uint { ERROR_IPSEC_IKE_NO_PEER_CERT = 13847 } - -enum : uint { ERROR_IPSEC_IKE_PEER_CRL_FAILED = 13848 } - -enum : uint { ERROR_IPSEC_IKE_POLICY_CHANGE = 13849 } - -enum : uint { ERROR_IPSEC_IKE_NO_MM_POLICY = 13850 } - -enum : uint { ERROR_IPSEC_IKE_NOTCBPRIV = 13851 } - -enum : uint { ERROR_IPSEC_IKE_SECLOADFAIL = 13852 } - -enum : uint { ERROR_IPSEC_IKE_FAILSSPINIT = 13853 } - -enum : uint { ERROR_IPSEC_IKE_FAILQUERYSSP = 13854 } - -enum : uint { ERROR_IPSEC_IKE_SRVACQFAIL = 13855 } - -enum : uint { ERROR_IPSEC_IKE_SRVQUERYCRED = 13856 } - -enum : uint { ERROR_IPSEC_IKE_GETSPIFAIL = 13857 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_FILTER = 13858 } - -enum : uint { ERROR_IPSEC_IKE_OUT_OF_MEMORY = 13859 } - -enum : uint { ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED = 13860 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_POLICY = 13861 } - -enum : uint { ERROR_IPSEC_IKE_UNKNOWN_DOI = 13862 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_SITUATION = 13863 } - -enum : uint { ERROR_IPSEC_IKE_DH_FAILURE = 13864 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_GROUP = 13865 } - -enum : uint { ERROR_IPSEC_IKE_ENCRYPT = 13866 } - -enum : uint { ERROR_IPSEC_IKE_DECRYPT = 13867 } - -enum : uint { ERROR_IPSEC_IKE_POLICY_MATCH = 13868 } - -enum : uint { ERROR_IPSEC_IKE_UNSUPPORTED_ID = 13869 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_HASH = 13870 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_HASH_ALG = 13871 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_HASH_SIZE = 13872 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG = 13873 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_AUTH_ALG = 13874 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_SIG = 13875 } - -enum : uint { ERROR_IPSEC_IKE_LOAD_FAILED = 13876 } - -enum : uint { ERROR_IPSEC_IKE_RPC_DELETE = 13877 } - -enum : uint { ERROR_IPSEC_IKE_BENIGN_REINIT = 13878 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY = 13879 } - -enum : uint { ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN = 13881 } - -enum : uint { ERROR_IPSEC_IKE_MM_LIMIT = 13882 } - -enum : uint { ERROR_IPSEC_IKE_NEGOTIATION_DISABLED = 13883 } - -enum : uint { ERROR_IPSEC_IKE_NEG_STATUS_END = 13884 } - -enum : uint { SEVERITY_SUCCESS = 0 } -enum : uint { SEVERITY_ERROR = 1 } - -bit SUCCEEDED(HRESULT Status){ return Status >= 0; } - -bit FAILED(HRESULT Status){ return Status < 0; } - -// #define IS_ERROR(Status) ((unsigned long)(Status) >> 31 == SEVERITY_ERROR) - -// #define HRESULT_CODE(hr) ((hr) & 0xFFFF) -// #define SCODE_CODE(sc) ((sc) & 0xFFFF) - -// #define HRESULT_FACILITY(hr) (((hr) >> 16) & 0x1fff) -// #define SCODE_FACILITY(sc) (((sc) >> 16) & 0x1fff) - -// #define HRESULT_SEVERITY(hr) (((hr) >> 31) & 0x1) -// #define SCODE_SEVERITY(sc) (((sc) >> 31) & 0x1) - -// #define MAKE_HRESULT(sev,fac,code) ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) -// #define MAKE_SCODE(sev,fac,code) ((SCODE) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) - -enum : uint { FACILITY_NT_BIT = 0x10000000 } - -// #define __HRESULT_FROM_WIN32(x) ((HRESULT)(x) <= 0 ? ((HRESULT)(x)) : ((HRESULT) (((x) & 0x0000FFFF) | (FACILITY_WIN32 << 16) | 0x80000000))) - -// #ifdef INLINE_HRESULT_FROM_WIN32 -// #ifndef _HRESULT_DEFINED -// #... -// ... -// #endif -// #ifndef __midl -// ... -// #else -// #... -// #endif -// #else -// #define HRESULT_FROM_WIN32(x) __HRESULT_FROM_WIN32(x) -// #endif - -// #define HRESULT_FROM_NT(x) ((HRESULT) ((x) | FACILITY_NT_BIT)) - -// #define GetScode(hr) ((SCODE) (hr)) - -// #define ResultFromScode(sc) ((HRESULT) (sc)) - -// #define PropagateResult(hrPrevious, scBase) ((HRESULT) scBase) - -// #ifdef RC_INVOKED -// #... -// #else // RC_INVOKED -// #define _HRESULT_TYPEDEF_(_sc) ((HRESULT)_sc) -// #endif // RC_INVOKED - -enum : uint { NOERROR = 0 } - -enum : HRESULT { E_UNEXPECTED = cast(HRESULT)0x8000FFFFL } - -// #if defined(_WIN32) && !defined(_MAC) - -enum : HRESULT { E_NOTIMPL = cast(HRESULT)0x80004001L } - -enum : HRESULT { E_OUTOFMEMORY = cast(HRESULT)0x8007000EL } - -enum : HRESULT { E_INVALIDARG = cast(HRESULT)0x80070057L } - -enum : HRESULT { E_NOINTERFACE = cast(HRESULT)0x80004002L } - -enum : HRESULT { E_POINTER = cast(HRESULT)0x80004003L } - -enum : HRESULT { E_HANDLE = cast(HRESULT)0x80070006L } - -enum : HRESULT { E_ABORT = cast(HRESULT)0x80004004L } - -enum : HRESULT { E_FAIL = cast(HRESULT)0x80004005L } - -enum : HRESULT { E_ACCESSDENIED = cast(HRESULT)0x80070005L } - -// #else - -// #... - -// #... - -// #... - -// #... - -// #... - -// #... - -// #... - -// #... - -// #... - -// #endif //WIN32 - -enum : HRESULT { E_PENDING = cast(HRESULT)0x8000000AL } - -enum : HRESULT { CO_E_INIT_TLS = cast(HRESULT)0x80004006L } - -enum : HRESULT { CO_E_INIT_SHARED_ALLOCATOR = cast(HRESULT)0x80004007L } - -enum : HRESULT { CO_E_INIT_MEMORY_ALLOCATOR = cast(HRESULT)0x80004008L } - -enum : HRESULT { CO_E_INIT_CLASS_CACHE = cast(HRESULT)0x80004009L } - -enum : HRESULT { CO_E_INIT_RPC_CHANNEL = cast(HRESULT)0x8000400AL } - -enum : HRESULT { CO_E_INIT_TLS_SET_CHANNEL_CONTROL = cast(HRESULT)0x8000400BL } - -enum : HRESULT { CO_E_INIT_TLS_CHANNEL_CONTROL = cast(HRESULT)0x8000400CL } - -enum : HRESULT { CO_E_INIT_UNACCEPTED_USER_ALLOCATOR = cast(HRESULT)0x8000400DL } - -enum : HRESULT { CO_E_INIT_SCM_MUTEX_EXISTS = cast(HRESULT)0x8000400EL } - -enum : HRESULT { CO_E_INIT_SCM_FILE_MAPPING_EXISTS = cast(HRESULT)0x8000400FL } - -enum : HRESULT { CO_E_INIT_SCM_MAP_VIEW_OF_FILE = cast(HRESULT)0x80004010L } - -enum : HRESULT { CO_E_INIT_SCM_EXEC_FAILURE = cast(HRESULT)0x80004011L } - -enum : HRESULT { CO_E_INIT_ONLY_SINGLE_THREADED = cast(HRESULT)0x80004012L } - -enum : HRESULT { CO_E_CANT_REMOTE = cast(HRESULT)0x80004013L } - -enum : HRESULT { CO_E_BAD_SERVER_NAME = cast(HRESULT)0x80004014L } - -enum : HRESULT { CO_E_WRONG_SERVER_IDENTITY = cast(HRESULT)0x80004015L } - -enum : HRESULT { CO_E_OLE1DDE_DISABLED = cast(HRESULT)0x80004016L } - -enum : HRESULT { CO_E_RUNAS_SYNTAX = cast(HRESULT)0x80004017L } - -enum : HRESULT { CO_E_CREATEPROCESS_FAILURE = cast(HRESULT)0x80004018L } - -enum : HRESULT { CO_E_RUNAS_CREATEPROCESS_FAILURE = cast(HRESULT)0x80004019L } - -enum : HRESULT { CO_E_RUNAS_LOGON_FAILURE = cast(HRESULT)0x8000401AL } - -enum : HRESULT { CO_E_LAUNCH_PERMSSION_DENIED = cast(HRESULT)0x8000401BL } - -enum : HRESULT { CO_E_START_SERVICE_FAILURE = cast(HRESULT)0x8000401CL } - -enum : HRESULT { CO_E_REMOTE_COMMUNICATION_FAILURE = cast(HRESULT)0x8000401DL } - -enum : HRESULT { CO_E_SERVER_START_TIMEOUT = cast(HRESULT)0x8000401EL } - -enum : HRESULT { CO_E_CLSREG_INCONSISTENT = cast(HRESULT)0x8000401FL } - -enum : HRESULT { CO_E_IIDREG_INCONSISTENT = cast(HRESULT)0x80004020L } - -enum : HRESULT { CO_E_NOT_SUPPORTED = cast(HRESULT)0x80004021L } - -enum : HRESULT { CO_E_RELOAD_DLL = cast(HRESULT)0x80004022L } - -enum : HRESULT { CO_E_MSI_ERROR = cast(HRESULT)0x80004023L } - -enum : HRESULT { CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT = cast(HRESULT)0x80004024L } - -enum : HRESULT { CO_E_SERVER_PAUSED = cast(HRESULT)0x80004025L } - -enum : HRESULT { CO_E_SERVER_NOT_PAUSED = cast(HRESULT)0x80004026L } - -enum : HRESULT { CO_E_CLASS_DISABLED = cast(HRESULT)0x80004027L } - -enum : HRESULT { CO_E_CLRNOTAVAILABLE = cast(HRESULT)0x80004028L } - -enum : HRESULT { CO_E_ASYNC_WORK_REJECTED = cast(HRESULT)0x80004029L } - -enum : HRESULT { CO_E_SERVER_INIT_TIMEOUT = cast(HRESULT)0x8000402AL } - -enum : HRESULT { CO_E_NO_SECCTX_IN_ACTIVATE = cast(HRESULT)0x8000402BL } - -enum : HRESULT { CO_E_TRACKER_CONFIG = cast(HRESULT)0x80004030L } - -enum : HRESULT { CO_E_THREADPOOL_CONFIG = cast(HRESULT)0x80004031L } - -enum : HRESULT { CO_E_SXS_CONFIG = cast(HRESULT)0x80004032L } - -enum : HRESULT { CO_E_MALFORMED_SPN = cast(HRESULT)0x80004033L } - -enum : HRESULT { S_OK = cast(HRESULT)0x00000000 } -enum : HRESULT { S_FALSE = cast(HRESULT)0x00000001 } - -enum : HRESULT { OLE_E_FIRST = cast(HRESULT)0x80040000 } -enum : HRESULT { OLE_E_LAST = cast(HRESULT)0x800400FF } -enum : HRESULT { OLE_S_FIRST = cast(HRESULT)0x00040000 } -enum : HRESULT { OLE_S_LAST = cast(HRESULT)0x000400FF } - -enum : HRESULT { OLE_E_OLEVERB = cast(HRESULT)0x80040000L } - -enum : HRESULT { OLE_E_ADVF = cast(HRESULT)0x80040001L } - -enum : HRESULT { OLE_E_ENUM_NOMORE = cast(HRESULT)0x80040002L } - -enum : HRESULT { OLE_E_ADVISENOTSUPPORTED = cast(HRESULT)0x80040003L } - -enum : HRESULT { OLE_E_NOCONNECTION = cast(HRESULT)0x80040004L } - -enum : HRESULT { OLE_E_NOTRUNNING = cast(HRESULT)0x80040005L } - -enum : HRESULT { OLE_E_NOCACHE = cast(HRESULT)0x80040006L } - -enum : HRESULT { OLE_E_BLANK = cast(HRESULT)0x80040007L } - -enum : HRESULT { OLE_E_CLASSDIFF = cast(HRESULT)0x80040008L } - -enum : HRESULT { OLE_E_CANT_GETMONIKER = cast(HRESULT)0x80040009L } - -enum : HRESULT { OLE_E_CANT_BINDTOSOURCE = cast(HRESULT)0x8004000AL } - -enum : HRESULT { OLE_E_STATIC = cast(HRESULT)0x8004000BL } - -enum : HRESULT { OLE_E_PROMPTSAVECANCELLED = cast(HRESULT)0x8004000CL } - -enum : HRESULT { OLE_E_INVALIDRECT = cast(HRESULT)0x8004000DL } - -enum : HRESULT { OLE_E_WRONGCOMPOBJ = cast(HRESULT)0x8004000EL } - -enum : HRESULT { OLE_E_INVALIDHWND = cast(HRESULT)0x8004000FL } - -enum : HRESULT { OLE_E_NOT_INPLACEACTIVE = cast(HRESULT)0x80040010L } - -enum : HRESULT { OLE_E_CANTCONVERT = cast(HRESULT)0x80040011L } - -enum : HRESULT { OLE_E_NOSTORAGE = cast(HRESULT)0x80040012L } - -enum : HRESULT { DV_E_FORMATETC = cast(HRESULT)0x80040064L } - -enum : HRESULT { DV_E_DVTARGETDEVICE = cast(HRESULT)0x80040065L } - -enum : HRESULT { DV_E_STGMEDIUM = cast(HRESULT)0x80040066L } - -enum : HRESULT { DV_E_STATDATA = cast(HRESULT)0x80040067L } - -enum : HRESULT { DV_E_LINDEX = cast(HRESULT)0x80040068L } - -enum : HRESULT { DV_E_TYMED = cast(HRESULT)0x80040069L } - -enum : HRESULT { DV_E_CLIPFORMAT = cast(HRESULT)0x8004006AL } - -enum : HRESULT { DV_E_DVASPECT = cast(HRESULT)0x8004006BL } - -enum : HRESULT { DV_E_DVTARGETDEVICE_SIZE = cast(HRESULT)0x8004006CL } - -enum : HRESULT { DV_E_NOIVIEWOBJECT = cast(HRESULT)0x8004006DL } - -enum : uint { DRAGDROP_E_FIRST = 0x80040100 } -enum : uint { DRAGDROP_E_LAST = 0x8004010F } -enum : uint { DRAGDROP_S_FIRST = 0x00040100 } -enum : uint { DRAGDROP_S_LAST = 0x0004010F } - -enum : HRESULT { DRAGDROP_E_NOTREGISTERED = cast(HRESULT)0x80040100L } - -enum : HRESULT { DRAGDROP_E_ALREADYREGISTERED = cast(HRESULT)0x80040101L } - -enum : HRESULT { DRAGDROP_E_INVALIDHWND = cast(HRESULT)0x80040102L } - -enum : uint { CLASSFACTORY_E_FIRST = 0x80040110 } -enum : uint { CLASSFACTORY_E_LAST = 0x8004011F } -enum : uint { CLASSFACTORY_S_FIRST = 0x00040110 } -enum : uint { CLASSFACTORY_S_LAST = 0x0004011F } - -enum : HRESULT { CLASS_E_NOAGGREGATION = cast(HRESULT)0x80040110L } - -enum : HRESULT { CLASS_E_CLASSNOTAVAILABLE = cast(HRESULT)0x80040111L } - -enum : HRESULT { CLASS_E_NOTLICENSED = cast(HRESULT)0x80040112L } - -enum : uint { MARSHAL_E_FIRST = 0x80040120 } -enum : uint { MARSHAL_E_LAST = 0x8004012F } -enum : uint { MARSHAL_S_FIRST = 0x00040120 } -enum : uint { MARSHAL_S_LAST = 0x0004012F } -enum : uint { DATA_E_FIRST = 0x80040130 } -enum : uint { DATA_E_LAST = 0x8004013F } -enum : uint { DATA_S_FIRST = 0x00040130 } -enum : uint { DATA_S_LAST = 0x0004013F } -enum : uint { VIEW_E_FIRST = 0x80040140 } -enum : uint { VIEW_E_LAST = 0x8004014F } -enum : uint { VIEW_S_FIRST = 0x00040140 } -enum : uint { VIEW_S_LAST = 0x0004014F } - -enum : HRESULT { VIEW_E_DRAW = cast(HRESULT)0x80040140L } - -enum : uint { REGDB_E_FIRST = 0x80040150 } -enum : uint { REGDB_E_LAST = 0x8004015F } -enum : uint { REGDB_S_FIRST = 0x00040150 } -enum : uint { REGDB_S_LAST = 0x0004015F } - -enum : HRESULT { REGDB_E_READREGDB = cast(HRESULT)0x80040150L } - -enum : HRESULT { REGDB_E_WRITEREGDB = cast(HRESULT)0x80040151L } - -enum : HRESULT { REGDB_E_KEYMISSING = cast(HRESULT)0x80040152L } - -enum : HRESULT { REGDB_E_INVALIDVALUE = cast(HRESULT)0x80040153L } - -enum : HRESULT { REGDB_E_CLASSNOTREG = cast(HRESULT)0x80040154L } - -enum : HRESULT { REGDB_E_IIDNOTREG = cast(HRESULT)0x80040155L } - -enum : HRESULT { REGDB_E_BADTHREADINGMODEL = cast(HRESULT)0x80040156L } - -enum : uint { CAT_E_FIRST = 0x80040160 } -enum : uint { CAT_E_LAST = 0x80040161 } - -enum : HRESULT { CAT_E_CATIDNOEXIST = cast(HRESULT)0x80040160L } - -enum : HRESULT { CAT_E_NODESCRIPTION = cast(HRESULT)0x80040161L } - -enum : uint { CS_E_FIRST = 0x80040164 } -enum : uint { CS_E_LAST = 0x8004016F } - -enum : HRESULT { CS_E_PACKAGE_NOTFOUND = cast(HRESULT)0x80040164L } - -enum : HRESULT { CS_E_NOT_DELETABLE = cast(HRESULT)0x80040165L } - -enum : HRESULT { CS_E_CLASS_NOTFOUND = cast(HRESULT)0x80040166L } - -enum : HRESULT { CS_E_INVALID_VERSION = cast(HRESULT)0x80040167L } - -enum : HRESULT { CS_E_NO_CLASSSTORE = cast(HRESULT)0x80040168L } - -enum : HRESULT { CS_E_OBJECT_NOTFOUND = cast(HRESULT)0x80040169L } - -enum : HRESULT { CS_E_OBJECT_ALREADY_EXISTS = cast(HRESULT)0x8004016AL } - -enum : HRESULT { CS_E_INVALID_PATH = cast(HRESULT)0x8004016BL } - -enum : HRESULT { CS_E_NETWORK_ERROR = cast(HRESULT)0x8004016CL } - -enum : HRESULT { CS_E_ADMIN_LIMIT_EXCEEDED = cast(HRESULT)0x8004016DL } - -enum : HRESULT { CS_E_SCHEMA_MISMATCH = cast(HRESULT)0x8004016EL } - -enum : HRESULT { CS_E_INTERNAL_ERROR = cast(HRESULT)0x8004016FL } - -enum : uint { CACHE_E_FIRST = 0x80040170 } -enum : uint { CACHE_E_LAST = 0x8004017F } -enum : uint { CACHE_S_FIRST = 0x00040170 } -enum : uint { CACHE_S_LAST = 0x0004017F } - -enum : HRESULT { CACHE_E_NOCACHE_UPDATED = cast(HRESULT)0x80040170L } - -enum : uint { OLEOBJ_E_FIRST = 0x80040180 } -enum : uint { OLEOBJ_E_LAST = 0x8004018F } -enum : uint { OLEOBJ_S_FIRST = 0x00040180 } -enum : uint { OLEOBJ_S_LAST = 0x0004018F } - -enum : HRESULT { OLEOBJ_E_NOVERBS = cast(HRESULT)0x80040180L } - -enum : HRESULT { OLEOBJ_E_INVALIDVERB = cast(HRESULT)0x80040181L } - -enum : uint { CLIENTSITE_E_FIRST = 0x80040190 } -enum : uint { CLIENTSITE_E_LAST = 0x8004019F } -enum : uint { CLIENTSITE_S_FIRST = 0x00040190 } -enum : uint { CLIENTSITE_S_LAST = 0x0004019F } - -enum : HRESULT { INPLACE_E_NOTUNDOABLE = cast(HRESULT)0x800401A0L } - -enum : HRESULT { INPLACE_E_NOTOOLSPACE = cast(HRESULT)0x800401A1L } - -enum : uint { INPLACE_E_FIRST = 0x800401A0 } -enum : uint { INPLACE_E_LAST = 0x800401AF } -enum : uint { INPLACE_S_FIRST = 0x000401A0 } -enum : uint { INPLACE_S_LAST = 0x000401AF } -enum : uint { ENUM_E_FIRST = 0x800401B0 } -enum : uint { ENUM_E_LAST = 0x800401BF } -enum : uint { ENUM_S_FIRST = 0x000401B0 } -enum : uint { ENUM_S_LAST = 0x000401BF } -enum : uint { CONVERT10_E_FIRST = 0x800401C0 } -enum : uint { CONVERT10_E_LAST = 0x800401CF } -enum : uint { CONVERT10_S_FIRST = 0x000401C0 } -enum : uint { CONVERT10_S_LAST = 0x000401CF } - -enum : HRESULT { CONVERT10_E_OLESTREAM_GET = cast(HRESULT)0x800401C0L } - -enum : HRESULT { CONVERT10_E_OLESTREAM_PUT = cast(HRESULT)0x800401C1L } - -enum : HRESULT { CONVERT10_E_OLESTREAM_FMT = cast(HRESULT)0x800401C2L } - -enum : HRESULT { CONVERT10_E_OLESTREAM_BITMAP_TO_DIB = cast(HRESULT)0x800401C3L } - -enum : HRESULT { CONVERT10_E_STG_FMT = cast(HRESULT)0x800401C4L } - -enum : HRESULT { CONVERT10_E_STG_NO_STD_STREAM = cast(HRESULT)0x800401C5L } - -enum : HRESULT { CONVERT10_E_STG_DIB_TO_BITMAP = cast(HRESULT)0x800401C6L } - -enum : uint { CLIPBRD_E_FIRST = 0x800401D0 } -enum : uint { CLIPBRD_E_LAST = 0x800401DF } -enum : uint { CLIPBRD_S_FIRST = 0x000401D0 } -enum : uint { CLIPBRD_S_LAST = 0x000401DF } - -enum : HRESULT { CLIPBRD_E_CANT_OPEN = cast(HRESULT)0x800401D0L } - -enum : HRESULT { CLIPBRD_E_CANT_EMPTY = cast(HRESULT)0x800401D1L } - -enum : HRESULT { CLIPBRD_E_CANT_SET = cast(HRESULT)0x800401D2L } - -enum : HRESULT { CLIPBRD_E_BAD_DATA = cast(HRESULT)0x800401D3L } - -enum : HRESULT { CLIPBRD_E_CANT_CLOSE = cast(HRESULT)0x800401D4L } - -enum : uint { MK_E_FIRST = 0x800401E0 } -enum : uint { MK_E_LAST = 0x800401EF } -enum : uint { MK_S_FIRST = 0x000401E0 } -enum : uint { MK_S_LAST = 0x000401EF } - -enum : HRESULT { MK_E_CONNECTMANUALLY = cast(HRESULT)0x800401E0L } - -enum : HRESULT { MK_E_EXCEEDEDDEADLINE = cast(HRESULT)0x800401E1L } - -enum : HRESULT { MK_E_NEEDGENERIC = cast(HRESULT)0x800401E2L } - -enum : HRESULT { MK_E_UNAVAILABLE = cast(HRESULT)0x800401E3L } - -enum : HRESULT { MK_E_SYNTAX = cast(HRESULT)0x800401E4L } - -enum : HRESULT { MK_E_NOOBJECT = cast(HRESULT)0x800401E5L } - -enum : HRESULT { MK_E_INVALIDEXTENSION = cast(HRESULT)0x800401E6L } - -enum : HRESULT { MK_E_INTERMEDIATEINTERFACENOTSUPPORTED = cast(HRESULT)0x800401E7L } - -enum : HRESULT { MK_E_NOTBINDABLE = cast(HRESULT)0x800401E8L } - -enum : HRESULT { MK_E_NOTBOUND = cast(HRESULT)0x800401E9L } - -enum : HRESULT { MK_E_CANTOPENFILE = cast(HRESULT)0x800401EAL } - -enum : HRESULT { MK_E_MUSTBOTHERUSER = cast(HRESULT)0x800401EBL } - -enum : HRESULT { MK_E_NOINVERSE = cast(HRESULT)0x800401ECL } - -enum : HRESULT { MK_E_NOSTORAGE = cast(HRESULT)0x800401EDL } - -enum : HRESULT { MK_E_NOPREFIX = cast(HRESULT)0x800401EEL } - -enum : HRESULT { MK_E_ENUMERATION_FAILED = cast(HRESULT)0x800401EFL } - -enum : uint { CO_E_FIRST = 0x800401F0 } -enum : uint { CO_E_LAST = 0x800401FF } -enum : uint { CO_S_FIRST = 0x000401F0 } -enum : uint { CO_S_LAST = 0x000401FF } - -enum : HRESULT { CO_E_NOTINITIALIZED = cast(HRESULT)0x800401F0L } - -enum : HRESULT { CO_E_ALREADYINITIALIZED = cast(HRESULT)0x800401F1L } - -enum : HRESULT { CO_E_CANTDETERMINECLASS = cast(HRESULT)0x800401F2L } - -enum : HRESULT { CO_E_CLASSSTRING = cast(HRESULT)0x800401F3L } - -enum : HRESULT { CO_E_IIDSTRING = cast(HRESULT)0x800401F4L } - -enum : HRESULT { CO_E_APPNOTFOUND = cast(HRESULT)0x800401F5L } - -enum : HRESULT { CO_E_APPSINGLEUSE = cast(HRESULT)0x800401F6L } - -enum : HRESULT { CO_E_ERRORINAPP = cast(HRESULT)0x800401F7L } - -enum : HRESULT { CO_E_DLLNOTFOUND = cast(HRESULT)0x800401F8L } - -enum : HRESULT { CO_E_ERRORINDLL = cast(HRESULT)0x800401F9L } - -enum : HRESULT { CO_E_WRONGOSFORAPP = cast(HRESULT)0x800401FAL } - -enum : HRESULT { CO_E_OBJNOTREG = cast(HRESULT)0x800401FBL } - -enum : HRESULT { CO_E_OBJISREG = cast(HRESULT)0x800401FCL } - -enum : HRESULT { CO_E_OBJNOTCONNECTED = cast(HRESULT)0x800401FDL } - -enum : HRESULT { CO_E_APPDIDNTREG = cast(HRESULT)0x800401FEL } - -enum : HRESULT { CO_E_RELEASED = cast(HRESULT)0x800401FFL } - -enum : uint { EVENT_E_FIRST = 0x80040200 } -enum : uint { EVENT_E_LAST = 0x8004021F } -enum : uint { EVENT_S_FIRST = 0x00040200 } -enum : uint { EVENT_S_LAST = 0x0004021F } - -enum : HRESULT { EVENT_S_SOME_SUBSCRIBERS_FAILED = cast(HRESULT)0x00040200L } - -enum : HRESULT { EVENT_E_ALL_SUBSCRIBERS_FAILED = cast(HRESULT)0x80040201L } - -enum : HRESULT { EVENT_S_NOSUBSCRIBERS = cast(HRESULT)0x00040202L } - -enum : HRESULT { EVENT_E_QUERYSYNTAX = cast(HRESULT)0x80040203L } - -enum : HRESULT { EVENT_E_QUERYFIELD = cast(HRESULT)0x80040204L } - -enum : HRESULT { EVENT_E_INTERNALEXCEPTION = cast(HRESULT)0x80040205L } - -enum : HRESULT { EVENT_E_INTERNALERROR = cast(HRESULT)0x80040206L } - -enum : HRESULT { EVENT_E_INVALID_PER_USER_SID = cast(HRESULT)0x80040207L } - -enum : HRESULT { EVENT_E_USER_EXCEPTION = cast(HRESULT)0x80040208L } - -enum : HRESULT { EVENT_E_TOO_MANY_METHODS = cast(HRESULT)0x80040209L } - -enum : HRESULT { EVENT_E_MISSING_EVENTCLASS = cast(HRESULT)0x8004020AL } - -enum : HRESULT { EVENT_E_NOT_ALL_REMOVED = cast(HRESULT)0x8004020BL } - -enum : HRESULT { EVENT_E_COMPLUS_NOT_INSTALLED = cast(HRESULT)0x8004020CL } - -enum : HRESULT { EVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT = cast(HRESULT)0x8004020DL } - -enum : HRESULT { EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT = cast(HRESULT)0x8004020EL } - -enum : HRESULT { EVENT_E_INVALID_EVENT_CLASS_PARTITION = cast(HRESULT)0x8004020FL } - -enum : HRESULT { EVENT_E_PER_USER_SID_NOT_LOGGED_ON = cast(HRESULT)0x80040210L } - -enum : uint { XACT_E_FIRST = 0x8004D000 } -enum : uint { XACT_E_LAST = 0x8004D029 } -enum : uint { XACT_S_FIRST = 0x0004D000 } -enum : uint { XACT_S_LAST = 0x0004D010 } - -enum : HRESULT { XACT_E_ALREADYOTHERSINGLEPHASE = cast(HRESULT)0x8004D000L } - -enum : HRESULT { XACT_E_CANTRETAIN = cast(HRESULT)0x8004D001L } - -enum : HRESULT { XACT_E_COMMITFAILED = cast(HRESULT)0x8004D002L } - -enum : HRESULT { XACT_E_COMMITPREVENTED = cast(HRESULT)0x8004D003L } - -enum : HRESULT { XACT_E_HEURISTICABORT = cast(HRESULT)0x8004D004L } - -enum : HRESULT { XACT_E_HEURISTICCOMMIT = cast(HRESULT)0x8004D005L } - -enum : HRESULT { XACT_E_HEURISTICDAMAGE = cast(HRESULT)0x8004D006L } - -enum : HRESULT { XACT_E_HEURISTICDANGER = cast(HRESULT)0x8004D007L } - -enum : HRESULT { XACT_E_ISOLATIONLEVEL = cast(HRESULT)0x8004D008L } - -enum : HRESULT { XACT_E_NOASYNC = cast(HRESULT)0x8004D009L } - -enum : HRESULT { XACT_E_NOENLIST = cast(HRESULT)0x8004D00AL } - -enum : HRESULT { XACT_E_NOISORETAIN = cast(HRESULT)0x8004D00BL } - -enum : HRESULT { XACT_E_NORESOURCE = cast(HRESULT)0x8004D00CL } - -enum : HRESULT { XACT_E_NOTCURRENT = cast(HRESULT)0x8004D00DL } - -enum : HRESULT { XACT_E_NOTRANSACTION = cast(HRESULT)0x8004D00EL } - -enum : HRESULT { XACT_E_NOTSUPPORTED = cast(HRESULT)0x8004D00FL } - -enum : HRESULT { XACT_E_UNKNOWNRMGRID = cast(HRESULT)0x8004D010L } - -enum : HRESULT { XACT_E_WRONGSTATE = cast(HRESULT)0x8004D011L } - -enum : HRESULT { XACT_E_WRONGUOW = cast(HRESULT)0x8004D012L } - -enum : HRESULT { XACT_E_XTIONEXISTS = cast(HRESULT)0x8004D013L } - -enum : HRESULT { XACT_E_NOIMPORTOBJECT = cast(HRESULT)0x8004D014L } - -enum : HRESULT { XACT_E_INVALIDCOOKIE = cast(HRESULT)0x8004D015L } - -enum : HRESULT { XACT_E_INDOUBT = cast(HRESULT)0x8004D016L } - -enum : HRESULT { XACT_E_NOTIMEOUT = cast(HRESULT)0x8004D017L } - -enum : HRESULT { XACT_E_ALREADYINPROGRESS = cast(HRESULT)0x8004D018L } - -enum : HRESULT { XACT_E_ABORTED = cast(HRESULT)0x8004D019L } - -enum : HRESULT { XACT_E_LOGFULL = cast(HRESULT)0x8004D01AL } - -enum : HRESULT { XACT_E_TMNOTAVAILABLE = cast(HRESULT)0x8004D01BL } - -enum : HRESULT { XACT_E_CONNECTION_DOWN = cast(HRESULT)0x8004D01CL } - -enum : HRESULT { XACT_E_CONNECTION_DENIED = cast(HRESULT)0x8004D01DL } - -enum : HRESULT { XACT_E_REENLISTTIMEOUT = cast(HRESULT)0x8004D01EL } - -enum : HRESULT { XACT_E_TIP_CONNECT_FAILED = cast(HRESULT)0x8004D01FL } - -enum : HRESULT { XACT_E_TIP_PROTOCOL_ERROR = cast(HRESULT)0x8004D020L } - -enum : HRESULT { XACT_E_TIP_PULL_FAILED = cast(HRESULT)0x8004D021L } - -enum : HRESULT { XACT_E_DEST_TMNOTAVAILABLE = cast(HRESULT)0x8004D022L } - -enum : HRESULT { XACT_E_TIP_DISABLED = cast(HRESULT)0x8004D023L } - -enum : HRESULT { XACT_E_NETWORK_TX_DISABLED = cast(HRESULT)0x8004D024L } - -enum : HRESULT { XACT_E_PARTNER_NETWORK_TX_DISABLED = cast(HRESULT)0x8004D025L } - -enum : HRESULT { XACT_E_XA_TX_DISABLED = cast(HRESULT)0x8004D026L } - -enum : HRESULT { XACT_E_UNABLE_TO_READ_DTC_CONFIG = cast(HRESULT)0x8004D027L } - -enum : HRESULT { XACT_E_UNABLE_TO_LOAD_DTC_PROXY = cast(HRESULT)0x8004D028L } - -enum : HRESULT { XACT_E_ABORTING = cast(HRESULT)0x8004D029L } - -enum : HRESULT { XACT_E_CLERKNOTFOUND = cast(HRESULT)0x8004D080L } - -enum : HRESULT { XACT_E_CLERKEXISTS = cast(HRESULT)0x8004D081L } - -enum : HRESULT { XACT_E_RECOVERYINPROGRESS = cast(HRESULT)0x8004D082L } - -enum : HRESULT { XACT_E_TRANSACTIONCLOSED = cast(HRESULT)0x8004D083L } - -enum : HRESULT { XACT_E_INVALIDLSN = cast(HRESULT)0x8004D084L } - -enum : HRESULT { XACT_E_REPLAYREQUEST = cast(HRESULT)0x8004D085L } - -enum : HRESULT { XACT_S_ASYNC = cast(HRESULT)0x0004D000L } - -enum : HRESULT { XACT_S_DEFECT = cast(HRESULT)0x0004D001L } - -enum : HRESULT { XACT_S_READONLY = cast(HRESULT)0x0004D002L } - -enum : HRESULT { XACT_S_SOMENORETAIN = cast(HRESULT)0x0004D003L } - -enum : HRESULT { XACT_S_OKINFORM = cast(HRESULT)0x0004D004L } - -enum : HRESULT { XACT_S_MADECHANGESCONTENT = cast(HRESULT)0x0004D005L } - -enum : HRESULT { XACT_S_MADECHANGESINFORM = cast(HRESULT)0x0004D006L } - -enum : HRESULT { XACT_S_ALLNORETAIN = cast(HRESULT)0x0004D007L } - -enum : HRESULT { XACT_S_ABORTING = cast(HRESULT)0x0004D008L } - -enum : HRESULT { XACT_S_SINGLEPHASE = cast(HRESULT)0x0004D009L } - -enum : HRESULT { XACT_S_LOCALLY_OK = cast(HRESULT)0x0004D00AL } - -enum : HRESULT { XACT_S_LASTRESOURCEMANAGER = cast(HRESULT)0x0004D010L } - -enum : uint { CONTEXT_E_FIRST = 0x8004E000 } -enum : uint { CONTEXT_E_LAST = 0x8004E02F } -enum : uint { CONTEXT_S_FIRST = 0x0004E000 } -enum : uint { CONTEXT_S_LAST = 0x0004E02F } - -enum : HRESULT { CONTEXT_E_ABORTED = cast(HRESULT)0x8004E002L } - -enum : HRESULT { CONTEXT_E_ABORTING = cast(HRESULT)0x8004E003L } - -enum : HRESULT { CONTEXT_E_NOCONTEXT = cast(HRESULT)0x8004E004L } - -enum : HRESULT { CONTEXT_E_SYNCH_TIMEOUT = cast(HRESULT)0x8004E006L } - -enum : HRESULT { CONTEXT_E_OLDREF = cast(HRESULT)0x8004E007L } - -enum : HRESULT { CONTEXT_E_ROLENOTFOUND = cast(HRESULT)0x8004E00CL } - -enum : HRESULT { CONTEXT_E_TMNOTAVAILABLE = cast(HRESULT)0x8004E00FL } - -enum : HRESULT { CO_E_ACTIVATIONFAILED = cast(HRESULT)0x8004E021L } - -enum : HRESULT { CO_E_ACTIVATIONFAILED_EVENTLOGGED = cast(HRESULT)0x8004E022L } - -enum : HRESULT { CO_E_ACTIVATIONFAILED_CATALOGERROR = cast(HRESULT)0x8004E023L } - -enum : HRESULT { CO_E_ACTIVATIONFAILED_TIMEOUT = cast(HRESULT)0x8004E024L } - -enum : HRESULT { CO_E_INITIALIZATIONFAILED = cast(HRESULT)0x8004E025L } - -enum : HRESULT { CONTEXT_E_NOJIT = cast(HRESULT)0x8004E026L } - -enum : HRESULT { CONTEXT_E_NOTRANSACTION = cast(HRESULT)0x8004E027L } - -enum : HRESULT { CO_E_THREADINGMODEL_CHANGED = cast(HRESULT)0x8004E028L } - -enum : HRESULT { CO_E_NOIISINTRINSICS = cast(HRESULT)0x8004E029L } - -enum : HRESULT { CO_E_NOCOOKIES = cast(HRESULT)0x8004E02AL } - -enum : HRESULT { CO_E_DBERROR = cast(HRESULT)0x8004E02BL } - -enum : HRESULT { CO_E_NOTPOOLED = cast(HRESULT)0x8004E02CL } - -enum : HRESULT { CO_E_NOTCONSTRUCTED = cast(HRESULT)0x8004E02DL } - -enum : HRESULT { CO_E_NOSYNCHRONIZATION = cast(HRESULT)0x8004E02EL } - -enum : HRESULT { CO_E_ISOLEVELMISMATCH = cast(HRESULT)0x8004E02FL } - -enum : HRESULT { OLE_S_USEREG = cast(HRESULT)0x00040000L } - -enum : HRESULT { OLE_S_STATIC = cast(HRESULT)0x00040001L } - -enum : HRESULT { OLE_S_MAC_CLIPFORMAT = cast(HRESULT)0x00040002L } - -enum : HRESULT { DRAGDROP_S_DROP = cast(HRESULT)0x00040100L } - -enum : HRESULT { DRAGDROP_S_CANCEL = cast(HRESULT)0x00040101L } - -enum : HRESULT { DRAGDROP_S_USEDEFAULTCURSORS = cast(HRESULT)0x00040102L } - -enum : HRESULT { DATA_S_SAMEFORMATETC = cast(HRESULT)0x00040130L } - -enum : HRESULT { VIEW_S_ALREADY_FROZEN = cast(HRESULT)0x00040140L } - -enum : HRESULT { CACHE_S_FORMATETC_NOTSUPPORTED = cast(HRESULT)0x00040170L } - -enum : HRESULT { CACHE_S_SAMECACHE = cast(HRESULT)0x00040171L } - -enum : HRESULT { CACHE_S_SOMECACHES_NOTUPDATED = cast(HRESULT)0x00040172L } - -enum : HRESULT { OLEOBJ_S_INVALIDVERB = cast(HRESULT)0x00040180L } - -enum : HRESULT { OLEOBJ_S_CANNOT_DOVERB_NOW = cast(HRESULT)0x00040181L } - -enum : HRESULT { OLEOBJ_S_INVALIDHWND = cast(HRESULT)0x00040182L } - -enum : HRESULT { INPLACE_S_TRUNCATED = cast(HRESULT)0x000401A0L } - -enum : HRESULT { CONVERT10_S_NO_PRESENTATION = cast(HRESULT)0x000401C0L } - -enum : HRESULT { MK_S_REDUCED_TO_SELF = cast(HRESULT)0x000401E2L } - -enum : HRESULT { MK_S_ME = cast(HRESULT)0x000401E4L } - -enum : HRESULT { MK_S_HIM = cast(HRESULT)0x000401E5L } - -enum : HRESULT { MK_S_US = cast(HRESULT)0x000401E6L } - -enum : HRESULT { MK_S_MONIKERALREADYREGISTERED = cast(HRESULT)0x000401E7L } - -enum : HRESULT { SCHED_S_TASK_READY = cast(HRESULT)0x00041300L } - -enum : HRESULT { SCHED_S_TASK_RUNNING = cast(HRESULT)0x00041301L } - -enum : HRESULT { SCHED_S_TASK_DISABLED = cast(HRESULT)0x00041302L } - -enum : HRESULT { SCHED_S_TASK_HAS_NOT_RUN = cast(HRESULT)0x00041303L } - -enum : HRESULT { SCHED_S_TASK_NO_MORE_RUNS = cast(HRESULT)0x00041304L } - -enum : HRESULT { SCHED_S_TASK_NOT_SCHEDULED = cast(HRESULT)0x00041305L } - -enum : HRESULT { SCHED_S_TASK_TERMINATED = cast(HRESULT)0x00041306L } - -enum : HRESULT { SCHED_S_TASK_NO_VALID_TRIGGERS = cast(HRESULT)0x00041307L } - -enum : HRESULT { SCHED_S_EVENT_TRIGGER = cast(HRESULT)0x00041308L } - -enum : HRESULT { SCHED_E_TRIGGER_NOT_FOUND = cast(HRESULT)0x80041309L } - -enum : HRESULT { SCHED_E_TASK_NOT_READY = cast(HRESULT)0x8004130AL } - -enum : HRESULT { SCHED_E_TASK_NOT_RUNNING = cast(HRESULT)0x8004130BL } - -enum : HRESULT { SCHED_E_SERVICE_NOT_INSTALLED = cast(HRESULT)0x8004130CL } - -enum : HRESULT { SCHED_E_CANNOT_OPEN_TASK = cast(HRESULT)0x8004130DL } - -enum : HRESULT { SCHED_E_INVALID_TASK = cast(HRESULT)0x8004130EL } - -enum : HRESULT { SCHED_E_ACCOUNT_INFORMATION_NOT_SET = cast(HRESULT)0x8004130FL } - -enum : HRESULT { SCHED_E_ACCOUNT_NAME_NOT_FOUND = cast(HRESULT)0x80041310L } - -enum : HRESULT { SCHED_E_ACCOUNT_DBASE_CORRUPT = cast(HRESULT)0x80041311L } - -enum : HRESULT { SCHED_E_NO_SECURITY_SERVICES = cast(HRESULT)0x80041312L } - -enum : HRESULT { SCHED_E_UNKNOWN_OBJECT_VERSION = cast(HRESULT)0x80041313L } - -enum : HRESULT { SCHED_E_UNSUPPORTED_ACCOUNT_OPTION = cast(HRESULT)0x80041314L } - -enum : HRESULT { SCHED_E_SERVICE_NOT_RUNNING = cast(HRESULT)0x80041315L } - -enum : HRESULT { CO_E_CLASS_CREATE_FAILED = cast(HRESULT)0x80080001L } - -enum : HRESULT { CO_E_SCM_ERROR = cast(HRESULT)0x80080002L } - -enum : HRESULT { CO_E_SCM_RPC_FAILURE = cast(HRESULT)0x80080003L } - -enum : HRESULT { CO_E_BAD_PATH = cast(HRESULT)0x80080004L } - -enum : HRESULT { CO_E_SERVER_EXEC_FAILURE = cast(HRESULT)0x80080005L } - -enum : HRESULT { CO_E_OBJSRV_RPC_FAILURE = cast(HRESULT)0x80080006L } - -enum : HRESULT { MK_E_NO_NORMALIZED = cast(HRESULT)0x80080007L } - -enum : HRESULT { CO_E_SERVER_STOPPING = cast(HRESULT)0x80080008L } - -enum : HRESULT { MEM_E_INVALID_ROOT = cast(HRESULT)0x80080009L } - -enum : HRESULT { MEM_E_INVALID_LINK = cast(HRESULT)0x80080010L } - -enum : HRESULT { MEM_E_INVALID_SIZE = cast(HRESULT)0x80080011L } - -enum : HRESULT { CO_S_NOTALLINTERFACES = cast(HRESULT)0x00080012L } - -enum : HRESULT { CO_S_MACHINENAMENOTFOUND = cast(HRESULT)0x00080013L } - -enum : HRESULT { DISP_E_UNKNOWNINTERFACE = cast(HRESULT)0x80020001L } - -enum : HRESULT { DISP_E_MEMBERNOTFOUND = cast(HRESULT)0x80020003L } - -enum : HRESULT { DISP_E_PARAMNOTFOUND = cast(HRESULT)0x80020004L } - -enum : HRESULT { DISP_E_TYPEMISMATCH = cast(HRESULT)0x80020005L } - -enum : HRESULT { DISP_E_UNKNOWNNAME = cast(HRESULT)0x80020006L } - -enum : HRESULT { DISP_E_NONAMEDARGS = cast(HRESULT)0x80020007L } - -enum : HRESULT { DISP_E_BADVARTYPE = cast(HRESULT)0x80020008L } - -enum : HRESULT { DISP_E_EXCEPTION = cast(HRESULT)0x80020009L } - -enum : HRESULT { DISP_E_OVERFLOW = cast(HRESULT)0x8002000AL } - -enum : HRESULT { DISP_E_BADINDEX = cast(HRESULT)0x8002000BL } - -enum : HRESULT { DISP_E_UNKNOWNLCID = cast(HRESULT)0x8002000CL } - -enum : HRESULT { DISP_E_ARRAYISLOCKED = cast(HRESULT)0x8002000DL } - -enum : HRESULT { DISP_E_BADPARAMCOUNT = cast(HRESULT)0x8002000EL } - -enum : HRESULT { DISP_E_PARAMNOTOPTIONAL = cast(HRESULT)0x8002000FL } - -enum : HRESULT { DISP_E_BADCALLEE = cast(HRESULT)0x80020010L } - -enum : HRESULT { DISP_E_NOTACOLLECTION = cast(HRESULT)0x80020011L } - -enum : HRESULT { DISP_E_DIVBYZERO = cast(HRESULT)0x80020012L } - -enum : HRESULT { DISP_E_BUFFERTOOSMALL = cast(HRESULT)0x80020013L } - -enum : HRESULT { TYPE_E_BUFFERTOOSMALL = cast(HRESULT)0x80028016L } - -enum : HRESULT { TYPE_E_FIELDNOTFOUND = cast(HRESULT)0x80028017L } - -enum : HRESULT { TYPE_E_INVDATAREAD = cast(HRESULT)0x80028018L } - -enum : HRESULT { TYPE_E_UNSUPFORMAT = cast(HRESULT)0x80028019L } - -enum : HRESULT { TYPE_E_REGISTRYACCESS = cast(HRESULT)0x8002801CL } - -enum : HRESULT { TYPE_E_LIBNOTREGISTERED = cast(HRESULT)0x8002801DL } - -enum : HRESULT { TYPE_E_UNDEFINEDTYPE = cast(HRESULT)0x80028027L } - -enum : HRESULT { TYPE_E_QUALIFIEDNAMEDISALLOWED = cast(HRESULT)0x80028028L } - -enum : HRESULT { TYPE_E_INVALIDSTATE = cast(HRESULT)0x80028029L } - -enum : HRESULT { TYPE_E_WRONGTYPEKIND = cast(HRESULT)0x8002802AL } - -enum : HRESULT { TYPE_E_ELEMENTNOTFOUND = cast(HRESULT)0x8002802BL } - -enum : HRESULT { TYPE_E_AMBIGUOUSNAME = cast(HRESULT)0x8002802CL } - -enum : HRESULT { TYPE_E_NAMECONFLICT = cast(HRESULT)0x8002802DL } - -enum : HRESULT { TYPE_E_UNKNOWNLCID = cast(HRESULT)0x8002802EL } - -enum : HRESULT { TYPE_E_DLLFUNCTIONNOTFOUND = cast(HRESULT)0x8002802FL } - -enum : HRESULT { TYPE_E_BADMODULEKIND = cast(HRESULT)0x800288BDL } - -enum : HRESULT { TYPE_E_SIZETOOBIG = cast(HRESULT)0x800288C5L } - -enum : HRESULT { TYPE_E_DUPLICATEID = cast(HRESULT)0x800288C6L } - -enum : HRESULT { TYPE_E_INVALIDID = cast(HRESULT)0x800288CFL } - -enum : HRESULT { TYPE_E_TYPEMISMATCH = cast(HRESULT)0x80028CA0L } - -enum : HRESULT { TYPE_E_OUTOFBOUNDS = cast(HRESULT)0x80028CA1L } - -enum : HRESULT { TYPE_E_IOERROR = cast(HRESULT)0x80028CA2L } - -enum : HRESULT { TYPE_E_CANTCREATETMPFILE = cast(HRESULT)0x80028CA3L } - -enum : HRESULT { TYPE_E_CANTLOADLIBRARY = cast(HRESULT)0x80029C4AL } - -enum : HRESULT { TYPE_E_INCONSISTENTPROPFUNCS = cast(HRESULT)0x80029C83L } - -enum : HRESULT { TYPE_E_CIRCULARTYPE = cast(HRESULT)0x80029C84L } - -enum : HRESULT { STG_E_INVALIDFUNCTION = cast(HRESULT)0x80030001L } - -enum : HRESULT { STG_E_FILENOTFOUND = cast(HRESULT)0x80030002L } - -enum : HRESULT { STG_E_PATHNOTFOUND = cast(HRESULT)0x80030003L } - -enum : HRESULT { STG_E_TOOMANYOPENFILES = cast(HRESULT)0x80030004L } - -enum : HRESULT { STG_E_ACCESSDENIED = cast(HRESULT)0x80030005L } - -enum : HRESULT { STG_E_INVALIDHANDLE = cast(HRESULT)0x80030006L } - -enum : HRESULT { STG_E_INSUFFICIENTMEMORY = cast(HRESULT)0x80030008L } - -enum : HRESULT { STG_E_INVALIDPOINTER = cast(HRESULT)0x80030009L } - -enum : HRESULT { STG_E_NOMOREFILES = cast(HRESULT)0x80030012L } - -enum : HRESULT { STG_E_DISKISWRITEPROTECTED = cast(HRESULT)0x80030013L } - -enum : HRESULT { STG_E_SEEKERROR = cast(HRESULT)0x80030019L } - -enum : HRESULT { STG_E_WRITEFAULT = cast(HRESULT)0x8003001DL } - -enum : HRESULT { STG_E_READFAULT = cast(HRESULT)0x8003001EL } - -enum : HRESULT { STG_E_SHAREVIOLATION = cast(HRESULT)0x80030020L } - -enum : HRESULT { STG_E_LOCKVIOLATION = cast(HRESULT)0x80030021L } - -enum : HRESULT { STG_E_FILEALREADYEXISTS = cast(HRESULT)0x80030050L } - -enum : HRESULT { STG_E_INVALIDPARAMETER = cast(HRESULT)0x80030057L } - -enum : HRESULT { STG_E_MEDIUMFULL = cast(HRESULT)0x80030070L } - -enum : HRESULT { STG_E_PROPSETMISMATCHED = cast(HRESULT)0x800300F0L } - -enum : HRESULT { STG_E_ABNORMALAPIEXIT = cast(HRESULT)0x800300FAL } - -enum : HRESULT { STG_E_INVALIDHEADER = cast(HRESULT)0x800300FBL } - -enum : HRESULT { STG_E_INVALIDNAME = cast(HRESULT)0x800300FCL } - -enum : HRESULT { STG_E_UNKNOWN = cast(HRESULT)0x800300FDL } - -enum : HRESULT { STG_E_UNIMPLEMENTEDFUNCTION = cast(HRESULT)0x800300FEL } - -enum : HRESULT { STG_E_INVALIDFLAG = cast(HRESULT)0x800300FFL } - -enum : HRESULT { STG_E_INUSE = cast(HRESULT)0x80030100L } - -enum : HRESULT { STG_E_NOTCURRENT = cast(HRESULT)0x80030101L } - -enum : HRESULT { STG_E_REVERTED = cast(HRESULT)0x80030102L } - -enum : HRESULT { STG_E_CANTSAVE = cast(HRESULT)0x80030103L } - -enum : HRESULT { STG_E_OLDFORMAT = cast(HRESULT)0x80030104L } - -enum : HRESULT { STG_E_OLDDLL = cast(HRESULT)0x80030105L } - -enum : HRESULT { STG_E_SHAREREQUIRED = cast(HRESULT)0x80030106L } - -enum : HRESULT { STG_E_NOTFILEBASEDSTORAGE = cast(HRESULT)0x80030107L } - -enum : HRESULT { STG_E_EXTANTMARSHALLINGS = cast(HRESULT)0x80030108L } - -enum : HRESULT { STG_E_DOCFILECORRUPT = cast(HRESULT)0x80030109L } - -enum : HRESULT { STG_E_BADBASEADDRESS = cast(HRESULT)0x80030110L } - -enum : HRESULT { STG_E_DOCFILETOOLARGE = cast(HRESULT)0x80030111L } - -enum : HRESULT { STG_E_NOTSIMPLEFORMAT = cast(HRESULT)0x80030112L } - -enum : HRESULT { STG_E_INCOMPLETE = cast(HRESULT)0x80030201L } - -enum : HRESULT { STG_E_TERMINATED = cast(HRESULT)0x80030202L } - -enum : HRESULT { STG_S_CONVERTED = cast(HRESULT)0x00030200L } - -enum : HRESULT { STG_S_BLOCK = cast(HRESULT)0x00030201L } - -enum : HRESULT { STG_S_RETRYNOW = cast(HRESULT)0x00030202L } - -enum : HRESULT { STG_S_MONITORING = cast(HRESULT)0x00030203L } - -enum : HRESULT { STG_S_MULTIPLEOPENS = cast(HRESULT)0x00030204L } - -enum : HRESULT { STG_S_CONSOLIDATIONFAILED = cast(HRESULT)0x00030205L } - -enum : HRESULT { STG_S_CANNOTCONSOLIDATE = cast(HRESULT)0x00030206L } - -enum : HRESULT { STG_E_STATUS_COPY_PROTECTION_FAILURE = cast(HRESULT)0x80030305L } - -enum : HRESULT { STG_E_CSS_AUTHENTICATION_FAILURE = cast(HRESULT)0x80030306L } - -enum : HRESULT { STG_E_CSS_KEY_NOT_PRESENT = cast(HRESULT)0x80030307L } - -enum : HRESULT { STG_E_CSS_KEY_NOT_ESTABLISHED = cast(HRESULT)0x80030308L } - -enum : HRESULT { STG_E_CSS_SCRAMBLED_SECTOR = cast(HRESULT)0x80030309L } - -enum : HRESULT { STG_E_CSS_REGION_MISMATCH = cast(HRESULT)0x8003030AL } - -enum : HRESULT { STG_E_RESETS_EXHAUSTED = cast(HRESULT)0x8003030BL } - -enum : HRESULT { RPC_E_CALL_REJECTED = cast(HRESULT)0x80010001L } - -enum : HRESULT { RPC_E_CALL_CANCELED = cast(HRESULT)0x80010002L } - -enum : HRESULT { RPC_E_CANTPOST_INSENDCALL = cast(HRESULT)0x80010003L } - -enum : HRESULT { RPC_E_CANTCALLOUT_INASYNCCALL = cast(HRESULT)0x80010004L } - -enum : HRESULT { RPC_E_CANTCALLOUT_INEXTERNALCALL = cast(HRESULT)0x80010005L } - -enum : HRESULT { RPC_E_CONNECTION_TERMINATED = cast(HRESULT)0x80010006L } - -enum : HRESULT { RPC_E_SERVER_DIED = cast(HRESULT)0x80010007L } - -enum : HRESULT { RPC_E_CLIENT_DIED = cast(HRESULT)0x80010008L } - -enum : HRESULT { RPC_E_INVALID_DATAPACKET = cast(HRESULT)0x80010009L } - -enum : HRESULT { RPC_E_CANTTRANSMIT_CALL = cast(HRESULT)0x8001000AL } - -enum : HRESULT { RPC_E_CLIENT_CANTMARSHAL_DATA = cast(HRESULT)0x8001000BL } - -enum : HRESULT { RPC_E_CLIENT_CANTUNMARSHAL_DATA = cast(HRESULT)0x8001000CL } - -enum : HRESULT { RPC_E_SERVER_CANTMARSHAL_DATA = cast(HRESULT)0x8001000DL } - -enum : HRESULT { RPC_E_SERVER_CANTUNMARSHAL_DATA = cast(HRESULT)0x8001000EL } - -enum : HRESULT { RPC_E_INVALID_DATA = cast(HRESULT)0x8001000FL } - -enum : HRESULT { RPC_E_INVALID_PARAMETER = cast(HRESULT)0x80010010L } - -enum : HRESULT { RPC_E_CANTCALLOUT_AGAIN = cast(HRESULT)0x80010011L } - -enum : HRESULT { RPC_E_SERVER_DIED_DNE = cast(HRESULT)0x80010012L } - -enum : HRESULT { RPC_E_SYS_CALL_FAILED = cast(HRESULT)0x80010100L } - -enum : HRESULT { RPC_E_OUT_OF_RESOURCES = cast(HRESULT)0x80010101L } - -enum : HRESULT { RPC_E_ATTEMPTED_MULTITHREAD = cast(HRESULT)0x80010102L } - -enum : HRESULT { RPC_E_NOT_REGISTERED = cast(HRESULT)0x80010103L } - -enum : HRESULT { RPC_E_FAULT = cast(HRESULT)0x80010104L } - -enum : HRESULT { RPC_E_SERVERFAULT = cast(HRESULT)0x80010105L } - -enum : HRESULT { RPC_E_CHANGED_MODE = cast(HRESULT)0x80010106L } - -enum : HRESULT { RPC_E_INVALIDMETHOD = cast(HRESULT)0x80010107L } - -enum : HRESULT { RPC_E_DISCONNECTED = cast(HRESULT)0x80010108L } - -enum : HRESULT { RPC_E_RETRY = cast(HRESULT)0x80010109L } - -enum : HRESULT { RPC_E_SERVERCALL_RETRYLATER = cast(HRESULT)0x8001010AL } - -enum : HRESULT { RPC_E_SERVERCALL_REJECTED = cast(HRESULT)0x8001010BL } - -enum : HRESULT { RPC_E_INVALID_CALLDATA = cast(HRESULT)0x8001010CL } - -enum : HRESULT { RPC_E_CANTCALLOUT_ININPUTSYNCCALL = cast(HRESULT)0x8001010DL } - -enum : HRESULT { RPC_E_WRONG_THREAD = cast(HRESULT)0x8001010EL } - -enum : HRESULT { RPC_E_THREAD_NOT_INIT = cast(HRESULT)0x8001010FL } - -enum : HRESULT { RPC_E_VERSION_MISMATCH = cast(HRESULT)0x80010110L } - -enum : HRESULT { RPC_E_INVALID_HEADER = cast(HRESULT)0x80010111L } - -enum : HRESULT { RPC_E_INVALID_EXTENSION = cast(HRESULT)0x80010112L } - -enum : HRESULT { RPC_E_INVALID_IPID = cast(HRESULT)0x80010113L } - -enum : HRESULT { RPC_E_INVALID_OBJECT = cast(HRESULT)0x80010114L } - -enum : HRESULT { RPC_S_CALLPENDING = cast(HRESULT)0x80010115L } - -enum : HRESULT { RPC_S_WAITONTIMER = cast(HRESULT)0x80010116L } - -enum : HRESULT { RPC_E_CALL_COMPLETE = cast(HRESULT)0x80010117L } - -enum : HRESULT { RPC_E_UNSECURE_CALL = cast(HRESULT)0x80010118L } - -enum : HRESULT { RPC_E_TOO_LATE = cast(HRESULT)0x80010119L } - -enum : HRESULT { RPC_E_NO_GOOD_SECURITY_PACKAGES = cast(HRESULT)0x8001011AL } - -enum : HRESULT { RPC_E_ACCESS_DENIED = cast(HRESULT)0x8001011BL } - -enum : HRESULT { RPC_E_REMOTE_DISABLED = cast(HRESULT)0x8001011CL } - -enum : HRESULT { RPC_E_INVALID_OBJREF = cast(HRESULT)0x8001011DL } - -enum : HRESULT { RPC_E_NO_CONTEXT = cast(HRESULT)0x8001011EL } - -enum : HRESULT { RPC_E_TIMEOUT = cast(HRESULT)0x8001011FL } - -enum : HRESULT { RPC_E_NO_SYNC = cast(HRESULT)0x80010120L } - -enum : HRESULT { RPC_E_FULLSIC_REQUIRED = cast(HRESULT)0x80010121L } - -enum : HRESULT { RPC_E_INVALID_STD_NAME = cast(HRESULT)0x80010122L } - -enum : HRESULT { CO_E_FAILEDTOIMPERSONATE = cast(HRESULT)0x80010123L } - -enum : HRESULT { CO_E_FAILEDTOGETSECCTX = cast(HRESULT)0x80010124L } - -enum : HRESULT { CO_E_FAILEDTOOPENTHREADTOKEN = cast(HRESULT)0x80010125L } - -enum : HRESULT { CO_E_FAILEDTOGETTOKENINFO = cast(HRESULT)0x80010126L } - -enum : HRESULT { CO_E_TRUSTEEDOESNTMATCHCLIENT = cast(HRESULT)0x80010127L } - -enum : HRESULT { CO_E_FAILEDTOQUERYCLIENTBLANKET = cast(HRESULT)0x80010128L } - -enum : HRESULT { CO_E_FAILEDTOSETDACL = cast(HRESULT)0x80010129L } - -enum : HRESULT { CO_E_ACCESSCHECKFAILED = cast(HRESULT)0x8001012AL } - -enum : HRESULT { CO_E_NETACCESSAPIFAILED = cast(HRESULT)0x8001012BL } - -enum : HRESULT { CO_E_WRONGTRUSTEENAMESYNTAX = cast(HRESULT)0x8001012CL } - -enum : HRESULT { CO_E_INVALIDSID = cast(HRESULT)0x8001012DL } - -enum : HRESULT { CO_E_CONVERSIONFAILED = cast(HRESULT)0x8001012EL } - -enum : HRESULT { CO_E_NOMATCHINGSIDFOUND = cast(HRESULT)0x8001012FL } - -enum : HRESULT { CO_E_LOOKUPACCSIDFAILED = cast(HRESULT)0x80010130L } - -enum : HRESULT { CO_E_NOMATCHINGNAMEFOUND = cast(HRESULT)0x80010131L } - -enum : HRESULT { CO_E_LOOKUPACCNAMEFAILED = cast(HRESULT)0x80010132L } - -enum : HRESULT { CO_E_SETSERLHNDLFAILED = cast(HRESULT)0x80010133L } - -enum : HRESULT { CO_E_FAILEDTOGETWINDIR = cast(HRESULT)0x80010134L } - -enum : HRESULT { CO_E_PATHTOOLONG = cast(HRESULT)0x80010135L } - -enum : HRESULT { CO_E_FAILEDTOGENUUID = cast(HRESULT)0x80010136L } - -enum : HRESULT { CO_E_FAILEDTOCREATEFILE = cast(HRESULT)0x80010137L } - -enum : HRESULT { CO_E_FAILEDTOCLOSEHANDLE = cast(HRESULT)0x80010138L } - -enum : HRESULT { CO_E_EXCEEDSYSACLLIMIT = cast(HRESULT)0x80010139L } - -enum : HRESULT { CO_E_ACESINWRONGORDER = cast(HRESULT)0x8001013AL } - -enum : HRESULT { CO_E_INCOMPATIBLESTREAMVERSION = cast(HRESULT)0x8001013BL } - -enum : HRESULT { CO_E_FAILEDTOOPENPROCESSTOKEN = cast(HRESULT)0x8001013CL } - -enum : HRESULT { CO_E_DECODEFAILED = cast(HRESULT)0x8001013DL } - -enum : HRESULT { CO_E_ACNOTINITIALIZED = cast(HRESULT)0x8001013FL } - -enum : HRESULT { CO_E_CANCEL_DISABLED = cast(HRESULT)0x80010140L } - -enum : HRESULT { RPC_E_UNEXPECTED = cast(HRESULT)0x8001FFFFL } - -enum : HRESULT { ERROR_AUDITING_DISABLED = cast(HRESULT)0xC0090001L } - -enum : HRESULT { ERROR_ALL_SIDS_FILTERED = cast(HRESULT)0xC0090002L } - -enum : HRESULT { NTE_BAD_UID = cast(HRESULT)0x80090001L } - -enum : HRESULT { NTE_BAD_HASH = cast(HRESULT)0x80090002L } - -enum : HRESULT { NTE_BAD_KEY = cast(HRESULT)0x80090003L } - -enum : HRESULT { NTE_BAD_LEN = cast(HRESULT)0x80090004L } - -enum : HRESULT { NTE_BAD_DATA = cast(HRESULT)0x80090005L } - -enum : HRESULT { NTE_BAD_SIGNATURE = cast(HRESULT)0x80090006L } - -enum : HRESULT { NTE_BAD_VER = cast(HRESULT)0x80090007L } - -enum : HRESULT { NTE_BAD_ALGID = cast(HRESULT)0x80090008L } - -enum : HRESULT { NTE_BAD_FLAGS = cast(HRESULT)0x80090009L } - -enum : HRESULT { NTE_BAD_TYPE = cast(HRESULT)0x8009000AL } - -enum : HRESULT { NTE_BAD_KEY_STATE = cast(HRESULT)0x8009000BL } - -enum : HRESULT { NTE_BAD_HASH_STATE = cast(HRESULT)0x8009000CL } - -enum : HRESULT { NTE_NO_KEY = cast(HRESULT)0x8009000DL } - -enum : HRESULT { NTE_NO_MEMORY = cast(HRESULT)0x8009000EL } - -enum : HRESULT { NTE_EXISTS = cast(HRESULT)0x8009000FL } - -enum : HRESULT { NTE_PERM = cast(HRESULT)0x80090010L } - -enum : HRESULT { NTE_NOT_FOUND = cast(HRESULT)0x80090011L } - -enum : HRESULT { NTE_DOUBLE_ENCRYPT = cast(HRESULT)0x80090012L } - -enum : HRESULT { NTE_BAD_PROVIDER = cast(HRESULT)0x80090013L } - -enum : HRESULT { NTE_BAD_PROV_TYPE = cast(HRESULT)0x80090014L } - -enum : HRESULT { NTE_BAD_PUBLIC_KEY = cast(HRESULT)0x80090015L } - -enum : HRESULT { NTE_BAD_KEYSET = cast(HRESULT)0x80090016L } - -enum : HRESULT { NTE_PROV_TYPE_NOT_DEF = cast(HRESULT)0x80090017L } - -enum : HRESULT { NTE_PROV_TYPE_ENTRY_BAD = cast(HRESULT)0x80090018L } - -enum : HRESULT { NTE_KEYSET_NOT_DEF = cast(HRESULT)0x80090019L } - -enum : HRESULT { NTE_KEYSET_ENTRY_BAD = cast(HRESULT)0x8009001AL } - -enum : HRESULT { NTE_PROV_TYPE_NO_MATCH = cast(HRESULT)0x8009001BL } - -enum : HRESULT { NTE_SIGNATURE_FILE_BAD = cast(HRESULT)0x8009001CL } - -enum : HRESULT { NTE_PROVIDER_DLL_FAIL = cast(HRESULT)0x8009001DL } - -enum : HRESULT { NTE_PROV_DLL_NOT_FOUND = cast(HRESULT)0x8009001EL } - -enum : HRESULT { NTE_BAD_KEYSET_PARAM = cast(HRESULT)0x8009001FL } - -enum : HRESULT { NTE_FAIL = cast(HRESULT)0x80090020L } - -enum : HRESULT { NTE_SYS_ERR = cast(HRESULT)0x80090021L } - -enum : HRESULT { NTE_SILENT_CONTEXT = cast(HRESULT)0x80090022L } - -enum : HRESULT { NTE_TOKEN_KEYSET_STORAGE_FULL = cast(HRESULT)0x80090023L } - -enum : HRESULT { NTE_TEMPORARY_PROFILE = cast(HRESULT)0x80090024L } - -enum : HRESULT { NTE_FIXEDPARAMETER = cast(HRESULT)0x80090025L } - -enum : HRESULT { SEC_E_INSUFFICIENT_MEMORY = cast(HRESULT)0x80090300L } - -enum : HRESULT { SEC_E_INVALID_HANDLE = cast(HRESULT)0x80090301L } - -enum : HRESULT { SEC_E_UNSUPPORTED_FUNCTION = cast(HRESULT)0x80090302L } - -enum : HRESULT { SEC_E_TARGET_UNKNOWN = cast(HRESULT)0x80090303L } - -enum : HRESULT { SEC_E_INTERNAL_ERROR = cast(HRESULT)0x80090304L } - -enum : HRESULT { SEC_E_SECPKG_NOT_FOUND = cast(HRESULT)0x80090305L } - -enum : HRESULT { SEC_E_NOT_OWNER = cast(HRESULT)0x80090306L } - -enum : HRESULT { SEC_E_CANNOT_INSTALL = cast(HRESULT)0x80090307L } - -enum : HRESULT { SEC_E_INVALID_TOKEN = cast(HRESULT)0x80090308L } - -enum : HRESULT { SEC_E_CANNOT_PACK = cast(HRESULT)0x80090309L } - -enum : HRESULT { SEC_E_QOP_NOT_SUPPORTED = cast(HRESULT)0x8009030AL } - -enum : HRESULT { SEC_E_NO_IMPERSONATION = cast(HRESULT)0x8009030BL } - -enum : HRESULT { SEC_E_LOGON_DENIED = cast(HRESULT)0x8009030CL } - -enum : HRESULT { SEC_E_UNKNOWN_CREDENTIALS = cast(HRESULT)0x8009030DL } - -enum : HRESULT { SEC_E_NO_CREDENTIALS = cast(HRESULT)0x8009030EL } - -enum : HRESULT { SEC_E_MESSAGE_ALTERED = cast(HRESULT)0x8009030FL } - -enum : HRESULT { SEC_E_OUT_OF_SEQUENCE = cast(HRESULT)0x80090310L } - -enum : HRESULT { SEC_E_NO_AUTHENTICATING_AUTHORITY = cast(HRESULT)0x80090311L } - -enum : HRESULT { SEC_I_CONTINUE_NEEDED = cast(HRESULT)0x00090312L } - -enum : HRESULT { SEC_I_COMPLETE_NEEDED = cast(HRESULT)0x00090313L } - -enum : HRESULT { SEC_I_COMPLETE_AND_CONTINUE = cast(HRESULT)0x00090314L } - -enum : HRESULT { SEC_I_LOCAL_LOGON = cast(HRESULT)0x00090315L } - -enum : HRESULT { SEC_E_BAD_PKGID = cast(HRESULT)0x80090316L } - -enum : HRESULT { SEC_E_CONTEXT_EXPIRED = cast(HRESULT)0x80090317L } - -enum : HRESULT { SEC_I_CONTEXT_EXPIRED = cast(HRESULT)0x00090317L } - -enum : HRESULT { SEC_E_INCOMPLETE_MESSAGE = cast(HRESULT)0x80090318L } - -enum : HRESULT { SEC_E_INCOMPLETE_CREDENTIALS = cast(HRESULT)0x80090320L } - -enum : HRESULT { SEC_E_BUFFER_TOO_SMALL = cast(HRESULT)0x80090321L } - -enum : HRESULT { SEC_I_INCOMPLETE_CREDENTIALS = cast(HRESULT)0x00090320L } - -enum : HRESULT { SEC_I_RENEGOTIATE = cast(HRESULT)0x00090321L } - -enum : HRESULT { SEC_E_WRONG_PRINCIPAL = cast(HRESULT)0x80090322L } - -enum : HRESULT { SEC_I_NO_LSA_CONTEXT = cast(HRESULT)0x00090323L } - -enum : HRESULT { SEC_E_TIME_SKEW = cast(HRESULT)0x80090324L } - -enum : HRESULT { SEC_E_UNTRUSTED_ROOT = cast(HRESULT)0x80090325L } - -enum : HRESULT { SEC_E_ILLEGAL_MESSAGE = cast(HRESULT)0x80090326L } - -enum : HRESULT { SEC_E_CERT_UNKNOWN = cast(HRESULT)0x80090327L } - -enum : HRESULT { SEC_E_CERT_EXPIRED = cast(HRESULT)0x80090328L } - -enum : HRESULT { SEC_E_ENCRYPT_FAILURE = cast(HRESULT)0x80090329L } - -enum : HRESULT { SEC_E_DECRYPT_FAILURE = cast(HRESULT)0x80090330L } - -enum : HRESULT { SEC_E_ALGORITHM_MISMATCH = cast(HRESULT)0x80090331L } - -enum : HRESULT { SEC_E_SECURITY_QOS_FAILED = cast(HRESULT)0x80090332L } - -enum : HRESULT { SEC_E_UNFINISHED_CONTEXT_DELETED = cast(HRESULT)0x80090333L } - -enum : HRESULT { SEC_E_NO_TGT_REPLY = cast(HRESULT)0x80090334L } - -enum : HRESULT { SEC_E_NO_IP_ADDRESSES = cast(HRESULT)0x80090335L } - -enum : HRESULT { SEC_E_WRONG_CREDENTIAL_HANDLE = cast(HRESULT)0x80090336L } - -enum : HRESULT { SEC_E_CRYPTO_SYSTEM_INVALID = cast(HRESULT)0x80090337L } - -enum : HRESULT { SEC_E_MAX_REFERRALS_EXCEEDED = cast(HRESULT)0x80090338L } - -enum : HRESULT { SEC_E_MUST_BE_KDC = cast(HRESULT)0x80090339L } - -enum : HRESULT { SEC_E_STRONG_CRYPTO_NOT_SUPPORTED = cast(HRESULT)0x8009033AL } - -enum : HRESULT { SEC_E_TOO_MANY_PRINCIPALS = cast(HRESULT)0x8009033BL } - -enum : HRESULT { SEC_E_NO_PA_DATA = cast(HRESULT)0x8009033CL } - -enum : HRESULT { SEC_E_PKINIT_NAME_MISMATCH = cast(HRESULT)0x8009033DL } - -enum : HRESULT { SEC_E_SMARTCARD_LOGON_REQUIRED = cast(HRESULT)0x8009033EL } - -enum : HRESULT { SEC_E_SHUTDOWN_IN_PROGRESS = cast(HRESULT)0x8009033FL } - -enum : HRESULT { SEC_E_KDC_INVALID_REQUEST = cast(HRESULT)0x80090340L } - -enum : HRESULT { SEC_E_KDC_UNABLE_TO_REFER = cast(HRESULT)0x80090341L } - -enum : HRESULT { SEC_E_KDC_UNKNOWN_ETYPE = cast(HRESULT)0x80090342L } - -enum : HRESULT { SEC_E_UNSUPPORTED_PREAUTH = cast(HRESULT)0x80090343L } - -enum : HRESULT { SEC_E_DELEGATION_REQUIRED = cast(HRESULT)0x80090345L } - -enum : HRESULT { SEC_E_BAD_BINDINGS = cast(HRESULT)0x80090346L } - -enum : HRESULT { SEC_E_MULTIPLE_ACCOUNTS = cast(HRESULT)0x80090347L } - -enum : HRESULT { SEC_E_NO_KERB_KEY = cast(HRESULT)0x80090348L } - -alias SEC_E_INTERNAL_ERROR SEC_E_NO_SPM; -alias SEC_E_UNSUPPORTED_FUNCTION SEC_E_NOT_SUPPORTED; - -enum : HRESULT { CRYPT_E_MSG_ERROR = cast(HRESULT)0x80091001L } - -enum : HRESULT { CRYPT_E_UNKNOWN_ALGO = cast(HRESULT)0x80091002L } - -enum : HRESULT { CRYPT_E_OID_FORMAT = cast(HRESULT)0x80091003L } - -enum : HRESULT { CRYPT_E_INVALID_MSG_TYPE = cast(HRESULT)0x80091004L } - -enum : HRESULT { CRYPT_E_UNEXPECTED_ENCODING = cast(HRESULT)0x80091005L } - -enum : HRESULT { CRYPT_E_AUTH_ATTR_MISSING = cast(HRESULT)0x80091006L } - -enum : HRESULT { CRYPT_E_HASH_VALUE = cast(HRESULT)0x80091007L } - -enum : HRESULT { CRYPT_E_INVALID_INDEX = cast(HRESULT)0x80091008L } - -enum : HRESULT { CRYPT_E_ALREADY_DECRYPTED = cast(HRESULT)0x80091009L } - -enum : HRESULT { CRYPT_E_NOT_DECRYPTED = cast(HRESULT)0x8009100AL } - -enum : HRESULT { CRYPT_E_RECIPIENT_NOT_FOUND = cast(HRESULT)0x8009100BL } - -enum : HRESULT { CRYPT_E_CONTROL_TYPE = cast(HRESULT)0x8009100CL } - -enum : HRESULT { CRYPT_E_ISSUER_SERIALNUMBER = cast(HRESULT)0x8009100DL } - -enum : HRESULT { CRYPT_E_SIGNER_NOT_FOUND = cast(HRESULT)0x8009100EL } - -enum : HRESULT { CRYPT_E_ATTRIBUTES_MISSING = cast(HRESULT)0x8009100FL } - -enum : HRESULT { CRYPT_E_STREAM_MSG_NOT_READY = cast(HRESULT)0x80091010L } - -enum : HRESULT { CRYPT_E_STREAM_INSUFFICIENT_DATA = cast(HRESULT)0x80091011L } - -enum : HRESULT { CRYPT_I_NEW_PROTECTION_REQUIRED = cast(HRESULT)0x00091012L } - -enum : HRESULT { CRYPT_E_BAD_LEN = cast(HRESULT)0x80092001L } - -enum : HRESULT { CRYPT_E_BAD_ENCODE = cast(HRESULT)0x80092002L } - -enum : HRESULT { CRYPT_E_FILE_ERROR = cast(HRESULT)0x80092003L } - -enum : HRESULT { CRYPT_E_NOT_FOUND = cast(HRESULT)0x80092004L } - -enum : HRESULT { CRYPT_E_EXISTS = cast(HRESULT)0x80092005L } - -enum : HRESULT { CRYPT_E_NO_PROVIDER = cast(HRESULT)0x80092006L } - -enum : HRESULT { CRYPT_E_SELF_SIGNED = cast(HRESULT)0x80092007L } - -enum : HRESULT { CRYPT_E_DELETED_PREV = cast(HRESULT)0x80092008L } - -enum : HRESULT { CRYPT_E_NO_MATCH = cast(HRESULT)0x80092009L } - -enum : HRESULT { CRYPT_E_UNEXPECTED_MSG_TYPE = cast(HRESULT)0x8009200AL } - -enum : HRESULT { CRYPT_E_NO_KEY_PROPERTY = cast(HRESULT)0x8009200BL } - -enum : HRESULT { CRYPT_E_NO_DECRYPT_CERT = cast(HRESULT)0x8009200CL } - -enum : HRESULT { CRYPT_E_BAD_MSG = cast(HRESULT)0x8009200DL } - -enum : HRESULT { CRYPT_E_NO_SIGNER = cast(HRESULT)0x8009200EL } - -enum : HRESULT { CRYPT_E_PENDING_CLOSE = cast(HRESULT)0x8009200FL } - -enum : HRESULT { CRYPT_E_REVOKED = cast(HRESULT)0x80092010L } - -enum : HRESULT { CRYPT_E_NO_REVOCATION_DLL = cast(HRESULT)0x80092011L } - -enum : HRESULT { CRYPT_E_NO_REVOCATION_CHECK = cast(HRESULT)0x80092012L } - -enum : HRESULT { CRYPT_E_REVOCATION_OFFLINE = cast(HRESULT)0x80092013L } - -enum : HRESULT { CRYPT_E_NOT_IN_REVOCATION_DATABASE = cast(HRESULT)0x80092014L } - -enum : HRESULT { CRYPT_E_INVALID_NUMERIC_STRING = cast(HRESULT)0x80092020L } - -enum : HRESULT { CRYPT_E_INVALID_PRINTABLE_STRING = cast(HRESULT)0x80092021L } - -enum : HRESULT { CRYPT_E_INVALID_IA5_STRING = cast(HRESULT)0x80092022L } - -enum : HRESULT { CRYPT_E_INVALID_X500_STRING = cast(HRESULT)0x80092023L } - -enum : HRESULT { CRYPT_E_NOT_CHAR_STRING = cast(HRESULT)0x80092024L } - -enum : HRESULT { CRYPT_E_FILERESIZED = cast(HRESULT)0x80092025L } - -enum : HRESULT { CRYPT_E_SECURITY_SETTINGS = cast(HRESULT)0x80092026L } - -enum : HRESULT { CRYPT_E_NO_VERIFY_USAGE_DLL = cast(HRESULT)0x80092027L } - -enum : HRESULT { CRYPT_E_NO_VERIFY_USAGE_CHECK = cast(HRESULT)0x80092028L } - -enum : HRESULT { CRYPT_E_VERIFY_USAGE_OFFLINE = cast(HRESULT)0x80092029L } - -enum : HRESULT { CRYPT_E_NOT_IN_CTL = cast(HRESULT)0x8009202AL } - -enum : HRESULT { CRYPT_E_NO_TRUSTED_SIGNER = cast(HRESULT)0x8009202BL } - -enum : HRESULT { CRYPT_E_MISSING_PUBKEY_PARA = cast(HRESULT)0x8009202CL } - -enum : HRESULT { CRYPT_E_OSS_ERROR = cast(HRESULT)0x80093000L } - -enum : HRESULT { OSS_MORE_BUF = cast(HRESULT)0x80093001L } - -enum : HRESULT { OSS_NEGATIVE_UINTEGER = cast(HRESULT)0x80093002L } - -enum : HRESULT { OSS_PDU_RANGE = cast(HRESULT)0x80093003L } - -enum : HRESULT { OSS_MORE_INPUT = cast(HRESULT)0x80093004L } - -enum : HRESULT { OSS_DATA_ERROR = cast(HRESULT)0x80093005L } - -enum : HRESULT { OSS_BAD_ARG = cast(HRESULT)0x80093006L } - -enum : HRESULT { OSS_BAD_VERSION = cast(HRESULT)0x80093007L } - -enum : HRESULT { OSS_OUT_MEMORY = cast(HRESULT)0x80093008L } - -enum : HRESULT { OSS_PDU_MISMATCH = cast(HRESULT)0x80093009L } - -enum : HRESULT { OSS_LIMITED = cast(HRESULT)0x8009300AL } - -enum : HRESULT { OSS_BAD_PTR = cast(HRESULT)0x8009300BL } - -enum : HRESULT { OSS_BAD_TIME = cast(HRESULT)0x8009300CL } - -enum : HRESULT { OSS_INDEFINITE_NOT_SUPPORTED = cast(HRESULT)0x8009300DL } - -enum : HRESULT { OSS_MEM_ERROR = cast(HRESULT)0x8009300EL } - -enum : HRESULT { OSS_BAD_TABLE = cast(HRESULT)0x8009300FL } - -enum : HRESULT { OSS_TOO_LONG = cast(HRESULT)0x80093010L } - -enum : HRESULT { OSS_CONSTRAINT_VIOLATED = cast(HRESULT)0x80093011L } - -enum : HRESULT { OSS_FATAL_ERROR = cast(HRESULT)0x80093012L } - -enum : HRESULT { OSS_ACCESS_SERIALIZATION_ERROR = cast(HRESULT)0x80093013L } - -enum : HRESULT { OSS_NULL_TBL = cast(HRESULT)0x80093014L } - -enum : HRESULT { OSS_NULL_FCN = cast(HRESULT)0x80093015L } - -enum : HRESULT { OSS_BAD_ENCRULES = cast(HRESULT)0x80093016L } - -enum : HRESULT { OSS_UNAVAIL_ENCRULES = cast(HRESULT)0x80093017L } - -enum : HRESULT { OSS_CANT_OPEN_TRACE_WINDOW = cast(HRESULT)0x80093018L } - -enum : HRESULT { OSS_UNIMPLEMENTED = cast(HRESULT)0x80093019L } - -enum : HRESULT { OSS_OID_DLL_NOT_LINKED = cast(HRESULT)0x8009301AL } - -enum : HRESULT { OSS_CANT_OPEN_TRACE_FILE = cast(HRESULT)0x8009301BL } - -enum : HRESULT { OSS_TRACE_FILE_ALREADY_OPEN = cast(HRESULT)0x8009301CL } - -enum : HRESULT { OSS_TABLE_MISMATCH = cast(HRESULT)0x8009301DL } - -enum : HRESULT { OSS_TYPE_NOT_SUPPORTED = cast(HRESULT)0x8009301EL } - -enum : HRESULT { OSS_REAL_DLL_NOT_LINKED = cast(HRESULT)0x8009301FL } - -enum : HRESULT { OSS_REAL_CODE_NOT_LINKED = cast(HRESULT)0x80093020L } - -enum : HRESULT { OSS_OUT_OF_RANGE = cast(HRESULT)0x80093021L } - -enum : HRESULT { OSS_COPIER_DLL_NOT_LINKED = cast(HRESULT)0x80093022L } - -enum : HRESULT { OSS_CONSTRAINT_DLL_NOT_LINKED = cast(HRESULT)0x80093023L } - -enum : HRESULT { OSS_COMPARATOR_DLL_NOT_LINKED = cast(HRESULT)0x80093024L } - -enum : HRESULT { OSS_COMPARATOR_CODE_NOT_LINKED = cast(HRESULT)0x80093025L } - -enum : HRESULT { OSS_MEM_MGR_DLL_NOT_LINKED = cast(HRESULT)0x80093026L } - -enum : HRESULT { OSS_PDV_DLL_NOT_LINKED = cast(HRESULT)0x80093027L } - -enum : HRESULT { OSS_PDV_CODE_NOT_LINKED = cast(HRESULT)0x80093028L } - -enum : HRESULT { OSS_API_DLL_NOT_LINKED = cast(HRESULT)0x80093029L } - -enum : HRESULT { OSS_BERDER_DLL_NOT_LINKED = cast(HRESULT)0x8009302AL } - -enum : HRESULT { OSS_PER_DLL_NOT_LINKED = cast(HRESULT)0x8009302BL } - -enum : HRESULT { OSS_OPEN_TYPE_ERROR = cast(HRESULT)0x8009302CL } - -enum : HRESULT { OSS_MUTEX_NOT_CREATED = cast(HRESULT)0x8009302DL } - -enum : HRESULT { OSS_CANT_CLOSE_TRACE_FILE = cast(HRESULT)0x8009302EL } - -enum : HRESULT { CRYPT_E_ASN1_ERROR = cast(HRESULT)0x80093100L } - -enum : HRESULT { CRYPT_E_ASN1_INTERNAL = cast(HRESULT)0x80093101L } - -enum : HRESULT { CRYPT_E_ASN1_EOD = cast(HRESULT)0x80093102L } - -enum : HRESULT { CRYPT_E_ASN1_CORRUPT = cast(HRESULT)0x80093103L } - -enum : HRESULT { CRYPT_E_ASN1_LARGE = cast(HRESULT)0x80093104L } - -enum : HRESULT { CRYPT_E_ASN1_CONSTRAINT = cast(HRESULT)0x80093105L } - -enum : HRESULT { CRYPT_E_ASN1_MEMORY = cast(HRESULT)0x80093106L } - -enum : HRESULT { CRYPT_E_ASN1_OVERFLOW = cast(HRESULT)0x80093107L } - -enum : HRESULT { CRYPT_E_ASN1_BADPDU = cast(HRESULT)0x80093108L } - -enum : HRESULT { CRYPT_E_ASN1_BADARGS = cast(HRESULT)0x80093109L } - -enum : HRESULT { CRYPT_E_ASN1_BADREAL = cast(HRESULT)0x8009310AL } - -enum : HRESULT { CRYPT_E_ASN1_BADTAG = cast(HRESULT)0x8009310BL } - -enum : HRESULT { CRYPT_E_ASN1_CHOICE = cast(HRESULT)0x8009310CL } - -enum : HRESULT { CRYPT_E_ASN1_RULE = cast(HRESULT)0x8009310DL } - -enum : HRESULT { CRYPT_E_ASN1_UTF8 = cast(HRESULT)0x8009310EL } - -enum : HRESULT { CRYPT_E_ASN1_PDU_TYPE = cast(HRESULT)0x80093133L } - -enum : HRESULT { CRYPT_E_ASN1_NYI = cast(HRESULT)0x80093134L } - -enum : HRESULT { CRYPT_E_ASN1_EXTENDED = cast(HRESULT)0x80093201L } - -enum : HRESULT { CRYPT_E_ASN1_NOEOD = cast(HRESULT)0x80093202L } - -enum : HRESULT { CERTSRV_E_BAD_REQUESTSUBJECT = cast(HRESULT)0x80094001L } - -enum : HRESULT { CERTSRV_E_NO_REQUEST = cast(HRESULT)0x80094002L } - -enum : HRESULT { CERTSRV_E_BAD_REQUESTSTATUS = cast(HRESULT)0x80094003L } - -enum : HRESULT { CERTSRV_E_PROPERTY_EMPTY = cast(HRESULT)0x80094004L } - -enum : HRESULT { CERTSRV_E_INVALID_CA_CERTIFICATE = cast(HRESULT)0x80094005L } - -enum : HRESULT { CERTSRV_E_SERVER_SUSPENDED = cast(HRESULT)0x80094006L } - -enum : HRESULT { CERTSRV_E_ENCODING_LENGTH = cast(HRESULT)0x80094007L } - -enum : HRESULT { CERTSRV_E_ROLECONFLICT = cast(HRESULT)0x80094008L } - -enum : HRESULT { CERTSRV_E_RESTRICTEDOFFICER = cast(HRESULT)0x80094009L } - -enum : HRESULT { CERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED = cast(HRESULT)0x8009400AL } - -enum : HRESULT { CERTSRV_E_NO_VALID_KRA = cast(HRESULT)0x8009400BL } - -enum : HRESULT { CERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL = cast(HRESULT)0x8009400CL } - -enum : HRESULT { CERTSRV_E_NO_CAADMIN_DEFINED = cast(HRESULT)0x8009400DL } - -enum : HRESULT { CERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE = cast(HRESULT)0x8009400EL } - -enum : HRESULT { CERTSRV_E_NO_DB_SESSIONS = cast(HRESULT)0x8009400FL } - -enum : HRESULT { CERTSRV_E_ALIGNMENT_FAULT = cast(HRESULT)0x80094010L } - -enum : HRESULT { CERTSRV_E_ENROLL_DENIED = cast(HRESULT)0x80094011L } - -enum : HRESULT { CERTSRV_E_TEMPLATE_DENIED = cast(HRESULT)0x80094012L } - -enum : HRESULT { CERTSRV_E_UNSUPPORTED_CERT_TYPE = cast(HRESULT)0x80094800L } - -enum : HRESULT { CERTSRV_E_NO_CERT_TYPE = cast(HRESULT)0x80094801L } - -enum : HRESULT { CERTSRV_E_TEMPLATE_CONFLICT = cast(HRESULT)0x80094802L } - -enum : HRESULT { CERTSRV_E_SUBJECT_ALT_NAME_REQUIRED = cast(HRESULT)0x80094803L } - -enum : HRESULT { CERTSRV_E_ARCHIVED_KEY_REQUIRED = cast(HRESULT)0x80094804L } - -enum : HRESULT { CERTSRV_E_SMIME_REQUIRED = cast(HRESULT)0x80094805L } - -enum : HRESULT { CERTSRV_E_BAD_RENEWAL_SUBJECT = cast(HRESULT)0x80094806L } - -enum : HRESULT { CERTSRV_E_BAD_TEMPLATE_VERSION = cast(HRESULT)0x80094807L } - -enum : HRESULT { CERTSRV_E_TEMPLATE_POLICY_REQUIRED = cast(HRESULT)0x80094808L } - -enum : HRESULT { CERTSRV_E_SIGNATURE_POLICY_REQUIRED = cast(HRESULT)0x80094809L } - -enum : HRESULT { CERTSRV_E_SIGNATURE_COUNT = cast(HRESULT)0x8009480AL } - -enum : HRESULT { CERTSRV_E_SIGNATURE_REJECTED = cast(HRESULT)0x8009480BL } - -enum : HRESULT { CERTSRV_E_ISSUANCE_POLICY_REQUIRED = cast(HRESULT)0x8009480CL } - -enum : HRESULT { CERTSRV_E_SUBJECT_UPN_REQUIRED = cast(HRESULT)0x8009480DL } - -enum : HRESULT { CERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED = cast(HRESULT)0x8009480EL } - -enum : HRESULT { CERTSRV_E_SUBJECT_DNS_REQUIRED = cast(HRESULT)0x8009480FL } - -enum : HRESULT { CERTSRV_E_ARCHIVED_KEY_UNEXPECTED = cast(HRESULT)0x80094810L } - -enum : HRESULT { CERTSRV_E_KEY_LENGTH = cast(HRESULT)0x80094811L } - -enum : HRESULT { XENROLL_E_KEY_NOT_EXPORTABLE = cast(HRESULT)0x80095000L } - -enum : HRESULT { XENROLL_E_CANNOT_ADD_ROOT_CERT = cast(HRESULT)0x80095001L } - -enum : HRESULT { XENROLL_E_RESPONSE_KA_HASH_NOT_FOUND = cast(HRESULT)0x80095002L } - -enum : HRESULT { XENROLL_E_RESPONSE_UNEXPECTED_KA_HASH = cast(HRESULT)0x80095003L } - -enum : HRESULT { XENROLL_E_RESPONSE_KA_HASH_MISMATCH = cast(HRESULT)0x80095004L } - -enum : HRESULT { XENROLL_E_KEYSPEC_SMIME_MISMATCH = cast(HRESULT)0x80095005L } - -enum : HRESULT { TRUST_E_SYSTEM_ERROR = cast(HRESULT)0x80096001L } - -enum : HRESULT { TRUST_E_NO_SIGNER_CERT = cast(HRESULT)0x80096002L } - -enum : HRESULT { TRUST_E_COUNTER_SIGNER = cast(HRESULT)0x80096003L } - -enum : HRESULT { TRUST_E_CERT_SIGNATURE = cast(HRESULT)0x80096004L } - -enum : HRESULT { TRUST_E_TIME_STAMP = cast(HRESULT)0x80096005L } - -enum : HRESULT { TRUST_E_BAD_DIGEST = cast(HRESULT)0x80096010L } - -enum : HRESULT { TRUST_E_BASIC_CONSTRAINTS = cast(HRESULT)0x80096019L } - -enum : HRESULT { TRUST_E_FINANCIAL_CRITERIA = cast(HRESULT)0x8009601EL } - -enum : HRESULT { MSSIPOTF_E_OUTOFMEMRANGE = cast(HRESULT)0x80097001L } - -enum : HRESULT { MSSIPOTF_E_CANTGETOBJECT = cast(HRESULT)0x80097002L } - -enum : HRESULT { MSSIPOTF_E_NOHEADTABLE = cast(HRESULT)0x80097003L } - -enum : HRESULT { MSSIPOTF_E_BAD_MAGICNUMBER = cast(HRESULT)0x80097004L } - -enum : HRESULT { MSSIPOTF_E_BAD_OFFSET_TABLE = cast(HRESULT)0x80097005L } - -enum : HRESULT { MSSIPOTF_E_TABLE_TAGORDER = cast(HRESULT)0x80097006L } - -enum : HRESULT { MSSIPOTF_E_TABLE_LONGWORD = cast(HRESULT)0x80097007L } - -enum : HRESULT { MSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT = cast(HRESULT)0x80097008L } - -enum : HRESULT { MSSIPOTF_E_TABLES_OVERLAP = cast(HRESULT)0x80097009L } - -enum : HRESULT { MSSIPOTF_E_TABLE_PADBYTES = cast(HRESULT)0x8009700AL } - -enum : HRESULT { MSSIPOTF_E_FILETOOSMALL = cast(HRESULT)0x8009700BL } - -enum : HRESULT { MSSIPOTF_E_TABLE_CHECKSUM = cast(HRESULT)0x8009700CL } - -enum : HRESULT { MSSIPOTF_E_FILE_CHECKSUM = cast(HRESULT)0x8009700DL } - -enum : HRESULT { MSSIPOTF_E_FAILED_POLICY = cast(HRESULT)0x80097010L } - -enum : HRESULT { MSSIPOTF_E_FAILED_HINTS_CHECK = cast(HRESULT)0x80097011L } - -enum : HRESULT { MSSIPOTF_E_NOT_OPENTYPE = cast(HRESULT)0x80097012L } - -enum : HRESULT { MSSIPOTF_E_FILE = cast(HRESULT)0x80097013L } - -enum : HRESULT { MSSIPOTF_E_CRYPT = cast(HRESULT)0x80097014L } - -enum : HRESULT { MSSIPOTF_E_BADVERSION = cast(HRESULT)0x80097015L } - -enum : HRESULT { MSSIPOTF_E_DSIG_STRUCTURE = cast(HRESULT)0x80097016L } - -enum : HRESULT { MSSIPOTF_E_PCONST_CHECK = cast(HRESULT)0x80097017L } - -enum : HRESULT { MSSIPOTF_E_STRUCTURE = cast(HRESULT)0x80097018L } - -enum : uint { NTE_OP_OK = 0 } - -enum : HRESULT { TRUST_E_PROVIDER_UNKNOWN = cast(HRESULT)0x800B0001L } - -enum : HRESULT { TRUST_E_ACTION_UNKNOWN = cast(HRESULT)0x800B0002L } - -enum : HRESULT { TRUST_E_SUBJECT_FORM_UNKNOWN = cast(HRESULT)0x800B0003L } - -enum : HRESULT { TRUST_E_SUBJECT_NOT_TRUSTED = cast(HRESULT)0x800B0004L } - -enum : HRESULT { DIGSIG_E_ENCODE = cast(HRESULT)0x800B0005L } - -enum : HRESULT { DIGSIG_E_DECODE = cast(HRESULT)0x800B0006L } - -enum : HRESULT { DIGSIG_E_EXTENSIBILITY = cast(HRESULT)0x800B0007L } - -enum : HRESULT { DIGSIG_E_CRYPTO = cast(HRESULT)0x800B0008L } - -enum : HRESULT { PERSIST_E_SIZEDEFINITE = cast(HRESULT)0x800B0009L } - -enum : HRESULT { PERSIST_E_SIZEINDEFINITE = cast(HRESULT)0x800B000AL } - -enum : HRESULT { PERSIST_E_NOTSELFSIZING = cast(HRESULT)0x800B000BL } - -enum : HRESULT { TRUST_E_NOSIGNATURE = cast(HRESULT)0x800B0100L } - -enum : HRESULT { CERT_E_EXPIRED = cast(HRESULT)0x800B0101L } - -enum : HRESULT { CERT_E_VALIDITYPERIODNESTING = cast(HRESULT)0x800B0102L } - -enum : HRESULT { CERT_E_ROLE = cast(HRESULT)0x800B0103L } - -enum : HRESULT { CERT_E_PATHLENCONST = cast(HRESULT)0x800B0104L } - -enum : HRESULT { CERT_E_CRITICAL = cast(HRESULT)0x800B0105L } - -enum : HRESULT { CERT_E_PURPOSE = cast(HRESULT)0x800B0106L } - -enum : HRESULT { CERT_E_ISSUERCHAINING = cast(HRESULT)0x800B0107L } - -enum : HRESULT { CERT_E_MALFORMED = cast(HRESULT)0x800B0108L } - -enum : HRESULT { CERT_E_UNTRUSTEDROOT = cast(HRESULT)0x800B0109L } - -enum : HRESULT { CERT_E_CHAINING = cast(HRESULT)0x800B010AL } - -enum : HRESULT { TRUST_E_FAIL = cast(HRESULT)0x800B010BL } - -enum : HRESULT { CERT_E_REVOKED = cast(HRESULT)0x800B010CL } - -enum : HRESULT { CERT_E_UNTRUSTEDTESTROOT = cast(HRESULT)0x800B010DL } - -enum : HRESULT { CERT_E_REVOCATION_FAILURE = cast(HRESULT)0x800B010EL } - -enum : HRESULT { CERT_E_CN_NO_MATCH = cast(HRESULT)0x800B010FL } - -enum : HRESULT { CERT_E_WRONG_USAGE = cast(HRESULT)0x800B0110L } - -enum : HRESULT { TRUST_E_EXPLICIT_DISTRUST = cast(HRESULT)0x800B0111L } - -enum : HRESULT { CERT_E_UNTRUSTEDCA = cast(HRESULT)0x800B0112L } - -enum : HRESULT { CERT_E_INVALID_POLICY = cast(HRESULT)0x800B0113L } - -enum : HRESULT { CERT_E_INVALID_NAME = cast(HRESULT)0x800B0114L } - -// #define HRESULT_FROM_SETUPAPI(x) ((((x) & (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR)) == (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR)) ? ((HRESULT) (((x) & 0x0000FFFF) | (FACILITY_SETUPAPI << 16) | 0x80000000)) : HRESULT_FROM_WIN32(x)) - -enum : HRESULT { SPAPI_E_EXPECTED_SECTION_NAME = cast(HRESULT)0x800F0000L } - -enum : HRESULT { SPAPI_E_BAD_SECTION_NAME_LINE = cast(HRESULT)0x800F0001L } - -enum : HRESULT { SPAPI_E_SECTION_NAME_TOO_LONG = cast(HRESULT)0x800F0002L } - -enum : HRESULT { SPAPI_E_GENERAL_SYNTAX = cast(HRESULT)0x800F0003L } - -enum : HRESULT { SPAPI_E_WRONG_INF_STYLE = cast(HRESULT)0x800F0100L } - -enum : HRESULT { SPAPI_E_SECTION_NOT_FOUND = cast(HRESULT)0x800F0101L } - -enum : HRESULT { SPAPI_E_LINE_NOT_FOUND = cast(HRESULT)0x800F0102L } - -enum : HRESULT { SPAPI_E_NO_BACKUP = cast(HRESULT)0x800F0103L } - -enum : HRESULT { SPAPI_E_NO_ASSOCIATED_CLASS = cast(HRESULT)0x800F0200L } - -enum : HRESULT { SPAPI_E_CLASS_MISMATCH = cast(HRESULT)0x800F0201L } - -enum : HRESULT { SPAPI_E_DUPLICATE_FOUND = cast(HRESULT)0x800F0202L } - -enum : HRESULT { SPAPI_E_NO_DRIVER_SELECTED = cast(HRESULT)0x800F0203L } - -enum : HRESULT { SPAPI_E_KEY_DOES_NOT_EXIST = cast(HRESULT)0x800F0204L } - -enum : HRESULT { SPAPI_E_INVALID_DEVINST_NAME = cast(HRESULT)0x800F0205L } - -enum : HRESULT { SPAPI_E_INVALID_CLASS = cast(HRESULT)0x800F0206L } - -enum : HRESULT { SPAPI_E_DEVINST_ALREADY_EXISTS = cast(HRESULT)0x800F0207L } - -enum : HRESULT { SPAPI_E_DEVINFO_NOT_REGISTERED = cast(HRESULT)0x800F0208L } - -enum : HRESULT { SPAPI_E_INVALID_REG_PROPERTY = cast(HRESULT)0x800F0209L } - -enum : HRESULT { SPAPI_E_NO_INF = cast(HRESULT)0x800F020AL } - -enum : HRESULT { SPAPI_E_NO_SUCH_DEVINST = cast(HRESULT)0x800F020BL } - -enum : HRESULT { SPAPI_E_CANT_LOAD_CLASS_ICON = cast(HRESULT)0x800F020CL } - -enum : HRESULT { SPAPI_E_INVALID_CLASS_INSTALLER = cast(HRESULT)0x800F020DL } - -enum : HRESULT { SPAPI_E_DI_DO_DEFAULT = cast(HRESULT)0x800F020EL } - -enum : HRESULT { SPAPI_E_DI_NOFILECOPY = cast(HRESULT)0x800F020FL } - -enum : HRESULT { SPAPI_E_INVALID_HWPROFILE = cast(HRESULT)0x800F0210L } - -enum : HRESULT { SPAPI_E_NO_DEVICE_SELECTED = cast(HRESULT)0x800F0211L } - -enum : HRESULT { SPAPI_E_DEVINFO_LIST_LOCKED = cast(HRESULT)0x800F0212L } - -enum : HRESULT { SPAPI_E_DEVINFO_DATA_LOCKED = cast(HRESULT)0x800F0213L } - -enum : HRESULT { SPAPI_E_DI_BAD_PATH = cast(HRESULT)0x800F0214L } - -enum : HRESULT { SPAPI_E_NO_CLASSINSTALL_PARAMS = cast(HRESULT)0x800F0215L } - -enum : HRESULT { SPAPI_E_FILEQUEUE_LOCKED = cast(HRESULT)0x800F0216L } - -enum : HRESULT { SPAPI_E_BAD_SERVICE_INSTALLSECT = cast(HRESULT)0x800F0217L } - -enum : HRESULT { SPAPI_E_NO_CLASS_DRIVER_LIST = cast(HRESULT)0x800F0218L } - -enum : HRESULT { SPAPI_E_NO_ASSOCIATED_SERVICE = cast(HRESULT)0x800F0219L } - -enum : HRESULT { SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE = cast(HRESULT)0x800F021AL } - -enum : HRESULT { SPAPI_E_DEVICE_INTERFACE_ACTIVE = cast(HRESULT)0x800F021BL } - -enum : HRESULT { SPAPI_E_DEVICE_INTERFACE_REMOVED = cast(HRESULT)0x800F021CL } - -enum : HRESULT { SPAPI_E_BAD_INTERFACE_INSTALLSECT = cast(HRESULT)0x800F021DL } - -enum : HRESULT { SPAPI_E_NO_SUCH_INTERFACE_CLASS = cast(HRESULT)0x800F021EL } - -enum : HRESULT { SPAPI_E_INVALID_REFERENCE_STRING = cast(HRESULT)0x800F021FL } - -enum : HRESULT { SPAPI_E_INVALID_MACHINENAME = cast(HRESULT)0x800F0220L } - -enum : HRESULT { SPAPI_E_REMOTE_COMM_FAILURE = cast(HRESULT)0x800F0221L } - -enum : HRESULT { SPAPI_E_MACHINE_UNAVAILABLE = cast(HRESULT)0x800F0222L } - -enum : HRESULT { SPAPI_E_NO_CONFIGMGR_SERVICES = cast(HRESULT)0x800F0223L } - -enum : HRESULT { SPAPI_E_INVALID_PROPPAGE_PROVIDER = cast(HRESULT)0x800F0224L } - -enum : HRESULT { SPAPI_E_NO_SUCH_DEVICE_INTERFACE = cast(HRESULT)0x800F0225L } - -enum : HRESULT { SPAPI_E_DI_POSTPROCESSING_REQUIRED = cast(HRESULT)0x800F0226L } - -enum : HRESULT { SPAPI_E_INVALID_COINSTALLER = cast(HRESULT)0x800F0227L } - -enum : HRESULT { SPAPI_E_NO_COMPAT_DRIVERS = cast(HRESULT)0x800F0228L } - -enum : HRESULT { SPAPI_E_NO_DEVICE_ICON = cast(HRESULT)0x800F0229L } - -enum : HRESULT { SPAPI_E_INVALID_INF_LOGCONFIG = cast(HRESULT)0x800F022AL } - -enum : HRESULT { SPAPI_E_DI_DONT_INSTALL = cast(HRESULT)0x800F022BL } - -enum : HRESULT { SPAPI_E_INVALID_FILTER_DRIVER = cast(HRESULT)0x800F022CL } - -enum : HRESULT { SPAPI_E_NON_WINDOWS_NT_DRIVER = cast(HRESULT)0x800F022DL } - -enum : HRESULT { SPAPI_E_NON_WINDOWS_DRIVER = cast(HRESULT)0x800F022EL } - -enum : HRESULT { SPAPI_E_NO_CATALOG_FOR_OEM_INF = cast(HRESULT)0x800F022FL } - -enum : HRESULT { SPAPI_E_DEVINSTALL_QUEUE_NONNATIVE = cast(HRESULT)0x800F0230L } - -enum : HRESULT { SPAPI_E_NOT_DISABLEABLE = cast(HRESULT)0x800F0231L } - -enum : HRESULT { SPAPI_E_CANT_REMOVE_DEVINST = cast(HRESULT)0x800F0232L } - -enum : HRESULT { SPAPI_E_INVALID_TARGET = cast(HRESULT)0x800F0233L } - -enum : HRESULT { SPAPI_E_DRIVER_NONNATIVE = cast(HRESULT)0x800F0234L } - -enum : HRESULT { SPAPI_E_IN_WOW64 = cast(HRESULT)0x800F0235L } - -enum : HRESULT { SPAPI_E_SET_SYSTEM_RESTORE_POINT = cast(HRESULT)0x800F0236L } - -enum : HRESULT { SPAPI_E_INCORRECTLY_COPIED_INF = cast(HRESULT)0x800F0237L } - -enum : HRESULT { SPAPI_E_SCE_DISABLED = cast(HRESULT)0x800F0238L } - -enum : HRESULT { SPAPI_E_ERROR_NOT_INSTALLED = cast(HRESULT)0x800F1000L } - -alias NO_ERROR SCARD_S_SUCCESS; - -enum : HRESULT { SCARD_F_INTERNAL_ERROR = cast(HRESULT)0x80100001L } - -enum : HRESULT { SCARD_E_CANCELLED = cast(HRESULT)0x80100002L } - -enum : HRESULT { SCARD_E_INVALID_HANDLE = cast(HRESULT)0x80100003L } - -enum : HRESULT { SCARD_E_INVALID_PARAMETER = cast(HRESULT)0x80100004L } - -enum : HRESULT { SCARD_E_INVALID_TARGET = cast(HRESULT)0x80100005L } - -enum : HRESULT { SCARD_E_NO_MEMORY = cast(HRESULT)0x80100006L } - -enum : HRESULT { SCARD_F_WAITED_TOO_LONG = cast(HRESULT)0x80100007L } - -enum : HRESULT { SCARD_E_INSUFFICIENT_BUFFER = cast(HRESULT)0x80100008L } - -enum : HRESULT { SCARD_E_UNKNOWN_READER = cast(HRESULT)0x80100009L } - -enum : HRESULT { SCARD_E_TIMEOUT = cast(HRESULT)0x8010000AL } - -enum : HRESULT { SCARD_E_SHARING_VIOLATION = cast(HRESULT)0x8010000BL } - -enum : HRESULT { SCARD_E_NO_SMARTCARD = cast(HRESULT)0x8010000CL } - -enum : HRESULT { SCARD_E_UNKNOWN_CARD = cast(HRESULT)0x8010000DL } - -enum : HRESULT { SCARD_E_CANT_DISPOSE = cast(HRESULT)0x8010000EL } - -enum : HRESULT { SCARD_E_PROTO_MISMATCH = cast(HRESULT)0x8010000FL } - -enum : HRESULT { SCARD_E_NOT_READY = cast(HRESULT)0x80100010L } - -enum : HRESULT { SCARD_E_INVALID_VALUE = cast(HRESULT)0x80100011L } - -enum : HRESULT { SCARD_E_SYSTEM_CANCELLED = cast(HRESULT)0x80100012L } - -enum : HRESULT { SCARD_F_COMM_ERROR = cast(HRESULT)0x80100013L } - -enum : HRESULT { SCARD_F_UNKNOWN_ERROR = cast(HRESULT)0x80100014L } - -enum : HRESULT { SCARD_E_INVALID_ATR = cast(HRESULT)0x80100015L } - -enum : HRESULT { SCARD_E_NOT_TRANSACTED = cast(HRESULT)0x80100016L } - -enum : HRESULT { SCARD_E_READER_UNAVAILABLE = cast(HRESULT)0x80100017L } - -enum : HRESULT { SCARD_P_SHUTDOWN = cast(HRESULT)0x80100018L } - -enum : HRESULT { SCARD_E_PCI_TOO_SMALL = cast(HRESULT)0x80100019L } - -enum : HRESULT { SCARD_E_READER_UNSUPPORTED = cast(HRESULT)0x8010001AL } - -enum : HRESULT { SCARD_E_DUPLICATE_READER = cast(HRESULT)0x8010001BL } - -enum : HRESULT { SCARD_E_CARD_UNSUPPORTED = cast(HRESULT)0x8010001CL } - -enum : HRESULT { SCARD_E_NO_SERVICE = cast(HRESULT)0x8010001DL } - -enum : HRESULT { SCARD_E_SERVICE_STOPPED = cast(HRESULT)0x8010001EL } - -enum : HRESULT { SCARD_E_UNEXPECTED = cast(HRESULT)0x8010001FL } - -enum : HRESULT { SCARD_E_ICC_INSTALLATION = cast(HRESULT)0x80100020L } - -enum : HRESULT { SCARD_E_ICC_CREATEORDER = cast(HRESULT)0x80100021L } - -enum : HRESULT { SCARD_E_UNSUPPORTED_FEATURE = cast(HRESULT)0x80100022L } - -enum : HRESULT { SCARD_E_DIR_NOT_FOUND = cast(HRESULT)0x80100023L } - -enum : HRESULT { SCARD_E_FILE_NOT_FOUND = cast(HRESULT)0x80100024L } - -enum : HRESULT { SCARD_E_NO_DIR = cast(HRESULT)0x80100025L } - -enum : HRESULT { SCARD_E_NO_FILE = cast(HRESULT)0x80100026L } - -enum : HRESULT { SCARD_E_NO_ACCESS = cast(HRESULT)0x80100027L } - -enum : HRESULT { SCARD_E_WRITE_TOO_MANY = cast(HRESULT)0x80100028L } - -enum : HRESULT { SCARD_E_BAD_SEEK = cast(HRESULT)0x80100029L } - -enum : HRESULT { SCARD_E_INVALID_CHV = cast(HRESULT)0x8010002AL } - -enum : HRESULT { SCARD_E_UNKNOWN_RES_MNG = cast(HRESULT)0x8010002BL } - -enum : HRESULT { SCARD_E_NO_SUCH_CERTIFICATE = cast(HRESULT)0x8010002CL } - -enum : HRESULT { SCARD_E_CERTIFICATE_UNAVAILABLE = cast(HRESULT)0x8010002DL } - -enum : HRESULT { SCARD_E_NO_READERS_AVAILABLE = cast(HRESULT)0x8010002EL } - -enum : HRESULT { SCARD_E_COMM_DATA_LOST = cast(HRESULT)0x8010002FL } - -enum : HRESULT { SCARD_E_NO_KEY_CONTAINER = cast(HRESULT)0x80100030L } - -enum : HRESULT { SCARD_W_UNSUPPORTED_CARD = cast(HRESULT)0x80100065L } - -enum : HRESULT { SCARD_W_UNRESPONSIVE_CARD = cast(HRESULT)0x80100066L } - -enum : HRESULT { SCARD_W_UNPOWERED_CARD = cast(HRESULT)0x80100067L } - -enum : HRESULT { SCARD_W_RESET_CARD = cast(HRESULT)0x80100068L } - -enum : HRESULT { SCARD_W_REMOVED_CARD = cast(HRESULT)0x80100069L } - -enum : HRESULT { SCARD_W_SECURITY_VIOLATION = cast(HRESULT)0x8010006AL } - -enum : HRESULT { SCARD_W_WRONG_CHV = cast(HRESULT)0x8010006BL } - -enum : HRESULT { SCARD_W_CHV_BLOCKED = cast(HRESULT)0x8010006CL } - -enum : HRESULT { SCARD_W_EOF = cast(HRESULT)0x8010006DL } - -enum : HRESULT { SCARD_W_CANCELLED_BY_USER = cast(HRESULT)0x8010006EL } - -enum : HRESULT { SCARD_W_CARD_NOT_AUTHENTICATED = cast(HRESULT)0x8010006FL } - -enum : HRESULT { COMADMIN_E_OBJECTERRORS = cast(HRESULT)0x80110401L } - -enum : HRESULT { COMADMIN_E_OBJECTINVALID = cast(HRESULT)0x80110402L } - -enum : HRESULT { COMADMIN_E_KEYMISSING = cast(HRESULT)0x80110403L } - -enum : HRESULT { COMADMIN_E_ALREADYINSTALLED = cast(HRESULT)0x80110404L } - -enum : HRESULT { COMADMIN_E_APP_FILE_WRITEFAIL = cast(HRESULT)0x80110407L } - -enum : HRESULT { COMADMIN_E_APP_FILE_READFAIL = cast(HRESULT)0x80110408L } - -enum : HRESULT { COMADMIN_E_APP_FILE_VERSION = cast(HRESULT)0x80110409L } - -enum : HRESULT { COMADMIN_E_BADPATH = cast(HRESULT)0x8011040AL } - -enum : HRESULT { COMADMIN_E_APPLICATIONEXISTS = cast(HRESULT)0x8011040BL } - -enum : HRESULT { COMADMIN_E_ROLEEXISTS = cast(HRESULT)0x8011040CL } - -enum : HRESULT { COMADMIN_E_CANTCOPYFILE = cast(HRESULT)0x8011040DL } - -enum : HRESULT { COMADMIN_E_NOUSER = cast(HRESULT)0x8011040FL } - -enum : HRESULT { COMADMIN_E_INVALIDUSERIDS = cast(HRESULT)0x80110410L } - -enum : HRESULT { COMADMIN_E_NOREGISTRYCLSID = cast(HRESULT)0x80110411L } - -enum : HRESULT { COMADMIN_E_BADREGISTRYPROGID = cast(HRESULT)0x80110412L } - -enum : HRESULT { COMADMIN_E_AUTHENTICATIONLEVEL = cast(HRESULT)0x80110413L } - -enum : HRESULT { COMADMIN_E_USERPASSWDNOTVALID = cast(HRESULT)0x80110414L } - -enum : HRESULT { COMADMIN_E_CLSIDORIIDMISMATCH = cast(HRESULT)0x80110418L } - -enum : HRESULT { COMADMIN_E_REMOTEINTERFACE = cast(HRESULT)0x80110419L } - -enum : HRESULT { COMADMIN_E_DLLREGISTERSERVER = cast(HRESULT)0x8011041AL } - -enum : HRESULT { COMADMIN_E_NOSERVERSHARE = cast(HRESULT)0x8011041BL } - -enum : HRESULT { COMADMIN_E_DLLLOADFAILED = cast(HRESULT)0x8011041DL } - -enum : HRESULT { COMADMIN_E_BADREGISTRYLIBID = cast(HRESULT)0x8011041EL } - -enum : HRESULT { COMADMIN_E_APPDIRNOTFOUND = cast(HRESULT)0x8011041FL } - -enum : HRESULT { COMADMIN_E_REGISTRARFAILED = cast(HRESULT)0x80110423L } - -enum : HRESULT { COMADMIN_E_COMPFILE_DOESNOTEXIST = cast(HRESULT)0x80110424L } - -enum : HRESULT { COMADMIN_E_COMPFILE_LOADDLLFAIL = cast(HRESULT)0x80110425L } - -enum : HRESULT { COMADMIN_E_COMPFILE_GETCLASSOBJ = cast(HRESULT)0x80110426L } - -enum : HRESULT { COMADMIN_E_COMPFILE_CLASSNOTAVAIL = cast(HRESULT)0x80110427L } - -enum : HRESULT { COMADMIN_E_COMPFILE_BADTLB = cast(HRESULT)0x80110428L } - -enum : HRESULT { COMADMIN_E_COMPFILE_NOTINSTALLABLE = cast(HRESULT)0x80110429L } - -enum : HRESULT { COMADMIN_E_NOTCHANGEABLE = cast(HRESULT)0x8011042AL } - -enum : HRESULT { COMADMIN_E_NOTDELETEABLE = cast(HRESULT)0x8011042BL } - -enum : HRESULT { COMADMIN_E_SESSION = cast(HRESULT)0x8011042CL } - -enum : HRESULT { COMADMIN_E_COMP_MOVE_LOCKED = cast(HRESULT)0x8011042DL } - -enum : HRESULT { COMADMIN_E_COMP_MOVE_BAD_DEST = cast(HRESULT)0x8011042EL } - -enum : HRESULT { COMADMIN_E_REGISTERTLB = cast(HRESULT)0x80110430L } - -enum : HRESULT { COMADMIN_E_SYSTEMAPP = cast(HRESULT)0x80110433L } - -enum : HRESULT { COMADMIN_E_COMPFILE_NOREGISTRAR = cast(HRESULT)0x80110434L } - -enum : HRESULT { COMADMIN_E_COREQCOMPINSTALLED = cast(HRESULT)0x80110435L } - -enum : HRESULT { COMADMIN_E_SERVICENOTINSTALLED = cast(HRESULT)0x80110436L } - -enum : HRESULT { COMADMIN_E_PROPERTYSAVEFAILED = cast(HRESULT)0x80110437L } - -enum : HRESULT { COMADMIN_E_OBJECTEXISTS = cast(HRESULT)0x80110438L } - -enum : HRESULT { COMADMIN_E_COMPONENTEXISTS = cast(HRESULT)0x80110439L } - -enum : HRESULT { COMADMIN_E_REGFILE_CORRUPT = cast(HRESULT)0x8011043BL } - -enum : HRESULT { COMADMIN_E_PROPERTY_OVERFLOW = cast(HRESULT)0x8011043CL } - -enum : HRESULT { COMADMIN_E_NOTINREGISTRY = cast(HRESULT)0x8011043EL } - -enum : HRESULT { COMADMIN_E_OBJECTNOTPOOLABLE = cast(HRESULT)0x8011043FL } - -enum : HRESULT { COMADMIN_E_APPLID_MATCHES_CLSID = cast(HRESULT)0x80110446L } - -enum : HRESULT { COMADMIN_E_ROLE_DOES_NOT_EXIST = cast(HRESULT)0x80110447L } - -enum : HRESULT { COMADMIN_E_START_APP_NEEDS_COMPONENTS = cast(HRESULT)0x80110448L } - -enum : HRESULT { COMADMIN_E_REQUIRES_DIFFERENT_PLATFORM = cast(HRESULT)0x80110449L } - -enum : HRESULT { COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY = cast(HRESULT)0x8011044AL } - -enum : HRESULT { COMADMIN_E_CAN_NOT_START_APP = cast(HRESULT)0x8011044BL } - -enum : HRESULT { COMADMIN_E_CAN_NOT_EXPORT_SYS_APP = cast(HRESULT)0x8011044CL } - -enum : HRESULT { COMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT = cast(HRESULT)0x8011044DL } - -enum : HRESULT { COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER = cast(HRESULT)0x8011044EL } - -enum : HRESULT { COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE = cast(HRESULT)0x8011044FL } - -enum : HRESULT { COMADMIN_E_BASE_PARTITION_ONLY = cast(HRESULT)0x80110450L } - -enum : HRESULT { COMADMIN_E_START_APP_DISABLED = cast(HRESULT)0x80110451L } - -enum : HRESULT { COMADMIN_E_CAT_DUPLICATE_PARTITION_NAME = cast(HRESULT)0x80110457L } - -enum : HRESULT { COMADMIN_E_CAT_INVALID_PARTITION_NAME = cast(HRESULT)0x80110458L } - -enum : HRESULT { COMADMIN_E_CAT_PARTITION_IN_USE = cast(HRESULT)0x80110459L } - -enum : HRESULT { COMADMIN_E_FILE_PARTITION_DUPLICATE_FILES = cast(HRESULT)0x8011045AL } - -enum : HRESULT { COMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED = cast(HRESULT)0x8011045BL } - -enum : HRESULT { COMADMIN_E_AMBIGUOUS_APPLICATION_NAME = cast(HRESULT)0x8011045CL } - -enum : HRESULT { COMADMIN_E_AMBIGUOUS_PARTITION_NAME = cast(HRESULT)0x8011045DL } - -enum : HRESULT { COMADMIN_E_REGDB_NOTINITIALIZED = cast(HRESULT)0x80110472L } - -enum : HRESULT { COMADMIN_E_REGDB_NOTOPEN = cast(HRESULT)0x80110473L } - -enum : HRESULT { COMADMIN_E_REGDB_SYSTEMERR = cast(HRESULT)0x80110474L } - -enum : HRESULT { COMADMIN_E_REGDB_ALREADYRUNNING = cast(HRESULT)0x80110475L } - -enum : HRESULT { COMADMIN_E_MIG_VERSIONNOTSUPPORTED = cast(HRESULT)0x80110480L } - -enum : HRESULT { COMADMIN_E_MIG_SCHEMANOTFOUND = cast(HRESULT)0x80110481L } - -enum : HRESULT { COMADMIN_E_CAT_BITNESSMISMATCH = cast(HRESULT)0x80110482L } - -enum : HRESULT { COMADMIN_E_CAT_UNACCEPTABLEBITNESS = cast(HRESULT)0x80110483L } - -enum : HRESULT { COMADMIN_E_CAT_WRONGAPPBITNESS = cast(HRESULT)0x80110484L } - -enum : HRESULT { COMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED = cast(HRESULT)0x80110485L } - -enum : HRESULT { COMADMIN_E_CAT_SERVERFAULT = cast(HRESULT)0x80110486L } - -enum : HRESULT { COMQC_E_APPLICATION_NOT_QUEUED = cast(HRESULT)0x80110600L } - -enum : HRESULT { COMQC_E_NO_QUEUEABLE_INTERFACES = cast(HRESULT)0x80110601L } - -enum : HRESULT { COMQC_E_QUEUING_SERVICE_NOT_AVAILABLE = cast(HRESULT)0x80110602L } - -enum : HRESULT { COMQC_E_NO_IPERSISTSTREAM = cast(HRESULT)0x80110603L } - -enum : HRESULT { COMQC_E_BAD_MESSAGE = cast(HRESULT)0x80110604L } - -enum : HRESULT { COMQC_E_UNAUTHENTICATED = cast(HRESULT)0x80110605L } - -enum : HRESULT { COMQC_E_UNTRUSTED_ENQUEUER = cast(HRESULT)0x80110606L } - -enum : HRESULT { MSDTC_E_DUPLICATE_RESOURCE = cast(HRESULT)0x80110701L } - -enum : HRESULT { COMADMIN_E_OBJECT_PARENT_MISSING = cast(HRESULT)0x80110808L } - -enum : HRESULT { COMADMIN_E_OBJECT_DOES_NOT_EXIST = cast(HRESULT)0x80110809L } - -enum : HRESULT { COMADMIN_E_APP_NOT_RUNNING = cast(HRESULT)0x8011080AL } - -enum : HRESULT { COMADMIN_E_INVALID_PARTITION = cast(HRESULT)0x8011080BL } - -enum : HRESULT { COMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE = cast(HRESULT)0x8011080DL } - -enum : HRESULT { COMADMIN_E_USER_IN_SET = cast(HRESULT)0x8011080EL } - -enum : HRESULT { COMADMIN_E_CANTRECYCLELIBRARYAPPS = cast(HRESULT)0x8011080FL } - -enum : HRESULT { COMADMIN_E_CANTRECYCLESERVICEAPPS = cast(HRESULT)0x80110811L } - -enum : HRESULT { COMADMIN_E_PROCESSALREADYRECYCLED = cast(HRESULT)0x80110812L } - -enum : HRESULT { COMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED = cast(HRESULT)0x80110813L } - -enum : HRESULT { COMADMIN_E_CANTMAKEINPROCSERVICE = cast(HRESULT)0x80110814L } - -enum : HRESULT { COMADMIN_E_PROGIDINUSEBYCLSID = cast(HRESULT)0x80110815L } - -enum : HRESULT { COMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET = cast(HRESULT)0x80110816L } - -enum : HRESULT { COMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED = cast(HRESULT)0x80110817L } - -enum : HRESULT { COMADMIN_E_PARTITION_ACCESSDENIED = cast(HRESULT)0x80110818L } - -enum : HRESULT { COMADMIN_E_PARTITION_MSI_ONLY = cast(HRESULT)0x80110819L } - -enum : HRESULT { COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT = cast(HRESULT)0x8011081AL } - -enum : HRESULT { COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS = cast(HRESULT)0x8011081BL } - -enum : HRESULT { COMADMIN_E_COMP_MOVE_SOURCE = cast(HRESULT)0x8011081CL } - -enum : HRESULT { COMADMIN_E_COMP_MOVE_DEST = cast(HRESULT)0x8011081DL } - -enum : HRESULT { COMADMIN_E_COMP_MOVE_PRIVATE = cast(HRESULT)0x8011081EL } - -enum : HRESULT { COMADMIN_E_BASEPARTITION_REQUIRED_IN_SET = cast(HRESULT)0x8011081FL } - -enum : HRESULT { COMADMIN_E_CANNOT_ALIAS_EVENTCLASS = cast(HRESULT)0x80110820L } - -enum : HRESULT { COMADMIN_E_PRIVATE_ACCESSDENIED = cast(HRESULT)0x80110821L } - -enum : HRESULT { COMADMIN_E_SAFERINVALID = cast(HRESULT)0x80110822L } - -enum : HRESULT { COMADMIN_E_REGISTRY_ACCESSDENIED = cast(HRESULT)0x80110823L } - -enum : HRESULT { COMADMIN_E_CAT_DUPLICATE_PARTITION_SET_NAME = cast(HRESULT)0x80110900L } - -enum : HRESULT { COMADMIN_E_CAT_INVALID_PARTITION_SET_NAME = cast(HRESULT)0x80110901L } - -// #endif//_WINERROR_ +/***********************************************************************\ +* winerror.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.winerror; + +/* Comments from the Mingw header: + * WAIT_TIMEOUT is also defined in winbase.h + */ + +private import win32.windef; + +alias int SCODE; // was in win32.wtypes. + +enum : uint { + ERROR_SUCCESS = 0, + NO_ERROR = 0, + ERROR_INVALID_FUNCTION, + ERROR_FILE_NOT_FOUND, + ERROR_PATH_NOT_FOUND, + ERROR_TOO_MANY_OPEN_FILES, + ERROR_ACCESS_DENIED, + ERROR_INVALID_HANDLE, + ERROR_ARENA_TRASHED, + ERROR_NOT_ENOUGH_MEMORY, + ERROR_INVALID_BLOCK, + ERROR_BAD_ENVIRONMENT, + ERROR_BAD_FORMAT, + ERROR_INVALID_ACCESS, + ERROR_INVALID_DATA, + ERROR_OUTOFMEMORY, + ERROR_INVALID_DRIVE, + ERROR_CURRENT_DIRECTORY, + ERROR_NOT_SAME_DEVICE, + ERROR_NO_MORE_FILES, + ERROR_WRITE_PROTECT, + ERROR_BAD_UNIT, + ERROR_NOT_READY, + ERROR_BAD_COMMAND, + ERROR_CRC, + ERROR_BAD_LENGTH, + ERROR_SEEK, + ERROR_NOT_DOS_DISK, + ERROR_SECTOR_NOT_FOUND, + ERROR_OUT_OF_PAPER, + ERROR_WRITE_FAULT, + ERROR_READ_FAULT, + ERROR_GEN_FAILURE, + ERROR_SHARING_VIOLATION, + ERROR_LOCK_VIOLATION, + ERROR_WRONG_DISK, // = 34 + ERROR_SHARING_BUFFER_EXCEEDED = 36, + ERROR_HANDLE_EOF = 38, + ERROR_HANDLE_DISK_FULL, // = 39 + ERROR_NOT_SUPPORTED = 50, + ERROR_REM_NOT_LIST, + ERROR_DUP_NAME, + ERROR_BAD_NETPATH, + ERROR_NETWORK_BUSY, + ERROR_DEV_NOT_EXIST, + ERROR_TOO_MANY_CMDS, + ERROR_ADAP_HDW_ERR, + ERROR_BAD_NET_RESP, + ERROR_UNEXP_NET_ERR, + ERROR_BAD_REM_ADAP, + ERROR_PRINTQ_FULL, + ERROR_NO_SPOOL_SPACE, + ERROR_PRINT_CANCELLED, + ERROR_NETNAME_DELETED, + ERROR_NETWORK_ACCESS_DENIED, + ERROR_BAD_DEV_TYPE, + ERROR_BAD_NET_NAME, + ERROR_TOO_MANY_NAMES, + ERROR_TOO_MANY_SESS, + ERROR_SHARING_PAUSED, + ERROR_REQ_NOT_ACCEP, + ERROR_REDIR_PAUSED, // = 72 + ERROR_FILE_EXISTS = 80, + ERROR_CANNOT_MAKE = 82, + ERROR_FAIL_I24, + ERROR_OUT_OF_STRUCTURES, + ERROR_ALREADY_ASSIGNED, + ERROR_INVALID_PASSWORD, + ERROR_INVALID_PARAMETER, + ERROR_NET_WRITE_FAULT, + ERROR_NO_PROC_SLOTS, // = 89 + ERROR_TOO_MANY_SEMAPHORES = 100, + ERROR_EXCL_SEM_ALREADY_OWNED, + ERROR_SEM_IS_SET, + ERROR_TOO_MANY_SEM_REQUESTS, + ERROR_INVALID_AT_INTERRUPT_TIME, + ERROR_SEM_OWNER_DIED, + ERROR_SEM_USER_LIMIT, + ERROR_DISK_CHANGE, + ERROR_DRIVE_LOCKED, + ERROR_BROKEN_PIPE, + ERROR_OPEN_FAILED, + ERROR_BUFFER_OVERFLOW, + ERROR_DISK_FULL, + ERROR_NO_MORE_SEARCH_HANDLES, + ERROR_INVALID_TARGET_HANDLE, // = 114 + ERROR_INVALID_CATEGORY = 117, + ERROR_INVALID_VERIFY_SWITCH, + ERROR_BAD_DRIVER_LEVEL, + ERROR_CALL_NOT_IMPLEMENTED, + ERROR_SEM_TIMEOUT, + ERROR_INSUFFICIENT_BUFFER, + ERROR_INVALID_NAME, + ERROR_INVALID_LEVEL, + ERROR_NO_VOLUME_LABEL, + ERROR_MOD_NOT_FOUND, + ERROR_PROC_NOT_FOUND, + ERROR_WAIT_NO_CHILDREN, + ERROR_CHILD_NOT_COMPLETE, + ERROR_DIRECT_ACCESS_HANDLE, + ERROR_NEGATIVE_SEEK, + ERROR_SEEK_ON_DEVICE, + ERROR_IS_JOIN_TARGET, + ERROR_IS_JOINED, + ERROR_IS_SUBSTED, + ERROR_NOT_JOINED, + ERROR_NOT_SUBSTED, + ERROR_JOIN_TO_JOIN, + ERROR_SUBST_TO_SUBST, + ERROR_JOIN_TO_SUBST, + ERROR_SUBST_TO_JOIN, + ERROR_BUSY_DRIVE, + ERROR_SAME_DRIVE, + ERROR_DIR_NOT_ROOT, + ERROR_DIR_NOT_EMPTY, + ERROR_IS_SUBST_PATH, + ERROR_IS_JOIN_PATH, + ERROR_PATH_BUSY, + ERROR_IS_SUBST_TARGET, + ERROR_SYSTEM_TRACE, + ERROR_INVALID_EVENT_COUNT, + ERROR_TOO_MANY_MUXWAITERS, + ERROR_INVALID_LIST_FORMAT, + ERROR_LABEL_TOO_LONG, + ERROR_TOO_MANY_TCBS, + ERROR_SIGNAL_REFUSED, + ERROR_DISCARDED, + ERROR_NOT_LOCKED, + ERROR_BAD_THREADID_ADDR, + ERROR_BAD_ARGUMENTS, + ERROR_BAD_PATHNAME, + ERROR_SIGNAL_PENDING, // = 162 + ERROR_MAX_THRDS_REACHED = 164, + ERROR_LOCK_FAILED = 167, + ERROR_BUSY = 170, + ERROR_CANCEL_VIOLATION = 173, + ERROR_ATOMIC_LOCKS_NOT_SUPPORTED, // = 174 + ERROR_INVALID_SEGMENT_NUMBER = 180, + ERROR_INVALID_ORDINAL = 182, + ERROR_ALREADY_EXISTS, // = 183 + ERROR_INVALID_FLAG_NUMBER = 186, + ERROR_SEM_NOT_FOUND, + ERROR_INVALID_STARTING_CODESEG, + ERROR_INVALID_STACKSEG, + ERROR_INVALID_MODULETYPE, + ERROR_INVALID_EXE_SIGNATURE, + ERROR_EXE_MARKED_INVALID, + ERROR_BAD_EXE_FORMAT, + ERROR_ITERATED_DATA_EXCEEDS_64k, + ERROR_INVALID_MINALLOCSIZE, + ERROR_DYNLINK_FROM_INVALID_RING, + ERROR_IOPL_NOT_ENABLED, + ERROR_INVALID_SEGDPL, + ERROR_AUTODATASEG_EXCEEDS_64k, + ERROR_RING2SEG_MUST_BE_MOVABLE, + ERROR_RELOC_CHAIN_XEEDS_SEGLIM, + ERROR_INFLOOP_IN_RELOC_CHAIN, + ERROR_ENVVAR_NOT_FOUND, // = 203 + ERROR_NO_SIGNAL_SENT = 205, + ERROR_FILENAME_EXCED_RANGE, + ERROR_RING2_STACK_IN_USE, + ERROR_META_EXPANSION_TOO_LONG, + ERROR_INVALID_SIGNAL_NUMBER, + ERROR_THREAD_1_INACTIVE, // = 210 + ERROR_LOCKED = 212, + ERROR_TOO_MANY_MODULES = 214, + ERROR_NESTING_NOT_ALLOWED, + ERROR_EXE_MACHINE_TYPE_MISMATCH, + ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY, + ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY, // = 218 + ERROR_BAD_PIPE = 230, + ERROR_PIPE_BUSY, + ERROR_NO_DATA, + ERROR_PIPE_NOT_CONNECTED, + ERROR_MORE_DATA, // = 234 + ERROR_VC_DISCONNECTED = 240, + ERROR_INVALID_EA_NAME = 254, + ERROR_EA_LIST_INCONSISTENT, // = 255 + WAIT_TIMEOUT = 258, + ERROR_NO_MORE_ITEMS, // = 259 + ERROR_CANNOT_COPY = 266, + ERROR_DIRECTORY, // = 267 + ERROR_EAS_DIDNT_FIT = 275, + ERROR_EA_FILE_CORRUPT, + ERROR_EA_TABLE_FULL, + ERROR_INVALID_EA_HANDLE, // = 278 + ERROR_EAS_NOT_SUPPORTED = 282, + ERROR_NOT_OWNER = 288, + ERROR_TOO_MANY_POSTS = 298, + ERROR_PARTIAL_COPY, + ERROR_OPLOCK_NOT_GRANTED, + ERROR_INVALID_OPLOCK_PROTOCOL, + ERROR_DISK_TOO_FRAGMENTED, + ERROR_DELETE_PENDING, // = 303 + ERROR_MR_MID_NOT_FOUND = 317, + ERROR_SCOPE_NOT_FOUND, // = 318 + ERROR_INVALID_ADDRESS = 487, + ERROR_ARITHMETIC_OVERFLOW = 534, + ERROR_PIPE_CONNECTED, + ERROR_PIPE_LISTENING, // = 536 + ERROR_EA_ACCESS_DENIED = 994, + ERROR_OPERATION_ABORTED, + ERROR_IO_INCOMPLETE, + ERROR_IO_PENDING, + ERROR_NOACCESS, + ERROR_SWAPERROR, // = 999 + ERROR_STACK_OVERFLOW = 1001, + ERROR_INVALID_MESSAGE, + ERROR_CAN_NOT_COMPLETE, + ERROR_INVALID_FLAGS, + ERROR_UNRECOGNIZED_VOLUME, + ERROR_FILE_INVALID, + ERROR_FULLSCREEN_MODE, + ERROR_NO_TOKEN, + ERROR_BADDB, + ERROR_BADKEY, + ERROR_CANTOPEN, + ERROR_CANTREAD, + ERROR_CANTWRITE, + ERROR_REGISTRY_RECOVERED, + ERROR_REGISTRY_CORRUPT, + ERROR_REGISTRY_IO_FAILED, + ERROR_NOT_REGISTRY_FILE, + ERROR_KEY_DELETED, + ERROR_NO_LOG_SPACE, + ERROR_KEY_HAS_CHILDREN, + ERROR_CHILD_MUST_BE_VOLATILE, + ERROR_NOTIFY_ENUM_DIR, // = 1022 + ERROR_DEPENDENT_SERVICES_RUNNING = 1051, + ERROR_INVALID_SERVICE_CONTROL, + ERROR_SERVICE_REQUEST_TIMEOUT, + ERROR_SERVICE_NO_THREAD, + ERROR_SERVICE_DATABASE_LOCKED, + ERROR_SERVICE_ALREADY_RUNNING, + ERROR_INVALID_SERVICE_ACCOUNT, + ERROR_SERVICE_DISABLED, + ERROR_CIRCULAR_DEPENDENCY, + ERROR_SERVICE_DOES_NOT_EXIST, + ERROR_SERVICE_CANNOT_ACCEPT_CTRL, + ERROR_SERVICE_NOT_ACTIVE, + ERROR_FAILED_SERVICE_CONTROLLER_CONNECT, + ERROR_EXCEPTION_IN_SERVICE, + ERROR_DATABASE_DOES_NOT_EXIST, + ERROR_SERVICE_SPECIFIC_ERROR, + ERROR_PROCESS_ABORTED, + ERROR_SERVICE_DEPENDENCY_FAIL, + ERROR_SERVICE_LOGON_FAILED, + ERROR_SERVICE_START_HANG, + ERROR_INVALID_SERVICE_LOCK, + ERROR_SERVICE_MARKED_FOR_DELETE, + ERROR_SERVICE_EXISTS, + ERROR_ALREADY_RUNNING_LKG, + ERROR_SERVICE_DEPENDENCY_DELETED, + ERROR_BOOT_ALREADY_ACCEPTED, + ERROR_SERVICE_NEVER_STARTED, + ERROR_DUPLICATE_SERVICE_NAME, + ERROR_DIFFERENT_SERVICE_ACCOUNT, + ERROR_CANNOT_DETECT_DRIVER_FAILURE, + ERROR_CANNOT_DETECT_PROCESS_ABORT, + ERROR_NO_RECOVERY_PROGRAM, + ERROR_SERVICE_NOT_IN_EXE, + ERROR_NOT_SAFEBOOT_SERVICE, // = 1084 + ERROR_END_OF_MEDIA = 1100, + ERROR_FILEMARK_DETECTED, + ERROR_BEGINNING_OF_MEDIA, + ERROR_SETMARK_DETECTED, + ERROR_NO_DATA_DETECTED, + ERROR_PARTITION_FAILURE, + ERROR_INVALID_BLOCK_LENGTH, + ERROR_DEVICE_NOT_PARTITIONED, + ERROR_UNABLE_TO_LOCK_MEDIA, + ERROR_UNABLE_TO_UNLOAD_MEDIA, + ERROR_MEDIA_CHANGED, + ERROR_BUS_RESET, + ERROR_NO_MEDIA_IN_DRIVE, + ERROR_NO_UNICODE_TRANSLATION, + ERROR_DLL_INIT_FAILED, + ERROR_SHUTDOWN_IN_PROGRESS, + ERROR_NO_SHUTDOWN_IN_PROGRESS, + ERROR_IO_DEVICE, + ERROR_SERIAL_NO_DEVICE, + ERROR_IRQ_BUSY, + ERROR_MORE_WRITES, + ERROR_COUNTER_TIMEOUT, + ERROR_FLOPPY_ID_MARK_NOT_FOUND, + ERROR_FLOPPY_WRONG_CYLINDER, + ERROR_FLOPPY_UNKNOWN_ERROR, + ERROR_FLOPPY_BAD_REGISTERS, + ERROR_DISK_RECALIBRATE_FAILED, + ERROR_DISK_OPERATION_FAILED, + ERROR_DISK_RESET_FAILED, + ERROR_EOM_OVERFLOW, + ERROR_NOT_ENOUGH_SERVER_MEMORY, + ERROR_POSSIBLE_DEADLOCK, + ERROR_MAPPED_ALIGNMENT, // = 1132 + ERROR_SET_POWER_STATE_VETOED = 1140, + ERROR_SET_POWER_STATE_FAILED, + ERROR_TOO_MANY_LINKS, // = 1142 + ERROR_OLD_WIN_VERSION = 1150, + ERROR_APP_WRONG_OS, + ERROR_SINGLE_INSTANCE_APP, + ERROR_RMODE_APP, + ERROR_INVALID_DLL, + ERROR_NO_ASSOCIATION, + ERROR_DDE_FAIL, + ERROR_DLL_NOT_FOUND, + ERROR_NO_MORE_USER_HANDLES, + ERROR_MESSAGE_SYNC_ONLY, + ERROR_SOURCE_ELEMENT_EMPTY, + ERROR_DESTINATION_ELEMENT_FULL, + ERROR_ILLEGAL_ELEMENT_ADDRESS, + ERROR_MAGAZINE_NOT_PRESENT, + ERROR_DEVICE_REINITIALIZATION_NEEDED, + ERROR_DEVICE_REQUIRES_CLEANING, + ERROR_DEVICE_DOOR_OPEN, + ERROR_DEVICE_NOT_CONNECTED, + ERROR_NOT_FOUND, + ERROR_NO_MATCH, + ERROR_SET_NOT_FOUND, + ERROR_POINT_NOT_FOUND, + ERROR_NO_TRACKING_SERVICE, + ERROR_NO_VOLUME_ID, // = 1173 + ERROR_UNABLE_TO_REMOVE_REPLACED = 1175, + ERROR_UNABLE_TO_MOVE_REPLACEMENT, + ERROR_UNABLE_TO_MOVE_REPLACEMENT_2, + ERROR_JOURNAL_DELETE_IN_PROGRESS, + ERROR_JOURNAL_NOT_ACTIVE, + ERROR_POTENTIAL_FILE_FOUND, + ERROR_JOURNAL_ENTRY_DELETED, // = 1181 + ERROR_BAD_DEVICE = 1200, + ERROR_CONNECTION_UNAVAIL, + ERROR_DEVICE_ALREADY_REMEMBERED, + ERROR_NO_NET_OR_BAD_PATH, + ERROR_BAD_PROVIDER, + ERROR_CANNOT_OPEN_PROFILE, + ERROR_BAD_PROFILE, + ERROR_NOT_CONTAINER, + ERROR_EXTENDED_ERROR, + ERROR_INVALID_GROUPNAME, + ERROR_INVALID_COMPUTERNAME, + ERROR_INVALID_EVENTNAME, + ERROR_INVALID_DOMAINNAME, + ERROR_INVALID_SERVICENAME, + ERROR_INVALID_NETNAME, + ERROR_INVALID_SHARENAME, + ERROR_INVALID_PASSWORDNAME, + ERROR_INVALID_MESSAGENAME, + ERROR_INVALID_MESSAGEDEST, + ERROR_SESSION_CREDENTIAL_CONFLICT, + ERROR_REMOTE_SESSION_LIMIT_EXCEEDED, + ERROR_DUP_DOMAINNAME, + ERROR_NO_NETWORK, + ERROR_CANCELLED, + ERROR_USER_MAPPED_FILE, + ERROR_CONNECTION_REFUSED, + ERROR_GRACEFUL_DISCONNECT, + ERROR_ADDRESS_ALREADY_ASSOCIATED, + ERROR_ADDRESS_NOT_ASSOCIATED, + ERROR_CONNECTION_INVALID, + ERROR_CONNECTION_ACTIVE, + ERROR_NETWORK_UNREACHABLE, + ERROR_HOST_UNREACHABLE, + ERROR_PROTOCOL_UNREACHABLE, + ERROR_PORT_UNREACHABLE, + ERROR_REQUEST_ABORTED, + ERROR_CONNECTION_ABORTED, + ERROR_RETRY, + ERROR_CONNECTION_COUNT_LIMIT, + ERROR_LOGIN_TIME_RESTRICTION, + ERROR_LOGIN_WKSTA_RESTRICTION, + ERROR_INCORRECT_ADDRESS, + ERROR_ALREADY_REGISTERED, + ERROR_SERVICE_NOT_FOUND, + ERROR_NOT_AUTHENTICATED, + ERROR_NOT_LOGGED_ON, + ERROR_CONTINUE, + ERROR_ALREADY_INITIALIZED, + ERROR_NO_MORE_DEVICES, + ERROR_NO_SUCH_SITE, + ERROR_DOMAIN_CONTROLLER_EXISTS, + ERROR_ONLY_IF_CONNECTED, + ERROR_OVERRIDE_NOCHANGES, + ERROR_BAD_USER_PROFILE, + ERROR_NOT_SUPPORTED_ON_SBS, + ERROR_SERVER_SHUTDOWN_IN_PROGRESS, + ERROR_HOST_DOWN, + ERROR_NON_ACCOUNT_SID, + ERROR_NON_DOMAIN_SID, + ERROR_APPHELP_BLOCK, + ERROR_ACCESS_DISABLED_BY_POLICY, + ERROR_REG_NAT_CONSUMPTION, + ERROR_CSCSHARE_OFFLINE, + ERROR_PKINIT_FAILURE, + ERROR_SMARTCARD_SUBSYSTEM_FAILURE, + ERROR_DOWNGRADE_DETECTED, + SEC_E_SMARTCARD_CERT_REVOKED, + SEC_E_ISSUING_CA_UNTRUSTED, + SEC_E_REVOCATION_OFFLINE_C, + SEC_E_PKINIT_CLIENT_FAILUR, + SEC_E_SMARTCARD_CERT_EXPIRED, + ERROR_MACHINE_LOCKED, // = 1271 + ERROR_CALLBACK_SUPPLIED_INVALID_DATA = 1273, + ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED, + ERROR_DRIVER_BLOCKED, + ERROR_INVALID_IMPORT_OF_NON_DLL, + ERROR_ACCESS_DISABLED_WEBBLADE, + ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER, + ERROR_RECOVERY_FAILURE, + ERROR_ALREADY_FIBER, + ERROR_ALREADY_THREAD, + ERROR_STACK_BUFFER_OVERRUN, + ERROR_PARAMETER_QUOTA_EXCEEDED, + ERROR_DEBUGGER_INACTIVE, // = 1284 + ERROR_NOT_ALL_ASSIGNED = 1300, + ERROR_SOME_NOT_MAPPED, + ERROR_NO_QUOTAS_FOR_ACCOUNT, + ERROR_LOCAL_USER_SESSION_KEY, + ERROR_NULL_LM_PASSWORD, + ERROR_UNKNOWN_REVISION, + ERROR_REVISION_MISMATCH, + ERROR_INVALID_OWNER, + ERROR_INVALID_PRIMARY_GROUP, + ERROR_NO_IMPERSONATION_TOKEN, + ERROR_CANT_DISABLE_MANDATORY, + ERROR_NO_LOGON_SERVERS, + ERROR_NO_SUCH_LOGON_SESSION, + ERROR_NO_SUCH_PRIVILEGE, + ERROR_PRIVILEGE_NOT_HELD, + ERROR_INVALID_ACCOUNT_NAME, + ERROR_USER_EXISTS, + ERROR_NO_SUCH_USER, + ERROR_GROUP_EXISTS, + ERROR_NO_SUCH_GROUP, + ERROR_MEMBER_IN_GROUP, + ERROR_MEMBER_NOT_IN_GROUP, + ERROR_LAST_ADMIN, + ERROR_WRONG_PASSWORD, + ERROR_ILL_FORMED_PASSWORD, + ERROR_PASSWORD_RESTRICTION, + ERROR_LOGON_FAILURE, + ERROR_ACCOUNT_RESTRICTION, + ERROR_INVALID_LOGON_HOURS, + ERROR_INVALID_WORKSTATION, + ERROR_PASSWORD_EXPIRED, + ERROR_ACCOUNT_DISABLED, + ERROR_NONE_MAPPED, + ERROR_TOO_MANY_LUIDS_REQUESTED, + ERROR_LUIDS_EXHAUSTED, + ERROR_INVALID_SUB_AUTHORITY, + ERROR_INVALID_ACL, + ERROR_INVALID_SID, + ERROR_INVALID_SECURITY_DESCR, // = 1338 + ERROR_BAD_INHERITANCE_ACL = 1340, + ERROR_SERVER_DISABLED, + ERROR_SERVER_NOT_DISABLED, + ERROR_INVALID_ID_AUTHORITY, + ERROR_ALLOTTED_SPACE_EXCEEDED, + ERROR_INVALID_GROUP_ATTRIBUTES, + ERROR_BAD_IMPERSONATION_LEVEL, + ERROR_CANT_OPEN_ANONYMOUS, + ERROR_BAD_VALIDATION_CLASS, + ERROR_BAD_TOKEN_TYPE, + ERROR_NO_SECURITY_ON_OBJECT, + ERROR_CANT_ACCESS_DOMAIN_INFO, + ERROR_INVALID_SERVER_STATE, + ERROR_INVALID_DOMAIN_STATE, + ERROR_INVALID_DOMAIN_ROLE, + ERROR_NO_SUCH_DOMAIN, + ERROR_DOMAIN_EXISTS, + ERROR_DOMAIN_LIMIT_EXCEEDED, + ERROR_INTERNAL_DB_CORRUPTION, + ERROR_INTERNAL_ERROR, + ERROR_GENERIC_NOT_MAPPED, + ERROR_BAD_DESCRIPTOR_FORMAT, + ERROR_NOT_LOGON_PROCESS, + ERROR_LOGON_SESSION_EXISTS, + ERROR_NO_SUCH_PACKAGE, + ERROR_BAD_LOGON_SESSION_STATE, + ERROR_LOGON_SESSION_COLLISION, + ERROR_INVALID_LOGON_TYPE, + ERROR_CANNOT_IMPERSONATE, + ERROR_RXACT_INVALID_STATE, + ERROR_RXACT_COMMIT_FAILURE, + ERROR_SPECIAL_ACCOUNT, + ERROR_SPECIAL_GROUP, + ERROR_SPECIAL_USER, + ERROR_MEMBERS_PRIMARY_GROUP, + ERROR_TOKEN_ALREADY_IN_USE, + ERROR_NO_SUCH_ALIAS, + ERROR_MEMBER_NOT_IN_ALIAS, + ERROR_MEMBER_IN_ALIAS, + ERROR_ALIAS_EXISTS, + ERROR_LOGON_NOT_GRANTED, + ERROR_TOO_MANY_SECRETS, + ERROR_SECRET_TOO_LONG, + ERROR_INTERNAL_DB_ERROR, + ERROR_TOO_MANY_CONTEXT_IDS, + ERROR_LOGON_TYPE_NOT_GRANTED, + ERROR_NT_CROSS_ENCRYPTION_REQUIRED, + ERROR_NO_SUCH_MEMBER, + ERROR_INVALID_MEMBER, + ERROR_TOO_MANY_SIDS, + ERROR_LM_CROSS_ENCRYPTION_REQUIRED, + ERROR_NO_INHERITANCE, + ERROR_FILE_CORRUPT, + ERROR_DISK_CORRUPT, + ERROR_NO_USER_SESSION_KEY, + ERROR_LICENSE_QUOTA_EXCEEDED, + ERROR_WRONG_TARGET_NAME, + ERROR_MUTUAL_AUTH_FAILED, + ERROR_TIME_SKEW, + ERROR_CURRENT_DOMAIN_NOT_ALLOWED, + ERROR_INVALID_WINDOW_HANDLE, + ERROR_INVALID_MENU_HANDLE, + ERROR_INVALID_CURSOR_HANDLE, + ERROR_INVALID_ACCEL_HANDLE, + ERROR_INVALID_HOOK_HANDLE, + ERROR_INVALID_DWP_HANDLE, + ERROR_TLW_WITH_WSCHILD, + ERROR_CANNOT_FIND_WND_CLASS, + ERROR_WINDOW_OF_OTHER_THREAD, + ERROR_HOTKEY_ALREADY_REGISTERED, + ERROR_CLASS_ALREADY_EXISTS, + ERROR_CLASS_DOES_NOT_EXIST, + ERROR_CLASS_HAS_WINDOWS, + ERROR_INVALID_INDEX, + ERROR_INVALID_ICON_HANDLE, + ERROR_PRIVATE_DIALOG_INDEX, + ERROR_LISTBOX_ID_NOT_FOUND, + ERROR_NO_WILDCARD_CHARACTERS, + ERROR_CLIPBOARD_NOT_OPEN, + ERROR_HOTKEY_NOT_REGISTERED, + ERROR_WINDOW_NOT_DIALOG, + ERROR_CONTROL_ID_NOT_FOUND, + ERROR_INVALID_COMBOBOX_MESSAGE, + ERROR_WINDOW_NOT_COMBOBOX, + ERROR_INVALID_EDIT_HEIGHT, + ERROR_DC_NOT_FOUND, + ERROR_INVALID_HOOK_FILTER, + ERROR_INVALID_FILTER_PROC, + ERROR_HOOK_NEEDS_HMOD, + ERROR_GLOBAL_ONLY_HOOK, + ERROR_JOURNAL_HOOK_SET, + ERROR_HOOK_NOT_INSTALLED, + ERROR_INVALID_LB_MESSAGE, + ERROR_SETCOUNT_ON_BAD_LB, + ERROR_LB_WITHOUT_TABSTOPS, + ERROR_DESTROY_OBJECT_OF_OTHER_THREAD, + ERROR_CHILD_WINDOW_MENU, + ERROR_NO_SYSTEM_MENU, + ERROR_INVALID_MSGBOX_STYLE, + ERROR_INVALID_SPI_VALUE, + ERROR_SCREEN_ALREADY_LOCKED, + ERROR_HWNDS_HAVE_DIFF_PARENT, + ERROR_NOT_CHILD_WINDOW, + ERROR_INVALID_GW_COMMAND, + ERROR_INVALID_THREAD_ID, + ERROR_NON_MDICHILD_WINDOW, + ERROR_POPUP_ALREADY_ACTIVE, + ERROR_NO_SCROLLBARS, + ERROR_INVALID_SCROLLBAR_RANGE, + ERROR_INVALID_SHOWWIN_COMMAND, + ERROR_NO_SYSTEM_RESOURCES, + ERROR_NONPAGED_SYSTEM_RESOURCES, + ERROR_PAGED_SYSTEM_RESOURCES, + ERROR_WORKING_SET_QUOTA, + ERROR_PAGEFILE_QUOTA, + ERROR_COMMITMENT_LIMIT, + ERROR_MENU_ITEM_NOT_FOUND, + ERROR_INVALID_KEYBOARD_HANDLE, + ERROR_HOOK_TYPE_NOT_ALLOWED, + ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION, + ERROR_TIMEOUT, + ERROR_INVALID_MONITOR_HANDLE, // = 1461 + ERROR_EVENTLOG_FILE_CORRUPT = 1500, + ERROR_EVENTLOG_CANT_START, + ERROR_LOG_FILE_FULL, + ERROR_EVENTLOG_FILE_CHANGED, // = 1503 + ERROR_INSTALL_SERVICE_FAILURE = 1601, + ERROR_INSTALL_USEREXIT, + ERROR_INSTALL_FAILURE, + ERROR_INSTALL_SUSPEND, + ERROR_UNKNOWN_PRODUCT, + ERROR_UNKNOWN_FEATURE, + ERROR_UNKNOWN_COMPONENT, + ERROR_UNKNOWN_PROPERTY, + ERROR_INVALID_HANDLE_STATE, + ERROR_BAD_CONFIGURATION, + ERROR_INDEX_ABSENT, + ERROR_INSTALL_SOURCE_ABSENT, + ERROR_INSTALL_PACKAGE_VERSION, + ERROR_PRODUCT_UNINSTALLED, + ERROR_BAD_QUERY_SYNTAX, + ERROR_INVALID_FIELD, + ERROR_DEVICE_REMOVED, + ERROR_INSTALL_ALREADY_RUNNING, + ERROR_INSTALL_PACKAGE_OPEN_FAILED, + ERROR_INSTALL_PACKAGE_INVALID, + ERROR_INSTALL_UI_FAILURE, + ERROR_INSTALL_LOG_FAILURE, + ERROR_INSTALL_LANGUAGE_UNSUPPORTED, + ERROR_INSTALL_TRANSFORM_FAILURE, + ERROR_INSTALL_PACKAGE_REJECTED, + ERROR_FUNCTION_NOT_CALLED, + ERROR_FUNCTION_FAILED, + ERROR_INVALID_TABLE, + ERROR_DATATYPE_MISMATCH, + ERROR_UNSUPPORTED_TYPE, + ERROR_CREATE_FAILED, + ERROR_INSTALL_TEMP_UNWRITABLE, + ERROR_INSTALL_PLATFORM_UNSUPPORTED, + ERROR_INSTALL_NOTUSED, + ERROR_PATCH_PACKAGE_OPEN_FAILED, + ERROR_PATCH_PACKAGE_INVALID, + ERROR_PATCH_PACKAGE_UNSUPPORTED, + ERROR_PRODUCT_VERSION, + ERROR_INVALID_COMMAND_LINE, + ERROR_INSTALL_REMOTE_DISALLOWED, + ERROR_SUCCESS_REBOOT_INITIATED, + ERROR_PATCH_TARGET_NOT_FOUND, + ERROR_PATCH_PACKAGE_REJECTED, + ERROR_INSTALL_TRANSFORM_REJECTED, + ERROR_INSTALL_REMOTE_PROHIBITED, // = 1645 + RPC_S_INVALID_STRING_BINDING = 1700, + RPC_S_WRONG_KIND_OF_BINDING, + RPC_S_INVALID_BINDING, + RPC_S_PROTSEQ_NOT_SUPPORTED, + RPC_S_INVALID_RPC_PROTSEQ, + RPC_S_INVALID_STRING_UUID, + RPC_S_INVALID_ENDPOINT_FORMAT, + RPC_S_INVALID_NET_ADDR, + RPC_S_NO_ENDPOINT_FOUND, + RPC_S_INVALID_TIMEOUT, + RPC_S_OBJECT_NOT_FOUND, + RPC_S_ALREADY_REGISTERED, + RPC_S_TYPE_ALREADY_REGISTERED, + RPC_S_ALREADY_LISTENING, + RPC_S_NO_PROTSEQS_REGISTERED, + RPC_S_NOT_LISTENING, + RPC_S_UNKNOWN_MGR_TYPE, + RPC_S_UNKNOWN_IF, + RPC_S_NO_BINDINGS, + RPC_S_NO_PROTSEQS, + RPC_S_CANT_CREATE_ENDPOINT, + RPC_S_OUT_OF_RESOURCES, + RPC_S_SERVER_UNAVAILABLE, + RPC_S_SERVER_TOO_BUSY, + RPC_S_INVALID_NETWORK_OPTIONS, + RPC_S_NO_CALL_ACTIVE, + RPC_S_CALL_FAILED, + RPC_S_CALL_FAILED_DNE, + RPC_S_PROTOCOL_ERROR, // = 1728 + RPC_S_UNSUPPORTED_TRANS_SYN = 1730, + RPC_S_UNSUPPORTED_TYPE = 1732, + RPC_S_INVALID_TAG, + RPC_S_INVALID_BOUND, + RPC_S_NO_ENTRY_NAME, + RPC_S_INVALID_NAME_SYNTAX, + RPC_S_UNSUPPORTED_NAME_SYNTAX, // = 1737 + RPC_S_UUID_NO_ADDRESS = 1739, + RPC_S_DUPLICATE_ENDPOINT, + RPC_S_UNKNOWN_AUTHN_TYPE, + RPC_S_MAX_CALLS_TOO_SMALL, + RPC_S_STRING_TOO_LONG, + RPC_S_PROTSEQ_NOT_FOUND, + RPC_S_PROCNUM_OUT_OF_RANGE, + RPC_S_BINDING_HAS_NO_AUTH, + RPC_S_UNKNOWN_AUTHN_SERVICE, + RPC_S_UNKNOWN_AUTHN_LEVEL, + RPC_S_INVALID_AUTH_IDENTITY, + RPC_S_UNKNOWN_AUTHZ_SERVICE, + EPT_S_INVALID_ENTRY, + EPT_S_CANT_PERFORM_OP, + EPT_S_NOT_REGISTERED, + RPC_S_NOTHING_TO_EXPORT, + RPC_S_INCOMPLETE_NAME, + RPC_S_INVALID_VERS_OPTION, + RPC_S_NO_MORE_MEMBERS, + RPC_S_NOT_ALL_OBJS_UNEXPORTED, + RPC_S_INTERFACE_NOT_FOUND, + RPC_S_ENTRY_ALREADY_EXISTS, + RPC_S_ENTRY_NOT_FOUND, + RPC_S_NAME_SERVICE_UNAVAILABLE, + RPC_S_INVALID_NAF_ID, + RPC_S_CANNOT_SUPPORT, + RPC_S_NO_CONTEXT_AVAILABLE, + RPC_S_INTERNAL_ERROR, + RPC_S_ZERO_DIVIDE, + RPC_S_ADDRESS_ERROR, + RPC_S_FP_DIV_ZERO, + RPC_S_FP_UNDERFLOW, + RPC_S_FP_OVERFLOW, + RPC_X_NO_MORE_ENTRIES, + RPC_X_SS_CHAR_TRANS_OPEN_FAIL, + RPC_X_SS_CHAR_TRANS_SHORT_FILE, + RPC_X_SS_IN_NULL_CONTEXT, // = 1775 + RPC_X_SS_CONTEXT_DAMAGED = 1777, + RPC_X_SS_HANDLES_MISMATCH, + RPC_X_SS_CANNOT_GET_CALL_HANDLE, + RPC_X_NULL_REF_POINTER, + RPC_X_ENUM_VALUE_OUT_OF_RANGE, + RPC_X_BYTE_COUNT_TOO_SMALL, + RPC_X_BAD_STUB_DATA, + ERROR_INVALID_USER_BUFFER, + ERROR_UNRECOGNIZED_MEDIA, + ERROR_NO_TRUST_LSA_SECRET, + ERROR_NO_TRUST_SAM_ACCOUNT, + ERROR_TRUSTED_DOMAIN_FAILURE, + ERROR_TRUSTED_RELATIONSHIP_FAILURE, + ERROR_TRUST_FAILURE, + RPC_S_CALL_IN_PROGRESS, + ERROR_NETLOGON_NOT_STARTED, + ERROR_ACCOUNT_EXPIRED, + ERROR_REDIRECTOR_HAS_OPEN_HANDLES, + ERROR_PRINTER_DRIVER_ALREADY_INSTALLED, + ERROR_UNKNOWN_PORT, + ERROR_UNKNOWN_PRINTER_DRIVER, + ERROR_UNKNOWN_PRINTPROCESSOR, + ERROR_INVALID_SEPARATOR_FILE, + ERROR_INVALID_PRIORITY, + ERROR_INVALID_PRINTER_NAME, + ERROR_PRINTER_ALREADY_EXISTS, + ERROR_INVALID_PRINTER_COMMAND, + ERROR_INVALID_DATATYPE, + ERROR_INVALID_ENVIRONMENT, + RPC_S_NO_MORE_BINDINGS, + ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT, + ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT, + ERROR_NOLOGON_SERVER_TRUST_ACCOUNT, + ERROR_DOMAIN_TRUST_INCONSISTENT, + ERROR_SERVER_HAS_OPEN_HANDLES, + ERROR_RESOURCE_DATA_NOT_FOUND, + ERROR_RESOURCE_TYPE_NOT_FOUND, + ERROR_RESOURCE_NAME_NOT_FOUND, + ERROR_RESOURCE_LANG_NOT_FOUND, + ERROR_NOT_ENOUGH_QUOTA, + RPC_S_NO_INTERFACES, + RPC_S_CALL_CANCELLED, + RPC_S_BINDING_INCOMPLETE, + RPC_S_COMM_FAILURE, + RPC_S_UNSUPPORTED_AUTHN_LEVEL, + RPC_S_NO_PRINC_NAME, + RPC_S_NOT_RPC_ERROR, + RPC_S_UUID_LOCAL_ONLY, + RPC_S_SEC_PKG_ERROR, + RPC_S_NOT_CANCELLED, + RPC_X_INVALID_ES_ACTION, + RPC_X_WRONG_ES_VERSION, + RPC_X_WRONG_STUB_VERSION, + RPC_X_INVALID_PIPE_OBJECT, + RPC_X_WRONG_PIPE_ORDER, + RPC_X_WRONG_PIPE_VERSION, // = 1832 + RPC_S_GROUP_MEMBER_NOT_FOUND = 1898, + EPT_S_CANT_CREATE, + RPC_S_INVALID_OBJECT, + ERROR_INVALID_TIME, + ERROR_INVALID_FORM_NAME, + ERROR_INVALID_FORM_SIZE, + ERROR_ALREADY_WAITING, + ERROR_PRINTER_DELETED, + ERROR_INVALID_PRINTER_STATE, + ERROR_PASSWORD_MUST_CHANGE, + ERROR_DOMAIN_CONTROLLER_NOT_FOUND, + ERROR_ACCOUNT_LOCKED_OUT, + OR_INVALID_OXID, + OR_INVALID_OID, + OR_INVALID_SET, + RPC_S_SEND_INCOMPLETE, + RPC_S_INVALID_ASYNC_HANDLE, + RPC_S_INVALID_ASYNC_CALL, + RPC_X_PIPE_CLOSED, + RPC_X_PIPE_DISCIPLINE_ERROR, + RPC_X_PIPE_EMPTY, + ERROR_NO_SITENAME, + ERROR_CANT_ACCESS_FILE, + ERROR_CANT_RESOLVE_FILENAME, + RPC_S_ENTRY_TYPE_MISMATCH, + RPC_S_NOT_ALL_OBJS_EXPORTED, + RPC_S_INTERFACE_NOT_EXPORTED, + RPC_S_PROFILE_NOT_ADDED, + RPC_S_PRF_ELT_NOT_ADDED, + RPC_S_PRF_ELT_NOT_REMOVED, + RPC_S_GRP_ELT_NOT_ADDED, + RPC_S_GRP_ELT_NOT_REMOVED, + ERROR_KM_DRIVER_BLOCKED, + ERROR_CONTEXT_EXPIRED, + ERROR_PER_USER_TRUST_QUOTA_EXCEEDED, + ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED, + ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED, // = 1934 + ERROR_INVALID_PIXEL_FORMAT = 2000, + ERROR_BAD_DRIVER, + ERROR_INVALID_WINDOW_STYLE, + ERROR_METAFILE_NOT_SUPPORTED, + ERROR_TRANSFORM_NOT_SUPPORTED, + ERROR_CLIPPING_NOT_SUPPORTED, // = 2005 + ERROR_INVALID_CMM = 2010, + ERROR_INVALID_PROFILE, + ERROR_TAG_NOT_FOUND, + ERROR_TAG_NOT_PRESENT, + ERROR_DUPLICATE_TAG, + ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE, + ERROR_PROFILE_NOT_FOUND, + ERROR_INVALID_COLORSPACE, + ERROR_ICM_NOT_ENABLED, + ERROR_DELETING_ICM_XFORM, + ERROR_INVALID_TRANSFORM, + ERROR_COLORSPACE_MISMATCH, + ERROR_INVALID_COLORINDEX, // = 2022 + ERROR_CONNECTED_OTHER_PASSWORD = 2108, + ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT, // = 2109 + ERROR_BAD_USERNAME = 2202, + ERROR_NOT_CONNECTED = 2250, + ERROR_OPEN_FILES = 2401, + ERROR_ACTIVE_CONNECTIONS, // = 2402 + ERROR_DEVICE_IN_USE = 2404, + ERROR_UNKNOWN_PRINT_MONITOR = 3000, + ERROR_PRINTER_DRIVER_IN_USE, + ERROR_SPOOL_FILE_NOT_FOUND, + ERROR_SPL_NO_STARTDOC, + ERROR_SPL_NO_ADDJOB, + ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED, + ERROR_PRINT_MONITOR_ALREADY_INSTALLED, + ERROR_INVALID_PRINT_MONITOR, + ERROR_PRINT_MONITOR_IN_USE, + ERROR_PRINTER_HAS_JOBS_QUEUED, + ERROR_SUCCESS_REBOOT_REQUIRED, + ERROR_SUCCESS_RESTART_REQUIRED, + ERROR_PRINTER_NOT_FOUND, + ERROR_PRINTER_DRIVER_WARNED, + ERROR_PRINTER_DRIVER_BLOCKED, // = 3014 + ERROR_WINS_INTERNAL = 4000, + ERROR_CAN_NOT_DEL_LOCAL_WINS, + ERROR_STATIC_INIT, + ERROR_INC_BACKUP, + ERROR_FULL_BACKUP, + ERROR_REC_NON_EXISTENT, + ERROR_RPL_NOT_ALLOWED, // = 4006 + ERROR_DHCP_ADDRESS_CONFLICT = 4100, + ERROR_WMI_GUID_NOT_FOUND = 4200, + ERROR_WMI_INSTANCE_NOT_FOUND, + ERROR_WMI_ITEMID_NOT_FOUND, + ERROR_WMI_TRY_AGAIN, + ERROR_WMI_DP_NOT_FOUND, + ERROR_WMI_UNRESOLVED_INSTANCE_REF, + ERROR_WMI_ALREADY_ENABLED, + ERROR_WMI_GUID_DISCONNECTED, + ERROR_WMI_SERVER_UNAVAILABLE, + ERROR_WMI_DP_FAILED, + ERROR_WMI_INVALID_MOF, + ERROR_WMI_INVALID_REGINFO, + ERROR_WMI_ALREADY_DISABLED, + ERROR_WMI_READ_ONLY, + ERROR_WMI_SET_FAILURE, // = 4214 + ERROR_INVALID_MEDIA = 4300, + ERROR_INVALID_LIBRARY, + ERROR_INVALID_MEDIA_POOL, + ERROR_DRIVE_MEDIA_MISMATCH, + ERROR_MEDIA_OFFLINE, + ERROR_LIBRARY_OFFLINE, + ERROR_EMPTY, + ERROR_NOT_EMPTY, + ERROR_MEDIA_UNAVAILABLE, + ERROR_RESOURCE_DISABLED, + ERROR_INVALID_CLEANER, + ERROR_UNABLE_TO_CLEAN, + ERROR_OBJECT_NOT_FOUND, + ERROR_DATABASE_FAILURE, + ERROR_DATABASE_FULL, + ERROR_MEDIA_INCOMPATIBLE, + ERROR_RESOURCE_NOT_PRESENT, + ERROR_INVALID_OPERATION, + ERROR_MEDIA_NOT_AVAILABLE, + ERROR_DEVICE_NOT_AVAILABLE, + ERROR_REQUEST_REFUSED, + ERROR_INVALID_DRIVE_OBJECT, + ERROR_LIBRARY_FULL, + ERROR_MEDIUM_NOT_ACCESSIBLE, + ERROR_UNABLE_TO_LOAD_MEDIUM, + ERROR_UNABLE_TO_INVENTORY_DRIVE, + ERROR_UNABLE_TO_INVENTORY_SLOT, + ERROR_UNABLE_TO_INVENTORY_TRANSPORT, + ERROR_TRANSPORT_FULL, + ERROR_CONTROLLING_IEPORT, + ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA, + ERROR_CLEANER_SLOT_SET, + ERROR_CLEANER_SLOT_NOT_SET, + ERROR_CLEANER_CARTRIDGE_SPENT, + ERROR_UNEXPECTED_OMID, + ERROR_CANT_DELETE_LAST_ITEM, + ERROR_MESSAGE_EXCEEDS_MAX_SIZE, + ERROR_VOLUME_CONTAINS_SYS_FILES, + ERROR_INDIGENOUS_TYPE, + ERROR_NO_SUPPORTING_DRIVES, + ERROR_CLEANER_CARTRIDGE_INSTALLED, // = 4340 + ERROR_FILE_OFFLINE = 4350, + ERROR_REMOTE_STORAGE_NOT_ACTIVE, + ERROR_REMOTE_STORAGE_MEDIA_ERROR, // = 4352 + ERROR_NOT_A_REPARSE_POINT = 4390, + ERROR_REPARSE_ATTRIBUTE_CONFLICT, + ERROR_INVALID_REPARSE_DATA, + ERROR_REPARSE_TAG_INVALID, + ERROR_REPARSE_TAG_MISMATCH, // = 4394 + ERROR_VOLUME_NOT_SIS_ENABLED = 4500, + ERROR_DEPENDENT_RESOURCE_EXISTS = 5001, + ERROR_DEPENDENCY_NOT_FOUND, + ERROR_DEPENDENCY_ALREADY_EXISTS, + ERROR_RESOURCE_NOT_ONLINE, + ERROR_HOST_NODE_NOT_AVAILABLE, + ERROR_RESOURCE_NOT_AVAILABLE, + ERROR_RESOURCE_NOT_FOUND, + ERROR_SHUTDOWN_CLUSTER, + ERROR_CANT_EVICT_ACTIVE_NODE, + ERROR_OBJECT_ALREADY_EXISTS, + ERROR_OBJECT_IN_LIST, + ERROR_GROUP_NOT_AVAILABLE, + ERROR_GROUP_NOT_FOUND, + ERROR_GROUP_NOT_ONLINE, + ERROR_HOST_NODE_NOT_RESOURCE_OWNER, + ERROR_HOST_NODE_NOT_GROUP_OWNER, + ERROR_RESMON_CREATE_FAILED, + ERROR_RESMON_ONLINE_FAILED, + ERROR_RESOURCE_ONLINE, + ERROR_QUORUM_RESOURCE, + ERROR_NOT_QUORUM_CAPABLE, + ERROR_CLUSTER_SHUTTING_DOWN, + ERROR_INVALID_STATE, + ERROR_RESOURCE_PROPERTIES_STORED, + ERROR_NOT_QUORUM_CLASS, + ERROR_CORE_RESOURCE, + ERROR_QUORUM_RESOURCE_ONLINE_FAILED, + ERROR_QUORUMLOG_OPEN_FAILED, + ERROR_CLUSTERLOG_CORRUPT, + ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE, + ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE, + ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND, + ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE, + ERROR_QUORUM_OWNER_ALIVE, + ERROR_NETWORK_NOT_AVAILABLE, + ERROR_NODE_NOT_AVAILABLE, + ERROR_ALL_NODES_NOT_AVAILABLE, + ERROR_RESOURCE_FAILED, + ERROR_CLUSTER_INVALID_NODE, + ERROR_CLUSTER_NODE_EXISTS, + ERROR_CLUSTER_JOIN_IN_PROGRESS, + ERROR_CLUSTER_NODE_NOT_FOUND, + ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND, + ERROR_CLUSTER_NETWORK_EXISTS, + ERROR_CLUSTER_NETWORK_NOT_FOUND, + ERROR_CLUSTER_NETINTERFACE_EXISTS, + ERROR_CLUSTER_NETINTERFACE_NOT_FOUND, + ERROR_CLUSTER_INVALID_REQUEST, + ERROR_CLUSTER_INVALID_NETWORK_PROVIDER, + ERROR_CLUSTER_NODE_DOWN, + ERROR_CLUSTER_NODE_UNREACHABLE, + ERROR_CLUSTER_NODE_NOT_MEMBER, + ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS, + ERROR_CLUSTER_INVALID_NETWORK, // = 5054 + ERROR_CLUSTER_NODE_UP = 5056, + ERROR_CLUSTER_IPADDR_IN_USE, + ERROR_CLUSTER_NODE_NOT_PAUSED, + ERROR_CLUSTER_NO_SECURITY_CONTEXT, + ERROR_CLUSTER_NETWORK_NOT_INTERNAL, + ERROR_CLUSTER_NODE_ALREADY_UP, + ERROR_CLUSTER_NODE_ALREADY_DOWN, + ERROR_CLUSTER_NETWORK_ALREADY_ONLINE, + ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE, + ERROR_CLUSTER_NODE_ALREADY_MEMBER, + ERROR_CLUSTER_LAST_INTERNAL_NETWORK, + ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS, + ERROR_INVALID_OPERATION_ON_QUORUM, + ERROR_DEPENDENCY_NOT_ALLOWED, + ERROR_CLUSTER_NODE_PAUSED, + ERROR_NODE_CANT_HOST_RESOURCE, + ERROR_CLUSTER_NODE_NOT_READY, + ERROR_CLUSTER_NODE_SHUTTING_DOWN, + ERROR_CLUSTER_JOIN_ABORTED, + ERROR_CLUSTER_INCOMPATIBLE_VERSIONS, + ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED, + ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED, + ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND, + ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED, + ERROR_CLUSTER_RESNAME_NOT_FOUND, + ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED, + ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST, + ERROR_CLUSTER_DATABASE_SEQMISMATCH, + ERROR_RESMON_INVALID_STATE, + ERROR_CLUSTER_GUM_NOT_LOCKER, + ERROR_QUORUM_DISK_NOT_FOUND, + ERROR_DATABASE_BACKUP_CORRUPT, + ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT, + ERROR_RESOURCE_PROPERTY_UNCHANGEABLE, // = 5089 + ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE = 5890, + ERROR_CLUSTER_QUORUMLOG_NOT_FOUND, + ERROR_CLUSTER_MEMBERSHIP_HALT, + ERROR_CLUSTER_INSTANCE_ID_MISMATCH, + ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP, + ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH, + ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP, + ERROR_CLUSTER_PARAMETER_MISMATCH, + ERROR_NODE_CANNOT_BE_CLUSTERED, + ERROR_CLUSTER_WRONG_OS_VERSION, + ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME, + ERROR_CLUSCFG_ALREADY_COMMITTED, + ERROR_CLUSCFG_ROLLBACK_FAILED, + ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT, + ERROR_CLUSTER_OLD_VERSION, + ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME, // = 5905 + ERROR_ENCRYPTION_FAILED = 6000, + ERROR_DECRYPTION_FAILED, + ERROR_FILE_ENCRYPTED, + ERROR_NO_RECOVERY_POLICY, + ERROR_NO_EFS, + ERROR_WRONG_EFS, + ERROR_NO_USER_KEYS, + ERROR_FILE_NOT_ENCRYPTED, + ERROR_NOT_EXPORT_FORMAT, + ERROR_FILE_READ_ONLY, + ERROR_DIR_EFS_DISALLOWED, + ERROR_EFS_SERVER_NOT_TRUSTED, + ERROR_BAD_RECOVERY_POLICY, + ERROR_EFS_ALG_BLOB_TOO_BIG, + ERROR_VOLUME_NOT_SUPPORT_EFS, + ERROR_EFS_DISABLED, + ERROR_EFS_VERSION_NOT_SUPPORT, // = 6016 + ERROR_NO_BROWSER_SERVERS_FOUND = 6118, + SCHED_E_SERVICE_NOT_LOCALSYSTEM = 6200, + + ERROR_CTX_WINSTATION_NAME_INVALID = 7001, + ERROR_CTX_INVALID_PD, + ERROR_CTX_PD_NOT_FOUND, + ERROR_CTX_WD_NOT_FOUND, + ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY, + ERROR_CTX_SERVICE_NAME_COLLISION, + ERROR_CTX_CLOSE_PENDING, + ERROR_CTX_NO_OUTBUF, + ERROR_CTX_MODEM_INF_NOT_FOUND, + ERROR_CTX_INVALID_MODEMNAME, + ERROR_CTX_MODEM_RESPONSE_ERROR, + ERROR_CTX_MODEM_RESPONSE_TIMEOUT, + ERROR_CTX_MODEM_RESPONSE_NO_CARRIER, + ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE, + ERROR_CTX_MODEM_RESPONSE_BUSY, + ERROR_CTX_MODEM_RESPONSE_VOICE, + ERROR_CTX_TD_ERROR, // = 7017 + ERROR_CTX_WINSTATION_NOT_FOUND = 7022, + ERROR_CTX_WINSTATION_ALREADY_EXISTS, + ERROR_CTX_WINSTATION_BUSY, + ERROR_CTX_BAD_VIDEO_MODE, // = 7025 + ERROR_CTX_GRAPHICS_INVALID = 7035, + ERROR_CTX_LOGON_DISABLED = 7037, + ERROR_CTX_NOT_CONSOLE, // = 7038 + ERROR_CTX_CLIENT_QUERY_TIMEOUT = 7040, + ERROR_CTX_CONSOLE_DISCONNECT, + ERROR_CTX_CONSOLE_CONNECT, // = 7042 + ERROR_CTX_SHADOW_DENIED = 7044, + ERROR_CTX_WINSTATION_ACCESS_DENIED, // = 7045 + ERROR_CTX_INVALID_WD = 7049, + ERROR_CTX_SHADOW_INVALID, + ERROR_CTX_SHADOW_DISABLED, + ERROR_CTX_CLIENT_LICENSE_IN_USE, + ERROR_CTX_CLIENT_LICENSE_NOT_SET, + ERROR_CTX_LICENSE_NOT_AVAILABLE, + ERROR_CTX_LICENSE_CLIENT_INVALID, + ERROR_CTX_LICENSE_EXPIRED, + ERROR_CTX_SHADOW_NOT_RUNNING, + ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE, + ERROR_ACTIVATION_COUNT_EXCEEDED, // = 7059 + + FRS_ERR_INVALID_API_SEQUENCE = 8001, + FRS_ERR_STARTING_SERVICE, + FRS_ERR_STOPPING_SERVICE, + FRS_ERR_INTERNAL_API, + FRS_ERR_INTERNAL, + FRS_ERR_SERVICE_COMM, + FRS_ERR_INSUFFICIENT_PRIV, + FRS_ERR_AUTHENTICATION, + FRS_ERR_PARENT_INSUFFICIENT_PRIV, + FRS_ERR_PARENT_AUTHENTICATION, + FRS_ERR_CHILD_TO_PARENT_COMM, + FRS_ERR_PARENT_TO_CHILD_COMM, + FRS_ERR_SYSVOL_POPULATE, + FRS_ERR_SYSVOL_POPULATE_TIMEOUT, + FRS_ERR_SYSVOL_IS_BUSY, + FRS_ERR_SYSVOL_DEMOTE, + FRS_ERR_INVALID_SERVICE_PARAMETER, // = 8017 + ERROR_DS_NOT_INSTALLED = 8200, + ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY, + ERROR_DS_NO_ATTRIBUTE_OR_VALUE, + ERROR_DS_INVALID_ATTRIBUTE_SYNTAX, + ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED, + ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS, + ERROR_DS_BUSY, + ERROR_DS_UNAVAILABLE, + ERROR_DS_NO_RIDS_ALLOCATED, + ERROR_DS_NO_MORE_RIDS, + ERROR_DS_INCORRECT_ROLE_OWNER, + ERROR_DS_RIDMGR_INIT_ERROR, + ERROR_DS_OBJ_CLASS_VIOLATION, + ERROR_DS_CANT_ON_NON_LEAF, + ERROR_DS_CANT_ON_RDN, + ERROR_DS_CANT_MOD_OBJ_CLASS, + ERROR_DS_CROSS_DOM_MOVE_ERROR, + ERROR_DS_GC_NOT_AVAILABLE, + ERROR_SHARED_POLICY, + ERROR_POLICY_OBJECT_NOT_FOUND, + ERROR_POLICY_ONLY_IN_DS, + ERROR_PROMOTION_ACTIVE, + ERROR_NO_PROMOTION_ACTIVE, // = 8222 + ERROR_DS_OPERATIONS_ERROR = 8224, + ERROR_DS_PROTOCOL_ERROR, + ERROR_DS_TIMELIMIT_EXCEEDED, + ERROR_DS_SIZELIMIT_EXCEEDED, + ERROR_DS_ADMIN_LIMIT_EXCEEDED, + ERROR_DS_COMPARE_FALSE, + ERROR_DS_COMPARE_TRUE, + ERROR_DS_AUTH_METHOD_NOT_SUPPORTED, + ERROR_DS_STRONG_AUTH_REQUIRED, + ERROR_DS_INAPPROPRIATE_AUTH, + ERROR_DS_AUTH_UNKNOWN, + ERROR_DS_REFERRAL, + ERROR_DS_UNAVAILABLE_CRIT_EXTENSION, + ERROR_DS_CONFIDENTIALITY_REQUIRED, + ERROR_DS_INAPPROPRIATE_MATCHING, + ERROR_DS_CONSTRAINT_VIOLATION, + ERROR_DS_NO_SUCH_OBJECT, + ERROR_DS_ALIAS_PROBLEM, + ERROR_DS_INVALID_DN_SYNTAX, + ERROR_DS_IS_LEAF, + ERROR_DS_ALIAS_DEREF_PROBLEM, + ERROR_DS_UNWILLING_TO_PERFORM, + ERROR_DS_LOOP_DETECT, + ERROR_DS_NAMING_VIOLATION, + ERROR_DS_OBJECT_RESULTS_TOO_LARGE, + ERROR_DS_AFFECTS_MULTIPLE_DSAS, + ERROR_DS_SERVER_DOWN, + ERROR_DS_LOCAL_ERROR, + ERROR_DS_ENCODING_ERROR, + ERROR_DS_DECODING_ERROR, + ERROR_DS_FILTER_UNKNOWN, + ERROR_DS_PARAM_ERROR, + ERROR_DS_NOT_SUPPORTED, + ERROR_DS_NO_RESULTS_RETURNED, + ERROR_DS_CONTROL_NOT_FOUND, + ERROR_DS_CLIENT_LOOP, + ERROR_DS_REFERRAL_LIMIT_EXCEEDED, + ERROR_DS_SORT_CONTROL_MISSING, + ERROR_DS_OFFSET_RANGE_ERROR, // = 8262 + ERROR_DS_ROOT_MUST_BE_NC = 8301, + ERROR_DS_ADD_REPLICA_INHIBITED, + ERROR_DS_ATT_NOT_DEF_IN_SCHEMA, + ERROR_DS_MAX_OBJ_SIZE_EXCEEDED, + ERROR_DS_OBJ_STRING_NAME_EXISTS, + ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA, + ERROR_DS_RDN_DOESNT_MATCH_SCHEMA, + ERROR_DS_NO_REQUESTED_ATTS_FOUND, + ERROR_DS_USER_BUFFER_TO_SMALL, + ERROR_DS_ATT_IS_NOT_ON_OBJ, + ERROR_DS_ILLEGAL_MOD_OPERATION, + ERROR_DS_OBJ_TOO_LARGE, + ERROR_DS_BAD_INSTANCE_TYPE, + ERROR_DS_MASTERDSA_REQUIRED, + ERROR_DS_OBJECT_CLASS_REQUIRED, + ERROR_DS_MISSING_REQUIRED_ATT, + ERROR_DS_ATT_NOT_DEF_FOR_CLASS, + ERROR_DS_ATT_ALREADY_EXISTS, // = 8318 + ERROR_DS_CANT_ADD_ATT_VALUES = 8320, + ERROR_DS_SINGLE_VALUE_CONSTRAINT, + ERROR_DS_RANGE_CONSTRAINT, + ERROR_DS_ATT_VAL_ALREADY_EXISTS, + ERROR_DS_CANT_REM_MISSING_ATT, + ERROR_DS_CANT_REM_MISSING_ATT_VAL, + ERROR_DS_ROOT_CANT_BE_SUBREF, + ERROR_DS_NO_CHAINING, + ERROR_DS_NO_CHAINED_EVAL, + ERROR_DS_NO_PARENT_OBJECT, + ERROR_DS_PARENT_IS_AN_ALIAS, + ERROR_DS_CANT_MIX_MASTER_AND_REPS, + ERROR_DS_CHILDREN_EXIST, + ERROR_DS_OBJ_NOT_FOUND, + ERROR_DS_ALIASED_OBJ_MISSING, + ERROR_DS_BAD_NAME_SYNTAX, + ERROR_DS_ALIAS_POINTS_TO_ALIAS, + ERROR_DS_CANT_DEREF_ALIAS, + ERROR_DS_OUT_OF_SCOPE, + ERROR_DS_OBJECT_BEING_REMOVED, + ERROR_DS_CANT_DELETE_DSA_OBJ, + ERROR_DS_GENERIC_ERROR, + ERROR_DS_DSA_MUST_BE_INT_MASTER, + ERROR_DS_CLASS_NOT_DSA, + ERROR_DS_INSUFF_ACCESS_RIGHTS, + ERROR_DS_ILLEGAL_SUPERIOR, + ERROR_DS_ATTRIBUTE_OWNED_BY_SAM, + ERROR_DS_NAME_TOO_MANY_PARTS, + ERROR_DS_NAME_TOO_LONG, + ERROR_DS_NAME_VALUE_TOO_LONG, + ERROR_DS_NAME_UNPARSEABLE, + ERROR_DS_NAME_TYPE_UNKNOWN, + ERROR_DS_NOT_AN_OBJECT, + ERROR_DS_SEC_DESC_TOO_SHORT, + ERROR_DS_SEC_DESC_INVALID, + ERROR_DS_NO_DELETED_NAME, + ERROR_DS_SUBREF_MUST_HAVE_PARENT, + ERROR_DS_NCNAME_MUST_BE_NC, + ERROR_DS_CANT_ADD_SYSTEM_ONLY, + ERROR_DS_CLASS_MUST_BE_CONCRETE, + ERROR_DS_INVALID_DMD, + ERROR_DS_OBJ_GUID_EXISTS, + ERROR_DS_NOT_ON_BACKLINK, + ERROR_DS_NO_CROSSREF_FOR_NC, + ERROR_DS_SHUTTING_DOWN, + ERROR_DS_UNKNOWN_OPERATION, + ERROR_DS_INVALID_ROLE_OWNER, + ERROR_DS_COULDNT_CONTACT_FSMO, + ERROR_DS_CROSS_NC_DN_RENAME, + ERROR_DS_CANT_MOD_SYSTEM_ONLY, + ERROR_DS_REPLICATOR_ONLY, + ERROR_DS_OBJ_CLASS_NOT_DEFINED, + ERROR_DS_OBJ_CLASS_NOT_SUBCLASS, + ERROR_DS_NAME_REFERENCE_INVALID, + ERROR_DS_CROSS_REF_EXISTS, + ERROR_DS_CANT_DEL_MASTER_CROSSREF, + ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD, + ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX, + ERROR_DS_DUP_RDN, + ERROR_DS_DUP_OID, + ERROR_DS_DUP_MAPI_ID, + ERROR_DS_DUP_SCHEMA_ID_GUID, + ERROR_DS_DUP_LDAP_DISPLAY_NAME, + ERROR_DS_SEMANTIC_ATT_TEST, + ERROR_DS_SYNTAX_MISMATCH, + ERROR_DS_EXISTS_IN_MUST_HAVE, + ERROR_DS_EXISTS_IN_MAY_HAVE, + ERROR_DS_NONEXISTENT_MAY_HAVE, + ERROR_DS_NONEXISTENT_MUST_HAVE, + ERROR_DS_AUX_CLS_TEST_FAIL, + ERROR_DS_NONEXISTENT_POSS_SUP, + ERROR_DS_SUB_CLS_TEST_FAIL, + ERROR_DS_BAD_RDN_ATT_ID_SYNTAX, + ERROR_DS_EXISTS_IN_AUX_CLS, + ERROR_DS_EXISTS_IN_SUB_CLS, + ERROR_DS_EXISTS_IN_POSS_SUP, + ERROR_DS_RECALCSCHEMA_FAILED, + ERROR_DS_TREE_DELETE_NOT_FINISHED, + ERROR_DS_CANT_DELETE, + ERROR_DS_ATT_SCHEMA_REQ_ID, + ERROR_DS_BAD_ATT_SCHEMA_SYNTAX, + ERROR_DS_CANT_CACHE_ATT, + ERROR_DS_CANT_CACHE_CLASS, + ERROR_DS_CANT_REMOVE_ATT_CACHE, + ERROR_DS_CANT_REMOVE_CLASS_CACHE, + ERROR_DS_CANT_RETRIEVE_DN, + ERROR_DS_MISSING_SUPREF, + ERROR_DS_CANT_RETRIEVE_INSTANCE, + ERROR_DS_CODE_INCONSISTENCY, + ERROR_DS_DATABASE_ERROR, + ERROR_DS_GOVERNSID_MISSING, + ERROR_DS_MISSING_EXPECTED_ATT, + ERROR_DS_NCNAME_MISSING_CR_REF, + ERROR_DS_SECURITY_CHECKING_ERROR, + ERROR_DS_SCHEMA_NOT_LOADED, + ERROR_DS_SCHEMA_ALLOC_FAILED, + ERROR_DS_ATT_SCHEMA_REQ_SYNTAX, + ERROR_DS_GCVERIFY_ERROR, + ERROR_DS_DRA_SCHEMA_MISMATCH, + ERROR_DS_CANT_FIND_DSA_OBJ, + ERROR_DS_CANT_FIND_EXPECTED_NC, + ERROR_DS_CANT_FIND_NC_IN_CACHE, + ERROR_DS_CANT_RETRIEVE_CHILD, + ERROR_DS_SECURITY_ILLEGAL_MODIFY, + ERROR_DS_CANT_REPLACE_HIDDEN_REC, + ERROR_DS_BAD_HIERARCHY_FILE, + ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED, + ERROR_DS_CONFIG_PARAM_MISSING, + ERROR_DS_COUNTING_AB_INDICES_FAILED, + ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED, + ERROR_DS_INTERNAL_FAILURE, + ERROR_DS_UNKNOWN_ERROR, + ERROR_DS_ROOT_REQUIRES_CLASS_TOP, + ERROR_DS_REFUSING_FSMO_ROLES, + ERROR_DS_MISSING_FSMO_SETTINGS, + ERROR_DS_UNABLE_TO_SURRENDER_ROLES, + ERROR_DS_DRA_GENERIC, + ERROR_DS_DRA_INVALID_PARAMETER, + ERROR_DS_DRA_BUSY, + ERROR_DS_DRA_BAD_DN, + ERROR_DS_DRA_BAD_NC, + ERROR_DS_DRA_DN_EXISTS, + ERROR_DS_DRA_INTERNAL_ERROR, + ERROR_DS_DRA_INCONSISTENT_DIT, + ERROR_DS_DRA_CONNECTION_FAILED, + ERROR_DS_DRA_BAD_INSTANCE_TYPE, + ERROR_DS_DRA_OUT_OF_MEM, + ERROR_DS_DRA_MAIL_PROBLEM, + ERROR_DS_DRA_REF_ALREADY_EXISTS, + ERROR_DS_DRA_REF_NOT_FOUND, + ERROR_DS_DRA_OBJ_IS_REP_SOURCE, + ERROR_DS_DRA_DB_ERROR, + ERROR_DS_DRA_NO_REPLICA, + ERROR_DS_DRA_ACCESS_DENIED, + ERROR_DS_DRA_NOT_SUPPORTED, + ERROR_DS_DRA_RPC_CANCELLED, + ERROR_DS_DRA_SOURCE_DISABLED, + ERROR_DS_DRA_SINK_DISABLED, + ERROR_DS_DRA_NAME_COLLISION, + ERROR_DS_DRA_SOURCE_REINSTALLED, + ERROR_DS_DRA_MISSING_PARENT, + ERROR_DS_DRA_PREEMPTED, + ERROR_DS_DRA_ABANDON_SYNC, + ERROR_DS_DRA_SHUTDOWN, + ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET, + ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA, + ERROR_DS_DRA_EXTN_CONNECTION_FAILED, + ERROR_DS_INSTALL_SCHEMA_MISMATCH, + ERROR_DS_DUP_LINK_ID, + ERROR_DS_NAME_ERROR_RESOLVING, + ERROR_DS_NAME_ERROR_NOT_FOUND, + ERROR_DS_NAME_ERROR_NOT_UNIQUE, + ERROR_DS_NAME_ERROR_NO_MAPPING, + ERROR_DS_NAME_ERROR_DOMAIN_ONLY, + ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING, + ERROR_DS_CONSTRUCTED_ATT_MOD, + ERROR_DS_WRONG_OM_OBJ_CLASS, + ERROR_DS_DRA_REPL_PENDING, + ERROR_DS_DS_REQUIRED, + ERROR_DS_INVALID_LDAP_DISPLAY_NAME, + ERROR_DS_NON_BASE_SEARCH, + ERROR_DS_CANT_RETRIEVE_ATTS, + ERROR_DS_BACKLINK_WITHOUT_LINK, + ERROR_DS_EPOCH_MISMATCH, + ERROR_DS_SRC_NAME_MISMATCH, + ERROR_DS_SRC_AND_DST_NC_IDENTICAL, + ERROR_DS_DST_NC_MISMATCH, + ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC, + ERROR_DS_SRC_GUID_MISMATCH, + ERROR_DS_CANT_MOVE_DELETED_OBJECT, + ERROR_DS_PDC_OPERATION_IN_PROGRESS, + ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD, + ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION, + ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS, + ERROR_DS_NC_MUST_HAVE_NC_PARENT, + ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE, + ERROR_DS_DST_DOMAIN_NOT_NATIVE, + ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER, + ERROR_DS_CANT_MOVE_ACCOUNT_GROUP, + ERROR_DS_CANT_MOVE_RESOURCE_GROUP, + ERROR_DS_INVALID_SEARCH_FLAG, + ERROR_DS_NO_TREE_DELETE_ABOVE_NC, + ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE, + ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE, + ERROR_DS_SAM_INIT_FAILURE, + ERROR_DS_SENSITIVE_GROUP_VIOLATION, + ERROR_DS_CANT_MOD_PRIMARYGROUPID, + ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD, + ERROR_DS_NONSAFE_SCHEMA_CHANGE, + ERROR_DS_SCHEMA_UPDATE_DISALLOWED, + ERROR_DS_CANT_CREATE_UNDER_SCHEMA, + ERROR_DS_INSTALL_NO_SRC_SCH_VERSION, + ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE, + ERROR_DS_INVALID_GROUP_TYPE, + ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN, + ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN, + ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER, + ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER, + ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER, + ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER, + ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER, + ERROR_DS_HAVE_PRIMARY_MEMBERS, + ERROR_DS_STRING_SD_CONVERSION_FAILED, + ERROR_DS_NAMING_MASTER_GC, + ERROR_DS_LOOKUP_FAILURE, + ERROR_DS_COULDNT_UPDATE_SPNS, + ERROR_DS_CANT_RETRIEVE_SD, + ERROR_DS_KEY_NOT_UNIQUE, + ERROR_DS_WRONG_LINKED_ATT_SYNTAX, + ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD, + ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY, + ERROR_DS_CANT_START, + ERROR_DS_INIT_FAILURE, + ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION, + ERROR_DS_SOURCE_DOMAIN_IN_FOREST, + ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST, + ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED, + ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN, + ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER, + ERROR_DS_SRC_SID_EXISTS_IN_FOREST, + ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH, + ERROR_SAM_INIT_FAILURE, + ERROR_DS_DRA_SCHEMA_INFO_SHIP, + ERROR_DS_DRA_SCHEMA_CONFLICT, + ERROR_DS_DRA_EARLIER_SCHEMA_CONLICT, + ERROR_DS_DRA_OBJ_NC_MISMATCH, + ERROR_DS_NC_STILL_HAS_DSAS, + ERROR_DS_GC_REQUIRED, + ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY, + ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS, + ERROR_DS_CANT_ADD_TO_GC, + ERROR_DS_NO_CHECKPOINT_WITH_PDC, + ERROR_DS_SOURCE_AUDITING_NOT_ENABLED, + ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC, + ERROR_DS_INVALID_NAME_FOR_SPN, + ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS, + ERROR_DS_UNICODEPWD_NOT_IN_QUOTES, + ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED, + ERROR_DS_MUST_BE_RUN_ON_DST_DC, + ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER, + ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ, + ERROR_DS_INIT_FAILURE_CONSOLE, + ERROR_DS_SAM_INIT_FAILURE_CONSOLE, + ERROR_DS_FOREST_VERSION_TOO_HIGH, + ERROR_DS_DOMAIN_VERSION_TOO_HIGH, + ERROR_DS_FOREST_VERSION_TOO_LOW, + ERROR_DS_DOMAIN_VERSION_TOO_LOW, + ERROR_DS_INCOMPATIBLE_VERSION, + ERROR_DS_LOW_DSA_VERSION, + ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN, + ERROR_DS_NOT_SUPPORTED_SORT_ORDER, + ERROR_DS_NAME_NOT_UNIQUE, + ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4, + ERROR_DS_OUT_OF_VERSION_STORE, + ERROR_DS_INCOMPATIBLE_CONTROLS_USED, + ERROR_DS_NO_REF_DOMAIN, + ERROR_DS_RESERVED_LINK_ID, + ERROR_DS_LINK_ID_NOT_AVAILABLE, + ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER, + ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE, + ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC, + ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG, + ERROR_DS_MODIFYDN_WRONG_GRANDPARENT, + ERROR_DS_NAME_ERROR_TRUST_REFERRAL, + ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER, + ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD, + ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2, + ERROR_DS_THREAD_LIMIT_EXCEEDED, + ERROR_DS_NOT_CLOSEST, + ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF, + ERROR_DS_SINGLE_USER_MODE_FAILED, + ERROR_DS_NTDSCRIPT_SYNTAX_ERROR, + ERROR_DS_NTDSCRIPT_PROCESS_ERROR, + ERROR_DS_DIFFERENT_REPL_EPOCHS, + ERROR_DS_DRS_EXTENSIONS_CHANGED, + ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR, + ERROR_DS_NO_MSDS_INTID, + ERROR_DS_DUP_MSDS_INTID, + ERROR_DS_EXISTS_IN_RDNATTID, + ERROR_DS_AUTHORIZATION_FAILED, + ERROR_DS_INVALID_SCRIPT, + ERROR_DS_REMOTE_CROSSREF_OP_FAILED, + ERROR_DS_CROSS_REF_BUSY, + ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN, + ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC, + ERROR_DS_DUPLICATE_ID_FOUND, + ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT, + ERROR_DS_GROUP_CONVERSION_ERROR, + ERROR_DS_CANT_MOVE_APP_BASIC_GROUP, + ERROR_DS_CANT_MOVE_APP_QUERY_GROUP, + ERROR_DS_ROLE_NOT_VERIFIED, + ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL, + ERROR_DS_DOMAIN_RENAME_IN_PROGRESS, + ERROR_DS_EXISTING_AD_CHILD_NC, // = 8613 + DNS_ERROR_RCODE_FORMAT_ERROR = 9001, + DNS_ERROR_RCODE_SERVER_FAILURE, + DNS_ERROR_RCODE_NAME_ERROR, + DNS_ERROR_RCODE_NOT_IMPLEMENTED, + DNS_ERROR_RCODE_REFUSED, + DNS_ERROR_RCODE_YXDOMAIN, + DNS_ERROR_RCODE_YXRRSET, + DNS_ERROR_RCODE_NXRRSET, + DNS_ERROR_RCODE_NOTAUTH, + DNS_ERROR_RCODE_NOTZONE, // = 9010 + DNS_ERROR_RCODE_BADSIG = 9016, + DNS_ERROR_RCODE_BADKEY, + DNS_ERROR_RCODE_BADTIME, // = 9018 + DNS_INFO_NO_RECORDS = 9501, + DNS_ERROR_BAD_PACKET, + DNS_ERROR_NO_PACKET, + DNS_ERROR_RCODE, + DNS_ERROR_UNSECURE_PACKET, // = 9505 + DNS_ERROR_INVALID_TYPE = 9551, + DNS_ERROR_INVALID_IP_ADDRESS, + DNS_ERROR_INVALID_PROPERTY, + DNS_ERROR_TRY_AGAIN_LATER, + DNS_ERROR_NOT_UNIQUE, + DNS_ERROR_NON_RFC_NAME, + DNS_STATUS_FQDN, + DNS_STATUS_DOTTED_NAME, + DNS_STATUS_SINGLE_PART_NAME, + DNS_ERROR_INVALID_NAME_CHAR, + DNS_ERROR_NUMERIC_NAME, + DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER, + DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION, + DNS_ERROR_CANNOT_FIND_ROOT_HINTS, + DNS_ERROR_INCONSISTENT_ROOT_HINTS, // = 9565 + DNS_ERROR_ZONE_DOES_NOT_EXIST = 9601, + DNS_ERROR_NO_ZONE_INFO, + DNS_ERROR_INVALID_ZONE_OPERATION, + DNS_ERROR_ZONE_CONFIGURATION_ERROR, + DNS_ERROR_ZONE_HAS_NO_SOA_RECORD, + DNS_ERROR_ZONE_HAS_NO_NS_RECORDS, + DNS_ERROR_ZONE_LOCKED, + DNS_ERROR_ZONE_CREATION_FAILED, + DNS_ERROR_ZONE_ALREADY_EXISTS, + DNS_ERROR_AUTOZONE_ALREADY_EXISTS, + DNS_ERROR_INVALID_ZONE_TYPE, + DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP, + DNS_ERROR_ZONE_NOT_SECONDARY, + DNS_ERROR_NEED_SECONDARY_ADDRESSES, + DNS_ERROR_WINS_INIT_FAILED, + DNS_ERROR_NEED_WINS_SERVERS, + DNS_ERROR_NBSTAT_INIT_FAILED, + DNS_ERROR_SOA_DELETE_INVALID, + DNS_ERROR_FORWARDER_ALREADY_EXISTS, + DNS_ERROR_ZONE_REQUIRES_MASTER_IP, + DNS_ERROR_ZONE_IS_SHUTDOWN, // = 9621 + DNS_ERROR_PRIMARY_REQUIRES_DATAFILE = 9651, + DNS_ERROR_INVALID_DATAFILE_NAME, + DNS_ERROR_DATAFILE_OPEN_FAILURE, + DNS_ERROR_FILE_WRITEBACK_FAILED, + DNS_ERROR_DATAFILE_PARSING, // = 9655 + DNS_ERROR_RECORD_DOES_NOT_EXIST = 9701, + DNS_ERROR_RECORD_FORMAT, + DNS_ERROR_NODE_CREATION_FAILED, + DNS_ERROR_UNKNOWN_RECORD_TYPE, + DNS_ERROR_RECORD_TIMED_OUT, + DNS_ERROR_NAME_NOT_IN_ZONE, + DNS_ERROR_CNAME_LOOP, + DNS_ERROR_NODE_IS_CNAME, + DNS_ERROR_CNAME_COLLISION, + DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT, + DNS_ERROR_RECORD_ALREADY_EXISTS, + DNS_ERROR_SECONDARY_DATA, + DNS_ERROR_NO_CREATE_CACHE_DATA, + DNS_ERROR_NAME_DOES_NOT_EXIST, + DNS_WARNING_PTR_CREATE_FAILED, + DNS_WARNING_DOMAIN_UNDELETED, + DNS_ERROR_DS_UNAVAILABLE, + DNS_ERROR_DS_ZONE_ALREADY_EXISTS, + DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE, // = 9719 + DNS_INFO_AXFR_COMPLETE = 9751, + DNS_ERROR_AXFR, + DNS_INFO_ADDED_LOCAL_WINS, // = 9753 + DNS_STATUS_CONTINUE_NEEDED = 9801, + DNS_ERROR_NO_TCPIP = 9851, + DNS_ERROR_NO_DNS_SERVERS, // = 9852 + DNS_ERROR_DP_DOES_NOT_EXIST = 9901, + DNS_ERROR_DP_ALREADY_EXISTS, + DNS_ERROR_DP_NOT_ENLISTED, + DNS_ERROR_DP_ALREADY_ENLISTED, + DNS_ERROR_DP_NOT_AVAILABLE, // = 9905 + +/+ already in winsock2.d defined! + + WSABASEERR = 10000, + WSAEINTR = 10004, + WSAEBADF = 10009, + WSAEACCES = 10013, + WSAEFAULT, // = 10014 + WSAEINVAL = 10022, + WSAEMFILE = 10024, + WSAEWOULDBLOCK = 10035, + WSAEINPROGRESS, + WSAEALREADY, + WSAENOTSOCK, + WSAEDESTADDRREQ, + WSAEMSGSIZE, + WSAEPROTOTYPE, + WSAENOPROTOOPT, + WSAEPROTONOSUPPORT, + WSAESOCKTNOSUPPORT, + WSAEOPNOTSUPP, + WSAEPFNOSUPPORT, + WSAEAFNOSUPPORT, + WSAEADDRINUSE, + WSAEADDRNOTAVAIL, + WSAENETDOWN, + WSAENETUNREACH, + WSAENETRESET, + WSAECONNABORTED, + WSAECONNRESET, + WSAENOBUFS, + WSAEISCONN, + WSAENOTCONN, + WSAESHUTDOWN, + WSAETOOMANYREFS, + WSAETIMEDOUT, + WSAECONNREFUSED, + WSAELOOP, + WSAENAMETOOLONG, + WSAEHOSTDOWN, + WSAEHOSTUNREACH, + WSAENOTEMPTY, + WSAEPROCLIM, + WSAEUSERS, + WSAEDQUOT, + WSAESTALE, + WSAEREMOTE, // = 10071 + WSASYSNOTREADY = 10091, + WSAVERNOTSUPPORTED, + WSANOTINITIALISED, // = 10093 + WSAEDISCON = 10101, + WSAENOMORE, + WSAECANCELLED, + WSAEINVALIDPROCTABLE, + WSAEINVALIDPROVIDER, + WSAEPROVIDERFAILEDINIT, + WSASYSCALLFAILURE, + WSASERVICE_NOT_FOUND, + WSATYPE_NOT_FOUND, + WSA_E_NO_MORE, + WSA_E_CANCELLED, + WSAEREFUSED, // = 10112 + WSAHOST_NOT_FOUND = 11001, + WSATRY_AGAIN, + WSANO_RECOVERY, + WSANO_DATA, + WSA_QOS_RECEIVERS, + WSA_QOS_SENDERS, + WSA_QOS_NO_SENDERS, + WSA_QOS_NO_RECEIVERS, + WSA_QOS_REQUEST_CONFIRMED, + WSA_QOS_ADMISSION_FAILURE, + WSA_QOS_POLICY_FAILURE, + WSA_QOS_BAD_STYLE, + WSA_QOS_BAD_OBJECT, + WSA_QOS_TRAFFIC_CTRL_ERROR, + WSA_QOS_GENERIC_ERROR, + WSA_QOS_ESERVICETYPE, + WSA_QOS_EFLOWSPEC, + WSA_QOS_EPROVSPECBUF, + WSA_QOS_EFILTERSTYLE, + WSA_QOS_EFILTERTYPE, + WSA_QOS_EFILTERCOUNT, + WSA_QOS_EOBJLENGTH, + WSA_QOS_EFLOWCOUNT, + WSA_QOS_EUNKNOWNPSOBJ, + WSA_QOS_EPOLICYOBJ, + WSA_QOS_EFLOWDESC, + WSA_QOS_EPSFLOWSPEC, + WSA_QOS_EPSFILTERSPEC, + WSA_QOS_ESDMODEOBJ, + WSA_QOS_ESHAPERATEOBJ, + WSA_QOS_RESERVED_PETYPE, // = 11031 + ++/ + + ERROR_IPSEC_QM_POLICY_EXISTS = 13000, + ERROR_IPSEC_QM_POLICY_NOT_FOUND, + ERROR_IPSEC_QM_POLICY_IN_USE, + ERROR_IPSEC_MM_POLICY_EXISTS, + ERROR_IPSEC_MM_POLICY_NOT_FOUND, + ERROR_IPSEC_MM_POLICY_IN_USE, + ERROR_IPSEC_MM_FILTER_EXISTS, + ERROR_IPSEC_MM_FILTER_NOT_FOUND, + ERROR_IPSEC_TRANSPORT_FILTER_EXISTS, + ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND, + ERROR_IPSEC_MM_AUTH_EXISTS, + ERROR_IPSEC_MM_AUTH_NOT_FOUND, + ERROR_IPSEC_MM_AUTH_IN_USE, + ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND, + ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND, + ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND, + ERROR_IPSEC_TUNNEL_FILTER_EXISTS, + ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND, + ERROR_IPSEC_MM_FILTER_PENDING_DELETION, + ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION, + ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION, + ERROR_IPSEC_MM_POLICY_PENDING_DELETION, + ERROR_IPSEC_MM_AUTH_PENDING_DELETION, + ERROR_IPSEC_QM_POLICY_PENDING_DELETION, + WARNING_IPSEC_MM_POLICY_PRUNED, + WARNING_IPSEC_QM_POLICY_PRUNED, // = 13025 + ERROR_IPSEC_IKE_AUTH_FAIL = 13801, + ERROR_IPSEC_IKE_ATTRIB_FAIL, + ERROR_IPSEC_IKE_NEGOTIATION_PENDING, + ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR, + ERROR_IPSEC_IKE_TIMED_OUT, + ERROR_IPSEC_IKE_NO_CERT, + ERROR_IPSEC_IKE_SA_DELETED, + ERROR_IPSEC_IKE_SA_REAPED, + ERROR_IPSEC_IKE_MM_ACQUIRE_DROP, + ERROR_IPSEC_IKE_QM_ACQUIRE_DROP, + ERROR_IPSEC_IKE_QUEUE_DROP_MM, + ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM, + ERROR_IPSEC_IKE_DROP_NO_RESPONSE, + ERROR_IPSEC_IKE_MM_DELAY_DROP, + ERROR_IPSEC_IKE_QM_DELAY_DROP, + ERROR_IPSEC_IKE_ERROR, + ERROR_IPSEC_IKE_CRL_FAILED, + ERROR_IPSEC_IKE_INVALID_KEY_USAGE, + ERROR_IPSEC_IKE_INVALID_CERT_TYPE, + ERROR_IPSEC_IKE_NO_PRIVATE_KEY, // = 13820 + ERROR_IPSEC_IKE_DH_FAIL = 13822, + ERROR_IPSEC_IKE_INVALID_HEADER = 13824, + ERROR_IPSEC_IKE_NO_POLICY, + ERROR_IPSEC_IKE_INVALID_SIGNATURE, + ERROR_IPSEC_IKE_KERBEROS_ERROR, + ERROR_IPSEC_IKE_NO_PUBLIC_KEY, + ERROR_IPSEC_IKE_PROCESS_ERR, + ERROR_IPSEC_IKE_PROCESS_ERR_SA, + ERROR_IPSEC_IKE_PROCESS_ERR_PROP, + ERROR_IPSEC_IKE_PROCESS_ERR_TRANS, + ERROR_IPSEC_IKE_PROCESS_ERR_KE, + ERROR_IPSEC_IKE_PROCESS_ERR_ID, + ERROR_IPSEC_IKE_PROCESS_ERR_CERT, + ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ, + ERROR_IPSEC_IKE_PROCESS_ERR_HASH, + ERROR_IPSEC_IKE_PROCESS_ERR_SIG, + ERROR_IPSEC_IKE_PROCESS_ERR_NONCE, + ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY, + ERROR_IPSEC_IKE_PROCESS_ERR_DELETE, + ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR, + ERROR_IPSEC_IKE_INVALID_PAYLOAD, + ERROR_IPSEC_IKE_LOAD_SOFT_SA, + ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN, + ERROR_IPSEC_IKE_INVALID_COOKIE, + ERROR_IPSEC_IKE_NO_PEER_CERT, + ERROR_IPSEC_IKE_PEER_CRL_FAILED, + ERROR_IPSEC_IKE_POLICY_CHANGE, + ERROR_IPSEC_IKE_NO_MM_POLICY, + ERROR_IPSEC_IKE_NOTCBPRIV, + ERROR_IPSEC_IKE_SECLOADFAIL, + ERROR_IPSEC_IKE_FAILSSPINIT, + ERROR_IPSEC_IKE_FAILQUERYSSP, + ERROR_IPSEC_IKE_SRVACQFAIL, + ERROR_IPSEC_IKE_SRVQUERYCRED, + ERROR_IPSEC_IKE_GETSPIFAIL, + ERROR_IPSEC_IKE_INVALID_FILTER, + ERROR_IPSEC_IKE_OUT_OF_MEMORY, + ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED, + ERROR_IPSEC_IKE_INVALID_POLICY, + ERROR_IPSEC_IKE_UNKNOWN_DOI, + ERROR_IPSEC_IKE_INVALID_SITUATION, + ERROR_IPSEC_IKE_DH_FAILURE, + ERROR_IPSEC_IKE_INVALID_GROUP, + ERROR_IPSEC_IKE_ENCRYPT, + ERROR_IPSEC_IKE_DECRYPT, + ERROR_IPSEC_IKE_POLICY_MATCH, + ERROR_IPSEC_IKE_UNSUPPORTED_ID, + ERROR_IPSEC_IKE_INVALID_HASH, + ERROR_IPSEC_IKE_INVALID_HASH_ALG, + ERROR_IPSEC_IKE_INVALID_HASH_SIZE, + ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG, + ERROR_IPSEC_IKE_INVALID_AUTH_ALG, + ERROR_IPSEC_IKE_INVALID_SIG, + ERROR_IPSEC_IKE_LOAD_FAILED, + ERROR_IPSEC_IKE_RPC_DELETE, + ERROR_IPSEC_IKE_BENIGN_REINIT, + ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY, // = 13879 + ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN = 13881, + ERROR_IPSEC_IKE_MM_LIMIT, + ERROR_IPSEC_IKE_NEGOTIATION_DISABLED, + ERROR_IPSEC_IKE_NEG_STATUS_END, + ERROR_SXS_SECTION_NOT_FOUND, + ERROR_SXS_CANT_GEN_ACTCTX, + ERROR_SXS_INVALID_ACTCTXDATA_FORMAT, + ERROR_SXS_ASSEMBLY_NOT_FOUND, + ERROR_SXS_MANIFEST_FORMAT_ERROR, + ERROR_SXS_MANIFEST_PARSE_ERROR, + ERROR_SXS_ACTIVATION_CONTEXT_DISABLED, + ERROR_SXS_KEY_NOT_FOUND, + ERROR_SXS_VERSION_CONFLICT, + ERROR_SXS_WRONG_SECTION_TYPE, + ERROR_SXS_THREAD_QUERIES_DISABLED, + ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET, + ERROR_SXS_UNKNOWN_ENCODING_GROUP, + ERROR_SXS_UNKNOWN_ENCODING, + ERROR_SXS_INVALID_XML_NAMESPACE_URI, + ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED, + ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED, + ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE, + ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE, + ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE, + ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT, + ERROR_SXS_DUPLICATE_DLL_NAME, + ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME, + ERROR_SXS_DUPLICATE_CLSID, + ERROR_SXS_DUPLICATE_IID, + ERROR_SXS_DUPLICATE_TLBID, + ERROR_SXS_DUPLICATE_PROGID, + ERROR_SXS_DUPLICATE_ASSEMBLY_NAME, + ERROR_SXS_FILE_HASH_MISMATCH, + ERROR_SXS_POLICY_PARSE_ERROR, + ERROR_SXS_XML_E_MISSINGQUOTE, + ERROR_SXS_XML_E_COMMENTSYNTAX, + ERROR_SXS_XML_E_BADSTARTNAMECHAR, + ERROR_SXS_XML_E_BADNAMECHAR, + ERROR_SXS_XML_E_BADCHARINSTRING, + ERROR_SXS_XML_E_XMLDECLSYNTAX, + ERROR_SXS_XML_E_BADCHARDATA, + ERROR_SXS_XML_E_MISSINGWHITESPACE, + ERROR_SXS_XML_E_EXPECTINGTAGEND, + ERROR_SXS_XML_E_MISSINGSEMICOLON, + ERROR_SXS_XML_E_UNBALANCEDPAREN, + ERROR_SXS_XML_E_INTERNALERROR, + ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE, + ERROR_SXS_XML_E_INCOMPLETE_ENCODING, + ERROR_SXS_XML_E_MISSING_PAREN, + ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE, + ERROR_SXS_XML_E_MULTIPLE_COLONS, + ERROR_SXS_XML_E_INVALID_DECIMAL, + ERROR_SXS_XML_E_INVALID_HEXIDECIMAL, + ERROR_SXS_XML_E_INVALID_UNICODE, + ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK, + ERROR_SXS_XML_E_UNEXPECTEDENDTAG, + ERROR_SXS_XML_E_UNCLOSEDTAG, + ERROR_SXS_XML_E_DUPLICATEATTRIBUTE, + ERROR_SXS_XML_E_MULTIPLEROOTS, + ERROR_SXS_XML_E_INVALIDATROOTLEVEL, + ERROR_SXS_XML_E_BADXMLDECL, + ERROR_SXS_XML_E_MISSINGROOT, + ERROR_SXS_XML_E_UNEXPECTEDEOF, + ERROR_SXS_XML_E_BADPEREFINSUBSET, + ERROR_SXS_XML_E_UNCLOSEDSTARTTAG, + ERROR_SXS_XML_E_UNCLOSEDENDTAG, + ERROR_SXS_XML_E_UNCLOSEDSTRING, + ERROR_SXS_XML_E_UNCLOSEDCOMMENT, + ERROR_SXS_XML_E_UNCLOSEDDECL, + ERROR_SXS_XML_E_UNCLOSEDCDATA, + ERROR_SXS_XML_E_RESERVEDNAMESPACE, + ERROR_SXS_XML_E_INVALIDENCODING, + ERROR_SXS_XML_E_INVALIDSWITCH, + ERROR_SXS_XML_E_BADXMLCASE, + ERROR_SXS_XML_E_INVALID_STANDALONE, + ERROR_SXS_XML_E_UNEXPECTED_STANDALONE, + ERROR_SXS_XML_E_INVALID_VERSION, + ERROR_SXS_XML_E_MISSINGEQUALS, + ERROR_SXS_PROTECTION_RECOVERY_FAILED, + ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT, + ERROR_SXS_PROTECTION_CATALOG_NOT_VALID, + ERROR_SXS_UNTRANSLATABLE_HRESULT, + ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING, + ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE, + ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME // = 14080 +} + +enum : HRESULT { + S_OK = 0x00000000, + S_FALSE = 0x00000001, + + NOERROR = 0x00000000, + + E_PENDING = 0x8000000A, + E_NOTIMPL = 0x80004001, + E_NOINTERFACE = 0x80004002, + E_POINTER = 0x80004003, + E_ABORT = 0x80004004, + E_FAIL = 0x80004005, + E_ACCESSDENIED = 0x80070005, + E_HANDLE = 0x80070006, + E_OUTOFMEMORY = 0x8007000E, + E_INVALIDARG = 0x80070057, + E_UNEXPECTED = 0x8000FFFF, + + CO_E_INIT_TLS = 0x80004006, + CO_E_INIT_SHARED_ALLOCATOR = 0x80004007, + CO_E_INIT_MEMORY_ALLOCATOR = 0x80004008, + CO_E_INIT_CLASS_CACHE = 0x80004009, + CO_E_INIT_RPC_CHANNEL = 0x8000400A, + CO_E_INIT_TLS_SET_CHANNEL_CONTROL = 0x8000400B, + CO_E_INIT_TLS_CHANNEL_CONTROL = 0x8000400C, + CO_E_INIT_UNACCEPTED_USER_ALLOCATOR = 0x8000400D, + CO_E_INIT_SCM_MUTEX_EXISTS = 0x8000400E, + CO_E_INIT_SCM_FILE_MAPPING_EXISTS = 0x8000400F, + CO_E_INIT_SCM_MAP_VIEW_OF_FILE = 0x80004010, + CO_E_INIT_SCM_EXEC_FAILURE = 0x80004011, + CO_E_INIT_ONLY_SINGLE_THREADED = 0x80004012, + + RPC_E_CALL_REJECTED = 0x80010001, + RPC_E_CALL_CANCELED = 0x80010002, + RPC_E_CANTPOST_INSENDCALL = 0x80010003, + RPC_E_CANTCALLOUT_INASYNCCALL = 0x80010004, + RPC_E_CANTCALLOUT_INEXTERNALCALL = 0x80010005, + RPC_E_CONNECTION_TERMINATED = 0x80010006, + RPC_E_SERVER_DIED = 0x80010007, + RPC_E_CLIENT_DIED = 0x80010008, + RPC_E_INVALID_DATAPACKET = 0x80010009, + RPC_E_CANTTRANSMIT_CALL = 0x8001000A, + RPC_E_CLIENT_CANTMARSHAL_DATA = 0x8001000B, + RPC_E_CLIENT_CANTUNMARSHAL_DATA = 0x8001000C, + RPC_E_SERVER_CANTMARSHAL_DATA = 0x8001000D, + RPC_E_SERVER_CANTUNMARSHAL_DATA = 0x8001000E, + RPC_E_INVALID_DATA = 0x8001000F, + RPC_E_INVALID_PARAMETER = 0x80010010, + RPC_E_CANTCALLOUT_AGAIN = 0x80010011, + RPC_E_SERVER_DIED_DNE = 0x80010012, + RPC_E_SYS_CALL_FAILED = 0x80010100, + RPC_E_OUT_OF_RESOURCES = 0x80010101, + RPC_E_ATTEMPTED_MULTITHREAD = 0x80010102, + RPC_E_NOT_REGISTERED = 0x80010103, + RPC_E_FAULT = 0x80010104, + RPC_E_SERVERFAULT = 0x80010105, + RPC_E_CHANGED_MODE = 0x80010106, + RPC_E_INVALIDMETHOD = 0x80010107, + RPC_E_DISCONNECTED = 0x80010108, + RPC_E_RETRY = 0x80010109, + RPC_E_SERVERCALL_RETRYLATER = 0x8001010A, + RPC_E_SERVERCALL_REJECTED = 0x8001010B, + RPC_E_INVALID_CALLDATA = 0x8001010C, + RPC_E_CANTCALLOUT_ININPUTSYNCCALL = 0x8001010D, + RPC_E_WRONG_THREAD = 0x8001010E, + RPC_E_THREAD_NOT_INIT = 0x8001010F, + RPC_E_UNEXPECTED = 0x8001FFFF, + + DISP_E_UNKNOWNINTERFACE = 0x80020001, + DISP_E_MEMBERNOTFOUND = 0x80020003, + DISP_E_PARAMNOTFOUND = 0x80020004, + DISP_E_TYPEMISMATCH = 0x80020005, + DISP_E_UNKNOWNNAME = 0x80020006, + DISP_E_NONAMEDARGS = 0x80020007, + DISP_E_BADVARTYPE = 0x80020008, + DISP_E_EXCEPTION = 0x80020009, + DISP_E_OVERFLOW = 0x8002000A, + DISP_E_BADINDEX = 0x8002000B, + DISP_E_UNKNOWNLCID = 0x8002000C, + DISP_E_ARRAYISLOCKED = 0x8002000D, + DISP_E_BADPARAMCOUNT = 0x8002000E, + DISP_E_PARAMNOTOPTIONAL = 0x8002000F, + DISP_E_BADCALLEE = 0x80020010, + DISP_E_NOTACOLLECTION = 0x80020011, + DISP_E_DIVBYZERO = 0x80020012, + + TYPE_E_BUFFERTOOSMALL = 0x80028016, + TYPE_E_INVDATAREAD = 0x80028018, + TYPE_E_UNSUPFORMAT = 0x80028019, + TYPE_E_REGISTRYACCESS = 0x8002801C, + TYPE_E_LIBNOTREGISTERED = 0x8002801D, + TYPE_E_UNDEFINEDTYPE = 0x80028027, + TYPE_E_QUALIFIEDNAMEDISALLOWED = 0x80028028, + TYPE_E_INVALIDSTATE = 0x80028029, + TYPE_E_WRONGTYPEKIND = 0x8002802A, + TYPE_E_ELEMENTNOTFOUND = 0x8002802B, + TYPE_E_AMBIGUOUSNAME = 0x8002802C, + TYPE_E_NAMECONFLICT = 0x8002802D, + TYPE_E_UNKNOWNLCID = 0x8002802E, + TYPE_E_DLLFUNCTIONNOTFOUND = 0x8002802F, + TYPE_E_BADMODULEKIND = 0x800288BD, + TYPE_E_SIZETOOBIG = 0x800288C5, + TYPE_E_DUPLICATEID = 0x800288C6, + TYPE_E_INVALIDID = 0x800288CF, + TYPE_E_TYPEMISMATCH = 0x80028CA0, + TYPE_E_OUTOFBOUNDS = 0x80028CA1, + TYPE_E_IOERROR = 0x80028CA2, + TYPE_E_CANTCREATETMPFILE = 0x80028CA3, + TYPE_E_CANTLOADLIBRARY = 0x80029C4A, + TYPE_E_INCONSISTENTPROPFUNCS = 0x80029C83, + TYPE_E_CIRCULARTYPE = 0x80029C84, + + STG_E_INVALIDFUNCTION = 0x80030001, + STG_E_FILENOTFOUND = 0x80030002, + STG_E_PATHNOTFOUND = 0x80030003, + STG_E_TOOMANYOPENFILES = 0x80030004, + STG_E_ACCESSDENIED = 0x80030005, + STG_E_INVALIDHANDLE = 0x80030006, + STG_E_INSUFFICIENTMEMORY = 0x80030008, + STG_E_INVALIDPOINTER = 0x80030009, + STG_E_NOMOREFILES = 0x80030012, + STG_E_DISKISWRITEPROTECTED = 0x80030013, + STG_E_SEEKERROR = 0x80030019, + STG_E_WRITEFAULT = 0x8003001D, + STG_E_READFAULT = 0x8003001E, + STG_E_SHAREVIOLATION = 0x80030020, + STG_E_LOCKVIOLATION = 0x80030021, + STG_E_FILEALREADYEXISTS = 0x80030050, + STG_E_INVALIDPARAMETER = 0x80030057, + STG_E_MEDIUMFULL = 0x80030070, + STG_E_ABNORMALAPIEXIT = 0x800300FA, + STG_E_INVALIDHEADER = 0x800300FB, + STG_E_INVALIDNAME = 0x800300FC, + STG_E_UNKNOWN = 0x800300FD, + STG_E_UNIMPLEMENTEDFUNCTION = 0x800300FE, + STG_E_INVALIDFLAG = 0x800300FF, + STG_E_INUSE = 0x80030100, + STG_E_NOTCURRENT = 0x80030101, + STG_E_REVERTED = 0x80030102, + STG_E_CANTSAVE = 0x80030103, + STG_E_OLDFORMAT = 0x80030104, + STG_E_OLDDLL = 0x80030105, + STG_E_SHAREREQUIRED = 0x80030106, + STG_E_NOTFILEBASEDSTORAGE = 0x80030107, + STG_E_EXTANTMARSHALLINGS = 0x80030108, + STG_S_CONVERTED = 0x00030200, + + OLE_E_FIRST = 0x80040000, + OLE_S_FIRST = 0x00040000, + OLE_E_OLEVERB = 0x80040000, + OLE_S_USEREG = 0x00040000, + OLE_E_ADVF = 0x80040001, + OLE_S_STATIC = 0x00040001, + OLE_E_ENUM_NOMORE = 0x80040002, + OLE_S_MAC_CLIPFORMAT = 0x00040002, + OLE_E_ADVISENOTSUPPORTED = 0x80040003, + OLE_E_NOCONNECTION = 0x80040004, + OLE_E_NOTRUNNING = 0x80040005, + OLE_E_NOCACHE = 0x80040006, + OLE_E_BLANK = 0x80040007, + OLE_E_CLASSDIFF = 0x80040008, + OLE_E_CANT_GETMONIKER = 0x80040009, + OLE_E_CANT_BINDTOSOURCE = 0x8004000A, + OLE_E_STATIC = 0x8004000B, + OLE_E_PROMPTSAVECANCELLED = 0x8004000C, + OLE_E_INVALIDRECT = 0x8004000D, + OLE_E_WRONGCOMPOBJ = 0x8004000E, + OLE_E_INVALIDHWND = 0x8004000F, + OLE_E_NOT_INPLACEACTIVE = 0x80040010, + OLE_E_CANTCONVERT = 0x80040011, + OLE_E_NOSTORAGE = 0x80040012, + + DV_E_FORMATETC = 0x80040064, + DV_E_DVTARGETDEVICE = 0x80040065, + DV_E_STGMEDIUM = 0x80040066, + DV_E_STATDATA = 0x80040067, + DV_E_LINDEX = 0x80040068, + DV_E_TYMED = 0x80040069, + DV_E_CLIPFORMAT = 0x8004006A, + DV_E_DVASPECT = 0x8004006B, + DV_E_DVTARGETDEVICE_SIZE = 0x8004006C, + DV_E_NOIVIEWOBJECT = 0x8004006D, + + OLE_E_LAST = 0x800400FF, + OLE_S_LAST = 0x000400FF, + DRAGDROP_E_FIRST = 0x80040100, + DRAGDROP_S_FIRST = 0x00040100, + DRAGDROP_E_NOTREGISTERED = 0x80040100, + DRAGDROP_S_DROP = 0x00040100, + DRAGDROP_E_ALREADYREGISTERED = 0x80040101, + DRAGDROP_S_CANCEL = 0x00040101, + DRAGDROP_E_INVALIDHWND = 0x80040102, + DRAGDROP_S_USEDEFAULTCURSORS = 0x00040102, + DRAGDROP_E_LAST = 0x8004010F, + DRAGDROP_S_LAST = 0x0004010F, + CLASSFACTORY_E_FIRST = 0x80040110, + CLASSFACTORY_S_FIRST = 0x00040110, + CLASS_E_NOAGGREGATION = 0x80040110, + CLASS_E_CLASSNOTAVAILABLE = 0x80040111, + CLASSFACTORY_E_LAST = 0x8004011F, + CLASSFACTORY_S_LAST = 0x0004011F, + MARSHAL_E_FIRST = 0x80040120, + MARSHAL_S_FIRST = 0x00040120, + MARSHAL_E_LAST = 0x8004012F, + MARSHAL_S_LAST = 0x0004012F, + DATA_E_FIRST = 0x80040130, + DATA_S_FIRST = 0x00040130, + DATA_S_SAMEFORMATETC = 0x00040130, + DATA_E_LAST = 0x8004013F, + DATA_S_LAST = 0x0004013F, + VIEW_E_FIRST = 0x80040140, + VIEW_S_FIRST = 0x00040140, + VIEW_E_DRAW = 0x80040140, + VIEW_S_ALREADY_FROZEN = 0x00040140, + VIEW_E_LAST = 0x8004014F, + VIEW_S_LAST = 0x0004014F, + REGDB_E_FIRST = 0x80040150, + REGDB_S_FIRST = 0x00040150, + REGDB_E_READREGDB = 0x80040150, + REGDB_E_WRITEREGDB = 0x80040151, + REGDB_E_KEYMISSING = 0x80040152, + REGDB_E_INVALIDVALUE = 0x80040153, + REGDB_E_CLASSNOTREG = 0x80040154, + REGDB_E_IIDNOTREG = 0x80040155, + REGDB_E_LAST = 0x8004015F, + REGDB_S_LAST = 0x0004015F, + CACHE_E_FIRST = 0x80040170, + CACHE_S_FIRST = 0x00040170, + CACHE_E_NOCACHE_UPDATED = 0x80040170, + CACHE_S_FORMATETC_NOTSUPPORTED = 0x00040170, + CACHE_S_SAMECACHE = 0x00040171, + CACHE_S_SOMECACHES_NOTUPDATED = 0x00040172, + CACHE_E_LAST = 0x8004017F, + CACHE_S_LAST = 0x0004017F, + OLEOBJ_E_FIRST = 0x80040180, + OLEOBJ_S_FIRST = 0x00040180, + OLEOBJ_E_NOVERBS = 0x80040180, + OLEOBJ_S_INVALIDVERB = 0x00040180, + OLEOBJ_E_INVALIDVERB = 0x80040181, + OLEOBJ_S_CANNOT_DOVERB_NOW = 0x00040181, + OLEOBJ_S_INVALIDHWND = 0x00040182, + OLEOBJ_E_LAST = 0x8004018F, + OLEOBJ_S_LAST = 0x0004018F, + CLIENTSITE_E_FIRST = 0x80040190, + CLIENTSITE_S_FIRST = 0x00040190, + CLIENTSITE_E_LAST = 0x8004019F, + CLIENTSITE_S_LAST = 0x0004019F, + INPLACE_E_NOTUNDOABLE = 0x800401A0, + INPLACE_E_FIRST = 0x800401A0, + INPLACE_S_FIRST = 0x000401A0, + INPLACE_S_TRUNCATED = 0x000401A0, + INPLACE_E_NOTOOLSPACE = 0x800401A1, + INPLACE_E_LAST = 0x800401AF, + INPLACE_S_LAST = 0x000401AF, + ENUM_E_FIRST = 0x800401B0, + ENUM_S_FIRST = 0x000401B0, + ENUM_E_LAST = 0x800401BF, + ENUM_S_LAST = 0x000401BF, + CONVERT10_E_FIRST = 0x800401C0, + CONVERT10_S_FIRST = 0x000401C0, + CONVERT10_E_OLESTREAM_GET = 0x800401C0, + CONVERT10_S_NO_PRESENTATION = 0x000401C0, + CONVERT10_E_OLESTREAM_PUT = 0x800401C1, + CONVERT10_E_OLESTREAM_FMT = 0x800401C2, + CONVERT10_E_OLESTREAM_BITMAP_TO_DIB = 0x800401C3, + CONVERT10_E_STG_FMT = 0x800401C4, + CONVERT10_E_STG_NO_STD_STREAM = 0x800401C5, + CONVERT10_E_STG_DIB_TO_BITMAP = 0x800401C6, + CONVERT10_E_LAST = 0x800401CF, + CONVERT10_S_LAST = 0x000401CF, + CLIPBRD_E_FIRST = 0x800401D0, + CLIPBRD_S_FIRST = 0x000401D0, + CLIPBRD_E_CANT_OPEN = 0x800401D0, + CLIPBRD_E_CANT_EMPTY = 0x800401D1, + CLIPBRD_E_CANT_SET = 0x800401D2, + CLIPBRD_E_BAD_DATA = 0x800401D3, + CLIPBRD_E_CANT_CLOSE = 0x800401D4, + CLIPBRD_E_LAST = 0x800401DF, + CLIPBRD_S_LAST = 0x000401DF, + MK_E_FIRST = 0x800401E0, + MK_S_FIRST = 0x000401E0, + MK_E_CONNECTMANUALLY = 0x800401E0, + MK_E_EXCEEDEDDEADLINE = 0x800401E1, + MK_E_NEEDGENERIC = 0x800401E2, + MK_S_REDUCED_TO_SELF = 0x000401E2, + MK_E_UNAVAILABLE = 0x800401E3, + MK_E_SYNTAX = 0x800401E4, + MK_S_ME = 0x000401E4, + MK_E_NOOBJECT = 0x800401E5, + MK_S_HIM = 0x000401E5, + MK_E_INVALIDEXTENSION = 0x800401E6, + MK_S_US = 0x000401E6, + MK_E_INTERMEDIATEINTERFACENOTSUPPORTED = 0x800401E7, + MK_S_MONIKERALREADYREGISTERED = 0x000401E7, + MK_E_NOTBINDABLE = 0x800401E8, + MK_E_NOTBOUND = 0x800401E9, + MK_E_CANTOPENFILE = 0x800401EA, + MK_E_MUSTBOTHERUSER = 0x800401EB, + MK_E_NOINVERSE = 0x800401EC, + MK_E_NOSTORAGE = 0x800401ED, + MK_E_NOPREFIX = 0x800401EE, + MK_E_LAST = 0x800401EF, + MK_S_LAST = 0x000401EF, + MK_E_ENUMERATION_FAILED = 0x800401EF, + CO_E_FIRST = 0x800401F0, + CO_S_FIRST = 0x000401F0, + CO_E_NOTINITIALIZED = 0x800401F0, + CO_E_ALREADYINITIALIZED = 0x800401F1, + CO_E_CANTDETERMINECLASS = 0x800401F2, + CO_E_CLASSSTRING = 0x800401F3, + CO_E_IIDSTRING = 0x800401F4, + CO_E_APPNOTFOUND = 0x800401F5, + CO_E_APPSINGLEUSE = 0x800401F6, + CO_E_ERRORINAPP = 0x800401F7, + CO_E_DLLNOTFOUND = 0x800401F8, + CO_E_ERRORINDLL = 0x800401F9, + CO_E_WRONGOSFORAPP = 0x800401FA, + CO_E_OBJNOTREG = 0x800401FB, + CO_E_OBJISREG = 0x800401FC, + CO_E_OBJNOTCONNECTED = 0x800401FD, + CO_E_APPDIDNTREG = 0x800401FE, + CO_E_LAST = 0x800401FF, + CO_S_LAST = 0x000401FF, + CO_E_RELEASED = 0x800401FF, + + CO_E_CLASS_CREATE_FAILED = 0x80080001, + CO_E_SCM_ERROR = 0x80080002, + CO_E_SCM_RPC_FAILURE = 0x80080003, + CO_E_BAD_PATH = 0x80080004, + CO_E_SERVER_EXEC_FAILURE = 0x80080005, + CO_E_OBJSRV_RPC_FAILURE = 0x80080006, + MK_E_NO_NORMALIZED = 0x80080007, + CO_E_SERVER_STOPPING = 0x80080008, + MEM_E_INVALID_ROOT = 0x80080009, + MEM_E_INVALID_LINK = 0x80080010, + MEM_E_INVALID_SIZE = 0x80080011, + CO_S_NOTALLINTERFACES = 0x00080012, + + NTE_BAD_UID = 0x80090001, + NTE_BAD_HASH = 0x80090002, + NTE_BAD_KEY = 0x80090003, + NTE_BAD_LEN = 0x80090004, + NTE_BAD_DATA = 0x80090005, + NTE_BAD_SIGNATURE = 0x80090006, + NTE_BAD_VER = 0x80090007, + NTE_BAD_ALGID = 0x80090008, + NTE_BAD_FLAGS = 0x80090009, + NTE_BAD_TYPE = 0x8009000A, + NTE_BAD_KEY_STATE = 0x8009000B, + NTE_BAD_HASH_STATE = 0x8009000C, + NTE_NO_KEY = 0x8009000D, + NTE_NO_MEMORY = 0x8009000E, + NTE_EXISTS = 0x8009000F, + NTE_PERM = 0x80090010, + NTE_NOT_FOUND = 0x80090011, + NTE_DOUBLE_ENCRYPT = 0x80090012, + NTE_BAD_PROVIDER = 0x80090013, + NTE_BAD_PROV_TYPE = 0x80090014, + NTE_BAD_PUBLIC_KEY = 0x80090015, + NTE_BAD_KEYSET = 0x80090016, + NTE_PROV_TYPE_NOT_DEF = 0x80090017, + NTE_PROV_TYPE_ENTRY_BAD = 0x80090018, + NTE_KEYSET_NOT_DEF = 0x80090019, + NTE_KEYSET_ENTRY_BAD = 0x8009001A, + NTE_PROV_TYPE_NO_MATCH = 0x8009001B, + NTE_SIGNATURE_FILE_BAD = 0x8009001C, + NTE_PROVIDER_DLL_FAIL = 0x8009001D, + NTE_PROV_DLL_NOT_FOUND = 0x8009001E, + NTE_BAD_KEYSET_PARAM = 0x8009001F, + NTE_FAIL = 0x80090020, + NTE_SYS_ERR = 0x80090021 +} + + +enum : bool { + SEVERITY_SUCCESS = 0, + SEVERITY_ERROR = 1 +} + +enum : uint { + FACILITY_NULL = 0, + FACILITY_RPC, + FACILITY_DISPATCH, + FACILITY_STORAGE, + FACILITY_ITF, // = 4 + FACILITY_WIN32 = 7, + FACILITY_WINDOWS = 8, + FACILITY_CONTROL = 10, + FACILITY_NT_BIT = 0x10000000 +} + +// C Macros + +bool SUCCEEDED(HRESULT Status) { + return Status >= 0; +} + +bool FAILED(HRESULT Status) { + return Status < 0; +} + +bool IS_ERROR(HRESULT Status) { + return (Status >>> 31) == SEVERITY_ERROR; +} + +ushort HRESULT_CODE(HRESULT r) { + return cast(ushort) (r & 0xFFFF); +} + +ushort SCODE_CODE(SCODE r) { + return cast(ushort) (r & 0xFFFF); +} + +ushort HRESULT_FACILITY(HRESULT r) { + return cast(ushort) ((r>>16) & 0x1fff); +} + +ushort SCODE_FACILITY(SCODE r) { + return cast(ushort) ((r>>16) & 0x1fff); +} + +ushort HRESULT_SEVERITY(HRESULT r) { + return cast(ushort) ((r>>31) & 0x1); +} + +ushort SCODE_SEVERITY(SCODE r) { + return cast(ushort) ((r>>31) & 0x1); +} + +HRESULT MAKE_HRESULT(bool s, uint f, uint c) { + return (s << 31) | (f << 16) | c; +} + +SCODE MAKE_SCODE(bool s, uint f, uint c) { + return (s << 31) | (f << 16) | c; +} + +SCODE GetScode(HRESULT hr) { + return hr; +} + +HRESULT ResultFromScode(SCODE c) { + return c; +} + +HRESULT HRESULT_FROM_NT(HRESULT x) { + return x | FACILITY_NT_BIT; +} + +HRESULT HRESULT_FROM_WIN32(HRESULT x) { + return x ? (x & 0x0000FFFF) | (FACILITY_WIN32 << 16) | 0x80000000 : 0; +} + +HRESULT PropagateResult(HRESULT hrPrevious, SCODE scBase) { + return scBase; +} Index: src/win32/wingdi.d ================================================================== --- src/win32/wingdi.d +++ src/win32/wingdi.d @@ -1,4997 +1,5295 @@ -module win32.wingdi; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.windef; - -// #ifndef _WINGDI_ -// #define _WINGDI_ - -// #ifdef _MAC -// #... -// #endif - -// #if !defined(_GDI32_) -// #define WINGDIAPI DECLSPEC_IMPORT -// #else -// #... -// #endif - -// #if !defined(_SPOOL32_) -// #define WINSPOOLAPI DECLSPEC_IMPORT -// #else -// #... -// #endif - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #ifndef WINVER -// #... -// #endif /* WINVER */ - -// #ifndef NOGDI - -// #ifndef NORASTEROPS - -enum : uint { R2_BLACK = 1 } -enum : uint { R2_NOTMERGEPEN = 2 } -enum : uint { R2_MASKNOTPEN = 3 } -enum : uint { R2_NOTCOPYPEN = 4 } -enum : uint { R2_MASKPENNOT = 5 } -enum : uint { R2_NOT = 6 } -enum : uint { R2_XORPEN = 7 } -enum : uint { R2_NOTMASKPEN = 8 } -enum : uint { R2_MASKPEN = 9 } -enum : uint { R2_NOTXORPEN = 10 } -enum : uint { R2_NOP = 11 } -enum : uint { R2_MERGENOTPEN = 12 } -enum : uint { R2_COPYPEN = 13 } -enum : uint { R2_MERGEPENNOT = 14 } -enum : uint { R2_MERGEPEN = 15 } -enum : uint { R2_WHITE = 16 } -enum : uint { R2_LAST = 16 } - -enum : DWORD { SRCCOPY = 0x00CC0020 } -enum : DWORD { SRCPAINT = 0x00EE0086 } -enum : DWORD { SRCAND = 0x008800C6 } -enum : DWORD { SRCINVERT = 0x00660046 } -enum : DWORD { SRCERASE = 0x00440328 } -enum : DWORD { NOTSRCCOPY = 0x00330008 } -enum : DWORD { NOTSRCERASE = 0x001100A6 } -enum : DWORD { MERGECOPY = 0x00C000CA } -enum : DWORD { MERGEPAINT = 0x00BB0226 } -enum : DWORD { PATCOPY = 0x00F00021 } -enum : DWORD { PATPAINT = 0x00FB0A09 } -enum : DWORD { PATINVERT = 0x005A0049 } -enum : DWORD { DSTINVERT = 0x00550009 } -enum : DWORD { BLACKNESS = 0x00000042 } -enum : DWORD { WHITENESS = 0x00FF0062 } -// #if(WINVER >= 0x0500) - -enum : DWORD { NOMIRRORBITMAP = 0x80000000 } -enum : DWORD { CAPTUREBLT = 0x40000000 } -// #endif /* WINVER >= 0x0500 */ - -DWORD MAKEROP4(DWORD fore, DWORD back){ return ((back << 8) & 0xFF000000) | fore; } - -// #endif /* NORASTEROPS */ - -enum : uint { GDI_ERROR = 0xFFFFFFFF } -const HANDLE HGDI_ERROR = cast(HANDLE)(0xFFFFFFFFL); - -enum : uint { ERROR = 0 } -enum : uint { NULLREGION = 1 } -enum : uint { SIMPLEREGION = 2 } -enum : uint { COMPLEXREGION = 3 } -alias ERROR RGN_ERROR; - -enum : uint { RGN_AND = 1 } -enum : uint { RGN_OR = 2 } -enum : uint { RGN_XOR = 3 } -enum : uint { RGN_DIFF = 4 } -enum : uint { RGN_COPY = 5 } -alias RGN_AND RGN_MIN; -alias RGN_COPY RGN_MAX; - -enum : uint { BLACKONWHITE = 1 } -enum : uint { WHITEONBLACK = 2 } -enum : uint { COLORONCOLOR = 3 } -enum : uint { HALFTONE = 4 } -enum : uint { MAXSTRETCHBLTMODE = 4 } - -// #if(WINVER >= 0x0400) - -alias BLACKONWHITE STRETCH_ANDSCANS; -alias WHITEONBLACK STRETCH_ORSCANS; -alias COLORONCOLOR STRETCH_DELETESCANS; -alias HALFTONE STRETCH_HALFTONE; -// #endif /* WINVER >= 0x0400 */ - -enum : uint { ALTERNATE = 1 } -enum : uint { WINDING = 2 } -enum : uint { POLYFILL_LAST = 2 } - -// #if(WINVER >= 0x0500) -enum : uint { LAYOUT_RTL = 0x00000001 } -enum : uint { LAYOUT_BTT = 0x00000002 } -enum : uint { LAYOUT_VBH = 0x00000004 } -enum : uint { LAYOUT_ORIENTATIONMASK = LAYOUT_RTL | LAYOUT_BTT | LAYOUT_VBH } -enum : uint { LAYOUT_BITMAPORIENTATIONPRESERVED = 0x00000008 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { TA_NOUPDATECP = 0 } -enum : uint { TA_UPDATECP = 1 } - -enum : uint { TA_LEFT = 0 } -enum : uint { TA_RIGHT = 2 } -enum : uint { TA_CENTER = 6 } - -enum : uint { TA_TOP = 0 } -enum : uint { TA_BOTTOM = 8 } -enum : uint { TA_BASELINE = 24 } -// #if (WINVER >= 0x0400) -enum : uint { TA_RTLREADING = 256 } -enum : uint { TA_MASK = TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING } -// #else -// #... -// #endif - -alias TA_BASELINE VTA_BASELINE; -alias TA_BOTTOM VTA_LEFT; -alias TA_TOP VTA_RIGHT; -alias TA_CENTER VTA_CENTER; -alias TA_RIGHT VTA_BOTTOM; -alias TA_LEFT VTA_TOP; - -enum : uint { ETO_OPAQUE = 0x0002 } -enum : uint { ETO_CLIPPED = 0x0004 } -// #if(WINVER >= 0x0400) -enum : uint { ETO_GLYPH_INDEX = 0x0010 } -enum : uint { ETO_RTLREADING = 0x0080 } -enum : uint { ETO_NUMERICSLOCAL = 0x0400 } -enum : uint { ETO_NUMERICSLATIN = 0x0800 } -enum : uint { ETO_IGNORELANGUAGE = 0x1000 } -// #endif /* WINVER >= 0x0400 */ -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { ETO_PDY = 0x2000 } -// #endif // (_WIN32_WINNT >= 0x0500) - -enum : uint { ASPECT_FILTERING = 0x0001 } - -enum : uint { DCB_RESET = 0x0001 } -enum : uint { DCB_ACCUMULATE = 0x0002 } -alias DCB_ACCUMULATE DCB_DIRTY; -enum : uint { DCB_SET = DCB_RESET | DCB_ACCUMULATE } -enum : uint { DCB_ENABLE = 0x0004 } -enum : uint { DCB_DISABLE = 0x0008 } - -// #ifndef NOMETAFILE - -enum : uint { META_SETBKCOLOR = 0x0201 } -enum : uint { META_SETBKMODE = 0x0102 } -enum : uint { META_SETMAPMODE = 0x0103 } -enum : uint { META_SETROP2 = 0x0104 } -enum : uint { META_SETRELABS = 0x0105 } -enum : uint { META_SETPOLYFILLMODE = 0x0106 } -enum : uint { META_SETSTRETCHBLTMODE = 0x0107 } -enum : uint { META_SETTEXTCHAREXTRA = 0x0108 } -enum : uint { META_SETTEXTCOLOR = 0x0209 } -enum : uint { META_SETTEXTJUSTIFICATION = 0x020A } -enum : uint { META_SETWINDOWORG = 0x020B } -enum : uint { META_SETWINDOWEXT = 0x020C } -enum : uint { META_SETVIEWPORTORG = 0x020D } -enum : uint { META_SETVIEWPORTEXT = 0x020E } -enum : uint { META_OFFSETWINDOWORG = 0x020F } -enum : uint { META_SCALEWINDOWEXT = 0x0410 } -enum : uint { META_OFFSETVIEWPORTORG = 0x0211 } -enum : uint { META_SCALEVIEWPORTEXT = 0x0412 } -enum : uint { META_LINETO = 0x0213 } -enum : uint { META_MOVETO = 0x0214 } -enum : uint { META_EXCLUDECLIPRECT = 0x0415 } -enum : uint { META_INTERSECTCLIPRECT = 0x0416 } -enum : uint { META_ARC = 0x0817 } -enum : uint { META_ELLIPSE = 0x0418 } -enum : uint { META_FLOODFILL = 0x0419 } -enum : uint { META_PIE = 0x081A } -enum : uint { META_RECTANGLE = 0x041B } -enum : uint { META_ROUNDRECT = 0x061C } -enum : uint { META_PATBLT = 0x061D } -enum : uint { META_SAVEDC = 0x001E } -enum : uint { META_SETPIXEL = 0x041F } -enum : uint { META_OFFSETCLIPRGN = 0x0220 } -enum : uint { META_TEXTOUT = 0x0521 } -enum : uint { META_BITBLT = 0x0922 } -enum : uint { META_STRETCHBLT = 0x0B23 } -enum : uint { META_POLYGON = 0x0324 } -enum : uint { META_POLYLINE = 0x0325 } -enum : uint { META_ESCAPE = 0x0626 } -enum : uint { META_RESTOREDC = 0x0127 } -enum : uint { META_FILLREGION = 0x0228 } -enum : uint { META_FRAMEREGION = 0x0429 } -enum : uint { META_INVERTREGION = 0x012A } -enum : uint { META_PAINTREGION = 0x012B } -enum : uint { META_SELECTCLIPREGION = 0x012C } -enum : uint { META_SELECTOBJECT = 0x012D } -enum : uint { META_SETTEXTALIGN = 0x012E } -enum : uint { META_CHORD = 0x0830 } -enum : uint { META_SETMAPPERFLAGS = 0x0231 } -enum : uint { META_EXTTEXTOUT = 0x0a32 } -enum : uint { META_SETDIBTODEV = 0x0d33 } -enum : uint { META_SELECTPALETTE = 0x0234 } -enum : uint { META_REALIZEPALETTE = 0x0035 } -enum : uint { META_ANIMATEPALETTE = 0x0436 } -enum : uint { META_SETPALENTRIES = 0x0037 } -enum : uint { META_POLYPOLYGON = 0x0538 } -enum : uint { META_RESIZEPALETTE = 0x0139 } -enum : uint { META_DIBBITBLT = 0x0940 } -enum : uint { META_DIBSTRETCHBLT = 0x0b41 } -enum : uint { META_DIBCREATEPATTERNBRUSH = 0x0142 } -enum : uint { META_STRETCHDIB = 0x0f43 } -enum : uint { META_EXTFLOODFILL = 0x0548 } -// #if(WINVER >= 0x0500) -enum : uint { META_SETLAYOUT = 0x0149 } -// #endif /* WINVER >= 0x0500 */ -enum : uint { META_DELETEOBJECT = 0x01f0 } -enum : uint { META_CREATEPALETTE = 0x00f7 } -enum : uint { META_CREATEPATTERNBRUSH = 0x01F9 } -enum : uint { META_CREATEPENINDIRECT = 0x02FA } -enum : uint { META_CREATEFONTINDIRECT = 0x02FB } -enum : uint { META_CREATEBRUSHINDIRECT = 0x02FC } -enum : uint { META_CREATEREGION = 0x06FF } - -// #if(WINVER >= 0x0400) -struct _DRAWPATRECT { - POINT ptPosition; - POINT ptSize; - WORD wStyle; - WORD wPattern; -} -alias _DRAWPATRECT DRAWPATRECT; -alias _DRAWPATRECT* PDRAWPATRECT; - -// #endif /* WINVER >= 0x0400 */ - -// #endif /* NOMETAFILE */ - -enum : uint { NEWFRAME = 1 } -enum : uint { ABORTDOC = 2 } -enum : uint { NEXTBAND = 3 } -enum : uint { SETCOLORTABLE = 4 } -enum : uint { GETCOLORTABLE = 5 } -enum : uint { FLUSHOUTPUT = 6 } -enum : uint { DRAFTMODE = 7 } -enum : uint { QUERYESCSUPPORT = 8 } -enum : uint { SETABORTPROC = 9 } -enum : uint { STARTDOC = 10 } -enum : uint { ENDDOC = 11 } -enum : uint { GETPHYSPAGESIZE = 12 } -enum : uint { GETPRINTINGOFFSET = 13 } -enum : uint { GETSCALINGFACTOR = 14 } -enum : uint { MFCOMMENT = 15 } -enum : uint { GETPENWIDTH = 16 } -enum : uint { SETCOPYCOUNT = 17 } -enum : uint { SELECTPAPERSOURCE = 18 } -enum : uint { DEVICEDATA = 19 } -enum : uint { PASSTHROUGH = 19 } -enum : uint { GETTECHNOLGY = 20 } -enum : uint { GETTECHNOLOGY = 20 } -enum : uint { SETLINECAP = 21 } -enum : uint { SETLINEJOIN = 22 } -enum : uint { SETMITERLIMIT = 23 } -enum : uint { BANDINFO = 24 } -enum : uint { DRAWPATTERNRECT = 25 } -enum : uint { GETVECTORPENSIZE = 26 } -enum : uint { GETVECTORBRUSHSIZE = 27 } -enum : uint { ENABLEDUPLEX = 28 } -enum : uint { GETSETPAPERBINS = 29 } -enum : uint { GETSETPRINTORIENT = 30 } -enum : uint { ENUMPAPERBINS = 31 } -enum : uint { SETDIBSCALING = 32 } -enum : uint { EPSPRINTING = 33 } -enum : uint { ENUMPAPERMETRICS = 34 } -enum : uint { GETSETPAPERMETRICS = 35 } -enum : uint { POSTSCRIPT_DATA = 37 } -enum : uint { POSTSCRIPT_IGNORE = 38 } -enum : uint { MOUSETRAILS = 39 } -enum : uint { GETDEVICEUNITS = 42 } - -enum : uint { GETEXTENDEDTEXTMETRICS = 256 } -enum : uint { GETEXTENTTABLE = 257 } -enum : uint { GETPAIRKERNTABLE = 258 } -enum : uint { GETTRACKKERNTABLE = 259 } -enum : uint { EXTTEXTOUT = 512 } -enum : uint { GETFACENAME = 513 } -enum : uint { DOWNLOADFACE = 514 } -enum : uint { ENABLERELATIVEWIDTHS = 768 } -enum : uint { ENABLEPAIRKERNING = 769 } -enum : uint { SETKERNTRACK = 770 } -enum : uint { SETALLJUSTVALUES = 771 } -enum : uint { SETCHARSET = 772 } - -enum : uint { STRETCHBLT = 2048 } -enum : uint { METAFILE_DRIVER = 2049 } -enum : uint { GETSETSCREENPARAMS = 3072 } -enum : uint { QUERYDIBSUPPORT = 3073 } -enum : uint { BEGIN_PATH = 4096 } -enum : uint { CLIP_TO_PATH = 4097 } -enum : uint { END_PATH = 4098 } -enum : uint { EXT_DEVICE_CAPS = 4099 } -enum : uint { RESTORE_CTM = 4100 } -enum : uint { SAVE_CTM = 4101 } -enum : uint { SET_ARC_DIRECTION = 4102 } -enum : uint { SET_BACKGROUND_COLOR = 4103 } -enum : uint { SET_POLY_MODE = 4104 } -enum : uint { SET_SCREEN_ANGLE = 4105 } -enum : uint { SET_SPREAD = 4106 } -enum : uint { TRANSFORM_CTM = 4107 } -enum : uint { SET_CLIP_BOX = 4108 } -enum : uint { SET_BOUNDS = 4109 } -enum : uint { SET_MIRROR_MODE = 4110 } -enum : uint { OPENCHANNEL = 4110 } -enum : uint { DOWNLOADHEADER = 4111 } -enum : uint { CLOSECHANNEL = 4112 } -enum : uint { POSTSCRIPT_PASSTHROUGH = 4115 } -enum : uint { ENCAPSULATED_POSTSCRIPT = 4116 } - -enum : uint { POSTSCRIPT_IDENTIFY = 4117 } -enum : uint { POSTSCRIPT_INJECTION = 4118 } - -enum : uint { CHECKJPEGFORMAT = 4119 } -enum : uint { CHECKPNGFORMAT = 4120 } - -enum : uint { GET_PS_FEATURESETTING = 4121 } - -enum : uint { SPCLPASSTHROUGH2 = 4568 } - -enum : uint { PSIDENT_GDICENTRIC = 0 } -enum : uint { PSIDENT_PSCENTRIC = 1 } - -struct _PSINJECTDATA { - - DWORD DataBytes; - WORD InjectionPoint; - WORD PageNumber; - -} -alias _PSINJECTDATA PSINJECTDATA; -alias _PSINJECTDATA* PPSINJECTDATA; - -enum : uint { PSINJECT_BEGINSTREAM = 1 } -enum : uint { PSINJECT_PSADOBE = 2 } -enum : uint { PSINJECT_PAGESATEND = 3 } -enum : uint { PSINJECT_PAGES = 4 } - -enum : uint { PSINJECT_DOCNEEDEDRES = 5 } -enum : uint { PSINJECT_DOCSUPPLIEDRES = 6 } -enum : uint { PSINJECT_PAGEORDER = 7 } -enum : uint { PSINJECT_ORIENTATION = 8 } -enum : uint { PSINJECT_BOUNDINGBOX = 9 } -enum : uint { PSINJECT_DOCUMENTPROCESSCOLORS = 10 } - -enum : uint { PSINJECT_COMMENTS = 11 } -enum : uint { PSINJECT_BEGINDEFAULTS = 12 } -enum : uint { PSINJECT_ENDDEFAULTS = 13 } -enum : uint { PSINJECT_BEGINPROLOG = 14 } -enum : uint { PSINJECT_ENDPROLOG = 15 } -enum : uint { PSINJECT_BEGINSETUP = 16 } -enum : uint { PSINJECT_ENDSETUP = 17 } -enum : uint { PSINJECT_TRAILER = 18 } -enum : uint { PSINJECT_EOF = 19 } -enum : uint { PSINJECT_ENDSTREAM = 20 } -enum : uint { PSINJECT_DOCUMENTPROCESSCOLORSATEND = 21 } - -enum : uint { PSINJECT_PAGENUMBER = 100 } -enum : uint { PSINJECT_BEGINPAGESETUP = 101 } -enum : uint { PSINJECT_ENDPAGESETUP = 102 } -enum : uint { PSINJECT_PAGETRAILER = 103 } -enum : uint { PSINJECT_PLATECOLOR = 104 } - -enum : uint { PSINJECT_SHOWPAGE = 105 } -enum : uint { PSINJECT_PAGEBBOX = 106 } -enum : uint { PSINJECT_ENDPAGECOMMENTS = 107 } - -enum : uint { PSINJECT_VMSAVE = 200 } -enum : uint { PSINJECT_VMRESTORE = 201 } - -enum : uint { FEATURESETTING_NUP = 0 } -enum : uint { FEATURESETTING_OUTPUT = 1 } -enum : uint { FEATURESETTING_PSLEVEL = 2 } -enum : uint { FEATURESETTING_CUSTPAPER = 3 } -enum : uint { FEATURESETTING_MIRROR = 4 } -enum : uint { FEATURESETTING_NEGATIVE = 5 } -enum : uint { FEATURESETTING_PROTOCOL = 6 } - -enum : uint { FEATURESETTING_PRIVATE_BEGIN = 0x1000 } -enum : uint { FEATURESETTING_PRIVATE_END = 0x1FFF } - -struct _PSFEATURE_OUTPUT { - - BOOL bPageIndependent; - BOOL bSetPageDevice; -} -alias _PSFEATURE_OUTPUT PSFEATURE_OUTPUT; -alias _PSFEATURE_OUTPUT* PPSFEATURE_OUTPUT; - -struct _PSFEATURE_CUSTPAPER { - - LONG lOrientation; - LONG lWidth; - LONG lHeight; - LONG lWidthOffset; - LONG lHeightOffset; -} -alias _PSFEATURE_CUSTPAPER PSFEATURE_CUSTPAPER; -alias _PSFEATURE_CUSTPAPER* PPSFEATURE_CUSTPAPER; - -enum : uint { PSPROTOCOL_ASCII = 0 } -enum : uint { PSPROTOCOL_BCP = 1 } -enum : uint { PSPROTOCOL_TBCP = 2 } -enum : uint { PSPROTOCOL_BINARY = 3 } - -enum : uint { QDI_SETDIBITS = 1 } -enum : uint { QDI_GETDIBITS = 2 } -enum : uint { QDI_DIBTOSCREEN = 4 } -enum : uint { QDI_STRETCHDIB = 8 } - -enum : uint { SP_NOTREPORTED = 0x4000 } -enum { SP_ERROR = -1 } -enum { SP_APPABORT = -2 } -enum { SP_USERABORT = -3 } -enum { SP_OUTOFDISK = -4 } -enum { SP_OUTOFMEMORY = -5 } - -enum : uint { PR_JOBSTATUS = 0x0000 } - -enum : uint { OBJ_PEN = 1 } -enum : uint { OBJ_BRUSH = 2 } -enum : uint { OBJ_DC = 3 } -enum : uint { OBJ_METADC = 4 } -enum : uint { OBJ_PAL = 5 } -enum : uint { OBJ_FONT = 6 } -enum : uint { OBJ_BITMAP = 7 } -enum : uint { OBJ_REGION = 8 } -enum : uint { OBJ_METAFILE = 9 } -enum : uint { OBJ_MEMDC = 10 } -enum : uint { OBJ_EXTPEN = 11 } -enum : uint { OBJ_ENHMETADC = 12 } -enum : uint { OBJ_ENHMETAFILE = 13 } -enum : uint { OBJ_COLORSPACE = 14 } - -enum : uint { MWT_IDENTITY = 1 } -enum : uint { MWT_LEFTMULTIPLY = 2 } -enum : uint { MWT_RIGHTMULTIPLY = 3 } - -alias MWT_IDENTITY MWT_MIN; -alias MWT_RIGHTMULTIPLY MWT_MAX; - -// #define _XFORM_ -struct tagXFORM { - FLOAT eM11; - FLOAT eM12; - FLOAT eM21; - FLOAT eM22; - FLOAT eDx; - FLOAT eDy; -} -alias tagXFORM XFORM; -alias tagXFORM* PXFORM; -alias tagXFORM* LPXFORM; - -struct tagBITMAP { - LONG bmType; - LONG bmWidth; - LONG bmHeight; - LONG bmWidthBytes; - WORD bmPlanes; - WORD bmBitsPixel; - LPVOID bmBits; -} -alias tagBITMAP BITMAP; -alias tagBITMAP* PBITMAP; -alias tagBITMAP* NPBITMAP; -alias tagBITMAP* LPBITMAP; - -align(1): -struct tagRGBTRIPLE { - BYTE rgbtBlue; - BYTE rgbtGreen; - BYTE rgbtRed; -} -alias tagRGBTRIPLE RGBTRIPLE; - -align: - -struct tagRGBQUAD { - BYTE rgbBlue; - BYTE rgbGreen; - BYTE rgbRed; - BYTE rgbReserved; -} -alias tagRGBQUAD RGBQUAD; - -alias RGBQUAD* LPRGBQUAD; - -// #if(WINVER >= 0x0400) - -enum : uint { CS_ENABLE = 0x00000001 } -enum : uint { CS_DISABLE = 0x00000002 } -enum : uint { CS_DELETE_TRANSFORM = 0x00000003 } - -// #define LCS_SIGNATURE 'PSOC' - -// #define LCS_sRGB 'sRGB' -// #define LCS_WINDOWS_COLOR_SPACE 'Win ' - -alias LONG LCSCSTYPE; -enum : uint { LCS_CALIBRATED_RGB = 0x00000000 } - -alias LONG LCSGAMUTMATCH; -enum : uint { LCS_GM_BUSINESS = 0x00000001 } -enum : uint { LCS_GM_GRAPHICS = 0x00000002 } -enum : uint { LCS_GM_IMAGES = 0x00000004 } -enum : uint { LCS_GM_ABS_COLORIMETRIC = 0x00000008 } - -enum : uint { CM_OUT_OF_GAMUT = 255 } -enum : uint { CM_IN_GAMUT = 0 } - -enum : uint { ICM_ADDPROFILE = 1 } -enum : uint { ICM_DELETEPROFILE = 2 } -enum : uint { ICM_QUERYPROFILE = 3 } -enum : uint { ICM_SETDEFAULTPROFILE = 4 } -enum : uint { ICM_REGISTERICMATCHER = 5 } -enum : uint { ICM_UNREGISTERICMATCHER = 6 } -enum : uint { ICM_QUERYMATCH = 7 } - -BYTE GetKValue(DWORD cmyk){ return cast(BYTE)cmyk; } -BYTE GetYValue(DWORD cmyk){ return cast(BYTE)(cmyk >>> 8); } -BYTE GetMValue(DWORD cmyk){ return cast(BYTE)(cmyk >>> 16); } -BYTE GetCValue(DWORD cmyk){ return cast(BYTE)(cmyk >>> 24); } - -DWORD CMYK(BYTE c, BYTE m, BYTE y, BYTE k){ return (cast(COLORREF)(((cast(BYTE)(k)|(cast(WORD)(cast(BYTE)(y))<<8))|((cast(DWORD)cast(BYTE)(m))<<16))|((cast(DWORD)cast(BYTE)(c))<<24))); } - -alias int FXPT16DOT16; -alias int* LPFXPT16DOT16; -alias int FXPT2DOT30; -alias int* LPFXPT2DOT30; - -struct tagCIEXYZ { - FXPT2DOT30 ciexyzX; - FXPT2DOT30 ciexyzY; - FXPT2DOT30 ciexyzZ; -} -alias tagCIEXYZ CIEXYZ; - -alias CIEXYZ* LPCIEXYZ; - -struct tagICEXYZTRIPLE { - CIEXYZ ciexyzRed; - CIEXYZ ciexyzGreen; - CIEXYZ ciexyzBlue; -} -alias tagICEXYZTRIPLE CIEXYZTRIPLE; - -alias CIEXYZTRIPLE* LPCIEXYZTRIPLE; - -struct tagLOGCOLORSPACEA { - DWORD lcsSignature; - DWORD lcsVersion; - DWORD lcsSize; - LCSCSTYPE lcsCSType; - LCSGAMUTMATCH lcsIntent; - CIEXYZTRIPLE lcsEndpoints; - DWORD lcsGammaRed; - DWORD lcsGammaGreen; - DWORD lcsGammaBlue; - CHAR lcsFilename[MAX_PATH]; -} -alias tagLOGCOLORSPACEA LOGCOLORSPACEA; -alias tagLOGCOLORSPACEA* LPLOGCOLORSPACEA; - -struct tagLOGCOLORSPACEW { - DWORD lcsSignature; - DWORD lcsVersion; - DWORD lcsSize; - LCSCSTYPE lcsCSType; - LCSGAMUTMATCH lcsIntent; - CIEXYZTRIPLE lcsEndpoints; - DWORD lcsGammaRed; - DWORD lcsGammaGreen; - DWORD lcsGammaBlue; - WCHAR lcsFilename[MAX_PATH]; -} -alias tagLOGCOLORSPACEW LOGCOLORSPACEW; -alias tagLOGCOLORSPACEW* LPLOGCOLORSPACEW; - -// #ifdef UNICODE -alias LOGCOLORSPACEW LOGCOLORSPACE; -alias LPLOGCOLORSPACEW LPLOGCOLORSPACE; -// #else -// ... -// #endif // UNICODE - -// #endif /* WINVER >= 0x0400 */ - -struct tagBITMAPCOREHEADER { - DWORD bcSize; - WORD bcWidth; - WORD bcHeight; - WORD bcPlanes; - WORD bcBitCount; -} -alias tagBITMAPCOREHEADER BITMAPCOREHEADER; -alias tagBITMAPCOREHEADER* LPBITMAPCOREHEADER; -alias tagBITMAPCOREHEADER* PBITMAPCOREHEADER; - -struct tagBITMAPINFOHEADER { - DWORD biSize; - LONG biWidth; - LONG biHeight; - WORD biPlanes; - WORD biBitCount; - DWORD biCompression; - DWORD biSizeImage; - LONG biXPelsPerMeter; - LONG biYPelsPerMeter; - DWORD biClrUsed; - DWORD biClrImportant; -} -alias tagBITMAPINFOHEADER BITMAPINFOHEADER; -alias tagBITMAPINFOHEADER* LPBITMAPINFOHEADER; -alias tagBITMAPINFOHEADER* PBITMAPINFOHEADER; - -// #if(WINVER >= 0x0400) -struct _0 { - DWORD bV4Size; - LONG bV4Width; - LONG bV4Height; - WORD bV4Planes; - WORD bV4BitCount; - DWORD bV4V4Compression; - DWORD bV4SizeImage; - LONG bV4XPelsPerMeter; - LONG bV4YPelsPerMeter; - DWORD bV4ClrUsed; - DWORD bV4ClrImportant; - DWORD bV4RedMask; - DWORD bV4GreenMask; - DWORD bV4BlueMask; - DWORD bV4AlphaMask; - DWORD bV4CSType; - CIEXYZTRIPLE bV4Endpoints; - DWORD bV4GammaRed; - DWORD bV4GammaGreen; - DWORD bV4GammaBlue; -} -alias _0 BITMAPV4HEADER; -alias _0* LPBITMAPV4HEADER; -alias _0* PBITMAPV4HEADER; - -// #endif /* WINVER >= 0x0400 */ - -// #if (WINVER >= 0x0500) -struct _1 { - DWORD bV5Size; - LONG bV5Width; - LONG bV5Height; - WORD bV5Planes; - WORD bV5BitCount; - DWORD bV5Compression; - DWORD bV5SizeImage; - LONG bV5XPelsPerMeter; - LONG bV5YPelsPerMeter; - DWORD bV5ClrUsed; - DWORD bV5ClrImportant; - DWORD bV5RedMask; - DWORD bV5GreenMask; - DWORD bV5BlueMask; - DWORD bV5AlphaMask; - DWORD bV5CSType; - CIEXYZTRIPLE bV5Endpoints; - DWORD bV5GammaRed; - DWORD bV5GammaGreen; - DWORD bV5GammaBlue; - DWORD bV5Intent; - DWORD bV5ProfileData; - DWORD bV5ProfileSize; - DWORD bV5Reserved; -} -alias _1 BITMAPV5HEADER; -alias _1* LPBITMAPV5HEADER; -alias _1* PBITMAPV5HEADER; - -// #define PROFILE_LINKED 'LINK' -// #define PROFILE_EMBEDDED 'MBED' -// #endif - -enum : uint { BI_RGB = 0 } -enum : uint { BI_RLE8 = 1 } -enum : uint { BI_RLE4 = 2 } -enum : uint { BI_BITFIELDS = 3 } -enum : uint { BI_JPEG = 4 } -enum : uint { BI_PNG = 5 } -// #if (_WIN32_WINNT >= 0x0400) -// #endif - -struct tagBITMAPINFO { - BITMAPINFOHEADER bmiHeader; - RGBQUAD bmiColors[1]; -} -alias tagBITMAPINFO BITMAPINFO; -alias tagBITMAPINFO* LPBITMAPINFO; -alias tagBITMAPINFO* PBITMAPINFO; - -struct tagBITMAPCOREINFO { - BITMAPCOREHEADER bmciHeader; - RGBTRIPLE bmciColors[1]; -} -alias tagBITMAPCOREINFO BITMAPCOREINFO; -alias tagBITMAPCOREINFO* LPBITMAPCOREINFO; -alias tagBITMAPCOREINFO* PBITMAPCOREINFO; - -align(2): -struct tagBITMAPFILEHEADER { - WORD bfType; - DWORD bfSize; - WORD bfReserved1; - WORD bfReserved2; - DWORD bfOffBits; -} -alias tagBITMAPFILEHEADER BITMAPFILEHEADER; -alias tagBITMAPFILEHEADER* LPBITMAPFILEHEADER; -alias tagBITMAPFILEHEADER* PBITMAPFILEHEADER; - -align: - -// #define MAKEPOINTS(l) (*((POINTS FAR *)&(l))) - -// #if(WINVER >= 0x0400) -// #ifndef NOFONTSIG -struct tagFONTSIGNATURE { - DWORD fsUsb[4]; - DWORD fsCsb[2]; -} -alias tagFONTSIGNATURE FONTSIGNATURE; -alias tagFONTSIGNATURE* PFONTSIGNATURE; -alias tagFONTSIGNATURE* LPFONTSIGNATURE; - -struct tagCHARSETINFO { - UINT ciCharset; - UINT ciACP; - FONTSIGNATURE fs; -} -alias tagCHARSETINFO CHARSETINFO; -alias tagCHARSETINFO* PCHARSETINFO; -alias tagCHARSETINFO* NPCHARSETINFO; -alias tagCHARSETINFO* LPCHARSETINFO; - -enum : uint { TCI_SRCCHARSET = 1 } -enum : uint { TCI_SRCCODEPAGE = 2 } -enum : uint { TCI_SRCFONTSIG = 3 } - -struct tagLOCALESIGNATURE { - DWORD lsUsb[4]; - DWORD lsCsbDefault[2]; - DWORD lsCsbSupported[2]; -} -alias tagLOCALESIGNATURE LOCALESIGNATURE; -alias tagLOCALESIGNATURE* PLOCALESIGNATURE; -alias tagLOCALESIGNATURE* LPLOCALESIGNATURE; - -// #endif -// #endif /* WINVER >= 0x0400 */ - -// #ifndef NOMETAFILE - -struct tagHANDLETABLE { - HGDIOBJ objectHandle[1]; -} -alias tagHANDLETABLE HANDLETABLE; -alias tagHANDLETABLE* PHANDLETABLE; -alias tagHANDLETABLE* LPHANDLETABLE; - -struct tagMETARECORD { - DWORD rdSize; - WORD rdFunction; - WORD rdParm[1]; -} -alias tagMETARECORD METARECORD; - -alias tagMETARECORD* PMETARECORD; -alias tagMETARECORD* LPMETARECORD; - -struct tagMETAFILEPICT { - LONG mm; - LONG xExt; - LONG yExt; - HMETAFILE hMF; -} -alias tagMETAFILEPICT METAFILEPICT; -alias tagMETAFILEPICT* LPMETAFILEPICT; - -align(2): -struct tagMETAHEADER { - WORD mtType; - WORD mtHeaderSize; - WORD mtVersion; - DWORD mtSize; - WORD mtNoObjects; - DWORD mtMaxRecord; - WORD mtNoParameters; -} -alias tagMETAHEADER METAHEADER; - -alias tagMETAHEADER* PMETAHEADER; -alias tagMETAHEADER* LPMETAHEADER; - -align: - -struct tagENHMETARECORD { - DWORD iType; - DWORD nSize; - DWORD dParm[1]; -} -alias tagENHMETARECORD ENHMETARECORD; -alias tagENHMETARECORD* PENHMETARECORD; -alias tagENHMETARECORD* LPENHMETARECORD; - -struct tagENHMETAHEADER { - DWORD iType; - DWORD nSize; - - RECTL rclBounds; - RECTL rclFrame; - DWORD dSignature; - DWORD nVersion; - DWORD nBytes; - DWORD nRecords; - WORD nHandles; - - WORD sReserved; - DWORD nDescription; - - DWORD offDescription; - - DWORD nPalEntries; - SIZEL szlDevice; - SIZEL szlMillimeters; -// #if(WINVER >= 0x0400) - DWORD cbPixelFormat; - - DWORD offPixelFormat; - - DWORD bOpenGL; - -// #endif /* WINVER >= 0x0400 */ -// #if(WINVER >= 0x0500) - SIZEL szlMicrometers; -// #endif /* WINVER >= 0x0500 */ - -} -alias tagENHMETAHEADER ENHMETAHEADER; -alias tagENHMETAHEADER* PENHMETAHEADER; -alias tagENHMETAHEADER* LPENHMETAHEADER; - -// #endif /* NOMETAFILE */ - -// #ifndef NOTEXTMETRIC - -enum : uint { TMPF_FIXED_PITCH = 0x01 } -enum : uint { TMPF_VECTOR = 0x02 } -enum : uint { TMPF_DEVICE = 0x08 } -enum : uint { TMPF_TRUETYPE = 0x04 } - -// #ifdef UNICODE -alias WCHAR BCHAR; -// #else -// ... -// #endif - -// #ifndef _TEXTMETRIC_DEFINED -// #define _TEXTMETRIC_DEFINED -struct tagTEXTMETRICA { - LONG tmHeight; - LONG tmAscent; - LONG tmDescent; - LONG tmInternalLeading; - LONG tmExternalLeading; - LONG tmAveCharWidth; - LONG tmMaxCharWidth; - LONG tmWeight; - LONG tmOverhang; - LONG tmDigitizedAspectX; - LONG tmDigitizedAspectY; - BYTE tmFirstChar; - BYTE tmLastChar; - BYTE tmDefaultChar; - BYTE tmBreakChar; - BYTE tmItalic; - BYTE tmUnderlined; - BYTE tmStruckOut; - BYTE tmPitchAndFamily; - BYTE tmCharSet; -} -alias tagTEXTMETRICA TEXTMETRICA; -alias tagTEXTMETRICA* PTEXTMETRICA; -alias tagTEXTMETRICA* NPTEXTMETRICA; -alias tagTEXTMETRICA* LPTEXTMETRICA; - -struct tagTEXTMETRICW { - LONG tmHeight; - LONG tmAscent; - LONG tmDescent; - LONG tmInternalLeading; - LONG tmExternalLeading; - LONG tmAveCharWidth; - LONG tmMaxCharWidth; - LONG tmWeight; - LONG tmOverhang; - LONG tmDigitizedAspectX; - LONG tmDigitizedAspectY; - WCHAR tmFirstChar; - WCHAR tmLastChar; - WCHAR tmDefaultChar; - WCHAR tmBreakChar; - BYTE tmItalic; - BYTE tmUnderlined; - BYTE tmStruckOut; - BYTE tmPitchAndFamily; - BYTE tmCharSet; -} -alias tagTEXTMETRICW TEXTMETRICW; -alias tagTEXTMETRICW* PTEXTMETRICW; -alias tagTEXTMETRICW* NPTEXTMETRICW; -alias tagTEXTMETRICW* LPTEXTMETRICW; - -// #ifdef UNICODE -alias TEXTMETRICW TEXTMETRIC; -alias PTEXTMETRICW PTEXTMETRIC; -alias NPTEXTMETRICW NPTEXTMETRIC; -alias LPTEXTMETRICW LPTEXTMETRIC; -// #else -// ... -// #endif // UNICODE -// #endif // !_TEXTMETRIC_DEFINED - -enum : uint { NTM_REGULAR = 0x00000040 } -enum : uint { NTM_BOLD = 0x00000020 } -enum : uint { NTM_ITALIC = 0x00000001 } - -enum : uint { NTM_NONNEGATIVE_AC = 0x00010000 } -enum : uint { NTM_PS_OPENTYPE = 0x00020000 } -enum : uint { NTM_TT_OPENTYPE = 0x00040000 } -enum : uint { NTM_MULTIPLEMASTER = 0x00080000 } -enum : uint { NTM_TYPE1 = 0x00100000 } -enum : uint { NTM_DSIG = 0x00200000 } - -align(4): -struct tagNEWTEXTMETRICA { - LONG tmHeight; - LONG tmAscent; - LONG tmDescent; - LONG tmInternalLeading; - LONG tmExternalLeading; - LONG tmAveCharWidth; - LONG tmMaxCharWidth; - LONG tmWeight; - LONG tmOverhang; - LONG tmDigitizedAspectX; - LONG tmDigitizedAspectY; - BYTE tmFirstChar; - BYTE tmLastChar; - BYTE tmDefaultChar; - BYTE tmBreakChar; - BYTE tmItalic; - BYTE tmUnderlined; - BYTE tmStruckOut; - BYTE tmPitchAndFamily; - BYTE tmCharSet; - DWORD ntmFlags; - UINT ntmSizeEM; - UINT ntmCellHeight; - UINT ntmAvgWidth; -} -alias tagNEWTEXTMETRICA NEWTEXTMETRICA; -alias tagNEWTEXTMETRICA* PNEWTEXTMETRICA; -alias tagNEWTEXTMETRICA* NPNEWTEXTMETRICA; -alias tagNEWTEXTMETRICA* LPNEWTEXTMETRICA; - -struct tagNEWTEXTMETRICW { - LONG tmHeight; - LONG tmAscent; - LONG tmDescent; - LONG tmInternalLeading; - LONG tmExternalLeading; - LONG tmAveCharWidth; - LONG tmMaxCharWidth; - LONG tmWeight; - LONG tmOverhang; - LONG tmDigitizedAspectX; - LONG tmDigitizedAspectY; - WCHAR tmFirstChar; - WCHAR tmLastChar; - WCHAR tmDefaultChar; - WCHAR tmBreakChar; - BYTE tmItalic; - BYTE tmUnderlined; - BYTE tmStruckOut; - BYTE tmPitchAndFamily; - BYTE tmCharSet; - DWORD ntmFlags; - UINT ntmSizeEM; - UINT ntmCellHeight; - UINT ntmAvgWidth; -} -alias tagNEWTEXTMETRICW NEWTEXTMETRICW; -alias tagNEWTEXTMETRICW* PNEWTEXTMETRICW; -alias tagNEWTEXTMETRICW* NPNEWTEXTMETRICW; -alias tagNEWTEXTMETRICW* LPNEWTEXTMETRICW; - -// #ifdef UNICODE -alias NEWTEXTMETRICW NEWTEXTMETRIC; -alias PNEWTEXTMETRICW PNEWTEXTMETRIC; -alias NPNEWTEXTMETRICW NPNEWTEXTMETRIC; -alias LPNEWTEXTMETRICW LPNEWTEXTMETRIC; -// #else -// ... -// #endif // UNICODE -align: - -// #if(WINVER >= 0x0400) -struct tagNEWTEXTMETRICEXA { - NEWTEXTMETRICA ntmTm; - FONTSIGNATURE ntmFontSig; -} -alias tagNEWTEXTMETRICEXA NEWTEXTMETRICEXA; - -struct tagNEWTEXTMETRICEXW { - NEWTEXTMETRICW ntmTm; - FONTSIGNATURE ntmFontSig; -} -alias tagNEWTEXTMETRICEXW NEWTEXTMETRICEXW; - -// #ifdef UNICODE -alias NEWTEXTMETRICEXW NEWTEXTMETRICEX; -// #else -// ... -// #endif // UNICODE -// #endif /* WINVER >= 0x0400 */ - -// #endif /* NOTEXTMETRIC */ - -struct tagPELARRAY { - LONG paXCount; - LONG paYCount; - LONG paXExt; - LONG paYExt; - BYTE paRGBs; -} -alias tagPELARRAY PELARRAY; -alias tagPELARRAY* PPELARRAY; -alias tagPELARRAY* NPPELARRAY; -alias tagPELARRAY* LPPELARRAY; - -struct tagLOGBRUSH { - UINT lbStyle; - COLORREF lbColor; - ULONG_PTR lbHatch; -} -alias tagLOGBRUSH LOGBRUSH; -alias tagLOGBRUSH* PLOGBRUSH; -alias tagLOGBRUSH* NPLOGBRUSH; -alias tagLOGBRUSH* LPLOGBRUSH; - -struct tagLOGBRUSH32 { - UINT lbStyle; - COLORREF lbColor; - ULONG lbHatch; -} -alias tagLOGBRUSH32 LOGBRUSH32; -alias tagLOGBRUSH32* PLOGBRUSH32; -alias tagLOGBRUSH32* NPLOGBRUSH32; -alias tagLOGBRUSH32* LPLOGBRUSH32; - -alias LOGBRUSH PATTERN; -alias PATTERN* PPATTERN; -alias PATTERN* NPPATTERN; -alias PATTERN* LPPATTERN; - -struct tagLOGPEN { - UINT lopnStyle; - POINT lopnWidth; - COLORREF lopnColor; -} -alias tagLOGPEN LOGPEN; -alias tagLOGPEN* PLOGPEN; -alias tagLOGPEN* NPLOGPEN; -alias tagLOGPEN* LPLOGPEN; - -struct tagEXTLOGPEN { - DWORD elpPenStyle; - DWORD elpWidth; - UINT elpBrushStyle; - COLORREF elpColor; - ULONG_PTR elpHatch; - DWORD elpNumEntries; - DWORD elpStyleEntry[1]; -} -alias tagEXTLOGPEN EXTLOGPEN; -alias tagEXTLOGPEN* PEXTLOGPEN; -alias tagEXTLOGPEN* NPEXTLOGPEN; -alias tagEXTLOGPEN* LPEXTLOGPEN; - -// #ifndef _PALETTEENTRY_DEFINED -// #define _PALETTEENTRY_DEFINED -struct tagPALETTEENTRY { - BYTE peRed; - BYTE peGreen; - BYTE peBlue; - BYTE peFlags; -} -alias tagPALETTEENTRY PALETTEENTRY; -alias tagPALETTEENTRY* PPALETTEENTRY; -alias tagPALETTEENTRY* LPPALETTEENTRY; - -// #endif // !_PALETTEENTRY_DEFINED - -// #ifndef _LOGPALETTE_DEFINED -// #define _LOGPALETTE_DEFINED - -struct tagLOGPALETTE { - WORD palVersion; - WORD palNumEntries; - PALETTEENTRY palPalEntry[1]; -} -alias tagLOGPALETTE LOGPALETTE; -alias tagLOGPALETTE* PLOGPALETTE; -alias tagLOGPALETTE* NPLOGPALETTE; -alias tagLOGPALETTE* LPLOGPALETTE; - -// #endif // !_LOGPALETTE_DEFINED - -enum : uint { LF_FACESIZE = 32 } - -struct tagLOGFONTA { - LONG lfHeight; - LONG lfWidth; - LONG lfEscapement; - LONG lfOrientation; - LONG lfWeight; - BYTE lfItalic; - BYTE lfUnderline; - BYTE lfStrikeOut; - BYTE lfCharSet; - BYTE lfOutPrecision; - BYTE lfClipPrecision; - BYTE lfQuality; - BYTE lfPitchAndFamily; - CHAR lfFaceName[LF_FACESIZE]; -} -alias tagLOGFONTA LOGFONTA; -alias tagLOGFONTA* PLOGFONTA; -alias tagLOGFONTA* NPLOGFONTA; -alias tagLOGFONTA* LPLOGFONTA; - -struct tagLOGFONTW { - LONG lfHeight; - LONG lfWidth; - LONG lfEscapement; - LONG lfOrientation; - LONG lfWeight; - BYTE lfItalic; - BYTE lfUnderline; - BYTE lfStrikeOut; - BYTE lfCharSet; - BYTE lfOutPrecision; - BYTE lfClipPrecision; - BYTE lfQuality; - BYTE lfPitchAndFamily; - WCHAR lfFaceName[LF_FACESIZE]; -} -alias tagLOGFONTW LOGFONTW; -alias tagLOGFONTW* PLOGFONTW; -alias tagLOGFONTW* NPLOGFONTW; -alias tagLOGFONTW* LPLOGFONTW; - -// #ifdef UNICODE -alias LOGFONTW LOGFONT; -alias PLOGFONTW PLOGFONT; -alias NPLOGFONTW NPLOGFONT; -alias LPLOGFONTW LPLOGFONT; -// #else -// ... -// #endif // UNICODE - -enum : uint { LF_FULLFACESIZE = 64 } - -struct tagENUMLOGFONTA { - LOGFONTA elfLogFont; - BYTE elfFullName[LF_FULLFACESIZE]; - BYTE elfStyle[LF_FACESIZE]; -} -alias tagENUMLOGFONTA ENUMLOGFONTA; -alias tagENUMLOGFONTA* LPENUMLOGFONTA; - -struct tagENUMLOGFONTW { - LOGFONTW elfLogFont; - WCHAR elfFullName[LF_FULLFACESIZE]; - WCHAR elfStyle[LF_FACESIZE]; -} -alias tagENUMLOGFONTW ENUMLOGFONTW; -alias tagENUMLOGFONTW* LPENUMLOGFONTW; - -// #ifdef UNICODE -alias ENUMLOGFONTW ENUMLOGFONT; -alias LPENUMLOGFONTW LPENUMLOGFONT; -// #else -// ... -// #endif // UNICODE - -// #if(WINVER >= 0x0400) -struct tagENUMLOGFONTEXA { - LOGFONTA elfLogFont; - BYTE elfFullName[LF_FULLFACESIZE]; - BYTE elfStyle[LF_FACESIZE]; - BYTE elfScript[LF_FACESIZE]; -} -alias tagENUMLOGFONTEXA ENUMLOGFONTEXA; -alias tagENUMLOGFONTEXA* LPENUMLOGFONTEXA; - -struct tagENUMLOGFONTEXW { - LOGFONTW elfLogFont; - WCHAR elfFullName[LF_FULLFACESIZE]; - WCHAR elfStyle[LF_FACESIZE]; - WCHAR elfScript[LF_FACESIZE]; -} -alias tagENUMLOGFONTEXW ENUMLOGFONTEXW; -alias tagENUMLOGFONTEXW* LPENUMLOGFONTEXW; - -// #ifdef UNICODE -alias ENUMLOGFONTEXW ENUMLOGFONTEX; -alias LPENUMLOGFONTEXW LPENUMLOGFONTEX; -// #else -// ... -// #endif // UNICODE -// #endif /* WINVER >= 0x0400 */ - -enum : uint { OUT_DEFAULT_PRECIS = 0 } -enum : uint { OUT_STRING_PRECIS = 1 } -enum : uint { OUT_CHARACTER_PRECIS = 2 } -enum : uint { OUT_STROKE_PRECIS = 3 } -enum : uint { OUT_TT_PRECIS = 4 } -enum : uint { OUT_DEVICE_PRECIS = 5 } -enum : uint { OUT_RASTER_PRECIS = 6 } -enum : uint { OUT_TT_ONLY_PRECIS = 7 } -enum : uint { OUT_OUTLINE_PRECIS = 8 } -enum : uint { OUT_SCREEN_OUTLINE_PRECIS = 9 } -enum : uint { OUT_PS_ONLY_PRECIS = 10 } - -enum : uint { CLIP_DEFAULT_PRECIS = 0 } -enum : uint { CLIP_CHARACTER_PRECIS = 1 } -enum : uint { CLIP_STROKE_PRECIS = 2 } -enum : uint { CLIP_MASK = 0xf } -enum : uint { CLIP_LH_ANGLES = 1<<4 } -enum : uint { CLIP_TT_ALWAYS = 2<<4 } -enum : uint { CLIP_EMBEDDED = 8<<4 } - -enum : uint { DEFAULT_QUALITY = 0 } -enum : uint { DRAFT_QUALITY = 1 } -enum : uint { PROOF_QUALITY = 2 } -// #if(WINVER >= 0x0400) -enum : uint { NONANTIALIASED_QUALITY = 3 } -enum : uint { ANTIALIASED_QUALITY = 4 } -// #endif /* WINVER >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { CLEARTYPE_QUALITY = 5 } -// #endif - -enum : uint { DEFAULT_PITCH = 0 } -enum : uint { FIXED_PITCH = 1 } -enum : uint { VARIABLE_PITCH = 2 } -// #if(WINVER >= 0x0400) -enum : uint { MONO_FONT = 8 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { ANSI_CHARSET = 0 } -enum : uint { DEFAULT_CHARSET = 1 } -enum : uint { SYMBOL_CHARSET = 2 } -enum : uint { SHIFTJIS_CHARSET = 128 } -enum : uint { HANGEUL_CHARSET = 129 } -enum : uint { HANGUL_CHARSET = 129 } -enum : uint { GB2312_CHARSET = 134 } -enum : uint { CHINESEBIG5_CHARSET = 136 } -enum : uint { OEM_CHARSET = 255 } -// #if(WINVER >= 0x0400) -enum : uint { JOHAB_CHARSET = 130 } -enum : uint { HEBREW_CHARSET = 177 } -enum : uint { ARABIC_CHARSET = 178 } -enum : uint { GREEK_CHARSET = 161 } -enum : uint { TURKISH_CHARSET = 162 } -enum : uint { VIETNAMESE_CHARSET = 163 } -enum : uint { THAI_CHARSET = 222 } -enum : uint { EASTEUROPE_CHARSET = 238 } -enum : uint { RUSSIAN_CHARSET = 204 } - -enum : uint { MAC_CHARSET = 77 } -enum : uint { BALTIC_CHARSET = 186 } - -enum : uint { FS_LATIN1 = 0x00000001 } -enum : uint { FS_LATIN2 = 0x00000002 } -enum : uint { FS_CYRILLIC = 0x00000004 } -enum : uint { FS_GREEK = 0x00000008 } -enum : uint { FS_TURKISH = 0x00000010 } -enum : uint { FS_HEBREW = 0x00000020 } -enum : uint { FS_ARABIC = 0x00000040 } -enum : uint { FS_BALTIC = 0x00000080 } -enum : uint { FS_VIETNAMESE = 0x00000100 } -enum : uint { FS_THAI = 0x00010000 } -enum : uint { FS_JISJAPAN = 0x00020000 } -enum : uint { FS_CHINESESIMP = 0x00040000 } -enum : uint { FS_WANSUNG = 0x00080000 } -enum : uint { FS_CHINESETRAD = 0x00100000 } -enum : uint { FS_JOHAB = 0x00200000 } -enum : uint { FS_SYMBOL = 0x80000000 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { FF_DONTCARE = 0<<4 } -enum : uint { FF_ROMAN = 1<<4 } - -enum : uint { FF_SWISS = 2<<4 } - -enum : uint { FF_MODERN = 3<<4 } - -enum : uint { FF_SCRIPT = 4<<4 } -enum : uint { FF_DECORATIVE = 5<<4 } - -enum : uint { FW_DONTCARE = 0 } -enum : uint { FW_THIN = 100 } -enum : uint { FW_EXTRALIGHT = 200 } -enum : uint { FW_LIGHT = 300 } -enum : uint { FW_NORMAL = 400 } -enum : uint { FW_MEDIUM = 500 } -enum : uint { FW_SEMIBOLD = 600 } -enum : uint { FW_BOLD = 700 } -enum : uint { FW_EXTRABOLD = 800 } -enum : uint { FW_HEAVY = 900 } - -alias FW_EXTRALIGHT FW_ULTRALIGHT; -alias FW_NORMAL FW_REGULAR; -alias FW_SEMIBOLD FW_DEMIBOLD; -alias FW_EXTRABOLD FW_ULTRABOLD; -alias FW_HEAVY FW_BLACK; - -enum : uint { PANOSE_COUNT = 10 } -enum : uint { PAN_FAMILYTYPE_INDEX = 0 } -enum : uint { PAN_SERIFSTYLE_INDEX = 1 } -enum : uint { PAN_WEIGHT_INDEX = 2 } -enum : uint { PAN_PROPORTION_INDEX = 3 } -enum : uint { PAN_CONTRAST_INDEX = 4 } -enum : uint { PAN_STROKEVARIATION_INDEX = 5 } -enum : uint { PAN_ARMSTYLE_INDEX = 6 } -enum : uint { PAN_LETTERFORM_INDEX = 7 } -enum : uint { PAN_MIDLINE_INDEX = 8 } -enum : uint { PAN_XHEIGHT_INDEX = 9 } - -enum : uint { PAN_CULTURE_LATIN = 0 } - -struct tagPANOSE { - BYTE bFamilyType; - BYTE bSerifStyle; - BYTE bWeight; - BYTE bProportion; - BYTE bContrast; - BYTE bStrokeVariation; - BYTE bArmStyle; - BYTE bLetterform; - BYTE bMidline; - BYTE bXHeight; -} -alias tagPANOSE PANOSE; -alias tagPANOSE* LPPANOSE; - -enum : uint { PAN_ANY = 0 } -enum : uint { PAN_NO_FIT = 1 } - -enum : uint { PAN_FAMILY_TEXT_DISPLAY = 2 } -enum : uint { PAN_FAMILY_SCRIPT = 3 } -enum : uint { PAN_FAMILY_DECORATIVE = 4 } -enum : uint { PAN_FAMILY_PICTORIAL = 5 } - -enum : uint { PAN_SERIF_COVE = 2 } -enum : uint { PAN_SERIF_OBTUSE_COVE = 3 } -enum : uint { PAN_SERIF_SQUARE_COVE = 4 } -enum : uint { PAN_SERIF_OBTUSE_SQUARE_COVE = 5 } -enum : uint { PAN_SERIF_SQUARE = 6 } -enum : uint { PAN_SERIF_THIN = 7 } -enum : uint { PAN_SERIF_BONE = 8 } -enum : uint { PAN_SERIF_EXAGGERATED = 9 } -enum : uint { PAN_SERIF_TRIANGLE = 10 } -enum : uint { PAN_SERIF_NORMAL_SANS = 11 } -enum : uint { PAN_SERIF_OBTUSE_SANS = 12 } -enum : uint { PAN_SERIF_PERP_SANS = 13 } -enum : uint { PAN_SERIF_FLARED = 14 } -enum : uint { PAN_SERIF_ROUNDED = 15 } - -enum : uint { PAN_WEIGHT_VERY_LIGHT = 2 } -enum : uint { PAN_WEIGHT_LIGHT = 3 } -enum : uint { PAN_WEIGHT_THIN = 4 } -enum : uint { PAN_WEIGHT_BOOK = 5 } -enum : uint { PAN_WEIGHT_MEDIUM = 6 } -enum : uint { PAN_WEIGHT_DEMI = 7 } -enum : uint { PAN_WEIGHT_BOLD = 8 } -enum : uint { PAN_WEIGHT_HEAVY = 9 } -enum : uint { PAN_WEIGHT_BLACK = 10 } -enum : uint { PAN_WEIGHT_NORD = 11 } - -enum : uint { PAN_PROP_OLD_STYLE = 2 } -enum : uint { PAN_PROP_MODERN = 3 } -enum : uint { PAN_PROP_EVEN_WIDTH = 4 } -enum : uint { PAN_PROP_EXPANDED = 5 } -enum : uint { PAN_PROP_CONDENSED = 6 } -enum : uint { PAN_PROP_VERY_EXPANDED = 7 } -enum : uint { PAN_PROP_VERY_CONDENSED = 8 } -enum : uint { PAN_PROP_MONOSPACED = 9 } - -enum : uint { PAN_CONTRAST_NONE = 2 } -enum : uint { PAN_CONTRAST_VERY_LOW = 3 } -enum : uint { PAN_CONTRAST_LOW = 4 } -enum : uint { PAN_CONTRAST_MEDIUM_LOW = 5 } -enum : uint { PAN_CONTRAST_MEDIUM = 6 } -enum : uint { PAN_CONTRAST_MEDIUM_HIGH = 7 } -enum : uint { PAN_CONTRAST_HIGH = 8 } -enum : uint { PAN_CONTRAST_VERY_HIGH = 9 } - -enum : uint { PAN_STROKE_GRADUAL_DIAG = 2 } -enum : uint { PAN_STROKE_GRADUAL_TRAN = 3 } -enum : uint { PAN_STROKE_GRADUAL_VERT = 4 } -enum : uint { PAN_STROKE_GRADUAL_HORZ = 5 } -enum : uint { PAN_STROKE_RAPID_VERT = 6 } -enum : uint { PAN_STROKE_RAPID_HORZ = 7 } -enum : uint { PAN_STROKE_INSTANT_VERT = 8 } - -enum : uint { PAN_STRAIGHT_ARMS_HORZ = 2 } -enum : uint { PAN_STRAIGHT_ARMS_WEDGE = 3 } -enum : uint { PAN_STRAIGHT_ARMS_VERT = 4 } -enum : uint { PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5 } -enum : uint { PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6 } -enum : uint { PAN_BENT_ARMS_HORZ = 7 } -enum : uint { PAN_BENT_ARMS_WEDGE = 8 } -enum : uint { PAN_BENT_ARMS_VERT = 9 } -enum : uint { PAN_BENT_ARMS_SINGLE_SERIF = 10 } -enum : uint { PAN_BENT_ARMS_DOUBLE_SERIF = 11 } - -enum : uint { PAN_LETT_NORMAL_CONTACT = 2 } -enum : uint { PAN_LETT_NORMAL_WEIGHTED = 3 } -enum : uint { PAN_LETT_NORMAL_BOXED = 4 } -enum : uint { PAN_LETT_NORMAL_FLATTENED = 5 } -enum : uint { PAN_LETT_NORMAL_ROUNDED = 6 } -enum : uint { PAN_LETT_NORMAL_OFF_CENTER = 7 } -enum : uint { PAN_LETT_NORMAL_SQUARE = 8 } -enum : uint { PAN_LETT_OBLIQUE_CONTACT = 9 } -enum : uint { PAN_LETT_OBLIQUE_WEIGHTED = 10 } -enum : uint { PAN_LETT_OBLIQUE_BOXED = 11 } -enum : uint { PAN_LETT_OBLIQUE_FLATTENED = 12 } -enum : uint { PAN_LETT_OBLIQUE_ROUNDED = 13 } -enum : uint { PAN_LETT_OBLIQUE_OFF_CENTER = 14 } -enum : uint { PAN_LETT_OBLIQUE_SQUARE = 15 } - -enum : uint { PAN_MIDLINE_STANDARD_TRIMMED = 2 } -enum : uint { PAN_MIDLINE_STANDARD_POINTED = 3 } -enum : uint { PAN_MIDLINE_STANDARD_SERIFED = 4 } -enum : uint { PAN_MIDLINE_HIGH_TRIMMED = 5 } -enum : uint { PAN_MIDLINE_HIGH_POINTED = 6 } -enum : uint { PAN_MIDLINE_HIGH_SERIFED = 7 } -enum : uint { PAN_MIDLINE_CONSTANT_TRIMMED = 8 } -enum : uint { PAN_MIDLINE_CONSTANT_POINTED = 9 } -enum : uint { PAN_MIDLINE_CONSTANT_SERIFED = 10 } -enum : uint { PAN_MIDLINE_LOW_TRIMMED = 11 } -enum : uint { PAN_MIDLINE_LOW_POINTED = 12 } -enum : uint { PAN_MIDLINE_LOW_SERIFED = 13 } - -enum : uint { PAN_XHEIGHT_CONSTANT_SMALL = 2 } -enum : uint { PAN_XHEIGHT_CONSTANT_STD = 3 } -enum : uint { PAN_XHEIGHT_CONSTANT_LARGE = 4 } -enum : uint { PAN_XHEIGHT_DUCKING_SMALL = 5 } -enum : uint { PAN_XHEIGHT_DUCKING_STD = 6 } -enum : uint { PAN_XHEIGHT_DUCKING_LARGE = 7 } - -enum : uint { ELF_VENDOR_SIZE = 4 } - -struct tagEXTLOGFONTA { - LOGFONTA elfLogFont; - BYTE elfFullName[LF_FULLFACESIZE]; - BYTE elfStyle[LF_FACESIZE]; - DWORD elfVersion; - DWORD elfStyleSize; - DWORD elfMatch; - DWORD elfReserved; - BYTE elfVendorId[ELF_VENDOR_SIZE]; - DWORD elfCulture; - PANOSE elfPanose; -} -alias tagEXTLOGFONTA EXTLOGFONTA; -alias tagEXTLOGFONTA* PEXTLOGFONTA; -alias tagEXTLOGFONTA* NPEXTLOGFONTA; -alias tagEXTLOGFONTA* LPEXTLOGFONTA; - -struct tagEXTLOGFONTW { - LOGFONTW elfLogFont; - WCHAR elfFullName[LF_FULLFACESIZE]; - WCHAR elfStyle[LF_FACESIZE]; - DWORD elfVersion; - DWORD elfStyleSize; - DWORD elfMatch; - DWORD elfReserved; - BYTE elfVendorId[ELF_VENDOR_SIZE]; - DWORD elfCulture; - PANOSE elfPanose; -} -alias tagEXTLOGFONTW EXTLOGFONTW; -alias tagEXTLOGFONTW* PEXTLOGFONTW; -alias tagEXTLOGFONTW* NPEXTLOGFONTW; -alias tagEXTLOGFONTW* LPEXTLOGFONTW; - -// #ifdef UNICODE -alias EXTLOGFONTW EXTLOGFONT; -alias PEXTLOGFONTW PEXTLOGFONT; -alias NPEXTLOGFONTW NPEXTLOGFONT; -alias LPEXTLOGFONTW LPEXTLOGFONT; -// #else -// ... -// #endif // UNICODE - -enum : uint { ELF_VERSION = 0 } -enum : uint { ELF_CULTURE_LATIN = 0 } - -enum : uint { RASTER_FONTTYPE = 0x0001 } -enum : uint { DEVICE_FONTTYPE = 0x002 } -enum : uint { TRUETYPE_FONTTYPE = 0x004 } - -COLORREF RGB(BYTE r, BYTE g, BYTE b){ return r|(g <<8)|(b << 16); } -COLORREF PALETTERGB(BYTE r, BYTE g, BYTE b){ return (0x02000000 | RGB(r,g,b)); } -COLORREF PALETTEINDEX(WORD i){ return (cast(COLORREF)(0x01000000 | cast(DWORD)cast(WORD)(i))); } - -enum : uint { PC_RESERVED = 0x01 } -enum : uint { PC_EXPLICIT = 0x02 } -enum : uint { PC_NOCOLLAPSE = 0x04 } - -BYTE GetRValue(COLORREF rgb){ return cast(BYTE)rgb; } -BYTE GetGValue(COLORREF rgb){ return cast(BYTE)(rgb >>> 8); } -BYTE GetBValue(COLORREF rgb){ return cast(BYTE)(rgb >>> 16); } - -enum : uint { TRANSPARENT = 1 } -enum : uint { OPAQUE = 2 } -enum : uint { BKMODE_LAST = 2 } - -enum : uint { GM_COMPATIBLE = 1 } -enum : uint { GM_ADVANCED = 2 } -enum : uint { GM_LAST = 2 } - -enum : uint { PT_CLOSEFIGURE = 0x01 } -enum : uint { PT_LINETO = 0x02 } -enum : uint { PT_BEZIERTO = 0x04 } -enum : uint { PT_MOVETO = 0x06 } - -enum : uint { MM_TEXT = 1 } -enum : uint { MM_LOMETRIC = 2 } -enum : uint { MM_HIMETRIC = 3 } -enum : uint { MM_LOENGLISH = 4 } -enum : uint { MM_HIENGLISH = 5 } -enum : uint { MM_TWIPS = 6 } -enum : uint { MM_ISOTROPIC = 7 } -enum : uint { MM_ANISOTROPIC = 8 } - -alias MM_TEXT MM_MIN; -alias MM_ANISOTROPIC MM_MAX; -alias MM_TWIPS MM_MAX_FIXEDSCALE; - -enum : uint { ABSOLUTE = 1 } -enum : uint { RELATIVE = 2 } - -enum : uint { WHITE_BRUSH = 0 } -enum : uint { LTGRAY_BRUSH = 1 } -enum : uint { GRAY_BRUSH = 2 } -enum : uint { DKGRAY_BRUSH = 3 } -enum : uint { BLACK_BRUSH = 4 } -enum : uint { NULL_BRUSH = 5 } -alias NULL_BRUSH HOLLOW_BRUSH; -enum : uint { WHITE_PEN = 6 } -enum : uint { BLACK_PEN = 7 } -enum : uint { NULL_PEN = 8 } -enum : uint { OEM_FIXED_FONT = 10 } -enum : uint { ANSI_FIXED_FONT = 11 } -enum : uint { ANSI_VAR_FONT = 12 } -enum : uint { SYSTEM_FONT = 13 } -enum : uint { DEVICE_DEFAULT_FONT = 14 } -enum : uint { DEFAULT_PALETTE = 15 } -enum : uint { SYSTEM_FIXED_FONT = 16 } - -// #if(WINVER >= 0x0400) -enum : uint { DEFAULT_GUI_FONT = 17 } -// #endif /* WINVER >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { DC_BRUSH = 18 } -enum : uint { DC_PEN = 19 } -// #endif - -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { STOCK_LAST = 19 } -// #elif (WINVER >= 0x0400) -// #... -// #else -// #... -// #endif - -enum : uint { CLR_INVALID = 0xFFFFFFFF } - -enum : uint { BS_SOLID = 0 } -enum : uint { BS_NULL = 1 } -alias BS_NULL BS_HOLLOW; -enum : uint { BS_HATCHED = 2 } -enum : uint { BS_PATTERN = 3 } -enum : uint { BS_INDEXED = 4 } -enum : uint { BS_DIBPATTERN = 5 } -enum : uint { BS_DIBPATTERNPT = 6 } -enum : uint { BS_PATTERN8X8 = 7 } -enum : uint { BS_DIBPATTERN8X8 = 8 } -enum : uint { BS_MONOPATTERN = 9 } - -enum : uint { HS_HORIZONTAL = 0 } -enum : uint { HS_VERTICAL = 1 } -enum : uint { HS_FDIAGONAL = 2 } -enum : uint { HS_BDIAGONAL = 3 } -enum : uint { HS_CROSS = 4 } -enum : uint { HS_DIAGCROSS = 5 } - -enum : uint { PS_SOLID = 0 } -enum : uint { PS_DASH = 1 } -enum : uint { PS_DOT = 2 } -enum : uint { PS_DASHDOT = 3 } -enum : uint { PS_DASHDOTDOT = 4 } -enum : uint { PS_NULL = 5 } -enum : uint { PS_INSIDEFRAME = 6 } -enum : uint { PS_USERSTYLE = 7 } -enum : uint { PS_ALTERNATE = 8 } -enum : uint { PS_STYLE_MASK = 0x0000000F } - -enum : uint { PS_ENDCAP_ROUND = 0x00000000 } -enum : uint { PS_ENDCAP_SQUARE = 0x00000100 } -enum : uint { PS_ENDCAP_FLAT = 0x00000200 } -enum : uint { PS_ENDCAP_MASK = 0x00000F00 } - -enum : uint { PS_JOIN_ROUND = 0x00000000 } -enum : uint { PS_JOIN_BEVEL = 0x00001000 } -enum : uint { PS_JOIN_MITER = 0x00002000 } -enum : uint { PS_JOIN_MASK = 0x0000F000 } - -enum : uint { PS_COSMETIC = 0x00000000 } -enum : uint { PS_GEOMETRIC = 0x00010000 } -enum : uint { PS_TYPE_MASK = 0x000F0000 } - -enum : uint { AD_COUNTERCLOCKWISE = 1 } -enum : uint { AD_CLOCKWISE = 2 } - -enum : uint { DRIVERVERSION = 0 } -enum : uint { TECHNOLOGY = 2 } -enum : uint { HORZSIZE = 4 } -enum : uint { VERTSIZE = 6 } -enum : uint { HORZRES = 8 } -enum : uint { VERTRES = 10 } -enum : uint { BITSPIXEL = 12 } -enum : uint { PLANES = 14 } -enum : uint { NUMBRUSHES = 16 } -enum : uint { NUMPENS = 18 } -enum : uint { NUMMARKERS = 20 } -enum : uint { NUMFONTS = 22 } -enum : uint { NUMCOLORS = 24 } -enum : uint { PDEVICESIZE = 26 } -enum : uint { CURVECAPS = 28 } -enum : uint { LINECAPS = 30 } -enum : uint { POLYGONALCAPS = 32 } -enum : uint { TEXTCAPS = 34 } -enum : uint { CLIPCAPS = 36 } -enum : uint { RASTERCAPS = 38 } -enum : uint { ASPECTX = 40 } -enum : uint { ASPECTY = 42 } -enum : uint { ASPECTXY = 44 } - -enum : uint { LOGPIXELSX = 88 } -enum : uint { LOGPIXELSY = 90 } - -enum : uint { SIZEPALETTE = 104 } -enum : uint { NUMRESERVED = 106 } -enum : uint { COLORRES = 108 } - -enum : uint { PHYSICALWIDTH = 110 } -enum : uint { PHYSICALHEIGHT = 111 } -enum : uint { PHYSICALOFFSETX = 112 } -enum : uint { PHYSICALOFFSETY = 113 } -enum : uint { SCALINGFACTORX = 114 } -enum : uint { SCALINGFACTORY = 115 } - -enum : uint { VREFRESH = 116 } - -enum : uint { DESKTOPVERTRES = 117 } - -enum : uint { DESKTOPHORZRES = 118 } - -enum : uint { BLTALIGNMENT = 119 } - -// #if(WINVER >= 0x0500) -enum : uint { SHADEBLENDCAPS = 120 } -enum : uint { COLORMGMTCAPS = 121 } -// #endif /* WINVER >= 0x0500 */ - -// #ifndef NOGDICAPMASKS - -enum : uint { DT_PLOTTER = 0 } -enum : uint { DT_RASDISPLAY = 1 } -enum : uint { DT_RASPRINTER = 2 } -enum : uint { DT_RASCAMERA = 3 } -enum : uint { DT_CHARSTREAM = 4 } -enum : uint { DT_METAFILE = 5 } -enum : uint { DT_DISPFILE = 6 } - -enum : uint { CC_NONE = 0 } -enum : uint { CC_CIRCLES = 1 } -enum : uint { CC_PIE = 2 } -enum : uint { CC_CHORD = 4 } -enum : uint { CC_ELLIPSES = 8 } -enum : uint { CC_WIDE = 16 } -enum : uint { CC_STYLED = 32 } -enum : uint { CC_WIDESTYLED = 64 } -enum : uint { CC_INTERIORS = 128 } -enum : uint { CC_ROUNDRECT = 256 } - -enum : uint { LC_NONE = 0 } -enum : uint { LC_POLYLINE = 2 } -enum : uint { LC_MARKER = 4 } -enum : uint { LC_POLYMARKER = 8 } -enum : uint { LC_WIDE = 16 } -enum : uint { LC_STYLED = 32 } -enum : uint { LC_WIDESTYLED = 64 } -enum : uint { LC_INTERIORS = 128 } - -enum : uint { PC_NONE = 0 } -enum : uint { PC_POLYGON = 1 } -enum : uint { PC_RECTANGLE = 2 } -enum : uint { PC_WINDPOLYGON = 4 } -enum : uint { PC_TRAPEZOID = 4 } -enum : uint { PC_SCANLINE = 8 } -enum : uint { PC_WIDE = 16 } -enum : uint { PC_STYLED = 32 } -enum : uint { PC_WIDESTYLED = 64 } -enum : uint { PC_INTERIORS = 128 } -enum : uint { PC_POLYPOLYGON = 256 } -enum : uint { PC_PATHS = 512 } - -enum : uint { CP_NONE = 0 } -enum : uint { CP_RECTANGLE = 1 } -enum : uint { CP_REGION = 2 } - -enum : uint { TC_OP_CHARACTER = 0x00000001 } -enum : uint { TC_OP_STROKE = 0x00000002 } -enum : uint { TC_CP_STROKE = 0x00000004 } -enum : uint { TC_CR_90 = 0x00000008 } -enum : uint { TC_CR_ANY = 0x00000010 } -enum : uint { TC_SF_X_YINDEP = 0x00000020 } -enum : uint { TC_SA_DOUBLE = 0x00000040 } -enum : uint { TC_SA_INTEGER = 0x00000080 } -enum : uint { TC_SA_CONTIN = 0x00000100 } -enum : uint { TC_EA_DOUBLE = 0x00000200 } -enum : uint { TC_IA_ABLE = 0x00000400 } -enum : uint { TC_UA_ABLE = 0x00000800 } -enum : uint { TC_SO_ABLE = 0x00001000 } -enum : uint { TC_RA_ABLE = 0x00002000 } -enum : uint { TC_VA_ABLE = 0x00004000 } -enum : uint { TC_RESERVED = 0x00008000 } -enum : uint { TC_SCROLLBLT = 0x00010000 } - -// #endif /* NOGDICAPMASKS */ - -// #define RC_NONE -enum : uint { RC_BITBLT = 1 } -enum : uint { RC_BANDING = 2 } -enum : uint { RC_SCALING = 4 } -enum : uint { RC_BITMAP64 = 8 } -enum : uint { RC_GDI20_OUTPUT = 0x0010 } -enum : uint { RC_GDI20_STATE = 0x0020 } -enum : uint { RC_SAVEBITMAP = 0x0040 } -enum : uint { RC_DI_BITMAP = 0x0080 } -enum : uint { RC_PALETTE = 0x0100 } -enum : uint { RC_DIBTODEV = 0x0200 } -enum : uint { RC_BIGFONT = 0x0400 } -enum : uint { RC_STRETCHBLT = 0x0800 } -enum : uint { RC_FLOODFILL = 0x1000 } -enum : uint { RC_STRETCHDIB = 0x2000 } -enum : uint { RC_OP_DX_OUTPUT = 0x4000 } -enum : uint { RC_DEVBITS = 0x8000 } - -// #if(WINVER >= 0x0500) - -enum : uint { SB_NONE = 0x00000000 } -enum : uint { SB_CONST_ALPHA = 0x00000001 } -enum : uint { SB_PIXEL_ALPHA = 0x00000002 } -enum : uint { SB_PREMULT_ALPHA = 0x00000004 } - -enum : uint { SB_GRAD_RECT = 0x00000010 } -enum : uint { SB_GRAD_TRI = 0x00000020 } - -enum : uint { CM_NONE = 0x00000000 } -enum : uint { CM_DEVICE_ICM = 0x00000001 } -enum : uint { CM_GAMMA_RAMP = 0x00000002 } -enum : uint { CM_CMYK_COLOR = 0x00000004 } - -// #endif /* WINVER >= 0x0500 */ - -enum : uint { DIB_RGB_COLORS = 0 } -enum : uint { DIB_PAL_COLORS = 1 } - -enum : uint { SYSPAL_ERROR = 0 } -enum : uint { SYSPAL_STATIC = 1 } -enum : uint { SYSPAL_NOSTATIC = 2 } -enum : uint { SYSPAL_NOSTATIC256 = 3 } - -enum : uint { CBM_INIT = 0x04 } - -enum : uint { FLOODFILLBORDER = 0 } -enum : uint { FLOODFILLSURFACE = 1 } - -enum : uint { CCHDEVICENAME = 32 } - -enum : uint { CCHFORMNAME = 32 } - -struct _devicemodeA { - BYTE dmDeviceName[CCHDEVICENAME]; - WORD dmSpecVersion; - WORD dmDriverVersion; - WORD dmSize; - WORD dmDriverExtra; - DWORD dmFields; -union { -struct { - short dmOrientation; - short dmPaperSize; - short dmPaperLength; - short dmPaperWidth; -} - - POINTL dmPosition; -} - - short dmScale; - short dmCopies; - short dmDefaultSource; - short dmPrintQuality; - short dmColor; - short dmDuplex; - short dmYResolution; - short dmTTOption; - short dmCollate; - BYTE dmFormName[CCHFORMNAME]; - WORD dmLogPixels; - DWORD dmBitsPerPel; - DWORD dmPelsWidth; - DWORD dmPelsHeight; -union { - DWORD dmDisplayFlags; - DWORD dmNup; -} - - DWORD dmDisplayFrequency; -// #if(WINVER >= 0x0400) - DWORD dmICMMethod; - DWORD dmICMIntent; - DWORD dmMediaType; - DWORD dmDitherType; - DWORD dmReserved1; - DWORD dmReserved2; -// #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400) - DWORD dmPanningWidth; - DWORD dmPanningHeight; -// #endif -// #endif /* WINVER >= 0x0400 */ -} -alias _devicemodeA DEVMODEA; -alias _devicemodeA* PDEVMODEA; -alias _devicemodeA* NPDEVMODEA; -alias _devicemodeA* LPDEVMODEA; - -struct _devicemodeW { - WCHAR dmDeviceName[CCHDEVICENAME]; - WORD dmSpecVersion; - WORD dmDriverVersion; - WORD dmSize; - WORD dmDriverExtra; - DWORD dmFields; -union { -struct { - short dmOrientation; - short dmPaperSize; - short dmPaperLength; - short dmPaperWidth; -} - - POINTL dmPosition; -} - - short dmScale; - short dmCopies; - short dmDefaultSource; - short dmPrintQuality; - short dmColor; - short dmDuplex; - short dmYResolution; - short dmTTOption; - short dmCollate; - WCHAR dmFormName[CCHFORMNAME]; - WORD dmLogPixels; - DWORD dmBitsPerPel; - DWORD dmPelsWidth; - DWORD dmPelsHeight; -union { - DWORD dmDisplayFlags; - DWORD dmNup; -} - - DWORD dmDisplayFrequency; -// #if(WINVER >= 0x0400) - DWORD dmICMMethod; - DWORD dmICMIntent; - DWORD dmMediaType; - DWORD dmDitherType; - DWORD dmReserved1; - DWORD dmReserved2; -// #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400) - DWORD dmPanningWidth; - DWORD dmPanningHeight; -// #endif -// #endif /* WINVER >= 0x0400 */ -} -alias _devicemodeW DEVMODEW; -alias _devicemodeW* PDEVMODEW; -alias _devicemodeW* NPDEVMODEW; -alias _devicemodeW* LPDEVMODEW; - -// #ifdef UNICODE -alias DEVMODEW DEVMODE; -alias PDEVMODEW PDEVMODE; -alias NPDEVMODEW NPDEVMODE; -alias LPDEVMODEW LPDEVMODE; -// #else -// ... -// #endif // UNICODE - -// #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400) -enum : uint { DM_SPECVERSION = 0x0401 } -// #elif (WINVER >= 0x0400) -// #... -// #else -// #... -// #endif /* WINVER */ - -enum : uint { DM_ORIENTATION = 0x00000001 } -enum : uint { DM_PAPERSIZE = 0x00000002 } -enum : uint { DM_PAPERLENGTH = 0x00000004 } -enum : uint { DM_PAPERWIDTH = 0x00000008 } -enum : uint { DM_SCALE = 0x00000010 } -// #if(WINVER >= 0x0500) -enum : uint { DM_POSITION = 0x00000020 } -enum : uint { DM_NUP = 0x00000040 } -// #endif /* WINVER >= 0x0500 */ -enum : uint { DM_COPIES = 0x00000100 } -enum : uint { DM_DEFAULTSOURCE = 0x00000200 } -enum : uint { DM_PRINTQUALITY = 0x00000400 } -enum : uint { DM_COLOR = 0x00000800 } -enum : uint { DM_DUPLEX = 0x00001000 } -enum : uint { DM_YRESOLUTION = 0x00002000 } -enum : uint { DM_TTOPTION = 0x00004000 } -enum : uint { DM_COLLATE = 0x00008000 } -enum : uint { DM_FORMNAME = 0x00010000 } -enum : uint { DM_LOGPIXELS = 0x00020000 } -enum : uint { DM_BITSPERPEL = 0x00040000 } -enum : uint { DM_PELSWIDTH = 0x00080000 } -enum : uint { DM_PELSHEIGHT = 0x00100000 } -enum : uint { DM_DISPLAYFLAGS = 0x00200000 } -enum : uint { DM_DISPLAYFREQUENCY = 0x00400000 } -// #if(WINVER >= 0x0400) -enum : uint { DM_ICMMETHOD = 0x00800000 } -enum : uint { DM_ICMINTENT = 0x01000000 } -enum : uint { DM_MEDIATYPE = 0x02000000 } -enum : uint { DM_DITHERTYPE = 0x04000000 } -enum : uint { DM_PANNINGWIDTH = 0x08000000 } -enum : uint { DM_PANNINGHEIGHT = 0x10000000 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { DMORIENT_PORTRAIT = 1 } -enum : uint { DMORIENT_LANDSCAPE = 2 } - -enum { DMPAPER_FIRST = 1 } -enum : uint { DMPAPER_LETTER = 1 } -enum : uint { DMPAPER_LETTERSMALL = 2 } -enum : uint { DMPAPER_TABLOID = 3 } -enum : uint { DMPAPER_LEDGER = 4 } -enum : uint { DMPAPER_LEGAL = 5 } -enum : uint { DMPAPER_STATEMENT = 6 } -enum : uint { DMPAPER_EXECUTIVE = 7 } -enum : uint { DMPAPER_A3 = 8 } -enum : uint { DMPAPER_A4 = 9 } -enum : uint { DMPAPER_A4SMALL = 10 } -enum : uint { DMPAPER_A5 = 11 } -enum : uint { DMPAPER_B4 = 12 } -enum : uint { DMPAPER_B5 = 13 } -enum : uint { DMPAPER_FOLIO = 14 } -enum : uint { DMPAPER_QUARTO = 15 } -enum : uint { DMPAPER_10X14 = 16 } -enum : uint { DMPAPER_11X17 = 17 } -enum : uint { DMPAPER_NOTE = 18 } -enum : uint { DMPAPER_ENV_9 = 19 } -enum : uint { DMPAPER_ENV_10 = 20 } -enum : uint { DMPAPER_ENV_11 = 21 } -enum : uint { DMPAPER_ENV_12 = 22 } -enum : uint { DMPAPER_ENV_14 = 23 } -enum : uint { DMPAPER_CSHEET = 24 } -enum : uint { DMPAPER_DSHEET = 25 } -enum : uint { DMPAPER_ESHEET = 26 } -enum : uint { DMPAPER_ENV_DL = 27 } -enum : uint { DMPAPER_ENV_C5 = 28 } -enum : uint { DMPAPER_ENV_C3 = 29 } -enum : uint { DMPAPER_ENV_C4 = 30 } -enum : uint { DMPAPER_ENV_C6 = 31 } -enum : uint { DMPAPER_ENV_C65 = 32 } -enum : uint { DMPAPER_ENV_B4 = 33 } -enum : uint { DMPAPER_ENV_B5 = 34 } -enum : uint { DMPAPER_ENV_B6 = 35 } -enum : uint { DMPAPER_ENV_ITALY = 36 } -enum : uint { DMPAPER_ENV_MONARCH = 37 } -enum : uint { DMPAPER_ENV_PERSONAL = 38 } -enum : uint { DMPAPER_FANFOLD_US = 39 } -enum : uint { DMPAPER_FANFOLD_STD_GERMAN = 40 } -enum : uint { DMPAPER_FANFOLD_LGL_GERMAN = 41 } -// #if(WINVER >= 0x0400) -enum : uint { DMPAPER_ISO_B4 = 42 } -enum : uint { DMPAPER_JAPANESE_POSTCARD = 43 } -enum : uint { DMPAPER_9X11 = 44 } -enum : uint { DMPAPER_10X11 = 45 } -enum : uint { DMPAPER_15X11 = 46 } -enum : uint { DMPAPER_ENV_INVITE = 47 } -enum : uint { DMPAPER_RESERVED_48 = 48 } -enum : uint { DMPAPER_RESERVED_49 = 49 } -enum : uint { DMPAPER_LETTER_EXTRA = 50 } -enum : uint { DMPAPER_LEGAL_EXTRA = 51 } -enum : uint { DMPAPER_TABLOID_EXTRA = 52 } -enum : uint { DMPAPER_A4_EXTRA = 53 } -enum : uint { DMPAPER_LETTER_TRANSVERSE = 54 } -enum : uint { DMPAPER_A4_TRANSVERSE = 55 } -enum : uint { DMPAPER_LETTER_EXTRA_TRANSVERSE = 56 } -enum : uint { DMPAPER_A_PLUS = 57 } -enum : uint { DMPAPER_B_PLUS = 58 } -enum : uint { DMPAPER_LETTER_PLUS = 59 } -enum : uint { DMPAPER_A4_PLUS = 60 } -enum : uint { DMPAPER_A5_TRANSVERSE = 61 } -enum : uint { DMPAPER_B5_TRANSVERSE = 62 } -enum : uint { DMPAPER_A3_EXTRA = 63 } -enum : uint { DMPAPER_A5_EXTRA = 64 } -enum : uint { DMPAPER_B5_EXTRA = 65 } -enum : uint { DMPAPER_A2 = 66 } -enum : uint { DMPAPER_A3_TRANSVERSE = 67 } -enum : uint { DMPAPER_A3_EXTRA_TRANSVERSE = 68 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -enum : uint { DMPAPER_DBL_JAPANESE_POSTCARD = 69 } -enum : uint { DMPAPER_A6 = 70 } -enum : uint { DMPAPER_JENV_KAKU2 = 71 } -enum : uint { DMPAPER_JENV_KAKU3 = 72 } -enum : uint { DMPAPER_JENV_CHOU3 = 73 } -enum : uint { DMPAPER_JENV_CHOU4 = 74 } -enum : uint { DMPAPER_LETTER_ROTATED = 75 } -enum : uint { DMPAPER_A3_ROTATED = 76 } -enum : uint { DMPAPER_A4_ROTATED = 77 } -enum : uint { DMPAPER_A5_ROTATED = 78 } -enum : uint { DMPAPER_B4_JIS_ROTATED = 79 } -enum : uint { DMPAPER_B5_JIS_ROTATED = 80 } -enum : uint { DMPAPER_JAPANESE_POSTCARD_ROTATED = 81 } -enum : uint { DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED = 82 } -enum : uint { DMPAPER_A6_ROTATED = 83 } -enum : uint { DMPAPER_JENV_KAKU2_ROTATED = 84 } -enum : uint { DMPAPER_JENV_KAKU3_ROTATED = 85 } -enum : uint { DMPAPER_JENV_CHOU3_ROTATED = 86 } -enum : uint { DMPAPER_JENV_CHOU4_ROTATED = 87 } -enum : uint { DMPAPER_B6_JIS = 88 } -enum : uint { DMPAPER_B6_JIS_ROTATED = 89 } -enum : uint { DMPAPER_12X11 = 90 } -enum : uint { DMPAPER_JENV_YOU4 = 91 } -enum : uint { DMPAPER_JENV_YOU4_ROTATED = 92 } -enum : uint { DMPAPER_P16K = 93 } -enum : uint { DMPAPER_P32K = 94 } -enum : uint { DMPAPER_P32KBIG = 95 } -enum : uint { DMPAPER_PENV_1 = 96 } -enum : uint { DMPAPER_PENV_2 = 97 } -enum : uint { DMPAPER_PENV_3 = 98 } -enum : uint { DMPAPER_PENV_4 = 99 } -enum : uint { DMPAPER_PENV_5 = 100 } -enum : uint { DMPAPER_PENV_6 = 101 } -enum : uint { DMPAPER_PENV_7 = 102 } -enum : uint { DMPAPER_PENV_8 = 103 } -enum : uint { DMPAPER_PENV_9 = 104 } -enum : uint { DMPAPER_PENV_10 = 105 } -enum : uint { DMPAPER_P16K_ROTATED = 106 } -enum : uint { DMPAPER_P32K_ROTATED = 107 } -enum : uint { DMPAPER_P32KBIG_ROTATED = 108 } -enum : uint { DMPAPER_PENV_1_ROTATED = 109 } -enum : uint { DMPAPER_PENV_2_ROTATED = 110 } -enum : uint { DMPAPER_PENV_3_ROTATED = 111 } -enum : uint { DMPAPER_PENV_4_ROTATED = 112 } -enum : uint { DMPAPER_PENV_5_ROTATED = 113 } -enum : uint { DMPAPER_PENV_6_ROTATED = 114 } -enum : uint { DMPAPER_PENV_7_ROTATED = 115 } -enum : uint { DMPAPER_PENV_8_ROTATED = 116 } -enum : uint { DMPAPER_PENV_9_ROTATED = 117 } -enum : uint { DMPAPER_PENV_10_ROTATED = 118 } -// #endif /* WINVER >= 0x0500 */ - -// #if (WINVER >= 0x0500) -alias DMPAPER_PENV_10_ROTATED DMPAPER_LAST; -// #elif (WINVER >= 0x0400) -// #... -// #else -// #... -// #endif - -enum : uint { DMPAPER_USER = 256 } - -enum { DMBIN_FIRST = 1 } -enum : uint { DMBIN_UPPER = 1 } -enum : uint { DMBIN_ONLYONE = 1 } -enum : uint { DMBIN_LOWER = 2 } -enum : uint { DMBIN_MIDDLE = 3 } -enum : uint { DMBIN_MANUAL = 4 } -enum : uint { DMBIN_ENVELOPE = 5 } -enum : uint { DMBIN_ENVMANUAL = 6 } -enum : uint { DMBIN_AUTO = 7 } -enum : uint { DMBIN_TRACTOR = 8 } -enum : uint { DMBIN_SMALLFMT = 9 } -enum : uint { DMBIN_LARGEFMT = 10 } -enum : uint { DMBIN_LARGECAPACITY = 11 } -enum : uint { DMBIN_CASSETTE = 14 } -enum : uint { DMBIN_FORMSOURCE = 15 } -alias DMBIN_FORMSOURCE DMBIN_LAST; - -enum : uint { DMBIN_USER = 256 } - -enum { DMRES_DRAFT = -1 } -enum { DMRES_LOW = -2 } -enum { DMRES_MEDIUM = -3 } -enum { DMRES_HIGH = -4 } - -enum : uint { DMCOLOR_MONOCHROME = 1 } -enum : uint { DMCOLOR_COLOR = 2 } - -enum : uint { DMDUP_SIMPLEX = 1 } -enum : uint { DMDUP_VERTICAL = 2 } -enum : uint { DMDUP_HORIZONTAL = 3 } - -enum : uint { DMTT_BITMAP = 1 } -enum : uint { DMTT_DOWNLOAD = 2 } -enum : uint { DMTT_SUBDEV = 3 } -// #if(WINVER >= 0x0400) -enum : uint { DMTT_DOWNLOAD_OUTLINE = 4 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { DMCOLLATE_FALSE = 0 } -enum : uint { DMCOLLATE_TRUE = 1 } - -enum : uint { DMDISPLAYFLAGS_TEXTMODE = 0x00000004 } - -enum : uint { DMNUP_SYSTEM = 1 } -enum : uint { DMNUP_ONEUP = 2 } - -// #if(WINVER >= 0x0400) - -enum : uint { DMICMMETHOD_NONE = 1 } -enum : uint { DMICMMETHOD_SYSTEM = 2 } -enum : uint { DMICMMETHOD_DRIVER = 3 } -enum : uint { DMICMMETHOD_DEVICE = 4 } - -enum : uint { DMICMMETHOD_USER = 256 } - -enum : uint { DMICM_SATURATE = 1 } -enum : uint { DMICM_CONTRAST = 2 } -enum : uint { DMICM_COLORIMETRIC = 3 } -enum : uint { DMICM_ABS_COLORIMETRIC = 4 } - -enum : uint { DMICM_USER = 256 } - -enum : uint { DMMEDIA_STANDARD = 1 } -enum : uint { DMMEDIA_TRANSPARENCY = 2 } -enum : uint { DMMEDIA_GLOSSY = 3 } - -enum : uint { DMMEDIA_USER = 256 } - -enum : uint { DMDITHER_NONE = 1 } -enum : uint { DMDITHER_COARSE = 2 } -enum : uint { DMDITHER_FINE = 3 } -enum : uint { DMDITHER_LINEART = 4 } -enum : uint { DMDITHER_ERRORDIFFUSION = 5 } -enum : uint { DMDITHER_RESERVED6 = 6 } -enum : uint { DMDITHER_RESERVED7 = 7 } -enum : uint { DMDITHER_RESERVED8 = 8 } -enum : uint { DMDITHER_RESERVED9 = 9 } -enum : uint { DMDITHER_GRAYSCALE = 10 } - -enum : uint { DMDITHER_USER = 256 } -// #endif /* WINVER >= 0x0400 */ - -struct _DISPLAY_DEVICEA { - DWORD cb; - CHAR DeviceName[32]; - CHAR DeviceString[128]; - DWORD StateFlags; - CHAR DeviceID[128]; - CHAR DeviceKey[128]; -} -alias _DISPLAY_DEVICEA DISPLAY_DEVICEA; -alias _DISPLAY_DEVICEA* PDISPLAY_DEVICEA; -alias _DISPLAY_DEVICEA* LPDISPLAY_DEVICEA; - -struct _DISPLAY_DEVICEW { - DWORD cb; - WCHAR DeviceName[32]; - WCHAR DeviceString[128]; - DWORD StateFlags; - WCHAR DeviceID[128]; - WCHAR DeviceKey[128]; -} -alias _DISPLAY_DEVICEW DISPLAY_DEVICEW; -alias _DISPLAY_DEVICEW* PDISPLAY_DEVICEW; -alias _DISPLAY_DEVICEW* LPDISPLAY_DEVICEW; - -// #ifdef UNICODE -alias DISPLAY_DEVICEW DISPLAY_DEVICE; -alias PDISPLAY_DEVICEW PDISPLAY_DEVICE; -alias LPDISPLAY_DEVICEW LPDISPLAY_DEVICE; -// #else -// ... -// #endif // UNICODE - -enum : uint { DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = 0x00000001 } -enum : uint { DISPLAY_DEVICE_MULTI_DRIVER = 0x00000002 } -enum : uint { DISPLAY_DEVICE_PRIMARY_DEVICE = 0x00000004 } -enum : uint { DISPLAY_DEVICE_MIRRORING_DRIVER = 0x00000008 } -enum : uint { DISPLAY_DEVICE_VGA_COMPATIBLE = 0x00000010 } -enum : uint { DISPLAY_DEVICE_REMOVABLE = 0x00000020 } -enum : uint { DISPLAY_DEVICE_MODESPRUNED = 0x08000000 } -enum : uint { DISPLAY_DEVICE_REMOTE = 0x04000000 } -enum : uint { DISPLAY_DEVICE_DISCONNECT = 0x02000000 } - -enum : uint { DISPLAY_DEVICE_ACTIVE = 0x00000001 } -enum : uint { DISPLAY_DEVICE_ATTACHED = 0x00000002 } - -enum : uint { RDH_RECTANGLES = 1 } - -struct _RGNDATAHEADER { - DWORD dwSize; - DWORD iType; - DWORD nCount; - DWORD nRgnSize; - RECT rcBound; -} -alias _RGNDATAHEADER RGNDATAHEADER; -alias _RGNDATAHEADER* PRGNDATAHEADER; - -struct _RGNDATA { - RGNDATAHEADER rdh; - char Buffer[1]; -} -alias _RGNDATA RGNDATA; -alias _RGNDATA* PRGNDATA; -alias _RGNDATA* NPRGNDATA; -alias _RGNDATA* LPRGNDATA; - -enum : uint { SYSRGN = 4 } - -struct _ABC { - int abcA; - UINT abcB; - int abcC; -} -alias _ABC ABC; -alias _ABC* PABC; -alias _ABC* NPABC; -alias _ABC* LPABC; - -struct _ABCFLOAT { - FLOAT abcfA; - FLOAT abcfB; - FLOAT abcfC; -} -alias _ABCFLOAT ABCFLOAT; -alias _ABCFLOAT* PABCFLOAT; -alias _ABCFLOAT* NPABCFLOAT; -alias _ABCFLOAT* LPABCFLOAT; - -// #ifndef NOTEXTMETRIC - -// #ifdef _MAC -// #... -// #endif -struct _OUTLINETEXTMETRICA { - UINT otmSize; - TEXTMETRICA otmTextMetrics; - BYTE otmFiller; - PANOSE otmPanoseNumber; - UINT otmfsSelection; - UINT otmfsType; - int otmsCharSlopeRise; - int otmsCharSlopeRun; - int otmItalicAngle; - UINT otmEMSquare; - int otmAscent; - int otmDescent; - UINT otmLineGap; - UINT otmsCapEmHeight; - UINT otmsXHeight; - RECT otmrcFontBox; - int otmMacAscent; - int otmMacDescent; - UINT otmMacLineGap; - UINT otmusMinimumPPEM; - POINT otmptSubscriptSize; - POINT otmptSubscriptOffset; - POINT otmptSuperscriptSize; - POINT otmptSuperscriptOffset; - UINT otmsStrikeoutSize; - int otmsStrikeoutPosition; - int otmsUnderscoreSize; - int otmsUnderscorePosition; - PSTR otmpFamilyName; - PSTR otmpFaceName; - PSTR otmpStyleName; - PSTR otmpFullName; -} -alias _OUTLINETEXTMETRICA OUTLINETEXTMETRICA; -alias _OUTLINETEXTMETRICA* POUTLINETEXTMETRICA; -alias _OUTLINETEXTMETRICA* NPOUTLINETEXTMETRICA; -alias _OUTLINETEXTMETRICA* LPOUTLINETEXTMETRICA; - -struct _OUTLINETEXTMETRICW { - UINT otmSize; - TEXTMETRICW otmTextMetrics; - BYTE otmFiller; - PANOSE otmPanoseNumber; - UINT otmfsSelection; - UINT otmfsType; - int otmsCharSlopeRise; - int otmsCharSlopeRun; - int otmItalicAngle; - UINT otmEMSquare; - int otmAscent; - int otmDescent; - UINT otmLineGap; - UINT otmsCapEmHeight; - UINT otmsXHeight; - RECT otmrcFontBox; - int otmMacAscent; - int otmMacDescent; - UINT otmMacLineGap; - UINT otmusMinimumPPEM; - POINT otmptSubscriptSize; - POINT otmptSubscriptOffset; - POINT otmptSuperscriptSize; - POINT otmptSuperscriptOffset; - UINT otmsStrikeoutSize; - int otmsStrikeoutPosition; - int otmsUnderscoreSize; - int otmsUnderscorePosition; - PSTR otmpFamilyName; - PSTR otmpFaceName; - PSTR otmpStyleName; - PSTR otmpFullName; -} -alias _OUTLINETEXTMETRICW OUTLINETEXTMETRICW; -alias _OUTLINETEXTMETRICW* POUTLINETEXTMETRICW; -alias _OUTLINETEXTMETRICW* NPOUTLINETEXTMETRICW; -alias _OUTLINETEXTMETRICW* LPOUTLINETEXTMETRICW; - -// #ifdef UNICODE -alias OUTLINETEXTMETRICW OUTLINETEXTMETRIC; -alias POUTLINETEXTMETRICW POUTLINETEXTMETRIC; -alias NPOUTLINETEXTMETRICW NPOUTLINETEXTMETRIC; -alias LPOUTLINETEXTMETRICW LPOUTLINETEXTMETRIC; -// #else -// ... -// #endif // UNICODE - -// #ifdef _MAC -// #... -// #endif - -// #endif /* NOTEXTMETRIC */ - -struct tagPOLYTEXTA { - int x; - int y; - UINT n; - LPCSTR lpstr; - UINT uiFlags; - RECT rcl; - int *pdx; -} -alias tagPOLYTEXTA POLYTEXTA; -alias tagPOLYTEXTA* PPOLYTEXTA; -alias tagPOLYTEXTA* NPPOLYTEXTA; -alias tagPOLYTEXTA* LPPOLYTEXTA; - -struct tagPOLYTEXTW { - int x; - int y; - UINT n; - LPCWSTR lpstr; - UINT uiFlags; - RECT rcl; - int *pdx; -} -alias tagPOLYTEXTW POLYTEXTW; -alias tagPOLYTEXTW* PPOLYTEXTW; -alias tagPOLYTEXTW* NPPOLYTEXTW; -alias tagPOLYTEXTW* LPPOLYTEXTW; - -// #ifdef UNICODE -alias POLYTEXTW POLYTEXT; -alias PPOLYTEXTW PPOLYTEXT; -alias NPPOLYTEXTW NPPOLYTEXT; -alias LPPOLYTEXTW LPPOLYTEXT; -// #else -// ... -// #endif // UNICODE - -struct _FIXED { -// #ifndef _MAC - WORD fract; - short value; -// #else -// ... -// #endif -} -alias _FIXED FIXED; - -struct _MAT2 { - FIXED eM11; - FIXED eM12; - FIXED eM21; - FIXED eM22; -} -alias _MAT2 MAT2; -alias _MAT2* LPMAT2; - -struct _GLYPHMETRICS { - UINT gmBlackBoxX; - UINT gmBlackBoxY; - POINT gmptGlyphOrigin; - short gmCellIncX; - short gmCellIncY; -} -alias _GLYPHMETRICS GLYPHMETRICS; -alias _GLYPHMETRICS* LPGLYPHMETRICS; - -enum : uint { GGO_METRICS = 0 } -enum : uint { GGO_BITMAP = 1 } -enum : uint { GGO_NATIVE = 2 } -enum : uint { GGO_BEZIER = 3 } - -// #if(WINVER >= 0x0400) -enum : uint { GGO_GRAY2_BITMAP = 4 } -enum : uint { GGO_GRAY4_BITMAP = 5 } -enum : uint { GGO_GRAY8_BITMAP = 6 } -enum : uint { GGO_GLYPH_INDEX = 0x0080 } -// #endif /* WINVER >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { GGO_UNHINTED = 0x0100 } -// #endif // (_WIN32_WINNT >= 0x0500) - -enum : uint { TT_POLYGON_TYPE = 24 } - -enum : uint { TT_PRIM_LINE = 1 } -enum : uint { TT_PRIM_QSPLINE = 2 } -enum : uint { TT_PRIM_CSPLINE = 3 } - -struct tagPOINTFX { - FIXED x; - FIXED y; -} -alias tagPOINTFX POINTFX; -alias tagPOINTFX* LPPOINTFX; - -struct tagTTPOLYCURVE { - WORD wType; - WORD cpfx; - POINTFX apfx[1]; -} -alias tagTTPOLYCURVE TTPOLYCURVE; -alias tagTTPOLYCURVE* LPTTPOLYCURVE; - -struct tagTTPOLYGONHEADER { - DWORD cb; - DWORD dwType; - POINTFX pfxStart; -} -alias tagTTPOLYGONHEADER TTPOLYGONHEADER; -alias tagTTPOLYGONHEADER* LPTTPOLYGONHEADER; - -// #if(WINVER >= 0x0400) -enum : uint { GCP_DBCS = 0x0001 } -enum : uint { GCP_REORDER = 0x0002 } -enum : uint { GCP_USEKERNING = 0x0008 } -enum : uint { GCP_GLYPHSHAPE = 0x0010 } -enum : uint { GCP_LIGATE = 0x0020 } - -enum : uint { GCP_DIACRITIC = 0x0100 } -enum : uint { GCP_KASHIDA = 0x0400 } -enum : uint { GCP_ERROR = 0x8000 } -enum : uint { FLI_MASK = 0x103B } - -enum : uint { GCP_JUSTIFY = 0x00010000 } - -enum : uint { FLI_GLYPHS = 0x00040000 } -enum : uint { GCP_CLASSIN = 0x00080000 } -enum : uint { GCP_MAXEXTENT = 0x00100000 } -enum : uint { GCP_JUSTIFYIN = 0x00200000 } -enum : uint { GCP_DISPLAYZWG = 0x00400000 } -enum : uint { GCP_SYMSWAPOFF = 0x00800000 } -enum : uint { GCP_NUMERICOVERRIDE = 0x01000000 } -enum : uint { GCP_NEUTRALOVERRIDE = 0x02000000 } -enum : uint { GCP_NUMERICSLATIN = 0x04000000 } -enum : uint { GCP_NUMERICSLOCAL = 0x08000000 } - -enum : uint { GCPCLASS_LATIN = 1 } -enum : uint { GCPCLASS_HEBREW = 2 } -enum : uint { GCPCLASS_ARABIC = 2 } -enum : uint { GCPCLASS_NEUTRAL = 3 } -enum : uint { GCPCLASS_LOCALNUMBER = 4 } -enum : uint { GCPCLASS_LATINNUMBER = 5 } -enum : uint { GCPCLASS_LATINNUMERICTERMINATOR = 6 } -enum : uint { GCPCLASS_LATINNUMERICSEPARATOR = 7 } -enum : uint { GCPCLASS_NUMERICSEPARATOR = 8 } -enum : uint { GCPCLASS_PREBOUNDLTR = 0x80 } -enum : uint { GCPCLASS_PREBOUNDRTL = 0x40 } -enum : uint { GCPCLASS_POSTBOUNDLTR = 0x20 } -enum : uint { GCPCLASS_POSTBOUNDRTL = 0x10 } - -enum : uint { GCPGLYPH_LINKBEFORE = 0x8000 } -enum : uint { GCPGLYPH_LINKAFTER = 0x4000 } - -struct tagGCP_RESULTSA { - DWORD lStructSize; - LPSTR lpOutString; - UINT *lpOrder; - int *lpDx; - int *lpCaretPos; - LPSTR lpClass; - LPWSTR lpGlyphs; - UINT nGlyphs; - int nMaxFit; -} -alias tagGCP_RESULTSA GCP_RESULTSA; -alias tagGCP_RESULTSA* LPGCP_RESULTSA; - -struct tagGCP_RESULTSW { - DWORD lStructSize; - LPWSTR lpOutString; - UINT *lpOrder; - int *lpDx; - int *lpCaretPos; - LPSTR lpClass; - LPWSTR lpGlyphs; - UINT nGlyphs; - int nMaxFit; -} -alias tagGCP_RESULTSW GCP_RESULTSW; -alias tagGCP_RESULTSW* LPGCP_RESULTSW; - -// #ifdef UNICODE -alias GCP_RESULTSW GCP_RESULTS; -alias LPGCP_RESULTSW LPGCP_RESULTS; -// #else -// ... -// #endif // UNICODE -// #endif /* WINVER >= 0x0400 */ - -struct _RASTERIZER_STATUS { - short nSize; - short wFlags; - short nLanguageID; -} -alias _RASTERIZER_STATUS RASTERIZER_STATUS; -alias _RASTERIZER_STATUS* LPRASTERIZER_STATUS; - -enum : uint { TT_AVAILABLE = 0x0001 } -enum : uint { TT_ENABLED = 0x0002 } - -struct tagPIXELFORMATDESCRIPTOR { - WORD nSize; - WORD nVersion; - DWORD dwFlags; - BYTE iPixelType; - BYTE cColorBits; - BYTE cRedBits; - BYTE cRedShift; - BYTE cGreenBits; - BYTE cGreenShift; - BYTE cBlueBits; - BYTE cBlueShift; - BYTE cAlphaBits; - BYTE cAlphaShift; - BYTE cAccumBits; - BYTE cAccumRedBits; - BYTE cAccumGreenBits; - BYTE cAccumBlueBits; - BYTE cAccumAlphaBits; - BYTE cDepthBits; - BYTE cStencilBits; - BYTE cAuxBuffers; - BYTE iLayerType; - BYTE bReserved; - DWORD dwLayerMask; - DWORD dwVisibleMask; - DWORD dwDamageMask; -} -alias tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR; -alias tagPIXELFORMATDESCRIPTOR* PPIXELFORMATDESCRIPTOR; -alias tagPIXELFORMATDESCRIPTOR* LPPIXELFORMATDESCRIPTOR; - -enum : uint { PFD_TYPE_RGBA = 0 } -enum : uint { PFD_TYPE_COLORINDEX = 1 } - -enum : uint { PFD_MAIN_PLANE = 0 } -enum : uint { PFD_OVERLAY_PLANE = 1 } -enum { PFD_UNDERLAY_PLANE = -1 } - -enum : uint { PFD_DOUBLEBUFFER = 0x00000001 } -enum : uint { PFD_STEREO = 0x00000002 } -enum : uint { PFD_DRAW_TO_WINDOW = 0x00000004 } -enum : uint { PFD_DRAW_TO_BITMAP = 0x00000008 } -enum : uint { PFD_SUPPORT_GDI = 0x00000010 } -enum : uint { PFD_SUPPORT_OPENGL = 0x00000020 } -enum : uint { PFD_GENERIC_FORMAT = 0x00000040 } -enum : uint { PFD_NEED_PALETTE = 0x00000080 } -enum : uint { PFD_NEED_SYSTEM_PALETTE = 0x00000100 } -enum : uint { PFD_SWAP_EXCHANGE = 0x00000200 } -enum : uint { PFD_SWAP_COPY = 0x00000400 } -enum : uint { PFD_SWAP_LAYER_BUFFERS = 0x00000800 } -enum : uint { PFD_GENERIC_ACCELERATED = 0x00001000 } -enum : uint { PFD_SUPPORT_DIRECTDRAW = 0x00002000 } - -enum : uint { PFD_DEPTH_DONTCARE = 0x20000000 } -enum : uint { PFD_DOUBLEBUFFER_DONTCARE = 0x40000000 } -enum : uint { PFD_STEREO_DONTCARE = 0x80000000 } - -// #ifdef STRICT -// #if !defined(NOTEXTMETRIC) -extern(Windows) alias int function( LOGFONTA *, TEXTMETRICA *, DWORD, LPARAM) OLDFONTENUMPROCA; -extern(Windows) alias int function( LOGFONTW *, TEXTMETRICW *, DWORD, LPARAM) OLDFONTENUMPROCW; -// #ifdef UNICODE -alias OLDFONTENUMPROCW OLDFONTENUMPROC; -// #else -// #... -// #endif // !UNICODE -// #else -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE -// #endif - -alias OLDFONTENUMPROCA FONTENUMPROCA; -alias OLDFONTENUMPROCW FONTENUMPROCW; -// #ifdef UNICODE -alias FONTENUMPROCW FONTENUMPROC; -// #else -// ... -// #endif // UNICODE - -extern(Windows) alias int function(LPVOID, LPARAM) GOBJENUMPROC; -extern(Windows) alias VOID function(int, int, LPARAM) LINEDDAPROC; -// #else -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE -// ... -// #endif - -extern(Windows) export int AddFontResourceA(LPCSTR); -extern(Windows) export int AddFontResourceW(LPCWSTR); -// #ifdef UNICODE -alias AddFontResourceW AddFontResource; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL AnimatePalette(HPALETTE, UINT, UINT, PALETTEENTRY *); -extern(Windows) export BOOL Arc(HDC, int, int, int, int, int, int, int, int); -extern(Windows) export BOOL BitBlt(HDC, int, int, int, int, HDC, int, int, DWORD); -extern(Windows) export BOOL CancelDC(HDC); -extern(Windows) export BOOL Chord(HDC, int, int, int, int, int, int, int, int); -extern(Windows) export int ChoosePixelFormat(HDC, PIXELFORMATDESCRIPTOR *); -extern(Windows) export HMETAFILE CloseMetaFile(HDC); -extern(Windows) export int CombineRgn(HRGN, HRGN, HRGN, int); -extern(Windows) export HMETAFILE CopyMetaFileA(HMETAFILE, LPCSTR); -extern(Windows) export HMETAFILE CopyMetaFileW(HMETAFILE, LPCWSTR); -// #ifdef UNICODE -alias CopyMetaFileW CopyMetaFile; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HBITMAP CreateBitmap(int, int, UINT, UINT, VOID *); -extern(Windows) export HBITMAP CreateBitmapIndirect(BITMAP *); -extern(Windows) export HBRUSH CreateBrushIndirect(LOGBRUSH *); -extern(Windows) export HBITMAP CreateCompatibleBitmap(HDC, int, int); -extern(Windows) export HBITMAP CreateDiscardableBitmap(HDC, int, int); -extern(Windows) export HDC CreateCompatibleDC(HDC); -extern(Windows) export HDC CreateDCA(LPCSTR, LPCSTR, LPCSTR, DEVMODEA *); -extern(Windows) export HDC CreateDCW(LPCWSTR, LPCWSTR, LPCWSTR, DEVMODEW *); -// #ifdef UNICODE -alias CreateDCW CreateDC; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HBITMAP CreateDIBitmap(HDC, BITMAPINFOHEADER *, DWORD, VOID *, BITMAPINFO *, UINT); -extern(Windows) export HBRUSH CreateDIBPatternBrush(HGLOBAL, UINT); -extern(Windows) export HBRUSH CreateDIBPatternBrushPt(VOID *, UINT); -extern(Windows) export HRGN CreateEllipticRgn(int, int, int, int); -extern(Windows) export HRGN CreateEllipticRgnIndirect(RECT *); -extern(Windows) export HFONT CreateFontIndirectA(LOGFONTA *); -extern(Windows) export HFONT CreateFontIndirectW(LOGFONTW *); -// #ifdef UNICODE -alias CreateFontIndirectW CreateFontIndirect; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HFONT CreateFontA(int, int, int, int, int, DWORD, - DWORD, DWORD, DWORD, DWORD, DWORD, - DWORD, DWORD, LPCSTR); -extern(Windows) export HFONT CreateFontW(int, int, int, int, int, DWORD, - DWORD, DWORD, DWORD, DWORD, DWORD, - DWORD, DWORD, LPCWSTR); -// #ifdef UNICODE -alias CreateFontW CreateFont; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HBRUSH CreateHatchBrush(int, COLORREF); -extern(Windows) export HDC CreateICA(LPCSTR, LPCSTR, LPCSTR, DEVMODEA *); -extern(Windows) export HDC CreateICW(LPCWSTR, LPCWSTR, LPCWSTR, DEVMODEW *); -// #ifdef UNICODE -alias CreateICW CreateIC; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HDC CreateMetaFileA(LPCSTR); -extern(Windows) export HDC CreateMetaFileW(LPCWSTR); -// #ifdef UNICODE -alias CreateMetaFileW CreateMetaFile; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HPALETTE CreatePalette(LOGPALETTE *); -extern(Windows) export HPEN CreatePen(int, int, COLORREF); -extern(Windows) export HPEN CreatePenIndirect(LOGPEN *); -extern(Windows) export HRGN CreatePolyPolygonRgn(POINT *, INT *, int, int); -extern(Windows) export HBRUSH CreatePatternBrush(HBITMAP); -extern(Windows) export HRGN CreateRectRgn(int, int, int, int); -extern(Windows) export HRGN CreateRectRgnIndirect(RECT *); -extern(Windows) export HRGN CreateRoundRectRgn(int, int, int, int, int, int); -extern(Windows) export BOOL CreateScalableFontResourceA(DWORD, LPCSTR, LPCSTR, LPCSTR); -extern(Windows) export BOOL CreateScalableFontResourceW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR); -// #ifdef UNICODE -alias CreateScalableFontResourceW CreateScalableFontResource; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HBRUSH CreateSolidBrush(COLORREF); - -extern(Windows) export BOOL DeleteDC(HDC); -extern(Windows) export BOOL DeleteMetaFile(HMETAFILE); -extern(Windows) export BOOL DeleteObject(HGDIOBJ); -extern(Windows) export int DescribePixelFormat(HDC, int, UINT, LPPIXELFORMATDESCRIPTOR); - -extern(Windows) alias UINT function(HWND, HMODULE, LPDEVMODE, LPSTR, LPSTR, LPDEVMODE, LPSTR, UINT) LPFNDEVMODE; - -extern(Windows) alias DWORD function(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODE) LPFNDEVCAPS; - -enum : uint { DM_UPDATE = 1 } -enum : uint { DM_COPY = 2 } -enum : uint { DM_PROMPT = 4 } -enum : uint { DM_MODIFY = 8 } - -alias DM_MODIFY DM_IN_BUFFER; -alias DM_PROMPT DM_IN_PROMPT; -alias DM_COPY DM_OUT_BUFFER; -alias DM_UPDATE DM_OUT_DEFAULT; - -enum : uint { DC_FIELDS = 1 } -enum : uint { DC_PAPERS = 2 } -enum : uint { DC_PAPERSIZE = 3 } -enum : uint { DC_MINEXTENT = 4 } -enum : uint { DC_MAXEXTENT = 5 } -enum : uint { DC_BINS = 6 } -enum : uint { DC_DUPLEX = 7 } -enum : uint { DC_SIZE = 8 } -enum : uint { DC_EXTRA = 9 } -enum : uint { DC_VERSION = 10 } -enum : uint { DC_DRIVER = 11 } -enum : uint { DC_BINNAMES = 12 } -enum : uint { DC_ENUMRESOLUTIONS = 13 } -enum : uint { DC_FILEDEPENDENCIES = 14 } -enum : uint { DC_TRUETYPE = 15 } -enum : uint { DC_PAPERNAMES = 16 } -enum : uint { DC_ORIENTATION = 17 } -enum : uint { DC_COPIES = 18 } -// #if(WINVER >= 0x0400) -enum : uint { DC_BINADJUST = 19 } -enum : uint { DC_EMF_COMPLIANT = 20 } -enum : uint { DC_DATATYPE_PRODUCED = 21 } -enum : uint { DC_COLLATE = 22 } -enum : uint { DC_MANUFACTURER = 23 } -enum : uint { DC_MODEL = 24 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -enum : uint { DC_PERSONALITY = 25 } -enum : uint { DC_PRINTRATE = 26 } -enum : uint { DC_PRINTRATEUNIT = 27 } -enum : uint { PRINTRATEUNIT_PPM = 1 } -enum : uint { PRINTRATEUNIT_CPS = 2 } -enum : uint { PRINTRATEUNIT_LPM = 3 } -enum : uint { PRINTRATEUNIT_IPM = 4 } -enum : uint { DC_PRINTERMEM = 28 } -enum : uint { DC_MEDIAREADY = 29 } -enum : uint { DC_STAPLE = 30 } -enum : uint { DC_PRINTRATEPPM = 31 } -enum : uint { DC_COLORDEVICE = 32 } -enum : uint { DC_NUP = 33 } -enum : uint { DC_MEDIATYPENAMES = 34 } -enum : uint { DC_MEDIATYPES = 35 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { DCTT_BITMAP = 0x0000001 } -enum : uint { DCTT_DOWNLOAD = 0x0000002 } -enum : uint { DCTT_SUBDEV = 0x0000004 } -// #if(WINVER >= 0x0400) -enum : uint { DCTT_DOWNLOAD_OUTLINE = 0x0000008 } - -enum : uint { DCBA_FACEUPNONE = 0x0000 } -enum : uint { DCBA_FACEUPCENTER = 0x0001 } -enum : uint { DCBA_FACEUPLEFT = 0x0002 } -enum : uint { DCBA_FACEUPRIGHT = 0x0003 } -enum : uint { DCBA_FACEDOWNNONE = 0x0100 } -enum : uint { DCBA_FACEDOWNCENTER = 0x0101 } -enum : uint { DCBA_FACEDOWNLEFT = 0x0102 } -enum : uint { DCBA_FACEDOWNRIGHT = 0x0103 } -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export int DeviceCapabilitiesA(LPCSTR, LPCSTR, WORD, - LPSTR, DEVMODEA *); -extern(Windows) export int DeviceCapabilitiesW(LPCWSTR, LPCWSTR, WORD, - LPWSTR, DEVMODEW *); -// #ifdef UNICODE -alias DeviceCapabilitiesW DeviceCapabilities; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int DrawEscape(HDC, int, int, LPCSTR); -extern(Windows) export BOOL Ellipse(HDC, int, int, int, int); - -// #if(WINVER >= 0x0400) -extern(Windows) export int EnumFontFamiliesExA(HDC, LPLOGFONTA, FONTENUMPROCA, LPARAM, DWORD); -extern(Windows) export int EnumFontFamiliesExW(HDC, LPLOGFONTW, FONTENUMPROCW, LPARAM, DWORD); -// #ifdef UNICODE -alias EnumFontFamiliesExW EnumFontFamiliesEx; -// #else -// #... -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export int EnumFontFamiliesA(HDC, LPCSTR, FONTENUMPROCA, LPARAM); -extern(Windows) export int EnumFontFamiliesW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM); -// #ifdef UNICODE -alias EnumFontFamiliesW EnumFontFamilies; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export int EnumFontsA(HDC, LPCSTR, FONTENUMPROCA, LPARAM); -extern(Windows) export int EnumFontsW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM); -// #ifdef UNICODE -alias EnumFontsW EnumFonts; -// #else -// #... -// #endif // !UNICODE - -// #ifdef STRICT -extern(Windows) export int EnumObjects(HDC, int, GOBJENUMPROC, LPARAM); -// #else -// ... -// #endif - -extern(Windows) export BOOL EqualRgn(HRGN, HRGN); -extern(Windows) export int Escape(HDC, int, int, LPCSTR, LPVOID); -extern(Windows) export int ExtEscape(HDC, int, int, LPCSTR, int, LPSTR); -extern(Windows) export int ExcludeClipRect(HDC, int, int, int, int); -extern(Windows) export HRGN ExtCreateRegion(XFORM *, DWORD, RGNDATA *); -extern(Windows) export BOOL ExtFloodFill(HDC, int, int, COLORREF, UINT); -extern(Windows) export BOOL FillRgn(HDC, HRGN, HBRUSH); -extern(Windows) export BOOL FloodFill(HDC, int, int, COLORREF); -extern(Windows) export BOOL FrameRgn(HDC, HRGN, HBRUSH, int, int); -extern(Windows) export int GetROP2(HDC); -extern(Windows) export BOOL GetAspectRatioFilterEx(HDC, LPSIZE); -extern(Windows) export COLORREF GetBkColor(HDC); - -// #if (_WIN32_WINNT >= 0x0500) -extern(Windows) export COLORREF GetDCBrushColor(HDC); -extern(Windows) export COLORREF GetDCPenColor(HDC); -// #endif - -extern(Windows) export int GetBkMode(HDC); -extern(Windows) export LONG GetBitmapBits(HBITMAP, LONG, LPVOID); -extern(Windows) export BOOL GetBitmapDimensionEx(HBITMAP, LPSIZE); -extern(Windows) export UINT GetBoundsRect(HDC, LPRECT, UINT); - -extern(Windows) export BOOL GetBrushOrgEx(HDC, LPPOINT); - -extern(Windows) export BOOL GetCharWidthA(HDC, UINT, UINT, LPINT); -extern(Windows) export BOOL GetCharWidthW(HDC, UINT, UINT, LPINT); -// #ifdef UNICODE -alias GetCharWidthW GetCharWidth; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL GetCharWidth32A(HDC, UINT, UINT, LPINT); -extern(Windows) export BOOL GetCharWidth32W(HDC, UINT, UINT, LPINT); -// #ifdef UNICODE -alias GetCharWidth32W GetCharWidth32; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL GetCharWidthFloatA(HDC, UINT, UINT, PFLOAT); -extern(Windows) export BOOL GetCharWidthFloatW(HDC, UINT, UINT, PFLOAT); -// #ifdef UNICODE -alias GetCharWidthFloatW GetCharWidthFloat; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL GetCharABCWidthsA(HDC, UINT, UINT, LPABC); -extern(Windows) export BOOL GetCharABCWidthsW(HDC, UINT, UINT, LPABC); -// #ifdef UNICODE -alias GetCharABCWidthsW GetCharABCWidths; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL GetCharABCWidthsFloatA(HDC, UINT, UINT, LPABCFLOAT); -extern(Windows) export BOOL GetCharABCWidthsFloatW(HDC, UINT, UINT, LPABCFLOAT); -// #ifdef UNICODE -alias GetCharABCWidthsFloatW GetCharABCWidthsFloat; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export int GetClipBox(HDC, LPRECT); -extern(Windows) export int GetClipRgn(HDC, HRGN); -extern(Windows) export int GetMetaRgn(HDC, HRGN); -extern(Windows) export HGDIOBJ GetCurrentObject(HDC, UINT); -extern(Windows) export BOOL GetCurrentPositionEx(HDC, LPPOINT); -extern(Windows) export int GetDeviceCaps(HDC, int); -extern(Windows) export int GetDIBits(HDC, HBITMAP, UINT, UINT, LPVOID, LPBITMAPINFO, UINT); -extern(Windows) export DWORD GetFontData(HDC, DWORD, DWORD, LPVOID, DWORD); -extern(Windows) export DWORD GetGlyphOutlineA(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, LPVOID, MAT2 *); -extern(Windows) export DWORD GetGlyphOutlineW(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, LPVOID, MAT2 *); -// #ifdef UNICODE -alias GetGlyphOutlineW GetGlyphOutline; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export int GetGraphicsMode(HDC); -extern(Windows) export int GetMapMode(HDC); -extern(Windows) export UINT GetMetaFileBitsEx(HMETAFILE, UINT, LPVOID); -extern(Windows) export HMETAFILE GetMetaFileA(LPCSTR); -extern(Windows) export HMETAFILE GetMetaFileW(LPCWSTR); -// #ifdef UNICODE -alias GetMetaFileW GetMetaFile; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export COLORREF GetNearestColor(HDC, COLORREF); -extern(Windows) export UINT GetNearestPaletteIndex(HPALETTE, COLORREF); -extern(Windows) export DWORD GetObjectType(HGDIOBJ h); - -// #ifndef NOTEXTMETRIC - -extern(Windows) export UINT GetOutlineTextMetricsA(HDC, UINT, LPOUTLINETEXTMETRICA); -extern(Windows) export UINT GetOutlineTextMetricsW(HDC, UINT, LPOUTLINETEXTMETRICW); -// #ifdef UNICODE -alias GetOutlineTextMetricsW GetOutlineTextMetrics; -// #else -// #... -// #endif // !UNICODE - -// #endif /* NOTEXTMETRIC */ - -extern(Windows) export UINT GetPaletteEntries(HPALETTE, UINT, UINT, LPPALETTEENTRY); -extern(Windows) export COLORREF GetPixel(HDC, int, int); -extern(Windows) export int GetPixelFormat(HDC); -extern(Windows) export int GetPolyFillMode(HDC); -extern(Windows) export BOOL GetRasterizerCaps(LPRASTERIZER_STATUS, UINT); -extern(Windows) export int GetRandomRgn(HDC, HRGN, INT); -extern(Windows) export DWORD GetRegionData(HRGN, DWORD, LPRGNDATA); -extern(Windows) export int GetRgnBox(HRGN, LPRECT); -extern(Windows) export HGDIOBJ GetStockObject(int); -extern(Windows) export int GetStretchBltMode(HDC); -extern(Windows) export UINT GetSystemPaletteEntries(HDC, UINT, UINT, LPPALETTEENTRY); -extern(Windows) export UINT GetSystemPaletteUse(HDC); -extern(Windows) export int GetTextCharacterExtra(HDC); -extern(Windows) export UINT GetTextAlign(HDC); -extern(Windows) export COLORREF GetTextColor(HDC); - -extern(Windows) export BOOL GetTextExtentPointA( - HDC, - LPCSTR, - int, - LPSIZE); -extern(Windows) export BOOL GetTextExtentPointW( - HDC, - LPCWSTR, - int, - LPSIZE); -// #ifdef UNICODE -alias GetTextExtentPointW GetTextExtentPoint; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetTextExtentPoint32A( - HDC, - LPCSTR, - int, - LPSIZE); -extern(Windows) export BOOL GetTextExtentPoint32W( - HDC, - LPCWSTR, - int, - LPSIZE); -// #ifdef UNICODE -alias GetTextExtentPoint32W GetTextExtentPoint32; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetTextExtentExPointA( - HDC, - LPCSTR, - int, - int, - LPINT, - LPINT, - LPSIZE); -extern(Windows) export BOOL GetTextExtentExPointW( - HDC, - LPCWSTR, - int, - int, - LPINT, - LPINT, - LPSIZE); -// #ifdef UNICODE -alias GetTextExtentExPointW GetTextExtentExPoint; -// #else -// #... -// #endif // !UNICODE -// #if(WINVER >= 0x0400) -extern(Windows) export int GetTextCharset(HDC hdc); -extern(Windows) export int GetTextCharsetInfo(HDC hdc, LPFONTSIGNATURE lpSig, DWORD dwFlags); -extern(Windows) export BOOL TranslateCharsetInfo(DWORD *lpSrc, LPCHARSETINFO lpCs, DWORD dwFlags); -extern(Windows) export DWORD GetFontLanguageInfo(HDC ); -extern(Windows) export DWORD GetCharacterPlacementA(HDC, LPCSTR, int, int, LPGCP_RESULTSA, DWORD); -extern(Windows) export DWORD GetCharacterPlacementW(HDC, LPCWSTR, int, int, LPGCP_RESULTSW, DWORD); -// #ifdef UNICODE -alias GetCharacterPlacementW GetCharacterPlacement; -// #else -// #... -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0500) - -struct tagWCRANGE { - WCHAR wcLow; - USHORT cGlyphs; -} -alias tagWCRANGE WCRANGE; -alias tagWCRANGE* PWCRANGE; -alias tagWCRANGE* LPWCRANGE; - -struct tagGLYPHSET { - DWORD cbThis; - DWORD flAccel; - DWORD cGlyphsSupported; - DWORD cRanges; - WCRANGE ranges[1]; -} -alias tagGLYPHSET GLYPHSET; -alias tagGLYPHSET* PGLYPHSET; -alias tagGLYPHSET* LPGLYPHSET; - -enum : uint { GS_8BIT_INDICES = 0x00000001 } - -enum : uint { GGI_MARK_NONEXISTING_GLYPHS = 0X0001 } - -extern(Windows) export DWORD GetFontUnicodeRanges(HDC, LPGLYPHSET); -extern(Windows) export DWORD GetGlyphIndicesA(HDC, LPCSTR, int, LPWORD, DWORD); -extern(Windows) export DWORD GetGlyphIndicesW(HDC, LPCWSTR, int, LPWORD, DWORD); -// #ifdef UNICODE -alias GetGlyphIndicesW GetGlyphIndices; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL GetTextExtentPointI(HDC, LPWORD, int, LPSIZE); -extern(Windows) export BOOL GetTextExtentExPointI(HDC, LPWORD, int, int, LPINT, LPINT, LPSIZE); -extern(Windows) export BOOL GetCharWidthI(HDC, UINT, UINT, LPWORD, LPINT); -extern(Windows) export BOOL GetCharABCWidthsI(HDC, UINT, UINT, LPWORD, LPABC); - -enum : uint { STAMP_DESIGNVECTOR = 0x8000000 + 'd' + ('v' << 8) } -enum : uint { STAMP_AXESLIST = 0x8000000 + 'a' + ('l' << 8) } -enum : uint { MM_MAX_NUMAXES = 16 } - -struct tagDESIGNVECTOR { - DWORD dvReserved; - DWORD dvNumAxes; - LONG dvValues[MM_MAX_NUMAXES]; -} -alias tagDESIGNVECTOR DESIGNVECTOR; -alias tagDESIGNVECTOR* PDESIGNVECTOR; -alias tagDESIGNVECTOR* LPDESIGNVECTOR; - -extern(Windows) export int AddFontResourceExA(LPCSTR, DWORD, PVOID); -extern(Windows) export int AddFontResourceExW(LPCWSTR, DWORD, PVOID); -// #ifdef UNICODE -alias AddFontResourceExW AddFontResourceEx; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL RemoveFontResourceExA(LPCSTR, DWORD, PVOID); -extern(Windows) export BOOL RemoveFontResourceExW(LPCWSTR, DWORD, PVOID); -// #ifdef UNICODE -alias RemoveFontResourceExW RemoveFontResourceEx; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HANDLE AddFontMemResourceEx(PVOID, DWORD, PVOID , DWORD*); -extern(Windows) export BOOL RemoveFontMemResourceEx(HANDLE); -enum : uint { FR_PRIVATE = 0x10 } -enum : uint { FR_NOT_ENUM = 0x20 } - -enum : uint { MM_MAX_AXES_NAMELEN = 16 } - -struct tagAXISINFOA { - LONG axMinValue; - LONG axMaxValue; - BYTE axAxisName[MM_MAX_AXES_NAMELEN]; -} -alias tagAXISINFOA AXISINFOA; -alias tagAXISINFOA* PAXISINFOA; -alias tagAXISINFOA* LPAXISINFOA; - -struct tagAXISINFOW { - LONG axMinValue; - LONG axMaxValue; - WCHAR axAxisName[MM_MAX_AXES_NAMELEN]; -} -alias tagAXISINFOW AXISINFOW; -alias tagAXISINFOW* PAXISINFOW; -alias tagAXISINFOW* LPAXISINFOW; - -// #ifdef UNICODE -alias AXISINFOW AXISINFO; -alias PAXISINFOW PAXISINFO; -alias LPAXISINFOW LPAXISINFO; -// #else -// ... -// #endif // UNICODE - -struct tagAXESLISTA { - DWORD axlReserved; - DWORD axlNumAxes; - AXISINFOA axlAxisInfo[MM_MAX_NUMAXES]; -} -alias tagAXESLISTA AXESLISTA; -alias tagAXESLISTA* PAXESLISTA; -alias tagAXESLISTA* LPAXESLISTA; - -struct tagAXESLISTW { - DWORD axlReserved; - DWORD axlNumAxes; - AXISINFOW axlAxisInfo[MM_MAX_NUMAXES]; -} -alias tagAXESLISTW AXESLISTW; -alias tagAXESLISTW* PAXESLISTW; -alias tagAXESLISTW* LPAXESLISTW; - -// #ifdef UNICODE -alias AXESLISTW AXESLIST; -alias PAXESLISTW PAXESLIST; -alias LPAXESLISTW LPAXESLIST; -// #else -// ... -// #endif // UNICODE - -struct tagENUMLOGFONTEXDVA { - ENUMLOGFONTEXA elfEnumLogfontEx; - DESIGNVECTOR elfDesignVector; -} -alias tagENUMLOGFONTEXDVA ENUMLOGFONTEXDVA; -alias tagENUMLOGFONTEXDVA* PENUMLOGFONTEXDVA; -alias tagENUMLOGFONTEXDVA* LPENUMLOGFONTEXDVA; - -struct tagENUMLOGFONTEXDVW { - ENUMLOGFONTEXW elfEnumLogfontEx; - DESIGNVECTOR elfDesignVector; -} -alias tagENUMLOGFONTEXDVW ENUMLOGFONTEXDVW; -alias tagENUMLOGFONTEXDVW* PENUMLOGFONTEXDVW; -alias tagENUMLOGFONTEXDVW* LPENUMLOGFONTEXDVW; - -// #ifdef UNICODE -alias ENUMLOGFONTEXDVW ENUMLOGFONTEXDV; -alias PENUMLOGFONTEXDVW PENUMLOGFONTEXDV; -alias LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV; -// #else -// ... -// #endif // UNICODE - -extern(Windows) export HFONT CreateFontIndirectExA(ENUMLOGFONTEXDVA *); -extern(Windows) export HFONT CreateFontIndirectExW(ENUMLOGFONTEXDVW *); -// #ifdef UNICODE -alias CreateFontIndirectExW CreateFontIndirectEx; -// #else -// #... -// #endif // !UNICODE - -// #ifndef NOTEXTMETRIC -struct tagENUMTEXTMETRICA { - NEWTEXTMETRICEXA etmNewTextMetricEx; - AXESLISTA etmAxesList; -} -alias tagENUMTEXTMETRICA ENUMTEXTMETRICA; -alias tagENUMTEXTMETRICA* PENUMTEXTMETRICA; -alias tagENUMTEXTMETRICA* LPENUMTEXTMETRICA; - -struct tagENUMTEXTMETRICW { - NEWTEXTMETRICEXW etmNewTextMetricEx; - AXESLISTW etmAxesList; -} -alias tagENUMTEXTMETRICW ENUMTEXTMETRICW; -alias tagENUMTEXTMETRICW* PENUMTEXTMETRICW; -alias tagENUMTEXTMETRICW* LPENUMTEXTMETRICW; - -// #ifdef UNICODE -alias ENUMTEXTMETRICW ENUMTEXTMETRIC; -alias PENUMTEXTMETRICW PENUMTEXTMETRIC; -alias LPENUMTEXTMETRICW LPENUMTEXTMETRIC; -// #else -// ... -// #endif // UNICODE -// #endif /* NOTEXTMETRIC */ - -// #endif // (_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL GetViewportExtEx(HDC, LPSIZE); -extern(Windows) export BOOL GetViewportOrgEx(HDC, LPPOINT); -extern(Windows) export BOOL GetWindowExtEx(HDC, LPSIZE); -extern(Windows) export BOOL GetWindowOrgEx(HDC, LPPOINT); - -extern(Windows) export int IntersectClipRect(HDC, int, int, int, int); -extern(Windows) export BOOL InvertRgn(HDC, HRGN); -extern(Windows) export BOOL LineDDA(int, int, int, int, LINEDDAPROC, LPARAM); -extern(Windows) export BOOL LineTo(HDC, int, int); -extern(Windows) export BOOL MaskBlt(HDC, int, int, int, int, - HDC, int, int, HBITMAP, int, int, DWORD); -extern(Windows) export BOOL PlgBlt(HDC, POINT *, HDC, int, int, int, - int, HBITMAP, int, int); - -extern(Windows) export int OffsetClipRgn(HDC, int, int); -extern(Windows) export int OffsetRgn(HRGN, int, int); -extern(Windows) export BOOL PatBlt(HDC, int, int, int, int, DWORD); -extern(Windows) export BOOL Pie(HDC, int, int, int, int, int, int, int, int); -extern(Windows) export BOOL PlayMetaFile(HDC, HMETAFILE); -extern(Windows) export BOOL PaintRgn(HDC, HRGN); -extern(Windows) export BOOL PolyPolygon(HDC, POINT *, INT *, int); -extern(Windows) export BOOL PtInRegion(HRGN, int, int); -extern(Windows) export BOOL PtVisible(HDC, int, int); -extern(Windows) export BOOL RectInRegion(HRGN, RECT *); -extern(Windows) export BOOL RectVisible(HDC, RECT *); -extern(Windows) export BOOL Rectangle(HDC, int, int, int, int); -extern(Windows) export BOOL RestoreDC(HDC, int); -extern(Windows) export HDC ResetDCA(HDC, DEVMODEA *); -extern(Windows) export HDC ResetDCW(HDC, DEVMODEW *); -// #ifdef UNICODE -alias ResetDCW ResetDC; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export UINT RealizePalette(HDC); -extern(Windows) export BOOL RemoveFontResourceA(LPCSTR); -extern(Windows) export BOOL RemoveFontResourceW(LPCWSTR); -// #ifdef UNICODE -alias RemoveFontResourceW RemoveFontResource; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL RoundRect(HDC, int, int, int, int, int, int); -extern(Windows) export BOOL ResizePalette(HPALETTE, UINT); - -extern(Windows) export int SaveDC(HDC); -extern(Windows) export int SelectClipRgn(HDC, HRGN); -extern(Windows) export int ExtSelectClipRgn(HDC, HRGN, int); -extern(Windows) export int SetMetaRgn(HDC); -extern(Windows) export HGDIOBJ SelectObject(HDC, HGDIOBJ); -extern(Windows) export HPALETTE SelectPalette(HDC, HPALETTE, BOOL); -extern(Windows) export COLORREF SetBkColor(HDC, COLORREF); - -// #if (_WIN32_WINNT >= 0x0500) -extern(Windows) export COLORREF SetDCBrushColor(HDC, COLORREF); -extern(Windows) export COLORREF SetDCPenColor(HDC, COLORREF); -// #endif - -extern(Windows) export int SetBkMode(HDC, int); -extern(Windows) export LONG SetBitmapBits(HBITMAP, DWORD, VOID *); - -extern(Windows) export UINT SetBoundsRect(HDC, RECT *, UINT); -extern(Windows) export int SetDIBits(HDC, HBITMAP, UINT, UINT, VOID *, BITMAPINFO *, UINT); -extern(Windows) export int SetDIBitsToDevice(HDC, int, int, DWORD, DWORD, int, - int, UINT, UINT, VOID *, BITMAPINFO *, UINT); -extern(Windows) export DWORD SetMapperFlags(HDC, DWORD); -extern(Windows) export int SetGraphicsMode(HDC hdc, int iMode); -extern(Windows) export int SetMapMode(HDC, int); - -// #if(WINVER >= 0x0500) -extern(Windows) export DWORD SetLayout(HDC, DWORD); -extern(Windows) export DWORD GetLayout(HDC); -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export HMETAFILE SetMetaFileBitsEx(UINT, BYTE *); -extern(Windows) export UINT SetPaletteEntries(HPALETTE, UINT, UINT, PALETTEENTRY *); -extern(Windows) export COLORREF SetPixel(HDC, int, int, COLORREF); -extern(Windows) export BOOL SetPixelV(HDC, int, int, COLORREF); -extern(Windows) export BOOL SetPixelFormat(HDC, int, PIXELFORMATDESCRIPTOR *); -extern(Windows) export int SetPolyFillMode(HDC, int); -extern(Windows) export BOOL StretchBlt(HDC, int, int, int, int, HDC, int, int, int, int, DWORD); -extern(Windows) export BOOL SetRectRgn(HRGN, int, int, int, int); -extern(Windows) export int StretchDIBits(HDC, int, int, int, int, int, int, int, int, - VOID *, BITMAPINFO *, UINT, DWORD); -extern(Windows) export int SetROP2(HDC, int); -extern(Windows) export int SetStretchBltMode(HDC, int); -extern(Windows) export UINT SetSystemPaletteUse(HDC, UINT); -extern(Windows) export int SetTextCharacterExtra(HDC, int); -extern(Windows) export COLORREF SetTextColor(HDC, COLORREF); -extern(Windows) export UINT SetTextAlign(HDC, UINT); -extern(Windows) export BOOL SetTextJustification(HDC, int, int); -extern(Windows) export BOOL UpdateColors(HDC); - -// #if (WINVER >= 0x0400) - -alias USHORT COLOR16; - -struct _TRIVERTEX { - LONG x; - LONG y; - COLOR16 Red; - COLOR16 Green; - COLOR16 Blue; - COLOR16 Alpha; -} -alias _TRIVERTEX TRIVERTEX; -alias _TRIVERTEX* PTRIVERTEX; -alias _TRIVERTEX* LPTRIVERTEX; - -struct _GRADIENT_TRIANGLE { - ULONG Vertex1; - ULONG Vertex2; - ULONG Vertex3; -} -alias _GRADIENT_TRIANGLE GRADIENT_TRIANGLE; -alias _GRADIENT_TRIANGLE* PGRADIENT_TRIANGLE; -alias _GRADIENT_TRIANGLE* LPGRADIENT_TRIANGLE; - -struct _GRADIENT_RECT { - ULONG UpperLeft; - ULONG LowerRight; -} -alias _GRADIENT_RECT GRADIENT_RECT; -alias _GRADIENT_RECT* PGRADIENT_RECT; -alias _GRADIENT_RECT* LPGRADIENT_RECT; - -struct _BLENDFUNCTION { - BYTE BlendOp; - BYTE BlendFlags; - BYTE SourceConstantAlpha; - BYTE AlphaFormat; -} -alias _BLENDFUNCTION BLENDFUNCTION; -alias _BLENDFUNCTION* PBLENDFUNCTION; - -enum : uint { AC_SRC_OVER = 0x00 } - -enum : uint { AC_SRC_ALPHA = 0x01 } - -extern(Windows) export BOOL AlphaBlend(HDC, int, int, int, int, HDC, int, int, int, int, BLENDFUNCTION); - -extern(Windows) export BOOL TransparentBlt(HDC, int, int, int, int, HDC, int, int, int, int, UINT); - -enum : uint { GRADIENT_FILL_RECT_H = 0x00000000 } -enum : uint { GRADIENT_FILL_RECT_V = 0x00000001 } -enum : uint { GRADIENT_FILL_TRIANGLE = 0x00000002 } -enum : uint { GRADIENT_FILL_OP_FLAG = 0x000000ff } - -extern(Windows) export BOOL GradientFill(HDC, PTRIVERTEX, ULONG, PVOID, ULONG, ULONG); - -// #endif - -// #ifndef NOMETAFILE - -extern(Windows) export BOOL PlayMetaFileRecord(HDC, LPHANDLETABLE, LPMETARECORD, UINT); -extern(Windows) alias int function( HDC, HANDLETABLE *, METARECORD *, int, LPARAM) MFENUMPROC; -extern(Windows) export BOOL EnumMetaFile(HDC, HMETAFILE, MFENUMPROC, LPARAM); - -extern(Windows) alias int function(HDC, HANDLETABLE *, ENHMETARECORD *, int, LPARAM) ENHMFENUMPROC; - -extern(Windows) export HENHMETAFILE CloseEnhMetaFile(HDC); -extern(Windows) export HENHMETAFILE CopyEnhMetaFileA(HENHMETAFILE, LPCSTR); -extern(Windows) export HENHMETAFILE CopyEnhMetaFileW(HENHMETAFILE, LPCWSTR); -// #ifdef UNICODE -alias CopyEnhMetaFileW CopyEnhMetaFile; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HDC CreateEnhMetaFileA(HDC, LPCSTR, RECT *, LPCSTR); -extern(Windows) export HDC CreateEnhMetaFileW(HDC, LPCWSTR, RECT *, LPCWSTR); -// #ifdef UNICODE -alias CreateEnhMetaFileW CreateEnhMetaFile; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL DeleteEnhMetaFile(HENHMETAFILE); -extern(Windows) export BOOL EnumEnhMetaFile(HDC, HENHMETAFILE, ENHMFENUMPROC, - LPVOID, RECT *); -extern(Windows) export HENHMETAFILE GetEnhMetaFileA(LPCSTR); -extern(Windows) export HENHMETAFILE GetEnhMetaFileW(LPCWSTR); -// #ifdef UNICODE -alias GetEnhMetaFileW GetEnhMetaFile; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export UINT GetEnhMetaFileBits(HENHMETAFILE, UINT, LPBYTE); -extern(Windows) export UINT GetEnhMetaFileDescriptionA(HENHMETAFILE, UINT, LPSTR ); -extern(Windows) export UINT GetEnhMetaFileDescriptionW(HENHMETAFILE, UINT, LPWSTR ); -// #ifdef UNICODE -alias GetEnhMetaFileDescriptionW GetEnhMetaFileDescription; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export UINT GetEnhMetaFileHeader(HENHMETAFILE, UINT, LPENHMETAHEADER ); -extern(Windows) export UINT GetEnhMetaFilePaletteEntries(HENHMETAFILE, UINT, LPPALETTEENTRY ); -extern(Windows) export UINT GetEnhMetaFilePixelFormat(HENHMETAFILE, UINT, - PIXELFORMATDESCRIPTOR *); -extern(Windows) export UINT GetWinMetaFileBits(HENHMETAFILE, UINT, LPBYTE, INT, HDC); -extern(Windows) export BOOL PlayEnhMetaFile(HDC, HENHMETAFILE, RECT *); -extern(Windows) export BOOL PlayEnhMetaFileRecord(HDC, LPHANDLETABLE, ENHMETARECORD *, UINT); -extern(Windows) export HENHMETAFILE SetEnhMetaFileBits(UINT, BYTE *); -extern(Windows) export HENHMETAFILE SetWinMetaFileBits(UINT, BYTE *, HDC, METAFILEPICT *); -extern(Windows) export BOOL GdiComment(HDC, UINT, BYTE *); - -// #endif /* NOMETAFILE */ - -// #ifndef NOTEXTMETRIC - -extern(Windows) export BOOL GetTextMetricsA(HDC, LPTEXTMETRICA); -extern(Windows) export BOOL GetTextMetricsW(HDC, LPTEXTMETRICW); -// #ifdef UNICODE -alias GetTextMetricsW GetTextMetrics; -// #else -// #... -// #endif // !UNICODE - -// #endif - -struct tagDIBSECTION { - BITMAP dsBm; - BITMAPINFOHEADER dsBmih; - DWORD dsBitfields[3]; - HANDLE dshSection; - DWORD dsOffset; -} -alias tagDIBSECTION DIBSECTION; -alias tagDIBSECTION* LPDIBSECTION; -alias tagDIBSECTION* PDIBSECTION; - -extern(Windows) export BOOL AngleArc(HDC, int, int, DWORD, FLOAT, FLOAT); -extern(Windows) export BOOL PolyPolyline(HDC, POINT *, DWORD *, DWORD); -extern(Windows) export BOOL GetWorldTransform(HDC, LPXFORM); -extern(Windows) export BOOL SetWorldTransform(HDC, XFORM *); -extern(Windows) export BOOL ModifyWorldTransform(HDC, XFORM *, DWORD); -extern(Windows) export BOOL CombineTransform(LPXFORM, XFORM *, XFORM *); -extern(Windows) export HBITMAP CreateDIBSection(HDC, BITMAPINFO *, UINT, VOID **, HANDLE, DWORD); -extern(Windows) export UINT GetDIBColorTable(HDC, UINT, UINT, RGBQUAD *); -extern(Windows) export UINT SetDIBColorTable(HDC, UINT, UINT, RGBQUAD *); - -enum : uint { CA_NEGATIVE = 0x0001 } -enum : uint { CA_LOG_FILTER = 0x0002 } - -enum : uint { ILLUMINANT_DEVICE_DEFAULT = 0 } -enum : uint { ILLUMINANT_A = 1 } -enum : uint { ILLUMINANT_B = 2 } -enum : uint { ILLUMINANT_C = 3 } -enum : uint { ILLUMINANT_D50 = 4 } -enum : uint { ILLUMINANT_D55 = 5 } -enum : uint { ILLUMINANT_D65 = 6 } -enum : uint { ILLUMINANT_D75 = 7 } -enum : uint { ILLUMINANT_F2 = 8 } -alias ILLUMINANT_F2 ILLUMINANT_MAX_INDEX; - -alias ILLUMINANT_A ILLUMINANT_TUNGSTEN; -alias ILLUMINANT_C ILLUMINANT_DAYLIGHT; -alias ILLUMINANT_F2 ILLUMINANT_FLUORESCENT; -alias ILLUMINANT_C ILLUMINANT_NTSC; - -enum : WORD { RGB_GAMMA_MIN = 02500 } -enum : WORD { RGB_GAMMA_MAX = 65000 } - -enum : WORD { REFERENCE_WHITE_MIN = 6000 } -enum : WORD { REFERENCE_WHITE_MAX = 10000 } -enum : WORD { REFERENCE_BLACK_MIN = 0 } -enum : WORD { REFERENCE_BLACK_MAX = 4000 } - -enum : SHORT { COLOR_ADJ_MIN = -100 } -enum : SHORT { COLOR_ADJ_MAX = 100 } - -struct tagCOLORADJUSTMENT { - WORD caSize; - WORD caFlags; - WORD caIlluminantIndex; - WORD caRedGamma; - WORD caGreenGamma; - WORD caBlueGamma; - WORD caReferenceBlack; - WORD caReferenceWhite; - SHORT caContrast; - SHORT caBrightness; - SHORT caColorfulness; - SHORT caRedGreenTint; -} -alias tagCOLORADJUSTMENT COLORADJUSTMENT; -alias tagCOLORADJUSTMENT* PCOLORADJUSTMENT; -alias tagCOLORADJUSTMENT* LPCOLORADJUSTMENT; - -extern(Windows) export BOOL SetColorAdjustment(HDC, COLORADJUSTMENT *); -extern(Windows) export BOOL GetColorAdjustment(HDC, LPCOLORADJUSTMENT); -extern(Windows) export HPALETTE CreateHalftonePalette(HDC); - -// #ifdef STRICT -extern(Windows) alias BOOL function( HDC, int) ABORTPROC; -// #else -// ... -// #endif - -struct _DOCINFOA { - int cbSize; - LPCSTR lpszDocName; - LPCSTR lpszOutput; -// #if (WINVER >= 0x0400) - LPCSTR lpszDatatype; - DWORD fwType; -// #endif /* WINVER */ -} -alias _DOCINFOA DOCINFOA; -alias _DOCINFOA* LPDOCINFOA; - -struct _DOCINFOW { - int cbSize; - LPCWSTR lpszDocName; - LPCWSTR lpszOutput; -// #if (WINVER >= 0x0400) - LPCWSTR lpszDatatype; - DWORD fwType; -// #endif /* WINVER */ -} -alias _DOCINFOW DOCINFOW; -alias _DOCINFOW* LPDOCINFOW; - -// #ifdef UNICODE -alias DOCINFOW DOCINFO; -alias LPDOCINFOW LPDOCINFO; -// #else -// ... -// #endif // UNICODE - -// #if(WINVER >= 0x0400) -enum : uint { DI_APPBANDING = 0x00000001 } -enum : uint { DI_ROPS_READ_DESTINATION = 0x00000002 } -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export int StartDocA(HDC, DOCINFOA *); -extern(Windows) export int StartDocW(HDC, DOCINFOW *); -// #ifdef UNICODE -alias StartDocW StartDoc; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export int EndDoc(HDC); -extern(Windows) export int StartPage(HDC); -extern(Windows) export int EndPage(HDC); -extern(Windows) export int AbortDoc(HDC); -extern(Windows) export int SetAbortProc(HDC, ABORTPROC); - -extern(Windows) export BOOL AbortPath(HDC); -extern(Windows) export BOOL ArcTo(HDC, int, int, int, int, int, int, int, int); -extern(Windows) export BOOL BeginPath(HDC); -extern(Windows) export BOOL CloseFigure(HDC); -extern(Windows) export BOOL EndPath(HDC); -extern(Windows) export BOOL FillPath(HDC); -extern(Windows) export BOOL FlattenPath(HDC); -extern(Windows) export int GetPath(HDC, LPPOINT, LPBYTE, int); -extern(Windows) export HRGN PathToRegion(HDC); -extern(Windows) export BOOL PolyDraw(HDC, POINT *, BYTE *, int); -extern(Windows) export BOOL SelectClipPath(HDC, int); -extern(Windows) export int SetArcDirection(HDC, int); -extern(Windows) export BOOL SetMiterLimit(HDC, FLOAT, PFLOAT); -extern(Windows) export BOOL StrokeAndFillPath(HDC); -extern(Windows) export BOOL StrokePath(HDC); -extern(Windows) export BOOL WidenPath(HDC); -extern(Windows) export HPEN ExtCreatePen(DWORD, DWORD, LOGBRUSH *, DWORD, DWORD *); -extern(Windows) export BOOL GetMiterLimit(HDC, PFLOAT); -extern(Windows) export int GetArcDirection(HDC); - -extern(Windows) export int GetObjectA(HGDIOBJ, int, LPVOID); -extern(Windows) export int GetObjectW(HGDIOBJ, int, LPVOID); -// #ifdef UNICODE -alias GetObjectW GetObject; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL MoveToEx(HDC, int, int, LPPOINT); -extern(Windows) export BOOL TextOutA(HDC, int, int, LPCSTR, int); -extern(Windows) export BOOL TextOutW(HDC, int, int, LPCWSTR, int); -// #ifdef UNICODE -alias TextOutW TextOut; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL ExtTextOutA(HDC, int, int, UINT, RECT *, LPCSTR, UINT, INT *); -extern(Windows) export BOOL ExtTextOutW(HDC, int, int, UINT, RECT *, LPCWSTR, UINT, INT *); -// #ifdef UNICODE -alias ExtTextOutW ExtTextOut; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL PolyTextOutA(HDC, POLYTEXTA *, int); -extern(Windows) export BOOL PolyTextOutW(HDC, POLYTEXTW *, int); -// #ifdef UNICODE -alias PolyTextOutW PolyTextOut; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HRGN CreatePolygonRgn(POINT *, int, int); -extern(Windows) export BOOL DPtoLP(HDC, LPPOINT, int); -extern(Windows) export BOOL LPtoDP(HDC, LPPOINT, int); -extern(Windows) export BOOL Polygon(HDC, POINT *, int); -extern(Windows) export BOOL Polyline(HDC, POINT *, int); - -extern(Windows) export BOOL PolyBezier(HDC, POINT *, DWORD); -extern(Windows) export BOOL PolyBezierTo(HDC, POINT *, DWORD); -extern(Windows) export BOOL PolylineTo(HDC, POINT *, DWORD); - -extern(Windows) export BOOL SetViewportExtEx(HDC, int, int, LPSIZE); -extern(Windows) export BOOL SetViewportOrgEx(HDC, int, int, LPPOINT); -extern(Windows) export BOOL SetWindowExtEx(HDC, int, int, LPSIZE); -extern(Windows) export BOOL SetWindowOrgEx(HDC, int, int, LPPOINT); - -extern(Windows) export BOOL OffsetViewportOrgEx(HDC, int, int, LPPOINT); -extern(Windows) export BOOL OffsetWindowOrgEx(HDC, int, int, LPPOINT); -extern(Windows) export BOOL ScaleViewportExtEx(HDC, int, int, int, int, LPSIZE); -extern(Windows) export BOOL ScaleWindowExtEx(HDC, int, int, int, int, LPSIZE); -extern(Windows) export BOOL SetBitmapDimensionEx(HBITMAP, int, int, LPSIZE); -extern(Windows) export BOOL SetBrushOrgEx(HDC, int, int, LPPOINT); - -extern(Windows) export int GetTextFaceA(HDC, int, LPSTR); -extern(Windows) export int GetTextFaceW(HDC, int, LPWSTR); -// #ifdef UNICODE -alias GetTextFaceW GetTextFace; -// #else -// #... -// #endif // !UNICODE - -enum : uint { FONTMAPPER_MAX = 10 } - -struct tagKERNINGPAIR { - WORD wFirst; - WORD wSecond; - int iKernAmount; -} -alias tagKERNINGPAIR KERNINGPAIR; -alias tagKERNINGPAIR* LPKERNINGPAIR; - -extern(Windows) export DWORD GetKerningPairsA(HDC, DWORD, LPKERNINGPAIR); -extern(Windows) export DWORD GetKerningPairsW(HDC, DWORD, LPKERNINGPAIR); -// #ifdef UNICODE -alias GetKerningPairsW GetKerningPairs; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetDCOrgEx(HDC, LPPOINT); -extern(Windows) export BOOL FixBrushOrgEx(HDC, int, int, LPPOINT); -extern(Windows) export BOOL UnrealizeObject(HGDIOBJ); - -extern(Windows) export BOOL GdiFlush(); -extern(Windows) export DWORD GdiSetBatchLimit(DWORD); -extern(Windows) export DWORD GdiGetBatchLimit(); - -// #if(WINVER >= 0x0400) - -enum : uint { ICM_OFF = 1 } -enum : uint { ICM_ON = 2 } -enum : uint { ICM_QUERY = 3 } -enum : uint { ICM_DONE_OUTSIDEDC = 4 } - -extern(Windows) alias int function(LPSTR, LPARAM) ICMENUMPROCA; -extern(Windows) alias int function(LPWSTR, LPARAM) ICMENUMPROCW; -// #ifdef UNICODE -alias ICMENUMPROCW ICMENUMPROC; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int SetICMMode(HDC, int); -extern(Windows) export BOOL CheckColorsInGamut(HDC, LPVOID, LPVOID, DWORD); -extern(Windows) export HCOLORSPACE GetColorSpace(HDC); -extern(Windows) export BOOL GetLogColorSpaceA(HCOLORSPACE, LPLOGCOLORSPACEA, DWORD); -extern(Windows) export BOOL GetLogColorSpaceW(HCOLORSPACE, LPLOGCOLORSPACEW, DWORD); -// #ifdef UNICODE -alias GetLogColorSpaceW GetLogColorSpace; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HCOLORSPACE CreateColorSpaceA(LPLOGCOLORSPACEA); -extern(Windows) export HCOLORSPACE CreateColorSpaceW(LPLOGCOLORSPACEW); -// #ifdef UNICODE -alias CreateColorSpaceW CreateColorSpace; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export HCOLORSPACE SetColorSpace(HDC, HCOLORSPACE); -extern(Windows) export BOOL DeleteColorSpace(HCOLORSPACE); -extern(Windows) export BOOL GetICMProfileA(HDC, LPDWORD, LPSTR); -extern(Windows) export BOOL GetICMProfileW(HDC, LPDWORD, LPWSTR); -// #ifdef UNICODE -alias GetICMProfileW GetICMProfile; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL SetICMProfileA(HDC, LPSTR); -extern(Windows) export BOOL SetICMProfileW(HDC, LPWSTR); -// #ifdef UNICODE -alias SetICMProfileW SetICMProfile; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL GetDeviceGammaRamp(HDC, LPVOID); -extern(Windows) export BOOL SetDeviceGammaRamp(HDC, LPVOID); -extern(Windows) export BOOL ColorMatchToTarget(HDC, HDC, DWORD); -extern(Windows) export int EnumICMProfilesA(HDC, ICMENUMPROCA, LPARAM); -extern(Windows) export int EnumICMProfilesW(HDC, ICMENUMPROCW, LPARAM); -// #ifdef UNICODE -alias EnumICMProfilesW EnumICMProfiles; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL UpdateICMRegKeyA(DWORD, LPSTR, LPSTR, UINT); -extern(Windows) export BOOL UpdateICMRegKeyW(DWORD, LPWSTR, LPWSTR, UINT); -// #ifdef UNICODE -alias UpdateICMRegKeyW UpdateICMRegKey; -// #else -// #... -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ - -// #if (WINVER >= 0x0500) -extern(Windows) export BOOL ColorCorrectPalette(HDC, HPALETTE, DWORD, DWORD); -// #endif - -// #ifndef NOMETAFILE - -// #ifndef _MAC -enum : uint { ENHMETA_SIGNATURE = 0x464D4520 } -// #else -// #... -// #endif - -enum : uint { ENHMETA_STOCK_OBJECT = 0x80000000 } - -enum : uint { EMR_HEADER = 1 } -enum : uint { EMR_POLYBEZIER = 2 } -enum : uint { EMR_POLYGON = 3 } -enum : uint { EMR_POLYLINE = 4 } -enum : uint { EMR_POLYBEZIERTO = 5 } -enum : uint { EMR_POLYLINETO = 6 } -enum : uint { EMR_POLYPOLYLINE = 7 } -enum : uint { EMR_POLYPOLYGON = 8 } -enum : uint { EMR_SETWINDOWEXTEX = 9 } -enum : uint { EMR_SETWINDOWORGEX = 10 } -enum : uint { EMR_SETVIEWPORTEXTEX = 11 } -enum : uint { EMR_SETVIEWPORTORGEX = 12 } -enum : uint { EMR_SETBRUSHORGEX = 13 } -enum : uint { EMR_EOF = 14 } -enum : uint { EMR_SETPIXELV = 15 } -enum : uint { EMR_SETMAPPERFLAGS = 16 } -enum : uint { EMR_SETMAPMODE = 17 } -enum : uint { EMR_SETBKMODE = 18 } -enum : uint { EMR_SETPOLYFILLMODE = 19 } -enum : uint { EMR_SETROP2 = 20 } -enum : uint { EMR_SETSTRETCHBLTMODE = 21 } -enum : uint { EMR_SETTEXTALIGN = 22 } -enum : uint { EMR_SETCOLORADJUSTMENT = 23 } -enum : uint { EMR_SETTEXTCOLOR = 24 } -enum : uint { EMR_SETBKCOLOR = 25 } -enum : uint { EMR_OFFSETCLIPRGN = 26 } -enum : uint { EMR_MOVETOEX = 27 } -enum : uint { EMR_SETMETARGN = 28 } -enum : uint { EMR_EXCLUDECLIPRECT = 29 } -enum : uint { EMR_INTERSECTCLIPRECT = 30 } -enum : uint { EMR_SCALEVIEWPORTEXTEX = 31 } -enum : uint { EMR_SCALEWINDOWEXTEX = 32 } -enum : uint { EMR_SAVEDC = 33 } -enum : uint { EMR_RESTOREDC = 34 } -enum : uint { EMR_SETWORLDTRANSFORM = 35 } -enum : uint { EMR_MODIFYWORLDTRANSFORM = 36 } -enum : uint { EMR_SELECTOBJECT = 37 } -enum : uint { EMR_CREATEPEN = 38 } -enum : uint { EMR_CREATEBRUSHINDIRECT = 39 } -enum : uint { EMR_DELETEOBJECT = 40 } -enum : uint { EMR_ANGLEARC = 41 } -enum : uint { EMR_ELLIPSE = 42 } -enum : uint { EMR_RECTANGLE = 43 } -enum : uint { EMR_ROUNDRECT = 44 } -enum : uint { EMR_ARC = 45 } -enum : uint { EMR_CHORD = 46 } -enum : uint { EMR_PIE = 47 } -enum : uint { EMR_SELECTPALETTE = 48 } -enum : uint { EMR_CREATEPALETTE = 49 } -enum : uint { EMR_SETPALETTEENTRIES = 50 } -enum : uint { EMR_RESIZEPALETTE = 51 } -enum : uint { EMR_REALIZEPALETTE = 52 } -enum : uint { EMR_EXTFLOODFILL = 53 } -enum : uint { EMR_LINETO = 54 } -enum : uint { EMR_ARCTO = 55 } -enum : uint { EMR_POLYDRAW = 56 } -enum : uint { EMR_SETARCDIRECTION = 57 } -enum : uint { EMR_SETMITERLIMIT = 58 } -enum : uint { EMR_BEGINPATH = 59 } -enum : uint { EMR_ENDPATH = 60 } -enum : uint { EMR_CLOSEFIGURE = 61 } -enum : uint { EMR_FILLPATH = 62 } -enum : uint { EMR_STROKEANDFILLPATH = 63 } -enum : uint { EMR_STROKEPATH = 64 } -enum : uint { EMR_FLATTENPATH = 65 } -enum : uint { EMR_WIDENPATH = 66 } -enum : uint { EMR_SELECTCLIPPATH = 67 } -enum : uint { EMR_ABORTPATH = 68 } - -enum : uint { EMR_GDICOMMENT = 70 } -enum : uint { EMR_FILLRGN = 71 } -enum : uint { EMR_FRAMERGN = 72 } -enum : uint { EMR_INVERTRGN = 73 } -enum : uint { EMR_PAINTRGN = 74 } -enum : uint { EMR_EXTSELECTCLIPRGN = 75 } -enum : uint { EMR_BITBLT = 76 } -enum : uint { EMR_STRETCHBLT = 77 } -enum : uint { EMR_MASKBLT = 78 } -enum : uint { EMR_PLGBLT = 79 } -enum : uint { EMR_SETDIBITSTODEVICE = 80 } -enum : uint { EMR_STRETCHDIBITS = 81 } -enum : uint { EMR_EXTCREATEFONTINDIRECTW = 82 } -enum : uint { EMR_EXTTEXTOUTA = 83 } -enum : uint { EMR_EXTTEXTOUTW = 84 } -enum : uint { EMR_POLYBEZIER16 = 85 } -enum : uint { EMR_POLYGON16 = 86 } -enum : uint { EMR_POLYLINE16 = 87 } -enum : uint { EMR_POLYBEZIERTO16 = 88 } -enum : uint { EMR_POLYLINETO16 = 89 } -enum : uint { EMR_POLYPOLYLINE16 = 90 } -enum : uint { EMR_POLYPOLYGON16 = 91 } -enum : uint { EMR_POLYDRAW16 = 92 } -enum : uint { EMR_CREATEMONOBRUSH = 93 } -enum : uint { EMR_CREATEDIBPATTERNBRUSHPT = 94 } -enum : uint { EMR_EXTCREATEPEN = 95 } -enum : uint { EMR_POLYTEXTOUTA = 96 } -enum : uint { EMR_POLYTEXTOUTW = 97 } - -// #if(WINVER >= 0x0400) -enum : uint { EMR_SETICMMODE = 98 } -enum : uint { EMR_CREATECOLORSPACE = 99 } -enum : uint { EMR_SETCOLORSPACE = 100 } -enum : uint { EMR_DELETECOLORSPACE = 101 } -enum : uint { EMR_GLSRECORD = 102 } -enum : uint { EMR_GLSBOUNDEDRECORD = 103 } -enum : uint { EMR_PIXELFORMAT = 104 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -enum : uint { EMR_RESERVED_105 = 105 } -enum : uint { EMR_RESERVED_106 = 106 } -enum : uint { EMR_RESERVED_107 = 107 } -enum : uint { EMR_RESERVED_108 = 108 } -enum : uint { EMR_RESERVED_109 = 109 } -enum : uint { EMR_RESERVED_110 = 110 } -enum : uint { EMR_COLORCORRECTPALETTE = 111 } -enum : uint { EMR_SETICMPROFILEA = 112 } -enum : uint { EMR_SETICMPROFILEW = 113 } -enum : uint { EMR_ALPHABLEND = 114 } -enum : uint { EMR_SETLAYOUT = 115 } -enum : uint { EMR_TRANSPARENTBLT = 116 } -enum : uint { EMR_RESERVED_117 = 117 } -enum : uint { EMR_GRADIENTFILL = 118 } -enum : uint { EMR_RESERVED_119 = 119 } -enum : uint { EMR_RESERVED_120 = 120 } -enum : uint { EMR_COLORMATCHTOTARGETW = 121 } -enum : uint { EMR_CREATECOLORSPACEW = 122 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { EMR_MIN = 1 } - -// #if (WINVER >= 0x0500) -enum : uint { EMR_MAX = 122 } -// #elif (WINVER >= 0x0400) -// #... -// #else -// #... -// #endif - -struct tagEMR { - DWORD iType; - DWORD nSize; - -} -alias tagEMR EMR; -alias tagEMR* PEMR; - -struct tagEMRTEXT { - POINTL ptlReference; - DWORD nChars; - DWORD offString; - DWORD fOptions; - RECTL rcl; - DWORD offDx; - -} -alias tagEMRTEXT EMRTEXT; -alias tagEMRTEXT* PEMRTEXT; - -struct tagABORTPATH { - EMR emr; -} -alias tagABORTPATH EMRABORTPATH; -alias tagABORTPATH* PEMRABORTPATH; -alias tagABORTPATH EMRBEGINPATH; -alias tagABORTPATH* PEMRBEGINPATH; -alias tagABORTPATH EMRENDPATH; -alias tagABORTPATH* PEMRENDPATH; -alias tagABORTPATH EMRCLOSEFIGURE; -alias tagABORTPATH* PEMRCLOSEFIGURE; -alias tagABORTPATH EMRFLATTENPATH; -alias tagABORTPATH* PEMRFLATTENPATH; -alias tagABORTPATH EMRWIDENPATH; -alias tagABORTPATH* PEMRWIDENPATH; -alias tagABORTPATH EMRSETMETARGN; -alias tagABORTPATH* PEMRSETMETARGN; -alias tagABORTPATH EMRSAVEDC; -alias tagABORTPATH* PEMRSAVEDC; -alias tagABORTPATH EMRREALIZEPALETTE; -alias tagABORTPATH* PEMRREALIZEPALETTE; - -struct tagEMRSELECTCLIPPATH { - EMR emr; - DWORD iMode; -} -alias tagEMRSELECTCLIPPATH EMRSELECTCLIPPATH; -alias tagEMRSELECTCLIPPATH* PEMRSELECTCLIPPATH; -alias tagEMRSELECTCLIPPATH EMRSETBKMODE; -alias tagEMRSELECTCLIPPATH* PEMRSETBKMODE; -alias tagEMRSELECTCLIPPATH EMRSETMAPMODE; -alias tagEMRSELECTCLIPPATH* PEMRSETMAPMODE; -alias tagEMRSELECTCLIPPATH EMRSETLAYOUT; -alias tagEMRSELECTCLIPPATH* PEMRSETLAYOUT; -alias tagEMRSELECTCLIPPATH EMRSETPOLYFILLMODE; -alias tagEMRSELECTCLIPPATH* PEMRSETPOLYFILLMODE; -alias tagEMRSELECTCLIPPATH EMRSETROP2; -alias tagEMRSELECTCLIPPATH* PEMRSETROP2; -alias tagEMRSELECTCLIPPATH EMRSETSTRETCHBLTMODE; -alias tagEMRSELECTCLIPPATH* PEMRSETSTRETCHBLTMODE; -alias tagEMRSELECTCLIPPATH EMRSETICMMODE; -alias tagEMRSELECTCLIPPATH* PEMRSETICMMODE; -alias tagEMRSELECTCLIPPATH EMRSETTEXTALIGN; -alias tagEMRSELECTCLIPPATH* PEMRSETTEXTALIGN; - -struct tagEMRSETMITERLIMIT { - EMR emr; - FLOAT eMiterLimit; -} -alias tagEMRSETMITERLIMIT EMRSETMITERLIMIT; -alias tagEMRSETMITERLIMIT* PEMRSETMITERLIMIT; - -struct tagEMRRESTOREDC { - EMR emr; - LONG iRelative; -} -alias tagEMRRESTOREDC EMRRESTOREDC; -alias tagEMRRESTOREDC* PEMRRESTOREDC; - -struct tagEMRSETARCDIRECTION { - EMR emr; - DWORD iArcDirection; - -} -alias tagEMRSETARCDIRECTION EMRSETARCDIRECTION; -alias tagEMRSETARCDIRECTION* PEMRSETARCDIRECTION; - -struct tagEMRSETMAPPERFLAGS { - EMR emr; - DWORD dwFlags; -} -alias tagEMRSETMAPPERFLAGS EMRSETMAPPERFLAGS; -alias tagEMRSETMAPPERFLAGS* PEMRSETMAPPERFLAGS; - -struct tagEMRSETTEXTCOLOR { - EMR emr; - COLORREF crColor; -} -alias tagEMRSETTEXTCOLOR EMRSETBKCOLOR; -alias tagEMRSETTEXTCOLOR* PEMRSETBKCOLOR; -alias tagEMRSETTEXTCOLOR EMRSETTEXTCOLOR; -alias tagEMRSETTEXTCOLOR* PEMRSETTEXTCOLOR; - -struct tagEMRSELECTOBJECT { - EMR emr; - DWORD ihObject; -} -alias tagEMRSELECTOBJECT EMRSELECTOBJECT; -alias tagEMRSELECTOBJECT* PEMRSELECTOBJECT; -alias tagEMRSELECTOBJECT EMRDELETEOBJECT; -alias tagEMRSELECTOBJECT* PEMRDELETEOBJECT; - -struct tagEMRSELECTPALETTE { - EMR emr; - DWORD ihPal; -} -alias tagEMRSELECTPALETTE EMRSELECTPALETTE; -alias tagEMRSELECTPALETTE* PEMRSELECTPALETTE; - -struct tagEMRRESIZEPALETTE { - EMR emr; - DWORD ihPal; - DWORD cEntries; -} -alias tagEMRRESIZEPALETTE EMRRESIZEPALETTE; -alias tagEMRRESIZEPALETTE* PEMRRESIZEPALETTE; - -struct tagEMRSETPALETTEENTRIES { - EMR emr; - DWORD ihPal; - DWORD iStart; - DWORD cEntries; - PALETTEENTRY aPalEntries[1]; -} -alias tagEMRSETPALETTEENTRIES EMRSETPALETTEENTRIES; -alias tagEMRSETPALETTEENTRIES* PEMRSETPALETTEENTRIES; - -struct tagEMRSETCOLORADJUSTMENT { - EMR emr; - COLORADJUSTMENT ColorAdjustment; -} -alias tagEMRSETCOLORADJUSTMENT EMRSETCOLORADJUSTMENT; -alias tagEMRSETCOLORADJUSTMENT* PEMRSETCOLORADJUSTMENT; - -struct tagEMRGDICOMMENT { - EMR emr; - DWORD cbData; - BYTE Data[1]; -} -alias tagEMRGDICOMMENT EMRGDICOMMENT; -alias tagEMRGDICOMMENT* PEMRGDICOMMENT; - -struct tagEMREOF { - EMR emr; - DWORD nPalEntries; - DWORD offPalEntries; - DWORD nSizeLast; - -} -alias tagEMREOF EMREOF; -alias tagEMREOF* PEMREOF; - -struct tagEMRLINETO { - EMR emr; - POINTL ptl; -} -alias tagEMRLINETO EMRLINETO; -alias tagEMRLINETO* PEMRLINETO; -alias tagEMRLINETO EMRMOVETOEX; -alias tagEMRLINETO* PEMRMOVETOEX; - -struct tagEMROFFSETCLIPRGN { - EMR emr; - POINTL ptlOffset; -} -alias tagEMROFFSETCLIPRGN EMROFFSETCLIPRGN; -alias tagEMROFFSETCLIPRGN* PEMROFFSETCLIPRGN; - -struct tagEMRFILLPATH { - EMR emr; - RECTL rclBounds; -} -alias tagEMRFILLPATH EMRFILLPATH; -alias tagEMRFILLPATH* PEMRFILLPATH; -alias tagEMRFILLPATH EMRSTROKEANDFILLPATH; -alias tagEMRFILLPATH* PEMRSTROKEANDFILLPATH; -alias tagEMRFILLPATH EMRSTROKEPATH; -alias tagEMRFILLPATH* PEMRSTROKEPATH; - -struct tagEMREXCLUDECLIPRECT { - EMR emr; - RECTL rclClip; -} -alias tagEMREXCLUDECLIPRECT EMREXCLUDECLIPRECT; -alias tagEMREXCLUDECLIPRECT* PEMREXCLUDECLIPRECT; -alias tagEMREXCLUDECLIPRECT EMRINTERSECTCLIPRECT; -alias tagEMREXCLUDECLIPRECT* PEMRINTERSECTCLIPRECT; - -struct tagEMRSETVIEWPORTORGEX { - EMR emr; - POINTL ptlOrigin; -} -alias tagEMRSETVIEWPORTORGEX EMRSETVIEWPORTORGEX; -alias tagEMRSETVIEWPORTORGEX* PEMRSETVIEWPORTORGEX; -alias tagEMRSETVIEWPORTORGEX EMRSETWINDOWORGEX; -alias tagEMRSETVIEWPORTORGEX* PEMRSETWINDOWORGEX; -alias tagEMRSETVIEWPORTORGEX EMRSETBRUSHORGEX; -alias tagEMRSETVIEWPORTORGEX* PEMRSETBRUSHORGEX; - -struct tagEMRSETVIEWPORTEXTEX { - EMR emr; - SIZEL szlExtent; -} -alias tagEMRSETVIEWPORTEXTEX EMRSETVIEWPORTEXTEX; -alias tagEMRSETVIEWPORTEXTEX* PEMRSETVIEWPORTEXTEX; -alias tagEMRSETVIEWPORTEXTEX EMRSETWINDOWEXTEX; -alias tagEMRSETVIEWPORTEXTEX* PEMRSETWINDOWEXTEX; - -struct tagEMRSCALEVIEWPORTEXTEX { - EMR emr; - LONG xNum; - LONG xDenom; - LONG yNum; - LONG yDenom; -} -alias tagEMRSCALEVIEWPORTEXTEX EMRSCALEVIEWPORTEXTEX; -alias tagEMRSCALEVIEWPORTEXTEX* PEMRSCALEVIEWPORTEXTEX; -alias tagEMRSCALEVIEWPORTEXTEX EMRSCALEWINDOWEXTEX; -alias tagEMRSCALEVIEWPORTEXTEX* PEMRSCALEWINDOWEXTEX; - -struct tagEMRSETWORLDTRANSFORM { - EMR emr; - XFORM xform; -} -alias tagEMRSETWORLDTRANSFORM EMRSETWORLDTRANSFORM; -alias tagEMRSETWORLDTRANSFORM* PEMRSETWORLDTRANSFORM; - -struct tagEMRMODIFYWORLDTRANSFORM { - EMR emr; - XFORM xform; - DWORD iMode; -} -alias tagEMRMODIFYWORLDTRANSFORM EMRMODIFYWORLDTRANSFORM; -alias tagEMRMODIFYWORLDTRANSFORM* PEMRMODIFYWORLDTRANSFORM; - -struct tagEMRSETPIXELV { - EMR emr; - POINTL ptlPixel; - COLORREF crColor; -} -alias tagEMRSETPIXELV EMRSETPIXELV; -alias tagEMRSETPIXELV* PEMRSETPIXELV; - -struct tagEMREXTFLOODFILL { - EMR emr; - POINTL ptlStart; - COLORREF crColor; - DWORD iMode; -} -alias tagEMREXTFLOODFILL EMREXTFLOODFILL; -alias tagEMREXTFLOODFILL* PEMREXTFLOODFILL; - -struct tagEMRELLIPSE { - EMR emr; - RECTL rclBox; -} -alias tagEMRELLIPSE EMRELLIPSE; -alias tagEMRELLIPSE* PEMRELLIPSE; -alias tagEMRELLIPSE EMRRECTANGLE; -alias tagEMRELLIPSE* PEMRRECTANGLE; - -struct tagEMRROUNDRECT { - EMR emr; - RECTL rclBox; - SIZEL szlCorner; -} -alias tagEMRROUNDRECT EMRROUNDRECT; -alias tagEMRROUNDRECT* PEMRROUNDRECT; - -struct tagEMRARC { - EMR emr; - RECTL rclBox; - POINTL ptlStart; - POINTL ptlEnd; -} -alias tagEMRARC EMRARC; -alias tagEMRARC* PEMRARC; -alias tagEMRARC EMRARCTO; -alias tagEMRARC* PEMRARCTO; -alias tagEMRARC EMRCHORD; -alias tagEMRARC* PEMRCHORD; -alias tagEMRARC EMRPIE; -alias tagEMRARC* PEMRPIE; - -struct tagEMRANGLEARC { - EMR emr; - POINTL ptlCenter; - DWORD nRadius; - FLOAT eStartAngle; - FLOAT eSweepAngle; -} -alias tagEMRANGLEARC EMRANGLEARC; -alias tagEMRANGLEARC* PEMRANGLEARC; - -struct tagEMRPOLYLINE { - EMR emr; - RECTL rclBounds; - DWORD cptl; - POINTL aptl[1]; -} -alias tagEMRPOLYLINE EMRPOLYLINE; -alias tagEMRPOLYLINE* PEMRPOLYLINE; -alias tagEMRPOLYLINE EMRPOLYBEZIER; -alias tagEMRPOLYLINE* PEMRPOLYBEZIER; -alias tagEMRPOLYLINE EMRPOLYGON; -alias tagEMRPOLYLINE* PEMRPOLYGON; -alias tagEMRPOLYLINE EMRPOLYBEZIERTO; -alias tagEMRPOLYLINE* PEMRPOLYBEZIERTO; -alias tagEMRPOLYLINE EMRPOLYLINETO; -alias tagEMRPOLYLINE* PEMRPOLYLINETO; - -struct tagEMRPOLYLINE16 { - EMR emr; - RECTL rclBounds; - DWORD cpts; - POINTS apts[1]; -} -alias tagEMRPOLYLINE16 EMRPOLYLINE16; -alias tagEMRPOLYLINE16* PEMRPOLYLINE16; -alias tagEMRPOLYLINE16 EMRPOLYBEZIER16; -alias tagEMRPOLYLINE16* PEMRPOLYBEZIER16; -alias tagEMRPOLYLINE16 EMRPOLYGON16; -alias tagEMRPOLYLINE16* PEMRPOLYGON16; -alias tagEMRPOLYLINE16 EMRPOLYBEZIERTO16; -alias tagEMRPOLYLINE16* PEMRPOLYBEZIERTO16; -alias tagEMRPOLYLINE16 EMRPOLYLINETO16; -alias tagEMRPOLYLINE16* PEMRPOLYLINETO16; - -struct tagEMRPOLYDRAW { - EMR emr; - RECTL rclBounds; - DWORD cptl; - POINTL aptl[1]; - BYTE abTypes[1]; -} -alias tagEMRPOLYDRAW EMRPOLYDRAW; -alias tagEMRPOLYDRAW* PEMRPOLYDRAW; - -struct tagEMRPOLYDRAW16 { - EMR emr; - RECTL rclBounds; - DWORD cpts; - POINTS apts[1]; - BYTE abTypes[1]; -} -alias tagEMRPOLYDRAW16 EMRPOLYDRAW16; -alias tagEMRPOLYDRAW16* PEMRPOLYDRAW16; - -struct tagEMRPOLYPOLYLINE { - EMR emr; - RECTL rclBounds; - DWORD nPolys; - DWORD cptl; - DWORD aPolyCounts[1]; - POINTL aptl[1]; -} -alias tagEMRPOLYPOLYLINE EMRPOLYPOLYLINE; -alias tagEMRPOLYPOLYLINE* PEMRPOLYPOLYLINE; -alias tagEMRPOLYPOLYLINE EMRPOLYPOLYGON; -alias tagEMRPOLYPOLYLINE* PEMRPOLYPOLYGON; - -struct tagEMRPOLYPOLYLINE16 { - EMR emr; - RECTL rclBounds; - DWORD nPolys; - DWORD cpts; - DWORD aPolyCounts[1]; - POINTS apts[1]; -} -alias tagEMRPOLYPOLYLINE16 EMRPOLYPOLYLINE16; -alias tagEMRPOLYPOLYLINE16* PEMRPOLYPOLYLINE16; -alias tagEMRPOLYPOLYLINE16 EMRPOLYPOLYGON16; -alias tagEMRPOLYPOLYLINE16* PEMRPOLYPOLYGON16; - -struct tagEMRINVERTRGN { - EMR emr; - RECTL rclBounds; - DWORD cbRgnData; - BYTE RgnData[1]; -} -alias tagEMRINVERTRGN EMRINVERTRGN; -alias tagEMRINVERTRGN* PEMRINVERTRGN; -alias tagEMRINVERTRGN EMRPAINTRGN; -alias tagEMRINVERTRGN* PEMRPAINTRGN; - -struct tagEMRFILLRGN { - EMR emr; - RECTL rclBounds; - DWORD cbRgnData; - DWORD ihBrush; - BYTE RgnData[1]; -} -alias tagEMRFILLRGN EMRFILLRGN; -alias tagEMRFILLRGN* PEMRFILLRGN; - -struct tagEMRFRAMERGN { - EMR emr; - RECTL rclBounds; - DWORD cbRgnData; - DWORD ihBrush; - SIZEL szlStroke; - BYTE RgnData[1]; -} -alias tagEMRFRAMERGN EMRFRAMERGN; -alias tagEMRFRAMERGN* PEMRFRAMERGN; - -struct tagEMREXTSELECTCLIPRGN { - EMR emr; - DWORD cbRgnData; - DWORD iMode; - BYTE RgnData[1]; -} -alias tagEMREXTSELECTCLIPRGN EMREXTSELECTCLIPRGN; -alias tagEMREXTSELECTCLIPRGN* PEMREXTSELECTCLIPRGN; - -struct tagEMREXTTEXTOUTA { - EMR emr; - RECTL rclBounds; - DWORD iGraphicsMode; - FLOAT exScale; - FLOAT eyScale; - EMRTEXT emrtext; - -} -alias tagEMREXTTEXTOUTA EMREXTTEXTOUTA; -alias tagEMREXTTEXTOUTA* PEMREXTTEXTOUTA; -alias tagEMREXTTEXTOUTA EMREXTTEXTOUTW; -alias tagEMREXTTEXTOUTA* PEMREXTTEXTOUTW; - -struct tagEMRPOLYTEXTOUTA { - EMR emr; - RECTL rclBounds; - DWORD iGraphicsMode; - FLOAT exScale; - FLOAT eyScale; - LONG cStrings; - EMRTEXT aemrtext[1]; - -} -alias tagEMRPOLYTEXTOUTA EMRPOLYTEXTOUTA; -alias tagEMRPOLYTEXTOUTA* PEMRPOLYTEXTOUTA; -alias tagEMRPOLYTEXTOUTA EMRPOLYTEXTOUTW; -alias tagEMRPOLYTEXTOUTA* PEMRPOLYTEXTOUTW; - -struct tagEMRBITBLT { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG cxDest; - LONG cyDest; - DWORD dwRop; - LONG xSrc; - LONG ySrc; - XFORM xformSrc; - COLORREF crBkColorSrc; - DWORD iUsageSrc; - - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; -} -alias tagEMRBITBLT EMRBITBLT; -alias tagEMRBITBLT* PEMRBITBLT; - -struct tagEMRSTRETCHBLT { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG cxDest; - LONG cyDest; - DWORD dwRop; - LONG xSrc; - LONG ySrc; - XFORM xformSrc; - COLORREF crBkColorSrc; - DWORD iUsageSrc; - - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - LONG cxSrc; - LONG cySrc; -} -alias tagEMRSTRETCHBLT EMRSTRETCHBLT; -alias tagEMRSTRETCHBLT* PEMRSTRETCHBLT; - -struct tagEMRMASKBLT { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG cxDest; - LONG cyDest; - DWORD dwRop; - LONG xSrc; - LONG ySrc; - XFORM xformSrc; - COLORREF crBkColorSrc; - DWORD iUsageSrc; - - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - LONG xMask; - LONG yMask; - DWORD iUsageMask; - DWORD offBmiMask; - DWORD cbBmiMask; - DWORD offBitsMask; - DWORD cbBitsMask; -} -alias tagEMRMASKBLT EMRMASKBLT; -alias tagEMRMASKBLT* PEMRMASKBLT; - -struct tagEMRPLGBLT { - EMR emr; - RECTL rclBounds; - POINTL aptlDest[3]; - LONG xSrc; - LONG ySrc; - LONG cxSrc; - LONG cySrc; - XFORM xformSrc; - COLORREF crBkColorSrc; - DWORD iUsageSrc; - - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - LONG xMask; - LONG yMask; - DWORD iUsageMask; - DWORD offBmiMask; - DWORD cbBmiMask; - DWORD offBitsMask; - DWORD cbBitsMask; -} -alias tagEMRPLGBLT EMRPLGBLT; -alias tagEMRPLGBLT* PEMRPLGBLT; - -struct tagEMRSETDIBITSTODEVICE { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG xSrc; - LONG ySrc; - LONG cxSrc; - LONG cySrc; - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - DWORD iUsageSrc; - DWORD iStartScan; - DWORD cScans; -} -alias tagEMRSETDIBITSTODEVICE EMRSETDIBITSTODEVICE; -alias tagEMRSETDIBITSTODEVICE* PEMRSETDIBITSTODEVICE; - -struct tagEMRSTRETCHDIBITS { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG xSrc; - LONG ySrc; - LONG cxSrc; - LONG cySrc; - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - DWORD iUsageSrc; - DWORD dwRop; - LONG cxDest; - LONG cyDest; -} -alias tagEMRSTRETCHDIBITS EMRSTRETCHDIBITS; -alias tagEMRSTRETCHDIBITS* PEMRSTRETCHDIBITS; - -struct tagEMREXTCREATEFONTINDIRECTW { - EMR emr; - DWORD ihFont; - EXTLOGFONTW elfw; -} -alias tagEMREXTCREATEFONTINDIRECTW EMREXTCREATEFONTINDIRECTW; -alias tagEMREXTCREATEFONTINDIRECTW* PEMREXTCREATEFONTINDIRECTW; - -struct tagEMRCREATEPALETTE { - EMR emr; - DWORD ihPal; - LOGPALETTE lgpl; - -} -alias tagEMRCREATEPALETTE EMRCREATEPALETTE; -alias tagEMRCREATEPALETTE* PEMRCREATEPALETTE; - -struct tagEMRCREATEPEN { - EMR emr; - DWORD ihPen; - LOGPEN lopn; -} -alias tagEMRCREATEPEN EMRCREATEPEN; -alias tagEMRCREATEPEN* PEMRCREATEPEN; - -struct tagEMREXTCREATEPEN { - EMR emr; - DWORD ihPen; - DWORD offBmi; - DWORD cbBmi; - - DWORD offBits; - DWORD cbBits; - EXTLOGPEN elp; -} -alias tagEMREXTCREATEPEN EMREXTCREATEPEN; -alias tagEMREXTCREATEPEN* PEMREXTCREATEPEN; - -struct tagEMRCREATEBRUSHINDIRECT { - EMR emr; - DWORD ihBrush; - LOGBRUSH32 lb; - -} -alias tagEMRCREATEBRUSHINDIRECT EMRCREATEBRUSHINDIRECT; -alias tagEMRCREATEBRUSHINDIRECT* PEMRCREATEBRUSHINDIRECT; - -struct tagEMRCREATEMONOBRUSH { - EMR emr; - DWORD ihBrush; - DWORD iUsage; - DWORD offBmi; - DWORD cbBmi; - DWORD offBits; - DWORD cbBits; -} -alias tagEMRCREATEMONOBRUSH EMRCREATEMONOBRUSH; -alias tagEMRCREATEMONOBRUSH* PEMRCREATEMONOBRUSH; - -struct tagEMRCREATEDIBPATTERNBRUSHPT { - EMR emr; - DWORD ihBrush; - DWORD iUsage; - DWORD offBmi; - DWORD cbBmi; - - DWORD offBits; - DWORD cbBits; -} -alias tagEMRCREATEDIBPATTERNBRUSHPT EMRCREATEDIBPATTERNBRUSHPT; -alias tagEMRCREATEDIBPATTERNBRUSHPT* PEMRCREATEDIBPATTERNBRUSHPT; - -struct tagEMRFORMAT { - DWORD dSignature; - DWORD nVersion; - DWORD cbData; - DWORD offData; - -} -alias tagEMRFORMAT EMRFORMAT; -alias tagEMRFORMAT* PEMRFORMAT; - -// #if(WINVER >= 0x0400) - -struct tagEMRGLSRECORD { - EMR emr; - DWORD cbData; - BYTE Data[1]; -} -alias tagEMRGLSRECORD EMRGLSRECORD; -alias tagEMRGLSRECORD* PEMRGLSRECORD; - -struct tagEMRGLSBOUNDEDRECORD { - EMR emr; - RECTL rclBounds; - DWORD cbData; - BYTE Data[1]; -} -alias tagEMRGLSBOUNDEDRECORD EMRGLSBOUNDEDRECORD; -alias tagEMRGLSBOUNDEDRECORD* PEMRGLSBOUNDEDRECORD; - -struct tagEMRPIXELFORMAT { - EMR emr; - PIXELFORMATDESCRIPTOR pfd; -} -alias tagEMRPIXELFORMAT EMRPIXELFORMAT; -alias tagEMRPIXELFORMAT* PEMRPIXELFORMAT; - -struct tagEMRCREATECOLORSPACE { - EMR emr; - DWORD ihCS; - LOGCOLORSPACEA lcs; -} -alias tagEMRCREATECOLORSPACE EMRCREATECOLORSPACE; -alias tagEMRCREATECOLORSPACE* PEMRCREATECOLORSPACE; - -struct tagEMRSETCOLORSPACE { - EMR emr; - DWORD ihCS; -} -alias tagEMRSETCOLORSPACE EMRSETCOLORSPACE; -alias tagEMRSETCOLORSPACE* PEMRSETCOLORSPACE; -alias tagEMRSETCOLORSPACE EMRSELECTCOLORSPACE; -alias tagEMRSETCOLORSPACE* PEMRSELECTCOLORSPACE; -alias tagEMRSETCOLORSPACE EMRDELETECOLORSPACE; -alias tagEMRSETCOLORSPACE* PEMRDELETECOLORSPACE; - -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) - -struct tagEMREXTESCAPE { - EMR emr; - INT iEscape; - INT cbEscData; - BYTE EscData[1]; -} -alias tagEMREXTESCAPE EMREXTESCAPE; -alias tagEMREXTESCAPE* PEMREXTESCAPE; -alias tagEMREXTESCAPE EMRDRAWESCAPE; -alias tagEMREXTESCAPE* PEMRDRAWESCAPE; - -struct tagEMRNAMEDESCAPE { - EMR emr; - INT iEscape; - INT cbDriver; - INT cbEscData; - BYTE EscData[1]; -} -alias tagEMRNAMEDESCAPE EMRNAMEDESCAPE; -alias tagEMRNAMEDESCAPE* PEMRNAMEDESCAPE; - -enum : uint { SETICMPROFILE_EMBEDED = 0x00000001 } - -struct tagEMRSETICMPROFILE { - EMR emr; - DWORD dwFlags; - DWORD cbName; - DWORD cbData; - BYTE Data[1]; -} -alias tagEMRSETICMPROFILE EMRSETICMPROFILE; -alias tagEMRSETICMPROFILE* PEMRSETICMPROFILE; -alias tagEMRSETICMPROFILE EMRSETICMPROFILEA; -alias tagEMRSETICMPROFILE* PEMRSETICMPROFILEA; -alias tagEMRSETICMPROFILE EMRSETICMPROFILEW; -alias tagEMRSETICMPROFILE* PEMRSETICMPROFILEW; - -enum : uint { CREATECOLORSPACE_EMBEDED = 0x00000001 } - -struct tagEMRCREATECOLORSPACEW { - EMR emr; - DWORD ihCS; - LOGCOLORSPACEW lcs; - DWORD dwFlags; - DWORD cbData; - BYTE Data[1]; -} -alias tagEMRCREATECOLORSPACEW EMRCREATECOLORSPACEW; -alias tagEMRCREATECOLORSPACEW* PEMRCREATECOLORSPACEW; - -enum : uint { COLORMATCHTOTARGET_EMBEDED = 0x00000001 } - -struct tagCOLORMATCHTOTARGET { - EMR emr; - DWORD dwAction; - DWORD dwFlags; - DWORD cbName; - DWORD cbData; - BYTE Data[1]; -} -alias tagCOLORMATCHTOTARGET EMRCOLORMATCHTOTARGET; -alias tagCOLORMATCHTOTARGET* PEMRCOLORMATCHTOTARGET; - -struct tagCOLORCORRECTPALETTE { - EMR emr; - DWORD ihPalette; - DWORD nFirstEntry; - DWORD nPalEntries; - DWORD nReserved; -} -alias tagCOLORCORRECTPALETTE EMRCOLORCORRECTPALETTE; -alias tagCOLORCORRECTPALETTE* PEMRCOLORCORRECTPALETTE; - -struct tagEMRALPHABLEND { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG cxDest; - LONG cyDest; - DWORD dwRop; - LONG xSrc; - LONG ySrc; - XFORM xformSrc; - COLORREF crBkColorSrc; - DWORD iUsageSrc; - - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - LONG cxSrc; - LONG cySrc; -} -alias tagEMRALPHABLEND EMRALPHABLEND; -alias tagEMRALPHABLEND* PEMRALPHABLEND; - -struct tagEMRGRADIENTFILL { - EMR emr; - RECTL rclBounds; - DWORD nVer; - DWORD nTri; - ULONG ulMode; - TRIVERTEX Ver[1]; -} -alias tagEMRGRADIENTFILL EMRGRADIENTFILL; -alias tagEMRGRADIENTFILL* PEMRGRADIENTFILL; - -struct tagEMRTRANSPARENTBLT { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG cxDest; - LONG cyDest; - DWORD dwRop; - LONG xSrc; - LONG ySrc; - XFORM xformSrc; - COLORREF crBkColorSrc; - DWORD iUsageSrc; - - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - LONG cxSrc; - LONG cySrc; -} -alias tagEMRTRANSPARENTBLT EMRTRANSPARENTBLT; -alias tagEMRTRANSPARENTBLT* PEMRTRANSPARENTBLT; - -// #endif /* WINVER >= 0x0500 */ - -enum : uint { GDICOMMENT_IDENTIFIER = 0x43494447 } -enum : uint { GDICOMMENT_WINDOWS_METAFILE = 0x80000001 } -enum : uint { GDICOMMENT_BEGINGROUP = 0x00000002 } -enum : uint { GDICOMMENT_ENDGROUP = 0x00000003 } -enum : uint { GDICOMMENT_MULTIFORMATS = 0x40000004 } -enum : uint { EPS_SIGNATURE = 0x46535045 } -enum : uint { GDICOMMENT_UNICODE_STRING = 0x00000040 } -enum : uint { GDICOMMENT_UNICODE_END = 0x00000080 } - -// #endif /* NOMETAFILE */ - -extern(Windows) export BOOL wglCopyContext(HGLRC, HGLRC, UINT); -extern(Windows) export HGLRC wglCreateContext(HDC); -extern(Windows) export HGLRC wglCreateLayerContext(HDC, int); -extern(Windows) export BOOL wglDeleteContext(HGLRC); -extern(Windows) export HGLRC wglGetCurrentContext(); -extern(Windows) export HDC wglGetCurrentDC(); -extern(Windows) export PROC wglGetProcAddress(LPCSTR); -extern(Windows) export BOOL wglMakeCurrent(HDC, HGLRC); -extern(Windows) export BOOL wglShareLists(HGLRC, HGLRC); -extern(Windows) export BOOL wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD); -extern(Windows) export BOOL wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD); -// #ifdef UNICODE -alias wglUseFontBitmapsW wglUseFontBitmaps; -// #else -// #... -// #endif // !UNICODE -extern(Windows) export BOOL SwapBuffers(HDC); - -struct _POINTFLOAT { - FLOAT x; - FLOAT y; -} -alias _POINTFLOAT POINTFLOAT; -alias _POINTFLOAT* PPOINTFLOAT; - -struct _GLYPHMETRICSFLOAT { - FLOAT gmfBlackBoxX; - FLOAT gmfBlackBoxY; - POINTFLOAT gmfptGlyphOrigin; - FLOAT gmfCellIncX; - FLOAT gmfCellIncY; -} -alias _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT; -alias _GLYPHMETRICSFLOAT* PGLYPHMETRICSFLOAT; -alias _GLYPHMETRICSFLOAT* LPGLYPHMETRICSFLOAT; - -enum : uint { WGL_FONT_LINES = 0 } -enum : uint { WGL_FONT_POLYGONS = 1 } -extern(Windows) export BOOL wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT, - FLOAT, int, LPGLYPHMETRICSFLOAT); -extern(Windows) export BOOL wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT, - FLOAT, int, LPGLYPHMETRICSFLOAT); -// #ifdef UNICODE -alias wglUseFontOutlinesW wglUseFontOutlines; -// #else -// #... -// #endif // !UNICODE - -struct tagLAYERPLANEDESCRIPTOR { - WORD nSize; - WORD nVersion; - DWORD dwFlags; - BYTE iPixelType; - BYTE cColorBits; - BYTE cRedBits; - BYTE cRedShift; - BYTE cGreenBits; - BYTE cGreenShift; - BYTE cBlueBits; - BYTE cBlueShift; - BYTE cAlphaBits; - BYTE cAlphaShift; - BYTE cAccumBits; - BYTE cAccumRedBits; - BYTE cAccumGreenBits; - BYTE cAccumBlueBits; - BYTE cAccumAlphaBits; - BYTE cDepthBits; - BYTE cStencilBits; - BYTE cAuxBuffers; - BYTE iLayerPlane; - BYTE bReserved; - COLORREF crTransparent; -} -alias tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR; -alias tagLAYERPLANEDESCRIPTOR* PLAYERPLANEDESCRIPTOR; -alias tagLAYERPLANEDESCRIPTOR* LPLAYERPLANEDESCRIPTOR; - -enum : uint { LPD_DOUBLEBUFFER = 0x00000001 } -enum : uint { LPD_STEREO = 0x00000002 } -enum : uint { LPD_SUPPORT_GDI = 0x00000010 } -enum : uint { LPD_SUPPORT_OPENGL = 0x00000020 } -enum : uint { LPD_SHARE_DEPTH = 0x00000040 } -enum : uint { LPD_SHARE_STENCIL = 0x00000080 } -enum : uint { LPD_SHARE_ACCUM = 0x00000100 } -enum : uint { LPD_SWAP_EXCHANGE = 0x00000200 } -enum : uint { LPD_SWAP_COPY = 0x00000400 } -enum : uint { LPD_TRANSPARENT = 0x00001000 } - -enum : uint { LPD_TYPE_RGBA = 0 } -enum : uint { LPD_TYPE_COLORINDEX = 1 } - -enum : uint { WGL_SWAP_MAIN_PLANE = 0x00000001 } -enum : uint { WGL_SWAP_OVERLAY1 = 0x00000002 } -enum : uint { WGL_SWAP_OVERLAY2 = 0x00000004 } -enum : uint { WGL_SWAP_OVERLAY3 = 0x00000008 } -enum : uint { WGL_SWAP_OVERLAY4 = 0x00000010 } -enum : uint { WGL_SWAP_OVERLAY5 = 0x00000020 } -enum : uint { WGL_SWAP_OVERLAY6 = 0x00000040 } -enum : uint { WGL_SWAP_OVERLAY7 = 0x00000080 } -enum : uint { WGL_SWAP_OVERLAY8 = 0x00000100 } -enum : uint { WGL_SWAP_OVERLAY9 = 0x00000200 } -enum : uint { WGL_SWAP_OVERLAY10 = 0x00000400 } -enum : uint { WGL_SWAP_OVERLAY11 = 0x00000800 } -enum : uint { WGL_SWAP_OVERLAY12 = 0x00001000 } -enum : uint { WGL_SWAP_OVERLAY13 = 0x00002000 } -enum : uint { WGL_SWAP_OVERLAY14 = 0x00004000 } -enum : uint { WGL_SWAP_OVERLAY15 = 0x00008000 } -enum : uint { WGL_SWAP_UNDERLAY1 = 0x00010000 } -enum : uint { WGL_SWAP_UNDERLAY2 = 0x00020000 } -enum : uint { WGL_SWAP_UNDERLAY3 = 0x00040000 } -enum : uint { WGL_SWAP_UNDERLAY4 = 0x00080000 } -enum : uint { WGL_SWAP_UNDERLAY5 = 0x00100000 } -enum : uint { WGL_SWAP_UNDERLAY6 = 0x00200000 } -enum : uint { WGL_SWAP_UNDERLAY7 = 0x00400000 } -enum : uint { WGL_SWAP_UNDERLAY8 = 0x00800000 } -enum : uint { WGL_SWAP_UNDERLAY9 = 0x01000000 } -enum : uint { WGL_SWAP_UNDERLAY10 = 0x02000000 } -enum : uint { WGL_SWAP_UNDERLAY11 = 0x04000000 } -enum : uint { WGL_SWAP_UNDERLAY12 = 0x08000000 } -enum : uint { WGL_SWAP_UNDERLAY13 = 0x10000000 } -enum : uint { WGL_SWAP_UNDERLAY14 = 0x20000000 } -enum : uint { WGL_SWAP_UNDERLAY15 = 0x40000000 } - -extern(Windows) export BOOL wglDescribeLayerPlane(HDC, int, int, UINT, - LPLAYERPLANEDESCRIPTOR); -extern(Windows) export int wglSetLayerPaletteEntries(HDC, int, int, int, - COLORREF *); -extern(Windows) export int wglGetLayerPaletteEntries(HDC, int, int, int, - COLORREF *); -extern(Windows) export BOOL wglRealizeLayerPalette(HDC, int, BOOL); -extern(Windows) export BOOL wglSwapLayerBuffers(HDC, UINT); - -// #if (WINVER >= 0x0500) - -struct _WGLSWAP { - HDC hdc; - UINT uiFlags; -} -alias _WGLSWAP WGLSWAP; -alias _WGLSWAP* PWGLSWAP; -alias _WGLSWAP* LPWGLSWAP; - -enum : uint { WGL_SWAPMULTIPLE_MAX = 16 } - -extern(Windows) export DWORD wglSwapMultipleBuffers(UINT, WGLSWAP *); - -// #endif // (WINVER >= 0x0500) - -// #endif /* NOGDI */ - -// #ifdef __cplusplus -// } -// #endif - -// #endif /* _WINGDI_ */ - + +/***********************************************************************\ +* wingdi.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.wingdi; +pragma(lib, "gdi32.lib"); + +// FIXME: clean up Windows version support + +private import win32.w32api, win32.windef, win32.winver; + +// BITMAPINFOHEADER.biCompression +enum : DWORD { + BI_RGB = 0, + BI_RLE8, + BI_RLE4, + BI_BITFIELDS, + BI_JPEG, + BI_PNG +} + +// --- +// COLORADJUSTMENT -- only for NT 3.1+, Win2000+ +const WORD +CA_NEGATIVE = 1, +CA_LOG_FILTER = 2; + +// COLORADJUSTMENT +enum : WORD { + ILLUMINANT_DEVICE_DEFAULT = 0, + ILLUMINANT_A, + ILLUMINANT_B, + ILLUMINANT_C, + ILLUMINANT_D50, + ILLUMINANT_D55, + ILLUMINANT_D65, + ILLUMINANT_D75, + ILLUMINANT_F2, + ILLUMINANT_MAX_INDEX = ILLUMINANT_F2, + ILLUMINANT_TUNGSTEN = ILLUMINANT_A, + ILLUMINANT_DAYLIGHT = ILLUMINANT_C, + ILLUMINANT_FLUORESCENT = ILLUMINANT_F2, + ILLUMINANT_NTSC = ILLUMINANT_C +} + +enum { + RGB_GAMMA_MIN = 2500, + RGB_GAMMA_MAX = 65000, + REFERENCE_WHITE_MIN = 6000, + REFERENCE_WHITE_MAX = 10000, + REFERENCE_BLACK_MIN = 0, + REFERENCE_BLACK_MAX = 4000, + COLOR_ADJ_MIN = -100, + COLOR_ADJ_MAX = 100, +} + +// --- + +/* FIXME: move to win32.winuser ? */ + +// DrawIconEx() +enum : UINT { + DI_MASK = 1, + DI_IMAGE = 2, + DI_NORMAL = 3, + DI_COMPAT = 4, + DI_DEFAULTSIZE = 8 +} + +// DOCINFO +enum : DWORD { + DI_APPBANDING = 1, + DI_ROPS_READ_DESTINATION = 2, +} + +// ENHMETAHEADER +enum : DWORD { + EMR_HEADER = 1, + EMR_POLYBEZIER, + EMR_POLYGON, + EMR_POLYLINE, + EMR_POLYBEZIERTO, + EMR_POLYLINETO, + EMR_POLYPOLYLINE, + EMR_POLYPOLYGON, + EMR_SETWINDOWEXTEX, + EMR_SETWINDOWORGEX, + EMR_SETVIEWPORTEXTEX, + EMR_SETVIEWPORTORGEX, + EMR_SETBRUSHORGEX, + EMR_EOF, + EMR_SETPIXELV, + EMR_SETMAPPERFLAGS, + EMR_SETMAPMODE, + EMR_SETBKMODE, + EMR_SETPOLYFILLMODE, + EMR_SETROP2, + EMR_SETSTRETCHBLTMODE, + EMR_SETTEXTALIGN, + EMR_SETCOLORADJUSTMENT, + EMR_SETTEXTCOLOR, + EMR_SETBKCOLOR, + EMR_OFFSETCLIPRGN, + EMR_MOVETOEX, + EMR_SETMETARGN, + EMR_EXCLUDECLIPRECT, + EMR_INTERSECTCLIPRECT, + EMR_SCALEVIEWPORTEXTEX, + EMR_SCALEWINDOWEXTEX, + EMR_SAVEDC, + EMR_RESTOREDC, + EMR_SETWORLDTRANSFORM, + EMR_MODIFYWORLDTRANSFORM, + EMR_SELECTOBJECT, + EMR_CREATEPEN, + EMR_CREATEBRUSHINDIRECT, + EMR_DELETEOBJECT, + EMR_ANGLEARC, + EMR_ELLIPSE, + EMR_RECTANGLE, + EMR_ROUNDRECT, + EMR_ARC, + EMR_CHORD, + EMR_PIE, + EMR_SELECTPALETTE, + EMR_CREATEPALETTE, + EMR_SETPALETTEENTRIES, + EMR_RESIZEPALETTE, + EMR_REALIZEPALETTE, + EMR_EXTFLOODFILL, + EMR_LINETO, + EMR_ARCTO, + EMR_POLYDRAW, + EMR_SETARCDIRECTION, + EMR_SETMITERLIMIT, + EMR_BEGINPATH, + EMR_ENDPATH, + EMR_CLOSEFIGURE, + EMR_FILLPATH, + EMR_STROKEANDFILLPATH, + EMR_STROKEPATH, + EMR_FLATTENPATH, + EMR_WIDENPATH, + EMR_SELECTCLIPPATH, + EMR_ABORTPATH, // 68 + // reserved 69 + EMR_GDICOMMENT = 70, + EMR_FILLRGN, + EMR_FRAMERGN, + EMR_INVERTRGN, + EMR_PAINTRGN, + EMR_EXTSELECTCLIPRGN, + EMR_BITBLT, + EMR_STRETCHBLT, + EMR_MASKBLT, + EMR_PLGBLT, + EMR_SETDIBITSTODEVICE, + EMR_STRETCHDIBITS, + EMR_EXTCREATEFONTINDIRECTW, + EMR_EXTTEXTOUTA, + EMR_EXTTEXTOUTW, + EMR_POLYBEZIER16, + EMR_POLYGON16, + EMR_POLYLINE16, + EMR_POLYBEZIERTO16, + EMR_POLYLINETO16, + EMR_POLYPOLYLINE16, + EMR_POLYPOLYGON16, + EMR_POLYDRAW16, + EMR_CREATEMONOBRUSH, + EMR_CREATEDIBPATTERNBRUSHPT, + EMR_EXTCREATEPEN, + EMR_POLYTEXTOUTA, + EMR_POLYTEXTOUTW, // 97 + EMR_SETICMMODE, + EMR_CREATECOLORSPACE, + EMR_SETCOLORSPACE, + EMR_DELETECOLORSPACE, + EMR_GLSRECORD, + EMR_GLSBOUNDEDRECORD, + EMR_PIXELFORMAT, // = 104 + // reserved 105 - 110 + EMR_COLORCORRECTPALETTE = 111, + EMR_SETICMPROFILEA, + EMR_SETICMPROFILEW, + EMR_ALPHABLEND, + EMR_SETLAYOUT, + EMR_TRANSPARENTBLT, // 116 + // reserved 117 + EMR_GRADIENTFILL = 118, + + // reserved 119, 120 + EMR_COLORMATCHTOTARGETW = 121, + EMR_CREATECOLORSPACEW // 122 +} + +const EMR_MIN = EMR_HEADER; + +static + +if (WINVER >= 0x0500) + const EMR_MAX = EMR_CREATECOLORSPACEW; +else static + + if (WINVER >= 0x0400) + const EMR_MAX = EMR_PIXELFORMAT; + else + const EMR_MAX = EMR_POLYTEXTOUTW; + +// ENHMETAHEADER.dSignature, ENHMETAHEADER3.dSignature, +// EMRFORMAT.dSignature +enum : DWORD { + ENHMETA_SIGNATURE = 1179469088, + EPS_SIGNATURE = 0x46535045 +} + +static + +if (_WIN32_WINNT >= 0x0500) +{ + // AddFontResourceEx() + enum : DWORD { + FR_PRIVATE = 0x10, + FR_NOT_ENUM = 0x20 + } +} + +enum { + META_SAVEDC = 0x1E, + META_REALIZEPALETTE = 0x35, + META_SETPALENTRIES = 0x37, + META_CREATEPALETTE = 0xf7, + META_SETBKMODE = 0x102, + META_SETMAPMODE = 0x103, + META_SETROP2 = 0x104, + META_SETRELABS = 0x105, + META_SETPOLYFILLMODE = 0x106, + META_SETSTRETCHBLTMODE = 0x107, + META_SETTEXTCHAREXTRA = 0x108, + META_RESTOREDC = 0x127, + META_INVERTREGION = 0x12A, + META_PAINTREGION = 0x12B, + META_SELECTCLIPREGION = 0x12C, + META_SELECTOBJECT = 0x12D, + META_SETTEXTALIGN = 0x12E, + META_RESIZEPALETTE = 0x139, + META_DIBCREATEPATTERNBRUSH = 0x142, + META_SETLAYOUT = 0x149, + META_DELETEOBJECT = 0x1F0, + META_CREATEPATTERNBRUSH = 0x1F9, + META_SETBKCOLOR = 0x201, + META_SETTEXTCOLOR = 0x209, + META_SETTEXTJUSTIFICATION = 0x20A, + META_SETWINDOWORG = 0x20B, + META_SETWINDOWEXT = 0x20C, + META_SETVIEWPORTORG = 0x20D, + META_SETVIEWPORTEXT = 0x20E, + META_OFFSETWINDOWORG = 0x20F, + META_OFFSETVIEWPORTORG = 0x211, + META_LINETO = 0x213, + META_MOVETO = 0x214, + META_OFFSETCLIPRGN = 0x220, + META_FILLREGION = 0x228, + META_SETMAPPERFLAGS = 0x231, + META_SELECTPALETTE = 0x234, + META_CREATEPENINDIRECT = 0x2FA, + META_CREATEFONTINDIRECT = 0x2FB, + META_CREATEBRUSHINDIRECT = 0x2FC, + META_POLYGON = 0x324, + META_POLYLINE = 0x325, + META_SCALEWINDOWEXT = 0x410, + META_SCALEVIEWPORTEXT = 0x412, + META_EXCLUDECLIPRECT = 0x415, + META_INTERSECTCLIPRECT = 0x416, + META_ELLIPSE = 0x418, + META_FLOODFILL = 0x419, + META_RECTANGLE = 0x41B, + META_SETPIXEL = 0x41F, + META_FRAMEREGION = 0x429, + META_ANIMATEPALETTE = 0x436, + META_TEXTOUT = 0x521, + META_POLYPOLYGON = 0x538, + META_EXTFLOODFILL = 0x548, + META_ROUNDRECT = 0x61C, + META_PATBLT = 0x61D, + META_ESCAPE = 0x626, + META_CREATEREGION = 0x6FF, + META_ARC = 0x817, + META_PIE = 0x81A, + META_CHORD = 0x830, + META_BITBLT = 0x922, + META_DIBBITBLT = 0x940, + META_EXTTEXTOUT = 0xA32, + META_STRETCHBLT = 0xB23, + META_DIBSTRETCHBLT = 0xB41, + META_SETDIBTODEV = 0xD33, + META_STRETCHDIB = 0xF43 +} + +// EMRPOLYDRAW +enum : BYTE { + PT_CLOSEFIGURE = 1, + PT_LINETO = 2, + PT_BEZIERTO = 4, + PT_MOVETO = 6 +} + +// ---- +// PIXELFORMATDESCRIPTOR.iPixelType +enum : BYTE { + PFD_TYPE_RGBA = 0, + PFD_TYPE_COLORINDEX = 1 +} + +deprecated { + // PIXELFORMATDESCRIPTOR. + const byte + PFD_MAIN_PLANE = 0, + PFD_OVERLAY_PLANE = 1, + PFD_UNDERLAY_PLANE = -1; +} + +// PIXELFORMATDESCRIPTOR.dwFlags +const DWORD +PFD_DOUBLEBUFFER = 0x00000001, +PFD_STEREO = 0x00000002, +PFD_DRAW_TO_WINDOW = 0x00000004, +PFD_DRAW_TO_BITMAP = 0x00000008, +PFD_SUPPORT_GDI = 0x00000010, +PFD_SUPPORT_OPENGL = 0x00000020, +PFD_GENERIC_FORMAT = 0x00000040, +PFD_NEED_PALETTE = 0x00000080, +PFD_NEED_SYSTEM_PALETTE = 0x00000100, +PFD_SWAP_EXCHANGE = 0x00000200, +PFD_SWAP_COPY = 0x00000400, +PFD_SWAP_LAYER_BUFFERS = 0x00000800, +PFD_GENERIC_ACCELERATED = 0x00001000, +PFD_SUPPORT_DIRECTDRAW = 0x00002000, + +/* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */ +PFD_DEPTH_DONTCARE = 0x20000000, +PFD_DOUBLEBUFFER_DONTCARE = 0x40000000, +PFD_STEREO_DONTCARE = 0x80000000; + +// ---- + +const DWORD +BLACKNESS = 0x000042, +NOTSRCERASE = 0x1100A6, +NOTSRCCOPY = 0x330008, +SRCERASE = 0x440328, +DSTINVERT = 0x550009, +PATINVERT = 0x5A0049, +SRCINVERT = 0x660046, +SRCAND = 0x8800C6, +MERGEPAINT = 0xBB0226, +MERGECOPY = 0xC000CA, +SRCCOPY = 0xCC0020, +SRCPAINT = 0xEE0086, +PATCOPY = 0xF00021, +PATPAINT = 0xFB0A09, +WHITENESS = 0xFF0062; +static + +if (WINVER >= 0x0500) +{ + const DWORD + NOMIRRORBITMAP = 0x80000000, + CAPTUREBLT = 0x40000000; +} + +// GetROP2(), SetROP2() +enum : int { + R2_BLACK = 1, + R2_NOTMERGEPEN = 2, + R2_MASKNOTPEN = 3, + R2_NOTCOPYPEN = 4, + R2_MASKPENNOT = 5, + R2_NOT = 6, + R2_XORPEN = 7, + R2_NOTMASKPEN = 8, + R2_MASKPEN = 9, + R2_NOTXORPEN = 10, + R2_NOP = 11, + R2_MERGENOTPEN = 12, + R2_COPYPEN = 13, + R2_MERGEPENNOT = 14, + R2_MERGEPEN = 15, + R2_WHITE = 16 +} + +const R2_LAST = R2_WHITE; + +// CheckColorsInGamut() +const ubyte +CM_IN_GAMUT = 0, +CM_OUT_OF_GAMUT = 255; + +/* UpdateICMRegKey Constants */ +const int +ICM_ADDPROFILE = 1, +ICM_DELETEPROFILE = 2, +ICM_QUERYPROFILE = 3, +ICM_SETDEFAULTPROFILE = 4, +ICM_REGISTERICMATCHER = 5, +ICM_UNREGISTERICMATCHER = 6, +ICM_QUERYMATCH = 7; + +enum : int { + RGN_AND = 1, + RGN_OR = 2, + RGN_XOR = 3, + RGN_DIFF = 4, + RGN_COPY = 5 +} + +const RGN_MIN = RGN_AND; +const RGN_MAX = RGN_COPY; + +// Return values for CombineRgn() +enum { + NULLREGION = 1, + SIMPLEREGION = 2, + COMPLEXREGION = 3 +} + +const ERROR = 0; +alias ERROR RGN_ERROR; + +// CreateDIBitmap() +const DWORD CBM_INIT = 4; + +// CreateDIBitmap() +enum : UINT { + DIB_RGB_COLORS = 0, + DIB_PAL_COLORS = 1 +} + +// --- +// Values for LOGFONT and CreateFont() + +// FIXME: For D, replace with lfFaceName.length() +const LF_FACESIZE = 32; +const LF_FULLFACESIZE = 64; + +// FIXME: Not needed for D, only EXTLOGFONT +const ELF_VENDOR_SIZE = 4; + +// ??? +const ELF_VERSION = 0; +const ELF_CULTURE_LATIN = 0; + +// LOGFONT.lfWeight +const LONG +FW_DONTCARE = 0, +FW_THIN = 100, +FW_EXTRALIGHT = 200, +FW_ULTRALIGHT = FW_EXTRALIGHT, +FW_LIGHT = 300, +FW_NORMAL = 400, +FW_REGULAR = FW_NORMAL, +FW_MEDIUM = 500, +FW_SEMIBOLD = 600, +FW_DEMIBOLD = FW_SEMIBOLD, +FW_BOLD = 700, +FW_EXTRABOLD = 800, +FW_ULTRABOLD = FW_EXTRABOLD, +FW_HEAVY = 900, +FW_BLACK = FW_HEAVY; + +// LOGFONT.lfCharSet +enum : DWORD { + ANSI_CHARSET = 0, + DEFAULT_CHARSET = 1, + SYMBOL_CHARSET = 2, + MAC_CHARSET = 77, + SHIFTJIS_CHARSET = 128, + HANGEUL_CHARSET = 129, + HANGUL_CHARSET = 129, + JOHAB_CHARSET = 130, + GB2312_CHARSET = 134, + CHINESEBIG5_CHARSET = 136, + GREEK_CHARSET = 161, + TURKISH_CHARSET = 162, + VIETNAMESE_CHARSET = 163, + HEBREW_CHARSET = 177, + ARABIC_CHARSET = 178, + BALTIC_CHARSET = 186, + RUSSIAN_CHARSET = 204, + THAI_CHARSET = 222, + EASTEUROPE_CHARSET = 238, + OEM_CHARSET = 255 +} + +// LOGFONT.lfOutPrecision +enum : BYTE { + OUT_DEFAULT_PRECIS = 0, + OUT_STRING_PRECIS, + OUT_CHARACTER_PRECIS, + OUT_STROKE_PRECIS, + OUT_TT_PRECIS, + OUT_DEVICE_PRECIS, + OUT_RASTER_PRECIS, + OUT_TT_ONLY_PRECIS, + OUT_OUTLINE_PRECIS, + OUT_SCREEN_OUTLINE_PRECIS, + OUT_PS_ONLY_PRECIS, // 10 +} + +// LOGFONT.lfClipPrecision +enum : BYTE { + CLIP_DEFAULT_PRECIS = 0, + CLIP_CHARACTER_PRECIS = 1, + CLIP_STROKE_PRECIS = 2, + CLIP_MASK = 15, + CLIP_LH_ANGLES = 16, + CLIP_TT_ALWAYS = 32, + CLIP_DFA_DISABLE = 64, + CLIP_EMBEDDED = 128 +} + +// LOGFONT.lfQuality +enum : BYTE { + DEFAULT_QUALITY = 0, + DRAFT_QUALITY, + PROOF_QUALITY, + NONANTIALIASED_QUALITY, + ANTIALIASED_QUALITY +} + +// LOGFONT.lfPitchAndFamily + +const BYTE +DEFAULT_PITCH = 0, +FIXED_PITCH = 1, +VARIABLE_PITCH = 2, +MONO_FONT = 8, +FF_DONTCARE = 0, +FF_ROMAN = 16, +FF_SWISS = 32, +FF_SCRIPT = 64, +FF_MODERN = 48, +FF_DECORATIVE = 80; + +// ---- +// Enums for the PANOSE struct + +const PANOSE_COUNT=10; + +enum { + PAN_FAMILYTYPE_INDEX = 0, + PAN_SERIFSTYLE_INDEX, + PAN_WEIGHT_INDEX, + PAN_PROPORTION_INDEX, + PAN_CONTRAST_INDEX, + PAN_STROKEVARIATION_INDEX, + PAN_ARMSTYLE_INDEX, + PAN_LETTERFORM_INDEX, + PAN_MIDLINE_INDEX, + PAN_XHEIGHT_INDEX +} + +const PAN_CULTURE_LATIN=0; + +// NOTE: the first two values (PAN_ANY and PAN_NO_FIT) apply to all these enums! +enum : BYTE { + PAN_ANY = 0, + PAN_NO_FIT = 1, +} + +enum : BYTE { + PAN_FAMILY_TEXT_DISPLAY = 2, + PAN_FAMILY_SCRIPT, + PAN_FAMILY_DECORATIVE, + PAN_FAMILY_PICTORIAL +} +enum : BYTE { + PAN_SERIF_COVE = 2, + PAN_SERIF_OBTUSE_COVE, + PAN_SERIF_SQUARE_COVE, + PAN_SERIF_OBTUSE_SQUARE_COVE, + PAN_SERIF_SQUARE, + PAN_SERIF_THIN, + PAN_SERIF_BONE, + PAN_SERIF_EXAGGERATED, + PAN_SERIF_TRIANGLE, + PAN_SERIF_NORMAL_SANS, + PAN_SERIF_OBTUSE_SANS, + PAN_SERIF_PERP_SANS, + PAN_SERIF_FLARED, + PAN_SERIF_ROUNDED +} + +enum : BYTE { + PAN_WEIGHT_VERY_LIGHT = 2, + PAN_WEIGHT_LIGHT, + PAN_WEIGHT_THIN, + PAN_WEIGHT_BOOK, + PAN_WEIGHT_MEDIUM, + PAN_WEIGHT_DEMI, + PAN_WEIGHT_BOLD, + PAN_WEIGHT_HEAVY, + PAN_WEIGHT_BLACK, + PAN_WEIGHT_NORD +} + +enum : BYTE { + PAN_PROP_OLD_STYLE = 2, + PAN_PROP_MODERN, + PAN_PROP_EVEN_WIDTH, + PAN_PROP_EXPANDED, + PAN_PROP_CONDENSED, + PAN_PROP_VERY_EXPANDED, + PAN_PROP_VERY_CONDENSED, + PAN_PROP_MONOSPACED +} + +enum : BYTE { + PAN_CONTRAST_NONE = 2, + PAN_CONTRAST_VERY_LOW, + PAN_CONTRAST_LOW, + PAN_CONTRAST_MEDIUM_LOW, + PAN_CONTRAST_MEDIUM, + PAN_CONTRAST_MEDIUM_HIGH, + PAN_CONTRAST_HIGH, + PAN_CONTRAST_VERY_HIGH +} + +// PANOSE.bStrokeVariation +enum : BYTE { + PAN_STROKE_GRADUAL_DIAG = 2, + PAN_STROKE_GRADUAL_TRAN, + PAN_STROKE_GRADUAL_VERT, + PAN_STROKE_GRADUAL_HORZ, + PAN_STROKE_RAPID_VERT, + PAN_STROKE_RAPID_HORZ, + PAN_STROKE_INSTANT_VERT +} + +// PANOSE.bArmStyle +enum : BYTE { + PAN_STRAIGHT_ARMS_HORZ = 2, + PAN_STRAIGHT_ARMS_WEDGE, + PAN_STRAIGHT_ARMS_VERT, + PAN_STRAIGHT_ARMS_SINGLE_SERIF, + PAN_STRAIGHT_ARMS_DOUBLE_SERIF, + PAN_BENT_ARMS_HORZ, + PAN_BENT_ARMS_WEDGE, + PAN_BENT_ARMS_VERT, + PAN_BENT_ARMS_SINGLE_SERIF, + PAN_BENT_ARMS_DOUBLE_SERIF +} + +// PANOSE.bLetterForm +enum : BYTE { + PAN_LETT_NORMAL_CONTACT = 2, + PAN_LETT_NORMAL_WEIGHTED, + PAN_LETT_NORMAL_BOXED, + PAN_LETT_NORMAL_FLATTENED, + PAN_LETT_NORMAL_ROUNDED, + PAN_LETT_NORMAL_OFF_CENTER, + PAN_LETT_NORMAL_SQUARE, + PAN_LETT_OBLIQUE_CONTACT, + PAN_LETT_OBLIQUE_WEIGHTED, + PAN_LETT_OBLIQUE_BOXED, + PAN_LETT_OBLIQUE_FLATTENED, + PAN_LETT_OBLIQUE_ROUNDED, + PAN_LETT_OBLIQUE_OFF_CENTER, + PAN_LETT_OBLIQUE_SQUARE +} + +// PANOSE.bMidLine +enum : BYTE { + PAN_MIDLINE_STANDARD_TRIMMED = 2, + PAN_MIDLINE_STANDARD_POINTED, + PAN_MIDLINE_STANDARD_SERIFED, + PAN_MIDLINE_HIGH_TRIMMED, + PAN_MIDLINE_HIGH_POINTED, + PAN_MIDLINE_HIGH_SERIFED, + PAN_MIDLINE_CONSTANT_TRIMMED, + PAN_MIDLINE_CONSTANT_POINTED, + PAN_MIDLINE_CONSTANT_SERIFED, + PAN_MIDLINE_LOW_TRIMMED, + PAN_MIDLINE_LOW_POINTED, + PAN_MIDLINE_LOW_SERIFED +} + +// PANOSE.bXHeight +enum : BYTE { + PAN_XHEIGHT_CONSTANT_SMALL = 2, + PAN_XHEIGHT_CONSTANT_STD, + PAN_XHEIGHT_CONSTANT_LARGE, + PAN_XHEIGHT_DUCKING_SMALL, + PAN_XHEIGHT_DUCKING_STD, + PAN_XHEIGHT_DUCKING_LARGE +} + +// ---- +// ??? +const FS_LATIN1 = 0x00000001; +const FS_LATIN2 = 0x00000002; +const FS_CYRILLIC = 0x00000004; +const FS_GREEK = 0x00000008; +const FS_TURKISH = 0x00000010; +const FS_HEBREW = 0x00000020; +const FS_ARABIC = 0x00000040; +const FS_BALTIC = 0x00000080; +const FS_VIETNAMESE = 0x00000100; +const FS_THAI = 0x00010000; +const FS_JISJAPAN = 0x00020000; +const FS_CHINESESIMP = 0x00040000; +const FS_WANSUNG = 0x00080000; +const FS_CHINESETRAD = 0x00100000; +const FS_JOHAB = 0x00200000; +const FS_SYMBOL = 0x80000000; + +// ---- +// Poly Fill Mode +enum : int { + ALTERNATE = 1, + WINDING = 2 +} +const int POLYFILL_LAST = WINDING; + +// --- +// LOGBRUSH +enum : LONG { + HS_HORIZONTAL = 0, + HS_VERTICAL, + HS_FDIAGONAL, + HS_BDIAGONAL, + HS_CROSS, + HS_DIAGCROSS +} + +// LOGBRUSH.lbStyle +enum : UINT { + BS_SOLID = 0, + BS_NULL = 1, + BS_HOLLOW = BS_NULL, + BS_HATCHED, + BS_PATTERN, + BS_INDEXED, + BS_DIBPATTERN, + BS_DIBPATTERNPT, + BS_PATTERN8X8, + BS_DIBPATTERN8X8, + BS_MONOPATTERN, +} + +// ----- +// EXTLOGPEN, ExtCreatePen() + +// EXTLOGPEN.elpPenStyle +enum : DWORD { + PS_SOLID = 0, + PS_DASH = 1, + PS_DOT = 2, + PS_DASHDOT = 3, + PS_DASHDOTDOT = 4, + PS_NULL = 5, + PS_INSIDEFRAME = 6, + PS_USERSTYLE = 7, + PS_ALTERNATE = 8, + PS_STYLE_MASK = 15, +} + +enum : DWORD { + PS_COSMETIC = 0x00000000, + PS_GEOMETRIC = 0x00010000, + PS_TYPE_MASK = 0x000F0000, +} +enum : DWORD { + PS_ENDCAP_ROUND = 0x00000000, + PS_ENDCAP_SQUARE = 0x00000100, + PS_ENDCAP_FLAT = 0x00000200, + PS_ENDCAP_MASK = 0x00000F00, +} +enum : DWORD { + PS_JOIN_ROUND = 0x00000000, + PS_JOIN_BEVEL = 0x00001000, + PS_JOIN_MITER = 0x00002000, + PS_JOIN_MASK = 0x0000F000, +} + +// --- +// DeviceCapabilities() + +enum : WORD { + DC_FIELDS = 1, + DC_PAPERS, + DC_PAPERSIZE, + DC_MINEXTENT, + DC_MAXEXTENT, + DC_BINS, + DC_DUPLEX, + DC_SIZE, + DC_EXTRA, + DC_VERSION, + DC_DRIVER, + DC_BINNAMES, + DC_ENUMRESOLUTIONS, + DC_FILEDEPENDENCIES, + DC_TRUETYPE, + DC_PAPERNAMES, + DC_ORIENTATION, + DC_COPIES, + DC_BINADJUST, + DC_EMF_COMPLIANT, + DC_DATATYPE_PRODUCED, + DC_COLLATE, + DC_MANUFACTURER, + DC_MODEL, +} + +static + +if (WINVER >= 0x0500) +{ + enum { + DC_PERSONALITY = 25, + DC_PRINTRATE = 26, + DC_PRINTRATEUNIT = 27, + DC_PRINTERMEM = 28, + DC_MEDIAREADY = 29, + DC_STAPLE = 30, + DC_PRINTRATEPPM = 31, + DC_COLORDEVICE = 32, + DC_NUP = 33, + DC_MEDIATYPENAMES = 34, + DC_MEDIATYPES = 35, + } + enum { + PRINTRATEUNIT_PPM = 1, + PRINTRATEUNIT_CPS = 2, + PRINTRATEUNIT_LPM = 3, + PRINTRATEUNIT_IPM = 4, + } +} + +// return from DC_TRUETYPE +const DWORD +DCTT_BITMAP = 1, +DCTT_DOWNLOAD = 2, +DCTT_SUBDEV = 4, +DCTT_DOWNLOAD_OUTLINE = 8; + +static + +if (WINVER >= 0x0400) +{ + // return from DC_BINADJUST + enum : DWORD { + DCBA_FACEUPNONE = 0x0000, + DCBA_FACEUPCENTER = 0x0001, + DCBA_FACEUPLEFT = 0x0002, + DCBA_FACEUPRIGHT = 0x0003, + DCBA_FACEDOWNNONE = 0x0100, + DCBA_FACEDOWNCENTER = 0x0101, + DCBA_FACEDOWNLEFT = 0x0102, + DCBA_FACEDOWNRIGHT = 0x0103, + } +} + +// --- + +const FLOODFILLBORDER = 0; +const FLOODFILLSURFACE = 1; + +// ExtTextOut() +const UINT +ETO_OPAQUE = 0x0002, +ETO_CLIPPED = 0x0004, +ETO_GLYPH_INDEX = 0x0010, +ETO_RTLREADING = 0x0080, +ETO_NUMERICSLOCAL = 0x0400, +ETO_NUMERICSLATIN = 0x0800, +ETO_IGNORELANGUAGE = 0x1000; +static + +if (_WIN32_WINNT >= 0x0500) +{ + const UINT + ETO_PDY = 0x2000; +} + +// GdiComment() +enum { + GDICOMMENT_BEGINGROUP = 0x00000002, + GDICOMMENT_ENDGROUP = 0x00000003, + GDICOMMENT_UNICODE_STRING = 0x00000040, + GDICOMMENT_UNICODE_END = 0x00000080, + GDICOMMENT_MULTIFORMATS = 0x40000004, + GDICOMMENT_IDENTIFIER = 0x43494447, + GDICOMMENT_WINDOWS_METAFILE = 0x80000001, +} + +// Get/SetArcDirection() +enum : int { + AD_COUNTERCLOCKWISE = 1, + AD_CLOCKWISE = 2 +} + +const RDH_RECTANGLES = 1; + +// GCPRESULTS.lpClass +enum { + GCPCLASS_LATIN = 1, + GCPCLASS_HEBREW = 2, + GCPCLASS_ARABIC = 2, + GCPCLASS_NEUTRAL, + GCPCLASS_LOCALNUMBER, + GCPCLASS_LATINNUMBER, + GCPCLASS_LATINNUMERICTERMINATOR, + GCPCLASS_LATINNUMERICSEPARATOR, + GCPCLASS_NUMERICSEPARATOR, // = 8, + GCPCLASS_POSTBOUNDRTL = 16, + GCPCLASS_POSTBOUNDLTR = 32, + GCPCLASS_PREBOUNDRTL = 64, + GCPCLASS_PREBOUNDLTR = 128, + GCPGLYPH_LINKAFTER = 0x4000, + GCPGLYPH_LINKBEFORE = 0x8000 +} + +// GetBoundsRect(), SetBoundsRect() +const UINT +DCB_RESET = 1, +DCB_ACCUMULATE = 2, +DCB_SET = DCB_RESET | DCB_ACCUMULATE, +DCB_ENABLE = 4, +DCB_DISABLE = 8, +DCB_DIRTY = DCB_ACCUMULATE; + +// --- +// GetObjectType() +enum : DWORD { + OBJ_PEN = 1, + OBJ_BRUSH, + OBJ_DC, + OBJ_METADC, + OBJ_PAL, + OBJ_FONT, + OBJ_BITMAP, + OBJ_REGION, + OBJ_METAFILE, + OBJ_MEMDC, + OBJ_EXTPEN, + OBJ_ENHMETADC, + OBJ_ENHMETAFILE, + OBJ_COLORSPACE, +} + +// --------------------- +// Capabilities for GetDeviceCaps(dc, xxx) + +enum : int { + DRIVERVERSION = 0, + TECHNOLOGY = 2, + HORZSIZE = 4, + VERTSIZE = 6, + HORZRES = 8, + VERTRES = 10, + BITSPIXEL = 12, + PLANES = 14, + NUMBRUSHES = 16, + NUMPENS = 18, + NUMMARKERS = 20, + NUMFONTS = 22, + NUMCOLORS = 24, + PDEVICESIZE = 26, + CURVECAPS = 28, + LINECAPS = 30, + POLYGONALCAPS = 32, + TEXTCAPS = 34, + CLIPCAPS = 36, + RASTERCAPS = 38, + ASPECTX = 40, + ASPECTY = 42, + ASPECTXY = 44, + LOGPIXELSX = 88, + LOGPIXELSY = 90, + SIZEPALETTE = 104, + NUMRESERVED = 106, + COLORRES = 108, + PHYSICALWIDTH = 110, + PHYSICALHEIGHT = 111, + PHYSICALOFFSETX = 112, + PHYSICALOFFSETY = 113, + SCALINGFACTORX = 114, + SCALINGFACTORY = 115, + VREFRESH = 116, + DESKTOPVERTRES = 117, + DESKTOPHORZRES = 118, + BLTALIGNMENT = 119 +} +static + +if (WINVER >= 0x0500) +{ + int + SHADEBLENDCAPS = 120, + COLORMGMTCAPS = 121; +} + +// Return values for GetDeviceCaps(dc, TECHNOLOGY) +enum : int { + DT_PLOTTER = 0, + DT_RASDISPLAY, + DT_RASPRINTER, + DT_RASCAMERA, + DT_CHARSTREAM, + DT_METAFILE, + DT_DISPFILE // = 6 +} + +// Return values for GetDeviceCaps(dc, RASTERCAPS) +const int +RC_NONE = 0, +RC_BITBLT = 1, +RC_BANDING = 2, +RC_SCALING = 4, +RC_BITMAP64 = 8, +RC_GDI20_OUTPUT = 16, +RC_GDI20_STATE = 32, +RC_SAVEBITMAP = 64, +RC_DI_BITMAP = 128, +RC_PALETTE = 256, +RC_DIBTODEV = 512, +RC_BIGFONT = 1024, +RC_STRETCHBLT = 2048, +RC_FLOODFILL = 4096, +RC_STRETCHDIB = 8192, +RC_OP_DX_OUTPUT = 0x4000, +RC_DEVBITS = 0x8000; + +static + +if (WINVER >= 0x0500) +{ + /* Shading and blending caps */ + const SB_NONE = 0x00000000; + const SB_CONST_ALPHA = 0x00000001; + const SB_PIXEL_ALPHA = 0x00000002; + const SB_PREMULT_ALPHA = 0x00000004; + const SB_GRAD_RECT = 0x00000010; + const SB_GRAD_TRI = 0x00000020; + + /* Color Management caps */ + const CM_NONE = 0x00000000; + const CM_DEVICE_ICM = 0x00000001; + const CM_GAMMA_RAMP = 0x00000002; + const CM_CMYK_COLOR = 0x00000004; +} + +// Return values for GetDeviceCaps(dc, CURVECAPS) +const int +CC_NONE = 0, +CC_CIRCLES = 1, +CC_PIE = 2, +CC_CHORD = 4, +CC_ELLIPSES = 8, +CC_WIDE = 16, +CC_STYLED = 32, +CC_WIDESTYLED = 64, +CC_INTERIORS = 128, +CC_ROUNDRECT = 256; + +// Return values for GetDeviceCaps(dc, LINECAPS) + +const int +LC_NONE = 0, +LC_POLYLINE = 2, +LC_MARKER = 4, +LC_POLYMARKER = 8, +LC_WIDE = 16, +LC_STYLED = 32, +LC_WIDESTYLED = 64, +LC_INTERIORS = 128; + +// Return values for GetDeviceCaps(dc, POLYGONALCAPS) + +const int +PC_NONE = 0, +PC_POLYGON = 1, +PC_RECTANGLE = 2, +PC_WINDPOLYGON = 4, +PC_TRAPEZOID = 4, +PC_SCANLINE = 8, +PC_WIDE = 16, +PC_STYLED = 32, +PC_WIDESTYLED = 64, +PC_INTERIORS = 128, +PC_POLYPOLYGON = 256, +PC_PATHS = 512; + +/* Clipping Capabilities */ +const int CP_NONE = 0, + CP_RECTANGLE = 1, + CP_REGION = 2; + +// Return values for GetDeviceCaps(dc, TEXTCAPS) + +const int +TC_OP_CHARACTER = 1, +TC_OP_STROKE = 2, +TC_CP_STROKE = 4, +TC_CR_90 = 8, +TC_CR_ANY = 16, +TC_SF_X_YINDEP = 32, +TC_SA_DOUBLE = 64, +TC_SA_INTEGER = 128, +TC_SA_CONTIN = 256, +TC_EA_DOUBLE = 512, +TC_IA_ABLE = 1024, +TC_UA_ABLE = 2048, +TC_SO_ABLE = 4096, +TC_RA_ABLE = 8192, +TC_VA_ABLE = 16384, +TC_RESERVED = 32768, +TC_SCROLLBLT = 65536; + +// End GetDeviceCaps +// --------------------- +// GetCharacterPlacement(), and GetFontLanguageInfo() +const DWORD +GCP_DBCS = 1, +GCP_REORDER = 2, +GCP_USEKERNING = 8, +GCP_GLYPHSHAPE = 16, +GCP_LIGATE = 32, +GCP_DIACRITIC = 256, +GCP_KASHIDA = 1024, +GCP_ERROR = 0x8000, +GCP_JUSTIFY = 0x10000, +GCP_CLASSIN = 0x80000, +GCP_MAXEXTENT = 0x100000, +GCP_JUSTIFYIN = 0x200000, +GCP_DISPLAYZWG = 0x400000, +GCP_SYMSWAPOFF = 0x800000, +GCP_NUMERICOVERRIDE = 0x1000000, +GCP_NEUTRALOVERRIDE = 0x2000000, +GCP_NUMERICSLATIN = 0x4000000, +GCP_NUMERICSLOCAL = 0x8000000, + +// Only for GetFontLanguageInfo() +FLI_GLYPHS = 0x40000, +FLI_MASK = 0x103b; + +// GetGlyphOutline() +enum : UINT { + GGO_METRICS = 0, + GGO_BITMAP = 1, + GGO_NATIVE = 2, + GGO_BEZIER = 3, + GGO_GRAY2_BITMAP = 4, + GGO_GRAY4_BITMAP = 5, + GGO_GRAY8_BITMAP = 6, + GGO_GLYPH_INDEX = 128, + GGO_UNHINTED = 256 +} + +enum : int { + GM_COMPATIBLE = 1, + GM_ADVANCED +} +const GM_LAST = GM_ADVANCED; + +enum : int { + MM_TEXT = 1, + MM_LOMETRIC, + MM_HIMETRIC, + MM_LOENGLISH, + MM_HIENGLISH, + MM_TWIPS, + MM_ISOTROPIC, + MM_ANISOTROPIC, +} + +const int +MM_MIN = MM_TEXT, +MM_MAX = MM_ANISOTROPIC, +MM_MAX_FIXEDSCALE = MM_TWIPS; + +const ABSOLUTE = 1; +const RELATIVE = 2; + +enum : BYTE { + PC_RESERVED = 1, + PC_EXPLICIT = 2, + PC_NOCOLLAPSE = 4 +} + +/* FIXME: move to win32.commctrl ? */ + +// ImageList +const COLORREF +CLR_NONE = 0xffffffff, +CLR_INVALID = CLR_NONE, +CLR_DEFAULT = 0xff000000; + +// RASTERIZER_STATUS.wFlags +const short +TT_AVAILABLE = 1, +TT_ENABLED = 2; + +// GetStockObject() +enum : int { + WHITE_BRUSH = 0, + LTGRAY_BRUSH, + GRAY_BRUSH, + DKGRAY_BRUSH, + BLACK_BRUSH, + HOLLOW_BRUSH, // = 5 + NULL_BRUSH = HOLLOW_BRUSH, + WHITE_PEN = 6, + BLACK_PEN, + NULL_PEN, // = 8 + OEM_FIXED_FONT = 10, + ANSI_FIXED_FONT, + ANSI_VAR_FONT, + SYSTEM_FONT, + DEVICE_DEFAULT_FONT, + DEFAULT_PALETTE, + SYSTEM_FIXED_FONT, +} +static + +if (WINVER >= 0x0400) +{ + enum : int { + DEFAULT_GUI_FONT = SYSTEM_FIXED_FONT + 1, + } +} + +static + +if (_WIN32_WINNT >= 0x0500) +{ + enum : int { + DC_BRUSH = DEFAULT_GUI_FONT + 1, + DC_PEN, + } +} + +static + +if (_WIN32_WINNT >= 0x0500) +{ + const STOCK_LAST = DC_PEN; +} +else static + + if (WINVER >= 0x0400) + { + const STOCK_LAST = DEFAULT_GUI_FONT; + } + else + { + const STOCK_LAST = SYSTEM_FIXED_FONT; + } + +// Get/SetSystemPaletteUse() +enum : UINT { + SYSPAL_ERROR = 0, + SYSPAL_STATIC = 1, + SYSPAL_NOSTATIC = 2, + SYSPAL_NOSTATIC256 = 3, +} + +// SetTextAlign() +const UINT +TA_TOP = 0, +TA_CENTER = 6, +TA_BOTTOM = 8, +TA_BASELINE = 24, +TA_LEFT = 0, +TA_RIGHT = 2, +TA_RTLREADING = 256, +TA_NOUPDATECP = 0, +TA_UPDATECP = 1, +TA_MASK = TA_BASELINE + TA_CENTER + TA_UPDATECP + TA_RTLREADING, +VTA_BASELINE = TA_BASELINE, +VTA_CENTER = TA_CENTER, +VTA_LEFT = TA_BOTTOM, +VTA_RIGHT = TA_TOP, +VTA_BOTTOM = TA_RIGHT, +VTA_TOP = TA_LEFT; + +// EMRMODIFYWORLDTRANSFORM.iMode +enum : DWORD { + MWT_IDENTITY = 1, + MWT_LEFTMULTIPLY, + MWT_RIGHTMULTIPLY +} + +const DWORD +MWT_MIN = MWT_IDENTITY, +MWT_MAX = MWT_RIGHTMULTIPLY; + +enum { + TRANSPARENT = 1, + OPAQUE = 2 +} + +// Get/SetStretchMode() +enum : int { + BLACKONWHITE = 1, + WHITEONBLACK = 2, + COLORONCOLOR = 3, + HALFTONE = 4, + + STRETCH_ANDSCANS = 1, + STRETCH_ORSCANS = 2, + STRETCH_DELETESCANS = 3, + STRETCH_HALFTONE = 4, + + MAXSTRETCHBLTMODE = 4 +} + +// TranslateCharsetInfo() +enum : DWORD { + TCI_SRCCHARSET = 1, + TCI_SRCCODEPAGE = 2, + TCI_SRCFONTSIG = 3, + TCI_SRCLOCALE = 0x1000, +} + +// SetICMMode() +enum : int { + ICM_OFF = 1, + ICM_ON = 2, + ICM_QUERY = 3, + ICM_DONE_OUTSIDEDC = 4, +} + +// ---- +// Escape() Spooler Error Codes +enum : int { + SP_NOTREPORTED = 0x4000, + SP_ERROR = -1, + SP_APPABORT = -2, + SP_USERABORT = -3, + SP_OUTOFDISK = -4, + SP_OUTOFMEMORY = -5 +} + +// Escape(), ExtEscape() +// Most of the following are deprecated (Win16 only) +enum : int { + NEWFRAME = 1, + ABORTDOC = 2, + NEXTBAND = 3, + SETCOLORTABLE = 4, + GETCOLORTABLE = 5, + FLUSHOUTPUT = 6, + DRAFTMODE = 7, + QUERYESCSUPPORT = 8, + SETABORTPROC = 9, + STARTDOC = 10, + ENDDOC = 11, + GETPHYSPAGESIZE = 12, + GETPRINTINGOFFSET = 13, + GETSCALINGFACTOR = 14, + MFCOMMENT = 15, + GETPENWIDTH = 16, + SETCOPYCOUNT = 17, + SELECTPAPERSOURCE = 18, + DEVICEDATA = 19, + PASSTHROUGH = 19, + GETTECHNOLOGY = 20, + SETLINECAP = 21, + SETLINEJOIN = 22, + SETMITERLIMIT = 23, + BANDINFO = 24, + DRAWPATTERNRECT = 25, + GETVECTORPENSIZE = 26, + GETVECTORBRUSHSIZE = 27, + ENABLEDUPLEX = 28, + GETSETPAPERBINS = 29, + GETSETPRINTORIENT = 30, + ENUMPAPERBINS = 31, + SETDIBSCALING = 32, + EPSPRINTING = 33, + ENUMPAPERMETRICS = 34, + GETSETPAPERMETRICS = 35, + POSTSCRIPT_DATA = 37, + POSTSCRIPT_IGNORE = 38, + MOUSETRAILS = 39, + GETDEVICEUNITS = 42, + GETEXTENDEDTEXTMETRICS = 256, + GETEXTENTTABLE = 257, + GETPAIRKERNTABLE = 258, + GETTRACKKERNTABLE = 259, + EXTTEXTOUT = 512, + GETFACENAME = 513, + DOWNLOADFACE = 514, + ENABLERELATIVEWIDTHS = 768, + ENABLEPAIRKERNING = 769, + SETKERNTRACK = 770, + SETALLJUSTVALUES = 771, + SETCHARSET = 772, + STRETCHBLT = 2048, + METAFILE_DRIVER = 2049, + GETSETSCREENPARAMS = 3072, + QUERYDIBSUPPORT = 3073, + BEGIN_PATH = 4096, + CLIP_TO_PATH = 4097, + END_PATH = 4098, + EXT_DEVICE_CAPS = 4099, + RESTORE_CTM = 4100, + SAVE_CTM = 4101, + SET_ARC_DIRECTION = 4102, + SET_BACKGROUND_COLOR = 4103, + SET_POLY_MODE = 4104, + SET_SCREEN_ANGLE = 4105, + SET_SPREAD = 4106, + TRANSFORM_CTM = 4107, + SET_CLIP_BOX = 4108, + SET_BOUNDS = 4109, + SET_MIRROR_MODE = 4110, + OPENCHANNEL = 4110, + DOWNLOADHEADER = 4111, + CLOSECHANNEL = 4112, + POSTSCRIPT_PASSTHROUGH = 4115, + ENCAPSULATED_POSTSCRIPT = 4116, + POSTSCRIPT_IDENTIFY = 4117, + POSTSCRIPT_INJECTION = 4118, + CHECKJPEGFORMAT = 4119, + CHECKPNGFORMAT = 4120, + GET_PS_FEATURESETTING = 4121, + SPCLPASSTHROUGH2 = 4568, +} + +enum : int { + PSIDENT_GDICENTRIC = 0, + PSIDENT_PSCENTRIC = 1, +} + +/* + * Header structure for the input buffer to POSTSCRIPT_INJECTION escape + */ +struct PSINJECTDATA +{ + DWORD DataBytes; + WORD InjectionPoint; + WORD PageNumber; +} +alias PSINJECTDATA*PPSINJECTDATA; + +/* Constants for PSINJECTDATA.InjectionPoint field */ +enum { + PSINJECT_BEGINSTREAM = 1, + PSINJECT_PSADOBE = 2, + PSINJECT_PAGESATEND = 3, + PSINJECT_PAGES = 4, + PSINJECT_DOCNEEDEDRES = 5, + PSINJECT_DOCSUPPLIEDRES = 6, + PSINJECT_PAGEORDER = 7, + PSINJECT_ORIENTATION = 8, + PSINJECT_BOUNDINGBOX = 9, + PSINJECT_DOCUMENTPROCESSCOLORS = 10, + PSINJECT_COMMENTS = 11, + PSINJECT_BEGINDEFAULTS = 12, + PSINJECT_ENDDEFAULTS = 13, + PSINJECT_BEGINPROLOG = 14, + PSINJECT_ENDPROLOG = 15, + PSINJECT_BEGINSETUP = 16, + PSINJECT_ENDSETUP = 17, + PSINJECT_TRAILER = 18, + PSINJECT_EOF = 19, + PSINJECT_ENDSTREAM = 20, + PSINJECT_DOCUMENTPROCESSCOLORSATEND = 21, + + PSINJECT_PAGENUMBER = 100, + PSINJECT_BEGINPAGESETUP = 101, + PSINJECT_ENDPAGESETUP = 102, + PSINJECT_PAGETRAILER = 103, + PSINJECT_PLATECOLOR = 104, + PSINJECT_SHOWPAGE = 105, + PSINJECT_PAGEBBOX = 106, + PSINJECT_ENDPAGECOMMENTS = 107, + + PSINJECT_VMSAVE = 200, + PSINJECT_VMRESTORE = 201, +} + +/* Parameter for GET_PS_FEATURESETTING escape */ +enum { + FEATURESETTING_NUP = 0, + FEATURESETTING_OUTPUT = 1, + FEATURESETTING_PSLEVEL = 2, + FEATURESETTING_CUSTPAPER = 3, + FEATURESETTING_MIRROR = 4, + FEATURESETTING_NEGATIVE = 5, + FEATURESETTING_PROTOCOL = 6, +} + +enum { + FEATURESETTING_PRIVATE_BEGIN = 0x1000, + FEATURESETTING_PRIVATE_END = 0x1FFF, +} + +/* Value returned for FEATURESETTING_PROTOCOL */ +const PSPROTOCOL_ASCII = 0; +const PSPROTOCOL_BCP = 1; +const PSPROTOCOL_TBCP = 2; +const PSPROTOCOL_BINARY = 3; + +// ---- + +const WPARAM PR_JOBSTATUS = 0; + +// ??? +const QDI_SETDIBITS = 1; +const QDI_GETDIBITS = 2; +const QDI_DIBTOSCREEN = 4; +const QDI_STRETCHDIB = 8; + +const ASPECT_FILTERING = 1; + +// LOGCOLORSPACE.lcsCSType +enum : LCSCSTYPE { + LCS_CALIBRATED_RGB = 0, + LCS_DEVICE_RGB, + LCS_DEVICE_CMYK +} /* What this for? */ + +// LOGCOLORSPACE.lcsIntent +enum : LCSGAMUTMATCH { + LCS_GM_BUSINESS = 1, + LCS_GM_GRAPHICS = 2, + LCS_GM_IMAGES = 4, + LCS_GM_ABS_COLORIMETRIC = 8, +} + +const DWORD +RASTER_FONTTYPE = 1, +DEVICE_FONTTYPE = 2, +TRUETYPE_FONTTYPE = 4; + +// --- +// DEVMODE struct + +// FIXME: Not needed for D (use .length instead) +const CCHDEVICENAME = 32; +const CCHFORMNAME = 32; + +// DEVMODE.dmSpecVersion +// current version of specification +static + +if (WINVER >= 0x0500 || _WIN32_WINNT >= 0x0400) +{ + const WORD DM_SPECVERSION = 0x0401; +} +else static + + if (WINVER >= 0x0400) + { + const WORD DM_SPECVERSION = 0x0400; + } + else + { + const WORD DM_SPECVERSION = 0x0320; + } + +// DEVMODE.dmOrientation +enum : short { + DMORIENT_PORTRAIT = 1, + DMORIENT_LANDSCAPE = 2 +} + +// DEVMODE.dmPaperSize +enum : short { + DMPAPER_LETTER = 1, + DMPAPER_LETTERSMALL, + DMPAPER_TABLOID, + DMPAPER_LEDGER, + DMPAPER_LEGAL, + DMPAPER_STATEMENT, + DMPAPER_EXECUTIVE, + DMPAPER_A3, + DMPAPER_A4, + DMPAPER_A4SMALL, + DMPAPER_A5, + DMPAPER_B4, + DMPAPER_B5, + DMPAPER_FOLIO, + DMPAPER_QUARTO, + DMPAPER_10X14, + DMPAPER_11X17, + DMPAPER_NOTE, + DMPAPER_ENV_9, + DMPAPER_ENV_10, + DMPAPER_ENV_11, + DMPAPER_ENV_12, + DMPAPER_ENV_14, + DMPAPER_CSHEET, + DMPAPER_DSHEET, + DMPAPER_ESHEET, + DMPAPER_ENV_DL, + DMPAPER_ENV_C5, + DMPAPER_ENV_C3, + DMPAPER_ENV_C4, + DMPAPER_ENV_C6, + DMPAPER_ENV_C65, + DMPAPER_ENV_B4, + DMPAPER_ENV_B5, + DMPAPER_ENV_B6, + DMPAPER_ENV_ITALY, + DMPAPER_ENV_MONARCH, + DMPAPER_ENV_PERSONAL, + DMPAPER_FANFOLD_US, + DMPAPER_FANFOLD_STD_GERMAN, + DMPAPER_FANFOLD_LGL_GERMAN, + DMPAPER_ISO_B4, + DMPAPER_JAPANESE_POSTCARD, + DMPAPER_9X11, + DMPAPER_10X11, + DMPAPER_15X11, + DMPAPER_ENV_INVITE, + DMPAPER_RESERVED_48, + DMPAPER_RESERVED_49, + DMPAPER_LETTER_EXTRA, + DMPAPER_LEGAL_EXTRA, + DMPAPER_TABLOID_EXTRA, + DMPAPER_A4_EXTRA, + DMPAPER_LETTER_TRANSVERSE, + DMPAPER_A4_TRANSVERSE, + DMPAPER_LETTER_EXTRA_TRANSVERSE, + DMPAPER_A_PLUS, + DMPAPER_B_PLUS, + DMPAPER_LETTER_PLUS, + DMPAPER_A4_PLUS, + DMPAPER_A5_TRANSVERSE, + DMPAPER_B5_TRANSVERSE, + DMPAPER_A3_EXTRA, + DMPAPER_A5_EXTRA, + DMPAPER_B5_EXTRA, + DMPAPER_A2, + DMPAPER_A3_TRANSVERSE, + DMPAPER_A3_EXTRA_TRANSVERSE // = 68 +} +static + +if (WINVER >= 0x0500) +{ + enum : short { + DMPAPER_DBL_JAPANESE_POSTCARD = 69, + DMPAPER_A6, + DMPAPER_JENV_KAKU2, + DMPAPER_JENV_KAKU3, + DMPAPER_JENV_CHOU3, + DMPAPER_JENV_CHOU4, + DMPAPER_LETTER_ROTATED, + DMPAPER_A3_ROTATED, + DMPAPER_A4_ROTATED, + DMPAPER_A5_ROTATED, + DMPAPER_B4_JIS_ROTATED, + DMPAPER_B5_JIS_ROTATED, + DMPAPER_JAPANESE_POSTCARD_ROTATED, + DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED, + DMPAPER_A6_ROTATED, + DMPAPER_JENV_KAKU2_ROTATED, + DMPAPER_JENV_KAKU3_ROTATED, + DMPAPER_JENV_CHOU3_ROTATED, + DMPAPER_JENV_CHOU4_ROTATED, + DMPAPER_B6_JIS, + DMPAPER_B6_JIS_ROTATED, + DMPAPER_12X11, + DMPAPER_JENV_YOU4, + DMPAPER_JENV_YOU4_ROTATED, + DMPAPER_P16K, + DMPAPER_P32K, + DMPAPER_P32KBIG, + DMPAPER_PENV_1, + DMPAPER_PENV_2, + DMPAPER_PENV_3, + DMPAPER_PENV_4, + DMPAPER_PENV_5, + DMPAPER_PENV_6, + DMPAPER_PENV_7, + DMPAPER_PENV_8, + DMPAPER_PENV_9, + DMPAPER_PENV_10, + DMPAPER_P16K_ROTATED, + DMPAPER_P32K_ROTATED, + DMPAPER_P32KBIG_ROTATED, + DMPAPER_PENV_1_ROTATED, + DMPAPER_PENV_2_ROTATED, + DMPAPER_PENV_3_ROTATED, + DMPAPER_PENV_4_ROTATED, + DMPAPER_PENV_5_ROTATED, + DMPAPER_PENV_6_ROTATED, + DMPAPER_PENV_7_ROTATED, + DMPAPER_PENV_8_ROTATED, + DMPAPER_PENV_9_ROTATED, + DMPAPER_PENV_10_ROTATED // 118 + } +} + +const short DMPAPER_FIRST = DMPAPER_LETTER; + +static + +if (WINVER >= 0x0500) + const short DMPAPER_LAST = DMPAPER_PENV_10_ROTATED; +else + const short DMPAPER_LAST = DMPAPER_A3_EXTRA_TRANSVERSE; + +const short DMPAPER_USER = 256; + +// DEVMODE.dmDefaultSource +enum : short { + DMBIN_ONLYONE = 1, + DMBIN_UPPER = 1, + DMBIN_LOWER, + DMBIN_MIDDLE, + DMBIN_MANUAL, + DMBIN_ENVELOPE, + DMBIN_ENVMANUAL, + DMBIN_AUTO, + DMBIN_TRACTOR, + DMBIN_SMALLFMT, + DMBIN_LARGEFMT, + DMBIN_LARGECAPACITY, // = 11 + DMBIN_CASSETTE = 14, + DMBIN_FORMSOURCE, +} +short +DMBIN_FIRST = DMBIN_UPPER, +DMBIN_LAST = DMBIN_FORMSOURCE, +DMBIN_USER = 256; + +// DEVMODE.dmPrintQuality +enum : short { + DMRES_DRAFT = -1, + DMRES_LOW = -2, + DMRES_MEDIUM = -3, + DMRES_HIGH = -4 +} + +// DEVMODE.dmColor +enum : short { + DMCOLOR_MONOCHROME = 1, + DMCOLOR_COLOR = 2 +} + +// DEVMODE.dmDuplex +enum : short { + DMDUP_SIMPLEX = 1, + DMDUP_VERTICAL = 2, + DMDUP_HORIZONTAL = 3 +} + +// DEVMODE.dmTTOption +enum : short { + DMTT_BITMAP = 1, + DMTT_DOWNLOAD, + DMTT_SUBDEV, + DMTT_DOWNLOAD_OUTLINE +} + +// DEVMODE.dmCollate +enum : short { + DMCOLLATE_FALSE = 0, + DMCOLLATE_TRUE +} + +static + +if (WINVER >= 0x0501) +{ + /* DEVMODE dmDisplayOrientation specifiations */ + enum : short { + DMDO_DEFAULT = 0, + DMDO_90 = 1, + DMDO_180 = 2, + DMDO_270 = 3, + } + + /* DEVMODE dmDisplayFixedOutput specifiations */ + enum : short { + DMDFO_DEFAULT = 0, + DMDFO_STRETCH = 1, + DMDFO_CENTER = 2, + } +} + +/* FIXME: this flags are deprecated ? */ + +// DEVMODE.dmDisplayFlags +const DWORD +DM_GRAYSCALE = 1, +DM_INTERLACED = 2; + +const DWORD +DMDISPLAYFLAGS_TEXTMODE = 0x00000004; + +/* dmNup , multiple logical page per physical page options */ +const DWORD +DMNUP_SYSTEM = 1, +DMNUP_ONEUP = 2; + +// DEVMODE.dmFields +const DWORD +DM_ORIENTATION = 0x00000001, +DM_PAPERSIZE = 0x00000002, +DM_PAPERLENGTH = 0x00000004, +DM_PAPERWIDTH = 0x00000008, +DM_SCALE = 0x00000010; +static + +if (WINVER >= 0x0500) +{ + const DWORD + DM_POSITION = 0x00000020, + DM_NUP = 0x00000040; +} + +static + +if (WINVER >= 0x0501) +{ + const DWORD + DM_DISPLAYORIENTATION = 0x00000080; +} + +const DWORD +DM_COPIES = 0x00000100, +DM_DEFAULTSOURCE = 0x00000200, +DM_PRINTQUALITY = 0x00000400, +DM_COLOR = 0x00000800, +DM_DUPLEX = 0x00001000, +DM_YRESOLUTION = 0x00002000, +DM_TTOPTION = 0x00004000, +DM_COLLATE = 0x00008000, +DM_FORMNAME = 0x00010000, +DM_LOGPIXELS = 0x00020000, +DM_BITSPERPEL = 0x00040000, +DM_PELSWIDTH = 0x00080000, +DM_PELSHEIGHT = 0x00100000, +DM_DISPLAYFLAGS = 0x00200000, +DM_DISPLAYFREQUENCY = 0x00400000; +static + +if (WINVER >= 0x0400) +{ + const DWORD + DM_ICMMETHOD = 0x00800000, + DM_ICMINTENT = 0x01000000, + DM_MEDIATYPE = 0x02000000, + DM_DITHERTYPE = 0x04000000, + DM_PANNINGWIDTH = 0x08000000, + DM_PANNINGHEIGHT = 0x10000000; +} + +static + +if (WINVER >= 0x0501) +{ + const DWORD + DM_DISPLAYFIXEDOUTPUT = 0x20000000; +} + +// DEVMODE.dmICMMethod +enum : DWORD { + DMICMMETHOD_NONE = 1, + DMICMMETHOD_SYSTEM = 2, + DMICMMETHOD_DRIVER = 3, + DMICMMETHOD_DEVICE = 4, + DMICMMETHOD_USER = 256 +} + +// DEVMODE.dmICMIntent +enum : DWORD { + DMICM_SATURATE = 1, + DMICM_CONTRAST = 2, + DMICM_COLORIMETRIC = 3, + DMICM_ABS_COLORIMETRIC = 4, + DMICM_USER = 256 +} + +// DEVMODE.dmMediaType +enum : DWORD { + DMMEDIA_STANDARD = 1, + DMMEDIA_TRANSPARENCY = 2, + DMMEDIA_GLOSSY = 3, + DMMEDIA_USER = 256 +} + +// DEVMODE.dmDitherType +enum : DWORD { + DMDITHER_NONE = 1, + DMDITHER_COARSE, + DMDITHER_FINE, + DMDITHER_LINEART, + DMDITHER_ERRORDIFFUSION, + DMDITHER_RESERVED6, + DMDITHER_RESERVED7, + DMDITHER_RESERVED8, + DMDITHER_RESERVED9, + DMDITHER_GRAYSCALE, + DMDITHER_USER = 256 +} + +// ---- +// DocumentProperties() +const DWORD +DM_UPDATE = 1, +DM_COPY = 2, +DM_PROMPT = 4, +DM_MODIFY = 8, +DM_IN_BUFFER = DM_MODIFY, +DM_IN_PROMPT = DM_PROMPT, +DM_OUT_BUFFER = DM_COPY, +DM_OUT_DEFAULT = DM_UPDATE; + +// --- + +const GDI_ERROR = 0xFFFFFFFF; +const HGDI_ERROR= cast(HANDLE) GDI_ERROR; + +// TEXTMETRIC.tmPitchAndFamily +const BYTE +TMPF_FIXED_PITCH = 1, +TMPF_VECTOR = 2, +TMPF_TRUETYPE = 4, +TMPF_DEVICE = 8; + +// NEWTEXTMETRIC.ntmFlags +const DWORD +NTM_ITALIC = 0x00000001, +NTM_BOLD = 0x00000020, +NTM_REGULAR = 0x00000040, +NTM_NONNEGATIVE_AC = 0x00010000, +NTM_PS_OPENTYPE = 0x00020000, +NTM_TT_OPENTYPE = 0x00040000, +NTM_MULTIPLEMASTER = 0x00080000, +NTM_TYPE1 = 0x00100000, +NTM_DSIG = 0x00200000; + +// --- +const DWORD TT_POLYGON_TYPE = 24; + +// TTPOLYCURVE +enum : WORD { + TT_PRIM_LINE = 1, + TT_PRIM_QSPLINE = 2, + TT_PRIM_CSPLINE = 3, +} + +// --- +const FONTMAPPER_MAX = 10; +const ENHMETA_STOCK_OBJECT = 0x80000000; +const WGL_FONT_LINES = 0; +const WGL_FONT_POLYGONS = 1; + +// --- +// LAYERPLANEDESCRIPTOR.dwFlags +const DWORD +LPD_DOUBLEBUFFER = 1, +LPD_STEREO = 2, +LPD_SUPPORT_GDI = 16, +LPD_SUPPORT_OPENGL = 32, +LPD_SHARE_DEPTH = 64, +LPD_SHARE_STENCIL = 128, +LPD_SHARE_ACCUM = 256, +LPD_SWAP_EXCHANGE = 512, +LPD_SWAP_COPY = 1024, +LPD_TRANSPARENT = 4096; + +// LAYERPLANEDESCRIPTOR.iPixelType +enum : BYTE { + LPD_TYPE_RGBA = 0, + LPD_TYPE_COLORINDEX = 1 +} + +// --- + +// wglSwapLayerBuffers() +const UINT +WGL_SWAP_MAIN_PLANE = 1, +WGL_SWAP_OVERLAY1 = 2, +WGL_SWAP_OVERLAY2 = 4, +WGL_SWAP_OVERLAY3 = 8, +WGL_SWAP_OVERLAY4 = 16, +WGL_SWAP_OVERLAY5 = 32, +WGL_SWAP_OVERLAY6 = 64, +WGL_SWAP_OVERLAY7 = 128, +WGL_SWAP_OVERLAY8 = 256, +WGL_SWAP_OVERLAY9 = 512, +WGL_SWAP_OVERLAY10 = 1024, +WGL_SWAP_OVERLAY11 = 2048, +WGL_SWAP_OVERLAY12 = 4096, +WGL_SWAP_OVERLAY13 = 8192, +WGL_SWAP_OVERLAY14 = 16384, +WGL_SWAP_OVERLAY15 = 32768, +WGL_SWAP_UNDERLAY1 = 65536, +WGL_SWAP_UNDERLAY2 = 0x20000, +WGL_SWAP_UNDERLAY3 = 0x40000, +WGL_SWAP_UNDERLAY4 = 0x80000, +WGL_SWAP_UNDERLAY5 = 0x100000, +WGL_SWAP_UNDERLAY6 = 0x200000, +WGL_SWAP_UNDERLAY7 = 0x400000, +WGL_SWAP_UNDERLAY8 = 0x800000, +WGL_SWAP_UNDERLAY9 = 0x1000000, +WGL_SWAP_UNDERLAY10 = 0x2000000, +WGL_SWAP_UNDERLAY11 = 0x4000000, +WGL_SWAP_UNDERLAY12 = 0x8000000, +WGL_SWAP_UNDERLAY13 = 0x10000000, +WGL_SWAP_UNDERLAY14 = 0x20000000, +WGL_SWAP_UNDERLAY15 = 0x40000000; + +const AC_SRC_OVER = 0x00; +const AC_SRC_ALPHA = 0x01; + +// ??? +const AC_SRC_NO_PREMULT_ALPHA = 0x01; +const AC_SRC_NO_ALPHA = 0x02; +const AC_DST_NO_PREMULT_ALPHA = 0x10; +const AC_DST_NO_ALPHA = 0x20; + +const LAYOUT_RTL = 1; +const LAYOUT_BTT = 2; +const LAYOUT_VBH = 4; +const LAYOUT_BITMAPORIENTATIONPRESERVED = 8; + +static + +if (WINVER > 0x0400) +{ + const CS_ENABLE = 0x00000001; + const CS_DISABLE = 0x00000002; + const CS_DELETE_TRANSFORM = 0x00000003; +} + +static + +if (WINVER > 0x0500) +{ + const GRADIENT_FILL_RECT_H =0x00; + const GRADIENT_FILL_RECT_V =0x01; + const GRADIENT_FILL_TRIANGLE =0x02; + const GRADIENT_FILL_OP_FLAG =0xff; + const COLORMATCHTOTARGET_EMBEDED=0x00000001; + const CREATECOLORSPACE_EMBEDED =0x00000001; + const SETICMPROFILE_EMBEDED =0x00000001; +} + +// DISPLAY_DEVICE.StateFlags +const DWORD +DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = 0x00000001, +DISPLAY_DEVICE_MULTI_DRIVER = 0x00000002, +DISPLAY_DEVICE_PRIMARY_DEVICE = 0x00000004, +DISPLAY_DEVICE_MIRRORING_DRIVER = 0x00000008, +DISPLAY_DEVICE_VGA_COMPATIBLE = 0x00000010, +DISPLAY_DEVICE_REMOVABLE = 0x00000020, +DISPLAY_DEVICE_DISCONNECT = 0x02000000, +DISPLAY_DEVICE_REMOTE = 0x04000000, +DISPLAY_DEVICE_MODESPRUNED = 0x08000000; + +/* Child device state */ +const DWORD +DISPLAY_DEVICE_ACTIVE = 0x00000001, +DISPLAY_DEVICE_ATTACHED = 0x00000002; + +static + +if (_WIN32_WINNT >= 0x0500) +{ + const GGI_MARK_NONEXISTING_GLYPHS = 1; +} + +// ---------- +// STRUCTS +// ---------- + +struct ABC +{ + int abcA; + UINT abcB; + int abcC; +} +alias ABC*PABC, NPABC, LPABC; + +struct ABCFLOAT +{ + FLOAT abcfA; + FLOAT abcfB; + FLOAT abcfC; +} +alias ABCFLOAT*PABCFLOAT, NPABCFLOAT, LPABCFLOAT; + +struct BITMAP +{ + LONG bmType; + LONG bmWidth; + LONG bmHeight; + LONG bmWidthBytes; + WORD bmPlanes; + WORD bmBitsPixel; + LPVOID bmBits; +} +alias BITMAP*PBITMAP, NPBITMAP, LPBITMAP; + +struct BITMAPCOREHEADER +{ + DWORD bcSize; + WORD bcWidth; + WORD bcHeight; + WORD bcPlanes; + WORD bcBitCount; +} +alias BITMAPCOREHEADER*PBITMAPCOREHEADER, LPBITMAPCOREHEADER; + +align (1) : +struct RGBTRIPLE +{ + BYTE rgbtBlue; + BYTE rgbtGreen; + BYTE rgbtRed; +} +alias RGBTRIPLE*LPRGBTRIPLE; + +align (2) : +struct BITMAPFILEHEADER +{ + WORD bfType; + DWORD bfSize; + WORD bfReserved1; + WORD bfReserved2; + DWORD bfOffBits; +} +alias BITMAPFILEHEADER*LPBITMAPFILEHEADER, PBITMAPFILEHEADER; + +align : + +struct BITMAPCOREINFO +{ + BITMAPCOREHEADER bmciHeader; + RGBTRIPLE[1] bmciColors; +} +alias BITMAPCOREINFO*LPBITMAPCOREINFO, PBITMAPCOREINFO; + +struct BITMAPINFOHEADER +{ + DWORD biSize; + LONG biWidth; + LONG biHeight; + WORD biPlanes; + WORD biBitCount; + DWORD biCompression; + DWORD biSizeImage; + LONG biXPelsPerMeter; + LONG biYPelsPerMeter; + DWORD biClrUsed; + DWORD biClrImportant; +} + +alias BITMAPINFOHEADER*LPBITMAPINFOHEADER, PBITMAPINFOHEADER; + +struct RGBQUAD +{ + BYTE rgbBlue; + BYTE rgbGreen; + BYTE rgbRed; + BYTE rgbReserved; +}; +alias RGBQUAD*LPRGBQUAD; + +struct BITMAPINFO +{ + BITMAPINFOHEADER bmiHeader; + RGBQUAD[1] bmiColors; +}; +alias BITMAPINFO*PBITMAPINFO, LPBITMAPINFO; + +alias int FXPT16DOT16; +alias int*LPFXPT16DOT16; +alias int FXPT2DOT30; +alias int*LPFXPT2DOT30; + +struct CIEXYZ +{ + FXPT2DOT30 ciexyzX; + FXPT2DOT30 ciexyzY; + FXPT2DOT30 ciexyzZ; +} +alias CIEXYZ*LPCIEXYZ; + +struct CIEXYZTRIPLE +{ + CIEXYZ ciexyzRed; + CIEXYZ ciexyzGreen; + CIEXYZ ciexyzBlue; +} +alias CIEXYZTRIPLE*LPCIEXYZTRIPLE; + +struct BITMAPV4HEADER +{ + DWORD bV4Size; + LONG bV4Width; + LONG bV4Height; + WORD bV4Planes; + WORD bV4BitCount; + DWORD bV4V4Compression; + DWORD bV4SizeImage; + LONG bV4XPelsPerMeter; + LONG bV4YPelsPerMeter; + DWORD bV4ClrUsed; + DWORD bV4ClrImportant; + DWORD bV4RedMask; + DWORD bV4GreenMask; + DWORD bV4BlueMask; + DWORD bV4AlphaMask; + DWORD bV4CSType; + CIEXYZTRIPLE bV4Endpoints; + DWORD bV4GammaRed; + DWORD bV4GammaGreen; + DWORD bV4GammaBlue; +} +alias BITMAPV4HEADER*LPBITMAPV4HEADER, PBITMAPV4HEADER; + +struct BITMAPV5HEADER +{ + DWORD bV5Size; + LONG bV5Width; + LONG bV5Height; + WORD bV5Planes; + WORD bV5BitCount; + DWORD bV5Compression; + DWORD bV5SizeImage; + LONG bV5XPelsPerMeter; + LONG bV5YPelsPerMeter; + DWORD bV5ClrUsed; + DWORD bV5ClrImportant; + DWORD bV5RedMask; + DWORD bV5GreenMask; + DWORD bV5BlueMask; + DWORD bV5AlphaMask; + DWORD bV5CSType; + CIEXYZTRIPLE bV5Endpoints; + DWORD bV5GammaRed; + DWORD bV5GammaGreen; + DWORD bV5GammaBlue; + DWORD bV5Intent; + DWORD bV5ProfileData; + DWORD bV5ProfileSize; + DWORD bV5Reserved; +} +alias BITMAPV5HEADER*LPBITMAPV5HEADER, PBITMAPV5HEADER; + +struct FONTSIGNATURE +{ + DWORD[4] fsUsb; + DWORD[2] fsCsb; +} +alias FONTSIGNATURE*PFONTSIGNATURE, LPFONTSIGNATURE; + +struct CHARSETINFO +{ + UINT ciCharset; + UINT ciACP; + FONTSIGNATURE fs; +} +alias CHARSETINFO*PCHARSETINFO, NPCHARSETINFO, LPCHARSETINFO; + +struct COLORADJUSTMENT +{ + WORD caSize; + WORD caFlags; + WORD caIlluminantIndex; + WORD caRedGamma; + WORD caGreenGamma; + WORD caBlueGamma; + WORD caReferenceBlack; + WORD caReferenceWhite; + SHORT caContrast; + SHORT caBrightness; + SHORT caColorfulness; + SHORT caRedGreenTint; +} +alias COLORADJUSTMENT*PCOLORADJUSTMENT, LPCOLORADJUSTMENT; + +struct DEVMODEA +{ + BYTE[CCHDEVICENAME] dmDeviceName; + WORD dmSpecVersion; + WORD dmDriverVersion; + WORD dmSize; + WORD dmDriverExtra; + DWORD dmFields; + union { + struct + { + short dmOrientation; + short dmPaperSize; + short dmPaperLength; + short dmPaperWidth; + short dmScale; + short dmCopies; + short dmDefaultSource; + short dmPrintQuality; + } + POINTL dmPosition; + DWORD dmDisplayOrientation; + DWORD dmDisplayFixedOutput; + } + short dmColor; + short dmDuplex; + short dmYResolution; + short dmTTOption; + short dmCollate; + BYTE[CCHFORMNAME] dmFormName; + WORD dmLogPixels; + DWORD dmBitsPerPel; + DWORD dmPelsWidth; + DWORD dmPelsHeight; + union { + DWORD dmDisplayFlags; + DWORD dmNup; + } + DWORD dmDisplayFrequency; + static + + if (WINVER >= 0x0400) + { + DWORD dmICMMethod; + DWORD dmICMIntent; + DWORD dmMediaType; + DWORD dmDitherType; + DWORD dmReserved1; + DWORD dmReserved2; + static + + if ((WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)) + { + DWORD dmPanningWidth; + DWORD dmPanningHeight; + } + } +} +alias DEVMODEA*PDEVMODEA, NPDEVMODEA, LPDEVMODEA; + +struct DEVMODEW +{ + WCHAR[CCHDEVICENAME] dmDeviceName; + WORD dmSpecVersion; + WORD dmDriverVersion; + WORD dmSize; + WORD dmDriverExtra; + DWORD dmFields; + union { + struct + { + short dmOrientation; + short dmPaperSize; + short dmPaperLength; + short dmPaperWidth; + short dmScale; + short dmCopies; + short dmDefaultSource; + short dmPrintQuality; + } + POINTL dmPosition; + DWORD dmDisplayOrientation; + DWORD dmDisplayFixedOutput; + } + + short dmColor; + short dmDuplex; + short dmYResolution; + short dmTTOption; + short dmCollate; + WCHAR[CCHFORMNAME] dmFormName; + WORD dmLogPixels; + DWORD dmBitsPerPel; + DWORD dmPelsWidth; + DWORD dmPelsHeight; + union { + DWORD dmDisplayFlags; + DWORD dmNup; + } + DWORD dmDisplayFrequency; + static + + if (WINVER >= 0x0400) + { + DWORD dmICMMethod; + DWORD dmICMIntent; + DWORD dmMediaType; + DWORD dmDitherType; + DWORD dmReserved1; + DWORD dmReserved2; + static + + if ((WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)) + { + DWORD dmPanningWidth; + DWORD dmPanningHeight; + } + } +} +alias DEVMODEW*PDEVMODEW, NPDEVMODEW, LPDEVMODEW; + +/* + * Information about output options + */ +struct PSFEATURE_OUTPUT +{ + BOOL bPageIndependent; + BOOL bSetPageDevice; +} +alias PSFEATURE_OUTPUT*PPSFEATURE_OUTPUT; + +/* + * Information about custom paper size + */ +struct PSFEATURE_CUSTPAPER +{ + LONG lOrientation; + LONG lWidth; + LONG lHeight; + LONG lWidthOffset; + LONG lHeightOffset; +} +alias PSFEATURE_CUSTPAPER*PPSFEATURE_CUSTPAPER; + +struct DIBSECTION +{ + BITMAP dsBm; + BITMAPINFOHEADER dsBmih; + DWORD[3] dsBitfields; + HANDLE dshSection; + DWORD dsOffset; +} +alias DIBSECTION*PDIBSECTION; + +struct DOCINFOA +{ + int cbSize = DOCINFOA.sizeof; + LPCSTR lpszDocName; + LPCSTR lpszOutput; + LPCSTR lpszDatatype; + DWORD fwType; +} +alias DOCINFOA*LPDOCINFOA; + +struct DOCINFOW +{ + int cbSize = DOCINFOW.sizeof; + LPCWSTR lpszDocName; + LPCWSTR lpszOutput; + LPCWSTR lpszDatatype; + DWORD fwType; +} +alias DOCINFOW*LPDOCINFOW; + +struct PANOSE +{ + BYTE bFamilyType; + BYTE bSerifStyle; + BYTE bWeight; + BYTE bProportion; + BYTE bContrast; + BYTE bStrokeVariation; + BYTE bArmStyle; + BYTE bLetterform; + BYTE bMidline; + BYTE bXHeight; +} +alias PANOSE*LPPANOSE; + +struct LOGFONTA +{ + LONG lfHeight; + LONG lfWidth; + LONG lfEscapement; + LONG lfOrientation; + LONG lfWeight; + BYTE lfItalic; + BYTE lfUnderline; + BYTE lfStrikeOut; + BYTE lfCharSet; + BYTE lfOutPrecision; + BYTE lfClipPrecision; + BYTE lfQuality; + BYTE lfPitchAndFamily; + CHAR[LF_FACESIZE] lfFaceName; +} +alias LOGFONTA*PLOGFONTA, NPLOGFONTA, LPLOGFONTA; + +struct LOGFONTW +{ + LONG lfHeight; + LONG lfWidth; + LONG lfEscapement; + LONG lfOrientation; + LONG lfWeight; + BYTE lfItalic; + BYTE lfUnderline; + BYTE lfStrikeOut; + BYTE lfCharSet; + BYTE lfOutPrecision; + BYTE lfClipPrecision; + BYTE lfQuality; + BYTE lfPitchAndFamily; + WCHAR[LF_FACESIZE] lfFaceName; +} +alias LOGFONTW*PLOGFONTW, NPLOGFONTW, LPLOGFONTW; + +struct EXTLOGFONTA +{ + LOGFONTA elfLogFont; + BYTE[LF_FULLFACESIZE] elfFullName; + BYTE[LF_FACESIZE] elfStyle; + DWORD elfVersion; + DWORD elfStyleSize; + DWORD elfMatch; + DWORD elfReserved; + BYTE[ELF_VENDOR_SIZE] elfVendorId; + DWORD elfCulture; + PANOSE elfPanose; +} +alias EXTLOGFONTA*PEXTLOGFONTA, NPEXTLOGFONTA, LPEXTLOGFONTA; + +struct EXTLOGFONTW +{ + LOGFONTW elfLogFont; + WCHAR[LF_FULLFACESIZE] elfFullName; + WCHAR[LF_FACESIZE] elfStyle; + DWORD elfVersion; + DWORD elfStyleSize; + DWORD elfMatch; + DWORD elfReserved; + BYTE[ELF_VENDOR_SIZE] elfVendorId; + DWORD elfCulture; + PANOSE elfPanose; +} +alias EXTLOGFONTW*PEXTLOGFONTW, NPEXTLOGFONTW, LPEXTLOGFONTW; + +struct LOGPEN +{ + UINT lopnStyle; + POINT lopnWidth; + COLORREF lopnColor; +} +alias LOGPEN*PLOGPEN, NPLOGPEN, LPLOGPEN; + +// ---------------------- EMR ------------ + +struct EMR +{ + DWORD iType; + DWORD nSize; +} +alias EMR*PEMR; + +struct EMRANGLEARC +{ + EMR emr; + POINTL ptlCenter; + DWORD nRadius; + FLOAT eStartAngle; + FLOAT eSweepAngle; +} +alias EMRANGLEARC*PEMRANGLEARC; + +struct EMRARC +{ + EMR emr; + RECTL rclBox; + POINTL ptlStart; + POINTL ptlEnd; +} +alias EMRARC*PEMRARC; +alias EMRARC EMRARCTO; +alias EMRARCTO*PEMRARCTO; +alias EMRARC EMRCHORD; +alias EMRCHORD*PEMRCHORD; +alias EMRARC EMRPIE; +alias EMRPIE*PEMRPIE; + +struct XFORM +{ + FLOAT eM11; + FLOAT eM12; + FLOAT eM21; + FLOAT eM22; + FLOAT eDx; + FLOAT eDy; +} +alias XFORM*PXFORM, LPXFORM; + +struct EMRBITBLT +{ + EMR emr; + RECTL rclBounds; + LONG xDest; + LONG yDest; + LONG cxDest; + LONG cyDest; + DWORD dwRop; + LONG xSrc; + LONG ySrc; + XFORM xformSrc; + COLORREF crBkColorSrc; + DWORD iUsageSrc; + DWORD offBmiSrc; + DWORD cbBmiSrc; + DWORD offBitsSrc; + DWORD cbBitsSrc; +} +alias EMRBITBLT*PEMRBITBLT; + +struct LOGBRUSH +{ + UINT lbStyle; + COLORREF lbColor; + LONG lbHatch; +} +alias LOGBRUSH PATTERN; +alias LOGBRUSH*PLOGBRUSH, NPLOGBRUSH, LPLOGBRUSH; +alias PATTERN *PPATTERN, NPPATTERN, LPPATTERN; + +struct LOGBRUSH32 +{ + UINT lbStyle; + COLORREF lbColor; + ULONG lbHatch; +} +alias LOGBRUSH32*PLOGBRUSH32, NPLOGBRUSH32, LPLOGBRUSH32; + +struct EMRCREATEBRUSHINDIRECT +{ + EMR emr; + DWORD ihBrush; + LOGBRUSH32 lb; +} +alias EMRCREATEBRUSHINDIRECT*PEMRCREATEBRUSHINDIRECT; + +alias LONG LCSCSTYPE, LCSGAMUTMATCH; + +struct LOGCOLORSPACEA +{ + DWORD lcsSignature; + DWORD lcsVersion; + DWORD lcsSize; + LCSCSTYPE lcsCSType; + LCSGAMUTMATCH lcsIntent; + CIEXYZTRIPLE lcsEndpoints; + DWORD lcsGammaRed; + DWORD lcsGammaGreen; + DWORD lcsGammaBlue; + CHAR[MAX_PATH] lcsFilename; +} +alias LOGCOLORSPACEA*LPLOGCOLORSPACEA; + +struct LOGCOLORSPACEW +{ + DWORD lcsSignature; + DWORD lcsVersion; + DWORD lcsSize; + LCSCSTYPE lcsCSType; + LCSGAMUTMATCH lcsIntent; + CIEXYZTRIPLE lcsEndpoints; + DWORD lcsGammaRed; + DWORD lcsGammaGreen; + DWORD lcsGammaBlue; + WCHAR[MAX_PATH] lcsFilename; +} +alias LOGCOLORSPACEW*LPLOGCOLORSPACEW; + +alias USHORT COLOR16; +struct TRIVERTEX +{ + LONG x; + LONG y; + COLOR16 Red; + COLOR16 Green; + COLOR16 Blue; + COLOR16 Alpha; +} +alias TRIVERTEX*PTRIVERTEX, LPTRIVERTEX; + +static + +if (WINVER >= 0x0400) +{ + struct EMRGLSRECORD + { + EMR emr; + DWORD cbData; + BYTE[1] Data; + } + alias EMRGLSRECORD*PEMRGLSRECORD; + + struct EMRGLSBOUNDEDRECORD + { + EMR emr; + RECTL rclBounds; + DWORD cbData; + BYTE[1] Data; + } + alias EMRGLSBOUNDEDRECORD*PEMRGLSBOUNDEDRECORD; + + struct EMRPIXELFORMAT + { + EMR emr; + PIXELFORMATDESCRIPTOR pfd; + } + alias EMRPIXELFORMAT*PEMRPIXELFORMAT; + + struct EMRCREATECOLORSPACE + { + EMR emr; + DWORD ihCS; + LOGCOLORSPACE lcs; + } + alias EMRCREATECOLORSPACE*PEMRCREATECOLORSPACE; + + struct EMRSETCOLORSPACE + { + EMR emr; + DWORD ihCS; + } + alias EMRSETCOLORSPACE*PEMRSETCOLORSPACE; + alias EMRSETCOLORSPACE EMRSELECTCOLORSPACE; + alias EMRSELECTCOLORSPACE*PEMRSELECTCOLORSPACE; + alias EMRSETCOLORSPACE EMRDELETECOLORSPACE; + alias EMRDELETECOLORSPACE*PEMRDELETECOLORSPACE; +} + +static + +if (WINVER >= 0x0500) +{ + struct EMREXTESCAPE + { + EMR emr; + INT iEscape; + INT cbEscData; + BYTE[1] EscData; + } + alias EMREXTESCAPE*PEMREXTESCAPE; + alias EMREXTESCAPE EMRDRAWESCAPE; + alias EMRDRAWESCAPE*PEMRDRAWESCAPE; + + struct EMRNAMEDESCAPE + { + EMR emr; + INT iEscape; + INT cbDriver; + INT cbEscData; + BYTE[1] EscData; + } + alias EMRNAMEDESCAPE*PEMRNAMEDESCAPE; + + struct EMRSETICMPROFILE + { + EMR emr; + DWORD dwFlags; + DWORD cbName; + DWORD cbData; + BYTE[1] Data; + } + alias EMRSETICMPROFILE*PEMRSETICMPROFILE; + alias EMRSETICMPROFILE EMRSETICMPROFILEA; + alias EMRSETICMPROFILEA*PEMRSETICMPROFILEA; + alias EMRSETICMPROFILE EMRSETICMPROFILEW; + alias EMRSETICMPROFILEW*PEMRSETICMPROFILEW; + + struct EMRCREATECOLORSPACEW + { + EMR emr; + DWORD ihCS; + LOGCOLORSPACEW lcs; + DWORD dwFlags; + DWORD cbData; + BYTE[1] Data; + } + alias EMRCREATECOLORSPACEW*PEMRCREATECOLORSPACEW; + + struct EMRCOLORMATCHTOTARGET + { + EMR emr; + DWORD dwAction; + DWORD dwFlags; + DWORD cbName; + DWORD cbData; + BYTE[1] Data; + } + alias EMRCOLORMATCHTOTARGET*PEMRCOLORMATCHTOTARGET; + + struct EMRCOLORCORRECTPALETTE + { + EMR emr; + DWORD ihPalette; + DWORD nFirstEntry; + DWORD nPalEntries; + DWORD nReserved; + } + alias EMRCOLORCORRECTPALETTE*PEMRCOLORCORRECTPALETTE; + + struct EMRALPHABLEND + { + EMR emr; + RECTL rclBounds; + LONG xDest; + LONG yDest; + LONG cxDest; + LONG cyDest; + DWORD dwRop; + LONG xSrc; + LONG ySrc; + XFORM xformSrc; + COLORREF crBkColorSrc; + DWORD iUsageSrc; + DWORD offBmiSrc; + DWORD cbBmiSrc; + DWORD offBitsSrc; + DWORD cbBitsSrc; + LONG cxSrc; + LONG cySrc; + } + alias EMRALPHABLEND*PEMRALPHABLEND; + + struct EMRGRADIENTFILL + { + EMR emr; + RECTL rclBounds; + DWORD nVer; + DWORD nTri; + ULONG ulMode; + TRIVERTEX[1] Ver; + } + alias EMRGRADIENTFILL*PEMRGRADIENTFILL; + + struct EMRTRANSPARENTBLT + { + EMR emr; + RECTL rclBounds; + LONG xDest; + LONG yDest; + LONG cxDest; + LONG cyDest; + DWORD dwRop; + LONG xSrc; + LONG ySrc; + XFORM xformSrc; + COLORREF crBkColorSrc; + DWORD iUsageSrc; + DWORD offBmiSrc; + DWORD cbBmiSrc; + DWORD offBitsSrc; + DWORD cbBitsSrc; + LONG cxSrc; + LONG cySrc; + } + alias EMRTRANSPARENTBLT*PEMRTRANSPARENTBLT; +} + +struct EMRCREATEDIBPATTERNBRUSHPT +{ + EMR emr; + DWORD ihBrush; + DWORD iUsage; + DWORD offBmi; + DWORD cbBmi; + DWORD offBits; + DWORD cbBits; +} +alias EMRCREATEDIBPATTERNBRUSHPT*PEMRCREATEDIBPATTERNBRUSHPT; + +struct EMRCREATEMONOBRUSH +{ + EMR emr; + DWORD ihBrush; + DWORD iUsage; + DWORD offBmi; + DWORD cbBmi; + DWORD offBits; + DWORD cbBits; +} +alias EMRCREATEMONOBRUSH*PEMRCREATEMONOBRUSH; + +struct PALETTEENTRY +{ + BYTE peRed; + BYTE peGreen; + BYTE peBlue; + BYTE peFlags; +} +alias PALETTEENTRY*PPALETTEENTRY, LPPALETTEENTRY; + +struct LOGPALETTE +{ + WORD palVersion; + WORD palNumEntries; + PALETTEENTRY[1] palPalEntry; +} +alias LOGPALETTE*PLOGPALETTE, NPLOGPALETTE, LPLOGPALETTE; + +struct EMRCREATEPALETTE +{ + EMR emr; + DWORD ihPal; + LOGPALETTE lgpl; +} +alias EMRCREATEPALETTE*PEMRCREATEPALETTE; + +struct EMRCREATEPEN +{ + EMR emr; + DWORD ihPen; + LOGPEN lopn; +} +alias EMRCREATEPEN*PEMRCREATEPEN; + +struct EMRELLIPSE +{ + EMR emr; + RECTL rclBox; +} +alias EMRELLIPSE*PEMRELLIPSE; + +alias EMRELLIPSE EMRRECTANGLE; +alias EMRRECTANGLE*PEMRRECTANGLE; + +struct EMREOF +{ + EMR emr; + DWORD nPalEntries; + DWORD offPalEntries; + DWORD nSizeLast; +} +alias EMREOF*PEMREOF; + +struct EMREXCLUDECLIPRECT +{ + EMR emr; + RECTL rclClip; +} +alias EMREXCLUDECLIPRECT*PEMREXCLUDECLIPRECT; +alias EMREXCLUDECLIPRECT EMRINTERSECTCLIPRECT; +alias EMRINTERSECTCLIPRECT*PEMRINTERSECTCLIPRECT; + +struct EMREXTCREATEFONTINDIRECTW +{ + EMR emr; + DWORD ihFont; + EXTLOGFONTW elfw; +} +alias EMREXTCREATEFONTINDIRECTW*PEMREXTCREATEFONTINDIRECTW; + +struct EXTLOGPEN +{ + UINT elpPenStyle; + UINT elpWidth; + UINT elpBrushStyle; + COLORREF elpColor; + LONG elpHatch; + DWORD elpNumEntries; + DWORD[1] elpStyleEntry; +} +alias EXTLOGPEN*PEXTLOGPEN, NPEXTLOGPEN, LPEXTLOGPEN; + +struct EMREXTCREATEPEN +{ + EMR emr; + DWORD ihPen; + DWORD offBmi; + DWORD cbBmi; + DWORD offBits; + DWORD cbBits; + EXTLOGPEN elp; +} +alias EMREXTCREATEPEN*PEMREXTCREATEPEN; + +struct EMREXTFLOODFILL +{ + EMR emr; + POINTL ptlStart; + COLORREF crColor; + DWORD iMode; +} +alias EMREXTFLOODFILL*PEMREXTFLOODFILL; + +struct EMREXTSELECTCLIPRGN +{ + EMR emr; + DWORD cbRgnData; + DWORD iMode; + BYTE [1] RgnData; +} +alias EMREXTSELECTCLIPRGN*PEMREXTSELECTCLIPRGN; + +struct EMRTEXT +{ + POINTL ptlReference; + DWORD nChars; + DWORD offString; + DWORD fOptions; + RECTL rcl; + DWORD offDx; +} +alias EMRTEXT*PEMRTEXT; + +struct EMREXTTEXTOUTA +{ + EMR emr; + RECTL rclBounds; + DWORD iGraphicsMode; + FLOAT exScale; + FLOAT eyScale; + EMRTEXT emrtext; +} +alias EMREXTTEXTOUTA*PEMREXTTEXTOUTA; +alias EMREXTTEXTOUTA EMREXTTEXTOUTW; +alias EMREXTTEXTOUTW*PEMREXTTEXTOUTW; + +struct EMRFILLPATH +{ + EMR emr; + RECTL rclBounds; +} +alias EMRFILLPATH*PEMRFILLPATH; + +alias EMRFILLPATH EMRSTROKEANDFILLPATH; +alias EMRSTROKEANDFILLPATH*PEMRSTROKEANDFILLPATH; + +alias EMRFILLPATH EMRSTROKEPATH; +alias EMRSTROKEPATH*PEMRSTROKEPATH; + +struct EMRFILLRGN +{ + EMR emr; + RECTL rclBounds; + DWORD cbRgnData; + DWORD ihBrush; + BYTE[1] RgnData; +} +alias EMRFILLRGN*PEMRFILLRGN; + +struct EMRFORMAT +{ + DWORD dSignature; + DWORD nVersion; + DWORD cbData; + DWORD offData; +} +alias EMRFORMAT*PEMRFORMAT; + +struct EMRFRAMERGN +{ + EMR emr; + RECTL rclBounds; + DWORD cbRgnData; + DWORD ihBrush; + SIZEL szlStroke; + BYTE[1] RgnData; +} +alias EMRFRAMERGN*PEMRFRAMERGN; + +struct EMRGDICOMMENT +{ + EMR emr; + DWORD cbData; + BYTE[1] Data; +} +alias EMRGDICOMMENT*PEMRGDICOMMENT; + +struct EMRINVERTRGN +{ + EMR emr; + RECTL rclBounds; + DWORD cbRgnData; + BYTE[1] RgnData; +} +alias EMRINVERTRGN*PEMRINVERTRGN; +alias EMRINVERTRGN EMRPAINTRGN; +alias EMRPAINTRGN*PEMRPAINTRGN; + +struct EMRLINETO +{ + EMR emr; + POINTL ptl; +} +alias EMRLINETO*PEMRLINETO; +alias EMRLINETO EMRMOVETOEX; +alias EMRMOVETOEX*PEMRMOVETOEX; + +struct EMRMASKBLT +{ + EMR emr; + RECTL rclBounds; + LONG xDest; + LONG yDest; + LONG cxDest; + LONG cyDest; + DWORD dwRop; + LONG xSrc; + LONG ySrc; + XFORM xformSrc; + COLORREF crBkColorSrc; + DWORD iUsageSrc; + DWORD offBmiSrc; + DWORD cbBmiSrc; + DWORD offBitsSrc; + DWORD cbBitsSrc; + LONG xMask; + LONG yMask; + DWORD iUsageMask; + DWORD offBmiMask; + DWORD cbBmiMask; + DWORD offBitsMask; + DWORD cbBitsMask; +} +alias EMRMASKBLT*PEMRMASKBLT; + +struct EMRMODIFYWORLDTRANSFORM +{ + EMR emr; + XFORM xform; + DWORD iMode; +} +alias EMRMODIFYWORLDTRANSFORM*PEMRMODIFYWORLDTRANSFORM; + +struct EMROFFSETCLIPRGN +{ + EMR emr; + POINTL ptlOffset; +} +alias EMROFFSETCLIPRGN*PEMROFFSETCLIPRGN; + +struct EMRPLGBLT +{ + EMR emr; + RECTL rclBounds; + POINTL[3] aptlDest; + LONG xSrc; + LONG ySrc; + LONG cxSrc; + LONG cySrc; + XFORM xformSrc; + COLORREF crBkColorSrc; + DWORD iUsageSrc; + DWORD offBmiSrc; + DWORD cbBmiSrc; + DWORD offBitsSrc; + DWORD cbBitsSrc; + LONG xMask; + LONG yMask; + DWORD iUsageMask; + DWORD offBmiMask; + DWORD cbBmiMask; + DWORD offBitsMask; + DWORD cbBitsMask; +} +alias EMRPLGBLT*PEMRPLGBLT; + +struct EMRPOLYDRAW +{ + EMR emr; + RECTL rclBounds; + DWORD cptl; + POINTL[1] aptl; + BYTE[1] abTypes; +} +alias EMRPOLYDRAW*PEMRPOLYDRAW; + +struct EMRPOLYDRAW16 +{ + EMR emr; + RECTL rclBounds; + DWORD cpts; + POINTS[1] apts; + BYTE[1] abTypes; +} +alias EMRPOLYDRAW16*PEMRPOLYDRAW16; + +struct EMRPOLYLINE +{ + EMR emr; + RECTL rclBounds; + DWORD cptl; + POINTL[1] aptl; +} +alias EMRPOLYLINE*PEMRPOLYLINE; +alias EMRPOLYLINE EMRPOLYBEZIER; +alias EMRPOLYBEZIER*PEMRPOLYBEZIER; +alias EMRPOLYLINE EMRPOLYGON; +alias EMRPOLYGON*PEMRPOLYGON; +alias EMRPOLYLINE EMRPOLYBEZIERTO; +alias EMRPOLYBEZIERTO*PEMRPOLYBEZIERTO; +alias EMRPOLYLINE EMRPOLYLINETO; +alias EMRPOLYLINETO*PEMRPOLYLINETO; + +struct EMRPOLYLINE16 +{ + EMR emr; + RECTL rclBounds; + DWORD cpts; + POINTS[1] apts; +} +alias EMRPOLYLINE16*PEMRPOLYLINE16; +alias EMRPOLYLINE16 EMRPOLYBEZIER16; +alias EMRPOLYBEZIER16*PEMRPOLYBEZIER16; +alias EMRPOLYLINE16 EMRPOLYGON16; +alias EMRPOLYGON16*PEMRPOLYGON16; +alias EMRPOLYLINE16 EMRPOLYBEZIERTO16; +alias EMRPOLYBEZIERTO16*PEMRPOLYBEZIERTO16; +alias EMRPOLYLINE16 EMRPOLYLINETO16; +alias EMRPOLYLINETO16*PEMRPOLYLINETO16; + +struct EMRPOLYPOLYLINE +{ + EMR emr; + RECTL rclBounds; + DWORD nPolys; + DWORD cptl; + DWORD[1] aPolyCounts; + POINTL[1] aptl; +} +alias EMRPOLYPOLYLINE*PEMRPOLYPOLYLINE; +alias EMRPOLYPOLYLINE EMRPOLYPOLYGON; +alias EMRPOLYPOLYGON*PEMRPOLYPOLYGON; + +struct EMRPOLYPOLYLINE16 +{ + EMR emr; + RECTL rclBounds; + DWORD nPolys; + DWORD cpts; + DWORD[1] aPolyCounts; + POINTS[1] apts; +} +alias EMRPOLYPOLYLINE16*PEMRPOLYPOLYLINE16; +alias EMRPOLYPOLYLINE16 EMRPOLYPOLYGON16; +alias EMRPOLYPOLYGON16*PEMRPOLYPOLYGON16; + +struct EMRPOLYTEXTOUTA +{ + EMR emr; + RECTL rclBounds; + DWORD iGraphicsMode; + FLOAT exScale; + FLOAT eyScale; + LONG cStrings; + EMRTEXT[1] aemrtext; +} +alias EMRPOLYTEXTOUTA*PEMRPOLYTEXTOUTA; +alias EMRPOLYTEXTOUTA EMRPOLYTEXTOUTW; +alias EMRPOLYTEXTOUTW*PEMRPOLYTEXTOUTW; + +struct EMRRESIZEPALETTE +{ + EMR emr; + DWORD ihPal; + DWORD cEntries; +} +alias EMRRESIZEPALETTE*PEMRRESIZEPALETTE; + +struct EMRRESTOREDC +{ + EMR emr; + LONG iRelative; +} +alias EMRRESTOREDC*PEMRRESTOREDC; + +struct EMRROUNDRECT +{ + EMR emr; + RECTL rclBox; + SIZEL szlCorner; +} +alias EMRROUNDRECT*PEMRROUNDRECT; + +struct EMRSCALEVIEWPORTEXTEX +{ + EMR emr; + LONG xNum; + LONG xDenom; + LONG yNum; + LONG yDenom; +} +alias EMRSCALEVIEWPORTEXTEX*PEMRSCALEVIEWPORTEXTEX; +alias EMRSCALEVIEWPORTEXTEX EMRSCALEWINDOWEXTEX; +alias EMRSCALEWINDOWEXTEX*PEMRSCALEWINDOWEXTEX; + +struct EMRSELECTOBJECT +{ + EMR emr; + DWORD ihObject; +} +alias EMRSELECTOBJECT*PEMRSELECTOBJECT; +alias EMRSELECTOBJECT EMRDELETEOBJECT; +alias EMRDELETEOBJECT*PEMRDELETEOBJECT; + +struct EMRSELECTPALETTE +{ + EMR emr; + DWORD ihPal; +} +alias EMRSELECTPALETTE*PEMRSELECTPALETTE; + +struct EMRSETARCDIRECTION +{ + EMR emr; + DWORD iArcDirection; +} +alias EMRSETARCDIRECTION*PEMRSETARCDIRECTION; + +struct EMRSETTEXTCOLOR +{ + EMR emr; + COLORREF crColor; +} +alias EMRSETTEXTCOLOR*PEMRSETTEXTCOLOR; +alias EMRSETTEXTCOLOR EMRSETBKCOLOR; +alias EMRSETBKCOLOR*PEMRSETBKCOLOR; + +struct EMRSETCOLORADJUSTMENT +{ + EMR emr; + COLORADJUSTMENT ColorAdjustment; +} +alias EMRSETCOLORADJUSTMENT*PEMRSETCOLORADJUSTMENT; + +struct EMRSETDIBITSTODEVICE +{ + EMR emr; + RECTL rclBounds; + LONG xDest; + LONG yDest; + LONG xSrc; + LONG ySrc; + LONG cxSrc; + LONG cySrc; + DWORD offBmiSrc; + DWORD cbBmiSrc; + DWORD offBitsSrc; + DWORD cbBitsSrc; + DWORD iUsageSrc; + DWORD iStartScan; + DWORD cScans; +} +alias EMRSETDIBITSTODEVICE*PEMRSETDIBITSTODEVICE; + +struct EMRSETMAPPERFLAGS +{ + EMR emr; + DWORD dwFlags; +} +alias EMRSETMAPPERFLAGS*PEMRSETMAPPERFLAGS; + +struct EMRSETMITERLIMIT +{ + EMR emr; + FLOAT eMiterLimit; +} +alias EMRSETMITERLIMIT*PEMRSETMITERLIMIT; + +struct EMRSETPALETTEENTRIES +{ + EMR emr; + DWORD ihPal; + DWORD iStart; + DWORD cEntries; + PALETTEENTRY[1] aPalEntries; +} +alias EMRSETPALETTEENTRIES*PEMRSETPALETTEENTRIES; + +struct EMRSETPIXELV +{ + EMR emr; + POINTL ptlPixel; + COLORREF crColor; +} +alias EMRSETPIXELV*PEMRSETPIXELV; + +struct EMRSETVIEWPORTEXTEX +{ + EMR emr; + SIZEL szlExtent; +} +alias EMRSETVIEWPORTEXTEX*PEMRSETVIEWPORTEXTEX; +alias EMRSETVIEWPORTEXTEX EMRSETWINDOWEXTEX; +alias EMRSETWINDOWEXTEX*PEMRSETWINDOWEXTEX; + +struct EMRSETVIEWPORTORGEX +{ + EMR emr; + POINTL ptlOrigin; +} +alias EMRSETVIEWPORTORGEX*PEMRSETVIEWPORTORGEX; +alias EMRSETVIEWPORTORGEX EMRSETWINDOWORGEX; +alias EMRSETWINDOWORGEX*PEMRSETWINDOWORGEX; +alias EMRSETVIEWPORTORGEX EMRSETBRUSHORGEX; +alias EMRSETBRUSHORGEX*PEMRSETBRUSHORGEX; + +struct EMRSETWORLDTRANSFORM +{ + EMR emr; + XFORM xform; +} +alias EMRSETWORLDTRANSFORM*PEMRSETWORLDTRANSFORM; + +struct EMRSTRETCHBLT +{ + EMR emr; + RECTL rclBounds; + LONG xDest; + LONG yDest; + LONG cxDest; + LONG cyDest; + DWORD dwRop; + LONG xSrc; + LONG ySrc; + XFORM xformSrc; + COLORREF crBkColorSrc; + DWORD iUsageSrc; + DWORD offBmiSrc; + DWORD cbBmiSrc; + DWORD offBitsSrc; + DWORD cbBitsSrc; + LONG cxSrc; + LONG cySrc; +} +alias EMRSTRETCHBLT*PEMRSTRETCHBLT; + +struct EMRSTRETCHDIBITS +{ + EMR emr; + RECTL rclBounds; + LONG xDest; + LONG yDest; + LONG xSrc; + LONG ySrc; + LONG cxSrc; + LONG cySrc; + DWORD offBmiSrc; + DWORD cbBmiSrc; + DWORD offBitsSrc; + DWORD cbBitsSrc; + DWORD iUsageSrc; + DWORD dwRop; + LONG cxDest; + LONG cyDest; +} +alias EMRSTRETCHDIBITS*PEMRSTRETCHDIBITS; + +struct EMRABORTPATH +{ + EMR emr; +} +alias EMRABORTPATH*PEMRABORTPATH; +alias EMRABORTPATH EMRBEGINPATH; +alias EMRBEGINPATH*PEMRBEGINPATH; +alias EMRABORTPATH EMRENDPATH; +alias EMRENDPATH*PEMRENDPATH; +alias EMRABORTPATH EMRCLOSEFIGURE; +alias EMRCLOSEFIGURE*PEMRCLOSEFIGURE; +alias EMRABORTPATH EMRFLATTENPATH; +alias EMRFLATTENPATH*PEMRFLATTENPATH; +alias EMRABORTPATH EMRWIDENPATH; +alias EMRWIDENPATH*PEMRWIDENPATH; +alias EMRABORTPATH EMRSETMETARGN; +alias EMRSETMETARGN*PEMRSETMETARGN; +alias EMRABORTPATH EMRSAVEDC; +alias EMRSAVEDC*PEMRSAVEDC; +alias EMRABORTPATH EMRREALIZEPALETTE; +alias EMRREALIZEPALETTE*PEMRREALIZEPALETTE; + +struct EMRSELECTCLIPPATH +{ + EMR emr; + DWORD iMode; +} +alias EMRSELECTCLIPPATH*PEMRSELECTCLIPPATH; +alias EMRSELECTCLIPPATH EMRSETBKMODE; +alias EMRSETBKMODE*PEMRSETBKMODE; +alias EMRSELECTCLIPPATH EMRSETMAPMODE; +alias EMRSETMAPMODE*PEMRSETMAPMODE; +alias EMRSELECTCLIPPATH EMRSETPOLYFILLMODE; +alias EMRSETPOLYFILLMODE*PEMRSETPOLYFILLMODE; +alias EMRSELECTCLIPPATH EMRSETROP2; +alias EMRSETROP2*PEMRSETROP2; +alias EMRSELECTCLIPPATH EMRSETSTRETCHBLTMODE; +alias EMRSETSTRETCHBLTMODE*PEMRSETSTRETCHBLTMODE; +alias EMRSELECTCLIPPATH EMRSETICMMODE; +alias EMRSETICMMODE*PEMRSETICMMODE; +alias EMRSELECTCLIPPATH EMRSETTEXTALIGN; +alias EMRSETTEXTALIGN*PEMRSETTEXTALIGN; +alias EMRSELECTCLIPPATH EMRENABLEICM; +alias EMRENABLEICM*PEMRENABLEICM; +static + +if (WINVER >= 0x0500) +{ + alias EMRSELECTCLIPPATH EMRSETLAYOUT; + alias EMRSETLAYOUT*PEMRSETLAYOUT; +} + +align (2) : +struct METAHEADER +{ + WORD mtType; + WORD mtHeaderSize; + WORD mtVersion; + DWORD mtSize; + WORD mtNoObjects; + DWORD mtMaxRecord; + WORD mtNoParameters; +} +alias METAHEADER*PMETAHEADER; +alias METAHEADER*LPMETAHEADER; + +align : + +struct ENHMETAHEADER +{ + DWORD iType; + DWORD nSize; + RECTL rclBounds; + RECTL rclFrame; + DWORD dSignature = ENHMETA_SIGNATURE; + DWORD nVersion; + DWORD nBytes; + DWORD nRecords; + WORD nHandles; + WORD sReserved; + DWORD nDescription; + DWORD offDescription; + DWORD nPalEntries; + SIZEL szlDevice; + SIZEL szlMillimeters; + static + + if (WINVER >= 0x0400) + { + DWORD cbPixelFormat; + DWORD offPixelFormat; + DWORD bOpenGL; + } + + static + + if (WINVER >= 0x0500) + { + SIZEL szlMicrometers; + } +} +alias ENHMETAHEADER*PENHMETAHEADER, LPENHMETAHEADER; + +struct METARECORD +{ + DWORD rdSize; + WORD rdFunction; + WORD[1] rdParm; +} +alias METARECORD*PMETARECORD; +alias METARECORD*LPMETARECORD; + +struct ENHMETARECORD +{ + DWORD iType; + DWORD nSize; + DWORD[1] dParm; +} +alias ENHMETARECORD*PENHMETARECORD, LPENHMETARECORD; + +// --- + +struct HANDLETABLE +{ + HGDIOBJ[1] objectHandle; +} +alias HANDLETABLE*PHANDLETABLE, LPHANDLETABLE; + +struct TEXTMETRICA +{ + LONG tmHeight; + LONG tmAscent; + LONG tmDescent; + LONG tmInternalLeading; + LONG tmExternalLeading; + LONG tmAveCharWidth; + LONG tmMaxCharWidth; + LONG tmWeight; + LONG tmOverhang; + LONG tmDigitizedAspectX; + LONG tmDigitizedAspectY; + BYTE tmFirstChar; + BYTE tmLastChar; + BYTE tmDefaultChar; + BYTE tmBreakChar; + BYTE tmItalic; + BYTE tmUnderlined; + BYTE tmStruckOut; + BYTE tmPitchAndFamily; + BYTE tmCharSet; +} +alias TEXTMETRICA*PTEXTMETRICA, NPTEXTMETRICA, LPTEXTMETRICA; + +struct TEXTMETRICW +{ + LONG tmHeight; + LONG tmAscent; + LONG tmDescent; + LONG tmInternalLeading; + LONG tmExternalLeading; + LONG tmAveCharWidth; + LONG tmMaxCharWidth; + LONG tmWeight; + LONG tmOverhang; + LONG tmDigitizedAspectX; + LONG tmDigitizedAspectY; + WCHAR tmFirstChar; + WCHAR tmLastChar; + WCHAR tmDefaultChar; + WCHAR tmBreakChar; + BYTE tmItalic; + BYTE tmUnderlined; + BYTE tmStruckOut; + BYTE tmPitchAndFamily; + BYTE tmCharSet; +} +alias TEXTMETRICW*PTEXTMETRICW, NPTEXTMETRICW, LPTEXTMETRICW; + +struct RGNDATAHEADER +{ + DWORD dwSize; + DWORD iType; + DWORD nCount; + DWORD nRgnSize; + RECT rcBound; +} +alias RGNDATAHEADER*PRGNDATAHEADER; + +struct RGNDATA +{ + RGNDATAHEADER rdh; + char[1] Buffer; +} +alias RGNDATA*PRGNDATA, NPRGNDATA, LPRGNDATA; + +/* for GetRandomRgn */ +const SYSRGN=4; +struct GCP_RESULTSA +{ + DWORD lStructSize; + LPSTR lpOutString; + UINT*lpOrder; + INT*lpDx; + INT*lpCaretPos; + LPSTR lpClass; + LPWSTR lpGlyphs; + UINT nGlyphs; + UINT nMaxFit; +} +alias GCP_RESULTSA*LPGCP_RESULTSA; + +struct GCP_RESULTSW +{ + DWORD lStructSize; + LPWSTR lpOutString; + UINT*lpOrder; + INT*lpDx; + INT*lpCaretPos; + LPWSTR lpClass; + LPWSTR lpGlyphs; + UINT nGlyphs; + UINT nMaxFit; +} +alias GCP_RESULTSW*LPGCP_RESULTSW; + +struct GLYPHMETRICS +{ + UINT gmBlackBoxX; + UINT gmBlackBoxY; + POINT gmptGlyphOrigin; + short gmCellIncX; + short gmCellIncY; +} +alias GLYPHMETRICS*LPGLYPHMETRICS; + +static + +if (_WIN32_WINNT >= 0x0500) +{ + struct WCRANGE + { + WCHAR wcLow; + USHORT cGlyphs; + } + alias WCRANGE*PWCRANGE, LPWCRANGE; + + struct GLYPHSET + { + DWORD cbThis; + DWORD flAccel; + DWORD cGlyphsSupported; + DWORD cRanges; + WCRANGE[1] ranges; + } + alias GLYPHSET*PGLYPHSET, LPGLYPHSET; + + const DWORD GS_8BIT_INDICES = 0x00000001; +} + +struct KERNINGPAIR +{ + WORD wFirst; + WORD wSecond; + int iKernAmount; +} +alias KERNINGPAIR*LPKERNINGPAIR; + +struct FIXED +{ + WORD fract; + short value; +} + +struct MAT2 +{ + FIXED eM11; + FIXED eM12; + FIXED eM21; + FIXED eM22; +} +alias MAT2*LPMAT2; + +struct OUTLINETEXTMETRICA +{ + UINT otmSize; + TEXTMETRICA otmTextMetrics; + BYTE otmFiller; + PANOSE otmPanoseNumber; + UINT otmfsSelection; + UINT otmfsType; + int otmsCharSlopeRise; + int otmsCharSlopeRun; + int otmItalicAngle; + UINT otmEMSquare; + int otmAscent; + int otmDescent; + UINT otmLineGap; + UINT otmsCapEmHeight; + UINT otmsXHeight; + RECT otmrcFontBox; + int otmMacAscent; + int otmMacDescent; + UINT otmMacLineGap; + UINT otmusMinimumPPEM; + POINT otmptSubscriptSize; + POINT otmptSubscriptOffset; + POINT otmptSuperscriptSize; + POINT otmptSuperscriptOffset; + UINT otmsStrikeoutSize; + int otmsStrikeoutPosition; + int otmsUnderscoreSize; + int otmsUnderscorePosition; + PSTR otmpFamilyName; + PSTR otmpFaceName; + PSTR otmpStyleName; + PSTR otmpFullName; +} +alias OUTLINETEXTMETRICA*POUTLINETEXTMETRICA, NPOUTLINETEXTMETRICA, LPOUTLINETEXTMETRICA; + +struct OUTLINETEXTMETRICW +{ + UINT otmSize; + TEXTMETRICW otmTextMetrics; + BYTE otmFiller; + PANOSE otmPanoseNumber; + UINT otmfsSelection; + UINT otmfsType; + int otmsCharSlopeRise; + int otmsCharSlopeRun; + int otmItalicAngle; + UINT otmEMSquare; + int otmAscent; + int otmDescent; + UINT otmLineGap; + UINT otmsCapEmHeight; + UINT otmsXHeight; + RECT otmrcFontBox; + int otmMacAscent; + int otmMacDescent; + UINT otmMacLineGap; + UINT otmusMinimumPPEM; + POINT otmptSubscriptSize; + POINT otmptSubscriptOffset; + POINT otmptSuperscriptSize; + POINT otmptSuperscriptOffset; + UINT otmsStrikeoutSize; + int otmsStrikeoutPosition; + int otmsUnderscoreSize; + int otmsUnderscorePosition; + PSTR otmpFamilyName; + PSTR otmpFaceName; + PSTR otmpStyleName; + PSTR otmpFullName; +} +alias OUTLINETEXTMETRICW*POUTLINETEXTMETRICW, NPOUTLINETEXTMETRICW, LPOUTLINETEXTMETRICW; + +struct RASTERIZER_STATUS +{ + short nSize; + short wFlags; + short nLanguageID; +} +alias RASTERIZER_STATUS*LPRASTERIZER_STATUS; + +struct POLYTEXTA +{ + int x; + int y; + UINT n; + LPCSTR lpstr; + UINT uiFlags; + RECT rcl; + int*pdx; +} +alias POLYTEXTA*PPOLYTEXTA, NPPOLYTEXTA, LPPOLYTEXTA; + +struct POLYTEXTW +{ + int x; + int y; + UINT n; + LPCWSTR lpstr; + UINT uiFlags; + RECT rcl; + int*pdx; +} +alias POLYTEXTW*PPOLYTEXTW, NPPOLYTEXTW, LPPOLYTEXTW; + +struct PIXELFORMATDESCRIPTOR +{ + WORD nSize; + WORD nVersion; + DWORD dwFlags; + BYTE iPixelType; + BYTE cColorBits; + BYTE cRedBits; + BYTE cRedShift; + BYTE cGreenBits; + BYTE cGreenShift; + BYTE cBlueBits; + BYTE cBlueShift; + BYTE cAlphaBits; + BYTE cAlphaShift; + BYTE cAccumBits; + BYTE cAccumRedBits; + BYTE cAccumGreenBits; + BYTE cAccumBlueBits; + BYTE cAccumAlphaBits; + BYTE cDepthBits; + BYTE cStencilBits; + BYTE cAuxBuffers; + BYTE iLayerType; + BYTE bReserved; + DWORD dwLayerMask; + DWORD dwVisibleMask; + DWORD dwDamageMask; +} +alias PIXELFORMATDESCRIPTOR*PPIXELFORMATDESCRIPTOR, LPPIXELFORMATDESCRIPTOR; + +struct METAFILEPICT +{ + LONG mm; + LONG xExt; + LONG yExt; + HMETAFILE hMF; +} +alias METAFILEPICT*LPMETAFILEPICT; + +struct LOCALESIGNATURE +{ + DWORD[4] lsUsb; + DWORD[2] lsCsbDefault; + DWORD[2] lsCsbSupported; +} +alias LOCALESIGNATURE*PLOCALESIGNATURE, LPLOCALESIGNATURE; + +alias LONG LCSTYPE; /* What this for? */ + +align (4) : +struct NEWTEXTMETRICA +{ + LONG tmHeight; + LONG tmAscent; + LONG tmDescent; + LONG tmInternalLeading; + LONG tmExternalLeading; + LONG tmAveCharWidth; + LONG tmMaxCharWidth; + LONG tmWeight; + LONG tmOverhang; + LONG tmDigitizedAspectX; + LONG tmDigitizedAspectY; + BYTE tmFirstChar; + BYTE tmLastChar; + BYTE tmDefaultChar; + BYTE tmBreakChar; + BYTE tmItalic; + BYTE tmUnderlined; + BYTE tmStruckOut; + BYTE tmPitchAndFamily; + BYTE tmCharSet; + DWORD ntmFlags; + UINT ntmSizeEM; + UINT ntmCellHeight; + UINT ntmAvgWidth; +} +alias NEWTEXTMETRICA*PNEWTEXTMETRICA, NPNEWTEXTMETRICA, LPNEWTEXTMETRICA; + +struct NEWTEXTMETRICW +{ + LONG tmHeight; + LONG tmAscent; + LONG tmDescent; + LONG tmInternalLeading; + LONG tmExternalLeading; + LONG tmAveCharWidth; + LONG tmMaxCharWidth; + LONG tmWeight; + LONG tmOverhang; + LONG tmDigitizedAspectX; + LONG tmDigitizedAspectY; + WCHAR tmFirstChar; + WCHAR tmLastChar; + WCHAR tmDefaultChar; + WCHAR tmBreakChar; + BYTE tmItalic; + BYTE tmUnderlined; + BYTE tmStruckOut; + BYTE tmPitchAndFamily; + BYTE tmCharSet; + DWORD ntmFlags; + UINT ntmSizeEM; + UINT ntmCellHeight; + UINT ntmAvgWidth; +} +alias NEWTEXTMETRICW*PNEWTEXTMETRICW, NPNEWTEXTMETRICW, LPNEWTEXTMETRICW; + +align : +struct NEWTEXTMETRICEXA +{ + NEWTEXTMETRICA ntmTm; + FONTSIGNATURE ntmFontSig; +} + +struct NEWTEXTMETRICEXW +{ + NEWTEXTMETRICW ntmTm; + FONTSIGNATURE ntmFontSig; +} + +struct PELARRAY +{ + LONG paXCount; + LONG paYCount; + LONG paXExt; + LONG paYExt; + BYTE paRGBs; +} +alias PELARRAY*PPELARRAY, NPPELARRAY, LPPELARRAY; + +struct ENUMLOGFONTA +{ + LOGFONTA elfLogFont; + BYTE[LF_FULLFACESIZE] elfFullName; + BYTE[LF_FACESIZE] elfStyle; +} +alias ENUMLOGFONTA*LPENUMLOGFONTA; + +struct ENUMLOGFONTW +{ + LOGFONTW elfLogFont; + WCHAR[LF_FULLFACESIZE] elfFullName; + WCHAR[LF_FACESIZE] elfStyle; +} +alias ENUMLOGFONTW*LPENUMLOGFONTW; + +struct ENUMLOGFONTEXA +{ + LOGFONTA elfLogFont; + BYTE[LF_FULLFACESIZE] elfFullName; + BYTE[LF_FACESIZE] elfStyle; + BYTE[LF_FACESIZE] elfScript; +} +alias ENUMLOGFONTEXA*LPENUMLOGFONTEXA; + +struct ENUMLOGFONTEXW +{ + LOGFONTW elfLogFont; + WCHAR[LF_FULLFACESIZE] elfFullName; + WCHAR[LF_FACESIZE] elfStyle; + WCHAR[LF_FACESIZE] elfScript; +} +alias ENUMLOGFONTEXW*LPENUMLOGFONTEXW; + +struct POINTFX +{ + FIXED x; + FIXED y; +} +alias POINTFX*LPPOINTFX; + +struct TTPOLYCURVE +{ + WORD wType; + WORD cpfx; + POINTFX[1] apfx; +} +alias TTPOLYCURVE*LPTTPOLYCURVE; + +struct TTPOLYGONHEADER +{ + DWORD cb; + DWORD dwType; + POINTFX pfxStart; +} +alias TTPOLYGONHEADER*LPTTPOLYGONHEADER; + +struct POINTFLOAT +{ + FLOAT x; + FLOAT y; +} +alias POINTFLOAT*PPOINTFLOAT; + +struct GLYPHMETRICSFLOAT +{ + FLOAT gmfBlackBoxX; + FLOAT gmfBlackBoxY; + POINTFLOAT gmfptGlyphOrigin; + FLOAT gmfCellIncX; + FLOAT gmfCellIncY; +} +alias GLYPHMETRICSFLOAT*PGLYPHMETRICSFLOAT, LPGLYPHMETRICSFLOAT; + +struct LAYERPLANEDESCRIPTOR +{ + WORD nSize; + WORD nVersion; + DWORD dwFlags; + BYTE iPixelType; + BYTE cColorBits; + BYTE cRedBits; + BYTE cRedShift; + BYTE cGreenBits; + BYTE cGreenShift; + BYTE cBlueBits; + BYTE cBlueShift; + BYTE cAlphaBits; + BYTE cAlphaShift; + BYTE cAccumBits; + BYTE cAccumRedBits; + BYTE cAccumGreenBits; + BYTE cAccumBlueBits; + BYTE cAccumAlphaBits; + BYTE cDepthBits; + BYTE cStencilBits; + BYTE cAuxBuffers; + BYTE iLayerPlane; + BYTE bReserved; + COLORREF crTransparent; +} +alias LAYERPLANEDESCRIPTOR*PLAYERPLANEDESCRIPTOR, LPLAYERPLANEDESCRIPTOR; + +struct BLENDFUNCTION +{ + BYTE BlendOp; + BYTE BlendFlags; + BYTE SourceConstantAlpha; + BYTE AlphaFormat; +} +alias BLENDFUNCTION*PBLENDFUNCTION, LPBLENDFUNCTION; + +const MM_MAX_NUMAXES = 16; + +struct DESIGNVECTOR +{ + DWORD dvReserved; + DWORD dvNumAxes; + LONG[MM_MAX_NUMAXES] dvValues; +} +alias DESIGNVECTOR*PDESIGNVECTOR, LPDESIGNVECTOR; +const STAMP_DESIGNVECTOR = 0x8000000 + 'd' + ('v' << 8); +const STAMP_AXESLIST = 0x8000000 + 'a' + ('l' << 8); + +static + +if (_WIN32_WINNT >= 0x0500) +{ + const MM_MAX_AXES_NAMELEN = 16; + + struct AXISINFOA + { + LONG axMinValue; + LONG axMaxValue; + BYTE[MM_MAX_AXES_NAMELEN] axAxisName; + } + alias AXISINFOA*PAXISINFOA, LPAXISINFOA; + + struct AXISINFOW + { + LONG axMinValue; + LONG axMaxValue; + WCHAR[MM_MAX_AXES_NAMELEN] axAxisName; + } + alias AXISINFOW*PAXISINFOW, LPAXISINFOW; + + version (Unicode) + { + alias AXISINFOW AXISINFO; + alias PAXISINFOW PAXISINFO; + alias LPAXISINFOW LPAXISINFO; + } + else + { + alias AXISINFOA AXISINFO; + alias PAXISINFOA PAXISINFO; + alias LPAXISINFOA LPAXISINFO; + } + + struct AXESLISTA + { + DWORD axlReserved; + DWORD axlNumAxes; + AXISINFOA[MM_MAX_NUMAXES] axlAxisInfo; + } + alias AXESLISTA*PAXESLISTA, LPAXESLISTA; + + struct AXESLISTW + { + DWORD axlReserved; + DWORD axlNumAxes; + AXISINFOW[MM_MAX_NUMAXES] axlAxisInfo; + } + alias AXESLISTW*PAXESLISTW, LPAXESLISTW; + + version (Unicode) + { + alias AXESLISTW AXESLIST; + alias PAXESLISTW PAXESLIST; + alias LPAXESLISTW LPAXESLIST; + } + else + { + alias AXESLISTA AXESLIST; + alias PAXESLISTA PAXESLIST; + alias LPAXESLISTA LPAXESLIST; + } + + struct ENUMLOGFONTEXDVA + { + ENUMLOGFONTEXA elfEnumLogfontEx; + DESIGNVECTOR elfDesignVector; + } + alias ENUMLOGFONTEXDVA*PENUMLOGFONTEXDVA, LPENUMLOGFONTEXDVA; + + struct ENUMLOGFONTEXDVW + { + ENUMLOGFONTEXW elfEnumLogfontEx; + DESIGNVECTOR elfDesignVector; + } + alias ENUMLOGFONTEXDVW*PENUMLOGFONTEXDVW, LPENUMLOGFONTEXDVW; + + HFONT CreateFontIndirectExA(ENUMLOGFONTEXDVA*); + + HFONT CreateFontIndirectExW(ENUMLOGFONTEXDVW*); + + version (Unicode) + alias CreateFontIndirectExW CreateFontIndirectEx; + else + alias CreateFontIndirectExA CreateFontIndirectEx; + + struct ENUMTEXTMETRICA + { + NEWTEXTMETRICEXA etmNewTextMetricEx; + AXESLISTA etmAxesList; + } + alias ENUMTEXTMETRICA*PENUMTEXTMETRICA, LPENUMTEXTMETRICA; + + struct ENUMTEXTMETRICW + { + NEWTEXTMETRICEXW etmNewTextMetricEx; + AXESLISTW etmAxesList; + } + alias ENUMTEXTMETRICW*PENUMTEXTMETRICW, LPENUMTEXTMETRICW; + + version (Unicode) + { + alias ENUMTEXTMETRICW ENUMTEXTMETRIC; + alias PENUMTEXTMETRICW PENUMTEXTMETRIC; + alias LPENUMTEXTMETRICW LPENUMTEXTMETRIC; + } + else + { + alias ENUMTEXTMETRICA ENUMTEXTMETRIC; + alias PENUMTEXTMETRICA PENUMTEXTMETRIC; + alias LPENUMTEXTMETRICA LPENUMTEXTMETRIC; + } +} /* _WIN32_WINNT >= 0x0500 */ + +struct GRADIENT_TRIANGLE +{ + ULONG Vertex1; + ULONG Vertex2; + ULONG Vertex3; +} +alias GRADIENT_TRIANGLE*PGRADIENT_TRIANGLE, LPGRADIENT_TRIANGLE; + +struct GRADIENT_RECT +{ + ULONG UpperLeft; + ULONG LowerRight; +} +alias GRADIENT_RECT*PGRADIENT_RECT, LPGRADIENT_RECT; + +struct DISPLAY_DEVICEA +{ + DWORD cb; + CHAR[32] DeviceName; + CHAR[128] DeviceString; + DWORD StateFlags; + CHAR[128] DeviceID; + CHAR[128] DeviceKey; +} +alias DISPLAY_DEVICEA*PDISPLAY_DEVICEA, LPDISPLAY_DEVICEA; + +struct DISPLAY_DEVICEW +{ + DWORD cb; + WCHAR[32] DeviceName; + WCHAR[128] DeviceString; + DWORD StateFlags; + WCHAR[128] DeviceID; + WCHAR[128] DeviceKey; +} +alias DISPLAY_DEVICEW*PDISPLAY_DEVICEW, LPDISPLAY_DEVICEW; + +static + +if (WINVER >= 0x0400) +{ + struct DRAWPATRECT + { + POINT ptPosition; + POINT ptSize; + WORD wStyle; + WORD wPattern; + } + alias DRAWPATRECT*PDRAWPATRECT; +} + +// --------- +// Callbacks + +alias BOOL function(HDC, int) ABORTPROC; + +alias int function(HDC, HANDLETABLE*, METARECORD*, int, LPARAM) MFENUMPROC; + +alias int function(HDC, HANDLETABLE*, CPtr!(ENHMETARECORD), int, LPARAM) ENHMFENUMPROC; + +alias int function(CPtr!(LOGFONTA), CPtr!(TEXTMETRICA), DWORD, LPARAM) FONTENUMPROCA, OLDFONTENUMPROCA; + +alias int function(CPtr!(LOGFONTW), CPtr!(TEXTMETRICW), DWORD, LPARAM) FONTENUMPROCW, OLDFONTENUMPROCW; + +alias int function(LPSTR, LPARAM) ICMENUMPROCA; + +alias int function(LPWSTR, LPARAM) ICMENUMPROCW; + +alias void function(LPVOID, LPARAM) GOBJENUMPROC; + +alias void function(int, int, LPARAM) LINEDDAPROC; + +alias UINT function(HWND, HMODULE, LPDEVMODEA, LPSTR, LPSTR, LPDEVMODEA, LPSTR, UINT) LPFNDEVMODE; + +alias DWORD function(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODEA) LPFNDEVCAPS; + +// --------- +// C Macros. +// FIXME: +// POINTS MAKEPOINTS(DWORD dwValue) #define MAKEPOINTS(l) (*((POINTS*)&(l))) +DWORD MAKEROP4(DWORD fore, DWORD back) +{ + return ((back << 8) & 0xFF000000) | (fore); +} + + +COLORREF CMYK(BYTE c, BYTE m, BYTE y, BYTE k) +{ + return cast(COLORREF) (k | (y << 8) | (m << 16) | (c << 24)); +} + + +BYTE GetCValue(COLORREF cmyk) +{ + return cast(BYTE) (cmyk >> 24); +} + + +BYTE GetMValue(COLORREF cmyk) +{ + return cast(BYTE) (cmyk >> 16); +} + + +BYTE GetYValue(COLORREF cmyk) +{ + return cast(BYTE) (cmyk >> 8); +} + + +BYTE GetKValue(COLORREF cmyk) +{ + return cast(BYTE) cmyk; +} + + +COLORREF RGB(BYTE r, BYTE g, BYTE b) +{ + return cast(COLORREF) (r | (g << 8) | (b << 16)); +} + + +BYTE GetRValue(COLORREF c) +{ + return cast(BYTE) c; +} + + +BYTE GetGValue(COLORREF c) +{ + return cast(BYTE) (c >> 8); +} + + +BYTE GetBValue(COLORREF c) +{ + return cast(BYTE) (c >> 16); +} + + +COLORREF PALETTEINDEX(WORD i) +{ + return 0x01000000 | cast(COLORREF) i; +} + + +COLORREF PALETTERGB(BYTE r, BYTE g, BYTE b) +{ + return 0x02000000 | RGB(r, g, b); +} + + +extern (Windows) { +int AbortDoc(HDC); + +BOOL AbortPath(HDC); + +int AddFontResourceA(LPCSTR); + +int AddFontResourceW(LPCWSTR); + +BOOL AngleArc(HDC, int, int, DWORD, FLOAT, FLOAT); + +BOOL AnimatePalette(HPALETTE, UINT, UINT, CPtr!(PALETTEENTRY)); + +BOOL Arc(HDC, int, int, int, int, int, int, int, int); + +BOOL ArcTo(HDC, int, int, int, int, int, int, int, int); + +BOOL BeginPath(HDC); + +BOOL BitBlt(HDC, int, int, int, int, HDC, int, int, DWORD); + +BOOL CancelDC(HDC); + +BOOL CheckColorsInGamut(HDC, PVOID, PVOID, DWORD); + +BOOL Chord(HDC, int, int, int, int, int, int, int, int); + +int ChoosePixelFormat(HDC, CPtr!(PIXELFORMATDESCRIPTOR)); + +HENHMETAFILE CloseEnhMetaFile(HDC); + +BOOL CloseFigure(HDC); + +HMETAFILE CloseMetaFile(HDC); + +BOOL ColorMatchToTarget(HDC, HDC, DWORD); + +BOOL ColorCorrectPalette(HDC, HPALETTE, DWORD, DWORD); + +int CombineRgn(HRGN, HRGN, HRGN, int); + +BOOL CombineTransform(LPXFORM, CPtr!(XFORM), CPtr!(XFORM)); + +HENHMETAFILE CopyEnhMetaFileA(HENHMETAFILE, LPCSTR); + +HENHMETAFILE CopyEnhMetaFileW(HENHMETAFILE, LPCWSTR); + +HMETAFILE CopyMetaFileA(HMETAFILE, LPCSTR); + +HMETAFILE CopyMetaFileW(HMETAFILE, LPCWSTR); + +HBITMAP CreateBitmap(int, int, UINT, UINT, PCVOID); + +HBITMAP CreateBitmapIndirect(CPtr!(BITMAP)); + +HBRUSH CreateBrushIndirect(CPtr!(LOGBRUSH)); + +HCOLORSPACE CreateColorSpaceA(LPLOGCOLORSPACEA); + +HCOLORSPACE CreateColorSpaceW(LPLOGCOLORSPACEW); + +HBITMAP CreateCompatibleBitmap(HDC, int, int); + +HDC CreateCompatibleDC(HDC); + +HDC CreateDCA(LPCSTR, LPCSTR, LPCSTR, CPtr!(DEVMODEA)); + +HDC CreateDCW(LPCWSTR, LPCWSTR, LPCWSTR, CPtr!(DEVMODEW)); + +HBITMAP CreateDIBitmap(HDC, CPtr!(BITMAPINFOHEADER), DWORD, PCVOID, CPtr!(BITMAPINFO), UINT); + +HBRUSH CreateDIBPatternBrush(HGLOBAL, UINT); + +HBRUSH CreateDIBPatternBrushPt(PCVOID, UINT); + +HBITMAP CreateDIBSection(HDC, CPtr!(BITMAPINFO), UINT, void**, HANDLE, DWORD); + +HBITMAP CreateDiscardableBitmap(HDC, int, int); + +HRGN CreateEllipticRgn(int, int, int, int); + +HRGN CreateEllipticRgnIndirect(LPCRECT); + +HDC CreateEnhMetaFileA(HDC, LPCSTR, LPCRECT, LPCSTR); + +HDC CreateEnhMetaFileW(HDC, LPCWSTR, LPCRECT, LPCWSTR); + +HFONT CreateFontA(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCSTR); + +HFONT CreateFontW(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCWSTR); + +HFONT CreateFontIndirectA(CPtr!(LOGFONTA)); + +HFONT CreateFontIndirectW(CPtr!(LOGFONTW)); + +HPALETTE CreateHalftonePalette(HDC); + +HBRUSH CreateHatchBrush(int, COLORREF); + +HDC CreateICA(LPCSTR, LPCSTR, LPCSTR, CPtr!(DEVMODEA)); + +HDC CreateICW(LPCWSTR, LPCWSTR, LPCWSTR, CPtr!(DEVMODEW)); + +HDC CreateMetaFileA(LPCSTR); + +HDC CreateMetaFileW(LPCWSTR); + +HPALETTE CreatePalette(CPtr!(LOGPALETTE)); + +HBRUSH CreatePatternBrush(HBITMAP); + +HPEN CreatePen(int, int, COLORREF); + +HPEN CreatePenIndirect(CPtr!(LOGPEN)); + +HRGN CreatePolygonRgn(CPtr!(POINT), int, int); + +HRGN CreatePolyPolygonRgn(CPtr!(POINT), CPtr!(INT), int, int); + +HRGN CreateRectRgn(int, int, int, int); + +HRGN CreateRectRgnIndirect(LPCRECT); + +HRGN CreateRoundRectRgn(int, int, int, int, int, int); + +BOOL CreateScalableFontResourceA(DWORD, LPCSTR, LPCSTR, LPCSTR); + +BOOL CreateScalableFontResourceW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR); + +HBRUSH CreateSolidBrush(COLORREF); + +BOOL DeleteColorSpace(HCOLORSPACE); + +BOOL DeleteDC(HDC); + +BOOL DeleteEnhMetaFile(HENHMETAFILE); + +BOOL DeleteMetaFile(HMETAFILE); + +BOOL DeleteObject(HGDIOBJ); + +int DescribePixelFormat(HDC, int, UINT, LPPIXELFORMATDESCRIPTOR); + +DWORD DeviceCapabilitiesA(LPCSTR, LPCSTR, WORD, LPSTR, CPtr!(DEVMODEA)); + +DWORD DeviceCapabilitiesW(LPCWSTR, LPCWSTR, WORD, LPWSTR, CPtr!(DEVMODEW)); + +BOOL DPtoLP(HDC, LPPOINT, int); + +int DrawEscape(HDC, int, int, LPCSTR); + +BOOL Ellipse(HDC, int, int, int, int); + +int EndDoc(HDC); + +int EndPage(HDC); + +BOOL EndPath(HDC); + +BOOL EnumEnhMetaFile(HDC, HENHMETAFILE, ENHMFENUMPROC, PVOID, LPCRECT); + +int EnumFontFamiliesA(HDC, LPCSTR, FONTENUMPROCA, LPARAM); + +int EnumFontFamiliesW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM); + +int EnumFontFamiliesExA(HDC, PLOGFONTA, FONTENUMPROCA, LPARAM, DWORD); + +int EnumFontFamiliesExW(HDC, PLOGFONTW, FONTENUMPROCW, LPARAM, DWORD); + +int EnumFontsA(HDC, LPCSTR, FONTENUMPROCA, LPARAM); + +int EnumFontsW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM); + +int EnumICMProfilesA(HDC, ICMENUMPROCA, LPARAM); + +int EnumICMProfilesW(HDC, ICMENUMPROCW, LPARAM); + +BOOL EnumMetaFile(HDC, HMETAFILE, MFENUMPROC, LPARAM); + +int EnumObjects(HDC, int, GOBJENUMPROC, LPARAM); + +BOOL EqualRgn(HRGN, HRGN); + +int Escape(HDC, int, int, LPCSTR, PVOID); + +int ExcludeClipRect(HDC, int, int, int, int); + +int ExcludeUpdateRgn(HDC, HWND); + +HPEN ExtCreatePen(DWORD, DWORD, CPtr!(LOGBRUSH), DWORD, CPtr!(DWORD)); + +HRGN ExtCreateRegion(CPtr!(XFORM), DWORD, CPtr!(RGNDATA)); + +int ExtEscape(HDC, int, int, LPCSTR, int, LPSTR); + +BOOL ExtFloodFill(HDC, int, int, COLORREF, UINT); + +int ExtSelectClipRgn(HDC, HRGN, int); + +BOOL ExtTextOutA(HDC, int, int, UINT, LPCRECT, LPCSTR, UINT, CPtr!(INT)); + +BOOL ExtTextOutW(HDC, int, int, UINT, LPCRECT, LPCWSTR, UINT, CPtr!(INT)); + +BOOL FillPath(HDC); + +int FillRect(HDC, LPCRECT, HBRUSH); + +int FillRgn(HDC, HRGN, HBRUSH); + +BOOL FixBrushOrgEx(HDC, int, int, LPPOINT); + +BOOL FlattenPath(HDC); + +BOOL FloodFill(HDC, int, int, COLORREF); + +BOOL FrameRgn(HDC, HRGN, HBRUSH, int, int); + +BOOL GdiComment(HDC, UINT, CPtr!(BYTE)); + +BOOL GdiFlush(); + +DWORD GdiGetBatchLimit(); + +DWORD GdiSetBatchLimit(DWORD); + +int GetArcDirection(HDC); + +BOOL GetAspectRatioFilterEx(HDC, LPSIZE); + +LONG GetBitmapBits(HBITMAP, LONG, PVOID); + +BOOL GetBitmapDimensionEx(HBITMAP, LPSIZE); + +COLORREF GetBkColor(HDC); + +int GetBkMode(HDC); + +UINT GetBoundsRect(HDC, LPRECT, UINT); + +BOOL GetBrushOrgEx(HDC, LPPOINT); + +BOOL GetCharABCWidthsA(HDC, UINT, UINT, LPABC); + +BOOL GetCharABCWidthsW(HDC, UINT, UINT, LPABC); + +BOOL GetCharABCWidthsFloatA(HDC, UINT, UINT, LPABCFLOAT); + +BOOL GetCharABCWidthsFloatW(HDC, UINT, UINT, LPABCFLOAT); + +DWORD GetCharacterPlacementA(HDC, LPCSTR, int, int, LPGCP_RESULTSA, DWORD); + +DWORD GetCharacterPlacementW(HDC, LPCWSTR, int, int, LPGCP_RESULTSW, DWORD); + +BOOL GetCharWidth32A(HDC, UINT, UINT, LPINT); + +BOOL GetCharWidth32W(HDC, UINT, UINT, LPINT); + +BOOL GetCharWidthA(HDC, UINT, UINT, LPINT); + +BOOL GetCharWidthW(HDC, UINT, UINT, LPINT); + +BOOL GetCharWidthFloatA(HDC, UINT, UINT, PFLOAT); + +BOOL GetCharWidthFloatW(HDC, UINT, UINT, PFLOAT); + +int GetClipBox(HDC, LPRECT); + +int GetClipRgn(HDC, HRGN); + +BOOL GetColorAdjustment(HDC, LPCOLORADJUSTMENT); + +HANDLE GetColorSpace(HDC); + +HGDIOBJ GetCurrentObject(HDC, UINT); + +BOOL GetCurrentPositionEx(HDC, LPPOINT); + +HCURSOR GetCursor(); + +BOOL GetDCOrgEx(HDC, LPPOINT); + +int GetDeviceCaps(HDC, int); + +BOOL GetDeviceGammaRamp(HDC, PVOID); + +UINT GetDIBColorTable(HDC, UINT, UINT, RGBQUAD*); + +int GetDIBits(HDC, HBITMAP, UINT, UINT, PVOID, LPBITMAPINFO, UINT); + +HENHMETAFILE GetEnhMetaFileA(LPCSTR); + +HENHMETAFILE GetEnhMetaFileW(LPCWSTR); + +UINT GetEnhMetaFileBits(HENHMETAFILE, UINT, LPBYTE); + +UINT GetEnhMetaFileDescriptionA(HENHMETAFILE, UINT, LPSTR); + +UINT GetEnhMetaFileDescriptionW(HENHMETAFILE, UINT, LPWSTR); + +UINT GetEnhMetaFileHeader(HENHMETAFILE, UINT, LPENHMETAHEADER); + +UINT GetEnhMetaFilePaletteEntries(HENHMETAFILE, UINT, LPPALETTEENTRY); + +UINT GetEnhMetaFilePixelFormat(HENHMETAFILE, DWORD, CPtr!(PIXELFORMATDESCRIPTOR)); + +DWORD GetFontData(HDC, DWORD, DWORD, PVOID, DWORD); + +DWORD GetFontLanguageInfo(HDC); + +DWORD GetGlyphOutlineA(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, PVOID, CPtr!(MAT2)); + +DWORD GetGlyphOutlineW(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, PVOID, CPtr!(MAT2)); + +int GetGraphicsMode(HDC); + +BOOL GetICMProfileA(HDC, DWORD, LPSTR); + +BOOL GetICMProfileW(HDC, DWORD, LPWSTR); + +DWORD GetKerningPairsA(HDC, DWORD, LPKERNINGPAIR); + +DWORD GetKerningPairsW(HDC, DWORD, LPKERNINGPAIR); + +BOOL GetLogColorSpaceA(HCOLORSPACE, LPLOGCOLORSPACEA, DWORD); + +BOOL GetLogColorSpaceW(HCOLORSPACE, LPLOGCOLORSPACEW, DWORD); + +int GetMapMode(HDC); + +HMETAFILE GetMetaFileA(LPCSTR); + +HMETAFILE GetMetaFileW(LPCWSTR); + +UINT GetMetaFileBitsEx(HMETAFILE, UINT, PVOID); + +int GetMetaRgn(HDC, HRGN); + +BOOL GetMiterLimit(HDC, PFLOAT); + +COLORREF GetNearestColor(HDC, COLORREF); + +UINT GetNearestPaletteIndex(HPALETTE, COLORREF); + +int GetObjectA(HGDIOBJ, int, PVOID); + +int GetObjectW(HGDIOBJ, int, PVOID); + +DWORD GetObjectType(HGDIOBJ); + +UINT GetOutlineTextMetricsA(HDC, UINT, LPOUTLINETEXTMETRICA); + +UINT GetOutlineTextMetricsW(HDC, UINT, LPOUTLINETEXTMETRICW); + +UINT GetPaletteEntries(HPALETTE, UINT, UINT, LPPALETTEENTRY); + +int GetPath(HDC, LPPOINT, PBYTE, int); + +COLORREF GetPixel(HDC, int, int); + +int GetPixelFormat(HDC); + +int GetPolyFillMode(HDC); + +BOOL GetRasterizerCaps(LPRASTERIZER_STATUS, UINT); + +int GetRandomRgn(HDC, HRGN, INT); + +DWORD GetRegionData(HRGN, DWORD, LPRGNDATA); + +int GetRgnBox(HRGN, LPRECT); + +int GetROP2(HDC); + +HGDIOBJ GetStockObject(int); + +int GetStretchBltMode(HDC); + +UINT GetSystemPaletteEntries(HDC, UINT, UINT, LPPALETTEENTRY); + +UINT GetSystemPaletteUse(HDC); + +UINT GetTextAlign(HDC); + +int GetTextCharacterExtra(HDC); + +int GetTextCharset(HDC); + +int GetTextCharsetInfo(HDC, LPFONTSIGNATURE, DWORD); + +COLORREF GetTextColor(HDC); + +BOOL GetTextExtentExPointA(HDC, LPCSTR, int, int, LPINT, LPINT, LPSIZE); + +BOOL GetTextExtentExPointW(HDC, LPCWSTR, int, int, LPINT, LPINT, LPSIZE); + +BOOL GetTextExtentPointA(HDC, LPCSTR, int, LPSIZE); + +BOOL GetTextExtentPointW(HDC, LPCWSTR, int, LPSIZE); + +BOOL GetTextExtentPoint32A(HDC, LPCSTR, int, LPSIZE); + +BOOL GetTextExtentPoint32W(HDC, LPCWSTR, int, LPSIZE); + +int GetTextFaceA(HDC, int, LPSTR); + +int GetTextFaceW(HDC, int, LPWSTR); + +BOOL GetTextMetricsA(HDC, LPTEXTMETRICA); + +BOOL GetTextMetricsW(HDC, LPTEXTMETRICW); + +BOOL GetViewportExtEx(HDC, LPSIZE); + +BOOL GetViewportOrgEx(HDC, LPPOINT); + +BOOL GetWindowExtEx(HDC, LPSIZE); + +BOOL GetWindowOrgEx(HDC, LPPOINT); + +UINT GetWinMetaFileBits(HENHMETAFILE, UINT, LPBYTE, INT, HDC); + +BOOL GetWorldTransform(HDC, LPXFORM); + +int IntersectClipRect(HDC, int, int, int, int); + +BOOL InvertRgn(HDC, HRGN); + +BOOL LineDDA(int, int, int, int, LINEDDAPROC, LPARAM); + +BOOL LineTo(HDC, int, int); + +BOOL LPtoDP(HDC, LPPOINT, int); + +BOOL MaskBlt(HDC, int, int, int, int, HDC, int, int, HBITMAP, int, int, DWORD); + +BOOL ModifyWorldTransform(HDC, CPtr!(XFORM), DWORD); + +BOOL MoveToEx(HDC, int, int, LPPOINT); + +int OffsetClipRgn(HDC, int, int); + +int OffsetRgn(HRGN, int, int); + +BOOL OffsetViewportOrgEx(HDC, int, int, LPPOINT); + +BOOL OffsetWindowOrgEx(HDC, int, int, LPPOINT); + +BOOL PaintRgn(HDC, HRGN); + +BOOL PatBlt(HDC, int, int, int, int, DWORD); + +HRGN PathToRegion(HDC); + +BOOL Pie(HDC, int, int, int, int, int, int, int, int); + +BOOL PlayEnhMetaFile(HDC, HENHMETAFILE, LPCRECT); + +BOOL PlayEnhMetaFileRecord(HDC, LPHANDLETABLE, CPtr!(ENHMETARECORD), UINT); + +BOOL PlayMetaFile(HDC, HMETAFILE); + +BOOL PlayMetaFileRecord(HDC, LPHANDLETABLE, LPMETARECORD, UINT); + +BOOL PlgBlt(HDC, CPtr!(POINT), HDC, int, int, int, int, HBITMAP, int, int); + +BOOL PolyBezier(HDC, CPtr!(POINT), DWORD); + +BOOL PolyBezierTo(HDC, CPtr!(POINT), DWORD); + +BOOL PolyDraw(HDC, CPtr!(POINT), CPtr!(BYTE), int); + +BOOL Polygon(HDC, CPtr!(POINT), int); + +BOOL Polyline(HDC, CPtr!(POINT), int); + +BOOL PolylineTo(HDC, CPtr!(POINT), DWORD); + +BOOL PolyPolygon(HDC, CPtr!(POINT), CPtr!(INT), int); + +BOOL PolyPolyline(HDC, CPtr!(POINT), CPtr!(DWORD), DWORD); + +BOOL PolyTextOutA(HDC, CPtr!(POLYTEXTA), int); + +BOOL PolyTextOutW(HDC, CPtr!(POLYTEXTW), int); + +BOOL PtInRegion(HRGN, int, int); + +BOOL PtVisible(HDC, int, int); + +UINT RealizePalette(HDC); + +BOOL Rectangle(HDC, int, int, int, int); + +BOOL RectInRegion(HRGN, LPCRECT); + +BOOL RectVisible(HDC, LPCRECT); + +BOOL RemoveFontResourceA(LPCSTR); + +BOOL RemoveFontResourceW(LPCWSTR); + +HDC ResetDCA(HDC, CPtr!(DEVMODEA)); + +HDC ResetDCW(HDC, CPtr!(DEVMODEW)); + +BOOL ResizePalette(HPALETTE, UINT); + +BOOL RestoreDC(HDC, int); + +BOOL RoundRect(HDC, int, int, int, int, int, int); + +int SaveDC(HDC); + +BOOL ScaleViewportExtEx(HDC, int, int, int, int, LPSIZE); + +BOOL ScaleWindowExtEx(HDC, int, int, int, int, LPSIZE); + +BOOL SelectClipPath(HDC, int); + +int SelectClipRgn(HDC, HRGN); + +HGDIOBJ SelectObject(HDC, HGDIOBJ); + +HPALETTE SelectPalette(HDC, HPALETTE, BOOL); + +int SetAbortProc(HDC, ABORTPROC); + +int SetArcDirection(HDC, int); + +LONG SetBitmapBits(HBITMAP, DWORD, PCVOID); + +BOOL SetBitmapDimensionEx(HBITMAP, int, int, LPSIZE); + +COLORREF SetBkColor(HDC, COLORREF); + +int SetBkMode(HDC, int); + +UINT SetBoundsRect(HDC, LPCRECT, UINT); + +BOOL SetBrushOrgEx(HDC, int, int, LPPOINT); + +BOOL SetColorAdjustment(HDC, CPtr!(COLORADJUSTMENT)); + +BOOL SetColorSpace(HDC, HCOLORSPACE); + +BOOL SetDeviceGammaRamp(HDC, PVOID); + +UINT SetDIBColorTable(HDC, UINT, UINT, CPtr!(RGBQUAD)); + +int SetDIBits(HDC, HBITMAP, UINT, UINT, PCVOID, CPtr!(BITMAPINFO), UINT); + +int SetDIBitsToDevice(HDC, int, int, DWORD, DWORD, int, int, UINT, UINT, PCVOID, CPtr!(BITMAPINFO), UINT); + +HENHMETAFILE SetEnhMetaFileBits(UINT, CPtr!(BYTE)); + +int SetGraphicsMode(HDC, int); + +int SetICMMode(HDC, int); + +BOOL SetICMProfileA(HDC, LPSTR); + +BOOL SetICMProfileW(HDC, LPWSTR); + +int SetMapMode(HDC, int); + +static + +if (WINVER >= 0x0500) +{ + DWORD SetLayout(HDC hdc, DWORD l); + + DWORD GetLayout(HDC hdc); +} + +DWORD SetMapperFlags(HDC, DWORD); + +HMETAFILE SetMetaFileBitsEx(UINT, CPtr!(BYTE)); + +int SetMetaRgn(HDC); + +BOOL SetMiterLimit(HDC, FLOAT, PFLOAT); + +UINT SetPaletteEntries(HPALETTE, UINT, UINT, CPtr!(PALETTEENTRY)); + +COLORREF SetPixel(HDC, int, int, COLORREF); + +BOOL SetPixelFormat(HDC, int, CPtr!(PIXELFORMATDESCRIPTOR)); + +BOOL SetPixelV(HDC, int, int, COLORREF); + +int SetPolyFillMode(HDC, int); + +BOOL SetRectRgn(HRGN, int, int, int, int); + +int SetROP2(HDC, int); + +int SetStretchBltMode(HDC, int); + +UINT SetSystemPaletteUse(HDC, UINT); + +UINT SetTextAlign(HDC, UINT); + +int SetTextCharacterExtra(HDC, int); + +COLORREF SetTextColor(HDC, COLORREF); + +BOOL SetTextJustification(HDC, int, int); + +BOOL SetViewportExtEx(HDC, int, int, LPSIZE); + +BOOL SetViewportOrgEx(HDC, int, int, LPPOINT); + +BOOL SetWindowExtEx(HDC, int, int, LPSIZE); + +BOOL SetWindowOrgEx(HDC, int, int, LPPOINT); + +HENHMETAFILE SetWinMetaFileBits(UINT, CPtr!(BYTE), HDC, CPtr!(METAFILEPICT)); + +BOOL SetWorldTransform(HDC, CPtr!(XFORM)); + +int StartDocA(HDC, CPtr!(DOCINFOA)); + +int StartDocW(HDC, CPtr!(DOCINFOW)); + +int StartPage(HDC); + +BOOL StretchBlt(HDC, int, int, int, int, HDC, int, int, int, int, DWORD); + +int StretchDIBits(HDC, int, int, int, int, int, int, int, int, CPtr!(VOID), CPtr!(BITMAPINFO), UINT, DWORD); + +BOOL StrokeAndFillPath(HDC); + +BOOL StrokePath(HDC); + +BOOL SwapBuffers(HDC); + +BOOL TextOutA(HDC, int, int, LPCSTR, int); + +BOOL TextOutW(HDC, int, int, LPCWSTR, int); + +BOOL TranslateCharsetInfo(PDWORD, LPCHARSETINFO, DWORD); + +BOOL UnrealizeObject(HGDIOBJ); + +BOOL UpdateColors(HDC); + +BOOL UpdateICMRegKeyA(DWORD, DWORD, LPSTR, UINT); + +BOOL UpdateICMRegKeyW(DWORD, DWORD, LPWSTR, UINT); + +BOOL WidenPath(HDC); + +BOOL wglCopyContext(HGLRC, HGLRC, UINT); + +HGLRC wglCreateContext(HDC); + +HGLRC wglCreateLayerContext(HDC, int); + +BOOL wglDeleteContext(HGLRC); + +BOOL wglDescribeLayerPlane(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR); + +HGLRC wglGetCurrentContext(); + +HDC wglGetCurrentDC(); + +int wglGetLayerPaletteEntries(HDC, int, int, int, COLORREF*); + +PROC wglGetProcAddress(LPCSTR); + +BOOL wglMakeCurrent(HDC, HGLRC); + +BOOL wglRealizeLayerPalette(HDC, int, BOOL); + +int wglSetLayerPaletteEntries(HDC, int, int, int, CPtr!(COLORREF)); + +BOOL wglShareLists(HGLRC, HGLRC); + +BOOL wglSwapLayerBuffers(HDC, UINT); + +BOOL wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD); + +BOOL wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD); + +BOOL wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT); + +BOOL wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT); + +static + +if (WINVER >= 0x0500) +{ + alias WGLSWAP*PWGLSWAP; + struct WGLSWAP + { + HDC hdc; + UINT uiFlags; + } + const WGL_SWAPMULTIPLE_MAX = 16; + DWORD wglSwapMultipleBuffers(UINT, WGLSWAP*); +} + +static + +if (WINVER >= 0x0500) +{ + BOOL GdiAlphaBlend(HDC, int, int, int, int, HDC, int, int, int, int, BLENDFUNCTION); + + BOOL GradientFill(HDC, PTRIVERTEX, ULONG, PVOID, ULONG, ULONG); + + BOOL TransparentBlt(HDC, int, int, int, int, HDC, int, int, int, int, UINT); +} + +static + +if (_WIN32_WINNT >= 0x0500) +{ + COLORREF SetDCBrushColor(HDC, COLORREF); + + COLORREF SetDCPenColor(HDC, COLORREF); + + HANDLE AddFontMemResourceEx(PVOID, DWORD, PVOID, DWORD*); + + int AddFontResourceExA(LPCSTR, DWORD, PVOID); + + int AddFontResourceExW(LPCWSTR, DWORD, PVOID); + + BOOL RemoveFontMemResourceEx(HANDLE); + + BOOL RemoveFontResourceExA(LPCSTR, DWORD, PVOID); + + BOOL RemoveFontResourceExW(LPCWSTR, DWORD, PVOID); + + DWORD GetFontUnicodeRanges(HDC, LPGLYPHSET); + + DWORD GetGlyphIndicesA(HDC, LPCSTR, int, LPWORD, DWORD); + + DWORD GetGlyphIndicesW(HDC, LPCWSTR, int, LPWORD, DWORD); + + BOOL GetTextExtentPointI(HDC, LPWORD, int, LPSIZE); + + BOOL GetTextExtentExPointI(HDC, LPWORD, int, int, LPINT, LPINT, LPSIZE); + + BOOL GetCharWidthI(HDC, UINT, UINT, LPWORD, LPINT); + + BOOL GetCharABCWidthsI(HDC, UINT, UINT, LPWORD, LPABC); +} +} // extern (Windows) + +version (Unicode) +{ + alias WCHAR BCHAR; + alias DOCINFOW DOCINFO; + alias LOGFONTW LOGFONT; + + alias TEXTMETRICW TEXTMETRIC; + alias NPTEXTMETRICW NPTEXTMETRIC; + alias ICMENUMPROCW ICMENUMPROC; + alias FONTENUMPROCW FONTENUMPROC; + alias DEVMODEW DEVMODE; + + alias EXTLOGFONTW EXTLOGFONT; + alias GCP_RESULTSW GCP_RESULTS; + alias OUTLINETEXTMETRICW OUTLINETEXTMETRIC; + alias POLYTEXTW POLYTEXT; + alias LOGCOLORSPACEW LOGCOLORSPACE; + alias NEWTEXTMETRICW NEWTEXTMETRIC; + alias NEWTEXTMETRICEXW NEWTEXTMETRICEX; + alias ENUMLOGFONTW ENUMLOGFONT; + alias ENUMLOGFONTEXW ENUMLOGFONTEX; + alias DISPLAY_DEVICEW DISPLAY_DEVICE; + alias AddFontResourceW AddFontResource; + + alias CopyEnhMetaFileW CopyEnhMetaFile; + alias CopyMetaFileW CopyMetaFile; + alias CreateColorSpaceW CreateColorSpace; + alias CreateDCW CreateDC; + alias CreateEnhMetaFileW CreateEnhMetaFile; + alias CreateFontW CreateFont; + alias CreateFontIndirectW CreateFontIndirect; + alias CreateICW CreateIC; + alias CreateMetaFileW CreateMetaFile; + alias CreateScalableFontResourceW CreateScalableFontResource; + alias DeviceCapabilitiesW DeviceCapabilities; + alias EnumFontFamiliesW EnumFontFamilies; + alias EnumFontFamiliesExW EnumFontFamiliesEx; + alias EnumFontsW EnumFonts; + alias EnumICMProfilesW EnumICMProfiles; + alias ExtTextOutW ExtTextOut; + alias GetCharABCWidthsFloatW GetCharABCWidthsFloat; + alias GetCharABCWidthsW GetCharABCWidths; + alias GetCharacterPlacementW GetCharacterPlacement; + alias GetCharWidth32W GetCharWidth32; + alias GetCharWidthFloatW GetCharWidthFloat; + alias GetCharWidthW GetCharWidth; + alias GetEnhMetaFileW GetEnhMetaFile; + alias GetEnhMetaFileDescriptionW GetEnhMetaFileDescription; + alias GetGlyphOutlineW GetGlyphOutline; + alias GetICMProfileW GetICMProfile; + alias GetKerningPairsW GetKerningPairs; + alias GetLogColorSpaceW GetLogColorSpace; + alias GetMetaFileW GetMetaFile; + alias GetObjectW GetObject; + alias GetOutlineTextMetricsW GetOutlineTextMetrics; + alias GetTextExtentPointW GetTextExtentPoint; + alias GetTextExtentExPointW GetTextExtentExPoint; + alias GetTextExtentPoint32W GetTextExtentPoint32; + alias GetTextFaceW GetTextFace; + alias GetTextMetricsW GetTextMetrics; + alias PolyTextOutW PolyTextOut; + alias RemoveFontResourceW RemoveFontResource; + + alias ResetDCW ResetDC; + alias SetICMProfileW SetICMProfile; + alias StartDocW StartDoc; + alias TextOutW TextOut; + alias UpdateICMRegKeyW UpdateICMRegKey; + alias wglUseFontBitmapsW wglUseFontBitmaps; + alias wglUseFontOutlinesW wglUseFontOutlines; + static + + if (_WIN32_WINNT >= 0x0500) + { + alias ENUMLOGFONTEXDVW ENUMLOGFONTEXDV; + alias PENUMLOGFONTEXDVW PENUMLOGFONTEXDV; + alias LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV; + alias AddFontResourceExW AddFontResourceEx; + alias RemoveFontResourceExW RemoveFontResourceEx; + alias GetGlyphIndicesW GetGlyphIndices; + } +} +else /* non-unicode build */ +{ + alias BYTE BCHAR; + alias DOCINFOA DOCINFO; + alias LOGFONTA LOGFONT; + alias TEXTMETRICA TEXTMETRIC; + alias NPTEXTMETRICA NPTEXTMETRIC; + alias ICMENUMPROCA ICMENUMPROC; + alias FONTENUMPROCA FONTENUMPROC; + alias DEVMODEA DEVMODE; + alias EXTLOGFONTA EXTLOGFONT; + alias GCP_RESULTSA GCP_RESULTS; + alias OUTLINETEXTMETRICA OUTLINETEXTMETRIC; + alias POLYTEXTA POLYTEXT; + alias LOGCOLORSPACEA LOGCOLORSPACE; + alias NEWTEXTMETRICA NEWTEXTMETRIC; + alias NEWTEXTMETRICEXA NEWTEXTMETRICEX; + alias ENUMLOGFONTA ENUMLOGFONT; + alias ENUMLOGFONTEXA ENUMLOGFONTEX; + alias DISPLAY_DEVICEA DISPLAY_DEVICE; + + alias AddFontResourceA AddFontResource; + alias CopyEnhMetaFileA CopyEnhMetaFile; + alias CopyMetaFileA CopyMetaFile; + alias CreateColorSpaceA CreateColorSpace; + alias CreateDCA CreateDC; + alias CreateEnhMetaFileA CreateEnhMetaFile; + alias CreateFontA CreateFont; + alias CreateFontIndirectA CreateFontIndirect; + alias CreateICA CreateIC; + alias CreateMetaFileA CreateMetaFile; + alias CreateScalableFontResourceA CreateScalableFontResource; + alias DeviceCapabilitiesA DeviceCapabilities; + alias EnumFontFamiliesA EnumFontFamilies; + alias EnumFontFamiliesExA EnumFontFamiliesEx; + alias EnumFontsA EnumFonts; + alias EnumICMProfilesA EnumICMProfiles; + alias ExtTextOutA ExtTextOut; + alias GetCharWidthFloatA GetCharWidthFloat; + alias GetCharWidthA GetCharWidth; + alias GetCharacterPlacementA GetCharacterPlacement; + alias GetCharABCWidthsA GetCharABCWidths; + alias GetCharABCWidthsFloatA GetCharABCWidthsFloat; + alias GetCharWidth32A GetCharWidth32; + alias GetEnhMetaFileA GetEnhMetaFile; + alias GetEnhMetaFileDescriptionA GetEnhMetaFileDescription; + alias GetGlyphOutlineA GetGlyphOutline; + alias GetICMProfileA GetICMProfile; + alias GetKerningPairsA GetKerningPairs; + alias GetLogColorSpaceA GetLogColorSpace; + alias GetMetaFileA GetMetaFile; + alias GetObjectA GetObject; + alias GetOutlineTextMetricsA GetOutlineTextMetrics; + alias GetTextExtentPointA GetTextExtentPoint; + alias GetTextExtentExPointA GetTextExtentExPoint; + alias GetTextExtentPoint32A GetTextExtentPoint32; + alias GetTextFaceA GetTextFace; + alias GetTextMetricsA GetTextMetrics; + alias PolyTextOutA PolyTextOut; + alias RemoveFontResourceA RemoveFontResource; + alias ResetDCA ResetDC; + alias SetICMProfileA SetICMProfile; + alias StartDocA StartDoc; + alias TextOutA TextOut; + alias UpdateICMRegKeyA UpdateICMRegKey; + alias wglUseFontBitmapsA wglUseFontBitmaps; + alias wglUseFontOutlinesA wglUseFontOutlines; + static + + if (_WIN32_WINNT >= 0x0500) + { + alias ENUMLOGFONTEXDVA ENUMLOGFONTEXDV; + alias PENUMLOGFONTEXDVA PENUMLOGFONTEXDV; + alias LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV; + alias AddFontResourceExA AddFontResourceEx; + alias RemoveFontResourceExA RemoveFontResourceEx; + alias GetGlyphIndicesA GetGlyphIndices; + } +} + +// Common to both ASCII & UNICODE +alias DOCINFO*LPDOCINFO; +alias LOGFONT*PLOGFONT, NPLOGFONT, LPLOGFONT; +alias TEXTMETRIC*PTEXTMETRIC, LPTEXTMETRIC; +alias DEVMODE*PDEVMODE, NPDEVMODE, LPDEVMODE; +alias EXTLOGFONT *PEXTLOGFONT, NPEXTLOGFONT, LPEXTLOGFONT; +alias GCP_RESULTS*LPGCP_RESULTS; +alias OUTLINETEXTMETRIC*POUTLINETEXTMETRIC, NPOUTLINETEXTMETRIC, LPOUTLINETEXTMETRIC; +alias POLYTEXT*PPOLYTEXT, NPPOLYTEXT, LPPOLYTEXT; +alias LOGCOLORSPACE*LPLOGCOLORSPACE; +alias NEWTEXTMETRIC*PNEWTEXTMETRIC, NPNEWTEXTMETRIC, LPNEWTEXTMETRIC; +alias ENUMLOGFONT*LPENUMLOGFONT; +alias ENUMLOGFONTEX *LPENUMLOGFONTEX; +alias DISPLAY_DEVICE*PDISPLAY_DEVICE, LPDISPLAY_DEVICE; ADDED src/win32/wininet.d Index: src/win32/wininet.d ================================================================== --- src/win32/wininet.d +++ src/win32/wininet.d @@ -0,0 +1,1241 @@ +/***********************************************************************\ +* wininet.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.wininet; + +// FIXME: check types and grouping of constants + +import win32.windows; + +enum { + INTERNET_INVALID_PORT_NUMBER = 0, + INTERNET_DEFAULT_FTP_PORT = 21, + INTERNET_DEFAULT_GOPHER_PORT = 70, + INTERNET_DEFAULT_HTTP_PORT = 80, + INTERNET_DEFAULT_HTTPS_PORT = 443, + INTERNET_DEFAULT_SOCKS_PORT = 1080 +} + +const size_t + MAX_CACHE_ENTRY_INFO_SIZE = 4096, + INTERNET_MAX_HOST_NAME_LENGTH = 256, + INTERNET_MAX_USER_NAME_LENGTH = 128, + INTERNET_MAX_PASSWORD_LENGTH = 128, + INTERNET_MAX_PORT_NUMBER_LENGTH = 5, + INTERNET_MAX_PORT_NUMBER_VALUE = 65535, + INTERNET_MAX_PATH_LENGTH = 2048, + INTERNET_MAX_SCHEME_LENGTH = 32, + INTERNET_MAX_URL_LENGTH = INTERNET_MAX_SCHEME_LENGTH + + "://".length + + INTERNET_MAX_PATH_LENGTH; + +enum : DWORD { + INTERNET_KEEP_ALIVE_UNKNOWN = DWORD.max, + INTERNET_KEEP_ALIVE_DISABLED = 0, + INTERNET_KEEP_ALIVE_ENABLED +} + +enum { + INTERNET_REQFLAG_FROM_CACHE = 1, + INTERNET_REQFLAG_ASYNC = 2 +} + +const DWORD + INTERNET_FLAG_RELOAD = 0x80000000, + INTERNET_FLAG_RAW_DATA = 0x40000000, + INTERNET_FLAG_EXISTING_CONNECT = 0x20000000, + INTERNET_FLAG_ASYNC = 0x10000000, + INTERNET_FLAG_PASSIVE = 0x08000000, + INTERNET_FLAG_NO_CACHE_WRITE = 0x04000000, + INTERNET_FLAG_DONT_CACHE = INTERNET_FLAG_NO_CACHE_WRITE, + INTERNET_FLAG_MAKE_PERSISTENT = 0x02000000, + INTERNET_FLAG_OFFLINE = 0x01000000, + INTERNET_FLAG_SECURE = 0x00800000, + INTERNET_FLAG_KEEP_CONNECTION = 0x00400000, + INTERNET_FLAG_NO_AUTO_REDIRECT = 0x00200000, + INTERNET_FLAG_READ_PREFETCH = 0x00100000, + INTERNET_FLAG_NO_COOKIES = 0x00080000, + INTERNET_FLAG_NO_AUTH = 0x00040000, + INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP = 0x00008000, + INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS = 0x00004000, + INTERNET_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000, + INTERNET_FLAG_IGNORE_CERT_CN_INVALID = 0x00001000, + INTERNET_FLAG_RESYNCHRONIZE = 0x00000800, + INTERNET_FLAG_HYPERLINK = 0x00000400, + INTERNET_FLAG_NO_UI = 0x00000200, + INTERNET_FLAG_PRAGMA_NOCACHE = 0x00000100, + INTERNET_FLAG_MUST_CACHE_REQUEST = 0x00000010, + INTERNET_FLAG_TRANSFER_ASCII = FTP_TRANSFER_TYPE_ASCII, + INTERNET_FLAG_TRANSFER_BINARY = FTP_TRANSFER_TYPE_BINARY, + + SECURITY_INTERNET_MASK = 0x0000F000, + SECURITY_SET_MASK = SECURITY_INTERNET_MASK, + + INTERNET_FLAGS_MASK = 0xFFFCFE13, + INTERNET_OPTIONS_MASK = ~INTERNET_FLAGS_MASK; + +const INTERNET_NO_CALLBACK = 0; +const INTERNET_RFC1123_FORMAT = 0; +const size_t INTERNET_RFC1123_BUFSIZE = 30; + +const DWORD + ICU_ESCAPE = 0x80000000, + ICU_USERNAME = 0x40000000, + ICU_NO_ENCODE = 0x20000000, + ICU_DECODE = 0x10000000, + ICU_NO_META = 0x08000000, + ICU_ENCODE_SPACES_ONLY = 0x04000000, + ICU_BROWSER_MODE = 0x02000000; + +enum { + INTERNET_OPEN_TYPE_PRECONFIG = 0, + INTERNET_OPEN_TYPE_DIRECT = 1, + INTERNET_OPEN_TYPE_PROXY = 3, + PRE_CONFIG_INTERNET_ACCESS = INTERNET_OPEN_TYPE_PRECONFIG, + LOCAL_INTERNET_ACCESS = INTERNET_OPEN_TYPE_DIRECT, + GATEWAY_INTERNET_ACCESS = 2, + CERN_PROXY_INTERNET_ACCESS = INTERNET_OPEN_TYPE_PROXY, +} + +const ISO_GLOBAL = 1; +const ISO_REGISTRY = 2; +const ISO_VALID_FLAGS = ISO_GLOBAL | ISO_REGISTRY; + +enum { + INTERNET_OPTION_CALLBACK = 1, + INTERNET_OPTION_CONNECT_TIMEOUT, + INTERNET_OPTION_CONNECT_RETRIES, + INTERNET_OPTION_CONNECT_BACKOFF, + INTERNET_OPTION_SEND_TIMEOUT, + INTERNET_OPTION_CONTROL_SEND_TIMEOUT = INTERNET_OPTION_SEND_TIMEOUT, + INTERNET_OPTION_RECEIVE_TIMEOUT, + INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT = INTERNET_OPTION_RECEIVE_TIMEOUT, + INTERNET_OPTION_DATA_SEND_TIMEOUT, + INTERNET_OPTION_DATA_RECEIVE_TIMEOUT, + INTERNET_OPTION_HANDLE_TYPE, + INTERNET_OPTION_CONTEXT_VALUE, + INTERNET_OPTION_LISTEN_TIMEOUT, + INTERNET_OPTION_READ_BUFFER_SIZE, + INTERNET_OPTION_WRITE_BUFFER_SIZE, // = 13 + INTERNET_OPTION_ASYNC_ID = 15, + INTERNET_OPTION_ASYNC_PRIORITY, // = 16 + INTERNET_OPTION_PARENT_HANDLE = 21, + INTERNET_OPTION_KEEP_CONNECTION, + INTERNET_OPTION_REQUEST_FLAGS, + INTERNET_OPTION_EXTENDED_ERROR, // = 24 + INTERNET_OPTION_OFFLINE_MODE = 26, + INTERNET_OPTION_CACHE_STREAM_HANDLE, + INTERNET_OPTION_USERNAME, + INTERNET_OPTION_PASSWORD, + INTERNET_OPTION_ASYNC, + INTERNET_OPTION_SECURITY_FLAGS, + INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT, + INTERNET_OPTION_DATAFILE_NAME, + INTERNET_OPTION_URL, + INTERNET_OPTION_SECURITY_CERTIFICATE, + INTERNET_OPTION_SECURITY_KEY_BITNESS, + INTERNET_OPTION_REFRESH, + INTERNET_OPTION_PROXY, + INTERNET_OPTION_SETTINGS_CHANGED, + INTERNET_OPTION_VERSION, + INTERNET_OPTION_USER_AGENT, + INTERNET_OPTION_END_BROWSER_SESSION, + INTERNET_OPTION_PROXY_USERNAME, + INTERNET_OPTION_PROXY_PASSWORD, // = 44 + INTERNET_FIRST_OPTION = INTERNET_OPTION_CALLBACK, + // why? + INTERNET_LAST_OPTION = INTERNET_OPTION_USER_AGENT +} + +const INTERNET_PRIORITY_FOREGROUND = 1000; + +enum { + INTERNET_HANDLE_TYPE_INTERNET = 1, + INTERNET_HANDLE_TYPE_CONNECT_FTP, + INTERNET_HANDLE_TYPE_CONNECT_GOPHER, + INTERNET_HANDLE_TYPE_CONNECT_HTTP, + INTERNET_HANDLE_TYPE_FTP_FIND, + INTERNET_HANDLE_TYPE_FTP_FIND_HTML, + INTERNET_HANDLE_TYPE_FTP_FILE, + INTERNET_HANDLE_TYPE_FTP_FILE_HTML, + INTERNET_HANDLE_TYPE_GOPHER_FIND, + INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML, + INTERNET_HANDLE_TYPE_GOPHER_FILE, + INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML, + INTERNET_HANDLE_TYPE_HTTP_REQUEST +} + +const DWORD + SECURITY_FLAG_SECURE = 0x00000001, + SECURITY_FLAG_SSL = 0x00000002, + SECURITY_FLAG_SSL3 = 0x00000004, + SECURITY_FLAG_PCT = 0x00000008, + SECURITY_FLAG_PCT4 = 0x00000010, + SECURITY_FLAG_IETFSSL4 = 0x00000020, + SECURITY_FLAG_IGNORE_REVOCATION = 0x00000080, + SECURITY_FLAG_IGNORE_UNKNOWN_CA = 0x00000100, + SECURITY_FLAG_IGNORE_WRONG_USAGE = 0x00000200, + SECURITY_FLAG_40BIT = 0x10000000, + SECURITY_FLAG_128BIT = 0x20000000, + SECURITY_FLAG_56BIT = 0x40000000, + SECURITY_FLAG_UNKNOWNBIT = 0x80000000, + SECURITY_FLAG_NORMALBITNESS = SECURITY_FLAG_40BIT, + SECURITY_FLAG_IGNORE_CERT_CN_INVALID = INTERNET_FLAG_IGNORE_CERT_CN_INVALID, + SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = INTERNET_FLAG_IGNORE_CERT_DATE_INVALID, + SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS, + SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP; + +enum { + INTERNET_SERVICE_FTP = 1, + INTERNET_SERVICE_GOPHER, + INTERNET_SERVICE_HTTP +} + +enum { + INTERNET_STATUS_RESOLVING_NAME = 10, + INTERNET_STATUS_NAME_RESOLVED = 11, + INTERNET_STATUS_CONNECTING_TO_SERVER = 20, + INTERNET_STATUS_CONNECTED_TO_SERVER = 21, + INTERNET_STATUS_SENDING_REQUEST = 30, + INTERNET_STATUS_REQUEST_SENT = 31, + INTERNET_STATUS_RECEIVING_RESPONSE = 40, + INTERNET_STATUS_RESPONSE_RECEIVED = 41, + INTERNET_STATUS_CTL_RESPONSE_RECEIVED = 42, + INTERNET_STATUS_PREFETCH = 43, + INTERNET_STATUS_CLOSING_CONNECTION = 50, + INTERNET_STATUS_CONNECTION_CLOSED = 51, + INTERNET_STATUS_HANDLE_CREATED = 60, + INTERNET_STATUS_HANDLE_CLOSING = 70, + INTERNET_STATUS_REQUEST_COMPLETE = 100, + INTERNET_STATUS_REDIRECT = 110 +} + +const INTERNET_INVALID_STATUS_CALLBACK + = cast(INTERNET_STATUS_CALLBACK) -1; + +enum { + FTP_TRANSFER_TYPE_UNKNOWN = 0, + FTP_TRANSFER_TYPE_ASCII = 1, + FTP_TRANSFER_TYPE_BINARY = 2, + FTP_TRANSFER_TYPE_MASK = 3 +} + +const size_t + MAX_GOPHER_DISPLAY_TEXT = 128, + MAX_GOPHER_SELECTOR_TEXT = 256, + MAX_GOPHER_HOST_NAME = INTERNET_MAX_HOST_NAME_LENGTH, + MAX_GOPHER_LOCATOR_LENGTH + = 1 + MAX_GOPHER_DISPLAY_TEXT + 1 + MAX_GOPHER_SELECTOR_TEXT + 1 + + MAX_GOPHER_HOST_NAME + 1 + INTERNET_MAX_PORT_NUMBER_LENGTH + 4; + +const DWORD + GOPHER_TYPE_TEXT_FILE = 0x00000001, + GOPHER_TYPE_DIRECTORY = 0x00000002, + GOPHER_TYPE_CSO = 0x00000004, + GOPHER_TYPE_ERROR = 0x00000008, + GOPHER_TYPE_MAC_BINHEX = 0x00000010, + GOPHER_TYPE_DOS_ARCHIVE = 0x00000020, + GOPHER_TYPE_UNIX_UUENCODED = 0x00000040, + GOPHER_TYPE_INDEX_SERVER = 0x00000080, + GOPHER_TYPE_TELNET = 0x00000100, + GOPHER_TYPE_BINARY = 0x00000200, + GOPHER_TYPE_REDUNDANT = 0x00000400, + GOPHER_TYPE_TN3270 = 0x00000800, + GOPHER_TYPE_GIF = 0x00001000, + GOPHER_TYPE_IMAGE = 0x00002000, + GOPHER_TYPE_BITMAP = 0x00004000, + GOPHER_TYPE_MOVIE = 0x00008000, + GOPHER_TYPE_SOUND = 0x00010000, + GOPHER_TYPE_HTML = 0x00020000, + GOPHER_TYPE_PDF = 0x00040000, + GOPHER_TYPE_CALENDAR = 0x00080000, + GOPHER_TYPE_INLINE = 0x00100000, + GOPHER_TYPE_UNKNOWN = 0x20000000, + GOPHER_TYPE_ASK = 0x40000000, + GOPHER_TYPE_GOPHER_PLUS = 0x80000000, + GOPHER_TYPE_FILE_MASK = 0x001FF271; + +BOOL IS_GOPHER_FILE(DWORD t) { + return !!(t & GOPHER_TYPE_FILE_MASK); +} + +BOOL IS_GOPHER_DIRECTORY(DWORD t) { + return !!(t & GOPHER_TYPE_DIRECTORY); +} + +BOOL IS_GOPHER_PHONE_SERVER(DWORD t) { + return !!(t & GOPHER_TYPE_CSO); +} + +BOOL IS_GOPHER_ERROR(DWORD t) { + return !!(t & GOPHER_TYPE_ERROR); +} + +BOOL IS_GOPHER_INDEX_SERVER(DWORD t) { + return !!(t & GOPHER_TYPE_INDEX_SERVER); +} + +BOOL IS_GOPHER_TELNET_SESSION(DWORD t) { + return !!(t & GOPHER_TYPE_TELNET); +} + +BOOL IS_GOPHER_BACKUP_SERVER(DWORD t) { + return !!(t & GOPHER_TYPE_REDUNDANT); +} + +BOOL IS_GOPHER_TN3270_SESSION(DWORD t) { + return !!(t & GOPHER_TYPE_TN3270); +} + +BOOL IS_GOPHER_ASK(DWORD t) { + return !!(t & GOPHER_TYPE_ASK); +} + +BOOL IS_GOPHER_PLUS(DWORD t) { + return !!(t & GOPHER_TYPE_GOPHER_PLUS); +} + +BOOL IS_GOPHER_TYPE_KNOWN(DWORD t) { + return !(t & GOPHER_TYPE_UNKNOWN); +} + +const size_t + MAX_GOPHER_CATEGORY_NAME = 128, + MAX_GOPHER_ATTRIBUTE_NAME = 128, + MIN_GOPHER_ATTRIBUTE_LENGTH = 256; + +const TCHAR[] + GOPHER_INFO_CATEGORY = "+INFO", + GOPHER_ADMIN_CATEGORY = "+ADMIN", + GOPHER_VIEWS_CATEGORY = "+VIEWS", + GOPHER_ABSTRACT_CATEGORY = "+ABSTRACT", + GOPHER_VERONICA_CATEGORY = "+VERONICA", + GOPHER_ADMIN_ATTRIBUTE = "Admin", + GOPHER_MOD_DATE_ATTRIBUTE = "Mod-Date", + GOPHER_TTL_ATTRIBUTE = "TTL", + GOPHER_SCORE_ATTRIBUTE = "Score", + GOPHER_RANGE_ATTRIBUTE = "Score-range", + GOPHER_SITE_ATTRIBUTE = "Site", + GOPHER_ORG_ATTRIBUTE = "Org", + GOPHER_LOCATION_ATTRIBUTE = "Loc", + GOPHER_GEOG_ATTRIBUTE = "Geog", + GOPHER_TIMEZONE_ATTRIBUTE = "TZ", + GOPHER_PROVIDER_ATTRIBUTE = "Provider", + GOPHER_VERSION_ATTRIBUTE = "Version", + GOPHER_ABSTRACT_ATTRIBUTE = "Abstract", + GOPHER_VIEW_ATTRIBUTE = "View", + GOPHER_TREEWALK_ATTRIBUTE = "treewalk"; + +enum : DWORD { + GOPHER_ATTRIBUTE_ID_BASE = 0xABCCCC00, + GOPHER_CATEGORY_ID_ALL, + GOPHER_CATEGORY_ID_INFO, + GOPHER_CATEGORY_ID_ADMIN, + GOPHER_CATEGORY_ID_VIEWS, + GOPHER_CATEGORY_ID_ABSTRACT, + GOPHER_CATEGORY_ID_VERONICA, + GOPHER_CATEGORY_ID_ASK, + GOPHER_CATEGORY_ID_UNKNOWN, + GOPHER_ATTRIBUTE_ID_ALL, + GOPHER_ATTRIBUTE_ID_ADMIN, + GOPHER_ATTRIBUTE_ID_MOD_DATE, + GOPHER_ATTRIBUTE_ID_TTL, + GOPHER_ATTRIBUTE_ID_SCORE, + GOPHER_ATTRIBUTE_ID_RANGE, + GOPHER_ATTRIBUTE_ID_SITE, + GOPHER_ATTRIBUTE_ID_ORG, + GOPHER_ATTRIBUTE_ID_LOCATION, + GOPHER_ATTRIBUTE_ID_GEOG, + GOPHER_ATTRIBUTE_ID_TIMEZONE, + GOPHER_ATTRIBUTE_ID_PROVIDER, + GOPHER_ATTRIBUTE_ID_VERSION, + GOPHER_ATTRIBUTE_ID_ABSTRACT, + GOPHER_ATTRIBUTE_ID_VIEW, + GOPHER_ATTRIBUTE_ID_TREEWALK, + GOPHER_ATTRIBUTE_ID_UNKNOWN +} + +const HTTP_MAJOR_VERSION = 1; +const HTTP_MINOR_VERSION = 0; +const TCHAR[] HTTP_VERSION = "HTTP/1.0"; + +enum : DWORD { + HTTP_QUERY_MIME_VERSION, + HTTP_QUERY_CONTENT_TYPE, + HTTP_QUERY_CONTENT_TRANSFER_ENCODING, + HTTP_QUERY_CONTENT_ID, + HTTP_QUERY_CONTENT_DESCRIPTION, + HTTP_QUERY_CONTENT_LENGTH, + HTTP_QUERY_CONTENT_LANGUAGE, + HTTP_QUERY_ALLOW, + HTTP_QUERY_PUBLIC, + HTTP_QUERY_DATE, + HTTP_QUERY_EXPIRES, + HTTP_QUERY_LAST_MODIFIED, + HTTP_QUERY_MESSAGE_ID, + HTTP_QUERY_URI, + HTTP_QUERY_DERIVED_FROM, + HTTP_QUERY_COST, + HTTP_QUERY_LINK, + HTTP_QUERY_PRAGMA, + HTTP_QUERY_VERSION, + HTTP_QUERY_STATUS_CODE, + HTTP_QUERY_STATUS_TEXT, + HTTP_QUERY_RAW_HEADERS, + HTTP_QUERY_RAW_HEADERS_CRLF, + HTTP_QUERY_CONNECTION, + HTTP_QUERY_ACCEPT, + HTTP_QUERY_ACCEPT_CHARSET, + HTTP_QUERY_ACCEPT_ENCODING, + HTTP_QUERY_ACCEPT_LANGUAGE, + HTTP_QUERY_AUTHORIZATION, + HTTP_QUERY_CONTENT_ENCODING, + HTTP_QUERY_FORWARDED, + HTTP_QUERY_FROM, + HTTP_QUERY_IF_MODIFIED_SINCE, + HTTP_QUERY_LOCATION, + HTTP_QUERY_ORIG_URI, + HTTP_QUERY_REFERER, + HTTP_QUERY_RETRY_AFTER, + HTTP_QUERY_SERVER, + HTTP_QUERY_TITLE, + HTTP_QUERY_USER_AGENT, + HTTP_QUERY_WWW_AUTHENTICATE, + HTTP_QUERY_PROXY_AUTHENTICATE, + HTTP_QUERY_ACCEPT_RANGES, + HTTP_QUERY_SET_COOKIE, + HTTP_QUERY_COOKIE, + HTTP_QUERY_REQUEST_METHOD, + HTTP_QUERY_MAX = 45, + HTTP_QUERY_CUSTOM = 65535 +} + +const DWORD + HTTP_QUERY_FLAG_REQUEST_HEADERS = 0x80000000, + HTTP_QUERY_FLAG_SYSTEMTIME = 0x40000000, + HTTP_QUERY_FLAG_NUMBER = 0x20000000, + HTTP_QUERY_FLAG_COALESCE = 0x10000000, + HTTP_QUERY_MODIFIER_FLAGS_MASK = 0xF0000000, + HTTP_QUERY_HEADER_MASK = ~HTTP_QUERY_MODIFIER_FLAGS_MASK; + +enum { + HTTP_STATUS_OK = 200, + HTTP_STATUS_CREATED, + HTTP_STATUS_ACCEPTED, + HTTP_STATUS_PARTIAL, + HTTP_STATUS_NO_CONTENT, // = 204 + HTTP_STATUS_AMBIGUOUS = 300, + HTTP_STATUS_MOVED, + HTTP_STATUS_REDIRECT, + HTTP_STATUS_REDIRECT_METHOD, + HTTP_STATUS_NOT_MODIFIED, // = 304 + HTTP_STATUS_BAD_REQUEST = 400, + HTTP_STATUS_DENIED, + HTTP_STATUS_PAYMENT_REQ, + HTTP_STATUS_FORBIDDEN, + HTTP_STATUS_NOT_FOUND, + HTTP_STATUS_BAD_METHOD, + HTTP_STATUS_NONE_ACCEPTABLE, + HTTP_STATUS_PROXY_AUTH_REQ, + HTTP_STATUS_REQUEST_TIMEOUT, + HTTP_STATUS_CONFLICT, + HTTP_STATUS_GONE, + HTTP_STATUS_AUTH_REFUSED, // = 411 + HTTP_STATUS_SERVER_ERROR = 500, + HTTP_STATUS_NOT_SUPPORTED, + HTTP_STATUS_BAD_GATEWAY, + HTTP_STATUS_SERVICE_UNAVAIL, + HTTP_STATUS_GATEWAY_TIMEOUT // = 504 +} + +enum { + INTERNET_PREFETCH_PROGRESS, + INTERNET_PREFETCH_COMPLETE, + INTERNET_PREFETCH_ABORTED +} + +const FLAGS_ERROR_UI_FILTER_FOR_ERRORS = 0x01; +const FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS = 0x02; +const FLAGS_ERROR_UI_FLAGS_GENERATE_DATA = 0x04; +const FLAGS_ERROR_UI_FLAGS_NO_UI = 0x08; + +const DWORD + HTTP_ADDREQ_INDEX_MASK = 0x0000FFFF, + HTTP_ADDREQ_FLAGS_MASK = 0xFFFF0000, + HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON = 0x01000000, + HTTP_ADDREQ_FLAG_ADD_IF_NEW = 0x10000000, + HTTP_ADDREQ_FLAG_ADD = 0x20000000, + HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA = 0x40000000, + HTTP_ADDREQ_FLAG_COALESCE = HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA, + HTTP_ADDREQ_FLAG_REPLACE = 0x80000000; + +enum { + INTERNET_ERROR_BASE = 12000, + ERROR_INTERNET_OUT_OF_HANDLES, + ERROR_INTERNET_TIMEOUT, + ERROR_INTERNET_EXTENDED_ERROR, + ERROR_INTERNET_INTERNAL_ERROR, + ERROR_INTERNET_INVALID_URL, + ERROR_INTERNET_UNRECOGNIZED_SCHEME, + ERROR_INTERNET_NAME_NOT_RESOLVED, + ERROR_INTERNET_PROTOCOL_NOT_FOUND, + ERROR_INTERNET_INVALID_OPTION, + ERROR_INTERNET_BAD_OPTION_LENGTH, + ERROR_INTERNET_OPTION_NOT_SETTABLE, + ERROR_INTERNET_SHUTDOWN, + ERROR_INTERNET_INCORRECT_USER_NAME, + ERROR_INTERNET_INCORRECT_PASSWORD, + ERROR_INTERNET_LOGIN_FAILURE, + ERROR_INTERNET_INVALID_OPERATION, + ERROR_INTERNET_OPERATION_CANCELLED, + ERROR_INTERNET_INCORRECT_HANDLE_TYPE, + ERROR_INTERNET_INCORRECT_HANDLE_STATE, + ERROR_INTERNET_NOT_PROXY_REQUEST, + ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND, + ERROR_INTERNET_BAD_REGISTRY_PARAMETER, + ERROR_INTERNET_NO_DIRECT_ACCESS, + ERROR_INTERNET_NO_CONTEXT, + ERROR_INTERNET_NO_CALLBACK, + ERROR_INTERNET_REQUEST_PENDING, + ERROR_INTERNET_INCORRECT_FORMAT, + ERROR_INTERNET_ITEM_NOT_FOUND, + ERROR_INTERNET_CANNOT_CONNECT, + ERROR_INTERNET_CONNECTION_ABORTED, + ERROR_INTERNET_CONNECTION_RESET, + ERROR_INTERNET_FORCE_RETRY, + ERROR_INTERNET_INVALID_PROXY_REQUEST, + ERROR_INTERNET_NEED_UI, // = INTERNET_ERROR_BASE + 34 + ERROR_INTERNET_HANDLE_EXISTS = INTERNET_ERROR_BASE + 36, + ERROR_INTERNET_SEC_CERT_DATE_INVALID, + ERROR_INTERNET_SEC_CERT_CN_INVALID, + ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR, + ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR, + ERROR_INTERNET_MIXED_SECURITY, + ERROR_INTERNET_CHG_POST_IS_NON_SECURE, + ERROR_INTERNET_POST_IS_NON_SECURE, + ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED, + ERROR_INTERNET_INVALID_CA, + ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP, + ERROR_INTERNET_ASYNC_THREAD_FAILED, + ERROR_INTERNET_REDIRECT_SCHEME_CHANGE, // = INTERNET_ERROR_BASE + 48 + + ERROR_FTP_TRANSFER_IN_PROGRESS = INTERNET_ERROR_BASE + 110, + ERROR_FTP_DROPPED, // = INTERNET_ERROR_BASE + 111 + ERROR_GOPHER_PROTOCOL_ERROR = INTERNET_ERROR_BASE + 130, + ERROR_GOPHER_NOT_FILE, + ERROR_GOPHER_DATA_ERROR, + ERROR_GOPHER_END_OF_DATA, + ERROR_GOPHER_INVALID_LOCATOR, + ERROR_GOPHER_INCORRECT_LOCATOR_TYPE, + ERROR_GOPHER_NOT_GOPHER_PLUS, + ERROR_GOPHER_ATTRIBUTE_NOT_FOUND, + ERROR_GOPHER_UNKNOWN_LOCATOR, // = INTERNET_ERROR_BASE + 138, + ERROR_HTTP_HEADER_NOT_FOUND = INTERNET_ERROR_BASE + 150, + ERROR_HTTP_DOWNLEVEL_SERVER, + ERROR_HTTP_INVALID_SERVER_RESPONSE, + ERROR_HTTP_INVALID_HEADER, + ERROR_HTTP_INVALID_QUERY_REQUEST, + ERROR_HTTP_HEADER_ALREADY_EXISTS, + ERROR_HTTP_REDIRECT_FAILED, + ERROR_INTERNET_SECURITY_CHANNEL_ERROR, + ERROR_INTERNET_UNABLE_TO_CACHE_FILE, + ERROR_INTERNET_TCPIP_NOT_INSTALLED, + ERROR_HTTP_NOT_REDIRECTED, // = INTERNET_ERROR_BASE + 160 + // why? + INTERNET_ERROR_LAST = ERROR_INTERNET_TCPIP_NOT_INSTALLED +} + + +const NORMAL_CACHE_ENTRY = 0x000001; +const STABLE_CACHE_ENTRY = 0x000002; +const STICKY_CACHE_ENTRY = 0x000004; +const SPARSE_CACHE_ENTRY = 0x010000; +const OCX_CACHE_ENTRY = 0x020000; +const COOKIE_CACHE_ENTRY = 0x100000; +const URLHISTORY_CACHE_ENTRY = 0x200000; + +const CACHE_ENTRY_ATTRIBUTE_FC = 0x0004; +const CACHE_ENTRY_HITRATE_FC = 0x0010; +const CACHE_ENTRY_MODTIME_FC = 0x0040; +const CACHE_ENTRY_EXPTIME_FC = 0x0080; +const CACHE_ENTRY_ACCTIME_FC = 0x0100; +const CACHE_ENTRY_SYNCTIME_FC = 0x0200; +const CACHE_ENTRY_HEADERINFO_FC = 0x0400; + +enum { + WININET_API_FLAG_ASYNC = 1, + WININET_API_FLAG_SYNC = 4, + WININET_API_FLAG_USE_CONTEXT = 8 +} + +// FIXME: how should these really be grouped? +enum { + IRF_ASYNC = WININET_API_FLAG_ASYNC, + IRF_SYNC = WININET_API_FLAG_SYNC, + IRF_USE_CONTEXT = WININET_API_FLAG_USE_CONTEXT, +} +const IRF_NO_WAIT = 8; + +enum { + HSR_ASYNC = WININET_API_FLAG_ASYNC, + HSR_SYNC = WININET_API_FLAG_SYNC, + HSR_USE_CONTEXT = WININET_API_FLAG_USE_CONTEXT, +} + +const HSR_INITIATE = 8; +const HSR_DOWNLOAD = 16; +const HSR_CHUNKED = 32; + +const INTERNET_DIAL_UNATTENDED = 0x8000; +const INTERNET_DIALSTATE_DISCONNECTED = 1; +const INTERENT_GOONLINE_REFRESH = 1; +const INTERENT_GOONLINE_MASK = 1; +const INTERNET_AUTODIAL_FORCE_ONLINE = 1; +const INTERNET_AUTODIAL_FORCE_UNATTENDED = 2; +const INTERNET_AUTODIAL_FAILIFSECURITYCHECK = 4; +const INTERNET_CONNECTION_MODEM = 0x01; +const INTERNET_CONNECTION_LAN = 0x02; +const INTERNET_CONNECTION_PROXY = 0x04; +const INTERNET_CONNECTION_MODEM_BUSY = 0x08; +const INTERNET_RAS_INSTALLED = 0x10; +const INTERNET_CONNECTION_OFFLINE = 0x20; +const INTERNET_CONNECTION_CONFIGURED = 0x40; + +enum { + CACHEGROUP_SEARCH_ALL = 0, + CACHEGROUP_SEARCH_BYURL = 1 +} + +enum { + INTERNET_CACHE_GROUP_ADD = 0, + INTERNET_CACHE_GROUP_REMOVE = 1 +} + +alias HANDLE HINTERNET; +alias HANDLE* LPHINTERNET; + +alias LONGLONG GROUPID; +alias WORD INTERNET_PORT; +alias WORD* LPINTERNET_PORT; + +enum INTERNET_SCHEME { + INTERNET_SCHEME_PARTIAL = -2, + INTERNET_SCHEME_UNKNOWN, + INTERNET_SCHEME_DEFAULT, + INTERNET_SCHEME_FTP, + INTERNET_SCHEME_GOPHER, + INTERNET_SCHEME_HTTP, + INTERNET_SCHEME_HTTPS, + INTERNET_SCHEME_FILE, + INTERNET_SCHEME_NEWS, + INTERNET_SCHEME_MAILTO, + INTERNET_SCHEME_SOCKS, + INTERNET_SCHEME_FIRST = INTERNET_SCHEME_FTP, + INTERNET_SCHEME_LAST = INTERNET_SCHEME_SOCKS +} +alias INTERNET_SCHEME* LPINTERNET_SCHEME; + +struct INTERNET_ASYNC_RESULT { + DWORD dwResult; + DWORD dwError; +} +alias INTERNET_ASYNC_RESULT* LPINTERNET_ASYNC_RESULT; + +struct INTERNET_PREFETCH_STATUS { + DWORD dwStatus; + DWORD dwSize; +} +alias INTERNET_PREFETCH_STATUS* LPINTERNET_PREFETCH_STATUS; + +struct INTERNET_PROXY_INFO { + DWORD dwAccessType; + LPCTSTR lpszProxy; + LPCTSTR lpszProxyBypass; +} +alias INTERNET_PROXY_INFO* LPINTERNET_PROXY_INFO; + +struct INTERNET_VERSION_INFO { + DWORD dwMajorVersion; + DWORD dwMinorVersion; +} +alias INTERNET_VERSION_INFO* LPINTERNET_VERSION_INFO; + +struct URL_COMPONENTSA { + DWORD dwStructSize = URL_COMPONENTSA.sizeof; + LPSTR lpszScheme; + DWORD dwSchemeLength; + INTERNET_SCHEME nScheme; + LPSTR lpszHostName; + DWORD dwHostNameLength; + INTERNET_PORT nPort; + LPSTR lpszUserName; + DWORD dwUserNameLength; + LPSTR lpszPassword; + DWORD dwPasswordLength; + LPSTR lpszUrlPath; + DWORD dwUrlPathLength; + LPSTR lpszExtraInfo; + DWORD dwExtraInfoLength; +} +alias URL_COMPONENTSA* LPURL_COMPONENTSA; + +struct URL_COMPONENTSW { + DWORD dwStructSize = URL_COMPONENTSW.sizeof; + LPWSTR lpszScheme; + DWORD dwSchemeLength; + INTERNET_SCHEME nScheme; + LPWSTR lpszHostName; + DWORD dwHostNameLength; + INTERNET_PORT nPort; + LPWSTR lpszUserName; + DWORD dwUserNameLength; + LPWSTR lpszPassword; + DWORD dwPasswordLength; + LPWSTR lpszUrlPath; + DWORD dwUrlPathLength; + LPWSTR lpszExtraInfo; + DWORD dwExtraInfoLength; +} +alias URL_COMPONENTSW* LPURL_COMPONENTSW; + +struct INTERNET_CERTIFICATE_INFO { + FILETIME ftExpiry; + FILETIME ftStart; + LPTSTR lpszSubjectInfo; + LPTSTR lpszIssuerInfo; + LPTSTR lpszProtocolName; + LPTSTR lpszSignatureAlgName; + LPTSTR lpszEncryptionAlgName; + DWORD dwKeySize; +} +alias INTERNET_CERTIFICATE_INFO* LPINTERNET_CERTIFICATE_INFO; + +extern (Windows) alias void function(HINTERNET, DWORD, DWORD, PVOID, DWORD) + INTERNET_STATUS_CALLBACK; +alias INTERNET_STATUS_CALLBACK* LPINTERNET_STATUS_CALLBACK; + +struct GOPHER_FIND_DATAA { + CHAR[MAX_GOPHER_DISPLAY_TEXT+1] DisplayString; + DWORD GopherType; + DWORD SizeLow; + DWORD SizeHigh; + FILETIME LastModificationTime; + CHAR[MAX_GOPHER_LOCATOR_LENGTH+1] Locator; +} +alias GOPHER_FIND_DATAA* LPGOPHER_FIND_DATAA; + +struct GOPHER_FIND_DATAW { + WCHAR[MAX_GOPHER_DISPLAY_TEXT+1] DisplayString; + DWORD GopherType; + DWORD SizeLow; + DWORD SizeHigh; + FILETIME LastModificationTime; + WCHAR[MAX_GOPHER_LOCATOR_LENGTH+1] Locator; +} +alias GOPHER_FIND_DATAW* LPGOPHER_FIND_DATAW; + +struct GOPHER_ADMIN_ATTRIBUTE_TYPE { + LPCTSTR Comment; + LPCTSTR EmailAddress; +} +alias GOPHER_ADMIN_ATTRIBUTE_TYPE* LPGOPHER_ADMIN_ATTRIBUTE_TYPE; + +struct GOPHER_MOD_DATE_ATTRIBUTE_TYPE { + FILETIME DateAndTime; +} +alias GOPHER_MOD_DATE_ATTRIBUTE_TYPE* LPGOPHER_MOD_DATE_ATTRIBUTE_TYPE; + +struct GOPHER_TTL_ATTRIBUTE_TYPE { + DWORD Ttl; +} +alias GOPHER_TTL_ATTRIBUTE_TYPE* LPGOPHER_TTL_ATTRIBUTE_TYPE; + +struct GOPHER_SCORE_ATTRIBUTE_TYPE { + INT Score; +} +alias GOPHER_SCORE_ATTRIBUTE_TYPE* LPGOPHER_SCORE_ATTRIBUTE_TYPE; + +struct GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE { + INT LowerBound; + INT UpperBound; +} +alias GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE* LPGOPHER_SCORE_RANGE_ATTRIBUTE_TYPE; + +struct GOPHER_SITE_ATTRIBUTE_TYPE { + LPCTSTR Site; +} +alias GOPHER_SITE_ATTRIBUTE_TYPE* LPGOPHER_SITE_ATTRIBUTE_TYPE; + +struct GOPHER_ORGANIZATION_ATTRIBUTE_TYPE { + LPCTSTR Organization; +} +alias GOPHER_ORGANIZATION_ATTRIBUTE_TYPE* LPGOPHER_ORGANIZATION_ATTRIBUTE_TYPE; + +struct GOPHER_LOCATION_ATTRIBUTE_TYPE { + LPCTSTR Location; +} +alias GOPHER_LOCATION_ATTRIBUTE_TYPE* LPGOPHER_LOCATION_ATTRIBUTE_TYPE; + +struct GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE { + INT DegreesNorth; + INT MinutesNorth; + INT SecondsNorth; + INT DegreesEast; + INT MinutesEast; + INT SecondsEast; +} +alias GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE* + LPGOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE; + +struct GOPHER_TIMEZONE_ATTRIBUTE_TYPE { + INT Zone; +} +alias GOPHER_TIMEZONE_ATTRIBUTE_TYPE* LPGOPHER_TIMEZONE_ATTRIBUTE_TYPE; + +struct GOPHER_PROVIDER_ATTRIBUTE_TYPE { + LPCTSTR Provider; +} +alias GOPHER_PROVIDER_ATTRIBUTE_TYPE* LPGOPHER_PROVIDER_ATTRIBUTE_TYPE; + +struct GOPHER_VERSION_ATTRIBUTE_TYPE { + LPCTSTR Version; +} +alias GOPHER_VERSION_ATTRIBUTE_TYPE* LPGOPHER_VERSION_ATTRIBUTE_TYPE; + +struct GOPHER_ABSTRACT_ATTRIBUTE_TYPE { + LPCTSTR ShortAbstract; + LPCTSTR AbstractFile; +} +alias GOPHER_ABSTRACT_ATTRIBUTE_TYPE* LPGOPHER_ABSTRACT_ATTRIBUTE_TYPE; + +struct GOPHER_VIEW_ATTRIBUTE_TYPE { + LPCTSTR ContentType; + LPCTSTR Language; + DWORD Size; +} +alias GOPHER_VIEW_ATTRIBUTE_TYPE* LPGOPHER_VIEW_ATTRIBUTE_TYPE; + +struct GOPHER_VERONICA_ATTRIBUTE_TYPE { + BOOL TreeWalk; +} +alias GOPHER_VERONICA_ATTRIBUTE_TYPE* LPGOPHER_VERONICA_ATTRIBUTE_TYPE; + +struct GOPHER_ASK_ATTRIBUTE_TYPE { + LPCTSTR QuestionType; + LPCTSTR QuestionText; +} +alias GOPHER_ASK_ATTRIBUTE_TYPE* LPGOPHER_ASK_ATTRIBUTE_TYPE; + +struct GOPHER_UNKNOWN_ATTRIBUTE_TYPE { + LPCTSTR Text; +} +alias GOPHER_UNKNOWN_ATTRIBUTE_TYPE* LPGOPHER_UNKNOWN_ATTRIBUTE_TYPE; + +struct GOPHER_ATTRIBUTE_TYPE { + DWORD CategoryId; + DWORD AttributeId; + union { + GOPHER_ADMIN_ATTRIBUTE_TYPE Admin; + GOPHER_MOD_DATE_ATTRIBUTE_TYPE ModDate; + GOPHER_TTL_ATTRIBUTE_TYPE Ttl; + GOPHER_SCORE_ATTRIBUTE_TYPE Score; + GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE ScoreRange; + GOPHER_SITE_ATTRIBUTE_TYPE Site; + GOPHER_ORGANIZATION_ATTRIBUTE_TYPE Organization; + GOPHER_LOCATION_ATTRIBUTE_TYPE Location; + GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE GeographicalLocation; + GOPHER_TIMEZONE_ATTRIBUTE_TYPE TimeZone; + GOPHER_PROVIDER_ATTRIBUTE_TYPE Provider; + GOPHER_VERSION_ATTRIBUTE_TYPE Version; + GOPHER_ABSTRACT_ATTRIBUTE_TYPE Abstract; + GOPHER_VIEW_ATTRIBUTE_TYPE View; + GOPHER_VERONICA_ATTRIBUTE_TYPE Veronica; + GOPHER_ASK_ATTRIBUTE_TYPE Ask; + GOPHER_UNKNOWN_ATTRIBUTE_TYPE Unknown; + } /+AttributeType;+/ +} +alias GOPHER_ATTRIBUTE_TYPE* LPGOPHER_ATTRIBUTE_TYPE; + +alias BOOL function(LPGOPHER_ATTRIBUTE_TYPE, DWORD) + GOPHER_ATTRIBUTE_ENUMERATOR; + +struct INTERNET_CACHE_ENTRY_INFOA { + DWORD dwStructSize = INTERNET_CACHE_ENTRY_INFOA.sizeof; + LPSTR lpszSourceUrlName; + LPSTR lpszLocalFileName; + DWORD CacheEntryType; + DWORD dwUseCount; + DWORD dwHitRate; + DWORD dwSizeLow; + DWORD dwSizeHigh; + FILETIME LastModifiedTime; + FILETIME ExpireTime; + FILETIME LastAccessTime; + FILETIME LastSyncTime; + PBYTE lpHeaderInfo; + DWORD dwHeaderInfoSize; + LPSTR lpszFileExtension; + DWORD dwReserved; +} +alias INTERNET_CACHE_ENTRY_INFOA* LPINTERNET_CACHE_ENTRY_INFOA; + +struct INTERNET_CACHE_ENTRY_INFOW { + DWORD dwStructSize = INTERNET_CACHE_ENTRY_INFOW.sizeof; + LPWSTR lpszSourceUrlName; + LPWSTR lpszLocalFileName; + DWORD CacheEntryType; + DWORD dwUseCount; + DWORD dwHitRate; + DWORD dwSizeLow; + DWORD dwSizeHigh; + FILETIME LastModifiedTime; + FILETIME ExpireTime; + FILETIME LastAccessTime; + FILETIME LastSyncTime; + PBYTE lpHeaderInfo; + DWORD dwHeaderInfoSize; + LPWSTR lpszFileExtension; + DWORD dwReserved; +} +alias INTERNET_CACHE_ENTRY_INFOW* LPINTERNET_CACHE_ENTRY_INFOW; + +struct INTERNET_BUFFERSA { + DWORD dwStructSize = INTERNET_BUFFERSA.sizeof; + INTERNET_BUFFERSA* Next; + LPCSTR lpcszHeader; + DWORD dwHeadersLength; + DWORD dwHeadersTotal; + LPVOID lpvBuffer; + DWORD dwBufferLength; + DWORD dwBufferTotal; + DWORD dwOffsetLow; + DWORD dwOffsetHigh; +} +alias INTERNET_BUFFERSA* LPINTERNET_BUFFERSA; + +struct INTERNET_BUFFERSW { + DWORD dwStructSize = INTERNET_BUFFERSW.sizeof; + INTERNET_BUFFERSW* Next; + LPCWSTR lpcszHeader; + DWORD dwHeadersLength; + DWORD dwHeadersTotal; + LPVOID lpvBuffer; + DWORD dwBufferLength; + DWORD dwBufferTotal; + DWORD dwOffsetLow; + DWORD dwOffsetHigh; +} +alias INTERNET_BUFFERSW* LPINTERNET_BUFFERSW; + +const size_t + GROUP_OWNER_STORAGE_SIZE = 4, + GROUPNAME_MAX_LENGTH = 120; + +struct INTERNET_CACHE_GROUP_INFOA { + DWORD dwGroupSize; + DWORD dwGroupFlags; + DWORD dwGroupType; + DWORD dwDiskUsage; + DWORD dwDiskQuota; + DWORD[GROUP_OWNER_STORAGE_SIZE] dwOwnerStorage; + CHAR[GROUPNAME_MAX_LENGTH] szGroupName; +} +alias INTERNET_CACHE_GROUP_INFOA* LPINTERNET_CACHE_GROUP_INFOA; + +struct INTERNET_CACHE_GROUP_INFOW { + DWORD dwGroupSize; + DWORD dwGroupFlags; + DWORD dwGroupType; + DWORD dwDiskUsage; + DWORD dwDiskQuota; + DWORD[GROUP_OWNER_STORAGE_SIZE] dwOwnerStorage; + WCHAR[GROUPNAME_MAX_LENGTH] szGroupName; +} +alias INTERNET_CACHE_GROUP_INFOW* LPINTERNET_CACHE_GROUP_INFOW; + +extern (Windows) { + BOOL InternetTimeFromSystemTime(SYSTEMTIME*, DWORD, LPSTR, DWORD); + BOOL InternetTimeToSystemTime(LPCSTR, SYSTEMTIME*, DWORD); + BOOL InternetDebugGetLocalTime(SYSTEMTIME*, PDWORD); + BOOL InternetCrackUrlA(LPCSTR, DWORD, DWORD, LPURL_COMPONENTSA); + BOOL InternetCrackUrlW(LPCWSTR, DWORD, DWORD, LPURL_COMPONENTSW); + BOOL InternetCreateUrlA(LPURL_COMPONENTSA, DWORD, LPSTR, PDWORD); + BOOL InternetCreateUrlW(LPURL_COMPONENTSW, DWORD, LPWSTR, PDWORD); + BOOL InternetCanonicalizeUrlA(LPCSTR, LPSTR, PDWORD, DWORD); + BOOL InternetCanonicalizeUrlW(LPCWSTR, LPWSTR, PDWORD, DWORD); + BOOL InternetCheckConnectionA(LPCSTR, DWORD, DWORD); + BOOL InternetCheckConnectionW(LPCWSTR, DWORD, DWORD); + BOOL InternetCombineUrlA(LPCSTR, LPCSTR, LPSTR, PDWORD, DWORD); + BOOL InternetCombineUrlW(LPCWSTR, LPCWSTR, LPWSTR, PDWORD, DWORD); + HINTERNET InternetOpenA(LPCSTR, DWORD, LPCSTR, LPCSTR, DWORD); + HINTERNET InternetOpenW(LPCWSTR, DWORD, LPCWSTR, LPCWSTR, DWORD); + BOOL InternetCloseHandle(HINTERNET); + HINTERNET InternetConnectA(HINTERNET, LPCSTR, INTERNET_PORT, LPCSTR, + LPCSTR, DWORD, DWORD, DWORD); + HINTERNET InternetConnectW(HINTERNET, LPCWSTR, INTERNET_PORT, LPCWSTR, + LPCWSTR, DWORD, DWORD, DWORD); + HINTERNET InternetOpenUrlA(HINTERNET, LPCSTR, LPCSTR, DWORD, DWORD, + DWORD); + HINTERNET InternetOpenUrlW(HINTERNET, LPCWSTR, LPCWSTR, DWORD, DWORD, + DWORD); + BOOL InternetReadFile(HINTERNET, PVOID, DWORD, PDWORD); + DWORD InternetSetFilePointer(HINTERNET, LONG, PVOID, DWORD, DWORD); + BOOL InternetWriteFile(HINTERNET, LPCVOID, DWORD, PDWORD); + BOOL InternetQueryDataAvailable(HINTERNET, PDWORD, DWORD, DWORD); + BOOL InternetFindNextFileA(HINTERNET, PVOID); + BOOL InternetFindNextFileW(HINTERNET, PVOID); + BOOL InternetQueryOptionA(HINTERNET, DWORD, PVOID, PDWORD); + BOOL InternetQueryOptionW(HINTERNET, DWORD, PVOID, PDWORD); + BOOL InternetSetOptionA(HINTERNET, DWORD, PVOID, DWORD); + BOOL InternetSetOptionW(HINTERNET, DWORD, PVOID, DWORD); + BOOL InternetSetOptionExA(HINTERNET, DWORD, PVOID, DWORD, DWORD); + BOOL InternetSetOptionExW(HINTERNET, DWORD, PVOID, DWORD, DWORD); + BOOL InternetGetLastResponseInfoA(PDWORD, LPSTR, PDWORD); + BOOL InternetGetLastResponseInfoW(PDWORD, LPWSTR, PDWORD); + INTERNET_STATUS_CALLBACK InternetSetStatusCallback(HINTERNET, + INTERNET_STATUS_CALLBACK); + DWORD FtpGetFileSize(HINTERNET, LPDWORD); + HINTERNET FtpFindFirstFileA(HINTERNET, LPCSTR, LPWIN32_FIND_DATA, DWORD, + DWORD); + HINTERNET FtpFindFirstFileW(HINTERNET, LPCWSTR, LPWIN32_FIND_DATA, DWORD, + DWORD); + BOOL FtpGetFileA(HINTERNET, LPCSTR, LPCSTR, BOOL, DWORD, DWORD, DWORD); + BOOL FtpGetFileW(HINTERNET, LPCWSTR, LPCWSTR, BOOL, DWORD, DWORD, DWORD); + BOOL FtpPutFileA(HINTERNET, LPCSTR, LPCSTR, DWORD, DWORD); + BOOL FtpPutFileW(HINTERNET, LPCWSTR, LPCWSTR, DWORD, DWORD); + BOOL FtpDeleteFileA(HINTERNET, LPCSTR); + BOOL FtpDeleteFileW(HINTERNET, LPCWSTR); + BOOL FtpRenameFileA(HINTERNET, LPCSTR, LPCSTR); + BOOL FtpRenameFileW(HINTERNET, LPCWSTR, LPCWSTR); + HINTERNET FtpOpenFileA(HINTERNET, LPCSTR, DWORD, DWORD, DWORD); + HINTERNET FtpOpenFileW(HINTERNET, LPCWSTR, DWORD, DWORD, DWORD); + BOOL FtpCreateDirectoryA(HINTERNET, LPCSTR); + BOOL FtpCreateDirectoryW(HINTERNET, LPCWSTR); + BOOL FtpRemoveDirectoryA(HINTERNET, LPCSTR); + BOOL FtpRemoveDirectoryW(HINTERNET, LPCWSTR); + BOOL FtpSetCurrentDirectoryA(HINTERNET, LPCSTR); + BOOL FtpSetCurrentDirectoryW(HINTERNET, LPCWSTR); + BOOL FtpGetCurrentDirectoryA(HINTERNET, LPSTR, PDWORD); + BOOL FtpGetCurrentDirectoryW(HINTERNET, LPWSTR, PDWORD); + BOOL FtpCommandA(HINTERNET, BOOL, DWORD, LPCSTR, DWORD_PTR, HINTERNET*); + BOOL FtpCommandW(HINTERNET, BOOL, DWORD, LPCWSTR, DWORD_PTR, HINTERNET*); + BOOL GopherCreateLocatorA(LPCSTR, INTERNET_PORT, LPCSTR, LPCSTR, DWORD, + LPSTR, PDWORD); + BOOL GopherCreateLocatorW(LPCWSTR, INTERNET_PORT, LPCWSTR, LPCWSTR, DWORD, + LPWSTR, PDWORD); + BOOL GopherGetLocatorTypeA(LPCSTR, PDWORD); + BOOL GopherGetLocatorTypeW(LPCWSTR, PDWORD); + HINTERNET GopherFindFirstFileA(HINTERNET, LPCSTR, LPCSTR, + LPGOPHER_FIND_DATAA, DWORD, DWORD); + HINTERNET GopherFindFirstFileW(HINTERNET, LPCWSTR, LPCWSTR, + LPGOPHER_FIND_DATAW, DWORD, DWORD); + HINTERNET GopherOpenFileA(HINTERNET, LPCSTR, LPCSTR, DWORD, DWORD); + HINTERNET GopherOpenFileW(HINTERNET, LPCWSTR, LPCWSTR, DWORD, DWORD); + BOOL GopherGetAttributeA(HINTERNET, LPCSTR, LPCSTR, LPBYTE, DWORD, + PDWORD, GOPHER_ATTRIBUTE_ENUMERATOR, DWORD); + BOOL GopherGetAttributeW(HINTERNET, LPCWSTR, LPCWSTR, LPBYTE, DWORD, + PDWORD, GOPHER_ATTRIBUTE_ENUMERATOR, DWORD); + HINTERNET HttpOpenRequestA(HINTERNET, LPCSTR, LPCSTR, LPCSTR, LPCSTR, + LPCSTR*, DWORD, DWORD); + HINTERNET HttpOpenRequestW(HINTERNET, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, + LPCWSTR*, DWORD, DWORD); + BOOL HttpAddRequestHeadersA(HINTERNET, LPCSTR, DWORD, DWORD); + BOOL HttpAddRequestHeadersW(HINTERNET, LPCWSTR, DWORD, DWORD); + BOOL HttpSendRequestA(HINTERNET, LPCSTR, DWORD, PVOID, DWORD); + BOOL HttpSendRequestW(HINTERNET, LPCWSTR, DWORD, PVOID, DWORD); + BOOL HttpQueryInfoA(HINTERNET, DWORD, PVOID, PDWORD, PDWORD); + BOOL HttpQueryInfoW(HINTERNET, DWORD, PVOID, PDWORD, PDWORD); + BOOL InternetSetCookieA(LPCSTR, LPCSTR, LPCSTR); + BOOL InternetSetCookieW(LPCWSTR, LPCWSTR, LPCWSTR); + BOOL InternetGetCookieA(LPCSTR, LPCSTR, LPSTR, PDWORD); + BOOL InternetGetCookieW(LPCWSTR, LPCWSTR, LPWSTR, PDWORD); + DWORD InternetAttemptConnect(DWORD); + DWORD InternetErrorDlg(HWND, HINTERNET, DWORD, DWORD, PVOID*); + DWORD InternetConfirmZoneCrossing(HWND, LPSTR, LPSTR, BOOL); + BOOL CreateUrlCacheEntryA(LPCSTR, DWORD, LPCSTR, LPSTR, DWORD); + BOOL CreateUrlCacheEntryW(LPCWSTR, DWORD, LPCWSTR, LPWSTR, DWORD); + BOOL CommitUrlCacheEntryA(LPCSTR, LPCSTR, FILETIME, FILETIME, DWORD, + LPBYTE, DWORD, LPCSTR, DWORD); + BOOL CommitUrlCacheEntryW(LPCWSTR, LPCWSTR, FILETIME, FILETIME, DWORD, + LPBYTE, DWORD, LPCWSTR, DWORD); + BOOL RetrieveUrlCacheEntryFileA(LPCSTR, LPINTERNET_CACHE_ENTRY_INFOA, + PDWORD, DWORD); + BOOL RetrieveUrlCacheEntryFileW(LPCWSTR, LPINTERNET_CACHE_ENTRY_INFOW, + PDWORD, DWORD); + BOOL UnlockUrlCacheEntryFile(LPCSTR, DWORD); + HANDLE RetrieveUrlCacheEntryStreamA(LPCSTR, LPINTERNET_CACHE_ENTRY_INFOA, + PDWORD, BOOL, DWORD); + HANDLE RetrieveUrlCacheEntryStreamW(LPCWSTR, LPINTERNET_CACHE_ENTRY_INFOW, + PDWORD, BOOL, DWORD); + BOOL ReadUrlCacheEntryStream(HANDLE, DWORD, PVOID, PDWORD, DWORD); + BOOL UnlockUrlCacheEntryStream(HANDLE, DWORD); + BOOL GetUrlCacheEntryInfoA(LPCSTR, LPINTERNET_CACHE_ENTRY_INFOA, PDWORD); + BOOL GetUrlCacheEntryInfoW(LPCWSTR, LPINTERNET_CACHE_ENTRY_INFOW, PDWORD); + BOOL SetUrlCacheEntryInfoA(LPCSTR, LPINTERNET_CACHE_ENTRY_INFOA, DWORD); + BOOL SetUrlCacheEntryInfoW(LPCWSTR, LPINTERNET_CACHE_ENTRY_INFOW, DWORD); + HANDLE FindFirstUrlCacheEntryA(LPCSTR, LPINTERNET_CACHE_ENTRY_INFOA, + PDWORD); + HANDLE FindFirstUrlCacheEntryW(LPCWSTR, LPINTERNET_CACHE_ENTRY_INFOW, + PDWORD); + BOOL FindNextUrlCacheEntryA(HANDLE, LPINTERNET_CACHE_ENTRY_INFOA, PDWORD); + BOOL FindNextUrlCacheEntryW(HANDLE, LPINTERNET_CACHE_ENTRY_INFOW, PDWORD); + BOOL FindCloseUrlCache(HANDLE); + BOOL DeleteUrlCacheEntry(LPCSTR); + DWORD AuthenticateUser(PVOID*, LPSTR, LPSTR, DWORD, LPSTR, DWORD, LPSTR, + LPSTR); + BOOL HttpSendRequestExA(HINTERNET, LPINTERNET_BUFFERSA, + LPINTERNET_BUFFERSA, DWORD, DWORD); + BOOL HttpSendRequestExW(HINTERNET, LPINTERNET_BUFFERSW, + LPINTERNET_BUFFERSW, DWORD, DWORD); + BOOL HttpEndRequestA(HINTERNET, LPINTERNET_BUFFERSA, DWORD, DWORD); + BOOL HttpEndRequestW(HINTERNET, LPINTERNET_BUFFERSW, DWORD, DWORD); + DWORD InternetDial(HWND, LPTSTR, DWORD, LPDWORD, DWORD); + DWORD InternetHangUp(DWORD, DWORD); + BOOL InternetGoOnline(LPTSTR, HWND, DWORD); + BOOL InternetAutodial(DWORD, DWORD); + BOOL InternetAutodialHangup(DWORD); + BOOL InternetGetConnectedState(LPDWORD, DWORD); + BOOL InternetSetDialState(LPCTSTR, DWORD, DWORD); + BOOL InternetReadFileExA(HINTERNET, LPINTERNET_BUFFERSA, DWORD, DWORD_PTR); + BOOL InternetReadFileExW(HINTERNET, LPINTERNET_BUFFERSW, DWORD, DWORD_PTR); + GROUPID CreateUrlCacheGroup(DWORD, LPVOID); + BOOL DeleteUrlCacheGroup(GROUPID, DWORD, LPVOID); + HANDLE FindFirstUrlCacheGroup(DWORD, DWORD, LPVOID, DWORD, GROUPID*, + LPVOID); + BOOL FindNextUrlCacheGroup(HANDLE, GROUPID*, LPVOID); + BOOL GetUrlCacheGroupAttributeA(GROUPID, DWORD, DWORD, + LPINTERNET_CACHE_GROUP_INFOA, LPDWORD, LPVOID); + BOOL GetUrlCacheGroupAttributeW(GROUPID, DWORD, DWORD, + LPINTERNET_CACHE_GROUP_INFOW, LPDWORD, LPVOID); + BOOL SetUrlCacheGroupAttributeA(GROUPID, DWORD, DWORD, + LPINTERNET_CACHE_GROUP_INFOA, LPVOID); + BOOL SetUrlCacheGroupAttributeW(GROUPID, DWORD, DWORD, + LPINTERNET_CACHE_GROUP_INFOW, LPVOID); +} + +version (Unicode) { + alias URL_COMPONENTSW URL_COMPONENTS; + alias LPURL_COMPONENTSW LPURL_COMPONENTS; + alias GOPHER_FIND_DATAW GOPHER_FIND_DATA; + alias LPGOPHER_FIND_DATAW LPGOPHER_FIND_DATA; + alias INTERNET_CACHE_ENTRY_INFOW INTERNET_CACHE_ENTRY_INFO; + alias LPINTERNET_CACHE_ENTRY_INFOW LPINTERNET_CACHE_ENTRY_INFO; + alias INTERNET_BUFFERSW INTERNET_BUFFERS; + alias INTERNET_CACHE_GROUP_INFOW INTERNET_CACHE_GROUP_INFO; + alias LPINTERNET_CACHE_GROUP_INFOW LPINTERNET_CACHE_GROUP_INFO; + alias InternetCrackUrlW InternetCrackUrl; + alias InternetCreateUrlW InternetCreateUrl; + alias InternetCanonicalizeUrlW InternetCanonicalizeUrl; + alias InternetCheckConnectionW InternetCheckConnection; + alias InternetCombineUrlW InternetCombineUrl; + alias InternetOpenW InternetOpen; + alias InternetConnectW InternetConnect; + alias InternetOpenUrlW InternetOpenUrl; + alias InternetFindNextFileW InternetFindNextFile; + alias InternetQueryOptionW InternetQueryOption; + alias InternetSetOptionW InternetSetOption; + alias InternetSetOptionExW InternetSetOptionEx; + alias InternetGetLastResponseInfoW InternetGetLastResponseInfo; + alias InternetReadFileExW InternetReadFileEx; + alias FtpFindFirstFileW FtpFindFirstFile; + alias FtpGetFileW FtpGetFile; + alias FtpPutFileW FtpPutFile; + alias FtpDeleteFileW FtpDeleteFile; + alias FtpRenameFileW FtpRenameFile; + alias FtpOpenFileW FtpOpenFile; + alias FtpCreateDirectoryW FtpCreateDirectory; + alias FtpRemoveDirectoryW FtpRemoveDirectory; + alias FtpSetCurrentDirectoryW FtpSetCurrentDirectory; + alias FtpGetCurrentDirectoryW FtpGetCurrentDirectory; + alias FtpCommandW FtpCommand; + alias GopherGetLocatorTypeW GopherGetLocatorType; + alias GopherCreateLocatorW GopherCreateLocator; + alias GopherFindFirstFileW GopherFindFirstFile; + alias GopherOpenFileW GopherOpenFile; + alias GopherGetAttributeW GopherGetAttribute; + alias HttpSendRequestW HttpSendRequest; + alias HttpOpenRequestW HttpOpenRequest; + alias HttpAddRequestHeadersW HttpAddRequestHeaders; + alias HttpQueryInfoW HttpQueryInfo; + alias InternetSetCookieW InternetSetCookie; + alias InternetGetCookieW InternetGetCookie; + alias CreateUrlCacheEntryW CreateUrlCacheEntry; + alias RetrieveUrlCacheEntryStreamW RetrieveUrlCacheEntryStream; + alias FindNextUrlCacheEntryW FindNextUrlCacheEntry; + alias CommitUrlCacheEntryW CommitUrlCacheEntry; + alias GetUrlCacheEntryInfoW GetUrlCacheEntryInfo; + alias SetUrlCacheEntryInfoW SetUrlCacheEntryInfo; + alias FindFirstUrlCacheEntryW FindFirstUrlCacheEntry; + alias RetrieveUrlCacheEntryFileW RetrieveUrlCacheEntryFile; + alias HttpSendRequestExW HttpSendRequestEx; + alias HttpEndRequestW HttpEndRequest; + alias GetUrlCacheGroupAttributeW GetUrlCacheGroupAttribute; + alias SetUrlCacheGroupAttributeW SetUrlCacheGroupAttribute; +} else { + alias URL_COMPONENTSA URL_COMPONENTS; + alias LPURL_COMPONENTSA LPURL_COMPONENTS; + alias GOPHER_FIND_DATAA GOPHER_FIND_DATA; + alias LPGOPHER_FIND_DATAA LPGOPHER_FIND_DATA; + alias INTERNET_CACHE_ENTRY_INFOA INTERNET_CACHE_ENTRY_INFO; + alias LPINTERNET_CACHE_ENTRY_INFOA LPINTERNET_CACHE_ENTRY_INFO; + alias INTERNET_BUFFERSA INTERNET_BUFFERS; + alias INTERNET_CACHE_GROUP_INFOA INTERNET_CACHE_GROUP_INFO; + alias LPINTERNET_CACHE_GROUP_INFOA LPINTERNET_CACHE_GROUP_INFO; + alias GopherGetAttributeA GopherGetAttribute; + alias InternetCrackUrlA InternetCrackUrl; + alias InternetCreateUrlA InternetCreateUrl; + alias InternetCanonicalizeUrlA InternetCanonicalizeUrl; + alias InternetCheckConnectionA InternetCheckConnection; + alias InternetCombineUrlA InternetCombineUrl; + alias InternetOpenA InternetOpen; + alias InternetConnectA InternetConnect; + alias InternetOpenUrlA InternetOpenUrl; + alias InternetFindNextFileA InternetFindNextFile; + alias InternetQueryOptionA InternetQueryOption; + alias InternetSetOptionA InternetSetOption; + alias InternetSetOptionExA InternetSetOptionEx; + alias InternetGetLastResponseInfoA InternetGetLastResponseInfo; + alias InternetReadFileExA InternetReadFileEx; + alias FtpFindFirstFileA FtpFindFirstFile; + alias FtpGetFileA FtpGetFile; + alias FtpPutFileA FtpPutFile; + alias FtpDeleteFileA FtpDeleteFile; + alias FtpRenameFileA FtpRenameFile; + alias FtpOpenFileA FtpOpenFile; + alias FtpCreateDirectoryA FtpCreateDirectory; + alias FtpRemoveDirectoryA FtpRemoveDirectory; + alias FtpSetCurrentDirectoryA FtpSetCurrentDirectory; + alias FtpGetCurrentDirectoryA FtpGetCurrentDirectory; + alias FtpCommandA FtpCommand; + alias GopherGetLocatorTypeA GopherGetLocatorType; + alias GopherCreateLocatorA GopherCreateLocator; + alias GopherFindFirstFileA GopherFindFirstFile; + alias GopherOpenFileA GopherOpenFile; + alias HttpSendRequestA HttpSendRequest; + alias HttpOpenRequestA HttpOpenRequest; + alias HttpAddRequestHeadersA HttpAddRequestHeaders; + alias HttpQueryInfoA HttpQueryInfo; + alias InternetSetCookieA InternetSetCookie; + alias InternetGetCookieA InternetGetCookie; + alias CreateUrlCacheEntryA CreateUrlCacheEntry; + alias RetrieveUrlCacheEntryStreamA RetrieveUrlCacheEntryStream; + alias FindNextUrlCacheEntryA FindNextUrlCacheEntry; + alias CommitUrlCacheEntryA CommitUrlCacheEntry; + alias GetUrlCacheEntryInfoA GetUrlCacheEntryInfo; + alias SetUrlCacheEntryInfoA SetUrlCacheEntryInfo; + alias FindFirstUrlCacheEntryA FindFirstUrlCacheEntry; + alias RetrieveUrlCacheEntryFileA RetrieveUrlCacheEntryFile; + alias HttpSendRequestExA HttpSendRequestEx; + alias HttpEndRequestA HttpEndRequest; + alias GetUrlCacheGroupAttributeA GetUrlCacheGroupAttribute; + alias SetUrlCacheGroupAttributeA SetUrlCacheGroupAttribute; +} + +alias INTERNET_BUFFERS* LPINTERNET_BUFFERS; ADDED src/win32/winioctl.d Index: src/win32/winioctl.d ================================================================== --- src/win32/winioctl.d +++ src/win32/winioctl.d @@ -0,0 +1,712 @@ +/***********************************************************************\ +* winioctl.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.winioctl; + +// FIXME: check types of some constants + +private import win32.basetyps, win32.windef; + +const size_t + HIST_NO_OF_BUCKETS = 24, + HISTOGRAM_BUCKET_SIZE = HISTOGRAM_BUCKET.sizeof, + DISK_HISTOGRAM_SIZE = DISK_HISTOGRAM.sizeof; + +alias DWORD DEVICE_TYPE; + +enum : DEVICE_TYPE { + FILE_DEVICE_BEEP = 1, + FILE_DEVICE_CD_ROM, + FILE_DEVICE_CD_ROM_FILE_SYSTEM, + FILE_DEVICE_CONTROLLER, + FILE_DEVICE_DATALINK, + FILE_DEVICE_DFS, + FILE_DEVICE_DISK, + FILE_DEVICE_DISK_FILE_SYSTEM, + FILE_DEVICE_FILE_SYSTEM, + FILE_DEVICE_INPORT_PORT, + FILE_DEVICE_KEYBOARD, + FILE_DEVICE_MAILSLOT, + FILE_DEVICE_MIDI_IN, + FILE_DEVICE_MIDI_OUT, + FILE_DEVICE_MOUSE, + FILE_DEVICE_MULTI_UNC_PROVIDER, + FILE_DEVICE_NAMED_PIPE, + FILE_DEVICE_NETWORK, + FILE_DEVICE_NETWORK_BROWSER, + FILE_DEVICE_NETWORK_FILE_SYSTEM, + FILE_DEVICE_NULL, + FILE_DEVICE_PARALLEL_PORT, + FILE_DEVICE_PHYSICAL_NETCARD, + FILE_DEVICE_PRINTER, + FILE_DEVICE_SCANNER, + FILE_DEVICE_SERIAL_MOUSE_PORT, + FILE_DEVICE_SERIAL_PORT, + FILE_DEVICE_SCREEN, + FILE_DEVICE_SOUND, + FILE_DEVICE_STREAMS, + FILE_DEVICE_TAPE, + FILE_DEVICE_TAPE_FILE_SYSTEM, + FILE_DEVICE_TRANSPORT, + FILE_DEVICE_UNKNOWN, + FILE_DEVICE_VIDEO, + FILE_DEVICE_VIRTUAL_DISK, + FILE_DEVICE_WAVE_IN, + FILE_DEVICE_WAVE_OUT, + FILE_DEVICE_8042_PORT, + FILE_DEVICE_NETWORK_REDIRECTOR, + FILE_DEVICE_BATTERY, + FILE_DEVICE_BUS_EXTENDER, + FILE_DEVICE_MODEM, + FILE_DEVICE_VDM, + FILE_DEVICE_MASS_STORAGE, + FILE_DEVICE_SMB, + FILE_DEVICE_KS, + FILE_DEVICE_CHANGER, + FILE_DEVICE_SMARTCARD, + FILE_DEVICE_ACPI, + FILE_DEVICE_DVD, + FILE_DEVICE_FULLSCREEN_VIDEO, + FILE_DEVICE_DFS_FILE_SYSTEM, + FILE_DEVICE_DFS_VOLUME, + FILE_DEVICE_SERENUM, + FILE_DEVICE_TERMSRV, + FILE_DEVICE_KSEC // = 57 +} + +enum { + METHOD_BUFFERED, + METHOD_IN_DIRECT, + METHOD_OUT_DIRECT, + METHOD_NEITHER +} + +enum { + FILE_ANY_ACCESS, + FILE_SPECIAL_ACCESS = 0, + FILE_READ_ACCESS, + FILE_WRITE_ACCESS +} + +/* Bit pattern: + * tttttttt tttttttt aaffffff ffffffmm + */ +/+ +#define CTL_CODE(t, f, m, a) (((t)<<16)|((a)<<14)|((f)<<2)|(m)) ++/ + +template CTL_CODE_T(DEVICE_TYPE t, uint f, uint m, uint a) { + const DWORD CTL_CODE_T = (t << 16) | (a << 14) | (f << 2) | m; +} + +DEVICE_TYPE DEVICE_TYPE_FROM_CTL_CODE(DWORD c) { + return (c & 0xFFFF0000) >> 16; +} + +const DEVICE_TYPE + IOCTL_STORAGE_BASE = FILE_DEVICE_MASS_STORAGE, + IOCTL_DISK_BASE = FILE_DEVICE_DISK, + IOCTL_VOLUME_BASE = 'V'; + +enum : DWORD { + IOCTL_STORAGE_CHECK_VERIFY = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_STORAGE_CHECK_VERIFY2 = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_STORAGE_MEDIA_REMOVAL = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_STORAGE_EJECT_MEDIA = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_STORAGE_LOAD_MEDIA = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_STORAGE_LOAD_MEDIA2 = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_STORAGE_RESERVE = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_STORAGE_RELEASE = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_STORAGE_FIND_NEW_DEVICES = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_STORAGE_EJECTION_CONTROL = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_STORAGE_MCN_CONTROL = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_STORAGE_GET_MEDIA_TYPES = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_STORAGE_GET_MEDIA_TYPES_EX = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_STORAGE_RESET_BUS = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_STORAGE_RESET_DEVICE = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_STORAGE_GET_DEVICE_NUMBER = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_STORAGE_PREDICT_FAILURE = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS), + + IOCTL_DISK_GET_DRIVE_GEOMETRY = CTL_CODE_T!(IOCTL_DISK_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_DISK_GET_PARTITION_INFO = CTL_CODE_T!(IOCTL_DISK_BASE, 1, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_DISK_SET_PARTITION_INFO = CTL_CODE_T!(IOCTL_DISK_BASE, 2, METHOD_BUFFERED, FILE_READ_ACCESS|FILE_WRITE_ACCESS), + IOCTL_DISK_GET_DRIVE_LAYOUT = CTL_CODE_T!(IOCTL_DISK_BASE, 3, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_DISK_SET_DRIVE_LAYOUT = CTL_CODE_T!(IOCTL_DISK_BASE, 4, METHOD_BUFFERED, FILE_READ_ACCESS|FILE_WRITE_ACCESS), + IOCTL_DISK_VERIFY = CTL_CODE_T!(IOCTL_DISK_BASE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_DISK_FORMAT_TRACKS = CTL_CODE_T!(IOCTL_DISK_BASE, 6, METHOD_BUFFERED, FILE_READ_ACCESS|FILE_WRITE_ACCESS), + IOCTL_DISK_REASSIGN_BLOCKS = CTL_CODE_T!(IOCTL_DISK_BASE, 7, METHOD_BUFFERED, FILE_READ_ACCESS|FILE_WRITE_ACCESS), + IOCTL_DISK_PERFORMANCE = CTL_CODE_T!(IOCTL_DISK_BASE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_DISK_IS_WRITABLE = CTL_CODE_T!(IOCTL_DISK_BASE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_DISK_LOGGING = CTL_CODE_T!(IOCTL_DISK_BASE, 10, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_DISK_FORMAT_TRACKS_EX = CTL_CODE_T!(IOCTL_DISK_BASE, 11, METHOD_BUFFERED, FILE_READ_ACCESS|FILE_WRITE_ACCESS), + IOCTL_DISK_HISTOGRAM_STRUCTURE = CTL_CODE_T!(IOCTL_DISK_BASE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_DISK_HISTOGRAM_DATA = CTL_CODE_T!(IOCTL_DISK_BASE, 13, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_DISK_HISTOGRAM_RESET = CTL_CODE_T!(IOCTL_DISK_BASE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_DISK_REQUEST_STRUCTURE = CTL_CODE_T!(IOCTL_DISK_BASE, 15, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_DISK_REQUEST_DATA = CTL_CODE_T!(IOCTL_DISK_BASE, 16, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_DISK_GET_PARTITION_INFO_EX = CTL_CODE_T!(IOCTL_DISK_BASE, 0x12, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_DISK_SET_PARTITION_INFO_EX = CTL_CODE_T!(IOCTL_DISK_BASE, 0x13, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS), + IOCTL_DISK_GET_DRIVE_LAYOUT_EX = CTL_CODE_T!(IOCTL_DISK_BASE, 0x14, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_DISK_SET_DRIVE_LAYOUT_EX = CTL_CODE_T!(IOCTL_DISK_BASE, 0x15, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS), + IOCTL_DISK_CREATE_DISK = CTL_CODE_T!(IOCTL_DISK_BASE, 0x16, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS), + IOCTL_DISK_GET_LENGTH_INFO = CTL_CODE_T!(IOCTL_DISK_BASE, 0x17, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_DISK_PERFORMANCE_OFF = CTL_CODE_T!(IOCTL_DISK_BASE, 0x18, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_DISK_GET_DRIVE_GEOMETRY_EX = CTL_CODE_T!(IOCTL_DISK_BASE, 0x28, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_DISK_GROW_PARTITION = CTL_CODE_T!(IOCTL_DISK_BASE, 0x34, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS), + IOCTL_DISK_GET_CACHE_INFORMATION = CTL_CODE_T!(IOCTL_DISK_BASE, 0x35, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_DISK_SET_CACHE_INFORMATION = CTL_CODE_T!(IOCTL_DISK_BASE, 0x36, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS), + IOCTL_DISK_DELETE_DRIVE_LAYOUT = CTL_CODE_T!(IOCTL_DISK_BASE, 0x40, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS), + IOCTL_DISK_UPDATE_PROPERTIES = CTL_CODE_T!(IOCTL_DISK_BASE, 0x50, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_DISK_CHECK_VERIFY = CTL_CODE_T!(IOCTL_DISK_BASE, 0x200, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_DISK_MEDIA_REMOVAL = CTL_CODE_T!(IOCTL_DISK_BASE, 0x201, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_DISK_EJECT_MEDIA = CTL_CODE_T!(IOCTL_DISK_BASE, 0x202, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_DISK_LOAD_MEDIA = CTL_CODE_T!(IOCTL_DISK_BASE, 0x203, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_DISK_RESERVE = CTL_CODE_T!(IOCTL_DISK_BASE, 0x204, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_DISK_RELEASE = CTL_CODE_T!(IOCTL_DISK_BASE, 0x205, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_DISK_FIND_NEW_DEVICES = CTL_CODE_T!(IOCTL_DISK_BASE, 0x206, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_DISK_REMOVE_DEVICE = CTL_CODE_T!(IOCTL_DISK_BASE, 0x207, METHOD_BUFFERED, FILE_READ_ACCESS), + IOCTL_DISK_GET_MEDIA_TYPES = CTL_CODE_T!(IOCTL_DISK_BASE, 0x300, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_DISK_UPDATE_DRIVE_SIZE = CTL_CODE_T!(IOCTL_DISK_BASE, 0x0032, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS), + IOCTL_SERIAL_LSRMST_INSERT = CTL_CODE_T!(FILE_DEVICE_SERIAL_PORT, 31, METHOD_BUFFERED, FILE_ANY_ACCESS), + + IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS = CTL_CODE_T!(IOCTL_VOLUME_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS), + IOCTL_VOLUME_IS_CLUSTERED = CTL_CODE_T!(IOCTL_VOLUME_BASE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS), + + FSCTL_LOCK_VOLUME = CTL_CODE_T!(FILE_DEVICE_FILE_SYSTEM, 6, METHOD_BUFFERED, FILE_ANY_ACCESS), + FSCTL_UNLOCK_VOLUME = CTL_CODE_T!(FILE_DEVICE_FILE_SYSTEM, 7, METHOD_BUFFERED, FILE_ANY_ACCESS), + FSCTL_DISMOUNT_VOLUME = CTL_CODE_T!(FILE_DEVICE_FILE_SYSTEM, 8, METHOD_BUFFERED, FILE_ANY_ACCESS), + FSCTL_MOUNT_DBLS_VOLUME = CTL_CODE_T!(FILE_DEVICE_FILE_SYSTEM, 13, METHOD_BUFFERED, FILE_ANY_ACCESS), + FSCTL_GET_COMPRESSION = CTL_CODE_T!(FILE_DEVICE_FILE_SYSTEM, 15, METHOD_BUFFERED, FILE_ANY_ACCESS), + FSCTL_SET_COMPRESSION = CTL_CODE_T!(FILE_DEVICE_FILE_SYSTEM, 16, METHOD_BUFFERED, FILE_READ_DATA|FILE_WRITE_DATA), + FSCTL_READ_COMPRESSION = CTL_CODE_T!(FILE_DEVICE_FILE_SYSTEM, 17, METHOD_NEITHER, FILE_READ_DATA), + FSCTL_WRITE_COMPRESSION = CTL_CODE_T!(FILE_DEVICE_FILE_SYSTEM, 18, METHOD_NEITHER, FILE_WRITE_DATA), + FSCTL_GET_NTFS_VOLUME_DATA = CTL_CODE_T!(FILE_DEVICE_FILE_SYSTEM, 25, METHOD_BUFFERED, FILE_ANY_ACCESS), + FSCTL_GET_VOLUME_BITMAP = CTL_CODE_T!(FILE_DEVICE_FILE_SYSTEM, 27, METHOD_NEITHER, FILE_ANY_ACCESS), + FSCTL_GET_RETRIEVAL_POINTERS = CTL_CODE_T!(FILE_DEVICE_FILE_SYSTEM, 28, METHOD_NEITHER, FILE_ANY_ACCESS), + FSCTL_MOVE_FILE = CTL_CODE_T!(FILE_DEVICE_FILE_SYSTEM, 29, METHOD_BUFFERED, FILE_ANY_ACCESS), + FSCTL_GET_REPARSE_POINT = CTL_CODE_T!(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS), + FSCTL_SET_REPARSE_POINT = CTL_CODE_T!(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_ANY_ACCESS), + FSCTL_DELETE_REPARSE_POINT = CTL_CODE_T!(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_ANY_ACCESS), + FSCTL_SET_SPARSE = CTL_CODE_T!(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_SPECIAL_ACCESS), +} + +enum : BYTE { + PARTITION_ENTRY_UNUSED, + PARTITION_FAT_12, + PARTITION_XENIX_1, + PARTITION_XENIX_2, + PARTITION_FAT_16, + PARTITION_EXTENDED, + PARTITION_HUGE, + PARTITION_IFS, // = 0x07 + PARTITION_FAT32 = 0x0B, + PARTITION_FAT32_XINT13 = 0x0C, + PARTITION_XINT13 = 0x0E, + PARTITION_XINT13_EXTENDED = 0x0F, + PARTITION_PREP = 0x41, + PARTITION_LDM = 0x42, + PARTITION_UNIX = 0x63 +} + +const BYTE + PARTITION_NTFT = 0x80, + VALID_NTFT = 0xC0; + +enum { + SERIAL_LSRMST_ESCAPE, + SERIAL_LSRMST_LSR_DATA, + SERIAL_LSRMST_LSR_NODATA, + SERIAL_LSRMST_MST +} + +enum { + DISK_LOGGING_START, + DISK_LOGGING_STOP, + DISK_LOGGING_DUMP, + DISK_BINNING +} + +alias WORD BAD_TRACK_NUMBER; +alias WORD* PBAD_TRACK_NUMBER; + +enum BIN_TYPES { + RequestSize, RequestLocation +} + +struct BIN_RANGE { + LARGE_INTEGER StartValue; + LARGE_INTEGER Length; +} +alias BIN_RANGE* PBIN_RANGE; + +struct BIN_COUNT { + BIN_RANGE BinRange; + DWORD BinCount; +} +alias BIN_COUNT* PBIN_COUNT; + +struct BIN_RESULTS { + DWORD NumberOfBins; + BIN_COUNT _BinCounts; + + BIN_COUNT* BinCounts() { return &_BinCounts; } +} +alias BIN_RESULTS* PBIN_RESULTS; + +enum PARTITION_STYLE { + PARTITION_STYLE_MBR, + PARTITION_STYLE_GPT, + PARTITION_STYLE_RAW +} + +struct CREATE_DISK_GPT { + GUID DiskId; + DWORD MaxPartitionCount; +} +alias CREATE_DISK_GPT* PCREATE_DISK_GPT; + +struct CREATE_DISK_MBR { + DWORD Signature; +} +alias CREATE_DISK_MBR* PCREATE_DISK_MBR; + +struct CREATE_DISK { + PARTITION_STYLE PartitionStyle; + union { + CREATE_DISK_MBR Mbr; + CREATE_DISK_GPT Gpt; + } +} +alias CREATE_DISK* PCREATE_DISK; + +enum DISK_CACHE_RETENTION_PRIORITY { + EqualPriority, + KeepPrefetchedData, + KeepReadData +} + +struct DISK_CACHE_INFORMATION { + BOOLEAN ParametersSavable; + BOOLEAN ReadCacheEnabled; + BOOLEAN WriteCacheEnabled; + DISK_CACHE_RETENTION_PRIORITY ReadRetentionPriority; + DISK_CACHE_RETENTION_PRIORITY WriteRetentionPriority; + WORD DisablePrefetchTransferLength; + BOOLEAN PrefetchScalar; + union { + struct _ScalarPrefetch { + WORD Minimum; + WORD Maximum; + WORD MaximumBlocks; + } + _ScalarPrefetch ScalarPrefetch; + struct _BlockPrefetch { + WORD Minimum; + WORD Maximum; + } + _BlockPrefetch BlockPrefetch; + } +} +alias DISK_CACHE_INFORMATION* PDISK_CACHE_INFORMATION; + +enum DETECTION_TYPE { + DetectNone, + DetectInt13, + DetectExInt13 +} + +struct DISK_INT13_INFO { + WORD DriveSelect; + DWORD MaxCylinders; + WORD SectorsPerTrack; + WORD MaxHeads; + WORD NumberDrives; + } +alias DISK_INT13_INFO* PDISK_INT13_INFO; + +struct DISK_EX_INT13_INFO { + WORD ExBufferSize; + WORD ExFlags; + DWORD ExCylinders; + DWORD ExHeads; + DWORD ExSectorsPerTrack; + DWORD64 ExSectorsPerDrive; + WORD ExSectorSize; + WORD ExReserved; +} +alias DISK_EX_INT13_INFO* PDISK_EX_INT13_INFO; + +struct DISK_DETECTION_INFO { + DWORD SizeOfDetectInfo; + DETECTION_TYPE DetectionType; + DISK_INT13_INFO Int13; + DISK_EX_INT13_INFO ExInt13; +} +alias DISK_DETECTION_INFO* PDISK_DETECTION_INFO; + +enum MEDIA_TYPE { + Unknown, + F5_1Pt2_512, + F3_1Pt44_512, + F3_2Pt88_512, + F3_20Pt8_512, + F3_720_512, + F5_360_512, + F5_320_512, + F5_320_1024, + F5_180_512, + F5_160_512, + RemovableMedia, + FixedMedia, + F3_120M_512, + F3_640_512, + F5_640_512, + F5_720_512, + F3_1Pt2_512, + F3_1Pt23_1024, + F5_1Pt23_1024, + F3_128Mb_512, + F3_230Mb_512, + F8_256_128, + F3_200Mb_512, + F3_240M_512, + F3_32M_512 +} +alias MEDIA_TYPE* PMEDIA_TYPE; + +struct DISK_GEOMETRY { + LARGE_INTEGER Cylinders; + MEDIA_TYPE MediaType; + DWORD TracksPerCylinder; + DWORD SectorsPerTrack; + DWORD BytesPerSector; +} +alias DISK_GEOMETRY* PDISK_GEOMETRY; + +struct DISK_GEOMETRY_EX { + DISK_GEOMETRY Geometry; + LARGE_INTEGER DiskSize; + BYTE _Data; + + BYTE* Data() { return &_Data; } +} +alias DISK_GEOMETRY_EX* PDISK_GEOMETRY_EX; + +struct DISK_GROW_PARTITION { + DWORD PartitionNumber; + LARGE_INTEGER BytesToGrow; +} +alias DISK_GROW_PARTITION* PDISK_GROW_PARTITION; + +struct DISK_PARTITION_INFO { + DWORD SizeOfPartitionInfo; + PARTITION_STYLE PartitionStyle; + union { + //struct { + DWORD Signature; + //} Mbr; + //struct { + GUID DiskId; + //} Gpt; + } +} +alias DISK_PARTITION_INFO* PDISK_PARTITION_INFO; + +struct DISK_PERFORMANCE { + LARGE_INTEGER BytesRead; + LARGE_INTEGER BytesWritten; + LARGE_INTEGER ReadTime; + LARGE_INTEGER WriteTime; + DWORD ReadCount; + DWORD WriteCount; + DWORD QueueDepth; +} +alias DISK_PERFORMANCE* PDISK_PERFORMANCE; + +struct DISK_RECORD { + LARGE_INTEGER ByteOffset; + LARGE_INTEGER StartTime; + LARGE_INTEGER EndTime; + PVOID VirtualAddress; + DWORD NumberOfBytes; + BYTE DeviceNumber; + BOOLEAN ReadRequest; +} +alias DISK_RECORD* PDISK_RECORD; + +struct DISK_LOGGING { + BYTE Function; + PVOID BufferAddress; + DWORD BufferSize; +} +alias DISK_LOGGING* PDISK_LOGGING; + +struct DISKQUOTA_USER_INFORMATION { + LONGLONG QuotaUsed; + LONGLONG QuotaThreshold; + LONGLONG QuotaLimit; +} +alias DISKQUOTA_USER_INFORMATION* PDISKQUOTA_USER_INFORMATION; + +struct FORMAT_PARAMETERS { + MEDIA_TYPE MediaType; + DWORD StartCylinderNumber; + DWORD EndCylinderNumber; + DWORD StartHeadNumber; + DWORD EndHeadNumber; +} +alias FORMAT_PARAMETERS* PFORMAT_PARAMETERS; + +struct FORMAT_EX_PARAMETERS { + MEDIA_TYPE MediaType; + DWORD StartCylinderNumber; + DWORD EndCylinderNumber; + DWORD StartHeadNumber; + DWORD EndHeadNumber; + WORD FormatGapLength; + WORD SectorsPerTrack; + WORD _SectorNumber; + + WORD* SectorNumber() { return &_SectorNumber; } +} +alias FORMAT_EX_PARAMETERS* PFORMAT_EX_PARAMETERS; + +struct GET_LENGTH_INFORMATION { + LARGE_INTEGER Length; +} + +struct HISTOGRAM_BUCKET { + DWORD Reads; + DWORD Writes; +} +alias HISTOGRAM_BUCKET* PHISTOGRAM_BUCKET; + +struct DISK_HISTOGRAM { + LARGE_INTEGER DiskSize; + LARGE_INTEGER Start; + LARGE_INTEGER End; + LARGE_INTEGER Average; + LARGE_INTEGER AverageRead; + LARGE_INTEGER AverageWrite; + DWORD Granularity; + DWORD Size; + DWORD ReadCount; + DWORD WriteCount; + PHISTOGRAM_BUCKET Histogram; +} +alias DISK_HISTOGRAM* PDISK_HISTOGRAM; + +struct DISK_EXTENT { + DWORD DiskNumber; + LARGE_INTEGER StartingOffset; + LARGE_INTEGER ExtentLength; +} +alias DISK_EXTENT* PDISK_EXTENT; + +struct VOLUME_DISK_EXTENTS { + DWORD NumberOfDiskExtents; + DISK_EXTENT _Extents; + + DISK_EXTENT* Extents() { return &_Extents; } +} +alias VOLUME_DISK_EXTENTS* PVOLUME_DISK_EXTENTS; + +struct PARTITION_INFORMATION { + LARGE_INTEGER StartingOffset; + LARGE_INTEGER PartitionLength; + DWORD HiddenSectors; + DWORD PartitionNumber; + BYTE PartitionType; + BOOLEAN BootIndicator; + BOOLEAN RecognizedPartition; + BOOLEAN RewritePartition; +} +alias PARTITION_INFORMATION* PPARTITION_INFORMATION; + +struct DRIVE_LAYOUT_INFORMATION { + DWORD PartitionCount; + DWORD Signature; + PARTITION_INFORMATION _PartitionEntry; + + PARTITION_INFORMATION* PartitionEntry() { return &_PartitionEntry; } +} +alias DRIVE_LAYOUT_INFORMATION* PDRIVE_LAYOUT_INFORMATION; + +struct DRIVE_LAYOUT_INFORMATION_GPT { + GUID DiskId; + LARGE_INTEGER StartingUsableOffset; + LARGE_INTEGER UsableLength; + ULONG MaxPartitionCount; +} +alias DRIVE_LAYOUT_INFORMATION_GPT* PDRIVE_LAYOUT_INFORMATION_GPT; + +struct DRIVE_LAYOUT_INFORMATION_MBR { + ULONG Signature; +} +alias DRIVE_LAYOUT_INFORMATION_MBR* PDRIVE_LAYOUT_INFORMATION_MBR; + +struct PARTITION_INFORMATION_MBR { + BYTE PartitionType; + BOOLEAN BootIndicator; + BOOLEAN RecognizedPartition; + DWORD HiddenSectors; +} + +struct PARTITION_INFORMATION_GPT { + GUID PartitionType; + GUID PartitionId; + DWORD64 Attributes; + WCHAR[36] Name; +} + +struct PARTITION_INFORMATION_EX { + PARTITION_STYLE PartitionStyle; + LARGE_INTEGER StartingOffset; + LARGE_INTEGER PartitionLength; + DWORD PartitionNumber; + BOOLEAN RewritePartition; + union { + PARTITION_INFORMATION_MBR Mbr; + PARTITION_INFORMATION_GPT Gpt; + } +} + +struct DRIVE_LAYOUT_INFORMATION_EX { + DWORD PartitionStyle; + DWORD PartitionCount; + union { + DRIVE_LAYOUT_INFORMATION_MBR Mbr; + DRIVE_LAYOUT_INFORMATION_GPT Gpt; + } + PARTITION_INFORMATION_EX _PartitionEntry; + + PARTITION_INFORMATION_EX* PartitionEntry() { return &_PartitionEntry; } +} +alias DRIVE_LAYOUT_INFORMATION_EX* PDRIVE_LAYOUT_INFORMATION_EX; + +struct MOVE_FILE_DATA { + HANDLE FileHandle; + LARGE_INTEGER StartingVcn; + LARGE_INTEGER StartingLcn; + DWORD ClusterCount; +} +alias MOVE_FILE_DATA* PMOVE_FILE_DATA; + +struct PERF_BIN { + DWORD NumberOfBins; + DWORD TypeOfBin; + BIN_RANGE _BinsRanges; + + BIN_RANGE* BinsRanges() { return &_BinsRanges; } +} +alias PERF_BIN* PPERF_BIN; + +struct PREVENT_MEDIA_REMOVAL { + BOOLEAN PreventMediaRemoval; +} +alias PREVENT_MEDIA_REMOVAL* PPREVENT_MEDIA_REMOVAL; + +struct RETRIEVAL_POINTERS_BUFFER { + DWORD ExtentCount; + LARGE_INTEGER StartingVcn; + // In MinGW, this is declared as struct { ... } Extents[1]; + struct Extent { + LARGE_INTEGER NextVcn; + LARGE_INTEGER Lcn; + } + Extent _Extents; + + Extent* Extents() { return &_Extents; } +} +alias RETRIEVAL_POINTERS_BUFFER* PRETRIEVAL_POINTERS_BUFFER; + +struct REASSIGN_BLOCKS { + WORD Reserved; + WORD Count; + DWORD _BlockNumber; + + DWORD* BlockNumber() { return &_BlockNumber; } +} +alias REASSIGN_BLOCKS* PREASSIGN_BLOCKS; + +struct SET_PARTITION_INFORMATION { + BYTE PartitionType; +} +alias SET_PARTITION_INFORMATION* PSET_PARTITION_INFORMATION; + +struct STARTING_LCN_INPUT_BUFFER { + LARGE_INTEGER StartingLcn; +} +alias STARTING_LCN_INPUT_BUFFER* PSTARTING_LCN_INPUT_BUFFER; + +struct STARTING_VCN_INPUT_BUFFER { + LARGE_INTEGER StartingVcn; +} +alias STARTING_VCN_INPUT_BUFFER* PSTARTING_VCN_INPUT_BUFFER; + +struct VERIFY_INFORMATION { + LARGE_INTEGER StartingOffset; + DWORD Length; +} +alias VERIFY_INFORMATION* PVERIFY_INFORMATION; + +struct VOLUME_BITMAP_BUFFER { + LARGE_INTEGER StartingLcn; + LARGE_INTEGER BitmapSize; + BYTE _Buffer; + + BYTE* Buffer() { return &_Buffer; } +} +alias VOLUME_BITMAP_BUFFER* PVOLUME_BITMAP_BUFFER; + +struct NTFS_VOLUME_DATA_BUFFER { + LARGE_INTEGER VolumeSerialNumber; + LARGE_INTEGER NumberSectors; + LARGE_INTEGER TotalClusters; + LARGE_INTEGER FreeClusters; + LARGE_INTEGER TotalReserved; + DWORD BytesPerSector; + DWORD BytesPerCluster; + DWORD BytesPerFileRecordSegment; + DWORD ClustersPerFileRecordSegment; + LARGE_INTEGER MftValidDataLength; + LARGE_INTEGER MftStartLcn; + LARGE_INTEGER Mft2StartLcn; + LARGE_INTEGER MftZoneStart; + LARGE_INTEGER MftZoneEnd; +} +alias NTFS_VOLUME_DATA_BUFFER* PNTFS_VOLUME_DATA_BUFFER; + + +bool IsRecognizedPartition(BYTE t) { + return ((t & PARTITION_NTFT) + && ((t & ~VALID_NTFT) == PARTITION_FAT_12 + || (t & ~VALID_NTFT) == PARTITION_FAT_16 + || (t & ~VALID_NTFT) == PARTITION_IFS + || (t & ~VALID_NTFT) == PARTITION_HUGE + || (t & ~VALID_NTFT) == PARTITION_FAT32 + || (t & ~VALID_NTFT) == PARTITION_FAT32_XINT13 + || (t & ~VALID_NTFT) == PARTITION_XINT13)) + || (t & ~PARTITION_NTFT) == PARTITION_FAT_12 + || (t & ~PARTITION_NTFT) == PARTITION_FAT_16 + || (t & ~PARTITION_NTFT) == PARTITION_IFS + || (t & ~PARTITION_NTFT) == PARTITION_HUGE + || (t & ~PARTITION_NTFT) == PARTITION_FAT32 + || (t & ~PARTITION_NTFT) == PARTITION_FAT32_XINT13 + || (t & ~PARTITION_NTFT) == PARTITION_XINT13; +} + +bool IsContainerPartition(BYTE t) { + return ((t & PARTITION_NTFT) + && ((t & ~VALID_NTFT) == PARTITION_EXTENDED + || (t & ~VALID_NTFT) == PARTITION_XINT13_EXTENDED)) + || (t & ~PARTITION_NTFT) == PARTITION_EXTENDED + || (t & ~PARTITION_NTFT) == PARTITION_XINT13_EXTENDED; +} ADDED src/win32/winldap.d Index: src/win32/winldap.d ================================================================== --- src/win32/winldap.d +++ src/win32/winldap.d @@ -0,0 +1,854 @@ +/***********************************************************************\ +* winldap.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.winldap; + +/* Comment from MinGW + winldap.h - Header file for the Windows LDAP API + + Written by Filip Navara + + References: + The C LDAP Application Program Interface + http://www.watersprings.org/pub/id/draft-ietf-ldapext-ldap-c-api-05.txt + + Lightweight Directory Access Protocol Reference + http://msdn.microsoft.com/library/en-us/netdir/ldap/ldap_reference.asp + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +import win32.schannel, win32.winber; +private import win32.wincrypt, win32.windef; +version(Tango){ + private import tango.stdc.stdio; +} + +align(4): + +enum { + LDAP_VERSION1 = 1, + LDAP_VERSION2 = 2, + LDAP_VERSION3 = 3, + LDAP_VERSION = LDAP_VERSION2, + LDAP_VERSION_MIN = LDAP_VERSION2, + LDAP_VERSION_MAX = LDAP_VERSION3 +} + +/* MinGW defines ANSI and Unicode versions as LDAP_VENDOR_NAME and + * LDAP_VENDOR_NAME_W respectively; similarly with other string constants + * defined in this module. + */ +const TCHAR[] LDAP_VENDOR_NAME = "Microsoft Corporation."; + +const LDAP_API_VERSION = 2004; +const LDAP_VENDOR_VERSION = 510; +const LDAP_API_INFO_VERSION = 1; +const LDAP_FEATURE_INFO_VERSION = 1; + +enum { + LDAP_SUCCESS = 0x00, + LDAP_OPT_SUCCESS = LDAP_SUCCESS, + LDAP_OPERATIONS_ERROR, + LDAP_PROTOCOL_ERROR, + LDAP_TIMELIMIT_EXCEEDED, + LDAP_SIZELIMIT_EXCEEDED, + LDAP_COMPARE_FALSE, + LDAP_COMPARE_TRUE, + LDAP_STRONG_AUTH_NOT_SUPPORTED, + LDAP_AUTH_METHOD_NOT_SUPPORTED = LDAP_STRONG_AUTH_NOT_SUPPORTED, + LDAP_STRONG_AUTH_REQUIRED, + LDAP_REFERRAL_V2, + LDAP_PARTIAL_RESULTS = LDAP_REFERRAL_V2, + LDAP_REFERRAL, + LDAP_ADMIN_LIMIT_EXCEEDED, + LDAP_UNAVAILABLE_CRIT_EXTENSION, + LDAP_CONFIDENTIALITY_REQUIRED, + LDAP_SASL_BIND_IN_PROGRESS, // = 0x0e + LDAP_NO_SUCH_ATTRIBUTE = 0x10, + LDAP_UNDEFINED_TYPE, + LDAP_INAPPROPRIATE_MATCHING, + LDAP_CONSTRAINT_VIOLATION, + LDAP_TYPE_OR_VALUE_EXISTS, + LDAP_ATTRIBUTE_OR_VALUE_EXISTS = LDAP_TYPE_OR_VALUE_EXISTS, + LDAP_INVALID_SYNTAX, // = 0x15 + LDAP_NO_SUCH_OBJECT = 0x20, + LDAP_ALIAS_PROBLEM, + LDAP_INVALID_DN_SYNTAX, + LDAP_IS_LEAF, + LDAP_ALIAS_DEREF_PROBLEM, // = 0x24 + LDAP_INAPPROPRIATE_AUTH = 0x30, + LDAP_INVALID_CREDENTIALS, + LDAP_INSUFFICIENT_ACCESS, + LDAP_INSUFFICIENT_RIGHTS = LDAP_INSUFFICIENT_ACCESS, + LDAP_BUSY, + LDAP_UNAVAILABLE, + LDAP_UNWILLING_TO_PERFORM, + LDAP_LOOP_DETECT, // = 0x36 + LDAP_NAMING_VIOLATION = 0x40, + LDAP_OBJECT_CLASS_VIOLATION, + LDAP_NOT_ALLOWED_ON_NONLEAF, + LDAP_NOT_ALLOWED_ON_RDN, + LDAP_ALREADY_EXISTS, + LDAP_NO_OBJECT_CLASS_MODS, + LDAP_RESULTS_TOO_LARGE, + LDAP_AFFECTS_MULTIPLE_DSAS, // = 0x47 + LDAP_OTHER = 0x50, + LDAP_SERVER_DOWN, + LDAP_LOCAL_ERROR, + LDAP_ENCODING_ERROR, + LDAP_DECODING_ERROR, + LDAP_TIMEOUT, + LDAP_AUTH_UNKNOWN, + LDAP_FILTER_ERROR, + LDAP_USER_CANCELLED, + LDAP_PARAM_ERROR, + LDAP_NO_MEMORY, + LDAP_CONNECT_ERROR, + LDAP_NOT_SUPPORTED, + LDAP_CONTROL_NOT_FOUND, + LDAP_NO_RESULTS_RETURNED, + LDAP_MORE_RESULTS_TO_RETURN, + LDAP_CLIENT_LOOP, + LDAP_REFERRAL_LIMIT_EXCEEDED // = 0x61 +} + +enum { + LDAP_PORT = 389, + LDAP_SSL_PORT = 636, + LDAP_GC_PORT = 3268, + LDAP_SSL_GC_PORT = 3269 +} + +const void* + LDAP_OPT_OFF = null, + LDAP_OPT_ON = cast(void*) 1; + +enum { + LDAP_OPT_API_INFO = 0x00, + LDAP_OPT_DESC, + LDAP_OPT_DEREF, + LDAP_OPT_SIZELIMIT, + LDAP_OPT_TIMELIMIT, + LDAP_OPT_THREAD_FN_PTRS, + LDAP_OPT_REBIND_FN, + LDAP_OPT_REBIND_ARG, + LDAP_OPT_REFERRALS, + LDAP_OPT_RESTART, + LDAP_OPT_SSL, + LDAP_OPT_TLS = LDAP_OPT_SSL, + LDAP_OPT_IO_FN_PTRS, // = 0x0b + LDAP_OPT_CACHE_FN_PTRS = 0x0d, + LDAP_OPT_CACHE_STRATEGY, + LDAP_OPT_CACHE_ENABLE, + LDAP_OPT_REFERRAL_HOP_LIMIT, + LDAP_OPT_PROTOCOL_VERSION, + LDAP_OPT_VERSION = LDAP_OPT_PROTOCOL_VERSION, + LDAP_OPT_SERVER_CONTROLS, + LDAP_OPT_CLIENT_CONTROLS, // = 0x13 + LDAP_OPT_API_FEATURE_INFO = 0x15, + LDAP_OPT_HOST_NAME = 0x30, + LDAP_OPT_ERROR_NUMBER, + LDAP_OPT_ERROR_STRING, + LDAP_OPT_SERVER_ERROR, + LDAP_OPT_SERVER_EXT_ERROR, // = 0x34 + LDAP_OPT_PING_KEEP_ALIVE = 0x36, + LDAP_OPT_PING_WAIT_TIME, + LDAP_OPT_PING_LIMIT, // = 0x38 + LDAP_OPT_DNSDOMAIN_NAME = 0x3b, + LDAP_OPT_GETDSNAME_FLAGS = 0x3d, + LDAP_OPT_HOST_REACHABLE, + LDAP_OPT_PROMPT_CREDENTIALS, + LDAP_OPT_TCP_KEEPALIVE, // = 0x40 + LDAP_OPT_REFERRAL_CALLBACK = 0x70, + LDAP_OPT_CLIENT_CERTIFICATE = 0x80, + LDAP_OPT_SERVER_CERTIFICATE, // = 0x81 + LDAP_OPT_AUTO_RECONNECT = 0x91, + LDAP_OPT_SSPI_FLAGS, + LDAP_OPT_SSL_INFO, + LDAP_OPT_TLS_INFO = LDAP_OPT_SSL_INFO, + LDAP_OPT_REF_DEREF_CONN_PER_MSG, + LDAP_OPT_SIGN, + LDAP_OPT_ENCRYPT, + LDAP_OPT_SASL_METHOD, + LDAP_OPT_AREC_EXCLUSIVE, + LDAP_OPT_SECURITY_CONTEXT, + LDAP_OPT_ROOTDSE_CACHE // = 0x9a +} + +enum { + LDAP_DEREF_NEVER, + LDAP_DEREF_SEARCHING, + LDAP_DEREF_FINDING, + LDAP_DEREF_ALWAYS +} + +const LDAP_NO_LIMIT = 0; + +const TCHAR[] LDAP_CONTROL_REFERRALS = "1.2.840.113556.1.4.616"; + +// FIXME: check type (declared with U suffix in MinGW) +enum : uint { + LDAP_CHASE_SUBORDINATE_REFERRALS = 0x20, + LDAP_CHASE_EXTERNAL_REFERRALS = 0x40 +} + +enum { + LDAP_SCOPE_DEFAULT = -1, + LDAP_SCOPE_BASE, + LDAP_SCOPE_ONELEVEL, + LDAP_SCOPE_SUBTREE +} + +enum { + LDAP_MOD_ADD, + LDAP_MOD_DELETE, + LDAP_MOD_REPLACE, + LDAP_MOD_BVALUES = 0x80 +} + +enum : int { + LDAP_RES_BIND = 0x61, + LDAP_RES_SEARCH_ENTRY = 0x64, + LDAP_RES_SEARCH_RESULT = 0x65, + LDAP_RES_MODIFY = 0x67, + LDAP_RES_ADD = 0x69, + LDAP_RES_DELETE = 0x6b, + LDAP_RES_MODRDN = 0x6d, + LDAP_RES_COMPARE = 0x6f, + LDAP_RES_SEARCH_REFERENCE = 0x73, + LDAP_RES_EXTENDED = 0x78, + LDAP_RES_ANY = -1 +} + +enum { + LDAP_MSG_ONE, + LDAP_MSG_ALL, + LDAP_MSG_RECEIVED +} + +const TCHAR[] + LDAP_SERVER_SORT_OID = "1.2.840.113556.1.4.473", + LDAP_SERVER_RESP_SORT_OID = "1.2.840.113556.1.4.474", + LDAP_PAGED_RESULT_OID_STRING = "1.2.840.113556.1.4.319", + LDAP_CONTROL_VLVREQUEST = "2.16.840.1.113730.3.4.9", + LDAP_CONTROL_VLVRESPONSE = "2.16.840.1.113730.3.4.10", + LDAP_START_TLS_OID = "1.3.6.1.4.1.1466.20037", + LDAP_TTL_EXTENDED_OP_OID = "1.3.6.1.4.1.1466.101.119.1"; + +enum { + LDAP_AUTH_NONE = 0x00U, + LDAP_AUTH_SIMPLE = 0x80U, + LDAP_AUTH_SASL = 0x83U, + LDAP_AUTH_OTHERKIND = 0x86U, + LDAP_AUTH_EXTERNAL = LDAP_AUTH_OTHERKIND | 0x0020U, + LDAP_AUTH_SICILY = LDAP_AUTH_OTHERKIND | 0x0200U, + LDAP_AUTH_NEGOTIATE = LDAP_AUTH_OTHERKIND | 0x0400U, + LDAP_AUTH_MSN = LDAP_AUTH_OTHERKIND | 0x0800U, + LDAP_AUTH_NTLM = LDAP_AUTH_OTHERKIND | 0x1000U, + LDAP_AUTH_DIGEST = LDAP_AUTH_OTHERKIND | 0x4000U, + LDAP_AUTH_DPA = LDAP_AUTH_OTHERKIND | 0x2000U, + LDAP_AUTH_SSPI = LDAP_AUTH_NEGOTIATE +} + +enum { + LDAP_FILTER_AND = 0xa0, + LDAP_FILTER_OR, + LDAP_FILTER_NOT, + LDAP_FILTER_EQUALITY, + LDAP_FILTER_SUBSTRINGS, + LDAP_FILTER_GE, + LDAP_FILTER_LE, // = 0xa6 + LDAP_FILTER_APPROX = 0xa8, + LDAP_FILTER_EXTENSIBLE, + LDAP_FILTER_PRESENT = 0x87 +} + +enum { + LDAP_SUBSTRING_INITIAL = 0x80, + LDAP_SUBSTRING_ANY, + LDAP_SUBSTRING_FINAL +} + +struct LDAP { + char[76] Reserved; + PCHAR ld_host; + ULONG ld_version; + UCHAR ld_lberoptions; + int ld_deref; + int ld_timelimit; + int ld_sizelimit; + int ld_errno; + PCHAR ld_matched; + PCHAR ld_error; +} +alias LDAP* PLDAP; + +struct LDAPMessage { + ULONG lm_msgid; + ULONG lm_msgtype; + BerElement* lm_ber; + LDAPMessage* lm_chain; + LDAPMessage* lm_next; + ULONG lm_time; +} +alias LDAPMessage* PLDAPMessage; + +struct LDAP_TIMEVAL { + LONG tv_sec; + LONG tv_usec; +} +alias LDAP_TIMEVAL* PLDAP_TIMEVAL; + +struct LDAPAPIInfoA { + int ldapai_info_version; + int ldapai_api_version; + int ldapai_protocol_version; + char** ldapai_extensions; + char* ldapai_vendor_name; + int ldapai_vendor_version; +} +alias LDAPAPIInfoA* PLDAPAPIInfoA; + +struct LDAPAPIInfoW { + int ldapai_info_version; + int ldapai_api_version; + int ldapai_protocol_version; + PWCHAR* ldapai_extensions; + PWCHAR ldapai_vendor_name; + int ldapai_vendor_version; +} +alias LDAPAPIInfoW* PLDAPAPIInfoW; + +struct LDAPAPIFeatureInfoA { + int ldapaif_info_version; + char* ldapaif_name; + int ldapaif_version; +} +alias LDAPAPIFeatureInfoA* PLDAPAPIFeatureInfoA; + +struct LDAPAPIFeatureInfoW { + int ldapaif_info_version; + PWCHAR ldapaif_name; + int ldapaif_version; +} +alias LDAPAPIFeatureInfoW* PLDAPAPIFeatureInfoW; + +struct LDAPControlA { + PCHAR ldctl_oid; + BerValue ldctl_value; + BOOLEAN ldctl_iscritical; +} +alias LDAPControlA* PLDAPControlA; + +struct LDAPControlW { + PWCHAR ldctl_oid; + BerValue ldctl_value; + BOOLEAN ldctl_iscritical; +} +alias LDAPControlW* PLDAPControlW; + +/* Do we really need these? In MinGW, LDAPModA/W have only mod_op, mod_type + * and mod_vals, and macros are used to simulate anonymous unions in those + * structures. + */ +union mod_vals_u_tA { + PCHAR* modv_strvals; + BerValue** modv_bvals; +} + +union mod_vals_u_tW { + PWCHAR* modv_strvals; + BerValue** modv_bvals; +} + +struct LDAPModA { + ULONG mod_op; + PCHAR mod_type; + + union { + mod_vals_u_tA mod_vals; + // The following members are defined as macros in MinGW. + PCHAR* mod_values; + BerValue** mod_bvalues; + } +} +alias LDAPModA* PLDAPModA; + +struct LDAPModW { + ULONG mod_op; + PWCHAR mod_type; + + union { + mod_vals_u_tW mod_vals; + // The following members are defined as macros in MinGW. + PWCHAR* mod_values; + BerValue** mod_bvalues; + } +} +alias LDAPModW* PLDAPModW; + +/* Opaque structure + * http://msdn.microsoft.com/library/en-us/ldap/ldap/ldapsearch.asp + */ +struct LDAPSearch; +alias LDAPSearch* PLDAPSearch; + +struct LDAPSortKeyA { + PCHAR sk_attrtype; + PCHAR sk_matchruleoid; + BOOLEAN sk_reverseorder; +} +alias LDAPSortKeyA* PLDAPSortKeyA; + +struct LDAPSortKeyW { + PWCHAR sk_attrtype; + PWCHAR sk_matchruleoid; + BOOLEAN sk_reverseorder; +} +alias LDAPSortKeyW* PLDAPSortKeyW; + +/* MinGW defines these as immediate function typedefs, which don't translate + * well into D. + */ +extern (C) { + alias ULONG function(PLDAP, PLDAP, PWCHAR, PCHAR, ULONG, PVOID, PVOID, + PLDAP*) QUERYFORCONNECTION; + alias BOOLEAN function(PLDAP, PLDAP, PWCHAR, PCHAR, PLDAP, ULONG, PVOID, + PVOID, ULONG) NOTIFYOFNEWCONNECTION; + alias ULONG function(PLDAP, PLDAP) DEREFERENCECONNECTION; + alias BOOLEAN function(PLDAP, PSecPkgContext_IssuerListInfoEx, + PCCERT_CONTEXT*) QUERYCLIENTCERT; +} + +struct LDAP_REFERRAL_CALLBACK { + ULONG SizeOfCallbacks; + QUERYFORCONNECTION* QueryForConnection; + NOTIFYOFNEWCONNECTION* NotifyRoutine; + DEREFERENCECONNECTION* DereferenceRoutine; +} +alias LDAP_REFERRAL_CALLBACK* PLDAP_REFERRAL_CALLBACK; + +struct LDAPVLVInfo { + int ldvlv_version; + uint ldvlv_before_count; + uint ldvlv_after_count; + uint ldvlv_offset; + uint ldvlv_count; + BerValue* ldvlv_attrvalue; + BerValue* ldvlv_context; + void* ldvlv_extradata; +} + +/* + * Under Microsoft WinLDAP the function ldap_error is only stub. + * This macro uses LDAP structure to get error string and pass it to the user. + */ +private extern (C) int printf(in char* format, ...); +int ldap_perror(LDAP* handle, char* message) { + return printf("%s: %s\n", message, handle.ld_error); +} + +/* FIXME: In MinGW, these are WINLDAPAPI == DECLSPEC_IMPORT. Linkage + * attribute? + */ +extern (C) { + PLDAP ldap_initA(PCHAR, ULONG); + PLDAP ldap_initW(PWCHAR, ULONG); + PLDAP ldap_openA(PCHAR, ULONG); + PLDAP ldap_openW(PWCHAR, ULONG); + PLDAP cldap_openA(PCHAR, ULONG); + PLDAP cldap_openW(PWCHAR, ULONG); + ULONG ldap_connect(LDAP*, LDAP_TIMEVAL*); + PLDAP ldap_sslinitA(PCHAR, ULONG, int); + PLDAP ldap_sslinitW(PWCHAR, ULONG, int); + ULONG ldap_start_tls_sA(LDAP*, PLDAPControlA*, PLDAPControlA*); + ULONG ldap_start_tls_sW(LDAP*, PLDAPControlW*, PLDAPControlW*); + BOOLEAN ldap_stop_tls_s(LDAP*); + ULONG ldap_get_optionA(LDAP*, int, void*); + ULONG ldap_get_optionW(LDAP*, int, void*); + ULONG ldap_set_optionA(LDAP*, int, void*); + ULONG ldap_set_optionW(LDAP*, int, void*); + ULONG ldap_control_freeA(LDAPControlA*); + ULONG ldap_control_freeW(LDAPControlW*); + ULONG ldap_controls_freeA(LDAPControlA**); + ULONG ldap_controls_freeW(LDAPControlW**); + ULONG ldap_free_controlsA(LDAPControlA**); + ULONG ldap_free_controlsW(LDAPControlW**); + ULONG ldap_sasl_bindA(LDAP*, PCHAR, PCHAR, BERVAL*, PLDAPControlA*, + PLDAPControlA*, int*); + ULONG ldap_sasl_bindW(LDAP*, PWCHAR, PWCHAR, BERVAL*, PLDAPControlW*, + PLDAPControlW*, int*); + ULONG ldap_sasl_bind_sA(LDAP*, PCHAR, PCHAR, BERVAL*, PLDAPControlA*, + PLDAPControlA*, PBERVAL*); + ULONG ldap_sasl_bind_sW(LDAP*, PWCHAR, PWCHAR, BERVAL*, PLDAPControlW*, + PLDAPControlW*, PBERVAL*); + ULONG ldap_simple_bindA(LDAP*, PCHAR, PCHAR); + ULONG ldap_simple_bindW(LDAP*, PWCHAR, PWCHAR); + ULONG ldap_simple_bind_sA(LDAP*, PCHAR, PCHAR); + ULONG ldap_simple_bind_sW(LDAP*, PWCHAR, PWCHAR); + ULONG ldap_unbind(LDAP*); + ULONG ldap_unbind_s(LDAP*); + ULONG ldap_search_extA(LDAP*, PCHAR, ULONG, PCHAR, PCHAR[], ULONG, + PLDAPControlW*, PLDAPControlW*, ULONG, ULONG, ULONG*); + ULONG ldap_search_extW(LDAP*, PWCHAR, ULONG, PWCHAR, PWCHAR[], ULONG, + PLDAPControlW*, PLDAPControlW*, ULONG, ULONG, ULONG*); + ULONG ldap_search_ext_sA(LDAP*, PCHAR, ULONG, PCHAR, PCHAR[], ULONG, + PLDAPControlA*, PLDAPControlA*, LDAP_TIMEVAL*, ULONG, LDAPMessage**); + ULONG ldap_search_ext_sW(LDAP*, PWCHAR, ULONG, PWCHAR, PWCHAR[], ULONG, + PLDAPControlW*, PLDAPControlW*, LDAP_TIMEVAL*, ULONG, LDAPMessage**); + ULONG ldap_searchA(LDAP*, PCHAR, ULONG, PCHAR, PCHAR[], ULONG); + ULONG ldap_searchW(LDAP*, PWCHAR, ULONG, PWCHAR, PWCHAR[], ULONG); + ULONG ldap_search_sA(LDAP*, PCHAR, ULONG, PCHAR, PCHAR[], ULONG, + LDAPMessage**); + ULONG ldap_search_sW(LDAP*, PWCHAR, ULONG, PWCHAR, PWCHAR[], ULONG, + LDAPMessage**); + ULONG ldap_search_stA(LDAP*, PCHAR, ULONG, PCHAR, PCHAR[], ULONG, + LDAP_TIMEVAL*, LDAPMessage**); + ULONG ldap_search_stW(LDAP*, PWCHAR, ULONG, PWCHAR, PWCHAR[], ULONG, + LDAP_TIMEVAL*, LDAPMessage**); + ULONG ldap_compare_extA(LDAP*, PCHAR, PCHAR, PCHAR, BerValue*, + PLDAPControlA*, PLDAPControlA*, ULONG*); + ULONG ldap_compare_extW(LDAP*, PWCHAR, PWCHAR, PWCHAR, BerValue*, + PLDAPControlW*, PLDAPControlW*, ULONG*); + ULONG ldap_compare_ext_sA(LDAP*, PCHAR, PCHAR, PCHAR, BerValue*, + PLDAPControlA*, PLDAPControlA*); + ULONG ldap_compare_ext_sW(LDAP*, PWCHAR, PWCHAR, PWCHAR, BerValue*, + PLDAPControlW*, PLDAPControlW*); + ULONG ldap_compareA(LDAP*, PCHAR, PCHAR, PCHAR); + ULONG ldap_compareW(LDAP*, PWCHAR, PWCHAR, PWCHAR); + ULONG ldap_compare_sA(LDAP*, PCHAR, PCHAR, PCHAR); + ULONG ldap_compare_sW(LDAP*, PWCHAR, PWCHAR, PWCHAR); + ULONG ldap_modify_extA(LDAP*, PCHAR, LDAPModA*[], PLDAPControlA*, + PLDAPControlA*, ULONG*); + ULONG ldap_modify_extW(LDAP*, PWCHAR, LDAPModW*[], PLDAPControlW*, + PLDAPControlW*, ULONG*); + ULONG ldap_modify_ext_sA(LDAP*, PCHAR, LDAPModA*[], PLDAPControlA*, + PLDAPControlA*); + ULONG ldap_modify_ext_sW(LDAP*, PWCHAR, LDAPModW*[], PLDAPControlW*, + PLDAPControlW*); + ULONG ldap_modifyA(LDAP*, PCHAR, LDAPModA*[]); + ULONG ldap_modifyW(LDAP*, PWCHAR, LDAPModW*[]); + ULONG ldap_modify_sA(LDAP*, PCHAR, LDAPModA*[]); + ULONG ldap_modify_sW(LDAP*, PWCHAR, LDAPModW*[]); + ULONG ldap_rename_extA(LDAP*, PCHAR, PCHAR, PCHAR, INT, PLDAPControlA*, + PLDAPControlA*, ULONG*); + ULONG ldap_rename_extW(LDAP*, PWCHAR, PWCHAR, PWCHAR, INT, PLDAPControlW*, + PLDAPControlW*, ULONG*); + ULONG ldap_rename_ext_sA(LDAP*, PCHAR, PCHAR, PCHAR, INT, + PLDAPControlA*, PLDAPControlA*); + ULONG ldap_rename_ext_sW(LDAP*, PWCHAR, PWCHAR, PWCHAR, INT, + PLDAPControlW*, PLDAPControlW*); + ULONG ldap_add_extA(LDAP*, PCHAR, LDAPModA*[], PLDAPControlA*, + PLDAPControlA*, ULONG*); + ULONG ldap_add_extW(LDAP*, PWCHAR, LDAPModW*[], PLDAPControlW*, + PLDAPControlW*, ULONG*); + ULONG ldap_add_ext_sA(LDAP*, PCHAR, LDAPModA*[], PLDAPControlA*, + PLDAPControlA*); + ULONG ldap_add_ext_sW(LDAP*, PWCHAR, LDAPModW*[], PLDAPControlW*, + PLDAPControlW*); + ULONG ldap_addA(LDAP*, PCHAR, LDAPModA*[]); + ULONG ldap_addW(LDAP*, PWCHAR, LDAPModW*[]); + ULONG ldap_add_sA(LDAP*, PCHAR, LDAPModA*[]); + ULONG ldap_add_sW(LDAP*, PWCHAR, LDAPModW*[]); + ULONG ldap_delete_extA(LDAP*, PCHAR, PLDAPControlA*, PLDAPControlA*, + ULONG*); + ULONG ldap_delete_extW(LDAP*, PWCHAR, PLDAPControlW*, PLDAPControlW*, + ULONG*); + ULONG ldap_delete_ext_sA(LDAP*, PCHAR, PLDAPControlA*, PLDAPControlA*); + ULONG ldap_delete_ext_sW(LDAP*, PWCHAR, PLDAPControlW*, PLDAPControlW*); + ULONG ldap_deleteA(LDAP*, PCHAR); + ULONG ldap_deleteW(LDAP*, PWCHAR); + ULONG ldap_delete_sA(LDAP*, PCHAR); + ULONG ldap_delete_sW(LDAP*, PWCHAR); + ULONG ldap_extended_operationA(LDAP*, PCHAR, BerValue*, PLDAPControlA*, + PLDAPControlA*, ULONG*); + ULONG ldap_extended_operationW(LDAP*, PWCHAR, BerValue*, PLDAPControlW*, + PLDAPControlW*, ULONG*); + ULONG ldap_extended_operation_sA(LDAP*, PCHAR, BerValue*, PLDAPControlA*, + PLDAPControlA*, PCHAR*, BerValue**); + ULONG ldap_extended_operation_sW(LDAP*, PWCHAR, BerValue*, PLDAPControlW*, + PLDAPControlW*, PWCHAR*, BerValue**); + ULONG ldap_close_extended_op(LDAP*, ULONG); + ULONG ldap_abandon(LDAP*, ULONG); + ULONG ldap_result(LDAP*, ULONG, ULONG, LDAP_TIMEVAL*, LDAPMessage**); + ULONG ldap_msgfree(LDAPMessage*); + ULONG ldap_parse_resultA(LDAP*, LDAPMessage*, ULONG*, PCHAR*, PCHAR*, + PCHAR**, PLDAPControlA**, BOOLEAN); + ULONG ldap_parse_resultW(LDAP*, LDAPMessage*, ULONG*, PWCHAR*, PWCHAR*, + PWCHAR**, PLDAPControlW**, BOOLEAN); + ULONG ldap_parse_extended_resultA(LDAP, LDAPMessage*, PCHAR*, BerValue**, + BOOLEAN); + ULONG ldap_parse_extended_resultW(LDAP, LDAPMessage*, PWCHAR*, BerValue**, + BOOLEAN); + PCHAR ldap_err2stringA(ULONG); + PWCHAR ldap_err2stringW(ULONG); + ULONG LdapGetLastError(); + ULONG LdapMapErrorToWin32(ULONG); + ULONG ldap_result2error(LDAP*, LDAPMessage*, ULONG); + PLDAPMessage ldap_first_entry(LDAP*, LDAPMessage*); + PLDAPMessage ldap_next_entry(LDAP*, LDAPMessage*); + PLDAPMessage ldap_first_reference(LDAP*, LDAPMessage*); + PLDAPMessage ldap_next_reference(LDAP*, LDAPMessage*); + ULONG ldap_count_entries(LDAP*, LDAPMessage*); + ULONG ldap_count_references(LDAP*, LDAPMessage*); + PCHAR ldap_first_attributeA(LDAP*, LDAPMessage*, BerElement**); + PWCHAR ldap_first_attributeW(LDAP*, LDAPMessage*, BerElement**); + PCHAR ldap_next_attributeA(LDAP*, LDAPMessage*, BerElement*); + PWCHAR ldap_next_attributeW(LDAP*, LDAPMessage*, BerElement*); + VOID ldap_memfreeA(PCHAR); + VOID ldap_memfreeW(PWCHAR); + PCHAR* ldap_get_valuesA(LDAP*, LDAPMessage*, PCHAR); + PWCHAR* ldap_get_valuesW(LDAP*, LDAPMessage*, PWCHAR); + BerValue** ldap_get_values_lenA(LDAP*, LDAPMessage*, PCHAR); + BerValue** ldap_get_values_lenW(LDAP*, LDAPMessage*, PWCHAR); + ULONG ldap_count_valuesA(PCHAR*); + ULONG ldap_count_valuesW(PWCHAR*); + ULONG ldap_count_values_len(BerValue**); + ULONG ldap_value_freeA(PCHAR*); + ULONG ldap_value_freeW(PWCHAR*); + ULONG ldap_value_free_len(BerValue**); + PCHAR ldap_get_dnA(LDAP*, LDAPMessage*); + PWCHAR ldap_get_dnW(LDAP*, LDAPMessage*); + PCHAR ldap_explode_dnA(PCHAR, ULONG); + PWCHAR ldap_explode_dnW(PWCHAR, ULONG); + PCHAR ldap_dn2ufnA(PCHAR); + PWCHAR ldap_dn2ufnW(PWCHAR); + ULONG ldap_ufn2dnA(PCHAR, PCHAR*); + ULONG ldap_ufn2dnW(PWCHAR, PWCHAR*); + ULONG ldap_parse_referenceA(LDAP*, LDAPMessage*, PCHAR**); + ULONG ldap_parse_referenceW(LDAP*, LDAPMessage*, PWCHAR**); + ULONG ldap_check_filterA(LDAP*, PCHAR); + ULONG ldap_check_filterW(LDAP*, PWCHAR); + ULONG ldap_create_page_controlA(PLDAP, ULONG, BerValue*, UCHAR, + PLDAPControlA*); + ULONG ldap_create_page_controlW(PLDAP, ULONG, BerValue*, UCHAR, + PLDAPControlW*); + ULONG ldap_create_sort_controlA(PLDAP, PLDAPSortKeyA*, UCHAR, + PLDAPControlA*); + ULONG ldap_create_sort_controlW(PLDAP, PLDAPSortKeyW*, UCHAR, + PLDAPControlW*); + INT ldap_create_vlv_controlA(LDAP*, LDAPVLVInfo*, UCHAR, LDAPControlA**); + INT ldap_create_vlv_controlW(LDAP*, LDAPVLVInfo*, UCHAR, LDAPControlW**); + ULONG ldap_encode_sort_controlA(PLDAP, PLDAPSortKeyA*, PLDAPControlA, + BOOLEAN); + ULONG ldap_encode_sort_controlW(PLDAP, PLDAPSortKeyW*, PLDAPControlW, + BOOLEAN); + ULONG ldap_escape_filter_elementA(PCHAR, ULONG, PCHAR, ULONG); + ULONG ldap_escape_filter_elementW(PWCHAR, ULONG, PWCHAR, ULONG); + ULONG ldap_get_next_page(PLDAP, PLDAPSearch, ULONG, ULONG*); + ULONG ldap_get_next_page_s(PLDAP, PLDAPSearch, LDAP_TIMEVAL*, ULONG, + ULONG*, LDAPMessage**); + ULONG ldap_get_paged_count(PLDAP, PLDAPSearch, ULONG*, PLDAPMessage); + ULONG ldap_parse_page_controlA(PLDAP, PLDAPControlA*, ULONG*, BerValue**); + ULONG ldap_parse_page_controlW(PLDAP, PLDAPControlW*, ULONG*, BerValue**); + ULONG ldap_parse_sort_controlA(PLDAP, PLDAPControlA*, ULONG*, PCHAR*); + ULONG ldap_parse_sort_controlW(PLDAP, PLDAPControlW*, ULONG*, PWCHAR*); + INT ldap_parse_vlv_controlA(LDAP*, LDAPControlA**, uint*, uint*, + BerValue**, int*); + INT ldap_parse_vlv_controlW(LDAP*, LDAPControlW**, uint*, uint*, + BerValue**, int*); + PLDAPSearch ldap_search_init_pageA(PLDAP, PCHAR, ULONG, PCHAR, PCHAR[], + ULONG, PLDAPControlA*, PLDAPControlA*, ULONG, ULONG, PLDAPSortKeyA*); + PLDAPSearch ldap_search_init_pageW(PLDAP, PWCHAR, ULONG, PWCHAR, PWCHAR[], + ULONG, PLDAPControlW*, PLDAPControlW*, ULONG, ULONG, PLDAPSortKeyW*); + ULONG ldap_search_abandon_page(PLDAP, PLDAPSearch); + LDAP ldap_conn_from_msg(LDAP*, LDAPMessage*); + INT LdapUnicodeToUTF8(LPCWSTR, int, LPSTR, int); + INT LdapUTF8ToUnicode(LPCSTR, int, LPWSTR, int); + deprecated { + ULONG ldap_bindA(LDAP*, PCHAR, PCHAR, ULONG); + ULONG ldap_bindW(LDAP*, PWCHAR, PWCHAR, ULONG); + ULONG ldap_bind_sA(LDAP*, PCHAR, PCHAR, ULONG); + ULONG ldap_bind_sW(LDAP*, PWCHAR, PWCHAR, ULONG); + ULONG ldap_modrdnA(LDAP*, PCHAR, PCHAR); + ULONG ldap_modrdnW(LDAP*, PWCHAR, PWCHAR); + ULONG ldap_modrdn_sA(LDAP*, PCHAR, PCHAR); + ULONG ldap_modrdn_sW(LDAP*, PWCHAR, PWCHAR); + ULONG ldap_modrdn2A(LDAP*, PCHAR, PCHAR, INT); + ULONG ldap_modrdn2W(LDAP*, PWCHAR, PWCHAR, INT); + ULONG ldap_modrdn2_sA(LDAP*, PCHAR, PCHAR, INT); + ULONG ldap_modrdn2_sW(LDAP*, PWCHAR, PWCHAR, INT); + } +} + +version (Unicode) { + alias LDAPControlW LDAPControl; + alias PLDAPControlW PLDAPControl; + alias LDAPModW LDAPMod; + alias LDAPModW PLDAPMod; + alias LDAPSortKeyW LDAPSortKey; + alias PLDAPSortKeyW PLDAPSortKey; + alias LDAPAPIInfoW LDAPAPIInfo; + alias PLDAPAPIInfoW PLDAPAPIInfo; + alias LDAPAPIFeatureInfoW LDAPAPIFeatureInfo; + alias PLDAPAPIFeatureInfoW PLDAPAPIFeatureInfo; + alias cldap_openW cldap_open; + alias ldap_openW ldap_open; + alias ldap_simple_bindW ldap_simple_bind; + alias ldap_simple_bind_sW ldap_simple_bind_s; + alias ldap_sasl_bindW ldap_sasl_bind; + alias ldap_sasl_bind_sW ldap_sasl_bind_s; + alias ldap_initW ldap_init; + alias ldap_sslinitW ldap_sslinit; + alias ldap_get_optionW ldap_get_option; + alias ldap_set_optionW ldap_set_option; + alias ldap_start_tls_sW ldap_start_tls_s; + alias ldap_addW ldap_add; + alias ldap_add_extW ldap_add_ext; + alias ldap_add_sW ldap_add_s; + alias ldap_add_ext_sW ldap_add_ext_s; + alias ldap_compareW ldap_compare; + alias ldap_compare_extW ldap_compare_ext; + alias ldap_compare_sW ldap_compare_s; + alias ldap_compare_ext_sW ldap_compare_ext_s; + alias ldap_deleteW ldap_delete; + alias ldap_delete_extW ldap_delete_ext; + alias ldap_delete_sW ldap_delete_s; + alias ldap_delete_ext_sW ldap_delete_ext_s; + alias ldap_extended_operation_sW ldap_extended_operation_s; + alias ldap_extended_operationW ldap_extended_operation; + alias ldap_modifyW ldap_modify; + alias ldap_modify_extW ldap_modify_ext; + alias ldap_modify_sW ldap_modify_s; + alias ldap_modify_ext_sW ldap_modify_ext_s; + alias ldap_check_filterW ldap_check_filter; + alias ldap_count_valuesW ldap_count_values; + alias ldap_create_page_controlW ldap_create_page_control; + alias ldap_create_sort_controlW ldap_create_sort_control; + alias ldap_create_vlv_controlW ldap_create_vlv_control; + alias ldap_encode_sort_controlW ldap_encode_sort_control; + alias ldap_escape_filter_elementW ldap_escape_filter_element; + alias ldap_first_attributeW ldap_first_attribute; + alias ldap_next_attributeW ldap_next_attribute; + alias ldap_get_valuesW ldap_get_values; + alias ldap_get_values_lenW ldap_get_values_len; + alias ldap_parse_extended_resultW ldap_parse_extended_result; + alias ldap_parse_page_controlW ldap_parse_page_control; + alias ldap_parse_referenceW ldap_parse_reference; + alias ldap_parse_resultW ldap_parse_result; + alias ldap_parse_sort_controlW ldap_parse_sort_control; + alias ldap_parse_vlv_controlW ldap_parse_vlv_control; + alias ldap_searchW ldap_search; + alias ldap_search_sW ldap_search_s; + alias ldap_search_stW ldap_search_st; + alias ldap_search_extW ldap_search_ext; + alias ldap_search_ext_sW ldap_search_ext_s; + alias ldap_search_init_pageW ldap_search_init_page; + alias ldap_err2stringW ldap_err2string; + alias ldap_control_freeW ldap_control_free; + alias ldap_controls_freeW ldap_controls_free; + alias ldap_free_controlsW ldap_free_controls; + alias ldap_memfreeW ldap_memfree; + alias ldap_value_freeW ldap_value_free; + alias ldap_dn2ufnW ldap_dn2ufn; + alias ldap_ufn2dnW ldap_ufn2dn; + alias ldap_explode_dnW ldap_explode_dn; + alias ldap_get_dnW ldap_get_dn; + alias ldap_rename_extW ldap_rename; + alias ldap_rename_ext_sW ldap_rename_s; + alias ldap_rename_extW ldap_rename_ext; + alias ldap_rename_ext_sW ldap_rename_ext_s; + deprecated { + alias ldap_bindW ldap_bind; + alias ldap_bind_sW ldap_bind_s; + alias ldap_modrdnW ldap_modrdn; + alias ldap_modrdn_sW ldap_modrdn_s; + alias ldap_modrdn2W ldap_modrdn2; + alias ldap_modrdn2_sW ldap_modrdn2_s; + } +} else { + alias LDAPControlA LDAPControl; + alias PLDAPControlA PLDAPControl; + alias LDAPModA LDAPMod; + alias LDAPModA PLDAPMod; + alias LDAPSortKeyA LDAPSortKey; + alias PLDAPSortKeyA PLDAPSortKey; + alias LDAPAPIInfoA LDAPAPIInfo; + alias PLDAPAPIInfoA PLDAPAPIInfo; + alias LDAPAPIFeatureInfoA LDAPAPIFeatureInfo; + alias PLDAPAPIFeatureInfoA PLDAPAPIFeatureInfo; + alias cldap_openA cldap_open; + alias ldap_openA ldap_open; + alias ldap_simple_bindA ldap_simple_bind; + alias ldap_simple_bind_sA ldap_simple_bind_s; + alias ldap_sasl_bindA ldap_sasl_bind; + alias ldap_sasl_bind_sA ldap_sasl_bind_s; + alias ldap_initA ldap_init; + alias ldap_sslinitA ldap_sslinit; + alias ldap_get_optionA ldap_get_option; + alias ldap_set_optionA ldap_set_option; + alias ldap_start_tls_sA ldap_start_tls_s; + alias ldap_addA ldap_add; + alias ldap_add_extA ldap_add_ext; + alias ldap_add_sA ldap_add_s; + alias ldap_add_ext_sA ldap_add_ext_s; + alias ldap_compareA ldap_compare; + alias ldap_compare_extA ldap_compare_ext; + alias ldap_compare_sA ldap_compare_s; + alias ldap_compare_ext_sA ldap_compare_ext_s; + alias ldap_deleteA ldap_delete; + alias ldap_delete_extA ldap_delete_ext; + alias ldap_delete_sA ldap_delete_s; + alias ldap_delete_ext_sA ldap_delete_ext_s; + alias ldap_extended_operation_sA ldap_extended_operation_s; + alias ldap_extended_operationA ldap_extended_operation; + alias ldap_modifyA ldap_modify; + alias ldap_modify_extA ldap_modify_ext; + alias ldap_modify_sA ldap_modify_s; + alias ldap_modify_ext_sA ldap_modify_ext_s; + alias ldap_check_filterA ldap_check_filter; + alias ldap_count_valuesA ldap_count_values; + alias ldap_create_page_controlA ldap_create_page_control; + alias ldap_create_sort_controlA ldap_create_sort_control; + alias ldap_create_vlv_controlA ldap_create_vlv_control; + alias ldap_encode_sort_controlA ldap_encode_sort_control; + alias ldap_escape_filter_elementA ldap_escape_filter_element; + alias ldap_first_attributeA ldap_first_attribute; + alias ldap_next_attributeA ldap_next_attribute; + alias ldap_get_valuesA ldap_get_values; + alias ldap_get_values_lenA ldap_get_values_len; + alias ldap_parse_extended_resultA ldap_parse_extended_result; + alias ldap_parse_page_controlA ldap_parse_page_control; + alias ldap_parse_referenceA ldap_parse_reference; + alias ldap_parse_resultA ldap_parse_result; + alias ldap_parse_sort_controlA ldap_parse_sort_control; + alias ldap_parse_vlv_controlA ldap_parse_vlv_control; + alias ldap_searchA ldap_search; + alias ldap_search_sA ldap_search_s; + alias ldap_search_stA ldap_search_st; + alias ldap_search_extA ldap_search_ext; + alias ldap_search_ext_sA ldap_search_ext_s; + alias ldap_search_init_pageA ldap_search_init_page; + alias ldap_err2stringA ldap_err2string; + alias ldap_control_freeA ldap_control_free; + alias ldap_controls_freeA ldap_controls_free; + alias ldap_free_controlsA ldap_free_controls; + alias ldap_memfreeA ldap_memfree; + alias ldap_value_freeA ldap_value_free; + alias ldap_dn2ufnA ldap_dn2ufn; + alias ldap_ufn2dnA ldap_ufn2dn; + alias ldap_explode_dnA ldap_explode_dn; + alias ldap_get_dnA ldap_get_dn; + alias ldap_rename_extA ldap_rename; + alias ldap_rename_ext_sA ldap_rename_s; + alias ldap_rename_extA ldap_rename_ext; + alias ldap_rename_ext_sA ldap_rename_ext_s; + deprecated { + alias ldap_bindA ldap_bind; + alias ldap_bind_sA ldap_bind_s; + alias ldap_modrdnA ldap_modrdn; + alias ldap_modrdn_sA ldap_modrdn_s; + alias ldap_modrdn2A ldap_modrdn2; + alias ldap_modrdn2_sA ldap_modrdn2_s; + } +} ADDED src/win32/winnetwk.d Index: src/win32/winnetwk.d ================================================================== --- src/win32/winnetwk.d +++ src/win32/winnetwk.d @@ -0,0 +1,438 @@ +/***********************************************************************\ +* winnetwk.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.winnetwk; +pragma(lib, "mpr.lib"); + +private import win32.winbase, win32.winerror, win32.winnt; + +enum : DWORD { + WNNC_NET_MSNET = 0x00010000, + WNNC_NET_LANMAN = 0x00020000, + WNNC_NET_NETWARE = 0x00030000, + WNNC_NET_VINES = 0x00040000, + WNNC_NET_10NET = 0x00050000, + WNNC_NET_LOCUS = 0x00060000, + WNNC_NET_SUN_PC_NFS = 0x00070000, + WNNC_NET_LANSTEP = 0x00080000, + WNNC_NET_9TILES = 0x00090000, + WNNC_NET_LANTASTIC = 0x000A0000, + WNNC_NET_AS400 = 0x000B0000, + WNNC_NET_FTP_NFS = 0x000C0000, + WNNC_NET_PATHWORKS = 0x000D0000, + WNNC_NET_LIFENET = 0x000E0000, + WNNC_NET_POWERLAN = 0x000F0000, + WNNC_NET_BWNFS = 0x00100000, + WNNC_NET_COGENT = 0x00110000, + WNNC_NET_FARALLON = 0x00120000, + WNNC_NET_APPLETALK = 0x00130000, + WNNC_NET_INTERGRAPH = 0x00140000, + WNNC_NET_SYMFONET = 0x00150000, + WNNC_NET_CLEARCASE = 0x00160000, + WNNC_NET_FRONTIER = 0x00170000, + WNNC_NET_BMC = 0x00180000, + WNNC_NET_DCE = 0x00190000, + WNNC_NET_AVID = 0x001A0000, + WNNC_NET_DOCUSPACE = 0x001B0000, + WNNC_NET_MANGOSOFT = 0x001C0000, + WNNC_NET_SERNET = 0x001D0000, + WNNC_NET_DECORB = 0x00200000, + WNNC_NET_PROTSTOR = 0x00210000, + WNNC_NET_FJ_REDIR = 0x00220000, + WNNC_NET_DISTINCT = 0x00230000, + WNNC_NET_TWINS = 0x00240000, + WNNC_NET_RDR2SAMPLE = 0x00250000, + WNNC_NET_CSC = 0x00260000, + WNNC_NET_3IN1 = 0x00270000, + WNNC_NET_EXTENDNET = 0x00290000, + WNNC_NET_OBJECT_DIRE = 0x00300000, + WNNC_NET_MASFAX = 0x00310000, + WNNC_NET_HOB_NFS = 0x00320000, + WNNC_NET_SHIVA = 0x00330000, + WNNC_NET_IBMAL = 0x00340000, + WNNC_CRED_MANAGER = 0xFFFF0000 +} + +enum : DWORD { + RESOURCE_CONNECTED = 1, + RESOURCE_GLOBALNET = 2, + RESOURCE_REMEMBERED = 3, + RESOURCE_RECENT = 4, + RESOURCE_CONTEXT = 5 +} + +const DWORD + RESOURCETYPE_ANY = 0, + RESOURCETYPE_DISK = 1, + RESOURCETYPE_PRINT = 2, + RESOURCETYPE_RESERVED = 8, + RESOURCETYPE_UNKNOWN = 0xFFFFFFFF; + +const DWORD + RESOURCEUSAGE_CONNECTABLE = 0x00000001, + RESOURCEUSAGE_CONTAINER = 0x00000002, + RESOURCEUSAGE_NOLOCALDEVICE = 0x00000004, + RESOURCEUSAGE_SIBLING = 0x00000008, + RESOURCEUSAGE_ATTACHED = 0x00000010, + RESOURCEUSAGE_ALL = (RESOURCEUSAGE_CONNECTABLE + | RESOURCEUSAGE_CONTAINER + | RESOURCEUSAGE_ATTACHED), + RESOURCEUSAGE_RESERVED = 0x80000000; + +enum : DWORD { + RESOURCEDISPLAYTYPE_GENERIC, + RESOURCEDISPLAYTYPE_DOMAIN, + RESOURCEDISPLAYTYPE_SERVER, + RESOURCEDISPLAYTYPE_SHARE, + RESOURCEDISPLAYTYPE_FILE, + RESOURCEDISPLAYTYPE_GROUP, + RESOURCEDISPLAYTYPE_NETWORK, + RESOURCEDISPLAYTYPE_ROOT, + RESOURCEDISPLAYTYPE_SHAREADMIN, + RESOURCEDISPLAYTYPE_DIRECTORY, + RESOURCEDISPLAYTYPE_TREE // = 10 +} + +const NETPROPERTY_PERSISTENT = 1; + +const DWORD + CONNECT_UPDATE_PROFILE = 1, + CONNECT_UPDATE_RECENT = 2, + CONNECT_TEMPORARY = 4, + CONNECT_INTERACTIVE = 8, + CONNECT_PROMPT = 16, + CONNECT_NEED_DRIVE = 32, + CONNECT_REFCOUNT = 64, + CONNECT_REDIRECT = 128, + CONNECT_LOCALDRIVE = 256, + CONNECT_CURRENT_MEDIA = 512; + +const DWORD + CONNDLG_RO_PATH = 1, + CONNDLG_CONN_POINT = 2, + CONNDLG_USE_MRU = 4, + CONNDLG_HIDE_BOX = 8, + CONNDLG_PERSIST = 16, + CONNDLG_NOT_PERSIST = 32; + +const DWORD + DISC_UPDATE_PROFILE = 1, + DISC_NO_FORCE = 64; + +const DWORD + WNFMT_MULTILINE = 1, + WNFMT_ABBREVIATED = 2, + WNFMT_INENUM = 16, + WNFMT_CONNECTION = 32; + +enum : DWORD { + WN_SUCCESS = NO_ERROR, + WN_NO_ERROR = NO_ERROR, + WN_NOT_SUPPORTED = ERROR_NOT_SUPPORTED, + WN_CANCEL = ERROR_CANCELLED, + WN_RETRY = ERROR_RETRY, + WN_NET_ERROR = ERROR_UNEXP_NET_ERR, + WN_MORE_DATA = ERROR_MORE_DATA, + WN_BAD_POINTER = ERROR_INVALID_ADDRESS, + WN_BAD_VALUE = ERROR_INVALID_PARAMETER, + WN_BAD_USER = ERROR_BAD_USERNAME, + WN_BAD_PASSWORD = ERROR_INVALID_PASSWORD, + WN_ACCESS_DENIED = ERROR_ACCESS_DENIED, + WN_FUNCTION_BUSY = ERROR_BUSY, + WN_WINDOWS_ERROR = ERROR_UNEXP_NET_ERR, + WN_OUT_OF_MEMORY = ERROR_NOT_ENOUGH_MEMORY, + WN_NO_NETWORK = ERROR_NO_NETWORK, + WN_EXTENDED_ERROR = ERROR_EXTENDED_ERROR, + WN_BAD_LEVEL = ERROR_INVALID_LEVEL, + WN_BAD_HANDLE = ERROR_INVALID_HANDLE, + WN_NOT_INITIALIZING = ERROR_ALREADY_INITIALIZED, + WN_NO_MORE_DEVICES = ERROR_NO_MORE_DEVICES, + WN_NOT_CONNECTED = ERROR_NOT_CONNECTED, + WN_OPEN_FILES = ERROR_OPEN_FILES, + WN_DEVICE_IN_USE = ERROR_DEVICE_IN_USE, + WN_BAD_NETNAME = ERROR_BAD_NET_NAME, + WN_BAD_LOCALNAME = ERROR_BAD_DEVICE, + WN_ALREADY_CONNECTED = ERROR_ALREADY_ASSIGNED, + WN_DEVICE_ERROR = ERROR_GEN_FAILURE, + WN_CONNECTION_CLOSED = ERROR_CONNECTION_UNAVAIL, + WN_NO_NET_OR_BAD_PATH = ERROR_NO_NET_OR_BAD_PATH, + WN_BAD_PROVIDER = ERROR_BAD_PROVIDER, + WN_CANNOT_OPEN_PROFILE = ERROR_CANNOT_OPEN_PROFILE, + WN_BAD_PROFILE = ERROR_BAD_PROFILE, + WN_BAD_DEV_TYPE = ERROR_BAD_DEV_TYPE, + WN_DEVICE_ALREADY_REMEMBERED = ERROR_DEVICE_ALREADY_REMEMBERED, + WN_NO_MORE_ENTRIES = ERROR_NO_MORE_ITEMS, + WN_NOT_CONTAINER = ERROR_NOT_CONTAINER, + WN_NOT_AUTHENTICATED = ERROR_NOT_AUTHENTICATED, + WN_NOT_LOGGED_ON = ERROR_NOT_LOGGED_ON, + WN_NOT_VALIDATED = ERROR_NO_LOGON_SERVERS +} + +enum : DWORD { + UNIVERSAL_NAME_INFO_LEVEL = 1, + REMOTE_NAME_INFO_LEVEL +} + +const DWORD + NETINFO_DLL16 = 1, + NETINFO_DISKRED = 4, + NETINFO_PRINTERRED = 8; + +const DWORD + RP_LOGON = 1, + RP_INIFILE = 2; + +const DWORD PP_DISPLAYERRORS = 1; + +const DWORD + WNCON_FORNETCARD = 1, + WNCON_NOTROUTED = 2, + WNCON_SLOWLINK = 4, + WNCON_DYNAMIC = 8; + +struct NETRESOURCEA { + DWORD dwScope; + DWORD dwType; + DWORD dwDisplayType; + DWORD dwUsage; + LPSTR lpLocalName; + LPSTR lpRemoteName; + LPSTR lpComment; + LPSTR lpProvider; +} +alias NETRESOURCEA* LPNETRESOURCEA; + +struct NETRESOURCEW { + DWORD dwScope; + DWORD dwType; + DWORD dwDisplayType; + DWORD dwUsage; + LPWSTR lpLocalName; + LPWSTR lpRemoteName; + LPWSTR lpComment ; + LPWSTR lpProvider; +} +alias NETRESOURCEW* LPNETRESOURCEW; + +struct CONNECTDLGSTRUCTA { + DWORD cbStructure; + HWND hwndOwner; + LPNETRESOURCEA lpConnRes; + DWORD dwFlags; + DWORD dwDevNum; +} +alias CONNECTDLGSTRUCTA* LPCONNECTDLGSTRUCTA; + +struct CONNECTDLGSTRUCTW { + DWORD cbStructure; + HWND hwndOwner; + LPNETRESOURCEW lpConnRes; + DWORD dwFlags; + DWORD dwDevNum; +} +alias CONNECTDLGSTRUCTW* LPCONNECTDLGSTRUCTW; + +struct DISCDLGSTRUCTA { + DWORD cbStructure; + HWND hwndOwner; + LPSTR lpLocalName; + LPSTR lpRemoteName; + DWORD dwFlags; +} +alias DISCDLGSTRUCTA* LPDISCDLGSTRUCTA; + +struct DISCDLGSTRUCTW { + DWORD cbStructure; + HWND hwndOwner; + LPWSTR lpLocalName; + LPWSTR lpRemoteName; + DWORD dwFlags; +} +alias DISCDLGSTRUCTW* LPDISCDLGSTRUCTW; + +struct UNIVERSAL_NAME_INFOA { + LPSTR lpUniversalName; +} +alias UNIVERSAL_NAME_INFOA* LPUNIVERSAL_NAME_INFOA; + +struct UNIVERSAL_NAME_INFOW { + LPWSTR lpUniversalName; +} +alias UNIVERSAL_NAME_INFOW* LPUNIVERSAL_NAME_INFOW; + +struct REMOTE_NAME_INFOA { + LPSTR lpUniversalName; + LPSTR lpConnectionName; + LPSTR lpRemainingPath; +} +alias REMOTE_NAME_INFOA* LPREMOTE_NAME_INFOA; + +struct REMOTE_NAME_INFOW { + LPWSTR lpUniversalName; + LPWSTR lpConnectionName; + LPWSTR lpRemainingPath; +} +alias REMOTE_NAME_INFOW* LPREMOTE_NAME_INFOW; + +struct NETINFOSTRUCT { + DWORD cbStructure; + DWORD dwProviderVersion; + DWORD dwStatus; + DWORD dwCharacteristics; + DWORD dwHandle; + WORD wNetType; + DWORD dwPrinters; + DWORD dwDrives; +} +alias NETINFOSTRUCT* LPNETINFOSTRUCT; + +extern (Pascal) { + alias UINT function(LPCSTR, LPSTR, UINT) PFNGETPROFILEPATHA; + alias UINT function(LPCWSTR, LPWSTR, UINT) PFNGETPROFILEPATHW; + alias UINT function(LPCSTR, LPCSTR, DWORD) PFNRECONCILEPROFILEA; + alias UINT function(LPCWSTR, LPCWSTR, DWORD) PFNRECONCILEPROFILEW; + alias BOOL function(HWND, LPCSTR, LPCSTR, LPCSTR, DWORD) + PFNPROCESSPOLICIESA; + alias BOOL function(HWND, LPCWSTR, LPCWSTR, LPCWSTR, DWORD) + PFNPROCESSPOLICIESW; +} + +struct NETCONNECTINFOSTRUCT { + DWORD cbStructure; + DWORD dwFlags; + DWORD dwSpeed; + DWORD dwDelay; + DWORD dwOptDataSize; +} +alias NETCONNECTINFOSTRUCT* LPNETCONNECTINFOSTRUCT; + +extern (Windows) { + DWORD WNetAddConnection2A(LPNETRESOURCEA, LPCSTR, LPCSTR, DWORD); + DWORD WNetAddConnection2W(LPNETRESOURCEW, LPCWSTR, LPCWSTR, DWORD); + DWORD WNetAddConnection3A(HWND, LPNETRESOURCEA, LPCSTR, LPCSTR, DWORD); + DWORD WNetAddConnection3W(HWND, LPNETRESOURCEW, LPCWSTR, LPCWSTR, DWORD); + DWORD WNetCancelConnection2A(LPCSTR, DWORD, BOOL); + DWORD WNetCancelConnection2W(LPCWSTR, DWORD, BOOL); + DWORD WNetGetConnectionA(LPCSTR, LPSTR, PDWORD); + DWORD WNetGetConnectionW(LPCWSTR, LPWSTR, PDWORD); + DWORD WNetUseConnectionA(HWND, LPNETRESOURCEA, LPCSTR, LPCSTR, DWORD, + LPSTR, PDWORD, PDWORD); + DWORD WNetUseConnectionW(HWND, LPNETRESOURCEW, LPCWSTR, LPCWSTR, DWORD, + LPWSTR, PDWORD, PDWORD); + DWORD WNetSetConnectionA(LPCSTR, DWORD, PVOID); + DWORD WNetSetConnectionW(LPCWSTR, DWORD, PVOID); + DWORD WNetConnectionDialog(HWND, DWORD); + DWORD WNetDisconnectDialog(HWND, DWORD); + DWORD WNetConnectionDialog1A(LPCONNECTDLGSTRUCTA); + DWORD WNetConnectionDialog1W(LPCONNECTDLGSTRUCTW); + DWORD WNetDisconnectDialog1A(LPDISCDLGSTRUCTA); + DWORD WNetDisconnectDialog1W(LPDISCDLGSTRUCTW); + DWORD WNetOpenEnumA(DWORD, DWORD, DWORD, LPNETRESOURCEA, LPHANDLE); + DWORD WNetOpenEnumW(DWORD, DWORD, DWORD, LPNETRESOURCEW, LPHANDLE); + DWORD WNetEnumResourceA(HANDLE, PDWORD, PVOID, PDWORD); + DWORD WNetEnumResourceW(HANDLE, PDWORD, PVOID, PDWORD); + DWORD WNetCloseEnum(HANDLE); + DWORD WNetGetUniversalNameA(LPCSTR, DWORD, PVOID, PDWORD); + DWORD WNetGetUniversalNameW(LPCWSTR, DWORD, PVOID, PDWORD); + DWORD WNetGetUserA(LPCSTR, LPSTR, PDWORD); + DWORD WNetGetUserW(LPCWSTR, LPWSTR, PDWORD); + DWORD WNetGetProviderNameA(DWORD, LPSTR, PDWORD); + DWORD WNetGetProviderNameW(DWORD, LPWSTR, PDWORD); + DWORD WNetGetNetworkInformationA(LPCSTR, LPNETINFOSTRUCT); + DWORD WNetGetNetworkInformationW(LPCWSTR, LPNETINFOSTRUCT); + DWORD WNetGetResourceInformationA(LPNETRESOURCEA, LPVOID, LPDWORD, + LPSTR*); + DWORD WNetGetResourceInformationW(LPNETRESOURCEA, LPVOID, LPDWORD, + LPWSTR*); + DWORD WNetGetResourceParentA(LPNETRESOURCEA, LPVOID, LPDWORD); + DWORD WNetGetResourceParentW(LPNETRESOURCEW, LPVOID, LPDWORD); + DWORD WNetGetLastErrorA(PDWORD, LPSTR, DWORD, LPSTR, DWORD); + DWORD WNetGetLastErrorW(PDWORD, LPWSTR, DWORD, LPWSTR, DWORD); + DWORD MultinetGetConnectionPerformanceA(LPNETRESOURCEA, + LPNETCONNECTINFOSTRUCT); + DWORD MultinetGetConnectionPerformanceW(LPNETRESOURCEW, + LPNETCONNECTINFOSTRUCT); + deprecated { + DWORD WNetAddConnectionA(LPCSTR, LPCSTR, LPCSTR); + DWORD WNetAddConnectionW(LPCWSTR, LPCWSTR, LPCWSTR); + DWORD WNetCancelConnectionA(LPCSTR, BOOL); + DWORD WNetCancelConnectionW(LPCWSTR, BOOL); + } +} + +version (Unicode) { + alias PFNGETPROFILEPATHW PFNGETPROFILEPATH; + alias PFNRECONCILEPROFILEW PFNRECONCILEPROFILE; + alias PFNPROCESSPOLICIESW PFNPROCESSPOLICIES; + alias NETRESOURCEW NETRESOURCE; + alias CONNECTDLGSTRUCTW CONNECTDLGSTRUCT; + alias DISCDLGSTRUCTW DISCDLGSTRUCT; + alias REMOTE_NAME_INFOW REMOTE_NAME_INFO; + alias UNIVERSAL_NAME_INFOW UNIVERSAL_NAME_INFO; + alias WNetAddConnection2W WNetAddConnection2; + alias WNetAddConnection3W WNetAddConnection3; + alias WNetCancelConnection2W WNetCancelConnection2; + alias WNetGetConnectionW WNetGetConnection; + alias WNetUseConnectionW WNetUseConnection; + alias WNetSetConnectionW WNetSetConnection; + alias WNetConnectionDialog1W WNetConnectionDialog1; + alias WNetDisconnectDialog1W WNetDisconnectDialog1; + alias WNetOpenEnumW WNetOpenEnum; + alias WNetEnumResourceW WNetEnumResource; + alias WNetGetUniversalNameW WNetGetUniversalName; + alias WNetGetUserW WNetGetUser; + alias WNetGetProviderNameW WNetGetProviderName; + alias WNetGetNetworkInformationW WNetGetNetworkInformation; + alias WNetGetResourceInformationW WNetGetResourceInformation; + alias WNetGetResourceParentW WNetGetResourceParent; + alias WNetGetLastErrorW WNetGetLastError; + alias MultinetGetConnectionPerformanceW MultinetGetConnectionPerformance; + deprecated { + alias WNetAddConnectionW WNetAddConnection; + alias WNetCancelConnectionW WNetCancelConnection; + } +} else { + alias PFNGETPROFILEPATHA PFNGETPROFILEPATH; + alias PFNRECONCILEPROFILEA PFNRECONCILEPROFILE; + alias PFNPROCESSPOLICIESA PFNPROCESSPOLICIES; + alias NETRESOURCEA NETRESOURCE; + alias CONNECTDLGSTRUCTA CONNECTDLGSTRUCT; + alias DISCDLGSTRUCTA DISCDLGSTRUCT; + alias REMOTE_NAME_INFOA REMOTE_NAME_INFO; + alias UNIVERSAL_NAME_INFOA UNIVERSAL_NAME_INFO; + alias WNetAddConnection2A WNetAddConnection2; + alias WNetAddConnection3A WNetAddConnection3; + alias WNetCancelConnection2A WNetCancelConnection2; + alias WNetGetConnectionA WNetGetConnection; + alias WNetUseConnectionA WNetUseConnection; + alias WNetSetConnectionA WNetSetConnection; + alias WNetConnectionDialog1A WNetConnectionDialog1; + alias WNetDisconnectDialog1A WNetDisconnectDialog1; + alias WNetOpenEnumA WNetOpenEnum; + alias WNetEnumResourceA WNetEnumResource; + alias WNetGetUniversalNameA WNetGetUniversalName; + alias WNetGetUserA WNetGetUser; + alias WNetGetProviderNameA WNetGetProviderName; + alias WNetGetNetworkInformationA WNetGetNetworkInformation; + alias WNetGetResourceInformationA WNetGetResourceInformation; + alias WNetGetResourceParentA WNetGetResourceParent; + alias WNetGetLastErrorA WNetGetLastError; + alias MultinetGetConnectionPerformanceA MultinetGetConnectionPerformance; + deprecated { + alias WNetAddConnectionA WNetAddConnection; + alias WNetCancelConnectionA WNetCancelConnection; + } +} + +alias NETRESOURCE* LPNETRESOURCE; +alias CONNECTDLGSTRUCT* LPCONNECTDLGSTRUCT; +alias DISCDLGSTRUCT* LPDISCDLGSTRUCT; +alias REMOTE_NAME_INFO* LPREMOTE_NAME_INFO; +alias UNIVERSAL_NAME_INFO* LPUNIVERSAL_NAME_INFO; Index: src/win32/winnls.d ================================================================== --- src/win32/winnls.d +++ src/win32/winnls.d @@ -1,1193 +1,811 @@ -module win32.winnls; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino - -import win32.windef; -import win32.winbase; - -// #ifndef _WINNLS_ -// #define _WINNLS_ - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #ifndef NONLS - -// #ifdef _MAC -// #... -// #endif - -enum : uint { MAX_LEADBYTES = 12 } -enum : uint { MAX_DEFAULTCHAR = 2 } - -enum : uint { MB_PRECOMPOSED = 0x00000001 } -enum : uint { MB_COMPOSITE = 0x00000002 } -enum : uint { MB_USEGLYPHCHARS = 0x00000004 } -enum : uint { MB_ERR_INVALID_CHARS = 0x00000008 } - -enum : uint { WC_COMPOSITECHECK = 0x00000200 } -enum : uint { WC_DISCARDNS = 0x00000010 } -enum : uint { WC_SEPCHARS = 0x00000020 } -enum : uint { WC_DEFAULTCHAR = 0x00000040 } - -// #if(WINVER >= 0x0500) -enum : uint { WC_NO_BEST_FIT_CHARS = 0x00000400 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { CT_CTYPE1 = 0x00000001 } -enum : uint { CT_CTYPE2 = 0x00000002 } -enum : uint { CT_CTYPE3 = 0x00000004 } - -enum : uint { C1_UPPER = 0x0001 } -enum : uint { C1_LOWER = 0x0002 } -enum : uint { C1_DIGIT = 0x0004 } -enum : uint { C1_SPACE = 0x0008 } -enum : uint { C1_PUNCT = 0x0010 } -enum : uint { C1_CNTRL = 0x0020 } -enum : uint { C1_BLANK = 0x0040 } -enum : uint { C1_XDIGIT = 0x0080 } -enum : uint { C1_ALPHA = 0x0100 } -enum : uint { C1_DEFINED = 0x0200 } - -enum : uint { C2_LEFTTORIGHT = 0x0001 } -enum : uint { C2_RIGHTTOLEFT = 0x0002 } - -enum : uint { C2_EUROPENUMBER = 0x0003 } -enum : uint { C2_EUROPESEPARATOR = 0x0004 } -enum : uint { C2_EUROPETERMINATOR = 0x0005 } -enum : uint { C2_ARABICNUMBER = 0x0006 } -enum : uint { C2_COMMONSEPARATOR = 0x0007 } - -enum : uint { C2_BLOCKSEPARATOR = 0x0008 } -enum : uint { C2_SEGMENTSEPARATOR = 0x0009 } -enum : uint { C2_WHITESPACE = 0x000A } -enum : uint { C2_OTHERNEUTRAL = 0x000B } - -enum : uint { C2_NOTAPPLICABLE = 0x0000 } - -enum : uint { C3_NONSPACING = 0x0001 } -enum : uint { C3_DIACRITIC = 0x0002 } -enum : uint { C3_VOWELMARK = 0x0004 } -enum : uint { C3_SYMBOL = 0x0008 } - -enum : uint { C3_KATAKANA = 0x0010 } -enum : uint { C3_HIRAGANA = 0x0020 } -enum : uint { C3_HALFWIDTH = 0x0040 } -enum : uint { C3_FULLWIDTH = 0x0080 } -enum : uint { C3_IDEOGRAPH = 0x0100 } -enum : uint { C3_KASHIDA = 0x0200 } -enum : uint { C3_LEXICAL = 0x0400 } - -enum : uint { C3_ALPHA = 0x8000 } - -enum : uint { C3_NOTAPPLICABLE = 0x0000 } - -enum : uint { NORM_IGNORECASE = 0x00000001 } -enum : uint { NORM_IGNORENONSPACE = 0x00000002 } -enum : uint { NORM_IGNORESYMBOLS = 0x00000004 } - -enum : uint { NORM_IGNOREKANATYPE = 0x00010000 } -enum : uint { NORM_IGNOREWIDTH = 0x00020000 } - -enum : uint { MAP_FOLDCZONE = 0x00000010 } -enum : uint { MAP_PRECOMPOSED = 0x00000020 } -enum : uint { MAP_COMPOSITE = 0x00000040 } -enum : uint { MAP_FOLDDIGITS = 0x00000080 } - -// #if(WINVER >= 0x0500) -enum : uint { MAP_EXPAND_LIGATURES = 0x00002000 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { LCMAP_LOWERCASE = 0x00000100 } -enum : uint { LCMAP_UPPERCASE = 0x00000200 } -enum : uint { LCMAP_SORTKEY = 0x00000400 } -enum : uint { LCMAP_BYTEREV = 0x00000800 } - -enum : uint { LCMAP_HIRAGANA = 0x00100000 } -enum : uint { LCMAP_KATAKANA = 0x00200000 } -enum : uint { LCMAP_HALFWIDTH = 0x00400000 } -enum : uint { LCMAP_FULLWIDTH = 0x00800000 } - -enum : uint { LCMAP_LINGUISTIC_CASING = 0x01000000 } - -enum : uint { LCMAP_SIMPLIFIED_CHINESE = 0x02000000 } -enum : uint { LCMAP_TRADITIONAL_CHINESE = 0x04000000 } - -enum : uint { LGRPID_INSTALLED = 0x00000001 } -enum : uint { LGRPID_SUPPORTED = 0x00000002 } - -enum : uint { LCID_INSTALLED = 0x00000001 } -enum : uint { LCID_SUPPORTED = 0x00000002 } -enum : uint { LCID_ALTERNATE_SORTS = 0x00000004 } - -enum : uint { CP_INSTALLED = 0x00000001 } -enum : uint { CP_SUPPORTED = 0x00000002 } - -enum : uint { SORT_STRINGSORT = 0x00001000 } - -enum : uint { CSTR_LESS_THAN = 1 } -enum : uint { CSTR_EQUAL = 2 } -enum : uint { CSTR_GREATER_THAN = 3 } - -enum : uint { CP_ACP = 0 } -enum : uint { CP_OEMCP = 1 } -enum : uint { CP_MACCP = 2 } -enum : uint { CP_THREAD_ACP = 3 } -enum : uint { CP_SYMBOL = 42 } - -enum : uint { CP_UTF7 = 65000 } -enum : uint { CP_UTF8 = 65001 } - -enum : uint { CTRY_DEFAULT = 0 } - -enum : uint { CTRY_ALBANIA = 355 } -enum : uint { CTRY_ALGERIA = 213 } -enum : uint { CTRY_ARGENTINA = 54 } -enum : uint { CTRY_ARMENIA = 374 } -enum : uint { CTRY_AUSTRALIA = 61 } -enum : uint { CTRY_AUSTRIA = 43 } -enum : uint { CTRY_AZERBAIJAN = 994 } -enum : uint { CTRY_BAHRAIN = 973 } -enum : uint { CTRY_BELARUS = 375 } -enum : uint { CTRY_BELGIUM = 32 } -enum : uint { CTRY_BELIZE = 501 } -enum : uint { CTRY_BOLIVIA = 591 } -enum : uint { CTRY_BRAZIL = 55 } -enum : uint { CTRY_BRUNEI_DARUSSALAM = 673 } -enum : uint { CTRY_BULGARIA = 359 } -enum : uint { CTRY_CANADA = 2 } -enum : uint { CTRY_CARIBBEAN = 1 } -enum : uint { CTRY_CHILE = 56 } -enum : uint { CTRY_COLOMBIA = 57 } -enum : uint { CTRY_COSTA_RICA = 506 } -enum : uint { CTRY_CROATIA = 385 } -enum : uint { CTRY_CZECH = 420 } -enum : uint { CTRY_DENMARK = 45 } -enum : uint { CTRY_DOMINICAN_REPUBLIC = 1 } -enum : uint { CTRY_ECUADOR = 593 } -enum : uint { CTRY_EGYPT = 20 } -enum : uint { CTRY_EL_SALVADOR = 503 } -enum : uint { CTRY_ESTONIA = 372 } -enum : uint { CTRY_FAEROE_ISLANDS = 298 } -enum : uint { CTRY_FINLAND = 358 } -enum : uint { CTRY_FRANCE = 33 } -enum : uint { CTRY_GEORGIA = 995 } -enum : uint { CTRY_GERMANY = 49 } -enum : uint { CTRY_GREECE = 30 } -enum : uint { CTRY_GUATEMALA = 502 } -enum : uint { CTRY_HONDURAS = 504 } -enum : uint { CTRY_HONG_KONG = 852 } -enum : uint { CTRY_HUNGARY = 36 } -enum : uint { CTRY_ICELAND = 354 } -enum : uint { CTRY_INDIA = 91 } -enum : uint { CTRY_INDONESIA = 62 } -enum : uint { CTRY_IRAN = 981 } -enum : uint { CTRY_IRAQ = 964 } -enum : uint { CTRY_IRELAND = 353 } -enum : uint { CTRY_ISRAEL = 972 } -enum : uint { CTRY_ITALY = 39 } -enum : uint { CTRY_JAMAICA = 1 } -enum : uint { CTRY_JAPAN = 81 } -enum : uint { CTRY_JORDAN = 962 } -enum : uint { CTRY_KAZAKSTAN = 7 } -enum : uint { CTRY_KENYA = 254 } -enum : uint { CTRY_KUWAIT = 965 } -enum : uint { CTRY_KYRGYZSTAN = 996 } -enum : uint { CTRY_LATVIA = 371 } -enum : uint { CTRY_LEBANON = 961 } -enum : uint { CTRY_LIBYA = 218 } -enum : uint { CTRY_LIECHTENSTEIN = 41 } -enum : uint { CTRY_LITHUANIA = 370 } -enum : uint { CTRY_LUXEMBOURG = 352 } -enum : uint { CTRY_MACAU = 853 } -enum : uint { CTRY_MACEDONIA = 389 } -enum : uint { CTRY_MALAYSIA = 60 } -enum : uint { CTRY_MALDIVES = 960 } -enum : uint { CTRY_MEXICO = 52 } -enum : uint { CTRY_MONACO = 33 } -enum : uint { CTRY_MONGOLIA = 976 } -enum : uint { CTRY_MOROCCO = 212 } -enum : uint { CTRY_NETHERLANDS = 31 } -enum : uint { CTRY_NEW_ZEALAND = 64 } -enum : uint { CTRY_NICARAGUA = 505 } -enum : uint { CTRY_NORWAY = 47 } -enum : uint { CTRY_OMAN = 968 } -enum : uint { CTRY_PAKISTAN = 92 } -enum : uint { CTRY_PANAMA = 507 } -enum : uint { CTRY_PARAGUAY = 595 } -enum : uint { CTRY_PERU = 51 } -enum : uint { CTRY_PHILIPPINES = 63 } -enum : uint { CTRY_POLAND = 48 } -enum : uint { CTRY_PORTUGAL = 351 } -enum : uint { CTRY_PRCHINA = 86 } -enum : uint { CTRY_PUERTO_RICO = 1 } -enum : uint { CTRY_QATAR = 974 } -enum : uint { CTRY_ROMANIA = 40 } -enum : uint { CTRY_RUSSIA = 7 } -enum : uint { CTRY_SAUDI_ARABIA = 966 } -enum : uint { CTRY_SERBIA = 381 } -enum : uint { CTRY_SINGAPORE = 65 } -enum : uint { CTRY_SLOVAK = 421 } -enum : uint { CTRY_SLOVENIA = 386 } -enum : uint { CTRY_SOUTH_AFRICA = 27 } -enum : uint { CTRY_SOUTH_KOREA = 82 } -enum : uint { CTRY_SPAIN = 34 } -enum : uint { CTRY_SWEDEN = 46 } -enum : uint { CTRY_SWITZERLAND = 41 } -enum : uint { CTRY_SYRIA = 963 } -enum : uint { CTRY_TAIWAN = 886 } -enum : uint { CTRY_TATARSTAN = 7 } -enum : uint { CTRY_THAILAND = 66 } -enum : uint { CTRY_TRINIDAD_Y_TOBAGO = 1 } -enum : uint { CTRY_TUNISIA = 216 } -enum : uint { CTRY_TURKEY = 90 } -enum : uint { CTRY_UAE = 971 } -enum : uint { CTRY_UKRAINE = 380 } -enum : uint { CTRY_UNITED_KINGDOM = 44 } -enum : uint { CTRY_UNITED_STATES = 1 } -enum : uint { CTRY_URUGUAY = 598 } -enum : uint { CTRY_UZBEKISTAN = 7 } -enum : uint { CTRY_VENEZUELA = 58 } -enum : uint { CTRY_VIET_NAM = 84 } -enum : uint { CTRY_YEMEN = 967 } -enum : uint { CTRY_ZIMBABWE = 263 } - -enum : uint { LOCALE_NOUSEROVERRIDE = 0x80000000 } -enum : uint { LOCALE_USE_CP_ACP = 0x40000000 } - -// #if(WINVER >= 0x0400) -enum : uint { LOCALE_RETURN_NUMBER = 0x20000000 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { LOCALE_ILANGUAGE = 0x00000001 } -enum : uint { LOCALE_SLANGUAGE = 0x00000002 } -enum : uint { LOCALE_SENGLANGUAGE = 0x00001001 } -enum : uint { LOCALE_SABBREVLANGNAME = 0x00000003 } -enum : uint { LOCALE_SNATIVELANGNAME = 0x00000004 } - -enum : uint { LOCALE_ICOUNTRY = 0x00000005 } -enum : uint { LOCALE_SCOUNTRY = 0x00000006 } -enum : uint { LOCALE_SENGCOUNTRY = 0x00001002 } -enum : uint { LOCALE_SABBREVCTRYNAME = 0x00000007 } -enum : uint { LOCALE_SNATIVECTRYNAME = 0x00000008 } - -enum : uint { LOCALE_IDEFAULTLANGUAGE = 0x00000009 } -enum : uint { LOCALE_IDEFAULTCOUNTRY = 0x0000000A } -enum : uint { LOCALE_IDEFAULTCODEPAGE = 0x0000000B } -enum : uint { LOCALE_IDEFAULTANSICODEPAGE = 0x00001004 } -enum : uint { LOCALE_IDEFAULTMACCODEPAGE = 0x00001011 } - -enum : uint { LOCALE_SLIST = 0x0000000C } -enum : uint { LOCALE_IMEASURE = 0x0000000D } - -enum : uint { LOCALE_SDECIMAL = 0x0000000E } -enum : uint { LOCALE_STHOUSAND = 0x0000000F } -enum : uint { LOCALE_SGROUPING = 0x00000010 } -enum : uint { LOCALE_IDIGITS = 0x00000011 } -enum : uint { LOCALE_ILZERO = 0x00000012 } -enum : uint { LOCALE_INEGNUMBER = 0x00001010 } -enum : uint { LOCALE_SNATIVEDIGITS = 0x00000013 } - -enum : uint { LOCALE_SCURRENCY = 0x00000014 } -enum : uint { LOCALE_SINTLSYMBOL = 0x00000015 } -enum : uint { LOCALE_SMONDECIMALSEP = 0x00000016 } -enum : uint { LOCALE_SMONTHOUSANDSEP = 0x00000017 } -enum : uint { LOCALE_SMONGROUPING = 0x00000018 } -enum : uint { LOCALE_ICURRDIGITS = 0x00000019 } -enum : uint { LOCALE_IINTLCURRDIGITS = 0x0000001A } -enum : uint { LOCALE_ICURRENCY = 0x0000001B } -enum : uint { LOCALE_INEGCURR = 0x0000001C } - -enum : uint { LOCALE_SDATE = 0x0000001D } -enum : uint { LOCALE_STIME = 0x0000001E } -enum : uint { LOCALE_SSHORTDATE = 0x0000001F } -enum : uint { LOCALE_SLONGDATE = 0x00000020 } -enum : uint { LOCALE_STIMEFORMAT = 0x00001003 } -enum : uint { LOCALE_IDATE = 0x00000021 } -enum : uint { LOCALE_ILDATE = 0x00000022 } -enum : uint { LOCALE_ITIME = 0x00000023 } -enum : uint { LOCALE_ITIMEMARKPOSN = 0x00001005 } -enum : uint { LOCALE_ICENTURY = 0x00000024 } -enum : uint { LOCALE_ITLZERO = 0x00000025 } -enum : uint { LOCALE_IDAYLZERO = 0x00000026 } -enum : uint { LOCALE_IMONLZERO = 0x00000027 } -enum : uint { LOCALE_S1159 = 0x00000028 } -enum : uint { LOCALE_S2359 = 0x00000029 } - -enum : uint { LOCALE_ICALENDARTYPE = 0x00001009 } -enum : uint { LOCALE_IOPTIONALCALENDAR = 0x0000100B } -enum : uint { LOCALE_IFIRSTDAYOFWEEK = 0x0000100C } -enum : uint { LOCALE_IFIRSTWEEKOFYEAR = 0x0000100D } - -enum : uint { LOCALE_SDAYNAME1 = 0x0000002A } -enum : uint { LOCALE_SDAYNAME2 = 0x0000002B } -enum : uint { LOCALE_SDAYNAME3 = 0x0000002C } -enum : uint { LOCALE_SDAYNAME4 = 0x0000002D } -enum : uint { LOCALE_SDAYNAME5 = 0x0000002E } -enum : uint { LOCALE_SDAYNAME6 = 0x0000002F } -enum : uint { LOCALE_SDAYNAME7 = 0x00000030 } -enum : uint { LOCALE_SABBREVDAYNAME1 = 0x00000031 } -enum : uint { LOCALE_SABBREVDAYNAME2 = 0x00000032 } -enum : uint { LOCALE_SABBREVDAYNAME3 = 0x00000033 } -enum : uint { LOCALE_SABBREVDAYNAME4 = 0x00000034 } -enum : uint { LOCALE_SABBREVDAYNAME5 = 0x00000035 } -enum : uint { LOCALE_SABBREVDAYNAME6 = 0x00000036 } -enum : uint { LOCALE_SABBREVDAYNAME7 = 0x00000037 } -enum : uint { LOCALE_SMONTHNAME1 = 0x00000038 } -enum : uint { LOCALE_SMONTHNAME2 = 0x00000039 } -enum : uint { LOCALE_SMONTHNAME3 = 0x0000003A } -enum : uint { LOCALE_SMONTHNAME4 = 0x0000003B } -enum : uint { LOCALE_SMONTHNAME5 = 0x0000003C } -enum : uint { LOCALE_SMONTHNAME6 = 0x0000003D } -enum : uint { LOCALE_SMONTHNAME7 = 0x0000003E } -enum : uint { LOCALE_SMONTHNAME8 = 0x0000003F } -enum : uint { LOCALE_SMONTHNAME9 = 0x00000040 } -enum : uint { LOCALE_SMONTHNAME10 = 0x00000041 } -enum : uint { LOCALE_SMONTHNAME11 = 0x00000042 } -enum : uint { LOCALE_SMONTHNAME12 = 0x00000043 } -enum : uint { LOCALE_SMONTHNAME13 = 0x0000100E } -enum : uint { LOCALE_SABBREVMONTHNAME1 = 0x00000044 } -enum : uint { LOCALE_SABBREVMONTHNAME2 = 0x00000045 } -enum : uint { LOCALE_SABBREVMONTHNAME3 = 0x00000046 } -enum : uint { LOCALE_SABBREVMONTHNAME4 = 0x00000047 } -enum : uint { LOCALE_SABBREVMONTHNAME5 = 0x00000048 } -enum : uint { LOCALE_SABBREVMONTHNAME6 = 0x00000049 } -enum : uint { LOCALE_SABBREVMONTHNAME7 = 0x0000004A } -enum : uint { LOCALE_SABBREVMONTHNAME8 = 0x0000004B } -enum : uint { LOCALE_SABBREVMONTHNAME9 = 0x0000004C } -enum : uint { LOCALE_SABBREVMONTHNAME10 = 0x0000004D } -enum : uint { LOCALE_SABBREVMONTHNAME11 = 0x0000004E } -enum : uint { LOCALE_SABBREVMONTHNAME12 = 0x0000004F } -enum : uint { LOCALE_SABBREVMONTHNAME13 = 0x0000100F } - -enum : uint { LOCALE_SPOSITIVESIGN = 0x00000050 } -enum : uint { LOCALE_SNEGATIVESIGN = 0x00000051 } -enum : uint { LOCALE_IPOSSIGNPOSN = 0x00000052 } -enum : uint { LOCALE_INEGSIGNPOSN = 0x00000053 } -enum : uint { LOCALE_IPOSSYMPRECEDES = 0x00000054 } -enum : uint { LOCALE_IPOSSEPBYSPACE = 0x00000055 } -enum : uint { LOCALE_INEGSYMPRECEDES = 0x00000056 } -enum : uint { LOCALE_INEGSEPBYSPACE = 0x00000057 } - -// #if(WINVER >= 0x0400) -enum : uint { LOCALE_FONTSIGNATURE = 0x00000058 } -enum : uint { LOCALE_SISO639LANGNAME = 0x00000059 } -enum : uint { LOCALE_SISO3166CTRYNAME = 0x0000005A } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -enum : uint { LOCALE_IDEFAULTEBCDICCODEPAGE = 0x00001012 } -enum : uint { LOCALE_IPAPERSIZE = 0x0000100A } -enum : uint { LOCALE_SENGCURRNAME = 0x00001007 } -enum : uint { LOCALE_SNATIVECURRNAME = 0x00001008 } -enum : uint { LOCALE_SYEARMONTH = 0x00001006 } -enum : uint { LOCALE_SSORTNAME = 0x00001013 } -enum : uint { LOCALE_IDIGITSUBSTITUTION = 0x00001014 } - -// #endif /* WINVER >= 0x0500 */ - -enum : uint { TIME_NOMINUTESORSECONDS = 0x00000001 } -enum : uint { TIME_NOSECONDS = 0x00000002 } -enum : uint { TIME_NOTIMEMARKER = 0x00000004 } -enum : uint { TIME_FORCE24HOURFORMAT = 0x00000008 } - -enum : uint { DATE_SHORTDATE = 0x00000001 } -enum : uint { DATE_LONGDATE = 0x00000002 } -enum : uint { DATE_USE_ALT_CALENDAR = 0x00000004 } - -// #if(WINVER >= 0x0500) -enum : uint { DATE_YEARMONTH = 0x00000008 } -enum : uint { DATE_LTRREADING = 0x00000010 } -enum : uint { DATE_RTLREADING = 0x00000020 } -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0500) -alias LOCALE_NOUSEROVERRIDE CAL_NOUSEROVERRIDE; -alias LOCALE_USE_CP_ACP CAL_USE_CP_ACP; -alias LOCALE_RETURN_NUMBER CAL_RETURN_NUMBER; -// #endif /* WINVER >= 0x0500 */ - -enum : uint { CAL_ICALINTVALUE = 0x00000001 } -enum : uint { CAL_SCALNAME = 0x00000002 } -enum : uint { CAL_IYEAROFFSETRANGE = 0x00000003 } -enum : uint { CAL_SERASTRING = 0x00000004 } -enum : uint { CAL_SSHORTDATE = 0x00000005 } -enum : uint { CAL_SLONGDATE = 0x00000006 } -enum : uint { CAL_SDAYNAME1 = 0x00000007 } -enum : uint { CAL_SDAYNAME2 = 0x00000008 } -enum : uint { CAL_SDAYNAME3 = 0x00000009 } -enum : uint { CAL_SDAYNAME4 = 0x0000000a } -enum : uint { CAL_SDAYNAME5 = 0x0000000b } -enum : uint { CAL_SDAYNAME6 = 0x0000000c } -enum : uint { CAL_SDAYNAME7 = 0x0000000d } -enum : uint { CAL_SABBREVDAYNAME1 = 0x0000000e } -enum : uint { CAL_SABBREVDAYNAME2 = 0x0000000f } -enum : uint { CAL_SABBREVDAYNAME3 = 0x00000010 } -enum : uint { CAL_SABBREVDAYNAME4 = 0x00000011 } -enum : uint { CAL_SABBREVDAYNAME5 = 0x00000012 } -enum : uint { CAL_SABBREVDAYNAME6 = 0x00000013 } -enum : uint { CAL_SABBREVDAYNAME7 = 0x00000014 } -enum : uint { CAL_SMONTHNAME1 = 0x00000015 } -enum : uint { CAL_SMONTHNAME2 = 0x00000016 } -enum : uint { CAL_SMONTHNAME3 = 0x00000017 } -enum : uint { CAL_SMONTHNAME4 = 0x00000018 } -enum : uint { CAL_SMONTHNAME5 = 0x00000019 } -enum : uint { CAL_SMONTHNAME6 = 0x0000001a } -enum : uint { CAL_SMONTHNAME7 = 0x0000001b } -enum : uint { CAL_SMONTHNAME8 = 0x0000001c } -enum : uint { CAL_SMONTHNAME9 = 0x0000001d } -enum : uint { CAL_SMONTHNAME10 = 0x0000001e } -enum : uint { CAL_SMONTHNAME11 = 0x0000001f } -enum : uint { CAL_SMONTHNAME12 = 0x00000020 } -enum : uint { CAL_SMONTHNAME13 = 0x00000021 } -enum : uint { CAL_SABBREVMONTHNAME1 = 0x00000022 } -enum : uint { CAL_SABBREVMONTHNAME2 = 0x00000023 } -enum : uint { CAL_SABBREVMONTHNAME3 = 0x00000024 } -enum : uint { CAL_SABBREVMONTHNAME4 = 0x00000025 } -enum : uint { CAL_SABBREVMONTHNAME5 = 0x00000026 } -enum : uint { CAL_SABBREVMONTHNAME6 = 0x00000027 } -enum : uint { CAL_SABBREVMONTHNAME7 = 0x00000028 } -enum : uint { CAL_SABBREVMONTHNAME8 = 0x00000029 } -enum : uint { CAL_SABBREVMONTHNAME9 = 0x0000002a } -enum : uint { CAL_SABBREVMONTHNAME10 = 0x0000002b } -enum : uint { CAL_SABBREVMONTHNAME11 = 0x0000002c } -enum : uint { CAL_SABBREVMONTHNAME12 = 0x0000002d } -enum : uint { CAL_SABBREVMONTHNAME13 = 0x0000002e } - -// #if(WINVER >= 0x0500) -enum : uint { CAL_SYEARMONTH = 0x0000002f } -enum : uint { CAL_ITWODIGITYEARMAX = 0x00000030 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { ENUM_ALL_CALENDARS = 0xffffffff } - -enum : uint { CAL_GREGORIAN = 1 } -enum : uint { CAL_GREGORIAN_US = 2 } -enum : uint { CAL_JAPAN = 3 } -enum : uint { CAL_TAIWAN = 4 } -enum : uint { CAL_KOREA = 5 } -enum : uint { CAL_HIJRI = 6 } -enum : uint { CAL_THAI = 7 } -enum : uint { CAL_HEBREW = 8 } -enum : uint { CAL_GREGORIAN_ME_FRENCH = 9 } -enum : uint { CAL_GREGORIAN_ARABIC = 10 } -enum : uint { CAL_GREGORIAN_XLIT_ENGLISH = 11 } -enum : uint { CAL_GREGORIAN_XLIT_FRENCH = 12 } - -enum : uint { LGRPID_WESTERN_EUROPE = 0x0001 } -enum : uint { LGRPID_CENTRAL_EUROPE = 0x0002 } -enum : uint { LGRPID_BALTIC = 0x0003 } -enum : uint { LGRPID_GREEK = 0x0004 } -enum : uint { LGRPID_CYRILLIC = 0x0005 } -enum : uint { LGRPID_TURKISH = 0x0006 } -enum : uint { LGRPID_JAPANESE = 0x0007 } -enum : uint { LGRPID_KOREAN = 0x0008 } -enum : uint { LGRPID_TRADITIONAL_CHINESE = 0x0009 } -enum : uint { LGRPID_SIMPLIFIED_CHINESE = 0x000a } -enum : uint { LGRPID_THAI = 0x000b } -enum : uint { LGRPID_HEBREW = 0x000c } -enum : uint { LGRPID_ARABIC = 0x000d } -enum : uint { LGRPID_VIETNAMESE = 0x000e } -enum : uint { LGRPID_INDIC = 0x000f } -enum : uint { LGRPID_GEORGIAN = 0x0010 } -enum : uint { LGRPID_ARMENIAN = 0x0011 } - -alias DWORD LGRPID; - -alias DWORD LCTYPE; - -alias DWORD CALTYPE; - -alias DWORD CALID; - -struct _cpinfo { - UINT MaxCharSize; - BYTE DefaultChar[MAX_DEFAULTCHAR]; - BYTE LeadByte[MAX_LEADBYTES]; -} -alias _cpinfo CPINFO; -alias _cpinfo* LPCPINFO; - -struct _cpinfoexA { - UINT MaxCharSize; - BYTE DefaultChar[MAX_DEFAULTCHAR]; - BYTE LeadByte[MAX_LEADBYTES]; - WCHAR UnicodeDefaultChar; - UINT CodePage; - CHAR CodePageName[MAX_PATH]; -} -alias _cpinfoexA CPINFOEXA; -alias _cpinfoexA* LPCPINFOEXA; - -struct _cpinfoexW { - UINT MaxCharSize; - BYTE DefaultChar[MAX_DEFAULTCHAR]; - BYTE LeadByte[MAX_LEADBYTES]; - WCHAR UnicodeDefaultChar; - UINT CodePage; - WCHAR CodePageName[MAX_PATH]; -} -alias _cpinfoexW CPINFOEXW; -alias _cpinfoexW* LPCPINFOEXW; - -// #ifdef UNICODE -alias CPINFOEXW CPINFOEX; -alias LPCPINFOEXW LPCPINFOEX; -// #else -// ... -// #endif // UNICODE - -struct _numberfmtA { - UINT NumDigits; - UINT LeadingZero; - UINT Grouping; - LPSTR lpDecimalSep; - LPSTR lpThousandSep; - UINT NegativeOrder; -} -alias _numberfmtA NUMBERFMTA; -alias _numberfmtA* LPNUMBERFMTA; - -struct _numberfmtW { - UINT NumDigits; - UINT LeadingZero; - UINT Grouping; - LPWSTR lpDecimalSep; - LPWSTR lpThousandSep; - UINT NegativeOrder; -} -alias _numberfmtW NUMBERFMTW; -alias _numberfmtW* LPNUMBERFMTW; - -// #ifdef UNICODE -alias NUMBERFMTW NUMBERFMT; -alias LPNUMBERFMTW LPNUMBERFMT; -// #else -// ... -// #endif // UNICODE - -struct _currencyfmtA { - UINT NumDigits; - UINT LeadingZero; - UINT Grouping; - LPSTR lpDecimalSep; - LPSTR lpThousandSep; - UINT NegativeOrder; - UINT PositiveOrder; - LPSTR lpCurrencySymbol; -} -alias _currencyfmtA CURRENCYFMTA; -alias _currencyfmtA* LPCURRENCYFMTA; - -struct _currencyfmtW { - UINT NumDigits; - UINT LeadingZero; - UINT Grouping; - LPWSTR lpDecimalSep; - LPWSTR lpThousandSep; - UINT NegativeOrder; - UINT PositiveOrder; - LPWSTR lpCurrencySymbol; -} -alias _currencyfmtW CURRENCYFMTW; -alias _currencyfmtW* LPCURRENCYFMTW; - -// #ifdef UNICODE -alias CURRENCYFMTW CURRENCYFMT; -alias LPCURRENCYFMTW LPCURRENCYFMT; -// #else -// ... -// #endif // UNICODE - -alias LONG GEOID; -alias DWORD GEOTYPE; -alias DWORD GEOCLASS; - -enum { GEOID_NOT_AVAILABLE = -1 } - -enum SYSGEOTYPE { - GEO_NATION = 0x0001, - GEO_LATITUDE = 0x0002, - GEO_LONGITUDE = 0x0003, - GEO_ISO2 = 0x0004, - GEO_ISO3 = 0x0005, - GEO_RFC1766 = 0x0006, - GEO_LCID = 0x0007, - GEO_FRIENDLYNAME = 0x0008, - GEO_OFFICIALNAME = 0x0009, - GEO_TIMEZONES = 0x000A, - GEO_OFFICIALLANGUAGES = 0x000B, -} - -enum SYSGEOCLASS { - GEOCLASS_NATION = 16, - GEOCLASS_REGION = 14, -} - -// #ifdef STRICT - -// ... - -// ... - -// #else // !STRICT - -alias FARPROC LANGUAGEGROUP_ENUMPROCA; -alias FARPROC LANGGROUPLOCALE_ENUMPROCA; -alias FARPROC UILANGUAGE_ENUMPROCA; -alias FARPROC LOCALE_ENUMPROCA; -alias FARPROC CODEPAGE_ENUMPROCA; -alias FARPROC DATEFMT_ENUMPROCA; -alias FARPROC DATEFMT_ENUMPROCEXA; -alias FARPROC TIMEFMT_ENUMPROCA; -alias FARPROC CALINFO_ENUMPROCA; -alias FARPROC CALINFO_ENUMPROCEXA; -alias FARPROC GEO_ENUMPROC; - -alias FARPROC LANGUAGEGROUP_ENUMPROCW; -alias FARPROC LANGGROUPLOCALE_ENUMPROCW; -alias FARPROC UILANGUAGE_ENUMPROCW; -alias FARPROC LOCALE_ENUMPROCW; -alias FARPROC CODEPAGE_ENUMPROCW; -alias FARPROC DATEFMT_ENUMPROCW; -alias FARPROC DATEFMT_ENUMPROCEXW; -alias FARPROC TIMEFMT_ENUMPROCW; -alias FARPROC CALINFO_ENUMPROCW; -alias FARPROC CALINFO_ENUMPROCEXW; - -// #endif // !STRICT - -// #ifdef UNICODE - -alias LANGUAGEGROUP_ENUMPROCW LANGUAGEGROUP_ENUMPROC; -alias LANGGROUPLOCALE_ENUMPROCW LANGGROUPLOCALE_ENUMPROC; -alias UILANGUAGE_ENUMPROCW UILANGUAGE_ENUMPROC; -alias LOCALE_ENUMPROCW LOCALE_ENUMPROC; -alias CODEPAGE_ENUMPROCW CODEPAGE_ENUMPROC; -alias DATEFMT_ENUMPROCW DATEFMT_ENUMPROC; -alias DATEFMT_ENUMPROCEXW DATEFMT_ENUMPROCEX; -alias TIMEFMT_ENUMPROCW TIMEFMT_ENUMPROC; -alias CALINFO_ENUMPROCW CALINFO_ENUMPROC; -alias CALINFO_ENUMPROCEXW CALINFO_ENUMPROCEX; - -// #else - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #endif // !UNICODE - -extern(Windows) export BOOL IsValidCodePage( - UINT CodePage); - -extern(Windows) export UINT GetACP(); - -extern(Windows) export UINT GetOEMCP(); - -extern(Windows) export BOOL GetCPInfo( - UINT CodePage, - LPCPINFO lpCPInfo); - -extern(Windows) export BOOL GetCPInfoExA( - UINT CodePage, - DWORD dwFlags, - LPCPINFOEXA lpCPInfoEx); -extern(Windows) export BOOL GetCPInfoExW( - UINT CodePage, - DWORD dwFlags, - LPCPINFOEXW lpCPInfoEx); -// #ifdef UNICODE -alias GetCPInfoExW GetCPInfoEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL IsDBCSLeadByte( - BYTE TestChar); - -extern(Windows) export BOOL IsDBCSLeadByteEx( - UINT CodePage, - BYTE TestChar); - -extern(Windows) export int MultiByteToWideChar( - UINT CodePage, - DWORD dwFlags, - LPCSTR lpMultiByteStr, - int cbMultiByte, - LPWSTR lpWideCharStr, - int cchWideChar); - -extern(Windows) export int WideCharToMultiByte( - UINT CodePage, - DWORD dwFlags, - LPCWSTR lpWideCharStr, - int cchWideChar, - LPSTR lpMultiByteStr, - int cbMultiByte, - LPCSTR lpDefaultChar, - LPBOOL lpUsedDefaultChar); - -extern(Windows) export int CompareStringA( - LCID Locale, - DWORD dwCmpFlags, - LPCSTR lpString1, - int cchCount1, - LPCSTR lpString2, - int cchCount2); -extern(Windows) export int CompareStringW( - LCID Locale, - DWORD dwCmpFlags, - LPCWSTR lpString1, - int cchCount1, - LPCWSTR lpString2, - int cchCount2); -// #ifdef UNICODE -alias CompareStringW CompareString; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int LCMapStringA( - LCID Locale, - DWORD dwMapFlags, - LPCSTR lpSrcStr, - int cchSrc, - LPSTR lpDestStr, - int cchDest); -extern(Windows) export int LCMapStringW( - LCID Locale, - DWORD dwMapFlags, - LPCWSTR lpSrcStr, - int cchSrc, - LPWSTR lpDestStr, - int cchDest); -// #ifdef UNICODE -alias LCMapStringW LCMapString; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int GetLocaleInfoA( - LCID Locale, - LCTYPE LCType, - LPSTR lpLCData, - int cchData); -extern(Windows) export int GetLocaleInfoW( - LCID Locale, - LCTYPE LCType, - LPWSTR lpLCData, - int cchData); -// #ifdef UNICODE -alias GetLocaleInfoW GetLocaleInfo; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetLocaleInfoA( - LCID Locale, - LCTYPE LCType, - LPCSTR lpLCData); -extern(Windows) export BOOL SetLocaleInfoW( - LCID Locale, - LCTYPE LCType, - LPCWSTR lpLCData); -// #ifdef UNICODE -alias SetLocaleInfoW SetLocaleInfo; -// #else -// #... -// #endif // !UNICODE - -// #if (WINVER >= 0x040A) -extern(Windows) export int GetCalendarInfoA( - LCID Locale, - CALID Calendar, - CALTYPE CalType, - LPSTR lpCalData, - int cchData, - LPDWORD lpValue); -extern(Windows) export int GetCalendarInfoW( - LCID Locale, - CALID Calendar, - CALTYPE CalType, - LPWSTR lpCalData, - int cchData, - LPDWORD lpValue); -// #ifdef UNICODE -alias GetCalendarInfoW GetCalendarInfo; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetCalendarInfoA( - LCID Locale, - CALID Calendar, - CALTYPE CalType, - LPCSTR lpCalData); -extern(Windows) export BOOL SetCalendarInfoW( - LCID Locale, - CALID Calendar, - CALTYPE CalType, - LPCWSTR lpCalData); -// #ifdef UNICODE -alias SetCalendarInfoW SetCalendarInfo; -// #else -// #... -// #endif // !UNICODE -// #endif - -extern(Windows) export int GetTimeFormatA( - LCID Locale, - DWORD dwFlags, - SYSTEMTIME *lpTime, - LPCSTR lpFormat, - LPSTR lpTimeStr, - int cchTime); -extern(Windows) export int GetTimeFormatW( - LCID Locale, - DWORD dwFlags, - SYSTEMTIME *lpTime, - LPCWSTR lpFormat, - LPWSTR lpTimeStr, - int cchTime); -// #ifdef UNICODE -alias GetTimeFormatW GetTimeFormat; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int GetDateFormatA( - LCID Locale, - DWORD dwFlags, - SYSTEMTIME *lpDate, - LPCSTR lpFormat, - LPSTR lpDateStr, - int cchDate); -extern(Windows) export int GetDateFormatW( - LCID Locale, - DWORD dwFlags, - SYSTEMTIME *lpDate, - LPCWSTR lpFormat, - LPWSTR lpDateStr, - int cchDate); -// #ifdef UNICODE -alias GetDateFormatW GetDateFormat; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int GetNumberFormatA( - LCID Locale, - DWORD dwFlags, - LPCSTR lpValue, - NUMBERFMTA *lpFormat, - LPSTR lpNumberStr, - int cchNumber); -extern(Windows) export int GetNumberFormatW( - LCID Locale, - DWORD dwFlags, - LPCWSTR lpValue, - NUMBERFMTW *lpFormat, - LPWSTR lpNumberStr, - int cchNumber); -// #ifdef UNICODE -alias GetNumberFormatW GetNumberFormat; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int GetCurrencyFormatA( - LCID Locale, - DWORD dwFlags, - LPCSTR lpValue, - CURRENCYFMTA *lpFormat, - LPSTR lpCurrencyStr, - int cchCurrency); -extern(Windows) export int GetCurrencyFormatW( - LCID Locale, - DWORD dwFlags, - LPCWSTR lpValue, - CURRENCYFMTW *lpFormat, - LPWSTR lpCurrencyStr, - int cchCurrency); -// #ifdef UNICODE -alias GetCurrencyFormatW GetCurrencyFormat; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumCalendarInfoA( - CALINFO_ENUMPROCA lpCalInfoEnumProc, - LCID Locale, - CALID Calendar, - CALTYPE CalType); -extern(Windows) export BOOL EnumCalendarInfoW( - CALINFO_ENUMPROCW lpCalInfoEnumProc, - LCID Locale, - CALID Calendar, - CALTYPE CalType); -// #ifdef UNICODE -alias EnumCalendarInfoW EnumCalendarInfo; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0500) -extern(Windows) export BOOL EnumCalendarInfoExA( - CALINFO_ENUMPROCEXA lpCalInfoEnumProcEx, - LCID Locale, - CALID Calendar, - CALTYPE CalType); -extern(Windows) export BOOL EnumCalendarInfoExW( - CALINFO_ENUMPROCEXW lpCalInfoEnumProcEx, - LCID Locale, - CALID Calendar, - CALTYPE CalType); -// #ifdef UNICODE -alias EnumCalendarInfoExW EnumCalendarInfoEx; -// #else -// #... -// #endif // !UNICODE -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export BOOL EnumTimeFormatsA( - TIMEFMT_ENUMPROCA lpTimeFmtEnumProc, - LCID Locale, - DWORD dwFlags); -extern(Windows) export BOOL EnumTimeFormatsW( - TIMEFMT_ENUMPROCW lpTimeFmtEnumProc, - LCID Locale, - DWORD dwFlags); -// #ifdef UNICODE -alias EnumTimeFormatsW EnumTimeFormats; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumDateFormatsA( - DATEFMT_ENUMPROCA lpDateFmtEnumProc, - LCID Locale, - DWORD dwFlags); -extern(Windows) export BOOL EnumDateFormatsW( - DATEFMT_ENUMPROCW lpDateFmtEnumProc, - LCID Locale, - DWORD dwFlags); -// #ifdef UNICODE -alias EnumDateFormatsW EnumDateFormats; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0500) -extern(Windows) export BOOL EnumDateFormatsExA( - DATEFMT_ENUMPROCEXA lpDateFmtEnumProcEx, - LCID Locale, - DWORD dwFlags); -extern(Windows) export BOOL EnumDateFormatsExW( - DATEFMT_ENUMPROCEXW lpDateFmtEnumProcEx, - LCID Locale, - DWORD dwFlags); -// #ifdef UNICODE -alias EnumDateFormatsExW EnumDateFormatsEx; -// #else -// #... -// #endif // !UNICODE -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0500) -extern(Windows) export BOOL IsValidLanguageGroup( - LGRPID LanguageGroup, - DWORD dwFlags); -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export BOOL IsValidLocale( - LCID Locale, - DWORD dwFlags); - -extern(Windows) export int GetGeoInfoA( - GEOID Location, - GEOTYPE GeoType, - LPSTR lpGeoData, - int cchData, - LANGID LangId); -extern(Windows) export int GetGeoInfoW( - GEOID Location, - GEOTYPE GeoType, - LPWSTR lpGeoData, - int cchData, - LANGID LangId); -// #ifdef UNICODE -alias GetGeoInfoW GetGeoInfo; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumSystemGeoID( - GEOCLASS GeoClass, - GEOID ParentGeoId, - GEO_ENUMPROC lpGeoEnumProc); - -extern(Windows) export GEOID GetUserGeoID( - GEOCLASS GeoClass); - -extern(Windows) export BOOL SetUserGeoID( - GEOID GeoId); - -extern(Windows) export LCID ConvertDefaultLocale( - LCID Locale); - -extern(Windows) export LCID GetThreadLocale(); - -extern(Windows) export BOOL SetThreadLocale( - LCID Locale - ); - -// #if(WINVER >= 0x0500) -extern(Windows) export LANGID GetSystemDefaultUILanguage(); - -extern(Windows) export LANGID GetUserDefaultUILanguage(); -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export LANGID GetSystemDefaultLangID(); - -extern(Windows) export LANGID GetUserDefaultLangID(); - -extern(Windows) export LCID GetSystemDefaultLCID(); - -extern(Windows) export LCID GetUserDefaultLCID(); - -extern(Windows) export BOOL GetStringTypeExA( - LCID Locale, - DWORD dwInfoType, - LPCSTR lpSrcStr, - int cchSrc, - LPWORD lpCharType); -extern(Windows) export BOOL GetStringTypeExW( - LCID Locale, - DWORD dwInfoType, - LPCWSTR lpSrcStr, - int cchSrc, - LPWORD lpCharType); -// #ifdef UNICODE -alias GetStringTypeExW GetStringTypeEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetStringTypeA( - LCID Locale, - DWORD dwInfoType, - LPCSTR lpSrcStr, - int cchSrc, - LPWORD lpCharType); - -extern(Windows) export BOOL GetStringTypeW( - DWORD dwInfoType, - LPCWSTR lpSrcStr, - int cchSrc, - LPWORD lpCharType); - -extern(Windows) export int FoldStringA( - DWORD dwMapFlags, - LPCSTR lpSrcStr, - int cchSrc, - LPSTR lpDestStr, - int cchDest); -extern(Windows) export int FoldStringW( - DWORD dwMapFlags, - LPCWSTR lpSrcStr, - int cchSrc, - LPWSTR lpDestStr, - int cchDest); -// #ifdef UNICODE -alias FoldStringW FoldString; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0500) -extern(Windows) export BOOL EnumSystemLanguageGroupsA( - LANGUAGEGROUP_ENUMPROCA lpLanguageGroupEnumProc, - DWORD dwFlags, - LONG_PTR lParam); -extern(Windows) export BOOL EnumSystemLanguageGroupsW( - LANGUAGEGROUP_ENUMPROCW lpLanguageGroupEnumProc, - DWORD dwFlags, - LONG_PTR lParam); -// #ifdef UNICODE -alias EnumSystemLanguageGroupsW EnumSystemLanguageGroups; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumLanguageGroupLocalesA( - LANGGROUPLOCALE_ENUMPROCA lpLangGroupLocaleEnumProc, - LGRPID LanguageGroup, - DWORD dwFlags, - LONG_PTR lParam); -extern(Windows) export BOOL EnumLanguageGroupLocalesW( - LANGGROUPLOCALE_ENUMPROCW lpLangGroupLocaleEnumProc, - LGRPID LanguageGroup, - DWORD dwFlags, - LONG_PTR lParam); -// #ifdef UNICODE -alias EnumLanguageGroupLocalesW EnumLanguageGroupLocales; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumUILanguagesA( - UILANGUAGE_ENUMPROCA lpUILanguageEnumProc, - DWORD dwFlags, - LONG_PTR lParam); -extern(Windows) export BOOL EnumUILanguagesW( - UILANGUAGE_ENUMPROCW lpUILanguageEnumProc, - DWORD dwFlags, - LONG_PTR lParam); -// #ifdef UNICODE -alias EnumUILanguagesW EnumUILanguages; -// #else -// #... -// #endif // !UNICODE -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export BOOL EnumSystemLocalesA( - LOCALE_ENUMPROCA lpLocaleEnumProc, - DWORD dwFlags); -extern(Windows) export BOOL EnumSystemLocalesW( - LOCALE_ENUMPROCW lpLocaleEnumProc, - DWORD dwFlags); -// #ifdef UNICODE -alias EnumSystemLocalesW EnumSystemLocales; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumSystemCodePagesA( - CODEPAGE_ENUMPROCA lpCodePageEnumProc, - DWORD dwFlags); -extern(Windows) export BOOL EnumSystemCodePagesW( - CODEPAGE_ENUMPROCW lpCodePageEnumProc, - DWORD dwFlags); -// #ifdef UNICODE -alias EnumSystemCodePagesW EnumSystemCodePages; -// #else -// #... -// #endif // !UNICODE - -// #endif // NONLS - -// #ifdef __cplusplus -// } -// #endif - -// #endif // _WINNLS_ +/***********************************************************************\ +* winnls.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.winnls; +pragma(lib, "kernel32.lib"); + +private import win32.basetsd, win32.w32api, win32.winbase, win32.windef; + +alias DWORD LCTYPE, CALTYPE, CALID, LGRPID, GEOID, GEOTYPE, GEOCLASS; + +const size_t + MAX_DEFAULTCHAR = 2, + MAX_LEADBYTES = 12; + +const LCTYPE + LOCALE_USE_CP_ACP = 0x40000000, + LOCALE_RETURN_NUMBER = 0x20000000; + +enum : LCTYPE { + LOCALE_ILANGUAGE = 1, + LOCALE_SLANGUAGE, + LOCALE_SABBREVLANGNAME, + LOCALE_SNATIVELANGNAME, + LOCALE_ICOUNTRY, + LOCALE_SCOUNTRY, + LOCALE_SABBREVCTRYNAME, + LOCALE_SNATIVECTRYNAME, + LOCALE_IDEFAULTLANGUAGE, + LOCALE_IDEFAULTCOUNTRY, + LOCALE_IDEFAULTCODEPAGE, + LOCALE_SLIST, + LOCALE_IMEASURE, + LOCALE_SDECIMAL, + LOCALE_STHOUSAND, + LOCALE_SGROUPING, + LOCALE_IDIGITS, + LOCALE_ILZERO, + LOCALE_SNATIVEDIGITS, + LOCALE_SCURRENCY, + LOCALE_SINTLSYMBOL, + LOCALE_SMONDECIMALSEP, + LOCALE_SMONTHOUSANDSEP, + LOCALE_SMONGROUPING, + LOCALE_ICURRDIGITS, + LOCALE_IINTLCURRDIGITS, + LOCALE_ICURRENCY, + LOCALE_INEGCURR, + LOCALE_SDATE, + LOCALE_STIME, + LOCALE_SSHORTDATE, + LOCALE_SLONGDATE, + LOCALE_IDATE, + LOCALE_ILDATE, + LOCALE_ITIME, + LOCALE_ICENTURY, + LOCALE_ITLZERO, + LOCALE_IDAYLZERO, + LOCALE_IMONLZERO, + LOCALE_S1159, + LOCALE_S2359, + LOCALE_SDAYNAME1, + LOCALE_SDAYNAME2, + LOCALE_SDAYNAME3, + LOCALE_SDAYNAME4, + LOCALE_SDAYNAME5, + LOCALE_SDAYNAME6, + LOCALE_SDAYNAME7, + LOCALE_SABBREVDAYNAME1, + LOCALE_SABBREVDAYNAME2, + LOCALE_SABBREVDAYNAME3, + LOCALE_SABBREVDAYNAME4, + LOCALE_SABBREVDAYNAME5, + LOCALE_SABBREVDAYNAME6, + LOCALE_SABBREVDAYNAME7, + LOCALE_SMONTHNAME1, + LOCALE_SMONTHNAME2, + LOCALE_SMONTHNAME3, + LOCALE_SMONTHNAME4, + LOCALE_SMONTHNAME5, + LOCALE_SMONTHNAME6, + LOCALE_SMONTHNAME7, + LOCALE_SMONTHNAME8, + LOCALE_SMONTHNAME9, + LOCALE_SMONTHNAME10, + LOCALE_SMONTHNAME11, + LOCALE_SMONTHNAME12, + LOCALE_SABBREVMONTHNAME1, + LOCALE_SABBREVMONTHNAME2, + LOCALE_SABBREVMONTHNAME3, + LOCALE_SABBREVMONTHNAME4, + LOCALE_SABBREVMONTHNAME5, + LOCALE_SABBREVMONTHNAME6, + LOCALE_SABBREVMONTHNAME7, + LOCALE_SABBREVMONTHNAME8, + LOCALE_SABBREVMONTHNAME9, + LOCALE_SABBREVMONTHNAME10, + LOCALE_SABBREVMONTHNAME11, + LOCALE_SABBREVMONTHNAME12, + LOCALE_SPOSITIVESIGN, + LOCALE_SNEGATIVESIGN, + LOCALE_IPOSSIGNPOSN, + LOCALE_INEGSIGNPOSN, + LOCALE_IPOSSYMPRECEDES, + LOCALE_IPOSSEPBYSPACE, + LOCALE_INEGSYMPRECEDES, + LOCALE_INEGSEPBYSPACE, + LOCALE_FONTSIGNATURE, + LOCALE_SISO639LANGNAME, + LOCALE_SISO3166CTRYNAME, // = 90 + LOCALE_SENGLANGUAGE = 0x1001, + LOCALE_SENGCOUNTRY = 0x1002, + LOCALE_IDEFAULTANSICODEPAGE = 0x1004, + LOCALE_INEGNUMBER = 0x1010, + LOCALE_STIMEFORMAT = 0x1003, + LOCALE_ITIMEMARKPOSN = 0x1005, + LOCALE_ICALENDARTYPE = 0x1009, + LOCALE_IOPTIONALCALENDAR = 0x100B, + LOCALE_IFIRSTDAYOFWEEK = 0x100C, + LOCALE_IFIRSTWEEKOFYEAR = 0x100D, + LOCALE_SMONTHNAME13 = 0x100E, + LOCALE_SABBREVMONTHNAME13 = 0x100F +} + +enum : LCID { + LOCALE_USER_DEFAULT = 0x400, + LOCALE_SYSTEM_DEFAULT = 0x800 +} + +const DWORD + NORM_IGNORECASE = 1, + NORM_IGNORENONSPACE = 2, + NORM_IGNORESYMBOLS = 4, + SORT_STRINGSORT = 0x01000, + NORM_IGNOREKANATYPE = 0x10000, + NORM_IGNOREWIDTH = 0x20000; + +const DWORD + LCMAP_LOWERCASE = 0x00000100, + LCMAP_UPPERCASE = 0x00000200, + LCMAP_SORTKEY = 0x00000400, + LCMAP_BYTEREV = 0x00000800, + LCMAP_HIRAGANA = 0x00100000, + LCMAP_KATAKANA = 0x00200000, + LCMAP_HALFWIDTH = 0x00400000, + LCMAP_FULLWIDTH = 0x00800000, + LCMAP_LINGUISTIC_CASING = 0x01000000, + LCMAP_SIMPLIFIED_CHINESE = 0x02000000, + LCMAP_TRADITIONAL_CHINESE = 0x04000000; + +const CALID ENUM_ALL_CALENDARS = -1; + +const DWORD + DATE_SHORTDATE = 1, + DATE_LONGDATE = 2, + DATE_USE_ALT_CALENDAR = 4, + LOCALE_NOUSEROVERRIDE = 0x80000000; + +enum : DWORD { + CP_INSTALLED = 1, + CP_SUPPORTED +} + +enum : DWORD { + LCID_INSTALLED = 1, + LCID_SUPPORTED = 2, + LCID_ALTERNATE_SORTS = 4 +} + +const DWORD + MAP_FOLDCZONE = 16, + MAP_PRECOMPOSED = 32, + MAP_COMPOSITE = 64, + MAP_FOLDDIGITS = 128; + +enum : UINT { + CP_ACP, + CP_OEMCP, + CP_MACCP, + CP_THREAD_ACP, // = 3 + CP_SYMBOL = 42, + CP_UTF7 = 65000, + CP_UTF8 = 65001 +} + +enum : DWORD { + CT_CTYPE1 = 1, + CT_CTYPE2 = 2, + CT_CTYPE3 = 4 +} + +const WORD + C1_UPPER = 1, + C1_LOWER = 2, + C1_DIGIT = 4, + C1_SPACE = 8, + C1_PUNCT = 16, + C1_CNTRL = 32, + C1_BLANK = 64, + C1_XDIGIT = 128, + C1_ALPHA = 256; + +enum : WORD { + C2_NOTAPPLICABLE, + C2_LEFTTORIGHT, + C2_RIGHTTOLEFT, + C2_EUROPENUMBER, + C2_EUROPESEPARATOR, + C2_EUROPETERMINATOR, + C2_ARABICNUMBER, + C2_COMMONSEPARATOR, + C2_BLOCKSEPARATOR, + C2_SEGMENTSEPARATOR, + C2_WHITESPACE, + C2_OTHERNEUTRAL // = 11 +} + +const WORD + C3_NOTAPPLICABLE = 0, + C3_NONSPACING = 1, + C3_DIACRITIC = 2, + C3_VOWELMARK = 4, + C3_SYMBOL = 8, + C3_KATAKANA = 0x0010, + C3_HIRAGANA = 0x0020, + C3_HALFWIDTH = 0x0040, + C3_FULLWIDTH = 0x0080, + C3_IDEOGRAPH = 0x0100, + C3_KASHIDA = 0x0200, + C3_LEXICAL = 0x0400, + C3_ALPHA = 0x8000; + +const DWORD + TIME_NOMINUTESORSECONDS = 1, + TIME_NOSECONDS = 2, + TIME_NOTIMEMARKER = 4, + TIME_FORCE24HOURFORMAT = 8; + +const DWORD + MB_PRECOMPOSED = 1, + MB_COMPOSITE = 2, + MB_USEGLYPHCHARS = 4, + MB_ERR_INVALID_CHARS = 8; + +const DWORD + WC_DISCARDNS = 16, + WC_SEPCHARS = 32, + WC_DEFAULTCHAR = 64, + WC_COMPOSITECHECK = 512; + +enum : LONG { + CTRY_DEFAULT = 0, + CTRY_DOMINICAN_REPUBLIC = 1, + CTRY_PUERTO_RICO = 1, + CTRY_CARIBBEAN = 1, + CTRY_JAMAICA = 1, + CTRY_UNITED_STATES = 1, + CTRY_TRINIDAD_Y_TOBAGO = 1, + CTRY_CANADA = 2, + CTRY_RUSSIA = 7, + CTRY_UZBEKISTAN = 7, + CTRY_KAZAKSTAN = 7, + CTRY_TATARSTAN = 7, + CTRY_EGYPT = 20, + CTRY_SOUTH_AFRICA = 27, + CTRY_GREECE = 30, + CTRY_NETHERLANDS = 31, + CTRY_BELGIUM = 32, + CTRY_FRANCE = 33, + CTRY_MONACO = 33, + CTRY_SPAIN = 34, + CTRY_HUNGARY = 36, + CTRY_ITALY = 39, + CTRY_ROMANIA = 40, + CTRY_SWITZERLAND = 41, + CTRY_LIECHTENSTEIN = 41, + CTRY_AUSTRIA = 43, + CTRY_UNITED_KINGDOM = 44, + CTRY_DENMARK = 45, + CTRY_SWEDEN = 46, + CTRY_NORWAY = 47, + CTRY_POLAND = 48, + CTRY_GERMANY = 49, + CTRY_PERU = 51, + CTRY_MEXICO = 52, + CTRY_ARGENTINA = 54, + CTRY_BRAZIL = 55, + CTRY_CHILE = 56, + CTRY_COLOMBIA = 57, + CTRY_VENEZUELA = 58, + CTRY_MALAYSIA = 60, + CTRY_AUSTRALIA = 61, + CTRY_INDONESIA = 62, + CTRY_PHILIPPINES = 63, + CTRY_NEW_ZEALAND = 64, + CTRY_SINGAPORE = 65, + CTRY_THAILAND = 66, + CTRY_JAPAN = 81, + CTRY_SOUTH_KOREA = 82, + CTRY_VIET_NAM = 84, + CTRY_PRCHINA = 86, + CTRY_TURKEY = 90, + CTRY_INDIA = 91, + CTRY_PAKISTAN = 92, + CTRY_MOROCCO = 212, + CTRY_ALGERIA = 213, + CTRY_TUNISIA = 216, + CTRY_LIBYA = 218, + CTRY_KENYA = 254, + CTRY_ZIMBABWE = 263, + CTRY_FAEROE_ISLANDS = 298, + CTRY_PORTUGAL = 351, + CTRY_LUXEMBOURG = 352, + CTRY_IRELAND = 353, + CTRY_ICELAND = 354, + CTRY_ALBANIA = 355, + CTRY_FINLAND = 358, + CTRY_BULGARIA = 359, + CTRY_LITHUANIA = 370, + CTRY_LATVIA = 371, + CTRY_ESTONIA = 372, + CTRY_ARMENIA = 374, + CTRY_BELARUS = 375, + CTRY_UKRAINE = 380, + CTRY_SERBIA = 381, + CTRY_CROATIA = 385, + CTRY_SLOVENIA = 386, + CTRY_MACEDONIA = 389, + CTRY_CZECH = 420, + CTRY_SLOVAK = 421, + CTRY_BELIZE = 501, + CTRY_GUATEMALA = 502, + CTRY_EL_SALVADOR = 503, + CTRY_HONDURAS = 504, + CTRY_NICARAGUA = 505, + CTRY_COSTA_RICA = 506, + CTRY_PANAMA = 507, + CTRY_BOLIVIA = 591, + CTRY_ECUADOR = 593, + CTRY_PARAGUAY = 595, + CTRY_URUGUAY = 598, + CTRY_BRUNEI_DARUSSALAM = 673, + CTRY_HONG_KONG = 852, + CTRY_MACAU = 853, + CTRY_TAIWAN = 886, + CTRY_MALDIVES = 960, + CTRY_LEBANON = 961, + CTRY_JORDAN = 962, + CTRY_SYRIA = 963, + CTRY_IRAQ = 964, + CTRY_KUWAIT = 965, + CTRY_SAUDI_ARABIA = 966, + CTRY_YEMEN = 967, + CTRY_OMAN = 968, + CTRY_UAE = 971, + CTRY_ISRAEL = 972, + CTRY_BAHRAIN = 973, + CTRY_QATAR = 974, + CTRY_MONGOLIA = 976, + CTRY_IRAN = 981, + CTRY_AZERBAIJAN = 994, + CTRY_GEORGIA = 995, + CTRY_KYRGYZSTAN = 996 +} + +enum : CALTYPE { + CAL_ICALINTVALUE = 1, + CAL_SCALNAME, + CAL_IYEAROFFSETRANGE, + CAL_SERASTRING, + CAL_SSHORTDATE, + CAL_SLONGDATE, + CAL_SDAYNAME1, + CAL_SDAYNAME2, + CAL_SDAYNAME3, + CAL_SDAYNAME4, + CAL_SDAYNAME5, + CAL_SDAYNAME6, + CAL_SDAYNAME7, + CAL_SABBREVDAYNAME1, + CAL_SABBREVDAYNAME2, + CAL_SABBREVDAYNAME3, + CAL_SABBREVDAYNAME4, + CAL_SABBREVDAYNAME5, + CAL_SABBREVDAYNAME6, + CAL_SABBREVDAYNAME7, + CAL_SMONTHNAME1, + CAL_SMONTHNAME2, + CAL_SMONTHNAME3, + CAL_SMONTHNAME4, + CAL_SMONTHNAME5, + CAL_SMONTHNAME6, + CAL_SMONTHNAME7, + CAL_SMONTHNAME8, + CAL_SMONTHNAME9, + CAL_SMONTHNAME10, + CAL_SMONTHNAME11, + CAL_SMONTHNAME12, + CAL_SMONTHNAME13, + CAL_SABBREVMONTHNAME1, + CAL_SABBREVMONTHNAME2, + CAL_SABBREVMONTHNAME3, + CAL_SABBREVMONTHNAME4, + CAL_SABBREVMONTHNAME5, + CAL_SABBREVMONTHNAME6, + CAL_SABBREVMONTHNAME7, + CAL_SABBREVMONTHNAME8, + CAL_SABBREVMONTHNAME9, + CAL_SABBREVMONTHNAME10, + CAL_SABBREVMONTHNAME11, + CAL_SABBREVMONTHNAME12, + CAL_SABBREVMONTHNAME13 // = 46 +} + + +enum : CALTYPE { + CAL_GREGORIAN = 1, + CAL_GREGORIAN_US, + CAL_JAPAN, + CAL_TAIWAN, + CAL_KOREA, + CAL_HIJRI, + CAL_THAI, + CAL_HEBREW, + CAL_GREGORIAN_ME_FRENCH, + CAL_GREGORIAN_ARABIC, + CAL_GREGORIAN_XLIT_ENGLISH, + CAL_GREGORIAN_XLIT_FRENCH // = 12 +} + +enum : int { + CSTR_LESS_THAN = 1, + CSTR_EQUAL, + CSTR_GREATER_THAN +} + +enum : DWORD { + LGRPID_INSTALLED = 1, + LGRPID_SUPPORTED +} + +enum : LGRPID { + LGRPID_WESTERN_EUROPE = 1, + LGRPID_CENTRAL_EUROPE, + LGRPID_BALTIC, + LGRPID_GREEK, + LGRPID_CYRILLIC, + LGRPID_TURKISH, + LGRPID_JAPANESE, + LGRPID_KOREAN, + LGRPID_TRADITIONAL_CHINESE, + LGRPID_SIMPLIFIED_CHINESE, + LGRPID_THAI, + LGRPID_HEBREW, + LGRPID_ARABIC, + LGRPID_VIETNAMESE, + LGRPID_INDIC, + LGRPID_GEORGIAN, + LGRPID_ARMENIAN // = 17 +} + +static if (WINVER >= 0x500) { + enum : LCTYPE { + LOCALE_SYEARMONTH = 0x1006, + LOCALE_SENGCURRNAME = 0x1007, + LOCALE_SNATIVECURRNAME = 0x1008, + LOCALE_IDEFAULTEBCDICCODEPAGE = 0x1012, + LOCALE_SSORTNAME = 0x1013, + LOCALE_IDIGITSUBSTITUTION = 0x1014, + LOCALE_IPAPERSIZE = 0x100A + } + + const DWORD + DATE_YEARMONTH = 8, + DATE_LTRREADING = 16, + DATE_RTLREADING = 32; + + const DWORD MAP_EXPAND_LIGATURES = 0x2000; + const DWORD WC_NO_BEST_FIT_CHARS = 1024; + + enum : CALTYPE { + CAL_SYEARMONTH = 47, + CAL_ITWODIGITYEARMAX = 48, + CAL_NOUSEROVERRIDE = LOCALE_NOUSEROVERRIDE, + CAL_RETURN_NUMBER = LOCALE_RETURN_NUMBER, + CAL_USE_CP_ACP = LOCALE_USE_CP_ACP + } +} // (WINVER >= 0x500) + +extern (Windows) { + alias BOOL function(LPSTR) CALINFO_ENUMPROCA; + alias BOOL function(LPWSTR) CALINFO_ENUMPROCW; + alias BOOL function(LPSTR, CALID) CALINFO_ENUMPROCEXA; + alias BOOL function(LPWSTR, CALID) CALINFO_ENUMPROCEXW; + alias BOOL function(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR) + LANGUAGEGROUP_ENUMPROCA; + alias BOOL function(LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR) + LANGUAGEGROUP_ENUMPROCW; + alias BOOL function(LGRPID, LCID, LPSTR, LONG_PTR) + LANGGROUPLOCALE_ENUMPROCA; + alias BOOL function(LGRPID, LCID, LPWSTR, LONG_PTR) + LANGGROUPLOCALE_ENUMPROCW; + alias BOOL function(LPWSTR, LONG_PTR) UILANGUAGE_ENUMPROCW; + alias BOOL function(LPSTR, LONG_PTR) UILANGUAGE_ENUMPROCA; + alias BOOL function(LPSTR) LOCALE_ENUMPROCA; + alias BOOL function(LPWSTR) LOCALE_ENUMPROCW; + alias BOOL function(LPSTR) CODEPAGE_ENUMPROCA; + alias BOOL function(LPWSTR) CODEPAGE_ENUMPROCW; + alias BOOL function(LPSTR) DATEFMT_ENUMPROCA; + alias BOOL function(LPWSTR) DATEFMT_ENUMPROCW; + alias BOOL function(LPSTR, CALID) DATEFMT_ENUMPROCEXA; + alias BOOL function(LPWSTR, CALID) DATEFMT_ENUMPROCEXW; + alias BOOL function(LPSTR) TIMEFMT_ENUMPROCA; + alias BOOL function(LPWSTR) TIMEFMT_ENUMPROCW; + alias BOOL function(GEOID) GEO_ENUMPROC; +} + +enum NLS_FUNCTION { + COMPARE_STRING = 0x0001 +} + +enum SYSGEOCLASS { + GEOCLASS_NATION = 16, + GEOCLASS_REGION = 14 +} + +enum SYSGEOTYPE { + GEO_NATION = 0x0001, + GEO_LATITUDE = 0x0002, + GEO_LONGITUDE = 0x0003, + GEO_ISO2 = 0x0004, + GEO_ISO3 = 0x0005, + GEO_RFC1766 = 0x0006, + GEO_LCID = 0x0007, + GEO_FRIENDLYNAME = 0x0008, + GEO_OFFICIALNAME = 0x0009, + GEO_TIMEZONES = 0x000a, + GEO_OFFICIALLANGUAGES = 0x000a +} + +struct CPINFO { + UINT MaxCharSize; + BYTE[MAX_DEFAULTCHAR] DefaultChar; + BYTE[MAX_LEADBYTES] LeadByte; +} +alias CPINFO* LPCPINFO; + +struct CPINFOEXA { + UINT MaxCharSize; + BYTE[MAX_DEFAULTCHAR] DefaultChar; + BYTE[MAX_LEADBYTES] LeadByte; + WCHAR UnicodeDefaultChar; + UINT CodePage; + CHAR[MAX_PATH] CodePageName; +} +alias CPINFOEXA* LPCPINFOEXA; + +struct CPINFOEXW { + UINT MaxCharSize; + BYTE[MAX_DEFAULTCHAR] DefaultChar; + BYTE[MAX_LEADBYTES] LeadByte; + WCHAR UnicodeDefaultChar; + UINT CodePage; + WCHAR[MAX_PATH] CodePageName; +} +alias CPINFOEXW* LPCPINFOEXW; + +struct CURRENCYFMTA { + UINT NumDigits; + UINT LeadingZero; + UINT Grouping; + LPSTR lpDecimalSep; + LPSTR lpThousandSep; + UINT NegativeOrder; + UINT PositiveOrder; + LPSTR lpCurrencySymbol; +} +alias CURRENCYFMTA* LPCURRENCYFMTA; + +struct CURRENCYFMTW { + UINT NumDigits; + UINT LeadingZero; + UINT Grouping; + LPWSTR lpDecimalSep; + LPWSTR lpThousandSep; + UINT NegativeOrder; + UINT PositiveOrder; + LPWSTR lpCurrencySymbol; +} +alias CURRENCYFMTW* LPCURRENCYFMTW; + +struct NLSVERSIONINFO { + DWORD dwNLSVersionInfoSize; + DWORD dwNLSVersion; + DWORD dwDefinedVersion; +} +alias NLSVERSIONINFO* LPNLSVERSIONINFO; + +struct NUMBERFMTA { + UINT NumDigits; + UINT LeadingZero; + UINT Grouping; + LPSTR lpDecimalSep; + LPSTR lpThousandSep; + UINT NegativeOrder; +} +alias NUMBERFMTA* LPNUMBERFMTA; + +struct NUMBERFMTW { + UINT NumDigits; + UINT LeadingZero; + UINT Grouping; + LPWSTR lpDecimalSep; + LPWSTR lpThousandSep; + UINT NegativeOrder; +} +alias NUMBERFMTW* LPNUMBERFMTW; + +extern (Windows) { + int CompareStringA(LCID, DWORD, LPCSTR, int, LPCSTR, int); + int CompareStringW(LCID, DWORD, LPCWSTR, int, LPCWSTR, int); + LCID ConvertDefaultLocale(LCID); + BOOL EnumCalendarInfoA(CALINFO_ENUMPROCA, LCID, CALID, CALTYPE); + BOOL EnumCalendarInfoW(CALINFO_ENUMPROCW, LCID, CALID, CALTYPE); + BOOL EnumDateFormatsA(DATEFMT_ENUMPROCA, LCID, DWORD); + BOOL EnumDateFormatsW(DATEFMT_ENUMPROCW, LCID, DWORD); + BOOL EnumSystemCodePagesA(CODEPAGE_ENUMPROCA, DWORD); + BOOL EnumSystemCodePagesW(CODEPAGE_ENUMPROCW, DWORD); + BOOL EnumSystemGeoID(GEOCLASS, GEOID, GEO_ENUMPROC); + BOOL EnumSystemLocalesA(LOCALE_ENUMPROCA, DWORD); + BOOL EnumSystemLocalesW(LOCALE_ENUMPROCW, DWORD); + BOOL EnumTimeFormatsA(TIMEFMT_ENUMPROCA, LCID, DWORD); + BOOL EnumTimeFormatsW(TIMEFMT_ENUMPROCW, LCID, DWORD); + int FoldStringA(DWORD, LPCSTR, int, LPSTR, int); + int FoldStringW(DWORD, LPCWSTR, int, LPWSTR, int); + UINT GetACP(); + int GetCalendarInfoA(LCID, CALID, CALTYPE, LPSTR, int, LPDWORD); + int GetCalendarInfoW(LCID, CALID, CALTYPE, LPWSTR, int, LPDWORD); + BOOL GetCPInfo(UINT, LPCPINFO); + BOOL GetCPInfoExA(UINT, DWORD, LPCPINFOEXA); + BOOL GetCPInfoExW(UINT, DWORD, LPCPINFOEXW); + int GetCurrencyFormatA(LCID, DWORD, LPCSTR, CPtr!(CURRENCYFMTA), LPSTR, int); + int GetCurrencyFormatW(LCID, DWORD, LPCWSTR, CPtr!(CURRENCYFMTW), LPWSTR, + int); + int GetDateFormatA(LCID, DWORD, CPtr!(SYSTEMTIME), LPCSTR, LPSTR, int); + int GetDateFormatW(LCID, DWORD, CPtr!(SYSTEMTIME), LPCWSTR, LPWSTR, int); + int GetGeoInfoA(GEOID, GEOTYPE, LPSTR, int, LANGID); + int GetGeoInfoW(GEOID, GEOTYPE, LPWSTR, int, LANGID); + int GetLocaleInfoA(LCID, LCTYPE, LPSTR, int); + int GetLocaleInfoW(LCID, LCTYPE, LPWSTR, int); + BOOL GetNLSVersion(NLS_FUNCTION, LCID, LPNLSVERSIONINFO); + int GetNumberFormatA(LCID, DWORD, LPCSTR, CPtr!(NUMBERFMTA), LPSTR, int); + int GetNumberFormatW(LCID, DWORD, LPCWSTR, CPtr!(NUMBERFMTW), LPWSTR, int); + UINT GetOEMCP(); + BOOL GetStringTypeA(LCID, DWORD, LPCSTR, int, LPWORD); + BOOL GetStringTypeW(DWORD, LPCWSTR, int, LPWORD); + BOOL GetStringTypeExA(LCID, DWORD, LPCSTR, int, LPWORD); + BOOL GetStringTypeExW(LCID, DWORD, LPCWSTR, int, LPWORD); + LANGID GetSystemDefaultLangID(); + LCID GetSystemDefaultLCID(); + LCID GetThreadLocale(); + int GetTimeFormatA(LCID, DWORD, CPtr!(SYSTEMTIME), LPCSTR, LPSTR, int); + int GetTimeFormatW(LCID, DWORD, CPtr!(SYSTEMTIME), LPCWSTR, LPWSTR, int); + LANGID GetUserDefaultLangID(); + LCID GetUserDefaultLCID(); + GEOID GetUserGeoID(GEOCLASS); + BOOL IsDBCSLeadByte(BYTE); + BOOL IsDBCSLeadByteEx(UINT, BYTE); + BOOL IsNLSDefinedString(NLS_FUNCTION, DWORD, LPNLSVERSIONINFO, LPCWSTR, + int); + BOOL IsValidCodePage(UINT); + BOOL IsValidLocale(LCID, DWORD); + int LCMapStringA(LCID, DWORD, LPCSTR, int, LPSTR, int); + int LCMapStringW(LCID, DWORD, LPCWSTR, int, LPWSTR, int); + int MultiByteToWideChar(UINT, DWORD, LPCSTR, int, LPWSTR, int); + int SetCalendarInfoA(LCID, CALID, CALTYPE, LPCSTR); + int SetCalendarInfoW(LCID, CALID, CALTYPE, LPCWSTR); + BOOL SetLocaleInfoA(LCID, LCTYPE, LPCSTR); + BOOL SetLocaleInfoW(LCID, LCTYPE, LPCWSTR); + BOOL SetThreadLocale(LCID); + BOOL SetUserGeoID(GEOID); + int WideCharToMultiByte(UINT, DWORD, LPCWSTR, int, LPSTR, int, LPCSTR, + LPBOOL); + + static if (WINVER >= 0x410) { + BOOL EnumCalendarInfoExA(CALINFO_ENUMPROCEXA, LCID, CALID, CALTYPE); + BOOL EnumCalendarInfoExW(CALINFO_ENUMPROCEXW, LCID, CALID, CALTYPE); + BOOL EnumDateFormatsExA(DATEFMT_ENUMPROCEXA, LCID, DWORD); + BOOL EnumDateFormatsExW(DATEFMT_ENUMPROCEXW, LCID, DWORD); + BOOL IsValidLanguageGroup(LGRPID, DWORD); + } + + static if (WINVER >= 0x500) { + LANGID GetSystemDefaultUILanguage(); + LANGID GetUserDefaultUILanguage(); + + static if (_WIN32_WINNT_ONLY) { + BOOL EnumSystemLanguageGroupsA(LANGUAGEGROUP_ENUMPROCA, DWORD, + LONG_PTR); + BOOL EnumSystemLanguageGroupsW(LANGUAGEGROUP_ENUMPROCW, DWORD, + LONG_PTR); + BOOL EnumLanguageGroupLocalesA(LANGGROUPLOCALE_ENUMPROCA, LGRPID, + DWORD, LONG_PTR); + BOOL EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW, LGRPID, + DWORD, LONG_PTR); + BOOL EnumUILanguagesA(UILANGUAGE_ENUMPROCA, DWORD, LONG_PTR); + BOOL EnumUILanguagesW(UILANGUAGE_ENUMPROCW, DWORD, LONG_PTR); + } + } +} + +version (Unicode) { + alias CALINFO_ENUMPROCW CALINFO_ENUMPROC; + alias CALINFO_ENUMPROCEXW CALINFO_ENUMPROCEX; + alias LOCALE_ENUMPROCW LOCALE_ENUMPROC; + alias CODEPAGE_ENUMPROCW CODEPAGE_ENUMPROC; + alias DATEFMT_ENUMPROCW DATEFMT_ENUMPROC; + alias DATEFMT_ENUMPROCEXW DATEFMT_ENUMPROCEX; + alias TIMEFMT_ENUMPROCW TIMEFMT_ENUMPROC; + alias LANGUAGEGROUP_ENUMPROCW LANGUAGEGROUP_ENUMPROC; + alias LANGGROUPLOCALE_ENUMPROCW LANGGROUPLOCALE_ENUMPROC; + alias UILANGUAGE_ENUMPROCW UILANGUAGE_ENUMPROC; + alias CPINFOEXW CPINFOEX; + alias LPCPINFOEXW LPCPINFOEX; + alias CURRENCYFMTW CURRENCYFMT; + alias LPCURRENCYFMTW LPCURRENCYFMT; + alias NUMBERFMTW NUMBERFMT; + alias LPNUMBERFMTW LPNUMBERFMT; + alias CompareStringW CompareString; + alias EnumCalendarInfoW EnumCalendarInfo; + alias EnumSystemCodePagesW EnumSystemCodePages; + alias EnumSystemLocalesW EnumSystemLocales; + alias EnumTimeFormatsW EnumTimeFormats; + alias FoldStringW FoldString; + alias GetCalendarInfoW GetCalendarInfo; + alias GetCPInfoExW GetCPInfoEx; + alias GetCurrencyFormatW GetCurrencyFormat; + alias GetDateFormatW GetDateFormat; + alias GetGeoInfoW GetGeoInfo; + alias GetLocaleInfoW GetLocaleInfo; + alias GetNumberFormatW GetNumberFormat; + alias GetStringTypeExW GetStringTypeEx; + alias GetTimeFormatW GetTimeFormat; + alias LCMapStringW LCMapString; + alias SetCalendarInfoW SetCalendarInfo; + alias SetLocaleInfoW SetLocaleInfo; + + static if (WINVER >= 0x410) { + alias EnumCalendarInfoExW EnumCalendarInfoEx; + alias EnumDateFormatsExW EnumDateFormatsEx; + } + + static if (_WIN32_WINNT_ONLY && WINVER >= 0x500) { + alias EnumSystemLanguageGroupsW EnumSystemLanguageGroups; + alias EnumLanguageGroupLocalesW EnumLanguageGroupLocales; + alias EnumUILanguagesW EnumUILanguages; + } + +} else { + alias CALINFO_ENUMPROCA CALINFO_ENUMPROC; + alias CALINFO_ENUMPROCEXA CALINFO_ENUMPROCEX; + alias LOCALE_ENUMPROCA LOCALE_ENUMPROC; + alias CODEPAGE_ENUMPROCA CODEPAGE_ENUMPROC; + alias DATEFMT_ENUMPROCA DATEFMT_ENUMPROC; + alias DATEFMT_ENUMPROCEXA DATEFMT_ENUMPROCEX; + alias TIMEFMT_ENUMPROCA TIMEFMT_ENUMPROC; + alias LANGUAGEGROUP_ENUMPROCA LANGUAGEGROUP_ENUMPROC; + alias LANGGROUPLOCALE_ENUMPROCA LANGGROUPLOCALE_ENUMPROC; + alias UILANGUAGE_ENUMPROCA UILANGUAGE_ENUMPROC; + alias CPINFOEXA CPINFOEX; + alias LPCPINFOEXA LPCPINFOEX; + alias CURRENCYFMTA CURRENCYFMT; + alias LPCURRENCYFMTA LPCURRENCYFMT; + alias NUMBERFMTA NUMBERFMT; + alias LPNUMBERFMTA LPNUMBERFMT; + alias CompareStringA CompareString; + alias EnumCalendarInfoA EnumCalendarInfo; + alias EnumSystemCodePagesA EnumSystemCodePages; + alias EnumSystemLocalesA EnumSystemLocales; + alias EnumTimeFormatsA EnumTimeFormats; + alias FoldStringA FoldString; + alias GetCalendarInfoA GetCalendarInfo; + alias GetCPInfoExA GetCPInfoEx; + alias GetCurrencyFormatA GetCurrencyFormat; + alias GetDateFormatA GetDateFormat; + alias GetGeoInfoA GetGeoInfo; + alias GetLocaleInfoA GetLocaleInfo; + alias GetNumberFormatA GetNumberFormat; + alias GetStringTypeExA GetStringTypeEx; + alias GetTimeFormatA GetTimeFormat; + alias LCMapStringA LCMapString; + alias SetCalendarInfoA SetCalendarInfo; + alias SetLocaleInfoA SetLocaleInfo; + + static if (WINVER >= 0x410) { + alias EnumCalendarInfoExA EnumCalendarInfoEx; + alias EnumDateFormatsExA EnumDateFormatsEx; + } + + static if (_WIN32_WINNT_ONLY && WINVER >= 0x500) { + alias EnumSystemLanguageGroupsA EnumSystemLanguageGroups; + alias EnumLanguageGroupLocalesA EnumLanguageGroupLocales; + alias EnumUILanguagesA EnumUILanguages; + } +} Index: src/win32/winnt.d ================================================================== --- src/win32/winnt.d +++ src/win32/winnt.d @@ -1,5765 +1,3980 @@ -module win32.winnt; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.windef; -alias void _TEB; -alias void _EXCEPTION_REGISTRATION_RECORD; -private extern(C) { - int memcmp(void*, void*, uint); - void* memmove(void*, void*, uint); - void* memcpy(void*, void*, uint); - void* memset(void*, uint, uint); -} - -// #ifndef _WINNT_ -// #define _WINNT_ - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #include -enum : uint { ANYSIZE_ARRAY = 1 } - -// #if defined(_M_MRX000) && !(defined(MIDL_PASS) || defined(RC_INVOKED)) && defined(ENABLE_RESTRICTED) -// #... -// #else -// #define RESTRICTED_POINTER -// #endif - -// #if defined(_M_MRX000) || defined(_M_ALPHA) || defined(_M_PPC) || defined(_M_IA64) || defined(_M_AMD64) -// #... -// #if defined(_WIN64) -// #... -// #else -// #... -// #endif -// #else -// #define UNALIGNED -// #define UNALIGNED64 -// #endif - -// #if defined(_WIN64) || defined(_M_ALPHA) -// #... -// #... -// #else -const uint MAX_NATURAL_ALIGNMENT = DWORD.sizeof; -enum : uint { MEMORY_ALLOCATION_ALIGNMENT = 8 } -// #endif - -// #ifdef __cplusplus -// #if _MSC_VER >= 1300 -// #define TYPE_ALIGNMENT( t ) __alignof(t) -// #endif -// #else -// #... -// ... -// #endif - -// #if defined(_WIN64) - -// #... -// ... - -// #... - -// #else - -// #define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD ) - -// #endif - -// #define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1] - -// #if !defined(_MAC) && (defined(_M_MRX000) || defined(_M_AMD64) || defined(_M_IA64)) && (_MSC_VER >= 1100) && !(defined(MIDL_PASS) || defined(RC_INVOKED)) -// #... -// ... -// #if defined(_WIN64) -// #... -// #else -// #... -// #endif -// #else -// #if defined(_MAC) && defined(_MAC_INT_64) -// #... -// ... -// #else -// #define POINTER_64 -alias uint POINTER_64_INT; -// #endif -alias void* POINTER_32; -// #endif - -// #if defined(_IA64_) || defined(_AMD64_) -// #... -// #else -alias POINTER_32 FIRMWARE_PTR; -// #endif - -// #include - -// #if (defined(_M_IX86) || defined(_M_IA64) || defined(_M_AMD64)) && !defined(MIDL_PASS) -// #define DECLSPEC_IMPORT __declspec(dllimport) -// #else -// #... -// #endif - -// #ifndef DECLSPEC_NORETURN -// #if (_MSC_VER >= 1200) && !defined(MIDL_PASS) -// #define DECLSPEC_NORETURN __declspec(noreturn) -// #else -// #... -// #endif -// #endif - -// #ifndef DECLSPEC_ALIGN -// #if (_MSC_VER >= 1300) && !defined(MIDL_PASS) -// #define DECLSPEC_ALIGN(x) __declspec(align(x)) -// #else -// #... -// #endif -// #endif - -// #ifndef DECLSPEC_CACHEALIGN -// #define DECLSPEC_CACHEALIGN DECLSPEC_ALIGN(128) -// #endif - -// #ifndef DECLSPEC_UUID -// #if (_MSC_VER >= 1100) && defined (__cplusplus) -// #define DECLSPEC_UUID(x) __declspec(uuid(x)) -// #else -// #... -// #endif -// #endif - -// #ifndef DECLSPEC_NOVTABLE -// #if (_MSC_VER >= 1100) && defined(__cplusplus) -// #define DECLSPEC_NOVTABLE __declspec(novtable) -// #else -// #... -// #endif -// #endif - -// #ifndef DECLSPEC_SELECTANY -// #if (_MSC_VER >= 1100) -// #define DECLSPEC_SELECTANY __declspec(selectany) -// #else -// #... -// #endif -// #endif - -// #ifndef NOP_FUNCTION -// #if (_MSC_VER >= 1210) -// #... -// #else -// #... -// #endif -// #endif - -// #ifndef DECLSPEC_ADDRSAFE -// #if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64)) -// #... -// #else -// #define DECLSPEC_ADDRSAFE -// #endif -// #endif - -// #ifndef FORCEINLINE -// #if (_MSC_VER >= 1200) -// #define FORCEINLINE __forceinline -// #else -// #... -// #endif -// #endif - -// #ifndef DECLSPEC_DEPRECATED -// #if (_MSC_VER >= 1300) && !defined(MIDL_PASS) -// #define DECLSPEC_DEPRECATED __declspec(deprecated) -// #define DEPRECATE_SUPPORTED -// #else -// #... -// #... -// #endif -// #endif - -alias void* PVOID; -deprecated alias void* PVOID64; /* warning: 64-bit */ - -// #if ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)) && !defined(_M_AMD64) -// #define NTAPI __stdcall -// #else -// #... -// #... -// #endif - -// #if !defined(_NTSYSTEM_) -// #define NTSYSAPI DECLSPEC_IMPORT -// #define NTSYSCALLAPI DECLSPEC_IMPORT -// #else -// #... -// #if defined(_NTDLLBUILD_) -// #... -// #else -// #... -// #endif - -// #endif - -// #ifndef VOID -alias void VOID; -alias char CHAR; -alias short SHORT; -alias int LONG; -// #endif - -// #ifndef _MAC -alias wchar WCHAR; -// #else - -// ... -// #endif - -alias WCHAR* PWCHAR; -alias WCHAR* LPWCH; -alias WCHAR* PWCH; -alias WCHAR* LPCWCH; -alias WCHAR* PCWCH; -alias WCHAR* NWPSTR; -alias WCHAR* LPWSTR; -alias WCHAR* PWSTR; -alias WCHAR* LPUWSTR; -alias WCHAR* PUWSTR; - -alias WCHAR* LPCWSTR; -alias WCHAR* PCWSTR; -alias WCHAR* LPCUWSTR; -alias WCHAR* PCUWSTR; - -alias CHAR* PCHAR; -alias CHAR* LPCH; -alias CHAR* PCH; - -alias CHAR* LPCCH; -alias CHAR* PCCH; -alias CHAR* NPSTR; -alias CHAR* LPSTR; -alias CHAR* PSTR; -alias CHAR* LPCSTR; -alias CHAR* PCSTR; - -// #ifdef UNICODE // r_winnt - -// #ifndef _TCHAR_DEFINED -alias WCHAR TCHAR; -alias WCHAR* PTCHAR; -alias WCHAR TBYTE; -alias WCHAR* PTBYTE; -// #define _TCHAR_DEFINED -// #endif /* !_TCHAR_DEFINED */ - -alias LPWSTR LPTCH; -alias LPWSTR PTCH; -alias LPWSTR PTSTR; -alias LPWSTR LPTSTR; -alias LPCWSTR PCTSTR; -alias LPCWSTR LPCTSTR; -alias LPUWSTR PUTSTR; -alias LPUWSTR LPUTSTR; -alias LPCUWSTR PCUTSTR; -alias LPCUWSTR LPCUTSTR; -alias LPWSTR LP; -// #define __TEXT(quote) L##quote - -// #else /* UNICODE */ // r_winnt - -// #ifndef _TCHAR_DEFINED -// ... -// #... -// #endif /* !_TCHAR_DEFINED */ - -// ... -// #... - -// #endif /* UNICODE */ // r_winnt -TCHAR[] TEXT(TCHAR[] quote){ return quote; } - -alias SHORT* PSHORT; -alias LONG* PLONG; - -// #ifdef STRICT -alias void* HANDLE; -// #define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name -// #else -// ... -// #... -// #endif -alias HANDLE* PHANDLE; - -alias BYTE FCHAR; -alias WORD FSHORT; -alias DWORD FLONG; - -// #ifndef _HRESULT_DEFINED -// #define _HRESULT_DEFINED -alias LONG HRESULT; - -// #endif // !_HRESULT_DEFINED - -// #ifdef __cplusplus -// #define EXTERN_C extern "C" -// #else -// #... -// #endif - -// #if defined(_WIN32) || defined(_MPPC_) - -// #ifdef _68K_ -// #... -// #else -// #define STDMETHODCALLTYPE __stdcall -// #endif -// #define STDMETHODVCALLTYPE __cdecl - -// #define STDAPICALLTYPE __stdcall -// #define STDAPIVCALLTYPE __cdecl - -// #else - -// #... -// #... - -// #... -// #... - -// #endif - -// #define STDAPI EXTERN_C HRESULT STDAPICALLTYPE -// #define STDAPI_(type) EXTERN_C type STDAPICALLTYPE - -// #define STDMETHODIMP HRESULT STDMETHODCALLTYPE -// #define STDMETHODIMP_(type) type STDMETHODCALLTYPE - -// #define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE -// #define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE - -// #define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE -// #define STDMETHODIMPV_(type) type STDMETHODVCALLTYPE - -alias char CCHAR; -alias DWORD LCID; -alias PDWORD PLCID; -alias WORD LANGID; -enum : uint { APPLICATION_ERROR_MASK = 0x20000000 } -enum : uint { ERROR_SEVERITY_SUCCESS = 0x00000000 } -enum : uint { ERROR_SEVERITY_INFORMATIONAL = 0x40000000 } -enum : uint { ERROR_SEVERITY_WARNING = 0x80000000 } -enum : uint { ERROR_SEVERITY_ERROR = 0xC0000000 } - -// #if defined(_M_IA64) && !defined(MIDL_PASS) -// ... -// #endif -struct _FLOAT128 { - __int64 LowPart; - __int64 HighPart; -} -alias _FLOAT128 FLOAT128; - -alias FLOAT128* PFLOAT128; - -// #define _ULONGLONG_ -// #if (!defined (_MAC) && (!defined(MIDL_PASS) || defined(__midl)) && (!defined(_M_IX86) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64))) -// ... - -// #... -// #else - -// #if defined(_MAC) && defined(_MAC_INT_64) -// ... - -// #... -// #else -alias double LONGLONG; -alias double ULONGLONG; -// #endif //_MAC and int64 - -// #endif - -alias LONGLONG* PLONGLONG; -alias ULONGLONG* PULONGLONG; - -alias LONGLONG USN; - -// #if defined(MIDL_PASS) -// ... -// #else // MIDL_PASS -union _LARGE_INTEGER { -struct _0 { - DWORD LowPart; - LONG HighPart; -} -_0 _; - -struct _1 { - DWORD LowPart; - LONG HighPart; -} -_1 u; - -// #endif //MIDL_PASS - LONGLONG QuadPart; -} -alias _LARGE_INTEGER LARGE_INTEGER; - -alias LARGE_INTEGER* PLARGE_INTEGER; - -// #if defined(MIDL_PASS) -// ... -// #else // MIDL_PASS -union _ULARGE_INTEGER { -struct _2 { - DWORD LowPart; - DWORD HighPart; -} -_2 _; - -struct _3 { - DWORD LowPart; - DWORD HighPart; -} -_3 u; - -// #endif //MIDL_PASS - ULONGLONG QuadPart; -} -alias _ULARGE_INTEGER ULARGE_INTEGER; - -alias ULARGE_INTEGER* PULARGE_INTEGER; - -struct _LUID { - DWORD LowPart; - LONG HighPart; -} -alias _LUID LUID; -alias _LUID* PLUID; - -// #define _DWORDLONG_ -alias ULONGLONG DWORDLONG; -alias DWORDLONG* PDWORDLONG; - -// #if defined(MIDL_PASS) || defined(RC_INVOKED) - -// #... -// #... - -// #... -// #... -// #... - -// #elif defined(_M_MRX000) - -// #... -// #... - -// #... -// #... -// #... - -// #if defined (__cplusplus) -// ... -// #endif - -// ... - -// ... - -// ... - -// ... - -// ... - -// #if defined (__cplusplus) -// ... -// #endif - -// #... -// #... - -// #... -// #... -// #... - -// #elif defined(_M_IX86) - -long Int32x32To64(int a, int b) { return (cast(long)a) * b; } -ulong UInt32x32To64(uint a, uint b) { return (cast(ulong)a) * b; } - -extern(Windows) export ULONGLONG Int64ShllMod32( - ULONGLONG Value, - DWORD ShiftCount); - -extern(Windows) export LONGLONG Int64ShraMod32( - LONGLONG Value, - DWORD ShiftCount); - -extern(Windows) export ULONGLONG Int64ShrlMod32( - ULONGLONG Value, - DWORD ShiftCount); - -// #if _MSC_VER >= 1200 -// #pragma warning(push) -// #endif -// #pragma warning(disable:4035) // re-enable below - -// __inline ULONGLONG Int64ShllMod32( ULONGLONG Value, DWORD ShiftCount ); - -// __inline LONGLONG Int64ShraMod32( LONGLONG Value, DWORD ShiftCount ); - -// __inline ULONGLONG Int64ShrlMod32( ULONGLONG Value, DWORD ShiftCount ); - -// #if _MSC_VER >= 1200 -// #pragma warning(pop) -// #else -// #... -// #endif - -// #elif defined(_M_ALPHA) - -// #... -// #... - -// #... -// #... -// #... - -// #elif defined(_M_PPC) - -// #... -// #... - -// #... -// #... -// #... - -// #elif defined(_68K_) || defined(_MPPC_) - -// #... -// #... - -// #... -// #... -// #... - -// #elif defined(_M_IA64) || defined(_M_AMD64) - -// #... -// #... - -// #... -// #... -// #... - -// #else - -// #... - -// #endif - -enum : CHAR { ANSI_NULL = 0 } -enum : WCHAR { UNICODE_NULL = 0 } -enum : WORD { UNICODE_STRING_MAX_BYTES = 65534 } -enum : uint { UNICODE_STRING_MAX_CHARS = 32767 } -alias BYTE BOOLEAN; -alias BOOLEAN* PBOOLEAN; - -struct _LIST_ENTRY { - _LIST_ENTRY *Flink; - _LIST_ENTRY *Blink; -} -alias _LIST_ENTRY LIST_ENTRY; -alias _LIST_ENTRY* PLIST_ENTRY; -alias _LIST_ENTRY* RESTRICTED_POINTERPRLIST_ENTRY; - -struct _SINGLE_LIST_ENTRY { - _SINGLE_LIST_ENTRY *Next; -} -alias _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY; -alias _SINGLE_LIST_ENTRY* PSINGLE_LIST_ENTRY; - -struct LIST_ENTRY32 { - DWORD Flink; - DWORD Blink; -} - -alias LIST_ENTRY32* PLIST_ENTRY32; - -struct LIST_ENTRY64 { - ULONGLONG Flink; - ULONGLONG Blink; -} - -alias LIST_ENTRY64* PLIST_ENTRY64; - -import win32.guiddef; - -// #ifndef __OBJECTID_DEFINED -// #define __OBJECTID_DEFINED - -struct _OBJECTID { - GUID Lineage; - DWORD Uniquifier; -} -alias _OBJECTID OBJECTID; - -// #endif // !_OBJECTID_DEFINED - -enum : uint { MINCHAR = 0x80 } -enum : uint { MAXCHAR = 0x7f } -enum : uint { MINSHORT = 0x8000 } -enum : uint { MAXSHORT = 0x7fff } -enum : uint { MINLONG = 0x80000000 } -enum : uint { MAXLONG = 0x7fffffff } -enum : uint { MAXBYTE = 0xff } -enum : uint { MAXWORD = 0xffff } -enum : uint { MAXDWORD = 0xffffffff } - -// #define FIELD_OFFSET(type, field) ((LONG)(LONG_PTR)&(((type *)0)->field)) - -// #if(_WIN32_WINNT > 0x0500) - -// #define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field)) - -// #define RTL_SIZEOF_THROUGH_FIELD(type, field) (FIELD_OFFSET(type, field) + RTL_FIELD_SIZE(type, field)) - -// #define RTL_CONTAINS_FIELD(Struct, Size, Field) ( (((PCHAR)(&(Struct)->Field)) + sizeof((Struct)->Field)) <= (((PCHAR)(Struct))+(Size)) ) - -// #define RTL_NUMBER_OF(A) (sizeof(A)/sizeof((A)[0])) - -// #define RTL_FIELD_TYPE(type, field) (((type*)0)->field) - -// #define RTL_NUMBER_OF_FIELD(type, field) (RTL_NUMBER_OF(RTL_FIELD_TYPE(type, field))) - -// #define RTL_PADDING_BETWEEN_FIELDS(T, F1, F2) ((FIELD_OFFSET(T, F2) > FIELD_OFFSET(T, F1)) ? (FIELD_OFFSET(T, F2) - FIELD_OFFSET(T, F1) - RTL_FIELD_SIZE(T, F1)) : (FIELD_OFFSET(T, F1) - FIELD_OFFSET(T, F2) - RTL_FIELD_SIZE(T, F2))) - -// #if defined(__cplusplus) -// #define RTL_CONST_CAST(type) const_cast -// #else -// #... -// #endif - -// #define RTL_BITS_OF(sizeOfArg) (sizeof(sizeOfArg) * 8) - -// #define RTL_BITS_OF_FIELD(type, field) (RTL_BITS_OF(RTL_FIELD_TYPE(type, field))) - -// #endif /* _WIN32_WINNT > 0x0500 */ - -// #define CONTAINING_RECORD(address, type, field) ((type *)( (PCHAR)(address) - (ULONG_PTR)(&((type *)0)->field))) - -enum : uint { VER_SERVER_NT = 0x80000000 } -enum : uint { VER_WORKSTATION_NT = 0x40000000 } -enum : uint { VER_SUITE_SMALLBUSINESS = 0x00000001 } -enum : uint { VER_SUITE_ENTERPRISE = 0x00000002 } -enum : uint { VER_SUITE_BACKOFFICE = 0x00000004 } -enum : uint { VER_SUITE_COMMUNICATIONS = 0x00000008 } -enum : uint { VER_SUITE_TERMINAL = 0x00000010 } -enum : uint { VER_SUITE_SMALLBUSINESS_RESTRICTED = 0x00000020 } -enum : uint { VER_SUITE_EMBEDDEDNT = 0x00000040 } -enum : uint { VER_SUITE_DATACENTER = 0x00000080 } -enum : uint { VER_SUITE_SINGLEUSERTS = 0x00000100 } -enum : uint { VER_SUITE_PERSONAL = 0x00000200 } -enum : uint { VER_SUITE_BLADE = 0x00000400 } - -enum : uint { LANG_NEUTRAL = 0x00 } -enum : uint { LANG_INVARIANT = 0x7f } - -enum : uint { LANG_AFRIKAANS = 0x36 } -enum : uint { LANG_ALBANIAN = 0x1c } -enum : uint { LANG_ARABIC = 0x01 } -enum : uint { LANG_ARMENIAN = 0x2b } -enum : uint { LANG_ASSAMESE = 0x4d } -enum : uint { LANG_AZERI = 0x2c } -enum : uint { LANG_BASQUE = 0x2d } -enum : uint { LANG_BELARUSIAN = 0x23 } -enum : uint { LANG_BENGALI = 0x45 } -enum : uint { LANG_BULGARIAN = 0x02 } -enum : uint { LANG_CATALAN = 0x03 } -enum : uint { LANG_CHINESE = 0x04 } -enum : uint { LANG_CROATIAN = 0x1a } -enum : uint { LANG_CZECH = 0x05 } -enum : uint { LANG_DANISH = 0x06 } -enum : uint { LANG_DIVEHI = 0x65 } -enum : uint { LANG_DUTCH = 0x13 } -enum : uint { LANG_ENGLISH = 0x09 } -enum : uint { LANG_ESTONIAN = 0x25 } -enum : uint { LANG_FAEROESE = 0x38 } -enum : uint { LANG_FARSI = 0x29 } -enum : uint { LANG_FINNISH = 0x0b } -enum : uint { LANG_FRENCH = 0x0c } -enum : uint { LANG_GALICIAN = 0x56 } -enum : uint { LANG_GEORGIAN = 0x37 } -enum : uint { LANG_GERMAN = 0x07 } -enum : uint { LANG_GREEK = 0x08 } -enum : uint { LANG_GUJARATI = 0x47 } -enum : uint { LANG_HEBREW = 0x0d } -enum : uint { LANG_HINDI = 0x39 } -enum : uint { LANG_HUNGARIAN = 0x0e } -enum : uint { LANG_ICELANDIC = 0x0f } -enum : uint { LANG_INDONESIAN = 0x21 } -enum : uint { LANG_ITALIAN = 0x10 } -enum : uint { LANG_JAPANESE = 0x11 } -enum : uint { LANG_KANNADA = 0x4b } -enum : uint { LANG_KASHMIRI = 0x60 } -enum : uint { LANG_KAZAK = 0x3f } -enum : uint { LANG_KONKANI = 0x57 } -enum : uint { LANG_KOREAN = 0x12 } -enum : uint { LANG_KYRGYZ = 0x40 } -enum : uint { LANG_LATVIAN = 0x26 } -enum : uint { LANG_LITHUANIAN = 0x27 } -enum : uint { LANG_MACEDONIAN = 0x2f } -enum : uint { LANG_MALAY = 0x3e } -enum : uint { LANG_MALAYALAM = 0x4c } -enum : uint { LANG_MANIPURI = 0x58 } -enum : uint { LANG_MARATHI = 0x4e } -enum : uint { LANG_MONGOLIAN = 0x50 } -enum : uint { LANG_NEPALI = 0x61 } -enum : uint { LANG_NORWEGIAN = 0x14 } -enum : uint { LANG_ORIYA = 0x48 } -enum : uint { LANG_POLISH = 0x15 } -enum : uint { LANG_PORTUGUESE = 0x16 } -enum : uint { LANG_PUNJABI = 0x46 } -enum : uint { LANG_ROMANIAN = 0x18 } -enum : uint { LANG_RUSSIAN = 0x19 } -enum : uint { LANG_SANSKRIT = 0x4f } -enum : uint { LANG_SERBIAN = 0x1a } -enum : uint { LANG_SINDHI = 0x59 } -enum : uint { LANG_SLOVAK = 0x1b } -enum : uint { LANG_SLOVENIAN = 0x24 } -enum : uint { LANG_SPANISH = 0x0a } -enum : uint { LANG_SWAHILI = 0x41 } -enum : uint { LANG_SWEDISH = 0x1d } -enum : uint { LANG_SYRIAC = 0x5a } -enum : uint { LANG_TAMIL = 0x49 } -enum : uint { LANG_TATAR = 0x44 } -enum : uint { LANG_TELUGU = 0x4a } -enum : uint { LANG_THAI = 0x1e } -enum : uint { LANG_TURKISH = 0x1f } -enum : uint { LANG_UKRAINIAN = 0x22 } -enum : uint { LANG_URDU = 0x20 } -enum : uint { LANG_UZBEK = 0x43 } -enum : uint { LANG_VIETNAMESE = 0x2a } - -enum : uint { SUBLANG_NEUTRAL = 0x00 } -enum : uint { SUBLANG_DEFAULT = 0x01 } -enum : uint { SUBLANG_SYS_DEFAULT = 0x02 } - -enum : uint { SUBLANG_ARABIC_SAUDI_ARABIA = 0x01 } -enum : uint { SUBLANG_ARABIC_IRAQ = 0x02 } -enum : uint { SUBLANG_ARABIC_EGYPT = 0x03 } -enum : uint { SUBLANG_ARABIC_LIBYA = 0x04 } -enum : uint { SUBLANG_ARABIC_ALGERIA = 0x05 } -enum : uint { SUBLANG_ARABIC_MOROCCO = 0x06 } -enum : uint { SUBLANG_ARABIC_TUNISIA = 0x07 } -enum : uint { SUBLANG_ARABIC_OMAN = 0x08 } -enum : uint { SUBLANG_ARABIC_YEMEN = 0x09 } -enum : uint { SUBLANG_ARABIC_SYRIA = 0x0a } -enum : uint { SUBLANG_ARABIC_JORDAN = 0x0b } -enum : uint { SUBLANG_ARABIC_LEBANON = 0x0c } -enum : uint { SUBLANG_ARABIC_KUWAIT = 0x0d } -enum : uint { SUBLANG_ARABIC_UAE = 0x0e } -enum : uint { SUBLANG_ARABIC_BAHRAIN = 0x0f } -enum : uint { SUBLANG_ARABIC_QATAR = 0x10 } -enum : uint { SUBLANG_AZERI_LATIN = 0x01 } -enum : uint { SUBLANG_AZERI_CYRILLIC = 0x02 } -enum : uint { SUBLANG_CHINESE_TRADITIONAL = 0x01 } -enum : uint { SUBLANG_CHINESE_SIMPLIFIED = 0x02 } -enum : uint { SUBLANG_CHINESE_HONGKONG = 0x03 } -enum : uint { SUBLANG_CHINESE_SINGAPORE = 0x04 } -enum : uint { SUBLANG_CHINESE_MACAU = 0x05 } -enum : uint { SUBLANG_DUTCH = 0x01 } -enum : uint { SUBLANG_DUTCH_BELGIAN = 0x02 } -enum : uint { SUBLANG_ENGLISH_US = 0x01 } -enum : uint { SUBLANG_ENGLISH_UK = 0x02 } -enum : uint { SUBLANG_ENGLISH_AUS = 0x03 } -enum : uint { SUBLANG_ENGLISH_CAN = 0x04 } -enum : uint { SUBLANG_ENGLISH_NZ = 0x05 } -enum : uint { SUBLANG_ENGLISH_EIRE = 0x06 } -enum : uint { SUBLANG_ENGLISH_SOUTH_AFRICA = 0x07 } -enum : uint { SUBLANG_ENGLISH_JAMAICA = 0x08 } -enum : uint { SUBLANG_ENGLISH_CARIBBEAN = 0x09 } -enum : uint { SUBLANG_ENGLISH_BELIZE = 0x0a } -enum : uint { SUBLANG_ENGLISH_TRINIDAD = 0x0b } -enum : uint { SUBLANG_ENGLISH_ZIMBABWE = 0x0c } -enum : uint { SUBLANG_ENGLISH_PHILIPPINES = 0x0d } -enum : uint { SUBLANG_FRENCH = 0x01 } -enum : uint { SUBLANG_FRENCH_BELGIAN = 0x02 } -enum : uint { SUBLANG_FRENCH_CANADIAN = 0x03 } -enum : uint { SUBLANG_FRENCH_SWISS = 0x04 } -enum : uint { SUBLANG_FRENCH_LUXEMBOURG = 0x05 } -enum : uint { SUBLANG_FRENCH_MONACO = 0x06 } -enum : uint { SUBLANG_GERMAN = 0x01 } -enum : uint { SUBLANG_GERMAN_SWISS = 0x02 } -enum : uint { SUBLANG_GERMAN_AUSTRIAN = 0x03 } -enum : uint { SUBLANG_GERMAN_LUXEMBOURG = 0x04 } -enum : uint { SUBLANG_GERMAN_LIECHTENSTEIN = 0x05 } -enum : uint { SUBLANG_ITALIAN = 0x01 } -enum : uint { SUBLANG_ITALIAN_SWISS = 0x02 } -// #if _WIN32_WINNT >= 0x0501 -enum : uint { SUBLANG_KASHMIRI_SASIA = 0x02 } -// #endif -enum : uint { SUBLANG_KASHMIRI_INDIA = 0x02 } -enum : uint { SUBLANG_KOREAN = 0x01 } -enum : uint { SUBLANG_LITHUANIAN = 0x01 } -enum : uint { SUBLANG_MALAY_MALAYSIA = 0x01 } -enum : uint { SUBLANG_MALAY_BRUNEI_DARUSSALAM = 0x02 } -enum : uint { SUBLANG_NEPALI_INDIA = 0x02 } -enum : uint { SUBLANG_NORWEGIAN_BOKMAL = 0x01 } -enum : uint { SUBLANG_NORWEGIAN_NYNORSK = 0x02 } -enum : uint { SUBLANG_PORTUGUESE = 0x02 } -enum : uint { SUBLANG_PORTUGUESE_BRAZILIAN = 0x01 } -enum : uint { SUBLANG_SERBIAN_LATIN = 0x02 } -enum : uint { SUBLANG_SERBIAN_CYRILLIC = 0x03 } -enum : uint { SUBLANG_SPANISH = 0x01 } -enum : uint { SUBLANG_SPANISH_MEXICAN = 0x02 } -enum : uint { SUBLANG_SPANISH_MODERN = 0x03 } -enum : uint { SUBLANG_SPANISH_GUATEMALA = 0x04 } -enum : uint { SUBLANG_SPANISH_COSTA_RICA = 0x05 } -enum : uint { SUBLANG_SPANISH_PANAMA = 0x06 } -enum : uint { SUBLANG_SPANISH_DOMINICAN_REPUBLIC = 0x07 } -enum : uint { SUBLANG_SPANISH_VENEZUELA = 0x08 } -enum : uint { SUBLANG_SPANISH_COLOMBIA = 0x09 } -enum : uint { SUBLANG_SPANISH_PERU = 0x0a } -enum : uint { SUBLANG_SPANISH_ARGENTINA = 0x0b } -enum : uint { SUBLANG_SPANISH_ECUADOR = 0x0c } -enum : uint { SUBLANG_SPANISH_CHILE = 0x0d } -enum : uint { SUBLANG_SPANISH_URUGUAY = 0x0e } -enum : uint { SUBLANG_SPANISH_PARAGUAY = 0x0f } -enum : uint { SUBLANG_SPANISH_BOLIVIA = 0x10 } -enum : uint { SUBLANG_SPANISH_EL_SALVADOR = 0x11 } -enum : uint { SUBLANG_SPANISH_HONDURAS = 0x12 } -enum : uint { SUBLANG_SPANISH_NICARAGUA = 0x13 } -enum : uint { SUBLANG_SPANISH_PUERTO_RICO = 0x14 } -enum : uint { SUBLANG_SWEDISH = 0x01 } -enum : uint { SUBLANG_SWEDISH_FINLAND = 0x02 } -enum : uint { SUBLANG_URDU_PAKISTAN = 0x01 } -enum : uint { SUBLANG_URDU_INDIA = 0x02 } -enum : uint { SUBLANG_UZBEK_LATIN = 0x01 } -enum : uint { SUBLANG_UZBEK_CYRILLIC = 0x02 } - -enum : uint { SORT_DEFAULT = 0x0 } - -enum : uint { SORT_JAPANESE_XJIS = 0x0 } -enum : uint { SORT_JAPANESE_UNICODE = 0x1 } - -enum : uint { SORT_CHINESE_BIG5 = 0x0 } -enum : uint { SORT_CHINESE_PRCP = 0x0 } -enum : uint { SORT_CHINESE_UNICODE = 0x1 } -enum : uint { SORT_CHINESE_PRC = 0x2 } -enum : uint { SORT_CHINESE_BOPOMOFO = 0x3 } - -enum : uint { SORT_KOREAN_KSC = 0x0 } -enum : uint { SORT_KOREAN_UNICODE = 0x1 } - -enum : uint { SORT_GERMAN_PHONE_BOOK = 0x1 } - -enum : uint { SORT_HUNGARIAN_DEFAULT = 0x0 } -enum : uint { SORT_HUNGARIAN_TECHNICAL = 0x1 } - -enum : uint { SORT_GEORGIAN_TRADITIONAL = 0x0 } -enum : uint { SORT_GEORGIAN_MODERN = 0x1 } - -WORD MAKELANGID(USHORT p, USHORT s) { return (((cast(WORD)(s)) << 10) | cast(WORD)(p)); } -WORD PRIMARYLANGID(WORD lgid) { return lgid & 0x3ff; } -WORD SUBLANGID(WORD lgid) { return lgid >>> 10; } - -enum : uint { NLS_VALID_LOCALE_MASK = 0x000fffff } - -DWORD MAKELCID(WORD lgid, WORD srtid) { return ((cast(DWORD)srtid) << 16) | (cast(DWORD)lgid); } -DWORD MAKESORTLCID(WORD lgid, WORD srtid, WORD ver) { return (MAKELCID(lgid, srtid)) | ((cast(DWORD)ver) << 20); } -WORD LANGIDFROMLCID(LCID lcid) { return lcid; } -WORD SORTIDFROMLCID(LCID lcid) { return (cast(DWORD)lcid >>> 16) & 0xf; } -WORD SORTVERSIONFROMLCID(LCID lcid) { return (cast(DWORD)lcid >>> 20) & 0xf; } - -enum : uint { LANG_SYSTEM_DEFAULT = (SUBLANG_SYS_DEFAULT << 10) | LANG_NEUTRAL } -enum : uint { LANG_USER_DEFAULT = (SUBLANG_DEFAULT << 10) | LANG_NEUTRAL } - -enum : uint { LOCALE_SYSTEM_DEFAULT = (SORT_DEFAULT << 16) | LANG_SYSTEM_DEFAULT } -enum : uint { LOCALE_USER_DEFAULT = (SORT_DEFAULT << 16) | LANG_USER_DEFAULT } - -enum : uint { LOCALE_NEUTRAL = (SORT_DEFAULT << 16) | (SUBLANG_NEUTRAL << 10) | LANG_NEUTRAL } - -enum : uint { LOCALE_INVARIANT = (SORT_DEFAULT << 16) | (SUBLANG_NEUTRAL << 10) | LANG_INVARIANT } - -// #if ! defined(lint) -// #... -// #... -// #... - -// #else // lint - -// #define UNREFERENCED_PARAMETER(P) { (P) = (P); } -// #define DBG_UNREFERENCED_PARAMETER(P) { (P) = (P); } -// #define DBG_UNREFERENCED_LOCAL_VARIABLE(V) { (V) = (V); } - -// #endif // lint - -// #if (_MSC_VER > 1200) -// #define DEFAULT_UNREACHABLE default: __assume(0) -// #else - -// #... - -// #endif - -// #ifndef WIN32_NO_STATUS - -enum : DWORD { STATUS_WAIT_0 = 0x00000000 } -enum : DWORD { STATUS_ABANDONED_WAIT_0 = 0x00000080 } -enum : DWORD { STATUS_USER_APC = 0x000000C0 } -enum : DWORD { STATUS_TIMEOUT = 0x00000102 } -enum : DWORD { STATUS_PENDING = 0x00000103 } -enum : DWORD { DBG_EXCEPTION_HANDLED = 0x00010001 } -enum : DWORD { DBG_CONTINUE = 0x00010002 } -enum : DWORD { STATUS_SEGMENT_NOTIFICATION = 0x40000005 } -enum : DWORD { DBG_TERMINATE_THREAD = 0x40010003 } -enum : DWORD { DBG_TERMINATE_PROCESS = 0x40010004 } -enum : DWORD { DBG_CONTROL_C = 0x40010005 } -enum : DWORD { DBG_CONTROL_BREAK = 0x40010008 } -enum : DWORD { STATUS_GUARD_PAGE_VIOLATION = 0x80000001 } -enum : DWORD { STATUS_DATATYPE_MISALIGNMENT = 0x80000002 } -enum : DWORD { STATUS_BREAKPOINT = 0x80000003 } -enum : DWORD { STATUS_SINGLE_STEP = 0x80000004 } -enum : DWORD { DBG_EXCEPTION_NOT_HANDLED = 0x80010001 } -enum : DWORD { STATUS_ACCESS_VIOLATION = 0xC0000005 } -enum : DWORD { STATUS_IN_PAGE_ERROR = 0xC0000006 } -enum : DWORD { STATUS_INVALID_HANDLE = 0xC0000008 } -enum : DWORD { STATUS_NO_MEMORY = 0xC0000017 } -enum : DWORD { STATUS_ILLEGAL_INSTRUCTION = 0xC000001D } -enum : DWORD { STATUS_NONCONTINUABLE_EXCEPTION = 0xC0000025 } -enum : DWORD { STATUS_INVALID_DISPOSITION = 0xC0000026 } -enum : DWORD { STATUS_ARRAY_BOUNDS_EXCEEDED = 0xC000008C } -enum : DWORD { STATUS_FLOAT_DENORMAL_OPERAND = 0xC000008D } -enum : DWORD { STATUS_FLOAT_DIVIDE_BY_ZERO = 0xC000008E } -enum : DWORD { STATUS_FLOAT_INEXACT_RESULT = 0xC000008F } -enum : DWORD { STATUS_FLOAT_INVALID_OPERATION = 0xC0000090 } -enum : DWORD { STATUS_FLOAT_OVERFLOW = 0xC0000091 } -enum : DWORD { STATUS_FLOAT_STACK_CHECK = 0xC0000092 } -enum : DWORD { STATUS_FLOAT_UNDERFLOW = 0xC0000093 } -enum : DWORD { STATUS_INTEGER_DIVIDE_BY_ZERO = 0xC0000094 } -enum : DWORD { STATUS_INTEGER_OVERFLOW = 0xC0000095 } -enum : DWORD { STATUS_PRIVILEGED_INSTRUCTION = 0xC0000096 } -enum : DWORD { STATUS_STACK_OVERFLOW = 0xC00000FD } -enum : DWORD { STATUS_CONTROL_C_EXIT = 0xC000013A } -enum : DWORD { STATUS_FLOAT_MULTIPLE_FAULTS = 0xC00002B4 } -enum : DWORD { STATUS_FLOAT_MULTIPLE_TRAPS = 0xC00002B5 } -enum : DWORD { STATUS_REG_NAT_CONSUMPTION = 0xC00002C9 } -// #if defined(STATUS_SUCCESS) || (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) -enum : DWORD { STATUS_SXS_EARLY_DEACTIVATION = 0xC015000F } -enum : DWORD { STATUS_SXS_INVALID_DEACTIVATION = 0xC0150010 } -// #endif - -// #endif -enum : uint { MAXIMUM_WAIT_OBJECTS = 64 } - -alias MAXCHAR MAXIMUM_SUSPEND_COUNT; - -alias ULONG_PTR KSPIN_LOCK; -alias KSPIN_LOCK* PKSPIN_LOCK; - -// #if defined(_AMD64_) - -// #if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) - -// #... - -// ... - -// #... - -// #... - -// ... - -// #... - -// ... - -// ... - -// ... - -// ... - -// #... -// #... -// #... -// #... - -// #... -// #... - -// ... - -// ... - -// #... -// #... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #endif // defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) - -// #if !defined(RC_INVOKED) - -// #... - -// #... -// #... -// #... -// #... -// #... - -// #... - -// #endif // !defined(RC_INVOKED) - -// ... - -// ... - -// #... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #endif // _AMD64_ - -// #ifdef _ALPHA_ // winnt -// ... -// #if defined(_M_ALPHA) // winnt -// #... -// #endif // winnt -// #endif // winnt - -// #if defined(_M_ALPHA) -// #... -// #else -extern(Windows) export _TEB NtCurrentTeb(); -// #endif - -// #ifdef _ALPHA_ - -// #... -// #... - -// #if !defined(RC_INVOKED) - -// #... - -// #... -// #... -// #... - -// #... - -// #endif - -// #ifndef _PORTABLE_32BIT_CONTEXT - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #else - -// #... - -// #endif // _PORTABLE_32BIT_CONTEXT - -// #endif // _ALPHA_ - -// #ifdef _ALPHA_ - -// ... - -// #endif // _ALPHA_ - -// #ifdef _X86_ - -// #if !defined(MIDL_PASS) -// #if !defined(RC_INVOKED) - -// #if _MSC_VER >= 1200 -// #pragma warning(push) -// #endif -// #pragma warning(disable:4164) // disable C4164 warning so that apps that - -// #ifdef _M_IX86 -// #pragma function(_enable) -// #pragma function(_disable) -// #endif - -// #if _MSC_VER >= 1200 -// #pragma warning(pop) -// #else -// #... -// #endif - -// #endif -// #endif - -// #if !defined(MIDL_PASS) && defined(_M_IX86) -// #if _MSC_VER >= 1200 -// #pragma warning(push) -// #endif -// #pragma warning (disable:4035) // disable 4035 (function must return something) -PVOID GetFiberData() { asm { mov EAX, FS:[0x10]; mov EAX, [EAX]; } } -PVOID GetCurrentFiber() { asm { mov EAX, FS:[0x10]; } } - -// #if _MSC_VER >= 1200 -// #pragma warning(pop) -// #else -// #... -// #endif -// #endif - -enum : uint { SIZE_OF_80387_REGISTERS = 80 } - -// #if !defined(RC_INVOKED) - -enum : uint { CONTEXT_i386 = 0x00010000 } -enum : uint { CONTEXT_i486 = 0x00010000 } - -enum : uint { CONTEXT_CONTROL = CONTEXT_i386 | 0x00000001L } -enum : uint { CONTEXT_INTEGER = CONTEXT_i386 | 0x00000002L } -enum : uint { CONTEXT_SEGMENTS = CONTEXT_i386 | 0x00000004L } -enum : uint { CONTEXT_FLOATING_POINT = CONTEXT_i386 | 0x00000008L } -enum : uint { CONTEXT_DEBUG_REGISTERS = CONTEXT_i386 | 0x00000010L } -enum : uint { CONTEXT_EXTENDED_REGISTERS = CONTEXT_i386 | 0x00000020L } - -enum : uint { CONTEXT_FULL = CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS } - -// #endif - -enum : uint { MAXIMUM_SUPPORTED_EXTENSION = 512 } - -struct _FLOATING_SAVE_AREA { - DWORD ControlWord; - DWORD StatusWord; - DWORD TagWord; - DWORD ErrorOffset; - DWORD ErrorSelector; - DWORD DataOffset; - DWORD DataSelector; - BYTE RegisterArea[SIZE_OF_80387_REGISTERS]; - DWORD Cr0NpxState; -} -alias _FLOATING_SAVE_AREA FLOATING_SAVE_AREA; - -alias FLOATING_SAVE_AREA* PFLOATING_SAVE_AREA; - -struct _CONTEXT { - - DWORD ContextFlags; - - DWORD Dr0; - DWORD Dr1; - DWORD Dr2; - DWORD Dr3; - DWORD Dr6; - DWORD Dr7; - - FLOATING_SAVE_AREA FloatSave; - - DWORD SegGs; - DWORD SegFs; - DWORD SegEs; - DWORD SegDs; - - DWORD Edi; - DWORD Esi; - DWORD Ebx; - DWORD Edx; - DWORD Ecx; - DWORD Eax; - - DWORD Ebp; - DWORD Eip; - DWORD SegCs; - DWORD EFlags; - DWORD Esp; - DWORD SegSs; - - BYTE ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION]; -} -alias _CONTEXT CONTEXT; - -alias CONTEXT* PCONTEXT; - -// #endif //_X86_ - -// #ifndef _LDT_ENTRY_DEFINED -// #define _LDT_ENTRY_DEFINED - -struct _LDT_ENTRY { - WORD LimitLow; - WORD BaseLow; -union { -struct { - BYTE BaseMid; - BYTE Flags1; - BYTE Flags2; - BYTE BaseHi; -} - -struct { -// DWORD BaseMid : 8; -// DWORD Type : 5; -// DWORD Dpl : 2; -// DWORD Pres : 1; -// DWORD LimitHi : 4; -// DWORD Sys : 1; -// DWORD Reserved_0 : 1; -// DWORD Default_Big : 1; -// DWORD Granularity : 1; -// DWORD BaseHi : 8; -} - -} - -} -alias _LDT_ENTRY LDT_ENTRY; -alias _LDT_ENTRY* PLDT_ENTRY; - -// #endif - -// #if defined(_MIPS_) - -// #... -// #... - -// #if !defined(RC_INVOKED) - -// #... - -// #... -// #... -// #... -// #... -// #... - -// #... -// ... - -// #endif - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #... - -// #endif // MIPS - -// #if defined(_MIPS_) - -// ... - -// #endif // MIPS - -// #if defined(_PPC_) - -// #if defined(_M_PPC) && defined(_MSC_VER) && (_MSC_VER>=1000) -// ... -// #... -// #elif defined(_M_PPC) -// ... -// #... -// #endif - -// #... -// #... - -// #if !defined(RC_INVOKED) - -// #... -// #... -// #... -// #... - -// #... - -// #endif - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #endif // defined(_PPC_) - -// #if defined(_MPPC_) - -// #if defined(_M_PPC) && defined(_MSC_VER) && (_MSC_VER>=1000) -// ... -// #... -// #elif defined(_M_PPC) -// ... -// #... -// #endif - -// #... -// #... - -// #if !defined(RC_INVOKED) - -// #... -// #... -// #... -// #... - -// #... - -// #endif - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #endif // defined(_MPPC_) - -// #if !defined(__midl) && !defined(GENUTIL) && !defined(_GENIA64_) && defined(_IA64_) - -// ... -// #if defined(_M_IA64) // winnt -// #... -// #endif // winnt - -// #if defined(_M_IA64) -// #... -// #else -// ... -// #endif - -// #... -// #... - -// #endif // !defined(__midl) && !defined(GENUTIL) && !defined(_GENIA64_) && defined(_M_IA64) - -// #ifdef _IA64_ - -// #if !defined(RC_INVOKED) - -// #... - -// #... -// #... -// #... -// #... -// #... -// #... - -// #... -// #... - -// #endif // !defined(RC_INVOKED) - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #endif // _IA64_ - -// #ifdef _IA64_ - -// ... - -// #endif // _IA64_ - -enum : uint { EXCEPTION_NONCONTINUABLE = 0x1 } -enum : uint { EXCEPTION_MAXIMUM_PARAMETERS = 15 } - -struct _EXCEPTION_RECORD { - DWORD ExceptionCode; - DWORD ExceptionFlags; - _EXCEPTION_RECORD *ExceptionRecord; - PVOID ExceptionAddress; - DWORD NumberParameters; - ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; -} -alias _EXCEPTION_RECORD EXCEPTION_RECORD; - -alias EXCEPTION_RECORD* PEXCEPTION_RECORD; - -struct _EXCEPTION_RECORD32 { - DWORD ExceptionCode; - DWORD ExceptionFlags; - DWORD ExceptionRecord; - DWORD ExceptionAddress; - DWORD NumberParameters; - DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; -} -alias _EXCEPTION_RECORD32 EXCEPTION_RECORD32; -alias _EXCEPTION_RECORD32* PEXCEPTION_RECORD32; - -struct _EXCEPTION_RECORD64 { - DWORD ExceptionCode; - DWORD ExceptionFlags; - DWORD64 ExceptionRecord; - DWORD64 ExceptionAddress; - DWORD NumberParameters; - DWORD __unusedAlignment; - DWORD64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; -} -alias _EXCEPTION_RECORD64 EXCEPTION_RECORD64; -alias _EXCEPTION_RECORD64* PEXCEPTION_RECORD64; - -struct _EXCEPTION_POINTERS { - PEXCEPTION_RECORD ExceptionRecord; - PCONTEXT ContextRecord; -} -alias _EXCEPTION_POINTERS EXCEPTION_POINTERS; -alias _EXCEPTION_POINTERS* PEXCEPTION_POINTERS; - -alias PVOID PACCESS_TOKEN; -alias PVOID PSECURITY_DESCRIPTOR; -alias PVOID PSID; - -alias DWORD ACCESS_MASK; -alias ACCESS_MASK* PACCESS_MASK; - -enum : uint { DELETE = 0x00010000 } -enum : uint { READ_CONTROL = 0x00020000 } -enum : uint { WRITE_DAC = 0x00040000 } -enum : uint { WRITE_OWNER = 0x00080000 } -enum : uint { SYNCHRONIZE = 0x00100000 } - -enum : uint { STANDARD_RIGHTS_REQUIRED = 0x000F0000 } - -enum : uint { STANDARD_RIGHTS_READ = READ_CONTROL } -enum : uint { STANDARD_RIGHTS_WRITE = READ_CONTROL } -enum : uint { STANDARD_RIGHTS_EXECUTE = READ_CONTROL } - -enum : uint { STANDARD_RIGHTS_ALL = 0x001F0000 } - -enum : uint { SPECIFIC_RIGHTS_ALL = 0x0000FFFF } - -enum : uint { ACCESS_SYSTEM_SECURITY = 0x01000000 } - -enum : uint { MAXIMUM_ALLOWED = 0x02000000 } - -enum : uint { GENERIC_READ = 0x80000000 } -enum : uint { GENERIC_WRITE = 0x40000000 } -enum : uint { GENERIC_EXECUTE = 0x20000000 } -enum : uint { GENERIC_ALL = 0x10000000 } - -struct _GENERIC_MAPPING { - ACCESS_MASK GenericRead; - ACCESS_MASK GenericWrite; - ACCESS_MASK GenericExecute; - ACCESS_MASK GenericAll; -} -alias _GENERIC_MAPPING GENERIC_MAPPING; - -alias GENERIC_MAPPING* PGENERIC_MAPPING; - -align(4): - -struct _LUID_AND_ATTRIBUTES { - LUID Luid; - DWORD Attributes; -} -alias _LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES; -alias _LUID_AND_ATTRIBUTES* PLUID_AND_ATTRIBUTES; - -alias LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; -alias LUID_AND_ATTRIBUTES_ARRAY* PLUID_AND_ATTRIBUTES_ARRAY; - -align: - -// #ifndef SID_IDENTIFIER_AUTHORITY_DEFINED -// #define SID_IDENTIFIER_AUTHORITY_DEFINED -struct _SID_IDENTIFIER_AUTHORITY { - BYTE Value[6]; -} -alias _SID_IDENTIFIER_AUTHORITY SID_IDENTIFIER_AUTHORITY; -alias _SID_IDENTIFIER_AUTHORITY* PSID_IDENTIFIER_AUTHORITY; - -// #endif - -// #ifndef SID_DEFINED -// #define SID_DEFINED -struct _SID { - BYTE Revision; - BYTE SubAuthorityCount; - SID_IDENTIFIER_AUTHORITY IdentifierAuthority; -// #ifdef MIDL_PASS -// ... -// #else // MIDL_PASS - DWORD SubAuthority[ANYSIZE_ARRAY]; -// #endif // MIDL_PASS -} -alias _SID SID; -alias _SID* PISID; - -// #endif - -enum : uint { SID_REVISION = 1 } -enum : uint { SID_MAX_SUB_AUTHORITIES = 15 } -enum : uint { SID_RECOMMENDED_SUB_AUTHORITIES = 1 } - -// #ifndef MIDL_PASS -const uint SECURITY_MAX_SID_SIZE = SID.sizeof - DWORD.sizeof + (SID_MAX_SUB_AUTHORITIES * DWORD.sizeof); -// #endif // MIDL_PASS - -alias int _SID_NAME_USE; -enum { - SidTypeUser = 1, - SidTypeGroup, - SidTypeDomain, - SidTypeAlias, - SidTypeWellKnownGroup, - SidTypeDeletedAccount, - SidTypeInvalid, - SidTypeUnknown, - SidTypeComputer, -} -alias _SID_NAME_USE SID_NAME_USE; -alias _SID_NAME_USE* PSID_NAME_USE; - -struct _SID_AND_ATTRIBUTES { - PSID Sid; - DWORD Attributes; -} -alias _SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES; -alias _SID_AND_ATTRIBUTES* PSID_AND_ATTRIBUTES; - -alias SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; -alias SID_AND_ATTRIBUTES_ARRAY* PSID_AND_ATTRIBUTES_ARRAY; - -// #define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0} -// #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1} -// #define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2} -// #define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3} -// #define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4} -// #define SECURITY_RESOURCE_MANAGER_AUTHORITY {0,0,0,0,0,9} - -enum : uint { SECURITY_NULL_RID = 0x00000000 } -enum : uint { SECURITY_WORLD_RID = 0x00000000 } -enum : uint { SECURITY_LOCAL_RID = 0x00000000 } - -enum : uint { SECURITY_CREATOR_OWNER_RID = 0x00000000 } -enum : uint { SECURITY_CREATOR_GROUP_RID = 0x00000001 } - -enum : uint { SECURITY_CREATOR_OWNER_SERVER_RID = 0x00000002 } -enum : uint { SECURITY_CREATOR_GROUP_SERVER_RID = 0x00000003 } - -// #define SECURITY_NT_AUTHORITY {0,0,0,0,0,5} - -enum : uint { SECURITY_DIALUP_RID = 0x00000001 } -enum : uint { SECURITY_NETWORK_RID = 0x00000002 } -enum : uint { SECURITY_BATCH_RID = 0x00000003 } -enum : uint { SECURITY_INTERACTIVE_RID = 0x00000004 } -enum : uint { SECURITY_SERVICE_RID = 0x00000006 } -enum : uint { SECURITY_ANONYMOUS_LOGON_RID = 0x00000007 } -enum : uint { SECURITY_PROXY_RID = 0x00000008 } -enum : uint { SECURITY_ENTERPRISE_CONTROLLERS_RID = 0x00000009 } -alias SECURITY_ENTERPRISE_CONTROLLERS_RID SECURITY_SERVER_LOGON_RID; -enum : uint { SECURITY_PRINCIPAL_SELF_RID = 0x0000000A } -enum : uint { SECURITY_AUTHENTICATED_USER_RID = 0x0000000B } -enum : uint { SECURITY_RESTRICTED_CODE_RID = 0x0000000C } -enum : uint { SECURITY_TERMINAL_SERVER_RID = 0x0000000D } -enum : uint { SECURITY_REMOTE_LOGON_RID = 0x0000000E } - -enum : uint { SECURITY_LOGON_IDS_RID = 0x00000005 } -enum : uint { SECURITY_LOGON_IDS_RID_COUNT = 3 } - -enum : uint { SECURITY_LOCAL_SYSTEM_RID = 0x00000012 } -enum : uint { SECURITY_LOCAL_SERVICE_RID = 0x00000013 } -enum : uint { SECURITY_NETWORK_SERVICE_RID = 0x00000014 } - -enum : uint { SECURITY_NT_NON_UNIQUE = 0x00000015 } -enum : uint { SECURITY_NT_NON_UNIQUE_SUB_AUTH_COUNT = 3 } - -enum : uint { SECURITY_BUILTIN_DOMAIN_RID = 0x00000020 } - -enum : uint { DOMAIN_USER_RID_ADMIN = 0x000001F4 } -enum : uint { DOMAIN_USER_RID_GUEST = 0x000001F5 } -enum : uint { DOMAIN_USER_RID_KRBTGT = 0x000001F6 } - -enum : uint { DOMAIN_GROUP_RID_ADMINS = 0x00000200 } -enum : uint { DOMAIN_GROUP_RID_USERS = 0x00000201 } -enum : uint { DOMAIN_GROUP_RID_GUESTS = 0x00000202 } -enum : uint { DOMAIN_GROUP_RID_COMPUTERS = 0x00000203 } -enum : uint { DOMAIN_GROUP_RID_CONTROLLERS = 0x00000204 } -enum : uint { DOMAIN_GROUP_RID_CERT_ADMINS = 0x00000205 } -enum : uint { DOMAIN_GROUP_RID_SCHEMA_ADMINS = 0x00000206 } -enum : uint { DOMAIN_GROUP_RID_ENTERPRISE_ADMINS = 0x00000207 } -enum : uint { DOMAIN_GROUP_RID_POLICY_ADMINS = 0x00000208 } - -enum : uint { DOMAIN_ALIAS_RID_ADMINS = 0x00000220 } -enum : uint { DOMAIN_ALIAS_RID_USERS = 0x00000221 } -enum : uint { DOMAIN_ALIAS_RID_GUESTS = 0x00000222 } -enum : uint { DOMAIN_ALIAS_RID_POWER_USERS = 0x00000223 } - -enum : uint { DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x00000224 } -enum : uint { DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x00000225 } -enum : uint { DOMAIN_ALIAS_RID_PRINT_OPS = 0x00000226 } -enum : uint { DOMAIN_ALIAS_RID_BACKUP_OPS = 0x00000227 } - -enum : uint { DOMAIN_ALIAS_RID_REPLICATOR = 0x00000228 } -enum : uint { DOMAIN_ALIAS_RID_RAS_SERVERS = 0x00000229 } -enum : uint { DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 0x0000022A } -enum : uint { DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 0x0000022B } -enum : uint { DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 0x0000022C } - -const LUID SYSTEM_LUID = {LowPart: 0x3e7, HighPart: 0x0}; -const LUID ANONYMOUS_LOGON_LUID = {LowPart: 0x3e6, HighPart: 0x0}; -const LUID LOCALSERVICE_LUID = {LowPart: 0x3e5, HighPart: 0x0}; -const LUID NETWORKSERVICE_LUID = {LowPart: 0x3e4, HighPart: 0x0}; - -enum : uint { SE_GROUP_MANDATORY = 0x00000001 } -enum : uint { SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002 } -enum : uint { SE_GROUP_ENABLED = 0x00000004 } -enum : uint { SE_GROUP_OWNER = 0x00000008 } -enum : uint { SE_GROUP_USE_FOR_DENY_ONLY = 0x00000010 } -enum : uint { SE_GROUP_LOGON_ID = 0xC0000000 } -enum : uint { SE_GROUP_RESOURCE = 0x20000000 } - -enum : uint { ACL_REVISION = 2 } -enum : uint { ACL_REVISION_DS = 4 } - -enum : uint { ACL_REVISION1 = 1 } -enum { MIN_ACL_REVISION = 2 } -enum : uint { ACL_REVISION2 = 2 } -enum : uint { ACL_REVISION3 = 3 } -enum : uint { ACL_REVISION4 = 4 } -alias ACL_REVISION4 MAX_ACL_REVISION; - -struct _ACL { - BYTE AclRevision; - BYTE Sbz1; - WORD AclSize; - WORD AceCount; - WORD Sbz2; -} -alias _ACL ACL; - -alias ACL* PACL; - -struct _ACE_HEADER { - BYTE AceType; - BYTE AceFlags; - WORD AceSize; -} -alias _ACE_HEADER ACE_HEADER; - -alias ACE_HEADER* PACE_HEADER; - -enum : uint { ACCESS_MIN_MS_ACE_TYPE = 0x0 } -enum : uint { ACCESS_ALLOWED_ACE_TYPE = 0x0 } -enum : uint { ACCESS_DENIED_ACE_TYPE = 0x1 } -enum : uint { SYSTEM_AUDIT_ACE_TYPE = 0x2 } -enum : uint { SYSTEM_ALARM_ACE_TYPE = 0x3 } -enum : uint { ACCESS_MAX_MS_V2_ACE_TYPE = 0x3 } - -enum : uint { ACCESS_ALLOWED_COMPOUND_ACE_TYPE = 0x4 } -enum : uint { ACCESS_MAX_MS_V3_ACE_TYPE = 0x4 } - -enum : uint { ACCESS_MIN_MS_OBJECT_ACE_TYPE = 0x5 } -enum : uint { ACCESS_ALLOWED_OBJECT_ACE_TYPE = 0x5 } -enum : uint { ACCESS_DENIED_OBJECT_ACE_TYPE = 0x6 } -enum : uint { SYSTEM_AUDIT_OBJECT_ACE_TYPE = 0x7 } -enum : uint { SYSTEM_ALARM_OBJECT_ACE_TYPE = 0x8 } -enum : uint { ACCESS_MAX_MS_OBJECT_ACE_TYPE = 0x8 } - -enum : uint { ACCESS_MAX_MS_V4_ACE_TYPE = 0x8 } -enum : uint { ACCESS_MAX_MS_ACE_TYPE = 0x8 } - -enum : uint { ACCESS_ALLOWED_CALLBACK_ACE_TYPE = 0x9 } -enum : uint { ACCESS_DENIED_CALLBACK_ACE_TYPE = 0xA } -enum : uint { ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE = 0xB } -enum : uint { ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE = 0xC } -enum : uint { SYSTEM_AUDIT_CALLBACK_ACE_TYPE = 0xD } -enum : uint { SYSTEM_ALARM_CALLBACK_ACE_TYPE = 0xE } -enum : uint { SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE = 0xF } -enum : uint { SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE = 0x10 } - -enum : uint { ACCESS_MAX_MS_V5_ACE_TYPE = 0x10 } - -enum : uint { OBJECT_INHERIT_ACE = 0x1 } -enum : uint { CONTAINER_INHERIT_ACE = 0x2 } -enum : uint { NO_PROPAGATE_INHERIT_ACE = 0x4 } -enum : uint { INHERIT_ONLY_ACE = 0x8 } -enum : uint { INHERITED_ACE = 0x10 } -enum : uint { VALID_INHERIT_FLAGS = 0x1F } - -enum : uint { SUCCESSFUL_ACCESS_ACE_FLAG = 0x40 } -enum : uint { FAILED_ACCESS_ACE_FLAG = 0x80 } - -struct _ACCESS_ALLOWED_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} -alias _ACCESS_ALLOWED_ACE ACCESS_ALLOWED_ACE; - -alias ACCESS_ALLOWED_ACE* PACCESS_ALLOWED_ACE; - -struct _ACCESS_DENIED_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} -alias _ACCESS_DENIED_ACE ACCESS_DENIED_ACE; - -alias ACCESS_DENIED_ACE* PACCESS_DENIED_ACE; - -struct _SYSTEM_AUDIT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} -alias _SYSTEM_AUDIT_ACE SYSTEM_AUDIT_ACE; - -alias SYSTEM_AUDIT_ACE* PSYSTEM_AUDIT_ACE; - -struct _SYSTEM_ALARM_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} -alias _SYSTEM_ALARM_ACE SYSTEM_ALARM_ACE; - -alias SYSTEM_ALARM_ACE* PSYSTEM_ALARM_ACE; - -struct _ACCESS_ALLOWED_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} -alias _ACCESS_ALLOWED_OBJECT_ACE ACCESS_ALLOWED_OBJECT_ACE; -alias _ACCESS_ALLOWED_OBJECT_ACE* PACCESS_ALLOWED_OBJECT_ACE; - -struct _ACCESS_DENIED_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} -alias _ACCESS_DENIED_OBJECT_ACE ACCESS_DENIED_OBJECT_ACE; -alias _ACCESS_DENIED_OBJECT_ACE* PACCESS_DENIED_OBJECT_ACE; - -struct _SYSTEM_AUDIT_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} -alias _SYSTEM_AUDIT_OBJECT_ACE SYSTEM_AUDIT_OBJECT_ACE; -alias _SYSTEM_AUDIT_OBJECT_ACE* PSYSTEM_AUDIT_OBJECT_ACE; - -struct _SYSTEM_ALARM_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} -alias _SYSTEM_ALARM_OBJECT_ACE SYSTEM_ALARM_OBJECT_ACE; -alias _SYSTEM_ALARM_OBJECT_ACE* PSYSTEM_ALARM_OBJECT_ACE; - -struct _ACCESS_ALLOWED_CALLBACK_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} -alias _ACCESS_ALLOWED_CALLBACK_ACE ACCESS_ALLOWED_CALLBACK_ACE; -alias _ACCESS_ALLOWED_CALLBACK_ACE* PACCESS_ALLOWED_CALLBACK_ACE; - -struct _ACCESS_DENIED_CALLBACK_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} -alias _ACCESS_DENIED_CALLBACK_ACE ACCESS_DENIED_CALLBACK_ACE; -alias _ACCESS_DENIED_CALLBACK_ACE* PACCESS_DENIED_CALLBACK_ACE; - -struct _SYSTEM_AUDIT_CALLBACK_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} -alias _SYSTEM_AUDIT_CALLBACK_ACE SYSTEM_AUDIT_CALLBACK_ACE; -alias _SYSTEM_AUDIT_CALLBACK_ACE* PSYSTEM_AUDIT_CALLBACK_ACE; - -struct _SYSTEM_ALARM_CALLBACK_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} -alias _SYSTEM_ALARM_CALLBACK_ACE SYSTEM_ALARM_CALLBACK_ACE; -alias _SYSTEM_ALARM_CALLBACK_ACE* PSYSTEM_ALARM_CALLBACK_ACE; - -struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} -alias _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE ACCESS_ALLOWED_CALLBACK_OBJECT_ACE; -alias _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE* PACCESS_ALLOWED_CALLBACK_OBJECT_ACE; - -struct _ACCESS_DENIED_CALLBACK_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} -alias _ACCESS_DENIED_CALLBACK_OBJECT_ACE ACCESS_DENIED_CALLBACK_OBJECT_ACE; -alias _ACCESS_DENIED_CALLBACK_OBJECT_ACE* PACCESS_DENIED_CALLBACK_OBJECT_ACE; - -struct _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} -alias _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE SYSTEM_AUDIT_CALLBACK_OBJECT_ACE; -alias _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE* PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE; - -struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} -alias _SYSTEM_ALARM_CALLBACK_OBJECT_ACE SYSTEM_ALARM_CALLBACK_OBJECT_ACE; -alias _SYSTEM_ALARM_CALLBACK_OBJECT_ACE* PSYSTEM_ALARM_CALLBACK_OBJECT_ACE; - -enum : uint { ACE_OBJECT_TYPE_PRESENT = 0x1 } -enum : uint { ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x2 } - -alias int _ACL_INFORMATION_CLASS; -enum { - AclRevisionInformation = 1, - AclSizeInformation, -} -alias _ACL_INFORMATION_CLASS ACL_INFORMATION_CLASS; - -struct _ACL_REVISION_INFORMATION { - DWORD AclRevision; -} -alias _ACL_REVISION_INFORMATION ACL_REVISION_INFORMATION; - -alias ACL_REVISION_INFORMATION* PACL_REVISION_INFORMATION; - -struct _ACL_SIZE_INFORMATION { - DWORD AceCount; - DWORD AclBytesInUse; - DWORD AclBytesFree; -} -alias _ACL_SIZE_INFORMATION ACL_SIZE_INFORMATION; - -alias ACL_SIZE_INFORMATION* PACL_SIZE_INFORMATION; - -enum : uint { SECURITY_DESCRIPTOR_REVISION = 1 } -enum : uint { SECURITY_DESCRIPTOR_REVISION1 = 1 } - -const uint SECURITY_DESCRIPTOR_MIN_LENGTH = SECURITY_DESCRIPTOR.sizeof; - -alias WORD SECURITY_DESCRIPTOR_CONTROL; -alias WORD* PSECURITY_DESCRIPTOR_CONTROL; - -enum : uint { SE_OWNER_DEFAULTED = 0x0001 } -enum : uint { SE_GROUP_DEFAULTED = 0x0002 } -enum : uint { SE_DACL_PRESENT = 0x0004 } -enum : uint { SE_DACL_DEFAULTED = 0x0008 } -enum : uint { SE_SACL_PRESENT = 0x0010 } -enum : uint { SE_SACL_DEFAULTED = 0x0020 } -enum : uint { SE_DACL_AUTO_INHERIT_REQ = 0x0100 } -enum : uint { SE_SACL_AUTO_INHERIT_REQ = 0x0200 } -enum : uint { SE_DACL_AUTO_INHERITED = 0x0400 } -enum : uint { SE_SACL_AUTO_INHERITED = 0x0800 } -enum : uint { SE_DACL_PROTECTED = 0x1000 } -enum : uint { SE_SACL_PROTECTED = 0x2000 } -enum : uint { SE_RM_CONTROL_VALID = 0x4000 } -enum : uint { SE_SELF_RELATIVE = 0x8000 } - -struct _SECURITY_DESCRIPTOR_RELATIVE { - BYTE Revision; - BYTE Sbz1; - SECURITY_DESCRIPTOR_CONTROL Control; - DWORD Owner; - DWORD Group; - DWORD Sacl; - DWORD Dacl; -} -alias _SECURITY_DESCRIPTOR_RELATIVE SECURITY_DESCRIPTOR_RELATIVE; -alias _SECURITY_DESCRIPTOR_RELATIVE* PISECURITY_DESCRIPTOR_RELATIVE; - -struct _SECURITY_DESCRIPTOR { - BYTE Revision; - BYTE Sbz1; - SECURITY_DESCRIPTOR_CONTROL Control; - PSID Owner; - PSID Group; - PACL Sacl; - PACL Dacl; -} -alias _SECURITY_DESCRIPTOR SECURITY_DESCRIPTOR; -alias _SECURITY_DESCRIPTOR* PISECURITY_DESCRIPTOR; - -struct _OBJECT_TYPE_LIST { - WORD Level; - WORD Sbz; - GUID *ObjectType; -} -alias _OBJECT_TYPE_LIST OBJECT_TYPE_LIST; -alias _OBJECT_TYPE_LIST* POBJECT_TYPE_LIST; - -enum : uint { ACCESS_OBJECT_GUID = 0 } -enum : uint { ACCESS_PROPERTY_SET_GUID = 1 } -enum : uint { ACCESS_PROPERTY_GUID = 2 } - -enum : uint { ACCESS_MAX_LEVEL = 4 } - -alias int _AUDIT_EVENT_TYPE; -enum { - AuditEventObjectAccess, - AuditEventDirectoryServiceAccess, -} -alias _AUDIT_EVENT_TYPE AUDIT_EVENT_TYPE; -alias _AUDIT_EVENT_TYPE* PAUDIT_EVENT_TYPE; - -enum : uint { AUDIT_ALLOW_NO_PRIVILEGE = 0x1 } - -const char[] ACCESS_DS_SOURCE_A = "DS"; -const wchar[] ACCESS_DS_SOURCE_W = "DS"; -const char[] ACCESS_DS_OBJECT_TYPE_NAME_A = "Directory Service Object"; -const wchar[] ACCESS_DS_OBJECT_TYPE_NAME_W = "Directory Service Object"; - -enum : uint { SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001 } -enum : uint { SE_PRIVILEGE_ENABLED = 0x00000002 } -enum : uint { SE_PRIVILEGE_USED_FOR_ACCESS = 0x80000000 } - -enum : uint { PRIVILEGE_SET_ALL_NECESSARY = 1 } - -struct _PRIVILEGE_SET { - DWORD PrivilegeCount; - DWORD Control; - LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY]; -} -alias _PRIVILEGE_SET PRIVILEGE_SET; -alias _PRIVILEGE_SET* PPRIVILEGE_SET; - -const TCHAR[] SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege"; -const TCHAR[] SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege"; -const TCHAR[] SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege"; -const TCHAR[] SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege"; -const TCHAR[] SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege"; -const TCHAR[] SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege"; -const TCHAR[] SE_TCB_NAME = "SeTcbPrivilege"; -const TCHAR[] SE_SECURITY_NAME = "SeSecurityPrivilege"; -const TCHAR[] SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege"; -const TCHAR[] SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege"; -const TCHAR[] SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege"; -const TCHAR[] SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege"; -const TCHAR[] SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege"; -const TCHAR[] SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege"; -const TCHAR[] SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege"; -const TCHAR[] SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege"; -const TCHAR[] SE_BACKUP_NAME = "SeBackupPrivilege"; -const TCHAR[] SE_RESTORE_NAME = "SeRestorePrivilege"; -const TCHAR[] SE_SHUTDOWN_NAME = "SeShutdownPrivilege"; -const TCHAR[] SE_DEBUG_NAME = "SeDebugPrivilege"; -const TCHAR[] SE_AUDIT_NAME = "SeAuditPrivilege"; -const TCHAR[] SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege"; -const TCHAR[] SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege"; -const TCHAR[] SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege"; -const TCHAR[] SE_UNDOCK_NAME = "SeUndockPrivilege"; -const TCHAR[] SE_SYNC_AGENT_NAME = "SeSyncAgentPrivilege"; -const TCHAR[] SE_ENABLE_DELEGATION_NAME = "SeEnableDelegationPrivilege"; -const TCHAR[] SE_MANAGE_VOLUME_NAME = "SeManageVolumePrivilege"; - -alias int _SECURITY_IMPERSONATION_LEVEL; -enum { - SecurityAnonymous, - SecurityIdentification, - SecurityImpersonation, - SecurityDelegation, -} -alias _SECURITY_IMPERSONATION_LEVEL SECURITY_IMPERSONATION_LEVEL; -alias _SECURITY_IMPERSONATION_LEVEL* PSECURITY_IMPERSONATION_LEVEL; - -alias SecurityDelegation SECURITY_MAX_IMPERSONATION_LEVEL; -alias SecurityAnonymous SECURITY_MIN_IMPERSONATION_LEVEL; -alias SecurityImpersonation DEFAULT_IMPERSONATION_LEVEL; -bit VALID_IMPERSONATION_LEVEL(SECURITY_IMPERSONATION_LEVEL L){ return (L >= SECURITY_MIN_IMPERSONATION_LEVEL) && (L <= SECURITY_MAX_IMPERSONATION_LEVEL); } - -enum : uint { TOKEN_ASSIGN_PRIMARY = 0x0001 } -enum : uint { TOKEN_DUPLICATE = 0x0002 } -enum : uint { TOKEN_IMPERSONATE = 0x0004 } -enum : uint { TOKEN_QUERY = 0x0008 } -enum : uint { TOKEN_QUERY_SOURCE = 0x0010 } -enum : uint { TOKEN_ADJUST_PRIVILEGES = 0x0020 } -enum : uint { TOKEN_ADJUST_GROUPS = 0x0040 } -enum : uint { TOKEN_ADJUST_DEFAULT = 0x0080 } -enum : uint { TOKEN_ADJUST_SESSIONID = 0x0100 } - -enum : uint { TOKEN_ALL_ACCESS_P = STANDARD_RIGHTS_REQUIRED | TOKEN_ASSIGN_PRIMARY | TOKEN_DUPLICATE | TOKEN_IMPERSONATE | TOKEN_QUERY | TOKEN_QUERY_SOURCE | TOKEN_ADJUST_PRIVILEGES | TOKEN_ADJUST_GROUPS | TOKEN_ADJUST_DEFAULT } - -// #if ((defined(_WIN32_WINNT) && (_WIN32_WINNT > 0x0400)) || (!defined(_WIN32_WINNT))) -enum : uint { TOKEN_ALL_ACCESS = TOKEN_ALL_ACCESS_P | TOKEN_ADJUST_SESSIONID } -// #else -// #... -// #endif - -enum : uint { TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY } - -enum : uint { TOKEN_WRITE = STANDARD_RIGHTS_WRITE | TOKEN_ADJUST_PRIVILEGES | TOKEN_ADJUST_GROUPS | TOKEN_ADJUST_DEFAULT } - -enum : uint { TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE } - -alias int _TOKEN_TYPE; -enum { - TokenPrimary = 1, - TokenImpersonation, -} -alias _TOKEN_TYPE TOKEN_TYPE; - -alias TOKEN_TYPE* PTOKEN_TYPE; - -alias int _TOKEN_INFORMATION_CLASS; -enum { - TokenUser = 1, - TokenGroups, - TokenPrivileges, - TokenOwner, - TokenPrimaryGroup, - TokenDefaultDacl, - TokenSource, - TokenType, - TokenImpersonationLevel, - TokenStatistics, - TokenRestrictedSids, - TokenSessionId, - TokenGroupsAndPrivileges, - TokenSessionReference, - TokenSandBoxInert, -} -alias _TOKEN_INFORMATION_CLASS TOKEN_INFORMATION_CLASS; -alias _TOKEN_INFORMATION_CLASS* PTOKEN_INFORMATION_CLASS; - -struct _TOKEN_USER { - SID_AND_ATTRIBUTES User; -} -alias _TOKEN_USER TOKEN_USER; -alias _TOKEN_USER* PTOKEN_USER; - -struct _TOKEN_GROUPS { - DWORD GroupCount; - SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]; -} -alias _TOKEN_GROUPS TOKEN_GROUPS; -alias _TOKEN_GROUPS* PTOKEN_GROUPS; - -struct _TOKEN_PRIVILEGES { - DWORD PrivilegeCount; - LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; -} -alias _TOKEN_PRIVILEGES TOKEN_PRIVILEGES; -alias _TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES; - -struct _TOKEN_OWNER { - PSID Owner; -} -alias _TOKEN_OWNER TOKEN_OWNER; -alias _TOKEN_OWNER* PTOKEN_OWNER; - -struct _TOKEN_PRIMARY_GROUP { - PSID PrimaryGroup; -} -alias _TOKEN_PRIMARY_GROUP TOKEN_PRIMARY_GROUP; -alias _TOKEN_PRIMARY_GROUP* PTOKEN_PRIMARY_GROUP; - -struct _TOKEN_DEFAULT_DACL { - PACL DefaultDacl; -} -alias _TOKEN_DEFAULT_DACL TOKEN_DEFAULT_DACL; -alias _TOKEN_DEFAULT_DACL* PTOKEN_DEFAULT_DACL; - -struct _TOKEN_GROUPS_AND_PRIVILEGES { - DWORD SidCount; - DWORD SidLength; - PSID_AND_ATTRIBUTES Sids; - DWORD RestrictedSidCount; - DWORD RestrictedSidLength; - PSID_AND_ATTRIBUTES RestrictedSids; - DWORD PrivilegeCount; - DWORD PrivilegeLength; - PLUID_AND_ATTRIBUTES Privileges; - LUID AuthenticationId; -} -alias _TOKEN_GROUPS_AND_PRIVILEGES TOKEN_GROUPS_AND_PRIVILEGES; -alias _TOKEN_GROUPS_AND_PRIVILEGES* PTOKEN_GROUPS_AND_PRIVILEGES; - -enum : uint { TOKEN_SOURCE_LENGTH = 8 } - -struct _TOKEN_SOURCE { - CHAR SourceName[TOKEN_SOURCE_LENGTH]; - LUID SourceIdentifier; -} -alias _TOKEN_SOURCE TOKEN_SOURCE; -alias _TOKEN_SOURCE* PTOKEN_SOURCE; - -struct _TOKEN_STATISTICS { - LUID TokenId; - LUID AuthenticationId; - LARGE_INTEGER ExpirationTime; - TOKEN_TYPE TokenType; - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; - DWORD DynamicCharged; - DWORD DynamicAvailable; - DWORD GroupCount; - DWORD PrivilegeCount; - LUID ModifiedId; -} -alias _TOKEN_STATISTICS TOKEN_STATISTICS; -alias _TOKEN_STATISTICS* PTOKEN_STATISTICS; - -struct _TOKEN_CONTROL { - LUID TokenId; - LUID AuthenticationId; - LUID ModifiedId; - TOKEN_SOURCE TokenSource; -} -alias _TOKEN_CONTROL TOKEN_CONTROL; -alias _TOKEN_CONTROL* PTOKEN_CONTROL; - -enum : uint { SECURITY_DYNAMIC_TRACKING = TRUE } -enum : uint { SECURITY_STATIC_TRACKING = FALSE } - -alias BOOLEAN SECURITY_CONTEXT_TRACKING_MODE; -alias BOOLEAN* PSECURITY_CONTEXT_TRACKING_MODE; - -struct _SECURITY_QUALITY_OF_SERVICE { - DWORD Length; - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; - SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; - BOOLEAN EffectiveOnly; -} -alias _SECURITY_QUALITY_OF_SERVICE SECURITY_QUALITY_OF_SERVICE; -alias _SECURITY_QUALITY_OF_SERVICE* PSECURITY_QUALITY_OF_SERVICE; - -struct _SE_IMPERSONATION_STATE { - PACCESS_TOKEN Token; - BOOLEAN CopyOnOpen; - BOOLEAN EffectiveOnly; - SECURITY_IMPERSONATION_LEVEL Level; -} -alias _SE_IMPERSONATION_STATE SE_IMPERSONATION_STATE; -alias _SE_IMPERSONATION_STATE* PSE_IMPERSONATION_STATE; - -enum : uint { DISABLE_MAX_PRIVILEGE = 0x1 } -enum : uint { SANDBOX_INERT = 0x2 } - -alias DWORD SECURITY_INFORMATION; -alias DWORD* PSECURITY_INFORMATION; - -enum : uint { OWNER_SECURITY_INFORMATION = 0x00000001 } -enum : uint { GROUP_SECURITY_INFORMATION = 0x00000002 } -enum : uint { DACL_SECURITY_INFORMATION = 0x00000004 } -enum : uint { SACL_SECURITY_INFORMATION = 0x00000008 } - -enum : uint { PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000 } -enum : uint { PROTECTED_SACL_SECURITY_INFORMATION = 0x40000000 } -enum : uint { UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000 } -enum : uint { UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000 } - -enum : uint { PROCESS_TERMINATE = 0x0001 } -enum : uint { PROCESS_CREATE_THREAD = 0x0002 } -enum : uint { PROCESS_SET_SESSIONID = 0x0004 } -enum : uint { PROCESS_VM_OPERATION = 0x0008 } -enum : uint { PROCESS_VM_READ = 0x0010 } -enum : uint { PROCESS_VM_WRITE = 0x0020 } -enum : uint { PROCESS_DUP_HANDLE = 0x0040 } -enum : uint { PROCESS_CREATE_PROCESS = 0x0080 } -enum : uint { PROCESS_SET_QUOTA = 0x0100 } -enum : uint { PROCESS_SET_INFORMATION = 0x0200 } -enum : uint { PROCESS_QUERY_INFORMATION = 0x0400 } -enum : uint { PROCESS_SUSPEND_RESUME = 0x0800 } -enum : uint { PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFF } - -// #if defined(_WIN64) - -// #... - -// #else - -enum : uint { MAXIMUM_PROCESSORS = 32 } - -// #endif - -enum : uint { THREAD_TERMINATE = 0x0001 } -enum : uint { THREAD_SUSPEND_RESUME = 0x0002 } -enum : uint { THREAD_GET_CONTEXT = 0x0008 } -enum : uint { THREAD_SET_CONTEXT = 0x0010 } -enum : uint { THREAD_SET_INFORMATION = 0x0020 } -enum : uint { THREAD_QUERY_INFORMATION = 0x0040 } -enum : uint { THREAD_SET_THREAD_TOKEN = 0x0080 } -enum : uint { THREAD_IMPERSONATE = 0x0100 } -enum : uint { THREAD_DIRECT_IMPERSONATION = 0x0200 } - -enum : uint { THREAD_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3FF } - -enum : uint { JOB_OBJECT_ASSIGN_PROCESS = 0x0001 } -enum : uint { JOB_OBJECT_SET_ATTRIBUTES = 0x0002 } -enum : uint { JOB_OBJECT_QUERY = 0x0004 } -enum : uint { JOB_OBJECT_TERMINATE = 0x0008 } -enum : uint { JOB_OBJECT_SET_SECURITY_ATTRIBUTES = 0x0010 } -enum : uint { JOB_OBJECT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1F } - -struct _JOB_SET_ARRAY { - HANDLE JobHandle; - DWORD MemberLevel; - DWORD Flags; -} -alias _JOB_SET_ARRAY JOB_SET_ARRAY; -alias _JOB_SET_ARRAY* PJOB_SET_ARRAY; - -enum : uint { TLS_MINIMUM_AVAILABLE = 64 } - -struct _NT_TIB { - _EXCEPTION_REGISTRATION_RECORD *ExceptionList; - PVOID StackBase; - PVOID StackLimit; - PVOID SubSystemTib; -union { - PVOID FiberData; - DWORD Version; -} - - PVOID ArbitraryUserPointer; - _NT_TIB *Self; -} -alias _NT_TIB NT_TIB; - -alias NT_TIB* PNT_TIB; - -struct _NT_TIB32 { - DWORD ExceptionList; - DWORD StackBase; - DWORD StackLimit; - DWORD SubSystemTib; -union { - DWORD FiberData; - DWORD Version; -} - - DWORD ArbitraryUserPointer; - DWORD Self; -} -alias _NT_TIB32 NT_TIB32; -alias _NT_TIB32* PNT_TIB32; - -struct _NT_TIB64 { - DWORD64 ExceptionList; - DWORD64 StackBase; - DWORD64 StackLimit; - DWORD64 SubSystemTib; -union { - DWORD64 FiberData; - DWORD Version; -} - - DWORD64 ArbitraryUserPointer; - DWORD64 Self; -} -alias _NT_TIB64 NT_TIB64; -alias _NT_TIB64* PNT_TIB64; - -// #if !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) -// #... -// #endif - -enum : uint { THREAD_BASE_PRIORITY_LOWRT = 15 } -enum : uint { THREAD_BASE_PRIORITY_MAX = 2 } -enum { THREAD_BASE_PRIORITY_MIN = -2 } -enum { THREAD_BASE_PRIORITY_IDLE = -15 } - -struct _QUOTA_LIMITS { - SIZE_T PagedPoolLimit; - SIZE_T NonPagedPoolLimit; - SIZE_T MinimumWorkingSetSize; - SIZE_T MaximumWorkingSetSize; - SIZE_T PagefileLimit; - LARGE_INTEGER TimeLimit; -} -alias _QUOTA_LIMITS QUOTA_LIMITS; - -alias QUOTA_LIMITS* PQUOTA_LIMITS; - -struct _IO_COUNTERS { - ULONGLONG ReadOperationCount; - ULONGLONG WriteOperationCount; - ULONGLONG OtherOperationCount; - ULONGLONG ReadTransferCount; - ULONGLONG WriteTransferCount; - ULONGLONG OtherTransferCount; -} -alias _IO_COUNTERS IO_COUNTERS; - -alias IO_COUNTERS* PIO_COUNTERS; - -struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION { - LARGE_INTEGER TotalUserTime; - LARGE_INTEGER TotalKernelTime; - LARGE_INTEGER ThisPeriodTotalUserTime; - LARGE_INTEGER ThisPeriodTotalKernelTime; - DWORD TotalPageFaultCount; - DWORD TotalProcesses; - DWORD ActiveProcesses; - DWORD TotalTerminatedProcesses; -} -alias _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION JOBOBJECT_BASIC_ACCOUNTING_INFORMATION; -alias _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION; - -struct _JOBOBJECT_BASIC_LIMIT_INFORMATION { - LARGE_INTEGER PerProcessUserTimeLimit; - LARGE_INTEGER PerJobUserTimeLimit; - DWORD LimitFlags; - SIZE_T MinimumWorkingSetSize; - SIZE_T MaximumWorkingSetSize; - DWORD ActiveProcessLimit; - ULONG_PTR Affinity; - DWORD PriorityClass; - DWORD SchedulingClass; -} -alias _JOBOBJECT_BASIC_LIMIT_INFORMATION JOBOBJECT_BASIC_LIMIT_INFORMATION; -alias _JOBOBJECT_BASIC_LIMIT_INFORMATION* PJOBOBJECT_BASIC_LIMIT_INFORMATION; - -struct _JOBOBJECT_EXTENDED_LIMIT_INFORMATION { - JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation; - IO_COUNTERS IoInfo; - SIZE_T ProcessMemoryLimit; - SIZE_T JobMemoryLimit; - SIZE_T PeakProcessMemoryUsed; - SIZE_T PeakJobMemoryUsed; -} -alias _JOBOBJECT_EXTENDED_LIMIT_INFORMATION JOBOBJECT_EXTENDED_LIMIT_INFORMATION; -alias _JOBOBJECT_EXTENDED_LIMIT_INFORMATION* PJOBOBJECT_EXTENDED_LIMIT_INFORMATION; - -struct _JOBOBJECT_BASIC_PROCESS_ID_LIST { - DWORD NumberOfAssignedProcesses; - DWORD NumberOfProcessIdsInList; - ULONG_PTR ProcessIdList[1]; -} -alias _JOBOBJECT_BASIC_PROCESS_ID_LIST JOBOBJECT_BASIC_PROCESS_ID_LIST; -alias _JOBOBJECT_BASIC_PROCESS_ID_LIST* PJOBOBJECT_BASIC_PROCESS_ID_LIST; - -struct _JOBOBJECT_BASIC_UI_RESTRICTIONS { - DWORD UIRestrictionsClass; -} -alias _JOBOBJECT_BASIC_UI_RESTRICTIONS JOBOBJECT_BASIC_UI_RESTRICTIONS; -alias _JOBOBJECT_BASIC_UI_RESTRICTIONS* PJOBOBJECT_BASIC_UI_RESTRICTIONS; - -struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION { - DWORD SecurityLimitFlags ; - HANDLE JobToken ; - PTOKEN_GROUPS SidsToDisable ; - PTOKEN_PRIVILEGES PrivilegesToDelete ; - PTOKEN_GROUPS RestrictedSids ; -} -alias _JOBOBJECT_SECURITY_LIMIT_INFORMATION JOBOBJECT_SECURITY_LIMIT_INFORMATION; -alias _JOBOBJECT_SECURITY_LIMIT_INFORMATION* PJOBOBJECT_SECURITY_LIMIT_INFORMATION; - -struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION { - DWORD EndOfJobTimeAction; -} -alias _JOBOBJECT_END_OF_JOB_TIME_INFORMATION JOBOBJECT_END_OF_JOB_TIME_INFORMATION; -alias _JOBOBJECT_END_OF_JOB_TIME_INFORMATION* PJOBOBJECT_END_OF_JOB_TIME_INFORMATION; - -struct _JOBOBJECT_ASSOCIATE_COMPLETION_PORT { - PVOID CompletionKey; - HANDLE CompletionPort; -} -alias _JOBOBJECT_ASSOCIATE_COMPLETION_PORT JOBOBJECT_ASSOCIATE_COMPLETION_PORT; -alias _JOBOBJECT_ASSOCIATE_COMPLETION_PORT* PJOBOBJECT_ASSOCIATE_COMPLETION_PORT; - -struct _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION { - JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo; - IO_COUNTERS IoInfo; -} -alias _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION; -alias _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION; - -struct _JOBOBJECT_JOBSET_INFORMATION { - DWORD MemberLevel; -} -alias _JOBOBJECT_JOBSET_INFORMATION JOBOBJECT_JOBSET_INFORMATION; -alias _JOBOBJECT_JOBSET_INFORMATION* PJOBOBJECT_JOBSET_INFORMATION; - -enum : uint { JOB_OBJECT_TERMINATE_AT_END_OF_JOB = 0 } -enum : uint { JOB_OBJECT_POST_AT_END_OF_JOB = 1 } - -enum : uint { JOB_OBJECT_MSG_END_OF_JOB_TIME = 1 } -enum : uint { JOB_OBJECT_MSG_END_OF_PROCESS_TIME = 2 } -enum : uint { JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT = 3 } -enum : uint { JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO = 4 } -enum : uint { JOB_OBJECT_MSG_NEW_PROCESS = 6 } -enum : uint { JOB_OBJECT_MSG_EXIT_PROCESS = 7 } -enum : uint { JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS = 8 } -enum : uint { JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT = 9 } -enum : uint { JOB_OBJECT_MSG_JOB_MEMORY_LIMIT = 10 } - -enum : uint { JOB_OBJECT_LIMIT_WORKINGSET = 0x00000001 } -enum : uint { JOB_OBJECT_LIMIT_PROCESS_TIME = 0x00000002 } -enum : uint { JOB_OBJECT_LIMIT_JOB_TIME = 0x00000004 } -enum : uint { JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x00000008 } -enum : uint { JOB_OBJECT_LIMIT_AFFINITY = 0x00000010 } -enum : uint { JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x00000020 } -enum : uint { JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x00000040 } -enum : uint { JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x00000080 } - -enum : uint { JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x00000100 } -enum : uint { JOB_OBJECT_LIMIT_JOB_MEMORY = 0x00000200 } -enum : uint { JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400 } -enum : uint { JOB_OBJECT_LIMIT_BREAKAWAY_OK = 0x00000800 } -enum : uint { JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK = 0x00001000 } -enum : uint { JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE = 0x00002000 } - -enum : uint { JOB_OBJECT_LIMIT_RESERVED2 = 0x00004000 } -enum : uint { JOB_OBJECT_LIMIT_RESERVED3 = 0x00008000 } -enum : uint { JOB_OBJECT_LIMIT_RESERVED4 = 0x00010000 } -enum : uint { JOB_OBJECT_LIMIT_RESERVED5 = 0x00020000 } -enum : uint { JOB_OBJECT_LIMIT_RESERVED6 = 0x00040000 } - -enum : uint { JOB_OBJECT_LIMIT_VALID_FLAGS = 0x0007ffff } - -enum : uint { JOB_OBJECT_BASIC_LIMIT_VALID_FLAGS = 0x000000ff } -enum : uint { JOB_OBJECT_EXTENDED_LIMIT_VALID_FLAGS = 0x00003fff } -enum : uint { JOB_OBJECT_RESERVED_LIMIT_VALID_FLAGS = 0x0007ffff } - -enum : uint { JOB_OBJECT_UILIMIT_NONE = 0x00000000 } - -enum : uint { JOB_OBJECT_UILIMIT_HANDLES = 0x00000001 } -enum : uint { JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x00000002 } -enum : uint { JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x00000004 } -enum : uint { JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008 } -enum : uint { JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x00000010 } -enum : uint { JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x00000020 } -enum : uint { JOB_OBJECT_UILIMIT_DESKTOP = 0x00000040 } -enum : uint { JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x00000080 } - -enum : uint { JOB_OBJECT_UILIMIT_ALL = 0x000000FF } - -enum : uint { JOB_OBJECT_UI_VALID_FLAGS = 0x000000FF } - -enum : uint { JOB_OBJECT_SECURITY_NO_ADMIN = 0x00000001 } -enum : uint { JOB_OBJECT_SECURITY_RESTRICTED_TOKEN = 0x00000002 } -enum : uint { JOB_OBJECT_SECURITY_ONLY_TOKEN = 0x00000004 } -enum : uint { JOB_OBJECT_SECURITY_FILTER_TOKENS = 0x00000008 } - -enum : uint { JOB_OBJECT_SECURITY_VALID_FLAGS = 0x0000000f } - -alias int _JOBOBJECTINFOCLASS; -enum { - JobObjectBasicAccountingInformation = 1, - JobObjectBasicLimitInformation, - JobObjectBasicProcessIdList, - JobObjectBasicUIRestrictions, - JobObjectSecurityLimitInformation, - JobObjectEndOfJobTimeInformation, - JobObjectAssociateCompletionPortInformation, - JobObjectBasicAndIoAccountingInformation, - JobObjectExtendedLimitInformation, - JobObjectJobSetInformation, - MaxJobObjectInfoClass, -} -alias _JOBOBJECTINFOCLASS JOBOBJECTINFOCLASS; - -enum : uint { EVENT_MODIFY_STATE = 0x0002 } -enum : uint { EVENT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 } -enum : uint { MUTANT_QUERY_STATE = 0x0001 } - -enum : uint { MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE| MUTANT_QUERY_STATE } -enum : uint { SEMAPHORE_MODIFY_STATE = 0x0002 } -enum : uint { SEMAPHORE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 } - -enum : uint { TIMER_QUERY_STATE = 0x0001 } -enum : uint { TIMER_MODIFY_STATE = 0x0002 } - -enum : uint { TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE| TIMER_QUERY_STATE|TIMER_MODIFY_STATE } - -enum : uint { TIME_ZONE_ID_UNKNOWN = 0 } -enum : uint { TIME_ZONE_ID_STANDARD = 1 } -enum : uint { TIME_ZONE_ID_DAYLIGHT = 2 } - -enum : uint { MAXIMUM_NUMA_NODES = 16 } - -struct _SYSTEM_NUMA_INFORMATION { - DWORD HighestNodeNumber; - DWORD Reserved; -union { - ULONGLONG ActiveProcessorsAffinityMask[MAXIMUM_NUMA_NODES]; - ULONGLONG AvailableMemory[MAXIMUM_NUMA_NODES]; -} - -} -alias _SYSTEM_NUMA_INFORMATION SYSTEM_NUMA_INFORMATION; -alias _SYSTEM_NUMA_INFORMATION* PSYSTEM_NUMA_INFORMATION; - -enum : uint { PROCESSOR_INTEL_386 = 386 } -enum : uint { PROCESSOR_INTEL_486 = 486 } -enum : uint { PROCESSOR_INTEL_PENTIUM = 586 } -enum : uint { PROCESSOR_INTEL_IA64 = 2200 } -enum : uint { PROCESSOR_MIPS_R4000 = 4000 } -enum : uint { PROCESSOR_ALPHA_21064 = 21064 } -enum : uint { PROCESSOR_PPC_601 = 601 } -enum : uint { PROCESSOR_PPC_603 = 603 } -enum : uint { PROCESSOR_PPC_604 = 604 } -enum : uint { PROCESSOR_PPC_620 = 620 } -enum : uint { PROCESSOR_HITACHI_SH3 = 10003 } -enum : uint { PROCESSOR_HITACHI_SH3E = 10004 } -enum : uint { PROCESSOR_HITACHI_SH4 = 10005 } -enum : uint { PROCESSOR_MOTOROLA_821 = 821 } -enum : uint { PROCESSOR_SHx_SH3 = 103 } -enum : uint { PROCESSOR_SHx_SH4 = 104 } -enum : uint { PROCESSOR_STRONGARM = 2577 } -enum : uint { PROCESSOR_ARM720 = 1824 } -enum : uint { PROCESSOR_ARM820 = 2080 } -enum : uint { PROCESSOR_ARM920 = 2336 } -enum : uint { PROCESSOR_ARM_7TDMI = 70001 } -enum : uint { PROCESSOR_OPTIL = 0x494f } - -enum : uint { PROCESSOR_ARCHITECTURE_INTEL = 0 } -enum : uint { PROCESSOR_ARCHITECTURE_MIPS = 1 } -enum : uint { PROCESSOR_ARCHITECTURE_ALPHA = 2 } -enum : uint { PROCESSOR_ARCHITECTURE_PPC = 3 } -enum : uint { PROCESSOR_ARCHITECTURE_SHX = 4 } -enum : uint { PROCESSOR_ARCHITECTURE_ARM = 5 } -enum : uint { PROCESSOR_ARCHITECTURE_IA64 = 6 } -enum : uint { PROCESSOR_ARCHITECTURE_ALPHA64 = 7 } -enum : uint { PROCESSOR_ARCHITECTURE_MSIL = 8 } -enum : uint { PROCESSOR_ARCHITECTURE_AMD64 = 9 } -enum : uint { PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 = 10 } - -enum : uint { PROCESSOR_ARCHITECTURE_UNKNOWN = 0xFFFF } - -enum : uint { PF_FLOATING_POINT_PRECISION_ERRATA = 0 } -enum : uint { PF_FLOATING_POINT_EMULATED = 1 } -enum : uint { PF_COMPARE_EXCHANGE_DOUBLE = 2 } -enum : uint { PF_MMX_INSTRUCTIONS_AVAILABLE = 3 } -enum : uint { PF_PPC_MOVEMEM_64BIT_OK = 4 } -enum : uint { PF_ALPHA_BYTE_INSTRUCTIONS = 5 } -enum : uint { PF_XMMI_INSTRUCTIONS_AVAILABLE = 6 } -enum : uint { PF_3DNOW_INSTRUCTIONS_AVAILABLE = 7 } -enum : uint { PF_RDTSC_INSTRUCTION_AVAILABLE = 8 } -enum : uint { PF_PAE_ENABLED = 9 } -enum : uint { PF_XMMI64_INSTRUCTIONS_AVAILABLE = 10 } - -struct _MEMORY_BASIC_INFORMATION { - PVOID BaseAddress; - PVOID AllocationBase; - DWORD AllocationProtect; - SIZE_T RegionSize; - DWORD State; - DWORD Protect; - DWORD Type; -} -alias _MEMORY_BASIC_INFORMATION MEMORY_BASIC_INFORMATION; -alias _MEMORY_BASIC_INFORMATION* PMEMORY_BASIC_INFORMATION; - -struct _MEMORY_BASIC_INFORMATION32 { - DWORD BaseAddress; - DWORD AllocationBase; - DWORD AllocationProtect; - DWORD RegionSize; - DWORD State; - DWORD Protect; - DWORD Type; -} -alias _MEMORY_BASIC_INFORMATION32 MEMORY_BASIC_INFORMATION32; -alias _MEMORY_BASIC_INFORMATION32* PMEMORY_BASIC_INFORMATION32; - -struct _MEMORY_BASIC_INFORMATION64 { - ULONGLONG BaseAddress; - ULONGLONG AllocationBase; - DWORD AllocationProtect; - DWORD __alignment1; - ULONGLONG RegionSize; - DWORD State; - DWORD Protect; - DWORD Type; - DWORD __alignment2; -} -alias _MEMORY_BASIC_INFORMATION64 MEMORY_BASIC_INFORMATION64; -alias _MEMORY_BASIC_INFORMATION64* PMEMORY_BASIC_INFORMATION64; - -enum : uint { SECTION_QUERY = 0x0001 } -enum : uint { SECTION_MAP_WRITE = 0x0002 } -enum : uint { SECTION_MAP_READ = 0x0004 } -enum : uint { SECTION_MAP_EXECUTE = 0x0008 } -enum : uint { SECTION_EXTEND_SIZE = 0x0010 } - -enum : uint { SECTION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SECTION_QUERY| SECTION_MAP_WRITE | SECTION_MAP_READ | SECTION_MAP_EXECUTE | SECTION_EXTEND_SIZE } -enum : uint { PAGE_NOACCESS = 0x01 } -enum : uint { PAGE_READONLY = 0x02 } -enum : uint { PAGE_READWRITE = 0x04 } -enum : uint { PAGE_WRITECOPY = 0x08 } -enum : uint { PAGE_EXECUTE = 0x10 } -enum : uint { PAGE_EXECUTE_READ = 0x20 } -enum : uint { PAGE_EXECUTE_READWRITE = 0x40 } -enum : uint { PAGE_EXECUTE_WRITECOPY = 0x80 } -enum : uint { PAGE_GUARD = 0x100 } -enum : uint { PAGE_NOCACHE = 0x200 } -enum : uint { PAGE_WRITECOMBINE = 0x400 } -enum : uint { MEM_COMMIT = 0x1000 } -enum : uint { MEM_RESERVE = 0x2000 } -enum : uint { MEM_DECOMMIT = 0x4000 } -enum : uint { MEM_RELEASE = 0x8000 } -enum : uint { MEM_FREE = 0x10000 } -enum : uint { MEM_PRIVATE = 0x20000 } -enum : uint { MEM_MAPPED = 0x40000 } -enum : uint { MEM_RESET = 0x80000 } -enum : uint { MEM_TOP_DOWN = 0x100000 } -enum : uint { MEM_WRITE_WATCH = 0x200000 } -enum : uint { MEM_PHYSICAL = 0x400000 } -enum : uint { MEM_4MB_PAGES = 0x80000000 } -enum : uint { SEC_FILE = 0x800000 } -enum : uint { SEC_IMAGE = 0x1000000 } -enum : uint { SEC_RESERVE = 0x4000000 } -enum : uint { SEC_COMMIT = 0x8000000 } -enum : uint { SEC_NOCACHE = 0x10000000 } -alias SEC_IMAGE MEM_IMAGE; -enum : uint { WRITE_WATCH_FLAG_RESET = 0x01 } - -enum : uint { FILE_READ_DATA = 0x0001 } -enum : uint { FILE_LIST_DIRECTORY = 0x0001 } - -enum : uint { FILE_WRITE_DATA = 0x0002 } -enum : uint { FILE_ADD_FILE = 0x0002 } - -enum : uint { FILE_APPEND_DATA = 0x0004 } -enum : uint { FILE_ADD_SUBDIRECTORY = 0x0004 } -enum : uint { FILE_CREATE_PIPE_INSTANCE = 0x0004 } - -enum : uint { FILE_READ_EA = 0x0008 } - -enum : uint { FILE_WRITE_EA = 0x0010 } - -enum : uint { FILE_EXECUTE = 0x0020 } -enum : uint { FILE_TRAVERSE = 0x0020 } - -enum : uint { FILE_DELETE_CHILD = 0x0040 } - -enum : uint { FILE_READ_ATTRIBUTES = 0x0080 } - -enum : uint { FILE_WRITE_ATTRIBUTES = 0x0100 } - -enum : uint { FILE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF } - -enum : uint { FILE_GENERIC_READ = STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE } - -enum : uint { FILE_GENERIC_WRITE = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE } - -enum : uint { FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE } - -enum : uint { FILE_SHARE_READ = 0x00000001 } -enum : uint { FILE_SHARE_WRITE = 0x00000002 } -enum : uint { FILE_SHARE_DELETE = 0x00000004 } -enum : uint { FILE_ATTRIBUTE_READONLY = 0x00000001 } -enum : uint { FILE_ATTRIBUTE_HIDDEN = 0x00000002 } -enum : uint { FILE_ATTRIBUTE_SYSTEM = 0x00000004 } -enum : uint { FILE_ATTRIBUTE_DIRECTORY = 0x00000010 } -enum : uint { FILE_ATTRIBUTE_ARCHIVE = 0x00000020 } -enum : uint { FILE_ATTRIBUTE_DEVICE = 0x00000040 } -enum : uint { FILE_ATTRIBUTE_NORMAL = 0x00000080 } -enum : uint { FILE_ATTRIBUTE_TEMPORARY = 0x00000100 } -enum : uint { FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200 } -enum : uint { FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400 } -enum : uint { FILE_ATTRIBUTE_COMPRESSED = 0x00000800 } -enum : uint { FILE_ATTRIBUTE_OFFLINE = 0x00001000 } -enum : uint { FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000 } -enum : uint { FILE_ATTRIBUTE_ENCRYPTED = 0x00004000 } -enum : uint { FILE_NOTIFY_CHANGE_FILE_NAME = 0x00000001 } -enum : uint { FILE_NOTIFY_CHANGE_DIR_NAME = 0x00000002 } -enum : uint { FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x00000004 } -enum : uint { FILE_NOTIFY_CHANGE_SIZE = 0x00000008 } -enum : uint { FILE_NOTIFY_CHANGE_LAST_WRITE = 0x00000010 } -enum : uint { FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x00000020 } -enum : uint { FILE_NOTIFY_CHANGE_CREATION = 0x00000040 } -enum : uint { FILE_NOTIFY_CHANGE_SECURITY = 0x00000100 } -enum : uint { FILE_ACTION_ADDED = 0x00000001 } -enum : uint { FILE_ACTION_REMOVED = 0x00000002 } -enum : uint { FILE_ACTION_MODIFIED = 0x00000003 } -enum : uint { FILE_ACTION_RENAMED_OLD_NAME = 0x00000004 } -enum : uint { FILE_ACTION_RENAMED_NEW_NAME = 0x00000005 } -enum : DWORD { MAILSLOT_NO_MESSAGE = cast(DWORD)-1 } -enum : DWORD { MAILSLOT_WAIT_FOREVER = cast(DWORD)-1 } -enum : uint { FILE_CASE_SENSITIVE_SEARCH = 0x00000001 } -enum : uint { FILE_CASE_PRESERVED_NAMES = 0x00000002 } -enum : uint { FILE_UNICODE_ON_DISK = 0x00000004 } -enum : uint { FILE_PERSISTENT_ACLS = 0x00000008 } -enum : uint { FILE_FILE_COMPRESSION = 0x00000010 } -enum : uint { FILE_VOLUME_QUOTAS = 0x00000020 } -enum : uint { FILE_SUPPORTS_SPARSE_FILES = 0x00000040 } -enum : uint { FILE_SUPPORTS_REPARSE_POINTS = 0x00000080 } -enum : uint { FILE_SUPPORTS_REMOTE_STORAGE = 0x00000100 } -enum : uint { FILE_VOLUME_IS_COMPRESSED = 0x00008000 } -enum : uint { FILE_SUPPORTS_OBJECT_IDS = 0x00010000 } -enum : uint { FILE_SUPPORTS_ENCRYPTION = 0x00020000 } -enum : uint { FILE_NAMED_STREAMS = 0x00040000 } -enum : uint { FILE_READ_ONLY_VOLUME = 0x00080000 } - -struct _FILE_NOTIFY_INFORMATION { - DWORD NextEntryOffset; - DWORD Action; - DWORD FileNameLength; - WCHAR FileName[1]; -} -alias _FILE_NOTIFY_INFORMATION FILE_NOTIFY_INFORMATION; -alias _FILE_NOTIFY_INFORMATION* PFILE_NOTIFY_INFORMATION; - -union _FILE_SEGMENT_ELEMENT { - PVOID64 Buffer; - ULONGLONG Alignment; -} -alias _FILE_SEGMENT_ELEMENT FILE_SEGMENT_ELEMENT; -alias _FILE_SEGMENT_ELEMENT* PFILE_SEGMENT_ELEMENT; - -struct _REPARSE_GUID_DATA_BUFFER { - DWORD ReparseTag; - WORD ReparseDataLength; - WORD Reserved; - GUID ReparseGuid; -struct { - BYTE DataBuffer[1]; -} - -} -alias _REPARSE_GUID_DATA_BUFFER REPARSE_GUID_DATA_BUFFER; -alias _REPARSE_GUID_DATA_BUFFER* PREPARSE_GUID_DATA_BUFFER; - -// #define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_GUID_DATA_BUFFER, GenericReparseBuffer) - -enum : uint { MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024 } - -enum : uint { IO_REPARSE_TAG_RESERVED_ZERO = 0 } -enum : uint { IO_REPARSE_TAG_RESERVED_ONE = 1 } - -alias IO_REPARSE_TAG_RESERVED_ONE IO_REPARSE_TAG_RESERVED_RANGE; - -// #define IsReparseTagMicrosoft(_tag) ( ((_tag) & 0x80000000) ) - -// #define IsReparseTagNameSurrogate(_tag) ( ((_tag) & 0x20000000) ) - -enum : uint { IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003 } -enum : uint { IO_REPARSE_TAG_HSM = 0xC0000004 } -enum : uint { IO_REPARSE_TAG_SIS = 0x80000007 } -enum : uint { IO_REPARSE_TAG_FILTER_MANAGER = 0x8000000B } -enum : uint { IO_COMPLETION_MODIFY_STATE = 0x0002 } -enum : uint { IO_COMPLETION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 } -enum : uint { DUPLICATE_CLOSE_SOURCE = 0x00000001 } -enum : uint { DUPLICATE_SAME_ACCESS = 0x00000002 } - -alias int _SYSTEM_POWER_STATE; -enum { - PowerSystemUnspecified = 0, - PowerSystemWorking = 1, - PowerSystemSleeping1 = 2, - PowerSystemSleeping2 = 3, - PowerSystemSleeping3 = 4, - PowerSystemHibernate = 5, - PowerSystemShutdown = 6, - PowerSystemMaximum = 7, -} -alias _SYSTEM_POWER_STATE SYSTEM_POWER_STATE; -alias _SYSTEM_POWER_STATE* PSYSTEM_POWER_STATE; - -enum : uint { POWER_SYSTEM_MAXIMUM = 7 } - -enum _4 { - PowerActionNone = 0, - PowerActionReserved, - PowerActionSleep, - PowerActionHibernate, - PowerActionShutdown, - PowerActionShutdownReset, - PowerActionShutdownOff, - PowerActionWarmEject, -} -alias _4 POWER_ACTION; -alias _4* PPOWER_ACTION; - -alias int _DEVICE_POWER_STATE; -enum { - PowerDeviceUnspecified = 0, - PowerDeviceD0, - PowerDeviceD1, - PowerDeviceD2, - PowerDeviceD3, - PowerDeviceMaximum, -} -alias _DEVICE_POWER_STATE DEVICE_POWER_STATE; -alias _DEVICE_POWER_STATE* PDEVICE_POWER_STATE; - -enum : DWORD { ES_SYSTEM_REQUIRED = 0x00000001 } -enum : DWORD { ES_DISPLAY_REQUIRED = 0x00000002 } -enum : DWORD { ES_USER_PRESENT = 0x00000004 } -enum : DWORD { ES_CONTINUOUS = 0x80000000 } - -alias DWORD EXECUTION_STATE; - -enum _5 { - LT_DONT_CARE, - LT_LOWEST_LATENCY, -} -alias _5 LATENCY_TIME; - -enum : uint { PDCAP_D0_SUPPORTED = 0x00000001 } -enum : uint { PDCAP_D1_SUPPORTED = 0x00000002 } -enum : uint { PDCAP_D2_SUPPORTED = 0x00000004 } -enum : uint { PDCAP_D3_SUPPORTED = 0x00000008 } -enum : uint { PDCAP_WAKE_FROM_D0_SUPPORTED = 0x00000010 } -enum : uint { PDCAP_WAKE_FROM_D1_SUPPORTED = 0x00000020 } -enum : uint { PDCAP_WAKE_FROM_D2_SUPPORTED = 0x00000040 } -enum : uint { PDCAP_WAKE_FROM_D3_SUPPORTED = 0x00000080 } -enum : uint { PDCAP_WARM_EJECT_SUPPORTED = 0x00000100 } - -struct CM_Power_Data_s { - DWORD PD_Size; - DEVICE_POWER_STATE PD_MostRecentPowerState; - DWORD PD_Capabilities; - DWORD PD_D1Latency; - DWORD PD_D2Latency; - DWORD PD_D3Latency; - DEVICE_POWER_STATE PD_PowerStateMapping[POWER_SYSTEM_MAXIMUM]; - SYSTEM_POWER_STATE PD_DeepestSystemWake; -} -alias CM_Power_Data_s CM_POWER_DATA; -alias CM_Power_Data_s* PCM_POWER_DATA; - -enum _6 { - SystemPowerPolicyAc, - SystemPowerPolicyDc, - VerifySystemPolicyAc, - VerifySystemPolicyDc, - SystemPowerCapabilities, - SystemBatteryState, - SystemPowerStateHandler, - ProcessorStateHandler, - SystemPowerPolicyCurrent, - AdministratorPowerPolicy, - SystemReserveHiberFile, - ProcessorInformation, - SystemPowerInformation, - ProcessorStateHandler2, - LastWakeTime, - LastSleepTime, - SystemExecutionState, - SystemPowerStateNotifyHandler, - ProcessorPowerPolicyAc, - ProcessorPowerPolicyDc, - VerifyProcessorPowerPolicyAc, - VerifyProcessorPowerPolicyDc, - ProcessorPowerPolicyCurrent, -} -alias _6 POWER_INFORMATION_LEVEL; - -struct _7 { - DWORD Granularity; - DWORD Capacity; -} -alias _7 BATTERY_REPORTING_SCALE; -alias _7* PBATTERY_REPORTING_SCALE; - -struct _8 { - POWER_ACTION Action; - DWORD Flags; - DWORD EventCode; -} -alias _8 POWER_ACTION_POLICY; -alias _8* PPOWER_ACTION_POLICY; - -enum : uint { POWER_ACTION_QUERY_ALLOWED = 0x00000001 } -enum : uint { POWER_ACTION_UI_ALLOWED = 0x00000002 } -enum : uint { POWER_ACTION_OVERRIDE_APPS = 0x00000004 } -enum : uint { POWER_ACTION_LIGHTEST_FIRST = 0x10000000 } -enum : uint { POWER_ACTION_LOCK_CONSOLE = 0x20000000 } -enum : uint { POWER_ACTION_DISABLE_WAKES = 0x40000000 } -enum : uint { POWER_ACTION_CRITICAL = 0x80000000 } - -enum : uint { POWER_LEVEL_USER_NOTIFY_TEXT = 0x00000001 } -enum : uint { POWER_LEVEL_USER_NOTIFY_SOUND = 0x00000002 } -enum : uint { POWER_LEVEL_USER_NOTIFY_EXEC = 0x00000004 } -enum : uint { POWER_USER_NOTIFY_BUTTON = 0x00000008 } -enum : uint { POWER_USER_NOTIFY_SHUTDOWN = 0x00000010 } -enum : uint { POWER_FORCE_TRIGGER_RESET = 0x80000000 } - -struct _9 { - BOOLEAN Enable; - BYTE Spare[3]; - DWORD BatteryLevel; - POWER_ACTION_POLICY PowerPolicy; - SYSTEM_POWER_STATE MinSystemState; -} -alias _9 SYSTEM_POWER_LEVEL; -alias _9* PSYSTEM_POWER_LEVEL; - -enum : uint { NUM_DISCHARGE_POLICIES = 4 } -enum : uint { DISCHARGE_POLICY_CRITICAL = 0 } -enum : uint { DISCHARGE_POLICY_LOW = 1 } - -enum : uint { PO_THROTTLE_NONE = 0 } -enum : uint { PO_THROTTLE_CONSTANT = 1 } -enum : uint { PO_THROTTLE_DEGRADE = 2 } -enum : uint { PO_THROTTLE_ADAPTIVE = 3 } -enum : uint { PO_THROTTLE_MAXIMUM = 4 } - -struct _SYSTEM_POWER_POLICY { - DWORD Revision; - - POWER_ACTION_POLICY PowerButton; - POWER_ACTION_POLICY SleepButton; - POWER_ACTION_POLICY LidClose; - SYSTEM_POWER_STATE LidOpenWake; - DWORD Reserved; - POWER_ACTION_POLICY Idle; - DWORD IdleTimeout; - BYTE IdleSensitivity; - - BYTE DynamicThrottle; - BYTE Spare2[2]; - SYSTEM_POWER_STATE MinSleep; - SYSTEM_POWER_STATE MaxSleep; - SYSTEM_POWER_STATE ReducedLatencySleep; - DWORD WinLogonFlags; - DWORD Spare3; - DWORD DozeS4Timeout; - DWORD BroadcastCapacityResolution; - SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES]; - DWORD VideoTimeout; - BOOLEAN VideoDimDisplay; - DWORD VideoReserved[3]; - DWORD SpindownTimeout; - BOOLEAN OptimizeForPower; - BYTE FanThrottleTolerance; - BYTE ForcedThrottle; - BYTE MinThrottle; - POWER_ACTION_POLICY OverThrottled; -} -alias _SYSTEM_POWER_POLICY SYSTEM_POWER_POLICY; -alias _SYSTEM_POWER_POLICY* PSYSTEM_POWER_POLICY; - -struct _PROCESSOR_POWER_POLICY_INFO { - - DWORD TimeCheck; - DWORD DemoteLimit; - DWORD PromoteLimit; - - BYTE DemotePercent; - BYTE PromotePercent; - BYTE Spare[2]; -// DWORD AllowDemotion:1; -// DWORD AllowPromotion:1; -// DWORD Reserved:30; - -} -alias _PROCESSOR_POWER_POLICY_INFO PROCESSOR_POWER_POLICY_INFO; -alias _PROCESSOR_POWER_POLICY_INFO* PPROCESSOR_POWER_POLICY_INFO; - -struct _PROCESSOR_POWER_POLICY { - DWORD Revision; - - BYTE DynamicThrottle; - BYTE Spare[3]; - DWORD Reserved; - - DWORD PolicyCount; - PROCESSOR_POWER_POLICY_INFO Policy[3]; -} -alias _PROCESSOR_POWER_POLICY PROCESSOR_POWER_POLICY; -alias _PROCESSOR_POWER_POLICY* PPROCESSOR_POWER_POLICY; - -struct _ADMINISTRATOR_POWER_POLICY { - - SYSTEM_POWER_STATE MinSleep; - SYSTEM_POWER_STATE MaxSleep; - DWORD MinVideoTimeout; - DWORD MaxVideoTimeout; - DWORD MinSpindownTimeout; - DWORD MaxSpindownTimeout; -} -alias _ADMINISTRATOR_POWER_POLICY ADMINISTRATOR_POWER_POLICY; -alias _ADMINISTRATOR_POWER_POLICY* PADMINISTRATOR_POWER_POLICY; - -struct _10 { - - BOOLEAN PowerButtonPresent; - BOOLEAN SleepButtonPresent; - BOOLEAN LidPresent; - BOOLEAN SystemS1; - BOOLEAN SystemS2; - BOOLEAN SystemS3; - BOOLEAN SystemS4; - BOOLEAN SystemS5; - BOOLEAN HiberFilePresent; - BOOLEAN FullWake; - BOOLEAN VideoDimPresent; - BOOLEAN ApmPresent; - BOOLEAN UpsPresent; - BOOLEAN ThermalControl; - BOOLEAN ProcessorThrottle; - BYTE ProcessorMinThrottle; - BYTE ProcessorMaxThrottle; - BYTE spare2[4]; - BOOLEAN DiskSpinDown; - BYTE spare3[8]; - BOOLEAN SystemBatteriesPresent; - BOOLEAN BatteriesAreShortTerm; - BATTERY_REPORTING_SCALE BatteryScale[3]; - SYSTEM_POWER_STATE AcOnLineWake; - SYSTEM_POWER_STATE SoftLidWake; - SYSTEM_POWER_STATE RtcWake; - SYSTEM_POWER_STATE MinDeviceWakeState; - SYSTEM_POWER_STATE DefaultLowLatencyWake; -} -alias _10 SYSTEM_POWER_CAPABILITIES; -alias _10* PSYSTEM_POWER_CAPABILITIES; - -struct _11 { - BOOLEAN AcOnLine; - BOOLEAN BatteryPresent; - BOOLEAN Charging; - BOOLEAN Discharging; - BOOLEAN Spare1[4]; - DWORD MaxCapacity; - DWORD RemainingCapacity; - DWORD Rate; - DWORD EstimatedTime; - DWORD DefaultAlert1; - DWORD DefaultAlert2; -} -alias _11 SYSTEM_BATTERY_STATE; -alias _11* PSYSTEM_BATTERY_STATE; - -// #ifndef _MAC - -align(4): - -enum : uint { IMAGE_DOS_SIGNATURE = 0x5A4D } -enum : uint { IMAGE_OS2_SIGNATURE = 0x454E } -enum : uint { IMAGE_OS2_SIGNATURE_LE = 0x454C } -enum : uint { IMAGE_VXD_SIGNATURE = 0x454C } -enum : uint { IMAGE_NT_SIGNATURE = 0x00004550 } - -align(2): - -// #else - -// #... - -// #... -// #... -// #... -// #... -// #endif - -struct _IMAGE_DOS_HEADER { - WORD e_magic; - WORD e_cblp; - WORD e_cp; - WORD e_crlc; - WORD e_cparhdr; - WORD e_minalloc; - WORD e_maxalloc; - WORD e_ss; - WORD e_sp; - WORD e_csum; - WORD e_ip; - WORD e_cs; - WORD e_lfarlc; - WORD e_ovno; - WORD e_res[4]; - WORD e_oemid; - WORD e_oeminfo; - WORD e_res2[10]; - LONG e_lfanew; -} -alias _IMAGE_DOS_HEADER IMAGE_DOS_HEADER; -alias _IMAGE_DOS_HEADER* PIMAGE_DOS_HEADER; - -struct _IMAGE_OS2_HEADER { - WORD ne_magic; - CHAR ne_ver; - CHAR ne_rev; - WORD ne_enttab; - WORD ne_cbenttab; - LONG ne_crc; - WORD ne_flags; - WORD ne_autodata; - WORD ne_heap; - WORD ne_stack; - LONG ne_csip; - LONG ne_sssp; - WORD ne_cseg; - WORD ne_cmod; - WORD ne_cbnrestab; - WORD ne_segtab; - WORD ne_rsrctab; - WORD ne_restab; - WORD ne_modtab; - WORD ne_imptab; - LONG ne_nrestab; - WORD ne_cmovent; - WORD ne_align; - WORD ne_cres; - BYTE ne_exetyp; - BYTE ne_flagsothers; - WORD ne_pretthunks; - WORD ne_psegrefbytes; - WORD ne_swaparea; - WORD ne_expver; -} -alias _IMAGE_OS2_HEADER IMAGE_OS2_HEADER; -alias _IMAGE_OS2_HEADER* PIMAGE_OS2_HEADER; - -struct _IMAGE_VXD_HEADER { - WORD e32_magic; - BYTE e32_border; - BYTE e32_worder; - DWORD e32_level; - WORD e32_cpu; - WORD e32_os; - DWORD e32_ver; - DWORD e32_mflags; - DWORD e32_mpages; - DWORD e32_startobj; - DWORD e32_eip; - DWORD e32_stackobj; - DWORD e32_esp; - DWORD e32_pagesize; - DWORD e32_lastpagesize; - DWORD e32_fixupsize; - DWORD e32_fixupsum; - DWORD e32_ldrsize; - DWORD e32_ldrsum; - DWORD e32_objtab; - DWORD e32_objcnt; - DWORD e32_objmap; - DWORD e32_itermap; - DWORD e32_rsrctab; - DWORD e32_rsrccnt; - DWORD e32_restab; - DWORD e32_enttab; - DWORD e32_dirtab; - DWORD e32_dircnt; - DWORD e32_fpagetab; - DWORD e32_frectab; - DWORD e32_impmod; - DWORD e32_impmodcnt; - DWORD e32_impproc; - DWORD e32_pagesum; - DWORD e32_datapage; - DWORD e32_preload; - DWORD e32_nrestab; - DWORD e32_cbnrestab; - DWORD e32_nressum; - DWORD e32_autodata; - DWORD e32_debuginfo; - DWORD e32_debuglen; - DWORD e32_instpreload; - DWORD e32_instdemand; - DWORD e32_heapsize; - BYTE e32_res3[12]; - DWORD e32_winresoff; - DWORD e32_winreslen; - WORD e32_devid; - WORD e32_ddkver; -} -alias _IMAGE_VXD_HEADER IMAGE_VXD_HEADER; -alias _IMAGE_VXD_HEADER* PIMAGE_VXD_HEADER; - -// #ifndef _MAC -align: -// #endif - -struct _IMAGE_FILE_HEADER { - WORD Machine; - WORD NumberOfSections; - DWORD TimeDateStamp; - DWORD PointerToSymbolTable; - DWORD NumberOfSymbols; - WORD SizeOfOptionalHeader; - WORD Characteristics; -} -alias _IMAGE_FILE_HEADER IMAGE_FILE_HEADER; -alias _IMAGE_FILE_HEADER* PIMAGE_FILE_HEADER; - -enum : uint { IMAGE_SIZEOF_FILE_HEADER = 20 } - -enum : uint { IMAGE_FILE_RELOCS_STRIPPED = 0x0001 } -enum : uint { IMAGE_FILE_EXECUTABLE_IMAGE = 0x0002 } -enum : uint { IMAGE_FILE_LINE_NUMS_STRIPPED = 0x0004 } -enum : uint { IMAGE_FILE_LOCAL_SYMS_STRIPPED = 0x0008 } -enum : uint { IMAGE_FILE_AGGRESIVE_WS_TRIM = 0x0010 } -enum : uint { IMAGE_FILE_LARGE_ADDRESS_AWARE = 0x0020 } -enum : uint { IMAGE_FILE_BYTES_REVERSED_LO = 0x0080 } -enum : uint { IMAGE_FILE_32BIT_MACHINE = 0x0100 } -enum : uint { IMAGE_FILE_DEBUG_STRIPPED = 0x0200 } -enum : uint { IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 0x0400 } -enum : uint { IMAGE_FILE_NET_RUN_FROM_SWAP = 0x0800 } -enum : uint { IMAGE_FILE_SYSTEM = 0x1000 } -enum : uint { IMAGE_FILE_DLL = 0x2000 } -enum : uint { IMAGE_FILE_UP_SYSTEM_ONLY = 0x4000 } -enum : uint { IMAGE_FILE_BYTES_REVERSED_HI = 0x8000 } - -enum : uint { IMAGE_FILE_MACHINE_UNKNOWN = 0 } -enum : uint { IMAGE_FILE_MACHINE_I386 = 0x014c } -enum : uint { IMAGE_FILE_MACHINE_R3000 = 0x0162 } -enum : uint { IMAGE_FILE_MACHINE_R4000 = 0x0166 } -enum : uint { IMAGE_FILE_MACHINE_R10000 = 0x0168 } -enum : uint { IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x0169 } -enum : uint { IMAGE_FILE_MACHINE_ALPHA = 0x0184 } -enum : uint { IMAGE_FILE_MACHINE_SH3 = 0x01a2 } -enum : uint { IMAGE_FILE_MACHINE_SH3DSP = 0x01a3 } -enum : uint { IMAGE_FILE_MACHINE_SH3E = 0x01a4 } -enum : uint { IMAGE_FILE_MACHINE_SH4 = 0x01a6 } -enum : uint { IMAGE_FILE_MACHINE_SH5 = 0x01a8 } -enum : uint { IMAGE_FILE_MACHINE_ARM = 0x01c0 } -enum : uint { IMAGE_FILE_MACHINE_THUMB = 0x01c2 } -enum : uint { IMAGE_FILE_MACHINE_AM33 = 0x01d3 } -enum : uint { IMAGE_FILE_MACHINE_POWERPC = 0x01F0 } -enum : uint { IMAGE_FILE_MACHINE_POWERPCFP = 0x01f1 } -enum : uint { IMAGE_FILE_MACHINE_IA64 = 0x0200 } -enum : uint { IMAGE_FILE_MACHINE_MIPS16 = 0x0266 } -enum : uint { IMAGE_FILE_MACHINE_ALPHA64 = 0x0284 } -enum : uint { IMAGE_FILE_MACHINE_MIPSFPU = 0x0366 } -enum : uint { IMAGE_FILE_MACHINE_MIPSFPU16 = 0x0466 } -alias IMAGE_FILE_MACHINE_ALPHA64 IMAGE_FILE_MACHINE_AXP64; -enum : uint { IMAGE_FILE_MACHINE_TRICORE = 0x0520 } -enum : uint { IMAGE_FILE_MACHINE_CEF = 0x0CEF } -enum : uint { IMAGE_FILE_MACHINE_EBC = 0x0EBC } -enum : uint { IMAGE_FILE_MACHINE_AMD64 = 0x8664 } -enum : uint { IMAGE_FILE_MACHINE_M32R = 0x9041 } -enum : uint { IMAGE_FILE_MACHINE_CEE = 0xC0EE } - -struct _IMAGE_DATA_DIRECTORY { - DWORD VirtualAddress; - DWORD Size; -} -alias _IMAGE_DATA_DIRECTORY IMAGE_DATA_DIRECTORY; -alias _IMAGE_DATA_DIRECTORY* PIMAGE_DATA_DIRECTORY; - -enum : uint { IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16 } - -struct _IMAGE_OPTIONAL_HEADER { - - WORD Magic; - BYTE MajorLinkerVersion; - BYTE MinorLinkerVersion; - DWORD SizeOfCode; - DWORD SizeOfInitializedData; - DWORD SizeOfUninitializedData; - DWORD AddressOfEntryPoint; - DWORD BaseOfCode; - DWORD BaseOfData; - - DWORD ImageBase; - DWORD SectionAlignment; - DWORD FileAlignment; - WORD MajorOperatingSystemVersion; - WORD MinorOperatingSystemVersion; - WORD MajorImageVersion; - WORD MinorImageVersion; - WORD MajorSubsystemVersion; - WORD MinorSubsystemVersion; - DWORD Win32VersionValue; - DWORD SizeOfImage; - DWORD SizeOfHeaders; - DWORD CheckSum; - WORD Subsystem; - WORD DllCharacteristics; - DWORD SizeOfStackReserve; - DWORD SizeOfStackCommit; - DWORD SizeOfHeapReserve; - DWORD SizeOfHeapCommit; - DWORD LoaderFlags; - DWORD NumberOfRvaAndSizes; - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; -} -alias _IMAGE_OPTIONAL_HEADER IMAGE_OPTIONAL_HEADER32; -alias _IMAGE_OPTIONAL_HEADER* PIMAGE_OPTIONAL_HEADER32; - -struct _IMAGE_ROM_OPTIONAL_HEADER { - WORD Magic; - BYTE MajorLinkerVersion; - BYTE MinorLinkerVersion; - DWORD SizeOfCode; - DWORD SizeOfInitializedData; - DWORD SizeOfUninitializedData; - DWORD AddressOfEntryPoint; - DWORD BaseOfCode; - DWORD BaseOfData; - DWORD BaseOfBss; - DWORD GprMask; - DWORD CprMask[4]; - DWORD GpValue; -} -alias _IMAGE_ROM_OPTIONAL_HEADER IMAGE_ROM_OPTIONAL_HEADER; -alias _IMAGE_ROM_OPTIONAL_HEADER* PIMAGE_ROM_OPTIONAL_HEADER; - -struct _IMAGE_OPTIONAL_HEADER64 { - WORD Magic; - BYTE MajorLinkerVersion; - BYTE MinorLinkerVersion; - DWORD SizeOfCode; - DWORD SizeOfInitializedData; - DWORD SizeOfUninitializedData; - DWORD AddressOfEntryPoint; - DWORD BaseOfCode; - ULONGLONG ImageBase; - DWORD SectionAlignment; - DWORD FileAlignment; - WORD MajorOperatingSystemVersion; - WORD MinorOperatingSystemVersion; - WORD MajorImageVersion; - WORD MinorImageVersion; - WORD MajorSubsystemVersion; - WORD MinorSubsystemVersion; - DWORD Win32VersionValue; - DWORD SizeOfImage; - DWORD SizeOfHeaders; - DWORD CheckSum; - WORD Subsystem; - WORD DllCharacteristics; - ULONGLONG SizeOfStackReserve; - ULONGLONG SizeOfStackCommit; - ULONGLONG SizeOfHeapReserve; - ULONGLONG SizeOfHeapCommit; - DWORD LoaderFlags; - DWORD NumberOfRvaAndSizes; - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; -} -alias _IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER64; -alias _IMAGE_OPTIONAL_HEADER64* PIMAGE_OPTIONAL_HEADER64; - -enum : uint { IMAGE_SIZEOF_ROM_OPTIONAL_HEADER = 56 } -enum : uint { IMAGE_SIZEOF_STD_OPTIONAL_HEADER = 28 } -enum : uint { IMAGE_SIZEOF_NT_OPTIONAL32_HEADER = 224 } -enum : uint { IMAGE_SIZEOF_NT_OPTIONAL64_HEADER = 240 } - -enum : uint { IMAGE_NT_OPTIONAL_HDR32_MAGIC = 0x10b } -enum : uint { IMAGE_NT_OPTIONAL_HDR64_MAGIC = 0x20b } -enum : uint { IMAGE_ROM_OPTIONAL_HDR_MAGIC = 0x107 } - -// #ifdef _WIN64 -// ... -// #... -// #... -// #else -alias IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER; -alias PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER; -alias IMAGE_SIZEOF_NT_OPTIONAL32_HEADER IMAGE_SIZEOF_NT_OPTIONAL_HEADER; -alias IMAGE_NT_OPTIONAL_HDR32_MAGIC IMAGE_NT_OPTIONAL_HDR_MAGIC; -// #endif - -struct _IMAGE_NT_HEADERS64 { - DWORD Signature; - IMAGE_FILE_HEADER FileHeader; - IMAGE_OPTIONAL_HEADER64 OptionalHeader; -} -alias _IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS64; -alias _IMAGE_NT_HEADERS64* PIMAGE_NT_HEADERS64; - -struct _IMAGE_NT_HEADERS { - DWORD Signature; - IMAGE_FILE_HEADER FileHeader; - IMAGE_OPTIONAL_HEADER32 OptionalHeader; -} -alias _IMAGE_NT_HEADERS IMAGE_NT_HEADERS32; -alias _IMAGE_NT_HEADERS* PIMAGE_NT_HEADERS32; - -struct _IMAGE_ROM_HEADERS { - IMAGE_FILE_HEADER FileHeader; - IMAGE_ROM_OPTIONAL_HEADER OptionalHeader; -} -alias _IMAGE_ROM_HEADERS IMAGE_ROM_HEADERS; -alias _IMAGE_ROM_HEADERS* PIMAGE_ROM_HEADERS; - -// #ifdef _WIN64 -// ... -// #else -alias IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS; -alias PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS; -// #endif - -// #define IMAGE_FIRST_SECTION( ntheader ) ((PIMAGE_SECTION_HEADER) ((ULONG_PTR)ntheader + FIELD_OFFSET( IMAGE_NT_HEADERS, OptionalHeader ) + ((PIMAGE_NT_HEADERS)(ntheader))->FileHeader.SizeOfOptionalHeader )) - -enum : uint { IMAGE_SUBSYSTEM_UNKNOWN = 0 } -enum : uint { IMAGE_SUBSYSTEM_NATIVE = 1 } -enum : uint { IMAGE_SUBSYSTEM_WINDOWS_GUI = 2 } -enum : uint { IMAGE_SUBSYSTEM_WINDOWS_CUI = 3 } -enum : uint { IMAGE_SUBSYSTEM_OS2_CUI = 5 } -enum : uint { IMAGE_SUBSYSTEM_POSIX_CUI = 7 } -enum : uint { IMAGE_SUBSYSTEM_NATIVE_WINDOWS = 8 } -enum : uint { IMAGE_SUBSYSTEM_WINDOWS_CE_GUI = 9 } -enum : uint { IMAGE_SUBSYSTEM_EFI_APPLICATION = 10 } -enum : uint { IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER = 11 } -enum : uint { IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER = 12 } -enum : uint { IMAGE_SUBSYSTEM_EFI_ROM = 13 } -enum : uint { IMAGE_SUBSYSTEM_XBOX = 14 } - -enum : uint { IMAGE_DLLCHARACTERISTICS_NO_BIND = 0x0800 } - -enum : uint { IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 0x2000 } - -enum : uint { IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000 } - -enum : uint { IMAGE_DIRECTORY_ENTRY_EXPORT = 0 } -enum : uint { IMAGE_DIRECTORY_ENTRY_IMPORT = 1 } -enum : uint { IMAGE_DIRECTORY_ENTRY_RESOURCE = 2 } -enum : uint { IMAGE_DIRECTORY_ENTRY_EXCEPTION = 3 } -enum : uint { IMAGE_DIRECTORY_ENTRY_SECURITY = 4 } -enum : uint { IMAGE_DIRECTORY_ENTRY_BASERELOC = 5 } -enum : uint { IMAGE_DIRECTORY_ENTRY_DEBUG = 6 } - -enum : uint { IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7 } -enum : uint { IMAGE_DIRECTORY_ENTRY_GLOBALPTR = 8 } -enum : uint { IMAGE_DIRECTORY_ENTRY_TLS = 9 } -enum : uint { IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = 10 } -enum : uint { IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = 11 } -enum : uint { IMAGE_DIRECTORY_ENTRY_IAT = 12 } -enum : uint { IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT = 13 } -enum : uint { IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR = 14 } - -struct ANON_OBJECT_HEADER { - WORD Sig1; - WORD Sig2; - WORD Version; - WORD Machine; - DWORD TimeDateStamp; - CLSID ClassID; - DWORD SizeOfData; -} - -enum : uint { IMAGE_SIZEOF_SHORT_NAME = 8 } - -struct _IMAGE_SECTION_HEADER { - BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; -union { - DWORD PhysicalAddress; - DWORD VirtualSize; -} - - DWORD VirtualAddress; - DWORD SizeOfRawData; - DWORD PointerToRawData; - DWORD PointerToRelocations; - DWORD PointerToLinenumbers; - WORD NumberOfRelocations; - WORD NumberOfLinenumbers; - DWORD Characteristics; -} -alias _IMAGE_SECTION_HEADER IMAGE_SECTION_HEADER; -alias _IMAGE_SECTION_HEADER* PIMAGE_SECTION_HEADER; - -enum : uint { IMAGE_SIZEOF_SECTION_HEADER = 40 } - -enum : uint { IMAGE_SCN_TYPE_NO_PAD = 0x00000008 } - -enum : uint { IMAGE_SCN_CNT_CODE = 0x00000020 } -enum : uint { IMAGE_SCN_CNT_INITIALIZED_DATA = 0x00000040 } -enum : uint { IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080 } - -enum : uint { IMAGE_SCN_LNK_OTHER = 0x00000100 } -enum : uint { IMAGE_SCN_LNK_INFO = 0x00000200 } - -enum : uint { IMAGE_SCN_LNK_REMOVE = 0x00000800 } -enum : uint { IMAGE_SCN_LNK_COMDAT = 0x00001000 } - -enum : uint { IMAGE_SCN_NO_DEFER_SPEC_EXC = 0x00004000 } -enum : uint { IMAGE_SCN_GPREL = 0x00008000 } -enum : uint { IMAGE_SCN_MEM_FARDATA = 0x00008000 } - -enum : uint { IMAGE_SCN_MEM_PURGEABLE = 0x00020000 } -enum : uint { IMAGE_SCN_MEM_16BIT = 0x00020000 } -enum : uint { IMAGE_SCN_MEM_LOCKED = 0x00040000 } -enum : uint { IMAGE_SCN_MEM_PRELOAD = 0x00080000 } - -enum : uint { IMAGE_SCN_ALIGN_1BYTES = 0x00100000 } -enum : uint { IMAGE_SCN_ALIGN_2BYTES = 0x00200000 } -enum : uint { IMAGE_SCN_ALIGN_4BYTES = 0x00300000 } -enum : uint { IMAGE_SCN_ALIGN_8BYTES = 0x00400000 } -enum : uint { IMAGE_SCN_ALIGN_16BYTES = 0x00500000 } -enum : uint { IMAGE_SCN_ALIGN_32BYTES = 0x00600000 } -enum : uint { IMAGE_SCN_ALIGN_64BYTES = 0x00700000 } -enum : uint { IMAGE_SCN_ALIGN_128BYTES = 0x00800000 } -enum : uint { IMAGE_SCN_ALIGN_256BYTES = 0x00900000 } -enum : uint { IMAGE_SCN_ALIGN_512BYTES = 0x00A00000 } -enum : uint { IMAGE_SCN_ALIGN_1024BYTES = 0x00B00000 } -enum : uint { IMAGE_SCN_ALIGN_2048BYTES = 0x00C00000 } -enum : uint { IMAGE_SCN_ALIGN_4096BYTES = 0x00D00000 } -enum : uint { IMAGE_SCN_ALIGN_8192BYTES = 0x00E00000 } - -enum : uint { IMAGE_SCN_ALIGN_MASK = 0x00F00000 } - -enum : uint { IMAGE_SCN_LNK_NRELOC_OVFL = 0x01000000 } -enum : uint { IMAGE_SCN_MEM_DISCARDABLE = 0x02000000 } -enum : uint { IMAGE_SCN_MEM_NOT_CACHED = 0x04000000 } -enum : uint { IMAGE_SCN_MEM_NOT_PAGED = 0x08000000 } -enum : uint { IMAGE_SCN_MEM_SHARED = 0x10000000 } -enum : uint { IMAGE_SCN_MEM_EXECUTE = 0x20000000 } -enum : uint { IMAGE_SCN_MEM_READ = 0x40000000 } -enum : uint { IMAGE_SCN_MEM_WRITE = 0x80000000 } - -enum : uint { IMAGE_SCN_SCALE_INDEX = 0x00000001 } - -// #ifndef _MAC -align(2): -// #endif - -struct _IMAGE_SYMBOL { -union { - BYTE ShortName[8]; -struct { - DWORD Short; - DWORD Long; -} - - DWORD LongName[2]; -} - - DWORD Value; - SHORT SectionNumber; - WORD Type; - BYTE StorageClass; - BYTE NumberOfAuxSymbols; -} -alias _IMAGE_SYMBOL IMAGE_SYMBOL; - -alias IMAGE_SYMBOL* PIMAGE_SYMBOL; - -enum : uint { IMAGE_SIZEOF_SYMBOL = 18 } - -enum : SHORT { IMAGE_SYM_UNDEFINED = 0 } -enum : SHORT { IMAGE_SYM_ABSOLUTE = -1 } -enum : SHORT { IMAGE_SYM_DEBUG = -2 } -enum : uint { IMAGE_SYM_SECTION_MAX = 0xFEFF } - -enum : uint { IMAGE_SYM_TYPE_NULL = 0x0000 } -enum : uint { IMAGE_SYM_TYPE_VOID = 0x0001 } -enum : uint { IMAGE_SYM_TYPE_CHAR = 0x0002 } -enum : uint { IMAGE_SYM_TYPE_SHORT = 0x0003 } -enum : uint { IMAGE_SYM_TYPE_INT = 0x0004 } -enum : uint { IMAGE_SYM_TYPE_LONG = 0x0005 } -enum : uint { IMAGE_SYM_TYPE_FLOAT = 0x0006 } -enum : uint { IMAGE_SYM_TYPE_DOUBLE = 0x0007 } -enum : uint { IMAGE_SYM_TYPE_STRUCT = 0x0008 } -enum : uint { IMAGE_SYM_TYPE_UNION = 0x0009 } -enum : uint { IMAGE_SYM_TYPE_ENUM = 0x000A } -enum : uint { IMAGE_SYM_TYPE_MOE = 0x000B } -enum : uint { IMAGE_SYM_TYPE_BYTE = 0x000C } -enum : uint { IMAGE_SYM_TYPE_WORD = 0x000D } -enum : uint { IMAGE_SYM_TYPE_UINT = 0x000E } -enum : uint { IMAGE_SYM_TYPE_DWORD = 0x000F } -enum : uint { IMAGE_SYM_TYPE_PCODE = 0x8000 } - -enum : uint { IMAGE_SYM_DTYPE_NULL = 0 } -enum : uint { IMAGE_SYM_DTYPE_POINTER = 1 } -enum : uint { IMAGE_SYM_DTYPE_FUNCTION = 2 } -enum : uint { IMAGE_SYM_DTYPE_ARRAY = 3 } - -enum : BYTE { IMAGE_SYM_CLASS_END_OF_FUNCTION = cast(BYTE)-1 } -enum : uint { IMAGE_SYM_CLASS_NULL = 0x0000 } -enum : uint { IMAGE_SYM_CLASS_AUTOMATIC = 0x0001 } -enum : uint { IMAGE_SYM_CLASS_EXTERNAL = 0x0002 } -enum : uint { IMAGE_SYM_CLASS_STATIC = 0x0003 } -enum : uint { IMAGE_SYM_CLASS_REGISTER = 0x0004 } -enum : uint { IMAGE_SYM_CLASS_EXTERNAL_DEF = 0x0005 } -enum : uint { IMAGE_SYM_CLASS_LABEL = 0x0006 } -enum : uint { IMAGE_SYM_CLASS_UNDEFINED_LABEL = 0x0007 } -enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_STRUCT = 0x0008 } -enum : uint { IMAGE_SYM_CLASS_ARGUMENT = 0x0009 } -enum : uint { IMAGE_SYM_CLASS_STRUCT_TAG = 0x000A } -enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_UNION = 0x000B } -enum : uint { IMAGE_SYM_CLASS_UNION_TAG = 0x000C } -enum : uint { IMAGE_SYM_CLASS_TYPE_DEFINITION = 0x000D } -enum : uint { IMAGE_SYM_CLASS_UNDEFINED_STATIC = 0x000E } -enum : uint { IMAGE_SYM_CLASS_ENUM_TAG = 0x000F } -enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_ENUM = 0x0010 } -enum : uint { IMAGE_SYM_CLASS_REGISTER_PARAM = 0x0011 } -enum : uint { IMAGE_SYM_CLASS_BIT_FIELD = 0x0012 } - -enum : uint { IMAGE_SYM_CLASS_FAR_EXTERNAL = 0x0044 } - -enum : uint { IMAGE_SYM_CLASS_BLOCK = 0x0064 } -enum : uint { IMAGE_SYM_CLASS_FUNCTION = 0x0065 } -enum : uint { IMAGE_SYM_CLASS_END_OF_STRUCT = 0x0066 } -enum : uint { IMAGE_SYM_CLASS_FILE = 0x0067 } - -enum : uint { IMAGE_SYM_CLASS_SECTION = 0x0068 } -enum : uint { IMAGE_SYM_CLASS_WEAK_EXTERNAL = 0x0069 } - -enum : uint { IMAGE_SYM_CLASS_CLR_TOKEN = 0x006B } - -enum : uint { N_BTMASK = 0x000F } -enum : uint { N_TMASK = 0x0030 } -enum : uint { N_TMASK1 = 0x00C0 } -enum : uint { N_TMASK2 = 0x00F0 } -enum : uint { N_BTSHFT = 4 } -enum : uint { N_TSHIFT = 2 } - -BYTE BTYPE(BYTE x){ return x & N_BTMASK; } - -// #ifndef ISPTR -bit ISPTR(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT); } -// #endif - -// #ifndef ISFCN -bit ISFCN(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT); } -// #endif - -// #ifndef ISARY -bit ISARY(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT); } -// #endif - -// #ifndef ISTAG -bit ISTAG(uint x){ return x == IMAGE_SYM_CLASS_STRUCT_TAG || x == IMAGE_SYM_CLASS_UNION_TAG || x == IMAGE_SYM_CLASS_ENUM_TAG; } -// #endif - -// #ifndef INCREF -uint INCREF(uint x){ return ((x&~N_BTMASK)<>> N_TSHIFT) & ~N_BTMASK)|(x & N_BTMASK); } -// #endif - -union _IMAGE_AUX_SYMBOL { -struct { - DWORD TagIndex; -union { -struct { - WORD Linenumber; - WORD Size; -} - - DWORD TotalSize; -} - -union { -struct { - DWORD PointerToLinenumber; - DWORD PointerToNextFunction; -} - -struct { - WORD Dimension[4]; -} - -} - - WORD TvIndex; -} - -struct { - BYTE Name[IMAGE_SIZEOF_SYMBOL]; -} - -struct { - DWORD Length; - WORD NumberOfRelocations; - WORD NumberOfLinenumbers; - DWORD CheckSum; - SHORT Number; - BYTE Selection; -} - -} -alias _IMAGE_AUX_SYMBOL IMAGE_AUX_SYMBOL; - -alias IMAGE_AUX_SYMBOL* PIMAGE_AUX_SYMBOL; - -enum : uint { IMAGE_SIZEOF_AUX_SYMBOL = 18 } - -alias int IMAGE_AUX_SYMBOL_TYPE; -enum { - IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF = 1, -} - -align(2): - -struct IMAGE_AUX_SYMBOL_TOKEN_DEF { - BYTE bAuxType; - BYTE bReserved; - DWORD SymbolTableIndex; - BYTE rgbReserved[12]; -} - -alias IMAGE_AUX_SYMBOL_TOKEN_DEF* PIMAGE_AUX_SYMBOL_TOKEN_DEF; - -align: - -enum : uint { IMAGE_COMDAT_SELECT_NODUPLICATES = 1 } -enum : uint { IMAGE_COMDAT_SELECT_ANY = 2 } -enum : uint { IMAGE_COMDAT_SELECT_SAME_SIZE = 3 } -enum : uint { IMAGE_COMDAT_SELECT_EXACT_MATCH = 4 } -enum : uint { IMAGE_COMDAT_SELECT_ASSOCIATIVE = 5 } -enum : uint { IMAGE_COMDAT_SELECT_LARGEST = 6 } -enum : uint { IMAGE_COMDAT_SELECT_NEWEST = 7 } - -enum : uint { IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1 } -enum : uint { IMAGE_WEAK_EXTERN_SEARCH_LIBRARY = 2 } -enum : uint { IMAGE_WEAK_EXTERN_SEARCH_ALIAS = 3 } - -struct _IMAGE_RELOCATION { -union { - DWORD VirtualAddress; - DWORD RelocCount; -} - - DWORD SymbolTableIndex; - WORD Type; -} -alias _IMAGE_RELOCATION IMAGE_RELOCATION; - -alias IMAGE_RELOCATION* PIMAGE_RELOCATION; - -enum : uint { IMAGE_SIZEOF_RELOCATION = 10 } - -enum : uint { IMAGE_REL_I386_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_I386_DIR16 = 0x0001 } -enum : uint { IMAGE_REL_I386_REL16 = 0x0002 } -enum : uint { IMAGE_REL_I386_DIR32 = 0x0006 } -enum : uint { IMAGE_REL_I386_DIR32NB = 0x0007 } -enum : uint { IMAGE_REL_I386_SEG12 = 0x0009 } -enum : uint { IMAGE_REL_I386_SECTION = 0x000A } -enum : uint { IMAGE_REL_I386_SECREL = 0x000B } -enum : uint { IMAGE_REL_I386_TOKEN = 0x000C } -enum : uint { IMAGE_REL_I386_SECREL7 = 0x000D } -enum : uint { IMAGE_REL_I386_REL32 = 0x0014 } - -enum : uint { IMAGE_REL_MIPS_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_MIPS_REFHALF = 0x0001 } -enum : uint { IMAGE_REL_MIPS_REFWORD = 0x0002 } -enum : uint { IMAGE_REL_MIPS_JMPADDR = 0x0003 } -enum : uint { IMAGE_REL_MIPS_REFHI = 0x0004 } -enum : uint { IMAGE_REL_MIPS_REFLO = 0x0005 } -enum : uint { IMAGE_REL_MIPS_GPREL = 0x0006 } -enum : uint { IMAGE_REL_MIPS_LITERAL = 0x0007 } -enum : uint { IMAGE_REL_MIPS_SECTION = 0x000A } -enum : uint { IMAGE_REL_MIPS_SECREL = 0x000B } -enum : uint { IMAGE_REL_MIPS_SECRELLO = 0x000C } -enum : uint { IMAGE_REL_MIPS_SECRELHI = 0x000D } -enum : uint { IMAGE_REL_MIPS_TOKEN = 0x000E } -enum : uint { IMAGE_REL_MIPS_JMPADDR16 = 0x0010 } -enum : uint { IMAGE_REL_MIPS_REFWORDNB = 0x0022 } -enum : uint { IMAGE_REL_MIPS_PAIR = 0x0025 } - -enum : uint { IMAGE_REL_ALPHA_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_ALPHA_REFLONG = 0x0001 } -enum : uint { IMAGE_REL_ALPHA_REFQUAD = 0x0002 } -enum : uint { IMAGE_REL_ALPHA_GPREL32 = 0x0003 } -enum : uint { IMAGE_REL_ALPHA_LITERAL = 0x0004 } -enum : uint { IMAGE_REL_ALPHA_LITUSE = 0x0005 } -enum : uint { IMAGE_REL_ALPHA_GPDISP = 0x0006 } -enum : uint { IMAGE_REL_ALPHA_BRADDR = 0x0007 } -enum : uint { IMAGE_REL_ALPHA_HINT = 0x0008 } -enum : uint { IMAGE_REL_ALPHA_INLINE_REFLONG = 0x0009 } -enum : uint { IMAGE_REL_ALPHA_REFHI = 0x000A } -enum : uint { IMAGE_REL_ALPHA_REFLO = 0x000B } -enum : uint { IMAGE_REL_ALPHA_PAIR = 0x000C } -enum : uint { IMAGE_REL_ALPHA_MATCH = 0x000D } -enum : uint { IMAGE_REL_ALPHA_SECTION = 0x000E } -enum : uint { IMAGE_REL_ALPHA_SECREL = 0x000F } -enum : uint { IMAGE_REL_ALPHA_REFLONGNB = 0x0010 } -enum : uint { IMAGE_REL_ALPHA_SECRELLO = 0x0011 } -enum : uint { IMAGE_REL_ALPHA_SECRELHI = 0x0012 } -enum : uint { IMAGE_REL_ALPHA_REFQ3 = 0x0013 } -enum : uint { IMAGE_REL_ALPHA_REFQ2 = 0x0014 } -enum : uint { IMAGE_REL_ALPHA_REFQ1 = 0x0015 } -enum : uint { IMAGE_REL_ALPHA_GPRELLO = 0x0016 } -enum : uint { IMAGE_REL_ALPHA_GPRELHI = 0x0017 } - -enum : uint { IMAGE_REL_PPC_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_PPC_ADDR64 = 0x0001 } -enum : uint { IMAGE_REL_PPC_ADDR32 = 0x0002 } -enum : uint { IMAGE_REL_PPC_ADDR24 = 0x0003 } -enum : uint { IMAGE_REL_PPC_ADDR16 = 0x0004 } -enum : uint { IMAGE_REL_PPC_ADDR14 = 0x0005 } -enum : uint { IMAGE_REL_PPC_REL24 = 0x0006 } -enum : uint { IMAGE_REL_PPC_REL14 = 0x0007 } -enum : uint { IMAGE_REL_PPC_TOCREL16 = 0x0008 } -enum : uint { IMAGE_REL_PPC_TOCREL14 = 0x0009 } - -enum : uint { IMAGE_REL_PPC_ADDR32NB = 0x000A } -enum : uint { IMAGE_REL_PPC_SECREL = 0x000B } -enum : uint { IMAGE_REL_PPC_SECTION = 0x000C } -enum : uint { IMAGE_REL_PPC_IFGLUE = 0x000D } -enum : uint { IMAGE_REL_PPC_IMGLUE = 0x000E } -enum : uint { IMAGE_REL_PPC_SECREL16 = 0x000F } -enum : uint { IMAGE_REL_PPC_REFHI = 0x0010 } -enum : uint { IMAGE_REL_PPC_REFLO = 0x0011 } -enum : uint { IMAGE_REL_PPC_PAIR = 0x0012 } -enum : uint { IMAGE_REL_PPC_SECRELLO = 0x0013 } -enum : uint { IMAGE_REL_PPC_SECRELHI = 0x0014 } -enum : uint { IMAGE_REL_PPC_GPREL = 0x0015 } -enum : uint { IMAGE_REL_PPC_TOKEN = 0x0016 } - -enum : uint { IMAGE_REL_PPC_TYPEMASK = 0x00FF } - -enum : uint { IMAGE_REL_PPC_NEG = 0x0100 } -enum : uint { IMAGE_REL_PPC_BRTAKEN = 0x0200 } -enum : uint { IMAGE_REL_PPC_BRNTAKEN = 0x0400 } -enum : uint { IMAGE_REL_PPC_TOCDEFN = 0x0800 } - -enum : uint { IMAGE_REL_SH3_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_SH3_DIRECT16 = 0x0001 } -enum : uint { IMAGE_REL_SH3_DIRECT32 = 0x0002 } -enum : uint { IMAGE_REL_SH3_DIRECT8 = 0x0003 } -enum : uint { IMAGE_REL_SH3_DIRECT8_WORD = 0x0004 } -enum : uint { IMAGE_REL_SH3_DIRECT8_LONG = 0x0005 } -enum : uint { IMAGE_REL_SH3_DIRECT4 = 0x0006 } -enum : uint { IMAGE_REL_SH3_DIRECT4_WORD = 0x0007 } -enum : uint { IMAGE_REL_SH3_DIRECT4_LONG = 0x0008 } -enum : uint { IMAGE_REL_SH3_PCREL8_WORD = 0x0009 } -enum : uint { IMAGE_REL_SH3_PCREL8_LONG = 0x000A } -enum : uint { IMAGE_REL_SH3_PCREL12_WORD = 0x000B } -enum : uint { IMAGE_REL_SH3_STARTOF_SECTION = 0x000C } -enum : uint { IMAGE_REL_SH3_SIZEOF_SECTION = 0x000D } -enum : uint { IMAGE_REL_SH3_SECTION = 0x000E } -enum : uint { IMAGE_REL_SH3_SECREL = 0x000F } -enum : uint { IMAGE_REL_SH3_DIRECT32_NB = 0x0010 } -enum : uint { IMAGE_REL_SH3_GPREL4_LONG = 0x0011 } -enum : uint { IMAGE_REL_SH3_TOKEN = 0x0012 } - -enum : uint { IMAGE_REL_ARM_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_ARM_ADDR32 = 0x0001 } -enum : uint { IMAGE_REL_ARM_ADDR32NB = 0x0002 } -enum : uint { IMAGE_REL_ARM_BRANCH24 = 0x0003 } -enum : uint { IMAGE_REL_ARM_BRANCH11 = 0x0004 } -enum : uint { IMAGE_REL_ARM_TOKEN = 0x0005 } -enum : uint { IMAGE_REL_ARM_GPREL12 = 0x0006 } -enum : uint { IMAGE_REL_ARM_GPREL7 = 0x0007 } -enum : uint { IMAGE_REL_ARM_BLX24 = 0x0008 } -enum : uint { IMAGE_REL_ARM_BLX11 = 0x0009 } -enum : uint { IMAGE_REL_ARM_SECTION = 0x000E } -enum : uint { IMAGE_REL_ARM_SECREL = 0x000F } - -enum : uint { IMAGE_REL_AM_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_AM_ADDR32 = 0x0001 } -enum : uint { IMAGE_REL_AM_ADDR32NB = 0x0002 } -enum : uint { IMAGE_REL_AM_CALL32 = 0x0003 } -enum : uint { IMAGE_REL_AM_FUNCINFO = 0x0004 } -enum : uint { IMAGE_REL_AM_REL32_1 = 0x0005 } -enum : uint { IMAGE_REL_AM_REL32_2 = 0x0006 } -enum : uint { IMAGE_REL_AM_SECREL = 0x0007 } -enum : uint { IMAGE_REL_AM_SECTION = 0x0008 } -enum : uint { IMAGE_REL_AM_TOKEN = 0x0009 } - -enum : uint { IMAGE_REL_AMD64_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_AMD64_ADDR64 = 0x0001 } -enum : uint { IMAGE_REL_AMD64_ADDR32 = 0x0002 } -enum : uint { IMAGE_REL_AMD64_ADDR32NB = 0x0003 } -enum : uint { IMAGE_REL_AMD64_REL32 = 0x0004 } -enum : uint { IMAGE_REL_AMD64_REL32_1 = 0x0005 } -enum : uint { IMAGE_REL_AMD64_REL32_2 = 0x0006 } -enum : uint { IMAGE_REL_AMD64_REL32_3 = 0x0007 } -enum : uint { IMAGE_REL_AMD64_REL32_4 = 0x0008 } -enum : uint { IMAGE_REL_AMD64_REL32_5 = 0x0009 } -enum : uint { IMAGE_REL_AMD64_SECTION = 0x000A } -enum : uint { IMAGE_REL_AMD64_SECREL = 0x000B } -enum : uint { IMAGE_REL_AMD64_SECREL7 = 0x000C } -enum : uint { IMAGE_REL_AMD64_TOKEN = 0x000D } - -enum : uint { IMAGE_REL_IA64_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_IA64_IMM14 = 0x0001 } -enum : uint { IMAGE_REL_IA64_IMM22 = 0x0002 } -enum : uint { IMAGE_REL_IA64_IMM64 = 0x0003 } -enum : uint { IMAGE_REL_IA64_DIR32 = 0x0004 } -enum : uint { IMAGE_REL_IA64_DIR64 = 0x0005 } -enum : uint { IMAGE_REL_IA64_PCREL21B = 0x0006 } -enum : uint { IMAGE_REL_IA64_PCREL21M = 0x0007 } -enum : uint { IMAGE_REL_IA64_PCREL21F = 0x0008 } -enum : uint { IMAGE_REL_IA64_GPREL22 = 0x0009 } -enum : uint { IMAGE_REL_IA64_LTOFF22 = 0x000A } -enum : uint { IMAGE_REL_IA64_SECTION = 0x000B } -enum : uint { IMAGE_REL_IA64_SECREL22 = 0x000C } -enum : uint { IMAGE_REL_IA64_SECREL64I = 0x000D } -enum : uint { IMAGE_REL_IA64_SECREL32 = 0x000E } - -enum : uint { IMAGE_REL_IA64_DIR32NB = 0x0010 } -enum : uint { IMAGE_REL_IA64_SREL14 = 0x0011 } -enum : uint { IMAGE_REL_IA64_SREL22 = 0x0012 } -enum : uint { IMAGE_REL_IA64_SREL32 = 0x0013 } -enum : uint { IMAGE_REL_IA64_UREL32 = 0x0014 } -enum : uint { IMAGE_REL_IA64_PCREL60X = 0x0015 } -enum : uint { IMAGE_REL_IA64_PCREL60B = 0x0016 } -enum : uint { IMAGE_REL_IA64_PCREL60F = 0x0017 } -enum : uint { IMAGE_REL_IA64_PCREL60I = 0x0018 } -enum : uint { IMAGE_REL_IA64_PCREL60M = 0x0019 } -enum : uint { IMAGE_REL_IA64_IMMGPREL64 = 0x001A } -enum : uint { IMAGE_REL_IA64_TOKEN = 0x001B } -enum : uint { IMAGE_REL_IA64_GPREL32 = 0x001C } -enum : uint { IMAGE_REL_IA64_ADDEND = 0x001F } - -enum : uint { IMAGE_REL_CEF_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_CEF_ADDR32 = 0x0001 } -enum : uint { IMAGE_REL_CEF_ADDR64 = 0x0002 } -enum : uint { IMAGE_REL_CEF_ADDR32NB = 0x0003 } -enum : uint { IMAGE_REL_CEF_SECTION = 0x0004 } -enum : uint { IMAGE_REL_CEF_SECREL = 0x0005 } -enum : uint { IMAGE_REL_CEF_TOKEN = 0x0006 } - -enum : uint { IMAGE_REL_CEE_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_CEE_ADDR32 = 0x0001 } -enum : uint { IMAGE_REL_CEE_ADDR64 = 0x0002 } -enum : uint { IMAGE_REL_CEE_ADDR32NB = 0x0003 } -enum : uint { IMAGE_REL_CEE_SECTION = 0x0004 } -enum : uint { IMAGE_REL_CEE_SECREL = 0x0005 } -enum : uint { IMAGE_REL_CEE_TOKEN = 0x0006 } - -enum : uint { IMAGE_REL_M32R_ABSOLUTE = 0x0000 } -enum : uint { IMAGE_REL_M32R_ADDR32 = 0x0001 } -enum : uint { IMAGE_REL_M32R_ADDR32NB = 0x0002 } -enum : uint { IMAGE_REL_M32R_ADDR24 = 0x0003 } -enum : uint { IMAGE_REL_M32R_GPREL16 = 0x0004 } -enum : uint { IMAGE_REL_M32R_PCREL24 = 0x0005 } -enum : uint { IMAGE_REL_M32R_PCREL16 = 0x0006 } -enum : uint { IMAGE_REL_M32R_PCREL8 = 0x0007 } -enum : uint { IMAGE_REL_M32R_REFHALF = 0x0008 } -enum : uint { IMAGE_REL_M32R_REFHI = 0x0009 } -enum : uint { IMAGE_REL_M32R_REFLO = 0x000A } -enum : uint { IMAGE_REL_M32R_PAIR = 0x000B } -enum : uint { IMAGE_REL_M32R_SECTION = 0x000C } -enum : uint { IMAGE_REL_M32R_SECREL32 = 0x000D } -enum : uint { IMAGE_REL_M32R_TOKEN = 0x000E } - -// #define EXT_IMM64(Value, Address, Size, InstPos, ValPos) Value |= (((ULONGLONG)((*(Address) >> InstPos) & (((ULONGLONG)1 << Size) - 1))) << ValPos) - -// #define INS_IMM64(Value, Address, Size, InstPos, ValPos) *(PDWORD)Address = (*(PDWORD)Address & ~(((1 << Size) - 1) << InstPos)) | ((DWORD)((((ULONGLONG)Value >> ValPos) & (((ULONGLONG)1 << Size) - 1))) << InstPos) - -enum : uint { EMARCH_ENC_I17_IMM7B_INST_WORD_X = 3 } -enum : uint { EMARCH_ENC_I17_IMM7B_SIZE_X = 7 } -enum : uint { EMARCH_ENC_I17_IMM7B_INST_WORD_POS_X = 4 } -enum : uint { EMARCH_ENC_I17_IMM7B_VAL_POS_X = 0 } - -enum : uint { EMARCH_ENC_I17_IMM9D_INST_WORD_X = 3 } -enum : uint { EMARCH_ENC_I17_IMM9D_SIZE_X = 9 } -enum : uint { EMARCH_ENC_I17_IMM9D_INST_WORD_POS_X = 18 } -enum : uint { EMARCH_ENC_I17_IMM9D_VAL_POS_X = 7 } - -enum : uint { EMARCH_ENC_I17_IMM5C_INST_WORD_X = 3 } -enum : uint { EMARCH_ENC_I17_IMM5C_SIZE_X = 5 } -enum : uint { EMARCH_ENC_I17_IMM5C_INST_WORD_POS_X = 13 } -enum : uint { EMARCH_ENC_I17_IMM5C_VAL_POS_X = 16 } - -enum : uint { EMARCH_ENC_I17_IC_INST_WORD_X = 3 } -enum : uint { EMARCH_ENC_I17_IC_SIZE_X = 1 } -enum : uint { EMARCH_ENC_I17_IC_INST_WORD_POS_X = 12 } -enum : uint { EMARCH_ENC_I17_IC_VAL_POS_X = 21 } - -enum : uint { EMARCH_ENC_I17_IMM41a_INST_WORD_X = 1 } -enum : uint { EMARCH_ENC_I17_IMM41a_SIZE_X = 10 } -enum : uint { EMARCH_ENC_I17_IMM41a_INST_WORD_POS_X = 14 } -enum : uint { EMARCH_ENC_I17_IMM41a_VAL_POS_X = 22 } - -enum : uint { EMARCH_ENC_I17_IMM41b_INST_WORD_X = 1 } -enum : uint { EMARCH_ENC_I17_IMM41b_SIZE_X = 8 } -enum : uint { EMARCH_ENC_I17_IMM41b_INST_WORD_POS_X = 24 } -enum : uint { EMARCH_ENC_I17_IMM41b_VAL_POS_X = 32 } - -enum : uint { EMARCH_ENC_I17_IMM41c_INST_WORD_X = 2 } -enum : uint { EMARCH_ENC_I17_IMM41c_SIZE_X = 23 } -enum : uint { EMARCH_ENC_I17_IMM41c_INST_WORD_POS_X = 0 } -enum : uint { EMARCH_ENC_I17_IMM41c_VAL_POS_X = 40 } - -enum : uint { EMARCH_ENC_I17_SIGN_INST_WORD_X = 3 } -enum : uint { EMARCH_ENC_I17_SIGN_SIZE_X = 1 } -enum : uint { EMARCH_ENC_I17_SIGN_INST_WORD_POS_X = 27 } -enum : uint { EMARCH_ENC_I17_SIGN_VAL_POS_X = 63 } - -struct _IMAGE_LINENUMBER { -union { - DWORD SymbolTableIndex; - DWORD VirtualAddress; -} - - WORD Linenumber; -} -alias _IMAGE_LINENUMBER IMAGE_LINENUMBER; - -alias IMAGE_LINENUMBER* PIMAGE_LINENUMBER; - -enum : uint { IMAGE_SIZEOF_LINENUMBER = 6 } - -// #ifndef _MAC -align: -// #endif - -struct _IMAGE_BASE_RELOCATION { - DWORD VirtualAddress; - DWORD SizeOfBlock; -} -alias _IMAGE_BASE_RELOCATION IMAGE_BASE_RELOCATION; - -alias IMAGE_BASE_RELOCATION* PIMAGE_BASE_RELOCATION; - -enum : uint { IMAGE_SIZEOF_BASE_RELOCATION = 8 } - -enum : uint { IMAGE_REL_BASED_ABSOLUTE = 0 } -enum : uint { IMAGE_REL_BASED_HIGH = 1 } -enum : uint { IMAGE_REL_BASED_LOW = 2 } -enum : uint { IMAGE_REL_BASED_HIGHLOW = 3 } -enum : uint { IMAGE_REL_BASED_HIGHADJ = 4 } -enum : uint { IMAGE_REL_BASED_MIPS_JMPADDR = 5 } -enum : uint { IMAGE_REL_BASED_MIPS_JMPADDR16 = 9 } -enum : uint { IMAGE_REL_BASED_IA64_IMM64 = 9 } -enum : uint { IMAGE_REL_BASED_DIR64 = 10 } - -enum : uint { IMAGE_ARCHIVE_START_SIZE = 8 } -const char[] IMAGE_ARCHIVE_START = "!\n"; -const char[] IMAGE_ARCHIVE_END = "`\n"; -const char[] IMAGE_ARCHIVE_PAD = "\n"; -const char[] IMAGE_ARCHIVE_LINKER_MEMBER = "/ "; -const char[] IMAGE_ARCHIVE_LONGNAMES_MEMBER = "// "; - -struct _IMAGE_ARCHIVE_MEMBER_HEADER { - BYTE Name[16]; - BYTE Date[12]; - BYTE UserID[6]; - BYTE GroupID[6]; - BYTE Mode[8]; - BYTE Size[10]; - BYTE EndHeader[2]; -} -alias _IMAGE_ARCHIVE_MEMBER_HEADER IMAGE_ARCHIVE_MEMBER_HEADER; -alias _IMAGE_ARCHIVE_MEMBER_HEADER* PIMAGE_ARCHIVE_MEMBER_HEADER; - -enum : uint { IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR = 60 } - -struct _IMAGE_EXPORT_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD Name; - DWORD Base; - DWORD NumberOfFunctions; - DWORD NumberOfNames; - DWORD AddressOfFunctions; - DWORD AddressOfNames; - DWORD AddressOfNameOrdinals; -} -alias _IMAGE_EXPORT_DIRECTORY IMAGE_EXPORT_DIRECTORY; -alias _IMAGE_EXPORT_DIRECTORY* PIMAGE_EXPORT_DIRECTORY; - -struct _IMAGE_IMPORT_BY_NAME { - WORD Hint; - BYTE Name[1]; -} -alias _IMAGE_IMPORT_BY_NAME IMAGE_IMPORT_BY_NAME; -alias _IMAGE_IMPORT_BY_NAME* PIMAGE_IMPORT_BY_NAME; - -align(8): - -struct _IMAGE_THUNK_DATA64 { -union { - ULONGLONG ForwarderString; - ULONGLONG Function; - ULONGLONG Ordinal; - ULONGLONG AddressOfData; -} - -} -alias _IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA64; - -alias IMAGE_THUNK_DATA64* PIMAGE_THUNK_DATA64; - -align: - -struct _IMAGE_THUNK_DATA32 { -union { - DWORD ForwarderString; - DWORD Function; - DWORD Ordinal; - DWORD AddressOfData; -} - -} -alias _IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA32; - -alias IMAGE_THUNK_DATA32* PIMAGE_THUNK_DATA32; - -const ulong IMAGE_ORDINAL_FLAG64 = 0x8000000000000000; -enum : uint { IMAGE_ORDINAL_FLAG32 = 0x80000000 } -ulong IMAGE_ORDINAL64(ulong Ordinal){ return Ordinal & 0xffff; } -uint IMAGE_ORDINAL32(uint Ordinal){ return Ordinal & 0xffff; } -bit IMAGE_SNAP_BY_ORDINAL64(ulong Ordinal){ return (Ordinal & IMAGE_ORDINAL_FLAG64) != 0; } -bit IMAGE_SNAP_BY_ORDINAL32(uint Ordinal){ return (Ordinal & IMAGE_ORDINAL_FLAG32) != 0; } - -extern(Windows) alias VOID function( PVOID DllHandle, DWORD Reason, PVOID Reserved ) PIMAGE_TLS_CALLBACK; - -struct _IMAGE_TLS_DIRECTORY64 { - ULONGLONG StartAddressOfRawData; - ULONGLONG EndAddressOfRawData; - ULONGLONG AddressOfIndex; - ULONGLONG AddressOfCallBacks; - DWORD SizeOfZeroFill; - DWORD Characteristics; -} -alias _IMAGE_TLS_DIRECTORY64 IMAGE_TLS_DIRECTORY64; - -alias IMAGE_TLS_DIRECTORY64* PIMAGE_TLS_DIRECTORY64; - -struct _IMAGE_TLS_DIRECTORY32 { - DWORD StartAddressOfRawData; - DWORD EndAddressOfRawData; - DWORD AddressOfIndex; - DWORD AddressOfCallBacks; - DWORD SizeOfZeroFill; - DWORD Characteristics; -} -alias _IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY32; - -alias IMAGE_TLS_DIRECTORY32* PIMAGE_TLS_DIRECTORY32; - -// #ifdef _WIN64 -// #... -// #... -// ... -// #... -// ... -// #else -alias IMAGE_ORDINAL_FLAG32 IMAGE_ORDINAL_FLAG; -alias IMAGE_ORDINAL32 IMAGE_ORDINAL; -alias IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA; -alias PIMAGE_THUNK_DATA32 PIMAGE_THUNK_DATA; -alias IMAGE_SNAP_BY_ORDINAL32 IMAGE_SNAP_BY_ORDINAL; -alias IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY; -alias PIMAGE_TLS_DIRECTORY32 PIMAGE_TLS_DIRECTORY; -// #endif - -struct _IMAGE_IMPORT_DESCRIPTOR { -union { - DWORD Characteristics; - DWORD OriginalFirstThunk; -} - - DWORD TimeDateStamp; - - DWORD ForwarderChain; - DWORD Name; - DWORD FirstThunk; -} -alias _IMAGE_IMPORT_DESCRIPTOR IMAGE_IMPORT_DESCRIPTOR; - -alias IMAGE_IMPORT_DESCRIPTOR* PIMAGE_IMPORT_DESCRIPTOR; - -struct _IMAGE_BOUND_IMPORT_DESCRIPTOR { - DWORD TimeDateStamp; - WORD OffsetModuleName; - WORD NumberOfModuleForwarderRefs; -} -alias _IMAGE_BOUND_IMPORT_DESCRIPTOR IMAGE_BOUND_IMPORT_DESCRIPTOR; -alias _IMAGE_BOUND_IMPORT_DESCRIPTOR* PIMAGE_BOUND_IMPORT_DESCRIPTOR; - -struct _IMAGE_BOUND_FORWARDER_REF { - DWORD TimeDateStamp; - WORD OffsetModuleName; - WORD Reserved; -} -alias _IMAGE_BOUND_FORWARDER_REF IMAGE_BOUND_FORWARDER_REF; -alias _IMAGE_BOUND_FORWARDER_REF* PIMAGE_BOUND_FORWARDER_REF; - -struct _IMAGE_RESOURCE_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - WORD NumberOfNamedEntries; - WORD NumberOfIdEntries; -} -alias _IMAGE_RESOURCE_DIRECTORY IMAGE_RESOURCE_DIRECTORY; -alias _IMAGE_RESOURCE_DIRECTORY* PIMAGE_RESOURCE_DIRECTORY; - -enum : uint { IMAGE_RESOURCE_NAME_IS_STRING = 0x80000000 } -enum : uint { IMAGE_RESOURCE_DATA_IS_DIRECTORY = 0x80000000 } - -struct _IMAGE_RESOURCE_DIRECTORY_ENTRY { -union { -struct { -// DWORD NameOffset:31; -// DWORD NameIsString:1; -} - - DWORD Name; - WORD Id; -} - -union { - DWORD OffsetToData; -struct { -// DWORD OffsetToDirectory:31; -// DWORD DataIsDirectory:1; -} - -} - -} -alias _IMAGE_RESOURCE_DIRECTORY_ENTRY IMAGE_RESOURCE_DIRECTORY_ENTRY; -alias _IMAGE_RESOURCE_DIRECTORY_ENTRY* PIMAGE_RESOURCE_DIRECTORY_ENTRY; - -struct _IMAGE_RESOURCE_DIRECTORY_STRING { - WORD Length; - CHAR NameString[ 1 ]; -} -alias _IMAGE_RESOURCE_DIRECTORY_STRING IMAGE_RESOURCE_DIRECTORY_STRING; -alias _IMAGE_RESOURCE_DIRECTORY_STRING* PIMAGE_RESOURCE_DIRECTORY_STRING; - -struct _IMAGE_RESOURCE_DIR_STRING_U { - WORD Length; - WCHAR NameString[ 1 ]; -} -alias _IMAGE_RESOURCE_DIR_STRING_U IMAGE_RESOURCE_DIR_STRING_U; -alias _IMAGE_RESOURCE_DIR_STRING_U* PIMAGE_RESOURCE_DIR_STRING_U; - -struct _IMAGE_RESOURCE_DATA_ENTRY { - DWORD OffsetToData; - DWORD Size; - DWORD CodePage; - DWORD Reserved; -} -alias _IMAGE_RESOURCE_DATA_ENTRY IMAGE_RESOURCE_DATA_ENTRY; -alias _IMAGE_RESOURCE_DATA_ENTRY* PIMAGE_RESOURCE_DATA_ENTRY; - -struct _12 { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD GlobalFlagsClear; - DWORD GlobalFlagsSet; - DWORD CriticalSectionDefaultTimeout; - DWORD DeCommitFreeBlockThreshold; - DWORD DeCommitTotalFreeThreshold; - DWORD LockPrefixTable; - DWORD MaximumAllocationSize; - DWORD VirtualMemoryThreshold; - DWORD ProcessHeapFlags; - DWORD ProcessAffinityMask; - WORD CSDVersion; - WORD Reserved1; - DWORD EditList; - DWORD Reserved[ 1 ]; -} -alias _12 IMAGE_LOAD_CONFIG_DIRECTORY32; -alias _12* PIMAGE_LOAD_CONFIG_DIRECTORY32; - -struct _13 { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD GlobalFlagsClear; - DWORD GlobalFlagsSet; - DWORD CriticalSectionDefaultTimeout; - ULONGLONG DeCommitFreeBlockThreshold; - ULONGLONG DeCommitTotalFreeThreshold; - ULONGLONG LockPrefixTable; - ULONGLONG MaximumAllocationSize; - ULONGLONG VirtualMemoryThreshold; - ULONGLONG ProcessAffinityMask; - DWORD ProcessHeapFlags; - WORD CSDVersion; - WORD Reserved1; - ULONGLONG EditList; - DWORD Reserved[ 2 ]; -} -alias _13 IMAGE_LOAD_CONFIG_DIRECTORY64; -alias _13* PIMAGE_LOAD_CONFIG_DIRECTORY64; - -// #ifdef _WIN64 -// ... -// #else -alias IMAGE_LOAD_CONFIG_DIRECTORY32 IMAGE_LOAD_CONFIG_DIRECTORY; -alias PIMAGE_LOAD_CONFIG_DIRECTORY32 PIMAGE_LOAD_CONFIG_DIRECTORY; -// #endif - -struct _IMAGE_CE_RUNTIME_FUNCTION_ENTRY { - DWORD FuncStart; -// DWORD PrologLen : 8; -// DWORD FuncLen : 22; -// DWORD ThirtyTwoBit : 1; -// DWORD ExceptionFlag : 1; -} -alias _IMAGE_CE_RUNTIME_FUNCTION_ENTRY IMAGE_CE_RUNTIME_FUNCTION_ENTRY; -alias _IMAGE_CE_RUNTIME_FUNCTION_ENTRY* PIMAGE_CE_RUNTIME_FUNCTION_ENTRY; - -struct _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY { - ULONGLONG BeginAddress; - ULONGLONG EndAddress; - ULONGLONG ExceptionHandler; - ULONGLONG HandlerData; - ULONGLONG PrologEndAddress; -} -alias _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY; -alias _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY* PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY; - -struct _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY { - DWORD BeginAddress; - DWORD EndAddress; - DWORD ExceptionHandler; - DWORD HandlerData; - DWORD PrologEndAddress; -} -alias _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY; -alias _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY* PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY; - -struct _IMAGE_RUNTIME_FUNCTION_ENTRY { - DWORD BeginAddress; - DWORD EndAddress; - DWORD UnwindInfoAddress; -} -alias _IMAGE_RUNTIME_FUNCTION_ENTRY* _PIMAGE_RUNTIME_FUNCTION_ENTRY; - -alias _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_IA64_RUNTIME_FUNCTION_ENTRY; -alias _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY; - -// #if defined(_AXP64_) - -// ... - -// #elif defined(_ALPHA_) - -// ... - -// #else - -alias _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY; -alias _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY; - -// #endif - -struct _IMAGE_DEBUG_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD Type; - DWORD SizeOfData; - DWORD AddressOfRawData; - DWORD PointerToRawData; -} -alias _IMAGE_DEBUG_DIRECTORY IMAGE_DEBUG_DIRECTORY; -alias _IMAGE_DEBUG_DIRECTORY* PIMAGE_DEBUG_DIRECTORY; - -enum : uint { IMAGE_DEBUG_TYPE_UNKNOWN = 0 } -enum : uint { IMAGE_DEBUG_TYPE_COFF = 1 } -enum : uint { IMAGE_DEBUG_TYPE_CODEVIEW = 2 } -enum : uint { IMAGE_DEBUG_TYPE_FPO = 3 } -enum : uint { IMAGE_DEBUG_TYPE_MISC = 4 } -enum : uint { IMAGE_DEBUG_TYPE_EXCEPTION = 5 } -enum : uint { IMAGE_DEBUG_TYPE_FIXUP = 6 } -enum : uint { IMAGE_DEBUG_TYPE_OMAP_TO_SRC = 7 } -enum : uint { IMAGE_DEBUG_TYPE_OMAP_FROM_SRC = 8 } -enum : uint { IMAGE_DEBUG_TYPE_BORLAND = 9 } -enum : uint { IMAGE_DEBUG_TYPE_RESERVED10 = 10 } -enum : uint { IMAGE_DEBUG_TYPE_CLSID = 11 } - -struct _IMAGE_COFF_SYMBOLS_HEADER { - DWORD NumberOfSymbols; - DWORD LvaToFirstSymbol; - DWORD NumberOfLinenumbers; - DWORD LvaToFirstLinenumber; - DWORD RvaToFirstByteOfCode; - DWORD RvaToLastByteOfCode; - DWORD RvaToFirstByteOfData; - DWORD RvaToLastByteOfData; -} -alias _IMAGE_COFF_SYMBOLS_HEADER IMAGE_COFF_SYMBOLS_HEADER; -alias _IMAGE_COFF_SYMBOLS_HEADER* PIMAGE_COFF_SYMBOLS_HEADER; - -enum : uint { FRAME_FPO = 0 } -enum : uint { FRAME_TRAP = 1 } -enum : uint { FRAME_TSS = 2 } -enum : uint { FRAME_NONFPO = 3 } - -struct _FPO_DATA { - DWORD ulOffStart; - DWORD cbProcSize; - DWORD cdwLocals; - WORD cdwParams; -// WORD cbProlog : 8; -// WORD cbRegs : 3; -// WORD fHasSEH : 1; -// WORD fUseBP : 1; -// WORD reserved : 1; -// WORD cbFrame : 2; -} -alias _FPO_DATA FPO_DATA; -alias _FPO_DATA* PFPO_DATA; - -enum : uint { SIZEOF_RFPO_DATA = 16 } - -enum : uint { IMAGE_DEBUG_MISC_EXENAME = 1 } - -struct _IMAGE_DEBUG_MISC { - DWORD DataType; - DWORD Length; - - BOOLEAN Unicode; - BYTE Reserved[ 3 ]; - BYTE Data[ 1 ]; -} -alias _IMAGE_DEBUG_MISC IMAGE_DEBUG_MISC; -alias _IMAGE_DEBUG_MISC* PIMAGE_DEBUG_MISC; - -struct _IMAGE_FUNCTION_ENTRY { - DWORD StartingAddress; - DWORD EndingAddress; - DWORD EndOfPrologue; -} -alias _IMAGE_FUNCTION_ENTRY IMAGE_FUNCTION_ENTRY; -alias _IMAGE_FUNCTION_ENTRY* PIMAGE_FUNCTION_ENTRY; - -struct _IMAGE_FUNCTION_ENTRY64 { - ULONGLONG StartingAddress; - ULONGLONG EndingAddress; -union { - ULONGLONG EndOfPrologue; - ULONGLONG UnwindInfoAddress; -} - -} -alias _IMAGE_FUNCTION_ENTRY64 IMAGE_FUNCTION_ENTRY64; -alias _IMAGE_FUNCTION_ENTRY64* PIMAGE_FUNCTION_ENTRY64; - -struct _IMAGE_SEPARATE_DEBUG_HEADER { - WORD Signature; - WORD Flags; - WORD Machine; - WORD Characteristics; - DWORD TimeDateStamp; - DWORD CheckSum; - DWORD ImageBase; - DWORD SizeOfImage; - DWORD NumberOfSections; - DWORD ExportedNamesSize; - DWORD DebugDirectorySize; - DWORD SectionAlignment; - DWORD Reserved[2]; -} -alias _IMAGE_SEPARATE_DEBUG_HEADER IMAGE_SEPARATE_DEBUG_HEADER; -alias _IMAGE_SEPARATE_DEBUG_HEADER* PIMAGE_SEPARATE_DEBUG_HEADER; - -struct _NON_PAGED_DEBUG_INFO { - WORD Signature; - WORD Flags; - DWORD Size; - WORD Machine; - WORD Characteristics; - DWORD TimeDateStamp; - DWORD CheckSum; - DWORD SizeOfImage; - ULONGLONG ImageBase; - -} -alias _NON_PAGED_DEBUG_INFO NON_PAGED_DEBUG_INFO; -alias _NON_PAGED_DEBUG_INFO* PNON_PAGED_DEBUG_INFO; - -// #ifndef _MAC -enum : uint { IMAGE_SEPARATE_DEBUG_SIGNATURE = 0x4944 } -enum : uint { NON_PAGED_DEBUG_SIGNATURE = 0x494E } -// #else -// #... -// #... -// #endif - -enum : uint { IMAGE_SEPARATE_DEBUG_FLAGS_MASK = 0x8000 } -enum : uint { IMAGE_SEPARATE_DEBUG_MISMATCH = 0x8000 } - -struct _ImageArchitectureHeader { -// unsigned int AmaskValue: 1; - -// int :7; -// unsigned int AmaskShift: 8; -// int :16; - DWORD FirstEntryRVA; -} -alias _ImageArchitectureHeader IMAGE_ARCHITECTURE_HEADER; -alias _ImageArchitectureHeader* PIMAGE_ARCHITECTURE_HEADER; - -struct _ImageArchitectureEntry { - DWORD FixupInstRVA; - DWORD NewInst; -} -alias _ImageArchitectureEntry IMAGE_ARCHITECTURE_ENTRY; -alias _ImageArchitectureEntry* PIMAGE_ARCHITECTURE_ENTRY; - -align: - -enum : uint { IMPORT_OBJECT_HDR_SIG2 = 0xffff } - -struct IMPORT_OBJECT_HEADER { - WORD Sig1; - WORD Sig2; - WORD Version; - WORD Machine; - DWORD TimeDateStamp; - DWORD SizeOfData; - -union { - WORD Ordinal; - WORD Hint; -} - -// WORD Type : 2; -// WORD NameType : 3; -// WORD Reserved : 11; -} - -alias int IMPORT_OBJECT_TYPE; -enum { - IMPORT_OBJECT_CODE = 0, - IMPORT_OBJECT_DATA = 1, - IMPORT_OBJECT_CONST = 2, -} - -alias int IMPORT_OBJECT_NAME_TYPE; -enum { - IMPORT_OBJECT_ORDINAL = 0, - IMPORT_OBJECT_NAME = 1, - IMPORT_OBJECT_NAME_NO_PREFIX = 2, - IMPORT_OBJECT_NAME_UNDECORATE = 3, - -} - -// #ifndef __IMAGE_COR20_HEADER_DEFINED__ -// #define __IMAGE_COR20_HEADER_DEFINED__ - -alias int ReplacesCorHdrNumericDefines; -enum { - - COMIMAGE_FLAGS_ILONLY = 0x00000001, - COMIMAGE_FLAGS_32BITREQUIRED = 0x00000002, - COMIMAGE_FLAGS_IL_LIBRARY = 0x00000004, - COMIMAGE_FLAGS_TRACKDEBUGDATA = 0x00010000, - - COR_VERSION_MAJOR_V2 = 2, - COR_VERSION_MAJOR = COR_VERSION_MAJOR_V2, - COR_VERSION_MINOR = 0, - COR_DELETED_NAME_LENGTH = 8, - COR_VTABLEGAP_NAME_LENGTH = 8, - - NATIVE_TYPE_MAX_CB = 1, - COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE = 0xFF, - - IMAGE_COR_MIH_METHODRVA = 0x01, - IMAGE_COR_MIH_EHRVA = 0x02, - IMAGE_COR_MIH_BASICBLOCK = 0x08, - - COR_VTABLE_32BIT = 0x01, - COR_VTABLE_64BIT = 0x02, - COR_VTABLE_FROM_UNMANAGED = 0x04, - COR_VTABLE_CALL_MOST_DERIVED = 0x10, - - IMAGE_COR_EATJ_THUNK_SIZE = 32, - - MAX_CLASS_NAME = 1024, - MAX_PACKAGE_NAME = 1024, -} - -struct IMAGE_COR20_HEADER { - - DWORD cb; - WORD MajorRuntimeVersion; - WORD MinorRuntimeVersion; - IMAGE_DATA_DIRECTORY MetaData; - DWORD Flags; - DWORD EntryPointToken; - IMAGE_DATA_DIRECTORY Resources; - IMAGE_DATA_DIRECTORY StrongNameSignature; - IMAGE_DATA_DIRECTORY CodeManagerTable; - IMAGE_DATA_DIRECTORY VTableFixups; - IMAGE_DATA_DIRECTORY ExportAddressTableJumps; - IMAGE_DATA_DIRECTORY ManagedNativeHeader; -} -alias IMAGE_COR20_HEADER* PIMAGE_COR20_HEADER; - -// #endif // __IMAGE_COR20_HEADER_DEFINED__ - -// #ifdef _MAC -// #ifndef _INC_STRING -// #... -// #endif /* _INC_STRING */ -// #else -// #include -// #endif // _MAC - -// #ifndef _SLIST_HEADER_ -// #define _SLIST_HEADER_ - -alias SINGLE_LIST_ENTRY SLIST_ENTRY; -alias _SINGLE_LIST_ENTRY _SLIST_ENTRY; -alias PSINGLE_LIST_ENTRY PSLIST_ENTRY; - -// #if defined(_WIN64) - -// ... - -// ... - -// #else - -union _SLIST_HEADER { - ULONGLONG Alignment; -struct { - SLIST_ENTRY Next; - WORD Depth; - WORD Sequence; -} - -} -alias _SLIST_HEADER SLIST_HEADER; -alias _SLIST_HEADER* PSLIST_HEADER; - -// #endif - -// #endif - -extern(Windows) export VOID RtlInitializeSListHead( - PSLIST_HEADER ListHead); - -extern(Windows) export PSLIST_ENTRY RtlFirstEntrySList( - SLIST_HEADER *ListHead); - -extern(Windows) export PSLIST_ENTRY RtlInterlockedPopEntrySList( - PSLIST_HEADER ListHead); - -extern(Windows) export PSLIST_ENTRY RtlInterlockedPushEntrySList( - PSLIST_HEADER ListHead, - PSLIST_ENTRY ListEntry); - -extern(Windows) export PSLIST_ENTRY RtlInterlockedFlushSList( - PSLIST_HEADER ListHead); - -extern(Windows) export WORD RtlQueryDepthSList( - PSLIST_HEADER ListHead); - -enum : uint { HEAP_NO_SERIALIZE = 0x00000001 } -enum : uint { HEAP_GROWABLE = 0x00000002 } -enum : uint { HEAP_GENERATE_EXCEPTIONS = 0x00000004 } -enum : uint { HEAP_ZERO_MEMORY = 0x00000008 } -enum : uint { HEAP_REALLOC_IN_PLACE_ONLY = 0x00000010 } -enum : uint { HEAP_TAIL_CHECKING_ENABLED = 0x00000020 } -enum : uint { HEAP_FREE_CHECKING_ENABLED = 0x00000040 } -enum : uint { HEAP_DISABLE_COALESCE_ON_FREE = 0x00000080 } -enum : uint { HEAP_CREATE_ALIGN_16 = 0x00010000 } -enum : uint { HEAP_CREATE_ENABLE_TRACING = 0x00020000 } -enum : uint { HEAP_MAXIMUM_TAG = 0x0FFF } -enum : uint { HEAP_PSEUDO_TAG_FLAG = 0x8000 } -enum : uint { HEAP_TAG_SHIFT = 18 } -uint HEAP_MAKE_TAG_FLAGS(uint b, uint o){ return b + (o << 18); } - -enum : uint { IS_TEXT_UNICODE_ASCII16 = 0x0001 } -enum : uint { IS_TEXT_UNICODE_REVERSE_ASCII16 = 0x0010 } - -enum : uint { IS_TEXT_UNICODE_STATISTICS = 0x0002 } -enum : uint { IS_TEXT_UNICODE_REVERSE_STATISTICS = 0x0020 } - -enum : uint { IS_TEXT_UNICODE_CONTROLS = 0x0004 } -enum : uint { IS_TEXT_UNICODE_REVERSE_CONTROLS = 0x0040 } - -enum : uint { IS_TEXT_UNICODE_SIGNATURE = 0x0008 } -enum : uint { IS_TEXT_UNICODE_REVERSE_SIGNATURE = 0x0080 } - -enum : uint { IS_TEXT_UNICODE_ILLEGAL_CHARS = 0x0100 } -enum : uint { IS_TEXT_UNICODE_ODD_LENGTH = 0x0200 } -enum : uint { IS_TEXT_UNICODE_DBCS_LEADBYTE = 0x0400 } -enum : uint { IS_TEXT_UNICODE_NULL_BYTES = 0x1000 } - -enum : uint { IS_TEXT_UNICODE_UNICODE_MASK = 0x000F } -enum : uint { IS_TEXT_UNICODE_REVERSE_MASK = 0x00F0 } -enum : uint { IS_TEXT_UNICODE_NOT_UNICODE_MASK = 0x0F00 } -enum : uint { IS_TEXT_UNICODE_NOT_ASCII_MASK = 0xF000 } - -enum : uint { COMPRESSION_FORMAT_NONE = 0x0000 } -enum : uint { COMPRESSION_FORMAT_DEFAULT = 0x0001 } -enum : uint { COMPRESSION_FORMAT_LZNT1 = 0x0002 } -enum : uint { COMPRESSION_ENGINE_STANDARD = 0x0000 } -enum : uint { COMPRESSION_ENGINE_MAXIMUM = 0x0100 } -enum : uint { COMPRESSION_ENGINE_HIBER = 0x0200 } - -extern(Windows) export SIZE_T RtlCompareMemory( - VOID *Source1, - VOID *Source2, - SIZE_T Length); - -// #if defined(_M_AMD64) || defined(_M_IA64) - -// #... -// ... - -// ... - -// #if !defined(_M_AMD64) - -// ... - -// #endif - -// ... - -// ... - -// ... - -// #else - -bit RtlEqualMemory(void* x, void* y, uint len){ return memcmp(x, y, len) == 0; } -void RtlMoveMemory(void* d, void* s, uint len){ memmove(d, s, len); } -void RtlCopyMemory(void* d, void* s, uint len){ memcpy(d, s, len); } -void RtlFillMemory(void* d, uint len, ubyte f){ memset(d, f, len); } -void RtlZeroMemory(void* d, uint len){ memset(d, 0, len); } - -// #endif - -struct _MESSAGE_RESOURCE_ENTRY { - WORD Length; - WORD Flags; - BYTE Text[ 1 ]; -} -alias _MESSAGE_RESOURCE_ENTRY MESSAGE_RESOURCE_ENTRY; -alias _MESSAGE_RESOURCE_ENTRY* PMESSAGE_RESOURCE_ENTRY; - -enum : uint { MESSAGE_RESOURCE_UNICODE = 0x0001 } - -struct _MESSAGE_RESOURCE_BLOCK { - DWORD LowId; - DWORD HighId; - DWORD OffsetToEntries; -} -alias _MESSAGE_RESOURCE_BLOCK MESSAGE_RESOURCE_BLOCK; -alias _MESSAGE_RESOURCE_BLOCK* PMESSAGE_RESOURCE_BLOCK; - -struct _MESSAGE_RESOURCE_DATA { - DWORD NumberOfBlocks; - MESSAGE_RESOURCE_BLOCK Blocks[ 1 ]; -} -alias _MESSAGE_RESOURCE_DATA MESSAGE_RESOURCE_DATA; -alias _MESSAGE_RESOURCE_DATA* PMESSAGE_RESOURCE_DATA; - -struct _OSVERSIONINFOA { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - CHAR szCSDVersion[ 128 ]; -} -alias _OSVERSIONINFOA OSVERSIONINFOA; -alias _OSVERSIONINFOA* POSVERSIONINFOA; -alias _OSVERSIONINFOA* LPOSVERSIONINFOA; - -struct _OSVERSIONINFOW { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - WCHAR szCSDVersion[ 128 ]; -} -alias _OSVERSIONINFOW OSVERSIONINFOW; -alias _OSVERSIONINFOW* POSVERSIONINFOW; -alias _OSVERSIONINFOW* LPOSVERSIONINFOW; -alias _OSVERSIONINFOW RTL_OSVERSIONINFOW; -alias _OSVERSIONINFOW* PRTL_OSVERSIONINFOW; - -// #ifdef UNICODE -alias OSVERSIONINFOW OSVERSIONINFO; -alias POSVERSIONINFOW POSVERSIONINFO; -alias LPOSVERSIONINFOW LPOSVERSIONINFO; -// #else -// ... -// #endif // UNICODE - -struct _OSVERSIONINFOEXA { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - CHAR szCSDVersion[ 128 ]; - WORD wServicePackMajor; - WORD wServicePackMinor; - WORD wSuiteMask; - BYTE wProductType; - BYTE wReserved; -} -alias _OSVERSIONINFOEXA OSVERSIONINFOEXA; -alias _OSVERSIONINFOEXA* POSVERSIONINFOEXA; -alias _OSVERSIONINFOEXA* LPOSVERSIONINFOEXA; - -struct _OSVERSIONINFOEXW { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - WCHAR szCSDVersion[ 128 ]; - WORD wServicePackMajor; - WORD wServicePackMinor; - WORD wSuiteMask; - BYTE wProductType; - BYTE wReserved; -} -alias _OSVERSIONINFOEXW OSVERSIONINFOEXW; -alias _OSVERSIONINFOEXW* POSVERSIONINFOEXW; -alias _OSVERSIONINFOEXW* LPOSVERSIONINFOEXW; -alias _OSVERSIONINFOEXW RTL_OSVERSIONINFOEXW; -alias _OSVERSIONINFOEXW* PRTL_OSVERSIONINFOEXW; - -// #ifdef UNICODE -alias OSVERSIONINFOEXW OSVERSIONINFOEX; -alias POSVERSIONINFOEXW POSVERSIONINFOEX; -alias LPOSVERSIONINFOEXW LPOSVERSIONINFOEX; -// #else -// ... -// #endif // UNICODE - -enum : uint { VER_EQUAL = 1 } -enum : uint { VER_GREATER = 2 } -enum : uint { VER_GREATER_EQUAL = 3 } -enum : uint { VER_LESS = 4 } -enum : uint { VER_LESS_EQUAL = 5 } -enum : uint { VER_AND = 6 } -enum : uint { VER_OR = 7 } - -enum : uint { VER_CONDITION_MASK = 7 } -enum : uint { VER_NUM_BITS_PER_CONDITION_MASK = 3 } - -enum : uint { VER_MINORVERSION = 0x0000001 } -enum : uint { VER_MAJORVERSION = 0x0000002 } -enum : uint { VER_BUILDNUMBER = 0x0000004 } -enum : uint { VER_PLATFORMID = 0x0000008 } -enum : uint { VER_SERVICEPACKMINOR = 0x0000010 } -enum : uint { VER_SERVICEPACKMAJOR = 0x0000020 } -enum : uint { VER_SUITENAME = 0x0000040 } -enum : uint { VER_PRODUCT_TYPE = 0x0000080 } - -enum : uint { VER_NT_WORKSTATION = 0x0000001 } -enum : uint { VER_NT_DOMAIN_CONTROLLER = 0x0000002 } -enum : uint { VER_NT_SERVER = 0x0000003 } - -enum : uint { VER_PLATFORM_WIN32s = 0 } -enum : uint { VER_PLATFORM_WIN32_WINDOWS = 1 } -enum : uint { VER_PLATFORM_WIN32_NT = 2 } - -// #define VER_SET_CONDITION(_m_,_t_,_c_) ((_m_)=VerSetConditionMask((_m_),(_t_),(_c_))) - -extern(Windows) export ULONGLONG VerSetConditionMask( - ULONGLONG ConditionMask, - DWORD TypeMask, - BYTE Condition); - -struct _RTL_CRITICAL_SECTION_DEBUG { - WORD Type; - WORD CreatorBackTraceIndex; - _RTL_CRITICAL_SECTION *CriticalSection; - LIST_ENTRY ProcessLocksList; - DWORD EntryCount; - DWORD ContentionCount; - DWORD Spare[ 2 ]; -} -alias _RTL_CRITICAL_SECTION_DEBUG RTL_CRITICAL_SECTION_DEBUG; -alias _RTL_CRITICAL_SECTION_DEBUG* PRTL_CRITICAL_SECTION_DEBUG; -alias _RTL_CRITICAL_SECTION_DEBUG RTL_RESOURCE_DEBUG; -alias _RTL_CRITICAL_SECTION_DEBUG* PRTL_RESOURCE_DEBUG; - -enum : uint { RTL_CRITSECT_TYPE = 0 } -enum : uint { RTL_RESOURCE_TYPE = 1 } - -struct _RTL_CRITICAL_SECTION { - PRTL_CRITICAL_SECTION_DEBUG DebugInfo; - - LONG LockCount; - LONG RecursionCount; - HANDLE OwningThread; - HANDLE LockSemaphore; - ULONG_PTR SpinCount; -} -alias _RTL_CRITICAL_SECTION RTL_CRITICAL_SECTION; -alias _RTL_CRITICAL_SECTION* PRTL_CRITICAL_SECTION; - -extern(Windows) alias VOID function( PWSTR DllName, PVOID DllBase, SIZE_T DllSize, PVOID Reserved ) RTL_VERIFIER_DLL_LOAD_CALLBACK; - -extern(Windows) alias VOID function( PWSTR DllName, PVOID DllBase, SIZE_T DllSize, PVOID Reserved ) RTL_VERIFIER_DLL_UNLOAD_CALLBACK; - -struct _RTL_VERIFIER_THUNK_DESCRIPTOR { - - PCHAR ThunkName; - PVOID ThunkOldAddress; - PVOID ThunkNewAddress; -} -alias _RTL_VERIFIER_THUNK_DESCRIPTOR RTL_VERIFIER_THUNK_DESCRIPTOR; -alias _RTL_VERIFIER_THUNK_DESCRIPTOR* PRTL_VERIFIER_THUNK_DESCRIPTOR; - -struct _RTL_VERIFIER_DLL_DESCRIPTOR { - - PWCHAR DllName; - DWORD DllFlags; - PVOID DllAddress; - PRTL_VERIFIER_THUNK_DESCRIPTOR DllThunks; -} -alias _RTL_VERIFIER_DLL_DESCRIPTOR RTL_VERIFIER_DLL_DESCRIPTOR; -alias _RTL_VERIFIER_DLL_DESCRIPTOR* PRTL_VERIFIER_DLL_DESCRIPTOR; - -struct _RTL_VERIFIER_PROVIDER_DESCRIPTOR { - - DWORD Length; - PRTL_VERIFIER_DLL_DESCRIPTOR ProviderDlls; - RTL_VERIFIER_DLL_LOAD_CALLBACK ProviderDllLoadCallback; - RTL_VERIFIER_DLL_UNLOAD_CALLBACK ProviderDllUnloadCallback; - - PWSTR VerifierImage; - DWORD VerifierFlags; - DWORD VerifierDebug; -} -alias _RTL_VERIFIER_PROVIDER_DESCRIPTOR RTL_VERIFIER_PROVIDER_DESCRIPTOR; -alias _RTL_VERIFIER_PROVIDER_DESCRIPTOR* PRTL_VERIFIER_PROVIDER_DESCRIPTOR; - -enum : uint { RTL_VRF_FLG_FULL_PAGE_HEAP = 0x0001 } -enum : uint { RTL_VRF_FLG_LOCK_CHECKS = 0x0002 } -enum : uint { RTL_VRF_FLG_HANDLE_CHECKS = 0x0004 } -enum : uint { RTL_VRF_FLG_STACK_CHECKS = 0x0008 } -enum : uint { RTL_VRF_FLG_APPCOMPAT_CHECKS = 0x0010 } - -enum : uint { APPLICATION_VERIFIER_INTERNAL_ERROR = 0x80000000 } -enum : uint { APPLICATION_VERIFIER_INTERNAL_WARNING = 0x40000000 } -enum : uint { APPLICATION_VERIFIER_NO_BREAK = 0x20000000 } -enum : uint { APPLICATION_VERIFIER_RESERVED_BIT_28 = 0x10000000 } - -enum : uint { APPLICATION_VERIFIER_UNKNOWN_ERROR = 0x0001 } -enum : uint { APPLICATION_VERIFIER_ACCESS_VIOLATION = 0x0002 } -enum : uint { APPLICATION_VERIFIER_UNSYNCHRONIZED_ACCESS = 0x0003 } -enum : uint { APPLICATION_VERIFIER_EXTREME_SIZE_REQUEST = 0x0004 } -enum : uint { APPLICATION_VERIFIER_BAD_HEAP_HANDLE = 0x0005 } -enum : uint { APPLICATION_VERIFIER_SWITCHED_HEAP_HANDLE = 0x0006 } -enum : uint { APPLICATION_VERIFIER_DOUBLE_FREE = 0x0007 } -enum : uint { APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK = 0x0008 } -enum : uint { APPLICATION_VERIFIER_DESTROY_PROCESS_HEAP = 0x0009 } -enum : uint { APPLICATION_VERIFIER_UNEXPECTED_EXCEPTION = 0x000A } -enum : uint { APPLICATION_VERIFIER_STACK_OVERFLOW = 0x000B } - -enum : uint { APPLICATION_VERIFIER_TERMINATE_THREAD_CALL = 0x0100 } - -enum : uint { APPLICATION_VERIFIER_EXIT_THREAD_OWNS_LOCK = 0x0200 } -enum : uint { APPLICATION_VERIFIER_LOCK_IN_UNLOADED_DLL = 0x0201 } -enum : uint { APPLICATION_VERIFIER_LOCK_IN_FREED_HEAP = 0x0202 } -enum : uint { APPLICATION_VERIFIER_LOCK_DOUBLE_INITIALIZE = 0x0203 } -enum : uint { APPLICATION_VERIFIER_LOCK_IN_FREED_MEMORY = 0x0204 } -enum : uint { APPLICATION_VERIFIER_LOCK_CORRUPTED = 0x0205 } -enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_OWNER = 0x0206 } -enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_RECURSION_COUNT = 0x0207 } -enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_LOCK_COUNT = 0x0208 } -enum : uint { APPLICATION_VERIFIER_LOCK_OVER_RELEASED = 0x0209 } -enum : uint { APPLICATION_VERIFIER_LOCK_NOT_INITIALIZED = 0x0210 } - -enum : uint { APPLICATION_VERIFIER_INVALID_HANDLE = 0x0300 } - -// #define VERIFIER_STOP(Code, Msg, P1, S1, P2, S2, P3, S3, P4, S4) { RtlApplicationVerifierStop ((Code), (Msg), (ULONG_PTR)(P1),(S1), (ULONG_PTR)(P2),(S2), (ULONG_PTR)(P3),(S3), (ULONG_PTR)(P4),(S4)); } - -extern(Windows) export VOID RtlApplicationVerifierStop( - ULONG_PTR Code, - PCHAR Message, - ULONG_PTR Param1, PCHAR Description1, - ULONG_PTR Param2, PCHAR Description2, - ULONG_PTR Param3, PCHAR Description3, - ULONG_PTR Param4, PCHAR Description4); - -extern(Windows) alias LONG function( _EXCEPTION_POINTERS *ExceptionInfo ) PVECTORED_EXCEPTION_HANDLER; -enum : uint { SEF_DACL_AUTO_INHERIT = 0x01 } -enum : uint { SEF_SACL_AUTO_INHERIT = 0x02 } -enum : uint { SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT = 0x04 } -enum : uint { SEF_AVOID_PRIVILEGE_CHECK = 0x08 } -enum : uint { SEF_AVOID_OWNER_CHECK = 0x10 } -enum : uint { SEF_DEFAULT_OWNER_FROM_PARENT = 0x20 } -enum : uint { SEF_DEFAULT_GROUP_FROM_PARENT = 0x40 } - -alias int _HEAP_INFORMATION_CLASS; -enum { - - HeapCompatibilityInformation, - -} -alias _HEAP_INFORMATION_CLASS HEAP_INFORMATION_CLASS; - -extern(Windows) export DWORD RtlSetHeapInformation( - PVOID HeapHandle, - HEAP_INFORMATION_CLASS HeapInformationClass, - PVOID HeapInformation , - SIZE_T HeapInformationLength ); - -extern(Windows) export DWORD RtlQueryHeapInformation( - PVOID HeapHandle, - HEAP_INFORMATION_CLASS HeapInformationClass, - PVOID HeapInformation , - SIZE_T HeapInformationLength , - PSIZE_T ReturnLength ); - -enum : uint { WT_EXECUTEDEFAULT = 0x00000000 } -enum : uint { WT_EXECUTEINIOTHREAD = 0x00000001 } -enum : uint { WT_EXECUTEINUITHREAD = 0x00000002 } -enum : uint { WT_EXECUTEINWAITTHREAD = 0x00000004 } -enum : uint { WT_EXECUTEONLYONCE = 0x00000008 } -enum : uint { WT_EXECUTEINTIMERTHREAD = 0x00000020 } -enum : uint { WT_EXECUTELONGFUNCTION = 0x00000010 } -enum : uint { WT_EXECUTEINPERSISTENTIOTHREAD = 0x00000040 } -enum : uint { WT_EXECUTEINPERSISTENTTHREAD = 0x00000080 } -// #define WT_SET_MAX_THREADPOOL_THREADS(Flags, Limit) ((Flags) |= (Limit)<<16) -extern(Windows) alias VOID function(PVOID, BOOLEAN ) WAITORTIMERCALLBACKFUNC; -extern(Windows) alias VOID function(PVOID ) WORKERCALLBACKFUNC; -extern(Windows) alias VOID function(DWORD , PVOID, PVOID) APC_CALLBACK_FUNCTION; -enum : uint { WT_EXECUTEINLONGTHREAD = 0x00000010 } -enum : uint { WT_EXECUTEDELETEWAIT = 0x00000008 } - -alias int _ACTIVATION_CONTEXT_INFO_CLASS; -enum { - ActivationContextBasicInformation = 1, - ActivationContextDetailedInformation = 2, - AssemblyDetailedInformationInActivationContext = 3, - FileInformationInAssemblyOfAssemblyInActivationContext = 4, - MaxActivationContextInfoClass, - - AssemblyDetailedInformationInActivationContxt = 3, - FileInformationInAssemblyOfAssemblyInActivationContxt = 4, -} -alias _ACTIVATION_CONTEXT_INFO_CLASS ACTIVATION_CONTEXT_INFO_CLASS; - -alias ACTIVATION_CONTEXT_INFO_CLASS ACTIVATIONCONTEXTINFOCLASS; - -struct _ACTIVATION_CONTEXT_QUERY_INDEX { - DWORD ulAssemblyIndex; - DWORD ulFileIndexInAssembly; -} -alias _ACTIVATION_CONTEXT_QUERY_INDEX ACTIVATION_CONTEXT_QUERY_INDEX; -alias _ACTIVATION_CONTEXT_QUERY_INDEX* PACTIVATION_CONTEXT_QUERY_INDEX; - -alias _ACTIVATION_CONTEXT_QUERY_INDEX* PCACTIVATION_CONTEXT_QUERY_INDEX; - -enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_NONE = 1 } -enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_WIN32_FILE = 2 } -enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_URL = 3 } -enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_ASSEMBLYREF = 4 } - -struct _ASSEMBLY_FILE_DETAILED_INFORMATION { - DWORD ulFlags; - DWORD ulFilenameLength; - DWORD ulPathLength; - PCWSTR lpFileName; - PCWSTR lpFilePath; -} -alias _ASSEMBLY_FILE_DETAILED_INFORMATION ASSEMBLY_FILE_DETAILED_INFORMATION; -alias _ASSEMBLY_FILE_DETAILED_INFORMATION* PASSEMBLY_FILE_DETAILED_INFORMATION; - -alias ASSEMBLY_FILE_DETAILED_INFORMATION* PCASSEMBLY_FILE_DETAILED_INFORMATION; - -alias _ASSEMBLY_FILE_DETAILED_INFORMATION _ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION; -alias ASSEMBLY_FILE_DETAILED_INFORMATION ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION; -alias PASSEMBLY_FILE_DETAILED_INFORMATION PASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION; -alias PCASSEMBLY_FILE_DETAILED_INFORMATION PCASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION; - -struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION { - DWORD ulFlags; - DWORD ulEncodedAssemblyIdentityLength; - DWORD ulManifestPathType; - DWORD ulManifestPathLength; - LARGE_INTEGER liManifestLastWriteTime; - DWORD ulPolicyPathType; - DWORD ulPolicyPathLength; - LARGE_INTEGER liPolicyLastWriteTime; - DWORD ulMetadataSatelliteRosterIndex; - DWORD ulManifestVersionMajor; - DWORD ulManifestVersionMinor; - DWORD ulPolicyVersionMajor; - DWORD ulPolicyVersionMinor; - DWORD ulAssemblyDirectoryNameLength; - - PCWSTR lpAssemblyEncodedAssemblyIdentity; - PCWSTR lpAssemblyManifestPath; - PCWSTR lpAssemblyPolicyPath; - PCWSTR lpAssemblyDirectoryName; - DWORD ulFileCount; -} -alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; -alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; - -alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; - -struct _ACTIVATION_CONTEXT_DETAILED_INFORMATION { - DWORD dwFlags; - DWORD ulFormatVersion; - DWORD ulAssemblyCount; - DWORD ulRootManifestPathType; - DWORD ulRootManifestPathChars; - DWORD ulRootConfigurationPathType; - DWORD ulRootConfigurationPathChars; - DWORD ulAppDirPathType; - DWORD ulAppDirPathChars; - PCWSTR lpRootManifestPath; - PCWSTR lpRootConfigurationPath; - PCWSTR lpAppDirPath; -} -alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION ACTIVATION_CONTEXT_DETAILED_INFORMATION; -alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION* PACTIVATION_CONTEXT_DETAILED_INFORMATION; - -alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION* PCACTIVATION_CONTEXT_DETAILED_INFORMATION; - -enum : uint { DLL_PROCESS_ATTACH = 1 } -enum : uint { DLL_THREAD_ATTACH = 2 } -enum : uint { DLL_THREAD_DETACH = 3 } -enum : uint { DLL_PROCESS_DETACH = 0 } -enum : uint { DLL_PROCESS_VERIFIER = 4 } - -enum : uint { EVENTLOG_SEQUENTIAL_READ = 0x0001 } -enum : uint { EVENTLOG_SEEK_READ = 0x0002 } -enum : uint { EVENTLOG_FORWARDS_READ = 0x0004 } -enum : uint { EVENTLOG_BACKWARDS_READ = 0x0008 } - -enum : uint { EVENTLOG_SUCCESS = 0x0000 } -enum : uint { EVENTLOG_ERROR_TYPE = 0x0001 } -enum : uint { EVENTLOG_WARNING_TYPE = 0x0002 } -enum : uint { EVENTLOG_INFORMATION_TYPE = 0x0004 } -enum : uint { EVENTLOG_AUDIT_SUCCESS = 0x0008 } -enum : uint { EVENTLOG_AUDIT_FAILURE = 0x0010 } - -enum : uint { EVENTLOG_START_PAIRED_EVENT = 0x0001 } -enum : uint { EVENTLOG_END_PAIRED_EVENT = 0x0002 } -enum : uint { EVENTLOG_END_ALL_PAIRED_EVENTS = 0x0004 } -enum : uint { EVENTLOG_PAIRED_EVENT_ACTIVE = 0x0008 } -enum : uint { EVENTLOG_PAIRED_EVENT_INACTIVE = 0x0010 } - -struct _EVENTLOGRECORD { - DWORD Length; - DWORD Reserved; - DWORD RecordNumber; - DWORD TimeGenerated; - DWORD TimeWritten; - DWORD EventID; - WORD EventType; - WORD NumStrings; - WORD EventCategory; - WORD ReservedFlags; - DWORD ClosingRecordNumber; - DWORD StringOffset; - DWORD UserSidLength; - DWORD UserSidOffset; - DWORD DataLength; - DWORD DataOffset; - -} -alias _EVENTLOGRECORD EVENTLOGRECORD; -alias _EVENTLOGRECORD* PEVENTLOGRECORD; - -enum : uint { MAXLOGICALLOGNAMESIZE = 256 } - -// #if _MSC_VER >= 1200 -// #pragma warning(push) -// #endif -// #pragma warning(disable : 4200) -struct _EVENTSFORLOGFILE { - DWORD ulSize; - WCHAR szLogicalLogFile[MAXLOGICALLOGNAMESIZE]; - DWORD ulNumRecords; - EVENTLOGRECORD pEventLogRecords[]; -} -alias _EVENTSFORLOGFILE EVENTSFORLOGFILE; -alias _EVENTSFORLOGFILE* PEVENTSFORLOGFILE; - -struct _PACKEDEVENTINFO { - DWORD ulSize; - DWORD ulNumEventsForLogFile; - DWORD ulOffsets[]; -} -alias _PACKEDEVENTINFO PACKEDEVENTINFO; -alias _PACKEDEVENTINFO* PPACKEDEVENTINFO; - -// #if _MSC_VER >= 1200 -// #pragma warning(pop) -// #else -// #... -// #endif - -enum : uint { KEY_QUERY_VALUE = 0x0001 } -enum : uint { KEY_SET_VALUE = 0x0002 } -enum : uint { KEY_CREATE_SUB_KEY = 0x0004 } -enum : uint { KEY_ENUMERATE_SUB_KEYS = 0x0008 } -enum : uint { KEY_NOTIFY = 0x0010 } -enum : uint { KEY_CREATE_LINK = 0x0020 } -enum : uint { KEY_WOW64_32KEY = 0x0200 } -enum : uint { KEY_WOW64_64KEY = 0x0100 } -enum : uint { KEY_WOW64_RES = 0x0300 } - -enum : uint { KEY_READ = (STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY) & (~SYNCHRONIZE) } - -enum : uint { KEY_WRITE = (STANDARD_RIGHTS_WRITE | KEY_SET_VALUE | KEY_CREATE_SUB_KEY) & (~SYNCHRONIZE) } - -enum : uint { KEY_EXECUTE = KEY_READ & ~SYNCHRONIZE } - -enum : uint { KEY_ALL_ACCESS = (STANDARD_RIGHTS_ALL | KEY_QUERY_VALUE | KEY_SET_VALUE | KEY_CREATE_SUB_KEY | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY | KEY_CREATE_LINK) & (~SYNCHRONIZE) } - -enum : uint { REG_OPTION_RESERVED = 0x00000000 } - -enum : uint { REG_OPTION_NON_VOLATILE = 0x00000000 } - -enum : uint { REG_OPTION_VOLATILE = 0x00000001 } - -enum : uint { REG_OPTION_CREATE_LINK = 0x00000002 } - -enum : uint { REG_OPTION_BACKUP_RESTORE = 0x00000004 } - -enum : uint { REG_OPTION_OPEN_LINK = 0x00000008 } - -enum : uint { REG_LEGAL_OPTION = REG_OPTION_RESERVED | REG_OPTION_NON_VOLATILE | REG_OPTION_VOLATILE | REG_OPTION_CREATE_LINK | REG_OPTION_BACKUP_RESTORE | REG_OPTION_OPEN_LINK } - -enum : uint { REG_CREATED_NEW_KEY = 0x00000001 } -enum : uint { REG_OPENED_EXISTING_KEY = 0x00000002 } - -enum : uint { REG_STANDARD_FORMAT = 1 } -enum : uint { REG_LATEST_FORMAT = 2 } -enum : uint { REG_NO_COMPRESSION = 4 } - -enum : uint { REG_WHOLE_HIVE_VOLATILE = 0x00000001 } -enum : uint { REG_REFRESH_HIVE = 0x00000002 } -enum : uint { REG_NO_LAZY_FLUSH = 0x00000004 } -enum : uint { REG_FORCE_RESTORE = 0x00000008 } - -enum : uint { REG_NOTIFY_CHANGE_NAME = 0x00000001 } -enum : uint { REG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002 } -enum : uint { REG_NOTIFY_CHANGE_LAST_SET = 0x00000004 } -enum : uint { REG_NOTIFY_CHANGE_SECURITY = 0x00000008 } - -enum : uint { REG_LEGAL_CHANGE_FILTER = REG_NOTIFY_CHANGE_NAME | REG_NOTIFY_CHANGE_ATTRIBUTES | REG_NOTIFY_CHANGE_LAST_SET | REG_NOTIFY_CHANGE_SECURITY } - -enum : uint { REG_NONE = 0 } -enum : uint { REG_SZ = 1 } -enum : uint { REG_EXPAND_SZ = 2 } - -enum : uint { REG_BINARY = 3 } -enum : uint { REG_DWORD = 4 } -enum : uint { REG_DWORD_LITTLE_ENDIAN = 4 } -enum : uint { REG_DWORD_BIG_ENDIAN = 5 } -enum : uint { REG_LINK = 6 } -enum : uint { REG_MULTI_SZ = 7 } -enum : uint { REG_RESOURCE_LIST = 8 } -enum : uint { REG_FULL_RESOURCE_DESCRIPTOR = 9 } -enum : uint { REG_RESOURCE_REQUIREMENTS_LIST = 10 } -enum : uint { REG_QWORD = 11 } -enum : uint { REG_QWORD_LITTLE_ENDIAN = 11 } - -enum : uint { SERVICE_KERNEL_DRIVER = 0x00000001 } -enum : uint { SERVICE_FILE_SYSTEM_DRIVER = 0x00000002 } -enum : uint { SERVICE_ADAPTER = 0x00000004 } -enum : uint { SERVICE_RECOGNIZER_DRIVER = 0x00000008 } - -enum : uint { SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER } - -enum : uint { SERVICE_WIN32_OWN_PROCESS = 0x00000010 } -enum : uint { SERVICE_WIN32_SHARE_PROCESS = 0x00000020 } -enum : uint { SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS } - -enum : uint { SERVICE_INTERACTIVE_PROCESS = 0x00000100 } - -enum : uint { SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS } - -enum : uint { SERVICE_BOOT_START = 0x00000000 } -enum : uint { SERVICE_SYSTEM_START = 0x00000001 } -enum : uint { SERVICE_AUTO_START = 0x00000002 } -enum : uint { SERVICE_DEMAND_START = 0x00000003 } -enum : uint { SERVICE_DISABLED = 0x00000004 } - -enum : uint { SERVICE_ERROR_IGNORE = 0x00000000 } -enum : uint { SERVICE_ERROR_NORMAL = 0x00000001 } -enum : uint { SERVICE_ERROR_SEVERE = 0x00000002 } -enum : uint { SERVICE_ERROR_CRITICAL = 0x00000003 } - -alias int _CM_SERVICE_NODE_TYPE; -enum { - DriverType = SERVICE_KERNEL_DRIVER, - FileSystemType = SERVICE_FILE_SYSTEM_DRIVER, - Win32ServiceOwnProcess = SERVICE_WIN32_OWN_PROCESS, - Win32ServiceShareProcess = SERVICE_WIN32_SHARE_PROCESS, - AdapterType = SERVICE_ADAPTER, - RecognizerType = SERVICE_RECOGNIZER_DRIVER, -} -alias _CM_SERVICE_NODE_TYPE SERVICE_NODE_TYPE; - -alias int _CM_SERVICE_LOAD_TYPE; -enum { - BootLoad = SERVICE_BOOT_START, - SystemLoad = SERVICE_SYSTEM_START, - AutoLoad = SERVICE_AUTO_START, - DemandLoad = SERVICE_DEMAND_START, - DisableLoad = SERVICE_DISABLED, -} -alias _CM_SERVICE_LOAD_TYPE SERVICE_LOAD_TYPE; - -alias int _CM_ERROR_CONTROL_TYPE; -enum { - IgnoreError = SERVICE_ERROR_IGNORE, - NormalError = SERVICE_ERROR_NORMAL, - SevereError = SERVICE_ERROR_SEVERE, - CriticalError = SERVICE_ERROR_CRITICAL, -} -alias _CM_ERROR_CONTROL_TYPE SERVICE_ERROR_TYPE; - -enum : uint { TAPE_ERASE_SHORT = 0 } -enum : uint { TAPE_ERASE_LONG = 1 } - -struct _TAPE_ERASE { - DWORD Type; - BOOLEAN Immediate; -} -alias _TAPE_ERASE TAPE_ERASE; -alias _TAPE_ERASE* PTAPE_ERASE; - -enum : uint { TAPE_LOAD = 0 } -enum : uint { TAPE_UNLOAD = 1 } -enum : uint { TAPE_TENSION = 2 } -enum : uint { TAPE_LOCK = 3 } -enum : uint { TAPE_UNLOCK = 4 } -enum : uint { TAPE_FORMAT = 5 } - -struct _TAPE_PREPARE { - DWORD Operation; - BOOLEAN Immediate; -} -alias _TAPE_PREPARE TAPE_PREPARE; -alias _TAPE_PREPARE* PTAPE_PREPARE; - -enum : uint { TAPE_SETMARKS = 0 } -enum : uint { TAPE_FILEMARKS = 1 } -enum : uint { TAPE_SHORT_FILEMARKS = 2 } -enum : uint { TAPE_LONG_FILEMARKS = 3 } - -struct _TAPE_WRITE_MARKS { - DWORD Type; - DWORD Count; - BOOLEAN Immediate; -} -alias _TAPE_WRITE_MARKS TAPE_WRITE_MARKS; -alias _TAPE_WRITE_MARKS* PTAPE_WRITE_MARKS; - -enum : uint { TAPE_ABSOLUTE_POSITION = 0 } -enum : uint { TAPE_LOGICAL_POSITION = 1 } -enum : uint { TAPE_PSEUDO_LOGICAL_POSITION = 2 } - -struct _TAPE_GET_POSITION { - DWORD Type; - DWORD Partition; - LARGE_INTEGER Offset; -} -alias _TAPE_GET_POSITION TAPE_GET_POSITION; -alias _TAPE_GET_POSITION* PTAPE_GET_POSITION; - -enum : uint { TAPE_REWIND = 0 } -enum : uint { TAPE_ABSOLUTE_BLOCK = 1 } -enum : uint { TAPE_LOGICAL_BLOCK = 2 } -enum : uint { TAPE_PSEUDO_LOGICAL_BLOCK = 3 } -enum : uint { TAPE_SPACE_END_OF_DATA = 4 } -enum : uint { TAPE_SPACE_RELATIVE_BLOCKS = 5 } -enum : uint { TAPE_SPACE_FILEMARKS = 6 } -enum : uint { TAPE_SPACE_SEQUENTIAL_FMKS = 7 } -enum : uint { TAPE_SPACE_SETMARKS = 8 } -enum : uint { TAPE_SPACE_SEQUENTIAL_SMKS = 9 } - -struct _TAPE_SET_POSITION { - DWORD Method; - DWORD Partition; - LARGE_INTEGER Offset; - BOOLEAN Immediate; -} -alias _TAPE_SET_POSITION TAPE_SET_POSITION; -alias _TAPE_SET_POSITION* PTAPE_SET_POSITION; - -enum : uint { TAPE_DRIVE_FIXED = 0x00000001 } -enum : uint { TAPE_DRIVE_SELECT = 0x00000002 } -enum : uint { TAPE_DRIVE_INITIATOR = 0x00000004 } - -enum : uint { TAPE_DRIVE_ERASE_SHORT = 0x00000010 } -enum : uint { TAPE_DRIVE_ERASE_LONG = 0x00000020 } -enum : uint { TAPE_DRIVE_ERASE_BOP_ONLY = 0x00000040 } -enum : uint { TAPE_DRIVE_ERASE_IMMEDIATE = 0x00000080 } - -enum : uint { TAPE_DRIVE_TAPE_CAPACITY = 0x00000100 } -enum : uint { TAPE_DRIVE_TAPE_REMAINING = 0x00000200 } -enum : uint { TAPE_DRIVE_FIXED_BLOCK = 0x00000400 } -enum : uint { TAPE_DRIVE_VARIABLE_BLOCK = 0x00000800 } - -enum : uint { TAPE_DRIVE_WRITE_PROTECT = 0x00001000 } -enum : uint { TAPE_DRIVE_EOT_WZ_SIZE = 0x00002000 } - -enum : uint { TAPE_DRIVE_ECC = 0x00010000 } -enum : uint { TAPE_DRIVE_COMPRESSION = 0x00020000 } -enum : uint { TAPE_DRIVE_PADDING = 0x00040000 } -enum : uint { TAPE_DRIVE_REPORT_SMKS = 0x00080000 } - -enum : uint { TAPE_DRIVE_GET_ABSOLUTE_BLK = 0x00100000 } -enum : uint { TAPE_DRIVE_GET_LOGICAL_BLK = 0x00200000 } -enum : uint { TAPE_DRIVE_SET_EOT_WZ_SIZE = 0x00400000 } - -enum : uint { TAPE_DRIVE_EJECT_MEDIA = 0x01000000 } -enum : uint { TAPE_DRIVE_CLEAN_REQUESTS = 0x02000000 } -enum : uint { TAPE_DRIVE_SET_CMP_BOP_ONLY = 0x04000000 } - -enum : uint { TAPE_DRIVE_RESERVED_BIT = 0x80000000 } - -enum : uint { TAPE_DRIVE_LOAD_UNLOAD = 0x80000001 } -enum : uint { TAPE_DRIVE_TENSION = 0x80000002 } -enum : uint { TAPE_DRIVE_LOCK_UNLOCK = 0x80000004 } -enum : uint { TAPE_DRIVE_REWIND_IMMEDIATE = 0x80000008 } - -enum : uint { TAPE_DRIVE_SET_BLOCK_SIZE = 0x80000010 } -enum : uint { TAPE_DRIVE_LOAD_UNLD_IMMED = 0x80000020 } -enum : uint { TAPE_DRIVE_TENSION_IMMED = 0x80000040 } -enum : uint { TAPE_DRIVE_LOCK_UNLK_IMMED = 0x80000080 } - -enum : uint { TAPE_DRIVE_SET_ECC = 0x80000100 } -enum : uint { TAPE_DRIVE_SET_COMPRESSION = 0x80000200 } -enum : uint { TAPE_DRIVE_SET_PADDING = 0x80000400 } -enum : uint { TAPE_DRIVE_SET_REPORT_SMKS = 0x80000800 } - -enum : uint { TAPE_DRIVE_ABSOLUTE_BLK = 0x80001000 } -enum : uint { TAPE_DRIVE_ABS_BLK_IMMED = 0x80002000 } -enum : uint { TAPE_DRIVE_LOGICAL_BLK = 0x80004000 } -enum : uint { TAPE_DRIVE_LOG_BLK_IMMED = 0x80008000 } - -enum : uint { TAPE_DRIVE_END_OF_DATA = 0x80010000 } -enum : uint { TAPE_DRIVE_RELATIVE_BLKS = 0x80020000 } -enum : uint { TAPE_DRIVE_FILEMARKS = 0x80040000 } -enum : uint { TAPE_DRIVE_SEQUENTIAL_FMKS = 0x80080000 } - -enum : uint { TAPE_DRIVE_SETMARKS = 0x80100000 } -enum : uint { TAPE_DRIVE_SEQUENTIAL_SMKS = 0x80200000 } -enum : uint { TAPE_DRIVE_REVERSE_POSITION = 0x80400000 } -enum : uint { TAPE_DRIVE_SPACE_IMMEDIATE = 0x80800000 } - -enum : uint { TAPE_DRIVE_WRITE_SETMARKS = 0x81000000 } -enum : uint { TAPE_DRIVE_WRITE_FILEMARKS = 0x82000000 } -enum : uint { TAPE_DRIVE_WRITE_SHORT_FMKS = 0x84000000 } -enum : uint { TAPE_DRIVE_WRITE_LONG_FMKS = 0x88000000 } - -enum : uint { TAPE_DRIVE_WRITE_MARK_IMMED = 0x90000000 } -enum : uint { TAPE_DRIVE_FORMAT = 0xA0000000 } -enum : uint { TAPE_DRIVE_FORMAT_IMMEDIATE = 0xC0000000 } -enum : uint { TAPE_DRIVE_HIGH_FEATURES = 0x80000000 } - -struct _TAPE_GET_DRIVE_PARAMETERS { - BOOLEAN ECC; - BOOLEAN Compression; - BOOLEAN DataPadding; - BOOLEAN ReportSetmarks; - DWORD DefaultBlockSize; - DWORD MaximumBlockSize; - DWORD MinimumBlockSize; - DWORD MaximumPartitionCount; - DWORD FeaturesLow; - DWORD FeaturesHigh; - DWORD EOTWarningZoneSize; -} -alias _TAPE_GET_DRIVE_PARAMETERS TAPE_GET_DRIVE_PARAMETERS; -alias _TAPE_GET_DRIVE_PARAMETERS* PTAPE_GET_DRIVE_PARAMETERS; - -struct _TAPE_SET_DRIVE_PARAMETERS { - BOOLEAN ECC; - BOOLEAN Compression; - BOOLEAN DataPadding; - BOOLEAN ReportSetmarks; - DWORD EOTWarningZoneSize; -} -alias _TAPE_SET_DRIVE_PARAMETERS TAPE_SET_DRIVE_PARAMETERS; -alias _TAPE_SET_DRIVE_PARAMETERS* PTAPE_SET_DRIVE_PARAMETERS; - -struct _TAPE_GET_MEDIA_PARAMETERS { - LARGE_INTEGER Capacity; - LARGE_INTEGER Remaining; - DWORD BlockSize; - DWORD PartitionCount; - BOOLEAN WriteProtected; -} -alias _TAPE_GET_MEDIA_PARAMETERS TAPE_GET_MEDIA_PARAMETERS; -alias _TAPE_GET_MEDIA_PARAMETERS* PTAPE_GET_MEDIA_PARAMETERS; - -struct _TAPE_SET_MEDIA_PARAMETERS { - DWORD BlockSize; -} -alias _TAPE_SET_MEDIA_PARAMETERS TAPE_SET_MEDIA_PARAMETERS; -alias _TAPE_SET_MEDIA_PARAMETERS* PTAPE_SET_MEDIA_PARAMETERS; - -enum : uint { TAPE_FIXED_PARTITIONS = 0 } -enum : uint { TAPE_SELECT_PARTITIONS = 1 } -enum : uint { TAPE_INITIATOR_PARTITIONS = 2 } - -struct _TAPE_CREATE_PARTITION { - DWORD Method; - DWORD Count; - DWORD Size; -} -alias _TAPE_CREATE_PARTITION TAPE_CREATE_PARTITION; -alias _TAPE_CREATE_PARTITION* PTAPE_CREATE_PARTITION; - -enum : uint { TAPE_QUERY_DRIVE_PARAMETERS = 0 } -enum : uint { TAPE_QUERY_MEDIA_CAPACITY = 1 } -enum : uint { TAPE_CHECK_FOR_DRIVE_PROBLEM = 2 } -enum : uint { TAPE_QUERY_IO_ERROR_DATA = 3 } -enum : uint { TAPE_QUERY_DEVICE_ERROR_DATA = 4 } - -struct _TAPE_WMI_OPERATIONS { - DWORD Method; - DWORD DataBufferSize; - PVOID DataBuffer; -} -alias _TAPE_WMI_OPERATIONS TAPE_WMI_OPERATIONS; -alias _TAPE_WMI_OPERATIONS* PTAPE_WMI_OPERATIONS; - -alias int _TAPE_DRIVE_PROBLEM_TYPE; -enum { - TapeDriveProblemNone, - TapeDriveReadWriteWarning, - TapeDriveReadWriteError, - TapeDriveReadWarning, - TapeDriveWriteWarning, - TapeDriveReadError, - TapeDriveWriteError, - TapeDriveHardwareError, - TapeDriveUnsupportedMedia, - TapeDriveScsiConnectionError, - TapeDriveTimetoClean, - TapeDriveCleanDriveNow, - TapeDriveMediaLifeExpired, - TapeDriveSnappedTape, -} -alias _TAPE_DRIVE_PROBLEM_TYPE TAPE_DRIVE_PROBLEM_TYPE; - -// #if defined(_M_AMD64) && !defined(__midl) - -// ... - -// ... - -// ... - -// ... - -// ... - -// ... - -// #endif // _M_AMD64 && !defined(__midl) - -// #if (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED // winnt_only -enum : uint { ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION = 1 } -enum : uint { ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION = 2 } -enum : uint { ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION = 3 } -enum : uint { ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION = 4 } -enum : uint { ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION = 5 } -enum : uint { ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION = 6 } -enum : uint { ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION = 7 } -enum : uint { ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE = 8 } -// #endif // winnt_only - -// #ifdef __cplusplus -// } -// #endif - -// #endif /* _WINNT_ */ - +/***********************************************************************\ +* winnt.d * +* * +* Windows API header module * +* * +* Translated from MinGW API for MS-Windows 3.12 * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.winnt; + +public import win32.basetsd, win32.windef, win32.winerror; +private import win32.w32api; + +/* Translation Notes: +The following macros are unneeded for D: +FIELD_OFFSET(t,f), CONTAINING_RECORD(address, type, field) +*/ + +alias void VOID; +alias char CHAR, CCHAR; +alias wchar WCHAR; +alias bool BOOLEAN; +alias byte FCHAR; +alias ubyte UCHAR; +alias short SHORT; +alias ushort LANGID, FSHORT; +alias uint LCID, FLONG, ACCESS_MASK; +alias long LONGLONG, USN; +alias ulong DWORDLONG, ULONGLONG; + +alias void* PVOID, LPVOID; +alias char* PSZ, PCHAR, PCCHAR, LPCH, PCH, LPSTR, PSTR; +alias wchar* PWCHAR, LPWCH, PWCH, LPWSTR, PWSTR; +alias bool* PBOOLEAN; +alias ubyte* PUCHAR; +alias short* PSHORT; +alias int* PLONG; +alias uint* PLCID, PACCESS_MASK; +alias long* PLONGLONG; +alias ulong* PDWORDLONG, PULONGLONG; + +// FIXME(MinGW) for __WIN64 +alias void* PVOID64; + +// const versions +alias CPtr!(char) LPCCH, PCSTR, LPCSTR; +alias CPtr!(wchar) LPCWCH, PCWCH, LPCWSTR, PCWSTR; + +version (Unicode) { + alias WCHAR TCHAR, _TCHAR; +} else { + alias CHAR TCHAR, _TCHAR; +} + +alias TCHAR TBYTE; +alias TCHAR* PTCH, PTBYTE, LPTCH, PTSTR, LPTSTR, LP, PTCHAR; +alias CPtr!(TCHAR) LPCTSTR; + +const char ANSI_NULL = '\0'; +const wchar UNICODE_NULL = '\0'; + +const APPLICATION_ERROR_MASK = 0x20000000; +const ERROR_SEVERITY_SUCCESS = 0x00000000; +const ERROR_SEVERITY_INFORMATIONAL = 0x40000000; +const ERROR_SEVERITY_WARNING = 0x80000000; +const ERROR_SEVERITY_ERROR = 0xC0000000; + +// MinGW: also in ddk/ntifs.h +enum : USHORT { + COMPRESSION_FORMAT_NONE = 0x0000, + COMPRESSION_FORMAT_DEFAULT = 0x0001, + COMPRESSION_FORMAT_LZNT1 = 0x0002, + COMPRESSION_ENGINE_STANDARD = 0x0000, + COMPRESSION_ENGINE_MAXIMUM = 0x0100, + COMPRESSION_ENGINE_HIBER = 0x0200 +} + +// ACCESS_DENIED_OBJECT_ACE, etc +const DWORD + ACE_OBJECT_TYPE_PRESENT = 0x00000001, + ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x00000002; + +// ACE_HEADER.AceType +// also in ddk/ntifs.h +enum : BYTE { + ACCESS_ALLOWED_ACE_TYPE, + ACCESS_DENIED_ACE_TYPE, + SYSTEM_AUDIT_ACE_TYPE, + SYSTEM_ALARM_ACE_TYPE +} + +// ACE_HEADER.AceFlags +const BYTE + OBJECT_INHERIT_ACE = 0x01, + CONTAINER_INHERIT_ACE = 0x02, + NO_PROPAGATE_INHERIT_ACE = 0x04, + INHERIT_ONLY_ACE = 0x08, + INHERITED_ACE = 0x10, + VALID_INHERIT_FLAGS = 0x1F, + SUCCESSFUL_ACCESS_ACE_FLAG = 0x40, + FAILED_ACCESS_ACE_FLAG = 0x80; + +// Access Mask Format +const ACCESS_MASK + DELETE = 0x00010000, + READ_CONTROL = 0x00020000, + WRITE_DAC = 0x00040000, + WRITE_OWNER = 0x00080000, + SYNCHRONIZE = 0x00100000, + ACCESS_SYSTEM_SECURITY = 0x01000000, + MAXIMUM_ALLOWED = 0x02000000, + GENERIC_READ = 0x80000000, + GENERIC_WRITE = 0x40000000, + GENERIC_EXECUTE = 0x20000000, + GENERIC_ALL = 0x10000000, + STANDARD_RIGHTS_REQUIRED = 0x000F0000, + STANDARD_RIGHTS_READ = 0x00020000, + STANDARD_RIGHTS_WRITE = 0x00020000, + STANDARD_RIGHTS_EXECUTE = 0x00020000, + STANDARD_RIGHTS_ALL = 0x001F0000, + SPECIFIC_RIGHTS_ALL = 0x0000FFFF; + + +const DWORD INVALID_FILE_ATTRIBUTES = -1; + +// MinGW: Also in ddk/winddk.h +const DWORD + FILE_LIST_DIRECTORY = 0x00000001, + FILE_READ_DATA = 0x00000001, + FILE_ADD_FILE = 0x00000002, + FILE_WRITE_DATA = 0x00000002, + FILE_ADD_SUBDIRECTORY = 0x00000004, + FILE_APPEND_DATA = 0x00000004, + FILE_CREATE_PIPE_INSTANCE = 0x00000004, + FILE_READ_EA = 0x00000008, + FILE_READ_PROPERTIES = 0x00000008, + FILE_WRITE_EA = 0x00000010, + FILE_WRITE_PROPERTIES = 0x00000010, + FILE_EXECUTE = 0x00000020, + FILE_TRAVERSE = 0x00000020, + FILE_DELETE_CHILD = 0x00000040, + FILE_READ_ATTRIBUTES = 0x00000080, + FILE_WRITE_ATTRIBUTES = 0x00000100; + +const DWORD + FILE_SHARE_READ = 0x00000001, + FILE_SHARE_WRITE = 0x00000002, + FILE_SHARE_DELETE = 0x00000004, + FILE_SHARE_VALID_FLAGS = 0x00000007; + +const DWORD + FILE_ATTRIBUTE_READONLY = 0x00000001, + FILE_ATTRIBUTE_HIDDEN = 0x00000002, + FILE_ATTRIBUTE_SYSTEM = 0x00000004, + FILE_ATTRIBUTE_DIRECTORY = 0x00000010, + FILE_ATTRIBUTE_ARCHIVE = 0x00000020, + FILE_ATTRIBUTE_DEVICE = 0x00000040, + FILE_ATTRIBUTE_NORMAL = 0x00000080, + FILE_ATTRIBUTE_TEMPORARY = 0x00000100, + FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200, + FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400, + FILE_ATTRIBUTE_COMPRESSED = 0x00000800, + FILE_ATTRIBUTE_OFFLINE = 0x00001000, + FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000, + FILE_ATTRIBUTE_ENCRYPTED = 0x00004000, + FILE_ATTRIBUTE_VALID_FLAGS = 0x00007fb7, + FILE_ATTRIBUTE_VALID_SET_FLAGS = 0x000031a7; + +// These are not documented on MSDN +const FILE_COPY_STRUCTURED_STORAGE = 0x00000041; +const FILE_STRUCTURED_STORAGE = 0x00000441; + +// Nor are these +const FILE_VALID_OPTION_FLAGS = 0x00ffffff; +const FILE_VALID_PIPE_OPTION_FLAGS = 0x00000032; +const FILE_VALID_MAILSLOT_OPTION_FLAGS = 0x00000032; +const FILE_VALID_SET_FLAGS = 0x00000036; + +const ULONG + FILE_SUPERSEDE = 0x00000000, + FILE_OPEN = 0x00000001, + FILE_CREATE = 0x00000002, + FILE_OPEN_IF = 0x00000003, + FILE_OVERWRITE = 0x00000004, + FILE_OVERWRITE_IF = 0x00000005, + FILE_MAXIMUM_DISPOSITION = 0x00000005; + +const ULONG + FILE_DIRECTORY_FILE = 0x00000001, + FILE_WRITE_THROUGH = 0x00000002, + FILE_SEQUENTIAL_ONLY = 0x00000004, + FILE_NO_INTERMEDIATE_BUFFERING = 0x00000008, + FILE_SYNCHRONOUS_IO_ALERT = 0x00000010, + FILE_SYNCHRONOUS_IO_NONALERT = 0x00000020, + FILE_NON_DIRECTORY_FILE = 0x00000040, + FILE_CREATE_TREE_CONNECTION = 0x00000080, + FILE_COMPLETE_IF_OPLOCKED = 0x00000100, + FILE_NO_EA_KNOWLEDGE = 0x00000200, + FILE_OPEN_FOR_RECOVERY = 0x00000400, + FILE_RANDOM_ACCESS = 0x00000800, + FILE_DELETE_ON_CLOSE = 0x00001000, + FILE_OPEN_BY_FILE_ID = 0x00002000, + FILE_OPEN_FOR_BACKUP_INTENT = 0x00004000, + FILE_NO_COMPRESSION = 0x00008000, + FILE_RESERVE_OPFILTER = 0x00100000, + FILE_OPEN_REPARSE_POINT = 0x00200000, + FILE_OPEN_NO_RECALL = 0x00400000, + FILE_OPEN_FOR_FREE_SPACE_QUERY = 0x00800000; + + +const ACCESS_MASK + FILE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x01FF, + FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES + | FILE_EXECUTE | SYNCHRONIZE, + FILE_GENERIC_READ = STANDARD_RIGHTS_READ | FILE_READ_DATA + | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE, + FILE_GENERIC_WRITE = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA + | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA + | SYNCHRONIZE; + +// MinGW: end winddk.h +// MinGW: also in ddk/ntifs.h +const DWORD + FILE_NOTIFY_CHANGE_FILE_NAME = 0x00000001, + FILE_NOTIFY_CHANGE_DIR_NAME = 0x00000002, + FILE_NOTIFY_CHANGE_NAME = 0x00000003, + FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x00000004, + FILE_NOTIFY_CHANGE_SIZE = 0x00000008, + FILE_NOTIFY_CHANGE_LAST_WRITE = 0x00000010, + FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x00000020, + FILE_NOTIFY_CHANGE_CREATION = 0x00000040, + FILE_NOTIFY_CHANGE_EA = 0x00000080, + FILE_NOTIFY_CHANGE_SECURITY = 0x00000100, + FILE_NOTIFY_CHANGE_STREAM_NAME = 0x00000200, + FILE_NOTIFY_CHANGE_STREAM_SIZE = 0x00000400, + FILE_NOTIFY_CHANGE_STREAM_WRITE = 0x00000800, + FILE_NOTIFY_VALID_MASK = 0x00000fff; + +const DWORD + FILE_CASE_SENSITIVE_SEARCH = 0x00000001, + FILE_CASE_PRESERVED_NAMES = 0x00000002, + FILE_UNICODE_ON_DISK = 0x00000004, + FILE_PERSISTENT_ACLS = 0x00000008, + FILE_FILE_COMPRESSION = 0x00000010, + FILE_VOLUME_QUOTAS = 0x00000020, + FILE_SUPPORTS_SPARSE_FILES = 0x00000040, + FILE_SUPPORTS_REPARSE_POINTS = 0x00000080, + FILE_SUPPORTS_REMOTE_STORAGE = 0x00000100, + FS_LFN_APIS = 0x00004000, + FILE_VOLUME_IS_COMPRESSED = 0x00008000, + FILE_SUPPORTS_OBJECT_IDS = 0x00010000, + FILE_SUPPORTS_ENCRYPTION = 0x00020000, + FILE_NAMED_STREAMS = 0x00040000, + FILE_READ_ONLY_VOLUME = 0x00080000, + FILE_SEQUENTIAL_WRITE_ONCE = 0x00100000, + FILE_SUPPORTS_TRANSACTIONS = 0x00200000; + +// These are not documented on MSDN +const ACCESS_MASK + IO_COMPLETION_QUERY_STATE = 1, + IO_COMPLETION_MODIFY_STATE = 2, + IO_COMPLETION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 3; +// MinGW: end ntifs.h + +// MinGW: also in ddk/winddk.h +const DWORD + DUPLICATE_CLOSE_SOURCE = 1, + DUPLICATE_SAME_ACCESS = 2, + DUPLICATE_SAME_ATTRIBUTES = 4; +// MinGW: end winddk.k + +const DWORD + MAILSLOT_NO_MESSAGE = -1, + MAILSLOT_WAIT_FOREVER = -1; + +const ACCESS_MASK + PROCESS_TERMINATE = 0x0001, + PROCESS_CREATE_THREAD = 0x0002, + PROCESS_SET_SESSIONID = 0x0004, + PROCESS_VM_OPERATION = 0x0008, + PROCESS_VM_READ = 0x0010, + PROCESS_VM_WRITE = 0x0020, + PROCESS_DUP_HANDLE = 0x0040, + PROCESS_CREATE_PROCESS = 0x0080, + PROCESS_SET_QUOTA = 0x0100, + PROCESS_SET_INFORMATION = 0x0200, + PROCESS_QUERY_INFORMATION = 0x0400, + PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x0FFF; + +const ACCESS_MASK + THREAD_TERMINATE = 0x0001, + THREAD_SUSPEND_RESUME = 0x0002, + THREAD_GET_CONTEXT = 0x0008, + THREAD_SET_CONTEXT = 0x0010, + THREAD_SET_INFORMATION = 0x0020, + THREAD_QUERY_INFORMATION = 0x0040, + THREAD_SET_THREAD_TOKEN = 0x0080, + THREAD_IMPERSONATE = 0x0100, + THREAD_DIRECT_IMPERSONATION = 0x0200, + THREAD_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3FF; + +// These are not documented on MSDN +const THREAD_BASE_PRIORITY_LOWRT = 15; +const THREAD_BASE_PRIORITY_MAX = 2; +const THREAD_BASE_PRIORITY_MIN = -2; +const THREAD_BASE_PRIORITY_IDLE = -15; + +const DWORD EXCEPTION_NONCONTINUABLE = 1; +const size_t EXCEPTION_MAXIMUM_PARAMETERS = 15; + +// These are not documented on MSDN +const ACCESS_MASK + MUTANT_QUERY_STATE = 1, + MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUERY_STATE; + +const ACCESS_MASK + TIMER_QUERY_STATE = 1, + TIMER_MODIFY_STATE = 2, + TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | TIMER_QUERY_STATE + | TIMER_MODIFY_STATE; + +const SID_IDENTIFIER_AUTHORITY + SECURITY_NULL_SID_AUTHORITY = {[5: 0]}, + SECURITY_WORLD_SID_AUTHORITY = {[5: 1]}, + SECURITY_LOCAL_SID_AUTHORITY = {[5: 2]}, + SECURITY_CREATOR_SID_AUTHORITY = {[5: 3]}, + SECURITY_NON_UNIQUE_AUTHORITY = {[5: 4]}, + SECURITY_NT_AUTHORITY = {[5: 5]}, + SECURITY_MANDATORY_LABEL_AUTHORITY = {[5: 6]}; + +const DWORD + SECURITY_NULL_RID = 0, + SECURITY_WORLD_RID = 0, + SECURITY_LOCAL_RID = 0, + SECURITY_CREATOR_OWNER_RID = 0, + SECURITY_CREATOR_GROUP_RID = 1, + SECURITY_DIALUP_RID = 1, + SECURITY_NETWORK_RID = 2, + SECURITY_BATCH_RID = 3, + SECURITY_INTERACTIVE_RID = 4, + SECURITY_LOGON_IDS_RID = 5, + SECURITY_SERVICE_RID = 6, + SECURITY_LOCAL_SYSTEM_RID = 18, + SECURITY_BUILTIN_DOMAIN_RID = 32, + SECURITY_PRINCIPAL_SELF_RID = 10, + SECURITY_CREATOR_OWNER_SERVER_RID = 2, + SECURITY_CREATOR_GROUP_SERVER_RID = 3, + SECURITY_LOGON_IDS_RID_COUNT = 3, + SECURITY_ANONYMOUS_LOGON_RID = 7, + SECURITY_PROXY_RID = 8, + SECURITY_ENTERPRISE_CONTROLLERS_RID = 9, + SECURITY_SERVER_LOGON_RID = SECURITY_ENTERPRISE_CONTROLLERS_RID, + SECURITY_AUTHENTICATED_USER_RID = 11, + SECURITY_RESTRICTED_CODE_RID = 12, + SECURITY_NT_NON_UNIQUE_RID = 21, + SID_REVISION = 1; + +enum : DWORD { + DOMAIN_USER_RID_ADMIN = 0x01F4, + DOMAIN_USER_RID_GUEST = 0x01F5, + DOMAIN_GROUP_RID_ADMINS = 0x0200, + DOMAIN_GROUP_RID_USERS = 0x0201, + DOMAIN_ALIAS_RID_ADMINS = 0x0220, + DOMAIN_ALIAS_RID_USERS = 0x0221, + DOMAIN_ALIAS_RID_GUESTS = 0x0222, + DOMAIN_ALIAS_RID_POWER_USERS = 0x0223, + DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x0224, + DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x0225, + DOMAIN_ALIAS_RID_PRINT_OPS = 0x0226, + DOMAIN_ALIAS_RID_BACKUP_OPS = 0x0227, + DOMAIN_ALIAS_RID_REPLICATOR = 0x0228 +} + +enum : WORD { + SECURITY_MANDATORY_UNTRUSTED_RID = 0, + SECURITY_MANDATORY_LOW_RID = 0x1000, + SECURITY_MANDATORY_MEDIUM_RID = 0x2000, + SECURITY_MANDATORY_HIGH_RID = 0x3000, + SECURITY_MANDATORY_SYSTEM_RID = 0x4000, + SECURITY_MANDATORY_PROTECTED_PROCESS_RID = 0x5000, + SECURITY_MANDATORY_MAXIMUM_USER_RID = SECURITY_MANDATORY_SYSTEM_RID +} + +const TCHAR[] + SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege", + SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege", + SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege", + SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege", + SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege", + SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege", + SE_TCB_NAME = "SeTcbPrivilege", + SE_SECURITY_NAME = "SeSecurityPrivilege", + SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege", + SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege", + SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege", + SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege", + SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege", + SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege", + SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege", + SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege", + SE_BACKUP_NAME = "SeBackupPrivilege", + SE_RESTORE_NAME = "SeRestorePrivilege", + SE_SHUTDOWN_NAME = "SeShutdownPrivilege", + SE_DEBUG_NAME = "SeDebugPrivilege", + SE_AUDIT_NAME = "SeAuditPrivilege", + SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege", + SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege", + SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege", + SE_CREATE_GLOBAL_NAME = "SeCreateGlobalPrivilege", + SE_UNDOCK_NAME = "SeUndockPrivilege", + SE_MANAGE_VOLUME_NAME = "SeManageVolumePrivilege", + SE_IMPERSONATE_NAME = "SeImpersonatePrivilege", + SE_ENABLE_DELEGATION_NAME = "SeEnableDelegationPrivilege", + SE_SYNC_AGENT_NAME = "SeSyncAgentPrivilege", + SE_TRUSTED_CREDMAN_ACCESS_NAME = "SeTrustedCredManAccessPrivilege", + SE_RELABEL_NAME = "SeRelabelPrivilege", + SE_INCREASE_WORKING_SET_NAME = "SeIncreaseWorkingSetPrivilege", + SE_TIME_ZONE_NAME = "SeTimeZonePrivilege", + SE_CREATE_SYMBOLIC_LINK_NAME = "SeCreateSymbolicLinkPrivilege"; + +const DWORD + SE_GROUP_MANDATORY = 0x00000001, + SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002, + SE_GROUP_ENABLED = 0x00000004, + SE_GROUP_OWNER = 0x00000008, + SE_GROUP_USE_FOR_DENY_ONLY = 0x00000010, + SE_GROUP_INTEGRITY = 0x00000020, + SE_GROUP_INTEGRITY_ENABLED = 0x00000040, + SE_GROUP_RESOURCE = 0x20000000, + SE_GROUP_LOGON_ID = 0xC0000000; + +// Primary language identifiers +enum : USHORT { + LANG_NEUTRAL, + LANG_ARABIC, + LANG_BULGARIAN, + LANG_CATALAN, + LANG_CHINESE, + LANG_CZECH, + LANG_DANISH, + LANG_GERMAN, + LANG_GREEK, + LANG_ENGLISH, + LANG_SPANISH, + LANG_FINNISH, + LANG_FRENCH, + LANG_HEBREW, + LANG_HUNGARIAN, + LANG_ICELANDIC, + LANG_ITALIAN, + LANG_JAPANESE, + LANG_KOREAN, + LANG_DUTCH, + LANG_NORWEGIAN, + LANG_POLISH, + LANG_PORTUGUESE, // = 0x16 + LANG_ROMANIAN = 0x18, + LANG_RUSSIAN, + LANG_CROATIAN, // = 0x1A + LANG_SERBIAN = 0x1A, + LANG_BOSNIAN = 0x1A, + LANG_SLOVAK, + LANG_ALBANIAN, + LANG_SWEDISH, + LANG_THAI, + LANG_TURKISH, + LANG_URDU, + LANG_INDONESIAN, + LANG_UKRAINIAN, + LANG_BELARUSIAN, + LANG_SLOVENIAN, + LANG_ESTONIAN, + LANG_LATVIAN, + LANG_LITHUANIAN, // = 0x27 + LANG_FARSI = 0x29, + LANG_PERSIAN = 0x29, + LANG_VIETNAMESE, + LANG_ARMENIAN, + LANG_AZERI, + LANG_BASQUE, + LANG_LOWER_SORBIAN, // = 0x2E + LANG_UPPER_SORBIAN = 0x2E, + LANG_MACEDONIAN, // = 0x2F + LANG_TSWANA = 0x32, + LANG_XHOSA = 0x34, + LANG_ZULU, + LANG_AFRIKAANS, + LANG_GEORGIAN, + LANG_FAEROESE, + LANG_HINDI, + LANG_MALTESE, + LANG_SAMI, + LANG_IRISH, // = 0x3C + LANG_MALAY = 0x3E, + LANG_KAZAK, + LANG_KYRGYZ, + LANG_SWAHILI, // = 0x41 + LANG_UZBEK = 0x43, + LANG_TATAR, + LANG_BENGALI, + LANG_PUNJABI, + LANG_GUJARATI, + LANG_ORIYA, + LANG_TAMIL, + LANG_TELUGU, + LANG_KANNADA, + LANG_MALAYALAM, + LANG_ASSAMESE, + LANG_MARATHI, + LANG_SANSKRIT, + LANG_MONGOLIAN, + LANG_TIBETAN, + LANG_WELSH, + LANG_KHMER, + LANG_LAO, // = 0x54 + LANG_GALICIAN = 0x56, + LANG_KONKANI, + LANG_MANIPURI, + LANG_SINDHI, + LANG_SYRIAC, + LANG_SINHALESE, // = 0x5B + LANG_INUKTITUT = 0x5D, + LANG_AMHARIC, + LANG_TAMAZIGHT, + LANG_KASHMIRI, + LANG_NEPALI, + LANG_FRISIAN, + LANG_PASHTO, + LANG_FILIPINO, + LANG_DIVEHI, // = 0x65 + LANG_HAUSA = 0x68, + LANG_YORUBA = 0x6A, + LANG_QUECHUA, + LANG_SOTHO, + LANG_BASHKIR, + LANG_LUXEMBOURGISH, + LANG_GREENLANDIC, + LANG_IGBO, // = 0x70 + LANG_TIGRIGNA = 0x73, + LANG_YI = 0x78, + LANG_MAPUDUNGUN = 0x7A, + LANG_MOHAWK = 0x7C, + LANG_BRETON = 0x7E, + LANG_UIGHUR = 0x80, + LANG_MAORI, + LANG_OCCITAN, + LANG_CORSICAN, + LANG_ALSATIAN, + LANG_YAKUT, + LANG_KICHE, + LANG_KINYARWANDA, + LANG_WOLOF, // = 0x88 + LANG_DARI = 0x8C, + LANG_MALAGASY, // = 0x8D + + LANG_SERBIAN_NEUTRAL = 0x7C1A, + LANG_BOSNIAN_NEUTRAL = 0x781A, + + LANG_INVARIANT = 0x7F +} + + +// Sublanguage identifiers +enum : USHORT { + SUBLANG_NEUTRAL, + SUBLANG_DEFAULT, + SUBLANG_SYS_DEFAULT, + SUBLANG_CUSTOM_DEFAULT, // = 3 + SUBLANG_UI_CUSTOM_DEFAULT = 3, + SUBLANG_CUSTOM_UNSPECIFIED, // = 4 + + SUBLANG_AFRIKAANS_SOUTH_AFRICA = 1, + SUBLANG_ALBANIAN_ALBANIA = 1, + SUBLANG_ALSATIAN_FRANCE = 1, + SUBLANG_AMHARIC_ETHIOPIA = 1, + + SUBLANG_ARABIC_SAUDI_ARABIA = 1, + SUBLANG_ARABIC_IRAQ, + SUBLANG_ARABIC_EGYPT, + SUBLANG_ARABIC_LIBYA, + SUBLANG_ARABIC_ALGERIA, + SUBLANG_ARABIC_MOROCCO, + SUBLANG_ARABIC_TUNISIA, + SUBLANG_ARABIC_OMAN, + SUBLANG_ARABIC_YEMEN, + SUBLANG_ARABIC_SYRIA, + SUBLANG_ARABIC_JORDAN, + SUBLANG_ARABIC_LEBANON, + SUBLANG_ARABIC_KUWAIT, + SUBLANG_ARABIC_UAE, + SUBLANG_ARABIC_BAHRAIN, + SUBLANG_ARABIC_QATAR, // = 16 + + SUBLANG_ARMENIAN_ARMENIA = 1, + SUBLANG_ASSAMESE_INDIA = 1, + + SUBLANG_AZERI_LATIN = 1, + SUBLANG_AZERI_CYRILLIC, // = 2 + + SUBLANG_BASHKIR_RUSSIA = 1, + SUBLANG_BASQUE_BASQUE = 1, + SUBLANG_BELARUSIAN_BELARUS = 1, + SUBLANG_BENGALI_INDIA = 1, + + SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN = 5, + SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC = 8, + + SUBLANG_BRETON_FRANCE = 1, + SUBLANG_BULGARIAN_BULGARIA = 1, + SUBLANG_CATALAN_CATALAN = 1, + + SUBLANG_CHINESE_TRADITIONAL = 1, + SUBLANG_CHINESE_SIMPLIFIED, + SUBLANG_CHINESE_HONGKONG, + SUBLANG_CHINESE_SINGAPORE, + SUBLANG_CHINESE_MACAU, // = 5 + + SUBLANG_CORSICAN_FRANCE = 1, + + SUBLANG_CROATIAN_CROATIA = 1, + SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN = 4, + + SUBLANG_CZECH_CZECH_REPUBLIC = 1, + SUBLANG_DANISH_DENMARK = 1, + SUBLANG_DIVEHI_MALDIVES = 1, + + SUBLANG_DUTCH = 1, + SUBLANG_DUTCH_BELGIAN, // = 2 + + SUBLANG_ENGLISH_US = 1, + SUBLANG_ENGLISH_UK, + SUBLANG_ENGLISH_AUS, + SUBLANG_ENGLISH_CAN, + SUBLANG_ENGLISH_NZ, + SUBLANG_ENGLISH_EIRE, // = 6 + SUBLANG_ENGLISH_IRELAND = 6, + SUBLANG_ENGLISH_SOUTH_AFRICA, + SUBLANG_ENGLISH_JAMAICA, + SUBLANG_ENGLISH_CARIBBEAN, + SUBLANG_ENGLISH_BELIZE, + SUBLANG_ENGLISH_TRINIDAD, + SUBLANG_ENGLISH_ZIMBABWE, + SUBLANG_ENGLISH_PHILIPPINES, // = 13 + SUBLANG_ENGLISH_INDIA = 16, + SUBLANG_ENGLISH_MALAYSIA, + SUBLANG_ENGLISH_SINGAPORE, // = 18 + + SUBLANG_ESTONIAN_ESTONIA = 1, + SUBLANG_FAEROESE_FAROE_ISLANDS = 1, + SUBLANG_FILIPINO_PHILIPPINES = 1, + SUBLANG_FINNISH_FINLAND = 1, + + SUBLANG_FRENCH = 1, + SUBLANG_FRENCH_BELGIAN, + SUBLANG_FRENCH_CANADIAN, + SUBLANG_FRENCH_SWISS, + SUBLANG_FRENCH_LUXEMBOURG, + SUBLANG_FRENCH_MONACO, // = 6 + + SUBLANG_FRISIAN_NETHERLANDS = 1, + SUBLANG_GALICIAN_GALICIAN = 1, + SUBLANG_GEORGIAN_GEORGIA = 1, + + SUBLANG_GERMAN = 1, + SUBLANG_GERMAN_SWISS, + SUBLANG_GERMAN_AUSTRIAN, + SUBLANG_GERMAN_LUXEMBOURG, + SUBLANG_GERMAN_LIECHTENSTEIN, // = 5 + + SUBLANG_GREEK_GREECE = 1, + SUBLANG_GREENLANDIC_GREENLAND = 1, + SUBLANG_GUJARATI_INDIA = 1, + SUBLANG_HAUSA_NIGERIA = 1, + SUBLANG_HEBREW_ISRAEL = 1, + SUBLANG_HINDI_INDIA = 1, + SUBLANG_HUNGARIAN_HUNGARY = 1, + SUBLANG_ICELANDIC_ICELAND = 1, + SUBLANG_IGBO_NIGERIA = 1, + SUBLANG_INDONESIAN_INDONESIA = 1, + + SUBLANG_INUKTITUT_CANADA = 1, + SUBLANG_INUKTITUT_CANADA_LATIN = 1, + + SUBLANG_IRISH_IRELAND = 1, + + SUBLANG_ITALIAN = 1, + SUBLANG_ITALIAN_SWISS, // = 2 + + SUBLANG_JAPANESE_JAPAN = 1, + + SUBLANG_KASHMIRI_INDIA = 2, + SUBLANG_KASHMIRI_SASIA = 2, + + SUBLANG_KAZAK_KAZAKHSTAN = 1, + SUBLANG_KHMER_CAMBODIA = 1, + SUBLANG_KICHE_GUATEMALA = 1, + SUBLANG_KINYARWANDA_RWANDA = 1, + SUBLANG_KONKANI_INDIA = 1, + SUBLANG_KOREAN = 1, + SUBLANG_KYRGYZ_KYRGYZSTAN = 1, + SUBLANG_LAO_LAO_PDR = 1, + SUBLANG_LATVIAN_LATVIA = 1, + + SUBLANG_LITHUANIAN = 1, + SUBLANG_LITHUANIAN_LITHUANIA = 1, + + SUBLANG_LOWER_SORBIAN_GERMANY = 1, + SUBLANG_LUXEMBOURGISH_LUXEMBOURG = 1, + SUBLANG_MACEDONIAN_MACEDONIA = 1, + SUBLANG_MALAYALAM_INDIA = 1, + SUBLANG_MALTESE_MALTA = 1, + SUBLANG_MAORI_NEW_ZEALAND = 1, + SUBLANG_MAPUDUNGUN_CHILE = 1, + SUBLANG_MARATHI_INDIA = 1, + SUBLANG_MOHAWK_MOHAWK = 1, + + SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA = 1, + SUBLANG_MONGOLIAN_PRC, // = 2 + + SUBLANG_MALAY_MALAYSIA = 1, + SUBLANG_MALAY_BRUNEI_DARUSSALAM, // = 2 + + SUBLANG_NEPALI_NEPAL = 1, + SUBLANG_NEPALI_INDIA, // = 2 + + SUBLANG_NORWEGIAN_BOKMAL = 1, + SUBLANG_NORWEGIAN_NYNORSK, // = 2 + + SUBLANG_OCCITAN_FRANCE = 1, + SUBLANG_ORIYA_INDIA = 1, + SUBLANG_PASHTO_AFGHANISTAN = 1, + SUBLANG_PERSIAN_IRAN = 1, + SUBLANG_POLISH_POLAND = 1, + + SUBLANG_PORTUGUESE_BRAZILIAN = 1, + SUBLANG_PORTUGUESE = 2, + SUBLANG_PORTUGUESE_PORTUGAL, // = 2 + + SUBLANG_PUNJABI_INDIA = 1, + + SUBLANG_QUECHUA_BOLIVIA = 1, + SUBLANG_QUECHUA_ECUADOR, + SUBLANG_QUECHUA_PERU, // = 3 + + SUBLANG_ROMANIAN_ROMANIA = 1, + SUBLANG_ROMANSH_SWITZERLAND = 1, + SUBLANG_RUSSIAN_RUSSIA = 1, + + SUBLANG_SAMI_NORTHERN_NORWAY = 1, + SUBLANG_SAMI_NORTHERN_SWEDEN, + SUBLANG_SAMI_NORTHERN_FINLAND, // = 3 + SUBLANG_SAMI_SKOLT_FINLAND = 3, + SUBLANG_SAMI_INARI_FINLAND = 3, + SUBLANG_SAMI_LULE_NORWAY, + SUBLANG_SAMI_LULE_SWEDEN, + SUBLANG_SAMI_SOUTHERN_NORWAY, + SUBLANG_SAMI_SOUTHERN_SWEDEN, // = 7 + + SUBLANG_SANSKRIT_INDIA = 1, + + SUBLANG_SERBIAN_LATIN = 2, + SUBLANG_SERBIAN_CYRILLIC, // = 3 + SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN = 6, + SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC = 7, + + SUBLANG_SINDHI_AFGHANISTAN = 2, + SUBLANG_SINHALESE_SRI_LANKA = 1, + SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA = 1, + SUBLANG_SLOVAK_SLOVAKIA = 1, + SUBLANG_SLOVENIAN_SLOVENIA = 1, + + SUBLANG_SPANISH = 1, + SUBLANG_SPANISH_MEXICAN, + SUBLANG_SPANISH_MODERN, + SUBLANG_SPANISH_GUATEMALA, + SUBLANG_SPANISH_COSTA_RICA, + SUBLANG_SPANISH_PANAMA, + SUBLANG_SPANISH_DOMINICAN_REPUBLIC, + SUBLANG_SPANISH_VENEZUELA, + SUBLANG_SPANISH_COLOMBIA, + SUBLANG_SPANISH_PERU, + SUBLANG_SPANISH_ARGENTINA, + SUBLANG_SPANISH_ECUADOR, + SUBLANG_SPANISH_CHILE, + SUBLANG_SPANISH_URUGUAY, + SUBLANG_SPANISH_PARAGUAY, + SUBLANG_SPANISH_BOLIVIA, + SUBLANG_SPANISH_EL_SALVADOR, + SUBLANG_SPANISH_HONDURAS, + SUBLANG_SPANISH_NICARAGUA, + SUBLANG_SPANISH_PUERTO_RICO, + SUBLANG_SPANISH_US, // = 21 + + SUBLANG_SWEDISH = 1, + SUBLANG_SWEDISH_SWEDEN = 1, + SUBLANG_SWEDISH_FINLAND, // = 2 + + SUBLANG_SYRIAC = 1, + SUBLANG_TAJIK_TAJIKISTAN = 1, + SUBLANG_TAMAZIGHT_ALGERIA_LATIN = 2, + SUBLANG_TAMIL_INDIA = 1, + SUBLANG_TATAR_RUSSIA = 1, + SUBLANG_TELUGU_INDIA = 1, + SUBLANG_THAI_THAILAND = 1, + SUBLANG_TIBETAN_PRC = 1, + SUBLANG_TIBETAN_BHUTAN = 2, + SUBLANG_TIGRIGNA_ERITREA = 1, + SUBLANG_TSWANA_SOUTH_AFRICA = 1, + SUBLANG_TURKISH_TURKEY = 1, + SUBLANG_TURKMEN_TURKMENISTAN = 1, + SUBLANG_UIGHUR_PRC = 1, + SUBLANG_UKRAINIAN_UKRAINE = 1, + SUBLANG_UPPER_SORBIAN_GERMANY = 1, + + SUBLANG_URDU_PAKISTAN = 1, + SUBLANG_URDU_INDIA, // = 2 + + SUBLANG_UZBEK_LATIN = 1, + SUBLANG_UZBEK_CYRILLIC, // = 2 + + SUBLANG_VIETNAMESE_VIETNAM = 1, + SUBLANG_WELSH_UNITED_KINGDOM = 1, + SUBLANG_WOLOF_SENEGAL = 1, + SUBLANG_YORUBA_NIGERIA = 1, + SUBLANG_XHOSA_SOUTH_AFRICA = 1, + SUBLANG_YAKUT_RUSSIA = 1, + SUBLANG_YI_PRC = 1, + SUBLANG_ZULU_SOUTH_AFRICA = 1 +} + +// This is not documented on MSDN +const NLS_VALID_LOCALE_MASK = 1048575; + +// Sorting identifiers +enum : WORD { + SORT_DEFAULT = 0, + SORT_JAPANESE_XJIS = 0, + SORT_JAPANESE_UNICODE = 1, + SORT_CHINESE_BIG5 = 0, + SORT_CHINESE_PRCP = 0, + SORT_CHINESE_UNICODE = 1, + SORT_CHINESE_PRC = 2, + SORT_CHINESE_BOPOMOFO = 3, + SORT_KOREAN_KSC = 0, + SORT_KOREAN_UNICODE = 1, + SORT_GERMAN_PHONE_BOOK = 1, + SORT_HUNGARIAN_DEFAULT = 0, + SORT_HUNGARIAN_TECHNICAL = 1, + SORT_GEORGIAN_TRADITIONAL = 0, + SORT_GEORGIAN_MODERN = 1 +} + +WORD MAKELANGID(USHORT p, USHORT s) { return cast(WORD)((s << 10) | p); } +WORD PRIMARYLANGID(WORD lgid) { return cast(WORD)(lgid & 0x3FF); } +WORD SUBLANGID(WORD lgid) { return cast(WORD)(lgid >>> 10); } + +DWORD MAKELCID(WORD lgid, WORD srtid) { return (cast(DWORD) srtid << 16) | cast(DWORD) lgid; } +// ??? +//DWORD MAKESORTLCID(WORD lgid, WORD srtid, WORD ver) { return (MAKELCID(lgid, srtid)) | ((cast(DWORD)ver) << 20); } +WORD LANGIDFROMLCID(LCID lcid) { return cast(WORD) lcid; } +WORD SORTIDFROMLCID(LCID lcid) { return cast(WORD) ((lcid >>> 16) & 0x0F); } +WORD SORTVERSIONFROMLCID(LCID lcid) { return cast(WORD) ((lcid >>> 20) & 0x0F); } + +const WORD LANG_SYSTEM_DEFAULT = (SUBLANG_SYS_DEFAULT << 10) | LANG_NEUTRAL; +const WORD LANG_USER_DEFAULT = (SUBLANG_DEFAULT << 10) | LANG_NEUTRAL; +const DWORD LOCALE_NEUTRAL = (SORT_DEFAULT << 16) + | (SUBLANG_NEUTRAL << 10) | LANG_NEUTRAL; + +// --- +enum : BYTE { + ACL_REVISION = 2, + ACL_REVISION_DS = 4 +} + +// These are not documented on MSDN +enum : BYTE { + ACL_REVISION1 = 1, + ACL_REVISION2, + ACL_REVISION3, + ACL_REVISION4 // = 4 +} + +const BYTE + MIN_ACL_REVISION = 2, + MAX_ACL_REVISION = 4; + +/+ +// These aren't necessary for D. +const MINCHAR=0x80; +const MAXCHAR=0x7f; +const MINSHORT=0x8000; +const MAXSHORT=0x7fff; +const MINLONG=0x80000000; +const MAXLONG=0x7fffffff; +const MAXBYTE=0xff; +const MAXWORD=0xffff; +const MAXDWORD=0xffffffff; ++/ + +// SYSTEM_INFO.dwProcessorType +enum : DWORD { + PROCESSOR_INTEL_386 = 386, + PROCESSOR_INTEL_486 = 486, + PROCESSOR_INTEL_PENTIUM = 586, + PROCESSOR_MIPS_R4000 = 4000, + PROCESSOR_ALPHA_21064 = 21064, + PROCESSOR_INTEL_IA64 = 2200 +} + +// SYSTEM_INFO.wProcessorArchitecture +enum : WORD { + PROCESSOR_ARCHITECTURE_INTEL, + PROCESSOR_ARCHITECTURE_MIPS, + PROCESSOR_ARCHITECTURE_ALPHA, + PROCESSOR_ARCHITECTURE_PPC, + PROCESSOR_ARCHITECTURE_SHX, + PROCESSOR_ARCHITECTURE_ARM, + PROCESSOR_ARCHITECTURE_IA64, + PROCESSOR_ARCHITECTURE_ALPHA64, + PROCESSOR_ARCHITECTURE_MSIL, + PROCESSOR_ARCHITECTURE_AMD64, + PROCESSOR_ARCHITECTURE_IA32_ON_WIN64, // = 10 + PROCESSOR_ARCHITECTURE_UNKNOWN = 0xFFFF +} + +// IsProcessorFeaturePresent() +enum : DWORD { + PF_FLOATING_POINT_PRECISION_ERRATA, + PF_FLOATING_POINT_EMULATED, + PF_COMPARE_EXCHANGE_DOUBLE, + PF_MMX_INSTRUCTIONS_AVAILABLE, + PF_PPC_MOVEMEM_64BIT_OK, + PF_ALPHA_BYTE_INSTRUCTIONS, + PF_XMMI_INSTRUCTIONS_AVAILABLE, + PF_3DNOW_INSTRUCTIONS_AVAILABLE, + PF_RDTSC_INSTRUCTION_AVAILABLE, + PF_PAE_ENABLED, + PF_XMMI64_INSTRUCTIONS_AVAILABLE +} + +// MinGW: also in ddk/ntifs.h +enum : DWORD { + FILE_ACTION_ADDED = 1, + FILE_ACTION_REMOVED, + FILE_ACTION_MODIFIED, + FILE_ACTION_RENAMED_OLD_NAME, + FILE_ACTION_RENAMED_NEW_NAME, + FILE_ACTION_ADDED_STREAM, + FILE_ACTION_REMOVED_STREAM, + FILE_ACTION_MODIFIED_STREAM, + FILE_ACTION_REMOVED_BY_DELETE, + FILE_ACTION_ID_NOT_TUNNELLED, + FILE_ACTION_TUNNELLED_ID_COLLISION // = 11 +} +// MinGW: end ntifs.h + +const DWORD + HEAP_NO_SERIALIZE = 0x01, + HEAP_GROWABLE = 0x02, + HEAP_GENERATE_EXCEPTIONS = 0x04, + HEAP_ZERO_MEMORY = 0x08, + HEAP_REALLOC_IN_PLACE_ONLY = 0x10, + HEAP_TAIL_CHECKING_ENABLED = 0x20, + HEAP_FREE_CHECKING_ENABLED = 0x40, + HEAP_DISABLE_COALESCE_ON_FREE = 0x80; + +// These are not documented on MSDN +const HEAP_CREATE_ALIGN_16 = 0; +const HEAP_CREATE_ENABLE_TRACING = 0x020000; +const HEAP_MAXIMUM_TAG = 0x000FFF; +const HEAP_PSEUDO_TAG_FLAG = 0x008000; +const HEAP_TAG_SHIFT = 16; +// ??? +//MACRO #define HEAP_MAKE_TAG_FLAGS(b,o) ((DWORD)((b)+(o)<<16))) + +const ACCESS_MASK + KEY_QUERY_VALUE = 0x000001, + KEY_SET_VALUE = 0x000002, + KEY_CREATE_SUB_KEY = 0x000004, + KEY_ENUMERATE_SUB_KEYS = 0x000008, + KEY_NOTIFY = 0x000010, + KEY_CREATE_LINK = 0x000020, + KEY_WRITE = 0x020006, + KEY_EXECUTE = 0x020019, + KEY_READ = 0x020019, + KEY_ALL_ACCESS = 0x0F003F; + +static if (WINVER >= 0x502) { + const ACCESS_MASK + KEY_WOW64_64KEY = 0x000100, + KEY_WOW64_32KEY = 0x000200; +} + +const DWORD + REG_WHOLE_HIVE_VOLATILE = 1, + REG_REFRESH_HIVE = 2, + REG_NO_LAZY_FLUSH = 4; + +const DWORD + REG_OPTION_RESERVED = 0, + REG_OPTION_NON_VOLATILE = 0, + REG_OPTION_VOLATILE = 1, + REG_OPTION_CREATE_LINK = 2, + REG_OPTION_BACKUP_RESTORE = 4, + REG_OPTION_OPEN_LINK = 8, + REG_LEGAL_OPTION = 15; + +const SECURITY_INFORMATION + OWNER_SECURITY_INFORMATION = 0x00000001, + GROUP_SECURITY_INFORMATION = 0x00000002, + DACL_SECURITY_INFORMATION = 0x00000004, + SACL_SECURITY_INFORMATION = 0x00000008, + LABEL_SECURITY_INFORMATION = 0x00000010, + UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000, + UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000, + PROTECTED_SACL_SECURITY_INFORMATION = 0x40000000, + PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000; + +const DWORD MAXIMUM_PROCESSORS = 32; + +// VirtualAlloc(), etc +// ------------------- + +enum : DWORD { + PAGE_NOACCESS = 0x0001, + PAGE_READONLY = 0x0002, + PAGE_READWRITE = 0x0004, + PAGE_WRITECOPY = 0x0008, + PAGE_EXECUTE = 0x0010, + PAGE_EXECUTE_READ = 0x0020, + PAGE_EXECUTE_READWRITE = 0x0040, + PAGE_EXECUTE_WRITECOPY = 0x0080, + PAGE_GUARD = 0x0100, + PAGE_NOCACHE = 0x0200 +} + +enum : DWORD { + MEM_COMMIT = 0x00001000, + MEM_RESERVE = 0x00002000, + MEM_DECOMMIT = 0x00004000, + MEM_RELEASE = 0x00008000, + MEM_FREE = 0x00010000, + MEM_PRIVATE = 0x00020000, + MEM_MAPPED = 0x00040000, + MEM_RESET = 0x00080000, + MEM_TOP_DOWN = 0x00100000, + MEM_WRITE_WATCH = 0x00200000, // MinGW (???): 98/Me + MEM_PHYSICAL = 0x00400000, + MEM_4MB_PAGES = 0x80000000 +} + +// MinGW: also in ddk/ntifs.h +// CreateFileMapping() +const DWORD + SEC_BASED = 0x00200000, + SEC_NO_CHANGE = 0x00400000, + SEC_FILE = 0x00800000, + SEC_IMAGE = 0x01000000, + SEC_VLM = 0x02000000, + SEC_RESERVE = 0x04000000, + SEC_COMMIT = 0x08000000, + SEC_NOCACHE = 0x10000000, + MEM_IMAGE = SEC_IMAGE; +// MinGW: end ntifs.h + +// ??? +const ACCESS_MASK + SECTION_QUERY = 0x000001, + SECTION_MAP_WRITE = 0x000002, + SECTION_MAP_READ = 0x000004, + SECTION_MAP_EXECUTE = 0x000008, + SECTION_EXTEND_SIZE = 0x000010, + SECTION_ALL_ACCESS = 0x0F001F; + +// These are not documented on MSDN +const MESSAGE_RESOURCE_UNICODE = 1; +const RTL_CRITSECT_TYPE = 0; +const RTL_RESOURCE_TYPE = 1; + +// COFF file format +// ---------------- + +// IMAGE_FILE_HEADER.Characteristics +const WORD + IMAGE_FILE_RELOCS_STRIPPED = 0x0001, + IMAGE_FILE_EXECUTABLE_IMAGE = 0x0002, + IMAGE_FILE_LINE_NUMS_STRIPPED = 0x0004, + IMAGE_FILE_LOCAL_SYMS_STRIPPED = 0x0008, + IMAGE_FILE_AGGRESIVE_WS_TRIM = 0x0010, + IMAGE_FILE_LARGE_ADDRESS_AWARE = 0x0020, + IMAGE_FILE_BYTES_REVERSED_LO = 0x0080, + IMAGE_FILE_32BIT_MACHINE = 0x0100, + IMAGE_FILE_DEBUG_STRIPPED = 0x0200, + IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 0x0400, + IMAGE_FILE_NET_RUN_FROM_SWAP = 0x0800, + IMAGE_FILE_SYSTEM = 0x1000, + IMAGE_FILE_DLL = 0x2000, + IMAGE_FILE_UP_SYSTEM_ONLY = 0x4000, + IMAGE_FILE_BYTES_REVERSED_HI = 0x8000; + +// IMAGE_FILE_HEADER.Machine +enum : WORD { + IMAGE_FILE_MACHINE_UNKNOWN = 0x0000, + IMAGE_FILE_MACHINE_I386 = 0x014C, + IMAGE_FILE_MACHINE_R3000 = 0x0162, + IMAGE_FILE_MACHINE_R4000 = 0x0166, + IMAGE_FILE_MACHINE_R10000 = 0x0168, + IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x0169, + IMAGE_FILE_MACHINE_ALPHA = 0x0184, + IMAGE_FILE_MACHINE_SH3 = 0x01A2, + IMAGE_FILE_MACHINE_SH3DSP = 0x01A3, + IMAGE_FILE_MACHINE_SH4 = 0x01A6, + IMAGE_FILE_MACHINE_SH5 = 0x01A8, + IMAGE_FILE_MACHINE_ARM = 0x01C0, + IMAGE_FILE_MACHINE_THUMB = 0x01C2, + IMAGE_FILE_MACHINE_AM33 = 0x01D3, + IMAGE_FILE_MACHINE_POWERPC = 0x01F0, + IMAGE_FILE_MACHINE_POWERPCFP = 0x01F1, + IMAGE_FILE_MACHINE_IA64 = 0x0200, + IMAGE_FILE_MACHINE_MIPS16 = 0x0266, + IMAGE_FILE_MACHINE_MIPSFPU = 0x0366, + IMAGE_FILE_MACHINE_MIPSFPU16 = 0x0466, + IMAGE_FILE_MACHINE_EBC = 0x0EBC, + IMAGE_FILE_MACHINE_AMD64 = 0x8664, + IMAGE_FILE_MACHINE_M32R = 0x9041 +} + +// ??? +enum { + IMAGE_DOS_SIGNATURE = 0x5A4D, + IMAGE_OS2_SIGNATURE = 0x454E, + IMAGE_OS2_SIGNATURE_LE = 0x454C, + IMAGE_VXD_SIGNATURE = 0x454C, + IMAGE_NT_SIGNATURE = 0x4550 +} + +// IMAGE_OPTIONAL_HEADER.Magic +enum : WORD { + IMAGE_NT_OPTIONAL_HDR32_MAGIC = 0x010B, + IMAGE_ROM_OPTIONAL_HDR_MAGIC = 0x0107, + IMAGE_NT_OPTIONAL_HDR64_MAGIC = 0x020B +} + +// IMAGE_OPTIONAL_HEADER.Subsystem +enum : WORD { + IMAGE_SUBSYSTEM_UNKNOWN = 0, + IMAGE_SUBSYSTEM_NATIVE, + IMAGE_SUBSYSTEM_WINDOWS_GUI, + IMAGE_SUBSYSTEM_WINDOWS_CUI, // = 3 + IMAGE_SUBSYSTEM_OS2_CUI = 5, + IMAGE_SUBSYSTEM_POSIX_CUI = 7, + IMAGE_SUBSYSTEM_NATIVE_WINDOWS, + IMAGE_SUBSYSTEM_WINDOWS_CE_GUI, + IMAGE_SUBSYSTEM_EFI_APPLICATION, + IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER, + IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER, + IMAGE_SUBSYSTEM_EFI_ROM, + IMAGE_SUBSYSTEM_XBOX, // = 14 + IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION = 16 +} + +// IMAGE_OPTIONAL_HEADER.DllCharacteristics +const WORD + IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE = 0x0040, + IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY = 0x0080, + IMAGE_DLL_CHARACTERISTICS_NX_COMPAT = 0x0100, + IMAGE_DLLCHARACTERISTICS_NO_ISOLATION = 0x0200, + IMAGE_DLLCHARACTERISTICS_NO_SEH = 0x0400, + IMAGE_DLLCHARACTERISTICS_NO_BIND = 0x0800, + IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 0x2000, + IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000; + +// ??? +const IMAGE_SEPARATE_DEBUG_SIGNATURE = 0x4944; + +const size_t + IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16, + IMAGE_SIZEOF_ROM_OPTIONAL_HEADER = 56, + IMAGE_SIZEOF_STD_OPTIONAL_HEADER = 28, + IMAGE_SIZEOF_NT_OPTIONAL_HEADER = 224, + IMAGE_SIZEOF_SHORT_NAME = 8, + IMAGE_SIZEOF_SECTION_HEADER = 40, + IMAGE_SIZEOF_SYMBOL = 18, + IMAGE_SIZEOF_AUX_SYMBOL = 18, + IMAGE_SIZEOF_RELOCATION = 10, + IMAGE_SIZEOF_BASE_RELOCATION = 8, + IMAGE_SIZEOF_LINENUMBER = 6, + IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR = 60, + SIZEOF_RFPO_DATA = 16; + +PIMAGE_SECTION_HEADER IMAGE_FIRST_SECTION(PIMAGE_NT_HEADERS h) { + return cast(PIMAGE_SECTION_HEADER) + (&h.OptionalHeader + h.FileHeader.SizeOfOptionalHeader); +} + +// ImageDirectoryEntryToDataEx() +enum : USHORT { + IMAGE_DIRECTORY_ENTRY_EXPORT = 0, + IMAGE_DIRECTORY_ENTRY_IMPORT, + IMAGE_DIRECTORY_ENTRY_RESOURCE, + IMAGE_DIRECTORY_ENTRY_EXCEPTION, + IMAGE_DIRECTORY_ENTRY_SECURITY, + IMAGE_DIRECTORY_ENTRY_BASERELOC, + IMAGE_DIRECTORY_ENTRY_DEBUG, + IMAGE_DIRECTORY_ENTRY_COPYRIGHT, // = 7 + IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7, + IMAGE_DIRECTORY_ENTRY_GLOBALPTR, + IMAGE_DIRECTORY_ENTRY_TLS, + IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG, + IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT, + IMAGE_DIRECTORY_ENTRY_IAT, + IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT, + IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR, // = 14 +} + +// IMAGE_SECTION_HEADER.Characteristics +const DWORD + IMAGE_SCN_TYPE_REG = 0x00000000, + IMAGE_SCN_TYPE_DSECT = 0x00000001, + IMAGE_SCN_TYPE_NOLOAD = 0x00000002, + IMAGE_SCN_TYPE_GROUP = 0x00000004, + IMAGE_SCN_TYPE_NO_PAD = 0x00000008, + IMAGE_SCN_TYPE_COPY = 0x00000010, + IMAGE_SCN_CNT_CODE = 0x00000020, + IMAGE_SCN_CNT_INITIALIZED_DATA = 0x00000040, + IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080, + IMAGE_SCN_LNK_OTHER = 0x00000100, + IMAGE_SCN_LNK_INFO = 0x00000200, + IMAGE_SCN_TYPE_OVER = 0x00000400, + IMAGE_SCN_LNK_REMOVE = 0x00000800, + IMAGE_SCN_LNK_COMDAT = 0x00001000, + IMAGE_SCN_MEM_FARDATA = 0x00008000, + IMAGE_SCN_GPREL = 0x00008000, + IMAGE_SCN_MEM_PURGEABLE = 0x00020000, + IMAGE_SCN_MEM_16BIT = 0x00020000, + IMAGE_SCN_MEM_LOCKED = 0x00040000, + IMAGE_SCN_MEM_PRELOAD = 0x00080000, + IMAGE_SCN_ALIGN_1BYTES = 0x00100000, + IMAGE_SCN_ALIGN_2BYTES = 0x00200000, + IMAGE_SCN_ALIGN_4BYTES = 0x00300000, + IMAGE_SCN_ALIGN_8BYTES = 0x00400000, + IMAGE_SCN_ALIGN_16BYTES = 0x00500000, + IMAGE_SCN_ALIGN_32BYTES = 0x00600000, + IMAGE_SCN_ALIGN_64BYTES = 0x00700000, + IMAGE_SCN_ALIGN_128BYTES = 0x00800000, + IMAGE_SCN_ALIGN_256BYTES = 0x00900000, + IMAGE_SCN_ALIGN_512BYTES = 0x00A00000, + IMAGE_SCN_ALIGN_1024BYTES = 0x00B00000, + IMAGE_SCN_ALIGN_2048BYTES = 0x00C00000, + IMAGE_SCN_ALIGN_4096BYTES = 0x00D00000, + IMAGE_SCN_ALIGN_8192BYTES = 0x00E00000, + IMAGE_SCN_LNK_NRELOC_OVFL = 0x01000000, + IMAGE_SCN_MEM_DISCARDABLE = 0x02000000, + IMAGE_SCN_MEM_NOT_CACHED = 0x04000000, + IMAGE_SCN_MEM_NOT_PAGED = 0x08000000, + IMAGE_SCN_MEM_SHARED = 0x10000000, + IMAGE_SCN_MEM_EXECUTE = 0x20000000, + IMAGE_SCN_MEM_READ = 0x40000000, + IMAGE_SCN_MEM_WRITE = 0x80000000; + +/* The following constants are mostlydocumented at + * http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/pecoff.doc + * but don't seem to be defined in the HTML docs. + */ +enum : SHORT { + IMAGE_SYM_UNDEFINED = 0, + IMAGE_SYM_ABSOLUTE = -1, + IMAGE_SYM_DEBUG = -2 +} + +enum : ubyte { + IMAGE_SYM_TYPE_NULL, + IMAGE_SYM_TYPE_VOID, + IMAGE_SYM_TYPE_CHAR, + IMAGE_SYM_TYPE_SHORT, + IMAGE_SYM_TYPE_INT, + IMAGE_SYM_TYPE_LONG, + IMAGE_SYM_TYPE_FLOAT, + IMAGE_SYM_TYPE_DOUBLE, + IMAGE_SYM_TYPE_STRUCT, + IMAGE_SYM_TYPE_UNION, + IMAGE_SYM_TYPE_ENUM, + IMAGE_SYM_TYPE_MOE, + IMAGE_SYM_TYPE_BYTE, + IMAGE_SYM_TYPE_WORD, + IMAGE_SYM_TYPE_UINT, + IMAGE_SYM_TYPE_DWORD // = 15 +} +const IMAGE_SYM_TYPE_PCODE = 32768; // ??? + +enum : ubyte { + IMAGE_SYM_DTYPE_NULL, + IMAGE_SYM_DTYPE_POINTER, + IMAGE_SYM_DTYPE_FUNCTION, + IMAGE_SYM_DTYPE_ARRAY +} + +enum : BYTE { + IMAGE_SYM_CLASS_END_OF_FUNCTION = 0xFF, + IMAGE_SYM_CLASS_NULL = 0, + IMAGE_SYM_CLASS_AUTOMATIC, + IMAGE_SYM_CLASS_EXTERNAL, + IMAGE_SYM_CLASS_STATIC, + IMAGE_SYM_CLASS_REGISTER, + IMAGE_SYM_CLASS_EXTERNAL_DEF, + IMAGE_SYM_CLASS_LABEL, + IMAGE_SYM_CLASS_UNDEFINED_LABEL, + IMAGE_SYM_CLASS_MEMBER_OF_STRUCT, + IMAGE_SYM_CLASS_ARGUMENT, + IMAGE_SYM_CLASS_STRUCT_TAG, + IMAGE_SYM_CLASS_MEMBER_OF_UNION, + IMAGE_SYM_CLASS_UNION_TAG, + IMAGE_SYM_CLASS_TYPE_DEFINITION, + IMAGE_SYM_CLASS_UNDEFINED_STATIC, + IMAGE_SYM_CLASS_ENUM_TAG, + IMAGE_SYM_CLASS_MEMBER_OF_ENUM, + IMAGE_SYM_CLASS_REGISTER_PARAM, + IMAGE_SYM_CLASS_BIT_FIELD, // = 18 + IMAGE_SYM_CLASS_FAR_EXTERNAL = 68, + IMAGE_SYM_CLASS_BLOCK = 100, + IMAGE_SYM_CLASS_FUNCTION, + IMAGE_SYM_CLASS_END_OF_STRUCT, + IMAGE_SYM_CLASS_FILE, + IMAGE_SYM_CLASS_SECTION, + IMAGE_SYM_CLASS_WEAK_EXTERNAL,// = 105 + IMAGE_SYM_CLASS_CLR_TOKEN = 107 +} + +enum : BYTE { + IMAGE_COMDAT_SELECT_NODUPLICATES = 1, + IMAGE_COMDAT_SELECT_ANY, + IMAGE_COMDAT_SELECT_SAME_SIZE, + IMAGE_COMDAT_SELECT_EXACT_MATCH, + IMAGE_COMDAT_SELECT_ASSOCIATIVE, + IMAGE_COMDAT_SELECT_LARGEST, + IMAGE_COMDAT_SELECT_NEWEST // = 7 +} + +enum : DWORD { + IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1, + IMAGE_WEAK_EXTERN_SEARCH_LIBRARY, + IMAGE_WEAK_EXTERN_SEARCH_ALIAS +} + +enum : WORD { + IMAGE_REL_I386_ABSOLUTE = 0x0000, + IMAGE_REL_I386_DIR16 = 0x0001, + IMAGE_REL_I386_REL16 = 0x0002, + IMAGE_REL_I386_DIR32 = 0x0006, + IMAGE_REL_I386_DIR32NB = 0x0007, + IMAGE_REL_I386_SEG12 = 0x0009, + IMAGE_REL_I386_SECTION = 0x000A, + IMAGE_REL_I386_SECREL = 0x000B, + IMAGE_REL_I386_TOKEN = 0x000C, + IMAGE_REL_I386_SECREL7 = 0x000D, + IMAGE_REL_I386_REL32 = 0x0014 +} + +enum : WORD { + IMAGE_REL_AMD64_ABSOLUTE = 0x0000, + IMAGE_REL_AMD64_ADDR64 = 0x0001, + IMAGE_REL_AMD64_ADDR32 = 0x0002, + IMAGE_REL_AMD64_ADDR32NB = 0x0003, + IMAGE_REL_AMD64_REL32 = 0x0004, + IMAGE_REL_AMD64_REL32_1 = 0x0005, + IMAGE_REL_AMD64_REL32_2 = 0x0006, + IMAGE_REL_AMD64_REL32_3 = 0x0007, + IMAGE_REL_AMD64_REL32_4 = 0x0008, + IMAGE_REL_AMD64_REL32_5 = 0x0009, + IMAGE_REL_AMD64_SECTION = 0x000A, + IMAGE_REL_AMD64_SECREL = 0x000B, + IMAGE_REL_AMD64_SECREL7 = 0x000C, + IMAGE_REL_AMD64_TOKEN = 0x000D, + IMAGE_REL_AMD64_SREL32 = 0x000E, + IMAGE_REL_AMD64_PAIR = 0x000F, + IMAGE_REL_AMD64_SSPAN32 = 0x0010 +} + +enum : WORD { + IMAGE_REL_IA64_ABSOLUTE = 0x0000, + IMAGE_REL_IA64_IMM14 = 0x0001, + IMAGE_REL_IA64_IMM22 = 0x0002, + IMAGE_REL_IA64_IMM64 = 0x0003, + IMAGE_REL_IA64_DIR32 = 0x0004, + IMAGE_REL_IA64_DIR64 = 0x0005, + IMAGE_REL_IA64_PCREL21B = 0x0006, + IMAGE_REL_IA64_PCREL21M = 0x0007, + IMAGE_REL_IA64_PCREL21F = 0x0008, + IMAGE_REL_IA64_GPREL22 = 0x0009, + IMAGE_REL_IA64_LTOFF22 = 0x000A, + IMAGE_REL_IA64_SECTION = 0x000B, + IMAGE_REL_IA64_SECREL22 = 0x000C, + IMAGE_REL_IA64_SECREL64I = 0x000D, + IMAGE_REL_IA64_SECREL32 = 0x000E, + IMAGE_REL_IA64_DIR32NB = 0x0010, + IMAGE_REL_IA64_SREL14 = 0x0011, + IMAGE_REL_IA64_SREL22 = 0x0012, + IMAGE_REL_IA64_SREL32 = 0x0013, + IMAGE_REL_IA64_UREL32 = 0x0014, + IMAGE_REL_IA64_PCREL60X = 0x0015, + IMAGE_REL_IA64_PCREL60B = 0x0016, + IMAGE_REL_IA64_PCREL60F = 0x0017, + IMAGE_REL_IA64_PCREL60I = 0x0018, + IMAGE_REL_IA64_PCREL60M = 0x0019, + IMAGE_REL_IA64_IMMGPREL64 = 0x001A, + IMAGE_REL_IA64_TOKEN = 0x001B, + IMAGE_REL_IA64_GPREL32 = 0x001C, + IMAGE_REL_IA64_ADDEND = 0x001F +} + +enum : WORD { + IMAGE_REL_SH3_ABSOLUTE = 0x0000, + IMAGE_REL_SH3_DIRECT16 = 0x0001, + IMAGE_REL_SH3_DIRECT32 = 0x0002, + IMAGE_REL_SH3_DIRECT8 = 0x0003, + IMAGE_REL_SH3_DIRECT8_WORD = 0x0004, + IMAGE_REL_SH3_DIRECT8_LONG = 0x0005, + IMAGE_REL_SH3_DIRECT4 = 0x0006, + IMAGE_REL_SH3_DIRECT4_WORD = 0x0007, + IMAGE_REL_SH3_DIRECT4_LONG = 0x0008, + IMAGE_REL_SH3_PCREL8_WORD = 0x0009, + IMAGE_REL_SH3_PCREL8_LONG = 0x000A, + IMAGE_REL_SH3_PCREL12_WORD = 0x000B, + IMAGE_REL_SH3_STARTOF_SECTION = 0x000C, + IMAGE_REL_SH3_SIZEOF_SECTION = 0x000D, + IMAGE_REL_SH3_SECTION = 0x000E, + IMAGE_REL_SH3_SECREL = 0x000F, + IMAGE_REL_SH3_DIRECT32_NB = 0x0010, + IMAGE_REL_SH3_GPREL4_LONG = 0x0011, + IMAGE_REL_SH3_TOKEN = 0x0012, + IMAGE_REL_SHM_PCRELPT = 0x0013, + IMAGE_REL_SHM_REFLO = 0x0014, + IMAGE_REL_SHM_REFHALF = 0x0015, + IMAGE_REL_SHM_RELLO = 0x0016, + IMAGE_REL_SHM_RELHALF = 0x0017, + IMAGE_REL_SHM_PAIR = 0x0018, + IMAGE_REL_SHM_NOMODE = 0x8000 +} + +enum : WORD { + IMAGE_REL_M32R_ABSOLUTE = 0x0000, + IMAGE_REL_M32R_ADDR32 = 0x0001, + IMAGE_REL_M32R_ADDR32NB = 0x0002, + IMAGE_REL_M32R_ADDR24 = 0x0003, + IMAGE_REL_M32R_GPREL16 = 0x0004, + IMAGE_REL_M32R_PCREL24 = 0x0005, + IMAGE_REL_M32R_PCREL16 = 0x0006, + IMAGE_REL_M32R_PCREL8 = 0x0007, + IMAGE_REL_M32R_REFHALF = 0x0008, + IMAGE_REL_M32R_REFHI = 0x0009, + IMAGE_REL_M32R_REFLO = 0x000A, + IMAGE_REL_M32R_PAIR = 0x000B, + IMAGE_REL_M32R_SECTION = 0x000C, + IMAGE_REL_M32R_SECREL = 0x000D, + IMAGE_REL_M32R_TOKEN = 0x000E +} + +enum : WORD { + IMAGE_REL_MIPS_ABSOLUTE = 0x0000, + IMAGE_REL_MIPS_REFHALF = 0x0001, + IMAGE_REL_MIPS_REFWORD = 0x0002, + IMAGE_REL_MIPS_JMPADDR = 0x0003, + IMAGE_REL_MIPS_REFHI = 0x0004, + IMAGE_REL_MIPS_REFLO = 0x0005, + IMAGE_REL_MIPS_GPREL = 0x0006, + IMAGE_REL_MIPS_LITERAL = 0x0007, + IMAGE_REL_MIPS_SECTION = 0x000A, + IMAGE_REL_MIPS_SECREL = 0x000B, + IMAGE_REL_MIPS_SECRELLO = 0x000C, + IMAGE_REL_MIPS_SECRELHI = 0x000D, + IMAGE_REL_MIPS_JMPADDR16 = 0x0010, + IMAGE_REL_MIPS_REFWORDNB = 0x0022, + IMAGE_REL_MIPS_PAIR = 0x0025 +} + + +enum : WORD { + IMAGE_REL_ALPHA_ABSOLUTE, + IMAGE_REL_ALPHA_REFLONG, + IMAGE_REL_ALPHA_REFQUAD, + IMAGE_REL_ALPHA_GPREL32, + IMAGE_REL_ALPHA_LITERAL, + IMAGE_REL_ALPHA_LITUSE, + IMAGE_REL_ALPHA_GPDISP, + IMAGE_REL_ALPHA_BRADDR, + IMAGE_REL_ALPHA_HINT, + IMAGE_REL_ALPHA_INLINE_REFLONG, + IMAGE_REL_ALPHA_REFHI, + IMAGE_REL_ALPHA_REFLO, + IMAGE_REL_ALPHA_PAIR, + IMAGE_REL_ALPHA_MATCH, + IMAGE_REL_ALPHA_SECTION, + IMAGE_REL_ALPHA_SECREL, + IMAGE_REL_ALPHA_REFLONGNB, + IMAGE_REL_ALPHA_SECRELLO, + IMAGE_REL_ALPHA_SECRELHI // = 18 +} + +enum : WORD { + IMAGE_REL_PPC_ABSOLUTE, + IMAGE_REL_PPC_ADDR64, + IMAGE_REL_PPC_ADDR32, + IMAGE_REL_PPC_ADDR24, + IMAGE_REL_PPC_ADDR16, + IMAGE_REL_PPC_ADDR14, + IMAGE_REL_PPC_REL24, + IMAGE_REL_PPC_REL14, + IMAGE_REL_PPC_TOCREL16, + IMAGE_REL_PPC_TOCREL14, + IMAGE_REL_PPC_ADDR32NB, + IMAGE_REL_PPC_SECREL, + IMAGE_REL_PPC_SECTION, + IMAGE_REL_PPC_IFGLUE, + IMAGE_REL_PPC_IMGLUE, + IMAGE_REL_PPC_SECREL16, + IMAGE_REL_PPC_REFHI, + IMAGE_REL_PPC_REFLO, + IMAGE_REL_PPC_PAIR // = 18 +} + +// ??? +const IMAGE_REL_PPC_TYPEMASK = 0x00FF; +const IMAGE_REL_PPC_NEG = 0x0100; +const IMAGE_REL_PPC_BRTAKEN = 0x0200; +const IMAGE_REL_PPC_BRNTAKEN = 0x0400; +const IMAGE_REL_PPC_TOCDEFN = 0x0800; + +enum { + IMAGE_REL_BASED_ABSOLUTE, + IMAGE_REL_BASED_HIGH, + IMAGE_REL_BASED_LOW, + IMAGE_REL_BASED_HIGHLOW, + IMAGE_REL_BASED_HIGHADJ, + IMAGE_REL_BASED_MIPS_JMPADDR +} +// End of constants documented in pecoff.doc + +const size_t IMAGE_ARCHIVE_START_SIZE = 8; + +const TCHAR[] + IMAGE_ARCHIVE_START = "!\n", + IMAGE_ARCHIVE_END = "`\n", + IMAGE_ARCHIVE_PAD = "\n", + IMAGE_ARCHIVE_LINKER_MEMBER = "/ ", + IMAGE_ARCHIVE_LONGNAMES_MEMBER = "// "; + +const IMAGE_ORDINAL_FLAG32 = 0x80000000; + +ulong IMAGE_ORDINAL64(ulong Ordinal) { return Ordinal & 0xFFFF; } +uint IMAGE_ORDINAL32(uint Ordinal) { return Ordinal & 0xFFFF; } + +bool IMAGE_SNAP_BY_ORDINAL32(uint Ordinal) { + return (Ordinal & IMAGE_ORDINAL_FLAG32) != 0; +} + +const ulong IMAGE_ORDINAL_FLAG64 = 0x8000000000000000; + +bool IMAGE_SNAP_BY_ORDINAL64(ulong Ordinal) { + return (Ordinal & IMAGE_ORDINAL_FLAG64) != 0; +} + +// ??? +const IMAGE_RESOURCE_NAME_IS_STRING = 0x80000000; +const IMAGE_RESOURCE_DATA_IS_DIRECTORY = 0x80000000; + +enum : DWORD { + IMAGE_DEBUG_TYPE_UNKNOWN, + IMAGE_DEBUG_TYPE_COFF, + IMAGE_DEBUG_TYPE_CODEVIEW, + IMAGE_DEBUG_TYPE_FPO, + IMAGE_DEBUG_TYPE_MISC, + IMAGE_DEBUG_TYPE_EXCEPTION, + IMAGE_DEBUG_TYPE_FIXUP, + IMAGE_DEBUG_TYPE_OMAP_TO_SRC, + IMAGE_DEBUG_TYPE_OMAP_FROM_SRC, + IMAGE_DEBUG_TYPE_BORLAND // = 9 +} + +enum : ubyte { + FRAME_FPO, + FRAME_TRAP, + FRAME_TSS, + FRAME_NONFPO +} + +// ??? +const IMAGE_DEBUG_MISC_EXENAME = 1; + +// ??? +const N_BTMASK = 0x000F; +const N_TMASK = 0x0030; +const N_TMASK1 = 0x00C0; +const N_TMASK2 = 0x00F0; +const N_BTSHFT = 4; +const N_TSHIFT = 2; + +const int + IS_TEXT_UNICODE_ASCII16 = 0x0001, + IS_TEXT_UNICODE_STATISTICS = 0x0002, + IS_TEXT_UNICODE_CONTROLS = 0x0004, + IS_TEXT_UNICODE_SIGNATURE = 0x0008, + IS_TEXT_UNICODE_REVERSE_ASCII16 = 0x0010, + IS_TEXT_UNICODE_REVERSE_STATISTICS = 0x0020, + IS_TEXT_UNICODE_REVERSE_CONTROLS = 0x0040, + IS_TEXT_UNICODE_REVERSE_SIGNATURE = 0x0080, + IS_TEXT_UNICODE_ILLEGAL_CHARS = 0x0100, + IS_TEXT_UNICODE_ODD_LENGTH = 0x0200, + IS_TEXT_UNICODE_NULL_BYTES = 0x1000, + IS_TEXT_UNICODE_UNICODE_MASK = 0x000F, + IS_TEXT_UNICODE_REVERSE_MASK = 0x00F0, + IS_TEXT_UNICODE_NOT_UNICODE_MASK = 0x0F00, + IS_TEXT_UNICODE_NOT_ASCII_MASK = 0xF000; + +const DWORD + SERVICE_KERNEL_DRIVER = 0x0001, + SERVICE_FILE_SYSTEM_DRIVER = 0x0002, + SERVICE_ADAPTER = 0x0004, + SERVICE_RECOGNIZER_DRIVER = 0x0008, + SERVICE_WIN32_OWN_PROCESS = 0x0010, + SERVICE_WIN32_SHARE_PROCESS = 0x0020, + SERVICE_INTERACTIVE_PROCESS = 0x0100, + SERVICE_DRIVER = 0x000B, + SERVICE_WIN32 = 0x0030, + SERVICE_TYPE_ALL = 0x013F; + +enum : DWORD { + SERVICE_BOOT_START = 0, + SERVICE_SYSTEM_START = 1, + SERVICE_AUTO_START = 2, + SERVICE_DEMAND_START = 3, + SERVICE_DISABLED = 4 +} + +enum : DWORD { + SERVICE_ERROR_IGNORE = 0, + SERVICE_ERROR_NORMAL = 1, + SERVICE_ERROR_SEVERE = 2, + SERVICE_ERROR_CRITICAL = 3 +} + + +const uint + SE_OWNER_DEFAULTED = 0x0001, + SE_GROUP_DEFAULTED = 0x0002, + SE_DACL_PRESENT = 0x0004, + SE_DACL_DEFAULTED = 0x0008, + SE_SACL_PRESENT = 0x0010, + SE_SACL_DEFAULTED = 0x0020, + SE_DACL_AUTO_INHERIT_REQ = 0x0100, + SE_SACL_AUTO_INHERIT_REQ = 0x0200, + SE_DACL_AUTO_INHERITED = 0x0400, + SE_SACL_AUTO_INHERITED = 0x0800, + SE_DACL_PROTECTED = 0x1000, + SE_SACL_PROTECTED = 0x2000, + SE_SELF_RELATIVE = 0x8000; + +enum SECURITY_IMPERSONATION_LEVEL { + SecurityAnonymous, + SecurityIdentification, + SecurityImpersonation, + SecurityDelegation +} +alias SECURITY_IMPERSONATION_LEVEL* PSECURITY_IMPERSONATION_LEVEL; + +alias BOOLEAN SECURITY_CONTEXT_TRACKING_MODE; +alias BOOLEAN* PSECURITY_CONTEXT_TRACKING_MODE; + +const size_t SECURITY_DESCRIPTOR_MIN_LENGTH = 20; + +const DWORD + SECURITY_DESCRIPTOR_REVISION = 1, + SECURITY_DESCRIPTOR_REVISION1 = 1; + +const DWORD + SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001, + SE_PRIVILEGE_ENABLED = 0x00000002, + SE_PRIVILEGE_USED_FOR_ACCESS = 0x80000000; + +const DWORD PRIVILEGE_SET_ALL_NECESSARY = 1; + +const SECURITY_IMPERSONATION_LEVEL + SECURITY_MAX_IMPERSONATION_LEVEL = SECURITY_IMPERSONATION_LEVEL.SecurityDelegation, + DEFAULT_IMPERSONATION_LEVEL = SECURITY_IMPERSONATION_LEVEL.SecurityImpersonation; + +const BOOLEAN + SECURITY_DYNAMIC_TRACKING = true, + SECURITY_STATIC_TRACKING = false; + +// also in ddk/ntifs.h +const DWORD + TOKEN_ASSIGN_PRIMARY = 0x0001, + TOKEN_DUPLICATE = 0x0002, + TOKEN_IMPERSONATE = 0x0004, + TOKEN_QUERY = 0x0008, + TOKEN_QUERY_SOURCE = 0x0010, + TOKEN_ADJUST_PRIVILEGES = 0x0020, + TOKEN_ADJUST_GROUPS = 0x0040, + TOKEN_ADJUST_DEFAULT = 0x0080, + + TOKEN_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED + | TOKEN_ASSIGN_PRIMARY + | TOKEN_DUPLICATE + | TOKEN_IMPERSONATE + | TOKEN_QUERY + | TOKEN_QUERY_SOURCE + | TOKEN_ADJUST_PRIVILEGES + | TOKEN_ADJUST_GROUPS + | TOKEN_ADJUST_DEFAULT, + TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY, + TOKEN_WRITE = STANDARD_RIGHTS_WRITE + | TOKEN_ADJUST_PRIVILEGES + | TOKEN_ADJUST_GROUPS + | TOKEN_ADJUST_DEFAULT, + TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE; + +const size_t TOKEN_SOURCE_LENGTH = 8; +// end ddk/ntifs.h + +enum : DWORD { + DLL_PROCESS_DETACH, + DLL_PROCESS_ATTACH, + DLL_THREAD_ATTACH, + DLL_THREAD_DETACH +} + +enum : DWORD { + DBG_CONTINUE = 0x00010002, + DBG_TERMINATE_THREAD = 0x40010003, + DBG_TERMINATE_PROCESS = 0x40010004, + DBG_CONTROL_C = 0x40010005, + DBG_CONTROL_BREAK = 0x40010008, + DBG_EXCEPTION_NOT_HANDLED = 0x80010001 +} + +enum : DWORD { + TAPE_ABSOLUTE_POSITION, + TAPE_LOGICAL_POSITION, + TAPE_PSEUDO_LOGICAL_POSITION +} + +enum : DWORD { + TAPE_REWIND, + TAPE_ABSOLUTE_BLOCK, + TAPE_LOGICAL_BLOCK, + TAPE_PSEUDO_LOGICAL_BLOCK, + TAPE_SPACE_END_OF_DATA, + TAPE_SPACE_RELATIVE_BLOCKS, + TAPE_SPACE_FILEMARKS, + TAPE_SPACE_SEQUENTIAL_FMKS, + TAPE_SPACE_SETMARKS, + TAPE_SPACE_SEQUENTIAL_SMKS +} + +const DWORD + TAPE_DRIVE_FIXED = 0x00000001, + TAPE_DRIVE_SELECT = 0x00000002, + TAPE_DRIVE_INITIATOR = 0x00000004, + TAPE_DRIVE_ERASE_SHORT = 0x00000010, + TAPE_DRIVE_ERASE_LONG = 0x00000020, + TAPE_DRIVE_ERASE_BOP_ONLY = 0x00000040, + TAPE_DRIVE_ERASE_IMMEDIATE = 0x00000080, + TAPE_DRIVE_TAPE_CAPACITY = 0x00000100, + TAPE_DRIVE_TAPE_REMAINING = 0x00000200, + TAPE_DRIVE_FIXED_BLOCK = 0x00000400, + TAPE_DRIVE_VARIABLE_BLOCK = 0x00000800, + TAPE_DRIVE_WRITE_PROTECT = 0x00001000, + TAPE_DRIVE_EOT_WZ_SIZE = 0x00002000, + TAPE_DRIVE_ECC = 0x00010000, + TAPE_DRIVE_COMPRESSION = 0x00020000, + TAPE_DRIVE_PADDING = 0x00040000, + TAPE_DRIVE_REPORT_SMKS = 0x00080000, + TAPE_DRIVE_GET_ABSOLUTE_BLK = 0x00100000, + TAPE_DRIVE_GET_LOGICAL_BLK = 0x00200000, + TAPE_DRIVE_SET_EOT_WZ_SIZE = 0x00400000, + TAPE_DRIVE_EJECT_MEDIA = 0x01000000, + TAPE_DRIVE_CLEAN_REQUESTS = 0x02000000, + TAPE_DRIVE_SET_CMP_BOP_ONLY = 0x04000000, + TAPE_DRIVE_RESERVED_BIT = 0x80000000; + +const DWORD + TAPE_DRIVE_LOAD_UNLOAD = 0x80000001, + TAPE_DRIVE_TENSION = 0x80000002, + TAPE_DRIVE_LOCK_UNLOCK = 0x80000004, + TAPE_DRIVE_REWIND_IMMEDIATE = 0x80000008, + TAPE_DRIVE_SET_BLOCK_SIZE = 0x80000010, + TAPE_DRIVE_LOAD_UNLD_IMMED = 0x80000020, + TAPE_DRIVE_TENSION_IMMED = 0x80000040, + TAPE_DRIVE_LOCK_UNLK_IMMED = 0x80000080, + TAPE_DRIVE_SET_ECC = 0x80000100, + TAPE_DRIVE_SET_COMPRESSION = 0x80000200, + TAPE_DRIVE_SET_PADDING = 0x80000400, + TAPE_DRIVE_SET_REPORT_SMKS = 0x80000800, + TAPE_DRIVE_ABSOLUTE_BLK = 0x80001000, + TAPE_DRIVE_ABS_BLK_IMMED = 0x80002000, + TAPE_DRIVE_LOGICAL_BLK = 0x80004000, + TAPE_DRIVE_LOG_BLK_IMMED = 0x80008000, + TAPE_DRIVE_END_OF_DATA = 0x80010000, + TAPE_DRIVE_RELATIVE_BLKS = 0x80020000, + TAPE_DRIVE_FILEMARKS = 0x80040000, + TAPE_DRIVE_SEQUENTIAL_FMKS = 0x80080000, + TAPE_DRIVE_SETMARKS = 0x80100000, + TAPE_DRIVE_SEQUENTIAL_SMKS = 0x80200000, + TAPE_DRIVE_REVERSE_POSITION = 0x80400000, + TAPE_DRIVE_SPACE_IMMEDIATE = 0x80800000, + TAPE_DRIVE_WRITE_SETMARKS = 0x81000000, + TAPE_DRIVE_WRITE_FILEMARKS = 0x82000000, + TAPE_DRIVE_WRITE_SHORT_FMKS = 0x84000000, + TAPE_DRIVE_WRITE_LONG_FMKS = 0x88000000, + TAPE_DRIVE_WRITE_MARK_IMMED = 0x90000000, + TAPE_DRIVE_FORMAT = 0xA0000000, + TAPE_DRIVE_FORMAT_IMMEDIATE = 0xC0000000, + TAPE_DRIVE_HIGH_FEATURES = 0x80000000; + +enum : DWORD { + TAPE_FIXED_PARTITIONS = 0, + TAPE_SELECT_PARTITIONS = 1, + TAPE_INITIATOR_PARTITIONS = 2 +} + +enum : DWORD { + TAPE_SETMARKS, + TAPE_FILEMARKS, + TAPE_SHORT_FILEMARKS, + TAPE_LONG_FILEMARKS +} + +enum : DWORD { + TAPE_ERASE_SHORT, + TAPE_ERASE_LONG +} + +enum : DWORD { + TAPE_LOAD, + TAPE_UNLOAD, + TAPE_TENSION, + TAPE_LOCK, + TAPE_UNLOCK, + TAPE_FORMAT +} + +enum : ULONG32 { + VER_PLATFORM_WIN32s, + VER_PLATFORM_WIN32_WINDOWS, + VER_PLATFORM_WIN32_NT +} + +enum : UCHAR { + VER_NT_WORKSTATION = 1, + VER_NT_DOMAIN_CONTROLLER, + VER_NT_SERVER +} + +const USHORT + VER_SUITE_SMALLBUSINESS = 0x0001, + VER_SUITE_ENTERPRISE = 0x0002, + VER_SUITE_BACKOFFICE = 0x0004, + VER_SUITE_TERMINAL = 0x0010, + VER_SUITE_SMALLBUSINESS_RESTRICTED = 0x0020, + VER_SUITE_EMBEDDEDNT = 0x0040, + VER_SUITE_DATACENTER = 0x0080, + VER_SUITE_SINGLEUSERTS = 0x0100, + VER_SUITE_PERSONAL = 0x0200, + VER_SUITE_BLADE = 0x0400, + VER_SUITE_STORAGE_SERVER = 0x2000, + VER_SUITE_COMPUTE_SERVER = 0x4000; + +const ULONG + WT_EXECUTEDEFAULT = 0x00000000, + WT_EXECUTEINIOTHREAD = 0x00000001, + WT_EXECUTEINWAITTHREAD = 0x00000004, + WT_EXECUTEONLYONCE = 0x00000008, + WT_EXECUTELONGFUNCTION = 0x00000010, + WT_EXECUTEINTIMERTHREAD = 0x00000020, + WT_EXECUTEINPERSISTENTTHREAD = 0x00000080, + WT_TRANSFER_IMPERSONATION = 0x00000100; + +static if (_WIN32_WINNT_ONLY) { + static if (_WIN32_WINNT >= 0x500) { + const DWORD + VER_MINORVERSION = 0x01, + VER_MAJORVERSION = 0x02, + VER_BUILDNUMBER = 0x04, + VER_PLATFORMID = 0x08, + VER_SERVICEPACKMINOR = 0x10, + VER_SERVICEPACKMAJOR = 0x20, + VER_SUITENAME = 0x40, + VER_PRODUCT_TYPE = 0x80; + + enum : DWORD { + VER_EQUAL = 1, + VER_GREATER, + VER_GREATER_EQUAL, + VER_LESS, + VER_LESS_EQUAL, + VER_AND, + VER_OR // = 7 + } + } + + static if (_WIN32_WINNT >= 0x501) { + enum : ULONG { + ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION = 1, + ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, + ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, + ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION, + ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION, + ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION, + ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION, // = 7 + ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES = 9 + } + } +} + +// Macros +BYTE BTYPE(BYTE x) { return cast(BYTE) (x & N_BTMASK); } +bool ISPTR(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT); } +bool ISFCN(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT); } +bool ISARY(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT); } +bool ISTAG(uint x) { + return x == IMAGE_SYM_CLASS_STRUCT_TAG + || x == IMAGE_SYM_CLASS_UNION_TAG + || x == IMAGE_SYM_CLASS_ENUM_TAG; +} +uint INCREF(uint x) { + return ((x & ~N_BTMASK) << N_TSHIFT) | (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT) + | (x & N_BTMASK); +} +uint DECREF(uint x) { return ((x >>> N_TSHIFT) & ~N_BTMASK) | (x & N_BTMASK); } + +const DWORD TLS_MINIMUM_AVAILABLE = 64; + +const ULONG + IO_REPARSE_TAG_RESERVED_ZERO = 0, + IO_REPARSE_TAG_RESERVED_ONE = 1, + IO_REPARSE_TAG_RESERVED_RANGE = IO_REPARSE_TAG_RESERVED_ONE, + IO_REPARSE_TAG_SYMBOLIC_LINK = IO_REPARSE_TAG_RESERVED_ZERO, + IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003, + IO_REPARSE_TAG_SYMLINK = 0xA000000C, + IO_REPARSE_TAG_VALID_VALUES = 0xE000FFFF; + +/* Although these are semantically boolean, they are documented and + * implemented to return ULONG; this behaviour is preserved for compatibility + */ +ULONG IsReparseTagMicrosoft(ULONG x) { return x & 0x80000000; } +ULONG IsReparseTagHighLatency(ULONG x) { return x & 0x40000000; } +ULONG IsReparseTagNameSurrogate(ULONG x) { return x & 0x20000000; } + +bool IsReparseTagValid(ULONG x) { + return !(x & ~IO_REPARSE_TAG_VALID_VALUES) && (x > IO_REPARSE_TAG_RESERVED_RANGE); +} + +// Doesn't seem to make sense, but anyway.... +ULONG WT_SET_MAX_THREADPOOL_THREADS(ref ULONG Flags, ushort Limit) { + return Flags |= Limit << 16; +} + +import win32.basetyps; +/* also in win32.basetyps +struct GUID { + uint Data1; + ushort Data2; + ushort Data3; + ubyte Data4[8]; +} +alias GUID* REFGUID, LPGUID; +*/ + +struct GENERIC_MAPPING { + ACCESS_MASK GenericRead; + ACCESS_MASK GenericWrite; + ACCESS_MASK GenericExecute; + ACCESS_MASK GenericAll; +} +alias GENERIC_MAPPING* PGENERIC_MAPPING; + +struct ACE_HEADER { + BYTE AceType; + BYTE AceFlags; + WORD AceSize; +} +alias ACE_HEADER* PACE_HEADER; + +struct ACCESS_ALLOWED_ACE { + ACE_HEADER Header; + ACCESS_MASK Mask; + DWORD SidStart; +} +alias ACCESS_ALLOWED_ACE* PACCESS_ALLOWED_ACE; + +struct ACCESS_DENIED_ACE { + ACE_HEADER Header; + ACCESS_MASK Mask; + DWORD SidStart; +} +alias ACCESS_DENIED_ACE* PACCESS_DENIED_ACE; + +struct SYSTEM_AUDIT_ACE { + ACE_HEADER Header; + ACCESS_MASK Mask; + DWORD SidStart; +} +alias SYSTEM_AUDIT_ACE *PSYSTEM_AUDIT_ACE; + +struct SYSTEM_ALARM_ACE { + ACE_HEADER Header; + ACCESS_MASK Mask; + DWORD SidStart; +} +alias SYSTEM_ALARM_ACE* PSYSTEM_ALARM_ACE; + +struct ACCESS_ALLOWED_OBJECT_ACE { + ACE_HEADER Header; + ACCESS_MASK Mask; + DWORD Flags; + GUID ObjectType; + GUID InheritedObjectType; + DWORD SidStart; +} +alias ACCESS_ALLOWED_OBJECT_ACE* PACCESS_ALLOWED_OBJECT_ACE; + +struct ACCESS_DENIED_OBJECT_ACE { + ACE_HEADER Header; + ACCESS_MASK Mask; + DWORD Flags; + GUID ObjectType; + GUID InheritedObjectType; + DWORD SidStart; +} +alias ACCESS_DENIED_OBJECT_ACE* PACCESS_DENIED_OBJECT_ACE; + +struct SYSTEM_AUDIT_OBJECT_ACE { + ACE_HEADER Header; + ACCESS_MASK Mask; + DWORD Flags; + GUID ObjectType; + GUID InheritedObjectType; + DWORD SidStart; +} +alias SYSTEM_AUDIT_OBJECT_ACE* PSYSTEM_AUDIT_OBJECT_ACE; + +struct SYSTEM_ALARM_OBJECT_ACE { + ACE_HEADER Header; + ACCESS_MASK Mask; + DWORD Flags; + GUID ObjectType; + GUID InheritedObjectType; + DWORD SidStart; +} +alias SYSTEM_ALARM_OBJECT_ACE* PSYSTEM_ALARM_OBJECT_ACE; + +struct ACL { + BYTE AclRevision; + BYTE Sbz1; + WORD AclSize; + WORD AceCount; + WORD Sbz2; +} +alias ACL* PACL; + +struct ACL_REVISION_INFORMATION { + DWORD AclRevision; +} + +struct ACL_SIZE_INFORMATION { + DWORD AceCount; + DWORD AclBytesInUse; + DWORD AclBytesFree; +} + +version (X86) { + // ??? + const SIZE_OF_80387_REGISTERS = 80; + const CONTEXT_i386 = 0x010000; + const CONTEXT_i486 = 0x010000; + const CONTEXT_CONTROL = CONTEXT_i386 | 0x01; + const CONTEXT_INTEGER = CONTEXT_i386 | 0x02; + const CONTEXT_SEGMENTS = CONTEXT_i386 | 0x04; + const CONTEXT_FLOATING_POINT = CONTEXT_i386 | 0x08; + const CONTEXT_DEBUG_REGISTERS = CONTEXT_i386 | 0x10; + const CONTEXT_EXTENDED_REGISTERS = CONTEXT_i386 | 0x20; + const CONTEXT_FULL = CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS; + const MAXIMUM_SUPPORTED_EXTENSION = 512; + + struct FLOATING_SAVE_AREA { + DWORD ControlWord; + DWORD StatusWord; + DWORD TagWord; + DWORD ErrorOffset; + DWORD ErrorSelector; + DWORD DataOffset; + DWORD DataSelector; + BYTE[80] RegisterArea; + DWORD Cr0NpxState; + } + + struct CONTEXT { + DWORD ContextFlags; + DWORD Dr0; + DWORD Dr1; + DWORD Dr2; + DWORD Dr3; + DWORD Dr6; + DWORD Dr7; + FLOATING_SAVE_AREA FloatSave; + DWORD SegGs; + DWORD SegFs; + DWORD SegEs; + DWORD SegDs; + DWORD Edi; + DWORD Esi; + DWORD Ebx; + DWORD Edx; + DWORD Ecx; + DWORD Eax; + DWORD Ebp; + DWORD Eip; + DWORD SegCs; + DWORD EFlags; + DWORD Esp; + DWORD SegSs; + BYTE[MAXIMUM_SUPPORTED_EXTENSION] ExtendedRegisters; + } + +} else { + static assert(false, "Unsupported CPU"); + // Versions for PowerPC, Alpha, SHX, and MIPS removed. +} + +alias CONTEXT* PCONTEXT, LPCONTEXT; + +struct EXCEPTION_RECORD { + DWORD ExceptionCode; + DWORD ExceptionFlags; + EXCEPTION_RECORD* ExceptionRecord; + PVOID ExceptionAddress; + DWORD NumberParameters; + DWORD[EXCEPTION_MAXIMUM_PARAMETERS] ExceptionInformation; +} +alias EXCEPTION_RECORD* PEXCEPTION_RECORD, LPEXCEPTION_RECORD; + +struct EXCEPTION_POINTERS { + PEXCEPTION_RECORD ExceptionRecord; + PCONTEXT ContextRecord; +} +alias EXCEPTION_POINTERS* PEXCEPTION_POINTERS, LPEXCEPTION_POINTERS; + +union LARGE_INTEGER { + struct { + uint LowPart; + int HighPart; + } + long QuadPart; +} +alias LARGE_INTEGER* PLARGE_INTEGER; + +union ULARGE_INTEGER { + struct { + uint LowPart; + uint HighPart; + } + ulong QuadPart; +} +alias ULARGE_INTEGER* PULARGE_INTEGER; + +alias LARGE_INTEGER LUID; +alias LUID* PLUID; + +const LUID SYSTEM_LUID = { QuadPart:999 }; + +align(4) struct LUID_AND_ATTRIBUTES { + LUID Luid; + DWORD Attributes; +} +alias LUID_AND_ATTRIBUTES* PLUID_AND_ATTRIBUTES; + +struct PRIVILEGE_SET { + DWORD PrivilegeCount; + DWORD Control; + LUID_AND_ATTRIBUTES _Privilege; + + LUID_AND_ATTRIBUTES* Privilege() { return &_Privilege; } +} +alias PRIVILEGE_SET* PPRIVILEGE_SET; + +struct SECURITY_ATTRIBUTES { + DWORD nLength; + LPVOID lpSecurityDescriptor; + BOOL bInheritHandle; +} +alias SECURITY_ATTRIBUTES* PSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES; + +struct SECURITY_QUALITY_OF_SERVICE { + DWORD Length; + SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; + SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; + BOOLEAN EffectiveOnly; +} +alias SECURITY_QUALITY_OF_SERVICE* PSECURITY_QUALITY_OF_SERVICE; + +alias PVOID PACCESS_TOKEN; + +struct SE_IMPERSONATION_STATE { + PACCESS_TOKEN Token; + BOOLEAN CopyOnOpen; + BOOLEAN EffectiveOnly; + SECURITY_IMPERSONATION_LEVEL Level; +} +alias SE_IMPERSONATION_STATE* PSE_IMPERSONATION_STATE; + +struct SID_IDENTIFIER_AUTHORITY { + BYTE[6] Value; +} +alias SID_IDENTIFIER_AUTHORITY* PSID_IDENTIFIER_AUTHORITY, LPSID_IDENTIFIER_AUTHORITY; + +alias PVOID PSID; + +struct SID { + BYTE Revision; + BYTE SubAuthorityCount; + SID_IDENTIFIER_AUTHORITY IdentifierAuthority; + DWORD _SubAuthority; + + DWORD* SubAuthority() { return &_SubAuthority; } +} +alias SID* PISID; + +struct SID_AND_ATTRIBUTES { + PSID Sid; + DWORD Attributes; +} +alias SID_AND_ATTRIBUTES* PSID_AND_ATTRIBUTES; + +struct TOKEN_SOURCE { + CHAR[TOKEN_SOURCE_LENGTH] SourceName; + LUID SourceIdentifier; +} +alias TOKEN_SOURCE* PTOKEN_SOURCE; + +struct TOKEN_CONTROL { + LUID TokenId; + LUID AuthenticationId; + LUID ModifiedId; + TOKEN_SOURCE TokenSource; +} +alias TOKEN_CONTROL* PTOKEN_CONTROL; + +struct TOKEN_DEFAULT_DACL { + PACL DefaultDacl; +} +alias TOKEN_DEFAULT_DACL* PTOKEN_DEFAULT_DACL; + +struct TOKEN_GROUPS { + DWORD GroupCount; + SID_AND_ATTRIBUTES _Groups; + + SID_AND_ATTRIBUTES* Groups() { return &_Groups; } +} +alias TOKEN_GROUPS* PTOKEN_GROUPS, LPTOKEN_GROUPS; + +struct TOKEN_OWNER { + PSID Owner; +} +alias TOKEN_OWNER* PTOKEN_OWNER; + +struct TOKEN_PRIMARY_GROUP { + PSID PrimaryGroup; +} +alias TOKEN_PRIMARY_GROUP* PTOKEN_PRIMARY_GROUP; + +struct TOKEN_PRIVILEGES { + DWORD PrivilegeCount; + LUID_AND_ATTRIBUTES _Privileges; + + LUID_AND_ATTRIBUTES* Privileges() { return &_Privileges; } +} +alias TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES, LPTOKEN_PRIVILEGES; + +enum TOKEN_TYPE { + TokenPrimary = 1, + TokenImpersonation +} +alias TOKEN_TYPE* PTOKEN_TYPE; + +struct TOKEN_STATISTICS { + LUID TokenId; + LUID AuthenticationId; + LARGE_INTEGER ExpirationTime; + TOKEN_TYPE TokenType; + SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; + DWORD DynamicCharged; + DWORD DynamicAvailable; + DWORD GroupCount; + DWORD PrivilegeCount; + LUID ModifiedId; +} +alias TOKEN_STATISTICS* PTOKEN_STATISTICS; + +struct TOKEN_USER { + SID_AND_ATTRIBUTES User; +} +alias TOKEN_USER* PTOKEN_USER; + +alias DWORD SECURITY_INFORMATION; +alias SECURITY_INFORMATION* PSECURITY_INFORMATION; +alias WORD SECURITY_DESCRIPTOR_CONTROL; +alias SECURITY_DESCRIPTOR_CONTROL* PSECURITY_DESCRIPTOR_CONTROL; + +struct SECURITY_DESCRIPTOR { + BYTE Revision; + BYTE Sbz1; + SECURITY_DESCRIPTOR_CONTROL Control; + PSID Owner; + PSID Group; + PACL Sacl; + PACL Dacl; +} +alias SECURITY_DESCRIPTOR* PSECURITY_DESCRIPTOR, PISECURITY_DESCRIPTOR; + +enum TOKEN_INFORMATION_CLASS { + TokenUser = 1, + TokenGroups, + TokenPrivileges, + TokenOwner, + TokenPrimaryGroup, + TokenDefaultDacl, + TokenSource, + TokenType, + TokenImpersonationLevel, + TokenStatistics, + TokenRestrictedSids, + TokenSessionId, + TokenGroupsAndPrivileges, + TokenSessionReference, + TokenSandBoxInert, + TokenAuditPolicy, + TokenOrigin +} + +enum SID_NAME_USE { + SidTypeUser = 1, + SidTypeGroup, + SidTypeDomain, + SidTypeAlias, + SidTypeWellKnownGroup, + SidTypeDeletedAccount, + SidTypeInvalid, + SidTypeUnknown, + SidTypeComputer +} +alias SID_NAME_USE* PSID_NAME_USE; + +struct QUOTA_LIMITS { + SIZE_T PagedPoolLimit; + SIZE_T NonPagedPoolLimit; + SIZE_T MinimumWorkingSetSize; + SIZE_T MaximumWorkingSetSize; + SIZE_T PagefileLimit; + LARGE_INTEGER TimeLimit; +} +alias QUOTA_LIMITS* PQUOTA_LIMITS; + +struct IO_COUNTERS { + ULONGLONG ReadOperationCount; + ULONGLONG WriteOperationCount; + ULONGLONG OtherOperationCount; + ULONGLONG ReadTransferCount; + ULONGLONG WriteTransferCount; + ULONGLONG OtherTransferCount; +} +alias IO_COUNTERS* PIO_COUNTERS; + +struct FILE_NOTIFY_INFORMATION { + DWORD NextEntryOffset; + DWORD Action; + DWORD FileNameLength; + WCHAR _FileName; + + WCHAR* FileName() { return &_FileName; } +} +alias FILE_NOTIFY_INFORMATION* PFILE_NOTIFY_INFORMATION; + +struct TAPE_ERASE { + DWORD Type; + BOOLEAN Immediate; +} +alias TAPE_ERASE* PTAPE_ERASE; + +struct TAPE_GET_DRIVE_PARAMETERS { + BOOLEAN ECC; + BOOLEAN Compression; + BOOLEAN DataPadding; + BOOLEAN ReportSetmarks; + DWORD DefaultBlockSize; + DWORD MaximumBlockSize; + DWORD MinimumBlockSize; + DWORD MaximumPartitionCount; + DWORD FeaturesLow; + DWORD FeaturesHigh; + DWORD EOTWarningZoneSize; +} +alias TAPE_GET_DRIVE_PARAMETERS* PTAPE_GET_DRIVE_PARAMETERS; + +struct TAPE_GET_MEDIA_PARAMETERS { + LARGE_INTEGER Capacity; + LARGE_INTEGER Remaining; + DWORD BlockSize; + DWORD PartitionCount; + BOOLEAN WriteProtected; +} +alias TAPE_GET_MEDIA_PARAMETERS* PTAPE_GET_MEDIA_PARAMETERS; + +struct TAPE_GET_POSITION { + ULONG Type; + ULONG Partition; + ULONG OffsetLow; + ULONG OffsetHigh; +} +alias TAPE_GET_POSITION* PTAPE_GET_POSITION; + +struct TAPE_PREPARE { + DWORD Operation; + BOOLEAN Immediate; +} +alias TAPE_PREPARE* PTAPE_PREPARE; + +struct TAPE_SET_DRIVE_PARAMETERS { + BOOLEAN ECC; + BOOLEAN Compression; + BOOLEAN DataPadding; + BOOLEAN ReportSetmarks; + ULONG EOTWarningZoneSize; +} +alias TAPE_SET_DRIVE_PARAMETERS* PTAPE_SET_DRIVE_PARAMETERS; + +struct TAPE_SET_MEDIA_PARAMETERS { + ULONG BlockSize; +} +alias TAPE_SET_MEDIA_PARAMETERS* PTAPE_SET_MEDIA_PARAMETERS; + +struct TAPE_SET_POSITION { + DWORD Method; + DWORD Partition; + LARGE_INTEGER Offset; + BOOLEAN Immediate; +} +alias TAPE_SET_POSITION* PTAPE_SET_POSITION; + +struct TAPE_WRITE_MARKS { + DWORD Type; + DWORD Count; + BOOLEAN Immediate; +} +alias TAPE_WRITE_MARKS* PTAPE_WRITE_MARKS; + +struct TAPE_CREATE_PARTITION { + DWORD Method; + DWORD Count; + DWORD Size; +} +alias TAPE_CREATE_PARTITION* PTAPE_CREATE_PARTITION; + +struct MEMORY_BASIC_INFORMATION { + PVOID BaseAddress; + PVOID AllocationBase; + DWORD AllocationProtect; + DWORD RegionSize; + DWORD State; + DWORD Protect; + DWORD Type; +} +alias MEMORY_BASIC_INFORMATION* PMEMORY_BASIC_INFORMATION; + +struct MESSAGE_RESOURCE_ENTRY { + WORD Length; + WORD Flags; + BYTE _Text; + + BYTE* Text() { return &_Text; } +} +alias MESSAGE_RESOURCE_ENTRY* PMESSAGE_RESOURCE_ENTRY; + +struct MESSAGE_RESOURCE_BLOCK { + DWORD LowId; + DWORD HighId; + DWORD OffsetToEntries; +} +alias MESSAGE_RESOURCE_BLOCK* PMESSAGE_RESOURCE_BLOCK; + +struct MESSAGE_RESOURCE_DATA { + DWORD NumberOfBlocks; + MESSAGE_RESOURCE_BLOCK _Blocks; + + MESSAGE_RESOURCE_BLOCK* Blocks() { return &_Blocks; } +} +alias MESSAGE_RESOURCE_DATA* PMESSAGE_RESOURCE_DATA; + +struct LIST_ENTRY { + LIST_ENTRY* Flink; + LIST_ENTRY* Blink; +} +alias LIST_ENTRY* PLIST_ENTRY; + +struct SINGLE_LIST_ENTRY { + SINGLE_LIST_ENTRY* Next; +} +alias SINGLE_LIST_ENTRY SLIST_ENTRY; +alias SINGLE_LIST_ENTRY* PSINGLE_LIST_ENTRY, PSLIST_ENTRY; + +union SLIST_HEADER { + ULONGLONG Alignment; + struct { + SLIST_ENTRY Next; + WORD Depth; + WORD Sequence; + } +} +alias SLIST_HEADER* PSLIST_HEADER; + +struct RTL_CRITICAL_SECTION_DEBUG { + WORD Type; + WORD CreatorBackTraceIndex; + RTL_CRITICAL_SECTION* CriticalSection; + LIST_ENTRY ProcessLocksList; + DWORD EntryCount; + DWORD ContentionCount; + DWORD[2] Spare; +} +alias RTL_CRITICAL_SECTION_DEBUG* PRTL_CRITICAL_SECTION_DEBUG; + +struct RTL_CRITICAL_SECTION { + PRTL_CRITICAL_SECTION_DEBUG DebugInfo; + LONG LockCount; + LONG RecursionCount; + HANDLE OwningThread; + HANDLE LockSemaphore; + DWORD Reserved; +} +alias RTL_CRITICAL_SECTION* PRTL_CRITICAL_SECTION; + +struct EVENTLOGRECORD { + DWORD Length; + DWORD Reserved; + DWORD RecordNumber; + DWORD TimeGenerated; + DWORD TimeWritten; + DWORD EventID; + WORD EventType; + WORD NumStrings; + WORD EventCategory; + WORD ReservedFlags; + DWORD ClosingRecordNumber; + DWORD StringOffset; + DWORD UserSidLength; + DWORD UserSidOffset; + DWORD DataLength; + DWORD DataOffset; +} +alias EVENTLOGRECORD* PEVENTLOGRECORD; + +struct OSVERSIONINFOA { + DWORD dwOSVersionInfoSize; + DWORD dwMajorVersion; + DWORD dwMinorVersion; + DWORD dwBuildNumber; + DWORD dwPlatformId; + CHAR[128] szCSDVersion; +} +alias OSVERSIONINFOA* POSVERSIONINFOA, LPOSVERSIONINFOA; + +struct OSVERSIONINFOW { + DWORD dwOSVersionInfoSize; + DWORD dwMajorVersion; + DWORD dwMinorVersion; + DWORD dwBuildNumber; + DWORD dwPlatformId; + WCHAR[128] szCSDVersion; +} +alias OSVERSIONINFOW* POSVERSIONINFOW, LPOSVERSIONINFOW; + +struct OSVERSIONINFOEXA { + DWORD dwOSVersionInfoSize; + DWORD dwMajorVersion; + DWORD dwMinorVersion; + DWORD dwBuildNumber; + DWORD dwPlatformId; + CHAR[128] szCSDVersion; + WORD wServicePackMajor; + WORD wServicePackMinor; + WORD wSuiteMask; + BYTE wProductType; + BYTE wReserved; +} +alias OSVERSIONINFOEXA* POSVERSIONINFOEXA, LPOSVERSIONINFOEXA; + +struct OSVERSIONINFOEXW { + DWORD dwOSVersionInfoSize; + DWORD dwMajorVersion; + DWORD dwMinorVersion; + DWORD dwBuildNumber; + DWORD dwPlatformId; + WCHAR[128] szCSDVersion; + WORD wServicePackMajor; + WORD wServicePackMinor; + WORD wSuiteMask; + BYTE wProductType; + BYTE wReserved; +} +alias OSVERSIONINFOEXW* POSVERSIONINFOEXW, LPOSVERSIONINFOEXW; + +align(2) struct IMAGE_VXD_HEADER { + WORD e32_magic; + BYTE e32_border; + BYTE e32_worder; + DWORD e32_level; + WORD e32_cpu; + WORD e32_os; + DWORD e32_ver; + DWORD e32_mflags; + DWORD e32_mpages; + DWORD e32_startobj; + DWORD e32_eip; + DWORD e32_stackobj; + DWORD e32_esp; + DWORD e32_pagesize; + DWORD e32_lastpagesize; + DWORD e32_fixupsize; + DWORD e32_fixupsum; + DWORD e32_ldrsize; + DWORD e32_ldrsum; + DWORD e32_objtab; + DWORD e32_objcnt; + DWORD e32_objmap; + DWORD e32_itermap; + DWORD e32_rsrctab; + DWORD e32_rsrccnt; + DWORD e32_restab; + DWORD e32_enttab; + DWORD e32_dirtab; + DWORD e32_dircnt; + DWORD e32_fpagetab; + DWORD e32_frectab; + DWORD e32_impmod; + DWORD e32_impmodcnt; + DWORD e32_impproc; + DWORD e32_pagesum; + DWORD e32_datapage; + DWORD e32_preload; + DWORD e32_nrestab; + DWORD e32_cbnrestab; + DWORD e32_nressum; + DWORD e32_autodata; + DWORD e32_debuginfo; + DWORD e32_debuglen; + DWORD e32_instpreload; + DWORD e32_instdemand; + DWORD e32_heapsize; + BYTE[12] e32_res3; + DWORD e32_winresoff; + DWORD e32_winreslen; + WORD e32_devid; + WORD e32_ddkver; +} +alias IMAGE_VXD_HEADER* PIMAGE_VXD_HEADER; + +align(4): +struct IMAGE_FILE_HEADER { + WORD Machine; + WORD NumberOfSections; + DWORD TimeDateStamp; + DWORD PointerToSymbolTable; + DWORD NumberOfSymbols; + WORD SizeOfOptionalHeader; + WORD Characteristics; +} +alias IMAGE_FILE_HEADER* PIMAGE_FILE_HEADER; +// const IMAGE_SIZEOF_FILE_HEADER = IMAGE_FILE_HEADER.sizeof; + +struct IMAGE_DATA_DIRECTORY { + DWORD VirtualAddress; + DWORD Size; +} +alias IMAGE_DATA_DIRECTORY* PIMAGE_DATA_DIRECTORY; + +struct IMAGE_OPTIONAL_HEADER32 { + WORD Magic; + BYTE MajorLinkerVersion; + BYTE MinorLinkerVersion; + DWORD SizeOfCode; + DWORD SizeOfInitializedData; + DWORD SizeOfUninitializedData; + DWORD AddressOfEntryPoint; + DWORD BaseOfCode; + DWORD BaseOfData; + DWORD ImageBase; + DWORD SectionAlignment; + DWORD FileAlignment; + WORD MajorOperatingSystemVersion; + WORD MinorOperatingSystemVersion; + WORD MajorImageVersion; + WORD MinorImageVersion; + WORD MajorSubsystemVersion; + WORD MinorSubsystemVersion; + DWORD Win32VersionValue; + DWORD SizeOfImage; + DWORD SizeOfHeaders; + DWORD CheckSum; + WORD Subsystem; + WORD DllCharacteristics; + DWORD SizeOfStackReserve; + DWORD SizeOfStackCommit; + DWORD SizeOfHeapReserve; + DWORD SizeOfHeapCommit; + DWORD LoaderFlags; + DWORD NumberOfRvaAndSizes; + IMAGE_DATA_DIRECTORY[IMAGE_NUMBEROF_DIRECTORY_ENTRIES] DataDirectory; +} +alias IMAGE_OPTIONAL_HEADER32* PIMAGE_OPTIONAL_HEADER32; + +struct IMAGE_OPTIONAL_HEADER64 { + WORD Magic; + BYTE MajorLinkerVersion; + BYTE MinorLinkerVersion; + DWORD SizeOfCode; + DWORD SizeOfInitializedData; + DWORD SizeOfUninitializedData; + DWORD AddressOfEntryPoint; + DWORD BaseOfCode; + ULONGLONG ImageBase; + DWORD SectionAlignment; + DWORD FileAlignment; + WORD MajorOperatingSystemVersion; + WORD MinorOperatingSystemVersion; + WORD MajorImageVersion; + WORD MinorImageVersion; + WORD MajorSubsystemVersion; + WORD MinorSubsystemVersion; + DWORD Win32VersionValue; + DWORD SizeOfImage; + DWORD SizeOfHeaders; + DWORD CheckSum; + WORD Subsystem; + WORD DllCharacteristics; + ULONGLONG SizeOfStackReserve; + ULONGLONG SizeOfStackCommit; + ULONGLONG SizeOfHeapReserve; + ULONGLONG SizeOfHeapCommit; + DWORD LoaderFlags; + DWORD NumberOfRvaAndSizes; + IMAGE_DATA_DIRECTORY[IMAGE_NUMBEROF_DIRECTORY_ENTRIES] DataDirectory; +} +alias IMAGE_OPTIONAL_HEADER64* PIMAGE_OPTIONAL_HEADER64; + +struct IMAGE_ROM_OPTIONAL_HEADER { + WORD Magic; + BYTE MajorLinkerVersion; + BYTE MinorLinkerVersion; + DWORD SizeOfCode; + DWORD SizeOfInitializedData; + DWORD SizeOfUninitializedData; + DWORD AddressOfEntryPoint; + DWORD BaseOfCode; + DWORD BaseOfData; + DWORD BaseOfBss; + DWORD GprMask; + DWORD[4] CprMask; + DWORD GpValue; +} +alias IMAGE_ROM_OPTIONAL_HEADER* PIMAGE_ROM_OPTIONAL_HEADER; + +align(2): +struct IMAGE_DOS_HEADER { + WORD e_magic; + WORD e_cblp; + WORD e_cp; + WORD e_crlc; + WORD e_cparhdr; + WORD e_minalloc; + WORD e_maxalloc; + WORD e_ss; + WORD e_sp; + WORD e_csum; + WORD e_ip; + WORD e_cs; + WORD e_lfarlc; + WORD e_ovno; + WORD[4] e_res; + WORD e_oemid; + WORD e_oeminfo; + WORD[10] e_res2; + LONG e_lfanew; +} +alias IMAGE_DOS_HEADER* PIMAGE_DOS_HEADER; + +struct IMAGE_OS2_HEADER { + WORD ne_magic; + CHAR ne_ver; + CHAR ne_rev; + WORD ne_enttab; + WORD ne_cbenttab; + LONG ne_crc; + WORD ne_flags; + WORD ne_autodata; + WORD ne_heap; + WORD ne_stack; + LONG ne_csip; + LONG ne_sssp; + WORD ne_cseg; + WORD ne_cmod; + WORD ne_cbnrestab; + WORD ne_segtab; + WORD ne_rsrctab; + WORD ne_restab; + WORD ne_modtab; + WORD ne_imptab; + LONG ne_nrestab; + WORD ne_cmovent; + WORD ne_align; + WORD ne_cres; + BYTE ne_exetyp; + BYTE ne_flagsothers; + WORD ne_pretthunks; + WORD ne_psegrefbytes; + WORD ne_swaparea; + WORD ne_expver; +} +alias IMAGE_OS2_HEADER* PIMAGE_OS2_HEADER; + +align(4) struct IMAGE_NT_HEADERS32 { + DWORD Signature; + IMAGE_FILE_HEADER FileHeader; + IMAGE_OPTIONAL_HEADER OptionalHeader; +} +alias IMAGE_NT_HEADERS32* PIMAGE_NT_HEADERS32; + +align(4) struct IMAGE_NT_HEADERS64 { + DWORD Signature; + IMAGE_FILE_HEADER FileHeader; + IMAGE_OPTIONAL_HEADER OptionalHeader; +} +alias IMAGE_NT_HEADERS64* PIMAGE_NT_HEADERS64; + +struct IMAGE_ROM_HEADERS { + IMAGE_FILE_HEADER FileHeader; + IMAGE_ROM_OPTIONAL_HEADER OptionalHeader; +} +alias IMAGE_ROM_HEADERS* PIMAGE_ROM_HEADERS; + +struct IMAGE_SECTION_HEADER { + BYTE[IMAGE_SIZEOF_SHORT_NAME] Name; + union _Misc { + DWORD PhysicalAddress; + DWORD VirtualSize; + } + _Misc Misc; + DWORD VirtualAddress; + DWORD SizeOfRawData; + DWORD PointerToRawData; + DWORD PointerToRelocations; + DWORD PointerToLinenumbers; + WORD NumberOfRelocations; + WORD NumberOfLinenumbers; + DWORD Characteristics; +} +alias IMAGE_SECTION_HEADER* PIMAGE_SECTION_HEADER; + +struct IMAGE_SYMBOL { + union _N { + BYTE[8] ShortName; + struct Name { + DWORD Short; + DWORD Long; + } + PBYTE[2] LongName; + } + _N N; + DWORD Value; + SHORT SectionNumber; + WORD Type; + BYTE StorageClass; + BYTE NumberOfAuxSymbols; +} +alias IMAGE_SYMBOL* PIMAGE_SYMBOL; + +union IMAGE_AUX_SYMBOL { + struct _Sym { + DWORD TagIndex; + union _Misc { + struct _LnSz { + WORD Linenumber; + WORD Size; + } + _LnSz LnSz; + DWORD TotalSize; + } + _Misc Misc; + union _FcnAry { + struct _Function { + DWORD PointerToLinenumber; + DWORD PointerToNextFunction; + } + _Function Function; + struct _Array { + WORD[4] Dimension; + } + _Array Array; + } + _FcnAry FcnAry; + WORD TvIndex; + } + _Sym Sym; + struct _File { + BYTE[IMAGE_SIZEOF_SYMBOL] Name; + } + _File File; + struct _Section { + DWORD Length; + WORD NumberOfRelocations; + WORD NumberOfLinenumbers; + DWORD CheckSum; + SHORT Number; + BYTE Selection; + } + _Section Section; +} +alias IMAGE_AUX_SYMBOL* PIMAGE_AUX_SYMBOL; + +struct IMAGE_COFF_SYMBOLS_HEADER { + DWORD NumberOfSymbols; + DWORD LvaToFirstSymbol; + DWORD NumberOfLinenumbers; + DWORD LvaToFirstLinenumber; + DWORD RvaToFirstByteOfCode; + DWORD RvaToLastByteOfCode; + DWORD RvaToFirstByteOfData; + DWORD RvaToLastByteOfData; +} +alias IMAGE_COFF_SYMBOLS_HEADER* PIMAGE_COFF_SYMBOLS_HEADER; + +struct IMAGE_RELOCATION { + union { + DWORD VirtualAddress; + DWORD RelocCount; + } + DWORD SymbolTableIndex; + WORD Type; +} +alias IMAGE_RELOCATION* PIMAGE_RELOCATION; + +align(4) struct IMAGE_BASE_RELOCATION { + DWORD VirtualAddress; + DWORD SizeOfBlock; +} +alias IMAGE_BASE_RELOCATION* PIMAGE_BASE_RELOCATION; + +align(2) struct IMAGE_LINENUMBER { + union _Type { + DWORD SymbolTableIndex; + DWORD VirtualAddress; + } + _Type Type; + WORD Linenumber; +} +alias IMAGE_LINENUMBER* PIMAGE_LINENUMBER; + +align(4): +struct IMAGE_ARCHIVE_MEMBER_HEADER { + BYTE[16] Name; + BYTE[12] Date; + BYTE[6] UserID; + BYTE[6] GroupID; + BYTE[8] Mode; + BYTE[10] Size; + BYTE[2] EndHeader; +} +alias IMAGE_ARCHIVE_MEMBER_HEADER* PIMAGE_ARCHIVE_MEMBER_HEADER; + +struct IMAGE_EXPORT_DIRECTORY { + DWORD Characteristics; + DWORD TimeDateStamp; + WORD MajorVersion; + WORD MinorVersion; + DWORD Name; + DWORD Base; + DWORD NumberOfFunctions; + DWORD NumberOfNames; + DWORD AddressOfFunctions; + DWORD AddressOfNames; + DWORD AddressOfNameOrdinals; +} +alias IMAGE_EXPORT_DIRECTORY* PIMAGE_EXPORT_DIRECTORY; + +struct IMAGE_IMPORT_BY_NAME { + WORD Hint; + BYTE _Name; + + BYTE* Name() { + return &_Name; + } +} +alias IMAGE_IMPORT_BY_NAME* PIMAGE_IMPORT_BY_NAME; + +struct IMAGE_THUNK_DATA32 { + union _u1 { + DWORD ForwarderString; + DWORD Function; + DWORD Ordinal; + DWORD AddressOfData; + } + _u1 u1; +} +alias IMAGE_THUNK_DATA32* PIMAGE_THUNK_DATA32; + +struct IMAGE_THUNK_DATA64 { + union _u1 { + ULONGLONG ForwarderString; + ULONGLONG Function; + ULONGLONG Ordinal; + ULONGLONG AddressOfData; + } + _u1 u1; +} +alias IMAGE_THUNK_DATA64* PIMAGE_THUNK_DATA64; + +struct IMAGE_IMPORT_DESCRIPTOR { + union { + DWORD Characteristics; + DWORD OriginalFirstThunk; + } + DWORD TimeDateStamp; + DWORD ForwarderChain; + DWORD Name; + DWORD FirstThunk; +} +alias IMAGE_IMPORT_DESCRIPTOR* PIMAGE_IMPORT_DESCRIPTOR; + +struct IMAGE_BOUND_IMPORT_DESCRIPTOR { + DWORD TimeDateStamp; + WORD OffsetModuleName; + WORD NumberOfModuleForwarderRefs; +} +alias IMAGE_BOUND_IMPORT_DESCRIPTOR* PIMAGE_BOUND_IMPORT_DESCRIPTOR; + +struct IMAGE_BOUND_FORWARDER_REF { + DWORD TimeDateStamp; + WORD OffsetModuleName; + WORD Reserved; +} +alias IMAGE_BOUND_FORWARDER_REF* PIMAGE_BOUND_FORWARDER_REF; + +struct IMAGE_TLS_DIRECTORY32 { + DWORD StartAddressOfRawData; + DWORD EndAddressOfRawData; + DWORD AddressOfIndex; + DWORD AddressOfCallBacks; + DWORD SizeOfZeroFill; + DWORD Characteristics; +} +alias IMAGE_TLS_DIRECTORY32* PIMAGE_TLS_DIRECTORY32; + +struct IMAGE_TLS_DIRECTORY64 { + ULONGLONG StartAddressOfRawData; + ULONGLONG EndAddressOfRawData; + ULONGLONG AddressOfIndex; + ULONGLONG AddressOfCallBacks; + DWORD SizeOfZeroFill; + DWORD Characteristics; +} +alias IMAGE_TLS_DIRECTORY64* PIMAGE_TLS_DIRECTORY64; + +struct IMAGE_RESOURCE_DIRECTORY { + DWORD Characteristics; + DWORD TimeDateStamp; + WORD MajorVersion; + WORD MinorVersion; + WORD NumberOfNamedEntries; + WORD NumberOfIdEntries; +} +alias IMAGE_RESOURCE_DIRECTORY* PIMAGE_RESOURCE_DIRECTORY; + +struct IMAGE_RESOURCE_DIRECTORY_ENTRY { + union { + /+struct { + DWORD NameOffset:31; + DWORD NameIsString:1; + }+/ + DWORD Name; + WORD Id; + } + DWORD OffsetToData; + /+struct { + DWORD OffsetToDirectory:31; + DWORD DataIsDirectory:1; + }+/ + + uint NameOffset() { return Name & 0x7FFFFFFF; } + bool NameIsString() { return cast(bool)(Name & 0x80000000); } + uint OffsetToDirectory() { return OffsetToData & 0x7FFFFFFF; } + bool DataIsDirectory() { return cast(bool)(OffsetToData & 0x80000000); } + + uint NameOffset(uint n) { + Name = (Name & 0x80000000) | (n & 0x7FFFFFFF); + return n & 0x7FFFFFFF; + } + + bool NameIsString(bool n) { + Name = (Name & 0x7FFFFFFF) | (n << 31); return n; + } + + uint OffsetToDirectory(uint o) { + OffsetToData = (OffsetToData & 0x80000000) | (o & 0x7FFFFFFF); + return o & 0x7FFFFFFF; + } + + bool DataIsDirectory(bool d) { + OffsetToData = (OffsetToData & 0x7FFFFFFF) | (d << 31); return d; + } +} +alias IMAGE_RESOURCE_DIRECTORY_ENTRY* PIMAGE_RESOURCE_DIRECTORY_ENTRY; + +struct IMAGE_RESOURCE_DIRECTORY_STRING { + WORD Length; + CHAR _NameString; + + CHAR* NameString() { return &_NameString; } +} +alias IMAGE_RESOURCE_DIRECTORY_STRING* PIMAGE_RESOURCE_DIRECTORY_STRING; + +struct IMAGE_RESOURCE_DIR_STRING_U { + WORD Length; + WCHAR _NameString; + + WCHAR* NameString() { return &_NameString; } +} +alias IMAGE_RESOURCE_DIR_STRING_U* PIMAGE_RESOURCE_DIR_STRING_U; + +struct IMAGE_RESOURCE_DATA_ENTRY { + DWORD OffsetToData; + DWORD Size; + DWORD CodePage; + DWORD Reserved; +} +alias IMAGE_RESOURCE_DATA_ENTRY* PIMAGE_RESOURCE_DATA_ENTRY; + +struct IMAGE_LOAD_CONFIG_DIRECTORY { + DWORD Characteristics; + DWORD TimeDateStamp; + WORD MajorVersion; + WORD MinorVersion; + DWORD GlobalFlagsClear; + DWORD GlobalFlagsSet; + DWORD CriticalSectionDefaultTimeout; + DWORD DeCommitFreeBlockThreshold; + DWORD DeCommitTotalFreeThreshold; + PVOID LockPrefixTable; + DWORD MaximumAllocationSize; + DWORD VirtualMemoryThreshold; + DWORD ProcessHeapFlags; + DWORD[4] Reserved; +} +alias IMAGE_LOAD_CONFIG_DIRECTORY* PIMAGE_LOAD_CONFIG_DIRECTORY; + +struct IMAGE_LOAD_CONFIG_DIRECTORY64 { + DWORD Characteristics; + DWORD TimeDateStamp; + WORD MajorVersion; + WORD MinorVersion; + DWORD GlobalFlagsClear; + DWORD GlobalFlagsSet; + DWORD CriticalSectionDefaultTimeout; + ULONGLONG DeCommitFreeBlockThreshold; + ULONGLONG DeCommitTotalFreeThreshold; + ULONGLONG LockPrefixTable; + ULONGLONG MaximumAllocationSize; + ULONGLONG VirtualMemoryThreshold; + ULONGLONG ProcessAffinityMask; + DWORD ProcessHeapFlags; + WORD CSDFlags; + WORD Reserved1; + ULONGLONG EditList; + DWORD[2] Reserved; +} +alias IMAGE_LOAD_CONFIG_DIRECTORY64* PIMAGE_LOAD_CONFIG_DIRECTORY64; + +struct IMAGE_RUNTIME_FUNCTION_ENTRY { + DWORD BeginAddress; + DWORD EndAddress; + PVOID ExceptionHandler; + PVOID HandlerData; + DWORD PrologEndAddress; +} +alias IMAGE_RUNTIME_FUNCTION_ENTRY* PIMAGE_RUNTIME_FUNCTION_ENTRY; + +struct IMAGE_CE_RUNTIME_FUNCTION_ENTRY { + uint FuncStart; + union { + ubyte PrologLen; + uint _bf; + } +/+ + unsigned int FuncLen:22; + unsigned int ThirtyTwoBit:1; + unsigned int ExceptionFlag:1; ++/ + uint FuncLen() { return (_bf >> 8) & 0x3FFFFF; } + bool ThirtyTwoBit() { return cast(bool)(_bf & 0x40000000); } + bool ExceptionFlag() { return cast(bool)(_bf & 0x80000000); } + + uint FuncLen(uint f) { + _bf = (_bf & ~0x3FFFFF00) | ((f & 0x3FFFFF) << 8); return f & 0x3FFFFF; + } + + bool ThirtyTwoBit(bool t) { + _bf = (_bf & ~0x40000000) | (t << 30); return t; + } + + bool ExceptionFlag(bool e) { + _bf = (_bf & ~0x80000000) | (e << 31); return e; + } +} +alias IMAGE_CE_RUNTIME_FUNCTION_ENTRY* PIMAGE_CE_RUNTIME_FUNCTION_ENTRY; + +struct IMAGE_DEBUG_DIRECTORY { + DWORD Characteristics; + DWORD TimeDateStamp; + WORD MajorVersion; + WORD MinorVersion; + DWORD Type; + DWORD SizeOfData; + DWORD AddressOfRawData; + DWORD PointerToRawData; +} +alias IMAGE_DEBUG_DIRECTORY* PIMAGE_DEBUG_DIRECTORY; + +struct FPO_DATA { + DWORD ulOffStart; + DWORD cbProcSize; + DWORD cdwLocals; + WORD cdwParams; + ubyte cbProlog; + ubyte _bf; +/+ + WORD cbRegs:3; + WORD fHasSEH:1; + WORD fUseBP:1; + WORD reserved:1; + WORD cbFrame:2; ++/ + ubyte cbRegs() { return cast(ubyte)(_bf & 0x07); } + bool fHasSEH() { return cast(bool)(_bf & 0x08); } + bool fUseBP() { return cast(bool)(_bf & 0x10); } + bool reserved() { return cast(bool)(_bf & 0x20); } + ubyte cbFrame() { return cast(ubyte)(_bf >> 6); } + + ubyte cbRegs(ubyte c) { + _bf = cast(ubyte) ((_bf & ~0x07) | (c & 0x07)); + return cast(ubyte)(c & 0x07); + } + + bool fHasSEH(bool f) { _bf = cast(ubyte)((_bf & ~0x08) | (f << 3)); return f; } + bool fUseBP(bool f) { _bf = cast(ubyte)((_bf & ~0x10) | (f << 4)); return f; } + bool reserved(bool r) { _bf = cast(ubyte)((_bf & ~0x20) | (r << 5)); return r; } + + ubyte cbFrame(ubyte c) { + _bf = cast(ubyte) ((_bf & ~0xC0) | ((c & 0x03) << 6)); + return cast(ubyte)(c & 0x03); + } +} +alias FPO_DATA* PFPO_DATA; + +struct IMAGE_DEBUG_MISC { + DWORD DataType; + DWORD Length; + BOOLEAN Unicode; + BYTE[3] Reserved; + BYTE _Data; + + BYTE* Data() { return &_Data; } +} +alias IMAGE_DEBUG_MISC* PIMAGE_DEBUG_MISC; + +struct IMAGE_FUNCTION_ENTRY { + DWORD StartingAddress; + DWORD EndingAddress; + DWORD EndOfPrologue; +} +alias IMAGE_FUNCTION_ENTRY* PIMAGE_FUNCTION_ENTRY; + +struct IMAGE_FUNCTION_ENTRY64 { + ULONGLONG StartingAddress; + ULONGLONG EndingAddress; + union { + ULONGLONG EndOfPrologue; + ULONGLONG UnwindInfoAddress; + } +} +alias IMAGE_FUNCTION_ENTRY64* PIMAGE_FUNCTION_ENTRY64; + +struct IMAGE_SEPARATE_DEBUG_HEADER { + WORD Signature; + WORD Flags; + WORD Machine; + WORD Characteristics; + DWORD TimeDateStamp; + DWORD CheckSum; + DWORD ImageBase; + DWORD SizeOfImage; + DWORD NumberOfSections; + DWORD ExportedNamesSize; + DWORD DebugDirectorySize; + DWORD SectionAlignment; + DWORD[2] Reserved; +} +alias IMAGE_SEPARATE_DEBUG_HEADER* PIMAGE_SEPARATE_DEBUG_HEADER; + +enum SERVICE_NODE_TYPE { + DriverType = SERVICE_KERNEL_DRIVER, + FileSystemType = SERVICE_FILE_SYSTEM_DRIVER, + Win32ServiceOwnProcess = SERVICE_WIN32_OWN_PROCESS, + Win32ServiceShareProcess = SERVICE_WIN32_SHARE_PROCESS, + AdapterType = SERVICE_ADAPTER, + RecognizerType = SERVICE_RECOGNIZER_DRIVER +} + +enum SERVICE_LOAD_TYPE { + BootLoad = SERVICE_BOOT_START, + SystemLoad = SERVICE_SYSTEM_START, + AutoLoad = SERVICE_AUTO_START, + DemandLoad = SERVICE_DEMAND_START, + DisableLoad = SERVICE_DISABLED +} + +enum SERVICE_ERROR_TYPE { + IgnoreError = SERVICE_ERROR_IGNORE, + NormalError = SERVICE_ERROR_NORMAL, + SevereError = SERVICE_ERROR_SEVERE, + CriticalError = SERVICE_ERROR_CRITICAL +} +alias SERVICE_ERROR_TYPE _CM_ERROR_CONTROL_TYPE; + +//DAC: According to MSJ, 'UnderTheHood', May 1996, this +// structure is not documented in any official Microsoft header file. +alias void EXCEPTION_REGISTRATION_RECORD; + +align: +struct NT_TIB { + EXCEPTION_REGISTRATION_RECORD *ExceptionList; + PVOID StackBase; + PVOID StackLimit; + PVOID SubSystemTib; + union { + PVOID FiberData; + DWORD Version; + } + PVOID ArbitraryUserPointer; + NT_TIB *Self; +} +alias NT_TIB* PNT_TIB; + +struct REPARSE_DATA_BUFFER { + DWORD ReparseTag; + WORD ReparseDataLength; + WORD Reserved; + union { + struct _GenericReparseBuffer { + BYTE _DataBuffer; + + BYTE* DataBuffer() { return &_DataBuffer; } + } + _GenericReparseBuffer GenericReparseBuffer; + struct _SymbolicLinkReparseBuffer { + WORD SubstituteNameOffset; + WORD SubstituteNameLength; + WORD PrintNameOffset; + WORD PrintNameLength; + // ??? This is in MinGW, but absent in MSDN docs + ULONG Flags; + WCHAR _PathBuffer; + + WCHAR* PathBuffer() { return &_PathBuffer; } + } + _SymbolicLinkReparseBuffer SymbolicLinkReparseBuffer; + struct _MountPointReparseBuffer { + WORD SubstituteNameOffset; + WORD SubstituteNameLength; + WORD PrintNameOffset; + WORD PrintNameLength; + WCHAR _PathBuffer; + + WCHAR* PathBuffer() { return &_PathBuffer; } + } + _MountPointReparseBuffer MountPointReparseBuffer; + } +} +alias REPARSE_DATA_BUFFER *PREPARSE_DATA_BUFFER; + +struct REPARSE_GUID_DATA_BUFFER { + DWORD ReparseTag; + WORD ReparseDataLength; + WORD Reserved; + GUID ReparseGuid; + struct _GenericReparseBuffer { + BYTE _DataBuffer; + + BYTE* DataBuffer() { return &_DataBuffer; } + } + _GenericReparseBuffer GenericReparseBuffer; +} +alias REPARSE_GUID_DATA_BUFFER* PREPARSE_GUID_DATA_BUFFER; + +const size_t + REPARSE_DATA_BUFFER_HEADER_SIZE = REPARSE_DATA_BUFFER.GenericReparseBuffer.offsetof, + REPARSE_GUID_DATA_BUFFER_HEADER_SIZE = REPARSE_GUID_DATA_BUFFER.GenericReparseBuffer.offsetof, + MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16384; + + +struct REPARSE_POINT_INFORMATION { + WORD ReparseDataLength; + WORD UnparsedNameLength; +} +alias REPARSE_POINT_INFORMATION* PREPARSE_POINT_INFORMATION; + +union FILE_SEGMENT_ELEMENT { + PVOID64 Buffer; + ULONGLONG Alignment; +} +alias FILE_SEGMENT_ELEMENT* PFILE_SEGMENT_ELEMENT; + +// JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags constants +const DWORD + JOB_OBJECT_LIMIT_WORKINGSET = 0x0001, + JOB_OBJECT_LIMIT_PROCESS_TIME = 0x0002, + JOB_OBJECT_LIMIT_JOB_TIME = 0x0004, + JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x0008, + JOB_OBJECT_LIMIT_AFFINITY = 0x0010, + JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x0020, + JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x0040, + JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x0080, + JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x0100, + JOB_OBJECT_LIMIT_JOB_MEMORY = 0x0200, + JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x0400, + JOB_OBJECT_BREAKAWAY_OK = 0x0800, + JOB_OBJECT_SILENT_BREAKAWAY = 0x1000; + +// JOBOBJECT_BASIC_UI_RESTRICTIONS.UIRestrictionsClass constants +const DWORD + JOB_OBJECT_UILIMIT_HANDLES = 0x0001, + JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x0002, + JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x0004, + JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x0008, + JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x0010, + JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x0020, + JOB_OBJECT_UILIMIT_DESKTOP = 0x0040, + JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x0080; + +// JOBOBJECT_SECURITY_LIMIT_INFORMATION.SecurityLimitFlags constants +const DWORD + JOB_OBJECT_SECURITY_NO_ADMIN = 0x0001, + JOB_OBJECT_SECURITY_RESTRICTED_TOKEN = 0x0002, + JOB_OBJECT_SECURITY_ONLY_TOKEN = 0x0004, + JOB_OBJECT_SECURITY_FILTER_TOKENS = 0x0008; + +// JOBOBJECT_END_OF_JOB_TIME_INFORMATION.EndOfJobTimeAction constants +enum : DWORD { + JOB_OBJECT_TERMINATE_AT_END_OF_JOB, + JOB_OBJECT_POST_AT_END_OF_JOB +} + +enum : DWORD { + JOB_OBJECT_MSG_END_OF_JOB_TIME = 1, + JOB_OBJECT_MSG_END_OF_PROCESS_TIME, + JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT, + JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO, + JOB_OBJECT_MSG_NEW_PROCESS, + JOB_OBJECT_MSG_EXIT_PROCESS, + JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS, + JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT, + JOB_OBJECT_MSG_JOB_MEMORY_LIMIT +} + +enum JOBOBJECTINFOCLASS { + JobObjectBasicAccountingInformation = 1, + JobObjectBasicLimitInformation, + JobObjectBasicProcessIdList, + JobObjectBasicUIRestrictions, + JobObjectSecurityLimitInformation, + JobObjectEndOfJobTimeInformation, + JobObjectAssociateCompletionPortInformation, + JobObjectBasicAndIoAccountingInformation, + JobObjectExtendedLimitInformation, + JobObjectJobSetInformation, + MaxJobObjectInfoClass +} + +struct JOBOBJECT_BASIC_ACCOUNTING_INFORMATION { + LARGE_INTEGER TotalUserTime; + LARGE_INTEGER TotalKernelTime; + LARGE_INTEGER ThisPeriodTotalUserTime; + LARGE_INTEGER ThisPeriodTotalKernelTime; + DWORD TotalPageFaultCount; + DWORD TotalProcesses; + DWORD ActiveProcesses; + DWORD TotalTerminatedProcesses; +} +alias JOBOBJECT_BASIC_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION; + +struct JOBOBJECT_BASIC_LIMIT_INFORMATION { + LARGE_INTEGER PerProcessUserTimeLimit; + LARGE_INTEGER PerJobUserTimeLimit; + DWORD LimitFlags; + SIZE_T MinimumWorkingSetSize; + SIZE_T MaximumWorkingSetSize; + DWORD ActiveProcessLimit; + ULONG_PTR Affinity; + DWORD PriorityClass; + DWORD SchedulingClass; +} +alias JOBOBJECT_BASIC_LIMIT_INFORMATION* PJOBOBJECT_BASIC_LIMIT_INFORMATION; + +struct JOBOBJECT_BASIC_PROCESS_ID_LIST { + DWORD NumberOfAssignedProcesses; + DWORD NumberOfProcessIdsInList; + ULONG_PTR _ProcessIdList; + + ULONG_PTR* ProcessIdList() { return &_ProcessIdList; } +} +alias JOBOBJECT_BASIC_PROCESS_ID_LIST* PJOBOBJECT_BASIC_PROCESS_ID_LIST; + +struct JOBOBJECT_BASIC_UI_RESTRICTIONS { + DWORD UIRestrictionsClass; +} +alias JOBOBJECT_BASIC_UI_RESTRICTIONS* PJOBOBJECT_BASIC_UI_RESTRICTIONS; + +struct JOBOBJECT_SECURITY_LIMIT_INFORMATION { + DWORD SecurityLimitFlags; + HANDLE JobToken; + PTOKEN_GROUPS SidsToDisable; + PTOKEN_PRIVILEGES PrivilegesToDelete; + PTOKEN_GROUPS RestrictedSids; +} +alias JOBOBJECT_SECURITY_LIMIT_INFORMATION* PJOBOBJECT_SECURITY_LIMIT_INFORMATION; + +struct JOBOBJECT_END_OF_JOB_TIME_INFORMATION { + DWORD EndOfJobTimeAction; +} +alias JOBOBJECT_END_OF_JOB_TIME_INFORMATION* PJOBOBJECT_END_OF_JOB_TIME_INFORMATION; + +struct JOBOBJECT_ASSOCIATE_COMPLETION_PORT { + PVOID CompletionKey; + HANDLE CompletionPort; +} +alias JOBOBJECT_ASSOCIATE_COMPLETION_PORT* PJOBOBJECT_ASSOCIATE_COMPLETION_PORT; + +struct JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION { + JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo; + IO_COUNTERS IoInfo; +} +alias JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION *PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION; + +struct JOBOBJECT_EXTENDED_LIMIT_INFORMATION { + JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation; + IO_COUNTERS IoInfo; + SIZE_T ProcessMemoryLimit; + SIZE_T JobMemoryLimit; + SIZE_T PeakProcessMemoryUsed; + SIZE_T PeakJobMemoryUsed; +} +alias JOBOBJECT_EXTENDED_LIMIT_INFORMATION* PJOBOBJECT_EXTENDED_LIMIT_INFORMATION; + +struct JOBOBJECT_JOBSET_INFORMATION { + DWORD MemberLevel; +} +alias JOBOBJECT_JOBSET_INFORMATION* PJOBOBJECT_JOBSET_INFORMATION; + +// MinGW: Making these defines conditional on WINVER will break ddk includes +//static if (WINVER >= 0x0500) { + +const DWORD + ES_SYSTEM_REQUIRED = 0x00000001, + ES_DISPLAY_REQUIRED = 0x00000002, + ES_USER_PRESENT = 0x00000004, + ES_CONTINUOUS = 0x80000000; + +enum LATENCY_TIME { + LT_DONT_CARE, + LT_LOWEST_LATENCY +} +alias LATENCY_TIME* PLATENCY_TIME; + +enum SYSTEM_POWER_STATE { + PowerSystemUnspecified, + PowerSystemWorking, + PowerSystemSleeping1, + PowerSystemSleeping2, + PowerSystemSleeping3, + PowerSystemHibernate, + PowerSystemShutdown, + PowerSystemMaximum +} +alias SYSTEM_POWER_STATE* PSYSTEM_POWER_STATE; + +const POWER_SYSTEM_MAXIMUM = SYSTEM_POWER_STATE.PowerSystemMaximum; + +enum POWER_ACTION { + PowerActionNone, + PowerActionReserved, + PowerActionSleep, + PowerActionHibernate, + PowerActionShutdown, + PowerActionShutdownReset, + PowerActionShutdownOff, + PowerActionWarmEject +} +alias POWER_ACTION* PPOWER_ACTION; + +static if (WINVER >= 0x600) { + enum SYSTEM_POWER_CONDITION { + PoAc, + PoDc, + PoHot, + PoConditionMaximum + } + alias SYSTEM_POWER_CONDITION* PSYSTEM_POWER_CONDITION; +} + +enum DEVICE_POWER_STATE { + PowerDeviceUnspecified, + PowerDeviceD0, + PowerDeviceD1, + PowerDeviceD2, + PowerDeviceD3, + PowerDeviceMaximum +} +alias DEVICE_POWER_STATE* PDEVICE_POWER_STATE; + +align(4): +struct BATTERY_REPORTING_SCALE { + DWORD Granularity; + DWORD Capacity; +} +alias BATTERY_REPORTING_SCALE* PBATTERY_REPORTING_SCALE; + +struct POWER_ACTION_POLICY { + POWER_ACTION Action; + ULONG Flags; + ULONG EventCode; +} +alias POWER_ACTION_POLICY* PPOWER_ACTION_POLICY; + +// POWER_ACTION_POLICY.Flags constants +const ULONG + POWER_ACTION_QUERY_ALLOWED = 0x00000001, + POWER_ACTION_UI_ALLOWED = 0x00000002, + POWER_ACTION_OVERRIDE_APPS = 0x00000004, + POWER_ACTION_LIGHTEST_FIRST = 0x10000000, + POWER_ACTION_LOCK_CONSOLE = 0x20000000, + POWER_ACTION_DISABLE_WAKES = 0x40000000, + POWER_ACTION_CRITICAL = 0x80000000; + +// POWER_ACTION_POLICY.EventCode constants +const ULONG + POWER_LEVEL_USER_NOTIFY_TEXT = 0x00000001, + POWER_LEVEL_USER_NOTIFY_SOUND = 0x00000002, + POWER_LEVEL_USER_NOTIFY_EXEC = 0x00000004, + POWER_USER_NOTIFY_BUTTON = 0x00000008, + POWER_USER_NOTIFY_SHUTDOWN = 0x00000010, + POWER_FORCE_TRIGGER_RESET = 0x80000000; + +const size_t + DISCHARGE_POLICY_CRITICAL = 0, + DISCHARGE_POLICY_LOW = 1, + NUM_DISCHARGE_POLICIES = 4; + +enum : BYTE { + PO_THROTTLE_NONE, + PO_THROTTLE_CONSTANT, + PO_THROTTLE_DEGRADE, + PO_THROTTLE_ADAPTIVE, + PO_THROTTLE_MAXIMUM +} + +struct SYSTEM_POWER_LEVEL { + BOOLEAN Enable; + UCHAR[3] Spare; + ULONG BatteryLevel; + POWER_ACTION_POLICY PowerPolicy; + SYSTEM_POWER_STATE MinSystemState; +} +alias SYSTEM_POWER_LEVEL* PSYSTEM_POWER_LEVEL; + +struct SYSTEM_POWER_POLICY { + ULONG Revision; + POWER_ACTION_POLICY PowerButton; + POWER_ACTION_POLICY SleepButton; + POWER_ACTION_POLICY LidClose; + SYSTEM_POWER_STATE LidOpenWake; + ULONG Reserved; + POWER_ACTION_POLICY Idle; + ULONG IdleTimeout; + UCHAR IdleSensitivity; + UCHAR DynamicThrottle; + UCHAR[2] Spare2; + SYSTEM_POWER_STATE MinSleep; + SYSTEM_POWER_STATE MaxSleep; + SYSTEM_POWER_STATE ReducedLatencySleep; + ULONG WinLogonFlags; + ULONG Spare3; + ULONG DozeS4Timeout; + ULONG BroadcastCapacityResolution; + SYSTEM_POWER_LEVEL[NUM_DISCHARGE_POLICIES] DischargePolicy; + ULONG VideoTimeout; + BOOLEAN VideoDimDisplay; + ULONG[3] VideoReserved; + ULONG SpindownTimeout; + BOOLEAN OptimizeForPower; + UCHAR FanThrottleTolerance; + UCHAR ForcedThrottle; + UCHAR MinThrottle; + POWER_ACTION_POLICY OverThrottled; +} +alias SYSTEM_POWER_POLICY* PSYSTEM_POWER_POLICY; + +struct SYSTEM_POWER_CAPABILITIES { + BOOLEAN PowerButtonPresent; + BOOLEAN SleepButtonPresent; + BOOLEAN LidPresent; + BOOLEAN SystemS1; + BOOLEAN SystemS2; + BOOLEAN SystemS3; + BOOLEAN SystemS4; + BOOLEAN SystemS5; + BOOLEAN HiberFilePresent; + BOOLEAN FullWake; + BOOLEAN VideoDimPresent; + BOOLEAN ApmPresent; + BOOLEAN UpsPresent; + BOOLEAN ThermalControl; + BOOLEAN ProcessorThrottle; + UCHAR ProcessorMinThrottle; + UCHAR ProcessorMaxThrottle; + UCHAR[4] spare2; + BOOLEAN DiskSpinDown; + UCHAR[8] spare3; + BOOLEAN SystemBatteriesPresent; + BOOLEAN BatteriesAreShortTerm; + BATTERY_REPORTING_SCALE[3] BatteryScale; + SYSTEM_POWER_STATE AcOnLineWake; + SYSTEM_POWER_STATE SoftLidWake; + SYSTEM_POWER_STATE RtcWake; + SYSTEM_POWER_STATE MinDeviceWakeState; + SYSTEM_POWER_STATE DefaultLowLatencyWake; +} +alias SYSTEM_POWER_CAPABILITIES* PSYSTEM_POWER_CAPABILITIES; + +struct SYSTEM_BATTERY_STATE { + BOOLEAN AcOnLine; + BOOLEAN BatteryPresent; + BOOLEAN Charging; + BOOLEAN Discharging; + BOOLEAN[4] Spare1; + ULONG MaxCapacity; + ULONG RemainingCapacity; + ULONG Rate; + ULONG EstimatedTime; + ULONG DefaultAlert1; + ULONG DefaultAlert2; +} +alias SYSTEM_BATTERY_STATE* PSYSTEM_BATTERY_STATE; + +enum POWER_INFORMATION_LEVEL { + SystemPowerPolicyAc, + SystemPowerPolicyDc, + VerifySystemPolicyAc, + VerifySystemPolicyDc, + SystemPowerCapabilities, + SystemBatteryState, + SystemPowerStateHandler, + ProcessorStateHandler, + SystemPowerPolicyCurrent, + AdministratorPowerPolicy, + SystemReserveHiberFile, + ProcessorInformation, + SystemPowerInformation, + ProcessorStateHandler2, + LastWakeTime, + LastSleepTime, + SystemExecutionState, + SystemPowerStateNotifyHandler, + ProcessorPowerPolicyAc, + ProcessorPowerPolicyDc, + VerifyProcessorPowerPolicyAc, + VerifyProcessorPowerPolicyDc, + ProcessorPowerPolicyCurrent +} + +//#if 1 /* (WIN32_WINNT >= 0x0500) */ +struct SYSTEM_POWER_INFORMATION { + ULONG MaxIdlenessAllowed; + ULONG Idleness; + ULONG TimeRemaining; + UCHAR CoolingMode; +} +alias SYSTEM_POWER_INFORMATION* PSYSTEM_POWER_INFORMATION; +//#endif + +struct PROCESSOR_POWER_POLICY_INFO { + ULONG TimeCheck; + ULONG DemoteLimit; + ULONG PromoteLimit; + UCHAR DemotePercent; + UCHAR PromotePercent; + UCHAR[2] Spare; + uint _bf; + + bool AllowDemotion() { return cast(bool)(_bf & 1); } + bool AllowPromotion() { return cast(bool)(_bf & 2); } + + bool AllowDemotion(bool a) { _bf = (_bf & ~1) | a; return a; } + bool AllowPromotion(bool a) { _bf = (_bf & ~2) | (a << 1); return a; } +/+ + ULONG AllowDemotion : 1; + ULONG AllowPromotion : 1; + ULONG Reserved : 30; ++/ +} +alias PROCESSOR_POWER_POLICY_INFO* PPROCESSOR_POWER_POLICY_INFO; + +struct PROCESSOR_POWER_POLICY { + ULONG Revision; + UCHAR DynamicThrottle; + UCHAR[3] Spare; + ULONG Reserved; + ULONG PolicyCount; + PROCESSOR_POWER_POLICY_INFO[3] Policy; +} +alias PROCESSOR_POWER_POLICY* PPROCESSOR_POWER_POLICY; + +struct ADMINISTRATOR_POWER_POLICY { + SYSTEM_POWER_STATE MinSleep; + SYSTEM_POWER_STATE MaxSleep; + ULONG MinVideoTimeout; + ULONG MaxVideoTimeout; + ULONG MinSpindownTimeout; + ULONG MaxSpindownTimeout; +} +alias ADMINISTRATOR_POWER_POLICY* PADMINISTRATOR_POWER_POLICY; + +//}//#endif /* WINVER >= 0x0500 */ + +extern (Windows) { + alias void function(PVOID, DWORD, PVOID) PIMAGE_TLS_CALLBACK; + + static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { + alias LONG function(PEXCEPTION_POINTERS) PVECTORED_EXCEPTION_HANDLER; + alias void function(PVOID, BOOLEAN) WAITORTIMERCALLBACKFUNC; + } +} + +static if (WINVER >= 0x501) { + enum HEAP_INFORMATION_CLASS { + HeapCompatibilityInformation + } + + enum ACTIVATION_CONTEXT_INFO_CLASS { + ActivationContextBasicInformation = 1, + ActivationContextDetailedInformation, + AssemblyDetailedInformationInActivationContext, + FileInformationInAssemblyOfAssemblyInActivationContext + } + + struct ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION { + DWORD ulFlags; + DWORD ulEncodedAssemblyIdentityLength; + DWORD ulManifestPathType; + DWORD ulManifestPathLength; + LARGE_INTEGER liManifestLastWriteTime; + DWORD ulPolicyPathType; + DWORD ulPolicyPathLength; + LARGE_INTEGER liPolicyLastWriteTime; + DWORD ulMetadataSatelliteRosterIndex; + DWORD ulManifestVersionMajor; + DWORD ulManifestVersionMinor; + DWORD ulPolicyVersionMajor; + DWORD ulPolicyVersionMinor; + DWORD ulAssemblyDirectoryNameLength; + PCWSTR lpAssemblyEncodedAssemblyIdentity; + PCWSTR lpAssemblyManifestPath; + PCWSTR lpAssemblyPolicyPath; + PCWSTR lpAssemblyDirectoryName; + } + alias ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* + PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; + alias CPtr!(ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION) + PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; + + struct ACTIVATION_CONTEXT_DETAILED_INFORMATION { + DWORD dwFlags; + DWORD ulFormatVersion; + DWORD ulAssemblyCount; + DWORD ulRootManifestPathType; + DWORD ulRootManifestPathChars; + DWORD ulRootConfigurationPathType; + DWORD ulRootConfigurationPathChars; + DWORD ulAppDirPathType; + DWORD ulAppDirPathChars; + PCWSTR lpRootManifestPath; + PCWSTR lpRootConfigurationPath; + PCWSTR lpAppDirPath; + } + alias ACTIVATION_CONTEXT_DETAILED_INFORMATION* + PACTIVATION_CONTEXT_DETAILED_INFORMATION; + alias CPtr!(ACTIVATION_CONTEXT_DETAILED_INFORMATION) + PCACTIVATION_CONTEXT_DETAILED_INFORMATION; + + struct ACTIVATION_CONTEXT_QUERY_INDEX { + ULONG ulAssemblyIndex; + ULONG ulFileIndexInAssembly; + } + alias ACTIVATION_CONTEXT_QUERY_INDEX* PACTIVATION_CONTEXT_QUERY_INDEX; + alias CPtr!(ACTIVATION_CONTEXT_QUERY_INDEX) PCACTIVATION_CONTEXT_QUERY_INDEX; + + struct ASSEMBLY_FILE_DETAILED_INFORMATION { + DWORD ulFlags; + DWORD ulFilenameLength; + DWORD ulPathLength; + PCWSTR lpFileName; + PCWSTR lpFilePath; + } + alias ASSEMBLY_FILE_DETAILED_INFORMATION* + PASSEMBLY_FILE_DETAILED_INFORMATION; + alias CPtr!(ASSEMBLY_FILE_DETAILED_INFORMATION) + PCASSEMBLY_FILE_DETAILED_INFORMATION; +} + +version (Unicode) { + alias OSVERSIONINFOW OSVERSIONINFO; + alias OSVERSIONINFOEXW OSVERSIONINFOEX; +} else { + alias OSVERSIONINFOA OSVERSIONINFO; + alias OSVERSIONINFOEXA OSVERSIONINFOEX; +} + +alias OSVERSIONINFO* POSVERSIONINFO, LPOSVERSIONINFO; +alias OSVERSIONINFOEX* POSVERSIONINFOEX, LPOSVERSIONINFOEX; + + +static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { + extern (Windows) ULONGLONG VerSetConditionMask(ULONGLONG, DWORD, BYTE); +} + +version (Win64) { + const WORD IMAGE_NT_OPTIONAL_HDR_MAGIC = IMAGE_NT_OPTIONAL_HDR64_MAGIC; + + alias IMAGE_ORDINAL_FLAG64 IMAGE_ORDINAL_FLAG; + alias IMAGE_SNAP_BY_ORDINAL64 IMAGE_SNAP_BY_ORDINAL; + alias IMAGE_ORDINAL64 IMAGE_ORDINAL; + alias IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER; + alias IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS; + alias IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA; + alias IMAGE_TLS_DIRECTORY64 IMAGE_TLS_DIRECTORY; +} else { + const WORD IMAGE_NT_OPTIONAL_HDR_MAGIC = IMAGE_NT_OPTIONAL_HDR32_MAGIC; + + alias IMAGE_ORDINAL_FLAG32 IMAGE_ORDINAL_FLAG; + alias IMAGE_ORDINAL32 IMAGE_ORDINAL; + alias IMAGE_SNAP_BY_ORDINAL32 IMAGE_SNAP_BY_ORDINAL; + alias IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER; + alias IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS; + alias IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA; + alias IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY; +} + +alias IMAGE_OPTIONAL_HEADER* PIMAGE_OPTIONAL_HEADER; +alias IMAGE_NT_HEADERS* PIMAGE_NT_HEADERS; +alias IMAGE_THUNK_DATA* PIMAGE_THUNK_DATA; +alias IMAGE_TLS_DIRECTORY* PIMAGE_TLS_DIRECTORY; + +// TODO: MinGW implements these in assembly. How to translate? +PVOID GetCurrentFiber(); +PVOID GetFiberData(); ADDED src/win32/winperf.d Index: src/win32/winperf.d ================================================================== --- src/win32/winperf.d +++ src/win32/winperf.d @@ -0,0 +1,152 @@ +/***********************************************************************\ +* winperf.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.winperf; + +import win32.windef; +import win32.winbase; // for SYSTEMTIME + +const PERF_DATA_VERSION=1; +const PERF_DATA_REVISION=1; +const PERF_NO_INSTANCES=-1; +const PERF_SIZE_DWORD=0; +const PERF_SIZE_LARGE=256; +const PERF_SIZE_ZERO=512; +const PERF_SIZE_VARIABLE_LEN=768; +const PERF_TYPE_NUMBER=0; +const PERF_TYPE_COUNTER=1024; +const PERF_TYPE_TEXT=2048; +const PERF_TYPE_ZERO=0xC00; +const PERF_NUMBER_HEX=0; +const PERF_NUMBER_DECIMAL=0x10000; +const PERF_NUMBER_DEC_1000=0x20000; +const PERF_COUNTER_VALUE=0; +const PERF_COUNTER_RATE=0x10000; +const PERF_COUNTER_FRACTION=0x20000; +const PERF_COUNTER_BASE=0x30000; +const PERF_COUNTER_ELAPSED=0x40000; +const PERF_COUNTER_QUEUELEN=0x50000; +const PERF_COUNTER_HISTOGRAM=0x60000; +const PERF_TEXT_UNICODE=0; +const PERF_TEXT_ASCII=0x10000; +const PERF_TIMER_TICK=0; +const PERF_TIMER_100NS=0x100000; +const PERF_OBJECT_TIMER=0x200000; +const PERF_DELTA_COUNTER=0x400000; +const PERF_DELTA_BASE=0x800000; +const PERF_INVERSE_COUNTER=0x1000000; +const PERF_MULTI_COUNTER=0x2000000; +const PERF_DISPLAY_NO_SUFFIX=0; +const PERF_DISPLAY_PER_SEC=0x10000000; +const PERF_DISPLAY_PERCENT=0x20000000; +const PERF_DISPLAY_SECONDS=0x30000000; +const PERF_DISPLAY_NOSHOW=0x40000000; +const PERF_COUNTER_HISTOGRAM_TYPE=0x80000000; +const PERF_NO_UNIQUE_ID=(-1); +const PERF_DETAIL_NOVICE=100; +const PERF_DETAIL_ADVANCED=200; +const PERF_DETAIL_EXPERT=300; +const PERF_DETAIL_WIZARD=400; +const PERF_COUNTER_COUNTER=(PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_DISPLAY_PER_SEC); +const PERF_COUNTER_TIMER=(PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_DISPLAY_PERCENT); +const PERF_COUNTER_QUEUELEN_TYPE=(PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_QUEUELEN|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_DISPLAY_NO_SUFFIX); +const PERF_COUNTER_BULK_COUNT=(PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_DISPLAY_PER_SEC); +const PERF_COUNTER_TEXT=(PERF_SIZE_VARIABLE_LEN|PERF_TYPE_TEXT|PERF_TEXT_UNICODE|PERF_DISPLAY_NO_SUFFIX); +const PERF_COUNTER_RAWCOUNT=(PERF_SIZE_DWORD|PERF_TYPE_NUMBER|PERF_NUMBER_DECIMAL|PERF_DISPLAY_NO_SUFFIX); +const PERF_COUNTER_LARGE_RAWCOUNT=(PERF_SIZE_LARGE|PERF_TYPE_NUMBER|PERF_NUMBER_DECIMAL|PERF_DISPLAY_NO_SUFFIX); +const PERF_COUNTER_RAWCOUNT_HEX=(PERF_SIZE_DWORD|PERF_TYPE_NUMBER|PERF_NUMBER_HEX|PERF_DISPLAY_NO_SUFFIX); +const PERF_COUNTER_LARGE_RAWCOUNT_HEX=(PERF_SIZE_LARGE|PERF_TYPE_NUMBER|PERF_NUMBER_HEX|PERF_DISPLAY_NO_SUFFIX); +const PERF_SAMPLE_FRACTION=(PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_FRACTION|PERF_DELTA_COUNTER|PERF_DELTA_BASE|PERF_DISPLAY_PERCENT); +const PERF_SAMPLE_COUNTER=(PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_DISPLAY_NO_SUFFIX); +const PERF_COUNTER_NODATA=(PERF_SIZE_ZERO|PERF_DISPLAY_NOSHOW); +const PERF_COUNTER_TIMER_INV=(PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_INVERSE_COUNTER|PERF_DISPLAY_PERCENT); +const PERF_SAMPLE_BASE=(PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_BASE|PERF_DISPLAY_NOSHOW|1); +const PERF_AVERAGE_TIMER=(PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_FRACTION|PERF_DISPLAY_SECONDS); +const PERF_AVERAGE_BASE=(PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_BASE|PERF_DISPLAY_NOSHOW|2); +const PERF_AVERAGE_BULK=(PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_FRACTION|PERF_DISPLAY_NOSHOW); +const PERF_100NSEC_TIMER=(PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_100NS|PERF_DELTA_COUNTER|PERF_DISPLAY_PERCENT); +const PERF_100NSEC_TIMER_INV=(PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_100NS|PERF_DELTA_COUNTER|PERF_INVERSE_COUNTER|PERF_DISPLAY_PERCENT); +const PERF_COUNTER_MULTI_TIMER=(PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_DELTA_COUNTER|PERF_TIMER_TICK|PERF_MULTI_COUNTER|PERF_DISPLAY_PERCENT); +const PERF_COUNTER_MULTI_TIMER_INV=(PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_DELTA_COUNTER|PERF_MULTI_COUNTER|PERF_TIMER_TICK|PERF_INVERSE_COUNTER|PERF_DISPLAY_PERCENT); +const PERF_COUNTER_MULTI_BASE=(PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_BASE|PERF_MULTI_COUNTER|PERF_DISPLAY_NOSHOW); +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); +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); +const PERF_RAW_FRACTION=(PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_FRACTION|PERF_DISPLAY_PERCENT); +const PERF_RAW_BASE=(PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_BASE|PERF_DISPLAY_NOSHOW|3); +const PERF_ELAPSED_TIME=(PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_ELAPSED|PERF_OBJECT_TIMER|PERF_DISPLAY_SECONDS); + +struct PERF_DATA_BLOCK { + WCHAR Signature[4]; + DWORD LittleEndian; + DWORD Version; + DWORD Revision; + DWORD TotalByteLength; + DWORD HeaderLength; + DWORD NumObjectTypes; + LONG DefaultObject; + SYSTEMTIME SystemTime; + LARGE_INTEGER PerfTime; + LARGE_INTEGER PerfFreq; + LARGE_INTEGER PerfTime100nSec; + DWORD SystemNameLength; + DWORD SystemNameOffset; +} +alias PERF_DATA_BLOCK * PPERF_DATA_BLOCK; + +struct PERF_OBJECT_TYPE { + DWORD TotalByteLength; + DWORD DefinitionLength; + DWORD HeaderLength; + DWORD ObjectNameTitleIndex; + LPWSTR ObjectNameTitle; + DWORD ObjectHelpTitleIndex; + LPWSTR ObjectHelpTitle; + DWORD DetailLevel; + DWORD NumCounters; + LONG DefaultCounter; + LONG NumInstances; + DWORD CodePage; + LARGE_INTEGER PerfTime; + LARGE_INTEGER PerfFreq; +} +alias PERF_OBJECT_TYPE * PPERF_OBJECT_TYPE; + +struct PERF_COUNTER_DEFINITION { + DWORD ByteLength; + DWORD CounterNameTitleIndex; + LPWSTR CounterNameTitle; + DWORD CounterHelpTitleIndex; + LPWSTR CounterHelpTitle; + LONG DefaultScale; + DWORD DetailLevel; + DWORD CounterType; + DWORD CounterSize; + DWORD CounterOffset; +} +alias PERF_COUNTER_DEFINITION * PPERF_COUNTER_DEFINITION; + +struct PERF_INSTANCE_DEFINITION { + DWORD ByteLength; + DWORD ParentObjectTitleIndex; + DWORD ParentObjectInstance; + LONG UniqueID; + DWORD NameOffset; + DWORD NameLength; +} +alias PERF_INSTANCE_DEFINITION * PPERF_INSTANCE_DEFINITION; + +struct PERF_COUNTER_BLOCK { + DWORD ByteLength; +} +alias PERF_COUNTER_BLOCK * PPERF_COUNTER_BLOCK; + +extern (Windows): +alias DWORD function (LPWSTR) PM_OPEN_PROC; +alias DWORD function (LPWSTR,PVOID*,PDWORD,PDWORD) PM_COLLECT_PROC; +alias DWORD function () PM_CLOSE_PROC; Index: src/win32/winreg.d ================================================================== --- src/win32/winreg.d +++ src/win32/winreg.d @@ -1,670 +1,258 @@ -module win32.winreg; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.winnt, win32.winbase; - -// #ifndef _WINREG_ -// #define _WINREG_ - -// #ifdef _MAC -// #... -// #endif - -// #ifdef __cplusplus -// extern "C" { -// #endif - -// #ifndef WINVER -// #... -// #endif /* !WINVER */ - -alias ACCESS_MASK REGSAM; - -const HKEY HKEY_CLASSES_ROOT = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000000) ; -const HKEY HKEY_CURRENT_USER = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000001) ; -const HKEY HKEY_LOCAL_MACHINE = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000002) ; -const HKEY HKEY_USERS = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000003) ; -const HKEY HKEY_PERFORMANCE_DATA = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000004) ; -const HKEY HKEY_PERFORMANCE_TEXT = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000050) ; -const HKEY HKEY_PERFORMANCE_NLSTEXT = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000060) ; -// #if(WINVER >= 0x0400) -const HKEY HKEY_CURRENT_CONFIG = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000005) ; -const HKEY HKEY_DYN_DATA = cast(HKEY)cast(ULONG_PTR)(cast(LONG)0x80000006) ; - -// #ifndef _PROVIDER_STRUCTS_DEFINED -// #define _PROVIDER_STRUCTS_DEFINED - -enum : uint { PROVIDER_KEEPS_VALUE_LENGTH = 0x1 } -struct val_context { - int valuelen; - LPVOID value_context; - LPVOID val_buff_ptr; -} - -alias val_context* PVALCONTEXT; - -struct pvalueA { - LPSTR pv_valuename; - int pv_valuelen; - LPVOID pv_value_context; - DWORD pv_type; -} -alias pvalueA PVALUEA; -alias pvalueA* PPVALUEA; - -struct pvalueW { - LPWSTR pv_valuename; - int pv_valuelen; - LPVOID pv_value_context; - DWORD pv_type; -} -alias pvalueW PVALUEW; -alias pvalueW* PPVALUEW; - -// #ifdef UNICODE -alias PVALUEW PVALUE; -alias PPVALUEW PPVALUE; -// #else -// ... -// #endif // UNICODE - -// typedef DWORD _cdecl QUERYHANDLER (LPVOID keycontext, PVALCONTEXT val_list, DWORD num_vals, LPVOID outputbuffer, DWORD FAR *total_outlen, DWORD input_blen); - -extern(Windows) alias DWORD function(LPVOID keycontext, PVALCONTEXT val_list, DWORD num_vals, LPVOID outputbuffer, DWORD* total_outlen, DWORD input_blen) PQUERYHANDLER; - -struct provider_info { - PQUERYHANDLER pi_R0_1val; - PQUERYHANDLER pi_R0_allvals; - PQUERYHANDLER pi_R3_1val; - PQUERYHANDLER pi_R3_allvals; - DWORD pi_flags; - LPVOID pi_key_context; -} -alias provider_info REG_PROVIDER; - -alias provider_info* PPROVIDER; - -struct value_entA { - LPSTR ve_valuename; - DWORD ve_valuelen; - DWORD_PTR ve_valueptr; - DWORD ve_type; -} -alias value_entA VALENTA; -alias value_entA* PVALENTA; - -struct value_entW { - LPWSTR ve_valuename; - DWORD ve_valuelen; - DWORD_PTR ve_valueptr; - DWORD ve_type; -} -alias value_entW VALENTW; -alias value_entW* PVALENTW; - -// #ifdef UNICODE -alias VALENTW VALENT; -alias PVALENTW PVALENT; -// #else -// ... -// #endif // UNICODE - -// #endif // not(_PROVIDER_STRUCTS_DEFINED) - -// #endif /* WINVER >= 0x0400 */ - -alias NULL WIN31_CLASS; - -extern(Windows) export LONG RegCloseKey( - HKEY hKey); - -extern(Windows) export LONG RegOverridePredefKey( - HKEY hKey, - HKEY hNewHKey); - -extern(Windows) export LONG RegOpenUserClassesRoot( - HANDLE hToken, - DWORD dwOptions, - REGSAM samDesired, - PHKEY phkResult); - -extern(Windows) export LONG RegOpenCurrentUser( - REGSAM samDesired, - PHKEY phkResult); - -extern(Windows) export LONG RegDisablePredefinedCache(); - -extern(Windows) export LONG RegConnectRegistryA( - LPCSTR lpMachineName, - HKEY hKey, - PHKEY phkResult); -extern(Windows) export LONG RegConnectRegistryW( - LPCWSTR lpMachineName, - HKEY hKey, - PHKEY phkResult); -// #ifdef UNICODE -alias RegConnectRegistryW RegConnectRegistry; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegCreateKeyA( - HKEY hKey, - LPCSTR lpSubKey, - PHKEY phkResult); -extern(Windows) export LONG RegCreateKeyW( - HKEY hKey, - LPCWSTR lpSubKey, - PHKEY phkResult); -// #ifdef UNICODE -alias RegCreateKeyW RegCreateKey; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegCreateKeyExA( - HKEY hKey, - LPCSTR lpSubKey, - DWORD Reserved, - LPSTR lpClass, - DWORD dwOptions, - REGSAM samDesired, - LPSECURITY_ATTRIBUTES lpSecurityAttributes, - PHKEY phkResult, - LPDWORD lpdwDisposition); -extern(Windows) export LONG RegCreateKeyExW( - HKEY hKey, - LPCWSTR lpSubKey, - DWORD Reserved, - LPWSTR lpClass, - DWORD dwOptions, - REGSAM samDesired, - LPSECURITY_ATTRIBUTES lpSecurityAttributes, - PHKEY phkResult, - LPDWORD lpdwDisposition); -// #ifdef UNICODE -alias RegCreateKeyExW RegCreateKeyEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegDeleteKeyA( - HKEY hKey, - LPCSTR lpSubKey); -extern(Windows) export LONG RegDeleteKeyW( - HKEY hKey, - LPCWSTR lpSubKey); -// #ifdef UNICODE -alias RegDeleteKeyW RegDeleteKey; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegDeleteValueA( - HKEY hKey, - LPCSTR lpValueName); -extern(Windows) export LONG RegDeleteValueW( - HKEY hKey, - LPCWSTR lpValueName); -// #ifdef UNICODE -alias RegDeleteValueW RegDeleteValue; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegEnumKeyA( - HKEY hKey, - DWORD dwIndex, - LPSTR lpName, - DWORD cbName); -extern(Windows) export LONG RegEnumKeyW( - HKEY hKey, - DWORD dwIndex, - LPWSTR lpName, - DWORD cbName); -// #ifdef UNICODE -alias RegEnumKeyW RegEnumKey; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegEnumKeyExA( - HKEY hKey, - DWORD dwIndex, - LPSTR lpName, - LPDWORD lpcbName, - LPDWORD lpReserved, - LPSTR lpClass, - LPDWORD lpcbClass, - PFILETIME lpftLastWriteTime); -extern(Windows) export LONG RegEnumKeyExW( - HKEY hKey, - DWORD dwIndex, - LPWSTR lpName, - LPDWORD lpcbName, - LPDWORD lpReserved, - LPWSTR lpClass, - LPDWORD lpcbClass, - PFILETIME lpftLastWriteTime); -// #ifdef UNICODE -alias RegEnumKeyExW RegEnumKeyEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegEnumValueA( - HKEY hKey, - DWORD dwIndex, - LPSTR lpValueName, - LPDWORD lpcbValueName, - LPDWORD lpReserved, - LPDWORD lpType, - LPBYTE lpData, - LPDWORD lpcbData); -extern(Windows) export LONG RegEnumValueW( - HKEY hKey, - DWORD dwIndex, - LPWSTR lpValueName, - LPDWORD lpcbValueName, - LPDWORD lpReserved, - LPDWORD lpType, - LPBYTE lpData, - LPDWORD lpcbData); -// #ifdef UNICODE -alias RegEnumValueW RegEnumValue; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegFlushKey( - HKEY hKey); - -extern(Windows) export LONG RegGetKeySecurity( - HKEY hKey, - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR pSecurityDescriptor, - LPDWORD lpcbSecurityDescriptor); - -extern(Windows) export LONG RegLoadKeyA( - HKEY hKey, - LPCSTR lpSubKey, - LPCSTR lpFile); -extern(Windows) export LONG RegLoadKeyW( - HKEY hKey, - LPCWSTR lpSubKey, - LPCWSTR lpFile); -// #ifdef UNICODE -alias RegLoadKeyW RegLoadKey; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegNotifyChangeKeyValue( - HKEY hKey, - BOOL bWatchSubtree, - DWORD dwNotifyFilter, - HANDLE hEvent, - BOOL fAsynchronus); - -extern(Windows) export LONG RegOpenKeyA( - HKEY hKey, - LPCSTR lpSubKey, - PHKEY phkResult); -extern(Windows) export LONG RegOpenKeyW( - HKEY hKey, - LPCWSTR lpSubKey, - PHKEY phkResult); -// #ifdef UNICODE -alias RegOpenKeyW RegOpenKey; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegOpenKeyExA( - HKEY hKey, - LPCSTR lpSubKey, - DWORD ulOptions, - REGSAM samDesired, - PHKEY phkResult); -extern(Windows) export LONG RegOpenKeyExW( - HKEY hKey, - LPCWSTR lpSubKey, - DWORD ulOptions, - REGSAM samDesired, - PHKEY phkResult); -// #ifdef UNICODE -alias RegOpenKeyExW RegOpenKeyEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegQueryInfoKeyA( - HKEY hKey, - LPSTR lpClass, - LPDWORD lpcbClass, - LPDWORD lpReserved, - LPDWORD lpcSubKeys, - LPDWORD lpcbMaxSubKeyLen, - LPDWORD lpcbMaxClassLen, - LPDWORD lpcValues, - LPDWORD lpcbMaxValueNameLen, - LPDWORD lpcbMaxValueLen, - LPDWORD lpcbSecurityDescriptor, - PFILETIME lpftLastWriteTime); -extern(Windows) export LONG RegQueryInfoKeyW( - HKEY hKey, - LPWSTR lpClass, - LPDWORD lpcbClass, - LPDWORD lpReserved, - LPDWORD lpcSubKeys, - LPDWORD lpcbMaxSubKeyLen, - LPDWORD lpcbMaxClassLen, - LPDWORD lpcValues, - LPDWORD lpcbMaxValueNameLen, - LPDWORD lpcbMaxValueLen, - LPDWORD lpcbSecurityDescriptor, - PFILETIME lpftLastWriteTime); -// #ifdef UNICODE -alias RegQueryInfoKeyW RegQueryInfoKey; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegQueryValueA( - HKEY hKey, - LPCSTR lpSubKey, - LPSTR lpValue, - PLONG lpcbValue); -extern(Windows) export LONG RegQueryValueW( - HKEY hKey, - LPCWSTR lpSubKey, - LPWSTR lpValue, - PLONG lpcbValue); -// #ifdef UNICODE -alias RegQueryValueW RegQueryValue; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export LONG RegQueryMultipleValuesA( - HKEY hKey, - PVALENTA val_list, - DWORD num_vals, - LPSTR lpValueBuf, - LPDWORD ldwTotsize); -extern(Windows) export LONG RegQueryMultipleValuesW( - HKEY hKey, - PVALENTW val_list, - DWORD num_vals, - LPWSTR lpValueBuf, - LPDWORD ldwTotsize); -// #ifdef UNICODE -alias RegQueryMultipleValuesW RegQueryMultipleValues; -// #else -// #... -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export LONG RegQueryValueExA( - HKEY hKey, - LPCSTR lpValueName, - LPDWORD lpReserved, - LPDWORD lpType, - LPBYTE lpData, - LPDWORD lpcbData); -extern(Windows) export LONG RegQueryValueExW( - HKEY hKey, - LPCWSTR lpValueName, - LPDWORD lpReserved, - LPDWORD lpType, - LPBYTE lpData, - LPDWORD lpcbData); -// #ifdef UNICODE -alias RegQueryValueExW RegQueryValueEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegReplaceKeyA( - HKEY hKey, - LPCSTR lpSubKey, - LPCSTR lpNewFile, - LPCSTR lpOldFile); -extern(Windows) export LONG RegReplaceKeyW( - HKEY hKey, - LPCWSTR lpSubKey, - LPCWSTR lpNewFile, - LPCWSTR lpOldFile); -// #ifdef UNICODE -alias RegReplaceKeyW RegReplaceKey; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegRestoreKeyA( - HKEY hKey, - LPCSTR lpFile, - DWORD dwFlags); -extern(Windows) export LONG RegRestoreKeyW( - HKEY hKey, - LPCWSTR lpFile, - DWORD dwFlags); -// #ifdef UNICODE -alias RegRestoreKeyW RegRestoreKey; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegSaveKeyA( - HKEY hKey, - LPCSTR lpFile, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -extern(Windows) export LONG RegSaveKeyW( - HKEY hKey, - LPCWSTR lpFile, - LPSECURITY_ATTRIBUTES lpSecurityAttributes); -// #ifdef UNICODE -alias RegSaveKeyW RegSaveKey; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegSetKeySecurity( - HKEY hKey, - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR pSecurityDescriptor); - -extern(Windows) export LONG RegSetValueA( - HKEY hKey, - LPCSTR lpSubKey, - DWORD dwType, - LPCSTR lpData, - DWORD cbData); -extern(Windows) export LONG RegSetValueW( - HKEY hKey, - LPCWSTR lpSubKey, - DWORD dwType, - LPCWSTR lpData, - DWORD cbData); -// #ifdef UNICODE -alias RegSetValueW RegSetValue; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegSetValueExA( - HKEY hKey, - LPCSTR lpValueName, - DWORD Reserved, - DWORD dwType, - BYTE* lpData, - DWORD cbData); -extern(Windows) export LONG RegSetValueExW( - HKEY hKey, - LPCWSTR lpValueName, - DWORD Reserved, - DWORD dwType, - BYTE* lpData, - DWORD cbData); -// #ifdef UNICODE -alias RegSetValueExW RegSetValueEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegUnLoadKeyA( - HKEY hKey, - LPCSTR lpSubKey); -extern(Windows) export LONG RegUnLoadKeyW( - HKEY hKey, - LPCWSTR lpSubKey); -// #ifdef UNICODE -alias RegUnLoadKeyW RegUnLoadKey; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL InitiateSystemShutdownA( - LPSTR lpMachineName, - LPSTR lpMessage, - DWORD dwTimeout, - BOOL bForceAppsClosed, - BOOL bRebootAfterShutdown); -extern(Windows) export BOOL InitiateSystemShutdownW( - LPWSTR lpMachineName, - LPWSTR lpMessage, - DWORD dwTimeout, - BOOL bForceAppsClosed, - BOOL bRebootAfterShutdown); -// #ifdef UNICODE -alias InitiateSystemShutdownW InitiateSystemShutdown; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL AbortSystemShutdownA( - LPSTR lpMachineName); -extern(Windows) export BOOL AbortSystemShutdownW( - LPWSTR lpMachineName); -// #ifdef UNICODE -alias AbortSystemShutdownW AbortSystemShutdown; -// #else -// #... -// #endif // !UNICODE - -// inline #include -// ---- - -// #if !defined SENTINEL_Reason -// # define SENTINEL_Reason - -enum : uint { SHTDN_REASON_FLAG_COMMENT_REQUIRED = 0x01000000 } -enum : uint { SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED = 0x02000000 } -enum : uint { SHTDN_REASON_FLAG_CLEAN_UI = 0x04000000 } -enum : uint { SHTDN_REASON_FLAG_DIRTY_UI = 0x08000000 } - -enum : uint { SHTDN_REASON_FLAG_USER_DEFINED = 0x40000000 } -enum : uint { SHTDN_REASON_FLAG_PLANNED = 0x80000000 } - -enum : uint { SHTDN_REASON_MAJOR_OTHER = 0x00000000 } -enum : uint { SHTDN_REASON_MAJOR_NONE = 0x00000000 } -enum : uint { SHTDN_REASON_MAJOR_HARDWARE = 0x00010000 } -enum : uint { SHTDN_REASON_MAJOR_OPERATINGSYSTEM = 0x00020000 } -enum : uint { SHTDN_REASON_MAJOR_SOFTWARE = 0x00030000 } -enum : uint { SHTDN_REASON_MAJOR_APPLICATION = 0x00040000 } -enum : uint { SHTDN_REASON_MAJOR_SYSTEM = 0x00050000 } -enum : uint { SHTDN_REASON_MAJOR_POWER = 0x00060000 } - -enum : uint { SHTDN_REASON_MINOR_OTHER = 0x00000000 } -enum : uint { SHTDN_REASON_MINOR_NONE = 0x000000ff } -enum : uint { SHTDN_REASON_MINOR_MAINTENANCE = 0x00000001 } -enum : uint { SHTDN_REASON_MINOR_INSTALLATION = 0x00000002 } -enum : uint { SHTDN_REASON_MINOR_UPGRADE = 0x00000003 } -enum : uint { SHTDN_REASON_MINOR_RECONFIG = 0x00000004 } -enum : uint { SHTDN_REASON_MINOR_HUNG = 0x00000005 } -enum : uint { SHTDN_REASON_MINOR_UNSTABLE = 0x00000006 } -enum : uint { SHTDN_REASON_MINOR_DISK = 0x00000007 } -enum : uint { SHTDN_REASON_MINOR_PROCESSOR = 0x00000008 } -enum : uint { SHTDN_REASON_MINOR_NETWORKCARD = 0x00000009 } -enum : uint { SHTDN_REASON_MINOR_POWER_SUPPLY = 0x0000000a } -enum : uint { SHTDN_REASON_MINOR_CORDUNPLUGGED = 0x0000000b } -enum : uint { SHTDN_REASON_MINOR_ENVIRONMENT = 0x0000000c } -enum : uint { SHTDN_REASON_MINOR_HARDWARE_DRIVER = 0x0000000d } -enum : uint { SHTDN_REASON_MINOR_OTHERDRIVER = 0x0000000e } -enum : uint { SHTDN_REASON_MINOR_BLUESCREEN = 0x0000000F } - -alias SHTDN_REASON_MINOR_NONE SHTDN_REASON_UNKNOWN; - -enum : uint { SHTDN_REASON_VALID_BIT_MASK = 0xc0ffffff } - -enum : uint { PCLEANUI = SHTDN_REASON_FLAG_PLANNED | SHTDN_REASON_FLAG_CLEAN_UI } -enum : uint { UCLEANUI = SHTDN_REASON_FLAG_CLEAN_UI } -enum : uint { UDIRTYUI = SHTDN_REASON_FLAG_DIRTY_UI } - -enum : uint { MAX_REASON_NAME_LEN = 64 } -enum : uint { MAX_REASON_DESC_LEN = 256 } -enum : uint { MAX_REASON_BUGID_LEN = 32 } -enum : uint { MAX_REASON_COMMENT_LEN = 4096 } - -// #endif // !defined SENTINEL_Reason -// ---- - -enum : uint { REASON_SWINSTALL = SHTDN_REASON_MAJOR_SOFTWARE | SHTDN_REASON_MINOR_INSTALLATION } -enum : uint { REASON_HWINSTALL = SHTDN_REASON_MAJOR_HARDWARE | SHTDN_REASON_MINOR_INSTALLATION } -enum : uint { REASON_SERVICEHANG = SHTDN_REASON_MAJOR_SOFTWARE | SHTDN_REASON_MINOR_HUNG } -enum : uint { REASON_UNSTABLE = SHTDN_REASON_MAJOR_SYSTEM | SHTDN_REASON_MINOR_UNSTABLE } -enum : uint { REASON_SWHWRECONF = SHTDN_REASON_MAJOR_SOFTWARE | SHTDN_REASON_MINOR_RECONFIG } -enum : uint { REASON_OTHER = SHTDN_REASON_MAJOR_OTHER | SHTDN_REASON_MINOR_OTHER } -alias SHTDN_REASON_UNKNOWN REASON_UNKNOWN; -alias SHTDN_REASON_FLAG_PLANNED REASON_PLANNED_FLAG; - -extern(Windows) export BOOL InitiateSystemShutdownExA( - LPSTR lpMachineName, - LPSTR lpMessage, - DWORD dwTimeout, - BOOL bForceAppsClosed, - BOOL bRebootAfterShutdown, - DWORD dwReason); -extern(Windows) export BOOL InitiateSystemShutdownExW( - LPWSTR lpMachineName, - LPWSTR lpMessage, - DWORD dwTimeout, - BOOL bForceAppsClosed, - BOOL bRebootAfterShutdown, - DWORD dwReason); -// #ifdef UNICODE -alias InitiateSystemShutdownExW InitiateSystemShutdownEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG RegSaveKeyExA( - HKEY hKey, - LPCSTR lpFile, - LPSECURITY_ATTRIBUTES lpSecurityAttributes, - DWORD Flags); -extern(Windows) export LONG RegSaveKeyExW( - HKEY hKey, - LPCWSTR lpFile, - LPSECURITY_ATTRIBUTES lpSecurityAttributes, - DWORD Flags); -// #ifdef UNICODE -alias RegSaveKeyExW RegSaveKeyEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG Wow64Win32ApiEntry( - DWORD dwFuncNumber, - DWORD dwFlag, - DWORD dwRes); - -// #ifdef __cplusplus -// } -// #endif - -// #endif // _WINREG_ - +/***********************************************************************\ +* winreg.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.winreg; +pragma(lib, "advapi32.lib"); + +private import win32.w32api, win32.winbase, win32.windef; + +const HKEY + HKEY_CLASSES_ROOT = cast(HKEY) 0x80000000, + HKEY_CURRENT_USER = cast(HKEY) 0x80000001, + HKEY_LOCAL_MACHINE = cast(HKEY) 0x80000002, + HKEY_USERS = cast(HKEY) 0x80000003, + HKEY_PERFORMANCE_DATA = cast(HKEY) 0x80000004, + HKEY_CURRENT_CONFIG = cast(HKEY) 0x80000005, + HKEY_DYN_DATA = cast(HKEY) 0x80000006; + +enum : DWORD { + REG_OPTION_NON_VOLATILE, + REG_OPTION_VOLATILE +} + +enum : DWORD { + REG_CREATED_NEW_KEY = 1, + REG_OPENED_EXISTING_KEY +} + +enum : DWORD { + REG_NONE = 0, + REG_SZ, + REG_EXPAND_SZ, + REG_BINARY, + REG_DWORD_LITTLE_ENDIAN, + REG_DWORD = REG_DWORD_LITTLE_ENDIAN, + REG_DWORD_BIG_ENDIAN, + REG_LINK, + REG_MULTI_SZ, + REG_RESOURCE_LIST, + REG_FULL_RESOURCE_DESCRIPTOR, + REG_RESOURCE_REQUIREMENTS_LIST, + REG_QWORD_LITTLE_ENDIAN, + REG_QWORD = REG_QWORD_LITTLE_ENDIAN +} + +const DWORD + REG_NOTIFY_CHANGE_NAME = 1, + REG_NOTIFY_CHANGE_ATTRIBUTES = 2, + REG_NOTIFY_CHANGE_LAST_SET = 4, + REG_NOTIFY_CHANGE_SECURITY = 8; + +alias ACCESS_MASK REGSAM; + +struct VALENTA { + LPSTR ve_valuename; + DWORD ve_valuelen; + DWORD ve_valueptr; + DWORD ve_type; +} +alias VALENTA* PVALENTA; + +struct VALENTW { + LPWSTR ve_valuename; + DWORD ve_valuelen; + DWORD ve_valueptr; + DWORD ve_type; +} +alias VALENTW* PVALENTW; + +// RRF - Registry Routine Flags (for RegGetValue) +static if (WINVER >= 0x600) { + enum : DWORD { + RRF_RT_REG_NONE = 0x00000001, + RRF_RT_REG_SZ = 0x00000002, + RRF_RT_REG_EXPAND_SZ = 0x00000004, + RRF_RT_REG_BINARY = 0x00000008, + RRF_RT_REG_DWORD = 0x00000010, + RRF_RT_REG_MULTI_SZ = 0x00000020, + RRF_RT_REG_QWORD = 0x00000040, + RRF_RT_DWORD = RRF_RT_REG_BINARY | RRF_RT_REG_DWORD, + RRF_RT_QWORD = RRF_RT_REG_BINARY | RRF_RT_REG_QWORD, + RRF_RT_ANY = 0x0000FFFF, + RRF_NOEXPAND = 0x10000000, + RRF_ZEROONFAILURE = 0x20000000 + } +} + +extern (Windows) { + LONG RegCloseKey(HKEY); + LONG RegConnectRegistryA(LPCSTR, HKEY, PHKEY); + LONG RegConnectRegistryW(LPCWSTR, HKEY, PHKEY); + LONG RegCreateKeyExA(HKEY, LPCSTR, DWORD, LPSTR, DWORD, REGSAM, + LPSECURITY_ATTRIBUTES, PHKEY, PDWORD); + LONG RegCreateKeyExW(HKEY, LPCWSTR, DWORD, LPWSTR, DWORD, REGSAM, + LPSECURITY_ATTRIBUTES, PHKEY, PDWORD); + LONG RegDeleteKeyA(HKEY, LPCSTR); + LONG RegDeleteKeyW(HKEY, LPCWSTR); + LONG RegDeleteValueA(HKEY, LPCSTR); + LONG RegDeleteValueW(HKEY, LPCWSTR); + LONG RegEnumKeyExA(HKEY, DWORD, LPSTR, PDWORD, PDWORD, LPSTR, PDWORD, + PFILETIME); + LONG RegEnumKeyExW(HKEY, DWORD, LPWSTR, PDWORD, PDWORD, LPWSTR, PDWORD, + PFILETIME); + LONG RegEnumValueA(HKEY, DWORD, LPSTR, PDWORD, PDWORD, PDWORD, LPBYTE, + PDWORD); + LONG RegEnumValueW(HKEY, DWORD, LPWSTR, PDWORD, PDWORD, PDWORD, LPBYTE, + PDWORD); + LONG RegFlushKey(HKEY); + LONG RegLoadKeyA(HKEY, LPCSTR, LPCSTR); + LONG RegLoadKeyW(HKEY, LPCWSTR, LPCWSTR); + LONG RegOpenKeyExA(HKEY, LPCSTR, DWORD, REGSAM, PHKEY); + LONG RegOpenKeyExW(HKEY, LPCWSTR, DWORD, REGSAM, PHKEY); + LONG RegQueryInfoKeyA(HKEY, LPSTR, PDWORD, PDWORD, PDWORD, PDWORD, + PDWORD, PDWORD, PDWORD, PDWORD, PDWORD, PFILETIME); + LONG RegQueryInfoKeyW(HKEY, LPWSTR, PDWORD, PDWORD, PDWORD, PDWORD, + PDWORD, PDWORD, PDWORD, PDWORD, PDWORD, PFILETIME); + LONG RegQueryMultipleValuesA(HKEY, PVALENTA, DWORD, LPSTR, LPDWORD); + LONG RegQueryMultipleValuesW(HKEY, PVALENTW, DWORD, LPWSTR, LPDWORD); + LONG RegQueryValueExA(HKEY, LPCSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD); + LONG RegQueryValueExW(HKEY, LPCWSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD); + LONG RegReplaceKeyA(HKEY, LPCSTR, LPCSTR, LPCSTR); + LONG RegReplaceKeyW(HKEY, LPCWSTR, LPCWSTR, LPCWSTR); + LONG RegSaveKeyA(HKEY, LPCSTR, LPSECURITY_ATTRIBUTES); + LONG RegSaveKeyW(HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES); + LONG RegSetKeySecurity(HKEY, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); + LONG RegSetValueExA(HKEY, LPCSTR, DWORD, DWORD, CPtr!(BYTE), DWORD); + LONG RegSetValueExW(HKEY, LPCWSTR, DWORD, DWORD, CPtr!(BYTE), DWORD); + LONG RegUnLoadKeyA(HKEY, LPCSTR); + LONG RegUnLoadKeyW(HKEY, LPCWSTR); + static if (_WIN32_WINDOWS >= 0x410) { + LONG RegNotifyChangeKeyValue(HKEY, BOOL, DWORD, HANDLE, BOOL); + } + + static if (_WIN32_WINNT_ONLY) { + BOOL AbortSystemShutdownA(LPCSTR); + BOOL AbortSystemShutdownW(LPCWSTR); + BOOL InitiateSystemShutdownA(LPSTR, LPSTR, DWORD, BOOL, BOOL); + BOOL InitiateSystemShutdownW(LPWSTR, LPWSTR, DWORD, BOOL, BOOL); + LONG RegGetKeySecurity(HKEY, SECURITY_INFORMATION, + PSECURITY_DESCRIPTOR, PDWORD); + LONG RegRestoreKeyA(HKEY, LPCSTR, DWORD); + LONG RegRestoreKeyW(HKEY, LPCWSTR, DWORD); + LONG RegSetKeySecurity(HKEY, SECURITY_INFORMATION, + PSECURITY_DESCRIPTOR); + + static if (_WIN32_WINNT >= 0x500) { + LONG RegDisablePredefinedCache(); + LONG RegOpenCurrentUser(REGSAM, PHKEY); + LONG RegOpenUserClassesRoot(HANDLE, DWORD, REGSAM, PHKEY); + } + + static if (_WIN32_WINNT >= 0x501) { + LONG RegSaveKeyExA(HKEY, LPCSTR, LPSECURITY_ATTRIBUTES, DWORD); + LONG RegSaveKeyExW(HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES, DWORD); + } + + static if (_WIN32_WINNT >= 0x600) { + LONG RegGetValueA(HKEY hkey, LPCSTR lpSubKey, LPCSTR lpValue, + DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData); + LONG RegGetValueW(HKEY hkey, LPCWSTR lpSubKey, LPCWSTR lpValue, + DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData); + } + } + + deprecated { + LONG RegCreateKeyA(HKEY, LPCSTR, PHKEY); + LONG RegCreateKeyW(HKEY, LPCWSTR, PHKEY); + LONG RegEnumKeyA(HKEY, DWORD, LPSTR, DWORD); + LONG RegEnumKeyW(HKEY, DWORD, LPWSTR, DWORD); + LONG RegOpenKeyA(HKEY, LPCSTR, PHKEY); + LONG RegOpenKeyW(HKEY, LPCWSTR, PHKEY); + LONG RegQueryValueA(HKEY, LPCSTR, LPSTR, PLONG); + LONG RegQueryValueW(HKEY, LPCWSTR, LPWSTR, PLONG); + LONG RegSetValueA(HKEY, LPCSTR, DWORD, LPCSTR, DWORD); + LONG RegSetValueW(HKEY, LPCWSTR, DWORD, LPCWSTR, DWORD); + } +} + +version (Unicode) { + alias VALENTW VALENT; + alias RegConnectRegistryW RegConnectRegistry; + alias RegCreateKeyExW RegCreateKeyEx; + alias RegDeleteKeyW RegDeleteKey; + alias RegDeleteValueW RegDeleteValue; + alias RegEnumKeyExW RegEnumKeyEx; + alias RegEnumValueW RegEnumValue; + alias RegLoadKeyW RegLoadKey; + alias RegOpenKeyExW RegOpenKeyEx; + alias RegQueryInfoKeyW RegQueryInfoKey; + alias RegQueryMultipleValuesW RegQueryMultipleValues; + alias RegQueryValueExW RegQueryValueEx; + alias RegReplaceKeyW RegReplaceKey; + alias RegSaveKeyW RegSaveKey; + alias RegSetValueExW RegSetValueEx; + alias RegUnLoadKeyW RegUnLoadKey; + + static if (_WIN32_WINNT_ONLY) { + alias AbortSystemShutdownW AbortSystemShutdown; + alias InitiateSystemShutdownW InitiateSystemShutdown; + alias RegRestoreKeyW RegRestoreKey; + static if (_WIN32_WINNT >= 0x501) { + alias RegSaveKeyExA RegSaveKeyEx; + } + static if (_WIN32_WINNT >= 0x600) { + alias RegGetValueW RegGetValue; + } + } + deprecated { + alias RegCreateKeyW RegCreateKey; + alias RegEnumKeyW RegEnumKey; + alias RegOpenKeyW RegOpenKey; + alias RegQueryValueW RegQueryValue; + alias RegSetValueW RegSetValue; + } +} else { + alias VALENTA VALENT; + alias RegConnectRegistryA RegConnectRegistry; + alias RegCreateKeyExA RegCreateKeyEx; + alias RegDeleteKeyA RegDeleteKey; + alias RegDeleteValueA RegDeleteValue; + alias RegEnumKeyExA RegEnumKeyEx; + alias RegEnumValueA RegEnumValue; + alias RegLoadKeyA RegLoadKey; + alias RegOpenKeyExA RegOpenKeyEx; + alias RegQueryInfoKeyA RegQueryInfoKey; + alias RegQueryMultipleValuesA RegQueryMultipleValues; + alias RegQueryValueExA RegQueryValueEx; + alias RegReplaceKeyA RegReplaceKey; + alias RegSaveKeyA RegSaveKey; + alias RegSetValueExA RegSetValueEx; + alias RegUnLoadKeyA RegUnLoadKey; + static if (_WIN32_WINNT_ONLY) { + alias AbortSystemShutdownA AbortSystemShutdown; + alias InitiateSystemShutdownA InitiateSystemShutdown; + alias RegRestoreKeyW RegRestoreKey; + static if (_WIN32_WINNT >= 0x501) { + alias RegSaveKeyExA RegSaveKeyEx; + } + static if (_WIN32_WINNT >= 0x600) { + alias RegGetValueA RegGetValue; + } + } + deprecated { + alias RegCreateKeyA RegCreateKey; + alias RegEnumKeyA RegEnumKey; + alias RegOpenKeyA RegOpenKey; + alias RegQueryValueA RegQueryValue; + alias RegSetValueA RegSetValue; + } +} + +alias VALENT* PVALENT; DELETED src/win32/winsock.d Index: src/win32/winsock.d ================================================================== --- src/win32/winsock.d +++ src/win32/winsock.d @@ -1,811 +0,0 @@ -module win32.winsock; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - - -// #ifndef _WINSOCKAPI_ -// #define _WINSOCKAPI_ - -// #if _MSC_VER > 1000 -// #pragma once -// #endif - -// #ifndef _INC_WINDOWS -import win32.windows; -// #endif /* _INC_WINDOWS */ - -alias ubyte u_char; -alias ushort u_short; -alias uint u_int; -alias uint u_long; - -alias UINT_PTR SOCKET; - -// #ifndef FD_SETSIZE -enum : uint { FD_SETSIZE = 64 } -// #endif /* FD_SETSIZE */ - -struct fd_set { - u_int fd_count; - SOCKET fd_array[FD_SETSIZE]; -} - -// #ifdef __cplusplus -// extern "C" { -// #endif - -extern(Windows) export int __WSAFDIsSet(SOCKET, fd_set *); - -// #ifdef __cplusplus -// } -// #endif - -// #define FD_CLR(fd, set) do { u_int __i; for (__i = 0; __i < ((fd_set FAR *)(set))->fd_count ; __i++) { if (((fd_set FAR *)(set))->fd_array[__i] == fd) { while (__i < ((fd_set FAR *)(set))->fd_count-1) { ((fd_set FAR *)(set))->fd_array[__i] = ((fd_set FAR *)(set))->fd_array[__i+1]; __i++; } ((fd_set FAR *)(set))->fd_count--; break; } } } while(0) - -void FD_SET(int fd, fd_set* set){ if(set.fd_count < FD_SETSIZE){ set.fd_array[set.fd_count++] = fd; }} - -void FD_ZERO(fd_set* set){ set.fd_count = 0; } - -// #define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set FAR *)(set)) - -struct timeval { - int tv_sec; - int tv_usec; -} - -// #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) -// #define timercmp(tvp, uvp, cmp) ((tvp)->tv_sec cmp (uvp)->tv_sec || (tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp (uvp)->tv_usec) -// #define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 - -enum : uint { IOCPARM_MASK = 0x7f } -enum : uint { IOC_VOID = 0x20000000 } -enum : uint { IOC_OUT = 0x40000000 } -enum : uint { IOC_IN = 0x80000000 } -enum : uint { IOC_INOUT = IOC_IN|IOC_OUT } - -// #define _IO(x,y) (IOC_VOID|((x)<<8)|(y)) - -// #define _IOR(x,y,t) (IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) - -// #define _IOW(x,y,t) (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) - -// #define FIONREAD _IOR('f', 127, u_long) -// #define FIONBIO _IOW('f', 126, u_long) -// #define FIOASYNC _IOW('f', 125, u_long) - -// #define SIOCSHIWAT _IOW('s', 0, u_long) -// #define SIOCGHIWAT _IOR('s', 1, u_long) -// #define SIOCSLOWAT _IOW('s', 2, u_long) -// #define SIOCGLOWAT _IOR('s', 3, u_long) -// #define SIOCATMARK _IOR('s', 7, u_long) - -struct hostent { - char * h_name; - char** h_aliases; - short h_addrtype; - short h_length; - char** h_addr_list; -// #define h_addr h_addr_list[0] -} - -struct netent { - char * n_name; - char** n_aliases; - short n_addrtype; - u_long n_net; -} - -struct servent { - char * s_name; - char** s_aliases; -// #ifdef _WIN64 -// ... -// #else - short s_port; - char * s_proto; -// #endif -} - -struct protoent { - char * p_name; - char** p_aliases; - short p_proto; -} - -enum : uint { IPPROTO_IP = 0 } -enum : uint { IPPROTO_ICMP = 1 } -enum : uint { IPPROTO_IGMP = 2 } -enum : uint { IPPROTO_GGP = 3 } -enum : uint { IPPROTO_TCP = 6 } -enum : uint { IPPROTO_PUP = 12 } -enum : uint { IPPROTO_UDP = 17 } -enum : uint { IPPROTO_IDP = 22 } -enum : uint { IPPROTO_ND = 77 } - -enum : uint { IPPROTO_RAW = 255 } -enum : uint { IPPROTO_MAX = 256 } - -enum : uint { IPPORT_ECHO = 7 } -enum : uint { IPPORT_DISCARD = 9 } -enum : uint { IPPORT_SYSTAT = 11 } -enum : uint { IPPORT_DAYTIME = 13 } -enum : uint { IPPORT_NETSTAT = 15 } -enum : uint { IPPORT_FTP = 21 } -enum : uint { IPPORT_TELNET = 23 } -enum : uint { IPPORT_SMTP = 25 } -enum : uint { IPPORT_TIMESERVER = 37 } -enum : uint { IPPORT_NAMESERVER = 42 } -enum : uint { IPPORT_WHOIS = 43 } -enum : uint { IPPORT_MTP = 57 } - -enum : uint { IPPORT_TFTP = 69 } -enum : uint { IPPORT_RJE = 77 } -enum : uint { IPPORT_FINGER = 79 } -enum : uint { IPPORT_TTYLINK = 87 } -enum : uint { IPPORT_SUPDUP = 95 } - -enum : uint { IPPORT_EXECSERVER = 512 } -enum : uint { IPPORT_LOGINSERVER = 513 } -enum : uint { IPPORT_CMDSERVER = 514 } -enum : uint { IPPORT_EFSSERVER = 520 } - -enum : uint { IPPORT_BIFFUDP = 512 } -enum : uint { IPPORT_WHOSERVER = 513 } -enum : uint { IPPORT_ROUTESERVER = 520 } - -enum : uint { IPPORT_RESERVED = 1024 } - -enum : uint { IMPLINK_IP = 155 } -enum : uint { IMPLINK_LOWEXPER = 156 } -enum : uint { IMPLINK_HIGHEXPER = 158 } - -struct in_addr { -union { - struct { u_char s_b1,s_b2,s_b3,s_b4; } - struct { u_short s_w1,s_w2; } - u_long S_addr; -} - -// #define s_addr S_un.S_addr - -// #define s_host S_un.S_un_b.s_b2 - -// #define s_net S_un.S_un_b.s_b1 - -// #define s_imp S_un.S_un_w.s_w2 - -// #define s_impno S_un.S_un_b.s_b4 - -// #define s_lh S_un.S_un_b.s_b3 - -} - -// #define IN_CLASSA(i) (((long)(i) & 0x80000000) == 0) -enum : uint { IN_CLASSA_NET = 0xff000000 } -enum : uint { IN_CLASSA_NSHIFT = 24 } -enum : uint { IN_CLASSA_HOST = 0x00ffffff } -enum : uint { IN_CLASSA_MAX = 128 } - -// #define IN_CLASSB(i) (((long)(i) & 0xc0000000) == 0x80000000) -// #define IN_CLASSB_NET 0xffff0000 -// #define IN_CLASSB_NSHIFT 16 -enum : uint { IN_CLASSB_HOST = 0x0000ffff } -enum : uint { IN_CLASSB_MAX = 65536 } - -// #define IN_CLASSC(i) (((long)(i) & 0xe0000000) == 0xc0000000) -// #define IN_CLASSC_NET 0xffffff00 -// #define IN_CLASSC_NSHIFT 8 -enum : uint { IN_CLASSC_HOST = 0x000000ff } - -enum : uint { INADDR_ANY = 0 } -enum : uint { INADDR_LOOPBACK = 0x7f000001 } -// #define INADDR_BROADCAST (u_long)0xffffffff -enum : uint { INADDR_NONE = uint.max } - -struct sockaddr_in { - short sin_family; - u_short sin_port; - in_addr sin_addr; - char sin_zero[8]; -} - -enum : uint { WSADESCRIPTION_LEN = 256 } -enum : uint { WSASYS_STATUS_LEN = 128 } - -struct WSAData { - WORD wVersion; - WORD wHighVersion; -// #ifdef _WIN64 -// ... -// #else - char szDescription[WSADESCRIPTION_LEN+1]; - char szSystemStatus[WSASYS_STATUS_LEN+1]; - ushort iMaxSockets; - ushort iMaxUdpDg; - char * lpVendorInfo; -// #endif -} -alias WSAData WSADATA; - -alias WSADATA* LPWSADATA; - -enum : uint { IP_OPTIONS = 1 } -enum : uint { IP_MULTICAST_IF = 2 } -enum : uint { IP_MULTICAST_TTL = 3 } -enum : uint { IP_MULTICAST_LOOP = 4 } -enum : uint { IP_ADD_MEMBERSHIP = 5 } -enum : uint { IP_DROP_MEMBERSHIP = 6 } -enum : uint { IP_TTL = 7 } -enum : uint { IP_TOS = 8 } -enum : uint { IP_DONTFRAGMENT = 9 } - -enum : uint { IP_DEFAULT_MULTICAST_TTL = 1 } -enum : uint { IP_DEFAULT_MULTICAST_LOOP = 1 } -enum : uint { IP_MAX_MEMBERSHIPS = 20 } - -struct ip_mreq { - in_addr imr_multiaddr; - in_addr imr_interface; -} - -enum : uint { INVALID_SOCKET = uint.max } -enum { SOCKET_ERROR = -1 } - -enum : uint { SOCK_STREAM = 1 } -enum : uint { SOCK_DGRAM = 2 } -enum : uint { SOCK_RAW = 3 } -enum : uint { SOCK_RDM = 4 } -enum : uint { SOCK_SEQPACKET = 5 } - -enum : uint { SO_DEBUG = 0x0001 } -enum : uint { SO_ACCEPTCONN = 0x0002 } -enum : uint { SO_REUSEADDR = 0x0004 } -enum : uint { SO_KEEPALIVE = 0x0008 } -enum : uint { SO_DONTROUTE = 0x0010 } -enum : uint { SO_BROADCAST = 0x0020 } -enum : uint { SO_USELOOPBACK = 0x0040 } -enum : uint { SO_LINGER = 0x0080 } -enum : uint { SO_OOBINLINE = 0x0100 } - -enum : uint { SO_DONTLINGER = ~SO_LINGER } - -enum : uint { SO_SNDBUF = 0x1001 } -enum : uint { SO_RCVBUF = 0x1002 } -enum : uint { SO_SNDLOWAT = 0x1003 } -enum : uint { SO_RCVLOWAT = 0x1004 } -enum : uint { SO_SNDTIMEO = 0x1005 } -enum : uint { SO_RCVTIMEO = 0x1006 } -enum : uint { SO_ERROR = 0x1007 } -enum : uint { SO_TYPE = 0x1008 } - -enum : uint { SO_CONNDATA = 0x7000 } -enum : uint { SO_CONNOPT = 0x7001 } -enum : uint { SO_DISCDATA = 0x7002 } -enum : uint { SO_DISCOPT = 0x7003 } -enum : uint { SO_CONNDATALEN = 0x7004 } -enum : uint { SO_CONNOPTLEN = 0x7005 } -enum : uint { SO_DISCDATALEN = 0x7006 } -enum : uint { SO_DISCOPTLEN = 0x7007 } - -enum : uint { SO_OPENTYPE = 0x7008 } - -enum : uint { SO_SYNCHRONOUS_ALERT = 0x10 } -enum : uint { SO_SYNCHRONOUS_NONALERT = 0x20 } - -enum : uint { SO_MAXDG = 0x7009 } -enum : uint { SO_MAXPATHDG = 0x700A } -enum : uint { SO_UPDATE_ACCEPT_CONTEXT = 0x700B } -enum : uint { SO_CONNECT_TIME = 0x700C } - -enum : uint { TCP_NODELAY = 0x0001 } -enum : uint { TCP_BSDURGENT = 0x7000 } - -enum : uint { AF_UNSPEC = 0 } -enum : uint { AF_UNIX = 1 } -enum : uint { AF_INET = 2 } -enum : uint { AF_IMPLINK = 3 } -enum : uint { AF_PUP = 4 } -enum : uint { AF_CHAOS = 5 } -enum : uint { AF_IPX = 6 } -enum : uint { AF_NS = 6 } -enum : uint { AF_ISO = 7 } -alias AF_ISO AF_OSI; -enum : uint { AF_ECMA = 8 } -enum : uint { AF_DATAKIT = 9 } -enum : uint { AF_CCITT = 10 } -enum : uint { AF_SNA = 11 } -enum : uint { AF_DECnet = 12 } -enum : uint { AF_DLI = 13 } -enum : uint { AF_LAT = 14 } -enum : uint { AF_HYLINK = 15 } -enum : uint { AF_APPLETALK = 16 } -enum : uint { AF_NETBIOS = 17 } -enum : uint { AF_VOICEVIEW = 18 } -enum : uint { AF_FIREFOX = 19 } -enum : uint { AF_UNKNOWN1 = 20 } -enum : uint { AF_BAN = 21 } - -enum : uint { AF_MAX = 22 } - -struct sockaddr { - u_short sa_family; - char sa_data[14]; -} - -struct sockproto { - u_short sp_family; - u_short sp_protocol; -} - -alias AF_UNSPEC PF_UNSPEC; -alias AF_UNIX PF_UNIX; -alias AF_INET PF_INET; -alias AF_IMPLINK PF_IMPLINK; -alias AF_PUP PF_PUP; -alias AF_CHAOS PF_CHAOS; -alias AF_NS PF_NS; -alias AF_IPX PF_IPX; -alias AF_ISO PF_ISO; -alias AF_OSI PF_OSI; -alias AF_ECMA PF_ECMA; -alias AF_DATAKIT PF_DATAKIT; -alias AF_CCITT PF_CCITT; -alias AF_SNA PF_SNA; -alias AF_DECnet PF_DECnet; -alias AF_DLI PF_DLI; -alias AF_LAT PF_LAT; -alias AF_HYLINK PF_HYLINK; -alias AF_APPLETALK PF_APPLETALK; -alias AF_VOICEVIEW PF_VOICEVIEW; -alias AF_FIREFOX PF_FIREFOX; -alias AF_UNKNOWN1 PF_UNKNOWN1; -alias AF_BAN PF_BAN; - -alias AF_MAX PF_MAX; - -struct linger { - u_short l_onoff; - u_short l_linger; -} - -enum : uint { SOL_SOCKET = 0xffff } - -enum : uint { SOMAXCONN = 5 } - -enum : uint { MSG_OOB = 0x1 } -enum : uint { MSG_PEEK = 0x2 } -enum : uint { MSG_DONTROUTE = 0x4 } - -enum : uint { MSG_MAXIOVLEN = 16 } - -enum : uint { MSG_PARTIAL = 0x8000 } - -enum : uint { MAXGETHOSTSTRUCT = 1024 } - -enum : uint { FD_READ = 0x01 } -enum : uint { FD_WRITE = 0x02 } -enum : uint { FD_OOB = 0x04 } -enum : uint { FD_ACCEPT = 0x08 } -enum : uint { FD_CONNECT = 0x10 } -enum : uint { FD_CLOSE = 0x20 } - -// #ifndef WSABASEERR - -enum : uint { WSABASEERR = 10000 } - -enum : uint { WSAEINTR = WSABASEERR+4 } -enum : uint { WSAEBADF = WSABASEERR+9 } -enum : uint { WSAEACCES = WSABASEERR+13 } -enum : uint { WSAEFAULT = WSABASEERR+14 } -enum : uint { WSAEINVAL = WSABASEERR+22 } -enum : uint { WSAEMFILE = WSABASEERR+24 } - -enum : uint { WSAEWOULDBLOCK = WSABASEERR+35 } -enum : uint { WSAEINPROGRESS = WSABASEERR+36 } -enum : uint { WSAEALREADY = WSABASEERR+37 } -enum : uint { WSAENOTSOCK = WSABASEERR+38 } -enum : uint { WSAEDESTADDRREQ = WSABASEERR+39 } -enum : uint { WSAEMSGSIZE = WSABASEERR+40 } -enum : uint { WSAEPROTOTYPE = WSABASEERR+41 } -enum : uint { WSAENOPROTOOPT = WSABASEERR+42 } -enum : uint { WSAEPROTONOSUPPORT = WSABASEERR+43 } -enum : uint { WSAESOCKTNOSUPPORT = WSABASEERR+44 } -enum : uint { WSAEOPNOTSUPP = WSABASEERR+45 } -enum : uint { WSAEPFNOSUPPORT = WSABASEERR+46 } -enum : uint { WSAEAFNOSUPPORT = WSABASEERR+47 } -enum : uint { WSAEADDRINUSE = WSABASEERR+48 } -enum : uint { WSAEADDRNOTAVAIL = WSABASEERR+49 } -enum : uint { WSAENETDOWN = WSABASEERR+50 } -enum : uint { WSAENETUNREACH = WSABASEERR+51 } -enum : uint { WSAENETRESET = WSABASEERR+52 } -enum : uint { WSAECONNABORTED = WSABASEERR+53 } -enum : uint { WSAECONNRESET = WSABASEERR+54 } -enum : uint { WSAENOBUFS = WSABASEERR+55 } -enum : uint { WSAEISCONN = WSABASEERR+56 } -enum : uint { WSAENOTCONN = WSABASEERR+57 } -enum : uint { WSAESHUTDOWN = WSABASEERR+58 } -enum : uint { WSAETOOMANYREFS = WSABASEERR+59 } -enum : uint { WSAETIMEDOUT = WSABASEERR+60 } -enum : uint { WSAECONNREFUSED = WSABASEERR+61 } -enum : uint { WSAELOOP = WSABASEERR+62 } -enum : uint { WSAENAMETOOLONG = WSABASEERR+63 } -enum : uint { WSAEHOSTDOWN = WSABASEERR+64 } -enum : uint { WSAEHOSTUNREACH = WSABASEERR+65 } -enum : uint { WSAENOTEMPTY = WSABASEERR+66 } -enum : uint { WSAEPROCLIM = WSABASEERR+67 } -enum : uint { WSAEUSERS = WSABASEERR+68 } -enum : uint { WSAEDQUOT = WSABASEERR+69 } -enum : uint { WSAESTALE = WSABASEERR+70 } -enum : uint { WSAEREMOTE = WSABASEERR+71 } - -enum : uint { WSAEDISCON = WSABASEERR+101 } - -enum : uint { WSASYSNOTREADY = WSABASEERR+91 } -enum : uint { WSAVERNOTSUPPORTED = WSABASEERR+92 } -enum : uint { WSANOTINITIALISED = WSABASEERR+93 } - -enum : uint { WSAHOST_NOT_FOUND = WSABASEERR+1001 } - -enum : uint { WSATRY_AGAIN = WSABASEERR+1002 } - -enum : uint { WSANO_RECOVERY = WSABASEERR+1003 } - -enum : uint { WSANO_DATA = WSABASEERR+1004 } - -// #endif /* ifdef WSABASEERR */ - -// #define h_errno WSAGetLastError() -alias WSAHOST_NOT_FOUND HOST_NOT_FOUND; -alias WSATRY_AGAIN TRY_AGAIN; -alias WSANO_RECOVERY NO_RECOVERY; -alias WSANO_DATA NO_DATA; - -alias WSANO_DATA WSANO_ADDRESS; -alias WSANO_ADDRESS NO_ADDRESS; - -// #if 0 -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #endif - -// #ifdef __cplusplus -// extern "C" { -// #endif - -extern(Windows) export SOCKET accept( - SOCKET s, - sockaddr *addr, - int *addrlen); - -extern(Windows) export int bind( - SOCKET s, - sockaddr *addr, - int namelen); - -extern(Windows) export int closesocket(SOCKET s); - -extern(Windows) export int connect( - SOCKET s, - sockaddr *name, - int namelen); - -extern(Windows) export int ioctlsocket( - SOCKET s, - int cmd, - u_long *argp); - -extern(Windows) export int getpeername( - SOCKET s, - sockaddr *name, - int * namelen); - -extern(Windows) export int getsockname( - SOCKET s, - sockaddr *name, - int * namelen); - -extern(Windows) export int getsockopt( - SOCKET s, - int level, - int optname, - char * optval, - int *optlen); - -extern(Windows) export u_long htonl(u_long hostlong); - -extern(Windows) export u_short htons(u_short hostshort); - -extern(Windows) export uint inet_addr( char * cp); - -extern(Windows) export char* inet_ntoa(uint in_); -extern(Windows) export int listen( - SOCKET s, - int backlog); - -extern(Windows) export u_long ntohl(u_long netlong); - -extern(Windows) export u_short ntohs(u_short netshort); - -extern(Windows) export int recv( - SOCKET s, - char * buf, - int len, - int flags); - -extern(Windows) export int recvfrom( - SOCKET s, - char * buf, - int len, - int flags, - sockaddr *from, - int * fromlen); - -extern(Windows) export int select( - int nfds, - fd_set *readfds, - fd_set *writefds, - fd_set *exceptfds, - timeval *timeout); - -extern(Windows) export int send( - SOCKET s, - char * buf, - int len, - int flags); - -extern(Windows) export int sendto( - SOCKET s, - char * buf, - int len, - int flags, - sockaddr *to, - int tolen); - -extern(Windows) export int setsockopt( - SOCKET s, - int level, - int optname, - char * optval, - int optlen); - -extern(Windows) export int shutdown( - SOCKET s, - int how); - -extern(Windows) export SOCKET socket( - int af, - int type, - int protocol); - -extern(Windows) export hostent* gethostbyaddr( - char * addr, - int len, - int type); -extern(Windows) export hostent* gethostbyname( char * name); -extern(Windows) export int gethostname( - char * name, - int namelen); - -extern(Windows) export servent* getservbyport( - int port, - char * proto); -extern(Windows) export servent* getservbyname( - char * name, - char * proto); -extern(Windows) export protoent* getprotobynumber( int proto); -extern(Windows) export protoent* getprotobyname( char * name); - -extern(Windows) export int WSAStartup( - WORD wVersionRequired, - LPWSADATA lpWSAData); - -extern(Windows) export int WSACleanup(); - -extern(Windows) export void WSASetLastError(int iError); - -extern(Windows) export int WSAGetLastError(); - -extern(Windows) export BOOL WSAIsBlocking(); - -extern(Windows) export int WSAUnhookBlockingHook(); - -extern(Windows) export FARPROC WSASetBlockingHook(FARPROC lpBlockFunc); - -extern(Windows) export int WSACancelBlockingCall(); - -extern(Windows) export HANDLE WSAAsyncGetServByName( - HWND hWnd, - u_int wMsg, - char * name, - char * proto, - char * buf, - int buflen); - -extern(Windows) export HANDLE WSAAsyncGetServByPort( - HWND hWnd, - u_int wMsg, - int port, - char * proto, - char * buf, - int buflen); - -extern(Windows) export HANDLE WSAAsyncGetProtoByName( - HWND hWnd, - u_int wMsg, - char * name, - char * buf, - int buflen); - -extern(Windows) export HANDLE WSAAsyncGetProtoByNumber( - HWND hWnd, - u_int wMsg, - int number, - char * buf, - int buflen); - -extern(Windows) export HANDLE WSAAsyncGetHostByName( - HWND hWnd, - u_int wMsg, - char * name, - char * buf, - int buflen); - -extern(Windows) export HANDLE WSAAsyncGetHostByAddr( - HWND hWnd, - u_int wMsg, - char * addr, - int len, - int type, - char * buf, - int buflen); - -extern(Windows) export int WSACancelAsyncRequest(HANDLE hAsyncTaskHandle); - -extern(Windows) export int WSAAsyncSelect( - SOCKET s, - HWND hWnd, - u_int wMsg, - int lEvent); - -extern(Windows) export int WSARecvEx( - SOCKET s, - char * buf, - int len, - int *flags); - -struct _TRANSMIT_FILE_BUFFERS { - PVOID Head; - DWORD HeadLength; - PVOID Tail; - DWORD TailLength; -} -alias _TRANSMIT_FILE_BUFFERS TRANSMIT_FILE_BUFFERS; -alias _TRANSMIT_FILE_BUFFERS* PTRANSMIT_FILE_BUFFERS; -alias _TRANSMIT_FILE_BUFFERS* LPTRANSMIT_FILE_BUFFERS; - -enum : uint { TF_DISCONNECT = 0x01 } -enum : uint { TF_REUSE_SOCKET = 0x02 } -enum : uint { TF_WRITE_BEHIND = 0x04 } - -extern(Windows) export BOOL TransmitFile( - SOCKET hSocket, - HANDLE hFile, - DWORD nNumberOfBytesToWrite, - DWORD nNumberOfBytesPerSend, - LPOVERLAPPED lpOverlapped, - LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers, - DWORD dwReserved); - -extern(Windows) export BOOL AcceptEx( - SOCKET sListenSocket, - SOCKET sAcceptSocket, - PVOID lpOutputBuffer, - DWORD dwReceiveDataLength, - DWORD dwLocalAddressLength, - DWORD dwRemoteAddressLength, - LPDWORD lpdwBytesReceived, - LPOVERLAPPED lpOverlapped); - -extern(Windows) export VOID GetAcceptExSockaddrs( - PVOID lpOutputBuffer, - DWORD dwReceiveDataLength, - DWORD dwLocalAddressLength, - DWORD dwRemoteAddressLength, - sockaddr **LocalSockaddr, - LPINT LocalSockaddrLength, - sockaddr **RemoteSockaddr, - LPINT RemoteSockaddrLength); - -// #ifdef __cplusplus -// } -// #endif - -alias sockaddr SOCKADDR; -alias sockaddr* PSOCKADDR; -alias sockaddr* LPSOCKADDR; - -alias sockaddr_in SOCKADDR_IN; -alias sockaddr_in* PSOCKADDR_IN; -alias sockaddr_in* LPSOCKADDR_IN; - -alias linger LINGER; -alias linger* PLINGER; -alias linger* LPLINGER; - -alias in_addr IN_ADDR; -alias in_addr* PIN_ADDR; -alias in_addr* LPIN_ADDR; - -alias fd_set FD_SET; -alias fd_set* PFD_SET; -alias fd_set* LPFD_SET; - -alias hostent HOSTENT; -alias hostent* PHOSTENT; -alias hostent* LPHOSTENT; - -alias servent SERVENT; -alias servent* PSERVENT; -alias servent* LPSERVENT; - -alias protoent PROTOENT; -alias protoent* PPROTOENT; -alias protoent* LPPROTOENT; - -alias timeval TIMEVAL; -alias timeval* PTIMEVAL; -alias timeval* LPTIMEVAL; - -// #define WSAMAKEASYNCREPLY(buflen,error) MAKELONG(buflen,error) - -// #define WSAMAKESELECTREPLY(event,error) MAKELONG(event,error) - -// #define WSAGETASYNCBUFLEN(lParam) LOWORD(lParam) - -// #define WSAGETASYNCERROR(lParam) HIWORD(lParam) - -// #define WSAGETSELECTEVENT(lParam) LOWORD(lParam) - -// #define WSAGETSELECTERROR(lParam) HIWORD(lParam) - -// #ifdef IPV6STRICT -// #... -// #endif // IPV6STRICT - -// #endif /* _WINSOCKAPI_ */ ADDED src/win32/winsock2.d Index: src/win32/winsock2.d ================================================================== --- src/win32/winsock2.d +++ src/win32/winsock2.d @@ -0,0 +1,1464 @@ +/***********************************************************************\ +* winsock2.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Daniel Keep * +\***********************************************************************/ +module win32.winsock2; +pragma(lib, "Ws2_32.lib"); + +/* + Definitions for winsock 2 + + Contributed by the WINE project. + + Portions Copyright (c) 1980, 1983, 1988, 1993 + The Regents of the University of California. All rights reserved. + + Portions Copyright (c) 1993 by Digital Equipment Corporation. + */ + +/* DRK: This module should not be included if -version=Win32_Winsock2 has + * not been set. If it has, assert. I think it's better this way than + * letting the user believe that it's worked. + * + * SG: It has now been changed so that winsock2 is the default, and + * -version=Win32_Winsock1 must be set to use winsock. + */ +version(Win32_Winsock1) { + pragma(msg, "Cannot use win32.winsock2 with Win32_Winsock1 defined."); + static assert(false); +} + +import win32.winbase; +import win32.windef; +import win32.basetyps; + +alias char u_char; +alias ushort u_short; +alias uint u_int, u_long, SOCKET; + +const size_t FD_SETSIZE = 64; + +/* shutdown() how types */ +enum : int { + SD_RECEIVE, + SD_SEND, + SD_BOTH +} + +/* Good grief this is stupid... is it a struct? A preprocessor macro? A + struct tag? Who the hell knows!? */ +struct FD_SET { + u_int fd_count; + SOCKET[FD_SETSIZE] fd_array; + + /* this differs from the define in winsock.h and in cygwin sys/types.h */ + static void opCall(SOCKET fd, FD_SET set) { + u_int i; + for (i = 0; i < set.fd_count; i++) + if (set.fd_array[i] == fd) + break; + if (i == set.fd_count) + if (set.fd_count < FD_SETSIZE) { + set.fd_array[i] = fd; + set.fd_count++; + } + } +} +alias FD_SET* PFD_SET, LPFD_SET; + +// Keep this alias, since fd_set isn't a tag name in the original header. +alias FD_SET fd_set; + +extern(Windows) int __WSAFDIsSet(SOCKET, FD_SET*); +alias __WSAFDIsSet FD_ISSET; + +void FD_CLR(SOCKET fd, FD_SET* set) { + for (u_int i = 0; i < set.fd_count; i++) { + if (set.fd_array[i] == fd) { + while (i < set.fd_count - 1) { + set.fd_array[i] = set.fd_array[i+1]; + i++; + } + set.fd_count--; + break; + } + } +} + +void FD_ZERO(FD_SET* set) { + set.fd_count = 0; +} + + +struct TIMEVAL { + int tv_sec; + int tv_usec; + + int opCmp(TIMEVAL tv) { + if (tv_sec < tv.tv_sec) return -1; + if (tv_sec > tv.tv_sec) return 1; + if (tv_usec < tv.tv_usec) return -1; + if (tv_usec > tv.tv_usec) return 1; + return 0; + } +} +alias TIMEVAL* PTIMEVAL, LPTIMEVAL; + +bool timerisset(TIMEVAL* tvp) { + return tvp.tv_sec || tvp.tv_usec; +} + +/+ +/* DRK: These have been commented out because it was felt that using + * omCmp on the TIMEVAL struct was cleaner. Still, perhaps these should + * be enabled under a version tag for compatibility's sake? + * If it is decided that it's just ugly and unwanted, then feel free to + * delete this section :) + */ +int timercmp(TIMEVAL* tvp, TIMEVAL* uvp) { + return tvp.tv_sec != uvp.tv_sec ? + (tvp.tv_sec < uvp.tv_sec ? -1 : + (tvp.tv_sec > uvp.tv_sec ? 1 : 0)) : + (tvp.tv_usec < uvp.tv_usec ? -1 : + (tvp.tv_usec > uvp.tv_usec ? 1 : 0)); +} + +int timercmp(TIMEVAL* tvp, TIMEVAL* uvp, int function(long,long) cmp) { + return tvp.tv_sec != uvp.tv_sec ? + cmp(tvp.tv_sec, uvp.tv_sec) : + cmp(tvp.tv_usec, uvp.tv_usec); +}+/ + +void timerclear(ref TIMEVAL tvp) { + tvp.tv_sec = tvp.tv_usec = 0; +} + +struct HOSTENT { + char* h_name; + char** h_aliases; + short h_addrtype; + short h_length; + char** h_addr_list; + + char* h_addr() { return h_addr_list[0]; } + char* h_addr(char* h) { return h_addr_list[0] = h; } +} +alias HOSTENT* PHOSTENT, LPHOSTENT; + +struct LINGER { + u_short l_onoff; + u_short l_linger; +} +alias LINGER* PLINGER, LPLINGER; + +enum : DWORD { + IOCPARAM_MASK = 0x7f, + IOC_VOID = 0x20000000, + IOC_OUT = 0x40000000, + IOC_IN = 0x80000000, + IOC_INOUT = IOC_IN|IOC_OUT +} + +// NOTE: This isn't even used anywhere... +template _IO(char x, ubyte y) { + const DWORD _IO = IOC_VOID | (cast(ubyte)x<<8) | y; +} + +template _IOR(char x, ubyte y, t) { + const DWORD _IOR = IOC_OUT | ((t.sizeof & IOCPARAM_MASK)<<16) + | (cast(ubyte)x<<8) | y; +} + +template _IOW(char x, ubyte y, t) { + const DWORD _IOW = IOC_IN | ((t.sizeof & IOCPARAM_MASK)<<16) + | (cast(ubyte)x<<8) | y; +} + +enum : DWORD { + FIONBIO = _IOW!('f', 126, u_long), + FIONREAD = _IOR!('f', 127, u_long), + FIOASYNC = _IOW!('f', 125, u_long), + SIOCSHIWAT = _IOW!('s', 0, u_long), + SIOCGHIWAT = _IOR!('s', 1, u_long), + SIOCSLOWAT = _IOW!('s', 2, u_long), + SIOCGLOWAT = _IOR!('s', 3, u_long), + SIOCATMARK = _IOR!('s', 7, u_long) +} + +struct netent { + char* n_name; + char** n_aliases; + short n_addrtype; + u_long n_net; +} + +struct SERVENT { + char* s_name; + char** s_aliases; + short s_port; + char* s_proto; +} +alias SERVENT* PSERVENT, LPSERVENT; + +struct PROTOENT { + char* p_name; + char** p_aliases; + short p_proto; +} +alias PROTOENT* PPROTOENT, LPPROTOENT; + +enum : int { + IPPROTO_IP = 0, + IPPROTO_ICMP = 1, + IPPROTO_IGMP = 2, + IPPROTO_GGP = 3, + IPPROTO_TCP = 6, + IPPROTO_PUP = 12, + IPPROTO_UDP = 17, + IPPROTO_IDP = 22, + IPPROTO_ND = 77, + IPPROTO_RAW = 255, + IPPROTO_MAX = 256, + + // IPv6 options + IPPROTO_HOPOPTS = 0, // IPv6 Hop-by-Hop options + IPPROTO_IPV6 = 41, // IPv6 header + IPPROTO_ROUTING = 43, // IPv6 Routing header + IPPROTO_FRAGMENT = 44, // IPv6 fragmentation header + IPPROTO_ESP = 50, // encapsulating security payload + IPPROTO_AH = 51, // authentication header + IPPROTO_ICMPV6 = 58, // ICMPv6 + IPPROTO_NONE = 59, // IPv6 no next header + IPPROTO_DSTOPTS = 60 // IPv6 Destination options +} + +enum { + IPPORT_ECHO = 7, + IPPORT_DISCARD = 9, + IPPORT_SYSTAT = 11, + IPPORT_DAYTIME = 13, + IPPORT_NETSTAT = 15, + IPPORT_FTP = 21, + IPPORT_TELNET = 23, + IPPORT_SMTP = 25, + IPPORT_TIMESERVER = 37, + IPPORT_NAMESERVER = 42, + IPPORT_WHOIS = 43, + IPPORT_MTP = 57, + IPPORT_TFTP = 69, + IPPORT_RJE = 77, + IPPORT_FINGER = 79, + IPPORT_TTYLINK = 87, + IPPORT_SUPDUP = 95, + IPPORT_EXECSERVER = 512, + IPPORT_LOGINSERVER = 513, + IPPORT_CMDSERVER = 514, + IPPORT_EFSSERVER = 520, + IPPORT_BIFFUDP = 512, + IPPORT_WHOSERVER = 513, + IPPORT_ROUTESERVER = 520, + IPPORT_RESERVED = 1024 +} + +enum { + IMPLINK_IP = 155, + IMPLINK_LOWEXPER = 156, + IMPLINK_HIGHEXPER = 158 +} + +struct IN_ADDR { + union { + struct { u_char s_b1, s_b2, s_b3, s_b4; } + struct { u_char s_net, s_host, s_lh, s_impno; } + struct { u_short s_w1, s_w2; } + struct { u_short s_w_, s_imp; } // Can I get rid of s_w_ using alignment tricks? + u_long S_addr; + u_long s_addr; + } +} +alias IN_ADDR* PIN_ADDR, LPIN_ADDR; + +// IN_CLASSx are not used anywhere or documented on MSDN. +bool IN_CLASSA(int i) { return (i & 0x80000000) == 0; } + +const IN_CLASSA_NET = 0xff000000; +const IN_CLASSA_NSHIFT = 24; +const IN_CLASSA_HOST = 0x00ffffff; +const IN_CLASSA_MAX = 128; + +bool IN_CLASSB(int i) { return (i & 0xc0000000) == 0x80000000; } + +const IN_CLASSB_NET = 0xffff0000; +const IN_CLASSB_NSHIFT = 16; +const IN_CLASSB_HOST = 0x0000ffff; +const IN_CLASSB_MAX = 65536; + +bool IN_CLASSC(int i) { return (i & 0xe0000000) == 0xc0000000; } + +const IN_CLASSC_NET = 0xffffff00; +const IN_CLASSC_NSHIFT = 8; +const IN_CLASSC_HOST = 0x000000ff; + +const u_long + INADDR_ANY = 0, + INADDR_LOOPBACK = 0x7F000001, + INADDR_BROADCAST = 0xFFFFFFFF, + INADDR_NONE = 0xFFFFFFFF; + +struct SOCKADDR_IN { + short sin_family; + u_short sin_port; + IN_ADDR sin_addr; + char[8] sin_zero; +} +alias SOCKADDR_IN* PSOCKADDR_IN, LPSOCKADDR_IN; + +const size_t + WSADESCRIPTION_LEN = 256, + WSASYS_STATUS_LEN = 128; + +struct WSADATA { + WORD wVersion; + WORD wHighVersion; + char[WSADESCRIPTION_LEN+1] szDescription; + char[WSASYS_STATUS_LEN+1] szSystemStatus; + ushort iMaxSockets; + ushort iMaxUdpDg; + char* lpVendorInfo; +} +alias WSADATA* LPWSADATA; + +// This is not documented on the MSDN site +const IP_OPTIONS = 1; + +const int + SO_OPTIONS = 1, + SO_DEBUG = 1, + SO_ACCEPTCONN = 2, + SO_REUSEADDR = 4, + SO_KEEPALIVE = 8, + SO_DONTROUTE = 16, + SO_BROADCAST = 32, + SO_USELOOPBACK = 64, + SO_LINGER = 128, + SO_OOBINLINE = 256, + SO_DONTLINGER = ~SO_LINGER, + SO_EXCLUSIVEADDRUSE= ~SO_REUSEADDR; + +enum : int { + SO_SNDBUF = 0x1001, + SO_RCVBUF, + SO_SNDLOWAT, + SO_RCVLOWAT, + SO_SNDTIMEO, + SO_RCVTIMEO, + SO_ERROR, + SO_TYPE // = 0x1008 +} + +const SOCKET INVALID_SOCKET = cast(SOCKET)(~0); +const int SOCKET_ERROR = -1; + +enum : int { + SOCK_STREAM = 1, + SOCK_DGRAM, + SOCK_RAW, + SOCK_RDM, + SOCK_SEQPACKET +} + +const int TCP_NODELAY = 0x0001; + +enum : int { + AF_UNSPEC, + AF_UNIX, + AF_INET, + AF_IMPLINK, + AF_PUP, + AF_CHAOS, + AF_IPX, // = 6 + AF_NS = 6, + AF_ISO, + AF_OSI = AF_ISO, + AF_ECMA, + AF_DATAKIT, + AF_CCITT, + AF_SNA, + AF_DECnet, + AF_DLI, + AF_LAT, + AF_HYLINK, + AF_APPLETALK, + AF_NETBIOS, + AF_VOICEVIEW, + AF_FIREFOX, + AF_UNKNOWN1, + AF_BAN, + AF_ATM, + AF_INET6, + // AF_CLUSTER, AF_12844 nad AF_NETDES are not documented on MSDN + AF_CLUSTER, + AF_12844, + AF_IRDA, // = 26 + AF_NETDES = 28, + AF_MAX // = 29 +} + +struct SOCKADDR { + u_short sa_family; + char[14] sa_data; +} +alias SOCKADDR* PSOCKADDR, LPSOCKADDR; + +/* Portable IPv6/IPv4 version of sockaddr. + Uses padding to force 8 byte alignment + and maximum size of 128 bytes */ +struct SOCKADDR_STORAGE { + short ss_family; + char[6] __ss_pad1; // pad to 8 + long __ss_align; // force alignment + char[112] __ss_pad2; // pad to 128 +} +alias SOCKADDR_STORAGE* PSOCKADDR_STORAGE; + +struct sockproto { + u_short sp_family; + u_short sp_protocol; +} + +enum : int { + PF_UNSPEC = AF_UNSPEC, + PF_UNIX = AF_UNIX, + PF_INET = AF_INET, + PF_IMPLINK = AF_IMPLINK, + PF_PUP = AF_PUP, + PF_CHAOS = AF_CHAOS, + PF_NS = AF_NS, + PF_IPX = AF_IPX, + PF_ISO = AF_ISO, + PF_OSI = AF_OSI, + PF_ECMA = AF_ECMA, + PF_DATAKIT = AF_DATAKIT, + PF_CCITT = AF_CCITT, + PF_SNA = AF_SNA, + PF_DECnet = AF_DECnet, + PF_DLI = AF_DLI, + PF_LAT = AF_LAT, + PF_HYLINK = AF_HYLINK, + PF_APPLETALK = AF_APPLETALK, + PF_VOICEVIEW = AF_VOICEVIEW, + PF_FIREFOX = AF_FIREFOX, + PF_UNKNOWN1 = AF_UNKNOWN1, + PF_BAN = AF_BAN, + PF_ATM = AF_ATM, + PF_INET6 = AF_INET6, + PF_MAX = AF_MAX +} + +const int SOL_SOCKET = 0xFFFF; + +const int SOMAXCONN = 5; + +const int + MSG_OOB = 1, + MSG_PEEK = 2, + MSG_DONTROUTE = 4, + MSG_MAXIOVLEN = 16, + MSG_PARTIAL = 0x8000; + +const size_t MAXGETHOSTSTRUCT = 1024; + +// Not documented on MSDN +enum { + FD_READ_BIT, + FD_WRITE_BIT, + FD_OOB_BIT, + FD_ACCEPT_BIT, + FD_CONNECT_BIT, + FD_CLOSE_BIT, + FD_QOS_BIT, + FD_GROUP_QOS_BIT, + FD_ROUTING_INTERFACE_CHANGE_BIT, + FD_ADDRESS_LIST_CHANGE_BIT, + FD_MAX_EVENTS // = 10 +} + +const int + FD_READ = 1 << FD_READ_BIT, + FD_WRITE = 1 << FD_WRITE_BIT, + FD_OOB = 1 << FD_OOB_BIT, + FD_ACCEPT = 1 << FD_ACCEPT_BIT, + FD_CONNECT = 1 << FD_CONNECT_BIT, + FD_CLOSE = 1 << FD_CLOSE_BIT, + FD_QOS = 1 << FD_QOS_BIT, + FD_GROUP_QOS = 1 << FD_GROUP_QOS_BIT, + FD_ROUTING_INTERFACE_CHANGE = 1 << FD_ROUTING_INTERFACE_CHANGE_BIT, + FD_ADDRESS_LIST_CHANGE = 1 << FD_ADDRESS_LIST_CHANGE_BIT, + FD_ALL_EVENTS = (1 << FD_MAX_EVENTS) - 1; + +enum : int { + WSABASEERR = 10000, + WSAEINTR = WSABASEERR + 4, + WSAEBADF = WSABASEERR + 9, + WSAEACCES = WSABASEERR + 13, + WSAEFAULT = WSABASEERR + 14, + WSAEINVAL = WSABASEERR + 22, + WSAEMFILE = WSABASEERR + 24, + WSAEWOULDBLOCK = WSABASEERR + 35, + WSAEINPROGRESS = WSABASEERR + 36, // deprecated on WinSock2 + WSAEALREADY = WSABASEERR + 37, + WSAENOTSOCK = WSABASEERR + 38, + WSAEDESTADDRREQ = WSABASEERR + 39, + WSAEMSGSIZE = WSABASEERR + 40, + WSAEPROTOTYPE = WSABASEERR + 41, + WSAENOPROTOOPT = WSABASEERR + 42, + WSAEPROTONOSUPPORT = WSABASEERR + 43, + WSAESOCKTNOSUPPORT = WSABASEERR + 44, + WSAEOPNOTSUPP = WSABASEERR + 45, + WSAEPFNOSUPPORT = WSABASEERR + 46, + WSAEAFNOSUPPORT = WSABASEERR + 47, + WSAEADDRINUSE = WSABASEERR + 48, + WSAEADDRNOTAVAIL = WSABASEERR + 49, + WSAENETDOWN = WSABASEERR + 50, + WSAENETUNREACH = WSABASEERR + 51, + WSAENETRESET = WSABASEERR + 52, + WSAECONNABORTED = WSABASEERR + 53, + WSAECONNRESET = WSABASEERR + 54, + WSAENOBUFS = WSABASEERR + 55, + WSAEISCONN = WSABASEERR + 56, + WSAENOTCONN = WSABASEERR + 57, + WSAESHUTDOWN = WSABASEERR + 58, + WSAETOOMANYREFS = WSABASEERR + 59, + WSAETIMEDOUT = WSABASEERR + 60, + WSAECONNREFUSED = WSABASEERR + 61, + WSAELOOP = WSABASEERR + 62, + WSAENAMETOOLONG = WSABASEERR + 63, + WSAEHOSTDOWN = WSABASEERR + 64, + WSAEHOSTUNREACH = WSABASEERR + 65, + WSAENOTEMPTY = WSABASEERR + 66, + WSAEPROCLIM = WSABASEERR + 67, + WSAEUSERS = WSABASEERR + 68, + WSAEDQUOT = WSABASEERR + 69, + WSAESTALE = WSABASEERR + 70, + WSAEREMOTE = WSABASEERR + 71, + WSAEDISCON = WSABASEERR + 101, + WSASYSNOTREADY = WSABASEERR + 91, + WSAVERNOTSUPPORTED = WSABASEERR + 92, + WSANOTINITIALISED = WSABASEERR + 93, + WSAHOST_NOT_FOUND = WSABASEERR + 1001, + WSATRY_AGAIN = WSABASEERR + 1002, + WSANO_RECOVERY = WSABASEERR + 1003, + WSANO_DATA = WSABASEERR + 1004, + WSANO_ADDRESS = WSANO_DATA, + + // WinSock2 specific error codes + WSAENOMORE = WSABASEERR + 102, + WSAECANCELLED = WSABASEERR + 103, + WSAEINVALIDPROCTABLE = WSABASEERR + 104, + WSAEINVALIDPROVIDER = WSABASEERR + 105, + WSAEPROVIDERFAILEDINIT = WSABASEERR + 106, + WSASYSCALLFAILURE = WSABASEERR + 107, + WSASERVICE_NOT_FOUND = WSABASEERR + 108, + WSATYPE_NOT_FOUND = WSABASEERR + 109, + WSA_E_NO_MORE = WSABASEERR + 110, + WSA_E_CANCELLED = WSABASEERR + 111, + WSAEREFUSED = WSABASEERR + 112, + + // WS QualityofService errors + WSA_QOS_RECEIVERS = WSABASEERR + 1005, + WSA_QOS_SENDERS = WSABASEERR + 1006, + WSA_QOS_NO_SENDERS = WSABASEERR + 1007, + WSA_QOS_NO_RECEIVERS = WSABASEERR + 1008, + WSA_QOS_REQUEST_CONFIRMED = WSABASEERR + 1009, + WSA_QOS_ADMISSION_FAILURE = WSABASEERR + 1010, + WSA_QOS_POLICY_FAILURE = WSABASEERR + 1011, + WSA_QOS_BAD_STYLE = WSABASEERR + 1012, + WSA_QOS_BAD_OBJECT = WSABASEERR + 1013, + WSA_QOS_TRAFFIC_CTRL_ERROR = WSABASEERR + 1014, + WSA_QOS_GENERIC_ERROR = WSABASEERR + 1015, + WSA_QOS_ESERVICETYPE = WSABASEERR + 1016, + WSA_QOS_EFLOWSPEC = WSABASEERR + 1017, + WSA_QOS_EPROVSPECBUF = WSABASEERR + 1018, + WSA_QOS_EFILTERSTYLE = WSABASEERR + 1019, + WSA_QOS_EFILTERTYPE = WSABASEERR + 1020, + WSA_QOS_EFILTERCOUNT = WSABASEERR + 1021, + WSA_QOS_EOBJLENGTH = WSABASEERR + 1022, + WSA_QOS_EFLOWCOUNT = WSABASEERR + 1023, + WSA_QOS_EUNKOWNPSOBJ = WSABASEERR + 1024, + WSA_QOS_EPOLICYOBJ = WSABASEERR + 1025, + WSA_QOS_EFLOWDESC = WSABASEERR + 1026, + WSA_QOS_EPSFLOWSPEC = WSABASEERR + 1027, + WSA_QOS_EPSFILTERSPEC = WSABASEERR + 1028, + WSA_QOS_ESDMODEOBJ = WSABASEERR + 1029, + WSA_QOS_ESHAPERATEOBJ = WSABASEERR + 1030, + WSA_QOS_RESERVED_PETYPE = WSABASEERR + 1031 +} + +alias WSAGetLastError h_errno; + +enum : int { + HOST_NOT_FOUND = WSAHOST_NOT_FOUND, + TRY_AGAIN = WSATRY_AGAIN, + NO_RECOVERY = WSANO_RECOVERY, + NO_DATA = WSANO_DATA, + NO_ADDRESS = WSANO_ADDRESS +} + +extern (Windows) { + SOCKET accept(SOCKET, SOCKADDR*, int*); + int bind(SOCKET, CPtr!(SOCKADDR), int); + int closesocket(SOCKET); + int connect(SOCKET, CPtr!(SOCKADDR), int); + int ioctlsocket(SOCKET, int, u_long*); + int getpeername(SOCKET, SOCKADDR*, int*); + int getsockname(SOCKET, SOCKADDR*, int*); + int getsockopt(SOCKET, int, int, void*, int*); + uint inet_addr(CPtr!(char)); + int listen(SOCKET, int); + int recv(SOCKET, ubyte*, int, int); + int recvfrom(SOCKET, ubyte*, int, int, SOCKADDR*, int*); + int send(SOCKET, CPtr!(ubyte), int, int); + int sendto(SOCKET, CPtr!(ubyte), int, int, CPtr!(SOCKADDR), int); + int setsockopt(SOCKET, int, int, CPtr!(void), int); + int shutdown(SOCKET, int); + SOCKET socket(int, int, int); + + alias typeof(&accept) LPFN_ACCEPT; + alias typeof(&bind) LPFN_BIND; + alias typeof(&closesocket) LPFN_CLOSESOCKET; + alias typeof(&connect) LPFN_CONNECT; + alias typeof(&ioctlsocket) LPFN_IOCTLSOCKET; + alias typeof(&getpeername) LPFN_GETPEERNAME; + alias typeof(&getsockname) LPFN_GETSOCKNAME; + alias typeof(&getsockopt) LPFN_GETSOCKOPT; + alias typeof(&inet_addr) LPFN_INET_ADDR; + alias typeof(&listen) LPFN_LISTEN; + alias typeof(&recv) LPFN_RECV; + alias typeof(&recvfrom) LPFN_RECVFROM; + alias typeof(&send) LPFN_SEND; + alias typeof(&sendto) LPFN_SENDTO; + alias typeof(&setsockopt) LPFN_SETSOCKOPT; + alias typeof(&shutdown) LPFN_SHUTDOWN; + alias typeof(&socket) LPFN_SOCKET; +} + +extern(Windows) { + char* inet_ntoa(IN_ADDR); + HOSTENT* gethostbyaddr(CPtr!(char), int, int); + HOSTENT* gethostbyname(CPtr!(char)); + SERVENT* getservbyport(int, CPtr!(char)); + SERVENT* getservbyname(CPtr!(char), CPtr!(char)); + PROTOENT* getprotobynumber(int); + PROTOENT* getprotobyname(CPtr!(char)); + + /* NOTE: DK: in the original headers, these were declared with + PASCAL linkage. Since this is at odds with the definition + of the functions themselves, and also since MinGW seems to + treat the two interchangably, I have moved them here. */ + alias typeof(&inet_ntoa) LPFN_INET_NTOA; + alias typeof(&gethostbyaddr) LPFN_GETHOSTBYADDR; + alias typeof(&gethostbyname) LPFN_GETHOSTBYNAME; + alias typeof(&getservbyport) LPFN_GETSERVBYPORT; + alias typeof(&getservbyname) LPFN_GETSERVBYNAME; + alias typeof(&getprotobynumber) LPFN_GETPROTOBYNUMBER; + alias typeof(&getprotobyname) LPFN_GETPROTOBYNAME; +} + +extern(Windows) { + int WSAStartup(WORD, LPWSADATA); + int WSACleanup(); + void WSASetLastError(int); + int WSAGetLastError(); + + alias typeof(&WSAStartup) LPFN_WSASTARTUP; + alias typeof(&WSACleanup) LPFN_WSACLEANUP; + alias typeof(&WSASetLastError) LPFN_WSASETLASTERROR; + alias typeof(&WSAGetLastError) LPFN_WSAGETLASTERROR; +} + +/* + * Pseudo-blocking functions are deprecated in WinSock2 + * spec. Use threads instead. + */ +deprecated extern(Windows) { + BOOL WSAIsBlocking(); + int WSAUnhookBlockingHook(); + FARPROC WSASetBlockingHook(FARPROC); + int WSACancelBlockingCall(); + + alias typeof(&WSAIsBlocking) LPFN_WSAISBLOCKING; + alias typeof(&WSAUnhookBlockingHook) LPFN_WSAUNHOOKBLOCKINGHOOK; + alias typeof(&WSASetBlockingHook) LPFN_WSASETBLOCKINGHOOK; + alias typeof(&WSACancelBlockingCall) LPFN_WSACANCELBLOCKINGCALL; +} + +extern(Windows) { + HANDLE WSAAsyncGetServByName(HWND, u_int, CPtr!(char), CPtr!(char), char*, int); + HANDLE WSAAsyncGetServByPort(HWND, u_int, int, CPtr!(char), char*, int); + HANDLE WSAAsyncGetProtoByName(HWND, u_int, CPtr!(char), char*, int); + HANDLE WSAAsyncGetProtoByNumber(HWND, u_int, int, char*, int); + HANDLE WSAAsyncGetHostByName(HWND, u_int, CPtr!(char), char*, int); + HANDLE WSAAsyncGetHostByAddr(HWND, u_int, CPtr!(char), int, int, char*, int); + int WSACancelAsyncRequest(HANDLE); + int WSAAsyncSelect(SOCKET, HWND, u_int, long); + + alias typeof(&WSAAsyncGetServByName) LPFN_WSAAsyncGetServByName; + alias typeof(&WSAAsyncGetServByPort) LPFN_WSAASYNCGETSERVBYPORT; + alias typeof(&WSAAsyncGetProtoByName) LPFN_WSAASYNCGETPROTOBYNAME; + alias typeof(&WSAAsyncGetProtoByNumber) LPFN_WSAASYNCGETPROTOBYNUMBER; + alias typeof(&WSAAsyncGetHostByName) LPFN_WSAASYNCGETHOSTBYNAME; + alias typeof(&WSAAsyncGetHostByAddr) LPFN_WSAASYNCGETHOSTBYADDR; + alias typeof(&WSACancelAsyncRequest) LPFN_WSACANCELASYNCREQUEST; + alias typeof(&WSAAsyncSelect) LPFN_WSAASYNCSELECT; +} + +extern(Windows) { + u_long htonl(u_long); + u_long ntohl(u_long); + u_short htons(u_short); + u_short ntohs(u_short); + int select(int nfds, fd_set*, fd_set*, fd_set*, CPtr!(TIMEVAL)); + + alias typeof(&htonl) LPFN_HTONL; + alias typeof(&ntohl) LPFN_NTOHL; + alias typeof(&htons) LPFN_HTONS; + alias typeof(&ntohs) LPFN_NTOHS; + alias typeof(&select) LPFN_SELECT; + + int gethostname(char*, int); + alias typeof(&gethostname) LPFN_GETHOSTNAME; +} + +alias MAKELONG WSAMAKEASYNCREPLY, WSAMAKESELECTREPLY; +alias LOWORD WSAGETASYNCBUFLEN, WSAGETSELECTEVENT; +alias HIWORD WSAGETASYNCERROR, WSAGETSELECTERROR; + + +alias INADDR_ANY ADDR_ANY; + +bool IN_CLASSD(int i) { return (i & 0xf0000000) == 0xe0000000; } + +const IN_CLASSD_NET = 0xf0000000; +const IN_CLASSD_NSHIFT = 28; +const IN_CLASSD_HOST = 0x0fffffff; + +alias IN_CLASSD IN_MULTICAST; + +const FROM_PROTOCOL_INFO = -1; + +enum : int { + SO_GROUP_ID = 0x2001, + SO_GROUP_PRIORITY, + SO_MAX_MSG_SIZE, + SO_PROTOCOL_INFOA, + SO_PROTOCOL_INFOW +} +// NOTE: These are logically part of the previous enum, but you can't +// have version statements in an enum body... +version(Unicode) + const int SO_PROTOCOL_INFO = SO_PROTOCOL_INFOW; +else + const int SO_PROTOCOL_INFO = SO_PROTOCOL_INFOA; + +const PVD_CONFIG = 0x3001; + +const MSG_INTERRUPT = 0x10; +//const MSG_MAXIOVLEN = 16; // Already declared above + +alias HANDLE WSAEVENT; +alias LPHANDLE LPWSAEVENT; +alias OVERLAPPED WSAOVERLAPPED; +alias OVERLAPPED* LPWSAOVERLAPPED; + +private import win32.winerror; +private import win32.winbase; + +enum { + WSA_IO_PENDING = ERROR_IO_PENDING, + WSA_IO_INCOMPLETE = ERROR_IO_INCOMPLETE, + WSA_INVALID_HANDLE = ERROR_INVALID_HANDLE, + WSA_INVALID_PARAMETER = ERROR_INVALID_PARAMETER, + WSA_NOT_ENOUGH_MEMORY = ERROR_NOT_ENOUGH_MEMORY, + WSA_OPERATION_ABORTED = ERROR_OPERATION_ABORTED +} + +const WSA_INVALID_EVENT = cast(WSAEVENT)null; +const WSA_MAXIMUM_WAIT_EVENTS = MAXIMUM_WAIT_OBJECTS; +const WSA_WAIT_FAILED = cast(DWORD)-1; +const WSA_WAIT_EVENT_0 = WAIT_OBJECT_0; +const WSA_WAIT_IO_COMPLETION = WAIT_IO_COMPLETION; +const WSA_WAIT_TIMEOUT = WAIT_TIMEOUT; +const WSA_INFINITE = INFINITE; + +struct WSABUF { + uint len; + char* buf; +} + +alias WSABUF* LPWSABUF; + +enum GUARANTEE { + BestEffortService, + ControlledLoadService, + PredictiveService, + GuaranteedDelayService, + GuaranteedService +} + +/* TODO: FLOWSPEC and related definitions belong in qos.h */ + +/* + Windows Sockets 2 Application Programming Interface, + revision 2.2.2 (1997) uses the type uint32 for SERVICETYPE + and the elements of _flowspec, but the type uint32 is not defined + or used anywhere else in the w32api. For now, just use + unsigned int, which is 32 bits on _WIN32 and _WIN64. +*/ + +alias uint SERVICETYPE; + +struct FLOWSPEC { + uint TokenRate; + uint TokenBucketSize; + uint PeakBandwidth; + uint Latency; + uint DelayVariation; + SERVICETYPE ServiceType; + uint MaxSduSize; + uint MinimumPolicedSize; +} + +alias FLOWSPEC* PFLOWSPEC, LPFLOWSPEC; + +struct QOS +{ + FLOWSPEC SendingFlowspec; + FLOWSPEC ReceivingFlowspec; + WSABUF ProviderSpecific; +} + +alias QOS* LPQOS; + +enum { + CF_ACCEPT, + CF_REJECT, + CF_DEFER +} + +// REM: Already defined above +/*enum { + SD_RECEIVE, + SD_SEND, + SD_BOTH +}*/ + +alias uint GROUP; + +enum { + SG_UNCONSTRAINED_GROUP = 0x01, + SG_CONSTRAINED_GROUP +} + +struct WSANETWORKEVENTS { + int lNetworkEvents; + int[FD_MAX_EVENTS] iErrorCode; +} + +alias WSANETWORKEVENTS* LPWSANETWORKEVENTS; + +const MAX_PROTOCOL_CHAIN = 7; + +const BASE_PROTOCOL = 1; +const LAYERED_PROTOCOL = 0; + +enum WSAESETSERVICEOP +{ + RNRSERVICE_REGISTER = 0, + RNRSERVICE_DEREGISTER, + RNRSERVICE_DELETE +} + +alias WSAESETSERVICEOP* PWSAESETSERVICEOP, LPWSAESETSERVICEOP; + +struct AFPROTOCOLS { + INT iAddressFamily; + INT iProtocol; +} + +alias AFPROTOCOLS* PAFPROTOCOLS, LPAFPROTOCOLS; + +enum WSAECOMPARATOR +{ + COMP_EQUAL = 0, + COMP_NOTLESS +} + +alias WSAECOMPARATOR* PWSAECOMPARATOR, LPWSAECOMPARATOR; + +struct WSAVERSION +{ + DWORD dwVersion; + WSAECOMPARATOR ecHow; +} + +alias WSAVERSION* PWSAVERSION, LPWSAVERSION; + +// Import for SOCKET_ADDRESS, CSADDR_INFO +// import win32.nspapi; +//#ifndef __CSADDR_T_DEFINED /* also in nspapi.h */ +//#define __CSADDR_T_DEFINED + +struct SOCKET_ADDRESS { + LPSOCKADDR lpSockaddr; + INT iSockaddrLength; +} + +alias SOCKET_ADDRESS* PSOCKET_ADDRESS, LPSOCKET_ADDRESS; + +struct CSADDR_INFO { + SOCKET_ADDRESS LocalAddr; + SOCKET_ADDRESS RemoteAddr; + INT iSocketType; + INT iProtocol; +} + +alias CSADDR_INFO* PCSADDR_INFO, LPCSADDR_INFO; + +//#endif + +struct SOCKET_ADDRESS_LIST { + INT iAddressCount; + SOCKET_ADDRESS[1] _Address; + SOCKET_ADDRESS* Address() { return _Address.ptr; } +} + +alias SOCKET_ADDRESS_LIST* LPSOCKET_ADDRESS_LIST; + +// TODO: Import wtypes/nspapi? +//#ifndef __BLOB_T_DEFINED /* also in wtypes.h and nspapi.h */ +//#define __BLOB_T_DEFINED +struct BLOB { + ULONG cbSize; + BYTE* pBlobData; +} + +alias BLOB* PBLOB, LPBLOB; +//#endif + +struct WSAQUERYSETA +{ + DWORD dwSize; + LPSTR lpszServiceInstanceName; + LPGUID lpServiceClassId; + LPWSAVERSION lpVersion; + LPSTR lpszComment; + DWORD dwNameSpace; + LPGUID lpNSProviderId; + LPSTR lpszContext; + DWORD dwNumberOfProtocols; + LPAFPROTOCOLS lpafpProtocols; + LPSTR lpszQueryString; + DWORD dwNumberOfCsAddrs; + LPCSADDR_INFO lpcsaBuffer; + DWORD dwOutputFlags; + LPBLOB lpBlob; +} + +alias WSAQUERYSETA* PWSAQUERYSETA, LPWSAQUERYSETA; + +struct WSAQUERYSETW +{ + DWORD dwSize; + LPWSTR lpszServiceInstanceName; + LPGUID lpServiceClassId; + LPWSAVERSION lpVersion; + LPWSTR lpszComment; + DWORD dwNameSpace; + LPGUID lpNSProviderId; + LPWSTR lpszContext; + DWORD dwNumberOfProtocols; + LPAFPROTOCOLS lpafpProtocols; + LPWSTR lpszQueryString; + DWORD dwNumberOfCsAddrs; + LPCSADDR_INFO lpcsaBuffer; + DWORD dwOutputFlags; + LPBLOB lpBlob; +} + + +alias WSAQUERYSETW* PWSAQUERYSETW, LPWSAQUERYSETW; + +version(Unicode) { + alias WSAQUERYSETW WSAQUERYSET; + alias PWSAQUERYSETW PWSAQUERYSET; + alias LPWSAQUERYSETW LPWSAQUERYSET; +} else { + alias WSAQUERYSETA WSAQUERYSET; + alias PWSAQUERYSETA PWSAQUERYSET; + alias LPWSAQUERYSETA LPWSAQUERYSET; +} + +const int + LUP_DEEP = 0x0001, + LUP_CONTAINERS = 0x0002, + LUP_NOCONTAINERS = 0x0004, + LUP_NEAREST = 0x0008, + LUP_RETURN_NAME = 0x0010, + LUP_RETURN_TYPE = 0x0020, + LUP_RETURN_VERSION = 0x0040, + LUP_RETURN_COMMENT = 0x0080, + LUP_RETURN_ADDR = 0x0100, + LUP_RETURN_BLOB = 0x0200, + LUP_RETURN_ALIASES = 0x0400, + LUP_RETURN_QUERY_STRING = 0x0800, + LUP_RETURN_ALL = 0x0FF0, + LUP_RES_SERVICE = 0x8000, + LUP_FLUSHCACHE = 0x1000, + LUP_FLUSHPREVIOUS = 0x2000; + +struct WSANSCLASSINFOA +{ + LPSTR lpszName; + DWORD dwNameSpace; + DWORD dwValueType; + DWORD dwValueSize; + LPVOID lpValue; +} + +alias WSANSCLASSINFOA* PWSANSCLASSINFOA, LPWSANSCLASSINFOA; + +struct WSANSCLASSINFOW +{ + LPWSTR lpszName; + DWORD dwNameSpace; + DWORD dwValueType; + DWORD dwValueSize; + LPVOID lpValue; +} + +alias WSANSCLASSINFOW* PWSANSCLASSINFOW, LPWSANSCLASSINFOW; + +version(Unicode) { + alias WSANSCLASSINFOW WSANSCLASSINFO; + alias PWSANSCLASSINFOW PWSANSCLASSINFO; + alias LPWSANSCLASSINFOW LPWSANSCLASSINFO; +} else { + alias WSANSCLASSINFOA WSANSCLASSINFO; + alias PWSANSCLASSINFOA PWSANSCLASSINFO; + alias LPWSANSCLASSINFOA LPWSANSCLASSINFO; +} + +struct WSASERVICECLASSINFOA +{ + LPGUID lpServiceClassId; + LPSTR lpszServiceClassName; + DWORD dwCount; + LPWSANSCLASSINFOA lpClassInfos; +} + +alias WSASERVICECLASSINFOA* PWSASERVICECLASSINFOA, LPWSASERVICECLASSINFOA; + +struct WSASERVICECLASSINFOW +{ + LPGUID lpServiceClassId; + LPWSTR lpszServiceClassName; + DWORD dwCount; + LPWSANSCLASSINFOW lpClassInfos; +} + +alias WSASERVICECLASSINFOW* PWSASERVICECLASSINFOW, LPWSASERVICECLASSINFOW; + +version(Unicode) { + alias WSASERVICECLASSINFOW WSASERVICECLASSINFO; + alias PWSASERVICECLASSINFOW PWSASERVICECLASSINFO; + alias LPWSASERVICECLASSINFOW LPWSASERVICECLASSINFO; +} else { + alias WSASERVICECLASSINFOA WSASERVICECLASSINFO; + alias PWSASERVICECLASSINFOA PWSASERVICECLASSINFO; + alias LPWSASERVICECLASSINFOA LPWSASERVICECLASSINFO; +} + +struct WSANAMESPACE_INFOA { + GUID NSProviderId; + DWORD dwNameSpace; + BOOL fActive; + DWORD dwVersion; + LPSTR lpszIdentifier; +} + +alias WSANAMESPACE_INFOA* PWSANAMESPACE_INFOA, LPWSANAMESPACE_INFOA; + +struct WSANAMESPACE_INFOW { + GUID NSProviderId; + DWORD dwNameSpace; + BOOL fActive; + DWORD dwVersion; + LPWSTR lpszIdentifier; +} + +alias WSANAMESPACE_INFOW* PWSANAMESPACE_INFOW, LPWSANAMESPACE_INFOW; + +version(Unicode) { + alias WSANAMESPACE_INFOW WSANAMESPACE_INFO; + alias PWSANAMESPACE_INFOW PWSANAMESPACE_INFO; + alias LPWSANAMESPACE_INFOW LPWSANAMESPACE_INFO; +} else { + alias WSANAMESPACE_INFOA WSANAMESPACE_INFO; + alias PWSANAMESPACE_INFOA PWSANAMESPACE_INFO; + alias LPWSANAMESPACE_INFOA LPWSANAMESPACE_INFO; +} + +struct WSAPROTOCOLCHAIN { + int ChainLen; + DWORD[MAX_PROTOCOL_CHAIN] ChainEntries; +} + +alias WSAPROTOCOLCHAIN* LPWSAPROTOCOLCHAIN; + +const WSAPROTOCOL_LEN = 255; + +struct WSAPROTOCOL_INFOA { + DWORD dwServiceFlags1; + DWORD dwServiceFlags2; + DWORD dwServiceFlags3; + DWORD dwServiceFlags4; + DWORD dwProviderFlags; + GUID ProviderId; + DWORD dwCatalogEntryId; + WSAPROTOCOLCHAIN ProtocolChain; + int iVersion; + int iAddressFamily; + int iMaxSockAddr; + int iMinSockAddr; + int iSocketType; + int iProtocol; + int iProtocolMaxOffset; + int iNetworkByteOrder; + int iSecurityScheme; + DWORD dwMessageSize; + DWORD dwProviderReserved; + CHAR[WSAPROTOCOL_LEN+1] szProtocol; +} + +alias WSAPROTOCOL_INFOA* LPWSAPROTOCOL_INFOA; + +struct WSAPROTOCOL_INFOW { + DWORD dwServiceFlags1; + DWORD dwServiceFlags2; + DWORD dwServiceFlags3; + DWORD dwServiceFlags4; + DWORD dwProviderFlags; + GUID ProviderId; + DWORD dwCatalogEntryId; + WSAPROTOCOLCHAIN ProtocolChain; + int iVersion; + int iAddressFamily; + int iMaxSockAddr; + int iMinSockAddr; + int iSocketType; + int iProtocol; + int iProtocolMaxOffset; + int iNetworkByteOrder; + int iSecurityScheme; + DWORD dwMessageSize; + DWORD dwProviderReserved; + WCHAR[WSAPROTOCOL_LEN+1] szProtocol; +} + +alias WSAPROTOCOL_INFOW* LPWSAPROTOCOL_INFOW; + +// TODO: Below fptr was defined as "CALLBACK" for linkage; is this right? +extern(C) { + alias int function(LPWSABUF, LPWSABUF, LPQOS, LPQOS, LPWSABUF, LPWSABUF, GROUP *, DWORD) LPCONDITIONPROC; +} + +extern(Windows) { + alias void function(DWORD, DWORD, LPWSAOVERLAPPED, DWORD) LPWSAOVERLAPPED_COMPLETION_ROUTINE; +} + +version(Unicode) { + alias WSAPROTOCOL_INFOW WSAPROTOCOL_INFO; + alias LPWSAPROTOCOL_INFOW LPWSAPROTOCOL_INFO; +} else { + alias WSAPROTOCOL_INFOA WSAPROTOCOL_INFO; + alias LPWSAPROTOCOL_INFOA LPWSAPROTOCOL_INFO; +} + +/* Needed for XP & .NET Server function WSANSPIoctl. */ +enum WSACOMPLETIONTYPE { + NSP_NOTIFY_IMMEDIATELY = 0, + NSP_NOTIFY_HWND, + NSP_NOTIFY_EVENT, + NSP_NOTIFY_PORT, + NSP_NOTIFY_APC +} + +alias WSACOMPLETIONTYPE* PWSACOMPLETIONTYPE, LPWSACOMPLETIONTYPE; + +struct WSACOMPLETION { + WSACOMPLETIONTYPE Type; + union WSACOMPLETION_PARAMETERS { + struct WSACOMPLETION_WINDOWMESSAGE { + HWND hWnd; + UINT uMsg; + WPARAM context; + } + WSACOMPLETION_WINDOWMESSAGE WindowMessage; + struct WSACOMPLETION_EVENT { + LPWSAOVERLAPPED lpOverlapped; + } + WSACOMPLETION_EVENT Event; + struct WSACOMPLETION_APC { + LPWSAOVERLAPPED lpOverlapped; + LPWSAOVERLAPPED_COMPLETION_ROUTINE lpfnCompletionProc; + } + WSACOMPLETION_APC Apc; + struct WSACOMPLETION_PORT { + LPWSAOVERLAPPED lpOverlapped; + HANDLE hPort; + ULONG_PTR Key; + } + WSACOMPLETION_PORT Port; + } + WSACOMPLETION_PARAMETERS Parameters; +} + +alias WSACOMPLETION* PWSACOMPLETION, LPWSACOMPLETION; + +const int + PFL_MULTIPLE_PROTO_ENTRIES = 0x00000001, + PFL_RECOMMENDED_PROTO_ENTRY = 0x00000002, + PFL_HIDDEN = 0x00000004, + PFL_MATCHES_PROTOCOL_ZERO = 0x00000008; + +const int + XP1_CONNECTIONLESS = 0x00000001, + XP1_GUARANTEED_DELIVERY = 0x00000002, + XP1_GUARANTEED_ORDER = 0x00000004, + XP1_MESSAGE_ORIENTED = 0x00000008, + XP1_PSEUDO_STREAM = 0x00000010, + XP1_GRACEFUL_CLOSE = 0x00000020, + XP1_EXPEDITED_DATA = 0x00000040, + XP1_CONNECT_DATA = 0x00000080, + XP1_DISCONNECT_DATA = 0x00000100, + XP1_SUPPORT_BROADCAST = 0x00000200, + XP1_SUPPORT_MULTIPOINT = 0x00000400, + XP1_MULTIPOINT_CONTROL_PLANE = 0x00000800, + XP1_MULTIPOINT_DATA_PLANE = 0x00001000, + XP1_QOS_SUPPORTED = 0x00002000, + XP1_INTERRUPT = 0x00004000, + XP1_UNI_SEND = 0x00008000, + XP1_UNI_RECV = 0x00010000, + XP1_IFS_HANDLES = 0x00020000, + XP1_PARTIAL_MESSAGE = 0x00040000; + +enum : int { + BIGENDIAN = 0x0000, + LITTLEENDIAN = 0x0001 +} + +const SECURITY_PROTOCOL_NONE = 0x0000; + +const JL_SENDER_ONLY = 0x01; +const JL_RECEIVER_ONLY = 0x02; +const JL_BOTH = 0x04; + +const WSA_FLAG_OVERLAPPED = 0x01; +const WSA_FLAG_MULTIPOINT_C_ROOT = 0x02; +const WSA_FLAG_MULTIPOINT_C_LEAF = 0x04; +const WSA_FLAG_MULTIPOINT_D_ROOT = 0x08; +const WSA_FLAG_MULTIPOINT_D_LEAF = 0x10; + +const int IOC_UNIX = 0x00000000; +const int IOC_WS2 = 0x08000000; +const int IOC_PROTOCOL = 0x10000000; +const int IOC_VENDOR = 0x18000000; + +template _WSAIO(int x, int y) { const int _WSAIO = IOC_VOID | x | y; } +template _WSAIOR(int x, int y) { const int _WSAIOR = IOC_OUT | x | y; } +template _WSAIOW(int x, int y) { const int _WSAIOW = IOC_IN | x | y; } +template _WSAIORW(int x, int y) { const int _WSAIORW = IOC_INOUT | x | y; } + +const int SIO_ASSOCIATE_HANDLE = _WSAIOW!(IOC_WS2,1); +const int SIO_ENABLE_CIRCULAR_QUEUEING = _WSAIO!(IOC_WS2,2); +const int SIO_FIND_ROUTE = _WSAIOR!(IOC_WS2,3); +const int SIO_FLUSH = _WSAIO!(IOC_WS2,4); +const int SIO_GET_BROADCAST_ADDRESS = _WSAIOR!(IOC_WS2,5); +const int SIO_GET_EXTENSION_FUNCTION_POINTER = _WSAIORW!(IOC_WS2,6); +const int SIO_GET_QOS = _WSAIORW!(IOC_WS2,7); +const int SIO_GET_GROUP_QOS = _WSAIORW!(IOC_WS2,8); +const int SIO_MULTIPOINT_LOOPBACK = _WSAIOW!(IOC_WS2,9); +const int SIO_MULTICAST_SCOPE = _WSAIOW!(IOC_WS2,10); +const int SIO_SET_QOS = _WSAIOW!(IOC_WS2,11); +const int SIO_SET_GROUP_QOS = _WSAIOW!(IOC_WS2,12); +const int SIO_TRANSLATE_HANDLE = _WSAIORW!(IOC_WS2,13); +const int SIO_ROUTING_INTERFACE_QUERY = _WSAIORW!(IOC_WS2,20); +const int SIO_ROUTING_INTERFACE_CHANGE = _WSAIOW!(IOC_WS2,21); +const int SIO_ADDRESS_LIST_QUERY = _WSAIOR!(IOC_WS2,22); +const int SIO_ADDRESS_LIST_CHANGE = _WSAIO!(IOC_WS2,23); +const int SIO_QUERY_TARGET_PNP_HANDLE = _WSAIOR!(IOC_WS2,24); +const int SIO_NSP_NOTIFY_CHANGE = _WSAIOW!(IOC_WS2,25); + +const int TH_NETDEV = 1; +const int TH_TAPI = 2; + + +extern(Windows) { + SOCKET WSAAccept(SOCKET, SOCKADDR*, LPINT, LPCONDITIONPROC, DWORD); + INT WSAAddressToStringA(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOA, LPSTR, LPDWORD); + INT WSAAddressToStringW(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOW, LPWSTR, LPDWORD); + BOOL WSACloseEvent(WSAEVENT); + int WSAConnect(SOCKET, CPtr!(SOCKADDR), int, LPWSABUF, LPWSABUF, LPQOS, LPQOS); + WSAEVENT WSACreateEvent(); + int WSADuplicateSocketA(SOCKET, DWORD, LPWSAPROTOCOL_INFOA); + int WSADuplicateSocketW(SOCKET, DWORD, LPWSAPROTOCOL_INFOW); + INT WSAEnumNameSpaceProvidersA(LPDWORD, LPWSANAMESPACE_INFOA); + INT WSAEnumNameSpaceProvidersW(LPDWORD, LPWSANAMESPACE_INFOW); + int WSAEnumNetworkEvents(SOCKET, WSAEVENT, LPWSANETWORKEVENTS); + int WSAEnumProtocolsA(LPINT, LPWSAPROTOCOL_INFOA, LPDWORD); + int WSAEnumProtocolsW(LPINT, LPWSAPROTOCOL_INFOW, LPDWORD); + int WSAEventSelect(SOCKET, WSAEVENT, int); + BOOL WSAGetOverlappedResult(SOCKET, LPWSAOVERLAPPED, LPDWORD, BOOL, LPDWORD); + BOOL WSAGetQOSByName(SOCKET, LPWSABUF, LPQOS); + INT WSAGetServiceClassInfoA(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOA); + INT WSAGetServiceClassInfoW(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOW); + INT WSAGetServiceClassNameByClassIdA(LPGUID, LPSTR, LPDWORD); + INT WSAGetServiceClassNameByClassIdW(LPGUID, LPWSTR, LPDWORD); + int WSAHtonl(SOCKET, uint, uint*); + int WSAHtons(SOCKET, ushort, ushort*); + INT WSAInstallServiceClassA(LPWSASERVICECLASSINFOA); + INT WSAInstallServiceClassW(LPWSASERVICECLASSINFOW); + int WSAIoctl(SOCKET, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); + SOCKET WSAJoinLeaf(SOCKET, CPtr!(SOCKADDR), int, LPWSABUF, LPWSABUF, LPQOS, LPQOS, DWORD); + INT WSALookupServiceBeginA(LPWSAQUERYSETA, DWORD, LPHANDLE); + INT WSALookupServiceBeginW(LPWSAQUERYSETW lpqsRestrictions, DWORD, LPHANDLE); + INT WSALookupServiceNextA(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETA); + INT WSALookupServiceNextW(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETW); + INT WSALookupServiceEnd(HANDLE); + int WSANSPIoctl(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPWSACOMPLETION); /* XP or .NET Server */ + int WSANtohl(SOCKET, uint, uint*); + int WSANtohs(SOCKET, ushort, ushort*); + int WSARecv(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); + int WSARecvDisconnect(SOCKET, LPWSABUF); + int WSARecvFrom(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, SOCKADDR*, LPINT, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); + INT WSARemoveServiceClass(LPGUID); + BOOL WSAResetEvent(WSAEVENT); + int WSASend(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); + int WSASendDisconnect(SOCKET, LPWSABUF); + int WSASendTo(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, CPtr!(SOCKADDR), int, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); + BOOL WSASetEvent(WSAEVENT); + INT WSASetServiceA(LPWSAQUERYSETA, WSAESETSERVICEOP, DWORD); // NB: was declared with "WSAAPI" linkage + INT WSASetServiceW(LPWSAQUERYSETW, WSAESETSERVICEOP, DWORD); + SOCKET WSASocketA(int, int, int, LPWSAPROTOCOL_INFOA, GROUP, DWORD); + SOCKET WSASocketW(int, int, int, LPWSAPROTOCOL_INFOW, GROUP, DWORD); + INT WSAStringToAddressA(LPSTR, INT, LPWSAPROTOCOL_INFOA, LPSOCKADDR, LPINT); + INT WSAStringToAddressW(LPWSTR, INT, LPWSAPROTOCOL_INFOW, LPSOCKADDR, LPINT); + DWORD WSAWaitForMultipleEvents(DWORD, CPtr!(WSAEVENT), BOOL, DWORD, BOOL); + + alias typeof(&WSAAccept) LPFN_WSAACCEPT; + alias typeof(&WSAAddressToStringA) LPFN_WSAADDRESSTOSTRINGA; + alias typeof(&WSAAddressToStringW) LPFN_WSAADDRESSTOSTRINGW; + alias typeof(&WSACloseEvent) LPFN_WSACLOSEEVENT; + alias typeof(&WSAConnect) LPFN_WSACONNECT; + alias typeof(&WSACreateEvent) LPFN_WSACREATEEVENT; + alias typeof(&WSADuplicateSocketA) LPFN_WSADUPLICATESOCKETA; + alias typeof(&WSADuplicateSocketW) LPFN_WSADUPLICATESOCKETW; + alias typeof(&WSAEnumNameSpaceProvidersA) LPFN_WSAENUMNAMESPACEPROVIDERSA; + alias typeof(&WSAEnumNameSpaceProvidersW) LPFN_WSAENUMNAMESPACEPROVIDERSW; + alias typeof(&WSAEnumNetworkEvents) LPFN_WSAENUMNETWORKEVENTS; + alias typeof(&WSAEnumProtocolsA) LPFN_WSAENUMPROTOCOLSA; + alias typeof(&WSAEnumProtocolsW) LPFN_WSAENUMPROTOCOLSW; + alias typeof(&WSAEventSelect) LPFN_WSAEVENTSELECT; + alias typeof(&WSAGetOverlappedResult) LPFN_WSAGETOVERLAPPEDRESULT; + alias typeof(&WSAGetQOSByName) LPFN_WSAGETQOSBYNAME; + alias typeof(&WSAGetServiceClassInfoA) LPFN_WSAGETSERVICECLASSINFOA; + alias typeof(&WSAGetServiceClassInfoW) LPFN_WSAGETSERVICECLASSINFOW; + alias typeof(&WSAGetServiceClassNameByClassIdA) LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA; + alias typeof(&WSAGetServiceClassNameByClassIdW) LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW; + alias typeof(&WSAHtonl) LPFN_WSAHTONL; + alias typeof(&WSAHtons) LPFN_WSAHTONS; + alias typeof(&WSAInstallServiceClassA) LPFN_WSAINSTALLSERVICECLASSA; + alias typeof(&WSAInstallServiceClassW) LPFN_WSAINSTALLSERVICECLASSW; + alias typeof(&WSAIoctl) LPFN_WSAIOCTL; + alias typeof(&WSAJoinLeaf) LPFN_WSAJOINLEAF; + alias typeof(&WSALookupServiceBeginA) LPFN_WSALOOKUPSERVICEBEGINA; + alias typeof(&WSALookupServiceBeginW) LPFN_WSALOOKUPSERVICEBEGINW; + alias typeof(&WSALookupServiceNextA) LPFN_WSALOOKUPSERVICENEXTA; + alias typeof(&WSALookupServiceNextW) LPFN_WSALOOKUPSERVICENEXTW; + alias typeof(&WSALookupServiceEnd) LPFN_WSALOOKUPSERVICEEND; + alias typeof(&WSANSPIoctl) LPFN_WSANSPIoctl; + alias typeof(&WSANtohl) LPFN_WSANTOHL; + alias typeof(&WSANtohs) LPFN_WSANTOHS; + alias typeof(&WSARecv) LPFN_WSARECV; + alias typeof(&WSARecvDisconnect) LPFN_WSARECVDISCONNECT; + alias typeof(&WSARecvFrom) LPFN_WSARECVFROM; + alias typeof(&WSARemoveServiceClass) LPFN_WSAREMOVESERVICECLASS; + alias typeof(&WSAResetEvent) LPFN_WSARESETEVENT; + alias typeof(&WSASend) LPFN_WSASEND; + alias typeof(&WSASendDisconnect) LPFN_WSASENDDISCONNECT; + alias typeof(&WSASendTo) LPFN_WSASENDTO; + alias typeof(&WSASetEvent) LPFN_WSASETEVENT; + alias typeof(&WSASetServiceA) LPFN_WSASETSERVICEA; + alias typeof(&WSASetServiceW) LPFN_WSASETSERVICEW; + alias typeof(&WSASocketA) LPFN_WSASOCKETA; + alias typeof(&WSASocketW) LPFN_WSASOCKETW; + alias typeof(&WSAStringToAddressA) LPFN_WSASTRINGTOADDRESSA; + alias typeof(&WSAStringToAddressW) LPFN_WSASTRINGTOADDRESSW; + alias typeof(&WSAWaitForMultipleEvents) LPFN_WSAWAITFORMULTIPLEEVENTS; +} + +version(Unicode) { + alias LPFN_WSAADDRESSTOSTRINGW LPFN_WSAADDRESSTOSTRING; + alias LPFN_WSADUPLICATESOCKETW LPFN_WSADUPLICATESOCKET; + alias LPFN_WSAENUMNAMESPACEPROVIDERSW LPFN_WSAENUMNAMESPACEPROVIDERS; + alias LPFN_WSAENUMPROTOCOLSW LPFN_WSAENUMPROTOCOLS; + alias LPFN_WSAGETSERVICECLASSINFOW LPFN_WSAGETSERVICECLASSINFO; + alias LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW LPFN_WSAGETSERVICECLASSNAMEBYCLASSID; + alias LPFN_WSAINSTALLSERVICECLASSW LPFN_WSAINSTALLSERVICECLASS; + alias LPFN_WSALOOKUPSERVICEBEGINW LPFN_WSALOOKUPSERVICEBEGIN; + alias LPFN_WSALOOKUPSERVICENEXTW LPFN_WSALOOKUPSERVICENEXT; + alias LPFN_WSASETSERVICEW LPFN_WSASETSERVICE; + alias LPFN_WSASOCKETW LPFN_WSASOCKET; + alias LPFN_WSASTRINGTOADDRESSW LPFN_WSASTRINGTOADDRESS; + alias WSAAddressToStringW WSAAddressToString; + alias WSADuplicateSocketW WSADuplicateSocket; + alias WSAEnumNameSpaceProvidersW WSAEnumNameSpaceProviders; + alias WSAEnumProtocolsW WSAEnumProtocols; + alias WSAGetServiceClassInfoW WSAGetServiceClassInfo; + alias WSAGetServiceClassNameByClassIdW WSAGetServiceClassNameByClassId; + alias WSASetServiceW WSASetService; + alias WSASocketW WSASocket; + alias WSAStringToAddressW WSAStringToAddress; + alias WSALookupServiceBeginW WSALookupServiceBegin; + alias WSALookupServiceNextW WSALookupServiceNext; + alias WSAInstallServiceClassW WSAInstallServiceClass; +} else { + alias LPFN_WSAADDRESSTOSTRINGA LPFN_WSAADDRESSTOSTRING; + alias LPFN_WSADUPLICATESOCKETW LPFN_WSADUPLICATESOCKET; + alias LPFN_WSAENUMNAMESPACEPROVIDERSA LPFN_WSAENUMNAMESPACEPROVIDERS; + alias LPFN_WSAENUMPROTOCOLSA LPFN_WSAENUMPROTOCOLS; + alias LPFN_WSAGETSERVICECLASSINFOA LPFN_WSAGETSERVICECLASSINFO; + alias LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA LPFN_WSAGETSERVICECLASSNAMEBYCLASSID; + alias LPFN_WSAINSTALLSERVICECLASSA LPFN_WSAINSTALLSERVICECLASS; + alias LPFN_WSALOOKUPSERVICEBEGINA LPFN_WSALOOKUPSERVICEBEGIN; + alias LPFN_WSALOOKUPSERVICENEXTA LPFN_WSALOOKUPSERVICENEXT; + alias LPFN_WSASETSERVICEA LPFN_WSASETSERVICE; + alias LPFN_WSASOCKETA LPFN_WSASOCKET; + alias LPFN_WSASTRINGTOADDRESSA LPFN_WSASTRINGTOADDRESS; + alias WSAAddressToStringA WSAAddressToString; + alias WSADuplicateSocketA WSADuplicateSocket; + alias WSAEnumNameSpaceProvidersA WSAEnumNameSpaceProviders; + alias WSAEnumProtocolsA WSAEnumProtocols; + alias WSAGetServiceClassInfoA WSAGetServiceClassInfo; + alias WSAGetServiceClassNameByClassIdA WSAGetServiceClassNameByClassId; + alias WSAInstallServiceClassA WSAInstallServiceClass; + alias WSALookupServiceBeginA WSALookupServiceBegin; + alias WSALookupServiceNextA WSALookupServiceNext; + alias WSASocketA WSASocket; + alias WSAStringToAddressA WSAStringToAddress; + alias WSASetServiceA WSASetService; +} Index: src/win32/winspool.d ================================================================== --- src/win32/winspool.d +++ src/win32/winspool.d @@ -1,2665 +1,961 @@ -module win32.winspool; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino - -import win32.windef; -import win32.winbase; -import win32.wingdi; - -// #ifndef _WINSPOOL_ -// #define _WINSPOOL_ - -// #ifdef _WINUSER_ -// #... -// #endif - -// #ifdef __cplusplus -// extern "C" { -// #endif - -struct _PRINTER_INFO_1A { - DWORD Flags; - LPSTR pDescription; - LPSTR pName; - LPSTR pComment; -} -alias _PRINTER_INFO_1A PRINTER_INFO_1A; -alias _PRINTER_INFO_1A* PPRINTER_INFO_1A; -alias _PRINTER_INFO_1A* LPPRINTER_INFO_1A; - -struct _PRINTER_INFO_1W { - DWORD Flags; - LPWSTR pDescription; - LPWSTR pName; - LPWSTR pComment; -} -alias _PRINTER_INFO_1W PRINTER_INFO_1W; -alias _PRINTER_INFO_1W* PPRINTER_INFO_1W; -alias _PRINTER_INFO_1W* LPPRINTER_INFO_1W; - -// #ifdef UNICODE -alias PRINTER_INFO_1W PRINTER_INFO_1; -alias PPRINTER_INFO_1W PPRINTER_INFO_1; -alias LPPRINTER_INFO_1W LPPRINTER_INFO_1; -// #else -// ... -// #endif // UNICODE - -struct _PRINTER_INFO_2A { - LPSTR pServerName; - LPSTR pPrinterName; - LPSTR pShareName; - LPSTR pPortName; - LPSTR pDriverName; - LPSTR pComment; - LPSTR pLocation; - LPDEVMODEA pDevMode; - LPSTR pSepFile; - LPSTR pPrintProcessor; - LPSTR pDatatype; - LPSTR pParameters; - PSECURITY_DESCRIPTOR pSecurityDescriptor; - DWORD Attributes; - DWORD Priority; - DWORD DefaultPriority; - DWORD StartTime; - DWORD UntilTime; - DWORD Status; - DWORD cJobs; - DWORD AveragePPM; -} -alias _PRINTER_INFO_2A PRINTER_INFO_2A; -alias _PRINTER_INFO_2A* PPRINTER_INFO_2A; -alias _PRINTER_INFO_2A* LPPRINTER_INFO_2A; - -struct _PRINTER_INFO_2W { - LPWSTR pServerName; - LPWSTR pPrinterName; - LPWSTR pShareName; - LPWSTR pPortName; - LPWSTR pDriverName; - LPWSTR pComment; - LPWSTR pLocation; - LPDEVMODEW pDevMode; - LPWSTR pSepFile; - LPWSTR pPrintProcessor; - LPWSTR pDatatype; - LPWSTR pParameters; - PSECURITY_DESCRIPTOR pSecurityDescriptor; - DWORD Attributes; - DWORD Priority; - DWORD DefaultPriority; - DWORD StartTime; - DWORD UntilTime; - DWORD Status; - DWORD cJobs; - DWORD AveragePPM; -} -alias _PRINTER_INFO_2W PRINTER_INFO_2W; -alias _PRINTER_INFO_2W* PPRINTER_INFO_2W; -alias _PRINTER_INFO_2W* LPPRINTER_INFO_2W; - -// #ifdef UNICODE -alias PRINTER_INFO_2W PRINTER_INFO_2; -alias PPRINTER_INFO_2W PPRINTER_INFO_2; -alias LPPRINTER_INFO_2W LPPRINTER_INFO_2; -// #else -// ... -// #endif // UNICODE - -struct _PRINTER_INFO_3 { - PSECURITY_DESCRIPTOR pSecurityDescriptor; -} -alias _PRINTER_INFO_3 PRINTER_INFO_3; -alias _PRINTER_INFO_3* PPRINTER_INFO_3; -alias _PRINTER_INFO_3* LPPRINTER_INFO_3; - -struct _PRINTER_INFO_4A { - LPSTR pPrinterName; - LPSTR pServerName; - DWORD Attributes; -} -alias _PRINTER_INFO_4A PRINTER_INFO_4A; -alias _PRINTER_INFO_4A* PPRINTER_INFO_4A; -alias _PRINTER_INFO_4A* LPPRINTER_INFO_4A; - -struct _PRINTER_INFO_4W { - LPWSTR pPrinterName; - LPWSTR pServerName; - DWORD Attributes; -} -alias _PRINTER_INFO_4W PRINTER_INFO_4W; -alias _PRINTER_INFO_4W* PPRINTER_INFO_4W; -alias _PRINTER_INFO_4W* LPPRINTER_INFO_4W; - -// #ifdef UNICODE -alias PRINTER_INFO_4W PRINTER_INFO_4; -alias PPRINTER_INFO_4W PPRINTER_INFO_4; -alias LPPRINTER_INFO_4W LPPRINTER_INFO_4; -// #else -// ... -// #endif // UNICODE - -struct _PRINTER_INFO_5A { - LPSTR pPrinterName; - LPSTR pPortName; - DWORD Attributes; - DWORD DeviceNotSelectedTimeout; - DWORD TransmissionRetryTimeout; -} -alias _PRINTER_INFO_5A PRINTER_INFO_5A; -alias _PRINTER_INFO_5A* PPRINTER_INFO_5A; -alias _PRINTER_INFO_5A* LPPRINTER_INFO_5A; - -struct _PRINTER_INFO_5W { - LPWSTR pPrinterName; - LPWSTR pPortName; - DWORD Attributes; - DWORD DeviceNotSelectedTimeout; - DWORD TransmissionRetryTimeout; -} -alias _PRINTER_INFO_5W PRINTER_INFO_5W; -alias _PRINTER_INFO_5W* PPRINTER_INFO_5W; -alias _PRINTER_INFO_5W* LPPRINTER_INFO_5W; - -// #ifdef UNICODE -alias PRINTER_INFO_5W PRINTER_INFO_5; -alias PPRINTER_INFO_5W PPRINTER_INFO_5; -alias LPPRINTER_INFO_5W LPPRINTER_INFO_5; -// #else -// ... -// #endif // UNICODE - -struct _PRINTER_INFO_6 { - DWORD dwStatus; -} -alias _PRINTER_INFO_6 PRINTER_INFO_6; -alias _PRINTER_INFO_6* PPRINTER_INFO_6; -alias _PRINTER_INFO_6* LPPRINTER_INFO_6; - -struct _PRINTER_INFO_7A { - LPSTR pszObjectGUID; - DWORD dwAction; -} -alias _PRINTER_INFO_7A PRINTER_INFO_7A; -alias _PRINTER_INFO_7A* PPRINTER_INFO_7A; -alias _PRINTER_INFO_7A* LPPRINTER_INFO_7A; - -struct _PRINTER_INFO_7W { - LPWSTR pszObjectGUID; - DWORD dwAction; -} -alias _PRINTER_INFO_7W PRINTER_INFO_7W; -alias _PRINTER_INFO_7W* PPRINTER_INFO_7W; -alias _PRINTER_INFO_7W* LPPRINTER_INFO_7W; - -// #ifdef UNICODE -alias PRINTER_INFO_7W PRINTER_INFO_7; -alias PPRINTER_INFO_7W PPRINTER_INFO_7; -alias LPPRINTER_INFO_7W LPPRINTER_INFO_7; -// #else -// ... -// #endif // UNICODE - -enum : uint { DSPRINT_PUBLISH = 0x00000001 } -enum : uint { DSPRINT_UPDATE = 0x00000002 } -enum : uint { DSPRINT_UNPUBLISH = 0x00000004 } -enum : uint { DSPRINT_REPUBLISH = 0x00000008 } -enum : uint { DSPRINT_PENDING = 0x80000000 } - -struct _PRINTER_INFO_8A { - LPDEVMODEA pDevMode; -} -alias _PRINTER_INFO_8A PRINTER_INFO_8A; -alias _PRINTER_INFO_8A* PPRINTER_INFO_8A; -alias _PRINTER_INFO_8A* LPPRINTER_INFO_8A; - -struct _PRINTER_INFO_8W { - LPDEVMODEW pDevMode; -} -alias _PRINTER_INFO_8W PRINTER_INFO_8W; -alias _PRINTER_INFO_8W* PPRINTER_INFO_8W; -alias _PRINTER_INFO_8W* LPPRINTER_INFO_8W; - -// #ifdef UNICODE -alias PRINTER_INFO_8W PRINTER_INFO_8; -alias PPRINTER_INFO_8W PPRINTER_INFO_8; -alias LPPRINTER_INFO_8W LPPRINTER_INFO_8; -// #else -// ... -// #endif // UNICODE - -struct _PRINTER_INFO_9A { - LPDEVMODEA pDevMode; -} -alias _PRINTER_INFO_9A PRINTER_INFO_9A; -alias _PRINTER_INFO_9A* PPRINTER_INFO_9A; -alias _PRINTER_INFO_9A* LPPRINTER_INFO_9A; - -struct _PRINTER_INFO_9W { - LPDEVMODEW pDevMode; -} -alias _PRINTER_INFO_9W PRINTER_INFO_9W; -alias _PRINTER_INFO_9W* PPRINTER_INFO_9W; -alias _PRINTER_INFO_9W* LPPRINTER_INFO_9W; - -// #ifdef UNICODE -alias PRINTER_INFO_9W PRINTER_INFO_9; -alias PPRINTER_INFO_9W PPRINTER_INFO_9; -alias LPPRINTER_INFO_9W LPPRINTER_INFO_9; -// #else -// ... -// #endif // UNICODE - -enum : uint { PRINTER_CONTROL_PAUSE = 1 } -enum : uint { PRINTER_CONTROL_RESUME = 2 } -enum : uint { PRINTER_CONTROL_PURGE = 3 } -enum : uint { PRINTER_CONTROL_SET_STATUS = 4 } - -enum : uint { PRINTER_STATUS_PAUSED = 0x00000001 } -enum : uint { PRINTER_STATUS_ERROR = 0x00000002 } -enum : uint { PRINTER_STATUS_PENDING_DELETION = 0x00000004 } -enum : uint { PRINTER_STATUS_PAPER_JAM = 0x00000008 } -enum : uint { PRINTER_STATUS_PAPER_OUT = 0x00000010 } -enum : uint { PRINTER_STATUS_MANUAL_FEED = 0x00000020 } -enum : uint { PRINTER_STATUS_PAPER_PROBLEM = 0x00000040 } -enum : uint { PRINTER_STATUS_OFFLINE = 0x00000080 } -enum : uint { PRINTER_STATUS_IO_ACTIVE = 0x00000100 } -enum : uint { PRINTER_STATUS_BUSY = 0x00000200 } -enum : uint { PRINTER_STATUS_PRINTING = 0x00000400 } -enum : uint { PRINTER_STATUS_OUTPUT_BIN_FULL = 0x00000800 } -enum : uint { PRINTER_STATUS_NOT_AVAILABLE = 0x00001000 } -enum : uint { PRINTER_STATUS_WAITING = 0x00002000 } -enum : uint { PRINTER_STATUS_PROCESSING = 0x00004000 } -enum : uint { PRINTER_STATUS_INITIALIZING = 0x00008000 } -enum : uint { PRINTER_STATUS_WARMING_UP = 0x00010000 } -enum : uint { PRINTER_STATUS_TONER_LOW = 0x00020000 } -enum : uint { PRINTER_STATUS_NO_TONER = 0x00040000 } -enum : uint { PRINTER_STATUS_PAGE_PUNT = 0x00080000 } -enum : uint { PRINTER_STATUS_USER_INTERVENTION = 0x00100000 } -enum : uint { PRINTER_STATUS_OUT_OF_MEMORY = 0x00200000 } -enum : uint { PRINTER_STATUS_DOOR_OPEN = 0x00400000 } -enum : uint { PRINTER_STATUS_SERVER_UNKNOWN = 0x00800000 } -enum : uint { PRINTER_STATUS_POWER_SAVE = 0x01000000 } - -enum : uint { PRINTER_ATTRIBUTE_QUEUED = 0x00000001 } -enum : uint { PRINTER_ATTRIBUTE_DIRECT = 0x00000002 } -enum : uint { PRINTER_ATTRIBUTE_DEFAULT = 0x00000004 } -enum : uint { PRINTER_ATTRIBUTE_SHARED = 0x00000008 } -enum : uint { PRINTER_ATTRIBUTE_NETWORK = 0x00000010 } -enum : uint { PRINTER_ATTRIBUTE_HIDDEN = 0x00000020 } -enum : uint { PRINTER_ATTRIBUTE_LOCAL = 0x00000040 } - -enum : uint { PRINTER_ATTRIBUTE_ENABLE_DEVQ = 0x00000080 } -enum : uint { PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS = 0x00000100 } -enum : uint { PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST = 0x00000200 } - -enum : uint { PRINTER_ATTRIBUTE_WORK_OFFLINE = 0x00000400 } -enum : uint { PRINTER_ATTRIBUTE_ENABLE_BIDI = 0x00000800 } -enum : uint { PRINTER_ATTRIBUTE_RAW_ONLY = 0x00001000 } -enum : uint { PRINTER_ATTRIBUTE_PUBLISHED = 0x00002000 } -enum : uint { PRINTER_ATTRIBUTE_FAX = 0x00004000 } - -enum : uint { NO_PRIORITY = 0 } -enum : uint { MAX_PRIORITY = 99 } -enum : uint { MIN_PRIORITY = 1 } -enum : uint { DEF_PRIORITY = 1 } - -struct _JOB_INFO_1A { - DWORD JobId; - LPSTR pPrinterName; - LPSTR pMachineName; - LPSTR pUserName; - LPSTR pDocument; - LPSTR pDatatype; - LPSTR pStatus; - DWORD Status; - DWORD Priority; - DWORD Position; - DWORD TotalPages; - DWORD PagesPrinted; - SYSTEMTIME Submitted; -} -alias _JOB_INFO_1A JOB_INFO_1A; -alias _JOB_INFO_1A* PJOB_INFO_1A; -alias _JOB_INFO_1A* LPJOB_INFO_1A; - -struct _JOB_INFO_1W { - DWORD JobId; - LPWSTR pPrinterName; - LPWSTR pMachineName; - LPWSTR pUserName; - LPWSTR pDocument; - LPWSTR pDatatype; - LPWSTR pStatus; - DWORD Status; - DWORD Priority; - DWORD Position; - DWORD TotalPages; - DWORD PagesPrinted; - SYSTEMTIME Submitted; -} -alias _JOB_INFO_1W JOB_INFO_1W; -alias _JOB_INFO_1W* PJOB_INFO_1W; -alias _JOB_INFO_1W* LPJOB_INFO_1W; - -// #ifdef UNICODE -alias JOB_INFO_1W JOB_INFO_1; -alias PJOB_INFO_1W PJOB_INFO_1; -alias LPJOB_INFO_1W LPJOB_INFO_1; -// #else -// ... -// #endif // UNICODE - -struct _JOB_INFO_2A { - DWORD JobId; - LPSTR pPrinterName; - LPSTR pMachineName; - LPSTR pUserName; - LPSTR pDocument; - LPSTR pNotifyName; - LPSTR pDatatype; - LPSTR pPrintProcessor; - LPSTR pParameters; - LPSTR pDriverName; - LPDEVMODEA pDevMode; - LPSTR pStatus; - PSECURITY_DESCRIPTOR pSecurityDescriptor; - DWORD Status; - DWORD Priority; - DWORD Position; - DWORD StartTime; - DWORD UntilTime; - DWORD TotalPages; - DWORD Size; - SYSTEMTIME Submitted; - DWORD Time; - DWORD PagesPrinted; -} -alias _JOB_INFO_2A JOB_INFO_2A; -alias _JOB_INFO_2A* PJOB_INFO_2A; -alias _JOB_INFO_2A* LPJOB_INFO_2A; - -struct _JOB_INFO_2W { - DWORD JobId; - LPWSTR pPrinterName; - LPWSTR pMachineName; - LPWSTR pUserName; - LPWSTR pDocument; - LPWSTR pNotifyName; - LPWSTR pDatatype; - LPWSTR pPrintProcessor; - LPWSTR pParameters; - LPWSTR pDriverName; - LPDEVMODEW pDevMode; - LPWSTR pStatus; - PSECURITY_DESCRIPTOR pSecurityDescriptor; - DWORD Status; - DWORD Priority; - DWORD Position; - DWORD StartTime; - DWORD UntilTime; - DWORD TotalPages; - DWORD Size; - SYSTEMTIME Submitted; - DWORD Time; - DWORD PagesPrinted; -} -alias _JOB_INFO_2W JOB_INFO_2W; -alias _JOB_INFO_2W* PJOB_INFO_2W; -alias _JOB_INFO_2W* LPJOB_INFO_2W; - -// #ifdef UNICODE -alias JOB_INFO_2W JOB_INFO_2; -alias PJOB_INFO_2W PJOB_INFO_2; -alias LPJOB_INFO_2W LPJOB_INFO_2; -// #else -// ... -// #endif // UNICODE - -struct _JOB_INFO_3 { - DWORD JobId; - DWORD NextJobId; - DWORD Reserved; -} -alias _JOB_INFO_3 JOB_INFO_3; -alias _JOB_INFO_3* PJOB_INFO_3; -alias _JOB_INFO_3* LPJOB_INFO_3; - -enum : uint { JOB_CONTROL_PAUSE = 1 } -enum : uint { JOB_CONTROL_RESUME = 2 } -enum : uint { JOB_CONTROL_CANCEL = 3 } -enum : uint { JOB_CONTROL_RESTART = 4 } -enum : uint { JOB_CONTROL_DELETE = 5 } -enum : uint { JOB_CONTROL_SENT_TO_PRINTER = 6 } -enum : uint { JOB_CONTROL_LAST_PAGE_EJECTED = 7 } - -enum : uint { JOB_STATUS_PAUSED = 0x00000001 } -enum : uint { JOB_STATUS_ERROR = 0x00000002 } -enum : uint { JOB_STATUS_DELETING = 0x00000004 } -enum : uint { JOB_STATUS_SPOOLING = 0x00000008 } -enum : uint { JOB_STATUS_PRINTING = 0x00000010 } -enum : uint { JOB_STATUS_OFFLINE = 0x00000020 } -enum : uint { JOB_STATUS_PAPEROUT = 0x00000040 } -enum : uint { JOB_STATUS_PRINTED = 0x00000080 } -enum : uint { JOB_STATUS_DELETED = 0x00000100 } -enum : uint { JOB_STATUS_BLOCKED_DEVQ = 0x00000200 } -enum : uint { JOB_STATUS_USER_INTERVENTION = 0x00000400 } -enum : uint { JOB_STATUS_RESTART = 0x00000800 } -enum : uint { JOB_STATUS_COMPLETE = 0x00001000 } - -enum : uint { JOB_POSITION_UNSPECIFIED = 0 } - -struct _ADDJOB_INFO_1A { - LPSTR Path; - DWORD JobId; -} -alias _ADDJOB_INFO_1A ADDJOB_INFO_1A; -alias _ADDJOB_INFO_1A* PADDJOB_INFO_1A; -alias _ADDJOB_INFO_1A* LPADDJOB_INFO_1A; - -struct _ADDJOB_INFO_1W { - LPWSTR Path; - DWORD JobId; -} -alias _ADDJOB_INFO_1W ADDJOB_INFO_1W; -alias _ADDJOB_INFO_1W* PADDJOB_INFO_1W; -alias _ADDJOB_INFO_1W* LPADDJOB_INFO_1W; - -// #ifdef UNICODE -alias ADDJOB_INFO_1W ADDJOB_INFO_1; -alias PADDJOB_INFO_1W PADDJOB_INFO_1; -alias LPADDJOB_INFO_1W LPADDJOB_INFO_1; -// #else -// ... -// #endif // UNICODE - -struct _DRIVER_INFO_1A { - LPSTR pName; -} -alias _DRIVER_INFO_1A DRIVER_INFO_1A; -alias _DRIVER_INFO_1A* PDRIVER_INFO_1A; -alias _DRIVER_INFO_1A* LPDRIVER_INFO_1A; - -struct _DRIVER_INFO_1W { - LPWSTR pName; -} -alias _DRIVER_INFO_1W DRIVER_INFO_1W; -alias _DRIVER_INFO_1W* PDRIVER_INFO_1W; -alias _DRIVER_INFO_1W* LPDRIVER_INFO_1W; - -// #ifdef UNICODE -alias DRIVER_INFO_1W DRIVER_INFO_1; -alias PDRIVER_INFO_1W PDRIVER_INFO_1; -alias LPDRIVER_INFO_1W LPDRIVER_INFO_1; -// #else -// ... -// #endif // UNICODE - -struct _DRIVER_INFO_2A { - DWORD cVersion; - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDriverPath; - LPSTR pDataFile; - LPSTR pConfigFile; -} -alias _DRIVER_INFO_2A DRIVER_INFO_2A; -alias _DRIVER_INFO_2A* PDRIVER_INFO_2A; -alias _DRIVER_INFO_2A* LPDRIVER_INFO_2A; - -struct _DRIVER_INFO_2W { - DWORD cVersion; - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDriverPath; - LPWSTR pDataFile; - LPWSTR pConfigFile; -} -alias _DRIVER_INFO_2W DRIVER_INFO_2W; -alias _DRIVER_INFO_2W* PDRIVER_INFO_2W; -alias _DRIVER_INFO_2W* LPDRIVER_INFO_2W; - -// #ifdef UNICODE -alias DRIVER_INFO_2W DRIVER_INFO_2; -alias PDRIVER_INFO_2W PDRIVER_INFO_2; -alias LPDRIVER_INFO_2W LPDRIVER_INFO_2; -// #else -// ... -// #endif // UNICODE - -struct _DRIVER_INFO_3A { - DWORD cVersion; - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDriverPath; - LPSTR pDataFile; - LPSTR pConfigFile; - LPSTR pHelpFile; - LPSTR pDependentFiles; - LPSTR pMonitorName; - LPSTR pDefaultDataType; -} -alias _DRIVER_INFO_3A DRIVER_INFO_3A; -alias _DRIVER_INFO_3A* PDRIVER_INFO_3A; -alias _DRIVER_INFO_3A* LPDRIVER_INFO_3A; - -struct _DRIVER_INFO_3W { - DWORD cVersion; - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDriverPath; - LPWSTR pDataFile; - LPWSTR pConfigFile; - LPWSTR pHelpFile; - LPWSTR pDependentFiles; - LPWSTR pMonitorName; - LPWSTR pDefaultDataType; -} -alias _DRIVER_INFO_3W DRIVER_INFO_3W; -alias _DRIVER_INFO_3W* PDRIVER_INFO_3W; -alias _DRIVER_INFO_3W* LPDRIVER_INFO_3W; - -// #ifdef UNICODE -alias DRIVER_INFO_3W DRIVER_INFO_3; -alias PDRIVER_INFO_3W PDRIVER_INFO_3; -alias LPDRIVER_INFO_3W LPDRIVER_INFO_3; -// #else -// ... -// #endif // UNICODE - -struct _DRIVER_INFO_4A { - DWORD cVersion; - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDriverPath; - LPSTR pDataFile; - LPSTR pConfigFile; - LPSTR pHelpFile; - LPSTR pDependentFiles; - LPSTR pMonitorName; - LPSTR pDefaultDataType; - LPSTR pszzPreviousNames; -} -alias _DRIVER_INFO_4A DRIVER_INFO_4A; -alias _DRIVER_INFO_4A* PDRIVER_INFO_4A; -alias _DRIVER_INFO_4A* LPDRIVER_INFO_4A; - -struct _DRIVER_INFO_4W { - DWORD cVersion; - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDriverPath; - LPWSTR pDataFile; - LPWSTR pConfigFile; - LPWSTR pHelpFile; - LPWSTR pDependentFiles; - LPWSTR pMonitorName; - LPWSTR pDefaultDataType; - LPWSTR pszzPreviousNames; -} -alias _DRIVER_INFO_4W DRIVER_INFO_4W; -alias _DRIVER_INFO_4W* PDRIVER_INFO_4W; -alias _DRIVER_INFO_4W* LPDRIVER_INFO_4W; - -// #ifdef UNICODE -alias DRIVER_INFO_4W DRIVER_INFO_4; -alias PDRIVER_INFO_4W PDRIVER_INFO_4; -alias LPDRIVER_INFO_4W LPDRIVER_INFO_4; -// #else -// ... -// #endif // UNICODE - -struct _DRIVER_INFO_5A { - DWORD cVersion; - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDriverPath; - LPSTR pDataFile; - LPSTR pConfigFile; - DWORD dwDriverAttributes; - DWORD dwConfigVersion; - DWORD dwDriverVersion; -} -alias _DRIVER_INFO_5A DRIVER_INFO_5A; -alias _DRIVER_INFO_5A* PDRIVER_INFO_5A; -alias _DRIVER_INFO_5A* LPDRIVER_INFO_5A; - -struct _DRIVER_INFO_5W { - DWORD cVersion; - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDriverPath; - LPWSTR pDataFile; - LPWSTR pConfigFile; - DWORD dwDriverAttributes; - DWORD dwConfigVersion; - DWORD dwDriverVersion; -} -alias _DRIVER_INFO_5W DRIVER_INFO_5W; -alias _DRIVER_INFO_5W* PDRIVER_INFO_5W; -alias _DRIVER_INFO_5W* LPDRIVER_INFO_5W; - -// #ifdef UNICODE -alias DRIVER_INFO_5W DRIVER_INFO_5; -alias PDRIVER_INFO_5W PDRIVER_INFO_5; -alias LPDRIVER_INFO_5W LPDRIVER_INFO_5; -// #else -// ... -// #endif // UNICODE - -struct _DRIVER_INFO_6A { - DWORD cVersion; - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDriverPath; - LPSTR pDataFile; - LPSTR pConfigFile; - LPSTR pHelpFile; - LPSTR pDependentFiles; - LPSTR pMonitorName; - LPSTR pDefaultDataType; - LPSTR pszzPreviousNames; - FILETIME ftDriverDate; - DWORDLONG dwlDriverVersion; - LPSTR pszMfgName; - LPSTR pszOEMUrl; - LPSTR pszHardwareID; - LPSTR pszProvider; -} -alias _DRIVER_INFO_6A DRIVER_INFO_6A; -alias _DRIVER_INFO_6A* PDRIVER_INFO_6A; -alias _DRIVER_INFO_6A* LPDRIVER_INFO_6A; - -struct _DRIVER_INFO_6W { - DWORD cVersion; - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDriverPath; - LPWSTR pDataFile; - LPWSTR pConfigFile; - LPWSTR pHelpFile; - LPWSTR pDependentFiles; - LPWSTR pMonitorName; - LPWSTR pDefaultDataType; - LPWSTR pszzPreviousNames; - FILETIME ftDriverDate; - DWORDLONG dwlDriverVersion; - LPWSTR pszMfgName; - LPWSTR pszOEMUrl; - LPWSTR pszHardwareID; - LPWSTR pszProvider; -} -alias _DRIVER_INFO_6W DRIVER_INFO_6W; -alias _DRIVER_INFO_6W* PDRIVER_INFO_6W; -alias _DRIVER_INFO_6W* LPDRIVER_INFO_6W; - -// #ifdef UNICODE -alias DRIVER_INFO_6W DRIVER_INFO_6; -alias PDRIVER_INFO_6W PDRIVER_INFO_6; -alias LPDRIVER_INFO_6W LPDRIVER_INFO_6; -// #else -// ... -// #endif // UNICODE - -enum : uint { DRIVER_KERNELMODE = 0x00000001 } -enum : uint { DRIVER_USERMODE = 0x00000002 } - -enum : uint { DPD_DELETE_UNUSED_FILES = 0x00000001 } -enum : uint { DPD_DELETE_SPECIFIC_VERSION = 0x00000002 } -enum : uint { DPD_DELETE_ALL_FILES = 0x00000004 } - -enum : uint { APD_STRICT_UPGRADE = 0x00000001 } -enum : uint { APD_STRICT_DOWNGRADE = 0x00000002 } -enum : uint { APD_COPY_ALL_FILES = 0x00000004 } -enum : uint { APD_COPY_NEW_FILES = 0x00000008 } -enum : uint { APD_COPY_FROM_DIRECTORY = 0x00000010 } - -struct _DOC_INFO_1A { - LPSTR pDocName; - LPSTR pOutputFile; - LPSTR pDatatype; -} -alias _DOC_INFO_1A DOC_INFO_1A; -alias _DOC_INFO_1A* PDOC_INFO_1A; -alias _DOC_INFO_1A* LPDOC_INFO_1A; - -struct _DOC_INFO_1W { - LPWSTR pDocName; - LPWSTR pOutputFile; - LPWSTR pDatatype; -} -alias _DOC_INFO_1W DOC_INFO_1W; -alias _DOC_INFO_1W* PDOC_INFO_1W; -alias _DOC_INFO_1W* LPDOC_INFO_1W; - -// #ifdef UNICODE -alias DOC_INFO_1W DOC_INFO_1; -alias PDOC_INFO_1W PDOC_INFO_1; -alias LPDOC_INFO_1W LPDOC_INFO_1; -// #else -// ... -// #endif // UNICODE - -struct _FORM_INFO_1A { - DWORD Flags; - LPSTR pName; - SIZEL Size; - RECTL ImageableArea; -} -alias _FORM_INFO_1A FORM_INFO_1A; -alias _FORM_INFO_1A* PFORM_INFO_1A; -alias _FORM_INFO_1A* LPFORM_INFO_1A; - -struct _FORM_INFO_1W { - DWORD Flags; - LPWSTR pName; - SIZEL Size; - RECTL ImageableArea; -} -alias _FORM_INFO_1W FORM_INFO_1W; -alias _FORM_INFO_1W* PFORM_INFO_1W; -alias _FORM_INFO_1W* LPFORM_INFO_1W; - -// #ifdef UNICODE -alias FORM_INFO_1W FORM_INFO_1; -alias PFORM_INFO_1W PFORM_INFO_1; -alias LPFORM_INFO_1W LPFORM_INFO_1; -// #else -// ... -// #endif // UNICODE - -struct _DOC_INFO_2A { - LPSTR pDocName; - LPSTR pOutputFile; - LPSTR pDatatype; - DWORD dwMode; - DWORD JobId; -} -alias _DOC_INFO_2A DOC_INFO_2A; -alias _DOC_INFO_2A* PDOC_INFO_2A; -alias _DOC_INFO_2A* LPDOC_INFO_2A; - -struct _DOC_INFO_2W { - LPWSTR pDocName; - LPWSTR pOutputFile; - LPWSTR pDatatype; - DWORD dwMode; - DWORD JobId; -} -alias _DOC_INFO_2W DOC_INFO_2W; -alias _DOC_INFO_2W* PDOC_INFO_2W; -alias _DOC_INFO_2W* LPDOC_INFO_2W; - -// #ifdef UNICODE -alias DOC_INFO_2W DOC_INFO_2; -alias PDOC_INFO_2W PDOC_INFO_2; -alias LPDOC_INFO_2W LPDOC_INFO_2; -// #else -// ... -// #endif // UNICODE - -enum : uint { DI_CHANNEL = 1 } - -enum : uint { DI_READ_SPOOL_JOB = 3 } - -struct _DOC_INFO_3A { - LPSTR pDocName; - LPSTR pOutputFile; - LPSTR pDatatype; - DWORD dwFlags; -} -alias _DOC_INFO_3A DOC_INFO_3A; -alias _DOC_INFO_3A* PDOC_INFO_3A; -alias _DOC_INFO_3A* LPDOC_INFO_3A; - -struct _DOC_INFO_3W { - LPWSTR pDocName; - LPWSTR pOutputFile; - LPWSTR pDatatype; - DWORD dwFlags; -} -alias _DOC_INFO_3W DOC_INFO_3W; -alias _DOC_INFO_3W* PDOC_INFO_3W; -alias _DOC_INFO_3W* LPDOC_INFO_3W; - -// #ifdef UNICODE -alias DOC_INFO_3W DOC_INFO_3; -alias PDOC_INFO_3W PDOC_INFO_3; -alias LPDOC_INFO_3W LPDOC_INFO_3; -// #else -// ... -// #endif // UNICODE - -enum : uint { DI_MEMORYMAP_WRITE = 0x00000001 } - -enum : uint { FORM_USER = 0x00000000 } -enum : uint { FORM_BUILTIN = 0x00000001 } -enum : uint { FORM_PRINTER = 0x00000002 } - -struct _PRINTPROCESSOR_INFO_1A { - LPSTR pName; -} -alias _PRINTPROCESSOR_INFO_1A PRINTPROCESSOR_INFO_1A; -alias _PRINTPROCESSOR_INFO_1A* PPRINTPROCESSOR_INFO_1A; -alias _PRINTPROCESSOR_INFO_1A* LPPRINTPROCESSOR_INFO_1A; - -struct _PRINTPROCESSOR_INFO_1W { - LPWSTR pName; -} -alias _PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_INFO_1W; -alias _PRINTPROCESSOR_INFO_1W* PPRINTPROCESSOR_INFO_1W; -alias _PRINTPROCESSOR_INFO_1W* LPPRINTPROCESSOR_INFO_1W; - -// #ifdef UNICODE -alias PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_INFO_1; -alias PPRINTPROCESSOR_INFO_1W PPRINTPROCESSOR_INFO_1; -alias LPPRINTPROCESSOR_INFO_1W LPPRINTPROCESSOR_INFO_1; -// #else -// ... -// #endif // UNICODE - -struct _PRINTPROCESSOR_CAPS_1 { - DWORD dwLevel; - DWORD dwNupOptions; - DWORD dwPageOrderFlags; - DWORD dwNumberOfCopies; -} -alias _PRINTPROCESSOR_CAPS_1 PRINTPROCESSOR_CAPS_1; -alias _PRINTPROCESSOR_CAPS_1* PPRINTPROCESSOR_CAPS_1; - -enum : uint { NORMAL_PRINT = 0x00000000 } -enum : uint { REVERSE_PRINT = 0x00000001 } - -struct _PORT_INFO_1A { - LPSTR pName; -} -alias _PORT_INFO_1A PORT_INFO_1A; -alias _PORT_INFO_1A* PPORT_INFO_1A; -alias _PORT_INFO_1A* LPPORT_INFO_1A; - -struct _PORT_INFO_1W { - LPWSTR pName; -} -alias _PORT_INFO_1W PORT_INFO_1W; -alias _PORT_INFO_1W* PPORT_INFO_1W; -alias _PORT_INFO_1W* LPPORT_INFO_1W; - -// #ifdef UNICODE -alias PORT_INFO_1W PORT_INFO_1; -alias PPORT_INFO_1W PPORT_INFO_1; -alias LPPORT_INFO_1W LPPORT_INFO_1; -// #else -// ... -// #endif // UNICODE - -struct _PORT_INFO_2A { - LPSTR pPortName; - LPSTR pMonitorName; - LPSTR pDescription; - DWORD fPortType; - DWORD Reserved; -} -alias _PORT_INFO_2A PORT_INFO_2A; -alias _PORT_INFO_2A* PPORT_INFO_2A; -alias _PORT_INFO_2A* LPPORT_INFO_2A; - -struct _PORT_INFO_2W { - LPWSTR pPortName; - LPWSTR pMonitorName; - LPWSTR pDescription; - DWORD fPortType; - DWORD Reserved; -} -alias _PORT_INFO_2W PORT_INFO_2W; -alias _PORT_INFO_2W* PPORT_INFO_2W; -alias _PORT_INFO_2W* LPPORT_INFO_2W; - -// #ifdef UNICODE -alias PORT_INFO_2W PORT_INFO_2; -alias PPORT_INFO_2W PPORT_INFO_2; -alias LPPORT_INFO_2W LPPORT_INFO_2; -// #else -// ... -// #endif // UNICODE - -enum : uint { PORT_TYPE_WRITE = 0x0001 } -enum : uint { PORT_TYPE_READ = 0x0002 } -enum : uint { PORT_TYPE_REDIRECTED = 0x0004 } -enum : uint { PORT_TYPE_NET_ATTACHED = 0x0008 } - -struct _PORT_INFO_3A { - DWORD dwStatus; - LPSTR pszStatus; - DWORD dwSeverity; -} -alias _PORT_INFO_3A PORT_INFO_3A; -alias _PORT_INFO_3A* PPORT_INFO_3A; -alias _PORT_INFO_3A* LPPORT_INFO_3A; - -struct _PORT_INFO_3W { - DWORD dwStatus; - LPWSTR pszStatus; - DWORD dwSeverity; -} -alias _PORT_INFO_3W PORT_INFO_3W; -alias _PORT_INFO_3W* PPORT_INFO_3W; -alias _PORT_INFO_3W* LPPORT_INFO_3W; - -// #ifdef UNICODE -alias PORT_INFO_3W PORT_INFO_3; -alias PPORT_INFO_3W PPORT_INFO_3; -alias LPPORT_INFO_3W LPPORT_INFO_3; -// #else -// ... -// #endif // UNICODE - -enum : uint { PORT_STATUS_TYPE_ERROR = 1 } -enum : uint { PORT_STATUS_TYPE_WARNING = 2 } -enum : uint { PORT_STATUS_TYPE_INFO = 3 } - -enum : uint { PORT_STATUS_OFFLINE = 1 } -enum : uint { PORT_STATUS_PAPER_JAM = 2 } -enum : uint { PORT_STATUS_PAPER_OUT = 3 } -enum : uint { PORT_STATUS_OUTPUT_BIN_FULL = 4 } -enum : uint { PORT_STATUS_PAPER_PROBLEM = 5 } -enum : uint { PORT_STATUS_NO_TONER = 6 } -enum : uint { PORT_STATUS_DOOR_OPEN = 7 } -enum : uint { PORT_STATUS_USER_INTERVENTION = 8 } -enum : uint { PORT_STATUS_OUT_OF_MEMORY = 9 } - -enum : uint { PORT_STATUS_TONER_LOW = 10 } - -enum : uint { PORT_STATUS_WARMING_UP = 11 } -enum : uint { PORT_STATUS_POWER_SAVE = 12 } - -struct _MONITOR_INFO_1A { - LPSTR pName; -} -alias _MONITOR_INFO_1A MONITOR_INFO_1A; -alias _MONITOR_INFO_1A* PMONITOR_INFO_1A; -alias _MONITOR_INFO_1A* LPMONITOR_INFO_1A; - -struct _MONITOR_INFO_1W { - LPWSTR pName; -} -alias _MONITOR_INFO_1W MONITOR_INFO_1W; -alias _MONITOR_INFO_1W* PMONITOR_INFO_1W; -alias _MONITOR_INFO_1W* LPMONITOR_INFO_1W; - -// #ifdef UNICODE -alias MONITOR_INFO_1W MONITOR_INFO_1; -alias PMONITOR_INFO_1W PMONITOR_INFO_1; -alias LPMONITOR_INFO_1W LPMONITOR_INFO_1; -// #else -// ... -// #endif // UNICODE - -struct _MONITOR_INFO_2A { - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDLLName; -} -alias _MONITOR_INFO_2A MONITOR_INFO_2A; -alias _MONITOR_INFO_2A* PMONITOR_INFO_2A; -alias _MONITOR_INFO_2A* LPMONITOR_INFO_2A; - -struct _MONITOR_INFO_2W { - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDLLName; -} -alias _MONITOR_INFO_2W MONITOR_INFO_2W; -alias _MONITOR_INFO_2W* PMONITOR_INFO_2W; -alias _MONITOR_INFO_2W* LPMONITOR_INFO_2W; - -// #ifdef UNICODE -alias MONITOR_INFO_2W MONITOR_INFO_2; -alias PMONITOR_INFO_2W PMONITOR_INFO_2; -alias LPMONITOR_INFO_2W LPMONITOR_INFO_2; -// #else -// ... -// #endif // UNICODE - -struct _DATATYPES_INFO_1A { - LPSTR pName; -} -alias _DATATYPES_INFO_1A DATATYPES_INFO_1A; -alias _DATATYPES_INFO_1A* PDATATYPES_INFO_1A; -alias _DATATYPES_INFO_1A* LPDATATYPES_INFO_1A; - -struct _DATATYPES_INFO_1W { - LPWSTR pName; -} -alias _DATATYPES_INFO_1W DATATYPES_INFO_1W; -alias _DATATYPES_INFO_1W* PDATATYPES_INFO_1W; -alias _DATATYPES_INFO_1W* LPDATATYPES_INFO_1W; - -// #ifdef UNICODE -alias DATATYPES_INFO_1W DATATYPES_INFO_1; -alias PDATATYPES_INFO_1W PDATATYPES_INFO_1; -alias LPDATATYPES_INFO_1W LPDATATYPES_INFO_1; -// #else -// ... -// #endif // UNICODE - -struct _PRINTER_DEFAULTSA { - LPSTR pDatatype; - LPDEVMODEA pDevMode; - ACCESS_MASK DesiredAccess; -} -alias _PRINTER_DEFAULTSA PRINTER_DEFAULTSA; -alias _PRINTER_DEFAULTSA* PPRINTER_DEFAULTSA; -alias _PRINTER_DEFAULTSA* LPPRINTER_DEFAULTSA; - -struct _PRINTER_DEFAULTSW { - LPWSTR pDatatype; - LPDEVMODEW pDevMode; - ACCESS_MASK DesiredAccess; -} -alias _PRINTER_DEFAULTSW PRINTER_DEFAULTSW; -alias _PRINTER_DEFAULTSW* PPRINTER_DEFAULTSW; -alias _PRINTER_DEFAULTSW* LPPRINTER_DEFAULTSW; - -// #ifdef UNICODE -alias PRINTER_DEFAULTSW PRINTER_DEFAULTS; -alias PPRINTER_DEFAULTSW PPRINTER_DEFAULTS; -alias LPPRINTER_DEFAULTSW LPPRINTER_DEFAULTS; -// #else -// ... -// #endif // UNICODE - -struct _PRINTER_ENUM_VALUESA { - LPSTR pValueName; - DWORD cbValueName; - DWORD dwType; - LPBYTE pData; - DWORD cbData; -} -alias _PRINTER_ENUM_VALUESA PRINTER_ENUM_VALUESA; -alias _PRINTER_ENUM_VALUESA* PPRINTER_ENUM_VALUESA; -alias _PRINTER_ENUM_VALUESA* LPPRINTER_ENUM_VALUESA; - -struct _PRINTER_ENUM_VALUESW { - LPWSTR pValueName; - DWORD cbValueName; - DWORD dwType; - LPBYTE pData; - DWORD cbData; -} -alias _PRINTER_ENUM_VALUESW PRINTER_ENUM_VALUESW; -alias _PRINTER_ENUM_VALUESW* PPRINTER_ENUM_VALUESW; -alias _PRINTER_ENUM_VALUESW* LPPRINTER_ENUM_VALUESW; - -// #ifdef UNICODE -alias PRINTER_ENUM_VALUESW PRINTER_ENUM_VALUES; -alias PPRINTER_ENUM_VALUESW PPRINTER_ENUM_VALUES; -alias LPPRINTER_ENUM_VALUESW LPPRINTER_ENUM_VALUES; -// #else -// ... -// #endif // UNICODE - -extern(Windows) export BOOL EnumPrintersA( - DWORD Flags, - LPSTR Name, - DWORD Level, - LPBYTE pPrinterEnum, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -extern(Windows) export BOOL EnumPrintersW( - DWORD Flags, - LPWSTR Name, - DWORD Level, - LPBYTE pPrinterEnum, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -// #ifdef UNICODE -alias EnumPrintersW EnumPrinters; -// #else -// #... -// #endif // !UNICODE - -enum : uint { PRINTER_ENUM_DEFAULT = 0x00000001 } -enum : uint { PRINTER_ENUM_LOCAL = 0x00000002 } -enum : uint { PRINTER_ENUM_CONNECTIONS = 0x00000004 } -enum : uint { PRINTER_ENUM_FAVORITE = 0x00000004 } -enum : uint { PRINTER_ENUM_NAME = 0x00000008 } -enum : uint { PRINTER_ENUM_REMOTE = 0x00000010 } -enum : uint { PRINTER_ENUM_SHARED = 0x00000020 } -enum : uint { PRINTER_ENUM_NETWORK = 0x00000040 } - -enum : uint { PRINTER_ENUM_EXPAND = 0x00004000 } -enum : uint { PRINTER_ENUM_CONTAINER = 0x00008000 } - -enum : uint { PRINTER_ENUM_ICONMASK = 0x00ff0000 } -enum : uint { PRINTER_ENUM_ICON1 = 0x00010000 } -enum : uint { PRINTER_ENUM_ICON2 = 0x00020000 } -enum : uint { PRINTER_ENUM_ICON3 = 0x00040000 } -enum : uint { PRINTER_ENUM_ICON4 = 0x00080000 } -enum : uint { PRINTER_ENUM_ICON5 = 0x00100000 } -enum : uint { PRINTER_ENUM_ICON6 = 0x00200000 } -enum : uint { PRINTER_ENUM_ICON7 = 0x00400000 } -enum : uint { PRINTER_ENUM_ICON8 = 0x00800000 } -enum : uint { PRINTER_ENUM_HIDE = 0x01000000 } - -enum : uint { SPOOL_FILE_PERSISTENT = 0x00000001 } -enum : uint { SPOOL_FILE_TEMPORARY = 0x00000002 } - -extern(Windows) export BOOL OpenPrinterA( - LPSTR pPrinterName, - LPHANDLE phPrinter, - LPPRINTER_DEFAULTSA pDefault -); -extern(Windows) export BOOL OpenPrinterW( - LPWSTR pPrinterName, - LPHANDLE phPrinter, - LPPRINTER_DEFAULTSW pDefault -); -// #ifdef UNICODE -alias OpenPrinterW OpenPrinter; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ResetPrinterA( - HANDLE hPrinter, - LPPRINTER_DEFAULTSA pDefault -); -extern(Windows) export BOOL ResetPrinterW( - HANDLE hPrinter, - LPPRINTER_DEFAULTSW pDefault -); -// #ifdef UNICODE -alias ResetPrinterW ResetPrinter; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetJobA( - HANDLE hPrinter, - DWORD JobId, - DWORD Level, - LPBYTE pJob, - DWORD Command -); -extern(Windows) export BOOL SetJobW( - HANDLE hPrinter, - DWORD JobId, - DWORD Level, - LPBYTE pJob, - DWORD Command -); -// #ifdef UNICODE -alias SetJobW SetJob; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetJobA( - HANDLE hPrinter, - DWORD JobId, - DWORD Level, - LPBYTE pJob, - DWORD cbBuf, - LPDWORD pcbNeeded -); -extern(Windows) export BOOL GetJobW( - HANDLE hPrinter, - DWORD JobId, - DWORD Level, - LPBYTE pJob, - DWORD cbBuf, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -alias GetJobW GetJob; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumJobsA( - HANDLE hPrinter, - DWORD FirstJob, - DWORD NoJobs, - DWORD Level, - LPBYTE pJob, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -extern(Windows) export BOOL EnumJobsW( - HANDLE hPrinter, - DWORD FirstJob, - DWORD NoJobs, - DWORD Level, - LPBYTE pJob, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -// #ifdef UNICODE -alias EnumJobsW EnumJobs; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HANDLE AddPrinterA( - LPSTR pName, - DWORD Level, - LPBYTE pPrinter -); -extern(Windows) export HANDLE AddPrinterW( - LPWSTR pName, - DWORD Level, - LPBYTE pPrinter -); -// #ifdef UNICODE -alias AddPrinterW AddPrinter; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL DeletePrinter( - HANDLE hPrinter -); - -extern(Windows) export BOOL SetPrinterA( - HANDLE hPrinter, - DWORD Level, - LPBYTE pPrinter, - DWORD Command -); -extern(Windows) export BOOL SetPrinterW( - HANDLE hPrinter, - DWORD Level, - LPBYTE pPrinter, - DWORD Command -); -// #ifdef UNICODE -alias SetPrinterW SetPrinter; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetPrinterA( - HANDLE hPrinter, - DWORD Level, - LPBYTE pPrinter, - DWORD cbBuf, - LPDWORD pcbNeeded -); -extern(Windows) export BOOL GetPrinterW( - HANDLE hPrinter, - DWORD Level, - LPBYTE pPrinter, - DWORD cbBuf, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -alias GetPrinterW GetPrinter; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL AddPrinterDriverA( - LPSTR pName, - DWORD Level, - LPBYTE pDriverInfo -); -extern(Windows) export BOOL AddPrinterDriverW( - LPWSTR pName, - DWORD Level, - LPBYTE pDriverInfo -); -// #ifdef UNICODE -alias AddPrinterDriverW AddPrinterDriver; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL AddPrinterDriverExA( - LPSTR pName, - DWORD Level, - LPBYTE pDriverInfo, - DWORD dwFileCopyFlags -); -extern(Windows) export BOOL AddPrinterDriverExW( - LPWSTR pName, - DWORD Level, - LPBYTE pDriverInfo, - DWORD dwFileCopyFlags -); -// #ifdef UNICODE -alias AddPrinterDriverExW AddPrinterDriverEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumPrinterDriversA( - LPSTR pName, - LPSTR pEnvironment, - DWORD Level, - LPBYTE pDriverInfo, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -extern(Windows) export BOOL EnumPrinterDriversW( - LPWSTR pName, - LPWSTR pEnvironment, - DWORD Level, - LPBYTE pDriverInfo, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -// #ifdef UNICODE -alias EnumPrinterDriversW EnumPrinterDrivers; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetPrinterDriverA( - HANDLE hPrinter, - LPSTR pEnvironment, - DWORD Level, - LPBYTE pDriverInfo, - DWORD cbBuf, - LPDWORD pcbNeeded -); -extern(Windows) export BOOL GetPrinterDriverW( - HANDLE hPrinter, - LPWSTR pEnvironment, - DWORD Level, - LPBYTE pDriverInfo, - DWORD cbBuf, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -alias GetPrinterDriverW GetPrinterDriver; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetPrinterDriverDirectoryA( - LPSTR pName, - LPSTR pEnvironment, - DWORD Level, - LPBYTE pDriverDirectory, - DWORD cbBuf, - LPDWORD pcbNeeded -); -extern(Windows) export BOOL GetPrinterDriverDirectoryW( - LPWSTR pName, - LPWSTR pEnvironment, - DWORD Level, - LPBYTE pDriverDirectory, - DWORD cbBuf, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -alias GetPrinterDriverDirectoryW GetPrinterDriverDirectory; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL DeletePrinterDriverA( - LPSTR pName, - LPSTR pEnvironment, - LPSTR pDriverName -); -extern(Windows) export BOOL DeletePrinterDriverW( - LPWSTR pName, - LPWSTR pEnvironment, - LPWSTR pDriverName -); -// #ifdef UNICODE -alias DeletePrinterDriverW DeletePrinterDriver; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL DeletePrinterDriverExA( - LPSTR pName, - LPSTR pEnvironment, - LPSTR pDriverName, - DWORD dwDeleteFlag, - DWORD dwVersionFlag -); -extern(Windows) export BOOL DeletePrinterDriverExW( - LPWSTR pName, - LPWSTR pEnvironment, - LPWSTR pDriverName, - DWORD dwDeleteFlag, - DWORD dwVersionFlag -); -// #ifdef UNICODE -alias DeletePrinterDriverExW DeletePrinterDriverEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL AddPrintProcessorA( - LPSTR pName, - LPSTR pEnvironment, - LPSTR pPathName, - LPSTR pPrintProcessorName -); -extern(Windows) export BOOL AddPrintProcessorW( - LPWSTR pName, - LPWSTR pEnvironment, - LPWSTR pPathName, - LPWSTR pPrintProcessorName -); -// #ifdef UNICODE -alias AddPrintProcessorW AddPrintProcessor; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumPrintProcessorsA( - LPSTR pName, - LPSTR pEnvironment, - DWORD Level, - LPBYTE pPrintProcessorInfo, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -extern(Windows) export BOOL EnumPrintProcessorsW( - LPWSTR pName, - LPWSTR pEnvironment, - DWORD Level, - LPBYTE pPrintProcessorInfo, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -// #ifdef UNICODE -alias EnumPrintProcessorsW EnumPrintProcessors; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetPrintProcessorDirectoryA( - LPSTR pName, - LPSTR pEnvironment, - DWORD Level, - LPBYTE pPrintProcessorInfo, - DWORD cbBuf, - LPDWORD pcbNeeded -); -extern(Windows) export BOOL GetPrintProcessorDirectoryW( - LPWSTR pName, - LPWSTR pEnvironment, - DWORD Level, - LPBYTE pPrintProcessorInfo, - DWORD cbBuf, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -alias GetPrintProcessorDirectoryW GetPrintProcessorDirectory; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumPrintProcessorDatatypesA( - LPSTR pName, - LPSTR pPrintProcessorName, - DWORD Level, - LPBYTE pDatatypes, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -extern(Windows) export BOOL EnumPrintProcessorDatatypesW( - LPWSTR pName, - LPWSTR pPrintProcessorName, - DWORD Level, - LPBYTE pDatatypes, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -// #ifdef UNICODE -alias EnumPrintProcessorDatatypesW EnumPrintProcessorDatatypes; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL DeletePrintProcessorA( - LPSTR pName, - LPSTR pEnvironment, - LPSTR pPrintProcessorName -); -extern(Windows) export BOOL DeletePrintProcessorW( - LPWSTR pName, - LPWSTR pEnvironment, - LPWSTR pPrintProcessorName -); -// #ifdef UNICODE -alias DeletePrintProcessorW DeletePrintProcessor; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD StartDocPrinterA( - HANDLE hPrinter, - DWORD Level, - LPBYTE pDocInfo -); -extern(Windows) export DWORD StartDocPrinterW( - HANDLE hPrinter, - DWORD Level, - LPBYTE pDocInfo -); -// #ifdef UNICODE -alias StartDocPrinterW StartDocPrinter; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL StartPagePrinter( - HANDLE hPrinter -); - -extern(Windows) export BOOL WritePrinter( - HANDLE hPrinter, - LPVOID pBuf, - DWORD cbBuf, - LPDWORD pcWritten -); - -extern(Windows) export BOOL FlushPrinter( - HANDLE hPrinter, - LPVOID pBuf, - DWORD cbBuf, - LPDWORD pcWritten, - DWORD cSleep -); - -extern(Windows) export BOOL EndPagePrinter( - HANDLE hPrinter -); - -extern(Windows) export BOOL AbortPrinter( - HANDLE hPrinter -); - -extern(Windows) export BOOL ReadPrinter( - HANDLE hPrinter, - LPVOID pBuf, - DWORD cbBuf, - LPDWORD pNoBytesRead -); - -extern(Windows) export BOOL EndDocPrinter( - HANDLE hPrinter -); - -extern(Windows) export BOOL AddJobA( - HANDLE hPrinter, - DWORD Level, - LPBYTE pData, - DWORD cbBuf, - LPDWORD pcbNeeded -); -extern(Windows) export BOOL AddJobW( - HANDLE hPrinter, - DWORD Level, - LPBYTE pData, - DWORD cbBuf, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -alias AddJobW AddJob; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ScheduleJob( - HANDLE hPrinter, - DWORD JobId -); - -extern(Windows) export BOOL PrinterProperties( - HWND hWnd, - HANDLE hPrinter -); - -extern(Windows) export LONG DocumentPropertiesA( - HWND hWnd, - HANDLE hPrinter, - LPSTR pDeviceName, - PDEVMODEA pDevModeOutput, - PDEVMODEA pDevModeInput, - DWORD fMode -); -extern(Windows) export LONG DocumentPropertiesW( - HWND hWnd, - HANDLE hPrinter, - LPWSTR pDeviceName, - PDEVMODEW pDevModeOutput, - PDEVMODEW pDevModeInput, - DWORD fMode -); -// #ifdef UNICODE -alias DocumentPropertiesW DocumentProperties; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG AdvancedDocumentPropertiesA( - HWND hWnd, - HANDLE hPrinter, - LPSTR pDeviceName, - PDEVMODEA pDevModeOutput, - PDEVMODEA pDevModeInput -); -extern(Windows) export LONG AdvancedDocumentPropertiesW( - HWND hWnd, - HANDLE hPrinter, - LPWSTR pDeviceName, - PDEVMODEW pDevModeOutput, - PDEVMODEW pDevModeInput -); -// #ifdef UNICODE -alias AdvancedDocumentPropertiesW AdvancedDocumentProperties; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetPrinterDataA( - HANDLE hPrinter, - LPSTR pValueName, - LPDWORD pType, - LPBYTE pData, - DWORD nSize, - LPDWORD pcbNeeded -); -extern(Windows) export DWORD GetPrinterDataW( - HANDLE hPrinter, - LPWSTR pValueName, - LPDWORD pType, - LPBYTE pData, - DWORD nSize, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -alias GetPrinterDataW GetPrinterData; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetPrinterDataExA( - HANDLE hPrinter, - LPCSTR pKeyName, - LPCSTR pValueName, - LPDWORD pType, - LPBYTE pData, - DWORD nSize, - LPDWORD pcbNeeded -); -extern(Windows) export DWORD GetPrinterDataExW( - HANDLE hPrinter, - LPCWSTR pKeyName, - LPCWSTR pValueName, - LPDWORD pType, - LPBYTE pData, - DWORD nSize, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -alias GetPrinterDataExW GetPrinterDataEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD EnumPrinterDataA( - HANDLE hPrinter, - DWORD dwIndex, - LPSTR pValueName, - DWORD cbValueName, - LPDWORD pcbValueName, - LPDWORD pType, - LPBYTE pData, - DWORD cbData, - LPDWORD pcbData -); -extern(Windows) export DWORD EnumPrinterDataW( - HANDLE hPrinter, - DWORD dwIndex, - LPWSTR pValueName, - DWORD cbValueName, - LPDWORD pcbValueName, - LPDWORD pType, - LPBYTE pData, - DWORD cbData, - LPDWORD pcbData -); -// #ifdef UNICODE -alias EnumPrinterDataW EnumPrinterData; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD EnumPrinterDataExA( - HANDLE hPrinter, - LPCSTR pKeyName, - LPBYTE pEnumValues, - DWORD cbEnumValues, - LPDWORD pcbEnumValues, - LPDWORD pnEnumValues -); -extern(Windows) export DWORD EnumPrinterDataExW( - HANDLE hPrinter, - LPCWSTR pKeyName, - LPBYTE pEnumValues, - DWORD cbEnumValues, - LPDWORD pcbEnumValues, - LPDWORD pnEnumValues -); -// #ifdef UNICODE -alias EnumPrinterDataExW EnumPrinterDataEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD EnumPrinterKeyA( - HANDLE hPrinter, - LPCSTR pKeyName, - LPSTR pSubkey, - DWORD cbSubkey, - LPDWORD pcbSubkey -); -extern(Windows) export DWORD EnumPrinterKeyW( - HANDLE hPrinter, - LPCWSTR pKeyName, - LPWSTR pSubkey, - DWORD cbSubkey, - LPDWORD pcbSubkey -); -// #ifdef UNICODE -alias EnumPrinterKeyW EnumPrinterKey; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD SetPrinterDataA( - HANDLE hPrinter, - LPSTR pValueName, - DWORD Type, - LPBYTE pData, - DWORD cbData -); -extern(Windows) export DWORD SetPrinterDataW( - HANDLE hPrinter, - LPWSTR pValueName, - DWORD Type, - LPBYTE pData, - DWORD cbData -); -// #ifdef UNICODE -alias SetPrinterDataW SetPrinterData; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD SetPrinterDataExA( - HANDLE hPrinter, - LPCSTR pKeyName, - LPCSTR pValueName, - DWORD Type, - LPBYTE pData, - DWORD cbData -); -extern(Windows) export DWORD SetPrinterDataExW( - HANDLE hPrinter, - LPCWSTR pKeyName, - LPCWSTR pValueName, - DWORD Type, - LPBYTE pData, - DWORD cbData -); -// #ifdef UNICODE -alias SetPrinterDataExW SetPrinterDataEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD DeletePrinterDataA( - HANDLE hPrinter, - LPSTR pValueName -); -extern(Windows) export DWORD DeletePrinterDataW( - HANDLE hPrinter, - LPWSTR pValueName -); -// #ifdef UNICODE -alias DeletePrinterDataW DeletePrinterData; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD DeletePrinterDataExA( - HANDLE hPrinter, - LPCSTR pKeyName, - LPCSTR pValueName -); -extern(Windows) export DWORD DeletePrinterDataExW( - HANDLE hPrinter, - LPCWSTR pKeyName, - LPCWSTR pValueName -); -// #ifdef UNICODE -alias DeletePrinterDataExW DeletePrinterDataEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD DeletePrinterKeyA( - HANDLE hPrinter, - LPCSTR pKeyName -); -extern(Windows) export DWORD DeletePrinterKeyW( - HANDLE hPrinter, - LPCWSTR pKeyName -); -// #ifdef UNICODE -alias DeletePrinterKeyW DeletePrinterKey; -// #else -// #... -// #endif // !UNICODE - -enum : uint { PRINTER_NOTIFY_TYPE = 0x00 } -enum : uint { JOB_NOTIFY_TYPE = 0x01 } - -enum : uint { PRINTER_NOTIFY_FIELD_SERVER_NAME = 0x00 } -enum : uint { PRINTER_NOTIFY_FIELD_PRINTER_NAME = 0x01 } -enum : uint { PRINTER_NOTIFY_FIELD_SHARE_NAME = 0x02 } -enum : uint { PRINTER_NOTIFY_FIELD_PORT_NAME = 0x03 } -enum : uint { PRINTER_NOTIFY_FIELD_DRIVER_NAME = 0x04 } -enum : uint { PRINTER_NOTIFY_FIELD_COMMENT = 0x05 } -enum : uint { PRINTER_NOTIFY_FIELD_LOCATION = 0x06 } -enum : uint { PRINTER_NOTIFY_FIELD_DEVMODE = 0x07 } -enum : uint { PRINTER_NOTIFY_FIELD_SEPFILE = 0x08 } -enum : uint { PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR = 0x09 } -enum : uint { PRINTER_NOTIFY_FIELD_PARAMETERS = 0x0A } -enum : uint { PRINTER_NOTIFY_FIELD_DATATYPE = 0x0B } -enum : uint { PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR = 0x0C } -enum : uint { PRINTER_NOTIFY_FIELD_ATTRIBUTES = 0x0D } -enum : uint { PRINTER_NOTIFY_FIELD_PRIORITY = 0x0E } -enum : uint { PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY = 0x0F } -enum : uint { PRINTER_NOTIFY_FIELD_START_TIME = 0x10 } -enum : uint { PRINTER_NOTIFY_FIELD_UNTIL_TIME = 0x11 } -enum : uint { PRINTER_NOTIFY_FIELD_STATUS = 0x12 } -enum : uint { PRINTER_NOTIFY_FIELD_STATUS_STRING = 0x13 } -enum : uint { PRINTER_NOTIFY_FIELD_CJOBS = 0x14 } -enum : uint { PRINTER_NOTIFY_FIELD_AVERAGE_PPM = 0x15 } -enum : uint { PRINTER_NOTIFY_FIELD_TOTAL_PAGES = 0x16 } -enum : uint { PRINTER_NOTIFY_FIELD_PAGES_PRINTED = 0x17 } -enum : uint { PRINTER_NOTIFY_FIELD_TOTAL_BYTES = 0x18 } -enum : uint { PRINTER_NOTIFY_FIELD_BYTES_PRINTED = 0x19 } -enum : uint { PRINTER_NOTIFY_FIELD_OBJECT_GUID = 0x1A } - -enum : uint { JOB_NOTIFY_FIELD_PRINTER_NAME = 0x00 } -enum : uint { JOB_NOTIFY_FIELD_MACHINE_NAME = 0x01 } -enum : uint { JOB_NOTIFY_FIELD_PORT_NAME = 0x02 } -enum : uint { JOB_NOTIFY_FIELD_USER_NAME = 0x03 } -enum : uint { JOB_NOTIFY_FIELD_NOTIFY_NAME = 0x04 } -enum : uint { JOB_NOTIFY_FIELD_DATATYPE = 0x05 } -enum : uint { JOB_NOTIFY_FIELD_PRINT_PROCESSOR = 0x06 } -enum : uint { JOB_NOTIFY_FIELD_PARAMETERS = 0x07 } -enum : uint { JOB_NOTIFY_FIELD_DRIVER_NAME = 0x08 } -enum : uint { JOB_NOTIFY_FIELD_DEVMODE = 0x09 } -enum : uint { JOB_NOTIFY_FIELD_STATUS = 0x0A } -enum : uint { JOB_NOTIFY_FIELD_STATUS_STRING = 0x0B } -enum : uint { JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR = 0x0C } -enum : uint { JOB_NOTIFY_FIELD_DOCUMENT = 0x0D } -enum : uint { JOB_NOTIFY_FIELD_PRIORITY = 0x0E } -enum : uint { JOB_NOTIFY_FIELD_POSITION = 0x0F } -enum : uint { JOB_NOTIFY_FIELD_SUBMITTED = 0x10 } -enum : uint { JOB_NOTIFY_FIELD_START_TIME = 0x11 } -enum : uint { JOB_NOTIFY_FIELD_UNTIL_TIME = 0x12 } -enum : uint { JOB_NOTIFY_FIELD_TIME = 0x13 } -enum : uint { JOB_NOTIFY_FIELD_TOTAL_PAGES = 0x14 } -enum : uint { JOB_NOTIFY_FIELD_PAGES_PRINTED = 0x15 } -enum : uint { JOB_NOTIFY_FIELD_TOTAL_BYTES = 0x16 } -enum : uint { JOB_NOTIFY_FIELD_BYTES_PRINTED = 0x17 } - -struct _PRINTER_NOTIFY_OPTIONS_TYPE { - WORD Type; - WORD Reserved0; - DWORD Reserved1; - DWORD Reserved2; - DWORD Count; - PWORD pFields; -} -alias _PRINTER_NOTIFY_OPTIONS_TYPE PRINTER_NOTIFY_OPTIONS_TYPE; -alias _PRINTER_NOTIFY_OPTIONS_TYPE* PPRINTER_NOTIFY_OPTIONS_TYPE; -alias _PRINTER_NOTIFY_OPTIONS_TYPE* LPPRINTER_NOTIFY_OPTIONS_TYPE; - -enum : uint { PRINTER_NOTIFY_OPTIONS_REFRESH = 0x01 } - -struct _PRINTER_NOTIFY_OPTIONS { - DWORD Version; - DWORD Flags; - DWORD Count; - PPRINTER_NOTIFY_OPTIONS_TYPE pTypes; -} -alias _PRINTER_NOTIFY_OPTIONS PRINTER_NOTIFY_OPTIONS; -alias _PRINTER_NOTIFY_OPTIONS* PPRINTER_NOTIFY_OPTIONS; -alias _PRINTER_NOTIFY_OPTIONS* LPPRINTER_NOTIFY_OPTIONS; - -enum : uint { PRINTER_NOTIFY_INFO_DISCARDED = 0x01 } - -struct _PRINTER_NOTIFY_INFO_DATA { - WORD Type; - WORD Field; - DWORD Reserved; - DWORD Id; -union { - DWORD adwData[2]; -struct { - DWORD cbBuf; - LPVOID pBuf; -} - -} - -} -alias _PRINTER_NOTIFY_INFO_DATA PRINTER_NOTIFY_INFO_DATA; -alias _PRINTER_NOTIFY_INFO_DATA* PPRINTER_NOTIFY_INFO_DATA; -alias _PRINTER_NOTIFY_INFO_DATA* LPPRINTER_NOTIFY_INFO_DATA; - -struct _PRINTER_NOTIFY_INFO { - DWORD Version; - DWORD Flags; - DWORD Count; - PRINTER_NOTIFY_INFO_DATA aData[1]; -} -alias _PRINTER_NOTIFY_INFO PRINTER_NOTIFY_INFO; -alias _PRINTER_NOTIFY_INFO* PPRINTER_NOTIFY_INFO; -alias _PRINTER_NOTIFY_INFO* LPPRINTER_NOTIFY_INFO; - -struct _BINARY_CONTAINER { - DWORD cbBuf; - LPBYTE pData; -} -alias _BINARY_CONTAINER BINARY_CONTAINER; -alias _BINARY_CONTAINER* PBINARY_CONTAINER; - -struct _BIDI_DATA { - DWORD dwBidiType; -union { - BOOL bData; - LONG iData; - LPWSTR sData; - FLOAT fData; - BINARY_CONTAINER biData; -} - -} -alias _BIDI_DATA BIDI_DATA; -alias _BIDI_DATA* PBIDI_DATA; -alias _BIDI_DATA* LPBIDI_DATA; - -struct _BIDI_REQUEST_DATA { - DWORD dwReqNumber; - LPWSTR pSchema; - BIDI_DATA data; -} -alias _BIDI_REQUEST_DATA BIDI_REQUEST_DATA; -alias _BIDI_REQUEST_DATA* PBIDI_REQUEST_DATA; -alias _BIDI_REQUEST_DATA* LPBIDI_REQUEST_DATA; - -struct _BIDI_REQUEST_CONTAINER { - DWORD Version; - DWORD Flags; - DWORD Count; - BIDI_REQUEST_DATA aData[ 1 ]; -} -alias _BIDI_REQUEST_CONTAINER BIDI_REQUEST_CONTAINER; -alias _BIDI_REQUEST_CONTAINER* PBIDI_REQUEST_CONTAINER; -alias _BIDI_REQUEST_CONTAINER* LPBIDI_REQUEST_CONTAINER; - -struct _BIDI_RESPONSE_DATA { - DWORD dwResult; - DWORD dwReqNumber; - LPWSTR pSchema; - BIDI_DATA data; -} -alias _BIDI_RESPONSE_DATA BIDI_RESPONSE_DATA; -alias _BIDI_RESPONSE_DATA* PBIDI_RESPONSE_DATA; -alias _BIDI_RESPONSE_DATA* LPBIDI_RESPONSE_DATA; - -struct _BIDI_RESPONSE_CONTAINER { - DWORD Version; - DWORD Flags; - DWORD Count; - BIDI_RESPONSE_DATA aData[ 1 ]; -} -alias _BIDI_RESPONSE_CONTAINER BIDI_RESPONSE_CONTAINER; -alias _BIDI_RESPONSE_CONTAINER* PBIDI_RESPONSE_CONTAINER; -alias _BIDI_RESPONSE_CONTAINER* LPBIDI_RESPONSE_CONTAINER; - -const wchar[] BIDI_ACTION_ENUM_SCHEMA = "EnumSchema"; -const wchar[] BIDI_ACTION_GET = "Get"; -const wchar[] BIDI_ACTION_SET = "Set"; -const wchar[] BIDI_ACTION_GET_ALL = "GetAll"; - -enum _0 { - BIDI_NULL = 0, - BIDI_INT = 1, - BIDI_FLOAT = 2, - BIDI_BOOL = 3, - BIDI_STRING = 4, - BIDI_TEXT = 5, - BIDI_ENUM = 6, - BIDI_BLOB = 7, -} -alias _0 BIDI_TYPE; - -enum : uint { BIDI_ACCESS_ADMINISTRATOR = 0x1 } -enum : uint { BIDI_ACCESS_USER = 0x2 } - -enum : uint { ERROR_BIDI_STATUS_OK = 0 } -alias ERROR_NOT_SUPPORTED ERROR_BIDI_NOT_SUPPORTED; - -enum : uint { ERROR_BIDI_ERROR_BASE = 13000 } -const uint ERROR_BIDI_STATUS_WARNING = ERROR_BIDI_ERROR_BASE + 1; -const uint ERROR_BIDI_SCHEMA_READ_ONLY = ERROR_BIDI_ERROR_BASE + 2; -const uint ERROR_BIDI_SERVER_OFFLINE = ERROR_BIDI_ERROR_BASE + 3; -const uint ERROR_BIDI_DEVICE_OFFLINE = ERROR_BIDI_ERROR_BASE + 4; -const uint ERROR_BIDI_SCHEMA_NOT_SUPPORTED = ERROR_BIDI_ERROR_BASE + 5; - -extern(Windows) export DWORD WaitForPrinterChange( - HANDLE hPrinter, - DWORD Flags -); - -extern(Windows) export HANDLE FindFirstPrinterChangeNotification( - HANDLE hPrinter, - DWORD fdwFlags, - DWORD fdwOptions, - LPVOID pPrinterNotifyOptions -); - -extern(Windows) export BOOL FindNextPrinterChangeNotification( - HANDLE hChange, - PDWORD pdwChange, - LPVOID pvReserved, - LPVOID *ppPrinterNotifyInfo -); - -extern(Windows) export BOOL FreePrinterNotifyInfo( - PPRINTER_NOTIFY_INFO pPrinterNotifyInfo -); - -extern(Windows) export BOOL FindClosePrinterChangeNotification( - HANDLE hChange -); - -enum : uint { PRINTER_CHANGE_ADD_PRINTER = 0x00000001 } -enum : uint { PRINTER_CHANGE_SET_PRINTER = 0x00000002 } -enum : uint { PRINTER_CHANGE_DELETE_PRINTER = 0x00000004 } -enum : uint { PRINTER_CHANGE_FAILED_CONNECTION_PRINTER = 0x00000008 } -enum : uint { PRINTER_CHANGE_PRINTER = 0x000000FF } -enum : uint { PRINTER_CHANGE_ADD_JOB = 0x00000100 } -enum : uint { PRINTER_CHANGE_SET_JOB = 0x00000200 } -enum : uint { PRINTER_CHANGE_DELETE_JOB = 0x00000400 } -enum : uint { PRINTER_CHANGE_WRITE_JOB = 0x00000800 } -enum : uint { PRINTER_CHANGE_JOB = 0x0000FF00 } -enum : uint { PRINTER_CHANGE_ADD_FORM = 0x00010000 } -enum : uint { PRINTER_CHANGE_SET_FORM = 0x00020000 } -enum : uint { PRINTER_CHANGE_DELETE_FORM = 0x00040000 } -enum : uint { PRINTER_CHANGE_FORM = 0x00070000 } -enum : uint { PRINTER_CHANGE_ADD_PORT = 0x00100000 } -enum : uint { PRINTER_CHANGE_CONFIGURE_PORT = 0x00200000 } -enum : uint { PRINTER_CHANGE_DELETE_PORT = 0x00400000 } -enum : uint { PRINTER_CHANGE_PORT = 0x00700000 } -enum : uint { PRINTER_CHANGE_ADD_PRINT_PROCESSOR = 0x01000000 } -enum : uint { PRINTER_CHANGE_DELETE_PRINT_PROCESSOR = 0x04000000 } -enum : uint { PRINTER_CHANGE_PRINT_PROCESSOR = 0x07000000 } -enum : uint { PRINTER_CHANGE_ADD_PRINTER_DRIVER = 0x10000000 } -enum : uint { PRINTER_CHANGE_SET_PRINTER_DRIVER = 0x20000000 } -enum : uint { PRINTER_CHANGE_DELETE_PRINTER_DRIVER = 0x40000000 } -enum : uint { PRINTER_CHANGE_PRINTER_DRIVER = 0x70000000 } -enum : uint { PRINTER_CHANGE_TIMEOUT = 0x80000000 } -enum : uint { PRINTER_CHANGE_ALL = 0x7777FFFF } - -extern(Windows) export DWORD PrinterMessageBoxA( - HANDLE hPrinter, - DWORD Error, - HWND hWnd, - LPSTR pText, - LPSTR pCaption, - DWORD dwType -); -extern(Windows) export DWORD PrinterMessageBoxW( - HANDLE hPrinter, - DWORD Error, - HWND hWnd, - LPWSTR pText, - LPWSTR pCaption, - DWORD dwType -); -// #ifdef UNICODE -alias PrinterMessageBoxW PrinterMessageBox; -// #else -// #... -// #endif // !UNICODE - -enum : uint { PRINTER_ERROR_INFORMATION = 0x80000000 } -enum : uint { PRINTER_ERROR_WARNING = 0x40000000 } -enum : uint { PRINTER_ERROR_SEVERE = 0x20000000 } - -enum : uint { PRINTER_ERROR_OUTOFPAPER = 0x00000001 } -enum : uint { PRINTER_ERROR_JAM = 0x00000002 } -enum : uint { PRINTER_ERROR_OUTOFTONER = 0x00000004 } - -extern(Windows) export BOOL ClosePrinter( - HANDLE hPrinter -); - -extern(Windows) export BOOL AddFormA( - HANDLE hPrinter, - DWORD Level, - LPBYTE pForm -); -extern(Windows) export BOOL AddFormW( - HANDLE hPrinter, - DWORD Level, - LPBYTE pForm -); -// #ifdef UNICODE -alias AddFormW AddForm; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL DeleteFormA( - HANDLE hPrinter, - LPSTR pFormName -); -extern(Windows) export BOOL DeleteFormW( - HANDLE hPrinter, - LPWSTR pFormName -); -// #ifdef UNICODE -alias DeleteFormW DeleteForm; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetFormA( - HANDLE hPrinter, - LPSTR pFormName, - DWORD Level, - LPBYTE pForm, - DWORD cbBuf, - LPDWORD pcbNeeded -); -extern(Windows) export BOOL GetFormW( - HANDLE hPrinter, - LPWSTR pFormName, - DWORD Level, - LPBYTE pForm, - DWORD cbBuf, - LPDWORD pcbNeeded -); -// #ifdef UNICODE -alias GetFormW GetForm; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetFormA( - HANDLE hPrinter, - LPSTR pFormName, - DWORD Level, - LPBYTE pForm -); -extern(Windows) export BOOL SetFormW( - HANDLE hPrinter, - LPWSTR pFormName, - DWORD Level, - LPBYTE pForm -); -// #ifdef UNICODE -alias SetFormW SetForm; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumFormsA( - HANDLE hPrinter, - DWORD Level, - LPBYTE pForm, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -extern(Windows) export BOOL EnumFormsW( - HANDLE hPrinter, - DWORD Level, - LPBYTE pForm, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -// #ifdef UNICODE -alias EnumFormsW EnumForms; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumMonitorsA( - LPSTR pName, - DWORD Level, - LPBYTE pMonitors, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -extern(Windows) export BOOL EnumMonitorsW( - LPWSTR pName, - DWORD Level, - LPBYTE pMonitors, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -// #ifdef UNICODE -alias EnumMonitorsW EnumMonitors; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL AddMonitorA( - LPSTR pName, - DWORD Level, - LPBYTE pMonitors -); -extern(Windows) export BOOL AddMonitorW( - LPWSTR pName, - DWORD Level, - LPBYTE pMonitors -); -// #ifdef UNICODE -alias AddMonitorW AddMonitor; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL DeleteMonitorA( - LPSTR pName, - LPSTR pEnvironment, - LPSTR pMonitorName -); -extern(Windows) export BOOL DeleteMonitorW( - LPWSTR pName, - LPWSTR pEnvironment, - LPWSTR pMonitorName -); -// #ifdef UNICODE -alias DeleteMonitorW DeleteMonitor; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumPortsA( - LPSTR pName, - DWORD Level, - LPBYTE pPorts, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -extern(Windows) export BOOL EnumPortsW( - LPWSTR pName, - DWORD Level, - LPBYTE pPorts, - DWORD cbBuf, - LPDWORD pcbNeeded, - LPDWORD pcReturned -); -// #ifdef UNICODE -alias EnumPortsW EnumPorts; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL AddPortA( - LPSTR pName, - HWND hWnd, - LPSTR pMonitorName -); -extern(Windows) export BOOL AddPortW( - LPWSTR pName, - HWND hWnd, - LPWSTR pMonitorName -); -// #ifdef UNICODE -alias AddPortW AddPort; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ConfigurePortA( - LPSTR pName, - HWND hWnd, - LPSTR pPortName -); -extern(Windows) export BOOL ConfigurePortW( - LPWSTR pName, - HWND hWnd, - LPWSTR pPortName -); -// #ifdef UNICODE -alias ConfigurePortW ConfigurePort; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL DeletePortA( - LPSTR pName, - HWND hWnd, - LPSTR pPortName -); -extern(Windows) export BOOL DeletePortW( - LPWSTR pName, - HWND hWnd, - LPWSTR pPortName -); -// #ifdef UNICODE -alias DeletePortW DeletePort; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL XcvDataW( - HANDLE hXcv, - PCWSTR pszDataName, - PBYTE pInputData, - DWORD cbInputData, - PBYTE pOutputData, - DWORD cbOutputData, - PDWORD pcbOutputNeeded, - PDWORD pdwStatus -); -alias XcvDataW XcvData; - -extern(Windows) export BOOL GetDefaultPrinterA( - LPSTR pszBuffer, - LPDWORD pcchBuffer - ); -extern(Windows) export BOOL GetDefaultPrinterW( - LPWSTR pszBuffer, - LPDWORD pcchBuffer - ); -// #ifdef UNICODE -alias GetDefaultPrinterW GetDefaultPrinter; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetDefaultPrinterA( - LPCSTR pszPrinter - ); -extern(Windows) export BOOL SetDefaultPrinterW( - LPCWSTR pszPrinter - ); -// #ifdef UNICODE -alias SetDefaultPrinterW SetDefaultPrinter; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetPortA( - LPSTR pName, - LPSTR pPortName, - DWORD dwLevel, - LPBYTE pPortInfo -); -extern(Windows) export BOOL SetPortW( - LPWSTR pName, - LPWSTR pPortName, - DWORD dwLevel, - LPBYTE pPortInfo -); -// #ifdef UNICODE -alias SetPortW SetPort; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL AddPrinterConnectionA( - LPSTR pName -); -extern(Windows) export BOOL AddPrinterConnectionW( - LPWSTR pName -); -// #ifdef UNICODE -alias AddPrinterConnectionW AddPrinterConnection; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL DeletePrinterConnectionA( - LPSTR pName -); -extern(Windows) export BOOL DeletePrinterConnectionW( - LPWSTR pName -); -// #ifdef UNICODE -alias DeletePrinterConnectionW DeletePrinterConnection; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HANDLE ConnectToPrinterDlg( - HWND hwnd, - DWORD Flags -); - -struct _PROVIDOR_INFO_1A { - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDLLName; -} -alias _PROVIDOR_INFO_1A PROVIDOR_INFO_1A; -alias _PROVIDOR_INFO_1A* PPROVIDOR_INFO_1A; -alias _PROVIDOR_INFO_1A* LPPROVIDOR_INFO_1A; - -struct _PROVIDOR_INFO_1W { - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDLLName; -} -alias _PROVIDOR_INFO_1W PROVIDOR_INFO_1W; -alias _PROVIDOR_INFO_1W* PPROVIDOR_INFO_1W; -alias _PROVIDOR_INFO_1W* LPPROVIDOR_INFO_1W; - -// #ifdef UNICODE -alias PROVIDOR_INFO_1W PROVIDOR_INFO_1; -alias PPROVIDOR_INFO_1W PPROVIDOR_INFO_1; -alias LPPROVIDOR_INFO_1W LPPROVIDOR_INFO_1; -// #else -// ... -// #endif // UNICODE - -struct _PROVIDOR_INFO_2A { - LPSTR pOrder; -} -alias _PROVIDOR_INFO_2A PROVIDOR_INFO_2A; -alias _PROVIDOR_INFO_2A* PPROVIDOR_INFO_2A; -alias _PROVIDOR_INFO_2A* LPPROVIDOR_INFO_2A; - -struct _PROVIDOR_INFO_2W { - LPWSTR pOrder; -} -alias _PROVIDOR_INFO_2W PROVIDOR_INFO_2W; -alias _PROVIDOR_INFO_2W* PPROVIDOR_INFO_2W; -alias _PROVIDOR_INFO_2W* LPPROVIDOR_INFO_2W; - -// #ifdef UNICODE -alias PROVIDOR_INFO_2W PROVIDOR_INFO_2; -alias PPROVIDOR_INFO_2W PPROVIDOR_INFO_2; -alias LPPROVIDOR_INFO_2W LPPROVIDOR_INFO_2; -// #else -// ... -// #endif // UNICODE - -extern(Windows) export BOOL AddPrintProvidorA( - LPSTR pName, - DWORD level, - LPBYTE pProvidorInfo -); -extern(Windows) export BOOL AddPrintProvidorW( - LPWSTR pName, - DWORD level, - LPBYTE pProvidorInfo -); -// #ifdef UNICODE -alias AddPrintProvidorW AddPrintProvidor; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL DeletePrintProvidorA( - LPSTR pName, - LPSTR pEnvironment, - LPSTR pPrintProvidorName -); -extern(Windows) export BOOL DeletePrintProvidorW( - LPWSTR pName, - LPWSTR pEnvironment, - LPWSTR pPrintProvidorName -); -// #ifdef UNICODE -alias DeletePrintProvidorW DeletePrintProvidor; -// #else -// #... -// #endif // !UNICODE - -const TCHAR[] SPLREG_DEFAULT_SPOOL_DIRECTORY = "DefaultSpoolDirectory"; -const TCHAR[] SPLREG_PORT_THREAD_PRIORITY_DEFAULT = "PortThreadPriorityDefault"; -const TCHAR[] SPLREG_PORT_THREAD_PRIORITY = "PortThreadPriority"; -const TCHAR[] SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT = "SchedulerThreadPriorityDefault"; -const TCHAR[] SPLREG_SCHEDULER_THREAD_PRIORITY = "SchedulerThreadPriority"; -const TCHAR[] SPLREG_BEEP_ENABLED = "BeepEnabled"; -const TCHAR[] SPLREG_NET_POPUP = "NetPopup"; -const TCHAR[] SPLREG_RETRY_POPUP = "RetryPopup"; -const TCHAR[] SPLREG_NET_POPUP_TO_COMPUTER = "NetPopupToComputer"; -const TCHAR[] SPLREG_EVENT_LOG = "EventLog"; -const TCHAR[] SPLREG_MAJOR_VERSION = "MajorVersion"; -const TCHAR[] SPLREG_MINOR_VERSION = "MinorVersion"; -const TCHAR[] SPLREG_ARCHITECTURE = "Architecture"; -const TCHAR[] SPLREG_OS_VERSION = "OSVersion"; -const TCHAR[] SPLREG_OS_VERSIONEX = "OSVersionEx"; -const TCHAR[] SPLREG_DS_PRESENT = "DsPresent"; -const TCHAR[] SPLREG_DS_PRESENT_FOR_USER = "DsPresentForUser"; -const TCHAR[] SPLREG_REMOTE_FAX = "RemoteFax"; -const TCHAR[] SPLREG_RESTART_JOB_ON_POOL_ERROR = "RestartJobOnPoolError"; -const TCHAR[] SPLREG_RESTART_JOB_ON_POOL_ENABLED = "RestartJobOnPoolEnabled"; -const TCHAR[] SPLREG_DNS_MACHINE_NAME = "DNSMachineName"; - -enum : uint { SERVER_ACCESS_ADMINISTER = 0x00000001 } -enum : uint { SERVER_ACCESS_ENUMERATE = 0x00000002 } - -enum : uint { PRINTER_ACCESS_ADMINISTER = 0x00000004 } -enum : uint { PRINTER_ACCESS_USE = 0x00000008 } - -enum : uint { JOB_ACCESS_ADMINISTER = 0x00000010 } - -const uint SERVER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE; - -const uint SERVER_READ = STANDARD_RIGHTS_READ | SERVER_ACCESS_ENUMERATE; - -const uint SERVER_WRITE = STANDARD_RIGHTS_WRITE | SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE; - -const uint SERVER_EXECUTE = STANDARD_RIGHTS_EXECUTE | SERVER_ACCESS_ENUMERATE; - -const uint PRINTER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | PRINTER_ACCESS_ADMINISTER | PRINTER_ACCESS_USE; - -const uint PRINTER_READ = STANDARD_RIGHTS_READ | PRINTER_ACCESS_USE; - -const uint PRINTER_WRITE = STANDARD_RIGHTS_WRITE | PRINTER_ACCESS_USE; - -const uint PRINTER_EXECUTE = STANDARD_RIGHTS_EXECUTE | PRINTER_ACCESS_USE; - -const uint JOB_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | JOB_ACCESS_ADMINISTER; - -const uint JOB_READ = STANDARD_RIGHTS_READ | JOB_ACCESS_ADMINISTER; - -const uint JOB_WRITE = STANDARD_RIGHTS_WRITE | JOB_ACCESS_ADMINISTER; - -const uint JOB_EXECUTE = STANDARD_RIGHTS_EXECUTE | JOB_ACCESS_ADMINISTER; - -const TCHAR[] SPLDS_SPOOLER_KEY = "DsSpooler"; -const TCHAR[] SPLDS_DRIVER_KEY = "DsDriver"; -const TCHAR[] SPLDS_USER_KEY = "DsUser"; - -const TCHAR[] SPLDS_ASSET_NUMBER = "assetNumber"; -const TCHAR[] SPLDS_BYTES_PER_MINUTE = "bytesPerMinute"; -const TCHAR[] SPLDS_DESCRIPTION = "description"; -const TCHAR[] SPLDS_DRIVER_NAME = "driverName"; -const TCHAR[] SPLDS_DRIVER_VERSION = "driverVersion"; -const TCHAR[] SPLDS_LOCATION = "location"; -const TCHAR[] SPLDS_PORT_NAME = "portName"; -const TCHAR[] SPLDS_PRINT_ATTRIBUTES = "printAttributes"; -const TCHAR[] SPLDS_PRINT_BIN_NAMES = "printBinNames"; -const TCHAR[] SPLDS_PRINT_COLLATE = "printCollate"; -const TCHAR[] SPLDS_PRINT_COLOR = "printColor"; -const TCHAR[] SPLDS_PRINT_DUPLEX_SUPPORTED = "printDuplexSupported"; -const TCHAR[] SPLDS_PRINT_END_TIME = "printEndTime"; -const TCHAR[] SPLDS_PRINTER_CLASS = "printQueue"; -const TCHAR[] SPLDS_PRINTER_NAME = "printerName"; -const TCHAR[] SPLDS_PRINT_KEEP_PRINTED_JOBS = "printKeepPrintedJobs"; -const TCHAR[] SPLDS_PRINT_LANGUAGE = "printLanguage"; -const TCHAR[] SPLDS_PRINT_MAC_ADDRESS = "printMACAddress"; -const TCHAR[] SPLDS_PRINT_MAX_X_EXTENT = "printMaxXExtent"; -const TCHAR[] SPLDS_PRINT_MAX_Y_EXTENT = "printMaxYExtent"; -const TCHAR[] SPLDS_PRINT_MAX_RESOLUTION_SUPPORTED = "printMaxResolutionSupported"; -const TCHAR[] SPLDS_PRINT_MEDIA_READY = "printMediaReady"; -const TCHAR[] SPLDS_PRINT_MEDIA_SUPPORTED = "printMediaSupported"; -const TCHAR[] SPLDS_PRINT_MEMORY = "printMemory"; -const TCHAR[] SPLDS_PRINT_MIN_X_EXTENT = "printMinXExtent"; -const TCHAR[] SPLDS_PRINT_MIN_Y_EXTENT = "printMinYExtent"; -const TCHAR[] SPLDS_PRINT_NETWORK_ADDRESS = "printNetworkAddress"; -const TCHAR[] SPLDS_PRINT_NOTIFY = "printNotify"; -const TCHAR[] SPLDS_PRINT_NUMBER_UP = "printNumberUp"; -const TCHAR[] SPLDS_PRINT_ORIENTATIONS_SUPPORTED = "printOrientationsSupported"; -const TCHAR[] SPLDS_PRINT_OWNER = "printOwner"; -const TCHAR[] SPLDS_PRINT_PAGES_PER_MINUTE = "printPagesPerMinute"; -const TCHAR[] SPLDS_PRINT_RATE = "printRate"; -const TCHAR[] SPLDS_PRINT_RATE_UNIT = "printRateUnit"; -const TCHAR[] SPLDS_PRINT_SEPARATOR_FILE = "printSeparatorFile"; -const TCHAR[] SPLDS_PRINT_SHARE_NAME = "printShareName"; -const TCHAR[] SPLDS_PRINT_SPOOLING = "printSpooling"; -const TCHAR[] SPLDS_PRINT_STAPLING_SUPPORTED = "printStaplingSupported"; -const TCHAR[] SPLDS_PRINT_START_TIME = "printStartTime"; -const TCHAR[] SPLDS_PRINT_STATUS = "printStatus"; -const TCHAR[] SPLDS_PRIORITY = "priority"; -const TCHAR[] SPLDS_SERVER_NAME = "serverName"; -const TCHAR[] SPLDS_SHORT_SERVER_NAME = "shortServerName"; -const TCHAR[] SPLDS_UNC_NAME = "uNCName"; -const TCHAR[] SPLDS_URL = "url"; -const TCHAR[] SPLDS_FLAGS = "flags"; -const TCHAR[] SPLDS_VERSION_NUMBER = "versionNumber"; - -const TCHAR[] SPLDS_PRINTER_NAME_ALIASES = "printerNameAliases"; -const TCHAR[] SPLDS_PRINTER_LOCATIONS = "printerLocations"; -const TCHAR[] SPLDS_PRINTER_MODEL = "printerModel"; - -// #ifdef __cplusplus -// } -// #endif - -// #endif // _WINSPOOL_ +/***********************************************************************\ +* winspool.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.winspool; +pragma(lib, "winspool.lib"); + +private import win32.w32api, win32.windef, win32.wingdi; +private import win32.winbase; // for SYSTEMTIME + +// FIXME: clean up Windows version support + +const DI_CHANNEL=1; +const DI_CHANNEL_WRITE=2; +const DI_READ_SPOOL_JOB=3; + +const FORM_BUILTIN=1; + +const JOB_CONTROL_PAUSE=1; +const JOB_CONTROL_RESUME=2; +const JOB_CONTROL_CANCEL=3; +const JOB_CONTROL_RESTART=4; +const JOB_CONTROL_DELETE=5; +const JOB_STATUS_PAUSED=1; +const JOB_STATUS_ERROR=2; +const JOB_STATUS_DELETING=4; +const JOB_STATUS_SPOOLING=8; +const JOB_STATUS_PRINTING=16; +const JOB_STATUS_OFFLINE=32; +const JOB_STATUS_PAPEROUT=0x40; +const JOB_STATUS_PRINTED=0x80; +const JOB_STATUS_DELETED=0x100; +const JOB_STATUS_BLOCKED_DEVQ=0x200; +const JOB_STATUS_USER_INTERVENTION=0x400; + +const JOB_POSITION_UNSPECIFIED=0; + +const JOB_NOTIFY_TYPE=1; + +const JOB_NOTIFY_FIELD_PRINTER_NAME=0; +const JOB_NOTIFY_FIELD_MACHINE_NAME=1; +const JOB_NOTIFY_FIELD_PORT_NAME=2; +const JOB_NOTIFY_FIELD_USER_NAME=3; +const JOB_NOTIFY_FIELD_NOTIFY_NAME=4; +const JOB_NOTIFY_FIELD_DATATYPE=5; +const JOB_NOTIFY_FIELD_PRINT_PROCESSOR=6; +const JOB_NOTIFY_FIELD_PARAMETERS=7; +const JOB_NOTIFY_FIELD_DRIVER_NAME=8; +const JOB_NOTIFY_FIELD_DEVMODE=9; +const JOB_NOTIFY_FIELD_STATUS=10; +const JOB_NOTIFY_FIELD_STATUS_STRING=11; +const JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR=12; +const JOB_NOTIFY_FIELD_DOCUMENT=13; +const JOB_NOTIFY_FIELD_PRIORITY=14; +const JOB_NOTIFY_FIELD_POSITION=15; +const JOB_NOTIFY_FIELD_SUBMITTED=16; +const JOB_NOTIFY_FIELD_START_TIME=17; +const JOB_NOTIFY_FIELD_UNTIL_TIME=18; +const JOB_NOTIFY_FIELD_TIME=19; +const JOB_NOTIFY_FIELD_TOTAL_PAGES=20; +const JOB_NOTIFY_FIELD_PAGES_PRINTED=21; +const JOB_NOTIFY_FIELD_TOTAL_BYTES=22; +const JOB_NOTIFY_FIELD_BYTES_PRINTED=23; + +const JOB_ACCESS_ADMINISTER = 16; +const JOB_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | JOB_ACCESS_ADMINISTER; +const JOB_READ = STANDARD_RIGHTS_READ | JOB_ACCESS_ADMINISTER; +const JOB_WRITE = STANDARD_RIGHTS_WRITE | JOB_ACCESS_ADMINISTER; +const JOB_EXECUTE = STANDARD_RIGHTS_EXECUTE | JOB_ACCESS_ADMINISTER; + +const PRINTER_NOTIFY_OPTIONS_REFRESH=1; +const PRINTER_ACCESS_ADMINISTER=4; +const PRINTER_ACCESS_USE=8; + +const PRINTER_ERROR_INFORMATION=0x80000000; +const PRINTER_ERROR_WARNING=0x40000000; +const PRINTER_ERROR_SEVERE=0x20000000; +const PRINTER_ERROR_OUTOFPAPER=1; +const PRINTER_ERROR_JAM=2; +const PRINTER_ERROR_OUTOFTONER=4; + +const PRINTER_CONTROL_PAUSE=1; +const PRINTER_CONTROL_RESUME=2; +const PRINTER_CONTROL_PURGE=3; +const PRINTER_CONTROL_SET_STATUS=4; + +const PRINTER_STATUS_PAUSED = 1; +const PRINTER_STATUS_ERROR = 2; +const PRINTER_STATUS_PENDING_DELETION = 4; +const PRINTER_STATUS_PAPER_JAM = 8; +const PRINTER_STATUS_PAPER_OUT = 0x10; +const PRINTER_STATUS_MANUAL_FEED = 0x20; +const PRINTER_STATUS_PAPER_PROBLEM = 0x40; +const PRINTER_STATUS_OFFLINE = 0x80; +const PRINTER_STATUS_IO_ACTIVE = 0x100; +const PRINTER_STATUS_BUSY = 0x200; +const PRINTER_STATUS_PRINTING = 0x400; +const PRINTER_STATUS_OUTPUT_BIN_FULL = 0x800; +const PRINTER_STATUS_NOT_AVAILABLE = 0x1000; +const PRINTER_STATUS_WAITING = 0x2000; +const PRINTER_STATUS_PROCESSING = 0x4000; +const PRINTER_STATUS_INITIALIZING = 0x8000; +const PRINTER_STATUS_WARMING_UP = 0x10000; +const PRINTER_STATUS_TONER_LOW = 0x20000; +const PRINTER_STATUS_NO_TONER = 0x40000; +const PRINTER_STATUS_PAGE_PUNT = 0x80000; +const PRINTER_STATUS_USER_INTERVENTION = 0x100000; +const PRINTER_STATUS_OUT_OF_MEMORY = 0x200000; +const PRINTER_STATUS_DOOR_OPEN = 0x400000; +const PRINTER_STATUS_SERVER_UNKNOWN = 0x800000; +const PRINTER_STATUS_POWER_SAVE = 0x1000000; + +const PRINTER_ATTRIBUTE_QUEUED=1; +const PRINTER_ATTRIBUTE_DIRECT=2; +const PRINTER_ATTRIBUTE_DEFAULT=4; +const PRINTER_ATTRIBUTE_SHARED=8; +const PRINTER_ATTRIBUTE_NETWORK=0x10; +const PRINTER_ATTRIBUTE_HIDDEN=0x20; +const PRINTER_ATTRIBUTE_LOCAL=0x40; +const PRINTER_ATTRIBUTE_ENABLE_DEVQ=0x80; +const PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS=0x100; +const PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST=0x200; +const PRINTER_ATTRIBUTE_WORK_OFFLINE=0x400; +const PRINTER_ATTRIBUTE_ENABLE_BIDI=0x800; +const PRINTER_ATTRIBUTE_RAW_ONLY=0x1000; +const PRINTER_ATTRIBUTE_PUBLISHED=0x2000; + +const PRINTER_ENUM_DEFAULT=1; +const PRINTER_ENUM_LOCAL=2; +const PRINTER_ENUM_CONNECTIONS=4; +const PRINTER_ENUM_FAVORITE=4; +const PRINTER_ENUM_NAME=8; +const PRINTER_ENUM_REMOTE=16; +const PRINTER_ENUM_SHARED=32; +const PRINTER_ENUM_NETWORK=0x40; +const PRINTER_ENUM_EXPAND=0x4000; +const PRINTER_ENUM_CONTAINER=0x8000; +const PRINTER_ENUM_ICONMASK=0xff0000; +const PRINTER_ENUM_ICON1=0x10000; +const PRINTER_ENUM_ICON2=0x20000; +const PRINTER_ENUM_ICON3=0x40000; +const PRINTER_ENUM_ICON4=0x80000; +const PRINTER_ENUM_ICON5=0x100000; +const PRINTER_ENUM_ICON6=0x200000; +const PRINTER_ENUM_ICON7=0x400000; +const PRINTER_ENUM_ICON8=0x800000; + +const PRINTER_NOTIFY_TYPE=0; + +const PRINTER_NOTIFY_FIELD_SERVER_NAME=0; +const PRINTER_NOTIFY_FIELD_PRINTER_NAME=1; +const PRINTER_NOTIFY_FIELD_SHARE_NAME=2; +const PRINTER_NOTIFY_FIELD_PORT_NAME=3; +const PRINTER_NOTIFY_FIELD_DRIVER_NAME=4; +const PRINTER_NOTIFY_FIELD_COMMENT=5; +const PRINTER_NOTIFY_FIELD_LOCATION=6; +const PRINTER_NOTIFY_FIELD_DEVMODE=7; +const PRINTER_NOTIFY_FIELD_SEPFILE=8; +const PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR=9; +const PRINTER_NOTIFY_FIELD_PARAMETERS=10; +const PRINTER_NOTIFY_FIELD_DATATYPE=11; +const PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR=12; +const PRINTER_NOTIFY_FIELD_ATTRIBUTES=13; +const PRINTER_NOTIFY_FIELD_PRIORITY=14; +const PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY=15; +const PRINTER_NOTIFY_FIELD_START_TIME=16; +const PRINTER_NOTIFY_FIELD_UNTIL_TIME=17; +const PRINTER_NOTIFY_FIELD_STATUS=18; +const PRINTER_NOTIFY_FIELD_STATUS_STRING=19; +const PRINTER_NOTIFY_FIELD_CJOBS=20; +const PRINTER_NOTIFY_FIELD_AVERAGE_PPM=21; +const PRINTER_NOTIFY_FIELD_TOTAL_PAGES=22; +const PRINTER_NOTIFY_FIELD_PAGES_PRINTED=23; +const PRINTER_NOTIFY_FIELD_TOTAL_BYTES=24; +const PRINTER_NOTIFY_FIELD_BYTES_PRINTED=25; + +const PRINTER_CHANGE_ADD_PRINTER=1; +const PRINTER_CHANGE_SET_PRINTER=2; +const PRINTER_CHANGE_DELETE_PRINTER=4; +const PRINTER_CHANGE_FAILED_CONNECTION_PRINTER=8; +const PRINTER_CHANGE_PRINTER=0xFF; +const PRINTER_CHANGE_ADD_JOB=0x100; +const PRINTER_CHANGE_SET_JOB=0x200; +const PRINTER_CHANGE_DELETE_JOB=0x400; +const PRINTER_CHANGE_WRITE_JOB=0x800; +const PRINTER_CHANGE_JOB=0xFF00; +const PRINTER_CHANGE_ADD_FORM=0x10000; +const PRINTER_CHANGE_SET_FORM=0x20000; +const PRINTER_CHANGE_DELETE_FORM=0x40000; +const PRINTER_CHANGE_FORM=0x70000; +const PRINTER_CHANGE_ADD_PORT=0x100000; +const PRINTER_CHANGE_CONFIGURE_PORT=0x200000; +const PRINTER_CHANGE_DELETE_PORT=0x400000; +const PRINTER_CHANGE_PORT=0x700000; +const PRINTER_CHANGE_ADD_PRINT_PROCESSOR=0x1000000; +const PRINTER_CHANGE_DELETE_PRINT_PROCESSOR=0x4000000; +const PRINTER_CHANGE_PRINT_PROCESSOR=0x7000000; +const PRINTER_CHANGE_ADD_PRINTER_DRIVER=0x10000000; +const PRINTER_CHANGE_SET_PRINTER_DRIVER=0x20000000; +const PRINTER_CHANGE_DELETE_PRINTER_DRIVER=0x40000000; +const PRINTER_CHANGE_PRINTER_DRIVER=0x70000000; +const PRINTER_CHANGE_TIMEOUT=0x80000000; +const PRINTER_CHANGE_ALL=0x7777FFFF; + +const PRINTER_NOTIFY_INFO_DISCARDED=1; +const PRINTER_ALL_ACCESS=(STANDARD_RIGHTS_REQUIRED|PRINTER_ACCESS_ADMINISTER|PRINTER_ACCESS_USE); +const PRINTER_READ=(STANDARD_RIGHTS_READ|PRINTER_ACCESS_USE); +const PRINTER_WRITE=(STANDARD_RIGHTS_WRITE|PRINTER_ACCESS_USE); +const PRINTER_EXECUTE=(STANDARD_RIGHTS_EXECUTE|PRINTER_ACCESS_USE); +const NO_PRIORITY=0; +const MAX_PRIORITY=99; +const MIN_PRIORITY=1; +const DEF_PRIORITY=1; +const PORT_TYPE_WRITE=1; +const PORT_TYPE_READ=2; +const PORT_TYPE_REDIRECTED=4; +const PORT_TYPE_NET_ATTACHED=8; +const SERVER_ACCESS_ADMINISTER=1; +const SERVER_ACCESS_ENUMERATE=2; + +const SERVER_ALL_ACCESS=(STANDARD_RIGHTS_REQUIRED|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE); +const SERVER_READ=(STANDARD_RIGHTS_READ|SERVER_ACCESS_ENUMERATE); +const SERVER_WRITE=(STANDARD_RIGHTS_WRITE|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE); +const SERVER_EXECUTE=(STANDARD_RIGHTS_EXECUTE|SERVER_ACCESS_ENUMERATE); + +const PORT_STATUS_TYPE_ERROR=1; +const PORT_STATUS_TYPE_WARNING=2; +const PORT_STATUS_TYPE_INFO=3; + +const PORT_STATUS_OFFLINE=1; +const PORT_STATUS_PAPER_JAM=2; +const PORT_STATUS_PAPER_OUT=3; +const PORT_STATUS_OUTPUT_BIN_FULL=4; +const PORT_STATUS_PAPER_PROBLEM=5; +const PORT_STATUS_NO_TONER=6; +const PORT_STATUS_DOOR_OPEN=7; +const PORT_STATUS_USER_INTERVENTION=8; +const PORT_STATUS_OUT_OF_MEMORY=9; +const PORT_STATUS_TONER_LOW=10; +const PORT_STATUS_WARMING_UP=11; +const PORT_STATUS_POWER_SAVE=12; + +struct ADDJOB_INFO_1A { + LPSTR Path; + DWORD JobId; +} +alias ADDJOB_INFO_1A* PADDJOB_INFO_1A, LPADDJOB_INFO_1A; + +struct ADDJOB_INFO_1W { + LPWSTR Path; + DWORD JobId; +} +alias ADDJOB_INFO_1W* PADDJOB_INFO_1W, LPADDJOB_INFO_1W; + +struct DATATYPES_INFO_1A { + LPSTR pName; +} +alias DATATYPES_INFO_1A* PDATATYPES_INFO_1A, LPDATATYPES_INFO_1A; + +struct DATATYPES_INFO_1W { + LPWSTR pName; +} +alias DATATYPES_INFO_1W* PDATATYPES_INFO_1W, LPDATATYPES_INFO_1W; + +struct JOB_INFO_1A { + DWORD JobId; + LPSTR pPrinterName; + LPSTR pMachineName; + LPSTR pUserName; + LPSTR pDocument; + LPSTR pDatatype; + LPSTR pStatus; + DWORD Status; + DWORD Priority; + DWORD Position; + DWORD TotalPages; + DWORD PagesPrinted; + SYSTEMTIME Submitted; +} +alias JOB_INFO_1A* PJOB_INFO_1A, LPJOB_INFO_1A; + +struct JOB_INFO_1W { + DWORD JobId; + LPWSTR pPrinterName; + LPWSTR pMachineName; + LPWSTR pUserName; + LPWSTR pDocument; + LPWSTR pDatatype; + LPWSTR pStatus; + DWORD Status; + DWORD Priority; + DWORD Position; + DWORD TotalPages; + DWORD PagesPrinted; + SYSTEMTIME Submitted; +} +alias JOB_INFO_1W* PJOB_INFO_1W, LPJOB_INFO_1W; + +struct JOB_INFO_2A { + DWORD JobId; + LPSTR pPrinterName; + LPSTR pMachineName; + LPSTR pUserName; + LPSTR pDocument; + LPSTR pNotifyName; + LPSTR pDatatype; + LPSTR pPrintProcessor; + LPSTR pParameters; + LPSTR pDriverName; + LPDEVMODEA pDevMode; + LPSTR pStatus; + PSECURITY_DESCRIPTOR pSecurityDescriptor; + DWORD Status; + DWORD Priority; + DWORD Position; + DWORD StartTime; + DWORD UntilTime; + DWORD TotalPages; + DWORD Size; + SYSTEMTIME Submitted; + DWORD Time; + DWORD PagesPrinted; +} +alias JOB_INFO_2A* PJOB_INFO_2A, LPJOB_INFO_2A; + +struct JOB_INFO_2W { + DWORD JobId; + LPWSTR pPrinterName; + LPWSTR pMachineName; + LPWSTR pUserName; + LPWSTR pDocument; + LPWSTR pNotifyName; + LPWSTR pDatatype; + LPWSTR pPrintProcessor; + LPWSTR pParameters; + LPWSTR pDriverName; + LPDEVMODEW pDevMode; + LPWSTR pStatus; + PSECURITY_DESCRIPTOR pSecurityDescriptor; + DWORD Status; + DWORD Priority; + DWORD Position; + DWORD StartTime; + DWORD UntilTime; + DWORD TotalPages; + DWORD Size; + SYSTEMTIME Submitted; + DWORD Time; + DWORD PagesPrinted; +} +alias JOB_INFO_2W* PJOB_INFO_2W, LPJOB_INFO_2W; + +struct DOC_INFO_1A { + LPSTR pDocName; + LPSTR pOutputFile; + LPSTR pDatatype; +} +alias DOC_INFO_1A* PDOC_INFO_1A, LPDOC_INFO_1A; + +struct DOC_INFO_1W { + LPWSTR pDocName; + LPWSTR pOutputFile; + LPWSTR pDatatype; +} +alias DOC_INFO_1W* PDOC_INFO_1W, LPDOC_INFO_1W; + +struct DOC_INFO_2A { + LPSTR pDocName; + LPSTR pOutputFile; + LPSTR pDatatype; + DWORD dwMode; + DWORD JobId; +} +alias DOC_INFO_2A* PDOC_INFO_2A, LPDOC_INFO_2A; + +struct DOC_INFO_2W { + LPWSTR pDocName; + LPWSTR pOutputFile; + LPWSTR pDatatype; + DWORD dwMode; + DWORD JobId; +} +alias DOC_INFO_2W* PDOC_INFO_2W, LPDOC_INFO_2W; + +struct DRIVER_INFO_1A { + LPSTR pName; +} +alias DRIVER_INFO_1A* PDRIVER_INFO_1A, LPDRIVER_INFO_1A; + +struct DRIVER_INFO_1W { + LPWSTR pName; +} +alias DRIVER_INFO_1W* PDRIVER_INFO_1W, LPDRIVER_INFO_1W; + +struct DRIVER_INFO_2A { + DWORD cVersion; + LPSTR pName; + LPSTR pEnvironment; + LPSTR pDriverPath; + LPSTR pDataFile; + LPSTR pConfigFile; +} +alias DRIVER_INFO_2A* PDRIVER_INFO_2A, LPDRIVER_INFO_2A; + +struct DRIVER_INFO_2W { + DWORD cVersion; + LPWSTR pName; + LPWSTR pEnvironment; + LPWSTR pDriverPath; + LPWSTR pDataFile; + LPWSTR pConfigFile; +} +alias DRIVER_INFO_2W* PDRIVER_INFO_2W, LPDRIVER_INFO_2W; + +struct DRIVER_INFO_3A { + DWORD cVersion; + LPSTR pName; + LPSTR pEnvironment; + LPSTR pDriverPath; + LPSTR pDataFile; + LPSTR pConfigFile; + LPSTR pHelpFile; + LPSTR pDependentFiles; + LPSTR pMonitorName; + LPSTR pDefaultDataType; +} +alias DRIVER_INFO_3A* PDRIVER_INFO_3A, LPDRIVER_INFO_3A; + +struct DRIVER_INFO_3W { + DWORD cVersion; + LPWSTR pName; + LPWSTR pEnvironment; + LPWSTR pDriverPath; + LPWSTR pDataFile; + LPWSTR pConfigFile; + LPWSTR pHelpFile; + LPWSTR pDependentFiles; + LPWSTR pMonitorName; + LPWSTR pDefaultDataType; +} +alias DRIVER_INFO_3W* PDRIVER_INFO_3W, LPDRIVER_INFO_3W; + +struct MONITOR_INFO_1A { + LPSTR pName; +} +alias MONITOR_INFO_1A* PMONITOR_INFO_1A, LPMONITOR_INFO_1A; + +struct MONITOR_INFO_1W { + LPWSTR pName; +} +alias MONITOR_INFO_1W* PMONITOR_INFO_1W, LPMONITOR_INFO_1W; + +struct PORT_INFO_1A { + LPSTR pName; +} +alias PORT_INFO_1A* PPORT_INFO_1A, LPPORT_INFO_1A; + +struct PORT_INFO_1W { + LPWSTR pName; +} +alias PORT_INFO_1W* PPORT_INFO_1W, LPPORT_INFO_1W; + +struct MONITOR_INFO_2A { + LPSTR pName; + LPSTR pEnvironment; + LPSTR pDLLName; +} +alias MONITOR_INFO_2A* PMONITOR_INFO_2A, LPMONITOR_INFO_2A; + +struct MONITOR_INFO_2W { + LPWSTR pName; + LPWSTR pEnvironment; + LPWSTR pDLLName; +} +alias MONITOR_INFO_2W* PMONITOR_INFO_2W, LPMONITOR_INFO_2W; + +struct PORT_INFO_2A { + LPSTR pPortName; + LPSTR pMonitorName; + LPSTR pDescription; + DWORD fPortType; + DWORD Reserved; +} +alias PORT_INFO_2A* PPORT_INFO_2A, LPPORT_INFO_2A; + +struct PORT_INFO_2W { + LPWSTR pPortName; + LPWSTR pMonitorName; + LPWSTR pDescription; + DWORD fPortType; + DWORD Reserved; +} +alias PORT_INFO_2W* PPORT_INFO_2W, LPPORT_INFO_2W; + +struct PORT_INFO_3A { + DWORD dwStatus; + LPSTR pszStatus; + DWORD dwSeverity; +} +alias PORT_INFO_3A* PPORT_INFO_3A, LPPORT_INFO_3A; + +struct PORT_INFO_3W { + DWORD dwStatus; + LPWSTR pszStatus; + DWORD dwSeverity; +} +alias PORT_INFO_3W* PPORT_INFO_3W, LPPORT_INFO_3W; + +struct PRINTER_INFO_1A { + DWORD Flags; + LPSTR pDescription; + LPSTR pName; + LPSTR pComment; +} +alias PRINTER_INFO_1A* PPRINTER_INFO_1A, LPPRINTER_INFO_1A; + +struct PRINTER_INFO_1W { + DWORD Flags; + LPWSTR pDescription; + LPWSTR pName; + LPWSTR pComment; +} +alias PRINTER_INFO_1W* PPRINTER_INFO_1W, LPPRINTER_INFO_1W; + +struct PRINTER_INFO_2A { + LPSTR pServerName; + LPSTR pPrinterName; + LPSTR pShareName; + LPSTR pPortName; + LPSTR pDriverName; + LPSTR pComment; + LPSTR pLocation; + LPDEVMODEA pDevMode; + LPSTR pSepFile; + LPSTR pPrintProcessor; + LPSTR pDatatype; + LPSTR pParameters; + PSECURITY_DESCRIPTOR pSecurityDescriptor; + DWORD Attributes; + DWORD Priority; + DWORD DefaultPriority; + DWORD StartTime; + DWORD UntilTime; + DWORD Status; + DWORD cJobs; + DWORD AveragePPM; +} +alias PRINTER_INFO_2A* PPRINTER_INFO_2A, LPPRINTER_INFO_2A; + +struct PRINTER_INFO_2W { + LPWSTR pServerName; + LPWSTR pPrinterName; + LPWSTR pShareName; + LPWSTR pPortName; + LPWSTR pDriverName; + LPWSTR pComment; + LPWSTR pLocation; + LPDEVMODEW pDevMode; + LPWSTR pSepFile; + LPWSTR pPrintProcessor; + LPWSTR pDatatype; + LPWSTR pParameters; + PSECURITY_DESCRIPTOR pSecurityDescriptor; + DWORD Attributes; + DWORD Priority; + DWORD DefaultPriority; + DWORD StartTime; + DWORD UntilTime; + DWORD Status; + DWORD cJobs; + DWORD AveragePPM; +} +alias PRINTER_INFO_2W* PPRINTER_INFO_2W, LPPRINTER_INFO_2W; + +struct PRINTER_INFO_3 { + PSECURITY_DESCRIPTOR pSecurityDescriptor; +} +alias PRINTER_INFO_3* PPRINTER_INFO_3, LPPRINTER_INFO_3; + +struct PRINTER_INFO_4A { + LPSTR pPrinterName; + LPSTR pServerName; + DWORD Attributes; +} +alias PRINTER_INFO_4A* PPRINTER_INFO_4A, LPPRINTER_INFO_4A; + +struct PRINTER_INFO_4W { + LPWSTR pPrinterName; + LPWSTR pServerName; + DWORD Attributes; +} +alias PRINTER_INFO_4W* PPRINTER_INFO_4W, LPPRINTER_INFO_4W; + +struct PRINTER_INFO_5A { + LPSTR pPrinterName; + LPSTR pPortName; + DWORD Attributes; + DWORD DeviceNotSelectedTimeout; + DWORD TransmissionRetryTimeout; +} +alias PRINTER_INFO_5A* PPRINTER_INFO_5A, LPPRINTER_INFO_5A; + +struct PRINTER_INFO_5W { + LPWSTR pPrinterName; + LPWSTR pPortName; + DWORD Attributes; + DWORD DeviceNotSelectedTimeout; + DWORD TransmissionRetryTimeout; +} +alias PRINTER_INFO_5W* PPRINTER_INFO_5W, LPPRINTER_INFO_5W; + +struct PRINTER_INFO_6 { + DWORD dwStatus; +} +alias PRINTER_INFO_6* PPRINTER_INFO_6, LPPRINTER_INFO_6; + +struct PRINTPROCESSOR_INFO_1A { + LPSTR pName; +} +alias PRINTPROCESSOR_INFO_1A* PPRINTPROCESSOR_INFO_1A, LPPRINTPROCESSOR_INFO_1A; + +struct PRINTPROCESSOR_INFO_1W { + LPWSTR pName; +} +alias PRINTPROCESSOR_INFO_1W* PPRINTPROCESSOR_INFO_1W, LPPRINTPROCESSOR_INFO_1W; + +struct PRINTER_NOTIFY_INFO_DATA { + WORD Type; + WORD Field; + DWORD Reserved; + DWORD Id; + union _NotifyData { + DWORD adwData[2]; + struct Data { + DWORD cbBuf; + PVOID pBuf; + } + } + _NotifyData NotifyData; +} +alias PRINTER_NOTIFY_INFO_DATA* PPRINTER_NOTIFY_INFO_DATA, LPPRINTER_NOTIFY_INFO_DATA; + +struct PRINTER_NOTIFY_INFO { + DWORD Version; + DWORD Flags; + DWORD Count; + PRINTER_NOTIFY_INFO_DATA aData[1]; +} +alias PRINTER_NOTIFY_INFO* PPRINTER_NOTIFY_INFO, LPPRINTER_NOTIFY_INFO; + +struct FORM_INFO_1A { + DWORD Flags; + LPSTR pName; + SIZEL Size; + RECTL ImageableArea; +} +alias FORM_INFO_1A* PFORM_INFO_1A, LPFORM_INFO_1A; + +struct FORM_INFO_1W { + DWORD Flags; + LPWSTR pName; + SIZEL Size; + RECTL ImageableArea; +} +alias FORM_INFO_1W* PFORM_INFO_1W, LPFORM_INFO_1W; + +struct PRINTER_DEFAULTSA { + LPSTR pDatatype; + LPDEVMODE pDevMode; + ACCESS_MASK DesiredAccess; +} +alias PRINTER_DEFAULTSA* PPRINTER_DEFAULTSA, LPPRINTER_DEFAULTSA; + +struct PRINTER_DEFAULTSW { + LPWSTR pDatatype; + LPDEVMODE pDevMode; + ACCESS_MASK DesiredAccess; +} +alias PRINTER_DEFAULTSW* PPRINTER_DEFAULTSW, LPPRINTER_DEFAULTSW; + +extern (Windows): +BOOL AbortPrinter(HANDLE); +BOOL AddFormA(HANDLE, DWORD, PBYTE); +BOOL AddFormW(HANDLE, DWORD, PBYTE); +BOOL AddJobA(HANDLE, DWORD, PBYTE, DWORD, PDWORD); +BOOL AddJobW(HANDLE, DWORD, PBYTE, DWORD, PDWORD); +BOOL AddMonitorA(LPSTR, DWORD, PBYTE); +BOOL AddMonitorW(LPWSTR, DWORD, PBYTE); +BOOL AddPortA(LPSTR, HWND, LPSTR); +BOOL AddPortW(LPWSTR, HWND, LPWSTR); +HANDLE AddPrinterA(LPSTR, DWORD, PBYTE); +HANDLE AddPrinterW(LPWSTR, DWORD, PBYTE); +BOOL AddPrinterConnectionA(LPSTR); +BOOL AddPrinterConnectionW(LPWSTR); +BOOL AddPrinterDriverA(LPSTR, DWORD, PBYTE); +BOOL AddPrinterDriverW(LPWSTR, DWORD, PBYTE); +BOOL AddPrintProcessorA(LPSTR, LPSTR, LPSTR, LPSTR); +BOOL AddPrintProcessorW(LPWSTR, LPWSTR, LPWSTR, LPWSTR); +BOOL AddPrintProvidorA(LPSTR, DWORD, PBYTE); +BOOL AddPrintProvidorW(LPWSTR, DWORD, PBYTE); +LONG AdvancedDocumentPropertiesA(HWND, HANDLE, LPSTR, PDEVMODE, PDEVMODEA); +LONG AdvancedDocumentPropertiesW(HWND, HANDLE, LPWSTR, PDEVMODE, PDEVMODEW); +BOOL ClosePrinter(HANDLE); +BOOL ConfigurePortA(LPSTR, HWND, LPSTR); +BOOL ConfigurePortW(LPWSTR, HWND, LPWSTR); +HANDLE ConnectToPrinterDlg(HWND, DWORD); +BOOL DeleteFormA(HANDLE, LPSTR); +BOOL DeleteFormW(HANDLE, LPWSTR); +BOOL DeleteMonitorA(LPSTR, LPSTR, LPSTR); +BOOL DeleteMonitorW(LPWSTR, LPWSTR, LPWSTR); +BOOL DeletePortA(LPSTR, HWND, LPSTR); +BOOL DeletePortW(LPWSTR, HWND, LPWSTR); +BOOL DeletePrinter(HANDLE); +BOOL DeletePrinterConnectionA(LPSTR); +BOOL DeletePrinterConnectionW(LPWSTR); +DWORD DeletePrinterDataA(HANDLE, LPSTR); +DWORD DeletePrinterDataW(HANDLE, LPWSTR); +BOOL DeletePrinterDriverA(LPSTR, LPSTR, LPSTR); +BOOL DeletePrinterDriverW(LPWSTR, LPWSTR, LPWSTR); +BOOL DeletePrintProcessorA(LPSTR, LPSTR, LPSTR); +BOOL DeletePrintProcessorW(LPWSTR, LPWSTR, LPWSTR); +BOOL DeletePrintProvidorA(LPSTR, LPSTR, LPSTR); +BOOL DeletePrintProvidorW(LPWSTR, LPWSTR, LPWSTR); +LONG DocumentPropertiesA(HWND, HANDLE, LPSTR, PDEVMODEA, PDEVMODEA, DWORD); +LONG DocumentPropertiesW(HWND, HANDLE, LPWSTR, PDEVMODEW, PDEVMODEW, DWORD); +BOOL EndDocPrinter(HANDLE); +BOOL EndPagePrinter(HANDLE); +BOOL EnumFormsA(HANDLE, DWORD, PBYTE, DWORD, PDWORD, PDWORD); +BOOL EnumFormsW(HANDLE, DWORD, PBYTE, DWORD, PDWORD, PDWORD); +BOOL EnumJobsA(HANDLE, DWORD, DWORD, DWORD, PBYTE, DWORD, PDWORD, PDWORD); +BOOL EnumJobsW(HANDLE, DWORD, DWORD, DWORD, PBYTE, DWORD, PDWORD, PDWORD); +BOOL EnumMonitorsA(LPSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD); +BOOL EnumMonitorsW(LPWSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD); +BOOL EnumPortsA(LPSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD); +BOOL EnumPortsW(LPWSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD); +DWORD EnumPrinterDataA(HANDLE, DWORD, LPSTR, DWORD, PDWORD, PDWORD, PBYTE, DWORD, PDWORD); +DWORD EnumPrinterDataW(HANDLE, DWORD, LPWSTR, DWORD, PDWORD, PDWORD, PBYTE, DWORD, PDWORD); +BOOL EnumPrinterDriversA(LPSTR, LPSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD); +BOOL EnumPrinterDriversW(LPWSTR, LPWSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD); +BOOL EnumPrintersA(DWORD, LPSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD); +BOOL EnumPrintersW(DWORD, LPWSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD); +BOOL EnumPrintProcessorDatatypesA(LPSTR, LPSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD); +BOOL EnumPrintProcessorDatatypesW(LPWSTR, LPWSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD); +BOOL EnumPrintProcessorsA(LPSTR, LPSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD); +BOOL EnumPrintProcessorsW(LPWSTR, LPWSTR, DWORD, PBYTE, DWORD, PDWORD, PDWORD); +BOOL FindClosePrinterChangeNotification(HANDLE); +HANDLE FindFirstPrinterChangeNotification(HANDLE, DWORD, DWORD, PVOID); +HANDLE FindNextPrinterChangeNotification(HANDLE, PDWORD, PVOID, PVOID*); +BOOL FreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO); + +static if (_WIN32_WINNT >= 0x0500) { +BOOL GetDefaultPrinterA(LPSTR, LPDWORD); +BOOL GetDefaultPrinterW(LPWSTR, LPDWORD); +} + +BOOL GetFormA(HANDLE, LPSTR, DWORD, PBYTE, DWORD, PDWORD); +BOOL GetFormW(HANDLE, LPWSTR, DWORD, PBYTE, DWORD, PDWORD); +BOOL GetJobA(HANDLE, DWORD, DWORD, PBYTE, DWORD, PDWORD); +BOOL GetJobW(HANDLE, DWORD, DWORD, PBYTE, DWORD, PDWORD); +BOOL GetPrinterA(HANDLE, DWORD, PBYTE, DWORD, PDWORD); +BOOL GetPrinterW(HANDLE, DWORD, PBYTE, DWORD, PDWORD); +DWORD GetPrinterDataA(HANDLE, LPSTR, PDWORD, PBYTE, DWORD, PDWORD); +DWORD GetPrinterDataW(HANDLE, LPWSTR, PDWORD, PBYTE, DWORD, PDWORD); +DWORD GetPrinterDriverA(HANDLE, LPSTR, DWORD, PBYTE, DWORD, PDWORD); +DWORD GetPrinterDriverW(HANDLE, LPWSTR, DWORD, PBYTE, DWORD, PDWORD); +DWORD GetPrinterDriverDirectoryA(LPSTR, LPSTR, DWORD, PBYTE, DWORD, PDWORD); +DWORD GetPrinterDriverDirectoryW(LPWSTR, LPWSTR, DWORD, PBYTE, DWORD, PDWORD); +DWORD GetPrintProcessorDirectoryA(LPSTR, LPSTR, DWORD, PBYTE, DWORD, PDWORD); +DWORD GetPrintProcessorDirectoryW(LPWSTR, LPWSTR, DWORD, PBYTE, DWORD, PDWORD); +BOOL OpenPrinterA(LPSTR, PHANDLE, LPPRINTER_DEFAULTSA); +BOOL OpenPrinterW(LPWSTR, PHANDLE, LPPRINTER_DEFAULTSW); +DWORD PrinterMessageBoxA(HANDLE, DWORD, HWND, LPSTR, LPSTR, DWORD); +DWORD PrinterMessageBoxW(HANDLE, DWORD, HWND, LPWSTR, LPWSTR, DWORD); +BOOL PrinterProperties(HWND, HANDLE); +BOOL ReadPrinter(HANDLE, PVOID, DWORD, PDWORD); +BOOL ResetPrinterA(HANDLE, LPPRINTER_DEFAULTSA); +BOOL ResetPrinterW(HANDLE, LPPRINTER_DEFAULTSW); +BOOL ScheduleJob(HANDLE, DWORD); +BOOL SetFormA(HANDLE, LPSTR, DWORD, PBYTE); +BOOL SetFormW(HANDLE, LPWSTR, DWORD, PBYTE); +BOOL SetJobA(HANDLE, DWORD, DWORD, PBYTE, DWORD); +BOOL SetJobW(HANDLE, DWORD, DWORD, PBYTE, DWORD); +BOOL SetPrinterA(HANDLE, DWORD, PBYTE, DWORD); +BOOL SetPrinterW(HANDLE, DWORD, PBYTE, DWORD); +BOOL SetPrinterDataA(HANDLE, LPSTR, DWORD, PBYTE, DWORD); +BOOL SetPrinterDataW(HANDLE, LPWSTR, DWORD, PBYTE, DWORD); +DWORD StartDocPrinterA(HANDLE, DWORD, PBYTE); +DWORD StartDocPrinterW(HANDLE, DWORD, PBYTE); +BOOL StartPagePrinter(HANDLE); +DWORD WaitForPrinterChange(HANDLE, DWORD); +BOOL WritePrinter(HANDLE, PVOID, DWORD, PDWORD); + +version(Unicode) { + +alias JOB_INFO_1W JOB_INFO_1; +alias JOB_INFO_2W JOB_INFO_2; +alias ADDJOB_INFO_1W ADDJOB_INFO_1; +alias DATATYPES_INFO_1W DATATYPES_INFO_1; +alias MONITOR_INFO_1W MONITOR_INFO_1; +alias MONITOR_INFO_2W MONITOR_INFO_2; +alias DOC_INFO_1W DOC_INFO_1; +alias DOC_INFO_2W DOC_INFO_2; +alias PORT_INFO_1W PORT_INFO_1; +alias PORT_INFO_2W PORT_INFO_2; +alias PORT_INFO_3W PORT_INFO_3; +alias DRIVER_INFO_2W DRIVER_INFO_2; +alias PRINTER_INFO_1W PRINTER_INFO_1; +alias PRINTER_INFO_2W PRINTER_INFO_2; +alias PRINTER_INFO_4W PRINTER_INFO_4; +alias PRINTER_INFO_5W PRINTER_INFO_5; +alias PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_INFO_1; +alias FORM_INFO_1W FORM_INFO_1; +alias PRINTER_DEFAULTSW PRINTER_DEFAULTS; + +alias AddFormW AddForm; +alias AddJobW AddJob; +alias AddMonitorW AddMonitor; +alias AddPortW AddPort; +alias AddPrinterW AddPrinter; +alias AddPrinterConnectionW AddPrinterConnection; +alias AddPrinterDriverW AddPrinterDriver; +alias AddPrintProcessorW AddPrintProcessor; +alias AddPrintProvidorW AddPrintProvidor; +alias AdvancedDocumentPropertiesW AdvancedDocumentProperties; +alias ConfigurePortW ConfigurePort; +alias DeleteFormW DeleteForm; +alias DeleteMonitorW DeleteMonitor; +alias DeletePortW DeletePort; +alias DeletePrinterConnectionW DeletePrinterConnection; +alias DeletePrinterDataW DeletePrinterData; +alias DeletePrinterDriverW DeletePrinterDriver; +alias DeletePrintProcessorW DeletePrintProcessor; +alias DeletePrintProvidorW DeletePrintProvidor; +alias DocumentPropertiesW DocumentProperties; +alias EnumFormsW EnumForms; +alias EnumJobsW EnumJobs; +alias EnumMonitorsW EnumMonitors; +alias EnumPortsW EnumPorts; +alias EnumPrinterDataW EnumPrinterData; +alias EnumPrinterDriversW EnumPrinterDrivers; +alias EnumPrintersW EnumPrinters; +alias EnumPrintProcessorDatatypesW EnumPrintProcessorDatatypes; +alias EnumPrintProcessorsW EnumPrintProcessors; + +static if (_WIN32_WINNT >= 0x0500) { +alias GetDefaultPrinterW GetDefaultPrinter; +} + +alias GetFormW GetForm; +alias GetJobW GetJob; +alias GetPrinterW GetPrinter; +alias GetPrinterDataW GetPrinterData; +alias GetPrinterDriverW GetPrinterDriver; +alias GetPrinterDriverDirectoryW GetPrinterDriverDirectory; +alias GetPrintProcessorDirectoryW GetPrintProcessorDirectory; +alias OpenPrinterW OpenPrinter; +alias PrinterMessageBoxW PrinterMessageBox; +alias ResetPrinterW ResetPrinter; +alias SetFormW SetForm; +alias SetJobW SetJob; +alias SetPrinterW SetPrinter; +alias SetPrinterDataW SetPrinterData; +alias StartDocPrinterW StartDocPrinter; + +} else { + +alias JOB_INFO_1A JOB_INFO_1; +alias JOB_INFO_2A JOB_INFO_2; +alias ADDJOB_INFO_1A ADDJOB_INFO_1; +alias DATATYPES_INFO_1A DATATYPES_INFO_1; +alias MONITOR_INFO_1A MONITOR_INFO_1; +alias MONITOR_INFO_2A MONITOR_INFO_2; +alias DOC_INFO_1A DOC_INFO_1; +alias DOC_INFO_2A DOC_INFO_2; +alias PORT_INFO_1A PORT_INFO_1; +alias PORT_INFO_2A PORT_INFO_2; +alias PORT_INFO_3A PORT_INFO_3; +alias DRIVER_INFO_2A DRIVER_INFO_2; +alias PRINTER_INFO_1A PRINTER_INFO_1; +alias PRINTER_INFO_2A PRINTER_INFO_2; +alias PRINTER_INFO_4A PRINTER_INFO_4; +alias PRINTER_INFO_5A PRINTER_INFO_5; +alias PRINTPROCESSOR_INFO_1A PRINTPROCESSOR_INFO_1; +alias FORM_INFO_1A FORM_INFO_1; +alias PRINTER_DEFAULTSA PRINTER_DEFAULTS; + +alias AddFormA AddForm; +alias AddJobA AddJob; +alias AddMonitorA AddMonitor; +alias AddPortA AddPort; +alias AddPrinterA AddPrinter; +alias AddPrinterConnectionA AddPrinterConnection; +alias AddPrinterDriverA AddPrinterDriver; +alias AddPrintProcessorA AddPrintProcessor; +alias AddPrintProvidorA AddPrintProvidor; +alias AdvancedDocumentPropertiesA AdvancedDocumentProperties; +alias ConfigurePortA ConfigurePort; +alias DeleteFormA DeleteForm; +alias DeleteMonitorA DeleteMonitor; +alias DeletePortA DeletePort; +alias DeletePrinterConnectionA DeletePrinterConnection; +alias DeletePrinterDataA DeletePrinterData; +alias DeletePrinterDriverA DeletePrinterDriver; +alias DeletePrintProcessorA DeletePrintProcessor; +alias DeletePrintProvidorA DeletePrintProvidor; +alias DocumentPropertiesA DocumentProperties; +alias EnumFormsA EnumForms; +alias EnumJobsA EnumJobs; +alias EnumMonitorsA EnumMonitors; +alias EnumPortsA EnumPorts; +alias EnumPrinterDataA EnumPrinterData; +alias EnumPrinterDriversA EnumPrinterDrivers; +alias EnumPrintersA EnumPrinters; +alias EnumPrintProcessorDatatypesA EnumPrintProcessorDatatypes; +alias EnumPrintProcessorsA EnumPrintProcessors; + +static if (_WIN32_WINNT >= 0x0500) { +alias GetDefaultPrinterA GetDefaultPrinter; +} + +alias GetFormA GetForm; +alias GetJobA GetJob; +alias GetPrinterA GetPrinter; +alias GetPrinterDataA GetPrinterData; +alias GetPrinterDriverA GetPrinterDriver; +alias GetPrinterDriverDirectoryA GetPrinterDriverDirectory; +alias GetPrintProcessorDirectoryA GetPrintProcessorDirectory; +alias OpenPrinterA OpenPrinter; +alias PrinterMessageBoxA PrinterMessageBox; +alias ResetPrinterA ResetPrinter; +alias SetFormA SetForm; +alias SetJobA SetJob; +alias SetPrinterA SetPrinter; +alias SetPrinterDataA SetPrinterData; +alias StartDocPrinterA StartDocPrinter; +} + +alias JOB_INFO_1* PJOB_INFO_1, LPJOB_INFO_1; +alias JOB_INFO_2* PJOB_INFO_2, LPJOB_INFO_2; +alias ADDJOB_INFO_1* PADDJOB_INFO_1, LPADDJOB_INFO_1; +alias DATATYPES_INFO_1* PDATATYPES_INFO_1, LPDATATYPES_INFO_1; +alias MONITOR_INFO_1* PMONITOR_INFO_1, LPMONITOR_INFO_1; +alias MONITOR_INFO_2* PMONITOR_INFO_2, LPMONITOR_INFO_2; +alias DOC_INFO_1* PDOC_INFO_1, LPDOC_INFO_1; +alias DOC_INFO_2* PDOC_INFO_2, LPDOC_INFO_2; +alias PORT_INFO_1* PPORT_INFO_1, LPPORT_INFO_1; +alias PORT_INFO_2* PPORT_INFO_2, LPPORT_INFO_2; +alias PORT_INFO_3* PPORT_INFO_3, LPPORT_INFO_3; +alias DRIVER_INFO_2* PDRIVER_INFO_2, LPDRIVER_INFO_2; +alias PRINTER_INFO_1* PPRINTER_INFO_1, LPPRINTER_INFO_1; +alias PRINTER_INFO_2* PPRINTER_INFO_2, LPPRINTER_INFO_2; +alias PRINTER_INFO_4* PPRINTER_INFO_4, LPPRINTER_INFO_4; +alias PRINTER_INFO_5* PPRINTER_INFO_5, LPPRINTER_INFO_5; +alias PRINTPROCESSOR_INFO_1* PPRINTPROCESSOR_INFO_1, LPPRINTPROCESSOR_INFO_1; +alias FORM_INFO_1* PFORM_INFO_1, LPFORM_INFO_1; +alias PRINTER_DEFAULTS* PPRINTER_DEFAULTS, LPPRINTER_DEFAULTS; ADDED src/win32/winsvc.d Index: src/win32/winsvc.d ================================================================== --- src/win32/winsvc.d +++ src/win32/winsvc.d @@ -0,0 +1,430 @@ +/***********************************************************************\ +* winsvc.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.winsvc; +pragma(lib, "advapi32.lib"); + +private import win32.w32api, win32.windef; + +static assert (_WIN32_WINNT_ONLY, + "win32.winsvc is available only if version WindowsNTonly, WindowsXP, " + "Windows2003 or WindowsVista is set"); + + +// FIXME: check Windows version support + +const TCHAR[] + SERVICES_ACTIVE_DATABASE = "ServicesActive", + SERVICES_FAILED_DATABASE = "ServicesFailed"; + +const TCHAR SC_GROUP_IDENTIFIER = '+'; + +const DWORD + SC_MANAGER_ALL_ACCESS = 0xf003f, + SC_MANAGER_CONNECT = 1, + SC_MANAGER_CREATE_SERVICE = 2, + SC_MANAGER_ENUMERATE_SERVICE = 4, + SC_MANAGER_LOCK = 8, + SC_MANAGER_QUERY_LOCK_STATUS = 16, + SC_MANAGER_MODIFY_BOOT_CONFIG = 32; + +const DWORD SERVICE_NO_CHANGE = 0xffffffff; + +enum : DWORD { + SERVICE_STOPPED = 1, + SERVICE_START_PENDING, + SERVICE_STOP_PENDING, + SERVICE_RUNNING, + SERVICE_CONTINUE_PENDING, + SERVICE_PAUSE_PENDING, + SERVICE_PAUSED // = 7 +} + +const DWORD + SERVICE_ACCEPT_STOP = 1, + SERVICE_ACCEPT_PAUSE_CONTINUE = 2, + SERVICE_ACCEPT_SHUTDOWN = 4, + SERVICE_ACCEPT_PARAMCHANGE = 8, + SERVICE_ACCEPT_NETBINDCHANGE = 16, + SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 32, + SERVICE_ACCEPT_POWEREVENT = 64, + SERVICE_ACCEPT_SESSIONCHANGE = 128; + +enum : DWORD { + SERVICE_CONTROL_STOP = 1, + SERVICE_CONTROL_PAUSE, + SERVICE_CONTROL_CONTINUE, + SERVICE_CONTROL_INTERROGATE, + SERVICE_CONTROL_SHUTDOWN, + SERVICE_CONTROL_PARAMCHANGE, + SERVICE_CONTROL_NETBINDADD, + SERVICE_CONTROL_NETBINDREMOVE, + SERVICE_CONTROL_NETBINDENABLE, + SERVICE_CONTROL_NETBINDDISABLE, + SERVICE_CONTROL_DEVICEEVENT, + SERVICE_CONTROL_HARDWAREPROFILECHANGE, + SERVICE_CONTROL_POWEREVENT, + SERVICE_CONTROL_SESSIONCHANGE, // = 14 +} + +enum : DWORD { + SERVICE_ACTIVE = 1, + SERVICE_INACTIVE, + SERVICE_STATE_ALL +} + +const DWORD + SERVICE_QUERY_CONFIG = 0x0001, + SERVICE_CHANGE_CONFIG = 0x0002, + SERVICE_QUERY_STATUS = 0x0004, + SERVICE_ENUMERATE_DEPENDENTS = 0x0008, + SERVICE_START = 0x0010, + SERVICE_STOP = 0x0020, + SERVICE_PAUSE_CONTINUE = 0x0040, + SERVICE_INTERROGATE = 0x0080, + SERVICE_USER_DEFINED_CONTROL = 0x0100, + SERVICE_ALL_ACCESS = 0x01FF | STANDARD_RIGHTS_REQUIRED; + +// This is not documented on the MSDN site +const SERVICE_RUNS_IN_SYSTEM_PROCESS = 1; + +enum : DWORD { + SERVICE_CONFIG_DESCRIPTION = 1, + SERVICE_CONFIG_FAILURE_ACTIONS, + SERVICE_CONFIG_DELAYED_AUTO_START_INFO, + SERVICE_CONFIG_FAILURE_ACTIONS_FLAG, + SERVICE_CONFIG_SERVICE_SID_INFO, + SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO, + SERVICE_CONFIG_PRESHUTDOWN_INFO // = 7 +} + +struct SERVICE_STATUS { + DWORD dwServiceType; + DWORD dwCurrentState; + DWORD dwControlsAccepted; + DWORD dwWin32ExitCode; + DWORD dwServiceSpecificExitCode; + DWORD dwCheckPoint; + DWORD dwWaitHint; +} +alias SERVICE_STATUS* LPSERVICE_STATUS; + +struct ENUM_SERVICE_STATUSA { + LPSTR lpServiceName; + LPSTR lpDisplayName; + SERVICE_STATUS ServiceStatus; +} +alias ENUM_SERVICE_STATUSA* LPENUM_SERVICE_STATUSA; + +struct ENUM_SERVICE_STATUSW { + LPWSTR lpServiceName; + LPWSTR lpDisplayName; + SERVICE_STATUS ServiceStatus; +} +alias ENUM_SERVICE_STATUSW* LPENUM_SERVICE_STATUSW; + +struct QUERY_SERVICE_CONFIGA { + DWORD dwServiceType; + DWORD dwStartType; + DWORD dwErrorControl; + LPSTR lpBinaryPathName; + LPSTR lpLoadOrderGroup; + DWORD dwTagId; + LPSTR lpDependencies; + LPSTR lpServiceStartName; + LPSTR lpDisplayName; +} +alias QUERY_SERVICE_CONFIGA* LPQUERY_SERVICE_CONFIGA; + +struct QUERY_SERVICE_CONFIGW { + DWORD dwServiceType; + DWORD dwStartType; + DWORD dwErrorControl; + LPWSTR lpBinaryPathName; + LPWSTR lpLoadOrderGroup; + DWORD dwTagId; + LPWSTR lpDependencies; + LPWSTR lpServiceStartName; + LPWSTR lpDisplayName; +} +alias QUERY_SERVICE_CONFIGW* LPQUERY_SERVICE_CONFIGW; + +struct QUERY_SERVICE_LOCK_STATUSA { + DWORD fIsLocked; + LPSTR lpLockOwner; + DWORD dwLockDuration; +} +alias QUERY_SERVICE_LOCK_STATUSA* LPQUERY_SERVICE_LOCK_STATUSA; + +struct QUERY_SERVICE_LOCK_STATUSW { + DWORD fIsLocked; + LPWSTR lpLockOwner; + DWORD dwLockDuration; +} +alias QUERY_SERVICE_LOCK_STATUSW* LPQUERY_SERVICE_LOCK_STATUSW; + +extern (Windows) { + alias void function(DWORD, LPSTR*) LPSERVICE_MAIN_FUNCTIONA; + alias void function(DWORD, LPWSTR*) LPSERVICE_MAIN_FUNCTIONW; +} + +struct SERVICE_TABLE_ENTRYA { + LPSTR lpServiceName; + LPSERVICE_MAIN_FUNCTIONA lpServiceProc; +} +alias SERVICE_TABLE_ENTRYA* LPSERVICE_TABLE_ENTRYA; + +struct SERVICE_TABLE_ENTRYW { + LPWSTR lpServiceName; + LPSERVICE_MAIN_FUNCTIONW lpServiceProc; +} +alias SERVICE_TABLE_ENTRYW* LPSERVICE_TABLE_ENTRYW; + +alias HANDLE SC_HANDLE; +alias HANDLE* LPSC_HANDLE; +alias void* SC_LOCK; +alias DWORD SERVICE_STATUS_HANDLE; + +extern (Windows) { + alias void function(DWORD) LPHANDLER_FUNCTION; + alias DWORD function(DWORD, DWORD, LPVOID, LPVOID) LPHANDLER_FUNCTION_EX; +} + +static if (_WIN32_WINNT >= 0x500) { + struct SERVICE_STATUS_PROCESS { + DWORD dwServiceType; + DWORD dwCurrentState; + DWORD dwControlsAccepted; + DWORD dwWin32ExitCode; + DWORD dwServiceSpecificExitCode; + DWORD dwCheckPoint; + DWORD dwWaitHint; + DWORD dwProcessId; + DWORD dwServiceFlags; + } + alias SERVICE_STATUS_PROCESS* LPSERVICE_STATUS_PROCESS; + + enum SC_STATUS_TYPE { + SC_STATUS_PROCESS_INFO = 0 + } + + enum SC_ENUM_TYPE { + SC_ENUM_PROCESS_INFO = 0 + } + + struct ENUM_SERVICE_STATUS_PROCESSA { + LPSTR lpServiceName; + LPSTR lpDisplayName; + SERVICE_STATUS_PROCESS ServiceStatusProcess; + } + alias ENUM_SERVICE_STATUS_PROCESSA* LPENUM_SERVICE_STATUS_PROCESSA; + + struct ENUM_SERVICE_STATUS_PROCESSW { + LPWSTR lpServiceName; + LPWSTR lpDisplayName; + SERVICE_STATUS_PROCESS ServiceStatusProcess; + } + alias ENUM_SERVICE_STATUS_PROCESSW* LPENUM_SERVICE_STATUS_PROCESSW; + + struct SERVICE_DESCRIPTIONA { + LPSTR lpDescription; + } + alias SERVICE_DESCRIPTIONA* LPSERVICE_DESCRIPTIONA; + + struct SERVICE_DESCRIPTIONW { + LPWSTR lpDescription; + } + alias SERVICE_DESCRIPTIONW* LPSERVICE_DESCRIPTIONW; + + enum SC_ACTION_TYPE { + SC_ACTION_NONE, + SC_ACTION_RESTART, + SC_ACTION_REBOOT, + SC_ACTION_RUN_COMMAND + } + + struct SC_ACTION { + SC_ACTION_TYPE Type; + DWORD Delay; + } + alias SC_ACTION* LPSC_ACTION; + + struct SERVICE_FAILURE_ACTIONSA { + DWORD dwResetPeriod; + LPSTR lpRebootMsg; + LPSTR lpCommand; + DWORD cActions; + SC_ACTION* lpsaActions; + } + alias SERVICE_FAILURE_ACTIONSA* LPSERVICE_FAILURE_ACTIONSA; + + struct SERVICE_FAILURE_ACTIONSW { + DWORD dwResetPeriod; + LPWSTR lpRebootMsg; + LPWSTR lpCommand; + DWORD cActions; + SC_ACTION* lpsaActions; + } + alias SERVICE_FAILURE_ACTIONSW* LPSERVICE_FAILURE_ACTIONSW; +} + +extern (Windows) { + BOOL ChangeServiceConfigA(SC_HANDLE, DWORD, DWORD, DWORD, LPCSTR, + LPCSTR, LPDWORD, LPCSTR, LPCSTR, LPCSTR, LPCSTR); + BOOL ChangeServiceConfigW(SC_HANDLE, DWORD, DWORD, DWORD, LPCWSTR, + LPCWSTR, LPDWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR); + BOOL CloseServiceHandle(SC_HANDLE); + BOOL ControlService(SC_HANDLE, DWORD, LPSERVICE_STATUS); + SC_HANDLE CreateServiceA(SC_HANDLE, LPCSTR, LPCSTR, DWORD, DWORD, + DWORD, DWORD, LPCSTR, LPCSTR, PDWORD, LPCSTR, LPCSTR, LPCSTR); + SC_HANDLE CreateServiceW(SC_HANDLE, LPCWSTR, LPCWSTR, DWORD, DWORD, + DWORD, DWORD, LPCWSTR, LPCWSTR, PDWORD, LPCWSTR, LPCWSTR, LPCWSTR); + BOOL DeleteService(SC_HANDLE); + BOOL EnumDependentServicesA(SC_HANDLE, DWORD, LPENUM_SERVICE_STATUSA, + DWORD, PDWORD, PDWORD); + BOOL EnumDependentServicesW(SC_HANDLE, DWORD, LPENUM_SERVICE_STATUSW, + DWORD, PDWORD, PDWORD); + BOOL EnumServicesStatusA(SC_HANDLE, DWORD, DWORD, LPENUM_SERVICE_STATUSA, + DWORD, PDWORD, PDWORD, PDWORD); + BOOL EnumServicesStatusW(SC_HANDLE, DWORD, DWORD, LPENUM_SERVICE_STATUSW, + DWORD, PDWORD, PDWORD, PDWORD); + BOOL GetServiceDisplayNameA(SC_HANDLE, LPCSTR, LPSTR, PDWORD); + BOOL GetServiceDisplayNameW(SC_HANDLE, LPCWSTR, LPWSTR, PDWORD); + BOOL GetServiceKeyNameA(SC_HANDLE, LPCSTR, LPSTR, PDWORD); + BOOL GetServiceKeyNameW(SC_HANDLE, LPCWSTR, LPWSTR, PDWORD); + SC_LOCK LockServiceDatabase(SC_HANDLE); + BOOL NotifyBootConfigStatus(BOOL); + SC_HANDLE OpenSCManagerA(LPCSTR, LPCSTR, DWORD); + SC_HANDLE OpenSCManagerW(LPCWSTR, LPCWSTR, DWORD); + SC_HANDLE OpenServiceA(SC_HANDLE, LPCSTR, DWORD); + SC_HANDLE OpenServiceW(SC_HANDLE, LPCWSTR, DWORD); + BOOL QueryServiceConfigA(SC_HANDLE, LPQUERY_SERVICE_CONFIGA, DWORD, + PDWORD); + BOOL QueryServiceConfigW(SC_HANDLE, LPQUERY_SERVICE_CONFIGW, DWORD, + PDWORD); + BOOL QueryServiceLockStatusA(SC_HANDLE, LPQUERY_SERVICE_LOCK_STATUSA, + DWORD, PDWORD); + BOOL QueryServiceLockStatusW(SC_HANDLE, LPQUERY_SERVICE_LOCK_STATUSW, + DWORD, PDWORD); + BOOL QueryServiceObjectSecurity(SC_HANDLE, SECURITY_INFORMATION, + PSECURITY_DESCRIPTOR, DWORD, LPDWORD); + BOOL QueryServiceStatus(SC_HANDLE, LPSERVICE_STATUS); + SERVICE_STATUS_HANDLE RegisterServiceCtrlHandlerA(LPCSTR, + LPHANDLER_FUNCTION); + SERVICE_STATUS_HANDLE RegisterServiceCtrlHandlerW(LPCWSTR, + LPHANDLER_FUNCTION); + BOOL SetServiceObjectSecurity(SC_HANDLE, SECURITY_INFORMATION, + PSECURITY_DESCRIPTOR); + BOOL SetServiceStatus(SERVICE_STATUS_HANDLE, LPSERVICE_STATUS); + BOOL StartServiceA(SC_HANDLE, DWORD, LPCSTR*); + BOOL StartServiceW(SC_HANDLE, DWORD, LPCWSTR*); + BOOL StartServiceCtrlDispatcherA(LPSERVICE_TABLE_ENTRYA); + BOOL StartServiceCtrlDispatcherW(LPSERVICE_TABLE_ENTRYW); + BOOL UnlockServiceDatabase(SC_LOCK); + + static if (_WIN32_WINNT >= 0x500) { + BOOL EnumServicesStatusExA(SC_HANDLE, SC_ENUM_TYPE, DWORD, DWORD, LPBYTE, + DWORD, LPDWORD, LPDWORD, LPDWORD, LPCSTR); + BOOL EnumServicesStatusExW(SC_HANDLE, SC_ENUM_TYPE, DWORD, DWORD, LPBYTE, + DWORD, LPDWORD, LPDWORD, LPDWORD, LPCWSTR); + BOOL QueryServiceConfig2A(SC_HANDLE, DWORD, LPBYTE, DWORD, LPDWORD); + BOOL QueryServiceConfig2W(SC_HANDLE, DWORD, LPBYTE, DWORD, LPDWORD); + BOOL QueryServiceStatusEx(SC_HANDLE, SC_STATUS_TYPE, LPBYTE, DWORD, + LPDWORD); + SERVICE_STATUS_HANDLE RegisterServiceCtrlHandlerExA(LPCSTR, + LPHANDLER_FUNCTION_EX, LPVOID); + SERVICE_STATUS_HANDLE RegisterServiceCtrlHandlerExW(LPCWSTR, + LPHANDLER_FUNCTION_EX, LPVOID); + } + + static if (_WIN32_WINNT >= 0x501) { + BOOL ChangeServiceConfig2A(SC_HANDLE, DWORD, LPVOID); + BOOL ChangeServiceConfig2W(SC_HANDLE, DWORD, LPVOID); + } +} + +version (Unicode) { + alias ENUM_SERVICE_STATUSW ENUM_SERVICE_STATUS; + alias QUERY_SERVICE_CONFIGW QUERY_SERVICE_CONFIG; + alias QUERY_SERVICE_LOCK_STATUSW QUERY_SERVICE_LOCK_STATUS; + alias LPSERVICE_MAIN_FUNCTIONW LPSERVICE_MAIN_FUNCTION; + alias SERVICE_TABLE_ENTRYW SERVICE_TABLE_ENTRY; + alias ChangeServiceConfigW ChangeServiceConfig; + alias CreateServiceW CreateService; + alias EnumDependentServicesW EnumDependentServices; + alias EnumServicesStatusW EnumServicesStatus; + alias GetServiceDisplayNameW GetServiceDisplayName; + alias GetServiceKeyNameW GetServiceKeyName; + alias OpenSCManagerW OpenSCManager; + alias OpenServiceW OpenService; + alias QueryServiceConfigW QueryServiceConfig; + alias QueryServiceLockStatusW QueryServiceLockStatus; + alias RegisterServiceCtrlHandlerW RegisterServiceCtrlHandler; + alias StartServiceW StartService; + alias StartServiceCtrlDispatcherW StartServiceCtrlDispatcher; + + static if (_WIN32_WINNT >= 0x500) { + alias ENUM_SERVICE_STATUS_PROCESSW ENUM_SERVICE_STATUS_PROCESS; + alias SERVICE_DESCRIPTIONW SERVICE_DESCRIPTION; + alias SERVICE_FAILURE_ACTIONSW SERVICE_FAILURE_ACTIONS; + alias EnumServicesStatusExW EnumServicesStatusEx; + alias QueryServiceConfig2W QueryServiceConfig2; + alias RegisterServiceCtrlHandlerExW RegisterServiceCtrlHandlerEx; + } + + static if (_WIN32_WINNT >= 0x501) { + alias ChangeServiceConfig2W ChangeServiceConfig2; + } + +} else { + alias ENUM_SERVICE_STATUSA ENUM_SERVICE_STATUS; + alias QUERY_SERVICE_CONFIGA QUERY_SERVICE_CONFIG; + alias QUERY_SERVICE_LOCK_STATUSA QUERY_SERVICE_LOCK_STATUS; + alias LPSERVICE_MAIN_FUNCTIONA LPSERVICE_MAIN_FUNCTION; + alias SERVICE_TABLE_ENTRYA SERVICE_TABLE_ENTRY; + alias ChangeServiceConfigA ChangeServiceConfig; + alias CreateServiceA CreateService; + alias EnumDependentServicesA EnumDependentServices; + alias EnumServicesStatusA EnumServicesStatus; + alias GetServiceDisplayNameA GetServiceDisplayName; + alias GetServiceKeyNameA GetServiceKeyName; + alias OpenSCManagerA OpenSCManager; + alias OpenServiceA OpenService; + alias QueryServiceConfigA QueryServiceConfig; + alias QueryServiceLockStatusA QueryServiceLockStatus; + alias RegisterServiceCtrlHandlerA RegisterServiceCtrlHandler; + alias StartServiceA StartService; + alias StartServiceCtrlDispatcherA StartServiceCtrlDispatcher; + + static if (_WIN32_WINNT >= 0x500) { + alias ENUM_SERVICE_STATUS_PROCESSA ENUM_SERVICE_STATUS_PROCESS; + alias SERVICE_DESCRIPTIONA SERVICE_DESCRIPTION; + alias SERVICE_FAILURE_ACTIONSA SERVICE_FAILURE_ACTIONS; + alias EnumServicesStatusExA EnumServicesStatusEx; + alias QueryServiceConfig2A QueryServiceConfig2; + alias RegisterServiceCtrlHandlerExA RegisterServiceCtrlHandlerEx; + } + + static if (_WIN32_WINNT >= 0x501) { + alias ChangeServiceConfig2A ChangeServiceConfig2; + } + +} + +alias ENUM_SERVICE_STATUS* LPENUM_SERVICE_STATUS; +alias QUERY_SERVICE_CONFIG* LPQUERY_SERVICE_CONFIG; +alias QUERY_SERVICE_LOCK_STATUS* LPQUERY_SERVICE_LOCK_STATUS; +alias SERVICE_TABLE_ENTRY* LPSERVICE_TABLE_ENTRY; + +static if (_WIN32_WINNT >= 0x500) { + alias ENUM_SERVICE_STATUS_PROCESS* LPENUM_SERVICE_STATUS_PROCESS; + alias SERVICE_DESCRIPTION* LPSERVICE_DESCRIPTION; + alias SERVICE_FAILURE_ACTIONS* LPSERVICE_FAILURE_ACTIONS; +} Index: src/win32/winuser.d ================================================================== --- src/win32/winuser.d +++ src/win32/winuser.d @@ -1,8665 +1,4767 @@ -module win32.winuser; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino (demoonlit@inter7.jp) - -import win32.winbase, win32.wingdi; -enum : uint { - QS_POSTMESSAGE = 0x0008, - QS_TIMER = 0x0010, - QS_PAINT = 0x0020, - QS_SENDMESSAGE = 0x0040, - QS_HOTKEY = 0x0080, - QS_INPUT = 0x0407 -} - -// #ifndef _WINUSER_ -// #define _WINUSER_ - -// #if !defined(_USER32_) -// #define WINUSERAPI DECLSPEC_IMPORT -// #else -// #... -// #endif - -// #ifdef _MAC -// #... -// #endif - -// #ifdef __cplusplus -// extern "C" { -// #endif /* __cplusplus */ - -// #ifndef WINVER -// #... -// #endif /* !WINVER */ - -// #include - -// #ifndef NOUSER - -alias HANDLE HDWP; -alias VOID MENUTEMPLATEA; -alias VOID MENUTEMPLATEW; -// #ifdef UNICODE -alias MENUTEMPLATEW MENUTEMPLATE; -// #else -// ... -// #endif // UNICODE -alias PVOID LPMENUTEMPLATEA; -alias PVOID LPMENUTEMPLATEW; -// #ifdef UNICODE -alias LPMENUTEMPLATEW LPMENUTEMPLATE; -// #else -// ... -// #endif // UNICODE - -extern(Windows) alias LRESULT function(HWND, UINT, WPARAM, LPARAM) WNDPROC; - -// #ifdef STRICT - -extern(Windows) alias INT_PTR function(HWND, UINT, WPARAM, LPARAM) DLGPROC; -extern(Windows) alias VOID function(HWND, UINT, UINT_PTR, DWORD) TIMERPROC; -extern(Windows) alias BOOL function(HDC, LPARAM, int) GRAYSTRINGPROC; -extern(Windows) alias BOOL function(HWND, LPARAM) WNDENUMPROC; -extern(Windows) alias LRESULT function(int code, WPARAM wParam, LPARAM lParam) HOOKPROC; -extern(Windows) alias VOID function(HWND, UINT, ULONG_PTR, LRESULT) SENDASYNCPROC; - -extern(Windows) alias BOOL function(HWND, LPCSTR, HANDLE) PROPENUMPROCA; -extern(Windows) alias BOOL function(HWND, LPCWSTR, HANDLE) PROPENUMPROCW; - -extern(Windows) alias BOOL function(HWND, LPSTR, HANDLE, ULONG_PTR) PROPENUMPROCEXA; -extern(Windows) alias BOOL function(HWND, LPWSTR, HANDLE, ULONG_PTR) PROPENUMPROCEXW; - -extern(Windows) alias int function(LPSTR lpch, int ichCurrent, int cch, int code) EDITWORDBREAKPROCA; -extern(Windows) alias int function(LPWSTR lpch, int ichCurrent, int cch, int code) EDITWORDBREAKPROCW; - -// #if(WINVER >= 0x0400) -extern(Windows) alias BOOL function(HDC hdc, LPARAM lData, WPARAM wData, int cx, int cy) DRAWSTATEPROC; -// #endif /* WINVER >= 0x0400 */ -// #else /* !STRICT */ - -// ... - -// ... - -// ... - -// ... - -// #if(WINVER >= 0x0400) -// ... -// #endif /* WINVER >= 0x0400 */ -// #endif /* !STRICT */ - -// #ifdef UNICODE -alias PROPENUMPROCW PROPENUMPROC; -alias PROPENUMPROCEXW PROPENUMPROCEX; -alias EDITWORDBREAKPROCW EDITWORDBREAKPROC; -// #else /* !UNICODE */ -// ... -// #endif /* UNICODE */ - -// #ifdef STRICT - -extern(Windows) alias BOOL function(LPSTR, LPARAM) NAMEENUMPROCA; -extern(Windows) alias BOOL function(LPWSTR, LPARAM) NAMEENUMPROCW; - -alias NAMEENUMPROCA WINSTAENUMPROCA; -alias NAMEENUMPROCA DESKTOPENUMPROCA; -alias NAMEENUMPROCW WINSTAENUMPROCW; -alias NAMEENUMPROCW DESKTOPENUMPROCW; - -// #else /* !STRICT */ - -// ... - -// #endif /* !STRICT */ - -// #ifdef UNICODE -alias WINSTAENUMPROCW WINSTAENUMPROC; -alias DESKTOPENUMPROCW DESKTOPENUMPROC; - -// #else /* !UNICODE */ -// ... - -// #endif /* UNICODE */ - -bit IS_INTRESOURCE(LPTSTR _r){ return ((cast(ULONG_PTR)(_r) >> 16) == 0); } -LPSTR MAKEINTRESOURCEA(WORD i){ return cast(LPSTR)(cast(ULONG_PTR)(cast(WORD)(i))); } -LPWSTR MAKEINTRESOURCEW(WORD i){ return cast(LPWSTR)(cast(ULONG_PTR)(cast(WORD)(i))); } -// #ifdef UNICODE -alias MAKEINTRESOURCEW MAKEINTRESOURCE; -// #else -// #... -// #endif // !UNICODE - -// #ifndef NORESOURCE - -const LPTSTR RT_CURSOR = cast(LPTSTR)(1); -const LPTSTR RT_BITMAP = cast(LPTSTR)(2); -const LPTSTR RT_ICON = cast(LPTSTR)(3); -const LPTSTR RT_MENU = cast(LPTSTR)(4); -const LPTSTR RT_DIALOG = cast(LPTSTR)(5); -const LPTSTR RT_STRING = cast(LPTSTR)(6); -const LPTSTR RT_FONTDIR = cast(LPTSTR)(7); -const LPTSTR RT_FONT = cast(LPTSTR)(8); -const LPTSTR RT_ACCELERATOR = cast(LPTSTR)(9); -const LPTSTR RT_RCDATA = cast(LPTSTR)(10); -const LPTSTR RT_MESSAGETABLE = cast(LPTSTR)(11); - -enum : uint { DIFFERENCE = 11 } -const LPTSTR RT_GROUP_CURSOR = cast(LPTSTR)(cast(ULONG_PTR)RT_CURSOR + DIFFERENCE); -const LPTSTR RT_GROUP_ICON = cast(LPTSTR)(cast(ULONG_PTR)RT_ICON + DIFFERENCE); -const LPTSTR RT_VERSION = cast(LPTSTR)(16); -const LPTSTR RT_DLGINCLUDE = cast(LPTSTR)(17); -// #if(WINVER >= 0x0400) -const LPTSTR RT_PLUGPLAY = cast(LPTSTR)(19); -const LPTSTR RT_VXD = cast(LPTSTR)(20); -const LPTSTR RT_ANICURSOR = cast(LPTSTR)(21); -const LPTSTR RT_ANIICON = cast(LPTSTR)(22); -// #endif /* WINVER >= 0x0400 */ -const LPTSTR RT_HTML = cast(LPTSTR)(23); -// #ifdef RC_INVOKED -// #... -// #... -// #... -// #... -// #... -// #... -// #else /* RC_INVOKED */ -const LPTSTR RT_MANIFEST = cast(LPTSTR)(24); -const LPTSTR CREATEPROCESS_MANIFEST_RESOURCE_ID = cast(LPTSTR)( 1); -const LPTSTR ISOLATIONAWARE_MANIFEST_RESOURCE_ID = cast(LPTSTR)(2); -const LPTSTR ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID = cast(LPTSTR)(3); -const LPTSTR MINIMUM_RESERVED_MANIFEST_RESOURCE_ID = cast(LPTSTR)( 1 ); -const LPTSTR MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID = cast(LPTSTR)(16 ); -// #endif /* RC_INVOKED */ - -// #endif /* !NORESOURCE */ - -extern(Windows) export int wvsprintfA( - LPSTR, - LPCSTR, - va_list arglist); -extern(Windows) export int wvsprintfW( - LPWSTR, - LPCWSTR, - va_list arglist); -// #ifdef UNICODE -alias wvsprintfW wvsprintf; -// #else -// #... -// #endif // !UNICODE - -extern(C) export int wsprintfA( - LPSTR, - LPCSTR, - ...); -extern(C) export int wsprintfW( - LPWSTR, - LPCWSTR, - ...); -// #ifdef UNICODE -alias wsprintfW wsprintf; -// #else -// #... -// #endif // !UNICODE - -const LPWSTR SETWALLPAPER_DEFAULT = cast(LPWSTR)-1; - -// #ifndef NOSCROLL - -enum : uint { SB_HORZ = 0 } -enum : uint { SB_VERT = 1 } -enum : uint { SB_CTL = 2 } -enum : uint { SB_BOTH = 3 } - -enum : uint { SB_LINEUP = 0 } -enum : uint { SB_LINELEFT = 0 } -enum : uint { SB_LINEDOWN = 1 } -enum : uint { SB_LINERIGHT = 1 } -enum : uint { SB_PAGEUP = 2 } -enum : uint { SB_PAGELEFT = 2 } -enum : uint { SB_PAGEDOWN = 3 } -enum : uint { SB_PAGERIGHT = 3 } -enum : uint { SB_THUMBPOSITION = 4 } -enum : uint { SB_THUMBTRACK = 5 } -enum : uint { SB_TOP = 6 } -enum : uint { SB_LEFT = 6 } -enum : uint { SB_BOTTOM = 7 } -enum : uint { SB_RIGHT = 7 } -enum : uint { SB_ENDSCROLL = 8 } - -// #endif /* !NOSCROLL */ - -// #ifndef NOSHOWWINDOW - -enum : uint { SW_HIDE = 0 } -enum : uint { SW_SHOWNORMAL = 1 } -enum : uint { SW_NORMAL = 1 } -enum : uint { SW_SHOWMINIMIZED = 2 } -enum : uint { SW_SHOWMAXIMIZED = 3 } -enum : uint { SW_MAXIMIZE = 3 } -enum : uint { SW_SHOWNOACTIVATE = 4 } -enum : uint { SW_SHOW = 5 } -enum : uint { SW_MINIMIZE = 6 } -enum : uint { SW_SHOWMINNOACTIVE = 7 } -enum : uint { SW_SHOWNA = 8 } -enum : uint { SW_RESTORE = 9 } -enum : uint { SW_SHOWDEFAULT = 10 } -enum : uint { SW_FORCEMINIMIZE = 11 } -enum : uint { SW_MAX = 11 } - -enum : uint { HIDE_WINDOW = 0 } -enum : uint { SHOW_OPENWINDOW = 1 } -enum : uint { SHOW_ICONWINDOW = 2 } -enum : uint { SHOW_FULLSCREEN = 3 } -enum : uint { SHOW_OPENNOACTIVATE = 4 } - -enum : uint { SW_PARENTCLOSING = 1 } -enum : uint { SW_OTHERZOOM = 2 } -enum : uint { SW_PARENTOPENING = 3 } -enum : uint { SW_OTHERUNZOOM = 4 } - -// #endif /* !NOSHOWWINDOW */ - -// #if(WINVER >= 0x0500) - -enum : uint { AW_HOR_POSITIVE = 0x00000001 } -enum : uint { AW_HOR_NEGATIVE = 0x00000002 } -enum : uint { AW_VER_POSITIVE = 0x00000004 } -enum : uint { AW_VER_NEGATIVE = 0x00000008 } -enum : uint { AW_CENTER = 0x00000010 } -enum : uint { AW_HIDE = 0x00010000 } -enum : uint { AW_ACTIVATE = 0x00020000 } -enum : uint { AW_SLIDE = 0x00040000 } -enum : uint { AW_BLEND = 0x00080000 } - -// #endif /* WINVER >= 0x0500 */ - -enum : uint { KF_EXTENDED = 0x0100 } -enum : uint { KF_DLGMODE = 0x0800 } -enum : uint { KF_MENUMODE = 0x1000 } -enum : uint { KF_ALTDOWN = 0x2000 } -enum : uint { KF_REPEAT = 0x4000 } -enum : uint { KF_UP = 0x8000 } - -// #ifndef NOVIRTUALKEYCODES - -enum : uint { VK_LBUTTON = 0x01 } -enum : uint { VK_RBUTTON = 0x02 } -enum : uint { VK_CANCEL = 0x03 } -enum : uint { VK_MBUTTON = 0x04 } - -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { VK_XBUTTON1 = 0x05 } -enum : uint { VK_XBUTTON2 = 0x06 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -enum : uint { VK_BACK = 0x08 } -enum : uint { VK_TAB = 0x09 } - -enum : uint { VK_CLEAR = 0x0C } -enum : uint { VK_RETURN = 0x0D } - -enum : uint { VK_SHIFT = 0x10 } -enum : uint { VK_CONTROL = 0x11 } -enum : uint { VK_MENU = 0x12 } -enum : uint { VK_PAUSE = 0x13 } -enum : uint { VK_CAPITAL = 0x14 } - -enum : uint { VK_KANA = 0x15 } -enum : uint { VK_HANGEUL = 0x15 } -enum : uint { VK_HANGUL = 0x15 } -enum : uint { VK_JUNJA = 0x17 } -enum : uint { VK_FINAL = 0x18 } -enum : uint { VK_HANJA = 0x19 } -enum : uint { VK_KANJI = 0x19 } - -enum : uint { VK_ESCAPE = 0x1B } - -enum : uint { VK_CONVERT = 0x1C } -enum : uint { VK_NONCONVERT = 0x1D } -enum : uint { VK_ACCEPT = 0x1E } -enum : uint { VK_MODECHANGE = 0x1F } - -enum : uint { VK_SPACE = 0x20 } -enum : uint { VK_PRIOR = 0x21 } -enum : uint { VK_NEXT = 0x22 } -enum : uint { VK_END = 0x23 } -enum : uint { VK_HOME = 0x24 } -enum : uint { VK_LEFT = 0x25 } -enum : uint { VK_UP = 0x26 } -enum : uint { VK_RIGHT = 0x27 } -enum : uint { VK_DOWN = 0x28 } -enum : uint { VK_SELECT = 0x29 } -enum : uint { VK_PRINT = 0x2A } -enum : uint { VK_EXECUTE = 0x2B } -enum : uint { VK_SNAPSHOT = 0x2C } -enum : uint { VK_INSERT = 0x2D } -enum : uint { VK_DELETE = 0x2E } -enum : uint { VK_HELP = 0x2F } - -enum : uint { VK_LWIN = 0x5B } -enum : uint { VK_RWIN = 0x5C } -enum : uint { VK_APPS = 0x5D } - -enum : uint { VK_SLEEP = 0x5F } - -enum : uint { VK_NUMPAD0 = 0x60 } -enum : uint { VK_NUMPAD1 = 0x61 } -enum : uint { VK_NUMPAD2 = 0x62 } -enum : uint { VK_NUMPAD3 = 0x63 } -enum : uint { VK_NUMPAD4 = 0x64 } -enum : uint { VK_NUMPAD5 = 0x65 } -enum : uint { VK_NUMPAD6 = 0x66 } -enum : uint { VK_NUMPAD7 = 0x67 } -enum : uint { VK_NUMPAD8 = 0x68 } -enum : uint { VK_NUMPAD9 = 0x69 } -enum : uint { VK_MULTIPLY = 0x6A } -enum : uint { VK_ADD = 0x6B } -enum : uint { VK_SEPARATOR = 0x6C } -enum : uint { VK_SUBTRACT = 0x6D } -enum : uint { VK_DECIMAL = 0x6E } -enum : uint { VK_DIVIDE = 0x6F } -enum : uint { VK_F1 = 0x70 } -enum : uint { VK_F2 = 0x71 } -enum : uint { VK_F3 = 0x72 } -enum : uint { VK_F4 = 0x73 } -enum : uint { VK_F5 = 0x74 } -enum : uint { VK_F6 = 0x75 } -enum : uint { VK_F7 = 0x76 } -enum : uint { VK_F8 = 0x77 } -enum : uint { VK_F9 = 0x78 } -enum : uint { VK_F10 = 0x79 } -enum : uint { VK_F11 = 0x7A } -enum : uint { VK_F12 = 0x7B } -enum : uint { VK_F13 = 0x7C } -enum : uint { VK_F14 = 0x7D } -enum : uint { VK_F15 = 0x7E } -enum : uint { VK_F16 = 0x7F } -enum : uint { VK_F17 = 0x80 } -enum : uint { VK_F18 = 0x81 } -enum : uint { VK_F19 = 0x82 } -enum : uint { VK_F20 = 0x83 } -enum : uint { VK_F21 = 0x84 } -enum : uint { VK_F22 = 0x85 } -enum : uint { VK_F23 = 0x86 } -enum : uint { VK_F24 = 0x87 } - -enum : uint { VK_NUMLOCK = 0x90 } -enum : uint { VK_SCROLL = 0x91 } - -enum : uint { VK_OEM_NEC_EQUAL = 0x92 } - -enum : uint { VK_OEM_FJ_JISHO = 0x92 } -enum : uint { VK_OEM_FJ_MASSHOU = 0x93 } -enum : uint { VK_OEM_FJ_TOUROKU = 0x94 } -enum : uint { VK_OEM_FJ_LOYA = 0x95 } -enum : uint { VK_OEM_FJ_ROYA = 0x96 } - -enum : uint { VK_LSHIFT = 0xA0 } -enum : uint { VK_RSHIFT = 0xA1 } -enum : uint { VK_LCONTROL = 0xA2 } -enum : uint { VK_RCONTROL = 0xA3 } -enum : uint { VK_LMENU = 0xA4 } -enum : uint { VK_RMENU = 0xA5 } - -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { VK_BROWSER_BACK = 0xA6 } -enum : uint { VK_BROWSER_FORWARD = 0xA7 } -enum : uint { VK_BROWSER_REFRESH = 0xA8 } -enum : uint { VK_BROWSER_STOP = 0xA9 } -enum : uint { VK_BROWSER_SEARCH = 0xAA } -enum : uint { VK_BROWSER_FAVORITES = 0xAB } -enum : uint { VK_BROWSER_HOME = 0xAC } - -enum : uint { VK_VOLUME_MUTE = 0xAD } -enum : uint { VK_VOLUME_DOWN = 0xAE } -enum : uint { VK_VOLUME_UP = 0xAF } -enum : uint { VK_MEDIA_NEXT_TRACK = 0xB0 } -enum : uint { VK_MEDIA_PREV_TRACK = 0xB1 } -enum : uint { VK_MEDIA_STOP = 0xB2 } -enum : uint { VK_MEDIA_PLAY_PAUSE = 0xB3 } -enum : uint { VK_LAUNCH_MAIL = 0xB4 } -enum : uint { VK_LAUNCH_MEDIA_SELECT = 0xB5 } -enum : uint { VK_LAUNCH_APP1 = 0xB6 } -enum : uint { VK_LAUNCH_APP2 = 0xB7 } - -// #endif /* _WIN32_WINNT >= 0x0500 */ - -enum : uint { VK_OEM_1 = 0xBA } -enum : uint { VK_OEM_PLUS = 0xBB } -enum : uint { VK_OEM_COMMA = 0xBC } -enum : uint { VK_OEM_MINUS = 0xBD } -enum : uint { VK_OEM_PERIOD = 0xBE } -enum : uint { VK_OEM_2 = 0xBF } -enum : uint { VK_OEM_3 = 0xC0 } - -enum : uint { VK_OEM_4 = 0xDB } -enum : uint { VK_OEM_5 = 0xDC } -enum : uint { VK_OEM_6 = 0xDD } -enum : uint { VK_OEM_7 = 0xDE } -enum : uint { VK_OEM_8 = 0xDF } - -enum : uint { VK_OEM_AX = 0xE1 } -enum : uint { VK_OEM_102 = 0xE2 } -enum : uint { VK_ICO_HELP = 0xE3 } -enum : uint { VK_ICO_00 = 0xE4 } - -// #if(WINVER >= 0x0400) -enum : uint { VK_PROCESSKEY = 0xE5 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { VK_ICO_CLEAR = 0xE6 } - -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { VK_PACKET = 0xE7 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -enum : uint { VK_OEM_RESET = 0xE9 } -enum : uint { VK_OEM_JUMP = 0xEA } -enum : uint { VK_OEM_PA1 = 0xEB } -enum : uint { VK_OEM_PA2 = 0xEC } -enum : uint { VK_OEM_PA3 = 0xED } -enum : uint { VK_OEM_WSCTRL = 0xEE } -enum : uint { VK_OEM_CUSEL = 0xEF } -enum : uint { VK_OEM_ATTN = 0xF0 } -enum : uint { VK_OEM_FINISH = 0xF1 } -enum : uint { VK_OEM_COPY = 0xF2 } -enum : uint { VK_OEM_AUTO = 0xF3 } -enum : uint { VK_OEM_ENLW = 0xF4 } -enum : uint { VK_OEM_BACKTAB = 0xF5 } - -enum : uint { VK_ATTN = 0xF6 } -enum : uint { VK_CRSEL = 0xF7 } -enum : uint { VK_EXSEL = 0xF8 } -enum : uint { VK_EREOF = 0xF9 } -enum : uint { VK_PLAY = 0xFA } -enum : uint { VK_ZOOM = 0xFB } -enum : uint { VK_NONAME = 0xFC } -enum : uint { VK_PA1 = 0xFD } -enum : uint { VK_OEM_CLEAR = 0xFE } - -// #endif /* !NOVIRTUALKEYCODES */ - -// #ifndef NOWH - -enum { WH_MIN = -1 } -enum { WH_MSGFILTER = -1 } -enum : uint { WH_JOURNALRECORD = 0 } -enum : uint { WH_JOURNALPLAYBACK = 1 } -enum : uint { WH_KEYBOARD = 2 } -enum : uint { WH_GETMESSAGE = 3 } -enum : uint { WH_CALLWNDPROC = 4 } -enum : uint { WH_CBT = 5 } -enum : uint { WH_SYSMSGFILTER = 6 } -enum : uint { WH_MOUSE = 7 } -// #if defined(_WIN32_WINDOWS) -// #... -// #endif -enum : uint { WH_DEBUG = 9 } -enum : uint { WH_SHELL = 10 } -enum : uint { WH_FOREGROUNDIDLE = 11 } -// #if(WINVER >= 0x0400) -enum : uint { WH_CALLWNDPROCRET = 12 } -// #endif /* WINVER >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0400) -enum : uint { WH_KEYBOARD_LL = 13 } -enum : uint { WH_MOUSE_LL = 14 } -// #endif // (_WIN32_WINNT >= 0x0400) - -// #if(WINVER >= 0x0400) -// #if (_WIN32_WINNT >= 0x0400) -enum : uint { WH_MAX = 14 } -// #else -// #... -// #endif // (_WIN32_WINNT >= 0x0400) -// #else -// #... -// #endif - -alias WH_MIN WH_MINHOOK; -alias WH_MAX WH_MAXHOOK; - -enum : uint { HC_ACTION = 0 } -enum : uint { HC_GETNEXT = 1 } -enum : uint { HC_SKIP = 2 } -enum : uint { HC_NOREMOVE = 3 } -alias HC_NOREMOVE HC_NOREM; -enum : uint { HC_SYSMODALON = 4 } -enum : uint { HC_SYSMODALOFF = 5 } - -enum : uint { HCBT_MOVESIZE = 0 } -enum : uint { HCBT_MINMAX = 1 } -enum : uint { HCBT_QS = 2 } -enum : uint { HCBT_CREATEWND = 3 } -enum : uint { HCBT_DESTROYWND = 4 } -enum : uint { HCBT_ACTIVATE = 5 } -enum : uint { HCBT_CLICKSKIPPED = 6 } -enum : uint { HCBT_KEYSKIPPED = 7 } -enum : uint { HCBT_SYSCOMMAND = 8 } -enum : uint { HCBT_SETFOCUS = 9 } - -struct tagCBT_CREATEWNDA { - tagCREATESTRUCTA *lpcs; - HWND hwndInsertAfter; -} -alias tagCBT_CREATEWNDA CBT_CREATEWNDA; -alias tagCBT_CREATEWNDA* LPCBT_CREATEWNDA; - -struct tagCBT_CREATEWNDW { - tagCREATESTRUCTW *lpcs; - HWND hwndInsertAfter; -} -alias tagCBT_CREATEWNDW CBT_CREATEWNDW; -alias tagCBT_CREATEWNDW* LPCBT_CREATEWNDW; - -// #ifdef UNICODE -alias CBT_CREATEWNDW CBT_CREATEWND; -alias LPCBT_CREATEWNDW LPCBT_CREATEWND; -// #else -// ... -// #endif // UNICODE - -struct tagCBTACTIVATESTRUCT { - BOOL fMouse; - HWND hWndActive; -} -alias tagCBTACTIVATESTRUCT CBTACTIVATESTRUCT; -alias tagCBTACTIVATESTRUCT* LPCBTACTIVATESTRUCT; - -// #if(_WIN32_WINNT >= 0x0501) - -struct tagWTSSESSION_NOTIFICATION { - DWORD cbSize; - DWORD dwSessionId; -} -alias tagWTSSESSION_NOTIFICATION WTSSESSION_NOTIFICATION; -alias tagWTSSESSION_NOTIFICATION* PWTSSESSION_NOTIFICATION; - -enum : uint { WTS_CONSOLE_CONNECT = 0x1 } -enum : uint { WTS_CONSOLE_DISCONNECT = 0x2 } -enum : uint { WTS_REMOTE_CONNECT = 0x3 } -enum : uint { WTS_REMOTE_DISCONNECT = 0x4 } -enum : uint { WTS_SESSION_LOGON = 0x5 } -enum : uint { WTS_SESSION_LOGOFF = 0x6 } -enum : uint { WTS_SESSION_LOCK = 0x7 } -enum : uint { WTS_SESSION_UNLOCK = 0x8 } - -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { MSGF_DIALOGBOX = 0 } -enum : uint { MSGF_MESSAGEBOX = 1 } -enum : uint { MSGF_MENU = 2 } -enum : uint { MSGF_SCROLLBAR = 5 } -enum : uint { MSGF_NEXTWINDOW = 6 } -enum : uint { MSGF_MAX = 8 } -enum : uint { MSGF_USER = 4096 } - -enum : uint { HSHELL_WINDOWCREATED = 1 } -enum : uint { HSHELL_WINDOWDESTROYED = 2 } -enum : uint { HSHELL_ACTIVATESHELLWINDOW = 3 } - -// #if(WINVER >= 0x0400) -enum : uint { HSHELL_WINDOWACTIVATED = 4 } -enum : uint { HSHELL_GETMINRECT = 5 } -enum : uint { HSHELL_REDRAW = 6 } -enum : uint { HSHELL_TASKMAN = 7 } -enum : uint { HSHELL_LANGUAGE = 8 } -// #endif /* WINVER >= 0x0400 */ -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { HSHELL_ACCESSIBILITYSTATE = 11 } -enum : uint { HSHELL_APPCOMMAND = 12 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { HSHELL_WINDOWREPLACED = 13 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if(_WIN32_WINNT >= 0x0500) - -enum : uint { ACCESS_STICKYKEYS = 0x0001 } -enum : uint { ACCESS_FILTERKEYS = 0x0002 } -enum : uint { ACCESS_MOUSEKEYS = 0x0003 } - -enum : uint { APPCOMMAND_BROWSER_BACKWARD = 1 } -enum : uint { APPCOMMAND_BROWSER_FORWARD = 2 } -enum : uint { APPCOMMAND_BROWSER_REFRESH = 3 } -enum : uint { APPCOMMAND_BROWSER_STOP = 4 } -enum : uint { APPCOMMAND_BROWSER_SEARCH = 5 } -enum : uint { APPCOMMAND_BROWSER_FAVORITES = 6 } -enum : uint { APPCOMMAND_BROWSER_HOME = 7 } -enum : uint { APPCOMMAND_VOLUME_MUTE = 8 } -enum : uint { APPCOMMAND_VOLUME_DOWN = 9 } -enum : uint { APPCOMMAND_VOLUME_UP = 10 } -enum : uint { APPCOMMAND_MEDIA_NEXTTRACK = 11 } -enum : uint { APPCOMMAND_MEDIA_PREVIOUSTRACK = 12 } -enum : uint { APPCOMMAND_MEDIA_STOP = 13 } -enum : uint { APPCOMMAND_MEDIA_PLAY_PAUSE = 14 } -enum : uint { APPCOMMAND_LAUNCH_MAIL = 15 } -enum : uint { APPCOMMAND_LAUNCH_MEDIA_SELECT = 16 } -enum : uint { APPCOMMAND_LAUNCH_APP1 = 17 } -enum : uint { APPCOMMAND_LAUNCH_APP2 = 18 } -enum : uint { APPCOMMAND_BASS_DOWN = 19 } -enum : uint { APPCOMMAND_BASS_BOOST = 20 } -enum : uint { APPCOMMAND_BASS_UP = 21 } -enum : uint { APPCOMMAND_TREBLE_DOWN = 22 } -enum : uint { APPCOMMAND_TREBLE_UP = 23 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { APPCOMMAND_MICROPHONE_VOLUME_MUTE = 24 } -enum : uint { APPCOMMAND_MICROPHONE_VOLUME_DOWN = 25 } -enum : uint { APPCOMMAND_MICROPHONE_VOLUME_UP = 26 } -enum : uint { APPCOMMAND_HELP = 27 } -enum : uint { APPCOMMAND_FIND = 28 } -enum : uint { APPCOMMAND_NEW = 29 } -enum : uint { APPCOMMAND_OPEN = 30 } -enum : uint { APPCOMMAND_CLOSE = 31 } -enum : uint { APPCOMMAND_SAVE = 32 } -enum : uint { APPCOMMAND_PRINT = 33 } -enum : uint { APPCOMMAND_UNDO = 34 } -enum : uint { APPCOMMAND_REDO = 35 } -enum : uint { APPCOMMAND_COPY = 36 } -enum : uint { APPCOMMAND_CUT = 37 } -enum : uint { APPCOMMAND_PASTE = 38 } -enum : uint { APPCOMMAND_REPLY_TO_MAIL = 39 } -enum : uint { APPCOMMAND_FORWARD_MAIL = 40 } -enum : uint { APPCOMMAND_SEND_MAIL = 41 } -enum : uint { APPCOMMAND_SPELL_CHECK = 42 } -enum : uint { APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE = 43 } -enum : uint { APPCOMMAND_MIC_ON_OFF_TOGGLE = 44 } -enum : uint { APPCOMMAND_CORRECTION_LIST = 45 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { FAPPCOMMAND_MOUSE = 0x8000 } -enum : uint { FAPPCOMMAND_KEY = 0 } -enum : uint { FAPPCOMMAND_OEM = 0x1000 } -enum : uint { FAPPCOMMAND_MASK = 0xF000 } - -// #define GET_APPCOMMAND_LPARAM(lParam) ((short)(HIWORD(lParam) & ~FAPPCOMMAND_MASK)) -// #define GET_DEVICE_LPARAM(lParam) ((WORD)(HIWORD(lParam) & FAPPCOMMAND_MASK)) -// #define GET_MOUSEORKEY_LPARAM GET_DEVICE_LPARAM -// #define GET_FLAGS_LPARAM(lParam) (LOWORD(lParam)) -// #define GET_KEYSTATE_LPARAM(lParam) GET_FLAGS_LPARAM(lParam) -// #endif /* _WIN32_WINNT >= 0x0500 */ - -struct tagEVENTMSG { - UINT message; - UINT paramL; - UINT paramH; - DWORD time; - HWND hwnd; -} -alias tagEVENTMSG EVENTMSG; -alias tagEVENTMSG* PEVENTMSGMSG; -alias tagEVENTMSG* NPEVENTMSGMSG; -alias tagEVENTMSG* LPEVENTMSGMSG; - -alias tagEVENTMSG* PEVENTMSG; -alias tagEVENTMSG* NPEVENTMSG; -alias tagEVENTMSG* LPEVENTMSG; - -struct tagCWPSTRUCT { - LPARAM lParam; - WPARAM wParam; - UINT message; - HWND hwnd; -} -alias tagCWPSTRUCT CWPSTRUCT; -alias tagCWPSTRUCT* PCWPSTRUCT; -alias tagCWPSTRUCT* NPCWPSTRUCT; -alias tagCWPSTRUCT* LPCWPSTRUCT; - -// #if(WINVER >= 0x0400) - -struct tagCWPRETSTRUCT { - LRESULT lResult; - LPARAM lParam; - WPARAM wParam; - UINT message; - HWND hwnd; -} -alias tagCWPRETSTRUCT CWPRETSTRUCT; -alias tagCWPRETSTRUCT* PCWPRETSTRUCT; -alias tagCWPRETSTRUCT* NPCWPRETSTRUCT; -alias tagCWPRETSTRUCT* LPCWPRETSTRUCT; - -// #endif /* WINVER >= 0x0400 */ - -// #if (_WIN32_WINNT >= 0x0400) - -enum : uint { LLKHF_EXTENDED = KF_EXTENDED >> 8 } -enum : uint { LLKHF_INJECTED = 0x00000010 } -enum : uint { LLKHF_ALTDOWN = KF_ALTDOWN >> 8 } -enum : uint { LLKHF_UP = KF_UP >> 8 } - -enum : uint { LLMHF_INJECTED = 0x00000001 } - -struct tagKBDLLHOOKSTRUCT { - DWORD vkCode; - DWORD scanCode; - DWORD flags; - DWORD time; - ULONG_PTR dwExtraInfo; -} -alias tagKBDLLHOOKSTRUCT KBDLLHOOKSTRUCT; -alias tagKBDLLHOOKSTRUCT* LPKBDLLHOOKSTRUCT; -alias tagKBDLLHOOKSTRUCT* PKBDLLHOOKSTRUCT; - -struct tagMSLLHOOKSTRUCT { - POINT pt; - DWORD mouseData; - DWORD flags; - DWORD time; - ULONG_PTR dwExtraInfo; -} -alias tagMSLLHOOKSTRUCT MSLLHOOKSTRUCT; -alias tagMSLLHOOKSTRUCT* LPMSLLHOOKSTRUCT; -alias tagMSLLHOOKSTRUCT* PMSLLHOOKSTRUCT; - -// #endif // (_WIN32_WINNT >= 0x0400) - -struct tagDEBUGHOOKINFO { - DWORD idThread; - DWORD idThreadInstaller; - LPARAM lParam; - WPARAM wParam; - int code; -} -alias tagDEBUGHOOKINFO DEBUGHOOKINFO; -alias tagDEBUGHOOKINFO* PDEBUGHOOKINFO; -alias tagDEBUGHOOKINFO* NPDEBUGHOOKINFO; -alias tagDEBUGHOOKINFO* LPDEBUGHOOKINFO; - -struct tagMOUSEHOOKSTRUCT { - POINT pt; - HWND hwnd; - UINT wHitTestCode; - ULONG_PTR dwExtraInfo; -} -alias tagMOUSEHOOKSTRUCT MOUSEHOOKSTRUCT; -alias tagMOUSEHOOKSTRUCT* LPMOUSEHOOKSTRUCT; -alias tagMOUSEHOOKSTRUCT* PMOUSEHOOKSTRUCT; - -// #if(_WIN32_WINNT >= 0x0500) -// #ifdef __cplusplus -struct tagMOUSEHOOKSTRUCTEX { - POINT pt; - HWND hwnd; - UINT wHitTestCode; - ULONG_PTR dwExtraInfo; - DWORD mouseData; -} -alias tagMOUSEHOOKSTRUCTEX MOUSEHOOKSTRUCTEX; -alias tagMOUSEHOOKSTRUCTEX* LPMOUSEHOOKSTRUCTEX; -alias tagMOUSEHOOKSTRUCTEX* PMOUSEHOOKSTRUCTEX; - -// #else // ndef __cplusplus -// ... -// #endif -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(WINVER >= 0x0400) - -struct tagHARDWAREHOOKSTRUCT { - HWND hwnd; - UINT message; - WPARAM wParam; - LPARAM lParam; -} -alias tagHARDWAREHOOKSTRUCT HARDWAREHOOKSTRUCT; -alias tagHARDWAREHOOKSTRUCT* LPHARDWAREHOOKSTRUCT; -alias tagHARDWAREHOOKSTRUCT* PHARDWAREHOOKSTRUCT; - -// #endif /* WINVER >= 0x0400 */ -// #endif /* !NOWH */ - -enum : uint { HKL_PREV = 0 } -enum : uint { HKL_NEXT = 1 } - -enum : uint { KLF_ACTIVATE = 0x00000001 } -enum : uint { KLF_SUBSTITUTE_OK = 0x00000002 } -enum : uint { KLF_REORDER = 0x00000008 } -// #if(WINVER >= 0x0400) -enum : uint { KLF_REPLACELANG = 0x00000010 } -enum : uint { KLF_NOTELLSHELL = 0x00000080 } -// #endif /* WINVER >= 0x0400 */ -enum : uint { KLF_SETFORPROCESS = 0x00000100 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { KLF_SHIFTLOCK = 0x00010000 } -enum : uint { KLF_RESET = 0x40000000 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(WINVER >= 0x0500) - -enum : uint { INPUTLANGCHANGE_SYSCHARSET = 0x0001 } -enum : uint { INPUTLANGCHANGE_FORWARD = 0x0002 } -enum : uint { INPUTLANGCHANGE_BACKWARD = 0x0004 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { KL_NAMELENGTH = 9 } - -extern(Windows) export HKL LoadKeyboardLayoutA( - LPCSTR pwszKLID, - UINT Flags); -extern(Windows) export HKL LoadKeyboardLayoutW( - LPCWSTR pwszKLID, - UINT Flags); -// #ifdef UNICODE -alias LoadKeyboardLayoutW LoadKeyboardLayout; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export HKL ActivateKeyboardLayout( - HKL hkl, - UINT Flags); -// #else -// ... -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0400) -extern(Windows) export int ToUnicodeEx( - UINT wVirtKey, - UINT wScanCode, - BYTE *lpKeyState, - LPWSTR pwszBuff, - int cchBuff, - UINT wFlags, - HKL dwhkl); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL UnloadKeyboardLayout( - HKL hkl); - -extern(Windows) export BOOL GetKeyboardLayoutNameA( - LPSTR pwszKLID); -extern(Windows) export BOOL GetKeyboardLayoutNameW( - LPWSTR pwszKLID); -// #ifdef UNICODE -alias GetKeyboardLayoutNameW GetKeyboardLayoutName; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export int GetKeyboardLayoutList( - int nBuff, - HKL *lpList); - -extern(Windows) export HKL GetKeyboardLayout( - DWORD idThread -); -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) - -struct tagMOUSEMOVEPOINT { - int x; - int y; - DWORD time; - ULONG_PTR dwExtraInfo; -} -alias tagMOUSEMOVEPOINT MOUSEMOVEPOINT; -alias tagMOUSEMOVEPOINT* PMOUSEMOVEPOINT; -alias tagMOUSEMOVEPOINT* LPMOUSEMOVEPOINT; - -enum : uint { GMMP_USE_DISPLAY_POINTS = 1 } -enum : uint { GMMP_USE_HIGH_RESOLUTION_POINTS = 2 } - -extern(Windows) export int GetMouseMovePointsEx( - UINT cbSize, - LPMOUSEMOVEPOINT lppt, - LPMOUSEMOVEPOINT lpptBuf, - int nBufPoints, - DWORD resolution -); - -// #endif /* WINVER >= 0x0500 */ - -// #ifndef NODESKTOP - -enum : uint { DESKTOP_READOBJECTS = 0x0001 } -enum : uint { DESKTOP_CREATEWINDOW = 0x0002 } -enum : uint { DESKTOP_CREATEMENU = 0x0004 } -enum : uint { DESKTOP_HOOKCONTROL = 0x0008 } -enum : uint { DESKTOP_JOURNALRECORD = 0x0010 } -enum : uint { DESKTOP_JOURNALPLAYBACK = 0x0020 } -enum : uint { DESKTOP_ENUMERATE = 0x0040 } -enum : uint { DESKTOP_WRITEOBJECTS = 0x0080 } -enum : uint { DESKTOP_SWITCHDESKTOP = 0x0100 } - -enum : uint { DF_ALLOWOTHERACCOUNTHOOK = 0x0001 } - -// #ifdef _WINGDI_ -// #ifndef NOGDI - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #endif /* NOGDI */ -// #endif /* _WINGDI_ */ - -extern(Windows) export HDESK OpenDesktopA( - LPCSTR lpszDesktop, - DWORD dwFlags, - BOOL fInherit, - ACCESS_MASK dwDesiredAccess); -extern(Windows) export HDESK OpenDesktopW( - LPCWSTR lpszDesktop, - DWORD dwFlags, - BOOL fInherit, - ACCESS_MASK dwDesiredAccess); -// #ifdef UNICODE -alias OpenDesktopW OpenDesktop; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HDESK OpenInputDesktop( - DWORD dwFlags, - BOOL fInherit, - ACCESS_MASK dwDesiredAccess); - -extern(Windows) export BOOL EnumDesktopsA( - HWINSTA hwinsta, - DESKTOPENUMPROCA lpEnumFunc, - LPARAM lParam); -extern(Windows) export BOOL EnumDesktopsW( - HWINSTA hwinsta, - DESKTOPENUMPROCW lpEnumFunc, - LPARAM lParam); -// #ifdef UNICODE -alias EnumDesktopsW EnumDesktops; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumDesktopWindows( - HDESK hDesktop, - WNDENUMPROC lpfn, - LPARAM lParam); - -extern(Windows) export BOOL SwitchDesktop( - HDESK hDesktop); - -extern(Windows) export BOOL SetThreadDesktop( - HDESK hDesktop); - -extern(Windows) export BOOL CloseDesktop( - HDESK hDesktop); - -extern(Windows) export HDESK GetThreadDesktop( - DWORD dwThreadId); -// #endif /* !NODESKTOP */ - -// #ifndef NOWINDOWSTATION - -enum : uint { WINSTA_ENUMDESKTOPS = 0x0001 } -enum : uint { WINSTA_READATTRIBUTES = 0x0002 } -enum : uint { WINSTA_ACCESSCLIPBOARD = 0x0004 } -enum : uint { WINSTA_CREATEDESKTOP = 0x0008 } -enum : uint { WINSTA_WRITEATTRIBUTES = 0x0010 } -enum : uint { WINSTA_ACCESSGLOBALATOMS = 0x0020 } -enum : uint { WINSTA_EXITWINDOWS = 0x0040 } -enum : uint { WINSTA_ENUMERATE = 0x0100 } -enum : uint { WINSTA_READSCREEN = 0x0200 } - -enum : uint { WSF_VISIBLE = 0x0001 } - -extern(Windows) export HWINSTA CreateWindowStationA( - LPCSTR lpwinsta, - DWORD dwReserved, - ACCESS_MASK dwDesiredAccess, - LPSECURITY_ATTRIBUTES lpsa); -extern(Windows) export HWINSTA CreateWindowStationW( - LPCWSTR lpwinsta, - DWORD dwReserved, - ACCESS_MASK dwDesiredAccess, - LPSECURITY_ATTRIBUTES lpsa); -// #ifdef UNICODE -alias CreateWindowStationW CreateWindowStation; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HWINSTA OpenWindowStationA( - LPCSTR lpszWinSta, - BOOL fInherit, - ACCESS_MASK dwDesiredAccess); -extern(Windows) export HWINSTA OpenWindowStationW( - LPCWSTR lpszWinSta, - BOOL fInherit, - ACCESS_MASK dwDesiredAccess); -// #ifdef UNICODE -alias OpenWindowStationW OpenWindowStation; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EnumWindowStationsA( - WINSTAENUMPROCA lpEnumFunc, - LPARAM lParam); -extern(Windows) export BOOL EnumWindowStationsW( - WINSTAENUMPROCW lpEnumFunc, - LPARAM lParam); -// #ifdef UNICODE -alias EnumWindowStationsW EnumWindowStations; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL CloseWindowStation( - HWINSTA hWinSta); - -extern(Windows) export BOOL SetProcessWindowStation( - HWINSTA hWinSta); - -extern(Windows) export HWINSTA GetProcessWindowStation(); -// #endif /* !NOWINDOWSTATION */ - -// #ifndef NOSECURITY - -extern(Windows) export BOOL SetUserObjectSecurity( - HANDLE hObj, - PSECURITY_INFORMATION pSIRequested, - PSECURITY_DESCRIPTOR pSID); - -extern(Windows) export BOOL GetUserObjectSecurity( - HANDLE hObj, - PSECURITY_INFORMATION pSIRequested, - PSECURITY_DESCRIPTOR pSID, - DWORD nLength, - LPDWORD lpnLengthNeeded); - -enum : uint { UOI_FLAGS = 1 } -enum : uint { UOI_NAME = 2 } -enum : uint { UOI_TYPE = 3 } -enum : uint { UOI_USER_SID = 4 } - -struct tagUSEROBJECTFLAGS { - BOOL fInherit; - BOOL fReserved; - DWORD dwFlags; -} -alias tagUSEROBJECTFLAGS USEROBJECTFLAGS; -alias tagUSEROBJECTFLAGS* PUSEROBJECTFLAGS; - -extern(Windows) export BOOL GetUserObjectInformationA( - HANDLE hObj, - int nIndex, - PVOID pvInfo, - DWORD nLength, - LPDWORD lpnLengthNeeded); -extern(Windows) export BOOL GetUserObjectInformationW( - HANDLE hObj, - int nIndex, - PVOID pvInfo, - DWORD nLength, - LPDWORD lpnLengthNeeded); -// #ifdef UNICODE -alias GetUserObjectInformationW GetUserObjectInformation; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetUserObjectInformationA( - HANDLE hObj, - int nIndex, - PVOID pvInfo, - DWORD nLength); -extern(Windows) export BOOL SetUserObjectInformationW( - HANDLE hObj, - int nIndex, - PVOID pvInfo, - DWORD nLength); -// #ifdef UNICODE -alias SetUserObjectInformationW SetUserObjectInformation; -// #else -// #... -// #endif // !UNICODE - -// #endif /* !NOSECURITY */ - -// #if(WINVER >= 0x0400) -struct tagWNDCLASSEXA { - UINT cbSize; - UINT style; - WNDPROC lpfnWndProc; - int cbClsExtra; - int cbWndExtra; - HINSTANCE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCSTR lpszMenuName; - LPCSTR lpszClassName; - HICON hIconSm; -} -alias tagWNDCLASSEXA WNDCLASSEXA; -alias tagWNDCLASSEXA* PWNDCLASSEXA; -alias tagWNDCLASSEXA* NPWNDCLASSEXA; -alias tagWNDCLASSEXA* LPWNDCLASSEXA; - -struct tagWNDCLASSEXW { - UINT cbSize; - UINT style; - WNDPROC lpfnWndProc; - int cbClsExtra; - int cbWndExtra; - HINSTANCE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCWSTR lpszMenuName; - LPCWSTR lpszClassName; - HICON hIconSm; -} -alias tagWNDCLASSEXW WNDCLASSEXW; -alias tagWNDCLASSEXW* PWNDCLASSEXW; -alias tagWNDCLASSEXW* NPWNDCLASSEXW; -alias tagWNDCLASSEXW* LPWNDCLASSEXW; - -// #ifdef UNICODE -alias WNDCLASSEXW WNDCLASSEX; -alias PWNDCLASSEXW PWNDCLASSEX; -alias NPWNDCLASSEXW NPWNDCLASSEX; -alias LPWNDCLASSEXW LPWNDCLASSEX; -// #else -// ... -// #endif // UNICODE -// #endif /* WINVER >= 0x0400 */ - -struct tagWNDCLASSA { - UINT style; - WNDPROC lpfnWndProc; - int cbClsExtra; - int cbWndExtra; - HINSTANCE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCSTR lpszMenuName; - LPCSTR lpszClassName; -} -alias tagWNDCLASSA WNDCLASSA; -alias tagWNDCLASSA* PWNDCLASSA; -alias tagWNDCLASSA* NPWNDCLASSA; -alias tagWNDCLASSA* LPWNDCLASSA; - -struct tagWNDCLASSW { - UINT style; - WNDPROC lpfnWndProc; - int cbClsExtra; - int cbWndExtra; - HINSTANCE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCWSTR lpszMenuName; - LPCWSTR lpszClassName; -} -alias tagWNDCLASSW WNDCLASSW; -alias tagWNDCLASSW* PWNDCLASSW; -alias tagWNDCLASSW* NPWNDCLASSW; -alias tagWNDCLASSW* LPWNDCLASSW; - -// #ifdef UNICODE -alias WNDCLASSW WNDCLASS; -alias PWNDCLASSW PWNDCLASS; -alias NPWNDCLASSW NPWNDCLASS; -alias LPWNDCLASSW LPWNDCLASS; -// #else -// ... -// #endif // UNICODE - -// #ifndef NOMSG - -struct tagMSG { - HWND hwnd; - UINT message; - WPARAM wParam; - LPARAM lParam; - DWORD time; - POINT pt; -// #ifdef _MAC -// ... -// #endif -} -alias tagMSG MSG; -alias tagMSG* PMSG; -alias tagMSG* NPMSG; -alias tagMSG* LPMSG; - -// #define POINTSTOPOINT(pt, pts) { (pt).x = (LONG)(SHORT)LOWORD(*(LONG*)&pts); (pt).y = (LONG)(SHORT)HIWORD(*(LONG*)&pts); } - -// #define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y))) -alias MAKELONG MAKEWPARAM; -alias MAKELONG MAKELPARAM; -alias MAKELONG MAKELRESULT; - -// #endif /* !NOMSG */ - -// #ifndef NOWINOFFSETS - -enum { GWL_WNDPROC = -4 } -enum { GWL_HINSTANCE = -6 } -enum { GWL_HWNDPARENT = -8 } -enum { GWL_STYLE = -16 } -enum { GWL_EXSTYLE = -20 } -enum { GWL_USERDATA = -21 } -enum { GWL_ID = -12 } - -// #ifdef _WIN64 - -// #... -// #... -// #... -// #... - -// #endif /* _WIN64 */ - -enum { GWLP_WNDPROC = -4 } -enum { GWLP_HINSTANCE = -6 } -enum { GWLP_HWNDPARENT = -8 } -enum { GWLP_USERDATA = -21 } -enum { GWLP_ID = -12 } - -enum { GCL_MENUNAME = -8 } -enum { GCL_HBRBACKGROUND = -10 } -enum { GCL_HCURSOR = -12 } -enum { GCL_HICON = -14 } -enum { GCL_HMODULE = -16 } -enum { GCL_CBWNDEXTRA = -18 } -enum { GCL_CBCLSEXTRA = -20 } -enum { GCL_WNDPROC = -24 } -enum { GCL_STYLE = -26 } -enum { GCW_ATOM = -32 } - -// #if(WINVER >= 0x0400) -enum { GCL_HICONSM = -34 } -// #endif /* WINVER >= 0x0400 */ - -// #ifdef _WIN64 - -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #endif /* _WIN64 */ - -enum { GCLP_MENUNAME = -8 } -enum { GCLP_HBRBACKGROUND = -10 } -enum { GCLP_HCURSOR = -12 } -enum { GCLP_HICON = -14 } -enum { GCLP_HMODULE = -16 } -enum { GCLP_WNDPROC = -24 } -enum { GCLP_HICONSM = -34 } - -// #endif /* !NOWINOFFSETS */ - -// #ifndef NOWINMESSAGES - -enum : uint { WM_NULL = 0x0000 } -enum : uint { WM_CREATE = 0x0001 } -enum : uint { WM_DESTROY = 0x0002 } -enum : uint { WM_MOVE = 0x0003 } -enum : uint { WM_SIZE = 0x0005 } - -enum : uint { WM_ACTIVATE = 0x0006 } - -enum : uint { WA_INACTIVE = 0 } -enum : uint { WA_ACTIVE = 1 } -enum : uint { WA_CLICKACTIVE = 2 } - -enum : uint { WM_SETFOCUS = 0x0007 } -enum : uint { WM_KILLFOCUS = 0x0008 } -enum : uint { WM_ENABLE = 0x000A } -enum : uint { WM_SETREDRAW = 0x000B } -enum : uint { WM_SETTEXT = 0x000C } -enum : uint { WM_GETTEXT = 0x000D } -enum : uint { WM_GETTEXTLENGTH = 0x000E } -enum : uint { WM_PAINT = 0x000F } -enum : uint { WM_CLOSE = 0x0010 } -// #ifndef _WIN32_WCE -enum : uint { WM_QUERYENDSESSION = 0x0011 } -enum : uint { WM_QUERYOPEN = 0x0013 } -enum : uint { WM_ENDSESSION = 0x0016 } -// #endif -enum : uint { WM_QUIT = 0x0012 } -enum : uint { WM_ERASEBKGND = 0x0014 } -enum : uint { WM_SYSCOLORCHANGE = 0x0015 } -enum : uint { WM_SHOWWINDOW = 0x0018 } -enum : uint { WM_WININICHANGE = 0x001A } -// #if(WINVER >= 0x0400) -alias WM_WININICHANGE WM_SETTINGCHANGE; -// #endif /* WINVER >= 0x0400 */ - -enum : uint { WM_DEVMODECHANGE = 0x001B } -enum : uint { WM_ACTIVATEAPP = 0x001C } -enum : uint { WM_FONTCHANGE = 0x001D } -enum : uint { WM_TIMECHANGE = 0x001E } -enum : uint { WM_CANCELMODE = 0x001F } -enum : uint { WM_SETCURSOR = 0x0020 } -enum : uint { WM_MOUSEACTIVATE = 0x0021 } -enum : uint { WM_CHILDACTIVATE = 0x0022 } -enum : uint { WM_QUEUESYNC = 0x0023 } - -enum : uint { WM_GETMINMAXINFO = 0x0024 } - -struct tagMINMAXINFO { - POINT ptReserved; - POINT ptMaxSize; - POINT ptMaxPosition; - POINT ptMinTrackSize; - POINT ptMaxTrackSize; -} -alias tagMINMAXINFO MINMAXINFO; -alias tagMINMAXINFO* PMINMAXINFO; -alias tagMINMAXINFO* LPMINMAXINFO; - -enum : uint { WM_PAINTICON = 0x0026 } -enum : uint { WM_ICONERASEBKGND = 0x0027 } -enum : uint { WM_NEXTDLGCTL = 0x0028 } -enum : uint { WM_SPOOLERSTATUS = 0x002A } -enum : uint { WM_DRAWITEM = 0x002B } -enum : uint { WM_MEASUREITEM = 0x002C } -enum : uint { WM_DELETEITEM = 0x002D } -enum : uint { WM_VKEYTOITEM = 0x002E } -enum : uint { WM_CHARTOITEM = 0x002F } -enum : uint { WM_SETFONT = 0x0030 } -enum : uint { WM_GETFONT = 0x0031 } -enum : uint { WM_SETHOTKEY = 0x0032 } -enum : uint { WM_GETHOTKEY = 0x0033 } -enum : uint { WM_QUERYDRAGICON = 0x0037 } -enum : uint { WM_COMPAREITEM = 0x0039 } -// #if(WINVER >= 0x0500) -// #ifndef _WIN32_WCE -enum : uint { WM_GETOBJECT = 0x003D } -// #endif -// #endif /* WINVER >= 0x0500 */ -enum : uint { WM_COMPACTING = 0x0041 } -enum : uint { WM_COMMNOTIFY = 0x0044 } -enum : uint { WM_WINDOWPOSCHANGING = 0x0046 } -enum : uint { WM_WINDOWPOSCHANGED = 0x0047 } - -enum : uint { WM_POWER = 0x0048 } - -enum : uint { PWR_OK = 1 } -enum { PWR_FAIL = -1 } -enum : uint { PWR_SUSPENDREQUEST = 1 } -enum : uint { PWR_SUSPENDRESUME = 2 } -enum : uint { PWR_CRITICALRESUME = 3 } - -enum : uint { WM_COPYDATA = 0x004A } -enum : uint { WM_CANCELJOURNAL = 0x004B } - -struct tagCOPYDATASTRUCT { - ULONG_PTR dwData; - DWORD cbData; - PVOID lpData; -} -alias tagCOPYDATASTRUCT COPYDATASTRUCT; -alias tagCOPYDATASTRUCT* PCOPYDATASTRUCT; - -// #if(WINVER >= 0x0400) -struct tagMDINEXTMENU { - HMENU hmenuIn; - HMENU hmenuNext; - HWND hwndNext; -} -alias tagMDINEXTMENU MDINEXTMENU; -alias tagMDINEXTMENU* PMDINEXTMENU; -alias tagMDINEXTMENU* LPMDINEXTMENU; - -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0400) -enum : uint { WM_NOTIFY = 0x004E } -enum : uint { WM_INPUTLANGCHANGEREQUEST = 0x0050 } -enum : uint { WM_INPUTLANGCHANGE = 0x0051 } -enum : uint { WM_TCARD = 0x0052 } -enum : uint { WM_HELP = 0x0053 } -enum : uint { WM_USERCHANGED = 0x0054 } -enum : uint { WM_NOTIFYFORMAT = 0x0055 } - -enum : uint { NFR_ANSI = 1 } -enum : uint { NFR_UNICODE = 2 } -enum : uint { NF_QUERY = 3 } -enum : uint { NF_REQUERY = 4 } - -enum : uint { WM_CONTEXTMENU = 0x007B } -enum : uint { WM_STYLECHANGING = 0x007C } -enum : uint { WM_STYLECHANGED = 0x007D } -enum : uint { WM_DISPLAYCHANGE = 0x007E } -enum : uint { WM_GETICON = 0x007F } -enum : uint { WM_SETICON = 0x0080 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { WM_NCCREATE = 0x0081 } -enum : uint { WM_NCDESTROY = 0x0082 } -enum : uint { WM_NCCALCSIZE = 0x0083 } -enum : uint { WM_NCHITTEST = 0x0084 } -enum : uint { WM_NCPAINT = 0x0085 } -enum : uint { WM_NCACTIVATE = 0x0086 } -enum : uint { WM_GETDLGCODE = 0x0087 } -// #ifndef _WIN32_WCE -enum : uint { WM_SYNCPAINT = 0x0088 } -// #endif -enum : uint { WM_NCMOUSEMOVE = 0x00A0 } -enum : uint { WM_NCLBUTTONDOWN = 0x00A1 } -enum : uint { WM_NCLBUTTONUP = 0x00A2 } -enum : uint { WM_NCLBUTTONDBLCLK = 0x00A3 } -enum : uint { WM_NCRBUTTONDOWN = 0x00A4 } -enum : uint { WM_NCRBUTTONUP = 0x00A5 } -enum : uint { WM_NCRBUTTONDBLCLK = 0x00A6 } -enum : uint { WM_NCMBUTTONDOWN = 0x00A7 } -enum : uint { WM_NCMBUTTONUP = 0x00A8 } -enum : uint { WM_NCMBUTTONDBLCLK = 0x00A9 } - -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { WM_NCXBUTTONDOWN = 0x00AB } -enum : uint { WM_NCXBUTTONUP = 0x00AC } -enum : uint { WM_NCXBUTTONDBLCLK = 0x00AD } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { WM_INPUT = 0x00FF } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { WM_KEYFIRST = 0x0100 } -enum : uint { WM_KEYDOWN = 0x0100 } -enum : uint { WM_KEYUP = 0x0101 } -enum : uint { WM_CHAR = 0x0102 } -enum : uint { WM_DEADCHAR = 0x0103 } -enum : uint { WM_SYSKEYDOWN = 0x0104 } -enum : uint { WM_SYSKEYUP = 0x0105 } -enum : uint { WM_SYSCHAR = 0x0106 } -enum : uint { WM_SYSDEADCHAR = 0x0107 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { WM_UNICHAR = 0x0109 } -enum : uint { WM_KEYLAST = 0x0109 } -enum : uint { UNICODE_NOCHAR = 0xFFFF } -// #else -// #... -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if(WINVER >= 0x0400) -enum : uint { WM_IME_STARTCOMPOSITION = 0x010D } -enum : uint { WM_IME_ENDCOMPOSITION = 0x010E } -enum : uint { WM_IME_COMPOSITION = 0x010F } -enum : uint { WM_IME_KEYLAST = 0x010F } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { WM_INITDIALOG = 0x0110 } -enum : uint { WM_COMMAND = 0x0111 } -enum : uint { WM_SYSCOMMAND = 0x0112 } -enum : uint { WM_TIMER = 0x0113 } -enum : uint { WM_HSCROLL = 0x0114 } -enum : uint { WM_VSCROLL = 0x0115 } -enum : uint { WM_INITMENU = 0x0116 } -enum : uint { WM_INITMENUPOPUP = 0x0117 } -enum : uint { WM_MENUSELECT = 0x011F } -enum : uint { WM_MENUCHAR = 0x0120 } -enum : uint { WM_ENTERIDLE = 0x0121 } -// #if(WINVER >= 0x0500) -// #ifndef _WIN32_WCE -enum : uint { WM_MENURBUTTONUP = 0x0122 } -enum : uint { WM_MENUDRAG = 0x0123 } -enum : uint { WM_MENUGETOBJECT = 0x0124 } -enum : uint { WM_UNINITMENUPOPUP = 0x0125 } -enum : uint { WM_MENUCOMMAND = 0x0126 } - -// #ifndef _WIN32_WCE -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { WM_CHANGEUISTATE = 0x0127 } -enum : uint { WM_UPDATEUISTATE = 0x0128 } -enum : uint { WM_QUERYUISTATE = 0x0129 } - -enum : uint { UIS_SET = 1 } -enum : uint { UIS_CLEAR = 2 } -enum : uint { UIS_INITIALIZE = 3 } - -enum : uint { UISF_HIDEFOCUS = 0x1 } -enum : uint { UISF_HIDEACCEL = 0x2 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { UISF_ACTIVE = 0x4 } -// #endif /* _WIN32_WINNT >= 0x0501 */ -// #endif /* _WIN32_WINNT >= 0x0500 */ -// #endif - -// #endif -// #endif /* WINVER >= 0x0500 */ - -enum : uint { WM_CTLCOLORMSGBOX = 0x0132 } -enum : uint { WM_CTLCOLOREDIT = 0x0133 } -enum : uint { WM_CTLCOLORLISTBOX = 0x0134 } -enum : uint { WM_CTLCOLORBTN = 0x0135 } -enum : uint { WM_CTLCOLORDLG = 0x0136 } -enum : uint { WM_CTLCOLORSCROLLBAR = 0x0137 } -enum : uint { WM_CTLCOLORSTATIC = 0x0138 } - -enum : uint { WM_MOUSEFIRST = 0x0200 } -enum : uint { WM_MOUSEMOVE = 0x0200 } -enum : uint { WM_LBUTTONDOWN = 0x0201 } -enum : uint { WM_LBUTTONUP = 0x0202 } -enum : uint { WM_LBUTTONDBLCLK = 0x0203 } -enum : uint { WM_RBUTTONDOWN = 0x0204 } -enum : uint { WM_RBUTTONUP = 0x0205 } -enum : uint { WM_RBUTTONDBLCLK = 0x0206 } -enum : uint { WM_MBUTTONDOWN = 0x0207 } -enum : uint { WM_MBUTTONUP = 0x0208 } -enum : uint { WM_MBUTTONDBLCLK = 0x0209 } -// #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) -enum : uint { WM_MOUSEWHEEL = 0x020A } -// #endif -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { WM_XBUTTONDOWN = 0x020B } -enum : uint { WM_XBUTTONUP = 0x020C } -enum : uint { WM_XBUTTONDBLCLK = 0x020D } -// #endif -// #if (_WIN32_WINNT >= 0x0500) -enum : uint { WM_MOUSELAST = 0x020D } -// #elif (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) -// #... -// #else -// #... -// #endif /* (_WIN32_WINNT >= 0x0500) */ - -// #if(_WIN32_WINNT >= 0x0400) - -enum : uint { WHEEL_DELTA = 120 } -// #define GET_WHEEL_DELTA_WPARAM(wParam) ((short)HIWORD(wParam)) - -enum : uint { WHEEL_PAGESCROLL = UINT_MAX } -// #endif /* _WIN32_WINNT >= 0x0400 */ - -// #if(_WIN32_WINNT >= 0x0500) -// #define GET_KEYSTATE_WPARAM(wParam) (LOWORD(wParam)) -// #define GET_NCHITTEST_WPARAM(wParam) ((short)LOWORD(wParam)) -// #define GET_XBUTTON_WPARAM(wParam) (HIWORD(wParam)) - -enum : uint { XBUTTON1 = 0x0001 } -enum : uint { XBUTTON2 = 0x0002 } - -// #endif /* _WIN32_WINNT >= 0x0500 */ - -enum : uint { WM_PARENTNOTIFY = 0x0210 } -enum : uint { WM_ENTERMENULOOP = 0x0211 } -enum : uint { WM_EXITMENULOOP = 0x0212 } - -// #if(WINVER >= 0x0400) -enum : uint { WM_NEXTMENU = 0x0213 } -enum : uint { WM_SIZING = 0x0214 } -enum : uint { WM_CAPTURECHANGED = 0x0215 } -enum : uint { WM_MOVING = 0x0216 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0400) - -enum : uint { WM_POWERBROADCAST = 0x0218 } - -// #ifndef _WIN32_WCE -enum : uint { PBT_APMQUERYSUSPEND = 0x0000 } -enum : uint { PBT_APMQUERYSTANDBY = 0x0001 } - -enum : uint { PBT_APMQUERYSUSPENDFAILED = 0x0002 } -enum : uint { PBT_APMQUERYSTANDBYFAILED = 0x0003 } - -enum : uint { PBT_APMSUSPEND = 0x0004 } -enum : uint { PBT_APMSTANDBY = 0x0005 } - -enum : uint { PBT_APMRESUMECRITICAL = 0x0006 } -enum : uint { PBT_APMRESUMESUSPEND = 0x0007 } -enum : uint { PBT_APMRESUMESTANDBY = 0x0008 } - -enum : uint { PBTF_APMRESUMEFROMFAILURE = 0x00000001 } - -enum : uint { PBT_APMBATTERYLOW = 0x0009 } -enum : uint { PBT_APMPOWERSTATUSCHANGE = 0x000A } - -enum : uint { PBT_APMOEMEVENT = 0x000B } -enum : uint { PBT_APMRESUMEAUTOMATIC = 0x0012 } -// #endif - -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0400) -enum : uint { WM_DEVICECHANGE = 0x0219 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { WM_MDICREATE = 0x0220 } -enum : uint { WM_MDIDESTROY = 0x0221 } -enum : uint { WM_MDIACTIVATE = 0x0222 } -enum : uint { WM_MDIRESTORE = 0x0223 } -enum : uint { WM_MDINEXT = 0x0224 } -enum : uint { WM_MDIMAXIMIZE = 0x0225 } -enum : uint { WM_MDITILE = 0x0226 } -enum : uint { WM_MDICASCADE = 0x0227 } -enum : uint { WM_MDIICONARRANGE = 0x0228 } -enum : uint { WM_MDIGETACTIVE = 0x0229 } - -enum : uint { WM_MDISETMENU = 0x0230 } -enum : uint { WM_ENTERSIZEMOVE = 0x0231 } -enum : uint { WM_EXITSIZEMOVE = 0x0232 } -enum : uint { WM_DROPFILES = 0x0233 } -enum : uint { WM_MDIREFRESHMENU = 0x0234 } - -// #if(WINVER >= 0x0400) -enum : uint { WM_IME_SETCONTEXT = 0x0281 } -enum : uint { WM_IME_NOTIFY = 0x0282 } -enum : uint { WM_IME_CONTROL = 0x0283 } -enum : uint { WM_IME_COMPOSITIONFULL = 0x0284 } -enum : uint { WM_IME_SELECT = 0x0285 } -enum : uint { WM_IME_CHAR = 0x0286 } -// #endif /* WINVER >= 0x0400 */ -// #if(WINVER >= 0x0500) -enum : uint { WM_IME_REQUEST = 0x0288 } -// #endif /* WINVER >= 0x0500 */ -// #if(WINVER >= 0x0400) -enum : uint { WM_IME_KEYDOWN = 0x0290 } -enum : uint { WM_IME_KEYUP = 0x0291 } -// #endif /* WINVER >= 0x0400 */ - -// #if((_WIN32_WINNT >= 0x0400) || (WINVER >= 0x0500)) -enum : uint { WM_MOUSEHOVER = 0x02A1 } -enum : uint { WM_MOUSELEAVE = 0x02A3 } -// #endif -// #if(WINVER >= 0x0500) -enum : uint { WM_NCMOUSEHOVER = 0x02A0 } -enum : uint { WM_NCMOUSELEAVE = 0x02A2 } -// #endif /* WINVER >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { WM_WTSSESSION_CHANGE = 0x02B1 } - -enum : uint { WM_TABLET_FIRST = 0x02c0 } -enum : uint { WM_TABLET_LAST = 0x02df } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { WM_CUT = 0x0300 } -enum : uint { WM_COPY = 0x0301 } -enum : uint { WM_PASTE = 0x0302 } -enum : uint { WM_CLEAR = 0x0303 } -enum : uint { WM_UNDO = 0x0304 } -enum : uint { WM_RENDERFORMAT = 0x0305 } -enum : uint { WM_RENDERALLFORMATS = 0x0306 } -enum : uint { WM_DESTROYCLIPBOARD = 0x0307 } -enum : uint { WM_DRAWCLIPBOARD = 0x0308 } -enum : uint { WM_PAINTCLIPBOARD = 0x0309 } -enum : uint { WM_VSCROLLCLIPBOARD = 0x030A } -enum : uint { WM_SIZECLIPBOARD = 0x030B } -enum : uint { WM_ASKCBFORMATNAME = 0x030C } -enum : uint { WM_CHANGECBCHAIN = 0x030D } -enum : uint { WM_HSCROLLCLIPBOARD = 0x030E } -enum : uint { WM_QUERYNEWPALETTE = 0x030F } -enum : uint { WM_PALETTEISCHANGING = 0x0310 } -enum : uint { WM_PALETTECHANGED = 0x0311 } -enum : uint { WM_HOTKEY = 0x0312 } - -// #if(WINVER >= 0x0400) -enum : uint { WM_PRINT = 0x0317 } -enum : uint { WM_PRINTCLIENT = 0x0318 } -// #endif /* WINVER >= 0x0400 */ - -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { WM_APPCOMMAND = 0x0319 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { WM_THEMECHANGED = 0x031A } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if(WINVER >= 0x0400) - -enum : uint { WM_HANDHELDFIRST = 0x0358 } -enum : uint { WM_HANDHELDLAST = 0x035F } - -enum : uint { WM_AFXFIRST = 0x0360 } -enum : uint { WM_AFXLAST = 0x037F } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { WM_PENWINFIRST = 0x0380 } -enum : uint { WM_PENWINLAST = 0x038F } - -// #if(WINVER >= 0x0400) -enum : uint { WM_APP = 0x8000 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { WM_USER = 0x0400 } - -// #if(WINVER >= 0x0400) - -enum : uint { WMSZ_LEFT = 1 } -enum : uint { WMSZ_RIGHT = 2 } -enum : uint { WMSZ_TOP = 3 } -enum : uint { WMSZ_TOPLEFT = 4 } -enum : uint { WMSZ_TOPRIGHT = 5 } -enum : uint { WMSZ_BOTTOM = 6 } -enum : uint { WMSZ_BOTTOMLEFT = 7 } -enum : uint { WMSZ_BOTTOMRIGHT = 8 } -// #endif /* WINVER >= 0x0400 */ - -// #ifndef NONCMESSAGES - -enum { HTERROR = -2 } -enum { HTTRANSPARENT = -1 } -enum : uint { HTNOWHERE = 0 } -enum : uint { HTCLIENT = 1 } -enum : uint { HTCAPTION = 2 } -enum : uint { HTSYSMENU = 3 } -enum : uint { HTGROWBOX = 4 } -alias HTGROWBOX HTSIZE; -enum : uint { HTMENU = 5 } -enum : uint { HTHSCROLL = 6 } -enum : uint { HTVSCROLL = 7 } -enum : uint { HTMINBUTTON = 8 } -enum : uint { HTMAXBUTTON = 9 } -enum : uint { HTLEFT = 10 } -enum : uint { HTRIGHT = 11 } -enum : uint { HTTOP = 12 } -enum : uint { HTTOPLEFT = 13 } -enum : uint { HTTOPRIGHT = 14 } -enum : uint { HTBOTTOM = 15 } -enum : uint { HTBOTTOMLEFT = 16 } -enum : uint { HTBOTTOMRIGHT = 17 } -enum : uint { HTBORDER = 18 } -alias HTMINBUTTON HTREDUCE; -alias HTMAXBUTTON HTZOOM; -alias HTLEFT HTSIZEFIRST; -alias HTBOTTOMRIGHT HTSIZELAST; -// #if(WINVER >= 0x0400) -enum : uint { HTOBJECT = 19 } -enum : uint { HTCLOSE = 20 } -enum : uint { HTHELP = 21 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { SMTO_NORMAL = 0x0000 } -enum : uint { SMTO_BLOCK = 0x0001 } -enum : uint { SMTO_ABORTIFHUNG = 0x0002 } -// #if(WINVER >= 0x0500) -enum : uint { SMTO_NOTIMEOUTIFNOTHUNG = 0x0008 } -// #endif /* WINVER >= 0x0500 */ -// #endif /* !NONCMESSAGES */ - -enum : uint { MA_ACTIVATE = 1 } -enum : uint { MA_ACTIVATEANDEAT = 2 } -enum : uint { MA_NOACTIVATE = 3 } -enum : uint { MA_NOACTIVATEANDEAT = 4 } - -enum : uint { ICON_SMALL = 0 } -enum : uint { ICON_BIG = 1 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { ICON_SMALL2 = 2 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export UINT RegisterWindowMessageA( - LPCSTR lpString); -extern(Windows) export UINT RegisterWindowMessageW( - LPCWSTR lpString); -// #ifdef UNICODE -alias RegisterWindowMessageW RegisterWindowMessage; -// #else -// #... -// #endif // !UNICODE - -enum : uint { SIZE_RESTORED = 0 } -enum : uint { SIZE_MINIMIZED = 1 } -enum : uint { SIZE_MAXIMIZED = 2 } -enum : uint { SIZE_MAXSHOW = 3 } -enum : uint { SIZE_MAXHIDE = 4 } - -alias SIZE_RESTORED SIZENORMAL; -alias SIZE_MINIMIZED SIZEICONIC; -alias SIZE_MAXIMIZED SIZEFULLSCREEN; -alias SIZE_MAXSHOW SIZEZOOMSHOW; -alias SIZE_MAXHIDE SIZEZOOMHIDE; - -struct tagWINDOWPOS { - HWND hwnd; - HWND hwndInsertAfter; - int x; - int y; - int cx; - int cy; - UINT flags; -} -alias tagWINDOWPOS WINDOWPOS; -alias tagWINDOWPOS* LPWINDOWPOS; -alias tagWINDOWPOS* PWINDOWPOS; - -struct tagNCCALCSIZE_PARAMS { - RECT rgrc[3]; - PWINDOWPOS lppos; -} -alias tagNCCALCSIZE_PARAMS NCCALCSIZE_PARAMS; -alias tagNCCALCSIZE_PARAMS* LPNCCALCSIZE_PARAMS; - -enum : uint { WVR_ALIGNTOP = 0x0010 } -enum : uint { WVR_ALIGNLEFT = 0x0020 } -enum : uint { WVR_ALIGNBOTTOM = 0x0040 } -enum : uint { WVR_ALIGNRIGHT = 0x0080 } -enum : uint { WVR_HREDRAW = 0x0100 } -enum : uint { WVR_VREDRAW = 0x0200 } -enum : uint { WVR_REDRAW = WVR_HREDRAW | WVR_VREDRAW } -enum : uint { WVR_VALIDRECTS = 0x0400 } - -// #ifndef NOKEYSTATES - -enum : uint { MK_LBUTTON = 0x0001 } -enum : uint { MK_RBUTTON = 0x0002 } -enum : uint { MK_SHIFT = 0x0004 } -enum : uint { MK_CONTROL = 0x0008 } -enum : uint { MK_MBUTTON = 0x0010 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { MK_XBUTTON1 = 0x0020 } -enum : uint { MK_XBUTTON2 = 0x0040 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #endif /* !NOKEYSTATES */ - -// #if(_WIN32_WINNT >= 0x0400) -// #ifndef NOTRACKMOUSEEVENT - -enum : uint { TME_HOVER = 0x00000001 } -enum : uint { TME_LEAVE = 0x00000002 } -// #if(WINVER >= 0x0500) -enum : uint { TME_NONCLIENT = 0x00000010 } -// #endif /* WINVER >= 0x0500 */ -enum : uint { TME_QUERY = 0x40000000 } -enum : uint { TME_CANCEL = 0x80000000 } - -enum : uint { HOVER_DEFAULT = 0xFFFFFFFF } -// #endif /* _WIN32_WINNT >= 0x0400 */ - -// #if(_WIN32_WINNT >= 0x0400) -struct tagTRACKMOUSEEVENT { - DWORD cbSize; - DWORD dwFlags; - HWND hwndTrack; - DWORD dwHoverTime; -} -alias tagTRACKMOUSEEVENT TRACKMOUSEEVENT; -alias tagTRACKMOUSEEVENT* LPTRACKMOUSEEVENT; - -extern(Windows) export BOOL TrackMouseEvent( - LPTRACKMOUSEEVENT lpEventTrack); -// #endif /* _WIN32_WINNT >= 0x0400 */ - -// #if(_WIN32_WINNT >= 0x0400) - -// #endif /* !NOTRACKMOUSEEVENT */ -// #endif /* _WIN32_WINNT >= 0x0400 */ - -// #endif /* !NOWINMESSAGES */ - -// #ifndef NOWINSTYLES - -enum : uint { WS_OVERLAPPED = 0x00000000 } -enum : uint { WS_POPUP = 0x80000000 } -enum : uint { WS_CHILD = 0x40000000 } -enum : uint { WS_MINIMIZE = 0x20000000 } -enum : uint { WS_VISIBLE = 0x10000000 } -enum : uint { WS_DISABLED = 0x08000000 } -enum : uint { WS_CLIPSIBLINGS = 0x04000000 } -enum : uint { WS_CLIPCHILDREN = 0x02000000 } -enum : uint { WS_MAXIMIZE = 0x01000000 } -enum : uint { WS_CAPTION = 0x00C00000 } -enum : uint { WS_BORDER = 0x00800000 } -enum : uint { WS_DLGFRAME = 0x00400000 } -enum : uint { WS_VSCROLL = 0x00200000 } -enum : uint { WS_HSCROLL = 0x00100000 } -enum : uint { WS_SYSMENU = 0x00080000 } -enum : uint { WS_THICKFRAME = 0x00040000 } -enum : uint { WS_GROUP = 0x00020000 } -enum : uint { WS_TABSTOP = 0x00010000 } - -enum : uint { WS_MINIMIZEBOX = 0x00020000 } -enum : uint { WS_MAXIMIZEBOX = 0x00010000 } - -alias WS_OVERLAPPED WS_TILED; -alias WS_MINIMIZE WS_ICONIC; -alias WS_THICKFRAME WS_SIZEBOX; -// #define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW - -enum : uint { WS_OVERLAPPEDWINDOW = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX } - -enum : uint { WS_POPUPWINDOW = WS_POPUP | WS_BORDER | WS_SYSMENU } - -enum : uint { WS_CHILDWINDOW = WS_CHILD } - -enum : uint { WS_EX_DLGMODALFRAME = 0x00000001 } -enum : uint { WS_EX_NOPARENTNOTIFY = 0x00000004 } -enum : uint { WS_EX_TOPMOST = 0x00000008 } -enum : uint { WS_EX_ACCEPTFILES = 0x00000010 } -enum : uint { WS_EX_TRANSPARENT = 0x00000020 } -// #if(WINVER >= 0x0400) -enum : uint { WS_EX_MDICHILD = 0x00000040 } -enum : uint { WS_EX_TOOLWINDOW = 0x00000080 } -enum : uint { WS_EX_WINDOWEDGE = 0x00000100 } -enum : uint { WS_EX_CLIENTEDGE = 0x00000200 } -enum : uint { WS_EX_CONTEXTHELP = 0x00000400 } - -// #endif /* WINVER >= 0x0400 */ -// #if(WINVER >= 0x0400) - -enum : uint { WS_EX_RIGHT = 0x00001000 } -enum : uint { WS_EX_LEFT = 0x00000000 } -enum : uint { WS_EX_RTLREADING = 0x00002000 } -enum : uint { WS_EX_LTRREADING = 0x00000000 } -enum : uint { WS_EX_LEFTSCROLLBAR = 0x00004000 } -enum : uint { WS_EX_RIGHTSCROLLBAR = 0x00000000 } - -enum : uint { WS_EX_CONTROLPARENT = 0x00010000 } -enum : uint { WS_EX_STATICEDGE = 0x00020000 } -enum : uint { WS_EX_APPWINDOW = 0x00040000 } - -enum : uint { WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE } -enum : uint { WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST } - -// #endif /* WINVER >= 0x0400 */ - -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { WS_EX_LAYERED = 0x00080000 } - -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(WINVER >= 0x0500) -enum : uint { WS_EX_NOINHERITLAYOUT = 0x00100000 } -enum : uint { WS_EX_LAYOUTRTL = 0x00400000 } -// #endif /* WINVER >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { WS_EX_COMPOSITED = 0x02000000 } -// #endif /* _WIN32_WINNT >= 0x0501 */ -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { WS_EX_NOACTIVATE = 0x08000000 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -enum : uint { CS_VREDRAW = 0x0001 } -enum : uint { CS_HREDRAW = 0x0002 } -enum : uint { CS_DBLCLKS = 0x0008 } -enum : uint { CS_OWNDC = 0x0020 } -enum : uint { CS_CLASSDC = 0x0040 } -enum : uint { CS_PARENTDC = 0x0080 } -enum : uint { CS_NOCLOSE = 0x0200 } -enum : uint { CS_SAVEBITS = 0x0800 } -enum : uint { CS_BYTEALIGNCLIENT = 0x1000 } -enum : uint { CS_BYTEALIGNWINDOW = 0x2000 } -enum : uint { CS_GLOBALCLASS = 0x4000 } - -enum : uint { CS_IME = 0x00010000 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { CS_DROPSHADOW = 0x00020000 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #endif /* !NOWINSTYLES */ -// #if(WINVER >= 0x0400) - -enum : uint { PRF_CHECKVISIBLE = 0x00000001 } -enum : uint { PRF_NONCLIENT = 0x00000002 } -enum : uint { PRF_CLIENT = 0x00000004 } -enum : uint { PRF_ERASEBKGND = 0x00000008 } -enum : uint { PRF_CHILDREN = 0x00000010 } -enum : uint { PRF_OWNED = 0x00000020 } - -enum : uint { BDR_RAISEDOUTER = 0x0001 } -enum : uint { BDR_SUNKENOUTER = 0x0002 } -enum : uint { BDR_RAISEDINNER = 0x0004 } -enum : uint { BDR_SUNKENINNER = 0x0008 } - -enum : uint { BDR_OUTER = BDR_RAISEDOUTER | BDR_SUNKENOUTER } -enum : uint { BDR_INNER = BDR_RAISEDINNER | BDR_SUNKENINNER } -enum : uint { BDR_RAISED = BDR_RAISEDOUTER | BDR_RAISEDINNER } -enum : uint { BDR_SUNKEN = BDR_SUNKENOUTER | BDR_SUNKENINNER } - -enum : uint { EDGE_RAISED = BDR_RAISEDOUTER | BDR_RAISEDINNER } -enum : uint { EDGE_SUNKEN = BDR_SUNKENOUTER | BDR_SUNKENINNER } -enum : uint { EDGE_ETCHED = BDR_SUNKENOUTER | BDR_RAISEDINNER } -enum : uint { EDGE_BUMP = BDR_RAISEDOUTER | BDR_SUNKENINNER } - -enum : uint { BF_LEFT = 0x0001 } -enum : uint { BF_TOP = 0x0002 } -enum : uint { BF_RIGHT = 0x0004 } -enum : uint { BF_BOTTOM = 0x0008 } - -enum : uint { BF_TOPLEFT = BF_TOP | BF_LEFT } -enum : uint { BF_TOPRIGHT = BF_TOP | BF_RIGHT } -enum : uint { BF_BOTTOMLEFT = BF_BOTTOM | BF_LEFT } -enum : uint { BF_BOTTOMRIGHT = BF_BOTTOM | BF_RIGHT } -enum : uint { BF_RECT = BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM } - -enum : uint { BF_DIAGONAL = 0x0010 } - -enum : uint { BF_DIAGONAL_ENDTOPRIGHT = BF_DIAGONAL | BF_TOP | BF_RIGHT } -enum : uint { BF_DIAGONAL_ENDTOPLEFT = BF_DIAGONAL | BF_TOP | BF_LEFT } -enum : uint { BF_DIAGONAL_ENDBOTTOMLEFT = BF_DIAGONAL | BF_BOTTOM | BF_LEFT } -enum : uint { BF_DIAGONAL_ENDBOTTOMRIGHT = BF_DIAGONAL | BF_BOTTOM | BF_RIGHT } - -enum : uint { BF_MIDDLE = 0x0800 } -enum : uint { BF_SOFT = 0x1000 } -enum : uint { BF_ADJUST = 0x2000 } -enum : uint { BF_FLAT = 0x4000 } -enum : uint { BF_MONO = 0x8000 } - -extern(Windows) export BOOL DrawEdge( - HDC hdc, - LPRECT qrc, - UINT edge, - UINT grfFlags); - -enum : uint { DFC_CAPTION = 1 } -enum : uint { DFC_MENU = 2 } -enum : uint { DFC_SCROLL = 3 } -enum : uint { DFC_BUTTON = 4 } -// #if(WINVER >= 0x0500) -enum : uint { DFC_POPUPMENU = 5 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { DFCS_CAPTIONCLOSE = 0x0000 } -enum : uint { DFCS_CAPTIONMIN = 0x0001 } -enum : uint { DFCS_CAPTIONMAX = 0x0002 } -enum : uint { DFCS_CAPTIONRESTORE = 0x0003 } -enum : uint { DFCS_CAPTIONHELP = 0x0004 } - -enum : uint { DFCS_MENUARROW = 0x0000 } -enum : uint { DFCS_MENUCHECK = 0x0001 } -enum : uint { DFCS_MENUBULLET = 0x0002 } -enum : uint { DFCS_MENUARROWRIGHT = 0x0004 } -enum : uint { DFCS_SCROLLUP = 0x0000 } -enum : uint { DFCS_SCROLLDOWN = 0x0001 } -enum : uint { DFCS_SCROLLLEFT = 0x0002 } -enum : uint { DFCS_SCROLLRIGHT = 0x0003 } -enum : uint { DFCS_SCROLLCOMBOBOX = 0x0005 } -enum : uint { DFCS_SCROLLSIZEGRIP = 0x0008 } -enum : uint { DFCS_SCROLLSIZEGRIPRIGHT = 0x0010 } - -enum : uint { DFCS_BUTTONCHECK = 0x0000 } -enum : uint { DFCS_BUTTONRADIOIMAGE = 0x0001 } -enum : uint { DFCS_BUTTONRADIOMASK = 0x0002 } -enum : uint { DFCS_BUTTONRADIO = 0x0004 } -enum : uint { DFCS_BUTTON3STATE = 0x0008 } -enum : uint { DFCS_BUTTONPUSH = 0x0010 } - -enum : uint { DFCS_INACTIVE = 0x0100 } -enum : uint { DFCS_PUSHED = 0x0200 } -enum : uint { DFCS_CHECKED = 0x0400 } - -// #if(WINVER >= 0x0500) -enum : uint { DFCS_TRANSPARENT = 0x0800 } -enum : uint { DFCS_HOT = 0x1000 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { DFCS_ADJUSTRECT = 0x2000 } -enum : uint { DFCS_FLAT = 0x4000 } -enum : uint { DFCS_MONO = 0x8000 } - -extern(Windows) export BOOL DrawFrameControl( - HDC, - LPRECT, - UINT, - UINT); - -enum : uint { DC_ACTIVE = 0x0001 } -enum : uint { DC_SMALLCAP = 0x0002 } -enum : uint { DC_ICON = 0x0004 } -enum : uint { DC_TEXT = 0x0008 } -enum : uint { DC_INBUTTON = 0x0010 } -// #if(WINVER >= 0x0500) -enum : uint { DC_GRADIENT = 0x0020 } -// #endif /* WINVER >= 0x0500 */ -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { DC_BUTTONS = 0x1000 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export BOOL DrawCaption(HWND, HDC, RECT *, UINT); - -enum : uint { IDANI_OPEN = 1 } -enum : uint { IDANI_CAPTION = 3 } - -extern(Windows) export BOOL DrawAnimatedRects( - HWND hwnd, - int idAni, - RECT * lprcFrom, - RECT * lprcTo); - -// #endif /* WINVER >= 0x0400 */ - -// #ifndef NOCLIPBOARD - -enum : uint { CF_TEXT = 1 } -enum : uint { CF_BITMAP = 2 } -enum : uint { CF_METAFILEPICT = 3 } -enum : uint { CF_SYLK = 4 } -enum : uint { CF_DIF = 5 } -enum : uint { CF_TIFF = 6 } -enum : uint { CF_OEMTEXT = 7 } -enum : uint { CF_DIB = 8 } -enum : uint { CF_PALETTE = 9 } -enum : uint { CF_PENDATA = 10 } -enum : uint { CF_RIFF = 11 } -enum : uint { CF_WAVE = 12 } -enum : uint { CF_UNICODETEXT = 13 } -enum : uint { CF_ENHMETAFILE = 14 } -// #if(WINVER >= 0x0400) -enum : uint { CF_HDROP = 15 } -enum : uint { CF_LOCALE = 16 } -// #endif /* WINVER >= 0x0400 */ -// #if(WINVER >= 0x0500) -enum : uint { CF_DIBV5 = 17 } -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0500) -enum : uint { CF_MAX = 18 } -// #elif(WINVER >= 0x0400) -// #... -// #else -// #... -// #endif - -enum : uint { CF_OWNERDISPLAY = 0x0080 } -enum : uint { CF_DSPTEXT = 0x0081 } -enum : uint { CF_DSPBITMAP = 0x0082 } -enum : uint { CF_DSPMETAFILEPICT = 0x0083 } -enum : uint { CF_DSPENHMETAFILE = 0x008E } - -enum : uint { CF_PRIVATEFIRST = 0x0200 } -enum : uint { CF_PRIVATELAST = 0x02FF } - -enum : uint { CF_GDIOBJFIRST = 0x0300 } -enum : uint { CF_GDIOBJLAST = 0x03FF } - -// #endif /* !NOCLIPBOARD */ - -alias TRUE FVIRTKEY; -enum : uint { FNOINVERT = 0x02 } -enum : uint { FSHIFT = 0x04 } -enum : uint { FCONTROL = 0x08 } -enum : uint { FALT = 0x10 } - -struct tagACCEL { -// #ifndef _MAC - BYTE fVirt; - WORD key; - WORD cmd; -// #else -// ... -// #endif -} -alias tagACCEL ACCEL; -alias tagACCEL* LPACCEL; - -struct tagPAINTSTRUCT { - HDC hdc; - BOOL fErase; - RECT rcPaint; - BOOL fRestore; - BOOL fIncUpdate; - BYTE rgbReserved[32]; -} -alias tagPAINTSTRUCT PAINTSTRUCT; -alias tagPAINTSTRUCT* PPAINTSTRUCT; -alias tagPAINTSTRUCT* NPPAINTSTRUCT; -alias tagPAINTSTRUCT* LPPAINTSTRUCT; - -struct tagCREATESTRUCTA { - LPVOID lpCreateParams; - HINSTANCE hInstance; - HMENU hMenu; - HWND hwndParent; - int cy; - int cx; - int y; - int x; - LONG style; - LPCSTR lpszName; - LPCSTR lpszClass; - DWORD dwExStyle; -} -alias tagCREATESTRUCTA CREATESTRUCTA; -alias tagCREATESTRUCTA* LPCREATESTRUCTA; - -struct tagCREATESTRUCTW { - LPVOID lpCreateParams; - HINSTANCE hInstance; - HMENU hMenu; - HWND hwndParent; - int cy; - int cx; - int y; - int x; - LONG style; - LPCWSTR lpszName; - LPCWSTR lpszClass; - DWORD dwExStyle; -} -alias tagCREATESTRUCTW CREATESTRUCTW; -alias tagCREATESTRUCTW* LPCREATESTRUCTW; - -// #ifdef UNICODE -alias CREATESTRUCTW CREATESTRUCT; -alias LPCREATESTRUCTW LPCREATESTRUCT; -// #else -// ... -// #endif // UNICODE - -struct tagWINDOWPLACEMENT { - UINT length; - UINT flags; - UINT showCmd; - POINT ptMinPosition; - POINT ptMaxPosition; - RECT rcNormalPosition; -// #ifdef _MAC -// ... -// #endif -} -alias tagWINDOWPLACEMENT WINDOWPLACEMENT; - -alias WINDOWPLACEMENT* PWINDOWPLACEMENT; -alias WINDOWPLACEMENT* LPWINDOWPLACEMENT; - -enum : uint { WPF_SETMINPOSITION = 0x0001 } -enum : uint { WPF_RESTORETOMAXIMIZED = 0x0002 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { WPF_ASYNCWINDOWPLACEMENT = 0x0004 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(WINVER >= 0x0400) -struct tagNMHDR { - HWND hwndFrom; - UINT_PTR idFrom; - UINT code; -} -alias tagNMHDR NMHDR; - -alias NMHDR* LPNMHDR; - -struct tagSTYLESTRUCT { - DWORD styleOld; - DWORD styleNew; -} -alias tagSTYLESTRUCT STYLESTRUCT; -alias tagSTYLESTRUCT* LPSTYLESTRUCT; - -// #endif /* WINVER >= 0x0400 */ - -enum : uint { ODT_MENU = 1 } -enum : uint { ODT_LISTBOX = 2 } -enum : uint { ODT_COMBOBOX = 3 } -enum : uint { ODT_BUTTON = 4 } -// #if(WINVER >= 0x0400) -enum : uint { ODT_STATIC = 5 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { ODA_DRAWENTIRE = 0x0001 } -enum : uint { ODA_SELECT = 0x0002 } -enum : uint { ODA_FOCUS = 0x0004 } - -enum : uint { ODS_SELECTED = 0x0001 } -enum : uint { ODS_GRAYED = 0x0002 } -enum : uint { ODS_DISABLED = 0x0004 } -enum : uint { ODS_CHECKED = 0x0008 } -enum : uint { ODS_FOCUS = 0x0010 } -// #if(WINVER >= 0x0400) -enum : uint { ODS_DEFAULT = 0x0020 } -enum : uint { ODS_COMBOBOXEDIT = 0x1000 } -// #endif /* WINVER >= 0x0400 */ -// #if(WINVER >= 0x0500) -enum : uint { ODS_HOTLIGHT = 0x0040 } -enum : uint { ODS_INACTIVE = 0x0080 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { ODS_NOACCEL = 0x0100 } -enum : uint { ODS_NOFOCUSRECT = 0x0200 } -// #endif /* _WIN32_WINNT >= 0x0500 */ -// #endif /* WINVER >= 0x0500 */ - -struct tagMEASUREITEMSTRUCT { - UINT CtlType; - UINT CtlID; - UINT itemID; - UINT itemWidth; - UINT itemHeight; - ULONG_PTR itemData; -} -alias tagMEASUREITEMSTRUCT MEASUREITEMSTRUCT; -alias tagMEASUREITEMSTRUCT* PMEASUREITEMSTRUCT; -alias tagMEASUREITEMSTRUCT* LPMEASUREITEMSTRUCT; - -struct tagDRAWITEMSTRUCT { - UINT CtlType; - UINT CtlID; - UINT itemID; - UINT itemAction; - UINT itemState; - HWND hwndItem; - HDC hDC; - RECT rcItem; - ULONG_PTR itemData; -} -alias tagDRAWITEMSTRUCT DRAWITEMSTRUCT; -alias tagDRAWITEMSTRUCT* PDRAWITEMSTRUCT; -alias tagDRAWITEMSTRUCT* LPDRAWITEMSTRUCT; - -struct tagDELETEITEMSTRUCT { - UINT CtlType; - UINT CtlID; - UINT itemID; - HWND hwndItem; - ULONG_PTR itemData; -} -alias tagDELETEITEMSTRUCT DELETEITEMSTRUCT; -alias tagDELETEITEMSTRUCT* PDELETEITEMSTRUCT; -alias tagDELETEITEMSTRUCT* LPDELETEITEMSTRUCT; - -struct tagCOMPAREITEMSTRUCT { - UINT CtlType; - UINT CtlID; - HWND hwndItem; - UINT itemID1; - ULONG_PTR itemData1; - UINT itemID2; - ULONG_PTR itemData2; - DWORD dwLocaleId; -} -alias tagCOMPAREITEMSTRUCT COMPAREITEMSTRUCT; -alias tagCOMPAREITEMSTRUCT* PCOMPAREITEMSTRUCT; -alias tagCOMPAREITEMSTRUCT* LPCOMPAREITEMSTRUCT; - -// #ifndef NOMSG - -extern(Windows) export BOOL GetMessageA( - LPMSG lpMsg, - HWND hWnd, - UINT wMsgFilterMin, - UINT wMsgFilterMax); -extern(Windows) export BOOL GetMessageW( - LPMSG lpMsg, - HWND hWnd, - UINT wMsgFilterMin, - UINT wMsgFilterMax); -// #ifdef UNICODE -alias GetMessageW GetMessage; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL TranslateMessage( - MSG *lpMsg); - -extern(Windows) export LRESULT DispatchMessageA( - MSG *lpMsg); -extern(Windows) export LRESULT DispatchMessageW( - MSG *lpMsg); -// #ifdef UNICODE -alias DispatchMessageW DispatchMessage; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetMessageQueue( - int cMessagesMax); - -extern(Windows) export BOOL PeekMessageA( - LPMSG lpMsg, - HWND hWnd, - UINT wMsgFilterMin, - UINT wMsgFilterMax, - UINT wRemoveMsg); -extern(Windows) export BOOL PeekMessageW( - LPMSG lpMsg, - HWND hWnd, - UINT wMsgFilterMin, - UINT wMsgFilterMax, - UINT wRemoveMsg); -// #ifdef UNICODE -alias PeekMessageW PeekMessage; -// #else -// #... -// #endif // !UNICODE - -enum : uint { PM_NOREMOVE = 0x0000 } -enum : uint { PM_REMOVE = 0x0001 } -enum : uint { PM_NOYIELD = 0x0002 } -// #if(WINVER >= 0x0500) -enum : uint { PM_QS_INPUT = QS_INPUT << 16 } -enum : uint { PM_QS_POSTMESSAGE = (QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16 } -enum : uint { PM_QS_PAINT = QS_PAINT << 16 } -enum : uint { PM_QS_SENDMESSAGE = QS_SENDMESSAGE << 16 } -// #endif /* WINVER >= 0x0500 */ - -// #endif /* !NOMSG */ - -extern(Windows) export BOOL RegisterHotKey( - HWND hWnd, - int id, - UINT fsModifiers, - UINT vk); - -extern(Windows) export BOOL UnregisterHotKey( - HWND hWnd, - int id); - -enum : uint { MOD_ALT = 0x0001 } -enum : uint { MOD_CONTROL = 0x0002 } -enum : uint { MOD_SHIFT = 0x0004 } -enum : uint { MOD_WIN = 0x0008 } - -enum { IDHOT_SNAPWINDOW = -1 } -enum { IDHOT_SNAPDESKTOP = -2 } - -// #ifdef WIN_INTERNAL -// #ifndef LSTRING -// #... -// #endif /* LSTRING */ -// #ifndef LFILEIO -// #... -// #endif /* LFILEIO */ -// #endif /* WIN_INTERNAL */ - -// #if(WINVER >= 0x0400) - -enum : uint { ENDSESSION_LOGOFF = 0x80000000 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { EWX_LOGOFF = 0 } -enum : uint { EWX_SHUTDOWN = 0x00000001 } -enum : uint { EWX_REBOOT = 0x00000002 } -enum : uint { EWX_FORCE = 0x00000004 } -enum : uint { EWX_POWEROFF = 0x00000008 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { EWX_FORCEIFHUNG = 0x00000010 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -BOOL ExitWindows(DWORD dwReserved, UINT Code){ return ExitWindowsEx(EWX_LOGOFF, 0xFFFFFFFF); } - -extern(Windows) export BOOL ExitWindowsEx( - UINT uFlags, - DWORD dwReserved); - -extern(Windows) export BOOL SwapMouseButton( - BOOL fSwap); - -extern(Windows) export DWORD GetMessagePos(); - -extern(Windows) export LONG GetMessageTime(); - -extern(Windows) export LPARAM GetMessageExtraInfo(); - -// #if(WINVER >= 0x0400) -extern(Windows) export LPARAM SetMessageExtraInfo( - LPARAM lParam); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export LRESULT SendMessageA( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -extern(Windows) export LRESULT SendMessageW( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -// #ifdef UNICODE -alias SendMessageW SendMessage; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LRESULT SendMessageTimeoutA( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam, - UINT fuFlags, - UINT uTimeout, - PDWORD_PTR lpdwResult); -extern(Windows) export LRESULT SendMessageTimeoutW( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam, - UINT fuFlags, - UINT uTimeout, - PDWORD_PTR lpdwResult); -// #ifdef UNICODE -alias SendMessageTimeoutW SendMessageTimeout; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SendNotifyMessageA( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -extern(Windows) export BOOL SendNotifyMessageW( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -// #ifdef UNICODE -alias SendNotifyMessageW SendNotifyMessage; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SendMessageCallbackA( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam, - SENDASYNCPROC lpResultCallBack, - ULONG_PTR dwData); -extern(Windows) export BOOL SendMessageCallbackW( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam, - SENDASYNCPROC lpResultCallBack, - ULONG_PTR dwData); -// #ifdef UNICODE -alias SendMessageCallbackW SendMessageCallback; -// #else -// #... -// #endif // !UNICODE - -// #if(_WIN32_WINNT >= 0x0501) -struct _0 { - UINT cbSize; - HDESK hdesk; - HWND hwnd; - LUID luid; -} -alias _0 BSMINFO; -alias _0* PBSMINFO; - -extern(Windows) export int BroadcastSystemMessageExA( - DWORD, - LPDWORD, - UINT, - WPARAM, - LPARAM, - PBSMINFO); -extern(Windows) export int BroadcastSystemMessageExW( - DWORD, - LPDWORD, - UINT, - WPARAM, - LPARAM, - PBSMINFO); -// #ifdef UNICODE -alias BroadcastSystemMessageExW BroadcastSystemMessageEx; -// #else -// #... -// #endif // !UNICODE -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if(WINVER >= 0x0400) - -// #if defined(_WIN32_WINNT) -extern(Windows) export int BroadcastSystemMessageA( - DWORD, - LPDWORD, - UINT, - WPARAM, - LPARAM); -extern(Windows) export int BroadcastSystemMessageW( - DWORD, - LPDWORD, - UINT, - WPARAM, - LPARAM); -// #ifdef UNICODE -alias BroadcastSystemMessageW BroadcastSystemMessage; -// #else -// #... -// #endif // !UNICODE -// #elif defined(_WIN32_WINDOWS) - -// ... - -// #endif - -enum : uint { BSM_ALLCOMPONENTS = 0x00000000 } -enum : uint { BSM_VXDS = 0x00000001 } -enum : uint { BSM_NETDRIVER = 0x00000002 } -enum : uint { BSM_INSTALLABLEDRIVERS = 0x00000004 } -enum : uint { BSM_APPLICATIONS = 0x00000008 } -enum : uint { BSM_ALLDESKTOPS = 0x00000010 } - -enum : uint { BSF_QUERY = 0x00000001 } -enum : uint { BSF_IGNORECURRENTTASK = 0x00000002 } -enum : uint { BSF_FLUSHDISK = 0x00000004 } -enum : uint { BSF_NOHANG = 0x00000008 } -enum : uint { BSF_POSTMESSAGE = 0x00000010 } -enum : uint { BSF_FORCEIFHUNG = 0x00000020 } -enum : uint { BSF_NOTIMEOUTIFNOTHUNG = 0x00000040 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { BSF_ALLOWSFW = 0x00000080 } -enum : uint { BSF_SENDNOTIFYMESSAGE = 0x00000100 } -// #endif /* _WIN32_WINNT >= 0x0500 */ -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { BSF_RETURNHDESK = 0x00000200 } -enum : uint { BSF_LUID = 0x00000400 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { BROADCAST_QUERY_DENY = 0x424D5144 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -alias PVOID HDEVNOTIFY; -alias HDEVNOTIFY* PHDEVNOTIFY; - -enum : uint { DEVICE_NOTIFY_WINDOW_HANDLE = 0x00000000 } -enum : uint { DEVICE_NOTIFY_SERVICE_HANDLE = 0x00000001 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { DEVICE_NOTIFY_ALL_INTERFACE_CLASSES = 0x00000004 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export HDEVNOTIFY RegisterDeviceNotificationA( - HANDLE hRecipient, - LPVOID NotificationFilter, - DWORD Flags); -extern(Windows) export HDEVNOTIFY RegisterDeviceNotificationW( - HANDLE hRecipient, - LPVOID NotificationFilter, - DWORD Flags); -// #ifdef UNICODE -alias RegisterDeviceNotificationW RegisterDeviceNotification; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL UnregisterDeviceNotification( - HDEVNOTIFY Handle); -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export BOOL PostMessageA( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -extern(Windows) export BOOL PostMessageW( - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -// #ifdef UNICODE -alias PostMessageW PostMessage; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL PostThreadMessageA( - DWORD idThread, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -extern(Windows) export BOOL PostThreadMessageW( - DWORD idThread, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -// #ifdef UNICODE -alias PostThreadMessageW PostThreadMessage; -// #else -// #... -// #endif // !UNICODE - -alias PostThreadMessageA PostAppMessageA; -alias PostThreadMessageW PostAppMessageW; -// #ifdef UNICODE -alias PostAppMessageW PostAppMessage; -// #else -// #... -// #endif // !UNICODE - -const HWND HWND_BROADCAST = cast(HWND)0xffff; - -// #if(WINVER >= 0x0500) -const HWND HWND_MESSAGE = cast(HWND)-3; -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export BOOL AttachThreadInput( - DWORD idAttach, - DWORD idAttachTo, - BOOL fAttach); - -extern(Windows) export BOOL ReplyMessage( - LRESULT lResult); - -extern(Windows) export BOOL WaitMessage(); - -extern(Windows) export DWORD WaitForInputIdle( - HANDLE hProcess, - DWORD dwMilliseconds); - -extern(Windows) export LRESULT DefWindowProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); -extern(Windows) export LRESULT DefWindowProcW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); -// #ifdef UNICODE -alias DefWindowProcW DefWindowProc; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export VOID PostQuitMessage( - int nExitCode); - -// #ifdef STRICT - -extern(Windows) export LRESULT CallWindowProcA( - WNDPROC lpPrevWndFunc, - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -extern(Windows) export LRESULT CallWindowProcW( - WNDPROC lpPrevWndFunc, - HWND hWnd, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -// #ifdef UNICODE -alias CallWindowProcW CallWindowProc; -// #else -// #... -// #endif // !UNICODE - -// #else /* !STRICT */ - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #endif /* !STRICT */ - -extern(Windows) export BOOL InSendMessage(); - -// #if(WINVER >= 0x0500) -extern(Windows) export DWORD InSendMessageEx( - LPVOID lpReserved); - -enum : uint { ISMEX_NOSEND = 0x00000000 } -enum : uint { ISMEX_SEND = 0x00000001 } -enum : uint { ISMEX_NOTIFY = 0x00000002 } -enum : uint { ISMEX_CALLBACK = 0x00000004 } -enum : uint { ISMEX_REPLIED = 0x00000008 } -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export UINT GetDoubleClickTime(); - -extern(Windows) export BOOL SetDoubleClickTime( - UINT); - -extern(Windows) export ATOM RegisterClassA( - WNDCLASSA *lpWndClass); -extern(Windows) export ATOM RegisterClassW( - WNDCLASSW *lpWndClass); -// #ifdef UNICODE -alias RegisterClassW RegisterClass; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL UnregisterClassA( - LPCSTR lpClassName, - HINSTANCE hInstance); -extern(Windows) export BOOL UnregisterClassW( - LPCWSTR lpClassName, - HINSTANCE hInstance); -// #ifdef UNICODE -alias UnregisterClassW UnregisterClass; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetClassInfoA( - HINSTANCE hInstance, - LPCSTR lpClassName, - LPWNDCLASSA lpWndClass); -extern(Windows) export BOOL GetClassInfoW( - HINSTANCE hInstance, - LPCWSTR lpClassName, - LPWNDCLASSW lpWndClass); -// #ifdef UNICODE -alias GetClassInfoW GetClassInfo; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export ATOM RegisterClassExA( - WNDCLASSEXA *); -extern(Windows) export ATOM RegisterClassExW( - WNDCLASSEXW *); -// #ifdef UNICODE -alias RegisterClassExW RegisterClassEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetClassInfoExA( - HINSTANCE, - LPCSTR, - LPWNDCLASSEXA); -extern(Windows) export BOOL GetClassInfoExW( - HINSTANCE, - LPCWSTR, - LPWNDCLASSEXW); -// #ifdef UNICODE -alias GetClassInfoExW GetClassInfoEx; -// #else -// #... -// #endif // !UNICODE - -// #endif /* WINVER >= 0x0400 */ - -enum { CW_USEDEFAULT = int.min } - -const HWND HWND_DESKTOP = cast(HWND)0; - -// #if(_WIN32_WINNT >= 0x0501) -extern(Windows) alias BOOLEAN function(LPCWSTR) PREGISTERCLASSNAMEW; -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export HWND CreateWindowExA( - DWORD dwExStyle, - LPCSTR lpClassName, - LPCSTR lpWindowName, - DWORD dwStyle, - int X, - int Y, - int nWidth, - int nHeight, - HWND hWndParent, - HMENU hMenu, - HINSTANCE hInstance, - LPVOID lpParam); -extern(Windows) export HWND CreateWindowExW( - DWORD dwExStyle, - LPCWSTR lpClassName, - LPCWSTR lpWindowName, - DWORD dwStyle, - int X, - int Y, - int nWidth, - int nHeight, - HWND hWndParent, - HMENU hMenu, - HINSTANCE hInstance, - LPVOID lpParam); -// #ifdef UNICODE -alias CreateWindowExW CreateWindowEx; -// #else -// #... -// #endif // !UNICODE - -HWND CreateWindowA(LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam){ return CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); } -HWND CreateWindowW(LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam){ return CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); } -// #ifdef UNICODE -alias CreateWindowW CreateWindow; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL IsWindow( - HWND hWnd); - -extern(Windows) export BOOL IsMenu( - HMENU hMenu); - -extern(Windows) export BOOL IsChild( - HWND hWndParent, - HWND hWnd); - -extern(Windows) export BOOL DestroyWindow( - HWND hWnd); - -extern(Windows) export BOOL ShowWindow( - HWND hWnd, - int nCmdShow); - -// #if(WINVER >= 0x0500) -extern(Windows) export BOOL AnimateWindow( - HWND hWnd, - DWORD dwTime, - DWORD dwFlags); -// #endif /* WINVER >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0500) -// #if defined(_WINGDI_) && !defined (NOGDI) - -// ... -// #endif - -// #if(_WIN32_WINNT >= 0x0501) -extern(Windows) export BOOL GetLayeredWindowAttributes( - HWND hwnd, - COLORREF *pcrKey, - BYTE *pbAlpha, - DWORD *pdwFlags); - -enum : uint { PW_CLIENTONLY = 0x00000001 } - -extern(Windows) export BOOL PrintWindow( - HWND hwnd, - HDC hdcBlt, - UINT nFlags); - -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export BOOL SetLayeredWindowAttributes( - HWND hwnd, - COLORREF crKey, - BYTE bAlpha, - DWORD dwFlags); - -enum : uint { LWA_COLORKEY = 0x00000001 } -enum : uint { LWA_ALPHA = 0x00000002 } - -enum : uint { ULW_COLORKEY = 0x00000001 } -enum : uint { ULW_ALPHA = 0x00000002 } -enum : uint { ULW_OPAQUE = 0x00000004 } - -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(WINVER >= 0x0400) -extern(Windows) export BOOL ShowWindowAsync( - HWND hWnd, - int nCmdShow); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL FlashWindow( - HWND hWnd, - BOOL bInvert); - -// #if(WINVER >= 0x0500) -struct _1 { - UINT cbSize; - HWND hwnd; - DWORD dwFlags; - UINT uCount; - DWORD dwTimeout; -} -alias _1 FLASHWINFO; -alias _1* PFLASHWINFO; - -extern(Windows) export BOOL FlashWindowEx( - PFLASHWINFO pfwi); - -enum : uint { FLASHW_STOP = 0 } -enum : uint { FLASHW_CAPTION = 0x00000001 } -enum : uint { FLASHW_TRAY = 0x00000002 } -enum : uint { FLASHW_ALL = FLASHW_CAPTION | FLASHW_TRAY } -enum : uint { FLASHW_TIMER = 0x00000004 } -enum : uint { FLASHW_TIMERNOFG = 0x0000000C } - -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export BOOL ShowOwnedPopups( - HWND hWnd, - BOOL fShow); - -extern(Windows) export BOOL OpenIcon( - HWND hWnd); - -extern(Windows) export BOOL CloseWindow( - HWND hWnd); - -extern(Windows) export BOOL MoveWindow( - HWND hWnd, - int X, - int Y, - int nWidth, - int nHeight, - BOOL bRepaint); - -extern(Windows) export BOOL SetWindowPos( - HWND hWnd, - HWND hWndInsertAfter, - int X, - int Y, - int cx, - int cy, - UINT uFlags); - -extern(Windows) export BOOL GetWindowPlacement( - HWND hWnd, - WINDOWPLACEMENT *lpwndpl); - -extern(Windows) export BOOL SetWindowPlacement( - HWND hWnd, - WINDOWPLACEMENT *lpwndpl); - -// #ifndef NODEFERWINDOWPOS - -extern(Windows) export HDWP BeginDeferWindowPos( - int nNumWindows); - -extern(Windows) export HDWP DeferWindowPos( - HDWP hWinPosInfo, - HWND hWnd, - HWND hWndInsertAfter, - int x, - int y, - int cx, - int cy, - UINT uFlags); - -extern(Windows) export BOOL EndDeferWindowPos( - HDWP hWinPosInfo); - -// #endif /* !NODEFERWINDOWPOS */ - -extern(Windows) export BOOL IsWindowVisible( - HWND hWnd); - -extern(Windows) export BOOL IsIconic( - HWND hWnd); - -extern(Windows) export BOOL AnyPopup(); - -extern(Windows) export BOOL BringWindowToTop( - HWND hWnd); - -extern(Windows) export BOOL IsZoomed( - HWND hWnd); - -enum : uint { SWP_NOSIZE = 0x0001 } -enum : uint { SWP_NOMOVE = 0x0002 } -enum : uint { SWP_NOZORDER = 0x0004 } -enum : uint { SWP_NOREDRAW = 0x0008 } -enum : uint { SWP_NOACTIVATE = 0x0010 } -enum : uint { SWP_FRAMECHANGED = 0x0020 } -enum : uint { SWP_SHOWWINDOW = 0x0040 } -enum : uint { SWP_HIDEWINDOW = 0x0080 } -enum : uint { SWP_NOCOPYBITS = 0x0100 } -enum : uint { SWP_NOOWNERZORDER = 0x0200 } -enum : uint { SWP_NOSENDCHANGING = 0x0400 } - -alias SWP_FRAMECHANGED SWP_DRAWFRAME; -alias SWP_NOOWNERZORDER SWP_NOREPOSITION; - -// #if(WINVER >= 0x0400) -enum : uint { SWP_DEFERERASE = 0x2000 } -enum : uint { SWP_ASYNCWINDOWPOS = 0x4000 } -// #endif /* WINVER >= 0x0400 */ - -const HWND HWND_TOP = cast(HWND)0; -const HWND HWND_BOTTOM = cast(HWND)1; -const HWND HWND_TOPMOST = cast(HWND)-1; -const HWND HWND_NOTOPMOST = cast(HWND)-2; - -// #ifndef NOCTLMGR - -align(2): - -struct _2 { - DWORD style; - DWORD dwExtendedStyle; - WORD cdit; - short x; - short y; - short cx; - short cy; -} -alias _2 DLGTEMPLATE; - -alias DLGTEMPLATE* LPDLGTEMPLATEA; -alias DLGTEMPLATE* LPDLGTEMPLATEW; -// #ifdef UNICODE -alias LPDLGTEMPLATEW LPDLGTEMPLATE; -// #else -// ... -// #endif // UNICODE -alias DLGTEMPLATE* LPCDLGTEMPLATEA; -alias DLGTEMPLATE* LPCDLGTEMPLATEW; -// #ifdef UNICODE -alias LPCDLGTEMPLATEW LPCDLGTEMPLATE; -// #else -// ... -// #endif // UNICODE - -struct _3 { - DWORD style; - DWORD dwExtendedStyle; - short x; - short y; - short cx; - short cy; - WORD id; -} -alias _3 DLGITEMTEMPLATE; - -alias DLGITEMTEMPLATE* PDLGITEMTEMPLATEA; -alias DLGITEMTEMPLATE* PDLGITEMTEMPLATEW; -// #ifdef UNICODE -alias PDLGITEMTEMPLATEW PDLGITEMTEMPLATE; -// #else -// ... -// #endif // UNICODE -alias DLGITEMTEMPLATE* LPDLGITEMTEMPLATEA; -alias DLGITEMTEMPLATE* LPDLGITEMTEMPLATEW; -// #ifdef UNICODE -alias LPDLGITEMTEMPLATEW LPDLGITEMTEMPLATE; -// #else -// ... -// #endif // UNICODE - -align: - -extern(Windows) export HWND CreateDialogParamA( - HINSTANCE hInstance, - LPCSTR lpTemplateName, - HWND hWndParent, - DLGPROC lpDialogFunc, - LPARAM dwInitParam); -extern(Windows) export HWND CreateDialogParamW( - HINSTANCE hInstance, - LPCWSTR lpTemplateName, - HWND hWndParent, - DLGPROC lpDialogFunc, - LPARAM dwInitParam); -// #ifdef UNICODE -alias CreateDialogParamW CreateDialogParam; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HWND CreateDialogIndirectParamA( - HINSTANCE hInstance, - LPCDLGTEMPLATEA lpTemplate, - HWND hWndParent, - DLGPROC lpDialogFunc, - LPARAM dwInitParam); -extern(Windows) export HWND CreateDialogIndirectParamW( - HINSTANCE hInstance, - LPCDLGTEMPLATEW lpTemplate, - HWND hWndParent, - DLGPROC lpDialogFunc, - LPARAM dwInitParam); -// #ifdef UNICODE -alias CreateDialogIndirectParamW CreateDialogIndirectParam; -// #else -// #... -// #endif // !UNICODE - -HWND CreateDialogA(HINSTANCE hInstance, LPCSTR lpName, HWND hWndParent, DLGPROC lpDialogFunc){ return CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0L); } -HWND CreateDialogW(HINSTANCE hInstance, LPCWSTR lpName, HWND hWndParent, DLGPROC lpDialogFunc){ return CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0L); } -// #ifdef UNICODE -alias CreateDialogW CreateDialog; -// #else -// #... -// #endif // !UNICODE - -HWND CreateDialogIndirectA(HINSTANCE hInstance, LPCDLGTEMPLATE lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc){ return CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L); } -HWND CreateDialogIndirectW(HINSTANCE hInstance, LPCDLGTEMPLATE lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc){ return CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L); } -// #ifdef UNICODE -alias CreateDialogIndirectW CreateDialogIndirect; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export INT_PTR DialogBoxParamA( - HINSTANCE hInstance, - LPCSTR lpTemplateName, - HWND hWndParent, - DLGPROC lpDialogFunc, - LPARAM dwInitParam); -extern(Windows) export INT_PTR DialogBoxParamW( - HINSTANCE hInstance, - LPCWSTR lpTemplateName, - HWND hWndParent, - DLGPROC lpDialogFunc, - LPARAM dwInitParam); -// #ifdef UNICODE -alias DialogBoxParamW DialogBoxParam; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export INT_PTR DialogBoxIndirectParamA( - HINSTANCE hInstance, - LPCDLGTEMPLATEA hDialogTemplate, - HWND hWndParent, - DLGPROC lpDialogFunc, - LPARAM dwInitParam); -extern(Windows) export INT_PTR DialogBoxIndirectParamW( - HINSTANCE hInstance, - LPCDLGTEMPLATEW hDialogTemplate, - HWND hWndParent, - DLGPROC lpDialogFunc, - LPARAM dwInitParam); -// #ifdef UNICODE -alias DialogBoxIndirectParamW DialogBoxIndirectParam; -// #else -// #... -// #endif // !UNICODE - -// #define DialogBoxA(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L) -// #define DialogBoxW(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L) -// #ifdef UNICODE -// #define DialogBox DialogBoxW -// #else -// #... -// #endif // !UNICODE - -// #define DialogBoxIndirectA(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L) -// #define DialogBoxIndirectW(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L) -// #ifdef UNICODE -// #define DialogBoxIndirect DialogBoxIndirectW -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EndDialog( - HWND hDlg, - INT_PTR nResult); - -extern(Windows) export HWND GetDlgItem( - HWND hDlg, - int nIDDlgItem); - -extern(Windows) export BOOL SetDlgItemInt( - HWND hDlg, - int nIDDlgItem, - UINT uValue, - BOOL bSigned); - -extern(Windows) export UINT GetDlgItemInt( - HWND hDlg, - int nIDDlgItem, - BOOL *lpTranslated, - BOOL bSigned); - -extern(Windows) export BOOL SetDlgItemTextA( - HWND hDlg, - int nIDDlgItem, - LPCSTR lpString); -extern(Windows) export BOOL SetDlgItemTextW( - HWND hDlg, - int nIDDlgItem, - LPCWSTR lpString); -// #ifdef UNICODE -alias SetDlgItemTextW SetDlgItemText; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export UINT GetDlgItemTextA( - HWND hDlg, - int nIDDlgItem, - LPSTR lpString, - int nMaxCount); -extern(Windows) export UINT GetDlgItemTextW( - HWND hDlg, - int nIDDlgItem, - LPWSTR lpString, - int nMaxCount); -// #ifdef UNICODE -alias GetDlgItemTextW GetDlgItemText; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL CheckDlgButton( - HWND hDlg, - int nIDButton, - UINT uCheck); - -extern(Windows) export BOOL CheckRadioButton( - HWND hDlg, - int nIDFirstButton, - int nIDLastButton, - int nIDCheckButton); - -extern(Windows) export UINT IsDlgButtonChecked( - HWND hDlg, - int nIDButton); - -extern(Windows) export LRESULT SendDlgItemMessageA( - HWND hDlg, - int nIDDlgItem, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -extern(Windows) export LRESULT SendDlgItemMessageW( - HWND hDlg, - int nIDDlgItem, - UINT Msg, - WPARAM wParam, - LPARAM lParam); -// #ifdef UNICODE -alias SendDlgItemMessageW SendDlgItemMessage; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HWND GetNextDlgGroupItem( - HWND hDlg, - HWND hCtl, - BOOL bPrevious); - -extern(Windows) export HWND GetNextDlgTabItem( - HWND hDlg, - HWND hCtl, - BOOL bPrevious); - -extern(Windows) export int GetDlgCtrlID( - HWND hWnd); - -extern(Windows) export int GetDialogBaseUnits(); - -extern(Windows) export LRESULT DefDlgProcA(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); -extern(Windows) export LRESULT DefDlgProcW(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); -// #ifdef UNICODE -alias DefDlgProcW DefDlgProc; -// #else -// #... -// #endif // !UNICODE - -// #ifndef _MAC -enum : uint { DLGWINDOWEXTRA = 30 } -// #else -// #... -// #endif - -// #endif /* !NOCTLMGR */ - -// #ifndef NOMSG - -extern(Windows) export BOOL CallMsgFilterA( - LPMSG lpMsg, - int nCode); -extern(Windows) export BOOL CallMsgFilterW( - LPMSG lpMsg, - int nCode); -// #ifdef UNICODE -alias CallMsgFilterW CallMsgFilter; -// #else -// #... -// #endif // !UNICODE - -// #endif /* !NOMSG */ - -// #ifndef NOCLIPBOARD - -extern(Windows) export BOOL OpenClipboard( - HWND hWndNewOwner); - -extern(Windows) export BOOL CloseClipboard(); - -// #if(WINVER >= 0x0500) - -extern(Windows) export DWORD GetClipboardSequenceNumber(); - -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export HWND GetClipboardOwner(); - -extern(Windows) export HWND SetClipboardViewer( - HWND hWndNewViewer); - -extern(Windows) export HWND GetClipboardViewer(); - -extern(Windows) export BOOL ChangeClipboardChain( - HWND hWndRemove, - HWND hWndNewNext); - -extern(Windows) export HANDLE SetClipboardData( - UINT uFormat, - HANDLE hMem); - -extern(Windows) export HANDLE GetClipboardData( - UINT uFormat); - -extern(Windows) export UINT RegisterClipboardFormatA( - LPCSTR lpszFormat); -extern(Windows) export UINT RegisterClipboardFormatW( - LPCWSTR lpszFormat); -// #ifdef UNICODE -alias RegisterClipboardFormatW RegisterClipboardFormat; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int CountClipboardFormats(); - -extern(Windows) export UINT EnumClipboardFormats( - UINT format); - -extern(Windows) export int GetClipboardFormatNameA( - UINT format, - LPSTR lpszFormatName, - int cchMaxCount); -extern(Windows) export int GetClipboardFormatNameW( - UINT format, - LPWSTR lpszFormatName, - int cchMaxCount); -// #ifdef UNICODE -alias GetClipboardFormatNameW GetClipboardFormatName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL EmptyClipboard(); - -extern(Windows) export BOOL IsClipboardFormatAvailable( - UINT format); - -extern(Windows) export int GetPriorityClipboardFormat( - UINT *paFormatPriorityList, - int cFormats); - -extern(Windows) export HWND GetOpenClipboardWindow(); - -// #endif /* !NOCLIPBOARD */ - -extern(Windows) export BOOL CharToOemA( - LPCSTR lpszSrc, - LPSTR lpszDst); -extern(Windows) export BOOL CharToOemW( - LPCWSTR lpszSrc, - LPSTR lpszDst); -// #ifdef UNICODE -alias CharToOemW CharToOem; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL OemToCharA( - LPCSTR lpszSrc, - LPSTR lpszDst); -extern(Windows) export BOOL OemToCharW( - LPCSTR lpszSrc, - LPWSTR lpszDst); -// #ifdef UNICODE -alias OemToCharW OemToChar; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL CharToOemBuffA( - LPCSTR lpszSrc, - LPSTR lpszDst, - DWORD cchDstLength); -extern(Windows) export BOOL CharToOemBuffW( - LPCWSTR lpszSrc, - LPSTR lpszDst, - DWORD cchDstLength); -// #ifdef UNICODE -alias CharToOemBuffW CharToOemBuff; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL OemToCharBuffA( - LPCSTR lpszSrc, - LPSTR lpszDst, - DWORD cchDstLength); -extern(Windows) export BOOL OemToCharBuffW( - LPCSTR lpszSrc, - LPWSTR lpszDst, - DWORD cchDstLength); -// #ifdef UNICODE -alias OemToCharBuffW OemToCharBuff; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LPSTR CharUpperA( - LPSTR lpsz); -extern(Windows) export LPWSTR CharUpperW( - LPWSTR lpsz); -// #ifdef UNICODE -alias CharUpperW CharUpper; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD CharUpperBuffA( - LPSTR lpsz, - DWORD cchLength); -extern(Windows) export DWORD CharUpperBuffW( - LPWSTR lpsz, - DWORD cchLength); -// #ifdef UNICODE -alias CharUpperBuffW CharUpperBuff; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LPSTR CharLowerA( - LPSTR lpsz); -extern(Windows) export LPWSTR CharLowerW( - LPWSTR lpsz); -// #ifdef UNICODE -alias CharLowerW CharLower; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD CharLowerBuffA( - LPSTR lpsz, - DWORD cchLength); -extern(Windows) export DWORD CharLowerBuffW( - LPWSTR lpsz, - DWORD cchLength); -// #ifdef UNICODE -alias CharLowerBuffW CharLowerBuff; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LPSTR CharNextA( - LPCSTR lpsz); -extern(Windows) export LPWSTR CharNextW( - LPCWSTR lpsz); -// #ifdef UNICODE -alias CharNextW CharNext; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LPSTR CharPrevA( - LPCSTR lpszStart, - LPCSTR lpszCurrent); -extern(Windows) export LPWSTR CharPrevW( - LPCWSTR lpszStart, - LPCWSTR lpszCurrent); -// #ifdef UNICODE -alias CharPrevW CharPrev; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export LPSTR CharNextExA( - WORD CodePage, - LPCSTR lpCurrentChar, - DWORD dwFlags); - -extern(Windows) export LPSTR CharPrevExA( - WORD CodePage, - LPCSTR lpStart, - LPCSTR lpCurrentChar, - DWORD dwFlags); -// #endif /* WINVER >= 0x0400 */ - -alias CharToOemA AnsiToOem; -alias OemToCharA OemToAnsi; -alias CharToOemBuffA AnsiToOemBuff; -alias OemToCharBuffA OemToAnsiBuff; -alias CharUpperA AnsiUpper; -alias CharUpperBuffA AnsiUpperBuff; -alias CharLowerA AnsiLower; -alias CharLowerBuffA AnsiLowerBuff; -alias CharNextA AnsiNext; -alias CharPrevA AnsiPrev; - -// #ifndef NOLANGUAGE - -extern(Windows) export BOOL IsCharAlphaA( - CHAR ch); -extern(Windows) export BOOL IsCharAlphaW( - WCHAR ch); -// #ifdef UNICODE -alias IsCharAlphaW IsCharAlpha; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL IsCharAlphaNumericA( - CHAR ch); -extern(Windows) export BOOL IsCharAlphaNumericW( - WCHAR ch); -// #ifdef UNICODE -alias IsCharAlphaNumericW IsCharAlphaNumeric; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL IsCharUpperA( - CHAR ch); -extern(Windows) export BOOL IsCharUpperW( - WCHAR ch); -// #ifdef UNICODE -alias IsCharUpperW IsCharUpper; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL IsCharLowerA( - CHAR ch); -extern(Windows) export BOOL IsCharLowerW( - WCHAR ch); -// #ifdef UNICODE -alias IsCharLowerW IsCharLower; -// #else -// #... -// #endif // !UNICODE - -// #endif /* !NOLANGUAGE */ - -extern(Windows) export HWND SetFocus( - HWND hWnd); - -extern(Windows) export HWND GetActiveWindow(); - -extern(Windows) export HWND GetFocus(); - -extern(Windows) export UINT GetKBCodePage(); - -extern(Windows) export SHORT GetKeyState( - int nVirtKey); - -extern(Windows) export SHORT GetAsyncKeyState( - int vKey); - -extern(Windows) export BOOL GetKeyboardState( - PBYTE lpKeyState); - -extern(Windows) export BOOL SetKeyboardState( - LPBYTE lpKeyState); - -extern(Windows) export int GetKeyNameTextA( - LONG lParam, - LPSTR lpString, - int nSize); -extern(Windows) export int GetKeyNameTextW( - LONG lParam, - LPWSTR lpString, - int nSize); -// #ifdef UNICODE -alias GetKeyNameTextW GetKeyNameText; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int GetKeyboardType( - int nTypeFlag); - -extern(Windows) export int ToAscii( - UINT uVirtKey, - UINT uScanCode, - BYTE *lpKeyState, - LPWORD lpChar, - UINT uFlags); - -// #if(WINVER >= 0x0400) -extern(Windows) export int ToAsciiEx( - UINT uVirtKey, - UINT uScanCode, - BYTE *lpKeyState, - LPWORD lpChar, - UINT uFlags, - HKL dwhkl); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export int ToUnicode( - UINT wVirtKey, - UINT wScanCode, - BYTE *lpKeyState, - LPWSTR pwszBuff, - int cchBuff, - UINT wFlags); - -extern(Windows) export DWORD OemKeyScan( - WORD wOemChar); - -extern(Windows) export SHORT VkKeyScanA( - CHAR ch); -extern(Windows) export SHORT VkKeyScanW( - WCHAR ch); -// #ifdef UNICODE -alias VkKeyScanW VkKeyScan; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export SHORT VkKeyScanExA( - CHAR ch, - HKL dwhkl); -extern(Windows) export SHORT VkKeyScanExW( - WCHAR ch, - HKL dwhkl); -// #ifdef UNICODE -alias VkKeyScanExW VkKeyScanEx; -// #else -// #... -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ -enum : uint { KEYEVENTF_EXTENDEDKEY = 0x0001 } -enum : uint { KEYEVENTF_KEYUP = 0x0002 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { KEYEVENTF_UNICODE = 0x0004 } -enum : uint { KEYEVENTF_SCANCODE = 0x0008 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export VOID keybd_event( - BYTE bVk, - BYTE bScan, - DWORD dwFlags, - ULONG_PTR dwExtraInfo); - -enum : uint { MOUSEEVENTF_MOVE = 0x0001 } -enum : uint { MOUSEEVENTF_LEFTDOWN = 0x0002 } -enum : uint { MOUSEEVENTF_LEFTUP = 0x0004 } -enum : uint { MOUSEEVENTF_RIGHTDOWN = 0x0008 } -enum : uint { MOUSEEVENTF_RIGHTUP = 0x0010 } -enum : uint { MOUSEEVENTF_MIDDLEDOWN = 0x0020 } -enum : uint { MOUSEEVENTF_MIDDLEUP = 0x0040 } -enum : uint { MOUSEEVENTF_XDOWN = 0x0080 } -enum : uint { MOUSEEVENTF_XUP = 0x0100 } -enum : uint { MOUSEEVENTF_WHEEL = 0x0800 } -enum : uint { MOUSEEVENTF_VIRTUALDESK = 0x4000 } -enum : uint { MOUSEEVENTF_ABSOLUTE = 0x8000 } - -extern(Windows) export VOID mouse_event( - DWORD dwFlags, - DWORD dx, - DWORD dy, - DWORD dwData, - ULONG_PTR dwExtraInfo); - -// #if (_WIN32_WINNT > 0x0400) - -struct tagMOUSEINPUT { - LONG dx; - LONG dy; - DWORD mouseData; - DWORD dwFlags; - DWORD time; - ULONG_PTR dwExtraInfo; -} -alias tagMOUSEINPUT MOUSEINPUT; -alias tagMOUSEINPUT* PMOUSEINPUT; -alias tagMOUSEINPUT* LPMOUSEINPUT; - -struct tagKEYBDINPUT { - WORD wVk; - WORD wScan; - DWORD dwFlags; - DWORD time; - ULONG_PTR dwExtraInfo; -} -alias tagKEYBDINPUT KEYBDINPUT; -alias tagKEYBDINPUT* PKEYBDINPUT; -alias tagKEYBDINPUT* LPKEYBDINPUT; - -struct tagHARDWAREINPUT { - DWORD uMsg; - WORD wParamL; - WORD wParamH; -} -alias tagHARDWAREINPUT HARDWAREINPUT; -alias tagHARDWAREINPUT* PHARDWAREINPUT; -alias tagHARDWAREINPUT* LPHARDWAREINPUT; - -enum : uint { INPUT_MOUSE = 0 } -enum : uint { INPUT_KEYBOARD = 1 } -enum : uint { INPUT_HARDWARE = 2 } - -struct tagINPUT { - DWORD type; -union { - MOUSEINPUT mi; - KEYBDINPUT ki; - HARDWAREINPUT hi; -} - -} -alias tagINPUT INPUT; -alias tagINPUT* PINPUT; -alias tagINPUT* LPINPUT; - -extern(Windows) export UINT SendInput( - UINT cInputs, // number of input in the array - LPINPUT pInputs, // array of inputs - int cbSize); - -// #endif // (_WIN32_WINNT > 0x0400) - -// #if(_WIN32_WINNT >= 0x0500) -struct tagLASTINPUTINFO { - UINT cbSize; - DWORD dwTime; -} -alias tagLASTINPUTINFO LASTINPUTINFO; -alias tagLASTINPUTINFO* PLASTINPUTINFO; - -extern(Windows) export BOOL GetLastInputInfo( - PLASTINPUTINFO plii); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export UINT MapVirtualKeyA( - UINT uCode, - UINT uMapType); -extern(Windows) export UINT MapVirtualKeyW( - UINT uCode, - UINT uMapType); -// #ifdef UNICODE -alias MapVirtualKeyW MapVirtualKey; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export UINT MapVirtualKeyExA( - UINT uCode, - UINT uMapType, - HKL dwhkl); -extern(Windows) export UINT MapVirtualKeyExW( - UINT uCode, - UINT uMapType, - HKL dwhkl); -// #ifdef UNICODE -alias MapVirtualKeyExW MapVirtualKeyEx; -// #else -// #... -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL GetInputState(); - -extern(Windows) export DWORD GetQueueStatus( - UINT flags); - -extern(Windows) export HWND GetCapture(); - -extern(Windows) export HWND SetCapture( - HWND hWnd); - -extern(Windows) export BOOL ReleaseCapture(); - -extern(Windows) export DWORD MsgWaitForMultipleObjects( - DWORD nCount, - HANDLE *pHandles, - BOOL fWaitAll, - DWORD dwMilliseconds, - DWORD dwWakeMask); - -extern(Windows) export DWORD MsgWaitForMultipleObjectsEx( - DWORD nCount, - HANDLE *pHandles, - DWORD dwMilliseconds, - DWORD dwWakeMask, - DWORD dwFlags); - -enum : uint { MWMO_WAITALL = 0x0001 } -enum : uint { MWMO_ALERTABLE = 0x0002 } -enum : uint { MWMO_INPUTAVAILABLE = 0x0004 } - -enum : uint { QS_KEY = 0x0001 } -enum : uint { QS_MOUSEMOVE = 0x0002 } -enum : uint { QS_MOUSEBUTTON = 0x0004 } -// #define QS_POSTMESSAGE 0x0008 -// #define QS_TIMER 0x0010 -// #define QS_PAINT 0x0020 -// #define QS_SENDMESSAGE 0x0040 -// #define QS_HOTKEY 0x0080 -enum : uint { QS_ALLPOSTMESSAGE = 0x0100 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { QS_RAWINPUT = 0x0400 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { QS_MOUSE = QS_MOUSEMOVE | QS_MOUSEBUTTON } - -// #if (_WIN32_WINNT >= 0x0501) -// #define QS_INPUT (QS_MOUSE | QS_KEY | QS_RAWINPUT) -// #else -// #... -// ... -// #endif // (_WIN32_WINNT >= 0x0501) - -enum : uint { QS_ALLEVENTS = QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY } - -enum : uint { QS_ALLINPUT = QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY | QS_SENDMESSAGE } - -extern(Windows) export UINT_PTR SetTimer( - HWND hWnd, - UINT_PTR nIDEvent, - UINT uElapse, - TIMERPROC lpTimerFunc); - -extern(Windows) export BOOL KillTimer( - HWND hWnd, - UINT_PTR uIDEvent); - -extern(Windows) export BOOL IsWindowUnicode( - HWND hWnd); - -extern(Windows) export BOOL EnableWindow( - HWND hWnd, - BOOL bEnable); - -extern(Windows) export BOOL IsWindowEnabled( - HWND hWnd); - -extern(Windows) export HACCEL LoadAcceleratorsA( - HINSTANCE hInstance, - LPCSTR lpTableName); -extern(Windows) export HACCEL LoadAcceleratorsW( - HINSTANCE hInstance, - LPCWSTR lpTableName); -// #ifdef UNICODE -alias LoadAcceleratorsW LoadAccelerators; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HACCEL CreateAcceleratorTableA( - LPACCEL, int); -extern(Windows) export HACCEL CreateAcceleratorTableW( - LPACCEL, int); -// #ifdef UNICODE -alias CreateAcceleratorTableW CreateAcceleratorTable; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL DestroyAcceleratorTable( - HACCEL hAccel); - -extern(Windows) export int CopyAcceleratorTableA( - HACCEL hAccelSrc, - LPACCEL lpAccelDst, - int cAccelEntries); -extern(Windows) export int CopyAcceleratorTableW( - HACCEL hAccelSrc, - LPACCEL lpAccelDst, - int cAccelEntries); -// #ifdef UNICODE -alias CopyAcceleratorTableW CopyAcceleratorTable; -// #else -// #... -// #endif // !UNICODE - -// #ifndef NOMSG - -extern(Windows) export int TranslateAcceleratorA( - HWND hWnd, - HACCEL hAccTable, - LPMSG lpMsg); -extern(Windows) export int TranslateAcceleratorW( - HWND hWnd, - HACCEL hAccTable, - LPMSG lpMsg); -// #ifdef UNICODE -alias TranslateAcceleratorW TranslateAccelerator; -// #else -// #... -// #endif // !UNICODE - -// #endif /* !NOMSG */ - -// #ifndef NOSYSMETRICS - -enum : uint { SM_CXSCREEN = 0 } -enum : uint { SM_CYSCREEN = 1 } -enum : uint { SM_CXVSCROLL = 2 } -enum : uint { SM_CYHSCROLL = 3 } -enum : uint { SM_CYCAPTION = 4 } -enum : uint { SM_CXBORDER = 5 } -enum : uint { SM_CYBORDER = 6 } -enum : uint { SM_CXDLGFRAME = 7 } -enum : uint { SM_CYDLGFRAME = 8 } -enum : uint { SM_CYVTHUMB = 9 } -enum : uint { SM_CXHTHUMB = 10 } -enum : uint { SM_CXICON = 11 } -enum : uint { SM_CYICON = 12 } -enum : uint { SM_CXCURSOR = 13 } -enum : uint { SM_CYCURSOR = 14 } -enum : uint { SM_CYMENU = 15 } -enum : uint { SM_CXFULLSCREEN = 16 } -enum : uint { SM_CYFULLSCREEN = 17 } -enum : uint { SM_CYKANJIWINDOW = 18 } -enum : uint { SM_MOUSEPRESENT = 19 } -enum : uint { SM_CYVSCROLL = 20 } -enum : uint { SM_CXHSCROLL = 21 } -enum : uint { SM_DEBUG = 22 } -enum : uint { SM_SWAPBUTTON = 23 } -enum : uint { SM_RESERVED1 = 24 } -enum : uint { SM_RESERVED2 = 25 } -enum : uint { SM_RESERVED3 = 26 } -enum : uint { SM_RESERVED4 = 27 } -enum : uint { SM_CXMIN = 28 } -enum : uint { SM_CYMIN = 29 } -enum : uint { SM_CXSIZE = 30 } -enum : uint { SM_CYSIZE = 31 } -enum : uint { SM_CXFRAME = 32 } -enum : uint { SM_CYFRAME = 33 } -enum : uint { SM_CXMINTRACK = 34 } -enum : uint { SM_CYMINTRACK = 35 } -enum : uint { SM_CXDOUBLECLK = 36 } -enum : uint { SM_CYDOUBLECLK = 37 } -enum : uint { SM_CXICONSPACING = 38 } -enum : uint { SM_CYICONSPACING = 39 } -enum : uint { SM_MENUDROPALIGNMENT = 40 } -enum : uint { SM_PENWINDOWS = 41 } -enum : uint { SM_DBCSENABLED = 42 } -enum : uint { SM_CMOUSEBUTTONS = 43 } - -// #if(WINVER >= 0x0400) -alias SM_CXDLGFRAME SM_CXFIXEDFRAME; -alias SM_CYDLGFRAME SM_CYFIXEDFRAME; -alias SM_CXFRAME SM_CXSIZEFRAME; -alias SM_CYFRAME SM_CYSIZEFRAME; - -enum : uint { SM_SECURE = 44 } -enum : uint { SM_CXEDGE = 45 } -enum : uint { SM_CYEDGE = 46 } -enum : uint { SM_CXMINSPACING = 47 } -enum : uint { SM_CYMINSPACING = 48 } -enum : uint { SM_CXSMICON = 49 } -enum : uint { SM_CYSMICON = 50 } -enum : uint { SM_CYSMCAPTION = 51 } -enum : uint { SM_CXSMSIZE = 52 } -enum : uint { SM_CYSMSIZE = 53 } -enum : uint { SM_CXMENUSIZE = 54 } -enum : uint { SM_CYMENUSIZE = 55 } -enum : uint { SM_ARRANGE = 56 } -enum : uint { SM_CXMINIMIZED = 57 } -enum : uint { SM_CYMINIMIZED = 58 } -enum : uint { SM_CXMAXTRACK = 59 } -enum : uint { SM_CYMAXTRACK = 60 } -enum : uint { SM_CXMAXIMIZED = 61 } -enum : uint { SM_CYMAXIMIZED = 62 } -enum : uint { SM_NETWORK = 63 } -enum : uint { SM_CLEANBOOT = 67 } -enum : uint { SM_CXDRAG = 68 } -enum : uint { SM_CYDRAG = 69 } -// #endif /* WINVER >= 0x0400 */ -enum : uint { SM_SHOWSOUNDS = 70 } -// #if(WINVER >= 0x0400) -enum : uint { SM_CXMENUCHECK = 71 } -enum : uint { SM_CYMENUCHECK = 72 } -enum : uint { SM_SLOWMACHINE = 73 } -enum : uint { SM_MIDEASTENABLED = 74 } -// #endif /* WINVER >= 0x0400 */ - -// #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400) -enum : uint { SM_MOUSEWHEELPRESENT = 75 } -// #endif -// #if(WINVER >= 0x0500) -enum : uint { SM_XVIRTUALSCREEN = 76 } -enum : uint { SM_YVIRTUALSCREEN = 77 } -enum : uint { SM_CXVIRTUALSCREEN = 78 } -enum : uint { SM_CYVIRTUALSCREEN = 79 } -enum : uint { SM_CMONITORS = 80 } -enum : uint { SM_SAMEDISPLAYFORMAT = 81 } -// #endif /* WINVER >= 0x0500 */ -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { SM_IMMENABLED = 82 } -// #endif /* _WIN32_WINNT >= 0x0500 */ -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { SM_CXFOCUSBORDER = 83 } -enum : uint { SM_CYFOCUSBORDER = 84 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if (WINVER < 0x0500) && (!defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0400)) -// #... -// #else -enum : uint { SM_CMETRICS = 86 } -// #endif - -// #if(WINVER >= 0x0500) -enum : uint { SM_REMOTESESSION = 0x1000 } - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { SM_SHUTTINGDOWN = 0x2000 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export int GetSystemMetrics( - int nIndex); - -// #endif /* !NOSYSMETRICS */ - -// #ifndef NOMENUS - -extern(Windows) export HMENU LoadMenuA( - HINSTANCE hInstance, - LPCSTR lpMenuName); -extern(Windows) export HMENU LoadMenuW( - HINSTANCE hInstance, - LPCWSTR lpMenuName); -// #ifdef UNICODE -alias LoadMenuW LoadMenu; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HMENU LoadMenuIndirectA( - MENUTEMPLATEA *lpMenuTemplate); -extern(Windows) export HMENU LoadMenuIndirectW( - MENUTEMPLATEW *lpMenuTemplate); -// #ifdef UNICODE -alias LoadMenuIndirectW LoadMenuIndirect; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HMENU GetMenu( - HWND hWnd); - -extern(Windows) export BOOL SetMenu( - HWND hWnd, - HMENU hMenu); - -extern(Windows) export BOOL ChangeMenuA( - HMENU hMenu, - UINT cmd, - LPCSTR lpszNewItem, - UINT cmdInsert, - UINT flags); -extern(Windows) export BOOL ChangeMenuW( - HMENU hMenu, - UINT cmd, - LPCWSTR lpszNewItem, - UINT cmdInsert, - UINT flags); -// #ifdef UNICODE -alias ChangeMenuW ChangeMenu; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL HiliteMenuItem( - HWND hWnd, - HMENU hMenu, - UINT uIDHiliteItem, - UINT uHilite); - -extern(Windows) export int GetMenuStringA( - HMENU hMenu, - UINT uIDItem, - LPSTR lpString, - int nMaxCount, - UINT uFlag); -extern(Windows) export int GetMenuStringW( - HMENU hMenu, - UINT uIDItem, - LPWSTR lpString, - int nMaxCount, - UINT uFlag); -// #ifdef UNICODE -alias GetMenuStringW GetMenuString; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export UINT GetMenuState( - HMENU hMenu, - UINT uId, - UINT uFlags); - -extern(Windows) export BOOL DrawMenuBar( - HWND hWnd); - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { PMB_ACTIVE = 0x00000001 } - -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export HMENU GetSystemMenu( - HWND hWnd, - BOOL bRevert); - -extern(Windows) export HMENU CreateMenu(); - -extern(Windows) export HMENU CreatePopupMenu(); - -extern(Windows) export BOOL DestroyMenu( - HMENU hMenu); - -extern(Windows) export DWORD CheckMenuItem( - HMENU hMenu, - UINT uIDCheckItem, - UINT uCheck); - -extern(Windows) export BOOL EnableMenuItem( - HMENU hMenu, - UINT uIDEnableItem, - UINT uEnable); - -extern(Windows) export HMENU GetSubMenu( - HMENU hMenu, - int nPos); - -extern(Windows) export UINT GetMenuItemID( - HMENU hMenu, - int nPos); - -extern(Windows) export int GetMenuItemCount( - HMENU hMenu); - -extern(Windows) export BOOL InsertMenuA( - HMENU hMenu, - UINT uPosition, - UINT uFlags, - UINT_PTR uIDNewItem, - LPCSTR lpNewItem); -extern(Windows) export BOOL InsertMenuW( - HMENU hMenu, - UINT uPosition, - UINT uFlags, - UINT_PTR uIDNewItem, - LPCWSTR lpNewItem); -// #ifdef UNICODE -alias InsertMenuW InsertMenu; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL AppendMenuA( - HMENU hMenu, - UINT uFlags, - UINT_PTR uIDNewItem, - LPCSTR lpNewItem); -extern(Windows) export BOOL AppendMenuW( - HMENU hMenu, - UINT uFlags, - UINT_PTR uIDNewItem, - LPCWSTR lpNewItem); -// #ifdef UNICODE -alias AppendMenuW AppendMenu; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL ModifyMenuA( - HMENU hMnu, - UINT uPosition, - UINT uFlags, - UINT_PTR uIDNewItem, - LPCSTR lpNewItem); -extern(Windows) export BOOL ModifyMenuW( - HMENU hMnu, - UINT uPosition, - UINT uFlags, - UINT_PTR uIDNewItem, - LPCWSTR lpNewItem); -// #ifdef UNICODE -alias ModifyMenuW ModifyMenu; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL RemoveMenu( - HMENU hMenu, - UINT uPosition, - UINT uFlags); - -extern(Windows) export BOOL DeleteMenu( - HMENU hMenu, - UINT uPosition, - UINT uFlags); - -extern(Windows) export BOOL SetMenuItemBitmaps( - HMENU hMenu, - UINT uPosition, - UINT uFlags, - HBITMAP hBitmapUnchecked, - HBITMAP hBitmapChecked); - -extern(Windows) export LONG GetMenuCheckMarkDimensions(); - -extern(Windows) export BOOL TrackPopupMenu( - HMENU hMenu, - UINT uFlags, - int x, - int y, - int nReserved, - HWND hWnd, - RECT *prcRect); - -// #if(WINVER >= 0x0400) - -enum : uint { MNC_IGNORE = 0 } -enum : uint { MNC_CLOSE = 1 } -enum : uint { MNC_EXECUTE = 2 } -enum : uint { MNC_SELECT = 3 } - -struct tagTPMPARAMS { - UINT cbSize; - RECT rcExclude; -} -alias tagTPMPARAMS TPMPARAMS; - -alias TPMPARAMS* LPTPMPARAMS; - -extern(Windows) export BOOL TrackPopupMenuEx( - HMENU, - UINT, - int, - int, - HWND, - LPTPMPARAMS); -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) - -enum : uint { MNS_NOCHECK = 0x80000000 } -enum : uint { MNS_MODELESS = 0x40000000 } -enum : uint { MNS_DRAGDROP = 0x20000000 } -enum : uint { MNS_AUTODISMISS = 0x10000000 } -enum : uint { MNS_NOTIFYBYPOS = 0x08000000 } -enum : uint { MNS_CHECKORBMP = 0x04000000 } - -enum : uint { MIM_MAXHEIGHT = 0x00000001 } -enum : uint { MIM_BACKGROUND = 0x00000002 } -enum : uint { MIM_HELPID = 0x00000004 } -enum : uint { MIM_MENUDATA = 0x00000008 } -enum : uint { MIM_STYLE = 0x00000010 } -enum : uint { MIM_APPLYTOSUBMENUS = 0x80000000 } - -struct tagMENUINFO { - DWORD cbSize; - DWORD fMask; - DWORD dwStyle; - UINT cyMax; - HBRUSH hbrBack; - DWORD dwContextHelpID; - ULONG_PTR dwMenuData; -} -alias tagMENUINFO MENUINFO; -alias tagMENUINFO* LPMENUINFO; - -alias MENUINFO* LPCMENUINFO; - -extern(Windows) export BOOL GetMenuInfo( - HMENU, - LPMENUINFO); - -extern(Windows) export BOOL SetMenuInfo( - HMENU, - LPCMENUINFO); - -extern(Windows) export BOOL EndMenu(); - -enum : uint { MND_CONTINUE = 0 } -enum : uint { MND_ENDMENU = 1 } - -struct tagMENUGETOBJECTINFO { - DWORD dwFlags; - UINT uPos; - HMENU hmenu; - PVOID riid; - PVOID pvObj; -} -alias tagMENUGETOBJECTINFO MENUGETOBJECTINFO; -alias tagMENUGETOBJECTINFO* PMENUGETOBJECTINFO; - -enum : uint { MNGOF_TOPGAP = 0x00000001 } -enum : uint { MNGOF_BOTTOMGAP = 0x00000002 } - -enum : uint { MNGO_NOINTERFACE = 0x00000000 } -enum : uint { MNGO_NOERROR = 0x00000001 } -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0400) -enum : uint { MIIM_STATE = 0x00000001 } -enum : uint { MIIM_ID = 0x00000002 } -enum : uint { MIIM_SUBMENU = 0x00000004 } -enum : uint { MIIM_CHECKMARKS = 0x00000008 } -enum : uint { MIIM_TYPE = 0x00000010 } -enum : uint { MIIM_DATA = 0x00000020 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -enum : uint { MIIM_STRING = 0x00000040 } -enum : uint { MIIM_BITMAP = 0x00000080 } -enum : uint { MIIM_FTYPE = 0x00000100 } - -const HBITMAP HBMMENU_CALLBACK = cast(HBITMAP)-1; -const HBITMAP HBMMENU_SYSTEM = cast(HBITMAP)1; -const HBITMAP HBMMENU_MBAR_RESTORE = cast(HBITMAP)2; -const HBITMAP HBMMENU_MBAR_MINIMIZE = cast(HBITMAP)3; -const HBITMAP HBMMENU_MBAR_CLOSE = cast(HBITMAP)5; -const HBITMAP HBMMENU_MBAR_CLOSE_D = cast(HBITMAP)6; -const HBITMAP HBMMENU_MBAR_MINIMIZE_D = cast(HBITMAP)7; -const HBITMAP HBMMENU_POPUP_CLOSE = cast(HBITMAP)8; -const HBITMAP HBMMENU_POPUP_RESTORE = cast(HBITMAP)9; -const HBITMAP HBMMENU_POPUP_MAXIMIZE = cast(HBITMAP)10; -const HBITMAP HBMMENU_POPUP_MINIMIZE = cast(HBITMAP)11; -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0400) -struct tagMENUITEMINFOA { - UINT cbSize; - UINT fMask; - UINT fType; - UINT fState; - UINT wID; - HMENU hSubMenu; - HBITMAP hbmpChecked; - HBITMAP hbmpUnchecked; - ULONG_PTR dwItemData; - LPSTR dwTypeData; - UINT cch; -// #if(WINVER >= 0x0500) - HBITMAP hbmpItem; -// #endif /* WINVER >= 0x0500 */ -} -alias tagMENUITEMINFOA MENUITEMINFOA; -alias tagMENUITEMINFOA* LPMENUITEMINFOA; - -struct tagMENUITEMINFOW { - UINT cbSize; - UINT fMask; - UINT fType; - UINT fState; - UINT wID; - HMENU hSubMenu; - HBITMAP hbmpChecked; - HBITMAP hbmpUnchecked; - ULONG_PTR dwItemData; - LPWSTR dwTypeData; - UINT cch; -// #if(WINVER >= 0x0500) - HBITMAP hbmpItem; -// #endif /* WINVER >= 0x0500 */ -} -alias tagMENUITEMINFOW MENUITEMINFOW; -alias tagMENUITEMINFOW* LPMENUITEMINFOW; - -// #ifdef UNICODE -alias MENUITEMINFOW MENUITEMINFO; -alias LPMENUITEMINFOW LPMENUITEMINFO; -// #else -// ... -// #endif // UNICODE -alias MENUITEMINFOA* LPCMENUITEMINFOA; -alias MENUITEMINFOW* LPCMENUITEMINFOW; -// #ifdef UNICODE -alias LPCMENUITEMINFOW LPCMENUITEMINFO; -// #else -// ... -// #endif // UNICODE - -extern(Windows) export BOOL InsertMenuItemA( - HMENU, - UINT, - BOOL, - LPCMENUITEMINFOA); -extern(Windows) export BOOL InsertMenuItemW( - HMENU, - UINT, - BOOL, - LPCMENUITEMINFOW); -// #ifdef UNICODE -alias InsertMenuItemW InsertMenuItem; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetMenuItemInfoA( - HMENU, - UINT, - BOOL, - LPMENUITEMINFOA); -extern(Windows) export BOOL GetMenuItemInfoW( - HMENU, - UINT, - BOOL, - LPMENUITEMINFOW); -// #ifdef UNICODE -alias GetMenuItemInfoW GetMenuItemInfo; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetMenuItemInfoA( - HMENU, - UINT, - BOOL, - LPCMENUITEMINFOA); -extern(Windows) export BOOL SetMenuItemInfoW( - HMENU, - UINT, - BOOL, - LPCMENUITEMINFOW); -// #ifdef UNICODE -alias SetMenuItemInfoW SetMenuItemInfo; -// #else -// #... -// #endif // !UNICODE - -enum : uint { GMDI_USEDISABLED = 0x0001 } -enum : uint { GMDI_GOINTOPOPUPS = 0x0002 } - -extern(Windows) export UINT GetMenuDefaultItem(HMENU hMenu, UINT fByPos, UINT gmdiFlags); -extern(Windows) export BOOL SetMenuDefaultItem(HMENU hMenu, UINT uItem, UINT fByPos); - -extern(Windows) export BOOL GetMenuItemRect(HWND hWnd, HMENU hMenu, UINT uItem, LPRECT lprcItem); -extern(Windows) export int MenuItemFromPoint(HWND hWnd, HMENU hMenu, POINT ptScreen); -// #endif /* WINVER >= 0x0400 */ - -enum : uint { TPM_LEFTBUTTON = 0x0000 } -enum : uint { TPM_RIGHTBUTTON = 0x0002 } -enum : uint { TPM_LEFTALIGN = 0x0000 } -enum : uint { TPM_CENTERALIGN = 0x0004 } -enum : uint { TPM_RIGHTALIGN = 0x0008 } -// #if(WINVER >= 0x0400) -enum : uint { TPM_TOPALIGN = 0x0000 } -enum : uint { TPM_VCENTERALIGN = 0x0010 } -enum : uint { TPM_BOTTOMALIGN = 0x0020 } - -enum : uint { TPM_HORIZONTAL = 0x0000 } -enum : uint { TPM_VERTICAL = 0x0040 } -enum : uint { TPM_NONOTIFY = 0x0080 } -enum : uint { TPM_RETURNCMD = 0x0100 } -// #endif /* WINVER >= 0x0400 */ -// #if(WINVER >= 0x0500) -enum : uint { TPM_RECURSE = 0x0001 } -enum : uint { TPM_HORPOSANIMATION = 0x0400 } -enum : uint { TPM_HORNEGANIMATION = 0x0800 } -enum : uint { TPM_VERPOSANIMATION = 0x1000 } -enum : uint { TPM_VERNEGANIMATION = 0x2000 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { TPM_NOANIMATION = 0x4000 } -// #endif /* _WIN32_WINNT >= 0x0500 */ -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { TPM_LAYOUTRTL = 0x8000 } -// #endif /* _WIN32_WINNT >= 0x0501 */ -// #endif /* WINVER >= 0x0500 */ - -// #endif /* !NOMENUS */ - -// #if(WINVER >= 0x0400) - -struct tagDROPSTRUCT { - HWND hwndSource; - HWND hwndSink; - DWORD wFmt; - ULONG_PTR dwData; - POINT ptDrop; - DWORD dwControlData; -} -alias tagDROPSTRUCT DROPSTRUCT; -alias tagDROPSTRUCT* PDROPSTRUCT; -alias tagDROPSTRUCT* LPDROPSTRUCT; - -enum : uint { DOF_EXECUTABLE = 0x8001 } -enum : uint { DOF_DOCUMENT = 0x8002 } -enum : uint { DOF_DIRECTORY = 0x8003 } -enum : uint { DOF_MULTIPLE = 0x8004 } -enum : uint { DOF_PROGMAN = 0x0001 } -enum : uint { DOF_SHELLDATA = 0x0002 } - -enum : uint { DO_DROPFILE = 0x454C4946 } -enum : uint { DO_PRINTFILE = 0x544E5250 } - -extern(Windows) export DWORD DragObject( - HWND, - HWND, - UINT, - ULONG_PTR, - HCURSOR); - -extern(Windows) export BOOL DragDetect( - HWND, - POINT); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL DrawIcon( - HDC hDC, - int X, - int Y, - HICON hIcon); - -// #ifndef NODRAWTEXT - -enum : uint { DT_TOP = 0x00000000 } -enum : uint { DT_LEFT = 0x00000000 } -enum : uint { DT_CENTER = 0x00000001 } -enum : uint { DT_RIGHT = 0x00000002 } -enum : uint { DT_VCENTER = 0x00000004 } -enum : uint { DT_BOTTOM = 0x00000008 } -enum : uint { DT_WORDBREAK = 0x00000010 } -enum : uint { DT_SINGLELINE = 0x00000020 } -enum : uint { DT_EXPANDTABS = 0x00000040 } -enum : uint { DT_TABSTOP = 0x00000080 } -enum : uint { DT_NOCLIP = 0x00000100 } -enum : uint { DT_EXTERNALLEADING = 0x00000200 } -enum : uint { DT_CALCRECT = 0x00000400 } -enum : uint { DT_NOPREFIX = 0x00000800 } -enum : uint { DT_INTERNAL = 0x00001000 } - -// #if(WINVER >= 0x0400) -enum : uint { DT_EDITCONTROL = 0x00002000 } -enum : uint { DT_PATH_ELLIPSIS = 0x00004000 } -enum : uint { DT_END_ELLIPSIS = 0x00008000 } -enum : uint { DT_MODIFYSTRING = 0x00010000 } -enum : uint { DT_RTLREADING = 0x00020000 } -enum : uint { DT_WORD_ELLIPSIS = 0x00040000 } -// #if(WINVER >= 0x0500) -enum : uint { DT_NOFULLWIDTHCHARBREAK = 0x00080000 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { DT_HIDEPREFIX = 0x00100000 } -enum : uint { DT_PREFIXONLY = 0x00200000 } -// #endif /* _WIN32_WINNT >= 0x0500 */ -// #endif /* WINVER >= 0x0500 */ - -struct tagDRAWTEXTPARAMS { - UINT cbSize; - int iTabLength; - int iLeftMargin; - int iRightMargin; - UINT uiLengthDrawn; -} -alias tagDRAWTEXTPARAMS DRAWTEXTPARAMS; -alias tagDRAWTEXTPARAMS* LPDRAWTEXTPARAMS; - -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export int DrawTextA( - HDC hDC, - LPCSTR lpString, - int nCount, - LPRECT lpRect, - UINT uFormat); -extern(Windows) export int DrawTextW( - HDC hDC, - LPCWSTR lpString, - int nCount, - LPRECT lpRect, - UINT uFormat); -// #ifdef UNICODE -alias DrawTextW DrawText; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export int DrawTextExA( - HDC, - LPSTR, - int, - LPRECT, - UINT, - LPDRAWTEXTPARAMS); -extern(Windows) export int DrawTextExW( - HDC, - LPWSTR, - int, - LPRECT, - UINT, - LPDRAWTEXTPARAMS); -// #ifdef UNICODE -alias DrawTextExW DrawTextEx; -// #else -// #... -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ - -// #endif /* !NODRAWTEXT */ - -extern(Windows) export BOOL GrayStringA( - HDC hDC, - HBRUSH hBrush, - GRAYSTRINGPROC lpOutputFunc, - LPARAM lpData, - int nCount, - int X, - int Y, - int nWidth, - int nHeight); -extern(Windows) export BOOL GrayStringW( - HDC hDC, - HBRUSH hBrush, - GRAYSTRINGPROC lpOutputFunc, - LPARAM lpData, - int nCount, - int X, - int Y, - int nWidth, - int nHeight); -// #ifdef UNICODE -alias GrayStringW GrayString; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) - -enum : uint { DST_COMPLEX = 0x0000 } -enum : uint { DST_TEXT = 0x0001 } -enum : uint { DST_PREFIXTEXT = 0x0002 } -enum : uint { DST_ICON = 0x0003 } -enum : uint { DST_BITMAP = 0x0004 } - -enum : uint { DSS_NORMAL = 0x0000 } -enum : uint { DSS_UNION = 0x0010 } -enum : uint { DSS_DISABLED = 0x0020 } -enum : uint { DSS_MONO = 0x0080 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { DSS_HIDEPREFIX = 0x0200 } -enum : uint { DSS_PREFIXONLY = 0x0400 } -// #endif /* _WIN32_WINNT >= 0x0500 */ -enum : uint { DSS_RIGHT = 0x8000 } - -extern(Windows) export BOOL DrawStateA( - HDC, - HBRUSH, - DRAWSTATEPROC, - LPARAM, - WPARAM, - int, - int, - int, - int, - UINT); -extern(Windows) export BOOL DrawStateW( - HDC, - HBRUSH, - DRAWSTATEPROC, - LPARAM, - WPARAM, - int, - int, - int, - int, - UINT); -// #ifdef UNICODE -alias DrawStateW DrawState; -// #else -// #... -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export LONG TabbedTextOutA( - HDC hDC, - int X, - int Y, - LPCSTR lpString, - int nCount, - int nTabPositions, - INT *lpnTabStopPositions, - int nTabOrigin); -extern(Windows) export LONG TabbedTextOutW( - HDC hDC, - int X, - int Y, - LPCWSTR lpString, - int nCount, - int nTabPositions, - INT *lpnTabStopPositions, - int nTabOrigin); -// #ifdef UNICODE -alias TabbedTextOutW TabbedTextOut; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetTabbedTextExtentA( - HDC hDC, - LPCSTR lpString, - int nCount, - int nTabPositions, - INT *lpnTabStopPositions); -extern(Windows) export DWORD GetTabbedTextExtentW( - HDC hDC, - LPCWSTR lpString, - int nCount, - int nTabPositions, - INT *lpnTabStopPositions); -// #ifdef UNICODE -alias GetTabbedTextExtentW GetTabbedTextExtent; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL UpdateWindow( - HWND hWnd); - -extern(Windows) export HWND SetActiveWindow( - HWND hWnd); - -extern(Windows) export HWND GetForegroundWindow(); - -// #if(WINVER >= 0x0400) -extern(Windows) export BOOL PaintDesktop( - HDC hdc); - -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL SetForegroundWindow( - HWND hWnd); - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL AllowSetForegroundWindow( - DWORD dwProcessId); - -enum : DWORD { ASFW_ANY = cast(DWORD)-1 } - -extern(Windows) export BOOL LockSetForegroundWindow( - UINT uLockCode); - -enum : uint { LSFW_LOCK = 1 } -enum : uint { LSFW_UNLOCK = 2 } - -// #endif /* _WIN32_WINNT >= 0x0500 */ - -extern(Windows) export HWND WindowFromDC( - HDC hDC); - -extern(Windows) export HDC GetDC( - HWND hWnd); - -extern(Windows) export HDC GetDCEx( - HWND hWnd, - HRGN hrgnClip, - DWORD flags); - -enum : uint { DCX_WINDOW = 0x00000001 } -enum : uint { DCX_CACHE = 0x00000002 } -enum : uint { DCX_NORESETATTRS = 0x00000004 } -enum : uint { DCX_CLIPCHILDREN = 0x00000008 } -enum : uint { DCX_CLIPSIBLINGS = 0x00000010 } -enum : uint { DCX_PARENTCLIP = 0x00000020 } -enum : uint { DCX_EXCLUDERGN = 0x00000040 } -enum : uint { DCX_INTERSECTRGN = 0x00000080 } -enum : uint { DCX_EXCLUDEUPDATE = 0x00000100 } -enum : uint { DCX_INTERSECTUPDATE = 0x00000200 } -enum : uint { DCX_LOCKWINDOWUPDATE = 0x00000400 } - -enum : uint { DCX_VALIDATE = 0x00200000 } - -extern(Windows) export HDC GetWindowDC( - HWND hWnd); - -extern(Windows) export int ReleaseDC( - HWND hWnd, - HDC hDC); - -extern(Windows) export HDC BeginPaint( - HWND hWnd, - LPPAINTSTRUCT lpPaint); - -extern(Windows) export BOOL EndPaint( - HWND hWnd, - PAINTSTRUCT *lpPaint); - -extern(Windows) export BOOL GetUpdateRect( - HWND hWnd, - LPRECT lpRect, - BOOL bErase); - -extern(Windows) export int GetUpdateRgn( - HWND hWnd, - HRGN hRgn, - BOOL bErase); - -extern(Windows) export int SetWindowRgn( - HWND hWnd, - HRGN hRgn, - BOOL bRedraw); - -extern(Windows) export int GetWindowRgn( - HWND hWnd, - HRGN hRgn); - -// #if(_WIN32_WINNT >= 0x0501) - -extern(Windows) export int GetWindowRgnBox( - HWND hWnd, - LPRECT lprc); - -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export int ExcludeUpdateRgn( - HDC hDC, - HWND hWnd); - -extern(Windows) export BOOL InvalidateRect( - HWND hWnd, - RECT *lpRect, - BOOL bErase); - -extern(Windows) export BOOL ValidateRect( - HWND hWnd, - RECT *lpRect); - -extern(Windows) export BOOL InvalidateRgn( - HWND hWnd, - HRGN hRgn, - BOOL bErase); - -extern(Windows) export BOOL ValidateRgn( - HWND hWnd, - HRGN hRgn); - -extern(Windows) export BOOL RedrawWindow( - HWND hWnd, - RECT *lprcUpdate, - HRGN hrgnUpdate, - UINT flags); - -enum : uint { RDW_INVALIDATE = 0x0001 } -enum : uint { RDW_INTERNALPAINT = 0x0002 } -enum : uint { RDW_ERASE = 0x0004 } - -enum : uint { RDW_VALIDATE = 0x0008 } -enum : uint { RDW_NOINTERNALPAINT = 0x0010 } -enum : uint { RDW_NOERASE = 0x0020 } - -enum : uint { RDW_NOCHILDREN = 0x0040 } -enum : uint { RDW_ALLCHILDREN = 0x0080 } - -enum : uint { RDW_UPDATENOW = 0x0100 } -enum : uint { RDW_ERASENOW = 0x0200 } - -enum : uint { RDW_FRAME = 0x0400 } -enum : uint { RDW_NOFRAME = 0x0800 } - -extern(Windows) export BOOL LockWindowUpdate( - HWND hWndLock); - -extern(Windows) export BOOL ScrollWindow( - HWND hWnd, - int XAmount, - int YAmount, - RECT *lpRect, - RECT *lpClipRect); - -extern(Windows) export BOOL ScrollDC( - HDC hDC, - int dx, - int dy, - RECT *lprcScroll, - RECT *lprcClip, - HRGN hrgnUpdate, - LPRECT lprcUpdate); - -extern(Windows) export int ScrollWindowEx( - HWND hWnd, - int dx, - int dy, - RECT *prcScroll, - RECT *prcClip, - HRGN hrgnUpdate, - LPRECT prcUpdate, - UINT flags); - -enum : uint { SW_SCROLLCHILDREN = 0x0001 } -enum : uint { SW_INVALIDATE = 0x0002 } -enum : uint { SW_ERASE = 0x0004 } -// #if(WINVER >= 0x0500) -enum : uint { SW_SMOOTHSCROLL = 0x0010 } -// #endif /* WINVER >= 0x0500 */ - -// #ifndef NOSCROLL - -extern(Windows) export int SetScrollPos( - HWND hWnd, - int nBar, - int nPos, - BOOL bRedraw); - -extern(Windows) export int GetScrollPos( - HWND hWnd, - int nBar); - -extern(Windows) export BOOL SetScrollRange( - HWND hWnd, - int nBar, - int nMinPos, - int nMaxPos, - BOOL bRedraw); - -extern(Windows) export BOOL GetScrollRange( - HWND hWnd, - int nBar, - LPINT lpMinPos, - LPINT lpMaxPos); - -extern(Windows) export BOOL ShowScrollBar( - HWND hWnd, - int wBar, - BOOL bShow); - -extern(Windows) export BOOL EnableScrollBar( - HWND hWnd, - UINT wSBflags, - UINT wArrows); - -enum : uint { ESB_ENABLE_BOTH = 0x0000 } -enum : uint { ESB_DISABLE_BOTH = 0x0003 } - -enum : uint { ESB_DISABLE_LEFT = 0x0001 } -enum : uint { ESB_DISABLE_RIGHT = 0x0002 } - -enum : uint { ESB_DISABLE_UP = 0x0001 } -enum : uint { ESB_DISABLE_DOWN = 0x0002 } - -alias ESB_DISABLE_LEFT ESB_DISABLE_LTUP; -alias ESB_DISABLE_RIGHT ESB_DISABLE_RTDN; - -// #endif /* !NOSCROLL */ - -extern(Windows) export BOOL SetPropA( - HWND hWnd, - LPCSTR lpString, - HANDLE hData); -extern(Windows) export BOOL SetPropW( - HWND hWnd, - LPCWSTR lpString, - HANDLE hData); -// #ifdef UNICODE -alias SetPropW SetProp; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HANDLE GetPropA( - HWND hWnd, - LPCSTR lpString); -extern(Windows) export HANDLE GetPropW( - HWND hWnd, - LPCWSTR lpString); -// #ifdef UNICODE -alias GetPropW GetProp; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HANDLE RemovePropA( - HWND hWnd, - LPCSTR lpString); -extern(Windows) export HANDLE RemovePropW( - HWND hWnd, - LPCWSTR lpString); -// #ifdef UNICODE -alias RemovePropW RemoveProp; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int EnumPropsExA( - HWND hWnd, - PROPENUMPROCEXA lpEnumFunc, - LPARAM lParam); -extern(Windows) export int EnumPropsExW( - HWND hWnd, - PROPENUMPROCEXW lpEnumFunc, - LPARAM lParam); -// #ifdef UNICODE -alias EnumPropsExW EnumPropsEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int EnumPropsA( - HWND hWnd, - PROPENUMPROCA lpEnumFunc); -extern(Windows) export int EnumPropsW( - HWND hWnd, - PROPENUMPROCW lpEnumFunc); -// #ifdef UNICODE -alias EnumPropsW EnumProps; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL SetWindowTextA( - HWND hWnd, - LPCSTR lpString); -extern(Windows) export BOOL SetWindowTextW( - HWND hWnd, - LPCWSTR lpString); -// #ifdef UNICODE -alias SetWindowTextW SetWindowText; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int GetWindowTextA( - HWND hWnd, - LPSTR lpString, - int nMaxCount); -extern(Windows) export int GetWindowTextW( - HWND hWnd, - LPWSTR lpString, - int nMaxCount); -// #ifdef UNICODE -alias GetWindowTextW GetWindowText; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int GetWindowTextLengthA( - HWND hWnd); -extern(Windows) export int GetWindowTextLengthW( - HWND hWnd); -// #ifdef UNICODE -alias GetWindowTextLengthW GetWindowTextLength; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetClientRect( - HWND hWnd, - LPRECT lpRect); - -extern(Windows) export BOOL GetWindowRect( - HWND hWnd, - LPRECT lpRect); - -extern(Windows) export BOOL AdjustWindowRect( - LPRECT lpRect, - DWORD dwStyle, - BOOL bMenu); - -extern(Windows) export BOOL AdjustWindowRectEx( - LPRECT lpRect, - DWORD dwStyle, - BOOL bMenu, - DWORD dwExStyle); - -// #if(WINVER >= 0x0400) -enum : uint { HELPINFO_WINDOW = 0x0001 } -enum : uint { HELPINFO_MENUITEM = 0x0002 } -struct tagHELPINFO { - UINT cbSize; - int iContextType; - int iCtrlId; - HANDLE hItemHandle; - DWORD_PTR dwContextId; - POINT MousePos; -} -alias tagHELPINFO HELPINFO; -alias tagHELPINFO* LPHELPINFO; - -extern(Windows) export BOOL SetWindowContextHelpId( - HWND, - DWORD); - -extern(Windows) export DWORD GetWindowContextHelpId( - HWND); - -extern(Windows) export BOOL SetMenuContextHelpId( - HMENU, - DWORD); - -extern(Windows) export DWORD GetMenuContextHelpId( - HMENU); - -// #endif /* WINVER >= 0x0400 */ - -// #ifndef NOMB - -enum : uint { MB_OK = 0x00000000 } -enum : uint { MB_OKCANCEL = 0x00000001 } -enum : uint { MB_ABORTRETRYIGNORE = 0x00000002 } -enum : uint { MB_YESNOCANCEL = 0x00000003 } -enum : uint { MB_YESNO = 0x00000004 } -enum : uint { MB_RETRYCANCEL = 0x00000005 } -// #if(WINVER >= 0x0500) -enum : uint { MB_CANCELTRYCONTINUE = 0x00000006 } -// #endif /* WINVER >= 0x0500 */ - -enum : uint { MB_ICONHAND = 0x00000010 } -enum : uint { MB_ICONQUESTION = 0x00000020 } -enum : uint { MB_ICONEXCLAMATION = 0x00000030 } -enum : uint { MB_ICONASTERISK = 0x00000040 } - -// #if(WINVER >= 0x0400) -enum : uint { MB_USERICON = 0x00000080 } -alias MB_ICONEXCLAMATION MB_ICONWARNING; -alias MB_ICONHAND MB_ICONERROR; -// #endif /* WINVER >= 0x0400 */ - -alias MB_ICONASTERISK MB_ICONINFORMATION; -alias MB_ICONHAND MB_ICONSTOP; - -enum : uint { MB_DEFBUTTON1 = 0x00000000 } -enum : uint { MB_DEFBUTTON2 = 0x00000100 } -enum : uint { MB_DEFBUTTON3 = 0x00000200 } -// #if(WINVER >= 0x0400) -enum : uint { MB_DEFBUTTON4 = 0x00000300 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { MB_APPLMODAL = 0x00000000 } -enum : uint { MB_SYSTEMMODAL = 0x00001000 } -enum : uint { MB_TASKMODAL = 0x00002000 } -// #if(WINVER >= 0x0400) -enum : uint { MB_HELP = 0x00004000 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { MB_NOFOCUS = 0x00008000 } -enum : uint { MB_SETFOREGROUND = 0x00010000 } -enum : uint { MB_DEFAULT_DESKTOP_ONLY = 0x00020000 } - -// #if(WINVER >= 0x0400) -enum : uint { MB_TOPMOST = 0x00040000 } -enum : uint { MB_RIGHT = 0x00080000 } -enum : uint { MB_RTLREADING = 0x00100000 } - -// #endif /* WINVER >= 0x0400 */ - -// #ifdef _WIN32_WINNT -// #if (_WIN32_WINNT >= 0x0400) -enum : uint { MB_SERVICE_NOTIFICATION = 0x00200000 } -// #else -// #... -// #endif -enum : uint { MB_SERVICE_NOTIFICATION_NT3X = 0x00040000 } -// #endif - -enum : uint { MB_TYPEMASK = 0x0000000F } -enum : uint { MB_ICONMASK = 0x000000F0 } -enum : uint { MB_DEFMASK = 0x00000F00 } -enum : uint { MB_MODEMASK = 0x00003000 } -enum : uint { MB_MISCMASK = 0x0000C000 } - -extern(Windows) export int MessageBoxA( - HWND hWnd, - LPCSTR lpText, - LPCSTR lpCaption, - UINT uType); -extern(Windows) export int MessageBoxW( - HWND hWnd, - LPCWSTR lpText, - LPCWSTR lpCaption, - UINT uType); -// #ifdef UNICODE -alias MessageBoxW MessageBox; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int MessageBoxExA( - HWND hWnd, - LPCSTR lpText, - LPCSTR lpCaption, - UINT uType, - WORD wLanguageId); -extern(Windows) export int MessageBoxExW( - HWND hWnd, - LPCWSTR lpText, - LPCWSTR lpCaption, - UINT uType, - WORD wLanguageId); -// #ifdef UNICODE -alias MessageBoxExW MessageBoxEx; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) - -extern(Windows) alias void function(LPHELPINFO lpHelpInfo) MSGBOXCALLBACK; - -struct tagMSGBOXPARAMSA { - UINT cbSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCSTR lpszText; - LPCSTR lpszCaption; - DWORD dwStyle; - LPCSTR lpszIcon; - DWORD_PTR dwContextHelpId; - MSGBOXCALLBACK lpfnMsgBoxCallback; - DWORD dwLanguageId; -} -alias tagMSGBOXPARAMSA MSGBOXPARAMSA; -alias tagMSGBOXPARAMSA* PMSGBOXPARAMSA; -alias tagMSGBOXPARAMSA* LPMSGBOXPARAMSA; - -struct tagMSGBOXPARAMSW { - UINT cbSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCWSTR lpszText; - LPCWSTR lpszCaption; - DWORD dwStyle; - LPCWSTR lpszIcon; - DWORD_PTR dwContextHelpId; - MSGBOXCALLBACK lpfnMsgBoxCallback; - DWORD dwLanguageId; -} -alias tagMSGBOXPARAMSW MSGBOXPARAMSW; -alias tagMSGBOXPARAMSW* PMSGBOXPARAMSW; -alias tagMSGBOXPARAMSW* LPMSGBOXPARAMSW; - -// #ifdef UNICODE -alias MSGBOXPARAMSW MSGBOXPARAMS; -alias PMSGBOXPARAMSW PMSGBOXPARAMS; -alias LPMSGBOXPARAMSW LPMSGBOXPARAMS; -// #else -// ... -// #endif // UNICODE - -extern(Windows) export int MessageBoxIndirectA( - MSGBOXPARAMSA *); -extern(Windows) export int MessageBoxIndirectW( - MSGBOXPARAMSW *); -// #ifdef UNICODE -alias MessageBoxIndirectW MessageBoxIndirect; -// #else -// #... -// #endif // !UNICODE -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL MessageBeep( - UINT uType); - -// #endif /* !NOMB */ - -extern(Windows) export int ShowCursor( - BOOL bShow); - -extern(Windows) export BOOL SetCursorPos( - int X, - int Y); - -extern(Windows) export HCURSOR SetCursor( - HCURSOR hCursor); - -extern(Windows) export BOOL GetCursorPos( - LPPOINT lpPoint); - -extern(Windows) export BOOL ClipCursor( - RECT *lpRect); - -extern(Windows) export BOOL GetClipCursor( - LPRECT lpRect); - -extern(Windows) export HCURSOR GetCursor(); - -extern(Windows) export BOOL CreateCaret( - HWND hWnd, - HBITMAP hBitmap, - int nWidth, - int nHeight); - -extern(Windows) export UINT GetCaretBlinkTime(); - -extern(Windows) export BOOL SetCaretBlinkTime( - UINT uMSeconds); - -extern(Windows) export BOOL DestroyCaret(); - -extern(Windows) export BOOL HideCaret( - HWND hWnd); - -extern(Windows) export BOOL ShowCaret( - HWND hWnd); - -extern(Windows) export BOOL SetCaretPos( - int X, - int Y); - -extern(Windows) export BOOL GetCaretPos( - LPPOINT lpPoint); - -extern(Windows) export BOOL ClientToScreen( - HWND hWnd, - LPPOINT lpPoint); - -extern(Windows) export BOOL ScreenToClient( - HWND hWnd, - LPPOINT lpPoint); - -extern(Windows) export int MapWindowPoints( - HWND hWndFrom, - HWND hWndTo, - LPPOINT lpPoints, - UINT cPoints); - -extern(Windows) export HWND WindowFromPoint( - POINT Point); - -extern(Windows) export HWND ChildWindowFromPoint( - HWND hWndParent, - POINT Point); - -// #if(WINVER >= 0x0400) -enum : uint { CWP_ALL = 0x0000 } -enum : uint { CWP_SKIPINVISIBLE = 0x0001 } -enum : uint { CWP_SKIPDISABLED = 0x0002 } -enum : uint { CWP_SKIPTRANSPARENT = 0x0004 } - -extern(Windows) export HWND ChildWindowFromPointEx(HWND, POINT, UINT); -// #endif /* WINVER >= 0x0400 */ - -// #ifndef NOCOLOR - -enum : uint { CTLCOLOR_MSGBOX = 0 } -enum : uint { CTLCOLOR_EDIT = 1 } -enum : uint { CTLCOLOR_LISTBOX = 2 } -enum : uint { CTLCOLOR_BTN = 3 } -enum : uint { CTLCOLOR_DLG = 4 } -enum : uint { CTLCOLOR_SCROLLBAR = 5 } -enum : uint { CTLCOLOR_STATIC = 6 } -enum : uint { CTLCOLOR_MAX = 7 } - -enum : uint { COLOR_SCROLLBAR = 0 } -enum : uint { COLOR_BACKGROUND = 1 } -enum : uint { COLOR_ACTIVECAPTION = 2 } -enum : uint { COLOR_INACTIVECAPTION = 3 } -enum : uint { COLOR_MENU = 4 } -enum : uint { COLOR_WINDOW = 5 } -enum : uint { COLOR_WINDOWFRAME = 6 } -enum : uint { COLOR_MENUTEXT = 7 } -enum : uint { COLOR_WINDOWTEXT = 8 } -enum : uint { COLOR_CAPTIONTEXT = 9 } -enum : uint { COLOR_ACTIVEBORDER = 10 } -enum : uint { COLOR_INACTIVEBORDER = 11 } -enum : uint { COLOR_APPWORKSPACE = 12 } -enum : uint { COLOR_HIGHLIGHT = 13 } -enum : uint { COLOR_HIGHLIGHTTEXT = 14 } -enum : uint { COLOR_BTNFACE = 15 } -enum : uint { COLOR_BTNSHADOW = 16 } -enum : uint { COLOR_GRAYTEXT = 17 } -enum : uint { COLOR_BTNTEXT = 18 } -enum : uint { COLOR_INACTIVECAPTIONTEXT = 19 } -enum : uint { COLOR_BTNHIGHLIGHT = 20 } - -// #if(WINVER >= 0x0400) -enum : uint { COLOR_3DDKSHADOW = 21 } -enum : uint { COLOR_3DLIGHT = 22 } -enum : uint { COLOR_INFOTEXT = 23 } -enum : uint { COLOR_INFOBK = 24 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -enum : uint { COLOR_HOTLIGHT = 26 } -enum : uint { COLOR_GRADIENTACTIVECAPTION = 27 } -enum : uint { COLOR_GRADIENTINACTIVECAPTION = 28 } -// #if(WINVER >= 0x0501) -enum : uint { COLOR_MENUHILIGHT = 29 } -enum : uint { COLOR_MENUBAR = 30 } -// #endif /* WINVER >= 0x0501 */ -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0400) -alias COLOR_BACKGROUND COLOR_DESKTOP; -alias COLOR_BTNFACE COLOR_3DFACE; -alias COLOR_BTNSHADOW COLOR_3DSHADOW; -alias COLOR_BTNHIGHLIGHT COLOR_3DHIGHLIGHT; -alias COLOR_BTNHIGHLIGHT COLOR_3DHILIGHT; -alias COLOR_BTNHIGHLIGHT COLOR_BTNHILIGHT; -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export DWORD GetSysColor( - int nIndex); - -// #if(WINVER >= 0x0400) -extern(Windows) export HBRUSH GetSysColorBrush( - int nIndex); - -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL SetSysColors( - int cElements, - INT * lpaElements, - COLORREF * lpaRgbValues); - -// #endif /* !NOCOLOR */ - -extern(Windows) export BOOL DrawFocusRect( - HDC hDC, - RECT * lprc); - -extern(Windows) export int FillRect( - HDC hDC, - RECT *lprc, - HBRUSH hbr); - -extern(Windows) export int FrameRect( - HDC hDC, - RECT *lprc, - HBRUSH hbr); - -extern(Windows) export BOOL InvertRect( - HDC hDC, - RECT *lprc); - -extern(Windows) export BOOL SetRect( - LPRECT lprc, - int xLeft, - int yTop, - int xRight, - int yBottom); - -extern(Windows) export BOOL SetRectEmpty( - LPRECT lprc); - -extern(Windows) export BOOL CopyRect( - LPRECT lprcDst, - RECT *lprcSrc); - -extern(Windows) export BOOL InflateRect( - LPRECT lprc, - int dx, - int dy); - -extern(Windows) export BOOL IntersectRect( - LPRECT lprcDst, - RECT *lprcSrc1, - RECT *lprcSrc2); - -extern(Windows) export BOOL UnionRect( - LPRECT lprcDst, - RECT *lprcSrc1, - RECT *lprcSrc2); - -extern(Windows) export BOOL SubtractRect( - LPRECT lprcDst, - RECT *lprcSrc1, - RECT *lprcSrc2); - -extern(Windows) export BOOL OffsetRect( - LPRECT lprc, - int dx, - int dy); - -extern(Windows) export BOOL IsRectEmpty( - RECT *lprc); - -extern(Windows) export BOOL EqualRect( - RECT *lprc1, - RECT *lprc2); - -extern(Windows) export BOOL PtInRect( - RECT *lprc, - POINT pt); - -// #ifndef NOWINOFFSETS - -extern(Windows) export WORD GetWindowWord( - HWND hWnd, - int nIndex); - -extern(Windows) export WORD SetWindowWord( - HWND hWnd, - int nIndex, - WORD wNewWord); - -extern(Windows) export LONG GetWindowLongA( - HWND hWnd, - int nIndex); -extern(Windows) export LONG GetWindowLongW( - HWND hWnd, - int nIndex); -// #ifdef UNICODE -alias GetWindowLongW GetWindowLong; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LONG SetWindowLongA( - HWND hWnd, - int nIndex, - LONG dwNewLong); -extern(Windows) export LONG SetWindowLongW( - HWND hWnd, - int nIndex, - LONG dwNewLong); -// #ifdef UNICODE -alias SetWindowLongW SetWindowLong; -// #else -// #... -// #endif // !UNICODE - -// #ifdef _WIN64 - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #else /* _WIN64 */ - -alias GetWindowLongA GetWindowLongPtrA; -alias GetWindowLongW GetWindowLongPtrW; -// #ifdef UNICODE -alias GetWindowLongPtrW GetWindowLongPtr; -// #else -// #... -// #endif // !UNICODE - -alias SetWindowLongA SetWindowLongPtrA; -alias SetWindowLongW SetWindowLongPtrW; -// #ifdef UNICODE -alias SetWindowLongPtrW SetWindowLongPtr; -// #else -// #... -// #endif // !UNICODE - -// #endif /* _WIN64 */ - -extern(Windows) export WORD GetClassWord( - HWND hWnd, - int nIndex); - -extern(Windows) export WORD SetClassWord( - HWND hWnd, - int nIndex, - WORD wNewWord); - -extern(Windows) export DWORD GetClassLongA( - HWND hWnd, - int nIndex); -extern(Windows) export DWORD GetClassLongW( - HWND hWnd, - int nIndex); -// #ifdef UNICODE -alias GetClassLongW GetClassLong; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD SetClassLongA( - HWND hWnd, - int nIndex, - LONG dwNewLong); -extern(Windows) export DWORD SetClassLongW( - HWND hWnd, - int nIndex, - LONG dwNewLong); -// #ifdef UNICODE -alias SetClassLongW SetClassLong; -// #else -// #... -// #endif // !UNICODE - -// #ifdef _WIN64 - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #else /* _WIN64 */ - -alias GetClassLongA GetClassLongPtrA; -alias GetClassLongW GetClassLongPtrW; -// #ifdef UNICODE -alias GetClassLongPtrW GetClassLongPtr; -// #else -// #... -// #endif // !UNICODE - -alias SetClassLongA SetClassLongPtrA; -alias SetClassLongW SetClassLongPtrW; -// #ifdef UNICODE -alias SetClassLongPtrW SetClassLongPtr; -// #else -// #... -// #endif // !UNICODE - -// #endif /* _WIN64 */ - -// #endif /* !NOWINOFFSETS */ - -// #if(WINVER >= 0x0500) -extern(Windows) export BOOL GetProcessDefaultLayout( - DWORD *pdwDefaultLayout); - -extern(Windows) export BOOL SetProcessDefaultLayout( - DWORD dwDefaultLayout); -// #endif /* WINVER >= 0x0500 */ - -extern(Windows) export HWND GetDesktopWindow(); - -extern(Windows) export HWND GetParent( - HWND hWnd); - -extern(Windows) export HWND SetParent( - HWND hWndChild, - HWND hWndNewParent); - -extern(Windows) export BOOL EnumChildWindows( - HWND hWndParent, - WNDENUMPROC lpEnumFunc, - LPARAM lParam); - -extern(Windows) export HWND FindWindowA( - LPCSTR lpClassName, - LPCSTR lpWindowName); -extern(Windows) export HWND FindWindowW( - LPCWSTR lpClassName, - LPCWSTR lpWindowName); -// #ifdef UNICODE -alias FindWindowW FindWindow; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export HWND FindWindowExA(HWND, HWND, LPCSTR, LPCSTR); -extern(Windows) export HWND FindWindowExW(HWND, HWND, LPCWSTR, LPCWSTR); -// #ifdef UNICODE -alias FindWindowExW FindWindowEx; -// #else -// #... -// #endif // !UNICODE - -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL EnumWindows( - WNDENUMPROC lpEnumFunc, - LPARAM lParam); - -extern(Windows) export BOOL EnumThreadWindows( - DWORD dwThreadId, - WNDENUMPROC lpfn, - LPARAM lParam); - -// #define EnumTaskWindows(hTask, lpfn, lParam) EnumThreadWindows(HandleToUlong(hTask), lpfn, lParam) - -extern(Windows) export int GetClassNameA( - HWND hWnd, - LPSTR lpClassName, - int nMaxCount); -extern(Windows) export int GetClassNameW( - HWND hWnd, - LPWSTR lpClassName, - int nMaxCount); -// #ifdef UNICODE -alias GetClassNameW GetClassName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HWND GetTopWindow( - HWND hWnd); - -// #define GetNextWindow(hWnd, wCmd) GetWindow(hWnd, wCmd) -// #define GetSysModalWindow() (NULL) -// #define SetSysModalWindow(hWnd) (NULL) - -extern(Windows) export DWORD GetWindowThreadProcessId( - HWND hWnd, - LPDWORD lpdwProcessId); - -// #if(_WIN32_WINNT >= 0x0501) -extern(Windows) export BOOL IsGUIThread( - BOOL bConvert); - -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #define GetWindowTask(hWnd) ((HANDLE)(DWORD_PTR)GetWindowThreadProcessId(hWnd, NULL)) - -extern(Windows) export HWND GetLastActivePopup( - HWND hWnd); - -enum : uint { GW_HWNDFIRST = 0 } -enum : uint { GW_HWNDLAST = 1 } -enum : uint { GW_HWNDNEXT = 2 } -enum : uint { GW_HWNDPREV = 3 } -enum : uint { GW_OWNER = 4 } -enum : uint { GW_CHILD = 5 } -// #if(WINVER <= 0x0400) -// #... -// #else -enum : uint { GW_ENABLEDPOPUP = 6 } -enum : uint { GW_MAX = 6 } -// #endif - -extern(Windows) export HWND GetWindow( - HWND hWnd, - UINT uCmd); - -// #ifndef NOWH - -// #ifdef STRICT - -extern(Windows) export HHOOK SetWindowsHookA( - int nFilterType, - HOOKPROC pfnFilterProc); -extern(Windows) export HHOOK SetWindowsHookW( - int nFilterType, - HOOKPROC pfnFilterProc); -// #ifdef UNICODE -alias SetWindowsHookW SetWindowsHook; -// #else -// #... -// #endif // !UNICODE - -// #else /* !STRICT */ - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #endif /* !STRICT */ - -extern(Windows) export BOOL UnhookWindowsHook( - int nCode, - HOOKPROC pfnFilterProc); - -extern(Windows) export HHOOK SetWindowsHookExA( - int idHook, - HOOKPROC lpfn, - HINSTANCE hmod, - DWORD dwThreadId); -extern(Windows) export HHOOK SetWindowsHookExW( - int idHook, - HOOKPROC lpfn, - HINSTANCE hmod, - DWORD dwThreadId); -// #ifdef UNICODE -alias SetWindowsHookExW SetWindowsHookEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL UnhookWindowsHookEx( - HHOOK hhk); - -extern(Windows) export LRESULT CallNextHookEx( - HHOOK hhk, - int nCode, - WPARAM wParam, - LPARAM lParam); - -// #ifdef STRICT -// #define DefHookProc(nCode, wParam, lParam, phhk) CallNextHookEx(*phhk, nCode, wParam, lParam) -// #else -// #... -// ... -// #endif /* STRICT */ -// #endif /* !NOWH */ - -// #ifndef NOMENUS - -enum : uint { MF_INSERT = 0x00000000 } -enum : uint { MF_CHANGE = 0x00000080 } -enum : uint { MF_APPEND = 0x00000100 } -enum : uint { MF_DELETE = 0x00000200 } -enum : uint { MF_REMOVE = 0x00001000 } - -enum : uint { MF_BYCOMMAND = 0x00000000 } -enum : uint { MF_BYPOSITION = 0x00000400 } - -enum : uint { MF_SEPARATOR = 0x00000800 } - -enum : uint { MF_ENABLED = 0x00000000 } -enum : uint { MF_GRAYED = 0x00000001 } -enum : uint { MF_DISABLED = 0x00000002 } - -enum : uint { MF_UNCHECKED = 0x00000000 } -enum : uint { MF_CHECKED = 0x00000008 } -enum : uint { MF_USECHECKBITMAPS = 0x00000200 } - -enum : uint { MF_STRING = 0x00000000 } -enum : uint { MF_BITMAP = 0x00000004 } -enum : uint { MF_OWNERDRAW = 0x00000100 } - -enum : uint { MF_POPUP = 0x00000010 } -enum : uint { MF_MENUBARBREAK = 0x00000020 } -enum : uint { MF_MENUBREAK = 0x00000040 } - -enum : uint { MF_UNHILITE = 0x00000000 } -enum : uint { MF_HILITE = 0x00000080 } - -// #if(WINVER >= 0x0400) -enum : uint { MF_DEFAULT = 0x00001000 } -// #endif /* WINVER >= 0x0400 */ -enum : uint { MF_SYSMENU = 0x00002000 } -enum : uint { MF_HELP = 0x00004000 } -// #if(WINVER >= 0x0400) -enum : uint { MF_RIGHTJUSTIFY = 0x00004000 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { MF_MOUSESELECT = 0x00008000 } -// #if(WINVER >= 0x0400) -enum : uint { MF_END = 0x00000080 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0400) -alias MF_STRING MFT_STRING; -alias MF_BITMAP MFT_BITMAP; -alias MF_MENUBARBREAK MFT_MENUBARBREAK; -alias MF_MENUBREAK MFT_MENUBREAK; -alias MF_OWNERDRAW MFT_OWNERDRAW; -enum : uint { MFT_RADIOCHECK = 0x00000200 } -alias MF_SEPARATOR MFT_SEPARATOR; -enum : uint { MFT_RIGHTORDER = 0x00002000 } -alias MF_RIGHTJUSTIFY MFT_RIGHTJUSTIFY; - -enum : uint { MFS_GRAYED = 0x00000003 } -alias MFS_GRAYED MFS_DISABLED; -alias MF_CHECKED MFS_CHECKED; -alias MF_HILITE MFS_HILITE; -alias MF_ENABLED MFS_ENABLED; -alias MF_UNCHECKED MFS_UNCHECKED; -alias MF_UNHILITE MFS_UNHILITE; -alias MF_DEFAULT MFS_DEFAULT; -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0400) - -extern(Windows) export BOOL CheckMenuRadioItem( - HMENU, - UINT, - UINT, - UINT, - UINT); -// #endif /* WINVER >= 0x0400 */ - -struct _4 { - WORD versionNumber; - WORD offset; -} -alias _4 MENUITEMTEMPLATEHEADER; -alias _4* PMENUITEMTEMPLATEHEADER; - -struct _5 { - WORD mtOption; - WORD mtID; - WCHAR mtString[1]; -} -alias _5 MENUITEMTEMPLATE; -alias _5* PMENUITEMTEMPLATE; - -// skip #define MF_END 0x00000080L - -// #endif /* !NOMENUS */ - -// #ifndef NOSYSCOMMANDS - -enum : uint { SC_SIZE = 0xF000 } -enum : uint { SC_MOVE = 0xF010 } -enum : uint { SC_MINIMIZE = 0xF020 } -enum : uint { SC_MAXIMIZE = 0xF030 } -enum : uint { SC_NEXTWINDOW = 0xF040 } -enum : uint { SC_PREVWINDOW = 0xF050 } -enum : uint { SC_CLOSE = 0xF060 } -enum : uint { SC_VSCROLL = 0xF070 } -enum : uint { SC_HSCROLL = 0xF080 } -enum : uint { SC_MOUSEMENU = 0xF090 } -enum : uint { SC_KEYMENU = 0xF100 } -enum : uint { SC_ARRANGE = 0xF110 } -enum : uint { SC_RESTORE = 0xF120 } -enum : uint { SC_TASKLIST = 0xF130 } -enum : uint { SC_SCREENSAVE = 0xF140 } -enum : uint { SC_HOTKEY = 0xF150 } -// #if(WINVER >= 0x0400) -enum : uint { SC_DEFAULT = 0xF160 } -enum : uint { SC_MONITORPOWER = 0xF170 } -enum : uint { SC_CONTEXTHELP = 0xF180 } -enum : uint { SC_SEPARATOR = 0xF00F } -// #endif /* WINVER >= 0x0400 */ - -alias SC_MINIMIZE SC_ICON; -alias SC_MAXIMIZE SC_ZOOM; - -// #endif /* !NOSYSCOMMANDS */ - -extern(Windows) export HBITMAP LoadBitmapA( - HINSTANCE hInstance, - LPCSTR lpBitmapName); -extern(Windows) export HBITMAP LoadBitmapW( - HINSTANCE hInstance, - LPCWSTR lpBitmapName); -// #ifdef UNICODE -alias LoadBitmapW LoadBitmap; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HCURSOR LoadCursorA( - HINSTANCE hInstance, - LPCSTR lpCursorName); -extern(Windows) export HCURSOR LoadCursorW( - HINSTANCE hInstance, - LPCWSTR lpCursorName); -// #ifdef UNICODE -alias LoadCursorW LoadCursor; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HCURSOR LoadCursorFromFileA( - LPCSTR lpFileName); -extern(Windows) export HCURSOR LoadCursorFromFileW( - LPCWSTR lpFileName); -// #ifdef UNICODE -alias LoadCursorFromFileW LoadCursorFromFile; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HCURSOR CreateCursor( - HINSTANCE hInst, - int xHotSpot, - int yHotSpot, - int nWidth, - int nHeight, - VOID *pvANDPlane, - VOID *pvXORPlane); - -extern(Windows) export BOOL DestroyCursor( - HCURSOR hCursor); - -// #ifndef _MAC -alias CopyIcon CopyCursor; -// #else -// ... -// #endif - -const LPTSTR IDC_ARROW = cast(LPTSTR)(32512); -const LPTSTR IDC_IBEAM = cast(LPTSTR)(32513); -const LPTSTR IDC_WAIT = cast(LPTSTR)(32514); -const LPTSTR IDC_CROSS = cast(LPTSTR)(32515); -const LPTSTR IDC_UPARROW = cast(LPTSTR)(32516); -const LPTSTR IDC_SIZE = cast(LPTSTR)(32640); -const LPTSTR IDC_ICON = cast(LPTSTR)(32641); -const LPTSTR IDC_SIZENWSE = cast(LPTSTR)(32642); -const LPTSTR IDC_SIZENESW = cast(LPTSTR)(32643); -const LPTSTR IDC_SIZEWE = cast(LPTSTR)(32644); -const LPTSTR IDC_SIZENS = cast(LPTSTR)(32645); -const LPTSTR IDC_SIZEALL = cast(LPTSTR)(32646); -const LPTSTR IDC_NO = cast(LPTSTR)(32648); -// #if(WINVER >= 0x0500) -const LPTSTR IDC_HAND = cast(LPTSTR)(32649); -// #endif /* WINVER >= 0x0500 */ -const LPTSTR IDC_APPSTARTING = cast(LPTSTR)(32650); -// #if(WINVER >= 0x0400) -const LPTSTR IDC_HELP = cast(LPTSTR)(32651); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL SetSystemCursor( - HCURSOR hcur, - DWORD id); - -struct _ICONINFO { - BOOL fIcon; - DWORD xHotspot; - DWORD yHotspot; - HBITMAP hbmMask; - HBITMAP hbmColor; -} -alias _ICONINFO ICONINFO; - -alias ICONINFO* PICONINFO; - -extern(Windows) export HICON LoadIconA( - HINSTANCE hInstance, - LPCSTR lpIconName); -extern(Windows) export HICON LoadIconW( - HINSTANCE hInstance, - LPCWSTR lpIconName); -// #ifdef UNICODE -alias LoadIconW LoadIcon; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HICON CreateIcon( - HINSTANCE hInstance, - int nWidth, - int nHeight, - BYTE cPlanes, - BYTE cBitsPixel, - BYTE *lpbANDbits, - BYTE *lpbXORbits); - -extern(Windows) export BOOL DestroyIcon( - HICON hIcon); - -extern(Windows) export int LookupIconIdFromDirectory( - PBYTE presbits, - BOOL fIcon); - -// #if(WINVER >= 0x0400) -extern(Windows) export int LookupIconIdFromDirectoryEx( - PBYTE presbits, - BOOL fIcon, - int cxDesired, - int cyDesired, - UINT Flags); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export HICON CreateIconFromResource( - PBYTE presbits, - DWORD dwResSize, - BOOL fIcon, - DWORD dwVer); - -// #if(WINVER >= 0x0400) -extern(Windows) export HICON CreateIconFromResourceEx( - PBYTE presbits, - DWORD dwResSize, - BOOL fIcon, - DWORD dwVer, - int cxDesired, - int cyDesired, - UINT Flags); - -struct tagCURSORSHAPE { - int xHotSpot; - int yHotSpot; - int cx; - int cy; - int cbWidth; - BYTE Planes; - BYTE BitsPixel; -} -alias tagCURSORSHAPE CURSORSHAPE; -alias tagCURSORSHAPE* LPCURSORSHAPE; - -// #endif /* WINVER >= 0x0400 */ - -enum : uint { IMAGE_BITMAP = 0 } -enum : uint { IMAGE_ICON = 1 } -enum : uint { IMAGE_CURSOR = 2 } -// #if(WINVER >= 0x0400) -enum : uint { IMAGE_ENHMETAFILE = 3 } - -enum : uint { LR_DEFAULTCOLOR = 0x0000 } -enum : uint { LR_MONOCHROME = 0x0001 } -enum : uint { LR_COLOR = 0x0002 } -enum : uint { LR_COPYRETURNORG = 0x0004 } -enum : uint { LR_COPYDELETEORG = 0x0008 } -enum : uint { LR_LOADFROMFILE = 0x0010 } -enum : uint { LR_LOADTRANSPARENT = 0x0020 } -enum : uint { LR_DEFAULTSIZE = 0x0040 } -enum : uint { LR_VGACOLOR = 0x0080 } -enum : uint { LR_LOADMAP3DCOLORS = 0x1000 } -enum : uint { LR_CREATEDIBSECTION = 0x2000 } -enum : uint { LR_COPYFROMRESOURCE = 0x4000 } -enum : uint { LR_SHARED = 0x8000 } - -extern(Windows) export HANDLE LoadImageA( - HINSTANCE, - LPCSTR, - UINT, - int, - int, - UINT); -extern(Windows) export HANDLE LoadImageW( - HINSTANCE, - LPCWSTR, - UINT, - int, - int, - UINT); -// #ifdef UNICODE -alias LoadImageW LoadImage; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export HANDLE CopyImage( - HANDLE, - UINT, - int, - int, - UINT); - -enum : uint { DI_MASK = 0x0001 } -enum : uint { DI_IMAGE = 0x0002 } -enum : uint { DI_NORMAL = 0x0003 } -enum : uint { DI_COMPAT = 0x0004 } -enum : uint { DI_DEFAULTSIZE = 0x0008 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { DI_NOMIRROR = 0x0010 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export BOOL DrawIconEx(HDC hdc, int xLeft, int yTop, - HICON hIcon, int cxWidth, int cyWidth, - UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags); -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export HICON CreateIconIndirect( - PICONINFO piconinfo); - -extern(Windows) export HICON CopyIcon( - HICON hIcon); - -extern(Windows) export BOOL GetIconInfo( - HICON hIcon, - PICONINFO piconinfo); - -// #if(WINVER >= 0x0400) -enum : uint { RES_ICON = 1 } -enum : uint { RES_CURSOR = 2 } -// #endif /* WINVER >= 0x0400 */ - -// #ifdef OEMRESOURCE - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... - -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #... -// #if(WINVER >= 0x0500) -// #... -// #endif /* WINVER >= 0x0500 */ -// #if(WINVER >= 0x0400) -// #... -// #endif /* WINVER >= 0x0400 */ - -// #... -// #... -// #... -// #... -// #... -// #if(WINVER >= 0x0400) -// #... -// #... -// #... -// #... -// #endif /* WINVER >= 0x0400 */ - -// #endif /* OEMRESOURCE */ - -enum : uint { ORD_LANGDRIVER = 1 } - -// #ifndef NOICONS - -// #ifdef RC_INVOKED -// #... -// #... -// #... -// #... -// #... -// #if(WINVER >= 0x0400) -// #... -// #endif /* WINVER >= 0x0400 */ -// #else -const LPTSTR IDI_APPLICATION = cast(LPTSTR)(32512); -const LPTSTR IDI_HAND = cast(LPTSTR)(32513); -const LPTSTR IDI_QUESTION = cast(LPTSTR)(32514); -const LPTSTR IDI_EXCLAMATION = cast(LPTSTR)(32515); -const LPTSTR IDI_ASTERISK = cast(LPTSTR)(32516); -// #if(WINVER >= 0x0400) -const LPTSTR IDI_WINLOGO = cast(LPTSTR)(32517); -// #endif /* WINVER >= 0x0400 */ -// #endif /* RC_INVOKED */ - -// #if(WINVER >= 0x0400) -alias IDI_EXCLAMATION IDI_WARNING; -alias IDI_HAND IDI_ERROR; -alias IDI_ASTERISK IDI_INFORMATION; -// #endif /* WINVER >= 0x0400 */ - -// #endif /* !NOICONS */ - -extern(Windows) export int LoadStringA( - HINSTANCE hInstance, - UINT uID, - LPSTR lpBuffer, - int nBufferMax); -extern(Windows) export int LoadStringW( - HINSTANCE hInstance, - UINT uID, - LPWSTR lpBuffer, - int nBufferMax); -// #ifdef UNICODE -alias LoadStringW LoadString; -// #else -// #... -// #endif // !UNICODE - -enum : uint { IDOK = 1 } -enum : uint { IDCANCEL = 2 } -enum : uint { IDABORT = 3 } -enum : uint { IDRETRY = 4 } -enum : uint { IDIGNORE = 5 } -enum : uint { IDYES = 6 } -enum : uint { IDNO = 7 } -// #if(WINVER >= 0x0400) -enum : uint { IDCLOSE = 8 } -enum : uint { IDHELP = 9 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -enum : uint { IDTRYAGAIN = 10 } -enum : uint { IDCONTINUE = 11 } -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0501) -// #ifndef IDTIMEOUT -enum : uint { IDTIMEOUT = 32000 } -// #endif -// #endif /* WINVER >= 0x0501 */ - -// #ifndef NOCTLMGR - -// #ifndef NOWINSTYLES - -enum : uint { ES_LEFT = 0x0000 } -enum : uint { ES_CENTER = 0x0001 } -enum : uint { ES_RIGHT = 0x0002 } -enum : uint { ES_MULTILINE = 0x0004 } -enum : uint { ES_UPPERCASE = 0x0008 } -enum : uint { ES_LOWERCASE = 0x0010 } -enum : uint { ES_PASSWORD = 0x0020 } -enum : uint { ES_AUTOVSCROLL = 0x0040 } -enum : uint { ES_AUTOHSCROLL = 0x0080 } -enum : uint { ES_NOHIDESEL = 0x0100 } -enum : uint { ES_OEMCONVERT = 0x0400 } -enum : uint { ES_READONLY = 0x0800 } -enum : uint { ES_WANTRETURN = 0x1000 } -// #if(WINVER >= 0x0400) -enum : uint { ES_NUMBER = 0x2000 } -// #endif /* WINVER >= 0x0400 */ - -// #endif /* !NOWINSTYLES */ - -enum : uint { EN_SETFOCUS = 0x0100 } -enum : uint { EN_KILLFOCUS = 0x0200 } -enum : uint { EN_CHANGE = 0x0300 } -enum : uint { EN_UPDATE = 0x0400 } -enum : uint { EN_ERRSPACE = 0x0500 } -enum : uint { EN_MAXTEXT = 0x0501 } -enum : uint { EN_HSCROLL = 0x0601 } -enum : uint { EN_VSCROLL = 0x0602 } - -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { EN_ALIGN_LTR_EC = 0x0700 } -enum : uint { EN_ALIGN_RTL_EC = 0x0701 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(WINVER >= 0x0400) - -enum : uint { EC_LEFTMARGIN = 0x0001 } -enum : uint { EC_RIGHTMARGIN = 0x0002 } -enum : uint { EC_USEFONTINFO = 0xffff } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) - -enum : uint { EMSIS_COMPOSITIONSTRING = 0x0001 } - -enum : uint { EIMES_GETCOMPSTRATONCE = 0x0001 } -enum : uint { EIMES_CANCELCOMPSTRINFOCUS = 0x0002 } -enum : uint { EIMES_COMPLETECOMPSTRKILLFOCUS = 0x0004 } -// #endif /* WINVER >= 0x0500 */ - -// #ifndef NOWINMESSAGES - -enum : uint { EM_GETSEL = 0x00B0 } -enum : uint { EM_SETSEL = 0x00B1 } -enum : uint { EM_GETRECT = 0x00B2 } -enum : uint { EM_SETRECT = 0x00B3 } -enum : uint { EM_SETRECTNP = 0x00B4 } -enum : uint { EM_SCROLL = 0x00B5 } -enum : uint { EM_LINESCROLL = 0x00B6 } -enum : uint { EM_SCROLLCARET = 0x00B7 } -enum : uint { EM_GETMODIFY = 0x00B8 } -enum : uint { EM_SETMODIFY = 0x00B9 } -enum : uint { EM_GETLINECOUNT = 0x00BA } -enum : uint { EM_LINEINDEX = 0x00BB } -enum : uint { EM_SETHANDLE = 0x00BC } -enum : uint { EM_GETHANDLE = 0x00BD } -enum : uint { EM_GETTHUMB = 0x00BE } -enum : uint { EM_LINELENGTH = 0x00C1 } -enum : uint { EM_REPLACESEL = 0x00C2 } -enum : uint { EM_GETLINE = 0x00C4 } -enum : uint { EM_LIMITTEXT = 0x00C5 } -enum : uint { EM_CANUNDO = 0x00C6 } -enum : uint { EM_UNDO = 0x00C7 } -enum : uint { EM_FMTLINES = 0x00C8 } -enum : uint { EM_LINEFROMCHAR = 0x00C9 } -enum : uint { EM_SETTABSTOPS = 0x00CB } -enum : uint { EM_SETPASSWORDCHAR = 0x00CC } -enum : uint { EM_EMPTYUNDOBUFFER = 0x00CD } -enum : uint { EM_GETFIRSTVISIBLELINE = 0x00CE } -enum : uint { EM_SETREADONLY = 0x00CF } -enum : uint { EM_SETWORDBREAKPROC = 0x00D0 } -enum : uint { EM_GETWORDBREAKPROC = 0x00D1 } -enum : uint { EM_GETPASSWORDCHAR = 0x00D2 } -// #if(WINVER >= 0x0400) -enum : uint { EM_SETMARGINS = 0x00D3 } -enum : uint { EM_GETMARGINS = 0x00D4 } -alias EM_LIMITTEXT EM_SETLIMITTEXT; -enum : uint { EM_GETLIMITTEXT = 0x00D5 } -enum : uint { EM_POSFROMCHAR = 0x00D6 } -enum : uint { EM_CHARFROMPOS = 0x00D7 } -// #endif /* WINVER >= 0x0400 */ - -// #if(WINVER >= 0x0500) -enum : uint { EM_SETIMESTATUS = 0x00D8 } -enum : uint { EM_GETIMESTATUS = 0x00D9 } -// #endif /* WINVER >= 0x0500 */ - -// #endif /* !NOWINMESSAGES */ - -enum : uint { WB_LEFT = 0 } -enum : uint { WB_RIGHT = 1 } -enum : uint { WB_ISDELIMITER = 2 } - -enum : uint { BS_PUSHBUTTON = 0x00000000 } -enum : uint { BS_DEFPUSHBUTTON = 0x00000001 } -enum : uint { BS_CHECKBOX = 0x00000002 } -enum : uint { BS_AUTOCHECKBOX = 0x00000003 } -enum : uint { BS_RADIOBUTTON = 0x00000004 } -enum : uint { BS_3STATE = 0x00000005 } -enum : uint { BS_AUTO3STATE = 0x00000006 } -enum : uint { BS_GROUPBOX = 0x00000007 } -enum : uint { BS_USERBUTTON = 0x00000008 } -enum : uint { BS_AUTORADIOBUTTON = 0x00000009 } -enum : uint { BS_OWNERDRAW = 0x0000000B } -enum : uint { BS_LEFTTEXT = 0x00000020 } -// #if(WINVER >= 0x0400) -enum : uint { BS_TEXT = 0x00000000 } -enum : uint { BS_ICON = 0x00000040 } -enum : uint { BS_BITMAP = 0x00000080 } -enum : uint { BS_LEFT = 0x00000100 } -enum : uint { BS_RIGHT = 0x00000200 } -enum : uint { BS_CENTER = 0x00000300 } -enum : uint { BS_TOP = 0x00000400 } -enum : uint { BS_BOTTOM = 0x00000800 } -enum : uint { BS_VCENTER = 0x00000C00 } -enum : uint { BS_PUSHLIKE = 0x00001000 } -enum : uint { BS_MULTILINE = 0x00002000 } -enum : uint { BS_NOTIFY = 0x00004000 } -enum : uint { BS_FLAT = 0x00008000 } -alias BS_LEFTTEXT BS_RIGHTBUTTON; -// #endif /* WINVER >= 0x0400 */ - -enum : uint { BN_CLICKED = 0 } -enum : uint { BN_PAINT = 1 } -enum : uint { BN_HILITE = 2 } -enum : uint { BN_UNHILITE = 3 } -enum : uint { BN_DISABLE = 4 } -enum : uint { BN_DOUBLECLICKED = 5 } -// #if(WINVER >= 0x0400) -alias BN_HILITE BN_PUSHED; -alias BN_UNHILITE BN_UNPUSHED; -alias BN_DOUBLECLICKED BN_DBLCLK; -enum : uint { BN_SETFOCUS = 6 } -enum : uint { BN_KILLFOCUS = 7 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { BM_GETCHECK = 0x00F0 } -enum : uint { BM_SETCHECK = 0x00F1 } -enum : uint { BM_GETSTATE = 0x00F2 } -enum : uint { BM_SETSTATE = 0x00F3 } -enum : uint { BM_SETSTYLE = 0x00F4 } -// #if(WINVER >= 0x0400) -enum : uint { BM_CLICK = 0x00F5 } -enum : uint { BM_GETIMAGE = 0x00F6 } -enum : uint { BM_SETIMAGE = 0x00F7 } - -enum : uint { BST_UNCHECKED = 0x0000 } -enum : uint { BST_CHECKED = 0x0001 } -enum : uint { BST_INDETERMINATE = 0x0002 } -enum : uint { BST_PUSHED = 0x0004 } -enum : uint { BST_FOCUS = 0x0008 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { SS_LEFT = 0x00000000 } -enum : uint { SS_CENTER = 0x00000001 } -enum : uint { SS_RIGHT = 0x00000002 } -enum : uint { SS_ICON = 0x00000003 } -enum : uint { SS_BLACKRECT = 0x00000004 } -enum : uint { SS_GRAYRECT = 0x00000005 } -enum : uint { SS_WHITERECT = 0x00000006 } -enum : uint { SS_BLACKFRAME = 0x00000007 } -enum : uint { SS_GRAYFRAME = 0x00000008 } -enum : uint { SS_WHITEFRAME = 0x00000009 } -enum : uint { SS_USERITEM = 0x0000000A } -enum : uint { SS_SIMPLE = 0x0000000B } -enum : uint { SS_LEFTNOWORDWRAP = 0x0000000C } -// #if(WINVER >= 0x0400) -enum : uint { SS_OWNERDRAW = 0x0000000D } -enum : uint { SS_BITMAP = 0x0000000E } -enum : uint { SS_ENHMETAFILE = 0x0000000F } -enum : uint { SS_ETCHEDHORZ = 0x00000010 } -enum : uint { SS_ETCHEDVERT = 0x00000011 } -enum : uint { SS_ETCHEDFRAME = 0x00000012 } -enum : uint { SS_TYPEMASK = 0x0000001F } -// #endif /* WINVER >= 0x0400 */ -// #if(WINVER >= 0x0501) -enum : uint { SS_REALSIZECONTROL = 0x00000040 } -// #endif /* WINVER >= 0x0501 */ -enum : uint { SS_NOPREFIX = 0x00000080 } -// #if(WINVER >= 0x0400) -enum : uint { SS_NOTIFY = 0x00000100 } -enum : uint { SS_CENTERIMAGE = 0x00000200 } -enum : uint { SS_RIGHTJUST = 0x00000400 } -enum : uint { SS_REALSIZEIMAGE = 0x00000800 } -enum : uint { SS_SUNKEN = 0x00001000 } -enum : uint { SS_ENDELLIPSIS = 0x00004000 } -enum : uint { SS_PATHELLIPSIS = 0x00008000 } -enum : uint { SS_WORDELLIPSIS = 0x0000C000 } -enum : uint { SS_ELLIPSISMASK = 0x0000C000 } -// #endif /* WINVER >= 0x0400 */ - -// #ifndef NOWINMESSAGES - -enum : uint { STM_SETICON = 0x0170 } -enum : uint { STM_GETICON = 0x0171 } -// #if(WINVER >= 0x0400) -enum : uint { STM_SETIMAGE = 0x0172 } -enum : uint { STM_GETIMAGE = 0x0173 } -enum : uint { STN_CLICKED = 0 } -enum : uint { STN_DBLCLK = 1 } -enum : uint { STN_ENABLE = 2 } -enum : uint { STN_DISABLE = 3 } -// #endif /* WINVER >= 0x0400 */ -enum : uint { STM_MSGMAX = 0x0174 } -// #endif /* !NOWINMESSAGES */ - -const ATOM WC_DIALOG = cast(ATOM)0x8002; - -enum : uint { DWL_MSGRESULT = 0 } -enum : uint { DWL_DLGPROC = 4 } -enum : uint { DWL_USER = 8 } - -// #ifdef _WIN64 - -// #... -// #... -// #... - -// #endif /* _WIN64 */ - -enum : uint { DWLP_MSGRESULT = 0 } -enum : uint { DWLP_DLGPROC = DWLP_MSGRESULT + LRESULT.sizeof } -enum : uint { DWLP_USER = DWLP_DLGPROC + DLGPROC.sizeof } - -// #ifndef NOMSG - -extern(Windows) export BOOL IsDialogMessageA( - HWND hDlg, - LPMSG lpMsg); -extern(Windows) export BOOL IsDialogMessageW( - HWND hDlg, - LPMSG lpMsg); -// #ifdef UNICODE -alias IsDialogMessageW IsDialogMessage; -// #else -// #... -// #endif // !UNICODE - -// #endif /* !NOMSG */ - -extern(Windows) export BOOL MapDialogRect( - HWND hDlg, - LPRECT lpRect); - -extern(Windows) export int DlgDirListA( - HWND hDlg, - LPSTR lpPathSpec, - int nIDListBox, - int nIDStaticPath, - UINT uFileType); -extern(Windows) export int DlgDirListW( - HWND hDlg, - LPWSTR lpPathSpec, - int nIDListBox, - int nIDStaticPath, - UINT uFileType); -// #ifdef UNICODE -alias DlgDirListW DlgDirList; -// #else -// #... -// #endif // !UNICODE - -enum : uint { DDL_READWRITE = 0x0000 } -enum : uint { DDL_READONLY = 0x0001 } -enum : uint { DDL_HIDDEN = 0x0002 } -enum : uint { DDL_SYSTEM = 0x0004 } -enum : uint { DDL_DIRECTORY = 0x0010 } -enum : uint { DDL_ARCHIVE = 0x0020 } - -enum : uint { DDL_POSTMSGS = 0x2000 } -enum : uint { DDL_DRIVES = 0x4000 } -enum : uint { DDL_EXCLUSIVE = 0x8000 } - -extern(Windows) export BOOL DlgDirSelectExA( - HWND hDlg, - LPSTR lpString, - int nCount, - int nIDListBox); -extern(Windows) export BOOL DlgDirSelectExW( - HWND hDlg, - LPWSTR lpString, - int nCount, - int nIDListBox); -// #ifdef UNICODE -alias DlgDirSelectExW DlgDirSelectEx; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export int DlgDirListComboBoxA( - HWND hDlg, - LPSTR lpPathSpec, - int nIDComboBox, - int nIDStaticPath, - UINT uFiletype); -extern(Windows) export int DlgDirListComboBoxW( - HWND hDlg, - LPWSTR lpPathSpec, - int nIDComboBox, - int nIDStaticPath, - UINT uFiletype); -// #ifdef UNICODE -alias DlgDirListComboBoxW DlgDirListComboBox; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL DlgDirSelectComboBoxExA( - HWND hDlg, - LPSTR lpString, - int nCount, - int nIDComboBox); -extern(Windows) export BOOL DlgDirSelectComboBoxExW( - HWND hDlg, - LPWSTR lpString, - int nCount, - int nIDComboBox); -// #ifdef UNICODE -alias DlgDirSelectComboBoxExW DlgDirSelectComboBoxEx; -// #else -// #... -// #endif // !UNICODE - -enum : uint { DS_ABSALIGN = 0x01 } -enum : uint { DS_SYSMODAL = 0x02 } -enum : uint { DS_LOCALEDIT = 0x20 } -enum : uint { DS_SETFONT = 0x40 } -enum : uint { DS_MODALFRAME = 0x80 } -enum : uint { DS_NOIDLEMSG = 0x100 } -enum : uint { DS_SETFOREGROUND = 0x200 } - -// #if(WINVER >= 0x0400) -enum : uint { DS_3DLOOK = 0x0004 } -enum : uint { DS_FIXEDSYS = 0x0008 } -enum : uint { DS_NOFAILCREATE = 0x0010 } -enum : uint { DS_CONTROL = 0x0400 } -enum : uint { DS_CENTER = 0x0800 } -enum : uint { DS_CENTERMOUSE = 0x1000 } -enum : uint { DS_CONTEXTHELP = 0x2000 } - -enum : uint { DS_SHELLFONT = DS_SETFONT | DS_FIXEDSYS } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { DM_GETDEFID = WM_USER+0 } -enum : uint { DM_SETDEFID = WM_USER+1 } - -// #if(WINVER >= 0x0400) -enum : uint { DM_REPOSITION = WM_USER+2 } -// #endif /* WINVER >= 0x0400 */ - -enum : uint { DC_HASDEFID = 0x534B } - -enum : uint { DLGC_WANTARROWS = 0x0001 } -enum : uint { DLGC_WANTTAB = 0x0002 } -enum : uint { DLGC_WANTALLKEYS = 0x0004 } -enum : uint { DLGC_WANTMESSAGE = 0x0004 } -enum : uint { DLGC_HASSETSEL = 0x0008 } -enum : uint { DLGC_DEFPUSHBUTTON = 0x0010 } -enum : uint { DLGC_UNDEFPUSHBUTTON = 0x0020 } -enum : uint { DLGC_RADIOBUTTON = 0x0040 } -enum : uint { DLGC_WANTCHARS = 0x0080 } -enum : uint { DLGC_STATIC = 0x0100 } -enum : uint { DLGC_BUTTON = 0x2000 } - -enum : uint { LB_CTLCODE = 0 } - -enum : uint { LB_OKAY = 0 } -enum { LB_ERR = -1 } -enum { LB_ERRSPACE = -2 } - -enum { LBN_ERRSPACE = -2 } -enum : uint { LBN_SELCHANGE = 1 } -enum : uint { LBN_DBLCLK = 2 } -enum : uint { LBN_SELCANCEL = 3 } -enum : uint { LBN_SETFOCUS = 4 } -enum : uint { LBN_KILLFOCUS = 5 } - -// #ifndef NOWINMESSAGES - -enum : uint { LB_ADDSTRING = 0x0180 } -enum : uint { LB_INSERTSTRING = 0x0181 } -enum : uint { LB_DELETESTRING = 0x0182 } -enum : uint { LB_SELITEMRANGEEX = 0x0183 } -enum : uint { LB_RESETCONTENT = 0x0184 } -enum : uint { LB_SETSEL = 0x0185 } -enum : uint { LB_SETCURSEL = 0x0186 } -enum : uint { LB_GETSEL = 0x0187 } -enum : uint { LB_GETCURSEL = 0x0188 } -enum : uint { LB_GETTEXT = 0x0189 } -enum : uint { LB_GETTEXTLEN = 0x018A } -enum : uint { LB_GETCOUNT = 0x018B } -enum : uint { LB_SELECTSTRING = 0x018C } -enum : uint { LB_DIR = 0x018D } -enum : uint { LB_GETTOPINDEX = 0x018E } -enum : uint { LB_FINDSTRING = 0x018F } -enum : uint { LB_GETSELCOUNT = 0x0190 } -enum : uint { LB_GETSELITEMS = 0x0191 } -enum : uint { LB_SETTABSTOPS = 0x0192 } -enum : uint { LB_GETHORIZONTALEXTENT = 0x0193 } -enum : uint { LB_SETHORIZONTALEXTENT = 0x0194 } -enum : uint { LB_SETCOLUMNWIDTH = 0x0195 } -enum : uint { LB_ADDFILE = 0x0196 } -enum : uint { LB_SETTOPINDEX = 0x0197 } -enum : uint { LB_GETITEMRECT = 0x0198 } -enum : uint { LB_GETITEMDATA = 0x0199 } -enum : uint { LB_SETITEMDATA = 0x019A } -enum : uint { LB_SELITEMRANGE = 0x019B } -enum : uint { LB_SETANCHORINDEX = 0x019C } -enum : uint { LB_GETANCHORINDEX = 0x019D } -enum : uint { LB_SETCARETINDEX = 0x019E } -enum : uint { LB_GETCARETINDEX = 0x019F } -enum : uint { LB_SETITEMHEIGHT = 0x01A0 } -enum : uint { LB_GETITEMHEIGHT = 0x01A1 } -enum : uint { LB_FINDSTRINGEXACT = 0x01A2 } -enum : uint { LB_SETLOCALE = 0x01A5 } -enum : uint { LB_GETLOCALE = 0x01A6 } -enum : uint { LB_SETCOUNT = 0x01A7 } -// #if(WINVER >= 0x0400) -enum : uint { LB_INITSTORAGE = 0x01A8 } -enum : uint { LB_ITEMFROMPOINT = 0x01A9 } -// #endif /* WINVER >= 0x0400 */ -// #if(_WIN32_WCE >= 0x0400) -// #... -// #endif - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { LB_GETLISTBOXINFO = 0x01B2 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { LB_MSGMAX = 0x01B3 } -// #elif(_WIN32_WCE >= 0x0400) -// #... -// #elif(WINVER >= 0x0400) -// #... -// #else -// #... -// #endif - -// #endif /* !NOWINMESSAGES */ - -// #ifndef NOWINSTYLES - -enum : uint { LBS_NOTIFY = 0x0001 } -enum : uint { LBS_SORT = 0x0002 } -enum : uint { LBS_NOREDRAW = 0x0004 } -enum : uint { LBS_MULTIPLESEL = 0x0008 } -enum : uint { LBS_OWNERDRAWFIXED = 0x0010 } -enum : uint { LBS_OWNERDRAWVARIABLE = 0x0020 } -enum : uint { LBS_HASSTRINGS = 0x0040 } -enum : uint { LBS_USETABSTOPS = 0x0080 } -enum : uint { LBS_NOINTEGRALHEIGHT = 0x0100 } -enum : uint { LBS_MULTICOLUMN = 0x0200 } -enum : uint { LBS_WANTKEYBOARDINPUT = 0x0400 } -enum : uint { LBS_EXTENDEDSEL = 0x0800 } -enum : uint { LBS_DISABLENOSCROLL = 0x1000 } -enum : uint { LBS_NODATA = 0x2000 } -// #if(WINVER >= 0x0400) -enum : uint { LBS_NOSEL = 0x4000 } -// #endif /* WINVER >= 0x0400 */ -enum : uint { LBS_STANDARD = LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER } - -// #endif /* !NOWINSTYLES */ - -enum : uint { CB_OKAY = 0 } -enum { CB_ERR = -1 } -enum { CB_ERRSPACE = -2 } - -enum { CBN_ERRSPACE = -1 } -enum : uint { CBN_SELCHANGE = 1 } -enum : uint { CBN_DBLCLK = 2 } -enum : uint { CBN_SETFOCUS = 3 } -enum : uint { CBN_KILLFOCUS = 4 } -enum : uint { CBN_EDITCHANGE = 5 } -enum : uint { CBN_EDITUPDATE = 6 } -enum : uint { CBN_DROPDOWN = 7 } -enum : uint { CBN_CLOSEUP = 8 } -enum : uint { CBN_SELENDOK = 9 } -enum : uint { CBN_SELENDCANCEL = 10 } - -// #ifndef NOWINSTYLES - -enum : uint { CBS_SIMPLE = 0x0001 } -enum : uint { CBS_DROPDOWN = 0x0002 } -enum : uint { CBS_DROPDOWNLIST = 0x0003 } -enum : uint { CBS_OWNERDRAWFIXED = 0x0010 } -enum : uint { CBS_OWNERDRAWVARIABLE = 0x0020 } -enum : uint { CBS_AUTOHSCROLL = 0x0040 } -enum : uint { CBS_OEMCONVERT = 0x0080 } -enum : uint { CBS_SORT = 0x0100 } -enum : uint { CBS_HASSTRINGS = 0x0200 } -enum : uint { CBS_NOINTEGRALHEIGHT = 0x0400 } -enum : uint { CBS_DISABLENOSCROLL = 0x0800 } -// #if(WINVER >= 0x0400) -enum : uint { CBS_UPPERCASE = 0x2000 } -enum : uint { CBS_LOWERCASE = 0x4000 } -// #endif /* WINVER >= 0x0400 */ - -// #endif /* !NOWINSTYLES */ - -// #ifndef NOWINMESSAGES -enum : uint { CB_GETEDITSEL = 0x0140 } -enum : uint { CB_LIMITTEXT = 0x0141 } -enum : uint { CB_SETEDITSEL = 0x0142 } -enum : uint { CB_ADDSTRING = 0x0143 } -enum : uint { CB_DELETESTRING = 0x0144 } -enum : uint { CB_DIR = 0x0145 } -enum : uint { CB_GETCOUNT = 0x0146 } -enum : uint { CB_GETCURSEL = 0x0147 } -enum : uint { CB_GETLBTEXT = 0x0148 } -enum : uint { CB_GETLBTEXTLEN = 0x0149 } -enum : uint { CB_INSERTSTRING = 0x014A } -enum : uint { CB_RESETCONTENT = 0x014B } -enum : uint { CB_FINDSTRING = 0x014C } -enum : uint { CB_SELECTSTRING = 0x014D } -enum : uint { CB_SETCURSEL = 0x014E } -enum : uint { CB_SHOWDROPDOWN = 0x014F } -enum : uint { CB_GETITEMDATA = 0x0150 } -enum : uint { CB_SETITEMDATA = 0x0151 } -enum : uint { CB_GETDROPPEDCONTROLRECT = 0x0152 } -enum : uint { CB_SETITEMHEIGHT = 0x0153 } -enum : uint { CB_GETITEMHEIGHT = 0x0154 } -enum : uint { CB_SETEXTENDEDUI = 0x0155 } -enum : uint { CB_GETEXTENDEDUI = 0x0156 } -enum : uint { CB_GETDROPPEDSTATE = 0x0157 } -enum : uint { CB_FINDSTRINGEXACT = 0x0158 } -enum : uint { CB_SETLOCALE = 0x0159 } -enum : uint { CB_GETLOCALE = 0x015A } -// #if(WINVER >= 0x0400) -enum : uint { CB_GETTOPINDEX = 0x015b } -enum : uint { CB_SETTOPINDEX = 0x015c } -enum : uint { CB_GETHORIZONTALEXTENT = 0x015d } -enum : uint { CB_SETHORIZONTALEXTENT = 0x015e } -enum : uint { CB_GETDROPPEDWIDTH = 0x015f } -enum : uint { CB_SETDROPPEDWIDTH = 0x0160 } -enum : uint { CB_INITSTORAGE = 0x0161 } -// #if(_WIN32_WCE >= 0x0400) -// #... -// #endif -// #endif /* WINVER >= 0x0400 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { CB_GETCOMBOBOXINFO = 0x0164 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { CB_MSGMAX = 0x0165 } -// #elif(_WIN32_WCE >= 0x0400) -// #... -// #elif(WINVER >= 0x0400) -// #... -// #else -// #... -// #endif -// #endif /* !NOWINMESSAGES */ - -// #ifndef NOWINSTYLES - -enum : uint { SBS_HORZ = 0x0000 } -enum : uint { SBS_VERT = 0x0001 } -enum : uint { SBS_TOPALIGN = 0x0002 } -enum : uint { SBS_LEFTALIGN = 0x0002 } -enum : uint { SBS_BOTTOMALIGN = 0x0004 } -enum : uint { SBS_RIGHTALIGN = 0x0004 } -enum : uint { SBS_SIZEBOXTOPLEFTALIGN = 0x0002 } -enum : uint { SBS_SIZEBOXBOTTOMRIGHTALIGN = 0x0004 } -enum : uint { SBS_SIZEBOX = 0x0008 } -// #if(WINVER >= 0x0400) -enum : uint { SBS_SIZEGRIP = 0x0010 } -// #endif /* WINVER >= 0x0400 */ - -// #endif /* !NOWINSTYLES */ - -// #ifndef NOWINMESSAGES -enum : uint { SBM_SETPOS = 0x00E0 } -enum : uint { SBM_GETPOS = 0x00E1 } -enum : uint { SBM_SETRANGE = 0x00E2 } -enum : uint { SBM_SETRANGEREDRAW = 0x00E6 } -enum : uint { SBM_GETRANGE = 0x00E3 } -enum : uint { SBM_ENABLE_ARROWS = 0x00E4 } -// #if(WINVER >= 0x0400) -enum : uint { SBM_SETSCROLLINFO = 0x00E9 } -enum : uint { SBM_GETSCROLLINFO = 0x00EA } -// #endif /* WINVER >= 0x0400 */ - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { SBM_GETSCROLLBARINFO = 0x00EB } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if(WINVER >= 0x0400) -enum : uint { SIF_RANGE = 0x0001 } -enum : uint { SIF_PAGE = 0x0002 } -enum : uint { SIF_POS = 0x0004 } -enum : uint { SIF_DISABLENOSCROLL = 0x0008 } -enum : uint { SIF_TRACKPOS = 0x0010 } -enum : uint { SIF_ALL = SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS } - -struct tagSCROLLINFO { - UINT cbSize; - UINT fMask; - int nMin; - int nMax; - UINT nPage; - int nPos; - int nTrackPos; -} -alias tagSCROLLINFO SCROLLINFO; -alias tagSCROLLINFO* LPSCROLLINFO; - -alias SCROLLINFO* LPCSCROLLINFO; - -extern(Windows) export int SetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL); -extern(Windows) export BOOL GetScrollInfo(HWND, int, LPSCROLLINFO); - -// #endif /* WINVER >= 0x0400 */ -// #endif /* !NOWINMESSAGES */ -// #endif /* !NOCTLMGR */ - -// #ifndef NOMDI - -enum : uint { MDIS_ALLCHILDSTYLES = 0x0001 } - -enum : uint { MDITILE_VERTICAL = 0x0000 } -enum : uint { MDITILE_HORIZONTAL = 0x0001 } -enum : uint { MDITILE_SKIPDISABLED = 0x0002 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { MDITILE_ZORDER = 0x0004 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -struct tagMDICREATESTRUCTA { - LPCSTR szClass; - LPCSTR szTitle; - HANDLE hOwner; - int x; - int y; - int cx; - int cy; - DWORD style; - LPARAM lParam; -} -alias tagMDICREATESTRUCTA MDICREATESTRUCTA; -alias tagMDICREATESTRUCTA* LPMDICREATESTRUCTA; - -struct tagMDICREATESTRUCTW { - LPCWSTR szClass; - LPCWSTR szTitle; - HANDLE hOwner; - int x; - int y; - int cx; - int cy; - DWORD style; - LPARAM lParam; -} -alias tagMDICREATESTRUCTW MDICREATESTRUCTW; -alias tagMDICREATESTRUCTW* LPMDICREATESTRUCTW; - -// #ifdef UNICODE -alias MDICREATESTRUCTW MDICREATESTRUCT; -alias LPMDICREATESTRUCTW LPMDICREATESTRUCT; -// #else -// ... -// #endif // UNICODE - -struct tagCLIENTCREATESTRUCT { - HANDLE hWindowMenu; - UINT idFirstChild; -} -alias tagCLIENTCREATESTRUCT CLIENTCREATESTRUCT; -alias tagCLIENTCREATESTRUCT* LPCLIENTCREATESTRUCT; - -extern(Windows) export LRESULT DefFrameProcA( - HWND hWnd, - HWND hWndMDIClient, - UINT uMsg, - WPARAM wParam, - LPARAM lParam); -extern(Windows) export LRESULT DefFrameProcW( - HWND hWnd, - HWND hWndMDIClient, - UINT uMsg, - WPARAM wParam, - LPARAM lParam); -// #ifdef UNICODE -alias DefFrameProcW DefFrameProc; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export LRESULT DefMDIChildProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); -extern(Windows) export LRESULT DefMDIChildProcW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); -// #ifdef UNICODE -alias DefMDIChildProcW DefMDIChildProc; -// #else -// #... -// #endif // !UNICODE - -// #ifndef NOMSG - -extern(Windows) export BOOL TranslateMDISysAccel( - HWND hWndClient, - LPMSG lpMsg); - -// #endif /* !NOMSG */ - -extern(Windows) export UINT ArrangeIconicWindows( - HWND hWnd); - -extern(Windows) export HWND CreateMDIWindowA( - LPCSTR lpClassName, - LPCSTR lpWindowName, - DWORD dwStyle, - int X, - int Y, - int nWidth, - int nHeight, - HWND hWndParent, - HINSTANCE hInstance, - LPARAM lParam); -extern(Windows) export HWND CreateMDIWindowW( - LPCWSTR lpClassName, - LPCWSTR lpWindowName, - DWORD dwStyle, - int X, - int Y, - int nWidth, - int nHeight, - HWND hWndParent, - HINSTANCE hInstance, - LPARAM lParam); -// #ifdef UNICODE -alias CreateMDIWindowW CreateMDIWindow; -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0400) -extern(Windows) export WORD TileWindows(HWND hwndParent, UINT wHow, RECT * lpRect, UINT cKids, HWND * lpKids); -extern(Windows) export WORD CascadeWindows(HWND hwndParent, UINT wHow, RECT * lpRect, UINT cKids, HWND * lpKids); -// #endif /* WINVER >= 0x0400 */ -// #endif /* !NOMDI */ - -// #endif /* !NOUSER */ - -// #ifndef NOHELP - -alias DWORD HELPPOLY; -struct tagMULTIKEYHELPA { -// #ifndef _MAC - DWORD mkSize; -// #else -// ... -// #endif - CHAR mkKeylist; - CHAR szKeyphrase[1]; -} -alias tagMULTIKEYHELPA MULTIKEYHELPA; -alias tagMULTIKEYHELPA* PMULTIKEYHELPA; -alias tagMULTIKEYHELPA* LPMULTIKEYHELPA; - -struct tagMULTIKEYHELPW { -// #ifndef _MAC - DWORD mkSize; -// #else -// ... -// #endif - WCHAR mkKeylist; - WCHAR szKeyphrase[1]; -} -alias tagMULTIKEYHELPW MULTIKEYHELPW; -alias tagMULTIKEYHELPW* PMULTIKEYHELPW; -alias tagMULTIKEYHELPW* LPMULTIKEYHELPW; - -// #ifdef UNICODE -alias MULTIKEYHELPW MULTIKEYHELP; -alias PMULTIKEYHELPW PMULTIKEYHELP; -alias LPMULTIKEYHELPW LPMULTIKEYHELP; -// #else -// ... -// #endif // UNICODE - -struct tagHELPWININFOA { - int wStructSize; - int x; - int y; - int dx; - int dy; - int wMax; - CHAR rgchMember[2]; -} -alias tagHELPWININFOA HELPWININFOA; -alias tagHELPWININFOA* PHELPWININFOA; -alias tagHELPWININFOA* LPHELPWININFOA; - -struct tagHELPWININFOW { - int wStructSize; - int x; - int y; - int dx; - int dy; - int wMax; - WCHAR rgchMember[2]; -} -alias tagHELPWININFOW HELPWININFOW; -alias tagHELPWININFOW* PHELPWININFOW; -alias tagHELPWININFOW* LPHELPWININFOW; - -// #ifdef UNICODE -alias HELPWININFOW HELPWININFO; -alias PHELPWININFOW PHELPWININFO; -alias LPHELPWININFOW LPHELPWININFO; -// #else -// ... -// #endif // UNICODE - -enum : uint { HELP_CONTEXT = 0x0001 } -enum : uint { HELP_QUIT = 0x0002 } -enum : uint { HELP_INDEX = 0x0003 } -enum : uint { HELP_CONTENTS = 0x0003 } -enum : uint { HELP_HELPONHELP = 0x0004 } -enum : uint { HELP_SETINDEX = 0x0005 } -enum : uint { HELP_SETCONTENTS = 0x0005 } -enum : uint { HELP_CONTEXTPOPUP = 0x0008 } -enum : uint { HELP_FORCEFILE = 0x0009 } -enum : uint { HELP_KEY = 0x0101 } -enum : uint { HELP_COMMAND = 0x0102 } -enum : uint { HELP_PARTIALKEY = 0x0105 } -enum : uint { HELP_MULTIKEY = 0x0201 } -enum : uint { HELP_SETWINPOS = 0x0203 } -// #if(WINVER >= 0x0400) -enum : uint { HELP_CONTEXTMENU = 0x000a } -enum : uint { HELP_FINDER = 0x000b } -enum : uint { HELP_WM_HELP = 0x000c } -enum : uint { HELP_SETPOPUP_POS = 0x000d } - -enum : uint { HELP_TCARD = 0x8000 } -enum : uint { HELP_TCARD_DATA = 0x0010 } -enum : uint { HELP_TCARD_OTHER_CALLER = 0x0011 } - -enum : uint { IDH_NO_HELP = 28440 } -enum : uint { IDH_MISSING_CONTEXT = 28441 } -enum : uint { IDH_GENERIC_HELP_BUTTON = 28442 } -enum : uint { IDH_OK = 28443 } -enum : uint { IDH_CANCEL = 28444 } -enum : uint { IDH_HELP = 28445 } - -// #endif /* WINVER >= 0x0400 */ - -extern(Windows) export BOOL WinHelpA( - HWND hWndMain, - LPCSTR lpszHelp, - UINT uCommand, - ULONG_PTR dwData); -extern(Windows) export BOOL WinHelpW( - HWND hWndMain, - LPCWSTR lpszHelp, - UINT uCommand, - ULONG_PTR dwData); -// #ifdef UNICODE -alias WinHelpW WinHelp; -// #else -// #... -// #endif // !UNICODE - -// #endif /* !NOHELP */ - -// #if(WINVER >= 0x0500) - -enum : uint { GR_GDIOBJECTS = 0 } -enum : uint { GR_USEROBJECTS = 1 } - -extern(Windows) export DWORD GetGuiResources( - HANDLE hProcess, - DWORD uiFlags); - -// #endif /* WINVER >= 0x0500 */ - -// #ifndef NOSYSPARAMSINFO - -enum : uint { SPI_GETBEEP = 0x0001 } -enum : uint { SPI_SETBEEP = 0x0002 } -enum : uint { SPI_GETMOUSE = 0x0003 } -enum : uint { SPI_SETMOUSE = 0x0004 } -enum : uint { SPI_GETBORDER = 0x0005 } -enum : uint { SPI_SETBORDER = 0x0006 } -enum : uint { SPI_GETKEYBOARDSPEED = 0x000A } -enum : uint { SPI_SETKEYBOARDSPEED = 0x000B } -enum : uint { SPI_LANGDRIVER = 0x000C } -enum : uint { SPI_ICONHORIZONTALSPACING = 0x000D } -enum : uint { SPI_GETSCREENSAVETIMEOUT = 0x000E } -enum : uint { SPI_SETSCREENSAVETIMEOUT = 0x000F } -enum : uint { SPI_GETSCREENSAVEACTIVE = 0x0010 } -enum : uint { SPI_SETSCREENSAVEACTIVE = 0x0011 } -enum : uint { SPI_GETGRIDGRANULARITY = 0x0012 } -enum : uint { SPI_SETGRIDGRANULARITY = 0x0013 } -enum : uint { SPI_SETDESKWALLPAPER = 0x0014 } -enum : uint { SPI_SETDESKPATTERN = 0x0015 } -enum : uint { SPI_GETKEYBOARDDELAY = 0x0016 } -enum : uint { SPI_SETKEYBOARDDELAY = 0x0017 } -enum : uint { SPI_ICONVERTICALSPACING = 0x0018 } -enum : uint { SPI_GETICONTITLEWRAP = 0x0019 } -enum : uint { SPI_SETICONTITLEWRAP = 0x001A } -enum : uint { SPI_GETMENUDROPALIGNMENT = 0x001B } -enum : uint { SPI_SETMENUDROPALIGNMENT = 0x001C } -enum : uint { SPI_SETDOUBLECLKWIDTH = 0x001D } -enum : uint { SPI_SETDOUBLECLKHEIGHT = 0x001E } -enum : uint { SPI_GETICONTITLELOGFONT = 0x001F } -enum : uint { SPI_SETDOUBLECLICKTIME = 0x0020 } -enum : uint { SPI_SETMOUSEBUTTONSWAP = 0x0021 } -enum : uint { SPI_SETICONTITLELOGFONT = 0x0022 } -enum : uint { SPI_GETFASTTASKSWITCH = 0x0023 } -enum : uint { SPI_SETFASTTASKSWITCH = 0x0024 } -// #if(WINVER >= 0x0400) -enum : uint { SPI_SETDRAGFULLWINDOWS = 0x0025 } -enum : uint { SPI_GETDRAGFULLWINDOWS = 0x0026 } -enum : uint { SPI_GETNONCLIENTMETRICS = 0x0029 } -enum : uint { SPI_SETNONCLIENTMETRICS = 0x002A } -enum : uint { SPI_GETMINIMIZEDMETRICS = 0x002B } -enum : uint { SPI_SETMINIMIZEDMETRICS = 0x002C } -enum : uint { SPI_GETICONMETRICS = 0x002D } -enum : uint { SPI_SETICONMETRICS = 0x002E } -enum : uint { SPI_SETWORKAREA = 0x002F } -enum : uint { SPI_GETWORKAREA = 0x0030 } -enum : uint { SPI_SETPENWINDOWS = 0x0031 } - -enum : uint { SPI_GETHIGHCONTRAST = 0x0042 } -enum : uint { SPI_SETHIGHCONTRAST = 0x0043 } -enum : uint { SPI_GETKEYBOARDPREF = 0x0044 } -enum : uint { SPI_SETKEYBOARDPREF = 0x0045 } -enum : uint { SPI_GETSCREENREADER = 0x0046 } -enum : uint { SPI_SETSCREENREADER = 0x0047 } -enum : uint { SPI_GETANIMATION = 0x0048 } -enum : uint { SPI_SETANIMATION = 0x0049 } -enum : uint { SPI_GETFONTSMOOTHING = 0x004A } -enum : uint { SPI_SETFONTSMOOTHING = 0x004B } -enum : uint { SPI_SETDRAGWIDTH = 0x004C } -enum : uint { SPI_SETDRAGHEIGHT = 0x004D } -enum : uint { SPI_SETHANDHELD = 0x004E } -enum : uint { SPI_GETLOWPOWERTIMEOUT = 0x004F } -enum : uint { SPI_GETPOWEROFFTIMEOUT = 0x0050 } -enum : uint { SPI_SETLOWPOWERTIMEOUT = 0x0051 } -enum : uint { SPI_SETPOWEROFFTIMEOUT = 0x0052 } -enum : uint { SPI_GETLOWPOWERACTIVE = 0x0053 } -enum : uint { SPI_GETPOWEROFFACTIVE = 0x0054 } -enum : uint { SPI_SETLOWPOWERACTIVE = 0x0055 } -enum : uint { SPI_SETPOWEROFFACTIVE = 0x0056 } -enum : uint { SPI_SETCURSORS = 0x0057 } -enum : uint { SPI_SETICONS = 0x0058 } -enum : uint { SPI_GETDEFAULTINPUTLANG = 0x0059 } -enum : uint { SPI_SETDEFAULTINPUTLANG = 0x005A } -enum : uint { SPI_SETLANGTOGGLE = 0x005B } -enum : uint { SPI_GETWINDOWSEXTENSION = 0x005C } -enum : uint { SPI_SETMOUSETRAILS = 0x005D } -enum : uint { SPI_GETMOUSETRAILS = 0x005E } -enum : uint { SPI_SETSCREENSAVERRUNNING = 0x0061 } -alias SPI_SETSCREENSAVERRUNNING SPI_SCREENSAVERRUNNING; -// #endif /* WINVER >= 0x0400 */ -enum : uint { SPI_GETFILTERKEYS = 0x0032 } -enum : uint { SPI_SETFILTERKEYS = 0x0033 } -enum : uint { SPI_GETTOGGLEKEYS = 0x0034 } -enum : uint { SPI_SETTOGGLEKEYS = 0x0035 } -enum : uint { SPI_GETMOUSEKEYS = 0x0036 } -enum : uint { SPI_SETMOUSEKEYS = 0x0037 } -enum : uint { SPI_GETSHOWSOUNDS = 0x0038 } -enum : uint { SPI_SETSHOWSOUNDS = 0x0039 } -enum : uint { SPI_GETSTICKYKEYS = 0x003A } -enum : uint { SPI_SETSTICKYKEYS = 0x003B } -enum : uint { SPI_GETACCESSTIMEOUT = 0x003C } -enum : uint { SPI_SETACCESSTIMEOUT = 0x003D } -// #if(WINVER >= 0x0400) -enum : uint { SPI_GETSERIALKEYS = 0x003E } -enum : uint { SPI_SETSERIALKEYS = 0x003F } -// #endif /* WINVER >= 0x0400 */ -enum : uint { SPI_GETSOUNDSENTRY = 0x0040 } -enum : uint { SPI_SETSOUNDSENTRY = 0x0041 } -// #if(_WIN32_WINNT >= 0x0400) -enum : uint { SPI_GETSNAPTODEFBUTTON = 0x005F } -enum : uint { SPI_SETSNAPTODEFBUTTON = 0x0060 } -// #endif /* _WIN32_WINNT >= 0x0400 */ -// #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) -enum : uint { SPI_GETMOUSEHOVERWIDTH = 0x0062 } -enum : uint { SPI_SETMOUSEHOVERWIDTH = 0x0063 } -enum : uint { SPI_GETMOUSEHOVERHEIGHT = 0x0064 } -enum : uint { SPI_SETMOUSEHOVERHEIGHT = 0x0065 } -enum : uint { SPI_GETMOUSEHOVERTIME = 0x0066 } -enum : uint { SPI_SETMOUSEHOVERTIME = 0x0067 } -enum : uint { SPI_GETWHEELSCROLLLINES = 0x0068 } -enum : uint { SPI_SETWHEELSCROLLLINES = 0x0069 } -enum : uint { SPI_GETMENUSHOWDELAY = 0x006A } -enum : uint { SPI_SETMENUSHOWDELAY = 0x006B } - -enum : uint { SPI_GETSHOWIMEUI = 0x006E } -enum : uint { SPI_SETSHOWIMEUI = 0x006F } -// #endif - -// #if(WINVER >= 0x0500) -enum : uint { SPI_GETMOUSESPEED = 0x0070 } -enum : uint { SPI_SETMOUSESPEED = 0x0071 } -enum : uint { SPI_GETSCREENSAVERRUNNING = 0x0072 } -enum : uint { SPI_GETDESKWALLPAPER = 0x0073 } -// #endif /* WINVER >= 0x0500 */ - -// #if(WINVER >= 0x0500) -enum : uint { SPI_GETACTIVEWINDOWTRACKING = 0x1000 } -enum : uint { SPI_SETACTIVEWINDOWTRACKING = 0x1001 } -enum : uint { SPI_GETMENUANIMATION = 0x1002 } -enum : uint { SPI_SETMENUANIMATION = 0x1003 } -enum : uint { SPI_GETCOMBOBOXANIMATION = 0x1004 } -enum : uint { SPI_SETCOMBOBOXANIMATION = 0x1005 } -enum : uint { SPI_GETLISTBOXSMOOTHSCROLLING = 0x1006 } -enum : uint { SPI_SETLISTBOXSMOOTHSCROLLING = 0x1007 } -enum : uint { SPI_GETGRADIENTCAPTIONS = 0x1008 } -enum : uint { SPI_SETGRADIENTCAPTIONS = 0x1009 } -enum : uint { SPI_GETKEYBOARDCUES = 0x100A } -enum : uint { SPI_SETKEYBOARDCUES = 0x100B } -alias SPI_GETKEYBOARDCUES SPI_GETMENUUNDERLINES; -alias SPI_SETKEYBOARDCUES SPI_SETMENUUNDERLINES; -enum : uint { SPI_GETACTIVEWNDTRKZORDER = 0x100C } -enum : uint { SPI_SETACTIVEWNDTRKZORDER = 0x100D } -enum : uint { SPI_GETHOTTRACKING = 0x100E } -enum : uint { SPI_SETHOTTRACKING = 0x100F } -enum : uint { SPI_GETMENUFADE = 0x1012 } -enum : uint { SPI_SETMENUFADE = 0x1013 } -enum : uint { SPI_GETSELECTIONFADE = 0x1014 } -enum : uint { SPI_SETSELECTIONFADE = 0x1015 } -enum : uint { SPI_GETTOOLTIPANIMATION = 0x1016 } -enum : uint { SPI_SETTOOLTIPANIMATION = 0x1017 } -enum : uint { SPI_GETTOOLTIPFADE = 0x1018 } -enum : uint { SPI_SETTOOLTIPFADE = 0x1019 } -enum : uint { SPI_GETCURSORSHADOW = 0x101A } -enum : uint { SPI_SETCURSORSHADOW = 0x101B } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { SPI_GETMOUSESONAR = 0x101C } -enum : uint { SPI_SETMOUSESONAR = 0x101D } -enum : uint { SPI_GETMOUSECLICKLOCK = 0x101E } -enum : uint { SPI_SETMOUSECLICKLOCK = 0x101F } -enum : uint { SPI_GETMOUSEVANISH = 0x1020 } -enum : uint { SPI_SETMOUSEVANISH = 0x1021 } -enum : uint { SPI_GETFLATMENU = 0x1022 } -enum : uint { SPI_SETFLATMENU = 0x1023 } -enum : uint { SPI_GETDROPSHADOW = 0x1024 } -enum : uint { SPI_SETDROPSHADOW = 0x1025 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { SPI_GETUIEFFECTS = 0x103E } -enum : uint { SPI_SETUIEFFECTS = 0x103F } - -enum : uint { SPI_GETFOREGROUNDLOCKTIMEOUT = 0x2000 } -enum : uint { SPI_SETFOREGROUNDLOCKTIMEOUT = 0x2001 } -enum : uint { SPI_GETACTIVEWNDTRKTIMEOUT = 0x2002 } -enum : uint { SPI_SETACTIVEWNDTRKTIMEOUT = 0x2003 } -enum : uint { SPI_GETFOREGROUNDFLASHCOUNT = 0x2004 } -enum : uint { SPI_SETFOREGROUNDFLASHCOUNT = 0x2005 } -enum : uint { SPI_GETCARETWIDTH = 0x2006 } -enum : uint { SPI_SETCARETWIDTH = 0x2007 } - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { SPI_GETMOUSECLICKLOCKTIME = 0x2008 } -enum : uint { SPI_SETMOUSECLICKLOCKTIME = 0x2009 } -enum : uint { SPI_GETFONTSMOOTHINGTYPE = 0x200A } -enum : uint { SPI_SETFONTSMOOTHINGTYPE = 0x200B } - -enum : uint { FE_FONTSMOOTHINGSTANDARD = 0x0001 } -enum : uint { FE_FONTSMOOTHINGCLEARTYPE = 0x0002 } -enum : uint { FE_FONTSMOOTHINGDOCKING = 0x8000 } - -enum : uint { SPI_GETFONTSMOOTHINGCONTRAST = 0x200C } -enum : uint { SPI_SETFONTSMOOTHINGCONTRAST = 0x200D } - -enum : uint { SPI_GETFOCUSBORDERWIDTH = 0x200E } -enum : uint { SPI_SETFOCUSBORDERWIDTH = 0x200F } -enum : uint { SPI_GETFOCUSBORDERHEIGHT = 0x2010 } -enum : uint { SPI_SETFOCUSBORDERHEIGHT = 0x2011 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #endif /* WINVER >= 0x0500 */ - -enum : uint { SPIF_UPDATEINIFILE = 0x0001 } -enum : uint { SPIF_SENDWININICHANGE = 0x0002 } -alias SPIF_SENDWININICHANGE SPIF_SENDCHANGE; - -enum { METRICS_USEDEFAULT = -1 } -// #ifdef _WINGDI_ -// #ifndef NOGDI -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE -// #endif /* NOGDI */ -// #endif /* _WINGDI_ */ - -enum : uint { ARW_BOTTOMLEFT = 0x0000 } -enum : uint { ARW_BOTTOMRIGHT = 0x0001 } -enum : uint { ARW_TOPLEFT = 0x0002 } -enum : uint { ARW_TOPRIGHT = 0x0003 } -enum : uint { ARW_STARTMASK = 0x0003 } -enum : uint { ARW_STARTRIGHT = 0x0001 } -enum : uint { ARW_STARTTOP = 0x0002 } - -enum : uint { ARW_LEFT = 0x0000 } -enum : uint { ARW_RIGHT = 0x0000 } -enum : uint { ARW_UP = 0x0004 } -enum : uint { ARW_DOWN = 0x0004 } -enum : uint { ARW_HIDE = 0x0008 } - -struct tagMINIMIZEDMETRICS { - UINT cbSize; - int iWidth; - int iHorzGap; - int iVertGap; - int iArrange; -} -alias tagMINIMIZEDMETRICS MINIMIZEDMETRICS; -alias tagMINIMIZEDMETRICS* PMINIMIZEDMETRICS; -alias tagMINIMIZEDMETRICS* LPMINIMIZEDMETRICS; - -// #ifdef _WINGDI_ -// #ifndef NOGDI -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE -// #endif /* NOGDI */ -// #endif /* _WINGDI_ */ - -struct tagANIMATIONINFO { - UINT cbSize; - int iMinAnimate; -} -alias tagANIMATIONINFO ANIMATIONINFO; -alias tagANIMATIONINFO* LPANIMATIONINFO; - -struct tagSERIALKEYSA { - UINT cbSize; - DWORD dwFlags; - LPSTR lpszActivePort; - LPSTR lpszPort; - UINT iBaudRate; - UINT iPortState; - UINT iActive; -} -alias tagSERIALKEYSA SERIALKEYSA; -alias tagSERIALKEYSA* LPSERIALKEYSA; - -struct tagSERIALKEYSW { - UINT cbSize; - DWORD dwFlags; - LPWSTR lpszActivePort; - LPWSTR lpszPort; - UINT iBaudRate; - UINT iPortState; - UINT iActive; -} -alias tagSERIALKEYSW SERIALKEYSW; -alias tagSERIALKEYSW* LPSERIALKEYSW; - -// #ifdef UNICODE -alias SERIALKEYSW SERIALKEYS; -alias LPSERIALKEYSW LPSERIALKEYS; -// #else -// ... -// #endif // UNICODE - -enum : uint { SERKF_SERIALKEYSON = 0x00000001 } -enum : uint { SERKF_AVAILABLE = 0x00000002 } -enum : uint { SERKF_INDICATOR = 0x00000004 } - -struct tagHIGHCONTRASTA { - UINT cbSize; - DWORD dwFlags; - LPSTR lpszDefaultScheme; -} -alias tagHIGHCONTRASTA HIGHCONTRASTA; -alias tagHIGHCONTRASTA* LPHIGHCONTRASTA; - -struct tagHIGHCONTRASTW { - UINT cbSize; - DWORD dwFlags; - LPWSTR lpszDefaultScheme; -} -alias tagHIGHCONTRASTW HIGHCONTRASTW; -alias tagHIGHCONTRASTW* LPHIGHCONTRASTW; - -// #ifdef UNICODE -alias HIGHCONTRASTW HIGHCONTRAST; -alias LPHIGHCONTRASTW LPHIGHCONTRAST; -// #else -// ... -// #endif // UNICODE - -enum : uint { HCF_HIGHCONTRASTON = 0x00000001 } -enum : uint { HCF_AVAILABLE = 0x00000002 } -enum : uint { HCF_HOTKEYACTIVE = 0x00000004 } -enum : uint { HCF_CONFIRMHOTKEY = 0x00000008 } -enum : uint { HCF_HOTKEYSOUND = 0x00000010 } -enum : uint { HCF_INDICATOR = 0x00000020 } -enum : uint { HCF_HOTKEYAVAILABLE = 0x00000040 } - -enum : uint { CDS_UPDATEREGISTRY = 0x00000001 } -enum : uint { CDS_TEST = 0x00000002 } -enum : uint { CDS_FULLSCREEN = 0x00000004 } -enum : uint { CDS_GLOBAL = 0x00000008 } -enum : uint { CDS_SET_PRIMARY = 0x00000010 } -enum : uint { CDS_VIDEOPARAMETERS = 0x00000020 } -enum : uint { CDS_RESET = 0x40000000 } -enum : uint { CDS_NORESET = 0x10000000 } - -// #include - -enum : uint { DISP_CHANGE_SUCCESSFUL = 0 } -enum : uint { DISP_CHANGE_RESTART = 1 } -enum { DISP_CHANGE_FAILED = -1 } -enum { DISP_CHANGE_BADMODE = -2 } -enum { DISP_CHANGE_NOTUPDATED = -3 } -enum { DISP_CHANGE_BADFLAGS = -4 } -enum { DISP_CHANGE_BADPARAM = -5 } -// #if(_WIN32_WINNT >= 0x0501) -enum { DISP_CHANGE_BADDUALVIEW = -6 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #ifdef _WINGDI_ -// #ifndef NOGDI - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #... -// #... - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #if(WINVER >= 0x0500) - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE - -// #... - -// ... -// #ifdef UNICODE -// #... -// #else -// #... -// #endif // !UNICODE -// #endif /* WINVER >= 0x0500 */ - -// #endif /* NOGDI */ -// #endif /* _WINGDI_ */ - -extern(Windows) export BOOL SystemParametersInfoA( - UINT uiAction, - UINT uiParam, - PVOID pvParam, - UINT fWinIni); -extern(Windows) export BOOL SystemParametersInfoW( - UINT uiAction, - UINT uiParam, - PVOID pvParam, - UINT fWinIni); -// #ifdef UNICODE -alias SystemParametersInfoW SystemParametersInfo; -// #else -// #... -// #endif // !UNICODE - -// #endif /* !NOSYSPARAMSINFO */ - -struct tagFILTERKEYS { - UINT cbSize; - DWORD dwFlags; - DWORD iWaitMSec; - DWORD iDelayMSec; - DWORD iRepeatMSec; - DWORD iBounceMSec; -} -alias tagFILTERKEYS FILTERKEYS; -alias tagFILTERKEYS* LPFILTERKEYS; - -enum : uint { FKF_FILTERKEYSON = 0x00000001 } -enum : uint { FKF_AVAILABLE = 0x00000002 } -enum : uint { FKF_HOTKEYACTIVE = 0x00000004 } -enum : uint { FKF_CONFIRMHOTKEY = 0x00000008 } -enum : uint { FKF_HOTKEYSOUND = 0x00000010 } -enum : uint { FKF_INDICATOR = 0x00000020 } -enum : uint { FKF_CLICKON = 0x00000040 } - -struct tagSTICKYKEYS { - UINT cbSize; - DWORD dwFlags; -} -alias tagSTICKYKEYS STICKYKEYS; -alias tagSTICKYKEYS* LPSTICKYKEYS; - -enum : uint { SKF_STICKYKEYSON = 0x00000001 } -enum : uint { SKF_AVAILABLE = 0x00000002 } -enum : uint { SKF_HOTKEYACTIVE = 0x00000004 } -enum : uint { SKF_CONFIRMHOTKEY = 0x00000008 } -enum : uint { SKF_HOTKEYSOUND = 0x00000010 } -enum : uint { SKF_INDICATOR = 0x00000020 } -enum : uint { SKF_AUDIBLEFEEDBACK = 0x00000040 } -enum : uint { SKF_TRISTATE = 0x00000080 } -enum : uint { SKF_TWOKEYSOFF = 0x00000100 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { SKF_LALTLATCHED = 0x10000000 } -enum : uint { SKF_LCTLLATCHED = 0x04000000 } -enum : uint { SKF_LSHIFTLATCHED = 0x01000000 } -enum : uint { SKF_RALTLATCHED = 0x20000000 } -enum : uint { SKF_RCTLLATCHED = 0x08000000 } -enum : uint { SKF_RSHIFTLATCHED = 0x02000000 } -enum : uint { SKF_LWINLATCHED = 0x40000000 } -enum : uint { SKF_RWINLATCHED = 0x80000000 } -enum : uint { SKF_LALTLOCKED = 0x00100000 } -enum : uint { SKF_LCTLLOCKED = 0x00040000 } -enum : uint { SKF_LSHIFTLOCKED = 0x00010000 } -enum : uint { SKF_RALTLOCKED = 0x00200000 } -enum : uint { SKF_RCTLLOCKED = 0x00080000 } -enum : uint { SKF_RSHIFTLOCKED = 0x00020000 } -enum : uint { SKF_LWINLOCKED = 0x00400000 } -enum : uint { SKF_RWINLOCKED = 0x00800000 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -struct tagMOUSEKEYS { - UINT cbSize; - DWORD dwFlags; - DWORD iMaxSpeed; - DWORD iTimeToMaxSpeed; - DWORD iCtrlSpeed; - DWORD dwReserved1; - DWORD dwReserved2; -} -alias tagMOUSEKEYS MOUSEKEYS; -alias tagMOUSEKEYS* LPMOUSEKEYS; - -enum : uint { MKF_MOUSEKEYSON = 0x00000001 } -enum : uint { MKF_AVAILABLE = 0x00000002 } -enum : uint { MKF_HOTKEYACTIVE = 0x00000004 } -enum : uint { MKF_CONFIRMHOTKEY = 0x00000008 } -enum : uint { MKF_HOTKEYSOUND = 0x00000010 } -enum : uint { MKF_INDICATOR = 0x00000020 } -enum : uint { MKF_MODIFIERS = 0x00000040 } -enum : uint { MKF_REPLACENUMBERS = 0x00000080 } -// #if(_WIN32_WINNT >= 0x0500) -enum : uint { MKF_LEFTBUTTONSEL = 0x10000000 } -enum : uint { MKF_RIGHTBUTTONSEL = 0x20000000 } -enum : uint { MKF_LEFTBUTTONDOWN = 0x01000000 } -enum : uint { MKF_RIGHTBUTTONDOWN = 0x02000000 } -enum : uint { MKF_MOUSEMODE = 0x80000000 } -// #endif /* _WIN32_WINNT >= 0x0500 */ - -struct tagACCESSTIMEOUT { - UINT cbSize; - DWORD dwFlags; - DWORD iTimeOutMSec; -} -alias tagACCESSTIMEOUT ACCESSTIMEOUT; -alias tagACCESSTIMEOUT* LPACCESSTIMEOUT; - -enum : uint { ATF_TIMEOUTON = 0x00000001 } -enum : uint { ATF_ONOFFFEEDBACK = 0x00000002 } - -enum : uint { SSGF_NONE = 0 } -enum : uint { SSGF_DISPLAY = 3 } - -enum : uint { SSTF_NONE = 0 } -enum : uint { SSTF_CHARS = 1 } -enum : uint { SSTF_BORDER = 2 } -enum : uint { SSTF_DISPLAY = 3 } - -enum : uint { SSWF_NONE = 0 } -enum : uint { SSWF_TITLE = 1 } -enum : uint { SSWF_WINDOW = 2 } -enum : uint { SSWF_DISPLAY = 3 } -enum : uint { SSWF_CUSTOM = 4 } - -struct tagSOUNDSENTRYA { - UINT cbSize; - DWORD dwFlags; - DWORD iFSTextEffect; - DWORD iFSTextEffectMSec; - DWORD iFSTextEffectColorBits; - DWORD iFSGrafEffect; - DWORD iFSGrafEffectMSec; - DWORD iFSGrafEffectColor; - DWORD iWindowsEffect; - DWORD iWindowsEffectMSec; - LPSTR lpszWindowsEffectDLL; - DWORD iWindowsEffectOrdinal; -} -alias tagSOUNDSENTRYA SOUNDSENTRYA; -alias tagSOUNDSENTRYA* LPSOUNDSENTRYA; - -struct tagSOUNDSENTRYW { - UINT cbSize; - DWORD dwFlags; - DWORD iFSTextEffect; - DWORD iFSTextEffectMSec; - DWORD iFSTextEffectColorBits; - DWORD iFSGrafEffect; - DWORD iFSGrafEffectMSec; - DWORD iFSGrafEffectColor; - DWORD iWindowsEffect; - DWORD iWindowsEffectMSec; - LPWSTR lpszWindowsEffectDLL; - DWORD iWindowsEffectOrdinal; -} -alias tagSOUNDSENTRYW SOUNDSENTRYW; -alias tagSOUNDSENTRYW* LPSOUNDSENTRYW; - -// #ifdef UNICODE -alias SOUNDSENTRYW SOUNDSENTRY; -alias LPSOUNDSENTRYW LPSOUNDSENTRY; -// #else -// ... -// #endif // UNICODE - -enum : uint { SSF_SOUNDSENTRYON = 0x00000001 } -enum : uint { SSF_AVAILABLE = 0x00000002 } -enum : uint { SSF_INDICATOR = 0x00000004 } - -struct tagTOGGLEKEYS { - UINT cbSize; - DWORD dwFlags; -} -alias tagTOGGLEKEYS TOGGLEKEYS; -alias tagTOGGLEKEYS* LPTOGGLEKEYS; - -enum : uint { TKF_TOGGLEKEYSON = 0x00000001 } -enum : uint { TKF_AVAILABLE = 0x00000002 } -enum : uint { TKF_HOTKEYACTIVE = 0x00000004 } -enum : uint { TKF_CONFIRMHOTKEY = 0x00000008 } -enum : uint { TKF_HOTKEYSOUND = 0x00000010 } -enum : uint { TKF_INDICATOR = 0x00000020 } - -extern(Windows) export VOID SetDebugErrorLevel( - DWORD dwLevel); - -enum : uint { SLE_ERROR = 0x00000001 } -enum : uint { SLE_MINORERROR = 0x00000002 } -enum : uint { SLE_WARNING = 0x00000003 } - -extern(Windows) export VOID SetLastErrorEx( - DWORD dwErrCode, - DWORD dwType); - -// #if(WINVER >= 0x0500) - -enum : uint { MONITOR_DEFAULTTONULL = 0x00000000 } -enum : uint { MONITOR_DEFAULTTOPRIMARY = 0x00000001 } -enum : uint { MONITOR_DEFAULTTONEAREST = 0x00000002 } - -extern(Windows) export HMONITOR MonitorFromPoint( - POINT pt, - DWORD dwFlags); - -extern(Windows) export HMONITOR MonitorFromRect( - LPCRECT lprc, - DWORD dwFlags); - -extern(Windows) export HMONITOR MonitorFromWindow(HWND hwnd, DWORD dwFlags); - -enum : uint { MONITORINFOF_PRIMARY = 0x00000001 } - -// #ifndef CCHDEVICENAME -// #... -// #endif - -struct tagMONITORINFO { - DWORD cbSize; - RECT rcMonitor; - RECT rcWork; - DWORD dwFlags; -} -alias tagMONITORINFO MONITORINFO; -alias tagMONITORINFO* LPMONITORINFO; - -// #ifdef __cplusplus -struct tagMONITORINFOEXA { - DWORD cbSize; - RECT rcMonitor; - RECT rcWork; - DWORD dwFlags; - CHAR szDevice[CCHDEVICENAME]; -} -alias tagMONITORINFOEXA MONITORINFOEXA; -alias tagMONITORINFOEXA* LPMONITORINFOEXA; - -struct tagMONITORINFOEXW { - DWORD cbSize; - RECT rcMonitor; - RECT rcWork; - DWORD dwFlags; - WCHAR szDevice[CCHDEVICENAME]; -} -alias tagMONITORINFOEXW MONITORINFOEXW; -alias tagMONITORINFOEXW* LPMONITORINFOEXW; - -// #ifdef UNICODE -alias MONITORINFOEXW MONITORINFOEX; -alias LPMONITORINFOEXW LPMONITORINFOEX; -// #else -// ... -// #endif // UNICODE -// #else // ndef __cplusplus -// ... -// #ifdef UNICODE -// ... -// #else -// ... -// #endif // UNICODE -// #endif - -extern(Windows) export BOOL GetMonitorInfoA(HMONITOR hMonitor, LPMONITORINFO lpmi); -extern(Windows) export BOOL GetMonitorInfoW(HMONITOR hMonitor, LPMONITORINFO lpmi); -// #ifdef UNICODE -alias GetMonitorInfoW GetMonitorInfo; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) alias BOOL function(HMONITOR, HDC, LPRECT, LPARAM) MONITORENUMPROC; - -extern(Windows) export BOOL EnumDisplayMonitors( - HDC hdc, - LPCRECT lprcClip, - MONITORENUMPROC lpfnEnum, - LPARAM dwData); - -// #ifndef NOWINABLE - -extern(Windows) export VOID NotifyWinEvent( - DWORD event, - HWND hwnd, - LONG idObject, - LONG idChild); - -extern(Windows) alias VOID function( HWINEVENTHOOK hWinEventHook, DWORD event, HWND hwnd, LONG idObject, LONG idChild, DWORD idEventThread, DWORD dwmsEventTime) WINEVENTPROC; - -extern(Windows) export HWINEVENTHOOK SetWinEventHook( - DWORD eventMin, - DWORD eventMax, - HMODULE hmodWinEventProc, - WINEVENTPROC pfnWinEventProc, - DWORD idProcess, - DWORD idThread, - DWORD dwFlags); - -// #if(_WIN32_WINNT >= 0x0501) -extern(Windows) export BOOL IsWinEventHookInstalled( - DWORD event); -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { WINEVENT_OUTOFCONTEXT = 0x0000 } -enum : uint { WINEVENT_SKIPOWNTHREAD = 0x0001 } -enum : uint { WINEVENT_SKIPOWNPROCESS = 0x0002 } -enum : uint { WINEVENT_INCONTEXT = 0x0004 } - -extern(Windows) export BOOL UnhookWinEvent( - HWINEVENTHOOK hWinEventHook); - -enum : uint { CHILDID_SELF = 0 } -enum : uint { INDEXID_OBJECT = 0 } -enum : uint { INDEXID_CONTAINER = 0 } - -enum : uint { OBJID_WINDOW = cast(LONG)0x00000000 } -enum : uint { OBJID_SYSMENU = cast(LONG)0xFFFFFFFF } -enum : uint { OBJID_TITLEBAR = cast(LONG)0xFFFFFFFE } -enum : uint { OBJID_MENU = cast(LONG)0xFFFFFFFD } -enum : uint { OBJID_CLIENT = cast(LONG)0xFFFFFFFC } -enum : uint { OBJID_VSCROLL = cast(LONG)0xFFFFFFFB } -enum : uint { OBJID_HSCROLL = cast(LONG)0xFFFFFFFA } -enum : uint { OBJID_SIZEGRIP = cast(LONG)0xFFFFFFF9 } -enum : uint { OBJID_CARET = cast(LONG)0xFFFFFFF8 } -enum : uint { OBJID_CURSOR = cast(LONG)0xFFFFFFF7 } -enum : uint { OBJID_ALERT = cast(LONG)0xFFFFFFF6 } -enum : uint { OBJID_SOUND = cast(LONG)0xFFFFFFF5 } -enum : uint { OBJID_QUERYCLASSNAMEIDX = cast(LONG)0xFFFFFFF4 } -enum : uint { OBJID_NATIVEOM = cast(LONG)0xFFFFFFF0 } - -enum : uint { EVENT_MIN = 0x00000001 } -enum : uint { EVENT_MAX = 0x7FFFFFFF } - -enum : uint { EVENT_SYSTEM_SOUND = 0x0001 } - -enum : uint { EVENT_SYSTEM_ALERT = 0x0002 } - -enum : uint { EVENT_SYSTEM_FOREGROUND = 0x0003 } - -enum : uint { EVENT_SYSTEM_MENUSTART = 0x0004 } -enum : uint { EVENT_SYSTEM_MENUEND = 0x0005 } - -enum : uint { EVENT_SYSTEM_MENUPOPUPSTART = 0x0006 } -enum : uint { EVENT_SYSTEM_MENUPOPUPEND = 0x0007 } - -enum : uint { EVENT_SYSTEM_CAPTURESTART = 0x0008 } -enum : uint { EVENT_SYSTEM_CAPTUREEND = 0x0009 } - -enum : uint { EVENT_SYSTEM_MOVESIZESTART = 0x000A } -enum : uint { EVENT_SYSTEM_MOVESIZEEND = 0x000B } - -enum : uint { EVENT_SYSTEM_CONTEXTHELPSTART = 0x000C } -enum : uint { EVENT_SYSTEM_CONTEXTHELPEND = 0x000D } - -enum : uint { EVENT_SYSTEM_DRAGDROPSTART = 0x000E } -enum : uint { EVENT_SYSTEM_DRAGDROPEND = 0x000F } - -enum : uint { EVENT_SYSTEM_DIALOGSTART = 0x0010 } -enum : uint { EVENT_SYSTEM_DIALOGEND = 0x0011 } - -enum : uint { EVENT_SYSTEM_SCROLLINGSTART = 0x0012 } -enum : uint { EVENT_SYSTEM_SCROLLINGEND = 0x0013 } - -enum : uint { EVENT_SYSTEM_SWITCHSTART = 0x0014 } -enum : uint { EVENT_SYSTEM_SWITCHEND = 0x0015 } - -enum : uint { EVENT_SYSTEM_MINIMIZESTART = 0x0016 } -enum : uint { EVENT_SYSTEM_MINIMIZEEND = 0x0017 } - -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { EVENT_CONSOLE_CARET = 0x4001 } -enum : uint { EVENT_CONSOLE_UPDATE_REGION = 0x4002 } -enum : uint { EVENT_CONSOLE_UPDATE_SIMPLE = 0x4003 } -enum : uint { EVENT_CONSOLE_UPDATE_SCROLL = 0x4004 } -enum : uint { EVENT_CONSOLE_LAYOUT = 0x4005 } -enum : uint { EVENT_CONSOLE_START_APPLICATION = 0x4006 } -enum : uint { EVENT_CONSOLE_END_APPLICATION = 0x4007 } - -enum : uint { CONSOLE_APPLICATION_16BIT = 0x0001 } - -enum : uint { CONSOLE_CARET_SELECTION = 0x0001 } -enum : uint { CONSOLE_CARET_VISIBLE = 0x0002 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -enum : uint { EVENT_OBJECT_CREATE = 0x8000 } -enum : uint { EVENT_OBJECT_DESTROY = 0x8001 } -enum : uint { EVENT_OBJECT_SHOW = 0x8002 } -enum : uint { EVENT_OBJECT_HIDE = 0x8003 } -enum : uint { EVENT_OBJECT_REORDER = 0x8004 } - -enum : uint { EVENT_OBJECT_FOCUS = 0x8005 } -enum : uint { EVENT_OBJECT_SELECTION = 0x8006 } -enum : uint { EVENT_OBJECT_SELECTIONADD = 0x8007 } -enum : uint { EVENT_OBJECT_SELECTIONREMOVE = 0x8008 } -enum : uint { EVENT_OBJECT_SELECTIONWITHIN = 0x8009 } - -enum : uint { EVENT_OBJECT_STATECHANGE = 0x800A } - -enum : uint { EVENT_OBJECT_LOCATIONCHANGE = 0x800B } - -enum : uint { EVENT_OBJECT_NAMECHANGE = 0x800C } -enum : uint { EVENT_OBJECT_DESCRIPTIONCHANGE = 0x800D } -enum : uint { EVENT_OBJECT_VALUECHANGE = 0x800E } -enum : uint { EVENT_OBJECT_PARENTCHANGE = 0x800F } -enum : uint { EVENT_OBJECT_HELPCHANGE = 0x8010 } -enum : uint { EVENT_OBJECT_DEFACTIONCHANGE = 0x8011 } -enum : uint { EVENT_OBJECT_ACCELERATORCHANGE = 0x8012 } - -enum : uint { SOUND_SYSTEM_STARTUP = 1 } -enum : uint { SOUND_SYSTEM_SHUTDOWN = 2 } -enum : uint { SOUND_SYSTEM_BEEP = 3 } -enum : uint { SOUND_SYSTEM_ERROR = 4 } -enum : uint { SOUND_SYSTEM_QUESTION = 5 } -enum : uint { SOUND_SYSTEM_WARNING = 6 } -enum : uint { SOUND_SYSTEM_INFORMATION = 7 } -enum : uint { SOUND_SYSTEM_MAXIMIZE = 8 } -enum : uint { SOUND_SYSTEM_MINIMIZE = 9 } -enum : uint { SOUND_SYSTEM_RESTOREUP = 10 } -enum : uint { SOUND_SYSTEM_RESTOREDOWN = 11 } -enum : uint { SOUND_SYSTEM_APPSTART = 12 } -enum : uint { SOUND_SYSTEM_FAULT = 13 } -enum : uint { SOUND_SYSTEM_APPEND = 14 } -enum : uint { SOUND_SYSTEM_MENUCOMMAND = 15 } -enum : uint { SOUND_SYSTEM_MENUPOPUP = 16 } -enum : uint { CSOUND_SYSTEM = 16 } - -enum : uint { ALERT_SYSTEM_INFORMATIONAL = 1 } -enum : uint { ALERT_SYSTEM_WARNING = 2 } -enum : uint { ALERT_SYSTEM_ERROR = 3 } -enum : uint { ALERT_SYSTEM_QUERY = 4 } -enum : uint { ALERT_SYSTEM_CRITICAL = 5 } -enum : uint { CALERT_SYSTEM = 6 } - -struct tagGUITHREADINFO { - DWORD cbSize; - DWORD flags; - HWND hwndActive; - HWND hwndFocus; - HWND hwndCapture; - HWND hwndMenuOwner; - HWND hwndMoveSize; - HWND hwndCaret; - RECT rcCaret; -} -alias tagGUITHREADINFO GUITHREADINFO; -alias tagGUITHREADINFO* PGUITHREADINFO; -alias tagGUITHREADINFO* LPGUITHREADINFO; - -enum : uint { GUI_CARETBLINKING = 0x00000001 } -enum : uint { GUI_INMOVESIZE = 0x00000002 } -enum : uint { GUI_INMENUMODE = 0x00000004 } -enum : uint { GUI_SYSTEMMENUMODE = 0x00000008 } -enum : uint { GUI_POPUPMENUMODE = 0x00000010 } -// #if(_WIN32_WINNT >= 0x0501) -enum : uint { GUI_16BITTASK = 0x00000020 } -// #endif /* _WIN32_WINNT >= 0x0501 */ - -extern(Windows) export BOOL GetGUIThreadInfo( - DWORD idThread, - PGUITHREADINFO pgui); - -extern(Windows) export UINT GetWindowModuleFileNameA( - HWND hwnd, - LPSTR pszFileName, - UINT cchFileNameMax); -extern(Windows) export UINT GetWindowModuleFileNameW( - HWND hwnd, - LPWSTR pszFileName, - UINT cchFileNameMax); -// #ifdef UNICODE -alias GetWindowModuleFileNameW GetWindowModuleFileName; -// #else -// #... -// #endif // !UNICODE - -// #ifndef NO_STATE_FLAGS -enum : uint { STATE_SYSTEM_UNAVAILABLE = 0x00000001 } -enum : uint { STATE_SYSTEM_SELECTED = 0x00000002 } -enum : uint { STATE_SYSTEM_FOCUSED = 0x00000004 } -enum : uint { STATE_SYSTEM_PRESSED = 0x00000008 } -enum : uint { STATE_SYSTEM_CHECKED = 0x00000010 } -enum : uint { STATE_SYSTEM_MIXED = 0x00000020 } -alias STATE_SYSTEM_MIXED STATE_SYSTEM_INDETERMINATE; -enum : uint { STATE_SYSTEM_READONLY = 0x00000040 } -enum : uint { STATE_SYSTEM_HOTTRACKED = 0x00000080 } -enum : uint { STATE_SYSTEM_DEFAULT = 0x00000100 } -enum : uint { STATE_SYSTEM_EXPANDED = 0x00000200 } -enum : uint { STATE_SYSTEM_COLLAPSED = 0x00000400 } -enum : uint { STATE_SYSTEM_BUSY = 0x00000800 } -enum : uint { STATE_SYSTEM_FLOATING = 0x00001000 } -enum : uint { STATE_SYSTEM_MARQUEED = 0x00002000 } -enum : uint { STATE_SYSTEM_ANIMATED = 0x00004000 } -enum : uint { STATE_SYSTEM_INVISIBLE = 0x00008000 } -enum : uint { STATE_SYSTEM_OFFSCREEN = 0x00010000 } -enum : uint { STATE_SYSTEM_SIZEABLE = 0x00020000 } -enum : uint { STATE_SYSTEM_MOVEABLE = 0x00040000 } -enum : uint { STATE_SYSTEM_SELFVOICING = 0x00080000 } -enum : uint { STATE_SYSTEM_FOCUSABLE = 0x00100000 } -enum : uint { STATE_SYSTEM_SELECTABLE = 0x00200000 } -enum : uint { STATE_SYSTEM_LINKED = 0x00400000 } -enum : uint { STATE_SYSTEM_TRAVERSED = 0x00800000 } -enum : uint { STATE_SYSTEM_MULTISELECTABLE = 0x01000000 } -enum : uint { STATE_SYSTEM_EXTSELECTABLE = 0x02000000 } -enum : uint { STATE_SYSTEM_ALERT_LOW = 0x04000000 } -enum : uint { STATE_SYSTEM_ALERT_MEDIUM = 0x08000000 } -enum : uint { STATE_SYSTEM_ALERT_HIGH = 0x10000000 } -enum : uint { STATE_SYSTEM_PROTECTED = 0x20000000 } -enum : uint { STATE_SYSTEM_VALID = 0x3FFFFFFF } -// #endif - -enum : uint { CCHILDREN_TITLEBAR = 5 } -enum : uint { CCHILDREN_SCROLLBAR = 5 } - -struct tagCURSORINFO { - DWORD cbSize; - DWORD flags; - HCURSOR hCursor; - POINT ptScreenPos; -} -alias tagCURSORINFO CURSORINFO; -alias tagCURSORINFO* PCURSORINFO; -alias tagCURSORINFO* LPCURSORINFO; - -enum : uint { CURSOR_SHOWING = 0x00000001 } - -extern(Windows) export BOOL GetCursorInfo( - PCURSORINFO pci -); - -struct tagWINDOWINFO { - DWORD cbSize; - RECT rcWindow; - RECT rcClient; - DWORD dwStyle; - DWORD dwExStyle; - DWORD dwWindowStatus; - UINT cxWindowBorders; - UINT cyWindowBorders; - ATOM atomWindowType; - WORD wCreatorVersion; -} -alias tagWINDOWINFO WINDOWINFO; -alias tagWINDOWINFO* PWINDOWINFO; -alias tagWINDOWINFO* LPWINDOWINFO; - -enum : uint { WS_ACTIVECAPTION = 0x0001 } - -extern(Windows) export BOOL GetWindowInfo( - HWND hwnd, - PWINDOWINFO pwi -); - -struct tagTITLEBARINFO { - DWORD cbSize; - RECT rcTitleBar; - DWORD rgstate[CCHILDREN_TITLEBAR+1]; -} -alias tagTITLEBARINFO TITLEBARINFO; -alias tagTITLEBARINFO* PTITLEBARINFO; -alias tagTITLEBARINFO* LPTITLEBARINFO; - -extern(Windows) export BOOL GetTitleBarInfo( - HWND hwnd, - PTITLEBARINFO pti -); - -struct tagMENUBARINFO { - DWORD cbSize; - RECT rcBar; - HMENU hMenu; - HWND hwndMenu; -// BOOL fBarFocused:1; -// BOOL fFocused:1; -} -alias tagMENUBARINFO MENUBARINFO; -alias tagMENUBARINFO* PMENUBARINFO; -alias tagMENUBARINFO* LPMENUBARINFO; - -extern(Windows) export BOOL GetMenuBarInfo( - HWND hwnd, - LONG idObject, - LONG idItem, - PMENUBARINFO pmbi -); - -struct tagSCROLLBARINFO { - DWORD cbSize; - RECT rcScrollBar; - int dxyLineButton; - int xyThumbTop; - int xyThumbBottom; - int reserved; - DWORD rgstate[CCHILDREN_SCROLLBAR+1]; -} -alias tagSCROLLBARINFO SCROLLBARINFO; -alias tagSCROLLBARINFO* PSCROLLBARINFO; -alias tagSCROLLBARINFO* LPSCROLLBARINFO; - -extern(Windows) export BOOL GetScrollBarInfo( - HWND hwnd, - LONG idObject, - PSCROLLBARINFO psbi -); - -struct tagCOMBOBOXINFO { - DWORD cbSize; - RECT rcItem; - RECT rcButton; - DWORD stateButton; - HWND hwndCombo; - HWND hwndItem; - HWND hwndList; -} -alias tagCOMBOBOXINFO COMBOBOXINFO; -alias tagCOMBOBOXINFO* PCOMBOBOXINFO; -alias tagCOMBOBOXINFO* LPCOMBOBOXINFO; - -extern(Windows) export BOOL GetComboBoxInfo( - HWND hwndCombo, - PCOMBOBOXINFO pcbi -); - -enum : uint { GA_PARENT = 1 } -enum : uint { GA_ROOT = 2 } -enum : uint { GA_ROOTOWNER = 3 } - -extern(Windows) export HWND GetAncestor( - HWND hwnd, - UINT gaFlags -); - -extern(Windows) export HWND RealChildWindowFromPoint( - HWND hwndParent, - POINT ptParentClientCoords -); - -extern(Windows) export UINT RealGetWindowClassA( - HWND hwnd, - LPSTR pszType, - UINT cchType -); - -extern(Windows) export UINT RealGetWindowClassW( - HWND hwnd, - LPWSTR pszType, - UINT cchType -); -// #ifdef UNICODE -alias RealGetWindowClassW RealGetWindowClass; -// #else -// #... -// #endif // !UNICODE - -struct tagALTTABINFO { - DWORD cbSize; - int cItems; - int cColumns; - int cRows; - int iColFocus; - int iRowFocus; - int cxItem; - int cyItem; - POINT ptStart; -} -alias tagALTTABINFO ALTTABINFO; -alias tagALTTABINFO* PALTTABINFO; -alias tagALTTABINFO* LPALTTABINFO; - -extern(Windows) export BOOL GetAltTabInfoA( - HWND hwnd, - int iItem, - PALTTABINFO pati, - LPSTR pszItemText, - UINT cchItemText -); -extern(Windows) export BOOL GetAltTabInfoW( - HWND hwnd, - int iItem, - PALTTABINFO pati, - LPWSTR pszItemText, - UINT cchItemText -); -// #ifdef UNICODE -alias GetAltTabInfoW GetAltTabInfo; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetListBoxInfo( - HWND hwnd -); - -// #endif /* NOWINABLE */ -// #endif /* WINVER >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0500) -extern(Windows) export BOOL LockWorkStation(); -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0500) - -extern(Windows) export BOOL UserHandleGrantAccess( - HANDLE hUserHandle, - HANDLE hJob, - BOOL bGrant); - -// #endif /* _WIN32_WINNT >= 0x0500 */ - -// #if(_WIN32_WINNT >= 0x0501) - -alias void* HRAWINPUT; - -// #define GET_RAWINPUT_CODE_WPARAM(wParam) ((wParam) & 0xff) - -enum : uint { RIM_INPUT = 0 } - -enum : uint { RIM_INPUTSINK = 1 } - -struct tagRAWINPUTHEADER { - DWORD dwType; - DWORD dwSize; - HANDLE hDevice; - WPARAM wParam; -} -alias tagRAWINPUTHEADER RAWINPUTHEADER; -alias tagRAWINPUTHEADER* PRAWINPUTHEADER; -alias tagRAWINPUTHEADER* LPRAWINPUTHEADER; - -enum : uint { RIM_TYPEMOUSE = 0 } -enum : uint { RIM_TYPEKEYBOARD = 1 } -enum : uint { RIM_TYPEHID = 2 } - -struct tagRAWMOUSE { - - USHORT usFlags; -union { - ULONG ulButtons; -struct { - USHORT usButtonFlags; - USHORT usButtonData; -} - -} - - ULONG ulRawButtons; - LONG lLastX; - LONG lLastY; - ULONG ulExtraInformation; -} -alias tagRAWMOUSE RAWMOUSE; -alias tagRAWMOUSE* PRAWMOUSE; -alias tagRAWMOUSE* LPRAWMOUSE; - -enum : uint { RI_MOUSE_LEFT_BUTTON_DOWN = 0x0001 } -enum : uint { RI_MOUSE_LEFT_BUTTON_UP = 0x0002 } -enum : uint { RI_MOUSE_RIGHT_BUTTON_DOWN = 0x0004 } -enum : uint { RI_MOUSE_RIGHT_BUTTON_UP = 0x0008 } -enum : uint { RI_MOUSE_MIDDLE_BUTTON_DOWN = 0x0010 } -enum : uint { RI_MOUSE_MIDDLE_BUTTON_UP = 0x0020 } - -alias RI_MOUSE_LEFT_BUTTON_DOWN RI_MOUSE_BUTTON_1_DOWN; -alias RI_MOUSE_LEFT_BUTTON_UP RI_MOUSE_BUTTON_1_UP; -alias RI_MOUSE_RIGHT_BUTTON_DOWN RI_MOUSE_BUTTON_2_DOWN; -alias RI_MOUSE_RIGHT_BUTTON_UP RI_MOUSE_BUTTON_2_UP; -alias RI_MOUSE_MIDDLE_BUTTON_DOWN RI_MOUSE_BUTTON_3_DOWN; -alias RI_MOUSE_MIDDLE_BUTTON_UP RI_MOUSE_BUTTON_3_UP; - -enum : uint { RI_MOUSE_BUTTON_4_DOWN = 0x0040 } -enum : uint { RI_MOUSE_BUTTON_4_UP = 0x0080 } -enum : uint { RI_MOUSE_BUTTON_5_DOWN = 0x0100 } -enum : uint { RI_MOUSE_BUTTON_5_UP = 0x0200 } - -enum : uint { RI_MOUSE_WHEEL = 0x0400 } - -enum : uint { MOUSE_MOVE_RELATIVE = 0 } -enum : uint { MOUSE_MOVE_ABSOLUTE = 1 } -enum : uint { MOUSE_VIRTUAL_DESKTOP = 0x02 } -enum : uint { MOUSE_ATTRIBUTES_CHANGED = 0x04 } - -struct tagRAWKEYBOARD { - - USHORT MakeCode; - USHORT Flags; - USHORT Reserved; - USHORT VKey; - UINT Message; - ULONG ExtraInformation; -} -alias tagRAWKEYBOARD RAWKEYBOARD; -alias tagRAWKEYBOARD* PRAWKEYBOARD; -alias tagRAWKEYBOARD* LPRAWKEYBOARD; - -enum : uint { KEYBOARD_OVERRUN_MAKE_CODE = 0xFF } - -enum : uint { RI_KEY_MAKE = 0 } -enum : uint { RI_KEY_BREAK = 1 } -enum : uint { RI_KEY_E0 = 2 } -enum : uint { RI_KEY_E1 = 4 } -enum : uint { RI_KEY_TERMSRV_SET_LED = 8 } -enum : uint { RI_KEY_TERMSRV_SHADOW = 0x10 } - -struct tagRAWHID { - DWORD dwSizeHid; - DWORD dwCount; - BYTE bRawData[1]; -} -alias tagRAWHID RAWHID; -alias tagRAWHID* PRAWHID; -alias tagRAWHID* LPRAWHID; - -struct tagRAWINPUT { - RAWINPUTHEADER header; -union { - RAWMOUSE mouse; - RAWKEYBOARD keyboard; - RAWHID hid; -} - -} -alias tagRAWINPUT RAWINPUT; -alias tagRAWINPUT* PRAWINPUT; -alias tagRAWINPUT* LPRAWINPUT; - -// #ifdef _WIN64 -// #... -// #else // _WIN64 -uint RAWINPUT_ALIGN(uint x){ return ((x + DWORD.sizeof - 1) & ~(DWORD.sizeof - 1)); } -// #endif // _WIN64 - -// #define NEXTRAWINPUTBLOCK(ptr) ((PRAWINPUT)RAWINPUT_ALIGN((ULONG_PTR)((PBYTE)(ptr) + (ptr)->header.dwSize))) - -enum : uint { RID_INPUT = 0x10000003 } -enum : uint { RID_HEADER = 0x10000005 } - -extern(Windows) export UINT GetRawInputData( - HRAWINPUT hRawInput, - UINT uiCommand, - LPVOID pData, - PUINT pcbSize, - UINT cbSizeHeader); - -enum : uint { RIDI_PREPARSEDDATA = 0x20000005 } -enum : uint { RIDI_DEVICENAME = 0x20000007 } -enum : uint { RIDI_DEVICEINFO = 0x2000000b } - -struct tagRID_DEVICE_INFO_MOUSE { - DWORD dwId; - DWORD dwNumberOfButtons; - DWORD dwSampleRate; -} -alias tagRID_DEVICE_INFO_MOUSE RID_DEVICE_INFO_MOUSE; -alias tagRID_DEVICE_INFO_MOUSE* PRID_DEVICE_INFO_MOUSE; - -struct tagRID_DEVICE_INFO_KEYBOARD { - DWORD dwType; - DWORD dwSubType; - DWORD dwKeyboardMode; - DWORD dwNumberOfFunctionKeys; - DWORD dwNumberOfIndicators; - DWORD dwNumberOfKeysTotal; -} -alias tagRID_DEVICE_INFO_KEYBOARD RID_DEVICE_INFO_KEYBOARD; -alias tagRID_DEVICE_INFO_KEYBOARD* PRID_DEVICE_INFO_KEYBOARD; - -struct tagRID_DEVICE_INFO_HID { - DWORD dwVendorId; - DWORD dwProductId; - DWORD dwVersionNumber; - USHORT usUsagePage; - USHORT usUsage; -} -alias tagRID_DEVICE_INFO_HID RID_DEVICE_INFO_HID; -alias tagRID_DEVICE_INFO_HID* PRID_DEVICE_INFO_HID; - -struct tagRID_DEVICE_INFO { - DWORD cbSize; - DWORD dwType; -union { - RID_DEVICE_INFO_MOUSE mouse; - RID_DEVICE_INFO_KEYBOARD keyboard; - RID_DEVICE_INFO_HID hid; -} - -} -alias tagRID_DEVICE_INFO RID_DEVICE_INFO; -alias tagRID_DEVICE_INFO* PRID_DEVICE_INFO; -alias tagRID_DEVICE_INFO* LPRID_DEVICE_INFO; - -extern(Windows) export UINT GetRawInputDeviceInfoA( - HANDLE hDevice, - UINT uiCommand, - LPVOID pData, - PUINT pcbSize); -extern(Windows) export UINT GetRawInputDeviceInfoW( - HANDLE hDevice, - UINT uiCommand, - LPVOID pData, - PUINT pcbSize); -// #ifdef UNICODE -alias GetRawInputDeviceInfoW GetRawInputDeviceInfo; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export UINT GetRawInputBuffer( - PRAWINPUT pData, - PUINT pcbSize, - UINT cbSizeHeader); - -struct tagRAWINPUTDEVICE { - USHORT usUsagePage; - USHORT usUsage; - DWORD dwFlags; - HWND hwndTarget; -} -alias tagRAWINPUTDEVICE RAWINPUTDEVICE; -alias tagRAWINPUTDEVICE* PRAWINPUTDEVICE; -alias tagRAWINPUTDEVICE* LPRAWINPUTDEVICE; - -alias RAWINPUTDEVICE* PCRAWINPUTDEVICE; - -enum : uint { RIDEV_REMOVE = 0x00000001 } -enum : uint { RIDEV_EXCLUDE = 0x00000010 } -enum : uint { RIDEV_PAGEONLY = 0x00000020 } -enum : uint { RIDEV_NOLEGACY = 0x00000030 } -enum : uint { RIDEV_CAPTUREMOUSE = 0x00000200 } -enum : uint { RIDEV_NOHOTKEYS = 0x00000200 } -enum : uint { RIDEV_EXMODEMASK = 0x000000F0 } - -// #define RIDEV_EXMODE(mode) ((mode) & RIDEV_EXMODEMASK) - -extern(Windows) export BOOL RegisterRawInputDevices( - PCRAWINPUTDEVICE pRawInputDevices, - UINT uiNumDevices, - UINT cbSize); - -extern(Windows) export UINT GetRegisteredRawInputDevices( - PRAWINPUTDEVICE pRawInputDevices, - PUINT puiNumDevices, - UINT cbSize); - -struct tagRAWINPUTDEVICELIST { - HANDLE hDevice; - DWORD dwType; -} -alias tagRAWINPUTDEVICELIST RAWINPUTDEVICELIST; -alias tagRAWINPUTDEVICELIST* PRAWINPUTDEVICELIST; - -extern(Windows) export UINT GetRawInputDeviceList( - PRAWINPUTDEVICELIST pRawInputDeviceList, - PUINT puiNumDevices, - UINT cbSize); - -extern(Windows) export LRESULT DefRawInputProc( - PRAWINPUT* paRawInput, - INT nInput, - UINT cbSizeHeader); - -// #endif /* _WIN32_WINNT >= 0x0501 */ - -// #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */ -// #if ISOLATION_AWARE_ENABLED -// #... -// #endif /* ISOLATION_AWARE_ENABLED */ -// #endif /* RC */ - -// #ifdef __cplusplus -// } -// #endif /* __cplusplus */ - -// #endif /* !_WINUSER_ */ - +/***********************************************************************\ +* winuser.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.winuser; +pragma(lib, "user32.lib"); + +// Conversion Notes: +// The following macros were for win16 only, and are not included in this file: +//#define EnumTaskWindows(h, f, p) EnumThreadWindows((DWORD)h, f, p) +//#define PostAppMessageA(t, m, w, l) PostThreadMessageA((DWORD)t, m, w, l) +//#define PostAppMessageW(t, m, w, l) PostThreadMessageW((DWORD)t, m, w, l) +//#define GetSysModalWindow() (NULL) +//#define SetSysModalWindow(h) (NULL) +//#define GetWindowTask(hWnd) ((HANDLE)GetWindowThreadProcessId(hWnd, NULL)) +//#define DefHookProc(c, p, lp, h) CallNextHookEx((HHOOK)*h, c, p, lp) + +private import win32.w32api, win32.winbase, win32.wingdi; +private import win32.windef; // for HMONITOR + +// FIXME: clean up Windows version support + +template MAKEINTATOM_T(int i) { + const LPTSTR MAKEINTATOM_T = cast(LPTSTR) i; +} + +const WC_DIALOG = MAKEINTATOM_T!(0x8002); + +const FVIRTKEY = 1; +const FNOINVERT = 2; +const FSHIFT = 4; +const FCONTROL = 8; +const FALT = 16; + +const ATF_TIMEOUTON = 1; +const ATF_ONOFFFEEDBACK = 2; +const ATF_AVAILABLE = 4; // May be obsolete. Not in recent MS docs. + +const WH_MIN = -1; +const WH_MSGFILTER = -1; +const WH_JOURNALRECORD = 0; +const WH_JOURNALPLAYBACK = 1; +const WH_KEYBOARD = 2; +const WH_GETMESSAGE = 3; +const WH_CALLWNDPROC = 4; +const WH_CBT = 5; +const WH_SYSMSGFILTER = 6; +const WH_MOUSE = 7; +const WH_HARDWARE = 8; +const WH_DEBUG = 9; +const WH_SHELL = 10; +const WH_FOREGROUNDIDLE = 11; +const WH_CALLWNDPROCRET = 12; +const WH_KEYBOARD_LL = 13; +const WH_MOUSE_LL = 14; +const WH_MAX = 14; +const WH_MINHOOK = WH_MIN; +const WH_MAXHOOK = WH_MAX; + +enum { + HC_ACTION = 0, + HC_GETNEXT, + HC_SKIP, + HC_NOREMOVE, // = 3 + HC_NOREM = HC_NOREMOVE, + HC_SYSMODALON, + HC_SYSMODALOFF +} + +enum { + HCBT_MOVESIZE = 0, + HCBT_MINMAX, + HCBT_QS, + HCBT_CREATEWND, + HCBT_DESTROYWND, + HCBT_ACTIVATE, + HCBT_CLICKSKIPPED, + HCBT_KEYSKIPPED, + HCBT_SYSCOMMAND, + HCBT_SETFOCUS // = 9 +} + +enum { + CF_TEXT = 1, + CF_BITMAP, + CF_METAFILEPICT, + CF_SYLK, + CF_DIF, + CF_TIFF, + CF_OEMTEXT, + CF_DIB, + CF_PALETTE, + CF_PENDATA, + CF_RIFF, + CF_WAVE, + CF_UNICODETEXT, + CF_ENHMETAFILE, + CF_HDROP, + CF_LOCALE, + CF_MAX, // = 17 + CF_OWNERDISPLAY = 128, + CF_DSPTEXT, + CF_DSPBITMAP, + CF_DSPMETAFILEPICT, // = 131 + CF_DSPENHMETAFILE = 142, + CF_PRIVATEFIRST = 512, + CF_PRIVATELAST = 767, + CF_GDIOBJFIRST = 768, + CF_GDIOBJLAST = 1023 +} + +const HKL_PREV = 0; +const HKL_NEXT = 1; + +const KLF_ACTIVATE = 1; +const KLF_SUBSTITUTE_OK = 2; +const KLF_UNLOADPREVIOUS = 4; +const KLF_REORDER = 8; +const KLF_REPLACELANG = 16; +const KLF_NOTELLSHELL = 128; +const KLF_SETFORPROCESS = 256; +const KL_NAMELENGTH = 9; + +const MF_ENABLED = 0; +const MF_GRAYED = 1; +const MF_DISABLED = 2; +const MF_BITMAP = 4; +const MF_CHECKED = 8; +const MF_MENUBARBREAK = 32; +const MF_MENUBREAK = 64; +const MF_OWNERDRAW = 256; +const MF_POPUP = 16; +const MF_SEPARATOR = 0x800; +const MF_STRING = 0; +const MF_UNCHECKED = 0; +const MF_DEFAULT = 4096; +const MF_SYSMENU = 0x2000; +const MF_HELP = 0x4000; +const MF_END = 128; +const MF_RIGHTJUSTIFY = 0x4000; +const MF_MOUSESELECT = 0x8000; +const MF_INSERT = 0; +const MF_CHANGE = 128; +const MF_APPEND = 256; +const MF_DELETE = 512; +const MF_REMOVE = 4096; +const MF_USECHECKBITMAPS = 512; +const MF_UNHILITE = 0; +const MF_HILITE = 128; + +// Also defined in dbt.h +const BSM_ALLCOMPONENTS = 0; +const BSM_VXDS = 1; +const BSM_NETDRIVER = 2; +const BSM_INSTALLABLEDRIVERS = 4; +const BSM_APPLICATIONS = 8; +const BSM_ALLDESKTOPS = 16; + +const BSF_QUERY = 0x00000001; +const BSF_IGNORECURRENTTASK = 0x00000002; +const BSF_FLUSHDISK = 0x00000004; +const BSF_NOHANG = 0x00000008; +const BSF_POSTMESSAGE = 0x00000010; +const BSF_FORCEIFHUNG = 0x00000020; +const BSF_NOTIMEOUTIFNOTHUNG = 0x00000040; + +static if (_WIN32_WINNT >= 0x500) { + const BSF_ALLOWSFW = 0x00000080; + const BSF_SENDNOTIFYMESSAGE = 0x00000100; +} +static if (_WIN32_WINNT >= 0x501) { + const BSF_RETURNHDESK = 0x00000200; + const BSF_LUID = 0x00000400; +} + +const BROADCAST_QUERY_DENY = 1112363332; +const DWORD ENUM_CURRENT_SETTINGS = -1; +const DWORD ENUM_REGISTRY_SETTINGS = -2; + +const CDS_UPDATEREGISTRY = 1; +const CDS_TEST = 2; +const CDS_FULLSCREEN = 4; +const CDS_GLOBAL = 8; +const CDS_SET_PRIMARY = 16; +const CDS_NORESET = 0x10000000; +const CDS_SETRECT = 0x20000000; +const CDS_RESET = 0x40000000; + +const DISP_CHANGE_RESTART = 1; +const DISP_CHANGE_SUCCESSFUL = 0; +const DISP_CHANGE_FAILED = -1; +const DISP_CHANGE_BADMODE = -2; +const DISP_CHANGE_NOTUPDATED = -3; +const DISP_CHANGE_BADFLAGS = -4; +const DISP_CHANGE_BADPARAM = -5; + +const BST_UNCHECKED = 0; +const BST_CHECKED = 1; +const BST_INDETERMINATE = 2; +const BST_PUSHED = 4; +const BST_FOCUS = 8; + +const MF_BYCOMMAND = 0; +const MF_BYPOSITION = 1024; +// [Redefined] MF_UNCHECKED=0 +// [Redefined] MF_HILITE=128 +// [Redefined] MF_UNHILITE=0 + +const CWP_ALL = 0; +const CWP_SKIPINVISIBLE = 1; +const CWP_SKIPDISABLED = 2; +const CWP_SKIPTRANSPARENT = 4; + +const IMAGE_BITMAP=0; +const IMAGE_ICON=1; +const IMAGE_CURSOR=2; +const IMAGE_ENHMETAFILE=3; + +const DF_ALLOWOTHERACCOUNTHOOK = 1; + +const DESKTOP_READOBJECTS = 1; +const DESKTOP_CREATEWINDOW = 2; +const DESKTOP_CREATEMENU = 4; +const DESKTOP_HOOKCONTROL = 8; +const DESKTOP_JOURNALRECORD = 16; +const DESKTOP_JOURNALPLAYBACK = 32; +const DESKTOP_ENUMERATE = 64; +const DESKTOP_WRITEOBJECTS = 128; +const DESKTOP_SWITCHDESKTOP = 256; + +const CW_USEDEFAULT = 0x80000000; + +enum { + WS_OVERLAPPED = 0, + WS_TILED = WS_OVERLAPPED, + WS_MAXIMIZEBOX = 0x00010000, + WS_MINIMIZEBOX = 0x00020000, + WS_TABSTOP = 0x00010000, + WS_GROUP = 0x00020000, + WS_THICKFRAME = 0x00040000, + WS_SIZEBOX = WS_THICKFRAME, + WS_SYSMENU = 0x00080000, + WS_HSCROLL = 0x00100000, + WS_VSCROLL = 0x00200000, + WS_DLGFRAME = 0x00400000, + WS_BORDER = 0x00800000, + WS_CAPTION = 0x00c00000, + WS_OVERLAPPEDWINDOW = WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX, + WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW, + WS_MAXIMIZE = 0x01000000, + WS_CLIPCHILDREN = 0x02000000, + WS_CLIPSIBLINGS = 0x04000000, + WS_DISABLED = 0x08000000, + WS_VISIBLE = 0x10000000, + WS_MINIMIZE = 0x20000000, + WS_ICONIC = WS_MINIMIZE, + WS_CHILD = 0x40000000, + WS_CHILDWINDOW = 0x40000000, + WS_POPUP = 0x80000000, + WS_POPUPWINDOW = WS_POPUP|WS_BORDER|WS_SYSMENU, +} + +const MDIS_ALLCHILDSTYLES = 1; + +const BS_3STATE = 5; +const BS_AUTO3STATE = 6; +const BS_AUTOCHECKBOX = 3; +const BS_AUTORADIOBUTTON = 9; +const BS_BITMAP = 128; +const BS_BOTTOM = 0x800; +const BS_CENTER = 0x300; +const BS_CHECKBOX = 2; +const BS_DEFPUSHBUTTON = 1; +const BS_GROUPBOX = 7; +const BS_ICON = 64; +const BS_LEFT = 256; +const BS_LEFTTEXT = 32; +const BS_MULTILINE = 0x2000; +const BS_NOTIFY = 0x4000; +const BS_OWNERDRAW = 0xb; +const BS_PUSHBUTTON = 0; +const BS_PUSHLIKE = 4096; +const BS_RADIOBUTTON = 4; +const BS_RIGHT = 512; +const BS_RIGHTBUTTON = 32; +const BS_TEXT = 0; +const BS_TOP = 0x400; +const BS_USERBUTTON = 8; +const BS_VCENTER = 0xc00; +const BS_FLAT = 0x8000; + +const CBS_AUTOHSCROLL = 64; +const CBS_DISABLENOSCROLL = 0x800; +const CBS_DROPDOWN = 2; +const CBS_DROPDOWNLIST = 3; +const CBS_HASSTRINGS = 512; +const CBS_LOWERCASE = 0x4000; +const CBS_NOINTEGRALHEIGHT = 0x400; +const CBS_OEMCONVERT = 128; +const CBS_OWNERDRAWFIXED = 16; +const CBS_OWNERDRAWVARIABLE = 32; +const CBS_SIMPLE = 1; +const CBS_SORT = 256; +const CBS_UPPERCASE = 0x2000; + +const ES_AUTOHSCROLL = 128; +const ES_AUTOVSCROLL = 64; +const ES_CENTER = 1; +const ES_LEFT = 0; +const ES_LOWERCASE = 16; +const ES_MULTILINE = 4; +const ES_NOHIDESEL = 256; +const ES_NUMBER = 0x2000; +const ES_OEMCONVERT = 0x400; +const ES_PASSWORD = 32; +const ES_READONLY = 0x800; +const ES_RIGHT = 2; +const ES_UPPERCASE = 8; +const ES_WANTRETURN = 4096; + +const LBS_DISABLENOSCROLL = 4096; +const LBS_EXTENDEDSEL = 0x800; +const LBS_HASSTRINGS = 64; +const LBS_MULTICOLUMN = 512; +const LBS_MULTIPLESEL = 8; +const LBS_NODATA = 0x2000; +const LBS_NOINTEGRALHEIGHT = 256; +const LBS_NOREDRAW = 4; +const LBS_NOSEL = 0x4000; +const LBS_NOTIFY = 1; +const LBS_OWNERDRAWFIXED = 16; +const LBS_OWNERDRAWVARIABLE = 32; +const LBS_SORT = 2; +const LBS_STANDARD = 0xa00003; +const LBS_USETABSTOPS = 128; +const LBS_WANTKEYBOARDINPUT = 0x400; + +const SBS_BOTTOMALIGN = 4; +const SBS_HORZ = 0; +const SBS_LEFTALIGN = 2; +const SBS_RIGHTALIGN = 4; +const SBS_SIZEBOX = 8; +const SBS_SIZEBOXBOTTOMRIGHTALIGN = 4; +const SBS_SIZEBOXTOPLEFTALIGN = 2; +const SBS_SIZEGRIP = 16; +const SBS_TOPALIGN = 2; +const SBS_VERT = 1; + +const SS_BITMAP = 14; +const SS_BLACKFRAME = 7; +const SS_BLACKRECT = 4; +const SS_CENTER = 1; +const SS_CENTERIMAGE = 512; +const SS_ENHMETAFILE = 15; +const SS_ETCHEDFRAME = 18; +const SS_ETCHEDHORZ = 16; +const SS_ETCHEDVERT = 17; +const SS_GRAYFRAME = 8; +const SS_GRAYRECT = 5; +const SS_ICON = 3; +const SS_LEFT = 0; +const SS_LEFTNOWORDWRAP = 0xc; +const SS_NOPREFIX = 128; +const SS_NOTIFY = 256; +const SS_OWNERDRAW = 0xd; +const SS_REALSIZEIMAGE = 0x800; +const SS_RIGHT = 2; +const SS_RIGHTJUST = 0x400; +const SS_SIMPLE = 11; +const SS_SUNKEN = 4096; +const SS_WHITEFRAME = 9; +const SS_WHITERECT = 6; +const SS_USERITEM = 10; +const SS_TYPEMASK = 0x0000001FL; +const SS_ENDELLIPSIS = 0x00004000L; +const SS_PATHELLIPSIS = 0x00008000L; +const SS_WORDELLIPSIS = 0x0000C000L; +const SS_ELLIPSISMASK = 0x0000C000L; + +const DS_ABSALIGN = 0x0001; +const DS_3DLOOK = 0x0004; +const DS_SYSMODAL = 0x0002; +const DS_FIXEDSYS = 0x0008; +const DS_NOFAILCREATE = 0x0010; +const DS_LOCALEDIT = 0x0020; +const DS_SETFONT = 0x0040; +const DS_MODALFRAME = 0x0080; +const DS_NOIDLEMSG = 0x0100; +const DS_SETFOREGROUND = 0x0200; +const DS_CONTROL = 0x0400; +const DS_CENTER = 0x0800; +const DS_CENTERMOUSE = 0x1000; +const DS_CONTEXTHELP = 0x2000; +const DS_SHELLFONT = DS_SETFONT | DS_FIXEDSYS; + +const WS_EX_ACCEPTFILES = 16; +const WS_EX_APPWINDOW = 0x40000; +const WS_EX_CLIENTEDGE = 512; +const WS_EX_COMPOSITED = 0x2000000; // XP +const WS_EX_CONTEXTHELP = 0x400; +const WS_EX_CONTROLPARENT = 0x10000; +const WS_EX_DLGMODALFRAME = 1; +const WS_EX_LAYERED = 0x80000; // w2k +const WS_EX_LAYOUTRTL = 0x400000; // w98, w2k +const WS_EX_LEFT = 0; +const WS_EX_LEFTSCROLLBAR = 0x4000; +const WS_EX_LTRREADING = 0; +const WS_EX_MDICHILD = 64; +const WS_EX_NOACTIVATE = 0x8000000; // w2k +const WS_EX_NOINHERITLAYOUT = 0x100000; // w2k +const WS_EX_NOPARENTNOTIFY = 4; +const WS_EX_OVERLAPPEDWINDOW = 0x300; +const WS_EX_PALETTEWINDOW = 0x188; +const WS_EX_RIGHT = 0x1000; +const WS_EX_RIGHTSCROLLBAR = 0; +const WS_EX_RTLREADING = 0x2000; +const WS_EX_STATICEDGE = 0x20000; +const WS_EX_TOOLWINDOW = 128; +const WS_EX_TOPMOST = 8; +const WS_EX_TRANSPARENT = 32; +const WS_EX_WINDOWEDGE = 256; + +const WINSTA_ENUMDESKTOPS = 1; +const WINSTA_READATTRIBUTES = 2; +const WINSTA_ACCESSCLIPBOARD = 4; +const WINSTA_CREATEDESKTOP = 8; +const WINSTA_WRITEATTRIBUTES = 16; +const WINSTA_ACCESSGLOBALATOMS = 32; +const WINSTA_EXITWINDOWS = 64; +const WINSTA_ENUMERATE = 256; +const WINSTA_READSCREEN = 512; + +const DDL_READWRITE = 0; +const DDL_READONLY = 1; +const DDL_HIDDEN = 2; +const DDL_SYSTEM = 4; +const DDL_DIRECTORY = 16; +const DDL_ARCHIVE = 32; +const DDL_POSTMSGS = 8192; +const DDL_DRIVES = 16384; +const DDL_EXCLUSIVE = 32768; + +const DC_ACTIVE = 0x00000001; +const DC_SMALLCAP = 0x00000002; +const DC_ICON = 0x00000004; +const DC_TEXT = 0x00000008; +const DC_INBUTTON = 0x00000010; + +static if (WINVER >= 0x500) { +const DC_GRADIENT=0x00000020; +} +static if (_WIN32_WINNT >= 0x501) { +const DC_BUTTONS=0x00001000; +} + +// Where are these documented? +//const DC_CAPTION = DC_ICON|DC_TEXT|DC_BUTTONS; +//const DC_NC = DC_CAPTION|DC_FRAME; + +const BDR_RAISEDOUTER = 1; +const BDR_SUNKENOUTER = 2; +const BDR_RAISEDINNER = 4; +const BDR_SUNKENINNER = 8; +const BDR_OUTER = 3; +const BDR_INNER = 0xc; +const BDR_RAISED = 5; +const BDR_SUNKEN = 10; + +const EDGE_RAISED = BDR_RAISEDOUTER|BDR_RAISEDINNER; +const EDGE_SUNKEN = BDR_SUNKENOUTER|BDR_SUNKENINNER; +const EDGE_ETCHED = BDR_SUNKENOUTER|BDR_RAISEDINNER; +const EDGE_BUMP = BDR_RAISEDOUTER|BDR_SUNKENINNER; + +const BF_LEFT = 1; +const BF_TOP = 2; +const BF_RIGHT = 4; +const BF_BOTTOM = 8; +const BF_TOPLEFT = BF_TOP|BF_LEFT; +const BF_TOPRIGHT = BF_TOP|BF_RIGHT; +const BF_BOTTOMLEFT = BF_BOTTOM|BF_LEFT; +const BF_BOTTOMRIGHT = BF_BOTTOM|BF_RIGHT; +const BF_RECT = BF_LEFT|BF_TOP|BF_RIGHT|BF_BOTTOM ; +const BF_DIAGONAL = 16; +const BF_DIAGONAL_ENDTOPRIGHT = BF_DIAGONAL|BF_TOP|BF_RIGHT; +const BF_DIAGONAL_ENDTOPLEFT = BF_DIAGONAL|BF_TOP|BF_LEFT; +const BF_DIAGONAL_ENDBOTTOMLEFT = BF_DIAGONAL|BF_BOTTOM|BF_LEFT; +const BF_DIAGONAL_ENDBOTTOMRIGHT = BF_DIAGONAL|BF_BOTTOM|BF_RIGHT; +const BF_MIDDLE = 0x800; +const BF_SOFT = 0x1000; +const BF_ADJUST = 0x2000; +const BF_FLAT = 0x4000; +const BF_MONO = 0x8000; + +const DFC_CAPTION=1; +const DFC_MENU=2; +const DFC_SCROLL=3; +const DFC_BUTTON=4; +static if (WINVER >= 0x500) { +const DFC_POPUPMENU=5; +}// WINVER >= 0x500 + +const DFCS_CAPTIONCLOSE = 0; +const DFCS_CAPTIONMIN = 1; +const DFCS_CAPTIONMAX = 2; +const DFCS_CAPTIONRESTORE = 3; +const DFCS_CAPTIONHELP = 4; + +const DFCS_MENUARROW = 0; +const DFCS_MENUCHECK = 1; +const DFCS_MENUBULLET = 2; +const DFCS_MENUARROWRIGHT = 4; + +const DFCS_SCROLLUP = 0; +const DFCS_SCROLLDOWN = 1; +const DFCS_SCROLLLEFT = 2; +const DFCS_SCROLLRIGHT = 3; +const DFCS_SCROLLCOMBOBOX = 5; +const DFCS_SCROLLSIZEGRIP = 8; +const DFCS_SCROLLSIZEGRIPRIGHT = 16; + +const DFCS_BUTTONCHECK = 0; +const DFCS_BUTTONRADIOIMAGE = 1; +const DFCS_BUTTONRADIOMASK = 2; +const DFCS_BUTTONRADIO = 4; +const DFCS_BUTTON3STATE = 8; +const DFCS_BUTTONPUSH = 16; +const DFCS_INACTIVE = 256; +const DFCS_PUSHED = 512; +const DFCS_CHECKED = 1024; +static if (WINVER >= 0x500) { +const DFCS_TRANSPARENT = 0x800; +const DFCS_HOT = 0x1000; +} +const DFCS_ADJUSTRECT = 0x2000; +const DFCS_FLAT = 0x4000; +const DFCS_MONO = 0x8000; + +enum { + DST_COMPLEX = 0, + DST_TEXT, + DST_PREFIXTEXT, + DST_ICON, + DST_BITMAP // = 4 +} + +const DSS_NORMAL = 0; +const DSS_UNION = 16; +const DSS_DISABLED = 32; +const DSS_MONO = 128; +const DSS_RIGHT = 0x8000; + +const DT_BOTTOM = 8; +const DT_CALCRECT = 1024; +const DT_CENTER = 1; +const DT_EDITCONTROL = 8192; +const DT_END_ELLIPSIS = 32768; +const DT_PATH_ELLIPSIS = 16384; +const DT_WORD_ELLIPSIS = 0x40000; +const DT_EXPANDTABS = 64; +const DT_EXTERNALLEADING = 512; +const DT_LEFT = 0; +const DT_MODIFYSTRING = 65536; +const DT_NOCLIP = 256; +const DT_NOPREFIX = 2048; +const DT_RIGHT = 2; +const DT_RTLREADING = 131072; +const DT_SINGLELINE = 32; +const DT_TABSTOP = 128; +const DT_TOP = 0; +const DT_VCENTER = 4; +const DT_WORDBREAK = 16; +const DT_INTERNAL = 4096; + +const WB_ISDELIMITER = 2; +const WB_LEFT = 0; +const WB_RIGHT = 1; + +const SB_HORZ = 0; +const SB_VERT = 1; +const SB_CTL = 2; +const SB_BOTH = 3; + +const ESB_DISABLE_BOTH = 3; +const ESB_DISABLE_DOWN = 2; +const ESB_DISABLE_LEFT = 1; +const ESB_DISABLE_LTUP = 1; +const ESB_DISABLE_RIGHT = 2; +const ESB_DISABLE_RTDN = 2; +const ESB_DISABLE_UP = 1; +const ESB_ENABLE_BOTH = 0; + +const SB_LINEUP = 0; +const SB_LINEDOWN = 1; +const SB_LINELEFT = 0; +const SB_LINERIGHT = 1; +const SB_PAGEUP = 2; +const SB_PAGEDOWN = 3; +const SB_PAGELEFT = 2; +const SB_PAGERIGHT = 3; +const SB_THUMBPOSITION = 4; +const SB_THUMBTRACK = 5; +const SB_ENDSCROLL = 8; +const SB_LEFT = 6; +const SB_RIGHT = 7; +const SB_BOTTOM = 7; +const SB_TOP = 6; + +//MACRO #define IS_INTRESOURCE(i) (((ULONG_PTR)(i) >> 16) == 0) + +template MAKEINTRESOURCE_T (WORD i) +{ + const LPTSTR MAKEINTRESOURCE_T = cast(LPTSTR)(i); +} + +LPSTR MAKEINTRESOURCEA(WORD i) +{ + return cast(LPSTR)(i); +} + +LPWSTR MAKEINTRESOURCEW(WORD i) +{ + return cast(LPWSTR)(i); +} + +const RT_CURSOR = MAKEINTRESOURCE_T!(1); +const RT_BITMAP = MAKEINTRESOURCE_T!(2); +const RT_ICON = MAKEINTRESOURCE_T!(3); +const RT_MENU = MAKEINTRESOURCE_T!(4); +const RT_DIALOG = MAKEINTRESOURCE_T!(5); +const RT_STRING = MAKEINTRESOURCE_T!(6); +const RT_FONTDIR = MAKEINTRESOURCE_T!(7); +const RT_FONT = MAKEINTRESOURCE_T!(8); +const RT_ACCELERATOR = MAKEINTRESOURCE_T!(9); +const RT_RCDATA = MAKEINTRESOURCE_T!(10); +const RT_MESSAGETABLE = MAKEINTRESOURCE_T!(11); + +const RT_GROUP_CURSOR = MAKEINTRESOURCE_T!(12); +const RT_GROUP_ICON = MAKEINTRESOURCE_T!(14); +const RT_VERSION = MAKEINTRESOURCE_T!(16); +const RT_DLGINCLUDE = MAKEINTRESOURCE_T!(17); +const RT_PLUGPLAY = MAKEINTRESOURCE_T!(19); +const RT_VXD = MAKEINTRESOURCE_T!(20); +const RT_ANICURSOR = MAKEINTRESOURCE_T!(21); +const RT_ANIICON = MAKEINTRESOURCE_T!(22); +const RT_HTML = MAKEINTRESOURCE_T!(23); +const RT_MANIFEST = MAKEINTRESOURCE_T!(24); + +const CREATEPROCESS_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE_T!(1); +const ISOLATIONAWARE_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE_T!(2); +const ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE_T!(3); + +const EWX_LOGOFF = 0; +const EWX_SHUTDOWN = 1; +const EWX_REBOOT = 2; +const EWX_FORCE = 4; +const EWX_POWEROFF = 8; +static if (_WIN32_WINNT >= 0x500) { +const EWX_FORCEIFHUNG = 16; +} + +const CS_BYTEALIGNCLIENT = 4096; +const CS_BYTEALIGNWINDOW = 8192; +const CS_KEYCVTWINDOW = 4; +const CS_NOKEYCVT = 256; +const CS_CLASSDC = 64; +const CS_DBLCLKS = 8; +const CS_GLOBALCLASS = 16384; +const CS_HREDRAW = 2; +const CS_NOCLOSE = 512; +const CS_OWNDC = 32; +const CS_PARENTDC = 128; +const CS_SAVEBITS = 2048; +const CS_VREDRAW = 1; +const CS_IME = 0x10000; + +const GCW_ATOM = -32; +const GCL_CBCLSEXTRA = -20; +const GCL_CBWNDEXTRA = -18; +const GCL_HBRBACKGROUND = -10; +const GCL_HCURSOR = -12; +const GCL_HICON = -14; +const GCL_HICONSM = -34; +const GCL_HMODULE = -16; +const GCL_MENUNAME = -8; +const GCL_STYLE = -26; +const GCL_WNDPROC = -24; + +alias GCL_HICONSM GCLP_HICONSM; +alias GCL_HICON GCLP_HICON; +alias GCL_HCURSOR GCLP_HCURSOR; +alias GCL_HBRBACKGROUND GCLP_HBRBACKGROUND; +alias GCL_HMODULE GCLP_HMODULE; +alias GCL_MENUNAME GCLP_MENUNAME; +alias GCL_WNDPROC GCLP_WNDPROC; + +const IDC_ARROW = MAKEINTRESOURCE_T!(32512); +const IDC_IBEAM = MAKEINTRESOURCE_T!(32513); +const IDC_WAIT = MAKEINTRESOURCE_T!(32514); +const IDC_CROSS = MAKEINTRESOURCE_T!(32515); +const IDC_UPARROW = MAKEINTRESOURCE_T!(32516); +const IDC_SIZENWSE = MAKEINTRESOURCE_T!(32642); +const IDC_SIZENESW = MAKEINTRESOURCE_T!(32643); +const IDC_SIZEWE = MAKEINTRESOURCE_T!(32644); +const IDC_SIZENS = MAKEINTRESOURCE_T!(32645); +const IDC_SIZEALL = MAKEINTRESOURCE_T!(32646); +const IDC_NO = MAKEINTRESOURCE_T!(32648); +const IDC_HAND = MAKEINTRESOURCE_T!(32649); +const IDC_APPSTARTING = MAKEINTRESOURCE_T!(32650); +const IDC_HELP = MAKEINTRESOURCE_T!(32651); +const IDC_ICON = MAKEINTRESOURCE_T!(32641); +const IDC_SIZE = MAKEINTRESOURCE_T!(32640); +const IDI_APPLICATION = MAKEINTRESOURCE_T!(32512); +const IDI_HAND = MAKEINTRESOURCE_T!(32513); +const IDI_QUESTION = MAKEINTRESOURCE_T!(32514); +const IDI_EXCLAMATION = MAKEINTRESOURCE_T!(32515); +const IDI_ASTERISK = MAKEINTRESOURCE_T!(32516); +const IDI_WINLOGO = MAKEINTRESOURCE_T!(32517); +const IDI_WARNING = IDI_EXCLAMATION; +const IDI_ERROR = IDI_HAND; +const IDI_INFORMATION = IDI_ASTERISK; + +const MIIM_STATE = 1; +const MIIM_ID = 2; +const MIIM_SUBMENU = 4; +const MIIM_CHECKMARKS = 8; +const MIIM_TYPE = 16; +const MIIM_DATA = 32; +const MIIM_STRING = 64; +const MIIM_BITMAP = 128; +const MIIM_FTYPE = 256; + +static if (WINVER >= 0x500) { + +const MIM_MAXHEIGHT = 1; +const MIM_BACKGROUND = 2; +const MIM_HELPID = 4; +const MIM_MENUDATA = 8; +const MIM_STYLE = 16; +const MIM_APPLYTOSUBMENUS = 0x80000000L; + +const MNS_NOCHECK = 0x80000000; +const MNS_MODELESS = 0x40000000; +const MNS_DRAGDROP = 0x20000000; +const MNS_AUTODISMISS = 0x10000000; +const MNS_NOTIFYBYPOS = 0x08000000; +const MNS_CHECKORBMP = 0x04000000; + +} + +const MFT_BITMAP = 4; +const MFT_MENUBARBREAK = 32; +const MFT_MENUBREAK = 64; +const MFT_OWNERDRAW = 256; +const MFT_RADIOCHECK = 512; +const MFT_RIGHTJUSTIFY = 0x4000; +const MFT_SEPARATOR = 0x800; +const MFT_RIGHTORDER = 0x2000L; +const MFT_STRING = 0; + +const MFS_CHECKED = 8; +const MFS_DEFAULT = 4096; +const MFS_DISABLED = 3; +const MFS_ENABLED = 0; +const MFS_GRAYED = 3; +const MFS_HILITE = 128; +const MFS_UNCHECKED = 0; +const MFS_UNHILITE = 0; + +const GW_HWNDNEXT = 2; +const GW_HWNDPREV = 3; +const GW_CHILD = 5; +const GW_HWNDFIRST = 0; +const GW_HWNDLAST = 1; +const GW_OWNER = 4; + +const SW_HIDE = 0; +const SW_NORMAL = 1; +const SW_SHOWNORMAL = 1; +const SW_SHOWMINIMIZED = 2; +const SW_MAXIMIZE = 3; +const SW_SHOWMAXIMIZED = 3; +const SW_SHOWNOACTIVATE = 4; +const SW_SHOW = 5; +const SW_MINIMIZE = 6; +const SW_SHOWMINNOACTIVE = 7; +const SW_SHOWNA = 8; +const SW_RESTORE = 9; +const SW_SHOWDEFAULT = 10; +const SW_FORCEMINIMIZE = 11; +const SW_MAX = 11; + +const MB_USERICON = 128; +const MB_ICONASTERISK = 64; +const MB_ICONEXCLAMATION = 0x30; +const MB_ICONWARNING = 0x30; +const MB_ICONERROR = 16; +const MB_ICONHAND = 16; +const MB_ICONQUESTION = 32; +const MB_OK = 0; +const MB_ABORTRETRYIGNORE = 2; +const MB_APPLMODAL = 0; +const MB_DEFAULT_DESKTOP_ONLY = 0x20000; +const MB_HELP = 0x4000; +const MB_RIGHT = 0x80000; +const MB_RTLREADING = 0x100000; +const MB_TOPMOST = 0x40000; +const MB_DEFBUTTON1 = 0; +const MB_DEFBUTTON2 = 256; +const MB_DEFBUTTON3 = 512; +const MB_DEFBUTTON4 = 0x300; +const MB_ICONINFORMATION = 64; +const MB_ICONSTOP = 16; +const MB_OKCANCEL = 1; +const MB_RETRYCANCEL = 5; + +static if (_WIN32_WINNT_ONLY) { + static if (_WIN32_WINNT >= 0x400) { + const MB_SERVICE_NOTIFICATION = 0x00200000; + } else { + const MB_SERVICE_NOTIFICATION = 0x00040000; + } + const MB_SERVICE_NOTIFICATION_NT3X = 0x00040000; +} + +const MB_SETFOREGROUND = 0x10000; +const MB_SYSTEMMODAL = 4096; +const MB_TASKMODAL = 0x2000; +const MB_YESNO = 4; +const MB_YESNOCANCEL = 3; +const MB_ICONMASK = 240; +const MB_DEFMASK = 3840; +const MB_MODEMASK = 0x00003000; +const MB_MISCMASK = 0x0000C000; +const MB_NOFOCUS = 0x00008000; +const MB_TYPEMASK = 15; +// [Redefined] MB_TOPMOST=0x40000 +static if (WINVER >= 0x500) { + const MB_CANCELTRYCONTINUE=6; +} + +const IDOK = 1; +const IDCANCEL = 2; +const IDABORT = 3; +const IDRETRY = 4; +const IDIGNORE = 5; +const IDYES = 6; +const IDNO = 7; +static if (WINVER >= 0x400) { +const IDCLOSE = 8; +const IDHELP = 9; +} +static if (WINVER >= 0x500) { +const IDTRYAGAIN = 10; +const IDCONTINUE = 11; +} + +const GWL_EXSTYLE = -20; +const GWL_STYLE = -16; +const GWL_WNDPROC = -4; +const GWLP_WNDPROC = -4; +const GWL_HINSTANCE = -6; +const GWLP_HINSTANCE = -6; +const GWL_HWNDPARENT = -8; +const GWLP_HWNDPARENT = -8; +const GWL_ID = -12; +const GWLP_ID = -12; +const GWL_USERDATA = -21; +const GWLP_USERDATA = -21; + +const DWL_DLGPROC = 4; +const DWLP_DLGPROC = 4; +const DWL_MSGRESULT = 0; +const DWLP_MSGRESULT = 0; +const DWL_USER = 8; +const DWLP_USER = 8; + +const QS_KEY = 1; +const QS_MOUSEMOVE = 2; +const QS_MOUSEBUTTON = 4; +const QS_MOUSE = 6; +const QS_POSTMESSAGE = 8; +const QS_TIMER = 16; +const QS_PAINT = 32; +const QS_SENDMESSAGE = 64; +const QS_HOTKEY = 128; +const QS_ALLPOSTMESSAGE = 256; +static if (_WIN32_WINNT >= 0x501) { +const QS_RAWINPUT = 1024; +const QS_INPUT = 1031; +const QS_ALLEVENTS = 1215; +const QS_ALLINPUT = 1279; +} else { +const QS_INPUT = 7; +const QS_ALLEVENTS = 191; +const QS_ALLINPUT = 255; +} + +const MWMO_WAITALL = 1; +const MWMO_ALERTABLE = 2; +const MWMO_INPUTAVAILABLE = 4; + +const COLOR_3DDKSHADOW=21; +const COLOR_3DFACE=15; +const COLOR_3DHILIGHT=20; +const COLOR_3DHIGHLIGHT=20; +const COLOR_3DLIGHT=22; +const COLOR_BTNHILIGHT=20; +const COLOR_3DSHADOW=16; +const COLOR_ACTIVEBORDER=10; +const COLOR_ACTIVECAPTION=2; +const COLOR_APPWORKSPACE=12; +const COLOR_BACKGROUND=1; +const COLOR_DESKTOP=1; +const COLOR_BTNFACE=15; +const COLOR_BTNHIGHLIGHT=20; +const COLOR_BTNSHADOW=16; +const COLOR_BTNTEXT=18; +const COLOR_CAPTIONTEXT=9; +const COLOR_GRAYTEXT=17; +const COLOR_HIGHLIGHT=13; +const COLOR_HIGHLIGHTTEXT=14; +const COLOR_INACTIVEBORDER=11; +const COLOR_INACTIVECAPTION=3; +const COLOR_INACTIVECAPTIONTEXT=19; +const COLOR_INFOBK=24; +const COLOR_INFOTEXT=23; +const COLOR_MENU=4; +const COLOR_MENUTEXT=7; +const COLOR_SCROLLBAR=0; +const COLOR_WINDOW=5; +const COLOR_WINDOWFRAME=6; +const COLOR_WINDOWTEXT=8; +const COLOR_HOTLIGHT=26; +const COLOR_GRADIENTACTIVECAPTION=27; +const COLOR_GRADIENTINACTIVECAPTION=28; + +const CTLCOLOR_MSGBOX=0; +const CTLCOLOR_EDIT=1; +const CTLCOLOR_LISTBOX=2; +const CTLCOLOR_BTN=3; +const CTLCOLOR_DLG=4; +const CTLCOLOR_SCROLLBAR=5; +const CTLCOLOR_STATIC=6; +const CTLCOLOR_MAX=7; + +// For GetSystemMetrics() +enum : int { + SM_CXSCREEN = 0, + SM_CYSCREEN, + SM_CXVSCROLL, + SM_CYHSCROLL, + SM_CYCAPTION, + SM_CXBORDER, + SM_CYBORDER, + SM_CXDLGFRAME, // = 7, + SM_CXFIXEDFRAME = SM_CXDLGFRAME, + SM_CYDLGFRAME, // =8, + SM_CYFIXEDFRAME = SM_CYDLGFRAME, + SM_CYVTHUMB = 9, + SM_CXHTHUMB, + SM_CXICON, + SM_CYICON, + SM_CXCURSOR, + SM_CYCURSOR, + SM_CYMENU, + SM_CXFULLSCREEN, + SM_CYFULLSCREEN, + SM_CYKANJIWINDOW, + SM_MOUSEPRESENT, + SM_CYVSCROLL, + SM_CXHSCROLL, + SM_DEBUG, + SM_SWAPBUTTON, + SM_RESERVED1, + SM_RESERVED2, + SM_RESERVED3, + SM_RESERVED4, + SM_CXMIN, + SM_CYMIN, + SM_CXSIZE, + SM_CYSIZE, + SM_CXSIZEFRAME, // = 32, + SM_CXFRAME = SM_CXSIZEFRAME, + SM_CYSIZEFRAME, // = 33 + SM_CYFRAME = SM_CYSIZEFRAME, + SM_CXMINTRACK, + SM_CYMINTRACK, + SM_CXDOUBLECLK, + SM_CYDOUBLECLK, + SM_CXICONSPACING, + SM_CYICONSPACING, + SM_MENUDROPALIGNMENT, + SM_PENWINDOWS, + SM_DBCSENABLED, + SM_CMOUSEBUTTONS, + SM_SECURE, + SM_CXEDGE, + SM_CYEDGE, + SM_CXMINSPACING, + SM_CYMINSPACING, + SM_CXSMICON, + SM_CYSMICON, + SM_CYSMCAPTION, + SM_CXSMSIZE, + SM_CYSMSIZE, + SM_CXMENUSIZE, + SM_CYMENUSIZE, + SM_ARRANGE, + SM_CXMINIMIZED, + SM_CYMINIMIZED, + SM_CXMAXTRACK, + SM_CYMAXTRACK, + SM_CXMAXIMIZED, + SM_CYMAXIMIZED, + SM_NETWORK, // = 63 + SM_CLEANBOOT = 67, + SM_CXDRAG, + SM_CYDRAG, + SM_SHOWSOUNDS, + SM_CXMENUCHECK, + SM_CYMENUCHECK, + SM_SLOWMACHINE, + SM_MIDEASTENABLED, + // The next values aren't supported in Win95. + SM_MOUSEWHEELPRESENT, + SM_XVIRTUALSCREEN, + SM_YVIRTUALSCREEN, + SM_CXVIRTUALSCREEN, + SM_CYVIRTUALSCREEN, + SM_CMONITORS, + SM_SAMEDISPLAYFORMAT, + SM_IMMENABLED, + SM_CXFOCUSBORDER, + SM_CYFOCUSBORDER, // = 84 + SM_TABLETPC = 86, + SM_MEDIACENTER = 87, + SM_REMOTESESSION = 0x1000, + // These are only for WinXP and later + SM_SHUTTINGDOWN = 0x2000, + SM_REMOTECONTROL = 0x2001 +} + +const ARW_BOTTOMLEFT=0; +const ARW_BOTTOMRIGHT=1; +const ARW_HIDE=8; +const ARW_TOPLEFT=2; +const ARW_TOPRIGHT=3; +const ARW_DOWN=4; +const ARW_LEFT=0; +const ARW_RIGHT=0; +const ARW_UP=4; + +const UOI_FLAGS=1; +const UOI_NAME=2; +const UOI_TYPE=3; +const UOI_USER_SID=4; + +// For the fuLoad parameter of LoadImage() +enum : UINT { + LR_DEFAULTCOLOR = 0, + LR_MONOCHROME = 1, + LR_COLOR = 2, + LR_COPYRETURNORG = 4, + LR_COPYDELETEORG = 8, + LR_LOADFROMFILE = 16, + LR_LOADTRANSPARENT = 32, + LR_DEFAULTSIZE = 64, + LR_LOADREALSIZE = 128, + LR_LOADMAP3DCOLORS = 4096, + LR_CREATEDIBSECTION = 8192, + LR_COPYFROMRESOURCE = 16384, + LR_SHARED = 32768 +} + +const KEYEVENTF_EXTENDEDKEY = 0x00000001; +const KEYEVENTF_KEYUP = 00000002; +static if (_WIN32_WINNT >= 0x500) { +const KEYEVENTF_UNICODE = 0x00000004; +const KEYEVENTF_SCANCODE = 0x00000008; +} + +const OBM_BTNCORNERS = 32758; +const OBM_BTSIZE = 32761; +const OBM_CHECK = 32760; +const OBM_CHECKBOXES = 32759; +const OBM_CLOSE = 32754; +const OBM_COMBO = 32738; +const OBM_DNARROW = 32752; +const OBM_DNARROWD = 32742; +const OBM_DNARROWI = 32736; +const OBM_LFARROW = 32750; +const OBM_LFARROWI = 32734; +const OBM_LFARROWD = 32740; +const OBM_MNARROW = 32739; +const OBM_OLD_CLOSE = 32767; +const OBM_OLD_DNARROW = 32764; +const OBM_OLD_LFARROW = 32762; +const OBM_OLD_REDUCE = 32757; +const OBM_OLD_RESTORE = 32755; +const OBM_OLD_RGARROW = 32763; +const OBM_OLD_UPARROW = 32765; +const OBM_OLD_ZOOM = 32756; +const OBM_REDUCE = 32749; +const OBM_REDUCED = 32746; +const OBM_RESTORE = 32747; +const OBM_RESTORED = 32744; +const OBM_RGARROW = 32751; +const OBM_RGARROWD = 32741; +const OBM_RGARROWI = 32735; +const OBM_SIZE = 32766; +const OBM_UPARROW = 32753; +const OBM_UPARROWD = 32743; +const OBM_UPARROWI = 32737; +const OBM_ZOOM = 32748; +const OBM_ZOOMD = 32745; + +const OCR_NORMAL = 32512; +const OCR_IBEAM = 32513; +const OCR_WAIT = 32514; +const OCR_CROSS = 32515; +const OCR_UP = 32516; +const OCR_SIZE = 32640; +const OCR_ICON = 32641; +const OCR_SIZENWSE = 32642; +const OCR_SIZENESW = 32643; +const OCR_SIZEWE = 32644; +const OCR_SIZENS = 32645; +const OCR_SIZEALL = 32646; +const OCR_NO = 32648; +const OCR_APPSTARTING = 32650; + +const OIC_SAMPLE = 32512; +const OIC_HAND = 32513; +const OIC_QUES = 32514; +const OIC_BANG = 32515; +const OIC_NOTE = 32516; +const OIC_WINLOGO = 32517; +const OIC_WARNING = OIC_BANG; +const OIC_ERROR = OIC_HAND; +const OIC_INFORMATION = OIC_NOTE; + +const HELPINFO_MENUITEM = 2; +const HELPINFO_WINDOW = 1; + +const MSGF_DIALOGBOX = 0; +const MSGF_MESSAGEBOX = 1; +const MSGF_MENU = 2; +const MSGF_MOVE = 3; +const MSGF_SIZE = 4; +const MSGF_SCROLLBAR = 5; +const MSGF_NEXTWINDOW = 6; +const MSGF_MAINLOOP = 8; +const MSGF_USER = 4096; + +const MOUSEEVENTF_MOVE = 1; +const MOUSEEVENTF_LEFTDOWN = 2; +const MOUSEEVENTF_LEFTUP = 4; +const MOUSEEVENTF_RIGHTDOWN = 8; +const MOUSEEVENTF_RIGHTUP = 16; +const MOUSEEVENTF_MIDDLEDOWN = 32; +const MOUSEEVENTF_MIDDLEUP = 64; +const MOUSEEVENTF_WHEEL = 0x0800; +const MOUSEEVENTF_ABSOLUTE = 32768; + +const PM_NOREMOVE = 0; +const PM_REMOVE = 1; +const PM_NOYIELD = 2; + +static if (WINVER >= 0x500) { +const PM_QS_INPUT = (QS_INPUT << 16); +const PM_QS_POSTMESSAGE = ((QS_POSTMESSAGE|QS_HOTKEY|QS_TIMER) << 16); +const PM_QS_PAINT = (QS_PAINT << 16); +const PM_QS_SENDMESSAGE = (QS_SENDMESSAGE << 16); +} +const HWND + HWND_BROADCAST = cast(HWND)0xffff, + HWND_BOTTOM = cast(HWND)1, + HWND_NOTOPMOST = cast(HWND)(-2), + HWND_TOP = cast(HWND)0, + HWND_TOPMOST = cast(HWND)(-1), + HWND_DESKTOP = cast(HWND)0, + HWND_MESSAGE = cast(HWND)(-3);// w2k + +const RDW_INVALIDATE = 1; +const RDW_INTERNALPAINT = 2; +const RDW_ERASE = 4; +const RDW_VALIDATE = 8; +const RDW_NOINTERNALPAINT = 16; +const RDW_NOERASE = 32; +const RDW_NOCHILDREN = 64; +const RDW_ALLCHILDREN = 128; +const RDW_UPDATENOW = 256; +const RDW_ERASENOW = 512; +const RDW_FRAME = 1024; +const RDW_NOFRAME = 2048; + +const SMTO_NORMAL = 0; +const SMTO_BLOCK = 1; +const SMTO_ABORTIFHUNG = 2; + +const SIF_ALL = 23; +const SIF_PAGE = 2; +const SIF_POS = 4; +const SIF_RANGE = 1; +const SIF_DISABLENOSCROLL = 8; +const SIF_TRACKPOS = 16; + +const SWP_DRAWFRAME = 32; +const SWP_FRAMECHANGED = 32; +const SWP_HIDEWINDOW = 128; +const SWP_NOACTIVATE = 16; +const SWP_NOCOPYBITS = 256; +const SWP_NOMOVE = 2; +const SWP_NOSIZE = 1; +const SWP_NOREDRAW = 8; +const SWP_NOZORDER = 4; +const SWP_SHOWWINDOW = 64; +const SWP_NOOWNERZORDER = 512; +const SWP_NOREPOSITION = 512; +const SWP_NOSENDCHANGING = 1024; +const SWP_DEFERERASE = 8192; +const SWP_ASYNCWINDOWPOS = 16384; + +const HSHELL_ACTIVATESHELLWINDOW = 3; +const HSHELL_GETMINRECT = 5; +const HSHELL_LANGUAGE = 8; +const HSHELL_REDRAW = 6; +const HSHELL_TASKMAN = 7; +const HSHELL_WINDOWACTIVATED = 4; +const HSHELL_WINDOWCREATED = 1; +const HSHELL_WINDOWDESTROYED = 2; +const HSHELL_FLASH = 32774; + +static if (WINVER >= 0x500) { +const SPI_SETFOREGROUNDLOCKTIMEOUT=0x2001; +const SPI_GETFOREGROUNDLOCKTIMEOUT=0x2000; +} + +const SPI_GETACCESSTIMEOUT=60; +const SPI_GETACTIVEWNDTRKTIMEOUT=8194; +const SPI_GETANIMATION=72; +const SPI_GETBEEP=1; +const SPI_GETBORDER=5; +const SPI_GETDEFAULTINPUTLANG=89; +const SPI_GETDRAGFULLWINDOWS=38; +const SPI_GETFASTTASKSWITCH=35; +const SPI_GETFILTERKEYS=50; +const SPI_GETFONTSMOOTHING=74; +const SPI_GETGRIDGRANULARITY=18; +const SPI_GETHIGHCONTRAST=66; +const SPI_GETICONMETRICS=45; +const SPI_GETICONTITLELOGFONT=31; +const SPI_GETICONTITLEWRAP=25; +const SPI_GETKEYBOARDDELAY=22; +const SPI_GETKEYBOARDPREF=68; +const SPI_GETKEYBOARDSPEED=10; +const SPI_GETLOWPOWERACTIVE=83; +const SPI_GETLOWPOWERTIMEOUT=79; +const SPI_GETMENUDROPALIGNMENT=27; +const SPI_GETMINIMIZEDMETRICS=43; +const SPI_GETMOUSE=3; +const SPI_GETMOUSEKEYS=54; +const SPI_GETMOUSETRAILS=94; +const SPI_GETNONCLIENTMETRICS=41; +const SPI_GETPOWEROFFACTIVE=84; +const SPI_GETPOWEROFFTIMEOUT=80; +const SPI_GETSCREENREADER=70; +const SPI_GETSCREENSAVEACTIVE=16; +const SPI_GETSCREENSAVETIMEOUT=14; +const SPI_GETSERIALKEYS=62; +const SPI_GETSHOWSOUNDS=56; +const SPI_GETSOUNDSENTRY=64; +const SPI_GETSTICKYKEYS=58; +const SPI_GETTOGGLEKEYS=52; +const SPI_GETWHEELSCROLLLINES=104; +const SPI_GETWINDOWSEXTENSION=92; +const SPI_GETWORKAREA=48; +const SPI_ICONHORIZONTALSPACING=13; +const SPI_ICONVERTICALSPACING=24; +const SPI_LANGDRIVER=12; +const SPI_SCREENSAVERRUNNING=97; +const SPI_SETACCESSTIMEOUT=61; +const SPI_SETACTIVEWNDTRKTIMEOUT=8195; +const SPI_SETANIMATION=73; +const SPI_SETBEEP=2; +const SPI_SETBORDER=6; +const SPI_SETDEFAULTINPUTLANG=90; +const SPI_SETDESKPATTERN=21; +const SPI_SETDESKWALLPAPER=20; +const SPI_SETDOUBLECLICKTIME=32; +const SPI_SETDOUBLECLKHEIGHT=30; +const SPI_SETDOUBLECLKWIDTH=29; +const SPI_SETDRAGFULLWINDOWS=37; +const SPI_SETDRAGHEIGHT=77; +const SPI_SETDRAGWIDTH=76; +const SPI_SETFASTTASKSWITCH=36; +const SPI_SETFILTERKEYS=51; +const SPI_SETFONTSMOOTHING=75; +const SPI_SETGRIDGRANULARITY=19; +const SPI_SETHANDHELD=78; +const SPI_SETHIGHCONTRAST=67; +const SPI_SETICONMETRICS=46; +const SPI_SETICONTITLELOGFONT=34; +const SPI_SETICONTITLEWRAP=26; +const SPI_SETKEYBOARDDELAY=23; +const SPI_SETKEYBOARDPREF=69; +const SPI_SETKEYBOARDSPEED=11; +const SPI_SETLANGTOGGLE=91; +const SPI_SETLOWPOWERACTIVE=85; +const SPI_SETLOWPOWERTIMEOUT=81; +const SPI_SETMENUDROPALIGNMENT=28; +const SPI_SETMINIMIZEDMETRICS=44; +const SPI_SETMOUSE=4; +const SPI_SETMOUSEBUTTONSWAP=33; +const SPI_SETMOUSEKEYS=55; +const SPI_SETMOUSETRAILS=93; +const SPI_SETNONCLIENTMETRICS=42; +const SPI_SETPENWINDOWS=49; +const SPI_SETPOWEROFFACTIVE=86; +const SPI_SETPOWEROFFTIMEOUT=82; +const SPI_SETSCREENREADER=71; +const SPI_SETSCREENSAVEACTIVE=17; +const SPI_SETSCREENSAVERRUNNING=97; +const SPI_SETSCREENSAVETIMEOUT=15; +const SPI_SETSERIALKEYS=63; +const SPI_SETSHOWSOUNDS=57; +const SPI_SETSOUNDSENTRY=65; +const SPI_SETSTICKYKEYS=59; +const SPI_SETTOGGLEKEYS=53; +const SPI_SETWHEELSCROLLLINES=105; +const SPI_SETWORKAREA=47; + +static if (WINVER >= 0x500) { +const SPI_GETDESKWALLPAPER=115; +const SPI_GETMOUSESPEED=112; +const SPI_GETSCREENSAVERRUNNING=114; +const SPI_GETACTIVEWINDOWTRACKING=0x1000; +const SPI_GETACTIVEWNDTRKZORDER=0x100C; +const SPI_GETCOMBOBOXANIMATION=0x1004; +const SPI_GETCURSORSHADOW=0x101A; +const SPI_GETGRADIENTCAPTIONS=0x1008; +const SPI_GETHOTTRACKING=0x100E; +const SPI_GETKEYBOARDCUES=0x100A; +const SPI_GETLISTBOXSMOOTHSCROLLING=0x1006; +const SPI_GETMENUANIMATION=0x1002; +const SPI_GETMENUFADE=0x1012; +const SPI_GETMENUUNDERLINES=0x100A; +const SPI_GETSELECTIONFADE=0x1014; +const SPI_GETTOOLTIPANIMATION=0x1016; +const SPI_GETTOOLTIPFADE=0x1018; +const SPI_SETACTIVEWINDOWTRACKING=0x1001; +const SPI_SETACTIVEWNDTRKZORDER=0x100D; +const SPI_SETCOMBOBOXANIMATION=0x1005; +const SPI_SETCURSORSHADOW=0x101B; +const SPI_SETGRADIENTCAPTIONS=0x1009; +const SPI_SETHOTTRACKING=0x100F; +const SPI_SETKEYBOARDCUES=0x100B; +const SPI_SETLISTBOXSMOOTHSCROLLING=0x1007; +const SPI_SETMENUANIMATION=0x1003; +const SPI_SETMENUFADE=0x1013; +const SPI_SETMENUUNDERLINES=0x100B; +const SPI_SETMOUSESPEED=113; +const SPI_SETSELECTIONFADE=0x1015; +const SPI_SETTOOLTIPANIMATION=0x1017; +const SPI_SETTOOLTIPFADE=0x1019; +} + +const SPIF_UPDATEINIFILE=1; +const SPIF_SENDWININICHANGE=2; +const SPIF_SENDCHANGE=2; +// [Redefined] ATF_ONOFFFEEDBACK=2 +// [Redefined] ATF_TIMEOUTON=1 +const WM_APP=32768; +const WM_ACTIVATE=6; +const WM_ACTIVATEAPP=28; +// FIXME/CHECK: Are WM_AFX {FIRST, LAST} valid for WINVER < 0x400? +const WM_AFXFIRST=864; +const WM_AFXLAST=895; +const WM_ASKCBFORMATNAME=780; +const WM_CANCELJOURNAL=75; +const WM_CANCELMODE=31; +const WM_CAPTURECHANGED=533; +const WM_CHANGECBCHAIN=781; +const WM_CHAR=258; +const WM_CHARTOITEM=47; +const WM_CHILDACTIVATE=34; +const WM_CLEAR=771; +const WM_CLOSE=16; +const WM_COMMAND=273; +const WM_COMMNOTIFY=68; // obsolete +const WM_COMPACTING=65; +const WM_COMPAREITEM=57; +const WM_CONTEXTMENU=123; +const WM_COPY=769; +const WM_COPYDATA=74; +const WM_CREATE=1; +const WM_CTLCOLORBTN=309; +const WM_CTLCOLORDLG=310; +const WM_CTLCOLOREDIT=307; +const WM_CTLCOLORLISTBOX=308; +const WM_CTLCOLORMSGBOX=306; +const WM_CTLCOLORSCROLLBAR=311; +const WM_CTLCOLORSTATIC=312; +const WM_CUT=768; +const WM_DEADCHAR=259; +const WM_DELETEITEM=45; +const WM_DESTROY=2; +const WM_DESTROYCLIPBOARD=775; +const WM_DEVICECHANGE=537; +const WM_DEVMODECHANGE=27; +const WM_DISPLAYCHANGE=126; +const WM_DRAWCLIPBOARD=776; +const WM_DRAWITEM=43; +const WM_DROPFILES=563; +const WM_ENABLE=10; +const WM_ENDSESSION=22; +const WM_ENTERIDLE=289; +const WM_ENTERMENULOOP=529; +const WM_ENTERSIZEMOVE=561; +const WM_ERASEBKGND=20; +const WM_EXITMENULOOP=530; +const WM_EXITSIZEMOVE=562; +const WM_FONTCHANGE=29; +const WM_GETDLGCODE=135; +const WM_GETFONT=49; +const WM_GETHOTKEY=51; +const WM_GETICON=127; +const WM_GETMINMAXINFO=36; +const WM_GETTEXT=13; +const WM_GETTEXTLENGTH=14; +const WM_HANDHELDFIRST=856; +const WM_HANDHELDLAST=863; +const WM_HELP=83; +const WM_HOTKEY=786; +const WM_HSCROLL=276; +const WM_HSCROLLCLIPBOARD=782; +const WM_ICONERASEBKGND=39; +const WM_INITDIALOG=272; +const WM_INITMENU=278; +const WM_INITMENUPOPUP=279; +const WM_INPUTLANGCHANGE=81; +const WM_INPUTLANGCHANGEREQUEST=80; +const WM_KEYDOWN=256; +const WM_KEYUP=257; +const WM_KILLFOCUS=8; +const WM_MDIACTIVATE=546; +const WM_MDICASCADE=551; +const WM_MDICREATE=544; +const WM_MDIDESTROY=545; +const WM_MDIGETACTIVE=553; +const WM_MDIICONARRANGE=552; +const WM_MDIMAXIMIZE=549; +const WM_MDINEXT=548; +const WM_MDIREFRESHMENU=564; +const WM_MDIRESTORE=547; +const WM_MDISETMENU=560; +const WM_MDITILE=550; +const WM_MEASUREITEM=44; +static if (WINVER >= 0x500) { +const WM_UNINITMENUPOPUP=0x0125; +const WM_MENURBUTTONUP=290; +const WM_MENUCOMMAND=0x0126; +const WM_MENUGETOBJECT=0x0124; +const WM_MENUDRAG=0x0123; +} + +static if (_WIN32_WINNT >= 0x500) { + + enum { + WM_CHANGEUISTATE = 0x0127, + WM_UPDATEUISTATE = 0x0128, + WM_QUERYUISTATE = 0x0129 + } + + // LOWORD(wParam) values in WM_*UISTATE* + enum { + UIS_SET = 1, + UIS_CLEAR = 2, + UIS_INITIALIZE = 3 + } + + // HIWORD(wParam) values in WM_*UISTATE* + enum { + UISF_HIDEFOCUS = 0x1, + UISF_HIDEACCEL = 0x2 + } + +} + +static if (_WIN32_WINNT >= 0x501) { + + // HIWORD(wParam) values in WM_*UISTATE* + enum { + UISF_ACTIVE = 0x4 + } + +} + +const WM_MENUCHAR=288; +const WM_MENUSELECT=287; +const WM_MOVE=3; +const WM_MOVING=534; +const WM_NCACTIVATE=134; +const WM_NCCALCSIZE=131; +const WM_NCCREATE=129; +const WM_NCDESTROY=130; +const WM_NCHITTEST=132; +const WM_NCLBUTTONDBLCLK=163; +const WM_NCLBUTTONDOWN=161; +const WM_NCLBUTTONUP=162; +const WM_NCMBUTTONDBLCLK=169; +const WM_NCMBUTTONDOWN=167; +const WM_NCMBUTTONUP=168; +static if (_WIN32_WINNT >= 0x500) { +const WM_NCXBUTTONDOWN=171; +const WM_NCXBUTTONUP=172; +const WM_NCXBUTTONDBLCLK=173; +const WM_NCMOUSEHOVER=0x02A0; +const WM_NCMOUSELEAVE=0x02A2; +} +const WM_NCMOUSEMOVE=160; +const WM_NCPAINT=133; +const WM_NCRBUTTONDBLCLK=166; +const WM_NCRBUTTONDOWN=164; +const WM_NCRBUTTONUP=165; +const WM_NEXTDLGCTL=40; +const WM_NEXTMENU=531; +const WM_NOTIFY=78; +const WM_NOTIFYFORMAT=85; +const WM_NULL=0; +const WM_PAINT=15; +const WM_PAINTCLIPBOARD=777; +const WM_PAINTICON=38; +const WM_PALETTECHANGED=785; +const WM_PALETTEISCHANGING=784; +const WM_PARENTNOTIFY=528; +const WM_PASTE=770; +const WM_PENWINFIRST=896; +const WM_PENWINLAST=911; +const WM_POWER=72; +const WM_POWERBROADCAST=536; +const WM_PRINT=791; +const WM_PRINTCLIENT=792; +const WM_APPCOMMAND = 0x0319; +const WM_QUERYDRAGICON=55; +const WM_QUERYENDSESSION=17; +const WM_QUERYNEWPALETTE=783; +const WM_QUERYOPEN=19; +const WM_QUEUESYNC=35; +const WM_QUIT=18; +const WM_RENDERALLFORMATS=774; +const WM_RENDERFORMAT=773; +const WM_SETCURSOR=32; +const WM_SETFOCUS=7; +const WM_SETFONT=48; +const WM_SETHOTKEY=50; +const WM_SETICON=128; +const WM_SETREDRAW=11; +const WM_SETTEXT=12; +const WM_SETTINGCHANGE=26; +const WM_SHOWWINDOW=24; +const WM_SIZE=5; +const WM_SIZECLIPBOARD=779; +const WM_SIZING=532; +const WM_SPOOLERSTATUS=42; +const WM_STYLECHANGED=125; +const WM_STYLECHANGING=124; +const WM_SYSCHAR=262; +const WM_SYSCOLORCHANGE=21; +const WM_SYSCOMMAND=274; +const WM_SYSDEADCHAR=263; +const WM_SYSKEYDOWN=260; +const WM_SYSKEYUP=261; +const WM_TCARD=82; +const WM_THEMECHANGED=794; +const WM_TIMECHANGE=30; +const WM_TIMER=275; +const WM_UNDO=772; +const WM_USER=1024; +const WM_USERCHANGED=84; +const WM_VKEYTOITEM=46; +const WM_VSCROLL=277; +const WM_VSCROLLCLIPBOARD=778; +const WM_WINDOWPOSCHANGED=71; +const WM_WINDOWPOSCHANGING=70; +const WM_WININICHANGE=26; +const WM_INPUT=255; +const WM_KEYFIRST=256; +const WM_KEYLAST=264; +const WM_SYNCPAINT=136; +const WM_MOUSEACTIVATE=33; +const WM_MOUSEMOVE=512; +const WM_LBUTTONDOWN=513; +const WM_LBUTTONUP=514; +const WM_LBUTTONDBLCLK=515; +const WM_RBUTTONDOWN=516; +const WM_RBUTTONUP=517; +const WM_RBUTTONDBLCLK=518; +const WM_MBUTTONDOWN=519; +const WM_MBUTTONUP=520; +const WM_MBUTTONDBLCLK=521; +const WM_MOUSEWHEEL=522; +const WM_MOUSEFIRST=512; +static if (_WIN32_WINNT >= 0x500) { +const WM_XBUTTONDOWN=523; +const WM_XBUTTONUP=524; +const WM_XBUTTONDBLCLK=525; +const WM_MOUSELAST=525; +} else { +const WM_MOUSELAST=522; +} +const WM_MOUSEHOVER=0x2A1; +const WM_MOUSELEAVE=0x2A3; +static if (_WIN32_WINNT >= 0x400) { +const WHEEL_DELTA=120; + +SHORT GET_WHEEL_DELTA_WPARAM(WPARAM wparam) +{ +return cast(SHORT) HIWORD(wparam); +} + +const WHEEL_PAGESCROLL = uint.max; +} +const BM_CLICK=245; +const BM_GETCHECK=240; +const BM_GETIMAGE=246; +const BM_GETSTATE=242; +const BM_SETCHECK=241; +const BM_SETIMAGE=247; +const BM_SETSTATE=243; +const BM_SETSTYLE=244; +const BN_CLICKED=0; +const BN_DBLCLK=5; +const BN_DISABLE=4; +const BN_DOUBLECLICKED=5; +const BN_HILITE=2; +const BN_KILLFOCUS=7; +const BN_PAINT=1; +const BN_PUSHED=2; +const BN_SETFOCUS=6; +const BN_UNHILITE=3; +const BN_UNPUSHED=3; +const CB_ADDSTRING=323; +const CB_DELETESTRING=324; +const CB_DIR=325; +const CB_FINDSTRING=332; +const CB_FINDSTRINGEXACT=344; +const CB_GETCOUNT=326; +const CB_GETCURSEL=327; +const CB_GETDROPPEDCONTROLRECT=338; +const CB_GETDROPPEDSTATE=343; +const CB_GETDROPPEDWIDTH=351; +const CB_GETEDITSEL=320; +const CB_GETEXTENDEDUI=342; +const CB_GETHORIZONTALEXTENT=349; +const CB_GETITEMDATA=336; +const CB_GETITEMHEIGHT=340; +const CB_GETLBTEXT=328; +const CB_GETLBTEXTLEN=329; +const CB_GETLOCALE=346; +const CB_GETTOPINDEX=347; +const CB_INITSTORAGE=353; +const CB_INSERTSTRING=330; +const CB_LIMITTEXT=321; +const CB_RESETCONTENT=331; +const CB_SELECTSTRING=333; +const CB_SETCURSEL=334; +const CB_SETDROPPEDWIDTH=352; +const CB_SETEDITSEL=322; +const CB_SETEXTENDEDUI=341; +const CB_SETHORIZONTALEXTENT=350; +const CB_SETITEMDATA=337; +const CB_SETITEMHEIGHT=339; +const CB_SETLOCALE=345; +const CB_SETTOPINDEX=348; +const CB_SHOWDROPDOWN=335; + +const CBN_CLOSEUP=8; +const CBN_DBLCLK=2; +const CBN_DROPDOWN=7; +const CBN_EDITCHANGE=5; +const CBN_EDITUPDATE=6; +const CBN_ERRSPACE=(-1); +const CBN_KILLFOCUS=4; +const CBN_SELCHANGE=1; +const CBN_SELENDCANCEL=10; +const CBN_SELENDOK=9; +const CBN_SETFOCUS=3; + +const EM_CANUNDO=198; +const EM_CHARFROMPOS=215; +const EM_EMPTYUNDOBUFFER=205; +const EM_FMTLINES=200; +const EM_GETFIRSTVISIBLELINE=206; +const EM_GETHANDLE=189; +const EM_GETLIMITTEXT=213; +const EM_GETLINE=196; +const EM_GETLINECOUNT=186; +const EM_GETMARGINS=212; +const EM_GETMODIFY=184; +const EM_GETPASSWORDCHAR=210; +const EM_GETRECT=178; +const EM_GETSEL=176; +const EM_GETTHUMB=190; +const EM_GETWORDBREAKPROC=209; +const EM_LIMITTEXT=197; +const EM_LINEFROMCHAR=201; +const EM_LINEINDEX=187; +const EM_LINELENGTH=193; +const EM_LINESCROLL=182; +const EM_POSFROMCHAR=214; +const EM_REPLACESEL=194; +const EM_SCROLL=181; +const EM_SCROLLCARET=183; +const EM_SETHANDLE=188; +const EM_SETLIMITTEXT=197; +const EM_SETMARGINS=211; +const EM_SETMODIFY=185; +const EM_SETPASSWORDCHAR=204; +const EM_SETREADONLY=207; +const EM_SETRECT=179; +const EM_SETRECTNP=180; +const EM_SETSEL=177; +const EM_SETTABSTOPS=203; +const EM_SETWORDBREAKPROC=208; +const EM_UNDO=199; + +const EN_CHANGE=768; +const EN_ERRSPACE=1280; +const EN_HSCROLL=1537; +const EN_KILLFOCUS=512; +const EN_MAXTEXT=1281; +const EN_SETFOCUS=256; +const EN_UPDATE=1024; +const EN_VSCROLL=1538; + +const LB_ADDFILE=406; +const LB_ADDSTRING=384; +const LB_DELETESTRING=386; +const LB_DIR=397; +const LB_FINDSTRING=399; +const LB_FINDSTRINGEXACT=418; +const LB_GETANCHORINDEX=413; +const LB_GETCARETINDEX=415; +const LB_GETCOUNT=395; +const LB_GETCURSEL=392; +const LB_GETHORIZONTALEXTENT=403; +const LB_GETITEMDATA=409; +const LB_GETITEMHEIGHT=417; +const LB_GETITEMRECT=408; +const LB_GETLOCALE=422; +const LB_GETSEL=391; +const LB_GETSELCOUNT=400; +const LB_GETSELITEMS=401; +const LB_GETTEXT=393; +const LB_GETTEXTLEN=394; +const LB_GETTOPINDEX=398; +const LB_INITSTORAGE=424; +const LB_INSERTSTRING=385; +const LB_ITEMFROMPOINT=425; +const LB_RESETCONTENT=388; +const LB_SELECTSTRING=396; +const LB_SELITEMRANGE=411; +const LB_SELITEMRANGEEX=387; +const LB_SETANCHORINDEX=412; +const LB_SETCARETINDEX=414; +const LB_SETCOLUMNWIDTH=405; +const LB_SETCOUNT=423; +const LB_SETCURSEL=390; +const LB_SETHORIZONTALEXTENT=404; +const LB_SETITEMDATA=410; +const LB_SETITEMHEIGHT=416; +const LB_SETLOCALE=421; +const LB_SETSEL=389; +const LB_SETTABSTOPS=402; +const LB_SETTOPINDEX=407; + +const LBN_DBLCLK=2; +const LBN_ERRSPACE=-2; +const LBN_KILLFOCUS=5; +const LBN_SELCANCEL=3; +const LBN_SELCHANGE=1; +const LBN_SETFOCUS=4; + +const SBM_ENABLE_ARROWS=228; +const SBM_GETPOS=225; +const SBM_GETRANGE=227; +const SBM_GETSCROLLINFO=234; +const SBM_SETPOS=224; +const SBM_SETRANGE=226; +const SBM_SETRANGEREDRAW=230; +const SBM_SETSCROLLINFO=233; +const STM_GETICON=369; +const STM_GETIMAGE=371; +const STM_SETICON=368; +const STM_SETIMAGE=370; +const STN_CLICKED=0; +const STN_DBLCLK=1; +const STN_DISABLE=3; +const STN_ENABLE=2; + +const DM_GETDEFID = WM_USER; +const DM_SETDEFID = WM_USER+1; +const DM_REPOSITION = WM_USER+2; + +const PSM_PAGEINFO = WM_USER+100; +const PSM_SHEETINFO = WM_USER+101; + +const PSI_SETACTIVE=1; +const PSI_KILLACTIVE=2; +const PSI_APPLY=3; +const PSI_RESET=4; +const PSI_HASHELP=5; +const PSI_HELP=6; +const PSI_CHANGED=1; +const PSI_GUISTART=2; +const PSI_REBOOT=3; +const PSI_GETSIBLINGS=4; + +const DCX_WINDOW=1; +const DCX_CACHE=2; +const DCX_PARENTCLIP=32; +const DCX_CLIPSIBLINGS=16; +const DCX_CLIPCHILDREN=8; +const DCX_NORESETATTRS=4; +const DCX_INTERSECTUPDATE=0x200; +const DCX_LOCKWINDOWUPDATE=0x400; +const DCX_EXCLUDERGN=64; +const DCX_INTERSECTRGN=128; +const DCX_VALIDATE=0x200000; + +const GMDI_GOINTOPOPUPS=2; +const GMDI_USEDISABLED=1; +const FKF_AVAILABLE=2; +const FKF_CLICKON=64; +const FKF_FILTERKEYSON=1; +const FKF_HOTKEYACTIVE=4; +const FKF_HOTKEYSOUND=16; +const FKF_CONFIRMHOTKEY=8; +const FKF_INDICATOR=32; +const HCF_HIGHCONTRASTON=1; +const HCF_AVAILABLE=2; +const HCF_HOTKEYACTIVE=4; +const HCF_CONFIRMHOTKEY=8; +const HCF_HOTKEYSOUND=16; +const HCF_INDICATOR=32; +const HCF_HOTKEYAVAILABLE=64; +const MKF_AVAILABLE=2; +const MKF_CONFIRMHOTKEY=8; +const MKF_HOTKEYACTIVE=4; +const MKF_HOTKEYSOUND=16; +const MKF_INDICATOR=32; +const MKF_MOUSEKEYSON=1; +const MKF_MODIFIERS=64; +const MKF_REPLACENUMBERS=128; +const SERKF_ACTIVE=8; // May be obsolete. Not in recent MS docs. +const SERKF_AVAILABLE=2; +const SERKF_INDICATOR=4; +const SERKF_SERIALKEYSON=1; +const SSF_AVAILABLE=2; +const SSF_SOUNDSENTRYON=1; +const SSTF_BORDER=2; +const SSTF_CHARS=1; +const SSTF_DISPLAY=3; +const SSTF_NONE=0; +const SSGF_DISPLAY=3; +const SSGF_NONE=0; +const SSWF_CUSTOM=4; +const SSWF_DISPLAY=3; +const SSWF_NONE=0; +const SSWF_TITLE=1; +const SSWF_WINDOW=2; +const SKF_AUDIBLEFEEDBACK=64; +const SKF_AVAILABLE=2; +const SKF_CONFIRMHOTKEY=8; +const SKF_HOTKEYACTIVE=4; +const SKF_HOTKEYSOUND=16; +const SKF_INDICATOR=32; +const SKF_STICKYKEYSON=1; +const SKF_TRISTATE=128; +const SKF_TWOKEYSOFF=256; +const TKF_AVAILABLE=2; +const TKF_CONFIRMHOTKEY=8; +const TKF_HOTKEYACTIVE=4; +const TKF_HOTKEYSOUND=16; +const TKF_TOGGLEKEYSON=1; +const MDITILE_SKIPDISABLED=2; +const MDITILE_HORIZONTAL=1; +const MDITILE_VERTICAL=0; + +enum { + VK_LBUTTON = 0x01, + VK_RBUTTON = 0x02, + VK_CANCEL = 0x03, + VK_MBUTTON = 0x04, + //static if (_WIN32_WINNT > = 0x500) { + VK_XBUTTON1 = 0x05, + VK_XBUTTON2 = 0x06, + //} + VK_BACK = 0x08, + VK_TAB = 0x09, + VK_CLEAR = 0x0C, + VK_RETURN = 0x0D, + VK_SHIFT = 0x10, + VK_CONTROL = 0x11, + VK_MENU = 0x12, + VK_PAUSE = 0x13, + VK_CAPITAL = 0x14, + VK_KANA = 0x15, + VK_HANGEUL = 0x15, + VK_HANGUL = 0x15, + VK_JUNJA = 0x17, + VK_FINAL = 0x18, + VK_HANJA = 0x19, + VK_KANJI = 0x19, + VK_ESCAPE = 0x1B, + VK_CONVERT = 0x1C, + VK_NONCONVERT = 0x1D, + VK_ACCEPT = 0x1E, + VK_MODECHANGE = 0x1F, + VK_SPACE = 0x20, + VK_PRIOR = 0x21, + VK_NEXT = 0x22, + VK_END = 0x23, + VK_HOME = 0x24, + VK_LEFT = 0x25, + VK_UP = 0x26, + VK_RIGHT = 0x27, + VK_DOWN = 0x28, + VK_SELECT = 0x29, + VK_PRINT = 0x2A, + VK_EXECUTE = 0x2B, + VK_SNAPSHOT = 0x2C, + VK_INSERT = 0x2D, + VK_DELETE = 0x2E, + VK_HELP = 0x2F, + VK_LWIN = 0x5B, + VK_RWIN = 0x5C, + VK_APPS = 0x5D, + VK_SLEEP = 0x5F, + VK_NUMPAD0 = 0x60, + VK_NUMPAD1 = 0x61, + VK_NUMPAD2 = 0x62, + VK_NUMPAD3 = 0x63, + VK_NUMPAD4 = 0x64, + VK_NUMPAD5 = 0x65, + VK_NUMPAD6 = 0x66, + VK_NUMPAD7 = 0x67, + VK_NUMPAD8 = 0x68, + VK_NUMPAD9 = 0x69, + VK_MULTIPLY = 0x6A, + VK_ADD = 0x6B, + VK_SEPARATOR = 0x6C, + VK_SUBTRACT = 0x6D, + VK_DECIMAL = 0x6E, + VK_DIVIDE = 0x6F, + VK_F1 = 0x70, + VK_F2 = 0x71, + VK_F3 = 0x72, + VK_F4 = 0x73, + VK_F5 = 0x74, + VK_F6 = 0x75, + VK_F7 = 0x76, + VK_F8 = 0x77, + VK_F9 = 0x78, + VK_F10 = 0x79, + VK_F11 = 0x7A, + VK_F12 = 0x7B, + VK_F13 = 0x7C, + VK_F14 = 0x7D, + VK_F15 = 0x7E, + VK_F16 = 0x7F, + VK_F17 = 0x80, + VK_F18 = 0x81, + VK_F19 = 0x82, + VK_F20 = 0x83, + VK_F21 = 0x84, + VK_F22 = 0x85, + VK_F23 = 0x86, + VK_F24 = 0x87, + VK_NUMLOCK = 0x90, + VK_SCROLL = 0x91, + VK_LSHIFT = 0xA0, + VK_RSHIFT = 0xA1, + VK_LCONTROL = 0xA2, + VK_RCONTROL = 0xA3, + VK_LMENU = 0xA4, + VK_RMENU = 0xA5, + //static if (_WIN32_WINNT > = 0x500) { + VK_BROWSER_BACK = 0xA6, + VK_BROWSER_FORWARD = 0xA7, + VK_BROWSER_REFRESH = 0xA8, + VK_BROWSER_STOP = 0xA9, + VK_BROWSER_SEARCH = 0xAA, + VK_BROWSER_FAVORITES = 0xAB, + VK_BROWSER_HOME = 0xAC, + VK_VOLUME_MUTE = 0xAD, + VK_VOLUME_DOWN = 0xAE, + VK_VOLUME_UP = 0xAF, + VK_MEDIA_NEXT_TRACK = 0xB0, + VK_MEDIA_PREV_TRACK = 0xB1, + VK_MEDIA_STOP = 0xB2, + VK_MEDIA_PLAY_PAUSE = 0xB3, + VK_LAUNCH_MAIL = 0xB4, + VK_LAUNCH_MEDIA_SELECT = 0xB5, + VK_LAUNCH_APP1 = 0xB6, + VK_LAUNCH_APP2 = 0xB7, + //} + VK_OEM_1 = 0xBA, + //static if (_WIN32_WINNT > = 0x500) { + VK_OEM_PLUS = 0xBB, + VK_OEM_COMMA = 0xBC, + VK_OEM_MINUS = 0xBD, + VK_OEM_PERIOD = 0xBE, + //} + VK_OEM_2 = 0xBF, + VK_OEM_3 = 0xC0, + VK_OEM_4 = 0xDB, + VK_OEM_5 = 0xDC, + VK_OEM_6 = 0xDD, + VK_OEM_7 = 0xDE, + VK_OEM_8 = 0xDF, + //static if (_WIN32_WINNT > = 0x500) { + VK_OEM_102 = 0xE2, + //} + VK_PROCESSKEY = 0xE5, + //static if (_WIN32_WINNT > = 0x500) { + VK_PACKET = 0xE7, + //} + VK_ATTN = 0xF6, + VK_CRSEL = 0xF7, + VK_EXSEL = 0xF8, + VK_EREOF = 0xF9, + VK_PLAY = 0xFA, + VK_ZOOM = 0xFB, + VK_NONAME = 0xFC, + VK_PA1 = 0xFD, + VK_OEM_CLEAR = 0xFE, +} + +const TME_HOVER=1; +const TME_LEAVE=2; +const TME_QUERY=0x40000000; +const TME_CANCEL=0x80000000; + +const HOVER_DEFAULT=0xFFFFFFFF; + +const MK_LBUTTON=1; +const MK_RBUTTON=2; +const MK_SHIFT=4; +const MK_CONTROL=8; +const MK_MBUTTON=16; +static if (_WIN32_WINNT >= 0x500) { +const MK_XBUTTON1=32; +const MK_XBUTTON2=64; +} +const TPM_CENTERALIGN=4; +const TPM_LEFTALIGN=0; +const TPM_RIGHTALIGN=8; +const TPM_LEFTBUTTON=0; +const TPM_RIGHTBUTTON=2; +const TPM_HORIZONTAL=0; +const TPM_VERTICAL=64; +const TPM_TOPALIGN=0; +const TPM_VCENTERALIGN=16; +const TPM_BOTTOMALIGN=32; +const TPM_NONOTIFY=128; +const TPM_RETURNCMD=256; +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) { +const TPM_RECURSE=1; +} + +const HELP_COMMAND=0x102; +const HELP_CONTENTS=3; +const HELP_CONTEXT=1; +const HELP_CONTEXTPOPUP=8; +const HELP_FORCEFILE=9; +const HELP_HELPONHELP=4; +const HELP_INDEX=3; +const HELP_KEY=0x101; +const HELP_MULTIKEY=0x201; +const HELP_PARTIALKEY=0x105; +const HELP_QUIT=2; +const HELP_SETCONTENTS=5; +const HELP_SETINDEX=5; +const HELP_SETWINPOS=0x203; +const HELP_CONTEXTMENU=0xa; +const HELP_FINDER=0xb; +const HELP_WM_HELP=0xc; +const HELP_TCARD=0x8000; +const HELP_TCARD_DATA=16; +const HELP_TCARD_OTHER_CALLER=0x11; + +const IDH_NO_HELP=28440; +const IDH_MISSING_CONTEXT=28441; +const IDH_GENERIC_HELP_BUTTON=28442; +const IDH_OK=28443; +const IDH_CANCEL=28444; +const IDH_HELP=28445; + +const LB_CTLCODE=0; +const LB_OKAY=0; +const LB_ERR=-1; +const LB_ERRSPACE=-2; + +const CB_OKAY=0; +const CB_ERR=-1; +const CB_ERRSPACE=-2; + +const HIDE_WINDOW=0; + +const SHOW_OPENWINDOW=1; +const SHOW_ICONWINDOW=2; +const SHOW_FULLSCREEN=3; +const SHOW_OPENNOACTIVATE=4; + +const SW_PARENTCLOSING=1; +const SW_OTHERZOOM=2; +const SW_PARENTOPENING=3; +const SW_OTHERUNZOOM=4; + +const KF_EXTENDED=256; +const KF_DLGMODE=2048; +const KF_MENUMODE=4096; +const KF_ALTDOWN=8192; +const KF_REPEAT=16384; +const KF_UP=32768; + +const WSF_VISIBLE=1; + +const PWR_OK=1; +const PWR_FAIL=-1; +const PWR_SUSPENDREQUEST=1; +const PWR_SUSPENDRESUME=2; +const PWR_CRITICALRESUME=3; + +const NFR_ANSI=1; +const NFR_UNICODE=2; +const NF_QUERY=3; +const NF_REQUERY=4; + +const MENULOOP_WINDOW=0; +const MENULOOP_POPUP=1; + +const WMSZ_LEFT=1; +const WMSZ_RIGHT=2; +const WMSZ_TOP=3; +const WMSZ_TOPLEFT=4; +const WMSZ_TOPRIGHT=5; +const WMSZ_BOTTOM=6; +const WMSZ_BOTTOMLEFT=7; +const WMSZ_BOTTOMRIGHT=8; + +const HTERROR=-2; +const HTTRANSPARENT=-1; +const HTNOWHERE=0; +const HTCLIENT=1; +const HTCAPTION=2; +const HTSYSMENU=3; +const HTGROWBOX=4; +const HTSIZE=4; +const HTMENU=5; +const HTHSCROLL=6; +const HTVSCROLL=7; +const HTMINBUTTON=8; +const HTMAXBUTTON=9; +const HTREDUCE=8; +const HTZOOM=9; +const HTLEFT=10; +const HTSIZEFIRST=10; +const HTRIGHT=11; +const HTTOP=12; +const HTTOPLEFT=13; +const HTTOPRIGHT=14; +const HTBOTTOM=15; +const HTBOTTOMLEFT=16; +const HTBOTTOMRIGHT=17; +const HTSIZELAST=17; +const HTBORDER=18; +const HTOBJECT=19; +const HTCLOSE=20; +const HTHELP=21; + +const MA_ACTIVATE=1; +const MA_ACTIVATEANDEAT=2; +const MA_NOACTIVATE=3; +const MA_NOACTIVATEANDEAT=4; + +const SIZE_RESTORED=0; +const SIZE_MINIMIZED=1; +const SIZE_MAXIMIZED=2; +const SIZE_MAXSHOW=3; +const SIZE_MAXHIDE=4; + +const SIZENORMAL=0; +const SIZEICONIC=1; +const SIZEFULLSCREEN=2; +const SIZEZOOMSHOW=3; +const SIZEZOOMHIDE=4; + +const WVR_ALIGNTOP=16; +const WVR_ALIGNLEFT=32; +const WVR_ALIGNBOTTOM=64; +const WVR_ALIGNRIGHT=128; +const WVR_HREDRAW=256; +const WVR_VREDRAW=512; +const WVR_REDRAW=(WVR_HREDRAW|WVR_VREDRAW); +const WVR_VALIDRECTS=1024; + +const PRF_CHECKVISIBLE=1; +const PRF_NONCLIENT=2; +const PRF_CLIENT=4; +const PRF_ERASEBKGND=8; +const PRF_CHILDREN=16; +const PRF_OWNED=32; + +const IDANI_OPEN=1; +const IDANI_CLOSE=2; +const IDANI_CAPTION=3; + +const WPF_RESTORETOMAXIMIZED=2; +const WPF_SETMINPOSITION=1; + +const ODT_MENU=1; +const ODT_LISTBOX=2; +const ODT_COMBOBOX=3; +const ODT_BUTTON=4; +const ODT_STATIC=5; +const ODA_DRAWENTIRE=1; +const ODA_SELECT=2; +const ODA_FOCUS=4; +const ODS_SELECTED=1; +const ODS_GRAYED=2; +const ODS_DISABLED=4; +const ODS_CHECKED=8; +const ODS_FOCUS=16; +const ODS_DEFAULT=32; +const ODS_COMBOBOXEDIT=4096; + +const IDHOT_SNAPWINDOW=-1; +const IDHOT_SNAPDESKTOP=-2; + +const DBWF_LPARAMPOINTER=0x8000; +const DLGWINDOWEXTRA=30; +const MNC_IGNORE=0; +const MNC_CLOSE=1; +const MNC_EXECUTE=2; +const MNC_SELECT=3; +const DOF_EXECUTABLE=0x8001; +const DOF_DOCUMENT=0x8002; +const DOF_DIRECTORY=0x8003; +const DOF_MULTIPLE=0x8004; +const DOF_PROGMAN=1; +const DOF_SHELLDATA=2; +const DO_DROPFILE=0x454C4946; +const DO_PRINTFILE=0x544E5250; + +const SW_SCROLLCHILDREN=1; +const SW_INVALIDATE=2; +const SW_ERASE=4; + +const SC_SIZE=0xF000; +const SC_MOVE=0xF010; +const SC_MINIMIZE=0xF020; +const SC_ICON=0xf020; +const SC_MAXIMIZE=0xF030; +const SC_ZOOM=0xF030; +const SC_NEXTWINDOW=0xF040; +const SC_PREVWINDOW=0xF050; +const SC_CLOSE=0xF060; +const SC_VSCROLL=0xF070; +const SC_HSCROLL=0xF080; +const SC_MOUSEMENU=0xF090; +const SC_KEYMENU=0xF100; +const SC_ARRANGE=0xF110; +const SC_RESTORE=0xF120; +const SC_TASKLIST=0xF130; +const SC_SCREENSAVE=0xF140; +const SC_HOTKEY=0xF150; +const SC_DEFAULT=0xF160; +const SC_MONITORPOWER=0xF170; +const SC_CONTEXTHELP=0xF180; +const SC_SEPARATOR=0xF00F; + +const EC_LEFTMARGIN=1; +const EC_RIGHTMARGIN=2; +const EC_USEFONTINFO=0xffff; + +const DC_HASDEFID=0x534B; + +const DLGC_WANTARROWS=1; +const DLGC_WANTTAB=2; +const DLGC_WANTALLKEYS=4; +const DLGC_WANTMESSAGE=4; +const DLGC_HASSETSEL=8; +const DLGC_DEFPUSHBUTTON=16; +const DLGC_UNDEFPUSHBUTTON=32; +const DLGC_RADIOBUTTON=64; +const DLGC_WANTCHARS=128; +const DLGC_STATIC=256; +const DLGC_BUTTON=0x2000; + +const WA_INACTIVE=0; +const WA_ACTIVE=1; +const WA_CLICKACTIVE=2; + +const ICON_SMALL=0; +const ICON_BIG=1; +static if (_WIN32_WINNT >= 0x501) { +const ICON_SMALL2=2; +} + +const HBITMAP + HBMMENU_CALLBACK = cast(HBITMAP)-1, + HBMMENU_SYSTEM = cast(HBITMAP)1, + HBMMENU_MBAR_RESTORE = cast(HBITMAP)2, + HBMMENU_MBAR_MINIMIZE = cast(HBITMAP)3, + HBMMENU_MBAR_CLOSE = cast(HBITMAP)5, + HBMMENU_MBAR_CLOSE_D = cast(HBITMAP)6, + HBMMENU_MBAR_MINIMIZE_D = cast(HBITMAP)7, + HBMMENU_POPUP_CLOSE = cast(HBITMAP)8, + HBMMENU_POPUP_RESTORE = cast(HBITMAP)9, + HBMMENU_POPUP_MAXIMIZE = cast(HBITMAP)10, + HBMMENU_POPUP_MINIMIZE = cast(HBITMAP)11; + +const MOD_ALT=1; +const MOD_CONTROL=2; +const MOD_SHIFT=4; +const MOD_WIN=8; +const MOD_IGNORE_ALL_MODIFIER=1024; +const MOD_ON_KEYUP=2048; +const MOD_RIGHT=16384; +const MOD_LEFT=32768; + +const LLKHF_EXTENDED=(KF_EXTENDED >> 8); +const LLKHF_INJECTED=0x00000010; +const LLKHF_ALTDOWN=(KF_ALTDOWN >> 8); +const LLKHF_UP=(KF_UP >> 8); + +static if (WINVER >= 0x500) { +const FLASHW_STOP=0; +const FLASHW_CAPTION=1; +const FLASHW_TRAY=2; +const FLASHW_ALL=(FLASHW_CAPTION|FLASHW_TRAY); +const FLASHW_TIMER=4; +const FLASHW_TIMERNOFG=12; +} + +const CURSOR_SHOWING=0x00000001; +const WS_ACTIVECAPTION=0x00000001; +static if (_WIN32_WINNT >= 0x403) { +const INPUT_MOUSE=0x00000000; +const INPUT_KEYBOARD=0x00000001; +const INPUT_HARDWARE=0x00000002; +} +static if (WINVER >= 0x400) { +const ENDSESSION_LOGOFF = 0x80000000; +} + +static if (WINVER >= 0x500) { +const CHILDID_SELF = 0; +const OBJID_WINDOW = 0x00000000; +const OBJID_SYSMENU = 0xFFFFFFFF; +const OBJID_TITLEBAR = 0xFFFFFFFE; +const OBJID_MENU = 0xFFFFFFFD; +const OBJID_CLIENT = 0xFFFFFFFC; +const OBJID_VSCROLL = 0xFFFFFFFB; +const OBJID_HSCROLL = 0xFFFFFFFA; +const OBJID_SIZEGRIP = 0xFFFFFFF9; +const OBJID_CARET = 0xFFFFFFF8; +const OBJID_CURSOR = 0xFFFFFFF7; +const OBJID_ALERT = 0xFFFFFFF6; +const OBJID_SOUND = 0xFFFFFFF5; + +const GUI_CARETBLINKING = 0x00000001; +const GUI_INMOVESIZE = 0x00000002; +const GUI_INMENUMODE = 0x00000004; +const GUI_SYSTEMMENUMODE = 0x00000008; +const GUI_POPUPMENUMODE = 0x00000010; + +static if (_WIN32_WINNT >= 0x501) { +const GUI_16BITTASK = 0x00000020; +} +const WINEVENT_OUTOFCONTEXT=0x0000; +const WINEVENT_SKIPOWNTHREAD=0x0001; +const WINEVENT_SKIPOWNPROCESS=0x0002; +const WINEVENT_INCONTEXT=0x0004; +const AW_HOR_POSITIVE=0x00000001; +const AW_HOR_NEGATIVE=0x00000002; +const AW_VER_POSITIVE=0x00000004; +const AW_VER_NEGATIVE=0x00000008; +const AW_CENTER=0x00000010; +const AW_HIDE=0x00010000; +const AW_ACTIVATE=0x00020000; +const AW_SLIDE=0x00040000; +const AW_BLEND=0x00080000; +const DEVICE_NOTIFY_WINDOW_HANDLE=0x00000000; +const DEVICE_NOTIFY_SERVICE_HANDLE=0x00000001; + +static if (_WIN32_WINNT >= 0x501) { +const DEVICE_NOTIFY_ALL_INTERFACE_CLASSES=0x00000004; +} + +const EVENT_MIN = 0x00000001; +const EVENT_SYSTEM_SOUND = 0x00000001; +const EVENT_SYSTEM_ALERT = 0x00000002; +const EVENT_SYSTEM_FOREGROUND = 0x00000003; +const EVENT_SYSTEM_MENUSTART = 0x00000004; +const EVENT_SYSTEM_MENUEND = 0x00000005; +const EVENT_SYSTEM_MENUPOPUPSTART = 0x00000006; +const EVENT_SYSTEM_MENUPOPUPEND = 0x00000007; +const EVENT_SYSTEM_CAPTURESTART = 0x00000008; +const EVENT_SYSTEM_CAPTUREEND = 0x00000009; +const EVENT_SYSTEM_MOVESIZESTART = 0x0000000a; +const EVENT_SYSTEM_MOVESIZEEND = 0x0000000b; +const EVENT_SYSTEM_CONTEXTHELPSTART = 0x0000000c; +const EVENT_SYSTEM_CONTEXTHELPEND = 0x0000000d; +const EVENT_SYSTEM_DRAGDROPSTART = 0x0000000e; +const EVENT_SYSTEM_DRAGDROPEND = 0x0000000f; +const EVENT_SYSTEM_DIALOGSTART = 0x00000010; +const EVENT_SYSTEM_DIALOGEND = 0x00000011; +const EVENT_SYSTEM_SCROLLINGSTART = 0x00000012; +const EVENT_SYSTEM_SCROLLINGEND = 0x00000013; +const EVENT_SYSTEM_SWITCHSTART = 0x00000014; +const EVENT_SYSTEM_SWITCHEND = 0x00000015; +const EVENT_SYSTEM_MINIMIZESTART = 0x00000016; +const EVENT_SYSTEM_MINIMIZEEND = 0x00000017; + +const EVENT_OBJECT_CREATE = 0x00008000; +const EVENT_OBJECT_DESTROY = 0x00008001; +const EVENT_OBJECT_SHOW = 0x00008002; +const EVENT_OBJECT_HIDE = 0x00008003; +const EVENT_OBJECT_REORDER = 0x00008004; +const EVENT_OBJECT_FOCUS = 0x00008005; +const EVENT_OBJECT_SELECTION = 0x00008006; +const EVENT_OBJECT_SELECTIONADD = 0x00008007; +const EVENT_OBJECT_SELECTIONREMOVE = 0x00008008; +const EVENT_OBJECT_SELECTIONWITHIN = 0x00008009; +const EVENT_OBJECT_STATECHANGE = 0x0000800a; +const EVENT_OBJECT_LOCATIONCHANGE = 0x0000800b; +const EVENT_OBJECT_NAMECHANGE = 0x0000800c; +const EVENT_OBJECT_DESCRIPTIONCHANGE = 0x0000800d; +const EVENT_OBJECT_VALUECHANGE = 0x0000800e; +const EVENT_OBJECT_PARENTCHANGE = 0x0000800f; +const EVENT_OBJECT_HELPCHANGE = 0x00008010; +const EVENT_OBJECT_DEFACTIONCHANGE = 0x00008011; +const EVENT_OBJECT_ACCELERATORCHANGE = 0x00008012; + +static if (_WIN32_WINNT >= 0x501) { +const EVENT_CONSOLE_CARET = 0x00004001; +const EVENT_CONSOLE_UPDATE_REGION = 0x00004002; +const EVENT_CONSOLE_UPDATE_SIMPLE = 0x00004003; +const EVENT_CONSOLE_UPDATE_SCROLL = 0x00004004; +const EVENT_CONSOLE_LAYOUT = 0x00004005; +const EVENT_CONSOLE_START_APPLICATION = 0x00004006; +const EVENT_CONSOLE_END_APPLICATION = 0x00004007; + +const CONSOLE_CARET_SELECTION = 0x00000001; +const CONSOLE_CARET_VISIBLE = 0x00000002; + +const CONSOLE_APPLICATION_16BIT = 0x00000001; + +} +const EVENT_MAX=0x7fffffff; + +}//(WINVER >= 0x500) + +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x490)) { +const DWORD ASFW_ANY = -1; +const LSFW_LOCK = 1; +const LSFW_UNLOCK = 2; +} + +static if (_WIN32_WINNT >= 0x500) { +const LWA_COLORKEY=0x01; +const LWA_ALPHA=0x02; +const ULW_COLORKEY=0x01; +const ULW_ALPHA=0x02; +const ULW_OPAQUE=0x04; +} + +const GA_PARENT = 1; +const GA_ROOT = 2; +const GA_ROOTOWNER = 3; + +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) { + +const MONITOR_DEFAULTTONULL = 0; +const MONITOR_DEFAULTTOPRIMARY = 1; +const MONITOR_DEFAULTTONEAREST = 2; +const MONITORINFOF_PRIMARY = 1; + +const EDS_RAWMODE = 0x00000002; + +const ISMEX_NOSEND = 0x00000000; +const ISMEX_SEND = 0x00000001; +const ISMEX_NOTIFY = 0x00000002; +const ISMEX_CALLBACK = 0x00000004; +const ISMEX_REPLIED = 0x00000008; +} + +static if (_WIN32_WINNT >= 0x500) { +const GR_GDIOBJECTS = 0; +const GR_USEROBJECTS = 1; +} + +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x490)) { +const GMMP_USE_DISPLAY_POINTS = 1; +const GMMP_USE_HIGH_RESOLUTION_POINTS = 2; +} + +static if (_WIN32_WINNT >= 0x501) { +const PW_CLIENTONLY = 0x00000001; +const RIM_INPUT = 0x00000000; +const RIM_INPUTSINK = 0x00000001; +const RIM_TYPEMOUSE = 0x00000000; +const RIM_TYPEKEYBOARD = 0x00000001; +const RIM_TYPEHID = 0x00000002; +const MOUSE_MOVE_RELATIVE = 0x00000000; +const MOUSE_MOVE_ABSOLUTE = 0x00000001; +const MOUSE_VIRTUAL_DESKTOP = 0x00000002; +const MOUSE_ATTRIBUTES_CHANGED = 0x00000004; +const RI_MOUSE_LEFT_BUTTON_DOWN = 0x0001; +const RI_MOUSE_LEFT_BUTTON_UP = 0x0002; +const RI_MOUSE_RIGHT_BUTTON_DOWN = 0x0004; +const RI_MOUSE_RIGHT_BUTTON_UP = 0x0008; +const RI_MOUSE_MIDDLE_BUTTON_DOWN = 0x0010; +const RI_MOUSE_MIDDLE_BUTTON_UP = 0x0020; +const RI_MOUSE_BUTTON_1_DOWN = RI_MOUSE_LEFT_BUTTON_DOWN; +const RI_MOUSE_BUTTON_1_UP = RI_MOUSE_LEFT_BUTTON_UP; +const RI_MOUSE_BUTTON_2_DOWN = RI_MOUSE_RIGHT_BUTTON_DOWN; +const RI_MOUSE_BUTTON_2_UP = RI_MOUSE_RIGHT_BUTTON_UP; +const RI_MOUSE_BUTTON_3_DOWN = RI_MOUSE_MIDDLE_BUTTON_DOWN; +const RI_MOUSE_BUTTON_3_UP = RI_MOUSE_MIDDLE_BUTTON_UP; +const RI_MOUSE_BUTTON_4_DOWN = 0x0040; +const RI_MOUSE_BUTTON_4_UP = 0x0080; +const RI_MOUSE_BUTTON_5_DOWN = 0x0100; +const RI_MOUSE_BUTTON_5_UP = 0x0200; +const RI_MOUSE_WHEEL = 0x0400; +const KEYBOARD_OVERRUN_MAKE_CODE = 0x00ff; +const RI_KEY_MAKE = 0x0000; +const RI_KEY_BREAK = 0x0001; +const RI_KEY_E0 = 0x0002; +const RI_KEY_E1 = 0x0004; +const RI_KEY_TERMSRV_SET_LED = 0x0008; +const RI_KEY_TERMSRV_SHADOW = 0x0010; + +const RID_INPUT = 0x10000003; +const RID_HEADER = 0x10000005; + +const RIDI_PREPARSEDDATA = 0x20000005; +const RIDI_DEVICENAME = 0x20000007; +const RIDI_DEVICEINFO = 0x2000000b; + +const RIDEV_REMOVE = 0x00000001; +const RIDEV_EXCLUDE = 0x00000010; +const RIDEV_PAGEONLY = 0x00000020; +const RIDEV_NOLEGACY = 0x00000030; +const RIDEV_INPUTSINK = 0x00000100; +const RIDEV_CAPTUREMOUSE = 0x00000200; +const RIDEV_NOHOTKEYS = 0x00000200; +const RIDEV_APPKEYS = 0x00000400; +} + +// Callbacks +// --------- +extern (Windows) { + alias BOOL function (HWND, UINT, WPARAM, LPARAM) DLGPROC; + alias void function (HWND, UINT, UINT, DWORD) TIMERPROC; + alias BOOL function (HDC, LPARAM, int) GRAYSTRINGPROC; + alias LRESULT function (int, WPARAM, LPARAM) HOOKPROC; + alias BOOL function (HWND, LPCSTR, HANDLE) PROPENUMPROCA; + alias BOOL function (HWND, LPCWSTR, HANDLE) PROPENUMPROCW; + alias BOOL function (HWND, LPSTR, HANDLE, DWORD) PROPENUMPROCEXA; + alias BOOL function (HWND, LPWSTR, HANDLE, DWORD) PROPENUMPROCEXW; + alias int function (LPSTR, int, int, int) EDITWORDBREAKPROCA; + alias int function (LPWSTR, int, int, int) EDITWORDBREAKPROCW; + alias LRESULT function (HWND, UINT, WPARAM, LPARAM) WNDPROC; + alias BOOL function (HDC, LPARAM, WPARAM, int, int) DRAWSTATEPROC; + alias BOOL function (HWND, LPARAM) WNDENUMPROC; + alias BOOL function (HWND, LPARAM) ENUMWINDOWSPROC; + alias void function (LPHELPINFO) MSGBOXCALLBACK; + + static if (WINVER >= 0x410) { + alias BOOL function (HMONITOR, HDC, LPRECT, LPARAM) MONITORENUMPROC; + } + alias BOOL function (LPSTR, LPARAM) NAMEENUMPROCA; + alias BOOL function (LPWSTR, LPARAM) NAMEENUMPROCW; + alias void function (HWND, UINT, DWORD, LRESULT) SENDASYNCPROC; + + alias NAMEENUMPROCA DESKTOPENUMPROCA; + alias NAMEENUMPROCW DESKTOPENUMPROCW; + alias NAMEENUMPROCA WINSTAENUMPROCA; + alias NAMEENUMPROCW WINSTAENUMPROCW; +} + +alias HANDLE HHOOK; +alias HANDLE HDWP; +alias HANDLE HDEVNOTIFY; + +struct ACCEL { + BYTE fVirt; + WORD key; + WORD cmd; +} +alias ACCEL* LPACCEL; + +struct ACCESSTIMEOUT { + UINT cbSize = ACCESSTIMEOUT.sizeof; + DWORD dwFlags; + DWORD iTimeOutMSec; +} +alias ACCESSTIMEOUT* LPACCESSTIMEOUT; + +struct ANIMATIONINFO { + UINT cbSize = ANIMATIONINFO.sizeof; + int iMinAnimate; +} +alias ANIMATIONINFO* LPANIMATIONINFO; + +struct CREATESTRUCTA { + LPVOID lpCreateParams; + HINSTANCE hInstance; + HMENU hMenu; + HWND hwndParent; + int cy; + int cx; + int y; + int x; + LONG style; + LPCSTR lpszName; + LPCSTR lpszClass; + DWORD dwExStyle; +} +alias CREATESTRUCTA* LPCREATESTRUCTA; + +struct CREATESTRUCTW { + LPVOID lpCreateParams; + HINSTANCE hInstance; + HMENU hMenu; + HWND hwndParent; + int cy; + int cx; + int y; + int x; + LONG style; + LPCWSTR lpszName; + LPCWSTR lpszClass; + DWORD dwExStyle; +} +alias CREATESTRUCTW* LPCREATESTRUCTW; + +struct CBT_CREATEWNDA { + LPCREATESTRUCTA lpcs; + HWND hwndInsertAfter; +} +alias CBT_CREATEWNDA* LPCBT_CREATEWNDA; + +struct CBT_CREATEWNDW { + LPCREATESTRUCTW lpcs; + HWND hwndInsertAfter; +} +alias CBT_CREATEWNDW* LPCBT_CREATEWNDW; + +struct CBTACTIVATESTRUCT { + BOOL fMouse; + HWND hWndActive; +} +alias CBTACTIVATESTRUCT* LPCBTACTIVATESTRUCT; + +struct CLIENTCREATESTRUCT { + HANDLE hWindowMenu; + UINT idFirstChild; +} +alias CLIENTCREATESTRUCT* LPCLIENTCREATESTRUCT; + +struct COMPAREITEMSTRUCT { + UINT CtlType; + UINT CtlID; + HWND hwndItem; + UINT itemID1; + DWORD itemData1; + UINT itemID2; + DWORD itemData2; + DWORD dwLocaleId; +} +alias COMPAREITEMSTRUCT* LPCOMPAREITEMSTRUCT; + +struct COPYDATASTRUCT { + DWORD dwData; + DWORD cbData; + PVOID lpData; +} +alias COPYDATASTRUCT* PCOPYDATASTRUCT; + +struct CURSORSHAPE { + int xHotSpot; + int yHotSpot; + int cx; + int cy; + int cbWidth; + BYTE Planes; + BYTE BitsPixel; +} +alias CURSORSHAPE* LPCURSORSHAPE; + +struct CWPRETSTRUCT { + LRESULT lResult; + LPARAM lParam; + WPARAM wParam; + DWORD message; + HWND hwnd; +} + +struct CWPSTRUCT { + LPARAM lParam; + WPARAM wParam; + UINT message; + HWND hwnd; +} +alias CWPSTRUCT* PCWPSTRUCT; + +struct DEBUGHOOKINFO { + DWORD idThread; + DWORD idThreadInstaller; + LPARAM lParam; + WPARAM wParam; + int code; +} +alias DEBUGHOOKINFO* PDEBUGHOOKINFO, LPDEBUGHOOKINFO; + +struct DELETEITEMSTRUCT { + UINT CtlType; + UINT CtlID; + UINT itemID; + HWND hwndItem; + UINT itemData; +} +alias DELETEITEMSTRUCT* PDELETEITEMSTRUCT, LPDELETEITEMSTRUCT; + +align(2): +struct DLGITEMTEMPLATE { + DWORD style; + DWORD dwExtendedStyle; + short x; + short y; + short cx; + short cy; + WORD id; +} +alias DLGITEMTEMPLATE* LPDLGITEMTEMPLATE; + +struct DLGTEMPLATE { + DWORD style; + DWORD dwExtendedStyle; + WORD cdit; + short x; + short y; + short cx; + short cy; +} +alias DLGTEMPLATE* LPDLGTEMPLATE, LPDLGTEMPLATEA, LPDLGTEMPLATEW; +alias CPtr!(DLGTEMPLATE) LPCDLGTEMPLATE; + +align: + +struct DRAWITEMSTRUCT { + UINT CtlType; + UINT CtlID; + UINT itemID; + UINT itemAction; + UINT itemState; + HWND hwndItem; + HDC hDC; + RECT rcItem; + DWORD itemData; +} +alias DRAWITEMSTRUCT* LPDRAWITEMSTRUCT, PDRAWITEMSTRUCT; + +struct DRAWTEXTPARAMS { + UINT cbSize = DRAWTEXTPARAMS.sizeof; + int iTabLength; + int iLeftMargin; + int iRightMargin; + UINT uiLengthDrawn; +} +alias DRAWTEXTPARAMS* LPDRAWTEXTPARAMS; + +struct PAINTSTRUCT { + HDC hdc; + BOOL fErase; + RECT rcPaint; + BOOL fRestore; + BOOL fIncUpdate; + BYTE[32] rgbReserved; +} +alias PAINTSTRUCT* LPPAINTSTRUCT; + +struct MSG { + HWND hwnd; + UINT message; + WPARAM wParam; + LPARAM lParam; + DWORD time; + POINT pt; +} +alias MSG* LPMSG, PMSG; + +struct ICONINFO { + BOOL fIcon; + DWORD xHotspot; + DWORD yHotspot; + HBITMAP hbmMask; + HBITMAP hbmColor; +} +alias ICONINFO* PICONINFO; + +struct NMHDR { + HWND hwndFrom; + UINT idFrom; + UINT code; +} +alias NMHDR* LPNMHDR; + +struct WNDCLASSA { + UINT style; + WNDPROC lpfnWndProc; + int cbClsExtra; + int cbWndExtra; + HINSTANCE hInstance; + HICON hIcon; + HCURSOR hCursor; + HBRUSH hbrBackground; + LPCSTR lpszMenuName; + LPCSTR lpszClassName; +} +alias WNDCLASSA* LPWNDCLASSA, PWNDCLASSA; + +struct WNDCLASSW { + UINT style; + WNDPROC lpfnWndProc; + int cbClsExtra; + int cbWndExtra; + HINSTANCE hInstance; + HICON hIcon; + HCURSOR hCursor; + HBRUSH hbrBackground; + LPCWSTR lpszMenuName; + LPCWSTR lpszClassName; +} +alias WNDCLASSW* LPWNDCLASSW, PWNDCLASSW; + +struct WNDCLASSEXA { + UINT cbSize = WNDCLASSEXA.sizeof; + UINT style; + WNDPROC lpfnWndProc; + int cbClsExtra; + int cbWndExtra; + HINSTANCE hInstance; + HICON hIcon; + HCURSOR hCursor; + HBRUSH hbrBackground; + LPCSTR lpszMenuName; + LPCSTR lpszClassName; + HICON hIconSm; +} +alias WNDCLASSEXA* LPWNDCLASSEXA, PWNDCLASSEXA; + +struct WNDCLASSEXW { + UINT cbSize = WNDCLASSEXW.sizeof; + UINT style; + WNDPROC lpfnWndProc; + int cbClsExtra; + int cbWndExtra; + HINSTANCE hInstance; + HICON hIcon; + HCURSOR hCursor; + HBRUSH hbrBackground; + LPCWSTR lpszMenuName; + LPCWSTR lpszClassName; + HICON hIconSm; +} +alias WNDCLASSEXW* LPWNDCLASSEXW, PWNDCLASSEXW; + +struct MENUITEMINFOA { + UINT cbSize = MENUITEMINFOA.sizeof; + UINT fMask; + UINT fType; + UINT fState; + UINT wID; + HMENU hSubMenu; + HBITMAP hbmpChecked; + HBITMAP hbmpUnchecked; + DWORD dwItemData; + LPSTR dwTypeData; + UINT cch; + static if (_WIN32_WINNT >= 0x500) { + HBITMAP hbmpItem; + } +} +alias MENUITEMINFOA* LPMENUITEMINFOA; +alias CPtr!(MENUITEMINFOA) LPCMENUITEMINFOA; + +struct MENUITEMINFOW { + UINT cbSize = MENUITEMINFOW.sizeof; + UINT fMask; + UINT fType; + UINT fState; + UINT wID; + HMENU hSubMenu; + HBITMAP hbmpChecked; + HBITMAP hbmpUnchecked; + DWORD dwItemData; + LPWSTR dwTypeData; + UINT cch; + static if (_WIN32_WINNT >= 0x500) { + HBITMAP hbmpItem; + } +} +alias MENUITEMINFOW* LPMENUITEMINFOW; +alias CPtr!(MENUITEMINFOW) LPCMENUITEMINFOW; + +struct SCROLLINFO { + UINT cbSize = this.sizeof; + UINT fMask; + int nMin; + int nMax; + UINT nPage; + int nPos; + int nTrackPos; +} +alias SCROLLINFO* LPSCROLLINFO; +alias CPtr!(SCROLLINFO) LPCSCROLLINFO; + +struct WINDOWPLACEMENT { + UINT length; + UINT flags; + UINT showCmd; + POINT ptMinPosition; + POINT ptMaxPosition; + RECT rcNormalPosition; +} +alias WINDOWPLACEMENT* LPWINDOWPLACEMENT, PWINDOWPLACEMENT; + +struct MENUITEMTEMPLATEHEADER { + WORD versionNumber; + WORD offset; +} + +struct MENUITEMTEMPLATE { + WORD mtOption; + WORD mtID; + WCHAR mtString[1]; +} + +alias void MENUTEMPLATE, MENUTEMPLATEA, MENUTEMPLATEW; + +alias MENUTEMPLATE* LPMENUTEMPLATEA, LPMENUTEMPLATEW, LPMENUTEMPLATE; + +struct HELPINFO { + UINT cbSize = this.sizeof; + int iContextType; + int iCtrlId; + HANDLE hItemHandle; + DWORD dwContextId; + POINT MousePos; +} +alias HELPINFO* LPHELPINFO; + +struct MSGBOXPARAMSA { + UINT cbSize = this.sizeof; + HWND hwndOwner; + HINSTANCE hInstance; + LPCSTR lpszText; + LPCSTR lpszCaption; + DWORD dwStyle; + LPCSTR lpszIcon; + DWORD dwContextHelpId; + MSGBOXCALLBACK lpfnMsgBoxCallback; + DWORD dwLanguageId; +} +alias MSGBOXPARAMSA* PMSGBOXPARAMSA, LPMSGBOXPARAMSA; + +struct MSGBOXPARAMSW { + UINT cbSize = this.sizeof; + HWND hwndOwner; + HINSTANCE hInstance; + LPCWSTR lpszText; + LPCWSTR lpszCaption; + DWORD dwStyle; + LPCWSTR lpszIcon; + DWORD dwContextHelpId; + MSGBOXCALLBACK lpfnMsgBoxCallback; + DWORD dwLanguageId; +} +alias MSGBOXPARAMSW* PMSGBOXPARAMSW, LPMSGBOXPARAMSW; + +struct USEROBJECTFLAGS { + BOOL fInherit; + BOOL fReserved; + DWORD dwFlags; +} + +struct FILTERKEYS { + UINT cbSize = this.sizeof; + DWORD dwFlags; + DWORD iWaitMSec; + DWORD iDelayMSec; + DWORD iRepeatMSec; + DWORD iBounceMSec; +} + +struct HIGHCONTRASTA { + UINT cbSize = this.sizeof; + DWORD dwFlags; + LPSTR lpszDefaultScheme; +} +alias HIGHCONTRASTA* LPHIGHCONTRASTA; + +struct HIGHCONTRASTW { + UINT cbSize = this.sizeof; + DWORD dwFlags; + LPWSTR lpszDefaultScheme; +} +alias HIGHCONTRASTW* LPHIGHCONTRASTW; + +struct ICONMETRICSA { + UINT cbSize = this.sizeof; + int iHorzSpacing; + int iVertSpacing; + int iTitleWrap; + LOGFONTA lfFont; +} +alias ICONMETRICSA* LPICONMETRICSA; + +struct ICONMETRICSW { + UINT cbSize = this.sizeof; + int iHorzSpacing; + int iVertSpacing; + int iTitleWrap; + LOGFONTW lfFont; +} +alias ICONMETRICSW* LPICONMETRICSW; + +struct MINIMIZEDMETRICS { + UINT cbSize = this.sizeof; + int iWidth; + int iHorzGap; + int iVertGap; + int iArrange; +} +alias MINIMIZEDMETRICS* LPMINIMIZEDMETRICS; + +struct MOUSEKEYS { + UINT cbSize = this.sizeof; + DWORD dwFlags; + DWORD iMaxSpeed; + DWORD iTimeToMaxSpeed; + DWORD iCtrlSpeed; + DWORD dwReserved1; + DWORD dwReserved2; +} +alias MOUSEKEYS* LPMOUSEKEYS; + +struct NONCLIENTMETRICSA { + UINT cbSize = this.sizeof; + int iBorderWidth; + int iScrollWidth; + int iScrollHeight; + int iCaptionWidth; + int iCaptionHeight; + LOGFONTA lfCaptionFont; + int iSmCaptionWidth; + int iSmCaptionHeight; + LOGFONTA lfSmCaptionFont; + int iMenuWidth; + int iMenuHeight; + LOGFONTA lfMenuFont; + LOGFONTA lfStatusFont; + LOGFONTA lfMessageFont; +} +alias NONCLIENTMETRICSA* LPNONCLIENTMETRICSA; + +struct NONCLIENTMETRICSW { + UINT cbSize = this.sizeof; + int iBorderWidth; + int iScrollWidth; + int iScrollHeight; + int iCaptionWidth; + int iCaptionHeight; + LOGFONTW lfCaptionFont; + int iSmCaptionWidth; + int iSmCaptionHeight; + LOGFONTW lfSmCaptionFont; + int iMenuWidth; + int iMenuHeight; + LOGFONTW lfMenuFont; + LOGFONTW lfStatusFont; + LOGFONTW lfMessageFont; +} +alias NONCLIENTMETRICSW* LPNONCLIENTMETRICSW; + +struct SERIALKEYSA { + UINT cbSize = this.sizeof; + DWORD dwFlags; + LPSTR lpszActivePort; + LPSTR lpszPort; + UINT iBaudRate; + UINT iPortState; + UINT iActive; +} +alias SERIALKEYSA* LPSERIALKEYSA; + +struct SERIALKEYSW { + UINT cbSize = this.sizeof; + DWORD dwFlags; + LPWSTR lpszActivePort; + LPWSTR lpszPort; + UINT iBaudRate; + UINT iPortState; + UINT iActive; +} +alias SERIALKEYSW* LPSERIALKEYSW; + +struct SOUNDSENTRYA { + UINT cbSize = this.sizeof; + DWORD dwFlags; + DWORD iFSTextEffect; + DWORD iFSTextEffectMSec; + DWORD iFSTextEffectColorBits; + DWORD iFSGrafEffect; + DWORD iFSGrafEffectMSec; + DWORD iFSGrafEffectColor; + DWORD iWindowsEffect; + DWORD iWindowsEffectMSec; + LPSTR lpszWindowsEffectDLL; + DWORD iWindowsEffectOrdinal; +} +alias SOUNDSENTRYA* LPSOUNDSENTRYA; + +struct SOUNDSENTRYW { + UINT cbSize = this.sizeof; + DWORD dwFlags; + DWORD iFSTextEffect; + DWORD iFSTextEffectMSec; + DWORD iFSTextEffectColorBits; + DWORD iFSGrafEffect; + DWORD iFSGrafEffectMSec; + DWORD iFSGrafEffectColor; + DWORD iWindowsEffect; + DWORD iWindowsEffectMSec; + LPWSTR lpszWindowsEffectDLL; + DWORD iWindowsEffectOrdinal; +} +alias SOUNDSENTRYW* LPSOUNDSENTRYW; + +struct STICKYKEYS { + DWORD cbSize = this.sizeof; + DWORD dwFlags; +} +alias STICKYKEYS* LPSTICKYKEYS; + +struct TOGGLEKEYS { + DWORD cbSize = this.sizeof; + DWORD dwFlags; +} + +struct MOUSEHOOKSTRUCT { + POINT pt; + HWND hwnd; + UINT wHitTestCode; + DWORD dwExtraInfo; +} +alias MOUSEHOOKSTRUCT* LPMOUSEHOOKSTRUCT, PMOUSEHOOKSTRUCT; + +struct TRACKMOUSEEVENT { + DWORD cbSize = this.sizeof; + DWORD dwFlags; + HWND hwndTrack; + DWORD dwHoverTime; +} +alias TRACKMOUSEEVENT* LPTRACKMOUSEEVENT; + +struct TPMPARAMS { + UINT cbSize = this.sizeof; + RECT rcExclude; +} +alias TPMPARAMS* LPTPMPARAMS; + +struct EVENTMSG { + UINT message; + UINT paramL; + UINT paramH; + DWORD time; + HWND hwnd; +} +alias EVENTMSG* PEVENTMSGMSG, LPEVENTMSGMSG, PEVENTMSG, LPEVENTMSG; + +struct WINDOWPOS { + HWND hwnd; + HWND hwndInsertAfter; + int x; + int y; + int cx; + int cy; + UINT flags; +} +alias WINDOWPOS* PWINDOWPOS, LPWINDOWPOS; + +struct NCCALCSIZE_PARAMS { + RECT rgrc[3]; + PWINDOWPOS lppos; +} +alias NCCALCSIZE_PARAMS* LPNCCALCSIZE_PARAMS; + +struct MDICREATESTRUCTA { + LPCSTR szClass; + LPCSTR szTitle; + HANDLE hOwner; + int x; + int y; + int cx; + int cy; + DWORD style; + LPARAM lParam; +} +alias MDICREATESTRUCTA* LPMDICREATESTRUCTA; + +struct MDICREATESTRUCTW { + LPCWSTR szClass; + LPCWSTR szTitle; + HANDLE hOwner; + int x; + int y; + int cx; + int cy; + DWORD style; + LPARAM lParam; +} +alias MDICREATESTRUCTW* LPMDICREATESTRUCTW; + +struct MINMAXINFO { + POINT ptReserved; + POINT ptMaxSize; + POINT ptMaxPosition; + POINT ptMinTrackSize; + POINT ptMaxTrackSize; +} +alias MINMAXINFO* PMINMAXINFO, LPMINMAXINFO; + +struct MDINEXTMENU { + HMENU hmenuIn; + HMENU hmenuNext; + HWND hwndNext; +} +alias MDINEXTMENU* PMDINEXTMENU, LPMDINEXTMENU; + +struct MEASUREITEMSTRUCT { + UINT CtlType; + UINT CtlID; + UINT itemID; + UINT itemWidth; + UINT itemHeight; + DWORD itemData; +} +alias MEASUREITEMSTRUCT* PMEASUREITEMSTRUCT, LPMEASUREITEMSTRUCT; + +struct DROPSTRUCT { + HWND hwndSource; + HWND hwndSink; + DWORD wFmt; + DWORD dwData; + POINT ptDrop; + DWORD dwControlData; +} +alias DROPSTRUCT* PDROPSTRUCT, LPDROPSTRUCT; + +alias DWORD HELPPOLY; + +struct MULTIKEYHELPA { + DWORD mkSize; + CHAR mkKeylist; + CHAR szKeyphrase[1]; +} +alias MULTIKEYHELPA* PMULTIKEYHELPA, LPMULTIKEYHELPA; + +struct MULTIKEYHELPW { + DWORD mkSize; + WCHAR mkKeylist; + WCHAR szKeyphrase[1]; +} +alias MULTIKEYHELPW* PMULTIKEYHELPW, LPMULTIKEYHELPW; + +struct HELPWININFOA { + int wStructSize; + int x; + int y; + int dx; + int dy; + int wMax; + CHAR rgchMember[2]; +} +alias HELPWININFOA* PHELPWININFOA, LPHELPWININFOA; + +struct HELPWININFOW { + int wStructSize; + int x; + int y; + int dx; + int dy; + int wMax; + WCHAR rgchMember[2]; +} +alias HELPWININFOW* PHELPWININFOW, LPHELPWININFOW; + +struct STYLESTRUCT { + DWORD styleOld; + DWORD styleNew; +} +alias STYLESTRUCT* LPSTYLESTRUCT; + +struct ALTTABINFO { + DWORD cbSize = this.sizeof; + int cItems; + int cColumns; + int cRows; + int iColFocus; + int iRowFocus; + int cxItem; + int cyItem; + POINT ptStart; +} +alias ALTTABINFO* PALTTABINFO, LPALTTABINFO; + +struct COMBOBOXINFO { + DWORD cbSize = this.sizeof; + RECT rcItem; + RECT rcButton; + DWORD stateButton; + HWND hwndCombo; + HWND hwndItem; + HWND hwndList; +} +alias COMBOBOXINFO* PCOMBOBOXINFO, LPCOMBOBOXINFO; + +struct CURSORINFO { + DWORD cbSize = this.sizeof; + DWORD flags; + HCURSOR hCursor; + POINT ptScreenPos; +} +alias CURSORINFO* PCURSORINFO, LPCURSORINFO; + +struct MENUBARINFO { + DWORD cbSize = this.sizeof; + RECT rcBar; + HMENU hMenu; + HWND hwndMenu; + byte bf_; // Simulated bitfield +// BOOL fBarFocused:1; +// BOOL fFocused:1; + bool fBarFocused() { return (bf_ & 1) == 1; } + bool fFocused() { return (bf_ & 2) == 2; } + void fBarFocused(bool b) { bf_ = cast(byte)((bf_ & 0xFE) | b); } + void fFocused(bool b) { bf_ = cast(byte)(b ? (bf_ | 2) : bf_ & 0xFD); } +} +alias MENUBARINFO* PMENUBARINFO; + +struct MENUINFO { + DWORD cbSize = this.sizeof; + DWORD fMask; + DWORD dwStyle; + UINT cyMax; + HBRUSH hbrBack; + DWORD dwContextHelpID; + ULONG_PTR dwMenuData; +} +alias MENUINFO* LPMENUINFO; +alias CPtr!(MENUINFO) LPCMENUINFO; + + +const CCHILDREN_SCROLLBAR=5; + +struct SCROLLBARINFO { + DWORD cbSize = this.sizeof; + RECT rcScrollBar; + int dxyLineButton; + int xyThumbTop; + int xyThumbBottom; + int reserved; + DWORD rgstate[CCHILDREN_SCROLLBAR+1]; +} +alias SCROLLBARINFO* PSCROLLBARINFO, LPSCROLLBARINFO; + +const CCHILDREN_TITLEBAR=5; + +struct TITLEBARINFO { + DWORD cbSize = TITLEBARINFO.sizeof; + RECT rcTitleBar; + DWORD[CCHILDREN_TITLEBAR+1] rgstate; +} +alias TITLEBARINFO* PTITLEBARINFO, LPTITLEBARINFO; + +struct WINDOWINFO { + DWORD cbSize = WINDOWINFO.sizeof; + RECT rcWindow; + RECT rcClient; + DWORD dwStyle; + DWORD dwExStyle; + DWORD dwWindowStatus; + UINT cxWindowBorders; + UINT cyWindowBorders; + ATOM atomWindowType; + WORD wCreatorVersion; +} +alias WINDOWINFO* PWINDOWINFO, LPWINDOWINFO; + +struct LASTINPUTINFO { + UINT cbSize = this.sizeof; + DWORD dwTime; +} +alias LASTINPUTINFO* PLASTINPUTINFO; + +struct MONITORINFO { + DWORD cbSize = this.sizeof; + RECT rcMonitor; + RECT rcWork; + DWORD dwFlags; +} +alias MONITORINFO* LPMONITORINFO; + +const CCHDEVICENAME=32; + +struct MONITORINFOEXA { + DWORD cbSize = MONITORINFOEXA.sizeof; + RECT rcMonitor; + RECT rcWork; + DWORD dwFlags; + CHAR[CCHDEVICENAME] szDevice; +} +alias MONITORINFOEXA* LPMONITORINFOEXA; + +struct MONITORINFOEXW { + DWORD cbSize = MONITORINFOEXW.sizeof; + RECT rcMonitor; + RECT rcWork; + DWORD dwFlags; + WCHAR[CCHDEVICENAME] szDevice; +} +alias MONITORINFOEXW* LPMONITORINFOEXW; + +struct KBDLLHOOKSTRUCT { + DWORD vkCode; + DWORD scanCode; + DWORD flags; + DWORD time; + DWORD dwExtraInfo; +} +alias KBDLLHOOKSTRUCT* LPKBDLLHOOKSTRUCT, PKBDLLHOOKSTRUCT; + +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) { + +struct FLASHWINFO { + UINT cbSize = this.sizeof; + HWND hwnd; + DWORD dwFlags; + UINT uCount; + DWORD dwTimeout; +} +alias FLASHWINFO* PFLASHWINFO; + +} + +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x490)) { + +struct MOUSEMOVEPOINT { + int x; + int y; + DWORD time; + ULONG_PTR dwExtraInfo; +} +alias MOUSEMOVEPOINT* PMOUSEMOVEPOINT, LPMOUSEMOVEPOINT; +} + +static if (_WIN32_WINNT >= 0x403) { +struct MOUSEINPUT { + LONG dx; + LONG dy; + DWORD mouseData; + DWORD dwFlags; + DWORD time; + ULONG_PTR dwExtraInfo; +} +alias MOUSEINPUT* PMOUSEINPUT; + +struct KEYBDINPUT { + WORD wVk; + WORD wScan; + DWORD dwFlags; + DWORD time; + ULONG_PTR dwExtraInfo; +} +alias KEYBDINPUT* PKEYBDINPUT; + +struct HARDWAREINPUT { + DWORD uMsg; + WORD wParamL; + WORD wParamH; +} +alias HARDWAREINPUT* PHARDWAREINPUT; + +struct INPUT { + DWORD type; + union { + MOUSEINPUT mi; + KEYBDINPUT ki; + HARDWAREINPUT hi; + } +} +alias INPUT* PINPUT, LPINPUT; +}// (_WIN32_WINNT >= 0x403) + +static if (WINVER >= 0x500) { +struct GUITHREADINFO { + DWORD cbSize = this.sizeof; + DWORD flags; + HWND hwndActive; + HWND hwndFocus; + HWND hwndCapture; + HWND hwndMenuOwner; + HWND hwndMoveSize; + HWND hwndCaret; + RECT rcCaret; +} +alias GUITHREADINFO* PGUITHREADINFO, LPGUITHREADINFO; +extern (Windows) { +alias void function (HWINEVENTHOOK, DWORD, HWND, LONG, LONG, DWORD, DWORD) WINEVENTPROC; +} + +}// (WINVER >= 0x500) + +static if (_WIN32_WINNT >= 0x501) { +struct BSMINFO { + UINT cbSize = this.sizeof; + HDESK hdesk; + HWND hwnd; + LUID luid; +} +alias BSMINFO* PBSMINFO; + +alias HANDLE HRAWINPUT; + +struct RAWINPUTHEADER { + DWORD dwType; + DWORD dwSize; + HANDLE hDevice; + WPARAM wParam; +} +alias RAWINPUTHEADER* PRAWINPUTHEADER; + +struct RAWMOUSE { + USHORT usFlags; + union { + ULONG ulButtons; + struct { + USHORT usButtonFlags; + USHORT usButtonData; + } + } + ULONG ulRawButtons; + LONG lLastX; + LONG lLastY; + ULONG ulExtraInformation; +} +alias RAWMOUSE* PRAWMOUSE, LPRAWMOUSE; + +struct RAWKEYBOARD { + USHORT MakeCode; + USHORT Flags; + USHORT Reserved; + USHORT VKey; + UINT Message; + ULONG ExtraInformation; +} +alias RAWKEYBOARD* PRAWKEYBOARD, LPRAWKEYBOARD; + +struct RAWHID { + DWORD dwSizeHid; + DWORD dwCount; + BYTE bRawData; +} +alias RAWHID* PRAWHID, LPRAWHID; + +struct RAWINPUT { + RAWINPUTHEADER header; + union _data { + RAWMOUSE mouse; + RAWKEYBOARD keyboard; + RAWHID hid; + } + _data data; +} +alias RAWINPUT* PRAWINPUT, LPRAWINPUT; + +struct RAWINPUTDEVICE { + USHORT usUsagePage; + USHORT usUsage; + DWORD dwFlags; + HWND hwndTarget; +} +alias RAWINPUTDEVICE* PRAWINPUTDEVICE, LPRAWINPUTDEVICE; +alias CPtr!(RAWINPUTDEVICE) PCRAWINPUTDEVICE; + +struct RAWINPUTDEVICELIST { + HANDLE hDevice; + DWORD dwType; +} +alias RAWINPUTDEVICELIST* PRAWINPUTDEVICELIST; + +struct RID_DEVICE_INFO_MOUSE { + DWORD dwId; + DWORD dwNumberOfButtons; + DWORD dwSampleRate; + BOOL fHasHorizontalWheel; +} + +struct RID_DEVICE_INFO_KEYBOARD { + DWORD dwType; + DWORD dwSubType; + DWORD dwKeyboardMode; + DWORD dwNumberOfFunctionKeys; + DWORD dwNumberOfIndicators; + DWORD dwNumberOfKeysTotal; +} + +struct RID_DEVICE_INFO_HID { + DWORD dwVendorId; + DWORD dwProductId; + DWORD dwVersionNumber; + USHORT usUsagePage; + USHORT usUsage; +} + +struct RID_DEVICE_INFO { + DWORD cbSize = this.sizeof; + DWORD dwType; + union { + RID_DEVICE_INFO_MOUSE mouse; + RID_DEVICE_INFO_KEYBOARD keyboard; + RID_DEVICE_INFO_HID hid; + } +} +}// (_WIN32_WINNT >= 0x501) + +struct MSLLHOOKSTRUCT { + POINT pt; + DWORD mouseData; + DWORD flags; + DWORD time; + ULONG_PTR dwExtraInfo; +} +alias MSLLHOOKSTRUCT* PMSLLHOOKSTRUCT; + +alias CharToOemA AnsiToOem; +alias OemToCharA OemToAnsi; +alias CharToOemBuffA AnsiToOemBuff; +alias OemToCharBuffA OemToAnsiBuff; +alias CharUpperA AnsiUpper; +alias CharUpperBuffA AnsiUpperBuff; +alias CharLowerA AnsiLower; +alias CharLowerBuffA AnsiLowerBuff; +alias CharNextA AnsiNext; +alias CharPrevA AnsiPrev; + +alias MAKELONG MAKEWPARAM; +alias MAKELONG MAKELPARAM; +alias MAKELONG MAKELRESULT; + +//MACRO #define POINTSTOPOINT(p, ps) { (p).x=LOWORD(*(DWORD* )&ps); (p).y=HIWORD(*(DWORD* )&ps); } +//MACRO #define POINTTOPOINTS(p) ((POINTS)MAKELONG((p).x, (p).y)) + +extern (Windows) { + +HKL ActivateKeyboardLayout(HKL, UINT); +BOOL AdjustWindowRect(LPRECT, DWORD, BOOL); +BOOL AdjustWindowRectEx(LPRECT, DWORD, BOOL, DWORD); +BOOL AnyPopup(); +BOOL AppendMenuA(HMENU, UINT, UINT_PTR, LPCSTR); +BOOL AppendMenuW(HMENU, UINT, UINT_PTR, LPCWSTR); +UINT ArrangeIconicWindows(HWND); +BOOL AttachThreadInput(DWORD, DWORD, BOOL); +HDWP BeginDeferWindowPos(int); +HDC BeginPaint(HWND, LPPAINTSTRUCT); +BOOL BringWindowToTop(HWND); +BOOL CallMsgFilterA(LPMSG, INT); +BOOL CallMsgFilterW(LPMSG, INT); +LRESULT CallNextHookEx(HHOOK, int, WPARAM, LPARAM); +LRESULT CallWindowProcA(WNDPROC, HWND, UINT, WPARAM, LPARAM); +LRESULT CallWindowProcW(WNDPROC, HWND, UINT, WPARAM, LPARAM); +WORD CascadeWindows(HWND, UINT, LPCRECT, UINT, CPtr!(HWND)); +BOOL ChangeClipboardChain(HWND, HWND); + +LONG ChangeDisplaySettingsA(PDEVMODEA, DWORD); +LONG ChangeDisplaySettingsW(PDEVMODEW, DWORD); +LONG ChangeDisplaySettingsExA(LPCSTR, LPDEVMODEA, HWND, DWORD, LPVOID); +LONG ChangeDisplaySettingsExW(LPCWSTR, LPDEVMODEW, HWND, DWORD, LPVOID); + +BOOL ChangeMenuA(HMENU, UINT, LPCSTR, UINT, UINT); +BOOL ChangeMenuW(HMENU, UINT, LPCWSTR, UINT, UINT); +LPSTR CharLowerA(LPSTR); +LPWSTR CharLowerW(LPWSTR); +DWORD CharLowerBuffA(LPSTR, DWORD); +DWORD CharLowerBuffW(LPWSTR, DWORD); +LPSTR CharNextA(LPCSTR); +LPWSTR CharNextW(LPCWSTR); +LPSTR CharNextExA(WORD, LPCSTR, DWORD); +LPWSTR CharNextExW(WORD, LPCWSTR, DWORD); +LPSTR CharPrevA(LPCSTR, LPCSTR); +LPWSTR CharPrevW(LPCWSTR, LPCWSTR); +LPSTR CharPrevExA(WORD, LPCSTR, LPCSTR, DWORD); +LPWSTR CharPrevExW(WORD, LPCWSTR, LPCWSTR, DWORD); +BOOL CharToOemA(LPCSTR, LPSTR); +BOOL CharToOemW(LPCWSTR, LPSTR); +BOOL CharToOemBuffA(LPCSTR, LPSTR, DWORD); +BOOL CharToOemBuffW(LPCWSTR, LPSTR, DWORD); +LPSTR CharUpperA(LPSTR); +LPWSTR CharUpperW(LPWSTR); +DWORD CharUpperBuffA(LPSTR, DWORD); +DWORD CharUpperBuffW(LPWSTR, DWORD); +BOOL CheckDlgButton(HWND, int, UINT); +DWORD CheckMenuItem(HMENU, UINT, UINT); +BOOL CheckMenuRadioItem(HMENU, UINT, UINT, UINT, UINT); +BOOL CheckRadioButton(HWND, int, int, int); +HWND ChildWindowFromPoint(HWND, POINT); +HWND ChildWindowFromPointEx(HWND, POINT, UINT); +BOOL ClientToScreen(HWND, LPPOINT); +BOOL ClipCursor(LPCRECT); +BOOL CloseClipboard(); +BOOL CloseDesktop(HDESK); +BOOL CloseWindow(HWND); +BOOL CloseWindowStation(HWINSTA); +int CopyAcceleratorTableA(HACCEL, LPACCEL, int); +int CopyAcceleratorTableW(HACCEL, LPACCEL, int); + +HICON CopyIcon(HICON); +HANDLE CopyImage(HANDLE, UINT, int, int, UINT); +BOOL CopyRect(LPRECT, LPCRECT); +int CountClipboardFormats(); +HACCEL CreateAcceleratorTableA(LPACCEL, int); +HACCEL CreateAcceleratorTableW(LPACCEL, int); +BOOL CreateCaret(HWND, HBITMAP, int, int); +HCURSOR CreateCursor(HINSTANCE, int, int, int, int, PCVOID, PCVOID); + +HDESK CreateDesktopA(LPCSTR, LPCSTR, LPDEVMODEA, DWORD, ACCESS_MASK, LPSECURITY_ATTRIBUTES); +HDESK CreateDesktopW(LPCWSTR, LPCWSTR, LPDEVMODEW, DWORD, ACCESS_MASK, LPSECURITY_ATTRIBUTES); + +HWND CreateDialogParamA(HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM); +HWND CreateDialogParamW(HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM); +HWND CreateDialogIndirectParamA(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); +HWND CreateDialogIndirectParamW(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); + +HICON CreateIcon(HINSTANCE, int, int, BYTE, BYTE, CPtr!(BYTE), BYTE*); +HICON CreateIconFromResource(PBYTE, DWORD, BOOL, DWORD); +HICON CreateIconFromResourceEx(PBYTE, DWORD, BOOL, DWORD, int, int, UINT); +HICON CreateIconIndirect(PICONINFO); +HWND CreateMDIWindowA(LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HINSTANCE, LPARAM); +HWND CreateMDIWindowW(LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HINSTANCE, LPARAM); +HMENU CreateMenu(); +HMENU CreatePopupMenu(); + +HWND CreateWindowExA(DWORD, LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID); +HWND CreateWindowExW(DWORD, LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID); + +HWINSTA CreateWindowStationA(LPSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES); +HWINSTA CreateWindowStationW(LPWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES); +LRESULT DefDlgProcA(HWND, UINT, WPARAM, LPARAM); +LRESULT DefDlgProcW(HWND, UINT, WPARAM, LPARAM); +HDWP DeferWindowPos(HDWP, HWND, HWND, int, int, int, int, UINT); +LRESULT DefFrameProcA(HWND, HWND, UINT, WPARAM, LPARAM); +LRESULT DefFrameProcW(HWND, HWND, UINT, WPARAM, LPARAM); + +LRESULT DefMDIChildProcA(HWND, UINT, WPARAM, LPARAM); +LRESULT DefMDIChildProcW(HWND, UINT, WPARAM, LPARAM); +LRESULT DefWindowProcA(HWND, UINT, WPARAM, LPARAM); +LRESULT DefWindowProcW(HWND, UINT, WPARAM, LPARAM); +BOOL DeleteMenu(HMENU, UINT, UINT); +BOOL DeregisterShellHookWindow(HWND); +BOOL DestroyAcceleratorTable(HACCEL); +BOOL DestroyCaret(); +BOOL DestroyCursor(HCURSOR); +BOOL DestroyIcon(HICON); +BOOL DestroyMenu(HMENU); +BOOL DestroyWindow(HWND); + +int DialogBoxParamA(HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM); +int DialogBoxParamW(HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM); +int DialogBoxIndirectParamA(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); +int DialogBoxIndirectParamW(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM); + +} // extern (Windows) + +HCURSOR CopyCursor(HCURSOR c) +{ + return cast(HCURSOR)CopyIcon(cast(HICON)c); +} + +HWND CreateDialogA(HINSTANCE h, LPCSTR n, HWND w, DLGPROC f) +{ + return CreateDialogParamA(h, n, w, f, 0); +} + +HWND CreateDialogW(HINSTANCE h, LPCWSTR n, HWND w, DLGPROC f) +{ + return CreateDialogParamW(h, n, w, f, 0); +} + +HWND CreateDialogIndirectA(HINSTANCE h, LPCDLGTEMPLATE t, HWND w , DLGPROC f) +{ + return CreateDialogIndirectParamA(h, t, w, f, 0); +} + +HWND CreateDialogIndirectW(HINSTANCE h, LPCDLGTEMPLATE t, HWND w , DLGPROC f) +{ + return CreateDialogIndirectParamW(h, t, w, f, 0); +} + + +HWND CreateWindowA(LPCSTR a, LPCSTR b, DWORD c, int d, int e, int f, int g, HWND h, HMENU i, HINSTANCE j, LPVOID k) +{ + return CreateWindowExA(0, a, b, c, d, e, f, g, h, i, j, k); +} + +HWND CreateWindowW(LPCWSTR a, LPCWSTR b, DWORD c, int d, int e, int f, int g, HWND h, HMENU i, HINSTANCE j, LPVOID k) +{ + return CreateWindowExW(0, a, b, c, d, e, f, g, h, i, j, k); +} + +int DialogBoxA(HINSTANCE i, LPCSTR t, HWND p, DLGPROC f) +{ + return DialogBoxParamA(i, t, p, f, 0); +} + +int DialogBoxW(HINSTANCE i, LPCWSTR t, HWND p, DLGPROC f) +{ + return DialogBoxParamW(i, t, p, f, 0); +} + +int DialogBoxIndirectA(HINSTANCE i, LPCDLGTEMPLATE t, HWND p, DLGPROC f) +{ + return DialogBoxIndirectParamA(i, t, p, f, 0); +} + +int DialogBoxIndirectW(HINSTANCE i, LPCDLGTEMPLATE t, HWND p, DLGPROC f) +{ + return DialogBoxIndirectParamW(i, t, p, f, 0); +} + +BOOL ExitWindows(UINT r, DWORD c) +{ + return ExitWindowsEx(EWX_LOGOFF, 0); +} +alias GetWindow GetNextWindow; + +extern (Windows): +LONG DispatchMessageA( CPtr!(MSG)); +LONG DispatchMessageW( CPtr!(MSG)); +int DlgDirListA(HWND, LPSTR, int, int, UINT); +int DlgDirListW(HWND, LPWSTR, int, int, UINT); +int DlgDirListComboBoxA(HWND, LPSTR, int, int, UINT); +int DlgDirListComboBoxW(HWND, LPWSTR, int, int, UINT); +BOOL DlgDirSelectComboBoxExA(HWND, LPSTR, int, int); +BOOL DlgDirSelectComboBoxExW(HWND, LPWSTR, int, int); +BOOL DlgDirSelectExA(HWND, LPSTR, int, int); +BOOL DlgDirSelectExW(HWND, LPWSTR, int, int); +BOOL DragDetect(HWND, POINT); +DWORD DragObject(HWND, HWND, UINT, DWORD, HCURSOR); +BOOL DrawAnimatedRects(HWND, int, LPCRECT, LPCRECT); +BOOL DrawCaption(HWND, HDC, LPCRECT, UINT); +BOOL DrawEdge(HDC, LPRECT, UINT, UINT); +BOOL DrawFocusRect(HDC, LPCRECT); +BOOL DrawFrameControl(HDC, LPRECT, UINT, UINT); +BOOL DrawIcon(HDC, int, int, HICON); +BOOL DrawIconEx(HDC, int, int, HICON, int, int, UINT, HBRUSH, UINT); +BOOL DrawMenuBar(HWND); +BOOL DrawStateA(HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, int, int, int, int, UINT); +BOOL DrawStateW(HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, int, int, int, int, UINT); +int DrawTextA(HDC, LPCSTR, int, LPRECT, UINT); +int DrawTextW(HDC, LPCWSTR, int, LPRECT, UINT); +int DrawTextExA(HDC, LPSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS); +int DrawTextExW(HDC, LPWSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS); +BOOL EmptyClipboard(); +BOOL EnableMenuItem(HMENU, UINT, UINT); +BOOL EnableScrollBar(HWND, UINT, UINT); +BOOL EnableWindow(HWND, BOOL); +BOOL EndDeferWindowPos(HDWP); +BOOL EndDialog(HWND, int); +BOOL EndMenu(); +BOOL EndPaint(HWND, CPtr!(PAINTSTRUCT)); +BOOL EnumChildWindows(HWND, ENUMWINDOWSPROC, LPARAM); +UINT EnumClipboardFormats(UINT); +BOOL EnumDesktopsA(HWINSTA, DESKTOPENUMPROCA, LPARAM); +BOOL EnumDesktopsW(HWINSTA, DESKTOPENUMPROCW, LPARAM); +BOOL EnumDesktopWindows(HDESK, ENUMWINDOWSPROC, LPARAM); +BOOL EnumDisplaySettingsA(LPCSTR, DWORD, PDEVMODEA); +BOOL EnumDisplaySettingsW(LPCWSTR, DWORD, PDEVMODEW); + +BOOL EnumDisplayDevicesA(LPCSTR, DWORD, PDISPLAY_DEVICEA, DWORD); +BOOL EnumDisplayDevicesW(LPCWSTR, DWORD, PDISPLAY_DEVICEW, DWORD); + +int EnumPropsA(HWND, PROPENUMPROCA); +int EnumPropsW(HWND, PROPENUMPROCW); +int EnumPropsExA(HWND, PROPENUMPROCEXA, LPARAM); +int EnumPropsExW(HWND, PROPENUMPROCEXW, LPARAM); + +BOOL EnumThreadWindows(DWORD, WNDENUMPROC, LPARAM); +BOOL EnumWindows(WNDENUMPROC, LPARAM); +BOOL EnumWindowStationsA(WINSTAENUMPROCA, LPARAM); +BOOL EnumWindowStationsW(WINSTAENUMPROCW, LPARAM); +BOOL EqualRect(LPCRECT, LPCRECT); + +BOOL ExitWindowsEx(UINT, DWORD); +HWND FindWindowA(LPCSTR, LPCSTR); +HWND FindWindowExA(HWND, HWND, LPCSTR, LPCSTR); +HWND FindWindowExW(HWND, HWND, LPCWSTR, LPCWSTR); +HWND FindWindowW(LPCWSTR, LPCWSTR); +BOOL FlashWindow(HWND, BOOL); + +int FrameRect(HDC, LPCRECT, HBRUSH); +BOOL FrameRgn(HDC, HRGN, HBRUSH, int, int); +HWND GetActiveWindow(); +HWND GetAncestor(HWND, UINT); +SHORT GetAsyncKeyState(int); +HWND GetCapture(); +UINT GetCaretBlinkTime(); +BOOL GetCaretPos(LPPOINT); +BOOL GetClassInfoA(HINSTANCE, LPCSTR, LPWNDCLASSA); +BOOL GetClassInfoExA(HINSTANCE, LPCSTR, LPWNDCLASSEXA); +BOOL GetClassInfoW(HINSTANCE, LPCWSTR, LPWNDCLASSW); +BOOL GetClassInfoExW(HINSTANCE, LPCWSTR, LPWNDCLASSEXW); +DWORD GetClassLongA(HWND, int); +DWORD GetClassLongW(HWND, int); +int GetClassNameA(HWND, LPSTR, int); +int GetClassNameW(HWND, LPWSTR, int); +WORD GetClassWord(HWND, int); +BOOL GetClientRect(HWND, LPRECT); +HANDLE GetClipboardData(UINT); +int GetClipboardFormatNameA(UINT, LPSTR, int); +int GetClipboardFormatNameW(UINT, LPWSTR, int); +HWND GetClipboardOwner(); +HWND GetClipboardViewer(); +BOOL GetClipCursor(LPRECT); +BOOL GetCursorPos(LPPOINT); +HDC GetDC(HWND); +HDC GetDCEx(HWND, HRGN, DWORD); +HWND GetDesktopWindow(); +int GetDialogBaseUnits(); +int GetDlgCtrlID(HWND); +HWND GetDlgItem(HWND, int); +UINT GetDlgItemInt(HWND, int, PBOOL, BOOL); +UINT GetDlgItemTextA(HWND, int, LPSTR, int); +UINT GetDlgItemTextW(HWND, int, LPWSTR, int); +UINT GetDoubleClickTime(); +HWND GetFocus(); +HWND GetForegroundWindow(); + +BOOL GetIconInfo(HICON, PICONINFO); +BOOL GetInputState(); +UINT GetKBCodePage(); +HKL GetKeyboardLayout(DWORD); +UINT GetKeyboardLayoutList(int, HKL*); +BOOL GetKeyboardLayoutNameA(LPSTR); +BOOL GetKeyboardLayoutNameW(LPWSTR); +BOOL GetKeyboardState(PBYTE); +int GetKeyboardType(int); +int GetKeyNameTextA(LONG, LPSTR, int); +int GetKeyNameTextW(LONG, LPWSTR, int); +SHORT GetKeyState(int); +HWND GetLastActivePopup(HWND); +HMENU GetMenu(HWND); +LONG GetMenuCheckMarkDimensions(); +DWORD GetMenuContextHelpId(HMENU); +UINT GetMenuDefaultItem(HMENU, UINT, UINT); +int GetMenuItemCount(HMENU); +UINT GetMenuItemID(HMENU, int); +BOOL GetMenuItemInfoA(HMENU, UINT, BOOL, LPMENUITEMINFOA); +BOOL GetMenuItemInfoW(HMENU, UINT, BOOL, LPMENUITEMINFOW); +BOOL GetMenuItemRect(HWND, HMENU, UINT, LPRECT); +UINT GetMenuState(HMENU, UINT, UINT); +int GetMenuStringA(HMENU, UINT, LPSTR, int, UINT); +int GetMenuStringW(HMENU, UINT, LPWSTR, int, UINT); +BOOL GetMessageA(LPMSG, HWND, UINT, UINT); +BOOL GetMessageW(LPMSG, HWND, UINT, UINT); +LONG GetMessageExtraInfo(); +DWORD GetMessagePos(); +LONG GetMessageTime(); + +HWND GetNextDlgGroupItem(HWND, HWND, BOOL); +HWND GetNextDlgTabItem(HWND, HWND, BOOL); + +HWND GetOpenClipboardWindow(); +HWND GetParent(HWND); +int GetPriorityClipboardFormat(UINT*, int); +HANDLE GetPropA(HWND, LPCSTR); +HANDLE GetPropW(HWND, LPCWSTR); + +DWORD GetQueueStatus(UINT); +BOOL GetScrollInfo(HWND, int, LPSCROLLINFO); +int GetScrollPos(HWND, int); +BOOL GetScrollRange(HWND, int, LPINT, LPINT); + +HMENU GetSubMenu(HMENU, int); +DWORD GetSysColor(int); +HBRUSH GetSysColorBrush(int); + +HMENU GetSystemMenu(HWND, BOOL); +int GetSystemMetrics(int); +DWORD GetTabbedTextExtentA(HDC, LPCSTR, int, int, LPINT); +DWORD GetTabbedTextExtentW(HDC, LPCWSTR, int, int, LPINT); +LONG GetWindowLongA(HWND, int); +LONG GetWindowLongW(HWND, int); + +HDESK GetThreadDesktop(DWORD); +HWND GetTopWindow(HWND); +BOOL GetUpdateRect(HWND, LPRECT, BOOL); +int GetUpdateRgn(HWND, HRGN, BOOL); +BOOL GetUserObjectInformationA(HANDLE, int, PVOID, DWORD, PDWORD); +BOOL GetUserObjectInformationW(HANDLE, int, PVOID, DWORD, PDWORD); +BOOL GetUserObjectSecurity(HANDLE, PSECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); +HWND GetWindow(HWND, UINT); +DWORD GetWindowContextHelpId(HWND); +HDC GetWindowDC(HWND); +BOOL GetWindowPlacement(HWND, WINDOWPLACEMENT*); +BOOL GetWindowRect(HWND, LPRECT); +int GetWindowRgn(HWND, HRGN); +int GetWindowTextA(HWND, LPSTR, int); +int GetWindowTextLengthA(HWND); +int GetWindowTextLengthW(HWND); +int GetWindowTextW(HWND, LPWSTR, int); +WORD GetWindowWord(HWND, int); +BOOL GetAltTabInfoA(HWND, int, PALTTABINFO, LPSTR, UINT); +BOOL GetAltTabInfoW(HWND, int, PALTTABINFO, LPWSTR, UINT); +BOOL GetComboBoxInfo(HWND, PCOMBOBOXINFO); +BOOL GetCursorInfo(PCURSORINFO); +BOOL GetLastInputInfo(PLASTINPUTINFO); +DWORD GetListBoxInfo(HWND); +BOOL GetMenuBarInfo(HWND, LONG, LONG, PMENUBARINFO); +BOOL GetMenuInfo(HMENU, LPMENUINFO); +BOOL GetScrollBarInfo(HWND, LONG, PSCROLLBARINFO); +BOOL GetTitleBarInfo(HWND, PTITLEBARINFO); +BOOL GetWindowInfo(HWND, PWINDOWINFO); +UINT GetWindowModuleFileNameA(HWND, LPSTR, UINT); +UINT GetWindowModuleFileNameW(HWND, LPWSTR, UINT); +BOOL GrayStringA(HDC, HBRUSH, GRAYSTRINGPROC, LPARAM, int, int, int, int, int); +BOOL GrayStringW(HDC, HBRUSH, GRAYSTRINGPROC, LPARAM, int, int, int, int, int); +BOOL HideCaret(HWND); +BOOL HiliteMenuItem(HWND, HMENU, UINT, UINT); +BOOL InflateRect(LPRECT, int, int); +BOOL InSendMessage(); +BOOL InsertMenuA(HMENU, UINT, UINT, UINT, LPCSTR); +BOOL InsertMenuW(HMENU, UINT, UINT, UINT, LPCWSTR); +BOOL InsertMenuItemA(HMENU, UINT, BOOL, LPCMENUITEMINFOA); +BOOL InsertMenuItemW(HMENU, UINT, BOOL, LPCMENUITEMINFOW); +INT InternalGetWindowText(HWND, LPWSTR, INT); +BOOL IntersectRect(LPRECT, LPCRECT, LPCRECT); +BOOL InvalidateRect(HWND, LPCRECT, BOOL); +BOOL InvalidateRgn(HWND, HRGN, BOOL); +BOOL InvertRect(HDC, LPCRECT); +BOOL IsCharAlphaA(CHAR ch); +BOOL IsCharAlphaNumericA(CHAR); +BOOL IsCharAlphaNumericW(WCHAR); +BOOL IsCharAlphaW(WCHAR); +BOOL IsCharLowerA(CHAR); +BOOL IsCharLowerW(WCHAR); +BOOL IsCharUpperA(CHAR); +BOOL IsCharUpperW(WCHAR); +BOOL IsChild(HWND, HWND); +BOOL IsClipboardFormatAvailable(UINT); +BOOL IsDialogMessageA(HWND, LPMSG); +BOOL IsDialogMessageW(HWND, LPMSG); +UINT IsDlgButtonChecked(HWND, int); +BOOL IsIconic(HWND); +BOOL IsMenu(HMENU); +BOOL IsRectEmpty(LPCRECT); +BOOL IsWindow(HWND); +BOOL IsWindowEnabled(HWND); +BOOL IsWindowUnicode(HWND); +BOOL IsWindowVisible(HWND); +BOOL IsZoomed(HWND); +void keybd_event(BYTE, BYTE, DWORD, DWORD); +BOOL KillTimer(HWND, UINT); +HACCEL LoadAcceleratorsA(HINSTANCE, LPCSTR); +HACCEL LoadAcceleratorsW(HINSTANCE, LPCWSTR); +HBITMAP LoadBitmapA(HINSTANCE, LPCSTR); +HBITMAP LoadBitmapW(HINSTANCE, LPCWSTR); +HCURSOR LoadCursorA(HINSTANCE, LPCSTR); +HCURSOR LoadCursorFromFileA(LPCSTR); +HCURSOR LoadCursorFromFileW(LPCWSTR); +HCURSOR LoadCursorW(HINSTANCE, LPCWSTR); +HICON LoadIconA(HINSTANCE, LPCSTR); +HICON LoadIconW(HINSTANCE, LPCWSTR); +HANDLE LoadImageA(HINSTANCE, LPCSTR, UINT, int, int, UINT); +HANDLE LoadImageW(HINSTANCE, LPCWSTR, UINT, int, int, UINT); +HKL LoadKeyboardLayoutA(LPCSTR, UINT); +HKL LoadKeyboardLayoutW(LPCWSTR, UINT); +HMENU LoadMenuA(HINSTANCE, LPCSTR); +HMENU LoadMenuIndirectA( CPtr!(MENUTEMPLATE)); +HMENU LoadMenuIndirectW( CPtr!(MENUTEMPLATE)); +HMENU LoadMenuW(HINSTANCE, LPCWSTR); +int LoadStringA(HINSTANCE, UINT, LPSTR, int); +int LoadStringW(HINSTANCE, UINT, LPWSTR, int); +BOOL LockWindowUpdate(HWND); +int LookupIconIdFromDirectory(PBYTE, BOOL); +int LookupIconIdFromDirectoryEx(PBYTE, BOOL, int, int, UINT); +BOOL MapDialogRect(HWND, LPRECT); +UINT MapVirtualKeyA(UINT, UINT); +UINT MapVirtualKeyExA(UINT, UINT, HKL); +UINT MapVirtualKeyExW(UINT, UINT, HKL); +UINT MapVirtualKeyW(UINT, UINT); +int MapWindowPoints(HWND, HWND, LPPOINT, UINT); +int MenuItemFromPoint(HWND, HMENU, POINT); +BOOL MessageBeep(UINT); +int MessageBoxA(HWND, LPCSTR, LPCSTR, UINT); +int MessageBoxW(HWND, LPCWSTR, LPCWSTR, UINT); +int MessageBoxExA(HWND, LPCSTR, LPCSTR, UINT, WORD); +int MessageBoxExW(HWND, LPCWSTR, LPCWSTR, UINT, WORD); +int MessageBoxIndirectA(CPtr!(MSGBOXPARAMSA)); +int MessageBoxIndirectW(CPtr!(MSGBOXPARAMSW)); +BOOL ModifyMenuA(HMENU, UINT, UINT, UINT, LPCSTR); +BOOL ModifyMenuW(HMENU, UINT, UINT, UINT, LPCWSTR); +void mouse_event(DWORD, DWORD, DWORD, DWORD, ULONG_PTR); +BOOL MoveWindow(HWND, int, int, int, int, BOOL); +DWORD MsgWaitForMultipleObjects(DWORD, CPtr!(HANDLE), BOOL, DWORD, DWORD); +DWORD MsgWaitForMultipleObjectsEx(DWORD, CPtr!(HANDLE), DWORD, DWORD, DWORD); +DWORD OemKeyScan(WORD); +BOOL OemToCharA(LPCSTR, LPSTR); +BOOL OemToCharBuffA(LPCSTR, LPSTR, DWORD); +BOOL OemToCharBuffW(LPCSTR, LPWSTR, DWORD); +BOOL OemToCharW(LPCSTR, LPWSTR); +BOOL OffsetRect(LPRECT, int, int); +BOOL OpenClipboard(HWND); +HDESK OpenDesktopA(LPSTR, DWORD, BOOL, DWORD); +HDESK OpenDesktopW(LPWSTR, DWORD, BOOL, DWORD); +BOOL OpenIcon(HWND); +HDESK OpenInputDesktop(DWORD, BOOL, DWORD); +HWINSTA OpenWindowStationA(LPSTR, BOOL, DWORD); +HWINSTA OpenWindowStationW(LPWSTR, BOOL, DWORD); +BOOL PaintDesktop(HDC); +BOOL PeekMessageA(LPMSG, HWND, UINT, UINT, UINT); +BOOL PeekMessageW(LPMSG, HWND, UINT, UINT, UINT); +BOOL PostMessageA(HWND, UINT, WPARAM, LPARAM); +BOOL PostMessageW(HWND, UINT, WPARAM, LPARAM); +void PostQuitMessage(int); +BOOL PostThreadMessageA(DWORD, UINT, WPARAM, LPARAM); +BOOL PostThreadMessageW(DWORD, UINT, WPARAM, LPARAM); +BOOL PtInRect(LPCRECT, POINT); +HWND RealChildWindowFromPoint(HWND, POINT); +UINT RealGetWindowClassA(HWND, LPSTR, UINT); +UINT RealGetWindowClassW(HWND, LPWSTR, UINT); +BOOL RedrawWindow(HWND, LPCRECT, HRGN, UINT); +ATOM RegisterClassA(CPtr!(WNDCLASSA)); +ATOM RegisterClassW(CPtr!(WNDCLASSW)); +ATOM RegisterClassExA(CPtr!(WNDCLASSEXA)); +ATOM RegisterClassExW(CPtr!(WNDCLASSEXW)); +UINT RegisterClipboardFormatA(LPCSTR); +UINT RegisterClipboardFormatW(LPCWSTR); +BOOL RegisterHotKey(HWND, int, UINT, UINT); +UINT RegisterWindowMessageA(LPCSTR); +UINT RegisterWindowMessageW(LPCWSTR); +BOOL ReleaseCapture(); +int ReleaseDC(HWND, HDC); +BOOL RemoveMenu(HMENU, UINT, UINT); +HANDLE RemovePropA(HWND, LPCSTR); +HANDLE RemovePropW(HWND, LPCWSTR); +BOOL ReplyMessage(LRESULT); +BOOL ScreenToClient(HWND, LPPOINT); +BOOL ScrollDC(HDC, int, int, LPCRECT, LPCRECT, HRGN, LPRECT); +BOOL ScrollWindow(HWND, int, int, LPCRECT, LPCRECT); +int ScrollWindowEx(HWND, int, int, LPCRECT, LPCRECT, HRGN, LPRECT, UINT); +LONG SendDlgItemMessageA(HWND, int, UINT, WPARAM, LPARAM); +LONG SendDlgItemMessageW(HWND, int, UINT, WPARAM, LPARAM); +LRESULT SendMessageA(HWND, UINT, WPARAM, LPARAM); +BOOL SendMessageCallbackA(HWND, UINT, WPARAM, LPARAM, SENDASYNCPROC, DWORD); +BOOL SendMessageCallbackW(HWND, UINT, WPARAM, LPARAM, SENDASYNCPROC, DWORD); +LRESULT SendMessageTimeoutA(HWND, UINT, WPARAM, LPARAM, UINT, UINT, PDWORD); +LRESULT SendMessageTimeoutW(HWND, UINT, WPARAM, LPARAM, UINT, UINT, PDWORD); +LRESULT SendMessageW(HWND, UINT, WPARAM, LPARAM); +BOOL SendNotifyMessageA(HWND, UINT, WPARAM, LPARAM); +BOOL SendNotifyMessageW(HWND, UINT, WPARAM, LPARAM); +HWND SetActiveWindow(HWND); +HWND SetCapture(HWND hWnd); +BOOL SetCaretBlinkTime(UINT); +BOOL SetCaretPos(int, int); +DWORD SetClassLongA(HWND, int, LONG); +DWORD SetClassLongW(HWND, int, LONG); +WORD SetClassWord(HWND, int, WORD); +HANDLE SetClipboardData(UINT, HANDLE); +HWND SetClipboardViewer(HWND); +HCURSOR SetCursor(HCURSOR); +BOOL SetCursorPos(int, int); +void SetDebugErrorLevel(DWORD); +BOOL SetDlgItemInt(HWND, int, UINT, BOOL); +BOOL SetDlgItemTextA(HWND, int, LPCSTR); +BOOL SetDlgItemTextW(HWND, int, LPCWSTR); +BOOL SetDoubleClickTime(UINT); +HWND SetFocus(HWND); +BOOL SetForegroundWindow(HWND); +BOOL SetKeyboardState(PBYTE); +BOOL SetMenu(HWND, HMENU); +BOOL SetMenuContextHelpId(HMENU, DWORD); +BOOL SetMenuDefaultItem(HMENU, UINT, UINT); +BOOL SetMenuInfo(HMENU, LPCMENUINFO); +BOOL SetMenuItemBitmaps(HMENU, UINT, UINT, HBITMAP, HBITMAP); +BOOL SetMenuItemInfoA(HMENU, UINT, BOOL, LPCMENUITEMINFOA); +BOOL SetMenuItemInfoW( HMENU, UINT, BOOL, LPCMENUITEMINFOW); +LPARAM SetMessageExtraInfo(LPARAM); +BOOL SetMessageQueue(int); +HWND SetParent(HWND, HWND); +BOOL SetProcessWindowStation(HWINSTA); +BOOL SetPropA(HWND, LPCSTR, HANDLE); +BOOL SetPropW(HWND, LPCWSTR, HANDLE); +BOOL SetRect(LPRECT, int, int, int, int); +BOOL SetRectEmpty(LPRECT); +int SetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL); +int SetScrollPos(HWND, int, int, BOOL); +BOOL SetScrollRange(HWND, int, int, int, BOOL); +BOOL SetSysColors(int, CPtr!(INT) , CPtr!(COLORREF) ); +BOOL SetSystemCursor(HCURSOR, DWORD); +BOOL SetThreadDesktop(HDESK); +UINT SetTimer(HWND, UINT, UINT, TIMERPROC); +BOOL SetUserObjectInformationA(HANDLE, int, PVOID, DWORD); +BOOL SetUserObjectInformationW(HANDLE, int, PVOID, DWORD); +BOOL SetUserObjectSecurity(HANDLE, PSECURITY_INFORMATION, PSECURITY_DESCRIPTOR); +BOOL SetWindowContextHelpId(HWND, DWORD); +LONG SetWindowLongA(HWND, int, LONG); +LONG SetWindowLongW(HWND, int, LONG); +BOOL SetWindowPlacement(HWND hWnd, CPtr!(WINDOWPLACEMENT)); +BOOL SetWindowPos(HWND, HWND, int, int, int, int, UINT); +int SetWindowRgn(HWND, HRGN, BOOL); +HHOOK SetWindowsHookA(int, HOOKPROC); +HHOOK SetWindowsHookW(int, HOOKPROC); +HHOOK SetWindowsHookExA(int, HOOKPROC, HINSTANCE, DWORD); +HHOOK SetWindowsHookExW(int, HOOKPROC, HINSTANCE, DWORD); +BOOL SetWindowTextA(HWND, LPCSTR); +BOOL SetWindowTextW(HWND, LPCWSTR); +WORD SetWindowWord(HWND, int, WORD); +BOOL ShowCaret(HWND); +int ShowCursor(BOOL); +BOOL ShowOwnedPopups(HWND, BOOL); +BOOL ShowScrollBar(HWND, int, BOOL); +BOOL ShowWindow(HWND, int); +BOOL ShowWindowAsync(HWND, int); +BOOL SubtractRect(LPRECT, LPCRECT, LPCRECT); +BOOL SwapMouseButton(BOOL); +BOOL SwitchDesktop(HDESK); +BOOL SystemParametersInfoA(UINT, UINT, PVOID, UINT); +BOOL SystemParametersInfoW(UINT, UINT, PVOID, UINT); +LONG TabbedTextOutA(HDC, int, int, LPCSTR, int, int, LPINT, int); +LONG TabbedTextOutW(HDC, int, int, LPCWSTR, int, int, LPINT, int); +WORD TileWindows(HWND, UINT, LPCRECT, UINT, CPtr!(HWND) ); +int ToAscii(UINT, UINT, PBYTE, LPWORD, UINT); +int ToAsciiEx(UINT, UINT, PBYTE, LPWORD, UINT, HKL); +int ToUnicode(UINT, UINT, PBYTE, LPWSTR, int, UINT); +int ToUnicodeEx(UINT, UINT, PBYTE, LPWSTR, int, UINT, HKL); +BOOL TrackMouseEvent(LPTRACKMOUSEEVENT); +BOOL TrackPopupMenu(HMENU, UINT, int, int, int, HWND, LPCRECT); +BOOL TrackPopupMenuEx(HMENU, UINT, int, int, HWND, LPTPMPARAMS); +int TranslateAcceleratorA(HWND, HACCEL, LPMSG); +int TranslateAcceleratorW(HWND, HACCEL, LPMSG); +BOOL TranslateMDISysAccel(HWND, LPMSG); +BOOL TranslateMessage( CPtr!(MSG)); +BOOL UnhookWindowsHook(int, HOOKPROC); +BOOL UnhookWindowsHookEx(HHOOK); +BOOL UnionRect(LPRECT, LPCRECT, LPCRECT); +BOOL UnloadKeyboardLayout(HKL); +BOOL UnregisterClassA(LPCSTR, HINSTANCE); +BOOL UnregisterClassW(LPCWSTR, HINSTANCE); +BOOL UnregisterHotKey(HWND, int); +BOOL UpdateWindow(HWND); +BOOL ValidateRect(HWND, LPCRECT); +BOOL ValidateRgn(HWND, HRGN); +SHORT VkKeyScanA(CHAR); +SHORT VkKeyScanExA(CHAR, HKL); +SHORT VkKeyScanExW(WCHAR, HKL); +SHORT VkKeyScanW(WCHAR); +DWORD WaitForInputIdle(HANDLE, DWORD); +BOOL WaitMessage(); +HWND WindowFromDC(HDC hDC); +HWND WindowFromPoint(POINT); +UINT WinExec(LPCSTR, UINT); +BOOL WinHelpA(HWND, LPCSTR, UINT, DWORD); +BOOL WinHelpW(HWND, LPCWSTR, UINT, DWORD); + +extern (C) { + int wsprintfA(LPSTR, LPCSTR, ...); + int wsprintfW(LPWSTR, LPCWSTR, ...); +} + + +// These shouldn't be necessary for D. +alias char* va_list_; +int wvsprintfA(LPSTR, LPCSTR, va_list_ arglist); +int wvsprintfW(LPWSTR, LPCWSTR, va_list_ arglist); + + +static if (_WIN32_WINDOWS == 0x400) { +// On Win95, there's only one version. +int BroadcastSystemMessage(DWORD, LPDWORD, UINT, WPARAM, LPARAM); +} +static if (_WIN32_WINNT >= 0x400) { +int BroadcastSystemMessageA(DWORD, LPDWORD, UINT, WPARAM, LPARAM); +int BroadcastSystemMessageW(DWORD, LPDWORD, UINT, WPARAM, LPARAM); +} +static if (_WIN32_WINNT >= 0x501) { +int BroadcastSystemMessageExA(DWORD, LPDWORD, UINT, WPARAM, LPARAM, PBSMINFO); +int BroadcastSystemMessageExW(DWORD, LPDWORD, UINT, WPARAM, LPARAM, PBSMINFO); +} + +static if (_WIN32_WINNT >= 0x403) { +UINT SendInput(UINT, LPINPUT, int); +} +static if (_WIN32_WINNT >= 0x500) { +BOOL AnimateWindow(HWND, DWORD, DWORD); +BOOL EndTask(HWND, BOOL, BOOL); +DWORD GetGuiResources(HANDLE, DWORD); +HWND GetShellWindow(); +BOOL GetProcessDefaultLayout(DWORD*); +BOOL IsHungAppWindow(HWND); +BOOL LockWorkStation(); +HDEVNOTIFY RegisterDeviceNotificationA(HANDLE, LPVOID, DWORD); +HDEVNOTIFY RegisterDeviceNotificationW(HANDLE, LPVOID, DWORD); +BOOL SetProcessDefaultLayout(DWORD); +void SwitchToThisWindow(HWND, BOOL); +BOOL SetLayeredWindowAttributes(HWND, COLORREF, BYTE, DWORD); +BOOL UpdateLayeredWindow(HWND, HDC, POINT*, SIZE*, HDC, POINT*, COLORREF, BLENDFUNCTION*, DWORD); +BOOL UserHandleGrantAccess(HANDLE, HANDLE, BOOL); +} +static if (_WIN32_WINNT >= 0x501) { +UINT GetRawInputBuffer(PRAWINPUT, PUINT, UINT); +UINT GetRawInputData(HRAWINPUT, UINT, LPVOID, PUINT, UINT); +UINT GetRawInputDeviceInfoA(HANDLE, UINT, LPVOID, PUINT); +UINT GetRawInputDeviceInfoW(HANDLE, UINT, LPVOID, PUINT); +UINT GetRawInputDeviceList(PRAWINPUTDEVICELIST, PUINT, UINT); +UINT GetRegisteredRawInputDevices(PRAWINPUTDEVICE, PUINT, UINT); +LRESULT DefRawInputProc(PRAWINPUT*, INT, UINT); +BOOL RegisterRawInputDevices(PCRAWINPUTDEVICE, UINT, UINT); + +BOOL IsGUIThread(BOOL); +BOOL IsWinEventHookInstalled(DWORD); +BOOL PrintWindow(HWND, HDC, UINT); +BOOL GetLayeredWindowAttributes(HWND, COLORREF*, BYTE*, DWORD*); +} +static if (WINVER >= 0x410) { + BOOL EnumDisplayMonitors(HDC, LPCRECT, MONITORENUMPROC, LPARAM); + BOOL GetMonitorInfoA(HMONITOR, LPMONITORINFO); + BOOL GetMonitorInfoA(HMONITOR, LPMONITORINFOEXA); + BOOL GetMonitorInfoW(HMONITOR, LPMONITORINFO); + BOOL GetMonitorInfoW(HMONITOR, LPMONITORINFOEXW); + HMONITOR MonitorFromPoint(POINT, DWORD); + HMONITOR MonitorFromRect(LPCRECT, DWORD); + HMONITOR MonitorFromWindow(HWND, DWORD); +} +static if (WINVER >= 0x500) { +BOOL GetGUIThreadInfo(DWORD, LPGUITHREADINFO); +void NotifyWinEvent(DWORD, HWND, LONG, LONG); +HWINEVENTHOOK SetWinEventHook(UINT, UINT, HMODULE, WINEVENTPROC, DWORD, DWORD, UINT); +BOOL UnhookWinEvent(HWINEVENTHOOK); +BOOL UnregisterDeviceNotification(HANDLE); +} +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) { +BOOL EnumDisplaySettingsExA(LPCSTR, DWORD, LPDEVMODEA, DWORD); +BOOL EnumDisplaySettingsExW(LPCWSTR, DWORD, LPDEVMODEW, DWORD); +BOOL FlashWindowEx(PFLASHWINFO); +DWORD GetClipboardSequenceNumber(); +DWORD InSendMessageEx(LPVOID); +} +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x490)) { +BOOL AllowSetForegroundWindow(DWORD); +BOOL LockSetForegroundWindow(UINT); +int GetMouseMovePointsEx(UINT, LPMOUSEMOVEPOINT, LPMOUSEMOVEPOINT, int, DWORD); +} + +version (Win64) { +LONG_PTR GetWindowLongPtrA(HWND, int); +LONG_PTR GetWindowLongPtrW(HWND, int); +LONG_PTR SetWindowLongPtrA(HWND, int, LONG_PTR); +LONG_PTR SetWindowLongPtrW(HWND, int, LONG_PTR); +} else { +alias GetWindowLongA GetWindowLongPtrA; +alias GetWindowLongW GetWindowLongPtrW; +alias SetWindowLongA SetWindowLongPtrA; +alias SetWindowLongW SetWindowLongPtrW; +} + + +// ----- +// Aliases for Unicode or Ansi +version(Unicode) { + +alias EDITWORDBREAKPROCW EDITWORDBREAKPROC; +alias PROPENUMPROCW PROPENUMPROC; +alias PROPENUMPROCEXW PROPENUMPROCEX; +alias DESKTOPENUMPROCW DESKTOPENUMPROC; +alias WINSTAENUMPROCW WINSTAENUMPROC; +alias MAKEINTRESOURCEW MAKEINTRESOURCE; + +alias WNDCLASSW WNDCLASS; +alias WNDCLASSEXW WNDCLASSEX; +alias MENUITEMINFOW MENUITEMINFO; +alias LPCMENUITEMINFOW LPCMENUITEMINFO; +alias MSGBOXPARAMSW MSGBOXPARAMS; +alias HIGHCONTRASTW HIGHCONTRAST; +alias SERIALKEYSW SERIALKEYS; +alias SOUNDSENTRYW SOUNDSENTRY; +alias CREATESTRUCTW CREATESTRUCT; +alias CBT_CREATEWNDW CBT_CREATEWND; +alias MDICREATESTRUCTW MDICREATESTRUCT; +alias MULTIKEYHELPW MULTIKEYHELP; +alias MONITORINFOEXW MONITORINFOEX; +alias ICONMETRICSW ICONMETRICS; +alias NONCLIENTMETRICSW NONCLIENTMETRICS; + +alias AppendMenuW AppendMenu; +alias BroadcastSystemMessageW BroadcastSystemMessage; +static if (_WIN32_WINNT >= 0x501) { +alias BroadcastSystemMessageExW BroadcastSystemMessageEx; +} +alias CallMsgFilterW CallMsgFilter; +alias CallWindowProcW CallWindowProc; +alias ChangeMenuW ChangeMenu; +alias CharLowerW CharLower; +alias CharLowerBuffW CharLowerBuff; +alias CharNextW CharNext; +alias CharNextExW CharNextEx; +alias CharPrevW CharPrev; +alias CharPrevExW CharPrevEx; +alias CharToOemW CharToOem; +alias CharToOemBuffW CharToOemBuff; +alias CharUpperW CharUpper; +alias CharUpperBuffW CharUpperBuff; +alias CopyAcceleratorTableW CopyAcceleratorTable; +alias CreateAcceleratorTableW CreateAcceleratorTable; +alias CreateDialogW CreateDialog; +alias CreateDialogIndirectW CreateDialogIndirect; +alias CreateDialogIndirectParamW CreateDialogIndirectParam; +alias CreateDialogParamW CreateDialogParam; +alias CreateMDIWindowW CreateMDIWindow; +alias CreateWindowW CreateWindow; +alias CreateWindowExW CreateWindowEx; +alias CreateWindowStationW CreateWindowStation; +alias DefDlgProcW DefDlgProc; +alias DefFrameProcW DefFrameProc; +alias DefMDIChildProcW DefMDIChildProc; +alias DefWindowProcW DefWindowProc; +alias DialogBoxW DialogBox; +alias DialogBoxIndirectW DialogBoxIndirect; +alias DialogBoxIndirectParamW DialogBoxIndirectParam; +alias DialogBoxParamW DialogBoxParam; +alias DispatchMessageW DispatchMessage; +alias DlgDirListW DlgDirList; +alias DlgDirListComboBoxW DlgDirListComboBox; +alias DlgDirSelectComboBoxExW DlgDirSelectComboBoxEx; +alias DlgDirSelectExW DlgDirSelectEx; +alias DrawStateW DrawState; +alias DrawTextW DrawText; +alias DrawTextExW DrawTextEx; +alias EnumDesktopsW EnumDesktops; +alias EnumPropsW EnumProps; +alias EnumPropsExW EnumPropsEx; +alias EnumWindowStationsW EnumWindowStations; +alias FindWindowW FindWindow; +alias FindWindowExW FindWindowEx; +alias GetClassInfoW GetClassInfo; +alias GetClassInfoExW GetClassInfoEx; +alias GetClassLongW GetClassLong; +alias GetClassNameW GetClassName; +alias GetClipboardFormatNameW GetClipboardFormatName; +alias GetDlgItemTextW GetDlgItemText; +alias GetKeyboardLayoutNameW GetKeyboardLayoutName; +alias GetKeyNameTextW GetKeyNameText; +alias GetMenuItemInfoW GetMenuItemInfo; +alias GetMenuStringW GetMenuString; +alias GetMessageW GetMessage; +static if (WINVER >=0x410) { +alias GetMonitorInfoW GetMonitorInfo; +} +alias GetPropW GetProp; +static if (_WIN32_WINNT >= 0x501) { +alias GetRawInputDeviceInfoW GetRawInputDeviceInfo; +} +alias GetTabbedTextExtentW GetTabbedTextExtent; +alias GetUserObjectInformationW GetUserObjectInformation; +alias GetWindowLongW GetWindowLong; +alias GetWindowLongPtrW GetWindowLongPtr; +alias GetWindowTextW GetWindowText; +alias GetWindowTextLengthW GetWindowTextLength; +alias GetAltTabInfoW GetAltTabInfo; +alias GetWindowModuleFileNameW GetWindowModuleFileName; +alias GrayStringW GrayString; +alias InsertMenuW InsertMenu; +alias InsertMenuItemW InsertMenuItem; +alias IsCharAlphaW IsCharAlpha; +alias IsCharAlphaNumericW IsCharAlphaNumeric; +alias IsCharLowerW IsCharLower; +alias IsCharUpperW IsCharUpper; +alias IsDialogMessageW IsDialogMessage; +alias LoadAcceleratorsW LoadAccelerators; +alias LoadBitmapW LoadBitmap; +alias LoadCursorW LoadCursor; +alias LoadCursorFromFileW LoadCursorFromFile; +alias LoadIconW LoadIcon; +alias LoadImageW LoadImage; +alias LoadKeyboardLayoutW LoadKeyboardLayout; +alias LoadMenuW LoadMenu; +alias LoadMenuIndirectW LoadMenuIndirect; +alias LoadStringW LoadString; +alias MapVirtualKeyW MapVirtualKey; +alias MapVirtualKeyExW MapVirtualKeyEx; +alias MessageBoxW MessageBox; +alias MessageBoxExW MessageBoxEx; +alias MessageBoxIndirectW MessageBoxIndirect; +alias ModifyMenuW ModifyMenu; +alias OemToCharW OemToChar; +alias OemToCharBuffW OemToCharBuff; +alias OpenDesktopW OpenDesktop; +alias OpenWindowStationW OpenWindowStation; +alias PeekMessageW PeekMessage; +alias PostMessageW PostMessage; +alias PostThreadMessageW PostThreadMessage; +alias RealGetWindowClassW RealGetWindowClass; +alias RegisterClassW RegisterClass; +alias RegisterClassExW RegisterClassEx; +alias RegisterClipboardFormatW RegisterClipboardFormat; +static if (WINVER >= 0x500) { +alias RegisterDeviceNotificationW RegisterDeviceNotification; +} +alias RegisterWindowMessageW RegisterWindowMessage; +alias RemovePropW RemoveProp; +alias SendDlgItemMessageW SendDlgItemMessage; +alias SendMessageW SendMessage; +alias SendMessageCallbackW SendMessageCallback; +alias SendMessageTimeoutW SendMessageTimeout; +alias SendNotifyMessageW SendNotifyMessage; +alias SetClassLongW SetClassLong; +alias SetDlgItemTextW SetDlgItemText; +alias SetMenuItemInfoW SetMenuItemInfo; +alias SetPropW SetProp; +alias SetUserObjectInformationW SetUserObjectInformation; +alias SetWindowLongW SetWindowLong; +alias SetWindowLongPtrW SetWindowLongPtr; +alias SetWindowsHookW SetWindowsHook; +alias SetWindowsHookExW SetWindowsHookEx; +alias SetWindowTextW SetWindowText; +alias SystemParametersInfoW SystemParametersInfo; +alias TabbedTextOutW TabbedTextOut; +alias TranslateAcceleratorW TranslateAccelerator; +alias UnregisterClassW UnregisterClass; +alias VkKeyScanW VkKeyScan; +alias VkKeyScanExW VkKeyScanEx; +alias WinHelpW WinHelp; +alias wsprintfW wsprintf; +alias wvsprintfW wvsprintf; + +alias ChangeDisplaySettingsW ChangeDisplaySettings; +alias ChangeDisplaySettingsExW ChangeDisplaySettingsEx; +alias CreateDesktopW CreateDesktop; +alias EnumDisplaySettingsW EnumDisplaySettings; +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) { +alias EnumDisplaySettingsExW EnumDisplaySettingsEx; +} +alias EnumDisplayDevicesW EnumDisplayDevices; + +} else { // ANSI + +alias EDITWORDBREAKPROCA EDITWORDBREAKPROC; +alias PROPENUMPROCA PROPENUMPROC; +alias PROPENUMPROCEXA PROPENUMPROCEX; +alias DESKTOPENUMPROCA DESKTOPENUMPROC; +alias WINSTAENUMPROCA WINSTAENUMPROC; +alias MAKEINTRESOURCEA MAKEINTRESOURCE; + +alias WNDCLASSA WNDCLASS; +alias WNDCLASSEXA WNDCLASSEX; +alias MENUITEMINFOA MENUITEMINFO; +alias LPCMENUITEMINFOA LPCMENUITEMINFO; +alias MSGBOXPARAMSA MSGBOXPARAMS; +alias HIGHCONTRASTA HIGHCONTRAST; +alias SERIALKEYSA SERIALKEYS; +alias SOUNDSENTRYA SOUNDSENTRY; +alias CREATESTRUCTA CREATESTRUCT; +alias CBT_CREATEWNDA CBT_CREATEWND; +alias MDICREATESTRUCTA MDICREATESTRUCT; +alias MULTIKEYHELPA MULTIKEYHELP; +alias MONITORINFOEXA MONITORINFOEX; +alias ICONMETRICSA ICONMETRICS; +alias NONCLIENTMETRICSA NONCLIENTMETRICS; + +alias AppendMenuA AppendMenu; +alias BroadcastSystemMessageA BroadcastSystemMessage; +static if (_WIN32_WINNT >= 0x501) { +alias BroadcastSystemMessageExA BroadcastSystemMessageEx; +} +alias CallMsgFilterA CallMsgFilter; +alias CallWindowProcA CallWindowProc; +alias ChangeMenuA ChangeMenu; +alias CharLowerA CharLower; +alias CharLowerBuffA CharLowerBuff; +alias CharNextA CharNext; +alias CharNextExA CharNextEx; +alias CharPrevA CharPrev; +alias CharPrevExA CharPrevEx; +alias CharToOemA CharToOem; +alias CharToOemBuffA CharToOemBuff; +alias CharUpperA CharUpper; +alias CharUpperBuffA CharUpperBuff; +alias CopyAcceleratorTableA CopyAcceleratorTable; +alias CreateAcceleratorTableA CreateAcceleratorTable; +alias CreateDialogA CreateDialog; +alias CreateDialogIndirectA CreateDialogIndirect; +alias CreateDialogIndirectParamA CreateDialogIndirectParam; +alias CreateDialogParamA CreateDialogParam; +alias CreateMDIWindowA CreateMDIWindow; +alias CreateWindowA CreateWindow; +alias CreateWindowExA CreateWindowEx; +alias CreateWindowStationA CreateWindowStation; +alias DefDlgProcA DefDlgProc; +alias DefFrameProcA DefFrameProc; +alias DefMDIChildProcA DefMDIChildProc; +alias DefWindowProcA DefWindowProc; +alias DialogBoxA DialogBox; +alias DialogBoxIndirectA DialogBoxIndirect; +alias DialogBoxIndirectParamA DialogBoxIndirectParam; +alias DialogBoxParamA DialogBoxParam; +alias DispatchMessageA DispatchMessage; +alias DlgDirListA DlgDirList; +alias DlgDirListComboBoxA DlgDirListComboBox; +alias DlgDirSelectComboBoxExA DlgDirSelectComboBoxEx; +alias DlgDirSelectExA DlgDirSelectEx; +alias DrawStateA DrawState; +alias DrawTextA DrawText; +alias DrawTextExA DrawTextEx; +alias EnumDesktopsA EnumDesktops; +alias EnumPropsA EnumProps; +alias EnumPropsExA EnumPropsEx; +alias EnumWindowStationsA EnumWindowStations; +alias FindWindowA FindWindow; +alias FindWindowExA FindWindowEx; +alias GetClassInfoA GetClassInfo; +alias GetClassInfoExA GetClassInfoEx; +alias GetClassLongA GetClassLong; +alias GetClassNameA GetClassName; +alias GetClipboardFormatNameA GetClipboardFormatName; +alias GetDlgItemTextA GetDlgItemText; +alias GetKeyboardLayoutNameA GetKeyboardLayoutName; +alias GetKeyNameTextA GetKeyNameText; +alias GetMenuItemInfoA GetMenuItemInfo; +alias GetMenuStringA GetMenuString; +alias GetMessageA GetMessage; +static if (WINVER >=0x410) { +alias GetMonitorInfoA GetMonitorInfo; +} +alias GetPropA GetProp; +static if (_WIN32_WINNT >= 0x501) { +alias GetRawInputDeviceInfoA GetRawInputDeviceInfo; +} +alias GetTabbedTextExtentA GetTabbedTextExtent; +alias GetUserObjectInformationA GetUserObjectInformation; +alias GetWindowLongA GetWindowLong; +alias GetWindowLongPtrA GetWindowLongPtr; +alias GetWindowTextA GetWindowText; +alias GetWindowTextLengthA GetWindowTextLength; +alias GetAltTabInfoA GetAltTabInfo; +alias GetWindowModuleFileNameA GetWindowModuleFileName; +alias GrayStringA GrayString; +alias InsertMenuA InsertMenu; +alias InsertMenuItemA InsertMenuItem; +alias IsCharAlphaA IsCharAlpha; +alias IsCharAlphaNumericA IsCharAlphaNumeric; +alias IsCharLowerA IsCharLower; +alias IsCharUpperA IsCharUpper; +alias IsDialogMessageA IsDialogMessage; +alias LoadAcceleratorsA LoadAccelerators; +alias LoadBitmapA LoadBitmap; +alias LoadCursorA LoadCursor; +alias LoadIconA LoadIcon; +alias LoadCursorFromFileA LoadCursorFromFile; +alias LoadImageA LoadImage; +alias LoadKeyboardLayoutA LoadKeyboardLayout; +alias LoadMenuA LoadMenu; +alias LoadMenuIndirectA LoadMenuIndirect; +alias LoadStringA LoadString; +alias MapVirtualKeyA MapVirtualKey; +alias MapVirtualKeyExA MapVirtualKeyEx; +alias MessageBoxA MessageBox; +alias MessageBoxExA MessageBoxEx; +alias MessageBoxIndirectA MessageBoxIndirect; +alias ModifyMenuA ModifyMenu; +alias OemToCharA OemToChar; +alias OemToCharBuffA OemToCharBuff; +alias OpenDesktopA OpenDesktop; +alias OpenWindowStationA OpenWindowStation; +alias PeekMessageA PeekMessage; +alias PostMessageA PostMessage; +alias PostThreadMessageA PostThreadMessage; +alias RealGetWindowClassA RealGetWindowClass; +alias RegisterClassA RegisterClass; +alias RegisterClassExA RegisterClassEx; +alias RegisterClipboardFormatA RegisterClipboardFormat; +static if (WINVER >= 0x500) { +alias RegisterDeviceNotificationA RegisterDeviceNotification; +} +alias RegisterWindowMessageA RegisterWindowMessage; +alias RemovePropA RemoveProp; +alias SendDlgItemMessageA SendDlgItemMessage; +alias SendMessageA SendMessage; +alias SendMessageCallbackA SendMessageCallback; +alias SendMessageTimeoutA SendMessageTimeout; +alias SendNotifyMessageA SendNotifyMessage; +alias SetClassLongA SetClassLong; +alias SetDlgItemTextA SetDlgItemText; +alias SetMenuItemInfoA SetMenuItemInfo; +alias SetPropA SetProp; +alias SetUserObjectInformationA SetUserObjectInformation; +alias SetWindowLongA SetWindowLong; +alias SetWindowLongPtrA SetWindowLongPtr; +alias SetWindowsHookA SetWindowsHook; +alias SetWindowsHookExA SetWindowsHookEx; +alias SetWindowTextA SetWindowText; +alias SystemParametersInfoA SystemParametersInfo; +alias TabbedTextOutA TabbedTextOut; +alias TranslateAcceleratorA TranslateAccelerator; +alias UnregisterClassA UnregisterClass; +alias VkKeyScanA VkKeyScan; +alias VkKeyScanExA VkKeyScanEx; +alias WinHelpA WinHelp; +alias wsprintfA wsprintf; +alias wvsprintfA wvsprintf; + +alias ChangeDisplaySettingsA ChangeDisplaySettings; +alias ChangeDisplaySettingsExA ChangeDisplaySettingsEx; +alias CreateDesktopA CreateDesktop; +alias EnumDisplaySettingsA EnumDisplaySettings; +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) { + alias EnumDisplaySettingsExA EnumDisplaySettingsEx; +} + alias EnumDisplayDevicesA EnumDisplayDevices; +} + + +alias WNDCLASS* LPWNDCLASS, PWNDCLASS; +alias WNDCLASSEX* LPWNDCLASSEX, PWNDCLASSEX; +alias MENUITEMINFO* LPMENUITEMINFO; +alias MSGBOXPARAMS* PMSGBOXPARAMS, LPMSGBOXPARAMS; +alias HIGHCONTRAST* LPHIGHCONTRAST; +alias SERIALKEYS* LPSERIALKEYS; +alias SOUNDSENTRY* LPSOUNDSENTRY; +alias CREATESTRUCT* LPCREATESTRUCT; +alias CBT_CREATEWND* LPCBT_CREATEWND; +alias MDICREATESTRUCT* LPMDICREATESTRUCT; +alias MULTIKEYHELP* PMULTIKEYHELP, LPMULTIKEYHELP; +alias MONITORINFOEX* LPMONITORINFOEX; +alias ICONMETRICS* LPICONMETRICS; +alias NONCLIENTMETRICS* LPNONCLIENTMETRICS; Index: src/win32/winver.d ================================================================== --- src/win32/winver.d +++ src/win32/winver.d @@ -1,259 +1,171 @@ -module win32.winver; - -// Translated from Microsoft Platform SDK August 2001 Edition -// by Y.Tomino - -import win32.winuser; - -// #ifndef VER_H -// #define VER_H - -// #ifdef __cplusplus -// extern "C" { -// #endif - -alias RT_VERSION VS_FILE_INFO; -enum : uint { VS_VERSION_INFO = 1 } -enum : uint { VS_USER_DEFINED = 100 } - -// #ifndef _MAC -enum : uint { VS_FFI_SIGNATURE = 0xFEEF04BD } -// #else -// #... -// #endif -enum : uint { VS_FFI_STRUCVERSION = 0x00010000 } -enum : uint { VS_FFI_FILEFLAGSMASK = 0x0000003F } - -enum : uint { VS_FF_DEBUG = 0x00000001 } -enum : uint { VS_FF_PRERELEASE = 0x00000002 } -enum : uint { VS_FF_PATCHED = 0x00000004 } -enum : uint { VS_FF_PRIVATEBUILD = 0x00000008 } -enum : uint { VS_FF_INFOINFERRED = 0x00000010 } -enum : uint { VS_FF_SPECIALBUILD = 0x00000020 } - -enum : uint { VOS_UNKNOWN = 0x00000000 } -enum : uint { VOS_DOS = 0x00010000 } -enum : uint { VOS_OS216 = 0x00020000 } -enum : uint { VOS_OS232 = 0x00030000 } -enum : uint { VOS_NT = 0x00040000 } - -enum : uint { VOS__BASE = 0x00000000 } -enum : uint { VOS__WINDOWS16 = 0x00000001 } -enum : uint { VOS__PM16 = 0x00000002 } -enum : uint { VOS__PM32 = 0x00000003 } -enum : uint { VOS__WINDOWS32 = 0x00000004 } - -enum : uint { VOS_DOS_WINDOWS16 = 0x00010001 } -enum : uint { VOS_DOS_WINDOWS32 = 0x00010004 } -enum : uint { VOS_OS216_PM16 = 0x00020002 } -enum : uint { VOS_OS232_PM32 = 0x00030003 } -enum : uint { VOS_NT_WINDOWS32 = 0x00040004 } - -enum : uint { VFT_UNKNOWN = 0x00000000 } -enum : uint { VFT_APP = 0x00000001 } -enum : uint { VFT_DLL = 0x00000002 } -enum : uint { VFT_DRV = 0x00000003 } -enum : uint { VFT_FONT = 0x00000004 } -enum : uint { VFT_VXD = 0x00000005 } -enum : uint { VFT_STATIC_LIB = 0x00000007 } - -enum : uint { VFT2_UNKNOWN = 0x00000000 } -enum : uint { VFT2_DRV_PRINTER = 0x00000001 } -enum : uint { VFT2_DRV_KEYBOARD = 0x00000002 } -enum : uint { VFT2_DRV_LANGUAGE = 0x00000003 } -enum : uint { VFT2_DRV_DISPLAY = 0x00000004 } -enum : uint { VFT2_DRV_MOUSE = 0x00000005 } -enum : uint { VFT2_DRV_NETWORK = 0x00000006 } -enum : uint { VFT2_DRV_SYSTEM = 0x00000007 } -enum : uint { VFT2_DRV_INSTALLABLE = 0x00000008 } -enum : uint { VFT2_DRV_SOUND = 0x00000009 } -enum : uint { VFT2_DRV_COMM = 0x0000000A } -enum : uint { VFT2_DRV_INPUTMETHOD = 0x0000000B } -enum : uint { VFT2_DRV_VERSIONED_PRINTER = 0x0000000C } - -enum : uint { VFT2_FONT_RASTER = 0x00000001 } -enum : uint { VFT2_FONT_VECTOR = 0x00000002 } -enum : uint { VFT2_FONT_TRUETYPE = 0x00000003 } - -enum : uint { VFFF_ISSHAREDFILE = 0x0001 } - -enum : uint { VFF_CURNEDEST = 0x0001 } -enum : uint { VFF_FILEINUSE = 0x0002 } -enum : uint { VFF_BUFFTOOSMALL = 0x0004 } - -enum : uint { VIFF_FORCEINSTALL = 0x0001 } -enum : uint { VIFF_DONTDELETEOLD = 0x0002 } - -enum : uint { VIF_TEMPFILE = 0x00000001 } -enum : uint { VIF_MISMATCH = 0x00000002 } -enum : uint { VIF_SRCOLD = 0x00000004 } - -enum : uint { VIF_DIFFLANG = 0x00000008 } -enum : uint { VIF_DIFFCODEPG = 0x00000010 } -enum : uint { VIF_DIFFTYPE = 0x00000020 } - -enum : uint { VIF_WRITEPROT = 0x00000040 } -enum : uint { VIF_FILEINUSE = 0x00000080 } -enum : uint { VIF_OUTOFSPACE = 0x00000100 } -enum : uint { VIF_ACCESSVIOLATION = 0x00000200 } -enum : uint { VIF_SHARINGVIOLATION = 0x00000400 } -enum : uint { VIF_CANNOTCREATE = 0x00000800 } -enum : uint { VIF_CANNOTDELETE = 0x00001000 } -enum : uint { VIF_CANNOTRENAME = 0x00002000 } -enum : uint { VIF_CANNOTDELETECUR = 0x00004000 } -enum : uint { VIF_OUTOFMEMORY = 0x00008000 } - -enum : uint { VIF_CANNOTREADSRC = 0x00010000 } -enum : uint { VIF_CANNOTREADDST = 0x00020000 } - -enum : uint { VIF_BUFFTOOSMALL = 0x00040000 } -enum : uint { VIF_CANNOTLOADLZ32 = 0x00080000 } -enum : uint { VIF_CANNOTLOADCABINET = 0x00100000 } - -// #ifndef RC_INVOKED /* RC doesn't need to see the rest of this */ - -struct tagVS_FIXEDFILEINFO { - DWORD dwSignature; - DWORD dwStrucVersion; - DWORD dwFileVersionMS; - DWORD dwFileVersionLS; - DWORD dwProductVersionMS; - DWORD dwProductVersionLS; - DWORD dwFileFlagsMask; - DWORD dwFileFlags; - DWORD dwFileOS; - DWORD dwFileType; - DWORD dwFileSubtype; - DWORD dwFileDateMS; - DWORD dwFileDateLS; -} -alias tagVS_FIXEDFILEINFO VS_FIXEDFILEINFO; - -extern(Windows) export DWORD VerFindFileA( - DWORD uFlags, - LPSTR szFileName, - LPSTR szWinDir, - LPSTR szAppDir, - LPSTR szCurDir, - PUINT lpuCurDirLen, - LPSTR szDestDir, - PUINT lpuDestDirLen - ); -extern(Windows) export DWORD VerFindFileW( - DWORD uFlags, - LPWSTR szFileName, - LPWSTR szWinDir, - LPWSTR szAppDir, - LPWSTR szCurDir, - PUINT lpuCurDirLen, - LPWSTR szDestDir, - PUINT lpuDestDirLen - ); -// #ifdef UNICODE -alias VerFindFileW VerFindFile; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD VerInstallFileA( - DWORD uFlags, - LPSTR szSrcFileName, - LPSTR szDestFileName, - LPSTR szSrcDir, - LPSTR szDestDir, - LPSTR szCurDir, - LPSTR szTmpFile, - PUINT lpuTmpFileLen - ); -extern(Windows) export DWORD VerInstallFileW( - DWORD uFlags, - LPWSTR szSrcFileName, - LPWSTR szDestFileName, - LPWSTR szSrcDir, - LPWSTR szDestDir, - LPWSTR szCurDir, - LPWSTR szTmpFile, - PUINT lpuTmpFileLen - ); -// #ifdef UNICODE -alias VerInstallFileW VerInstallFile; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD GetFileVersionInfoSizeA( - LPSTR lptstrFilename, - LPDWORD lpdwHandle - ); - -extern(Windows) export DWORD GetFileVersionInfoSizeW( - LPWSTR lptstrFilename, - LPDWORD lpdwHandle - ); -// #ifdef UNICODE -alias GetFileVersionInfoSizeW GetFileVersionInfoSize; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL GetFileVersionInfoA( - LPSTR lptstrFilename, - DWORD dwHandle, - DWORD dwLen, - LPVOID lpData - ); - -extern(Windows) export BOOL GetFileVersionInfoW( - LPWSTR lptstrFilename, - DWORD dwHandle, - DWORD dwLen, - LPVOID lpData - ); -// #ifdef UNICODE -alias GetFileVersionInfoW GetFileVersionInfo; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export DWORD VerLanguageNameA( - DWORD wLang, - LPSTR szLang, - DWORD nSize - ); -extern(Windows) export DWORD VerLanguageNameW( - DWORD wLang, - LPWSTR szLang, - DWORD nSize - ); -// #ifdef UNICODE -alias VerLanguageNameW VerLanguageName; -// #else -// #... -// #endif // !UNICODE - -extern(Windows) export BOOL VerQueryValueA( - LPVOID pBlock, - LPSTR lpSubBlock, - LPVOID * lplpBuffer, - PUINT puLen - ); -extern(Windows) export BOOL VerQueryValueW( - LPVOID pBlock, - LPWSTR lpSubBlock, - LPVOID * lplpBuffer, - PUINT puLen - ); -// #ifdef UNICODE -alias VerQueryValueW VerQueryValue; -// #else -// #... -// #endif // !UNICODE - -// #endif /* !RC_INVOKED */ - -// #ifdef __cplusplus -// } -// #endif - -// #endif /* !VER_H */ - +/***********************************************************************\ +* winver.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.winver; + +private import win32.windef; + +// FIXME: type weirdness +enum { + VS_FILE_INFO = 16, + VS_VERSION_INFO = 1, + VS_USER_DEFINED = 100 +} + +enum { + VS_FFI_SIGNATURE = 0xFEEF04BD, + VS_FFI_STRUCVERSION = 0x10000, + VS_FFI_FILEFLAGSMASK = 0x3F +} + +enum { + VS_FF_DEBUG = 1, + VS_FF_PRERELEASE = 2, + VS_FF_PATCHED = 4, + VS_FF_PRIVATEBUILD = 8, + VS_FF_INFOINFERRED = 16, + VS_FF_SPECIALBUILD = 32 +} + +enum { + VOS_UNKNOWN = 0, + VOS_DOS = 0x10000, + VOS_OS216 = 0x20000, + VOS_OS232 = 0x30000, + VOS_NT = 0x40000, + VOS__BASE = 0, + VOS__WINDOWS16 = 1, + VOS__PM16 = 2, + VOS__PM32 = 3, + VOS__WINDOWS32 = 4, + VOS_DOS_WINDOWS16 = 0x10001, + VOS_DOS_WINDOWS32 = 0x10004, + VOS_OS216_PM16 = 0x20002, + VOS_OS232_PM32 = 0x30003, + VOS_NT_WINDOWS32 = 0x40004 +} + +enum { + VFT_UNKNOWN = 0, + VFT_APP = 1, + VFT_DLL = 2, + VFT_DRV = 3, + VFT_FONT = 4, + VFT_VXD = 5, + VFT_STATIC_LIB = 7 +} + +enum { + VFT2_UNKNOWN = 0, + VFT2_DRV_PRINTER = 1, + VFT2_DRV_KEYBOARD = 2, + VFT2_DRV_LANGUAGE = 3, + VFT2_DRV_DISPLAY = 4, + VFT2_DRV_MOUSE = 5, + VFT2_DRV_NETWORK = 6, + VFT2_DRV_SYSTEM = 7, + VFT2_DRV_INSTALLABLE = 8, + VFT2_DRV_SOUND = 9, + VFT2_DRV_COMM = 10, + VFT2_DRV_INPUTMETHOD = 11, + VFT2_FONT_RASTER = 1, + VFT2_FONT_VECTOR = 2, + VFT2_FONT_TRUETYPE = 3 +} + +enum : DWORD { + VFFF_ISSHAREDFILE = 1 +} + +enum : DWORD { + VFF_CURNEDEST = 1, + VFF_FILEINUSE = 2, + VFF_BUFFTOOSMALL = 4 +} + +enum : DWORD { + VIFF_FORCEINSTALL = 1, + VIFF_DONTDELETEOLD +} + +enum { + VIF_TEMPFILE = 0x00001, + VIF_MISMATCH = 0x00002, + VIF_SRCOLD = 0x00004, + VIF_DIFFLANG = 0x00008, + VIF_DIFFCODEPG = 0x00010, + VIF_DIFFTYPE = 0x00020, + VIF_WRITEPROT = 0x00040, + VIF_FILEINUSE = 0x00080, + VIF_OUTOFSPACE = 0x00100, + VIF_ACCESSVIOLATION = 0x00200, + VIF_SHARINGVIOLATION = 0x00400, + VIF_CANNOTCREATE = 0x00800, + VIF_CANNOTDELETE = 0x01000, + VIF_CANNOTRENAME = 0x02000, + VIF_CANNOTDELETECUR = 0x04000, + VIF_OUTOFMEMORY = 0x08000, + VIF_CANNOTREADSRC = 0x10000, + VIF_CANNOTREADDST = 0x20000, + VIF_BUFFTOOSMALL = 0x40000 +} + +struct VS_FIXEDFILEINFO { + DWORD dwSignature; + DWORD dwStrucVersion; + DWORD dwFileVersionMS; + DWORD dwFileVersionLS; + DWORD dwProductVersionMS; + DWORD dwProductVersionLS; + DWORD dwFileFlagsMask; + DWORD dwFileFlags; + DWORD dwFileOS; + DWORD dwFileType; + DWORD dwFileSubtype; + DWORD dwFileDateMS; + DWORD dwFileDateLS; +} + +extern (Windows) { + DWORD VerFindFileA(DWORD, LPCSTR, LPCSTR, LPCSTR, LPSTR, PUINT, LPSTR, + PUINT); + DWORD VerFindFileW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, PUINT, LPWSTR, + PUINT); + DWORD VerInstallFileA(DWORD, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPSTR, + PUINT); + DWORD VerInstallFileW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, + LPWSTR, PUINT); + DWORD GetFileVersionInfoSizeA(LPCSTR, PDWORD); + DWORD GetFileVersionInfoSizeW(LPCWSTR, PDWORD); + BOOL GetFileVersionInfoA(LPCSTR, DWORD, DWORD, PVOID); + BOOL GetFileVersionInfoW(LPCWSTR, DWORD, DWORD, PVOID); + DWORD VerLanguageNameA(DWORD, LPSTR, DWORD); + DWORD VerLanguageNameW(DWORD, LPWSTR, DWORD); + BOOL VerQueryValueA(LPCVOID, LPCSTR, LPVOID*, PUINT); + BOOL VerQueryValueW(LPCVOID, LPCWSTR, LPVOID*, PUINT); +} + +version (Unicode) { + alias VerFindFileW VerFindFile; + alias VerQueryValueW VerQueryValue; + alias VerInstallFileW VerInstallFile; + alias GetFileVersionInfoSizeW GetFileVersionInfoSize; + alias GetFileVersionInfoW GetFileVersionInfo; + alias VerLanguageNameW VerLanguageName; + alias VerQueryValueW VerQueryValue; +} else { + alias VerQueryValueA VerQueryValue; + alias VerFindFileA VerFindFile; + alias VerInstallFileA VerInstallFile; + alias GetFileVersionInfoSizeA GetFileVersionInfoSize; + alias GetFileVersionInfoA GetFileVersionInfo; + alias VerLanguageNameA VerLanguageName; + alias VerQueryValueA VerQueryValue; +} ADDED src/win32/ws2tcpip.d Index: src/win32/ws2tcpip.d ================================================================== --- src/win32/ws2tcpip.d +++ src/win32/ws2tcpip.d @@ -0,0 +1,281 @@ +/***********************************************************************\ +* ws2tcpip.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ + +module win32.ws2tcpip; + +import win32.w32api; +//import win32.winbase; +import win32.windef; +//import win32.basetyps; +import win32.winsock2; + +enum { + IP_OPTIONS = 1, + + IP_HDRINCL = 2, + IP_TOS = 3, + IP_TTL = 4, + IP_MULTICAST_IF = 9, + IP_MULTICAST_TTL = 10, + IP_MULTICAST_LOOP = 11, + IP_ADD_MEMBERSHIP = 12, + IP_DROP_MEMBERSHIP = 13, + IP_DONTFRAGMENT = 14, + IP_ADD_SOURCE_MEMBERSHIP = 15, + IP_DROP_SOURCE_MEMBERSHIP = 16, + IP_BLOCK_SOURCE = 17, + IP_UNBLOCK_SOURCE = 18, + IP_PKTINFO = 19 +} + +enum { + IPV6_UNICAST_HOPS = 4, + IPV6_MULTICAST_IF = 9, + IPV6_MULTICAST_HOPS = 10, + IPV6_MULTICAST_LOOP = 11, + IPV6_ADD_MEMBERSHIP = 12, + IPV6_DROP_MEMBERSHIP = 13, + IPV6_JOIN_GROUP = IPV6_ADD_MEMBERSHIP, + IPV6_LEAVE_GROUP = IPV6_DROP_MEMBERSHIP, + IPV6_PKTINFO = 19 +} + +const IP_DEFAULT_MULTICAST_TTL = 1; +const IP_DEFAULT_MULTICAST_LOOP = 1; +const IP_MAX_MEMBERSHIPS = 20; + +const TCP_EXPEDITED_1122 = 2; + +const UDP_NOCHECKSUM = 1; + +enum { + IFF_UP = 1, + IFF_BROADCAST = 2, + IFF_LOOPBACK = 4, + IFF_POINTTOPOINT = 8, + IFF_MULTICAST = 16 +} + +const SIO_GET_INTERFACE_LIST = _IOR!('t', 127, u_long); + +const INET_ADDRSTRLEN = 16; +const INET6_ADDRSTRLEN = 46; + +const NI_MAXHOST = 1025; +const NI_MAXSERV = 32; + +const NI_NOFQDN = 0x01; +const NI_NUMERICHOST = 0x02; +const NI_NAMEREQD = 0x04; +const NI_NUMERICSERV = 0x08; +const NI_DGRAM = 0x10; + +const AI_PASSIVE = 1; +const AI_CANONNAME = 2; +const AI_NUMERICHOST = 4; + +const EAI_AGAIN = WSATRY_AGAIN; +const EAI_BADFLAGS = WSAEINVAL; +const EAI_FAIL = WSANO_RECOVERY; +const EAI_FAMILY = WSAEAFNOSUPPORT; +const EAI_MEMORY = WSA_NOT_ENOUGH_MEMORY; +const EAI_NODATA = WSANO_DATA; +const EAI_NONAME = WSAHOST_NOT_FOUND; +const EAI_SERVICE = WSATYPE_NOT_FOUND; +const EAI_SOCKTYPE = WSAESOCKTNOSUPPORT; + +struct ip_mreq { + IN_ADDR imr_multiaddr; + IN_ADDR imr_interface; +} + +struct ip_mreq_source { + IN_ADDR imr_multiaddr; + IN_ADDR imr_sourceaddr; + IN_ADDR imr_interface; +} + +struct ip_msfilter { + IN_ADDR imsf_multiaddr; + IN_ADDR imsf_interface; + u_long imsf_fmode; + u_long imsf_numsrc; + IN_ADDR[1] imsf_slist; +} + +template IP_MSFILTER_SIZE(ULONG numsrc) { + const DWORD IP_MSFILTER_SIZE = ip_msfilter.sizeof - IN_ADDR.sizeof + numsrc * IN_ADDR.sizeof; +} + +struct IN_PKTINFO { + IN_ADDR ipi_addr; + UINT ipi_ifindex; +} + +struct IN6_ADDR { + union { + u_char[16] _S6_u8; + u_short[8] _S6_u16; + u_long[4] _S6_u32; + } +} +alias IN6_ADDR* PIN6_ADDR, LPIN6_ADDR; + +struct SOCKADDR_IN6 { + short sin6_family; + u_short sin6_port; + u_long sin6_flowinfo; + IN6_ADDR sin6_addr; + u_long sin6_scope_id; +}; +alias SOCKADDR_IN6* PSOCKADDR_IN6, LPSOCKADDR_IN6; + +extern IN6_ADDR in6addr_any; +extern IN6_ADDR in6addr_loopback; + +/+ TODO: +#define IN6_ARE_ADDR_EQUAL(a, b) \ + (memcmp ((void*)(a), (void*)(b), sizeof (struct in6_addr)) == 0) + +#define IN6_IS_ADDR_UNSPECIFIED(_addr) \ + ( (((const u_long *)(_addr))[0] == 0) \ + && (((const u_long *)(_addr))[1] == 0) \ + && (((const u_long *)(_addr))[2] == 0) \ + && (((const u_long *)(_addr))[3] == 0)) + +#define IN6_IS_ADDR_LOOPBACK(_addr) \ + ( (((const u_long *)(_addr))[0] == 0) \ + && (((const u_long *)(_addr))[1] == 0) \ + && (((const u_long *)(_addr))[2] == 0) \ + && (((const u_long *)(_addr))[3] == 0x01000000)) + +#define IN6_IS_ADDR_MULTICAST(_addr) (((const u_char *) (_addr))[0] == 0xff) + +#define IN6_IS_ADDR_LINKLOCAL(_addr) \ + ( (((const u_char *)(_addr))[0] == 0xfe) \ + && ((((const u_char *)(_addr))[1] & 0xc0) == 0x80)) + +#define IN6_IS_ADDR_SITELOCAL(_addr) \ + ( (((const u_char *)(_addr))[0] == 0xfe) \ + && ((((const u_char *)(_addr))[1] & 0xc0) == 0xc0)) + +#define IN6_IS_ADDR_V4MAPPED(_addr) \ + ( (((const u_long *)(_addr))[0] == 0) \ + && (((const u_long *)(_addr))[1] == 0) \ + && (((const u_long *)(_addr))[2] == 0xffff0000)) + +#define IN6_IS_ADDR_V4COMPAT(_addr) \ + ( (((const u_long *)(_addr))[0] == 0) \ + && (((const u_long *)(_addr))[1] == 0) \ + && (((const u_long *)(_addr))[2] == 0) \ + && (((const u_long *)(_addr))[3] != 0) \ + && (((const u_long *)(_addr))[3] != 0x01000000)) + +#define IN6_IS_ADDR_MC_NODELOCAL(_addr) \ + ( IN6_IS_ADDR_MULTICAST(_addr) \ + && ((((const u_char *)(_addr))[1] & 0xf) == 0x1)) + +#define IN6_IS_ADDR_MC_LINKLOCAL(_addr) \ + ( IN6_IS_ADDR_MULTICAST (_addr) \ + && ((((const u_char *)(_addr))[1] & 0xf) == 0x2)) + +#define IN6_IS_ADDR_MC_SITELOCAL(_addr) \ + ( IN6_IS_ADDR_MULTICAST(_addr) \ + && ((((const u_char *)(_addr))[1] & 0xf) == 0x5)) + +#define IN6_IS_ADDR_MC_ORGLOCAL(_addr) \ + ( IN6_IS_ADDR_MULTICAST(_addr) \ + && ((((const u_char *)(_addr))[1] & 0xf) == 0x8)) + +#define IN6_IS_ADDR_MC_GLOBAL(_addr) \ + ( IN6_IS_ADDR_MULTICAST(_addr) \ + && ((((const u_char *)(_addr))[1] & 0xf) == 0xe)) ++/ + +alias int socklen_t; + +struct IPV6_MREG { + IN6_ADDR ipv6mr_multiaddr; + uint ipv6mr_interface; +} + +struct IN6_PKTINFO { + IN6_ADDR ipi6_addr; + UINT ipi6_ifindex; +} + +struct addrinfo { + int ai_flags; + int ai_family; + int ai_socktype; + int ai_protocol; + size_t ai_addrlen; + char* ai_canonname; + SOCKADDR* ai_addr; + addrinfo* ai_next; +} + +extern(Windows) { + static if (_WIN32_WINNT >= 0x0501) { + void freeaddrinfo(addrinfo*); + int getaddrinfo (CPtr!(char), CPtr!(char), CPtr!(addrinfo), addrinfo**); + int getnameinfo(CPtr!(SOCKADDR), socklen_t, char*, DWORD, char*, DWORD, int); + } +} + +/+ TODO +static __inline char* +gai_strerrorA(int ecode) +{ + static char message[1024+1]; + DWORD dwFlags = FORMAT_MESSAGE_FROM_SYSTEM + | FORMAT_MESSAGE_IGNORE_INSERTS + | FORMAT_MESSAGE_MAX_WIDTH_MASK; + DWORD dwLanguageId = MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT); + FormatMessageA(dwFlags, NULL, ecode, dwLanguageId, (LPSTR)message, 1024, NULL); + return message; +} +static __inline WCHAR* +gai_strerrorW(int ecode) +{ + static WCHAR message[1024+1]; + DWORD dwFlags = FORMAT_MESSAGE_FROM_SYSTEM + | FORMAT_MESSAGE_IGNORE_INSERTS + | FORMAT_MESSAGE_MAX_WIDTH_MASK; + DWORD dwLanguageId = MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT); + FormatMessageW(dwFlags, NULL, ecode, dwLanguageId, (LPWSTR)message, 1024, NULL); + return message; +} +#ifdef UNICODE +#define gai_strerror gai_strerrorW +#else +#define gai_strerror gai_strerrorA +#endif ++/ + +extern(Windows) { + INT getnameinfo(SOCKADDR* pSockaddr, socklen_t SockaddrLength, + PCHAR pNodeBuffer, DWORD NodeBufferSize, PCHAR pServiceBuffer, + DWORD ServiceBufferSize, INT Flags); + + static if (_WIN32_WINNT >= 0x0502) { + INT GetNameInfoW(SOCKADDR* pSockaddr, socklen_t SockaddrLength, + PWCHAR pNodeBuffer, DWORD NodeBufferSize, PWCHAR pServiceBuffer, + DWORD ServiceBufferSize, INT Flags); + + alias getnameinfo GetNameInfoA; + + version(Unicode) { + alias GetNameInfoW GetNameInfo; + } else { + alias GetNameInfoA GetNameInfo; + } + } +} ADDED src/win32/wtypes.d Index: src/win32/wtypes.d ================================================================== --- src/win32/wtypes.d +++ src/win32/wtypes.d @@ -0,0 +1,231 @@ +/***********************************************************************\ +* wtypes.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.wtypes; + +import win32.rpc, win32.rpcndr; +private import win32.windef; +private import win32.uuid; // for GUID_NULL + +alias GUID_NULL IID_NULL, CLSID_NULL; + +const ROTFLAGS_REGISTRATIONKEEPSALIVE = 0x01; +const ROTFLAGS_ALLOWANYCLIENT = 0x02; + +// also in winsock2.h +struct BLOB { + ULONG cbSize; + BYTE* pBlobData; +} +alias BLOB* PBLOB, LPBLOB; + +enum DVASPECT { + DVASPECT_CONTENT = 1, + DVASPECT_THUMBNAIL = 2, + DVASPECT_ICON = 4, + DVASPECT_DOCPRINT = 8 +} + +enum DVASPECT2 { + DVASPECT_OPAQUE = 16, + DVASPECT_TRANSPARENT = 32 +} + +enum STATFLAG { + STATFLAG_DEFAULT = 0, + STATFLAG_NONAME = 1 +} + +enum MEMCTX { + MEMCTX_LOCAL = 0, + MEMCTX_TASK, + MEMCTX_SHARED, + MEMCTX_MACSYSTEM, + MEMCTX_UNKNOWN = -1, + MEMCTX_SAME = -2 +} + +enum MSHCTX { + MSHCTX_LOCAL = 0, + MSHCTX_NOSHAREDMEM, + MSHCTX_DIFFERENTMACHINE, + MSHCTX_INPROC, + MSHCTX_CROSSCTX +} + +enum CLSCTX { + CLSCTX_INPROC_SERVER = 1, + CLSCTX_INPROC_HANDLER = 2, + CLSCTX_LOCAL_SERVER = 4, + CLSCTX_INPROC_SERVER16 = 8, + CLSCTX_REMOTE_SERVER = 16 +} + +enum MSHLFLAGS { + MSHLFLAGS_NORMAL, + MSHLFLAGS_TABLESTRONG, + MSHLFLAGS_TABLEWEAK +} + +struct FLAGGED_WORD_BLOB { + uint fFlags; + uint clSize; + ushort asData[1]; +} + +alias WCHAR OLECHAR; +alias LPWSTR LPOLESTR; +alias LPCWSTR LPCOLESTR; + +alias ushort VARTYPE; +alias short VARIANT_BOOL; +alias VARIANT_BOOL _VARIANT_BOOL; +const VARIANT_BOOL VARIANT_TRUE = -1; // 0xffff; +const VARIANT_BOOL VARIANT_FALSE = 0; + +alias OLECHAR* BSTR; +alias FLAGGED_WORD_BLOB* wireBSTR; +alias BSTR* LPBSTR; +//alias LONG SCODE; // also in winerror +alias HANDLE HCONTEXT, HMETAFILEPICT; + +union CY { + struct { + uint Lo; + int Hi; + } + LONGLONG int64; +} + +alias double DATE; +struct BSTRBLOB { + ULONG cbSize; + PBYTE pData; +} +alias BSTRBLOB* LPBSTRBLOB; + +// Used only in the PROPVARIANT structure +// According to the 2003 SDK, this should be in propidl.h, not here. +struct CLIPDATA { + ULONG cbSize; + int ulClipFmt; + PBYTE pClipData; +} + +enum STGC { + STGC_DEFAULT, + STGC_OVERWRITE, + STGC_ONLYIFCURRENT, + STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE +} + +enum STGMOVE { + STGMOVE_MOVE, + STGMOVE_COPY, + STGMOVE_SHALLOWCOPY +} + +enum VARENUM { + VT_EMPTY, + VT_NULL, + VT_I2, + VT_I4, + VT_R4, + VT_R8, + VT_CY, + VT_DATE, + VT_BSTR, + VT_DISPATCH, + VT_ERROR, + VT_BOOL, + VT_VARIANT, + VT_UNKNOWN, + VT_DECIMAL, + VT_I1 = 16, + VT_UI1, + VT_UI2, + VT_UI4, + VT_I8, + VT_UI8, + VT_INT, + VT_UINT, + VT_VOID, + VT_HRESULT, + VT_PTR, + VT_SAFEARRAY, + VT_CARRAY, + VT_USERDEFINED, + VT_LPSTR, + VT_LPWSTR, + VT_RECORD = 36, + VT_INT_PTR = 37, + VT_UINT_PTR = 38, + VT_FILETIME = 64, + VT_BLOB, + VT_STREAM, + VT_STORAGE, + VT_STREAMED_OBJECT, + VT_STORED_OBJECT, + VT_BLOB_OBJECT, + VT_CF, + VT_CLSID, + VT_BSTR_BLOB = 0xfff, + VT_VECTOR = 0x1000, + VT_ARRAY = 0x2000, + VT_BYREF = 0x4000, + VT_RESERVED = 0x8000, + VT_ILLEGAL = 0xffff, + VT_ILLEGALMASKED = 0xfff, + VT_TYPEMASK = 0xfff +}; + +struct BYTE_SIZEDARR { + uint clSize; + byte* pData; +} + +struct WORD_SIZEDARR { + uint clSize; + ushort* pData; +} + +struct DWORD_SIZEDARR { +uint clSize; +uint* pData; +} + +struct HYPER_SIZEDARR { + uint clSize; + hyper* pData; +} + +alias double DOUBLE; + + +struct DECIMAL { + USHORT wReserved; + union { + struct { + ubyte scale; // valid values are 0 to 28 + ubyte sign; // 0 for positive, DECIMAL_NEG for negatives. + ubyte DECIMAL_NEG = 0x80; + } + USHORT signscale; + } + ULONG Hi32; + union { + struct { + ULONG Lo32; + ULONG Mid32; + } + ULONGLONG Lo64; + } + // #define DECIMAL_SETZERO(d) {(d).Lo64=(d).Hi32=(d).signscale=0;} + void setZero() { Lo64 = 0; Hi32 = 0; signscale = 0; } +} DELETED src/win32a.lib Index: src/win32a.lib ================================================================== --- src/win32a.lib +++ src/win32a.lib cannot compute difference between binary files Index: src/windll.d ================================================================== --- src/windll.d +++ src/windll.d @@ -1,31 +1,32 @@ -サソprivate import win32.ansi.windows; +サソprivate import win32.windows; +private import std.string; class WinDLLException : Exception { - private this( char[] msg ) { super(msg); } + private this( string msg ) { super(msg); } } class WinDLL { // constructor: // Load a DLL with specified name - this( char[] dllname ) + this( string dllname ) { char original_cur[MAX_PATH]; char sys[MAX_PATH]; - GetCurrentDirectory(MAX_PATH, original_cur); - GetSystemDirectory(sys, MAX_PATH); - SetCurrentDirectory(sys); - handle = LoadLibrary( dllname ); - SetCurrentDirectory(original_cur); + GetCurrentDirectoryA(MAX_PATH, original_cur.ptr); + GetSystemDirectoryA(sys.ptr, MAX_PATH); + SetCurrentDirectoryA(sys.ptr); + handle = LoadLibraryA( dllname.ptr ); + SetCurrentDirectoryA(original_cur.ptr); if( handle is null ) throw new WinDLLException( dllname ~ " not found" ); } - static WinDLL load( char[] name ) + static WinDLL load( string name ) { try { return new WinDLL(name); } catch(WinDLLException e) { return null; } } @@ -46,26 +47,26 @@ // extract a function with specified name from the DLL. // may return null. template get_api(FnT) { - FnT get_api( char[] apiname ) + FnT get_api( string apiname ) in { assert(handle); } body { - return cast(FnT) GetProcAddress( handle, apiname ); + return cast(FnT) GetProcAddress( handle, apiname.toStringz() ); } } // load_resource: // extract a resource - void* load_resource( char[] resname, char* type ) + void* load_resource( string resname, char* type ) in { assert(handle); } body { - HRSRC hi = FindResource( handle, resname, type ); + HRSRC hi = FindResource( handle, resname.toStringz(), type ); if( hi is null ) return null; HGLOBAL hr = LoadResource( handle, hi ); if( hr is null ) return null; @@ -73,12 +74,12 @@ } // load_diaglog: // specialized version of load_resource - void* load_dialog( char[] resname ) + void* load_dialog( string resname ) { return load_resource( resname, RT_DIALOG ); } private HINSTANCE handle; }